aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBaptiste Daroussin <bapt@FreeBSD.org>2024-06-20 08:11:38 +0000
committerBaptiste Daroussin <bapt@FreeBSD.org>2024-06-20 08:11:38 +0000
commit24fa7a5107c5b75d1c197accf0305be64bc72882 (patch)
tree183f09c93417ac0e5f7f49760329a3d2cfaacda9
parentbf0ab54638a5ef969749f6ceae30e864f9556ea8 (diff)
downloadsrc-24fa7a5107c5b75d1c197accf0305be64bc72882.tar.gz
src-24fa7a5107c5b75d1c197accf0305be64bc72882.zip
Vendor import ncurses 6.5vendor/ncurses/6.5vendor/ncurses
-rw-r--r--ANNOUNCE909
-rw-r--r--AUTHORS6
-rw-r--r--Ada95/Makefile.in45
-rw-r--r--Ada95/README4
-rw-r--r--Ada95/TODO8
-rw-r--r--Ada95/aclocal.m4789
-rwxr-xr-xAda95/configure4736
-rw-r--r--Ada95/configure.in25
-rw-r--r--Ada95/doc/Makefile.in21
-rw-r--r--Ada95/gen/Makefile.in62
-rw-r--r--Ada95/gen/adacurses-config.in12
-rw-r--r--Ada95/gen/gen.c9
-rw-r--r--Ada95/gen/terminal_interface-curses.adb.m48
-rw-r--r--Ada95/gen/terminal_interface-curses.ads.m412
-rwxr-xr-xAda95/include/MKncurses_def.sh6
-rw-r--r--Ada95/include/Makefile.in18
-rw-r--r--Ada95/include/ncurses_defs15
-rwxr-xr-xAda95/make-tar.sh79
-rw-r--r--Ada95/mk-pkg.awk90
-rw-r--r--Ada95/package/AdaCurses.spec55
-rw-r--r--Ada95/package/debian/compat2
-rw-r--r--Ada95/package/debian/control6
-rw-r--r--Ada95/package/debian/copyright10
-rwxr-xr-xAda95/package/debian/rules6
-rw-r--r--Ada95/samples/Makefile.in20
-rw-r--r--Ada95/samples/explain.txt54
-rw-r--r--Ada95/samples/ncurses2-demo_forms.adb8
-rw-r--r--Ada95/samples/ncurses2-overlap_test.adb14
-rw-r--r--Ada95/samples/ncurses2-trace_set.adb10
-rw-r--r--Ada95/samples/sample-menu_demo-aux.adb8
-rw-r--r--Ada95/samples/split-path.awk6
-rw-r--r--Ada95/src/Makefile.in16
-rw-r--r--Ada95/src/c_threaded_variables.c4
-rwxr-xr-xAda95/src/library-cfg.sh10
-rw-r--r--COPYING4
-rw-r--r--INSTALL316
-rw-r--r--MANIFEST15
-rw-r--r--Makefile.in25
-rw-r--r--Makefile.os26
-rw-r--r--NEWS1177
-rw-r--r--README41
-rw-r--r--README.emx8
-rw-r--r--VERSION2
-rw-r--r--aclocal.m41687
-rw-r--r--announce.html.in1609
-rw-r--r--c++/Makefile.in42
-rw-r--r--c++/NEWS16
-rw-r--r--c++/README-first6
-rw-r--r--c++/cursesapp.h6
-rw-r--r--c++/cursesf.cc10
-rw-r--r--c++/cursesf.h33
-rw-r--r--c++/cursesm.cc10
-rw-r--r--c++/cursesm.h12
-rw-r--r--c++/cursesp.h13
-rw-r--r--c++/cursesw.h18
-rw-r--r--c++/cursslk.cc10
-rw-r--r--c++/cursslk.h7
-rw-r--r--c++/demo.cc12
-rwxr-xr-xc++/edit_cfg.sh20
-rw-r--r--c++/etip.h.in33
-rwxr-xr-xconfig.guess1263
-rwxr-xr-xconfig.sub828
-rwxr-xr-xconfigure8412
-rw-r--r--configure.in310
-rw-r--r--dist.mk25
-rw-r--r--doc/hackguide.doc48
-rw-r--r--doc/html/Ada95.html14
-rw-r--r--doc/html/NCURSES-Programming-HOWTO.html1171
-rw-r--r--doc/html/ada/files.htm16
-rw-r--r--doc/html/ada/files/T.htm162
-rw-r--r--doc/html/ada/funcs.htm58
-rw-r--r--doc/html/ada/funcs/A.htm54
-rw-r--r--doc/html/ada/funcs/B.htm46
-rw-r--r--doc/html/ada/funcs/C.htm122
-rw-r--r--doc/html/ada/funcs/D.htm98
-rw-r--r--doc/html/ada/funcs/E.htm40
-rw-r--r--doc/html/ada/funcs/F.htm114
-rw-r--r--doc/html/ada/funcs/G.htm196
-rw-r--r--doc/html/ada/funcs/H.htm48
-rw-r--r--doc/html/ada/funcs/I.htm106
-rw-r--r--doc/html/ada/funcs/K.htm32
-rw-r--r--doc/html/ada/funcs/L.htm46
-rw-r--r--doc/html/ada/funcs/M.htm106
-rw-r--r--doc/html/ada/funcs/N.htm74
-rw-r--r--doc/html/ada/funcs/O.htm28
-rw-r--r--doc/html/ada/funcs/P.htm122
-rw-r--r--doc/html/ada/funcs/Q.htm20
-rw-r--r--doc/html/ada/funcs/R.htm82
-rw-r--r--doc/html/ada/funcs/S.htm386
-rw-r--r--doc/html/ada/funcs/T.htm82
-rw-r--r--doc/html/ada/funcs/U.htm50
-rw-r--r--doc/html/ada/funcs/V.htm26
-rw-r--r--doc/html/ada/funcs/W.htm110
-rw-r--r--doc/html/ada/index.htm80
-rw-r--r--doc/html/ada/main.htm142
-rw-r--r--doc/html/ada/table.html25
-rw-r--r--doc/html/ada/terminal_interface-curses-aux__adb.htm192
-rw-r--r--doc/html/ada/terminal_interface-curses-aux__ads.htm230
-rw-r--r--doc/html/ada/terminal_interface-curses-forms-field_types-alpha__adb.htm120
-rw-r--r--doc/html/ada/terminal_interface-curses-forms-field_types-alpha__ads.htm112
-rw-r--r--doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__adb.htm120
-rw-r--r--doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__ads.htm112
-rw-r--r--doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm152
-rw-r--r--doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm124
-rw-r--r--doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__adb.htm198
-rw-r--r--doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__ads.htm170
-rw-r--r--doc/html/ada/terminal_interface-curses-forms-field_types-intfield__adb.htm128
-rw-r--r--doc/html/ada/terminal_interface-curses-forms-field_types-intfield__ads.htm116
-rw-r--r--doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__adb.htm120
-rw-r--r--doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__ads.htm110
-rw-r--r--doc/html/ada/terminal_interface-curses-forms-field_types-numeric__adb.htm132
-rw-r--r--doc/html/ada/terminal_interface-curses-forms-field_types-numeric__ads.htm116
-rw-r--r--doc/html/ada/terminal_interface-curses-forms-field_types-regexp__adb.htm120
-rw-r--r--doc/html/ada/terminal_interface-curses-forms-field_types-regexp__ads.htm114
-rw-r--r--doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__adb.htm190
-rw-r--r--doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__ads.htm178
-rw-r--r--doc/html/ada/terminal_interface-curses-forms-field_types-user__adb.htm218
-rw-r--r--doc/html/ada/terminal_interface-curses-forms-field_types-user__ads.htm182
-rw-r--r--doc/html/ada/terminal_interface-curses-forms-field_types__adb.htm390
-rw-r--r--doc/html/ada/terminal_interface-curses-forms-field_types__ads.htm418
-rw-r--r--doc/html/ada/terminal_interface-curses-forms-field_user_data__adb.htm154
-rw-r--r--doc/html/ada/terminal_interface-curses-forms-field_user_data__ads.htm140
-rw-r--r--doc/html/ada/terminal_interface-curses-forms-form_user_data__adb.htm154
-rw-r--r--doc/html/ada/terminal_interface-curses-forms-form_user_data__ads.htm140
-rw-r--r--doc/html/ada/terminal_interface-curses-forms__adb.htm1492
-rw-r--r--doc/html/ada/terminal_interface-curses-forms__ads.htm1442
-rw-r--r--doc/html/ada/terminal_interface-curses-menus-item_user_data__adb.htm132
-rw-r--r--doc/html/ada/terminal_interface-curses-menus-item_user_data__ads.htm150
-rw-r--r--doc/html/ada/terminal_interface-curses-menus-menu_user_data__adb.htm132
-rw-r--r--doc/html/ada/terminal_interface-curses-menus-menu_user_data__ads.htm140
-rw-r--r--doc/html/ada/terminal_interface-curses-menus__adb.htm1134
-rw-r--r--doc/html/ada/terminal_interface-curses-menus__ads.htm1262
-rw-r--r--doc/html/ada/terminal_interface-curses-mouse__adb.htm318
-rw-r--r--doc/html/ada/terminal_interface-curses-mouse__ads.htm400
-rw-r--r--doc/html/ada/terminal_interface-curses-panels-user_data__adb.htm144
-rw-r--r--doc/html/ada/terminal_interface-curses-panels-user_data__ads.htm140
-rw-r--r--doc/html/ada/terminal_interface-curses-panels__adb.htm232
-rw-r--r--doc/html/ada/terminal_interface-curses-panels__ads.htm270
-rw-r--r--doc/html/ada/terminal_interface-curses-putwin__adb.htm140
-rw-r--r--doc/html/ada/terminal_interface-curses-putwin__ads.htm106
-rw-r--r--doc/html/ada/terminal_interface-curses-termcap__adb.htm264
-rw-r--r--doc/html/ada/terminal_interface-curses-termcap__ads.htm158
-rw-r--r--doc/html/ada/terminal_interface-curses-terminfo__adb.htm252
-rw-r--r--doc/html/ada/terminal_interface-curses-terminfo__ads.htm158
-rw-r--r--doc/html/ada/terminal_interface-curses-text_io-aux__adb.htm210
-rw-r--r--doc/html/ada/terminal_interface-curses-text_io-aux__ads.htm124
-rw-r--r--doc/html/ada/terminal_interface-curses-text_io-complex_io__adb.htm140
-rw-r--r--doc/html/ada/terminal_interface-curses-text_io-complex_io__ads.htm132
-rw-r--r--doc/html/ada/terminal_interface-curses-text_io-decimal_io__adb.htm148
-rw-r--r--doc/html/ada/terminal_interface-curses-text_io-decimal_io__ads.htm132
-rw-r--r--doc/html/ada/terminal_interface-curses-text_io-enumeration_io__adb.htm150
-rw-r--r--doc/html/ada/terminal_interface-curses-text_io-enumeration_io__ads.htm126
-rw-r--r--doc/html/ada/terminal_interface-curses-text_io-fixed_io__adb.htm148
-rw-r--r--doc/html/ada/terminal_interface-curses-text_io-fixed_io__ads.htm132
-rw-r--r--doc/html/ada/terminal_interface-curses-text_io-float_io__adb.htm148
-rw-r--r--doc/html/ada/terminal_interface-curses-text_io-float_io__ads.htm132
-rw-r--r--doc/html/ada/terminal_interface-curses-text_io-integer_io__adb.htm138
-rw-r--r--doc/html/ada/terminal_interface-curses-text_io-integer_io__ads.htm126
-rw-r--r--doc/html/ada/terminal_interface-curses-text_io-modular_io__adb.htm138
-rw-r--r--doc/html/ada/terminal_interface-curses-text_io-modular_io__ads.htm126
-rw-r--r--doc/html/ada/terminal_interface-curses-text_io__adb.htm478
-rw-r--r--doc/html/ada/terminal_interface-curses-text_io__ads.htm230
-rw-r--r--doc/html/ada/terminal_interface-curses-trace__adb.htm122
-rw-r--r--doc/html/ada/terminal_interface-curses-trace__ads.htm230
-rw-r--r--doc/html/ada/terminal_interface-curses__adb.htm3308
-rw-r--r--doc/html/ada/terminal_interface-curses__ads.htm4042
-rw-r--r--doc/html/ada/terminal_interface-curses_constants__ads.htm716
-rw-r--r--doc/html/ada/terminal_interface__ads.htm112
-rw-r--r--doc/html/announce.html1774
-rw-r--r--doc/html/hackguide.html163
-rw-r--r--doc/html/index.html15
-rw-r--r--doc/html/man/adacurses6-config.1.html146
-rw-r--r--doc/html/man/adacursesw6-config.1.html144
-rw-r--r--doc/html/man/captoinfo.1m.html286
-rw-r--r--doc/html/man/clear.1.html134
-rw-r--r--doc/html/man/curs_add_wch.3x.html276
-rw-r--r--doc/html/man/curs_add_wchstr.3x.html72
-rw-r--r--doc/html/man/curs_addch.3x.html376
-rw-r--r--doc/html/man/curs_addchstr.3x.html61
-rw-r--r--doc/html/man/curs_addstr.3x.html79
-rw-r--r--doc/html/man/curs_addwstr.3x.html79
-rw-r--r--doc/html/man/curs_attr.3x.html486
-rw-r--r--doc/html/man/curs_beep.3x.html22
-rw-r--r--doc/html/man/curs_bkgd.3x.html199
-rw-r--r--doc/html/man/curs_bkgrnd.3x.html158
-rw-r--r--doc/html/man/curs_border.3x.html63
-rw-r--r--doc/html/man/curs_border_set.3x.html108
-rw-r--r--doc/html/man/curs_clear.3x.html79
-rw-r--r--doc/html/man/curs_color.3x.html407
-rw-r--r--doc/html/man/curs_delch.3x.html57
-rw-r--r--doc/html/man/curs_deleteln.3x.html34
-rw-r--r--doc/html/man/curs_extend.3x.html45
-rw-r--r--doc/html/man/curs_get_wch.3x.html184
-rw-r--r--doc/html/man/curs_get_wstr.3x.html169
-rw-r--r--doc/html/man/curs_getcchar.3x.html108
-rw-r--r--doc/html/man/curs_getch.3x.html640
-rw-r--r--doc/html/man/curs_getstr.3x.html185
-rw-r--r--doc/html/man/curs_getyx.3x.html32
-rw-r--r--doc/html/man/curs_in_wch.3x.html50
-rw-r--r--doc/html/man/curs_in_wchstr.3x.html86
-rw-r--r--doc/html/man/curs_inch.3x.html56
-rw-r--r--doc/html/man/curs_inchstr.3x.html84
-rw-r--r--doc/html/man/curs_initscr.3x.html216
-rw-r--r--doc/html/man/curs_inopts.3x.html407
-rw-r--r--doc/html/man/curs_ins_wch.3x.html70
-rw-r--r--doc/html/man/curs_ins_wstr.3x.html97
-rw-r--r--doc/html/man/curs_insch.3x.html59
-rw-r--r--doc/html/man/curs_insstr.3x.html71
-rw-r--r--doc/html/man/curs_instr.3x.html64
-rw-r--r--doc/html/man/curs_inwstr.3x.html65
-rw-r--r--doc/html/man/curs_kernel.3x.html118
-rw-r--r--doc/html/man/curs_legacy.3x.html36
-rw-r--r--doc/html/man/curs_memleaks.3x.html66
-rw-r--r--doc/html/man/curs_mouse.3x.html427
-rw-r--r--doc/html/man/curs_move.3x.html39
-rw-r--r--doc/html/man/curs_opaque.3x.html87
-rw-r--r--doc/html/man/curs_outopts.3x.html184
-rw-r--r--doc/html/man/curs_overlay.3x.html52
-rw-r--r--doc/html/man/curs_pad.3x.html178
-rw-r--r--doc/html/man/curs_print.3x.html34
-rw-r--r--doc/html/man/curs_printw.3x.html140
-rw-r--r--doc/html/man/curs_refresh.3x.html103
-rw-r--r--doc/html/man/curs_scanw.3x.html185
-rw-r--r--doc/html/man/curs_scr_dump.3x.html104
-rw-r--r--doc/html/man/curs_scroll.3x.html79
-rw-r--r--doc/html/man/curs_slk.3x.html302
-rw-r--r--doc/html/man/curs_sp_funcs.3x.html122
-rw-r--r--doc/html/man/curs_termattrs.3x.html56
-rw-r--r--doc/html/man/curs_termcap.3x.html446
-rw-r--r--doc/html/man/curs_terminfo.3x.html793
-rw-r--r--doc/html/man/curs_threads.3x.html1083
-rw-r--r--doc/html/man/curs_touch.3x.html78
-rw-r--r--doc/html/man/curs_trace.3x.html142
-rw-r--r--doc/html/man/curs_util.3x.html354
-rw-r--r--doc/html/man/curs_variables.3x.html287
-rw-r--r--doc/html/man/curs_window.3x.html148
-rw-r--r--doc/html/man/default_colors.3x.html40
-rw-r--r--doc/html/man/define_key.3x.html46
-rw-r--r--doc/html/man/form.3x.html45
-rw-r--r--doc/html/man/form_cursor.3x.html34
-rw-r--r--doc/html/man/form_data.3x.html34
-rw-r--r--doc/html/man/form_driver.3x.html175
-rw-r--r--doc/html/man/form_field.3x.html36
-rw-r--r--doc/html/man/form_field_attributes.3x.html34
-rw-r--r--doc/html/man/form_field_buffer.3x.html43
-rw-r--r--doc/html/man/form_field_info.3x.html35
-rw-r--r--doc/html/man/form_field_just.3x.html35
-rw-r--r--doc/html/man/form_field_new.3x.html39
-rw-r--r--doc/html/man/form_field_opts.3x.html35
-rw-r--r--doc/html/man/form_field_userptr.3x.html35
-rw-r--r--doc/html/man/form_field_validation.3x.html176
-rw-r--r--doc/html/man/form_fieldtype.3x.html35
-rw-r--r--doc/html/man/form_hook.3x.html98
-rw-r--r--doc/html/man/form_new.3x.html35
-rw-r--r--doc/html/man/form_new_page.3x.html35
-rw-r--r--doc/html/man/form_opts.3x.html35
-rw-r--r--doc/html/man/form_page.3x.html37
-rw-r--r--doc/html/man/form_post.3x.html35
-rw-r--r--doc/html/man/form_requestname.3x.html54
-rw-r--r--doc/html/man/form_userptr.3x.html35
-rw-r--r--doc/html/man/form_variables.3x.html24
-rw-r--r--doc/html/man/form_win.3x.html35
-rw-r--r--doc/html/man/infocmp.1m.html450
-rw-r--r--doc/html/man/infotocap.1m.html71
-rw-r--r--doc/html/man/key_defined.3x.html36
-rw-r--r--doc/html/man/keybound.3x.html42
-rw-r--r--doc/html/man/keyok.3x.html38
-rw-r--r--doc/html/man/legacy_coding.3x.html66
-rw-r--r--doc/html/man/menu.3x.html37
-rw-r--r--doc/html/man/menu_attributes.3x.html35
-rw-r--r--doc/html/man/menu_cursor.3x.html35
-rw-r--r--doc/html/man/menu_driver.3x.html46
-rw-r--r--doc/html/man/menu_format.3x.html35
-rw-r--r--doc/html/man/menu_hook.3x.html51
-rw-r--r--doc/html/man/menu_items.3x.html37
-rw-r--r--doc/html/man/menu_mark.3x.html35
-rw-r--r--doc/html/man/menu_new.3x.html35
-rw-r--r--doc/html/man/menu_opts.3x.html35
-rw-r--r--doc/html/man/menu_pattern.3x.html34
-rw-r--r--doc/html/man/menu_post.3x.html35
-rw-r--r--doc/html/man/menu_requestname.3x.html35
-rw-r--r--doc/html/man/menu_spacing.3x.html71
-rw-r--r--doc/html/man/menu_userptr.3x.html35
-rw-r--r--doc/html/man/menu_win.3x.html37
-rw-r--r--doc/html/man/mitem_current.3x.html37
-rw-r--r--doc/html/man/mitem_name.3x.html35
-rw-r--r--doc/html/man/mitem_new.3x.html35
-rw-r--r--doc/html/man/mitem_opts.3x.html35
-rw-r--r--doc/html/man/mitem_userptr.3x.html35
-rw-r--r--doc/html/man/mitem_value.3x.html34
-rw-r--r--doc/html/man/mitem_visible.3x.html37
-rw-r--r--doc/html/man/ncurses.3x.html1628
-rw-r--r--doc/html/man/ncurses6-config.1.html132
-rw-r--r--doc/html/man/ncursesw6-config.1.html127
-rw-r--r--doc/html/man/new_pair.3x.html95
-rw-r--r--doc/html/man/panel.3x.html192
-rw-r--r--doc/html/man/resizeterm.3x.html115
-rw-r--r--doc/html/man/scr_dump.5.html206
-rw-r--r--doc/html/man/tabs.1.html160
-rw-r--r--doc/html/man/term.5.html254
-rw-r--r--doc/html/man/term.7.html64
-rw-r--r--doc/html/man/term_variables.3x.html88
-rw-r--r--doc/html/man/terminfo.5.html3206
-rw-r--r--doc/html/man/tic.1m.html474
-rw-r--r--doc/html/man/toe.1m.html206
-rw-r--r--doc/html/man/tput.1.html756
-rw-r--r--doc/html/man/tset.1.html368
-rw-r--r--doc/html/man/user_caps.5.html188
-rw-r--r--doc/html/man/wresize.3x.html58
-rw-r--r--doc/html/ncurses-intro.html740
-rw-r--r--doc/ncurses-intro.doc182
-rw-r--r--form/Makefile.in15
-rw-r--r--form/READ.ME8
-rw-r--r--form/fld_def.c10
-rw-r--r--form/fld_ftchoice.c6
-rw-r--r--form/fld_ftlink.c10
-rw-r--r--form/fld_info.c12
-rw-r--r--form/fld_just.c12
-rw-r--r--form/fld_link.c12
-rw-r--r--form/fld_max.c8
-rw-r--r--form/fld_move.c8
-rw-r--r--form/fld_opts.c24
-rw-r--r--form/fld_pad.c12
-rw-r--r--form/fld_page.c14
-rw-r--r--form/fld_stat.c14
-rw-r--r--form/fld_type.c12
-rw-r--r--form/fld_user.c12
-rw-r--r--form/form.h6
-rw-r--r--form/form.priv.h18
-rw-r--r--form/frm_cursor.c8
-rw-r--r--form/frm_data.c23
-rw-r--r--form/frm_def.c8
-rw-r--r--form/frm_driver.c51
-rw-r--r--form/frm_opts.c28
-rw-r--r--form/frm_page.c12
-rw-r--r--form/frm_req_name.c15
-rw-r--r--form/frm_scale.c8
-rw-r--r--form/frm_sub.c14
-rw-r--r--form/frm_user.c12
-rw-r--r--form/frm_win.c14
-rw-r--r--form/fty_enum.c46
-rw-r--r--form/fty_generic.c6
-rw-r--r--form/fty_int.c44
-rw-r--r--form/fty_ipv4.c16
-rw-r--r--form/fty_num.c20
-rw-r--r--form/fty_regex.c35
-rw-r--r--form/llib-lform192
-rw-r--r--form/llib-lformt192
-rw-r--r--form/llib-lformtw198
-rw-r--r--form/llib-lformw198
-rw-r--r--include/Caps303
-rw-r--r--include/Caps-ncurses21
-rw-r--r--include/Caps.aix4297
-rw-r--r--include/Caps.hpux11301
-rw-r--r--include/Caps.keys298
-rw-r--r--include/Caps.osf1r5222
-rw-r--r--include/Caps.uwin225
-rwxr-xr-xinclude/MKkey_defs.sh15
-rwxr-xr-xinclude/MKncurses_def.sh6
-rw-r--r--include/MKterm.h.awk.in39
-rw-r--r--include/Makefile.in19
-rw-r--r--include/capdefaults.c6
-rw-r--r--include/curses.events4
-rw-r--r--include/curses.h.in116
-rw-r--r--include/curses.tail16
-rw-r--r--include/curses.wide6
-rwxr-xr-xinclude/edit_cfg.sh19
-rw-r--r--include/headers8
-rw-r--r--include/nc_access.h80
-rw-r--r--include/nc_alloc.h17
-rw-r--r--include/nc_mingw.h13
-rw-r--r--include/nc_string.h8
-rw-r--r--include/nc_tparm.h5
-rw-r--r--include/nc_win32.h8
-rw-r--r--include/ncurses_defs30
-rw-r--r--include/ncurses_dll.h.in10
-rw-r--r--include/ncurses_mingw.h14
-rw-r--r--include/term_entry.h29
-rw-r--r--include/termcap.h.in10
-rw-r--r--include/tic.h47
-rw-r--r--include/win32_curses.h6
-rwxr-xr-xinstall-sh671
-rw-r--r--man/MKada_config.in139
-rw-r--r--man/MKncu_config.in111
-rwxr-xr-xman/MKterminfo.sh18
-rw-r--r--man/Makefile.in23
-rw-r--r--man/captoinfo.1m274
-rw-r--r--man/clear.1223
-rw-r--r--man/curs_add_wch.3x403
-rw-r--r--man/curs_add_wchstr.3x115
-rw-r--r--man/curs_addch.3x579
-rw-r--r--man/curs_addchstr.3x114
-rw-r--r--man/curs_addstr.3x156
-rw-r--r--man/curs_addwstr.3x157
-rw-r--r--man/curs_attr.3x667
-rw-r--r--man/curs_beep.3x38
-rw-r--r--man/curs_bkgd.3x267
-rw-r--r--man/curs_bkgrnd.3x237
-rw-r--r--man/curs_border.3x177
-rw-r--r--man/curs_border_set.3x256
-rw-r--r--man/curs_clear.3x123
-rw-r--r--man/curs_color.3x561
-rw-r--r--man/curs_delch.3x117
-rw-r--r--man/curs_deleteln.3x93
-rw-r--r--man/curs_extend.3x85
-rw-r--r--man/curs_get_wch.3x346
-rw-r--r--man/curs_get_wstr.3x273
-rw-r--r--man/curs_getcchar.3x118
-rw-r--r--man/curs_getch.3x981
-rw-r--r--man/curs_getstr.3x282
-rw-r--r--man/curs_getyx.3x108
-rw-r--r--man/curs_in_wch.3x73
-rw-r--r--man/curs_in_wchstr.3x162
-rw-r--r--man/curs_inch.3x97
-rw-r--r--man/curs_inchstr.3x137
-rw-r--r--man/curs_initscr.3x283
-rw-r--r--man/curs_inopts.3x724
-rw-r--r--man/curs_ins_wch.3x119
-rw-r--r--man/curs_ins_wstr.3x151
-rw-r--r--man/curs_insch.3x122
-rw-r--r--man/curs_insstr.3x139
-rw-r--r--man/curs_instr.3x129
-rw-r--r--man/curs_inwstr.3x155
-rw-r--r--man/curs_kernel.3x278
-rw-r--r--man/curs_legacy.3x132
-rw-r--r--man/curs_memleaks.3x113
-rw-r--r--man/curs_mouse.3x631
-rw-r--r--man/curs_move.3x82
-rw-r--r--man/curs_opaque.3x242
-rw-r--r--man/curs_outopts.3x216
-rw-r--r--man/curs_overlay.3x92
-rw-r--r--man/curs_pad.3x302
-rw-r--r--man/curs_print.3x55
-rw-r--r--man/curs_printw.3x263
-rw-r--r--man/curs_refresh.3x148
-rw-r--r--man/curs_scanw.3x322
-rw-r--r--man/curs_scr_dump.3x171
-rw-r--r--man/curs_scroll.3x156
-rw-r--r--man/curs_slk.3x445
-rw-r--r--man/curs_sp_funcs.3x496
-rw-r--r--man/curs_termattrs.3x146
-rw-r--r--man/curs_termcap.3x701
-rw-r--r--man/curs_terminfo.3x1455
-rw-r--r--man/curs_threads.3x1117
-rw-r--r--man/curs_touch.3x109
-rw-r--r--man/curs_trace.3x211
-rw-r--r--man/curs_util.3x382
-rw-r--r--man/curs_variables.3x403
-rw-r--r--man/curs_window.3x252
-rw-r--r--man/default_colors.3x59
-rw-r--r--man/define_key.3x41
-rw-r--r--man/form.3x238
-rw-r--r--man/form_cursor.3x33
-rw-r--r--man/form_data.3x33
-rw-r--r--man/form_driver.3x122
-rw-r--r--man/form_field.3x57
-rw-r--r--man/form_field_attributes.3x81
-rw-r--r--man/form_field_buffer.3x79
-rw-r--r--man/form_field_info.3x59
-rw-r--r--man/form_field_just.3x57
-rw-r--r--man/form_field_new.3x62
-rw-r--r--man/form_field_opts.3x52
-rw-r--r--man/form_field_userptr.3x35
-rw-r--r--man/form_field_validation.3x179
-rw-r--r--man/form_fieldtype.3x93
-rw-r--r--man/form_hook.3x90
-rw-r--r--man/form_new.3x42
-rw-r--r--man/form_new_page.3x55
-rw-r--r--man/form_opts.3x53
-rw-r--r--man/form_page.3x71
-rw-r--r--man/form_post.3x43
-rw-r--r--man/form_requestname.3x44
-rw-r--r--man/form_userptr.3x34
-rw-r--r--man/form_variables.3x44
-rw-r--r--man/form_win.3x60
-rw-r--r--man/infocmp.1m611
-rw-r--r--man/infotocap.1m104
-rw-r--r--man/key_defined.3x31
-rw-r--r--man/keybound.3x38
-rw-r--r--man/keyok.3x33
-rw-r--r--man/legacy_coding.3x90
-rwxr-xr-xman/make_sed.sh43
-rw-r--r--man/man_db.renames.in (renamed from man/man_db.renames)143
-rw-r--r--man/manhtml.aliases68
-rw-r--r--man/manhtml.externs28
-rw-r--r--man/manlinks.sed40
-rw-r--r--man/menu.3x210
-rw-r--r--man/menu_attributes.3x108
-rw-r--r--man/menu_cursor.3x33
-rw-r--r--man/menu_driver.3x57
-rw-r--r--man/menu_format.3x44
-rw-r--r--man/menu_hook.3x79
-rw-r--r--man/menu_items.3x58
-rw-r--r--man/menu_mark.3x46
-rw-r--r--man/menu_new.3x42
-rw-r--r--man/menu_opts.3x49
-rw-r--r--man/menu_pattern.3x45
-rw-r--r--man/menu_post.3x46
-rw-r--r--man/menu_requestname.3x42
-rw-r--r--man/menu_spacing.3x78
-rw-r--r--man/menu_userptr.3x32
-rw-r--r--man/menu_win.3x60
-rw-r--r--man/mitem_current.3x65
-rw-r--r--man/mitem_name.3x38
-rw-r--r--man/mitem_new.3x42
-rw-r--r--man/mitem_opts.3x51
-rw-r--r--man/mitem_userptr.3x33
-rw-r--r--man/mitem_value.3x43
-rw-r--r--man/mitem_visible.3x27
-rw-r--r--man/ncurses.3x3402
-rw-r--r--man/new_pair.3x104
-rw-r--r--man/panel.3x349
-rw-r--r--man/resizeterm.3x165
-rw-r--r--man/scr_dump.5427
-rw-r--r--man/tabs.1323
-rw-r--r--man/term.5247
-rw-r--r--man/term.7122
-rw-r--r--man/term_variables.3x145
-rw-r--r--man/terminfo.head132
-rw-r--r--man/terminfo.tail1188
-rw-r--r--man/tic.1m541
-rw-r--r--man/toe.1m324
-rw-r--r--man/tput.11345
-rw-r--r--man/tset.1463
-rw-r--r--man/user_caps.5231
-rw-r--r--man/wresize.3x56
-rw-r--r--menu/Makefile.in17
-rw-r--r--menu/READ.ME6
-rw-r--r--menu/llib-lmenu98
-rw-r--r--menu/llib-lmenut98
-rw-r--r--menu/llib-lmenutw98
-rw-r--r--menu/llib-lmenuw98
-rw-r--r--menu/m_attribs.c38
-rw-r--r--menu/m_cursor.c10
-rw-r--r--menu/m_driver.c18
-rw-r--r--menu/m_format.c7
-rw-r--r--menu/m_global.c48
-rw-r--r--menu/m_hook.c44
-rw-r--r--menu/m_item_cur.c16
-rw-r--r--menu/m_item_nam.c12
-rw-r--r--menu/m_item_new.c34
-rw-r--r--menu/m_item_opt.c28
-rw-r--r--menu/m_item_top.c16
-rw-r--r--menu/m_item_val.c18
-rw-r--r--menu/m_item_vis.c8
-rw-r--r--menu/m_items.c18
-rw-r--r--menu/m_new.c18
-rw-r--r--menu/m_pad.c14
-rw-r--r--menu/m_pattern.c12
-rw-r--r--menu/m_post.c64
-rw-r--r--menu/m_req_name.c15
-rw-r--r--menu/m_scale.c10
-rw-r--r--menu/m_sub.c12
-rw-r--r--menu/m_win.c12
-rw-r--r--misc/Makefile.in32
-rwxr-xr-xmisc/csort6
-rw-r--r--misc/gen-pkgconfig.in24
-rwxr-xr-xmisc/gen_edit.sh12
-rw-r--r--misc/magic6
-rw-r--r--misc/makedef.cmd8
-rwxr-xr-xmisc/makellib40
-rwxr-xr-xmisc/ncu2openbsd1288
-rw-r--r--misc/ncurses-config.in32
-rw-r--r--misc/run_tic.in43
-rwxr-xr-xmisc/shlib8
-rwxr-xr-xmisc/tdlint24
-rw-r--r--misc/terminfo.src10074
-rw-r--r--mk-0th.awk12
-rw-r--r--mk-1st.awk100
-rw-r--r--mk-2nd.awk6
-rw-r--r--mk-hdr.awk8
-rw-r--r--ncurses/Makefile.in50
-rw-r--r--ncurses/README.IZ6
-rwxr-xr-xncurses/base/MKlib_gen.sh23
-rw-r--r--ncurses/base/MKunctrl.awk7
-rw-r--r--ncurses/base/key_defined.c7
-rw-r--r--ncurses/base/keyok.c6
-rw-r--r--ncurses/base/lib_addch.c35
-rw-r--r--ncurses/base/lib_addstr.c32
-rw-r--r--ncurses/base/lib_bkgd.c4
-rw-r--r--ncurses/base/lib_clreol.c8
-rw-r--r--ncurses/base/lib_color.c82
-rw-r--r--ncurses/base/lib_delwin.c38
-rw-r--r--ncurses/base/lib_dft_fgbg.c8
-rw-r--r--ncurses/base/lib_echo.c8
-rw-r--r--ncurses/base/lib_endwin.c28
-rw-r--r--ncurses/base/lib_erase.c6
-rw-r--r--ncurses/base/lib_freeall.c11
-rw-r--r--ncurses/base/lib_getch.c63
-rw-r--r--ncurses/base/lib_getstr.c35
-rw-r--r--ncurses/base/lib_insnstr.c9
-rw-r--r--ncurses/base/lib_instr.c8
-rw-r--r--ncurses/base/lib_mouse.c153
-rw-r--r--ncurses/base/lib_mvwin.c8
-rw-r--r--ncurses/base/lib_newterm.c7
-rw-r--r--ncurses/base/lib_newwin.c8
-rw-r--r--ncurses/base/lib_nl.c8
-rw-r--r--ncurses/base/lib_overlay.c16
-rw-r--r--ncurses/base/lib_pad.c12
-rw-r--r--ncurses/base/lib_refresh.c24
-rw-r--r--ncurses/base/lib_restart.c17
-rw-r--r--ncurses/base/lib_screen.c61
-rw-r--r--ncurses/base/lib_set_term.c51
-rw-r--r--ncurses/base/lib_slk.c8
-rw-r--r--ncurses/base/lib_slkinit.c7
-rw-r--r--ncurses/base/lib_slkrefr.c6
-rw-r--r--ncurses/base/lib_wattron.c8
-rw-r--r--ncurses/base/lib_window.c10
-rw-r--r--ncurses/base/new_pair.c6
-rw-r--r--ncurses/base/resizeterm.c14
-rw-r--r--ncurses/base/safe_sprintf.c36
-rw-r--r--ncurses/base/tries.c7
-rw-r--r--ncurses/base/vsscanf.c11
-rw-r--r--ncurses/base/wresize.c10
-rw-r--r--ncurses/curses.priv.h507
-rw-r--r--ncurses/llib-lncurses1420
-rw-r--r--ncurses/llib-lncursest1422
-rw-r--r--ncurses/llib-lncursestw1888
-rw-r--r--ncurses/llib-lncursesw1886
-rw-r--r--ncurses/llib-ltic54
-rw-r--r--ncurses/llib-ltict54
-rw-r--r--ncurses/llib-ltictw52
-rw-r--r--ncurses/llib-lticw52
-rw-r--r--ncurses/llib-ltinfo372
-rw-r--r--ncurses/llib-ltinfot374
-rw-r--r--ncurses/llib-ltinfotw370
-rw-r--r--ncurses/llib-ltinfow368
-rw-r--r--ncurses/new_pair.h13
-rw-r--r--ncurses/report_offsets.c59
-rw-r--r--ncurses/term.priv.h364
-rwxr-xr-xncurses/tinfo/MKcaptab.sh5
-rwxr-xr-xncurses/tinfo/MKfallback.sh7
-rwxr-xr-xncurses/tinfo/MKkeys_list.sh10
-rw-r--r--ncurses/tinfo/access.c127
-rw-r--r--ncurses/tinfo/add_tries.c7
-rw-r--r--ncurses/tinfo/alloc_entry.c206
-rw-r--r--ncurses/tinfo/alloc_ttype.c122
-rw-r--r--ncurses/tinfo/captoinfo.c16
-rw-r--r--ncurses/tinfo/comp_error.c23
-rw-r--r--ncurses/tinfo/comp_expand.c16
-rw-r--r--ncurses/tinfo/comp_hash.c21
-rw-r--r--ncurses/tinfo/comp_parse.c140
-rw-r--r--ncurses/tinfo/comp_scan.c82
-rw-r--r--ncurses/tinfo/db_iterator.c24
-rw-r--r--ncurses/tinfo/doalloc.c11
-rw-r--r--ncurses/tinfo/entries.c28
-rw-r--r--ncurses/tinfo/free_ttype.c18
-rw-r--r--ncurses/tinfo/init_keytry.c8
-rw-r--r--ncurses/tinfo/lib_cur_term.c17
-rw-r--r--ncurses/tinfo/lib_data.c28
-rw-r--r--ncurses/tinfo/lib_kernel.c48
-rw-r--r--ncurses/tinfo/lib_longname.c7
-rw-r--r--ncurses/tinfo/lib_napms.c7
-rw-r--r--ncurses/tinfo/lib_options.c6
-rw-r--r--ncurses/tinfo/lib_print.c9
-rw-r--r--ncurses/tinfo/lib_raw.c60
-rw-r--r--ncurses/tinfo/lib_setup.c278
-rw-r--r--ncurses/tinfo/lib_termcap.c6
-rw-r--r--ncurses/tinfo/lib_tgoto.c16
-rw-r--r--ncurses/tinfo/lib_tparm.c681
-rw-r--r--ncurses/tinfo/lib_tputs.c52
-rw-r--r--ncurses/tinfo/lib_win32con.c1294
-rw-r--r--ncurses/tinfo/lib_win32util.c28
-rw-r--r--ncurses/tinfo/make_hash.c6
-rw-r--r--ncurses/tinfo/make_keys.c12
-rw-r--r--ncurses/tinfo/obsolete.c99
-rw-r--r--ncurses/tinfo/parse_entry.c78
-rw-r--r--ncurses/tinfo/read_entry.c110
-rw-r--r--ncurses/tinfo/read_termcap.c36
-rw-r--r--ncurses/tinfo/strings.c6
-rw-r--r--ncurses/tinfo/tinfo_driver.c19
-rw-r--r--ncurses/tinfo/trim_sgr0.c14
-rw-r--r--ncurses/tinfo/write_entry.c118
-rw-r--r--ncurses/trace/lib_trace.c99
-rw-r--r--ncurses/trace/lib_traceatr.c26
-rw-r--r--ncurses/trace/lib_tracechr.c16
-rw-r--r--ncurses/trace/lib_tracedmp.c8
-rw-r--r--ncurses/trace/trace_buf.c10
-rw-r--r--ncurses/trace/varargs.c12
-rw-r--r--ncurses/trace/visbuf.c12
-rwxr-xr-xncurses/tty/MKexpanded.sh9
-rw-r--r--ncurses/tty/hardscroll.c47
-rw-r--r--ncurses/tty/hashmap.c11
-rw-r--r--ncurses/tty/lib_mvcur.c59
-rw-r--r--ncurses/tty/lib_tstp.c24
-rw-r--r--ncurses/tty/lib_twait.c25
-rw-r--r--ncurses/tty/lib_vidattr.c6
-rw-r--r--ncurses/tty/tty_update.c41
-rw-r--r--ncurses/wcwidth.h18
-rw-r--r--ncurses/widechar/lib_add_wch.c18
-rw-r--r--ncurses/widechar/lib_cchar.c14
-rw-r--r--ncurses/widechar/lib_erasewchar.c34
-rw-r--r--ncurses/widechar/lib_get_wch.c6
-rw-r--r--ncurses/widechar/lib_get_wstr.c53
-rw-r--r--ncurses/widechar/lib_ins_wch.c13
-rw-r--r--ncurses/widechar/lib_key_name.c19
-rw-r--r--ncurses/widechar/lib_pecho_wchar.c6
-rw-r--r--ncurses/widechar/lib_unget_wch.c6
-rw-r--r--ncurses/widechar/lib_vid_attr.c6
-rw-r--r--ncurses/win32con/gettimeofday.c6
-rw-r--r--ncurses/win32con/win32_driver.c12
-rw-r--r--ncurses/win32con/win_driver.c97
-rw-r--r--package/debian-mingw/changelog6
-rw-r--r--package/debian-mingw/compat2
-rw-r--r--package/debian-mingw/control7
-rw-r--r--package/debian-mingw/copyright12
-rwxr-xr-xpackage/debian-mingw/rules4
-rw-r--r--package/debian-mingw64/changelog6
-rw-r--r--package/debian-mingw64/compat2
-rw-r--r--package/debian-mingw64/control7
-rw-r--r--package/debian-mingw64/copyright12
-rwxr-xr-xpackage/debian-mingw64/rules4
-rw-r--r--package/debian/changelog6
-rw-r--r--package/debian/compat2
-rw-r--r--package/debian/control4
-rw-r--r--package/debian/copyright12
-rw-r--r--package/debian/ncurses6.lintian-overrides8
-rw-r--r--package/debian/ncursest6.lintian-overrides8
-rwxr-xr-xpackage/debian/rules53
-rw-r--r--package/mingw-ncurses.nsi8
-rw-r--r--package/mingw-ncurses.spec14
-rw-r--r--package/ncurses.map23
-rw-r--r--package/ncurses.spec29
-rw-r--r--package/ncurses.sym16
-rw-r--r--package/ncursest.map23
-rw-r--r--package/ncursest.spec4
-rw-r--r--package/ncursest.sym16
-rw-r--r--package/ncursestw.map25
-rw-r--r--package/ncursestw.sym18
-rw-r--r--package/ncursesw.map25
-rw-r--r--package/ncursesw.sym20
-rw-r--r--panel/Makefile.in17
-rw-r--r--panel/llib-lpanel22
-rw-r--r--panel/llib-lpanelt22
-rw-r--r--panel/llib-lpaneltw22
-rw-r--r--panel/llib-lpanelw22
-rw-r--r--panel/p_bottom.c6
-rw-r--r--panel/p_new.c8
-rw-r--r--panel/p_show.c6
-rw-r--r--panel/p_user.c6
-rwxr-xr-xprogs/MKtermsort.sh37
-rw-r--r--progs/Makefile.in61
-rwxr-xr-xprogs/capconvert45
-rw-r--r--progs/clear.c6
-rw-r--r--progs/dump_entry.c86
-rw-r--r--progs/dump_entry.h7
-rw-r--r--progs/infocmp.c163
-rw-r--r--progs/modules10
-rw-r--r--progs/progs.priv.h153
-rw-r--r--progs/reset_cmd.c305
-rw-r--r--progs/reset_cmd.h8
-rw-r--r--progs/tabs.c223
-rw-r--r--progs/tic.c622
-rw-r--r--progs/toe.c85
-rw-r--r--progs/tparm_type.c13
-rw-r--r--progs/tparm_type.h6
-rw-r--r--progs/tput.c195
-rw-r--r--progs/tset.c39
-rw-r--r--progs/tty_settings.c12
-rw-r--r--test/Makefile.in44
-rw-r--r--test/README160
-rw-r--r--test/aclocal.m4622
-rw-r--r--test/back_ground.c28
-rw-r--r--test/background.c28
-rw-r--r--test/blue.c41
-rw-r--r--test/bs.68
-rw-r--r--test/bs.c127
-rw-r--r--test/cardfile.c27
-rw-r--r--test/chgat.c41
-rw-r--r--test/clip_printw.c139
-rw-r--r--test/color_content.c65
-rw-r--r--test/color_name.h6
-rw-r--r--test/color_set.c41
-rw-r--r--test/combine.c313
-rwxr-xr-xtest/configure5516
-rw-r--r--test/configure.in20
-rw-r--r--test/demo_altkeys.c69
-rw-r--r--test/demo_defkey.c50
-rw-r--r--test/demo_forms.c38
-rw-r--r--test/demo_keyok.c40
-rw-r--r--test/demo_menus.c68
-rw-r--r--test/demo_new_pair.c41
-rw-r--r--test/demo_panels.c34
-rw-r--r--test/demo_tabs.c48
-rw-r--r--test/demo_termcap.c80
-rw-r--r--test/demo_terminfo.c81
-rw-r--r--test/ditto.c78
-rw-r--r--test/dots.c34
-rw-r--r--test/dots_curses.c28
-rw-r--r--test/dots_mvcur.c34
-rw-r--r--test/dots_termcap.c42
-rw-r--r--test/dots_xcurses.c29
-rw-r--r--test/dump_window.c6
-rw-r--r--test/dup_field.c132
-rw-r--r--test/echochar.c40
-rw-r--r--test/extended_color.c34
-rw-r--r--test/filter.c30
-rw-r--r--test/firework.c22
-rw-r--r--test/firstlast.c42
-rw-r--r--test/foldkeys.c72
-rw-r--r--test/form_driver_w.c54
-rw-r--r--test/gdc.64
-rw-r--r--test/gdc.c40
-rw-r--r--test/hanoi.c38
-rw-r--r--test/hashtest.c46
-rw-r--r--test/inch_wide.c44
-rw-r--r--test/inchs.c44
-rw-r--r--test/ins_wide.c35
-rw-r--r--test/insdelln.c41
-rw-r--r--test/inserts.c33
-rw-r--r--test/key_names.c36
-rw-r--r--test/keynames.c36
-rw-r--r--test/knight.c29
-rw-r--r--test/list_keys.c69
-rwxr-xr-xtest/listused.sh36
-rw-r--r--test/lrtest.c58
-rwxr-xr-xtest/make-tar.sh76
-rw-r--r--test/mk-test.awk46
-rw-r--r--test/modules9
-rw-r--r--test/move_field.c69
-rw-r--r--test/movewindow.c52
-rw-r--r--test/ncurses.c133
-rw-r--r--test/newdemo.c38
-rw-r--r--test/package/debian-mingw/compat2
-rw-r--r--test/package/debian-mingw/control2
-rw-r--r--test/package/debian-mingw/copyright10
-rwxr-xr-xtest/package/debian-mingw/rules2
-rw-r--r--test/package/debian-mingw64/compat2
-rw-r--r--test/package/debian-mingw64/control2
-rw-r--r--test/package/debian-mingw64/copyright10
-rwxr-xr-xtest/package/debian-mingw64/rules2
-rw-r--r--test/package/debian/compat2
-rw-r--r--test/package/debian/control2
-rw-r--r--test/package/debian/copyright10
-rwxr-xr-xtest/package/debian/rules15
-rw-r--r--test/package/mingw-ncurses-examples.spec35
-rw-r--r--test/package/ncurses-examples.spec41
-rw-r--r--test/padview.c59
-rw-r--r--test/pair_content.c75
-rw-r--r--test/picsmap.c144
-rw-r--r--test/picsmap.h8
-rw-r--r--test/popup_msg.c6
-rw-r--r--test/programs13
-rw-r--r--test/railroad.c44
-rw-r--r--test/rain.c40
-rw-r--r--test/redraw.c37
-rw-r--r--test/savescreen.c67
-rwxr-xr-xtest/savescreen.sh11
-rw-r--r--test/sp_tinfo.c49
-rw-r--r--test/tclock.c40
-rw-r--r--test/test.priv.h176
-rw-r--r--test/test_add_wchstr.c46
-rw-r--r--test/test_addchstr.c35
-rw-r--r--test/test_addstr.c33
-rw-r--r--test/test_addwstr.c35
-rw-r--r--test/test_arrays.c53
-rw-r--r--test/test_delwin.c151
-rw-r--r--test/test_endwin.c132
-rw-r--r--test/test_get_wstr.c44
-rw-r--r--test/test_getstr.c44
-rw-r--r--test/test_instr.c44
-rw-r--r--test/test_inwstr.c44
-rw-r--r--test/test_mouse.c284
-rw-r--r--test/test_opaque.c70
-rw-r--r--test/test_setupterm.c101
-rw-r--r--test/test_sgr.c52
-rw-r--r--test/test_termattrs.c37
-rw-r--r--test/test_tparm.c557
-rw-r--r--test/test_unget_wch.c116
-rw-r--r--test/test_vid_puts.c34
-rw-r--r--test/test_vidputs.c36
-rw-r--r--test/testaddch.c42
-rw-r--r--test/testcurs.c65
-rw-r--r--test/testscanw.c50
-rwxr-xr-xtest/tracemunch4
-rw-r--r--test/view.c69
-rw-r--r--test/worm.c97
-rw-r--r--test/xmas.c22
-rw-r--r--test/xterm-16color.dat6
879 files changed, 88348 insertions, 67799 deletions
diff --git a/ANNOUNCE b/ANNOUNCE
index e0603d622394..6abf551c684d 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,4 +1,4 @@
- Announcing ncurses 6.2
+ Announcing ncurses 6.5
Overview
@@ -40,19 +40,19 @@ Overview
The ncurses distribution is available at ncurses' homepage:
- ftp://ftp.invisible-island.net/ncurses/ or
+ https://invisible-island.net/archives/ncurses/ or
https://invisible-mirror.net/archives/ncurses/ .
- It is also available via anonymous FTP at the GNU distribution site
+ It is also available at the GNU distribution site
- ftp://ftp.gnu.org/gnu/ncurses/ .
+ https://ftp.gnu.org/gnu/ncurses/ .
Release Notes
- These notes are for ncurses 6.2, released February 12, 2020.
+ These notes are for ncurses 6.5, released April 27, 2024.
This release is designed to be source-compatible with ncurses 5.0
- through 6.1; providing extensions to the application binary interface
+ through 6.4; providing extensions to the application binary interface
(ABI). Although the source can still be configured to support the
ncurses 5 ABI, the reason for the release is to reflect improvements
to the ncurses 6 ABI and the supporting utility programs.
@@ -60,340 +60,192 @@ Release Notes
There are, of course, numerous other improvements, listed in this
announcement.
- The most important bug-fixes/improvements dealt with user-defined
- capabilities in terminal descriptions. The release notes also mention
- some other bug-fixes, but are focused on new features and improvements
- to existing features since ncurses 6.1 release.
+ The most important bug-fixes/improvements dealt with robustness
+ issues. The release notes also mention some other bug-fixes, but are
+ focused on new features and improvements to existing features since
+ ncurses 6.4 release.
Library improvements
New features
- There are several new features:
- * O_EDGE_INSERT_STAY tells the form library to optionally delay
- cursor movement on a field edge/boundary
- * O_INPUT_FIELD extension to form library allows a dynamic field to
- shrink if the new limit is smaller than the current field size.
- * added exit_curses and exit_terminfo to replace internal symbols
- for leak-checking.
- * added curses_trace, to replace trace().
-
- Additionally, to improve performance other changes (and extensions)
- are provided in this release:
- * mouse decoding now handles shift/control/alt logic when decoding
- xterm's 1006 mode
- * ncurses now defines a limit for wgetnstr, wgetn_wstr when length
- is negative or "too large".
- * reordered loop-limit checks in winsnstr in case the string has no
- terminating null and only the number of characters is used.
- * there is now no buffer-size limit when reading the $TERMCAP
- variable.
- * the $TERMCAP variable may be interpreted as a fallback to a
- terminfo entry
- * mvcur now decides whether to use hard-tabs, using xt, tbc and hts
- as clues.
- * extended colors are improved by modifying an internal call to
- vid_puts to pass extended color pairs e.g., from tty_update.c and
- lib_mvcur.c
- * the initialization functions now avoid relying upon persistent
- data for the result from getenv
- * scrolling is improved:
- + a limit check in newline_forces_scroll handles the case where
- the row is inside scroll-margins, but not at the end.
- + improved loop limits in _nc_scroll_window handle a case where
- the scrolled data is a pad which is taller than the window.
+ These are new features:
+ * The low-level terminfo and termcap interfaces are used both by the
+ higher-level curses library, as well as by many applications.
+ The functions which convert parameterized terminal capability
+ strings for output to the terminal (tiparm and tparm) analyze the
+ capability string to determine which parameters are strings (i.e.,
+ addresses), versus numbers (not addresses).
+ The library's analysis of a capability string may differ from the
+ calling application's design if environment variables are used to
+ point to an invalid terminal database. This is a longstanding
+ problem with all implementations of terminfo, dating from the
+ early 1980s.
+ Two new functions address this problem: by providing a function
+ which allows the calling application to tell ncurses how many
+ string-parameters to expect:
+ + tiscan_s helps applications check formatting capabilities
+ that would be passed to tiparm_s.
+ + tiparm_s provides applications a way to tell ncurses what the
+ expected parameters are for a capability.
+ * The ncurses library supports a compile-time feature (enabled with
+ the configure --enable-check-size option) which simplifies
+ initialization with terminals which do not negotiate window
+ (screen) size. This is done in setupterm, by providing for using
+ ANSI cursor-position report (in user6/user7 terminfo capabilities)
+ to obtain the screen size if neither environment variables or
+ ioctl is used.
+ The ncurses test-program with options "-E -T" demonstrates this
+ feature.
+ * add functions to query tty-flags in SCREEN
+
+ This release drops compatibility with obsolete versions of tack, e.g.,
+ pre-1.08
Other improvements
- These are revised features:
- * used "const" in some prototypes rather than NCURSES_CONST where
- X/Open Curses was updated to do this, e.g., wscanw, newterm, the
- terminfo interface. Also use "const" for consistency in the
- termcap interface, which was withdrawn by X/Open Curses in Issue 5
- (2007). As of Issue 7, X/Open Curses still lacks "const" for
- certain return values, e.g., keyname.
- * modified wbkgd and wbkgrnd to improve compatibility with SVr4
- curses, changing the way the window rendition is updated when the
- background character is modified
- * improved terminfo write/read by modifying the fourth item of the
- extended header to denote the number of valid strings in the
- extended string table (see term(5)).
- * modified the initialization checks for mouse so that the
- xterm+sm+1006 block will work with terminal descriptions not
- mentioning xterm.
-
- These were done to limit or ultimately deprecate features:
- * deprecated safe-sprintf, since the vsnprintf function, which does
- what was needed, was standardized long ago.
- * marked vwprintw and vwscanw as deprecated; recommend using
- vw_printw and vw_scanw, respectively.
- * added deprecation warnings for internal functions called by older
- versions of tack.
- * removed unused _nc_import_termtype2 function.
-
These are improvements to existing features:
- * check parameter of set_escdelay, return ERR if negative.
- * check parameter of set_tabsize, return ERR if not greater than
- zero
- * correct a status-check in _nc_read_tic_entry() so that if reading
- a hex/b64 $TERMINFO, and the $TERM does not match, fall-through to
- the compiled-in search list.
- * amend check for repeat_char to handle a case where setlocale() was
- called after initscr
- * move macro for is_linetouched inside NCURSES_NOMACROS ifndef.
- * use _nc_copy_termtype2 rather than direct assignment in setupterm,
- in case it is called repeatedly using fallback terminfo
- descriptions
- * improve workaround for Solaris wcwidth versus line-drawing
- characters
- * add checks in repair_subwindows to keep the current position and
- scroll-margins inside the resized subwindow.
- * correct a buffer-limit in write_entry.c for systems that use
- caseless filenames.
- * improved build-time utility report_offsets:
- + add categories, e.g., "w" for wide-character, "t" for threads
- to make the report more readable. Reorganized the structures
- reported to make the categories more apparent.
- + add NCURSES_GLOBALS and NCURSES_PRESCREEN to report to show
- how similar the different libtinfo configurations are.
- * modified some header files to ensure that those include necessary
- files except for the previously-documented cases
- * added some traces in initialization to show whether a fallback
- entry is used.
- * made minor optimization to reduce calls to _nc_reserve_pairs
+ * In addition to the new, safer function tiparm_s, ncurses adds
+ checks to make the older tiparm, tparm and tgoto functions safer:
+ + the terminfo functions tiparm and tparm ensure that the
+ capability string comes from the terminal description which
+ ncurses loads, rather than from random data which the
+ application happens to have.
+ + the tgoto function disallows capabilities which its analysis
+ shows will attempt to use string parameters.
+ + ncurses uses internal functions which correspond to tiparm,
+ and tgoto which ensure that the capability strings which are
+ passed to these functions come from the loaded terminal
+ description.
+ * improve check in lib_tparm.c, ensuring that a char* fits into a
+ TPARM_ARG
+ * modify _nc_syserr_abort to use _nc_env_access, rather than only
+ checking root uid
+ * improve thread lock in lib_trace.c
+ * modify flushinp to use file descriptors in SCREEN, rather than
+ from TERMINAL, and check if they are for a terminal, like SVr4
+ * modify mcprint to use file descriptor in SCREEN, for consistency
+ * modify internal function _nc_read_file_entry to show relevant
+ filename in warnings
+ * improve checks in internal function convert_string for corrupt
+ terminfo entry
+ * review/improve handling of out-of-memory conditions
+ * limit delays to 30 seconds, i.e., padding delays in terminfo, as
+ well as napms and delay_output functions
+ * fix reallocation loop for vsnprintf in _nc_sprintf_string by
+ copying the va_list variable
+ * modify delscreen to limit the windows which it creates to just
+ those associated with the screen
+ * modify endwin to return an error if it is called again without an
+ intervening screen update
+ * modify wenclose to handle pads
+ * eliminate use of PATH_MAX in lib_trace.c
+ * provide for any CCHARW_MAX greater than 1
These are corrections to existing features:
- * fix a special case in PutAttrChar where a cell is marked as
- alternate-character set, but the terminal does not actually
- support the given graphic character. This would happen in an older
- terminal such as vt52, which lacks most line-drawing capability.
- * corrected flag for "seq" method of db 1.8.5 interface, needed by
- toe on some of the BSDs.
- * modify comparison in make_hash.c to correct a special case in
- collision handling for Caps-hpux11
- * add extended_slk_color{,_sp} symbols to the appropriate
- package/*.{map,sym} files
- * modify lib_setup to avoid calling pthread_self() without first
- verifying that the address is valid, i.e., for weak symbols
- * add a couple of broken-linker symbols to the list of versioned
- symbols to help with link-time optimization versus weak symbols.
+ * correct loop termination condition in waddnstr and waddnwstr
+ * improve parsing in internal function _nc_msec_cost, allowing a
+ single decimal point
+ * amend parameter check for entire string versus specific length in
+ winsnstr and wins_nwstr to match Solaris; make similar correction
+ to wins_nwstr
+ * correct internal function wadd_wch_literal when adding a
+ non-spacing character to a double-width character
+ * correct definition of Charable macro for non-wide ncurses library
+ .
Program improvements
- Several improvements were made to the utility programs:
-
- clear
-
- + improved logic for clearing with the E3 extension, in case
- the terminal scrolls content onto its saved-lines before
- actually clearing the display, by clearing the saved-lines
- after clearing the display
+ Several improvements were made to the utility programs. Some were done
+ to make the infocmp option "-u" option help refactor the terminal
+ database.
infocmp
- + omit filtering of "OTxx" names which are used for obsolete
- capabilities, when the output is sorted by long-names. This
- change helps when making a table of the short/long capability
- names.
+ + add limit checks for processing extended capabilities with
+ the "-u" option
+ + correct initial alignment of extended capabilities, so that
+ the "-u" option can be used for more than two terminal types
+ + modify "-u" option to not report cancels for strings which
+ were already cancelled in a use'd chunk.
+ + correct an assignment "-u" for detecting if a boolean is
+ unset in a base entry and set in a use'd chunk, i.e., if it
+ was cancelled.
tic
- + added check for consistent alternate character set
- capabilities.
- + added check for paired indn/rin.
- + added check for terminals with parm_dch vs parm_ich.
- + added check for the case where setf/setb are given using
- different strings, but provide identical results to
- setaf/setab.
- + corrected check for ich1.
- + changed a too-large terminal entry from a fatal error to a
- warning.
-
- toe
-
- + ignores any hex/b64 $TERMINFO value in the list of terminfo
- databases.
-
- tset
-
- + replace check in reset command for obsolete "pt" capability
- using tbc and hts capabilities as clues
- + modify reset to allow for tabstops at intervals other than 8.
- + change reset's behavior for margins to simply clear
- soft-margins if possible, rather than clearing and then
- setting them according to the terminal's width.
-
- tput
-
- + add "x" to getopt string so that "tput -x clear" works.
-
- Several changes were made to the generated ncurses*config scripts and
- the analogous ".pc" files to reduce differences between the
- configurations they report:
- * modified the ncurse*-config and pc-files to more closely match for
- the -I and -l options.
- * filtered out linker-specs from the --libs report.
- * amended the ncurses*-config and pc-files to take into account the
- rpath hack which differed between those files.
- * modified generated ncurses*config and ncurses.pc, ncursesw.pc,
- etc., to list helper libraries such as gpm for static linking.
+ + correct limit-check when dumping tc/use clause via "-I"
+ + check return value of _nc_save_str, in special case where
+ extended capabilities are processed but the terminal
+ description was not initialized
+ + modify check for multiply defined aliases to report problems
+ within the current runtime rather than for conflicts with
+ pre-existing terminal descriptions.
+ + disallow using $TERMINFO or $HOME/.terminfo when "-o" option
+ is used
+
+ tput and tset
+
+ + add "-v" option to tput, to show warnings
+ + modify reset command to avoid altering clocal if the terminal
+ uses a modem
+ + modify reset feature to avoid 1-second sleep if running in a
+ pseudo-terminal
Examples
Along with the library and utilities, improvements were made to the
- ncurses-examples. Most of this activity aimed at improving the
- test-packages. A few changes are more generally useful, e.g., for the
- main ncurses test-program, and for analyzing traces using the
- tracemunch script:
- * improve recovery from error when reading command-character in
- test/ncurses.c, showing the relevant error message and not exiting
- on EINTR.
- * improve tracemunch, by keeping track of TERMINAL* values, and if
- tracing was first turned on after initialization, attempt to show
- distinct screen, window and terminal names anyway.
- * modify tracemunch to accept filename parameters in addition to use
- as a pipe/filter.
- * update tracemunch to work with perl 5.26.2, which changed the
- rules for escaping regular expressions.
- * add some checks in tracemunch for undefined variables.
- * modify TurnOn/TurnOff macros (in lib_vidattr.c and lib_vid_attr.c)
- to avoid expansion of "CUR" in trace.
-
- There are other new demo/test programs and reusable examples:
-
- color_content
- Demonstrate the color_content and extended_color_content
- functions.
-
- demo_tabs
- A simple demo of tabs in curses.
-
- dump_window
- A portable curses screen-dump, used to compare ncurses screen
- contents with Solaris.
-
- pair_content
- Demonstrate the pair_content and extended_pair_content
- functions.
-
- report_hashing
- Check hash-tables used for terminfo and termcap names.
-
- parse_rgb
- Sample implementation of the ncurses RGB extension from
- user_caps.5, used in picsmap and savescreen programs.
-
- A variety of improvements were made to existing programs, both new
- features as well as options added to make the set of programs more
- consistent.
- * add "-l" option to test/background, to dump screen contents in a
- form that lets different curses implementations be compared.
- * add "@" command to test/ncurses F-test, to allow rapid jump to
- different character pages.
- * added enum, regex examples to test/demo_forms
- * amend Scaled256() macro in test/picsmap.c to cover the full range
- 0..1000
- * corrected pathname used in Ada95 sample programs for explain.txt,
- to work with test-packages, and used an awk script to split the
- resulting pathname when it would be too long for a single line.
- * ignore interrupted system-call in test/ncurses's command-line,
- e.g., if the terminal were resized.
- * improved ifdef's for TABSIZE variable, to help with AIX/HPUX
- ports.
+ ncurses-examples:
+ * modify test_tparm to account for extended capabilities
+ * corrected mouse mask in test/testcurs.c
+ * modify test/clip_printw.c to optionally test non-wrapped updates
+ * modify test/test_mouse.c to use curses api for raw/noraw
+ * modify test/clip_printw.c to optionally test non-wrapped updates
+
+ There is one new demo/test programs:
+
+ test/test_endwin.c
+ This program shows the return-status from endwin with different
+ combinations of endwin (repeated), initscr, newterm.
Terminal database
There are several new terminal descriptions:
-
- alacritty, domterm, kitty, mintty, mintty-direct, ms-terminal,
- n7900, nsterm-build309, nsterm-direct, screen5, ti703, ti707,
- ti703-w, ti707-w vscode, vscode-direct, xterm-mono, xterm.js
+ * ansi+apparrows
+ * contour
+ * linux+kbs for terminals which imitate xterm's behavior with Linux
+ * rio, rio-direct
+ * mostlike
+ * ms-vt100-16color, winconsole
+ * vt100+noapp, vt100+noapp+pc, xterm+app+pc, xterm+decedit from
+ xterm #389
+ * putty+cursor to reflect amending of modified cursor-keys in 2021
+ * wezterm
There are many changes to existing terminal descriptions. Some were
- updates to several descriptions:
- * use ansi+rep in a dozen places
- * add rs1 to konsole, mlterm
- * improve several flash capabilities with trailing mandatory delays
- * drop ich1 from rxvt-basic, Eterm and mlterm to improve
- compatibility with old non-curses programs
- * add/use xterm+keypad in xterm-new
- * use xterm+sl-twm for consistency, nine places
- * improve xm example in xterm+x11mouse and xterm+sm_1006.
-
- while others affected specific descriptions. These were retested, to
- take into account changes by their developers:
-
- terminator, st
-
- while these are specific fixes based on reviewing documentation, user
- reports, or warnings from tic:
-
- adds200:
-
- + fix typo
-
- gnome-256color
-
- + base entry on "gnome", not "vte", for consistency
-
- interix
-
- + trim unnecessary setf/setb
-
- linux-16color
-
- + accommodate Linux console driver incompatibility introduced
- in early 2018
-
- nsterm-256color:
-
- + add nsterm-build309 to replace nsterm-256color, assigning the
- latter as an alias of nsterm, to make mouse work with
- nsterm-256color
-
- regent40:
-
- + renumber function-keys to match manual
-
- regent60:
-
- + add cd (clr_eos)
- + corrected acsc
- + add shifted function-keys
-
- tvi950:
-
- + added function-key definitions to agree with Televideo 950
- manual
- + corrected acsc
- + remove bogus kf0
- + add bel
-
- tvi955:
-
- + fix typo
-
- vi200:
-
- + add acsc string, including right/down-arrow
-
- wy50:
-
- + corrected acsc
-
- wy50 and wy60:
-
- + add shifted function-keys as kF1 to kF16
-
- xterm+x11hilite:
-
- + eliminate unused p5 parameter.
-
- A few entries use extensions (user-defined terminal capabilities):
- * use xterm+sm+1006 (aka "SGR 1006 mouse") for konsole-base and
- putty
- * add Smol/Rmol user-defined capability to tmux and vte-2018
- * add Smulx user-defined capability to tmux, vte-2018
+ updates to several descriptions, using the infocmp "-u" option in a
+ script to determine which building-block entries could be used to
+ replace multiple capability settings (and trim redundant information).
+
+ Other changes include:
+ * document XF, kxIN and kxOUT
+ * add note on sun regarding wscons/cmdtool/shelltool
+ * remove DECCOLM+DECSCLM from foot
+ * add xterm+focus to foot+base
+ * add ecma+strikeout to putty
+ * use CSI 3J in vte-2017
+ * use oldxterm+sm+1006 in vte-2014
+ * modify xgterm to work around line-drawing bug
+ * add xterm focus mode 1004 to xterm+focus as fe/fd capabilities,
+ like vim.
+ * add xterm+focus to alacritty+common
+ * add XR/xr, to work with vim, and use RV/rv to denote DA2 and its
+ response
+ * add XF flag to xterm+focus so that termcap applications can be
+ aware of terminals which may support focus in/out
+ * use xterm+focus in xterm-p370 and tmux
+ * remove xterm+sm+1006 from tmux
+ * NetBSD-related fixes for x68k and wsvt25
Documentation
@@ -408,273 +260,157 @@ Release Notes
features and show how they evolved, there are corrections,
clarifications, etc.:
* Corrections:
- + correct error-returns listed in manual pages for a few form
- functions
- + corrected prototypes in several manpages using script to
- extract those in compilable form.
- + fix typo in term.5, improve explanation of format
- * Clarify in manual pages that vwprintw and vwscanw are obsolete.
- They have not been part of X/Open Curses since 2007.
+ + add assignment in CF_MAN_PAGES to fill in value for
+ TERMINFO_DIRS in ncurses, terminfo and tic manpages.
+ + clarify interaction of -R option versus -C, -I and -r in
+ infocmp manpage.
+ + correct manpage description of panel_hidden.
+ + improve manpage description for addch versus unctrl format
+ used for non-printable characters.
+ + improve manpages discussing file descriptors in low-level
+ functions.
+ + improve description of search rules for terminal descriptions
+ in terminfo manpage.
+ + modify dist.mk to avoid passing developer's comments in
+ manpages into the generated html documentation.
+ + modify test-package "ncurses6-doc" to use manpage-aliases,
+ which in turn required a change to the configure script to
+ factor in the extra-suffix option when deriving alias names.
* New/improved history and portability sections:
- + curs_addch.3x gives some background for ACS symbols.
- + curs_getcchar.3x explains a difference between ncurses and
- X/Open Curses.
- + curs_getstr.3x gives historical/portability background for
- the length parameter of wgetnstr.
- + curs_slk.3x lists a few differences between SVr4 curses and
- X/Open Curses for soft-keys.
- + curs_terminfo.3x explains that the initial implementation of
- terminfo in SVr2 was mostly replaced by other developers in
- SVr3.
- + infocmp.1 explains that the initial version of terminfo had
- no tool for decompiling descriptions. That came later, with
- SVr3, with a different developer.
- + tabs.1 tells more than you wanted to know about the tool.
- + tic.1 explains that the initial version of terminfo had a
- rudimentary tool (based on termcap) for compiling entries.
- The tool used with Unix was developed by others for SVr3.
- + toe.1 explains the origin of this tool.
- * Improvements for user_caps.5:
- + mention meml, memu and box1
- + expanded description of XM
- + add a clarification regarding the RGB capability.
- + mention user_caps.5 in the tic and infocmp manual pages.
+ + add information about "ttycap", termcap's forerunner, to
+ tset.1
+ + document limitations of tparm, and error-returns in
+ curs_terminfo.3x
+ + document limitations of tgoto, and error-returns in
+ curs_termcap.3x
* Other improvements:
- + curs_add_wch.3x adds note about Unicode terminology for the
- line-drawing characters.
- + curs_color.3x improves discussion of error returns and
- extensions.
- + curs_mouse.3x explains how the kmous and XM capabilities are
- used for xterm-mouse input.
- + curs_refresh.3x improves documentation regarding the virtual
- and physical screens.
- + curs_util.3x mentions a difference between SVr4 and X/Open
- Curses for unctrl.h
- + curs_variables.3x improves description of the init_tabs
- capability and TABSIZE variable.
- + ncurses.3x improves documentation regarding feature-test
- macros in curses.h
- + resizeterm.3x about top-level windows which touch the
- screen's borders.
- + tput.1 clarifies how tput determines the terminal size.
+ + This release has many changes to improve the formatting and
+ style of the manpages.
+ + Manpages now use consistent section-naming, page headers and
+ footers (including the modification date for each page).
+ + Table layout has been revised.
There are no new manual pages (all of the manual page updates are to
existing pages).
- Some of the improvements are more subtle, relating to the way the
- information is presented. For instance, the generated terminfo.5 file
- uses a different table layout, allowing it to use space on wide
- terminals more effectively.
-
Interesting bug-fixes
- While there were many bugs fixed during development of ncurses 6.2,
- only a few (the reason for this release) were both important and
- interesting. Most of the bug-fixes were for local issues which did not
- affect compatibility across releases. Since those are detailed in the
- NEWS file no elaboration is needed here.
-
- The interesting bugs were in tic/infocmp's handling of user-defined
- capabilities. These were not recent bugs. Initially it was a simple
- problem:
- * The user-defined capabilities can be any type (boolean, number or
- string), but once given a type all uses of the name must conform
- to that type--unless some special support for a particular
- multi-typed name is built into ncurses.
- * One of simpleterm's contributors copied some definitions for using
- tmux's user-defined capabilities in late in 2016.
-
-diff --git a/st.info b/st.info
-@@ -185,7 +185,10 @@ st| simpleterm,
- tsl=\E]0;,
- xenl,
- vpa=\E[%i%p1%dd,
--
-+# Tmux unofficial extensions, see TERMINFO EXTENSIONS in tmux(1)
-+ Se,
-+ Ss,
-+ Tc,
-
- st-256color| simpleterm with 256 colors,
- use=st,
-
- * Later, in (referring to a version from mid-2017), a user asked to
- have it updated in ncurses.
- * However, it had an error from the change in late 2016. The
- terminal description made what tmux expected to be string actually
- a boolean.
- Over the years, there were problems with each of simpleterm's
- terminal descriptions. I repaired those, and usually dealt with
- the problem.
- * The difference in this case was that when compiling the terminal
- database, tic may have in memory the definitions for more than one
- terminal description (so that it can resolve "use=" clauses).
- Seeing two different types for the same name, in certain
- situations it would incorrectly merge the symbol tables for the
- two terminal descriptions.
- * On simpleterm's side, their bug was finally fixed in late 2019,
- three years after the bug was created.
-
- For ncurses, the elapsed time to fix this bug was less than three
- years. Someone reported a problem with the terminal description a few
- weeks after releasing ncurses 6.1 (in tmux #1264), and the terminal
- description was updated that week (ncurses patch 20180224):
-
-20180224
- + modify _nc_resolve_uses2() to detect incompatible types when merging
- a "use=" clause of extended capabilities. The problem was seen in a
- defective terminfo integrated from simpleterm sources in 20171111,
- compounded by repair in 20180121.
- + correct Ss/Ms interchange in st-0.7 entry (tmux #1264) -TD
-
- The larger part of that change added a check to prevent a simple merge
- of terminal descriptions where the same user-defined name was used
- with different types. But it raised some questions:
- * Was there a reliable way to manage terminal descriptions which
- used the same extended name in different ways?
- * Should ncurses provide a registry of well-known extended names,
- with their types?
-
- Since the correction to terminfo.src could have been readily adopted
- by packagers, there was nothing more to be done from ncurses'
- standpoint on that part. But improving ncurses to prevent issues like
- that is the reason for making a release.
-
- Nothing more (constructive) was mentioned with regard to simpleterm.
- But a few problems were found in the handling of user-defined
- capabilities:
- * Forward-references to user-defined capabilities in a "use=" clause
- did not allocate new data for each use. In tic, successive
- compilation of terminal entries could add user-defined
- capabilities to the wrong terminal entry.
- This was not noticed before, since xterm's terminal descriptions
- were the main users of the feature, and almost all of the uses of
- the building-blocks which contained user-defined capabilities were
- backward-references.
- * There is one (documented) case where ncurses 6.1 supports a
- user-defined capability that could be any type (i.e., "RGB"). The
- check added in February 2018 to guard against mismatches did not
- handle all of the combinations needed.
-
- Both of these issues dated from the original implementation of
- user-defined capabilities. Fixing them does not change the terminal
- database, but a older tic without the fixes will not be able to handle
- terminfo sources which rely upon those fixes. Starting in June 2019,
- the download link for the terminfo source file was capped at that
- date. The development sources have an up-to-date copy of the file, for
- people with a legitimate need for it.
-
- The "-c" (check) option of tic is not very useful if it cannot offer
- advice on parameters needed for user-defined capabilities. The various
- Caps files were reorganized to reduce redundancy, and in the common
- portion (Caps-ncurses), a registry of user-defined capabilities is
- provided for use by tic. While users can still define their own custom
- capabilities, tic will not offer any advice when their parameters do
- not match.
-
- In ncurses 6.2, tic makes a special check to allow any type for RGB,
- but its being able to do this relies upon fixes made in the ncurses
- library in mid-2019.
+ The changes to tparm, tgoto which improve the design of the low-level
+ interfaces are interesting, but are not bug-fixes per se.
Configuration changes
Major changes
- There are no major changes. Several new options were added to ease
- integration of packages with systems using different versions of GNAT
- and ncurses. Also, improvements were made to configure checks.
+ These are the major changes (aside from introducing tiparm_s):
+ * use wide-character (ncursesw) by default
+ * use opaque typedefs by default
+
+ However, most of the work on configure scripts was done to reduce
+ warnings within the configure script:
+ * intrusive warnings from GNU grep regarding fgrep and egrep
+ * fatal errors in compile-checks, arising from recent "Modern C"
+ efforts by some developers which caused longstanding configure
+ checks to fail.
+ After repairing the configure script, none of that activity
+ affected ncurses because stricter warnings are used routinely in
+ development.
+
+ Other improvements made to configure checks include
+ * use string-hacks in alloc_entry.c, alloc_type.c and hardscroll.c,
+ overlooked due to compiler changes in recent OpenBSD releases
+ * revise progs.priv.h to provide for NC_ISATTY reuse
+ * configure check for MB_LEN_MAX provides warning as needed
+ * trim a space after some "-R" options, fixing builds for
+ applications built using clang and ncurses on Solaris
+ * work around misconfiguration of MacPorts gcc13, which exposes
+ invalid definition of MB_LEN_MAX in gcc's fallback copy of
+ limits.h
+ * modified experimental Windows driver works with xterm mouse
+ protocol
Configuration options
- There are a few new/modified configure options:
+ There are a few new configure options:
+
+ --disable-setuid-environ
+ Compile with environment restriction, so certain environment
+ variables are not available when running via a setuid/setgid
+ application. These are (for example $TERMINFO) those that allow
+ the search path for the terminfo or termcap entry to be
+ customized.
+
+ A setuid/setgid application inherits its environment variables
+ from the current user, in contrast to sudo which may limit the
+ environment variables that ncurses uses.
- --with-config-suffix
- helps work around a filename conflict with Debian packages
- versus test-packages.
+ --enable-check-size
+ Compile-in feature to detect screensize for terminals which do
+ not advertise their screensize, e.g., serial terminals.
- --with-ada-libname
- allows one to rename the "AdaCurses" library (at least one
- packager prefers a lowercase name).
+ --with-abi-altered=NUM
+ Override the displayed (rather than compiled-in) ABI. Only
+ packagers who have created configurations where the ABI differs
+ from ncurses should be interested in this option.
- --with-fallbacks
- now ensures there is a value, and adds the fallback information
- to top-level Makefile summary.
+ --with-strip-program=XXX
+ When stripping executables during install, use the specified
+ program rather than "strip" overriding program chosen by the
+ install program for stripping executables.
- --with-pcre2
- check for pcre-posix library to help with MinGW port.
+ These configure options are modified:
- --with-tic-path and
+ --with-pkg-config-libdir[=DIR]
+ The optional DIR parameter can now be "auto" to automatically
+ use pkg-config's library directory.
- --with-infocmp-path
- help work around problems building fallback source using
- pre-6.0 tic/infocmp.
+ The default is $(libdir).
- --with-versioned-syms
- option value can now be a relative pathname.
+ --with-xterm-kbs[=XXX]
+ The default is "auto" which tells the configure script to
+ choose BS or DEL according to platform defaults.
Portability
Many of the portability changes are implemented via the configure
script:
- * ignore $TERMINFO as a default value in configure script if it came
- from the infocmp -Q option.
- * distinguish gcc from icc and clang when the --enable-warnings
- option is not used, to avoid unnecessary warnings about
- unrecognized inline options
- * consistently prepend new libraries as they are found during
- configuration, rather than relying upon the linker to resolve
- order dependencies of libraries.
- * modified configure scripts to reduce relinking/ranlib during
- library install :
- + use "install -p" when available, to avoid need for ranlib of
- static libraries.
- + scripts which use "--disable-relink;" add a 1-second sleep to
- work around tools which use whole-second timestamps, e.g., in
- utime rather than the actual file system resolution.
- * add configure check for getenv to work around implementation shown
- in Emscripten which overwrites the previous return value on each
- call.
- Use that to optionally suppress START_TRACE macro, whose call to
- getenv may not work properly
- * change target configure level for _XOPEN_SOURCE to 600 to address
- use of vsscanf and setenv.
- * reduce use of _GNU_SOURCE for current glibc where _DEFAULT_SOURCE
- combines with _XOPEN_SOURCE
- Allow for Cygwin's newlib when checking for the _DEFAULT_SOURCE
- symbol.
- MidnightBSD is now checked for the _XOPEN_SOURCE-related
- definitions.
- * If the check for va_copy or __va_copy fails,
- + configure now tries copying the pointers for va_list, or as
- an array.
- + alternatively, it checks for __builtin_va_copy(), which could
- be used with AIX xlc in c89 mode.
- * several changes to support a port to Ultrix 3.1:
- + check if "b" binary feature of fopen works
- + check for missing feature of locale.h
- + add fallback for strstr() in test-programs
- + add fallback for STDOUT_FILENO in test-programs
- * The test/configure script (used for ncurses-examples) is improved:
- + work around non-ncurses termcap.h file, e.g., in Slackware.
- + check for TABSIZE variable.
- + checks for the X11/Intrinsic.h header, accommodate recent
- MacOS changes which largely emptied /usr/include.
+ * add/use configure check for clock_gettime, to supersede
+ gettimeofday.
+ * modify configure script check for pkg-config library directory to
+ take into account an older version 0.15.0 which used
+ PKG_CONFIG_PATH but not PKG_CONFIG_LIBDIR
+ * allow for MinGW32-/64-bit configurations to use _DEFAULT_SOURCE
+ * modify CF_XOPEN_SOURCE macro's amend default case to avoid
+ undefining _XOPEN_SOURCE if _POSIX_C_SOURCE is defined
+ * updated configure script macro CF_XOPEN_SOURCE, for uClibc-ng
+ * modify version-check for gcc/g++, now works for msys2
+ * build-fixes related to configure-options and/or platform:
+ + fix for --enable-fvisibility
+ + fix for unusual values of --with-rel-version
+ + fix for unusual values of --with-abi-version
+ + fix for --disable-tcap-names
+ + fix for termcap in nc_access.h
+ * other configure-script improvements:
+ + recent msys2 headers work with _DEFAULT_SOURCE; amend check
+ + use $ac_includes_default in most cases where stdlib.h should
+ work
+ + use #error consistently vs "make an error"
+ + add configure macro for gettimeofday vs inline check
Here are some of the other portability fixes:
- * added dummy "check" rule in top-level and test-Makefile to
- simplify building test-packages for ArchLinux.
- * dropped library-dependency on psapi for MinGW port, since
- win_driver.c defines PSAPI_VERSION to 2, making it use
- GetProcessImageFileName from kernel32.dll
- * made build-fixes for configuration using --program-suffix with
- Ada95, noticed with MacOS but applicable to other platforms
- without libpanelw, etc.
- * modified ncurses/Makefile.in to fix a case where Debian/testing
- changes to the ld --as-needed configuration broke ncurses-examples
- test packages.
- * used _WIN32/_WIN64 in preference to __MINGW32__/__MINGW64__
- symbols to simplify building with Microsoft Visual C++, since the
- former are defined in both compiler configurations.
+ * modify configure scripts/makefiles to omit KEY_RESIZE if the
+ corresponding SIGWINCH feature is disabled
+ * increase MB_CUR_MAX to 16, matching glibc's MB_LEN_MAX
+ * add BSD erase2 to characters handled by tset/reset
+ * use getauxval when available, to improve setuid/setgid checks
+ * set dwShareMode in calls to CreateConsoleScreenBuffer
+ * use CreateFile with "CONIN$", "CONOUT$" rather than GetStdHandle
+ to obtain a handle on the actual console, avoiding redirection in
+ the MinGW/Win32 configurations
+ * modify MinGW driver to return KEY_BACKSPACE when an unmodified
+ VK_BACK virtual key is entered
+ * modify MinGW configuration to provide for running in MSYS/MSYS2
+ shells, assuming ConPTY support
_________________________________________________________________
Features of ncurses
@@ -682,20 +418,21 @@ Features of ncurses
The ncurses package is fully upward-compatible with SVr4 (System V
Release 4) curses:
* All of the SVr4 calls have been implemented (and are documented).
- * ncurses supports all of the for SVr4 curses features including
- keyboard mapping, color, forms-drawing with ACS characters, and
- automatic recognition of keypad and function keys.
- * ncurses provides these SVr4 add-on libraries (not part of X/Open
- Curses):
- + the panels library, supporting a stack of windows with
- backing store.
- + the menus library, supporting a uniform but flexible
- interface for menu programming.
+ * ncurses supports the features of SVr4 curses including keyboard
+ mapping, color, form drawing with ACS characters, and automatic
+ recognition of keypad and function keys.
+ * ncurses provides work-alike replacements of SVr4 supplemental
+ libraries based on curses, but which were not specified by X/Open
+ Curses:
+ + the panel library, supporting a stack of windows with backing
+ store
+ + the menu library, supporting a uniform but flexible interface
+ for menu programming
+ the form library, supporting data collection through
- on-screen forms.
+ on-screen forms
* ncurses's terminal database is fully compatible with that used by
SVr4 curses.
- + ncurses supports user-defined capabilities which it can see,
+ + ncurses supports user-defined capabilities that it can see,
but which are hidden from SVr4 curses applications using the
same terminal database.
+ It can be optionally configured to match the format used in
@@ -705,14 +442,15 @@ Features of ncurses
curses.
* The ncurses utilities have options to allow you to filter terminfo
entries for use with less capable curses/terminfo versions such as
- the HP/UX and AIX ports.
+ 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, 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).
+ * 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 almost all 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.
@@ -729,6 +467,7 @@ Features of ncurses
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 direct-color terminals, such as modern xterm.
* Support for 256-color terminals, such as modern xterm.
* Support for 16-color terminals, such as aixterm and modern xterm.
* Better cursor-movement optimization. The package now features a
@@ -771,10 +510,19 @@ Features of ncurses
user's $HOME/.terminfo directory.
* 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
- #undef.
+ * X/Open Curses permits most functions it specifies to be made
+ available as macros as well. ncurses does this
+ + to improve performance, e.g., for operations composed of
+ simpler functions such as cursor movement following by adding
+ text to the screen,
+ + to simplify the implementation by reusing functions which use
+ common parameters, e.g., the standard screen stdscr, and
+ + to provide functions that return values via their parameters
+ Except for the last case, ncurses provides a non-macro
+ implementation of the function. If the macro definition is
+ disabled with #undef, or by defining NCURSES_NOMACROS the function
+ may be linked (and its calls will be checked against the
+ prototype).
* Extensive documentation is provided (see the Additional Reading
section of the ncurses FAQ for online documentation).
@@ -827,7 +575,8 @@ Applications using ncurses
nvi
New vi uses ncurses.
- https://sites.google.com/a/bostic.com/keithbostic/vi
+ https://sites.google.com/a/bostic.com/keithbostic/the-berkeley-
+ vi-editor-home-page
ranger
A console file manager with VI key bindings in Python.
@@ -849,12 +598,12 @@ Applications using ncurses
minicom
terminal emulator for serial modem connections
- https://alioth.debian.org/projects/minicom/
+ https://salsa.debian.org/minicom-team/minicom
mosh
a replacement for ssh.
- https://mosh.mit.edu/
+ https://mosh.org/
tack
terminfo action checker
@@ -903,7 +652,7 @@ Development activities
Ongoing development work is done by Thomas E. Dickey. Thomas E. Dickey
has acted as the maintainer for the Free Software Foundation, which
- holds a copyright on ncurses for releases 4.2 through 6.1. Following
+ held a copyright on ncurses for releases 4.2 through 6.1. Following
the release of ncurses 6.1, effective as of release 6.2, copyright for
ncurses reverted to Thomas E. Dickey (see the ncurses FAQ for
additional information).
@@ -925,17 +674,17 @@ Development activities
Beta versions of ncurses are made available at
- ftp://ftp.invisible-island.net/ncurses/current/ and
+ https://invisible-island.net/archives/ncurses/current/ and
https://invisible-mirror.net/archives/ncurses/current/ .
Patches to the current release are made available at
- ftp://ftp.invisible-island.net/ncurses/6.1/ and
- https://invisible-mirror.net/archives/ncurses/6.1/ .
+ https://invisible-island.net/archives/ncurses/6.4/ and
+ https://invisible-mirror.net/archives/ncurses/6.4/ .
There is an archive of the mailing list here:
- http://lists.gnu.org/archive/html/bug-ncurses (also https)
+ https://lists.gnu.org/archive/html/bug-ncurses .
Related resources
@@ -944,6 +693,7 @@ Related resources
* ncurses licensing
* Symbol versioning in ncurses
* Comments on ncurses versus slang (S-Lang)
+ * Comments on OpenBSD
* tack - terminfo action checker
* tctest - termcap library checker
* Terminal Database
@@ -954,11 +704,12 @@ Other resources
terminal description file once maintained by Eric Raymond . Unlike the
older version, the termcap and terminfo data are provided in the same
file, which also provides several user-definable extensions beyond the
- X/Open specification.
+ X/Open Curses specification.
You can find lots of information on terminal-related topics not
- covered in the terminfo file at Richard Shuford's archive . The
- collection of computer manuals at bitsavers.org has also been useful.
+ covered in the terminfo file in Richard Shuford's archive (original).
+ The collection of computer manuals at bitsavers.org has also been
+ useful.
* Overview
* Release Notes
diff --git a/AUTHORS b/AUTHORS
index 0018842ca099..09dfc9a9efa6 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,5 +1,5 @@
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey --
+-- Copyright 2020,2021 Thomas E. Dickey --
-- Copyright 2006,2017 Free Software Foundation, Inc. --
-- --
-- Permission is hereby granted, free of charge, to any person obtaining a --
@@ -26,13 +26,13 @@
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
--- $Id: AUTHORS,v 1.4 2020/02/02 23:34:34 tom Exp $
+-- $Id: AUTHORS,v 1.5 2021/06/17 21:20:30 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
+JPF Juergen Pfeifer
ESR Eric S Raymond
AVL Alexander V Lukyanov
PB Philippe Blain
diff --git a/Ada95/Makefile.in b/Ada95/Makefile.in
index 8d78bbf4f19c..22b922e96ff1 100644
--- a/Ada95/Makefile.in
+++ b/Ada95/Makefile.in
@@ -1,6 +1,6 @@
-# $Id: Makefile.in,v 1.26 2021/01/23 20:34:50 tom Exp $
+# $Id: Makefile.in,v 1.30 2022/12/17 23:33:33 tom Exp $
##############################################################################
-# Copyright 2020,2021 Thomas E. Dickey #
+# Copyright 2020-2021,2022 Thomas E. Dickey #
# Copyright 1998-2010,2015 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -31,17 +31,50 @@
# Author: Juergen Pfeifer, 1996
#
# Version Control
-# $Revision: 1.26 $
+# $Revision: 1.30 $
#
SHELL = @SHELL@
VPATH = @srcdir@
THIS = Makefile
+srcdir = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+bindir = @bindir@
+datarootdir = @datarootdir@
+datadir = @datadir@
+libdir = @libdir@
+libexecdir = @libexecdir@
+includedir = @includedir@
+
+BINDIR = $(DESTDIR)$(bindir)
+DATADIR = $(DESTDIR)$(datadir)
+LIBDIR = $(DESTDIR)$(libdir)
+LIBEXECDIR = $(DESTDIR)$(libexecdir)
+
SUBDIRS = @ADA_SUBDIRS@
+INSTALL = @INSTALL@ @INSTALL_OPT_O@
+INSTALL_SCRIPT = @INSTALL@
+
TOP_MFLAGS = @cf_cv_makeflags@ DESTDIR="$(DESTDIR)" RPATH_LIST="$(RPATH_LIST)"
@SET_MAKE@
+################################################################################
+
+@MAKE_PHONY@.PHONY : all
+@MAKE_PHONY@.PHONY : clean
+@MAKE_PHONY@.PHONY : depend
+@MAKE_PHONY@.PHONY : distclean
+@MAKE_PHONY@.PHONY : install
+@MAKE_PHONY@.PHONY : install.libs
+@MAKE_PHONY@.PHONY : libs
+@MAKE_PHONY@.PHONY : mostlyclean
+@MAKE_PHONY@.PHONY : realclean
+@MAKE_PHONY@.PHONY : sources
+@MAKE_PHONY@.PHONY : uninstall
+@MAKE_PHONY@.PHONY : uninstall.libs
+
all \
libs \
sources \
@@ -72,6 +105,12 @@ realclean ::
-rm -f config.cache config.log config.status include/ncurses_cfg.h
-rm -f Makefile
+depend :
+ @
+
+check :
+ @echo "The test-programs are interactive"
+
tags :
@
diff --git a/Ada95/README b/Ada95/README
index d014f3278f98..2e66625f9dc4 100644
--- a/Ada95/README
+++ b/Ada95/README
@@ -1,5 +1,5 @@
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey --
+-- Copyright 2020,2021 Thomas E. Dickey --
-- Copyright 1998-2002,2003 Free Software Foundation, Inc. --
-- --
-- Permission is hereby granted, free of charge, to any person obtaining a --
@@ -29,6 +29,6 @@
-- Author: Juergen Pfeifer, 1996
-The documentation is provided in HTML format in the ./html
+The documentation is provided in HTML format in the ./html
subdirectory. The main document is named index.html
diff --git a/Ada95/TODO b/Ada95/TODO
index 122275f91189..10354952c41a 100644
--- a/Ada95/TODO
+++ b/Ada95/TODO
@@ -1,5 +1,5 @@
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey --
+-- Copyright 2020,2021 Thomas E. Dickey --
-- Copyright 1998-1999,2006 Free Software Foundation, Inc. --
-- --
-- Permission is hereby granted, free of charge, to any person obtaining a --
@@ -26,7 +26,7 @@
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
--- $Id: TODO,v 1.6 2020/02/02 23:34:34 tom Exp $
+-- $Id: TODO,v 1.8 2021/09/01 23:22:33 tom Exp $
-------------------------------------------------------------------------------
-- Intensive testing
@@ -36,12 +36,12 @@
Like most WEB pages: under continuous construction
-- Style cleanup
-
+
-- Alternate functions for procedures with out params
Comfort purpose
-- Sample program
- Under continuous construction (and it's not a WEB page!!!)
+ Under continuous construction (and it is not a WEB page!!!)
-- Make the binding objects a shared library
They are rather large, so it would make sense, otherwise Ada95
diff --git a/Ada95/aclocal.m4 b/Ada95/aclocal.m4
index 703300c8a247..6fe1f946e7e6 100644
--- a/Ada95/aclocal.m4
+++ b/Ada95/aclocal.m4
@@ -1,5 +1,5 @@
dnl***************************************************************************
-dnl Copyright 2018-2020,2021 Thomas E. Dickey *
+dnl Copyright 2018-2023,2024 Thomas E. Dickey *
dnl Copyright 2010-2017,2018 Free Software Foundation, Inc. *
dnl *
dnl Permission is hereby granted, free of charge, to any person obtaining a *
@@ -29,7 +29,7 @@ dnl***************************************************************************
dnl
dnl Author: Thomas E. Dickey
dnl
-dnl $Id: aclocal.m4,v 1.171 2021/01/06 01:29:44 tom Exp $
+dnl $Id: aclocal.m4,v 1.210 2024/03/30 22:17:13 tom Exp $
dnl Macros used in NCURSES Ada95 auto-configuration script.
dnl
dnl These macros are maintained separately from NCURSES. The copyright on
@@ -189,9 +189,9 @@ AC_SUBST(EXTRA_CPPFLAGS)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_ADD_INCDIR version: 16 updated: 2020/12/31 20:19:42
+dnl CF_ADD_INCDIR version: 17 updated: 2021/09/04 06:35:04
dnl -------------
-dnl Add an include-directory to $CPPFLAGS. Don't add /usr/include, since it's
+dnl Add an include-directory to $CPPFLAGS. Don't add /usr/include, since it is
dnl redundant. We don't normally need to add -I/usr/local/include for gcc,
dnl but old versions (and some misinstalled ones) need that. To make things
dnl worse, gcc 3.x may give error messages if -I/usr/local/include is added to
@@ -340,6 +340,25 @@ ifelse([$5],NONE,,[{ test -z "$5" || test "x$5" = xNONE || test "x$4" != "x$5";
}
])dnl
dnl ---------------------------------------------------------------------------
+dnl CF_APPEND_CFLAGS version: 3 updated: 2021/09/05 17:25:40
+dnl ----------------
+dnl Use CF_ADD_CFLAGS after first checking for potential redefinitions.
+dnl $1 = flags to add
+dnl $2 = if given makes this macro verbose.
+define([CF_APPEND_CFLAGS],
+[
+for cf_add_cflags in $1
+do
+ case "x$cf_add_cflags" in
+ (x-[[DU]]*)
+ CF_REMOVE_CFLAGS($cf_add_cflags,CFLAGS,[$2])
+ CF_REMOVE_CFLAGS($cf_add_cflags,CPPFLAGS,[$2])
+ ;;
+ esac
+ CF_ADD_CFLAGS([$cf_add_cflags],[$2])
+done
+])dnl
+dnl ---------------------------------------------------------------------------
dnl CF_APPEND_TEXT version: 1 updated: 2017/02/25 18:58:55
dnl --------------
dnl use this macro for appending text without introducing an extra blank at
@@ -458,7 +477,7 @@ fi
AC_SUBST(ARFLAGS)
])
dnl ---------------------------------------------------------------------------
-dnl CF_BUILD_CC version: 9 updated: 2021/01/02 09:31:20
+dnl CF_BUILD_CC version: 11 updated: 2022/12/04 15:40:08
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
@@ -524,7 +543,32 @@ if test "$cross_compiling" = yes ; then
: ${BUILD_CC:='${CC}'}
- if { test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '${CC}'; } ; then
+ AC_MSG_CHECKING(if the build-compiler "$BUILD_CC" works)
+
+ cf_save_crossed=$cross_compiling
+ cf_save_ac_link=$ac_link
+ cross_compiling=no
+ cf_build_cppflags=$BUILD_CPPFLAGS
+ test "$cf_build_cppflags" = "#" && cf_build_cppflags=
+ ac_link='$BUILD_CC -o "conftest$ac_exeext" $BUILD_CFLAGS $cf_build_cppflags $BUILD_LDFLAGS "conftest.$ac_ext" $BUILD_LIBS >&AS_MESSAGE_LOG_FD'
+
+ AC_TRY_RUN([#include <stdio.h>
+ int main(int argc, char *argv[])
+ {
+ ${cf_cv_main_return:-return}(argc < 0 || argv == 0 || argv[0] == 0);
+ }
+ ],
+ cf_ok_build_cc=yes,
+ cf_ok_build_cc=no,
+ cf_ok_build_cc=unknown)
+
+ cross_compiling=$cf_save_crossed
+ ac_link=$cf_save_ac_link
+
+ AC_MSG_RESULT($cf_ok_build_cc)
+
+ if test "$cf_ok_build_cc" != yes
+ then
AC_MSG_ERROR([Cross-build requires two compilers.
Use --with-build-cc to specify the native compiler.])
fi
@@ -550,7 +594,45 @@ AC_SUBST(BUILD_EXEEXT)
AC_SUBST(BUILD_OBJEXT)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_CC_ENV_FLAGS version: 10 updated: 2020/12/31 18:40:20
+dnl CF_C11_NORETURN version: 4 updated: 2023/02/18 17:41:25
+dnl ---------------
+AC_DEFUN([CF_C11_NORETURN],
+[
+AC_MSG_CHECKING(if you want to use C11 _Noreturn feature)
+CF_ARG_ENABLE(stdnoreturn,
+ [ --enable-stdnoreturn enable C11 _Noreturn feature for diagnostics],
+ [enable_stdnoreturn=yes],
+ [enable_stdnoreturn=no])
+AC_MSG_RESULT($enable_stdnoreturn)
+
+if test $enable_stdnoreturn = yes; then
+AC_CACHE_CHECK([for C11 _Noreturn feature], cf_cv_c11_noreturn,
+ [AC_TRY_COMPILE([
+$ac_includes_default
+#include <stdnoreturn.h>
+static _Noreturn void giveup(void) { exit(0); }
+ ],
+ [if (feof(stdin)) giveup()],
+ cf_cv_c11_noreturn=yes,
+ cf_cv_c11_noreturn=no)
+ ])
+else
+ cf_cv_c11_noreturn=no,
+fi
+
+if test "$cf_cv_c11_noreturn" = yes; then
+ AC_DEFINE(HAVE_STDNORETURN_H, 1,[Define if <stdnoreturn.h> header is available and working])
+ AC_DEFINE_UNQUOTED(STDC_NORETURN,_Noreturn,[Define if C11 _Noreturn keyword is supported])
+ HAVE_STDNORETURN_H=1
+else
+ HAVE_STDNORETURN_H=0
+fi
+
+AC_SUBST(HAVE_STDNORETURN_H)
+AC_SUBST(STDC_NORETURN)
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_CC_ENV_FLAGS version: 11 updated: 2023/02/20 11:15:46
dnl ---------------
dnl Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content
dnl into CC. This will not help with broken scripts that wrap the compiler
@@ -591,7 +673,7 @@ case "$CC" in
AC_MSG_WARN(your environment uses the CC variable to hold CFLAGS/CPPFLAGS options)
# humor him...
cf_prog=`echo "$CC" | sed -e 's/ / /g' -e 's/[[ ]]* / /g' -e 's/[[ ]]*[[ ]]-[[^ ]].*//'`
- cf_flags=`echo "$CC" | ${AWK:-awk} -v prog="$cf_prog" '{ printf("%s", [substr]([$]0,1+length(prog))); }'`
+ cf_flags=`echo "$CC" | sed -e "s%^$cf_prog%%"`
CC="$cf_prog"
for cf_arg in $cf_flags
do
@@ -720,7 +802,38 @@ case "$cf_cv_gnat_version" in
esac
])
dnl ---------------------------------------------------------------------------
-dnl CF_CLANG_COMPILER version: 8 updated: 2021/01/01 13:31:04
+dnl CF_CHECK_LIBSSP version: 1 updated: 2021/10/30 10:40:19
+dnl ---------------
+dnl Check if libssp is needed, e.g., to work around misconfigured libraries
+dnl used in cross-compiling to MinGW.
+AC_DEFUN([CF_CHECK_LIBSSP],[
+AC_CACHE_CHECK(if ssp library is needed,cf_cv_need_libssp,[
+AC_TRY_LINK([
+#include <sys/types.h>
+#include <dirent.h>
+],[
+ DIR *dp = opendir(".");
+],cf_cv_need_libssp=no,[
+ cf_save_LIBS="$LIBS"
+ LIBS="$LIBS -lssp"
+ AC_TRY_LINK([
+#include <sys/types.h>
+#include <dirent.h>
+ ],[
+ DIR *dp = opendir(".");
+ ],cf_cv_need_libssp=yes,
+ cf_cv_need_libssp=maybe)
+ LIBS="$cf_save_LIBS"
+])dnl
+])
+
+if test "x$cf_cv_need_libssp" = xyes
+then
+ CF_ADD_LIB(ssp)
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_CLANG_COMPILER version: 9 updated: 2023/02/18 17:41:25
dnl -----------------
dnl Check if the given compiler is really clang. clang's C driver defines
dnl __GNUC__ (fooling the configure script into setting $GCC to yes) but does
@@ -742,7 +855,7 @@ if test "$ifelse([$1],,[$1],GCC)" = yes ; then
AC_TRY_COMPILE([],[
#ifdef __clang__
#else
-make an error
+#error __clang__ is not defined
#endif
],[ifelse([$2],,CLANG_COMPILER,[$2])=yes
],[])
@@ -788,7 +901,7 @@ if test "x$ifelse([$2],,CLANG_COMPILER,[$2])" = "xyes" ; then
fi
])
dnl ---------------------------------------------------------------------------
-dnl CF_CONST_X_STRING version: 6 updated: 2021/01/01 13:31:04
+dnl CF_CONST_X_STRING version: 8 updated: 2023/12/01 17:22:50
dnl -----------------
dnl The X11R4-X11R6 Xt specification uses an ambiguous String type for most
dnl character-strings.
@@ -818,11 +931,12 @@ AC_TRY_COMPILE(
#include <stdlib.h>
#include <X11/Intrinsic.h>
],
-[String foo = malloc(1); (void)foo],[
+[String foo = malloc(1); free((void*)foo)],[
AC_CACHE_CHECK(for X11/Xt const-feature,cf_cv_const_x_string,[
AC_TRY_COMPILE(
[
+#undef _CONST_X_STRING
#define _CONST_X_STRING /* X11R7.8 (perhaps) */
#undef XTSTRINGDEFINES /* X11R5 and later */
#include <stdlib.h>
@@ -848,7 +962,7 @@ esac
])
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_CONST_X_STRING version: 6 updated: 2021/01/01 13:31:04
+dnl CF_CONST_X_STRING version: 8 updated: 2023/12/01 17:22:50
dnl -----------------
dnl The X11R4-X11R6 Xt specification uses an ambiguous String type for most
dnl character-strings.
@@ -878,11 +992,12 @@ AC_TRY_COMPILE(
#include <stdlib.h>
#include <X11/Intrinsic.h>
],
-[String foo = malloc(1); (void)foo],[
+[String foo = malloc(1); free((void*)foo)],[
AC_CACHE_CHECK(for X11/Xt const-feature,cf_cv_const_x_string,[
AC_TRY_COMPILE(
[
+#undef _CONST_X_STRING
#define _CONST_X_STRING /* X11R7.8 (perhaps) */
#undef XTSTRINGDEFINES /* X11R5 and later */
#include <stdlib.h>
@@ -908,7 +1023,7 @@ esac
])
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_CURSES_HEADER version: 5 updated: 2015/04/23 20:35:30
+dnl CF_CURSES_HEADER version: 6 updated: 2022/12/02 20:06:52
dnl ----------------
dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
dnl variations of ncurses' installs.
@@ -922,7 +1037,7 @@ for cf_header in \
curses.h ifelse($1,,,[$1/curses.h]) ifelse($1,,[ncurses/ncurses.h ncurses/curses.h])
do
AC_TRY_COMPILE([#include <${cf_header}>],
- [initscr(); tgoto("?", 0,0)],
+ [initscr(); endwin()],
[cf_cv_ncurses_header=$cf_header; break],[])
done
])
@@ -940,9 +1055,9 @@ 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
dnl ---------------------------------------------------------------------------
-dnl CF_DISABLE_ECHO version: 13 updated: 2015/04/18 08:56:57
+dnl CF_DISABLE_ECHO version: 14 updated: 2021/09/04 06:35:04
dnl ---------------
-dnl You can always use "make -n" to see the actual options, but it's hard to
+dnl You can always use "make -n" to see the actual options, but it is hard to
dnl pick out/analyze warning messages when the compile-line is long.
dnl
dnl Sets:
@@ -1240,7 +1355,7 @@ AC_DEFUN([CF_FIXUP_ADAFLAGS],[
AC_MSG_RESULT($ADAFLAGS)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_FIX_WARNINGS version: 3 updated: 2020/12/31 18:40:20
+dnl CF_FIX_WARNINGS version: 4 updated: 2021/12/16 18:22:31
dnl ---------------
dnl Warning flags do not belong in CFLAGS, CPPFLAGS, etc. Any of gcc's
dnl "-Werror" flags can interfere with configure-checks. Those go into
@@ -1252,11 +1367,13 @@ if test "$GCC" = yes || test "$GXX" = yes
then
case [$]$1 in
(*-Werror=*)
- CF_VERBOSE(repairing $1: [$]$1)
cf_temp_flags=
for cf_temp_scan in [$]$1
do
case "x$cf_temp_scan" in
+ (x-Werror=format*)
+ CF_APPEND_TEXT(cf_temp_flags,$cf_temp_scan)
+ ;;
(x-Werror=*)
CF_APPEND_TEXT(EXTRA_CFLAGS,$cf_temp_scan)
;;
@@ -1265,22 +1382,54 @@ then
;;
esac
done
- $1="$cf_temp_flags"
- CF_VERBOSE(... fixed [$]$1)
- CF_VERBOSE(... extra $EXTRA_CFLAGS)
+ if test "x[$]$1" != "x$cf_temp_flags"
+ then
+ CF_VERBOSE(repairing $1: [$]$1)
+ $1="$cf_temp_flags"
+ CF_VERBOSE(... fixed [$]$1)
+ CF_VERBOSE(... extra $EXTRA_CFLAGS)
+ fi
;;
esac
fi
AC_SUBST(EXTRA_CFLAGS)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_GCC_ATTRIBUTES version: 23 updated: 2021/01/03 18:30:50
+dnl CF_FUNC_GETTIME version: 2 updated: 2023/02/25 08:45:56
+dnl ---------------
+dnl Check for gettimeofday or clock_gettime. In 2023, the former is still more
+dnl widely supported, but "deprecated" (2008), so we will use the latter if it
+dnl is available, to reduce compiler warnings.
+AC_DEFUN([CF_FUNC_GETTIME],[
+AC_CACHE_CHECK(for clock_gettime,cf_cv_func_clock_gettime,[
+ AC_TRY_LINK([#include <time.h>],
+ [struct timespec ts;
+ int rc = clock_gettime(CLOCK_REALTIME, &ts); (void) rc; (void)ts],
+ [cf_cv_func_clock_gettime=yes],
+ [cf_cv_func_clock_gettime=no])
+])
+
+if test "$cf_cv_func_clock_gettime" = yes
+then
+ AC_DEFINE(HAVE_CLOCK_GETTIME,1,[Define to 1 if we have clock_gettime function])
+else
+AC_CHECK_FUNC(gettimeofday,
+ AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define to 1 if we have gettimeofday function]),[
+
+AC_CHECK_LIB(bsd, gettimeofday,
+ AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define to 1 if we have gettimeofday function])
+ CF_ADD_LIB(bsd))])dnl CLIX: bzero, select, gettimeofday
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_GCC_ATTRIBUTES version: 24 updated: 2021/03/20 12:00:25
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.
AC_DEFUN([CF_GCC_ATTRIBUTES],
[AC_REQUIRE([AC_PROG_FGREP])dnl
+AC_REQUIRE([CF_C11_NORETURN])dnl
if test "$GCC" = yes || test "$GXX" = yes
then
@@ -1303,6 +1452,7 @@ then
AC_CHECKING([for $CC __attribute__ directives])
cat > "conftest.$ac_ext" <<EOF
#line __oline__ "${as_me:-configure}"
+#include <stdio.h>
#include "confdefs.h"
#include "conftest.h"
#include "conftest.i"
@@ -1317,8 +1467,8 @@ cat > "conftest.$ac_ext" <<EOF
#define GCC_SCANFLIKE(fmt,var) /*nothing*/
#endif
extern void wow(char *,...) GCC_SCANFLIKE(1,2);
-extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
-extern void foo(void) GCC_NORETURN;
+extern GCC_NORETURN void oops(char *,...) GCC_PRINTFLIKE(1,2);
+extern GCC_NORETURN void foo(void);
int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { (void)argc; (void)argv; return 0; }
EOF
cf_printf_attribute=no
@@ -1385,7 +1535,7 @@ rm -rf ./conftest*
fi
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_GCC_VERSION version: 8 updated: 2019/09/07 13:38:36
+dnl CF_GCC_VERSION version: 9 updated: 2023/03/05 14:30:13
dnl --------------
dnl Find version of gcc, and (because icc/clang pretend to be gcc without being
dnl compatible), attempt to determine if icc/clang is actually used.
@@ -1394,7 +1544,7 @@ AC_REQUIRE([AC_PROG_CC])
GCC_VERSION=none
if test "$GCC" = yes ; then
AC_MSG_CHECKING(version of $CC)
- GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC[[^)]]*) //' -e 's/^.*(Debian[[^)]]*) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
+ GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^[[^(]]*([[^)]][[^)]]*) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
test -z "$GCC_VERSION" && GCC_VERSION=unknown
AC_MSG_RESULT($GCC_VERSION)
fi
@@ -1978,7 +2128,7 @@ CPPFLAGS="-I. $CPPFLAGS"
AC_SUBST(CPPFLAGS)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_INSTALL_OPTS version: 2 updated: 2018/08/18 12:19:21
+dnl CF_INSTALL_OPTS version: 3 updated: 2023/06/03 15:17:30
dnl ---------------
dnl prompt for/fill-in useful install-program options
AC_DEFUN([CF_INSTALL_OPTS],
@@ -1986,6 +2136,7 @@ AC_DEFUN([CF_INSTALL_OPTS],
CF_INSTALL_OPT_S
CF_INSTALL_OPT_P
CF_INSTALL_OPT_O
+CF_INSTALL_OPT_STRIP_PROG
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_INSTALL_OPT_O version: 3 updated: 2020/12/31 20:19:42
@@ -2072,7 +2223,73 @@ fi
AC_SUBST(INSTALL_OPT_S)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_INTEL_COMPILER version: 8 updated: 2021/01/01 16:53:59
+dnl CF_INSTALL_OPT_STRIP_PROG version: 1 updated: 2023/06/03 15:17:30
+dnl -------------------------
+dnl Provide an option for overriding the strip program used in install "-s"
+dnl
+dnl coreutils install provides a --strip-program option
+dnl FreeBSD uses STRIPBIN environment variable, while NetBSD and OpenBSD use
+dnl STRIP environment variable. Other versions of install do not support this.
+AC_DEFUN([CF_INSTALL_OPT_STRIP_PROG],
+[
+AC_REQUIRE([CF_INSTALL_OPT_S])
+if test -n "$INSTALL_OPT_S"
+then
+ AC_MSG_CHECKING(if you want to specify strip-program)
+ AC_ARG_WITH(strip-program,
+ [ --with-strip-program=XX specify program to use when stripping in install],
+ [with_strip_program=$withval],
+ [with_strip_program=no])
+ AC_MSG_RESULT($with_strip_program)
+ if test "$with_strip_program" != no
+ then
+ AC_MSG_CHECKING(if strip-program is supported with this installer)
+ cf_install_program=`echo "$INSTALL" | sed -e 's%[[ ]]*[[ ]]-.%%'`
+ check_install_strip=no
+ if test -f "$cf_install_program"
+ then
+ check_install_version=`"$cf_install_program" --version 2>/dev/null | head -n 1 | grep coreutils`
+ if test -n "$check_install_version"
+ then
+ check_install_strip="option"
+ else
+ for check_strip_variable in STRIPBIN STRIP
+ do
+ if strings "$cf_install_program" | grep "^$check_strip_variable[$]" >/dev/null
+ then
+ check_install_strip="environ"
+ break
+ fi
+ done
+ fi
+ fi
+ AC_MSG_RESULT($check_install_strip)
+ case "$check_install_strip" in
+ (no)
+ AC_MSG_WARN($cf_install_program does not support strip program option)
+ with_strip_program=no
+ ;;
+ (environ)
+ cat >install.tmp <<-CF_EOF
+ #! $SHELL
+ STRIPBIN="$with_strip_program" \\
+ STRIP="$with_strip_program" \\
+ $INSTALL "[$]@"
+ CF_EOF
+ INSTALL="`pwd`/install.tmp"
+ chmod +x "$INSTALL"
+ CF_VERBOSE(created $INSTALL)
+ ;;
+ (option)
+ INSTALL_OPT_S="$INSTALL_OPT_S --strip-program=\"$with_strip_program\""
+ ;;
+ esac
+ fi
+fi
+AC_SUBST(INSTALL_OPT_S)
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_INTEL_COMPILER version: 9 updated: 2023/02/18 17:41:25
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
@@ -2098,7 +2315,7 @@ if test "$ifelse([$1],,[$1],GCC)" = yes ; then
AC_TRY_COMPILE([],[
#ifdef __INTEL_COMPILER
#else
-make an error
+#error __INTEL_COMPILER is not defined
#endif
],[ifelse([$2],,INTEL_COMPILER,[$2])=yes
cf_save_CFLAGS="$cf_save_CFLAGS -we147"
@@ -2110,7 +2327,7 @@ cf_save_CFLAGS="$cf_save_CFLAGS -we147"
fi
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_LARGEFILE version: 12 updated: 2020/03/19 20:23:48
+dnl CF_LARGEFILE version: 13 updated: 2023/12/03 19:09:59
dnl ------------
dnl Add checks for large file support.
AC_DEFUN([CF_LARGEFILE],[
@@ -2144,11 +2361,15 @@ ifdef([AC_FUNC_FSEEKO],[
#pragma GCC diagnostic error "-Wincompatible-pointer-types"
#include <sys/types.h>
#include <dirent.h>
+
+#ifndef __REDIRECT
+/* if transitional largefile support is setup, this is true */
+extern struct dirent64 * readdir(DIR *);
+#endif
],[
- /* 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);
+ DIR *dp = opendir(".");
+ struct dirent64 *x = readdir(dp);
+ struct dirent *y = readdir(dp);
int z = x - y;
(void)z;
],
@@ -2379,7 +2600,7 @@ AC_DEFUN([CF_LIB_TYPE],
test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_LINK_DATAONLY version: 13 updated: 2020/02/08 15:59:30
+dnl CF_LINK_DATAONLY version: 15 updated: 2023/12/03 10:03:10
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
@@ -2401,17 +2622,21 @@ EOF
rm -f conftest.$ac_ext data.o
cat >conftest.$ac_ext <<EOF
#line __oline__ "configure"
+extern int testfunc(void);
+#if defined(NeXT)
int testfunc(void)
{
-#if defined(NeXT)
${cf_cv_main_return:-return}(1); /* I'm told this linker is broken */
+}
#else
- extern int testdata[[3]];
+extern int testdata[[3]];
+int testfunc(void)
+{
return testdata[[0]] == 123
&& testdata[[1]] == 456
&& testdata[[2]] == 789;
-#endif
}
+#endif
EOF
if AC_TRY_EVAL(ac_compile); then
mv conftest.o func.o && \
@@ -2422,9 +2647,9 @@ EOF
cf_saveLIBS="$LIBS"
LIBS="conftest.a $LIBS"
AC_TRY_RUN([
+ extern int testfunc(void);
int main(void)
{
- extern int testfunc();
${cf_cv_main_return:-return} (!testfunc());
}
],
@@ -2443,10 +2668,10 @@ AC_SUBST(BROKEN_LINKER)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_MAKEFLAGS version: 20 updated: 2021/01/03 19:29:49
+dnl CF_MAKEFLAGS version: 21 updated: 2021/09/04 06:47:34
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 options to lower-levels. It is 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 :-)
AC_DEFUN([CF_MAKEFLAGS],
@@ -2486,6 +2711,89 @@ CF_EOF
AC_SUBST(cf_cv_makeflags)
])dnl
dnl ---------------------------------------------------------------------------
+dnl CF_MAKE_PHONY version: 3 updated: 2021/01/08 16:08:21
+dnl -------------
+dnl Check if the make-program handles a ".PHONY" target, e.g,. a target which
+dnl acts as a placeholder.
+dnl
+dnl The ".PHONY" feature was proposed in 2011 here
+dnl https://www.austingroupbugs.net/view.php?id=523
+dnl and is scheduled for release in P1003.1 Issue 8 (late 2022).
+dnl
+dnl This is not supported by SVr4 make (or SunOS 4, 4.3SD, etc), but works with
+dnl a few others (i.e., GNU make and the non-POSIX "BSD" make):
+dnl
+dnl + This is a GNU make feature (since April 1988, but in turn from binutils,
+dnl date unspecified).
+dnl
+dnl + It was adopted in NetBSD make in June 1995.
+dnl
+dnl + The other BSD make programs are derived from the NetBSD make (and for
+dnl that reason are not actually different "implementations").
+dnl
+dnl + Some features of NetBSD make were actually adapted from pmake, which
+dnl began as a modified GNU make starting in 1993.
+dnl
+dnl + Version 3.8 of the dmake program in January 1992 also implemented this
+dnl GNU make extension, but is less well known than the BSD make.
+AC_DEFUN([CF_MAKE_PHONY],[
+AC_CACHE_CHECK(for \".PHONY\" make-support, cf_cv_make_PHONY,[
+ rm -rf conftest*
+ (
+ mkdir conftest || exit 1
+ cd conftest
+ cat >makefile <<'CF_EOF'
+.PHONY: always
+DATA=0
+always: always.out
+ @echo "** making [$]@ [$](DATA)"
+once: once.out
+ @echo "** making [$]@ [$](DATA)"
+always.out:
+ @echo "** making [$]@ [$](DATA)"
+ echo [$](DATA) > [$]@
+once.out:
+ @echo "** making [$]@ [$](DATA)"
+ echo [$](DATA) > [$]@
+CF_EOF
+ for cf_data in 1 2 3
+ do
+ ${MAKE:-make} always DATA=$cf_data
+ ${MAKE:-make} once DATA=$cf_data
+ ${MAKE:-make} -t always once
+ if test -f always ; then
+ echo "no (case 1)" > ../conftest.tmp
+ elif test ! -f always.out ; then
+ echo "no (case 2)" > ../conftest.tmp
+ elif test ! -f once.out ; then
+ echo "no (case 3)" > ../conftest.tmp
+ elif ! cmp -s always.out once.out ; then
+ echo "no (case 4)" > ../conftest.tmp
+ diff always.out once.out
+ else
+ cf_check="`cat always.out`"
+ if test "x$cf_check" != "x$cf_data" ; then
+ echo "no (case 5)" > ../conftest.tmp
+ else
+ echo yes > ../conftest.tmp
+ rm -f ./*.out
+ continue
+ fi
+ fi
+ break
+ done
+ ) >&AC_FD_CC 2>&1
+ cf_cv_make_PHONY="`cat conftest.tmp`"
+ rm -rf conftest*
+])
+MAKE_NO_PHONY="#"
+MAKE_PHONY="#"
+test "x$cf_cv_make_PHONY" = xyes && MAKE_PHONY=
+test "x$cf_cv_make_PHONY" != xyes && MAKE_NO_PHONY=
+AC_SUBST(MAKE_NO_PHONY)
+AC_SUBST(MAKE_PHONY)
+])dnl
+dnl ---------------------------------------------------------------------------
dnl CF_MAKE_TAGS version: 6 updated: 2010/10/23 15:52:32
dnl ------------
dnl Generate tags/TAGS targets for makefiles. Do not generate TAGS if we have
@@ -2553,7 +2861,7 @@ fi
test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES,1,[Define to 1 if filesystem supports mixed-case filenames.])
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_MKSTEMP version: 11 updated: 2021/01/01 13:31:04
+dnl CF_MKSTEMP version: 13 updated: 2023/12/01 17:22:50
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).
@@ -2564,17 +2872,11 @@ unistd.h \
AC_CACHE_CHECK(for working mkstemp, cf_cv_func_mkstemp,[
rm -rf ./conftest*
AC_TRY_RUN([
-#include <sys/types.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <sys/stat.h>
+$ac_includes_default
+
int main(void)
{
- char *tmpl = "conftestXXXXXX";
+ static char tmpl[] = "conftestXXXXXX";
char name[2][80];
int n;
int result = 0;
@@ -2709,7 +3011,7 @@ AC_SUBST(cf_cv_type_of_bool)dnl
])
dnl ---------------------------------------------------------------------------
-dnl CF_NCURSES_CC_CHECK version: 5 updated: 2020/12/31 20:19:42
+dnl CF_NCURSES_CC_CHECK version: 6 updated: 2023/02/18 17:47:58
dnl -------------------
dnl Check if we can compile with ncurses' header file
dnl $1 is the cache variable to set
@@ -2726,7 +3028,7 @@ AC_DEFUN([CF_NCURSES_CC_CHECK],[
#ifdef NCURSES_VERSION
]ifelse($3,ncursesw,[
#ifndef WACS_BSSB
- make an error
+ #error WACS_BSSB is not defined
#endif
])[
printf("%s\\n", NCURSES_VERSION);
@@ -2734,7 +3036,7 @@ printf("%s\\n", NCURSES_VERSION);
#ifdef __NCURSES_H
printf("old\\n");
#else
- make an error
+ #error __NCURSES_H is not defined
#endif
#endif
]
@@ -2742,7 +3044,7 @@ printf("old\\n");
,[$1=no])
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_NCURSES_CONFIG version: 26 updated: 2021/01/03 08:05:37
+dnl CF_NCURSES_CONFIG version: 28 updated: 2021/08/28 15:20:37
dnl -----------------
dnl Tie together the configure-script macros for ncurses, preferring these in
dnl order:
@@ -2784,7 +3086,7 @@ if test "x${PKG_CONFIG:=none}" != xnone; then
[initscr(); mousemask(0,0); tigetstr((char *)0);],
[AC_TRY_RUN([#include <${cf_cv_ncurses_header:-curses.h}>
int main(void)
- { char *xx = curses_version(); return (xx == 0); }],
+ { const char *xx = curses_version(); return (xx == 0); }],
[cf_test_ncuconfig=yes],
[cf_test_ncuconfig=no],
[cf_test_ncuconfig=maybe])],
@@ -2803,14 +3105,14 @@ if test "x${PKG_CONFIG:=none}" != xnone; then
;;
esac
- CF_ADD_CFLAGS($cf_pkg_cflags)
+ CF_APPEND_CFLAGS($cf_pkg_cflags)
CF_ADD_LIBS($cf_pkg_libs)
AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
[initscr(); mousemask(0,0); tigetstr((char *)0);],
[AC_TRY_RUN([#include <${cf_cv_ncurses_header:-curses.h}>
int main(void)
- { char *xx = curses_version(); return (xx == 0); }],
+ { const char *xx = curses_version(); return (xx == 0); }],
[cf_have_ncuconfig=yes],
[cf_have_ncuconfig=no],
[cf_have_ncuconfig=maybe])],
@@ -2845,7 +3147,7 @@ if test "x$cf_have_ncuconfig" = "xno"; then
if test "$NCURSES_CONFIG" != none ; then
- CF_ADD_CFLAGS(`$NCURSES_CONFIG --cflags`)
+ CF_APPEND_CFLAGS(`$NCURSES_CONFIG --cflags`)
CF_ADD_LIBS(`$NCURSES_CONFIG --libs`)
# even with config script, some packages use no-override for curses.h
@@ -2989,7 +3291,7 @@ esac
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_NCURSES_LIBS version: 20 updated: 2021/01/03 08:05:37
+dnl CF_NCURSES_LIBS version: 21 updated: 2021/09/04 06:37:12
dnl ---------------
dnl Look for the ncurses library. This is a little complicated on Linux,
dnl because it may be linked with the gpm (general purpose mouse) library.
@@ -3018,7 +3320,7 @@ AC_CHECK_LIB(gpm,Gpm_Open,
case "$host_os" in
(freebsd*)
# This is only necessary if you are linking against an obsolete
- # version of ncurses (but it should do no harm, since it's static).
+ # version of ncurses (but it should do no harm, since it is static).
if test "$cf_nculib_root" = ncurses ; then
AC_CHECK_LIB(mytinfo,tgoto,[cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"])
fi
@@ -3057,7 +3359,7 @@ CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_nculib_root)
AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_NCURSES_VERSION version: 16 updated: 2020/12/31 20:19:42
+dnl CF_NCURSES_VERSION version: 18 updated: 2024/01/07 06:34:16
dnl ------------------
dnl Check for the version of ncurses, to aid in reporting bugs, etc.
dnl Call CF_CURSES_CPPFLAGS first, or CF_NCURSES_CPPFLAGS. We don't use
@@ -3070,8 +3372,10 @@ AC_CACHE_CHECK(for ncurses version, cf_cv_ncurses_version,[
cf_tempfile=out$$
rm -f "$cf_tempfile"
AC_TRY_RUN([
+$ac_includes_default
+
#include <${cf_cv_ncurses_header:-curses.h}>
-#include <stdio.h>
+
int main(void)
{
FILE *fp = fopen("$cf_tempfile", "w");
@@ -3085,7 +3389,7 @@ int main(void)
# ifdef __NCURSES_H
fprintf(fp, "old\\n");
# else
- make an error
+ #error expected ncurses header to define __NCURSES_H
# endif
#endif
${cf_cv_main_return:-return}(0);
@@ -3192,14 +3496,16 @@ case ".[$]$1" in
esac
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_PKG_CONFIG version: 11 updated: 2021/01/01 13:31:04
+dnl CF_PKG_CONFIG version: 13 updated: 2023/10/28 11:59:01
dnl -------------
dnl Check for the package-config program, unless disabled by command-line.
+dnl
+dnl Sets $PKG_CONFIG to the pathname of the pkg-config program.
AC_DEFUN([CF_PKG_CONFIG],
[
AC_MSG_CHECKING(if you want to use pkg-config)
AC_ARG_WITH(pkg-config,
- [ --with-pkg-config{=path} enable/disable use of pkg-config],
+ [[ --with-pkg-config[=CMD] enable/disable use of pkg-config and its name CMD]],
[cf_pkg_config=$withval],
[cf_pkg_config=yes])
AC_MSG_RESULT($cf_pkg_config)
@@ -3228,7 +3534,7 @@ fi
AC_SUBST(PKG_CONFIG)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_POSIX_C_SOURCE version: 11 updated: 2018/12/31 20:46:17
+dnl CF_POSIX_C_SOURCE version: 12 updated: 2023/02/18 17:41:25
dnl -----------------
dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
dnl
@@ -3259,7 +3565,7 @@ 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 <sys/types.h>],[
#ifndef _POSIX_C_SOURCE
-make an error
+#error _POSIX_C_SOURCE is not defined
#endif],
[cf_cv_posix_c_source=no],
[cf_want_posix_source=no
@@ -3278,7 +3584,7 @@ make an error
if test "$cf_want_posix_source" = yes ; then
AC_TRY_COMPILE([#include <sys/types.h>],[
#ifdef _POSIX_SOURCE
-make an error
+#error _POSIX_SOURCE is defined
#endif],[],
cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE")
fi
@@ -3289,7 +3595,7 @@ make an error
CF_MSG_LOG(if the second compile does not leave our definition intact error)
AC_TRY_COMPILE([#include <sys/types.h>],[
#ifndef _POSIX_C_SOURCE
-make an error
+#error _POSIX_C_SOURCE is not defined
#endif],,
[cf_cv_posix_c_source=no])
CFLAGS="$cf_save_CFLAGS"
@@ -3593,6 +3899,24 @@ AC_MSG_RESULT($cf_prog_ln_sf)
test "$cf_prog_ln_sf" = yes && LN_S="$LN_S -f"
])dnl
dnl ---------------------------------------------------------------------------
+dnl CF_REMOVE_CFLAGS version: 3 updated: 2021/09/05 17:25:40
+dnl ----------------
+dnl Remove a given option from CFLAGS/CPPFLAGS
+dnl $1 = option to remove
+dnl $2 = variable to update
+dnl $3 = nonempty to allow verbose message
+define([CF_REMOVE_CFLAGS],
+[
+cf_tmp_cflag=`echo "x$1" | sed -e 's/^.//' -e 's/=.*//'`
+while true
+do
+ cf_old_cflag=`echo "x[$]$2" | sed -e 's/^.//' -e 's/[[ ]][[ ]]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[[^ ]][[^ ]]*\\)\?%%" -e 's/^[[ ]]*//' -e 's%[[ ]][[ ]]*-D% -D%g' -e 's%[[ ]][[ ]]*-I% -I%g'`
+ test "[$]$2" != "$cf_old_cflag" || break
+ ifelse([$3],,,[CF_VERBOSE(removing old option $1 from $2)])
+ $2="$cf_old_cflag"
+done
+])dnl
+dnl ---------------------------------------------------------------------------
dnl CF_REMOVE_DEFINE version: 3 updated: 2010/01/09 11:05:50
dnl ----------------
dnl Remove all -U and -D options that refer to the given symbol from a list
@@ -3659,7 +3983,7 @@ do
done
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_SHARED_OPTS version: 105 updated: 2021/01/02 17:09:14
+dnl CF_SHARED_OPTS version: 111 updated: 2024/03/29 20:08:49
dnl --------------
dnl --------------
dnl Attempt to determine the appropriate CC/LD options for creating a shared
@@ -3683,7 +4007,7 @@ dnl The variable 'cf_cv_shlib_version_infix' controls whether shared library
dnl version numbers are infix (ex: libncurses.<ver>.dylib) or postfix
dnl (ex: libncurses.so.<ver>).
dnl
-dnl Some loaders leave 'so_locations' lying around. It's nice to clean up.
+dnl Some loaders leave 'so_locations' lying around. It is nice to clean up.
AC_DEFUN([CF_SHARED_OPTS],
[
AC_REQUIRE([CF_LD_RPATH_OPT])
@@ -3705,9 +4029,9 @@ AC_DEFUN([CF_SHARED_OPTS],
cf_ld_rpath_opt=
test "$cf_cv_enable_rpath" = yes && cf_ld_rpath_opt="$LD_RPATH_OPT"
- AC_MSG_CHECKING(if release/abi version should be used for shared libs)
+ AC_MSG_CHECKING(whether to use release or ABI version in shared library file names)
AC_ARG_WITH(shlib-version,
- [ --with-shlib-version=X Specify rel or abi version for shared libs],
+ [[ --with-shlib-version[={rel|abi}] use release or ABI version in shared library file names]],
[test -z "$withval" && withval=auto
case "$withval" in
(yes)
@@ -3749,7 +4073,7 @@ AC_DEFUN([CF_SHARED_OPTS],
for CC_SHARED_OPTS in -fPIC -fpic ''
do
CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS"
- AC_TRY_COMPILE([#include <stdio.h>],[int x = 1],[break],[])
+ AC_TRY_COMPILE([#include <stdio.h>],[int x = 1; (void)x],[break],[])
done
AC_MSG_RESULT($CC_SHARED_OPTS)
CFLAGS="$cf_save_CFLAGS"
@@ -3830,6 +4154,10 @@ CF_EOF
LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
fi
;;
+ (haiku*)
+ CF_SHARED_SONAME
+ MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
+ ;;
(hpux[[7-8]]*)
# HP-UX 8.07 ld lacks "+b" option used for libdir search-list
if test "$GCC" != yes; then
@@ -4115,11 +4443,11 @@ CF_EOF
# tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2
# tested with SunOS 5.10 (solaris 10) and gcc 3.4.3
if test "$DFT_LWR_MODEL" = "shared" ; then
- LOCAL_LDFLAGS="-R \$(LOCAL_LIBDIR):\${libdir}"
+ LOCAL_LDFLAGS="-R\$(LOCAL_LIBDIR):\${libdir}"
LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
fi
if test "$cf_cv_enable_rpath" = yes ; then
- EXTRA_LDFLAGS="-R \${libdir} $EXTRA_LDFLAGS"
+ EXTRA_LDFLAGS="-R\${libdir} $EXTRA_LDFLAGS"
fi
CF_SHARED_SONAME
if test "$GCC" != yes; then
@@ -4131,9 +4459,9 @@ CF_EOF
done
CFLAGS="$cf_save_CFLAGS"
CC_SHARED_OPTS=$cf_shared_opts
- MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -dy -G -h '$cf_cv_shared_soname' -o $[@]'
+ MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -dy -G -Wl,-h,'$cf_cv_shared_soname' -o $[@]'
else
- MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -dy -G -h '$cf_cv_shared_soname' -o $[@]'
+ MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -dy -G -Wl,-h,'$cf_cv_shared_soname' -o $[@]'
fi
;;
(sysv5uw7*|unix_sv*)
@@ -4320,34 +4648,20 @@ top_builddir=ifelse($1,,`pwd`,$1)
AC_SUBST(top_builddir)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_TRY_XOPEN_SOURCE version: 2 updated: 2018/06/20 20:23:13
+dnl CF_TRY_XOPEN_SOURCE version: 4 updated: 2022/09/10 15:16:16
dnl -------------------
dnl If _XOPEN_SOURCE is not defined in the compile environment, check if we
dnl can define it successfully.
AC_DEFUN([CF_TRY_XOPEN_SOURCE],[
AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
- AC_TRY_COMPILE([
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-],[
-#ifndef _XOPEN_SOURCE
-make an error
-#endif],
+ AC_TRY_COMPILE(CF__XOPEN_SOURCE_HEAD,CF__XOPEN_SOURCE_BODY,
[cf_cv_xopen_source=no],
[cf_save="$CPPFLAGS"
CF_APPEND_TEXT(CPPFLAGS,-D_XOPEN_SOURCE=$cf_XOPEN_SOURCE)
- AC_TRY_COMPILE([
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-],[
-#ifdef _XOPEN_SOURCE
-make an error
-#endif],
- [cf_cv_xopen_source=no],
- [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
- CPPFLAGS="$cf_save"
+ AC_TRY_COMPILE(CF__XOPEN_SOURCE_HEAD,CF__XOPEN_SOURCE_BODY,
+ [cf_cv_xopen_source=no],
+ [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
+ CPPFLAGS="$cf_save"
])
])
@@ -4355,7 +4669,7 @@ if test "$cf_cv_xopen_source" != no ; then
CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
- CF_ADD_CFLAGS($cf_temp_xopen_source)
+ CF_APPEND_CFLAGS($cf_temp_xopen_source)
fi
])
dnl ---------------------------------------------------------------------------
@@ -4368,15 +4682,20 @@ AC_DEFUN([CF_UPPER],
$1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_UTF8_LIB version: 8 updated: 2012/10/06 08:57:51
+dnl CF_UTF8_LIB version: 10 updated: 2023/01/11 04:05:23
dnl -----------
dnl Check for multibyte support, and if not found, utf8 compatibility library
AC_DEFUN([CF_UTF8_LIB],
[
+AC_HAVE_HEADERS(wchar.h)
AC_CACHE_CHECK(for multibyte character support,cf_cv_utf8_lib,[
cf_save_LIBS="$LIBS"
AC_TRY_LINK([
-#include <stdlib.h>],[putwc(0,0);],
+$ac_includes_default
+#ifdef HAVE_WCHAR_H
+#include <wchar.h>
+#endif
+],[putwc(0,0);],
[cf_cv_utf8_lib=yes],
[CF_FIND_LINKAGE([
#include <libutf8.h>],[putwc(0,0);],utf8,
@@ -4428,26 +4747,26 @@ weak_symbol(fopen);
])
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_WITH_ADA_COMPILER version: 2 updated: 2010/06/26 17:35:58
+dnl CF_WITH_ADA_COMPILER version: 3 updated: 2023/10/28 11:59:01
dnl --------------------
dnl Command-line option to specify the Ada95 compiler.
AC_DEFUN([CF_WITH_ADA_COMPILER],[
-AC_MSG_CHECKING(for ada-compiler)
+AC_MSG_CHECKING(for Ada95 compiler)
AC_ARG_WITH(ada-compiler,
- [ --with-ada-compiler=CMD specify Ada95 compiler command (default gnatmake)],
+ [[ --with-ada-compiler[=CMD] use CMD as Ada95 compiler (default: gnatmake)]],
[cf_ada_compiler=$withval],
[cf_ada_compiler=gnatmake])
AC_SUBST(cf_ada_compiler)
AC_MSG_RESULT($cf_ada_compiler)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_WITH_ADA_INCLUDE version: 2 updated: 2010/06/26 17:35:58
+dnl CF_WITH_ADA_INCLUDE version: 3 updated: 2023/10/28 11:59:01
dnl -------------------
dnl Command-line option to specify where Ada includes will install.
AC_DEFUN([CF_WITH_ADA_INCLUDE],[
-AC_MSG_CHECKING(for ada-include)
+AC_MSG_CHECKING(for Ada95 include directory)
CF_WITH_PATH(ada-include,
- [ --with-ada-include=DIR Ada includes are in DIR],
+ [ --with-ada-include=DIR find Ada95 includes in DIR],
ADA_INCLUDE,
PREFIX/share/ada/adainclude,
[$]prefix/share/ada/adainclude)
@@ -4455,16 +4774,16 @@ AC_SUBST(ADA_INCLUDE)
AC_MSG_RESULT($ADA_INCLUDE)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_WITH_ADA_LIBNAME version: 1 updated: 2019/09/07 18:59:41
+dnl CF_WITH_ADA_LIBNAME version: 3 updated: 2023/11/22 20:48:30
dnl -------------------
dnl CF_WITH_ADA_LIBNAME
dnl -------------------
dnl Command-line option to specify how to name the resulting Ada library.
dnl $1 = default value
AC_DEFUN([CF_WITH_ADA_LIBNAME],[
-AC_MSG_CHECKING(for ada-libname)
+AC_MSG_CHECKING(for Ada95 curses library name)
AC_ARG_WITH(ada-libname,
- [ --with-ada-libname=XXX override default Ada library-name],
+ [[ --with-ada-libname[=XXX] use XXX as Ada95 library name]],
ADA_LIBNAME=[$]withval,
ADA_LIBNAME=$1)
case "x$ADA_LIBNAME" in
@@ -4476,13 +4795,13 @@ AC_SUBST(ADA_LIBNAME)
AC_MSG_RESULT($ADA_LIBNAME)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_WITH_ADA_OBJECTS version: 2 updated: 2010/06/26 17:35:58
+dnl CF_WITH_ADA_OBJECTS version: 3 updated: 2023/10/28 11:59:01
dnl -------------------
dnl Command-line option to specify where Ada objects will install.
AC_DEFUN([CF_WITH_ADA_OBJECTS],[
-AC_MSG_CHECKING(for ada-objects)
+AC_MSG_CHECKING(for Ada95 object directory)
CF_WITH_PATH(ada-objects,
- [ --with-ada-objects=DIR Ada objects are in DIR],
+ [ --with-ada-objects=DIR find Ada95 objects in DIR],
ADA_OBJECTS,
PREFIX/lib/ada/adalib,
[$]prefix/lib/ada/adalib)
@@ -4490,28 +4809,34 @@ AC_SUBST(ADA_OBJECTS)
AC_MSG_RESULT($ADA_OBJECTS)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_WITH_ADA_SHAREDLIB version: 5 updated: 2018/07/21 19:10:35
+dnl CF_WITH_ADA_SHAREDLIB version: 6 updated: 2023/10/28 11:59:01
dnl ---------------------
-dnl Command-line option to specify if an Ada95 shared-library should be built,
+dnl Command-line option to specify if an Ada95 shared library should be built,
dnl and optionally what its soname should be.
AC_DEFUN([CF_WITH_ADA_SHAREDLIB],[
AC_REQUIRE([CF_GNAT_PROJECTS])
-AC_MSG_CHECKING(if an Ada95 shared-library should be built)
+AC_MSG_CHECKING(whether to build an Ada95 shared library)
AC_ARG_WITH(ada-sharedlib,
- [ --with-ada-sharedlib=soname build shared-library (requires GNAT projects)],
+ [ --with-ada-sharedlib build Ada95 shared library; requires GNAT project support],
[with_ada_sharedlib=$withval],
[with_ada_sharedlib=no])
-AC_MSG_RESULT($with_ada_sharedlib)
+cf_ada_sharedlib_warn=no
if test "x$with_ada_sharedlib" != xno
then
if test "x$cf_gnat_projects" != xyes
then
- AC_MSG_WARN(disabling shared-library since GNAT projects are not supported)
with_ada_sharedlib=no
+ cf_ada_sharedlib_warn=yes
fi
fi
+AC_MSG_RESULT($with_ada_sharedlib)
+if test "x$cf_ada_sharedlib_warn" != xno
+then
+ AC_MSG_WARN(disabling Ada95 shared library since GNAT projects are not supported)
+fi
+
ADA_SHAREDLIB='lib$(LIB_NAME).so.1'
MAKE_ADA_SHAREDLIB="#"
@@ -4578,7 +4903,7 @@ else
fi
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_WITH_PATH version: 11 updated: 2012/09/29 15:04:19
+dnl CF_WITH_PATH version: 12 updated: 2021/09/04 06:35:04
dnl ------------
dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just
dnl defaulting to yes/no.
@@ -4587,7 +4912,7 @@ dnl $1 = option name
dnl $2 = help-text
dnl $3 = environment variable to set
dnl $4 = default value, shown in the help-message, must be a constant
-dnl $5 = default value, if it's an expression & cannot be in the help-message
+dnl $5 = default value, if it is an expression & cannot be in the help-message
dnl
AC_DEFUN([CF_WITH_PATH],
[AC_ARG_WITH($1,[$2 ](default: ifelse([$4],,empty,[$4])),,
@@ -4599,9 +4924,19 @@ eval $3="$withval"
AC_SUBST($3)dnl
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_WITH_PKG_CONFIG_LIBDIR version: 11 updated: 2021/01/01 16:16:30
+dnl CF_WITH_PKG_CONFIG_LIBDIR version: 23 updated: 2023/11/22 20:48:30
dnl -------------------------
dnl Allow the choice of the pkg-config library directory to be overridden.
+dnl
+dnl pkg-config uses a search-list built from these colon-separated lists of
+dnl directories:
+dnl a) $PKG_CONFIG_PATH (tested first, added if set)
+dnl b) $PKG_CONFIG_LIBDIR (tested second, added if set)
+dnl c) builtin-list (added if $PKG_CONFIG_LIBDIR is not set)
+dnl
+dnl pkgconf (used with some systems such as FreeBSD in place of pkg-config)
+dnl optionally ignores $PKG_CONFIG_LIBDIR. Very old versions of pkg-config,
+dnl e.g., Solaris 10 also do not recognize $PKG_CONFIG_LIBDIR.
AC_DEFUN([CF_WITH_PKG_CONFIG_LIBDIR],[
case "$PKG_CONFIG" in
@@ -4613,68 +4948,119 @@ case "$PKG_CONFIG" in
;;
esac
-PKG_CONFIG_LIBDIR=no
+# if $PKG_CONFIG_LIBDIR is set, try to use that
+if test -n "$PKG_CONFIG_PATH"; then
+ cf_search_path=`echo "$PKG_CONFIG_PATH" | sed -e 's/:/ /g' -e 's,^[[ ]]*,,' -e 's,[[ ]]*$,,'`
+elif test -n "$PKG_CONFIG_LIBDIR"; then
+ cf_search_path=`echo "$PKG_CONFIG_LIBDIR" | sed -e 's/:/ /g' -e 's,^[[ ]]*,,' -e 's,[[ ]]*$,,'`
+else
+ cf_search_path=auto
+fi
+
+# if the option is used, let that override. otherwise default to "libdir"
AC_ARG_WITH(pkg-config-libdir,
- [ --with-pkg-config-libdir=XXX use given directory for installing pc-files],
- [PKG_CONFIG_LIBDIR=$withval],
- [test "x$PKG_CONFIG" != xnone && PKG_CONFIG_LIBDIR=yes])
+ [[ --with-pkg-config-libdir[=XXX] use given directory for installing pc-files]],
+ [cf_search_path=$withval],
+ [test "x$PKG_CONFIG" != xnone && test -z "$cf_search_path" && cf_search_path=libdir])
-case x$PKG_CONFIG_LIBDIR in
+case "x$cf_search_path" in
+(xlibdir)
+ PKG_CONFIG_LIBDIR='${libdir}/pkgconfig'
+ AC_MSG_RESULT($PKG_CONFIG_LIBDIR)
+ cf_search_path=
+ ;;
+(x)
+ ;;
+(x/*\ *)
+ PKG_CONFIG_LIBDIR=
+ ;;
(x/*)
+ PKG_CONFIG_LIBDIR="$cf_search_path"
+ AC_MSG_RESULT($PKG_CONFIG_LIBDIR)
+ cf_search_path=
;;
-(xyes)
+(xyes|xauto)
+ AC_MSG_RESULT(auto)
+ cf_search_path=
# Look for the library directory using the same prefix as the executable
- if test "x$PKG_CONFIG" = xnone
+ AC_MSG_CHECKING(for search-list)
+ if test "x$PKG_CONFIG" != xnone
then
- cf_path=$prefix
- else
- cf_path=`echo "$PKG_CONFIG" | sed -e 's,/[[^/]]*/[[^/]]*$,,'`
+ # works for pkg-config since version 0.24 (2009)
+ # works for pkgconf since version 0.8.3 (2012)
+ for cf_pkg_program in \
+ `echo "$PKG_CONFIG" | sed -e 's,^.*/,,'` \
+ pkg-config \
+ pkgconf
+ do
+ cf_search_path=`"$PKG_CONFIG" --variable=pc_path "$cf_pkg_program" 2>/dev/null | tr : ' '`
+ test -n "$cf_search_path" && break
+ done
+
+ # works for pkg-config since import in 2005 of original 2001 HP code.
+ test -z "$cf_search_path" && \
+ cf_search_path=`
+ "$PKG_CONFIG" --debug --exists no-such-package 2>&1 | $AWK "\
+/^Scanning directory (#[1-9][0-9]* )?'.*'$/{ \
+ sub(\"^[[^']]*'\",\"\"); \
+ sub(\"'.*\",\"\"); \
+ printf \" %s\", \\[$]0; } \
+{ next; } \
+"`
fi
- # If you don't like using the default architecture, you have to specify the
- # intended library directory and corresponding compiler/linker options.
- #
- # This case allows for Debian's 2014-flavor of multiarch, along with the
- # most common variations before that point. Some other variants spell the
- # directory differently, e.g., "pkg-config", and put it in unusual places.
- # pkg-config has always been poorly standardized, which is ironic...
- case x`(arch) 2>/dev/null` in
- (*64)
- cf_search_path="\
- $cf_path/lib/*64-linux-gnu \
- $cf_path/share \
- $cf_path/lib64 \
- $cf_path/lib32 \
- $cf_path/lib"
- ;;
- (*)
- cf_search_path="\
- $cf_path/lib/*-linux-gnu \
- $cf_path/share \
- $cf_path/lib32 \
- $cf_path/lib \
- $cf_path/libdata"
- ;;
- esac
+ AC_MSG_RESULT($cf_search_path)
+ ;;
+(*)
+ AC_MSG_ERROR(Unexpected option value: $cf_search_path)
+ ;;
+esac
- CF_VERBOSE(list...)
+if test -n "$cf_search_path"
+then
+ AC_MSG_CHECKING(for first directory)
+ cf_pkg_config_path=none
for cf_config in $cf_search_path
do
- CF_VERBOSE(checking $cf_config/pkgconfig)
- if test -d "$cf_config/pkgconfig"
+ if test -d "$cf_config"
then
- PKG_CONFIG_LIBDIR=$cf_config/pkgconfig
- AC_MSG_CHECKING(done)
+ cf_pkg_config_path=$cf_config
break
fi
done
- ;;
-(*)
- ;;
-esac
+ AC_MSG_RESULT($cf_pkg_config_path)
-if test "x$PKG_CONFIG_LIBDIR" != xno ; then
- AC_MSG_RESULT($PKG_CONFIG_LIBDIR)
+ if test "x$cf_pkg_config_path" != xnone ; then
+ # limit this to the first directory found
+ PKG_CONFIG_LIBDIR="$cf_pkg_config_path"
+ fi
+
+ if test -z "$PKG_CONFIG_LIBDIR" && test -n "$cf_search_path"
+ then
+ AC_MSG_CHECKING(for workaround)
+ if test "$prefix" = "NONE" ; then
+ cf_prefix="$ac_default_prefix"
+ else
+ cf_prefix="$prefix"
+ fi
+ eval cf_libdir=$libdir
+ cf_libdir=`echo "$cf_libdir" | sed -e "s,^NONE,$cf_prefix,"`
+ cf_backup=
+ for cf_config in $cf_search_path
+ do
+ case $cf_config in
+ $cf_libdir/pkgconfig)
+ PKG_CONFIG_LIBDIR=$cf_libdir/pkgconfig
+ break
+ ;;
+ *)
+ test -z "$cf_backup" && cf_backup=$cf_config
+ ;;
+ esac
+ done
+ test -z "$PKG_CONFIG_LIBDIR" && PKG_CONFIG_LIBDIR=$cf_backup
+ AC_MSG_RESULT($PKG_CONFIG_LIBDIR)
+ fi
fi
AC_SUBST(PKG_CONFIG_LIBDIR)
@@ -4742,7 +5128,7 @@ AC_ARG_WITH(system-type,
])
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_XOPEN_SOURCE version: 57 updated: 2021/01/01 16:53:59
+dnl CF_XOPEN_SOURCE version: 67 updated: 2023/09/06 18:55:27
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,
@@ -4751,6 +5137,18 @@ dnl
dnl Parameters:
dnl $1 is the nominal value for _XOPEN_SOURCE
dnl $2 is the nominal value for _POSIX_C_SOURCE
+dnl
+dnl The default case prefers _XOPEN_SOURCE over _POSIX_C_SOURCE if the
+dnl implementation predefines it, because X/Open and most implementations agree
+dnl that the latter is a legacy or "aligned" value.
+dnl
+dnl Because _XOPEN_SOURCE is preferred, if defining _POSIX_C_SOURCE turns
+dnl that off, then refrain from setting _POSIX_C_SOURCE explicitly.
+dnl
+dnl References:
+dnl https://pubs.opengroup.org/onlinepubs/007904975/functions/xsh_chap02_02.html
+dnl https://docs.oracle.com/cd/E19253-01/816-5175/standards-5/index.html
+dnl https://www.gnu.org/software/libc/manual/html_node/Feature-Test-Macros.html
AC_DEFUN([CF_XOPEN_SOURCE],[
AC_REQUIRE([AC_CANONICAL_HOST])
AC_REQUIRE([CF_POSIX_VISIBLE])
@@ -4765,9 +5163,6 @@ case "$host_os" in
(aix[[4-7]]*)
cf_xopen_source="-D_ALL_SOURCE"
;;
-(msys)
- cf_XOPEN_SOURCE=600
- ;;
(darwin[[0-8]].*)
cf_xopen_source="-D_APPLE_C_SOURCE"
;;
@@ -4793,7 +5188,7 @@ case "$host_os" in
cf_xopen_source="-D_SGI_SOURCE"
cf_XOPEN_SOURCE=
;;
-(linux*|uclinux*|gnu*|mint*|k*bsd*-gnu|cygwin)
+(linux*gnu|linux*gnuabi64|linux*gnuabin32|linux*gnueabi|linux*gnueabihf|linux*gnux32|uclinux*|gnu*|mint*|k*bsd*-gnu|cygwin|msys|mingw*|linux*uclibc)
CF_GNU_SOURCE($cf_XOPEN_SOURCE)
;;
(minix*)
@@ -4807,7 +5202,15 @@ case "$host_os" in
(netbsd*)
cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
;;
-(openbsd[[4-9]]*)
+(openbsd[[6-9]]*)
+ # OpenBSD 6.x has broken locale support, both compile-time and runtime.
+ # see https://www.mail-archive.com/bugs@openbsd.org/msg13200.html
+ # Abusing the conformance level is a workaround.
+ AC_MSG_WARN(this system does not provide usable locale support)
+ cf_xopen_source="-D_BSD_SOURCE"
+ cf_XOPEN_SOURCE=700
+ ;;
+(openbsd[[4-5]]*)
# setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw
cf_xopen_source="-D_BSD_SOURCE"
cf_XOPEN_SOURCE=600
@@ -4834,12 +5237,20 @@ case "$host_os" in
;;
(*)
CF_TRY_XOPEN_SOURCE
+ cf_save_xopen_cppflags="$CPPFLAGS"
CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
+ # Some of these niche implementations use copy/paste, double-check...
+ if test "$cf_cv_xopen_source" = no ; then
+ CF_VERBOSE(checking if _POSIX_C_SOURCE interferes with _XOPEN_SOURCE)
+ AC_TRY_COMPILE(CF__XOPEN_SOURCE_HEAD,CF__XOPEN_SOURCE_BODY,,[
+ AC_MSG_WARN(_POSIX_C_SOURCE definition is not usable)
+ CPPFLAGS="$cf_save_xopen_cppflags"])
+ fi
;;
esac
if test -n "$cf_xopen_source" ; then
- CF_ADD_CFLAGS($cf_xopen_source,true)
+ CF_APPEND_CFLAGS($cf_xopen_source,true)
fi
dnl In anything but the default case, we may have system-specific setting
@@ -4849,7 +5260,7 @@ if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then
AC_MSG_CHECKING(if _XOPEN_SOURCE really is set)
AC_TRY_COMPILE([#include <stdlib.h>],[
#ifndef _XOPEN_SOURCE
-make an error
+#error _XOPEN_SOURCE is not defined
#endif],
[cf_XOPEN_SOURCE_set=yes],
[cf_XOPEN_SOURCE_set=no])
@@ -4858,7 +5269,7 @@ make an error
then
AC_TRY_COMPILE([#include <stdlib.h>],[
#if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE
-make an error
+#error (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE
#endif],
[cf_XOPEN_SOURCE_set_ok=yes],
[cf_XOPEN_SOURCE_set_ok=no])
@@ -4878,3 +5289,21 @@ dnl ------------------
dnl Trim something using sed, then trim extra whitespace
dnl $1 = extra parameters, e.g., in CF_STRIP_G_OPT
define([CF__SED_TRIMBLANKS],[sed ifelse($1,,,[$1] )-e 's%[[ ]]% %g' -e 's% [[ ]]*% %g' -e 's%^ %%' -e 's% [$]%%'])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF__XOPEN_SOURCE_BODY version: 2 updated: 2023/02/18 17:41:25
+dnl ---------------------
+dnl body of test when test-compiling for _XOPEN_SOURCE check
+define([CF__XOPEN_SOURCE_BODY],
+[
+#ifndef _XOPEN_SOURCE
+#error _XOPEN_SOURCE is not defined
+#endif
+])
+dnl ---------------------------------------------------------------------------
+dnl CF__XOPEN_SOURCE_HEAD version: 2 updated: 2023/02/18 17:41:25
+dnl ---------------------
+dnl headers to include when test-compiling for _XOPEN_SOURCE check
+define([CF__XOPEN_SOURCE_HEAD],
+[
+$ac_includes_default
+])
diff --git a/Ada95/configure b/Ada95/configure
index ac324fe9f3ee..8c01a2936cdc 100755
--- a/Ada95/configure
+++ b/Ada95/configure
@@ -1,9 +1,9 @@
#! /bin/sh
-# From configure.in Revision: 1.82 .
+# From configure.in Revision: 1.91 .
# Guess values for system-dependent variables and create Makefiles.
-# Generated by Autoconf 2.52.20210105.
+# Generated by Autoconf 2.52.20231210.
#
-# Copyright 2003-2020,2021 Thomas E. Dickey
+# Copyright 2003-2022,2023 Thomas E. Dickey
# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
# Free Software Foundation, Inc.
# This configure script is free software; the Free Software Foundation
@@ -34,9 +34,9 @@ fi
as_me=`echo "$0" |sed 's,.*[\\/],,'`
if expr a : '\(a\)' >/dev/null 2>&1; then
- as_expr=expr
+ as_expr="expr"
else
- as_expr=false
+ as_expr="false"
fi
rm -f conf$$ conf$$.exe conf$$.file
@@ -51,7 +51,7 @@ if ln -s conf$$.file conf$$ 2>/dev/null; then
as_ln_s='ln -s'
fi
elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
+ as_ln_s='ln'
else
as_ln_s='cp -p'
fi
@@ -704,8 +704,9 @@ Optional Features:
General Options:
--with-system-type=XXX test: override derived host system-type
--disable-stripping do not strip (debug info) installed executables
- --with-pkg-config{=path} enable/disable use of pkg-config
- --with-pkg-config-libdir=XXX use given directory for installing pc-files
+ --with-strip-program=XX specify program to use when stripping in install
+ --with-pkg-config[=CMD] enable/disable use of pkg-config and its name CMD
+ --with-pkg-config-libdir[=XXX] use given directory for installing pc-files
--without-tests suppress build with test-programs
--enable-mixed-case tic should assume mixed-case filenames
--with-install-prefix prefixes actual install-location ($DESTDIR)
@@ -721,7 +722,7 @@ Options to Specify the Libraries Built/Used:
--with-curses-dir=DIR directory in which (n)curses is installed
--enable-widec compile with wide-char/UTF-8 code
--with-lib-prefix override library-prefix
- --with-shlib-version=X Specify rel or abi version for shared libs
+ --with-shlib-version[={rel|abi}] use release or ABI version in shared library file names
--enable-rpath-link link sample programs with rpath option
Fine-Tuning Your Configuration:
--enable-broken_linker compile with broken-linker support code
@@ -740,17 +741,18 @@ Experimental Code:
Testing/development Options:
--disable-echo do not display "compiling" commands
--enable-warnings test: turn on gcc compiler warnings
+ --enable-stdnoreturn enable C11 _Noreturn feature for diagnostics
--enable-assertions test: turn on generation of assertion code
--enable-expanded test: generate functions for certain macros
--disable-macros test: use functions rather than macros
--with-trace test: add trace() function to all models of ncurses
--disable-gnat-projects test: disable GNAT projects even if usable
Ada95 Binding Options:
- --with-ada-compiler=CMD specify Ada95 compiler command (default gnatmake)
- --with-ada-include=DIR Ada includes are in DIR (default: PREFIX/share/ada/adainclude)
- --with-ada-objects=DIR Ada objects are in DIR (default: PREFIX/lib/ada/adalib)
- --with-ada-sharedlib=soname build shared-library (requires GNAT projects)
- --with-ada-libname=XXX override default Ada library-name
+ --with-ada-compiler[=CMD] use CMD as Ada95 compiler (default: gnatmake)
+ --with-ada-include=DIR find Ada95 includes in DIR (default: PREFIX/share/ada/adainclude)
+ --with-ada-objects=DIR find Ada95 objects in DIR (default: PREFIX/lib/ada/adalib)
+ --with-ada-sharedlib build Ada95 shared library; requires GNAT project support
+ --with-ada-libname[=XXX] use XXX as Ada95 library name
Some influential environment variables:
CC C compiler command
@@ -807,7 +809,7 @@ test -n "$ac_init_help" && exit 0
if "$ac_init_version"; then
cat <<\EOF
-Copyright 2003-2020,2021 Thomas E. Dickey
+Copyright 2003-2022,2023 Thomas E. Dickey
Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
@@ -821,7 +823,7 @@ This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by $as_me, which was
-generated by GNU Autoconf 2.52.20210105. Invocation command line was
+generated by GNU Autoconf 2.52.20231210. Invocation command line was
$ $0 $@
@@ -945,7 +947,7 @@ if test -z "$CONFIG_SITE"; then
fi
for ac_site_file in $CONFIG_SITE; do
if test -r "$ac_site_file"; then
- { echo "$as_me:948: loading site script $ac_site_file" >&5
+ { echo "$as_me:950: loading site script $ac_site_file" >&5
echo "$as_me: loading site script $ac_site_file" >&6;}
cat "$ac_site_file" >&5
. "$ac_site_file"
@@ -956,7 +958,7 @@ if test -r "$cache_file"; then
# Some versions of bash will fail to source /dev/null (special
# files actually), so we avoid doing that.
if test -f "$cache_file"; then
- { echo "$as_me:959: loading cache $cache_file" >&5
+ { echo "$as_me:961: loading cache $cache_file" >&5
echo "$as_me: loading cache $cache_file" >&6;}
case $cache_file in
[\\/]* | ?:[\\/]* ) . $cache_file;;
@@ -964,7 +966,7 @@ echo "$as_me: loading cache $cache_file" >&6;}
esac
fi
else
- { echo "$as_me:967: creating cache $cache_file" >&5
+ { echo "$as_me:969: creating cache $cache_file" >&5
echo "$as_me: creating cache $cache_file" >&6;}
>$cache_file
fi
@@ -980,21 +982,21 @@ for ac_var in `(set) 2>&1 |
eval ac_new_val="\$ac_env_${ac_var}_value"
case "$ac_old_set,$ac_new_set" in
set,)
- { echo "$as_me:983: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+ { echo "$as_me:985: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
ac_cache_corrupted=: ;;
,set)
- { echo "$as_me:987: error: \`$ac_var' was not set in the previous run" >&5
+ { echo "$as_me:989: error: \`$ac_var' was not set in the previous run" >&5
echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
ac_cache_corrupted=: ;;
,);;
*)
if test "x$ac_old_val" != "x$ac_new_val"; then
- { echo "$as_me:993: error: \`$ac_var' has changed since the previous run:" >&5
+ { echo "$as_me:995: error: \`$ac_var' has changed since the previous run:" >&5
echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
- { echo "$as_me:995: former value: $ac_old_val" >&5
+ { echo "$as_me:997: former value: $ac_old_val" >&5
echo "$as_me: former value: $ac_old_val" >&2;}
- { echo "$as_me:997: current value: $ac_new_val" >&5
+ { echo "$as_me:999: current value: $ac_new_val" >&5
echo "$as_me: current value: $ac_new_val" >&2;}
ac_cache_corrupted=:
fi;;
@@ -1013,9 +1015,9 @@ echo "$as_me: current value: $ac_new_val" >&2;}
fi
done
if "$ac_cache_corrupted"; then
- { echo "$as_me:1016: error: changes in the environment can compromise the build" >&5
+ { echo "$as_me:1018: error: changes in the environment can compromise the build" >&5
echo "$as_me: error: changes in the environment can compromise the build" >&2;}
- { { echo "$as_me:1018: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
+ { { echo "$as_me:1020: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -1044,10 +1046,10 @@ esac
echo "#! $SHELL" >conftest.sh
echo "exit 0" >>conftest.sh
chmod +x conftest.sh
-if { (echo "$as_me:1047: PATH=\".;.\"; conftest.sh") >&5
+if { (echo "$as_me:1049: PATH=\".;.\"; conftest.sh") >&5
(PATH=".;."; conftest.sh) 2>&5
ac_status=$?
- echo "$as_me:1050: \$? = $ac_status" >&5
+ echo "$as_me:1052: \$? = $ac_status" >&5
(exit "$ac_status"); }; then
ac_path_separator=';'
else
@@ -1058,6 +1060,8 @@ rm -f conftest.sh
ac_config_headers="$ac_config_headers include/ncurses_cfg.h:include/ncurses_cfg.hin"
+PACKAGE="AdaCurses"
+
top_builddir=`pwd`
ac_aux_dir=
@@ -1077,7 +1081,7 @@ for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
fi
done
if test -z "$ac_aux_dir"; then
- { { echo "$as_me:1080: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
+ { { echo "$as_me:1084: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -1087,11 +1091,11 @@ ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
# Make sure we can run config.sub.
$ac_config_sub sun4 >/dev/null 2>&1 ||
- { { echo "$as_me:1090: error: cannot run $ac_config_sub" >&5
+ { { echo "$as_me:1094: error: cannot run $ac_config_sub" >&5
echo "$as_me: error: cannot run $ac_config_sub" >&2;}
{ (exit 1); exit 1; }; }
-echo "$as_me:1094: checking build system type" >&5
+echo "$as_me:1098: checking build system type" >&5
echo $ECHO_N "checking build system type... $ECHO_C" >&6
if test "${ac_cv_build+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1100,23 +1104,23 @@ else
test -z "$ac_cv_build_alias" &&
ac_cv_build_alias=`$ac_config_guess`
test -z "$ac_cv_build_alias" &&
- { { echo "$as_me:1103: error: cannot guess build type; you must specify one" >&5
+ { { echo "$as_me:1107: error: cannot guess build type; you must specify one" >&5
echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
{ (exit 1); exit 1; }; }
ac_cv_build=`$ac_config_sub "$ac_cv_build_alias"` ||
- { { echo "$as_me:1107: error: $ac_config_sub $ac_cv_build_alias failed." >&5
+ { { echo "$as_me:1111: error: $ac_config_sub $ac_cv_build_alias failed." >&5
echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed." >&2;}
{ (exit 1); exit 1; }; }
fi
-echo "$as_me:1112: result: $ac_cv_build" >&5
+echo "$as_me:1116: result: $ac_cv_build" >&5
echo "${ECHO_T}$ac_cv_build" >&6
build=$ac_cv_build
build_cpu=`echo "$ac_cv_build" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
build_vendor=`echo "$ac_cv_build" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
build_os=`echo "$ac_cv_build" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-echo "$as_me:1119: checking host system type" >&5
+echo "$as_me:1123: checking host system type" >&5
echo $ECHO_N "checking host system type... $ECHO_C" >&6
if test "${ac_cv_host+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1125,12 +1129,12 @@ else
test -z "$ac_cv_host_alias" &&
ac_cv_host_alias=$ac_cv_build_alias
ac_cv_host=`$ac_config_sub "$ac_cv_host_alias"` ||
- { { echo "$as_me:1128: error: $ac_config_sub $ac_cv_host_alias failed" >&5
+ { { echo "$as_me:1132: error: $ac_config_sub $ac_cv_host_alias failed" >&5
echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
{ (exit 1); exit 1; }; }
fi
-echo "$as_me:1133: result: $ac_cv_host" >&5
+echo "$as_me:1137: result: $ac_cv_host" >&5
echo "${ECHO_T}$ac_cv_host" >&6
host=$ac_cv_host
host_cpu=`echo "$ac_cv_host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
@@ -1138,7 +1142,7 @@ host_vendor=`echo "$ac_cv_host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
host_os=`echo "$ac_cv_host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
if test -f "$srcdir/config.guess" || test -f "$ac_aux_dir/config.guess" ; then
- echo "$as_me:1141: checking target system type" >&5
+ echo "$as_me:1145: checking target system type" >&5
echo $ECHO_N "checking target system type... $ECHO_C" >&6
if test "${ac_cv_target+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1147,12 +1151,12 @@ else
test "x$ac_cv_target_alias" = "x" &&
ac_cv_target_alias=$ac_cv_host_alias
ac_cv_target=`$ac_config_sub "$ac_cv_target_alias"` ||
- { { echo "$as_me:1150: error: $ac_config_sub $ac_cv_target_alias failed" >&5
+ { { echo "$as_me:1154: error: $ac_config_sub $ac_cv_target_alias failed" >&5
echo "$as_me: error: $ac_config_sub $ac_cv_target_alias failed" >&2;}
{ (exit 1); exit 1; }; }
fi
-echo "$as_me:1155: result: $ac_cv_target" >&5
+echo "$as_me:1159: result: $ac_cv_target" >&5
echo "${ECHO_T}$ac_cv_target" >&6
target=$ac_cv_target
target_cpu=`echo "$ac_cv_target" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
@@ -1184,13 +1188,13 @@ else
fi
test -z "$system_name" && system_name="$cf_cv_system_name"
-test -n "$cf_cv_system_name" && echo "$as_me:1187: result: Configuring for $cf_cv_system_name" >&5
+test -n "$cf_cv_system_name" && echo "$as_me:1191: result: Configuring for $cf_cv_system_name" >&5
echo "${ECHO_T}Configuring for $cf_cv_system_name" >&6
if test ".$system_name" != ".$cf_cv_system_name" ; then
- echo "$as_me:1191: result: Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&5
+ echo "$as_me:1195: result: Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&5
echo "${ECHO_T}Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&6
- { { echo "$as_me:1193: error: \"Please remove config.cache and try again.\"" >&5
+ { { echo "$as_me:1197: error: \"Please remove config.cache and try again.\"" >&5
echo "$as_me: error: \"Please remove config.cache and try again.\"" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -1198,7 +1202,7 @@ fi
# Check whether --with-system-type or --without-system-type was given.
if test "${with_system_type+set}" = set; then
withval="$with_system_type"
- { echo "$as_me:1201: WARNING: overriding system type to $withval" >&5
+ { echo "$as_me:1205: WARNING: overriding system type to $withval" >&5
echo "$as_me: WARNING: overriding system type to $withval" >&2;}
cf_cv_system_name=$withval
host_os=$withval
@@ -1213,7 +1217,7 @@ for ac_prog in ggrep grep
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-echo "$as_me:1216: checking for $ac_word" >&5
+echo "$as_me:1220: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_GREP+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1228,7 +1232,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_GREP="$ac_prog"
-echo "$as_me:1231: found $ac_dir/$ac_word" >&5
+echo "$as_me:1235: found $ac_dir/$ac_word" >&5
break
done
@@ -1236,10 +1240,10 @@ fi
fi
GREP=$ac_cv_prog_GREP
if test -n "$GREP"; then
- echo "$as_me:1239: result: $GREP" >&5
+ echo "$as_me:1243: result: $GREP" >&5
echo "${ECHO_T}$GREP" >&6
else
- echo "$as_me:1242: result: no" >&5
+ echo "$as_me:1246: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -1247,7 +1251,7 @@ fi
done
test -n "$GREP" || GREP=": "
-echo "$as_me:1250: checking for fgrep" >&5
+echo "$as_me:1254: checking for fgrep" >&5
echo $ECHO_N "checking for fgrep... $ECHO_C" >&6
if test "${ac_cv_path_FGREP+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1259,7 +1263,7 @@ else
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-echo "$as_me:1262: checking for $ac_word" >&5
+echo "$as_me:1266: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_path_FGREP+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1276,7 +1280,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
if $as_executable_p "$ac_dir/$ac_word"; then
ac_cv_path_FGREP="$ac_dir/$ac_word"
- echo "$as_me:1279: found $ac_dir/$ac_word" >&5
+ echo "$as_me:1283: found $ac_dir/$ac_word" >&5
break
fi
done
@@ -1287,10 +1291,10 @@ fi
FGREP=$ac_cv_path_FGREP
if test -n "$FGREP"; then
- echo "$as_me:1290: result: $FGREP" >&5
+ echo "$as_me:1294: result: $FGREP" >&5
echo "${ECHO_T}$FGREP" >&6
else
- echo "$as_me:1293: result: no" >&5
+ echo "$as_me:1297: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -1298,16 +1302,16 @@ fi
done
test -n "$FGREP" || FGREP=": "
- test "x$ac_cv_path_FGREP" = "x:" && { { echo "$as_me:1301: error: cannot find workable fgrep" >&5
+ test "x$ac_cv_path_FGREP" = "x:" && { { echo "$as_me:1305: error: cannot find workable fgrep" >&5
echo "$as_me: error: cannot find workable fgrep" >&2;}
{ (exit 1); exit 1; }; }
fi
fi
-echo "$as_me:1306: result: $ac_cv_path_FGREP" >&5
+echo "$as_me:1310: result: $ac_cv_path_FGREP" >&5
echo "${ECHO_T}$ac_cv_path_FGREP" >&6
FGREP="$ac_cv_path_FGREP"
-echo "$as_me:1310: checking for prefix" >&5
+echo "$as_me:1314: checking for prefix" >&5
echo $ECHO_N "checking for prefix... $ECHO_C" >&6
if test "x$prefix" = "xNONE" ; then
case "$cf_cv_system_name" in
@@ -1319,11 +1323,11 @@ if test "x$prefix" = "xNONE" ; then
;;
esac
fi
-echo "$as_me:1322: result: $prefix" >&5
+echo "$as_me:1326: result: $prefix" >&5
echo "${ECHO_T}$prefix" >&6
if test "x$prefix" = "xNONE" ; then
-echo "$as_me:1326: checking for default include-directory" >&5
+echo "$as_me:1330: checking for default include-directory" >&5
echo $ECHO_N "checking for default include-directory... $ECHO_C" >&6
test -n "$verbose" && echo 1>&6
for cf_symbol in \
@@ -1346,7 +1350,7 @@ do
fi
test -n "$verbose" && echo " tested $cf_dir" 1>&6
done
-echo "$as_me:1349: result: $includedir" >&5
+echo "$as_me:1353: result: $includedir" >&5
echo "${ECHO_T}$includedir" >&6
fi
@@ -1363,7 +1367,7 @@ if test -n "$ac_tool_prefix"; then
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-echo "$as_me:1366: checking for $ac_word" >&5
+echo "$as_me:1370: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_CC+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1378,7 +1382,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-echo "$as_me:1381: found $ac_dir/$ac_word" >&5
+echo "$as_me:1385: found $ac_dir/$ac_word" >&5
break
done
@@ -1386,10 +1390,10 @@ fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
- echo "$as_me:1389: result: $CC" >&5
+ echo "$as_me:1393: result: $CC" >&5
echo "${ECHO_T}$CC" >&6
else
- echo "$as_me:1392: result: no" >&5
+ echo "$as_me:1396: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -1402,7 +1406,7 @@ if test -z "$CC"; then
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-echo "$as_me:1405: checking for $ac_word" >&5
+echo "$as_me:1409: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1417,7 +1421,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_ac_ct_CC="$ac_prog"
-echo "$as_me:1420: found $ac_dir/$ac_word" >&5
+echo "$as_me:1424: found $ac_dir/$ac_word" >&5
break
done
@@ -1425,10 +1429,10 @@ fi
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
- echo "$as_me:1428: result: $ac_ct_CC" >&5
+ echo "$as_me:1432: result: $ac_ct_CC" >&5
echo "${ECHO_T}$ac_ct_CC" >&6
else
- echo "$as_me:1431: result: no" >&5
+ echo "$as_me:1435: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -1438,32 +1442,32 @@ done
CC=$ac_ct_CC
fi
-test -z "$CC" && { { echo "$as_me:1441: error: no acceptable cc found in \$PATH" >&5
+test -z "$CC" && { { echo "$as_me:1445: error: no acceptable cc found in \$PATH" >&5
echo "$as_me: error: no acceptable cc found in \$PATH" >&2;}
{ (exit 1); exit 1; }; }
# Provide some information about the compiler.
-echo "$as_me:1446:" \
+echo "$as_me:1450:" \
"checking for C compiler version" >&5
ac_compiler=`set X $ac_compile; echo "$2"`
-{ (eval echo "$as_me:1449: \"$ac_compiler --version </dev/null >&5\"") >&5
+{ (eval echo "$as_me:1453: \"$ac_compiler --version </dev/null >&5\"") >&5
(eval $ac_compiler --version </dev/null >&5) 2>&5
ac_status=$?
- echo "$as_me:1452: \$? = $ac_status" >&5
+ echo "$as_me:1456: \$? = $ac_status" >&5
(exit "$ac_status"); }
-{ (eval echo "$as_me:1454: \"$ac_compiler -v </dev/null >&5\"") >&5
+{ (eval echo "$as_me:1458: \"$ac_compiler -v </dev/null >&5\"") >&5
(eval $ac_compiler -v </dev/null >&5) 2>&5
ac_status=$?
- echo "$as_me:1457: \$? = $ac_status" >&5
+ echo "$as_me:1461: \$? = $ac_status" >&5
(exit "$ac_status"); }
-{ (eval echo "$as_me:1459: \"$ac_compiler -V </dev/null >&5\"") >&5
+{ (eval echo "$as_me:1463: \"$ac_compiler -V </dev/null >&5\"") >&5
(eval $ac_compiler -V </dev/null >&5) 2>&5
ac_status=$?
- echo "$as_me:1462: \$? = $ac_status" >&5
+ echo "$as_me:1466: \$? = $ac_status" >&5
(exit "$ac_status"); }
cat >"conftest.$ac_ext" <<_ACEOF
-#line 1466 "configure"
+#line 1470 "configure"
#include "confdefs.h"
int
@@ -1479,13 +1483,13 @@ ac_clean_files="$ac_clean_files a.out a.exe"
# Try to create an executable without -o first, disregard a.out.
# It will help us diagnose broken compilers, and finding out an intuition
# of exeext.
-echo "$as_me:1482: checking for C compiler default output" >&5
+echo "$as_me:1486: checking for C compiler default output" >&5
echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6
ac_link_default=`echo "$ac_link" | sed 's/ -o *"conftest[^"]*"//'`
-if { (eval echo "$as_me:1485: \"$ac_link_default\"") >&5
+if { (eval echo "$as_me:1489: \"$ac_link_default\"") >&5
(eval $ac_link_default) 2>&5
ac_status=$?
- echo "$as_me:1488: \$? = $ac_status" >&5
+ echo "$as_me:1492: \$? = $ac_status" >&5
(exit "$ac_status"); }; then
# Find the output, starting from the most likely. This scheme is
# not robust to junk in `.', hence go to wildcards (a.*) only as a last
@@ -1508,34 +1512,34 @@ done
else
echo "$as_me: failed program was:" >&5
cat "conftest.$ac_ext" >&5
-{ { echo "$as_me:1511: error: C compiler cannot create executables" >&5
+{ { echo "$as_me:1515: error: C compiler cannot create executables" >&5
echo "$as_me: error: C compiler cannot create executables" >&2;}
{ (exit 77); exit 77; }; }
fi
ac_exeext=$ac_cv_exeext
-echo "$as_me:1517: result: $ac_file" >&5
+echo "$as_me:1521: result: $ac_file" >&5
echo "${ECHO_T}$ac_file" >&6
# Check the compiler produces executables we can run. If not, either
# the compiler is broken, or we cross compile.
-echo "$as_me:1522: checking whether the C compiler works" >&5
+echo "$as_me:1526: checking whether the C compiler works" >&5
echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
# If not cross compiling, check that we can run a simple program.
if test "$cross_compiling" != yes; then
if { ac_try='./$ac_file'
- { (eval echo "$as_me:1528: \"$ac_try\"") >&5
+ { (eval echo "$as_me:1532: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:1531: \$? = $ac_status" >&5
+ echo "$as_me:1535: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cross_compiling=no
else
if test "$cross_compiling" = maybe; then
cross_compiling=yes
else
- { { echo "$as_me:1538: error: cannot run C compiled programs.
+ { { echo "$as_me:1542: error: cannot run C compiled programs.
If you meant to cross compile, use \`--host'." >&5
echo "$as_me: error: cannot run C compiled programs.
If you meant to cross compile, use \`--host'." >&2;}
@@ -1543,24 +1547,24 @@ If you meant to cross compile, use \`--host'." >&2;}
fi
fi
fi
-echo "$as_me:1546: result: yes" >&5
+echo "$as_me:1550: result: yes" >&5
echo "${ECHO_T}yes" >&6
rm -f a.out a.exe "conftest$ac_cv_exeext"
ac_clean_files=$ac_clean_files_save
# Check the compiler produces executables we can run. If not, either
# the compiler is broken, or we cross compile.
-echo "$as_me:1553: checking whether we are cross compiling" >&5
+echo "$as_me:1557: checking whether we are cross compiling" >&5
echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
-echo "$as_me:1555: result: $cross_compiling" >&5
+echo "$as_me:1559: result: $cross_compiling" >&5
echo "${ECHO_T}$cross_compiling" >&6
-echo "$as_me:1558: checking for executable suffix" >&5
+echo "$as_me:1562: checking for executable suffix" >&5
echo $ECHO_N "checking for executable suffix... $ECHO_C" >&6
-if { (eval echo "$as_me:1560: \"$ac_link\"") >&5
+if { (eval echo "$as_me:1564: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:1563: \$? = $ac_status" >&5
+ echo "$as_me:1567: \$? = $ac_status" >&5
(exit "$ac_status"); }; then
# If both `conftest.exe' and `conftest' are `present' (well, observable)
# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
@@ -1576,25 +1580,25 @@ for ac_file in `(ls conftest.exe; ls conftest; ls conftest.*) 2>/dev/null`; do
esac
done
else
- { { echo "$as_me:1579: error: cannot compute EXEEXT: cannot compile and link" >&5
+ { { echo "$as_me:1583: error: cannot compute EXEEXT: cannot compile and link" >&5
echo "$as_me: error: cannot compute EXEEXT: cannot compile and link" >&2;}
{ (exit 1); exit 1; }; }
fi
rm -f "conftest$ac_cv_exeext"
-echo "$as_me:1585: result: $ac_cv_exeext" >&5
+echo "$as_me:1589: result: $ac_cv_exeext" >&5
echo "${ECHO_T}$ac_cv_exeext" >&6
rm -f "conftest.$ac_ext"
EXEEXT=$ac_cv_exeext
ac_exeext=$EXEEXT
-echo "$as_me:1591: checking for object suffix" >&5
+echo "$as_me:1595: checking for object suffix" >&5
echo $ECHO_N "checking for object suffix... $ECHO_C" >&6
if test "${ac_cv_objext+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 1597 "configure"
+#line 1601 "configure"
#include "confdefs.h"
int
@@ -1606,10 +1610,10 @@ main (void)
}
_ACEOF
rm -f conftest.o conftest.obj
-if { (eval echo "$as_me:1609: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:1613: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:1612: \$? = $ac_status" >&5
+ echo "$as_me:1616: \$? = $ac_status" >&5
(exit "$ac_status"); }; then
for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
case $ac_file in
@@ -1621,24 +1625,24 @@ done
else
echo "$as_me: failed program was:" >&5
cat "conftest.$ac_ext" >&5
-{ { echo "$as_me:1624: error: cannot compute OBJEXT: cannot compile" >&5
+{ { echo "$as_me:1628: error: cannot compute OBJEXT: cannot compile" >&5
echo "$as_me: error: cannot compute OBJEXT: cannot compile" >&2;}
{ (exit 1); exit 1; }; }
fi
rm -f "conftest.$ac_cv_objext" "conftest.$ac_ext"
fi
-echo "$as_me:1631: result: $ac_cv_objext" >&5
+echo "$as_me:1635: result: $ac_cv_objext" >&5
echo "${ECHO_T}$ac_cv_objext" >&6
OBJEXT=$ac_cv_objext
ac_objext=$OBJEXT
-echo "$as_me:1635: checking whether we are using the GNU C compiler" >&5
+echo "$as_me:1639: checking whether we are using the GNU C compiler" >&5
echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
if test "${ac_cv_c_compiler_gnu+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 1641 "configure"
+#line 1645 "configure"
#include "confdefs.h"
int
@@ -1653,16 +1657,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:1656: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:1660: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:1659: \$? = $ac_status" >&5
+ echo "$as_me:1663: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:1662: \"$ac_try\"") >&5
+ { (eval echo "$as_me:1666: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:1665: \$? = $ac_status" >&5
+ echo "$as_me:1669: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_compiler_gnu=yes
else
@@ -1674,19 +1678,19 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
ac_cv_c_compiler_gnu=$ac_compiler_gnu
fi
-echo "$as_me:1677: result: $ac_cv_c_compiler_gnu" >&5
+echo "$as_me:1681: result: $ac_cv_c_compiler_gnu" >&5
echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
GCC=`test $ac_compiler_gnu = yes && echo yes`
ac_test_CFLAGS=${CFLAGS+set}
ac_save_CFLAGS=$CFLAGS
CFLAGS="-g"
-echo "$as_me:1683: checking whether $CC accepts -g" >&5
+echo "$as_me:1687: checking whether $CC accepts -g" >&5
echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
if test "${ac_cv_prog_cc_g+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 1689 "configure"
+#line 1693 "configure"
#include "confdefs.h"
int
@@ -1698,16 +1702,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:1701: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:1705: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:1704: \$? = $ac_status" >&5
+ echo "$as_me:1708: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:1707: \"$ac_try\"") >&5
+ { (eval echo "$as_me:1711: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:1710: \$? = $ac_status" >&5
+ echo "$as_me:1714: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_prog_cc_g=yes
else
@@ -1717,7 +1721,7 @@ ac_cv_prog_cc_g=no
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:1720: result: $ac_cv_prog_cc_g" >&5
+echo "$as_me:1724: result: $ac_cv_prog_cc_g" >&5
echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
if test "$ac_test_CFLAGS" = set; then
CFLAGS=$ac_save_CFLAGS
@@ -1744,16 +1748,16 @@ cat >"conftest.$ac_ext" <<_ACEOF
#endif
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:1747: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:1751: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:1750: \$? = $ac_status" >&5
+ echo "$as_me:1754: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:1753: \"$ac_try\"") >&5
+ { (eval echo "$as_me:1757: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:1756: \$? = $ac_status" >&5
+ echo "$as_me:1760: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
for ac_declaration in \
''\
@@ -1765,7 +1769,7 @@ if { (eval echo "$as_me:1747: \"$ac_compile\"") >&5
'void exit (int);'
do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 1768 "configure"
+#line 1772 "configure"
#include "confdefs.h"
#include <stdlib.h>
$ac_declaration
@@ -1778,16 +1782,16 @@ exit (42);
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:1781: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:1785: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:1784: \$? = $ac_status" >&5
+ echo "$as_me:1788: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:1787: \"$ac_try\"") >&5
+ { (eval echo "$as_me:1791: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:1790: \$? = $ac_status" >&5
+ echo "$as_me:1794: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
:
else
@@ -1797,7 +1801,7 @@ continue
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 1800 "configure"
+#line 1804 "configure"
#include "confdefs.h"
$ac_declaration
int
@@ -1809,16 +1813,16 @@ exit (42);
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:1812: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:1816: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:1815: \$? = $ac_status" >&5
+ echo "$as_me:1819: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:1818: \"$ac_try\"") >&5
+ { (eval echo "$as_me:1822: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:1821: \$? = $ac_status" >&5
+ echo "$as_me:1825: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
break
else
@@ -1848,11 +1852,11 @@ ac_main_return="return"
GCC_VERSION=none
if test "$GCC" = yes ; then
- echo "$as_me:1851: checking version of $CC" >&5
+ echo "$as_me:1855: checking version of $CC" >&5
echo $ECHO_N "checking version of $CC... $ECHO_C" >&6
- GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC[^)]*) //' -e 's/^.*(Debian[^)]*) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
+ GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^[^(]*([^)][^)]*) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
test -z "$GCC_VERSION" && GCC_VERSION=unknown
- echo "$as_me:1855: result: $GCC_VERSION" >&5
+ echo "$as_me:1859: result: $GCC_VERSION" >&5
echo "${ECHO_T}$GCC_VERSION" >&6
fi
@@ -1861,12 +1865,12 @@ INTEL_COMPILER=no
if test "$GCC" = yes ; then
case "$host_os" in
(linux*|gnu*)
- echo "$as_me:1864: checking if this is really Intel C compiler" >&5
+ echo "$as_me:1868: checking if this is really Intel C compiler" >&5
echo $ECHO_N "checking if this is really Intel C compiler... $ECHO_C" >&6
cf_save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -no-gcc"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 1869 "configure"
+#line 1873 "configure"
#include "confdefs.h"
int
@@ -1875,7 +1879,7 @@ main (void)
#ifdef __INTEL_COMPILER
#else
-make an error
+#error __INTEL_COMPILER is not defined
#endif
;
@@ -1883,16 +1887,16 @@ make an error
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:1886: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:1890: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:1889: \$? = $ac_status" >&5
+ echo "$as_me:1893: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:1892: \"$ac_try\"") >&5
+ { (eval echo "$as_me:1896: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:1895: \$? = $ac_status" >&5
+ echo "$as_me:1899: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
INTEL_COMPILER=yes
cf_save_CFLAGS="$cf_save_CFLAGS -we147"
@@ -1903,7 +1907,7 @@ cat "conftest.$ac_ext" >&5
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
CFLAGS="$cf_save_CFLAGS"
- echo "$as_me:1906: result: $INTEL_COMPILER" >&5
+ echo "$as_me:1910: result: $INTEL_COMPILER" >&5
echo "${ECHO_T}$INTEL_COMPILER" >&6
;;
esac
@@ -1912,11 +1916,11 @@ fi
CLANG_COMPILER=no
if test "$GCC" = yes ; then
- echo "$as_me:1915: checking if this is really Clang C compiler" >&5
+ echo "$as_me:1919: checking if this is really Clang C compiler" >&5
echo $ECHO_N "checking if this is really Clang C compiler... $ECHO_C" >&6
cf_save_CFLAGS="$CFLAGS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 1919 "configure"
+#line 1923 "configure"
#include "confdefs.h"
int
@@ -1925,7 +1929,7 @@ main (void)
#ifdef __clang__
#else
-make an error
+#error __clang__ is not defined
#endif
;
@@ -1933,16 +1937,16 @@ make an error
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:1936: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:1940: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:1939: \$? = $ac_status" >&5
+ echo "$as_me:1943: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:1942: \"$ac_try\"") >&5
+ { (eval echo "$as_me:1946: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:1945: \$? = $ac_status" >&5
+ echo "$as_me:1949: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
CLANG_COMPILER=yes
@@ -1952,7 +1956,7 @@ cat "conftest.$ac_ext" >&5
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
CFLAGS="$cf_save_CFLAGS"
- echo "$as_me:1955: result: $CLANG_COMPILER" >&5
+ echo "$as_me:1959: result: $CLANG_COMPILER" >&5
echo "${ECHO_T}$CLANG_COMPILER" >&6
fi
@@ -1961,30 +1965,30 @@ CLANG_VERSION=none
if test "x$CLANG_COMPILER" = "xyes" ; then
case "$CC" in
(c[1-9][0-9]|*/c[1-9][0-9])
- { echo "$as_me:1964: WARNING: replacing broken compiler alias $CC" >&5
+ { echo "$as_me:1968: WARNING: replacing broken compiler alias $CC" >&5
echo "$as_me: WARNING: replacing broken compiler alias $CC" >&2;}
CFLAGS="$CFLAGS -std=`echo "$CC" | sed -e 's%.*/%%'`"
CC=clang
;;
esac
- echo "$as_me:1971: checking version of $CC" >&5
+ echo "$as_me:1975: checking version of $CC" >&5
echo $ECHO_N "checking version of $CC... $ECHO_C" >&6
CLANG_VERSION="`$CC --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(CLANG[^)]*) //' -e 's/^.*(Debian[^)]*) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
test -z "$CLANG_VERSION" && CLANG_VERSION=unknown
- echo "$as_me:1975: result: $CLANG_VERSION" >&5
+ echo "$as_me:1979: result: $CLANG_VERSION" >&5
echo "${ECHO_T}$CLANG_VERSION" >&6
for cf_clang_opt in \
-Qunused-arguments \
-Wno-error=implicit-function-declaration
do
- echo "$as_me:1982: checking if option $cf_clang_opt works" >&5
+ echo "$as_me:1986: checking if option $cf_clang_opt works" >&5
echo $ECHO_N "checking if option $cf_clang_opt works... $ECHO_C" >&6
cf_save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $cf_clang_opt"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 1987 "configure"
+#line 1991 "configure"
#include "confdefs.h"
#include <stdio.h>
@@ -1998,16 +2002,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:2001: \"$ac_link\"") >&5
+if { (eval echo "$as_me:2005: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:2004: \$? = $ac_status" >&5
+ echo "$as_me:2008: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:2007: \"$ac_try\"") >&5
+ { (eval echo "$as_me:2011: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:2010: \$? = $ac_status" >&5
+ echo "$as_me:2014: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_clang_optok=yes
@@ -2018,13 +2022,13 @@ cat "conftest.$ac_ext" >&5
cf_clang_optok=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
- echo "$as_me:2021: result: $cf_clang_optok" >&5
+ echo "$as_me:2025: result: $cf_clang_optok" >&5
echo "${ECHO_T}$cf_clang_optok" >&6
CFLAGS="$cf_save_CFLAGS"
if test "$cf_clang_optok" = yes; then
test -n "$verbose" && echo " adding option $cf_clang_opt" 1>&6
-echo "${as_me:-configure}:2027: testing adding option $cf_clang_opt ..." 1>&5
+echo "${as_me:-configure}:2031: testing adding option $cf_clang_opt ..." 1>&5
test -n "$CFLAGS" && CFLAGS="$CFLAGS "
CFLAGS="${CFLAGS}$cf_clang_opt"
@@ -2033,7 +2037,7 @@ echo "${as_me:-configure}:2027: testing adding option $cf_clang_opt ..." 1>&5
done
fi
-echo "$as_me:2036: checking for $CC option to accept ANSI C" >&5
+echo "$as_me:2040: checking for $CC option to accept ANSI C" >&5
echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
if test "${ac_cv_prog_cc_stdc+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -2041,7 +2045,7 @@ else
ac_cv_prog_cc_stdc=no
ac_save_CC=$CC
cat >"conftest.$ac_ext" <<_ACEOF
-#line 2044 "configure"
+#line 2048 "configure"
#include "confdefs.h"
#include <stdarg.h>
#include <stdio.h>
@@ -2050,9 +2054,7 @@ cat >"conftest.$ac_ext" <<_ACEOF
/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
struct buf { int x; };
FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
- char **p;
- int i;
+static char *e (char **p, int i)
{
return p[i];
}
@@ -2090,16 +2092,16 @@ for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIO
do
CC="$ac_save_CC $ac_arg"
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:2093: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:2095: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:2096: \$? = $ac_status" >&5
+ echo "$as_me:2098: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:2099: \"$ac_try\"") >&5
+ { (eval echo "$as_me:2101: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:2102: \$? = $ac_status" >&5
+ echo "$as_me:2104: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_prog_cc_stdc=$ac_arg
break
@@ -2116,10 +2118,10 @@ fi
case "x$ac_cv_prog_cc_stdc" in
x|xno)
- echo "$as_me:2119: result: none needed" >&5
+ echo "$as_me:2121: result: none needed" >&5
echo "${ECHO_T}none needed" >&6 ;;
*)
- echo "$as_me:2122: result: $ac_cv_prog_cc_stdc" >&5
+ echo "$as_me:2124: result: $ac_cv_prog_cc_stdc" >&5
echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
CC="$CC $ac_cv_prog_cc_stdc" ;;
esac
@@ -2127,13 +2129,13 @@ esac
# This should have been defined by AC_PROG_CC
: "${CC:=cc}"
-echo "$as_me:2130: checking \$CFLAGS variable" >&5
+echo "$as_me:2132: checking \$CFLAGS variable" >&5
echo $ECHO_N "checking \$CFLAGS variable... $ECHO_C" >&6
case "x$CFLAGS" in
(*-[IUD]*)
- echo "$as_me:2134: result: broken" >&5
+ echo "$as_me:2136: result: broken" >&5
echo "${ECHO_T}broken" >&6
- { echo "$as_me:2136: WARNING: your environment uses the CFLAGS variable to hold CPPFLAGS options" >&5
+ { echo "$as_me:2138: WARNING: your environment uses the CFLAGS variable to hold CPPFLAGS options" >&5
echo "$as_me: WARNING: your environment uses the CFLAGS variable to hold CPPFLAGS options" >&2;}
cf_flags="$CFLAGS"
CFLAGS=
@@ -2241,22 +2243,22 @@ fi
done
;;
(*)
- echo "$as_me:2244: result: ok" >&5
+ echo "$as_me:2246: result: ok" >&5
echo "${ECHO_T}ok" >&6
;;
esac
-echo "$as_me:2249: checking \$CC variable" >&5
+echo "$as_me:2251: checking \$CC variable" >&5
echo $ECHO_N "checking \$CC variable... $ECHO_C" >&6
case "$CC" in
(*[\ \ ]-*)
- echo "$as_me:2253: result: broken" >&5
+ echo "$as_me:2255: result: broken" >&5
echo "${ECHO_T}broken" >&6
- { echo "$as_me:2255: WARNING: your environment uses the CC variable to hold CFLAGS/CPPFLAGS options" >&5
+ { echo "$as_me:2257: WARNING: your environment uses the CC variable to hold CFLAGS/CPPFLAGS options" >&5
echo "$as_me: WARNING: your environment uses the CC variable to hold CFLAGS/CPPFLAGS options" >&2;}
# humor him...
cf_prog=`echo "$CC" | sed -e 's/ / /g' -e 's/[ ]* / /g' -e 's/[ ]*[ ]-[^ ].*//'`
- cf_flags=`echo "$CC" | ${AWK:-awk} -v prog="$cf_prog" '{ printf("%s", substr($0,1+length(prog))); }'`
+ cf_flags=`echo "$CC" | sed -e "s%^$cf_prog%%"`
CC="$cf_prog"
for cf_arg in $cf_flags
do
@@ -2369,24 +2371,24 @@ fi
done
test -n "$verbose" && echo " resulting CC: '$CC'" 1>&6
-echo "${as_me:-configure}:2372: testing resulting CC: '$CC' ..." 1>&5
+echo "${as_me:-configure}:2374: testing resulting CC: '$CC' ..." 1>&5
test -n "$verbose" && echo " resulting CFLAGS: '$CFLAGS'" 1>&6
-echo "${as_me:-configure}:2376: testing resulting CFLAGS: '$CFLAGS' ..." 1>&5
+echo "${as_me:-configure}:2378: testing resulting CFLAGS: '$CFLAGS' ..." 1>&5
test -n "$verbose" && echo " resulting CPPFLAGS: '$CPPFLAGS'" 1>&6
-echo "${as_me:-configure}:2380: testing resulting CPPFLAGS: '$CPPFLAGS' ..." 1>&5
+echo "${as_me:-configure}:2382: testing resulting CPPFLAGS: '$CPPFLAGS' ..." 1>&5
;;
(*)
- echo "$as_me:2384: result: ok" >&5
+ echo "$as_me:2386: result: ok" >&5
echo "${ECHO_T}ok" >&6
;;
esac
-echo "$as_me:2389: checking for egrep" >&5
+echo "$as_me:2391: checking for egrep" >&5
echo $ECHO_N "checking for egrep... $ECHO_C" >&6
if test "${ac_cv_path_EGREP+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -2398,7 +2400,7 @@ else
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-echo "$as_me:2401: checking for $ac_word" >&5
+echo "$as_me:2403: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_path_EGREP+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -2415,7 +2417,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
if $as_executable_p "$ac_dir/$ac_word"; then
ac_cv_path_EGREP="$ac_dir/$ac_word"
- echo "$as_me:2418: found $ac_dir/$ac_word" >&5
+ echo "$as_me:2420: found $ac_dir/$ac_word" >&5
break
fi
done
@@ -2426,10 +2428,10 @@ fi
EGREP=$ac_cv_path_EGREP
if test -n "$EGREP"; then
- echo "$as_me:2429: result: $EGREP" >&5
+ echo "$as_me:2431: result: $EGREP" >&5
echo "${ECHO_T}$EGREP" >&6
else
- echo "$as_me:2432: result: no" >&5
+ echo "$as_me:2434: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -2437,12 +2439,12 @@ fi
done
test -n "$EGREP" || EGREP=": "
- test "x$ac_cv_path_EGREP" = "x:" && { { echo "$as_me:2440: error: cannot find workable egrep" >&5
+ test "x$ac_cv_path_EGREP" = "x:" && { { echo "$as_me:2442: error: cannot find workable egrep" >&5
echo "$as_me: error: cannot find workable egrep" >&2;}
{ (exit 1); exit 1; }; }
fi
fi
-echo "$as_me:2445: result: $ac_cv_path_EGREP" >&5
+echo "$as_me:2447: result: $ac_cv_path_EGREP" >&5
echo "${ECHO_T}$ac_cv_path_EGREP" >&6
EGREP="$ac_cv_path_EGREP"
@@ -2452,7 +2454,7 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS "conftest.$ac_ext" >&5'
ac_link='$CC -o "conftest$ac_exeext" $CFLAGS $CPPFLAGS $LDFLAGS "conftest.$ac_ext" $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
ac_main_return="return"
-echo "$as_me:2455: checking how to run the C preprocessor" >&5
+echo "$as_me:2457: checking how to run the C preprocessor" >&5
echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
@@ -2473,18 +2475,18 @@ do
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp. "Syntax error" is here to catch this case.
cat >"conftest.$ac_ext" <<_ACEOF
-#line 2476 "configure"
+#line 2478 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax error
_ACEOF
-if { (eval echo "$as_me:2481: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:2483: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:2487: \$? = $ac_status" >&5
+ echo "$as_me:2489: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -2507,17 +2509,17 @@ rm -f conftest.err "conftest.$ac_ext"
# OK, works on sane cases. Now check whether non-existent headers
# can be detected and how.
cat >"conftest.$ac_ext" <<_ACEOF
-#line 2510 "configure"
+#line 2512 "configure"
#include "confdefs.h"
#include <ac_nonexistent.h>
_ACEOF
-if { (eval echo "$as_me:2514: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:2516: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:2520: \$? = $ac_status" >&5
+ echo "$as_me:2522: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -2554,7 +2556,7 @@ fi
else
ac_cv_prog_CPP=$CPP
fi
-echo "$as_me:2557: result: $CPP" >&5
+echo "$as_me:2559: result: $CPP" >&5
echo "${ECHO_T}$CPP" >&6
ac_preproc_ok=false
for ac_c_preproc_warn_flag in '' yes
@@ -2564,18 +2566,18 @@ do
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp. "Syntax error" is here to catch this case.
cat >"conftest.$ac_ext" <<_ACEOF
-#line 2567 "configure"
+#line 2569 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax error
_ACEOF
-if { (eval echo "$as_me:2572: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:2574: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:2578: \$? = $ac_status" >&5
+ echo "$as_me:2580: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -2598,17 +2600,17 @@ rm -f conftest.err "conftest.$ac_ext"
# OK, works on sane cases. Now check whether non-existent headers
# can be detected and how.
cat >"conftest.$ac_ext" <<_ACEOF
-#line 2601 "configure"
+#line 2603 "configure"
#include "confdefs.h"
#include <ac_nonexistent.h>
_ACEOF
-if { (eval echo "$as_me:2605: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:2607: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:2611: \$? = $ac_status" >&5
+ echo "$as_me:2613: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -2636,7 +2638,7 @@ rm -f conftest.err "conftest.$ac_ext"
if $ac_preproc_ok; then
:
else
- { { echo "$as_me:2639: error: C preprocessor \"$CPP\" fails sanity check" >&5
+ { { echo "$as_me:2641: error: C preprocessor \"$CPP\" fails sanity check" >&5
echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -2649,14 +2651,14 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
ac_main_return="return"
if test $ac_cv_c_compiler_gnu = yes; then
- echo "$as_me:2652: checking whether $CC needs -traditional" >&5
+ echo "$as_me:2654: checking whether $CC needs -traditional" >&5
echo $ECHO_N "checking whether $CC needs -traditional... $ECHO_C" >&6
if test "${ac_cv_prog_gcc_traditional+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
ac_pattern="Autoconf.*'x'"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 2659 "configure"
+#line 2661 "configure"
#include "confdefs.h"
#include <sgtty.h>
int Autoconf = TIOCGETP;
@@ -2671,7 +2673,7 @@ rm -rf conftest*
if test $ac_cv_prog_gcc_traditional = no; then
cat >"conftest.$ac_ext" <<_ACEOF
-#line 2674 "configure"
+#line 2676 "configure"
#include "confdefs.h"
#include <termio.h>
int Autoconf = TCGETA;
@@ -2684,14 +2686,14 @@ rm -rf conftest*
fi
fi
-echo "$as_me:2687: result: $ac_cv_prog_gcc_traditional" >&5
+echo "$as_me:2689: result: $ac_cv_prog_gcc_traditional" >&5
echo "${ECHO_T}$ac_cv_prog_gcc_traditional" >&6
if test $ac_cv_prog_gcc_traditional = yes; then
CC="$CC -traditional"
fi
fi
-echo "$as_me:2694: checking whether $CC understands -c and -o together" >&5
+echo "$as_me:2696: checking whether $CC understands -c and -o together" >&5
echo $ECHO_N "checking whether $CC understands -c and -o together... $ECHO_C" >&6
if test "${cf_cv_prog_CC_c_o+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -2706,15 +2708,15 @@ 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='$CC $CFLAGS $CPPFLAGS -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
-if { (eval echo "$as_me:2709: \"$ac_try\"") >&5
+if { (eval echo "$as_me:2711: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:2712: \$? = $ac_status" >&5
+ echo "$as_me:2714: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
- test -f conftest2.$ac_objext && { (eval echo "$as_me:2714: \"$ac_try\"") >&5
+ test -f conftest2.$ac_objext && { (eval echo "$as_me:2716: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:2717: \$? = $ac_status" >&5
+ echo "$as_me:2719: \$? = $ac_status" >&5
(exit "$ac_status"); };
then
eval cf_cv_prog_CC_c_o=yes
@@ -2725,10 +2727,10 @@ rm -rf ./conftest*
fi
if test "$cf_cv_prog_CC_c_o" = yes; then
- echo "$as_me:2728: result: yes" >&5
+ echo "$as_me:2730: result: yes" >&5
echo "${ECHO_T}yes" >&6
else
- echo "$as_me:2731: result: no" >&5
+ echo "$as_me:2733: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -2749,7 +2751,7 @@ for ac_prog in mawk gawk nawk awk
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-echo "$as_me:2752: checking for $ac_word" >&5
+echo "$as_me:2754: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_AWK+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -2764,7 +2766,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_AWK="$ac_prog"
-echo "$as_me:2767: found $ac_dir/$ac_word" >&5
+echo "$as_me:2769: found $ac_dir/$ac_word" >&5
break
done
@@ -2772,21 +2774,21 @@ fi
fi
AWK=$ac_cv_prog_AWK
if test -n "$AWK"; then
- echo "$as_me:2775: result: $AWK" >&5
+ echo "$as_me:2777: result: $AWK" >&5
echo "${ECHO_T}$AWK" >&6
else
- echo "$as_me:2778: result: no" >&5
+ echo "$as_me:2780: result: no" >&5
echo "${ECHO_T}no" >&6
fi
test -n "$AWK" && break
done
-test -z "$AWK" && { { echo "$as_me:2785: error: No awk program found" >&5
+test -z "$AWK" && { { echo "$as_me:2787: error: No awk program found" >&5
echo "$as_me: error: No awk program found" >&2;}
{ (exit 1); exit 1; }; }
-echo "$as_me:2789: checking for egrep" >&5
+echo "$as_me:2791: checking for egrep" >&5
echo $ECHO_N "checking for egrep... $ECHO_C" >&6
if test "${ac_cv_prog_egrep+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -2796,11 +2798,11 @@ else
else ac_cv_prog_egrep='egrep'
fi
fi
-echo "$as_me:2799: result: $ac_cv_prog_egrep" >&5
+echo "$as_me:2801: result: $ac_cv_prog_egrep" >&5
echo "${ECHO_T}$ac_cv_prog_egrep" >&6
EGREP=$ac_cv_prog_egrep
- test -z "$EGREP" && { { echo "$as_me:2803: error: No egrep program found" >&5
+ test -z "$EGREP" && { { echo "$as_me:2805: error: No egrep program found" >&5
echo "$as_me: error: No egrep program found" >&2;}
{ (exit 1); exit 1; }; }
@@ -2816,7 +2818,7 @@ echo "$as_me: error: No egrep program found" >&2;}
# AFS /usr/afsws/bin/install, which mishandles nonexistent args
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
# ./install, which can be erroneously created by make from ./install.sh.
-echo "$as_me:2819: checking for a BSD compatible install" >&5
+echo "$as_me:2821: checking for a BSD compatible install" >&5
echo $ECHO_N "checking for a BSD compatible install... $ECHO_C" >&6
if test -z "$INSTALL"; then
if test "${ac_cv_path_install+set}" = set; then
@@ -2865,7 +2867,7 @@ fi
INSTALL=$ac_install_sh
fi
fi
-echo "$as_me:2868: result: $INSTALL" >&5
+echo "$as_me:2870: result: $INSTALL" >&5
echo "${ECHO_T}$INSTALL" >&6
# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
@@ -2876,18 +2878,18 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-echo "$as_me:2879: checking whether ln -s works" >&5
+echo "$as_me:2881: checking whether ln -s works" >&5
echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6
LN_S=$as_ln_s
if test "$LN_S" = "ln -s"; then
- echo "$as_me:2883: result: yes" >&5
+ echo "$as_me:2885: result: yes" >&5
echo "${ECHO_T}yes" >&6
else
- echo "$as_me:2886: result: no, using $LN_S" >&5
+ echo "$as_me:2888: result: no, using $LN_S" >&5
echo "${ECHO_T}no, using $LN_S" >&6
fi
-echo "$as_me:2890: checking if $LN_S -f options work" >&5
+echo "$as_me:2892: checking if $LN_S -f options work" >&5
echo $ECHO_N "checking if $LN_S -f options work... $ECHO_C" >&6
rm -f conf$$.src conf$$dst
@@ -2899,7 +2901,7 @@ else
cf_prog_ln_sf=no
fi
rm -f conf$$.dst conf$$src
-echo "$as_me:2902: result: $cf_prog_ln_sf" >&5
+echo "$as_me:2904: result: $cf_prog_ln_sf" >&5
echo "${ECHO_T}$cf_prog_ln_sf" >&6
test "$cf_prog_ln_sf" = yes && LN_S="$LN_S -f"
@@ -2916,7 +2918,7 @@ test "$cf_prog_ln_sf" = yes && LN_S="$LN_S -f"
# AFS /usr/afsws/bin/install, which mishandles nonexistent args
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
# ./install, which can be erroneously created by make from ./install.sh.
-echo "$as_me:2919: checking for a BSD compatible install" >&5
+echo "$as_me:2921: checking for a BSD compatible install" >&5
echo $ECHO_N "checking for a BSD compatible install... $ECHO_C" >&6
if test -z "$INSTALL"; then
if test "${ac_cv_path_install+set}" = set; then
@@ -2965,7 +2967,7 @@ fi
INSTALL=$ac_install_sh
fi
fi
-echo "$as_me:2968: result: $INSTALL" >&5
+echo "$as_me:2970: result: $INSTALL" >&5
echo "${ECHO_T}$INSTALL" >&6
# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
@@ -2986,7 +2988,7 @@ case $INSTALL in
;;
esac
-echo "$as_me:2989: checking if you want to install stripped executables" >&5
+echo "$as_me:2991: checking if you want to install stripped executables" >&5
echo $ECHO_N "checking if you want to install stripped executables... $ECHO_C" >&6
# Check whether --enable-stripping or --disable-stripping was given.
@@ -3003,7 +3005,7 @@ else
enable_stripping=yes
fi;
-echo "$as_me:3006: result: $enable_stripping" >&5
+echo "$as_me:3008: result: $enable_stripping" >&5
echo "${ECHO_T}$enable_stripping" >&6
if test "$enable_stripping" = yes
@@ -3014,7 +3016,7 @@ else
fi
: "${INSTALL:=install}"
-echo "$as_me:3017: checking if install accepts -p option" >&5
+echo "$as_me:3019: checking if install accepts -p option" >&5
echo $ECHO_N "checking if install accepts -p option... $ECHO_C" >&6
if test "${cf_cv_install_p+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3045,10 +3047,10 @@ else
rm -rf ./conftest*
fi
-echo "$as_me:3048: result: $cf_cv_install_p" >&5
+echo "$as_me:3050: result: $cf_cv_install_p" >&5
echo "${ECHO_T}$cf_cv_install_p" >&6
-echo "$as_me:3051: checking if install needs to be told about ownership" >&5
+echo "$as_me:3053: checking if install needs to be told about ownership" >&5
echo $ECHO_N "checking if install needs to be told about ownership... $ECHO_C" >&6
case `$ac_config_guess` in
(*minix)
@@ -3059,7 +3061,7 @@ case `$ac_config_guess` in
;;
esac
-echo "$as_me:3062: result: $with_install_o" >&5
+echo "$as_me:3064: result: $with_install_o" >&5
echo "${ECHO_T}$with_install_o" >&6
if test "x$with_install_o" = xyes
then
@@ -3068,7 +3070,73 @@ else
INSTALL_OPT_O=
fi
-echo "$as_me:3071: checking for long file names" >&5
+if test -n "$INSTALL_OPT_S"
+then
+ echo "$as_me:3075: checking if you want to specify strip-program" >&5
+echo $ECHO_N "checking if you want to specify strip-program... $ECHO_C" >&6
+
+# Check whether --with-strip-program or --without-strip-program was given.
+if test "${with_strip_program+set}" = set; then
+ withval="$with_strip_program"
+ with_strip_program=$withval
+else
+ with_strip_program=no
+fi;
+ echo "$as_me:3085: result: $with_strip_program" >&5
+echo "${ECHO_T}$with_strip_program" >&6
+ if test "$with_strip_program" != no
+ then
+ echo "$as_me:3089: checking if strip-program is supported with this installer" >&5
+echo $ECHO_N "checking if strip-program is supported with this installer... $ECHO_C" >&6
+ cf_install_program=`echo "$INSTALL" | sed -e 's%[ ]*[ ]-.%%'`
+ check_install_strip=no
+ if test -f "$cf_install_program"
+ then
+ check_install_version=`"$cf_install_program" --version 2>/dev/null | head -n 1 | grep coreutils`
+ if test -n "$check_install_version"
+ then
+ check_install_strip="option"
+ else
+ for check_strip_variable in STRIPBIN STRIP
+ do
+ if strings "$cf_install_program" | grep "^$check_strip_variable$" >/dev/null
+ then
+ check_install_strip="environ"
+ break
+ fi
+ done
+ fi
+ fi
+ echo "$as_me:3110: result: $check_install_strip" >&5
+echo "${ECHO_T}$check_install_strip" >&6
+ case "$check_install_strip" in
+ (no)
+ { echo "$as_me:3114: WARNING: $cf_install_program does not support strip program option" >&5
+echo "$as_me: WARNING: $cf_install_program does not support strip program option" >&2;}
+ with_strip_program=no
+ ;;
+ (environ)
+ cat >install.tmp <<-CF_EOF
+ #! $SHELL
+ STRIPBIN="$with_strip_program" \\
+ STRIP="$with_strip_program" \\
+ $INSTALL "$@"
+ CF_EOF
+ INSTALL="`pwd`/install.tmp"
+ chmod +x "$INSTALL"
+ test -n "$verbose" && echo " created $INSTALL" 1>&6
+
+echo "${as_me:-configure}:3129: testing created $INSTALL ..." 1>&5
+
+ ;;
+ (option)
+ INSTALL_OPT_S="$INSTALL_OPT_S --strip-program=\"$with_strip_program\""
+ ;;
+ esac
+ fi
+fi
+
+echo "$as_me:3139: checking for long file names" >&5
echo $ECHO_N "checking for long file names... $ECHO_C" >&6
if test "${ac_cv_sys_long_file_names+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3107,7 +3175,7 @@ for ac_dir in . $ac_tmpdirs `eval echo "$prefix/lib" "$exec_prefix/lib"` ; do
rm -rf "$ac_xdir" 2>/dev/null
done
fi
-echo "$as_me:3110: result: $ac_cv_sys_long_file_names" >&5
+echo "$as_me:3178: result: $ac_cv_sys_long_file_names" >&5
echo "${ECHO_T}$ac_cv_sys_long_file_names" >&6
if test "$ac_cv_sys_long_file_names" = yes; then
@@ -3119,7 +3187,7 @@ fi
# if we find pkg-config, check if we should install the ".pc" files.
-echo "$as_me:3122: checking if you want to use pkg-config" >&5
+echo "$as_me:3190: checking if you want to use pkg-config" >&5
echo $ECHO_N "checking if you want to use pkg-config... $ECHO_C" >&6
# Check whether --with-pkg-config or --without-pkg-config was given.
@@ -3129,7 +3197,7 @@ if test "${with_pkg_config+set}" = set; then
else
cf_pkg_config=yes
fi;
-echo "$as_me:3132: result: $cf_pkg_config" >&5
+echo "$as_me:3200: result: $cf_pkg_config" >&5
echo "${ECHO_T}$cf_pkg_config" >&6
case "$cf_pkg_config" in
@@ -3141,7 +3209,7 @@ case "$cf_pkg_config" in
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
-echo "$as_me:3144: checking for $ac_word" >&5
+echo "$as_me:3212: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3158,7 +3226,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
if $as_executable_p "$ac_dir/$ac_word"; then
ac_cv_path_PKG_CONFIG="$ac_dir/$ac_word"
- echo "$as_me:3161: found $ac_dir/$ac_word" >&5
+ echo "$as_me:3229: found $ac_dir/$ac_word" >&5
break
fi
done
@@ -3169,10 +3237,10 @@ fi
PKG_CONFIG=$ac_cv_path_PKG_CONFIG
if test -n "$PKG_CONFIG"; then
- echo "$as_me:3172: result: $PKG_CONFIG" >&5
+ echo "$as_me:3240: result: $PKG_CONFIG" >&5
echo "${ECHO_T}$PKG_CONFIG" >&6
else
- echo "$as_me:3175: result: no" >&5
+ echo "$as_me:3243: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -3181,7 +3249,7 @@ if test -z "$ac_cv_path_PKG_CONFIG"; then
ac_pt_PKG_CONFIG=$PKG_CONFIG
# Extract the first word of "pkg-config", so it can be a program name with args.
set dummy pkg-config; ac_word=$2
-echo "$as_me:3184: checking for $ac_word" >&5
+echo "$as_me:3252: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3198,7 +3266,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
if $as_executable_p "$ac_dir/$ac_word"; then
ac_cv_path_ac_pt_PKG_CONFIG="$ac_dir/$ac_word"
- echo "$as_me:3201: found $ac_dir/$ac_word" >&5
+ echo "$as_me:3269: found $ac_dir/$ac_word" >&5
break
fi
done
@@ -3210,10 +3278,10 @@ fi
ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
if test -n "$ac_pt_PKG_CONFIG"; then
- echo "$as_me:3213: result: $ac_pt_PKG_CONFIG" >&5
+ echo "$as_me:3281: result: $ac_pt_PKG_CONFIG" >&5
echo "${ECHO_T}$ac_pt_PKG_CONFIG" >&6
else
- echo "$as_me:3216: result: no" >&5
+ echo "$as_me:3284: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -3256,105 +3324,159 @@ case ".$PKG_CONFIG" in
PKG_CONFIG=`echo "$PKG_CONFIG" | sed -e s%NONE%$cf_path_syntax%`
;;
(*)
- { { echo "$as_me:3259: error: expected a pathname, not \"$PKG_CONFIG\"" >&5
+ { { echo "$as_me:3327: error: expected a pathname, not \"$PKG_CONFIG\"" >&5
echo "$as_me: error: expected a pathname, not \"$PKG_CONFIG\"" >&2;}
{ (exit 1); exit 1; }; }
;;
esac
elif test "x$cf_pkg_config" != xno ; then
- { echo "$as_me:3266: WARNING: pkg-config is not installed" >&5
+ { echo "$as_me:3334: WARNING: pkg-config is not installed" >&5
echo "$as_me: WARNING: pkg-config is not installed" >&2;}
fi
case "$PKG_CONFIG" in
(no|none|yes)
- echo "$as_me:3272: checking for pkg-config library directory" >&5
+ echo "$as_me:3340: checking for pkg-config library directory" >&5
echo $ECHO_N "checking for pkg-config library directory... $ECHO_C" >&6
;;
(*)
- echo "$as_me:3276: checking for $PKG_CONFIG library directory" >&5
+ echo "$as_me:3344: checking for $PKG_CONFIG library directory" >&5
echo $ECHO_N "checking for $PKG_CONFIG library directory... $ECHO_C" >&6
;;
esac
-PKG_CONFIG_LIBDIR=no
+# if $PKG_CONFIG_LIBDIR is set, try to use that
+if test -n "$PKG_CONFIG_PATH"; then
+ cf_search_path=`echo "$PKG_CONFIG_PATH" | sed -e 's/:/ /g' -e 's,^[ ]*,,' -e 's,[ ]*$,,'`
+elif test -n "$PKG_CONFIG_LIBDIR"; then
+ cf_search_path=`echo "$PKG_CONFIG_LIBDIR" | sed -e 's/:/ /g' -e 's,^[ ]*,,' -e 's,[ ]*$,,'`
+else
+ cf_search_path=auto
+fi
+
+# if the option is used, let that override. otherwise default to "libdir"
# Check whether --with-pkg-config-libdir or --without-pkg-config-libdir was given.
if test "${with_pkg_config_libdir+set}" = set; then
withval="$with_pkg_config_libdir"
- PKG_CONFIG_LIBDIR=$withval
+ cf_search_path=$withval
else
- test "x$PKG_CONFIG" != xnone && PKG_CONFIG_LIBDIR=yes
+ test "x$PKG_CONFIG" != xnone && test -z "$cf_search_path" && cf_search_path=libdir
fi;
-case x$PKG_CONFIG_LIBDIR in
+case "x$cf_search_path" in
+(xlibdir)
+ PKG_CONFIG_LIBDIR='${libdir}/pkgconfig'
+ echo "$as_me:3371: result: $PKG_CONFIG_LIBDIR" >&5
+echo "${ECHO_T}$PKG_CONFIG_LIBDIR" >&6
+ cf_search_path=
+ ;;
+(x)
+ ;;
+(x/*\ *)
+ PKG_CONFIG_LIBDIR=
+ ;;
(x/*)
+ PKG_CONFIG_LIBDIR="$cf_search_path"
+ echo "$as_me:3382: result: $PKG_CONFIG_LIBDIR" >&5
+echo "${ECHO_T}$PKG_CONFIG_LIBDIR" >&6
+ cf_search_path=
;;
-(xyes)
+(xyes|xauto)
+ echo "$as_me:3387: result: auto" >&5
+echo "${ECHO_T}auto" >&6
+ cf_search_path=
# Look for the library directory using the same prefix as the executable
- if test "x$PKG_CONFIG" = xnone
+ echo "$as_me:3391: checking for search-list" >&5
+echo $ECHO_N "checking for search-list... $ECHO_C" >&6
+ if test "x$PKG_CONFIG" != xnone
then
- cf_path=$prefix
- else
- cf_path=`echo "$PKG_CONFIG" | sed -e 's,/[^/]*/[^/]*$,,'`
- fi
-
- # If you don't like using the default architecture, you have to specify the
- # intended library directory and corresponding compiler/linker options.
- #
- # This case allows for Debian's 2014-flavor of multiarch, along with the
- # most common variations before that point. Some other variants spell the
- # directory differently, e.g., "pkg-config", and put it in unusual places.
- # pkg-config has always been poorly standardized, which is ironic...
- case x`(arch) 2>/dev/null` in
- (*64)
- cf_search_path="\
- $cf_path/lib/*64-linux-gnu \
- $cf_path/share \
- $cf_path/lib64 \
- $cf_path/lib32 \
- $cf_path/lib"
- ;;
- (*)
- cf_search_path="\
- $cf_path/lib/*-linux-gnu \
- $cf_path/share \
- $cf_path/lib32 \
- $cf_path/lib \
- $cf_path/libdata"
- ;;
- esac
+ # works for pkg-config since version 0.24 (2009)
+ # works for pkgconf since version 0.8.3 (2012)
+ for cf_pkg_program in \
+ `echo "$PKG_CONFIG" | sed -e 's,^.*/,,'` \
+ pkg-config \
+ pkgconf
+ do
+ cf_search_path=`"$PKG_CONFIG" --variable=pc_path "$cf_pkg_program" 2>/dev/null | tr : ' '`
+ test -n "$cf_search_path" && break
+ done
- test -n "$verbose" && echo " list..." 1>&6
+ # works for pkg-config since import in 2005 of original 2001 HP code.
+ test -z "$cf_search_path" && \
+ cf_search_path=`
+ "$PKG_CONFIG" --debug --exists no-such-package 2>&1 | $AWK "\
+/^Scanning directory (#[1-9][0-9]* )?'.*'$/{ \
+ sub(\"^[^']*'\",\"\"); \
+ sub(\"'.*\",\"\"); \
+ printf \" %s\", \\$0; } \
+{ next; } \
+"`
+ fi
-echo "${as_me:-configure}:3331: testing list... ..." 1>&5
+ echo "$as_me:3418: result: $cf_search_path" >&5
+echo "${ECHO_T}$cf_search_path" >&6
+ ;;
+(*)
+ { { echo "$as_me:3422: error: Unexpected option value: $cf_search_path" >&5
+echo "$as_me: error: Unexpected option value: $cf_search_path" >&2;}
+ { (exit 1); exit 1; }; }
+ ;;
+esac
+if test -n "$cf_search_path"
+then
+ echo "$as_me:3430: checking for first directory" >&5
+echo $ECHO_N "checking for first directory... $ECHO_C" >&6
+ cf_pkg_config_path=none
for cf_config in $cf_search_path
do
- test -n "$verbose" && echo " checking $cf_config/pkgconfig" 1>&6
-
-echo "${as_me:-configure}:3337: testing checking $cf_config/pkgconfig ..." 1>&5
-
- if test -d "$cf_config/pkgconfig"
+ if test -d "$cf_config"
then
- PKG_CONFIG_LIBDIR=$cf_config/pkgconfig
- echo "$as_me:3342: checking done" >&5
-echo $ECHO_N "checking done... $ECHO_C" >&6
+ cf_pkg_config_path=$cf_config
break
fi
done
- ;;
-(*)
- ;;
-esac
+ echo "$as_me:3441: result: $cf_pkg_config_path" >&5
+echo "${ECHO_T}$cf_pkg_config_path" >&6
-if test "x$PKG_CONFIG_LIBDIR" != xno ; then
- echo "$as_me:3353: result: $PKG_CONFIG_LIBDIR" >&5
+ if test "x$cf_pkg_config_path" != xnone ; then
+ # limit this to the first directory found
+ PKG_CONFIG_LIBDIR="$cf_pkg_config_path"
+ fi
+
+ if test -z "$PKG_CONFIG_LIBDIR" && test -n "$cf_search_path"
+ then
+ echo "$as_me:3451: checking for workaround" >&5
+echo $ECHO_N "checking for workaround... $ECHO_C" >&6
+ if test "$prefix" = "NONE" ; then
+ cf_prefix="$ac_default_prefix"
+ else
+ cf_prefix="$prefix"
+ fi
+ eval cf_libdir=$libdir
+ cf_libdir=`echo "$cf_libdir" | sed -e "s,^NONE,$cf_prefix,"`
+ cf_backup=
+ for cf_config in $cf_search_path
+ do
+ case $cf_config in
+ $cf_libdir/pkgconfig)
+ PKG_CONFIG_LIBDIR=$cf_libdir/pkgconfig
+ break
+ ;;
+ *)
+ test -z "$cf_backup" && cf_backup=$cf_config
+ ;;
+ esac
+ done
+ test -z "$PKG_CONFIG_LIBDIR" && PKG_CONFIG_LIBDIR=$cf_backup
+ echo "$as_me:3474: result: $PKG_CONFIG_LIBDIR" >&5
echo "${ECHO_T}$PKG_CONFIG_LIBDIR" >&6
+ fi
fi
-echo "$as_me:3357: checking if you want to build test-programs" >&5
+echo "$as_me:3479: checking if you want to build test-programs" >&5
echo $ECHO_N "checking if you want to build test-programs... $ECHO_C" >&6
# Check whether --with-tests or --without-tests was given.
@@ -3364,10 +3486,10 @@ if test "${with_tests+set}" = set; then
else
cf_with_tests=yes
fi;
-echo "$as_me:3367: result: $cf_with_tests" >&5
+echo "$as_me:3489: result: $cf_with_tests" >&5
echo "${ECHO_T}$cf_with_tests" >&6
-echo "$as_me:3370: checking if we should assume mixed-case filenames" >&5
+echo "$as_me:3492: checking if we should assume mixed-case filenames" >&5
echo $ECHO_N "checking if we should assume mixed-case filenames... $ECHO_C" >&6
# Check whether --enable-mixed-case or --disable-mixed-case was given.
@@ -3377,11 +3499,11 @@ if test "${enable_mixed_case+set}" = set; then
else
enable_mixedcase=auto
fi;
-echo "$as_me:3380: result: $enable_mixedcase" >&5
+echo "$as_me:3502: result: $enable_mixedcase" >&5
echo "${ECHO_T}$enable_mixedcase" >&6
if test "$enable_mixedcase" = "auto" ; then
-echo "$as_me:3384: checking if filesystem supports mixed-case filenames" >&5
+echo "$as_me:3506: checking if filesystem supports mixed-case filenames" >&5
echo $ECHO_N "checking if filesystem supports mixed-case filenames... $ECHO_C" >&6
if test "${cf_cv_mixedcase+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3408,7 +3530,7 @@ else
fi
fi
-echo "$as_me:3411: result: $cf_cv_mixedcase" >&5
+echo "$as_me:3533: result: $cf_cv_mixedcase" >&5
echo "${ECHO_T}$cf_cv_mixedcase" >&6
test "$cf_cv_mixedcase" = yes &&
cat >>confdefs.h <<\EOF
@@ -3426,7 +3548,7 @@ EOF
fi
# do this after mixed-case option (tags/TAGS is not as important as tic).
-echo "$as_me:3429: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "$as_me:3551: checking whether ${MAKE-make} sets \${MAKE}" >&5
echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6
set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
@@ -3446,20 +3568,82 @@ fi
rm -f conftest.make
fi
if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
- echo "$as_me:3449: result: yes" >&5
+ echo "$as_me:3571: result: yes" >&5
echo "${ECHO_T}yes" >&6
SET_MAKE=
else
- echo "$as_me:3453: result: no" >&5
+ echo "$as_me:3575: result: no" >&5
echo "${ECHO_T}no" >&6
SET_MAKE="MAKE=${MAKE-make}"
fi
+echo "$as_me:3580: checking for \".PHONY\" make-support" >&5
+echo $ECHO_N "checking for \".PHONY\" make-support... $ECHO_C" >&6
+if test "${cf_cv_make_PHONY+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+ rm -rf conftest*
+ (
+ mkdir conftest || exit 1
+ cd conftest
+ cat >makefile <<'CF_EOF'
+.PHONY: always
+DATA=0
+always: always.out
+ @echo "** making $@ $(DATA)"
+once: once.out
+ @echo "** making $@ $(DATA)"
+always.out:
+ @echo "** making $@ $(DATA)"
+ echo $(DATA) > $@
+once.out:
+ @echo "** making $@ $(DATA)"
+ echo $(DATA) > $@
+CF_EOF
+ for cf_data in 1 2 3
+ do
+ ${MAKE:-make} always DATA=$cf_data
+ ${MAKE:-make} once DATA=$cf_data
+ ${MAKE:-make} -t always once
+ if test -f always ; then
+ echo "no (case 1)" > ../conftest.tmp
+ elif test ! -f always.out ; then
+ echo "no (case 2)" > ../conftest.tmp
+ elif test ! -f once.out ; then
+ echo "no (case 3)" > ../conftest.tmp
+ elif ! cmp -s always.out once.out ; then
+ echo "no (case 4)" > ../conftest.tmp
+ diff always.out once.out
+ else
+ cf_check="`cat always.out`"
+ if test "x$cf_check" != "x$cf_data" ; then
+ echo "no (case 5)" > ../conftest.tmp
+ else
+ echo yes > ../conftest.tmp
+ rm -f ./*.out
+ continue
+ fi
+ fi
+ break
+ done
+ ) >&5 2>&1
+ cf_cv_make_PHONY="`cat conftest.tmp`"
+ rm -rf conftest*
+
+fi
+echo "$as_me:3635: result: $cf_cv_make_PHONY" >&5
+echo "${ECHO_T}$cf_cv_make_PHONY" >&6
+MAKE_NO_PHONY="#"
+MAKE_PHONY="#"
+test "x$cf_cv_make_PHONY" = xyes && MAKE_PHONY=
+test "x$cf_cv_make_PHONY" != xyes && MAKE_NO_PHONY=
+
for ac_prog in exctags ctags
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-echo "$as_me:3462: checking for $ac_word" >&5
+echo "$as_me:3646: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_CTAGS+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3474,7 +3658,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_CTAGS="$ac_prog"
-echo "$as_me:3477: found $ac_dir/$ac_word" >&5
+echo "$as_me:3661: found $ac_dir/$ac_word" >&5
break
done
@@ -3482,10 +3666,10 @@ fi
fi
CTAGS=$ac_cv_prog_CTAGS
if test -n "$CTAGS"; then
- echo "$as_me:3485: result: $CTAGS" >&5
+ echo "$as_me:3669: result: $CTAGS" >&5
echo "${ECHO_T}$CTAGS" >&6
else
- echo "$as_me:3488: result: no" >&5
+ echo "$as_me:3672: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -3496,7 +3680,7 @@ for ac_prog in exetags etags
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-echo "$as_me:3499: checking for $ac_word" >&5
+echo "$as_me:3683: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_ETAGS+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3511,7 +3695,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_ETAGS="$ac_prog"
-echo "$as_me:3514: found $ac_dir/$ac_word" >&5
+echo "$as_me:3698: found $ac_dir/$ac_word" >&5
break
done
@@ -3519,10 +3703,10 @@ fi
fi
ETAGS=$ac_cv_prog_ETAGS
if test -n "$ETAGS"; then
- echo "$as_me:3522: result: $ETAGS" >&5
+ echo "$as_me:3706: result: $ETAGS" >&5
echo "${ECHO_T}$ETAGS" >&6
else
- echo "$as_me:3525: result: no" >&5
+ echo "$as_me:3709: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -3531,7 +3715,7 @@ done
# Extract the first word of "${CTAGS:-ctags}", so it can be a program name with args.
set dummy ${CTAGS:-ctags}; ac_word=$2
-echo "$as_me:3534: checking for $ac_word" >&5
+echo "$as_me:3718: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_MAKE_LOWER_TAGS+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3546,7 +3730,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_MAKE_LOWER_TAGS="yes"
-echo "$as_me:3549: found $ac_dir/$ac_word" >&5
+echo "$as_me:3733: found $ac_dir/$ac_word" >&5
break
done
@@ -3555,17 +3739,17 @@ fi
fi
MAKE_LOWER_TAGS=$ac_cv_prog_MAKE_LOWER_TAGS
if test -n "$MAKE_LOWER_TAGS"; then
- echo "$as_me:3558: result: $MAKE_LOWER_TAGS" >&5
+ echo "$as_me:3742: result: $MAKE_LOWER_TAGS" >&5
echo "${ECHO_T}$MAKE_LOWER_TAGS" >&6
else
- echo "$as_me:3561: result: no" >&5
+ echo "$as_me:3745: result: no" >&5
echo "${ECHO_T}no" >&6
fi
if test "$cf_cv_mixedcase" = yes ; then
# Extract the first word of "${ETAGS:-etags}", so it can be a program name with args.
set dummy ${ETAGS:-etags}; ac_word=$2
-echo "$as_me:3568: checking for $ac_word" >&5
+echo "$as_me:3752: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_MAKE_UPPER_TAGS+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3580,7 +3764,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_MAKE_UPPER_TAGS="yes"
-echo "$as_me:3583: found $ac_dir/$ac_word" >&5
+echo "$as_me:3767: found $ac_dir/$ac_word" >&5
break
done
@@ -3589,10 +3773,10 @@ fi
fi
MAKE_UPPER_TAGS=$ac_cv_prog_MAKE_UPPER_TAGS
if test -n "$MAKE_UPPER_TAGS"; then
- echo "$as_me:3592: result: $MAKE_UPPER_TAGS" >&5
+ echo "$as_me:3776: result: $MAKE_UPPER_TAGS" >&5
echo "${ECHO_T}$MAKE_UPPER_TAGS" >&6
else
- echo "$as_me:3595: result: no" >&5
+ echo "$as_me:3779: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -3612,7 +3796,7 @@ else
MAKE_LOWER_TAGS="#"
fi
-echo "$as_me:3615: checking for makeflags variable" >&5
+echo "$as_me:3799: checking for makeflags variable" >&5
echo $ECHO_N "checking for makeflags variable... $ECHO_C" >&6
if test "${cf_cv_makeflags+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3642,7 +3826,7 @@ CF_EOF
;;
(*)
-echo "${as_me:-configure}:3645: testing given option \"$cf_option\",no match \"$cf_result\" ..." 1>&5
+echo "${as_me:-configure}:3829: testing given option \"$cf_option\",no match \"$cf_result\" ..." 1>&5
;;
esac
@@ -3650,13 +3834,13 @@ echo "${as_me:-configure}:3645: testing given option \"$cf_option\",no match \"$
rm -f cf_makeflags.tmp
fi
-echo "$as_me:3653: result: $cf_cv_makeflags" >&5
+echo "$as_me:3837: result: $cf_cv_makeflags" >&5
echo "${ECHO_T}$cf_cv_makeflags" >&6
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-echo "$as_me:3659: checking for $ac_word" >&5
+echo "$as_me:3843: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_RANLIB+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3671,7 +3855,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
-echo "$as_me:3674: found $ac_dir/$ac_word" >&5
+echo "$as_me:3858: found $ac_dir/$ac_word" >&5
break
done
@@ -3679,10 +3863,10 @@ fi
fi
RANLIB=$ac_cv_prog_RANLIB
if test -n "$RANLIB"; then
- echo "$as_me:3682: result: $RANLIB" >&5
+ echo "$as_me:3866: result: $RANLIB" >&5
echo "${ECHO_T}$RANLIB" >&6
else
- echo "$as_me:3685: result: no" >&5
+ echo "$as_me:3869: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -3691,7 +3875,7 @@ if test -z "$ac_cv_prog_RANLIB"; then
ac_ct_RANLIB=$RANLIB
# Extract the first word of "ranlib", so it can be a program name with args.
set dummy ranlib; ac_word=$2
-echo "$as_me:3694: checking for $ac_word" >&5
+echo "$as_me:3878: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3706,7 +3890,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_ac_ct_RANLIB="ranlib"
-echo "$as_me:3709: found $ac_dir/$ac_word" >&5
+echo "$as_me:3893: found $ac_dir/$ac_word" >&5
break
done
@@ -3715,10 +3899,10 @@ fi
fi
ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
if test -n "$ac_ct_RANLIB"; then
- echo "$as_me:3718: result: $ac_ct_RANLIB" >&5
+ echo "$as_me:3902: result: $ac_ct_RANLIB" >&5
echo "${ECHO_T}$ac_ct_RANLIB" >&6
else
- echo "$as_me:3721: result: no" >&5
+ echo "$as_me:3905: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -3730,7 +3914,7 @@ fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}ld", so it can be a program name with args.
set dummy ${ac_tool_prefix}ld; ac_word=$2
-echo "$as_me:3733: checking for $ac_word" >&5
+echo "$as_me:3917: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_LD+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3745,7 +3929,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_LD="${ac_tool_prefix}ld"
-echo "$as_me:3748: found $ac_dir/$ac_word" >&5
+echo "$as_me:3932: found $ac_dir/$ac_word" >&5
break
done
@@ -3753,10 +3937,10 @@ fi
fi
LD=$ac_cv_prog_LD
if test -n "$LD"; then
- echo "$as_me:3756: result: $LD" >&5
+ echo "$as_me:3940: result: $LD" >&5
echo "${ECHO_T}$LD" >&6
else
- echo "$as_me:3759: result: no" >&5
+ echo "$as_me:3943: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -3765,7 +3949,7 @@ if test -z "$ac_cv_prog_LD"; then
ac_ct_LD=$LD
# Extract the first word of "ld", so it can be a program name with args.
set dummy ld; ac_word=$2
-echo "$as_me:3768: checking for $ac_word" >&5
+echo "$as_me:3952: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_ac_ct_LD+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3780,7 +3964,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_ac_ct_LD="ld"
-echo "$as_me:3783: found $ac_dir/$ac_word" >&5
+echo "$as_me:3967: found $ac_dir/$ac_word" >&5
break
done
@@ -3789,10 +3973,10 @@ fi
fi
ac_ct_LD=$ac_cv_prog_ac_ct_LD
if test -n "$ac_ct_LD"; then
- echo "$as_me:3792: result: $ac_ct_LD" >&5
+ echo "$as_me:3976: result: $ac_ct_LD" >&5
echo "${ECHO_T}$ac_ct_LD" >&6
else
- echo "$as_me:3795: result: no" >&5
+ echo "$as_me:3979: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -3804,7 +3988,7 @@ fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
set dummy ${ac_tool_prefix}ar; ac_word=$2
-echo "$as_me:3807: checking for $ac_word" >&5
+echo "$as_me:3991: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_AR+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3819,7 +4003,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_AR="${ac_tool_prefix}ar"
-echo "$as_me:3822: found $ac_dir/$ac_word" >&5
+echo "$as_me:4006: found $ac_dir/$ac_word" >&5
break
done
@@ -3827,10 +4011,10 @@ fi
fi
AR=$ac_cv_prog_AR
if test -n "$AR"; then
- echo "$as_me:3830: result: $AR" >&5
+ echo "$as_me:4014: result: $AR" >&5
echo "${ECHO_T}$AR" >&6
else
- echo "$as_me:3833: result: no" >&5
+ echo "$as_me:4017: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -3839,7 +4023,7 @@ if test -z "$ac_cv_prog_AR"; then
ac_ct_AR=$AR
# Extract the first word of "ar", so it can be a program name with args.
set dummy ar; ac_word=$2
-echo "$as_me:3842: checking for $ac_word" >&5
+echo "$as_me:4026: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3854,7 +4038,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_ac_ct_AR="ar"
-echo "$as_me:3857: found $ac_dir/$ac_word" >&5
+echo "$as_me:4041: found $ac_dir/$ac_word" >&5
break
done
@@ -3863,10 +4047,10 @@ fi
fi
ac_ct_AR=$ac_cv_prog_ac_ct_AR
if test -n "$ac_ct_AR"; then
- echo "$as_me:3866: result: $ac_ct_AR" >&5
+ echo "$as_me:4050: result: $ac_ct_AR" >&5
echo "${ECHO_T}$ac_ct_AR" >&6
else
- echo "$as_me:3869: result: no" >&5
+ echo "$as_me:4053: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -3878,7 +4062,7 @@ fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
set dummy ${ac_tool_prefix}ar; ac_word=$2
-echo "$as_me:3881: checking for $ac_word" >&5
+echo "$as_me:4065: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_AR+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3893,7 +4077,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_AR="${ac_tool_prefix}ar"
-echo "$as_me:3896: found $ac_dir/$ac_word" >&5
+echo "$as_me:4080: found $ac_dir/$ac_word" >&5
break
done
@@ -3901,10 +4085,10 @@ fi
fi
AR=$ac_cv_prog_AR
if test -n "$AR"; then
- echo "$as_me:3904: result: $AR" >&5
+ echo "$as_me:4088: result: $AR" >&5
echo "${ECHO_T}$AR" >&6
else
- echo "$as_me:3907: result: no" >&5
+ echo "$as_me:4091: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -3913,7 +4097,7 @@ if test -z "$ac_cv_prog_AR"; then
ac_ct_AR=$AR
# Extract the first word of "ar", so it can be a program name with args.
set dummy ar; ac_word=$2
-echo "$as_me:3916: checking for $ac_word" >&5
+echo "$as_me:4100: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3928,7 +4112,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_ac_ct_AR="ar"
-echo "$as_me:3931: found $ac_dir/$ac_word" >&5
+echo "$as_me:4115: found $ac_dir/$ac_word" >&5
break
done
@@ -3937,10 +4121,10 @@ fi
fi
ac_ct_AR=$ac_cv_prog_ac_ct_AR
if test -n "$ac_ct_AR"; then
- echo "$as_me:3940: result: $ac_ct_AR" >&5
+ echo "$as_me:4124: result: $ac_ct_AR" >&5
echo "${ECHO_T}$ac_ct_AR" >&6
else
- echo "$as_me:3943: result: no" >&5
+ echo "$as_me:4127: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -3949,7 +4133,7 @@ else
AR="$ac_cv_prog_AR"
fi
-echo "$as_me:3952: checking for options to update archives" >&5
+echo "$as_me:4136: checking for options to update archives" >&5
echo $ECHO_N "checking for options to update archives... $ECHO_C" >&6
if test "${cf_cv_ar_flags+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3986,13 +4170,13 @@ else
rm -f conftest.a
cat >"conftest.$ac_ext" <<EOF
-#line 3989 "configure"
+#line 4173 "configure"
int testdata[3] = { 123, 456, 789 };
EOF
- if { (eval echo "$as_me:3992: \"$ac_compile\"") >&5
+ if { (eval echo "$as_me:4176: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:3995: \$? = $ac_status" >&5
+ echo "$as_me:4179: \$? = $ac_status" >&5
(exit "$ac_status"); } ; then
echo "$AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext" >&5
$AR $ARFLAGS "$cf_ar_flags" conftest.a "conftest.$ac_cv_objext" 2>&5 1>/dev/null
@@ -4003,7 +4187,7 @@ EOF
else
test -n "$verbose" && echo " cannot compile test-program" 1>&6
-echo "${as_me:-configure}:4006: testing cannot compile test-program ..." 1>&5
+echo "${as_me:-configure}:4190: testing cannot compile test-program ..." 1>&5
break
fi
@@ -4013,7 +4197,7 @@ echo "${as_me:-configure}:4006: testing cannot compile test-program ..." 1>&5
esac
fi
-echo "$as_me:4016: result: $cf_cv_ar_flags" >&5
+echo "$as_me:4200: result: $cf_cv_ar_flags" >&5
echo "${ECHO_T}$cf_cv_ar_flags" >&6
if test -n "$ARFLAGS" ; then
@@ -4024,17 +4208,17 @@ else
ARFLAGS=$cf_cv_ar_flags
fi
- echo "$as_me:4027: checking for PATH separator" >&5
+ echo "$as_me:4211: checking for PATH separator" >&5
echo $ECHO_N "checking for PATH separator... $ECHO_C" >&6
case "$cf_cv_system_name" in
(os2*) PATH_SEPARATOR=';' ;;
(*) ${PATH_SEPARATOR:=':'} ;;
esac
- echo "$as_me:4034: result: $PATH_SEPARATOR" >&5
+ echo "$as_me:4218: result: $PATH_SEPARATOR" >&5
echo "${ECHO_T}$PATH_SEPARATOR" >&6
-echo "$as_me:4037: checking if you have specified an install-prefix" >&5
+echo "$as_me:4221: checking if you have specified an install-prefix" >&5
echo $ECHO_N "checking if you have specified an install-prefix... $ECHO_C" >&6
# Check whether --with-install-prefix or --without-install-prefix was given.
@@ -4047,7 +4231,7 @@ if test "${with_install_prefix+set}" = set; then
;;
esac
fi;
-echo "$as_me:4050: result: $DESTDIR" >&5
+echo "$as_me:4234: result: $DESTDIR" >&5
echo "${ECHO_T}$DESTDIR" >&6
###############################################################################
@@ -4075,7 +4259,7 @@ else
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-echo "$as_me:4078: checking for $ac_word" >&5
+echo "$as_me:4262: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_BUILD_CC+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -4090,7 +4274,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_BUILD_CC="$ac_prog"
-echo "$as_me:4093: found $ac_dir/$ac_word" >&5
+echo "$as_me:4277: found $ac_dir/$ac_word" >&5
break
done
@@ -4098,10 +4282,10 @@ fi
fi
BUILD_CC=$ac_cv_prog_BUILD_CC
if test -n "$BUILD_CC"; then
- echo "$as_me:4101: result: $BUILD_CC" >&5
+ echo "$as_me:4285: result: $BUILD_CC" >&5
echo "${ECHO_T}$BUILD_CC" >&6
else
- echo "$as_me:4104: result: no" >&5
+ echo "$as_me:4288: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -4110,12 +4294,12 @@ done
test -n "$BUILD_CC" || BUILD_CC="none"
fi;
- echo "$as_me:4113: checking for native build C compiler" >&5
+ echo "$as_me:4297: checking for native build C compiler" >&5
echo $ECHO_N "checking for native build C compiler... $ECHO_C" >&6
- echo "$as_me:4115: result: $BUILD_CC" >&5
+ echo "$as_me:4299: result: $BUILD_CC" >&5
echo "${ECHO_T}$BUILD_CC" >&6
- echo "$as_me:4118: checking for native build C preprocessor" >&5
+ echo "$as_me:4302: checking for native build C preprocessor" >&5
echo $ECHO_N "checking for native build C preprocessor... $ECHO_C" >&6
# Check whether --with-build-cpp or --without-build-cpp was given.
@@ -4125,10 +4309,10 @@ if test "${with_build_cpp+set}" = set; then
else
BUILD_CPP='${BUILD_CC} -E'
fi;
- echo "$as_me:4128: result: $BUILD_CPP" >&5
+ echo "$as_me:4312: result: $BUILD_CPP" >&5
echo "${ECHO_T}$BUILD_CPP" >&6
- echo "$as_me:4131: checking for native build C flags" >&5
+ echo "$as_me:4315: checking for native build C flags" >&5
echo $ECHO_N "checking for native build C flags... $ECHO_C" >&6
# Check whether --with-build-cflags or --without-build-cflags was given.
@@ -4136,10 +4320,10 @@ if test "${with_build_cflags+set}" = set; then
withval="$with_build_cflags"
BUILD_CFLAGS="$withval"
fi;
- echo "$as_me:4139: result: $BUILD_CFLAGS" >&5
+ echo "$as_me:4323: result: $BUILD_CFLAGS" >&5
echo "${ECHO_T}$BUILD_CFLAGS" >&6
- echo "$as_me:4142: checking for native build C preprocessor-flags" >&5
+ echo "$as_me:4326: checking for native build C preprocessor-flags" >&5
echo $ECHO_N "checking for native build C preprocessor-flags... $ECHO_C" >&6
# Check whether --with-build-cppflags or --without-build-cppflags was given.
@@ -4147,10 +4331,10 @@ if test "${with_build_cppflags+set}" = set; then
withval="$with_build_cppflags"
BUILD_CPPFLAGS="$withval"
fi;
- echo "$as_me:4150: result: $BUILD_CPPFLAGS" >&5
+ echo "$as_me:4334: result: $BUILD_CPPFLAGS" >&5
echo "${ECHO_T}$BUILD_CPPFLAGS" >&6
- echo "$as_me:4153: checking for native build linker-flags" >&5
+ echo "$as_me:4337: checking for native build linker-flags" >&5
echo $ECHO_N "checking for native build linker-flags... $ECHO_C" >&6
# Check whether --with-build-ldflags or --without-build-ldflags was given.
@@ -4158,10 +4342,10 @@ if test "${with_build_ldflags+set}" = set; then
withval="$with_build_ldflags"
BUILD_LDFLAGS="$withval"
fi;
- echo "$as_me:4161: result: $BUILD_LDFLAGS" >&5
+ echo "$as_me:4345: result: $BUILD_LDFLAGS" >&5
echo "${ECHO_T}$BUILD_LDFLAGS" >&6
- echo "$as_me:4164: checking for native build linker-libraries" >&5
+ echo "$as_me:4348: checking for native build linker-libraries" >&5
echo $ECHO_N "checking for native build linker-libraries... $ECHO_C" >&6
# Check whether --with-build-libs or --without-build-libs was given.
@@ -4169,7 +4353,7 @@ if test "${with_build_libs+set}" = set; then
withval="$with_build_libs"
BUILD_LIBS="$withval"
fi;
- echo "$as_me:4172: result: $BUILD_LIBS" >&5
+ echo "$as_me:4356: result: $BUILD_LIBS" >&5
echo "${ECHO_T}$BUILD_LIBS" >&6
# this assumes we're on Unix.
@@ -4178,8 +4362,59 @@ echo "${ECHO_T}$BUILD_LIBS" >&6
: ${BUILD_CC:='${CC}'}
- if { test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '${CC}'; } ; then
- { { echo "$as_me:4182: error: Cross-build requires two compilers.
+ echo "$as_me:4365: checking if the build-compiler \"$BUILD_CC\" works" >&5
+echo $ECHO_N "checking if the build-compiler \"$BUILD_CC\" works... $ECHO_C" >&6
+
+ cf_save_crossed=$cross_compiling
+ cf_save_ac_link=$ac_link
+ cross_compiling=no
+ cf_build_cppflags=$BUILD_CPPFLAGS
+ test "$cf_build_cppflags" = "#" && cf_build_cppflags=
+ ac_link='$BUILD_CC -o "conftest$ac_exeext" $BUILD_CFLAGS $cf_build_cppflags $BUILD_LDFLAGS "conftest.$ac_ext" $BUILD_LIBS >&5'
+
+ if test "$cross_compiling" = yes; then
+ cf_ok_build_cc=unknown
+else
+ cat >"conftest.$ac_ext" <<_ACEOF
+#line 4379 "configure"
+#include "confdefs.h"
+#include <stdio.h>
+ int main(int argc, char *argv[])
+ {
+ ${cf_cv_main_return:-return}(argc < 0 || argv == 0 || argv[0] == 0);
+ }
+
+_ACEOF
+rm -f "conftest$ac_exeext"
+if { (eval echo "$as_me:4389: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:4392: \$? = $ac_status" >&5
+ (exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
+ { (eval echo "$as_me:4394: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:4397: \$? = $ac_status" >&5
+ (exit "$ac_status"); }; }; then
+ cf_ok_build_cc=yes
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+cat "conftest.$ac_ext" >&5
+cf_ok_build_cc=no
+fi
+rm -f core ./core.* ./*.core "conftest$ac_exeext" "conftest.$ac_objext" "conftest.$ac_ext"
+fi
+
+ cross_compiling=$cf_save_crossed
+ ac_link=$cf_save_ac_link
+
+ echo "$as_me:4412: result: $cf_ok_build_cc" >&5
+echo "${ECHO_T}$cf_ok_build_cc" >&6
+
+ if test "$cf_ok_build_cc" != yes
+ then
+ { { echo "$as_me:4417: error: Cross-build requires two compilers.
Use --with-build-cc to specify the native compiler." >&5
echo "$as_me: error: Cross-build requires two compilers.
Use --with-build-cc to specify the native compiler." >&2;}
@@ -4204,7 +4439,7 @@ fi
### shared, for example.
cf_list_models=""
-echo "$as_me:4207: checking if you want to build shared C-objects" >&5
+echo "$as_me:4442: checking if you want to build shared C-objects" >&5
echo $ECHO_N "checking if you want to build shared C-objects... $ECHO_C" >&6
# Check whether --with-shared or --without-shared was given.
@@ -4214,27 +4449,27 @@ if test "${with_shared+set}" = set; then
else
with_shared=no
fi;
-echo "$as_me:4217: result: $with_shared" >&5
+echo "$as_me:4452: result: $with_shared" >&5
echo "${ECHO_T}$with_shared" >&6
test "$with_shared" = "yes" && cf_list_models="$cf_list_models shared"
-echo "$as_me:4221: checking for specified models" >&5
+echo "$as_me:4456: checking for specified models" >&5
echo $ECHO_N "checking for specified models... $ECHO_C" >&6
test -z "$cf_list_models" && cf_list_models=normal
-echo "$as_me:4224: result: $cf_list_models" >&5
+echo "$as_me:4459: result: $cf_list_models" >&5
echo "${ECHO_T}$cf_list_models" >&6
### Use the first model as the default, and save its suffix for use in building
### up test-applications.
-echo "$as_me:4229: checking for default model" >&5
+echo "$as_me:4464: checking for default model" >&5
echo $ECHO_N "checking for default model... $ECHO_C" >&6
DFT_LWR_MODEL=`echo "$cf_list_models" | $AWK '{print $1}'`
-echo "$as_me:4232: result: $DFT_LWR_MODEL" >&5
+echo "$as_me:4467: result: $DFT_LWR_MODEL" >&5
echo "${ECHO_T}$DFT_LWR_MODEL" >&6
DFT_UPR_MODEL=`echo "$DFT_LWR_MODEL" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-echo "$as_me:4237: checking for specific curses-directory" >&5
+echo "$as_me:4472: checking for specific curses-directory" >&5
echo $ECHO_N "checking for specific curses-directory... $ECHO_C" >&6
# Check whether --with-curses-dir or --without-curses-dir was given.
@@ -4244,7 +4479,7 @@ if test "${with_curses_dir+set}" = set; then
else
cf_cv_curses_dir=no
fi;
-echo "$as_me:4247: result: $cf_cv_curses_dir" >&5
+echo "$as_me:4482: result: $cf_cv_curses_dir" >&5
echo "${ECHO_T}$cf_cv_curses_dir" >&6
if test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no"
@@ -4275,7 +4510,7 @@ case ".$withval" in
withval=`echo "$withval" | sed -e s%NONE%$cf_path_syntax%`
;;
(*)
- { { echo "$as_me:4278: error: expected a pathname, not \"$withval\"" >&5
+ { { echo "$as_me:4513: error: expected a pathname, not \"$withval\"" >&5
echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
{ (exit 1); exit 1; }; }
;;
@@ -4311,7 +4546,7 @@ if test -n "$cf_cv_curses_dir/include" ; then
CPPFLAGS="${CPPFLAGS}-I$cf_add_incdir"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 4314 "configure"
+#line 4549 "configure"
#include "confdefs.h"
#include <stdio.h>
int
@@ -4323,16 +4558,16 @@ printf("Hello")
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:4326: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:4561: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:4329: \$? = $ac_status" >&5
+ echo "$as_me:4564: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:4332: \"$ac_try\"") >&5
+ { (eval echo "$as_me:4567: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:4335: \$? = $ac_status" >&5
+ echo "$as_me:4570: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
:
else
@@ -4349,7 +4584,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
if test "$cf_have_incdir" = no ; then
test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-echo "${as_me:-configure}:4352: testing adding $cf_add_incdir to include-path ..." 1>&5
+echo "${as_me:-configure}:4587: testing adding $cf_add_incdir to include-path ..." 1>&5
CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
@@ -4385,7 +4620,7 @@ if test -n "$cf_cv_curses_dir/lib" ; then
if test "$cf_have_libdir" = no ; then
test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6
-echo "${as_me:-configure}:4388: testing adding $cf_add_libdir to library-path ..." 1>&5
+echo "${as_me:-configure}:4623: testing adding $cf_add_libdir to library-path ..." 1>&5
LDFLAGS="-L$cf_add_libdir $LDFLAGS"
fi
@@ -4400,13 +4635,13 @@ cf_ncuconfig_root=ncurses
cf_have_ncuconfig=no
if test "x${PKG_CONFIG:=none}" != xnone; then
- echo "$as_me:4403: checking pkg-config for $cf_ncuconfig_root" >&5
+ echo "$as_me:4638: checking pkg-config for $cf_ncuconfig_root" >&5
echo $ECHO_N "checking pkg-config for $cf_ncuconfig_root... $ECHO_C" >&6
if "$PKG_CONFIG" --exists $cf_ncuconfig_root ; then
- echo "$as_me:4406: result: yes" >&5
+ echo "$as_me:4641: result: yes" >&5
echo "${ECHO_T}yes" >&6
- echo "$as_me:4409: checking if the $cf_ncuconfig_root package files work" >&5
+ echo "$as_me:4644: checking if the $cf_ncuconfig_root package files work" >&5
echo $ECHO_N "checking if the $cf_ncuconfig_root package files work... $ECHO_C" >&6
cf_have_ncuconfig=unknown
@@ -4539,7 +4774,7 @@ done
LIBS="$cf_add_libs"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 4542 "configure"
+#line 4777 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
int
@@ -4551,37 +4786,37 @@ initscr(); mousemask(0,0); tigetstr((char *)0);
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:4554: \"$ac_link\"") >&5
+if { (eval echo "$as_me:4789: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:4557: \$? = $ac_status" >&5
+ echo "$as_me:4792: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:4560: \"$ac_try\"") >&5
+ { (eval echo "$as_me:4795: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:4563: \$? = $ac_status" >&5
+ echo "$as_me:4798: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
if test "$cross_compiling" = yes; then
cf_test_ncuconfig=maybe
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 4569 "configure"
+#line 4804 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
int main(void)
- { char *xx = curses_version(); return (xx == 0); }
+ { const char *xx = curses_version(); return (xx == 0); }
_ACEOF
rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:4576: \"$ac_link\"") >&5
+if { (eval echo "$as_me:4811: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:4579: \$? = $ac_status" >&5
+ echo "$as_me:4814: \$? = $ac_status" >&5
(exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:4581: \"$ac_try\"") >&5
+ { (eval echo "$as_me:4816: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:4584: \$? = $ac_status" >&5
+ echo "$as_me:4819: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_test_ncuconfig=yes
else
@@ -4612,12 +4847,38 @@ rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
;;
esac
+for cf_add_cflags in $cf_pkg_cflags
+do
+ case "x$cf_add_cflags" in
+ (x-[DU]*)
+
+cf_tmp_cflag=`echo "x$cf_add_cflags" | sed -e 's/^.//' -e 's/=.*//'`
+while true
+do
+ cf_old_cflag=`echo "x$CFLAGS" | sed -e 's/^.//' -e 's/[ ][ ]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[^ ][^ ]*\\)\?%%" -e 's/^[ ]*//' -e 's%[ ][ ]*-D% -D%g' -e 's%[ ][ ]*-I% -I%g'`
+ test "$CFLAGS" != "$cf_old_cflag" || break
+
+ CFLAGS="$cf_old_cflag"
+done
+
+cf_tmp_cflag=`echo "x$cf_add_cflags" | sed -e 's/^.//' -e 's/=.*//'`
+while true
+do
+ cf_old_cflag=`echo "x$CPPFLAGS" | sed -e 's/^.//' -e 's/[ ][ ]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[^ ][^ ]*\\)\?%%" -e 's/^[ ]*//' -e 's%[ ][ ]*-D% -D%g' -e 's%[ ][ ]*-I% -I%g'`
+ test "$CPPFLAGS" != "$cf_old_cflag" || break
+
+ CPPFLAGS="$cf_old_cflag"
+done
+
+ ;;
+ esac
+
cf_fix_cppflags=no
cf_new_cflags=
cf_new_cppflags=
cf_new_extra_cppflags=
-for cf_add_cflags in $cf_pkg_cflags
+for cf_add_cflags in $cf_add_cflags
do
case "$cf_fix_cppflags" in
(no)
@@ -4710,6 +4971,8 @@ if test -n "$cf_new_extra_cppflags" ; then
fi
+done
+
cf_add_libs="$LIBS"
# reverse order
cf_add_0lib=
@@ -4727,7 +4990,7 @@ done
LIBS="$cf_add_libs"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 4730 "configure"
+#line 4993 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
int
@@ -4739,37 +5002,37 @@ initscr(); mousemask(0,0); tigetstr((char *)0);
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:4742: \"$ac_link\"") >&5
+if { (eval echo "$as_me:5005: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:4745: \$? = $ac_status" >&5
+ echo "$as_me:5008: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:4748: \"$ac_try\"") >&5
+ { (eval echo "$as_me:5011: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:4751: \$? = $ac_status" >&5
+ echo "$as_me:5014: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
if test "$cross_compiling" = yes; then
cf_have_ncuconfig=maybe
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 4757 "configure"
+#line 5020 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
int main(void)
- { char *xx = curses_version(); return (xx == 0); }
+ { const char *xx = curses_version(); return (xx == 0); }
_ACEOF
rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:4764: \"$ac_link\"") >&5
+if { (eval echo "$as_me:5027: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:4767: \$? = $ac_status" >&5
+ echo "$as_me:5030: \$? = $ac_status" >&5
(exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:4769: \"$ac_try\"") >&5
+ { (eval echo "$as_me:5032: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:4772: \$? = $ac_status" >&5
+ echo "$as_me:5035: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_have_ncuconfig=yes
else
@@ -4786,7 +5049,7 @@ cat "conftest.$ac_ext" >&5
cf_have_ncuconfig=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
- echo "$as_me:4789: result: $cf_have_ncuconfig" >&5
+ echo "$as_me:5052: result: $cf_have_ncuconfig" >&5
echo "${ECHO_T}$cf_have_ncuconfig" >&6
test "$cf_have_ncuconfig" = maybe && cf_have_ncuconfig=yes
if test "$cf_have_ncuconfig" != "yes"
@@ -4802,7 +5065,7 @@ EOF
NCURSES_CONFIG_PKG=$cf_ncuconfig_root
-echo "$as_me:4805: checking for terminfo header" >&5
+echo "$as_me:5068: checking for terminfo header" >&5
echo $ECHO_N "checking for terminfo header... $ECHO_C" >&6
if test "${cf_cv_term_header+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -4820,7 +5083,7 @@ esac
for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 4823 "configure"
+#line 5086 "configure"
#include "confdefs.h"
#include <stdio.h>
#include <${cf_cv_ncurses_header:-curses.h}>
@@ -4835,16 +5098,16 @@ int x = auto_left_margin; (void)x
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:4838: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:5101: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:4841: \$? = $ac_status" >&5
+ echo "$as_me:5104: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:4844: \"$ac_try\"") >&5
+ { (eval echo "$as_me:5107: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:4847: \$? = $ac_status" >&5
+ echo "$as_me:5110: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_term_header="$cf_test"
@@ -4860,7 +5123,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
done
fi
-echo "$as_me:4863: result: $cf_cv_term_header" >&5
+echo "$as_me:5126: result: $cf_cv_term_header" >&5
echo "${ECHO_T}$cf_cv_term_header" >&6
# Set definitions to allow ifdef'ing to accommodate subdirectories
@@ -4895,7 +5158,7 @@ esac
fi
else
- echo "$as_me:4898: result: no" >&5
+ echo "$as_me:5161: result: no" >&5
echo "${ECHO_T}no" >&6
NCURSES_CONFIG_PKG=none
fi
@@ -4911,7 +5174,7 @@ if test -n "$ac_tool_prefix"; then
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-echo "$as_me:4914: checking for $ac_word" >&5
+echo "$as_me:5177: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_NCURSES_CONFIG+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -4926,7 +5189,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_NCURSES_CONFIG="$ac_tool_prefix$ac_prog"
-echo "$as_me:4929: found $ac_dir/$ac_word" >&5
+echo "$as_me:5192: found $ac_dir/$ac_word" >&5
break
done
@@ -4934,10 +5197,10 @@ fi
fi
NCURSES_CONFIG=$ac_cv_prog_NCURSES_CONFIG
if test -n "$NCURSES_CONFIG"; then
- echo "$as_me:4937: result: $NCURSES_CONFIG" >&5
+ echo "$as_me:5200: result: $NCURSES_CONFIG" >&5
echo "${ECHO_T}$NCURSES_CONFIG" >&6
else
- echo "$as_me:4940: result: no" >&5
+ echo "$as_me:5203: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -4950,7 +5213,7 @@ if test -z "$NCURSES_CONFIG"; then
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-echo "$as_me:4953: checking for $ac_word" >&5
+echo "$as_me:5216: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_ac_ct_NCURSES_CONFIG+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -4965,7 +5228,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_ac_ct_NCURSES_CONFIG="$ac_prog"
-echo "$as_me:4968: found $ac_dir/$ac_word" >&5
+echo "$as_me:5231: found $ac_dir/$ac_word" >&5
break
done
@@ -4973,10 +5236,10 @@ fi
fi
ac_ct_NCURSES_CONFIG=$ac_cv_prog_ac_ct_NCURSES_CONFIG
if test -n "$ac_ct_NCURSES_CONFIG"; then
- echo "$as_me:4976: result: $ac_ct_NCURSES_CONFIG" >&5
+ echo "$as_me:5239: result: $ac_ct_NCURSES_CONFIG" >&5
echo "${ECHO_T}$ac_ct_NCURSES_CONFIG" >&6
else
- echo "$as_me:4979: result: no" >&5
+ echo "$as_me:5242: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -4989,12 +5252,38 @@ fi
if test "$NCURSES_CONFIG" != none ; then
+for cf_add_cflags in `$NCURSES_CONFIG --cflags`
+do
+ case "x$cf_add_cflags" in
+ (x-[DU]*)
+
+cf_tmp_cflag=`echo "x$cf_add_cflags" | sed -e 's/^.//' -e 's/=.*//'`
+while true
+do
+ cf_old_cflag=`echo "x$CFLAGS" | sed -e 's/^.//' -e 's/[ ][ ]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[^ ][^ ]*\\)\?%%" -e 's/^[ ]*//' -e 's%[ ][ ]*-D% -D%g' -e 's%[ ][ ]*-I% -I%g'`
+ test "$CFLAGS" != "$cf_old_cflag" || break
+
+ CFLAGS="$cf_old_cflag"
+done
+
+cf_tmp_cflag=`echo "x$cf_add_cflags" | sed -e 's/^.//' -e 's/=.*//'`
+while true
+do
+ cf_old_cflag=`echo "x$CPPFLAGS" | sed -e 's/^.//' -e 's/[ ][ ]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[^ ][^ ]*\\)\?%%" -e 's/^[ ]*//' -e 's%[ ][ ]*-D% -D%g' -e 's%[ ][ ]*-I% -I%g'`
+ test "$CPPFLAGS" != "$cf_old_cflag" || break
+
+ CPPFLAGS="$cf_old_cflag"
+done
+
+ ;;
+ esac
+
cf_fix_cppflags=no
cf_new_cflags=
cf_new_cppflags=
cf_new_extra_cppflags=
-for cf_add_cflags in `$NCURSES_CONFIG --cflags`
+for cf_add_cflags in $cf_add_cflags
do
case "$cf_fix_cppflags" in
(no)
@@ -5087,6 +5376,8 @@ if test -n "$cf_new_extra_cppflags" ; then
fi
+done
+
cf_add_libs="$LIBS"
# reverse order
cf_add_0lib=
@@ -5105,7 +5396,7 @@ LIBS="$cf_add_libs"
# even with config script, some packages use no-override for curses.h
-echo "$as_me:5108: checking if we have identified curses headers" >&5
+echo "$as_me:5399: checking if we have identified curses headers" >&5
echo $ECHO_N "checking if we have identified curses headers... $ECHO_C" >&6
if test "${cf_cv_ncurses_header+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -5117,28 +5408,28 @@ for cf_header in \
curses.h ncurses/curses.h
do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 5120 "configure"
+#line 5411 "configure"
#include "confdefs.h"
#include <${cf_header}>
int
main (void)
{
-initscr(); tgoto("?", 0,0)
+initscr(); endwin()
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:5132: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:5423: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:5135: \$? = $ac_status" >&5
+ echo "$as_me:5426: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:5138: \"$ac_try\"") >&5
+ { (eval echo "$as_me:5429: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:5141: \$? = $ac_status" >&5
+ echo "$as_me:5432: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_ncurses_header=$cf_header; break
else
@@ -5149,11 +5440,11 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
done
fi
-echo "$as_me:5152: result: $cf_cv_ncurses_header" >&5
+echo "$as_me:5443: result: $cf_cv_ncurses_header" >&5
echo "${ECHO_T}$cf_cv_ncurses_header" >&6
if test "$cf_cv_ncurses_header" = none ; then
- { { echo "$as_me:5156: error: No curses header-files found" >&5
+ { { echo "$as_me:5447: error: No curses header-files found" >&5
echo "$as_me: error: No curses header-files found" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -5163,23 +5454,23 @@ fi
for ac_header in $cf_cv_ncurses_header
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:5166: checking for $ac_header" >&5
+echo "$as_me:5457: checking for $ac_header" >&5
echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 5172 "configure"
+#line 5463 "configure"
#include "confdefs.h"
#include <$ac_header>
_ACEOF
-if { (eval echo "$as_me:5176: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:5467: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:5182: \$? = $ac_status" >&5
+ echo "$as_me:5473: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -5198,7 +5489,7 @@ else
fi
rm -f conftest.err "conftest.$ac_ext"
fi
-echo "$as_me:5201: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
+echo "$as_me:5492: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
echo "${ECHO_T}`eval echo '${'"$as_ac_Header"'}'`" >&6
if test "`eval echo '${'"$as_ac_Header"'}'`" = yes; then
cat >>confdefs.h <<EOF
@@ -5254,7 +5545,7 @@ if test -n "$cf_cv_curses_dir/include/$cf_ncuhdr_root" ; then
CPPFLAGS="${CPPFLAGS}-I$cf_add_incdir"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 5257 "configure"
+#line 5548 "configure"
#include "confdefs.h"
#include <stdio.h>
int
@@ -5266,16 +5557,16 @@ printf("Hello")
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:5269: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:5560: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:5272: \$? = $ac_status" >&5
+ echo "$as_me:5563: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:5275: \"$ac_try\"") >&5
+ { (eval echo "$as_me:5566: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:5278: \$? = $ac_status" >&5
+ echo "$as_me:5569: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
:
else
@@ -5292,7 +5583,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
if test "$cf_have_incdir" = no ; then
test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-echo "${as_me:-configure}:5295: testing adding $cf_add_incdir to include-path ..." 1>&5
+echo "${as_me:-configure}:5586: testing adding $cf_add_incdir to include-path ..." 1>&5
CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
@@ -5311,7 +5602,7 @@ fi
}
-echo "$as_me:5314: checking for $cf_ncuhdr_root header in include-path" >&5
+echo "$as_me:5605: checking for $cf_ncuhdr_root header in include-path" >&5
echo $ECHO_N "checking for $cf_ncuhdr_root header in include-path... $ECHO_C" >&6
if test "${cf_cv_ncurses_h+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -5323,7 +5614,7 @@ else
do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 5326 "configure"
+#line 5617 "configure"
#include "confdefs.h"
#include <$cf_header>
@@ -5338,7 +5629,7 @@ printf("%s\\n", NCURSES_VERSION);
#ifdef __NCURSES_H
printf("old\\n");
#else
- make an error
+ #error __NCURSES_H is not defined
#endif
#endif
@@ -5347,16 +5638,16 @@ printf("old\\n");
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:5350: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:5641: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:5353: \$? = $ac_status" >&5
+ echo "$as_me:5644: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:5356: \"$ac_try\"") >&5
+ { (eval echo "$as_me:5647: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:5359: \$? = $ac_status" >&5
+ echo "$as_me:5650: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_ncurses_h=$cf_header
@@ -5371,14 +5662,14 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
done
fi
-echo "$as_me:5374: result: $cf_cv_ncurses_h" >&5
+echo "$as_me:5665: result: $cf_cv_ncurses_h" >&5
echo "${ECHO_T}$cf_cv_ncurses_h" >&6
if test "$cf_cv_ncurses_h" != no ; then
cf_cv_ncurses_header=$cf_cv_ncurses_h
else
-echo "$as_me:5381: checking for $cf_ncuhdr_root include-path" >&5
+echo "$as_me:5672: checking for $cf_ncuhdr_root include-path" >&5
echo $ECHO_N "checking for $cf_ncuhdr_root include-path... $ECHO_C" >&6
if test "${cf_cv_ncurses_h2+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -5499,7 +5790,7 @@ if test -n "$cf_incdir" ; then
CPPFLAGS="${CPPFLAGS}-I$cf_add_incdir"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 5502 "configure"
+#line 5793 "configure"
#include "confdefs.h"
#include <stdio.h>
int
@@ -5511,16 +5802,16 @@ printf("Hello")
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:5514: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:5805: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:5517: \$? = $ac_status" >&5
+ echo "$as_me:5808: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:5520: \"$ac_try\"") >&5
+ { (eval echo "$as_me:5811: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:5523: \$? = $ac_status" >&5
+ echo "$as_me:5814: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
:
else
@@ -5537,7 +5828,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
if test "$cf_have_incdir" = no ; then
test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-echo "${as_me:-configure}:5540: testing adding $cf_add_incdir to include-path ..." 1>&5
+echo "${as_me:-configure}:5831: testing adding $cf_add_incdir to include-path ..." 1>&5
CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
@@ -5560,7 +5851,7 @@ fi
do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 5563 "configure"
+#line 5854 "configure"
#include "confdefs.h"
#include <$cf_header>
@@ -5575,7 +5866,7 @@ printf("%s\\n", NCURSES_VERSION);
#ifdef __NCURSES_H
printf("old\\n");
#else
- make an error
+ #error __NCURSES_H is not defined
#endif
#endif
@@ -5584,16 +5875,16 @@ printf("old\\n");
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:5587: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:5878: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:5590: \$? = $ac_status" >&5
+ echo "$as_me:5881: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:5593: \"$ac_try\"") >&5
+ { (eval echo "$as_me:5884: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:5596: \$? = $ac_status" >&5
+ echo "$as_me:5887: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_ncurses_h2=$cf_header
@@ -5614,12 +5905,12 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
CPPFLAGS="$cf_save2_CPPFLAGS"
test "$cf_cv_ncurses_h2" != no && break
done
- test "$cf_cv_ncurses_h2" = no && { { echo "$as_me:5617: error: not found" >&5
+ test "$cf_cv_ncurses_h2" = no && { { echo "$as_me:5908: error: not found" >&5
echo "$as_me: error: not found" >&2;}
{ (exit 1); exit 1; }; }
fi
-echo "$as_me:5622: result: $cf_cv_ncurses_h2" >&5
+echo "$as_me:5913: result: $cf_cv_ncurses_h2" >&5
echo "${ECHO_T}$cf_cv_ncurses_h2" >&6
cf_1st_incdir=`echo "$cf_cv_ncurses_h2" | sed -e 's%/[^/]*$%%'`
@@ -5655,7 +5946,7 @@ if test -n "$cf_1st_incdir" ; then
CPPFLAGS="${CPPFLAGS}-I$cf_add_incdir"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 5658 "configure"
+#line 5949 "configure"
#include "confdefs.h"
#include <stdio.h>
int
@@ -5667,16 +5958,16 @@ printf("Hello")
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:5670: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:5961: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:5673: \$? = $ac_status" >&5
+ echo "$as_me:5964: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:5676: \"$ac_try\"") >&5
+ { (eval echo "$as_me:5967: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:5679: \$? = $ac_status" >&5
+ echo "$as_me:5970: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
:
else
@@ -5693,7 +5984,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
if test "$cf_have_incdir" = no ; then
test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-echo "${as_me:-configure}:5696: testing adding $cf_add_incdir to include-path ..." 1>&5
+echo "${as_me:-configure}:5987: testing adding $cf_add_incdir to include-path ..." 1>&5
CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
@@ -5741,7 +6032,7 @@ EOF
;;
esac
-echo "$as_me:5744: checking for terminfo header" >&5
+echo "$as_me:6035: checking for terminfo header" >&5
echo $ECHO_N "checking for terminfo header... $ECHO_C" >&6
if test "${cf_cv_term_header+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -5759,7 +6050,7 @@ esac
for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 5762 "configure"
+#line 6053 "configure"
#include "confdefs.h"
#include <stdio.h>
#include <${cf_cv_ncurses_header:-curses.h}>
@@ -5774,16 +6065,16 @@ int x = auto_left_margin; (void)x
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:5777: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:6068: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:5780: \$? = $ac_status" >&5
+ echo "$as_me:6071: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:5783: \"$ac_try\"") >&5
+ { (eval echo "$as_me:6074: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:5786: \$? = $ac_status" >&5
+ echo "$as_me:6077: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_term_header="$cf_test"
@@ -5799,7 +6090,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
done
fi
-echo "$as_me:5802: result: $cf_cv_term_header" >&5
+echo "$as_me:6093: result: $cf_cv_term_header" >&5
echo "${ECHO_T}$cf_cv_term_header" >&6
# Set definitions to allow ifdef'ing to accommodate subdirectories
@@ -5837,7 +6128,7 @@ cat >>confdefs.h <<\EOF
#define NCURSES 1
EOF
-echo "$as_me:5840: checking for ncurses version" >&5
+echo "$as_me:6131: checking for ncurses version" >&5
echo $ECHO_N "checking for ncurses version... $ECHO_C" >&6
if test "${cf_cv_ncurses_version+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -5863,10 +6154,10 @@ Autoconf "old"
#endif
EOF
cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
- { (eval echo "$as_me:5866: \"$cf_try\"") >&5
+ { (eval echo "$as_me:6157: \"$cf_try\"") >&5
(eval $cf_try) 2>&5
ac_status=$?
- echo "$as_me:5869: \$? = $ac_status" >&5
+ echo "$as_me:6160: \$? = $ac_status" >&5
(exit "$ac_status"); }
if test -f conftest.out ; then
cf_out=`sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%' conftest.out`
@@ -5876,11 +6167,13 @@ EOF
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 5879 "configure"
+#line 6170 "configure"
#include "confdefs.h"
+$ac_includes_default
+
#include <${cf_cv_ncurses_header:-curses.h}>
-#include <stdio.h>
+
int main(void)
{
FILE *fp = fopen("$cf_tempfile", "w");
@@ -5894,22 +6187,22 @@ int main(void)
# ifdef __NCURSES_H
fprintf(fp, "old\\n");
# else
- make an error
+ #error expected ncurses header to define __NCURSES_H
# endif
#endif
${cf_cv_main_return:-return}(0);
}
_ACEOF
rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:5904: \"$ac_link\"") >&5
+if { (eval echo "$as_me:6197: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:5907: \$? = $ac_status" >&5
+ echo "$as_me:6200: \$? = $ac_status" >&5
(exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:5909: \"$ac_try\"") >&5
+ { (eval echo "$as_me:6202: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:5912: \$? = $ac_status" >&5
+ echo "$as_me:6205: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_ncurses_version=`cat $cf_tempfile`
@@ -5923,7 +6216,7 @@ fi
rm -f "$cf_tempfile"
fi
-echo "$as_me:5926: result: $cf_cv_ncurses_version" >&5
+echo "$as_me:6219: result: $cf_cv_ncurses_version" >&5
echo "${ECHO_T}$cf_cv_ncurses_version" >&6
test "$cf_cv_ncurses_version" = no ||
cat >>confdefs.h <<\EOF
@@ -5936,7 +6229,7 @@ cf_nculib_root=ncurses
# to link gpm.
cf_ncurses_LIBS=""
cf_ncurses_SAVE="$LIBS"
-echo "$as_me:5939: checking for Gpm_Open in -lgpm" >&5
+echo "$as_me:6232: checking for Gpm_Open in -lgpm" >&5
echo $ECHO_N "checking for Gpm_Open in -lgpm... $ECHO_C" >&6
if test "${ac_cv_lib_gpm_Gpm_Open+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -5944,7 +6237,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lgpm $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 5947 "configure"
+#line 6240 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -5953,7 +6246,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char Gpm_Open ();
+char Gpm_Open (void);
int
main (void)
{
@@ -5963,16 +6256,16 @@ Gpm_Open ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:5966: \"$ac_link\"") >&5
+if { (eval echo "$as_me:6259: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:5969: \$? = $ac_status" >&5
+ echo "$as_me:6262: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:5972: \"$ac_try\"") >&5
+ { (eval echo "$as_me:6265: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:5975: \$? = $ac_status" >&5
+ echo "$as_me:6268: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_gpm_Gpm_Open=yes
else
@@ -5983,10 +6276,10 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:5986: result: $ac_cv_lib_gpm_Gpm_Open" >&5
+echo "$as_me:6279: result: $ac_cv_lib_gpm_Gpm_Open" >&5
echo "${ECHO_T}$ac_cv_lib_gpm_Gpm_Open" >&6
if test "$ac_cv_lib_gpm_Gpm_Open" = yes; then
- echo "$as_me:5989: checking for initscr in -lgpm" >&5
+ echo "$as_me:6282: checking for initscr in -lgpm" >&5
echo $ECHO_N "checking for initscr in -lgpm... $ECHO_C" >&6
if test "${ac_cv_lib_gpm_initscr+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -5994,7 +6287,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lgpm $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 5997 "configure"
+#line 6290 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -6003,7 +6296,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char initscr ();
+char initscr (void);
int
main (void)
{
@@ -6013,16 +6306,16 @@ initscr ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:6016: \"$ac_link\"") >&5
+if { (eval echo "$as_me:6309: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:6019: \$? = $ac_status" >&5
+ echo "$as_me:6312: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:6022: \"$ac_try\"") >&5
+ { (eval echo "$as_me:6315: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:6025: \$? = $ac_status" >&5
+ echo "$as_me:6318: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_gpm_initscr=yes
else
@@ -6033,7 +6326,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:6036: result: $ac_cv_lib_gpm_initscr" >&5
+echo "$as_me:6329: result: $ac_cv_lib_gpm_initscr" >&5
echo "${ECHO_T}$ac_cv_lib_gpm_initscr" >&6
if test "$ac_cv_lib_gpm_initscr" = yes; then
LIBS="$cf_ncurses_SAVE"
@@ -6046,9 +6339,9 @@ fi
case "$host_os" in
(freebsd*)
# This is only necessary if you are linking against an obsolete
- # version of ncurses (but it should do no harm, since it's static).
+ # version of ncurses (but it should do no harm, since it is static).
if test "$cf_nculib_root" = ncurses ; then
- echo "$as_me:6051: checking for tgoto in -lmytinfo" >&5
+ echo "$as_me:6344: checking for tgoto in -lmytinfo" >&5
echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6
if test "${ac_cv_lib_mytinfo_tgoto+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -6056,7 +6349,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lmytinfo $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 6059 "configure"
+#line 6352 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -6065,7 +6358,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char tgoto ();
+char tgoto (void);
int
main (void)
{
@@ -6075,16 +6368,16 @@ tgoto ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:6078: \"$ac_link\"") >&5
+if { (eval echo "$as_me:6371: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:6081: \$? = $ac_status" >&5
+ echo "$as_me:6374: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:6084: \"$ac_try\"") >&5
+ { (eval echo "$as_me:6377: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:6087: \$? = $ac_status" >&5
+ echo "$as_me:6380: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_mytinfo_tgoto=yes
else
@@ -6095,7 +6388,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:6098: result: $ac_cv_lib_mytinfo_tgoto" >&5
+echo "$as_me:6391: result: $ac_cv_lib_mytinfo_tgoto" >&5
echo "${ECHO_T}$ac_cv_lib_mytinfo_tgoto" >&6
if test "$ac_cv_lib_mytinfo_tgoto" = yes; then
cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"
@@ -6144,13 +6437,13 @@ else
eval 'cf_cv_have_lib_'"$cf_nculib_root"'=no'
cf_libdir=""
- echo "$as_me:6147: checking for initscr" >&5
+ echo "$as_me:6440: checking for initscr" >&5
echo $ECHO_N "checking for initscr... $ECHO_C" >&6
if test "${ac_cv_func_initscr+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 6153 "configure"
+#line 6446 "configure"
#include "confdefs.h"
#define initscr autoconf_temporary
#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */
@@ -6181,16 +6474,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:6184: \"$ac_link\"") >&5
+if { (eval echo "$as_me:6477: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:6187: \$? = $ac_status" >&5
+ echo "$as_me:6480: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:6190: \"$ac_try\"") >&5
+ { (eval echo "$as_me:6483: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:6193: \$? = $ac_status" >&5
+ echo "$as_me:6486: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_func_initscr=yes
else
@@ -6200,18 +6493,18 @@ ac_cv_func_initscr=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:6203: result: $ac_cv_func_initscr" >&5
+echo "$as_me:6496: result: $ac_cv_func_initscr" >&5
echo "${ECHO_T}$ac_cv_func_initscr" >&6
if test "$ac_cv_func_initscr" = yes; then
eval 'cf_cv_have_lib_'"$cf_nculib_root"'=yes'
else
cf_save_LIBS="$LIBS"
- echo "$as_me:6210: checking for initscr in -l$cf_nculib_root" >&5
+ echo "$as_me:6503: checking for initscr in -l$cf_nculib_root" >&5
echo $ECHO_N "checking for initscr in -l$cf_nculib_root... $ECHO_C" >&6
LIBS="-l$cf_nculib_root $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 6214 "configure"
+#line 6507 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
int
@@ -6223,25 +6516,25 @@ initscr()
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:6226: \"$ac_link\"") >&5
+if { (eval echo "$as_me:6519: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:6229: \$? = $ac_status" >&5
+ echo "$as_me:6522: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:6232: \"$ac_try\"") >&5
+ { (eval echo "$as_me:6525: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:6235: \$? = $ac_status" >&5
+ echo "$as_me:6528: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
- echo "$as_me:6237: result: yes" >&5
+ echo "$as_me:6530: result: yes" >&5
echo "${ECHO_T}yes" >&6
eval 'cf_cv_have_lib_'"$cf_nculib_root"'=yes'
else
echo "$as_me: failed program was:" >&5
cat "conftest.$ac_ext" >&5
-echo "$as_me:6244: result: no" >&5
+echo "$as_me:6537: result: no" >&5
echo "${ECHO_T}no" >&6
cf_search=
@@ -6309,11 +6602,11 @@ cf_search="$cf_library_path_list $cf_search"
for cf_libdir in $cf_search
do
- echo "$as_me:6312: checking for -l$cf_nculib_root in $cf_libdir" >&5
+ echo "$as_me:6605: checking for -l$cf_nculib_root in $cf_libdir" >&5
echo $ECHO_N "checking for -l$cf_nculib_root in $cf_libdir... $ECHO_C" >&6
LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 6316 "configure"
+#line 6609 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
int
@@ -6325,25 +6618,25 @@ initscr()
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:6328: \"$ac_link\"") >&5
+if { (eval echo "$as_me:6621: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:6331: \$? = $ac_status" >&5
+ echo "$as_me:6624: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:6334: \"$ac_try\"") >&5
+ { (eval echo "$as_me:6627: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:6337: \$? = $ac_status" >&5
+ echo "$as_me:6630: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
- echo "$as_me:6339: result: yes" >&5
+ echo "$as_me:6632: result: yes" >&5
echo "${ECHO_T}yes" >&6
eval 'cf_cv_have_lib_'"$cf_nculib_root"'=yes'
break
else
echo "$as_me: failed program was:" >&5
cat "conftest.$ac_ext" >&5
-echo "$as_me:6346: result: no" >&5
+echo "$as_me:6639: result: no" >&5
echo "${ECHO_T}no" >&6
LIBS="$cf_save_LIBS"
fi
@@ -6358,7 +6651,7 @@ fi
eval 'cf_found_library="$cf_cv_have_lib_'"$cf_nculib_root"\"
if test "$cf_found_library" = no ; then
- { { echo "$as_me:6361: error: Cannot link $cf_nculib_root library" >&5
+ { { echo "$as_me:6654: error: Cannot link $cf_nculib_root library" >&5
echo "$as_me: error: Cannot link $cf_nculib_root library" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -6366,7 +6659,7 @@ fi
fi
if test -n "$cf_ncurses_LIBS" ; then
- echo "$as_me:6369: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
+ echo "$as_me:6662: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
echo $ECHO_N "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS... $ECHO_C" >&6
cf_ncurses_SAVE="$LIBS"
for p in $cf_ncurses_LIBS ; do
@@ -6376,7 +6669,7 @@ echo $ECHO_N "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS..
fi
done
cat >"conftest.$ac_ext" <<_ACEOF
-#line 6379 "configure"
+#line 6672 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
int
@@ -6388,23 +6681,23 @@ initscr(); mousemask(0,0); tigetstr((char *)0);
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:6391: \"$ac_link\"") >&5
+if { (eval echo "$as_me:6684: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:6394: \$? = $ac_status" >&5
+ echo "$as_me:6687: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:6397: \"$ac_try\"") >&5
+ { (eval echo "$as_me:6690: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:6400: \$? = $ac_status" >&5
+ echo "$as_me:6693: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
- echo "$as_me:6402: result: yes" >&5
+ echo "$as_me:6695: result: yes" >&5
echo "${ECHO_T}yes" >&6
else
echo "$as_me: failed program was:" >&5
cat "conftest.$ac_ext" >&5
-echo "$as_me:6407: result: no" >&5
+echo "$as_me:6700: result: no" >&5
echo "${ECHO_T}no" >&6
LIBS="$cf_ncurses_SAVE"
fi
@@ -6422,7 +6715,7 @@ else
NCURSES_CONFIG=none
fi
-echo "$as_me:6425: checking if you want wide-character code" >&5
+echo "$as_me:6718: checking if you want wide-character code" >&5
echo $ECHO_N "checking if you want wide-character code... $ECHO_C" >&6
# Check whether --enable-widec or --disable-widec was given.
@@ -6432,11 +6725,59 @@ if test "${enable_widec+set}" = set; then
else
with_widec=no
fi;
-echo "$as_me:6435: result: $with_widec" >&5
+echo "$as_me:6728: result: $with_widec" >&5
echo "${ECHO_T}$with_widec" >&6
if test "$with_widec" = yes ; then
-echo "$as_me:6439: checking for multibyte character support" >&5
+for ac_header in wchar.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:6735: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >"conftest.$ac_ext" <<_ACEOF
+#line 6741 "configure"
+#include "confdefs.h"
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:6745: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+ (eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
+ ac_status=$?
+ $EGREP -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:6751: \$? = $ac_status" >&5
+ (exit "$ac_status"); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ eval "$as_ac_Header=yes"
+else
+ echo "$as_me: failed program was:" >&5
+ cat "conftest.$ac_ext" >&5
+ eval "$as_ac_Header=no"
+fi
+rm -f conftest.err "conftest.$ac_ext"
+fi
+echo "$as_me:6770: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
+echo "${ECHO_T}`eval echo '${'"$as_ac_Header"'}'`" >&6
+if test "`eval echo '${'"$as_ac_Header"'}'`" = yes; then
+ cat >>confdefs.h <<EOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+EOF
+
+fi
+done
+
+echo "$as_me:6780: checking for multibyte character support" >&5
echo $ECHO_N "checking for multibyte character support... $ECHO_C" >&6
if test "${cf_cv_utf8_lib+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -6444,10 +6785,14 @@ else
cf_save_LIBS="$LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 6447 "configure"
+#line 6788 "configure"
#include "confdefs.h"
-#include <stdlib.h>
+$ac_includes_default
+#ifdef HAVE_WCHAR_H
+#include <wchar.h>
+#endif
+
int
main (void)
{
@@ -6457,16 +6802,16 @@ putwc(0,0);
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:6460: \"$ac_link\"") >&5
+if { (eval echo "$as_me:6805: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:6463: \$? = $ac_status" >&5
+ echo "$as_me:6808: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:6466: \"$ac_try\"") >&5
+ { (eval echo "$as_me:6811: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:6469: \$? = $ac_status" >&5
+ echo "$as_me:6814: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_utf8_lib=yes
else
@@ -6478,12 +6823,12 @@ cat "conftest.$ac_ext" >&5
cf_cv_header_path_utf8=
cf_cv_library_path_utf8=
-echo "${as_me:-configure}:6481: testing Starting FIND_LINKAGE(utf8,) ..." 1>&5
+echo "${as_me:-configure}:6826: testing Starting FIND_LINKAGE(utf8,) ..." 1>&5
cf_save_LIBS="$LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 6486 "configure"
+#line 6831 "configure"
#include "confdefs.h"
#include <libutf8.h>
@@ -6496,16 +6841,16 @@ putwc(0,0);
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:6499: \"$ac_link\"") >&5
+if { (eval echo "$as_me:6844: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:6502: \$? = $ac_status" >&5
+ echo "$as_me:6847: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:6505: \"$ac_try\"") >&5
+ { (eval echo "$as_me:6850: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:6508: \$? = $ac_status" >&5
+ echo "$as_me:6853: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_find_linkage_utf8=yes
@@ -6519,7 +6864,7 @@ cat "conftest.$ac_ext" >&5
LIBS="-lutf8 $cf_save_LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 6522 "configure"
+#line 6867 "configure"
#include "confdefs.h"
#include <libutf8.h>
@@ -6532,16 +6877,16 @@ putwc(0,0);
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:6535: \"$ac_link\"") >&5
+if { (eval echo "$as_me:6880: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:6538: \$? = $ac_status" >&5
+ echo "$as_me:6883: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:6541: \"$ac_try\"") >&5
+ { (eval echo "$as_me:6886: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:6544: \$? = $ac_status" >&5
+ echo "$as_me:6889: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_find_linkage_utf8=yes
@@ -6558,9 +6903,9 @@ cat "conftest.$ac_ext" >&5
test -n "$verbose" && echo " find linkage for utf8 library" 1>&6
-echo "${as_me:-configure}:6561: testing find linkage for utf8 library ..." 1>&5
+echo "${as_me:-configure}:6906: testing find linkage for utf8 library ..." 1>&5
-echo "${as_me:-configure}:6563: testing Searching for headers in FIND_LINKAGE(utf8,) ..." 1>&5
+echo "${as_me:-configure}:6908: testing Searching for headers in FIND_LINKAGE(utf8,) ..." 1>&5
cf_save_CPPFLAGS="$CPPFLAGS"
cf_test_CPPFLAGS="$CPPFLAGS"
@@ -6651,7 +6996,7 @@ cf_search="$cf_search $cf_header_path_list"
if test -d "$cf_cv_header_path_utf8" ; then
test -n "$verbose" && echo " ... testing $cf_cv_header_path_utf8" 1>&6
-echo "${as_me:-configure}:6654: testing ... testing $cf_cv_header_path_utf8 ..." 1>&5
+echo "${as_me:-configure}:6999: testing ... testing $cf_cv_header_path_utf8 ..." 1>&5
CPPFLAGS="$cf_save_CPPFLAGS"
@@ -6659,7 +7004,7 @@ echo "${as_me:-configure}:6654: testing ... testing $cf_cv_header_path_utf8 ..."
CPPFLAGS="${CPPFLAGS}-I$cf_cv_header_path_utf8"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 6662 "configure"
+#line 7007 "configure"
#include "confdefs.h"
#include <libutf8.h>
@@ -6672,21 +7017,21 @@ putwc(0,0);
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:6675: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:7020: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:6678: \$? = $ac_status" >&5
+ echo "$as_me:7023: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:6681: \"$ac_try\"") >&5
+ { (eval echo "$as_me:7026: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:6684: \$? = $ac_status" >&5
+ echo "$as_me:7029: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
test -n "$verbose" && echo " ... found utf8 headers in $cf_cv_header_path_utf8" 1>&6
-echo "${as_me:-configure}:6689: testing ... found utf8 headers in $cf_cv_header_path_utf8 ..." 1>&5
+echo "${as_me:-configure}:7034: testing ... found utf8 headers in $cf_cv_header_path_utf8 ..." 1>&5
cf_cv_find_linkage_utf8=maybe
cf_test_CPPFLAGS="$CPPFLAGS"
@@ -6704,7 +7049,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
if test "$cf_cv_find_linkage_utf8" = maybe ; then
-echo "${as_me:-configure}:6707: testing Searching for utf8 library in FIND_LINKAGE(utf8,) ..." 1>&5
+echo "${as_me:-configure}:7052: testing Searching for utf8 library in FIND_LINKAGE(utf8,) ..." 1>&5
cf_save_LIBS="$LIBS"
cf_save_LDFLAGS="$LDFLAGS"
@@ -6779,13 +7124,13 @@ cf_search="$cf_library_path_list $cf_search"
if test -d "$cf_cv_library_path_utf8" ; then
test -n "$verbose" && echo " ... testing $cf_cv_library_path_utf8" 1>&6
-echo "${as_me:-configure}:6782: testing ... testing $cf_cv_library_path_utf8 ..." 1>&5
+echo "${as_me:-configure}:7127: testing ... testing $cf_cv_library_path_utf8 ..." 1>&5
CPPFLAGS="$cf_test_CPPFLAGS"
LIBS="-lutf8 $cf_save_LIBS"
LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_utf8"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 6788 "configure"
+#line 7133 "configure"
#include "confdefs.h"
#include <libutf8.h>
@@ -6798,21 +7143,21 @@ putwc(0,0);
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:6801: \"$ac_link\"") >&5
+if { (eval echo "$as_me:7146: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:6804: \$? = $ac_status" >&5
+ echo "$as_me:7149: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:6807: \"$ac_try\"") >&5
+ { (eval echo "$as_me:7152: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:6810: \$? = $ac_status" >&5
+ echo "$as_me:7155: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
test -n "$verbose" && echo " ... found utf8 library in $cf_cv_library_path_utf8" 1>&6
-echo "${as_me:-configure}:6815: testing ... found utf8 library in $cf_cv_library_path_utf8 ..." 1>&5
+echo "${as_me:-configure}:7160: testing ... found utf8 library in $cf_cv_library_path_utf8 ..." 1>&5
cf_cv_find_linkage_utf8=yes
cf_cv_library_file_utf8="-lutf8"
@@ -6854,7 +7199,7 @@ fi
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:6857: result: $cf_cv_utf8_lib" >&5
+echo "$as_me:7202: result: $cf_cv_utf8_lib" >&5
echo "${ECHO_T}$cf_cv_utf8_lib" >&6
# HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
@@ -6892,7 +7237,7 @@ if test -n "$cf_cv_header_path_utf8" ; then
CPPFLAGS="${CPPFLAGS}-I$cf_add_incdir"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 6895 "configure"
+#line 7240 "configure"
#include "confdefs.h"
#include <stdio.h>
int
@@ -6904,16 +7249,16 @@ printf("Hello")
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:6907: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:7252: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:6910: \$? = $ac_status" >&5
+ echo "$as_me:7255: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:6913: \"$ac_try\"") >&5
+ { (eval echo "$as_me:7258: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:6916: \$? = $ac_status" >&5
+ echo "$as_me:7261: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
:
else
@@ -6930,7 +7275,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
if test "$cf_have_incdir" = no ; then
test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-echo "${as_me:-configure}:6933: testing adding $cf_add_incdir to include-path ..." 1>&5
+echo "${as_me:-configure}:7278: testing adding $cf_add_incdir to include-path ..." 1>&5
CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
@@ -6966,7 +7311,7 @@ if test -n "$cf_cv_library_path_utf8" ; then
if test "$cf_have_libdir" = no ; then
test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6
-echo "${as_me:-configure}:6969: testing adding $cf_add_libdir to library-path ..." 1>&5
+echo "${as_me:-configure}:7314: testing adding $cf_add_libdir to library-path ..." 1>&5
LDFLAGS="-L$cf_add_libdir $LDFLAGS"
fi
@@ -6996,13 +7341,13 @@ cf_ncuconfig_root=ncursesw
cf_have_ncuconfig=no
if test "x${PKG_CONFIG:=none}" != xnone; then
- echo "$as_me:6999: checking pkg-config for $cf_ncuconfig_root" >&5
+ echo "$as_me:7344: checking pkg-config for $cf_ncuconfig_root" >&5
echo $ECHO_N "checking pkg-config for $cf_ncuconfig_root... $ECHO_C" >&6
if "$PKG_CONFIG" --exists $cf_ncuconfig_root ; then
- echo "$as_me:7002: result: yes" >&5
+ echo "$as_me:7347: result: yes" >&5
echo "${ECHO_T}yes" >&6
- echo "$as_me:7005: checking if the $cf_ncuconfig_root package files work" >&5
+ echo "$as_me:7350: checking if the $cf_ncuconfig_root package files work" >&5
echo $ECHO_N "checking if the $cf_ncuconfig_root package files work... $ECHO_C" >&6
cf_have_ncuconfig=unknown
@@ -7135,7 +7480,7 @@ done
LIBS="$cf_add_libs"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 7138 "configure"
+#line 7483 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
int
@@ -7147,37 +7492,37 @@ initscr(); mousemask(0,0); tigetstr((char *)0);
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:7150: \"$ac_link\"") >&5
+if { (eval echo "$as_me:7495: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:7153: \$? = $ac_status" >&5
+ echo "$as_me:7498: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:7156: \"$ac_try\"") >&5
+ { (eval echo "$as_me:7501: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:7159: \$? = $ac_status" >&5
+ echo "$as_me:7504: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
if test "$cross_compiling" = yes; then
cf_test_ncuconfig=maybe
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 7165 "configure"
+#line 7510 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
int main(void)
- { char *xx = curses_version(); return (xx == 0); }
+ { const char *xx = curses_version(); return (xx == 0); }
_ACEOF
rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:7172: \"$ac_link\"") >&5
+if { (eval echo "$as_me:7517: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:7175: \$? = $ac_status" >&5
+ echo "$as_me:7520: \$? = $ac_status" >&5
(exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:7177: \"$ac_try\"") >&5
+ { (eval echo "$as_me:7522: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:7180: \$? = $ac_status" >&5
+ echo "$as_me:7525: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_test_ncuconfig=yes
else
@@ -7208,12 +7553,38 @@ rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
;;
esac
+for cf_add_cflags in $cf_pkg_cflags
+do
+ case "x$cf_add_cflags" in
+ (x-[DU]*)
+
+cf_tmp_cflag=`echo "x$cf_add_cflags" | sed -e 's/^.//' -e 's/=.*//'`
+while true
+do
+ cf_old_cflag=`echo "x$CFLAGS" | sed -e 's/^.//' -e 's/[ ][ ]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[^ ][^ ]*\\)\?%%" -e 's/^[ ]*//' -e 's%[ ][ ]*-D% -D%g' -e 's%[ ][ ]*-I% -I%g'`
+ test "$CFLAGS" != "$cf_old_cflag" || break
+
+ CFLAGS="$cf_old_cflag"
+done
+
+cf_tmp_cflag=`echo "x$cf_add_cflags" | sed -e 's/^.//' -e 's/=.*//'`
+while true
+do
+ cf_old_cflag=`echo "x$CPPFLAGS" | sed -e 's/^.//' -e 's/[ ][ ]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[^ ][^ ]*\\)\?%%" -e 's/^[ ]*//' -e 's%[ ][ ]*-D% -D%g' -e 's%[ ][ ]*-I% -I%g'`
+ test "$CPPFLAGS" != "$cf_old_cflag" || break
+
+ CPPFLAGS="$cf_old_cflag"
+done
+
+ ;;
+ esac
+
cf_fix_cppflags=no
cf_new_cflags=
cf_new_cppflags=
cf_new_extra_cppflags=
-for cf_add_cflags in $cf_pkg_cflags
+for cf_add_cflags in $cf_add_cflags
do
case "$cf_fix_cppflags" in
(no)
@@ -7306,6 +7677,8 @@ if test -n "$cf_new_extra_cppflags" ; then
fi
+done
+
cf_add_libs="$LIBS"
# reverse order
cf_add_0lib=
@@ -7323,7 +7696,7 @@ done
LIBS="$cf_add_libs"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 7326 "configure"
+#line 7699 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
int
@@ -7335,37 +7708,37 @@ initscr(); mousemask(0,0); tigetstr((char *)0);
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:7338: \"$ac_link\"") >&5
+if { (eval echo "$as_me:7711: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:7341: \$? = $ac_status" >&5
+ echo "$as_me:7714: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:7344: \"$ac_try\"") >&5
+ { (eval echo "$as_me:7717: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:7347: \$? = $ac_status" >&5
+ echo "$as_me:7720: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
if test "$cross_compiling" = yes; then
cf_have_ncuconfig=maybe
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 7353 "configure"
+#line 7726 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
int main(void)
- { char *xx = curses_version(); return (xx == 0); }
+ { const char *xx = curses_version(); return (xx == 0); }
_ACEOF
rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:7360: \"$ac_link\"") >&5
+if { (eval echo "$as_me:7733: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:7363: \$? = $ac_status" >&5
+ echo "$as_me:7736: \$? = $ac_status" >&5
(exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:7365: \"$ac_try\"") >&5
+ { (eval echo "$as_me:7738: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:7368: \$? = $ac_status" >&5
+ echo "$as_me:7741: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_have_ncuconfig=yes
else
@@ -7382,7 +7755,7 @@ cat "conftest.$ac_ext" >&5
cf_have_ncuconfig=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
- echo "$as_me:7385: result: $cf_have_ncuconfig" >&5
+ echo "$as_me:7758: result: $cf_have_ncuconfig" >&5
echo "${ECHO_T}$cf_have_ncuconfig" >&6
test "$cf_have_ncuconfig" = maybe && cf_have_ncuconfig=yes
if test "$cf_have_ncuconfig" != "yes"
@@ -7398,7 +7771,7 @@ EOF
NCURSES_CONFIG_PKG=$cf_ncuconfig_root
-echo "$as_me:7401: checking for terminfo header" >&5
+echo "$as_me:7774: checking for terminfo header" >&5
echo $ECHO_N "checking for terminfo header... $ECHO_C" >&6
if test "${cf_cv_term_header+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -7416,7 +7789,7 @@ esac
for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 7419 "configure"
+#line 7792 "configure"
#include "confdefs.h"
#include <stdio.h>
#include <${cf_cv_ncurses_header:-curses.h}>
@@ -7431,16 +7804,16 @@ int x = auto_left_margin; (void)x
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:7434: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:7807: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:7437: \$? = $ac_status" >&5
+ echo "$as_me:7810: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:7440: \"$ac_try\"") >&5
+ { (eval echo "$as_me:7813: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:7443: \$? = $ac_status" >&5
+ echo "$as_me:7816: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_term_header="$cf_test"
@@ -7456,7 +7829,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
done
fi
-echo "$as_me:7459: result: $cf_cv_term_header" >&5
+echo "$as_me:7832: result: $cf_cv_term_header" >&5
echo "${ECHO_T}$cf_cv_term_header" >&6
# Set definitions to allow ifdef'ing to accommodate subdirectories
@@ -7491,7 +7864,7 @@ esac
fi
else
- echo "$as_me:7494: result: no" >&5
+ echo "$as_me:7867: result: no" >&5
echo "${ECHO_T}no" >&6
NCURSES_CONFIG_PKG=none
fi
@@ -7507,7 +7880,7 @@ if test -n "$ac_tool_prefix"; then
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-echo "$as_me:7510: checking for $ac_word" >&5
+echo "$as_me:7883: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_NCURSES_CONFIG+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -7522,7 +7895,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_NCURSES_CONFIG="$ac_tool_prefix$ac_prog"
-echo "$as_me:7525: found $ac_dir/$ac_word" >&5
+echo "$as_me:7898: found $ac_dir/$ac_word" >&5
break
done
@@ -7530,10 +7903,10 @@ fi
fi
NCURSES_CONFIG=$ac_cv_prog_NCURSES_CONFIG
if test -n "$NCURSES_CONFIG"; then
- echo "$as_me:7533: result: $NCURSES_CONFIG" >&5
+ echo "$as_me:7906: result: $NCURSES_CONFIG" >&5
echo "${ECHO_T}$NCURSES_CONFIG" >&6
else
- echo "$as_me:7536: result: no" >&5
+ echo "$as_me:7909: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -7546,7 +7919,7 @@ if test -z "$NCURSES_CONFIG"; then
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-echo "$as_me:7549: checking for $ac_word" >&5
+echo "$as_me:7922: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_ac_ct_NCURSES_CONFIG+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -7561,7 +7934,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_ac_ct_NCURSES_CONFIG="$ac_prog"
-echo "$as_me:7564: found $ac_dir/$ac_word" >&5
+echo "$as_me:7937: found $ac_dir/$ac_word" >&5
break
done
@@ -7569,10 +7942,10 @@ fi
fi
ac_ct_NCURSES_CONFIG=$ac_cv_prog_ac_ct_NCURSES_CONFIG
if test -n "$ac_ct_NCURSES_CONFIG"; then
- echo "$as_me:7572: result: $ac_ct_NCURSES_CONFIG" >&5
+ echo "$as_me:7945: result: $ac_ct_NCURSES_CONFIG" >&5
echo "${ECHO_T}$ac_ct_NCURSES_CONFIG" >&6
else
- echo "$as_me:7575: result: no" >&5
+ echo "$as_me:7948: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -7585,12 +7958,38 @@ fi
if test "$NCURSES_CONFIG" != none ; then
+for cf_add_cflags in `$NCURSES_CONFIG --cflags`
+do
+ case "x$cf_add_cflags" in
+ (x-[DU]*)
+
+cf_tmp_cflag=`echo "x$cf_add_cflags" | sed -e 's/^.//' -e 's/=.*//'`
+while true
+do
+ cf_old_cflag=`echo "x$CFLAGS" | sed -e 's/^.//' -e 's/[ ][ ]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[^ ][^ ]*\\)\?%%" -e 's/^[ ]*//' -e 's%[ ][ ]*-D% -D%g' -e 's%[ ][ ]*-I% -I%g'`
+ test "$CFLAGS" != "$cf_old_cflag" || break
+
+ CFLAGS="$cf_old_cflag"
+done
+
+cf_tmp_cflag=`echo "x$cf_add_cflags" | sed -e 's/^.//' -e 's/=.*//'`
+while true
+do
+ cf_old_cflag=`echo "x$CPPFLAGS" | sed -e 's/^.//' -e 's/[ ][ ]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[^ ][^ ]*\\)\?%%" -e 's/^[ ]*//' -e 's%[ ][ ]*-D% -D%g' -e 's%[ ][ ]*-I% -I%g'`
+ test "$CPPFLAGS" != "$cf_old_cflag" || break
+
+ CPPFLAGS="$cf_old_cflag"
+done
+
+ ;;
+ esac
+
cf_fix_cppflags=no
cf_new_cflags=
cf_new_cppflags=
cf_new_extra_cppflags=
-for cf_add_cflags in `$NCURSES_CONFIG --cflags`
+for cf_add_cflags in $cf_add_cflags
do
case "$cf_fix_cppflags" in
(no)
@@ -7683,6 +8082,8 @@ if test -n "$cf_new_extra_cppflags" ; then
fi
+done
+
cf_add_libs="$LIBS"
# reverse order
cf_add_0lib=
@@ -7701,7 +8102,7 @@ LIBS="$cf_add_libs"
# even with config script, some packages use no-override for curses.h
-echo "$as_me:7704: checking if we have identified curses headers" >&5
+echo "$as_me:8105: checking if we have identified curses headers" >&5
echo $ECHO_N "checking if we have identified curses headers... $ECHO_C" >&6
if test "${cf_cv_ncurses_header+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -7713,28 +8114,28 @@ for cf_header in \
curses.h ncursesw/curses.h
do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 7716 "configure"
+#line 8117 "configure"
#include "confdefs.h"
#include <${cf_header}>
int
main (void)
{
-initscr(); tgoto("?", 0,0)
+initscr(); endwin()
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:7728: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:8129: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:7731: \$? = $ac_status" >&5
+ echo "$as_me:8132: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:7734: \"$ac_try\"") >&5
+ { (eval echo "$as_me:8135: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:7737: \$? = $ac_status" >&5
+ echo "$as_me:8138: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_ncurses_header=$cf_header; break
else
@@ -7745,11 +8146,11 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
done
fi
-echo "$as_me:7748: result: $cf_cv_ncurses_header" >&5
+echo "$as_me:8149: result: $cf_cv_ncurses_header" >&5
echo "${ECHO_T}$cf_cv_ncurses_header" >&6
if test "$cf_cv_ncurses_header" = none ; then
- { { echo "$as_me:7752: error: No curses header-files found" >&5
+ { { echo "$as_me:8153: error: No curses header-files found" >&5
echo "$as_me: error: No curses header-files found" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -7759,23 +8160,23 @@ fi
for ac_header in $cf_cv_ncurses_header
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:7762: checking for $ac_header" >&5
+echo "$as_me:8163: checking for $ac_header" >&5
echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 7768 "configure"
+#line 8169 "configure"
#include "confdefs.h"
#include <$ac_header>
_ACEOF
-if { (eval echo "$as_me:7772: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:8173: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:7778: \$? = $ac_status" >&5
+ echo "$as_me:8179: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -7794,7 +8195,7 @@ else
fi
rm -f conftest.err "conftest.$ac_ext"
fi
-echo "$as_me:7797: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
+echo "$as_me:8198: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
echo "${ECHO_T}`eval echo '${'"$as_ac_Header"'}'`" >&6
if test "`eval echo '${'"$as_ac_Header"'}'`" = yes; then
cat >>confdefs.h <<EOF
@@ -7850,7 +8251,7 @@ if test -n "$cf_cv_curses_dir/include/$cf_ncuhdr_root" ; then
CPPFLAGS="${CPPFLAGS}-I$cf_add_incdir"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 7853 "configure"
+#line 8254 "configure"
#include "confdefs.h"
#include <stdio.h>
int
@@ -7862,16 +8263,16 @@ printf("Hello")
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:7865: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:8266: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:7868: \$? = $ac_status" >&5
+ echo "$as_me:8269: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:7871: \"$ac_try\"") >&5
+ { (eval echo "$as_me:8272: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:7874: \$? = $ac_status" >&5
+ echo "$as_me:8275: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
:
else
@@ -7888,7 +8289,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
if test "$cf_have_incdir" = no ; then
test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-echo "${as_me:-configure}:7891: testing adding $cf_add_incdir to include-path ..." 1>&5
+echo "${as_me:-configure}:8292: testing adding $cf_add_incdir to include-path ..." 1>&5
CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
@@ -7907,7 +8308,7 @@ fi
}
-echo "$as_me:7910: checking for $cf_ncuhdr_root header in include-path" >&5
+echo "$as_me:8311: checking for $cf_ncuhdr_root header in include-path" >&5
echo $ECHO_N "checking for $cf_ncuhdr_root header in include-path... $ECHO_C" >&6
if test "${cf_cv_ncurses_h+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -7919,7 +8320,7 @@ else
do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 7922 "configure"
+#line 8323 "configure"
#include "confdefs.h"
#define _XOPEN_SOURCE_EXTENDED
@@ -7934,7 +8335,7 @@ main (void)
#ifdef NCURSES_VERSION
#ifndef WACS_BSSB
- make an error
+ #error WACS_BSSB is not defined
#endif
printf("%s\\n", NCURSES_VERSION);
@@ -7942,7 +8343,7 @@ printf("%s\\n", NCURSES_VERSION);
#ifdef __NCURSES_H
printf("old\\n");
#else
- make an error
+ #error __NCURSES_H is not defined
#endif
#endif
@@ -7951,16 +8352,16 @@ printf("old\\n");
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:7954: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:8355: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:7957: \$? = $ac_status" >&5
+ echo "$as_me:8358: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:7960: \"$ac_try\"") >&5
+ { (eval echo "$as_me:8361: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:7963: \$? = $ac_status" >&5
+ echo "$as_me:8364: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_ncurses_h=$cf_header
@@ -7975,14 +8376,14 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
done
fi
-echo "$as_me:7978: result: $cf_cv_ncurses_h" >&5
+echo "$as_me:8379: result: $cf_cv_ncurses_h" >&5
echo "${ECHO_T}$cf_cv_ncurses_h" >&6
if test "$cf_cv_ncurses_h" != no ; then
cf_cv_ncurses_header=$cf_cv_ncurses_h
else
-echo "$as_me:7985: checking for $cf_ncuhdr_root include-path" >&5
+echo "$as_me:8386: checking for $cf_ncuhdr_root include-path" >&5
echo $ECHO_N "checking for $cf_ncuhdr_root include-path... $ECHO_C" >&6
if test "${cf_cv_ncurses_h2+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -8103,7 +8504,7 @@ if test -n "$cf_incdir" ; then
CPPFLAGS="${CPPFLAGS}-I$cf_add_incdir"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 8106 "configure"
+#line 8507 "configure"
#include "confdefs.h"
#include <stdio.h>
int
@@ -8115,16 +8516,16 @@ printf("Hello")
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:8118: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:8519: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:8121: \$? = $ac_status" >&5
+ echo "$as_me:8522: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:8124: \"$ac_try\"") >&5
+ { (eval echo "$as_me:8525: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:8127: \$? = $ac_status" >&5
+ echo "$as_me:8528: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
:
else
@@ -8141,7 +8542,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
if test "$cf_have_incdir" = no ; then
test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-echo "${as_me:-configure}:8144: testing adding $cf_add_incdir to include-path ..." 1>&5
+echo "${as_me:-configure}:8545: testing adding $cf_add_incdir to include-path ..." 1>&5
CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
@@ -8164,7 +8565,7 @@ fi
do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 8167 "configure"
+#line 8568 "configure"
#include "confdefs.h"
#include <$cf_header>
@@ -8179,7 +8580,7 @@ printf("%s\\n", NCURSES_VERSION);
#ifdef __NCURSES_H
printf("old\\n");
#else
- make an error
+ #error __NCURSES_H is not defined
#endif
#endif
@@ -8188,16 +8589,16 @@ printf("old\\n");
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:8191: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:8592: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:8194: \$? = $ac_status" >&5
+ echo "$as_me:8595: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:8197: \"$ac_try\"") >&5
+ { (eval echo "$as_me:8598: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:8200: \$? = $ac_status" >&5
+ echo "$as_me:8601: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_ncurses_h2=$cf_header
@@ -8218,12 +8619,12 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
CPPFLAGS="$cf_save2_CPPFLAGS"
test "$cf_cv_ncurses_h2" != no && break
done
- test "$cf_cv_ncurses_h2" = no && { { echo "$as_me:8221: error: not found" >&5
+ test "$cf_cv_ncurses_h2" = no && { { echo "$as_me:8622: error: not found" >&5
echo "$as_me: error: not found" >&2;}
{ (exit 1); exit 1; }; }
fi
-echo "$as_me:8226: result: $cf_cv_ncurses_h2" >&5
+echo "$as_me:8627: result: $cf_cv_ncurses_h2" >&5
echo "${ECHO_T}$cf_cv_ncurses_h2" >&6
cf_1st_incdir=`echo "$cf_cv_ncurses_h2" | sed -e 's%/[^/]*$%%'`
@@ -8259,7 +8660,7 @@ if test -n "$cf_1st_incdir" ; then
CPPFLAGS="${CPPFLAGS}-I$cf_add_incdir"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 8262 "configure"
+#line 8663 "configure"
#include "confdefs.h"
#include <stdio.h>
int
@@ -8271,16 +8672,16 @@ printf("Hello")
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:8274: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:8675: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:8277: \$? = $ac_status" >&5
+ echo "$as_me:8678: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:8280: \"$ac_try\"") >&5
+ { (eval echo "$as_me:8681: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:8283: \$? = $ac_status" >&5
+ echo "$as_me:8684: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
:
else
@@ -8297,7 +8698,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
if test "$cf_have_incdir" = no ; then
test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-echo "${as_me:-configure}:8300: testing adding $cf_add_incdir to include-path ..." 1>&5
+echo "${as_me:-configure}:8701: testing adding $cf_add_incdir to include-path ..." 1>&5
CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
@@ -8345,7 +8746,7 @@ EOF
;;
esac
-echo "$as_me:8348: checking for terminfo header" >&5
+echo "$as_me:8749: checking for terminfo header" >&5
echo $ECHO_N "checking for terminfo header... $ECHO_C" >&6
if test "${cf_cv_term_header+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -8363,7 +8764,7 @@ esac
for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 8366 "configure"
+#line 8767 "configure"
#include "confdefs.h"
#include <stdio.h>
#include <${cf_cv_ncurses_header:-curses.h}>
@@ -8378,16 +8779,16 @@ int x = auto_left_margin; (void)x
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:8381: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:8782: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:8384: \$? = $ac_status" >&5
+ echo "$as_me:8785: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:8387: \"$ac_try\"") >&5
+ { (eval echo "$as_me:8788: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:8390: \$? = $ac_status" >&5
+ echo "$as_me:8791: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_term_header="$cf_test"
@@ -8403,7 +8804,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
done
fi
-echo "$as_me:8406: result: $cf_cv_term_header" >&5
+echo "$as_me:8807: result: $cf_cv_term_header" >&5
echo "${ECHO_T}$cf_cv_term_header" >&6
# Set definitions to allow ifdef'ing to accommodate subdirectories
@@ -8441,7 +8842,7 @@ cat >>confdefs.h <<\EOF
#define NCURSES 1
EOF
-echo "$as_me:8444: checking for ncurses version" >&5
+echo "$as_me:8845: checking for ncurses version" >&5
echo $ECHO_N "checking for ncurses version... $ECHO_C" >&6
if test "${cf_cv_ncurses_version+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -8467,10 +8868,10 @@ Autoconf "old"
#endif
EOF
cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
- { (eval echo "$as_me:8470: \"$cf_try\"") >&5
+ { (eval echo "$as_me:8871: \"$cf_try\"") >&5
(eval $cf_try) 2>&5
ac_status=$?
- echo "$as_me:8473: \$? = $ac_status" >&5
+ echo "$as_me:8874: \$? = $ac_status" >&5
(exit "$ac_status"); }
if test -f conftest.out ; then
cf_out=`sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%' conftest.out`
@@ -8480,11 +8881,13 @@ EOF
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 8483 "configure"
+#line 8884 "configure"
#include "confdefs.h"
+$ac_includes_default
+
#include <${cf_cv_ncurses_header:-curses.h}>
-#include <stdio.h>
+
int main(void)
{
FILE *fp = fopen("$cf_tempfile", "w");
@@ -8498,22 +8901,22 @@ int main(void)
# ifdef __NCURSES_H
fprintf(fp, "old\\n");
# else
- make an error
+ #error expected ncurses header to define __NCURSES_H
# endif
#endif
${cf_cv_main_return:-return}(0);
}
_ACEOF
rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:8508: \"$ac_link\"") >&5
+if { (eval echo "$as_me:8911: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:8511: \$? = $ac_status" >&5
+ echo "$as_me:8914: \$? = $ac_status" >&5
(exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:8513: \"$ac_try\"") >&5
+ { (eval echo "$as_me:8916: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:8516: \$? = $ac_status" >&5
+ echo "$as_me:8919: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_ncurses_version=`cat $cf_tempfile`
@@ -8527,7 +8930,7 @@ fi
rm -f "$cf_tempfile"
fi
-echo "$as_me:8530: result: $cf_cv_ncurses_version" >&5
+echo "$as_me:8933: result: $cf_cv_ncurses_version" >&5
echo "${ECHO_T}$cf_cv_ncurses_version" >&6
test "$cf_cv_ncurses_version" = no ||
cat >>confdefs.h <<\EOF
@@ -8540,7 +8943,7 @@ cf_nculib_root=ncursesw
# to link gpm.
cf_ncurses_LIBS=""
cf_ncurses_SAVE="$LIBS"
-echo "$as_me:8543: checking for Gpm_Open in -lgpm" >&5
+echo "$as_me:8946: checking for Gpm_Open in -lgpm" >&5
echo $ECHO_N "checking for Gpm_Open in -lgpm... $ECHO_C" >&6
if test "${ac_cv_lib_gpm_Gpm_Open+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -8548,7 +8951,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lgpm $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 8551 "configure"
+#line 8954 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -8557,7 +8960,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char Gpm_Open ();
+char Gpm_Open (void);
int
main (void)
{
@@ -8567,16 +8970,16 @@ Gpm_Open ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:8570: \"$ac_link\"") >&5
+if { (eval echo "$as_me:8973: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:8573: \$? = $ac_status" >&5
+ echo "$as_me:8976: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:8576: \"$ac_try\"") >&5
+ { (eval echo "$as_me:8979: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:8579: \$? = $ac_status" >&5
+ echo "$as_me:8982: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_gpm_Gpm_Open=yes
else
@@ -8587,10 +8990,10 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:8590: result: $ac_cv_lib_gpm_Gpm_Open" >&5
+echo "$as_me:8993: result: $ac_cv_lib_gpm_Gpm_Open" >&5
echo "${ECHO_T}$ac_cv_lib_gpm_Gpm_Open" >&6
if test "$ac_cv_lib_gpm_Gpm_Open" = yes; then
- echo "$as_me:8593: checking for initscr in -lgpm" >&5
+ echo "$as_me:8996: checking for initscr in -lgpm" >&5
echo $ECHO_N "checking for initscr in -lgpm... $ECHO_C" >&6
if test "${ac_cv_lib_gpm_initscr+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -8598,7 +9001,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lgpm $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 8601 "configure"
+#line 9004 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -8607,7 +9010,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char initscr ();
+char initscr (void);
int
main (void)
{
@@ -8617,16 +9020,16 @@ initscr ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:8620: \"$ac_link\"") >&5
+if { (eval echo "$as_me:9023: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:8623: \$? = $ac_status" >&5
+ echo "$as_me:9026: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:8626: \"$ac_try\"") >&5
+ { (eval echo "$as_me:9029: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:8629: \$? = $ac_status" >&5
+ echo "$as_me:9032: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_gpm_initscr=yes
else
@@ -8637,7 +9040,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:8640: result: $ac_cv_lib_gpm_initscr" >&5
+echo "$as_me:9043: result: $ac_cv_lib_gpm_initscr" >&5
echo "${ECHO_T}$ac_cv_lib_gpm_initscr" >&6
if test "$ac_cv_lib_gpm_initscr" = yes; then
LIBS="$cf_ncurses_SAVE"
@@ -8650,9 +9053,9 @@ fi
case "$host_os" in
(freebsd*)
# This is only necessary if you are linking against an obsolete
- # version of ncurses (but it should do no harm, since it's static).
+ # version of ncurses (but it should do no harm, since it is static).
if test "$cf_nculib_root" = ncurses ; then
- echo "$as_me:8655: checking for tgoto in -lmytinfo" >&5
+ echo "$as_me:9058: checking for tgoto in -lmytinfo" >&5
echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6
if test "${ac_cv_lib_mytinfo_tgoto+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -8660,7 +9063,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lmytinfo $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 8663 "configure"
+#line 9066 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -8669,7 +9072,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char tgoto ();
+char tgoto (void);
int
main (void)
{
@@ -8679,16 +9082,16 @@ tgoto ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:8682: \"$ac_link\"") >&5
+if { (eval echo "$as_me:9085: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:8685: \$? = $ac_status" >&5
+ echo "$as_me:9088: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:8688: \"$ac_try\"") >&5
+ { (eval echo "$as_me:9091: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:8691: \$? = $ac_status" >&5
+ echo "$as_me:9094: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_mytinfo_tgoto=yes
else
@@ -8699,7 +9102,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:8702: result: $ac_cv_lib_mytinfo_tgoto" >&5
+echo "$as_me:9105: result: $ac_cv_lib_mytinfo_tgoto" >&5
echo "${ECHO_T}$ac_cv_lib_mytinfo_tgoto" >&6
if test "$ac_cv_lib_mytinfo_tgoto" = yes; then
cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"
@@ -8748,13 +9151,13 @@ else
eval 'cf_cv_have_lib_'"$cf_nculib_root"'=no'
cf_libdir=""
- echo "$as_me:8751: checking for initscr" >&5
+ echo "$as_me:9154: checking for initscr" >&5
echo $ECHO_N "checking for initscr... $ECHO_C" >&6
if test "${ac_cv_func_initscr+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 8757 "configure"
+#line 9160 "configure"
#include "confdefs.h"
#define initscr autoconf_temporary
#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */
@@ -8785,16 +9188,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:8788: \"$ac_link\"") >&5
+if { (eval echo "$as_me:9191: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:8791: \$? = $ac_status" >&5
+ echo "$as_me:9194: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:8794: \"$ac_try\"") >&5
+ { (eval echo "$as_me:9197: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:8797: \$? = $ac_status" >&5
+ echo "$as_me:9200: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_func_initscr=yes
else
@@ -8804,18 +9207,18 @@ ac_cv_func_initscr=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:8807: result: $ac_cv_func_initscr" >&5
+echo "$as_me:9210: result: $ac_cv_func_initscr" >&5
echo "${ECHO_T}$ac_cv_func_initscr" >&6
if test "$ac_cv_func_initscr" = yes; then
eval 'cf_cv_have_lib_'"$cf_nculib_root"'=yes'
else
cf_save_LIBS="$LIBS"
- echo "$as_me:8814: checking for initscr in -l$cf_nculib_root" >&5
+ echo "$as_me:9217: checking for initscr in -l$cf_nculib_root" >&5
echo $ECHO_N "checking for initscr in -l$cf_nculib_root... $ECHO_C" >&6
LIBS="-l$cf_nculib_root $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 8818 "configure"
+#line 9221 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
int
@@ -8827,25 +9230,25 @@ initscr()
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:8830: \"$ac_link\"") >&5
+if { (eval echo "$as_me:9233: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:8833: \$? = $ac_status" >&5
+ echo "$as_me:9236: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:8836: \"$ac_try\"") >&5
+ { (eval echo "$as_me:9239: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:8839: \$? = $ac_status" >&5
+ echo "$as_me:9242: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
- echo "$as_me:8841: result: yes" >&5
+ echo "$as_me:9244: result: yes" >&5
echo "${ECHO_T}yes" >&6
eval 'cf_cv_have_lib_'"$cf_nculib_root"'=yes'
else
echo "$as_me: failed program was:" >&5
cat "conftest.$ac_ext" >&5
-echo "$as_me:8848: result: no" >&5
+echo "$as_me:9251: result: no" >&5
echo "${ECHO_T}no" >&6
cf_search=
@@ -8913,11 +9316,11 @@ cf_search="$cf_library_path_list $cf_search"
for cf_libdir in $cf_search
do
- echo "$as_me:8916: checking for -l$cf_nculib_root in $cf_libdir" >&5
+ echo "$as_me:9319: checking for -l$cf_nculib_root in $cf_libdir" >&5
echo $ECHO_N "checking for -l$cf_nculib_root in $cf_libdir... $ECHO_C" >&6
LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 8920 "configure"
+#line 9323 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
int
@@ -8929,25 +9332,25 @@ initscr()
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:8932: \"$ac_link\"") >&5
+if { (eval echo "$as_me:9335: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:8935: \$? = $ac_status" >&5
+ echo "$as_me:9338: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:8938: \"$ac_try\"") >&5
+ { (eval echo "$as_me:9341: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:8941: \$? = $ac_status" >&5
+ echo "$as_me:9344: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
- echo "$as_me:8943: result: yes" >&5
+ echo "$as_me:9346: result: yes" >&5
echo "${ECHO_T}yes" >&6
eval 'cf_cv_have_lib_'"$cf_nculib_root"'=yes'
break
else
echo "$as_me: failed program was:" >&5
cat "conftest.$ac_ext" >&5
-echo "$as_me:8950: result: no" >&5
+echo "$as_me:9353: result: no" >&5
echo "${ECHO_T}no" >&6
LIBS="$cf_save_LIBS"
fi
@@ -8962,7 +9365,7 @@ fi
eval 'cf_found_library="$cf_cv_have_lib_'"$cf_nculib_root"\"
if test "$cf_found_library" = no ; then
- { { echo "$as_me:8965: error: Cannot link $cf_nculib_root library" >&5
+ { { echo "$as_me:9368: error: Cannot link $cf_nculib_root library" >&5
echo "$as_me: error: Cannot link $cf_nculib_root library" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -8970,7 +9373,7 @@ fi
fi
if test -n "$cf_ncurses_LIBS" ; then
- echo "$as_me:8973: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
+ echo "$as_me:9376: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
echo $ECHO_N "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS... $ECHO_C" >&6
cf_ncurses_SAVE="$LIBS"
for p in $cf_ncurses_LIBS ; do
@@ -8980,7 +9383,7 @@ echo $ECHO_N "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS..
fi
done
cat >"conftest.$ac_ext" <<_ACEOF
-#line 8983 "configure"
+#line 9386 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
int
@@ -8992,23 +9395,23 @@ initscr(); mousemask(0,0); tigetstr((char *)0);
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:8995: \"$ac_link\"") >&5
+if { (eval echo "$as_me:9398: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:8998: \$? = $ac_status" >&5
+ echo "$as_me:9401: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:9001: \"$ac_try\"") >&5
+ { (eval echo "$as_me:9404: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:9004: \$? = $ac_status" >&5
+ echo "$as_me:9407: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
- echo "$as_me:9006: result: yes" >&5
+ echo "$as_me:9409: result: yes" >&5
echo "${ECHO_T}yes" >&6
else
echo "$as_me: failed program was:" >&5
cat "conftest.$ac_ext" >&5
-echo "$as_me:9011: result: no" >&5
+echo "$as_me:9414: result: no" >&5
echo "${ECHO_T}no" >&6
LIBS="$cf_ncurses_SAVE"
fi
@@ -9032,13 +9435,13 @@ cf_ncuconfig_root=ncurses
cf_have_ncuconfig=no
if test "x${PKG_CONFIG:=none}" != xnone; then
- echo "$as_me:9035: checking pkg-config for $cf_ncuconfig_root" >&5
+ echo "$as_me:9438: checking pkg-config for $cf_ncuconfig_root" >&5
echo $ECHO_N "checking pkg-config for $cf_ncuconfig_root... $ECHO_C" >&6
if "$PKG_CONFIG" --exists $cf_ncuconfig_root ; then
- echo "$as_me:9038: result: yes" >&5
+ echo "$as_me:9441: result: yes" >&5
echo "${ECHO_T}yes" >&6
- echo "$as_me:9041: checking if the $cf_ncuconfig_root package files work" >&5
+ echo "$as_me:9444: checking if the $cf_ncuconfig_root package files work" >&5
echo $ECHO_N "checking if the $cf_ncuconfig_root package files work... $ECHO_C" >&6
cf_have_ncuconfig=unknown
@@ -9171,7 +9574,7 @@ done
LIBS="$cf_add_libs"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 9174 "configure"
+#line 9577 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
int
@@ -9183,37 +9586,37 @@ initscr(); mousemask(0,0); tigetstr((char *)0);
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:9186: \"$ac_link\"") >&5
+if { (eval echo "$as_me:9589: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:9189: \$? = $ac_status" >&5
+ echo "$as_me:9592: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:9192: \"$ac_try\"") >&5
+ { (eval echo "$as_me:9595: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:9195: \$? = $ac_status" >&5
+ echo "$as_me:9598: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
if test "$cross_compiling" = yes; then
cf_test_ncuconfig=maybe
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 9201 "configure"
+#line 9604 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
int main(void)
- { char *xx = curses_version(); return (xx == 0); }
+ { const char *xx = curses_version(); return (xx == 0); }
_ACEOF
rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:9208: \"$ac_link\"") >&5
+if { (eval echo "$as_me:9611: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:9211: \$? = $ac_status" >&5
+ echo "$as_me:9614: \$? = $ac_status" >&5
(exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:9213: \"$ac_try\"") >&5
+ { (eval echo "$as_me:9616: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:9216: \$? = $ac_status" >&5
+ echo "$as_me:9619: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_test_ncuconfig=yes
else
@@ -9244,12 +9647,38 @@ rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
;;
esac
+for cf_add_cflags in $cf_pkg_cflags
+do
+ case "x$cf_add_cflags" in
+ (x-[DU]*)
+
+cf_tmp_cflag=`echo "x$cf_add_cflags" | sed -e 's/^.//' -e 's/=.*//'`
+while true
+do
+ cf_old_cflag=`echo "x$CFLAGS" | sed -e 's/^.//' -e 's/[ ][ ]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[^ ][^ ]*\\)\?%%" -e 's/^[ ]*//' -e 's%[ ][ ]*-D% -D%g' -e 's%[ ][ ]*-I% -I%g'`
+ test "$CFLAGS" != "$cf_old_cflag" || break
+
+ CFLAGS="$cf_old_cflag"
+done
+
+cf_tmp_cflag=`echo "x$cf_add_cflags" | sed -e 's/^.//' -e 's/=.*//'`
+while true
+do
+ cf_old_cflag=`echo "x$CPPFLAGS" | sed -e 's/^.//' -e 's/[ ][ ]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[^ ][^ ]*\\)\?%%" -e 's/^[ ]*//' -e 's%[ ][ ]*-D% -D%g' -e 's%[ ][ ]*-I% -I%g'`
+ test "$CPPFLAGS" != "$cf_old_cflag" || break
+
+ CPPFLAGS="$cf_old_cflag"
+done
+
+ ;;
+ esac
+
cf_fix_cppflags=no
cf_new_cflags=
cf_new_cppflags=
cf_new_extra_cppflags=
-for cf_add_cflags in $cf_pkg_cflags
+for cf_add_cflags in $cf_add_cflags
do
case "$cf_fix_cppflags" in
(no)
@@ -9342,6 +9771,8 @@ if test -n "$cf_new_extra_cppflags" ; then
fi
+done
+
cf_add_libs="$LIBS"
# reverse order
cf_add_0lib=
@@ -9359,7 +9790,7 @@ done
LIBS="$cf_add_libs"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 9362 "configure"
+#line 9793 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
int
@@ -9371,37 +9802,37 @@ initscr(); mousemask(0,0); tigetstr((char *)0);
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:9374: \"$ac_link\"") >&5
+if { (eval echo "$as_me:9805: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:9377: \$? = $ac_status" >&5
+ echo "$as_me:9808: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:9380: \"$ac_try\"") >&5
+ { (eval echo "$as_me:9811: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:9383: \$? = $ac_status" >&5
+ echo "$as_me:9814: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
if test "$cross_compiling" = yes; then
cf_have_ncuconfig=maybe
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 9389 "configure"
+#line 9820 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
int main(void)
- { char *xx = curses_version(); return (xx == 0); }
+ { const char *xx = curses_version(); return (xx == 0); }
_ACEOF
rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:9396: \"$ac_link\"") >&5
+if { (eval echo "$as_me:9827: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:9399: \$? = $ac_status" >&5
+ echo "$as_me:9830: \$? = $ac_status" >&5
(exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:9401: \"$ac_try\"") >&5
+ { (eval echo "$as_me:9832: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:9404: \$? = $ac_status" >&5
+ echo "$as_me:9835: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_have_ncuconfig=yes
else
@@ -9418,7 +9849,7 @@ cat "conftest.$ac_ext" >&5
cf_have_ncuconfig=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
- echo "$as_me:9421: result: $cf_have_ncuconfig" >&5
+ echo "$as_me:9852: result: $cf_have_ncuconfig" >&5
echo "${ECHO_T}$cf_have_ncuconfig" >&6
test "$cf_have_ncuconfig" = maybe && cf_have_ncuconfig=yes
if test "$cf_have_ncuconfig" != "yes"
@@ -9434,7 +9865,7 @@ EOF
NCURSES_CONFIG_PKG=$cf_ncuconfig_root
-echo "$as_me:9437: checking for terminfo header" >&5
+echo "$as_me:9868: checking for terminfo header" >&5
echo $ECHO_N "checking for terminfo header... $ECHO_C" >&6
if test "${cf_cv_term_header+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -9452,7 +9883,7 @@ esac
for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 9455 "configure"
+#line 9886 "configure"
#include "confdefs.h"
#include <stdio.h>
#include <${cf_cv_ncurses_header:-curses.h}>
@@ -9467,16 +9898,16 @@ int x = auto_left_margin; (void)x
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:9470: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:9901: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:9473: \$? = $ac_status" >&5
+ echo "$as_me:9904: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:9476: \"$ac_try\"") >&5
+ { (eval echo "$as_me:9907: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:9479: \$? = $ac_status" >&5
+ echo "$as_me:9910: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_term_header="$cf_test"
@@ -9492,7 +9923,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
done
fi
-echo "$as_me:9495: result: $cf_cv_term_header" >&5
+echo "$as_me:9926: result: $cf_cv_term_header" >&5
echo "${ECHO_T}$cf_cv_term_header" >&6
# Set definitions to allow ifdef'ing to accommodate subdirectories
@@ -9527,7 +9958,7 @@ esac
fi
else
- echo "$as_me:9530: result: no" >&5
+ echo "$as_me:9961: result: no" >&5
echo "${ECHO_T}no" >&6
NCURSES_CONFIG_PKG=none
fi
@@ -9543,7 +9974,7 @@ if test -n "$ac_tool_prefix"; then
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-echo "$as_me:9546: checking for $ac_word" >&5
+echo "$as_me:9977: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_NCURSES_CONFIG+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -9558,7 +9989,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_NCURSES_CONFIG="$ac_tool_prefix$ac_prog"
-echo "$as_me:9561: found $ac_dir/$ac_word" >&5
+echo "$as_me:9992: found $ac_dir/$ac_word" >&5
break
done
@@ -9566,10 +9997,10 @@ fi
fi
NCURSES_CONFIG=$ac_cv_prog_NCURSES_CONFIG
if test -n "$NCURSES_CONFIG"; then
- echo "$as_me:9569: result: $NCURSES_CONFIG" >&5
+ echo "$as_me:10000: result: $NCURSES_CONFIG" >&5
echo "${ECHO_T}$NCURSES_CONFIG" >&6
else
- echo "$as_me:9572: result: no" >&5
+ echo "$as_me:10003: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -9582,7 +10013,7 @@ if test -z "$NCURSES_CONFIG"; then
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-echo "$as_me:9585: checking for $ac_word" >&5
+echo "$as_me:10016: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_ac_ct_NCURSES_CONFIG+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -9597,7 +10028,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_ac_ct_NCURSES_CONFIG="$ac_prog"
-echo "$as_me:9600: found $ac_dir/$ac_word" >&5
+echo "$as_me:10031: found $ac_dir/$ac_word" >&5
break
done
@@ -9605,10 +10036,10 @@ fi
fi
ac_ct_NCURSES_CONFIG=$ac_cv_prog_ac_ct_NCURSES_CONFIG
if test -n "$ac_ct_NCURSES_CONFIG"; then
- echo "$as_me:9608: result: $ac_ct_NCURSES_CONFIG" >&5
+ echo "$as_me:10039: result: $ac_ct_NCURSES_CONFIG" >&5
echo "${ECHO_T}$ac_ct_NCURSES_CONFIG" >&6
else
- echo "$as_me:9611: result: no" >&5
+ echo "$as_me:10042: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -9621,12 +10052,38 @@ fi
if test "$NCURSES_CONFIG" != none ; then
+for cf_add_cflags in `$NCURSES_CONFIG --cflags`
+do
+ case "x$cf_add_cflags" in
+ (x-[DU]*)
+
+cf_tmp_cflag=`echo "x$cf_add_cflags" | sed -e 's/^.//' -e 's/=.*//'`
+while true
+do
+ cf_old_cflag=`echo "x$CFLAGS" | sed -e 's/^.//' -e 's/[ ][ ]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[^ ][^ ]*\\)\?%%" -e 's/^[ ]*//' -e 's%[ ][ ]*-D% -D%g' -e 's%[ ][ ]*-I% -I%g'`
+ test "$CFLAGS" != "$cf_old_cflag" || break
+
+ CFLAGS="$cf_old_cflag"
+done
+
+cf_tmp_cflag=`echo "x$cf_add_cflags" | sed -e 's/^.//' -e 's/=.*//'`
+while true
+do
+ cf_old_cflag=`echo "x$CPPFLAGS" | sed -e 's/^.//' -e 's/[ ][ ]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[^ ][^ ]*\\)\?%%" -e 's/^[ ]*//' -e 's%[ ][ ]*-D% -D%g' -e 's%[ ][ ]*-I% -I%g'`
+ test "$CPPFLAGS" != "$cf_old_cflag" || break
+
+ CPPFLAGS="$cf_old_cflag"
+done
+
+ ;;
+ esac
+
cf_fix_cppflags=no
cf_new_cflags=
cf_new_cppflags=
cf_new_extra_cppflags=
-for cf_add_cflags in `$NCURSES_CONFIG --cflags`
+for cf_add_cflags in $cf_add_cflags
do
case "$cf_fix_cppflags" in
(no)
@@ -9719,6 +10176,8 @@ if test -n "$cf_new_extra_cppflags" ; then
fi
+done
+
cf_add_libs="$LIBS"
# reverse order
cf_add_0lib=
@@ -9737,7 +10196,7 @@ LIBS="$cf_add_libs"
# even with config script, some packages use no-override for curses.h
-echo "$as_me:9740: checking if we have identified curses headers" >&5
+echo "$as_me:10199: checking if we have identified curses headers" >&5
echo $ECHO_N "checking if we have identified curses headers... $ECHO_C" >&6
if test "${cf_cv_ncurses_header+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -9749,28 +10208,28 @@ for cf_header in \
curses.h ncurses/curses.h
do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 9752 "configure"
+#line 10211 "configure"
#include "confdefs.h"
#include <${cf_header}>
int
main (void)
{
-initscr(); tgoto("?", 0,0)
+initscr(); endwin()
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:9764: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:10223: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:9767: \$? = $ac_status" >&5
+ echo "$as_me:10226: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:9770: \"$ac_try\"") >&5
+ { (eval echo "$as_me:10229: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:9773: \$? = $ac_status" >&5
+ echo "$as_me:10232: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_ncurses_header=$cf_header; break
else
@@ -9781,11 +10240,11 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
done
fi
-echo "$as_me:9784: result: $cf_cv_ncurses_header" >&5
+echo "$as_me:10243: result: $cf_cv_ncurses_header" >&5
echo "${ECHO_T}$cf_cv_ncurses_header" >&6
if test "$cf_cv_ncurses_header" = none ; then
- { { echo "$as_me:9788: error: No curses header-files found" >&5
+ { { echo "$as_me:10247: error: No curses header-files found" >&5
echo "$as_me: error: No curses header-files found" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -9795,23 +10254,23 @@ fi
for ac_header in $cf_cv_ncurses_header
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:9798: checking for $ac_header" >&5
+echo "$as_me:10257: checking for $ac_header" >&5
echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 9804 "configure"
+#line 10263 "configure"
#include "confdefs.h"
#include <$ac_header>
_ACEOF
-if { (eval echo "$as_me:9808: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:10267: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:9814: \$? = $ac_status" >&5
+ echo "$as_me:10273: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -9830,7 +10289,7 @@ else
fi
rm -f conftest.err "conftest.$ac_ext"
fi
-echo "$as_me:9833: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
+echo "$as_me:10292: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
echo "${ECHO_T}`eval echo '${'"$as_ac_Header"'}'`" >&6
if test "`eval echo '${'"$as_ac_Header"'}'`" = yes; then
cat >>confdefs.h <<EOF
@@ -9886,7 +10345,7 @@ if test -n "$cf_cv_curses_dir/include/$cf_ncuhdr_root" ; then
CPPFLAGS="${CPPFLAGS}-I$cf_add_incdir"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 9889 "configure"
+#line 10348 "configure"
#include "confdefs.h"
#include <stdio.h>
int
@@ -9898,16 +10357,16 @@ printf("Hello")
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:9901: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:10360: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:9904: \$? = $ac_status" >&5
+ echo "$as_me:10363: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:9907: \"$ac_try\"") >&5
+ { (eval echo "$as_me:10366: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:9910: \$? = $ac_status" >&5
+ echo "$as_me:10369: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
:
else
@@ -9924,7 +10383,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
if test "$cf_have_incdir" = no ; then
test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-echo "${as_me:-configure}:9927: testing adding $cf_add_incdir to include-path ..." 1>&5
+echo "${as_me:-configure}:10386: testing adding $cf_add_incdir to include-path ..." 1>&5
CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
@@ -9943,7 +10402,7 @@ fi
}
-echo "$as_me:9946: checking for $cf_ncuhdr_root header in include-path" >&5
+echo "$as_me:10405: checking for $cf_ncuhdr_root header in include-path" >&5
echo $ECHO_N "checking for $cf_ncuhdr_root header in include-path... $ECHO_C" >&6
if test "${cf_cv_ncurses_h+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -9955,7 +10414,7 @@ else
do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 9958 "configure"
+#line 10417 "configure"
#include "confdefs.h"
#include <$cf_header>
@@ -9970,7 +10429,7 @@ printf("%s\\n", NCURSES_VERSION);
#ifdef __NCURSES_H
printf("old\\n");
#else
- make an error
+ #error __NCURSES_H is not defined
#endif
#endif
@@ -9979,16 +10438,16 @@ printf("old\\n");
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:9982: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:10441: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:9985: \$? = $ac_status" >&5
+ echo "$as_me:10444: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:9988: \"$ac_try\"") >&5
+ { (eval echo "$as_me:10447: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:9991: \$? = $ac_status" >&5
+ echo "$as_me:10450: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_ncurses_h=$cf_header
@@ -10003,14 +10462,14 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
done
fi
-echo "$as_me:10006: result: $cf_cv_ncurses_h" >&5
+echo "$as_me:10465: result: $cf_cv_ncurses_h" >&5
echo "${ECHO_T}$cf_cv_ncurses_h" >&6
if test "$cf_cv_ncurses_h" != no ; then
cf_cv_ncurses_header=$cf_cv_ncurses_h
else
-echo "$as_me:10013: checking for $cf_ncuhdr_root include-path" >&5
+echo "$as_me:10472: checking for $cf_ncuhdr_root include-path" >&5
echo $ECHO_N "checking for $cf_ncuhdr_root include-path... $ECHO_C" >&6
if test "${cf_cv_ncurses_h2+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -10131,7 +10590,7 @@ if test -n "$cf_incdir" ; then
CPPFLAGS="${CPPFLAGS}-I$cf_add_incdir"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 10134 "configure"
+#line 10593 "configure"
#include "confdefs.h"
#include <stdio.h>
int
@@ -10143,16 +10602,16 @@ printf("Hello")
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:10146: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:10605: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:10149: \$? = $ac_status" >&5
+ echo "$as_me:10608: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:10152: \"$ac_try\"") >&5
+ { (eval echo "$as_me:10611: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:10155: \$? = $ac_status" >&5
+ echo "$as_me:10614: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
:
else
@@ -10169,7 +10628,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
if test "$cf_have_incdir" = no ; then
test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-echo "${as_me:-configure}:10172: testing adding $cf_add_incdir to include-path ..." 1>&5
+echo "${as_me:-configure}:10631: testing adding $cf_add_incdir to include-path ..." 1>&5
CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
@@ -10192,7 +10651,7 @@ fi
do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 10195 "configure"
+#line 10654 "configure"
#include "confdefs.h"
#include <$cf_header>
@@ -10207,7 +10666,7 @@ printf("%s\\n", NCURSES_VERSION);
#ifdef __NCURSES_H
printf("old\\n");
#else
- make an error
+ #error __NCURSES_H is not defined
#endif
#endif
@@ -10216,16 +10675,16 @@ printf("old\\n");
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:10219: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:10678: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:10222: \$? = $ac_status" >&5
+ echo "$as_me:10681: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:10225: \"$ac_try\"") >&5
+ { (eval echo "$as_me:10684: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:10228: \$? = $ac_status" >&5
+ echo "$as_me:10687: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_ncurses_h2=$cf_header
@@ -10246,12 +10705,12 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
CPPFLAGS="$cf_save2_CPPFLAGS"
test "$cf_cv_ncurses_h2" != no && break
done
- test "$cf_cv_ncurses_h2" = no && { { echo "$as_me:10249: error: not found" >&5
+ test "$cf_cv_ncurses_h2" = no && { { echo "$as_me:10708: error: not found" >&5
echo "$as_me: error: not found" >&2;}
{ (exit 1); exit 1; }; }
fi
-echo "$as_me:10254: result: $cf_cv_ncurses_h2" >&5
+echo "$as_me:10713: result: $cf_cv_ncurses_h2" >&5
echo "${ECHO_T}$cf_cv_ncurses_h2" >&6
cf_1st_incdir=`echo "$cf_cv_ncurses_h2" | sed -e 's%/[^/]*$%%'`
@@ -10287,7 +10746,7 @@ if test -n "$cf_1st_incdir" ; then
CPPFLAGS="${CPPFLAGS}-I$cf_add_incdir"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 10290 "configure"
+#line 10749 "configure"
#include "confdefs.h"
#include <stdio.h>
int
@@ -10299,16 +10758,16 @@ printf("Hello")
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:10302: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:10761: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:10305: \$? = $ac_status" >&5
+ echo "$as_me:10764: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:10308: \"$ac_try\"") >&5
+ { (eval echo "$as_me:10767: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:10311: \$? = $ac_status" >&5
+ echo "$as_me:10770: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
:
else
@@ -10325,7 +10784,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
if test "$cf_have_incdir" = no ; then
test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-echo "${as_me:-configure}:10328: testing adding $cf_add_incdir to include-path ..." 1>&5
+echo "${as_me:-configure}:10787: testing adding $cf_add_incdir to include-path ..." 1>&5
CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
@@ -10373,7 +10832,7 @@ EOF
;;
esac
-echo "$as_me:10376: checking for terminfo header" >&5
+echo "$as_me:10835: checking for terminfo header" >&5
echo $ECHO_N "checking for terminfo header... $ECHO_C" >&6
if test "${cf_cv_term_header+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -10391,7 +10850,7 @@ esac
for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 10394 "configure"
+#line 10853 "configure"
#include "confdefs.h"
#include <stdio.h>
#include <${cf_cv_ncurses_header:-curses.h}>
@@ -10406,16 +10865,16 @@ int x = auto_left_margin; (void)x
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:10409: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:10868: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:10412: \$? = $ac_status" >&5
+ echo "$as_me:10871: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:10415: \"$ac_try\"") >&5
+ { (eval echo "$as_me:10874: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:10418: \$? = $ac_status" >&5
+ echo "$as_me:10877: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_term_header="$cf_test"
@@ -10431,7 +10890,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
done
fi
-echo "$as_me:10434: result: $cf_cv_term_header" >&5
+echo "$as_me:10893: result: $cf_cv_term_header" >&5
echo "${ECHO_T}$cf_cv_term_header" >&6
# Set definitions to allow ifdef'ing to accommodate subdirectories
@@ -10469,7 +10928,7 @@ cat >>confdefs.h <<\EOF
#define NCURSES 1
EOF
-echo "$as_me:10472: checking for ncurses version" >&5
+echo "$as_me:10931: checking for ncurses version" >&5
echo $ECHO_N "checking for ncurses version... $ECHO_C" >&6
if test "${cf_cv_ncurses_version+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -10495,10 +10954,10 @@ Autoconf "old"
#endif
EOF
cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
- { (eval echo "$as_me:10498: \"$cf_try\"") >&5
+ { (eval echo "$as_me:10957: \"$cf_try\"") >&5
(eval $cf_try) 2>&5
ac_status=$?
- echo "$as_me:10501: \$? = $ac_status" >&5
+ echo "$as_me:10960: \$? = $ac_status" >&5
(exit "$ac_status"); }
if test -f conftest.out ; then
cf_out=`sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%' conftest.out`
@@ -10508,11 +10967,13 @@ EOF
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 10511 "configure"
+#line 10970 "configure"
#include "confdefs.h"
+$ac_includes_default
+
#include <${cf_cv_ncurses_header:-curses.h}>
-#include <stdio.h>
+
int main(void)
{
FILE *fp = fopen("$cf_tempfile", "w");
@@ -10526,22 +10987,22 @@ int main(void)
# ifdef __NCURSES_H
fprintf(fp, "old\\n");
# else
- make an error
+ #error expected ncurses header to define __NCURSES_H
# endif
#endif
${cf_cv_main_return:-return}(0);
}
_ACEOF
rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:10536: \"$ac_link\"") >&5
+if { (eval echo "$as_me:10997: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:10539: \$? = $ac_status" >&5
+ echo "$as_me:11000: \$? = $ac_status" >&5
(exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:10541: \"$ac_try\"") >&5
+ { (eval echo "$as_me:11002: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:10544: \$? = $ac_status" >&5
+ echo "$as_me:11005: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_ncurses_version=`cat $cf_tempfile`
@@ -10555,7 +11016,7 @@ fi
rm -f "$cf_tempfile"
fi
-echo "$as_me:10558: result: $cf_cv_ncurses_version" >&5
+echo "$as_me:11019: result: $cf_cv_ncurses_version" >&5
echo "${ECHO_T}$cf_cv_ncurses_version" >&6
test "$cf_cv_ncurses_version" = no ||
cat >>confdefs.h <<\EOF
@@ -10568,7 +11029,7 @@ cf_nculib_root=ncurses
# to link gpm.
cf_ncurses_LIBS=""
cf_ncurses_SAVE="$LIBS"
-echo "$as_me:10571: checking for Gpm_Open in -lgpm" >&5
+echo "$as_me:11032: checking for Gpm_Open in -lgpm" >&5
echo $ECHO_N "checking for Gpm_Open in -lgpm... $ECHO_C" >&6
if test "${ac_cv_lib_gpm_Gpm_Open+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -10576,7 +11037,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lgpm $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 10579 "configure"
+#line 11040 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -10585,7 +11046,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char Gpm_Open ();
+char Gpm_Open (void);
int
main (void)
{
@@ -10595,16 +11056,16 @@ Gpm_Open ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:10598: \"$ac_link\"") >&5
+if { (eval echo "$as_me:11059: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:10601: \$? = $ac_status" >&5
+ echo "$as_me:11062: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:10604: \"$ac_try\"") >&5
+ { (eval echo "$as_me:11065: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:10607: \$? = $ac_status" >&5
+ echo "$as_me:11068: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_gpm_Gpm_Open=yes
else
@@ -10615,10 +11076,10 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:10618: result: $ac_cv_lib_gpm_Gpm_Open" >&5
+echo "$as_me:11079: result: $ac_cv_lib_gpm_Gpm_Open" >&5
echo "${ECHO_T}$ac_cv_lib_gpm_Gpm_Open" >&6
if test "$ac_cv_lib_gpm_Gpm_Open" = yes; then
- echo "$as_me:10621: checking for initscr in -lgpm" >&5
+ echo "$as_me:11082: checking for initscr in -lgpm" >&5
echo $ECHO_N "checking for initscr in -lgpm... $ECHO_C" >&6
if test "${ac_cv_lib_gpm_initscr+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -10626,7 +11087,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lgpm $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 10629 "configure"
+#line 11090 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -10635,7 +11096,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char initscr ();
+char initscr (void);
int
main (void)
{
@@ -10645,16 +11106,16 @@ initscr ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:10648: \"$ac_link\"") >&5
+if { (eval echo "$as_me:11109: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:10651: \$? = $ac_status" >&5
+ echo "$as_me:11112: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:10654: \"$ac_try\"") >&5
+ { (eval echo "$as_me:11115: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:10657: \$? = $ac_status" >&5
+ echo "$as_me:11118: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_gpm_initscr=yes
else
@@ -10665,7 +11126,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:10668: result: $ac_cv_lib_gpm_initscr" >&5
+echo "$as_me:11129: result: $ac_cv_lib_gpm_initscr" >&5
echo "${ECHO_T}$ac_cv_lib_gpm_initscr" >&6
if test "$ac_cv_lib_gpm_initscr" = yes; then
LIBS="$cf_ncurses_SAVE"
@@ -10678,9 +11139,9 @@ fi
case "$host_os" in
(freebsd*)
# This is only necessary if you are linking against an obsolete
- # version of ncurses (but it should do no harm, since it's static).
+ # version of ncurses (but it should do no harm, since it is static).
if test "$cf_nculib_root" = ncurses ; then
- echo "$as_me:10683: checking for tgoto in -lmytinfo" >&5
+ echo "$as_me:11144: checking for tgoto in -lmytinfo" >&5
echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6
if test "${ac_cv_lib_mytinfo_tgoto+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -10688,7 +11149,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lmytinfo $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 10691 "configure"
+#line 11152 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -10697,7 +11158,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char tgoto ();
+char tgoto (void);
int
main (void)
{
@@ -10707,16 +11168,16 @@ tgoto ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:10710: \"$ac_link\"") >&5
+if { (eval echo "$as_me:11171: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:10713: \$? = $ac_status" >&5
+ echo "$as_me:11174: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:10716: \"$ac_try\"") >&5
+ { (eval echo "$as_me:11177: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:10719: \$? = $ac_status" >&5
+ echo "$as_me:11180: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_mytinfo_tgoto=yes
else
@@ -10727,7 +11188,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:10730: result: $ac_cv_lib_mytinfo_tgoto" >&5
+echo "$as_me:11191: result: $ac_cv_lib_mytinfo_tgoto" >&5
echo "${ECHO_T}$ac_cv_lib_mytinfo_tgoto" >&6
if test "$ac_cv_lib_mytinfo_tgoto" = yes; then
cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"
@@ -10776,13 +11237,13 @@ else
eval 'cf_cv_have_lib_'"$cf_nculib_root"'=no'
cf_libdir=""
- echo "$as_me:10779: checking for initscr" >&5
+ echo "$as_me:11240: checking for initscr" >&5
echo $ECHO_N "checking for initscr... $ECHO_C" >&6
if test "${ac_cv_func_initscr+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 10785 "configure"
+#line 11246 "configure"
#include "confdefs.h"
#define initscr autoconf_temporary
#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */
@@ -10813,16 +11274,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:10816: \"$ac_link\"") >&5
+if { (eval echo "$as_me:11277: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:10819: \$? = $ac_status" >&5
+ echo "$as_me:11280: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:10822: \"$ac_try\"") >&5
+ { (eval echo "$as_me:11283: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:10825: \$? = $ac_status" >&5
+ echo "$as_me:11286: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_func_initscr=yes
else
@@ -10832,18 +11293,18 @@ ac_cv_func_initscr=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:10835: result: $ac_cv_func_initscr" >&5
+echo "$as_me:11296: result: $ac_cv_func_initscr" >&5
echo "${ECHO_T}$ac_cv_func_initscr" >&6
if test "$ac_cv_func_initscr" = yes; then
eval 'cf_cv_have_lib_'"$cf_nculib_root"'=yes'
else
cf_save_LIBS="$LIBS"
- echo "$as_me:10842: checking for initscr in -l$cf_nculib_root" >&5
+ echo "$as_me:11303: checking for initscr in -l$cf_nculib_root" >&5
echo $ECHO_N "checking for initscr in -l$cf_nculib_root... $ECHO_C" >&6
LIBS="-l$cf_nculib_root $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 10846 "configure"
+#line 11307 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
int
@@ -10855,25 +11316,25 @@ initscr()
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:10858: \"$ac_link\"") >&5
+if { (eval echo "$as_me:11319: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:10861: \$? = $ac_status" >&5
+ echo "$as_me:11322: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:10864: \"$ac_try\"") >&5
+ { (eval echo "$as_me:11325: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:10867: \$? = $ac_status" >&5
+ echo "$as_me:11328: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
- echo "$as_me:10869: result: yes" >&5
+ echo "$as_me:11330: result: yes" >&5
echo "${ECHO_T}yes" >&6
eval 'cf_cv_have_lib_'"$cf_nculib_root"'=yes'
else
echo "$as_me: failed program was:" >&5
cat "conftest.$ac_ext" >&5
-echo "$as_me:10876: result: no" >&5
+echo "$as_me:11337: result: no" >&5
echo "${ECHO_T}no" >&6
cf_search=
@@ -10941,11 +11402,11 @@ cf_search="$cf_library_path_list $cf_search"
for cf_libdir in $cf_search
do
- echo "$as_me:10944: checking for -l$cf_nculib_root in $cf_libdir" >&5
+ echo "$as_me:11405: checking for -l$cf_nculib_root in $cf_libdir" >&5
echo $ECHO_N "checking for -l$cf_nculib_root in $cf_libdir... $ECHO_C" >&6
LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 10948 "configure"
+#line 11409 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
int
@@ -10957,25 +11418,25 @@ initscr()
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:10960: \"$ac_link\"") >&5
+if { (eval echo "$as_me:11421: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:10963: \$? = $ac_status" >&5
+ echo "$as_me:11424: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:10966: \"$ac_try\"") >&5
+ { (eval echo "$as_me:11427: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:10969: \$? = $ac_status" >&5
+ echo "$as_me:11430: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
- echo "$as_me:10971: result: yes" >&5
+ echo "$as_me:11432: result: yes" >&5
echo "${ECHO_T}yes" >&6
eval 'cf_cv_have_lib_'"$cf_nculib_root"'=yes'
break
else
echo "$as_me: failed program was:" >&5
cat "conftest.$ac_ext" >&5
-echo "$as_me:10978: result: no" >&5
+echo "$as_me:11439: result: no" >&5
echo "${ECHO_T}no" >&6
LIBS="$cf_save_LIBS"
fi
@@ -10990,7 +11451,7 @@ fi
eval 'cf_found_library="$cf_cv_have_lib_'"$cf_nculib_root"\"
if test "$cf_found_library" = no ; then
- { { echo "$as_me:10993: error: Cannot link $cf_nculib_root library" >&5
+ { { echo "$as_me:11454: error: Cannot link $cf_nculib_root library" >&5
echo "$as_me: error: Cannot link $cf_nculib_root library" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -10998,7 +11459,7 @@ fi
fi
if test -n "$cf_ncurses_LIBS" ; then
- echo "$as_me:11001: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
+ echo "$as_me:11462: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
echo $ECHO_N "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS... $ECHO_C" >&6
cf_ncurses_SAVE="$LIBS"
for p in $cf_ncurses_LIBS ; do
@@ -11008,7 +11469,7 @@ echo $ECHO_N "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS..
fi
done
cat >"conftest.$ac_ext" <<_ACEOF
-#line 11011 "configure"
+#line 11472 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
int
@@ -11020,23 +11481,23 @@ initscr(); mousemask(0,0); tigetstr((char *)0);
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:11023: \"$ac_link\"") >&5
+if { (eval echo "$as_me:11484: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:11026: \$? = $ac_status" >&5
+ echo "$as_me:11487: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:11029: \"$ac_try\"") >&5
+ { (eval echo "$as_me:11490: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:11032: \$? = $ac_status" >&5
+ echo "$as_me:11493: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
- echo "$as_me:11034: result: yes" >&5
+ echo "$as_me:11495: result: yes" >&5
echo "${ECHO_T}yes" >&6
else
echo "$as_me: failed program was:" >&5
cat "conftest.$ac_ext" >&5
-echo "$as_me:11039: result: no" >&5
+echo "$as_me:11500: result: no" >&5
echo "${ECHO_T}no" >&6
LIBS="$cf_ncurses_SAVE"
fi
@@ -11089,10 +11550,10 @@ else
AUTOCONF_$cf_name NCURSES_VERSION_$cf_name
CF_EOF
cf_try="$ac_cpp conftest.$ac_ext 2>&5 | fgrep AUTOCONF_$cf_name >conftest.out"
- { (eval echo "$as_me:11092: \"$cf_try\"") >&5
+ { (eval echo "$as_me:11553: \"$cf_try\"") >&5
(eval $cf_try) 2>&5
ac_status=$?
- echo "$as_me:11095: \$? = $ac_status" >&5
+ echo "$as_me:11556: \$? = $ac_status" >&5
(exit "$ac_status"); }
if test -f conftest.out ; then
cf_result=`sed -e "s/^.*AUTOCONF_${cf_name}[ ][ ]*//" conftest.out`
@@ -11110,10 +11571,10 @@ cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR}
cf_cv_timestamp=`date`
-echo "$as_me:11113: result: Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp)" >&5
+echo "$as_me:11574: result: Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp)" >&5
echo "${ECHO_T}Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp)" >&6
-echo "$as_me:11116: checking if you want to have a library-prefix" >&5
+echo "$as_me:11577: checking if you want to have a library-prefix" >&5
echo $ECHO_N "checking if you want to have a library-prefix... $ECHO_C" >&6
# Check whether --with-lib-prefix or --without-lib-prefix was given.
@@ -11123,7 +11584,7 @@ if test "${with_lib_prefix+set}" = set; then
else
with_lib_prefix=auto
fi;
-echo "$as_me:11126: result: $with_lib_prefix" >&5
+echo "$as_me:11587: result: $with_lib_prefix" >&5
echo "${ECHO_T}$with_lib_prefix" >&6
if test "$with_lib_prefix" = auto
@@ -11161,7 +11622,7 @@ if test X"$CC_G_OPT" = X"" ; then
test -n "$GCC" && test "${ac_cv_prog_cc_g}" != yes && CC_G_OPT=''
fi
-echo "$as_me:11164: checking for default loader flags" >&5
+echo "$as_me:11625: checking for default loader flags" >&5
echo $ECHO_N "checking for default loader flags... $ECHO_C" >&6
case $DFT_LWR_MODEL in
(normal) LD_MODEL='' ;;
@@ -11169,13 +11630,13 @@ case $DFT_LWR_MODEL in
(profile) LD_MODEL='-pg';;
(shared) LD_MODEL='' ;;
esac
-echo "$as_me:11172: result: $LD_MODEL" >&5
+echo "$as_me:11633: result: $LD_MODEL" >&5
echo "${ECHO_T}$LD_MODEL" >&6
LD_RPATH_OPT=
if test "x$cf_cv_enable_rpath" != xno
then
- echo "$as_me:11178: checking for an rpath option" >&5
+ echo "$as_me:11639: checking for an rpath option" >&5
echo $ECHO_N "checking for an rpath option... $ECHO_C" >&6
case "$cf_cv_system_name" in
(irix*)
@@ -11206,12 +11667,12 @@ echo $ECHO_N "checking for an rpath option... $ECHO_C" >&6
(*)
;;
esac
- echo "$as_me:11209: result: $LD_RPATH_OPT" >&5
+ echo "$as_me:11670: result: $LD_RPATH_OPT" >&5
echo "${ECHO_T}$LD_RPATH_OPT" >&6
case "x$LD_RPATH_OPT" in
(x-R*)
- echo "$as_me:11214: checking if we need a space after rpath option" >&5
+ echo "$as_me:11675: checking if we need a space after rpath option" >&5
echo $ECHO_N "checking if we need a space after rpath option... $ECHO_C" >&6
cf_save_LIBS="$LIBS"
@@ -11232,7 +11693,7 @@ done
LIBS="$cf_add_libs"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 11235 "configure"
+#line 11696 "configure"
#include "confdefs.h"
int
@@ -11244,16 +11705,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:11247: \"$ac_link\"") >&5
+if { (eval echo "$as_me:11708: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:11250: \$? = $ac_status" >&5
+ echo "$as_me:11711: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:11253: \"$ac_try\"") >&5
+ { (eval echo "$as_me:11714: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:11256: \$? = $ac_status" >&5
+ echo "$as_me:11717: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_rpath_space=no
else
@@ -11263,7 +11724,7 @@ cf_rpath_space=yes
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS="$cf_save_LIBS"
- echo "$as_me:11266: result: $cf_rpath_space" >&5
+ echo "$as_me:11727: result: $cf_rpath_space" >&5
echo "${ECHO_T}$cf_rpath_space" >&6
test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT "
;;
@@ -11285,8 +11746,8 @@ fi
cf_ld_rpath_opt=
test "$cf_cv_enable_rpath" = yes && cf_ld_rpath_opt="$LD_RPATH_OPT"
- echo "$as_me:11288: checking if release/abi version should be used for shared libs" >&5
-echo $ECHO_N "checking if release/abi version should be used for shared libs... $ECHO_C" >&6
+ echo "$as_me:11749: checking whether to use release or ABI version in shared library file names" >&5
+echo $ECHO_N "checking whether to use release or ABI version in shared library file names... $ECHO_C" >&6
# Check whether --with-shlib-version or --without-shlib-version was given.
if test "${with_shlib_version+set}" = set; then
@@ -11300,9 +11761,9 @@ if test "${with_shlib_version+set}" = set; then
cf_cv_shlib_version=$withval
;;
(*)
- echo "$as_me:11303: result: $withval" >&5
+ echo "$as_me:11764: result: $withval" >&5
echo "${ECHO_T}$withval" >&6
- { { echo "$as_me:11305: error: option value must be one of: rel, abi, or auto" >&5
+ { { echo "$as_me:11766: error: option value must be one of: rel, abi, or auto" >&5
echo "$as_me: error: option value must be one of: rel, abi, or auto" >&2;}
{ (exit 1); exit 1; }; }
;;
@@ -11311,7 +11772,7 @@ echo "$as_me: error: option value must be one of: rel, abi, or auto" >&2;}
else
cf_cv_shlib_version=auto
fi;
- echo "$as_me:11314: result: $cf_cv_shlib_version" >&5
+ echo "$as_me:11775: result: $cf_cv_shlib_version" >&5
echo "${ECHO_T}$cf_cv_shlib_version" >&6
cf_cv_rm_so_locs=no
@@ -11334,35 +11795,35 @@ echo "${ECHO_T}$cf_cv_shlib_version" >&6
if test "$cf_try_fPIC" = yes
then
- echo "$as_me:11337: checking which $CC option to use" >&5
+ echo "$as_me:11798: checking which $CC option to use" >&5
echo $ECHO_N "checking which $CC option to use... $ECHO_C" >&6
cf_save_CFLAGS="$CFLAGS"
for CC_SHARED_OPTS in -fPIC -fpic ''
do
CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 11344 "configure"
+#line 11805 "configure"
#include "confdefs.h"
#include <stdio.h>
int
main (void)
{
-int x = 1
+int x = 1; (void)x
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:11356: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:11817: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:11359: \$? = $ac_status" >&5
+ echo "$as_me:11820: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:11362: \"$ac_try\"") >&5
+ { (eval echo "$as_me:11823: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:11365: \$? = $ac_status" >&5
+ echo "$as_me:11826: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
break
else
@@ -11371,7 +11832,7 @@ cat "conftest.$ac_ext" >&5
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
done
- echo "$as_me:11374: result: $CC_SHARED_OPTS" >&5
+ echo "$as_me:11835: result: $CC_SHARED_OPTS" >&5
echo "${ECHO_T}$CC_SHARED_OPTS" >&6
CFLAGS="$cf_save_CFLAGS"
fi
@@ -11442,7 +11903,7 @@ CF_EOF
MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -dynamiclib -install_name ${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
- echo "$as_me:11445: checking if ld -search_paths_first works" >&5
+ echo "$as_me:11906: checking if ld -search_paths_first works" >&5
echo $ECHO_N "checking if ld -search_paths_first works... $ECHO_C" >&6
if test "${cf_cv_ldflags_search_paths_first+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -11451,7 +11912,7 @@ else
cf_save_LDFLAGS=$LDFLAGS
LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 11454 "configure"
+#line 11915 "configure"
#include "confdefs.h"
int
@@ -11463,16 +11924,16 @@ int i;
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:11466: \"$ac_link\"") >&5
+if { (eval echo "$as_me:11927: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:11469: \$? = $ac_status" >&5
+ echo "$as_me:11930: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:11472: \"$ac_try\"") >&5
+ { (eval echo "$as_me:11933: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:11475: \$? = $ac_status" >&5
+ echo "$as_me:11936: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_ldflags_search_paths_first=yes
else
@@ -11483,12 +11944,23 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LDFLAGS=$cf_save_LDFLAGS
fi
-echo "$as_me:11486: result: $cf_cv_ldflags_search_paths_first" >&5
+echo "$as_me:11947: result: $cf_cv_ldflags_search_paths_first" >&5
echo "${ECHO_T}$cf_cv_ldflags_search_paths_first" >&6
if test "$cf_cv_ldflags_search_paths_first" = yes; then
LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
fi
;;
+ (haiku*)
+
+ test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
+ if test "$cf_cv_shlib_version" = rel; then
+ cf_cv_shared_soname='`basename $@ .${REL_VERSION}`.${ABI_VERSION}'
+ else
+ cf_cv_shared_soname='`basename $@`'
+ fi
+
+ MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $@'
+ ;;
(hpux[7-8]*)
# HP-UX 8.07 ld lacks "+b" option used for libdir search-list
if test "$GCC" != yes; then
@@ -11802,11 +12274,11 @@ CF_EOF
# tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2
# tested with SunOS 5.10 (solaris 10) and gcc 3.4.3
if test "$DFT_LWR_MODEL" = "shared" ; then
- LOCAL_LDFLAGS="-R \$(LOCAL_LIBDIR):\${libdir}"
+ LOCAL_LDFLAGS="-R\$(LOCAL_LIBDIR):\${libdir}"
LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
fi
if test "$cf_cv_enable_rpath" = yes ; then
- EXTRA_LDFLAGS="-R \${libdir} $EXTRA_LDFLAGS"
+ EXTRA_LDFLAGS="-R\${libdir} $EXTRA_LDFLAGS"
fi
test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
@@ -11822,7 +12294,7 @@ CF_EOF
do
CFLAGS="$cf_shared_opts $cf_save_CFLAGS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 11825 "configure"
+#line 12297 "configure"
#include "confdefs.h"
#include <stdio.h>
int
@@ -11834,16 +12306,16 @@ printf("Hello\\n");
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:11837: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:12309: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:11840: \$? = $ac_status" >&5
+ echo "$as_me:12312: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:11843: \"$ac_try\"") >&5
+ { (eval echo "$as_me:12315: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:11846: \$? = $ac_status" >&5
+ echo "$as_me:12318: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
break
else
@@ -11854,9 +12326,9 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
done
CFLAGS="$cf_save_CFLAGS"
CC_SHARED_OPTS=$cf_shared_opts
- MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -dy -G -h '$cf_cv_shared_soname' -o $@'
+ MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -dy -G -Wl,-h,'$cf_cv_shared_soname' -o $@'
else
- MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -dy -G -h '$cf_cv_shared_soname' -o $@'
+ MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -dy -G -Wl,-h,'$cf_cv_shared_soname' -o $@'
fi
;;
(sysv5uw7*|unix_sv*)
@@ -11880,7 +12352,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes
;;
(*)
- { echo "$as_me:11883: WARNING: ignored --with-shlib-version" >&5
+ { echo "$as_me:12355: WARNING: ignored --with-shlib-version" >&5
echo "$as_me: WARNING: ignored --with-shlib-version" >&2;}
;;
esac
@@ -11890,7 +12362,7 @@ echo "$as_me: WARNING: ignored --with-shlib-version" >&2;}
if test -n "$cf_try_cflags"
then
cat > conftest.$ac_ext <<EOF
-#line 11893 "${as_me:-configure}"
+#line 12365 "${as_me:-configure}"
#include <stdio.h>
int main(int argc, char *argv[])
{
@@ -11902,18 +12374,18 @@ EOF
for cf_opt in $cf_try_cflags
do
CFLAGS="$cf_save_CFLAGS -$cf_opt"
- echo "$as_me:11905: checking if CFLAGS option -$cf_opt works" >&5
+ echo "$as_me:12377: checking if CFLAGS option -$cf_opt works" >&5
echo $ECHO_N "checking if CFLAGS option -$cf_opt works... $ECHO_C" >&6
- if { (eval echo "$as_me:11907: \"$ac_compile\"") >&5
+ if { (eval echo "$as_me:12379: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:11910: \$? = $ac_status" >&5
+ echo "$as_me:12382: \$? = $ac_status" >&5
(exit "$ac_status"); }; then
- echo "$as_me:11912: result: yes" >&5
+ echo "$as_me:12384: result: yes" >&5
echo "${ECHO_T}yes" >&6
cf_save_CFLAGS="$CFLAGS"
else
- echo "$as_me:11916: result: no" >&5
+ echo "$as_me:12388: result: no" >&5
echo "${ECHO_T}no" >&6
fi
done
@@ -11928,17 +12400,17 @@ echo "${ECHO_T}no" >&6
test -n "$verbose" && echo " CC_SHARED_OPTS: $CC_SHARED_OPTS" 1>&6
-echo "${as_me:-configure}:11931: testing CC_SHARED_OPTS: $CC_SHARED_OPTS ..." 1>&5
+echo "${as_me:-configure}:12403: testing CC_SHARED_OPTS: $CC_SHARED_OPTS ..." 1>&5
test -n "$verbose" && echo " MK_SHARED_LIB: $MK_SHARED_LIB" 1>&6
-echo "${as_me:-configure}:11935: testing MK_SHARED_LIB: $MK_SHARED_LIB ..." 1>&5
+echo "${as_me:-configure}:12407: testing MK_SHARED_LIB: $MK_SHARED_LIB ..." 1>&5
# The test/sample programs in the original tree link using rpath option.
# Make it optional for packagers.
if test -n "$LOCAL_LDFLAGS"
then
- echo "$as_me:11941: checking if you want to link sample programs with rpath option" >&5
+ echo "$as_me:12413: checking if you want to link sample programs with rpath option" >&5
echo $ECHO_N "checking if you want to link sample programs with rpath option... $ECHO_C" >&6
# Check whether --enable-rpath-link or --disable-rpath-link was given.
@@ -11948,7 +12420,7 @@ if test "${enable_rpath_link+set}" = set; then
else
with_rpath_link=yes
fi;
- echo "$as_me:11951: result: $with_rpath_link" >&5
+ echo "$as_me:12423: result: $with_rpath_link" >&5
echo "${ECHO_T}$with_rpath_link" >&6
if test "$with_rpath_link" = no
then
@@ -11961,7 +12433,7 @@ fi
### use option --enable-broken-linker to force on use of broken-linker support
-echo "$as_me:11964: checking if you want broken-linker support code" >&5
+echo "$as_me:12436: checking if you want broken-linker support code" >&5
echo $ECHO_N "checking if you want broken-linker support code... $ECHO_C" >&6
# Check whether --enable-broken_linker or --disable-broken_linker was given.
@@ -11971,7 +12443,7 @@ if test "${enable_broken_linker+set}" = set; then
else
with_broken_linker=no
fi;
-echo "$as_me:11974: result: $with_broken_linker" >&5
+echo "$as_me:12446: result: $with_broken_linker" >&5
echo "${ECHO_T}$with_broken_linker" >&6
: "${BROKEN_LINKER:=0}"
@@ -11986,14 +12458,14 @@ fi
# Check to define _XOPEN_SOURCE "automatically"
-echo "$as_me:11989: checking if the POSIX test-macros are already defined" >&5
+echo "$as_me:12461: checking if the POSIX test-macros are already defined" >&5
echo $ECHO_N "checking if the POSIX test-macros are already defined... $ECHO_C" >&6
if test "${cf_cv_posix_visible+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 11996 "configure"
+#line 12468 "configure"
#include "confdefs.h"
#include <stdio.h>
int
@@ -12012,16 +12484,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:12015: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:12487: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:12018: \$? = $ac_status" >&5
+ echo "$as_me:12490: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:12021: \"$ac_try\"") >&5
+ { (eval echo "$as_me:12493: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:12024: \$? = $ac_status" >&5
+ echo "$as_me:12496: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_posix_visible=no
else
@@ -12032,7 +12504,7 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:12035: result: $cf_cv_posix_visible" >&5
+echo "$as_me:12507: result: $cf_cv_posix_visible" >&5
echo "${ECHO_T}$cf_cv_posix_visible" >&6
if test "$cf_cv_posix_visible" = no; then
@@ -12045,9 +12517,6 @@ case "$host_os" in
(aix[4-7]*)
cf_xopen_source="-D_ALL_SOURCE"
;;
-(msys)
- cf_XOPEN_SOURCE=600
- ;;
(darwin[0-8].*)
cf_xopen_source="-D_APPLE_C_SOURCE"
;;
@@ -12073,18 +12542,18 @@ case "$host_os" in
cf_xopen_source="-D_SGI_SOURCE"
cf_XOPEN_SOURCE=
;;
-(linux*|uclinux*|gnu*|mint*|k*bsd*-gnu|cygwin)
+(linux*gnu|linux*gnuabi64|linux*gnuabin32|linux*gnueabi|linux*gnueabihf|linux*gnux32|uclinux*|gnu*|mint*|k*bsd*-gnu|cygwin|msys|mingw*|linux*uclibc)
cf_gnu_xopen_source=$cf_XOPEN_SOURCE
-echo "$as_me:12080: checking if this is the GNU C library" >&5
+echo "$as_me:12549: checking if this is the GNU C library" >&5
echo $ECHO_N "checking if this is the GNU C library... $ECHO_C" >&6
if test "${cf_cv_gnu_library+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 12087 "configure"
+#line 12556 "configure"
#include "confdefs.h"
#include <sys/types.h>
int
@@ -12103,16 +12572,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:12106: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:12575: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:12109: \$? = $ac_status" >&5
+ echo "$as_me:12578: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:12112: \"$ac_try\"") >&5
+ { (eval echo "$as_me:12581: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:12115: \$? = $ac_status" >&5
+ echo "$as_me:12584: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_gnu_library=yes
else
@@ -12123,7 +12592,7 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:12126: result: $cf_cv_gnu_library" >&5
+echo "$as_me:12595: result: $cf_cv_gnu_library" >&5
echo "${ECHO_T}$cf_cv_gnu_library" >&6
if test x$cf_cv_gnu_library = xyes; then
@@ -12131,7 +12600,7 @@ if test x$cf_cv_gnu_library = xyes; then
# With glibc 2.19 (13 years after this check was begun), _DEFAULT_SOURCE
# was changed to help a little. newlib incorporated the change about 4
# years later.
- echo "$as_me:12134: checking if _DEFAULT_SOURCE can be used as a basis" >&5
+ echo "$as_me:12603: checking if _DEFAULT_SOURCE can be used as a basis" >&5
echo $ECHO_N "checking if _DEFAULT_SOURCE can be used as a basis... $ECHO_C" >&6
if test "${cf_cv_gnu_library_219+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -12143,7 +12612,7 @@ else
CPPFLAGS="${CPPFLAGS}-D_DEFAULT_SOURCE"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 12146 "configure"
+#line 12615 "configure"
#include "confdefs.h"
#include <sys/types.h>
int
@@ -12162,16 +12631,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:12165: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:12634: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:12168: \$? = $ac_status" >&5
+ echo "$as_me:12637: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:12171: \"$ac_try\"") >&5
+ { (eval echo "$as_me:12640: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:12174: \$? = $ac_status" >&5
+ echo "$as_me:12643: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_gnu_library_219=yes
else
@@ -12183,12 +12652,12 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
CPPFLAGS="$cf_save"
fi
-echo "$as_me:12186: result: $cf_cv_gnu_library_219" >&5
+echo "$as_me:12655: result: $cf_cv_gnu_library_219" >&5
echo "${ECHO_T}$cf_cv_gnu_library_219" >&6
if test "x$cf_cv_gnu_library_219" = xyes; then
cf_save="$CPPFLAGS"
- echo "$as_me:12191: checking if _XOPEN_SOURCE=$cf_gnu_xopen_source works with _DEFAULT_SOURCE" >&5
+ echo "$as_me:12660: checking if _XOPEN_SOURCE=$cf_gnu_xopen_source works with _DEFAULT_SOURCE" >&5
echo $ECHO_N "checking if _XOPEN_SOURCE=$cf_gnu_xopen_source works with _DEFAULT_SOURCE... $ECHO_C" >&6
if test "${cf_cv_gnu_dftsrc_219+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -12293,7 +12762,7 @@ if test -n "$cf_new_extra_cppflags" ; then
fi
cat >"conftest.$ac_ext" <<_ACEOF
-#line 12296 "configure"
+#line 12765 "configure"
#include "confdefs.h"
#include <limits.h>
@@ -12313,16 +12782,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:12316: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:12785: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:12319: \$? = $ac_status" >&5
+ echo "$as_me:12788: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:12322: \"$ac_try\"") >&5
+ { (eval echo "$as_me:12791: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:12325: \$? = $ac_status" >&5
+ echo "$as_me:12794: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_gnu_dftsrc_219=yes
else
@@ -12333,7 +12802,7 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:12336: result: $cf_cv_gnu_dftsrc_219" >&5
+echo "$as_me:12805: result: $cf_cv_gnu_dftsrc_219" >&5
echo "${ECHO_T}$cf_cv_gnu_dftsrc_219" >&6
test "x$cf_cv_gnu_dftsrc_219" = "xyes" || CPPFLAGS="$cf_save"
else
@@ -12342,14 +12811,14 @@ echo "${ECHO_T}$cf_cv_gnu_dftsrc_219" >&6
if test "x$cf_cv_gnu_dftsrc_219" != xyes; then
- echo "$as_me:12345: checking if we must define _GNU_SOURCE" >&5
+ echo "$as_me:12814: checking if we must define _GNU_SOURCE" >&5
echo $ECHO_N "checking if we must define _GNU_SOURCE... $ECHO_C" >&6
if test "${cf_cv_gnu_source+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 12352 "configure"
+#line 12821 "configure"
#include "confdefs.h"
#include <sys/types.h>
int
@@ -12364,16 +12833,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:12367: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:12836: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:12370: \$? = $ac_status" >&5
+ echo "$as_me:12839: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:12373: \"$ac_try\"") >&5
+ { (eval echo "$as_me:12842: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:12376: \$? = $ac_status" >&5
+ echo "$as_me:12845: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_gnu_source=no
else
@@ -12480,7 +12949,7 @@ if test -n "$cf_new_extra_cppflags" ; then
fi
cat >"conftest.$ac_ext" <<_ACEOF
-#line 12483 "configure"
+#line 12952 "configure"
#include "confdefs.h"
#include <sys/types.h>
int
@@ -12495,16 +12964,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:12498: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:12967: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:12501: \$? = $ac_status" >&5
+ echo "$as_me:12970: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:12504: \"$ac_try\"") >&5
+ { (eval echo "$as_me:12973: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:12507: \$? = $ac_status" >&5
+ echo "$as_me:12976: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_gnu_source=no
else
@@ -12519,12 +12988,12 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:12522: result: $cf_cv_gnu_source" >&5
+echo "$as_me:12991: result: $cf_cv_gnu_source" >&5
echo "${ECHO_T}$cf_cv_gnu_source" >&6
if test "$cf_cv_gnu_source" = yes
then
- echo "$as_me:12527: checking if we should also define _DEFAULT_SOURCE" >&5
+ echo "$as_me:12996: checking if we should also define _DEFAULT_SOURCE" >&5
echo $ECHO_N "checking if we should also define _DEFAULT_SOURCE... $ECHO_C" >&6
if test "${cf_cv_default_source+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -12534,7 +13003,7 @@ else
CPPFLAGS="${CPPFLAGS}-D_GNU_SOURCE"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 12537 "configure"
+#line 13006 "configure"
#include "confdefs.h"
#include <sys/types.h>
int
@@ -12549,16 +13018,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:12552: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:13021: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:12555: \$? = $ac_status" >&5
+ echo "$as_me:13024: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:12558: \"$ac_try\"") >&5
+ { (eval echo "$as_me:13027: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:12561: \$? = $ac_status" >&5
+ echo "$as_me:13030: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_default_source=no
else
@@ -12569,7 +13038,7 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:12572: result: $cf_cv_default_source" >&5
+echo "$as_me:13041: result: $cf_cv_default_source" >&5
echo "${ECHO_T}$cf_cv_default_source" >&6
if test "$cf_cv_default_source" = yes
then
@@ -12606,16 +13075,16 @@ cf_trim_CPPFLAGS=`echo "$cf_save_CPPFLAGS" | \
sed -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
-e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?$//g'`
-echo "$as_me:12609: checking if we should define _POSIX_C_SOURCE" >&5
+echo "$as_me:13078: checking if we should define _POSIX_C_SOURCE" >&5
echo $ECHO_N "checking if we should define _POSIX_C_SOURCE... $ECHO_C" >&6
if test "${cf_cv_posix_c_source+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
-echo "${as_me:-configure}:12615: testing if the symbol is already defined go no further ..." 1>&5
+echo "${as_me:-configure}:13084: testing if the symbol is already defined go no further ..." 1>&5
cat >"conftest.$ac_ext" <<_ACEOF
-#line 12618 "configure"
+#line 13087 "configure"
#include "confdefs.h"
#include <sys/types.h>
int
@@ -12623,23 +13092,23 @@ main (void)
{
#ifndef _POSIX_C_SOURCE
-make an error
+#error _POSIX_C_SOURCE is not defined
#endif
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:12633: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:13102: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:12636: \$? = $ac_status" >&5
+ echo "$as_me:13105: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:12639: \"$ac_try\"") >&5
+ { (eval echo "$as_me:13108: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:12642: \$? = $ac_status" >&5
+ echo "$as_me:13111: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_posix_c_source=no
else
@@ -12660,7 +13129,7 @@ cf_want_posix_source=no
esac
if test "$cf_want_posix_source" = yes ; then
cat >"conftest.$ac_ext" <<_ACEOF
-#line 12663 "configure"
+#line 13132 "configure"
#include "confdefs.h"
#include <sys/types.h>
int
@@ -12668,23 +13137,23 @@ main (void)
{
#ifdef _POSIX_SOURCE
-make an error
+#error _POSIX_SOURCE is defined
#endif
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:12678: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:13147: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:12681: \$? = $ac_status" >&5
+ echo "$as_me:13150: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:12684: \"$ac_try\"") >&5
+ { (eval echo "$as_me:13153: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:12687: \$? = $ac_status" >&5
+ echo "$as_me:13156: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
:
else
@@ -12695,7 +13164,7 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "${as_me:-configure}:12698: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
+echo "${as_me:-configure}:13167: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
CFLAGS="$cf_trim_CFLAGS"
CPPFLAGS="$cf_trim_CPPFLAGS"
@@ -12703,10 +13172,10 @@ echo "${as_me:-configure}:12698: testing ifdef from value $cf_POSIX_C_SOURCE ...
test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS "
CPPFLAGS="${CPPFLAGS}$cf_cv_posix_c_source"
-echo "${as_me:-configure}:12706: testing if the second compile does not leave our definition intact error ..." 1>&5
+echo "${as_me:-configure}:13175: testing if the second compile does not leave our definition intact error ..." 1>&5
cat >"conftest.$ac_ext" <<_ACEOF
-#line 12709 "configure"
+#line 13178 "configure"
#include "confdefs.h"
#include <sys/types.h>
int
@@ -12714,23 +13183,23 @@ main (void)
{
#ifndef _POSIX_C_SOURCE
-make an error
+#error _POSIX_C_SOURCE is not defined
#endif
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:12724: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:13193: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:12727: \$? = $ac_status" >&5
+ echo "$as_me:13196: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:12730: \"$ac_try\"") >&5
+ { (eval echo "$as_me:13199: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:12733: \$? = $ac_status" >&5
+ echo "$as_me:13202: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
:
else
@@ -12746,7 +13215,7 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:12749: result: $cf_cv_posix_c_source" >&5
+echo "$as_me:13218: result: $cf_cv_posix_c_source" >&5
echo "${ECHO_T}$cf_cv_posix_c_source" >&6
if test "$cf_cv_posix_c_source" != no ; then
@@ -12859,7 +13328,16 @@ fi # cf_cv_posix_visible
(netbsd*)
cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
;;
-(openbsd[4-9]*)
+(openbsd[6-9]*)
+ # OpenBSD 6.x has broken locale support, both compile-time and runtime.
+ # see https://www.mail-archive.com/bugs@openbsd.org/msg13200.html
+ # Abusing the conformance level is a workaround.
+ { echo "$as_me:13335: WARNING: this system does not provide usable locale support" >&5
+echo "$as_me: WARNING: this system does not provide usable locale support" >&2;}
+ cf_xopen_source="-D_BSD_SOURCE"
+ cf_XOPEN_SOURCE=700
+ ;;
+(openbsd[4-5]*)
# setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw
cf_xopen_source="-D_BSD_SOURCE"
cf_XOPEN_SOURCE=600
@@ -12886,42 +13364,41 @@ fi # cf_cv_posix_visible
;;
(*)
-echo "$as_me:12889: checking if we should define _XOPEN_SOURCE" >&5
+echo "$as_me:13367: checking if we should define _XOPEN_SOURCE" >&5
echo $ECHO_N "checking if we should define _XOPEN_SOURCE... $ECHO_C" >&6
if test "${cf_cv_xopen_source+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 12896 "configure"
+#line 13374 "configure"
#include "confdefs.h"
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
+$ac_includes_default
int
main (void)
{
#ifndef _XOPEN_SOURCE
-make an error
+#error _XOPEN_SOURCE is not defined
#endif
+
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:12915: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:13392: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:12918: \$? = $ac_status" >&5
+ echo "$as_me:13395: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:12921: \"$ac_try\"") >&5
+ { (eval echo "$as_me:13398: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:12924: \$? = $ac_status" >&5
+ echo "$as_me:13401: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_xopen_source=no
else
@@ -12933,35 +13410,34 @@ cf_save="$CPPFLAGS"
CPPFLAGS="${CPPFLAGS}-D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 12936 "configure"
+#line 13413 "configure"
#include "confdefs.h"
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
+$ac_includes_default
int
main (void)
{
-#ifdef _XOPEN_SOURCE
-make an error
+#ifndef _XOPEN_SOURCE
+#error _XOPEN_SOURCE is not defined
#endif
+
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:12955: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:13431: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:12958: \$? = $ac_status" >&5
+ echo "$as_me:13434: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:12961: \"$ac_try\"") >&5
+ { (eval echo "$as_me:13437: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:12964: \$? = $ac_status" >&5
+ echo "$as_me:13440: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_xopen_source=no
else
@@ -12970,13 +13446,13 @@ cat "conftest.$ac_ext" >&5
cf_cv_xopen_source=$cf_XOPEN_SOURCE
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
- CPPFLAGS="$cf_save"
+ CPPFLAGS="$cf_save"
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:12979: result: $cf_cv_xopen_source" >&5
+echo "$as_me:13455: result: $cf_cv_xopen_source" >&5
echo "${ECHO_T}$cf_cv_xopen_source" >&6
if test "$cf_cv_xopen_source" != no ; then
@@ -12991,12 +13467,38 @@ CPPFLAGS=`echo "$CPPFLAGS" | \
cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
+for cf_add_cflags in $cf_temp_xopen_source
+do
+ case "x$cf_add_cflags" in
+ (x-[DU]*)
+
+cf_tmp_cflag=`echo "x$cf_add_cflags" | sed -e 's/^.//' -e 's/=.*//'`
+while true
+do
+ cf_old_cflag=`echo "x$CFLAGS" | sed -e 's/^.//' -e 's/[ ][ ]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[^ ][^ ]*\\)\?%%" -e 's/^[ ]*//' -e 's%[ ][ ]*-D% -D%g' -e 's%[ ][ ]*-I% -I%g'`
+ test "$CFLAGS" != "$cf_old_cflag" || break
+
+ CFLAGS="$cf_old_cflag"
+done
+
+cf_tmp_cflag=`echo "x$cf_add_cflags" | sed -e 's/^.//' -e 's/=.*//'`
+while true
+do
+ cf_old_cflag=`echo "x$CPPFLAGS" | sed -e 's/^.//' -e 's/[ ][ ]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[^ ][^ ]*\\)\?%%" -e 's/^[ ]*//' -e 's%[ ][ ]*-D% -D%g' -e 's%[ ][ ]*-I% -I%g'`
+ test "$CPPFLAGS" != "$cf_old_cflag" || break
+
+ CPPFLAGS="$cf_old_cflag"
+done
+
+ ;;
+ esac
+
cf_fix_cppflags=no
cf_new_cflags=
cf_new_cppflags=
cf_new_extra_cppflags=
-for cf_add_cflags in $cf_temp_xopen_source
+for cf_add_cflags in $cf_add_cflags
do
case "$cf_fix_cppflags" in
(no)
@@ -13089,8 +13591,12 @@ if test -n "$cf_new_extra_cppflags" ; then
fi
+done
+
fi
+ cf_save_xopen_cppflags="$CPPFLAGS"
+
if test "$cf_cv_posix_visible" = no; then
cf_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE
@@ -13106,16 +13612,16 @@ cf_trim_CPPFLAGS=`echo "$cf_save_CPPFLAGS" | \
sed -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
-e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?$//g'`
-echo "$as_me:13109: checking if we should define _POSIX_C_SOURCE" >&5
+echo "$as_me:13615: checking if we should define _POSIX_C_SOURCE" >&5
echo $ECHO_N "checking if we should define _POSIX_C_SOURCE... $ECHO_C" >&6
if test "${cf_cv_posix_c_source+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
-echo "${as_me:-configure}:13115: testing if the symbol is already defined go no further ..." 1>&5
+echo "${as_me:-configure}:13621: testing if the symbol is already defined go no further ..." 1>&5
cat >"conftest.$ac_ext" <<_ACEOF
-#line 13118 "configure"
+#line 13624 "configure"
#include "confdefs.h"
#include <sys/types.h>
int
@@ -13123,23 +13629,23 @@ main (void)
{
#ifndef _POSIX_C_SOURCE
-make an error
+#error _POSIX_C_SOURCE is not defined
#endif
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:13133: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:13639: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:13136: \$? = $ac_status" >&5
+ echo "$as_me:13642: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:13139: \"$ac_try\"") >&5
+ { (eval echo "$as_me:13645: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:13142: \$? = $ac_status" >&5
+ echo "$as_me:13648: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_posix_c_source=no
else
@@ -13160,7 +13666,7 @@ cf_want_posix_source=no
esac
if test "$cf_want_posix_source" = yes ; then
cat >"conftest.$ac_ext" <<_ACEOF
-#line 13163 "configure"
+#line 13669 "configure"
#include "confdefs.h"
#include <sys/types.h>
int
@@ -13168,23 +13674,23 @@ main (void)
{
#ifdef _POSIX_SOURCE
-make an error
+#error _POSIX_SOURCE is defined
#endif
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:13178: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:13684: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:13181: \$? = $ac_status" >&5
+ echo "$as_me:13687: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:13184: \"$ac_try\"") >&5
+ { (eval echo "$as_me:13690: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:13187: \$? = $ac_status" >&5
+ echo "$as_me:13693: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
:
else
@@ -13195,7 +13701,7 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "${as_me:-configure}:13198: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
+echo "${as_me:-configure}:13704: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
CFLAGS="$cf_trim_CFLAGS"
CPPFLAGS="$cf_trim_CPPFLAGS"
@@ -13203,10 +13709,10 @@ echo "${as_me:-configure}:13198: testing ifdef from value $cf_POSIX_C_SOURCE ...
test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS "
CPPFLAGS="${CPPFLAGS}$cf_cv_posix_c_source"
-echo "${as_me:-configure}:13206: testing if the second compile does not leave our definition intact error ..." 1>&5
+echo "${as_me:-configure}:13712: testing if the second compile does not leave our definition intact error ..." 1>&5
cat >"conftest.$ac_ext" <<_ACEOF
-#line 13209 "configure"
+#line 13715 "configure"
#include "confdefs.h"
#include <sys/types.h>
int
@@ -13214,23 +13720,23 @@ main (void)
{
#ifndef _POSIX_C_SOURCE
-make an error
+#error _POSIX_C_SOURCE is not defined
#endif
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:13224: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:13730: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:13227: \$? = $ac_status" >&5
+ echo "$as_me:13733: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:13230: \"$ac_try\"") >&5
+ { (eval echo "$as_me:13736: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:13233: \$? = $ac_status" >&5
+ echo "$as_me:13739: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
:
else
@@ -13246,7 +13752,7 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:13249: result: $cf_cv_posix_c_source" >&5
+echo "$as_me:13755: result: $cf_cv_posix_c_source" >&5
echo "${ECHO_T}$cf_cv_posix_c_source" >&6
if test "$cf_cv_posix_c_source" != no ; then
@@ -13355,17 +13861,96 @@ fi
fi # cf_cv_posix_visible
+ # Some of these niche implementations use copy/paste, double-check...
+ if test "$cf_cv_xopen_source" = no ; then
+ test -n "$verbose" && echo " checking if _POSIX_C_SOURCE interferes with _XOPEN_SOURCE" 1>&6
+
+echo "${as_me:-configure}:13868: testing checking if _POSIX_C_SOURCE interferes with _XOPEN_SOURCE ..." 1>&5
+
+ cat >"conftest.$ac_ext" <<_ACEOF
+#line 13871 "configure"
+#include "confdefs.h"
+
+$ac_includes_default
+
+int
+main (void)
+{
+
+#ifndef _XOPEN_SOURCE
+#error _XOPEN_SOURCE is not defined
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f "conftest.$ac_objext"
+if { (eval echo "$as_me:13889: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:13892: \$? = $ac_status" >&5
+ (exit "$ac_status"); } &&
+ { ac_try='test -s "conftest.$ac_objext"'
+ { (eval echo "$as_me:13895: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:13898: \$? = $ac_status" >&5
+ (exit "$ac_status"); }; }; then
+ :
+else
+ echo "$as_me: failed program was:" >&5
+cat "conftest.$ac_ext" >&5
+
+ { echo "$as_me:13905: WARNING: _POSIX_C_SOURCE definition is not usable" >&5
+echo "$as_me: WARNING: _POSIX_C_SOURCE definition is not usable" >&2;}
+ CPPFLAGS="$cf_save_xopen_cppflags"
+fi
+rm -f "conftest.$ac_objext" "conftest.$ac_ext"
+ fi
;;
esac
if test -n "$cf_xopen_source" ; then
+for cf_add_cflags in $cf_xopen_source
+do
+ case "x$cf_add_cflags" in
+ (x-[DU]*)
+
+cf_tmp_cflag=`echo "x$cf_add_cflags" | sed -e 's/^.//' -e 's/=.*//'`
+while true
+do
+ cf_old_cflag=`echo "x$CFLAGS" | sed -e 's/^.//' -e 's/[ ][ ]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[^ ][^ ]*\\)\?%%" -e 's/^[ ]*//' -e 's%[ ][ ]*-D% -D%g' -e 's%[ ][ ]*-I% -I%g'`
+ test "$CFLAGS" != "$cf_old_cflag" || break
+ test -n "$verbose" && echo " removing old option $cf_add_cflags from CFLAGS" 1>&6
+
+echo "${as_me:-configure}:13928: testing removing old option $cf_add_cflags from CFLAGS ..." 1>&5
+
+ CFLAGS="$cf_old_cflag"
+done
+
+cf_tmp_cflag=`echo "x$cf_add_cflags" | sed -e 's/^.//' -e 's/=.*//'`
+while true
+do
+ cf_old_cflag=`echo "x$CPPFLAGS" | sed -e 's/^.//' -e 's/[ ][ ]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[^ ][^ ]*\\)\?%%" -e 's/^[ ]*//' -e 's%[ ][ ]*-D% -D%g' -e 's%[ ][ ]*-I% -I%g'`
+ test "$CPPFLAGS" != "$cf_old_cflag" || break
+ test -n "$verbose" && echo " removing old option $cf_add_cflags from CPPFLAGS" 1>&6
+
+echo "${as_me:-configure}:13940: testing removing old option $cf_add_cflags from CPPFLAGS ..." 1>&5
+
+ CPPFLAGS="$cf_old_cflag"
+done
+
+ ;;
+ esac
+
cf_fix_cppflags=no
cf_new_cflags=
cf_new_cppflags=
cf_new_extra_cppflags=
-for cf_add_cflags in $cf_xopen_source
+for cf_add_cflags in $cf_add_cflags
do
case "$cf_fix_cppflags" in
(no)
@@ -13440,7 +14025,7 @@ done
if test -n "$cf_new_cflags" ; then
test -n "$verbose" && echo " add to \$CFLAGS $cf_new_cflags" 1>&6
-echo "${as_me:-configure}:13443: testing add to \$CFLAGS $cf_new_cflags ..." 1>&5
+echo "${as_me:-configure}:14028: testing add to \$CFLAGS $cf_new_cflags ..." 1>&5
test -n "$CFLAGS" && CFLAGS="$CFLAGS "
CFLAGS="${CFLAGS}$cf_new_cflags"
@@ -13450,7 +14035,7 @@ fi
if test -n "$cf_new_cppflags" ; then
test -n "$verbose" && echo " add to \$CPPFLAGS $cf_new_cppflags" 1>&6
-echo "${as_me:-configure}:13453: testing add to \$CPPFLAGS $cf_new_cppflags ..." 1>&5
+echo "${as_me:-configure}:14038: testing add to \$CPPFLAGS $cf_new_cppflags ..." 1>&5
test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS "
CPPFLAGS="${CPPFLAGS}$cf_new_cppflags"
@@ -13460,20 +14045,22 @@ fi
if test -n "$cf_new_extra_cppflags" ; then
test -n "$verbose" && echo " add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags" 1>&6
-echo "${as_me:-configure}:13463: testing add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags ..." 1>&5
+echo "${as_me:-configure}:14048: testing add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags ..." 1>&5
test -n "$EXTRA_CPPFLAGS" && EXTRA_CPPFLAGS="$EXTRA_CPPFLAGS "
EXTRA_CPPFLAGS="${EXTRA_CPPFLAGS}$cf_new_extra_cppflags"
fi
+done
+
fi
if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then
- echo "$as_me:13473: checking if _XOPEN_SOURCE really is set" >&5
+ echo "$as_me:14060: checking if _XOPEN_SOURCE really is set" >&5
echo $ECHO_N "checking if _XOPEN_SOURCE really is set... $ECHO_C" >&6
cat >"conftest.$ac_ext" <<_ACEOF
-#line 13476 "configure"
+#line 14063 "configure"
#include "confdefs.h"
#include <stdlib.h>
int
@@ -13481,23 +14068,23 @@ main (void)
{
#ifndef _XOPEN_SOURCE
-make an error
+#error _XOPEN_SOURCE is not defined
#endif
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:13491: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:14078: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:13494: \$? = $ac_status" >&5
+ echo "$as_me:14081: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:13497: \"$ac_try\"") >&5
+ { (eval echo "$as_me:14084: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:13500: \$? = $ac_status" >&5
+ echo "$as_me:14087: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_XOPEN_SOURCE_set=yes
else
@@ -13506,12 +14093,12 @@ cat "conftest.$ac_ext" >&5
cf_XOPEN_SOURCE_set=no
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
- echo "$as_me:13509: result: $cf_XOPEN_SOURCE_set" >&5
+ echo "$as_me:14096: result: $cf_XOPEN_SOURCE_set" >&5
echo "${ECHO_T}$cf_XOPEN_SOURCE_set" >&6
if test "$cf_XOPEN_SOURCE_set" = yes
then
cat >"conftest.$ac_ext" <<_ACEOF
-#line 13514 "configure"
+#line 14101 "configure"
#include "confdefs.h"
#include <stdlib.h>
int
@@ -13519,23 +14106,23 @@ main (void)
{
#if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE
-make an error
+#error (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE
#endif
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:13529: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:14116: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:13532: \$? = $ac_status" >&5
+ echo "$as_me:14119: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:13535: \"$ac_try\"") >&5
+ { (eval echo "$as_me:14122: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:13538: \$? = $ac_status" >&5
+ echo "$as_me:14125: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_XOPEN_SOURCE_set_ok=yes
else
@@ -13546,47 +14133,46 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
if test "$cf_XOPEN_SOURCE_set_ok" = no
then
- { echo "$as_me:13549: WARNING: _XOPEN_SOURCE is lower than requested" >&5
+ { echo "$as_me:14136: WARNING: _XOPEN_SOURCE is lower than requested" >&5
echo "$as_me: WARNING: _XOPEN_SOURCE is lower than requested" >&2;}
fi
else
-echo "$as_me:13554: checking if we should define _XOPEN_SOURCE" >&5
+echo "$as_me:14141: checking if we should define _XOPEN_SOURCE" >&5
echo $ECHO_N "checking if we should define _XOPEN_SOURCE... $ECHO_C" >&6
if test "${cf_cv_xopen_source+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 13561 "configure"
+#line 14148 "configure"
#include "confdefs.h"
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
+$ac_includes_default
int
main (void)
{
#ifndef _XOPEN_SOURCE
-make an error
+#error _XOPEN_SOURCE is not defined
#endif
+
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:13580: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:14166: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:13583: \$? = $ac_status" >&5
+ echo "$as_me:14169: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:13586: \"$ac_try\"") >&5
+ { (eval echo "$as_me:14172: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:13589: \$? = $ac_status" >&5
+ echo "$as_me:14175: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_xopen_source=no
else
@@ -13598,35 +14184,34 @@ cf_save="$CPPFLAGS"
CPPFLAGS="${CPPFLAGS}-D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 13601 "configure"
+#line 14187 "configure"
#include "confdefs.h"
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
+$ac_includes_default
int
main (void)
{
-#ifdef _XOPEN_SOURCE
-make an error
+#ifndef _XOPEN_SOURCE
+#error _XOPEN_SOURCE is not defined
#endif
+
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:13620: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:14205: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:13623: \$? = $ac_status" >&5
+ echo "$as_me:14208: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:13626: \"$ac_try\"") >&5
+ { (eval echo "$as_me:14211: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:13629: \$? = $ac_status" >&5
+ echo "$as_me:14214: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_xopen_source=no
else
@@ -13635,13 +14220,13 @@ cat "conftest.$ac_ext" >&5
cf_cv_xopen_source=$cf_XOPEN_SOURCE
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
- CPPFLAGS="$cf_save"
+ CPPFLAGS="$cf_save"
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:13644: result: $cf_cv_xopen_source" >&5
+echo "$as_me:14229: result: $cf_cv_xopen_source" >&5
echo "${ECHO_T}$cf_cv_xopen_source" >&6
if test "$cf_cv_xopen_source" != no ; then
@@ -13656,12 +14241,38 @@ CPPFLAGS=`echo "$CPPFLAGS" | \
cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
+for cf_add_cflags in $cf_temp_xopen_source
+do
+ case "x$cf_add_cflags" in
+ (x-[DU]*)
+
+cf_tmp_cflag=`echo "x$cf_add_cflags" | sed -e 's/^.//' -e 's/=.*//'`
+while true
+do
+ cf_old_cflag=`echo "x$CFLAGS" | sed -e 's/^.//' -e 's/[ ][ ]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[^ ][^ ]*\\)\?%%" -e 's/^[ ]*//' -e 's%[ ][ ]*-D% -D%g' -e 's%[ ][ ]*-I% -I%g'`
+ test "$CFLAGS" != "$cf_old_cflag" || break
+
+ CFLAGS="$cf_old_cflag"
+done
+
+cf_tmp_cflag=`echo "x$cf_add_cflags" | sed -e 's/^.//' -e 's/=.*//'`
+while true
+do
+ cf_old_cflag=`echo "x$CPPFLAGS" | sed -e 's/^.//' -e 's/[ ][ ]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[^ ][^ ]*\\)\?%%" -e 's/^[ ]*//' -e 's%[ ][ ]*-D% -D%g' -e 's%[ ][ ]*-I% -I%g'`
+ test "$CPPFLAGS" != "$cf_old_cflag" || break
+
+ CPPFLAGS="$cf_old_cflag"
+done
+
+ ;;
+ esac
+
cf_fix_cppflags=no
cf_new_cflags=
cf_new_cppflags=
cf_new_extra_cppflags=
-for cf_add_cflags in $cf_temp_xopen_source
+for cf_add_cflags in $cf_add_cflags
do
case "$cf_fix_cppflags" in
(no)
@@ -13754,12 +14365,242 @@ if test -n "$cf_new_extra_cppflags" ; then
fi
+done
+
fi
fi
fi
fi # cf_cv_posix_visible
+echo "$as_me:14376: checking for ANSI C header files" >&5
+echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
+if test "${ac_cv_header_stdc+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >"conftest.$ac_ext" <<_ACEOF
+#line 14382 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+_ACEOF
+if { (eval echo "$as_me:14390: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+ (eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
+ ac_status=$?
+ $EGREP -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:14396: \$? = $ac_status" >&5
+ (exit "$ac_status"); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ ac_cv_header_stdc=yes
+else
+ echo "$as_me: failed program was:" >&5
+ cat "conftest.$ac_ext" >&5
+ ac_cv_header_stdc=no
+fi
+rm -f conftest.err "conftest.$ac_ext"
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat >"conftest.$ac_ext" <<_ACEOF
+#line 14418 "configure"
+#include "confdefs.h"
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "memchr" >/dev/null 2>&1; then
+ :
+else
+ ac_cv_header_stdc=no
+fi
+rm -rf conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat >"conftest.$ac_ext" <<_ACEOF
+#line 14436 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "free" >/dev/null 2>&1; then
+ :
+else
+ ac_cv_header_stdc=no
+fi
+rm -rf conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ if test "$cross_compiling" = yes; then
+ :
+else
+ cat >"conftest.$ac_ext" <<_ACEOF
+#line 14457 "configure"
+#include "confdefs.h"
+#include <ctype.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main (void)
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ $ac_main_return(2);
+ $ac_main_return (0);
+}
+_ACEOF
+rm -f "conftest$ac_exeext"
+if { (eval echo "$as_me:14483: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:14486: \$? = $ac_status" >&5
+ (exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
+ { (eval echo "$as_me:14488: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:14491: \$? = $ac_status" >&5
+ (exit "$ac_status"); }; }; then
+ :
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+cat "conftest.$ac_ext" >&5
+ac_cv_header_stdc=no
+fi
+rm -f core ./core.* ./*.core "conftest$ac_exeext" "conftest.$ac_objext" "conftest.$ac_ext"
+fi
+fi
+fi
+echo "$as_me:14504: result: $ac_cv_header_stdc" >&5
+echo "${ECHO_T}$ac_cv_header_stdc" >&6
+if test $ac_cv_header_stdc = yes; then
+
+cat >>confdefs.h <<\EOF
+#define STDC_HEADERS 1
+EOF
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+ inttypes.h stdint.h unistd.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:14520: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >"conftest.$ac_ext" <<_ACEOF
+#line 14526 "configure"
+#include "confdefs.h"
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f "conftest.$ac_objext"
+if { (eval echo "$as_me:14532: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:14535: \$? = $ac_status" >&5
+ (exit "$ac_status"); } &&
+ { ac_try='test -s "conftest.$ac_objext"'
+ { (eval echo "$as_me:14538: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:14541: \$? = $ac_status" >&5
+ (exit "$ac_status"); }; }; then
+ eval "$as_ac_Header=yes"
+else
+ echo "$as_me: failed program was:" >&5
+cat "conftest.$ac_ext" >&5
+eval "$as_ac_Header=no"
+fi
+rm -f "conftest.$ac_objext" "conftest.$ac_ext"
+fi
+echo "$as_me:14551: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
+echo "${ECHO_T}`eval echo '${'"$as_ac_Header"'}'`" >&6
+if test "`eval echo '${'"$as_ac_Header"'}'`" = yes; then
+ cat >>confdefs.h <<EOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+EOF
+
+fi
+done
+
+echo "$as_me:14561: checking whether exit is declared" >&5
+echo $ECHO_N "checking whether exit is declared... $ECHO_C" >&6
+if test "${ac_cv_have_decl_exit+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >"conftest.$ac_ext" <<_ACEOF
+#line 14567 "configure"
+#include "confdefs.h"
+$ac_includes_default
+int
+main (void)
+{
+#ifndef exit
+ (void) exit;
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f "conftest.$ac_objext"
+if { (eval echo "$as_me:14582: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:14585: \$? = $ac_status" >&5
+ (exit "$ac_status"); } &&
+ { ac_try='test -s "conftest.$ac_objext"'
+ { (eval echo "$as_me:14588: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:14591: \$? = $ac_status" >&5
+ (exit "$ac_status"); }; }; then
+ ac_cv_have_decl_exit=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat "conftest.$ac_ext" >&5
+ac_cv_have_decl_exit=no
+fi
+rm -f "conftest.$ac_objext" "conftest.$ac_ext"
+fi
+echo "$as_me:14601: result: $ac_cv_have_decl_exit" >&5
+echo "${ECHO_T}$ac_cv_have_decl_exit" >&6
+
# Check whether --enable-largefile or --disable-largefile was given.
if test "${enable_largefile+set}" = set; then
enableval="$enable_largefile"
@@ -13767,7 +14608,7 @@ if test "${enable_largefile+set}" = set; then
fi;
if test "$enable_largefile" != no; then
- echo "$as_me:13770: checking for special C compiler options needed for large files" >&5
+ echo "$as_me:14611: checking for special C compiler options needed for large files" >&5
echo $ECHO_N "checking for special C compiler options needed for large files... $ECHO_C" >&6
if test "${ac_cv_sys_largefile_CC+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -13779,7 +14620,7 @@ else
# IRIX 6.2 and later do not support large files by default,
# so use the C compiler's -n32 option if that helps.
cat >"conftest.$ac_ext" <<_ACEOF
-#line 13782 "configure"
+#line 14623 "configure"
#include "confdefs.h"
#include <sys/types.h>
/* Check that off_t can represent 2**63 - 1 correctly.
@@ -13799,16 +14640,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:13802: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:14643: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:13805: \$? = $ac_status" >&5
+ echo "$as_me:14646: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:13808: \"$ac_try\"") >&5
+ { (eval echo "$as_me:14649: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:13811: \$? = $ac_status" >&5
+ echo "$as_me:14652: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
break
else
@@ -13818,16 +14659,16 @@ fi
rm -f "conftest.$ac_objext"
CC="$CC -n32"
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:13821: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:14662: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:13824: \$? = $ac_status" >&5
+ echo "$as_me:14665: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:13827: \"$ac_try\"") >&5
+ { (eval echo "$as_me:14668: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:13830: \$? = $ac_status" >&5
+ echo "$as_me:14671: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_sys_largefile_CC=' -n32'; break
else
@@ -13841,13 +14682,13 @@ rm -f "conftest.$ac_objext"
rm -f "conftest.$ac_ext"
fi
fi
-echo "$as_me:13844: result: $ac_cv_sys_largefile_CC" >&5
+echo "$as_me:14685: result: $ac_cv_sys_largefile_CC" >&5
echo "${ECHO_T}$ac_cv_sys_largefile_CC" >&6
if test "$ac_cv_sys_largefile_CC" != no; then
CC=$CC$ac_cv_sys_largefile_CC
fi
- echo "$as_me:13850: checking for _FILE_OFFSET_BITS value needed for large files" >&5
+ echo "$as_me:14691: checking for _FILE_OFFSET_BITS value needed for large files" >&5
echo $ECHO_N "checking for _FILE_OFFSET_BITS value needed for large files... $ECHO_C" >&6
if test "${ac_cv_sys_file_offset_bits+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -13855,7 +14696,7 @@ else
while :; do
ac_cv_sys_file_offset_bits=no
cat >"conftest.$ac_ext" <<_ACEOF
-#line 13858 "configure"
+#line 14699 "configure"
#include "confdefs.h"
#include <sys/types.h>
/* Check that off_t can represent 2**63 - 1 correctly.
@@ -13875,16 +14716,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:13878: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:14719: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:13881: \$? = $ac_status" >&5
+ echo "$as_me:14722: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:13884: \"$ac_try\"") >&5
+ { (eval echo "$as_me:14725: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:13887: \$? = $ac_status" >&5
+ echo "$as_me:14728: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
break
else
@@ -13893,7 +14734,7 @@ cat "conftest.$ac_ext" >&5
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 13896 "configure"
+#line 14737 "configure"
#include "confdefs.h"
#define _FILE_OFFSET_BITS 64
#include <sys/types.h>
@@ -13914,16 +14755,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:13917: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:14758: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:13920: \$? = $ac_status" >&5
+ echo "$as_me:14761: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:13923: \"$ac_try\"") >&5
+ { (eval echo "$as_me:14764: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:13926: \$? = $ac_status" >&5
+ echo "$as_me:14767: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_sys_file_offset_bits=64; break
else
@@ -13934,7 +14775,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
break
done
fi
-echo "$as_me:13937: result: $ac_cv_sys_file_offset_bits" >&5
+echo "$as_me:14778: result: $ac_cv_sys_file_offset_bits" >&5
echo "${ECHO_T}$ac_cv_sys_file_offset_bits" >&6
if test "$ac_cv_sys_file_offset_bits" != no; then
@@ -13944,7 +14785,7 @@ EOF
fi
rm -rf conftest*
- echo "$as_me:13947: checking for _LARGE_FILES value needed for large files" >&5
+ echo "$as_me:14788: checking for _LARGE_FILES value needed for large files" >&5
echo $ECHO_N "checking for _LARGE_FILES value needed for large files... $ECHO_C" >&6
if test "${ac_cv_sys_large_files+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -13952,7 +14793,7 @@ else
while :; do
ac_cv_sys_large_files=no
cat >"conftest.$ac_ext" <<_ACEOF
-#line 13955 "configure"
+#line 14796 "configure"
#include "confdefs.h"
#include <sys/types.h>
/* Check that off_t can represent 2**63 - 1 correctly.
@@ -13972,16 +14813,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:13975: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:14816: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:13978: \$? = $ac_status" >&5
+ echo "$as_me:14819: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:13981: \"$ac_try\"") >&5
+ { (eval echo "$as_me:14822: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:13984: \$? = $ac_status" >&5
+ echo "$as_me:14825: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
break
else
@@ -13990,7 +14831,7 @@ cat "conftest.$ac_ext" >&5
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 13993 "configure"
+#line 14834 "configure"
#include "confdefs.h"
#define _LARGE_FILES 1
#include <sys/types.h>
@@ -14011,16 +14852,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:14014: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:14855: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:14017: \$? = $ac_status" >&5
+ echo "$as_me:14858: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:14020: \"$ac_try\"") >&5
+ { (eval echo "$as_me:14861: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:14023: \$? = $ac_status" >&5
+ echo "$as_me:14864: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_sys_large_files=1; break
else
@@ -14031,7 +14872,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
break
done
fi
-echo "$as_me:14034: result: $ac_cv_sys_large_files" >&5
+echo "$as_me:14875: result: $ac_cv_sys_large_files" >&5
echo "${ECHO_T}$ac_cv_sys_large_files" >&6
if test "$ac_cv_sys_large_files" != no; then
@@ -14044,7 +14885,7 @@ rm -rf conftest*
fi
if test "$enable_largefile" != no ; then
- echo "$as_me:14047: checking for _LARGEFILE_SOURCE value needed for large files" >&5
+ echo "$as_me:14888: checking for _LARGEFILE_SOURCE value needed for large files" >&5
echo $ECHO_N "checking for _LARGEFILE_SOURCE value needed for large files... $ECHO_C" >&6
if test "${ac_cv_sys_largefile_source+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -14052,28 +14893,31 @@ else
while :; do
ac_cv_sys_largefile_source=no
cat >"conftest.$ac_ext" <<_ACEOF
-#line 14055 "configure"
+#line 14896 "configure"
#include "confdefs.h"
#include <stdio.h>
+ #include <sys/types.h>
int
main (void)
{
-return !fseeko;
+
+ int (*my_fseeko)(FILE *, off_t, int) = fseeko;
+ return my_fseeko(stdin, 0, 0);
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:14067: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:14911: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:14070: \$? = $ac_status" >&5
+ echo "$as_me:14914: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:14073: \"$ac_try\"") >&5
+ { (eval echo "$as_me:14917: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:14076: \$? = $ac_status" >&5
+ echo "$as_me:14920: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
break
else
@@ -14082,29 +14926,32 @@ cat "conftest.$ac_ext" >&5
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 14085 "configure"
+#line 14929 "configure"
#include "confdefs.h"
#define _LARGEFILE_SOURCE 1
#include <stdio.h>
+ #include <sys/types.h>
int
main (void)
{
-return !fseeko;
+
+ int (*my_fseeko)(FILE *, off_t, int) = fseeko;
+ return my_fseeko(stdin, 0, 0);
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:14098: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:14945: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:14101: \$? = $ac_status" >&5
+ echo "$as_me:14948: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:14104: \"$ac_try\"") >&5
+ { (eval echo "$as_me:14951: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:14107: \$? = $ac_status" >&5
+ echo "$as_me:14954: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_sys_largefile_source=1; break
else
@@ -14115,7 +14962,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
break
done
fi
-echo "$as_me:14118: result: $ac_cv_sys_largefile_source" >&5
+echo "$as_me:14965: result: $ac_cv_sys_largefile_source" >&5
echo "${ECHO_T}$ac_cv_sys_largefile_source" >&6
if test "$ac_cv_sys_largefile_source" != no; then
@@ -14129,34 +14976,36 @@ rm -rf conftest*
# We used to try defining _XOPEN_SOURCE=500 too, to work around a bug
# in glibc 2.1.3, but that breaks too many other things.
# If you want fseeko and ftello with glibc, upgrade to a fixed glibc.
-echo "$as_me:14132: checking for fseeko" >&5
+echo "$as_me:14979: checking for fseeko" >&5
echo $ECHO_N "checking for fseeko... $ECHO_C" >&6
if test "${ac_cv_func_fseeko+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 14138 "configure"
+#line 14985 "configure"
#include "confdefs.h"
#include <stdio.h>
+ #include <sys/types.h>
int
main (void)
{
-return fseeko && fseeko (stdin, 0, 0);
+int (*my_fseeko)(FILE *, off_t, int) = fseeko;
+ return my_fseeko && my_fseeko (stdin, 0, 0);
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:14150: \"$ac_link\"") >&5
+if { (eval echo "$as_me:14999: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:14153: \$? = $ac_status" >&5
+ echo "$as_me:15002: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:14156: \"$ac_try\"") >&5
+ { (eval echo "$as_me:15005: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:14159: \$? = $ac_status" >&5
+ echo "$as_me:15008: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_func_fseeko=yes
else
@@ -14166,7 +15015,7 @@ ac_cv_func_fseeko=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:14169: result: $ac_cv_func_fseeko" >&5
+echo "$as_me:15018: result: $ac_cv_func_fseeko" >&5
echo "${ECHO_T}$ac_cv_func_fseeko" >&6
if test $ac_cv_func_fseeko = yes; then
@@ -14205,28 +15054,32 @@ fi
fi
- echo "$as_me:14208: checking whether to use struct dirent64" >&5
+ echo "$as_me:15057: checking whether to use struct dirent64" >&5
echo $ECHO_N "checking whether to use struct dirent64... $ECHO_C" >&6
if test "${cf_cv_struct_dirent64+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 14215 "configure"
+#line 15064 "configure"
#include "confdefs.h"
#pragma GCC diagnostic error "-Wincompatible-pointer-types"
#include <sys/types.h>
#include <dirent.h>
+#ifndef __REDIRECT
+/* if transitional largefile support is setup, this is true */
+extern struct dirent64 * readdir(DIR *);
+#endif
+
int
main (void)
{
- /* 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);
+ DIR *dp = opendir(".");
+ struct dirent64 *x = readdir(dp);
+ struct dirent *y = readdir(dp);
int z = x - y;
(void)z;
@@ -14235,16 +15088,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:14238: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:15091: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:14241: \$? = $ac_status" >&5
+ echo "$as_me:15094: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:14244: \"$ac_try\"") >&5
+ { (eval echo "$as_me:15097: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:14247: \$? = $ac_status" >&5
+ echo "$as_me:15100: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_struct_dirent64=yes
else
@@ -14255,7 +15108,7 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:14258: result: $cf_cv_struct_dirent64" >&5
+echo "$as_me:15111: result: $cf_cv_struct_dirent64" >&5
echo "${ECHO_T}$cf_cv_struct_dirent64" >&6
test "$cf_cv_struct_dirent64" = yes &&
cat >>confdefs.h <<\EOF
@@ -14265,7 +15118,7 @@ EOF
fi
### Enable compiling-in rcs id's
-echo "$as_me:14268: checking if RCS identifiers should be compiled-in" >&5
+echo "$as_me:15121: checking if RCS identifiers should be compiled-in" >&5
echo $ECHO_N "checking if RCS identifiers should be compiled-in... $ECHO_C" >&6
# Check whether --with-rcs-ids or --without-rcs-ids was given.
@@ -14275,7 +15128,7 @@ if test "${with_rcs_ids+set}" = set; then
else
with_rcs_ids=no
fi;
-echo "$as_me:14278: result: $with_rcs_ids" >&5
+echo "$as_me:15131: result: $with_rcs_ids" >&5
echo "${ECHO_T}$with_rcs_ids" >&6
test "$with_rcs_ids" = yes &&
cat >>confdefs.h <<\EOF
@@ -14285,7 +15138,7 @@ EOF
###############################################################################
### Note that some functions (such as const) are normally disabled anyway.
-echo "$as_me:14288: checking if you want to build with function extensions" >&5
+echo "$as_me:15141: checking if you want to build with function extensions" >&5
echo $ECHO_N "checking if you want to build with function extensions... $ECHO_C" >&6
# Check whether --enable-ext-funcs or --disable-ext-funcs was given.
@@ -14295,7 +15148,7 @@ if test "${enable_ext_funcs+set}" = set; then
else
with_ext_funcs=yes
fi;
-echo "$as_me:14298: result: $with_ext_funcs" >&5
+echo "$as_me:15151: result: $with_ext_funcs" >&5
echo "${ECHO_T}$with_ext_funcs" >&6
if test "$with_ext_funcs" = yes ; then
NCURSES_EXT_FUNCS=1
@@ -14313,7 +15166,7 @@ else
fi
### use option --enable-const to turn on use of const beyond that in XSI.
-echo "$as_me:14316: checking for extended use of const keyword" >&5
+echo "$as_me:15169: checking for extended use of const keyword" >&5
echo $ECHO_N "checking for extended use of const keyword... $ECHO_C" >&6
# Check whether --enable-const or --disable-const was given.
@@ -14323,7 +15176,7 @@ if test "${enable_const+set}" = set; then
else
with_ext_const=no
fi;
-echo "$as_me:14326: result: $with_ext_const" >&5
+echo "$as_me:15179: result: $with_ext_const" >&5
echo "${ECHO_T}$with_ext_const" >&6
NCURSES_CONST='/*nothing*/'
if test "$with_ext_const" = yes ; then
@@ -14333,7 +15186,7 @@ fi
###############################################################################
# These options are relatively safe to experiment with.
-echo "$as_me:14336: checking if you want all development code" >&5
+echo "$as_me:15189: checking if you want all development code" >&5
echo $ECHO_N "checking if you want all development code... $ECHO_C" >&6
# Check whether --with-develop or --without-develop was given.
@@ -14343,7 +15196,7 @@ if test "${with_develop+set}" = set; then
else
with_develop=no
fi;
-echo "$as_me:14346: result: $with_develop" >&5
+echo "$as_me:15199: result: $with_develop" >&5
echo "${ECHO_T}$with_develop" >&6
###############################################################################
@@ -14352,7 +15205,7 @@ echo "${ECHO_T}$with_develop" >&6
# This is still experimental (20080329), but should ultimately be moved to
# the script-block --with-normal, etc.
-echo "$as_me:14355: checking if you want to link with the pthread library" >&5
+echo "$as_me:15208: checking if you want to link with the pthread library" >&5
echo $ECHO_N "checking if you want to link with the pthread library... $ECHO_C" >&6
# Check whether --with-pthread or --without-pthread was given.
@@ -14362,27 +15215,27 @@ if test "${with_pthread+set}" = set; then
else
with_pthread=no
fi;
-echo "$as_me:14365: result: $with_pthread" >&5
+echo "$as_me:15218: result: $with_pthread" >&5
echo "${ECHO_T}$with_pthread" >&6
if test "$with_pthread" != no ; then
- echo "$as_me:14369: checking for pthread.h" >&5
+ echo "$as_me:15222: checking for pthread.h" >&5
echo $ECHO_N "checking for pthread.h... $ECHO_C" >&6
if test "${ac_cv_header_pthread_h+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 14375 "configure"
+#line 15228 "configure"
#include "confdefs.h"
#include <pthread.h>
_ACEOF
-if { (eval echo "$as_me:14379: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:15232: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:14385: \$? = $ac_status" >&5
+ echo "$as_me:15238: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -14401,7 +15254,7 @@ else
fi
rm -f conftest.err "conftest.$ac_ext"
fi
-echo "$as_me:14404: result: $ac_cv_header_pthread_h" >&5
+echo "$as_me:15257: result: $ac_cv_header_pthread_h" >&5
echo "${ECHO_T}$ac_cv_header_pthread_h" >&6
if test "$ac_cv_header_pthread_h" = yes; then
@@ -14411,7 +15264,7 @@ EOF
for cf_lib_pthread in pthread c_r
do
- echo "$as_me:14414: checking if we can link with the $cf_lib_pthread library" >&5
+ echo "$as_me:15267: checking if we can link with the $cf_lib_pthread library" >&5
echo $ECHO_N "checking if we can link with the $cf_lib_pthread library... $ECHO_C" >&6
cf_save_LIBS="$LIBS"
@@ -14432,7 +15285,7 @@ done
LIBS="$cf_add_libs"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 14435 "configure"
+#line 15288 "configure"
#include "confdefs.h"
#include <pthread.h>
@@ -14449,16 +15302,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:14452: \"$ac_link\"") >&5
+if { (eval echo "$as_me:15305: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:14455: \$? = $ac_status" >&5
+ echo "$as_me:15308: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:14458: \"$ac_try\"") >&5
+ { (eval echo "$as_me:15311: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:14461: \$? = $ac_status" >&5
+ echo "$as_me:15314: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
with_pthread=yes
else
@@ -14468,7 +15321,7 @@ with_pthread=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS="$cf_save_LIBS"
- echo "$as_me:14471: result: $with_pthread" >&5
+ echo "$as_me:15324: result: $with_pthread" >&5
echo "${ECHO_T}$with_pthread" >&6
test "$with_pthread" = yes && break
done
@@ -14496,7 +15349,7 @@ cat >>confdefs.h <<\EOF
EOF
else
- { { echo "$as_me:14499: error: Cannot link with pthread library" >&5
+ { { echo "$as_me:15352: error: Cannot link with pthread library" >&5
echo "$as_me: error: Cannot link with pthread library" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -14505,7 +15358,7 @@ fi
fi
-echo "$as_me:14508: checking if you want to use weak-symbols for pthreads" >&5
+echo "$as_me:15361: checking if you want to use weak-symbols for pthreads" >&5
echo $ECHO_N "checking if you want to use weak-symbols for pthreads... $ECHO_C" >&6
# Check whether --enable-weak-symbols or --disable-weak-symbols was given.
@@ -14515,18 +15368,18 @@ if test "${enable_weak_symbols+set}" = set; then
else
use_weak_symbols=no
fi;
-echo "$as_me:14518: result: $use_weak_symbols" >&5
+echo "$as_me:15371: result: $use_weak_symbols" >&5
echo "${ECHO_T}$use_weak_symbols" >&6
if test "$use_weak_symbols" = yes ; then
-echo "$as_me:14522: checking if $CC supports weak symbols" >&5
+echo "$as_me:15375: checking if $CC supports weak symbols" >&5
echo $ECHO_N "checking if $CC supports weak symbols... $ECHO_C" >&6
if test "${cf_cv_weak_symbols+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 14529 "configure"
+#line 15382 "configure"
#include "confdefs.h"
#include <stdio.h>
@@ -14552,16 +15405,16 @@ weak_symbol(fopen);
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:14555: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:15408: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:14558: \$? = $ac_status" >&5
+ echo "$as_me:15411: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:14561: \"$ac_try\"") >&5
+ { (eval echo "$as_me:15414: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:14564: \$? = $ac_status" >&5
+ echo "$as_me:15417: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_weak_symbols=yes
else
@@ -14572,7 +15425,7 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:14575: result: $cf_cv_weak_symbols" >&5
+echo "$as_me:15428: result: $cf_cv_weak_symbols" >&5
echo "${ECHO_T}$cf_cv_weak_symbols" >&6
else
@@ -14601,13 +15454,13 @@ EOF
fi
# OpenSUSE is installing ncurses6, using reentrant option.
-echo "$as_me:14604: checking for _nc_TABSIZE" >&5
+echo "$as_me:15457: checking for _nc_TABSIZE" >&5
echo $ECHO_N "checking for _nc_TABSIZE... $ECHO_C" >&6
if test "${ac_cv_func__nc_TABSIZE+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 14610 "configure"
+#line 15463 "configure"
#include "confdefs.h"
#define _nc_TABSIZE autoconf_temporary
#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */
@@ -14638,16 +15491,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:14641: \"$ac_link\"") >&5
+if { (eval echo "$as_me:15494: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:14644: \$? = $ac_status" >&5
+ echo "$as_me:15497: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:14647: \"$ac_try\"") >&5
+ { (eval echo "$as_me:15500: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:14650: \$? = $ac_status" >&5
+ echo "$as_me:15503: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_func__nc_TABSIZE=yes
else
@@ -14657,7 +15510,7 @@ ac_cv_func__nc_TABSIZE=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:14660: result: $ac_cv_func__nc_TABSIZE" >&5
+echo "$as_me:15513: result: $ac_cv_func__nc_TABSIZE" >&5
echo "${ECHO_T}$ac_cv_func__nc_TABSIZE" >&6
if test "$ac_cv_func__nc_TABSIZE" = yes; then
assume_reentrant=yes
@@ -14669,7 +15522,7 @@ fi
# opaque outside of that, so there is no --enable-opaque option. We can use
# this option without --with-pthreads, but this will be always set for
# pthreads.
-echo "$as_me:14672: checking if you want experimental reentrant code" >&5
+echo "$as_me:15525: checking if you want experimental reentrant code" >&5
echo $ECHO_N "checking if you want experimental reentrant code... $ECHO_C" >&6
# Check whether --enable-reentrant or --disable-reentrant was given.
@@ -14679,7 +15532,7 @@ if test "${enable_reentrant+set}" = set; then
else
with_reentrant=$assume_reentrant
fi;
-echo "$as_me:14682: result: $with_reentrant" >&5
+echo "$as_me:15535: result: $with_reentrant" >&5
echo "${ECHO_T}$with_reentrant" >&6
if test "$with_reentrant" = yes ; then
cf_cv_enable_reentrant=1
@@ -14702,7 +15555,7 @@ fi
### Allow using a different wrap-prefix
if test "$cf_cv_enable_reentrant" != 0 || test "$BROKEN_LINKER" = 1 ; then
- echo "$as_me:14705: checking for prefix used to wrap public variables" >&5
+ echo "$as_me:15558: checking for prefix used to wrap public variables" >&5
echo $ECHO_N "checking for prefix used to wrap public variables... $ECHO_C" >&6
# Check whether --with-wrap-prefix or --without-wrap-prefix was given.
@@ -14712,7 +15565,7 @@ if test "${with_wrap_prefix+set}" = set; then
else
NCURSES_WRAP_PREFIX=_nc_
fi;
- echo "$as_me:14715: result: $NCURSES_WRAP_PREFIX" >&5
+ echo "$as_me:15568: result: $NCURSES_WRAP_PREFIX" >&5
echo "${ECHO_T}$NCURSES_WRAP_PREFIX" >&6
else
NCURSES_WRAP_PREFIX=_nc_
@@ -14726,7 +15579,7 @@ EOF
### use option --disable-echo to suppress full display compiling commands
-echo "$as_me:14729: checking if you want to see long compiling messages" >&5
+echo "$as_me:15582: checking if you want to see long compiling messages" >&5
echo $ECHO_N "checking if you want to see long compiling messages... $ECHO_C" >&6
# Check whether --enable-echo or --disable-echo was given.
@@ -14760,9 +15613,93 @@ else
ECHO_CC=''
fi;
-echo "$as_me:14763: result: $enableval" >&5
+echo "$as_me:15616: result: $enableval" >&5
echo "${ECHO_T}$enableval" >&6
+echo "$as_me:15619: checking if you want to use C11 _Noreturn feature" >&5
+echo $ECHO_N "checking if you want to use C11 _Noreturn feature... $ECHO_C" >&6
+
+# Check whether --enable-stdnoreturn or --disable-stdnoreturn was given.
+if test "${enable_stdnoreturn+set}" = set; then
+ enableval="$enable_stdnoreturn"
+ test "$enableval" != yes && enableval=no
+ if test "$enableval" != "no" ; then
+ enable_stdnoreturn=yes
+ else
+ enable_stdnoreturn=no
+ fi
+else
+ enableval=no
+ enable_stdnoreturn=no
+
+fi;
+echo "$as_me:15636: result: $enable_stdnoreturn" >&5
+echo "${ECHO_T}$enable_stdnoreturn" >&6
+
+if test $enable_stdnoreturn = yes; then
+echo "$as_me:15640: checking for C11 _Noreturn feature" >&5
+echo $ECHO_N "checking for C11 _Noreturn feature... $ECHO_C" >&6
+if test "${cf_cv_c11_noreturn+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >"conftest.$ac_ext" <<_ACEOF
+#line 15646 "configure"
+#include "confdefs.h"
+
+$ac_includes_default
+#include <stdnoreturn.h>
+static _Noreturn void giveup(void) { exit(0); }
+
+int
+main (void)
+{
+if (feof(stdin)) giveup()
+ ;
+ return 0;
+}
+_ACEOF
+rm -f "conftest.$ac_objext"
+if { (eval echo "$as_me:15662: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:15665: \$? = $ac_status" >&5
+ (exit "$ac_status"); } &&
+ { ac_try='test -s "conftest.$ac_objext"'
+ { (eval echo "$as_me:15668: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:15671: \$? = $ac_status" >&5
+ (exit "$ac_status"); }; }; then
+ cf_cv_c11_noreturn=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat "conftest.$ac_ext" >&5
+cf_cv_c11_noreturn=no
+fi
+rm -f "conftest.$ac_objext" "conftest.$ac_ext"
+
+fi
+echo "$as_me:15682: result: $cf_cv_c11_noreturn" >&5
+echo "${ECHO_T}$cf_cv_c11_noreturn" >&6
+else
+ cf_cv_c11_noreturn=no,
+fi
+
+if test "$cf_cv_c11_noreturn" = yes; then
+
+cat >>confdefs.h <<\EOF
+#define HAVE_STDNORETURN_H 1
+EOF
+
+cat >>confdefs.h <<EOF
+#define STDC_NORETURN _Noreturn
+EOF
+
+ HAVE_STDNORETURN_H=1
+else
+ HAVE_STDNORETURN_H=0
+fi
+
if test "$GCC" = yes || test "$GXX" = yes
then
@@ -14770,14 +15707,16 @@ if test "$GCC" = yes || test "$GXX" = yes
then
case $CFLAGS in
(*-Werror=*)
- test -n "$verbose" && echo " repairing CFLAGS: $CFLAGS" 1>&6
-
-echo "${as_me:-configure}:14775: testing repairing CFLAGS: $CFLAGS ..." 1>&5
-
cf_temp_flags=
for cf_temp_scan in $CFLAGS
do
case "x$cf_temp_scan" in
+ (x-Werror=format*)
+
+ test -n "$cf_temp_flags" && cf_temp_flags="$cf_temp_flags "
+ cf_temp_flags="${cf_temp_flags}$cf_temp_scan"
+
+ ;;
(x-Werror=*)
test -n "$EXTRA_CFLAGS" && EXTRA_CFLAGS="$EXTRA_CFLAGS "
@@ -14792,15 +15731,22 @@ echo "${as_me:-configure}:14775: testing repairing CFLAGS: $CFLAGS ..." 1>&5
;;
esac
done
- CFLAGS="$cf_temp_flags"
- test -n "$verbose" && echo " ... fixed $CFLAGS" 1>&6
+ if test "x$CFLAGS" != "x$cf_temp_flags"
+ then
+ test -n "$verbose" && echo " repairing CFLAGS: $CFLAGS" 1>&6
+
+echo "${as_me:-configure}:15738: testing repairing CFLAGS: $CFLAGS ..." 1>&5
-echo "${as_me:-configure}:14798: testing ... fixed $CFLAGS ..." 1>&5
+ CFLAGS="$cf_temp_flags"
+ test -n "$verbose" && echo " ... fixed $CFLAGS" 1>&6
- test -n "$verbose" && echo " ... extra $EXTRA_CFLAGS" 1>&6
+echo "${as_me:-configure}:15743: testing ... fixed $CFLAGS ..." 1>&5
-echo "${as_me:-configure}:14802: testing ... extra $EXTRA_CFLAGS ..." 1>&5
+ test -n "$verbose" && echo " ... extra $EXTRA_CFLAGS" 1>&6
+echo "${as_me:-configure}:15747: testing ... extra $EXTRA_CFLAGS ..." 1>&5
+
+ fi
;;
esac
fi
@@ -14809,14 +15755,16 @@ if test "$GCC" = yes || test "$GXX" = yes
then
case $CPPFLAGS in
(*-Werror=*)
- test -n "$verbose" && echo " repairing CPPFLAGS: $CPPFLAGS" 1>&6
-
-echo "${as_me:-configure}:14814: testing repairing CPPFLAGS: $CPPFLAGS ..." 1>&5
-
cf_temp_flags=
for cf_temp_scan in $CPPFLAGS
do
case "x$cf_temp_scan" in
+ (x-Werror=format*)
+
+ test -n "$cf_temp_flags" && cf_temp_flags="$cf_temp_flags "
+ cf_temp_flags="${cf_temp_flags}$cf_temp_scan"
+
+ ;;
(x-Werror=*)
test -n "$EXTRA_CFLAGS" && EXTRA_CFLAGS="$EXTRA_CFLAGS "
@@ -14831,15 +15779,22 @@ echo "${as_me:-configure}:14814: testing repairing CPPFLAGS: $CPPFLAGS ..." 1>&5
;;
esac
done
- CPPFLAGS="$cf_temp_flags"
- test -n "$verbose" && echo " ... fixed $CPPFLAGS" 1>&6
+ if test "x$CPPFLAGS" != "x$cf_temp_flags"
+ then
+ test -n "$verbose" && echo " repairing CPPFLAGS: $CPPFLAGS" 1>&6
+
+echo "${as_me:-configure}:15786: testing repairing CPPFLAGS: $CPPFLAGS ..." 1>&5
-echo "${as_me:-configure}:14837: testing ... fixed $CPPFLAGS ..." 1>&5
+ CPPFLAGS="$cf_temp_flags"
+ test -n "$verbose" && echo " ... fixed $CPPFLAGS" 1>&6
- test -n "$verbose" && echo " ... extra $EXTRA_CFLAGS" 1>&6
+echo "${as_me:-configure}:15791: testing ... fixed $CPPFLAGS ..." 1>&5
-echo "${as_me:-configure}:14841: testing ... extra $EXTRA_CFLAGS ..." 1>&5
+ test -n "$verbose" && echo " ... extra $EXTRA_CFLAGS" 1>&6
+echo "${as_me:-configure}:15795: testing ... extra $EXTRA_CFLAGS ..." 1>&5
+
+ fi
;;
esac
fi
@@ -14848,14 +15803,16 @@ if test "$GCC" = yes || test "$GXX" = yes
then
case $LDFLAGS in
(*-Werror=*)
- test -n "$verbose" && echo " repairing LDFLAGS: $LDFLAGS" 1>&6
-
-echo "${as_me:-configure}:14853: testing repairing LDFLAGS: $LDFLAGS ..." 1>&5
-
cf_temp_flags=
for cf_temp_scan in $LDFLAGS
do
case "x$cf_temp_scan" in
+ (x-Werror=format*)
+
+ test -n "$cf_temp_flags" && cf_temp_flags="$cf_temp_flags "
+ cf_temp_flags="${cf_temp_flags}$cf_temp_scan"
+
+ ;;
(x-Werror=*)
test -n "$EXTRA_CFLAGS" && EXTRA_CFLAGS="$EXTRA_CFLAGS "
@@ -14870,20 +15827,27 @@ echo "${as_me:-configure}:14853: testing repairing LDFLAGS: $LDFLAGS ..." 1>&5
;;
esac
done
- LDFLAGS="$cf_temp_flags"
- test -n "$verbose" && echo " ... fixed $LDFLAGS" 1>&6
+ if test "x$LDFLAGS" != "x$cf_temp_flags"
+ then
+ test -n "$verbose" && echo " repairing LDFLAGS: $LDFLAGS" 1>&6
+
+echo "${as_me:-configure}:15834: testing repairing LDFLAGS: $LDFLAGS ..." 1>&5
-echo "${as_me:-configure}:14876: testing ... fixed $LDFLAGS ..." 1>&5
+ LDFLAGS="$cf_temp_flags"
+ test -n "$verbose" && echo " ... fixed $LDFLAGS" 1>&6
- test -n "$verbose" && echo " ... extra $EXTRA_CFLAGS" 1>&6
+echo "${as_me:-configure}:15839: testing ... fixed $LDFLAGS ..." 1>&5
-echo "${as_me:-configure}:14880: testing ... extra $EXTRA_CFLAGS ..." 1>&5
+ test -n "$verbose" && echo " ... extra $EXTRA_CFLAGS" 1>&6
+echo "${as_me:-configure}:15843: testing ... extra $EXTRA_CFLAGS ..." 1>&5
+
+ fi
;;
esac
fi
-echo "$as_me:14886: checking if you want to turn on gcc warnings" >&5
+echo "$as_me:15850: checking if you want to turn on gcc warnings" >&5
echo $ECHO_N "checking if you want to turn on gcc warnings... $ECHO_C" >&6
# Check whether --enable-warnings or --disable-warnings was given.
@@ -14900,7 +15864,7 @@ else
enable_warnings=no
fi;
-echo "$as_me:14903: result: $enable_warnings" >&5
+echo "$as_me:15867: result: $enable_warnings" >&5
echo "${ECHO_T}$enable_warnings" >&6
if test "$enable_warnings" = "yes"
then
@@ -14924,7 +15888,7 @@ do
done
cat >"conftest.$ac_ext" <<_ACEOF
-#line 14927 "configure"
+#line 15891 "configure"
#include "confdefs.h"
#include <stdlib.h>
@@ -14933,34 +15897,35 @@ cat >"conftest.$ac_ext" <<_ACEOF
int
main (void)
{
-String foo = malloc(1); (void)foo
+String foo = malloc(1); free((void*)foo)
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:14942: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:15906: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:14945: \$? = $ac_status" >&5
+ echo "$as_me:15909: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:14948: \"$ac_try\"") >&5
+ { (eval echo "$as_me:15912: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:14951: \$? = $ac_status" >&5
+ echo "$as_me:15915: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
-echo "$as_me:14954: checking for X11/Xt const-feature" >&5
+echo "$as_me:15918: checking for X11/Xt const-feature" >&5
echo $ECHO_N "checking for X11/Xt const-feature... $ECHO_C" >&6
if test "${cf_cv_const_x_string+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 14961 "configure"
+#line 15925 "configure"
#include "confdefs.h"
+#undef _CONST_X_STRING
#define _CONST_X_STRING /* X11R7.8 (perhaps) */
#undef XTSTRINGDEFINES /* X11R5 and later */
#include <stdlib.h>
@@ -14975,16 +15940,16 @@ String foo = malloc(1); *foo = 0
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:14978: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:15943: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:14981: \$? = $ac_status" >&5
+ echo "$as_me:15946: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:14984: \"$ac_try\"") >&5
+ { (eval echo "$as_me:15949: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:14987: \$? = $ac_status" >&5
+ echo "$as_me:15952: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_const_x_string=no
@@ -14999,7 +15964,7 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:15002: result: $cf_cv_const_x_string" >&5
+echo "$as_me:15967: result: $cf_cv_const_x_string" >&5
echo "${ECHO_T}$cf_cv_const_x_string" >&6
LIBS="$cf_save_LIBS_CF_CONST_X_STRING"
@@ -15028,7 +15993,7 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
cat > "conftest.$ac_ext" <<EOF
-#line 15031 "${as_me:-configure}"
+#line 15996 "${as_me:-configure}"
int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
EOF
if test "$INTEL_COMPILER" = yes
@@ -15044,7 +16009,7 @@ then
# remark #981: operands are evaluated in unspecified order
# warning #279: controlling expression is constant
- { echo "$as_me:15047: checking for $CC warning options..." >&5
+ { echo "$as_me:16012: checking for $CC warning options..." >&5
echo "$as_me: checking for $CC warning options..." >&6;}
cf_save_CFLAGS="$CFLAGS"
EXTRA_CFLAGS="$EXTRA_CFLAGS -Wall"
@@ -15060,12 +16025,12 @@ echo "$as_me: checking for $CC warning options..." >&6;}
wd981
do
CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
- if { (eval echo "$as_me:15063: \"$ac_compile\"") >&5
+ if { (eval echo "$as_me:16028: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:15066: \$? = $ac_status" >&5
+ echo "$as_me:16031: \$? = $ac_status" >&5
(exit "$ac_status"); }; then
- test -n "$verbose" && echo "$as_me:15068: result: ... -$cf_opt" >&5
+ test -n "$verbose" && echo "$as_me:16033: result: ... -$cf_opt" >&5
echo "${ECHO_T}... -$cf_opt" >&6
EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
fi
@@ -15073,7 +16038,7 @@ echo "${ECHO_T}... -$cf_opt" >&6
CFLAGS="$cf_save_CFLAGS"
elif test "$GCC" = yes && test "$GCC_VERSION" != "unknown"
then
- { echo "$as_me:15076: checking for $CC warning options..." >&5
+ { echo "$as_me:16041: checking for $CC warning options..." >&5
echo "$as_me: checking for $CC warning options..." >&6;}
cf_save_CFLAGS="$CFLAGS"
cf_warn_CONST=""
@@ -15096,12 +16061,12 @@ echo "$as_me: checking for $CC warning options..." >&6;}
Wundef Wno-inline $cf_gcc_warnings $cf_warn_CONST Wno-unknown-pragmas Wswitch-enum
do
CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
- if { (eval echo "$as_me:15099: \"$ac_compile\"") >&5
+ if { (eval echo "$as_me:16064: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:15102: \$? = $ac_status" >&5
+ echo "$as_me:16067: \$? = $ac_status" >&5
(exit "$ac_status"); }; then
- test -n "$verbose" && echo "$as_me:15104: result: ... -$cf_opt" >&5
+ test -n "$verbose" && echo "$as_me:16069: result: ... -$cf_opt" >&5
echo "${ECHO_T}... -$cf_opt" >&6
case "$cf_opt" in
(Winline)
@@ -15109,7 +16074,7 @@ echo "${ECHO_T}... -$cf_opt" >&6
([34].*)
test -n "$verbose" && echo " feature is broken in gcc $GCC_VERSION" 1>&6
-echo "${as_me:-configure}:15112: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
+echo "${as_me:-configure}:16077: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
continue;;
esac
@@ -15119,7 +16084,7 @@ echo "${as_me:-configure}:15112: testing feature is broken in gcc $GCC_VERSION .
([12].*)
test -n "$verbose" && echo " feature is broken in gcc $GCC_VERSION" 1>&6
-echo "${as_me:-configure}:15122: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
+echo "${as_me:-configure}:16087: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
continue;;
esac
@@ -15152,10 +16117,11 @@ cat > conftest.i <<EOF
EOF
if test "$GCC" = yes
then
- { echo "$as_me:15155: checking for $CC __attribute__ directives..." >&5
+ { echo "$as_me:16120: checking for $CC __attribute__ directives..." >&5
echo "$as_me: checking for $CC __attribute__ directives..." >&6;}
cat > "conftest.$ac_ext" <<EOF
-#line 15158 "${as_me:-configure}"
+#line 16123 "${as_me:-configure}"
+#include <stdio.h>
#include "confdefs.h"
#include "conftest.h"
#include "conftest.i"
@@ -15170,8 +16136,8 @@ cat > "conftest.$ac_ext" <<EOF
#define GCC_SCANFLIKE(fmt,var) /*nothing*/
#endif
extern void wow(char *,...) GCC_SCANFLIKE(1,2);
-extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
-extern void foo(void) GCC_NORETURN;
+extern GCC_NORETURN void oops(char *,...) GCC_PRINTFLIKE(1,2);
+extern GCC_NORETURN void foo(void);
int main(int argc GCC_UNUSED, char *argv[] GCC_UNUSED) { (void)argc; (void)argv; return 0; }
EOF
cf_printf_attribute=no
@@ -15204,12 +16170,12 @@ EOF
;;
esac
- if { (eval echo "$as_me:15207: \"$ac_compile\"") >&5
+ if { (eval echo "$as_me:16173: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:15210: \$? = $ac_status" >&5
+ echo "$as_me:16176: \$? = $ac_status" >&5
(exit "$ac_status"); }; then
- test -n "$verbose" && echo "$as_me:15212: result: ... $cf_attribute" >&5
+ test -n "$verbose" && echo "$as_me:16178: result: ... $cf_attribute" >&5
echo "${ECHO_T}... $cf_attribute" >&6
cat conftest.h >>confdefs.h
case "$cf_attribute" in
@@ -15272,12 +16238,12 @@ fi
if test "x$enable_warnings" = "xyes"; then
- ADAFLAGS="$ADAFLAGS -gnatg"
+ ADAFLAGS="$ADAFLAGS -gnatwa -gnatyg"
fi
### use option --enable-assertions to turn on generation of assertion code
-echo "$as_me:15280: checking if you want to enable runtime assertions" >&5
+echo "$as_me:16246: checking if you want to enable runtime assertions" >&5
echo $ECHO_N "checking if you want to enable runtime assertions... $ECHO_C" >&6
# Check whether --enable-assertions or --disable-assertions was given.
@@ -15287,7 +16253,7 @@ if test "${enable_assertions+set}" = set; then
else
with_assertions=no
fi;
-echo "$as_me:15290: result: $with_assertions" >&5
+echo "$as_me:16256: result: $with_assertions" >&5
echo "${ECHO_T}$with_assertions" >&6
if test -n "$GCC"
then
@@ -15340,7 +16306,7 @@ case "$CFLAGS $CPPFLAGS" in
;;
esac
-echo "$as_me:15343: checking whether to add trace feature to all models" >&5
+echo "$as_me:16309: checking whether to add trace feature to all models" >&5
echo $ECHO_N "checking whether to add trace feature to all models... $ECHO_C" >&6
# Check whether --with-trace or --without-trace was given.
@@ -15350,7 +16316,7 @@ if test "${with_trace+set}" = set; then
else
cf_with_trace=$cf_all_traces
fi;
-echo "$as_me:15353: result: $cf_with_trace" >&5
+echo "$as_me:16319: result: $cf_with_trace" >&5
echo "${ECHO_T}$cf_with_trace" >&6
if test "$cf_with_trace" = yes ; then
@@ -15458,7 +16424,7 @@ else
ADA_TRACE=FALSE
fi
-echo "$as_me:15461: checking if we want to use GNAT projects" >&5
+echo "$as_me:16427: checking if we want to use GNAT projects" >&5
echo $ECHO_N "checking if we want to use GNAT projects... $ECHO_C" >&6
# Check whether --enable-gnat-projects or --disable-gnat-projects was given.
@@ -15475,21 +16441,181 @@ else
enable_gnat_projects=yes
fi;
-echo "$as_me:15478: result: $enable_gnat_projects" >&5
+echo "$as_me:16444: result: $enable_gnat_projects" >&5
echo "${ECHO_T}$enable_gnat_projects" >&6
### Checks for libraries.
case $cf_cv_system_name in
(*mingw32*)
+
+echo "$as_me:16451: checking if ssp library is needed" >&5
+echo $ECHO_N "checking if ssp library is needed... $ECHO_C" >&6
+if test "${cf_cv_need_libssp+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+cat >"conftest.$ac_ext" <<_ACEOF
+#line 16458 "configure"
+#include "confdefs.h"
+
+#include <sys/types.h>
+#include <dirent.h>
+
+int
+main (void)
+{
+
+ DIR *dp = opendir(".");
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f "conftest.$ac_objext" "conftest$ac_exeext"
+if { (eval echo "$as_me:16475: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:16478: \$? = $ac_status" >&5
+ (exit "$ac_status"); } &&
+ { ac_try='test -s "conftest$ac_exeext"'
+ { (eval echo "$as_me:16481: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:16484: \$? = $ac_status" >&5
+ (exit "$ac_status"); }; }; then
+ cf_cv_need_libssp=no
+else
+ echo "$as_me: failed program was:" >&5
+cat "conftest.$ac_ext" >&5
+
+ cf_save_LIBS="$LIBS"
+ LIBS="$LIBS -lssp"
+ cat >"conftest.$ac_ext" <<_ACEOF
+#line 16494 "configure"
+#include "confdefs.h"
+
+#include <sys/types.h>
+#include <dirent.h>
+
+int
+main (void)
+{
+
+ DIR *dp = opendir(".");
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f "conftest.$ac_objext" "conftest$ac_exeext"
+if { (eval echo "$as_me:16511: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:16514: \$? = $ac_status" >&5
+ (exit "$ac_status"); } &&
+ { ac_try='test -s "conftest$ac_exeext"'
+ { (eval echo "$as_me:16517: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:16520: \$? = $ac_status" >&5
+ (exit "$ac_status"); }; }; then
+ cf_cv_need_libssp=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat "conftest.$ac_ext" >&5
+cf_cv_need_libssp=maybe
+fi
+rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
+ LIBS="$cf_save_LIBS"
+
+fi
+rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
+fi
+echo "$as_me:16534: result: $cf_cv_need_libssp" >&5
+echo "${ECHO_T}$cf_cv_need_libssp" >&6
+
+if test "x$cf_cv_need_libssp" = xyes
+then
+
+cf_add_libs="$LIBS"
+# reverse order
+cf_add_0lib=
+for cf_add_1lib in -lssp; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done
+# filter duplicates
+for cf_add_1lib in $cf_add_0lib; do
+ for cf_add_2lib in $cf_add_libs; do
+ if test "x$cf_add_1lib" = "x$cf_add_2lib"; then
+ cf_add_1lib=
+ break
+ fi
+ done
+ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs"
+done
+LIBS="$cf_add_libs"
+
+fi
+
;;
(*)
-echo "$as_me:15486: checking for gettimeofday" >&5
+
+echo "$as_me:16561: checking for clock_gettime" >&5
+echo $ECHO_N "checking for clock_gettime... $ECHO_C" >&6
+if test "${cf_cv_func_clock_gettime+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+ cat >"conftest.$ac_ext" <<_ACEOF
+#line 16568 "configure"
+#include "confdefs.h"
+#include <time.h>
+int
+main (void)
+{
+struct timespec ts;
+ int rc = clock_gettime(CLOCK_REALTIME, &ts); (void) rc; (void)ts
+ ;
+ return 0;
+}
+_ACEOF
+rm -f "conftest.$ac_objext" "conftest$ac_exeext"
+if { (eval echo "$as_me:16581: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:16584: \$? = $ac_status" >&5
+ (exit "$ac_status"); } &&
+ { ac_try='test -s "conftest$ac_exeext"'
+ { (eval echo "$as_me:16587: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:16590: \$? = $ac_status" >&5
+ (exit "$ac_status"); }; }; then
+ cf_cv_func_clock_gettime=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat "conftest.$ac_ext" >&5
+cf_cv_func_clock_gettime=no
+fi
+rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
+
+fi
+echo "$as_me:16601: result: $cf_cv_func_clock_gettime" >&5
+echo "${ECHO_T}$cf_cv_func_clock_gettime" >&6
+
+if test "$cf_cv_func_clock_gettime" = yes
+then
+
+cat >>confdefs.h <<\EOF
+#define HAVE_CLOCK_GETTIME 1
+EOF
+
+else
+echo "$as_me:16612: checking for gettimeofday" >&5
echo $ECHO_N "checking for gettimeofday... $ECHO_C" >&6
if test "${ac_cv_func_gettimeofday+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 15492 "configure"
+#line 16618 "configure"
#include "confdefs.h"
#define gettimeofday autoconf_temporary
#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */
@@ -15520,16 +16646,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:15523: \"$ac_link\"") >&5
+if { (eval echo "$as_me:16649: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:15526: \$? = $ac_status" >&5
+ echo "$as_me:16652: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:15529: \"$ac_try\"") >&5
+ { (eval echo "$as_me:16655: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:15532: \$? = $ac_status" >&5
+ echo "$as_me:16658: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_func_gettimeofday=yes
else
@@ -15539,16 +16665,17 @@ ac_cv_func_gettimeofday=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:15542: result: $ac_cv_func_gettimeofday" >&5
+echo "$as_me:16668: result: $ac_cv_func_gettimeofday" >&5
echo "${ECHO_T}$ac_cv_func_gettimeofday" >&6
if test "$ac_cv_func_gettimeofday" = yes; then
- cat >>confdefs.h <<\EOF
+
+cat >>confdefs.h <<\EOF
#define HAVE_GETTIMEOFDAY 1
EOF
else
-echo "$as_me:15551: checking for gettimeofday in -lbsd" >&5
+echo "$as_me:16678: checking for gettimeofday in -lbsd" >&5
echo $ECHO_N "checking for gettimeofday in -lbsd... $ECHO_C" >&6
if test "${ac_cv_lib_bsd_gettimeofday+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -15556,7 +16683,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lbsd $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 15559 "configure"
+#line 16686 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -15565,7 +16692,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char gettimeofday ();
+char gettimeofday (void);
int
main (void)
{
@@ -15575,16 +16702,16 @@ gettimeofday ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:15578: \"$ac_link\"") >&5
+if { (eval echo "$as_me:16705: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:15581: \$? = $ac_status" >&5
+ echo "$as_me:16708: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:15584: \"$ac_try\"") >&5
+ { (eval echo "$as_me:16711: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:15587: \$? = $ac_status" >&5
+ echo "$as_me:16714: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_bsd_gettimeofday=yes
else
@@ -15595,7 +16722,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:15598: result: $ac_cv_lib_bsd_gettimeofday" >&5
+echo "$as_me:16725: result: $ac_cv_lib_bsd_gettimeofday" >&5
echo "${ECHO_T}$ac_cv_lib_bsd_gettimeofday" >&6
if test "$ac_cv_lib_bsd_gettimeofday" = yes; then
@@ -15603,206 +16730,38 @@ cat >>confdefs.h <<\EOF
#define HAVE_GETTIMEOFDAY 1
EOF
- LIBS="$LIBS -lbsd"
-fi
-
-fi
- ;;
-esac
-
-### Checks for header files.
-echo "$as_me:15614: checking for ANSI C header files" >&5
-echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
-if test "${ac_cv_header_stdc+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >"conftest.$ac_ext" <<_ACEOF
-#line 15620 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-_ACEOF
-if { (eval echo "$as_me:15628: \"$ac_cpp "conftest.$ac_ext"\"") >&5
- (eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
- ac_status=$?
- $EGREP -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:15634: \$? = $ac_status" >&5
- (exit "$ac_status"); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- ac_cv_header_stdc=yes
-else
- echo "$as_me: failed program was:" >&5
- cat "conftest.$ac_ext" >&5
- ac_cv_header_stdc=no
-fi
-rm -f conftest.err "conftest.$ac_ext"
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat >"conftest.$ac_ext" <<_ACEOF
-#line 15656 "configure"
-#include "confdefs.h"
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "memchr" >/dev/null 2>&1; then
- :
-else
- ac_cv_header_stdc=no
-fi
-rm -rf conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat >"conftest.$ac_ext" <<_ACEOF
-#line 15674 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "free" >/dev/null 2>&1; then
- :
-else
- ac_cv_header_stdc=no
-fi
-rm -rf conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- if test "$cross_compiling" = yes; then
- :
-else
- cat >"conftest.$ac_ext" <<_ACEOF
-#line 15695 "configure"
-#include "confdefs.h"
-#include <ctype.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main (void)
-{
- int i;
- for (i = 0; i < 256; i++)
- if (XOR (islower (i), ISLOWER (i))
- || toupper (i) != TOUPPER (i))
- $ac_main_return(2);
- $ac_main_return (0);
-}
-_ACEOF
-rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:15721: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:15724: \$? = $ac_status" >&5
- (exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:15726: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:15729: \$? = $ac_status" >&5
- (exit "$ac_status"); }; }; then
- :
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-cat "conftest.$ac_ext" >&5
-ac_cv_header_stdc=no
-fi
-rm -f core ./core.* ./*.core "conftest$ac_exeext" "conftest.$ac_objext" "conftest.$ac_ext"
-fi
-fi
-fi
-echo "$as_me:15742: result: $ac_cv_header_stdc" >&5
-echo "${ECHO_T}$ac_cv_header_stdc" >&6
-if test $ac_cv_header_stdc = yes; then
-
-cat >>confdefs.h <<\EOF
-#define STDC_HEADERS 1
-EOF
+cf_add_libs="$LIBS"
+# reverse order
+cf_add_0lib=
+for cf_add_1lib in -lbsd; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done
+# filter duplicates
+for cf_add_1lib in $cf_add_0lib; do
+ for cf_add_2lib in $cf_add_libs; do
+ if test "x$cf_add_1lib" = "x$cf_add_2lib"; then
+ cf_add_1lib=
+ break
+ fi
+ done
+ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs"
+done
+LIBS="$cf_add_libs"
fi
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
- inttypes.h stdint.h unistd.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:15758: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >"conftest.$ac_ext" <<_ACEOF
-#line 15764 "configure"
-#include "confdefs.h"
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:15770: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:15773: \$? = $ac_status" >&5
- (exit "$ac_status"); } &&
- { ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:15776: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:15779: \$? = $ac_status" >&5
- (exit "$ac_status"); }; }; then
- eval "$as_ac_Header=yes"
-else
- echo "$as_me: failed program was:" >&5
-cat "conftest.$ac_ext" >&5
-eval "$as_ac_Header=no"
fi
-rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:15789: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
-echo "${ECHO_T}`eval echo '${'"$as_ac_Header"'}'`" >&6
-if test "`eval echo '${'"$as_ac_Header"'}'`" = yes; then
- cat >>confdefs.h <<EOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-EOF
-fi
-done
+ ;;
+esac
-echo "$as_me:15799: checking for signed char" >&5
+### Checks for header files.
+echo "$as_me:16758: checking for signed char" >&5
echo $ECHO_N "checking for signed char... $ECHO_C" >&6
if test "${ac_cv_type_signed_char+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 15805 "configure"
+#line 16764 "configure"
#include "confdefs.h"
$ac_includes_default
int
@@ -15817,16 +16776,16 @@ if (sizeof (signed char))
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:15820: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:16779: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:15823: \$? = $ac_status" >&5
+ echo "$as_me:16782: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:15826: \"$ac_try\"") >&5
+ { (eval echo "$as_me:16785: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:15829: \$? = $ac_status" >&5
+ echo "$as_me:16788: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_type_signed_char=yes
else
@@ -15836,10 +16795,10 @@ ac_cv_type_signed_char=no
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:15839: result: $ac_cv_type_signed_char" >&5
+echo "$as_me:16798: result: $ac_cv_type_signed_char" >&5
echo "${ECHO_T}$ac_cv_type_signed_char" >&6
-echo "$as_me:15842: checking size of signed char" >&5
+echo "$as_me:16801: checking size of signed char" >&5
echo $ECHO_N "checking size of signed char... $ECHO_C" >&6
if test "${ac_cv_sizeof_signed_char+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -15848,7 +16807,7 @@ else
if test "$cross_compiling" = yes; then
# Depending upon the size, compute the lo and hi bounds.
cat >"conftest.$ac_ext" <<_ACEOF
-#line 15851 "configure"
+#line 16810 "configure"
#include "confdefs.h"
$ac_includes_default
int
@@ -15860,21 +16819,21 @@ int _array_ [1 - 2 * !((sizeof (signed char)) >= 0)]
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:15863: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:16822: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:15866: \$? = $ac_status" >&5
+ echo "$as_me:16825: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:15869: \"$ac_try\"") >&5
+ { (eval echo "$as_me:16828: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:15872: \$? = $ac_status" >&5
+ echo "$as_me:16831: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_lo=0 ac_mid=0
while :; do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 15877 "configure"
+#line 16836 "configure"
#include "confdefs.h"
$ac_includes_default
int
@@ -15886,16 +16845,16 @@ int _array_ [1 - 2 * !((sizeof (signed char)) <= $ac_mid)]
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:15889: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:16848: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:15892: \$? = $ac_status" >&5
+ echo "$as_me:16851: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:15895: \"$ac_try\"") >&5
+ { (eval echo "$as_me:16854: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:15898: \$? = $ac_status" >&5
+ echo "$as_me:16857: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_hi=$ac_mid; break
else
@@ -15911,7 +16870,7 @@ cat "conftest.$ac_ext" >&5
ac_hi=-1 ac_mid=-1
while :; do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 15914 "configure"
+#line 16873 "configure"
#include "confdefs.h"
$ac_includes_default
int
@@ -15923,16 +16882,16 @@ int _array_ [1 - 2 * !((sizeof (signed char)) >= $ac_mid)]
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:15926: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:16885: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:15929: \$? = $ac_status" >&5
+ echo "$as_me:16888: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:15932: \"$ac_try\"") >&5
+ { (eval echo "$as_me:16891: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:15935: \$? = $ac_status" >&5
+ echo "$as_me:16894: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_lo=$ac_mid; break
else
@@ -15948,7 +16907,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
while test "x$ac_lo" != "x$ac_hi"; do
ac_mid=`expr '(' "$ac_hi" - "$ac_lo" ')' / 2 + "$ac_lo"`
cat >"conftest.$ac_ext" <<_ACEOF
-#line 15951 "configure"
+#line 16910 "configure"
#include "confdefs.h"
$ac_includes_default
int
@@ -15960,16 +16919,16 @@ int _array_ [1 - 2 * !((sizeof (signed char)) <= $ac_mid)]
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:15963: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:16922: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:15966: \$? = $ac_status" >&5
+ echo "$as_me:16925: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:15969: \"$ac_try\"") >&5
+ { (eval echo "$as_me:16928: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:15972: \$? = $ac_status" >&5
+ echo "$as_me:16931: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_hi=$ac_mid
else
@@ -15982,12 +16941,12 @@ done
ac_cv_sizeof_signed_char=$ac_lo
else
if test "$cross_compiling" = yes; then
- { { echo "$as_me:15985: error: cannot run test program while cross compiling" >&5
+ { { echo "$as_me:16944: error: cannot run test program while cross compiling" >&5
echo "$as_me: error: cannot run test program while cross compiling" >&2;}
{ (exit 1); exit 1; }; }
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 15990 "configure"
+#line 16949 "configure"
#include "confdefs.h"
$ac_includes_default
int
@@ -15996,22 +16955,22 @@ main (void)
FILE *f = fopen ("conftest.val", "w");
if (!f)
$ac_main_return (1);
-fprintf (f, "%d", (sizeof (signed char)));
+fprintf (f, "%ld", (long)(sizeof (signed char)));
fclose (f);
;
return 0;
}
_ACEOF
rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:16006: \"$ac_link\"") >&5
+if { (eval echo "$as_me:16965: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:16009: \$? = $ac_status" >&5
+ echo "$as_me:16968: \$? = $ac_status" >&5
(exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:16011: \"$ac_try\"") >&5
+ { (eval echo "$as_me:16970: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:16014: \$? = $ac_status" >&5
+ echo "$as_me:16973: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_sizeof_signed_char=`cat conftest.val`
else
@@ -16027,160 +16986,22 @@ else
ac_cv_sizeof_signed_char=0
fi
fi
-echo "$as_me:16030: result: $ac_cv_sizeof_signed_char" >&5
+echo "$as_me:16989: result: $ac_cv_sizeof_signed_char" >&5
echo "${ECHO_T}$ac_cv_sizeof_signed_char" >&6
cat >>confdefs.h <<EOF
#define SIZEOF_SIGNED_CHAR $ac_cv_sizeof_signed_char
EOF
-echo "$as_me:16036: checking for ANSI C header files" >&5
-echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
-if test "${ac_cv_header_stdc+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >"conftest.$ac_ext" <<_ACEOF
-#line 16042 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-_ACEOF
-if { (eval echo "$as_me:16050: \"$ac_cpp "conftest.$ac_ext"\"") >&5
- (eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
- ac_status=$?
- $EGREP -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:16056: \$? = $ac_status" >&5
- (exit "$ac_status"); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- ac_cv_header_stdc=yes
-else
- echo "$as_me: failed program was:" >&5
- cat "conftest.$ac_ext" >&5
- ac_cv_header_stdc=no
-fi
-rm -f conftest.err "conftest.$ac_ext"
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat >"conftest.$ac_ext" <<_ACEOF
-#line 16078 "configure"
-#include "confdefs.h"
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "memchr" >/dev/null 2>&1; then
- :
-else
- ac_cv_header_stdc=no
-fi
-rm -rf conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat >"conftest.$ac_ext" <<_ACEOF
-#line 16096 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "free" >/dev/null 2>&1; then
- :
-else
- ac_cv_header_stdc=no
-fi
-rm -rf conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- if test "$cross_compiling" = yes; then
- :
-else
- cat >"conftest.$ac_ext" <<_ACEOF
-#line 16117 "configure"
-#include "confdefs.h"
-#include <ctype.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main (void)
-{
- int i;
- for (i = 0; i < 256; i++)
- if (XOR (islower (i), ISLOWER (i))
- || toupper (i) != TOUPPER (i))
- $ac_main_return(2);
- $ac_main_return (0);
-}
-_ACEOF
-rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:16143: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:16146: \$? = $ac_status" >&5
- (exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:16148: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:16151: \$? = $ac_status" >&5
- (exit "$ac_status"); }; }; then
- :
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-cat "conftest.$ac_ext" >&5
-ac_cv_header_stdc=no
-fi
-rm -f core ./core.* ./*.core "conftest$ac_exeext" "conftest.$ac_objext" "conftest.$ac_ext"
-fi
-fi
-fi
-echo "$as_me:16164: result: $ac_cv_header_stdc" >&5
-echo "${ECHO_T}$ac_cv_header_stdc" >&6
-if test $ac_cv_header_stdc = yes; then
-
-cat >>confdefs.h <<\EOF
-#define STDC_HEADERS 1
-EOF
-
-fi
-
ac_header_dirent=no
for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
-echo "$as_me:16177: checking for $ac_hdr that defines DIR" >&5
+echo "$as_me:16998: checking for $ac_hdr that defines DIR" >&5
echo $ECHO_N "checking for $ac_hdr that defines DIR... $ECHO_C" >&6
if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 16183 "configure"
+#line 17004 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <$ac_hdr>
@@ -16195,16 +17016,16 @@ return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:16198: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:17019: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:16201: \$? = $ac_status" >&5
+ echo "$as_me:17022: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:16204: \"$ac_try\"") >&5
+ { (eval echo "$as_me:17025: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:16207: \$? = $ac_status" >&5
+ echo "$as_me:17028: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
eval "$as_ac_Header=yes"
else
@@ -16214,7 +17035,7 @@ eval "$as_ac_Header=no"
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:16217: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
+echo "$as_me:17038: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
echo "${ECHO_T}`eval echo '${'"$as_ac_Header"'}'`" >&6
if test "`eval echo '${'"$as_ac_Header"'}'`" = yes; then
cat >>confdefs.h <<EOF
@@ -16227,7 +17048,7 @@ fi
done
# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
if test $ac_header_dirent = dirent.h; then
- echo "$as_me:16230: checking for opendir in -ldir" >&5
+ echo "$as_me:17051: checking for opendir in -ldir" >&5
echo $ECHO_N "checking for opendir in -ldir... $ECHO_C" >&6
if test "${ac_cv_lib_dir_opendir+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -16235,7 +17056,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-ldir $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 16238 "configure"
+#line 17059 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -16244,7 +17065,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char opendir ();
+char opendir (void);
int
main (void)
{
@@ -16254,16 +17075,16 @@ opendir ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:16257: \"$ac_link\"") >&5
+if { (eval echo "$as_me:17078: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:16260: \$? = $ac_status" >&5
+ echo "$as_me:17081: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:16263: \"$ac_try\"") >&5
+ { (eval echo "$as_me:17084: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:16266: \$? = $ac_status" >&5
+ echo "$as_me:17087: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_dir_opendir=yes
else
@@ -16274,14 +17095,14 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:16277: result: $ac_cv_lib_dir_opendir" >&5
+echo "$as_me:17098: result: $ac_cv_lib_dir_opendir" >&5
echo "${ECHO_T}$ac_cv_lib_dir_opendir" >&6
if test "$ac_cv_lib_dir_opendir" = yes; then
LIBS="$LIBS -ldir"
fi
else
- echo "$as_me:16284: checking for opendir in -lx" >&5
+ echo "$as_me:17105: checking for opendir in -lx" >&5
echo $ECHO_N "checking for opendir in -lx... $ECHO_C" >&6
if test "${ac_cv_lib_x_opendir+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -16289,7 +17110,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lx $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 16292 "configure"
+#line 17113 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -16298,7 +17119,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char opendir ();
+char opendir (void);
int
main (void)
{
@@ -16308,16 +17129,16 @@ opendir ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:16311: \"$ac_link\"") >&5
+if { (eval echo "$as_me:17132: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:16314: \$? = $ac_status" >&5
+ echo "$as_me:17135: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:16317: \"$ac_try\"") >&5
+ { (eval echo "$as_me:17138: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:16320: \$? = $ac_status" >&5
+ echo "$as_me:17141: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_x_opendir=yes
else
@@ -16328,7 +17149,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:16331: result: $ac_cv_lib_x_opendir" >&5
+echo "$as_me:17152: result: $ac_cv_lib_x_opendir" >&5
echo "${ECHO_T}$ac_cv_lib_x_opendir" >&6
if test "$ac_cv_lib_x_opendir" = yes; then
LIBS="$LIBS -lx"
@@ -16336,13 +17157,13 @@ fi
fi
-echo "$as_me:16339: checking whether time.h and sys/time.h may both be included" >&5
+echo "$as_me:17160: checking whether time.h and sys/time.h may both be included" >&5
echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6
if test "${ac_cv_header_time+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 16345 "configure"
+#line 17166 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/time.h>
@@ -16358,16 +17179,16 @@ return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:16361: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:17182: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:16364: \$? = $ac_status" >&5
+ echo "$as_me:17185: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:16367: \"$ac_try\"") >&5
+ { (eval echo "$as_me:17188: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:16370: \$? = $ac_status" >&5
+ echo "$as_me:17191: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_header_time=yes
else
@@ -16377,7 +17198,7 @@ ac_cv_header_time=no
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:16380: result: $ac_cv_header_time" >&5
+echo "$as_me:17201: result: $ac_cv_header_time" >&5
echo "${ECHO_T}$ac_cv_header_time" >&6
if test $ac_cv_header_time = yes; then
@@ -16395,13 +17216,13 @@ ac_link='$CC -o "conftest$ac_exeext" $CFLAGS $CPPFLAGS $LDFLAGS "conftest.$ac_ex
ac_compiler_gnu=$ac_cv_c_compiler_gnu
ac_main_return="return"
-echo "$as_me:16398: checking for an ANSI C-conforming const" >&5
+echo "$as_me:17219: checking for an ANSI C-conforming const" >&5
echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6
if test "${ac_cv_c_const+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 16404 "configure"
+#line 17225 "configure"
#include "confdefs.h"
int
@@ -16411,13 +17232,13 @@ main (void)
#ifndef __cplusplus
/* Ultrix mips cc rejects this. */
typedef int charset[2];
- const charset x;
+ const charset x; (void)x;
/* SunOS 4.1.1 cc rejects this. */
char const *const *ccp;
char **p;
/* NEC SVR4.0.2 mips cc rejects this. */
struct point {int x, y;};
- static struct point const zero = {0,0};
+ static struct point const zero = {0,0}; (void)zero;
/* AIX XL C 1.02.0.0 rejects this.
It does not let you subtract one const X* pointer from another in
an arm of an if-expression whose if-part is not a constant
@@ -16433,16 +17254,19 @@ main (void)
char const *s = 0 ? (char *) 0 : (char const *) 0;
*t++ = 0;
+ (void)s;
}
{ /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */
int x[] = {25, 17};
const int *foo = &x[0];
++foo;
+ (void)foo;
}
{ /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
typedef const int *iptr;
iptr p = 0;
++p;
+ (void)p;
}
{ /* AIX XL C 1.02.0.0 rejects this saying
"k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
@@ -16451,6 +17275,7 @@ main (void)
}
{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
const int foo = 10;
+ (void)foo;
}
#endif
@@ -16459,16 +17284,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:16462: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:17287: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:16465: \$? = $ac_status" >&5
+ echo "$as_me:17290: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:16468: \"$ac_try\"") >&5
+ { (eval echo "$as_me:17293: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:16471: \$? = $ac_status" >&5
+ echo "$as_me:17296: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_c_const=yes
else
@@ -16478,7 +17303,7 @@ ac_cv_c_const=no
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:16481: result: $ac_cv_c_const" >&5
+echo "$as_me:17306: result: $ac_cv_c_const" >&5
echo "${ECHO_T}$ac_cv_c_const" >&6
if test $ac_cv_c_const = no; then
@@ -16490,7 +17315,7 @@ fi
### Checks for external-data
-echo "$as_me:16493: checking if data-only library module links" >&5
+echo "$as_me:17318: checking if data-only library module links" >&5
echo $ECHO_N "checking if data-only library module links... $ECHO_C" >&6
if test "${cf_cv_link_dataonly+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -16498,36 +17323,40 @@ else
rm -f conftest.a
cat >conftest.$ac_ext <<EOF
-#line 16501 "configure"
+#line 17326 "configure"
int testdata[3] = { 123, 456, 789 };
EOF
- if { (eval echo "$as_me:16504: \"$ac_compile\"") >&5
+ if { (eval echo "$as_me:17329: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:16507: \$? = $ac_status" >&5
+ echo "$as_me:17332: \$? = $ac_status" >&5
(exit "$ac_status"); } ; then
mv conftest.o data.o && \
( $AR $ARFLAGS conftest.a data.o ) 2>&5 1>/dev/null
fi
rm -f conftest.$ac_ext data.o
cat >conftest.$ac_ext <<EOF
-#line 16514 "configure"
+#line 17339 "configure"
+extern int testfunc(void);
+#if defined(NeXT)
int testfunc(void)
{
-#if defined(NeXT)
${cf_cv_main_return:-return}(1); /* I'm told this linker is broken */
+}
#else
- extern int testdata[3];
+extern int testdata[3];
+int testfunc(void)
+{
return testdata[0] == 123
&& testdata[1] == 456
&& testdata[2] == 789;
-#endif
}
+#endif
EOF
- if { (eval echo "$as_me:16527: \"$ac_compile\"") >&5
+ if { (eval echo "$as_me:17356: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:16530: \$? = $ac_status" >&5
+ echo "$as_me:17359: \$? = $ac_status" >&5
(exit "$ac_status"); }; then
mv conftest.o func.o && \
( $AR $ARFLAGS conftest.a func.o ) 2>&5 1>/dev/null
@@ -16540,26 +17369,26 @@ EOF
cf_cv_link_dataonly=unknown
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 16543 "configure"
+#line 17372 "configure"
#include "confdefs.h"
+ extern int testfunc(void);
int main(void)
{
- extern int testfunc();
${cf_cv_main_return:-return} (!testfunc());
}
_ACEOF
rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:16554: \"$ac_link\"") >&5
+if { (eval echo "$as_me:17383: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:16557: \$? = $ac_status" >&5
+ echo "$as_me:17386: \$? = $ac_status" >&5
(exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:16559: \"$ac_try\"") >&5
+ { (eval echo "$as_me:17388: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:16562: \$? = $ac_status" >&5
+ echo "$as_me:17391: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_link_dataonly=yes
else
@@ -16574,7 +17403,7 @@ fi
fi
-echo "$as_me:16577: result: $cf_cv_link_dataonly" >&5
+echo "$as_me:17406: result: $cf_cv_link_dataonly" >&5
echo "${ECHO_T}$cf_cv_link_dataonly" >&6
if test "$cf_cv_link_dataonly" = no ; then
@@ -16593,23 +17422,23 @@ unistd.h \
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:16596: checking for $ac_header" >&5
+echo "$as_me:17425: checking for $ac_header" >&5
echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 16602 "configure"
+#line 17431 "configure"
#include "confdefs.h"
#include <$ac_header>
_ACEOF
-if { (eval echo "$as_me:16606: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:17435: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:16612: \$? = $ac_status" >&5
+ echo "$as_me:17441: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -16628,7 +17457,7 @@ else
fi
rm -f conftest.err "conftest.$ac_ext"
fi
-echo "$as_me:16631: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
+echo "$as_me:17460: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
echo "${ECHO_T}`eval echo '${'"$as_ac_Header"'}'`" >&6
if test "`eval echo '${'"$as_ac_Header"'}'`" = yes; then
cat >>confdefs.h <<EOF
@@ -16638,7 +17467,7 @@ EOF
fi
done
-echo "$as_me:16641: checking for working mkstemp" >&5
+echo "$as_me:17470: checking for working mkstemp" >&5
echo $ECHO_N "checking for working mkstemp... $ECHO_C" >&6
if test "${cf_cv_func_mkstemp+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -16649,20 +17478,14 @@ if test "$cross_compiling" = yes; then
cf_cv_func_mkstemp=maybe
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 16652 "configure"
+#line 17481 "configure"
#include "confdefs.h"
-#include <sys/types.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <sys/stat.h>
+$ac_includes_default
+
int main(void)
{
- char *tmpl = "conftestXXXXXX";
+ static char tmpl[] = "conftestXXXXXX";
char name[2][80];
int n;
int result = 0;
@@ -16690,15 +17513,15 @@ int main(void)
_ACEOF
rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:16693: \"$ac_link\"") >&5
+if { (eval echo "$as_me:17516: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:16696: \$? = $ac_status" >&5
+ echo "$as_me:17519: \$? = $ac_status" >&5
(exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:16698: \"$ac_try\"") >&5
+ { (eval echo "$as_me:17521: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:16701: \$? = $ac_status" >&5
+ echo "$as_me:17524: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_func_mkstemp=yes
@@ -16713,16 +17536,16 @@ rm -f core ./core.* ./*.core "conftest$ac_exeext" "conftest.$ac_objext" "conftes
fi
fi
-echo "$as_me:16716: result: $cf_cv_func_mkstemp" >&5
+echo "$as_me:17539: result: $cf_cv_func_mkstemp" >&5
echo "${ECHO_T}$cf_cv_func_mkstemp" >&6
if test "x$cf_cv_func_mkstemp" = xmaybe ; then
- echo "$as_me:16719: checking for mkstemp" >&5
+ echo "$as_me:17542: checking for mkstemp" >&5
echo $ECHO_N "checking for mkstemp... $ECHO_C" >&6
if test "${ac_cv_func_mkstemp+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 16725 "configure"
+#line 17548 "configure"
#include "confdefs.h"
#define mkstemp autoconf_temporary
#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */
@@ -16753,16 +17576,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:16756: \"$ac_link\"") >&5
+if { (eval echo "$as_me:17579: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:16759: \$? = $ac_status" >&5
+ echo "$as_me:17582: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:16762: \"$ac_try\"") >&5
+ { (eval echo "$as_me:17585: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:16765: \$? = $ac_status" >&5
+ echo "$as_me:17588: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_func_mkstemp=yes
else
@@ -16772,7 +17595,7 @@ ac_cv_func_mkstemp=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:16775: result: $ac_cv_func_mkstemp" >&5
+echo "$as_me:17598: result: $ac_cv_func_mkstemp" >&5
echo "${ECHO_T}$ac_cv_func_mkstemp" >&6
fi
@@ -16801,7 +17624,7 @@ cf_upper_prog_gnat=`echo "${cf_prog_gnat}" | sed y%abcdefghijklmnopqrstuvwxyz./-
unset cf_TEMP_gnat
# Extract the first word of "$cf_prog_gnat", so it can be a program name with args.
set dummy $cf_prog_gnat; ac_word=$2
-echo "$as_me:16804: checking for $ac_word" >&5
+echo "$as_me:17627: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_path_cf_TEMP_gnat+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -16818,7 +17641,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
if $as_executable_p "$ac_dir/$ac_word"; then
ac_cv_path_cf_TEMP_gnat="$ac_dir/$ac_word"
- echo "$as_me:16821: found $ac_dir/$ac_word" >&5
+ echo "$as_me:17644: found $ac_dir/$ac_word" >&5
break
fi
done
@@ -16830,10 +17653,10 @@ fi
cf_TEMP_gnat=$ac_cv_path_cf_TEMP_gnat
if test -n "$cf_TEMP_gnat"; then
- echo "$as_me:16833: result: $cf_TEMP_gnat" >&5
+ echo "$as_me:17656: result: $cf_TEMP_gnat" >&5
echo "${ECHO_T}$cf_TEMP_gnat" >&6
else
- echo "$as_me:16836: result: no" >&5
+ echo "$as_me:17659: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -16843,7 +17666,7 @@ fi
unset cf_cv_gnat_version
unset cf_TEMP_gnat
-echo "$as_me:16846: checking for $cf_prog_gnat version" >&5
+echo "$as_me:17669: checking for $cf_prog_gnat version" >&5
echo $ECHO_N "checking for $cf_prog_gnat version... $ECHO_C" >&6
if test "${cf_cv_gnat_version+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -16854,7 +17677,7 @@ cf_cv_gnat_version=`$cf_prog_gnat --version 2>&1 | \
sed -e '2,$d' -e 's/[^0-9 \.]//g' -e 's/^[ ]*//' -e 's/ .*//'`
fi
-echo "$as_me:16857: result: $cf_cv_gnat_version" >&5
+echo "$as_me:17680: result: $cf_cv_gnat_version" >&5
echo "${ECHO_T}$cf_cv_gnat_version" >&6
test -z "$cf_cv_gnat_version" && cf_cv_gnat_version=no
eval cf_TEMP_gnat=$cf_cv_gnat_version; unset cf_cv_gnat_version
@@ -16883,7 +17706,7 @@ else
cd conftest.src
for cf_gprconfig in Ada C
do
- echo "$as_me:16886: checking for gprconfig name for $cf_gprconfig" >&5
+ echo "$as_me:17709: checking for gprconfig name for $cf_gprconfig" >&5
echo $ECHO_N "checking for gprconfig name for $cf_gprconfig... $ECHO_C" >&6
if test "$cf_gprconfig" = C
then
@@ -16902,10 +17725,10 @@ echo $ECHO_N "checking for gprconfig name for $cf_gprconfig... $ECHO_C" >&6
if test -n "$cf_gprconfig_value"
then
eval "cf_ada_config_$cf_gprconfig=$cf_gprconfig_value"
- echo "$as_me:16905: result: $cf_gprconfig_value" >&5
+ echo "$as_me:17728: result: $cf_gprconfig_value" >&5
echo "${ECHO_T}$cf_gprconfig_value" >&6
else
- echo "$as_me:16908: result: missing" >&5
+ echo "$as_me:17731: result: missing" >&5
echo "${ECHO_T}missing" >&6
cf_ada_config="#"
break
@@ -16918,7 +17741,7 @@ echo "${ECHO_T}missing" >&6
if test "x$cf_ada_config" != "x#"
then
-echo "$as_me:16921: checking for gnat version" >&5
+echo "$as_me:17744: checking for gnat version" >&5
echo $ECHO_N "checking for gnat version... $ECHO_C" >&6
if test "${cf_cv_gnat_version+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -16929,7 +17752,7 @@ cf_cv_gnat_version=`${cf_ada_make:-gnatmake} --version 2>&1 | \
sed -e '2,$d' -e 's/[^0-9 \.]//g' -e 's/^[ ]*//' -e 's/ .*//'`
fi
-echo "$as_me:16932: result: $cf_cv_gnat_version" >&5
+echo "$as_me:17755: result: $cf_cv_gnat_version" >&5
echo "${ECHO_T}$cf_cv_gnat_version" >&6
test -z "$cf_cv_gnat_version" && cf_cv_gnat_version=no
@@ -16938,7 +17761,7 @@ case "$cf_cv_gnat_version" in
cf_cv_prog_gnat_correct=yes
;;
(*)
- { echo "$as_me:16941: WARNING: Unsupported GNAT version $cf_cv_gnat_version. We require 3.11 or better. Disabling Ada95 binding." >&5
+ { echo "$as_me:17764: WARNING: Unsupported GNAT version $cf_cv_gnat_version. We require 3.11 or better. Disabling Ada95 binding." >&5
echo "$as_me: WARNING: Unsupported GNAT version $cf_cv_gnat_version. We require 3.11 or better. Disabling Ada95 binding." >&2;}
cf_cv_prog_gnat_correct=no
;;
@@ -16946,7 +17769,7 @@ esac
# Extract the first word of "m4", so it can be a program name with args.
set dummy m4; ac_word=$2
-echo "$as_me:16949: checking for $ac_word" >&5
+echo "$as_me:17772: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_M4_exists+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -16961,7 +17784,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_M4_exists="yes"
-echo "$as_me:16964: found $ac_dir/$ac_word" >&5
+echo "$as_me:17787: found $ac_dir/$ac_word" >&5
break
done
@@ -16970,20 +17793,20 @@ fi
fi
M4_exists=$ac_cv_prog_M4_exists
if test -n "$M4_exists"; then
- echo "$as_me:16973: result: $M4_exists" >&5
+ echo "$as_me:17796: result: $M4_exists" >&5
echo "${ECHO_T}$M4_exists" >&6
else
- echo "$as_me:16976: result: no" >&5
+ echo "$as_me:17799: result: no" >&5
echo "${ECHO_T}no" >&6
fi
if test "$ac_cv_prog_M4_exists" = no; then
cf_cv_prog_gnat_correct=no
- { echo "$as_me:16982: WARNING: Ada95 binding required program m4 not found. Ada95 binding disabled" >&5
+ { echo "$as_me:17805: WARNING: Ada95 binding required program m4 not found. Ada95 binding disabled" >&5
echo "$as_me: WARNING: Ada95 binding required program m4 not found. Ada95 binding disabled" >&2;}
fi
if test "$cf_cv_prog_gnat_correct" = yes; then
- echo "$as_me:16986: checking if GNAT works" >&5
+ echo "$as_me:17809: checking if GNAT works" >&5
echo $ECHO_N "checking if GNAT works... $ECHO_C" >&6
rm -rf ./conftest* ./*~conftest*
@@ -17011,7 +17834,7 @@ else
fi
rm -rf ./conftest* ./*~conftest*
- echo "$as_me:17014: result: $cf_cv_prog_gnat_correct" >&5
+ echo "$as_me:17837: result: $cf_cv_prog_gnat_correct" >&5
echo "${ECHO_T}$cf_cv_prog_gnat_correct" >&6
fi
else
@@ -17021,7 +17844,7 @@ fi
if test "$cf_cv_prog_gnat_correct" = yes; then
- echo "$as_me:17024: checking optimization options for ADAFLAGS" >&5
+ echo "$as_me:17847: checking optimization options for ADAFLAGS" >&5
echo $ECHO_N "checking optimization options for ADAFLAGS... $ECHO_C" >&6
case "$CFLAGS" in
(*-g*)
@@ -17038,10 +17861,10 @@ echo $ECHO_N "checking optimization options for ADAFLAGS... $ECHO_C" >&6
;;
esac
- echo "$as_me:17041: result: $ADAFLAGS" >&5
+ echo "$as_me:17864: result: $ADAFLAGS" >&5
echo "${ECHO_T}$ADAFLAGS" >&6
-echo "$as_me:17044: checking if GNATPREP supports -T option" >&5
+echo "$as_me:17867: checking if GNATPREP supports -T option" >&5
echo $ECHO_N "checking if GNATPREP supports -T option... $ECHO_C" >&6
if test "${cf_cv_gnatprep_opt_t+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -17051,11 +17874,11 @@ cf_cv_gnatprep_opt_t=no
gnatprep -T 2>/dev/null >/dev/null && cf_cv_gnatprep_opt_t=yes
fi
-echo "$as_me:17054: result: $cf_cv_gnatprep_opt_t" >&5
+echo "$as_me:17877: result: $cf_cv_gnatprep_opt_t" >&5
echo "${ECHO_T}$cf_cv_gnatprep_opt_t" >&6
test "$cf_cv_gnatprep_opt_t" = yes && GNATPREP_OPTS="-T $GNATPREP_OPTS"
-echo "$as_me:17058: checking if GNAT supports generics" >&5
+echo "$as_me:17881: checking if GNAT supports generics" >&5
echo $ECHO_N "checking if GNAT supports generics... $ECHO_C" >&6
case "$cf_cv_gnat_version" in
(3.1[1-9]*|3.[2-9]*|[4-9].*|[1-9][0-9].[0-9]*|20[0-9][0-9])
@@ -17065,7 +17888,7 @@ case "$cf_cv_gnat_version" in
cf_gnat_generics=no
;;
esac
-echo "$as_me:17068: result: $cf_gnat_generics" >&5
+echo "$as_me:17891: result: $cf_gnat_generics" >&5
echo "${ECHO_T}$cf_gnat_generics" >&6
if test "$cf_gnat_generics" = yes
@@ -17077,7 +17900,7 @@ else
cf_generic_objects=
fi
-echo "$as_me:17080: checking if GNAT supports SIGINT" >&5
+echo "$as_me:17903: checking if GNAT supports SIGINT" >&5
echo $ECHO_N "checking if GNAT supports SIGINT... $ECHO_C" >&6
if test "${cf_cv_gnat_sigint+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -17125,7 +17948,7 @@ fi
rm -rf ./conftest* ./*~conftest*
fi
-echo "$as_me:17128: result: $cf_cv_gnat_sigint" >&5
+echo "$as_me:17951: result: $cf_cv_gnat_sigint" >&5
echo "${ECHO_T}$cf_cv_gnat_sigint" >&6
if test "$cf_cv_gnat_sigint" = yes ; then
@@ -17138,7 +17961,7 @@ cf_gnat_libraries=no
cf_gnat_projects=no
if test "$enable_gnat_projects" != no ; then
-echo "$as_me:17141: checking if GNAT supports project files" >&5
+echo "$as_me:17964: checking if GNAT supports project files" >&5
echo $ECHO_N "checking if GNAT supports project files... $ECHO_C" >&6
case "$cf_cv_gnat_version" in
(3.[0-9]*)
@@ -17201,15 +18024,15 @@ CF_EOF
esac
;;
esac
-echo "$as_me:17204: result: $cf_gnat_projects" >&5
+echo "$as_me:18027: result: $cf_gnat_projects" >&5
echo "${ECHO_T}$cf_gnat_projects" >&6
fi # enable_gnat_projects
if test "$cf_gnat_projects" = yes
then
- echo "$as_me:17210: checking if GNAT supports libraries" >&5
+ echo "$as_me:18033: checking if GNAT supports libraries" >&5
echo $ECHO_N "checking if GNAT supports libraries... $ECHO_C" >&6
- echo "$as_me:17212: result: $cf_gnat_libraries" >&5
+ echo "$as_me:18035: result: $cf_gnat_libraries" >&5
echo "${ECHO_T}$cf_gnat_libraries" >&6
fi
@@ -17229,7 +18052,7 @@ then
then
USE_GNAT_MAKE_GPR=""
else
- { echo "$as_me:17232: WARNING: use old makefile rules since tools are missing" >&5
+ { echo "$as_me:18055: WARNING: use old makefile rules since tools are missing" >&5
echo "$as_me: WARNING: use old makefile rules since tools are missing" >&2;}
fi
fi
@@ -17241,8 +18064,8 @@ else
USE_GNAT_LIBRARIES="#"
fi
-echo "$as_me:17244: checking for ada-compiler" >&5
-echo $ECHO_N "checking for ada-compiler... $ECHO_C" >&6
+echo "$as_me:18067: checking for Ada95 compiler" >&5
+echo $ECHO_N "checking for Ada95 compiler... $ECHO_C" >&6
# Check whether --with-ada-compiler or --without-ada-compiler was given.
if test "${with_ada_compiler+set}" = set; then
@@ -17252,13 +18075,13 @@ else
cf_ada_compiler=gnatmake
fi;
-echo "$as_me:17255: result: $cf_ada_compiler" >&5
+echo "$as_me:18078: result: $cf_ada_compiler" >&5
echo "${ECHO_T}$cf_ada_compiler" >&6
cf_ada_package=terminal_interface
-echo "$as_me:17260: checking for ada-include" >&5
-echo $ECHO_N "checking for ada-include... $ECHO_C" >&6
+echo "$as_me:18083: checking for Ada95 include directory" >&5
+echo $ECHO_N "checking for Ada95 include directory... $ECHO_C" >&6
# Check whether --with-ada-include or --without-ada-include was given.
if test "${with_ada_include+set}" = set; then
@@ -17293,7 +18116,7 @@ case ".$withval" in
withval=`echo "$withval" | sed -e s%NONE%$cf_path_syntax%`
;;
(*)
- { { echo "$as_me:17296: error: expected a pathname, not \"$withval\"" >&5
+ { { echo "$as_me:18119: error: expected a pathname, not \"$withval\"" >&5
echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
{ (exit 1); exit 1; }; }
;;
@@ -17302,11 +18125,11 @@ esac
fi
eval ADA_INCLUDE="$withval"
-echo "$as_me:17305: result: $ADA_INCLUDE" >&5
+echo "$as_me:18128: result: $ADA_INCLUDE" >&5
echo "${ECHO_T}$ADA_INCLUDE" >&6
-echo "$as_me:17308: checking for ada-objects" >&5
-echo $ECHO_N "checking for ada-objects... $ECHO_C" >&6
+echo "$as_me:18131: checking for Ada95 object directory" >&5
+echo $ECHO_N "checking for Ada95 object directory... $ECHO_C" >&6
# Check whether --with-ada-objects or --without-ada-objects was given.
if test "${with_ada_objects+set}" = set; then
@@ -17341,7 +18164,7 @@ case ".$withval" in
withval=`echo "$withval" | sed -e s%NONE%$cf_path_syntax%`
;;
(*)
- { { echo "$as_me:17344: error: expected a pathname, not \"$withval\"" >&5
+ { { echo "$as_me:18167: error: expected a pathname, not \"$withval\"" >&5
echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
{ (exit 1); exit 1; }; }
;;
@@ -17350,11 +18173,11 @@ esac
fi
eval ADA_OBJECTS="$withval"
-echo "$as_me:17353: result: $ADA_OBJECTS" >&5
+echo "$as_me:18176: result: $ADA_OBJECTS" >&5
echo "${ECHO_T}$ADA_OBJECTS" >&6
-echo "$as_me:17356: checking if an Ada95 shared-library should be built" >&5
-echo $ECHO_N "checking if an Ada95 shared-library should be built... $ECHO_C" >&6
+echo "$as_me:18179: checking whether to build an Ada95 shared library" >&5
+echo $ECHO_N "checking whether to build an Ada95 shared library... $ECHO_C" >&6
# Check whether --with-ada-sharedlib or --without-ada-sharedlib was given.
if test "${with_ada_sharedlib+set}" = set; then
@@ -17363,19 +18186,25 @@ if test "${with_ada_sharedlib+set}" = set; then
else
with_ada_sharedlib=no
fi;
-echo "$as_me:17366: result: $with_ada_sharedlib" >&5
-echo "${ECHO_T}$with_ada_sharedlib" >&6
+cf_ada_sharedlib_warn=no
if test "x$with_ada_sharedlib" != xno
then
if test "x$cf_gnat_projects" != xyes
then
- { echo "$as_me:17373: WARNING: disabling shared-library since GNAT projects are not supported" >&5
-echo "$as_me: WARNING: disabling shared-library since GNAT projects are not supported" >&2;}
with_ada_sharedlib=no
+ cf_ada_sharedlib_warn=yes
fi
fi
+echo "$as_me:18200: result: $with_ada_sharedlib" >&5
+echo "${ECHO_T}$with_ada_sharedlib" >&6
+if test "x$cf_ada_sharedlib_warn" != xno
+then
+ { echo "$as_me:18204: WARNING: disabling Ada95 shared library since GNAT projects are not supported" >&5
+echo "$as_me: WARNING: disabling Ada95 shared library since GNAT projects are not supported" >&2;}
+fi
+
ADA_SHAREDLIB='lib$(LIB_NAME).so.1'
MAKE_ADA_SHAREDLIB="#"
@@ -17390,8 +18219,8 @@ fi
# allow the Ada binding to be renamed
-echo "$as_me:17393: checking for ada-libname" >&5
-echo $ECHO_N "checking for ada-libname... $ECHO_C" >&6
+echo "$as_me:18222: checking for Ada95 curses library name" >&5
+echo $ECHO_N "checking for Ada95 curses library name... $ECHO_C" >&6
# Check whether --with-ada-libname or --without-ada-libname was given.
if test "${with_ada_libname+set}" = set; then
@@ -17406,16 +18235,16 @@ case "x$ADA_LIBNAME" in
;;
esac
-echo "$as_me:17409: result: $ADA_LIBNAME" >&5
+echo "$as_me:18238: result: $ADA_LIBNAME" >&5
echo "${ECHO_T}$ADA_LIBNAME" >&6
else
- { { echo "$as_me:17413: error: No usable Ada compiler found" >&5
+ { { echo "$as_me:18242: error: No usable Ada compiler found" >&5
echo "$as_me: error: No usable Ada compiler found" >&2;}
{ (exit 1); exit 1; }; }
fi
else
- { { echo "$as_me:17418: error: The Ada compiler is needed for this package" >&5
+ { { echo "$as_me:18247: error: The Ada compiler is needed for this package" >&5
echo "$as_me: error: The Ada compiler is needed for this package" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -17455,7 +18284,7 @@ elif test "$includedir" != "/usr/include"; then
fi
### Build up pieces for makefile rules
-echo "$as_me:17458: checking default library suffix" >&5
+echo "$as_me:18287: checking default library suffix" >&5
echo $ECHO_N "checking default library suffix... $ECHO_C" >&6
case $DFT_LWR_MODEL in
@@ -17466,10 +18295,10 @@ echo $ECHO_N "checking default library suffix... $ECHO_C" >&6
(shared) DFT_ARG_SUFFIX='' ;;
esac
test -n "$LIB_SUFFIX" && DFT_ARG_SUFFIX="${LIB_SUFFIX}${DFT_ARG_SUFFIX}"
-echo "$as_me:17469: result: $DFT_ARG_SUFFIX" >&5
+echo "$as_me:18298: result: $DFT_ARG_SUFFIX" >&5
echo "${ECHO_T}$DFT_ARG_SUFFIX" >&6
-echo "$as_me:17472: checking default library-dependency suffix" >&5
+echo "$as_me:18301: checking default library-dependency suffix" >&5
echo $ECHO_N "checking default library-dependency suffix... $ECHO_C" >&6
case X$DFT_LWR_MODEL in
@@ -17552,10 +18381,10 @@ echo $ECHO_N "checking default library-dependency suffix... $ECHO_C" >&6
DFT_LIB_SUFFIX="${LIB_SUFFIX}${EXTRA_SUFFIX}${DFT_LIB_SUFFIX}"
DFT_DEP_SUFFIX="${LIB_SUFFIX}${EXTRA_SUFFIX}${DFT_DEP_SUFFIX}"
fi
-echo "$as_me:17555: result: $DFT_DEP_SUFFIX" >&5
+echo "$as_me:18384: result: $DFT_DEP_SUFFIX" >&5
echo "${ECHO_T}$DFT_DEP_SUFFIX" >&6
-echo "$as_me:17558: checking default object directory" >&5
+echo "$as_me:18387: checking default object directory" >&5
echo $ECHO_N "checking default object directory... $ECHO_C" >&6
case $DFT_LWR_MODEL in
@@ -17571,7 +18400,7 @@ echo $ECHO_N "checking default object directory... $ECHO_C" >&6
DFT_OBJ_SUBDIR='obj_s' ;;
esac
esac
-echo "$as_me:17574: result: $DFT_OBJ_SUBDIR" >&5
+echo "$as_me:18403: result: $DFT_OBJ_SUBDIR" >&5
echo "${ECHO_T}$DFT_OBJ_SUBDIR" >&6
### Set up low-level terminfo dependencies for makefiles.
@@ -17644,7 +18473,7 @@ cat >confcache <<\_ACEOF
# config.status only pays attention to the cache file if you give it
# the --recheck option to rerun configure.
#
-# `ac_cv_env_foo' variables (set or unset) will be overriden when
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
# loading this file, other *unset* `ac_cv_foo' will be assigned the
# following values.
@@ -17713,7 +18542,7 @@ DEFS=-DHAVE_CONFIG_H
: "${CONFIG_STATUS=./config.status}"
ac_clean_files_save=$ac_clean_files
ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ echo "$as_me:17716: creating $CONFIG_STATUS" >&5
+{ echo "$as_me:18545: creating $CONFIG_STATUS" >&5
echo "$as_me: creating $CONFIG_STATUS" >&6;}
cat >"$CONFIG_STATUS" <<_ACEOF
#! $SHELL
@@ -17722,6 +18551,8 @@ cat >"$CONFIG_STATUS" <<_ACEOF
# Compiler output produced by configure, useful for debugging
# configure, is in config.log if it exists.
+me=\`echo "\$0" | sed -e 's,.*\\/,,'\`
+
debug=false
SHELL=\${CONFIG_SHELL-$SHELL}
ac_cs_invocation="\$0 \$@"
@@ -17743,9 +18574,9 @@ fi
as_me=`echo "$0" |sed 's,.*[\\/],,'`
if expr a : '\(a\)' >/dev/null 2>&1; then
- as_expr=expr
+ as_expr="expr"
else
- as_expr=false
+ as_expr="false"
fi
rm -f conf$$ conf$$.exe conf$$.file
@@ -17760,7 +18591,7 @@ if ln -s conf$$.file conf$$ 2>/dev/null; then
as_ln_s='ln -s'
fi
elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
+ as_ln_s='ln'
else
as_ln_s='cp -p'
fi
@@ -17847,10 +18678,10 @@ EOF
cat >>"$CONFIG_STATUS" <<EOF
ac_cs_version="\\
config.status
-configured by $0, generated by GNU Autoconf 2.52.20210105,
+configured by $0, generated by GNU Autoconf 2.52.20231210,
with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
-Copyright 2003-2020,2021 Thomas E. Dickey
+Copyright 2003-2022,2023 Thomas E. Dickey
Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
@@ -17892,7 +18723,7 @@ cat >>"$CONFIG_STATUS" <<\EOF
echo "$ac_cs_version"; exit 0 ;;
--he | --h)
# Conflict between --help and --header
- { { echo "$as_me:17895: error: ambiguous option: $1
+ { { echo "$as_me:18726: error: ambiguous option: $1
Try \`$0 --help' for more information." >&5
echo "$as_me: error: ambiguous option: $1
Try \`$0 --help' for more information." >&2;}
@@ -17911,7 +18742,7 @@ Try \`$0 --help' for more information." >&2;}
ac_need_defaults=false;;
# This is an error.
- -*) { { echo "$as_me:17914: error: unrecognized option: $1
+ -*) { { echo "$as_me:18745: error: unrecognized option: $1
Try \`$0 --help' for more information." >&5
echo "$as_me: error: unrecognized option: $1
Try \`$0 --help' for more information." >&2;}
@@ -17930,7 +18761,7 @@ cat >&5 << _ACEOF
## Running config.status. ##
## ----------------------- ##
-This file was extended by $as_me 2.52.20210105, executed with
+This file was extended by $as_me 2.52.20231210, executed with
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
CONFIG_LINKS = $CONFIG_LINKS
@@ -17959,6 +18790,7 @@ LN_S="$LN_S"
NCURSES_MAJOR="$NCURSES_MAJOR"
NCURSES_MINOR="$NCURSES_MINOR"
NCURSES_PATCH="$NCURSES_PATCH"
+PACKAGE="$PACKAGE"
USE_OLD_MAKERULES="$USE_OLD_MAKERULES"
cf_cv_VERSION_GNATMAKE=$cf_cv_VERSION_GNATMAKE
cf_cv_VERSION_GPRBUILD=$cf_cv_VERSION_GPRBUILD
@@ -17985,7 +18817,7 @@ do
"Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
"default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
"include/ncurses_cfg.h" ) CONFIG_HEADERS="$CONFIG_HEADERS include/ncurses_cfg.h:include/ncurses_cfg.hin" ;;
- *) { { echo "$as_me:17988: error: invalid argument: $ac_config_target" >&5
+ *) { { echo "$as_me:18820: error: invalid argument: $ac_config_target" >&5
echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
{ (exit 1); exit 1; }; };;
esac
@@ -18009,14 +18841,14 @@ $debug ||
}
# Create a (secure) tmp directory for tmp files.
-: ${TMPDIR=/tmp}
+: "${TMPDIR=/tmp}"
{
tmp=`(umask 077 && mktemp -d -q "$TMPDIR/csXXXXXX") 2>/dev/null` &&
test -n "$tmp" && test -d "$tmp"
} ||
{
tmp=$TMPDIR/cs$$-$RANDOM
- (umask 077 && mkdir $tmp)
+ (umask 077 && mkdir "$tmp")
} ||
{
echo "$me: cannot create a temporary directory in $TMPDIR" >&2
@@ -18036,7 +18868,7 @@ cat >>"$CONFIG_STATUS" <<EOF
if test -n "\$CONFIG_FILES"; then
# Protect against being on the right side of a sed subst in config.status.
sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
- s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
+ s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >"\$tmp"/subs.sed <<\\CEOF
s,@SHELL@,$SHELL,;t t
s,@exec_prefix@,$exec_prefix,;t t
s,@prefix@,$prefix,;t t
@@ -18069,6 +18901,7 @@ s,@ECHO_T@,$ECHO_T,;t t
s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
s,@DEFS@,$DEFS,;t t
s,@LIBS@,$LIBS,;t t
+s,@PACKAGE@,$PACKAGE,;t t
s,@top_builddir@,$top_builddir,;t t
s,@build@,$build,;t t
s,@build_cpu@,$build_cpu,;t t
@@ -18105,6 +18938,8 @@ s,@PKG_CONFIG@,$PKG_CONFIG,;t t
s,@ac_pt_PKG_CONFIG@,$ac_pt_PKG_CONFIG,;t t
s,@PKG_CONFIG_LIBDIR@,$PKG_CONFIG_LIBDIR,;t t
s,@SET_MAKE@,$SET_MAKE,;t t
+s,@MAKE_NO_PHONY@,$MAKE_NO_PHONY,;t t
+s,@MAKE_PHONY@,$MAKE_PHONY,;t t
s,@CTAGS@,$CTAGS,;t t
s,@ETAGS@,$ETAGS,;t t
s,@MAKE_LOWER_TAGS@,$MAKE_LOWER_TAGS,;t t
@@ -18168,6 +19003,8 @@ s,@RULE_CC@,$RULE_CC,;t t
s,@SHOW_CC@,$SHOW_CC,;t t
s,@ECHO_CC@,$ECHO_CC,;t t
s,@EXTRA_CFLAGS@,$EXTRA_CFLAGS,;t t
+s,@HAVE_STDNORETURN_H@,$HAVE_STDNORETURN_H,;t t
+s,@STDC_NORETURN@,$STDC_NORETURN,;t t
s,@ADAFLAGS@,$ADAFLAGS,;t t
s,@ADA_TRACE@,$ADA_TRACE,;t t
s,@cf_TEMP_gnat@,$cf_TEMP_gnat,;t t
@@ -18224,11 +19061,11 @@ EOF
ac_sed_cmds=
while "$ac_more_lines"; do
if test "$ac_beg" -gt 1; then
- sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+ sed "1,${ac_beg}d; ${ac_end}q" "$tmp"/subs.sed >"$tmp"/subs.frag
else
- sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+ sed "${ac_end}q" "$tmp"/subs.sed >"$tmp"/subs.frag
fi
- if test ! -s $tmp/subs.frag; then
+ if test ! -s "$tmp"/subs.frag; then
ac_more_lines=false
else
# The purpose of the label and of the branching condition is to
@@ -18236,17 +19073,17 @@ EOF
# is no need to browse any of the substitutions).
# These are the two extra sed commands mentioned above.
(echo ':t
- /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
+ /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat "$tmp"/subs.frag) >"$tmp"/subs-$ac_sed_frag.sed
# It is possible to make a multiline substitution using escaped newlines.
# Ensure that we do not split the substitution between script fragments.
ac_BEG=$ac_end
ac_END=`expr "$ac_end" + "$ac_max_sed_lines"`
- sed "1,${ac_BEG}d; ${ac_END}p; q" $tmp/subs.sed >$tmp/subs.next
- if test -s $tmp/subs.next; then
- grep '^s,@[^@,][^@,]*@,.*\\$' $tmp/subs.next >$tmp/subs.edit
- if test ! -s $tmp/subs.edit; then
- grep "^s,@[^@,][^@,]*@,.*,;t t$" $tmp/subs.next >$tmp/subs.edit
- if test ! -s $tmp/subs.edit; then
+ sed "1,${ac_BEG}d; ${ac_END}p; q" "$tmp"/subs.sed >"$tmp"/subs.next
+ if test -s "$tmp"/subs.next; then
+ grep '^s,@[^@,][^@,]*@,.*\\$' "$tmp"/subs.next >"$tmp"/subs.edit
+ if test ! -s "$tmp"/subs.edit; then
+ grep "^s,@[^@,][^@,]*@,.*,;t t$" "$tmp"/subs.next >"$tmp"/subs.edit
+ if test ! -s "$tmp"/subs.edit; then
if test "$ac_beg" -gt 1; then
ac_end=`expr "$ac_end" - 1`
continue
@@ -18256,9 +19093,9 @@ EOF
fi
if test -z "$ac_sed_cmds"; then
- ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
+ ac_sed_cmds="sed -f \"$tmp\"/subs-$ac_sed_frag.sed"
else
- ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
+ ac_sed_cmds="$ac_sed_cmds | sed -f \"$tmp\"/subs-$ac_sed_frag.sed"
fi
ac_sed_frag=`expr "$ac_sed_frag" + 1`
ac_beg=$ac_end
@@ -18266,7 +19103,7 @@ EOF
fi
done
if test -z "$ac_sed_cmds"; then
- ac_sed_cmds=cat
+ ac_sed_cmds="cat"
fi
fi # test -n "$CONFIG_FILES"
@@ -18276,7 +19113,7 @@ for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
# Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
case "$ac_file" in
- | *:- | *:-:* ) # input from stdin
- cat >$tmp/stdin
+ cat >"$tmp"/stdin
ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
*:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
@@ -18313,7 +19150,7 @@ for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do
esac
done; }
- ac_dir_suffix="/`echo $ac_dir|sed 's,^\./,,'`"
+ ac_dir_suffix="/`echo "$ac_dir"|sed 's,^\./,,'`"
# A "../" for each directory in $ac_dir_suffix.
ac_dots=`echo "$ac_dir_suffix" | sed 's,/[^/]*,../,g'`
else
@@ -18341,7 +19178,7 @@ done; }
esac
if test x"$ac_file" != x-; then
- { echo "$as_me:18344: creating $ac_file" >&5
+ { echo "$as_me:19181: creating $ac_file" >&5
echo "$as_me: creating $ac_file" >&6;}
rm -f "$ac_file"
fi
@@ -18356,23 +19193,23 @@ echo "$as_me: creating $ac_file" >&6;}
ac_file_inputs=`IFS=:
for f in $ac_file_in; do
case $f in
- -) echo $tmp/stdin ;;
+ -) echo "$tmp"/stdin ;;
[\\/$]*)
# Absolute (can't be DOS-style, as IFS=:)
- test -f "$f" || { { echo "$as_me:18362: error: cannot find input file: $f" >&5
+ test -f "$f" || { { echo "$as_me:19199: error: cannot find input file: $f" >&5
echo "$as_me: error: cannot find input file: $f" >&2;}
{ (exit 1); exit 1; }; }
- echo $f;;
+ echo "$f";;
*) # Relative
if test -f "$f"; then
# Build tree
- echo $f
+ echo "$f"
elif test -f "$srcdir/$f"; then
# Source tree
echo "$srcdir/$f"
else
# /dev/null tree
- { { echo "$as_me:18375: error: cannot find input file: $f" >&5
+ { { echo "$as_me:19212: error: cannot find input file: $f" >&5
echo "$as_me: error: cannot find input file: $f" >&2;}
{ (exit 1); exit 1; }; }
fi;;
@@ -18388,7 +19225,7 @@ cat >>"$CONFIG_STATUS" <<\EOF
if test -n "$ac_seen"; then
ac_used=`grep '@datarootdir@' "$ac_item"`
if test -z "$ac_used"; then
- { echo "$as_me:18391: WARNING: datarootdir was used implicitly but not set:
+ { echo "$as_me:19228: WARNING: datarootdir was used implicitly but not set:
$ac_seen" >&5
echo "$as_me: WARNING: datarootdir was used implicitly but not set:
$ac_seen" >&2;}
@@ -18397,7 +19234,7 @@ $ac_seen" >&2;}
fi
ac_seen=`grep '${datarootdir}' "$ac_item"`
if test -n "$ac_seen"; then
- { echo "$as_me:18400: WARNING: datarootdir was used explicitly but not set:
+ { echo "$as_me:19237: WARNING: datarootdir was used explicitly but not set:
$ac_seen" >&5
echo "$as_me: WARNING: datarootdir was used explicitly but not set:
$ac_seen" >&2;}
@@ -18422,38 +19259,46 @@ s,@configure_input@,$configure_input,;t t
s,@srcdir@,$ac_srcdir,;t t
s,@top_srcdir@,$ac_top_srcdir,;t t
s,@INSTALL@,$ac_INSTALL,;t t
-" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
- rm -f $tmp/stdin
+" $ac_file_inputs | (eval "$ac_sed_cmds") >"$tmp"/out
+ rm -f "$tmp"/stdin
+EOF
+test -n "${FGREP}" || FGREP="grep -F"
+test -n "${EGREP}" || EGREP="grep -E"
+cat >>"$CONFIG_STATUS" <<EOF
+ test -n "\${FGREP}" || FGREP="$FGREP"
+ test -n "\${EGREP}" || EGREP="$EGREP"
+EOF
+cat >>"$CONFIG_STATUS" <<\EOF
if test x"$ac_file" != x-; then
cp "$tmp/out" "$ac_file"
for ac_name in prefix exec_prefix datarootdir
do
- ac_seen=`${FGREP-fgrep} -n '${'$ac_name'[:=].*}' "$ac_file"`
+ ac_seen=`$FGREP -n '${'$ac_name'[:=].*}' "$ac_file"`
if test -n "$ac_seen"; then
- ac_init=`${EGREP-egrep} '[ ]*'$ac_name'[ ]*=' "$ac_file"`
+ ac_init=`$EGREP '[ ]*'$ac_name'[ ]*=' "$ac_file"`
if test -z "$ac_init"; then
- ac_seen=`echo "$ac_seen" |sed -e 's,^,'$ac_file':,'`
- { echo "$as_me:18437: WARNING: Variable $ac_name is used but was not set:
+ ac_seen=`echo "$ac_seen" |sed -e 's,^,'"$ac_file"':,'`
+ { echo "$as_me:19282: WARNING: Variable $ac_name is used but was not set:
$ac_seen" >&5
echo "$as_me: WARNING: Variable $ac_name is used but was not set:
$ac_seen" >&2;}
fi
fi
done
- ${EGREP-egrep} -n '@[a-z_][a-z_0-9]+@' "$ac_file" >$tmp/out
- ${EGREP-egrep} -n '@[A-Z_][A-Z_0-9]+@' "$ac_file" >>$tmp/out
- if test -s $tmp/out; then
- ac_seen=`sed -e 's,^,'$ac_file':,' < $tmp/out`
- { echo "$as_me:18448: WARNING: Some variables may not be substituted:
+ $EGREP -n '@[a-z_][a-z_0-9]+@' "$ac_file" >"$tmp"/out
+ $EGREP -n '@[A-Z_][A-Z_0-9]+@' "$ac_file" >>"$tmp"/out
+ if test -s "$tmp"/out; then
+ ac_seen=`sed -e 's,^,'"$ac_file"':,' < "$tmp"/out`
+ { echo "$as_me:19293: WARNING: Some variables may not be substituted:
$ac_seen" >&5
echo "$as_me: WARNING: Some variables may not be substituted:
$ac_seen" >&2;}
fi
else
- cat $tmp/out
+ cat "$tmp"/out
fi
- rm -f $tmp/out
+ rm -f "$tmp"/out
done
EOF
@@ -18486,7 +19331,7 @@ for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
# Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
case "$ac_file" in
- | *:- | *:-:* ) # input from stdin
- cat >$tmp/stdin
+ cat >"$tmp"/stdin
ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
*:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
@@ -18494,7 +19339,7 @@ for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
* ) ac_file_in=$ac_file.in ;;
esac
- test x"$ac_file" != x- && { echo "$as_me:18497: creating $ac_file" >&5
+ test x"$ac_file" != x- && { echo "$as_me:19342: creating $ac_file" >&5
echo "$as_me: creating $ac_file" >&6;}
# First look for the input files in the build tree, otherwise in the
@@ -18502,10 +19347,10 @@ echo "$as_me: creating $ac_file" >&6;}
ac_file_inputs=`IFS=:
for f in $ac_file_in; do
case $f in
- -) echo $tmp/stdin ;;
+ -) echo "$tmp"/stdin ;;
[\\/$]*)
# Absolute (can't be DOS-style, as IFS=:)
- test -f "$f" || { { echo "$as_me:18508: error: cannot find input file: $f" >&5
+ test -f "$f" || { { echo "$as_me:19353: error: cannot find input file: $f" >&5
echo "$as_me: error: cannot find input file: $f" >&2;}
{ (exit 1); exit 1; }; }
echo $f;;
@@ -18518,14 +19363,14 @@ echo "$as_me: error: cannot find input file: $f" >&2;}
echo "$srcdir/$f"
else
# /dev/null tree
- { { echo "$as_me:18521: error: cannot find input file: $f" >&5
+ { { echo "$as_me:19366: error: cannot find input file: $f" >&5
echo "$as_me: error: cannot find input file: $f" >&2;}
{ (exit 1); exit 1; }; }
fi;;
esac
done` || { (exit 1); exit 1; }
# Remove the trailing spaces.
- sed 's/[ ]*$//' $ac_file_inputs >$tmp/in
+ sed 's/[ ]*$//' $ac_file_inputs >"$tmp"/in
EOF
@@ -18557,9 +19402,9 @@ echo ' cat >> conftest.edit <<CEOF
/@DEFS@/r conftest.frag
/@DEFS@/d
CEOF
-sed -f conftest.edit $tmp/in > $tmp/out
-rm -f $tmp/in
-mv $tmp/out $tmp/in
+sed -f conftest.edit "$tmp"/in > "$tmp"/out
+rm -f "$tmp"/in
+mv "$tmp"/out "$tmp"/in
rm -f conftest.edit conftest.frag
' >> "$CONFIG_STATUS"
@@ -18568,15 +19413,15 @@ cat >>"$CONFIG_STATUS" <<\EOF
# use $as_me), people would be surprised to read:
# /* config.h. Generated automatically by config.status. */
if test x"$ac_file" = x-; then
- echo "/* Generated automatically by configure. */" >$tmp/config.h
+ echo "/* Generated automatically by configure. */" >"$tmp"/config.h
else
- echo "/* $ac_file. Generated automatically by configure. */" >$tmp/config.h
+ echo "/* $ac_file. Generated automatically by configure. */" >"$tmp"/config.h
fi
- cat $tmp/in >>$tmp/config.h
- rm -f $tmp/in
+ cat "$tmp"/in >>"$tmp"/config.h
+ rm -f "$tmp"/in
if test x"$ac_file" != x-; then
if cmp -s "$ac_file" "$tmp/config.h" 2>/dev/null; then
- { echo "$as_me:18579: $ac_file is unchanged" >&5
+ { echo "$as_me:19424: $ac_file is unchanged" >&5
echo "$as_me: $ac_file is unchanged" >&6;}
else
ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
@@ -18612,8 +19457,8 @@ done; }
mv "$tmp/config.h" "$ac_file"
fi
else
- cat $tmp/config.h
- rm -f $tmp/config.h
+ cat "$tmp"/config.h
+ rm -f "$tmp"/config.h
fi
done
EOF
@@ -18627,6 +19472,7 @@ for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
case "$ac_dest" in
default )
+$AWK -v PACKAGE=$PACKAGE -f $srcdir/mk-pkg.awk </dev/null >> Makefile
if test -z "$USE_OLD_MAKERULES" ; then
$AWK -f $srcdir/mk-1st.awk <$srcdir/src/modules >>src/Makefile
fi
diff --git a/Ada95/configure.in b/Ada95/configure.in
index eb544d4c2609..3384df245ea2 100644
--- a/Ada95/configure.in
+++ b/Ada95/configure.in
@@ -1,5 +1,5 @@
dnl***************************************************************************
-dnl Copyright 2018-2020,2021 Thomas E. Dickey *
+dnl Copyright 2018-2022,2023 Thomas E. Dickey *
dnl Copyright 2010-2016,2018 Free Software Foundation, Inc. *
dnl *
dnl Permission is hereby granted, free of charge, to any person obtaining a *
@@ -29,7 +29,7 @@ dnl***************************************************************************
dnl
dnl Author: Thomas E. Dickey
dnl
-dnl $Id: configure.in,v 1.82 2021/01/09 11:20:33 tom Exp $
+dnl $Id: configure.in,v 1.91 2023/02/18 23:21:29 tom Exp $
dnl Process this file with autoconf to produce a configure script.
dnl
dnl For additional information, see
@@ -37,13 +37,15 @@ dnl https://invisible-island.net/autoconf/
dnl https://invisible-island.net/autoconf/my-autoconf.html
dnl
dnl ---------------------------------------------------------------------------
-AC_PREREQ(2.52.20200111)
-AC_REVISION($Revision: 1.82 $)
+AC_PREREQ(2.52.20210509)
+AC_REVISION($Revision: 1.91 $)
AC_INIT(gen/gen.c)
AC_CONFIG_HEADER(include/ncurses_cfg.h:include/ncurses_cfg.hin)
AC_DEFUN([AC_PATH_XTRA],[])dnl ignore dependencies on this
+PACKAGE="AdaCurses" AC_SUBST(PACKAGE)
+
CF_TOP_BUILDDIR
CF_HELP_MESSAGE(General Options:)
@@ -102,6 +104,7 @@ fi
# do this after mixed-case option (tags/TAGS is not as important as tic).
AC_PROG_MAKE_SET
+CF_MAKE_PHONY
CF_MAKE_TAGS
CF_MAKEFLAGS
@@ -219,6 +222,7 @@ CF_ENABLE_BROKEN_LINKER
# Check to define _XOPEN_SOURCE "automatically"
CF_XOPEN_SOURCE(600)
+AC_CHECK_DECL(exit)
CF_LARGEFILE
@@ -355,7 +359,7 @@ CF_DISABLE_ECHO
CF_ENABLE_WARNINGS(Wno-unknown-pragmas Wswitch-enum,yes)
if test "x$enable_warnings" = "xyes"; then
- CF_ADD_ADAFLAGS(-gnatg)
+ CF_ADD_ADAFLAGS(-gnatwa -gnatyg)
fi
### use option --enable-assertions to turn on generation of assertion code
@@ -418,20 +422,15 @@ CF_DISABLE_GNAT_PROJECTS
### Checks for libraries.
case $cf_cv_system_name in
(*mingw32*)
+ CF_CHECK_LIBSSP
;;
(*)
-AC_CHECK_FUNC(gettimeofday,
- AC_DEFINE(HAVE_GETTIMEOFDAY),[
-
-AC_CHECK_LIB(bsd, gettimeofday,
- AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define to 1 if we have gettimeofday])
- LIBS="$LIBS -lbsd")])dnl CLIX: bzero, select, gettimeofday
+ CF_FUNC_GETTIME
;;
esac
### Checks for header files.
AC_CHECK_SIZEOF([signed char])
-AC_STDC_HEADERS
AC_HEADER_DIRENT
AC_HEADER_TIME
@@ -586,6 +585,7 @@ AC_OUTPUT( \
src/library.gpr:src/library.gpr.in \
doc/adacurses${DFT_ARG_SUFFIX}-config.1:doc/MKada_config.in \
Makefile,[
+$AWK -v PACKAGE=$PACKAGE -f $srcdir/mk-pkg.awk </dev/null >> Makefile
if test -z "$USE_OLD_MAKERULES" ; then
$AWK -f $srcdir/mk-1st.awk <$srcdir/src/modules >>src/Makefile
fi
@@ -603,6 +603,7 @@ LN_S="$LN_S"
NCURSES_MAJOR="$NCURSES_MAJOR"
NCURSES_MINOR="$NCURSES_MINOR"
NCURSES_PATCH="$NCURSES_PATCH"
+PACKAGE="$PACKAGE"
USE_OLD_MAKERULES="$USE_OLD_MAKERULES"
cf_cv_VERSION_GNATMAKE=$cf_cv_VERSION_GNATMAKE
cf_cv_VERSION_GPRBUILD=$cf_cv_VERSION_GPRBUILD
diff --git a/Ada95/doc/Makefile.in b/Ada95/doc/Makefile.in
index bde5c6112f51..0aed33feb3f7 100644
--- a/Ada95/doc/Makefile.in
+++ b/Ada95/doc/Makefile.in
@@ -1,4 +1,4 @@
-# $Id: Makefile.in,v 1.8 2021/01/23 20:42:08 tom Exp $
+# $Id: Makefile.in,v 1.9 2021/07/03 15:45:33 tom Exp $
##############################################################################
# Copyright 2019-2020,2021 Thomas E. Dickey #
# Copyright 2011-2015,2018 Free Software Foundation, Inc. #
@@ -52,9 +52,26 @@ THIS = @ADA_LIBNAME@
DOCDIR = $(DESTDIR)$(datadir)/doc/$(THIS)
MANDIR = $(DESTDIR)$(mandir)/man1
+################################################################################
+
+@MAKE_PHONY@.PHONY : all
+@MAKE_PHONY@.PHONY : check
+@MAKE_PHONY@.PHONY : clean
+@MAKE_PHONY@.PHONY : distclean
+@MAKE_PHONY@.PHONY : install
+@MAKE_PHONY@.PHONY : install.html
+@MAKE_PHONY@.PHONY : install.man
+@MAKE_PHONY@.PHONY : libs
+@MAKE_PHONY@.PHONY : lint
+@MAKE_PHONY@.PHONY : mostlyclean
+@MAKE_PHONY@.PHONY : realclean
+@MAKE_PHONY@.PHONY : sources
+@MAKE_PHONY@.PHONY : uninstall
+@MAKE_PHONY@.PHONY : uninstall.html
+@MAKE_PHONY@.PHONY : uninstall.man
+
all \
sources \
-depend \
tags :
$(DOCDIR) \
diff --git a/Ada95/gen/Makefile.in b/Ada95/gen/Makefile.in
index 13835743f95e..525ce9987876 100644
--- a/Ada95/gen/Makefile.in
+++ b/Ada95/gen/Makefile.in
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright 2019-2020,2021 Thomas E. Dickey #
+# Copyright 2019-2022,2024 Thomas E. Dickey #
# Copyright 1998-2015,2018 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -30,7 +30,7 @@
# Author: Juergen Pfeifer, 1996
# and: Thomas E. Dickey, 1997
#
-# $Id: Makefile.in,v 1.96 2021/01/23 20:42:08 tom Exp $
+# $Id: Makefile.in,v 1.103 2024/01/19 16:51:56 tom Exp $
#
.SUFFIXES:
@@ -103,8 +103,7 @@ PROG_GENERATE = ./generate$x
GENERATE = $(PROG_GENERATE) '@USE_ARG_SUFFIX@'
DEL_ADAMODE = sed -e '/^\-\-\ \ \-\*\-\ ada\ \-\*\-.*/d'
-GNATHTML = `type -p gnathtml || type -p gnathtml.pl 2>/dev/null`
-GNATHP = www.gnat.com
+GNATHTML = `command -v gnathtml || command -v gnathtml.pl`
################################################################################
ALIB = @cf_ada_package@
@@ -143,6 +142,19 @@ GEN_SRC = $(srcdir)/$(ABASE).ads.m4 \
$(srcdir)/$(ABASE)-forms-field_user_data.ads.m4 \
$(srcdir)/$(ABASE)-panels-user_data.ads.m4
+################################################################################
+
+@MAKE_PHONY@.PHONY : all
+@MAKE_PHONY@.PHONY : clean
+@MAKE_PHONY@.PHONY : distclean
+@MAKE_PHONY@.PHONY : install
+@MAKE_PHONY@.PHONY : install.libs
+@MAKE_PHONY@.PHONY : libs
+@MAKE_PHONY@.PHONY : mostlyclean
+@MAKE_PHONY@.PHONY : realclean
+@MAKE_PHONY@.PHONY : sources
+@MAKE_PHONY@.PHONY : uninstall
+@MAKE_PHONY@.PHONY : uninstall.libs
all \
libs : $(GEN_TARGETS)
@@ -171,7 +183,8 @@ $(ADA_SRCDIR)/$(ABASE)_constants.ads: $(PROG_GENERATE)
$(WRAPPER) "$(GENERATE) $@"
################################################################################
$(ADA_SRCDIR)/$(ABASE).ads: $(srcdir)/$(ABASE).ads.m4 \
- $(srcdir)/normal.m4
+ $(srcdir)/normal.m4 \
+ options.m4
$(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
$(srcdir)/$(ABASE).ads.m4 |\
$(DEL_ADAMODE) >$@
@@ -272,6 +285,7 @@ mostlyclean ::
-rm -f a.out core $(PROG_GENERATE) *.o
clean :: mostlyclean
+ -rm -f options.m4
-rm -f $(GEN_TARGETS) instab.tmp *.ad[bs] *.html *.ali *.tmp
distclean :: clean
@@ -282,29 +296,39 @@ realclean :: distclean
HTML_DIR = @ADAHTML_DIR@
+options.m4 :
+ $(SHELL) -c "if [ @cf_cv_enable_sigwinch@ = 0 ]; \
+ then \
+ dashes=' --'; \
+ else \
+ dashes='';\
+ fi; \
+ echo \"define(OPT_KEY_RESIZE,\\\`\$$dashes')dnl\" > $@"
+
instab.tmp : table.m4 $(GEN_SRC)
@rm -f $@
@for f in $(GEN_SRC) ; do \
$(M4) $(M4FLAGS) -DM4MACRO=table.m4 $$f | $(DEL_ADAMODE) >> $@ ;\
done;
+TABLE_TITLE=Correspondence between ncurses C and Ada functions
+
$(HTML_DIR)/table.html : instab.tmp
@-touch $@
@-chmod +w $@
- @echo '<!DOCTYPE HTML' > $@
- @echo 'PUBLIC "-//IETF//DTD HTML 3.0//EN">' >> $@
- @echo '<HTML>' >> $@
- @echo '<HEAD>' >> $@
- @echo '<TITLE>Correspondence between ncurses C and Ada functions</TITLE>' >>$@
- @echo '</HEAD>' >> $@
- @echo '<BODY>' >> $@
- @echo '<H1>Correspondence between ncurses C and Ada functions</H1>' >>$@
- @echo '<H2>Sorted by C function name</H2>' >>$@
- @echo '<TABLE ALIGN=CENTER BORDER>' >>$@
- @echo '<TR ALIGN=LEFT>' >>$@
- @echo '<TH>C name</TH><TH>Ada name</TH><TH>man page</TH></TR>' >>$@
+ @echo '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">' > $@
+ @echo '<html>' >> $@
+ @echo '<head>' >> $@
+ @echo '<title>$(TABLE_TITLE)</title>' >>$@
+ @echo '</head>' >> $@
+ @echo '<body>' >> $@
+ @echo '<h1>$(TABLE_TITLE)</h1>' >>$@
+ @echo '<h2>Sorted by C function name</h2>' >>$@
+ @echo '<table align="center" border summary="$(TABLE_TITLE)">' >>$@
+ @echo '<tr align="left">' >>$@
+ @echo '<th>C name</th><th>Ada name</th><th>man page</th></tr>' >>$@
@sort < instab.tmp >> $@
- @echo '</TABLE></BODY></HTML>' >>$@
+ @echo '</table></body></html>' >>$@
@rm -f instab.tmp
adahtml:
@@ -328,7 +352,7 @@ adahtml:
for f in html/$(ALIB)*.htm*; do \
a=`basename $$f` ; \
sed -e 's/You may also.*body.*//' <$$f |\
- sed -e 's%GNAT%<A HREF="http://$(GNATHP)">GNAT</A>%g' |\
+ sed -e 's%\<GNAT\>%<strong>GNAT</strong>%g' |\
sed -e 's%&lt;A HREF%<A HREF%g' |\
sed -e 's%"&gt;%">%g' |\
sed -e 's%#1A\([[:space:]]*NAME="[^"]*"\)#2%<A\1>%' |\
diff --git a/Ada95/gen/adacurses-config.in b/Ada95/gen/adacurses-config.in
index 2b055dc53f11..a5394170d752 100644
--- a/Ada95/gen/adacurses-config.in
+++ b/Ada95/gen/adacurses-config.in
@@ -1,7 +1,7 @@
#! /bin/sh
-# $Id: adacurses-config.in,v 1.14 2020/02/02 23:34:34 tom Exp $
+# $Id: adacurses-config.in,v 1.15 2022/07/16 21:16:43 tom Exp $
##############################################################################
-# Copyright 2019,2020 Thomas E. Dickey #
+# Copyright 2019-2020,2022 Thomas E. Dickey #
# Copyright 2007-2014,2016 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -45,17 +45,17 @@ CFLAGS="-aI$ADA_INCLUDE -aO$ADA_OBJECTS"
LIBS="-L$ADA_OBJECTS -l@ADA_LIBNAME@"
THIS="@ADA_LIBNAME@"
-THIS_CFG="$THIS@DFT_ARG_SUFFIX@-config"
+THIS_CFG="${THIS}@DFT_ARG_SUFFIX@-config"
case "x$1" in
x--version)
echo @ADA_LIBNAME@ $VERSION
;;
x--cflags)
- echo $CFLAGS
+ echo "$CFLAGS"
;;
x--libs)
- echo $LIBS
+ echo "$LIBS"
;;
x)
# if no parameter is given, give what gnatmake needs
@@ -77,7 +77,7 @@ If no options are given, echos the full set of flags needed by gnatmake.
ENDHELP
;;
*)
- echo 'Usage: $THIS_CFG [--version | --cflags | --libs]' >&2
+ echo "Usage: ${THIS_CFG} [--version | --cflags | --libs]" >&2
exit 1
;;
esac
diff --git a/Ada95/gen/gen.c b/Ada95/gen/gen.c
index 51bc161a4685..b37de1b0219b 100644
--- a/Ada95/gen/gen.c
+++ b/Ada95/gen/gen.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020-2021,2024 Thomas E. Dickey *
* Copyright 1998-2014,2016 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -35,7 +35,7 @@
/*
Version Control
- $Id: gen.c,v 1.77 2020/08/16 18:05:05 tom Exp $
+ $Id: gen.c,v 1.79 2024/01/19 13:41:45 tom Exp $
--------------------------------------------------------------------------*/
/*
This program prints on its standard output the source for the
@@ -95,7 +95,7 @@ print_size_of(FILE * fp,
const char *name,
size_t value)
{
- fprintf(fp, " %-28s : constant := %lu;\n", name, value);
+ fprintf(fp, " %-28s : constant := %lu;\n", name, (unsigned long)value);
}
#define PRINT_NAMED_CONSTANT(name) \
@@ -424,7 +424,9 @@ main(int argc, const char *argv[])
PRINT_NAMED_CONSTANT(KEY_SUSPEND);
PRINT_NAMED_CONSTANT(KEY_UNDO);
PRINT_NAMED_CONSTANT(KEY_MOUSE);
+#ifdef KEY_RESIZE
PRINT_NAMED_CONSTANT(KEY_RESIZE);
+#endif
print_comment(fp, "alternate character codes (ACS) from addch(3NCURSES)");
#define PRINT_ACS(name) print_size_of (fp, #name, (size_t)(&name - &acs_map[0]))
@@ -490,6 +492,7 @@ main(int argc, const char *argv[])
print_comment(fp, "Field_Options from opts(3FORM)");
PRINT_NAMED_BITMASK(Field_Options, O_NL_OVERLOAD);
PRINT_NAMED_BITMASK(Field_Options, O_BS_OVERLOAD);
+
/* Field_Options_Size is defined below */
print_comment(fp, "MEVENT structure from mouse(3NCURSES)");
diff --git a/Ada95/gen/terminal_interface-curses.adb.m4 b/Ada95/gen/terminal_interface-curses.adb.m4
index 3f34d203d57c..c966f9b98cb0 100644
--- a/Ada95/gen/terminal_interface-curses.adb.m4
+++ b/Ada95/gen/terminal_interface-curses.adb.m4
@@ -9,7 +9,7 @@ include(M4MACRO)----------------------------------------------------------------
-- B O D Y --
-- --
------------------------------------------------------------------------------
--- Copyright 2018,2020 Thomas E. Dickey --
+-- Copyright 2018-2020,2024 Thomas E. Dickey --
-- Copyright 2007-2011,2014 Free Software Foundation, Inc. --
-- --
-- Permission is hereby granted, free of charge, to any person obtaining a --
@@ -38,8 +38,8 @@ include(M4MACRO)----------------------------------------------------------------
------------------------------------------------------------------------------
-- Author: Juergen Pfeifer, 1996
-- Version Control:
--- $Revision: 1.16 $
--- $Date: 2020/02/02 23:34:34 $
+-- $Revision: 1.17 $
+-- $Date: 2024/03/30 13:24:07 $
-- Binding Version 01.00
------------------------------------------------------------------------------
with System;
@@ -564,7 +564,7 @@ package body Terminal_Interface.Curses is
L : constant Special_Key_Code := Special_Key_Code (Natural (Key_F0) +
Natural (Function_Key_Number'Last));
begin
- if (Key >= Key_F0) and then (Key <= L) then
+ if Key >= Key_F0 and then Key <= L then
return True;
else
return False;
diff --git a/Ada95/gen/terminal_interface-curses.ads.m4 b/Ada95/gen/terminal_interface-curses.ads.m4
index a5e9103683aa..d6b18e587a38 100644
--- a/Ada95/gen/terminal_interface-curses.ads.m4
+++ b/Ada95/gen/terminal_interface-curses.ads.m4
@@ -1,6 +1,6 @@
-- -*- ada -*-
define(`HTMLNAME',`terminal_interface-curses__ads.htm')dnl
-include(M4MACRO)------------------------------------------------------------------------------
+include(M4MACRO)include(options.m4)------------------------------------------------------------------------------
-- --
-- GNAT ncurses Binding --
-- --
@@ -9,7 +9,7 @@ include(M4MACRO)----------------------------------------------------------------
-- S P E C --
-- --
------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey --
+-- Copyright 2020,2024 Thomas E. Dickey --
-- Copyright 1998-2011,2014 Free Software Foundation, Inc. --
-- --
-- Permission is hereby granted, free of charge, to any person obtaining a --
@@ -38,8 +38,8 @@ include(M4MACRO)----------------------------------------------------------------
------------------------------------------------------------------------------
-- Author: Juergen Pfeifer, 1996
-- Version Control:
--- $Revision: 1.48 $
--- $Date: 2020/02/02 23:34:34 $
+-- $Revision: 1.49 $
+-- $Date: 2024/01/19 16:51:30 $
-- Binding Version 01.00
------------------------------------------------------------------------------
with System.Storage_Elements;
@@ -377,8 +377,8 @@ package Terminal_Interface.Curses is
:= Curses_Constants.KEY_UNDO;
Key_Mouse : constant Special_Key_Code
:= Curses_Constants.KEY_MOUSE;
- Key_Resize : constant Special_Key_Code
- := Curses_Constants.KEY_RESIZE;
+OPT_KEY_RESIZE Key_Resize : constant Special_Key_Code
+OPT_KEY_RESIZE := Curses_Constants.KEY_RESIZE;
Key_Max : constant Special_Key_Code
:= Special_Key_Code'Last;
diff --git a/Ada95/include/MKncurses_def.sh b/Ada95/include/MKncurses_def.sh
index 4b2ae4166880..9d80244152a9 100755
--- a/Ada95/include/MKncurses_def.sh
+++ b/Ada95/include/MKncurses_def.sh
@@ -1,7 +1,7 @@
#! /bin/sh
-# $Id: MKncurses_def.sh,v 1.4 2020/02/02 23:34:34 tom Exp $
+# $Id: MKncurses_def.sh,v 1.5 2022/07/16 17:03:59 tom Exp $
##############################################################################
-# Copyright 2020 Thomas E. Dickey #
+# Copyright 2020,2022 Thomas E. Dickey #
# Copyright 2003 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -56,7 +56,7 @@ cat <<EOF
EOF
-${AWK-awk} <$DEFS '
+"${AWK-awk}" <"$DEFS" '
!/^[@#]/ {
if ( NF == 1 )
{
diff --git a/Ada95/include/Makefile.in b/Ada95/include/Makefile.in
index 58713d17d2bc..89bb27d2b65b 100644
--- a/Ada95/include/Makefile.in
+++ b/Ada95/include/Makefile.in
@@ -1,6 +1,6 @@
-# $Id: Makefile.in,v 1.6 2020/02/02 23:34:34 tom Exp $
+# $Id: Makefile.in,v 1.7 2021/07/03 15:45:33 tom Exp $
##############################################################################
-# Copyright 2020 Thomas E. Dickey #
+# Copyright 2020,2021 Thomas E. Dickey #
# Copyright 2010-2015,2018 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -60,9 +60,21 @@ AUTO_SRC = \
ncurses_def.h
################################################################################
+
+@MAKE_PHONY@.PHONY : all
+@MAKE_PHONY@.PHONY : clean
+@MAKE_PHONY@.PHONY : distclean
+@MAKE_PHONY@.PHONY : install
+@MAKE_PHONY@.PHONY : install.libs
+@MAKE_PHONY@.PHONY : libs
+@MAKE_PHONY@.PHONY : mostlyclean
+@MAKE_PHONY@.PHONY : realclean
+@MAKE_PHONY@.PHONY : sources
+@MAKE_PHONY@.PHONY : uninstall
+@MAKE_PHONY@.PHONY : uninstall.libs
+
all \
libs \
-depend \
sources \
install :: $(AUTO_SRC)
diff --git a/Ada95/include/ncurses_defs b/Ada95/include/ncurses_defs
index 7a7059bf7de9..adc1b24f8506 100644
--- a/Ada95/include/ncurses_defs
+++ b/Ada95/include/ncurses_defs
@@ -1,6 +1,6 @@
-# $Id: ncurses_defs,v 1.45 2020/02/02 23:34:34 tom Exp $
+# $Id: ncurses_defs,v 1.47 2021/12/04 23:08:11 tom Exp $
##############################################################################
-# Copyright 2020 Thomas E. Dickey #
+# Copyright 2020,2021 Thomas E. Dickey #
# Copyright 2008-2012,2013 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -44,7 +44,7 @@ GCC_UNUSED /* nothing */
HAVE_BIG_CORE
HAVE_BSD_CGETENT
HAVE_BSD_SIGNAL_H
-HAVE_BTOWC
+HAVE_BTOWC
HAVE_BUILTIN_H
HAVE_CHGAT 1
HAVE_COLOR_SET 1
@@ -63,7 +63,6 @@ HAVE_GETNSTR
HAVE_GETOPT_H
HAVE_GETPARX 1
HAVE_GETTIMEOFDAY
-HAVE_GETTTYNAM
HAVE_GETWIN 1
HAVE_GPM_H
HAVE_GPP_BUILTIN_H
@@ -101,7 +100,7 @@ HAVE_PANEL_H
HAVE_POLL
HAVE_POLL_H
HAVE_PURIFY
-HAVE_PUTWC
+HAVE_PUTWC
HAVE_PUTWIN 1
HAVE_REGEXPR_H_FUNCS
HAVE_REGEXP_H_FUNCS
@@ -111,10 +110,7 @@ HAVE_RESIZETERM
HAVE_RESIZE_TERM
HAVE_RIPOFFLINE 1
HAVE_SELECT
-HAVE_SETBUF
-HAVE_SETBUFFER
HAVE_SETUPTERM 1
-HAVE_SETVBUF
HAVE_SIGACTION
HAVE_SIGVEC
HAVE_SIZECHANGE
@@ -143,7 +139,6 @@ HAVE_TGETENT 1
HAVE_TIGETNUM 1
HAVE_TIGETSTR 1
HAVE_TIMES
-HAVE_TTYENT_H
HAVE_TYPEAHEAD 1
HAVE_TYPEINFO
HAVE_TYPE_ATTR_T
@@ -156,7 +151,7 @@ HAVE_VSNPRINTF
HAVE_VSSCANF
HAVE_WCSRTOMBS
HAVE_WCSTOMBS
-HAVE_WCTOB
+HAVE_WCTOB
HAVE_WCTOMB
HAVE_WCTYPE_H
HAVE_WINSSTR 1
diff --git a/Ada95/make-tar.sh b/Ada95/make-tar.sh
index e88b312841b1..083812da49bb 100755
--- a/Ada95/make-tar.sh
+++ b/Ada95/make-tar.sh
@@ -1,7 +1,7 @@
#!/bin/sh
-# $Id: make-tar.sh,v 1.18 2020/02/02 23:34:34 tom Exp $
+# $Id: make-tar.sh,v 1.23 2022/11/05 20:29:41 tom Exp $
##############################################################################
-# Copyright 2019,2020 Thomas E. Dickey #
+# Copyright 2019-2021,2022 Thomas E. Dickey #
# Copyright 2010-2015,2017 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -37,14 +37,19 @@ export CDPATH
TARGET=`pwd`
-: ${ROOTNAME:=ncurses-Ada95}
-: ${PKG_NAME:=AdaCurses}
-: ${DESTDIR:=$TARGET}
-: ${TMPDIR:=/tmp}
+: "${ROOTNAME:=ncurses-Ada95}"
+: "${PKG_NAME:=AdaCurses}"
+: "${DESTDIR:=$TARGET}"
+: "${TMPDIR:=/tmp}"
+
+# make timestamps of generated files predictable
+same_timestamp() {
+ touch -r ../NEWS "$1"
+}
grep_assign() {
- grep_assign=`egrep "^$2\>" "$1" | sed -e "s/^$2[ ]*=[ ]*//" -e 's/"//g'`
- eval $2=\"$grep_assign\"
+ grep_assign=`grep -E "^$2\>" "$1" | sed -e "s/^$2[ ]*=[ ]*//" -e 's/"//g'`
+ eval "$2"=\""$grep_assign"\"
}
grep_patchdate() {
@@ -59,29 +64,35 @@ edit_specfile() {
sed \
-e "s/\\<MAJOR\\>/$NCURSES_MAJOR/g" \
-e "s/\\<MINOR\\>/$NCURSES_MINOR/g" \
- -e "s/\\<YYYYMMDD\\>/$NCURSES_PATCH/g" $1 >$1.new
- chmod u+w $1
- mv $1.new $1
+ -e "s/\\<YYYYMMDD\\>/$NCURSES_PATCH/g" "$1" >"$1.new"
+ chmod u+w "$1"
+ mv "$1.new" "$1"
+ same_timestamp "$1"
}
make_changelog() {
- test -f $1 && chmod u+w $1
- cat >$1 <<EOF
-`echo $PKG_NAME|tr '[A-Z]' '[a-z]'` ($NCURSES_MAJOR.$NCURSES_MINOR+$NCURSES_PATCH) unstable; urgency=low
+ [ -f "$1" ] && chmod u+w "$1"
+ cat >"$1" <<EOF
+`echo $PKG_NAME|tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` ($NCURSES_MAJOR.$NCURSES_MINOR+$NCURSES_PATCH) unstable; urgency=low
* snapshot of ncurses subpackage for $PKG_NAME.
- -- `head -n 1 $HOME/.signature` `date -R`
+ -- `head -n 1 "$HOME"/.signature` `date -R`
EOF
+ same_timestamp "$1"
}
# This can be run from either the subdirectory, or from the top-level
# source directory. We will put the tar file in the original directory.
-test -d ./Ada95 && cd ./Ada95
+if [ -d ./Ada95 ]
+then
+ cd ./Ada95 || exit
+fi
SOURCE=`cd ..;pwd`
BUILD=$TMPDIR/make-tar$$
-trap "cd /; rm -rf $BUILD; exit 0" EXIT INT QUIT TERM HUP
+trap "cd /; rm -rf $BUILD; exit 1" 1 2 3 15
+trap "cd /; rm -rf $BUILD" 0
umask 077
if ! ( mkdir $BUILD )
@@ -92,46 +103,49 @@ fi
umask 022
mkdir $BUILD/$ROOTNAME
-cp -p -r * $BUILD/$ROOTNAME/ || exit
+cp -p -r ./* $BUILD/$ROOTNAME/ || exit
# Add the config.* utility scripts from the top-level directory.
for i in . ..
do
- for j in config.guess config.sub install-sh tar-copy.sh
+ for j in COPYING config.guess config.sub install-sh tar-copy.sh
do
- test -f $i/$j && cp -p $i/$j $BUILD/$ROOTNAME/
+ [ -f $i/$j ] && cp -p $i/$j $BUILD/$ROOTNAME/
done
done
# Make rpm and dpkg scripts for test-builds
grep_patchdate
-for spec in $BUILD/$ROOTNAME/package/*.spec
+for spec in "$BUILD/$ROOTNAME"/package/*.spec
do
- edit_specfile $spec
+ edit_specfile "$spec"
done
-for spec in $BUILD/$ROOTNAME/package/debian*
+for spec in "$BUILD/$ROOTNAME"/package/debian*
do
- make_changelog $spec/changelog
+ make_changelog "$spec"/changelog
done
cp -p ../man/MKada_config.in $BUILD/$ROOTNAME/doc/
-if test -z "$NO_HTML_DOCS"
+if [ -z "$NO_HTML_DOCS" ]
then
# Add the ada documentation.
cd ../doc/html || exit
cp -p -r Ada* $BUILD/$ROOTNAME/doc/
cp -p -r ada $BUILD/$ROOTNAME/doc/
+
+ cd ../../Ada95 || exit
fi
-cp -p $SOURCE/NEWS $BUILD/$ROOTNAME
+cp -p "$SOURCE/NEWS" $BUILD/$ROOTNAME
# cleanup empty directories (an artifact of ncurses source archives)
-touch $BUILD/$ROOTNAME/MANIFEST
-( cd $BUILD/$ROOTNAME && find . -type f -print |$SOURCE/misc/csort >MANIFEST )
+touch $BUILD/$ROOTNAME/MANIFEST
+( cd $BUILD/$ROOTNAME && find . -type f -print | "$SOURCE/misc/csort" >MANIFEST )
+same_timestamp $BUILD/$ROOTNAME/MANIFEST
-cd $BUILD || exit
+cd $BUILD || exit
# Remove build-artifacts.
find . -name RCS -exec rm -rf {} \;
@@ -148,8 +162,11 @@ find . -name "*.gz" -exec rm -rf {} \;
# Make the files writable...
chmod -R u+w .
-tar cf - $ROOTNAME | gzip >$DESTDIR/$ROOTNAME.tar.gz
-cd $DESTDIR
+# Cleanup timestamps
+[ -n "$TOUCH_DIRS" ] && "$TOUCH_DIRS" "$ROOTNAME"
+
+tar cf - $TAR_OPTIONS $ROOTNAME | gzip >"$DESTDIR/$ROOTNAME.tar.gz"
+cd "$DESTDIR" || exit
pwd
ls -l $ROOTNAME.tar.gz
diff --git a/Ada95/mk-pkg.awk b/Ada95/mk-pkg.awk
new file mode 100644
index 000000000000..bb07abe06276
--- /dev/null
+++ b/Ada95/mk-pkg.awk
@@ -0,0 +1,90 @@
+# $Id: mk-pkg.awk,v 1.1 2022/12/17 23:41:18 tom Exp $
+##############################################################################
+# Copyright 2022 Thomas E. Dickey #
+# #
+# 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. #
+##############################################################################
+#
+# Author: Thomas E. Dickey
+#
+# add rules to Makefile for AdaCurses binding package.
+BEGIN {
+ print "# generated by mk-pkg.awk\n";
+ }
+END {
+ printf "PACKAGE = %s\n", PACKAGE
+ print "real_bindir = $(libexecdir)/$(PACKAGE)"
+ print "REAL_BINDIR = $(LIBEXECDIR)/$(PACKAGE)"
+ print "SUB_MFLAGS = $(TOP_MFLAGS) BINDIR=$(REAL_BINDIR)"
+ print "samples = samples"
+ print ""
+ print "TESTS = \\"
+ print " $(samples)/ncurses \\"
+ print " $(samples)/rain \\"
+ print " $(samples)/tour"
+ print ""
+ print "DATAFILES = \\"
+ print " $(samples)/explain.txt"
+ print ""
+ print "all:: $(TESTS)"
+ print ""
+ print "# we might install the example-programs"
+ print "$(PACKAGE) :"
+ print " @echo \"creating $(PACKAGE) script\""
+ print " @$(SHELL) -c '\\"
+ print " L=$(real_bindir); \\"
+ print " rm -f $@; \\"
+ print " echo \"#!$(SHELL)\" > $@;\\"
+ print " echo \"PATH=\\\"$$L\\\":\\$$PATH\" >>$@;\\"
+ print " echo \"export PATH\" >>$@;\\"
+ print " echo \"if test \\$$# != 0; then\" >>$@;\\"
+ print " echo \" exec \\\"\\$$@\\\"\" >>$@;\\"
+ print " echo \"elif test -t 1; then\" >>$@;\\"
+ print " echo \" cd \\\"$$L\\\" || exit\" >>$@;\\"
+ print " echo \" ls -l | \\$${PAGER:-less}\" >>$@;\\"
+ print " echo \"fi\" >>$@;\\"
+ print " echo \"echo \\\"usage: $@ [program]\\\"\" >>$@'"
+ print ""
+ print "install \\"
+ print "install.examples:: $(PACKAGE) $(BINDIR) $(REAL_BINDIR) $(DATADIR) $(TESTS)"
+ print " @echo \"installing $(PACKAGE) -> $(BINDIR)/\""
+ print " $(INSTALL_SCRIPT) $(PACKAGE) $(BINDIR)"
+ print " ( cd samples && $(MAKE) $(SUB_MFLAGS) install.examples )"
+ print ""
+ print "uninstall \\"
+ print "uninstall.examples ::"
+ print " -rm -f $(BINDIR)/$(PACKAGE)"
+ print " ( cd samples && $(MAKE) $(SUB_MFLAGS) uninstall.examples )"
+ print ""
+ print "clean \\"
+ print "mostlyclean \\"
+ print "realclean \\"
+ print "distclean ::"
+ print " -rm -f $(PACKAGE)"
+ print ""
+ print "$(BINDIR) $(REAL_BINDIR) $(DATADIR) :"
+ print " mkdir -p $@"
+
+ }
diff --git a/Ada95/package/AdaCurses.spec b/Ada95/package/AdaCurses.spec
index 9b39110eb842..540e8e54bad8 100644
--- a/Ada95/package/AdaCurses.spec
+++ b/Ada95/package/AdaCurses.spec
@@ -2,7 +2,7 @@ Summary: Ada95 binding for ncurses
%define AppProgram AdaCurses
%define AppVersion MAJOR.MINOR
%define AppRelease YYYYMMDD
-# $Id: AdaCurses.spec,v 1.25 2019/11/23 21:15:31 tom Exp $
+# $Id: AdaCurses.spec,v 1.31 2022/12/18 00:08:17 tom Exp $
Name: %{AppProgram}
Version: %{AppVersion}
Release: %{AppRelease}
@@ -20,9 +20,13 @@ In addition to a library, this package installs sample programs in
"bin/%{AppProgram}" to avoid conflict with other packages.
%prep
+%global is_mandriva %(test -f /etc/mandriva-release && echo 1 || echo 0)
+%global is_redhat %(test -f /etc/redhat-release && echo 1 || echo 0)
+%global is_suse %(if grep -E -i '(opensuse)' /etc/issue >/dev/null; then echo 1; else echo 0; fi)
+
%define debug_package %{nil}
-%define need_filter %(if grep -E -i '(mageia|red hat|fedora)' /etc/issue >/dev/null; then echo 1; elif test -f /etc/fedora-release; then echo 1; else echo 0; fi)
+%define need_filter %(if grep -E -i '(red hat|fedora)' /etc/issue >/dev/null; then echo 1; elif test -f /etc/fedora-release; then echo 1; else echo 0; fi)
%if %{need_filter} == 1
# http://fedoraproject.org/wiki/EPEL:Packaging_Autoprovides_and_Requires_Filtering
@@ -34,22 +38,38 @@ In addition to a library, this package installs sample programs in
%build
-%define ada_libdir %{_prefix}/lib/ada/adalib
+%define ada_libdir %{_libdir}/ada/adalib
%define ada_include %{_prefix}/share/ada/adainclude
+%if %{is_mandriva}
+# Mageia 8 lacks gprbuild, needed for building shared libraries.
+%define ada_model --without-shared --without-ada-sharedlib --with-ada-objects=%{_libdir}/adalib
+%else
+# OpenSUSE actually lacks gprbuild, but there is a workable "community" package.
+%define ada_model --with-shared --with-ada-sharedlib
+%if %{is_redhat}
+# Fedora 36 LTO does not work with gprbuild system configuration.
+unset CFLAGS
+unset LDFLAGS
+unset LT_SYS_LIBRARY_PATH
+%endif
+%endif
+
INSTALL_PROGRAM='${INSTALL}' \
- ./configure \
+ ./configure %{ada_model} \
--target %{_target_platform} \
--prefix=%{_prefix} \
--bindir=%{_bindir} \
--libdir=%{_libdir} \
+ --libexecdir=%{_libexecdir} \
--with-ada-include=%{ada_include} \
--with-ada-objects=%{ada_libdir} \
--mandir=%{_mandir} \
--datadir=%{_datadir} \
--disable-rpath-link \
- --with-shared \
- --with-ada-sharedlib
+ --disable-echo \
+ --verbose \
+ --enable-warnings
make
@@ -57,12 +77,7 @@ make
[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT
-
-( cd samples &&
- make install.examples \
- DESTDIR=$RPM_BUILD_ROOT \
- BINDIR=$RPM_BUILD_ROOT%{_bindir}/%{AppProgram}
-)
+make install.examples DESTDIR=$RPM_BUILD_ROOT
%clean
if rm -rf $RPM_BUILD_ROOT; then
@@ -74,12 +89,16 @@ exit 0
%files
%defattr(-,root,root)
+%{_bindir}/%{AppProgram}
%{_bindir}/adacurses*-config
-%{_bindir}/%{AppProgram}/*
+%{_libexecdir}/%{AppProgram}/*
%{ada_libdir}/
%if %{need_filter} == 1
%{_libdir}/lib%{AppProgram}.*
%endif
+%if %{is_suse}
+%{_libdir}/lib%{AppProgram}.*
+%endif
%{_mandir}/man1/adacurses*-config.1*
%{_datadir}/%{AppProgram}/*
%{ada_include}/
@@ -87,6 +106,16 @@ exit 0
%changelog
# each patch should add its ChangeLog entries here
+* Sat Dec 17 2022 Thomas Dickey
+- install sample programs in libexec
+
+* Sat Nov 19 2022 Thomas Dickey
+- use static libraries for Mageia.
+
+* Sat Nov 12 2022 Thomas Dickey
+- unset environment variables to work around Fedora LTO bugs.
+- build-fix for OpenSUSE with gprbuild.
+
* Sat Nov 16 2019 Thomas Dickey
- modify clean-rule to work around Fedora NFS bugs.
diff --git a/Ada95/package/debian/compat b/Ada95/package/debian/compat
index f599e28b8ab0..48082f72f087 100644
--- a/Ada95/package/debian/compat
+++ b/Ada95/package/debian/compat
@@ -1 +1 @@
-10
+12
diff --git a/Ada95/package/debian/control b/Ada95/package/debian/control
index 030adb17a5d2..1a9aefdaa839 100644
--- a/Ada95/package/debian/control
+++ b/Ada95/package/debian/control
@@ -2,9 +2,11 @@ Source: adacurses
Maintainer: Thomas E. Dickey <dickey@invisible-island.net>
Section: misc
Priority: optional
-Standards-Version: 3.8.4
-Build-Depends: debhelper (>= 5)
+Build-Depends: debhelper (>= 5),
+ gnat,
+ gprbuild
Homepage: https://invisible-island.net/adacurses/
+Standards-Version: 4.6.1.0
Package: adacurses
Architecture: any
diff --git a/Ada95/package/debian/copyright b/Ada95/package/debian/copyright
index 897961d04527..b4060150e667 100644
--- a/Ada95/package/debian/copyright
+++ b/Ada95/package/debian/copyright
@@ -4,13 +4,13 @@ Current ncurses maintainer: Thomas Dickey <dickey@invisible-island.net>
-------------------------------------------------------------------------------
Files: *
-Copyright: 2017-2020,2021 by Thomas E. Dickey
+Copyright: 2017-2023,2024 by Thomas E. Dickey
Copyright: 1998-2016,2017 Free Software Foundation, Inc.
-Licence: X11
+License: X11
Files: aclocal.m4 package
-Copyright: 2010-2020,2021 by Thomas E. Dickey
-Licence: X11
+Copyright: 2010-2023,2024 by Thomas E. Dickey
+License: X11
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the
@@ -39,7 +39,7 @@ Licence: X11
-------------------------------------------------------------------------------
Files: install-sh
Copyright: 1994 X Consortium
-Licence: X11
+License: X11
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
diff --git a/Ada95/package/debian/rules b/Ada95/package/debian/rules
index 708d3eb2d591..0adde8de5345 100755
--- a/Ada95/package/debian/rules
+++ b/Ada95/package/debian/rules
@@ -12,7 +12,7 @@ DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
TARGET_DIR = $(CURDIR)/debian/adacurses
-SAMPLE_DIR = $(TARGET_DIR)/usr/bin/AdaCurses
+SAMPLE_DIR = $(TARGET_DIR)/usr/libexec/AdaCurses
CFLAGS = $(shell dpkg-buildflags --get CFLAGS) $(CC_NORMAL)
CPPFLAGS = $(shell dpkg-buildflags --get CPPFLAGS)
@@ -67,11 +67,11 @@ install: install-stamp
install-stamp: build-stamp
dh_testdir
dh_testroot
- dh_clean -k
+ dh_prep
dh_installdirs
$(MAKE) install DESTDIR=$(TARGET_DIR)
-
+
# FIXME: it would be nice to make these into separate packages
( cd samples && $(MAKE) install.examples DESTDIR=$(TARGET_DIR) BINDIR=$(SAMPLE_DIR) )
( cd doc && $(MAKE) install.html DESTDIR=$(TARGET_DIR) )
diff --git a/Ada95/samples/Makefile.in b/Ada95/samples/Makefile.in
index 3a0c272f4092..3731085a3e51 100644
--- a/Ada95/samples/Makefile.in
+++ b/Ada95/samples/Makefile.in
@@ -29,7 +29,7 @@
#
# Author: Juergen Pfeifer, 1996
#
-# $Id: Makefile.in,v 1.62 2021/01/23 20:42:08 tom Exp $
+# $Id: Makefile.in,v 1.64 2021/07/03 15:45:33 tom Exp $
#
.SUFFIXES:
@@ -107,7 +107,23 @@ THISLIB = sample
CARGS = -cargs $(ADAFLAGS)
LARGS = -largs -L../lib -l@ADA_LIBNAME@ @TEST_ARG2@ $(LD_FLAGS) @TEST_LIBS2@
-PROGS = tour$x ncurses$x @USE_GNAT_SIGINT@ rain$x
+PROGS = tour$x ncurses$x @USE_GNAT_SIGINT@ rain$x
+
+################################################################################
+
+@MAKE_PHONY@.PHONY : all
+@MAKE_PHONY@.PHONY : clean
+@MAKE_PHONY@.PHONY : distclean
+@MAKE_PHONY@.PHONY : install
+@MAKE_PHONY@.PHONY : install.examples
+@MAKE_PHONY@.PHONY : install.libs
+@MAKE_PHONY@.PHONY : libs
+@MAKE_PHONY@.PHONY : mostlyclean
+@MAKE_PHONY@.PHONY : realclean
+@MAKE_PHONY@.PHONY : sources
+@MAKE_PHONY@.PHONY : uninstall
+@MAKE_PHONY@.PHONY : uninstall.examples
+@MAKE_PHONY@.PHONY : uninstall.libs
all :: $(PROGS)
@echo made $@
diff --git a/Ada95/samples/explain.txt b/Ada95/samples/explain.txt
index be2cba154ee2..f05eede302a6 100644
--- a/Ada95/samples/explain.txt
+++ b/Ada95/samples/explain.txt
@@ -27,15 +27,15 @@ In a menu you can use the following Keys in the whole application:
- Cursor Right Right one item
- END Key Go to last item
#FORMKEYS
- - CTRL-X eXit the form
+ - CTRL-X eXit the form
- CTRL-F Go forward to the next field
- CTRL-B Go backward to the previous field
- - CTRL-L Go to the field left of the current one
+ - CTRL-L Go to the field left of the current one
- CTRL-R Go to the field right of the current one
- - CTRL-U Go to the field above the current one
- - CTRL-D Go to the field below the current one
+ - CTRL-U Go to the field above the current one
+ - CTRL-D Go to the field below the current one
- - CTRL-W Go to the next word in the field
+ - CTRL-W Go to the next word in the field
- CTRL-T Go to the previous word in the field
- CTRL-A Go to the beginning of the field
@@ -43,13 +43,13 @@ In a menu you can use the following Keys in the whole application:
- CTRL-I Insert a blank character at the current position
- CTRL-O Insert a line
- - CTRL-V Delete a character
- - CTRL-H Delete previous character
- - CTRL-Y Delete a line
- - CTRL-G Delete a word
- - CTRL-K Clear to end of field
+ - CTRL-V Delete a character
+ - CTRL-H Delete previous character
+ - CTRL-Y Delete a line
+ - CTRL-G Delete a word
+ - CTRL-K Clear to end of field
- - CTRL-N Next choice in a choice field (Enumerations etc.)
+ - CTRL-N Next choice in a choice field (Enumerations etc.)
- CTRL-P Previous choice in a choice field.
#HELP
#HELPKEYS
@@ -61,8 +61,8 @@ You may leave the help with the Function Key labeled 'Quit'.
#MAIN
This is the main menu of the sample program for the ncurses Ada95
binding. The main intention of the demo is not to demonstrate or
-test all the features of ncurses and it's subsystems, but to provide
-to you some sample code how to use the binding with Ada95.
+test all the features of ncurses and its subsystems, but to provide
+to you some sample code how to use the binding with Ada95.
You may select this options:
@@ -71,7 +71,7 @@ You may select this options:
* Look at some features of the form subsystem
* Look at the output of the Ada.Text_IO like functions
for ncurses.
-
+
#MAINPAD
You may press at any place in this demo CTRL-C. This will give you a command
window. You can just type in the Label-String of a function key, then this
@@ -86,13 +86,13 @@ descriptions for the items, a marker and a padding character between
the item name and the description.
#MENU01
This is a demo of the some of the menu layout options. One of them
-is the spacing functionality. Just press the Key labeled "Flip" to
+is the spacing functionality. Just press the Key labeled "Flip" to
flip between the non-spaced and a spaced version of the menu. Please
-note that this functionality is unique for ncurses and is not found
-in the SVr4 menu implementation.
+note that this functionality is unique for ncurses and is not found
+in the SVr4 menu implementation.
-This is a menu that sometimes does not fit into it's window and
-therefore it becomes a scroll menu.
+This is a menu that sometimes does not fit into its window and
+therefore it becomes a scroll menu.
You can also see here very nicely the pattern matching functionality
of menus. Type for example a 'J' and you will be positioned to the
@@ -106,10 +106,10 @@ labeled "4x1", "4x2" or "4x3" to get a menu with that many rows
and columns.
With the Keys "O-Row" or "O-Col" (they occupy the same label and
-switch on selection) you can change the major order scheme for
+switch on selection) you can change the major order scheme for
the menu. If "O-Col" is visible, the menu is currently major
ordered by rows, you can switch to major column order by pressing
-the key. If "O-Row" is visible, it's just the reverse situation.
+the key. If "O-Row" is visible, it is just the reverse situation.
This Key is not visible in "4x1" layout mode, because in this case
the functionality makes no sense.
@@ -136,7 +136,7 @@ For more details press the Key labeled "Help".
This is a demo of the forms package.
#FORM-PAD00
Please note that this demo is far from being complete. It really shows
-only a small part of the functionality of the forms package. Let's hope
+only a small part of the functionality of the forms package. Let's hope
the next version will have a richer demo (You want to contribute ?).
#NOTIMPL
Sorry this functionality of the demo is not implemented at the moment.
@@ -148,7 +148,7 @@ This is a menu where you can select some different demos of the ncurses
functionality.
#CURSES-PAD00
Please note that this demo is far from being complete. It really shows
-only a small part of the functionality of the curses package. Let's hope
+only a small part of the functionality of the curses package. Let's hope
the next version will have a richer demo (You want to contribute ?).
#MOUSEKEYS
In this demo you may use this keys:
@@ -160,16 +160,16 @@ In this demo you may use this keys:
You may click the mouse buttons at any location at the screen and look
at the protocol window !
#MOUSE00
-A rather simple use of a mouse as demo. It's there just to test the
-code and to provide the sample source.
+A rather simple use of a mouse as demo. It is there just to test the
+code and to provide the sample source.
It might be of interest, that the output into the protocol window is
done by the (n)curses Text_IO subpackages. Especially the output of
-the button and state names is done by Ads's enumeration IO, which
+the button and state names is done by Ads's enumeration IO, which
allows you to print the names of enumeration literals. That's really
nice.
#MOUSE-PAD00
-This is a very simple demo of the mouse features of ncurses. It's there
+This is a very simple demo of the mouse features of ncurses. It is there
just to test whether or not the generated code for the binding really
works on the different architectures (seems so).
#ATTRIBDEMO
diff --git a/Ada95/samples/ncurses2-demo_forms.adb b/Ada95/samples/ncurses2-demo_forms.adb
index 5c86af793357..b2d72ba4c6f3 100644
--- a/Ada95/samples/ncurses2-demo_forms.adb
+++ b/Ada95/samples/ncurses2-demo_forms.adb
@@ -7,7 +7,7 @@
-- B O D Y --
-- --
------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey --
+-- Copyright 2020,2021 Thomas E. Dickey --
-- Copyright 2000-2011,2014 Free Software Foundation, Inc. --
-- --
-- Permission is hereby granted, free of charge, to any person obtaining a --
@@ -36,8 +36,8 @@
------------------------------------------------------------------------------
-- Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
-- Version Control
--- $Revision: 1.8 $
--- $Date: 2020/02/02 23:34:34 $
+-- $Revision: 1.9 $
+-- $Date: 2021/09/04 10:52:55 $
-- Binding Version 01.00
------------------------------------------------------------------------------
with ncurses2.util; use ncurses2.util;
@@ -381,7 +381,7 @@ procedure ncurses2.demo_forms is
Set_KeyPad_Mode (w, True);
end if;
- -- TODO if Post(f) /= Form_Ok then it's a procedure
+ -- TODO if Post(f) /= Form_Ok then it is a procedure
declare
begin
Post (f);
diff --git a/Ada95/samples/ncurses2-overlap_test.adb b/Ada95/samples/ncurses2-overlap_test.adb
index 11a2d0be782b..6f3341ba2f23 100644
--- a/Ada95/samples/ncurses2-overlap_test.adb
+++ b/Ada95/samples/ncurses2-overlap_test.adb
@@ -7,7 +7,7 @@
-- B O D Y --
-- --
------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey --
+-- Copyright 2020-2021,2024 Thomas E. Dickey --
-- Copyright 2000-2014,2015 Free Software Foundation, Inc. --
-- --
-- Permission is hereby granted, free of charge, to any person obtaining a --
@@ -36,8 +36,8 @@
------------------------------------------------------------------------------
-- Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
-- Version Control
--- $Revision: 1.8 $
--- $Date: 2020/02/02 23:34:34 $
+-- $Revision: 1.10 $
+-- $Date: 2024/03/30 13:21:15 $
-- Binding Version 01.00
------------------------------------------------------------------------------
with ncurses2.util; use ncurses2.util;
@@ -73,8 +73,8 @@ procedure ncurses2.overlap_test is
Get_Size (win, y1, x1);
for y in 0 .. y1 - 1 loop
for x in 0 .. x1 - 1 loop
- if ((x > (x1 - 1) / 3) and (x <= (2 * (x1 - 1)) / 3)) or
- (((y > (y1 - 1) / 3) and (y <= (2 * (y1 - 1)) / 3)))
+ if (x > (x1 - 1) / 3 and x <= (2 * (x1 - 1)) / 3) or
+ (y > (y1 - 1) / 3 and y <= (2 * (y1 - 1)) / 3)
then
Move_Cursor (win, y, x);
Add (win, Ch => ch);
@@ -130,9 +130,9 @@ begin
Refresh_Without_Update (win2);
Refresh_Without_Update (win1);
Update_Screen;
- when 'c' => -- fill window A so it's visible
+ when 'c' => -- fill window A so it is visible
fillwin (win1, 'A');
- when 'd' => -- fill window B so it's visible
+ when 'd' => -- fill window B so it is visible
fillwin (win2, 'B');
when 'e' => -- cross test pattern in window A
crosswin (win1, 'A');
diff --git a/Ada95/samples/ncurses2-trace_set.adb b/Ada95/samples/ncurses2-trace_set.adb
index d2739809dad4..3b1983daf592 100644
--- a/Ada95/samples/ncurses2-trace_set.adb
+++ b/Ada95/samples/ncurses2-trace_set.adb
@@ -7,7 +7,7 @@
-- B O D Y --
-- --
------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey --
+-- Copyright 2020,2023 Thomas E. Dickey --
-- Copyright 2000-2011,2014 Free Software Foundation, Inc. --
-- --
-- Permission is hereby granted, free of charge, to any person obtaining a --
@@ -36,8 +36,8 @@
------------------------------------------------------------------------------
-- Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
-- Version Control
--- $Revision: 1.7 $
--- $Date: 2020/02/02 23:34:34 $
+-- $Revision: 1.8 $
+-- $Date: 2023/06/17 17:21:47 $
-- Binding Version 01.00
------------------------------------------------------------------------------
with ncurses2.util; use ncurses2.util;
@@ -121,7 +121,7 @@ procedure ncurses2.trace_set is
Trace_Attribute_Set'(Character_Calls => True, others => False)),
(new String'("Termcap_TermInfo"),
Trace_Attribute_Set'(Termcap_TermInfo => True, others => False)),
- (new String'("Maximium"),
+ (new String'("Maximum"),
Trace_Maximum)
);
@@ -353,7 +353,7 @@ procedure ncurses2.trace_set is
if subset (tlevel,
Trace_Maximum)
then
- Append (buf, "Maximium");
+ Append (buf, "Maximum");
Append (buf, ", ");
end if;
end if;
diff --git a/Ada95/samples/sample-menu_demo-aux.adb b/Ada95/samples/sample-menu_demo-aux.adb
index f430c88cd7c6..f64e41da8f73 100644
--- a/Ada95/samples/sample-menu_demo-aux.adb
+++ b/Ada95/samples/sample-menu_demo-aux.adb
@@ -7,7 +7,7 @@
-- B O D Y --
-- --
------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey --
+-- Copyright 2020,2023 Thomas E. Dickey --
-- Copyright 1998-2006,2009 Free Software Foundation, Inc. --
-- --
-- Permission is hereby granted, free of charge, to any person obtaining a --
@@ -36,8 +36,8 @@
------------------------------------------------------------------------------
-- Author: Juergen Pfeifer, 1996
-- Version Control
--- $Revision: 1.15 $
--- $Date: 2020/02/02 23:34:34 $
+-- $Revision: 1.16 $
+-- $Date: 2023/06/17 17:21:59 $
-- Binding Version 01.00
------------------------------------------------------------------------------
with Ada.Characters.Latin_1; use Ada.Characters.Latin_1;
@@ -79,7 +79,7 @@ package body Sample.Menu_Demo.Aux is
-- Calculate horizontal coordinate at the screen center
X := (Columns - C) / 2;
- Y := 1; -- always startin line 1
+ Y := 1; -- always starting on line 1
end Geometry;
diff --git a/Ada95/samples/split-path.awk b/Ada95/samples/split-path.awk
index 86e8ccdc10f1..5b340ba5cd6a 100644
--- a/Ada95/samples/split-path.awk
+++ b/Ada95/samples/split-path.awk
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright 2020 Thomas E. Dickey #
+# Copyright 2020,2022 Thomas E. Dickey #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
# copy of this software and associated documentation files (the "Software"), #
@@ -28,9 +28,11 @@
#
# Author: Thomas E. Dickey
#
-# $Id: split-path.awk,v 1.3 2020/02/02 23:34:34 tom Exp $
+# $Id: split-path.awk,v 1.4 2022/11/26 23:46:20 tom Exp $
BEGIN { cols = 72; }
/[$]THIS_DATADIR/ {
+ if (substr(this_datadir, length(this_datadir)) != "/")
+ this_datadir = this_datadir "/";
gsub("[$]THIS_DATADIR", "\"" this_datadir "\"");
if ( length ($0) > cols ) {
indent = index($0, "\"") - 1;
diff --git a/Ada95/src/Makefile.in b/Ada95/src/Makefile.in
index 8360779ec830..eb4489b04c85 100644
--- a/Ada95/src/Makefile.in
+++ b/Ada95/src/Makefile.in
@@ -29,7 +29,7 @@
#
# Author: Juergen Pfeifer, 1996
#
-# $Id: Makefile.in,v 1.95 2021/01/23 20:42:08 tom Exp $
+# $Id: Makefile.in,v 1.96 2021/07/03 15:45:33 tom Exp $
#
.SUFFIXES:
@@ -174,6 +174,20 @@ GENOBJS=$(ABASE)-menus-menu_user_data.o \
$(ABASE)-text_io-modular_io.o \
$(ABASE)-text_io-complex_io.o
+################################################################################
+
+@MAKE_PHONY@.PHONY : all
+@MAKE_PHONY@.PHONY : clean
+@MAKE_PHONY@.PHONY : distclean
+@MAKE_PHONY@.PHONY : install
+@MAKE_PHONY@.PHONY : install.libs
+@MAKE_PHONY@.PHONY : libs
+@MAKE_PHONY@.PHONY : mostlyclean
+@MAKE_PHONY@.PHONY : realclean
+@MAKE_PHONY@.PHONY : sources
+@MAKE_PHONY@.PHONY : uninstall
+@MAKE_PHONY@.PHONY : uninstall.libs
+
all :: $(BUILD_DIR_LIB)/$(STATIC_LIBNAME)
@echo done
diff --git a/Ada95/src/c_threaded_variables.c b/Ada95/src/c_threaded_variables.c
index 4c13153ed095..44b4bcbc9e13 100644
--- a/Ada95/src/c_threaded_variables.c
+++ b/Ada95/src/c_threaded_variables.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2022 Thomas E. Dickey *
* Copyright 2014 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -35,7 +35,7 @@
#define WRAP(type, name) \
type \
- name ## _as_function () \
+ name ## _as_function (void) \
{ \
return name; \
}
diff --git a/Ada95/src/library-cfg.sh b/Ada95/src/library-cfg.sh
index c41661705a87..b9b5c9389495 100755
--- a/Ada95/src/library-cfg.sh
+++ b/Ada95/src/library-cfg.sh
@@ -1,6 +1,6 @@
#!/bin/sh
##############################################################################
-# Copyright 2018-2019,2020 Thomas E. Dickey #
+# Copyright 2018-2020,2022 Thomas E. Dickey #
# Copyright 2016,2018 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -28,7 +28,7 @@
# authorization. #
##############################################################################
#
-# $Id: library-cfg.sh,v 1.7 2020/02/02 23:34:34 tom Exp $
+# $Id: library-cfg.sh,v 1.8 2022/07/16 17:03:59 tom Exp $
#
# Work around incompatible behavior introduced with gnat6, which causes
# gnatmake to attempt to compile all of the C objects which might be part of
@@ -67,7 +67,7 @@ cat >$SCRIPT <<EOF
}
EOF
-sed -f $SCRIPT $input
+sed -f "$SCRIPT" "$input"
rc=$?
-rm -f $SCRIPT
-exit $?
+rm -f "$SCRIPT"
+exit $rc
diff --git a/COPYING b/COPYING
index 3a2297536813..540047f121f1 100644
--- a/COPYING
+++ b/COPYING
@@ -1,4 +1,4 @@
-Copyright 2018-2020,2021 Thomas E. Dickey
+Copyright 2018-2023,2024 Thomas E. Dickey
Copyright 1998-2017,2018 Free Software Foundation, Inc.
Permission is hereby granted, free of charge, to any person obtaining a
@@ -26,4 +26,4 @@ sale, use or other dealings in this Software without prior written
authorization.
-- vile:txtmode fc=72
--- $Id: COPYING,v 1.10 2021/01/01 09:54:30 tom Exp $
+-- $Id: COPYING,v 1.13 2024/01/05 21:13:17 tom Exp $
diff --git a/INSTALL b/INSTALL
index 95f5a3931683..a2076eeec261 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,5 +1,5 @@
-------------------------------------------------------------------------------
--- Copyright 2018-2019,2020 Thomas E. Dickey --
+-- Copyright 2018-2023,2024 Thomas E. Dickey --
-- Copyright 1998-2017,2018 Free Software Foundation, Inc. --
-- --
-- Permission is hereby granted, free of charge, to any person obtaining a --
@@ -26,7 +26,7 @@
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
--- $Id: INSTALL,v 1.226 2020/09/06 23:41:16 tom Exp $
+-- $Id: INSTALL,v 1.254 2024/04/27 14:21:05 tom Exp $
---------------------------------------------------------------------
How to install Ncurses/Terminfo on your system
---------------------------------------------------------------------
@@ -35,10 +35,10 @@
* READ ALL OF THIS FILE BEFORE YOU TRY TO INSTALL NCURSES. *
************************************************************
-You should be reading the file INSTALL in a directory called ncurses-d.d, where
-d.d is the current version number. There should be several subdirectories,
-including `c++', `form', `man', `menu', 'misc', `ncurses', `panel', `progs',
-and `test'. See the README file for a roadmap to the package.
+You should be reading the file INSTALL in a directory called ncurses-d.d,
+where d.d is the current version number. There should be several
+subdirectories, including 'c++', 'form', 'man', 'menu', 'misc', 'ncurses',
+'panel', 'progs', and 'test'. See 'README' for a roadmap to the package.
If you are a distribution integrator or packager, please read and act on the
section titled FOR SYSTEM INTEGRATORS below.
@@ -47,9 +47,10 @@ 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 trying to build applications using gpm with ncurses,
-read the USING NCURSES WITH GPM section below.
+read the USING GPM section below.
-If you are cross-compiling, see the note below on BUILDING WITH A CROSS-COMPILER.
+If you are cross-compiling, see the note below on
+BUILDING WITH A CROSS-COMPILER.
If you want to build the Ada95 binding, go to the Ada95 directory and
follow the instructions there. The Ada95 binding is not covered below.
@@ -72,14 +73,14 @@ Ncurses has been also built in the OS/2 EMX environment.
INSTALLATION PROCEDURE:
----------------------
-1. First, decide whether you want ncurses to replace your existing library (in
- which case you'll need super-user privileges) or be installed in parallel
- with it.
+1. First, decide whether you want ncurses to replace your existing library
+ (in which case you'll need super-user privileges) or be installed in
+ parallel with it.
The --prefix option to configure changes the root directory for installing
ncurses. The default is normally in subdirectories of /usr/local, except
for systems where ncurses is normally installed as a system library (see
- "IF YOU ARE A SYSTEM INTEGRATOR"). Use --prefix=/usr to replace your
+ "FOR SYSTEM INTEGRATORS"). Use --prefix=/usr to replace your
default curses distribution.
The package gets installed beneath the --prefix directory as follows:
@@ -106,16 +107,16 @@ INSTALLATION PROCEDURE:
See also the discussion of --with-install-prefix.
-2. Type `./configure' in the top-level directory of the distribution to
+2. Type './configure' in the top-level directory of the distribution to
configure ncurses for your operating system and create the Makefiles.
Besides --prefix, various configuration options are available to customize
- the installation; use `./configure --help' to list the available options.
+ the installation; use './configure --help' to list the available options.
If your operating system is not supported, read the PORTABILITY section in
the file ncurses/README for information on how to create a configuration
file for your system.
- The `configure' script generates makefile rules for one or more object
+ The 'configure' script generates makefile rules for one or more object
models and their associated libraries:
libncurses.a (normal)
@@ -145,7 +146,7 @@ INSTALLATION PROCEDURE:
the library names (e.g., libncursest.a, libncursestw.a).
If you do not specify any models, the normal and debug libraries will be
- configured. Typing `configure' with no arguments is equivalent to:
+ configured. Typing 'configure' with no arguments is equivalent to:
./configure --with-normal --with-debug --enable-overwrite
@@ -176,10 +177,10 @@ INSTALLATION PROCEDURE:
You can make curses and terminfo fall back to an existing file of termcap
definitions by configuring with --enable-termcap. If you do this, the
library will search /etc/termcap before the terminfo database, and will
- also interpret the contents of the TERM environment variable. See the
+ also interpret the contents of the $TERM environment variable. See the
section BSD CONVERSION NOTES below.
-3. Type `make'. Ignore any warnings, no error messages should be produced.
+3. Type 'make'. Ignore any warnings; no error messages should be produced.
This should compile the ncurses library, the terminfo compiler tic(1),
captoinfo(1), infocmp(1), toe(1), clear(1) tset(1), reset(1), and tput(1)
programs (see the manual pages for explanation of what they do), some test
@@ -195,8 +196,9 @@ INSTALLATION PROCEDURE:
database before running the test programs. Not all vendors' terminfo
databases are SVr4-compatible, but most seem to be.
- 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).
+ 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).
If you run the test programs WITHOUT installing terminfo, ncurses may
read the termcap file and cache that in $HOME/.terminfo, which will
@@ -207,21 +209,21 @@ INSTALLATION PROCEDURE:
You can use it to verify that the screen highlights work correctly, that
cursor addressing and window scrolling works OK, etc.
-5. Once you've tested, you can type `make install' to install libraries,
- the programs, the terminfo database and the manual pages. Alternately, you
- can type `make install' in each directory you want to install. In the
+5. Once you've tested, you can type 'make install' to install libraries,
+ the programs, the terminfo database and the manual pages. Alternately,
+ you can type 'make install' in each directory you want to install. In the
top-level directory, you can do a partial install using these commands:
'make install.progs' installs tic, infocmp, etc...
'make install.includes' installs the headers.
'make install.libs' installs the libraries (and the headers).
- 'make install.data' installs the terminfo data. (Note: `tic' must
+ 'make install.data' installs the terminfo data. (Note: 'tic' must
be installed before the terminfo data can be
compiled).
'make install.man' installs the manual pages.
############################################################################
- # CAVEAT EMPTOR: `install.data' run as root will NUKE any existing #
+ # CAVEAT EMPTOR: 'install.data' run as root will NUKE any existing #
# terminfo database. If you have any custom or unusual entries SAVE them #
# before you install ncurses. #
############################################################################
@@ -242,8 +244,8 @@ INSTALLATION PROCEDURE:
compile using its curses.h you'll end up with a large number of
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
+ IF YOU DO NOT HAVE ROOT: Change directory to the 'progs' subdirectory
+ and run the 'capconvert' script. This script will deduce various things
about your environment and use them to build you a private terminfo tree,
so you can use ncurses applications.
@@ -273,13 +275,13 @@ CONFIGURE OPTIONS:
./configure --help
- The --help and several options are common to all configure scripts that are
- generated with autoconf. Those are all listed before the line
+ The --help and several options are common to all configure scripts that
+ are generated with autoconf. Those are all listed before the line
--enable and --with options recognized:
- The other options are specific to this package. We list them in alphabetic
- order.
+ The other options are specific to this package. We list them in
+ alphabetic order.
--disable-assumed-color
With ncurses 5.1, we introduced a new function, assume_default_colors()
@@ -444,7 +446,7 @@ CONFIGURE OPTIONS:
--with-menu-libname=XXX
--with-panel-libname=XXX
- Rather than renaming them abitrarily, a prefix or suffix is
+ Rather than renaming them arbitrarily, a prefix or suffix is
recommended. An "n" prefix provides consistency with ncurses versus
curses, i.e.,
@@ -453,8 +455,8 @@ CONFIGURE OPTIONS:
--with-panel-libname=npanel
--disable-pkg-ldflags
- Omit options in $EXTRA_LDFLAGS from the pkg-config ".pc" and
- corresponding ncurses*-config script which normally are listed via
+ Omit options in $LDFLAGS and $EXTRA_LDFLAGS from the pkg-config ".pc"
+ and corresponding ncurses*-config script which normally are listed via
the "--libs" option. These options are normally used to facilitate
linking to ncurses when it was configured to use the rpath feature.
@@ -475,11 +477,19 @@ CONFIGURE OPTIONS:
filesystems. This option adds a 1-second sleep to help those tools
avoid unnecessary relinking during the install process.
+ --disable-root-access
+ Compile with environment restriction, so most file-access is limited
+ when running as root, or via a setuid/setgid application.
+
--disable-root-environ
Compile with environment restriction, so certain environment variables
- are not available when running as root, or via a setuid/setgid
- application. These are (for example $TERMINFO) those that allow the
- search path for the terminfo or termcap entry to be customized.
+ are not available when running as root. These are (for example
+ $TERMINFO) those that allow the search path for the terminfo or termcap
+ entry to be customized.
+
+ Disabling the root environment variables also disables the setuid
+ environment variables by default. Use the --disable-setuid-environ
+ option to modify this behavior.
--disable-rpath-hack
Normally the configure script helps link libraries found in unusual
@@ -494,6 +504,16 @@ CONFIGURE OPTIONS:
--disable-stripping
Do not strip installed executables.
+ --disable-setuid-environ
+ Compile with environment restriction, so certain environment variables
+ are not available when running via a setuid/setgid application. These
+ are (for example $TERMINFO) those that allow the search path for the
+ terminfo or termcap entry to be customized.
+
+ A setuid/setgid application inherits its environment variables from
+ the current user, in contrast to sudo which may limit the environment
+ variables that ncurses uses.
+
--disable-tic-depends
When building shared libraries, normally the tic library is linked to
depend upon the ncurses library (or equivalently, on the tinfo-library
@@ -512,26 +532,6 @@ CONFIGURE OPTIONS:
list documented in X/Open. ncurses provides varargs support for this
function. Use --disable-tparm-varargs to disable this support.
- --disable-wattr-macros
- The 6.0 ABI adds support for extended colors and for extended mouse.
- The former is a noticeable problem when developers inadvertently
- compile using the ncurses6 header files and link with an ncurses5
- library, because the wattr* macros use a new field in the WINDOW
- structure. These macros are used in several applications.
-
- Since ncurses provides an actual function for each of these macros,
- suppressing them from the curses.h header allows the ncurses5 libraries
- to be used in most applications.
-
- NOTE: The extended colors also are used in the cchar_t structure, but
- fewer applications use that.
-
- NOTE: This workaround does not help with mismatches in the ncurses
- mouse version. The extended mouse feature uses one less fewer bit for
- each button, so that only the first button will work as expected with
- a mismatch between header and library. Again, most applications will
- work, since most use only the first button.
-
--enable-assertions
For testing, compile-in assertion code. This is used only for a few
places where ncurses cannot easily recover by returning an error code.
@@ -553,6 +553,10 @@ CONFIGURE OPTIONS:
Recognize BSD-style prefix padding. Some ancient BSD programs (such as
nethack) call tputs("50") to implement delays.
+ --enable-check-size
+ Compile-in feature to detect screensize for terminals which do not
+ advertise their screensize, e.g., serial terminals.
+
--enable-colorfgbg
Compile with experimental $COLORFGBG code. That environment variable
is set by some terminal emulators as a hint to applications, by
@@ -666,9 +670,17 @@ CONFIGURE OPTIONS:
--enable-opaque-form
--enable-opaque-menu
--enable-opaque-panel
- Define symbol in curses.h which controls whether some library
- structures are treated as "opaque". The --enable-opaque-curses option
- is overridden by the --enable-reentrant option.
+ Define symbol in curses.h controlling whether some library structures
+ are opaque, meaning that their members are accessible only via the
+ documented API. The --enable-opaque-curses option may be overridden
+ by the --enable-reentrant option.
+
+ Enabling opaque-curses enables opaque for the form, menu, and panel
+ libraries. Use their corresponding options to disable the feature
+ individually.
+
+ NOTE: beginning with ncurses 6.5 this option is enabled by default;
+ older versions disable it by default.
--enable-pc-files
If pkg-config is found (see --with-pkg-config), generate ".pc" files
@@ -728,6 +740,14 @@ CONFIGURE OPTIONS:
reducing the need for juggling the global SP value with set_term() and
delscreen().
+ --enable-stdnoreturn
+ When enabled, check if the <stdnoreturn.h> header exists, and if found
+ define GCC_NORETURN to _Noreturn rather than either the gcc-specific
+ __attribute__((noreturn)) or an empty token. Doing this may require
+ calling programs which use GCC_NORETURN in their own function
+ definitions to be modified, because _Noreturn is only accepted as
+ the first token in a declaration.
+
--enable-string-hacks
Controls whether strlcat and strlcpy may be used. The same issue
applies to OpenBSD's warnings about snprintf, noting that this function
@@ -766,6 +786,26 @@ CONFIGURE OPTIONS:
--enable-warnings
Turn on GCC compiler warnings. There should be only a few.
+ --enable-wattr-macros
+ The 6.0 ABI adds support for extended colors and for extended mouse.
+ The former is a noticeable problem when developers inadvertently
+ compile using the ncurses6 header files and link with an ncurses5
+ library, because the wattr* macros use a new field in the WINDOW
+ structure. These macros are used in several applications.
+
+ Since ncurses provides an actual function for each of these macros,
+ suppressing them from the curses.h header allows the ncurses5 libraries
+ to be used in most applications.
+
+ NOTE: The extended colors also are used in the cchar_t structure, but
+ fewer applications use that.
+
+ NOTE: This workaround does not help with mismatches in the ncurses
+ mouse version. The extended mouse feature uses one less fewer bit for
+ each button, so that only the first button will work as expected with
+ a mismatch between header and library. Again, most applications will
+ work, since most use only the first button.
+
--enable-weak-symbols
If the --with-pthread option is set, check if the compiler supports
weak-symbols. If it does, then name the thread-capable library without
@@ -786,14 +826,22 @@ CONFIGURE OPTIONS:
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
+ ncurses library, but you must decide which: the binding installs the
+ same set of files for either version. Currently (2023/10/21) 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.
+ NOTE: beginning with ncurses 6.5 this option is enabled by default;
+ older versions disable it by default.
+
--enable-xmc-glitch
Compile-in support experimental xmc (magic cookie) code.
+ --with-abi-altered=NUM
+ Override the displayed (rather than compiled-in) ABI. Only packagers
+ who have created configurations where the ABI differs from ncurses
+ should be interested in this option.
+
--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
@@ -891,8 +939,9 @@ CONFIGURE OPTIONS:
script supplies "unsigned").
--with-config-suffix=XXX
- Specify a suffix for the ncursesw6-config file, etc., used to work
- around conflicts with packages.
+ Specify an suffix for "ncurses*" in the ncurses*-config filename to
+ work around conflicts with packages. The suffix is placed before the
+ dash.
--with-cxx-libname=NAME
Override the basename of the ncurses++ library (default: "ncurses++")
@@ -997,7 +1046,7 @@ CONFIGURE OPTIONS:
See also the --enable-getcap option.
--with-infocmp-path[=XXX]
- Use this option to override the automatic detection of tic in your
+ Use this option to override the automatic detection of infocmp in your
$PATH when building fallbacks (see "--with-fallbacks").
--with-install-prefix=XXX
@@ -1113,9 +1162,10 @@ CONFIGURE OPTIONS:
Override the basename of the panel library (default: "panel")
--with-pc-suffix=SUFFIX
- If ".pc" files are installed, optionally add a suffix to the files
- and corresponding package names to separate unusual configurations.
- If no option value is given (or if it is "none"), no suffix is added.
+ If ".pc" files are installed (see --enable-pc-files), optionally add a
+ suffix to the files and corresponding package names to separate
+ unusual configurations. If no option value is given (or if it is
+ "none"), no suffix is added.
--with-pcre2
Add PCRE2 (Perl-compatible regular expressions v2) to the build if it
@@ -1126,12 +1176,28 @@ CONFIGURE OPTIONS:
not supplied by the development environment, while ncurses' form
library uses a regular expression feature for one of the field types.
- --with-pkg-config=[DIR]
- Check for pkg-config, optionally specifying its path.
+ --with-pkg-config[=CMD]
+ Check for pkg-config, optionally specifying its pathname.
- --with-pkg-config-libdir=[DIR]
+ --with-pkg-config-libdir[=DIR]
If pkg-config was found, override the automatic check for its library
- path.
+ path. The optional DIR value can be
+
+ "auto", automatically use pkg-config's library directory, or
+
+ "libdir", use a ${libdir}/pkgconfig (based on the configuration), or
+
+ a directory path, i.e., beginning with "/".
+
+ The configure script allows only a single directory, because
+ that is used as the directory in which to install ".pc" files.
+
+ The automatic check for the library path prefers the first directory
+ which currently exists. If none of the directories listed by
+ pkg-config exist, the check prefers a pkgconfig directory under the
+ "libdir" set by the configure script (which may not be the system
+ default), or if pkg-config lists nothing suitable, the first one which
+ is listed by pkg-config is used.
--with-profile
Generate profile-libraries These are named by adding "_p" to the root,
@@ -1191,6 +1257,10 @@ CONFIGURE OPTIONS:
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-strip-program=XXX
+ When stripping executables during install, use the specified program
+ rather than "strip".
+
--with-sysmouse
use FreeBSD sysmouse interface provide mouse support on the console.
@@ -1205,7 +1275,7 @@ CONFIGURE OPTIONS:
Specify a search-list of terminfo directories which will be compiled
into the ncurses library (default: DATADIR/terminfo)
- This is a colon-separated list, like the TERMINFO_DIRS environment
+ This is a colon-separated list, like the $TERMINFO_DIRS environment
variable.
--with-termlib[=XXX]
@@ -1311,7 +1381,8 @@ CONFIGURE OPTIONS:
--with-xterm-kbs=XXX
Configure xterm's terminfo entries to use either BS (^H, i.e., ASCII
backspace) or DEL (^?, or 127). XXX can be BS (or bs, 8) or DEL
- (or del, 127).
+ (or del, 127). If XXX is "auto", the configure script chooses BS or
+ DEL according to platform defaults.
During installation, the makefile and scripts modifies the "xterm+kbs"
terminfo entry to use this setting.
@@ -1355,11 +1426,6 @@ CONFIGURE OPTIONS:
programs (e.g., tic). The test applications will still be built if you
type "make", though not if you simply do "make install".
- --without-tack
- Suppress build/install with tack program, if it happens to be
- in the same build-tree (tack was moved out of the ncurses source-tree
- in 20070203).
-
--without-tests
Tell the configure script to suppress the build of ncurses' test
programs.
@@ -1385,6 +1451,88 @@ COMPATIBILITY WITH OLDER RELEASES:
you may encounter when building a system with different versions of
ncurses:
+ 6.5 (Apt 27, 2024)
+ Interface changes:
+
+ + the WINDOW structure and some related internal data types declared
+ in <curses.h> have been made opaque by default;
+ + the FORM, MENU, and PANEL structures and related internal data types
+ from their corresponding header files have been made opqaue by
+ default; and
+ + support for wide characters is now enabled by default.
+
+ Added extensions:
+
+ + is_cbreak, is_echo, is_nl, and is_raw, as well as "_sp" variants
+
+ + tiparm_s and tiscan_s
+
+ Added internal functions (other than "_sp" variants):
+
+ + _nc_env_access
+
+ Removed internal functions:
+
+ + none
+
+ Modified internal functions:
+
+ + These now pass a const parameter: _nc_delink_entry, _nc_str_copy,
+ and _nc_trans_string
+
+ 6.4 (Dec 31, 2022)
+ Interface changes:
+
+ + none
+
+ Added extensions:
+
+ + none
+
+ Added internal functions (other than "_sp" variants):
+
+ + add _nc_free_termtype1 and _nc_free_tparm, for memory-leaks
+
+ Removed internal functions:
+
+ + none
+
+ Modified internal functions:
+
+ + none
+
+ 6.3 (Oct 21, 2021)
+ Interface changes:
+
+ + the definition of TERMTYPE2 is now internal, not visible in the ABI,
+ like the enclosing TERMINAL which was previously made opaque. This
+ was done to provide SCREEN-specific "static" variables in terminfo.
+
+ Added extensions:
+
+ + add sp-funcs for erasewchar, killwchar.
+
+ Added internal functions (other than "_sp" variants):
+
+ + _nc_safe_fopen and _nc_safe_open3 limit privileges if possible when
+ opening a file; otherwise disallow access for updating files.
+
+ + _nc_tiparm is a variant of tiparm which is used when all of the
+ parameters are known to be numbers rather than possibly strings.
+
+ + _nc_reset_tparm improves tic's checks by resetting the terminfo
+ "static variables" before calling functions which may update them.
+
+ Removed internal functions:
+
+ + none
+
+ Modified internal functions:
+
+ + _nc_trace_ttymode passes pointer to const data
+
+ + _nc_tparm_analyze passes pointer to int*, not int[]
+
6.2 (Feb 12, 2020)
Interface changes:
@@ -2147,15 +2295,15 @@ FOR SYSTEM INTEGRATORS:
Naming the Console Terminal
In various systems there has been a practice of designating the system
- console driver type as `console'. Please do not do this! It
+ 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'.
+ 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
terminfo maintainer (listed in the misc/terminfo file) to be included
- in the terminfo file, if it's not already there. See the
+ in the terminfo file, if it is not already there. See the
term(7) manual page included with this distribution for more on
conventions for choosing type names.
@@ -2189,7 +2337,7 @@ CONFIGURING FALLBACK ENTRIES:
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.
-
+
NOTE: This must be done on a machine which has ncurses' infocmp and
terminfo database installed (as well as ncurses' tic and infocmp
programs). That is because the fallback sources are generated and
@@ -2388,4 +2536,4 @@ BUG REPORTS:
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
+-- vile:txtmode fc=78
diff --git a/MANIFEST b/MANIFEST
index 1dbfb96b7a1c..a9395d2f8a09 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -33,6 +33,7 @@
./Ada95/include/ncurses_defs
./Ada95/make-tar.sh
./Ada95/mk-1st.awk
+./Ada95/mk-pkg.awk
./Ada95/package/AdaCurses-doc.spec
./Ada95/package/AdaCurses.spec
./Ada95/package/debian/compat
@@ -342,7 +343,7 @@
./doc/html/announce.html
./doc/html/hackguide.html
./doc/html/index.html
-./doc/html/man/adacurses6-config.1.html
+./doc/html/man/adacursesw6-config.1.html
./doc/html/man/captoinfo.1m.html
./doc/html/man/clear.1.html
./doc/html/man/curs_add_wch.3x.html
@@ -463,7 +464,7 @@
./doc/html/man/mitem_value.3x.html
./doc/html/man/mitem_visible.3x.html
./doc/html/man/ncurses.3x.html
-./doc/html/man/ncurses6-config.1.html
+./doc/html/man/ncursesw6-config.1.html
./doc/html/man/new_pair.3x.html
./doc/html/man/panel.3x.html
./doc/html/man/resizeterm.3x.html
@@ -553,6 +554,7 @@
./include/edit_cfg.sh
./include/hashed_db.h
./include/headers
+./include/nc_access.h
./include/nc_alloc.h
./include/nc_mingw.h
./include/nc_panel.h
@@ -670,7 +672,7 @@
./man/keyok.3x
./man/legacy_coding.3x
./man/make_sed.sh
-./man/man_db.renames
+./man/man_db.renames.in
./man/manhtml.aliases
./man/manhtml.externs
./man/manlinks.sed
@@ -768,6 +770,7 @@
./misc/makellib
./misc/menu.def
./misc/menu.ref
+./misc/ncu2openbsd
./misc/ncurses-config.in
./misc/ncurses.def
./misc/ncurses.ref
@@ -899,6 +902,7 @@
./ncurses/new_pair.h
./ncurses/report_hashing.c
./ncurses/report_offsets.c
+./ncurses/term.priv.h
./ncurses/tinfo/MKcaptab.awk
./ncurses/tinfo/MKcaptab.sh
./ncurses/tinfo/MKcodes.awk
@@ -1108,6 +1112,7 @@
./test/color_content.c
./test/color_name.h
./test/color_set.c
+./test/combine.c
./test/configure
./test/configure.in
./test/demo_altkeys.c
@@ -1212,15 +1217,19 @@
./test/test_addstr.c
./test/test_addwstr.c
./test/test_arrays.c
+./test/test_delwin.c
+./test/test_endwin.c
./test/test_get_wstr.c
./test/test_getstr.c
./test/test_instr.c
./test/test_inwstr.c
+./test/test_mouse.c
./test/test_opaque.c
./test/test_setupterm.c
./test/test_sgr.c
./test/test_termattrs.c
./test/test_tparm.c
+./test/test_unget_wch.c
./test/test_vid_puts.c
./test/test_vidputs.c
./test/testaddch.c
diff --git a/Makefile.in b/Makefile.in
index 7be6e7677637..1303e171cfa1 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,6 +1,6 @@
-# $Id: Makefile.in,v 1.43 2020/02/02 23:34:34 tom Exp $
+# $Id: Makefile.in,v 1.46 2022/10/01 22:53:36 tom Exp $
##############################################################################
-# Copyright 2018-2019,2020 Thomas E. Dickey #
+# Copyright 2018-2021,2022 Thomas E. Dickey #
# Copyright 1998-2014,2015 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -62,11 +62,26 @@ pkgdir = @PKG_CONFIG_LIBDIR@
include_dir = ${includedir}${includesubdir}
+FGREP = @FGREP@
+
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
DIRS_TO_MAKE = @DIRS_TO_MAKE@
+@MAKE_PHONY@.PHONY : all
+@MAKE_PHONY@.PHONY : check
+@MAKE_PHONY@.PHONY : clean
+@MAKE_PHONY@.PHONY : depend
+@MAKE_PHONY@.PHONY : distclean
+@MAKE_PHONY@.PHONY : install
+@MAKE_PHONY@.PHONY : mostlyclean
+@MAKE_PHONY@.PHONY : preinstall
+@MAKE_PHONY@.PHONY : realclean
+@MAKE_PHONY@.PHONY : sources
+@MAKE_PHONY@.PHONY : tags
+@MAKE_PHONY@.PHONY : uninstall
+
all :: $(DIRS_TO_MAKE)
$(DIRS_TO_MAKE) :
@@ -90,16 +105,16 @@ preinstall :
@ test "$(include_dir)" = "$(prefix)/include" || \
echo '** Include-directory is not in a standard location'
@ test ! -f $(include_dir)/termcap.h || \
- fgrep NCURSES_VERSION $(include_dir)/termcap.h >/dev/null || \
+ $(FGREP) NCURSES_VERSION $(include_dir)/termcap.h >/dev/null || \
echo '** Will overwrite non-ncurses termcap.h'
@ test ! -f $(include_dir)/curses.h || \
- fgrep NCURSES_VERSION $(include_dir)/curses.h >/dev/null || \
+ $(FGREP) NCURSES_VERSION $(include_dir)/curses.h >/dev/null || \
echo '** Will overwrite non-ncurses curses.h'
distclean \
realclean ::
-check:
+check :
@ echo The test-programs are interactive
diff --git a/Makefile.os2 b/Makefile.os2
index 960c2bdb8bad..bc3407d65750 100644
--- a/Makefile.os2
+++ b/Makefile.os2
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright 2020 Thomas E. Dickey #
+# Copyright 2020,2021 Thomas E. Dickey #
# Copyright 1998-2000,2006 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -26,7 +26,7 @@
# use or other dealings in this Software without prior written #
# authorization. #
################################################################################
-# $Id: Makefile.os2,v 1.12 2020/02/02 23:34:34 tom Exp $
+# $Id: Makefile.os2,v 1.13 2021/06/17 21:20:30 tom Exp $
#
# Wrapper Makefile for ncurses library under OS/2.
# Author: Juan Jose Garcia Ripoll <worm@arrakis.es>.
@@ -70,7 +70,7 @@
# disappear are not essential.
#
# I first thought about killing '_nc_*' symbols, but it seems that some of
-# them --_nc_panel_hook, _nc_ada*, etc-- are needed outside ncurses.dll.
+# them --_nc_panel_hook, _nc_ada*, etc-- are needed outside ncurses.dll.
# However, the whole size of the export table will not be larger than 1k or
# so.
#
diff --git a/NEWS b/NEWS
index 4203d188f7f4..8bedbc8264e1 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,5 @@
-------------------------------------------------------------------------------
--- Copyright 2018-2020,2021 Thomas E. Dickey --
+-- Copyright 2018-2023,2024 Thomas E. Dickey --
-- Copyright 1998-2017,2018 Free Software Foundation, Inc. --
-- --
-- Permission is hereby granted, free of charge, to any person obtaining a --
@@ -26,7 +26,7 @@
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
--- $Id: NEWS,v 1.3634 2021/02/21 00:18:55 tom Exp $
+-- $Id: NEWS,v 1.4114 2024/04/27 18:00:35 tom Exp $
-------------------------------------------------------------------------------
This is a log of changes that ncurses has gone through since Zeyd started
@@ -46,6 +46,1171 @@ 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.
+20240427 6.5 release for upload to ftp.gnu.org
+ + update announcement
+ + fixes/corrections for manpages (patches by Branden Robinson).
+ + fix redefinition of CASTxPTR, for legacy Unix.
+
+20240420
+ + improve formatting/style of manpages (patches by Branden Robinson).
+ + compiler warning/portability fixes.
+
+20240414
+ + build/bug-fix for check-size feature (reports by Sam James, Gabriele
+ Balducci).
+
+20240413
+ + improve formatting/style of manpages (patches by Branden Robinson).
+ + provide for padding in check-size feature, using new_prescr() to
+ pass interim SCREEN pointer.
+ + complete change for opaque options (Gentoo #928973, cf: 20231021).
+ + update package /debian/rules and related lintian overrides
+ + revise progs.priv.h to provide for NC_ISATTY reuse
+
+20240330
+ + remove masking of ISIG in cbreak() (report by Benno Schulenberg).
+ + modify test/test_mouse.c to use curses api for raw/noraw.
+ > improved configure macros from other program development:
+ + build-fix for clang on Solaris
+ + suppress filename/timestamp in gzip'd manpages (suggested for
+ byacc by Andrin Geiger)
+
+20240323
+ + modify tput/tset reset feature to avoid 1-second sleep if running in
+ a pseudo-terminal.
+ + modify check-size feature to avoid using it in a pseudoterminal
+ (cf: 20231016)
+ + improve formatting/style of manpages (patches by Branden Robinson).
+ + trim a space after some "-R" options, fixing builds for applications
+ built using clang and ncurses on Solaris.
+
+20240309
+ + modify xgterm to work around line-drawing bug -TD
+ + use CSI 3J in vte-2017 (report by Sven Joachim)
+
+20240302
+ + add configure check for MB_LEN_MAX, to provide warning as needed.
+ + improve formatting/style of manpages (patches by Branden Robinson).
+ + fix regression in tput which disallowed hex/octal parameters (report
+ by Werner Fink, cf: 20230408)
+ + update config.guess, config.sub
+
+20240224
+ + improve man/curs_mouse.3x style (Branden Robinson, Sven Joachim).
+ + provide for CCHARW_MAX greater than 1
+ + eliminate use of PATH_MAX in lib_trace.c
+ + work around misconfiguration of MacPorts gcc13, which exposes invalid
+ definition of MB_LEN_MAX in gcc's fallback copy of limits.h (MacPorts
+ #69374).
+
+20240217
+ + add vt100+noapp, vt100+noapp+pc, xterm+app+pc, xterm+decedit from
+ xterm #389 -TD
+ + fix inconsistent description of wmouse_trafo() (Debian #1059778).
+ + modify wenclose() to handle pads (Debian #1059783).
+ + improve manpage discussion of mouseinterval() (Debian #1058560).
+
+20240210
+ + compiler-warning fixes, while investigating an optimizer bug in
+ "gcc (MacPorts gcc13 13.2.0_4+stdlib_flag) 13.2.0"
+ which results in only the first byte of a multibyte character being
+ printed to the screen.
+
+20240203
+ + minor changes to tracing and locale-checks.
+
+20240127
+ + amend change to z39-a (report by Sven Joachim).
+ + use xterm+nopcfkeys, vt52-basic, dec+pp, dec+sl, vt52+arrows,
+ hp+pfk+cr, klone+acs, klone+color, klone+sgr, ncr160wy50+pp
+ to trim -TD
+ + NetBSD-related fixes for x68k and wsvt25 (patch by Thomas Klausner)
+
+20240120
+ + improve formatting/style of manpages (patches by Branden Robinson).
+ + amend discussion of aliases in tput.1
+ + use ansi+sgrbold, ansi+sgrdim, ansi+sgrso, ansi+sgrul, ansi+tabs
+ ecma+color, ecma+sgr, vt100+4bsd, vt100+pfkeys, vt220+pcedit
+ xterm+256color, xterm+acs, xterm+nopcfkeys, xterm+pcf2 to trim -TD
+ + modify configure scripts/makefiles to omit KEY_RESIZE if the
+ corresponding SIGWINCH feature is disabled.
+
+20240113
+ + improve formatting/style of manpages (patches by Branden Robinson).
+ + modify dist.mk to avoid passing developer's comments in manpages into
+ the generated html documentation.
+ + use ansi+local, ansi+local1, ansi+pp, ansi+rca, ansi+rca2, ansi+sgr
+ to trim -TD
+ + restore padding for wy520* and vt320-k311 (report by Sven Joachim).
+
+20240106
+ + use ansi+arrows, ansi+apparrows, ansi+csr, ansi+erase, ansi+idc,
+ ansi+idc1, ansi+idl, ansi+idl1, ansi+inittabs to trim -TD
+ + minor manpage formatting changes for consistency.
+ + modify doc-html test package's install-directory, per lintian.
+ + add attr_get.3x to man_db.renames.in (patch by Sven Joachim).
+
+20231230
+ + improve formatting/style of manpages (patches by Branden Robinson).
+ + add ms-vt100-16color, winconsole -TD
+ + add rio, rio-direct -TD
+ + add mostlike -TD
+ + add wezterm, contour -TD
+
+20231223
+ + improve formatting/style of manpages (patches by Branden Robinson).
+
+20231217
+ + improve formatting/style of manpages (patches by Branden Robinson).
+ + correct an assignment in infocmp "-u" for detecting if a boolean
+ is unset in a base entry and set in a use'd chunk, i.e., if it was
+ cancelled.
+ + modify infocmp "-u" option to not report cancels for strings which
+ were already cancelled in a use'd chunk.
+ + join two lines in infotocap.3x to eliminate a spurious "description"
+ link in installed manpages (report by Sven Joachim).
+ + fix typo in NEWS (report by Sven Joachim).
+
+20231209
+ + modify infocmp "-u" option to not report cancels in use'd chunks
+ which are not mentioned in the top-level terminal description.
+ + remove xterm+sm+1006 from tmux (Debian #1057688).
+ + used "infocmp -u" to help trim redundant capabilities -TD
+ + updated man/edit_man.sh to allow for "\%" markers embedded after
+ bold font escapes in manpage cross-references (Debian #1057651).
+ + reduce compiler-warnings in configure checks
+
+20231202
+ + correct initial alignment of extended capabilities in infocmp, so
+ that the "-u" option can be used for more than two terminal types.
+ + improve formatting/style of manpages, changing environment variables
+ to italics (patches by Branden Robinson).
+
+20231125
+ + add information about "ttycap", termcap's forerunner, to tset.1
+ (patch by Branden Robinson).
+ + improve formatting/style of manpages, including section reordering
+ (patches by Branden Robinson).
+ + modify usage messages in configure script, bracketing optional values
+ (report by Branden Robinson).
+
+20231121
+ + amend fix for Debian #1055882, correcting nul terminator check in
+ waddnstr (Debian #1056340).
+
+20231118
+ + improve description of length-parameter and error-returns in several
+ manpages: curs_addchstr.3x, curs_addstr.3x, curs_addwstr.3x,
+ curs_in_wch.3x, curs_in_wchstr.3x, curs_inchstr.3x, curs_ins_wstr.3x,
+ curs_insstr.3x, curs_instr.3x, curs_inwstr.3x
+ + amend parameter check for entire string versus specific length in
+ winsnstr() and wins_nwstr() to match Solaris.
+ + make similar correction to wins_nwstr().
+ + correct loop termination condition in waddnstr() and waddnwstr()
+ (Debian #1055882, cf: 20201205).
+
+20231111
+ + used "infocmp -u" to help trim redundant capabilities -TD
+ + add limit checks in infocmp needed when processing extended
+ capabilities with the "-u" option.
+ + fix inconsistent sort-order in see-also sections of manpages.
+ + fix a few compiler warnings for Solaris 10.
+ + modify endwin() to return an error if it is called again without an
+ intervening screen update (report by Rajeev Pillai, NetBSD #57592).
+
+20231104
+ + modify reset command to avoid altering clocal if the terminal uses a
+ modem (prompted by discussion with Werner Fink, Michal Suchanek,
+ OpenSUSE #1201384, Debian #60377).
+ + build-fixes for --with-caps variations.
+ + correct a couple of section-references in INSTALL.
+
+20231028
+ + move xterm focus mode 1004 from xterm+sm+1006 into xterm+focus as
+ fe/fd capabilities, like vim (vim-pr #13440).
+ + modify --with-pkg-config-libdir option to make "libdir" the default,
+ as documented, rather than "auto" (report by Branden Robinson).
+ + improve messages from configure script (patches by Branden Robinson).
+
+20231021
+ + use oldxterm+sm+1006 in vte-2014 (report by Benno Schulenberg) -TD
+ + add ansi+apparrows -TD
+ + change defaults for configure opaque and widec options (prompted by
+ discussion with Branden Robinson).
+ + minor cleanup of compiler- and manpage-warnings.
+
+20231016
+ + make the recent change to setupterm optional "--enable-check-size"
+ (Debian #1054022).
+
+20231014
+ + improve formatting/style of manpages (patches by Branden Robinson).
+ + updated configure script macro CF_XOPEN_SOURCE, for uClibc-ng
+ + update config.guess, config.sub
+
+20231007
+ + improve loop-limit for get_position().
+ + improve manual description of immedok (Debian #1053603).
+ + fix a few formatting issues with manpages (Debian #1053123).
+ + improve formatting/style of manpages (patches by Branden Robinson).
+
+20231001
+ + modify setupterm to provide for using ANSI cursor-position report (in
+ user6/user7 terminfo capabilities) to obtain screensize if neither
+ environment variables or ioctl is used. The ncurses test-program
+ with options "-E -T" demonstrates this feature.
+ + improve error messages in tic (patch by Branden Robinson).
+ + improve formatting/style of manpages (patches by Branden Robinson).
+ + modify test/clip_printw.c to optionally test non-wrapped updates.
+ + fix reallocation loop for vsnprintf() in _nc_sprintf_string() by
+ copying the va_list variable (patch by Ian Abbott).
+
+20230923
+ + improve formatting of manpages (patches by Branden Robinson).
+ + amend change to delscreen() to limit the windows which it creates to
+ just those associated with the screen (report by Frederic Boiteux,
+ cf: 20220813).
+
+20230918
+ + new tarball/errata (report by Sven Joachim).
+
+20230917
+ + improve formatting of manpages (integrated patches by Branden
+ Robinson).
+ + correct limit for name-length in write_entry.c (report/testcase by
+ Luna Saphie Mittelbach).
+ + limit delays to 30 seconds, i.e., padding delays in terminfo, as well
+ as napms() and delay_output() functions.
+ + improve a few pointer-checks.
+ + improve parsing in _nc_msec_cost, allowing a single decimal point.
+
+20230909
+ + improve formatting of manpages (patches by Branden Robinson), for
+ captoinfo.1m and terminfo.5
+ > patches by Nicholas Marriott:
+ + use string-hacks in alloc_entry.c, alloc_type.c and hardscroll.c,
+ overlooked due to compiler changes in recent OpenBSD releases.
+ + add "-6" option to ncu2openbsd script.
+
+20230902
+ + improve description of search rules for terminal descriptions in
+ terminfo manpage (report by Sven Joachim).
+
+20230826
+ + fixes for compiler-warnings.
+ + update config.guess, config.sub
+
+20230819
+ + various manpage-formatting fixes.
+ + correct formatting of table header in curs_inopts.3x (Branden
+ Robinson).
+ + correct manpage description of panel_hidden (report by Benjamin
+ Mordaunt).
+
+20230812
+ + add/use putty+cursor to reflect amending of modified cursor-keys in
+ 2021 -TD
+ + add ecma+strikeout to putty -TD
+ + add functions to query tty-flags in SCREEN (request by Bill Gray).
+
+20230805
+ + fix a few manpages needing tbl marker, seen by lintian warning.
+ + fixes for compiler-warnings.
+ + minor grammatical fix for manpages (Branden Robinson).
+
+20230729
+ + improve manpages for wgetnstr() and wget_wnstr().
+ + modify MinGW configuration to provide for running in MSYS/MSYS2
+ shells, assuming ConPTY support (patch by Pavel Fedin).
+ + add assignment in CF_MAN_PAGES to fill in value for TERMINFO_DIRS in
+ ncurses, terminfo and tic manpages (patch by Sven Joachim).
+
+20230722
+ + add "auto" default for --with-xterm-kbs configure option.
+
+20230715
+ + correct wadd_wch_literal() when adding a non-spacing character to a
+ double-width character.
+ + improve manual page for curs_util.
+ + improve manual page for wadd_wch().
+
+20230708
+ + add linux+kbs for terminals which imitate xterm's behavior with
+ Linux -TD
+ + modify MinGW driver to return KEY_BACKSPACE when an unmodified
+ VK_BACK virtual key is entered (prompted by patch by Pavel Fedin,
+ Savannah #64292).
+ + disallow using $TERMINFO or $HOME/.terminfo when tic "-o" option is
+ used (report by Sven Joachim, Debian #1040048).
+
+20230701
+ + fix mandoc warnings about unnecessary markup.
+ + improve parameter check in tparm_setup()
+
+20230625
+ + adjust man/make_sed.sh to work with dates as the third field of TH.
+ + fixes for out-of-memory condition (report by "eaglegai").
+
+20230624
+ + fixes for out-of-memory condition (report by "eaglegai").
+
+20230617
+ + markup manpages with revision information (prompted by discussion
+ with Bjarni Ingi Gislason).
+
+20230615
+ + modify _nc_read_file_entry() to show relevant filename in warnings.
+ + improve checks in convert_string() for corrupt terminfo entry (report
+ and test-case by Gregory James Duck).
+
+20230610
+ + improve manpages discussing file descriptors in low-level functions.
+ + modify flushinp to use file descriptors in SCREEN, rather than from
+ TERMINAL, and check if they are for a terminal, like SVr4.
+ + modify mcprint to use file descriptor in SCREEN, for consistency.
+ + add xterm+focus to foot+base (patch by Daniel Ekloef).
+ + correct definition of Charable() for non-wide ncurses library (report
+ and test-case by Zbigniew Baniewski).
+
+20230603
+ + add configure option --with-strip-program, to override program
+ chosen by the install program for stripping executables (prompted
+ by discussion with Aapo Rantalainen).
+ + fix typo in INSTALL (report/patch by Aapo Rantalainen).
+ + improve error-checks for isEILSEQ()
+ + increase MB_CUR_MAX to 16, matching glibc's MB_LEN_MAX.
+ + corrected mouse mask in test/testcurs.c
+ + improve thread lock in lib_trace.c
+
+20230527
+ + fixes for compiler warnings/cppcheck.
+
+20230520
+ + fixes for compiler warnings in MinGW environments.
+
+20230514
+ + modify test-package "ncurses6-doc" to use manpage-aliases, which in
+ turn required a change to the configure script to factor in the
+ extra-suffix option when deriving alias names.
+ + add mode 1004 to xterm+sm+1006 from xterm #380 -TD
+
+20230506
+ > build-fixes related to configure-options and/or platform:
+ + fix for --enable-fvisibility
+ + fix for unusual values of --with-rel-version
+ + fix for unusual values of --with-abi-version
+ + fix for --disable-tcap-names
+ + fix for termcap in nc_access.h (report by Werner Fink).
+
+20230429
+ + revise recent change to _nc_write_entry to isolate it to a Cygwin bug
+ (cf: 20230311)
+ + amend fix for wgetnstr, wgetn_wstr to use cbreak mode unless raw
+ mode was set (cf: 20210522).
+ + fix a few warnings from cppcheck, etc.
+ + correct copy/paste error in nc_access.h (report by Werner Fink).
+
+20230424
+ + check return value of _nc_save_str(), in special case for tic where
+ extended capabilities are processed but the terminal description was
+ not initialized (report by Ziqiao Kong).
+ + regenerate llib-* files.
+
+20230423
+ + add tiscan_s() to help applications check formatting capabilities
+ that would be passed to tiparm_s, etc.
+ + add tiparm_s() to provide applications a way to tell ncurses what
+ the expected parameters are for a capability (tmux #3531).
+ + improve check in lib_tparm.c, ensuring that a char* fits into a
+ TPARM_ARG.
+ + add --disable-setuid-environ configure option (request by Sven
+ Joachim).
+ + drop compatibility with obsolete versions of tack, e.g., pre-1.08
+ (Debian #1034549, cf: 20170722).
+
+20230418
+ + improve checks for limits on privileged execution:
+ + modify _nc_syserr_abort() to use _nc_env_access(), rather than
+ only checking root uid.
+ + use getauxval() when available, to improve setuid/setgid checks.
+ + modify test packages to disable root access/environ options.
+ + modify tgoto() to accept no-parameter capabilities, for joe editor
+ (OpenSUSE #1210485, Gentoo #904263).
+
+20230415
+ + configure script fixes:
+ + fix copy/paste error in configure option --disable-root-access
+ (report/patch by Sven Joachim).
+ + modify CF_XOPEN_SOURCE macro's amend default case to avoid
+ undefining _XOPEN_SOURCE if _POSIX_C_SOURCE is defined.
+ + modify test_tparm to account for extended capabilities.
+ + add checks in tparm() and tiparm() for misuse of numeric parameters,
+ overlooked in 20230408.
+ + fix errata in clear.1 and curs_terminfo.3x
+
+20230408
+ + document limitations of tparm, and error-returns in curs_terminfo.3x
+ + document limitations of tgoto, and error-returns in curs_termcap.3x
+ + add xterm+focus to alacritty+common (patch by Christian Duerr).
+ + add "-v" option to tput, to show warnings.
+ > improve checks for malformed terminfo data (report/analysis by
+ Jonathan Bar Or, Michael Pearse, Emanuele Cozzi).
+ + make the parameter type/count checks in _nc_tiparm() more stringent
+ + update tgoto() to account for _nc_tiparm() changes
+ + add checks in tparm() and tiparm() for misuse of string parameters
+ + add special cases in tput to handle extensions Cs/Ms parameters
+ + ignore compiled-terminfo where the array sizes exceed the standard
+
+20230401
+ + modify experimental Windows driver to work with xterm mouse protocol.
+ + remove DECCOLM+DECSCLM from foot (patch by Daniel Ekloef).
+
+20230311
+ + improve manpage description for addch versus unctrl format used for
+ non-printable characters.
+ + modify version-check for gcc/g++, now works for msys2.
+ + modify check in _nc_write_entry() for multiply defined aliases to
+ report problems within the current runtime of tic rather than for
+ conflicts with pre-existing terminal descriptions.
+ + allow for MinGW32-/64-bit configurations to use _DEFAULT_SOURCE
+ + clarify interaction of -R option versus -C, -I and -r in infocmp
+ manpage.
+ + build-fix in lib_win32con.c (cf: 20230211).
+
+20230225
+ + build-fixes for rpm test-packages.
+ + add/use configure check for clock_gettime(), to supersede
+ gettimeofday().
+
+20230218
+ + configure-script improvements:
+ + recent msys2 headers work with _DEFAULT_SOURCE; amend check
+ + use $ac_includes_default in most cases where stdlib.h should work
+ + use #error consistently vs "make an error"
+ + add configure macro for gettimeofday vs inline check
+
+20230211
+ + set dwShareMode in calls to CreateConsoleScreenBuffer() (patch by
+ Hannes Domani).
+ + use CreateFile with "CONIN$", "CONOUT$" rather than GetStdHandle to
+ obtain a handle on the actual console, avoiding redirection in the
+ MinGW/Win32 configurations (adapted from patch by LIU Hao).
+
+20230128
+ + document XF, kxIN and kxOUT -TD
+ + add note on sun/wscons/cmdtool/shelltool -TD
+ + modify configure script check for pkg-config library directory to
+ take into account an older version 0.15.0 which used PKG_CONFIG_PATH
+ but not PKG_CONFIG_LIBDIR
+
+20230121
+ + correct limit-check when dumping tc/use clause via tic -I (report by
+ Gabriel Ravier).
+ + correct a check for manpage-alias in edit_man.sh, to work with out of
+ tree builds (report by Sven Joachim).
+
+20230114
+ + change RV to XR/xr, to avoid conflict with pre-existing usage in vim,
+ to use RV/rv to denote DA2 and its response (discussion with Bram
+ Moolenaar) -TD
+ + add XF flag to xterm+focus so that termcap applications can be aware
+ of terminals which may support focus in/out -TD
+ + use xterm+focus in xterm-p370 and tmux -TD
+ + improve configure-script macros vs compiler warnings.
+
+20230107
+ + add --with-abi-altered configure option (prompted by discussion with
+ Brian Inglis).
+ + add BSD erase2 to characters handled by tset/reset.
+ + improve configure-script macros vs compiler warnings.
+ + regenerate configure scripts with autoconf 2.52.20221202
+ + add RV report+version (suggested by Bram Moolenaar).
+ + add comment to bracketed+paste explaining that vim patch 9.0.1117 is
+ needed for use with the updated xterm descriptions (suggested by Bram
+ Moolenaar).
+
+20221231 6.4 release for upload to ftp.gnu.org
+ + update release notes
+ + regenerate llib-* files.
+ + correct PS vs PE names in bracketed+paste (report by Bram Moolenaar)
+ -TD
+
+20221224
+ + add mutex lock/unlock in a few places reported by thread-sanitizer
+ + add/use bracketed+paste to help identify terminals supporting this
+ xterm feature (prompted by discussion with Bram Moolenaar) -TD
+
+20221217
+ + install Ada95 sample programs in libexecdir, adding a wrapper
+ script to invoke those.
+
+20221210
+ + add minimal -h/-V getopt logic to the remaining test-programs.
+ + free new_pair() data in delscreen (report by "magiblot").
+ + add clarification of the scope of dynamic variables in terminfo(5).
+ + remove a stray '/' from description of %g in terminfo(5).
+
+20221203
+ + add -h usage and -V version options to the test-programs which use
+ getopt.
+ + use "command -v" rather than "type" in Ada95/gen/Makefile.in to fix
+ a portability issue (patch by Nicolas Boulenguez).
+ + update ncurses-howto, more documentation fixes along with corrections
+ to example programs.
+
+20221126
+ + fix an error in pathname of explain.txt (cf: 20200201).
+ + fix an error in "@" command in test/ncurses.c F-menu (cf: 20190121).
+ + improve formatting of ncurses-intro.html and hackguide.html
+ + improve man/curs_clear.3x links to other pages
+
+20221119
+ + use static libraries for AdaCurses test-package for Mageia, since no
+ gprbuild package is available.
+ + updated test packages for Debian.
+
+20221112
+ + build-fixes for AdaCurses RPM test-package.
+
+20221105
+ + regenerate configure scripts with autoconf 2.52.20221009
+ + modify "--with-manpage-format" to support bzip2 and xz compression
+ (prompted by discussion with Sam James).
+ + modify make-tar.sh scripts to make timestamps more predictable.
+
+20221029
+ + improve curs_slk.3x discussion of extensions and portability (report
+ by Bill Gray).
+
+20221023
+ + change man_db.renames to template, to handle ncurses*-config script
+ with the extra-suffix configure option.
+
+20221015
+ + fix another memory-leak in tic.
+ + update install-sh script from autoconf, to fix install problem for
+ Ada95 with Arch; as noted in
+ https://lists.gnu.org/archive/html/automake/2018-09/msg00005.html
+ there are unaddressed issues.
+ + update CF_XOPEN_SOURCE, adding GNU libc suffixes for abi64, abin32,
+ x32 (report by Sven Joachim):
+ + correct ifdef's for _nc_set_read_thread() (patch by Mikhail Korolev,
+ cf: 20220813).
+
+20221008
+ + correct a switch-statement case in configure script to allow for test
+ builds with ABI=7.
+ + modify misc/gen-pkgconfig.in to allow for the case where the library
+ directory does not yet exist, since this is processed before doing an
+ install (report by Michal Liszcz).
+
+20221001
+ + modify configure/scripts to work around interference by GNU grep 3.8
+ (report by Sam James).
+ + update CF_XOPEN_SOURCE, adding variants "gnueabi" and "gnueabihf" to
+ get _DEFAULT_SOURCE special case (report by Adam Sampson)
+
+20220924
+ + modify configure macro CF_BUILD_CC to check if the build-compiler
+ works, rather than that it is different from the cross-compiler, e.g.,
+ to accommodate a compiler which can be used for either purpose with
+ different flags (report by Mikhail Korolev).
+ + fix another memory-leak in tic.
+ + correct change for cppcheck in menu library (report/analysis by
+ "tuxway", cf: 20220903).
+ + update config.guess, config.sub
+
+20220917
+ + reduce memory-leak in tic by separating allocations for struct entry
+ from TERMTYPE2 (cf: 20220430).
+ + improve interaction between tic -v option and NCURSES_TRACE, by
+ processing the latter only when -v option does not set _nc_tracing.
+ + modify curses_trace() to show the trace-mask as symbols, e.g.,
+ TRACE_ORDINARY, DEBUG_LEVEL(3).
+
+20220910
+ + amend verbose-option change to make this affect level 3, e.g., using
+ "tic -cv3 terminfo".
+ + work around musl's nonstandard use of feature test macros by adding
+ a definition for NCURSES_WIDECHAR to the generated ".pc" and *-config
+ files (report by Sam James).
+
+20220903
+ + modify verbose-option of infocmp, tic, toe to enable debug-tracing
+ if that is configured.
+
+20220827
+ + modify configure scripts to use overlooked cases for LD and
+ PKG_CONFIG variables (report by Alan Webb, Gentoo #866398).
+ + modify nsterm to use xterm+alt1049 (report by Paul Handly) -TD
+ + modify putty to use xterm+alt1049 -TD
+
+20220820
+ + fix some cppcheck warnings, mostly style, in ncurses and c++
+ libraries and progs directory.
+ + add curses_trace to ifdef's for START_TRACE in test/test.priv.h
+ + update config.guess
+
+20220813
+ + modify delscreen to more effectively delete all windows on the given
+ screen.
+ + amend portability note for delwin in manual page.
+ + adapt test/test_delwin.c from example by Bill Gray.
+ + account for prescreen data if freeing leaks in pthread-configuration
+ + split-out _nc_set_read_thread(), to reduce compiler warnings about
+ pthread_self(), which may/may not be a weak symbol.
+ + improve pthread-configuration for test/worm.c
+
+20220806
+ + amend end_of_stream() to allow for input files without a final
+ newline.
+ + check for non-textfiles to tic.
+
+20220729
+ + fixes to build with dietlibc:
+ + add configure check for fpathconf (report by Georg Lehner).
+ + add configure check for math sine/cosine, needed in test/tclock,
+ and eliminate pow() from test/hanoi (report by Georg Lehner).
+ + use wcsnlen as an alternative to wmemchr if it is not found
+ (adapted from patch by Georg Lehner).
+ + trim out some unwanted linker options from ncurses*config and .pc
+ files seen in Fedora 36+.
+
+20220724
+ + add portability notes for delscreen and delwin in manual.
+ + improve pthread-configuration for test/worm.c, test/rain.c
+ + improve pointer/limit checks associated with deleting a screen
+ (Debian #1015756).
+
+20220716
+ + build-fix for test_mouse.c, for non-standard cfmakeraw.
+ + improve shell-scripts with shellcheck
+ + fix typo in run_tic.in (report/patch by Jan Starke).
+
+20220709
+ + lock the prescreen data consistently in newterm, etc., for the
+ pthreads configuration (report by Tom de Vries).
+
+20220703
+ + add consistency check in tic for u6/u7/u8/u9 and NQ capabilities.
+ + use NQ to flag entries where the terminal does not support query and
+ response -TD
+ + use ansi+enq and decid+cpr in cases where the terminal probably
+ supported the u6-u9 extension -TD
+ + add/use apollo+vt132, xterm+alt47 -TD
+
+20220625
+ + improve man/curs_bkgd.3x, explaining that bkgdset can affect results
+ for bkgd (report by Anton Vidovic).
+ + correct dsl in dec+sl (report by Rajeev Pillai) -TD
+ + add/use ansi+cpr, decid+cpr -TD
+
+20220618
+ + add a null-pointer check for term_names field in copy_termtype(),
+ needed for MinGW port (report by Peiyuan Song, cf: 20220521).
+ + revise kon/kon2/jfbterm to undo "linux2.6" change to
+ smacs/rmacs/enacs (Debian #1012800) -TD
+ + amended note for att610+cvis0, as per documentation for att610,
+ att620, att730 -TD
+
+20220612
+ + modify waddch_literal() to allow for double-width base character when
+ merging a combining character (report by Gavin Troy).
+ + improve _tracecchar_t2() formatting of base+combining character.
+
+20220604
+ + add note on portable memory-leak checking in man/curs_memleaks.3x
+ + remove u6-u9 from teken-2018 -TD
+ + set "xterm-new" to "xterm-p370", add "xterm-p371" -TD
+
+20220529
+ + expanded notes for teken/syscons -TD
+ + fix overlooked copying of extended string-heap in copy_termtype
+ (cf: 20220430).
+ + update config.guess
+
+20220521
+ + improve memory-leak checking in several test-programs.
+ + set trailing null on string passed from winsnstr() to wins_nwstr().
+ + modify del_curterm() to fix memory-leak introduced by change to
+ copy_termtype().
+
+20220514
+ + further improvements to test/test_mouse.c; compare with ncurses test
+ program menu A/a.
+
+20220507
+ + add test/test_mouse.c (patch by Leonid S Usov).
+ + add a few debug-traces for tic, fix a couple of memory-leaks.
+
+20220501
+ + build-fix for debug-traces (report/patch by Chris Clayton).
+
+20220430
+ + modify samples for xterm mouse 1002/1003 modes to use 1006 mode, and
+ also provide for focus in/out responses -TD
+ + modify default case in handle_wheel() to always report button-release
+ events, e.g., for xterm mouse mode 1003 (patch by Leonid S Usov).
+ + improve valid_entryname() to disallow characters used in terminfo
+ syntax: '#', '=', '|', '\'.
+ + alter copy_termtype() to allocate new str_table and ext_str_table
+ data rather than relying upon its callers.
+ + use calloc in _nc_init_entry() when allocating stringbuf, to ensure
+ it is initialized.
+ + add library-level TYPE_CALLOC for consistency with TYPE_MALLOC.
+ + add some debug-traces for tic/infocmp.
+
+20220423
+ + in-progress work on invalid_merge(), disable it (cf: 20220402).
+ + fix memory leak in _nc_tic_dir() when called from _nc_set_writedir().
+ + fix memory leak in tic when "-c" option is used.
+
+20220416
+ + add a limit-check to guard against corrupt terminfo data
+ (report/testcase by NCNIPC of China).
+ + add check/warning in configure script if option --with-xterm-kbs is
+ missing or inconsistent (Arch #74379).
+ + add setlocale call to several test-programs.
+ + allow extended-color number in opts parameter of wattr_on.
+
+20220409
+ + add test/test_unget_wch.c
+
+20220402
+ + amend extended_captype(), returning CANCEL if a string is explicitly
+ cancelled.
+ + make description-fields distinct -TD
+
+20220326
+ + update teken -TD
+ + add teken-16color, teken-vt and teken-sc -TD
+ + add a few missing details for vte-2018 (report by Robert Lange) -TD
+
+20220319
+ + add xgterm -TD
+ + correct setal in mintty/tmux entries, add to vte-2018 (report by
+ Robert Lange)
+ + add blink to vte-2018 (report by Robert Lange)
+ + improve tic warning about XT versus redundant tsl, etc.
+
+20220312
+ + add xterm+acs building-block -TD
+ + add xterm-p370, for use in older terminals -TD
+ + add dec+sl to xterm-new, per xterm patch #371 -TD
+ + add mosh and mosh-256color -TD
+
+20220305
+ + replace obsolescent "-gnatg" option with "-gnatwa" and "-gnatyg", to
+ work around build problems with gnat 12.
+ + update external links in Ada95.html
+ + trim unused return-value from canonical_name().
+
+20220226
+ + fix issues found with coverity:
+ + rewrite canonical_name() function of infocmp to ensure buffer size
+ + corrected use of original tty-modes in tput init/reset subcommands
+ + modify tabs program to limit tab-stop values to max-columns
+ + add limit-checks for palette rgb values in test/ncurses.c
+ + add a few null-pointer checks to help with static-analysis.
+ + enforce limit on number of soft-keys used in c++ binding.
+ + adjust a buffer-limit in write_entry.c to quiet a bogus warning from
+ gcc 12.0.1
+
+20220219
+ + expanded description in man/resizeterm.3x
+ + additional workaround for ImageMagick in test/picsmap.c
+
+20220212
+ + improve font-formatting in other manpages, for consistency.
+ + correct/improve font-formatting in curs_wgetch.3x (patch by Benno
+ Schulenberg).
+
+20220205
+ + workaround in test/picsmap.c for use of floating point for rgb values
+ by ImageMagick 6.9.11, which appears to use the wrong upper limit.
+ + improve use of "trap" in shell scripts, using "fixup-trap".
+
+20220129
+ + minor updates for test-packages
+ + improve handling of --with-pkg-config-libdir option, allowing for the
+ case where either $PKG_CONFIG_LIBDIR or the option value has a
+ colon-separated list of directories (report by Rudi Heitbaum,
+ cf: 20211113).
+ + update kitty -TD
+
+20220122
+ + add ABI 7 defaults to configure script.
+ + add warning in configure script if file specified for "--with-caps"
+ does not exist.
+ + use fix for CF_FIX_WARNINGS from cdk-perl, ignoring error-exit on
+ format-warnings.
+ + improve readability of long parameterized expressions with the
+ infocmp "-f" option by allowing split before a "%p" marker.
+
+20220115
+ + improve checks for valid mouse events when an intermediate mouse
+ state is not part of the mousemask specified by the caller (report by
+ Anton Vidovic, cf: 20111022).
+ + use newer version 1.36 of gnathtml for generating Ada html files.
+
+20220101
+ + add section on releasing memory to curs_termcap.3x and
+ curs_terminfo.3x manpages.
+
+20211225
+ + improve markup, e.g., for external manpage links in the manpages
+ (prompted by report by Helge Kreutzmann).
+
+20211219
+ + install ncurses-examples programs in libexecdir, adding a wrapper
+ script to invoke those.
+ + add help-screen and screen-dump to test/combine.c
+
+20211211
+ + add test/combine.c, to demo/test combining characters.
+
+20211204
+ + improve configure check for getttynam (report by Werner Fink).
+
+20211127
+ + fix errata in description fields (report by Eric Lindblad) -TD
+ + add x10term+sl, aixterm+sl, ncr260vp+sl, ncr260vp+vt, wyse+sl -TD
+
+20211120
+ + add dim, ecma+strikeout to st-0.6 -TD
+ + deallocate the tparm cache when del_curterm is called for the last
+ allocated TERMINAL structure (report/testcase by Bram Moolenaar,
+ cf: 20200531).
+ + modify test-package to more closely conform to Debian multi-arch.
+ + if the --with-pkg-config-libdir option is not given, use
+ ${libdir}/pkgconfig as a default (prompted by discussion with Ross
+ Burton).
+
+20211115
+ + fix memory-leak in delwin for pads (report by Werner Fink, OpenSUSE
+ #1192668, cf: 20211106),
+
+20211113
+ + minor clarification to clear.1 (Debian #999437).
+ + add xterm+sl-alt, use that in foot+base (report by Jonas Grosse
+ Sundrup) -TD
+ + improve search-path check for pkg-config, for Debian testing which
+ installs pkg-config with architecture-prefixes.
+
+20211106
+ + improve check in misc/Makefile.in for empty $PKG_CONFIG_LIBDIR
+ + modify wnoutrefresh to call pnoutrefresh if its parameter is a pad,
+ rather than treating it as an error, and modify new_panel to permit
+ its window-parameter to be a pad (report by Giorgos Xou).
+ + fix a memory-leak in del_curterm (prompted by discussion with Bram
+ Moolenaar, cf: 20210821).
+
+20211030
+ + simplify some references to WINDOWS._flags using macros.
+ + add a "check" rule in Ada95 makefile, to help with test-packages.
+ + build-fix for cross-compiling to MingW, conditionally add -lssp
+
+20211026
+ + corrected regex needed for older pkg-config used in Solaris 10.
+ + amend configure option's auto-search to account for systems where
+ none of the directories known to pkg-config exist, adapted from
+ mailing-list comment (report by Milan P. Stanic).
+
+20211021 6.3 release for upload to ftp.gnu.org
+ + update release notes
+ + add "ncu2openbsd" script, to illustrate how to update an OpenBSD
+ system to use a current ncurses release.
+
+20211018
+ + check for screen size-change in scr_init() and scr_restore(), in case
+ a screen dump does not match the current screen dimensions (report by
+ Frank Tkalcevic).
+
+20211017
+ + amend change for pkg-config to account for "none" being returned in
+ the libdir-path result rather than "no" (report by Gabriele Balducci).
+
+20211016
+ + build-fix for pmake with libtool.
+ + improve make-tar.sh scripts, adding COPYING to tar file, and clean up
+ shellcheck warnings.
+ + add link for "reset6" manpage in test-package ncurses6-doc
+ + revise configure option --with-pkg-config-libdir, using the actual
+ search path from pkg-config or pkgconf using the output from --debug
+ (report by Pascal Pignard).
+ + freeze ABI in ".map" files.
+
+20211009
+ + implement "+m" option in tabs program.
+ + fill in some details for infoton -TD
+ + fix spelling/consistency in several descriptions -TD
+ + use vt420+lrmm in vt420 -TD
+ + modify save_tty_settings() to avoid opening /dev/tty for cases other
+ than reset/init, e.g., for clear.
+ + modify output of "toe -as" to show first description found rather
+ than the last.
+ + improve tic checks for number of parameters of smglp, smgrp, smgtp,
+ and smgbp (cf: 20020525).
+ + correct off-by-one comparison in last_char(), which did not allow
+ special case of ":" in a terminfo description field (cf: 20120407).
+ + remove check in tic that assumes that none or both parameterized and
+ non-parameterized margin-setting capabilities are present
+ (cf: 20101002).
+
+20211002
+ + use return-value from vsnprintf to reallocate as needed to allow for
+ buffers larger than the screen size (report by "_RuRo_").
+ + modify tset "-q" option to refrain from modifying terminal modes, to
+ match the documentation.
+ + add section on margins to terminfo.5, adapted from X/Open Curses.
+ + make tput/tset warning messages consistently using alias names when
+ those are used, rather than the underlying program's name.
+ + improve tput usage message for aliases such as clear, by eliminating
+ tput-specific portions.
+ + add a check in toe to ensure that a "termcap file" is text rather
+ than binary.
+ + further build-fixes for OpenBSD 6.9, whose header files differ from
+ the other BSDs.
+
+20210925
+ + add kbeg to xterm+keypad to accommodate termcap applications -TD
+ + add smglp and smgrp to vt420+lrmm, to provide useful data for the
+ "tabs" +m option -TD
+ + build-fix for gcc 3.4.3 with Solaris10, which does not allow forward
+ reference of anonymous struct typedef.
+ + modify tput to allow multiple commands per line.
+ + minor fixes for tset manpage.
+
+20210911
+ + adjust ifdef in test_opaque.c to fix build with ncurses 5.7
+ + add testing note for xterm-{hp|sco|sun} -TD
+ + corrected description for ansi.sys-old -TD
+ + add xterm+nopcfkeys, to fill in keys for xterm-hp, xterm-sun -TD
+ + use hp+arrows in a few places -TD
+ + use hp+pfk-cr in a few places -TD
+
+20210905
+ + correct logic in filtering of redefinitions (report by Sven Joachim,
+ cf: 20210828).
+
+20210904
+ + modify linux3.0 entry to reflect default mapping of shift-tab by
+ kbd 1.14 (report by Jan Engelhardt) -TD
+ + add historical note to tput, curses-terminfo and curses-color
+ manpages based on source-code for SVr2, SVr3 and SVr4.
+ + minor grammatical fixes for "it's" vs "its" (report by Nick Black).
+ + amend fix for --disable-root-environ (report by Arnav Singh).
+ + build-fix for compiling link_test
+ + drop symbols GCC_PRINTF and GCC_SCANF from curses.h.in, to simplify
+ use (Debian #993179).
+
+20210828
+ + correct reversed check for --disable-root-environ (report/analysis
+ by Arnav Singh, cf: 20210626).
+ + apply gcc format attribute to prototypes which use a va_list
+ parameter rather than a "..." variable-length parameter list
+ (prompted by discussion in a tmux pull-request).
+ + modify configure scripts to filter out redefinitions of _XOPEN_SOURCE,
+ e.g., for NetBSD which generally supports 500, but 600 is needed for
+ ncursesw.
+ + improve documentation for tparm and static/dynamic variables.
+ + improve typography in terminfo.5 (patch by Branden Robinson).
+
+20210821
+ + improve tparm implementation of %P and %g, more closely matching
+ SVr4 terminfo.
+ + move internals of TERMINAL structure to new header term.priv.h
+ + add "check" rule for ncurses/Makefile
+ + corrected tsl capability for terminator -TD
+ + add check in tic to report instances where tparm would detect an
+ error in an expression (cf: 20201010).
+ + correct a few places where SP->_pair_limit was used rather than
+ SP->_pair_alloc (cf: 20170812).
+ + fix missing "%d" for setaf/setab code 8-15 in xterm+direct16 (report
+ by Florian Weimer) -TD
+ + fix some documentation errata from OpenBSD changes.
+ + update config.sub
+
+20210814
+ + add workaround for broken pcre2 package in Debian 10, from xterm #369.
+
+20210807
+ + ignore "--dynamic-linker" option in generated pkg/config files,
+ adapted from "distr1" patch.
+ + add CF_SHARED_OPTS case for Haiku, from patch in haikuports.
+
+20210731
+ + add extensions in xterm+tmux and ecma+strikeout to ms-terminal,
+ but cancel the non-working Cr and Ms capabilities -TD
+ + add foot and foot-direct -TD
+
+20210724
+ + add workaround for Windows Terminal's problems with CR/LF mapping to
+ ms-terminal (patch by Juergen Pfeifer).
+ + review/update current Windows Terminal vs ms-terminal -TD
+
+20210718
+ + correct typo in "vip" comments (report by Nick Black), reviewed this
+ against Glink manual -TD
+ + fill in some missing pieces for pccons, to make it comparable to the
+ vt220 entry -TD
+ + modify mk-1st.awk to account for extra-suffix configure option
+ (report by Juergen Pfeifer).
+ + change default for --disable-wattr-macros option to help packagers
+ who reuse wide ncursesw header file with non-wide ncurses library.
+ + build-fix for test/test_opaque.c, for configurations without opaque
+ curses structs.
+
+20210710
+ + improve history section for tset manpage based on the 1BSD tarball,
+ which preceded BSD's SCCS checkins by more than three years.
+ + improve CF_XOPEN_CURSES macro used in test/configure (report by Urs
+ Jansen).
+ + further improvement of libtool configuration, adding a dependency of
+ the install.tic rule, etc., on the library in the build-tree.
+ + update config.sub
+
+20210703
+ + amend libtool configuration to add dependency for install.tic, etc.,
+ in ncurses/Makefile on the lower-level libraries.
+ + modify configure script to support ".PHONY" make program feature.
+
+20210626
+ + add configure option --disable-root-access, which tells ncurses to
+ disallow most file-opens by setuid processes.
+ + use default colors in pccon "op" -TD
+ + correct rmacs/smacs in aaa+dec, aaa+rv -TD
+ + add hpterm-color2 and hp98550-color (Martin Trusler)
+ + regenerate man-html documentation.
+
+20210619
+ + improve configure-macro used for dependencies of --disable-leaks such
+ as --with-valgrind
+ + trim trailing blanks from files
+
+20210612
+ + fixes for scan-build, valgrind build/testing.
+ + update config.guess
+
+20210605
+ + add a summary of ncurses-specific preprocessor symbols to curses.h
+ (prompted by discussion with Peter Farley, Bill Gray).
+
+20210522
+ + regenerate configure scripts with autoconf 2.52.20210509 to eliminate
+ an unnecessary warning in config.log (report by Miroslav Lichvar).
+ + add a note in manual page to explain ungetch vs unget_wch (prompted
+ by discussion with Peter Farley).
+ + add sp-funcs for erasewchar, killwchar.
+ + modify wgetnstr, wgetn_wstr to improve compatibility with SVr4 curses
+ in its treatment of interrupt and quit characters (prompted by
+ report/testcase by Bill Gray)
+ + update config.guess, config.sub
+
+20210515
+ + improve manual pages for wgetnstr, newwin (prompted by
+ report/testcase by Bill Gray).
+
+20210508
+ + modify tputs' error check to allow it to be used without first
+ calling tgetent or setupterm, noting that terminfo initialization
+ is required for supporting the terminfo delay feature (report by
+ Sebastiano Vigna).
+ + fix several warnings from clang --analyze
+ + add null-pointer check in comp_parse.c, when a "use=" clause refers
+ to a nonexisting terminal description (report/patch by Miroslav
+ Lichvar, cf: 20210227).
+
+20210501
+ + add a special case in the configure script to work around one of the
+ build-time breakages reported for OpenBSD 6 here:
+ https://www.mail-archive.com/bugs@openbsd.org/msg13200.html
+ There is no workaround for the other issue, a broken linker spec.
+ + modify configure check for libtool to prevent accidental use of an
+ OpenBSD program which uses the same name.
+ + update config.guess, config.sub
+
+20210424
+ + avoid using broken system macros for snprintf which interfere with
+ _nc_SLIMIT's conditionally adding a parameter when the string-hacks
+ configure option is enabled.
+ + add a "all::" rule before the new "check" rule in test/Makefile.in
+
+20210418
+ + improve CF_LINK_FUNCS by ensuring that the source-file is closed
+ before linking to the target.
+ + add "check" rules for headers in c++, progs and test-directories.
+ + build-fix for termsort module when configured with termcap (reports
+ by Rajeev V Pillai, Rudi Heitbaum).
+
+20210417
+ + extend --disable-pkg-ldflags option to also control whether $LDFLAGS
+ from the build is provided in -config and .pc files (Debian #986764).
+ + fix some cppcheck warnings, mostly style, in ncurses and c++
+ libraries and progs directory.
+ + fix off-by-one limit for tput's processing command-line arguments
+ (patch by Hadrien Lacour).
+
+20210403
+ + fix some cppcheck warnings, mostly style, in ncurses library and
+ progs directory.
+ + improve description of BSD-style padding in curs_termcap.3x
+ + improved CF_C11_NORETURN macro, from byacc changes.
+ + fix "--enable-leak" in CF_DISABLE_LEAKS to allow turning
+ leak-checking off later in a set of options.
+ + relax modification-time comparison in CF_LINK_FUNCS to allow it to
+ accept link() function with NFS filesystems which change the mtime
+ on the link target, e.g., several BSD systems.
+ + call delay_output_sp to handle BSD-style padding when tputs_sp is
+ called, whether directly or internally, to ensure that the SCREEN
+ pointer is passed correctly (reports by Henric Jungheim, Juraj
+ Lutter).
+
+20210327
+ + build-fixes for Solaris10 /bin/sh
+ + fix some cppcheck warnings, mostly style, in ncurses test-programs,
+ form and menu libraries.
+
+20210323
+ + add configure option --enable-stdnoreturn, making the _Noreturn
+ keyword optional to ease transition (prompted by report by
+ Rajeev V Pillai).
+
+20210320
+ + improve parameter-checking in tput by forcing it to analyze any
+ extended string capability, e.g., as used in the Cs and Ms
+ capabilities of the tmux description (report by Brad Town,
+ cf: 20200531).
+ + remove an incorrect free in the fallback (non-checking) version of
+ _nc_free_and_exit (report by Miroslav Lichvar).
+ + correct use-ordering in some xterm-direct flavors -TD
+ + add hterm, hterm-256color (Mike Frysinger)
+ + if the build-time compiler accepts c11's _Noreturn keyword, use that
+ rather than gcc's attribute.
+ + change configure-check for gcc's noreturn attribute to assume it is
+ a prefix rather than suffix, matching c11's _Noreturn convention.
+ + add "lint" rule to c++/Makefile, e.g., with cppcheck.
+
+20210313
+ + improve configure CF_LD_SEARCHPATH macro used for ncurses*-config and
+ ".pc" files, from dialog changes.
+ + reduce dependency of math-library in test programs.
+ + minor fixes for test_tparm.c (cf: 20210306)
+ + mention "ncurses" prefix in curses_version() manpage (report by
+ Michal Bielinski).
+
+20210306
+ + improved test/test_tparm.c, by limiting the tests to capabilities
+ that might have parameters or padding, and combined with tputs test.
+ + improve discussion of padding versus tparm and tputs in
+ man/curs_terminfo.3x
+ + update portability note for FreeBSD in man/tput.1
+
+20210227
+ + modify tic/infocmp to eliminate unnecessary "\" to escape ":" in
+ terminfo format.
+ + add check in tic for duplicate "use=" clauses.
+
20210220
+ improve tic warning when oc/op do not mention SGR 39/49 for xterm
compatible XT flag.
@@ -380,7 +1545,7 @@ it is not possible to add this information.
+ re-enable "bel" in konsole-base (report by Nia Huang)
+ add linux-s entry (patch by Alexandre Montaron).
+ drop long-obsolete convert_configure.pl
- + add test/test_parm.c, for checking tparm changes.
+ + add test/test_tparm.c, for checking tparm changes.
+ improve parameter-checking for tparm, adding function _nc_tiparm() to
handle the most-used case, which accepts only numeric parameters
(report/testcase by "puppet-meteor").
@@ -4598,7 +5763,7 @@ it is not possible to add this information.
function pointer passed to tputs().
+ modify init_pair() to accept -1's for color value after
assume_default_colors() has been called (Debian #337095).
- + modify test/background.c, adding commmand-line options to demonstrate
+ + modify test/background.c, adding command-line options to demonstrate
assume_default_colors() and use_default_colors().
20110416
@@ -10333,7 +11498,7 @@ it is not possible to add this information.
+ add mgterm terminfo entry from NetBSD, minor adjustments to sun-ss5,
aixterm entries -TD
+ modify tack/ansi.c to make it more tolerant of bad ANSI replies. An
- example of an illegal ANSI resonse can be found using Microsoft's
+ example of an illegal ANSI response can be found using Microsoft's
Telnet client. A correct display can be found using a VT-4xx
terminal or XFree86 xterm with:
XTerm*VT100*decTerminalID: 450
@@ -11227,7 +12392,7 @@ it is not possible to add this information.
+ correct a typo in term.7 (Todd C Miller).
+ add configure --with-shlib-version option to allow installing shared
libraries named according to release or ABI versions. This
- parameterizes some existing logic in the configure script, and is
+ parametrizes some existing logic in the configure script, and is
intended for compatibility upgrades on Digital Unix, which used
versioned libraries in ncurses 4.2, but no longer does (cf: 980425).
+ resync configure script against autoconf 2.13 + patches
diff --git a/README b/README
index a48e3f6155d9..5587f5b70bce 100644
--- a/README
+++ b/README
@@ -1,5 +1,5 @@
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey --
+-- Copyright 2020-2021,2023 Thomas E. Dickey --
-- Copyright 1998-2012,2018 Free Software Foundation, Inc. --
-- --
-- Permission is hereby granted, free of charge, to any person obtaining a --
@@ -26,7 +26,7 @@
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
--- $Id: README,v 1.28 2020/02/02 23:34:34 tom Exp $
+-- $Id: README,v 1.31 2023/10/28 14:49:04 tom Exp $
-------------------------------------------------------------------------------
README file for the ncurses package
@@ -35,18 +35,19 @@ See the file INSTALL for instructions on how to build and install ncurses.
See the file NEWS for a release history and bug-fix notes.
See the file TO-DO for things that still need doing, including known bugs.
-Browse the file misc/ncurses-intro.html for narrative descriptions of how
+Browse the file doc/html/ncurses-intro.html for narrative descriptions of how
to use ncurses and the panel, menu, and form libraries.
-
+
Browse the file doc/html/hackguide.html for a tour of the package internals.
+Find plain text versions of both of these documents in doc/.
+
ROADMAP AND PACKAGE OVERVIEW:
You should be reading this file in a directory called: ncurses-d.d, where d.d
is the current version number (see the dist.mk file in this directory for
that). There should be a number of subdirectories, including `c++', `form',
-`man', `menu', `misc', `ncurses', `panel', `progs', `test', 'tack' and `Ada95'.
-(The 'tack' program may be distributed separately).
+`man', `menu', `misc', `ncurses', `panel', `progs', `test', and `Ada95'.
A full build/install of this package typically installs several libraries, a
handful of utilities, and a database hierarchy. Here is an inventory of the
@@ -81,7 +82,7 @@ version.
If you configure using the --enable-reentrant option, a "t" is appended to the
library names (e.g., libncursest.a) and the resulting libraries have a
-different binary interface which makes the ncurses interface more "opaque".
+different binary interface, making the ncurses interface more opaque.
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
@@ -89,9 +90,9 @@ code for these lives in the `ncurses', `panel', `menu', and `form' directories
respectively.
In the `c++' directory, you'll find code that defines an interface to the
-curses, forms, menus and panels library packaged as C++ classes, and a demo program in C++
-to test it. These class definition modules are not installed by the 'make
-install.libs' rule as libncurses++.
+curses, forms, menus and panels library packaged as C++ classes, and a demo
+program in C++ to test it. These class definition modules are not installed
+by the 'make 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.
@@ -102,8 +103,8 @@ for documentation of the binding.
To do its job, the ncurses code needs your terminal type to be set in the
environment variable TERM (normally set by your OS; under UNIX, getty(1)
-typically does this, but you can override it in your .profile); and, it needs a
-database of terminal descriptions in which to look up your terminal type's
+typically does this, but you can override it in your .profile); and, it needs
+a database of terminal descriptions in which to look up your terminal type's
capabilities.
In older (V7/BSD) versions of curses, the database was a flat text file,
@@ -117,10 +118,10 @@ second form.
In the `misc' directory, there is a text file terminfo.src, in editable
terminfo format, which can be used to generate the terminfo binaries (that's
what make install.data does). If the package was built with the
---enable-termcap option enabled, and the ncurses library cannot find a terminfo
-description for your terminal, it will fall back to the termcap file supplied
-with your system (which the ncurses package installation leaves strictly
-alone).
+--enable-termcap option enabled, and the ncurses library cannot find a
+terminfo description for your terminal, it will fall back to the termcap file
+supplied with your system (which the ncurses package installation leaves
+strictly alone).
The utilities are as follows:
@@ -149,7 +150,7 @@ help you systematically exercise the library functions.
AUTHORS:
-Pavel Curtis:
+Pavel Curtis:
wrote the original ncurses
Zeyd M. Ben-Halim:
@@ -176,8 +177,8 @@ Eric S. Raymond:
xterm mouse support, and the ncurses test program.
Juergen Pfeifer
- The menu and form libraries, C++ bindings for ncurses, menus, forms and
- panels, as well as the Ada95 binding. Ongoing support for panel.
+ The menu and form libraries, C++ bindings for ncurses, menus, forms
+ and panels, as well as the Ada95 binding. Ongoing support for panel.
CONTRIBUTORS:
@@ -216,3 +217,5 @@ BUGS:
See the INSTALL file for bug and developer-list addresses.
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 fc=78
diff --git a/README.emx b/README.emx
index c48b312c1979..666eaec73647 100644
--- a/README.emx
+++ b/README.emx
@@ -1,5 +1,5 @@
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey --
+-- Copyright 2020,2021 Thomas E. Dickey --
-- Copyright 1998-2006,2018 Free Software Foundation, Inc. --
-- --
-- Permission is hereby granted, free of charge, to any person obtaining a --
@@ -26,7 +26,7 @@
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
--- $Id: README.emx,v 1.11 2020/02/02 23:34:34 tom Exp $
+-- $Id: README.emx,v 1.12 2021/06/17 21:20:30 tom Exp $
-- Author: Thomas Dickey
-------------------------------------------------------------------------------
@@ -34,7 +34,7 @@ You can build ncurses on OS/2 in the EMX environment. But you must build and
acquire tools. Not all of the tools distributed with EMX work properly, and
some additional ones are required.
-First, the configure script distributed with ncurses will not run as-is in EMX.
+First, the configure script distributed with ncurses will not run as-is in EMX.
You can generate a new one if you have autoconf built for EMX. You will need
the EMX development tools, of course. Get these programs to start:
@@ -65,7 +65,7 @@ may fix these problems:
+ I also built from sources (because the distributed binaries did not
work) the cmp, diff programs.
-
+
Other required utilities such as ar, cat, chmod, cp, gawk, grep, mv,
ls, rm, mkdir, sed, sort and tr worked.
diff --git a/VERSION b/VERSION
index f8f03afcea5f..8ebef8fe8eb8 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-5:0:10 6.2 20210220
+5:0:10 6.5 20240427
diff --git a/aclocal.m4 b/aclocal.m4
index d498939330c1..1c2b788bf1ff 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,5 +1,5 @@
dnl***************************************************************************
-dnl Copyright 2018-2020,2021 Thomas E. Dickey *
+dnl Copyright 2018-2023,2024 Thomas E. Dickey *
dnl Copyright 1998-2017,2018 Free Software Foundation, Inc. *
dnl *
dnl Permission is hereby granted, free of charge, to any person obtaining a *
@@ -29,7 +29,7 @@ dnl***************************************************************************
dnl
dnl Author: Thomas E. Dickey 1995-on
dnl
-dnl $Id: aclocal.m4,v 1.950 2021/01/26 23:45:12 tom Exp $
+dnl $Id: aclocal.m4,v 1.1069 2024/03/30 22:15:45 tom Exp $
dnl Macros used in NCURSES auto-configuration script.
dnl
dnl These macros are maintained separately from NCURSES. The copyright on
@@ -42,7 +42,7 @@ dnl https://invisible-island.net/autoconf/my-autoconf.html
dnl
dnl ---------------------------------------------------------------------------
dnl ---------------------------------------------------------------------------
-dnl AM_LANGINFO_CODESET version: 6 updated: 2021/01/01 16:53:59
+dnl AM_LANGINFO_CODESET version: 7 updated: 2023/01/11 04:05:23
dnl -------------------
dnl Inserted as requested by gettext 0.10.40
dnl File from /usr/share/aclocal
@@ -54,7 +54,9 @@ 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 <langinfo.h>],
+ [AC_TRY_LINK([
+$ac_includes_default
+#include <langinfo.h>],
[char* cs = nl_langinfo(CODESET); (void)cs],
am_cv_langinfo_codeset=yes,
am_cv_langinfo_codeset=no)
@@ -65,37 +67,57 @@ AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
fi
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_ABI_DEFAULTS version: 2 updated: 2015/06/06 13:49:58
+dnl CF_ABI_DEFAULTS version: 5 updated: 2023/10/21 08:54:23
dnl ---------------
dnl Provide configure-script defaults for different ncurses ABIs.
AC_DEFUN([CF_ABI_DEFAULTS],[
AC_REQUIRE([CF_NCURSES_WITH_ABI_VERSION])
-case x$cf_cv_abi_version in
+
+# ABI 5 defaults:
+cf_dft_ccharw_max=5
+cf_dft_chtype=auto
+cf_dft_ext_colors=no
+cf_dft_ext_const=no
+cf_dft_ext_mouse=no
+cf_dft_ext_putwin=no
+cf_dft_ext_spfuncs=no
+cf_dft_filter_syms=no
+cf_dft_interop=no
+cf_dft_mmask_t=auto
+cf_dft_opaque_curses=no
+cf_dft_ordinate_type=short
+cf_dft_signed_char=no
+cf_dft_tparm_arg=long
+cf_dft_widec=no
+cf_dft_with_lp64=no
+
+# ABI 6 default differences from ABI 5:
+case x$cf_cv_abi_default in
(x[[6789]])
+ cf_dft_chtype=uint32_t
cf_dft_ext_colors=yes
cf_dft_ext_const=yes
cf_dft_ext_mouse=yes
cf_dft_ext_putwin=yes
cf_dft_ext_spfuncs=yes
cf_dft_filter_syms=yes
- cf_dft_chtype=uint32_t
- cf_dft_mmask_t=uint32_t
cf_dft_interop=yes
+ cf_dft_mmask_t=uint32_t
+ cf_dft_opaque_curses=yes
cf_dft_tparm_arg=intptr_t
+ cf_dft_widec=yes
cf_dft_with_lp64=yes
;;
-(*)
- cf_dft_ext_colors=no
- cf_dft_ext_const=no
- cf_dft_ext_mouse=no
- cf_dft_ext_putwin=no
- cf_dft_ext_spfuncs=no
- cf_dft_filter_syms=no
- cf_dft_chtype=auto
- cf_dft_mmask_t=auto
- cf_dft_interop=no
- cf_dft_tparm_arg=long
- cf_dft_with_lp64=no
+esac
+
+# ABI 7 default differences from ABI 6:
+case x$cf_cv_abi_default in
+(x[[789]])
+ cf_dft_ccharw_max=6
+ cf_dft_mmask_t=uint64_t
+ cf_dft_ordinate_type=int
+ cf_dft_signed_char=yes
+ # also: remove the wgetch-events feature in ABI 7
;;
esac
])dnl
@@ -264,9 +286,9 @@ CXXFLAGS="$CFLAGS"
CFLAGS="$cf_save_CXXFLAGS"
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_ADD_INCDIR version: 16 updated: 2020/12/31 20:19:42
+dnl CF_ADD_INCDIR version: 17 updated: 2021/09/04 06:35:04
dnl -------------
-dnl Add an include-directory to $CPPFLAGS. Don't add /usr/include, since it's
+dnl Add an include-directory to $CPPFLAGS. Don't add /usr/include, since it is
dnl redundant. We don't normally need to add -I/usr/local/include for gcc,
dnl but old versions (and some misinstalled ones) need that. To make things
dnl worse, gcc 3.x may give error messages if -I/usr/local/include is added to
@@ -415,6 +437,25 @@ ifelse([$5],NONE,,[{ test -z "$5" || test "x$5" = xNONE || test "x$4" != "x$5";
}
])dnl
dnl ---------------------------------------------------------------------------
+dnl CF_APPEND_CFLAGS version: 3 updated: 2021/09/05 17:25:40
+dnl ----------------
+dnl Use CF_ADD_CFLAGS after first checking for potential redefinitions.
+dnl $1 = flags to add
+dnl $2 = if given makes this macro verbose.
+define([CF_APPEND_CFLAGS],
+[
+for cf_add_cflags in $1
+do
+ case "x$cf_add_cflags" in
+ (x-[[DU]]*)
+ CF_REMOVE_CFLAGS($cf_add_cflags,CFLAGS,[$2])
+ CF_REMOVE_CFLAGS($cf_add_cflags,CPPFLAGS,[$2])
+ ;;
+ esac
+ CF_ADD_CFLAGS([$cf_add_cflags],[$2])
+done
+])dnl
+dnl ---------------------------------------------------------------------------
dnl CF_APPEND_TEXT version: 1 updated: 2017/02/25 18:58:55
dnl --------------
dnl use this macro for appending text without introducing an extra blank at
@@ -557,7 +598,7 @@ AC_DEFUN([CF_AWK_BIG_PRINTF],
esac
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_BOOL_DECL version: 8 updated: 2004/01/30 15:51:18
+dnl CF_BOOL_DECL version: 9 updated: 2023/12/03 09:21:34
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
@@ -572,13 +613,13 @@ AC_DEFUN([CF_BOOL_DECL],
AC_MSG_CHECKING(if we should include stdbool.h)
AC_CACHE_VAL(cf_cv_header_stdbool_h,[
- AC_TRY_COMPILE([],[bool foo = false],
+ AC_TRY_COMPILE([],[bool foo = false; (void)foo],
[cf_cv_header_stdbool_h=0],
[AC_TRY_COMPILE([
#ifndef __BEOS__
#include <stdbool.h>
#endif
-],[bool foo = false],
+],[bool foo = false; (void)foo],
[cf_cv_header_stdbool_h=1],
[cf_cv_header_stdbool_h=0])])])
@@ -593,7 +634,7 @@ AC_CACHE_VAL(ifelse($1,,cf_cv_builtin_bool,[$1]),[
AC_TRY_COMPILE([
#include <stdio.h>
#include <sys/types.h>
-],[bool x = false],
+],[bool x = false; (void)x],
[ifelse($1,,cf_cv_builtin_bool,[$1])=1],
[ifelse($1,,cf_cv_builtin_bool,[$1])=0])
])
@@ -604,18 +645,17 @@ else AC_MSG_RESULT(no)
fi
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_BOOL_SIZE version: 17 updated: 2020/10/24 19:48:55
+dnl CF_BOOL_SIZE version: 20 updated: 2023/02/18 17:41:25
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 Don't bother looking for bool.h, since it has been deprecated.
dnl
dnl If the current compiler is C rather than C++, we get the bool definition
dnl from <stdbool.h>.
AC_DEFUN([CF_BOOL_SIZE],
[
AC_CHECK_SIZEOF(bool,,[
-#include <stdlib.h>
-#include <stdio.h>
+$ac_includes_default
#if defined(__cplusplus)
@@ -639,8 +679,7 @@ AC_CHECK_SIZEOF(bool,,[
AC_CACHE_CHECK(for type of bool, cf_cv_type_of_bool,[
rm -f cf_test.out
AC_TRY_RUN([
-#include <stdlib.h>
-#include <stdio.h>
+$ac_includes_default
#if defined(__cplusplus)
@@ -702,7 +741,7 @@ if test "$cf_cv_type_of_bool" = unknown ; then
fi
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_BUILD_CC version: 9 updated: 2021/01/02 09:31:20
+dnl CF_BUILD_CC version: 11 updated: 2022/12/04 15:40:08
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
@@ -768,7 +807,32 @@ if test "$cross_compiling" = yes ; then
: ${BUILD_CC:='${CC}'}
- if { test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '${CC}'; } ; then
+ AC_MSG_CHECKING(if the build-compiler "$BUILD_CC" works)
+
+ cf_save_crossed=$cross_compiling
+ cf_save_ac_link=$ac_link
+ cross_compiling=no
+ cf_build_cppflags=$BUILD_CPPFLAGS
+ test "$cf_build_cppflags" = "#" && cf_build_cppflags=
+ ac_link='$BUILD_CC -o "conftest$ac_exeext" $BUILD_CFLAGS $cf_build_cppflags $BUILD_LDFLAGS "conftest.$ac_ext" $BUILD_LIBS >&AS_MESSAGE_LOG_FD'
+
+ AC_TRY_RUN([#include <stdio.h>
+ int main(int argc, char *argv[])
+ {
+ ${cf_cv_main_return:-return}(argc < 0 || argv == 0 || argv[0] == 0);
+ }
+ ],
+ cf_ok_build_cc=yes,
+ cf_ok_build_cc=no,
+ cf_ok_build_cc=unknown)
+
+ cross_compiling=$cf_save_crossed
+ ac_link=$cf_save_ac_link
+
+ AC_MSG_RESULT($cf_ok_build_cc)
+
+ if test "$cf_ok_build_cc" != yes
+ then
AC_MSG_ERROR([Cross-build requires two compilers.
Use --with-build-cc to specify the native compiler.])
fi
@@ -794,7 +858,45 @@ AC_SUBST(BUILD_EXEEXT)
AC_SUBST(BUILD_OBJEXT)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_CC_ENV_FLAGS version: 10 updated: 2020/12/31 18:40:20
+dnl CF_C11_NORETURN version: 4 updated: 2023/02/18 17:41:25
+dnl ---------------
+AC_DEFUN([CF_C11_NORETURN],
+[
+AC_MSG_CHECKING(if you want to use C11 _Noreturn feature)
+CF_ARG_ENABLE(stdnoreturn,
+ [ --enable-stdnoreturn enable C11 _Noreturn feature for diagnostics],
+ [enable_stdnoreturn=yes],
+ [enable_stdnoreturn=no])
+AC_MSG_RESULT($enable_stdnoreturn)
+
+if test $enable_stdnoreturn = yes; then
+AC_CACHE_CHECK([for C11 _Noreturn feature], cf_cv_c11_noreturn,
+ [AC_TRY_COMPILE([
+$ac_includes_default
+#include <stdnoreturn.h>
+static _Noreturn void giveup(void) { exit(0); }
+ ],
+ [if (feof(stdin)) giveup()],
+ cf_cv_c11_noreturn=yes,
+ cf_cv_c11_noreturn=no)
+ ])
+else
+ cf_cv_c11_noreturn=no,
+fi
+
+if test "$cf_cv_c11_noreturn" = yes; then
+ AC_DEFINE(HAVE_STDNORETURN_H, 1,[Define if <stdnoreturn.h> header is available and working])
+ AC_DEFINE_UNQUOTED(STDC_NORETURN,_Noreturn,[Define if C11 _Noreturn keyword is supported])
+ HAVE_STDNORETURN_H=1
+else
+ HAVE_STDNORETURN_H=0
+fi
+
+AC_SUBST(HAVE_STDNORETURN_H)
+AC_SUBST(STDC_NORETURN)
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_CC_ENV_FLAGS version: 11 updated: 2023/02/20 11:15:46
dnl ---------------
dnl Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content
dnl into CC. This will not help with broken scripts that wrap the compiler
@@ -835,7 +937,7 @@ case "$CC" in
AC_MSG_WARN(your environment uses the CC variable to hold CFLAGS/CPPFLAGS options)
# humor him...
cf_prog=`echo "$CC" | sed -e 's/ / /g' -e 's/[[ ]]* / /g' -e 's/[[ ]]*[[ ]]-[[^ ]].*//'`
- cf_flags=`echo "$CC" | ${AWK:-awk} -v prog="$cf_prog" '{ printf("%s", [substr]([$]0,1+length(prog))); }'`
+ cf_flags=`echo "$CC" | sed -e "s%^$cf_prog%%"`
CC="$cf_prog"
for cf_arg in $cf_flags
do
@@ -913,14 +1015,14 @@ AC_MSG_RESULT($includedir)
fi
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_CGETENT version: 6 updated: 2017/01/21 11:06:25
+dnl CF_CGETENT version: 7 updated: 2023/02/18 17:41:25
dnl ----------
dnl Check if the terminal-capability database functions are available. If not,
dnl ncurses has a much-reduced version.
AC_DEFUN([CF_CGETENT],[
AC_CACHE_CHECK(for terminal-capability database functions,cf_cv_cgetent,[
AC_TRY_LINK([
-#include <stdlib.h>],[
+$ac_includes_default],[
char temp[128];
char *buf = temp;
char *db_array = temp;
@@ -938,7 +1040,7 @@ then
AC_CACHE_CHECK(if cgetent uses const parameter,cf_cv_cgetent_const,[
AC_TRY_LINK([
#pragma GCC diagnostic error "-Wincompatible-pointer-types-discards-qualifiers"
-#include <stdlib.h>],[
+$ac_includes_default],[
char temp[128];
char *buf = temp;
#ifndef _NETBSD_SOURCE /* given, since April 2004 in stdlib.h */
@@ -993,7 +1095,7 @@ if test ".$system_name" != ".$cf_cv_system_name" ; then
fi
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_CHECK_ENVIRON version: 3 updated: 2010/05/26 16:44:57
+dnl CF_CHECK_ENVIRON version: 5 updated: 2023/02/18 17:41:25
dnl ----------------
dnl Check for data that is usually declared in <unistd.h>, e.g., the 'environ'
dnl variable. Define a DECL_xxx symbol if we must declare it ourselves.
@@ -1004,11 +1106,8 @@ AC_DEFUN([CF_CHECK_ENVIRON],
[
AC_CACHE_CHECK(if external $1 is declared, cf_cv_dcl_$1,[
AC_TRY_COMPILE([
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#include <unistd.h> ],
- ifelse([$2],,int,[$2]) x = (ifelse([$2],,int,[$2])) $1,
+$ac_includes_default],
+ ifelse([$2],,void*,[$2]) x = (ifelse([$2],,void*,[$2])) $1; (void)x,
[cf_cv_dcl_$1=yes],
[cf_cv_dcl_$1=no])
])
@@ -1022,7 +1121,7 @@ fi
CF_CHECK_EXTERN_DATA($1,ifelse([$2],,int,[$2]))
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_CHECK_ERRNO version: 13 updated: 2020/03/10 18:53:47
+dnl CF_CHECK_ERRNO version: 14 updated: 2023/02/18 17:41:25
dnl --------------
dnl Check for data that is usually declared in <stdio.h> or <errno.h>, e.g.,
dnl the 'errno' variable. Define a DECL_xxx symbol if we must declare it
@@ -1034,11 +1133,7 @@ AC_DEFUN([CF_CHECK_ERRNO],
[
AC_CACHE_CHECK(if external $1 is declared, cf_cv_dcl_$1,[
AC_TRY_COMPILE([
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#include <stdio.h>
-#include <sys/types.h>
+$ac_includes_default
#include <errno.h> ],
ifelse([$2],,int,[$2]) x = (ifelse([$2],,int,[$2])) $1; (void)x,
[cf_cv_dcl_$1=yes],
@@ -1054,10 +1149,10 @@ fi
CF_CHECK_EXTERN_DATA($1,ifelse([$2],,int,[$2]))
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_CHECK_EXTERN_DATA version: 4 updated: 2015/04/18 08:56:57
+dnl CF_CHECK_EXTERN_DATA version: 5 updated: 2021/09/04 06:35:04
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 we can modify it, it is real enough.
dnl $1 = the name to check
dnl $2 = its type
AC_DEFUN([CF_CHECK_EXTERN_DATA],
@@ -1101,7 +1196,7 @@ __attribute__ ((visibility("default"))) int somefunc() {return 42;}
])
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_CHECK_GETENV version: 2 updated: 2021/01/02 17:09:14
+dnl CF_CHECK_GETENV version: 4 updated: 2023/12/03 10:18:09
dnl ---------------
dnl Check if repeated getenv calls return the same pointer, e.g., it does not
dnl discard the previous pointer when returning a new one.
@@ -1112,11 +1207,7 @@ AC_CHECK_FUNC( getenv, ,, AC_MSG_ERROR(getenv not found) )
AC_CHECK_FUNCS( putenv setenv strdup )
AC_CACHE_CHECK(if getenv returns consistent values,cf_cv_consistent_getenv,[
AC_TRY_RUN([
-#include <stdlib.h>
-#include <unistd.h>
-#include <stdio.h>
-#include <string.h>
-#include <sys/types.h>
+$ac_includes_default
#if defined(HAVE_ENVIRON) && defined(DECL_ENVIRON) && !defined(environ)
extern char **environ; /* POSIX, but some systems are not... */
@@ -1182,7 +1273,7 @@ int main(void)
}
}
} while (found);
- sprintf(value, "%lu:%p", (unsigned long) k, &mynames[j]);
+ sprintf(value, "%lu:%p", (unsigned long) k, (void*)&mynames[j]);
set_value(name, value);
mynames[j] = str_alloc(name);
myvalues[j] = str_alloc(value);
@@ -1289,28 +1380,72 @@ if test "$cf_cv_check_gpm_wgetch" != yes ; then
fi
])])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_CHECK_LIBTOOL_VERSION version: 1 updated: 2013/04/06 18:03:09
+dnl CF_CHECK_LIBSSP version: 1 updated: 2021/10/30 10:40:19
+dnl ---------------
+dnl Check if libssp is needed, e.g., to work around misconfigured libraries
+dnl used in cross-compiling to MinGW.
+AC_DEFUN([CF_CHECK_LIBSSP],[
+AC_CACHE_CHECK(if ssp library is needed,cf_cv_need_libssp,[
+AC_TRY_LINK([
+#include <sys/types.h>
+#include <dirent.h>
+],[
+ DIR *dp = opendir(".");
+],cf_cv_need_libssp=no,[
+ cf_save_LIBS="$LIBS"
+ LIBS="$LIBS -lssp"
+ AC_TRY_LINK([
+#include <sys/types.h>
+#include <dirent.h>
+ ],[
+ DIR *dp = opendir(".");
+ ],cf_cv_need_libssp=yes,
+ cf_cv_need_libssp=maybe)
+ LIBS="$cf_save_LIBS"
+])dnl
+])
+
+if test "x$cf_cv_need_libssp" = xyes
+then
+ CF_ADD_LIB(ssp)
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_CHECK_LIBTOOL_VERSION version: 2 updated: 2021/05/01 16:24:34
dnl ------------------------
dnl Show the version of libtool
dnl
dnl Save the version in a cache variable - this is not entirely a good thing,
dnl but the version string from libtool is very ugly, and for bug reports it
dnl might be useful to have the original string.
+dnl
+dnl There is an imitation in OpenBSD, which has no apparent use other than to
+dnl deny that it is GNU libtool. Just ignore it.
AC_DEFUN([CF_CHECK_LIBTOOL_VERSION],[
if test -n "$LIBTOOL" && test "$LIBTOOL" != none
then
AC_MSG_CHECKING(version of $LIBTOOL)
CF_LIBTOOL_VERSION
AC_MSG_RESULT($cf_cv_libtool_version)
- if test -z "$cf_cv_libtool_version" ; then
- AC_MSG_ERROR(This is not GNU libtool)
+ if test -n "$cf_cv_libtool_version"
+ then
+ cf_check_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '/^$/d' -e 's,[[()]],...,g' -e 's,[[ ]],-,g' -e '2,$d'`
+ case "x$cf_check_libtool_version" in
+ (*...GNU-libtool...*)
+ ;;
+ (*)
+ AC_MSG_ERROR(This is not GNU libtool)
+ ;;
+ esac
+ else
+ AC_MSG_ERROR(No version found for $LIBTOOL)
fi
else
AC_MSG_ERROR(GNU libtool has not been found)
fi
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_CHECK_WCHAR_H version: 3 updated: 2021/01/01 13:31:04
+dnl CF_CHECK_WCHAR_H version: 5 updated: 2023/12/03 09:21:34
dnl ----------------
dnl Check if wchar.h can be used, i.e., without defining _XOPEN_SOURCE_EXTENDED
AC_DEFUN([CF_CHECK_WCHAR_H],[
@@ -1321,7 +1456,7 @@ wctype.h \
AC_CACHE_CHECK(if wchar.h can be used as is,cf_cv_wchar_h_okay,[
AC_TRY_COMPILE(
[
-#include <stdlib.h>
+$ac_includes_default
#ifdef HAVE_WCHAR_H
#include <wchar.h>
#endif
@@ -1330,7 +1465,7 @@ AC_TRY_COMPILE(
#endif
],[
wint_t foo = 0;
- int bar = iswpunct(foo)],
+ int bar = iswpunct(foo); (void) bar],
[cf_cv_wchar_h_okay=yes],
[cf_cv_wchar_h_okay=no])])
@@ -1340,7 +1475,7 @@ then
fi
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_CHECK_WCWIDTH_GRAPHICS version: 2 updated: 2021/01/02 17:09:14
+dnl CF_CHECK_WCWIDTH_GRAPHICS version: 4 updated: 2023/12/03 10:17:07
dnl -------------------------
dnl Most "modern" terminal emulators are based to some degree on VT100, and
dnl should support line-drawing. Even with Unicode. There is a problem.
@@ -1438,8 +1573,9 @@ cat >conftest.in <<CF_EOF
0x256c large plus or crossover
CF_EOF
AC_TRY_RUN([
+$ac_includes_default
+
#include <locale.h>
-#include <stdio.h>
#include <wchar.h>
#define MY_LEN 80
@@ -1448,7 +1584,7 @@ int
main(void)
{
FILE *fp;
- int value;
+ unsigned value;
char buffer[MY_LEN + 1];
char notes[MY_LEN + 1];
int totals = 0;
@@ -1464,9 +1600,9 @@ main(void)
fprintf(stderr, "\\t%s", buffer);
} else if (sscanf(buffer, "%x %s", &value, notes) == 2) {
++totals;
- if (wcwidth(value) == 1)
+ if (wcwidth((int)value) == 1)
++passed;
- fprintf(stderr, "%d\\t%s", wcwidth(value), buffer);
+ fprintf(stderr, "%d\\t%s", wcwidth((int)value), buffer);
} else {
fprintf(stderr, "?\\t%s", buffer);
}
@@ -1483,7 +1619,7 @@ main(void)
])
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_CLANG_COMPILER version: 8 updated: 2021/01/01 13:31:04
+dnl CF_CLANG_COMPILER version: 9 updated: 2023/02/18 17:41:25
dnl -----------------
dnl Check if the given compiler is really clang. clang's C driver defines
dnl __GNUC__ (fooling the configure script into setting $GCC to yes) but does
@@ -1505,7 +1641,7 @@ if test "$ifelse([$1],,[$1],GCC)" = yes ; then
AC_TRY_COMPILE([],[
#ifdef __clang__
#else
-make an error
+#error __clang__ is not defined
#endif
],[ifelse([$2],,CLANG_COMPILER,[$2])=yes
],[])
@@ -1551,7 +1687,7 @@ if test "x$ifelse([$2],,CLANG_COMPILER,[$2])" = "xyes" ; then
fi
])
dnl ---------------------------------------------------------------------------
-dnl CF_CONST_X_STRING version: 6 updated: 2021/01/01 13:31:04
+dnl CF_CONST_X_STRING version: 8 updated: 2023/12/01 17:22:50
dnl -----------------
dnl The X11R4-X11R6 Xt specification uses an ambiguous String type for most
dnl character-strings.
@@ -1581,11 +1717,12 @@ AC_TRY_COMPILE(
#include <stdlib.h>
#include <X11/Intrinsic.h>
],
-[String foo = malloc(1); (void)foo],[
+[String foo = malloc(1); free((void*)foo)],[
AC_CACHE_CHECK(for X11/Xt const-feature,cf_cv_const_x_string,[
AC_TRY_COMPILE(
[
+#undef _CONST_X_STRING
#define _CONST_X_STRING /* X11R7.8 (perhaps) */
#undef XTSTRINGDEFINES /* X11R5 and later */
#include <stdlib.h>
@@ -1611,6 +1748,42 @@ esac
])
])dnl
dnl ---------------------------------------------------------------------------
+dnl CF_CPP_OVERRIDE version: 1 updated: 2022/08/20 16:07:10
+dnl ---------------
+dnl Check if the C++ compiler accepts the override keyword. This is a C++-11
+dnl feature.
+AC_DEFUN([CF_CPP_OVERRIDE],
+[
+if test -n "$CXX"; then
+AC_CACHE_CHECK(if $CXX accepts override keyword,cf_cv_cpp_override,[
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+ AC_TRY_RUN([
+
+class base
+{
+public:
+ virtual int foo(float x) = 0;
+};
+
+
+class derived: public base
+{
+public:
+ int foo(float x) override { return x != 0.0 ? 1 : 0; }
+};
+
+int main(void) { }
+],
+ [cf_cv_cpp_override=yes],
+ [cf_cv_cpp_override=no],
+ [cf_cv_cpp_override=unknown])
+ AC_LANG_RESTORE
+])
+fi
+test "$cf_cv_cpp_override" = yes && AC_DEFINE(CPP_HAS_OVERRIDE,1,[Define to 1 if C++ has override keyword])
+])dnl
+dnl ---------------------------------------------------------------------------
dnl CF_CPP_PARAM_INIT version: 7 updated: 2017/01/21 11:06:25
dnl -----------------
dnl Check if the C++ compiler accepts duplicate parameter initialization. This
@@ -1812,9 +1985,9 @@ done
AC_SUBST(DIRS_TO_MAKE)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_DISABLE_ECHO version: 13 updated: 2015/04/18 08:56:57
+dnl CF_DISABLE_ECHO version: 14 updated: 2021/09/04 06:35:04
dnl ---------------
-dnl You can always use "make -n" to see the actual options, but it's hard to
+dnl You can always use "make -n" to see the actual options, but it is hard to
dnl pick out/analyze warning messages when the compile-line is long.
dnl
dnl Sets:
@@ -1860,7 +2033,7 @@ CF_ARG_DISABLE(gnat-projects,
AC_MSG_RESULT($enable_gnat_projects)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_DISABLE_LEAKS version: 8 updated: 2021/01/05 20:05:09
+dnl CF_DISABLE_LEAKS version: 9 updated: 2021/04/03 16:41:50
dnl ----------------
dnl Combine no-leak checks with the libraries or tools that are used for the
dnl checks.
@@ -1873,9 +2046,9 @@ 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],
- [enable_leaks=no],
+ [enable_leaks=$enableval],
[enable_leaks=yes])
-dnl TODO - drop with_no_leaks
+dnl with_no_leaks is more readable...
if test "x$enable_leaks" = xno; then with_no_leaks=yes; else with_no_leaks=no; fi
AC_MSG_RESULT($with_no_leaks)
@@ -1970,7 +2143,7 @@ fi
AC_SUBST(BROKEN_LINKER)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_ENABLE_PC_FILES version: 13 updated: 2015/11/01 05:27:39
+dnl CF_ENABLE_PC_FILES version: 16 updated: 2021/11/20 12:48:37
dnl ------------------
dnl This is the "--enable-pc-files" option, which is available if there is a
dnl pkg-config configuration on the local machine.
@@ -1995,11 +2168,12 @@ if test "x$enable_pc_files" != xno
then
MAKE_PC_FILES=
case "x$PKG_CONFIG_LIBDIR" in
- (xno|xyes)
+ (xno|xnone|xyes|x)
AC_MSG_WARN(no PKG_CONFIG_LIBDIR was found)
;;
(*)
- CF_PATH_SYNTAX(PKG_CONFIG_LIBDIR)
+ cf_pkg_config_libdir="$PKG_CONFIG_LIBDIR"
+ CF_PATH_SYNTAX(cf_pkg_config_libdir)
;;
esac
else
@@ -2100,7 +2274,7 @@ AC_DEFUN([CF_ERRNO],
CF_CHECK_ERRNO(errno)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_ETIP_DEFINES version: 6 updated: 2021/01/02 17:09:14
+dnl CF_ETIP_DEFINES version: 7 updated: 2023/10/28 11:59:01
dnl ---------------
dnl Test for conflicting definitions of exception in gcc 2.8.0, etc., between
dnl math.h and builtin.h, only for ncurses
@@ -2132,7 +2306,7 @@ AC_TRY_COMPILE([
],[])
done
done
-AC_MSG_RESULT($cf_result)
+AC_MSG_RESULT([${cf_result:-(none)}])
CXXFLAGS="$cf_save_CXXFLAGS"
])
dnl ---------------------------------------------------------------------------
@@ -2320,7 +2494,7 @@ AC_DEFUN([CF_FIXUP_ADAFLAGS],[
AC_MSG_RESULT($ADAFLAGS)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_FIX_WARNINGS version: 3 updated: 2020/12/31 18:40:20
+dnl CF_FIX_WARNINGS version: 4 updated: 2021/12/16 18:22:31
dnl ---------------
dnl Warning flags do not belong in CFLAGS, CPPFLAGS, etc. Any of gcc's
dnl "-Werror" flags can interfere with configure-checks. Those go into
@@ -2332,11 +2506,13 @@ if test "$GCC" = yes || test "$GXX" = yes
then
case [$]$1 in
(*-Werror=*)
- CF_VERBOSE(repairing $1: [$]$1)
cf_temp_flags=
for cf_temp_scan in [$]$1
do
case "x$cf_temp_scan" in
+ (x-Werror=format*)
+ CF_APPEND_TEXT(cf_temp_flags,$cf_temp_scan)
+ ;;
(x-Werror=*)
CF_APPEND_TEXT(EXTRA_CFLAGS,$cf_temp_scan)
;;
@@ -2345,16 +2521,20 @@ then
;;
esac
done
- $1="$cf_temp_flags"
- CF_VERBOSE(... fixed [$]$1)
- CF_VERBOSE(... extra $EXTRA_CFLAGS)
+ if test "x[$]$1" != "x$cf_temp_flags"
+ then
+ CF_VERBOSE(repairing $1: [$]$1)
+ $1="$cf_temp_flags"
+ CF_VERBOSE(... fixed [$]$1)
+ CF_VERBOSE(... extra $EXTRA_CFLAGS)
+ fi
;;
esac
fi
AC_SUBST(EXTRA_CFLAGS)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_FOPEN_BIN_R version: 2 updated: 2019/12/31 08:53:54
+dnl CF_FOPEN_BIN_R version: 3 updated: 2023/01/05 18:05:46
dnl --------------
dnl Check if fopen works when the "b" (binary) flag is added to the mode
dnl parameter. POSIX ignores the "b", which c89 specified. Some very old
@@ -2362,8 +2542,10 @@ dnl systems do not accept it.
AC_DEFUN([CF_FOPEN_BIN_R],[
AC_CACHE_CHECK(if fopen accepts explicit binary mode,cf_cv_fopen_bin_r,[
AC_TRY_RUN([
-#include <stdio.h>
-int main(void) {
+$ac_includes_default
+
+int main(void)
+{
FILE *fp = fopen("conftest.tmp", "wb");
int rc = 0;
if (fp != 0) {
@@ -2441,7 +2623,91 @@ else
fi
])
dnl ---------------------------------------------------------------------------
-dnl CF_FUNC_MEMMOVE version: 9 updated: 2017/01/21 11:06:25
+dnl CF_FUNC_GETTIME version: 2 updated: 2023/02/25 08:45:56
+dnl ---------------
+dnl Check for gettimeofday or clock_gettime. In 2023, the former is still more
+dnl widely supported, but "deprecated" (2008), so we will use the latter if it
+dnl is available, to reduce compiler warnings.
+AC_DEFUN([CF_FUNC_GETTIME],[
+AC_CACHE_CHECK(for clock_gettime,cf_cv_func_clock_gettime,[
+ AC_TRY_LINK([#include <time.h>],
+ [struct timespec ts;
+ int rc = clock_gettime(CLOCK_REALTIME, &ts); (void) rc; (void)ts],
+ [cf_cv_func_clock_gettime=yes],
+ [cf_cv_func_clock_gettime=no])
+])
+
+if test "$cf_cv_func_clock_gettime" = yes
+then
+ AC_DEFINE(HAVE_CLOCK_GETTIME,1,[Define to 1 if we have clock_gettime function])
+else
+AC_CHECK_FUNC(gettimeofday,
+ AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define to 1 if we have gettimeofday function]),[
+
+AC_CHECK_LIB(bsd, gettimeofday,
+ AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define to 1 if we have gettimeofday function])
+ CF_ADD_LIB(bsd))])dnl CLIX: bzero, select, gettimeofday
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_FUNC_GETTTYNAM version: 2 updated: 2023/01/05 18:06:28
+dnl -----------------
+dnl Check if the 4.3BSD function getttyname exists, as well as if <ttyent.h>
+dnl defines the _PATH_TTYS symbol. If the corresponding file exists, but the
+dnl other checks fail, just define HAVE_PATH_TTYS.
+AC_DEFUN([CF_FUNC_GETTTYNAM],[
+AC_CACHE_CHECK(if _PATH_TTYS is defined in ttyent.h,cf_cv_PATH_TTYS,[
+AC_TRY_COMPILE([
+#include <stdio.h>
+#include <ttyent.h>],[
+FILE *fp = fopen(_PATH_TTYS, "r"); (void)fp],
+ [cf_cv_PATH_TTYS=yes],
+ [cf_cv_PATH_TTYS=no])])
+
+if test $cf_cv_PATH_TTYS = no
+then
+ for cf_ttys in /etc/ttytype /etc/ttys
+ do
+ if test -f $cf_ttys
+ then
+ cf_cv_PATH_TTYS=maybe
+ AC_DEFINE(_PATH_TTYS,$cf_ttys,[define to pathname of file containing mapping from tty name to terminal type])
+ break
+ fi
+ done
+fi
+
+if test $cf_cv_PATH_TTYS != no
+then
+ AC_CACHE_CHECK(if _PATH_TTYS file exists,cf_cv_have_PATH_TTYS,[
+ AC_TRY_RUN([
+$ac_includes_default
+
+#include <ttyent.h>
+
+int main(void) {
+ FILE *fp = fopen(_PATH_TTYS, "r");
+ ${cf_cv_main_return:-return} (fp == 0);
+}],
+ [cf_cv_have_PATH_TTYS=yes],
+ [cf_cv_have_PATH_TTYS=no],
+ [cf_cv_have_PATH_TTYS=unknown])])
+ test "$cf_cv_have_PATH_TTYS" = no && cf_cv_PATH_TTYS=no
+fi
+
+if test $cf_cv_PATH_TTYS != no
+then
+ AC_DEFINE(HAVE_PATH_TTYS,1,[define to 1 if system can map tty name to terminal type])
+ AC_CACHE_CHECK(for getttynam,cf_cv_func_getttynam,[
+ AC_TRY_LINK([#include <ttyent.h>],
+ [struct ttyent *fp = getttynam("/dev/tty"); (void)fp],
+ [cf_cv_func_getttynam=yes],
+ [cf_cv_func_getttynam=no])])
+ test "$cf_cv_func_getttynam" = yes && AC_DEFINE(HAVE_GETTTYNAM)
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_FUNC_MEMMOVE version: 10 updated: 2023/01/05 18:51:28
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.
@@ -2451,6 +2717,8 @@ AC_CHECK_FUNC(memmove,,[
AC_CHECK_FUNC(bcopy,[
AC_CACHE_CHECK(if bcopy does overlapping moves,cf_cv_good_bcopy,[
AC_TRY_RUN([
+$ac_includes_default
+
int main(void) {
static char data[] = "abcdefghijklmnopqrstuwwxyz";
char temp[40];
@@ -2472,14 +2740,15 @@ int main(void) {
fi
])])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_FUNC_NANOSLEEP version: 5 updated: 2017/01/21 11:06:25
+dnl CF_FUNC_NANOSLEEP version: 6 updated: 2023/01/05 18:51:33
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 <stdio.h>
+$ac_includes_default
+
#include <errno.h>
#include <time.h>
@@ -2506,7 +2775,7 @@ int main(void) {
test "$cf_cv_func_nanosleep" = "yes" && AC_DEFINE(HAVE_NANOSLEEP,1,[Define to 1 if we have nanosleep()])
])
dnl ---------------------------------------------------------------------------
-dnl CF_FUNC_OPENPTY version: 6 updated: 2021/01/01 13:31:04
+dnl CF_FUNC_OPENPTY version: 7 updated: 2023/12/03 09:21:34
dnl ---------------
dnl Check for openpty() function, along with <pty.h> header. It may need the
dnl "util" library as well.
@@ -2523,6 +2792,7 @@ AC_CACHE_CHECK(for openpty header,cf_cv_func_openpty,[
],[
int x = openpty((int *)0, (int *)0, (char *)0,
(struct termios *)0, (struct winsize *)0);
+ (void)x;
],[
cf_cv_func_openpty=$cf_header
break
@@ -2534,7 +2804,7 @@ AC_CACHE_CHECK(for openpty header,cf_cv_func_openpty,[
])
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_FUNC_POLL version: 10 updated: 2021/01/04 19:13:57
+dnl CF_FUNC_POLL version: 11 updated: 2023/01/05 18:51:40
dnl ------------
dnl See if the poll function really works. Some platforms have poll(), but
dnl it does not work for terminals or files.
@@ -2542,15 +2812,16 @@ AC_DEFUN([CF_FUNC_POLL],[
tty >/dev/null 2>&1 || { AC_CHECK_FUNCS(posix_openpt) }
AC_CACHE_CHECK(if poll really works,cf_cv_working_poll,[
AC_TRY_RUN([
-#include <stdlib.h>
-#include <stdio.h>
-#include <unistd.h>
+$ac_includes_default
+
#include <fcntl.h>
+
#ifdef HAVE_POLL_H
#include <poll.h>
#else
#include <sys/poll.h>
#endif
+
int main(void) {
struct pollfd myfds;
int ret;
@@ -2624,19 +2895,29 @@ tcgetattr(1, &foo);],
test "$cf_cv_have_tcgetattr" = yes && AC_DEFINE(HAVE_TCGETATTR,1,[Define to 1 if we have tcgetattr])
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_FUNC_VSSCANF version: 7 updated: 2021/01/01 13:31:04
+dnl CF_FUNC_VSSCANF version: 8 updated: 2023/12/03 19:09:59
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.
+dnl versions of C. It can often be simulated by other functions on older
+dnl systems (where FILE is not opaque).
AC_DEFUN([CF_FUNC_VSSCANF],
[
AC_CACHE_CHECK(for vsscanf function or workaround,cf_cv_func_vsscanf,[
AC_TRY_LINK([
#include <stdarg.h>
-#include <stdio.h>],[
+#include <stdio.h>
+
+static void
+myfunc(const char *str, const char *fmt, ...)
+{
va_list ap;
- vsscanf("from", "%d", ap)],[cf_cv_func_vsscanf=vsscanf],[
+ va_start(ap, fmt);
+ vsscanf(str, fmt, ap);
+ va_end(ap);
+}
+],[
+ myfunc("55", "%d");
+],[cf_cv_func_vsscanf=vsscanf],[
AC_TRY_LINK([
#include <stdarg.h>
#include <stdio.h>],[
@@ -2669,13 +2950,14 @@ esac
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_GCC_ATTRIBUTES version: 23 updated: 2021/01/03 18:30:50
+dnl CF_GCC_ATTRIBUTES version: 24 updated: 2021/03/20 12:00:25
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.
AC_DEFUN([CF_GCC_ATTRIBUTES],
[AC_REQUIRE([AC_PROG_FGREP])dnl
+AC_REQUIRE([CF_C11_NORETURN])dnl
if test "$GCC" = yes || test "$GXX" = yes
then
@@ -2698,6 +2980,7 @@ then
AC_CHECKING([for $CC __attribute__ directives])
cat > "conftest.$ac_ext" <<EOF
#line __oline__ "${as_me:-configure}"
+#include <stdio.h>
#include "confdefs.h"
#include "conftest.h"
#include "conftest.i"
@@ -2712,8 +2995,8 @@ cat > "conftest.$ac_ext" <<EOF
#define GCC_SCANFLIKE(fmt,var) /*nothing*/
#endif
extern void wow(char *,...) GCC_SCANFLIKE(1,2);
-extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
-extern void foo(void) GCC_NORETURN;
+extern GCC_NORETURN void oops(char *,...) GCC_PRINTFLIKE(1,2);
+extern GCC_NORETURN void foo(void);
int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { (void)argc; (void)argv; return 0; }
EOF
cf_printf_attribute=no
@@ -2780,7 +3063,7 @@ rm -rf ./conftest*
fi
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_GCC_VERSION version: 8 updated: 2019/09/07 13:38:36
+dnl CF_GCC_VERSION version: 9 updated: 2023/03/05 14:30:13
dnl --------------
dnl Find version of gcc, and (because icc/clang pretend to be gcc without being
dnl compatible), attempt to determine if icc/clang is actually used.
@@ -2789,7 +3072,7 @@ AC_REQUIRE([AC_PROG_CC])
GCC_VERSION=none
if test "$GCC" = yes ; then
AC_MSG_CHECKING(version of $CC)
- GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC[[^)]]*) //' -e 's/^.*(Debian[[^)]]*) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
+ GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^[[^(]]*([[^)]][[^)]]*) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
test -z "$GCC_VERSION" && GCC_VERSION=unknown
AC_MSG_RESULT($GCC_VERSION)
fi
@@ -2911,7 +3194,7 @@ rm -rf ./conftest*
AC_SUBST(EXTRA_CFLAGS)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_GETOPT_HEADER version: 7 updated: 2021/01/01 13:31:04
+dnl CF_GETOPT_HEADER version: 8 updated: 2021/06/19 19:16:16
dnl ----------------
dnl Check for getopt's variables which are commonly defined in stdlib.h,
dnl unistd.h or (nonstandard) in getopt.h
@@ -2924,7 +3207,7 @@ for cf_header in stdio.h stdlib.h unistd.h getopt.h
do
AC_TRY_COMPILE([
#include <$cf_header>],
-[int x = optind; char *y = optarg],
+[int x = optind; char *y = optarg; (void)x; (void)y],
[cf_cv_getopt_header=$cf_header
break])
done
@@ -3372,7 +3655,7 @@ if test "$GXX" = yes; then
fi
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_GXX_VERSION version: 8 updated: 2017/02/11 14:48:57
+dnl CF_GXX_VERSION version: 9 updated: 2023/03/05 14:30:13
dnl --------------
dnl Check for version of g++
AC_DEFUN([CF_GXX_VERSION],[
@@ -3380,7 +3663,7 @@ AC_REQUIRE([AC_PROG_CPP])
GXX_VERSION=none
if test "$GXX" = yes; then
AC_MSG_CHECKING(version of ${CXX:-g++})
- GXX_VERSION="`${CXX:-g++} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
+ GXX_VERSION="`${CXX:-g++} --version 2>/dev/null | sed -e '2,$d' -e 's/^[[^(]]*([[^)]][[^)]]*) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
if test -z "$GXX_VERSION"
then
GXX_VERSION=unknown
@@ -3625,7 +3908,7 @@ done
])
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_HASHED_DB_VERSION version: 4 updated: 2014/04/12 16:47:01
+dnl CF_HASHED_DB_VERSION version: 5 updated: 2023/02/18 17:41:25
dnl --------------------
dnl Given that we have the header file for hashed database, find the version
dnl information.
@@ -3646,13 +3929,13 @@ $ac_includes_default
#if $cf_db_version == DB_VERSION_MAJOR
/* ok */
#else
- make an error
+ #error $cf_db_version is not DB_VERSION_MAJOR
#endif
#else
#if $cf_db_version == 1
/* ok: assuming this is DB 1.8.5 */
#else
- make an error
+ #error $cf_db_version is not 1
#endif
#endif
],[DBT *foo = 0],[
@@ -3734,7 +4017,7 @@ CPPFLAGS="-I. $CPPFLAGS"
AC_SUBST(CPPFLAGS)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_INSTALL_OPTS version: 2 updated: 2018/08/18 12:19:21
+dnl CF_INSTALL_OPTS version: 3 updated: 2023/06/03 15:17:30
dnl ---------------
dnl prompt for/fill-in useful install-program options
AC_DEFUN([CF_INSTALL_OPTS],
@@ -3742,6 +4025,7 @@ AC_DEFUN([CF_INSTALL_OPTS],
CF_INSTALL_OPT_S
CF_INSTALL_OPT_P
CF_INSTALL_OPT_O
+CF_INSTALL_OPT_STRIP_PROG
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_INSTALL_OPT_O version: 3 updated: 2020/12/31 20:19:42
@@ -3828,7 +4112,73 @@ fi
AC_SUBST(INSTALL_OPT_S)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_INTEL_COMPILER version: 8 updated: 2021/01/01 16:53:59
+dnl CF_INSTALL_OPT_STRIP_PROG version: 1 updated: 2023/06/03 15:17:30
+dnl -------------------------
+dnl Provide an option for overriding the strip program used in install "-s"
+dnl
+dnl coreutils install provides a --strip-program option
+dnl FreeBSD uses STRIPBIN environment variable, while NetBSD and OpenBSD use
+dnl STRIP environment variable. Other versions of install do not support this.
+AC_DEFUN([CF_INSTALL_OPT_STRIP_PROG],
+[
+AC_REQUIRE([CF_INSTALL_OPT_S])
+if test -n "$INSTALL_OPT_S"
+then
+ AC_MSG_CHECKING(if you want to specify strip-program)
+ AC_ARG_WITH(strip-program,
+ [ --with-strip-program=XX specify program to use when stripping in install],
+ [with_strip_program=$withval],
+ [with_strip_program=no])
+ AC_MSG_RESULT($with_strip_program)
+ if test "$with_strip_program" != no
+ then
+ AC_MSG_CHECKING(if strip-program is supported with this installer)
+ cf_install_program=`echo "$INSTALL" | sed -e 's%[[ ]]*[[ ]]-.%%'`
+ check_install_strip=no
+ if test -f "$cf_install_program"
+ then
+ check_install_version=`"$cf_install_program" --version 2>/dev/null | head -n 1 | grep coreutils`
+ if test -n "$check_install_version"
+ then
+ check_install_strip="option"
+ else
+ for check_strip_variable in STRIPBIN STRIP
+ do
+ if strings "$cf_install_program" | grep "^$check_strip_variable[$]" >/dev/null
+ then
+ check_install_strip="environ"
+ break
+ fi
+ done
+ fi
+ fi
+ AC_MSG_RESULT($check_install_strip)
+ case "$check_install_strip" in
+ (no)
+ AC_MSG_WARN($cf_install_program does not support strip program option)
+ with_strip_program=no
+ ;;
+ (environ)
+ cat >install.tmp <<-CF_EOF
+ #! $SHELL
+ STRIPBIN="$with_strip_program" \\
+ STRIP="$with_strip_program" \\
+ $INSTALL "[$]@"
+ CF_EOF
+ INSTALL="`pwd`/install.tmp"
+ chmod +x "$INSTALL"
+ CF_VERBOSE(created $INSTALL)
+ ;;
+ (option)
+ INSTALL_OPT_S="$INSTALL_OPT_S --strip-program=\"$with_strip_program\""
+ ;;
+ esac
+ fi
+fi
+AC_SUBST(INSTALL_OPT_S)
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_INTEL_COMPILER version: 9 updated: 2023/02/18 17:41:25
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
@@ -3854,7 +4204,7 @@ if test "$ifelse([$1],,[$1],GCC)" = yes ; then
AC_TRY_COMPILE([],[
#ifdef __INTEL_COMPILER
#else
-make an error
+#error __INTEL_COMPILER is not defined
#endif
],[ifelse([$2],,INTEL_COMPILER,[$2])=yes
cf_save_CFLAGS="$cf_save_CFLAGS -we147"
@@ -3866,14 +4216,14 @@ cf_save_CFLAGS="$cf_save_CFLAGS -we147"
fi
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_ISASCII version: 4 updated: 2012/10/06 17:56:13
+dnl CF_ISASCII version: 5 updated: 2023/12/03 09:21:34
dnl ----------
dnl Check if we have either a function or macro for 'isascii()'.
AC_DEFUN([CF_ISASCII],
[
AC_MSG_CHECKING(for isascii)
AC_CACHE_VAL(cf_cv_have_isascii,[
- AC_TRY_LINK([#include <ctype.h>],[int x = isascii(' ')],
+ AC_TRY_LINK([#include <ctype.h>],[int x = isascii(' '); (void)x],
[cf_cv_have_isascii=yes],
[cf_cv_have_isascii=no])
])dnl
@@ -3881,7 +4231,7 @@ AC_MSG_RESULT($cf_cv_have_isascii)
test "$cf_cv_have_isascii" = yes && AC_DEFINE(HAVE_ISASCII,1,[Define to 1 if we have isascii()])
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_LARGEFILE version: 12 updated: 2020/03/19 20:23:48
+dnl CF_LARGEFILE version: 13 updated: 2023/12/03 19:09:59
dnl ------------
dnl Add checks for large file support.
AC_DEFUN([CF_LARGEFILE],[
@@ -3915,11 +4265,15 @@ ifdef([AC_FUNC_FSEEKO],[
#pragma GCC diagnostic error "-Wincompatible-pointer-types"
#include <sys/types.h>
#include <dirent.h>
+
+#ifndef __REDIRECT
+/* if transitional largefile support is setup, this is true */
+extern struct dirent64 * readdir(DIR *);
+#endif
],[
- /* 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);
+ DIR *dp = opendir(".");
+ struct dirent64 *x = readdir(dp);
+ struct dirent *y = readdir(dp);
int z = x - y;
(void)z;
],
@@ -4090,7 +4444,7 @@ then
fi
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_LD_SEARCHPATH version: 2 updated: 2019/09/26 20:34:14
+dnl CF_LD_SEARCHPATH version: 4 updated: 2022/08/27 15:43:08
dnl ----------------
dnl Try to obtain the linker's search-path, for use in scripts.
dnl
@@ -4101,19 +4455,19 @@ AC_CACHE_CHECK(for linker search path,cf_cv_ld_searchpath,[
if test "$cross_compiling" != yes ; then
# GNU binutils' ld does not involve permissions which may stop ldconfig.
-cf_pathlist=`ld --verbose 2>/dev/null | grep SEARCH_DIR | sed -e 's,SEARCH_DIR[[("=]][[("=]]*,,g' -e 's/"[[)]];//gp' | sort -u`
+cf_pathlist=`${LD:-ld} --verbose 2>/dev/null | grep SEARCH_DIR | sed -e 's,SEARCH_DIR[[("=]][[("=]]*,,g' -e 's/"[[)]];//gp' | sort -u`
# The -NX options tell newer versions of Linux ldconfig to not attempt to
# update the cache, which makes it run faster.
test -z "$cf_pathlist" && \
- cf_pathlist=`ldconfig -NX -v 2>/dev/null | sed -e '/^[[ ]]/d' -e 's/:$//' | sort -u`
+ cf_pathlist=`(ldconfig -NX -v) 2>/dev/null | sed -e '/^[[ ]]/d' -e 's/:$//' | sort -u`
test -z "$cf_pathlist" &&
- cf_pathlist=`ldconfig -v 2>/dev/null | sed -n -e '/^[[ ]]/d' -e 's/:$//p' | sort -u`
+ cf_pathlist=`(ldconfig -v) 2>/dev/null | sed -n -e '/^[[ ]]/d' -e 's/:$//p' | sort -u`
# This works with OpenBSD 6.5, which lists only filenames
test -z "$cf_pathlist" &&
- cf_pathlist=`ldconfig -v 2>/dev/null | sed -n -e 's,^Adding \(.*\)/.*[$],\1,p' | sort -u`
+ cf_pathlist=`(ldconfig -v) 2>/dev/null | sed -n -e 's,^Adding \(.*\)/.*[$],\1,p' | sort -u`
if test -z "$cf_pathlist"
then
@@ -4128,13 +4482,37 @@ fi
if test -z "$cf_pathlist"
then
- # Solaris is hardcoded
- if test -d /opt/SUNWspro/lib
+ # Solaris is "SunOS"
+ if test -f /usr/bin/isainfo && test "x`uname -s`" = xSunOS
then
- cf_pathlist="/opt/SUNWspro/lib /usr/ccs/lib /usr/lib"
- elif test -d /usr/ccs/lib
+ case x`(isainfo -b)` in
+ (x64)
+ cf_pathlist="$cf_pathlist /lib/64 /usr/lib/64"
+ ;;
+ (x32)
+ test -d /usr/ccs/lib && cf_pathlist="$cf_pathlist /usr/ccs/lib"
+ cf_pathlist="$cf_pathlist /lib /usr/lib"
+ ;;
+ (*)
+ AC_MSG_WARN(problem with Solaris architecture)
+ ;;
+ esac
+ fi
+fi
+
+if test -z "$cf_pathlist"
+then
+ # HP-UX
+ if test x"`uname -s`" = xHP-UX
then
- cf_pathlist="/usr/ccs/lib /usr/lib"
+ case x`getconf LONG_BIT` in
+ (x64)
+ cf_pathlist="/usr/lib/hpux64"
+ ;;
+ (x*)
+ cf_pathlist="/usr/lib/hpux32"
+ ;;
+ esac
fi
fi
@@ -4225,7 +4603,7 @@ ifelse($1,,,[$1=$LIB_PREFIX])
AC_SUBST(LIB_PREFIX)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_LIB_RULES version: 94 updated: 2021/01/23 15:37:41
+dnl CF_LIB_RULES version: 100 updated: 2023/06/03 15:17:30
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
@@ -4242,6 +4620,7 @@ dnl
dnl Note: Libs_To_Make is mixed case, since it is not a pure autoconf variable.
AC_DEFUN([CF_LIB_RULES],
[AC_REQUIRE([AC_PROG_FGREP])dnl
+AC_REQUIRE([CF_MAKE_PHONY])dnl
cf_prefix=$LIB_PREFIX
AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
@@ -4279,11 +4658,11 @@ do
SHARED_LIB=
Libs_To_Make=
cf_awk_program=
- if test -n "${cf_cv_abi_version}" && test "x${cf_cv_abi_version}" != "x5"
+ if test -n "${cf_cv_abi_default}" && test "x${cf_cv_abi_default}" != "x5"
then
cf_awk_program="$cf_awk_program\
-/deprecated in ABI${cf_cv_abi_version}/ { next; }\
-{ sub(\"NCURSES([[WT]]+)?\", \"&${cf_cv_abi_version}\"); }\
+/deprecated in ABI${cf_cv_abi_default}/ { next; }\
+{ sub(\"NCURSES([[WT]]+)?\", \"&${cf_cv_abi_default}\"); }\
"
fi
@@ -4562,6 +4941,9 @@ CF_EOF
traces=$LIB_TRACING \
MODEL=$cf_ITEM \
CXX_MODEL=$CXX_MODEL \
+ LIB_SUFFIX=$LIB_SUFFIX \
+ USE_LIB_SUFFIX=$USE_LIB_SUFFIX \
+ make_phony="${cf_cv_make_PHONY:-no}" \
model=$cf_subdir \
prefix=$cf_prefix \
suffix=$cf_suffix \
@@ -4609,6 +4991,21 @@ CF_EOF
echo ' ( cd '$cf_dir' && ${MAKE} ${TOP_MFLAGS} [$]@ )' >>Makefile
done
+echo >> Makefile
+echo '# generated by CF_LIB_RULES' >> Makefile
+
+if test "x$cf_cv_make_PHONY" = xyes ; then
+ cat >> Makefile <<-CF_EOF
+
+ .PHONY : libs
+ .PHONY : lintlib
+ .PHONY : install.includes
+ .PHONY : uninstall.includes
+ .PHONY : install.libs
+ .PHONY : uninstall.libs
+CF_EOF
+fi
+
for cf_dir in $SRC_SUBDIRS
do
if test ! -d "$srcdir/$cf_dir" ; then
@@ -4627,6 +5024,15 @@ do
fi
if test -f "$srcdir/$cf_dir/modules" ; then
+
+ if test "x$cf_cv_make_PHONY" = xyes ; then
+ cat >> Makefile <<-CF_EOF
+
+ .PHONY : install.$cf_dir
+ .PHONY : uninstall.$cf_dir
+CF_EOF
+ fi
+
echo >> Makefile
if test -f "$srcdir/$cf_dir/headers" ; then
cat >> Makefile <<CF_EOF
@@ -4634,10 +5040,9 @@ install.includes \\
uninstall.includes \\
CF_EOF
fi
-if test "$cf_dir" != "c++" ; then
-echo 'lint \' >> Makefile
-fi
+
cat >> Makefile <<CF_EOF
+lint \\
libs \\
lintlib \\
install.libs \\
@@ -4659,6 +5064,14 @@ CF_EOF
fi
done
+if test "x$cf_cv_make_PHONY" = xyes ; then
+ cat >> Makefile <<-CF_EOF
+
+ .PHONY : install.data
+ .PHONY : uninstall.data
+CF_EOF
+fi
+
if test "x$cf_with_db_install" = xyes; then
cat >> Makefile <<CF_EOF
@@ -4675,6 +5088,15 @@ CF_EOF
fi
if test "x$cf_with_manpages" = xyes; then
+
+if test "x$cf_cv_make_PHONY" = xyes ; then
+ cat >> Makefile <<-CF_EOF
+
+ .PHONY : install.man
+ .PHONY : uninstall.man
+CF_EOF
+fi
+
cat >> Makefile <<CF_EOF
install.man \\
@@ -4688,22 +5110,10 @@ cat >> Makefile <<CF_EOF
distclean ::
rm -f config.cache config.log config.status Makefile include/ncurses_cfg.h
rm -f headers.sh headers.sed mk_shared_lib.sh
- rm -f edit_man.* man_alias.*
+ rm -f edit_man.* man_alias.* *.tmp
rm -rf \${DIRS_TO_MAKE}
CF_EOF
-# Special case: tack's manpage lives in its own directory.
-if test "x$cf_with_manpages" = xyes; then
-if test "x$cf_with_tack" = "xyes"; then
-cat >> Makefile <<CF_EOF
-
-install.man \\
-uninstall.man ::
- ( cd tack && \${MAKE} \${TOP_MFLAGS} \[$]@ )
-CF_EOF
-fi
-fi
-
dnl If we're installing into a subdirectory of /usr/include, etc., we should
dnl prepend the subdirectory's name to the "#include" paths. It won't hurt
dnl anything, and will make it more standardized. It's awkward to decide this
@@ -4807,6 +5217,13 @@ do
if test -f "$srcdir/$cf_dir/modules" ; then
if test "$cf_dir" != "c++" ; then
+ if test "x$cf_cv_make_PHONY" = xyes ; then
+ cat >> $cf_dir/Makefile <<-CF_EOF
+
+ .PHONY : depend
+CF_EOF
+ fi
+
cat >>$cf_dir/Makefile <<"CF_EOF"
depend : ${AUTO_SRC}
makedepend -- ${CPPFLAGS} -- ${C_SRC}
@@ -4966,7 +5383,7 @@ AC_DEFUN([CF_LIB_TYPE],
test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_LINK_DATAONLY version: 13 updated: 2020/02/08 15:59:30
+dnl CF_LINK_DATAONLY version: 15 updated: 2023/12/03 10:03:10
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
@@ -4988,17 +5405,21 @@ EOF
rm -f conftest.$ac_ext data.o
cat >conftest.$ac_ext <<EOF
#line __oline__ "configure"
+extern int testfunc(void);
+#if defined(NeXT)
int testfunc(void)
{
-#if defined(NeXT)
${cf_cv_main_return:-return}(1); /* I'm told this linker is broken */
+}
#else
- extern int testdata[[3]];
+extern int testdata[[3]];
+int testfunc(void)
+{
return testdata[[0]] == 123
&& testdata[[1]] == 456
&& testdata[[2]] == 789;
-#endif
}
+#endif
EOF
if AC_TRY_EVAL(ac_compile); then
mv conftest.o func.o && \
@@ -5009,9 +5430,9 @@ EOF
cf_saveLIBS="$LIBS"
LIBS="conftest.a $LIBS"
AC_TRY_RUN([
+ extern int testfunc(void);
int main(void)
{
- extern int testfunc();
${cf_cv_main_return:-return} (!testfunc());
}
],
@@ -5030,11 +5451,14 @@ AC_SUBST(BROKEN_LINKER)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_LINK_FUNCS version: 9 updated: 2017/01/21 11:11:02
+dnl CF_LINK_FUNCS version: 13 updated: 2023/12/03 09:24:04
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).
+dnl
+dnl This allows for a 2-second difference in modification times to allow for
+dnl some marginal NFS implementations.
AC_DEFUN([CF_LINK_FUNCS],
[
AC_CHECK_HEADERS( \
@@ -5053,27 +5477,31 @@ else
cf_cv_link_funcs=
for cf_func in link symlink ; do
AC_TRY_RUN([
-#include <sys/types.h>
-#include <sys/stat.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
+$ac_includes_default
+
int main(void)
{
int fail = 0;
- char *src = "config.log";
- char *dst = "conftest.chk";
- struct stat src_sb;
- struct stat dst_sb;
-
- stat(src, &src_sb);
- fail = ($cf_func("config.log", "conftest.chk") < 0)
- || (stat(dst, &dst_sb) < 0)
- || (dst_sb.st_mtime != src_sb.st_mtime);
+ char src[] = "conftest.tmp";
+ char dst[] = "conftest.chk";
+ struct stat src_sb, dst_sb;
+ FILE *fp = fopen(src, "w");
+ if (fp == 0) { fail = 3; } else {
+ fclose(fp); stat(src, &src_sb);
+ if ($cf_func(src, dst) < 0) {
+ fail = 1;
+ } else if (stat(dst, &dst_sb) < 0) {
+ fail = 2;
+ } else {
+ long diff = (dst_sb.st_mtime - src_sb.st_mtime);
+ if (diff < 0) diff = -diff;
+ if (diff > 2) fail = 3;
+ }
+ }
#ifdef HAVE_UNLINK
- unlink(dst);
+ unlink(dst); unlink(src);
#else
- remove(dst);
+ remove(dst); remove(src);
#endif
${cf_cv_main_return:-return} (fail);
}
@@ -5090,10 +5518,10 @@ int main(void)
fi
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_MAKEFLAGS version: 20 updated: 2021/01/03 19:29:49
+dnl CF_MAKEFLAGS version: 21 updated: 2021/09/04 06:47:34
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 options to lower-levels. It is 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 :-)
AC_DEFUN([CF_MAKEFLAGS],
@@ -5133,6 +5561,89 @@ CF_EOF
AC_SUBST(cf_cv_makeflags)
])dnl
dnl ---------------------------------------------------------------------------
+dnl CF_MAKE_PHONY version: 3 updated: 2021/01/08 16:08:21
+dnl -------------
+dnl Check if the make-program handles a ".PHONY" target, e.g,. a target which
+dnl acts as a placeholder.
+dnl
+dnl The ".PHONY" feature was proposed in 2011 here
+dnl https://www.austingroupbugs.net/view.php?id=523
+dnl and is scheduled for release in P1003.1 Issue 8 (late 2022).
+dnl
+dnl This is not supported by SVr4 make (or SunOS 4, 4.3SD, etc), but works with
+dnl a few others (i.e., GNU make and the non-POSIX "BSD" make):
+dnl
+dnl + This is a GNU make feature (since April 1988, but in turn from binutils,
+dnl date unspecified).
+dnl
+dnl + It was adopted in NetBSD make in June 1995.
+dnl
+dnl + The other BSD make programs are derived from the NetBSD make (and for
+dnl that reason are not actually different "implementations").
+dnl
+dnl + Some features of NetBSD make were actually adapted from pmake, which
+dnl began as a modified GNU make starting in 1993.
+dnl
+dnl + Version 3.8 of the dmake program in January 1992 also implemented this
+dnl GNU make extension, but is less well known than the BSD make.
+AC_DEFUN([CF_MAKE_PHONY],[
+AC_CACHE_CHECK(for \".PHONY\" make-support, cf_cv_make_PHONY,[
+ rm -rf conftest*
+ (
+ mkdir conftest || exit 1
+ cd conftest
+ cat >makefile <<'CF_EOF'
+.PHONY: always
+DATA=0
+always: always.out
+ @echo "** making [$]@ [$](DATA)"
+once: once.out
+ @echo "** making [$]@ [$](DATA)"
+always.out:
+ @echo "** making [$]@ [$](DATA)"
+ echo [$](DATA) > [$]@
+once.out:
+ @echo "** making [$]@ [$](DATA)"
+ echo [$](DATA) > [$]@
+CF_EOF
+ for cf_data in 1 2 3
+ do
+ ${MAKE:-make} always DATA=$cf_data
+ ${MAKE:-make} once DATA=$cf_data
+ ${MAKE:-make} -t always once
+ if test -f always ; then
+ echo "no (case 1)" > ../conftest.tmp
+ elif test ! -f always.out ; then
+ echo "no (case 2)" > ../conftest.tmp
+ elif test ! -f once.out ; then
+ echo "no (case 3)" > ../conftest.tmp
+ elif ! cmp -s always.out once.out ; then
+ echo "no (case 4)" > ../conftest.tmp
+ diff always.out once.out
+ else
+ cf_check="`cat always.out`"
+ if test "x$cf_check" != "x$cf_data" ; then
+ echo "no (case 5)" > ../conftest.tmp
+ else
+ echo yes > ../conftest.tmp
+ rm -f ./*.out
+ continue
+ fi
+ fi
+ break
+ done
+ ) >&AC_FD_CC 2>&1
+ cf_cv_make_PHONY="`cat conftest.tmp`"
+ rm -rf conftest*
+])
+MAKE_NO_PHONY="#"
+MAKE_PHONY="#"
+test "x$cf_cv_make_PHONY" = xyes && MAKE_PHONY=
+test "x$cf_cv_make_PHONY" != xyes && MAKE_NO_PHONY=
+AC_SUBST(MAKE_NO_PHONY)
+AC_SUBST(MAKE_PHONY)
+])dnl
+dnl ---------------------------------------------------------------------------
dnl CF_MAKE_TAGS version: 6 updated: 2010/10/23 15:52:32
dnl ------------
dnl Generate tags/TAGS targets for makefiles. Do not generate TAGS if we have
@@ -5170,13 +5681,16 @@ AC_SUBST(MAKE_UPPER_TAGS)
AC_SUBST(MAKE_LOWER_TAGS)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_MANPAGE_FORMAT version: 14 updated: 2021/01/02 17:09:14
+dnl CF_MANPAGE_FORMAT version: 19 updated: 2024/03/30 08:27:40
dnl -----------------
dnl Option to allow user to override automatic configuration of manpage format.
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 bzip2 - man checks for, can display bzip2'd files
+dnl gzip - man checks for, can display gzip'd files
+dnl xz - man checks for, can display xz'd files
+dnl
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.
@@ -5190,8 +5704,9 @@ AC_REQUIRE([CF_PATHSEP])
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/catonly, e.g., gzip,formatted],
+ [ --with-manpage-format specify manpage-format: gzip/compress/bzip2/xz,
+ BSDI/normal and optionally formatted/catonly,
+ e.g., gzip,formatted],
[MANPAGE_FORMAT=$withval],
[MANPAGE_FORMAT=unknown])
@@ -5206,7 +5721,7 @@ case "$MANPAGE_FORMAT" in
MANPATH="/usr/man:/usr/share/man"
fi
- # look for the 'date' man-page (it's most likely to be installed!)
+ # look for the 'date' man-page (it is most likely to be installed!)
MANPAGE_FORMAT=
cf_preform="no"
cf_catonly="yes"
@@ -5221,10 +5736,12 @@ case "$MANPAGE_FORMAT" in
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";;
+ (*.bz2) MANPAGE_FORMAT="$MANPAGE_FORMAT bzip2";;
+ (*.xz) MANPAGE_FORMAT="$MANPAGE_FORMAT xz";;
+ (*.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
@@ -5263,7 +5780,7 @@ case "$MANPAGE_FORMAT" in
(*)
for cf_option in $MANPAGE_FORMAT; do
case "$cf_option" in
- (gzip|compress|BSDI|normal|formatted|catonly)
+ (xz|bzip2|gzip|compress|BSDI|normal|formatted|catonly)
;;
(*)
cf_unknown="$cf_unknown $cf_option"
@@ -5277,9 +5794,53 @@ AC_MSG_RESULT($MANPAGE_FORMAT)
if test -n "$cf_unknown" ; then
AC_MSG_WARN(Unexpected manpage-format $cf_unknown)
fi
+
+cf_manpage_format=no
+cf_manpage_inboth=no
+cf_manpage_so_strip=
+cf_manpage_compress=
+cf_manpage_coptions=
+
+for cf_item in $MANPAGE_FORMAT
+do
+case "$cf_item" in
+(catonly)
+ cf_manpage_format=yes
+ cf_manpage_inboth=no
+ ;;
+(formatted)
+ cf_manpage_format=yes
+ cf_manpage_inboth=yes
+ ;;
+(compress)
+ cf_manpage_so_strip="Z"
+ cf_manpage_compress=compress
+ ;;
+(gzip)
+ cf_manpage_so_strip="gz"
+ cf_manpage_compress=gzip
+ cf_manpage_coptions=-n
+ ;;
+(bzip2)
+ cf_manpage_so_strip="bz2"
+ cf_manpage_compress=bzip2
+ ;;
+(xz)
+ cf_manpage_so_strip="xz"
+ cf_manpage_compress=xz
+ ;;
+esac
+done
+
+AC_SUBST(cf_manpage_format)
+AC_SUBST(cf_manpage_inboth)
+AC_SUBST(cf_manpage_so_strip)
+AC_SUBST(cf_manpage_compress)
+AC_SUBST(cf_manpage_coptions)
+
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_MANPAGE_RENAMES version: 12 updated: 2021/01/01 16:53:59
+dnl CF_MANPAGE_RENAMES version: 17 updated: 2022/10/23 07:46:29
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
@@ -5299,34 +5860,26 @@ case ".$MANPAGE_RENAMES" in
(.|.yes)
# Debian 'man' program?
if test -f /etc/debian_version ; then
- MANPAGE_RENAMES=`cd "$srcdir" && pwd`/man/man_db.renames
+ MANPAGE_RENAMES=man/man_db.renames
else
MANPAGE_RENAMES=no
fi
;;
esac
-if test "$MANPAGE_RENAMES" != no ; then
- if test -f "$srcdir/man/$MANPAGE_RENAMES" ; then
- MANPAGE_RENAMES=`cd "$srcdir/man" && pwd`/$MANPAGE_RENAMES
- elif test ! -f "$MANPAGE_RENAMES" ; then
- AC_MSG_ERROR(not a filename: $MANPAGE_RENAMES)
- fi
-
- test ! -d man && mkdir man
-
- # Construct a sed-script to perform renaming within man-pages
- if test -n "$MANPAGE_RENAMES" ; then
- test ! -d man && mkdir man
- $SHELL "$srcdir/man/make_sed.sh" "$MANPAGE_RENAMES" >./edit_man.sed
- fi
+if test "$MANPAGE_RENAMES" = man/man_db.renames ; then
+ MANPAGE_RENAMES=`pwd`/$MANPAGE_RENAMES
+elif test "$MANPAGE_RENAMES" = no ; then
+ :
+elif test ! -f "$MANPAGE_RENAMES" ; then
+ AC_MSG_ERROR(not a filename: $MANPAGE_RENAMES)
fi
AC_MSG_RESULT($MANPAGE_RENAMES)
AC_SUBST(MANPAGE_RENAMES)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_MANPAGE_SYMLINKS version: 6 updated: 2015/04/17 21:13:04
+dnl CF_MANPAGE_SYMLINKS version: 7 updated: 2023/01/21 16:37:17
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
@@ -5360,7 +5913,7 @@ AC_ARG_WITH(manpage-symlinks,
[MANPAGE_SYMLINKS=$withval],
[MANPAGE_SYMLINKS=$cf_use_symlinks])
-if test "$$cf_use_symlinks" = no; then
+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
@@ -5388,7 +5941,32 @@ AC_ARG_WITH(manpage-tbl,
AC_MSG_RESULT($MANPAGE_TBL)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_MAN_PAGES version: 51 updated: 2021/01/05 16:29:19
+dnl CF_MB_LEN_MAX version: 1 updated: 2024/03/02 15:45:10
+dnl -------------
+dnl Check if <limits.h> defines a usable MB_LEN_MAX. That may be because it is
+dnl not defined, or it may be a bogus value.
+AC_DEFUN([CF_MB_LEN_MAX],[
+AC_CACHE_CHECK(if MB_LEN_MAX is usable,cf_cv_mb_len_max,[
+AC_TRY_COMPILE([
+$ac_includes_default
+#include <limits.h>],
+[
+#if defined(MB_LEN_MAX) && MB_LEN_MAX >= 6
+ ${cf_cv_main_return:-return}(0);
+#else
+#error MB_LEN_MAX is not usable
+#endif
+], [cf_cv_mb_len_max=yes],
+ [cf_cv_mb_len_max=no])])
+if test "$cf_cv_mb_len_max" = yes
+then
+ AC_DEFINE(HAVE_CONSISTENT_MB_LEN_MAX,1,[Define to 1 if MB_LEN_MAX is usable])
+else
+ AC_MSG_WARN(MB_LEN_MAX is missing/inconsistent in system headers)
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_MAN_PAGES version: 59 updated: 2024/03/30 08:27:40
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
@@ -5407,36 +5985,8 @@ else
cf_prefix="$prefix"
fi
-case "$MANPAGE_FORMAT" in
-(*catonly*)
- cf_format=yes
- cf_inboth=no
- ;;
-(*formatted*)
- cf_format=yes
- cf_inboth=yes
- ;;
-(*)
- cf_format=no
- cf_inboth=no
- ;;
-esac
-
test ! -d man && mkdir man
-cf_so_strip=
-cf_compress=
-case "$MANPAGE_FORMAT" in
-(*compress*)
- cf_so_strip="Z"
- cf_compress=compress
- ;;
-(*gzip*)
- cf_so_strip="gz"
- cf_compress=gzip
- ;;
-esac
-
cf_edit_man=./edit_man.sh
cf_man_alias=`pwd`/man_alias.sed
@@ -5454,6 +6004,7 @@ NCURSES_PATCH="$NCURSES_PATCH"
NCURSES_OSPEED="$NCURSES_OSPEED"
TERMINFO="$TERMINFO"
+TERMINFO_DIRS="$TERMINFO_DIRS"
INSTALL="$INSTALL"
INSTALL_DATA="$INSTALL_DATA"
@@ -5461,7 +6012,8 @@ INSTALL_DATA="$INSTALL_DATA"
transform="$program_transform_name"
TMP=\${TMPDIR:=/tmp}/man\$\$
-trap "rm -f \$TMP" 0 1 2 3 15
+trap "rm -f \$TMP; exit 1" 1 2 3 15
+trap "rm -f \$TMP" 0
form=\[$]1
shift || exit 1
@@ -5477,8 +6029,8 @@ top_srcdir=\[$]srcdir/..
shift || exit 1
if test "\$form" = normal ; then
- if test "$cf_format" = yes ; then
- if test "$cf_inboth" = no ; then
+ if test "$cf_manpage_format" = yes ; then
+ if test "$cf_manpage_inboth" = no ; then
$SHELL "\[$]0" format "\$verb" "\$mandir" "\$srcdir" "\[$]@"
exit $?
fi
@@ -5530,9 +6082,9 @@ CF_EOF2
aliases=
cf_source=\`basename "\$i"\`
- inalias=\$cf_source
- test ! -f "\$inalias" && inalias="\$srcdir/\$inalias"
- if test ! -f "\$inalias" ; then
+ cf_full_alias=\$cf_source
+ test ! -f "\$cf_full_alias" && cf_full_alias="\$srcdir/\$cf_full_alias"
+ if test ! -f "\$cf_full_alias" ; then
echo ".. skipped \$cf_source"
continue
fi
@@ -5541,8 +6093,9 @@ CF_EOF
if test "$MANPAGE_ALIASES" != no ; then
cat >>$cf_edit_man <<CF_EOF
nCurses=ignore.3x
+ cf_part_alias=\`echo \$cf_full_alias| sed -e 's,^.*/,,'\`
test "$with_curses_h" = yes && nCurses=ncurses.3x
- aliases=\`sed -f "\$top_srcdir/man/manlinks.sed" "\$inalias" |sed -f "$cf_man_alias" | sort -u; test "\$inalias" = "\$nCurses" && echo curses\`
+ aliases=\`sed -f "\$top_srcdir/man/manlinks.sed" "\$cf_full_alias" |sed -f "$cf_man_alias" | sort -u; test "\$cf_part_alias" = "\$nCurses" && echo curses\`
CF_EOF
fi
@@ -5571,7 +6124,7 @@ cat >>$cf_edit_man <<CF_EOF
sed -f "$cf_man_alias" \\
CF_EOF
-if test -f "$MANPAGE_RENAMES" ; then
+if test "$MANPAGE_RENAMES" != no ; then
cat >>$cf_edit_man <<CF_EOF
< "\$i" | sed -f `pwd`/edit_man.sed >\$TMP
CF_EOF
@@ -5609,15 +6162,15 @@ cat >>$cf_edit_man <<CF_EOF
fi
CF_EOF
-if test -n "$cf_compress" ; then
+if test -n "$cf_manpage_compress" ; then
cat >>$cf_edit_man <<CF_EOF
if test "\$verb" = installing ; then
- if ( "$cf_compress" -f \$TMP )
+ if ( "$cf_manpage_compress" -f \$TMP )
then
- mv \$TMP.$cf_so_strip \$TMP
+ mv \$TMP.$cf_manpage_so_strip \$TMP
fi
fi
- cf_target="\$cf_target.$cf_so_strip"
+ cf_target="\$cf_target.$cf_manpage_so_strip"
CF_EOF
fi
@@ -5634,6 +6187,14 @@ esac
cat >>$cf_edit_man <<CF_EOF
suffix=\`basename "\$cf_target" | sed -e 's%^[[^.]]*%%'\`
+ extra_suffix=
+ if test -n "$EXTRA_SUFFIX" ; then
+ case \$cf_target in
+ (*${EXTRA_SUFFIX}\$suffix)
+ extra_suffix="$EXTRA_SUFFIX"
+ ;;
+ esac
+ fi
if test "\$verb" = installing ; then
echo "\$verb \$cf_target"
\$INSTALL_DATA \$TMP "\$cf_target"
@@ -5641,13 +6202,14 @@ cat >>$cf_edit_man <<CF_EOF
test -n "\$aliases" && (
cd "\$cf_subdir\${section}" && (
cf_source=\`echo "\$cf_target" |sed -e 's%^.*/\\([[^/]][[^/]]*/[[^/]][[^/]]*$\\)%\\1%'\`
- test -n "$cf_so_strip" && cf_source=\`echo "\$cf_source" |sed -e 's%\\.$cf_so_strip\$%%'\`
+ test -n "$cf_manpage_so_strip" && cf_source=\`echo "\$cf_source" |sed -e 's%\\.$cf_manpage_so_strip\$%%'\`
cf_target=\`basename "\$cf_target"\`
for cf_alias in \$aliases
do
if test "\$section" = 1 ; then
cf_alias=\`echo "\$cf_alias" |sed "\${transform}"\`
fi
+ cf_alias="\${cf_alias}\${extra_suffix}"
if test "$MANPAGE_SYMLINKS" = yes ; then
if test -f "\$cf_alias\${suffix}" ; then
@@ -5675,11 +6237,11 @@ cat >>$cf_edit_man <<CF_EOF
elif test "\$cf_target" != "\$cf_alias\${suffix}" ; then
echo ".so \$cf_source" >\$TMP
CF_EOF
-if test -n "$cf_compress" ; then
+if test -n "$cf_manpage_compress" ; then
cat >>$cf_edit_man <<CF_EOF
- if test -n "$cf_so_strip" ; then
- "$cf_compress" -f \$TMP
- mv \$TMP.$cf_so_strip \$TMP
+ if test -n "$cf_manpage_so_strip" ; then
+ "$cf_manpage_compress" $cf_manpage_coptions -f \$TMP
+ mv \$TMP.$cf_manpage_so_strip \$TMP
fi
CF_EOF
fi
@@ -5704,6 +6266,7 @@ cat >>$cf_edit_man <<CF_EOF
if test "\$section" = 1 ; then
cf_alias=\`echo "\$cf_alias" |sed "\${transform}"\`
fi
+ cf_alias="\${cf_alias}\${extra_suffix}"
echo ".. \$verb alias \$cf_alias\${suffix}"
rm -f "\$cf_alias\${suffix}"
@@ -5718,7 +6281,7 @@ cat >>$cf_edit_man <<CF_EOF
esac
done
-if test "$cf_inboth" = yes ; then
+if test "$cf_manpage_inboth" = yes ; then
if test "\$form" != format ; then
$SHELL "\[$]0" format "\$verb" "\$mandir" "\$srcdir" "\[$]@"
fi
@@ -5741,7 +6304,7 @@ CF_UPPER(cf_map_lib_basename,$2)
eval $1="\$${cf_map_lib_basename}_NAME"
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_MATH_LIB version: 10 updated: 2020/12/31 18:40:20
+dnl CF_MATH_LIB version: 11 updated: 2022/07/27 19:01:48
dnl -----------
dnl Checks for libraries. At least one UNIX system, Apple Macintosh
dnl Rhapsody 5.5, does not have -lm. We cannot use the simpler
@@ -5751,18 +6314,42 @@ AC_DEFUN([CF_MATH_LIB],
AC_CACHE_CHECK(if -lm needed for math functions,
cf_cv_need_libm,[
AC_TRY_LINK([
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <math.h>
],
[double x = rand(); printf("result = %g\\n", ]ifelse([$2],,sin(x),$2)[)],
[cf_cv_need_libm=no],
[cf_cv_need_libm=yes])])
+
if test "$cf_cv_need_libm" = yes
then
-ifelse($1,,[
- CF_ADD_LIB(m)
-],[$1=-lm])
+
+ cf_save_LIBS="$LIBS"
+ LIBS="$LIBS -lm"
+ AC_CACHE_CHECK(if -lm is available for math functions,
+ cf_cv_have_libm,[
+ AC_TRY_LINK([
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <math.h>
+ ],
+ [double x = rand(); printf("result = %g\\n", ]ifelse([$2],,sin(x),$2)[)],
+ [cf_cv_have_libm=yes],
+ [cf_cv_have_libm=no])])
+ LIBS="$cf_save_LIBS"
+
+ if test "$cf_cv_have_libm" = yes
+ then
+ ifelse($1,,[CF_ADD_LIB(m)],[$1=-lm])
+ fi
+else
+ cf_cv_have_libm=yes
+fi
+
+if test "$cf_cv_have_libm" = yes
+then
+ AC_DEFINE(HAVE_MATH_FUNCS,1,[Define to 1 if math functions are available])
fi
])
dnl ---------------------------------------------------------------------------
@@ -5796,7 +6383,7 @@ fi
test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES,1,[Define to 1 if filesystem supports mixed-case filenames.])
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_MKSTEMP version: 11 updated: 2021/01/01 13:31:04
+dnl CF_MKSTEMP version: 13 updated: 2023/12/01 17:22:50
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).
@@ -5807,17 +6394,11 @@ unistd.h \
AC_CACHE_CHECK(for working mkstemp, cf_cv_func_mkstemp,[
rm -rf ./conftest*
AC_TRY_RUN([
-#include <sys/types.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <sys/stat.h>
+$ac_includes_default
+
int main(void)
{
- char *tmpl = "conftestXXXXXX";
+ static char tmpl[] = "conftestXXXXXX";
char name[2][80];
int n;
int result = 0;
@@ -5862,7 +6443,7 @@ AC_DEFUN([CF_MSG_LOG],[
echo "${as_me:-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_NCURSES_ABI_6 version: 4 updated: 2021/01/01 13:31:04
+dnl CF_NCURSES_ABI_6 version: 5 updated: 2023/01/07 16:32:06
dnl ----------------
dnl Set ncurses' ABI to 6 unless overridden by explicit configure option, and
dnl warn about this.
@@ -5872,7 +6453,8 @@ if test "${with_abi_version+set}" != set; then
(5.*)
cf_cv_rel_version=6.0
cf_cv_abi_version=6
- AC_MSG_WARN(overriding ABI version to $cf_cv_abi_version)
+ cf_cv_abi_default=6
+ AC_MSG_WARN(overriding ABI version to $cf_cv_abi_default)
;;
esac
fi
@@ -5898,19 +6480,29 @@ then
fi
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_NO_LEAKS_OPTION version: 8 updated: 2021/01/05 20:05:09
+dnl CF_NO_LEAKS_OPTION version: 9 updated: 2021/06/13 19:45:41
dnl ------------------
dnl see CF_WITH_NO_LEAKS
+dnl
+dnl $1 = option/name
+dnl $2 = help-text
+dnl $3 = symbol to define if the option is set
+dnl $4 = additional actions to take if the option is set
AC_DEFUN([CF_NO_LEAKS_OPTION],[
AC_MSG_CHECKING(if you want to use $1 for testing)
AC_ARG_WITH($1,
[$2],
- [AC_DEFINE_UNQUOTED($3,1,"Define to 1 if you want to use $1 for testing.")ifelse([$4],,[
+ [case "x$withval" in
+ (x|xno) ;;
+ (*)
+ : "${with_cflags:=-g}"
+ : "${enable_leaks:=no}"
+ with_$1=yes
+ AC_DEFINE_UNQUOTED($3,1,"Define to 1 if you want to use $1 for testing.")ifelse([$4],,[
$4
])
- : "${with_cflags:=-g}"
- : "${enable_leaks:=no}"
- with_$1=yes],
+ ;;
+ esac],
[with_$1=])
AC_MSG_RESULT(${with_$1:-no})
@@ -5927,15 +6519,15 @@ case ".$with_cflags" in
esac
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_NUMBER_SYNTAX version: 2 updated: 2015/04/17 21:13:04
+dnl CF_NUMBER_SYNTAX version: 3 updated: 2023/05/06 16:14:29
dnl ----------------
-dnl Check if the given variable is a number. If not, report an error.
+dnl Check if the given variable is a positive integer. Report an error if not.
dnl $1 is the variable
dnl $2 is the message
AC_DEFUN([CF_NUMBER_SYNTAX],[
if test -n "$1" ; then
- case $1 in
- ([[0-9]]*)
+ case `echo "$1" | sed -e 's/^[[0-9]]*$/0/g'` in
+ (0)
;;
(*)
AC_MSG_ERROR($2 is not a number: $1)
@@ -5966,6 +6558,21 @@ AC_DEFUN([CF_OBJ_SUBDIR],
esac
])dnl
dnl ---------------------------------------------------------------------------
+dnl CF_OUTPUT_MANPAGE_RENAMES version: 2 updated: 2022/10/22 19:12:31
+dnl -------------------------
+dnl This runs in the output step to config.status, after man_db.renames has
+dnl been generated.
+AC_DEFUN([CF_OUTPUT_MANPAGE_RENAMES],
+[
+AC_REQUIRE([CF_MANPAGE_RENAMES])
+if test "$MANPAGE_RENAMES" != no ; then
+ # Construct a sed-script to perform renaming within man-pages
+ test -n "$verbose" && echo "creating edit_man.sed"
+ test ! -d man && mkdir man
+ FGREP="${FGREP-grep -F}" $SHELL "$srcdir/man/make_sed.sh" "$MANPAGE_RENAMES" >./edit_man.sed
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
dnl CF_PATHSEP version: 8 updated: 2021/01/01 13:31:04
dnl ----------
dnl Provide a value for the $PATH and similar separator (or amend the value
@@ -6064,14 +6671,16 @@ case ".[$]$1" in
esac
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_PKG_CONFIG version: 11 updated: 2021/01/01 13:31:04
+dnl CF_PKG_CONFIG version: 13 updated: 2023/10/28 11:59:01
dnl -------------
dnl Check for the package-config program, unless disabled by command-line.
+dnl
+dnl Sets $PKG_CONFIG to the pathname of the pkg-config program.
AC_DEFUN([CF_PKG_CONFIG],
[
AC_MSG_CHECKING(if you want to use pkg-config)
AC_ARG_WITH(pkg-config,
- [ --with-pkg-config{=path} enable/disable use of pkg-config],
+ [[ --with-pkg-config[=CMD] enable/disable use of pkg-config and its name CMD]],
[cf_pkg_config=$withval],
[cf_pkg_config=yes])
AC_MSG_RESULT($cf_pkg_config)
@@ -6100,7 +6709,7 @@ fi
AC_SUBST(PKG_CONFIG)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_POSIX_C_SOURCE version: 11 updated: 2018/12/31 20:46:17
+dnl CF_POSIX_C_SOURCE version: 12 updated: 2023/02/18 17:41:25
dnl -----------------
dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
dnl
@@ -6131,7 +6740,7 @@ 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 <sys/types.h>],[
#ifndef _POSIX_C_SOURCE
-make an error
+#error _POSIX_C_SOURCE is not defined
#endif],
[cf_cv_posix_c_source=no],
[cf_want_posix_source=no
@@ -6150,7 +6759,7 @@ make an error
if test "$cf_want_posix_source" = yes ; then
AC_TRY_COMPILE([#include <sys/types.h>],[
#ifdef _POSIX_SOURCE
-make an error
+#error _POSIX_SOURCE is defined
#endif],[],
cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE")
fi
@@ -6161,7 +6770,7 @@ make an error
CF_MSG_LOG(if the second compile does not leave our definition intact error)
AC_TRY_COMPILE([#include <sys/types.h>],[
#ifndef _POSIX_C_SOURCE
-make an error
+#error _POSIX_C_SOURCE is not defined
#endif],,
[cf_cv_posix_c_source=no])
CFLAGS="$cf_save_CFLAGS"
@@ -6206,7 +6815,7 @@ AC_TRY_COMPILE([#include <stdio.h>],[
])
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_PREDEFINE version: 2 updated: 2010/05/26 16:44:57
+dnl CF_PREDEFINE version: 3 updated: 2023/02/18 17:41:25
dnl ------------
dnl Add definitions to CPPFLAGS to ensure they're predefined for all compiles.
dnl
@@ -6218,7 +6827,7 @@ AC_MSG_CHECKING(if we must define $1)
AC_TRY_COMPILE([#include <sys/types.h>
],[
#ifndef $1
-make an error
+#error $1 is not defined
#endif],[cf_result=no],[cf_result=yes])
AC_MSG_RESULT($cf_result)
@@ -6229,7 +6838,7 @@ elif test "x$2" != "x" ; then
AC_TRY_COMPILE([#include <sys/types.h>
],[
#if $1-$2 < 0
-make an error
+#error $1-$2 is negative
#endif],[cf_result=yes],[cf_result=no])
AC_MSG_RESULT($cf_result)
if test "$cf_result" = no ; then
@@ -6480,7 +7089,7 @@ fi
AC_SUBST(LDCONFIG)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_PROG_LINT version: 4 updated: 2019/11/20 18:55:37
+dnl CF_PROG_LINT version: 5 updated: 2022/08/20 15:44:13
dnl ------------
AC_DEFUN([CF_PROG_LINT],
[
@@ -6491,6 +7100,7 @@ case "x$LINT" in
;;
esac
AC_SUBST(LINT_OPTS)
+AC_SUBST(LINT_LIBS)
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_PROG_LN_S version: 2 updated: 2010/08/14 18:25:37
@@ -6611,6 +7221,24 @@ case "$cf_cv_regex_hdrs" in
esac
])dnl
dnl ---------------------------------------------------------------------------
+dnl CF_REMOVE_CFLAGS version: 3 updated: 2021/09/05 17:25:40
+dnl ----------------
+dnl Remove a given option from CFLAGS/CPPFLAGS
+dnl $1 = option to remove
+dnl $2 = variable to update
+dnl $3 = nonempty to allow verbose message
+define([CF_REMOVE_CFLAGS],
+[
+cf_tmp_cflag=`echo "x$1" | sed -e 's/^.//' -e 's/=.*//'`
+while true
+do
+ cf_old_cflag=`echo "x[$]$2" | sed -e 's/^.//' -e 's/[[ ]][[ ]]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[[^ ]][[^ ]]*\\)\?%%" -e 's/^[[ ]]*//' -e 's%[[ ]][[ ]]*-D% -D%g' -e 's%[[ ]][[ ]]*-I% -I%g'`
+ test "[$]$2" != "$cf_old_cflag" || break
+ ifelse([$3],,,[CF_VERBOSE(removing old option $1 from $2)])
+ $2="$cf_old_cflag"
+done
+])dnl
+dnl ---------------------------------------------------------------------------
dnl CF_REMOVE_DEFINE version: 3 updated: 2010/01/09 11:05:50
dnl ----------------
dnl Remove all -U and -D options that refer to the given symbol from a list
@@ -6795,7 +7423,7 @@ do
done
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_SHARED_OPTS version: 105 updated: 2021/01/02 17:09:14
+dnl CF_SHARED_OPTS version: 111 updated: 2024/03/29 20:08:49
dnl --------------
dnl --------------
dnl Attempt to determine the appropriate CC/LD options for creating a shared
@@ -6819,7 +7447,7 @@ dnl The variable 'cf_cv_shlib_version_infix' controls whether shared library
dnl version numbers are infix (ex: libncurses.<ver>.dylib) or postfix
dnl (ex: libncurses.so.<ver>).
dnl
-dnl Some loaders leave 'so_locations' lying around. It's nice to clean up.
+dnl Some loaders leave 'so_locations' lying around. It is nice to clean up.
AC_DEFUN([CF_SHARED_OPTS],
[
AC_REQUIRE([CF_LD_RPATH_OPT])
@@ -6841,9 +7469,9 @@ AC_DEFUN([CF_SHARED_OPTS],
cf_ld_rpath_opt=
test "$cf_cv_enable_rpath" = yes && cf_ld_rpath_opt="$LD_RPATH_OPT"
- AC_MSG_CHECKING(if release/abi version should be used for shared libs)
+ AC_MSG_CHECKING(whether to use release or ABI version in shared library file names)
AC_ARG_WITH(shlib-version,
- [ --with-shlib-version=X Specify rel or abi version for shared libs],
+ [[ --with-shlib-version[={rel|abi}] use release or ABI version in shared library file names]],
[test -z "$withval" && withval=auto
case "$withval" in
(yes)
@@ -6885,7 +7513,7 @@ AC_DEFUN([CF_SHARED_OPTS],
for CC_SHARED_OPTS in -fPIC -fpic ''
do
CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS"
- AC_TRY_COMPILE([#include <stdio.h>],[int x = 1],[break],[])
+ AC_TRY_COMPILE([#include <stdio.h>],[int x = 1; (void)x],[break],[])
done
AC_MSG_RESULT($CC_SHARED_OPTS)
CFLAGS="$cf_save_CFLAGS"
@@ -6966,6 +7594,10 @@ CF_EOF
LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
fi
;;
+ (haiku*)
+ CF_SHARED_SONAME
+ MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
+ ;;
(hpux[[7-8]]*)
# HP-UX 8.07 ld lacks "+b" option used for libdir search-list
if test "$GCC" != yes; then
@@ -7251,11 +7883,11 @@ CF_EOF
# tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2
# tested with SunOS 5.10 (solaris 10) and gcc 3.4.3
if test "$DFT_LWR_MODEL" = "shared" ; then
- LOCAL_LDFLAGS="-R \$(LOCAL_LIBDIR):\${libdir}"
+ LOCAL_LDFLAGS="-R\$(LOCAL_LIBDIR):\${libdir}"
LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
fi
if test "$cf_cv_enable_rpath" = yes ; then
- EXTRA_LDFLAGS="-R \${libdir} $EXTRA_LDFLAGS"
+ EXTRA_LDFLAGS="-R\${libdir} $EXTRA_LDFLAGS"
fi
CF_SHARED_SONAME
if test "$GCC" != yes; then
@@ -7267,9 +7899,9 @@ CF_EOF
done
CFLAGS="$cf_save_CFLAGS"
CC_SHARED_OPTS=$cf_shared_opts
- MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -dy -G -h '$cf_cv_shared_soname' -o $[@]'
+ MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -dy -G -Wl,-h,'$cf_cv_shared_soname' -o $[@]'
else
- MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -dy -G -h '$cf_cv_shared_soname' -o $[@]'
+ MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -dy -G -Wl,-h,'$cf_cv_shared_soname' -o $[@]'
fi
;;
(sysv5uw7*|unix_sv*)
@@ -7370,7 +8002,7 @@ define([CF_SHARED_SONAME],
fi
])
dnl ---------------------------------------------------------------------------
-dnl CF_SIGWINCH version: 6 updated: 2021/01/01 13:31:04
+dnl CF_SIGWINCH version: 7 updated: 2023/02/18 17:41:25
dnl -----------
dnl Use this macro after CF_XOPEN_SOURCE, but do not require it (not all
dnl programs need this test).
@@ -7413,7 +8045,7 @@ do
#include <sys/signal.h>
],[
#if SIGWINCH != $cf_sigwinch
-make an error
+#error SIGWINCH is not $cf_sigwinch
#endif
int x = SIGWINCH; (void)x],
[cf_cv_fixup_sigwinch=$cf_sigwinch
@@ -7465,7 +8097,7 @@ AC_MSG_RESULT($cf_cv_sig_atomic_t)
test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t,[Define to signal global datatype])
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_SIZECHANGE version: 17 updated: 2021/01/01 13:31:04
+dnl CF_SIZECHANGE version: 18 updated: 2021/09/04 06:35:04
dnl -------------
dnl Check for definitions & structures needed for window size-changing
dnl
@@ -7496,7 +8128,7 @@ do
#ifdef NEED_PTEM_H
/* This is a workaround for SCO: they neglected to define struct winsize in
- * termios.h -- it's only in termio.h and ptem.h
+ * termios.h -- it is only in termio.h and ptem.h
*/
#include <sys/stream.h>
#include <sys/ptem.h>
@@ -7545,7 +8177,7 @@ if test "$cf_cv_sizechange" != no ; then
fi
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_SRC_MODULES version: 33 updated: 2021/01/01 13:31:04
+dnl CF_SRC_MODULES version: 34 updated: 2023/04/22 11:51:06
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
@@ -7575,14 +8207,6 @@ for cf_dir in $1
do
if test -f "$srcdir/$cf_dir/modules" ; then
- # We may/may not have tack in the distribution, though the
- # makefile is.
- if test "$cf_dir" = tack ; then
- if test "x$cf_with_tack" != "xyes"; then
- continue
- fi
- fi
-
if test -z "$cf_cv_src_modules"; then
cf_cv_src_modules=$cf_dir
else
@@ -7593,9 +8217,7 @@ do
# well. These are header files that are the same name as their
# directory. Ncurses is the only library that does not follow
# that pattern.
- if test "$cf_dir" = tack ; then
- continue
- elif test -f "$srcdir/${cf_dir}/${cf_dir}.h" ; then
+ if test -f "$srcdir/${cf_dir}/${cf_dir}.h" ; then
CF_UPPER(cf_have_include,$cf_dir)
AC_DEFINE_UNQUOTED(HAVE_${cf_have_include}_H)
AC_DEFINE_UNQUOTED(HAVE_LIB${cf_have_include})
@@ -7730,7 +8352,7 @@ dnl Remove "-g" option from the compiler options
AC_DEFUN([CF_STRIP_G_OPT],
[$1=`echo "${$1}" | CF__SED_TRIMBLANKS(-e 's%-g %%' -e 's%-g$%%')`])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_STRUCT_SIGACTION version: 5 updated: 2012/10/06 17:56:13
+dnl CF_STRUCT_SIGACTION version: 6 updated: 2023/12/03 09:21:34
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.
@@ -7742,14 +8364,14 @@ AC_MSG_CHECKING(whether sigaction needs _POSIX_SOURCE)
AC_TRY_COMPILE([
#include <sys/types.h>
#include <signal.h>],
- [struct sigaction act],
+ [struct sigaction act; (void)act],
[sigact_bad=no],
[
AC_TRY_COMPILE([
#define _POSIX_SOURCE
#include <sys/types.h>
#include <signal.h>],
- [struct sigaction act],
+ [struct sigaction act; (void)act],
[sigact_bad=yes
AC_DEFINE(_POSIX_SOURCE,1,[Define to 1 if we must define _POSIX_SOURCE])],
[sigact_bad=unknown])])
@@ -7757,7 +8379,7 @@ AC_MSG_RESULT($sigact_bad)
fi
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_STRUCT_TERMIOS version: 11 updated: 2020/03/19 20:46:13
+dnl CF_STRUCT_TERMIOS version: 13 updated: 2023/12/03 19:38:54
dnl -----------------
dnl Some machines require _POSIX_SOURCE to completely define struct termios.
AC_DEFUN([CF_STRUCT_TERMIOS],[
@@ -7780,12 +8402,12 @@ if test "$ac_cv_header_termios_h" = yes ; then
if test "$termios_bad" = maybe ; then
AC_MSG_CHECKING(whether termios.h needs _POSIX_SOURCE)
AC_TRY_COMPILE([#include <termios.h>],
- [struct termios foo; int x = foo.c_iflag = 1; (void)x],
+ [struct termios foo; int x = (int)(foo.c_iflag = 1); (void)x],
termios_bad=no, [
AC_TRY_COMPILE([
#define _POSIX_SOURCE
#include <termios.h>],
- [struct termios foo; int x = foo.c_iflag = 2; (void)x],
+ [struct termios foo; int x = (int)(foo.c_iflag = 2); (void)x],
termios_bad=unknown,
termios_bad=yes AC_DEFINE(_POSIX_SOURCE,1,[Define to 1 if we must define _POSIX_SOURCE]))
])
@@ -7837,7 +8459,7 @@ fi
AC_SUBST($2)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_SUBST_NCURSES_VERSION version: 10 updated: 2021/01/04 18:48:01
+dnl CF_SUBST_NCURSES_VERSION version: 11 updated: 2023/01/07 16:32:06
dnl ------------------------
dnl Get the version-number for use in shared-library naming, etc.
AC_DEFUN([CF_SUBST_NCURSES_VERSION],
@@ -7847,10 +8469,11 @@ NCURSES_MAJOR="`${EGREP-egrep} '^NCURSES_MAJOR[[ ]]*=' "$srcdir/dist.mk" | sed
NCURSES_MINOR="`${EGREP-egrep} '^NCURSES_MINOR[[ ]]*=' "$srcdir/dist.mk" | sed -e 's/^[[^0-9]]*//'`"
NCURSES_PATCH="`${EGREP-egrep} '^NCURSES_PATCH[[ ]]*=' "$srcdir/dist.mk" | sed -e 's/^[[^0-9]]*//'`"
cf_cv_abi_version=${NCURSES_MAJOR}
+cf_cv_abi_default=${NCURSES_MAJOR}
cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR}
dnl Show the computed version, for logging
cf_cv_timestamp=`date`
-AC_MSG_RESULT(Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp))
+AC_MSG_RESULT(Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_default ($cf_cv_timestamp))
dnl We need these values in the generated headers
AC_SUBST(NCURSES_MAJOR)
AC_SUBST(NCURSES_MINOR)
@@ -7858,6 +8481,7 @@ 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_abi_default)
AC_SUBST(cf_cv_builtin_bool)
AC_SUBST(cf_cv_header_stdbool_h)
AC_SUBST(cf_cv_type_of_bool)dnl
@@ -7922,34 +8546,20 @@ else
fi
])
dnl ---------------------------------------------------------------------------
-dnl CF_TRY_XOPEN_SOURCE version: 2 updated: 2018/06/20 20:23:13
+dnl CF_TRY_XOPEN_SOURCE version: 4 updated: 2022/09/10 15:16:16
dnl -------------------
dnl If _XOPEN_SOURCE is not defined in the compile environment, check if we
dnl can define it successfully.
AC_DEFUN([CF_TRY_XOPEN_SOURCE],[
AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
- AC_TRY_COMPILE([
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-],[
-#ifndef _XOPEN_SOURCE
-make an error
-#endif],
+ AC_TRY_COMPILE(CF__XOPEN_SOURCE_HEAD,CF__XOPEN_SOURCE_BODY,
[cf_cv_xopen_source=no],
[cf_save="$CPPFLAGS"
CF_APPEND_TEXT(CPPFLAGS,-D_XOPEN_SOURCE=$cf_XOPEN_SOURCE)
- AC_TRY_COMPILE([
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-],[
-#ifdef _XOPEN_SOURCE
-make an error
-#endif],
- [cf_cv_xopen_source=no],
- [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
- CPPFLAGS="$cf_save"
+ AC_TRY_COMPILE(CF__XOPEN_SOURCE_HEAD,CF__XOPEN_SOURCE_BODY,
+ [cf_cv_xopen_source=no],
+ [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
+ CPPFLAGS="$cf_save"
])
])
@@ -7957,11 +8567,11 @@ if test "$cf_cv_xopen_source" != no ; then
CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
- CF_ADD_CFLAGS($cf_temp_xopen_source)
+ CF_APPEND_CFLAGS($cf_temp_xopen_source)
fi
])
dnl ---------------------------------------------------------------------------
-dnl CF_TYPEOF_CHTYPE version: 10 updated: 2017/01/21 11:06:25
+dnl CF_TYPEOF_CHTYPE version: 11 updated: 2023/01/05 17:57:59
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
@@ -7972,8 +8582,8 @@ AC_DEFUN([CF_TYPEOF_CHTYPE],
AC_MSG_CHECKING([for type of chtype])
AC_CACHE_VAL(cf_cv_typeof_chtype,[
AC_TRY_RUN([
+$ac_includes_default
#define WANT_BITS 31
-#include <stdio.h>
int main(void)
{
FILE *fp = fopen("cf_test.out", "w");
@@ -8013,7 +8623,7 @@ AC_SUBST(cf_cv_typeof_chtype)
AC_DEFINE_UNQUOTED(TYPEOF_CHTYPE,$cf_cv_typeof_chtype,[Define to actual type if needed for chtype])
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_TYPE_SIGACTION version: 4 updated: 2012/10/06 17:56:13
+dnl CF_TYPE_SIGACTION version: 5 updated: 2023/12/03 09:21:34
dnl -----------------
dnl
AC_DEFUN([CF_TYPE_SIGACTION],
@@ -8022,14 +8632,14 @@ AC_MSG_CHECKING([for type sigaction_t])
AC_CACHE_VAL(cf_cv_type_sigaction,[
AC_TRY_COMPILE([
#include <signal.h>],
- [sigaction_t x],
+ [sigaction_t x; (void)x],
[cf_cv_type_sigaction=yes],
[cf_cv_type_sigaction=no])])
AC_MSG_RESULT($cf_cv_type_sigaction)
test "$cf_cv_type_sigaction" = yes && AC_DEFINE(HAVE_TYPE_SIGACTION,1,[Define to 1 if we have the sigaction_t type])
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_UNSIGNED_LITERALS version: 2 updated: 1998/02/07 22:10:16
+dnl CF_UNSIGNED_LITERALS version: 3 updated: 2023/12/03 10:02:17
dnl --------------------
dnl Test if the compiler supports 'U' and 'L' suffixes. Only old compilers
dnl won't, but they're still there.
@@ -8037,7 +8647,7 @@ AC_DEFUN([CF_UNSIGNED_LITERALS],
[
AC_MSG_CHECKING([if unsigned literals are legal])
AC_CACHE_VAL(cf_cv_unsigned_literals,[
- AC_TRY_COMPILE([],[long x = 1L + 1UL + 1U + 1],
+ AC_TRY_COMPILE([],[long x = 1L + 1UL + 1U + 1; (void)x],
[cf_cv_unsigned_literals=yes],
[cf_cv_unsigned_literals=no])
])
@@ -8053,15 +8663,20 @@ AC_DEFUN([CF_UPPER],
$1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_UTF8_LIB version: 8 updated: 2012/10/06 08:57:51
+dnl CF_UTF8_LIB version: 10 updated: 2023/01/11 04:05:23
dnl -----------
dnl Check for multibyte support, and if not found, utf8 compatibility library
AC_DEFUN([CF_UTF8_LIB],
[
+AC_HAVE_HEADERS(wchar.h)
AC_CACHE_CHECK(for multibyte character support,cf_cv_utf8_lib,[
cf_save_LIBS="$LIBS"
AC_TRY_LINK([
-#include <stdlib.h>],[putwc(0,0);],
+$ac_includes_default
+#ifdef HAVE_WCHAR_H
+#include <wchar.h>
+#endif
+],[putwc(0,0);],
[cf_cv_utf8_lib=yes],
[CF_FIND_LINKAGE([
#include <libutf8.h>],[putwc(0,0);],utf8,
@@ -8260,7 +8875,7 @@ ifelse($1,,,[
])
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_WCHAR_TYPE version: 4 updated: 2012/10/06 16:39:58
+dnl CF_WCHAR_TYPE version: 5 updated: 2023/12/03 09:21:34
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
@@ -8277,7 +8892,7 @@ AC_TRY_COMPILE([
#ifdef HAVE_LIBUTF8_H
#include <libutf8.h>
#endif],
- [$1 state],
+ [$1 state; (void)state],
[cf_cv_$1=no],
[AC_TRY_COMPILE([
#include <stdlib.h>
@@ -8287,7 +8902,7 @@ AC_TRY_COMPILE([
#ifdef HAVE_LIBUTF8_H
#include <libutf8.h>
#endif],
- [$1 value],
+ [$1 value; (void) value],
[cf_cv_$1=yes],
[cf_cv_$1=unknown])])])
@@ -8336,7 +8951,25 @@ weak_symbol(fopen);
])
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_WITH_ABI_VERSION version: 4 updated: 2021/01/01 13:31:04
+dnl CF_WITH_ABI_ALTERED version: 1 updated: 2023/01/07 16:32:06
+dnl -------------------
+dnl Provide a way to override the displayed ABI version, e.g., in filenames.
+dnl Check this option after using the ABI version in configuration decisions.
+AC_DEFUN([CF_WITH_ABI_ALTERED],[
+AC_REQUIRE([CF_WITH_ABI_VERSION])
+AC_REQUIRE([CF_ABI_DEFAULTS])
+AC_ARG_WITH(abi-altered,
+[ --with-abi-altered=XXX override visible ABI version, for packaging],[
+ CF_NUMBER_SYNTAX($withval,ABI altered)
+ if test "$cf_cv_abi_version" != "$withval"
+ then
+ AC_MSG_WARN(altering visible ABI from $cf_cv_abi_version to $withval)
+ cf_cv_abi_version=$withval
+ fi
+])dnl
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_WITH_ABI_VERSION version: 5 updated: 2023/01/07 16:32:06
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,
@@ -8365,28 +8998,29 @@ AC_ARG_WITH(abi-version,
ifelse($1,,,[
$1_ABI=$cf_cv_abi_version
])
+cf_cv_abi_default=$cf_cv_abi_version
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_WITH_ADA_COMPILER version: 2 updated: 2010/06/26 17:35:58
+dnl CF_WITH_ADA_COMPILER version: 3 updated: 2023/10/28 11:59:01
dnl --------------------
dnl Command-line option to specify the Ada95 compiler.
AC_DEFUN([CF_WITH_ADA_COMPILER],[
-AC_MSG_CHECKING(for ada-compiler)
+AC_MSG_CHECKING(for Ada95 compiler)
AC_ARG_WITH(ada-compiler,
- [ --with-ada-compiler=CMD specify Ada95 compiler command (default gnatmake)],
+ [[ --with-ada-compiler[=CMD] use CMD as Ada95 compiler (default: gnatmake)]],
[cf_ada_compiler=$withval],
[cf_ada_compiler=gnatmake])
AC_SUBST(cf_ada_compiler)
AC_MSG_RESULT($cf_ada_compiler)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_WITH_ADA_INCLUDE version: 2 updated: 2010/06/26 17:35:58
+dnl CF_WITH_ADA_INCLUDE version: 3 updated: 2023/10/28 11:59:01
dnl -------------------
dnl Command-line option to specify where Ada includes will install.
AC_DEFUN([CF_WITH_ADA_INCLUDE],[
-AC_MSG_CHECKING(for ada-include)
+AC_MSG_CHECKING(for Ada95 include directory)
CF_WITH_PATH(ada-include,
- [ --with-ada-include=DIR Ada includes are in DIR],
+ [ --with-ada-include=DIR find Ada95 includes in DIR],
ADA_INCLUDE,
PREFIX/share/ada/adainclude,
[$]prefix/share/ada/adainclude)
@@ -8394,16 +9028,16 @@ AC_SUBST(ADA_INCLUDE)
AC_MSG_RESULT($ADA_INCLUDE)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_WITH_ADA_LIBNAME version: 1 updated: 2019/09/07 18:59:41
+dnl CF_WITH_ADA_LIBNAME version: 3 updated: 2023/11/22 20:48:30
dnl -------------------
dnl CF_WITH_ADA_LIBNAME
dnl -------------------
dnl Command-line option to specify how to name the resulting Ada library.
dnl $1 = default value
AC_DEFUN([CF_WITH_ADA_LIBNAME],[
-AC_MSG_CHECKING(for ada-libname)
+AC_MSG_CHECKING(for Ada95 curses library name)
AC_ARG_WITH(ada-libname,
- [ --with-ada-libname=XXX override default Ada library-name],
+ [[ --with-ada-libname[=XXX] use XXX as Ada95 library name]],
ADA_LIBNAME=[$]withval,
ADA_LIBNAME=$1)
case "x$ADA_LIBNAME" in
@@ -8415,13 +9049,13 @@ AC_SUBST(ADA_LIBNAME)
AC_MSG_RESULT($ADA_LIBNAME)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_WITH_ADA_OBJECTS version: 2 updated: 2010/06/26 17:35:58
+dnl CF_WITH_ADA_OBJECTS version: 3 updated: 2023/10/28 11:59:01
dnl -------------------
dnl Command-line option to specify where Ada objects will install.
AC_DEFUN([CF_WITH_ADA_OBJECTS],[
-AC_MSG_CHECKING(for ada-objects)
+AC_MSG_CHECKING(for Ada95 object directory)
CF_WITH_PATH(ada-objects,
- [ --with-ada-objects=DIR Ada objects are in DIR],
+ [ --with-ada-objects=DIR find Ada95 objects in DIR],
ADA_OBJECTS,
PREFIX/lib/ada/adalib,
[$]prefix/lib/ada/adalib)
@@ -8429,28 +9063,34 @@ AC_SUBST(ADA_OBJECTS)
AC_MSG_RESULT($ADA_OBJECTS)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_WITH_ADA_SHAREDLIB version: 5 updated: 2018/07/21 19:10:35
+dnl CF_WITH_ADA_SHAREDLIB version: 6 updated: 2023/10/28 11:59:01
dnl ---------------------
-dnl Command-line option to specify if an Ada95 shared-library should be built,
+dnl Command-line option to specify if an Ada95 shared library should be built,
dnl and optionally what its soname should be.
AC_DEFUN([CF_WITH_ADA_SHAREDLIB],[
AC_REQUIRE([CF_GNAT_PROJECTS])
-AC_MSG_CHECKING(if an Ada95 shared-library should be built)
+AC_MSG_CHECKING(whether to build an Ada95 shared library)
AC_ARG_WITH(ada-sharedlib,
- [ --with-ada-sharedlib=soname build shared-library (requires GNAT projects)],
+ [ --with-ada-sharedlib build Ada95 shared library; requires GNAT project support],
[with_ada_sharedlib=$withval],
[with_ada_sharedlib=no])
-AC_MSG_RESULT($with_ada_sharedlib)
+cf_ada_sharedlib_warn=no
if test "x$with_ada_sharedlib" != xno
then
if test "x$cf_gnat_projects" != xyes
then
- AC_MSG_WARN(disabling shared-library since GNAT projects are not supported)
with_ada_sharedlib=no
+ cf_ada_sharedlib_warn=yes
fi
fi
+AC_MSG_RESULT($with_ada_sharedlib)
+if test "x$cf_ada_sharedlib_warn" != xno
+then
+ AC_MSG_WARN(disabling Ada95 shared library since GNAT projects are not supported)
+fi
+
ADA_SHAREDLIB='lib$(LIB_NAME).so.1'
MAKE_ADA_SHAREDLIB="#"
@@ -8497,7 +9137,7 @@ if test "$with_dmalloc" = yes ; then
fi
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_WITH_EXPORT_SYMS version: 3 updated: 2014/12/20 19:16:08
+dnl CF_WITH_EXPORT_SYMS version: 5 updated: 2023/11/22 20:48:30
dnl -------------------
dnl Use this with libtool to specify the list of symbols that may be exported.
dnl The input file contains one symbol per line; comments work with "#".
@@ -8507,7 +9147,7 @@ AC_DEFUN([CF_WITH_EXPORT_SYMS],
[
AC_MSG_CHECKING(if exported-symbols file should be used)
AC_ARG_WITH(export-syms,
- [ --with-export-syms=XXX limit exported symbols using libtool],
+ [[ --with-export-syms[=SYM-FILE] limit symbols exported by libtool to those listed in SYM-FILE]],
[with_export_syms=$withval],
[with_export_syms=no])
if test "x$with_export_syms" = xyes
@@ -8699,7 +9339,7 @@ AC_SUBST(LIB_UNINSTALL)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_WITH_LIBTOOL_OPTS version: 4 updated: 2015/04/17 21:13:04
+dnl CF_WITH_LIBTOOL_OPTS version: 6 updated: 2023/11/22 20:48:30
dnl --------------------
dnl Allow user to pass additional libtool options into the library creation
dnl and link steps. The main use for this is to do something like
@@ -8709,7 +9349,7 @@ dnl ./configure --enable-static
AC_DEFUN([CF_WITH_LIBTOOL_OPTS],[
AC_MSG_CHECKING(for additional libtool options)
AC_ARG_WITH(libtool-opts,
- [ --with-libtool-opts=XXX specify additional libtool options],
+ [[ --with-libtool-opts[=XXX] give libtool additional options XXX]],
[with_libtool_opts=$withval],
[with_libtool_opts=no])
AC_MSG_RESULT($with_libtool_opts)
@@ -8725,7 +9365,7 @@ esac
AC_SUBST(LIBTOOL_OPTS)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_WITH_LIB_BASENAME version: 1 updated: 2020/03/07 20:05:14
+dnl CF_WITH_LIB_BASENAME version: 2 updated: 2023/11/22 20:48:30
dnl --------------------
dnl Allow for overriding the basename of a library, i.e., the part to which
dnl prefixes/suffixes are attached.
@@ -8737,7 +9377,7 @@ AC_DEFUN([CF_WITH_LIB_BASENAME],
[
AC_MSG_CHECKING(for desired basename for $2 library)
AC_ARG_WITH($2-libname,
- [ --with-$2-libname=XXX override ifelse($3,,$2,$3) basename of library],
+ [[ --with-$2-libname[=XXX] override ifelse($3,,$2,$3) basename of library]],
[with_lib_basename=$withval],
[with_lib_basename=ifelse($3,,$2,$3)])
$1="$with_lib_basename"
@@ -8780,7 +9420,7 @@ else
fi
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_WITH_PATH version: 11 updated: 2012/09/29 15:04:19
+dnl CF_WITH_PATH version: 12 updated: 2021/09/04 06:35:04
dnl ------------
dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just
dnl defaulting to yes/no.
@@ -8789,7 +9429,7 @@ dnl $1 = option name
dnl $2 = help-text
dnl $3 = environment variable to set
dnl $4 = default value, shown in the help-message, must be a constant
-dnl $5 = default value, if it's an expression & cannot be in the help-message
+dnl $5 = default value, if it is an expression & cannot be in the help-message
dnl
AC_DEFUN([CF_WITH_PATH],
[AC_ARG_WITH($1,[$2 ](default: ifelse([$4],,empty,[$4])),,
@@ -8801,7 +9441,7 @@ eval $3="$withval"
AC_SUBST($3)dnl
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_WITH_PATHLIST version: 12 updated: 2021/01/01 13:31:04
+dnl CF_WITH_PATHLIST version: 13 updated: 2021/09/04 06:35:04
dnl ----------------
dnl Process an option specifying a list of colon-separated paths.
dnl
@@ -8809,7 +9449,7 @@ dnl $1 = option name
dnl $2 = help-text
dnl $3 = environment variable to set
dnl $4 = default value, shown in the help-message, must be a constant
-dnl $5 = default value, if it's an expression & cannot be in the help-message
+dnl $5 = default value, if it is an expression & cannot be in the help-message
dnl $6 = flag to tell if we want to define or substitute
dnl
AC_DEFUN([CF_WITH_PATHLIST],[
@@ -8879,7 +9519,7 @@ AC_ARG_WITH($2-path,
])
])
dnl ---------------------------------------------------------------------------
-dnl CF_WITH_PCRE2 version: 5 updated: 2021/01/26 18:45:12
+dnl CF_WITH_PCRE2 version: 6 updated: 2021/08/11 20:35:34
dnl -------------
dnl Add PCRE2 (Perl-compatible regular expressions v2) to the build if it is
dnl available and the user requests it. Assume the application will otherwise
@@ -8921,12 +9561,23 @@ if test "x$with_pcre2" != xno ; then
# either way, check for the library header files
AC_CHECK_HEADERS(pcre2posix.h pcreposix.h)
+ AC_CHECK_FUNCS(PCRE2regcomp)
fi
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_WITH_PKG_CONFIG_LIBDIR version: 11 updated: 2021/01/01 16:16:30
+dnl CF_WITH_PKG_CONFIG_LIBDIR version: 23 updated: 2023/11/22 20:48:30
dnl -------------------------
dnl Allow the choice of the pkg-config library directory to be overridden.
+dnl
+dnl pkg-config uses a search-list built from these colon-separated lists of
+dnl directories:
+dnl a) $PKG_CONFIG_PATH (tested first, added if set)
+dnl b) $PKG_CONFIG_LIBDIR (tested second, added if set)
+dnl c) builtin-list (added if $PKG_CONFIG_LIBDIR is not set)
+dnl
+dnl pkgconf (used with some systems such as FreeBSD in place of pkg-config)
+dnl optionally ignores $PKG_CONFIG_LIBDIR. Very old versions of pkg-config,
+dnl e.g., Solaris 10 also do not recognize $PKG_CONFIG_LIBDIR.
AC_DEFUN([CF_WITH_PKG_CONFIG_LIBDIR],[
case "$PKG_CONFIG" in
@@ -8938,68 +9589,119 @@ case "$PKG_CONFIG" in
;;
esac
-PKG_CONFIG_LIBDIR=no
+# if $PKG_CONFIG_LIBDIR is set, try to use that
+if test -n "$PKG_CONFIG_PATH"; then
+ cf_search_path=`echo "$PKG_CONFIG_PATH" | sed -e 's/:/ /g' -e 's,^[[ ]]*,,' -e 's,[[ ]]*$,,'`
+elif test -n "$PKG_CONFIG_LIBDIR"; then
+ cf_search_path=`echo "$PKG_CONFIG_LIBDIR" | sed -e 's/:/ /g' -e 's,^[[ ]]*,,' -e 's,[[ ]]*$,,'`
+else
+ cf_search_path=auto
+fi
+
+# if the option is used, let that override. otherwise default to "libdir"
AC_ARG_WITH(pkg-config-libdir,
- [ --with-pkg-config-libdir=XXX use given directory for installing pc-files],
- [PKG_CONFIG_LIBDIR=$withval],
- [test "x$PKG_CONFIG" != xnone && PKG_CONFIG_LIBDIR=yes])
+ [[ --with-pkg-config-libdir[=XXX] use given directory for installing pc-files]],
+ [cf_search_path=$withval],
+ [test "x$PKG_CONFIG" != xnone && test -z "$cf_search_path" && cf_search_path=libdir])
-case x$PKG_CONFIG_LIBDIR in
+case "x$cf_search_path" in
+(xlibdir)
+ PKG_CONFIG_LIBDIR='${libdir}/pkgconfig'
+ AC_MSG_RESULT($PKG_CONFIG_LIBDIR)
+ cf_search_path=
+ ;;
+(x)
+ ;;
+(x/*\ *)
+ PKG_CONFIG_LIBDIR=
+ ;;
(x/*)
+ PKG_CONFIG_LIBDIR="$cf_search_path"
+ AC_MSG_RESULT($PKG_CONFIG_LIBDIR)
+ cf_search_path=
;;
-(xyes)
+(xyes|xauto)
+ AC_MSG_RESULT(auto)
+ cf_search_path=
# Look for the library directory using the same prefix as the executable
- if test "x$PKG_CONFIG" = xnone
+ AC_MSG_CHECKING(for search-list)
+ if test "x$PKG_CONFIG" != xnone
then
- cf_path=$prefix
- else
- cf_path=`echo "$PKG_CONFIG" | sed -e 's,/[[^/]]*/[[^/]]*$,,'`
+ # works for pkg-config since version 0.24 (2009)
+ # works for pkgconf since version 0.8.3 (2012)
+ for cf_pkg_program in \
+ `echo "$PKG_CONFIG" | sed -e 's,^.*/,,'` \
+ pkg-config \
+ pkgconf
+ do
+ cf_search_path=`"$PKG_CONFIG" --variable=pc_path "$cf_pkg_program" 2>/dev/null | tr : ' '`
+ test -n "$cf_search_path" && break
+ done
+
+ # works for pkg-config since import in 2005 of original 2001 HP code.
+ test -z "$cf_search_path" && \
+ cf_search_path=`
+ "$PKG_CONFIG" --debug --exists no-such-package 2>&1 | $AWK "\
+/^Scanning directory (#[1-9][0-9]* )?'.*'$/{ \
+ sub(\"^[[^']]*'\",\"\"); \
+ sub(\"'.*\",\"\"); \
+ printf \" %s\", \\[$]0; } \
+{ next; } \
+"`
fi
- # If you don't like using the default architecture, you have to specify the
- # intended library directory and corresponding compiler/linker options.
- #
- # This case allows for Debian's 2014-flavor of multiarch, along with the
- # most common variations before that point. Some other variants spell the
- # directory differently, e.g., "pkg-config", and put it in unusual places.
- # pkg-config has always been poorly standardized, which is ironic...
- case x`(arch) 2>/dev/null` in
- (*64)
- cf_search_path="\
- $cf_path/lib/*64-linux-gnu \
- $cf_path/share \
- $cf_path/lib64 \
- $cf_path/lib32 \
- $cf_path/lib"
- ;;
- (*)
- cf_search_path="\
- $cf_path/lib/*-linux-gnu \
- $cf_path/share \
- $cf_path/lib32 \
- $cf_path/lib \
- $cf_path/libdata"
- ;;
- esac
+ AC_MSG_RESULT($cf_search_path)
+ ;;
+(*)
+ AC_MSG_ERROR(Unexpected option value: $cf_search_path)
+ ;;
+esac
- CF_VERBOSE(list...)
+if test -n "$cf_search_path"
+then
+ AC_MSG_CHECKING(for first directory)
+ cf_pkg_config_path=none
for cf_config in $cf_search_path
do
- CF_VERBOSE(checking $cf_config/pkgconfig)
- if test -d "$cf_config/pkgconfig"
+ if test -d "$cf_config"
then
- PKG_CONFIG_LIBDIR=$cf_config/pkgconfig
- AC_MSG_CHECKING(done)
+ cf_pkg_config_path=$cf_config
break
fi
done
- ;;
-(*)
- ;;
-esac
+ AC_MSG_RESULT($cf_pkg_config_path)
-if test "x$PKG_CONFIG_LIBDIR" != xno ; then
- AC_MSG_RESULT($PKG_CONFIG_LIBDIR)
+ if test "x$cf_pkg_config_path" != xnone ; then
+ # limit this to the first directory found
+ PKG_CONFIG_LIBDIR="$cf_pkg_config_path"
+ fi
+
+ if test -z "$PKG_CONFIG_LIBDIR" && test -n "$cf_search_path"
+ then
+ AC_MSG_CHECKING(for workaround)
+ if test "$prefix" = "NONE" ; then
+ cf_prefix="$ac_default_prefix"
+ else
+ cf_prefix="$prefix"
+ fi
+ eval cf_libdir=$libdir
+ cf_libdir=`echo "$cf_libdir" | sed -e "s,^NONE,$cf_prefix,"`
+ cf_backup=
+ for cf_config in $cf_search_path
+ do
+ case $cf_config in
+ $cf_libdir/pkgconfig)
+ PKG_CONFIG_LIBDIR=$cf_libdir/pkgconfig
+ break
+ ;;
+ *)
+ test -z "$cf_backup" && cf_backup=$cf_config
+ ;;
+ esac
+ done
+ test -z "$PKG_CONFIG_LIBDIR" && PKG_CONFIG_LIBDIR=$cf_backup
+ AC_MSG_RESULT($PKG_CONFIG_LIBDIR)
+ fi
fi
AC_SUBST(PKG_CONFIG_LIBDIR)
@@ -9047,7 +9749,7 @@ if test "$with_pthread" != no ; then
fi
])
dnl ---------------------------------------------------------------------------
-dnl CF_WITH_REL_VERSION version: 1 updated: 2003/09/20 18:12:49
+dnl CF_WITH_REL_VERSION version: 2 updated: 2023/05/06 18:18:18
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,
@@ -9067,6 +9769,7 @@ ifelse($1,,[
],[
$1_MAJOR=`echo "$cf_cv_rel_version" | sed -e 's/\..*//'`
$1_MINOR=`echo "$cf_cv_rel_version" | sed -e 's/^[[^.]]*//' -e 's/^\.//' -e 's/\..*//'`
+ test -n "$1_MINOR" || $1_MINOR=0
CF_NUMBER_SYNTAX([$]$1_MAJOR,Release major-version)
CF_NUMBER_SYNTAX([$]$1_MINOR,Release minor-version)
])
@@ -9122,6 +9825,27 @@ AC_ARG_WITH(system-type,
])
])dnl
dnl ---------------------------------------------------------------------------
+dnl CF_WITH_TYPE version: 2 updated: 2023/11/25 16:11:47
+dnl ------------
+dnl Accept a TYPE for substitution:
+dnl $1 = name of type
+dnl $2 = help/usage message
+dnl $3 = symbol to set
+dnl $4 = default value
+AC_DEFUN([CF_WITH_TYPE],[
+AC_MSG_CHECKING(for type of $1)
+AC_ARG_WITH([$1], [$2],
+ [$3="$withval"],
+ [$3=$4])
+AC_MSG_RESULT([$]$3)
+case x[$]$3 in
+(x|xyes|xno)
+ AC_MSG_ERROR(expected a type name for $1)
+ ;;
+esac
+AC_SUBST($3)
+])dnl
+dnl ---------------------------------------------------------------------------
dnl CF_WITH_VALGRIND version: 1 updated: 2006/12/14 18:00:21
dnl ----------------
AC_DEFUN([CF_WITH_VALGRIND],[
@@ -9130,7 +9854,7 @@ CF_NO_LEAKS_OPTION(valgrind,
[USE_VALGRIND])
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_WITH_VERSIONED_SYMS version: 10 updated: 2021/01/04 18:48:01
+dnl CF_WITH_VERSIONED_SYMS version: 13 updated: 2023/12/03 09:24:04
dnl ----------------------
dnl Use this when building shared library with ELF, to markup symbols with the
dnl version identifier from the given input file. Generally that identifier is
@@ -9143,7 +9867,7 @@ AC_REQUIRE([AC_PROG_EGREP])dnl
AC_MSG_CHECKING(if versioned-symbols file should be used)
AC_ARG_WITH(versioned-syms,
- [ --with-versioned-syms=X markup versioned symbols using ld],
+ [[ --with-versioned-syms[=MAP-FILE] version ELF shared library symbols per MAP-FILE]],
[with_versioned_syms=$withval],
[with_versioned_syms=no])
case "x$with_versioned_syms" in
@@ -9230,15 +9954,15 @@ local:
EOF
cat >conftest.$ac_ext <<EOF
#line __oline__ "configure"
-int _ismissing(void) { return 1; }
-int _localf1(void) { return 1; }
-int _localf2(void) { return 2; }
-int globalf1(void) { return 1; }
-int globalf2(void) { return 2; }
-int _sublocalf1(void) { return 1; }
-int _sublocalf2(void) { return 2; }
-int subglobalf1(void) { return 1; }
-int subglobalf2(void) { return 2; }
+extern int _ismissing(void); int _ismissing(void) { return 1; }
+extern int _localf1(void); int _localf1(void) { return 1; }
+extern int _localf2(void); int _localf2(void) { return 2; }
+extern int globalf1(void); int globalf1(void) { return 1; }
+extern int globalf2(void); int globalf2(void) { return 2; }
+extern int _sublocalf1(void); int _sublocalf1(void) { return 1; }
+extern int _sublocalf2(void); int _sublocalf2(void) { return 2; }
+extern int subglobalf1(void); int subglobalf1(void) { return 1; }
+extern int subglobalf2(void); int subglobalf2(void) { return 2; }
EOF
cat >conftest.mk <<EOF
CC=${CC}
@@ -9269,7 +9993,7 @@ AC_SUBST(VERSIONED_SYMS)
AC_SUBST(WILDCARD_SYMS)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_WITH_X11_RGB version: 2 updated: 2019/12/31 08:53:54
+dnl CF_WITH_X11_RGB version: 3 updated: 2023/10/28 11:59:01
dnl ---------------
dnl Handle configure option "--with-x11-rgb", setting these shell
dnl variables:
@@ -9309,7 +10033,7 @@ dnl /usr/X11/lib/X11/rgb.txt
AC_DEFUN([CF_WITH_X11_RGB],[
AC_MSG_CHECKING(for X11 rgb file)
AC_ARG_WITH(x11-rgb,
- [ --with-x11-rgb=FILE file containing X11 rgb information (EPREFIX/lib/X11/rgb.txt)],
+ [ --with-x11-rgb=FILE obtain X11 color definitions from FILE (default: EPREFIX/lib/X11/rgb.txt)],
[RGB_PATH=$withval],
[RGB_PATH=auto])
@@ -9355,7 +10079,7 @@ fi
AC_SUBST(no_x11_rgb)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_XOPEN_SOURCE version: 57 updated: 2021/01/01 16:53:59
+dnl CF_XOPEN_SOURCE version: 67 updated: 2023/09/06 18:55:27
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,
@@ -9364,6 +10088,18 @@ dnl
dnl Parameters:
dnl $1 is the nominal value for _XOPEN_SOURCE
dnl $2 is the nominal value for _POSIX_C_SOURCE
+dnl
+dnl The default case prefers _XOPEN_SOURCE over _POSIX_C_SOURCE if the
+dnl implementation predefines it, because X/Open and most implementations agree
+dnl that the latter is a legacy or "aligned" value.
+dnl
+dnl Because _XOPEN_SOURCE is preferred, if defining _POSIX_C_SOURCE turns
+dnl that off, then refrain from setting _POSIX_C_SOURCE explicitly.
+dnl
+dnl References:
+dnl https://pubs.opengroup.org/onlinepubs/007904975/functions/xsh_chap02_02.html
+dnl https://docs.oracle.com/cd/E19253-01/816-5175/standards-5/index.html
+dnl https://www.gnu.org/software/libc/manual/html_node/Feature-Test-Macros.html
AC_DEFUN([CF_XOPEN_SOURCE],[
AC_REQUIRE([AC_CANONICAL_HOST])
AC_REQUIRE([CF_POSIX_VISIBLE])
@@ -9378,9 +10114,6 @@ case "$host_os" in
(aix[[4-7]]*)
cf_xopen_source="-D_ALL_SOURCE"
;;
-(msys)
- cf_XOPEN_SOURCE=600
- ;;
(darwin[[0-8]].*)
cf_xopen_source="-D_APPLE_C_SOURCE"
;;
@@ -9406,7 +10139,7 @@ case "$host_os" in
cf_xopen_source="-D_SGI_SOURCE"
cf_XOPEN_SOURCE=
;;
-(linux*|uclinux*|gnu*|mint*|k*bsd*-gnu|cygwin)
+(linux*gnu|linux*gnuabi64|linux*gnuabin32|linux*gnueabi|linux*gnueabihf|linux*gnux32|uclinux*|gnu*|mint*|k*bsd*-gnu|cygwin|msys|mingw*|linux*uclibc)
CF_GNU_SOURCE($cf_XOPEN_SOURCE)
;;
(minix*)
@@ -9420,7 +10153,15 @@ case "$host_os" in
(netbsd*)
cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
;;
-(openbsd[[4-9]]*)
+(openbsd[[6-9]]*)
+ # OpenBSD 6.x has broken locale support, both compile-time and runtime.
+ # see https://www.mail-archive.com/bugs@openbsd.org/msg13200.html
+ # Abusing the conformance level is a workaround.
+ AC_MSG_WARN(this system does not provide usable locale support)
+ cf_xopen_source="-D_BSD_SOURCE"
+ cf_XOPEN_SOURCE=700
+ ;;
+(openbsd[[4-5]]*)
# setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw
cf_xopen_source="-D_BSD_SOURCE"
cf_XOPEN_SOURCE=600
@@ -9447,12 +10188,20 @@ case "$host_os" in
;;
(*)
CF_TRY_XOPEN_SOURCE
+ cf_save_xopen_cppflags="$CPPFLAGS"
CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
+ # Some of these niche implementations use copy/paste, double-check...
+ if test "$cf_cv_xopen_source" = no ; then
+ CF_VERBOSE(checking if _POSIX_C_SOURCE interferes with _XOPEN_SOURCE)
+ AC_TRY_COMPILE(CF__XOPEN_SOURCE_HEAD,CF__XOPEN_SOURCE_BODY,,[
+ AC_MSG_WARN(_POSIX_C_SOURCE definition is not usable)
+ CPPFLAGS="$cf_save_xopen_cppflags"])
+ fi
;;
esac
if test -n "$cf_xopen_source" ; then
- CF_ADD_CFLAGS($cf_xopen_source,true)
+ CF_APPEND_CFLAGS($cf_xopen_source,true)
fi
dnl In anything but the default case, we may have system-specific setting
@@ -9462,7 +10211,7 @@ if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then
AC_MSG_CHECKING(if _XOPEN_SOURCE really is set)
AC_TRY_COMPILE([#include <stdlib.h>],[
#ifndef _XOPEN_SOURCE
-make an error
+#error _XOPEN_SOURCE is not defined
#endif],
[cf_XOPEN_SOURCE_set=yes],
[cf_XOPEN_SOURCE_set=no])
@@ -9471,7 +10220,7 @@ make an error
then
AC_TRY_COMPILE([#include <stdlib.h>],[
#if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE
-make an error
+#error (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE
#endif],
[cf_XOPEN_SOURCE_set_ok=yes],
[cf_XOPEN_SOURCE_set_ok=no])
@@ -9491,3 +10240,21 @@ dnl ------------------
dnl Trim something using sed, then trim extra whitespace
dnl $1 = extra parameters, e.g., in CF_STRIP_G_OPT
define([CF__SED_TRIMBLANKS],[sed ifelse($1,,,[$1] )-e 's%[[ ]]% %g' -e 's% [[ ]]*% %g' -e 's%^ %%' -e 's% [$]%%'])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF__XOPEN_SOURCE_BODY version: 2 updated: 2023/02/18 17:41:25
+dnl ---------------------
+dnl body of test when test-compiling for _XOPEN_SOURCE check
+define([CF__XOPEN_SOURCE_BODY],
+[
+#ifndef _XOPEN_SOURCE
+#error _XOPEN_SOURCE is not defined
+#endif
+])
+dnl ---------------------------------------------------------------------------
+dnl CF__XOPEN_SOURCE_HEAD version: 2 updated: 2023/02/18 17:41:25
+dnl ---------------------
+dnl headers to include when test-compiling for _XOPEN_SOURCE check
+define([CF__XOPEN_SOURCE_HEAD],
+[
+$ac_includes_default
+])
diff --git a/announce.html.in b/announce.html.in
index 84b9d4297de5..9889ef1bfb6c 100644
--- a/announce.html.in
+++ b/announce.html.in
@@ -1,7 +1,7 @@
<!--
- $Id: announce.html.in,v 1.99 2020/10/19 08:18:12 tom Exp $
+ $Id: announce.html.in,v 1.107 2024/04/27 16:45:27 tom Exp $
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
@@ -29,12 +29,10 @@
****************************************************************************
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-
<html>
<head>
<meta name="generator" content=
- "HTML Tidy for HTML5 for Linux version 5.2.0">
-
+ "HTML Tidy for HTML5 for Linux version 5.6.0">
<title>Announcing ncurses @VERSION@</title>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
<meta http-equiv="Content-Type" content=
@@ -57,7 +55,6 @@
}
</style>
</head>
-
<body>
<h1 class="no-header">Announcing ncurses @VERSION@</h1>
@@ -140,28 +137,27 @@
<blockquote>
<p><a href=
- "ftp://ftp.invisible-island.net/ncurses/">ftp://ftp.invisible-island.net/ncurses/</a>
+ "https://invisible-island.net/archives/ncurses/">https://invisible-island.net/archives/ncurses/</a>
or<br>
<a href=
"https://invisible-mirror.net/archives/ncurses/">https://invisible-mirror.net/archives/ncurses/</a>&nbsp;.</p>
</blockquote>
- <p>It is also available via anonymous FTP at the GNU distribution
- site</p>
+ <p>It is also available at the GNU distribution site</p>
<blockquote>
<p><a href=
- "ftp://ftp.gnu.org/gnu/ncurses/">ftp://ftp.gnu.org/gnu/ncurses/</a>&nbsp;.</p>
+ "https://ftp.gnu.org/gnu/ncurses/">https://ftp.gnu.org/gnu/ncurses/</a>&nbsp;.</p>
</blockquote>
<h2><a name="h2-release-notes" id="h2-release-notes">Release
Notes</a></h2>
<p>These notes are for <span class="main-name">ncurses</span>
- @VERSION@, released <strong>February 12, 2020</strong>.</p>
+ @VERSION@, released <strong>April 27, 2024</strong>.</p>
<p>This release is designed to be source-compatible with
- <span class="main-name">ncurses</span> 5.0 through 6.1; providing
+ <span class="main-name">ncurses</span> 5.0 through 6.4; providing
extensions to the application binary interface (ABI). Although
the source can still be configured to support the <span class=
"main-name">ncurses</span> 5 ABI, the reason for the release is
@@ -173,292 +169,181 @@
this announcement.</p>
<p>The most <a href="#h3-bug-fixes">important
- bug-fixes/improvements</a> dealt with user-defined capabilities
- in terminal descriptions. The release notes also mention some
- other bug-fixes, but are focused on new features and improvements
- to existing features since <span class="main-name">ncurses</span>
- 6.1 release.</p>
+ bug-fixes/improvements</a> dealt with robustness issues. The
+ release notes also mention some other bug-fixes, but are focused
+ on new features and improvements to existing features since
+ <span class="main-name">ncurses</span> 6.4 release.</p>
<h3><a name="h3-library" id="h3-library">Library improvements</a></h3>
<h4><a name="h4-new-library" id="h4-new-library">New features</a></h4>
- <p>There are several new features:</p>
+ <p>These are new features:</p>
<ul>
<li>
- <p><a href=
- "@HOMEPAGE@/man/form_field_opts.3x.html">O_EDGE_INSERT_STAY</a>
- tells the form library to optionally delay cursor movement on
- a field edge/boundary</p>
- </li>
+ <p>The low-level terminfo and termcap interfaces are used
+ both by the higher-level curses library, as well as by many
+ applications.</p>
- <li>
- <p><a href=
- "@HOMEPAGE@/man/form_field_opts.3x.html">O_INPUT_FIELD</a>
- extension to form library allows a dynamic field to shrink if
- the new limit is smaller than the current field size.</p>
- </li>
+ <p>The functions which convert parameterized terminal
+ capability strings for output to the terminal
+ (<code>tiparm</code> and <code>tparm</code>) analyze the
+ capability string to determine which parameters are strings
+ (i.e., addresses), versus numbers (not addresses).</p>
- <li>
- <p>added <a href=
- "@HOMEPAGE@/man/curs_memleaks.3x.html">exit_curses</a> and
- <a href=
- "@HOMEPAGE@/man/curs_memleaks.3x.html">exit_terminfo</a> to
- replace internal symbols for leak-checking.</p>
- </li>
-
- <li>
- <p>added <a href=
- "@HOMEPAGE@/man/curs_trace.3x.html#h3-Functions">curses_trace</a>,
- to replace trace().</p>
- </li>
- </ul>
+ <p>The library's analysis of a capability string may differ
+ from the calling application's design if environment
+ variables are used to point to an invalid terminal database.
+ This is a longstanding problem with <em>all</em>
+ implementations of terminfo, dating from the early 1980s.</p>
- <p>Additionally, to improve performance other changes (and
- extensions) are provided in this release:</p>
+ <p>Two new functions address this problem: by providing a
+ function which allows the calling application to tell ncurses
+ how many string-parameters to expect:</p>
- <ul>
- <li>
- <p>mouse decoding now handles shift/control/alt logic when
- decoding xterm's 1006 mode</p>
- </li>
-
- <li>
- <p>ncurses now defines a limit for <a href=
- "@HOMEPAGE@/man/curs_getstr.3x.html">wgetnstr</a>, <a href=
- "@HOMEPAGE@/man/curs_get_wstr.3x.html">wgetn_wstr</a> when
- length is negative or &ldquo;too large&rdquo;.</p>
- </li>
-
- <li>reordered loop-limit checks in <a href=
- "@HOMEPAGE@/man/curs_insstr.3x.html">winsnstr</a> in case the
- string has no terminating null and only the number of
- characters is used.</li>
-
- <li>
- <p>there is now no buffer-size limit when reading the
- <a href="@HOMEPAGE@/man/ncurses.3x.html#h3-TERMCAP"><tt>$TERMCAP</tt></a>
- variable.</p>
- </li>
-
- <li>
- <p>the <a href=
- "@HOMEPAGE@/man/ncurses.3x.html#h3-TERMCAP"><tt>$TERMCAP</tt></a>
- variable may be interpreted as a fallback to a terminfo
- entry</p>
- </li>
+ <ul>
+ <li><code>tiscan_s</code> helps applications check
+ formatting capabilities that would be passed to
+ <code>tiparm_s</code>.</li>
- <li>
- <p><a href=
- "@HOMEPAGE@/man/curs_terminfo.3x.html#h3-Output-Functions"><tt>
- mvcur</tt></a> now decides whether to use hard-tabs, using
- <strong><tt>xt</tt></strong>, <strong><tt>tbc</tt></strong>
- and <strong><tt>hts</tt></strong> as clues.</p>
+ <li><code>tiparm_s</code> provides applications a way to
+ tell ncurses what the expected parameters are for a
+ capability.</li>
+ </ul>
</li>
<li>
- <p>extended colors are improved by modifying an internal call
- to <a href=
- "@HOMEPAGE@/man/curs_terminfo.3x.html#h3-Output-Functions"><tt>
- vid_puts</tt></a> to pass extended color pairs e.g., from
- <tt>tty_update.c</tt> and <tt>lib_mvcur.c</tt></p>
- </li>
+ <p>The ncurses library supports a compile-time feature
+ (enabled with the configure <code>--enable-check-size</code>
+ option) which simplifies initialization with terminals which
+ do not negotiate window (screen) size. This is done in
+ <code>setupterm</code>, by providing for using ANSI
+ cursor-position report (in user6/user7 terminfo capabilities)
+ to obtain the screen size if neither environment variables or
+ ioctl is used.</p>
- <li>
- <p id="getenv-fixes">the initialization functions now avoid
- relying upon persistent data for the result from <a href=
- "#getenv-check"><tt>getenv</tt></a></p>
+ <p>The ncurses test-program with options
+ &ldquo;<code>-E&nbsp;-T</code>&rdquo; demonstrates this
+ feature.</p>
</li>
- <li>
- <p>scrolling is improved:</p>
-
- <ul>
- <li>a limit check in <tt>newline_forces_scroll</tt> handles
- the case where the row is inside scroll-margins, but not at
- the end.</li>
-
- <li>
- <p>improved loop limits in <tt>_nc_scroll_window</tt>
- handle a case where the scrolled data is a pad which is
- taller than the window.</p>
- </li>
- </ul>
- </li>
+ <li>add functions to query tty-flags in
+ <code>SCREEN</code></li>
</ul>
+ <p>This release drops compatibility with obsolete versions of
+ <a href="@HOMEPAGE@/tack/">tack</a>, e.g., pre-1.08</p>
+
<h4><a name="h4-fixes-library" id="h4-fixes-library">Other
improvements</a></h4>
- <p>These are revised features:</p>
+ <p>These are improvements to existing features:</p>
<ul>
<li>
- <p>used &ldquo;<tt>const</tt>&rdquo; in some prototypes
- rather than <tt>NCURSES_CONST</tt> where X/Open Curses was
- updated to do this, e.g., <tt>wscanw</tt>, <tt>newterm</tt>,
- the terminfo interface. Also use &ldquo;<tt>const</tt>&rdquo;
- for consistency in the termcap interface, which was withdrawn
- by X/Open Curses in Issue 5 (2007). As of Issue 7, X/Open
- Curses still lacks &ldquo;<tt>const</tt>&rdquo; for certain
- return values, e.g., <a href=
- "@HOMEPAGE@/man/curs_util.3x.html#h3-keyname_key_name">keyname</a>.</p>
- </li>
-
- <li>
- <p>modified <a href=
- "@HOMEPAGE@/man/curs_bkgd.3x.html#h3-bkgd"><tt>wbkgd</tt></a>
- and <a href=
- "@HOMEPAGE@/man/curs_bkgrnd.3x.html#h3-bkgrnd"><tt>wbkgrnd</tt></a>
- to improve compatibility with SVr4 curses, changing the way
- the window rendition is updated when the background character
- is modified</p>
- </li>
-
- <li>
- <p>improved terminfo write/read by modifying the fourth item
- of the extended header to denote the number of valid strings
- in the extended string table (see <a href=
- "@HOMEPAGE@/man/term.5.html#h3-EXTENDED-STORAGE-FORMAT">term(5)</a>).</p>
- </li>
-
- <li>
- <p>modified the initialization checks for mouse so that the
- <a href=
- "/ncurses/terminfo.src.html#tic-xterm_sm_1006"><tt>xterm+sm+1006</tt></a>
- block will work with terminal descriptions not mentioning
- <em>xterm</em>.</p>
- </li>
- </ul>
+ <p>In addition to the new, safer function
+ <code>tiparm_s</code>, ncurses adds checks to make the older
+ <code>tiparm</code>, <code>tparm</code> and
+ <code>tgoto</code> functions safer:</p>
- <p>These were done to limit or ultimately deprecate features:</p>
+ <ul>
+ <li>
+ <p>the terminfo functions <code>tiparm</code> and
+ <code>tparm</code> ensure that the capability string
+ comes from the terminal description which ncurses loads,
+ rather than from random data which the application
+ happens to have.</p>
+ </li>
- <ul>
- <li>
- <p>deprecated <a href=
- "@HOMEPAGE@/NEWS.html#t970831">safe-sprintf</a>, since the
- <tt>vsnprintf</tt> function, which does what was needed, was
- standardized long ago.</p>
- </li>
+ <li>
+ <p>the <code>tgoto</code> function disallows capabilities
+ which its analysis shows will attempt to use string
+ parameters.</p>
+ </li>
- <li>
- <p>marked <a href=
- "@HOMEPAGE@/man/curs_printw.3x.html#h2-PORTABILITY"><tt>vwprintw</tt></a>
- and <tt>vwscanw</tt> as deprecated; recommend using <a href=
- "@HOMEPAGE@/man/curs_printw.3x.html"><tt>vw_printw</tt></a>
- and <tt>vw_scanw</tt>, respectively.</p>
+ <li>
+ <p>ncurses uses internal functions which correspond to
+ <code>tiparm</code>, and <code>tgoto</code> which ensure
+ that the capability strings which are passed to these
+ functions come from the loaded terminal description.</p>
+ </li>
+ </ul>
</li>
<li>
- <p>added deprecation warnings for internal functions called
- by older versions of <a href=
- "@HOMEPAGE@/tack.html">tack</a>.</p>
+ <p>improve check in <code>lib_tparm.c</code>, ensuring that a
+ char* fits into a <code>TPARM_ARG</code></p>
</li>
<li>
- <p>removed unused <tt>_nc_import_termtype2</tt> function.</p>
+ <p>modify <code>_nc_syserr_abort</code> to use
+ <code>_nc_env_access</code>, rather than only checking root
+ uid</p>
</li>
- </ul>
- <p>These are improvements to existing features:</p>
-
- <ul>
<li>
- <p>check parameter of <a href=
- "@HOMEPAGE@/man/curs_threads.3x.html">set_escdelay</a>,
- return ERR if negative.</p>
+ <p>improve thread lock in <code>lib_trace.c</code></p>
</li>
<li>
- <p>check parameter of <a href=
- "@HOMEPAGE@/man/curs_threads.3x.html">set_tabsize</a>, return
- ERR if not greater than zero</p>
+ <p>modify <code>flushinp</code> to use file descriptors in
+ <code>SCREEN</code>, rather than from <code>TERMINAL</code>,
+ and check if they are for a terminal, like SVr4</p>
</li>
<li>
- <p>correct a status-check in _nc_read_tic_entry() so that if
- reading a hex/b64 <a href=
- "@HOMEPAGE@/man/ncurses.3x.html#h3-TERMINFO"><tt>$TERMINFO</tt></a>,
- and the <a href=
- "@HOMEPAGE@/man/ncurses.3x.html#h3-TERM"><tt>$TERM</tt></a>
- does not match, fall-through to the compiled-in search
- list.</p>
+ <p>modify <code>mcprint</code> to use file descriptor in
+ <code>SCREEN</code>, for consistency</p>
</li>
<li>
- <p>amend check for <a href=
- "@HOMEPAGE@/man/terminfo.5.html#h3-Predefined-Capabilities"><tt>
- repeat_char</tt></a> to handle a case where setlocale() was
- called after <a href=
- "@HOMEPAGE@/man/curs_initscr.3x.html"><tt>initscr</tt></a></p>
+ <p>modify internal function <code>_nc_read_file_entry</code>
+ to show relevant filename in warnings</p>
</li>
<li>
- <p>move macro for <a href=
- "@HOMEPAGE@/man/curs_touch.3x.html"><tt>is_linetouched</tt></a>
- inside <strong><tt>NCURSES_NOMACROS</tt></strong>
- <em><tt>ifndef</tt></em>.</p>
+ <p>improve checks in internal function
+ <code>convert_string</code> for corrupt terminfo entry</p>
</li>
<li>
- <p>use <tt>_nc_copy_termtype2</tt> rather than direct
- assignment in <a href=
- "@HOMEPAGE@/man/curs_terminfo.3x.html#h3-Initialization">setupterm</a>,
- in case it is called repeatedly using fallback terminfo
- descriptions</p>
+ <p>review/improve handling of out-of-memory conditions</p>
</li>
<li>
- <p>improve workaround for Solaris wcwidth versus line-drawing
- characters</p>
+ <p>limit delays to 30 seconds, i.e., padding delays in
+ terminfo, as well as <code>napms</code> and
+ <code>delay_output</code> functions</p>
</li>
<li>
- <p>add checks in <a href=
- "@HOMEPAGE@/man/resizeterm.3x.html"><tt>repair_subwindows</tt></a>
- to keep the current position and scroll-margins inside the
- resized subwindow.</p>
+ <p>fix reallocation loop for <code>vsnprintf</code> in
+ <code>_nc_sprintf_string</code> by copying the va_list
+ variable</p>
</li>
<li>
- <p>correct a buffer-limit in <tt>write_entry.c</tt> for
- systems that use caseless filenames.</p>
+ <p>modify <code>delscreen</code> to limit the windows which
+ it creates to just those associated with the screen</p>
</li>
<li>
- <p>improved build-time utility <em>report_offsets</em>:</p>
-
- <ul>
- <li>
- <p>add categories, e.g., "w" for wide-character, "t" for
- threads to make the report more readable. Reorganized the
- structures reported to make the categories more
- apparent.</p>
- </li>
-
- <li>
- <p>add <tt>NCURSES_GLOBALS</tt> and
- <tt>NCURSES_PRESCREEN</tt> to report to show how similar
- the different <em>libtinfo</em> configurations are.</p>
- </li>
- </ul>
+ <p>modify <code>endwin</code> to return an error if it is
+ called again without an intervening screen update</p>
</li>
<li>
- <p>modified some header files to ensure that those include
- necessary files except for the previously-documented
- cases</p>
+ <p>modify <code>wenclose</code> to handle pads</p>
</li>
<li>
- <p>added some traces in initialization to show whether a
- fallback entry is used.</p>
+ <p>eliminate use of <code>PATH_MAX</code> in
+ <code>lib_trace.c</code></p>
</li>
<li>
- <p>made minor optimization to reduce calls to
- _nc_reserve_pairs</p>
+ <p>provide for any <code>CCHARW_MAX</code> greater than 1</p>
</li>
</ul>
@@ -466,504 +351,336 @@
<ul>
<li>
- <p>fix a special case in <tt>PutAttrChar</tt> where a cell is
- marked as alternate-character set, but the terminal does not
- actually support the given graphic character. This would
- happen in an older terminal such as <em>vt52</em>, which
- lacks most line-drawing capability.</p>
+ <p>correct loop termination condition in
+ <code>waddnstr</code> and <code>waddnwstr</code></p>
</li>
<li>
- <p>corrected flag for "seq" method of db 1.8.5 interface,
- needed by toe on some of the BSDs.</p>
+ <p>improve parsing in internal function
+ <code>_nc_msec_cost</code>, allowing a single decimal
+ point</p>
</li>
<li>
- <p>modify comparison in make_hash.c to correct a special case
- in collision handling for Caps-hpux11</p>
+ <p>amend parameter check for entire string versus specific
+ length in <code>winsnstr</code> and <code>wins_nwstr</code>
+ to match Solaris; make similar correction to
+ <code>wins_nwstr</code></p>
</li>
<li>
- <p>add extended_slk_color{,_sp} symbols to the appropriate
- package/*.{map,sym} files</p>
+ <p>correct internal function <code>wadd_wch_literal</code>
+ when adding a non-spacing character to a double-width
+ character</p>
</li>
<li>
- <p>modify lib_setup to avoid calling pthread_self() without
- first verifying that the address is valid, i.e., for weak
- symbols</p>
- </li>
-
- <li>
- <p>add a couple of broken-linker symbols to the list of
- versioned symbols to help with link-time optimization versus
- weak symbols.</p>
+ <p>correct definition of <code>Charable</code> macro for
+ non-wide ncurses library .</p>
</li>
</ul>
<h3><a name="h3-programs" id="h3-programs">Program
improvements</a></h3>
- <p id="h4-utilities">Several improvements were made to the utility programs:</p>
+ <p id="h4-utilities">Several improvements were made to the
+ utility programs. Some were done to make the <code>infocmp</code>
+ option &ldquo;<tt>-u</tt>&rdquo; option help refactor the
+ terminal database.</p>
<dl>
- <dt><span class="part-name">clear</span>
+ <dt><span class="part-name"><a href=
+ "@HOMEPAGE@/man/infocmp.1m.html">infocmp</a></span>
</dt>
<dd>
<ul>
- <li>improved logic for clearing with the <em>E3</em>
- extension, in case the terminal scrolls content onto its
- saved-lines before actually clearing the display, by
- clearing the saved-lines after clearing the display</li>
- </ul>
- </dd>
+ <li>
+ <p>add limit checks for processing extended capabilities
+ with the &ldquo;<code>-u</code>&rdquo; option</p>
+ </li>
- <dt><span class="part-name">infocmp</span>
- </dt>
+ <li>
+ <p>correct initial alignment of extended capabilities, so
+ that the &ldquo;<code>-u</code>&rdquo; option can be used
+ for more than two terminal types</p>
+ </li>
- <dd>
- <ul>
- <li>omit filtering of &ldquo;<tt>OTxx</tt>&rdquo; names
- which are used for obsolete capabilities, when the output
- is sorted by long-names. This change helps when making a
- table of the short/long capability names.</li>
+ <li>
+ <p>modify &ldquo;<code>-u</code>&rdquo; option to not
+ report cancels for strings which were already cancelled
+ in a use'd chunk.</p>
+ </li>
+
+ <li>
+ <p>correct an assignment &ldquo;<code>-u</code>&rdquo;
+ for detecting if a boolean is unset in a base entry and
+ set in a use'd chunk, i.e., if it was cancelled.</p>
+ </li>
</ul>
</dd>
- <dt><span class="part-name">tic</span>
+ <dt><span class="part-name"><a href=
+ "@HOMEPAGE@/man/tic.1m.html">tic</a></span>
</dt>
<dd>
<ul>
- <li>added check for consistent alternate character set
- capabilities.</li>
-
- <li>added check for paired <tt>indn</tt>/<tt>rin</tt>.</li>
-
- <li>added check for terminals with <tt>parm_dch</tt> vs
- <tt>parm_ich</tt>.</li>
-
- <li>added check for the case where
- <tt>setf</tt>/<tt>setb</tt> are given using different
- strings, but provide identical results to
- <tt>setaf</tt>/<tt>setab</tt>.</li>
-
- <li>corrected check for <tt>ich1</tt>.</li>
+ <li>
+ <p>correct limit-check when dumping tc/use clause via
+ &ldquo;<code>-I</code>&rdquo;</p>
+ </li>
- <li>changed a too-large terminal entry from a fatal error
- to a warning.</li>
- </ul>
- </dd>
+ <li>
+ <p>check return value of <code>_nc_save_str</code>, in
+ special case where extended capabilities are processed
+ but the terminal description was not initialized</p>
+ </li>
- <dt><span class="part-name">toe</span>
- </dt>
+ <li>
+ <p>modify check for multiply defined aliases to report
+ problems within the current runtime rather than for
+ conflicts with pre-existing terminal descriptions.</p>
+ </li>
- <dd>
- <ul>
- <li>ignores any hex/b64 <tt>$TERMINFO</tt> value in the
- list of terminfo databases.</li>
+ <li>
+ <p>disallow using <code>$TERMINFO</code> or
+ <code>$HOME/.terminfo</code> when
+ &ldquo;<code>-o</code>&rdquo; option is used</p>
+ </li>
</ul>
</dd>
- <dt><span class="part-name">tset</span>
- </dt>
+ <dt><span class="part-name"><a href=
+ "@HOMEPAGE@/man/tput.1.html">tput</a></span> and <span class=
+ "part-name"><a href=
+ "@HOMEPAGE@/man/tset.1.html">tset</a></span></dt>
<dd>
<ul>
- <li>replace check in <span class="part-name">reset</span>
- command for obsolete &ldquo;<tt>pt</tt>&rdquo; capability
- using <tt>tbc</tt> and <tt>hts</tt> capabilities as
- clues</li>
-
- <li>modify <span class="part-name">reset</span> to allow
- for tabstops at intervals other than 8.</li>
-
- <li>change <span class="part-name">reset</span>'s behavior
- for margins to simply clear soft-margins if possible,
- rather than clearing and then setting them according to the
- terminal's width.</li>
- </ul>
- </dd>
+ <li>
+ <p>add &ldquo;<code>-v</code>&rdquo; option to tput, to
+ show warnings</p>
+ </li>
- <dt><span class="part-name">tput</span>
- </dt>
+ <li>
+ <p>modify <em>reset</em> command to avoid altering clocal
+ if the terminal uses a modem</p>
+ </li>
- <dd>
- <ul>
- <li>add &ldquo;<tt>x</tt>&rdquo; to <tt>getopt</tt> string
- so that &ldquo;<tt>tput&nbsp;-x&nbsp;clear</tt>&rdquo;
- works.</li>
+ <li>
+ <p>modify <em>reset</em> feature to avoid 1-second sleep
+ if running in a pseudo-terminal</p>
+ </li>
</ul>
</dd>
</dl>
- <p>Several changes were made to the generated ncurses*config
- scripts and the analogous &ldquo;<tt>.pc</tt>&rdquo; files to
- reduce differences between the configurations they report:</p>
-
- <ul>
- <li>
- <p>modified the ncurse*-config and pc-files to more closely
- match for the <tt>-I</tt> and <tt>-l</tt> options.</p>
- </li>
-
- <li>
- <p>filtered out linker-specs from the <tt>--libs</tt>
- report.</p>
- </li>
-
- <li>
- <p>amended the ncurses*-config and pc-files to take into
- account the rpath hack which differed between those
- files.</p>
- </li>
-
- <li>
- <p>modified generated ncurses*config and ncurses.pc,
- ncursesw.pc, etc., to list helper libraries such as gpm for
- static linking.</p>
- </li>
- </ul>
-
<h4><a name="h4-examples" id="h4-examples">Examples</a></h4>
<p>Along with the library and utilities, improvements were made
to the <a href=
- "@HOMEPAGE@/ncurses-examples.html">ncurses-examples</a>. Most of
- this activity aimed at improving the test-packages. A few changes
- are more generally useful, e.g., for the main ncurses
- test-program, and for analyzing traces using the
- <em>tracemunch</em> script:</p>
+ "@HOMEPAGE@/ncurses-examples.html">ncurses-examples</a>:</p>
<ul>
<li>
- <p>improve recovery from error when reading command-character
- in <tt>test/ncurses.c</tt>, showing the relevant error
- message and not exiting on EINTR.</p>
+ <p>modify <code>test_tparm</code> to account for extended
+ capabilities</p>
</li>
<li>
- <p>improve <em>tracemunch</em>, by keeping track of
- <tt>TERMINAL*</tt> values, and if tracing was first turned on
- after initialization, attempt to show distinct screen, window
- and terminal names anyway.</p>
+ <p>corrected mouse mask in <code>test/testcurs.c</code></p>
</li>
<li>
- <p>modify <em>tracemunch</em> to accept filename parameters
- in addition to use as a pipe/filter.</p>
+ <p>modify <code>test/clip_printw.c</code> to optionally test
+ non-wrapped updates</p>
</li>
<li>
- <p>update <em>tracemunch</em> to work with <em>perl
- 5.26.2</em>, which changed the rules for escaping regular
- expressions.</p>
+ <p>modify <code>test/test_mouse.c</code> to use curses api
+ for raw/noraw</p>
</li>
<li>
- <p>add some checks in <em>tracemunch</em> for undefined
- variables.</p>
- </li>
-
- <li>
- <p>modify <tt>TurnOn</tt>/<tt>TurnOff</tt> macros (in
- lib_vidattr.c and lib_vid_attr.c) to avoid expansion of
- &ldquo;<tt>CUR</tt>&rdquo; in trace.</p>
+ <p>modify <code>test/clip_printw.c</code> to optionally test
+ non-wrapped updates</p>
</li>
</ul>
- <p>There are other new demo/test programs and reusable
- examples:</p>
+ <p>There is one new demo/test programs:</p>
<dl>
- <dt><span class="part-name">color_content</span>
- </dt>
-
- <dd>Demonstrate the <tt>color_content</tt> and
- <tt>extended_color_content</tt> functions.</dd>
-
- <dt><span class="part-name">demo_tabs</span>
- </dt>
-
- <dd>A simple demo of tabs in curses.</dd>
-
- <dt><span class="part-name">dump_window</span>
- </dt>
-
- <dd>A portable curses screen-dump, used to compare ncurses
- screen contents with Solaris.</dd>
-
- <dt><span class="part-name">pair_content</span>
- </dt>
-
- <dd>Demonstrate the <tt>pair_content</tt> and
- <tt>extended_pair_content</tt> functions.</dd>
-
- <dt><span class="part-name">report_hashing</span>
- </dt>
-
- <dd>Check hash-tables used for terminfo and termcap names.</dd>
-
- <dt><span class="part-name">parse_rgb</span>
+ <dt><span class="part-name"><em>test/test_endwin.c</em></span>
</dt>
- <dd>Sample implementation of the ncurses RGB extension from
- <a href="@HOMEPAGE@/man/user_caps.5.html">user_caps.5</a>, used
- in <em>picsmap</em> and <em>savescreen</em> programs.</dd>
+ <dd>
+ <p>This program shows the return-status from
+ <code>endwin</code> with different combinations of
+ <code>endwin</code> (repeated), <code>initscr</code>,
+ <code>newterm</code>.</p>
+ </dd>
</dl>
- <p>A variety of improvements were made to existing programs, both
- new features as well as options added to make the set of programs
- more consistent.</p>
+ <h3><a name="h3-database" id="h3-database">Terminal database</a></h3>
+
+ <p>There are several new terminal descriptions:</p>
<ul>
<li>
- <p>add &ldquo;<tt>-l</tt>&rdquo; option to test/background,
- to dump screen contents in a form that lets different curses
- implementations be compared.</p>
+ <p><a href=
+ "@HOMEPAGE@/terminfo.src.html#tic-ansi_apparrows"><tt>ansi+apparrows</tt></a></p>
</li>
<li>
- <p>add &ldquo;<tt>@</tt>&rdquo; command to test/ncurses
- F-test, to allow rapid jump to different character pages.</p>
+ <p><a href=
+ "@HOMEPAGE@/terminfo.src.html#tic-contour"><tt>contour</tt></a></p>
</li>
<li>
- <p>added enum, regex examples to test/demo_forms</p>
+ <p><a href=
+ "@HOMEPAGE@/terminfo.src.html#tic-linux_kbs"><tt>linux+kbs</tt></a>
+ for terminals which imitate xterm's behavior with Linux</p>
</li>
<li>
- <p>amend Scaled256() macro in test/picsmap.c to cover the
- full range 0..1000</p>
+ <p><a href=
+ "@HOMEPAGE@/terminfo.src.html#tic-rio"><tt>rio</tt></a>,
+ <a href=
+ "@HOMEPAGE@/terminfo.src.html#tic-rio-direct"><tt>rio-direct</tt></a></p>
</li>
<li>
- <p>corrected pathname used in Ada95 sample programs for
- <tt>explain.txt</tt>, to work with test-packages, and used an
- awk script to split the resulting pathname when it would be
- too long for a single line.</p>
+ <p><a href=
+ "@HOMEPAGE@/terminfo.src.html#tic-mostlike"><tt>mostlike</tt></a></p>
</li>
<li>
- <p>ignore interrupted system-call in test/ncurses's
- command-line, e.g., if the terminal were resized.</p>
+ <p><a href=
+ "@HOMEPAGE@/terminfo.src.html#tic-ms-vt100-16color"><tt>ms-vt100-16color</tt></a>,
+ <a href=
+ "@HOMEPAGE@/terminfo.src.html#tic-winconsole"><tt>winconsole</tt></a></p>
</li>
<li>
- <p>improved ifdef's for <tt>TABSIZE</tt> variable, to help
- with AIX/HPUX ports.</p>
+ <p><a href=
+ "@HOMEPAGE@/terminfo.src.html#tic-vt100_noapp"><tt>vt100+noapp</tt></a>,
+ <a href=
+ "@HOMEPAGE@/terminfo.src.html#tic-vt100_noapp_pc"><tt>vt100+noapp+pc</tt></a>,
+ <a href=
+ "@HOMEPAGE@/terminfo.src.html#tic-xterm_app_pc"><tt>xterm+app+pc</tt></a>,
+ <a href=
+ "@HOMEPAGE@/terminfo.src.html#tic-xterm_decedit"><tt>xterm+decedit</tt></a>
+ from <a href="@WEBSITE@/xterm/xterm.log.html#xterm_389">xterm
+ #389</a></p>
</li>
- </ul>
-
- <h3><a name="h3-database" id="h3-database">Terminal database</a></h3>
-
- <p>There are several new terminal descriptions:</p>
-
- <blockquote style="word-break:keep-all">
- <p><tt>alacritty</tt>, <tt>domterm</tt>, <tt>kitty</tt>,
- <tt>mintty</tt>, <tt>mintty-direct</tt>, <tt>ms-terminal</tt>,
- <tt>n7900</tt>, <tt>nsterm-build309</tt>,
- <tt>nsterm-direct</tt>, <tt>screen5</tt>, <tt>ti703</tt>,
- <tt>ti707</tt>, <tt>ti703-w</tt>, <tt>ti707-w</tt>
- <tt>vscode</tt>, <tt>vscode-direct</tt>, <tt>xterm-mono</tt>,
- <tt>xterm.js</tt></p>
- </blockquote>
- <p>There are many changes to existing terminal descriptions. Some
- were updates to several descriptions:</p>
-
- <ul>
- <li>use <a href=
- "/ncurses/terminfo.src.html#tic-ansi_rep"><tt>ansi+rep</tt></a>
- in a dozen places</li>
-
- <li>add rs1 to konsole, mlterm</li>
-
- <li>improve several flash capabilities with trailing mandatory
- delays</li>
-
- <li>drop <tt>ich1</tt> from <tt>rxvt-basic</tt>, <tt>Eterm</tt>
- and <tt>mlterm</tt> to improve compatibility with old
- non-curses programs</li>
-
- <li>add/use <a href=
- "/ncurses/terminfo.src.html#tic-xterm_keypad"><tt>xterm+keypad</tt></a>
- in <tt>xterm-new</tt></li>
-
- <li>use <a href=
- "/ncurses/terminfo.src.html#tic-xterm_sl-twm"><tt>xterm+sl-twm</tt></a>
- for consistency, nine places</li>
+ <li>
+ <p><a href=
+ "@HOMEPAGE@/terminfo.src.html#tic-putty_cursor"><tt>putty+cursor</tt></a>
+ to reflect amending of modified cursor-keys in 2021</p>
+ </li>
- <li>improve <em>xm</em> example in <a href=
- "/ncurses/terminfo.src.html#tic-xterm_x11mouse">xterm+x11mouse</a>
- and <a href=
- "/ncurses/terminfo.src.html#tic-xterm_sm_1006">xterm+sm_1006</a>.</li>
+ <li>
+ <p><a href=
+ "@HOMEPAGE@/terminfo.src.html#tic-wezterm"><tt>wezterm</tt></a></p>
+ </li>
</ul>
- <p>while others affected specific descriptions. These were
- retested, to take into account changes by their developers:</p>
-
- <blockquote>
- <p><tt>terminator</tt>, <tt>st</tt></p>
- </blockquote>
-
- <p>while these are specific fixes based on reviewing
- documentation, user reports, or warnings from <span class=
- "part-name">tic</span>:</p>
-
- <dl>
- <dt><a href=
- "/ncurses/terminfo.src.html#tic-adds200">adds200</a>:</dt>
-
- <dd>
- <ul>
- <li>fix typo</li>
- </ul>
- </dd>
-
- <dt><a href=
- "/ncurses/terminfo.src.html#tic-gnome-256color">gnome-256color</a>
- </dt>
-
- <dd>
- <ul>
- <li>base entry on "gnome", not "vte", for consistency</li>
- </ul>
- </dd>
-
- <dt><a href=
- "/ncurses/terminfo.src.html#tic-interix">interix</a>
- </dt>
-
- <dd>
- <ul>
- <li>trim unnecessary setf/setb</li>
- </ul>
- </dd>
-
- <dt><a href=
- "/ncurses/terminfo.src.html#tic-linux-16color">linux-16color</a>
- </dt>
-
- <dd>
- <ul>
- <li>accommodate <a href=
- "https://lists.gnu.org/archive/html/bug-ncurses/2019-10/msg00061.html">
- Linux console driver</a> incompatibility introduced in
- early 2018</li>
- </ul>
- </dd>
-
- <dt><a href=
- "/ncurses/terminfo.src.html#tic-nsterm-256color">nsterm-256color</a>:</dt>
-
- <dd>
- <ul>
- <li>add nsterm-build309 to replace nsterm-256color,
- assigning the latter as an alias of nsterm, to make mouse
- work with nsterm-256color</li>
- </ul>
- </dd>
-
- <dt><a href=
- "/ncurses/terminfo.src.html#tic-regent40">regent40</a>:</dt>
-
- <dd>
- <ul>
- <li>renumber function-keys to match manual</li>
- </ul>
- </dd>
-
- <dt><a href=
- "/ncurses/terminfo.src.html#tic-regent60">regent60</a>:</dt>
-
- <dd>
- <ul>
- <li>add cd (clr_eos)</li>
-
- <li>corrected acsc</li>
-
- <li>add shifted function-keys</li>
- </ul>
- </dd>
-
- <dt><a href=
- "/ncurses/terminfo.src.html#tic-tvi950">tvi950</a>:</dt>
-
- <dd>
- <ul>
- <li>added function-key definitions to agree with Televideo
- 950 manual</li>
-
- <li>corrected acsc</li>
+ <p>There are many changes to existing terminal descriptions. Some
+ were updates to several descriptions, using the
+ <code>infocmp</code> &ldquo;<code>-u</code>&rdquo; option in a
+ script to determine which <em>building-block</em> entries could
+ be used to replace multiple capability settings (and trim
+ redundant information).</p>
- <li>remove bogus kf0</li>
+ <p>Other changes include:</p>
- <li>add bel</li>
- </ul>
- </dd>
+ <ul>
+ <li>
+ <p><a href=
+ "@HOMEPAGE@/terminfo.src.html#toc-_X_T_E_R_M__Extensions_">document</a>
+ XF, kxIN and kxOUT</p>
+ </li>
- <dt><a href=
- "/ncurses/terminfo.src.html#tic-tvi955">tvi955</a>:</dt>
+ <li>
+ <p>add note on <a href=
+ "@HOMEPAGE@/terminfo.src.html#tic-sun"><tt>sun</tt></a>
+ regarding wscons/cmdtool/shelltool</p>
+ </li>
- <dd>
- <ul>
- <li>fix typo</li>
- </ul>
- </dd>
+ <li>
+ <p>remove DECCOLM+DECSCLM from <a href=
+ "@HOMEPAGE@/terminfo.src.html#tic-foot"><tt>foot</tt></a></p>
+ </li>
- <dt><a href=
- "/ncurses/terminfo.src.html#tic-vi200">vi200</a>:</dt>
+ <li>
+ <p>add xterm+focus to <a href=
+ "@HOMEPAGE@/terminfo.src.html#tic-foot_base"><tt>foot+base</tt></a></p>
+ </li>
- <dd>
- <ul>
- <li>add acsc string, including right/down-arrow</li>
- </ul>
- </dd>
+ <li>
+ <p>add ecma+strikeout to <a href=
+ "@HOMEPAGE@/terminfo.src.html#tic-putty"><tt>putty</tt></a></p>
+ </li>
- <dt><a href=
- "/ncurses/terminfo.src.html#tic-wy50">wy50</a>:</dt>
+ <li>
+ <p>use CSI 3J in <a href=
+ "@HOMEPAGE@/terminfo.src.html#tic-vte-2017"><tt>vte-2017</tt></a></p>
+ </li>
- <dd>
- <ul>
- <li>corrected acsc</li>
- </ul>
- </dd>
+ <li>
+ <p>use oldxterm+sm+1006 in <a href=
+ "@HOMEPAGE@/terminfo.src.html#tic-vte-2014"><tt>vte-2014</tt></a></p>
+ </li>
- <dt><a href="/ncurses/terminfo.src.html#tic-wy50">wy50</a> and
- <a href="/ncurses/terminfo.src.html#tic-wy60">wy60</a>:</dt>
+ <li>
+ <p>modify <a href=
+ "@HOMEPAGE@/terminfo.src.html#tic-xgterm"><tt>xgterm</tt></a>
+ to work around line-drawing bug</p>
+ </li>
- <dd>
- <ul>
- <li>add shifted function-keys as kF1 to kF16</li>
- </ul>
- </dd>
+ <li>
+ <p>add xterm focus mode 1004 to <a href=
+ "@HOMEPAGE@/terminfo.src.html#tic-xterm_focus"><tt>xterm+focus</tt></a>
+ as fe/fd capabilities, like vim.</p>
+ </li>
- <dt><a href=
- "/ncurses/terminfo.src.html#tic-xterm_x11hilite">xterm+x11hilite</a>:</dt>
+ <li>
+ <p>add xterm+focus to <a href=
+ "@HOMEPAGE@/terminfo.src.html#tic-alacritty_common"><tt>alacritty+common</tt></a></p>
+ </li>
- <dd>
- <ul>
- <li>eliminate unused <em>p5</em> parameter.</li>
- </ul>
- </dd>
- </dl>
+ <li>
+ <p>add XR/xr, to work with vim, and use RV/rv to denote DA2
+ and its response</p>
+ </li>
- <p>A few entries use extensions (user-defined terminal
- capabilities):</p>
+ <li>
+ <p>add XF flag to <a href=
+ "@HOMEPAGE@/terminfo.src.html#tic-xterm_focus"><tt>xterm+focus</tt></a>
+ so that termcap applications can be aware of terminals which
+ may support focus in/out</p>
+ </li>
- <ul>
- <li>use <a href=
- "/ncurses/terminfo.src.html#tic-xterm_sm_1006"><tt>xterm+sm+1006</tt></a>
- (aka &ldquo;SGR 1006 mouse&rdquo;) for konsole-base and
- putty</li>
+ <li>
+ <p>use xterm+focus in <a href=
+ "@HOMEPAGE@/terminfo.src.html#tic-xterm-p370"><tt>xterm-p370</tt></a>
+ and <a href=
+ "@HOMEPAGE@/terminfo.src.html#tic-tmux"><tt>tmux</tt></a></p>
+ </li>
- <li>add <em><tt>Smol/Rmol</tt></em> user-defined capability to
- <tt>tmux</tt> and <tt>vte-2018</tt></li>
+ <li>
+ <p>remove xterm+sm+1006 from <a href=
+ "@HOMEPAGE@/terminfo.src.html#tic-tmux"><tt>tmux</tt></a></p>
+ </li>
- <li>add <em><tt>Smulx</tt></em> user-defined capability to
- <tt>tmux</tt>, <tt>vte-2018</tt></li>
+ <li>
+ <p>NetBSD-related fixes for <a href=
+ "@HOMEPAGE@/terminfo.src.html#tic-x68k"><tt>x68k</tt></a> and
+ <a href=
+ "@HOMEPAGE@/terminfo.src.html#tic-wsvt25"><tt>wsvt25</tt></a></p>
+ </li>
</ul>
<h3><a name="h3-documentation" id=
@@ -997,88 +714,69 @@
<p>Corrections:</p>
<ul>
- <li>correct error-returns listed in manual pages for a few
- form functions</li>
+ <li>
+ <p>add assignment in <code>CF_MAN_PAGES</code> to fill in
+ value for <code>TERMINFO_DIRS</code> in ncurses, terminfo
+ and tic manpages.</p>
+ </li>
- <li>corrected prototypes in several manpages using script
- to extract those in compilable form.</li>
+ <li>
+ <p>clarify interaction of <code>-R</code> option versus
+ <code>-C</code>, <code>-I</code> and <code>-r</code> in
+ <code>infocmp</code> manpage.</p>
+ </li>
- <li>fix typo in <a href=
- "@HOMEPAGE@/man/term.5.html#h3-EXTENDED-NUMBER-FORMAT">term.5</a>,
- improve explanation of format</li>
- </ul>
- </li>
+ <li>
+ <p>correct manpage description of panel_hidden.</p>
+ </li>
- <li>
- <p>Clarify in manual pages that <a href=
- "@HOMEPAGE@/man/curs_printw.3x.html#h2-PORTABILITY">vwprintw</a>
- and <a href=
- "@HOMEPAGE@/man/curs_scanw.3x.html#h2-PORTABILITY">vwscanw</a>
- are obsolete.<br>
- They have not been part of X/Open Curses since 2007.</p>
- </li>
+ <li>
+ <p>improve manpage description for addch versus unctrl
+ format used for non-printable characters.</p>
+ </li>
- <li>
- <p>New/improved history and portability sections:</p>
+ <li>
+ <p>improve manpages discussing file descriptors in
+ low-level functions.</p>
+ </li>
- <ul>
- <li><a href=
- "@HOMEPAGE@/man/curs_addch.3x.html#h3-ACS-Symbols">curs_addch.3x</a>
- gives some background for ACS symbols.</li>
-
- <li><a href=
- "@HOMEPAGE@/man/curs_getcchar.3x.html#h2-PORTABILITY">curs_getcchar.3x</a>
- explains a difference between ncurses and X/Open
- Curses.</li>
-
- <li><a href=
- "@HOMEPAGE@/man/curs_getstr.3x.html#h2-PORTABILITY">curs_getstr.3x</a>
- gives historical/portability background for the length
- parameter of <tt>wgetnstr</tt>.</li>
-
- <li><a href=
- "@HOMEPAGE@/man/curs_slk.3x.html">curs_slk.3x</a> lists a
- few differences between SVr4 curses and X/Open Curses for
- soft-keys.</li>
-
- <li><a href=
- "@HOMEPAGE@/man/curs_terminfo.3x.html">curs_terminfo.3x</a>
- explains that the initial implementation of terminfo in
- SVr2 was mostly replaced by other developers in SVr3.</li>
-
- <li><a href="@HOMEPAGE@/man/infocmp.1m.html">infocmp.1</a>
- explains that the initial version of terminfo had no tool
- for decompiling descriptions. That came later, with SVr3,
- with a different developer.</li>
-
- <li><a href="@HOMEPAGE@/man/tabs.1.html">tabs.1</a> tells more
- than you wanted to know about the tool.</li>
-
- <li><a href="@HOMEPAGE@/man/tic.1m.html">tic.1</a> explains
- that the initial version of terminfo had a rudimentary tool
- (based on termcap) for compiling entries. The tool used
- with Unix was developed by others for SVr3.</li>
-
- <li><a href="@HOMEPAGE@/man/toe.1m.html">toe.1</a> explains
- the origin of this tool.</li>
+ <li>
+ <p>improve description of search rules for terminal
+ descriptions in terminfo manpage.</p>
+ </li>
+
+ <li>
+ <p>modify dist.mk to avoid passing developer's comments
+ in manpages into the generated html documentation.</p>
+ </li>
+
+ <li>
+ <p>modify test-package "ncurses6-doc" to use
+ manpage-aliases, which in turn required a change to the
+ configure script to factor in the extra-suffix option
+ when deriving alias names.</p>
+ </li>
</ul>
</li>
<li>
- <p>Improvements for <a href=
- "@HOMEPAGE@/man/user_caps.5.html">user_caps.5</a>:</p>
+ <p>New/improved history and portability sections:</p>
<ul>
- <li>mention <tt>meml</tt>, <tt>memu</tt> and
- <tt>box1</tt></li>
-
- <li>expanded description of <tt>XM</tt></li>
+ <li>
+ <p>add information about "ttycap", termcap's forerunner,
+ to tset.1</p>
+ </li>
- <li>add a clarification regarding the <tt>RGB</tt>
- capability.</li>
+ <li>
+ <p>document limitations of tparm, and error-returns in
+ curs_terminfo.3x</p>
+ </li>
- <li>mention user_caps.5 in the tic and infocmp manual
- pages.</li>
+ <li>
+ <p>document limitations of tgoto, and error-returns in
+ curs_termcap.3x</p>
+ </li>
</ul>
</li>
@@ -1086,49 +784,20 @@
<p>Other improvements:</p>
<ul>
- <li><a href=
- "@HOMEPAGE@/man/curs_add_wch.3x.html#h3-Line-Graphics">curs_add_wch.3x</a>
- adds note about Unicode terminology for the line-drawing
- characters.</li>
-
- <li><a href=
- "@HOMEPAGE@/man/curs_color.3x.html#h2-RETURN-VALUE">curs_color.3x</a>
- improves discussion of error returns and extensions.</li>
-
- <li><a href=
- "@HOMEPAGE@/man/curs_mouse.3x.html">curs_mouse.3x</a>
- explains how the <tt>kmous</tt> and <tt>XM</tt>
- capabilities are used for xterm-mouse input.</li>
-
- <li><a href=
- "@HOMEPAGE@/man/curs_refresh.3x.html#h3-wnoutrefresh_doupdate">
- curs_refresh.3x</a> improves documentation regarding the
- virtual and physical screens.</li>
-
- <li><a href=
- "@HOMEPAGE@/man/curs_util.3x.html">curs_util.3x</a>
- mentions a difference between SVr4 and X/Open Curses for
- <tt>unctrl.h</tt></li>
-
- <li><a href=
- "@HOMEPAGE@/man/curs_variables.3x.html#h2-PORTABILITY">curs_variables.3x</a>
- improves description of the <em>init_tabs</em> capability
- and <tt>TABSIZE</tt> variable.</li>
-
- <li><a href=
- "@HOMEPAGE@/man/ncurses.3x.html#h2-ALTERNATE-CONFIGURATIONS">
- ncurses.3x</a> improves documentation regarding
- feature-test macros in curses.h</li>
-
- <li><a href=
- "@HOMEPAGE@/man/resizeterm.3x.html#h3-resize_term">resizeterm.3x</a>
- about top-level windows which touch the screen's
- borders.</li>
-
- <li><a href=
- "@HOMEPAGE@/man/tput.1.html#h3-Terminal-Size">tput.1</a>
- clarifies how <em>tput</em> determines the terminal
- size.</li>
+ <li>
+ <p>This release has many changes to improve the
+ formatting and style of the manpages.</p>
+ </li>
+
+ <li>
+ <p>Manpages now use consistent section-naming, page
+ headers and footers (including the modification date for
+ each page).</p>
+ </li>
+
+ <li>
+ <p>Table layout has been revised.</p>
+ </li>
</ul>
</li>
</ul>
@@ -1136,248 +805,165 @@
<p>There are no new manual pages (all of the manual page updates
are to existing pages).</p>
- <p>Some of the improvements are more subtle, relating to the way
- the information is presented. For instance, the generated
- terminfo.5 file uses a different table layout, allowing it to use
- space on wide terminals more effectively.</p>
-
<h3><a name="h3-bug-fixes" id="h3-bug-fixes">Interesting
bug-fixes</a></h3>
- <p>While there were many bugs fixed during development of ncurses
- 6.2, only a few (the reason for this release) were both important
- and interesting. Most of the bug-fixes were for local issues
- which did not affect compatibility across releases. Since those
- are detailed in the NEWS file no elaboration is needed here.</p>
-
- <p>The interesting bugs were in tic/infocmp's handling of
- user-defined capabilities. These were not recent bugs. Initially
- it was a simple problem:</p>
+ <p>The changes to <tt>tparm</tt>, <tt>tgoto</tt> which improve
+ the design of the low-level interfaces are <em>interesting</em>,
+ but are not bug-fixes <em>per se</em>.</p>
- <ul>
- <li>The user-defined capabilities can be any type (boolean,
- number or string), but once given a type all uses of the name
- must conform to that type&mdash;unless some special support for
- a particular multi-typed name is built into ncurses.</li>
+ <h3><a name="h3-config-config" id=
+ "h3-config-config">Configuration changes</a></h3>
- <li>
- <p>One of simpleterm's contributors copied some definitions
- for using <em>tmux</em>'s user-defined capabilities in
- <a href=
- "https://git.suckless.org/st/commit/06f8cf8ca87a81db15816658c40b2afcd1ad5332.html">
- late in 2016</a>.</p>
+ <h4><a name="h4-config-major" id="h4-config-major">Major
+ changes</a></h4>
- <blockquote>
- <pre class="demo-name">
-diff --git a/st.info b/st.info
-@@ -185,7 +185,10 @@ st| simpleterm,
- tsl=\E]0;,
- xenl,
- vpa=\E[%i%p1%dd,
--
-+# Tmux unofficial extensions, see TERMINFO EXTENSIONS in tmux(1)
-+ Se,
-+ Ss,
-+ Tc,
-
- st-256color| simpleterm with 256 colors,
- use=st,
-</pre>
- </blockquote>
- </li>
+ <p>These are the major changes (aside from introducing <a href=
+ "#h4-new-library"><tt>tiparm_s</tt></a>):</p>
+ <ul>
<li>
- <p>Later, in (referring to a version from <a href=
- "https://git.suckless.org/st/commit/c0882f2ed1d7a2dd0fa2efa52157e6fc6fde3652.html">
- mid-2017</a>), a user asked to have it updated in
- ncurses.</p>
+ <p>use wide-character (ncursesw) by default</p>
</li>
<li>
- <p>However, it had an error from the change in late 2016. The
- terminal description made what <em>tmux</em> expected to be
- <strong>string</strong> actually a
- <strong>boolean</strong>.</p>
-
- <p>Over the years, there were problems with each of
- simpleterm's terminal descriptions. I repaired those, and
- usually dealt with the problem.</p>
+ <p>use opaque typedefs by default</p>
</li>
+ </ul>
+
+ <p>However, most of the work on configure scripts was done to
+ reduce warnings within the configure script:</p>
+ <ul>
<li>
- <p>The difference in this case was that when compiling the
- terminal database, <em>tic</em> may have in memory the
- definitions for more than one terminal description (so that
- it can resolve &ldquo;<tt>use=</tt>&rdquo; clauses). Seeing
- two different types for the same name, in certain situations
- it would incorrectly merge the symbol tables for the two
- terminal descriptions.</p>
+ <p>intrusive warnings from GNU grep regarding fgrep and
+ egrep</p>
</li>
<li>
- <p>On simpleterm's side, their bug was finally fixed in
- <a href=
- "https://git.suckless.org/st/commit/83866428de031300eab03fbb116bcf7d2b1d4f60.html">
- late 2019</a>, three years after the bug was created.</p>
+ <p>fatal errors in compile-checks, arising from recent
+ &ldquo;Modern&nbsp;C&rdquo; efforts by some developers which
+ caused longstanding configure checks to fail.</p>
+
+ <p>After repairing the configure script, none of that
+ activity affected ncurses because stricter warnings are used
+ routinely in development.</p>
</li>
</ul>
- <p>For ncurses, the elapsed time to fix this bug was less than
- three years. Someone reported a problem with the terminal
- description a few weeks after releasing ncurses 6.1 (in <a href=
- "https://github.com/tmux/tmux/issues/1264">tmux #1264</a>), and
- the terminal description was updated that week (ncurses patch
- <a href="@HOMEPAGE@/NEWS.html#t20180224">20180224</a>):</p>
-
- <blockquote>
- <pre class="demo-name">
-20180224
- + modify _nc_resolve_uses2() to detect incompatible types when merging
- a "use=" clause of extended capabilities. The problem was seen in a
- defective terminfo integrated from simpleterm sources in 20171111,
- compounded by repair in 20180121.
- + correct Ss/Ms interchange in st-0.7 entry (tmux #1264) -TD
-</pre>
- </blockquote>
-
- <p>The larger part of that change added a check to prevent a
- simple merge of terminal descriptions where the same user-defined
- name was used with different types. But it raised some
- questions:</p>
+ <p>Other improvements made to configure checks include</p>
<ul>
<li>
- <p>Was there a reliable way to manage terminal descriptions
- which used the same extended name in different ways?</p>
+ <p>use <a href=
+ "@HOMEPAGE@/INSTALL.html#option:enable-string-hacks">string-hacks</a>
+ in alloc_entry.c, alloc_type.c and hardscroll.c, overlooked
+ due to compiler changes in recent OpenBSD releases</p>
</li>
<li>
- <p>Should ncurses provide a registry of well-known extended
- names, with their types?</p>
+ <p>revise progs.priv.h to provide for NC_ISATTY reuse</p>
</li>
- </ul>
-
- <p>Since the correction to <a href=
- "@HOMEPAGE@/ncurses.html#download_database"><tt>terminfo.src</tt></a>
- could have been readily adopted by packagers, there was nothing
- more to be done from ncurses' standpoint on that part. But
- improving ncurses to prevent issues like that is the reason for
- making a release.</p>
- <p>Nothing more (constructive) was mentioned with regard to
- simpleterm. But a few problems were found in the handling of
- user-defined capabilities:</p>
+ <li>
+ <p>configure check for MB_LEN_MAX provides warning as
+ needed</p>
+ </li>
- <ul>
<li>
- <p>Forward-references to user-defined capabilities in a
- &ldquo;<tt>use=</tt>&rdquo; clause did not allocate new data
- for each use. In <em>tic</em>, successive compilation of
- terminal entries could add user-defined capabilities to the
- wrong terminal entry.</p>
+ <p>trim a space after some "-R" options, fixing builds for
+ applications built using clang and ncurses on Solaris</p>
+ </li>
- <p>This was not noticed before, since xterm's terminal
- descriptions were the main users of the feature, and almost
- all of the uses of the building-blocks which contained
- user-defined capabilities were backward-references.</p>
+ <li>
+ <p>work around misconfiguration of MacPorts gcc13, which
+ exposes invalid definition of <tt>MB_LEN_MAX</tt> in gcc's
+ fallback copy of <tt>limits.h</tt></p>
</li>
<li>
- <p>There is one (documented) case where ncurses 6.1 supports
- a user-defined capability that could be any type (i.e.,
- &ldquo;RGB&rdquo;). The check added in February 2018 to guard
- against mismatches did not handle all of the combinations
- needed.</p>
+ <p>modified experimental Windows driver works with xterm
+ mouse protocol</p>
</li>
</ul>
- <p>Both of these issues dated from the original implementation of
- user-defined capabilities. Fixing them does not change the
- terminal database, but a older <em>tic</em> without the fixes
- will not be able to handle terminfo sources which rely upon those
- fixes. Starting in June 2019, the download link for the terminfo
- source file was capped at that date. The development sources have
- an up-to-date copy of the file, for people with a legitimate need
- for it.</p>
-
- <p>The &ldquo;<tt>-c</tt>&rdquo; (check) option of <em>tic</em>
- is not very useful if it cannot offer advice on parameters needed
- for user-defined capabilities. The various <em>Caps</em> files
- were reorganized to reduce redundancy, and in the common portion
- (<a href=
- "https://github.com/ThomasDickey/ncurses-snapshots/blob/master/include/Caps-ncurses">Caps-ncurses</a>),
- a registry of user-defined capabilities is provided for use by
- <em>tic</em>. While users can still define their own custom
- capabilities, <em>tic</em> will not offer any advice when their
- parameters do not match.</p>
-
- <p>In ncurses 6.2, <em>tic</em> makes a special check to allow
- any type for <em>RGB</em>, but its being able to do this relies
- upon fixes made in the ncurses library in mid-2019.</p>
-
- <h3><a name="h3-config-config" id=
- "h3-config-config">Configuration changes</a></h3>
-
- <h4><a name="h4-config-major" id="h4-config-major">Major
- changes</a></h4>
-
- <p>There are no major changes. Several new options were added to
- ease integration of packages with systems using different
- versions of <em>GNAT</em> and <em>ncurses</em>. Also,
- improvements were made to configure checks.</p>
-
<h4><a name="h4-config-options" id=
"h4-config-options">Configuration options</a></h4>
- <p>There are a few new/modified configure options:</p>
+ <p>There are a few new configure options:</p>
<dl>
- <dt><tt>--with-config-suffix</tt>
+ <dt><a href=
+ "@HOMEPAGE@/INSTALL.html#option:disable-setuid-environ"><tt>--disable-setuid-environ</tt></a>
</dt>
<dd>
- <p>helps work around a filename conflict with Debian packages
- versus test-packages.</p>
+ <p>Compile with environment restriction, so certain
+ environment variables are not available when running via a
+ setuid/setgid application. These are (for example
+ <tt>$TERMINFO</tt>) those that allow the search path for the
+ terminfo or termcap entry to be customized.</p>
+
+ <p>A setuid/setgid application inherits its environment
+ variables from the current user, in contrast to sudo which
+ may limit the environment variables that ncurses uses.</p>
</dd>
- <dt><tt>--with-ada-libname</tt>
+ <dt><a href=
+ "@HOMEPAGE@/INSTALL.html#option:enable-check-size"><tt>--enable-check-size</tt></a>
</dt>
<dd>
- <p>allows one to rename the &ldquo;AdaCurses&rdquo; library
- (at least one packager prefers a lowercase name).</p>
+ <p>Compile-in feature to detect screensize for terminals
+ which do not advertise their screensize, e.g., serial
+ terminals.</p>
</dd>
- <dt><tt>--with-fallbacks</tt>
+ <dt><a href=
+ "@HOMEPAGE@/INSTALL.html#option:with-abi-altered"><tt>--with-abi-altered=<em>NUM</em></tt></a>
</dt>
<dd>
- <p>now ensures there is a value, and adds the fallback
- information to top-level Makefile summary.</p>
+ <p>Override the displayed (rather than compiled-in) ABI. Only
+ packagers who have created configurations where the ABI
+ differs from ncurses should be interested in this option.</p>
</dd>
- <dt><tt>--with-pcre2</tt>
+ <dt><a href=
+ "@HOMEPAGE@/INSTALL.html#option:with-strip-program"><tt>--with-strip-program=<em>XXX</em></tt></a>
</dt>
<dd>
- <p>check for pcre-posix library to help with MinGW port.</p>
+ <p>When stripping executables during install, use the
+ specified program rather than &ldquo;strip&rdquo; overriding
+ program chosen by the install program for stripping
+ executables.</p>
</dd>
+ </dl>
- <dt><tt>--with-tic-path</tt> and<br></dt>
+ <p>These configure options are modified:</p>
- <dt><tt>--with-infocmp-path</tt>
+ <dl>
+ <dt><a href=
+ "@HOMEPAGE@/INSTALL.html#option:with-pkg-config-libdir"><tt>--with-pkg-config-libdir[=<em>DIR</em>]</tt></a>
</dt>
<dd>
- <p>help work around problems building fallback source using
- pre-6.0 tic/infocmp.</p>
+ <p>The optional <em>DIR</em> parameter can now be
+ &ldquo;auto&rdquo; to automatically use pkg-config's library
+ directory.</p>
+
+ <p>The default is <tt>$(libdir)</tt>.</p>
</dd>
- <dt><tt>--with-versioned-syms</tt>
+ <dt><a href=
+ "@HOMEPAGE@/INSTALL.html#option:with-xterm-kbs"><tt>--with-xterm-kbs[=<em>XXX</em>]</tt></a>
</dt>
<dd>
- <p>option value can now be a relative pathname.</p>
+ <p>The default is &ldquo;auto&rdquo; which tells the
+ configure script to choose BS or DEL according to platform
+ defaults.</p>
</dd>
</dl>
@@ -1388,148 +974,117 @@ diff --git a/st.info b/st.info
<ul>
<li>
- <p>ignore <a href=
- "/ncurses/man/ncurses.3x.html#h3-TERMINFO"><tt>$TERMINFO</tt></a>
- as a default value in configure script if it came from the
- <tt>infocmp</tt> <strong><tt>-Q</tt></strong> option.</p>
+ <p>add/use configure check for <code>clock_gettime</code>, to
+ supersede <code>gettimeofday</code>.</p>
</li>
<li>
- <p>distinguish gcc from icc and clang when the
- <tt>--enable-warnings</tt> option is not used, to avoid
- unnecessary warnings about unrecognized inline options</p>
+ <p>modify configure script check for pkg-config library
+ directory to take into account an older version 0.15.0 which
+ used PKG_CONFIG_PATH but not PKG_CONFIG_LIBDIR</p>
</li>
<li>
- <p>consistently prepend new libraries as they are found
- during configuration, rather than relying upon the linker to
- resolve order dependencies of libraries.</p>
+ <p>allow for MinGW32-/64-bit configurations to use
+ _DEFAULT_SOURCE</p>
</li>
<li>
- <p>modified configure scripts to reduce relinking/ranlib
- during library install :</p>
-
- <ul>
- <li>use &ldquo;<tt>install -p</tt>&rdquo; when available,
- to avoid need for ranlib of static libraries.</li>
-
- <li>scripts which use
- &ldquo;<tt>--disable-relink</tt>;&rdquo; add a 1-second
- sleep to work around tools which use whole-second
- timestamps, e.g., in <tt>utime</tt> rather than the actual
- file system resolution.</li>
- </ul>
+ <p>modify CF_XOPEN_SOURCE macro's amend default case to avoid
+ undefining _XOPEN_SOURCE if _POSIX_C_SOURCE is defined</p>
</li>
<li>
- <p id="getenv-check">add configure check for <a href=
- "#getenv-fixes"><tt>getenv</tt></a> to work around
- implementation shown in Emscripten which overwrites the
- previous return value on each call.</p>
-
- <p>Use that to optionally suppress <tt>START_TRACE</tt>
- macro, whose call to <tt>getenv</tt> may not work
- properly</p>
+ <p>updated configure script macro CF_XOPEN_SOURCE, for
+ uClibc-ng</p>
</li>
<li>
- <p>change target configure level for <tt>_XOPEN_SOURCE</tt>
- to 600 to address use of <tt>vsscanf</tt> and
- <tt>setenv</tt>.</p>
+ <p>modify version-check for gcc/g++, now works for msys2</p>
</li>
<li>
- <p>reduce use of <tt>_GNU_SOURCE</tt> for current glibc where
- <tt>_DEFAULT_SOURCE</tt> combines with
- <tt>_XOPEN_SOURCE</tt></p>
+ <p>build-fixes related to configure-options and/or
+ platform:</p>
- <p>Allow for Cygwin's newlib when checking for the
- _DEFAULT_SOURCE symbol.</p>
+ <ul>
+ <li>fix for <tt>--enable-fvisibility</tt></li>
- <p>MidnightBSD is now checked for the
- <tt>_XOPEN_SOURCE</tt>-related definitions.</p>
- </li>
+ <li>fix for unusual values of
+ <tt>--with-rel-version</tt></li>
- <li>
- <p>If the check for <tt>va_copy</tt> or <tt>__va_copy</tt>
- fails,</p>
+ <li>fix for unusual values of
+ <tt>--with-abi-version</tt></li>
- <ul>
- <li>configure now tries copying the pointers for
- <tt>va_list</tt>, or as an array.</li>
+ <li>fix for <tt>--disable-tcap-names</tt></li>
- <li>alternatively, it checks for
- <tt>__builtin_va_copy</tt>(), which could be used with AIX
- <tt>xlc</tt> in <em>c89</em> mode.</li>
+ <li>fix for termcap in <tt>nc_access.h</tt></li>
</ul>
</li>
<li>
- <p>several changes to support a port to Ultrix 3.1:</p>
+ <p>other configure-script improvements:</p>
<ul>
- <li>check if "b" binary feature of fopen works</li>
+ <li>recent msys2 headers work with
+ <tt>_DEFAULT_SOURCE</tt>; amend check</li>
- <li>check for missing feature of locale.h</li>
+ <li>use <tt>$ac_includes_default</tt> in most cases where
+ stdlib.h should work</li>
- <li>add fallback for strstr() in test-programs</li>
+ <li>use <tt>#error</tt> consistently vs "make an
+ error"</li>
- <li>add fallback for STDOUT_FILENO in test-programs</li>
+ <li>add configure macro for <tt>gettimeofday</tt> vs inline
+ check</li>
</ul>
</li>
+ </ul>
- <li>
- <p>The <em>test/configure</em> script (used for <a href=
- "/ncurses/ncurses-examples.html"><em>ncurses-examples</em></a>)
- is improved:</p>
-
- <ul>
- <li>work around non-ncurses termcap.h file, e.g., in
- Slackware.</li>
+ <p>Here are some of the other portability fixes:</p>
- <li>check for <a href=
- "/ncurses/man/curs_variables.3x.html#h3-TABSIZE"><tt>TABSIZE</tt></a>
- variable.</li>
+ <ul>
+ <li>
+ <p>modify configure scripts/makefiles to omit
+ <tt>KEY_RESIZE</tt> if the corresponding <tt>SIGWINCH</tt>
+ feature is disabled</p>
+ </li>
- <li>checks for the X11/Intrinsic.h header, accommodate
- recent MacOS changes which largely emptied
- <tt>/usr/include</tt>.</li>
- </ul>
+ <li>
+ <p>increase <tt>MB_CUR_MAX</tt> to 16, matching glibc's
+ <tt>MB_LEN_MAX</tt></p>
</li>
- </ul>
- <p>Here are some of the other portability fixes:</p>
+ <li>
+ <p>add BSD <tt>erase2</tt> to characters handled by
+ tset/reset</p>
+ </li>
- <ul>
<li>
- <p>added dummy "check" rule in top-level and test-Makefile to
- simplify building test-packages for ArchLinux.</p>
+ <p>use <tt>getauxval</tt> when available, to improve
+ <tt>setuid</tt>/<tt>setgid</tt> checks</p>
</li>
<li>
- <p>dropped library-dependency on psapi for MinGW port, since
- win_driver.c defines <tt>PSAPI_VERSION</tt> to 2, making it
- use <tt>GetProcessImageFileName</tt> from kernel32.dll</p>
+ <p>set <tt>dwShareMode</tt> in calls to
+ <tt>CreateConsoleScreenBuffer</tt></p>
</li>
<li>
- <p>made build-fixes for configuration using --program-suffix
- with Ada95, noticed with MacOS but applicable to other
- platforms without libpanelw, etc.</p>
+ <p>use <tt>CreateFile</tt> with "<tt>CONIN$</tt>",
+ "<tt>CONOUT$</tt>" rather than <tt>GetStdHandle</tt> to
+ obtain a handle on the actual console, avoiding redirection
+ in the MinGW/Win32 configurations</p>
</li>
<li>
- <p>modified ncurses/Makefile.in to fix a case where
- Debian/testing changes to the ld --as-needed configuration
- broke ncurses-examples test packages.</p>
+ <p>modify MinGW driver to return <tt>KEY_BACKSPACE</tt> when
+ an unmodified <tt>VK_BACK</tt> virtual key is entered</p>
</li>
<li>
- <p>used <tt>_WIN32</tt>/<tt>_WIN64</tt> in preference to
- <tt>__MINGW32__</tt>/<tt>__MINGW64__</tt> symbols to simplify
- building with Microsoft Visual C++, since the former are
- defined in both compiler configurations.</p>
+ <p>modify MinGW configuration to provide for running in
+ MSYS/MSYS2 shells, assuming ConPTY support</p>
</li>
</ul>
@@ -1548,30 +1103,31 @@ diff --git a/st.info b/st.info
</li>
<li>
- <p><span class="main-name">ncurses</span> supports all of the
- for SVr4 curses features including keyboard mapping, color,
- forms-drawing with ACS characters, and automatic recognition
+ <p><span class="main-name">ncurses</span> supports the
+ features of SVr4 curses including keyboard mapping, color,
+ form drawing with ACS characters, and automatic recognition
of keypad and function keys.</p>
</li>
<li>
- <p><span class="main-name">ncurses</span> provides these SVr4
- add-on libraries (not part of X/Open Curses):</p>
+ <p><span class="main-name">ncurses</span> provides work-alike
+ replacements of SVr4 supplemental libraries based on curses,
+ but which were not specified by X/Open Curses:</p>
<ul>
<li>
- <p>the panels library, supporting a stack of windows with
- backing store.</p>
+ <p>the panel library, supporting a stack of windows with
+ backing store</p>
</li>
<li>
- <p>the menus library, supporting a uniform but flexible
- interface for menu programming.</p>
+ <p>the menu library, supporting a uniform but flexible
+ interface for menu programming</p>
</li>
<li>
<p>the form library, supporting data collection through
- on-screen forms.</p>
+ on-screen forms</p>
</li>
</ul>
</li>
@@ -1583,7 +1139,7 @@ diff --git a/st.info b/st.info
<ul>
<li>
<p><span class="main-name">ncurses</span> supports
- user-defined capabilities which it can see, but which are
+ user-defined capabilities that it can see, but which are
hidden from SVr4 curses applications using the
<em>same</em> terminal database.</p>
</li>
@@ -1605,7 +1161,7 @@ diff --git a/st.info b/st.info
<p>The <span class="main-name">ncurses</span> utilities have
options to allow you to filter terminfo entries for use with
less capable <em>curses</em>/<em>terminfo</em> versions such
- as the HP/UX and AIX ports.</p>
+ as the HP-UX and AIX ports.</p>
</li>
</ul>
@@ -1615,11 +1171,11 @@ diff --git a/st.info b/st.info
<ul>
<li>
<p>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).</p>
+ X/Open Curses specification, XSI curses (that is, it
+ implements all <em>BASE</em> level features, and almost all
+ <em>EXTENDED</em> 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).</p>
</li>
<li>
@@ -1662,6 +1218,11 @@ diff --git a/st.info b/st.info
</li>
<li>
+ <p>Support for direct-color terminals, such as modern
+ xterm.</p>
+ </li>
+
+ <li>
<p>Support for 256-color terminals, such as modern xterm.</p>
</li>
@@ -1751,10 +1312,27 @@ diff --git a/st.info b/st.info
</li>
<li>
- <p>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 <code>#undef</code>.</p>
+ <p>X/Open Curses permits most functions it specifies to be
+ made available as macros as well. ncurses does this</p>
+
+ <ul>
+ <li>to improve performance, e.g., for operations composed
+ of simpler functions such as cursor movement following by
+ adding text to the screen,</li>
+
+ <li>to simplify the implementation by reusing functions
+ which use common parameters, e.g., the standard screen
+ <code>stdscr</code>, and</li>
+
+ <li>to provide functions that return values via their
+ parameters</li>
+ </ul>
+
+ <p>Except for the last case, ncurses provides a non-macro
+ implementation of the function. If the macro definition is
+ disabled with <code>#undef</code>, or by defining
+ <code>NCURSES_NOMACROS</code> the function may be linked (and
+ its calls will be checked against the prototype).</p>
</li>
<li>
@@ -1856,7 +1434,8 @@ diff --git a/st.info b/st.info
<p>New vi uses ncurses.</p>
<p><a href=
- "https://sites.google.com/a/bostic.com/keithbostic/vi">https://sites.google.com/a/bostic.com/keithbostic/vi</a><br>
+ "https://sites.google.com/a/bostic.com/keithbostic/the-berkeley-vi-editor-home-page">
+ https://sites.google.com/a/bostic.com/keithbostic/the-berkeley-vi-editor-home-page</a><br>
</p>
</dd>
@@ -1904,7 +1483,7 @@ diff --git a/st.info b/st.info
<p>terminal emulator for serial modem connections</p>
<p><a href=
- "https://alioth.debian.org/projects/minicom/">https://alioth.debian.org/projects/minicom/</a></p>
+ "https://salsa.debian.org/minicom-team/minicom">https://salsa.debian.org/minicom-team/minicom</a></p>
</dd>
<dt><span class="part-name">mosh</span>
@@ -1913,8 +1492,7 @@ diff --git a/st.info b/st.info
<dd>
<p>a replacement for <code>ssh</code>.</p>
- <p><a href=
- "https://mosh.mit.edu/">https://mosh.mit.edu/</a></p>
+ <p><a href="https://mosh.org/">https://mosh.org/</a></p>
</dd>
<dt><span class="part-name">tack</span>
@@ -2005,7 +1583,7 @@ diff --git a/st.info b/st.info
<p>Ongoing development work is done by <a href=
"mailto:dickey@invisible-island.net">Thomas E. Dickey</a>. Thomas
E. Dickey has acted as the maintainer for the Free Software
- Foundation, which holds a <a href=
+ Foundation, which held a <a href=
"@HOMEPAGE@/ncurses-license.html">copyright on ncurses</a> for
releases 4.2 through 6.1. Following the release of ncurses 6.1,
effective as of release 6.2, copyright for ncurses reverted to
@@ -2026,7 +1604,6 @@ diff --git a/st.info b/st.info
"mailto:bug-ncurses-request@gnu.org">bug-ncurses-request@gnu.org</a>
</blockquote>
containing the line:
-
<blockquote>
<p><code>subscribe</code>
<em>&lt;name&gt;@&lt;host.domain&gt;</em></p>
@@ -2040,7 +1617,7 @@ diff --git a/st.info b/st.info
<blockquote>
<p><a href=
- "ftp://ftp.invisible-island.net/ncurses/current/">ftp://ftp.invisible-island.net/ncurses/current/</a>
+ "https://invisible-island.net/archives/ncurses/current/">https://invisible-island.net/archives/ncurses/current/</a>
and<br>
<a href=
"https://invisible-mirror.net/archives/ncurses/current/">https://invisible-mirror.net/archives/ncurses/current/</a>&nbsp;.</p>
@@ -2050,19 +1627,17 @@ diff --git a/st.info b/st.info
<blockquote>
<p><a href=
- "ftp://ftp.invisible-island.net/ncurses/6.1/">ftp://ftp.invisible-island.net/ncurses/6.1/</a>
+ "https://invisible-island.net/archives/ncurses/6.4/">https://invisible-island.net/archives/ncurses/6.4/</a>
and<br>
<a href=
- "https://invisible-mirror.net/archives/ncurses/6.1/">https://invisible-mirror.net/archives/ncurses/6.1/</a>&nbsp;.</p>
+ "https://invisible-mirror.net/archives/ncurses/6.4/">https://invisible-mirror.net/archives/ncurses/6.4/</a>&nbsp;.</p>
</blockquote>
<p>There is an archive of the mailing list here:</p>
<blockquote>
<p><a href=
- "http://lists.gnu.org/archive/html/bug-ncurses">http://lists.gnu.org/archive/html/bug-ncurses</a>
- (also <a href=
- "https://lists.gnu.org/archive/html/bug-ncurses">https</a>)</p>
+ "https://lists.gnu.org/archive/html/bug-ncurses">https://lists.gnu.org/archive/html/bug-ncurses</a>&nbsp;.</p>
</blockquote>
<h2><a name="h2-this-stuff" id="h2-this-stuff">Related
@@ -2082,6 +1657,9 @@ diff --git a/st.info b/st.info
<span class="main-name">ncurses</span> versus <span class=
"main-name">slang</span> (S-Lang)</a></li>
+ <li><a href="@HOMEPAGE@/ncurses-openbsd.html">Comments on
+ <span class="main-name">OpenBSD</span></a></li>
+
<li><a href="@HOMEPAGE@/tack.html">tack &ndash; terminfo action
checker</a></li>
@@ -2101,14 +1679,15 @@ diff --git a/st.info b/st.info
<a href="http://www.catb.org/~esr/terminfo/">Eric
Raymond</a>&nbsp;. Unlike the older version, the termcap and
terminfo data are provided in the same file, which also provides
- several user-definable extensions beyond the X/Open
+ several user-definable extensions beyond the X/Open Curses
specification.</p>
<p>You can find lots of information on terminal-related topics
- not covered in the terminfo file at <a href=
- "http://web.archive.org/web/*/http://www.cs.utk.edu/~shuford/terminal">
- Richard Shuford's archive</a>&nbsp;. The collection of computer
- manuals at <a href=
+ not covered in the terminfo file in <a href=
+ "https://shuford.invisible-island.net/">Richard Shuford's
+ archive</a> (<a href=
+ "http://web.archive.org/web/*/http://www.cs.utk.edu/~shuford/terminal">original</a>).
+ The collection of computer manuals at <a href=
"http://www.bitsavers.org/pdf/">bitsavers.org</a> has also been
useful.</p>
@@ -2118,11 +1697,9 @@ diff --git a/st.info b/st.info
<li>
<a href="#h2-release-notes">Release Notes</a>
-
<ul>
<li>
<a href="#h3-library">Library improvements</a>
-
<ul>
<li><a href="#h4-new-library">New features</a></li>
@@ -2133,7 +1710,6 @@ diff --git a/st.info b/st.info
<li>
<a href="#h3-programs">Program improvements</a>
-
<ul>
<li><a href="#h4-utilities">Utilities</a></li>
@@ -2149,7 +1725,6 @@ diff --git a/st.info b/st.info
<li>
<a href="#h3-config-config">Configuration changes</a>
-
<ul>
<li><a href="#h4-config-major">Major changes</a></li>
diff --git a/c++/Makefile.in b/c++/Makefile.in
index c1c0db703cf8..99f21da480fa 100644
--- a/c++/Makefile.in
+++ b/c++/Makefile.in
@@ -1,4 +1,4 @@
-# $Id: Makefile.in,v 1.128 2021/01/23 20:42:08 tom Exp $
+# $Id: Makefile.in,v 1.133 2021/07/03 18:53:57 tom Exp $
##############################################################################
# Copyright 2018-2020,2021 Thomas E. Dickey #
# Copyright 1998-2015,2016 Free Software Foundation, Inc. #
@@ -68,7 +68,7 @@ LIBTOOL_UNINSTALL = @LIB_UNINSTALL@
LIBTOOL_VERSION = @LIBTOOL_VERSION@
LT_UNDEF = @LT_UNDEF@
-INSTALL = @INSTALL@
+INSTALL = @INSTALL@
INSTALL_LIB = $(INSTALL) @INSTALL_LIB@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_OPT_P = @INSTALL_OPT_P@
@@ -128,6 +128,10 @@ LIBNAME = @LIB_PREFIX@$(LIBROOT)@CXX_LIB_SUFFIX@
LIBRARIES = @Libs_To_Make@
+LINT = @LINT@
+LINT_OPTS = @LINT_OPTS@
+LINT_LIBS = -lncurses @LIBS@
+
LINK_FLAGS = @EXTRA_LDFLAGS@ -L../lib -l$(LIBROOT)@USE_LIB_SUFFIX@
RPATH_LIST = @RPATH_LIST@
MK_SHARED_LIB = @MK_SHARED_LIB@
@@ -140,7 +144,7 @@ LINK_SHARED = $(LINK_FLAGS)
# flags for test-programs
TEST_LIBS = @TEST_LIBS@
-TEST_ARGS = @LDFLAGS_STATIC@ @TEST_ARGS@ @LDFLAGS_SHARED@
+TEST_ARGS = @LDFLAGS_STATIC@ @TEST_ARGS@ @LDFLAGS_SHARED@
TEST_LDFLAGS = $(TEST_ARGS) @LDFLAGS@ \
@LD_MODEL@ $(TEST_LIBS) @LIBS@ @LOCAL_LDFLAGS@ $(CXXLIBS)
@@ -159,15 +163,31 @@ LDFLAGS = $(TEST_ARGS) @LDFLAGS@ \
AUTO_SRC = \
etip.h
+################################################################################
+
+@MAKE_PHONY@.PHONY : all
+@MAKE_PHONY@.PHONY : check
+@MAKE_PHONY@.PHONY : clean
+@MAKE_PHONY@.PHONY : depend
+@MAKE_PHONY@.PHONY : distclean
+@MAKE_PHONY@.PHONY : install
+@MAKE_PHONY@.PHONY : install.libs
+@MAKE_PHONY@.PHONY : libs
+@MAKE_PHONY@.PHONY : mostlyclean
+@MAKE_PHONY@.PHONY : realclean
+@MAKE_PHONY@.PHONY : sources
+@MAKE_PHONY@.PHONY : uninstall
+@MAKE_PHONY@.PHONY : uninstall.libs
+
all \
libs :: $(AUTO_SRC) $(LIBRARIES)
@MAKE_TESTS@all :: demo$x
-sources : $(AUTO_SRC)
-
depend :
+sources : $(AUTO_SRC)
+
tags:
$(CTAGS) *.[h] *.cc
@@ -255,6 +275,18 @@ etip.h: $(srcdir)/etip.h.in $(srcdir)/edit_cfg.sh
cp $(srcdir)/etip.h.in $@
$(SHELL) $(srcdir)/edit_cfg.sh ../include/ncurses_cfg.h $@
+# Verify that each header-file can be compiled without including another.
+check ::
+ @$(SHELL) -c "for header in *.h;\
+ do \
+ [ \$${header} = etip.h ] && continue; \
+ echo \"** testing \$${header}\" ; \
+ echo \"#include <\$${header}>\" >headers.cc; \
+ echo \"int main(int argc, char **argv) { (void) argc; (void) argv; return 0; }\" >>headers.cc; \
+ $(CXX) -c $(CXXFLAGS) $(CPPFLAGS) headers.cc; \
+ done"
+ -@rm -f headers.*
+
###############################################################################
# The remainder of this file is automatically generated during configuration
###############################################################################
diff --git a/c++/NEWS b/c++/NEWS
index 69948934dc1a..998e5ff3c0bf 100644
--- a/c++/NEWS
+++ b/c++/NEWS
@@ -1,5 +1,5 @@
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey --
+-- Copyright 2020,2021 Thomas E. Dickey --
-- Copyright 1998-1999,2006 Free Software Foundation, Inc. --
-- --
-- Permission is hereby granted, free of charge, to any person obtaining a --
@@ -26,7 +26,7 @@
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
--- $Id: NEWS,v 1.5 2020/02/02 23:34:34 tom Exp $
+-- $Id: NEWS,v 1.6 2021/06/17 21:20:30 tom Exp $
-------------------------------------------------------------------------------
This is a log of changes that the ncurses C++ binding has gone
through starting with the integration of menu and forms integration
@@ -37,19 +37,19 @@ into the binding.
to view the pad.
970908 + Improve NCursesWindow class: added additional methods to
- cover more ncurses functionality. Make refresh() and
+ cover more ncurses functionality. Make refresh() and
noutrefresh() virtual members to allow different implementation
in the NCursesPanel class.
+ CAUTION: changed order of parameters in vline() and hline() of
NCursesWindow class.
+ Make refresh() in NCursesPanel non-static, it is now a
- reimplementation of refresh() in the base class. Added
+ reimplementation of refresh() in the base class. Added
noutrefresh() to NCursesPanel.
+ Added NCursesForm and related classes to support libform
functionality.
+ Moved most of configuration related stuff from cursesw.h to
etip.h
- + Added NCursesApplication class to support easy configuration
+ + Added NCursesApplication class to support easy configuration
of menu and forms related attributes as well as ripped of
title lines and Soft-Label-Keys for an application.
+ Support of Auto-Cleanup for a menus fieldlist.
@@ -63,10 +63,10 @@ into the binding.
+ Added the NCursesMenu class to support libmenu functionality.
+ The inheritace relation between NCursesWindow and NCursesColorWindow
was kind of brain damage. Monochrome is a special case of colored, so
- the relation should be just the opposite. This would allow all
- derived classes like NCursesPanel, NCursesMenu or NCursesForm to
+ the relation should be just the opposite. This would allow all
+ derived classes like NCursesPanel, NCursesMenu or NCursesForm to
have colors.
- To resolve that design flaw I put the color functionality into the
+ To resolve that design flaw I put the color functionality into the
NCursesWindow class and it can be switched on by the static member
useColors(). NCursesColorWindow is still there for compatibility
reasons.
diff --git a/c++/README-first b/c++/README-first
index 374328f36ab8..313c1f8e710d 100644
--- a/c++/README-first
+++ b/c++/README-first
@@ -1,5 +1,5 @@
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey --
+-- Copyright 2020,2021 Thomas E. Dickey --
-- Copyright 1998-2006,2007 Free Software Foundation, Inc. --
-- --
-- Permission is hereby granted, free of charge, to any person obtaining a --
@@ -26,7 +26,7 @@
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
--- $Id: README-first,v 1.10 2020/02/02 23:34:34 tom Exp $
+-- $Id: README-first,v 1.11 2021/06/17 21:20:30 tom Exp $
-------------------------------------------------------------------------------
C++ interface to ncurses routines
-----------------------------------------------------------------------
@@ -45,7 +45,7 @@ the curses.h file. This is a steady cause of trouble because many
common identifiers are used. Instead now all #defines are inline
functions, which also allows strict type checking of arguments.
-The next enhancement is color support. It was originally provided by a
+The next enhancement is color support. It was originally provided by a
derived class. This caused some trouble if you think about Panels or
Menus and Forms with colors. We decided to put color support into the
base class so that any derived class may use color support also.
diff --git a/c++/cursesapp.h b/c++/cursesapp.h
index 9d7b8a3958c2..1296f374e984 100644
--- a/c++/cursesapp.h
+++ b/c++/cursesapp.h
@@ -1,6 +1,6 @@
// * This makes emacs happy -*-Mode: C++;-*-
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2020,2021 Thomas E. Dickey *
* Copyright 1998-2005,2011 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -32,7 +32,7 @@
* Author: Juergen Pfeifer, 1997 *
****************************************************************************/
-// $Id: cursesapp.h,v 1.17 2020/08/29 16:22:03 juergen Exp $
+// $Id: cursesapp.h,v 1.18 2021/06/17 21:26:02 tom Exp $
#ifndef NCURSES_CURSESAPP_H_incl
#define NCURSES_CURSESAPP_H_incl
@@ -187,5 +187,5 @@ public:
}
};
-
+
#endif /* NCURSES_CURSESAPP_H_incl */
diff --git a/c++/cursesf.cc b/c++/cursesf.cc
index fcf0080f9db5..5d316489ea00 100644
--- a/c++/cursesf.cc
+++ b/c++/cursesf.cc
@@ -1,6 +1,6 @@
// * this is for making emacs happy: -*-Mode: C++;-*-
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2020,2021 Thomas E. Dickey *
* Copyright 1998-2005,2011 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -36,7 +36,7 @@
#include "cursesf.h"
#include "cursesapp.h"
-MODULE_ID("$Id: cursesf.cc,v 1.25 2020/07/18 19:57:11 anonymous.maarten Exp $")
+MODULE_ID("$Id: cursesf.cc,v 1.26 2021/04/17 18:11:08 tom Exp $")
NCursesFormField::~NCursesFormField () THROWS(NCursesException)
{
@@ -285,15 +285,15 @@ NCursesFormField*
NCursesForm::operator()(void)
{
int drvCmnd;
- int err;
int c;
post();
show();
refresh();
- while (((drvCmnd = virtualize((c=getKey()))) != CMD_QUIT)) {
- switch((err=driver(drvCmnd))) {
+ while (((drvCmnd = virtualize((c = getKey()))) != CMD_QUIT)) {
+ int err;
+ switch((err = driver(drvCmnd))) {
case E_REQUEST_DENIED:
On_Request_Denied(c);
break;
diff --git a/c++/cursesf.h b/c++/cursesf.h
index c7000948e16e..e29e7adbf6f0 100644
--- a/c++/cursesf.h
+++ b/c++/cursesf.h
@@ -1,6 +1,7 @@
// * This makes emacs happy -*-Mode: C++;-*-
+// vile:cppmode
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2021,2022 Thomas E. Dickey *
* Copyright 1998-2012,2014 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -32,7 +33,7 @@
* Author: Juergen Pfeifer, 1997 *
****************************************************************************/
-// $Id: cursesf.h,v 1.37 2020/07/18 19:57:11 anonymous.maarten Exp $
+// $Id: cursesf.h,v 1.39 2022/08/20 20:52:15 tom Exp $
#ifndef NCURSES_CURSESF_H_incl
#define NCURSES_CURSESF_H_incl 1
@@ -500,21 +501,21 @@ public:
}
// Decorations
- inline void frame(const char *title=NULL, const char* btitle=NULL) {
+ inline void frame(const char *title=NULL, const char* btitle=NULL) NCURSES_OVERRIDE {
if (b_framed)
NCursesPanel::frame(title,btitle);
else
OnError(E_SYSTEM_ERROR);
}
- inline void boldframe(const char *title=NULL, const char* btitle=NULL) {
+ inline void boldframe(const char *title=NULL, const char* btitle=NULL) NCURSES_OVERRIDE {
if (b_framed)
NCursesPanel::boldframe(title,btitle);
else
OnError(E_SYSTEM_ERROR);
}
- inline void label(const char *topLabel, const char *bottomLabel) {
+ inline void label(const char *topLabel, const char *bottomLabel) NCURSES_OVERRIDE {
if (b_framed)
NCursesPanel::label(topLabel,bottomLabel);
else
@@ -726,12 +727,12 @@ class NCURSES_CXX_IMPEXP Alpha_Field : public NCursesFieldType
private:
int min_field_width;
- void set(NCursesFormField& f) {
+ void set(NCursesFormField& f) NCURSES_OVERRIDE {
OnError(::set_field_type(f.get_field(),fieldtype,min_field_width));
}
public:
- Alpha_Field(int width)
+ explicit Alpha_Field(int width)
: NCursesFieldType(TYPE_ALPHA),
min_field_width(width) {
}
@@ -742,12 +743,12 @@ class NCURSES_CXX_IMPEXP Alphanumeric_Field : public NCursesFieldType
private:
int min_field_width;
- void set(NCursesFormField& f) {
+ void set(NCursesFormField& f) NCURSES_OVERRIDE {
OnError(::set_field_type(f.get_field(),fieldtype,min_field_width));
}
public:
- Alphanumeric_Field(int width)
+ explicit Alphanumeric_Field(int width)
: NCursesFieldType(TYPE_ALNUM),
min_field_width(width) {
}
@@ -759,7 +760,7 @@ private:
int precision;
long lower_limit, upper_limit;
- void set(NCursesFormField& f) {
+ void set(NCursesFormField& f) NCURSES_OVERRIDE {
OnError(::set_field_type(f.get_field(),fieldtype,
precision,lower_limit,upper_limit));
}
@@ -777,7 +778,7 @@ private:
int precision;
double lower_limit, upper_limit;
- void set(NCursesFormField& f) {
+ void set(NCursesFormField& f) NCURSES_OVERRIDE {
OnError(::set_field_type(f.get_field(),fieldtype,
precision,lower_limit,upper_limit));
}
@@ -794,7 +795,7 @@ class NCURSES_CXX_IMPEXP Regular_Expression_Field : public NCursesFieldType
private:
char* regex;
- void set(NCursesFormField& f) {
+ void set(NCursesFormField& f) NCURSES_OVERRIDE {
OnError(::set_field_type(f.get_field(),fieldtype,regex));
}
@@ -805,7 +806,7 @@ private:
}
public:
- Regular_Expression_Field(const char *expr)
+ explicit Regular_Expression_Field(const char *expr)
: NCursesFieldType(TYPE_REGEXP),
regex(NULL)
{
@@ -841,7 +842,7 @@ private:
int case_sensitive;
int non_unique_matches;
- void set(NCursesFormField& f) {
+ void set(NCursesFormField& f) NCURSES_OVERRIDE {
OnError(::set_field_type(f.get_field(),fieldtype,
list,case_sensitive,non_unique_matches));
}
@@ -876,7 +877,7 @@ public:
class NCURSES_CXX_IMPEXP IPV4_Address_Field : public NCursesFieldType
{
private:
- void set(NCursesFormField& f) {
+ void set(NCursesFormField& f) NCURSES_OVERRIDE {
OnError(::set_field_type(f.get_field(),fieldtype));
}
@@ -911,7 +912,7 @@ protected:
friend bool _nc_xx_fld_ccheck(int c, const void *);
friend void* _nc_xx_fld_makearg(va_list*);
- void set(NCursesFormField& f) {
+ void set(NCursesFormField& f) NCURSES_OVERRIDE {
OnError(::set_field_type(f.get_field(),fieldtype,&f));
}
diff --git a/c++/cursesm.cc b/c++/cursesm.cc
index 2215a16891c6..64f36358cd99 100644
--- a/c++/cursesm.cc
+++ b/c++/cursesm.cc
@@ -1,6 +1,6 @@
// * this is for making emacs happy: -*-Mode: C++;-*-
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2020,2021 Thomas E. Dickey *
* Copyright 1998-2011,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -36,7 +36,7 @@
#include "cursesm.h"
#include "cursesapp.h"
-MODULE_ID("$Id: cursesm.cc,v 1.26 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: cursesm.cc,v 1.27 2021/04/17 18:11:08 tom Exp $")
NCursesMenuItem::~NCursesMenuItem() THROWS(NCursesException)
{
@@ -301,7 +301,6 @@ NCursesMenuItem*
NCursesMenu::operator()(void)
{
int drvCmnd;
- int err;
int c;
bool b_action = FALSE;
@@ -309,9 +308,10 @@ NCursesMenu::operator()(void)
show();
refresh();
- while (!b_action && ((drvCmnd = virtualize((c=getKey()))) != CMD_QUIT)) {
+ while (!b_action && ((drvCmnd = virtualize((c = getKey()))) != CMD_QUIT)) {
+ int err;
- switch((err=driver(drvCmnd))) {
+ switch((err = driver(drvCmnd))) {
case E_REQUEST_DENIED:
On_Request_Denied(c);
break;
diff --git a/c++/cursesm.h b/c++/cursesm.h
index 383c7e12507e..9651195fd9d2 100644
--- a/c++/cursesm.h
+++ b/c++/cursesm.h
@@ -1,6 +1,6 @@
// * This makes emacs happy -*-Mode: C++;-*-
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2020,2022 Thomas E. Dickey *
* Copyright 1998-2012,2014 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -32,7 +32,7 @@
* Author: Juergen Pfeifer, 1997 *
****************************************************************************/
-// $Id: cursesm.h,v 1.34 2020/05/24 01:40:20 anonymous.maarten Exp $
+// $Id: cursesm.h,v 1.35 2022/08/20 20:52:15 tom Exp $
#ifndef NCURSES_CURSESM_H_incl
#define NCURSES_CURSESM_H_incl 1
@@ -182,7 +182,7 @@ public:
virtual ~NCursesMenuCallbackItem() THROWS(NCursesException);
- bool action();
+ bool action() NCURSES_OVERRIDE;
};
// This are the built-in hook functions in this C++ binding. In C++ we use
@@ -512,21 +512,21 @@ public:
}
// Decorations
- inline void frame(const char *title=NULL, const char* btitle=NULL) {
+ inline void frame(const char *title=NULL, const char* btitle=NULL) NCURSES_OVERRIDE {
if (b_framed)
NCursesPanel::frame(title,btitle);
else
OnError(E_SYSTEM_ERROR);
}
- inline void boldframe(const char *title=NULL, const char* btitle=NULL) {
+ inline void boldframe(const char *title=NULL, const char* btitle=NULL) NCURSES_OVERRIDE {
if (b_framed)
NCursesPanel::boldframe(title,btitle);
else
OnError(E_SYSTEM_ERROR);
}
- inline void label(const char *topLabel, const char *bottomLabel) {
+ inline void label(const char *topLabel, const char *bottomLabel) NCURSES_OVERRIDE {
if (b_framed)
NCursesPanel::label(topLabel,bottomLabel);
else
diff --git a/c++/cursesp.h b/c++/cursesp.h
index eb9111b7aedd..f0bd5c9cdfff 100644
--- a/c++/cursesp.h
+++ b/c++/cursesp.h
@@ -1,6 +1,7 @@
// * This makes emacs happy -*-Mode: C++;-*-
+// vile:cppmode
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2021,2022 Thomas E. Dickey *
* Copyright 1998-2012,2014 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -35,7 +36,7 @@
#ifndef NCURSES_CURSESP_H_incl
#define NCURSES_CURSESP_H_incl 1
-// $Id: cursesp.h,v 1.34 2020/05/24 01:40:20 anonymous.maarten Exp $
+// $Id: cursesp.h,v 1.36 2022/08/20 20:52:15 tom Exp $
#include <cursesw.h>
@@ -161,7 +162,7 @@ public:
// N.B.: The panel associated with ::stdscr is always on the bottom. So
// actually bottom() makes the panel the first above ::stdscr.
- virtual int mvwin(int y, int x)
+ virtual int mvwin(int y, int x) NCURSES_OVERRIDE
{
OnError(::move_panel(p, y, x));
return OK;
@@ -194,11 +195,11 @@ public:
// Those two are rewrites of the corresponding virtual members of
// NCursesWindow
- virtual int refresh();
+ virtual int refresh() NCURSES_OVERRIDE;
// Propagate all panel changes to the virtual screen and update the
// physical screen.
- virtual int noutrefresh();
+ virtual int noutrefresh() NCURSES_OVERRIDE;
// Propagate all panel changes to the virtual screen.
static void redraw();
@@ -243,7 +244,7 @@ public:
// This creates an user panel of the requested size with associated
// user data pointed to by p_UserData.
- NCursesUserPanel(const T* p_UserData = STATIC_CAST(T*)(0)) : NCursesPanel()
+ explicit NCursesUserPanel(const T* p_UserData = STATIC_CAST(T*)(0)) : NCursesPanel()
{
if (p)
set_user(const_cast<void *>(reinterpret_cast<const void*>(p_UserData)));
diff --git a/c++/cursesw.h b/c++/cursesw.h
index 602b7a965091..eef5a631c995 100644
--- a/c++/cursesw.h
+++ b/c++/cursesw.h
@@ -1,7 +1,7 @@
// * This makes emacs happy -*-Mode: C++;-*-
// vile:cppmode
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2021,2022 Thomas E. Dickey *
* Copyright 1998-2014,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -32,7 +32,7 @@
#ifndef NCURSES_CURSESW_H_incl
#define NCURSES_CURSESW_H_incl 1
-// $Id: cursesw.h,v 1.57 2020/07/04 20:38:43 tom Exp $
+// $Id: cursesw.h,v 1.59 2022/08/20 20:52:15 tom Exp $
extern "C" {
# include <curses.h>
@@ -816,7 +816,7 @@ protected:
NCursesWindow();
public:
- NCursesWindow(WINDOW* window); // useful only for stdscr
+ explicit NCursesWindow(WINDOW* window); // useful only for stdscr
NCursesWindow(int nlines, // number of lines
int ncols, // number of columns
@@ -1385,7 +1385,7 @@ public:
class NCURSES_CXX_IMPEXP NCursesColorWindow : public NCursesWindow
{
public:
- NCursesColorWindow(WINDOW* &window) // useful only for stdscr
+ explicit NCursesColorWindow(WINDOW* &window) // useful only for stdscr
: NCursesWindow(window) {
useColors(); }
@@ -1503,7 +1503,7 @@ public:
// Put the attributed character onto the pad and immediately do a
// prefresh().
- int refresh();
+ int refresh() NCURSES_OVERRIDE;
// If a viewport is defined the pad is displayed in this window, otherwise
// this is a noop.
@@ -1517,7 +1517,7 @@ public:
// on the screen. <b>refresh</b> copies a rectangle of this size beginning
// with top left corner pminrow,pmincol onto the screen and calls doupdate().
- int noutrefresh();
+ int noutrefresh() NCURSES_OVERRIDE;
// If a viewport is defined the pad is displayed in this window, otherwise
// this is a noop.
@@ -1547,7 +1547,7 @@ public:
class NCURSES_CXX_IMPEXP NCursesFramedPad : public NCursesPad
{
protected:
- virtual void OnOperation(int pad_req);
+ virtual void OnOperation(int pad_req) NCURSES_OVERRIDE;
public:
NCursesFramedPad(NCursesWindow& win, int nlines, int ncols,
@@ -1562,7 +1562,7 @@ public:
delete getSubWindow();
}
- void setWindow(NCursesWindow& view, int v_grid = 1, int h_grid = 1) {
+ void setWindow(NCursesWindow& view, int v_grid = 1, int h_grid = 1) NCURSES_OVERRIDE {
(void) view;
(void) v_grid;
(void) h_grid;
@@ -1570,7 +1570,7 @@ public:
}
// Disable this call; the viewport is already defined
- void setSubWindow(NCursesWindow& sub) {
+ void setSubWindow(NCursesWindow& sub) NCURSES_OVERRIDE {
(void) sub;
err_handler("Operation not allowed");
}
diff --git a/c++/cursslk.cc b/c++/cursslk.cc
index 9922163cd360..7b898cefff7d 100644
--- a/c++/cursslk.cc
+++ b/c++/cursslk.cc
@@ -1,6 +1,6 @@
// * this is for making emacs happy: -*-Mode: C++;-*-
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2022,2023 Thomas E. Dickey *
* Copyright 1998-2005,2012 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -36,7 +36,7 @@
#include "cursslk.h"
#include "cursesapp.h"
-MODULE_ID("$Id: cursslk.cc,v 1.19 2020/07/18 19:57:11 anonymous.maarten Exp $")
+MODULE_ID("$Id: cursslk.cc,v 1.21 2023/02/25 23:36:06 tom Exp $")
Soft_Label_Key_Set::Soft_Label_Key&
Soft_Label_Key_Set::Soft_Label_Key::operator=(char *text)
@@ -56,7 +56,11 @@ Soft_Label_Key_Set::Label_Layout
void Soft_Label_Key_Set::init()
{
- slk_array = new Soft_Label_Key[num_labels];
+ if (num_labels > 12)
+ num_labels = 12;
+ if (num_labels < 0)
+ num_labels = 0;
+ slk_array = new Soft_Label_Key[num_labels + 1];
for(int i=0; i < num_labels; i++) {
slk_array[i].num = i+1;
}
diff --git a/c++/cursslk.h b/c++/cursslk.h
index 4a34400916d3..66564fe3a479 100644
--- a/c++/cursslk.h
+++ b/c++/cursslk.h
@@ -1,6 +1,7 @@
// * this is for making emacs happy: -*-Mode: C++;-*-
+// vile:cppmode
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2020,2021 Thomas E. Dickey *
* Copyright 1998-2003,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -32,7 +33,7 @@
* Author: Juergen Pfeifer, 1997 *
****************************************************************************/
-// $Id: cursslk.h,v 1.18 2020/07/18 19:57:11 anonymous.maarten Exp $
+// $Id: cursslk.h,v 1.19 2021/04/17 18:11:08 tom Exp $
#ifndef NCURSES_CURSSLK_H_incl
#define NCURSES_CURSSLK_H_incl
@@ -140,7 +141,7 @@ public:
// You must create a Soft_Label_Key_Set before you create any object of
// the NCursesWindow, NCursesPanel or derived classes. (Actually before
// ::initscr() is called).
- Soft_Label_Key_Set(Label_Layout fmt);
+ explicit Soft_Label_Key_Set(Label_Layout fmt);
// This constructor assumes, that you already constructed a Key Set
// with a layout by the constructor above. This layout will be reused.
diff --git a/c++/demo.cc b/c++/demo.cc
index 6996097b0f97..7d300ff38b4e 100644
--- a/c++/demo.cc
+++ b/c++/demo.cc
@@ -1,6 +1,6 @@
// * This makes emacs happy -*-Mode: C++;-*-
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2021,2023 Thomas E. Dickey *
* Copyright 1998-2012,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -36,7 +36,7 @@
* Demo code for NCursesMenu and NCursesForm written by
* Juergen Pfeifer
*
- * $Id: demo.cc,v 1.49 2020/09/13 00:47:00 tom Exp $
+ * $Id: demo.cc,v 1.52 2023/08/26 19:14:14 tom Exp $
*/
#include "internal.h"
@@ -46,6 +46,7 @@
#if (defined(_WIN32) || defined(_WIN64))
#undef KEY_EVENT
+#undef sleep
#define sleep(n) Sleep(n)
#else
extern "C" unsigned int sleep(unsigned int);
@@ -104,7 +105,7 @@ class SillyDemo
}
// A refresh to any valid panel updates all panels and refreshes
- // the screen. Using mystd is just convenient - We know it's always
+ // the screen. Using mystd is just convenient - We know it is always
// valid until the end of the program.
mystd->refresh();
@@ -168,7 +169,7 @@ public:
//
// -------------------------------------------------------------------------
//
-template<class T> class MyAction : public NCursesUserItem<T>
+template<class T> class NCURSES_CXX_IMPEXP MyAction : public NCursesUserItem<UserData>
{
public:
MyAction (const char* p_name,
@@ -185,9 +186,6 @@ public:
}
};
-template class MyAction<UserData>;
-template class NCURSES_CXX_IMPEXP NCursesUserItem<UserData>;
-
class QuitItem : public NCursesMenuItem
{
public:
diff --git a/c++/edit_cfg.sh b/c++/edit_cfg.sh
index 92ab0b1fbdc5..928f7fdfb7dd 100755
--- a/c++/edit_cfg.sh
+++ b/c++/edit_cfg.sh
@@ -1,7 +1,7 @@
#!/bin/sh
-# $Id: edit_cfg.sh,v 1.18 2020/02/02 23:34:34 tom Exp $
+# $Id: edit_cfg.sh,v 1.19 2022/07/16 18:00:59 tom Exp $
##############################################################################
-# Copyright 2020 Thomas E. Dickey #
+# Copyright 2020,2022 Thomas E. Dickey #
# Copyright 1998-2007,2008 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -51,22 +51,22 @@ for name in \
HAVE_VALUES_H \
IOSTREAM_NAMESPACE
do
- rm -f $2.bak
- mv $2 $2.bak
- if ( grep "[ ]$name[ ]1" $1 2>&1 >/dev/null)
+ rm -f "$2".bak
+ mv "$2" "$2".bak
+ if ( grep "[ ]${name}[ ]1" "$1" >/dev/null 2>&1)
then
value=1
- sed -e 's/define '$name'.*$/define '$name' 1/' $2.bak >$2
+ sed -e 's/define '"$name"'.*$/define '"$name"' 1/' "$2".bak >"$2"
else
value=0
- sed -e 's/define '$name'.*$/define '$name' 0/' $2.bak >$2
+ sed -e 's/define '"$name"'.*$/define '"$name"' 0/' "$2".bak >"$2"
fi
- if (cmp -s $2 $2.bak)
+ if (cmp -s "$2" "$2".bak)
then
echo '... '$name $value
- mv $2.bak $2
+ mv "$2".bak "$2"
else
echo '... '$name $value
- rm -f $2.bak
+ rm -f "$2".bak
fi
done
diff --git a/c++/etip.h.in b/c++/etip.h.in
index 6dc41042e61d..70842ef6b4c6 100644
--- a/c++/etip.h.in
+++ b/c++/etip.h.in
@@ -1,6 +1,6 @@
// * This makes emacs happy -*-Mode: C++;-*-
/****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2021,2022 Thomas E. Dickey *
* Copyright 1998-2012,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -32,7 +32,7 @@
* Author: Juergen Pfeifer, 1997 *
****************************************************************************/
-// $Id: etip.h.in,v 1.45 2020/05/24 01:40:20 anonymous.maarten Exp $
+// $Id: etip.h.in,v 1.50 2022/08/20 20:50:00 tom Exp $
#ifndef NCURSES_ETIP_H_incl
#define NCURSES_ETIP_H_incl 1
@@ -70,6 +70,10 @@
#define ETIP_NEEDS_MATH_EXCEPTION 0
#endif
+#ifndef CPP_HAS_OVERRIDE
+#define CPP_HAS_OVERRIDE 0
+#endif
+
#ifndef CPP_HAS_PARAM_INIT
#define CPP_HAS_PARAM_INIT 0
#endif
@@ -127,6 +131,12 @@ extern "C" {
}
// Language features
+#if CPP_HAS_OVERRIDE
+#define NCURSES_OVERRIDE override
+#else
+#define NCURSES_OVERRIDE /*nothing*/
+#endif
+
#if CPP_HAS_PARAM_INIT
#define NCURSES_PARAM_INIT(value) = value
#else
@@ -139,6 +149,10 @@ extern "C" {
#define STATIC_CAST(s) (s)
#endif
+#ifndef NCURSES_CXX_IMPEXP
+#define NCURSES_CXX_IMPEXP /* nothing */
+#endif
+
// Forward Declarations
class NCURSES_CXX_IMPEXP NCursesPanel;
class NCURSES_CXX_IMPEXP NCursesMenu;
@@ -154,12 +168,13 @@ public:
: message(msg), errorno (err)
{};
- NCursesException (const char* msg)
+ explicit NCursesException (const char* msg)
: message(msg), errorno (E_SYSTEM_ERROR)
{};
NCursesException& operator=(const NCursesException& rhs)
{
+ message = rhs.message;
errorno = rhs.errorno;
return *this;
}
@@ -195,7 +210,7 @@ public:
p (panel)
{};
- NCursesPanelException (int err) :
+ explicit NCursesPanelException (int err) :
NCursesException ("panel library error", err),
p (0)
{};
@@ -220,7 +235,7 @@ public:
{
}
- virtual const char *classname() const {
+ virtual const char *classname() const NCURSES_OVERRIDE {
return "NCursesPanel";
}
@@ -246,7 +261,7 @@ public:
m (menu)
{};
- NCursesMenuException (int err) :
+ explicit NCursesMenuException (int err) :
NCursesException ("menu library error", err),
m (0)
{};
@@ -271,7 +286,7 @@ public:
{
}
- virtual const char *classname() const {
+ virtual const char *classname() const NCURSES_OVERRIDE {
return "NCursesMenu";
}
@@ -297,7 +312,7 @@ public:
f (form)
{};
- NCursesFormException (int err) :
+ explicit NCursesFormException (int err) :
NCursesException ("form library error", err),
f (0)
{};
@@ -322,7 +337,7 @@ public:
{
}
- virtual const char *classname() const {
+ virtual const char *classname() const NCURSES_OVERRIDE {
return "NCursesForm";
}
diff --git a/config.guess b/config.guess
index 95b16c7747a1..f47d666d340b 100755
--- a/config.guess
+++ b/config.guess
@@ -1,12 +1,14 @@
#! /bin/sh
# Attempt to guess a canonical system name.
-# Copyright 1992-2019 Free Software Foundation, Inc.
+# Copyright 1992-2023 Free Software Foundation, Inc.
-timestamp='2019-12-21'
+# shellcheck disable=SC2006,SC2268 # see below for rationale
+
+timestamp='2023-10-19'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
+# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
@@ -27,17 +29,25 @@ timestamp='2019-12-21'
# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
#
# You can get the latest version of this script from:
-# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
+# https://git.savannah.gnu.org/cgit/config.git/plain/config.guess
#
# Please send patches to <config-patches@gnu.org>.
+# The "shellcheck disable" line above the timestamp inhibits complaints
+# about features and limitations of the classic Bourne shell that were
+# superseded or lifted in POSIX. However, this script identifies a wide
+# variety of pre-POSIX systems that do not have POSIX shells at all, and
+# even some reasonably current systems (Solaris 10 as case-in-point) still
+# have a pre-POSIX /bin/sh.
+
+
me=`echo "$0" | sed -e 's,.*/,,'`
usage="\
Usage: $0 [OPTION]
-Output the configuration name of the system \`$me' is run on.
+Output the configuration name of the system '$me' is run on.
Options:
-h, --help print this help, then exit
@@ -50,13 +60,13 @@ version="\
GNU config.guess ($timestamp)
Originally written by Per Bothner.
-Copyright 1992-2019 Free Software Foundation, Inc.
+Copyright 1992-2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
help="
-Try \`$me --help' for more information."
+Try '$me --help' for more information."
# Parse command line
while test $# -gt 0 ; do
@@ -84,13 +94,16 @@ if test $# != 0; then
exit 1
fi
+# Just in case it came from the environment.
+GUESS=
+
# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
# compiler to aid in system detection is discouraged as it requires
# temporary files to be created and, as you can see below, it is a
# headache to deal with in a portable fashion.
-# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
-# use `HOST_CC' if defined, but it is deprecated.
+# Historically, 'CC_FOR_BUILD' used to be named 'HOST_CC'. We still
+# use 'HOST_CC' if defined, but it is deprecated.
# Portable tmp directory creation inspired by the Autoconf team.
@@ -102,7 +115,7 @@ set_cc_for_build() {
# prevent multiple calls if $tmp is already set
test "$tmp" && return 0
: "${TMPDIR=/tmp}"
- # shellcheck disable=SC2039
+ # shellcheck disable=SC2039,SC3028
{ tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } ||
{ tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } ||
@@ -112,7 +125,7 @@ set_cc_for_build() {
,,) echo "int x;" > "$dummy.c"
for driver in cc gcc c89 c99 ; do
if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
- CC_FOR_BUILD="$driver"
+ CC_FOR_BUILD=$driver
break
fi
done
@@ -133,40 +146,57 @@ fi
UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
-UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-case "$UNAME_SYSTEM" in
+case $UNAME_SYSTEM in
Linux|GNU|GNU/*)
- # If the system lacks a compiler, then just pick glibc.
- # We could probably try harder.
- LIBC=gnu
+ LIBC=unknown
set_cc_for_build
cat <<-EOF > "$dummy.c"
+ #if defined(__ANDROID__)
+ LIBC=android
+ #else
#include <features.h>
#if defined(__UCLIBC__)
LIBC=uclibc
#elif defined(__dietlibc__)
LIBC=dietlibc
- #else
+ #elif defined(__GLIBC__)
LIBC=gnu
+ #elif defined(__LLVM_LIBC__)
+ LIBC=llvm
+ #else
+ #include <stdarg.h>
+ /* First heuristic to detect musl libc. */
+ #ifdef __DEFINED_va_list
+ LIBC=musl
+ #endif
+ #endif
#endif
EOF
- eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`"
+ cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
+ eval "$cc_set_libc"
- # If ldd exists, use it to detect musl libc.
- if command -v ldd >/dev/null && \
- ldd --version 2>&1 | grep -q ^musl
- then
- LIBC=musl
+ # Second heuristic to detect musl libc.
+ if [ "$LIBC" = unknown ] &&
+ command -v ldd >/dev/null &&
+ ldd --version 2>&1 | grep -q ^musl; then
+ LIBC=musl
+ fi
+
+ # If the system lacks a compiler, then just pick glibc.
+ # We could probably try harder.
+ if [ "$LIBC" = unknown ]; then
+ LIBC=gnu
fi
;;
esac
# Note: order is significant - the case branches are not exclusive.
-case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
+case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in
*:NetBSD:*:*)
# NetBSD (nbsd) targets should (where applicable) match one or
# more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
@@ -178,12 +208,12 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
#
# Note: NetBSD doesn't particularly care about the vendor
# portion of the name. We always set it to "unknown".
- sysctl="sysctl -n hw.machine_arch"
UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
- "/sbin/$sysctl" 2>/dev/null || \
- "/usr/sbin/$sysctl" 2>/dev/null || \
+ /sbin/sysctl -n hw.machine_arch 2>/dev/null || \
+ /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \
echo unknown)`
- case "$UNAME_MACHINE_ARCH" in
+ case $UNAME_MACHINE_ARCH in
+ aarch64eb) machine=aarch64_be-unknown ;;
armeb) machine=armeb-unknown ;;
arm*) machine=arm-unknown ;;
sh3el) machine=shl-unknown ;;
@@ -192,13 +222,13 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
earmv*)
arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'`
- machine="${arch}${endian}"-unknown
+ machine=${arch}${endian}-unknown
;;
- *) machine="$UNAME_MACHINE_ARCH"-unknown ;;
+ *) machine=$UNAME_MACHINE_ARCH-unknown ;;
esac
# The Operating System including object format, if it has switched
# to ELF recently (or will in the future) and ABI.
- case "$UNAME_MACHINE_ARCH" in
+ case $UNAME_MACHINE_ARCH in
earm*)
os=netbsdelf
;;
@@ -219,7 +249,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
;;
esac
# Determine ABI tags.
- case "$UNAME_MACHINE_ARCH" in
+ case $UNAME_MACHINE_ARCH in
earm*)
expr='s/^earmv[0-9]/-eabi/;s/eb$//'
abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"`
@@ -230,7 +260,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
# thus, need a distinct triplet. However, they do not need
# kernel version information, so it can be replaced with a
# suitable tag, in the style of linux-gnu.
- case "$UNAME_VERSION" in
+ case $UNAME_VERSION in
Debian*)
release='-gnu'
;;
@@ -241,51 +271,57 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
# contains redundant information, the shorter form:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
- echo "$machine-${os}${release}${abi-}"
- exit ;;
+ GUESS=$machine-${os}${release}${abi-}
+ ;;
*:Bitrig:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
- echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE"
- exit ;;
+ GUESS=$UNAME_MACHINE_ARCH-unknown-bitrig$UNAME_RELEASE
+ ;;
*:OpenBSD:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
- echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE"
- exit ;;
+ GUESS=$UNAME_MACHINE_ARCH-unknown-openbsd$UNAME_RELEASE
+ ;;
+ *:SecBSD:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'`
+ GUESS=$UNAME_MACHINE_ARCH-unknown-secbsd$UNAME_RELEASE
+ ;;
*:LibertyBSD:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
- echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE"
- exit ;;
+ GUESS=$UNAME_MACHINE_ARCH-unknown-libertybsd$UNAME_RELEASE
+ ;;
*:MidnightBSD:*:*)
- echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-midnightbsd$UNAME_RELEASE
+ ;;
*:ekkoBSD:*:*)
- echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-ekkobsd$UNAME_RELEASE
+ ;;
*:SolidBSD:*:*)
- echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-solidbsd$UNAME_RELEASE
+ ;;
*:OS108:*:*)
- echo "$UNAME_MACHINE"-unknown-os108_"$UNAME_RELEASE"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-os108_$UNAME_RELEASE
+ ;;
macppc:MirBSD:*:*)
- echo powerpc-unknown-mirbsd"$UNAME_RELEASE"
- exit ;;
+ GUESS=powerpc-unknown-mirbsd$UNAME_RELEASE
+ ;;
*:MirBSD:*:*)
- echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-mirbsd$UNAME_RELEASE
+ ;;
*:Sortix:*:*)
- echo "$UNAME_MACHINE"-unknown-sortix
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-sortix
+ ;;
*:Twizzler:*:*)
- echo "$UNAME_MACHINE"-unknown-twizzler
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-twizzler
+ ;;
*:Redox:*:*)
- echo "$UNAME_MACHINE"-unknown-redox
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-redox
+ ;;
mips:OSF1:*.*)
- echo mips-dec-osf1
- exit ;;
+ GUESS=mips-dec-osf1
+ ;;
alpha:OSF1:*:*)
+ # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
+ trap '' 0
case $UNAME_RELEASE in
*4.0)
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
@@ -299,7 +335,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
# covers most systems running today. This code pipes the CPU
# types through head -n 1, so we only detect the type of CPU 0.
ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
- case "$ALPHA_CPU_TYPE" in
+ case $ALPHA_CPU_TYPE in
"EV4 (21064)")
UNAME_MACHINE=alpha ;;
"EV4.5 (21064)")
@@ -336,117 +372,121 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
# A Tn.n version is a released field test version.
# A Xn.n version is an unreleased experimental baselevel.
# 1.2 uses "1.2" for uname -r.
- echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`"
- # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
- exitcode=$?
- trap '' 0
- exit $exitcode ;;
+ OSF_REL=`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
+ GUESS=$UNAME_MACHINE-dec-osf$OSF_REL
+ ;;
Amiga*:UNIX_System_V:4.0:*)
- echo m68k-unknown-sysv4
- exit ;;
+ GUESS=m68k-unknown-sysv4
+ ;;
*:[Aa]miga[Oo][Ss]:*:*)
- echo "$UNAME_MACHINE"-unknown-amigaos
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-amigaos
+ ;;
*:[Mm]orph[Oo][Ss]:*:*)
- echo "$UNAME_MACHINE"-unknown-morphos
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-morphos
+ ;;
*:OS/390:*:*)
- echo i370-ibm-openedition
- exit ;;
+ GUESS=i370-ibm-openedition
+ ;;
*:z/VM:*:*)
- echo s390-ibm-zvmoe
- exit ;;
+ GUESS=s390-ibm-zvmoe
+ ;;
*:OS400:*:*)
- echo powerpc-ibm-os400
- exit ;;
+ GUESS=powerpc-ibm-os400
+ ;;
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
- echo arm-acorn-riscix"$UNAME_RELEASE"
- exit ;;
+ GUESS=arm-acorn-riscix$UNAME_RELEASE
+ ;;
arm*:riscos:*:*|arm*:RISCOS:*:*)
- echo arm-unknown-riscos
- exit ;;
+ GUESS=arm-unknown-riscos
+ ;;
SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
- echo hppa1.1-hitachi-hiuxmpp
- exit ;;
+ GUESS=hppa1.1-hitachi-hiuxmpp
+ ;;
Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
- if test "`(/bin/universe) 2>/dev/null`" = att ; then
- echo pyramid-pyramid-sysv3
- else
- echo pyramid-pyramid-bsd
- fi
- exit ;;
+ case `(/bin/universe) 2>/dev/null` in
+ att) GUESS=pyramid-pyramid-sysv3 ;;
+ *) GUESS=pyramid-pyramid-bsd ;;
+ esac
+ ;;
NILE*:*:*:dcosx)
- echo pyramid-pyramid-svr4
- exit ;;
+ GUESS=pyramid-pyramid-svr4
+ ;;
DRS?6000:unix:4.0:6*)
- echo sparc-icl-nx6
- exit ;;
+ GUESS=sparc-icl-nx6
+ ;;
DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
case `/usr/bin/uname -p` in
- sparc) echo sparc-icl-nx7; exit ;;
- esac ;;
+ sparc) GUESS=sparc-icl-nx7 ;;
+ esac
+ ;;
s390x:SunOS:*:*)
- echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
- exit ;;
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=$UNAME_MACHINE-ibm-solaris2$SUN_REL
+ ;;
sun4H:SunOS:5.*:*)
- echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
- exit ;;
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=sparc-hal-solaris2$SUN_REL
+ ;;
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
- echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
- exit ;;
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=sparc-sun-solaris2$SUN_REL
+ ;;
i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
- echo i386-pc-auroraux"$UNAME_RELEASE"
- exit ;;
+ GUESS=i386-pc-auroraux$UNAME_RELEASE
+ ;;
i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
set_cc_for_build
SUN_ARCH=i386
# If there is a compiler, see if it is configured for 64-bit objects.
# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
# This test works for both compilers.
- if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
+ if test "$CC_FOR_BUILD" != no_compiler_found; then
if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
- (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+ (CCOPTS="" $CC_FOR_BUILD -m64 -E - 2>/dev/null) | \
grep IS_64BIT_ARCH >/dev/null
then
SUN_ARCH=x86_64
fi
fi
- echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
- exit ;;
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=$SUN_ARCH-pc-solaris2$SUN_REL
+ ;;
sun4*:SunOS:6*:*)
# According to config.sub, this is the proper way to canonicalize
# SunOS6. Hard to guess exactly what SunOS6 will be like, but
# it's likely to be more like Solaris than SunOS4.
- echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
- exit ;;
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=sparc-sun-solaris3$SUN_REL
+ ;;
sun4*:SunOS:*:*)
- case "`/usr/bin/arch -k`" in
+ case `/usr/bin/arch -k` in
Series*|S4*)
UNAME_RELEASE=`uname -v`
;;
esac
- # Japanese Language versions have a version number like `4.1.3-JL'.
- echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`"
- exit ;;
+ # Japanese Language versions have a version number like '4.1.3-JL'.
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'`
+ GUESS=sparc-sun-sunos$SUN_REL
+ ;;
sun3*:SunOS:*:*)
- echo m68k-sun-sunos"$UNAME_RELEASE"
- exit ;;
+ GUESS=m68k-sun-sunos$UNAME_RELEASE
+ ;;
sun*:*:4.2BSD:*)
UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3
- case "`/bin/arch`" in
+ case `/bin/arch` in
sun3)
- echo m68k-sun-sunos"$UNAME_RELEASE"
+ GUESS=m68k-sun-sunos$UNAME_RELEASE
;;
sun4)
- echo sparc-sun-sunos"$UNAME_RELEASE"
+ GUESS=sparc-sun-sunos$UNAME_RELEASE
;;
esac
- exit ;;
+ ;;
aushp:SunOS:*:*)
- echo sparc-auspex-sunos"$UNAME_RELEASE"
- exit ;;
+ GUESS=sparc-auspex-sunos$UNAME_RELEASE
+ ;;
# The situation for MiNT is a little confusing. The machine name
# can be virtually everything (everything which is not
# "atarist" or "atariste" at least should have a processor
@@ -456,41 +496,41 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
# MiNT. But MiNT is downward compatible to TOS, so this should
# be no problem.
atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint"$UNAME_RELEASE"
- exit ;;
+ GUESS=m68k-atari-mint$UNAME_RELEASE
+ ;;
atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint"$UNAME_RELEASE"
- exit ;;
+ GUESS=m68k-atari-mint$UNAME_RELEASE
+ ;;
*falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
- echo m68k-atari-mint"$UNAME_RELEASE"
- exit ;;
+ GUESS=m68k-atari-mint$UNAME_RELEASE
+ ;;
milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
- echo m68k-milan-mint"$UNAME_RELEASE"
- exit ;;
+ GUESS=m68k-milan-mint$UNAME_RELEASE
+ ;;
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
- echo m68k-hades-mint"$UNAME_RELEASE"
- exit ;;
+ GUESS=m68k-hades-mint$UNAME_RELEASE
+ ;;
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
- echo m68k-unknown-mint"$UNAME_RELEASE"
- exit ;;
+ GUESS=m68k-unknown-mint$UNAME_RELEASE
+ ;;
m68k:machten:*:*)
- echo m68k-apple-machten"$UNAME_RELEASE"
- exit ;;
+ GUESS=m68k-apple-machten$UNAME_RELEASE
+ ;;
powerpc:machten:*:*)
- echo powerpc-apple-machten"$UNAME_RELEASE"
- exit ;;
+ GUESS=powerpc-apple-machten$UNAME_RELEASE
+ ;;
RISC*:Mach:*:*)
- echo mips-dec-mach_bsd4.3
- exit ;;
+ GUESS=mips-dec-mach_bsd4.3
+ ;;
RISC*:ULTRIX:*:*)
- echo mips-dec-ultrix"$UNAME_RELEASE"
- exit ;;
+ GUESS=mips-dec-ultrix$UNAME_RELEASE
+ ;;
VAX*:ULTRIX*:*:*)
- echo vax-dec-ultrix"$UNAME_RELEASE"
- exit ;;
+ GUESS=vax-dec-ultrix$UNAME_RELEASE
+ ;;
2020:CLIX:*:* | 2430:CLIX:*:*)
- echo clipper-intergraph-clix"$UNAME_RELEASE"
- exit ;;
+ GUESS=clipper-intergraph-clix$UNAME_RELEASE
+ ;;
mips:*:*:UMIPS | mips:*:*:RISCos)
set_cc_for_build
sed 's/^ //' << EOF > "$dummy.c"
@@ -518,75 +558,76 @@ EOF
dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` &&
SYSTEM_NAME=`"$dummy" "$dummyarg"` &&
{ echo "$SYSTEM_NAME"; exit; }
- echo mips-mips-riscos"$UNAME_RELEASE"
- exit ;;
+ GUESS=mips-mips-riscos$UNAME_RELEASE
+ ;;
Motorola:PowerMAX_OS:*:*)
- echo powerpc-motorola-powermax
- exit ;;
+ GUESS=powerpc-motorola-powermax
+ ;;
Motorola:*:4.3:PL8-*)
- echo powerpc-harris-powermax
- exit ;;
+ GUESS=powerpc-harris-powermax
+ ;;
Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
- echo powerpc-harris-powermax
- exit ;;
+ GUESS=powerpc-harris-powermax
+ ;;
Night_Hawk:Power_UNIX:*:*)
- echo powerpc-harris-powerunix
- exit ;;
+ GUESS=powerpc-harris-powerunix
+ ;;
m88k:CX/UX:7*:*)
- echo m88k-harris-cxux7
- exit ;;
+ GUESS=m88k-harris-cxux7
+ ;;
m88k:*:4*:R4*)
- echo m88k-motorola-sysv4
- exit ;;
+ GUESS=m88k-motorola-sysv4
+ ;;
m88k:*:3*:R3*)
- echo m88k-motorola-sysv3
- exit ;;
+ GUESS=m88k-motorola-sysv3
+ ;;
AViiON:dgux:*:*)
# DG/UX returns AViiON for all architectures
UNAME_PROCESSOR=`/usr/bin/uname -p`
- if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ]
+ if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110
then
- if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \
- [ "$TARGET_BINARY_INTERFACE"x = x ]
+ if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \
+ test "$TARGET_BINARY_INTERFACE"x = x
then
- echo m88k-dg-dgux"$UNAME_RELEASE"
+ GUESS=m88k-dg-dgux$UNAME_RELEASE
else
- echo m88k-dg-dguxbcs"$UNAME_RELEASE"
+ GUESS=m88k-dg-dguxbcs$UNAME_RELEASE
fi
else
- echo i586-dg-dgux"$UNAME_RELEASE"
+ GUESS=i586-dg-dgux$UNAME_RELEASE
fi
- exit ;;
+ ;;
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
- echo m88k-dolphin-sysv3
- exit ;;
+ GUESS=m88k-dolphin-sysv3
+ ;;
M88*:*:R3*:*)
# Delta 88k system running SVR3
- echo m88k-motorola-sysv3
- exit ;;
+ GUESS=m88k-motorola-sysv3
+ ;;
XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
- echo m88k-tektronix-sysv3
- exit ;;
+ GUESS=m88k-tektronix-sysv3
+ ;;
Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
- echo m68k-tektronix-bsd
- exit ;;
+ GUESS=m68k-tektronix-bsd
+ ;;
*:IRIX*:*:*)
- echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`"
- exit ;;
+ IRIX_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/g'`
+ GUESS=mips-sgi-irix$IRIX_REL
+ ;;
????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
- exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
+ GUESS=romp-ibm-aix # uname -m gives an 8 hex-code CPU id
+ ;; # Note that: echo "'`uname -s`'" gives 'AIX '
i*86:AIX:*:*)
- echo i386-ibm-aix
- exit ;;
+ GUESS=i386-ibm-aix
+ ;;
ia64:AIX:*:*)
- if [ -x /usr/bin/oslevel ] ; then
+ if test -x /usr/bin/oslevel ; then
IBM_REV=`/usr/bin/oslevel`
else
- IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
+ IBM_REV=$UNAME_VERSION.$UNAME_RELEASE
fi
- echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV"
- exit ;;
+ GUESS=$UNAME_MACHINE-ibm-aix$IBM_REV
+ ;;
*:AIX:2:3)
if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
set_cc_for_build
@@ -603,16 +644,16 @@ EOF
EOF
if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"`
then
- echo "$SYSTEM_NAME"
+ GUESS=$SYSTEM_NAME
else
- echo rs6000-ibm-aix3.2.5
+ GUESS=rs6000-ibm-aix3.2.5
fi
elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
- echo rs6000-ibm-aix3.2.4
+ GUESS=rs6000-ibm-aix3.2.4
else
- echo rs6000-ibm-aix3.2
+ GUESS=rs6000-ibm-aix3.2
fi
- exit ;;
+ ;;
*:AIX:*:[4567])
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then
@@ -620,56 +661,56 @@ EOF
else
IBM_ARCH=powerpc
fi
- if [ -x /usr/bin/lslpp ] ; then
- IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
+ if test -x /usr/bin/lslpp ; then
+ IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | \
awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
else
- IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
+ IBM_REV=$UNAME_VERSION.$UNAME_RELEASE
fi
- echo "$IBM_ARCH"-ibm-aix"$IBM_REV"
- exit ;;
+ GUESS=$IBM_ARCH-ibm-aix$IBM_REV
+ ;;
*:AIX:*:*)
- echo rs6000-ibm-aix
- exit ;;
+ GUESS=rs6000-ibm-aix
+ ;;
ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*)
- echo romp-ibm-bsd4.4
- exit ;;
+ GUESS=romp-ibm-bsd4.4
+ ;;
ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
- echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to
- exit ;; # report: romp-ibm BSD 4.3
+ GUESS=romp-ibm-bsd$UNAME_RELEASE # 4.3 with uname added to
+ ;; # report: romp-ibm BSD 4.3
*:BOSX:*:*)
- echo rs6000-bull-bosx
- exit ;;
+ GUESS=rs6000-bull-bosx
+ ;;
DPX/2?00:B.O.S.:*:*)
- echo m68k-bull-sysv3
- exit ;;
+ GUESS=m68k-bull-sysv3
+ ;;
9000/[34]??:4.3bsd:1.*:*)
- echo m68k-hp-bsd
- exit ;;
+ GUESS=m68k-hp-bsd
+ ;;
hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
- echo m68k-hp-bsd4.4
- exit ;;
+ GUESS=m68k-hp-bsd4.4
+ ;;
9000/[34678]??:HP-UX:*:*)
- HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
- case "$UNAME_MACHINE" in
+ HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'`
+ case $UNAME_MACHINE in
9000/31?) HP_ARCH=m68000 ;;
9000/[34]??) HP_ARCH=m68k ;;
9000/[678][0-9][0-9])
- if [ -x /usr/bin/getconf ]; then
+ if test -x /usr/bin/getconf; then
sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
- case "$sc_cpu_version" in
+ case $sc_cpu_version in
523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
532) # CPU_PA_RISC2_0
- case "$sc_kernel_bits" in
+ case $sc_kernel_bits in
32) HP_ARCH=hppa2.0n ;;
64) HP_ARCH=hppa2.0w ;;
'') HP_ARCH=hppa2.0 ;; # HP-UX 10.20
esac ;;
esac
fi
- if [ "$HP_ARCH" = "" ]; then
+ if test "$HP_ARCH" = ""; then
set_cc_for_build
sed 's/^ //' << EOF > "$dummy.c"
@@ -708,7 +749,7 @@ EOF
test -z "$HP_ARCH" && HP_ARCH=hppa
fi ;;
esac
- if [ "$HP_ARCH" = hppa2.0w ]
+ if test "$HP_ARCH" = hppa2.0w
then
set_cc_for_build
@@ -729,12 +770,12 @@ EOF
HP_ARCH=hppa64
fi
fi
- echo "$HP_ARCH"-hp-hpux"$HPUX_REV"
- exit ;;
+ GUESS=$HP_ARCH-hp-hpux$HPUX_REV
+ ;;
ia64:HP-UX:*:*)
- HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
- echo ia64-hp-hpux"$HPUX_REV"
- exit ;;
+ HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'`
+ GUESS=ia64-hp-hpux$HPUX_REV
+ ;;
3050*:HI-UX:*:*)
set_cc_for_build
sed 's/^ //' << EOF > "$dummy.c"
@@ -764,36 +805,36 @@ EOF
EOF
$CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` &&
{ echo "$SYSTEM_NAME"; exit; }
- echo unknown-hitachi-hiuxwe2
- exit ;;
+ GUESS=unknown-hitachi-hiuxwe2
+ ;;
9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*)
- echo hppa1.1-hp-bsd
- exit ;;
+ GUESS=hppa1.1-hp-bsd
+ ;;
9000/8??:4.3bsd:*:*)
- echo hppa1.0-hp-bsd
- exit ;;
+ GUESS=hppa1.0-hp-bsd
+ ;;
*9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
- echo hppa1.0-hp-mpeix
- exit ;;
+ GUESS=hppa1.0-hp-mpeix
+ ;;
hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*)
- echo hppa1.1-hp-osf
- exit ;;
+ GUESS=hppa1.1-hp-osf
+ ;;
hp8??:OSF1:*:*)
- echo hppa1.0-hp-osf
- exit ;;
+ GUESS=hppa1.0-hp-osf
+ ;;
i*86:OSF1:*:*)
- if [ -x /usr/sbin/sysversion ] ; then
- echo "$UNAME_MACHINE"-unknown-osf1mk
+ if test -x /usr/sbin/sysversion ; then
+ GUESS=$UNAME_MACHINE-unknown-osf1mk
else
- echo "$UNAME_MACHINE"-unknown-osf1
+ GUESS=$UNAME_MACHINE-unknown-osf1
fi
- exit ;;
+ ;;
parisc*:Lites*:*:*)
- echo hppa1.1-hp-lites
- exit ;;
+ GUESS=hppa1.1-hp-lites
+ ;;
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
- echo c1-convex-bsd
- exit ;;
+ GUESS=c1-convex-bsd
+ ;;
C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
@@ -801,17 +842,18 @@ EOF
fi
exit ;;
C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
- echo c34-convex-bsd
- exit ;;
+ GUESS=c34-convex-bsd
+ ;;
C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
- echo c38-convex-bsd
- exit ;;
+ GUESS=c38-convex-bsd
+ ;;
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
- echo c4-convex-bsd
- exit ;;
+ GUESS=c4-convex-bsd
+ ;;
CRAY*Y-MP:*:*:*)
- echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
- exit ;;
+ CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+ GUESS=ymp-cray-unicos$CRAY_REL
+ ;;
CRAY*[A-Z]90:*:*:*)
echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \
| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
@@ -819,112 +861,153 @@ EOF
-e 's/\.[^.]*$/.X/'
exit ;;
CRAY*TS:*:*:*)
- echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
- exit ;;
+ CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+ GUESS=t90-cray-unicos$CRAY_REL
+ ;;
CRAY*T3E:*:*:*)
- echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
- exit ;;
+ CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+ GUESS=alphaev5-cray-unicosmk$CRAY_REL
+ ;;
CRAY*SV1:*:*:*)
- echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
- exit ;;
+ CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+ GUESS=sv1-cray-unicos$CRAY_REL
+ ;;
*:UNICOS/mp:*:*)
- echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
- exit ;;
+ CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+ GUESS=craynv-cray-unicosmp$CRAY_REL
+ ;;
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'`
- echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit ;;
+ GUESS=${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}
+ ;;
5000:UNIX_System_V:4.*:*)
FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
- echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit ;;
+ GUESS=sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}
+ ;;
i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
- echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE"
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-bsdi$UNAME_RELEASE
+ ;;
sparc*:BSD/OS:*:*)
- echo sparc-unknown-bsdi"$UNAME_RELEASE"
- exit ;;
+ GUESS=sparc-unknown-bsdi$UNAME_RELEASE
+ ;;
*:BSD/OS:*:*)
- echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-bsdi$UNAME_RELEASE
+ ;;
arm:FreeBSD:*:*)
UNAME_PROCESSOR=`uname -p`
set_cc_for_build
if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_PCS_VFP
then
- echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabi
+ FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+ GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabi
else
- echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabihf
+ FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+ GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabihf
fi
- exit ;;
+ ;;
*:FreeBSD:*:*)
- UNAME_PROCESSOR=`/usr/bin/uname -p`
- case "$UNAME_PROCESSOR" in
+ UNAME_PROCESSOR=`uname -p`
+ case $UNAME_PROCESSOR in
amd64)
UNAME_PROCESSOR=x86_64 ;;
i386)
UNAME_PROCESSOR=i586 ;;
esac
- echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
- exit ;;
+ FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+ GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL
+ ;;
i*:CYGWIN*:*)
- echo "$UNAME_MACHINE"-pc-cygwin
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-cygwin
+ ;;
*:MINGW64*:*)
- echo "$UNAME_MACHINE"-pc-mingw64
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-mingw64
+ ;;
*:MINGW*:*)
- echo "$UNAME_MACHINE"-pc-mingw32
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-mingw32
+ ;;
*:MSYS*:*)
- echo "$UNAME_MACHINE"-pc-msys
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-msys
+ ;;
i*:PW*:*)
- echo "$UNAME_MACHINE"-pc-pw32
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-pw32
+ ;;
+ *:SerenityOS:*:*)
+ GUESS=$UNAME_MACHINE-pc-serenity
+ ;;
*:Interix*:*)
- case "$UNAME_MACHINE" in
+ case $UNAME_MACHINE in
x86)
- echo i586-pc-interix"$UNAME_RELEASE"
- exit ;;
+ GUESS=i586-pc-interix$UNAME_RELEASE
+ ;;
authenticamd | genuineintel | EM64T)
- echo x86_64-unknown-interix"$UNAME_RELEASE"
- exit ;;
+ GUESS=x86_64-unknown-interix$UNAME_RELEASE
+ ;;
IA64)
- echo ia64-unknown-interix"$UNAME_RELEASE"
- exit ;;
+ GUESS=ia64-unknown-interix$UNAME_RELEASE
+ ;;
esac ;;
i*:UWIN*:*)
- echo "$UNAME_MACHINE"-pc-uwin
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-uwin
+ ;;
amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
- echo x86_64-pc-cygwin
- exit ;;
+ GUESS=x86_64-pc-cygwin
+ ;;
prep*:SunOS:5.*:*)
- echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
- exit ;;
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=powerpcle-unknown-solaris2$SUN_REL
+ ;;
*:GNU:*:*)
# the GNU system
- echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`"
- exit ;;
+ GNU_ARCH=`echo "$UNAME_MACHINE" | sed -e 's,[-/].*$,,'`
+ GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's,/.*$,,'`
+ GUESS=$GNU_ARCH-unknown-$LIBC$GNU_REL
+ ;;
*:GNU/*:*:*)
# other systems with GNU libc and userland
- echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC"
- exit ;;
+ GNU_SYS=`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"`
+ GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+ GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC
+ ;;
+ x86_64:[Mm]anagarm:*:*|i?86:[Mm]anagarm:*:*)
+ GUESS="$UNAME_MACHINE-pc-managarm-mlibc"
+ ;;
+ *:[Mm]anagarm:*:*)
+ GUESS="$UNAME_MACHINE-unknown-managarm-mlibc"
+ ;;
*:Minix:*:*)
- echo "$UNAME_MACHINE"-unknown-minix
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-minix
+ ;;
aarch64:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ set_cc_for_build
+ CPU=$UNAME_MACHINE
+ LIBCABI=$LIBC
+ if test "$CC_FOR_BUILD" != no_compiler_found; then
+ ABI=64
+ sed 's/^ //' << EOF > "$dummy.c"
+ #ifdef __ARM_EABI__
+ #ifdef __ARM_PCS_VFP
+ ABI=eabihf
+ #else
+ ABI=eabi
+ #endif
+ #endif
+EOF
+ cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'`
+ eval "$cc_set_abi"
+ case $ABI in
+ eabi | eabihf) CPU=armv8l; LIBCABI=$LIBC$ABI ;;
+ esac
+ fi
+ GUESS=$CPU-unknown-linux-$LIBCABI
+ ;;
aarch64_be:Linux:*:*)
UNAME_MACHINE=aarch64_be
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
alpha:Linux:*:*)
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in
EV5) UNAME_MACHINE=alphaev5 ;;
@@ -937,60 +1020,72 @@ EOF
esac
objdump --private-headers /bin/sh | grep -q ld.so.1
if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
- arc:Linux:*:* | arceb:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ arc:Linux:*:* | arceb:Linux:*:* | arc32:Linux:*:* | arc64:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
arm*:Linux:*:*)
set_cc_for_build
if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_EABI__
then
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
else
if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_PCS_VFP
then
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi
+ GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabi
else
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf
+ GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabihf
fi
fi
- exit ;;
+ ;;
avr32*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
cris:Linux:*:*)
- echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-axis-linux-$LIBC
+ ;;
crisv32:Linux:*:*)
- echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-axis-linux-$LIBC
+ ;;
e2k:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
frv:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
hexagon:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
i*86:Linux:*:*)
- echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-linux-$LIBC
+ ;;
ia64:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
k1om:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ kvx:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ kvx:cos:*:*)
+ GUESS=$UNAME_MACHINE-unknown-cos
+ ;;
+ kvx:mbr:*:*)
+ GUESS=$UNAME_MACHINE-unknown-mbr
+ ;;
+ loongarch32:Linux:*:* | loongarch64:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
m32r*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
m68*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
mips:Linux:*:* | mips64:Linux:*:*)
set_cc_for_build
IS_GLIBC=0
@@ -1035,113 +1130,135 @@ EOF
#endif
#endif
EOF
- eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'`"
+ cc_set_vars=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'`
+ eval "$cc_set_vars"
test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; }
;;
mips64el:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
openrisc*:Linux:*:*)
- echo or1k-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=or1k-unknown-linux-$LIBC
+ ;;
or32:Linux:*:* | or1k*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
padre:Linux:*:*)
- echo sparc-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=sparc-unknown-linux-$LIBC
+ ;;
parisc64:Linux:*:* | hppa64:Linux:*:*)
- echo hppa64-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=hppa64-unknown-linux-$LIBC
+ ;;
parisc:Linux:*:* | hppa:Linux:*:*)
# Look for CPU level
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
- PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;;
- PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;;
- *) echo hppa-unknown-linux-"$LIBC" ;;
+ PA7*) GUESS=hppa1.1-unknown-linux-$LIBC ;;
+ PA8*) GUESS=hppa2.0-unknown-linux-$LIBC ;;
+ *) GUESS=hppa-unknown-linux-$LIBC ;;
esac
- exit ;;
+ ;;
ppc64:Linux:*:*)
- echo powerpc64-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=powerpc64-unknown-linux-$LIBC
+ ;;
ppc:Linux:*:*)
- echo powerpc-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=powerpc-unknown-linux-$LIBC
+ ;;
ppc64le:Linux:*:*)
- echo powerpc64le-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=powerpc64le-unknown-linux-$LIBC
+ ;;
ppcle:Linux:*:*)
- echo powerpcle-unknown-linux-"$LIBC"
- exit ;;
- riscv32:Linux:*:* | riscv64:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=powerpcle-unknown-linux-$LIBC
+ ;;
+ riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
s390:Linux:*:* | s390x:Linux:*:*)
- echo "$UNAME_MACHINE"-ibm-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-ibm-linux-$LIBC
+ ;;
sh64*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
sh*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
sparc:Linux:*:* | sparc64:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
tile*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
vax:Linux:*:*)
- echo "$UNAME_MACHINE"-dec-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-dec-linux-$LIBC
+ ;;
x86_64:Linux:*:*)
- echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
- exit ;;
+ set_cc_for_build
+ CPU=$UNAME_MACHINE
+ LIBCABI=$LIBC
+ if test "$CC_FOR_BUILD" != no_compiler_found; then
+ ABI=64
+ sed 's/^ //' << EOF > "$dummy.c"
+ #ifdef __i386__
+ ABI=x86
+ #else
+ #ifdef __ILP32__
+ ABI=x32
+ #endif
+ #endif
+EOF
+ cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'`
+ eval "$cc_set_abi"
+ case $ABI in
+ x86) CPU=i686 ;;
+ x32) LIBCABI=${LIBC}x32 ;;
+ esac
+ fi
+ GUESS=$CPU-pc-linux-$LIBCABI
+ ;;
xtensa*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
i*86:DYNIX/ptx:4*:*)
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
# earlier versions are messed up and put the nodename in both
# sysname and nodename.
- echo i386-sequent-sysv4
- exit ;;
+ GUESS=i386-sequent-sysv4
+ ;;
i*86:UNIX_SV:4.2MP:2.*)
# Unixware is an offshoot of SVR4, but it has its own version
# number series starting with 2...
# I am not positive that other SVR4 systems won't match this,
# I just have to hope. -- rms.
# Use sysv4.2uw... so that sysv4* matches it.
- echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION"
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION
+ ;;
i*86:OS/2:*:*)
- # If we were able to find `uname', then EMX Unix compatibility
+ # If we were able to find 'uname', then EMX Unix compatibility
# is probably installed.
- echo "$UNAME_MACHINE"-pc-os2-emx
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-os2-emx
+ ;;
i*86:XTS-300:*:STOP)
- echo "$UNAME_MACHINE"-unknown-stop
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-stop
+ ;;
i*86:atheos:*:*)
- echo "$UNAME_MACHINE"-unknown-atheos
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-atheos
+ ;;
i*86:syllable:*:*)
- echo "$UNAME_MACHINE"-pc-syllable
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-syllable
+ ;;
i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
- echo i386-unknown-lynxos"$UNAME_RELEASE"
- exit ;;
+ GUESS=i386-unknown-lynxos$UNAME_RELEASE
+ ;;
i*86:*DOS:*:*)
- echo "$UNAME_MACHINE"-pc-msdosdjgpp
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-msdosdjgpp
+ ;;
i*86:*:4.*:*)
UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'`
if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
- echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL"
+ GUESS=$UNAME_MACHINE-univel-sysv$UNAME_REL
else
- echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL"
+ GUESS=$UNAME_MACHINE-pc-sysv$UNAME_REL
fi
- exit ;;
+ ;;
i*86:*:5:[678]*)
# UnixWare 7.x, OpenUNIX and OpenServer 6.
case `/bin/uname -X | grep "^Machine"` in
@@ -1149,12 +1266,12 @@ EOF
*Pentium) UNAME_MACHINE=i586 ;;
*Pent*|*Celeron) UNAME_MACHINE=i686 ;;
esac
- echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+ ;;
i*86:*:3.2:*)
if test -f /usr/options/cb.name; then
UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
- echo "$UNAME_MACHINE"-pc-isc"$UNAME_REL"
+ GUESS=$UNAME_MACHINE-pc-isc$UNAME_REL
elif /bin/uname -X 2>/dev/null >/dev/null ; then
UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
@@ -1164,11 +1281,11 @@ EOF
&& UNAME_MACHINE=i686
(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
&& UNAME_MACHINE=i686
- echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL"
+ GUESS=$UNAME_MACHINE-pc-sco$UNAME_REL
else
- echo "$UNAME_MACHINE"-pc-sysv32
+ GUESS=$UNAME_MACHINE-pc-sysv32
fi
- exit ;;
+ ;;
pc:*:*:*)
# Left here for compatibility:
# uname -m prints for DJGPP always 'pc', but it prints nothing about
@@ -1176,31 +1293,31 @@ EOF
# Note: whatever this is, it MUST be the same as what config.sub
# prints for the "djgpp" host, or else GDB configure will decide that
# this is a cross-build.
- echo i586-pc-msdosdjgpp
- exit ;;
+ GUESS=i586-pc-msdosdjgpp
+ ;;
Intel:Mach:3*:*)
- echo i386-pc-mach3
- exit ;;
+ GUESS=i386-pc-mach3
+ ;;
paragon:*:*:*)
- echo i860-intel-osf1
- exit ;;
+ GUESS=i860-intel-osf1
+ ;;
i860:*:4.*:*) # i860-SVR4
if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
- echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4
+ GUESS=i860-stardent-sysv$UNAME_RELEASE # Stardent Vistra i860-SVR4
else # Add other i860-SVR4 vendors below as they are discovered.
- echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4
+ GUESS=i860-unknown-sysv$UNAME_RELEASE # Unknown i860-SVR4
fi
- exit ;;
+ ;;
mini*:CTIX:SYS*5:*)
# "miniframe"
- echo m68010-convergent-sysv
- exit ;;
+ GUESS=m68010-convergent-sysv
+ ;;
mc68k:UNIX:SYSTEM5:3.51m)
- echo m68k-convergent-sysv
- exit ;;
+ GUESS=m68k-convergent-sysv
+ ;;
M680?0:D-NIX:5.3:*)
- echo m68k-diab-dnix
- exit ;;
+ GUESS=m68k-diab-dnix
+ ;;
M68*:*:R3V[5678]*:*)
test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
@@ -1225,113 +1342,119 @@ EOF
/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
&& { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
- echo m68k-unknown-lynxos"$UNAME_RELEASE"
- exit ;;
+ GUESS=m68k-unknown-lynxos$UNAME_RELEASE
+ ;;
mc68030:UNIX_System_V:4.*:*)
- echo m68k-atari-sysv4
- exit ;;
+ GUESS=m68k-atari-sysv4
+ ;;
TSUNAMI:LynxOS:2.*:*)
- echo sparc-unknown-lynxos"$UNAME_RELEASE"
- exit ;;
+ GUESS=sparc-unknown-lynxos$UNAME_RELEASE
+ ;;
rs6000:LynxOS:2.*:*)
- echo rs6000-unknown-lynxos"$UNAME_RELEASE"
- exit ;;
+ GUESS=rs6000-unknown-lynxos$UNAME_RELEASE
+ ;;
PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
- echo powerpc-unknown-lynxos"$UNAME_RELEASE"
- exit ;;
+ GUESS=powerpc-unknown-lynxos$UNAME_RELEASE
+ ;;
SM[BE]S:UNIX_SV:*:*)
- echo mips-dde-sysv"$UNAME_RELEASE"
- exit ;;
+ GUESS=mips-dde-sysv$UNAME_RELEASE
+ ;;
RM*:ReliantUNIX-*:*:*)
- echo mips-sni-sysv4
- exit ;;
+ GUESS=mips-sni-sysv4
+ ;;
RM*:SINIX-*:*:*)
- echo mips-sni-sysv4
- exit ;;
+ GUESS=mips-sni-sysv4
+ ;;
*:SINIX-*:*:*)
if uname -p 2>/dev/null >/dev/null ; then
UNAME_MACHINE=`(uname -p) 2>/dev/null`
- echo "$UNAME_MACHINE"-sni-sysv4
+ GUESS=$UNAME_MACHINE-sni-sysv4
else
- echo ns32k-sni-sysv
+ GUESS=ns32k-sni-sysv
fi
- exit ;;
- PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+ ;;
+ PENTIUM:*:4.0*:*) # Unisys 'ClearPath HMP IX 4000' SVR4/MP effort
# says <Richard.M.Bartel@ccMail.Census.GOV>
- echo i586-unisys-sysv4
- exit ;;
+ GUESS=i586-unisys-sysv4
+ ;;
*:UNIX_System_V:4*:FTX*)
# From Gerald Hewes <hewes@openmarket.com>.
# How about differentiating between stratus architectures? -djm
- echo hppa1.1-stratus-sysv4
- exit ;;
+ GUESS=hppa1.1-stratus-sysv4
+ ;;
*:*:*:FTX*)
# From seanf@swdc.stratus.com.
- echo i860-stratus-sysv4
- exit ;;
+ GUESS=i860-stratus-sysv4
+ ;;
i*86:VOS:*:*)
# From Paul.Green@stratus.com.
- echo "$UNAME_MACHINE"-stratus-vos
- exit ;;
+ GUESS=$UNAME_MACHINE-stratus-vos
+ ;;
*:VOS:*:*)
# From Paul.Green@stratus.com.
- echo hppa1.1-stratus-vos
- exit ;;
+ GUESS=hppa1.1-stratus-vos
+ ;;
mc68*:A/UX:*:*)
- echo m68k-apple-aux"$UNAME_RELEASE"
- exit ;;
+ GUESS=m68k-apple-aux$UNAME_RELEASE
+ ;;
news*:NEWS-OS:6*:*)
- echo mips-sony-newsos6
- exit ;;
+ GUESS=mips-sony-newsos6
+ ;;
R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
- if [ -d /usr/nec ]; then
- echo mips-nec-sysv"$UNAME_RELEASE"
+ if test -d /usr/nec; then
+ GUESS=mips-nec-sysv$UNAME_RELEASE
else
- echo mips-unknown-sysv"$UNAME_RELEASE"
+ GUESS=mips-unknown-sysv$UNAME_RELEASE
fi
- exit ;;
+ ;;
BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
- echo powerpc-be-beos
- exit ;;
+ GUESS=powerpc-be-beos
+ ;;
BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
- echo powerpc-apple-beos
- exit ;;
+ GUESS=powerpc-apple-beos
+ ;;
BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
- echo i586-pc-beos
- exit ;;
+ GUESS=i586-pc-beos
+ ;;
BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
- echo i586-pc-haiku
- exit ;;
- x86_64:Haiku:*:*)
- echo x86_64-unknown-haiku
- exit ;;
+ GUESS=i586-pc-haiku
+ ;;
+ ppc:Haiku:*:*) # Haiku running on Apple PowerPC
+ GUESS=powerpc-apple-haiku
+ ;;
+ *:Haiku:*:*) # Haiku modern gcc (not bound by BeOS compat)
+ GUESS=$UNAME_MACHINE-unknown-haiku
+ ;;
SX-4:SUPER-UX:*:*)
- echo sx4-nec-superux"$UNAME_RELEASE"
- exit ;;
+ GUESS=sx4-nec-superux$UNAME_RELEASE
+ ;;
SX-5:SUPER-UX:*:*)
- echo sx5-nec-superux"$UNAME_RELEASE"
- exit ;;
+ GUESS=sx5-nec-superux$UNAME_RELEASE
+ ;;
SX-6:SUPER-UX:*:*)
- echo sx6-nec-superux"$UNAME_RELEASE"
- exit ;;
+ GUESS=sx6-nec-superux$UNAME_RELEASE
+ ;;
SX-7:SUPER-UX:*:*)
- echo sx7-nec-superux"$UNAME_RELEASE"
- exit ;;
+ GUESS=sx7-nec-superux$UNAME_RELEASE
+ ;;
SX-8:SUPER-UX:*:*)
- echo sx8-nec-superux"$UNAME_RELEASE"
- exit ;;
+ GUESS=sx8-nec-superux$UNAME_RELEASE
+ ;;
SX-8R:SUPER-UX:*:*)
- echo sx8r-nec-superux"$UNAME_RELEASE"
- exit ;;
+ GUESS=sx8r-nec-superux$UNAME_RELEASE
+ ;;
SX-ACE:SUPER-UX:*:*)
- echo sxace-nec-superux"$UNAME_RELEASE"
- exit ;;
+ GUESS=sxace-nec-superux$UNAME_RELEASE
+ ;;
Power*:Rhapsody:*:*)
- echo powerpc-apple-rhapsody"$UNAME_RELEASE"
- exit ;;
+ GUESS=powerpc-apple-rhapsody$UNAME_RELEASE
+ ;;
*:Rhapsody:*:*)
- echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE"
- exit ;;
+ GUESS=$UNAME_MACHINE-apple-rhapsody$UNAME_RELEASE
+ ;;
+ arm64:Darwin:*:*)
+ GUESS=aarch64-apple-darwin$UNAME_RELEASE
+ ;;
*:Darwin:*:*)
UNAME_PROCESSOR=`uname -p`
case $UNAME_PROCESSOR in
@@ -1346,7 +1469,7 @@ EOF
else
set_cc_for_build
fi
- if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
+ if test "$CC_FOR_BUILD" != no_compiler_found; then
if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
grep IS_64BIT_ARCH >/dev/null
@@ -1367,109 +1490,122 @@ EOF
# uname -m returns i386 or x86_64
UNAME_PROCESSOR=$UNAME_MACHINE
fi
- echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE"
- exit ;;
+ GUESS=$UNAME_PROCESSOR-apple-darwin$UNAME_RELEASE
+ ;;
*:procnto*:*:* | *:QNX:[0123456789]*:*)
UNAME_PROCESSOR=`uname -p`
if test "$UNAME_PROCESSOR" = x86; then
UNAME_PROCESSOR=i386
UNAME_MACHINE=pc
fi
- echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE"
- exit ;;
+ GUESS=$UNAME_PROCESSOR-$UNAME_MACHINE-nto-qnx$UNAME_RELEASE
+ ;;
*:QNX:*:4*)
- echo i386-pc-qnx
- exit ;;
+ GUESS=i386-pc-qnx
+ ;;
NEO-*:NONSTOP_KERNEL:*:*)
- echo neo-tandem-nsk"$UNAME_RELEASE"
- exit ;;
+ GUESS=neo-tandem-nsk$UNAME_RELEASE
+ ;;
NSE-*:NONSTOP_KERNEL:*:*)
- echo nse-tandem-nsk"$UNAME_RELEASE"
- exit ;;
+ GUESS=nse-tandem-nsk$UNAME_RELEASE
+ ;;
NSR-*:NONSTOP_KERNEL:*:*)
- echo nsr-tandem-nsk"$UNAME_RELEASE"
- exit ;;
+ GUESS=nsr-tandem-nsk$UNAME_RELEASE
+ ;;
NSV-*:NONSTOP_KERNEL:*:*)
- echo nsv-tandem-nsk"$UNAME_RELEASE"
- exit ;;
+ GUESS=nsv-tandem-nsk$UNAME_RELEASE
+ ;;
NSX-*:NONSTOP_KERNEL:*:*)
- echo nsx-tandem-nsk"$UNAME_RELEASE"
- exit ;;
+ GUESS=nsx-tandem-nsk$UNAME_RELEASE
+ ;;
*:NonStop-UX:*:*)
- echo mips-compaq-nonstopux
- exit ;;
+ GUESS=mips-compaq-nonstopux
+ ;;
BS2000:POSIX*:*:*)
- echo bs2000-siemens-sysv
- exit ;;
+ GUESS=bs2000-siemens-sysv
+ ;;
DS/*:UNIX_System_V:*:*)
- echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE"
- exit ;;
+ GUESS=$UNAME_MACHINE-$UNAME_SYSTEM-$UNAME_RELEASE
+ ;;
*:Plan9:*:*)
# "uname -m" is not consistent, so use $cputype instead. 386
# is converted to i386 for consistency with other x86
# operating systems.
- # shellcheck disable=SC2154
- if test "$cputype" = 386; then
+ if test "${cputype-}" = 386; then
UNAME_MACHINE=i386
- else
- UNAME_MACHINE="$cputype"
+ elif test "x${cputype-}" != x; then
+ UNAME_MACHINE=$cputype
fi
- echo "$UNAME_MACHINE"-unknown-plan9
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-plan9
+ ;;
*:TOPS-10:*:*)
- echo pdp10-unknown-tops10
- exit ;;
+ GUESS=pdp10-unknown-tops10
+ ;;
*:TENEX:*:*)
- echo pdp10-unknown-tenex
- exit ;;
+ GUESS=pdp10-unknown-tenex
+ ;;
KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
- echo pdp10-dec-tops20
- exit ;;
+ GUESS=pdp10-dec-tops20
+ ;;
XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
- echo pdp10-xkl-tops20
- exit ;;
+ GUESS=pdp10-xkl-tops20
+ ;;
*:TOPS-20:*:*)
- echo pdp10-unknown-tops20
- exit ;;
+ GUESS=pdp10-unknown-tops20
+ ;;
*:ITS:*:*)
- echo pdp10-unknown-its
- exit ;;
+ GUESS=pdp10-unknown-its
+ ;;
SEI:*:*:SEIUX)
- echo mips-sei-seiux"$UNAME_RELEASE"
- exit ;;
+ GUESS=mips-sei-seiux$UNAME_RELEASE
+ ;;
*:DragonFly:*:*)
- echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
- exit ;;
+ DRAGONFLY_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+ GUESS=$UNAME_MACHINE-unknown-dragonfly$DRAGONFLY_REL
+ ;;
*:*VMS:*:*)
UNAME_MACHINE=`(uname -p) 2>/dev/null`
- case "$UNAME_MACHINE" in
- A*) echo alpha-dec-vms ; exit ;;
- I*) echo ia64-dec-vms ; exit ;;
- V*) echo vax-dec-vms ; exit ;;
+ case $UNAME_MACHINE in
+ A*) GUESS=alpha-dec-vms ;;
+ I*) GUESS=ia64-dec-vms ;;
+ V*) GUESS=vax-dec-vms ;;
esac ;;
*:XENIX:*:SysV)
- echo i386-pc-xenix
- exit ;;
+ GUESS=i386-pc-xenix
+ ;;
i*86:skyos:*:*)
- echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`"
- exit ;;
+ SKYOS_REL=`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`
+ GUESS=$UNAME_MACHINE-pc-skyos$SKYOS_REL
+ ;;
i*86:rdos:*:*)
- echo "$UNAME_MACHINE"-pc-rdos
- exit ;;
- i*86:AROS:*:*)
- echo "$UNAME_MACHINE"-pc-aros
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-rdos
+ ;;
+ i*86:Fiwix:*:*)
+ GUESS=$UNAME_MACHINE-pc-fiwix
+ ;;
+ *:AROS:*:*)
+ GUESS=$UNAME_MACHINE-unknown-aros
+ ;;
x86_64:VMkernel:*:*)
- echo "$UNAME_MACHINE"-unknown-esx
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-esx
+ ;;
amd64:Isilon\ OneFS:*:*)
- echo x86_64-unknown-onefs
- exit ;;
+ GUESS=x86_64-unknown-onefs
+ ;;
*:Unleashed:*:*)
- echo "$UNAME_MACHINE"-unknown-unleashed"$UNAME_RELEASE"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE
+ ;;
+ *:Ironclad:*:*)
+ GUESS=$UNAME_MACHINE-unknown-ironclad
+ ;;
esac
+# Do we have a guess based on uname results?
+if test "x$GUESS" != x; then
+ echo "$GUESS"
+ exit
+fi
+
# No uname command or uname output not recognized.
set_cc_for_build
cat > "$dummy.c" <<EOF
@@ -1601,7 +1737,7 @@ main ()
}
EOF
-$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`$dummy` &&
+$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`"$dummy"` &&
{ echo "$SYSTEM_NAME"; exit; }
# Apollos put the system type in the environment.
@@ -1609,7 +1745,7 @@ test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; }
echo "$0: unable to guess system type" >&2
-case "$UNAME_MACHINE:$UNAME_SYSTEM" in
+case $UNAME_MACHINE:$UNAME_SYSTEM in
mips:Linux | mips64:Linux)
# If we got here on MIPS GNU/Linux, output extra information.
cat >&2 <<EOF
@@ -1626,9 +1762,17 @@ This script (version $timestamp), has failed to recognize the
operating system you are using. If your script is old, overwrite *all*
copies of config.guess and config.sub with the latest versions from:
- https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
+ https://git.savannah.gnu.org/cgit/config.git/plain/config.guess
and
- https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
+ https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
+EOF
+
+our_year=`echo $timestamp | sed 's,-.*,,'`
+thisyear=`date +%Y`
+# shellcheck disable=SC2003
+script_age=`expr "$thisyear" - "$our_year"`
+if test "$script_age" -lt 3 ; then
+ cat >&2 <<EOF
If $0 has already been updated, send the following data and any
information you think might be pertinent to config-patches@gnu.org to
@@ -1656,6 +1800,7 @@ UNAME_RELEASE = "$UNAME_RELEASE"
UNAME_SYSTEM = "$UNAME_SYSTEM"
UNAME_VERSION = "$UNAME_VERSION"
EOF
+fi
exit 1
diff --git a/config.sub b/config.sub
index 0f2234c174d4..e4c4e09b6540 100755
--- a/config.sub
+++ b/config.sub
@@ -1,12 +1,14 @@
#! /bin/sh
# Configuration validation subroutine script.
-# Copyright 1992-2019 Free Software Foundation, Inc.
+# Copyright 1992-2023 Free Software Foundation, Inc.
-timestamp='2019-06-30'
+# shellcheck disable=SC2006,SC2268 # see below for rationale
+
+timestamp='2023-12-02'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
+# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
@@ -33,7 +35,7 @@ timestamp='2019-06-30'
# Otherwise, we print the canonical config type on stdout and succeed.
# You can get the latest version of this script from:
-# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
+# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
# This file is supposed to be the same for all GNU packages
# and recognize all the CPU types, system types and aliases
@@ -50,6 +52,13 @@ timestamp='2019-06-30'
# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
# It is wrong to echo any other type of specification.
+# The "shellcheck disable" line above the timestamp inhibits complaints
+# about features and limitations of the classic Bourne shell that were
+# superseded or lifted in POSIX. However, this script identifies a wide
+# variety of pre-POSIX systems that do not have POSIX shells at all, and
+# even some reasonably current systems (Solaris 10 as case-in-point) still
+# have a pre-POSIX /bin/sh.
+
me=`echo "$0" | sed -e 's,.*/,,'`
usage="\
@@ -67,13 +76,13 @@ Report bugs and patches to <config-patches@gnu.org>."
version="\
GNU config.sub ($timestamp)
-Copyright 1992-2019 Free Software Foundation, Inc.
+Copyright 1992-2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
help="
-Try \`$me --help' for more information."
+Try '$me --help' for more information."
# Parse command line
while test $# -gt 0 ; do
@@ -112,40 +121,42 @@ esac
# Split fields of configuration type
# shellcheck disable=SC2162
+saved_IFS=$IFS
IFS="-" read field1 field2 field3 field4 <<EOF
$1
EOF
+IFS=$saved_IFS
# Separate into logical components for further validation
case $1 in
*-*-*-*-*)
- echo Invalid configuration \`"$1"\': more than four components >&2
+ echo "Invalid configuration '$1': more than four components" >&2
exit 1
;;
*-*-*-*)
basic_machine=$field1-$field2
- os=$field3-$field4
+ basic_os=$field3-$field4
;;
*-*-*)
# Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
# parts
maybe_os=$field2-$field3
case $maybe_os in
- nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc \
- | linux-newlib* | linux-musl* | linux-uclibc* | uclinux-uclibc* \
+ nto-qnx* | linux-* | uclinux-uclibc* \
| uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
| netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
- | storm-chaos* | os2-emx* | rtmk-nova*)
+ | storm-chaos* | os2-emx* | rtmk-nova* | managarm-* \
+ | windows-* )
basic_machine=$field1
- os=$maybe_os
+ basic_os=$maybe_os
;;
android-linux)
basic_machine=$field1-unknown
- os=linux-android
+ basic_os=linux-android
;;
*)
basic_machine=$field1-$field2
- os=$field3
+ basic_os=$field3
;;
esac
;;
@@ -154,7 +165,7 @@ case $1 in
case $field1-$field2 in
decstation-3100)
basic_machine=mips-dec
- os=
+ basic_os=
;;
*-*)
# Second component is usually, but not always the OS
@@ -162,7 +173,11 @@ case $1 in
# Prevent following clause from handling this valid os
sun*os*)
basic_machine=$field1
- os=$field2
+ basic_os=$field2
+ ;;
+ zephyr*)
+ basic_machine=$field1-unknown
+ basic_os=$field2
;;
# Manufacturers
dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
@@ -175,11 +190,11 @@ case $1 in
| microblaze* | sim | cisco \
| oki | wec | wrs | winbond)
basic_machine=$field1-$field2
- os=
+ basic_os=
;;
*)
basic_machine=$field1
- os=$field2
+ basic_os=$field2
;;
esac
;;
@@ -191,447 +206,451 @@ case $1 in
case $field1 in
386bsd)
basic_machine=i386-pc
- os=bsd
+ basic_os=bsd
;;
a29khif)
basic_machine=a29k-amd
- os=udi
+ basic_os=udi
;;
adobe68k)
basic_machine=m68010-adobe
- os=scout
+ basic_os=scout
;;
alliant)
basic_machine=fx80-alliant
- os=
+ basic_os=
;;
altos | altos3068)
basic_machine=m68k-altos
- os=
+ basic_os=
;;
am29k)
basic_machine=a29k-none
- os=bsd
+ basic_os=bsd
;;
amdahl)
basic_machine=580-amdahl
- os=sysv
+ basic_os=sysv
;;
amiga)
basic_machine=m68k-unknown
- os=
+ basic_os=
;;
amigaos | amigados)
basic_machine=m68k-unknown
- os=amigaos
+ basic_os=amigaos
;;
amigaunix | amix)
basic_machine=m68k-unknown
- os=sysv4
+ basic_os=sysv4
;;
apollo68)
basic_machine=m68k-apollo
- os=sysv
+ basic_os=sysv
;;
apollo68bsd)
basic_machine=m68k-apollo
- os=bsd
+ basic_os=bsd
;;
aros)
basic_machine=i386-pc
- os=aros
+ basic_os=aros
;;
aux)
basic_machine=m68k-apple
- os=aux
+ basic_os=aux
;;
balance)
basic_machine=ns32k-sequent
- os=dynix
+ basic_os=dynix
;;
blackfin)
basic_machine=bfin-unknown
- os=linux
+ basic_os=linux
;;
cegcc)
basic_machine=arm-unknown
- os=cegcc
+ basic_os=cegcc
;;
convex-c1)
basic_machine=c1-convex
- os=bsd
+ basic_os=bsd
;;
convex-c2)
basic_machine=c2-convex
- os=bsd
+ basic_os=bsd
;;
convex-c32)
basic_machine=c32-convex
- os=bsd
+ basic_os=bsd
;;
convex-c34)
basic_machine=c34-convex
- os=bsd
+ basic_os=bsd
;;
convex-c38)
basic_machine=c38-convex
- os=bsd
+ basic_os=bsd
;;
cray)
basic_machine=j90-cray
- os=unicos
+ basic_os=unicos
;;
crds | unos)
basic_machine=m68k-crds
- os=
+ basic_os=
;;
da30)
basic_machine=m68k-da30
- os=
+ basic_os=
;;
decstation | pmax | pmin | dec3100 | decstatn)
basic_machine=mips-dec
- os=
+ basic_os=
;;
delta88)
basic_machine=m88k-motorola
- os=sysv3
+ basic_os=sysv3
;;
dicos)
basic_machine=i686-pc
- os=dicos
+ basic_os=dicos
;;
djgpp)
basic_machine=i586-pc
- os=msdosdjgpp
+ basic_os=msdosdjgpp
;;
ebmon29k)
basic_machine=a29k-amd
- os=ebmon
+ basic_os=ebmon
;;
es1800 | OSE68k | ose68k | ose | OSE)
basic_machine=m68k-ericsson
- os=ose
+ basic_os=ose
;;
gmicro)
basic_machine=tron-gmicro
- os=sysv
+ basic_os=sysv
;;
go32)
basic_machine=i386-pc
- os=go32
+ basic_os=go32
;;
h8300hms)
basic_machine=h8300-hitachi
- os=hms
+ basic_os=hms
;;
h8300xray)
basic_machine=h8300-hitachi
- os=xray
+ basic_os=xray
;;
h8500hms)
basic_machine=h8500-hitachi
- os=hms
+ basic_os=hms
;;
harris)
basic_machine=m88k-harris
- os=sysv3
+ basic_os=sysv3
;;
hp300 | hp300hpux)
basic_machine=m68k-hp
- os=hpux
+ basic_os=hpux
;;
hp300bsd)
basic_machine=m68k-hp
- os=bsd
+ basic_os=bsd
;;
hppaosf)
basic_machine=hppa1.1-hp
- os=osf
+ basic_os=osf
;;
hppro)
basic_machine=hppa1.1-hp
- os=proelf
+ basic_os=proelf
;;
i386mach)
basic_machine=i386-mach
- os=mach
+ basic_os=mach
;;
isi68 | isi)
basic_machine=m68k-isi
- os=sysv
+ basic_os=sysv
;;
m68knommu)
basic_machine=m68k-unknown
- os=linux
+ basic_os=linux
;;
magnum | m3230)
basic_machine=mips-mips
- os=sysv
+ basic_os=sysv
;;
merlin)
basic_machine=ns32k-utek
- os=sysv
+ basic_os=sysv
;;
mingw64)
basic_machine=x86_64-pc
- os=mingw64
+ basic_os=mingw64
;;
mingw32)
basic_machine=i686-pc
- os=mingw32
+ basic_os=mingw32
;;
mingw32ce)
basic_machine=arm-unknown
- os=mingw32ce
+ basic_os=mingw32ce
;;
monitor)
basic_machine=m68k-rom68k
- os=coff
+ basic_os=coff
;;
morphos)
basic_machine=powerpc-unknown
- os=morphos
+ basic_os=morphos
;;
moxiebox)
basic_machine=moxie-unknown
- os=moxiebox
+ basic_os=moxiebox
;;
msdos)
basic_machine=i386-pc
- os=msdos
+ basic_os=msdos
;;
msys)
basic_machine=i686-pc
- os=msys
+ basic_os=msys
;;
mvs)
basic_machine=i370-ibm
- os=mvs
+ basic_os=mvs
;;
nacl)
basic_machine=le32-unknown
- os=nacl
+ basic_os=nacl
;;
ncr3000)
basic_machine=i486-ncr
- os=sysv4
+ basic_os=sysv4
;;
netbsd386)
basic_machine=i386-pc
- os=netbsd
+ basic_os=netbsd
;;
netwinder)
basic_machine=armv4l-rebel
- os=linux
+ basic_os=linux
;;
news | news700 | news800 | news900)
basic_machine=m68k-sony
- os=newsos
+ basic_os=newsos
;;
news1000)
basic_machine=m68030-sony
- os=newsos
+ basic_os=newsos
;;
necv70)
basic_machine=v70-nec
- os=sysv
+ basic_os=sysv
;;
nh3000)
basic_machine=m68k-harris
- os=cxux
+ basic_os=cxux
;;
nh[45]000)
basic_machine=m88k-harris
- os=cxux
+ basic_os=cxux
;;
nindy960)
basic_machine=i960-intel
- os=nindy
+ basic_os=nindy
;;
mon960)
basic_machine=i960-intel
- os=mon960
+ basic_os=mon960
;;
nonstopux)
basic_machine=mips-compaq
- os=nonstopux
+ basic_os=nonstopux
;;
os400)
basic_machine=powerpc-ibm
- os=os400
+ basic_os=os400
;;
OSE68000 | ose68000)
basic_machine=m68000-ericsson
- os=ose
+ basic_os=ose
;;
os68k)
basic_machine=m68k-none
- os=os68k
+ basic_os=os68k
;;
paragon)
basic_machine=i860-intel
- os=osf
+ basic_os=osf
;;
parisc)
basic_machine=hppa-unknown
- os=linux
+ basic_os=linux
+ ;;
+ psp)
+ basic_machine=mipsallegrexel-sony
+ basic_os=psp
;;
pw32)
basic_machine=i586-unknown
- os=pw32
+ basic_os=pw32
;;
rdos | rdos64)
basic_machine=x86_64-pc
- os=rdos
+ basic_os=rdos
;;
rdos32)
basic_machine=i386-pc
- os=rdos
+ basic_os=rdos
;;
rom68k)
basic_machine=m68k-rom68k
- os=coff
+ basic_os=coff
;;
sa29200)
basic_machine=a29k-amd
- os=udi
+ basic_os=udi
;;
sei)
basic_machine=mips-sei
- os=seiux
+ basic_os=seiux
;;
sequent)
basic_machine=i386-sequent
- os=
+ basic_os=
;;
sps7)
basic_machine=m68k-bull
- os=sysv2
+ basic_os=sysv2
;;
st2000)
basic_machine=m68k-tandem
- os=
+ basic_os=
;;
stratus)
basic_machine=i860-stratus
- os=sysv4
+ basic_os=sysv4
;;
sun2)
basic_machine=m68000-sun
- os=
+ basic_os=
;;
sun2os3)
basic_machine=m68000-sun
- os=sunos3
+ basic_os=sunos3
;;
sun2os4)
basic_machine=m68000-sun
- os=sunos4
+ basic_os=sunos4
;;
sun3)
basic_machine=m68k-sun
- os=
+ basic_os=
;;
sun3os3)
basic_machine=m68k-sun
- os=sunos3
+ basic_os=sunos3
;;
sun3os4)
basic_machine=m68k-sun
- os=sunos4
+ basic_os=sunos4
;;
sun4)
basic_machine=sparc-sun
- os=
+ basic_os=
;;
sun4os3)
basic_machine=sparc-sun
- os=sunos3
+ basic_os=sunos3
;;
sun4os4)
basic_machine=sparc-sun
- os=sunos4
+ basic_os=sunos4
;;
sun4sol2)
basic_machine=sparc-sun
- os=solaris2
+ basic_os=solaris2
;;
sun386 | sun386i | roadrunner)
basic_machine=i386-sun
- os=
+ basic_os=
;;
sv1)
basic_machine=sv1-cray
- os=unicos
+ basic_os=unicos
;;
symmetry)
basic_machine=i386-sequent
- os=dynix
+ basic_os=dynix
;;
t3e)
basic_machine=alphaev5-cray
- os=unicos
+ basic_os=unicos
;;
t90)
basic_machine=t90-cray
- os=unicos
+ basic_os=unicos
;;
toad1)
basic_machine=pdp10-xkl
- os=tops20
+ basic_os=tops20
;;
tpf)
basic_machine=s390x-ibm
- os=tpf
+ basic_os=tpf
;;
udi29k)
basic_machine=a29k-amd
- os=udi
+ basic_os=udi
;;
ultra3)
basic_machine=a29k-nyu
- os=sym1
+ basic_os=sym1
;;
v810 | necv810)
basic_machine=v810-nec
- os=none
+ basic_os=none
;;
vaxv)
basic_machine=vax-dec
- os=sysv
+ basic_os=sysv
;;
vms)
basic_machine=vax-dec
- os=vms
+ basic_os=vms
;;
vsta)
basic_machine=i386-pc
- os=vsta
+ basic_os=vsta
;;
vxworks960)
basic_machine=i960-wrs
- os=vxworks
+ basic_os=vxworks
;;
vxworks68)
basic_machine=m68k-wrs
- os=vxworks
+ basic_os=vxworks
;;
vxworks29k)
basic_machine=a29k-wrs
- os=vxworks
+ basic_os=vxworks
;;
xbox)
basic_machine=i686-pc
- os=mingw32
+ basic_os=mingw32
;;
ymp)
basic_machine=ymp-cray
- os=unicos
+ basic_os=unicos
;;
*)
basic_machine=$1
- os=
+ basic_os=
;;
esac
;;
@@ -683,17 +702,17 @@ case $basic_machine in
bluegene*)
cpu=powerpc
vendor=ibm
- os=cnk
+ basic_os=cnk
;;
decsystem10* | dec10*)
cpu=pdp10
vendor=dec
- os=tops10
+ basic_os=tops10
;;
decsystem20* | dec20*)
cpu=pdp10
vendor=dec
- os=tops20
+ basic_os=tops20
;;
delta | 3300 | motorola-3300 | motorola-delta \
| 3300-motorola | delta-motorola)
@@ -703,7 +722,7 @@ case $basic_machine in
dpx2*)
cpu=m68k
vendor=bull
- os=sysv3
+ basic_os=sysv3
;;
encore | umax | mmax)
cpu=ns32k
@@ -712,7 +731,7 @@ case $basic_machine in
elxsi)
cpu=elxsi
vendor=elxsi
- os=${os:-bsd}
+ basic_os=${basic_os:-bsd}
;;
fx2800)
cpu=i860
@@ -725,7 +744,7 @@ case $basic_machine in
h3050r* | hiux*)
cpu=hppa1.1
vendor=hitachi
- os=hiuxwe2
+ basic_os=hiuxwe2
;;
hp3k9[0-9][0-9] | hp9[0-9][0-9])
cpu=hppa1.0
@@ -768,36 +787,36 @@ case $basic_machine in
i*86v32)
cpu=`echo "$1" | sed -e 's/86.*/86/'`
vendor=pc
- os=sysv32
+ basic_os=sysv32
;;
i*86v4*)
cpu=`echo "$1" | sed -e 's/86.*/86/'`
vendor=pc
- os=sysv4
+ basic_os=sysv4
;;
i*86v)
cpu=`echo "$1" | sed -e 's/86.*/86/'`
vendor=pc
- os=sysv
+ basic_os=sysv
;;
i*86sol2)
cpu=`echo "$1" | sed -e 's/86.*/86/'`
vendor=pc
- os=solaris2
+ basic_os=solaris2
;;
j90 | j90-cray)
cpu=j90
vendor=cray
- os=${os:-unicos}
+ basic_os=${basic_os:-unicos}
;;
iris | iris4d)
cpu=mips
vendor=sgi
- case $os in
+ case $basic_os in
irix*)
;;
*)
- os=irix4
+ basic_os=irix4
;;
esac
;;
@@ -808,26 +827,26 @@ case $basic_machine in
*mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
cpu=m68k
vendor=atari
- os=mint
+ basic_os=mint
;;
news-3600 | risc-news)
cpu=mips
vendor=sony
- os=newsos
+ basic_os=newsos
;;
next | m*-next)
cpu=m68k
vendor=next
- case $os in
+ case $basic_os in
openstep*)
;;
nextstep*)
;;
ns2*)
- os=nextstep2
+ basic_os=nextstep2
;;
*)
- os=nextstep3
+ basic_os=nextstep3
;;
esac
;;
@@ -838,12 +857,12 @@ case $basic_machine in
op50n-* | op60c-*)
cpu=hppa1.1
vendor=oki
- os=proelf
+ basic_os=proelf
;;
pa-hitachi)
cpu=hppa1.1
vendor=hitachi
- os=hiuxwe2
+ basic_os=hiuxwe2
;;
pbd)
cpu=sparc
@@ -880,12 +899,12 @@ case $basic_machine in
sde)
cpu=mipsisa32
vendor=sde
- os=${os:-elf}
+ basic_os=${basic_os:-elf}
;;
simso-wrs)
cpu=sparclite
vendor=wrs
- os=vxworks
+ basic_os=vxworks
;;
tower | tower-32)
cpu=m68k
@@ -902,7 +921,7 @@ case $basic_machine in
w89k-*)
cpu=hppa1.1
vendor=winbond
- os=proelf
+ basic_os=proelf
;;
none)
cpu=none
@@ -919,11 +938,13 @@ case $basic_machine in
*-*)
# shellcheck disable=SC2162
+ saved_IFS=$IFS
IFS="-" read cpu vendor <<EOF
$basic_machine
EOF
+ IFS=$saved_IFS
;;
- # We use `pc' rather than `unknown'
+ # We use 'pc' rather than 'unknown'
# because (1) that's what they normally are, and
# (2) the word "unknown" tends to confuse beginning users.
i*86 | x86_64)
@@ -955,11 +976,11 @@ case $cpu-$vendor in
# some cases the only manufacturer, in others, it is the most popular.
craynv-unknown)
vendor=cray
- os=${os:-unicosmp}
+ basic_os=${basic_os:-unicosmp}
;;
c90-unknown | c90-cray)
vendor=cray
- os=${os:-unicos}
+ basic_os=${Basic_os:-unicos}
;;
fx80-unknown)
vendor=alliant
@@ -1000,10 +1021,15 @@ case $cpu-$vendor in
;;
# Here we normalize CPU types with a missing or matching vendor
+ armh-unknown | armh-alt)
+ cpu=armv7l
+ vendor=alt
+ basic_os=${basic_os:-linux-gnueabihf}
+ ;;
dpx20-unknown | dpx20-bull)
cpu=rs6000
vendor=bull
- os=${os:-bosx}
+ basic_os=${basic_os:-bosx}
;;
# Here we normalize CPU types irrespective of the vendor
@@ -1012,7 +1038,7 @@ case $cpu-$vendor in
;;
blackfin-*)
cpu=bfin
- os=linux
+ basic_os=linux
;;
c54x-*)
cpu=tic54x
@@ -1025,7 +1051,7 @@ case $cpu-$vendor in
;;
e500v[12]-*)
cpu=powerpc
- os=$os"spe"
+ basic_os=${basic_os}"spe"
;;
mips3*-*)
cpu=mips64
@@ -1035,7 +1061,7 @@ case $cpu-$vendor in
;;
m68knommu-*)
cpu=m68k
- os=linux
+ basic_os=linux
;;
m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
cpu=s12z
@@ -1045,12 +1071,12 @@ case $cpu-$vendor in
;;
parisc-*)
cpu=hppa
- os=linux
+ basic_os=linux
;;
pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
cpu=i586
;;
- pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
+ pentiumpro-* | p6-* | 6x86-* | athlon-* | athlon_*-*)
cpu=i686
;;
pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
@@ -1101,11 +1127,14 @@ case $cpu-$vendor in
xscale-* | xscalee[bl]-*)
cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
;;
+ arm64-* | aarch64le-*)
+ cpu=aarch64
+ ;;
# Recognize the canonical CPU Types that limit and/or modify the
# company names they are paired with.
cr16-*)
- os=${os:-elf}
+ basic_os=${basic_os:-elf}
;;
crisv32-* | etraxfs*-*)
cpu=crisv32
@@ -1116,7 +1145,7 @@ case $cpu-$vendor in
vendor=axis
;;
crx-*)
- os=${os:-elf}
+ basic_os=${basic_os:-elf}
;;
neo-tandem)
cpu=neo
@@ -1138,16 +1167,12 @@ case $cpu-$vendor in
cpu=nsx
vendor=tandem
;;
- s390-*)
- cpu=s390
- vendor=ibm
- ;;
- s390x-*)
- cpu=s390x
- vendor=ibm
+ mipsallegrexel-sony)
+ cpu=mipsallegrexel
+ vendor=sony
;;
tile*-*)
- os=${os:-linux-gnu}
+ basic_os=${basic_os:-linux-gnu}
;;
*)
@@ -1156,15 +1181,15 @@ case $cpu-$vendor in
case $cpu in
1750a | 580 \
| a29k \
- | aarch64 | aarch64_be \
+ | aarch64 | aarch64_be | aarch64c | arm64ec \
| abacus \
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
| alphapca5[67] | alpha64pca5[67] \
| am33_2.0 \
| amdgcn \
- | arc | arceb \
- | arm | arm[lb]e | arme[lb] | armv* \
+ | arc | arceb | arc32 | arc64 \
+ | arm | arm[lb]e | arme[lb] | armv* \
| avr | avr32 \
| asmjs \
| ba \
@@ -1175,45 +1200,29 @@ case $cpu-$vendor in
| d10v | d30v | dlx | dsp16xx \
| e2k | elxsi | epiphany \
| f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
+ | javascript \
| h8300 | h8500 \
| hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
| hexagon \
| i370 | i*86 | i860 | i960 | ia16 | ia64 \
| ip2k | iq2000 \
| k1om \
+ | kvx \
| le32 | le64 \
| lm32 \
+ | loongarch32 | loongarch64 \
| m32c | m32r | m32rle \
| m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
| m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
| m88110 | m88k | maxq | mb | mcore | mep | metag \
| microblaze | microblazeel \
- | mips | mipsbe | mipseb | mipsel | mipsle \
- | mips16 \
- | mips64 | mips64eb | mips64el \
- | mips64octeon | mips64octeonel \
- | mips64orion | mips64orionel \
- | mips64r5900 | mips64r5900el \
- | mips64vr | mips64vrel \
- | mips64vr4100 | mips64vr4100el \
- | mips64vr4300 | mips64vr4300el \
- | mips64vr5000 | mips64vr5000el \
- | mips64vr5900 | mips64vr5900el \
- | mipsisa32 | mipsisa32el \
- | mipsisa32r2 | mipsisa32r2el \
- | mipsisa32r6 | mipsisa32r6el \
- | mipsisa64 | mipsisa64el \
- | mipsisa64r2 | mipsisa64r2el \
- | mipsisa64r6 | mipsisa64r6el \
- | mipsisa64sb1 | mipsisa64sb1el \
- | mipsisa64sr71k | mipsisa64sr71kel \
- | mipsr5900 | mipsr5900el \
- | mipstx39 | mipstx39el \
+ | mips* \
| mmix \
| mn10200 | mn10300 \
| moxie \
| mt \
| msp430 \
+ | nanomips* \
| nds32 | nds32le | nds32be \
| nfp \
| nios | nios2 | nios2eb | nios2el \
@@ -1227,8 +1236,9 @@ case $cpu-$vendor in
| powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
| pru \
| pyramid \
- | riscv | riscv32 | riscv64 \
+ | riscv | riscv32 | riscv32be | riscv64 | riscv64be \
| rl78 | romp | rs6000 | rx \
+ | s390 | s390x \
| score \
| sh | shl \
| sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
@@ -1238,11 +1248,13 @@ case $cpu-$vendor in
| sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
| spu \
| tahoe \
+ | thumbv7* \
| tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
| tron \
| ubicom32 \
| v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
| vax \
+ | vc4 \
| visium \
| w65 \
| wasm32 | wasm64 \
@@ -1254,7 +1266,7 @@ case $cpu-$vendor in
;;
*)
- echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
+ echo "Invalid configuration '$1': machine '$cpu-$vendor' not recognized" 1>&2
exit 1
;;
esac
@@ -1275,8 +1287,54 @@ esac
# Decode manufacturer-specific aliases for certain operating systems.
-if [ x$os != x ]
+if test x"$basic_os" != x
then
+
+# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just
+# set os.
+obj=
+case $basic_os in
+ gnu/linux*)
+ kernel=linux
+ os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'`
+ ;;
+ os2-emx)
+ kernel=os2
+ os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'`
+ ;;
+ nto-qnx*)
+ kernel=nto
+ os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'`
+ ;;
+ *-*)
+ # shellcheck disable=SC2162
+ saved_IFS=$IFS
+ IFS="-" read kernel os <<EOF
+$basic_os
+EOF
+ IFS=$saved_IFS
+ ;;
+ # Default OS when just kernel was specified
+ nto*)
+ kernel=nto
+ os=`echo "$basic_os" | sed -e 's|nto|qnx|'`
+ ;;
+ linux*)
+ kernel=linux
+ os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
+ ;;
+ managarm*)
+ kernel=managarm
+ os=`echo "$basic_os" | sed -e 's|managarm|mlibc|'`
+ ;;
+ *)
+ kernel=
+ os=$basic_os
+ ;;
+esac
+
+# Now, normalize the OS (knowing we just have one component, it's not a kernel,
+# etc.)
case $os in
# First match some system type aliases that might get confused
# with valid system types.
@@ -1288,7 +1346,7 @@ case $os in
os=cnk
;;
solaris1 | solaris1.*)
- os=`echo $os | sed -e 's|solaris1|sunos4|'`
+ os=`echo "$os" | sed -e 's|solaris1|sunos4|'`
;;
solaris)
os=solaris2
@@ -1296,9 +1354,6 @@ case $os in
unixware*)
os=sysv4.2uw
;;
- gnu/linux*)
- os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
- ;;
# es1800 is here to avoid being matched by es* (a different OS)
es1800*)
os=ose
@@ -1320,12 +1375,9 @@ case $os in
os=sco3.2v4
;;
sco3.2.[4-9]*)
- os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
- ;;
- sco3.2v[4-9]* | sco5v6*)
- # Don't forget version if it is 3.2v4 or newer.
+ os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'`
;;
- scout)
+ sco*v* | scout)
# Don't match below
;;
sco*)
@@ -1334,78 +1386,25 @@ case $os in
psos*)
os=psos
;;
- # Now accept the basic system types.
- # The portable systems comes first.
- # Each alternative MUST end in a * to match a version number.
- # sysv* is not here because it comes later, after sysvr4.
- gnu* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
- | *vms* | esix* | aix* | cnk* | sunos | sunos[34]*\
- | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
- | sym* | kopensolaris* | plan9* \
- | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
- | aos* | aros* | cloudabi* | sortix* | twizzler* \
- | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
- | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
- | knetbsd* | mirbsd* | netbsd* \
- | bitrig* | openbsd* | solidbsd* | libertybsd* | os108* \
- | ekkobsd* | kfreebsd* | freebsd* | riscix* | lynxos* \
- | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
- | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
- | udi* | eabi* | lites* | ieee* | go32* | aux* | hcos* \
- | chorusrdb* | cegcc* | glidix* \
- | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
- | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \
- | linux-newlib* | linux-musl* | linux-uclibc* \
- | uxpv* | beos* | mpeix* | udk* | moxiebox* \
- | interix* | uwin* | mks* | rhapsody* | darwin* \
- | openstep* | oskit* | conix* | pw32* | nonstopux* \
- | storm-chaos* | tops10* | tenex* | tops20* | its* \
- | os2* | vos* | palmos* | uclinux* | nucleus* \
- | morphos* | superux* | rtmk* | windiss* \
- | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
- | skyos* | haiku* | rdos* | toppers* | drops* | es* \
- | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
- | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
- | nsk* | powerunix)
- # Remember, each alternative MUST END IN *, to match a version number.
- ;;
qnx*)
- case $cpu in
- x86 | i*86)
- ;;
- *)
- os=nto-$os
- ;;
- esac
+ os=qnx
;;
hiux*)
os=hiuxwe2
;;
- nto-qnx*)
- ;;
- nto*)
- os=`echo $os | sed -e 's|nto|nto-qnx|'`
- ;;
- sim | xray | os68k* | v88r* \
- | windows* | osx | abug | netware* | os9* \
- | macos* | mpw* | magic* | mmixware* | mon960* | lnews*)
- ;;
- linux-dietlibc)
- os=linux-dietlibc
- ;;
- linux*)
- os=`echo $os | sed -e 's|linux|linux-gnu|'`
- ;;
lynx*178)
os=lynxos178
;;
lynx*5)
os=lynxos5
;;
+ lynxos*)
+ # don't get caught up in next wildcard
+ ;;
lynx*)
os=lynxos
;;
- mac*)
+ mac[0-9]*)
os=`echo "$os" | sed -e 's|mac|macos|'`
;;
opened*)
@@ -1452,7 +1451,7 @@ case $os in
;;
# Preserve the version number of sinix5.
sinix5.*)
- os=`echo $os | sed -e 's|sinix|sysv|'`
+ os=`echo "$os" | sed -e 's|sinix|sysv|'`
;;
sinix*)
os=sysv4
@@ -1475,18 +1474,12 @@ case $os in
sysvr4)
os=sysv4
;;
- # This must come after sysvr4.
- sysv*)
- ;;
ose*)
os=ose
;;
*mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
os=mint
;;
- zvmoe)
- os=zvmoe
- ;;
dicos*)
os=dicos
;;
@@ -1499,23 +1492,21 @@ case $os in
os=eabi
;;
*)
- os=elf
+ os=
+ obj=elf
;;
esac
;;
- nacl*)
- ;;
- ios)
- ;;
- none)
- ;;
- *-eabi)
+ aout* | coff* | elf* | pe*)
+ # These are machine code file formats, not OSes
+ obj=$os
+ os=
;;
*)
- echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2
- exit 1
+ # No normalization, but not necessarily accepted, that comes below.
;;
esac
+
else
# Here we handle the default operating systems that come with various machines.
@@ -1528,42 +1519,54 @@ else
# will signal an error saying that MANUFACTURER isn't an operating
# system, and we'll never get to this point.
+kernel=
+obj=
case $cpu-$vendor in
score-*)
- os=elf
+ os=
+ obj=elf
;;
spu-*)
- os=elf
+ os=
+ obj=elf
;;
*-acorn)
os=riscix1.2
;;
arm*-rebel)
- os=linux
+ kernel=linux
+ os=gnu
;;
arm*-semi)
- os=aout
+ os=
+ obj=aout
;;
c4x-* | tic4x-*)
- os=coff
+ os=
+ obj=coff
;;
c8051-*)
- os=elf
+ os=
+ obj=elf
;;
clipper-intergraph)
os=clix
;;
hexagon-*)
- os=elf
+ os=
+ obj=elf
;;
tic54x-*)
- os=coff
+ os=
+ obj=coff
;;
tic55x-*)
- os=coff
+ os=
+ obj=coff
;;
tic6x-*)
- os=coff
+ os=
+ obj=coff
;;
# This must come before the *-dec entry.
pdp10-*)
@@ -1585,19 +1588,24 @@ case $cpu-$vendor in
os=sunos3
;;
m68*-cisco)
- os=aout
+ os=
+ obj=aout
;;
mep-*)
- os=elf
+ os=
+ obj=elf
;;
mips*-cisco)
- os=elf
+ os=
+ obj=elf
;;
- mips*-*)
- os=elf
+ mips*-*|nanomips*-*)
+ os=
+ obj=elf
;;
or32-*)
- os=coff
+ os=
+ obj=coff
;;
*-tti) # must be before sparc entry or we get the wrong os.
os=sysv3
@@ -1606,7 +1614,8 @@ case $cpu-$vendor in
os=sunos4.1.1
;;
pru-*)
- os=elf
+ os=
+ obj=elf
;;
*-be)
os=beos
@@ -1687,10 +1696,12 @@ case $cpu-$vendor in
os=uxpv
;;
*-rom68k)
- os=coff
+ os=
+ obj=coff
;;
*-*bug)
- os=coff
+ os=
+ obj=coff
;;
*-apple)
os=macos
@@ -1705,84 +1716,251 @@ case $cpu-$vendor in
os=none
;;
esac
+
fi
+# Now, validate our (potentially fixed-up) individual pieces (OS, OBJ).
+
+case $os in
+ # Sometimes we do "kernel-libc", so those need to count as OSes.
+ llvm* | musl* | newlib* | relibc* | uclibc*)
+ ;;
+ # Likewise for "kernel-abi"
+ eabi* | gnueabi*)
+ ;;
+ # VxWorks passes extra cpu info in the 4th filed.
+ simlinux | simwindows | spe)
+ ;;
+ # See `case $cpu-$os` validation below
+ ghcjs)
+ ;;
+ # Now accept the basic system types.
+ # The portable systems comes first.
+ # Each alternative MUST end in a * to match a version number.
+ gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
+ | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \
+ | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
+ | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \
+ | hiux* | abug | nacl* | netware* | windows* \
+ | os9* | macos* | osx* | ios* | tvos* | watchos* \
+ | mpw* | magic* | mmixware* | mon960* | lnews* \
+ | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
+ | aos* | aros* | cloudabi* | sortix* | twizzler* \
+ | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
+ | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
+ | mirbsd* | netbsd* | dicos* | openedition* | ose* \
+ | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \
+ | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
+ | bosx* | nextstep* | cxux* | oabi* \
+ | ptx* | ecoff* | winnt* | domain* | vsta* \
+ | udi* | lites* | ieee* | go32* | aux* | hcos* \
+ | chorusrdb* | cegcc* | glidix* | serenity* \
+ | cygwin* | msys* | moss* | proelf* | rtems* \
+ | midipix* | mingw32* | mingw64* | mint* \
+ | uxpv* | beos* | mpeix* | udk* | moxiebox* \
+ | interix* | uwin* | mks* | rhapsody* | darwin* \
+ | openstep* | oskit* | conix* | pw32* | nonstopux* \
+ | storm-chaos* | tops10* | tenex* | tops20* | its* \
+ | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \
+ | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \
+ | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
+ | skyos* | haiku* | rdos* | toppers* | drops* | es* \
+ | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
+ | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
+ | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
+ | fiwix* | mlibc* | cos* | mbr* | ironclad* )
+ ;;
+ # This one is extra strict with allowed versions
+ sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
+ # Don't forget version if it is 3.2v4 or newer.
+ ;;
+ # This refers to builds using the UEFI calling convention
+ # (which depends on the architecture) and PE file format.
+ # Note that this is both a different calling convention and
+ # different file format than that of GNU-EFI
+ # (x86_64-w64-mingw32).
+ uefi)
+ ;;
+ none)
+ ;;
+ kernel* | msvc* )
+ # Restricted further below
+ ;;
+ '')
+ if test x"$obj" = x
+ then
+ echo "Invalid configuration '$1': Blank OS only allowed with explicit machine code file format" 1>&2
+ fi
+ ;;
+ *)
+ echo "Invalid configuration '$1': OS '$os' not recognized" 1>&2
+ exit 1
+ ;;
+esac
+
+case $obj in
+ aout* | coff* | elf* | pe*)
+ ;;
+ '')
+ # empty is fine
+ ;;
+ *)
+ echo "Invalid configuration '$1': Machine code format '$obj' not recognized" 1>&2
+ exit 1
+ ;;
+esac
+
+# Here we handle the constraint that a (synthetic) cpu and os are
+# valid only in combination with each other and nowhere else.
+case $cpu-$os in
+ # The "javascript-unknown-ghcjs" triple is used by GHC; we
+ # accept it here in order to tolerate that, but reject any
+ # variations.
+ javascript-ghcjs)
+ ;;
+ javascript-* | *-ghcjs)
+ echo "Invalid configuration '$1': cpu '$cpu' is not valid with os '$os$obj'" 1>&2
+ exit 1
+ ;;
+esac
+
+# As a final step for OS-related things, validate the OS-kernel combination
+# (given a valid OS), if there is a kernel.
+case $kernel-$os-$obj in
+ linux-gnu*- | linux-android*- | linux-dietlibc*- | linux-llvm*- \
+ | linux-mlibc*- | linux-musl*- | linux-newlib*- \
+ | linux-relibc*- | linux-uclibc*- )
+ ;;
+ uclinux-uclibc*- )
+ ;;
+ managarm-mlibc*- | managarm-kernel*- )
+ ;;
+ windows*-msvc*-)
+ ;;
+ -dietlibc*- | -llvm*- | -mlibc*- | -musl*- | -newlib*- | -relibc*- \
+ | -uclibc*- )
+ # These are just libc implementations, not actual OSes, and thus
+ # require a kernel.
+ echo "Invalid configuration '$1': libc '$os' needs explicit kernel." 1>&2
+ exit 1
+ ;;
+ -kernel*- )
+ echo "Invalid configuration '$1': '$os' needs explicit kernel." 1>&2
+ exit 1
+ ;;
+ *-kernel*- )
+ echo "Invalid configuration '$1': '$kernel' does not support '$os'." 1>&2
+ exit 1
+ ;;
+ *-msvc*- )
+ echo "Invalid configuration '$1': '$os' needs 'windows'." 1>&2
+ exit 1
+ ;;
+ kfreebsd*-gnu*- | kopensolaris*-gnu*-)
+ ;;
+ vxworks-simlinux- | vxworks-simwindows- | vxworks-spe-)
+ ;;
+ nto-qnx*-)
+ ;;
+ os2-emx-)
+ ;;
+ *-eabi*- | *-gnueabi*-)
+ ;;
+ none--*)
+ # None (no kernel, i.e. freestanding / bare metal),
+ # can be paired with an machine code file format
+ ;;
+ -*-)
+ # Blank kernel with real OS is always fine.
+ ;;
+ --*)
+ # Blank kernel and OS with real machine code file format is always fine.
+ ;;
+ *-*-*)
+ echo "Invalid configuration '$1': Kernel '$kernel' not known to work with OS '$os'." 1>&2
+ exit 1
+ ;;
+esac
+
# Here we handle the case where we know the os, and the CPU type, but not the
# manufacturer. We pick the logical manufacturer.
case $vendor in
unknown)
- case $os in
- riscix*)
+ case $cpu-$os in
+ *-riscix*)
vendor=acorn
;;
- sunos*)
+ *-sunos*)
vendor=sun
;;
- cnk*|-aix*)
+ *-cnk* | *-aix*)
vendor=ibm
;;
- beos*)
+ *-beos*)
vendor=be
;;
- hpux*)
+ *-hpux*)
vendor=hp
;;
- mpeix*)
+ *-mpeix*)
vendor=hp
;;
- hiux*)
+ *-hiux*)
vendor=hitachi
;;
- unos*)
+ *-unos*)
vendor=crds
;;
- dgux*)
+ *-dgux*)
vendor=dg
;;
- luna*)
+ *-luna*)
vendor=omron
;;
- genix*)
+ *-genix*)
vendor=ns
;;
- clix*)
+ *-clix*)
vendor=intergraph
;;
- mvs* | opened*)
+ *-mvs* | *-opened*)
+ vendor=ibm
+ ;;
+ *-os400*)
vendor=ibm
;;
- os400*)
+ s390-* | s390x-*)
vendor=ibm
;;
- ptx*)
+ *-ptx*)
vendor=sequent
;;
- tpf*)
+ *-tpf*)
vendor=ibm
;;
- vxsim* | vxworks* | windiss*)
+ *-vxsim* | *-vxworks* | *-windiss*)
vendor=wrs
;;
- aux*)
+ *-aux*)
vendor=apple
;;
- hms*)
+ *-hms*)
vendor=hitachi
;;
- mpw* | macos*)
+ *-mpw* | *-macos*)
vendor=apple
;;
- *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
+ *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*)
vendor=atari
;;
- vos*)
+ *-vos*)
vendor=stratus
;;
esac
;;
esac
-echo "$cpu-$vendor-$os"
+echo "$cpu-$vendor${kernel:+-$kernel}${os:+-$os}${obj:+-$obj}"
exit
# Local variables:
diff --git a/configure b/configure
index af702ddda06e..488d93fc1c02 100755
--- a/configure
+++ b/configure
@@ -1,9 +1,9 @@
#! /bin/sh
-# From configure.in Revision: 1.729 .
+# From configure.in Revision: 1.779 .
# Guess values for system-dependent variables and create Makefiles.
-# Generated by Autoconf 2.52.20210105.
+# Generated by Autoconf 2.52.20231210.
#
-# Copyright 2003-2020,2021 Thomas E. Dickey
+# Copyright 2003-2022,2023 Thomas E. Dickey
# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
# Free Software Foundation, Inc.
# This configure script is free software; the Free Software Foundation
@@ -34,9 +34,9 @@ fi
as_me=`echo "$0" |sed 's,.*[\\/],,'`
if expr a : '\(a\)' >/dev/null 2>&1; then
- as_expr=expr
+ as_expr="expr"
else
- as_expr=false
+ as_expr="false"
fi
rm -f conf$$ conf$$.exe conf$$.file
@@ -51,7 +51,7 @@ if ln -s conf$$.file conf$$ 2>/dev/null; then
as_ln_s='ln -s'
fi
elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
+ as_ln_s='ln'
else
as_ln_s='cp -p'
fi
@@ -716,22 +716,22 @@ Optional Features:
--with-rel-version=XXX override derived release version
--with-abi-version=XXX override derived ABI version
--with-system-type=XXX test: override derived host system-type
+ --with-abi-altered=XXX override visible ABI version, for packaging
--without-ada suppress check for Ada compiler, don't build demo
--without-cxx do not adjust ncurses bool to match C++
--without-cxx-binding do not build C++ binding and demo
--disable-db-install suppress install of terminal database
--without-manpages suppress install of manpages
--without-progs suppress build/install with programs (e.g., tic)
- --without-tack suppress build/install with tack program
--without-tests suppress build/install with test-programs
--without-curses-h install curses.h as ncurses.h only
- --with-config-suffix=X suffixes ncursesXX-config file
- --with-pkg-config{=path} enable/disable use of pkg-config
- --with-pkg-config-libdir=XXX use given directory for installing pc-files
+ --with-config-suffix=X name ncurses*X-config file with X
+ --with-pkg-config[=CMD] enable/disable use of pkg-config and its name CMD
+ --with-pkg-config-libdir[=XXX] use given directory for installing pc-files
--enable-pc-files generate and install .pc files for pkg-config
- --with-pc-suffix suffixes pc-files
+ --with-pc-suffix[=XXX] suffix pkg-config files with XXX
--enable-mixed-case tic should assume mixed-case filenames
- --with-install-prefix prefixes actual install-location ($DESTDIR)
+ --with-install-prefix=DESTDIR use DESTDIR as installation directory prefix
Build-Tools Needed to Compile Temporary Applications for Cross-compiling:
--with-build-cc=XXX the build C compiler ($BUILD_CC)
--with-build-cpp=XXX the build C preprocessor ($BUILD_CPP)
@@ -752,10 +752,10 @@ Options to Specify the Libraries Built/Used:
--with-ticlib generate separate tic library
--enable-rpath use rpath option when generating shared libraries
--disable-relink relink shared libraries during install
- --with-shlib-version=X Specify rel or abi version for shared libs
- --with-libtool-opts=XXX specify additional libtool options
- --with-export-syms=XXX limit exported symbols using libtool
- --with-versioned-syms=X markup versioned symbols using ld
+ --with-shlib-version[={rel|abi}] use release or ABI version in shared library file names
+ --with-libtool-opts[=XXX] give libtool additional options XXX
+ --with-export-syms[=SYM-FILE] limit symbols exported by libtool to those listed in SYM-FILE
+ --with-versioned-syms[=MAP-FILE] version ELF shared library symbols per MAP-FILE
--with-gpm use Alessandro Rubini's GPM library
--without-dlsym do not use dlsym() to load GPM dynamically
--with-pcre2 use PCRE2 for regular-expressions
@@ -764,7 +764,7 @@ Options to Specify the Libraries Built/Used:
--disable-rpath-hack don't add rpath options for additional libraries
--disable-pkg-ldflags disable extra LDFLAGS for package-scripts
Fine-Tuning Your Configuration:
- --with-extra-suffix=X append extra suffix to header/library paths
+ --with-extra-suffix[=X] append extra suffix X to header/library paths
--disable-overwrite put headers in subdir, omit link to -lcurses
--disable-database do not use terminfo, only fallbacks/termcap
--with-database=XXX specify terminfo source to install
@@ -773,7 +773,7 @@ Fine-Tuning Your Configuration:
--with-tic-path=XXX specify path of tic for fallbacks
--with-infocmp-path=XXX specify path of infocmp for fallbacks
--without-xterm-new specify if xterm terminfo should be old version
- --with-xterm-kbs=XXX specify if xterm backspace sends BS or DEL
+ --with-xterm-kbs[=XXX] specify if xterm backspace sends BS or DEL
--with-terminfo-dirs=XXX specify list of terminfo directories (default: DATADIR/terminfo)
--with-default-terminfo-dir=DIR default terminfo directory (default: DATADIR/terminfo)
--disable-big-core assume machine has little memory
@@ -783,29 +783,32 @@ Fine-Tuning Your Configuration:
--enable-getcap fast termcap load, no xrefs to terminfo
--enable-getcap-cache cache translated termcaps in ~/.terminfo
--disable-home-terminfo drop ~/.terminfo from terminfo search-path
- --disable-root-environ restrict environment when running as root
+ --disable-root-environ restrict root use of ncurses environment variables
+ --disable-root-access restrict file-access when running setuid
+ --disable-setuid-environ restrict setuid use of ncurses environment variables
--enable-symlinks make tic use symbolic links not hard links
--enable-broken_linker compile with broken-linker support code
--enable-bsdpad recognize BSD-style prefix padding
- --enable-widec compile with wide-char/UTF-8 code
+ --disable-widec compile without wide character and UTF-8 support
--disable-lp64 allow chtype to be long (ignore _LP64)
--disable-largefile omit support for large files
--disable-tparm-varargs compile tparm() without varargs interface
--disable-tic-depends link tic library without explicit dependency on ncurses library
- --disable-wattr-macros suppress wattr* macros to help with ncurses5/ncurses6 transition
- --with-x11-rgb=FILE file containing X11 rgb information (EPREFIX/lib/X11/rgb.txt)
- --with-bool=TYPE override fallback type of bool variable
+ --enable-wattr-macros enable wattr* macros
+ --with-x11-rgb=FILE obtain X11 color definitions from FILE (default: EPREFIX/lib/X11/rgb.txt)
+ --with-bool=TYPE fall back to TYPE for curses 'bool' typedef
--with-caps=alt compile with alternate Caps file
--with-chtype=TYPE override type of chtype
--with-ospeed=TYPE override type of ospeed variable
--with-mmask-t=TYPE override type of mmask_t
--with-ccharw-max=XXX override size CCHARW_MAX
- --enable-signed-char compile using signed Boolean's in term.h
+ --enable-signed-char use signed chars for Boolean array in term.h
--with-tparm-arg=TYPE override parameter type of tparm
--with-rcs-ids compile-in RCS identifiers
Options to Specify How Manpages are Installed:
- --with-manpage-format specify manpage-format: gzip/compress/BSDI/normal and
- optionally formatted/catonly, e.g., gzip,formatted
+ --with-manpage-format specify manpage-format: gzip/compress/bzip2/xz,
+ BSDI/normal and optionally formatted/catonly,
+ e.g., gzip,formatted
--with-manpage-renames specify manpage-renaming
--with-manpage-aliases specify manpage-aliases using .so
--with-manpage-symlinks specify manpage-aliases using symlinks
@@ -826,13 +829,14 @@ Reentrant Code:
--enable-pthreads-eintr enable EINTR in wgetch with pthreads
--enable-weak-symbols enable weak-symbols for pthreads
--enable-reentrant compile with reentrant code
- --enable-opaque-curses make curses WINDOW, etc., "opaque"
- --enable-opaque-form make form-library structures "opaque"
- --enable-opaque-menu make menu-library structures "opaque"
- --enable-opaque-panel make panel-library structures "opaque"
+ --disable-opaque-curses do not make WINDOW, etc., structures opaque
+ --disable-opaque-form do not make form library structures opaque
+ --disable-opaque-menu do not make menu library structures opaque
+ --disable-opaque-panel do not make panel library structures opaque
--with-wrap-prefix=XXX override prefix used for public variables
Development Code:
--without-develop disable development options
+ --enable-check-size compile-in code to detect screensize of serial terminals
--enable-hard-tabs compile with hard-tabs code
--enable-xmc-glitch compile with support for xmc (magic-cookie)
Experimental Code:
@@ -848,7 +852,9 @@ Experimental Code:
Testing/development Options:
--disable-echo do not display "compiling" commands
--disable-stripping do not strip (debug info) installed executables
+ --with-strip-program=XX specify program to use when stripping in install
--enable-warnings test: turn on gcc compiler warnings
+ --enable-stdnoreturn enable C11 _Noreturn feature for diagnostics
--enable-string-hacks work around bogus compiler/loader warnings
--enable-assertions test: turn on generation of assertion code
--with-dmalloc test: use Gray Watson's dmalloc library
@@ -860,15 +866,16 @@ Testing/development Options:
--with-trace test: add trace() function to all models of ncurses
--disable-gnat-projects test: disable GNAT projects even if usable
Ada Binding Options:
- --with-ada-compiler=CMD specify Ada95 compiler command (default gnatmake)
- --with-ada-include=DIR Ada includes are in DIR (default: PREFIX/share/ada/adainclude)
- --with-ada-objects=DIR Ada objects are in DIR (default: PREFIX/lib/ada/adalib)
- --with-ada-sharedlib=soname build shared-library (requires GNAT projects)
- --with-ada-libname=XXX override default Ada library-name
- --with-form-libname=XXX override form basename of library
- --with-menu-libname=XXX override menu basename of library
- --with-panel-libname=XXX override panel basename of library
- --with-cxx-libname=XXX override ncurses++ basename of library
+ --with-ada-compiler[=CMD] use CMD as Ada95 compiler (default: gnatmake)
+ --with-ada-include=DIR find Ada95 includes in DIR (default: PREFIX/share/ada/adainclude)
+ --with-ada-objects=DIR find Ada95 objects in DIR (default: PREFIX/lib/ada/adalib)
+ --with-ada-sharedlib build Ada95 shared library; requires GNAT project support
+ --with-ada-libname[=XXX] use XXX as Ada95 library name
+Library basenames for pkgsrc:
+ --with-form-libname[=XXX] override ifelse(,,form,) basename of library
+ --with-menu-libname[=XXX] override ifelse(,,menu,) basename of library
+ --with-panel-libname[=XXX] override ifelse(,,panel,) basename of library
+ --with-cxx-libname[=XXX] override ifelse(ncurses++,,cxx,ncurses++) basename of library
Some influential environment variables:
CC C compiler command
@@ -928,7 +935,7 @@ test -n "$ac_init_help" && exit 0
if "$ac_init_version"; then
cat <<\EOF
-Copyright 2003-2020,2021 Thomas E. Dickey
+Copyright 2003-2022,2023 Thomas E. Dickey
Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
@@ -942,7 +949,7 @@ This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by $as_me, which was
-generated by GNU Autoconf 2.52.20210105. Invocation command line was
+generated by GNU Autoconf 2.52.20231210. Invocation command line was
$ $0 $@
@@ -1066,7 +1073,7 @@ if test -z "$CONFIG_SITE"; then
fi
for ac_site_file in $CONFIG_SITE; do
if test -r "$ac_site_file"; then
- { echo "$as_me:1069: loading site script $ac_site_file" >&5
+ { echo "$as_me:1076: loading site script $ac_site_file" >&5
echo "$as_me: loading site script $ac_site_file" >&6;}
cat "$ac_site_file" >&5
. "$ac_site_file"
@@ -1077,7 +1084,7 @@ if test -r "$cache_file"; then
# Some versions of bash will fail to source /dev/null (special
# files actually), so we avoid doing that.
if test -f "$cache_file"; then
- { echo "$as_me:1080: loading cache $cache_file" >&5
+ { echo "$as_me:1087: loading cache $cache_file" >&5
echo "$as_me: loading cache $cache_file" >&6;}
case $cache_file in
[\\/]* | ?:[\\/]* ) . $cache_file;;
@@ -1085,7 +1092,7 @@ echo "$as_me: loading cache $cache_file" >&6;}
esac
fi
else
- { echo "$as_me:1088: creating cache $cache_file" >&5
+ { echo "$as_me:1095: creating cache $cache_file" >&5
echo "$as_me: creating cache $cache_file" >&6;}
>$cache_file
fi
@@ -1101,21 +1108,21 @@ for ac_var in `(set) 2>&1 |
eval ac_new_val="\$ac_env_${ac_var}_value"
case "$ac_old_set,$ac_new_set" in
set,)
- { echo "$as_me:1104: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+ { echo "$as_me:1111: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
ac_cache_corrupted=: ;;
,set)
- { echo "$as_me:1108: error: \`$ac_var' was not set in the previous run" >&5
+ { echo "$as_me:1115: error: \`$ac_var' was not set in the previous run" >&5
echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
ac_cache_corrupted=: ;;
,);;
*)
if test "x$ac_old_val" != "x$ac_new_val"; then
- { echo "$as_me:1114: error: \`$ac_var' has changed since the previous run:" >&5
+ { echo "$as_me:1121: error: \`$ac_var' has changed since the previous run:" >&5
echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
- { echo "$as_me:1116: former value: $ac_old_val" >&5
+ { echo "$as_me:1123: former value: $ac_old_val" >&5
echo "$as_me: former value: $ac_old_val" >&2;}
- { echo "$as_me:1118: current value: $ac_new_val" >&5
+ { echo "$as_me:1125: current value: $ac_new_val" >&5
echo "$as_me: current value: $ac_new_val" >&2;}
ac_cache_corrupted=:
fi;;
@@ -1134,9 +1141,9 @@ echo "$as_me: current value: $ac_new_val" >&2;}
fi
done
if "$ac_cache_corrupted"; then
- { echo "$as_me:1137: error: changes in the environment can compromise the build" >&5
+ { echo "$as_me:1144: error: changes in the environment can compromise the build" >&5
echo "$as_me: error: changes in the environment can compromise the build" >&2;}
- { { echo "$as_me:1139: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
+ { { echo "$as_me:1146: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -1165,10 +1172,10 @@ esac
echo "#! $SHELL" >conftest.sh
echo "exit 0" >>conftest.sh
chmod +x conftest.sh
-if { (echo "$as_me:1168: PATH=\".;.\"; conftest.sh") >&5
+if { (echo "$as_me:1175: PATH=\".;.\"; conftest.sh") >&5
(PATH=".;."; conftest.sh) 2>&5
ac_status=$?
- echo "$as_me:1171: \$? = $ac_status" >&5
+ echo "$as_me:1178: \$? = $ac_status" >&5
(exit "$ac_status"); }; then
ac_path_separator=';'
else
@@ -1185,7 +1192,7 @@ for ac_prog in ggrep grep
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-echo "$as_me:1188: checking for $ac_word" >&5
+echo "$as_me:1195: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_GREP+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1200,7 +1207,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_GREP="$ac_prog"
-echo "$as_me:1203: found $ac_dir/$ac_word" >&5
+echo "$as_me:1210: found $ac_dir/$ac_word" >&5
break
done
@@ -1208,10 +1215,10 @@ fi
fi
GREP=$ac_cv_prog_GREP
if test -n "$GREP"; then
- echo "$as_me:1211: result: $GREP" >&5
+ echo "$as_me:1218: result: $GREP" >&5
echo "${ECHO_T}$GREP" >&6
else
- echo "$as_me:1214: result: no" >&5
+ echo "$as_me:1221: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -1219,7 +1226,7 @@ fi
done
test -n "$GREP" || GREP=": "
-echo "$as_me:1222: checking for egrep" >&5
+echo "$as_me:1229: checking for egrep" >&5
echo $ECHO_N "checking for egrep... $ECHO_C" >&6
if test "${ac_cv_path_EGREP+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1231,7 +1238,7 @@ else
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-echo "$as_me:1234: checking for $ac_word" >&5
+echo "$as_me:1241: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_path_EGREP+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1248,7 +1255,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
if $as_executable_p "$ac_dir/$ac_word"; then
ac_cv_path_EGREP="$ac_dir/$ac_word"
- echo "$as_me:1251: found $ac_dir/$ac_word" >&5
+ echo "$as_me:1258: found $ac_dir/$ac_word" >&5
break
fi
done
@@ -1259,10 +1266,10 @@ fi
EGREP=$ac_cv_path_EGREP
if test -n "$EGREP"; then
- echo "$as_me:1262: result: $EGREP" >&5
+ echo "$as_me:1269: result: $EGREP" >&5
echo "${ECHO_T}$EGREP" >&6
else
- echo "$as_me:1265: result: no" >&5
+ echo "$as_me:1272: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -1270,12 +1277,12 @@ fi
done
test -n "$EGREP" || EGREP=": "
- test "x$ac_cv_path_EGREP" = "x:" && { { echo "$as_me:1273: error: cannot find workable egrep" >&5
+ test "x$ac_cv_path_EGREP" = "x:" && { { echo "$as_me:1280: error: cannot find workable egrep" >&5
echo "$as_me: error: cannot find workable egrep" >&2;}
{ (exit 1); exit 1; }; }
fi
fi
-echo "$as_me:1278: result: $ac_cv_path_EGREP" >&5
+echo "$as_me:1285: result: $ac_cv_path_EGREP" >&5
echo "${ECHO_T}$ac_cv_path_EGREP" >&6
EGREP="$ac_cv_path_EGREP"
@@ -1283,13 +1290,14 @@ NCURSES_MAJOR="`${EGREP-egrep} '^NCURSES_MAJOR[ ]*=' "$srcdir/dist.mk" | sed -e
NCURSES_MINOR="`${EGREP-egrep} '^NCURSES_MINOR[ ]*=' "$srcdir/dist.mk" | sed -e 's/^[^0-9]*//'`"
NCURSES_PATCH="`${EGREP-egrep} '^NCURSES_PATCH[ ]*=' "$srcdir/dist.mk" | sed -e 's/^[^0-9]*//'`"
cf_cv_abi_version=${NCURSES_MAJOR}
+cf_cv_abi_default=${NCURSES_MAJOR}
cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR}
cf_cv_timestamp=`date`
-echo "$as_me:1288: result: Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp)" >&5
-echo "${ECHO_T}Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp)" >&6
+echo "$as_me:1296: result: Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_default ($cf_cv_timestamp)" >&5
+echo "${ECHO_T}Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_default ($cf_cv_timestamp)" >&6
if test -f "$srcdir/VERSION" ; then
- echo "$as_me:1292: checking for package version" >&5
+ echo "$as_me:1300: checking for package version" >&5
echo $ECHO_N "checking for package version... $ECHO_C" >&6
# if there are not enough fields, cut returns the last one...
@@ -1301,39 +1309,39 @@ echo $ECHO_N "checking for package version... $ECHO_C" >&6
VERSION="$cf_field1"
VERSION_MAJOR=`echo "$cf_field2" | sed -e 's/\..*//'`
- test -z "$VERSION_MAJOR" && { { echo "$as_me:1304: error: missing major-version" >&5
+ test -z "$VERSION_MAJOR" && { { echo "$as_me:1312: error: missing major-version" >&5
echo "$as_me: error: missing major-version" >&2;}
{ (exit 1); exit 1; }; }
VERSION_MINOR=`echo "$cf_field2" | sed -e 's/^[^.]*\.//' -e 's/-.*//'`
- test -z "$VERSION_MINOR" && { { echo "$as_me:1309: error: missing minor-version" >&5
+ test -z "$VERSION_MINOR" && { { echo "$as_me:1317: error: missing minor-version" >&5
echo "$as_me: error: missing minor-version" >&2;}
{ (exit 1); exit 1; }; }
- echo "$as_me:1313: result: ${VERSION_MAJOR}.${VERSION_MINOR}" >&5
+ echo "$as_me:1321: result: ${VERSION_MAJOR}.${VERSION_MINOR}" >&5
echo "${ECHO_T}${VERSION_MAJOR}.${VERSION_MINOR}" >&6
- echo "$as_me:1316: checking for package patch date" >&5
+ echo "$as_me:1324: checking for package patch date" >&5
echo $ECHO_N "checking for package patch date... $ECHO_C" >&6
VERSION_PATCH=`echo "$cf_field3" | sed -e 's/^[^-]*-//'`
case .$VERSION_PATCH in
(.)
- { { echo "$as_me:1321: error: missing patch-date $VERSION_PATCH" >&5
+ { { echo "$as_me:1329: error: missing patch-date $VERSION_PATCH" >&5
echo "$as_me: error: missing patch-date $VERSION_PATCH" >&2;}
{ (exit 1); exit 1; }; }
;;
(.[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9])
;;
(*)
- { { echo "$as_me:1328: error: illegal patch-date $VERSION_PATCH" >&5
+ { { echo "$as_me:1336: error: illegal patch-date $VERSION_PATCH" >&5
echo "$as_me: error: illegal patch-date $VERSION_PATCH" >&2;}
{ (exit 1); exit 1; }; }
;;
esac
- echo "$as_me:1333: result: $VERSION_PATCH" >&5
+ echo "$as_me:1341: result: $VERSION_PATCH" >&5
echo "${ECHO_T}$VERSION_PATCH" >&6
else
- { { echo "$as_me:1336: error: did not find $srcdir/VERSION" >&5
+ { { echo "$as_me:1344: error: did not find $srcdir/VERSION" >&5
echo "$as_me: error: did not find $srcdir/VERSION" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -1341,19 +1349,19 @@ fi
# show the actual data that we have for versions:
test -n "$verbose" && echo " ABI VERSION $VERSION" 1>&6
-echo "${as_me:-configure}:1344: testing ABI VERSION $VERSION ..." 1>&5
+echo "${as_me:-configure}:1352: testing ABI VERSION $VERSION ..." 1>&5
test -n "$verbose" && echo " VERSION_MAJOR $VERSION_MAJOR" 1>&6
-echo "${as_me:-configure}:1348: testing VERSION_MAJOR $VERSION_MAJOR ..." 1>&5
+echo "${as_me:-configure}:1356: testing VERSION_MAJOR $VERSION_MAJOR ..." 1>&5
test -n "$verbose" && echo " VERSION_MINOR $VERSION_MINOR" 1>&6
-echo "${as_me:-configure}:1352: testing VERSION_MINOR $VERSION_MINOR ..." 1>&5
+echo "${as_me:-configure}:1360: testing VERSION_MINOR $VERSION_MINOR ..." 1>&5
test -n "$verbose" && echo " VERSION_PATCH $VERSION_PATCH" 1>&6
-echo "${as_me:-configure}:1356: testing VERSION_PATCH $VERSION_PATCH ..." 1>&5
+echo "${as_me:-configure}:1364: testing VERSION_PATCH $VERSION_PATCH ..." 1>&5
cf_PACKAGE=NCURSES
PACKAGE=ncurses
@@ -1377,42 +1385,43 @@ test -z "$cf_cv_rel_version" && cf_cv_rel_version=0.0
# Check whether --with-rel-version or --without-rel-version was given.
if test "${with_rel_version+set}" = set; then
withval="$with_rel_version"
- { echo "$as_me:1380: WARNING: overriding release version $cf_cv_rel_version to $withval" >&5
+ { echo "$as_me:1388: WARNING: overriding release version $cf_cv_rel_version to $withval" >&5
echo "$as_me: WARNING: overriding release version $cf_cv_rel_version to $withval" >&2;}
cf_cv_rel_version=$withval
fi;
NCURSES_MAJOR=`echo "$cf_cv_rel_version" | sed -e 's/\..*//'`
NCURSES_MINOR=`echo "$cf_cv_rel_version" | sed -e 's/^[^.]*//' -e 's/^\.//' -e 's/\..*//'`
+ test -n "NCURSES_MINOR" || NCURSES_MINOR=0
if test -n "$NCURSES_MAJOR" ; then
- case $NCURSES_MAJOR in
- ([0-9]*)
+ case `echo "$NCURSES_MAJOR" | sed -e 's/^[0-9]*$/0/g'` in
+ (0)
;;
(*)
- { { echo "$as_me:1393: error: Release major-version is not a number: $NCURSES_MAJOR" >&5
+ { { echo "$as_me:1402: error: Release major-version is not a number: $NCURSES_MAJOR" >&5
echo "$as_me: error: Release major-version is not a number: $NCURSES_MAJOR" >&2;}
{ (exit 1); exit 1; }; }
;;
esac
else
- { { echo "$as_me:1399: error: Release major-version value is empty" >&5
+ { { echo "$as_me:1408: error: Release major-version value is empty" >&5
echo "$as_me: error: Release major-version value is empty" >&2;}
{ (exit 1); exit 1; }; }
fi
if test -n "$NCURSES_MINOR" ; then
- case $NCURSES_MINOR in
- ([0-9]*)
+ case `echo "$NCURSES_MINOR" | sed -e 's/^[0-9]*$/0/g'` in
+ (0)
;;
(*)
- { { echo "$as_me:1409: error: Release minor-version is not a number: $NCURSES_MINOR" >&5
+ { { echo "$as_me:1418: error: Release minor-version is not a number: $NCURSES_MINOR" >&5
echo "$as_me: error: Release minor-version is not a number: $NCURSES_MINOR" >&2;}
{ (exit 1); exit 1; }; }
;;
esac
else
- { { echo "$as_me:1415: error: Release minor-version value is empty" >&5
+ { { echo "$as_me:1424: error: Release minor-version value is empty" >&5
echo "$as_me: error: Release minor-version value is empty" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -1425,7 +1434,7 @@ if test "${with_abi_version+set}" = set; then
if test "x$cf_cv_abi_version" != "x$withval"
then
- { echo "$as_me:1428: WARNING: overriding ABI version $cf_cv_abi_version to $withval" >&5
+ { echo "$as_me:1437: WARNING: overriding ABI version $cf_cv_abi_version to $withval" >&5
echo "$as_me: WARNING: overriding ABI version $cf_cv_abi_version to $withval" >&2;}
case "$cf_cv_rel_version" in
(5.*)
@@ -1440,21 +1449,23 @@ echo "$as_me: WARNING: overriding ABI version $cf_cv_abi_version to $withval" >&
fi;
if test -n "$cf_cv_abi_version" ; then
- case $cf_cv_abi_version in
- ([0-9]*)
+ case `echo "$cf_cv_abi_version" | sed -e 's/^[0-9]*$/0/g'` in
+ (0)
;;
(*)
- { { echo "$as_me:1447: error: ABI version is not a number: $cf_cv_abi_version" >&5
+ { { echo "$as_me:1456: error: ABI version is not a number: $cf_cv_abi_version" >&5
echo "$as_me: error: ABI version is not a number: $cf_cv_abi_version" >&2;}
{ (exit 1); exit 1; }; }
;;
esac
else
- { { echo "$as_me:1453: error: ABI version value is empty" >&5
+ { { echo "$as_me:1462: error: ABI version value is empty" >&5
echo "$as_me: error: ABI version value is empty" >&2;}
{ (exit 1); exit 1; }; }
fi
+cf_cv_abi_default=$cf_cv_abi_version
+
if test "x$cf_cv_abi_version" != "x$with_abi_version"
then
case "$cf_cv_rel_version" in
@@ -1481,7 +1492,7 @@ for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
fi
done
if test -z "$ac_aux_dir"; then
- { { echo "$as_me:1484: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
+ { { echo "$as_me:1495: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -1491,11 +1502,11 @@ ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
# Make sure we can run config.sub.
$ac_config_sub sun4 >/dev/null 2>&1 ||
- { { echo "$as_me:1494: error: cannot run $ac_config_sub" >&5
+ { { echo "$as_me:1505: error: cannot run $ac_config_sub" >&5
echo "$as_me: error: cannot run $ac_config_sub" >&2;}
{ (exit 1); exit 1; }; }
-echo "$as_me:1498: checking build system type" >&5
+echo "$as_me:1509: checking build system type" >&5
echo $ECHO_N "checking build system type... $ECHO_C" >&6
if test "${ac_cv_build+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1504,23 +1515,23 @@ else
test -z "$ac_cv_build_alias" &&
ac_cv_build_alias=`$ac_config_guess`
test -z "$ac_cv_build_alias" &&
- { { echo "$as_me:1507: error: cannot guess build type; you must specify one" >&5
+ { { echo "$as_me:1518: error: cannot guess build type; you must specify one" >&5
echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
{ (exit 1); exit 1; }; }
ac_cv_build=`$ac_config_sub "$ac_cv_build_alias"` ||
- { { echo "$as_me:1511: error: $ac_config_sub $ac_cv_build_alias failed." >&5
+ { { echo "$as_me:1522: error: $ac_config_sub $ac_cv_build_alias failed." >&5
echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed." >&2;}
{ (exit 1); exit 1; }; }
fi
-echo "$as_me:1516: result: $ac_cv_build" >&5
+echo "$as_me:1527: result: $ac_cv_build" >&5
echo "${ECHO_T}$ac_cv_build" >&6
build=$ac_cv_build
build_cpu=`echo "$ac_cv_build" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
build_vendor=`echo "$ac_cv_build" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
build_os=`echo "$ac_cv_build" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-echo "$as_me:1523: checking host system type" >&5
+echo "$as_me:1534: checking host system type" >&5
echo $ECHO_N "checking host system type... $ECHO_C" >&6
if test "${ac_cv_host+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1529,12 +1540,12 @@ else
test -z "$ac_cv_host_alias" &&
ac_cv_host_alias=$ac_cv_build_alias
ac_cv_host=`$ac_config_sub "$ac_cv_host_alias"` ||
- { { echo "$as_me:1532: error: $ac_config_sub $ac_cv_host_alias failed" >&5
+ { { echo "$as_me:1543: error: $ac_config_sub $ac_cv_host_alias failed" >&5
echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
{ (exit 1); exit 1; }; }
fi
-echo "$as_me:1537: result: $ac_cv_host" >&5
+echo "$as_me:1548: result: $ac_cv_host" >&5
echo "${ECHO_T}$ac_cv_host" >&6
host=$ac_cv_host
host_cpu=`echo "$ac_cv_host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
@@ -1542,7 +1553,7 @@ host_vendor=`echo "$ac_cv_host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
host_os=`echo "$ac_cv_host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
if test -f "$srcdir/config.guess" || test -f "$ac_aux_dir/config.guess" ; then
- echo "$as_me:1545: checking target system type" >&5
+ echo "$as_me:1556: checking target system type" >&5
echo $ECHO_N "checking target system type... $ECHO_C" >&6
if test "${ac_cv_target+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1551,12 +1562,12 @@ else
test "x$ac_cv_target_alias" = "x" &&
ac_cv_target_alias=$ac_cv_host_alias
ac_cv_target=`$ac_config_sub "$ac_cv_target_alias"` ||
- { { echo "$as_me:1554: error: $ac_config_sub $ac_cv_target_alias failed" >&5
+ { { echo "$as_me:1565: error: $ac_config_sub $ac_cv_target_alias failed" >&5
echo "$as_me: error: $ac_config_sub $ac_cv_target_alias failed" >&2;}
{ (exit 1); exit 1; }; }
fi
-echo "$as_me:1559: result: $ac_cv_target" >&5
+echo "$as_me:1570: result: $ac_cv_target" >&5
echo "${ECHO_T}$ac_cv_target" >&6
target=$ac_cv_target
target_cpu=`echo "$ac_cv_target" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
@@ -1588,13 +1599,13 @@ else
fi
test -z "$system_name" && system_name="$cf_cv_system_name"
-test -n "$cf_cv_system_name" && echo "$as_me:1591: result: Configuring for $cf_cv_system_name" >&5
+test -n "$cf_cv_system_name" && echo "$as_me:1602: result: Configuring for $cf_cv_system_name" >&5
echo "${ECHO_T}Configuring for $cf_cv_system_name" >&6
if test ".$system_name" != ".$cf_cv_system_name" ; then
- echo "$as_me:1595: result: Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&5
+ echo "$as_me:1606: result: Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&5
echo "${ECHO_T}Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&6
- { { echo "$as_me:1597: error: \"Please remove config.cache and try again.\"" >&5
+ { { echo "$as_me:1608: error: \"Please remove config.cache and try again.\"" >&5
echo "$as_me: error: \"Please remove config.cache and try again.\"" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -1602,7 +1613,7 @@ fi
# Check whether --with-system-type or --without-system-type was given.
if test "${with_system_type+set}" = set; then
withval="$with_system_type"
- { echo "$as_me:1605: WARNING: overriding system type to $withval" >&5
+ { echo "$as_me:1616: WARNING: overriding system type to $withval" >&5
echo "$as_me: WARNING: overriding system type to $withval" >&2;}
cf_cv_system_name=$withval
host_os=$withval
@@ -1613,7 +1624,7 @@ fi;
cf_user_CFLAGS="$CFLAGS"
### Default install-location
-echo "$as_me:1616: checking for fgrep" >&5
+echo "$as_me:1627: checking for fgrep" >&5
echo $ECHO_N "checking for fgrep... $ECHO_C" >&6
if test "${ac_cv_path_FGREP+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1625,7 +1636,7 @@ else
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-echo "$as_me:1628: checking for $ac_word" >&5
+echo "$as_me:1639: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_path_FGREP+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1642,7 +1653,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
if $as_executable_p "$ac_dir/$ac_word"; then
ac_cv_path_FGREP="$ac_dir/$ac_word"
- echo "$as_me:1645: found $ac_dir/$ac_word" >&5
+ echo "$as_me:1656: found $ac_dir/$ac_word" >&5
break
fi
done
@@ -1653,10 +1664,10 @@ fi
FGREP=$ac_cv_path_FGREP
if test -n "$FGREP"; then
- echo "$as_me:1656: result: $FGREP" >&5
+ echo "$as_me:1667: result: $FGREP" >&5
echo "${ECHO_T}$FGREP" >&6
else
- echo "$as_me:1659: result: no" >&5
+ echo "$as_me:1670: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -1664,16 +1675,16 @@ fi
done
test -n "$FGREP" || FGREP=": "
- test "x$ac_cv_path_FGREP" = "x:" && { { echo "$as_me:1667: error: cannot find workable fgrep" >&5
+ test "x$ac_cv_path_FGREP" = "x:" && { { echo "$as_me:1678: error: cannot find workable fgrep" >&5
echo "$as_me: error: cannot find workable fgrep" >&2;}
{ (exit 1); exit 1; }; }
fi
fi
-echo "$as_me:1672: result: $ac_cv_path_FGREP" >&5
+echo "$as_me:1683: result: $ac_cv_path_FGREP" >&5
echo "${ECHO_T}$ac_cv_path_FGREP" >&6
FGREP="$ac_cv_path_FGREP"
-echo "$as_me:1676: checking for prefix" >&5
+echo "$as_me:1687: checking for prefix" >&5
echo $ECHO_N "checking for prefix... $ECHO_C" >&6
if test "x$prefix" = "xNONE" ; then
case "$cf_cv_system_name" in
@@ -1685,11 +1696,11 @@ if test "x$prefix" = "xNONE" ; then
;;
esac
fi
-echo "$as_me:1688: result: $prefix" >&5
+echo "$as_me:1699: result: $prefix" >&5
echo "${ECHO_T}$prefix" >&6
if test "x$prefix" = "xNONE" ; then
-echo "$as_me:1692: checking for default include-directory" >&5
+echo "$as_me:1703: checking for default include-directory" >&5
echo $ECHO_N "checking for default include-directory... $ECHO_C" >&6
test -n "$verbose" && echo 1>&6
for cf_symbol in \
@@ -1712,41 +1723,91 @@ do
fi
test -n "$verbose" && echo " tested $cf_dir" 1>&6
done
-echo "$as_me:1715: result: $includedir" >&5
+echo "$as_me:1726: result: $includedir" >&5
echo "${ECHO_T}$includedir" >&6
fi
### Defaults for ncurses ABI
-case x$cf_cv_abi_version in
+# ABI 5 defaults:
+cf_dft_ccharw_max=5
+cf_dft_chtype=auto
+cf_dft_ext_colors=no
+cf_dft_ext_const=no
+cf_dft_ext_mouse=no
+cf_dft_ext_putwin=no
+cf_dft_ext_spfuncs=no
+cf_dft_filter_syms=no
+cf_dft_interop=no
+cf_dft_mmask_t=auto
+cf_dft_opaque_curses=no
+cf_dft_ordinate_type=short
+cf_dft_signed_char=no
+cf_dft_tparm_arg=long
+cf_dft_widec=no
+cf_dft_with_lp64=no
+
+# ABI 6 default differences from ABI 5:
+case x$cf_cv_abi_default in
(x[6789])
+ cf_dft_chtype=uint32_t
cf_dft_ext_colors=yes
cf_dft_ext_const=yes
cf_dft_ext_mouse=yes
cf_dft_ext_putwin=yes
cf_dft_ext_spfuncs=yes
cf_dft_filter_syms=yes
- cf_dft_chtype=uint32_t
- cf_dft_mmask_t=uint32_t
cf_dft_interop=yes
+ cf_dft_mmask_t=uint32_t
+ cf_dft_opaque_curses=yes
cf_dft_tparm_arg=intptr_t
+ cf_dft_widec=yes
cf_dft_with_lp64=yes
;;
-(*)
- cf_dft_ext_colors=no
- cf_dft_ext_const=no
- cf_dft_ext_mouse=no
- cf_dft_ext_putwin=no
- cf_dft_ext_spfuncs=no
- cf_dft_filter_syms=no
- cf_dft_chtype=auto
- cf_dft_mmask_t=auto
- cf_dft_interop=no
- cf_dft_tparm_arg=long
- cf_dft_with_lp64=no
+esac
+
+# ABI 7 default differences from ABI 6:
+case x$cf_cv_abi_default in
+(x[789])
+ cf_dft_ccharw_max=6
+ cf_dft_mmask_t=uint64_t
+ cf_dft_ordinate_type=int
+ cf_dft_signed_char=yes
+ # also: remove the wgetch-events feature in ABI 7
;;
esac
+### override ABI version, e.g., packagers
+
+# Check whether --with-abi-altered or --without-abi-altered was given.
+if test "${with_abi_altered+set}" = set; then
+ withval="$with_abi_altered"
+
+if test -n "$withval" ; then
+ case `echo "$withval" | sed -e 's/^[0-9]*$/0/g'` in
+ (0)
+ ;;
+ (*)
+ { { echo "$as_me:1791: error: ABI altered is not a number: $withval" >&5
+echo "$as_me: error: ABI altered is not a number: $withval" >&2;}
+ { (exit 1); exit 1; }; }
+ ;;
+ esac
+else
+ { { echo "$as_me:1797: error: ABI altered value is empty" >&5
+echo "$as_me: error: ABI altered value is empty" >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+ if test "$cf_cv_abi_version" != "$withval"
+ then
+ { echo "$as_me:1804: WARNING: altering visible ABI from $cf_cv_abi_version to $withval" >&5
+echo "$as_me: WARNING: altering visible ABI from $cf_cv_abi_version to $withval" >&2;}
+ cf_cv_abi_version=$withval
+ fi
+
+fi;
+
### Checks for programs.
# Check whether --with-ada or --without-ada was given.
@@ -1775,7 +1836,7 @@ if test -n "$ac_tool_prefix"; then
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-echo "$as_me:1778: checking for $ac_word" >&5
+echo "$as_me:1839: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_CC+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1790,7 +1851,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-echo "$as_me:1793: found $ac_dir/$ac_word" >&5
+echo "$as_me:1854: found $ac_dir/$ac_word" >&5
break
done
@@ -1798,10 +1859,10 @@ fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
- echo "$as_me:1801: result: $CC" >&5
+ echo "$as_me:1862: result: $CC" >&5
echo "${ECHO_T}$CC" >&6
else
- echo "$as_me:1804: result: no" >&5
+ echo "$as_me:1865: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -1814,7 +1875,7 @@ if test -z "$CC"; then
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-echo "$as_me:1817: checking for $ac_word" >&5
+echo "$as_me:1878: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1829,7 +1890,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_ac_ct_CC="$ac_prog"
-echo "$as_me:1832: found $ac_dir/$ac_word" >&5
+echo "$as_me:1893: found $ac_dir/$ac_word" >&5
break
done
@@ -1837,10 +1898,10 @@ fi
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
- echo "$as_me:1840: result: $ac_ct_CC" >&5
+ echo "$as_me:1901: result: $ac_ct_CC" >&5
echo "${ECHO_T}$ac_ct_CC" >&6
else
- echo "$as_me:1843: result: no" >&5
+ echo "$as_me:1904: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -1850,32 +1911,32 @@ done
CC=$ac_ct_CC
fi
-test -z "$CC" && { { echo "$as_me:1853: error: no acceptable cc found in \$PATH" >&5
+test -z "$CC" && { { echo "$as_me:1914: error: no acceptable cc found in \$PATH" >&5
echo "$as_me: error: no acceptable cc found in \$PATH" >&2;}
{ (exit 1); exit 1; }; }
# Provide some information about the compiler.
-echo "$as_me:1858:" \
+echo "$as_me:1919:" \
"checking for C compiler version" >&5
ac_compiler=`set X $ac_compile; echo "$2"`
-{ (eval echo "$as_me:1861: \"$ac_compiler --version </dev/null >&5\"") >&5
+{ (eval echo "$as_me:1922: \"$ac_compiler --version </dev/null >&5\"") >&5
(eval $ac_compiler --version </dev/null >&5) 2>&5
ac_status=$?
- echo "$as_me:1864: \$? = $ac_status" >&5
+ echo "$as_me:1925: \$? = $ac_status" >&5
(exit "$ac_status"); }
-{ (eval echo "$as_me:1866: \"$ac_compiler -v </dev/null >&5\"") >&5
+{ (eval echo "$as_me:1927: \"$ac_compiler -v </dev/null >&5\"") >&5
(eval $ac_compiler -v </dev/null >&5) 2>&5
ac_status=$?
- echo "$as_me:1869: \$? = $ac_status" >&5
+ echo "$as_me:1930: \$? = $ac_status" >&5
(exit "$ac_status"); }
-{ (eval echo "$as_me:1871: \"$ac_compiler -V </dev/null >&5\"") >&5
+{ (eval echo "$as_me:1932: \"$ac_compiler -V </dev/null >&5\"") >&5
(eval $ac_compiler -V </dev/null >&5) 2>&5
ac_status=$?
- echo "$as_me:1874: \$? = $ac_status" >&5
+ echo "$as_me:1935: \$? = $ac_status" >&5
(exit "$ac_status"); }
cat >"conftest.$ac_ext" <<_ACEOF
-#line 1878 "configure"
+#line 1939 "configure"
#include "confdefs.h"
int
@@ -1891,13 +1952,13 @@ ac_clean_files="$ac_clean_files a.out a.exe"
# Try to create an executable without -o first, disregard a.out.
# It will help us diagnose broken compilers, and finding out an intuition
# of exeext.
-echo "$as_me:1894: checking for C compiler default output" >&5
+echo "$as_me:1955: checking for C compiler default output" >&5
echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6
ac_link_default=`echo "$ac_link" | sed 's/ -o *"conftest[^"]*"//'`
-if { (eval echo "$as_me:1897: \"$ac_link_default\"") >&5
+if { (eval echo "$as_me:1958: \"$ac_link_default\"") >&5
(eval $ac_link_default) 2>&5
ac_status=$?
- echo "$as_me:1900: \$? = $ac_status" >&5
+ echo "$as_me:1961: \$? = $ac_status" >&5
(exit "$ac_status"); }; then
# Find the output, starting from the most likely. This scheme is
# not robust to junk in `.', hence go to wildcards (a.*) only as a last
@@ -1920,34 +1981,34 @@ done
else
echo "$as_me: failed program was:" >&5
cat "conftest.$ac_ext" >&5
-{ { echo "$as_me:1923: error: C compiler cannot create executables" >&5
+{ { echo "$as_me:1984: error: C compiler cannot create executables" >&5
echo "$as_me: error: C compiler cannot create executables" >&2;}
{ (exit 77); exit 77; }; }
fi
ac_exeext=$ac_cv_exeext
-echo "$as_me:1929: result: $ac_file" >&5
+echo "$as_me:1990: result: $ac_file" >&5
echo "${ECHO_T}$ac_file" >&6
# Check the compiler produces executables we can run. If not, either
# the compiler is broken, or we cross compile.
-echo "$as_me:1934: checking whether the C compiler works" >&5
+echo "$as_me:1995: checking whether the C compiler works" >&5
echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
# If not cross compiling, check that we can run a simple program.
if test "$cross_compiling" != yes; then
if { ac_try='./$ac_file'
- { (eval echo "$as_me:1940: \"$ac_try\"") >&5
+ { (eval echo "$as_me:2001: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:1943: \$? = $ac_status" >&5
+ echo "$as_me:2004: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cross_compiling=no
else
if test "$cross_compiling" = maybe; then
cross_compiling=yes
else
- { { echo "$as_me:1950: error: cannot run C compiled programs.
+ { { echo "$as_me:2011: error: cannot run C compiled programs.
If you meant to cross compile, use \`--host'." >&5
echo "$as_me: error: cannot run C compiled programs.
If you meant to cross compile, use \`--host'." >&2;}
@@ -1955,24 +2016,24 @@ If you meant to cross compile, use \`--host'." >&2;}
fi
fi
fi
-echo "$as_me:1958: result: yes" >&5
+echo "$as_me:2019: result: yes" >&5
echo "${ECHO_T}yes" >&6
rm -f a.out a.exe "conftest$ac_cv_exeext"
ac_clean_files=$ac_clean_files_save
# Check the compiler produces executables we can run. If not, either
# the compiler is broken, or we cross compile.
-echo "$as_me:1965: checking whether we are cross compiling" >&5
+echo "$as_me:2026: checking whether we are cross compiling" >&5
echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
-echo "$as_me:1967: result: $cross_compiling" >&5
+echo "$as_me:2028: result: $cross_compiling" >&5
echo "${ECHO_T}$cross_compiling" >&6
-echo "$as_me:1970: checking for executable suffix" >&5
+echo "$as_me:2031: checking for executable suffix" >&5
echo $ECHO_N "checking for executable suffix... $ECHO_C" >&6
-if { (eval echo "$as_me:1972: \"$ac_link\"") >&5
+if { (eval echo "$as_me:2033: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:1975: \$? = $ac_status" >&5
+ echo "$as_me:2036: \$? = $ac_status" >&5
(exit "$ac_status"); }; then
# If both `conftest.exe' and `conftest' are `present' (well, observable)
# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
@@ -1988,25 +2049,25 @@ for ac_file in `(ls conftest.exe; ls conftest; ls conftest.*) 2>/dev/null`; do
esac
done
else
- { { echo "$as_me:1991: error: cannot compute EXEEXT: cannot compile and link" >&5
+ { { echo "$as_me:2052: error: cannot compute EXEEXT: cannot compile and link" >&5
echo "$as_me: error: cannot compute EXEEXT: cannot compile and link" >&2;}
{ (exit 1); exit 1; }; }
fi
rm -f "conftest$ac_cv_exeext"
-echo "$as_me:1997: result: $ac_cv_exeext" >&5
+echo "$as_me:2058: result: $ac_cv_exeext" >&5
echo "${ECHO_T}$ac_cv_exeext" >&6
rm -f "conftest.$ac_ext"
EXEEXT=$ac_cv_exeext
ac_exeext=$EXEEXT
-echo "$as_me:2003: checking for object suffix" >&5
+echo "$as_me:2064: checking for object suffix" >&5
echo $ECHO_N "checking for object suffix... $ECHO_C" >&6
if test "${ac_cv_objext+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 2009 "configure"
+#line 2070 "configure"
#include "confdefs.h"
int
@@ -2018,10 +2079,10 @@ main (void)
}
_ACEOF
rm -f conftest.o conftest.obj
-if { (eval echo "$as_me:2021: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:2082: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:2024: \$? = $ac_status" >&5
+ echo "$as_me:2085: \$? = $ac_status" >&5
(exit "$ac_status"); }; then
for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
case $ac_file in
@@ -2033,24 +2094,24 @@ done
else
echo "$as_me: failed program was:" >&5
cat "conftest.$ac_ext" >&5
-{ { echo "$as_me:2036: error: cannot compute OBJEXT: cannot compile" >&5
+{ { echo "$as_me:2097: error: cannot compute OBJEXT: cannot compile" >&5
echo "$as_me: error: cannot compute OBJEXT: cannot compile" >&2;}
{ (exit 1); exit 1; }; }
fi
rm -f "conftest.$ac_cv_objext" "conftest.$ac_ext"
fi
-echo "$as_me:2043: result: $ac_cv_objext" >&5
+echo "$as_me:2104: result: $ac_cv_objext" >&5
echo "${ECHO_T}$ac_cv_objext" >&6
OBJEXT=$ac_cv_objext
ac_objext=$OBJEXT
-echo "$as_me:2047: checking whether we are using the GNU C compiler" >&5
+echo "$as_me:2108: checking whether we are using the GNU C compiler" >&5
echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
if test "${ac_cv_c_compiler_gnu+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 2053 "configure"
+#line 2114 "configure"
#include "confdefs.h"
int
@@ -2065,16 +2126,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:2068: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:2129: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:2071: \$? = $ac_status" >&5
+ echo "$as_me:2132: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:2074: \"$ac_try\"") >&5
+ { (eval echo "$as_me:2135: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:2077: \$? = $ac_status" >&5
+ echo "$as_me:2138: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_compiler_gnu=yes
else
@@ -2086,19 +2147,19 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
ac_cv_c_compiler_gnu=$ac_compiler_gnu
fi
-echo "$as_me:2089: result: $ac_cv_c_compiler_gnu" >&5
+echo "$as_me:2150: result: $ac_cv_c_compiler_gnu" >&5
echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
GCC=`test $ac_compiler_gnu = yes && echo yes`
ac_test_CFLAGS=${CFLAGS+set}
ac_save_CFLAGS=$CFLAGS
CFLAGS="-g"
-echo "$as_me:2095: checking whether $CC accepts -g" >&5
+echo "$as_me:2156: checking whether $CC accepts -g" >&5
echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
if test "${ac_cv_prog_cc_g+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 2101 "configure"
+#line 2162 "configure"
#include "confdefs.h"
int
@@ -2110,16 +2171,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:2113: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:2174: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:2116: \$? = $ac_status" >&5
+ echo "$as_me:2177: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:2119: \"$ac_try\"") >&5
+ { (eval echo "$as_me:2180: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:2122: \$? = $ac_status" >&5
+ echo "$as_me:2183: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_prog_cc_g=yes
else
@@ -2129,7 +2190,7 @@ ac_cv_prog_cc_g=no
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:2132: result: $ac_cv_prog_cc_g" >&5
+echo "$as_me:2193: result: $ac_cv_prog_cc_g" >&5
echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
if test "$ac_test_CFLAGS" = set; then
CFLAGS=$ac_save_CFLAGS
@@ -2156,16 +2217,16 @@ cat >"conftest.$ac_ext" <<_ACEOF
#endif
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:2159: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:2220: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:2162: \$? = $ac_status" >&5
+ echo "$as_me:2223: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:2165: \"$ac_try\"") >&5
+ { (eval echo "$as_me:2226: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:2168: \$? = $ac_status" >&5
+ echo "$as_me:2229: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
for ac_declaration in \
''\
@@ -2177,7 +2238,7 @@ if { (eval echo "$as_me:2159: \"$ac_compile\"") >&5
'void exit (int);'
do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 2180 "configure"
+#line 2241 "configure"
#include "confdefs.h"
#include <stdlib.h>
$ac_declaration
@@ -2190,16 +2251,16 @@ exit (42);
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:2193: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:2254: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:2196: \$? = $ac_status" >&5
+ echo "$as_me:2257: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:2199: \"$ac_try\"") >&5
+ { (eval echo "$as_me:2260: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:2202: \$? = $ac_status" >&5
+ echo "$as_me:2263: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
:
else
@@ -2209,7 +2270,7 @@ continue
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 2212 "configure"
+#line 2273 "configure"
#include "confdefs.h"
$ac_declaration
int
@@ -2221,16 +2282,16 @@ exit (42);
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:2224: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:2285: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:2227: \$? = $ac_status" >&5
+ echo "$as_me:2288: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:2230: \"$ac_try\"") >&5
+ { (eval echo "$as_me:2291: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:2233: \$? = $ac_status" >&5
+ echo "$as_me:2294: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
break
else
@@ -2260,11 +2321,11 @@ ac_main_return="return"
GCC_VERSION=none
if test "$GCC" = yes ; then
- echo "$as_me:2263: checking version of $CC" >&5
+ echo "$as_me:2324: checking version of $CC" >&5
echo $ECHO_N "checking version of $CC... $ECHO_C" >&6
- GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC[^)]*) //' -e 's/^.*(Debian[^)]*) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
+ GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^[^(]*([^)][^)]*) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
test -z "$GCC_VERSION" && GCC_VERSION=unknown
- echo "$as_me:2267: result: $GCC_VERSION" >&5
+ echo "$as_me:2328: result: $GCC_VERSION" >&5
echo "${ECHO_T}$GCC_VERSION" >&6
fi
@@ -2273,12 +2334,12 @@ INTEL_COMPILER=no
if test "$GCC" = yes ; then
case "$host_os" in
(linux*|gnu*)
- echo "$as_me:2276: checking if this is really Intel C compiler" >&5
+ echo "$as_me:2337: checking if this is really Intel C compiler" >&5
echo $ECHO_N "checking if this is really Intel C compiler... $ECHO_C" >&6
cf_save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -no-gcc"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 2281 "configure"
+#line 2342 "configure"
#include "confdefs.h"
int
@@ -2287,7 +2348,7 @@ main (void)
#ifdef __INTEL_COMPILER
#else
-make an error
+#error __INTEL_COMPILER is not defined
#endif
;
@@ -2295,16 +2356,16 @@ make an error
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:2298: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:2359: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:2301: \$? = $ac_status" >&5
+ echo "$as_me:2362: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:2304: \"$ac_try\"") >&5
+ { (eval echo "$as_me:2365: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:2307: \$? = $ac_status" >&5
+ echo "$as_me:2368: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
INTEL_COMPILER=yes
cf_save_CFLAGS="$cf_save_CFLAGS -we147"
@@ -2315,7 +2376,7 @@ cat "conftest.$ac_ext" >&5
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
CFLAGS="$cf_save_CFLAGS"
- echo "$as_me:2318: result: $INTEL_COMPILER" >&5
+ echo "$as_me:2379: result: $INTEL_COMPILER" >&5
echo "${ECHO_T}$INTEL_COMPILER" >&6
;;
esac
@@ -2324,11 +2385,11 @@ fi
CLANG_COMPILER=no
if test "$GCC" = yes ; then
- echo "$as_me:2327: checking if this is really Clang C compiler" >&5
+ echo "$as_me:2388: checking if this is really Clang C compiler" >&5
echo $ECHO_N "checking if this is really Clang C compiler... $ECHO_C" >&6
cf_save_CFLAGS="$CFLAGS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 2331 "configure"
+#line 2392 "configure"
#include "confdefs.h"
int
@@ -2337,7 +2398,7 @@ main (void)
#ifdef __clang__
#else
-make an error
+#error __clang__ is not defined
#endif
;
@@ -2345,16 +2406,16 @@ make an error
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:2348: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:2409: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:2351: \$? = $ac_status" >&5
+ echo "$as_me:2412: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:2354: \"$ac_try\"") >&5
+ { (eval echo "$as_me:2415: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:2357: \$? = $ac_status" >&5
+ echo "$as_me:2418: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
CLANG_COMPILER=yes
@@ -2364,7 +2425,7 @@ cat "conftest.$ac_ext" >&5
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
CFLAGS="$cf_save_CFLAGS"
- echo "$as_me:2367: result: $CLANG_COMPILER" >&5
+ echo "$as_me:2428: result: $CLANG_COMPILER" >&5
echo "${ECHO_T}$CLANG_COMPILER" >&6
fi
@@ -2373,30 +2434,30 @@ CLANG_VERSION=none
if test "x$CLANG_COMPILER" = "xyes" ; then
case "$CC" in
(c[1-9][0-9]|*/c[1-9][0-9])
- { echo "$as_me:2376: WARNING: replacing broken compiler alias $CC" >&5
+ { echo "$as_me:2437: WARNING: replacing broken compiler alias $CC" >&5
echo "$as_me: WARNING: replacing broken compiler alias $CC" >&2;}
CFLAGS="$CFLAGS -std=`echo "$CC" | sed -e 's%.*/%%'`"
CC=clang
;;
esac
- echo "$as_me:2383: checking version of $CC" >&5
+ echo "$as_me:2444: checking version of $CC" >&5
echo $ECHO_N "checking version of $CC... $ECHO_C" >&6
CLANG_VERSION="`$CC --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(CLANG[^)]*) //' -e 's/^.*(Debian[^)]*) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
test -z "$CLANG_VERSION" && CLANG_VERSION=unknown
- echo "$as_me:2387: result: $CLANG_VERSION" >&5
+ echo "$as_me:2448: result: $CLANG_VERSION" >&5
echo "${ECHO_T}$CLANG_VERSION" >&6
for cf_clang_opt in \
-Qunused-arguments \
-Wno-error=implicit-function-declaration
do
- echo "$as_me:2394: checking if option $cf_clang_opt works" >&5
+ echo "$as_me:2455: checking if option $cf_clang_opt works" >&5
echo $ECHO_N "checking if option $cf_clang_opt works... $ECHO_C" >&6
cf_save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $cf_clang_opt"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 2399 "configure"
+#line 2460 "configure"
#include "confdefs.h"
#include <stdio.h>
@@ -2410,16 +2471,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:2413: \"$ac_link\"") >&5
+if { (eval echo "$as_me:2474: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:2416: \$? = $ac_status" >&5
+ echo "$as_me:2477: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:2419: \"$ac_try\"") >&5
+ { (eval echo "$as_me:2480: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:2422: \$? = $ac_status" >&5
+ echo "$as_me:2483: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_clang_optok=yes
@@ -2430,13 +2491,13 @@ cat "conftest.$ac_ext" >&5
cf_clang_optok=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
- echo "$as_me:2433: result: $cf_clang_optok" >&5
+ echo "$as_me:2494: result: $cf_clang_optok" >&5
echo "${ECHO_T}$cf_clang_optok" >&6
CFLAGS="$cf_save_CFLAGS"
if test "$cf_clang_optok" = yes; then
test -n "$verbose" && echo " adding option $cf_clang_opt" 1>&6
-echo "${as_me:-configure}:2439: testing adding option $cf_clang_opt ..." 1>&5
+echo "${as_me:-configure}:2500: testing adding option $cf_clang_opt ..." 1>&5
test -n "$CFLAGS" && CFLAGS="$CFLAGS "
CFLAGS="${CFLAGS}$cf_clang_opt"
@@ -2445,7 +2506,7 @@ echo "${as_me:-configure}:2439: testing adding option $cf_clang_opt ..." 1>&5
done
fi
-echo "$as_me:2448: checking for $CC option to accept ANSI C" >&5
+echo "$as_me:2509: checking for $CC option to accept ANSI C" >&5
echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
if test "${ac_cv_prog_cc_stdc+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -2453,7 +2514,7 @@ else
ac_cv_prog_cc_stdc=no
ac_save_CC=$CC
cat >"conftest.$ac_ext" <<_ACEOF
-#line 2456 "configure"
+#line 2517 "configure"
#include "confdefs.h"
#include <stdarg.h>
#include <stdio.h>
@@ -2462,9 +2523,7 @@ cat >"conftest.$ac_ext" <<_ACEOF
/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
struct buf { int x; };
FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
- char **p;
- int i;
+static char *e (char **p, int i)
{
return p[i];
}
@@ -2502,16 +2561,16 @@ for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIO
do
CC="$ac_save_CC $ac_arg"
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:2505: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:2564: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:2508: \$? = $ac_status" >&5
+ echo "$as_me:2567: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:2511: \"$ac_try\"") >&5
+ { (eval echo "$as_me:2570: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:2514: \$? = $ac_status" >&5
+ echo "$as_me:2573: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_prog_cc_stdc=$ac_arg
break
@@ -2528,10 +2587,10 @@ fi
case "x$ac_cv_prog_cc_stdc" in
x|xno)
- echo "$as_me:2531: result: none needed" >&5
+ echo "$as_me:2590: result: none needed" >&5
echo "${ECHO_T}none needed" >&6 ;;
*)
- echo "$as_me:2534: result: $ac_cv_prog_cc_stdc" >&5
+ echo "$as_me:2593: result: $ac_cv_prog_cc_stdc" >&5
echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
CC="$CC $ac_cv_prog_cc_stdc" ;;
esac
@@ -2539,13 +2598,13 @@ esac
# This should have been defined by AC_PROG_CC
: "${CC:=cc}"
-echo "$as_me:2542: checking \$CFLAGS variable" >&5
+echo "$as_me:2601: checking \$CFLAGS variable" >&5
echo $ECHO_N "checking \$CFLAGS variable... $ECHO_C" >&6
case "x$CFLAGS" in
(*-[IUD]*)
- echo "$as_me:2546: result: broken" >&5
+ echo "$as_me:2605: result: broken" >&5
echo "${ECHO_T}broken" >&6
- { echo "$as_me:2548: WARNING: your environment uses the CFLAGS variable to hold CPPFLAGS options" >&5
+ { echo "$as_me:2607: WARNING: your environment uses the CFLAGS variable to hold CPPFLAGS options" >&5
echo "$as_me: WARNING: your environment uses the CFLAGS variable to hold CPPFLAGS options" >&2;}
cf_flags="$CFLAGS"
CFLAGS=
@@ -2653,22 +2712,22 @@ fi
done
;;
(*)
- echo "$as_me:2656: result: ok" >&5
+ echo "$as_me:2715: result: ok" >&5
echo "${ECHO_T}ok" >&6
;;
esac
-echo "$as_me:2661: checking \$CC variable" >&5
+echo "$as_me:2720: checking \$CC variable" >&5
echo $ECHO_N "checking \$CC variable... $ECHO_C" >&6
case "$CC" in
(*[\ \ ]-*)
- echo "$as_me:2665: result: broken" >&5
+ echo "$as_me:2724: result: broken" >&5
echo "${ECHO_T}broken" >&6
- { echo "$as_me:2667: WARNING: your environment uses the CC variable to hold CFLAGS/CPPFLAGS options" >&5
+ { echo "$as_me:2726: WARNING: your environment uses the CC variable to hold CFLAGS/CPPFLAGS options" >&5
echo "$as_me: WARNING: your environment uses the CC variable to hold CFLAGS/CPPFLAGS options" >&2;}
# humor him...
cf_prog=`echo "$CC" | sed -e 's/ / /g' -e 's/[ ]* / /g' -e 's/[ ]*[ ]-[^ ].*//'`
- cf_flags=`echo "$CC" | ${AWK:-awk} -v prog="$cf_prog" '{ printf("%s", substr($0,1+length(prog))); }'`
+ cf_flags=`echo "$CC" | sed -e "s%^$cf_prog%%"`
CC="$cf_prog"
for cf_arg in $cf_flags
do
@@ -2781,19 +2840,19 @@ fi
done
test -n "$verbose" && echo " resulting CC: '$CC'" 1>&6
-echo "${as_me:-configure}:2784: testing resulting CC: '$CC' ..." 1>&5
+echo "${as_me:-configure}:2843: testing resulting CC: '$CC' ..." 1>&5
test -n "$verbose" && echo " resulting CFLAGS: '$CFLAGS'" 1>&6
-echo "${as_me:-configure}:2788: testing resulting CFLAGS: '$CFLAGS' ..." 1>&5
+echo "${as_me:-configure}:2847: testing resulting CFLAGS: '$CFLAGS' ..." 1>&5
test -n "$verbose" && echo " resulting CPPFLAGS: '$CPPFLAGS'" 1>&6
-echo "${as_me:-configure}:2792: testing resulting CPPFLAGS: '$CPPFLAGS' ..." 1>&5
+echo "${as_me:-configure}:2851: testing resulting CPPFLAGS: '$CPPFLAGS' ..." 1>&5
;;
(*)
- echo "$as_me:2796: result: ok" >&5
+ echo "$as_me:2855: result: ok" >&5
echo "${ECHO_T}ok" >&6
;;
esac
@@ -2804,7 +2863,7 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS "conftest.$ac_ext" >&5'
ac_link='$CC -o "conftest$ac_exeext" $CFLAGS $CPPFLAGS $LDFLAGS "conftest.$ac_ext" $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
ac_main_return="return"
-echo "$as_me:2807: checking how to run the C preprocessor" >&5
+echo "$as_me:2866: checking how to run the C preprocessor" >&5
echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
@@ -2825,18 +2884,18 @@ do
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp. "Syntax error" is here to catch this case.
cat >"conftest.$ac_ext" <<_ACEOF
-#line 2828 "configure"
+#line 2887 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax error
_ACEOF
-if { (eval echo "$as_me:2833: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:2892: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:2839: \$? = $ac_status" >&5
+ echo "$as_me:2898: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -2859,17 +2918,17 @@ rm -f conftest.err "conftest.$ac_ext"
# OK, works on sane cases. Now check whether non-existent headers
# can be detected and how.
cat >"conftest.$ac_ext" <<_ACEOF
-#line 2862 "configure"
+#line 2921 "configure"
#include "confdefs.h"
#include <ac_nonexistent.h>
_ACEOF
-if { (eval echo "$as_me:2866: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:2925: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:2872: \$? = $ac_status" >&5
+ echo "$as_me:2931: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -2906,7 +2965,7 @@ fi
else
ac_cv_prog_CPP=$CPP
fi
-echo "$as_me:2909: result: $CPP" >&5
+echo "$as_me:2968: result: $CPP" >&5
echo "${ECHO_T}$CPP" >&6
ac_preproc_ok=false
for ac_c_preproc_warn_flag in '' yes
@@ -2916,18 +2975,18 @@ do
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp. "Syntax error" is here to catch this case.
cat >"conftest.$ac_ext" <<_ACEOF
-#line 2919 "configure"
+#line 2978 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax error
_ACEOF
-if { (eval echo "$as_me:2924: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:2983: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:2930: \$? = $ac_status" >&5
+ echo "$as_me:2989: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -2950,17 +3009,17 @@ rm -f conftest.err "conftest.$ac_ext"
# OK, works on sane cases. Now check whether non-existent headers
# can be detected and how.
cat >"conftest.$ac_ext" <<_ACEOF
-#line 2953 "configure"
+#line 3012 "configure"
#include "confdefs.h"
#include <ac_nonexistent.h>
_ACEOF
-if { (eval echo "$as_me:2957: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:3016: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:2963: \$? = $ac_status" >&5
+ echo "$as_me:3022: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -2988,7 +3047,7 @@ rm -f conftest.err "conftest.$ac_ext"
if $ac_preproc_ok; then
:
else
- { { echo "$as_me:2991: error: C preprocessor \"$CPP\" fails sanity check" >&5
+ { { echo "$as_me:3050: error: C preprocessor \"$CPP\" fails sanity check" >&5
echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -3001,14 +3060,14 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
ac_main_return="return"
if test $ac_cv_c_compiler_gnu = yes; then
- echo "$as_me:3004: checking whether $CC needs -traditional" >&5
+ echo "$as_me:3063: checking whether $CC needs -traditional" >&5
echo $ECHO_N "checking whether $CC needs -traditional... $ECHO_C" >&6
if test "${ac_cv_prog_gcc_traditional+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
ac_pattern="Autoconf.*'x'"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 3011 "configure"
+#line 3070 "configure"
#include "confdefs.h"
#include <sgtty.h>
int Autoconf = TIOCGETP;
@@ -3023,7 +3082,7 @@ rm -rf conftest*
if test $ac_cv_prog_gcc_traditional = no; then
cat >"conftest.$ac_ext" <<_ACEOF
-#line 3026 "configure"
+#line 3085 "configure"
#include "confdefs.h"
#include <termio.h>
int Autoconf = TCGETA;
@@ -3036,14 +3095,14 @@ rm -rf conftest*
fi
fi
-echo "$as_me:3039: result: $ac_cv_prog_gcc_traditional" >&5
+echo "$as_me:3098: result: $ac_cv_prog_gcc_traditional" >&5
echo "${ECHO_T}$ac_cv_prog_gcc_traditional" >&6
if test $ac_cv_prog_gcc_traditional = yes; then
CC="$CC -traditional"
fi
fi
-echo "$as_me:3046: checking whether $CC understands -c and -o together" >&5
+echo "$as_me:3105: checking whether $CC understands -c and -o together" >&5
echo $ECHO_N "checking whether $CC understands -c and -o together... $ECHO_C" >&6
if test "${cf_cv_prog_CC_c_o+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3058,15 +3117,15 @@ 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='$CC $CFLAGS $CPPFLAGS -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
-if { (eval echo "$as_me:3061: \"$ac_try\"") >&5
+if { (eval echo "$as_me:3120: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:3064: \$? = $ac_status" >&5
+ echo "$as_me:3123: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
- test -f conftest2.$ac_objext && { (eval echo "$as_me:3066: \"$ac_try\"") >&5
+ test -f conftest2.$ac_objext && { (eval echo "$as_me:3125: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:3069: \$? = $ac_status" >&5
+ echo "$as_me:3128: \$? = $ac_status" >&5
(exit "$ac_status"); };
then
eval cf_cv_prog_CC_c_o=yes
@@ -3077,10 +3136,10 @@ rm -rf ./conftest*
fi
if test "$cf_cv_prog_CC_c_o" = yes; then
- echo "$as_me:3080: result: yes" >&5
+ echo "$as_me:3139: result: yes" >&5
echo "${ECHO_T}yes" >&6
else
- echo "$as_me:3083: result: no" >&5
+ echo "$as_me:3142: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -3094,7 +3153,7 @@ else
(*) LDPATH=$PATH:/sbin:/usr/sbin
# Extract the first word of "ldconfig", so it can be a program name with args.
set dummy ldconfig; ac_word=$2
-echo "$as_me:3097: checking for $ac_word" >&5
+echo "$as_me:3156: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_path_LDCONFIG+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3111,7 +3170,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
if $as_executable_p "$ac_dir/$ac_word"; then
ac_cv_path_LDCONFIG="$ac_dir/$ac_word"
- echo "$as_me:3114: found $ac_dir/$ac_word" >&5
+ echo "$as_me:3173: found $ac_dir/$ac_word" >&5
break
fi
done
@@ -3122,10 +3181,10 @@ fi
LDCONFIG=$ac_cv_path_LDCONFIG
if test -n "$LDCONFIG"; then
- echo "$as_me:3125: result: $LDCONFIG" >&5
+ echo "$as_me:3184: result: $LDCONFIG" >&5
echo "${ECHO_T}$LDCONFIG" >&6
else
- echo "$as_me:3128: result: no" >&5
+ echo "$as_me:3187: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -3133,7 +3192,7 @@ fi
esac
fi
-echo "$as_me:3136: checking if you want to ensure bool is consistent with C++" >&5
+echo "$as_me:3195: checking if you want to ensure bool is consistent with C++" >&5
echo $ECHO_N "checking if you want to ensure bool is consistent with C++... $ECHO_C" >&6
# Check whether --with-cxx or --without-cxx was given.
@@ -3143,7 +3202,7 @@ if test "${with_cxx+set}" = set; then
else
cf_with_cxx=yes
fi;
-echo "$as_me:3146: result: $cf_with_cxx" >&5
+echo "$as_me:3205: result: $cf_with_cxx" >&5
echo "${ECHO_T}$cf_with_cxx" >&6
if test "X$cf_with_cxx" = Xno ; then
CXX=""
@@ -3161,7 +3220,7 @@ if test -n "$ac_tool_prefix"; then
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-echo "$as_me:3164: checking for $ac_word" >&5
+echo "$as_me:3223: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_CXX+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3176,7 +3235,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
-echo "$as_me:3179: found $ac_dir/$ac_word" >&5
+echo "$as_me:3238: found $ac_dir/$ac_word" >&5
break
done
@@ -3184,10 +3243,10 @@ fi
fi
CXX=$ac_cv_prog_CXX
if test -n "$CXX"; then
- echo "$as_me:3187: result: $CXX" >&5
+ echo "$as_me:3246: result: $CXX" >&5
echo "${ECHO_T}$CXX" >&6
else
- echo "$as_me:3190: result: no" >&5
+ echo "$as_me:3249: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -3200,7 +3259,7 @@ if test -z "$CXX"; then
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-echo "$as_me:3203: checking for $ac_word" >&5
+echo "$as_me:3262: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3215,7 +3274,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_ac_ct_CXX="$ac_prog"
-echo "$as_me:3218: found $ac_dir/$ac_word" >&5
+echo "$as_me:3277: found $ac_dir/$ac_word" >&5
break
done
@@ -3223,10 +3282,10 @@ fi
fi
ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
if test -n "$ac_ct_CXX"; then
- echo "$as_me:3226: result: $ac_ct_CXX" >&5
+ echo "$as_me:3285: result: $ac_ct_CXX" >&5
echo "${ECHO_T}$ac_ct_CXX" >&6
else
- echo "$as_me:3229: result: no" >&5
+ echo "$as_me:3288: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -3238,32 +3297,32 @@ test -n "$ac_ct_CXX" || ac_ct_CXX="g++"
fi
# Provide some information about the compiler.
-echo "$as_me:3241:" \
+echo "$as_me:3300:" \
"checking for C++ compiler version" >&5
ac_compiler=`set X $ac_compile; echo $2`
-{ (eval echo "$as_me:3244: \"$ac_compiler --version </dev/null >&5\"") >&5
+{ (eval echo "$as_me:3303: \"$ac_compiler --version </dev/null >&5\"") >&5
(eval $ac_compiler --version </dev/null >&5) 2>&5
ac_status=$?
- echo "$as_me:3247: \$? = $ac_status" >&5
+ echo "$as_me:3306: \$? = $ac_status" >&5
(exit "$ac_status"); }
-{ (eval echo "$as_me:3249: \"$ac_compiler -v </dev/null >&5\"") >&5
+{ (eval echo "$as_me:3308: \"$ac_compiler -v </dev/null >&5\"") >&5
(eval $ac_compiler -v </dev/null >&5) 2>&5
ac_status=$?
- echo "$as_me:3252: \$? = $ac_status" >&5
+ echo "$as_me:3311: \$? = $ac_status" >&5
(exit "$ac_status"); }
-{ (eval echo "$as_me:3254: \"$ac_compiler -V </dev/null >&5\"") >&5
+{ (eval echo "$as_me:3313: \"$ac_compiler -V </dev/null >&5\"") >&5
(eval $ac_compiler -V </dev/null >&5) 2>&5
ac_status=$?
- echo "$as_me:3257: \$? = $ac_status" >&5
+ echo "$as_me:3316: \$? = $ac_status" >&5
(exit "$ac_status"); }
-echo "$as_me:3260: checking whether we are using the GNU C++ compiler" >&5
+echo "$as_me:3319: checking whether we are using the GNU C++ compiler" >&5
echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6
if test "${ac_cv_cxx_compiler_gnu+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 3266 "configure"
+#line 3325 "configure"
#include "confdefs.h"
int
@@ -3278,16 +3337,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:3281: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:3340: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:3284: \$? = $ac_status" >&5
+ echo "$as_me:3343: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:3287: \"$ac_try\"") >&5
+ { (eval echo "$as_me:3346: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:3290: \$? = $ac_status" >&5
+ echo "$as_me:3349: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_compiler_gnu=yes
else
@@ -3299,19 +3358,19 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
fi
-echo "$as_me:3302: result: $ac_cv_cxx_compiler_gnu" >&5
+echo "$as_me:3361: result: $ac_cv_cxx_compiler_gnu" >&5
echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6
GXX=`test $ac_compiler_gnu = yes && echo yes`
ac_test_CXXFLAGS=${CXXFLAGS+set}
ac_save_CXXFLAGS=$CXXFLAGS
CXXFLAGS="-g"
-echo "$as_me:3308: checking whether $CXX accepts -g" >&5
+echo "$as_me:3367: checking whether $CXX accepts -g" >&5
echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6
if test "${ac_cv_prog_cxx_g+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 3314 "configure"
+#line 3373 "configure"
#include "confdefs.h"
int
@@ -3323,16 +3382,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:3326: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:3385: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:3329: \$? = $ac_status" >&5
+ echo "$as_me:3388: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:3332: \"$ac_try\"") >&5
+ { (eval echo "$as_me:3391: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:3335: \$? = $ac_status" >&5
+ echo "$as_me:3394: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_prog_cxx_g=yes
else
@@ -3342,7 +3401,7 @@ ac_cv_prog_cxx_g=no
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:3345: result: $ac_cv_prog_cxx_g" >&5
+echo "$as_me:3404: result: $ac_cv_prog_cxx_g" >&5
echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6
if test "$ac_test_CXXFLAGS" = set; then
CXXFLAGS=$ac_save_CXXFLAGS
@@ -3369,7 +3428,7 @@ for ac_declaration in \
'void exit (int);'
do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 3372 "configure"
+#line 3431 "configure"
#include "confdefs.h"
#include <stdlib.h>
$ac_declaration
@@ -3382,16 +3441,16 @@ exit (42);
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:3385: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:3444: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:3388: \$? = $ac_status" >&5
+ echo "$as_me:3447: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:3391: \"$ac_try\"") >&5
+ { (eval echo "$as_me:3450: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:3394: \$? = $ac_status" >&5
+ echo "$as_me:3453: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
:
else
@@ -3401,7 +3460,7 @@ continue
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 3404 "configure"
+#line 3463 "configure"
#include "confdefs.h"
$ac_declaration
int
@@ -3413,16 +3472,16 @@ exit (42);
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:3416: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:3475: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:3419: \$? = $ac_status" >&5
+ echo "$as_me:3478: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:3422: \"$ac_try\"") >&5
+ { (eval echo "$as_me:3481: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:3425: \$? = $ac_status" >&5
+ echo "$as_me:3484: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
break
else
@@ -3456,7 +3515,7 @@ ac_main_return="return"
then
# Several of the C++ configurations do not work, particularly when
# cross-compiling (20140913 -TD)
- echo "$as_me:3459: checking if $CXX works" >&5
+ echo "$as_me:3518: checking if $CXX works" >&5
echo $ECHO_N "checking if $CXX works... $ECHO_C" >&6
save_CPPFLAGS="$CPPFLAGS"
@@ -3464,7 +3523,7 @@ echo $ECHO_N "checking if $CXX works... $ECHO_C" >&6
CPPFLAGS="$CPPFLAGS -I${cf_includedir}"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 3467 "configure"
+#line 3526 "configure"
#include "confdefs.h"
#include <stdlib.h>
@@ -3481,16 +3540,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:3484: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:3543: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:3487: \$? = $ac_status" >&5
+ echo "$as_me:3546: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:3490: \"$ac_try\"") >&5
+ { (eval echo "$as_me:3549: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:3493: \$? = $ac_status" >&5
+ echo "$as_me:3552: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cxx_works=yes
else
@@ -3501,11 +3560,11 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
CPPFLAGS="$save_CPPFLAGS"
- echo "$as_me:3504: result: $cf_cxx_works" >&5
+ echo "$as_me:3563: result: $cf_cxx_works" >&5
echo "${ECHO_T}$cf_cxx_works" >&6
if test "x$cf_cxx_works" = xno
then
- { echo "$as_me:3508: WARNING: Ignore $CXX, since it cannot compile hello-world." >&5
+ { echo "$as_me:3567: WARNING: Ignore $CXX, since it cannot compile hello-world." >&5
echo "$as_me: WARNING: Ignore $CXX, since it cannot compile hello-world." >&2;}
cf_with_cxx=no; CXX=""; GXX="";
fi
@@ -3521,7 +3580,7 @@ ac_main_return="return"
if test "$CXX" = "g++" ; then
# Extract the first word of "g++", so it can be a program name with args.
set dummy g++; ac_word=$2
-echo "$as_me:3524: checking for $ac_word" >&5
+echo "$as_me:3583: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_path_CXX+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3538,7 +3597,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
if $as_executable_p "$ac_dir/$ac_word"; then
ac_cv_path_CXX="$ac_dir/$ac_word"
- echo "$as_me:3541: found $ac_dir/$ac_word" >&5
+ echo "$as_me:3600: found $ac_dir/$ac_word" >&5
break
fi
done
@@ -3549,17 +3608,17 @@ fi
CXX=$ac_cv_path_CXX
if test -n "$CXX"; then
- echo "$as_me:3552: result: $CXX" >&5
+ echo "$as_me:3611: result: $CXX" >&5
echo "${ECHO_T}$CXX" >&6
else
- echo "$as_me:3555: result: no" >&5
+ echo "$as_me:3614: result: no" >&5
echo "${ECHO_T}no" >&6
fi
fi
case "x$CXX" in
(x|xg++)
- { echo "$as_me:3562: WARNING: You don't have any C++ compiler, too bad" >&5
+ { echo "$as_me:3621: WARNING: You don't have any C++ compiler, too bad" >&5
echo "$as_me: WARNING: You don't have any C++ compiler, too bad" >&2;}
cf_with_cxx=no; CXX=""; GXX="";
;;
@@ -3568,15 +3627,15 @@ fi
GXX_VERSION=none
if test "$GXX" = yes; then
- echo "$as_me:3571: checking version of ${CXX:-g++}" >&5
+ echo "$as_me:3630: checking version of ${CXX:-g++}" >&5
echo $ECHO_N "checking version of ${CXX:-g++}... $ECHO_C" >&6
- GXX_VERSION="`${CXX:-g++} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
+ GXX_VERSION="`${CXX:-g++} --version 2>/dev/null | sed -e '2,$d' -e 's/^[^(]*([^)][^)]*) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
if test -z "$GXX_VERSION"
then
GXX_VERSION=unknown
GXX=no
fi
- echo "$as_me:3579: result: $GXX_VERSION" >&5
+ echo "$as_me:3638: result: $GXX_VERSION" >&5
echo "${ECHO_T}$GXX_VERSION" >&6
fi
@@ -3584,12 +3643,12 @@ case "$GXX_VERSION" in
([1-9][0-9].*)
;;
(1.*|2.[0-6]*)
- { echo "$as_me:3587: WARNING: templates do not work" >&5
+ { echo "$as_me:3646: WARNING: templates do not work" >&5
echo "$as_me: WARNING: templates do not work" >&2;}
;;
esac
-echo "$as_me:3592: checking if you want to build C++ binding and demo" >&5
+echo "$as_me:3651: checking if you want to build C++ binding and demo" >&5
echo $ECHO_N "checking if you want to build C++ binding and demo... $ECHO_C" >&6
# Check whether --with-cxx-binding or --without-cxx-binding was given.
@@ -3599,15 +3658,15 @@ if test "${with_cxx_binding+set}" = set; then
else
cf_with_cxx_binding=$cf_with_cxx
fi;
-echo "$as_me:3602: result: $cf_with_cxx_binding" >&5
+echo "$as_me:3661: result: $cf_with_cxx_binding" >&5
echo "${ECHO_T}$cf_with_cxx_binding" >&6
-echo "$as_me:3605: checking if you want to build with Ada" >&5
+echo "$as_me:3664: checking if you want to build with Ada" >&5
echo $ECHO_N "checking if you want to build with Ada... $ECHO_C" >&6
-echo "$as_me:3607: result: $cf_with_ada" >&5
+echo "$as_me:3666: result: $cf_with_ada" >&5
echo "${ECHO_T}$cf_with_ada" >&6
-echo "$as_me:3610: checking if you want to install terminal database" >&5
+echo "$as_me:3669: checking if you want to install terminal database" >&5
echo $ECHO_N "checking if you want to install terminal database... $ECHO_C" >&6
# Check whether --enable-db-install or --disable-db-install was given.
@@ -3617,10 +3676,10 @@ if test "${enable_db_install+set}" = set; then
else
cf_with_db_install=yes
fi;
-echo "$as_me:3620: result: $cf_with_db_install" >&5
+echo "$as_me:3679: result: $cf_with_db_install" >&5
echo "${ECHO_T}$cf_with_db_install" >&6
-echo "$as_me:3623: checking if you want to install manpages" >&5
+echo "$as_me:3682: checking if you want to install manpages" >&5
echo $ECHO_N "checking if you want to install manpages... $ECHO_C" >&6
# Check whether --with-manpages or --without-manpages was given.
@@ -3630,10 +3689,10 @@ if test "${with_manpages+set}" = set; then
else
cf_with_manpages=yes
fi;
-echo "$as_me:3633: result: $cf_with_manpages" >&5
+echo "$as_me:3692: result: $cf_with_manpages" >&5
echo "${ECHO_T}$cf_with_manpages" >&6
-echo "$as_me:3636: checking if you want to build programs such as tic" >&5
+echo "$as_me:3695: checking if you want to build programs such as tic" >&5
echo $ECHO_N "checking if you want to build programs such as tic... $ECHO_C" >&6
# Check whether --with-progs or --without-progs was given.
@@ -3643,35 +3702,10 @@ if test "${with_progs+set}" = set; then
else
cf_with_progs=yes
fi;
-echo "$as_me:3646: result: $cf_with_progs" >&5
+echo "$as_me:3705: result: $cf_with_progs" >&5
echo "${ECHO_T}$cf_with_progs" >&6
-if test -f "$srcdir/tack/tack.h" ; then
- if test "x$cross_compiling" = xyes ; then
- test -n "$verbose" && echo " ignoring tack because we are cross-compiling" 1>&6
-
-echo "${as_me:-configure}:3653: testing ignoring tack because we are cross-compiling ..." 1>&5
-
- cf_with_tack=no
- else
- echo "$as_me:3657: checking if you want to build the tack program" >&5
-echo $ECHO_N "checking if you want to build the tack program... $ECHO_C" >&6
-
-# Check whether --with-tack or --without-tack was given.
-if test "${with_tack+set}" = set; then
- withval="$with_tack"
- cf_with_tack=$withval
-else
- cf_with_tack=$cf_with_progs
-fi;
- echo "$as_me:3667: result: $cf_with_tack" >&5
-echo "${ECHO_T}$cf_with_tack" >&6
- fi
-else
- cf_with_tack=no
-fi
-
-echo "$as_me:3674: checking if you want to build test-programs" >&5
+echo "$as_me:3708: checking if you want to build test-programs" >&5
echo $ECHO_N "checking if you want to build test-programs... $ECHO_C" >&6
# Check whether --with-tests or --without-tests was given.
@@ -3681,10 +3715,10 @@ if test "${with_tests+set}" = set; then
else
cf_with_tests=yes
fi;
-echo "$as_me:3684: result: $cf_with_tests" >&5
+echo "$as_me:3718: result: $cf_with_tests" >&5
echo "${ECHO_T}$cf_with_tests" >&6
-echo "$as_me:3687: checking if you wish to install curses.h" >&5
+echo "$as_me:3721: checking if you wish to install curses.h" >&5
echo $ECHO_N "checking if you wish to install curses.h... $ECHO_C" >&6
# Check whether --with-curses-h or --without-curses-h was given.
@@ -3694,12 +3728,11 @@ if test "${with_curses_h+set}" = set; then
else
with_curses_h=yes
fi;
-echo "$as_me:3697: result: $with_curses_h" >&5
+echo "$as_me:3731: result: $with_curses_h" >&5
echo "${ECHO_T}$with_curses_h" >&6
modules_to_build="ncurses"
test "X$cf_with_progs" != Xno && modules_to_build="$modules_to_build progs"
-test "X$cf_with_tack" != Xno && modules_to_build="$modules_to_build tack"
modules_to_build="$modules_to_build panel menu form"
test "$program_prefix" != NONE &&
@@ -3719,7 +3752,7 @@ for ac_prog in mawk gawk nawk awk
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-echo "$as_me:3722: checking for $ac_word" >&5
+echo "$as_me:3755: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_AWK+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3734,7 +3767,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_AWK="$ac_prog"
-echo "$as_me:3737: found $ac_dir/$ac_word" >&5
+echo "$as_me:3770: found $ac_dir/$ac_word" >&5
break
done
@@ -3742,17 +3775,17 @@ fi
fi
AWK=$ac_cv_prog_AWK
if test -n "$AWK"; then
- echo "$as_me:3745: result: $AWK" >&5
+ echo "$as_me:3778: result: $AWK" >&5
echo "${ECHO_T}$AWK" >&6
else
- echo "$as_me:3748: result: no" >&5
+ echo "$as_me:3781: result: no" >&5
echo "${ECHO_T}no" >&6
fi
test -n "$AWK" && break
done
-test -z "$AWK" && { { echo "$as_me:3755: error: No awk program found" >&5
+test -z "$AWK" && { { echo "$as_me:3788: error: No awk program found" >&5
echo "$as_me: error: No awk program found" >&2;}
{ (exit 1); exit 1; }; }
@@ -3768,7 +3801,7 @@ echo "$as_me: error: No awk program found" >&2;}
# AFS /usr/afsws/bin/install, which mishandles nonexistent args
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
# ./install, which can be erroneously created by make from ./install.sh.
-echo "$as_me:3771: checking for a BSD compatible install" >&5
+echo "$as_me:3804: checking for a BSD compatible install" >&5
echo $ECHO_N "checking for a BSD compatible install... $ECHO_C" >&6
if test -z "$INSTALL"; then
if test "${ac_cv_path_install+set}" = set; then
@@ -3817,7 +3850,7 @@ fi
INSTALL=$ac_install_sh
fi
fi
-echo "$as_me:3820: result: $INSTALL" >&5
+echo "$as_me:3853: result: $INSTALL" >&5
echo "${ECHO_T}$INSTALL" >&6
# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
@@ -3842,7 +3875,7 @@ for ac_prog in lint cppcheck splint
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-echo "$as_me:3845: checking for $ac_word" >&5
+echo "$as_me:3878: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_LINT+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3857,7 +3890,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_LINT="$ac_prog"
-echo "$as_me:3860: found $ac_dir/$ac_word" >&5
+echo "$as_me:3893: found $ac_dir/$ac_word" >&5
break
done
@@ -3865,10 +3898,10 @@ fi
fi
LINT=$ac_cv_prog_LINT
if test -n "$LINT"; then
- echo "$as_me:3868: result: $LINT" >&5
+ echo "$as_me:3901: result: $LINT" >&5
echo "${ECHO_T}$LINT" >&6
else
- echo "$as_me:3871: result: no" >&5
+ echo "$as_me:3904: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -3881,18 +3914,18 @@ case "x$LINT" in
;;
esac
-echo "$as_me:3884: checking whether ln -s works" >&5
+echo "$as_me:3917: checking whether ln -s works" >&5
echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6
LN_S=$as_ln_s
if test "$LN_S" = "ln -s"; then
- echo "$as_me:3888: result: yes" >&5
+ echo "$as_me:3921: result: yes" >&5
echo "${ECHO_T}yes" >&6
else
- echo "$as_me:3891: result: no, using $LN_S" >&5
+ echo "$as_me:3924: result: no, using $LN_S" >&5
echo "${ECHO_T}no, using $LN_S" >&6
fi
-echo "$as_me:3895: checking if $LN_S -f options work" >&5
+echo "$as_me:3928: checking if $LN_S -f options work" >&5
echo $ECHO_N "checking if $LN_S -f options work... $ECHO_C" >&6
rm -f conf$$.src conf$$dst
@@ -3904,12 +3937,12 @@ else
cf_prog_ln_sf=no
fi
rm -f conf$$.dst conf$$src
-echo "$as_me:3907: result: $cf_prog_ln_sf" >&5
+echo "$as_me:3940: result: $cf_prog_ln_sf" >&5
echo "${ECHO_T}$cf_prog_ln_sf" >&6
test "$cf_prog_ln_sf" = yes && LN_S="$LN_S -f"
-echo "$as_me:3912: checking for long file names" >&5
+echo "$as_me:3945: checking for long file names" >&5
echo $ECHO_N "checking for long file names... $ECHO_C" >&6
if test "${ac_cv_sys_long_file_names+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3948,7 +3981,7 @@ for ac_dir in . $ac_tmpdirs `eval echo "$prefix/lib" "$exec_prefix/lib"` ; do
rm -rf "$ac_xdir" 2>/dev/null
done
fi
-echo "$as_me:3951: result: $ac_cv_sys_long_file_names" >&5
+echo "$as_me:3984: result: $ac_cv_sys_long_file_names" >&5
echo "${ECHO_T}$ac_cv_sys_long_file_names" >&6
if test "$ac_cv_sys_long_file_names" = yes; then
@@ -3967,7 +4000,7 @@ if test "${with_config_suffix+set}" = set; then
withval="$with_config_suffix"
case "x$withval" in
(xyes|xno)
- { echo "$as_me:3970: WARNING: expected a value for config-suffix option" >&5
+ { echo "$as_me:4003: WARNING: expected a value for config-suffix option" >&5
echo "$as_me: WARNING: expected a value for config-suffix option" >&2;}
;;
(*) cf_config_suffix="$withval"
@@ -3977,7 +4010,7 @@ fi;
# If we find pkg-config, check if we should install the ".pc" files.
-echo "$as_me:3980: checking if you want to use pkg-config" >&5
+echo "$as_me:4013: checking if you want to use pkg-config" >&5
echo $ECHO_N "checking if you want to use pkg-config... $ECHO_C" >&6
# Check whether --with-pkg-config or --without-pkg-config was given.
@@ -3987,7 +4020,7 @@ if test "${with_pkg_config+set}" = set; then
else
cf_pkg_config=yes
fi;
-echo "$as_me:3990: result: $cf_pkg_config" >&5
+echo "$as_me:4023: result: $cf_pkg_config" >&5
echo "${ECHO_T}$cf_pkg_config" >&6
case "$cf_pkg_config" in
@@ -3999,7 +4032,7 @@ case "$cf_pkg_config" in
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
-echo "$as_me:4002: checking for $ac_word" >&5
+echo "$as_me:4035: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -4016,7 +4049,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
if $as_executable_p "$ac_dir/$ac_word"; then
ac_cv_path_PKG_CONFIG="$ac_dir/$ac_word"
- echo "$as_me:4019: found $ac_dir/$ac_word" >&5
+ echo "$as_me:4052: found $ac_dir/$ac_word" >&5
break
fi
done
@@ -4027,10 +4060,10 @@ fi
PKG_CONFIG=$ac_cv_path_PKG_CONFIG
if test -n "$PKG_CONFIG"; then
- echo "$as_me:4030: result: $PKG_CONFIG" >&5
+ echo "$as_me:4063: result: $PKG_CONFIG" >&5
echo "${ECHO_T}$PKG_CONFIG" >&6
else
- echo "$as_me:4033: result: no" >&5
+ echo "$as_me:4066: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -4039,7 +4072,7 @@ if test -z "$ac_cv_path_PKG_CONFIG"; then
ac_pt_PKG_CONFIG=$PKG_CONFIG
# Extract the first word of "pkg-config", so it can be a program name with args.
set dummy pkg-config; ac_word=$2
-echo "$as_me:4042: checking for $ac_word" >&5
+echo "$as_me:4075: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -4056,7 +4089,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
if $as_executable_p "$ac_dir/$ac_word"; then
ac_cv_path_ac_pt_PKG_CONFIG="$ac_dir/$ac_word"
- echo "$as_me:4059: found $ac_dir/$ac_word" >&5
+ echo "$as_me:4092: found $ac_dir/$ac_word" >&5
break
fi
done
@@ -4068,10 +4101,10 @@ fi
ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
if test -n "$ac_pt_PKG_CONFIG"; then
- echo "$as_me:4071: result: $ac_pt_PKG_CONFIG" >&5
+ echo "$as_me:4104: result: $ac_pt_PKG_CONFIG" >&5
echo "${ECHO_T}$ac_pt_PKG_CONFIG" >&6
else
- echo "$as_me:4074: result: no" >&5
+ echo "$as_me:4107: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -4114,110 +4147,164 @@ case ".$PKG_CONFIG" in
PKG_CONFIG=`echo "$PKG_CONFIG" | sed -e s%NONE%$cf_path_syntax%`
;;
(*)
- { { echo "$as_me:4117: error: expected a pathname, not \"$PKG_CONFIG\"" >&5
+ { { echo "$as_me:4150: error: expected a pathname, not \"$PKG_CONFIG\"" >&5
echo "$as_me: error: expected a pathname, not \"$PKG_CONFIG\"" >&2;}
{ (exit 1); exit 1; }; }
;;
esac
elif test "x$cf_pkg_config" != xno ; then
- { echo "$as_me:4124: WARNING: pkg-config is not installed" >&5
+ { echo "$as_me:4157: WARNING: pkg-config is not installed" >&5
echo "$as_me: WARNING: pkg-config is not installed" >&2;}
fi
case "$PKG_CONFIG" in
(no|none|yes)
- echo "$as_me:4130: checking for pkg-config library directory" >&5
+ echo "$as_me:4163: checking for pkg-config library directory" >&5
echo $ECHO_N "checking for pkg-config library directory... $ECHO_C" >&6
;;
(*)
- echo "$as_me:4134: checking for $PKG_CONFIG library directory" >&5
+ echo "$as_me:4167: checking for $PKG_CONFIG library directory" >&5
echo $ECHO_N "checking for $PKG_CONFIG library directory... $ECHO_C" >&6
;;
esac
-PKG_CONFIG_LIBDIR=no
+# if $PKG_CONFIG_LIBDIR is set, try to use that
+if test -n "$PKG_CONFIG_PATH"; then
+ cf_search_path=`echo "$PKG_CONFIG_PATH" | sed -e 's/:/ /g' -e 's,^[ ]*,,' -e 's,[ ]*$,,'`
+elif test -n "$PKG_CONFIG_LIBDIR"; then
+ cf_search_path=`echo "$PKG_CONFIG_LIBDIR" | sed -e 's/:/ /g' -e 's,^[ ]*,,' -e 's,[ ]*$,,'`
+else
+ cf_search_path=auto
+fi
+
+# if the option is used, let that override. otherwise default to "libdir"
# Check whether --with-pkg-config-libdir or --without-pkg-config-libdir was given.
if test "${with_pkg_config_libdir+set}" = set; then
withval="$with_pkg_config_libdir"
- PKG_CONFIG_LIBDIR=$withval
+ cf_search_path=$withval
else
- test "x$PKG_CONFIG" != xnone && PKG_CONFIG_LIBDIR=yes
+ test "x$PKG_CONFIG" != xnone && test -z "$cf_search_path" && cf_search_path=libdir
fi;
-case x$PKG_CONFIG_LIBDIR in
+case "x$cf_search_path" in
+(xlibdir)
+ PKG_CONFIG_LIBDIR='${libdir}/pkgconfig'
+ echo "$as_me:4194: result: $PKG_CONFIG_LIBDIR" >&5
+echo "${ECHO_T}$PKG_CONFIG_LIBDIR" >&6
+ cf_search_path=
+ ;;
+(x)
+ ;;
+(x/*\ *)
+ PKG_CONFIG_LIBDIR=
+ ;;
(x/*)
+ PKG_CONFIG_LIBDIR="$cf_search_path"
+ echo "$as_me:4205: result: $PKG_CONFIG_LIBDIR" >&5
+echo "${ECHO_T}$PKG_CONFIG_LIBDIR" >&6
+ cf_search_path=
;;
-(xyes)
+(xyes|xauto)
+ echo "$as_me:4210: result: auto" >&5
+echo "${ECHO_T}auto" >&6
+ cf_search_path=
# Look for the library directory using the same prefix as the executable
- if test "x$PKG_CONFIG" = xnone
+ echo "$as_me:4214: checking for search-list" >&5
+echo $ECHO_N "checking for search-list... $ECHO_C" >&6
+ if test "x$PKG_CONFIG" != xnone
then
- cf_path=$prefix
- else
- cf_path=`echo "$PKG_CONFIG" | sed -e 's,/[^/]*/[^/]*$,,'`
- fi
-
- # If you don't like using the default architecture, you have to specify the
- # intended library directory and corresponding compiler/linker options.
- #
- # This case allows for Debian's 2014-flavor of multiarch, along with the
- # most common variations before that point. Some other variants spell the
- # directory differently, e.g., "pkg-config", and put it in unusual places.
- # pkg-config has always been poorly standardized, which is ironic...
- case x`(arch) 2>/dev/null` in
- (*64)
- cf_search_path="\
- $cf_path/lib/*64-linux-gnu \
- $cf_path/share \
- $cf_path/lib64 \
- $cf_path/lib32 \
- $cf_path/lib"
- ;;
- (*)
- cf_search_path="\
- $cf_path/lib/*-linux-gnu \
- $cf_path/share \
- $cf_path/lib32 \
- $cf_path/lib \
- $cf_path/libdata"
- ;;
- esac
+ # works for pkg-config since version 0.24 (2009)
+ # works for pkgconf since version 0.8.3 (2012)
+ for cf_pkg_program in \
+ `echo "$PKG_CONFIG" | sed -e 's,^.*/,,'` \
+ pkg-config \
+ pkgconf
+ do
+ cf_search_path=`"$PKG_CONFIG" --variable=pc_path "$cf_pkg_program" 2>/dev/null | tr : ' '`
+ test -n "$cf_search_path" && break
+ done
- test -n "$verbose" && echo " list..." 1>&6
+ # works for pkg-config since import in 2005 of original 2001 HP code.
+ test -z "$cf_search_path" && \
+ cf_search_path=`
+ "$PKG_CONFIG" --debug --exists no-such-package 2>&1 | $AWK "\
+/^Scanning directory (#[1-9][0-9]* )?'.*'$/{ \
+ sub(\"^[^']*'\",\"\"); \
+ sub(\"'.*\",\"\"); \
+ printf \" %s\", \\$0; } \
+{ next; } \
+"`
+ fi
-echo "${as_me:-configure}:4189: testing list... ..." 1>&5
+ echo "$as_me:4241: result: $cf_search_path" >&5
+echo "${ECHO_T}$cf_search_path" >&6
+ ;;
+(*)
+ { { echo "$as_me:4245: error: Unexpected option value: $cf_search_path" >&5
+echo "$as_me: error: Unexpected option value: $cf_search_path" >&2;}
+ { (exit 1); exit 1; }; }
+ ;;
+esac
+if test -n "$cf_search_path"
+then
+ echo "$as_me:4253: checking for first directory" >&5
+echo $ECHO_N "checking for first directory... $ECHO_C" >&6
+ cf_pkg_config_path=none
for cf_config in $cf_search_path
do
- test -n "$verbose" && echo " checking $cf_config/pkgconfig" 1>&6
-
-echo "${as_me:-configure}:4195: testing checking $cf_config/pkgconfig ..." 1>&5
-
- if test -d "$cf_config/pkgconfig"
+ if test -d "$cf_config"
then
- PKG_CONFIG_LIBDIR=$cf_config/pkgconfig
- echo "$as_me:4200: checking done" >&5
-echo $ECHO_N "checking done... $ECHO_C" >&6
+ cf_pkg_config_path=$cf_config
break
fi
done
- ;;
-(*)
- ;;
-esac
+ echo "$as_me:4264: result: $cf_pkg_config_path" >&5
+echo "${ECHO_T}$cf_pkg_config_path" >&6
+
+ if test "x$cf_pkg_config_path" != xnone ; then
+ # limit this to the first directory found
+ PKG_CONFIG_LIBDIR="$cf_pkg_config_path"
+ fi
-if test "x$PKG_CONFIG_LIBDIR" != xno ; then
- echo "$as_me:4211: result: $PKG_CONFIG_LIBDIR" >&5
+ if test -z "$PKG_CONFIG_LIBDIR" && test -n "$cf_search_path"
+ then
+ echo "$as_me:4274: checking for workaround" >&5
+echo $ECHO_N "checking for workaround... $ECHO_C" >&6
+ if test "$prefix" = "NONE" ; then
+ cf_prefix="$ac_default_prefix"
+ else
+ cf_prefix="$prefix"
+ fi
+ eval cf_libdir=$libdir
+ cf_libdir=`echo "$cf_libdir" | sed -e "s,^NONE,$cf_prefix,"`
+ cf_backup=
+ for cf_config in $cf_search_path
+ do
+ case $cf_config in
+ $cf_libdir/pkgconfig)
+ PKG_CONFIG_LIBDIR=$cf_libdir/pkgconfig
+ break
+ ;;
+ *)
+ test -z "$cf_backup" && cf_backup=$cf_config
+ ;;
+ esac
+ done
+ test -z "$PKG_CONFIG_LIBDIR" && PKG_CONFIG_LIBDIR=$cf_backup
+ echo "$as_me:4297: result: $PKG_CONFIG_LIBDIR" >&5
echo "${ECHO_T}$PKG_CONFIG_LIBDIR" >&6
+ fi
fi
if test "x$PKG_CONFIG" != xnone
then
- echo "$as_me:4217: checking if we should install .pc files for $PKG_CONFIG" >&5
+ echo "$as_me:4304: checking if we should install .pc files for $PKG_CONFIG" >&5
echo $ECHO_N "checking if we should install .pc files for $PKG_CONFIG... $ECHO_C" >&6
else
- echo "$as_me:4220: checking if we should install .pc files" >&5
+ echo "$as_me:4307: checking if we should install .pc files" >&5
echo $ECHO_N "checking if we should install .pc files... $ECHO_C" >&6
fi
@@ -4228,18 +4315,19 @@ if test "${enable_pc_files+set}" = set; then
else
enable_pc_files=no
fi;
-echo "$as_me:4231: result: $enable_pc_files" >&5
+echo "$as_me:4318: result: $enable_pc_files" >&5
echo "${ECHO_T}$enable_pc_files" >&6
if test "x$enable_pc_files" != xno
then
MAKE_PC_FILES=
case "x$PKG_CONFIG_LIBDIR" in
- (xno|xyes)
- { echo "$as_me:4239: WARNING: no PKG_CONFIG_LIBDIR was found" >&5
+ (xno|xnone|xyes|x)
+ { echo "$as_me:4326: WARNING: no PKG_CONFIG_LIBDIR was found" >&5
echo "$as_me: WARNING: no PKG_CONFIG_LIBDIR was found" >&2;}
;;
(*)
+ cf_pkg_config_libdir="$PKG_CONFIG_LIBDIR"
if test "x$prefix" != xNONE; then
cf_path_syntax="$prefix"
@@ -4247,7 +4335,7 @@ else
cf_path_syntax="$ac_default_prefix"
fi
-case ".$PKG_CONFIG_LIBDIR" in
+case ".$cf_pkg_config_libdir" in
(.\$\(*\)*|.\'*\'*)
;;
(..|./*|.\\*)
@@ -4255,19 +4343,19 @@ case ".$PKG_CONFIG_LIBDIR" in
(.[a-zA-Z]:[\\/]*) # OS/2 EMX
;;
(.\$\{*prefix\}*|.\$\{*dir\}*)
- eval PKG_CONFIG_LIBDIR="$PKG_CONFIG_LIBDIR"
- case ".$PKG_CONFIG_LIBDIR" in
+ eval cf_pkg_config_libdir="$cf_pkg_config_libdir"
+ case ".$cf_pkg_config_libdir" in
(.NONE/*)
- PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG_LIBDIR" | sed -e s%NONE%$cf_path_syntax%`
+ cf_pkg_config_libdir=`echo "$cf_pkg_config_libdir" | sed -e s%NONE%$cf_path_syntax%`
;;
esac
;;
(.no|.NONE/*)
- PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG_LIBDIR" | sed -e s%NONE%$cf_path_syntax%`
+ cf_pkg_config_libdir=`echo "$cf_pkg_config_libdir" | sed -e s%NONE%$cf_path_syntax%`
;;
(*)
- { { echo "$as_me:4269: error: expected a pathname, not \"$PKG_CONFIG_LIBDIR\"" >&5
-echo "$as_me: error: expected a pathname, not \"$PKG_CONFIG_LIBDIR\"" >&2;}
+ { { echo "$as_me:4357: error: expected a pathname, not \"$cf_pkg_config_libdir\"" >&5
+echo "$as_me: error: expected a pathname, not \"$cf_pkg_config_libdir\"" >&2;}
{ (exit 1); exit 1; }; }
;;
esac
@@ -4280,8 +4368,8 @@ fi
if test -z "$MAKE_PC_FILES"
then
- echo "$as_me:4283: checking for suffix to add to pc-files" >&5
-echo $ECHO_N "checking for suffix to add to pc-files... $ECHO_C" >&6
+ echo "$as_me:4371: checking for suffix to add to pkg-config files" >&5
+echo $ECHO_N "checking for suffix to add to pkg-config files... $ECHO_C" >&6
# Check whether --with-pc-suffix or --without-pc-suffix was given.
if test "${with_pc_suffix+set}" = set; then
@@ -4295,13 +4383,13 @@ if test "${with_pc_suffix+set}" = set; then
esac
fi;
test -z "$PC_MODULE_SUFFIX" && PC_MODULE_SUFFIX=none
- echo "$as_me:4298: result: $PC_MODULE_SUFFIX" >&5
+ echo "$as_me:4386: result: $PC_MODULE_SUFFIX" >&5
echo "${ECHO_T}$PC_MODULE_SUFFIX" >&6
test "$PC_MODULE_SUFFIX" = none && PC_MODULE_SUFFIX=
fi
-echo "$as_me:4304: checking if we should assume mixed-case filenames" >&5
+echo "$as_me:4392: checking if we should assume mixed-case filenames" >&5
echo $ECHO_N "checking if we should assume mixed-case filenames... $ECHO_C" >&6
# Check whether --enable-mixed-case or --disable-mixed-case was given.
@@ -4311,11 +4399,11 @@ if test "${enable_mixed_case+set}" = set; then
else
enable_mixedcase=auto
fi;
-echo "$as_me:4314: result: $enable_mixedcase" >&5
+echo "$as_me:4402: result: $enable_mixedcase" >&5
echo "${ECHO_T}$enable_mixedcase" >&6
if test "$enable_mixedcase" = "auto" ; then
-echo "$as_me:4318: checking if filesystem supports mixed-case filenames" >&5
+echo "$as_me:4406: checking if filesystem supports mixed-case filenames" >&5
echo $ECHO_N "checking if filesystem supports mixed-case filenames... $ECHO_C" >&6
if test "${cf_cv_mixedcase+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -4342,7 +4430,7 @@ else
fi
fi
-echo "$as_me:4345: result: $cf_cv_mixedcase" >&5
+echo "$as_me:4433: result: $cf_cv_mixedcase" >&5
echo "${ECHO_T}$cf_cv_mixedcase" >&6
test "$cf_cv_mixedcase" = yes &&
cat >>confdefs.h <<\EOF
@@ -4361,7 +4449,7 @@ EOF
fi
# do this after mixed-case option (tags/TAGS is not as important as tic).
-echo "$as_me:4364: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "$as_me:4452: checking whether ${MAKE-make} sets \${MAKE}" >&5
echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6
set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
@@ -4381,20 +4469,82 @@ fi
rm -f conftest.make
fi
if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
- echo "$as_me:4384: result: yes" >&5
+ echo "$as_me:4472: result: yes" >&5
echo "${ECHO_T}yes" >&6
SET_MAKE=
else
- echo "$as_me:4388: result: no" >&5
+ echo "$as_me:4476: result: no" >&5
echo "${ECHO_T}no" >&6
SET_MAKE="MAKE=${MAKE-make}"
fi
+echo "$as_me:4481: checking for \".PHONY\" make-support" >&5
+echo $ECHO_N "checking for \".PHONY\" make-support... $ECHO_C" >&6
+if test "${cf_cv_make_PHONY+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+ rm -rf conftest*
+ (
+ mkdir conftest || exit 1
+ cd conftest
+ cat >makefile <<'CF_EOF'
+.PHONY: always
+DATA=0
+always: always.out
+ @echo "** making $@ $(DATA)"
+once: once.out
+ @echo "** making $@ $(DATA)"
+always.out:
+ @echo "** making $@ $(DATA)"
+ echo $(DATA) > $@
+once.out:
+ @echo "** making $@ $(DATA)"
+ echo $(DATA) > $@
+CF_EOF
+ for cf_data in 1 2 3
+ do
+ ${MAKE:-make} always DATA=$cf_data
+ ${MAKE:-make} once DATA=$cf_data
+ ${MAKE:-make} -t always once
+ if test -f always ; then
+ echo "no (case 1)" > ../conftest.tmp
+ elif test ! -f always.out ; then
+ echo "no (case 2)" > ../conftest.tmp
+ elif test ! -f once.out ; then
+ echo "no (case 3)" > ../conftest.tmp
+ elif ! cmp -s always.out once.out ; then
+ echo "no (case 4)" > ../conftest.tmp
+ diff always.out once.out
+ else
+ cf_check="`cat always.out`"
+ if test "x$cf_check" != "x$cf_data" ; then
+ echo "no (case 5)" > ../conftest.tmp
+ else
+ echo yes > ../conftest.tmp
+ rm -f ./*.out
+ continue
+ fi
+ fi
+ break
+ done
+ ) >&5 2>&1
+ cf_cv_make_PHONY="`cat conftest.tmp`"
+ rm -rf conftest*
+
+fi
+echo "$as_me:4536: result: $cf_cv_make_PHONY" >&5
+echo "${ECHO_T}$cf_cv_make_PHONY" >&6
+MAKE_NO_PHONY="#"
+MAKE_PHONY="#"
+test "x$cf_cv_make_PHONY" = xyes && MAKE_PHONY=
+test "x$cf_cv_make_PHONY" != xyes && MAKE_NO_PHONY=
+
for ac_prog in exctags ctags
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-echo "$as_me:4397: checking for $ac_word" >&5
+echo "$as_me:4547: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_CTAGS+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -4409,7 +4559,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_CTAGS="$ac_prog"
-echo "$as_me:4412: found $ac_dir/$ac_word" >&5
+echo "$as_me:4562: found $ac_dir/$ac_word" >&5
break
done
@@ -4417,10 +4567,10 @@ fi
fi
CTAGS=$ac_cv_prog_CTAGS
if test -n "$CTAGS"; then
- echo "$as_me:4420: result: $CTAGS" >&5
+ echo "$as_me:4570: result: $CTAGS" >&5
echo "${ECHO_T}$CTAGS" >&6
else
- echo "$as_me:4423: result: no" >&5
+ echo "$as_me:4573: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -4431,7 +4581,7 @@ for ac_prog in exetags etags
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-echo "$as_me:4434: checking for $ac_word" >&5
+echo "$as_me:4584: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_ETAGS+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -4446,7 +4596,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_ETAGS="$ac_prog"
-echo "$as_me:4449: found $ac_dir/$ac_word" >&5
+echo "$as_me:4599: found $ac_dir/$ac_word" >&5
break
done
@@ -4454,10 +4604,10 @@ fi
fi
ETAGS=$ac_cv_prog_ETAGS
if test -n "$ETAGS"; then
- echo "$as_me:4457: result: $ETAGS" >&5
+ echo "$as_me:4607: result: $ETAGS" >&5
echo "${ECHO_T}$ETAGS" >&6
else
- echo "$as_me:4460: result: no" >&5
+ echo "$as_me:4610: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -4466,7 +4616,7 @@ done
# Extract the first word of "${CTAGS:-ctags}", so it can be a program name with args.
set dummy ${CTAGS:-ctags}; ac_word=$2
-echo "$as_me:4469: checking for $ac_word" >&5
+echo "$as_me:4619: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_MAKE_LOWER_TAGS+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -4481,7 +4631,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_MAKE_LOWER_TAGS="yes"
-echo "$as_me:4484: found $ac_dir/$ac_word" >&5
+echo "$as_me:4634: found $ac_dir/$ac_word" >&5
break
done
@@ -4490,17 +4640,17 @@ fi
fi
MAKE_LOWER_TAGS=$ac_cv_prog_MAKE_LOWER_TAGS
if test -n "$MAKE_LOWER_TAGS"; then
- echo "$as_me:4493: result: $MAKE_LOWER_TAGS" >&5
+ echo "$as_me:4643: result: $MAKE_LOWER_TAGS" >&5
echo "${ECHO_T}$MAKE_LOWER_TAGS" >&6
else
- echo "$as_me:4496: result: no" >&5
+ echo "$as_me:4646: result: no" >&5
echo "${ECHO_T}no" >&6
fi
if test "$cf_cv_mixedcase" = yes ; then
# Extract the first word of "${ETAGS:-etags}", so it can be a program name with args.
set dummy ${ETAGS:-etags}; ac_word=$2
-echo "$as_me:4503: checking for $ac_word" >&5
+echo "$as_me:4653: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_MAKE_UPPER_TAGS+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -4515,7 +4665,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_MAKE_UPPER_TAGS="yes"
-echo "$as_me:4518: found $ac_dir/$ac_word" >&5
+echo "$as_me:4668: found $ac_dir/$ac_word" >&5
break
done
@@ -4524,10 +4674,10 @@ fi
fi
MAKE_UPPER_TAGS=$ac_cv_prog_MAKE_UPPER_TAGS
if test -n "$MAKE_UPPER_TAGS"; then
- echo "$as_me:4527: result: $MAKE_UPPER_TAGS" >&5
+ echo "$as_me:4677: result: $MAKE_UPPER_TAGS" >&5
echo "${ECHO_T}$MAKE_UPPER_TAGS" >&6
else
- echo "$as_me:4530: result: no" >&5
+ echo "$as_me:4680: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -4547,7 +4697,7 @@ else
MAKE_LOWER_TAGS="#"
fi
-echo "$as_me:4550: checking for makeflags variable" >&5
+echo "$as_me:4700: checking for makeflags variable" >&5
echo $ECHO_N "checking for makeflags variable... $ECHO_C" >&6
if test "${cf_cv_makeflags+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -4577,7 +4727,7 @@ CF_EOF
;;
(*)
-echo "${as_me:-configure}:4580: testing given option \"$cf_option\",no match \"$cf_result\" ..." 1>&5
+echo "${as_me:-configure}:4730: testing given option \"$cf_option\",no match \"$cf_result\" ..." 1>&5
;;
esac
@@ -4585,13 +4735,13 @@ echo "${as_me:-configure}:4580: testing given option \"$cf_option\",no match \"$
rm -f cf_makeflags.tmp
fi
-echo "$as_me:4588: result: $cf_cv_makeflags" >&5
+echo "$as_me:4738: result: $cf_cv_makeflags" >&5
echo "${ECHO_T}$cf_cv_makeflags" >&6
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-echo "$as_me:4594: checking for $ac_word" >&5
+echo "$as_me:4744: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_RANLIB+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -4606,7 +4756,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
-echo "$as_me:4609: found $ac_dir/$ac_word" >&5
+echo "$as_me:4759: found $ac_dir/$ac_word" >&5
break
done
@@ -4614,10 +4764,10 @@ fi
fi
RANLIB=$ac_cv_prog_RANLIB
if test -n "$RANLIB"; then
- echo "$as_me:4617: result: $RANLIB" >&5
+ echo "$as_me:4767: result: $RANLIB" >&5
echo "${ECHO_T}$RANLIB" >&6
else
- echo "$as_me:4620: result: no" >&5
+ echo "$as_me:4770: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -4626,7 +4776,7 @@ if test -z "$ac_cv_prog_RANLIB"; then
ac_ct_RANLIB=$RANLIB
# Extract the first word of "ranlib", so it can be a program name with args.
set dummy ranlib; ac_word=$2
-echo "$as_me:4629: checking for $ac_word" >&5
+echo "$as_me:4779: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -4641,7 +4791,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_ac_ct_RANLIB="ranlib"
-echo "$as_me:4644: found $ac_dir/$ac_word" >&5
+echo "$as_me:4794: found $ac_dir/$ac_word" >&5
break
done
@@ -4650,10 +4800,10 @@ fi
fi
ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
if test -n "$ac_ct_RANLIB"; then
- echo "$as_me:4653: result: $ac_ct_RANLIB" >&5
+ echo "$as_me:4803: result: $ac_ct_RANLIB" >&5
echo "${ECHO_T}$ac_ct_RANLIB" >&6
else
- echo "$as_me:4656: result: no" >&5
+ echo "$as_me:4806: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -4665,7 +4815,7 @@ fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}ld", so it can be a program name with args.
set dummy ${ac_tool_prefix}ld; ac_word=$2
-echo "$as_me:4668: checking for $ac_word" >&5
+echo "$as_me:4818: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_LD+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -4680,7 +4830,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_LD="${ac_tool_prefix}ld"
-echo "$as_me:4683: found $ac_dir/$ac_word" >&5
+echo "$as_me:4833: found $ac_dir/$ac_word" >&5
break
done
@@ -4688,10 +4838,10 @@ fi
fi
LD=$ac_cv_prog_LD
if test -n "$LD"; then
- echo "$as_me:4691: result: $LD" >&5
+ echo "$as_me:4841: result: $LD" >&5
echo "${ECHO_T}$LD" >&6
else
- echo "$as_me:4694: result: no" >&5
+ echo "$as_me:4844: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -4700,7 +4850,7 @@ if test -z "$ac_cv_prog_LD"; then
ac_ct_LD=$LD
# Extract the first word of "ld", so it can be a program name with args.
set dummy ld; ac_word=$2
-echo "$as_me:4703: checking for $ac_word" >&5
+echo "$as_me:4853: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_ac_ct_LD+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -4715,7 +4865,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_ac_ct_LD="ld"
-echo "$as_me:4718: found $ac_dir/$ac_word" >&5
+echo "$as_me:4868: found $ac_dir/$ac_word" >&5
break
done
@@ -4724,10 +4874,10 @@ fi
fi
ac_ct_LD=$ac_cv_prog_ac_ct_LD
if test -n "$ac_ct_LD"; then
- echo "$as_me:4727: result: $ac_ct_LD" >&5
+ echo "$as_me:4877: result: $ac_ct_LD" >&5
echo "${ECHO_T}$ac_ct_LD" >&6
else
- echo "$as_me:4730: result: no" >&5
+ echo "$as_me:4880: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -4739,7 +4889,7 @@ fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
set dummy ${ac_tool_prefix}ar; ac_word=$2
-echo "$as_me:4742: checking for $ac_word" >&5
+echo "$as_me:4892: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_AR+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -4754,7 +4904,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_AR="${ac_tool_prefix}ar"
-echo "$as_me:4757: found $ac_dir/$ac_word" >&5
+echo "$as_me:4907: found $ac_dir/$ac_word" >&5
break
done
@@ -4762,10 +4912,10 @@ fi
fi
AR=$ac_cv_prog_AR
if test -n "$AR"; then
- echo "$as_me:4765: result: $AR" >&5
+ echo "$as_me:4915: result: $AR" >&5
echo "${ECHO_T}$AR" >&6
else
- echo "$as_me:4768: result: no" >&5
+ echo "$as_me:4918: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -4774,7 +4924,7 @@ if test -z "$ac_cv_prog_AR"; then
ac_ct_AR=$AR
# Extract the first word of "ar", so it can be a program name with args.
set dummy ar; ac_word=$2
-echo "$as_me:4777: checking for $ac_word" >&5
+echo "$as_me:4927: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -4789,7 +4939,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_ac_ct_AR="ar"
-echo "$as_me:4792: found $ac_dir/$ac_word" >&5
+echo "$as_me:4942: found $ac_dir/$ac_word" >&5
break
done
@@ -4798,10 +4948,10 @@ fi
fi
ac_ct_AR=$ac_cv_prog_ac_ct_AR
if test -n "$ac_ct_AR"; then
- echo "$as_me:4801: result: $ac_ct_AR" >&5
+ echo "$as_me:4951: result: $ac_ct_AR" >&5
echo "${ECHO_T}$ac_ct_AR" >&6
else
- echo "$as_me:4804: result: no" >&5
+ echo "$as_me:4954: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -4813,7 +4963,7 @@ fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}nm", so it can be a program name with args.
set dummy ${ac_tool_prefix}nm; ac_word=$2
-echo "$as_me:4816: checking for $ac_word" >&5
+echo "$as_me:4966: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_NM+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -4828,7 +4978,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_NM="${ac_tool_prefix}nm"
-echo "$as_me:4831: found $ac_dir/$ac_word" >&5
+echo "$as_me:4981: found $ac_dir/$ac_word" >&5
break
done
@@ -4836,10 +4986,10 @@ fi
fi
NM=$ac_cv_prog_NM
if test -n "$NM"; then
- echo "$as_me:4839: result: $NM" >&5
+ echo "$as_me:4989: result: $NM" >&5
echo "${ECHO_T}$NM" >&6
else
- echo "$as_me:4842: result: no" >&5
+ echo "$as_me:4992: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -4848,7 +4998,7 @@ if test -z "$ac_cv_prog_NM"; then
ac_ct_NM=$NM
# Extract the first word of "nm", so it can be a program name with args.
set dummy nm; ac_word=$2
-echo "$as_me:4851: checking for $ac_word" >&5
+echo "$as_me:5001: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_ac_ct_NM+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -4863,7 +5013,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_ac_ct_NM="nm"
-echo "$as_me:4866: found $ac_dir/$ac_word" >&5
+echo "$as_me:5016: found $ac_dir/$ac_word" >&5
break
done
@@ -4872,10 +5022,10 @@ fi
fi
ac_ct_NM=$ac_cv_prog_ac_ct_NM
if test -n "$ac_ct_NM"; then
- echo "$as_me:4875: result: $ac_ct_NM" >&5
+ echo "$as_me:5025: result: $ac_ct_NM" >&5
echo "${ECHO_T}$ac_ct_NM" >&6
else
- echo "$as_me:4878: result: no" >&5
+ echo "$as_me:5028: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -4887,7 +5037,7 @@ fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
set dummy ${ac_tool_prefix}ar; ac_word=$2
-echo "$as_me:4890: checking for $ac_word" >&5
+echo "$as_me:5040: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_AR+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -4902,7 +5052,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_AR="${ac_tool_prefix}ar"
-echo "$as_me:4905: found $ac_dir/$ac_word" >&5
+echo "$as_me:5055: found $ac_dir/$ac_word" >&5
break
done
@@ -4910,10 +5060,10 @@ fi
fi
AR=$ac_cv_prog_AR
if test -n "$AR"; then
- echo "$as_me:4913: result: $AR" >&5
+ echo "$as_me:5063: result: $AR" >&5
echo "${ECHO_T}$AR" >&6
else
- echo "$as_me:4916: result: no" >&5
+ echo "$as_me:5066: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -4922,7 +5072,7 @@ if test -z "$ac_cv_prog_AR"; then
ac_ct_AR=$AR
# Extract the first word of "ar", so it can be a program name with args.
set dummy ar; ac_word=$2
-echo "$as_me:4925: checking for $ac_word" >&5
+echo "$as_me:5075: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -4937,7 +5087,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_ac_ct_AR="ar"
-echo "$as_me:4940: found $ac_dir/$ac_word" >&5
+echo "$as_me:5090: found $ac_dir/$ac_word" >&5
break
done
@@ -4946,10 +5096,10 @@ fi
fi
ac_ct_AR=$ac_cv_prog_ac_ct_AR
if test -n "$ac_ct_AR"; then
- echo "$as_me:4949: result: $ac_ct_AR" >&5
+ echo "$as_me:5099: result: $ac_ct_AR" >&5
echo "${ECHO_T}$ac_ct_AR" >&6
else
- echo "$as_me:4952: result: no" >&5
+ echo "$as_me:5102: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -4958,7 +5108,7 @@ else
AR="$ac_cv_prog_AR"
fi
-echo "$as_me:4961: checking for options to update archives" >&5
+echo "$as_me:5111: checking for options to update archives" >&5
echo $ECHO_N "checking for options to update archives... $ECHO_C" >&6
if test "${cf_cv_ar_flags+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -4995,13 +5145,13 @@ else
rm -f conftest.a
cat >"conftest.$ac_ext" <<EOF
-#line 4998 "configure"
+#line 5148 "configure"
int testdata[3] = { 123, 456, 789 };
EOF
- if { (eval echo "$as_me:5001: \"$ac_compile\"") >&5
+ if { (eval echo "$as_me:5151: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:5004: \$? = $ac_status" >&5
+ echo "$as_me:5154: \$? = $ac_status" >&5
(exit "$ac_status"); } ; then
echo "$AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext" >&5
$AR $ARFLAGS "$cf_ar_flags" conftest.a "conftest.$ac_cv_objext" 2>&5 1>/dev/null
@@ -5012,7 +5162,7 @@ EOF
else
test -n "$verbose" && echo " cannot compile test-program" 1>&6
-echo "${as_me:-configure}:5015: testing cannot compile test-program ..." 1>&5
+echo "${as_me:-configure}:5165: testing cannot compile test-program ..." 1>&5
break
fi
@@ -5022,7 +5172,7 @@ echo "${as_me:-configure}:5015: testing cannot compile test-program ..." 1>&5
esac
fi
-echo "$as_me:5025: result: $cf_cv_ar_flags" >&5
+echo "$as_me:5175: result: $cf_cv_ar_flags" >&5
echo "${ECHO_T}$cf_cv_ar_flags" >&6
if test -n "$ARFLAGS" ; then
@@ -5033,8 +5183,8 @@ else
ARFLAGS=$cf_cv_ar_flags
fi
-echo "$as_me:5036: checking if you have specified an install-prefix" >&5
-echo $ECHO_N "checking if you have specified an install-prefix... $ECHO_C" >&6
+echo "$as_me:5186: checking for an installation directory prefix" >&5
+echo $ECHO_N "checking for an installation directory prefix... $ECHO_C" >&6
# Check whether --with-install-prefix or --without-install-prefix was given.
if test "${with_install_prefix+set}" = set; then
@@ -5046,8 +5196,8 @@ if test "${with_install_prefix+set}" = set; then
;;
esac
fi;
-echo "$as_me:5049: result: $DESTDIR" >&5
-echo "${ECHO_T}$DESTDIR" >&6
+echo "$as_me:5199: result: ${DESTDIR:-(none)}" >&5
+echo "${ECHO_T}${DESTDIR:-(none)}" >&6
###############################################################################
@@ -5081,7 +5231,7 @@ else
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-echo "$as_me:5084: checking for $ac_word" >&5
+echo "$as_me:5234: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_BUILD_CC+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -5096,7 +5246,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_BUILD_CC="$ac_prog"
-echo "$as_me:5099: found $ac_dir/$ac_word" >&5
+echo "$as_me:5249: found $ac_dir/$ac_word" >&5
break
done
@@ -5104,10 +5254,10 @@ fi
fi
BUILD_CC=$ac_cv_prog_BUILD_CC
if test -n "$BUILD_CC"; then
- echo "$as_me:5107: result: $BUILD_CC" >&5
+ echo "$as_me:5257: result: $BUILD_CC" >&5
echo "${ECHO_T}$BUILD_CC" >&6
else
- echo "$as_me:5110: result: no" >&5
+ echo "$as_me:5260: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -5116,12 +5266,12 @@ done
test -n "$BUILD_CC" || BUILD_CC="none"
fi;
- echo "$as_me:5119: checking for native build C compiler" >&5
+ echo "$as_me:5269: checking for native build C compiler" >&5
echo $ECHO_N "checking for native build C compiler... $ECHO_C" >&6
- echo "$as_me:5121: result: $BUILD_CC" >&5
+ echo "$as_me:5271: result: $BUILD_CC" >&5
echo "${ECHO_T}$BUILD_CC" >&6
- echo "$as_me:5124: checking for native build C preprocessor" >&5
+ echo "$as_me:5274: checking for native build C preprocessor" >&5
echo $ECHO_N "checking for native build C preprocessor... $ECHO_C" >&6
# Check whether --with-build-cpp or --without-build-cpp was given.
@@ -5131,10 +5281,10 @@ if test "${with_build_cpp+set}" = set; then
else
BUILD_CPP='${BUILD_CC} -E'
fi;
- echo "$as_me:5134: result: $BUILD_CPP" >&5
+ echo "$as_me:5284: result: $BUILD_CPP" >&5
echo "${ECHO_T}$BUILD_CPP" >&6
- echo "$as_me:5137: checking for native build C flags" >&5
+ echo "$as_me:5287: checking for native build C flags" >&5
echo $ECHO_N "checking for native build C flags... $ECHO_C" >&6
# Check whether --with-build-cflags or --without-build-cflags was given.
@@ -5142,10 +5292,10 @@ if test "${with_build_cflags+set}" = set; then
withval="$with_build_cflags"
BUILD_CFLAGS="$withval"
fi;
- echo "$as_me:5145: result: $BUILD_CFLAGS" >&5
+ echo "$as_me:5295: result: $BUILD_CFLAGS" >&5
echo "${ECHO_T}$BUILD_CFLAGS" >&6
- echo "$as_me:5148: checking for native build C preprocessor-flags" >&5
+ echo "$as_me:5298: checking for native build C preprocessor-flags" >&5
echo $ECHO_N "checking for native build C preprocessor-flags... $ECHO_C" >&6
# Check whether --with-build-cppflags or --without-build-cppflags was given.
@@ -5153,10 +5303,10 @@ if test "${with_build_cppflags+set}" = set; then
withval="$with_build_cppflags"
BUILD_CPPFLAGS="$withval"
fi;
- echo "$as_me:5156: result: $BUILD_CPPFLAGS" >&5
+ echo "$as_me:5306: result: $BUILD_CPPFLAGS" >&5
echo "${ECHO_T}$BUILD_CPPFLAGS" >&6
- echo "$as_me:5159: checking for native build linker-flags" >&5
+ echo "$as_me:5309: checking for native build linker-flags" >&5
echo $ECHO_N "checking for native build linker-flags... $ECHO_C" >&6
# Check whether --with-build-ldflags or --without-build-ldflags was given.
@@ -5164,10 +5314,10 @@ if test "${with_build_ldflags+set}" = set; then
withval="$with_build_ldflags"
BUILD_LDFLAGS="$withval"
fi;
- echo "$as_me:5167: result: $BUILD_LDFLAGS" >&5
+ echo "$as_me:5317: result: $BUILD_LDFLAGS" >&5
echo "${ECHO_T}$BUILD_LDFLAGS" >&6
- echo "$as_me:5170: checking for native build linker-libraries" >&5
+ echo "$as_me:5320: checking for native build linker-libraries" >&5
echo $ECHO_N "checking for native build linker-libraries... $ECHO_C" >&6
# Check whether --with-build-libs or --without-build-libs was given.
@@ -5175,7 +5325,7 @@ if test "${with_build_libs+set}" = set; then
withval="$with_build_libs"
BUILD_LIBS="$withval"
fi;
- echo "$as_me:5178: result: $BUILD_LIBS" >&5
+ echo "$as_me:5328: result: $BUILD_LIBS" >&5
echo "${ECHO_T}$BUILD_LIBS" >&6
# this assumes we're on Unix.
@@ -5184,8 +5334,59 @@ echo "${ECHO_T}$BUILD_LIBS" >&6
: ${BUILD_CC:='${CC}'}
- if { test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '${CC}'; } ; then
- { { echo "$as_me:5188: error: Cross-build requires two compilers.
+ echo "$as_me:5337: checking if the build-compiler \"$BUILD_CC\" works" >&5
+echo $ECHO_N "checking if the build-compiler \"$BUILD_CC\" works... $ECHO_C" >&6
+
+ cf_save_crossed=$cross_compiling
+ cf_save_ac_link=$ac_link
+ cross_compiling=no
+ cf_build_cppflags=$BUILD_CPPFLAGS
+ test "$cf_build_cppflags" = "#" && cf_build_cppflags=
+ ac_link='$BUILD_CC -o "conftest$ac_exeext" $BUILD_CFLAGS $cf_build_cppflags $BUILD_LDFLAGS "conftest.$ac_ext" $BUILD_LIBS >&5'
+
+ if test "$cross_compiling" = yes; then
+ cf_ok_build_cc=unknown
+else
+ cat >"conftest.$ac_ext" <<_ACEOF
+#line 5351 "configure"
+#include "confdefs.h"
+#include <stdio.h>
+ int main(int argc, char *argv[])
+ {
+ ${cf_cv_main_return:-return}(argc < 0 || argv == 0 || argv[0] == 0);
+ }
+
+_ACEOF
+rm -f "conftest$ac_exeext"
+if { (eval echo "$as_me:5361: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:5364: \$? = $ac_status" >&5
+ (exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
+ { (eval echo "$as_me:5366: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:5369: \$? = $ac_status" >&5
+ (exit "$ac_status"); }; }; then
+ cf_ok_build_cc=yes
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+cat "conftest.$ac_ext" >&5
+cf_ok_build_cc=no
+fi
+rm -f core ./core.* ./*.core "conftest$ac_exeext" "conftest.$ac_objext" "conftest.$ac_ext"
+fi
+
+ cross_compiling=$cf_save_crossed
+ ac_link=$cf_save_ac_link
+
+ echo "$as_me:5384: result: $cf_ok_build_cc" >&5
+echo "${ECHO_T}$cf_ok_build_cc" >&6
+
+ if test "$cf_ok_build_cc" != yes
+ then
+ { { echo "$as_me:5389: error: Cross-build requires two compilers.
Use --with-build-cc to specify the native compiler." >&5
echo "$as_me: error: Cross-build requires two compilers.
Use --with-build-cc to specify the native compiler." >&2;}
@@ -5210,7 +5411,7 @@ fi
### shared, for example.
cf_list_models=""
-echo "$as_me:5213: checking if libtool -version-number should be used" >&5
+echo "$as_me:5414: checking if libtool -version-number should be used" >&5
echo $ECHO_N "checking if libtool -version-number should be used... $ECHO_C" >&6
# Check whether --enable-libtool-version or --disable-libtool-version was given.
@@ -5227,7 +5428,7 @@ else
cf_libtool_version=yes
fi;
-echo "$as_me:5230: result: $cf_libtool_version" >&5
+echo "$as_me:5431: result: $cf_libtool_version" >&5
echo "${ECHO_T}$cf_libtool_version" >&6
if test "$cf_libtool_version" = yes ; then
@@ -5236,25 +5437,25 @@ else
LIBTOOL_VERSION="-version-info"
case "x$VERSION" in
(x)
- { echo "$as_me:5239: WARNING: VERSION was not set" >&5
+ { echo "$as_me:5440: WARNING: VERSION was not set" >&5
echo "$as_me: WARNING: VERSION was not set" >&2;}
;;
(x*.*.*)
ABI_VERSION="$VERSION"
test -n "$verbose" && echo " ABI_VERSION: $ABI_VERSION" 1>&6
-echo "${as_me:-configure}:5246: testing ABI_VERSION: $ABI_VERSION ..." 1>&5
+echo "${as_me:-configure}:5447: testing ABI_VERSION: $ABI_VERSION ..." 1>&5
;;
(x*:*:*)
ABI_VERSION=`echo "$VERSION" | sed -e 's/:/./g'`
test -n "$verbose" && echo " ABI_VERSION: $ABI_VERSION" 1>&6
-echo "${as_me:-configure}:5253: testing ABI_VERSION: $ABI_VERSION ..." 1>&5
+echo "${as_me:-configure}:5454: testing ABI_VERSION: $ABI_VERSION ..." 1>&5
;;
(*)
- { echo "$as_me:5257: WARNING: unexpected VERSION value: $VERSION" >&5
+ { echo "$as_me:5458: WARNING: unexpected VERSION value: $VERSION" >&5
echo "$as_me: WARNING: unexpected VERSION value: $VERSION" >&2;}
;;
esac
@@ -5276,7 +5477,7 @@ LIB_LINK='${CC}'
LIB_INSTALL=
LIB_UNINSTALL=
-echo "$as_me:5279: checking if you want to build libraries with libtool" >&5
+echo "$as_me:5480: checking if you want to build libraries with libtool" >&5
echo $ECHO_N "checking if you want to build libraries with libtool... $ECHO_C" >&6
# Check whether --with-libtool or --without-libtool was given.
@@ -5286,7 +5487,7 @@ if test "${with_libtool+set}" = set; then
else
with_libtool=no
fi;
-echo "$as_me:5289: result: $with_libtool" >&5
+echo "$as_me:5490: result: $with_libtool" >&5
echo "${ECHO_T}$with_libtool" >&6
if test "$with_libtool" != "no"; then
@@ -5317,7 +5518,7 @@ case ".$with_libtool" in
with_libtool=`echo "$with_libtool" | sed -e s%NONE%$cf_path_syntax%`
;;
(*)
- { { echo "$as_me:5320: error: expected a pathname, not \"$with_libtool\"" >&5
+ { { echo "$as_me:5521: error: expected a pathname, not \"$with_libtool\"" >&5
echo "$as_me: error: expected a pathname, not \"$with_libtool\"" >&2;}
{ (exit 1); exit 1; }; }
;;
@@ -5330,7 +5531,7 @@ esac
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-echo "$as_me:5333: checking for $ac_word" >&5
+echo "$as_me:5534: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_LIBTOOL+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -5345,7 +5546,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_LIBTOOL="$ac_tool_prefix$ac_prog"
-echo "$as_me:5348: found $ac_dir/$ac_word" >&5
+echo "$as_me:5549: found $ac_dir/$ac_word" >&5
break
done
@@ -5353,10 +5554,10 @@ fi
fi
LIBTOOL=$ac_cv_prog_LIBTOOL
if test -n "$LIBTOOL"; then
- echo "$as_me:5356: result: $LIBTOOL" >&5
+ echo "$as_me:5557: result: $LIBTOOL" >&5
echo "${ECHO_T}$LIBTOOL" >&6
else
- echo "$as_me:5359: result: no" >&5
+ echo "$as_me:5560: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -5369,7 +5570,7 @@ if test -z "$LIBTOOL"; then
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-echo "$as_me:5372: checking for $ac_word" >&5
+echo "$as_me:5573: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_ac_ct_LIBTOOL+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -5384,7 +5585,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_ac_ct_LIBTOOL="$ac_prog"
-echo "$as_me:5387: found $ac_dir/$ac_word" >&5
+echo "$as_me:5588: found $ac_dir/$ac_word" >&5
break
done
@@ -5392,10 +5593,10 @@ fi
fi
ac_ct_LIBTOOL=$ac_cv_prog_ac_ct_LIBTOOL
if test -n "$ac_ct_LIBTOOL"; then
- echo "$as_me:5395: result: $ac_ct_LIBTOOL" >&5
+ echo "$as_me:5596: result: $ac_ct_LIBTOOL" >&5
echo "${ECHO_T}$ac_ct_LIBTOOL" >&6
else
- echo "$as_me:5398: result: no" >&5
+ echo "$as_me:5599: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -5426,7 +5627,7 @@ unset LIBTOOL
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-echo "$as_me:5429: checking for $ac_word" >&5
+echo "$as_me:5630: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_LIBTOOL+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -5441,7 +5642,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_LIBTOOL="$ac_tool_prefix$ac_prog"
-echo "$as_me:5444: found $ac_dir/$ac_word" >&5
+echo "$as_me:5645: found $ac_dir/$ac_word" >&5
break
done
@@ -5449,10 +5650,10 @@ fi
fi
LIBTOOL=$ac_cv_prog_LIBTOOL
if test -n "$LIBTOOL"; then
- echo "$as_me:5452: result: $LIBTOOL" >&5
+ echo "$as_me:5653: result: $LIBTOOL" >&5
echo "${ECHO_T}$LIBTOOL" >&6
else
- echo "$as_me:5455: result: no" >&5
+ echo "$as_me:5656: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -5465,7 +5666,7 @@ if test -z "$LIBTOOL"; then
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-echo "$as_me:5468: checking for $ac_word" >&5
+echo "$as_me:5669: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_ac_ct_LIBTOOL+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -5480,7 +5681,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_ac_ct_LIBTOOL="$ac_prog"
-echo "$as_me:5483: found $ac_dir/$ac_word" >&5
+echo "$as_me:5684: found $ac_dir/$ac_word" >&5
break
done
@@ -5488,10 +5689,10 @@ fi
fi
ac_ct_LIBTOOL=$ac_cv_prog_ac_ct_LIBTOOL
if test -n "$ac_ct_LIBTOOL"; then
- echo "$as_me:5491: result: $ac_ct_LIBTOOL" >&5
+ echo "$as_me:5692: result: $ac_ct_LIBTOOL" >&5
echo "${ECHO_T}$ac_ct_LIBTOOL" >&6
else
- echo "$as_me:5494: result: no" >&5
+ echo "$as_me:5695: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -5513,7 +5714,7 @@ test -z "$cf_cv_libtool_version" && unset cf_cv_libtool_version
fi
fi
if test -z "$LIBTOOL" ; then
- { { echo "$as_me:5516: error: Cannot find libtool" >&5
+ { { echo "$as_me:5717: error: Cannot find libtool" >&5
echo "$as_me: error: Cannot find libtool" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -5529,7 +5730,7 @@ echo "$as_me: error: Cannot find libtool" >&2;}
if test -n "$LIBTOOL" && test "$LIBTOOL" != none
then
- echo "$as_me:5532: checking version of $LIBTOOL" >&5
+ echo "$as_me:5733: checking version of $LIBTOOL" >&5
echo $ECHO_N "checking version of $LIBTOOL... $ECHO_C" >&6
if test -n "$LIBTOOL" && test "$LIBTOOL" != none
@@ -5540,15 +5741,27 @@ else
fi
test -z "$cf_cv_libtool_version" && unset cf_cv_libtool_version
- echo "$as_me:5543: result: $cf_cv_libtool_version" >&5
+ echo "$as_me:5744: result: $cf_cv_libtool_version" >&5
echo "${ECHO_T}$cf_cv_libtool_version" >&6
- if test -z "$cf_cv_libtool_version" ; then
- { { echo "$as_me:5546: error: This is not GNU libtool" >&5
+ if test -n "$cf_cv_libtool_version"
+ then
+ cf_check_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '/^$/d' -e 's,[()],...,g' -e 's,[ ],-,g' -e '2,$d'`
+ case "x$cf_check_libtool_version" in
+ (*...GNU-libtool...*)
+ ;;
+ (*)
+ { { echo "$as_me:5753: error: This is not GNU libtool" >&5
echo "$as_me: error: This is not GNU libtool" >&2;}
{ (exit 1); exit 1; }; }
+ ;;
+ esac
+ else
+ { { echo "$as_me:5759: error: No version found for $LIBTOOL" >&5
+echo "$as_me: error: No version found for $LIBTOOL" >&2;}
+ { (exit 1); exit 1; }; }
fi
else
- { { echo "$as_me:5551: error: GNU libtool has not been found" >&5
+ { { echo "$as_me:5764: error: GNU libtool has not been found" >&5
echo "$as_me: error: GNU libtool has not been found" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -5584,7 +5797,7 @@ cf_list_models="$cf_list_models libtool"
else
-echo "$as_me:5587: checking if you want to build shared libraries" >&5
+echo "$as_me:5800: checking if you want to build shared libraries" >&5
echo $ECHO_N "checking if you want to build shared libraries... $ECHO_C" >&6
# Check whether --with-shared or --without-shared was given.
@@ -5594,11 +5807,11 @@ if test "${with_shared+set}" = set; then
else
with_shared=no
fi;
-echo "$as_me:5597: result: $with_shared" >&5
+echo "$as_me:5810: result: $with_shared" >&5
echo "${ECHO_T}$with_shared" >&6
test "x$with_shared" = "xyes" && cf_list_models="$cf_list_models shared"
-echo "$as_me:5601: checking if you want to build static libraries" >&5
+echo "$as_me:5814: checking if you want to build static libraries" >&5
echo $ECHO_N "checking if you want to build static libraries... $ECHO_C" >&6
# Check whether --with-normal or --without-normal was given.
@@ -5608,11 +5821,11 @@ if test "${with_normal+set}" = set; then
else
with_normal=yes
fi;
-echo "$as_me:5611: result: $with_normal" >&5
+echo "$as_me:5824: result: $with_normal" >&5
echo "${ECHO_T}$with_normal" >&6
test "x$with_normal" = "xyes" && cf_list_models="$cf_list_models normal"
-echo "$as_me:5615: checking if you want to build debug libraries" >&5
+echo "$as_me:5828: checking if you want to build debug libraries" >&5
echo $ECHO_N "checking if you want to build debug libraries... $ECHO_C" >&6
# Check whether --with-debug or --without-debug was given.
@@ -5622,11 +5835,11 @@ if test "${with_debug+set}" = set; then
else
with_debug=yes
fi;
-echo "$as_me:5625: result: $with_debug" >&5
+echo "$as_me:5838: result: $with_debug" >&5
echo "${ECHO_T}$with_debug" >&6
test "x$with_debug" = "xyes" && cf_list_models="$cf_list_models debug"
-echo "$as_me:5629: checking if you want to build profiling libraries" >&5
+echo "$as_me:5842: checking if you want to build profiling libraries" >&5
echo $ECHO_N "checking if you want to build profiling libraries... $ECHO_C" >&6
# Check whether --with-profile or --without-profile was given.
@@ -5636,7 +5849,7 @@ if test "${with_profile+set}" = set; then
else
with_profile=no
fi;
-echo "$as_me:5639: result: $with_profile" >&5
+echo "$as_me:5852: result: $with_profile" >&5
echo "${ECHO_T}$with_profile" >&6
test "x$with_profile" = "xyes" && cf_list_models="$cf_list_models profile"
@@ -5644,7 +5857,7 @@ fi
if test "X$cf_with_cxx_binding" != Xno; then
if test "x$with_shared" = "xyes"; then
-echo "$as_me:5647: checking if you want to build C++ shared libraries" >&5
+echo "$as_me:5860: checking if you want to build C++ shared libraries" >&5
echo $ECHO_N "checking if you want to build C++ shared libraries... $ECHO_C" >&6
# Check whether --with-cxx-shared or --without-cxx-shared was given.
@@ -5654,26 +5867,26 @@ if test "${with_cxx_shared+set}" = set; then
else
with_shared_cxx=no
fi;
-echo "$as_me:5657: result: $with_shared_cxx" >&5
+echo "$as_me:5870: result: $with_shared_cxx" >&5
echo "${ECHO_T}$with_shared_cxx" >&6
fi
fi
###############################################################################
-echo "$as_me:5664: checking for specified models" >&5
+echo "$as_me:5877: checking for specified models" >&5
echo $ECHO_N "checking for specified models... $ECHO_C" >&6
test -z "$cf_list_models" && cf_list_models=normal
test "$with_libtool" != "no" && cf_list_models=libtool
-echo "$as_me:5668: result: $cf_list_models" >&5
+echo "$as_me:5881: result: $cf_list_models" >&5
echo "${ECHO_T}$cf_list_models" >&6
### Use the first model as the default, and save its suffix for use in building
### up test-applications.
-echo "$as_me:5673: checking for default model" >&5
+echo "$as_me:5886: checking for default model" >&5
echo $ECHO_N "checking for default model... $ECHO_C" >&6
DFT_LWR_MODEL=`echo "$cf_list_models" | $AWK '{print $1}'`
-echo "$as_me:5676: result: $DFT_LWR_MODEL" >&5
+echo "$as_me:5889: result: $DFT_LWR_MODEL" >&5
echo "${ECHO_T}$DFT_LWR_MODEL" >&6
DFT_UPR_MODEL=`echo "$DFT_LWR_MODEL" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
@@ -5687,7 +5900,7 @@ LIB_NAME=ncurses
LIB_DIR=../lib
LIB_2ND=../../lib
-echo "$as_me:5690: checking if you want to have a library-prefix" >&5
+echo "$as_me:5903: checking if you want to have a library-prefix" >&5
echo $ECHO_N "checking if you want to have a library-prefix... $ECHO_C" >&6
# Check whether --with-lib-prefix or --without-lib-prefix was given.
@@ -5697,7 +5910,7 @@ if test "${with_lib_prefix+set}" = set; then
else
with_lib_prefix=auto
fi;
-echo "$as_me:5700: result: $with_lib_prefix" >&5
+echo "$as_me:5913: result: $with_lib_prefix" >&5
echo "${ECHO_T}$with_lib_prefix" >&6
if test "$with_lib_prefix" = auto
@@ -5728,19 +5941,413 @@ fi
LIB_SUFFIX=
- echo "$as_me:5731: checking for PATH separator" >&5
+ echo "$as_me:5944: checking for PATH separator" >&5
echo $ECHO_N "checking for PATH separator... $ECHO_C" >&6
case "$cf_cv_system_name" in
(os2*) PATH_SEPARATOR=';' ;;
(*) ${PATH_SEPARATOR:=':'} ;;
esac
- echo "$as_me:5738: result: $PATH_SEPARATOR" >&5
+ echo "$as_me:5951: result: $PATH_SEPARATOR" >&5
echo "${ECHO_T}$PATH_SEPARATOR" >&6
+# headers needed for checks...
+echo "$as_me:5955: checking for ANSI C header files" >&5
+echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
+if test "${ac_cv_header_stdc+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >"conftest.$ac_ext" <<_ACEOF
+#line 5961 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+_ACEOF
+if { (eval echo "$as_me:5969: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+ (eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
+ ac_status=$?
+ $EGREP -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:5975: \$? = $ac_status" >&5
+ (exit "$ac_status"); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ ac_cv_header_stdc=yes
+else
+ echo "$as_me: failed program was:" >&5
+ cat "conftest.$ac_ext" >&5
+ ac_cv_header_stdc=no
+fi
+rm -f conftest.err "conftest.$ac_ext"
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat >"conftest.$ac_ext" <<_ACEOF
+#line 5997 "configure"
+#include "confdefs.h"
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "memchr" >/dev/null 2>&1; then
+ :
+else
+ ac_cv_header_stdc=no
+fi
+rm -rf conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat >"conftest.$ac_ext" <<_ACEOF
+#line 6015 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "free" >/dev/null 2>&1; then
+ :
+else
+ ac_cv_header_stdc=no
+fi
+rm -rf conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ if test "$cross_compiling" = yes; then
+ :
+else
+ cat >"conftest.$ac_ext" <<_ACEOF
+#line 6036 "configure"
+#include "confdefs.h"
+#include <ctype.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main (void)
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ $ac_main_return(2);
+ $ac_main_return (0);
+}
+_ACEOF
+rm -f "conftest$ac_exeext"
+if { (eval echo "$as_me:6062: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:6065: \$? = $ac_status" >&5
+ (exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
+ { (eval echo "$as_me:6067: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:6070: \$? = $ac_status" >&5
+ (exit "$ac_status"); }; }; then
+ :
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+cat "conftest.$ac_ext" >&5
+ac_cv_header_stdc=no
+fi
+rm -f core ./core.* ./*.core "conftest$ac_exeext" "conftest.$ac_objext" "conftest.$ac_ext"
+fi
+fi
+fi
+echo "$as_me:6083: result: $ac_cv_header_stdc" >&5
+echo "${ECHO_T}$ac_cv_header_stdc" >&6
+if test $ac_cv_header_stdc = yes; then
+
+cat >>confdefs.h <<\EOF
+#define STDC_HEADERS 1
+EOF
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+ inttypes.h stdint.h unistd.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:6099: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >"conftest.$ac_ext" <<_ACEOF
+#line 6105 "configure"
+#include "confdefs.h"
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f "conftest.$ac_objext"
+if { (eval echo "$as_me:6111: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:6114: \$? = $ac_status" >&5
+ (exit "$ac_status"); } &&
+ { ac_try='test -s "conftest.$ac_objext"'
+ { (eval echo "$as_me:6117: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:6120: \$? = $ac_status" >&5
+ (exit "$ac_status"); }; }; then
+ eval "$as_ac_Header=yes"
+else
+ echo "$as_me: failed program was:" >&5
+cat "conftest.$ac_ext" >&5
+eval "$as_ac_Header=no"
+fi
+rm -f "conftest.$ac_objext" "conftest.$ac_ext"
+fi
+echo "$as_me:6130: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
+echo "${ECHO_T}`eval echo '${'"$as_ac_Header"'}'`" >&6
+if test "`eval echo '${'"$as_ac_Header"'}'`" = yes; then
+ cat >>confdefs.h <<EOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+EOF
+
+fi
+done
+
+echo "$as_me:6140: checking whether exit is declared" >&5
+echo $ECHO_N "checking whether exit is declared... $ECHO_C" >&6
+if test "${ac_cv_have_decl_exit+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >"conftest.$ac_ext" <<_ACEOF
+#line 6146 "configure"
+#include "confdefs.h"
+$ac_includes_default
+int
+main (void)
+{
+#ifndef exit
+ (void) exit;
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f "conftest.$ac_objext"
+if { (eval echo "$as_me:6161: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:6164: \$? = $ac_status" >&5
+ (exit "$ac_status"); } &&
+ { ac_try='test -s "conftest.$ac_objext"'
+ { (eval echo "$as_me:6167: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:6170: \$? = $ac_status" >&5
+ (exit "$ac_status"); }; }; then
+ ac_cv_have_decl_exit=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat "conftest.$ac_ext" >&5
+ac_cv_have_decl_exit=no
+fi
+rm -f "conftest.$ac_objext" "conftest.$ac_ext"
+fi
+echo "$as_me:6180: result: $ac_cv_have_decl_exit" >&5
+echo "${ECHO_T}$ac_cv_have_decl_exit" >&6
+
+ac_header_dirent=no
+for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
+ as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
+echo "$as_me:6186: checking for $ac_hdr that defines DIR" >&5
+echo $ECHO_N "checking for $ac_hdr that defines DIR... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >"conftest.$ac_ext" <<_ACEOF
+#line 6192 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#include <$ac_hdr>
+
+int
+main (void)
+{
+if ((DIR *) 0)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f "conftest.$ac_objext"
+if { (eval echo "$as_me:6207: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:6210: \$? = $ac_status" >&5
+ (exit "$ac_status"); } &&
+ { ac_try='test -s "conftest.$ac_objext"'
+ { (eval echo "$as_me:6213: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:6216: \$? = $ac_status" >&5
+ (exit "$ac_status"); }; }; then
+ eval "$as_ac_Header=yes"
+else
+ echo "$as_me: failed program was:" >&5
+cat "conftest.$ac_ext" >&5
+eval "$as_ac_Header=no"
+fi
+rm -f "conftest.$ac_objext" "conftest.$ac_ext"
+fi
+echo "$as_me:6226: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
+echo "${ECHO_T}`eval echo '${'"$as_ac_Header"'}'`" >&6
+if test "`eval echo '${'"$as_ac_Header"'}'`" = yes; then
+ cat >>confdefs.h <<EOF
+#define `echo "HAVE_$ac_hdr" | $as_tr_cpp` 1
+EOF
+
+ac_header_dirent=$ac_hdr; break
+fi
+
+done
+# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
+if test $ac_header_dirent = dirent.h; then
+ echo "$as_me:6239: checking for opendir in -ldir" >&5
+echo $ECHO_N "checking for opendir in -ldir... $ECHO_C" >&6
+if test "${ac_cv_lib_dir_opendir+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldir $LIBS"
+cat >"conftest.$ac_ext" <<_ACEOF
+#line 6247 "configure"
+#include "confdefs.h"
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char opendir (void);
+int
+main (void)
+{
+opendir ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f "conftest.$ac_objext" "conftest$ac_exeext"
+if { (eval echo "$as_me:6266: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:6269: \$? = $ac_status" >&5
+ (exit "$ac_status"); } &&
+ { ac_try='test -s "conftest$ac_exeext"'
+ { (eval echo "$as_me:6272: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:6275: \$? = $ac_status" >&5
+ (exit "$ac_status"); }; }; then
+ ac_cv_lib_dir_opendir=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat "conftest.$ac_ext" >&5
+ac_cv_lib_dir_opendir=no
+fi
+rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:6286: result: $ac_cv_lib_dir_opendir" >&5
+echo "${ECHO_T}$ac_cv_lib_dir_opendir" >&6
+if test "$ac_cv_lib_dir_opendir" = yes; then
+ LIBS="$LIBS -ldir"
+fi
+
+else
+ echo "$as_me:6293: checking for opendir in -lx" >&5
+echo $ECHO_N "checking for opendir in -lx... $ECHO_C" >&6
+if test "${ac_cv_lib_x_opendir+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lx $LIBS"
+cat >"conftest.$ac_ext" <<_ACEOF
+#line 6301 "configure"
+#include "confdefs.h"
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char opendir (void);
+int
+main (void)
+{
+opendir ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f "conftest.$ac_objext" "conftest$ac_exeext"
+if { (eval echo "$as_me:6320: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:6323: \$? = $ac_status" >&5
+ (exit "$ac_status"); } &&
+ { ac_try='test -s "conftest$ac_exeext"'
+ { (eval echo "$as_me:6326: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:6329: \$? = $ac_status" >&5
+ (exit "$ac_status"); }; }; then
+ ac_cv_lib_x_opendir=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat "conftest.$ac_ext" >&5
+ac_cv_lib_x_opendir=no
+fi
+rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:6340: result: $ac_cv_lib_x_opendir" >&5
+echo "${ECHO_T}$ac_cv_lib_x_opendir" >&6
+if test "$ac_cv_lib_x_opendir" = yes; then
+ LIBS="$LIBS -lx"
+fi
+
+fi
+
###############################################################################
-echo "$as_me:5743: checking if you want to build a separate terminfo library" >&5
+echo "$as_me:6350: checking if you want to build a separate terminfo library" >&5
echo $ECHO_N "checking if you want to build a separate terminfo library... $ECHO_C" >&6
# Check whether --with-termlib or --without-termlib was given.
@@ -5750,10 +6357,10 @@ if test "${with_termlib+set}" = set; then
else
with_termlib=no
fi;
-echo "$as_me:5753: result: $with_termlib" >&5
+echo "$as_me:6360: result: $with_termlib" >&5
echo "${ECHO_T}$with_termlib" >&6
-echo "$as_me:5756: checking if you want to build a separate tic library" >&5
+echo "$as_me:6363: checking if you want to build a separate tic library" >&5
echo $ECHO_N "checking if you want to build a separate tic library... $ECHO_C" >&6
# Check whether --with-ticlib or --without-ticlib was given.
@@ -5763,7 +6370,7 @@ if test "${with_ticlib+set}" = set; then
else
with_ticlib=no
fi;
-echo "$as_me:5766: result: $with_ticlib" >&5
+echo "$as_me:6373: result: $with_ticlib" >&5
echo "${ECHO_T}$with_ticlib" >&6
if test X"$CC_G_OPT" = X"" ; then
@@ -5776,7 +6383,7 @@ if test X"$CXX_G_OPT" = X"" ; then
test -n "$GXX" && test "x${ac_cv_prog_cxx_g}" != xyes && CXX_G_OPT=''
fi
-echo "$as_me:5779: checking for default loader flags" >&5
+echo "$as_me:6386: checking for default loader flags" >&5
echo $ECHO_N "checking for default loader flags... $ECHO_C" >&6
case "$DFT_LWR_MODEL" in
(libtool) LD_MODEL='' ;;
@@ -5785,13 +6392,13 @@ case "$DFT_LWR_MODEL" in
(profile) LD_MODEL='-pg';;
(shared) LD_MODEL='' ;;
esac
-echo "$as_me:5788: result: $LD_MODEL" >&5
-echo "${ECHO_T}$LD_MODEL" >&6
+echo "$as_me:6395: result: ${LD_MODEL:-(none)}" >&5
+echo "${ECHO_T}${LD_MODEL:-(none)}" >&6
case "$DFT_LWR_MODEL" in
(shared)
-echo "$as_me:5794: checking if rpath option should be used" >&5
+echo "$as_me:6401: checking if rpath option should be used" >&5
echo $ECHO_N "checking if rpath option should be used... $ECHO_C" >&6
# Check whether --enable-rpath or --disable-rpath was given.
@@ -5801,10 +6408,10 @@ if test "${enable_rpath+set}" = set; then
else
cf_cv_enable_rpath=no
fi;
-echo "$as_me:5804: result: $cf_cv_enable_rpath" >&5
+echo "$as_me:6411: result: $cf_cv_enable_rpath" >&5
echo "${ECHO_T}$cf_cv_enable_rpath" >&6
-echo "$as_me:5807: checking if shared libraries should be relinked during install" >&5
+echo "$as_me:6414: checking if shared libraries should be relinked during install" >&5
echo $ECHO_N "checking if shared libraries should be relinked during install... $ECHO_C" >&6
# Check whether --enable-relink or --disable-relink was given.
@@ -5814,7 +6421,7 @@ if test "${enable_relink+set}" = set; then
else
cf_cv_do_relink=yes
fi;
-echo "$as_me:5817: result: $cf_cv_do_relink" >&5
+echo "$as_me:6424: result: $cf_cv_do_relink" >&5
echo "${ECHO_T}$cf_cv_do_relink" >&6
;;
esac
@@ -5825,7 +6432,7 @@ rel_builddir=..
LD_RPATH_OPT=
if test "x$cf_cv_enable_rpath" != xno
then
- echo "$as_me:5828: checking for an rpath option" >&5
+ echo "$as_me:6435: checking for an rpath option" >&5
echo $ECHO_N "checking for an rpath option... $ECHO_C" >&6
case "$cf_cv_system_name" in
(irix*)
@@ -5856,12 +6463,12 @@ echo $ECHO_N "checking for an rpath option... $ECHO_C" >&6
(*)
;;
esac
- echo "$as_me:5859: result: $LD_RPATH_OPT" >&5
+ echo "$as_me:6466: result: $LD_RPATH_OPT" >&5
echo "${ECHO_T}$LD_RPATH_OPT" >&6
case "x$LD_RPATH_OPT" in
(x-R*)
- echo "$as_me:5864: checking if we need a space after rpath option" >&5
+ echo "$as_me:6471: checking if we need a space after rpath option" >&5
echo $ECHO_N "checking if we need a space after rpath option... $ECHO_C" >&6
cf_save_LIBS="$LIBS"
@@ -5882,7 +6489,7 @@ done
LIBS="$cf_add_libs"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 5885 "configure"
+#line 6492 "configure"
#include "confdefs.h"
int
@@ -5894,16 +6501,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:5897: \"$ac_link\"") >&5
+if { (eval echo "$as_me:6504: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:5900: \$? = $ac_status" >&5
+ echo "$as_me:6507: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:5903: \"$ac_try\"") >&5
+ { (eval echo "$as_me:6510: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:5906: \$? = $ac_status" >&5
+ echo "$as_me:6513: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_rpath_space=no
else
@@ -5913,7 +6520,7 @@ cf_rpath_space=yes
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS="$cf_save_LIBS"
- echo "$as_me:5916: result: $cf_rpath_space" >&5
+ echo "$as_me:6523: result: $cf_rpath_space" >&5
echo "${ECHO_T}$cf_rpath_space" >&6
test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT "
;;
@@ -5935,8 +6542,8 @@ fi
cf_ld_rpath_opt=
test "$cf_cv_enable_rpath" = yes && cf_ld_rpath_opt="$LD_RPATH_OPT"
- echo "$as_me:5938: checking if release/abi version should be used for shared libs" >&5
-echo $ECHO_N "checking if release/abi version should be used for shared libs... $ECHO_C" >&6
+ echo "$as_me:6545: checking whether to use release or ABI version in shared library file names" >&5
+echo $ECHO_N "checking whether to use release or ABI version in shared library file names... $ECHO_C" >&6
# Check whether --with-shlib-version or --without-shlib-version was given.
if test "${with_shlib_version+set}" = set; then
@@ -5950,9 +6557,9 @@ if test "${with_shlib_version+set}" = set; then
cf_cv_shlib_version=$withval
;;
(*)
- echo "$as_me:5953: result: $withval" >&5
+ echo "$as_me:6560: result: $withval" >&5
echo "${ECHO_T}$withval" >&6
- { { echo "$as_me:5955: error: option value must be one of: rel, abi, or auto" >&5
+ { { echo "$as_me:6562: error: option value must be one of: rel, abi, or auto" >&5
echo "$as_me: error: option value must be one of: rel, abi, or auto" >&2;}
{ (exit 1); exit 1; }; }
;;
@@ -5961,7 +6568,7 @@ echo "$as_me: error: option value must be one of: rel, abi, or auto" >&2;}
else
cf_cv_shlib_version=auto
fi;
- echo "$as_me:5964: result: $cf_cv_shlib_version" >&5
+ echo "$as_me:6571: result: $cf_cv_shlib_version" >&5
echo "${ECHO_T}$cf_cv_shlib_version" >&6
cf_cv_rm_so_locs=no
@@ -5984,35 +6591,35 @@ echo "${ECHO_T}$cf_cv_shlib_version" >&6
if test "$cf_try_fPIC" = yes
then
- echo "$as_me:5987: checking which $CC option to use" >&5
+ echo "$as_me:6594: checking which $CC option to use" >&5
echo $ECHO_N "checking which $CC option to use... $ECHO_C" >&6
cf_save_CFLAGS="$CFLAGS"
for CC_SHARED_OPTS in -fPIC -fpic ''
do
CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 5994 "configure"
+#line 6601 "configure"
#include "confdefs.h"
#include <stdio.h>
int
main (void)
{
-int x = 1
+int x = 1; (void)x
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:6006: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:6613: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:6009: \$? = $ac_status" >&5
+ echo "$as_me:6616: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:6012: \"$ac_try\"") >&5
+ { (eval echo "$as_me:6619: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:6015: \$? = $ac_status" >&5
+ echo "$as_me:6622: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
break
else
@@ -6021,7 +6628,7 @@ cat "conftest.$ac_ext" >&5
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
done
- echo "$as_me:6024: result: $CC_SHARED_OPTS" >&5
+ echo "$as_me:6631: result: $CC_SHARED_OPTS" >&5
echo "${ECHO_T}$CC_SHARED_OPTS" >&6
CFLAGS="$cf_save_CFLAGS"
fi
@@ -6092,7 +6699,7 @@ CF_EOF
MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -dynamiclib -install_name ${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
- echo "$as_me:6095: checking if ld -search_paths_first works" >&5
+ echo "$as_me:6702: checking if ld -search_paths_first works" >&5
echo $ECHO_N "checking if ld -search_paths_first works... $ECHO_C" >&6
if test "${cf_cv_ldflags_search_paths_first+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -6101,7 +6708,7 @@ else
cf_save_LDFLAGS=$LDFLAGS
LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 6104 "configure"
+#line 6711 "configure"
#include "confdefs.h"
int
@@ -6113,16 +6720,16 @@ int i;
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:6116: \"$ac_link\"") >&5
+if { (eval echo "$as_me:6723: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:6119: \$? = $ac_status" >&5
+ echo "$as_me:6726: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:6122: \"$ac_try\"") >&5
+ { (eval echo "$as_me:6729: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:6125: \$? = $ac_status" >&5
+ echo "$as_me:6732: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_ldflags_search_paths_first=yes
else
@@ -6133,12 +6740,23 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LDFLAGS=$cf_save_LDFLAGS
fi
-echo "$as_me:6136: result: $cf_cv_ldflags_search_paths_first" >&5
+echo "$as_me:6743: result: $cf_cv_ldflags_search_paths_first" >&5
echo "${ECHO_T}$cf_cv_ldflags_search_paths_first" >&6
if test "$cf_cv_ldflags_search_paths_first" = yes; then
LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
fi
;;
+ (haiku*)
+
+ test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
+ if test "$cf_cv_shlib_version" = rel; then
+ cf_cv_shared_soname='`basename $@ .${REL_VERSION}`.${ABI_VERSION}'
+ else
+ cf_cv_shared_soname='`basename $@`'
+ fi
+
+ MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $@'
+ ;;
(hpux[7-8]*)
# HP-UX 8.07 ld lacks "+b" option used for libdir search-list
if test "$GCC" != yes; then
@@ -6452,11 +7070,11 @@ CF_EOF
# tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2
# tested with SunOS 5.10 (solaris 10) and gcc 3.4.3
if test "$DFT_LWR_MODEL" = "shared" ; then
- LOCAL_LDFLAGS="-R \$(LOCAL_LIBDIR):\${libdir}"
+ LOCAL_LDFLAGS="-R\$(LOCAL_LIBDIR):\${libdir}"
LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
fi
if test "$cf_cv_enable_rpath" = yes ; then
- EXTRA_LDFLAGS="-R \${libdir} $EXTRA_LDFLAGS"
+ EXTRA_LDFLAGS="-R\${libdir} $EXTRA_LDFLAGS"
fi
test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
@@ -6472,7 +7090,7 @@ CF_EOF
do
CFLAGS="$cf_shared_opts $cf_save_CFLAGS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 6475 "configure"
+#line 7093 "configure"
#include "confdefs.h"
#include <stdio.h>
int
@@ -6484,16 +7102,16 @@ printf("Hello\\n");
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:6487: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:7105: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:6490: \$? = $ac_status" >&5
+ echo "$as_me:7108: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:6493: \"$ac_try\"") >&5
+ { (eval echo "$as_me:7111: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:6496: \$? = $ac_status" >&5
+ echo "$as_me:7114: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
break
else
@@ -6504,9 +7122,9 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
done
CFLAGS="$cf_save_CFLAGS"
CC_SHARED_OPTS=$cf_shared_opts
- MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -dy -G -h '$cf_cv_shared_soname' -o $@'
+ MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -dy -G -Wl,-h,'$cf_cv_shared_soname' -o $@'
else
- MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -dy -G -h '$cf_cv_shared_soname' -o $@'
+ MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -dy -G -Wl,-h,'$cf_cv_shared_soname' -o $@'
fi
;;
(sysv5uw7*|unix_sv*)
@@ -6530,7 +7148,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes
;;
(*)
- { echo "$as_me:6533: WARNING: ignored --with-shlib-version" >&5
+ { echo "$as_me:7151: WARNING: ignored --with-shlib-version" >&5
echo "$as_me: WARNING: ignored --with-shlib-version" >&2;}
;;
esac
@@ -6540,7 +7158,7 @@ echo "$as_me: WARNING: ignored --with-shlib-version" >&2;}
if test -n "$cf_try_cflags"
then
cat > conftest.$ac_ext <<EOF
-#line 6543 "${as_me:-configure}"
+#line 7161 "${as_me:-configure}"
#include <stdio.h>
int main(int argc, char *argv[])
{
@@ -6552,18 +7170,18 @@ EOF
for cf_opt in $cf_try_cflags
do
CFLAGS="$cf_save_CFLAGS -$cf_opt"
- echo "$as_me:6555: checking if CFLAGS option -$cf_opt works" >&5
+ echo "$as_me:7173: checking if CFLAGS option -$cf_opt works" >&5
echo $ECHO_N "checking if CFLAGS option -$cf_opt works... $ECHO_C" >&6
- if { (eval echo "$as_me:6557: \"$ac_compile\"") >&5
+ if { (eval echo "$as_me:7175: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:6560: \$? = $ac_status" >&5
+ echo "$as_me:7178: \$? = $ac_status" >&5
(exit "$ac_status"); }; then
- echo "$as_me:6562: result: yes" >&5
+ echo "$as_me:7180: result: yes" >&5
echo "${ECHO_T}yes" >&6
cf_save_CFLAGS="$CFLAGS"
else
- echo "$as_me:6566: result: no" >&5
+ echo "$as_me:7184: result: no" >&5
echo "${ECHO_T}no" >&6
fi
done
@@ -6578,17 +7196,17 @@ echo "${ECHO_T}no" >&6
test -n "$verbose" && echo " CC_SHARED_OPTS: $CC_SHARED_OPTS" 1>&6
-echo "${as_me:-configure}:6581: testing CC_SHARED_OPTS: $CC_SHARED_OPTS ..." 1>&5
+echo "${as_me:-configure}:7199: testing CC_SHARED_OPTS: $CC_SHARED_OPTS ..." 1>&5
test -n "$verbose" && echo " MK_SHARED_LIB: $MK_SHARED_LIB" 1>&6
-echo "${as_me:-configure}:6585: testing MK_SHARED_LIB: $MK_SHARED_LIB ..." 1>&5
+echo "${as_me:-configure}:7203: testing MK_SHARED_LIB: $MK_SHARED_LIB ..." 1>&5
for model in $cf_list_models ; do
case "$model" in
(libtool)
-echo "$as_me:6591: checking for additional libtool options" >&5
+echo "$as_me:7209: checking for additional libtool options" >&5
echo $ECHO_N "checking for additional libtool options... $ECHO_C" >&6
# Check whether --with-libtool-opts or --without-libtool-opts was given.
@@ -6598,7 +7216,7 @@ if test "${with_libtool_opts+set}" = set; then
else
with_libtool_opts=no
fi;
-echo "$as_me:6601: result: $with_libtool_opts" >&5
+echo "$as_me:7219: result: $with_libtool_opts" >&5
echo "${ECHO_T}$with_libtool_opts" >&6
case .$with_libtool_opts in
@@ -6609,7 +7227,7 @@ case .$with_libtool_opts in
;;
esac
-echo "$as_me:6612: checking if exported-symbols file should be used" >&5
+echo "$as_me:7230: checking if exported-symbols file should be used" >&5
echo $ECHO_N "checking if exported-symbols file should be used... $ECHO_C" >&6
# Check whether --with-export-syms or --without-export-syms was given.
@@ -6624,7 +7242,7 @@ then
with_export_syms='${top_srcdir}/package/${PACKAGE}.sym'
fi
-echo "$as_me:6627: result: $with_export_syms" >&5
+echo "$as_me:7245: result: $with_export_syms" >&5
echo "${ECHO_T}$with_export_syms" >&6
if test "x$with_export_syms" != xno
then
@@ -6635,15 +7253,15 @@ fi
;;
(shared)
if test "$CC_SHARED_OPTS" = "unknown"; then
- { { echo "$as_me:6638: error: Shared libraries are not supported in this version" >&5
+ { { echo "$as_me:7256: error: Shared libraries are not supported in this version" >&5
echo "$as_me: error: Shared libraries are not supported in this version" >&2;}
{ (exit 1); exit 1; }; }
fi
# workaround for inept transition to PIE vs PIC...
- echo "$as_me:6643: checking if current CFLAGS link properly" >&5
+ echo "$as_me:7261: checking if current CFLAGS link properly" >&5
echo $ECHO_N "checking if current CFLAGS link properly... $ECHO_C" >&6
cat >"conftest.$ac_ext" <<_ACEOF
-#line 6646 "configure"
+#line 7264 "configure"
#include "confdefs.h"
#include <stdio.h>
int
@@ -6655,16 +7273,16 @@ printf("Hello work\\n");
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:6658: \"$ac_link\"") >&5
+if { (eval echo "$as_me:7276: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:6661: \$? = $ac_status" >&5
+ echo "$as_me:7279: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:6664: \"$ac_try\"") >&5
+ { (eval echo "$as_me:7282: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:6667: \$? = $ac_status" >&5
+ echo "$as_me:7285: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cflags_work=yes
else
@@ -6673,18 +7291,18 @@ cat "conftest.$ac_ext" >&5
cf_cflags_work=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
- echo "$as_me:6676: result: $cf_cflags_work" >&5
+ echo "$as_me:7294: result: $cf_cflags_work" >&5
echo "${ECHO_T}$cf_cflags_work" >&6
if test "$cf_cflags_work" = no
then
test -n "$verbose" && echo " try to work around by appending shared-options" 1>&6
-echo "${as_me:-configure}:6682: testing try to work around by appending shared-options ..." 1>&5
+echo "${as_me:-configure}:7300: testing try to work around by appending shared-options ..." 1>&5
CFLAGS="$CFLAGS $CC_SHARED_OPTS"
fi
-echo "$as_me:6687: checking if versioned-symbols file should be used" >&5
+echo "$as_me:7305: checking if versioned-symbols file should be used" >&5
echo $ECHO_N "checking if versioned-symbols file should be used... $ECHO_C" >&6
# Check whether --with-versioned-syms or --without-versioned-syms was given.
@@ -6702,18 +7320,18 @@ case "x$with_versioned_syms" in
(xno)
;;
(x/*)
- test -f "$with_versioned_syms" || { { echo "$as_me:6705: error: expected a filename: $with_versioned_syms" >&5
+ test -f "$with_versioned_syms" || { { echo "$as_me:7323: error: expected a filename: $with_versioned_syms" >&5
echo "$as_me: error: expected a filename: $with_versioned_syms" >&2;}
{ (exit 1); exit 1; }; }
;;
(*)
- test -f "$with_versioned_syms" || { { echo "$as_me:6710: error: expected a filename: $with_versioned_syms" >&5
+ test -f "$with_versioned_syms" || { { echo "$as_me:7328: error: expected a filename: $with_versioned_syms" >&5
echo "$as_me: error: expected a filename: $with_versioned_syms" >&2;}
{ (exit 1); exit 1; }; }
with_versioned_syms=`pwd`/"$with_versioned_syms"
;;
esac
-echo "$as_me:6716: result: $with_versioned_syms" >&5
+echo "$as_me:7334: result: $with_versioned_syms" >&5
echo "${ECHO_T}$with_versioned_syms" >&6
RESULTING_SYMS=
@@ -6729,7 +7347,7 @@ then
MK_SHARED_LIB=`echo "$MK_SHARED_LIB" | sed -e "s%-Wl,%\\${VERSIONED_SYMS} -Wl,%"`
test -n "$verbose" && echo " MK_SHARED_LIB: $MK_SHARED_LIB" 1>&6
-echo "${as_me:-configure}:6732: testing MK_SHARED_LIB: $MK_SHARED_LIB ..." 1>&5
+echo "${as_me:-configure}:7350: testing MK_SHARED_LIB: $MK_SHARED_LIB ..." 1>&5
;;
(*-dy\ *)
@@ -6737,11 +7355,11 @@ echo "${as_me:-configure}:6732: testing MK_SHARED_LIB: $MK_SHARED_LIB ..." 1>&5
MK_SHARED_LIB=`echo "$MK_SHARED_LIB" | sed -e "s%-dy%\\${VERSIONED_SYMS} -dy%"`
test -n "$verbose" && echo " MK_SHARED_LIB: $MK_SHARED_LIB" 1>&6
-echo "${as_me:-configure}:6740: testing MK_SHARED_LIB: $MK_SHARED_LIB ..." 1>&5
+echo "${as_me:-configure}:7358: testing MK_SHARED_LIB: $MK_SHARED_LIB ..." 1>&5
;;
(*)
- { echo "$as_me:6744: WARNING: this system does not support versioned-symbols" >&5
+ { echo "$as_me:7362: WARNING: this system does not support versioned-symbols" >&5
echo "$as_me: WARNING: this system does not support versioned-symbols" >&2;}
;;
esac
@@ -6753,7 +7371,7 @@ echo "$as_me: WARNING: this system does not support versioned-symbols" >&2;}
# symbols.
if test "x$VERSIONED_SYMS" != "x"
then
- echo "$as_me:6756: checking if wildcards can be used to selectively omit symbols" >&5
+ echo "$as_me:7374: checking if wildcards can be used to selectively omit symbols" >&5
echo $ECHO_N "checking if wildcards can be used to selectively omit symbols... $ECHO_C" >&6
WILDCARD_SYMS=no
@@ -6790,16 +7408,16 @@ local:
} submodule_1.0;
EOF
cat >conftest.$ac_ext <<EOF
-#line 6793 "configure"
-int _ismissing(void) { return 1; }
-int _localf1(void) { return 1; }
-int _localf2(void) { return 2; }
-int globalf1(void) { return 1; }
-int globalf2(void) { return 2; }
-int _sublocalf1(void) { return 1; }
-int _sublocalf2(void) { return 2; }
-int subglobalf1(void) { return 1; }
-int subglobalf2(void) { return 2; }
+#line 7411 "configure"
+extern int _ismissing(void); int _ismissing(void) { return 1; }
+extern int _localf1(void); int _localf1(void) { return 1; }
+extern int _localf2(void); int _localf2(void) { return 2; }
+extern int globalf1(void); int globalf1(void) { return 1; }
+extern int globalf2(void); int globalf2(void) { return 2; }
+extern int _sublocalf1(void); int _sublocalf1(void) { return 1; }
+extern int _sublocalf2(void); int _sublocalf2(void) { return 2; }
+extern int subglobalf1(void); int subglobalf1(void) { return 1; }
+extern int subglobalf2(void); int subglobalf2(void) { return 2; }
EOF
cat >conftest.mk <<EOF
CC=${CC}
@@ -6821,7 +7439,7 @@ EOF
cf_missing="`nm -P conftest.so 2>&5 |${FGREP-fgrep} _ismissing | ${EGREP-egrep} '[ ][DT][ ]'`"
test -n "$cf_missing" && WILDCARD_SYMS=yes
fi
- echo "$as_me:6824: result: $WILDCARD_SYMS" >&5
+ echo "$as_me:7442: result: $WILDCARD_SYMS" >&5
echo "${ECHO_T}$WILDCARD_SYMS" >&6
rm -f conftest.*
fi
@@ -6834,7 +7452,7 @@ done
### Checks for special libraries, must be done up-front.
SHLIB_LIST=""
-echo "$as_me:6837: checking if you want to link with the GPM mouse library" >&5
+echo "$as_me:7455: checking if you want to link with the GPM mouse library" >&5
echo $ECHO_N "checking if you want to link with the GPM mouse library... $ECHO_C" >&6
# Check whether --with-gpm or --without-gpm was given.
@@ -6844,27 +7462,27 @@ if test "${with_gpm+set}" = set; then
else
with_gpm=maybe
fi;
-echo "$as_me:6847: result: $with_gpm" >&5
+echo "$as_me:7465: result: $with_gpm" >&5
echo "${ECHO_T}$with_gpm" >&6
if test "$with_gpm" != no ; then
- echo "$as_me:6851: checking for gpm.h" >&5
+ echo "$as_me:7469: checking for gpm.h" >&5
echo $ECHO_N "checking for gpm.h... $ECHO_C" >&6
if test "${ac_cv_header_gpm_h+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 6857 "configure"
+#line 7475 "configure"
#include "confdefs.h"
#include <gpm.h>
_ACEOF
-if { (eval echo "$as_me:6861: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:7479: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:6867: \$? = $ac_status" >&5
+ echo "$as_me:7485: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -6883,7 +7501,7 @@ else
fi
rm -f conftest.err "conftest.$ac_ext"
fi
-echo "$as_me:6886: result: $ac_cv_header_gpm_h" >&5
+echo "$as_me:7504: result: $ac_cv_header_gpm_h" >&5
echo "${ECHO_T}$ac_cv_header_gpm_h" >&6
if test "$ac_cv_header_gpm_h" = yes; then
@@ -6894,7 +7512,7 @@ EOF
if test "$with_gpm" != yes && test "$with_gpm" != maybe ; then
test -n "$verbose" && echo " assuming we really have GPM library" 1>&6
-echo "${as_me:-configure}:6897: testing assuming we really have GPM library ..." 1>&5
+echo "${as_me:-configure}:7515: testing assuming we really have GPM library ..." 1>&5
cat >>confdefs.h <<\EOF
#define HAVE_LIBGPM 1
@@ -6902,7 +7520,7 @@ EOF
with_gpm=yes
else
- echo "$as_me:6905: checking for Gpm_Open in -lgpm" >&5
+ echo "$as_me:7523: checking for Gpm_Open in -lgpm" >&5
echo $ECHO_N "checking for Gpm_Open in -lgpm... $ECHO_C" >&6
if test "${ac_cv_lib_gpm_Gpm_Open+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -6910,7 +7528,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lgpm $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 6913 "configure"
+#line 7531 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -6919,7 +7537,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char Gpm_Open ();
+char Gpm_Open (void);
int
main (void)
{
@@ -6929,16 +7547,16 @@ Gpm_Open ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:6932: \"$ac_link\"") >&5
+if { (eval echo "$as_me:7550: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:6935: \$? = $ac_status" >&5
+ echo "$as_me:7553: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:6938: \"$ac_try\"") >&5
+ { (eval echo "$as_me:7556: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:6941: \$? = $ac_status" >&5
+ echo "$as_me:7559: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_gpm_Gpm_Open=yes
else
@@ -6949,18 +7567,18 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:6952: result: $ac_cv_lib_gpm_Gpm_Open" >&5
+echo "$as_me:7570: result: $ac_cv_lib_gpm_Gpm_Open" >&5
echo "${ECHO_T}$ac_cv_lib_gpm_Gpm_Open" >&6
if test "$ac_cv_lib_gpm_Gpm_Open" = yes; then
with_gpm=yes
else
if test "$with_gpm" = maybe; then
- { echo "$as_me:6959: WARNING: Cannot link with GPM library" >&5
+ { echo "$as_me:7577: WARNING: Cannot link with GPM library" >&5
echo "$as_me: WARNING: Cannot link with GPM library" >&2;}
with_gpm=no
else
- { { echo "$as_me:6963: error: Cannot link with GPM library" >&5
+ { { echo "$as_me:7581: error: Cannot link with GPM library" >&5
echo "$as_me: error: Cannot link with GPM library" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -6971,7 +7589,7 @@ fi
else
- test "$with_gpm" != maybe && { echo "$as_me:6974: WARNING: Cannot find GPM header" >&5
+ test "$with_gpm" != maybe && { echo "$as_me:7592: WARNING: Cannot find GPM header" >&5
echo "$as_me: WARNING: Cannot find GPM header" >&2;}
with_gpm=no
@@ -6980,7 +7598,7 @@ fi
fi
if test "$with_gpm" != no ; then
- echo "$as_me:6983: checking if you want to load GPM dynamically" >&5
+ echo "$as_me:7601: checking if you want to load GPM dynamically" >&5
echo $ECHO_N "checking if you want to load GPM dynamically... $ECHO_C" >&6
# Check whether --with-dlsym or --without-dlsym was given.
@@ -6990,18 +7608,18 @@ if test "${with_dlsym+set}" = set; then
else
with_dlsym=yes
fi;
- echo "$as_me:6993: result: $with_dlsym" >&5
+ echo "$as_me:7611: result: $with_dlsym" >&5
echo "${ECHO_T}$with_dlsym" >&6
if test "x$with_dlsym" = xyes ; then
cf_have_dlsym=no
-echo "$as_me:6998: checking for dlsym" >&5
+echo "$as_me:7616: checking for dlsym" >&5
echo $ECHO_N "checking for dlsym... $ECHO_C" >&6
if test "${ac_cv_func_dlsym+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 7004 "configure"
+#line 7622 "configure"
#include "confdefs.h"
#define dlsym autoconf_temporary
#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */
@@ -7032,16 +7650,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:7035: \"$ac_link\"") >&5
+if { (eval echo "$as_me:7653: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:7038: \$? = $ac_status" >&5
+ echo "$as_me:7656: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:7041: \"$ac_try\"") >&5
+ { (eval echo "$as_me:7659: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:7044: \$? = $ac_status" >&5
+ echo "$as_me:7662: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_func_dlsym=yes
else
@@ -7051,14 +7669,14 @@ ac_cv_func_dlsym=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:7054: result: $ac_cv_func_dlsym" >&5
+echo "$as_me:7672: result: $ac_cv_func_dlsym" >&5
echo "${ECHO_T}$ac_cv_func_dlsym" >&6
if test "$ac_cv_func_dlsym" = yes; then
cf_have_dlsym=yes
else
cf_have_libdl=no
-echo "$as_me:7061: checking for dlsym in -ldl" >&5
+echo "$as_me:7679: checking for dlsym in -ldl" >&5
echo $ECHO_N "checking for dlsym in -ldl... $ECHO_C" >&6
if test "${ac_cv_lib_dl_dlsym+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -7066,7 +7684,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-ldl $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 7069 "configure"
+#line 7687 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -7075,7 +7693,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char dlsym ();
+char dlsym (void);
int
main (void)
{
@@ -7085,16 +7703,16 @@ dlsym ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:7088: \"$ac_link\"") >&5
+if { (eval echo "$as_me:7706: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:7091: \$? = $ac_status" >&5
+ echo "$as_me:7709: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:7094: \"$ac_try\"") >&5
+ { (eval echo "$as_me:7712: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:7097: \$? = $ac_status" >&5
+ echo "$as_me:7715: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_dl_dlsym=yes
else
@@ -7105,7 +7723,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:7108: result: $ac_cv_lib_dl_dlsym" >&5
+echo "$as_me:7726: result: $ac_cv_lib_dl_dlsym" >&5
echo "${ECHO_T}$ac_cv_lib_dl_dlsym" >&6
if test "$ac_cv_lib_dl_dlsym" = yes; then
@@ -7134,10 +7752,10 @@ done
LIBS="$cf_add_libs"
}
- echo "$as_me:7137: checking whether able to link to dl*() functions" >&5
+ echo "$as_me:7755: checking whether able to link to dl*() functions" >&5
echo $ECHO_N "checking whether able to link to dl*() functions... $ECHO_C" >&6
cat >"conftest.$ac_ext" <<_ACEOF
-#line 7140 "configure"
+#line 7758 "configure"
#include "confdefs.h"
#include <dlfcn.h>
int
@@ -7155,16 +7773,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:7158: \"$ac_link\"") >&5
+if { (eval echo "$as_me:7776: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:7161: \$? = $ac_status" >&5
+ echo "$as_me:7779: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:7164: \"$ac_try\"") >&5
+ { (eval echo "$as_me:7782: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:7167: \$? = $ac_status" >&5
+ echo "$as_me:7785: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cat >>confdefs.h <<\EOF
@@ -7175,15 +7793,15 @@ else
echo "$as_me: failed program was:" >&5
cat "conftest.$ac_ext" >&5
- { { echo "$as_me:7178: error: Cannot link test program for libdl" >&5
+ { { echo "$as_me:7796: error: Cannot link test program for libdl" >&5
echo "$as_me: error: Cannot link test program for libdl" >&2;}
{ (exit 1); exit 1; }; }
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
- echo "$as_me:7183: result: ok" >&5
+ echo "$as_me:7801: result: ok" >&5
echo "${ECHO_T}ok" >&6
else
- { { echo "$as_me:7186: error: Cannot find dlsym function" >&5
+ { { echo "$as_me:7804: error: Cannot find dlsym function" >&5
echo "$as_me: error: Cannot find dlsym function" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -7191,12 +7809,12 @@ fi
if test "x$with_gpm" != xyes ; then
test -n "$verbose" && echo " assuming soname for gpm is $with_gpm" 1>&6
-echo "${as_me:-configure}:7194: testing assuming soname for gpm is $with_gpm ..." 1>&5
+echo "${as_me:-configure}:7812: testing assuming soname for gpm is $with_gpm ..." 1>&5
cf_cv_gpm_soname="$with_gpm"
else
-echo "$as_me:7199: checking for soname of gpm library" >&5
+echo "$as_me:7817: checking for soname of gpm library" >&5
echo $ECHO_N "checking for soname of gpm library... $ECHO_C" >&6
if test "${cf_cv_gpm_soname+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -7230,15 +7848,15 @@ for cf_add_1lib in $cf_add_0lib; do
done
LIBS="$cf_add_libs"
- if { (eval echo "$as_me:7233: \"$ac_compile\"") >&5
+ if { (eval echo "$as_me:7851: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:7236: \$? = $ac_status" >&5
+ echo "$as_me:7854: \$? = $ac_status" >&5
(exit "$ac_status"); } ; then
- if { (eval echo "$as_me:7238: \"$ac_link\"") >&5
+ if { (eval echo "$as_me:7856: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:7241: \$? = $ac_status" >&5
+ echo "$as_me:7859: \$? = $ac_status" >&5
(exit "$ac_status"); } ; then
cf_cv_gpm_soname="`ldd \"conftest$ac_exeext\" 2>/dev/null | sed -e 's,^.*/,,' -e 's, .*$,,' | ${FGREP-fgrep} libgpm.`"
test -z "$cf_cv_gpm_soname" && cf_cv_gpm_soname=unknown
@@ -7249,7 +7867,7 @@ LIBS="$cf_save_LIBS"
fi
fi
-echo "$as_me:7252: result: $cf_cv_gpm_soname" >&5
+echo "$as_me:7870: result: $cf_cv_gpm_soname" >&5
echo "${ECHO_T}$cf_cv_gpm_soname" >&6
fi
@@ -7317,7 +7935,7 @@ cat >>confdefs.h <<\EOF
#define HAVE_LIBGPM 1
EOF
-echo "$as_me:7320: checking for Gpm_Wgetch in -lgpm" >&5
+echo "$as_me:7938: checking for Gpm_Wgetch in -lgpm" >&5
echo $ECHO_N "checking for Gpm_Wgetch in -lgpm... $ECHO_C" >&6
if test "${ac_cv_lib_gpm_Gpm_Wgetch+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -7325,7 +7943,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lgpm $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 7328 "configure"
+#line 7946 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -7334,7 +7952,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char Gpm_Wgetch ();
+char Gpm_Wgetch (void);
int
main (void)
{
@@ -7344,16 +7962,16 @@ Gpm_Wgetch ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:7347: \"$ac_link\"") >&5
+if { (eval echo "$as_me:7965: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:7350: \$? = $ac_status" >&5
+ echo "$as_me:7968: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:7353: \"$ac_try\"") >&5
+ { (eval echo "$as_me:7971: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:7356: \$? = $ac_status" >&5
+ echo "$as_me:7974: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_gpm_Gpm_Wgetch=yes
else
@@ -7364,11 +7982,11 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:7367: result: $ac_cv_lib_gpm_Gpm_Wgetch" >&5
+echo "$as_me:7985: result: $ac_cv_lib_gpm_Gpm_Wgetch" >&5
echo "${ECHO_T}$ac_cv_lib_gpm_Gpm_Wgetch" >&6
if test "$ac_cv_lib_gpm_Gpm_Wgetch" = yes; then
-echo "$as_me:7371: checking if GPM is weakly bound to curses library" >&5
+echo "$as_me:7989: checking if GPM is weakly bound to curses library" >&5
echo $ECHO_N "checking if GPM is weakly bound to curses library... $ECHO_C" >&6
if test "${cf_cv_check_gpm_wgetch+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -7392,15 +8010,15 @@ CF_EOF
# to rely on the static library, noting that some packagers may not
# include it.
LIBS="-static -lgpm -dynamic $LIBS"
- if { (eval echo "$as_me:7395: \"$ac_compile\"") >&5
+ if { (eval echo "$as_me:8013: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:7398: \$? = $ac_status" >&5
+ echo "$as_me:8016: \$? = $ac_status" >&5
(exit "$ac_status"); } ; then
- if { (eval echo "$as_me:7400: \"$ac_link\"") >&5
+ if { (eval echo "$as_me:8018: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:7403: \$? = $ac_status" >&5
+ echo "$as_me:8021: \$? = $ac_status" >&5
(exit "$ac_status"); } ; then
cf_cv_check_gpm_wgetch="`nm \"conftest$ac_exeext\" | ${EGREP-egrep} '\<wgetch\>' | ${EGREP-egrep} '\<[vVwW]\>'`"
test -n "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=yes
@@ -7412,11 +8030,11 @@ CF_EOF
fi
fi
-echo "$as_me:7415: result: $cf_cv_check_gpm_wgetch" >&5
+echo "$as_me:8033: result: $cf_cv_check_gpm_wgetch" >&5
echo "${ECHO_T}$cf_cv_check_gpm_wgetch" >&6
if test "$cf_cv_check_gpm_wgetch" != yes ; then
- { echo "$as_me:7419: WARNING: GPM library is already linked with curses - read the FAQ" >&5
+ { echo "$as_me:8037: WARNING: GPM library is already linked with curses - read the FAQ" >&5
echo "$as_me: WARNING: GPM library is already linked with curses - read the FAQ" >&2;}
fi
@@ -7424,7 +8042,7 @@ fi
fi
-echo "$as_me:7427: checking if you want to use PCRE2 for regular-expressions" >&5
+echo "$as_me:8045: checking if you want to use PCRE2 for regular-expressions" >&5
echo $ECHO_N "checking if you want to use PCRE2 for regular-expressions... $ECHO_C" >&6
# Check whether --with-pcre2 or --without-pcre2 was given.
@@ -7433,7 +8051,7 @@ if test "${with_pcre2+set}" = set; then
fi;
test -z "$with_pcre2" && with_pcre2=no
-echo "$as_me:7436: result: $with_pcre2" >&5
+echo "$as_me:8054: result: $with_pcre2" >&5
echo "${ECHO_T}$with_pcre2" >&6
if test "x$with_pcre2" != xno ; then
@@ -7444,17 +8062,17 @@ if test "x$with_pcre2" != xno ; then
if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists "$cf_with_pcre2"; then
test -n "$verbose" && echo " found package $cf_with_pcre2" 1>&6
-echo "${as_me:-configure}:7447: testing found package $cf_with_pcre2 ..." 1>&5
+echo "${as_me:-configure}:8065: testing found package $cf_with_pcre2 ..." 1>&5
cf_pkgconfig_incs="`$PKG_CONFIG --cflags "$cf_with_pcre2" 2>/dev/null`"
cf_pkgconfig_libs="`$PKG_CONFIG --libs "$cf_with_pcre2" 2>/dev/null`"
test -n "$verbose" && echo " package $cf_with_pcre2 CFLAGS: $cf_pkgconfig_incs" 1>&6
-echo "${as_me:-configure}:7453: testing package $cf_with_pcre2 CFLAGS: $cf_pkgconfig_incs ..." 1>&5
+echo "${as_me:-configure}:8071: testing package $cf_with_pcre2 CFLAGS: $cf_pkgconfig_incs ..." 1>&5
test -n "$verbose" && echo " package $cf_with_pcre2 LIBS: $cf_pkgconfig_libs" 1>&6
-echo "${as_me:-configure}:7457: testing package $cf_with_pcre2 LIBS: $cf_pkgconfig_libs ..." 1>&5
+echo "${as_me:-configure}:8075: testing package $cf_with_pcre2 LIBS: $cf_pkgconfig_libs ..." 1>&5
cf_fix_cppflags=no
cf_new_cflags=
@@ -7578,7 +8196,7 @@ else
fi
done
- cf_with_pcre2_ok=yes || { { echo "$as_me:7581: error: Cannot find PCRE2 library" >&5
+ cf_with_pcre2_ok=yes || { { echo "$as_me:8199: error: Cannot find PCRE2 library" >&5
echo "$as_me: error: Cannot find PCRE2 library" >&2;}
{ (exit 1); exit 1; }; }
@@ -7591,7 +8209,7 @@ EOF
(*pcre2-posix*|*pcreposix*)
;;
(*)
- echo "$as_me:7594: checking for regcomp in -lpcre2-posix" >&5
+ echo "$as_me:8212: checking for regcomp in -lpcre2-posix" >&5
echo $ECHO_N "checking for regcomp in -lpcre2-posix... $ECHO_C" >&6
if test "${ac_cv_lib_pcre2_posix_regcomp+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -7599,7 +8217,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lpcre2-posix $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 7602 "configure"
+#line 8220 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -7608,7 +8226,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char regcomp ();
+char regcomp (void);
int
main (void)
{
@@ -7618,16 +8236,16 @@ regcomp ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:7621: \"$ac_link\"") >&5
+if { (eval echo "$as_me:8239: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:7624: \$? = $ac_status" >&5
+ echo "$as_me:8242: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:7627: \"$ac_try\"") >&5
+ { (eval echo "$as_me:8245: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:7630: \$? = $ac_status" >&5
+ echo "$as_me:8248: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_pcre2_posix_regcomp=yes
else
@@ -7638,7 +8256,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:7641: result: $ac_cv_lib_pcre2_posix_regcomp" >&5
+echo "$as_me:8259: result: $ac_cv_lib_pcre2_posix_regcomp" >&5
echo "${ECHO_T}$ac_cv_lib_pcre2_posix_regcomp" >&6
if test "$ac_cv_lib_pcre2_posix_regcomp" = yes; then
@@ -7659,7 +8277,7 @@ done
LIBS="$cf_add_libs"
else
- echo "$as_me:7662: checking for regcomp in -lpcreposix" >&5
+ echo "$as_me:8280: checking for regcomp in -lpcreposix" >&5
echo $ECHO_N "checking for regcomp in -lpcreposix... $ECHO_C" >&6
if test "${ac_cv_lib_pcreposix_regcomp+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -7667,7 +8285,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lpcreposix $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 7670 "configure"
+#line 8288 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -7676,7 +8294,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char regcomp ();
+char regcomp (void);
int
main (void)
{
@@ -7686,16 +8304,16 @@ regcomp ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:7689: \"$ac_link\"") >&5
+if { (eval echo "$as_me:8307: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:7692: \$? = $ac_status" >&5
+ echo "$as_me:8310: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:7695: \"$ac_try\"") >&5
+ { (eval echo "$as_me:8313: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:7698: \$? = $ac_status" >&5
+ echo "$as_me:8316: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_pcreposix_regcomp=yes
else
@@ -7706,7 +8324,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:7709: result: $ac_cv_lib_pcreposix_regcomp" >&5
+echo "$as_me:8327: result: $ac_cv_lib_pcreposix_regcomp" >&5
echo "${ECHO_T}$ac_cv_lib_pcreposix_regcomp" >&6
if test "$ac_cv_lib_pcreposix_regcomp" = yes; then
@@ -7727,7 +8345,7 @@ done
LIBS="$cf_add_libs"
else
- { { echo "$as_me:7730: error: Cannot find PCRE2 POSIX library" >&5
+ { { echo "$as_me:8348: error: Cannot find PCRE2 POSIX library" >&5
echo "$as_me: error: Cannot find PCRE2 POSIX library" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -7742,23 +8360,23 @@ fi
for ac_header in pcre2posix.h pcreposix.h
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:7745: checking for $ac_header" >&5
+echo "$as_me:8363: checking for $ac_header" >&5
echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 7751 "configure"
+#line 8369 "configure"
#include "confdefs.h"
#include <$ac_header>
_ACEOF
-if { (eval echo "$as_me:7755: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:8373: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:7761: \$? = $ac_status" >&5
+ echo "$as_me:8379: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -7777,7 +8395,7 @@ else
fi
rm -f conftest.err "conftest.$ac_ext"
fi
-echo "$as_me:7780: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
+echo "$as_me:8398: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
echo "${ECHO_T}`eval echo '${'"$as_ac_Header"'}'`" >&6
if test "`eval echo '${'"$as_ac_Header"'}'`" = yes; then
cat >>confdefs.h <<EOF
@@ -7787,11 +8405,80 @@ EOF
fi
done
+for ac_func in PCRE2regcomp
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:8411: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >"conftest.$ac_ext" <<_ACEOF
+#line 8417 "configure"
+#include "confdefs.h"
+#define $ac_func autoconf_temporary
+#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */
+#undef $ac_func
+
+#ifdef __cplusplus
+extern "C"
+#endif
+
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func (void);
+
+int
+main (void)
+{
+
+/* The GNU C library defines stubs for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+#error found stub for $ac_func
+#endif
+
+ return $ac_func ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f "conftest.$ac_objext" "conftest$ac_exeext"
+if { (eval echo "$as_me:8448: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:8451: \$? = $ac_status" >&5
+ (exit "$ac_status"); } &&
+ { ac_try='test -s "conftest$ac_exeext"'
+ { (eval echo "$as_me:8454: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:8457: \$? = $ac_status" >&5
+ (exit "$ac_status"); }; }; then
+ eval "$as_ac_var=yes"
+else
+ echo "$as_me: failed program was:" >&5
+cat "conftest.$ac_ext" >&5
+eval "$as_ac_var=no"
+fi
+rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
+fi
+echo "$as_me:8467: result: `eval echo '${'"$as_ac_var"'}'`" >&5
+echo "${ECHO_T}`eval echo '${'"$as_ac_var"'}'`" >&6
+if test "`eval echo '${'"$as_ac_var"'}'`" = yes; then
+ cat >>confdefs.h <<EOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+EOF
+
+fi
+done
+
fi
# not everyone has "test -c"
if test -c /dev/sysmouse 2>/dev/null ; then
-echo "$as_me:7794: checking if you want to use sysmouse" >&5
+echo "$as_me:8481: checking if you want to use sysmouse" >&5
echo $ECHO_N "checking if you want to use sysmouse... $ECHO_C" >&6
# Check whether --with-sysmouse or --without-sysmouse was given.
@@ -7803,7 +8490,7 @@ else
fi;
if test "$cf_with_sysmouse" != no ; then
cat >"conftest.$ac_ext" <<_ACEOF
-#line 7806 "configure"
+#line 8493 "configure"
#include "confdefs.h"
#include <osreldate.h>
@@ -7826,16 +8513,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:7829: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:8516: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:7832: \$? = $ac_status" >&5
+ echo "$as_me:8519: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:7835: \"$ac_try\"") >&5
+ { (eval echo "$as_me:8522: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:7838: \$? = $ac_status" >&5
+ echo "$as_me:8525: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_with_sysmouse=yes
else
@@ -7845,7 +8532,7 @@ cf_with_sysmouse=no
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:7848: result: $cf_with_sysmouse" >&5
+echo "$as_me:8535: result: $cf_with_sysmouse" >&5
echo "${ECHO_T}$cf_with_sysmouse" >&6
test "$cf_with_sysmouse" = yes &&
cat >>confdefs.h <<\EOF
@@ -7855,7 +8542,7 @@ EOF
fi
# pretend that ncurses==ncursesw==ncursest
-echo "$as_me:7858: checking if you want to disable library suffixes" >&5
+echo "$as_me:8545: checking if you want to disable library suffixes" >&5
echo $ECHO_N "checking if you want to disable library suffixes... $ECHO_C" >&6
# Check whether --enable-lib-suffixes or --disable-lib-suffixes was given.
@@ -7872,13 +8559,13 @@ else
disable_lib_suffixes=no
fi;
-echo "$as_me:7875: result: $disable_lib_suffixes" >&5
+echo "$as_me:8562: result: $disable_lib_suffixes" >&5
echo "${ECHO_T}$disable_lib_suffixes" >&6
### If we're building with rpath, try to link non-standard libs that way too.
if test "$DFT_LWR_MODEL" = "shared" && test "x$cf_cv_enable_rpath" != xno; then
-echo "$as_me:7881: checking if rpath-hack should be disabled" >&5
+echo "$as_me:8568: checking if rpath-hack should be disabled" >&5
echo $ECHO_N "checking if rpath-hack should be disabled... $ECHO_C" >&6
# Check whether --enable-rpath-hack or --disable-rpath-hack was given.
@@ -7896,22 +8583,22 @@ else
fi;
if test "x$enable_rpath_hack" = xno; then cf_disable_rpath_hack=yes; else cf_disable_rpath_hack=no; fi
-echo "$as_me:7899: result: $cf_disable_rpath_hack" >&5
+echo "$as_me:8586: result: $cf_disable_rpath_hack" >&5
echo "${ECHO_T}$cf_disable_rpath_hack" >&6
if test "$enable_rpath_hack" = yes ; then
-echo "$as_me:7904: checking for updated LDFLAGS" >&5
+echo "$as_me:8591: checking for updated LDFLAGS" >&5
echo $ECHO_N "checking for updated LDFLAGS... $ECHO_C" >&6
if test -n "$LD_RPATH_OPT" ; then
- echo "$as_me:7907: result: maybe" >&5
+ echo "$as_me:8594: result: maybe" >&5
echo "${ECHO_T}maybe" >&6
for ac_prog in ldd
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-echo "$as_me:7914: checking for $ac_word" >&5
+echo "$as_me:8601: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_cf_ldd_prog+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -7926,7 +8613,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_cf_ldd_prog="$ac_prog"
-echo "$as_me:7929: found $ac_dir/$ac_word" >&5
+echo "$as_me:8616: found $ac_dir/$ac_word" >&5
break
done
@@ -7934,10 +8621,10 @@ fi
fi
cf_ldd_prog=$ac_cv_prog_cf_ldd_prog
if test -n "$cf_ldd_prog"; then
- echo "$as_me:7937: result: $cf_ldd_prog" >&5
+ echo "$as_me:8624: result: $cf_ldd_prog" >&5
echo "${ECHO_T}$cf_ldd_prog" >&6
else
- echo "$as_me:7940: result: no" >&5
+ echo "$as_me:8627: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -7951,7 +8638,7 @@ test -n "$cf_ldd_prog" || cf_ldd_prog="no"
cf_rpath_oops=
cat >"conftest.$ac_ext" <<_ACEOF
-#line 7954 "configure"
+#line 8641 "configure"
#include "confdefs.h"
#include <stdio.h>
int
@@ -7963,16 +8650,16 @@ printf("Hello");
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:7966: \"$ac_link\"") >&5
+if { (eval echo "$as_me:8653: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:7969: \$? = $ac_status" >&5
+ echo "$as_me:8656: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:7972: \"$ac_try\"") >&5
+ { (eval echo "$as_me:8659: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:7975: \$? = $ac_status" >&5
+ echo "$as_me:8662: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_rpath_oops=`"$cf_ldd_prog" "conftest$ac_exeext" | ${FGREP-fgrep} ' not found' | sed -e 's% =>.*$%%' |sort | uniq`
cf_rpath_list=`"$cf_ldd_prog" "conftest$ac_exeext" | ${FGREP-fgrep} / | sed -e 's%^.*[ ]/%/%' -e 's%/[^/][^/]*$%%' |sort | uniq`
@@ -8000,7 +8687,7 @@ rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
then
test -n "$verbose" && echo " ...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src" 1>&6
-echo "${as_me:-configure}:8003: testing ...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src ..." 1>&5
+echo "${as_me:-configure}:8690: testing ...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src ..." 1>&5
LDFLAGS="$LDFLAGS -L$cf_rpath_dir/lib"
break
@@ -8012,11 +8699,11 @@ echo "${as_me:-configure}:8003: testing ...adding -L$cf_rpath_dir/lib to LDFLAGS
test -n "$verbose" && echo " ...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS" 1>&6
-echo "${as_me:-configure}:8015: testing ...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS ..." 1>&5
+echo "${as_me:-configure}:8702: testing ...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS ..." 1>&5
test -n "$verbose" && echo " ...checking LDFLAGS $LDFLAGS" 1>&6
-echo "${as_me:-configure}:8019: testing ...checking LDFLAGS $LDFLAGS ..." 1>&5
+echo "${as_me:-configure}:8706: testing ...checking LDFLAGS $LDFLAGS ..." 1>&5
cf_rpath_dst=
for cf_rpath_src in $LDFLAGS
@@ -8053,7 +8740,7 @@ do
then
test -n "$verbose" && echo " ...Filter $cf_rpath_src ->$cf_rpath_tmp" 1>&6
-echo "${as_me:-configure}:8056: testing ...Filter $cf_rpath_src ->$cf_rpath_tmp ..." 1>&5
+echo "${as_me:-configure}:8743: testing ...Filter $cf_rpath_src ->$cf_rpath_tmp ..." 1>&5
EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
fi
@@ -8066,11 +8753,11 @@ LDFLAGS=$cf_rpath_dst
test -n "$verbose" && echo " ...checked LDFLAGS $LDFLAGS" 1>&6
-echo "${as_me:-configure}:8069: testing ...checked LDFLAGS $LDFLAGS ..." 1>&5
+echo "${as_me:-configure}:8756: testing ...checked LDFLAGS $LDFLAGS ..." 1>&5
test -n "$verbose" && echo " ...checking LIBS $LIBS" 1>&6
-echo "${as_me:-configure}:8073: testing ...checking LIBS $LIBS ..." 1>&5
+echo "${as_me:-configure}:8760: testing ...checking LIBS $LIBS ..." 1>&5
cf_rpath_dst=
for cf_rpath_src in $LIBS
@@ -8107,7 +8794,7 @@ do
then
test -n "$verbose" && echo " ...Filter $cf_rpath_src ->$cf_rpath_tmp" 1>&6
-echo "${as_me:-configure}:8110: testing ...Filter $cf_rpath_src ->$cf_rpath_tmp ..." 1>&5
+echo "${as_me:-configure}:8797: testing ...Filter $cf_rpath_src ->$cf_rpath_tmp ..." 1>&5
EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
fi
@@ -8120,14 +8807,14 @@ LIBS=$cf_rpath_dst
test -n "$verbose" && echo " ...checked LIBS $LIBS" 1>&6
-echo "${as_me:-configure}:8123: testing ...checked LIBS $LIBS ..." 1>&5
+echo "${as_me:-configure}:8810: testing ...checked LIBS $LIBS ..." 1>&5
test -n "$verbose" && echo " ...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS" 1>&6
-echo "${as_me:-configure}:8127: testing ...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS ..." 1>&5
+echo "${as_me:-configure}:8814: testing ...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS ..." 1>&5
else
- echo "$as_me:8130: result: no" >&5
+ echo "$as_me:8817: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -8138,10 +8825,10 @@ fi
### Depending on the system, someone may use rpath to build ncurses but not
# want users of the package to rely upon that feature. Give those people an
# option to suppress that detail from EXTRA_LDFLAGS.
-EXTRA_PKG_LDFLAGS="$EXTRA_LDFLAGS"
+EXTRA_PKG_LDFLAGS="$LDFLAGS $EXTRA_LDFLAGS"
if test -n "$EXTRA_PKG_LDFLAGS"
then
- echo "$as_me:8144: checking if you want to disable extra LDFLAGS for package-scripts" >&5
+ echo "$as_me:8831: checking if you want to disable extra LDFLAGS for package-scripts" >&5
echo $ECHO_N "checking if you want to disable extra LDFLAGS for package-scripts... $ECHO_C" >&6
# Check whether --enable-pkg-ldflags or --disable-pkg-ldflags was given.
@@ -8158,7 +8845,7 @@ else
disable_pkg_ldflags=no
fi;
- echo "$as_me:8161: result: $disable_pkg_ldflags" >&5
+ echo "$as_me:8848: result: $disable_pkg_ldflags" >&5
echo "${ECHO_T}$disable_pkg_ldflags" >&6
test "$disable_pkg_ldflags" = yes && EXTRA_PKG_LDFLAGS=
fi
@@ -8166,8 +8853,8 @@ fi
###############################################################################
### use option --with-extra-suffix to append suffix to headers and libraries
-echo "$as_me:8169: checking if you wish to append extra suffix to header/library paths" >&5
-echo $ECHO_N "checking if you wish to append extra suffix to header/library paths... $ECHO_C" >&6
+echo "$as_me:8856: checking for extra suffix to append to header/library paths" >&5
+echo $ECHO_N "checking for extra suffix to append to header/library paths... $ECHO_C" >&6
EXTRA_SUFFIX=
# Check whether --with-extra-suffix or --without-extra-suffix was given.
@@ -8185,11 +8872,11 @@ if test "${with_extra_suffix+set}" = set; then
esac
fi;
-echo "$as_me:8188: result: $EXTRA_SUFFIX" >&5
-echo "${ECHO_T}$EXTRA_SUFFIX" >&6
+echo "$as_me:8875: result: ${EXTRA_SUFFIX:-(none)}" >&5
+echo "${ECHO_T}${EXTRA_SUFFIX:-(none)}" >&6
### use option --disable-overwrite to leave out the link to -lcurses
-echo "$as_me:8192: checking if you wish to install ncurses overwriting curses" >&5
+echo "$as_me:8879: checking if you wish to install ncurses overwriting curses" >&5
echo $ECHO_N "checking if you wish to install ncurses overwriting curses... $ECHO_C" >&6
# Check whether --enable-overwrite or --disable-overwrite was given.
@@ -8199,10 +8886,10 @@ if test "${enable_overwrite+set}" = set; then
else
if test "$prefix" = "/usr" ; then with_overwrite=yes; else with_overwrite=no; fi
fi;
-echo "$as_me:8202: result: $with_overwrite" >&5
+echo "$as_me:8889: result: $with_overwrite" >&5
echo "${ECHO_T}$with_overwrite" >&6
-echo "$as_me:8205: checking if external terminfo-database is used" >&5
+echo "$as_me:8892: checking if external terminfo-database is used" >&5
echo $ECHO_N "checking if external terminfo-database is used... $ECHO_C" >&6
# Check whether --enable-database or --disable-database was given.
@@ -8212,7 +8899,7 @@ if test "${enable_database+set}" = set; then
else
use_database=yes
fi;
-echo "$as_me:8215: result: $use_database" >&5
+echo "$as_me:8902: result: $use_database" >&5
echo "${ECHO_T}$use_database" >&6
case "$host_os" in
@@ -8228,7 +8915,7 @@ NCURSES_USE_DATABASE=0
if test "$use_database" != no ; then
NCURSES_USE_DATABASE=1
- echo "$as_me:8231: checking which terminfo source-file will be installed" >&5
+ echo "$as_me:8918: checking which terminfo source-file will be installed" >&5
echo $ECHO_N "checking which terminfo source-file will be installed... $ECHO_C" >&6
# Check whether --with-database or --without-database was given.
@@ -8236,10 +8923,10 @@ if test "${with_database+set}" = set; then
withval="$with_database"
TERMINFO_SRC=$withval
fi;
- echo "$as_me:8239: result: $TERMINFO_SRC" >&5
+ echo "$as_me:8926: result: $TERMINFO_SRC" >&5
echo "${ECHO_T}$TERMINFO_SRC" >&6
- echo "$as_me:8242: checking whether to use hashed database instead of directory/tree" >&5
+ echo "$as_me:8929: checking whether to use hashed database instead of directory/tree" >&5
echo $ECHO_N "checking whether to use hashed database instead of directory/tree... $ECHO_C" >&6
# Check whether --with-hashed-db or --without-hashed-db was given.
@@ -8249,14 +8936,14 @@ if test "${with_hashed_db+set}" = set; then
else
with_hashed_db=no
fi;
- echo "$as_me:8252: result: $with_hashed_db" >&5
+ echo "$as_me:8939: result: $with_hashed_db" >&5
echo "${ECHO_T}$with_hashed_db" >&6
else
with_hashed_db=no
fi
-echo "$as_me:8258: checking for list of fallback descriptions" >&5
-echo $ECHO_N "checking for list of fallback descriptions... $ECHO_C" >&6
+echo "$as_me:8945: checking for list of fallback terminal descriptions" >&5
+echo $ECHO_N "checking for list of fallback terminal descriptions... $ECHO_C" >&6
# Check whether --with-fallbacks or --without-fallbacks was given.
if test "${with_fallbacks+set}" = set; then
@@ -8265,15 +8952,15 @@ if test "${with_fallbacks+set}" = set; then
else
with_fallback=
fi;
-echo "$as_me:8268: result: $with_fallback" >&5
-echo "${ECHO_T}$with_fallback" >&6
+echo "$as_me:8955: result: ${with_fallback:-(none)}" >&5
+echo "${ECHO_T}${with_fallback:-(none)}" >&6
case ".$with_fallback" in
(.|.no)
FALLBACK_LIST=
;;
(.yes)
- { echo "$as_me:8276: WARNING: expected a list of terminal descriptions" >&5
+ { echo "$as_me:8963: WARNING: expected a list of terminal descriptions" >&5
echo "$as_me: WARNING: expected a list of terminal descriptions" >&2;}
;;
(*)
@@ -8289,7 +8976,7 @@ esac
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}tic", so it can be a program name with args.
set dummy ${ac_tool_prefix}tic; ac_word=$2
-echo "$as_me:8292: checking for $ac_word" >&5
+echo "$as_me:8979: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_TIC+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -8304,7 +8991,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_TIC="${ac_tool_prefix}tic"
-echo "$as_me:8307: found $ac_dir/$ac_word" >&5
+echo "$as_me:8994: found $ac_dir/$ac_word" >&5
break
done
@@ -8312,10 +8999,10 @@ fi
fi
TIC=$ac_cv_prog_TIC
if test -n "$TIC"; then
- echo "$as_me:8315: result: $TIC" >&5
+ echo "$as_me:9002: result: $TIC" >&5
echo "${ECHO_T}$TIC" >&6
else
- echo "$as_me:8318: result: no" >&5
+ echo "$as_me:9005: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -8324,7 +9011,7 @@ if test -z "$ac_cv_prog_TIC"; then
ac_ct_TIC=$TIC
# Extract the first word of "tic", so it can be a program name with args.
set dummy tic; ac_word=$2
-echo "$as_me:8327: checking for $ac_word" >&5
+echo "$as_me:9014: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_ac_ct_TIC+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -8339,7 +9026,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_ac_ct_TIC="tic"
-echo "$as_me:8342: found $ac_dir/$ac_word" >&5
+echo "$as_me:9029: found $ac_dir/$ac_word" >&5
break
done
@@ -8347,10 +9034,10 @@ fi
fi
ac_ct_TIC=$ac_cv_prog_ac_ct_TIC
if test -n "$ac_ct_TIC"; then
- echo "$as_me:8350: result: $ac_ct_TIC" >&5
+ echo "$as_me:9037: result: $ac_ct_TIC" >&5
echo "${ECHO_T}$ac_ct_TIC" >&6
else
- echo "$as_me:8353: result: no" >&5
+ echo "$as_me:9040: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -8362,7 +9049,7 @@ fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}infocmp", so it can be a program name with args.
set dummy ${ac_tool_prefix}infocmp; ac_word=$2
-echo "$as_me:8365: checking for $ac_word" >&5
+echo "$as_me:9052: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_INFOCMP+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -8377,7 +9064,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_INFOCMP="${ac_tool_prefix}infocmp"
-echo "$as_me:8380: found $ac_dir/$ac_word" >&5
+echo "$as_me:9067: found $ac_dir/$ac_word" >&5
break
done
@@ -8385,10 +9072,10 @@ fi
fi
INFOCMP=$ac_cv_prog_INFOCMP
if test -n "$INFOCMP"; then
- echo "$as_me:8388: result: $INFOCMP" >&5
+ echo "$as_me:9075: result: $INFOCMP" >&5
echo "${ECHO_T}$INFOCMP" >&6
else
- echo "$as_me:8391: result: no" >&5
+ echo "$as_me:9078: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -8397,7 +9084,7 @@ if test -z "$ac_cv_prog_INFOCMP"; then
ac_ct_INFOCMP=$INFOCMP
# Extract the first word of "infocmp", so it can be a program name with args.
set dummy infocmp; ac_word=$2
-echo "$as_me:8400: checking for $ac_word" >&5
+echo "$as_me:9087: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_ac_ct_INFOCMP+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -8412,7 +9099,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_ac_ct_INFOCMP="infocmp"
-echo "$as_me:8415: found $ac_dir/$ac_word" >&5
+echo "$as_me:9102: found $ac_dir/$ac_word" >&5
break
done
@@ -8420,10 +9107,10 @@ fi
fi
ac_ct_INFOCMP=$ac_cv_prog_ac_ct_INFOCMP
if test -n "$ac_ct_INFOCMP"; then
- echo "$as_me:8423: result: $ac_ct_INFOCMP" >&5
+ echo "$as_me:9110: result: $ac_ct_INFOCMP" >&5
echo "${ECHO_T}$ac_ct_INFOCMP" >&6
else
- echo "$as_me:8426: result: no" >&5
+ echo "$as_me:9113: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -8438,10 +9125,10 @@ then
# Check whether --with-tic-path or --without-tic-path was given.
if test "${with_tic_path+set}" = set; then
withval="$with_tic_path"
- echo "$as_me:8441: checking for tic program for fallbacks" >&5
+ echo "$as_me:9128: checking for tic program for fallbacks" >&5
echo $ECHO_N "checking for tic program for fallbacks... $ECHO_C" >&6
TIC=$withval
- echo "$as_me:8444: result: $TIC" >&5
+ echo "$as_me:9131: result: $TIC" >&5
echo "${ECHO_T}$TIC" >&6
if test "x$prefix" != xNONE; then
@@ -8469,7 +9156,7 @@ case ".$TIC" in
TIC=`echo "$TIC" | sed -e s%NONE%$cf_path_syntax%`
;;
(*)
- { { echo "$as_me:8472: error: expected a pathname, not \"$TIC\"" >&5
+ { { echo "$as_me:9159: error: expected a pathname, not \"$TIC\"" >&5
echo "$as_me: error: expected a pathname, not \"$TIC\"" >&2;}
{ (exit 1); exit 1; }; }
;;
@@ -8482,7 +9169,7 @@ for ac_prog in $TIC tic
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-echo "$as_me:8485: checking for $ac_word" >&5
+echo "$as_me:9172: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_path_TIC+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -8499,7 +9186,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
if $as_executable_p "$ac_dir/$ac_word"; then
ac_cv_path_TIC="$ac_dir/$ac_word"
- echo "$as_me:8502: found $ac_dir/$ac_word" >&5
+ echo "$as_me:9189: found $ac_dir/$ac_word" >&5
break
fi
done
@@ -8510,10 +9197,10 @@ fi
TIC=$ac_cv_path_TIC
if test -n "$TIC"; then
- echo "$as_me:8513: result: $TIC" >&5
+ echo "$as_me:9200: result: $TIC" >&5
echo "${ECHO_T}$TIC" >&6
else
- echo "$as_me:8516: result: no" >&5
+ echo "$as_me:9203: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -8572,7 +9259,7 @@ IFS="$cf_save_ifs"
if test -n "$cf_path_prog" ; then
-echo "${as_me:-configure}:8575: testing defining path for ${cf_path_prog} ..." 1>&5
+echo "${as_me:-configure}:9262: testing defining path for ${cf_path_prog} ..." 1>&5
cat >>confdefs.h <<EOF
#define TIC_PATH "$cf_path_prog"
@@ -8587,7 +9274,7 @@ fi
if test -z "$TIC"
then
- { echo "$as_me:8590: WARNING: no tic program found for fallbacks" >&5
+ { echo "$as_me:9277: WARNING: no tic program found for fallbacks" >&5
echo "$as_me: WARNING: no tic program found for fallbacks" >&2;}
fi
@@ -8596,10 +9283,10 @@ fi;
# Check whether --with-infocmp-path or --without-infocmp-path was given.
if test "${with_infocmp_path+set}" = set; then
withval="$with_infocmp_path"
- echo "$as_me:8599: checking for infocmp program for fallbacks" >&5
+ echo "$as_me:9286: checking for infocmp program for fallbacks" >&5
echo $ECHO_N "checking for infocmp program for fallbacks... $ECHO_C" >&6
INFOCMP=$withval
- echo "$as_me:8602: result: $INFOCMP" >&5
+ echo "$as_me:9289: result: $INFOCMP" >&5
echo "${ECHO_T}$INFOCMP" >&6
if test "x$prefix" != xNONE; then
@@ -8627,7 +9314,7 @@ case ".$INFOCMP" in
INFOCMP=`echo "$INFOCMP" | sed -e s%NONE%$cf_path_syntax%`
;;
(*)
- { { echo "$as_me:8630: error: expected a pathname, not \"$INFOCMP\"" >&5
+ { { echo "$as_me:9317: error: expected a pathname, not \"$INFOCMP\"" >&5
echo "$as_me: error: expected a pathname, not \"$INFOCMP\"" >&2;}
{ (exit 1); exit 1; }; }
;;
@@ -8640,7 +9327,7 @@ for ac_prog in $INFOCMP infocmp
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-echo "$as_me:8643: checking for $ac_word" >&5
+echo "$as_me:9330: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_path_INFOCMP+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -8657,7 +9344,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
if $as_executable_p "$ac_dir/$ac_word"; then
ac_cv_path_INFOCMP="$ac_dir/$ac_word"
- echo "$as_me:8660: found $ac_dir/$ac_word" >&5
+ echo "$as_me:9347: found $ac_dir/$ac_word" >&5
break
fi
done
@@ -8668,10 +9355,10 @@ fi
INFOCMP=$ac_cv_path_INFOCMP
if test -n "$INFOCMP"; then
- echo "$as_me:8671: result: $INFOCMP" >&5
+ echo "$as_me:9358: result: $INFOCMP" >&5
echo "${ECHO_T}$INFOCMP" >&6
else
- echo "$as_me:8674: result: no" >&5
+ echo "$as_me:9361: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -8730,7 +9417,7 @@ IFS="$cf_save_ifs"
if test -n "$cf_path_prog" ; then
-echo "${as_me:-configure}:8733: testing defining path for ${cf_path_prog} ..." 1>&5
+echo "${as_me:-configure}:9420: testing defining path for ${cf_path_prog} ..." 1>&5
cat >>confdefs.h <<EOF
#define INFOCMP_PATH "$cf_path_prog"
@@ -8745,7 +9432,7 @@ fi
if test -z "$INFOCMP"
then
- { echo "$as_me:8748: WARNING: no infocmp program found for fallbacks" >&5
+ { echo "$as_me:9435: WARNING: no infocmp program found for fallbacks" >&5
echo "$as_me: WARNING: no infocmp program found for fallbacks" >&2;}
fi
@@ -8755,7 +9442,7 @@ fi;
test -z "$INFOCMP" && FALLBACK_LIST=
if test -z "$FALLBACK_LIST"
then
- { echo "$as_me:8758: WARNING: ignoring fallback option because tic/infocmp are not available" >&5
+ { echo "$as_me:9445: WARNING: ignoring fallback option because tic/infocmp are not available" >&5
echo "$as_me: WARNING: ignoring fallback option because tic/infocmp are not available" >&2;}
fi
fi
@@ -8763,7 +9450,7 @@ fi
USE_FALLBACKS=
test -z "$FALLBACK_LIST" && USE_FALLBACKS="#"
-echo "$as_me:8766: checking if you want modern xterm or antique" >&5
+echo "$as_me:9453: checking if you want modern xterm or antique" >&5
echo $ECHO_N "checking if you want modern xterm or antique... $ECHO_C" >&6
# Check whether --with-xterm-new or --without-xterm-new was given.
@@ -8777,11 +9464,20 @@ case "$with_xterm_new" in
(no) with_xterm_new=xterm-old;;
(*) with_xterm_new=xterm-new;;
esac
-echo "$as_me:8780: result: $with_xterm_new" >&5
+echo "$as_me:9467: result: $with_xterm_new" >&5
echo "${ECHO_T}$with_xterm_new" >&6
WHICH_XTERM=$with_xterm_new
-echo "$as_me:8784: checking if xterm backspace sends BS or DEL" >&5
+case $host_os in
+(*linux-gnu|*cygwin|*mingw32|*msys)
+ want_xterm_kbs=DEL
+ ;;
+(*)
+ want_xterm_kbs=BS
+ ;;
+esac
+
+echo "$as_me:9480: checking if xterm backspace sends BS or DEL" >&5
echo $ECHO_N "checking if xterm backspace sends BS or DEL... $ECHO_C" >&6
# Check whether --with-xterm-kbs or --without-xterm-kbs was given.
@@ -8789,7 +9485,7 @@ if test "${with_xterm_kbs+set}" = set; then
withval="$with_xterm_kbs"
with_xterm_kbs=$withval
else
- with_xterm_kbs=BS
+ with_xterm_kbs=auto
fi;
case x$with_xterm_kbs in
(xyes|xno|xBS|xbs|x8)
@@ -8798,21 +9494,30 @@ case x$with_xterm_kbs in
(xDEL|xdel|x127)
with_xterm_kbs=DEL
;;
+(xauto)
+ with_xterm_kbs=$want_xterm_kbs
+ ;;
(*)
with_xterm_kbs=$withval
;;
esac
-echo "$as_me:8805: result: $with_xterm_kbs" >&5
+echo "$as_me:9504: result: $with_xterm_kbs" >&5
echo "${ECHO_T}$with_xterm_kbs" >&6
XTERM_KBS=$with_xterm_kbs
+if test "x$with_xterm_kbs" != "x$want_xterm_kbs"
+then
+ { echo "$as_me:9510: WARNING: expected --with-xterm-kbs=$want_xterm_kbs for $host_os, have $with_xterm_kbs" >&5
+echo "$as_me: WARNING: expected --with-xterm-kbs=$want_xterm_kbs for $host_os, have $with_xterm_kbs" >&2;}
+fi
+
MAKE_TERMINFO=
if test "$use_database" = no ; then
TERMINFO="${datadir}/terminfo"
MAKE_TERMINFO="#"
else
-echo "$as_me:8815: checking for list of terminfo directories" >&5
+echo "$as_me:9520: checking for list of terminfo directories" >&5
echo $ECHO_N "checking for list of terminfo directories... $ECHO_C" >&6
# Check whether --with-terminfo-dirs or --without-terminfo-dirs was given.
@@ -8852,7 +9557,7 @@ case ".$cf_src_path" in
cf_src_path=`echo "$cf_src_path" | sed -e s%NONE%$cf_path_syntax%`
;;
(*)
- { { echo "$as_me:8855: error: expected a pathname, not \"$cf_src_path\"" >&5
+ { { echo "$as_me:9560: error: expected a pathname, not \"$cf_src_path\"" >&5
echo "$as_me: error: expected a pathname, not \"$cf_src_path\"" >&2;}
{ (exit 1); exit 1; }; }
;;
@@ -8875,7 +9580,7 @@ case "x$cf_dst_eval" in
;;
esac
-echo "$as_me:8878: result: $TERMINFO_DIRS" >&5
+echo "$as_me:9583: result: $TERMINFO_DIRS" >&5
echo "${ECHO_T}$TERMINFO_DIRS" >&6
test -n "$TERMINFO_DIRS" &&
cat >>confdefs.h <<EOF
@@ -8884,13 +9589,13 @@ EOF
case "x$TERMINFO" in
x???:*)
- { echo "$as_me:8887: WARNING: ignoring non-directory/file TERMINFO value" >&5
+ { echo "$as_me:9592: WARNING: ignoring non-directory/file TERMINFO value" >&5
echo "$as_me: WARNING: ignoring non-directory/file TERMINFO value" >&2;}
unset TERMINFO
;;
esac
-echo "$as_me:8893: checking for default terminfo directory" >&5
+echo "$as_me:9598: checking for default terminfo directory" >&5
echo $ECHO_N "checking for default terminfo directory... $ECHO_C" >&6
# Check whether --with-default-terminfo-dir or --without-default-terminfo-dir was given.
@@ -8926,7 +9631,7 @@ case ".$withval" in
withval=`echo "$withval" | sed -e s%NONE%$cf_path_syntax%`
;;
(*)
- { { echo "$as_me:8929: error: expected a pathname, not \"$withval\"" >&5
+ { { echo "$as_me:9634: error: expected a pathname, not \"$withval\"" >&5
echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
{ (exit 1); exit 1; }; }
;;
@@ -8935,7 +9640,7 @@ esac
fi
eval TERMINFO="$withval"
-echo "$as_me:8938: result: $TERMINFO" >&5
+echo "$as_me:9643: result: $TERMINFO" >&5
echo "${ECHO_T}$TERMINFO" >&6
cat >>confdefs.h <<EOF
@@ -8946,7 +9651,7 @@ fi
### use option --disable-big-core to make tic run on small machines
### We need 4Mb, check if we can allocate 50% more than that.
-echo "$as_me:8949: checking if big-core option selected" >&5
+echo "$as_me:9654: checking if big-core option selected" >&5
echo $ECHO_N "checking if big-core option selected... $ECHO_C" >&6
# Check whether --enable-big-core or --disable-big-core was given.
@@ -8958,12 +9663,12 @@ else
with_big_core=no
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 8961 "configure"
+#line 9666 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <string.h>
-int main() {
+int main(void) {
unsigned long n = 6000000L;
char *s = malloc(n);
if (s != 0)
@@ -8972,15 +9677,15 @@ int main() {
}
_ACEOF
rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:8975: \"$ac_link\"") >&5
+if { (eval echo "$as_me:9680: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:8978: \$? = $ac_status" >&5
+ echo "$as_me:9683: \$? = $ac_status" >&5
(exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:8980: \"$ac_try\"") >&5
+ { (eval echo "$as_me:9685: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:8983: \$? = $ac_status" >&5
+ echo "$as_me:9688: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
with_big_core=yes
else
@@ -8992,7 +9697,7 @@ fi
rm -f core ./core.* ./*.core "conftest$ac_exeext" "conftest.$ac_objext" "conftest.$ac_ext"
fi
fi;
-echo "$as_me:8995: result: $with_big_core" >&5
+echo "$as_me:9700: result: $with_big_core" >&5
echo "${ECHO_T}$with_big_core" >&6
test "x$with_big_core" = "xyes" &&
cat >>confdefs.h <<\EOF
@@ -9002,7 +9707,7 @@ EOF
### ISO C only guarantees 512-char strings, we have tables which load faster
### when constructed using "big" strings. More than the C compiler, the awk
### program is a limit on most vendor UNIX systems. Check that we can build.
-echo "$as_me:9005: checking if big-strings option selected" >&5
+echo "$as_me:9710: checking if big-strings option selected" >&5
echo $ECHO_N "checking if big-strings option selected... $ECHO_C" >&6
# Check whether --enable-big-strings or --disable-big-strings was given.
@@ -9026,14 +9731,14 @@ else
esac
fi;
-echo "$as_me:9029: result: $with_big_strings" >&5
+echo "$as_me:9734: result: $with_big_strings" >&5
echo "${ECHO_T}$with_big_strings" >&6
USE_BIG_STRINGS=0
test "x$with_big_strings" = "xyes" && USE_BIG_STRINGS=1
### use option --enable-termcap to compile in the termcap fallback support
-echo "$as_me:9036: checking if you want termcap-fallback support" >&5
+echo "$as_me:9741: checking if you want termcap-fallback support" >&5
echo $ECHO_N "checking if you want termcap-fallback support... $ECHO_C" >&6
# Check whether --enable-termcap or --disable-termcap was given.
@@ -9043,14 +9748,14 @@ if test "${enable_termcap+set}" = set; then
else
with_termcap=no
fi;
-echo "$as_me:9046: result: $with_termcap" >&5
+echo "$as_me:9751: result: $with_termcap" >&5
echo "${ECHO_T}$with_termcap" >&6
NCURSES_USE_TERMCAP=0
if test "x$with_termcap" != "xyes" ; then
if test "$use_database" = no ; then
if test -z "$with_fallback" ; then
- { { echo "$as_me:9053: error: You have disabled the database w/o specifying fallbacks" >&5
+ { { echo "$as_me:9758: error: You have disabled the database w/o specifying fallbacks" >&5
echo "$as_me: error: You have disabled the database w/o specifying fallbacks" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -9063,13 +9768,13 @@ EOF
else
if test "$with_ticlib" != no ; then
- { { echo "$as_me:9066: error: Options --with-ticlib and --enable-termcap cannot be combined" >&5
+ { { echo "$as_me:9771: error: Options --with-ticlib and --enable-termcap cannot be combined" >&5
echo "$as_me: error: Options --with-ticlib and --enable-termcap cannot be combined" >&2;}
{ (exit 1); exit 1; }; }
fi
NCURSES_USE_TERMCAP=1
- echo "$as_me:9072: checking for list of termcap files" >&5
+ echo "$as_me:9777: checking for list of termcap files" >&5
echo $ECHO_N "checking for list of termcap files... $ECHO_C" >&6
# Check whether --with-termpath or --without-termpath was given.
@@ -9109,7 +9814,7 @@ case ".$cf_src_path" in
cf_src_path=`echo "$cf_src_path" | sed -e s%NONE%$cf_path_syntax%`
;;
(*)
- { { echo "$as_me:9112: error: expected a pathname, not \"$cf_src_path\"" >&5
+ { { echo "$as_me:9817: error: expected a pathname, not \"$cf_src_path\"" >&5
echo "$as_me: error: expected a pathname, not \"$cf_src_path\"" >&2;}
{ (exit 1); exit 1; }; }
;;
@@ -9132,7 +9837,7 @@ case "x$cf_dst_eval" in
;;
esac
- echo "$as_me:9135: result: $TERMPATH" >&5
+ echo "$as_me:9840: result: $TERMPATH" >&5
echo "${ECHO_T}$TERMPATH" >&6
test -n "$TERMPATH" &&
cat >>confdefs.h <<EOF
@@ -9140,7 +9845,7 @@ cat >>confdefs.h <<EOF
EOF
### use option --enable-getcap to use a hacked getcap for reading termcaps
- echo "$as_me:9143: checking if fast termcap-loader is needed" >&5
+ echo "$as_me:9848: checking if fast termcap-loader is needed" >&5
echo $ECHO_N "checking if fast termcap-loader is needed... $ECHO_C" >&6
# Check whether --enable-getcap or --disable-getcap was given.
@@ -9150,14 +9855,14 @@ if test "${enable_getcap+set}" = set; then
else
with_getcap=no
fi;
- echo "$as_me:9153: result: $with_getcap" >&5
+ echo "$as_me:9858: result: $with_getcap" >&5
echo "${ECHO_T}$with_getcap" >&6
test "x$with_getcap" = "xyes" &&
cat >>confdefs.h <<\EOF
#define USE_GETCAP 1
EOF
- echo "$as_me:9160: checking if translated termcaps will be cached in ~/.terminfo" >&5
+ echo "$as_me:9865: checking if translated termcaps will be cached in ~/.terminfo" >&5
echo $ECHO_N "checking if translated termcaps will be cached in ~/.terminfo... $ECHO_C" >&6
# Check whether --enable-getcap-cache or --disable-getcap-cache was given.
@@ -9167,7 +9872,7 @@ if test "${enable_getcap_cache+set}" = set; then
else
with_getcap_cache=no
fi;
- echo "$as_me:9170: result: $with_getcap_cache" >&5
+ echo "$as_me:9875: result: $with_getcap_cache" >&5
echo "${ECHO_T}$with_getcap_cache" >&6
test "x$with_getcap_cache" = "xyes" &&
cat >>confdefs.h <<\EOF
@@ -9177,7 +9882,7 @@ EOF
fi
### Use option --disable-home-terminfo to completely remove ~/.terminfo
-echo "$as_me:9180: checking if ~/.terminfo is wanted" >&5
+echo "$as_me:9885: checking if ~/.terminfo is wanted" >&5
echo $ECHO_N "checking if ~/.terminfo is wanted... $ECHO_C" >&6
# Check whether --enable-home-terminfo or --disable-home-terminfo was given.
@@ -9187,15 +9892,15 @@ if test "${enable_home_terminfo+set}" = set; then
else
with_home_terminfo=yes
fi;
-echo "$as_me:9190: result: $with_home_terminfo" >&5
+echo "$as_me:9895: result: $with_home_terminfo" >&5
echo "${ECHO_T}$with_home_terminfo" >&6
test "x$with_home_terminfo" = "xyes" &&
cat >>confdefs.h <<\EOF
#define USE_HOME_TERMINFO 1
EOF
-echo "$as_me:9197: checking if you want to use restricted environment when running as root" >&5
-echo $ECHO_N "checking if you want to use restricted environment when running as root... $ECHO_C" >&6
+echo "$as_me:9902: checking if you want to permit root to use ncurses environment variables" >&5
+echo $ECHO_N "checking if you want to permit root to use ncurses environment variables... $ECHO_C" >&6
# Check whether --enable-root-environ or --disable-root-environ was given.
if test "${enable_root_environ+set}" = set; then
@@ -9204,13 +9909,47 @@ if test "${enable_root_environ+set}" = set; then
else
with_root_environ=yes
fi;
-echo "$as_me:9207: result: $with_root_environ" >&5
+echo "$as_me:9912: result: $with_root_environ" >&5
echo "${ECHO_T}$with_root_environ" >&6
test "x$with_root_environ" = xyes &&
cat >>confdefs.h <<\EOF
#define USE_ROOT_ENVIRON 1
EOF
+echo "$as_me:9919: checking if you want to permit setuid programs to access all files" >&5
+echo $ECHO_N "checking if you want to permit setuid programs to access all files... $ECHO_C" >&6
+
+# Check whether --enable-root-access or --disable-root-access was given.
+if test "${enable_root_access+set}" = set; then
+ enableval="$enable_root_access"
+ with_root_access=$enableval
+else
+ with_root_access=yes
+fi;
+echo "$as_me:9929: result: $with_root_access" >&5
+echo "${ECHO_T}$with_root_access" >&6
+test "x$with_root_access" = xyes &&
+cat >>confdefs.h <<\EOF
+#define USE_ROOT_ACCESS 1
+EOF
+
+echo "$as_me:9936: checking if you want to permit setuid use of ncurses environment variables" >&5
+echo $ECHO_N "checking if you want to permit setuid use of ncurses environment variables... $ECHO_C" >&6
+
+# Check whether --enable-setuid-environ or --disable-setuid-environ was given.
+if test "${enable_setuid_environ+set}" = set; then
+ enableval="$enable_setuid_environ"
+ with_setuid_environ=$enableval
+else
+ with_setuid_environ=$with_root_environ
+fi;
+echo "$as_me:9946: result: $with_setuid_environ" >&5
+echo "${ECHO_T}$with_setuid_environ" >&6
+test "x$with_setuid_environ" = xyes &&
+cat >>confdefs.h <<\EOF
+#define USE_SETUID_ENVIRON 1
+EOF
+
### Use option --enable-symlinks to make tic use symlinks, not hard links
### to reduce storage requirements for the terminfo database.
@@ -9219,23 +9958,23 @@ unistd.h \
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:9222: checking for $ac_header" >&5
+echo "$as_me:9961: checking for $ac_header" >&5
echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 9228 "configure"
+#line 9967 "configure"
#include "confdefs.h"
#include <$ac_header>
_ACEOF
-if { (eval echo "$as_me:9232: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:9971: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:9238: \$? = $ac_status" >&5
+ echo "$as_me:9977: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -9254,7 +9993,7 @@ else
fi
rm -f conftest.err "conftest.$ac_ext"
fi
-echo "$as_me:9257: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
+echo "$as_me:9996: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
echo "${ECHO_T}`eval echo '${'"$as_ac_Header"'}'`" >&6
if test "`eval echo '${'"$as_ac_Header"'}'`" = yes; then
cat >>confdefs.h <<EOF
@@ -9269,13 +10008,13 @@ for ac_func in \
unlink
do
as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:9272: checking for $ac_func" >&5
+echo "$as_me:10011: checking for $ac_func" >&5
echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
if eval "test \"\${$as_ac_var+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 9278 "configure"
+#line 10017 "configure"
#include "confdefs.h"
#define $ac_func autoconf_temporary
#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */
@@ -9306,16 +10045,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:9309: \"$ac_link\"") >&5
+if { (eval echo "$as_me:10048: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:9312: \$? = $ac_status" >&5
+ echo "$as_me:10051: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:9315: \"$ac_try\"") >&5
+ { (eval echo "$as_me:10054: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:9318: \$? = $ac_status" >&5
+ echo "$as_me:10057: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
eval "$as_ac_var=yes"
else
@@ -9325,7 +10064,7 @@ eval "$as_ac_var=no"
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:9328: result: `eval echo '${'"$as_ac_var"'}'`" >&5
+echo "$as_me:10067: result: `eval echo '${'"$as_ac_var"'}'`" >&5
echo "${ECHO_T}`eval echo '${'"$as_ac_var"'}'`" >&6
if test "`eval echo '${'"$as_ac_var"'}'`" = yes; then
cat >>confdefs.h <<EOF
@@ -9342,13 +10081,13 @@ for ac_func in \
symlink
do
as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:9345: checking for $ac_func" >&5
+echo "$as_me:10084: checking for $ac_func" >&5
echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
if eval "test \"\${$as_ac_var+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 9351 "configure"
+#line 10090 "configure"
#include "confdefs.h"
#define $ac_func autoconf_temporary
#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */
@@ -9379,16 +10118,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:9382: \"$ac_link\"") >&5
+if { (eval echo "$as_me:10121: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:9385: \$? = $ac_status" >&5
+ echo "$as_me:10124: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:9388: \"$ac_try\"") >&5
+ { (eval echo "$as_me:10127: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:9391: \$? = $ac_status" >&5
+ echo "$as_me:10130: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
eval "$as_ac_var=yes"
else
@@ -9398,7 +10137,7 @@ eval "$as_ac_var=no"
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:9401: result: `eval echo '${'"$as_ac_var"'}'`" >&5
+echo "$as_me:10140: result: `eval echo '${'"$as_ac_var"'}'`" >&5
echo "${ECHO_T}`eval echo '${'"$as_ac_var"'}'`" >&6
if test "`eval echo '${'"$as_ac_var"'}'`" = yes; then
cat >>confdefs.h <<EOF
@@ -9409,7 +10148,7 @@ fi
done
else
- echo "$as_me:9412: checking if link/symlink functions work" >&5
+ echo "$as_me:10151: checking if link/symlink functions work" >&5
echo $ECHO_N "checking if link/symlink functions work... $ECHO_C" >&6
if test "${cf_cv_link_funcs+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -9422,45 +10161,49 @@ else
eval 'ac_cv_func_'$cf_func'=error'
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 9425 "configure"
+#line 10164 "configure"
#include "confdefs.h"
-#include <sys/types.h>
-#include <sys/stat.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
+$ac_includes_default
+
int main(void)
{
int fail = 0;
- char *src = "config.log";
- char *dst = "conftest.chk";
- struct stat src_sb;
- struct stat dst_sb;
-
- stat(src, &src_sb);
- fail = ($cf_func("config.log", "conftest.chk") < 0)
- || (stat(dst, &dst_sb) < 0)
- || (dst_sb.st_mtime != src_sb.st_mtime);
+ char src[] = "conftest.tmp";
+ char dst[] = "conftest.chk";
+ struct stat src_sb, dst_sb;
+ FILE *fp = fopen(src, "w");
+ if (fp == 0) { fail = 3; } else {
+ fclose(fp); stat(src, &src_sb);
+ if ($cf_func(src, dst) < 0) {
+ fail = 1;
+ } else if (stat(dst, &dst_sb) < 0) {
+ fail = 2;
+ } else {
+ long diff = (dst_sb.st_mtime - src_sb.st_mtime);
+ if (diff < 0) diff = -diff;
+ if (diff > 2) fail = 3;
+ }
+ }
#ifdef HAVE_UNLINK
- unlink(dst);
+ unlink(dst); unlink(src);
#else
- remove(dst);
+ remove(dst); remove(src);
#endif
${cf_cv_main_return:-return} (fail);
}
_ACEOF
rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:9455: \"$ac_link\"") >&5
+if { (eval echo "$as_me:10198: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:9458: \$? = $ac_status" >&5
+ echo "$as_me:10201: \$? = $ac_status" >&5
(exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:9460: \"$ac_try\"") >&5
+ { (eval echo "$as_me:10203: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:9463: \$? = $ac_status" >&5
+ echo "$as_me:10206: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_link_funcs="$cf_cv_link_funcs $cf_func"
@@ -9478,7 +10221,7 @@ fi
test -z "$cf_cv_link_funcs" && cf_cv_link_funcs=no
fi
-echo "$as_me:9481: result: $cf_cv_link_funcs" >&5
+echo "$as_me:10224: result: $cf_cv_link_funcs" >&5
echo "${ECHO_T}$cf_cv_link_funcs" >&6
test "$ac_cv_func_link" = yes &&
cat >>confdefs.h <<\EOF
@@ -9498,7 +10241,7 @@ with_symlinks=no
# soft links (symbolic links) are useful for some systems where hard links do
# not work, or to make it simpler to copy terminfo trees around.
if test "x$ac_cv_func_symlink" = xyes ; then
- echo "$as_me:9501: checking if tic should use symbolic links" >&5
+ echo "$as_me:10244: checking if tic should use symbolic links" >&5
echo $ECHO_N "checking if tic should use symbolic links... $ECHO_C" >&6
# Check whether --enable-symlinks or --disable-symlinks was given.
@@ -9508,21 +10251,21 @@ if test "${enable_symlinks+set}" = set; then
else
with_symlinks=no
fi;
- echo "$as_me:9511: result: $with_symlinks" >&5
+ echo "$as_me:10254: result: $with_symlinks" >&5
echo "${ECHO_T}$with_symlinks" >&6
fi
# If we have hard links and did not choose to use soft links instead, there is
# no reason to make this choice optional - use the hard links.
if test "$with_symlinks" = no ; then
- echo "$as_me:9518: checking if tic should use hard links" >&5
+ echo "$as_me:10261: checking if tic should use hard links" >&5
echo $ECHO_N "checking if tic should use hard links... $ECHO_C" >&6
if test "x$ac_cv_func_link" = xyes ; then
with_links=yes
else
with_links=no
fi
- echo "$as_me:9525: result: $with_links" >&5
+ echo "$as_me:10268: result: $with_links" >&5
echo "${ECHO_T}$with_links" >&6
fi
@@ -9538,7 +10281,7 @@ EOF
### use option --enable-broken-linker to force on use of broken-linker support
-echo "$as_me:9541: checking if you want broken-linker support code" >&5
+echo "$as_me:10284: checking if you want broken-linker support code" >&5
echo $ECHO_N "checking if you want broken-linker support code... $ECHO_C" >&6
# Check whether --enable-broken_linker or --disable-broken_linker was given.
@@ -9548,7 +10291,7 @@ if test "${enable_broken_linker+set}" = set; then
else
with_broken_linker=no
fi;
-echo "$as_me:9551: result: $with_broken_linker" >&5
+echo "$as_me:10294: result: $with_broken_linker" >&5
echo "${ECHO_T}$with_broken_linker" >&6
: "${BROKEN_LINKER:=0}"
@@ -9562,7 +10305,7 @@ EOF
fi
### use option --enable-bsdpad to have tputs process BSD-style prefix padding
-echo "$as_me:9565: checking if tputs should process BSD-style prefix padding" >&5
+echo "$as_me:10308: checking if tputs should process BSD-style prefix padding" >&5
echo $ECHO_N "checking if tputs should process BSD-style prefix padding... $ECHO_C" >&6
# Check whether --enable-bsdpad or --disable-bsdpad was given.
@@ -9572,7 +10315,7 @@ if test "${enable_bsdpad+set}" = set; then
else
with_bsdpad=no
fi;
-echo "$as_me:9575: result: $with_bsdpad" >&5
+echo "$as_me:10318: result: $with_bsdpad" >&5
echo "${ECHO_T}$with_bsdpad" >&6
test "x$with_bsdpad" = xyes &&
cat >>confdefs.h <<\EOF
@@ -9591,14 +10334,14 @@ NCURSES_WINT_T=0
# Check to define _XOPEN_SOURCE "automatically"
CPPFLAGS_before_XOPEN="$CPPFLAGS"
-echo "$as_me:9594: checking if the POSIX test-macros are already defined" >&5
+echo "$as_me:10337: checking if the POSIX test-macros are already defined" >&5
echo $ECHO_N "checking if the POSIX test-macros are already defined... $ECHO_C" >&6
if test "${cf_cv_posix_visible+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 9601 "configure"
+#line 10344 "configure"
#include "confdefs.h"
#include <stdio.h>
int
@@ -9617,16 +10360,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:9620: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:10363: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:9623: \$? = $ac_status" >&5
+ echo "$as_me:10366: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:9626: \"$ac_try\"") >&5
+ { (eval echo "$as_me:10369: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:9629: \$? = $ac_status" >&5
+ echo "$as_me:10372: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_posix_visible=no
else
@@ -9637,7 +10380,7 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:9640: result: $cf_cv_posix_visible" >&5
+echo "$as_me:10383: result: $cf_cv_posix_visible" >&5
echo "${ECHO_T}$cf_cv_posix_visible" >&6
if test "$cf_cv_posix_visible" = no; then
@@ -9650,9 +10393,6 @@ case "$host_os" in
(aix[4-7]*)
cf_xopen_source="-D_ALL_SOURCE"
;;
-(msys)
- cf_XOPEN_SOURCE=600
- ;;
(darwin[0-8].*)
cf_xopen_source="-D_APPLE_C_SOURCE"
;;
@@ -9678,18 +10418,18 @@ case "$host_os" in
cf_xopen_source="-D_SGI_SOURCE"
cf_XOPEN_SOURCE=
;;
-(linux*|uclinux*|gnu*|mint*|k*bsd*-gnu|cygwin)
+(linux*gnu|linux*gnuabi64|linux*gnuabin32|linux*gnueabi|linux*gnueabihf|linux*gnux32|uclinux*|gnu*|mint*|k*bsd*-gnu|cygwin|msys|mingw*|linux*uclibc)
cf_gnu_xopen_source=$cf_XOPEN_SOURCE
-echo "$as_me:9685: checking if this is the GNU C library" >&5
+echo "$as_me:10425: checking if this is the GNU C library" >&5
echo $ECHO_N "checking if this is the GNU C library... $ECHO_C" >&6
if test "${cf_cv_gnu_library+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 9692 "configure"
+#line 10432 "configure"
#include "confdefs.h"
#include <sys/types.h>
int
@@ -9708,16 +10448,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:9711: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:10451: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:9714: \$? = $ac_status" >&5
+ echo "$as_me:10454: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:9717: \"$ac_try\"") >&5
+ { (eval echo "$as_me:10457: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:9720: \$? = $ac_status" >&5
+ echo "$as_me:10460: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_gnu_library=yes
else
@@ -9728,7 +10468,7 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:9731: result: $cf_cv_gnu_library" >&5
+echo "$as_me:10471: result: $cf_cv_gnu_library" >&5
echo "${ECHO_T}$cf_cv_gnu_library" >&6
if test x$cf_cv_gnu_library = xyes; then
@@ -9736,7 +10476,7 @@ if test x$cf_cv_gnu_library = xyes; then
# With glibc 2.19 (13 years after this check was begun), _DEFAULT_SOURCE
# was changed to help a little. newlib incorporated the change about 4
# years later.
- echo "$as_me:9739: checking if _DEFAULT_SOURCE can be used as a basis" >&5
+ echo "$as_me:10479: checking if _DEFAULT_SOURCE can be used as a basis" >&5
echo $ECHO_N "checking if _DEFAULT_SOURCE can be used as a basis... $ECHO_C" >&6
if test "${cf_cv_gnu_library_219+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -9748,7 +10488,7 @@ else
CPPFLAGS="${CPPFLAGS}-D_DEFAULT_SOURCE"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 9751 "configure"
+#line 10491 "configure"
#include "confdefs.h"
#include <sys/types.h>
int
@@ -9767,16 +10507,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:9770: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:10510: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:9773: \$? = $ac_status" >&5
+ echo "$as_me:10513: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:9776: \"$ac_try\"") >&5
+ { (eval echo "$as_me:10516: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:9779: \$? = $ac_status" >&5
+ echo "$as_me:10519: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_gnu_library_219=yes
else
@@ -9788,12 +10528,12 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
CPPFLAGS="$cf_save"
fi
-echo "$as_me:9791: result: $cf_cv_gnu_library_219" >&5
+echo "$as_me:10531: result: $cf_cv_gnu_library_219" >&5
echo "${ECHO_T}$cf_cv_gnu_library_219" >&6
if test "x$cf_cv_gnu_library_219" = xyes; then
cf_save="$CPPFLAGS"
- echo "$as_me:9796: checking if _XOPEN_SOURCE=$cf_gnu_xopen_source works with _DEFAULT_SOURCE" >&5
+ echo "$as_me:10536: checking if _XOPEN_SOURCE=$cf_gnu_xopen_source works with _DEFAULT_SOURCE" >&5
echo $ECHO_N "checking if _XOPEN_SOURCE=$cf_gnu_xopen_source works with _DEFAULT_SOURCE... $ECHO_C" >&6
if test "${cf_cv_gnu_dftsrc_219+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -9898,7 +10638,7 @@ if test -n "$cf_new_extra_cppflags" ; then
fi
cat >"conftest.$ac_ext" <<_ACEOF
-#line 9901 "configure"
+#line 10641 "configure"
#include "confdefs.h"
#include <limits.h>
@@ -9918,16 +10658,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:9921: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:10661: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:9924: \$? = $ac_status" >&5
+ echo "$as_me:10664: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:9927: \"$ac_try\"") >&5
+ { (eval echo "$as_me:10667: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:9930: \$? = $ac_status" >&5
+ echo "$as_me:10670: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_gnu_dftsrc_219=yes
else
@@ -9938,7 +10678,7 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:9941: result: $cf_cv_gnu_dftsrc_219" >&5
+echo "$as_me:10681: result: $cf_cv_gnu_dftsrc_219" >&5
echo "${ECHO_T}$cf_cv_gnu_dftsrc_219" >&6
test "x$cf_cv_gnu_dftsrc_219" = "xyes" || CPPFLAGS="$cf_save"
else
@@ -9947,14 +10687,14 @@ echo "${ECHO_T}$cf_cv_gnu_dftsrc_219" >&6
if test "x$cf_cv_gnu_dftsrc_219" != xyes; then
- echo "$as_me:9950: checking if we must define _GNU_SOURCE" >&5
+ echo "$as_me:10690: checking if we must define _GNU_SOURCE" >&5
echo $ECHO_N "checking if we must define _GNU_SOURCE... $ECHO_C" >&6
if test "${cf_cv_gnu_source+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 9957 "configure"
+#line 10697 "configure"
#include "confdefs.h"
#include <sys/types.h>
int
@@ -9969,16 +10709,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:9972: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:10712: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:9975: \$? = $ac_status" >&5
+ echo "$as_me:10715: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:9978: \"$ac_try\"") >&5
+ { (eval echo "$as_me:10718: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:9981: \$? = $ac_status" >&5
+ echo "$as_me:10721: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_gnu_source=no
else
@@ -10085,7 +10825,7 @@ if test -n "$cf_new_extra_cppflags" ; then
fi
cat >"conftest.$ac_ext" <<_ACEOF
-#line 10088 "configure"
+#line 10828 "configure"
#include "confdefs.h"
#include <sys/types.h>
int
@@ -10100,16 +10840,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:10103: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:10843: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:10106: \$? = $ac_status" >&5
+ echo "$as_me:10846: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:10109: \"$ac_try\"") >&5
+ { (eval echo "$as_me:10849: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:10112: \$? = $ac_status" >&5
+ echo "$as_me:10852: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_gnu_source=no
else
@@ -10124,12 +10864,12 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:10127: result: $cf_cv_gnu_source" >&5
+echo "$as_me:10867: result: $cf_cv_gnu_source" >&5
echo "${ECHO_T}$cf_cv_gnu_source" >&6
if test "$cf_cv_gnu_source" = yes
then
- echo "$as_me:10132: checking if we should also define _DEFAULT_SOURCE" >&5
+ echo "$as_me:10872: checking if we should also define _DEFAULT_SOURCE" >&5
echo $ECHO_N "checking if we should also define _DEFAULT_SOURCE... $ECHO_C" >&6
if test "${cf_cv_default_source+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -10139,7 +10879,7 @@ else
CPPFLAGS="${CPPFLAGS}-D_GNU_SOURCE"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 10142 "configure"
+#line 10882 "configure"
#include "confdefs.h"
#include <sys/types.h>
int
@@ -10154,16 +10894,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:10157: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:10897: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:10160: \$? = $ac_status" >&5
+ echo "$as_me:10900: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:10163: \"$ac_try\"") >&5
+ { (eval echo "$as_me:10903: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:10166: \$? = $ac_status" >&5
+ echo "$as_me:10906: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_default_source=no
else
@@ -10174,7 +10914,7 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:10177: result: $cf_cv_default_source" >&5
+echo "$as_me:10917: result: $cf_cv_default_source" >&5
echo "${ECHO_T}$cf_cv_default_source" >&6
if test "$cf_cv_default_source" = yes
then
@@ -10211,16 +10951,16 @@ cf_trim_CPPFLAGS=`echo "$cf_save_CPPFLAGS" | \
sed -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
-e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?$//g'`
-echo "$as_me:10214: checking if we should define _POSIX_C_SOURCE" >&5
+echo "$as_me:10954: checking if we should define _POSIX_C_SOURCE" >&5
echo $ECHO_N "checking if we should define _POSIX_C_SOURCE... $ECHO_C" >&6
if test "${cf_cv_posix_c_source+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
-echo "${as_me:-configure}:10220: testing if the symbol is already defined go no further ..." 1>&5
+echo "${as_me:-configure}:10960: testing if the symbol is already defined go no further ..." 1>&5
cat >"conftest.$ac_ext" <<_ACEOF
-#line 10223 "configure"
+#line 10963 "configure"
#include "confdefs.h"
#include <sys/types.h>
int
@@ -10228,23 +10968,23 @@ main (void)
{
#ifndef _POSIX_C_SOURCE
-make an error
+#error _POSIX_C_SOURCE is not defined
#endif
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:10238: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:10978: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:10241: \$? = $ac_status" >&5
+ echo "$as_me:10981: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:10244: \"$ac_try\"") >&5
+ { (eval echo "$as_me:10984: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:10247: \$? = $ac_status" >&5
+ echo "$as_me:10987: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_posix_c_source=no
else
@@ -10265,7 +11005,7 @@ cf_want_posix_source=no
esac
if test "$cf_want_posix_source" = yes ; then
cat >"conftest.$ac_ext" <<_ACEOF
-#line 10268 "configure"
+#line 11008 "configure"
#include "confdefs.h"
#include <sys/types.h>
int
@@ -10273,23 +11013,23 @@ main (void)
{
#ifdef _POSIX_SOURCE
-make an error
+#error _POSIX_SOURCE is defined
#endif
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:10283: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:11023: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:10286: \$? = $ac_status" >&5
+ echo "$as_me:11026: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:10289: \"$ac_try\"") >&5
+ { (eval echo "$as_me:11029: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:10292: \$? = $ac_status" >&5
+ echo "$as_me:11032: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
:
else
@@ -10300,7 +11040,7 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "${as_me:-configure}:10303: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
+echo "${as_me:-configure}:11043: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
CFLAGS="$cf_trim_CFLAGS"
CPPFLAGS="$cf_trim_CPPFLAGS"
@@ -10308,10 +11048,10 @@ echo "${as_me:-configure}:10303: testing ifdef from value $cf_POSIX_C_SOURCE ...
test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS "
CPPFLAGS="${CPPFLAGS}$cf_cv_posix_c_source"
-echo "${as_me:-configure}:10311: testing if the second compile does not leave our definition intact error ..." 1>&5
+echo "${as_me:-configure}:11051: testing if the second compile does not leave our definition intact error ..." 1>&5
cat >"conftest.$ac_ext" <<_ACEOF
-#line 10314 "configure"
+#line 11054 "configure"
#include "confdefs.h"
#include <sys/types.h>
int
@@ -10319,23 +11059,23 @@ main (void)
{
#ifndef _POSIX_C_SOURCE
-make an error
+#error _POSIX_C_SOURCE is not defined
#endif
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:10329: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:11069: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:10332: \$? = $ac_status" >&5
+ echo "$as_me:11072: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:10335: \"$ac_try\"") >&5
+ { (eval echo "$as_me:11075: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:10338: \$? = $ac_status" >&5
+ echo "$as_me:11078: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
:
else
@@ -10351,7 +11091,7 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:10354: result: $cf_cv_posix_c_source" >&5
+echo "$as_me:11094: result: $cf_cv_posix_c_source" >&5
echo "${ECHO_T}$cf_cv_posix_c_source" >&6
if test "$cf_cv_posix_c_source" != no ; then
@@ -10464,7 +11204,16 @@ fi # cf_cv_posix_visible
(netbsd*)
cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
;;
-(openbsd[4-9]*)
+(openbsd[6-9]*)
+ # OpenBSD 6.x has broken locale support, both compile-time and runtime.
+ # see https://www.mail-archive.com/bugs@openbsd.org/msg13200.html
+ # Abusing the conformance level is a workaround.
+ { echo "$as_me:11211: WARNING: this system does not provide usable locale support" >&5
+echo "$as_me: WARNING: this system does not provide usable locale support" >&2;}
+ cf_xopen_source="-D_BSD_SOURCE"
+ cf_XOPEN_SOURCE=700
+ ;;
+(openbsd[4-5]*)
# setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw
cf_xopen_source="-D_BSD_SOURCE"
cf_XOPEN_SOURCE=600
@@ -10491,42 +11240,41 @@ fi # cf_cv_posix_visible
;;
(*)
-echo "$as_me:10494: checking if we should define _XOPEN_SOURCE" >&5
+echo "$as_me:11243: checking if we should define _XOPEN_SOURCE" >&5
echo $ECHO_N "checking if we should define _XOPEN_SOURCE... $ECHO_C" >&6
if test "${cf_cv_xopen_source+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 10501 "configure"
+#line 11250 "configure"
#include "confdefs.h"
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
+$ac_includes_default
int
main (void)
{
#ifndef _XOPEN_SOURCE
-make an error
+#error _XOPEN_SOURCE is not defined
#endif
+
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:10520: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:11268: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:10523: \$? = $ac_status" >&5
+ echo "$as_me:11271: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:10526: \"$ac_try\"") >&5
+ { (eval echo "$as_me:11274: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:10529: \$? = $ac_status" >&5
+ echo "$as_me:11277: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_xopen_source=no
else
@@ -10538,35 +11286,34 @@ cf_save="$CPPFLAGS"
CPPFLAGS="${CPPFLAGS}-D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 10541 "configure"
+#line 11289 "configure"
#include "confdefs.h"
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
+$ac_includes_default
int
main (void)
{
-#ifdef _XOPEN_SOURCE
-make an error
+#ifndef _XOPEN_SOURCE
+#error _XOPEN_SOURCE is not defined
#endif
+
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:10560: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:11307: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:10563: \$? = $ac_status" >&5
+ echo "$as_me:11310: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:10566: \"$ac_try\"") >&5
+ { (eval echo "$as_me:11313: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:10569: \$? = $ac_status" >&5
+ echo "$as_me:11316: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_xopen_source=no
else
@@ -10575,13 +11322,13 @@ cat "conftest.$ac_ext" >&5
cf_cv_xopen_source=$cf_XOPEN_SOURCE
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
- CPPFLAGS="$cf_save"
+ CPPFLAGS="$cf_save"
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:10584: result: $cf_cv_xopen_source" >&5
+echo "$as_me:11331: result: $cf_cv_xopen_source" >&5
echo "${ECHO_T}$cf_cv_xopen_source" >&6
if test "$cf_cv_xopen_source" != no ; then
@@ -10596,12 +11343,38 @@ CPPFLAGS=`echo "$CPPFLAGS" | \
cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
+for cf_add_cflags in $cf_temp_xopen_source
+do
+ case "x$cf_add_cflags" in
+ (x-[DU]*)
+
+cf_tmp_cflag=`echo "x$cf_add_cflags" | sed -e 's/^.//' -e 's/=.*//'`
+while true
+do
+ cf_old_cflag=`echo "x$CFLAGS" | sed -e 's/^.//' -e 's/[ ][ ]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[^ ][^ ]*\\)\?%%" -e 's/^[ ]*//' -e 's%[ ][ ]*-D% -D%g' -e 's%[ ][ ]*-I% -I%g'`
+ test "$CFLAGS" != "$cf_old_cflag" || break
+
+ CFLAGS="$cf_old_cflag"
+done
+
+cf_tmp_cflag=`echo "x$cf_add_cflags" | sed -e 's/^.//' -e 's/=.*//'`
+while true
+do
+ cf_old_cflag=`echo "x$CPPFLAGS" | sed -e 's/^.//' -e 's/[ ][ ]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[^ ][^ ]*\\)\?%%" -e 's/^[ ]*//' -e 's%[ ][ ]*-D% -D%g' -e 's%[ ][ ]*-I% -I%g'`
+ test "$CPPFLAGS" != "$cf_old_cflag" || break
+
+ CPPFLAGS="$cf_old_cflag"
+done
+
+ ;;
+ esac
+
cf_fix_cppflags=no
cf_new_cflags=
cf_new_cppflags=
cf_new_extra_cppflags=
-for cf_add_cflags in $cf_temp_xopen_source
+for cf_add_cflags in $cf_add_cflags
do
case "$cf_fix_cppflags" in
(no)
@@ -10694,8 +11467,12 @@ if test -n "$cf_new_extra_cppflags" ; then
fi
+done
+
fi
+ cf_save_xopen_cppflags="$CPPFLAGS"
+
if test "$cf_cv_posix_visible" = no; then
cf_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE
@@ -10711,16 +11488,16 @@ cf_trim_CPPFLAGS=`echo "$cf_save_CPPFLAGS" | \
sed -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
-e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?$//g'`
-echo "$as_me:10714: checking if we should define _POSIX_C_SOURCE" >&5
+echo "$as_me:11491: checking if we should define _POSIX_C_SOURCE" >&5
echo $ECHO_N "checking if we should define _POSIX_C_SOURCE... $ECHO_C" >&6
if test "${cf_cv_posix_c_source+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
-echo "${as_me:-configure}:10720: testing if the symbol is already defined go no further ..." 1>&5
+echo "${as_me:-configure}:11497: testing if the symbol is already defined go no further ..." 1>&5
cat >"conftest.$ac_ext" <<_ACEOF
-#line 10723 "configure"
+#line 11500 "configure"
#include "confdefs.h"
#include <sys/types.h>
int
@@ -10728,23 +11505,23 @@ main (void)
{
#ifndef _POSIX_C_SOURCE
-make an error
+#error _POSIX_C_SOURCE is not defined
#endif
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:10738: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:11515: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:10741: \$? = $ac_status" >&5
+ echo "$as_me:11518: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:10744: \"$ac_try\"") >&5
+ { (eval echo "$as_me:11521: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:10747: \$? = $ac_status" >&5
+ echo "$as_me:11524: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_posix_c_source=no
else
@@ -10765,7 +11542,7 @@ cf_want_posix_source=no
esac
if test "$cf_want_posix_source" = yes ; then
cat >"conftest.$ac_ext" <<_ACEOF
-#line 10768 "configure"
+#line 11545 "configure"
#include "confdefs.h"
#include <sys/types.h>
int
@@ -10773,23 +11550,23 @@ main (void)
{
#ifdef _POSIX_SOURCE
-make an error
+#error _POSIX_SOURCE is defined
#endif
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:10783: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:11560: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:10786: \$? = $ac_status" >&5
+ echo "$as_me:11563: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:10789: \"$ac_try\"") >&5
+ { (eval echo "$as_me:11566: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:10792: \$? = $ac_status" >&5
+ echo "$as_me:11569: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
:
else
@@ -10800,7 +11577,7 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "${as_me:-configure}:10803: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
+echo "${as_me:-configure}:11580: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
CFLAGS="$cf_trim_CFLAGS"
CPPFLAGS="$cf_trim_CPPFLAGS"
@@ -10808,10 +11585,10 @@ echo "${as_me:-configure}:10803: testing ifdef from value $cf_POSIX_C_SOURCE ...
test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS "
CPPFLAGS="${CPPFLAGS}$cf_cv_posix_c_source"
-echo "${as_me:-configure}:10811: testing if the second compile does not leave our definition intact error ..." 1>&5
+echo "${as_me:-configure}:11588: testing if the second compile does not leave our definition intact error ..." 1>&5
cat >"conftest.$ac_ext" <<_ACEOF
-#line 10814 "configure"
+#line 11591 "configure"
#include "confdefs.h"
#include <sys/types.h>
int
@@ -10819,23 +11596,23 @@ main (void)
{
#ifndef _POSIX_C_SOURCE
-make an error
+#error _POSIX_C_SOURCE is not defined
#endif
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:10829: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:11606: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:10832: \$? = $ac_status" >&5
+ echo "$as_me:11609: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:10835: \"$ac_try\"") >&5
+ { (eval echo "$as_me:11612: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:10838: \$? = $ac_status" >&5
+ echo "$as_me:11615: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
:
else
@@ -10851,7 +11628,7 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:10854: result: $cf_cv_posix_c_source" >&5
+echo "$as_me:11631: result: $cf_cv_posix_c_source" >&5
echo "${ECHO_T}$cf_cv_posix_c_source" >&6
if test "$cf_cv_posix_c_source" != no ; then
@@ -10960,17 +11737,96 @@ fi
fi # cf_cv_posix_visible
+ # Some of these niche implementations use copy/paste, double-check...
+ if test "$cf_cv_xopen_source" = no ; then
+ test -n "$verbose" && echo " checking if _POSIX_C_SOURCE interferes with _XOPEN_SOURCE" 1>&6
+
+echo "${as_me:-configure}:11744: testing checking if _POSIX_C_SOURCE interferes with _XOPEN_SOURCE ..." 1>&5
+
+ cat >"conftest.$ac_ext" <<_ACEOF
+#line 11747 "configure"
+#include "confdefs.h"
+
+$ac_includes_default
+
+int
+main (void)
+{
+
+#ifndef _XOPEN_SOURCE
+#error _XOPEN_SOURCE is not defined
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f "conftest.$ac_objext"
+if { (eval echo "$as_me:11765: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:11768: \$? = $ac_status" >&5
+ (exit "$ac_status"); } &&
+ { ac_try='test -s "conftest.$ac_objext"'
+ { (eval echo "$as_me:11771: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:11774: \$? = $ac_status" >&5
+ (exit "$ac_status"); }; }; then
+ :
+else
+ echo "$as_me: failed program was:" >&5
+cat "conftest.$ac_ext" >&5
+
+ { echo "$as_me:11781: WARNING: _POSIX_C_SOURCE definition is not usable" >&5
+echo "$as_me: WARNING: _POSIX_C_SOURCE definition is not usable" >&2;}
+ CPPFLAGS="$cf_save_xopen_cppflags"
+fi
+rm -f "conftest.$ac_objext" "conftest.$ac_ext"
+ fi
;;
esac
if test -n "$cf_xopen_source" ; then
+for cf_add_cflags in $cf_xopen_source
+do
+ case "x$cf_add_cflags" in
+ (x-[DU]*)
+
+cf_tmp_cflag=`echo "x$cf_add_cflags" | sed -e 's/^.//' -e 's/=.*//'`
+while true
+do
+ cf_old_cflag=`echo "x$CFLAGS" | sed -e 's/^.//' -e 's/[ ][ ]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[^ ][^ ]*\\)\?%%" -e 's/^[ ]*//' -e 's%[ ][ ]*-D% -D%g' -e 's%[ ][ ]*-I% -I%g'`
+ test "$CFLAGS" != "$cf_old_cflag" || break
+ test -n "$verbose" && echo " removing old option $cf_add_cflags from CFLAGS" 1>&6
+
+echo "${as_me:-configure}:11804: testing removing old option $cf_add_cflags from CFLAGS ..." 1>&5
+
+ CFLAGS="$cf_old_cflag"
+done
+
+cf_tmp_cflag=`echo "x$cf_add_cflags" | sed -e 's/^.//' -e 's/=.*//'`
+while true
+do
+ cf_old_cflag=`echo "x$CPPFLAGS" | sed -e 's/^.//' -e 's/[ ][ ]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[^ ][^ ]*\\)\?%%" -e 's/^[ ]*//' -e 's%[ ][ ]*-D% -D%g' -e 's%[ ][ ]*-I% -I%g'`
+ test "$CPPFLAGS" != "$cf_old_cflag" || break
+ test -n "$verbose" && echo " removing old option $cf_add_cflags from CPPFLAGS" 1>&6
+
+echo "${as_me:-configure}:11816: testing removing old option $cf_add_cflags from CPPFLAGS ..." 1>&5
+
+ CPPFLAGS="$cf_old_cflag"
+done
+
+ ;;
+ esac
+
cf_fix_cppflags=no
cf_new_cflags=
cf_new_cppflags=
cf_new_extra_cppflags=
-for cf_add_cflags in $cf_xopen_source
+for cf_add_cflags in $cf_add_cflags
do
case "$cf_fix_cppflags" in
(no)
@@ -11045,7 +11901,7 @@ done
if test -n "$cf_new_cflags" ; then
test -n "$verbose" && echo " add to \$CFLAGS $cf_new_cflags" 1>&6
-echo "${as_me:-configure}:11048: testing add to \$CFLAGS $cf_new_cflags ..." 1>&5
+echo "${as_me:-configure}:11904: testing add to \$CFLAGS $cf_new_cflags ..." 1>&5
test -n "$CFLAGS" && CFLAGS="$CFLAGS "
CFLAGS="${CFLAGS}$cf_new_cflags"
@@ -11055,7 +11911,7 @@ fi
if test -n "$cf_new_cppflags" ; then
test -n "$verbose" && echo " add to \$CPPFLAGS $cf_new_cppflags" 1>&6
-echo "${as_me:-configure}:11058: testing add to \$CPPFLAGS $cf_new_cppflags ..." 1>&5
+echo "${as_me:-configure}:11914: testing add to \$CPPFLAGS $cf_new_cppflags ..." 1>&5
test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS "
CPPFLAGS="${CPPFLAGS}$cf_new_cppflags"
@@ -11065,20 +11921,22 @@ fi
if test -n "$cf_new_extra_cppflags" ; then
test -n "$verbose" && echo " add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags" 1>&6
-echo "${as_me:-configure}:11068: testing add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags ..." 1>&5
+echo "${as_me:-configure}:11924: testing add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags ..." 1>&5
test -n "$EXTRA_CPPFLAGS" && EXTRA_CPPFLAGS="$EXTRA_CPPFLAGS "
EXTRA_CPPFLAGS="${EXTRA_CPPFLAGS}$cf_new_extra_cppflags"
fi
+done
+
fi
if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then
- echo "$as_me:11078: checking if _XOPEN_SOURCE really is set" >&5
+ echo "$as_me:11936: checking if _XOPEN_SOURCE really is set" >&5
echo $ECHO_N "checking if _XOPEN_SOURCE really is set... $ECHO_C" >&6
cat >"conftest.$ac_ext" <<_ACEOF
-#line 11081 "configure"
+#line 11939 "configure"
#include "confdefs.h"
#include <stdlib.h>
int
@@ -11086,23 +11944,23 @@ main (void)
{
#ifndef _XOPEN_SOURCE
-make an error
+#error _XOPEN_SOURCE is not defined
#endif
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:11096: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:11954: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:11099: \$? = $ac_status" >&5
+ echo "$as_me:11957: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:11102: \"$ac_try\"") >&5
+ { (eval echo "$as_me:11960: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:11105: \$? = $ac_status" >&5
+ echo "$as_me:11963: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_XOPEN_SOURCE_set=yes
else
@@ -11111,12 +11969,12 @@ cat "conftest.$ac_ext" >&5
cf_XOPEN_SOURCE_set=no
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
- echo "$as_me:11114: result: $cf_XOPEN_SOURCE_set" >&5
+ echo "$as_me:11972: result: $cf_XOPEN_SOURCE_set" >&5
echo "${ECHO_T}$cf_XOPEN_SOURCE_set" >&6
if test "$cf_XOPEN_SOURCE_set" = yes
then
cat >"conftest.$ac_ext" <<_ACEOF
-#line 11119 "configure"
+#line 11977 "configure"
#include "confdefs.h"
#include <stdlib.h>
int
@@ -11124,23 +11982,23 @@ main (void)
{
#if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE
-make an error
+#error (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE
#endif
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:11134: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:11992: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:11137: \$? = $ac_status" >&5
+ echo "$as_me:11995: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:11140: \"$ac_try\"") >&5
+ { (eval echo "$as_me:11998: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:11143: \$? = $ac_status" >&5
+ echo "$as_me:12001: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_XOPEN_SOURCE_set_ok=yes
else
@@ -11151,47 +12009,46 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
if test "$cf_XOPEN_SOURCE_set_ok" = no
then
- { echo "$as_me:11154: WARNING: _XOPEN_SOURCE is lower than requested" >&5
+ { echo "$as_me:12012: WARNING: _XOPEN_SOURCE is lower than requested" >&5
echo "$as_me: WARNING: _XOPEN_SOURCE is lower than requested" >&2;}
fi
else
-echo "$as_me:11159: checking if we should define _XOPEN_SOURCE" >&5
+echo "$as_me:12017: checking if we should define _XOPEN_SOURCE" >&5
echo $ECHO_N "checking if we should define _XOPEN_SOURCE... $ECHO_C" >&6
if test "${cf_cv_xopen_source+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 11166 "configure"
+#line 12024 "configure"
#include "confdefs.h"
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
+$ac_includes_default
int
main (void)
{
#ifndef _XOPEN_SOURCE
-make an error
+#error _XOPEN_SOURCE is not defined
#endif
+
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:11185: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:12042: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:11188: \$? = $ac_status" >&5
+ echo "$as_me:12045: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:11191: \"$ac_try\"") >&5
+ { (eval echo "$as_me:12048: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:11194: \$? = $ac_status" >&5
+ echo "$as_me:12051: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_xopen_source=no
else
@@ -11203,35 +12060,34 @@ cf_save="$CPPFLAGS"
CPPFLAGS="${CPPFLAGS}-D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 11206 "configure"
+#line 12063 "configure"
#include "confdefs.h"
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
+$ac_includes_default
int
main (void)
{
-#ifdef _XOPEN_SOURCE
-make an error
+#ifndef _XOPEN_SOURCE
+#error _XOPEN_SOURCE is not defined
#endif
+
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:11225: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:12081: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:11228: \$? = $ac_status" >&5
+ echo "$as_me:12084: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:11231: \"$ac_try\"") >&5
+ { (eval echo "$as_me:12087: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:11234: \$? = $ac_status" >&5
+ echo "$as_me:12090: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_xopen_source=no
else
@@ -11240,13 +12096,13 @@ cat "conftest.$ac_ext" >&5
cf_cv_xopen_source=$cf_XOPEN_SOURCE
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
- CPPFLAGS="$cf_save"
+ CPPFLAGS="$cf_save"
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:11249: result: $cf_cv_xopen_source" >&5
+echo "$as_me:12105: result: $cf_cv_xopen_source" >&5
echo "${ECHO_T}$cf_cv_xopen_source" >&6
if test "$cf_cv_xopen_source" != no ; then
@@ -11261,12 +12117,38 @@ CPPFLAGS=`echo "$CPPFLAGS" | \
cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
+for cf_add_cflags in $cf_temp_xopen_source
+do
+ case "x$cf_add_cflags" in
+ (x-[DU]*)
+
+cf_tmp_cflag=`echo "x$cf_add_cflags" | sed -e 's/^.//' -e 's/=.*//'`
+while true
+do
+ cf_old_cflag=`echo "x$CFLAGS" | sed -e 's/^.//' -e 's/[ ][ ]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[^ ][^ ]*\\)\?%%" -e 's/^[ ]*//' -e 's%[ ][ ]*-D% -D%g' -e 's%[ ][ ]*-I% -I%g'`
+ test "$CFLAGS" != "$cf_old_cflag" || break
+
+ CFLAGS="$cf_old_cflag"
+done
+
+cf_tmp_cflag=`echo "x$cf_add_cflags" | sed -e 's/^.//' -e 's/=.*//'`
+while true
+do
+ cf_old_cflag=`echo "x$CPPFLAGS" | sed -e 's/^.//' -e 's/[ ][ ]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[^ ][^ ]*\\)\?%%" -e 's/^[ ]*//' -e 's%[ ][ ]*-D% -D%g' -e 's%[ ][ ]*-I% -I%g'`
+ test "$CPPFLAGS" != "$cf_old_cflag" || break
+
+ CPPFLAGS="$cf_old_cflag"
+done
+
+ ;;
+ esac
+
cf_fix_cppflags=no
cf_new_cflags=
cf_new_cppflags=
cf_new_extra_cppflags=
-for cf_add_cflags in $cf_temp_xopen_source
+for cf_add_cflags in $cf_add_cflags
do
case "$cf_fix_cppflags" in
(no)
@@ -11359,6 +12241,8 @@ if test -n "$cf_new_extra_cppflags" ; then
fi
+done
+
fi
fi
@@ -11369,14 +12253,14 @@ CPPFLAGS_after_XOPEN="$CPPFLAGS"
# Work around breakage on OS X
-echo "$as_me:11372: checking if SIGWINCH is defined" >&5
+echo "$as_me:12256: checking if SIGWINCH is defined" >&5
echo $ECHO_N "checking if SIGWINCH is defined... $ECHO_C" >&6
if test "${cf_cv_define_sigwinch+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 11379 "configure"
+#line 12263 "configure"
#include "confdefs.h"
#include <sys/types.h>
@@ -11391,23 +12275,23 @@ int x = SIGWINCH; (void)x
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:11394: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:12278: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:11397: \$? = $ac_status" >&5
+ echo "$as_me:12281: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:11400: \"$ac_try\"") >&5
+ { (eval echo "$as_me:12284: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:11403: \$? = $ac_status" >&5
+ echo "$as_me:12287: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_define_sigwinch=yes
else
echo "$as_me: failed program was:" >&5
cat "conftest.$ac_ext" >&5
cat >"conftest.$ac_ext" <<_ACEOF
-#line 11410 "configure"
+#line 12294 "configure"
#include "confdefs.h"
#undef _XOPEN_SOURCE
@@ -11425,16 +12309,16 @@ int x = SIGWINCH; (void)x
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:11428: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:12312: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:11431: \$? = $ac_status" >&5
+ echo "$as_me:12315: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:11434: \"$ac_try\"") >&5
+ { (eval echo "$as_me:12318: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:11437: \$? = $ac_status" >&5
+ echo "$as_me:12321: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_define_sigwinch=maybe
else
@@ -11448,11 +12332,11 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:11451: result: $cf_cv_define_sigwinch" >&5
+echo "$as_me:12335: result: $cf_cv_define_sigwinch" >&5
echo "${ECHO_T}$cf_cv_define_sigwinch" >&6
if test "$cf_cv_define_sigwinch" = maybe ; then
-echo "$as_me:11455: checking for actual SIGWINCH definition" >&5
+echo "$as_me:12339: checking for actual SIGWINCH definition" >&5
echo $ECHO_N "checking for actual SIGWINCH definition... $ECHO_C" >&6
if test "${cf_cv_fixup_sigwinch+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -11463,7 +12347,7 @@ cf_sigwinch=32
while test "$cf_sigwinch" != 1
do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 11466 "configure"
+#line 12350 "configure"
#include "confdefs.h"
#undef _XOPEN_SOURCE
@@ -11477,7 +12361,7 @@ main (void)
{
#if SIGWINCH != $cf_sigwinch
-make an error
+#error SIGWINCH is not $cf_sigwinch
#endif
int x = SIGWINCH; (void)x
;
@@ -11485,16 +12369,16 @@ int x = SIGWINCH; (void)x
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:11488: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:12372: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:11491: \$? = $ac_status" >&5
+ echo "$as_me:12375: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:11494: \"$ac_try\"") >&5
+ { (eval echo "$as_me:12378: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:11497: \$? = $ac_status" >&5
+ echo "$as_me:12381: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_fixup_sigwinch=$cf_sigwinch
break
@@ -11508,7 +12392,7 @@ cf_sigwinch="`expr "$cf_sigwinch" - 1`"
done
fi
-echo "$as_me:11511: result: $cf_cv_fixup_sigwinch" >&5
+echo "$as_me:12395: result: $cf_cv_fixup_sigwinch" >&5
echo "${ECHO_T}$cf_cv_fixup_sigwinch" >&6
if test "$cf_cv_fixup_sigwinch" != unknown ; then
@@ -11518,14 +12402,16 @@ fi
# Checks for CODESET support.
-echo "$as_me:11521: checking for nl_langinfo and CODESET" >&5
+echo "$as_me:12405: checking for nl_langinfo and CODESET" >&5
echo $ECHO_N "checking for nl_langinfo and CODESET... $ECHO_C" >&6
if test "${am_cv_langinfo_codeset+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 11527 "configure"
+#line 12411 "configure"
#include "confdefs.h"
+
+$ac_includes_default
#include <langinfo.h>
int
main (void)
@@ -11536,16 +12422,16 @@ char* cs = nl_langinfo(CODESET); (void)cs
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:11539: \"$ac_link\"") >&5
+if { (eval echo "$as_me:12425: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:11542: \$? = $ac_status" >&5
+ echo "$as_me:12428: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:11545: \"$ac_try\"") >&5
+ { (eval echo "$as_me:12431: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:11548: \$? = $ac_status" >&5
+ echo "$as_me:12434: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
am_cv_langinfo_codeset=yes
else
@@ -11556,7 +12442,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:11559: result: $am_cv_langinfo_codeset" >&5
+echo "$as_me:12445: result: $am_cv_langinfo_codeset" >&5
echo "${ECHO_T}$am_cv_langinfo_codeset" >&6
if test "$am_cv_langinfo_codeset" = yes; then
@@ -11570,7 +12456,7 @@ EOF
NCURSES_OK_WCHAR_T=
NCURSES_OK_WINT_T=
-echo "$as_me:11573: checking if you want wide-character code" >&5
+echo "$as_me:12459: checking if you want wide-character code" >&5
echo $ECHO_N "checking if you want wide-character code... $ECHO_C" >&6
# Check whether --enable-widec or --disable-widec was given.
@@ -11578,9 +12464,9 @@ if test "${enable_widec+set}" = set; then
enableval="$enable_widec"
with_widec=$enableval
else
- with_widec=no
+ with_widec=$cf_dft_widec
fi;
-echo "$as_me:11583: result: $with_widec" >&5
+echo "$as_me:12469: result: $with_widec" >&5
echo "${ECHO_T}$with_widec" >&6
NCURSES_WCWIDTH_GRAPHICS=1
@@ -11598,29 +12484,40 @@ cat >>confdefs.h <<\EOF
#define NCURSES_WIDECHAR 1
EOF
+ case "$CPPFLAGS" in
+ (*_XOPEN_SOURCE=*)
+ ;;
+ (*)
+ { echo "$as_me:12491: WARNING: _XOPEN_SOURCE feature test macro appears to be predefined" >&5
+echo "$as_me: WARNING: _XOPEN_SOURCE feature test macro appears to be predefined" >&2;}
+ # CPPFLAGS="$CPPFLAGS -DNCURSES_WIDECHAR"
+ CPPFLAGS_after_XOPEN="$CPPFLAGS_after_XOPEN -DNCURSES_WIDECHAR"
+ ;;
+ esac
+
for ac_header in \
wchar.h \
wctype.h \
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:11607: checking for $ac_header" >&5
+echo "$as_me:12504: checking for $ac_header" >&5
echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 11613 "configure"
+#line 12510 "configure"
#include "confdefs.h"
#include <$ac_header>
_ACEOF
-if { (eval echo "$as_me:11617: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:12514: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:11623: \$? = $ac_status" >&5
+ echo "$as_me:12520: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -11639,7 +12536,7 @@ else
fi
rm -f conftest.err "conftest.$ac_ext"
fi
-echo "$as_me:11642: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
+echo "$as_me:12539: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
echo "${ECHO_T}`eval echo '${'"$as_ac_Header"'}'`" >&6
if test "`eval echo '${'"$as_ac_Header"'}'`" = yes; then
cat >>confdefs.h <<EOF
@@ -11649,17 +12546,17 @@ EOF
fi
done
-echo "$as_me:11652: checking if wchar.h can be used as is" >&5
+echo "$as_me:12549: checking if wchar.h can be used as is" >&5
echo $ECHO_N "checking if wchar.h can be used as is... $ECHO_C" >&6
if test "${cf_cv_wchar_h_okay+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 11659 "configure"
+#line 12556 "configure"
#include "confdefs.h"
-#include <stdlib.h>
+$ac_includes_default
#ifdef HAVE_WCHAR_H
#include <wchar.h>
#endif
@@ -11672,22 +12569,22 @@ main (void)
{
wint_t foo = 0;
- int bar = iswpunct(foo)
+ int bar = iswpunct(foo); (void) bar
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:11681: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:12578: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:11684: \$? = $ac_status" >&5
+ echo "$as_me:12581: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:11687: \"$ac_try\"") >&5
+ { (eval echo "$as_me:12584: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:11690: \$? = $ac_status" >&5
+ echo "$as_me:12587: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_wchar_h_okay=yes
else
@@ -11697,16 +12594,16 @@ cf_cv_wchar_h_okay=no
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:11700: result: $cf_cv_wchar_h_okay" >&5
+echo "$as_me:12597: result: $cf_cv_wchar_h_okay" >&5
echo "${ECHO_T}$cf_cv_wchar_h_okay" >&6
if test "$cf_cv_wchar_h_okay" = no
then
-echo "$as_me:11706: checking if we must define _XOPEN_SOURCE_EXTENDED" >&5
+echo "$as_me:12603: checking if we must define _XOPEN_SOURCE_EXTENDED" >&5
echo $ECHO_N "checking if we must define _XOPEN_SOURCE_EXTENDED... $ECHO_C" >&6
cat >"conftest.$ac_ext" <<_ACEOF
-#line 11709 "configure"
+#line 12606 "configure"
#include "confdefs.h"
#include <sys/types.h>
@@ -11715,23 +12612,23 @@ main (void)
{
#ifndef _XOPEN_SOURCE_EXTENDED
-make an error
+#error _XOPEN_SOURCE_EXTENDED is not defined
#endif
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:11725: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:12622: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:11728: \$? = $ac_status" >&5
+ echo "$as_me:12625: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:11731: \"$ac_try\"") >&5
+ { (eval echo "$as_me:12628: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:11734: \$? = $ac_status" >&5
+ echo "$as_me:12631: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_result=no
else
@@ -11740,16 +12637,16 @@ cat "conftest.$ac_ext" >&5
cf_result=yes
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
-echo "$as_me:11743: result: $cf_result" >&5
+echo "$as_me:12640: result: $cf_result" >&5
echo "${ECHO_T}$cf_result" >&6
if test "$cf_result" = yes ; then
CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
elif test "x" != "x" ; then
- echo "$as_me:11749: checking checking for compatible value versus " >&5
+ echo "$as_me:12646: checking checking for compatible value versus " >&5
echo $ECHO_N "checking checking for compatible value versus ... $ECHO_C" >&6
cat >"conftest.$ac_ext" <<_ACEOF
-#line 11752 "configure"
+#line 12649 "configure"
#include "confdefs.h"
#include <sys/types.h>
@@ -11758,23 +12655,23 @@ main (void)
{
#if _XOPEN_SOURCE_EXTENDED- < 0
-make an error
+#error _XOPEN_SOURCE_EXTENDED- is negative
#endif
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:11768: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:12665: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:11771: \$? = $ac_status" >&5
+ echo "$as_me:12668: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:11774: \"$ac_try\"") >&5
+ { (eval echo "$as_me:12671: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:11777: \$? = $ac_status" >&5
+ echo "$as_me:12674: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_result=yes
else
@@ -11783,7 +12680,7 @@ cat "conftest.$ac_ext" >&5
cf_result=no
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
- echo "$as_me:11786: result: $cf_result" >&5
+ echo "$as_me:12683: result: $cf_result" >&5
echo "${ECHO_T}$cf_result" >&6
if test "$cf_result" = no ; then
# perhaps we can override it - try...
@@ -11793,7 +12690,7 @@ fi
fi
-echo "$as_me:11796: checking if wcwidth agrees graphics are single-width" >&5
+echo "$as_me:12693: checking if wcwidth agrees graphics are single-width" >&5
echo $ECHO_N "checking if wcwidth agrees graphics are single-width... $ECHO_C" >&6
if test "${cf_cv_wcwidth_graphics+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -11864,11 +12761,12 @@ if test "$cross_compiling" = yes; then
cf_cv_wcwidth_graphics=unknown
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 11867 "configure"
+#line 12764 "configure"
#include "confdefs.h"
+$ac_includes_default
+
#include <locale.h>
-#include <stdio.h>
#include <wchar.h>
#define MY_LEN 80
@@ -11877,7 +12775,7 @@ int
main(void)
{
FILE *fp;
- int value;
+ unsigned value;
char buffer[MY_LEN + 1];
char notes[MY_LEN + 1];
int totals = 0;
@@ -11893,9 +12791,9 @@ main(void)
fprintf(stderr, "\\t%s", buffer);
} else if (sscanf(buffer, "%x %s", &value, notes) == 2) {
++totals;
- if (wcwidth(value) == 1)
+ if (wcwidth((int)value) == 1)
++passed;
- fprintf(stderr, "%d\\t%s", wcwidth(value), buffer);
+ fprintf(stderr, "%d\\t%s", wcwidth((int)value), buffer);
} else {
fprintf(stderr, "?\\t%s", buffer);
}
@@ -11908,15 +12806,15 @@ main(void)
_ACEOF
rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:11911: \"$ac_link\"") >&5
+if { (eval echo "$as_me:12809: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:11914: \$? = $ac_status" >&5
+ echo "$as_me:12812: \$? = $ac_status" >&5
(exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:11916: \"$ac_try\"") >&5
+ { (eval echo "$as_me:12814: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:11919: \$? = $ac_status" >&5
+ echo "$as_me:12817: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_wcwidth_graphics=yes
else
@@ -11929,7 +12827,7 @@ rm -f core ./core.* ./*.core "conftest$ac_exeext" "conftest.$ac_objext" "conftes
fi
fi
-echo "$as_me:11932: result: $cf_cv_wcwidth_graphics" >&5
+echo "$as_me:12830: result: $cf_cv_wcwidth_graphics" >&5
echo "${ECHO_T}$cf_cv_wcwidth_graphics" >&6
test "$cf_cv_wcwidth_graphics" = no && NCURSES_WCWIDTH_GRAPHICS=0
@@ -11937,16 +12835,16 @@ echo "${ECHO_T}$cf_cv_wcwidth_graphics" >&6
# with_overwrite=no
NCURSES_CH_T=cchar_t
-for ac_func in putwc btowc wctob mbtowc wctomb mblen mbrlen mbrtowc wcsrtombs mbsrtowcs wcstombs mbstowcs
+for ac_func in putwc btowc wctob wmemchr mbtowc wctomb mblen mbrlen mbrtowc wcsrtombs mbsrtowcs wcstombs mbstowcs
do
as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:11943: checking for $ac_func" >&5
+echo "$as_me:12841: checking for $ac_func" >&5
echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
if eval "test \"\${$as_ac_var+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 11949 "configure"
+#line 12847 "configure"
#include "confdefs.h"
#define $ac_func autoconf_temporary
#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */
@@ -11977,16 +12875,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:11980: \"$ac_link\"") >&5
+if { (eval echo "$as_me:12878: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:11983: \$? = $ac_status" >&5
+ echo "$as_me:12881: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:11986: \"$ac_try\"") >&5
+ { (eval echo "$as_me:12884: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:11989: \$? = $ac_status" >&5
+ echo "$as_me:12887: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
eval "$as_ac_var=yes"
else
@@ -11996,7 +12894,7 @@ eval "$as_ac_var=no"
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:11999: result: `eval echo '${'"$as_ac_var"'}'`" >&5
+echo "$as_me:12897: result: `eval echo '${'"$as_ac_var"'}'`" >&5
echo "${ECHO_T}`eval echo '${'"$as_ac_var"'}'`" >&6
if test "`eval echo '${'"$as_ac_var"'}'`" = yes; then
cat >>confdefs.h <<EOF
@@ -12008,7 +12906,55 @@ done
if test "x$ac_cv_func_putwc" != xyes ; then
-echo "$as_me:12011: checking for multibyte character support" >&5
+for ac_header in wchar.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:12912: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >"conftest.$ac_ext" <<_ACEOF
+#line 12918 "configure"
+#include "confdefs.h"
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:12922: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+ (eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
+ ac_status=$?
+ $EGREP -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:12928: \$? = $ac_status" >&5
+ (exit "$ac_status"); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ eval "$as_ac_Header=yes"
+else
+ echo "$as_me: failed program was:" >&5
+ cat "conftest.$ac_ext" >&5
+ eval "$as_ac_Header=no"
+fi
+rm -f conftest.err "conftest.$ac_ext"
+fi
+echo "$as_me:12947: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
+echo "${ECHO_T}`eval echo '${'"$as_ac_Header"'}'`" >&6
+if test "`eval echo '${'"$as_ac_Header"'}'`" = yes; then
+ cat >>confdefs.h <<EOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+EOF
+
+fi
+done
+
+echo "$as_me:12957: checking for multibyte character support" >&5
echo $ECHO_N "checking for multibyte character support... $ECHO_C" >&6
if test "${cf_cv_utf8_lib+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -12016,10 +12962,14 @@ else
cf_save_LIBS="$LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 12019 "configure"
+#line 12965 "configure"
#include "confdefs.h"
-#include <stdlib.h>
+$ac_includes_default
+#ifdef HAVE_WCHAR_H
+#include <wchar.h>
+#endif
+
int
main (void)
{
@@ -12029,16 +12979,16 @@ putwc(0,0);
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:12032: \"$ac_link\"") >&5
+if { (eval echo "$as_me:12982: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:12035: \$? = $ac_status" >&5
+ echo "$as_me:12985: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:12038: \"$ac_try\"") >&5
+ { (eval echo "$as_me:12988: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:12041: \$? = $ac_status" >&5
+ echo "$as_me:12991: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_utf8_lib=yes
else
@@ -12050,12 +13000,12 @@ cat "conftest.$ac_ext" >&5
cf_cv_header_path_utf8=
cf_cv_library_path_utf8=
-echo "${as_me:-configure}:12053: testing Starting FIND_LINKAGE(utf8,) ..." 1>&5
+echo "${as_me:-configure}:13003: testing Starting FIND_LINKAGE(utf8,) ..." 1>&5
cf_save_LIBS="$LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 12058 "configure"
+#line 13008 "configure"
#include "confdefs.h"
#include <libutf8.h>
@@ -12068,16 +13018,16 @@ putwc(0,0);
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:12071: \"$ac_link\"") >&5
+if { (eval echo "$as_me:13021: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:12074: \$? = $ac_status" >&5
+ echo "$as_me:13024: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:12077: \"$ac_try\"") >&5
+ { (eval echo "$as_me:13027: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:12080: \$? = $ac_status" >&5
+ echo "$as_me:13030: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_find_linkage_utf8=yes
@@ -12091,7 +13041,7 @@ cat "conftest.$ac_ext" >&5
LIBS="-lutf8 $cf_save_LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 12094 "configure"
+#line 13044 "configure"
#include "confdefs.h"
#include <libutf8.h>
@@ -12104,16 +13054,16 @@ putwc(0,0);
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:12107: \"$ac_link\"") >&5
+if { (eval echo "$as_me:13057: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:12110: \$? = $ac_status" >&5
+ echo "$as_me:13060: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:12113: \"$ac_try\"") >&5
+ { (eval echo "$as_me:13063: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:12116: \$? = $ac_status" >&5
+ echo "$as_me:13066: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_find_linkage_utf8=yes
@@ -12130,9 +13080,9 @@ cat "conftest.$ac_ext" >&5
test -n "$verbose" && echo " find linkage for utf8 library" 1>&6
-echo "${as_me:-configure}:12133: testing find linkage for utf8 library ..." 1>&5
+echo "${as_me:-configure}:13083: testing find linkage for utf8 library ..." 1>&5
-echo "${as_me:-configure}:12135: testing Searching for headers in FIND_LINKAGE(utf8,) ..." 1>&5
+echo "${as_me:-configure}:13085: testing Searching for headers in FIND_LINKAGE(utf8,) ..." 1>&5
cf_save_CPPFLAGS="$CPPFLAGS"
cf_test_CPPFLAGS="$CPPFLAGS"
@@ -12223,7 +13173,7 @@ cf_search="$cf_search $cf_header_path_list"
if test -d "$cf_cv_header_path_utf8" ; then
test -n "$verbose" && echo " ... testing $cf_cv_header_path_utf8" 1>&6
-echo "${as_me:-configure}:12226: testing ... testing $cf_cv_header_path_utf8 ..." 1>&5
+echo "${as_me:-configure}:13176: testing ... testing $cf_cv_header_path_utf8 ..." 1>&5
CPPFLAGS="$cf_save_CPPFLAGS"
@@ -12231,7 +13181,7 @@ echo "${as_me:-configure}:12226: testing ... testing $cf_cv_header_path_utf8 ...
CPPFLAGS="${CPPFLAGS}-I$cf_cv_header_path_utf8"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 12234 "configure"
+#line 13184 "configure"
#include "confdefs.h"
#include <libutf8.h>
@@ -12244,21 +13194,21 @@ putwc(0,0);
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:12247: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:13197: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:12250: \$? = $ac_status" >&5
+ echo "$as_me:13200: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:12253: \"$ac_try\"") >&5
+ { (eval echo "$as_me:13203: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:12256: \$? = $ac_status" >&5
+ echo "$as_me:13206: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
test -n "$verbose" && echo " ... found utf8 headers in $cf_cv_header_path_utf8" 1>&6
-echo "${as_me:-configure}:12261: testing ... found utf8 headers in $cf_cv_header_path_utf8 ..." 1>&5
+echo "${as_me:-configure}:13211: testing ... found utf8 headers in $cf_cv_header_path_utf8 ..." 1>&5
cf_cv_find_linkage_utf8=maybe
cf_test_CPPFLAGS="$CPPFLAGS"
@@ -12276,7 +13226,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
if test "$cf_cv_find_linkage_utf8" = maybe ; then
-echo "${as_me:-configure}:12279: testing Searching for utf8 library in FIND_LINKAGE(utf8,) ..." 1>&5
+echo "${as_me:-configure}:13229: testing Searching for utf8 library in FIND_LINKAGE(utf8,) ..." 1>&5
cf_save_LIBS="$LIBS"
cf_save_LDFLAGS="$LDFLAGS"
@@ -12351,13 +13301,13 @@ cf_search="$cf_library_path_list $cf_search"
if test -d "$cf_cv_library_path_utf8" ; then
test -n "$verbose" && echo " ... testing $cf_cv_library_path_utf8" 1>&6
-echo "${as_me:-configure}:12354: testing ... testing $cf_cv_library_path_utf8 ..." 1>&5
+echo "${as_me:-configure}:13304: testing ... testing $cf_cv_library_path_utf8 ..." 1>&5
CPPFLAGS="$cf_test_CPPFLAGS"
LIBS="-lutf8 $cf_save_LIBS"
LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_utf8"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 12360 "configure"
+#line 13310 "configure"
#include "confdefs.h"
#include <libutf8.h>
@@ -12370,21 +13320,21 @@ putwc(0,0);
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:12373: \"$ac_link\"") >&5
+if { (eval echo "$as_me:13323: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:12376: \$? = $ac_status" >&5
+ echo "$as_me:13326: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:12379: \"$ac_try\"") >&5
+ { (eval echo "$as_me:13329: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:12382: \$? = $ac_status" >&5
+ echo "$as_me:13332: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
test -n "$verbose" && echo " ... found utf8 library in $cf_cv_library_path_utf8" 1>&6
-echo "${as_me:-configure}:12387: testing ... found utf8 library in $cf_cv_library_path_utf8 ..." 1>&5
+echo "${as_me:-configure}:13337: testing ... found utf8 library in $cf_cv_library_path_utf8 ..." 1>&5
cf_cv_find_linkage_utf8=yes
cf_cv_library_file_utf8="-lutf8"
@@ -12426,7 +13376,7 @@ fi
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:12429: result: $cf_cv_utf8_lib" >&5
+echo "$as_me:13379: result: $cf_cv_utf8_lib" >&5
echo "${ECHO_T}$cf_cv_utf8_lib" >&6
# HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
@@ -12464,7 +13414,7 @@ if test -n "$cf_cv_header_path_utf8" ; then
CPPFLAGS="${CPPFLAGS}-I$cf_add_incdir"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 12467 "configure"
+#line 13417 "configure"
#include "confdefs.h"
#include <stdio.h>
int
@@ -12476,16 +13426,16 @@ printf("Hello")
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:12479: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:13429: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:12482: \$? = $ac_status" >&5
+ echo "$as_me:13432: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:12485: \"$ac_try\"") >&5
+ { (eval echo "$as_me:13435: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:12488: \$? = $ac_status" >&5
+ echo "$as_me:13438: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
:
else
@@ -12502,7 +13452,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
if test "$cf_have_incdir" = no ; then
test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-echo "${as_me:-configure}:12505: testing adding $cf_add_incdir to include-path ..." 1>&5
+echo "${as_me:-configure}:13455: testing adding $cf_add_incdir to include-path ..." 1>&5
CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
@@ -12538,7 +13488,7 @@ if test -n "$cf_cv_library_path_utf8" ; then
if test "$cf_have_libdir" = no ; then
test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6
-echo "${as_me:-configure}:12541: testing adding $cf_add_libdir to library-path ..." 1>&5
+echo "${as_me:-configure}:13491: testing adding $cf_add_libdir to library-path ..." 1>&5
LDFLAGS="-L$cf_add_libdir $LDFLAGS"
fi
@@ -12570,14 +13520,14 @@ fi
fi
# This is needed on Tru64 5.0 to declare mbstate_t
-echo "$as_me:12573: checking if we must include wchar.h to declare mbstate_t" >&5
+echo "$as_me:13523: checking if we must include wchar.h to declare mbstate_t" >&5
echo $ECHO_N "checking if we must include wchar.h to declare mbstate_t... $ECHO_C" >&6
if test "${cf_cv_mbstate_t+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 12580 "configure"
+#line 13530 "configure"
#include "confdefs.h"
#include <stdlib.h>
@@ -12589,29 +13539,29 @@ cat >"conftest.$ac_ext" <<_ACEOF
int
main (void)
{
-mbstate_t state
+mbstate_t state; (void)state
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:12598: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:13548: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:12601: \$? = $ac_status" >&5
+ echo "$as_me:13551: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:12604: \"$ac_try\"") >&5
+ { (eval echo "$as_me:13554: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:12607: \$? = $ac_status" >&5
+ echo "$as_me:13557: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_mbstate_t=no
else
echo "$as_me: failed program was:" >&5
cat "conftest.$ac_ext" >&5
cat >"conftest.$ac_ext" <<_ACEOF
-#line 12614 "configure"
+#line 13564 "configure"
#include "confdefs.h"
#include <stdlib.h>
@@ -12624,22 +13574,22 @@ cat >"conftest.$ac_ext" <<_ACEOF
int
main (void)
{
-mbstate_t value
+mbstate_t value; (void) value
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:12633: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:13583: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:12636: \$? = $ac_status" >&5
+ echo "$as_me:13586: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:12639: \"$ac_try\"") >&5
+ { (eval echo "$as_me:13589: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:12642: \$? = $ac_status" >&5
+ echo "$as_me:13592: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_mbstate_t=yes
else
@@ -12651,7 +13601,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:12654: result: $cf_cv_mbstate_t" >&5
+echo "$as_me:13604: result: $cf_cv_mbstate_t" >&5
echo "${ECHO_T}$cf_cv_mbstate_t" >&6
if test "$cf_cv_mbstate_t" = yes ; then
@@ -12669,14 +13619,14 @@ if test "$cf_cv_mbstate_t" = unknown ; then
fi
# This is needed on Tru64 5.0 to declare wchar_t
-echo "$as_me:12672: checking if we must include wchar.h to declare wchar_t" >&5
+echo "$as_me:13622: checking if we must include wchar.h to declare wchar_t" >&5
echo $ECHO_N "checking if we must include wchar.h to declare wchar_t... $ECHO_C" >&6
if test "${cf_cv_wchar_t+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 12679 "configure"
+#line 13629 "configure"
#include "confdefs.h"
#include <stdlib.h>
@@ -12688,29 +13638,29 @@ cat >"conftest.$ac_ext" <<_ACEOF
int
main (void)
{
-wchar_t state
+wchar_t state; (void)state
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:12697: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:13647: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:12700: \$? = $ac_status" >&5
+ echo "$as_me:13650: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:12703: \"$ac_try\"") >&5
+ { (eval echo "$as_me:13653: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:12706: \$? = $ac_status" >&5
+ echo "$as_me:13656: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_wchar_t=no
else
echo "$as_me: failed program was:" >&5
cat "conftest.$ac_ext" >&5
cat >"conftest.$ac_ext" <<_ACEOF
-#line 12713 "configure"
+#line 13663 "configure"
#include "confdefs.h"
#include <stdlib.h>
@@ -12723,22 +13673,22 @@ cat >"conftest.$ac_ext" <<_ACEOF
int
main (void)
{
-wchar_t value
+wchar_t value; (void) value
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:12732: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:13682: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:12735: \$? = $ac_status" >&5
+ echo "$as_me:13685: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:12738: \"$ac_try\"") >&5
+ { (eval echo "$as_me:13688: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:12741: \$? = $ac_status" >&5
+ echo "$as_me:13691: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_wchar_t=yes
else
@@ -12750,7 +13700,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:12753: result: $cf_cv_wchar_t" >&5
+echo "$as_me:13703: result: $cf_cv_wchar_t" >&5
echo "${ECHO_T}$cf_cv_wchar_t" >&6
if test "$cf_cv_wchar_t" = yes ; then
@@ -12773,14 +13723,14 @@ if test "$cf_cv_wchar_t" != unknown ; then
fi
# This is needed on Tru64 5.0 to declare wint_t
-echo "$as_me:12776: checking if we must include wchar.h to declare wint_t" >&5
+echo "$as_me:13726: checking if we must include wchar.h to declare wint_t" >&5
echo $ECHO_N "checking if we must include wchar.h to declare wint_t... $ECHO_C" >&6
if test "${cf_cv_wint_t+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 12783 "configure"
+#line 13733 "configure"
#include "confdefs.h"
#include <stdlib.h>
@@ -12792,29 +13742,29 @@ cat >"conftest.$ac_ext" <<_ACEOF
int
main (void)
{
-wint_t state
+wint_t state; (void)state
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:12801: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:13751: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:12804: \$? = $ac_status" >&5
+ echo "$as_me:13754: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:12807: \"$ac_try\"") >&5
+ { (eval echo "$as_me:13757: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:12810: \$? = $ac_status" >&5
+ echo "$as_me:13760: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_wint_t=no
else
echo "$as_me: failed program was:" >&5
cat "conftest.$ac_ext" >&5
cat >"conftest.$ac_ext" <<_ACEOF
-#line 12817 "configure"
+#line 13767 "configure"
#include "confdefs.h"
#include <stdlib.h>
@@ -12827,22 +13777,22 @@ cat >"conftest.$ac_ext" <<_ACEOF
int
main (void)
{
-wint_t value
+wint_t value; (void) value
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:12836: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:13786: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:12839: \$? = $ac_status" >&5
+ echo "$as_me:13789: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:12842: \"$ac_try\"") >&5
+ { (eval echo "$as_me:13792: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:12845: \$? = $ac_status" >&5
+ echo "$as_me:13795: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_wint_t=yes
else
@@ -12854,7 +13804,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:12857: result: $cf_cv_wint_t" >&5
+echo "$as_me:13807: result: $cf_cv_wint_t" >&5
echo "${ECHO_T}$cf_cv_wint_t" >&6
if test "$cf_cv_wint_t" = yes ; then
@@ -12886,7 +13836,7 @@ EOF
fi
### use option --disable-lp64 to allow long chtype
-echo "$as_me:12889: checking whether to enable _LP64 definition in curses.h" >&5
+echo "$as_me:13839: checking whether to enable _LP64 definition in curses.h" >&5
echo $ECHO_N "checking whether to enable _LP64 definition in curses.h... $ECHO_C" >&6
# Check whether --enable-lp64 or --disable-lp64 was given.
@@ -12896,7 +13846,7 @@ if test "${enable_lp64+set}" = set; then
else
with_lp64=$cf_dft_with_lp64
fi;
-echo "$as_me:12899: result: $with_lp64" >&5
+echo "$as_me:13849: result: $with_lp64" >&5
echo "${ECHO_T}$with_lp64" >&6
if test "x$with_lp64" = xyes ; then
@@ -12912,7 +13862,7 @@ if test "${enable_largefile+set}" = set; then
fi;
if test "$enable_largefile" != no; then
- echo "$as_me:12915: checking for special C compiler options needed for large files" >&5
+ echo "$as_me:13865: checking for special C compiler options needed for large files" >&5
echo $ECHO_N "checking for special C compiler options needed for large files... $ECHO_C" >&6
if test "${ac_cv_sys_largefile_CC+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -12924,7 +13874,7 @@ else
# IRIX 6.2 and later do not support large files by default,
# so use the C compiler's -n32 option if that helps.
cat >"conftest.$ac_ext" <<_ACEOF
-#line 12927 "configure"
+#line 13877 "configure"
#include "confdefs.h"
#include <sys/types.h>
/* Check that off_t can represent 2**63 - 1 correctly.
@@ -12944,16 +13894,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:12947: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:13897: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:12950: \$? = $ac_status" >&5
+ echo "$as_me:13900: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:12953: \"$ac_try\"") >&5
+ { (eval echo "$as_me:13903: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:12956: \$? = $ac_status" >&5
+ echo "$as_me:13906: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
break
else
@@ -12963,16 +13913,16 @@ fi
rm -f "conftest.$ac_objext"
CC="$CC -n32"
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:12966: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:13916: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:12969: \$? = $ac_status" >&5
+ echo "$as_me:13919: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:12972: \"$ac_try\"") >&5
+ { (eval echo "$as_me:13922: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:12975: \$? = $ac_status" >&5
+ echo "$as_me:13925: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_sys_largefile_CC=' -n32'; break
else
@@ -12986,13 +13936,13 @@ rm -f "conftest.$ac_objext"
rm -f "conftest.$ac_ext"
fi
fi
-echo "$as_me:12989: result: $ac_cv_sys_largefile_CC" >&5
+echo "$as_me:13939: result: $ac_cv_sys_largefile_CC" >&5
echo "${ECHO_T}$ac_cv_sys_largefile_CC" >&6
if test "$ac_cv_sys_largefile_CC" != no; then
CC=$CC$ac_cv_sys_largefile_CC
fi
- echo "$as_me:12995: checking for _FILE_OFFSET_BITS value needed for large files" >&5
+ echo "$as_me:13945: checking for _FILE_OFFSET_BITS value needed for large files" >&5
echo $ECHO_N "checking for _FILE_OFFSET_BITS value needed for large files... $ECHO_C" >&6
if test "${ac_cv_sys_file_offset_bits+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -13000,7 +13950,7 @@ else
while :; do
ac_cv_sys_file_offset_bits=no
cat >"conftest.$ac_ext" <<_ACEOF
-#line 13003 "configure"
+#line 13953 "configure"
#include "confdefs.h"
#include <sys/types.h>
/* Check that off_t can represent 2**63 - 1 correctly.
@@ -13020,16 +13970,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:13023: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:13973: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:13026: \$? = $ac_status" >&5
+ echo "$as_me:13976: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:13029: \"$ac_try\"") >&5
+ { (eval echo "$as_me:13979: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:13032: \$? = $ac_status" >&5
+ echo "$as_me:13982: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
break
else
@@ -13038,7 +13988,7 @@ cat "conftest.$ac_ext" >&5
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 13041 "configure"
+#line 13991 "configure"
#include "confdefs.h"
#define _FILE_OFFSET_BITS 64
#include <sys/types.h>
@@ -13059,16 +14009,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:13062: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:14012: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:13065: \$? = $ac_status" >&5
+ echo "$as_me:14015: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:13068: \"$ac_try\"") >&5
+ { (eval echo "$as_me:14018: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:13071: \$? = $ac_status" >&5
+ echo "$as_me:14021: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_sys_file_offset_bits=64; break
else
@@ -13079,7 +14029,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
break
done
fi
-echo "$as_me:13082: result: $ac_cv_sys_file_offset_bits" >&5
+echo "$as_me:14032: result: $ac_cv_sys_file_offset_bits" >&5
echo "${ECHO_T}$ac_cv_sys_file_offset_bits" >&6
if test "$ac_cv_sys_file_offset_bits" != no; then
@@ -13089,7 +14039,7 @@ EOF
fi
rm -rf conftest*
- echo "$as_me:13092: checking for _LARGE_FILES value needed for large files" >&5
+ echo "$as_me:14042: checking for _LARGE_FILES value needed for large files" >&5
echo $ECHO_N "checking for _LARGE_FILES value needed for large files... $ECHO_C" >&6
if test "${ac_cv_sys_large_files+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -13097,7 +14047,7 @@ else
while :; do
ac_cv_sys_large_files=no
cat >"conftest.$ac_ext" <<_ACEOF
-#line 13100 "configure"
+#line 14050 "configure"
#include "confdefs.h"
#include <sys/types.h>
/* Check that off_t can represent 2**63 - 1 correctly.
@@ -13117,16 +14067,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:13120: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:14070: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:13123: \$? = $ac_status" >&5
+ echo "$as_me:14073: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:13126: \"$ac_try\"") >&5
+ { (eval echo "$as_me:14076: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:13129: \$? = $ac_status" >&5
+ echo "$as_me:14079: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
break
else
@@ -13135,7 +14085,7 @@ cat "conftest.$ac_ext" >&5
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 13138 "configure"
+#line 14088 "configure"
#include "confdefs.h"
#define _LARGE_FILES 1
#include <sys/types.h>
@@ -13156,16 +14106,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:13159: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:14109: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:13162: \$? = $ac_status" >&5
+ echo "$as_me:14112: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:13165: \"$ac_try\"") >&5
+ { (eval echo "$as_me:14115: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:13168: \$? = $ac_status" >&5
+ echo "$as_me:14118: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_sys_large_files=1; break
else
@@ -13176,7 +14126,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
break
done
fi
-echo "$as_me:13179: result: $ac_cv_sys_large_files" >&5
+echo "$as_me:14129: result: $ac_cv_sys_large_files" >&5
echo "${ECHO_T}$ac_cv_sys_large_files" >&6
if test "$ac_cv_sys_large_files" != no; then
@@ -13189,7 +14139,7 @@ rm -rf conftest*
fi
if test "$enable_largefile" != no ; then
- echo "$as_me:13192: checking for _LARGEFILE_SOURCE value needed for large files" >&5
+ echo "$as_me:14142: checking for _LARGEFILE_SOURCE value needed for large files" >&5
echo $ECHO_N "checking for _LARGEFILE_SOURCE value needed for large files... $ECHO_C" >&6
if test "${ac_cv_sys_largefile_source+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -13197,28 +14147,31 @@ else
while :; do
ac_cv_sys_largefile_source=no
cat >"conftest.$ac_ext" <<_ACEOF
-#line 13200 "configure"
+#line 14150 "configure"
#include "confdefs.h"
#include <stdio.h>
+ #include <sys/types.h>
int
main (void)
{
-return !fseeko;
+
+ int (*my_fseeko)(FILE *, off_t, int) = fseeko;
+ return my_fseeko(stdin, 0, 0);
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:13212: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:14165: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:13215: \$? = $ac_status" >&5
+ echo "$as_me:14168: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:13218: \"$ac_try\"") >&5
+ { (eval echo "$as_me:14171: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:13221: \$? = $ac_status" >&5
+ echo "$as_me:14174: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
break
else
@@ -13227,29 +14180,32 @@ cat "conftest.$ac_ext" >&5
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 13230 "configure"
+#line 14183 "configure"
#include "confdefs.h"
#define _LARGEFILE_SOURCE 1
#include <stdio.h>
+ #include <sys/types.h>
int
main (void)
{
-return !fseeko;
+
+ int (*my_fseeko)(FILE *, off_t, int) = fseeko;
+ return my_fseeko(stdin, 0, 0);
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:13243: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:14199: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:13246: \$? = $ac_status" >&5
+ echo "$as_me:14202: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:13249: \"$ac_try\"") >&5
+ { (eval echo "$as_me:14205: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:13252: \$? = $ac_status" >&5
+ echo "$as_me:14208: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_sys_largefile_source=1; break
else
@@ -13260,7 +14216,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
break
done
fi
-echo "$as_me:13263: result: $ac_cv_sys_largefile_source" >&5
+echo "$as_me:14219: result: $ac_cv_sys_largefile_source" >&5
echo "${ECHO_T}$ac_cv_sys_largefile_source" >&6
if test "$ac_cv_sys_largefile_source" != no; then
@@ -13274,34 +14230,36 @@ rm -rf conftest*
# We used to try defining _XOPEN_SOURCE=500 too, to work around a bug
# in glibc 2.1.3, but that breaks too many other things.
# If you want fseeko and ftello with glibc, upgrade to a fixed glibc.
-echo "$as_me:13277: checking for fseeko" >&5
+echo "$as_me:14233: checking for fseeko" >&5
echo $ECHO_N "checking for fseeko... $ECHO_C" >&6
if test "${ac_cv_func_fseeko+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 13283 "configure"
+#line 14239 "configure"
#include "confdefs.h"
#include <stdio.h>
+ #include <sys/types.h>
int
main (void)
{
-return fseeko && fseeko (stdin, 0, 0);
+int (*my_fseeko)(FILE *, off_t, int) = fseeko;
+ return my_fseeko && my_fseeko (stdin, 0, 0);
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:13295: \"$ac_link\"") >&5
+if { (eval echo "$as_me:14253: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:13298: \$? = $ac_status" >&5
+ echo "$as_me:14256: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:13301: \"$ac_try\"") >&5
+ { (eval echo "$as_me:14259: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:13304: \$? = $ac_status" >&5
+ echo "$as_me:14262: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_func_fseeko=yes
else
@@ -13311,7 +14269,7 @@ ac_cv_func_fseeko=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:13314: result: $ac_cv_func_fseeko" >&5
+echo "$as_me:14272: result: $ac_cv_func_fseeko" >&5
echo "${ECHO_T}$ac_cv_func_fseeko" >&6
if test $ac_cv_func_fseeko = yes; then
@@ -13350,28 +14308,32 @@ fi
fi
- echo "$as_me:13353: checking whether to use struct dirent64" >&5
+ echo "$as_me:14311: checking whether to use struct dirent64" >&5
echo $ECHO_N "checking whether to use struct dirent64... $ECHO_C" >&6
if test "${cf_cv_struct_dirent64+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 13360 "configure"
+#line 14318 "configure"
#include "confdefs.h"
#pragma GCC diagnostic error "-Wincompatible-pointer-types"
#include <sys/types.h>
#include <dirent.h>
+#ifndef __REDIRECT
+/* if transitional largefile support is setup, this is true */
+extern struct dirent64 * readdir(DIR *);
+#endif
+
int
main (void)
{
- /* 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);
+ DIR *dp = opendir(".");
+ struct dirent64 *x = readdir(dp);
+ struct dirent *y = readdir(dp);
int z = x - y;
(void)z;
@@ -13380,16 +14342,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:13383: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:14345: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:13386: \$? = $ac_status" >&5
+ echo "$as_me:14348: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:13389: \"$ac_try\"") >&5
+ { (eval echo "$as_me:14351: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:13392: \$? = $ac_status" >&5
+ echo "$as_me:14354: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_struct_dirent64=yes
else
@@ -13400,7 +14362,7 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:13403: result: $cf_cv_struct_dirent64" >&5
+echo "$as_me:14365: result: $cf_cv_struct_dirent64" >&5
echo "${ECHO_T}$cf_cv_struct_dirent64" >&6
test "$cf_cv_struct_dirent64" = yes &&
cat >>confdefs.h <<\EOF
@@ -13410,7 +14372,7 @@ EOF
fi
### use option --disable-tparm-varargs to make tparm() conform to X/Open
-echo "$as_me:13413: checking if you want tparm not to use X/Open fixed-parameter list" >&5
+echo "$as_me:14375: checking if you want tparm not to use X/Open fixed-parameter list" >&5
echo $ECHO_N "checking if you want tparm not to use X/Open fixed-parameter list... $ECHO_C" >&6
# Check whether --enable-tparm-varargs or --disable-tparm-varargs was given.
@@ -13420,14 +14382,14 @@ if test "${enable_tparm_varargs+set}" = set; then
else
with_tparm_varargs=yes
fi;
-echo "$as_me:13423: result: $with_tparm_varargs" >&5
+echo "$as_me:14385: result: $with_tparm_varargs" >&5
echo "${ECHO_T}$with_tparm_varargs" >&6
NCURSES_TPARM_VARARGS=0
test "x$with_tparm_varargs" = xyes && NCURSES_TPARM_VARARGS=1
### use option --disable-tic-depends to make libtic not explicitly depend on ncurses/ncursesw
if test "$with_ticlib" != no ; then
-echo "$as_me:13430: checking if you want tic library to use explicit dependency on ncurses$LIB_SUFFIX library" >&5
+echo "$as_me:14392: checking if you want tic library to use explicit dependency on ncurses$LIB_SUFFIX library" >&5
echo $ECHO_N "checking if you want tic library to use explicit dependency on ncurses$LIB_SUFFIX library... $ECHO_C" >&6
# Check whether --enable-tic-depends or --disable-tic-depends was given.
@@ -13437,34 +14399,34 @@ if test "${enable_tic_depends+set}" = set; then
else
with_tic_depends=yes
fi;
-echo "$as_me:13440: result: $with_tic_depends" >&5
+echo "$as_me:14402: result: $with_tic_depends" >&5
echo "${ECHO_T}$with_tic_depends" >&6
else
with_tic_depends=no
fi
-### use option --disable-wattr-macros to suppress wattr* macros from curses.h
-echo "$as_me:13447: checking if you want to suppress wattr* macros to help with ncurses5/ncurses6 transition" >&5
-echo $ECHO_N "checking if you want to suppress wattr* macros to help with ncurses5/ncurses6 transition... $ECHO_C" >&6
+### use option --enable-wattr-macros to enable wattr* macros in curses.h
+echo "$as_me:14409: checking if you want to enable wattr* macros" >&5
+echo $ECHO_N "checking if you want to enable wattr* macros... $ECHO_C" >&6
# Check whether --enable-wattr-macros or --disable-wattr-macros was given.
if test "${enable_wattr_macros+set}" = set; then
enableval="$enable_wattr_macros"
with_wattr_macros=$enableval
else
- with_wattr_macros=yes
+ with_wattr_macros=no
fi;
if [ "x$with_wattr_macros" != xyes ]; then
NCURSES_WATTR_MACROS=0
- echo "$as_me:13459: result: yes" >&5
-echo "${ECHO_T}yes" >&6
+ echo "$as_me:14421: result: no" >&5
+echo "${ECHO_T}no" >&6
else
NCURSES_WATTR_MACROS=1
- echo "$as_me:13463: result: no" >&5
-echo "${ECHO_T}no" >&6
+ echo "$as_me:14425: result: yes" >&5
+echo "${ECHO_T}yes" >&6
fi
-echo "$as_me:13467: checking for X11 rgb file" >&5
+echo "$as_me:14429: checking for X11 rgb file" >&5
echo $ECHO_N "checking for X11 rgb file... $ECHO_C" >&6
# Check whether --with-x11-rgb or --without-x11-rgb was given.
@@ -13528,7 +14490,7 @@ case ".$cf_path" in
cf_path=`echo "$cf_path" | sed -e s%NONE%$cf_path_syntax%`
;;
(*)
- { { echo "$as_me:13531: error: expected a pathname, not \"$cf_path\"" >&5
+ { { echo "$as_me:14493: error: expected a pathname, not \"$cf_path\"" >&5
echo "$as_me: error: expected a pathname, not \"$cf_path\"" >&2;}
{ (exit 1); exit 1; }; }
;;
@@ -13536,7 +14498,7 @@ esac
fi
-echo "$as_me:13539: result: $RGB_PATH" >&5
+echo "$as_me:14501: result: $RGB_PATH" >&5
echo "${ECHO_T}$RGB_PATH" >&6
cat >>confdefs.h <<EOF
@@ -13550,7 +14512,8 @@ then
fi
### use option --with-bool to override bool's type
-echo "$as_me:13553: checking for type of bool" >&5
+
+echo "$as_me:14516: checking for type of bool" >&5
echo $ECHO_N "checking for type of bool... $ECHO_C" >&6
# Check whether --with-bool or --without-bool was given.
@@ -13560,10 +14523,17 @@ if test "${with_bool+set}" = set; then
else
NCURSES_BOOL=auto
fi;
-echo "$as_me:13563: result: $NCURSES_BOOL" >&5
+echo "$as_me:14526: result: $NCURSES_BOOL" >&5
echo "${ECHO_T}$NCURSES_BOOL" >&6
+case x$NCURSES_BOOL in
+(x|xyes|xno)
+ { { echo "$as_me:14530: error: expected a type name for bool" >&5
+echo "$as_me: error: expected a type name for bool" >&2;}
+ { (exit 1); exit 1; }; }
+ ;;
+esac
-echo "$as_me:13566: checking for alternate terminal capabilities file" >&5
+echo "$as_me:14536: checking for alternate terminal capabilities file" >&5
echo $ECHO_N "checking for alternate terminal capabilities file... $ECHO_C" >&6
# Check whether --with-caps or --without-caps was given.
@@ -13573,12 +14543,18 @@ if test "${with_caps+set}" = set; then
else
TERMINFO_CAPS=Caps
fi;
-test -f "${srcdir}/include/${TERMINFO_CAPS}" || TERMINFO_CAPS=Caps
-echo "$as_me:13577: result: $TERMINFO_CAPS" >&5
+if test ! -f "${srcdir}/include/${TERMINFO_CAPS}"
+then
+ { echo "$as_me:14548: WARNING: file not found: \"${srcdir}/include/${TERMINFO_CAPS}\"" >&5
+echo "$as_me: WARNING: file not found: \"${srcdir}/include/${TERMINFO_CAPS}\"" >&2;}
+ TERMINFO_CAPS=Caps
+fi
+echo "$as_me:14552: result: $TERMINFO_CAPS" >&5
echo "${ECHO_T}$TERMINFO_CAPS" >&6
### use option --with-chtype to override chtype's type
-echo "$as_me:13581: checking for type of chtype" >&5
+
+echo "$as_me:14557: checking for type of chtype" >&5
echo $ECHO_N "checking for type of chtype... $ECHO_C" >&6
# Check whether --with-chtype or --without-chtype was given.
@@ -13588,11 +14564,19 @@ if test "${with_chtype+set}" = set; then
else
NCURSES_CHTYPE=$cf_dft_chtype
fi;
-echo "$as_me:13591: result: $NCURSES_CHTYPE" >&5
+echo "$as_me:14567: result: $NCURSES_CHTYPE" >&5
echo "${ECHO_T}$NCURSES_CHTYPE" >&6
+case x$NCURSES_CHTYPE in
+(x|xyes|xno)
+ { { echo "$as_me:14571: error: expected a type name for chtype" >&5
+echo "$as_me: error: expected a type name for chtype" >&2;}
+ { (exit 1); exit 1; }; }
+ ;;
+esac
### use option --with-ospeed to override ospeed's type
-echo "$as_me:13595: checking for type of ospeed" >&5
+
+echo "$as_me:14579: checking for type of ospeed" >&5
echo $ECHO_N "checking for type of ospeed... $ECHO_C" >&6
# Check whether --with-ospeed or --without-ospeed was given.
@@ -13602,12 +14586,20 @@ if test "${with_ospeed+set}" = set; then
else
NCURSES_OSPEED=short
fi;
-echo "$as_me:13605: result: $NCURSES_OSPEED" >&5
+echo "$as_me:14589: result: $NCURSES_OSPEED" >&5
echo "${ECHO_T}$NCURSES_OSPEED" >&6
+case x$NCURSES_OSPEED in
+(x|xyes|xno)
+ { { echo "$as_me:14593: error: expected a type name for ospeed" >&5
+echo "$as_me: error: expected a type name for ospeed" >&2;}
+ { (exit 1); exit 1; }; }
+ ;;
+esac
### use option --with-mmask-t to override mmask_t's type
-echo "$as_me:13609: checking for type of mmask_t" >&5
-echo $ECHO_N "checking for type of mmask_t... $ECHO_C" >&6
+
+echo "$as_me:14601: checking for type of mmask-t" >&5
+echo $ECHO_N "checking for type of mmask-t... $ECHO_C" >&6
# Check whether --with-mmask-t or --without-mmask-t was given.
if test "${with_mmask_t+set}" = set; then
@@ -13616,11 +14608,18 @@ if test "${with_mmask_t+set}" = set; then
else
NCURSES_MMASK_T=$cf_dft_mmask_t
fi;
-echo "$as_me:13619: result: $NCURSES_MMASK_T" >&5
+echo "$as_me:14611: result: $NCURSES_MMASK_T" >&5
echo "${ECHO_T}$NCURSES_MMASK_T" >&6
+case x$NCURSES_MMASK_T in
+(x|xyes|xno)
+ { { echo "$as_me:14615: error: expected a type name for mmask-t" >&5
+echo "$as_me: error: expected a type name for mmask-t" >&2;}
+ { (exit 1); exit 1; }; }
+ ;;
+esac
### use option --with-ccharw-max to override CCHARW_MAX size
-echo "$as_me:13623: checking for size CCHARW_MAX" >&5
+echo "$as_me:14622: checking for size CCHARW_MAX" >&5
echo $ECHO_N "checking for size CCHARW_MAX... $ECHO_C" >&6
# Check whether --with-ccharw-max or --without-ccharw-max was given.
@@ -13628,203 +14627,18 @@ if test "${with_ccharw_max+set}" = set; then
withval="$with_ccharw_max"
NCURSES_CCHARW_MAX="$withval"
else
- NCURSES_CCHARW_MAX=5
+ NCURSES_CCHARW_MAX=$cf_dft_ccharw_max
fi;
-echo "$as_me:13633: result: $NCURSES_CCHARW_MAX" >&5
+echo "$as_me:14632: result: $NCURSES_CCHARW_MAX" >&5
echo "${ECHO_T}$NCURSES_CCHARW_MAX" >&6
-echo "$as_me:13636: checking for ANSI C header files" >&5
-echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
-if test "${ac_cv_header_stdc+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >"conftest.$ac_ext" <<_ACEOF
-#line 13642 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-_ACEOF
-if { (eval echo "$as_me:13650: \"$ac_cpp "conftest.$ac_ext"\"") >&5
- (eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
- ac_status=$?
- $EGREP -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:13656: \$? = $ac_status" >&5
- (exit "$ac_status"); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- ac_cv_header_stdc=yes
-else
- echo "$as_me: failed program was:" >&5
- cat "conftest.$ac_ext" >&5
- ac_cv_header_stdc=no
-fi
-rm -f conftest.err "conftest.$ac_ext"
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat >"conftest.$ac_ext" <<_ACEOF
-#line 13678 "configure"
-#include "confdefs.h"
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "memchr" >/dev/null 2>&1; then
- :
-else
- ac_cv_header_stdc=no
-fi
-rm -rf conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat >"conftest.$ac_ext" <<_ACEOF
-#line 13696 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "free" >/dev/null 2>&1; then
- :
-else
- ac_cv_header_stdc=no
-fi
-rm -rf conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- if test "$cross_compiling" = yes; then
- :
-else
- cat >"conftest.$ac_ext" <<_ACEOF
-#line 13717 "configure"
-#include "confdefs.h"
-#include <ctype.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main (void)
-{
- int i;
- for (i = 0; i < 256; i++)
- if (XOR (islower (i), ISLOWER (i))
- || toupper (i) != TOUPPER (i))
- $ac_main_return(2);
- $ac_main_return (0);
-}
-_ACEOF
-rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:13743: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:13746: \$? = $ac_status" >&5
- (exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:13748: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:13751: \$? = $ac_status" >&5
- (exit "$ac_status"); }; }; then
- :
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-cat "conftest.$ac_ext" >&5
-ac_cv_header_stdc=no
-fi
-rm -f core ./core.* ./*.core "conftest$ac_exeext" "conftest.$ac_objext" "conftest.$ac_ext"
-fi
-fi
-fi
-echo "$as_me:13764: result: $ac_cv_header_stdc" >&5
-echo "${ECHO_T}$ac_cv_header_stdc" >&6
-if test $ac_cv_header_stdc = yes; then
-
-cat >>confdefs.h <<\EOF
-#define STDC_HEADERS 1
-EOF
-
-fi
-
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
- inttypes.h stdint.h unistd.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:13780: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >"conftest.$ac_ext" <<_ACEOF
-#line 13786 "configure"
-#include "confdefs.h"
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:13792: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:13795: \$? = $ac_status" >&5
- (exit "$ac_status"); } &&
- { ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:13798: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:13801: \$? = $ac_status" >&5
- (exit "$ac_status"); }; }; then
- eval "$as_ac_Header=yes"
-else
- echo "$as_me: failed program was:" >&5
-cat "conftest.$ac_ext" >&5
-eval "$as_ac_Header=no"
-fi
-rm -f "conftest.$ac_objext" "conftest.$ac_ext"
-fi
-echo "$as_me:13811: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
-echo "${ECHO_T}`eval echo '${'"$as_ac_Header"'}'`" >&6
-if test "`eval echo '${'"$as_ac_Header"'}'`" = yes; then
- cat >>confdefs.h <<EOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-EOF
-
-fi
-done
-
-echo "$as_me:13821: checking for signed char" >&5
+echo "$as_me:14635: checking for signed char" >&5
echo $ECHO_N "checking for signed char... $ECHO_C" >&6
if test "${ac_cv_type_signed_char+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 13827 "configure"
+#line 14641 "configure"
#include "confdefs.h"
$ac_includes_default
int
@@ -13839,16 +14653,16 @@ if (sizeof (signed char))
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:13842: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:14656: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:13845: \$? = $ac_status" >&5
+ echo "$as_me:14659: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:13848: \"$ac_try\"") >&5
+ { (eval echo "$as_me:14662: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:13851: \$? = $ac_status" >&5
+ echo "$as_me:14665: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_type_signed_char=yes
else
@@ -13858,10 +14672,10 @@ ac_cv_type_signed_char=no
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:13861: result: $ac_cv_type_signed_char" >&5
+echo "$as_me:14675: result: $ac_cv_type_signed_char" >&5
echo "${ECHO_T}$ac_cv_type_signed_char" >&6
-echo "$as_me:13864: checking size of signed char" >&5
+echo "$as_me:14678: checking size of signed char" >&5
echo $ECHO_N "checking size of signed char... $ECHO_C" >&6
if test "${ac_cv_sizeof_signed_char+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -13870,7 +14684,7 @@ else
if test "$cross_compiling" = yes; then
# Depending upon the size, compute the lo and hi bounds.
cat >"conftest.$ac_ext" <<_ACEOF
-#line 13873 "configure"
+#line 14687 "configure"
#include "confdefs.h"
$ac_includes_default
int
@@ -13882,21 +14696,21 @@ int _array_ [1 - 2 * !((sizeof (signed char)) >= 0)]
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:13885: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:14699: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:13888: \$? = $ac_status" >&5
+ echo "$as_me:14702: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:13891: \"$ac_try\"") >&5
+ { (eval echo "$as_me:14705: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:13894: \$? = $ac_status" >&5
+ echo "$as_me:14708: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_lo=0 ac_mid=0
while :; do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 13899 "configure"
+#line 14713 "configure"
#include "confdefs.h"
$ac_includes_default
int
@@ -13908,16 +14722,16 @@ int _array_ [1 - 2 * !((sizeof (signed char)) <= $ac_mid)]
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:13911: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:14725: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:13914: \$? = $ac_status" >&5
+ echo "$as_me:14728: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:13917: \"$ac_try\"") >&5
+ { (eval echo "$as_me:14731: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:13920: \$? = $ac_status" >&5
+ echo "$as_me:14734: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_hi=$ac_mid; break
else
@@ -13933,7 +14747,7 @@ cat "conftest.$ac_ext" >&5
ac_hi=-1 ac_mid=-1
while :; do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 13936 "configure"
+#line 14750 "configure"
#include "confdefs.h"
$ac_includes_default
int
@@ -13945,16 +14759,16 @@ int _array_ [1 - 2 * !((sizeof (signed char)) >= $ac_mid)]
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:13948: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:14762: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:13951: \$? = $ac_status" >&5
+ echo "$as_me:14765: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:13954: \"$ac_try\"") >&5
+ { (eval echo "$as_me:14768: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:13957: \$? = $ac_status" >&5
+ echo "$as_me:14771: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_lo=$ac_mid; break
else
@@ -13970,7 +14784,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
while test "x$ac_lo" != "x$ac_hi"; do
ac_mid=`expr '(' "$ac_hi" - "$ac_lo" ')' / 2 + "$ac_lo"`
cat >"conftest.$ac_ext" <<_ACEOF
-#line 13973 "configure"
+#line 14787 "configure"
#include "confdefs.h"
$ac_includes_default
int
@@ -13982,16 +14796,16 @@ int _array_ [1 - 2 * !((sizeof (signed char)) <= $ac_mid)]
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:13985: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:14799: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:13988: \$? = $ac_status" >&5
+ echo "$as_me:14802: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:13991: \"$ac_try\"") >&5
+ { (eval echo "$as_me:14805: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:13994: \$? = $ac_status" >&5
+ echo "$as_me:14808: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_hi=$ac_mid
else
@@ -14004,12 +14818,12 @@ done
ac_cv_sizeof_signed_char=$ac_lo
else
if test "$cross_compiling" = yes; then
- { { echo "$as_me:14007: error: cannot run test program while cross compiling" >&5
+ { { echo "$as_me:14821: error: cannot run test program while cross compiling" >&5
echo "$as_me: error: cannot run test program while cross compiling" >&2;}
{ (exit 1); exit 1; }; }
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 14012 "configure"
+#line 14826 "configure"
#include "confdefs.h"
$ac_includes_default
int
@@ -14018,22 +14832,22 @@ main (void)
FILE *f = fopen ("conftest.val", "w");
if (!f)
$ac_main_return (1);
-fprintf (f, "%d", (sizeof (signed char)));
+fprintf (f, "%ld", (long)(sizeof (signed char)));
fclose (f);
;
return 0;
}
_ACEOF
rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:14028: \"$ac_link\"") >&5
+if { (eval echo "$as_me:14842: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:14031: \$? = $ac_status" >&5
+ echo "$as_me:14845: \$? = $ac_status" >&5
(exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:14033: \"$ac_try\"") >&5
+ { (eval echo "$as_me:14847: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:14036: \$? = $ac_status" >&5
+ echo "$as_me:14850: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_sizeof_signed_char=`cat conftest.val`
else
@@ -14049,7 +14863,7 @@ else
ac_cv_sizeof_signed_char=0
fi
fi
-echo "$as_me:14052: result: $ac_cv_sizeof_signed_char" >&5
+echo "$as_me:14866: result: $ac_cv_sizeof_signed_char" >&5
echo "${ECHO_T}$ac_cv_sizeof_signed_char" >&6
cat >>confdefs.h <<EOF
#define SIZEOF_SIGNED_CHAR $ac_cv_sizeof_signed_char
@@ -14060,23 +14874,24 @@ if test "$ac_cv_sizeof_signed_char" = 1 ; then
else
NCURSES_SBOOL="char"
fi
-echo "$as_me:14063: checking if you want to use signed Boolean array in term.h" >&5
-echo $ECHO_N "checking if you want to use signed Boolean array in term.h... $ECHO_C" >&6
+echo "$as_me:14877: checking whether to use signed chars for Boolean array in term.h" >&5
+echo $ECHO_N "checking whether to use signed chars for Boolean array in term.h... $ECHO_C" >&6
# Check whether --enable-signed-char or --disable-signed-char was given.
if test "${enable_signed_char+set}" = set; then
enableval="$enable_signed_char"
with_signed_char=$enableval
else
- with_signed_char=no
+ with_signed_char=$cf_dft_signed_char
fi;
-echo "$as_me:14073: result: $with_signed_char" >&5
+echo "$as_me:14887: result: $with_signed_char" >&5
echo "${ECHO_T}$with_signed_char" >&6
test "x$with_signed_char" != xyes && NCURSES_SBOOL="char"
### use option --with-tparm-arg to override tparm's argument type
-echo "$as_me:14078: checking for type of tparm args" >&5
-echo $ECHO_N "checking for type of tparm args... $ECHO_C" >&6
+
+echo "$as_me:14893: checking for type of tparm-arg" >&5
+echo $ECHO_N "checking for type of tparm-arg... $ECHO_C" >&6
# Check whether --with-tparm-arg or --without-tparm-arg was given.
if test "${with_tparm_arg+set}" = set; then
@@ -14085,11 +14900,18 @@ if test "${with_tparm_arg+set}" = set; then
else
NCURSES_TPARM_ARG=$cf_dft_tparm_arg
fi;
-echo "$as_me:14088: result: $NCURSES_TPARM_ARG" >&5
+echo "$as_me:14903: result: $NCURSES_TPARM_ARG" >&5
echo "${ECHO_T}$NCURSES_TPARM_ARG" >&6
+case x$NCURSES_TPARM_ARG in
+(x|xyes|xno)
+ { { echo "$as_me:14907: error: expected a type name for tparm-arg" >&5
+echo "$as_me: error: expected a type name for tparm-arg" >&2;}
+ { (exit 1); exit 1; }; }
+ ;;
+esac
### Enable compiling-in rcs id's
-echo "$as_me:14092: checking if RCS identifiers should be compiled-in" >&5
+echo "$as_me:14914: checking if RCS identifiers should be compiled-in" >&5
echo $ECHO_N "checking if RCS identifiers should be compiled-in... $ECHO_C" >&6
# Check whether --with-rcs-ids or --without-rcs-ids was given.
@@ -14099,7 +14921,7 @@ if test "${with_rcs_ids+set}" = set; then
else
with_rcs_ids=no
fi;
-echo "$as_me:14102: result: $with_rcs_ids" >&5
+echo "$as_me:14924: result: $with_rcs_ids" >&5
echo "${ECHO_T}$with_rcs_ids" >&6
test "x$with_rcs_ids" = xyes &&
cat >>confdefs.h <<\EOF
@@ -14108,7 +14930,7 @@ EOF
###############################################################################
-echo "$as_me:14111: checking format of man-pages" >&5
+echo "$as_me:14933: checking format of man-pages" >&5
echo $ECHO_N "checking format of man-pages... $ECHO_C" >&6
# Check whether --with-manpage-format or --without-manpage-format was given.
@@ -14130,7 +14952,7 @@ case "$MANPAGE_FORMAT" in
MANPATH="/usr/man:/usr/share/man"
fi
- # look for the 'date' man-page (it's most likely to be installed!)
+ # look for the 'date' man-page (it is most likely to be installed!)
MANPAGE_FORMAT=
cf_preform="no"
cf_catonly="yes"
@@ -14145,10 +14967,12 @@ case "$MANPAGE_FORMAT" in
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";;
+ (*.bz2) MANPAGE_FORMAT="$MANPAGE_FORMAT bzip2";;
+ (*.xz) MANPAGE_FORMAT="$MANPAGE_FORMAT xz";;
+ (*.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
@@ -14187,7 +15011,7 @@ case "$MANPAGE_FORMAT" in
(*)
for cf_option in $MANPAGE_FORMAT; do
case "$cf_option" in
- (gzip|compress|BSDI|normal|formatted|catonly)
+ (xz|bzip2|gzip|compress|BSDI|normal|formatted|catonly)
;;
(*)
cf_unknown="$cf_unknown $cf_option"
@@ -14197,14 +15021,51 @@ case "$MANPAGE_FORMAT" in
;;
esac
-echo "$as_me:14200: result: $MANPAGE_FORMAT" >&5
+echo "$as_me:15024: result: $MANPAGE_FORMAT" >&5
echo "${ECHO_T}$MANPAGE_FORMAT" >&6
if test -n "$cf_unknown" ; then
- { echo "$as_me:14203: WARNING: Unexpected manpage-format $cf_unknown" >&5
+ { echo "$as_me:15027: WARNING: Unexpected manpage-format $cf_unknown" >&5
echo "$as_me: WARNING: Unexpected manpage-format $cf_unknown" >&2;}
fi
-echo "$as_me:14207: checking for manpage renaming" >&5
+cf_manpage_format=no
+cf_manpage_inboth=no
+cf_manpage_so_strip=
+cf_manpage_compress=
+cf_manpage_coptions=
+
+for cf_item in $MANPAGE_FORMAT
+do
+case "$cf_item" in
+(catonly)
+ cf_manpage_format=yes
+ cf_manpage_inboth=no
+ ;;
+(formatted)
+ cf_manpage_format=yes
+ cf_manpage_inboth=yes
+ ;;
+(compress)
+ cf_manpage_so_strip="Z"
+ cf_manpage_compress=compress
+ ;;
+(gzip)
+ cf_manpage_so_strip="gz"
+ cf_manpage_compress=gzip
+ cf_manpage_coptions=-n
+ ;;
+(bzip2)
+ cf_manpage_so_strip="bz2"
+ cf_manpage_compress=bzip2
+ ;;
+(xz)
+ cf_manpage_so_strip="xz"
+ cf_manpage_compress=xz
+ ;;
+esac
+done
+
+echo "$as_me:15068: checking for manpage renaming" >&5
echo $ECHO_N "checking for manpage renaming... $ECHO_C" >&6
# Check whether --with-manpage-renames or --without-manpage-renames was given.
@@ -14221,35 +15082,27 @@ case ".$MANPAGE_RENAMES" in
(.|.yes)
# Debian 'man' program?
if test -f /etc/debian_version ; then
- MANPAGE_RENAMES=`cd "$srcdir" && pwd`/man/man_db.renames
+ MANPAGE_RENAMES=man/man_db.renames
else
MANPAGE_RENAMES=no
fi
;;
esac
-if test "$MANPAGE_RENAMES" != no ; then
- if test -f "$srcdir/man/$MANPAGE_RENAMES" ; then
- MANPAGE_RENAMES=`cd "$srcdir/man" && pwd`/$MANPAGE_RENAMES
- elif test ! -f "$MANPAGE_RENAMES" ; then
- { { echo "$as_me:14235: error: not a filename: $MANPAGE_RENAMES" >&5
+if test "$MANPAGE_RENAMES" = man/man_db.renames ; then
+ MANPAGE_RENAMES=`pwd`/$MANPAGE_RENAMES
+elif test "$MANPAGE_RENAMES" = no ; then
+ :
+elif test ! -f "$MANPAGE_RENAMES" ; then
+ { { echo "$as_me:15097: error: not a filename: $MANPAGE_RENAMES" >&5
echo "$as_me: error: not a filename: $MANPAGE_RENAMES" >&2;}
{ (exit 1); exit 1; }; }
- fi
-
- test ! -d man && mkdir man
-
- # Construct a sed-script to perform renaming within man-pages
- if test -n "$MANPAGE_RENAMES" ; then
- test ! -d man && mkdir man
- $SHELL "$srcdir/man/make_sed.sh" "$MANPAGE_RENAMES" >./edit_man.sed
- fi
fi
-echo "$as_me:14249: result: $MANPAGE_RENAMES" >&5
+echo "$as_me:15102: result: $MANPAGE_RENAMES" >&5
echo "${ECHO_T}$MANPAGE_RENAMES" >&6
-echo "$as_me:14252: checking if manpage aliases will be installed" >&5
+echo "$as_me:15105: checking if manpage aliases will be installed" >&5
echo $ECHO_N "checking if manpage aliases will be installed... $ECHO_C" >&6
# Check whether --with-manpage-aliases or --without-manpage-aliases was given.
@@ -14260,7 +15113,7 @@ else
MANPAGE_ALIASES=yes
fi;
-echo "$as_me:14263: result: $MANPAGE_ALIASES" >&5
+echo "$as_me:15116: result: $MANPAGE_ALIASES" >&5
echo "${ECHO_T}$MANPAGE_ALIASES" >&6
case "x$LN_S" in
@@ -14274,7 +15127,7 @@ esac
MANPAGE_SYMLINKS=no
if test "$MANPAGE_ALIASES" = yes ; then
-echo "$as_me:14277: checking if manpage symlinks should be used" >&5
+echo "$as_me:15130: checking if manpage symlinks should be used" >&5
echo $ECHO_N "checking if manpage symlinks should be used... $ECHO_C" >&6
# Check whether --with-manpage-symlinks or --without-manpage-symlinks was given.
@@ -14285,19 +15138,19 @@ else
MANPAGE_SYMLINKS=$cf_use_symlinks
fi;
-if test "$$cf_use_symlinks" = no; then
+if test "$cf_use_symlinks" = no; then
if test "$MANPAGE_SYMLINKS" = yes ; then
- { echo "$as_me:14290: WARNING: cannot make symlinks" >&5
+ { echo "$as_me:15143: WARNING: cannot make symlinks" >&5
echo "$as_me: WARNING: cannot make symlinks" >&2;}
MANPAGE_SYMLINKS=no
fi
fi
-echo "$as_me:14296: result: $MANPAGE_SYMLINKS" >&5
+echo "$as_me:15149: result: $MANPAGE_SYMLINKS" >&5
echo "${ECHO_T}$MANPAGE_SYMLINKS" >&6
fi
-echo "$as_me:14300: checking for manpage tbl" >&5
+echo "$as_me:15153: checking for manpage tbl" >&5
echo $ECHO_N "checking for manpage tbl... $ECHO_C" >&6
# Check whether --with-manpage-tbl or --without-manpage-tbl was given.
@@ -14308,7 +15161,7 @@ else
MANPAGE_TBL=no
fi;
-echo "$as_me:14311: result: $MANPAGE_TBL" >&5
+echo "$as_me:15164: result: $MANPAGE_TBL" >&5
echo "${ECHO_T}$MANPAGE_TBL" >&6
if test "$prefix" = "NONE" ; then
@@ -14317,36 +15170,8 @@ else
cf_prefix="$prefix"
fi
-case "$MANPAGE_FORMAT" in
-(*catonly*)
- cf_format=yes
- cf_inboth=no
- ;;
-(*formatted*)
- cf_format=yes
- cf_inboth=yes
- ;;
-(*)
- cf_format=no
- cf_inboth=no
- ;;
-esac
-
test ! -d man && mkdir man
-cf_so_strip=
-cf_compress=
-case "$MANPAGE_FORMAT" in
-(*compress*)
- cf_so_strip="Z"
- cf_compress=compress
- ;;
-(*gzip*)
- cf_so_strip="gz"
- cf_compress=gzip
- ;;
-esac
-
cf_edit_man=./edit_man.sh
cf_man_alias=`pwd`/man_alias.sed
@@ -14364,6 +15189,7 @@ NCURSES_PATCH="$NCURSES_PATCH"
NCURSES_OSPEED="$NCURSES_OSPEED"
TERMINFO="$TERMINFO"
+TERMINFO_DIRS="$TERMINFO_DIRS"
INSTALL="$INSTALL"
INSTALL_DATA="$INSTALL_DATA"
@@ -14371,7 +15197,8 @@ INSTALL_DATA="$INSTALL_DATA"
transform="$program_transform_name"
TMP=\${TMPDIR:=/tmp}/man\$\$
-trap "rm -f \$TMP" 0 1 2 3 15
+trap "rm -f \$TMP; exit 1" 1 2 3 15
+trap "rm -f \$TMP" 0
form=\$1
shift || exit 1
@@ -14387,8 +15214,8 @@ top_srcdir=\$srcdir/..
shift || exit 1
if test "\$form" = normal ; then
- if test "$cf_format" = yes ; then
- if test "$cf_inboth" = no ; then
+ if test "$cf_manpage_format" = yes ; then
+ if test "$cf_manpage_inboth" = no ; then
$SHELL "\$0" format "\$verb" "\$mandir" "\$srcdir" "\$@"
exit $?
fi
@@ -14440,9 +15267,9 @@ CF_EOF2
aliases=
cf_source=\`basename "\$i"\`
- inalias=\$cf_source
- test ! -f "\$inalias" && inalias="\$srcdir/\$inalias"
- if test ! -f "\$inalias" ; then
+ cf_full_alias=\$cf_source
+ test ! -f "\$cf_full_alias" && cf_full_alias="\$srcdir/\$cf_full_alias"
+ if test ! -f "\$cf_full_alias" ; then
echo ".. skipped \$cf_source"
continue
fi
@@ -14451,8 +15278,9 @@ CF_EOF
if test "$MANPAGE_ALIASES" != no ; then
cat >>$cf_edit_man <<CF_EOF
nCurses=ignore.3x
+ cf_part_alias=\`echo \$cf_full_alias| sed -e 's,^.*/,,'\`
test "$with_curses_h" = yes && nCurses=ncurses.3x
- aliases=\`sed -f "\$top_srcdir/man/manlinks.sed" "\$inalias" |sed -f "$cf_man_alias" | sort -u; test "\$inalias" = "\$nCurses" && echo curses\`
+ aliases=\`sed -f "\$top_srcdir/man/manlinks.sed" "\$cf_full_alias" |sed -f "$cf_man_alias" | sort -u; test "\$cf_part_alias" = "\$nCurses" && echo curses\`
CF_EOF
fi
@@ -14481,7 +15309,7 @@ cat >>$cf_edit_man <<CF_EOF
sed -f "$cf_man_alias" \\
CF_EOF
-if test -f "$MANPAGE_RENAMES" ; then
+if test "$MANPAGE_RENAMES" != no ; then
cat >>$cf_edit_man <<CF_EOF
< "\$i" | sed -f `pwd`/edit_man.sed >\$TMP
CF_EOF
@@ -14519,15 +15347,15 @@ cat >>$cf_edit_man <<CF_EOF
fi
CF_EOF
-if test -n "$cf_compress" ; then
+if test -n "$cf_manpage_compress" ; then
cat >>$cf_edit_man <<CF_EOF
if test "\$verb" = installing ; then
- if ( "$cf_compress" -f \$TMP )
+ if ( "$cf_manpage_compress" -f \$TMP )
then
- mv \$TMP.$cf_so_strip \$TMP
+ mv \$TMP.$cf_manpage_so_strip \$TMP
fi
fi
- cf_target="\$cf_target.$cf_so_strip"
+ cf_target="\$cf_target.$cf_manpage_so_strip"
CF_EOF
fi
@@ -14544,6 +15372,14 @@ esac
cat >>$cf_edit_man <<CF_EOF
suffix=\`basename "\$cf_target" | sed -e 's%^[^.]*%%'\`
+ extra_suffix=
+ if test -n "$EXTRA_SUFFIX" ; then
+ case \$cf_target in
+ (*${EXTRA_SUFFIX}\$suffix)
+ extra_suffix="$EXTRA_SUFFIX"
+ ;;
+ esac
+ fi
if test "\$verb" = installing ; then
echo "\$verb \$cf_target"
\$INSTALL_DATA \$TMP "\$cf_target"
@@ -14551,13 +15387,14 @@ cat >>$cf_edit_man <<CF_EOF
test -n "\$aliases" && (
cd "\$cf_subdir\${section}" && (
cf_source=\`echo "\$cf_target" |sed -e 's%^.*/\\([^/][^/]*/[^/][^/]*$\\)%\\1%'\`
- test -n "$cf_so_strip" && cf_source=\`echo "\$cf_source" |sed -e 's%\\.$cf_so_strip\$%%'\`
+ test -n "$cf_manpage_so_strip" && cf_source=\`echo "\$cf_source" |sed -e 's%\\.$cf_manpage_so_strip\$%%'\`
cf_target=\`basename "\$cf_target"\`
for cf_alias in \$aliases
do
if test "\$section" = 1 ; then
cf_alias=\`echo "\$cf_alias" |sed "\${transform}"\`
fi
+ cf_alias="\${cf_alias}\${extra_suffix}"
if test "$MANPAGE_SYMLINKS" = yes ; then
if test -f "\$cf_alias\${suffix}" ; then
@@ -14585,11 +15422,11 @@ cat >>$cf_edit_man <<CF_EOF
elif test "\$cf_target" != "\$cf_alias\${suffix}" ; then
echo ".so \$cf_source" >\$TMP
CF_EOF
-if test -n "$cf_compress" ; then
+if test -n "$cf_manpage_compress" ; then
cat >>$cf_edit_man <<CF_EOF
- if test -n "$cf_so_strip" ; then
- "$cf_compress" -f \$TMP
- mv \$TMP.$cf_so_strip \$TMP
+ if test -n "$cf_manpage_so_strip" ; then
+ "$cf_manpage_compress" $cf_manpage_coptions -f \$TMP
+ mv \$TMP.$cf_manpage_so_strip \$TMP
fi
CF_EOF
fi
@@ -14614,6 +15451,7 @@ cat >>$cf_edit_man <<CF_EOF
if test "\$section" = 1 ; then
cf_alias=\`echo "\$cf_alias" |sed "\${transform}"\`
fi
+ cf_alias="\${cf_alias}\${extra_suffix}"
echo ".. \$verb alias \$cf_alias\${suffix}"
rm -f "\$cf_alias\${suffix}"
@@ -14628,7 +15466,7 @@ cat >>$cf_edit_man <<CF_EOF
esac
done
-if test "$cf_inboth" = yes ; then
+if test "$cf_manpage_inboth" = yes ; then
if test "\$form" != format ; then
$SHELL "\$0" format "\$verb" "\$mandir" "\$srcdir" "\$@"
fi
@@ -14641,7 +15479,7 @@ chmod 755 "$cf_edit_man"
###############################################################################
### Note that some functions (such as const) are normally disabled anyway.
-echo "$as_me:14644: checking if you want to build with function extensions" >&5
+echo "$as_me:15482: checking if you want to build with function extensions" >&5
echo $ECHO_N "checking if you want to build with function extensions... $ECHO_C" >&6
# Check whether --enable-ext-funcs or --disable-ext-funcs was given.
@@ -14651,7 +15489,7 @@ if test "${enable_ext_funcs+set}" = set; then
else
with_ext_funcs=yes
fi;
-echo "$as_me:14654: result: $with_ext_funcs" >&5
+echo "$as_me:15492: result: $with_ext_funcs" >&5
echo "${ECHO_T}$with_ext_funcs" >&6
if test "x$with_ext_funcs" = xyes ; then
NCURSES_EXT_FUNCS=1
@@ -14689,10 +15527,6 @@ cat >>confdefs.h <<\EOF
EOF
cat >>confdefs.h <<\EOF
-#define HAVE_USE_EXTENDED_NAMES 1
-EOF
-
-cat >>confdefs.h <<\EOF
#define HAVE_USE_SCREEN 1
EOF
@@ -14711,7 +15545,7 @@ else
GENERATED_EXT_FUNCS=
fi
-echo "$as_me:14714: checking if you want to build with SCREEN extensions" >&5
+echo "$as_me:15548: checking if you want to build with SCREEN extensions" >&5
echo $ECHO_N "checking if you want to build with SCREEN extensions... $ECHO_C" >&6
# Check whether --enable-sp-funcs or --disable-sp-funcs was given.
@@ -14721,7 +15555,7 @@ if test "${enable_sp_funcs+set}" = set; then
else
with_sp_funcs=$cf_dft_ext_spfuncs
fi;
-echo "$as_me:14724: result: $with_sp_funcs" >&5
+echo "$as_me:15558: result: $with_sp_funcs" >&5
echo "${ECHO_T}$with_sp_funcs" >&6
if test "x$with_sp_funcs" = xyes ; then
NCURSES_SP_FUNCS=1
@@ -14740,7 +15574,7 @@ else
GENERATED_SP_FUNCS=
fi
-echo "$as_me:14743: checking if you want to build with terminal-driver" >&5
+echo "$as_me:15577: checking if you want to build with terminal-driver" >&5
echo $ECHO_N "checking if you want to build with terminal-driver... $ECHO_C" >&6
# Check whether --enable-term-driver or --disable-term-driver was given.
@@ -14750,7 +15584,7 @@ if test "${enable_term_driver+set}" = set; then
else
with_term_driver=no
fi;
-echo "$as_me:14753: result: $with_term_driver" >&5
+echo "$as_me:15587: result: $with_term_driver" >&5
echo "${ECHO_T}$with_term_driver" >&6
if test "x$with_term_driver" = xyes ; then
@@ -14759,19 +15593,19 @@ cat >>confdefs.h <<\EOF
EOF
if test "x$with_termlib" != xno ; then
- { { echo "$as_me:14762: error: The term-driver option conflicts with the termlib option" >&5
+ { { echo "$as_me:15596: error: The term-driver option conflicts with the termlib option" >&5
echo "$as_me: error: The term-driver option conflicts with the termlib option" >&2;}
{ (exit 1); exit 1; }; }
fi
if test "x$with_sp_funcs" != xyes ; then
- { { echo "$as_me:14767: error: The term-driver option relies upon sp-funcs" >&5
+ { { echo "$as_me:15601: error: The term-driver option relies upon sp-funcs" >&5
echo "$as_me: error: The term-driver option relies upon sp-funcs" >&2;}
{ (exit 1); exit 1; }; }
fi
fi
### use option --enable-const to turn on use of const beyond that in XSI.
-echo "$as_me:14774: checking for extended use of const keyword" >&5
+echo "$as_me:15608: checking for extended use of const keyword" >&5
echo $ECHO_N "checking for extended use of const keyword... $ECHO_C" >&6
# Check whether --enable-const or --disable-const was given.
@@ -14781,7 +15615,7 @@ if test "${enable_const+set}" = set; then
else
with_ext_const=$cf_dft_ext_const
fi;
-echo "$as_me:14784: result: $with_ext_const" >&5
+echo "$as_me:15618: result: $with_ext_const" >&5
echo "${ECHO_T}$with_ext_const" >&6
NCURSES_CONST='/*nothing*/'
if test "x$with_ext_const" = xyes ; then
@@ -14789,7 +15623,7 @@ if test "x$with_ext_const" = xyes ; then
fi
### use option --enable-ext-colors to turn on use of colors beyond 16.
-echo "$as_me:14792: checking if you want to use extended colors" >&5
+echo "$as_me:15626: checking if you want to use extended colors" >&5
echo $ECHO_N "checking if you want to use extended colors... $ECHO_C" >&6
# Check whether --enable-ext-colors or --disable-ext-colors was given.
@@ -14799,12 +15633,12 @@ if test "${enable_ext_colors+set}" = set; then
else
with_ext_colors=$cf_dft_ext_colors
fi;
-echo "$as_me:14802: result: $with_ext_colors" >&5
+echo "$as_me:15636: result: $with_ext_colors" >&5
echo "${ECHO_T}$with_ext_colors" >&6
NCURSES_EXT_COLORS=0
if test "x$with_ext_colors" = xyes ; then
if test "x$with_widec" != xyes ; then
- { echo "$as_me:14807: WARNING: This option applies only to wide-character library" >&5
+ { echo "$as_me:15641: WARNING: This option applies only to wide-character library" >&5
echo "$as_me: WARNING: This option applies only to wide-character library" >&2;}
else
# cannot be ABI 5 since it changes sizeof(cchar_t)
@@ -14814,8 +15648,9 @@ if test "${with_abi_version+set}" != set; then
(5.*)
cf_cv_rel_version=6.0
cf_cv_abi_version=6
- { echo "$as_me:14817: WARNING: overriding ABI version to $cf_cv_abi_version" >&5
-echo "$as_me: WARNING: overriding ABI version to $cf_cv_abi_version" >&2;}
+ cf_cv_abi_default=6
+ { echo "$as_me:15652: WARNING: overriding ABI version to $cf_cv_abi_default" >&5
+echo "$as_me: WARNING: overriding ABI version to $cf_cv_abi_default" >&2;}
;;
esac
fi
@@ -14842,7 +15677,7 @@ EOF
fi
### use option --enable-ext-mouse to modify coding to support 5-button mice
-echo "$as_me:14845: checking if you want to use extended mouse encoding" >&5
+echo "$as_me:15680: checking if you want to use extended mouse encoding" >&5
echo $ECHO_N "checking if you want to use extended mouse encoding... $ECHO_C" >&6
# Check whether --enable-ext-mouse or --disable-ext-mouse was given.
@@ -14852,27 +15687,34 @@ if test "${enable_ext_mouse+set}" = set; then
else
with_ext_mouse=$cf_dft_ext_mouse
fi;
-echo "$as_me:14855: result: $with_ext_mouse" >&5
+echo "$as_me:15690: result: $with_ext_mouse" >&5
echo "${ECHO_T}$with_ext_mouse" >&6
-NCURSES_MOUSE_VERSION=1
if test "x$with_ext_mouse" = xyes ; then
- NCURSES_MOUSE_VERSION=2
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
- { echo "$as_me:14866: WARNING: overriding ABI version to $cf_cv_abi_version" >&5
-echo "$as_me: WARNING: overriding ABI version to $cf_cv_abi_version" >&2;}
+ cf_cv_abi_default=6
+ { echo "$as_me:15700: WARNING: overriding ABI version to $cf_cv_abi_default" >&5
+echo "$as_me: WARNING: overriding ABI version to $cf_cv_abi_default" >&2;}
;;
esac
fi
fi
+if test $cf_cv_abi_default -le 5 ; then
+ NCURSES_MOUSE_VERSION=1
+elif test $cf_cv_abi_default -le 6 ; then
+ NCURSES_MOUSE_VERSION=2
+else
+ NCURSES_MOUSE_VERSION=3
+fi
+
### use option --enable-ext-putwin to turn on extended screendumps
-echo "$as_me:14875: checking if you want to use extended putwin/screendump" >&5
+echo "$as_me:15717: checking if you want to use extended putwin/screendump" >&5
echo $ECHO_N "checking if you want to use extended putwin/screendump... $ECHO_C" >&6
# Check whether --enable-ext-putwin or --disable-ext-putwin was given.
@@ -14882,7 +15724,7 @@ if test "${enable_ext_putwin+set}" = set; then
else
with_ext_putwin=$cf_dft_ext_putwin
fi;
-echo "$as_me:14885: result: $with_ext_putwin" >&5
+echo "$as_me:15727: result: $with_ext_putwin" >&5
echo "${ECHO_T}$with_ext_putwin" >&6
if test "x$with_ext_putwin" = xyes ; then
@@ -14892,7 +15734,7 @@ EOF
fi
-echo "$as_me:14895: checking if you want \$NCURSES_NO_PADDING code" >&5
+echo "$as_me:15737: checking if you want \$NCURSES_NO_PADDING code" >&5
echo $ECHO_N "checking if you want \$NCURSES_NO_PADDING code... $ECHO_C" >&6
# Check whether --enable-no-padding or --disable-no-padding was given.
@@ -14902,7 +15744,7 @@ if test "${enable_no_padding+set}" = set; then
else
with_no_padding=$with_ext_funcs
fi;
-echo "$as_me:14905: result: $with_no_padding" >&5
+echo "$as_me:15747: result: $with_no_padding" >&5
echo "${ECHO_T}$with_no_padding" >&6
test "x$with_no_padding" = xyes &&
cat >>confdefs.h <<\EOF
@@ -14910,7 +15752,7 @@ cat >>confdefs.h <<\EOF
EOF
### use option --enable-sigwinch to turn on use of SIGWINCH logic
-echo "$as_me:14913: checking if you want SIGWINCH handler" >&5
+echo "$as_me:15755: checking if you want SIGWINCH handler" >&5
echo $ECHO_N "checking if you want SIGWINCH handler... $ECHO_C" >&6
# Check whether --enable-sigwinch or --disable-sigwinch was given.
@@ -14920,15 +15762,22 @@ if test "${enable_sigwinch+set}" = set; then
else
with_sigwinch=$with_ext_funcs
fi;
-echo "$as_me:14923: result: $with_sigwinch" >&5
+echo "$as_me:15765: result: $with_sigwinch" >&5
echo "${ECHO_T}$with_sigwinch" >&6
-test "x$with_sigwinch" = xyes &&
+if test "x$with_sigwinch" = xyes
+then
+
cat >>confdefs.h <<\EOF
#define USE_SIGWINCH 1
EOF
+ cf_cv_enable_sigwinch=1
+else
+ cf_cv_enable_sigwinch=0
+fi
+
### use option --enable-tcap-names to allow user to define new capabilities
-echo "$as_me:14931: checking if you want user-definable terminal capabilities like termcap" >&5
+echo "$as_me:15780: checking if you want user-definable terminal capabilities like termcap" >&5
echo $ECHO_N "checking if you want user-definable terminal capabilities like termcap... $ECHO_C" >&6
# Check whether --enable-tcap-names or --disable-tcap-names was given.
@@ -14938,14 +15787,21 @@ if test "${enable_tcap_names+set}" = set; then
else
with_tcap_names=$with_ext_funcs
fi;
-echo "$as_me:14941: result: $with_tcap_names" >&5
+echo "$as_me:15790: result: $with_tcap_names" >&5
echo "${ECHO_T}$with_tcap_names" >&6
NCURSES_XNAMES=0
-test "x$with_tcap_names" = xyes && NCURSES_XNAMES=1
+if test "x$with_tcap_names" = xyes; then
+ NCURSES_XNAMES=1
+
+cat >>confdefs.h <<\EOF
+#define NCURSES_XNAMES 1
+EOF
+
+fi
##############################################################################
-echo "$as_me:14948: checking if you want to link with the pthread library" >&5
+echo "$as_me:15804: checking if you want to link with the pthread library" >&5
echo $ECHO_N "checking if you want to link with the pthread library... $ECHO_C" >&6
# Check whether --with-pthread or --without-pthread was given.
@@ -14955,27 +15811,27 @@ if test "${with_pthread+set}" = set; then
else
with_pthread=no
fi;
-echo "$as_me:14958: result: $with_pthread" >&5
+echo "$as_me:15814: result: $with_pthread" >&5
echo "${ECHO_T}$with_pthread" >&6
if test "$with_pthread" != no ; then
- echo "$as_me:14962: checking for pthread.h" >&5
+ echo "$as_me:15818: checking for pthread.h" >&5
echo $ECHO_N "checking for pthread.h... $ECHO_C" >&6
if test "${ac_cv_header_pthread_h+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 14968 "configure"
+#line 15824 "configure"
#include "confdefs.h"
#include <pthread.h>
_ACEOF
-if { (eval echo "$as_me:14972: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:15828: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:14978: \$? = $ac_status" >&5
+ echo "$as_me:15834: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -14994,7 +15850,7 @@ else
fi
rm -f conftest.err "conftest.$ac_ext"
fi
-echo "$as_me:14997: result: $ac_cv_header_pthread_h" >&5
+echo "$as_me:15853: result: $ac_cv_header_pthread_h" >&5
echo "${ECHO_T}$ac_cv_header_pthread_h" >&6
if test "$ac_cv_header_pthread_h" = yes; then
@@ -15004,7 +15860,7 @@ EOF
for cf_lib_pthread in pthread c_r
do
- echo "$as_me:15007: checking if we can link with the $cf_lib_pthread library" >&5
+ echo "$as_me:15863: checking if we can link with the $cf_lib_pthread library" >&5
echo $ECHO_N "checking if we can link with the $cf_lib_pthread library... $ECHO_C" >&6
cf_save_LIBS="$LIBS"
@@ -15025,7 +15881,7 @@ done
LIBS="$cf_add_libs"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 15028 "configure"
+#line 15884 "configure"
#include "confdefs.h"
#include <pthread.h>
@@ -15042,16 +15898,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:15045: \"$ac_link\"") >&5
+if { (eval echo "$as_me:15901: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:15048: \$? = $ac_status" >&5
+ echo "$as_me:15904: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:15051: \"$ac_try\"") >&5
+ { (eval echo "$as_me:15907: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:15054: \$? = $ac_status" >&5
+ echo "$as_me:15910: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
with_pthread=yes
else
@@ -15061,7 +15917,7 @@ with_pthread=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS="$cf_save_LIBS"
- echo "$as_me:15064: result: $with_pthread" >&5
+ echo "$as_me:15920: result: $with_pthread" >&5
echo "${ECHO_T}$with_pthread" >&6
test "$with_pthread" = yes && break
done
@@ -15089,7 +15945,7 @@ cat >>confdefs.h <<\EOF
EOF
else
- { { echo "$as_me:15092: error: Cannot link with pthread library" >&5
+ { { echo "$as_me:15948: error: Cannot link with pthread library" >&5
echo "$as_me: error: Cannot link with pthread library" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -15099,13 +15955,13 @@ fi
fi
if test "x$with_pthread" != xno; then
- echo "$as_me:15102: checking for pthread_kill" >&5
+ echo "$as_me:15958: checking for pthread_kill" >&5
echo $ECHO_N "checking for pthread_kill... $ECHO_C" >&6
if test "${ac_cv_func_pthread_kill+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 15108 "configure"
+#line 15964 "configure"
#include "confdefs.h"
#define pthread_kill autoconf_temporary
#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */
@@ -15136,16 +15992,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:15139: \"$ac_link\"") >&5
+if { (eval echo "$as_me:15995: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:15142: \$? = $ac_status" >&5
+ echo "$as_me:15998: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:15145: \"$ac_try\"") >&5
+ { (eval echo "$as_me:16001: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:15148: \$? = $ac_status" >&5
+ echo "$as_me:16004: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_func_pthread_kill=yes
else
@@ -15155,11 +16011,11 @@ ac_cv_func_pthread_kill=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:15158: result: $ac_cv_func_pthread_kill" >&5
+echo "$as_me:16014: result: $ac_cv_func_pthread_kill" >&5
echo "${ECHO_T}$ac_cv_func_pthread_kill" >&6
if test "$ac_cv_func_pthread_kill" = yes; then
- echo "$as_me:15162: checking if you want to allow EINTR in wgetch with pthreads" >&5
+ echo "$as_me:16018: checking if you want to allow EINTR in wgetch with pthreads" >&5
echo $ECHO_N "checking if you want to allow EINTR in wgetch with pthreads... $ECHO_C" >&6
# Check whether --enable-pthreads-eintr or --disable-pthreads-eintr was given.
@@ -15169,7 +16025,7 @@ if test "${enable_pthreads_eintr+set}" = set; then
else
use_pthreads_eintr=no
fi;
- echo "$as_me:15172: result: $use_pthreads_eintr" >&5
+ echo "$as_me:16028: result: $use_pthreads_eintr" >&5
echo "${ECHO_T}$use_pthreads_eintr" >&6
if test "x$use_pthreads_eintr" = xyes ; then
@@ -15180,7 +16036,7 @@ EOF
fi
fi
- echo "$as_me:15183: checking if you want to use weak-symbols for pthreads" >&5
+ echo "$as_me:16039: checking if you want to use weak-symbols for pthreads" >&5
echo $ECHO_N "checking if you want to use weak-symbols for pthreads... $ECHO_C" >&6
# Check whether --enable-weak-symbols or --disable-weak-symbols was given.
@@ -15190,18 +16046,18 @@ if test "${enable_weak_symbols+set}" = set; then
else
use_weak_symbols=no
fi;
- echo "$as_me:15193: result: $use_weak_symbols" >&5
+ echo "$as_me:16049: result: $use_weak_symbols" >&5
echo "${ECHO_T}$use_weak_symbols" >&6
if test "x$use_weak_symbols" = xyes ; then
-echo "$as_me:15197: checking if $CC supports weak symbols" >&5
+echo "$as_me:16053: checking if $CC supports weak symbols" >&5
echo $ECHO_N "checking if $CC supports weak symbols... $ECHO_C" >&6
if test "${cf_cv_weak_symbols+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 15204 "configure"
+#line 16060 "configure"
#include "confdefs.h"
#include <stdio.h>
@@ -15227,16 +16083,16 @@ weak_symbol(fopen);
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:15230: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:16086: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:15233: \$? = $ac_status" >&5
+ echo "$as_me:16089: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:15236: \"$ac_try\"") >&5
+ { (eval echo "$as_me:16092: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:15239: \$? = $ac_status" >&5
+ echo "$as_me:16095: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_weak_symbols=yes
else
@@ -15247,7 +16103,7 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:15250: result: $cf_cv_weak_symbols" >&5
+echo "$as_me:16106: result: $cf_cv_weak_symbols" >&5
echo "${ECHO_T}$cf_cv_weak_symbols" >&6
else
@@ -15297,7 +16153,7 @@ fi
# opaque outside of that, so there is no --enable-opaque option. We can use
# this option without --with-pthreads, but this will be always set for
# pthreads.
-echo "$as_me:15300: checking if you want reentrant code" >&5
+echo "$as_me:16156: checking if you want reentrant code" >&5
echo $ECHO_N "checking if you want reentrant code... $ECHO_C" >&6
# Check whether --enable-reentrant or --disable-reentrant was given.
@@ -15307,7 +16163,7 @@ if test "${enable_reentrant+set}" = set; then
else
with_reentrant=no
fi;
-echo "$as_me:15310: result: $with_reentrant" >&5
+echo "$as_me:16166: result: $with_reentrant" >&5
echo "${ECHO_T}$with_reentrant" >&6
if test "x$with_reentrant" = xyes ; then
cf_cv_enable_reentrant=1
@@ -15395,8 +16251,9 @@ if test "${with_abi_version+set}" != set; then
(5.*)
cf_cv_rel_version=6.0
cf_cv_abi_version=6
- { echo "$as_me:15398: WARNING: overriding ABI version to $cf_cv_abi_version" >&5
-echo "$as_me: WARNING: overriding ABI version to $cf_cv_abi_version" >&2;}
+ cf_cv_abi_default=6
+ { echo "$as_me:16255: WARNING: overriding ABI version to $cf_cv_abi_default" >&5
+echo "$as_me: WARNING: overriding ABI version to $cf_cv_abi_default" >&2;}
;;
esac
fi
@@ -15404,77 +16261,98 @@ fi
else
cf_cv_enable_reentrant=0
cf_cv_enable_opaque="NCURSES_OPAQUE"
- NCURSES_SIZE_T=short
+ NCURSES_SIZE_T=$cf_dft_ordinate_type
fi
-echo "$as_me:15410: checking if you want opaque curses-library structures" >&5
-echo $ECHO_N "checking if you want opaque curses-library structures... $ECHO_C" >&6
+echo "$as_me:16267: checking whether curses library structures should be opaque" >&5
+echo $ECHO_N "checking whether curses library structures should be opaque... $ECHO_C" >&6
# Check whether --enable-opaque-curses or --disable-opaque-curses was given.
if test "${enable_opaque_curses+set}" = set; then
enableval="$enable_opaque_curses"
- test "$enableval" != yes && enableval=no
- if test "$enableval" != "no" ; then
- enable_opaque_curses=yes
+ test "$enableval" != no && enableval=yes
+ if test "$enableval" != "yes" ; then
+ enable_opaque_curses=no
else
test "$cf_cv_enable_reentrant" = 1 && enable_opaque_curses=yes
- test "$cf_cv_enable_reentrant" = 1 || enable_opaque_curses=no
+ test "$cf_cv_enable_reentrant" = 1 || enable_opaque_curses=$cf_dft_opaque_curses
fi
else
- enableval=no
+ enableval=yes
test "$cf_cv_enable_reentrant" = 1 && enable_opaque_curses=yes
- test "$cf_cv_enable_reentrant" = 1 || enable_opaque_curses=no
+ test "$cf_cv_enable_reentrant" = 1 || enable_opaque_curses=$cf_dft_opaque_curses
fi;
-echo "$as_me:15432: result: $enable_opaque_curses" >&5
+echo "$as_me:16289: result: $enable_opaque_curses" >&5
echo "${ECHO_T}$enable_opaque_curses" >&6
test "$cf_cv_enable_reentrant" = 1 && \
test "$enable_opaque_curses" = no && \
-{ { echo "$as_me:15437: error: reentrant configuration requires opaque library" >&5
+{ { echo "$as_me:16294: error: reentrant configuration requires opaque library" >&5
echo "$as_me: error: reentrant configuration requires opaque library" >&2;}
{ (exit 1); exit 1; }; }
-echo "$as_me:15441: checking if you want opaque form-library structures" >&5
-echo $ECHO_N "checking if you want opaque form-library structures... $ECHO_C" >&6
+echo "$as_me:16298: checking whether form library structures should be opaque" >&5
+echo $ECHO_N "checking whether form library structures should be opaque... $ECHO_C" >&6
# Check whether --enable-opaque-form or --disable-opaque-form was given.
if test "${enable_opaque_form+set}" = set; then
enableval="$enable_opaque_form"
- enable_opaque_form=yes
+ test "$enableval" != no && enableval=yes
+ if test "$enableval" != "yes" ; then
+ enable_opaque_form=no
+ else
+ enable_opaque_form=$cf_dft_opaque_curses
+ fi
else
- enable_opaque_form=no
+ enableval=yes
+ enable_opaque_form=$cf_dft_opaque_curses
+
fi;
-echo "$as_me:15451: result: $enable_opaque_form" >&5
+echo "$as_me:16315: result: $enable_opaque_form" >&5
echo "${ECHO_T}$enable_opaque_form" >&6
-echo "$as_me:15454: checking if you want opaque menu-library structures" >&5
-echo $ECHO_N "checking if you want opaque menu-library structures... $ECHO_C" >&6
+echo "$as_me:16318: checking whether menu library structures should be opaque" >&5
+echo $ECHO_N "checking whether menu library structures should be opaque... $ECHO_C" >&6
# Check whether --enable-opaque-menu or --disable-opaque-menu was given.
if test "${enable_opaque_menu+set}" = set; then
enableval="$enable_opaque_menu"
- enable_opaque_menu=yes
+ test "$enableval" != no && enableval=yes
+ if test "$enableval" != "yes" ; then
+ enable_opaque_menu=no
+ else
+ enable_opaque_menu=$cf_dft_opaque_curses
+ fi
else
- enable_opaque_menu=no
+ enableval=yes
+ enable_opaque_menu=$cf_dft_opaque_curses
+
fi;
-echo "$as_me:15464: result: $enable_opaque_menu" >&5
+echo "$as_me:16335: result: $enable_opaque_menu" >&5
echo "${ECHO_T}$enable_opaque_menu" >&6
-echo "$as_me:15467: checking if you want opaque panel-library structures" >&5
-echo $ECHO_N "checking if you want opaque panel-library structures... $ECHO_C" >&6
+echo "$as_me:16338: checking whether panel library structures should be opaque" >&5
+echo $ECHO_N "checking whether panel library structures should be opaque... $ECHO_C" >&6
# Check whether --enable-opaque-panel or --disable-opaque-panel was given.
if test "${enable_opaque_panel+set}" = set; then
enableval="$enable_opaque_panel"
- enable_opaque_panel=yes
+ test "$enableval" != no && enableval=yes
+ if test "$enableval" != "yes" ; then
+ enable_opaque_panel=no
+ else
+ enable_opaque_panel=$cf_dft_opaque_curses
+ fi
else
- enable_opaque_panel=no
+ enableval=yes
+ enable_opaque_panel=$cf_dft_opaque_curses
+
fi;
-echo "$as_me:15477: result: $enable_opaque_panel" >&5
+echo "$as_me:16355: result: $enable_opaque_panel" >&5
echo "${ECHO_T}$enable_opaque_panel" >&6
NCURSES_OPAQUE=0; test "$enable_opaque_curses" = yes && NCURSES_OPAQUE=1
@@ -15484,7 +16362,7 @@ NCURSES_OPAQUE_PANEL=0; test "$enable_opaque_panel" = yes && NCURSES_OPAQUE_PAN
### Allow using a different wrap-prefix
if test "$cf_cv_enable_reentrant" != 0 || test "$BROKEN_LINKER" = 1 ; then
- echo "$as_me:15487: checking for prefix used to wrap public variables" >&5
+ echo "$as_me:16365: checking for prefix used to wrap public variables" >&5
echo $ECHO_N "checking for prefix used to wrap public variables... $ECHO_C" >&6
# Check whether --with-wrap-prefix or --without-wrap-prefix was given.
@@ -15494,7 +16372,7 @@ if test "${with_wrap_prefix+set}" = set; then
else
NCURSES_WRAP_PREFIX=_nc_
fi;
- echo "$as_me:15497: result: $NCURSES_WRAP_PREFIX" >&5
+ echo "$as_me:16375: result: $NCURSES_WRAP_PREFIX" >&5
echo "${ECHO_T}$NCURSES_WRAP_PREFIX" >&6
else
NCURSES_WRAP_PREFIX=_nc_
@@ -15507,7 +16385,7 @@ EOF
###############################################################################
# These options are relatively safe to experiment with.
-echo "$as_me:15510: checking if you want all development code" >&5
+echo "$as_me:16388: checking if you want all development code" >&5
echo $ECHO_N "checking if you want all development code... $ECHO_C" >&6
# Check whether --with-develop or --without-develop was given.
@@ -15517,11 +16395,29 @@ if test "${with_develop+set}" = set; then
else
with_develop=no
fi;
-echo "$as_me:15520: result: $with_develop" >&5
+echo "$as_me:16398: result: $with_develop" >&5
echo "${ECHO_T}$with_develop" >&6
+### use option --enable-check-size to detect screensize with CPR
+echo "$as_me:16402: checking if you want to check screensize of serial terminals" >&5
+echo $ECHO_N "checking if you want to check screensize of serial terminals... $ECHO_C" >&6
+
+# Check whether --enable-check-size or --disable-check-size was given.
+if test "${enable_check_size+set}" = set; then
+ enableval="$enable_check_size"
+
+else
+ enable_check_size=$with_develop
+fi;
+echo "$as_me:16412: result: $enable_check_size" >&5
+echo "${ECHO_T}$enable_check_size" >&6
+test "x$enable_check_size" = xyes &&
+cat >>confdefs.h <<\EOF
+#define USE_CHECK_SIZE 1
+EOF
+
### use option --enable-hard-tabs to turn on use of hard-tabs optimize
-echo "$as_me:15524: checking if you want hard-tabs code" >&5
+echo "$as_me:16420: checking if you want hard-tabs code" >&5
echo $ECHO_N "checking if you want hard-tabs code... $ECHO_C" >&6
# Check whether --enable-hard-tabs or --disable-hard-tabs was given.
@@ -15531,7 +16427,7 @@ if test "${enable_hard_tabs+set}" = set; then
else
enable_hard_tabs=$with_develop
fi;
-echo "$as_me:15534: result: $enable_hard_tabs" >&5
+echo "$as_me:16430: result: $enable_hard_tabs" >&5
echo "${ECHO_T}$enable_hard_tabs" >&6
test "x$enable_hard_tabs" = xyes &&
cat >>confdefs.h <<\EOF
@@ -15539,7 +16435,7 @@ cat >>confdefs.h <<\EOF
EOF
### use option --enable-xmc-glitch to turn on use of magic-cookie optimize
-echo "$as_me:15542: checking if you want limited support for xmc" >&5
+echo "$as_me:16438: checking if you want limited support for xmc" >&5
echo $ECHO_N "checking if you want limited support for xmc... $ECHO_C" >&6
# Check whether --enable-xmc-glitch or --disable-xmc-glitch was given.
@@ -15549,7 +16445,7 @@ if test "${enable_xmc_glitch+set}" = set; then
else
enable_xmc_glitch=$with_develop
fi;
-echo "$as_me:15552: result: $enable_xmc_glitch" >&5
+echo "$as_me:16448: result: $enable_xmc_glitch" >&5
echo "${ECHO_T}$enable_xmc_glitch" >&6
test "x$enable_xmc_glitch" = xyes &&
cat >>confdefs.h <<\EOF
@@ -15559,7 +16455,7 @@ EOF
###############################################################################
# These are just experimental, probably should not be in a package:
-echo "$as_me:15562: checking if you do not want to assume colors are white-on-black" >&5
+echo "$as_me:16458: checking if you do not want to assume colors are white-on-black" >&5
echo $ECHO_N "checking if you do not want to assume colors are white-on-black... $ECHO_C" >&6
# Check whether --enable-assumed-color or --disable-assumed-color was given.
@@ -15569,7 +16465,7 @@ if test "${enable_assumed_color+set}" = set; then
else
with_assumed_color=yes
fi;
-echo "$as_me:15572: result: $with_assumed_color" >&5
+echo "$as_me:16468: result: $with_assumed_color" >&5
echo "${ECHO_T}$with_assumed_color" >&6
test "x$with_assumed_color" = xyes &&
cat >>confdefs.h <<\EOF
@@ -15577,7 +16473,7 @@ cat >>confdefs.h <<\EOF
EOF
### use option --enable-hashmap to turn on use of hashmap scrolling logic
-echo "$as_me:15580: checking if you want hashmap scrolling-optimization code" >&5
+echo "$as_me:16476: checking if you want hashmap scrolling-optimization code" >&5
echo $ECHO_N "checking if you want hashmap scrolling-optimization code... $ECHO_C" >&6
# Check whether --enable-hashmap or --disable-hashmap was given.
@@ -15587,7 +16483,7 @@ if test "${enable_hashmap+set}" = set; then
else
with_hashmap=yes
fi;
-echo "$as_me:15590: result: $with_hashmap" >&5
+echo "$as_me:16486: result: $with_hashmap" >&5
echo "${ECHO_T}$with_hashmap" >&6
test "x$with_hashmap" = xyes &&
cat >>confdefs.h <<\EOF
@@ -15595,7 +16491,7 @@ cat >>confdefs.h <<\EOF
EOF
### use option --enable-colorfgbg to turn on use of $COLORFGBG environment
-echo "$as_me:15598: checking if you want colorfgbg code" >&5
+echo "$as_me:16494: checking if you want colorfgbg code" >&5
echo $ECHO_N "checking if you want colorfgbg code... $ECHO_C" >&6
# Check whether --enable-colorfgbg or --disable-colorfgbg was given.
@@ -15605,7 +16501,7 @@ if test "${enable_colorfgbg+set}" = set; then
else
with_colorfgbg=no
fi;
-echo "$as_me:15608: result: $with_colorfgbg" >&5
+echo "$as_me:16504: result: $with_colorfgbg" >&5
echo "${ECHO_T}$with_colorfgbg" >&6
test "x$with_colorfgbg" = xyes &&
cat >>confdefs.h <<\EOF
@@ -15613,7 +16509,7 @@ cat >>confdefs.h <<\EOF
EOF
### use option --enable-fvisibility to turn on use of gcc-specific feature
-echo "$as_me:15616: checking if you want to use gcc -fvisibility option" >&5
+echo "$as_me:16512: checking if you want to use gcc -fvisibility option" >&5
echo $ECHO_N "checking if you want to use gcc -fvisibility option... $ECHO_C" >&6
# Check whether --enable-fvisibility or --disable-fvisibility was given.
@@ -15623,14 +16519,14 @@ if test "${enable_fvisibility+set}" = set; then
else
cf_with_fvisibility=no
fi;
-echo "$as_me:15626: result: $cf_with_fvisibility" >&5
+echo "$as_me:16522: result: $cf_with_fvisibility" >&5
echo "${ECHO_T}$cf_with_fvisibility" >&6
NCURSES_IMPEXP=
NCURSES_CXX_IMPEXP=
if test "x$cf_with_fvisibility" = xyes; then
-echo "$as_me:15633: checking if $CC -fvisibility=hidden option works" >&5
+echo "$as_me:16529: checking if $CC -fvisibility=hidden option works" >&5
echo $ECHO_N "checking if $CC -fvisibility=hidden option works... $ECHO_C" >&6
if test "${cf_cv_fvisibility_hidden+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -15639,7 +16535,7 @@ else
cf_save_cflags="$CFLAGS"
CFLAGS="$CFLAGS -fvisibility=hidden"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 15642 "configure"
+#line 16538 "configure"
#include "confdefs.h"
__attribute__ ((visibility("default"))) int somefunc() {return 42;}
@@ -15655,16 +16551,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:15658: \"$ac_link\"") >&5
+if { (eval echo "$as_me:16554: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:15661: \$? = $ac_status" >&5
+ echo "$as_me:16557: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:15664: \"$ac_try\"") >&5
+ { (eval echo "$as_me:16560: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:15667: \$? = $ac_status" >&5
+ echo "$as_me:16563: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_fvisibility_hidden=yes
else
@@ -15676,7 +16572,7 @@ rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
CFLAGS=$cf_save_cflags
fi
-echo "$as_me:15679: result: $cf_cv_fvisibility_hidden" >&5
+echo "$as_me:16575: result: $cf_cv_fvisibility_hidden" >&5
echo "${ECHO_T}$cf_cv_fvisibility_hidden" >&6
if test "x$cf_cv_fvisibility_hidden" = xyes
@@ -15791,7 +16687,7 @@ ac_link='$CXX -o "conftest$ac_exeext" $CXXFLAGS $CPPFLAGS $LDFLAGS "conftest.$ac
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
ac_main_return="return"
-echo "$as_me:15794: checking if $CXX -fvisibility=hidden option works" >&5
+echo "$as_me:16690: checking if $CXX -fvisibility=hidden option works" >&5
echo $ECHO_N "checking if $CXX -fvisibility=hidden option works... $ECHO_C" >&6
if test "${cf_cv_fvisibility_hidden2+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -15800,7 +16696,7 @@ else
cf_save_cflags="$CXXFLAGS"
CXXFLAGS="$CXXFLAGS -fvisibility=hidden"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 15803 "configure"
+#line 16699 "configure"
#include "confdefs.h"
__attribute__ ((visibility("default"))) int somefunc() {return 42;}
@@ -15816,16 +16712,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:15819: \"$ac_link\"") >&5
+if { (eval echo "$as_me:16715: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:15822: \$? = $ac_status" >&5
+ echo "$as_me:16718: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:15825: \"$ac_try\"") >&5
+ { (eval echo "$as_me:16721: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:15828: \$? = $ac_status" >&5
+ echo "$as_me:16724: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_fvisibility_hidden2=yes
else
@@ -15837,7 +16733,7 @@ rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
CXXFLAGS=$cf_save_cflags
fi
-echo "$as_me:15840: result: $cf_cv_fvisibility_hidden2" >&5
+echo "$as_me:16736: result: $cf_cv_fvisibility_hidden2" >&5
echo "${ECHO_T}$cf_cv_fvisibility_hidden2" >&6
if test "x$cf_cv_fvisibility_hidden2" = xyes
@@ -15960,7 +16856,7 @@ ac_main_return="return"
fi
### use option --enable-interop to turn on use of bindings used for interop
-echo "$as_me:15963: checking if you want interop bindings" >&5
+echo "$as_me:16859: checking if you want interop bindings" >&5
echo $ECHO_N "checking if you want interop bindings... $ECHO_C" >&6
# Check whether --enable-interop or --disable-interop was given.
@@ -15970,13 +16866,13 @@ if test "${enable_interop+set}" = set; then
else
with_exp_interop=$cf_dft_interop
fi;
-echo "$as_me:15973: result: $with_exp_interop" >&5
+echo "$as_me:16869: result: $with_exp_interop" >&5
echo "${ECHO_T}$with_exp_interop" >&6
NCURSES_INTEROP_FUNCS=0
test "x$with_exp_interop" = xyes && NCURSES_INTEROP_FUNCS=1
-echo "$as_me:15979: checking if you want experimental safe-sprintf code" >&5
+echo "$as_me:16875: checking if you want experimental safe-sprintf code" >&5
echo $ECHO_N "checking if you want experimental safe-sprintf code... $ECHO_C" >&6
# Check whether --enable-safe-sprintf or --disable-safe-sprintf was given.
@@ -15986,13 +16882,13 @@ if test "${enable_safe_sprintf+set}" = set; then
else
with_safe_sprintf=no
fi;
-echo "$as_me:15989: result: $with_safe_sprintf" >&5
+echo "$as_me:16885: result: $with_safe_sprintf" >&5
echo "${ECHO_T}$with_safe_sprintf" >&6
### use option --disable-scroll-hints to turn off use of scroll-hints scrolling logic
# when hashmap is used scroll hints are useless
if test "$with_hashmap" = no ; then
-echo "$as_me:15995: checking if you want to experiment without scrolling-hints code" >&5
+echo "$as_me:16891: checking if you want to experiment without scrolling-hints code" >&5
echo $ECHO_N "checking if you want to experiment without scrolling-hints code... $ECHO_C" >&6
# Check whether --enable-scroll-hints or --disable-scroll-hints was given.
@@ -16002,7 +16898,7 @@ if test "${enable_scroll_hints+set}" = set; then
else
with_scroll_hints=yes
fi;
-echo "$as_me:16005: result: $with_scroll_hints" >&5
+echo "$as_me:16901: result: $with_scroll_hints" >&5
echo "${ECHO_T}$with_scroll_hints" >&6
test "x$with_scroll_hints" = xyes &&
cat >>confdefs.h <<\EOF
@@ -16011,7 +16907,7 @@ EOF
fi
-echo "$as_me:16014: checking if you want wgetch-events code" >&5
+echo "$as_me:16910: checking if you want wgetch-events code" >&5
echo $ECHO_N "checking if you want wgetch-events code... $ECHO_C" >&6
# Check whether --enable-wgetch-events or --disable-wgetch-events was given.
@@ -16021,7 +16917,7 @@ if test "${enable_wgetch_events+set}" = set; then
else
with_wgetch_events=no
fi;
-echo "$as_me:16024: result: $with_wgetch_events" >&5
+echo "$as_me:16920: result: $with_wgetch_events" >&5
echo "${ECHO_T}$with_wgetch_events" >&6
if test "x$with_wgetch_events" = xyes ; then
@@ -16036,7 +16932,7 @@ fi
case "$cf_cv_system_name" in
(*mingw32*|*mingw64*|*-msvc*)
- echo "$as_me:16039: checking if you want experimental-Windows driver" >&5
+ echo "$as_me:16935: checking if you want experimental-Windows driver" >&5
echo $ECHO_N "checking if you want experimental-Windows driver... $ECHO_C" >&6
# Check whether --enable-exp-win32 or --disable-exp-win32 was given.
@@ -16046,7 +16942,7 @@ if test "${enable_exp_win32+set}" = set; then
else
with_exp_win32=no
fi;
- echo "$as_me:16049: result: $with_exp_win32" >&5
+ echo "$as_me:16945: result: $with_exp_win32" >&5
echo "${ECHO_T}$with_exp_win32" >&6
if test "x$with_exp_win32" = xyes
then
@@ -16072,7 +16968,7 @@ esac
### use option --disable-echo to suppress full display compiling commands
-echo "$as_me:16075: checking if you want to see long compiling messages" >&5
+echo "$as_me:16971: checking if you want to see long compiling messages" >&5
echo $ECHO_N "checking if you want to see long compiling messages... $ECHO_C" >&6
# Check whether --enable-echo or --disable-echo was given.
@@ -16106,7 +17002,7 @@ else
ECHO_CC=''
fi;
-echo "$as_me:16109: result: $enableval" >&5
+echo "$as_me:17005: result: $enableval" >&5
echo "${ECHO_T}$enableval" >&6
if test "x$enable_echo" = xyes; then
@@ -16119,7 +17015,7 @@ fi
# --disable-stripping is used for debugging
-echo "$as_me:16122: checking if you want to install stripped executables" >&5
+echo "$as_me:17018: checking if you want to install stripped executables" >&5
echo $ECHO_N "checking if you want to install stripped executables... $ECHO_C" >&6
# Check whether --enable-stripping or --disable-stripping was given.
@@ -16136,7 +17032,7 @@ else
enable_stripping=yes
fi;
-echo "$as_me:16139: result: $enable_stripping" >&5
+echo "$as_me:17035: result: $enable_stripping" >&5
echo "${ECHO_T}$enable_stripping" >&6
if test "$enable_stripping" = yes
@@ -16147,7 +17043,7 @@ else
fi
: "${INSTALL:=install}"
-echo "$as_me:16150: checking if install accepts -p option" >&5
+echo "$as_me:17046: checking if install accepts -p option" >&5
echo $ECHO_N "checking if install accepts -p option... $ECHO_C" >&6
if test "${cf_cv_install_p+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -16178,10 +17074,10 @@ else
rm -rf ./conftest*
fi
-echo "$as_me:16181: result: $cf_cv_install_p" >&5
+echo "$as_me:17077: result: $cf_cv_install_p" >&5
echo "${ECHO_T}$cf_cv_install_p" >&6
-echo "$as_me:16184: checking if install needs to be told about ownership" >&5
+echo "$as_me:17080: checking if install needs to be told about ownership" >&5
echo $ECHO_N "checking if install needs to be told about ownership... $ECHO_C" >&6
case `$ac_config_guess` in
(*minix)
@@ -16192,7 +17088,7 @@ case `$ac_config_guess` in
;;
esac
-echo "$as_me:16195: result: $with_install_o" >&5
+echo "$as_me:17091: result: $with_install_o" >&5
echo "${ECHO_T}$with_install_o" >&6
if test "x$with_install_o" = xyes
then
@@ -16201,6 +17097,72 @@ else
INSTALL_OPT_O=
fi
+if test -n "$INSTALL_OPT_S"
+then
+ echo "$as_me:17102: checking if you want to specify strip-program" >&5
+echo $ECHO_N "checking if you want to specify strip-program... $ECHO_C" >&6
+
+# Check whether --with-strip-program or --without-strip-program was given.
+if test "${with_strip_program+set}" = set; then
+ withval="$with_strip_program"
+ with_strip_program=$withval
+else
+ with_strip_program=no
+fi;
+ echo "$as_me:17112: result: $with_strip_program" >&5
+echo "${ECHO_T}$with_strip_program" >&6
+ if test "$with_strip_program" != no
+ then
+ echo "$as_me:17116: checking if strip-program is supported with this installer" >&5
+echo $ECHO_N "checking if strip-program is supported with this installer... $ECHO_C" >&6
+ cf_install_program=`echo "$INSTALL" | sed -e 's%[ ]*[ ]-.%%'`
+ check_install_strip=no
+ if test -f "$cf_install_program"
+ then
+ check_install_version=`"$cf_install_program" --version 2>/dev/null | head -n 1 | grep coreutils`
+ if test -n "$check_install_version"
+ then
+ check_install_strip="option"
+ else
+ for check_strip_variable in STRIPBIN STRIP
+ do
+ if strings "$cf_install_program" | grep "^$check_strip_variable$" >/dev/null
+ then
+ check_install_strip="environ"
+ break
+ fi
+ done
+ fi
+ fi
+ echo "$as_me:17137: result: $check_install_strip" >&5
+echo "${ECHO_T}$check_install_strip" >&6
+ case "$check_install_strip" in
+ (no)
+ { echo "$as_me:17141: WARNING: $cf_install_program does not support strip program option" >&5
+echo "$as_me: WARNING: $cf_install_program does not support strip program option" >&2;}
+ with_strip_program=no
+ ;;
+ (environ)
+ cat >install.tmp <<-CF_EOF
+ #! $SHELL
+ STRIPBIN="$with_strip_program" \\
+ STRIP="$with_strip_program" \\
+ $INSTALL "$@"
+ CF_EOF
+ INSTALL="`pwd`/install.tmp"
+ chmod +x "$INSTALL"
+ test -n "$verbose" && echo " created $INSTALL" 1>&6
+
+echo "${as_me:-configure}:17156: testing created $INSTALL ..." 1>&5
+
+ ;;
+ (option)
+ INSTALL_OPT_S="$INSTALL_OPT_S --strip-program=\"$with_strip_program\""
+ ;;
+ esac
+ fi
+fi
+
# If we're avoiding relinking of shared libraries during install, that is to
# avoid modifying the build-tree. For the same reason, avoid doing ranlib if
# the install program has "-p" (for preserving timestamps).
@@ -16217,6 +17179,90 @@ fi
### use option --enable-warnings to turn on all gcc warnings
+echo "$as_me:17182: checking if you want to use C11 _Noreturn feature" >&5
+echo $ECHO_N "checking if you want to use C11 _Noreturn feature... $ECHO_C" >&6
+
+# Check whether --enable-stdnoreturn or --disable-stdnoreturn was given.
+if test "${enable_stdnoreturn+set}" = set; then
+ enableval="$enable_stdnoreturn"
+ test "$enableval" != yes && enableval=no
+ if test "$enableval" != "no" ; then
+ enable_stdnoreturn=yes
+ else
+ enable_stdnoreturn=no
+ fi
+else
+ enableval=no
+ enable_stdnoreturn=no
+
+fi;
+echo "$as_me:17199: result: $enable_stdnoreturn" >&5
+echo "${ECHO_T}$enable_stdnoreturn" >&6
+
+if test $enable_stdnoreturn = yes; then
+echo "$as_me:17203: checking for C11 _Noreturn feature" >&5
+echo $ECHO_N "checking for C11 _Noreturn feature... $ECHO_C" >&6
+if test "${cf_cv_c11_noreturn+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >"conftest.$ac_ext" <<_ACEOF
+#line 17209 "configure"
+#include "confdefs.h"
+
+$ac_includes_default
+#include <stdnoreturn.h>
+static _Noreturn void giveup(void) { exit(0); }
+
+int
+main (void)
+{
+if (feof(stdin)) giveup()
+ ;
+ return 0;
+}
+_ACEOF
+rm -f "conftest.$ac_objext"
+if { (eval echo "$as_me:17225: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:17228: \$? = $ac_status" >&5
+ (exit "$ac_status"); } &&
+ { ac_try='test -s "conftest.$ac_objext"'
+ { (eval echo "$as_me:17231: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:17234: \$? = $ac_status" >&5
+ (exit "$ac_status"); }; }; then
+ cf_cv_c11_noreturn=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat "conftest.$ac_ext" >&5
+cf_cv_c11_noreturn=no
+fi
+rm -f "conftest.$ac_objext" "conftest.$ac_ext"
+
+fi
+echo "$as_me:17245: result: $cf_cv_c11_noreturn" >&5
+echo "${ECHO_T}$cf_cv_c11_noreturn" >&6
+else
+ cf_cv_c11_noreturn=no,
+fi
+
+if test "$cf_cv_c11_noreturn" = yes; then
+
+cat >>confdefs.h <<\EOF
+#define HAVE_STDNORETURN_H 1
+EOF
+
+cat >>confdefs.h <<EOF
+#define STDC_NORETURN _Noreturn
+EOF
+
+ HAVE_STDNORETURN_H=1
+else
+ HAVE_STDNORETURN_H=0
+fi
+
if test "$GCC" = yes || test "$GXX" = yes
then
@@ -16224,14 +17270,16 @@ if test "$GCC" = yes || test "$GXX" = yes
then
case $CFLAGS in
(*-Werror=*)
- test -n "$verbose" && echo " repairing CFLAGS: $CFLAGS" 1>&6
-
-echo "${as_me:-configure}:16229: testing repairing CFLAGS: $CFLAGS ..." 1>&5
-
cf_temp_flags=
for cf_temp_scan in $CFLAGS
do
case "x$cf_temp_scan" in
+ (x-Werror=format*)
+
+ test -n "$cf_temp_flags" && cf_temp_flags="$cf_temp_flags "
+ cf_temp_flags="${cf_temp_flags}$cf_temp_scan"
+
+ ;;
(x-Werror=*)
test -n "$EXTRA_CFLAGS" && EXTRA_CFLAGS="$EXTRA_CFLAGS "
@@ -16246,15 +17294,22 @@ echo "${as_me:-configure}:16229: testing repairing CFLAGS: $CFLAGS ..." 1>&5
;;
esac
done
- CFLAGS="$cf_temp_flags"
- test -n "$verbose" && echo " ... fixed $CFLAGS" 1>&6
+ if test "x$CFLAGS" != "x$cf_temp_flags"
+ then
+ test -n "$verbose" && echo " repairing CFLAGS: $CFLAGS" 1>&6
-echo "${as_me:-configure}:16252: testing ... fixed $CFLAGS ..." 1>&5
+echo "${as_me:-configure}:17301: testing repairing CFLAGS: $CFLAGS ..." 1>&5
- test -n "$verbose" && echo " ... extra $EXTRA_CFLAGS" 1>&6
+ CFLAGS="$cf_temp_flags"
+ test -n "$verbose" && echo " ... fixed $CFLAGS" 1>&6
-echo "${as_me:-configure}:16256: testing ... extra $EXTRA_CFLAGS ..." 1>&5
+echo "${as_me:-configure}:17306: testing ... fixed $CFLAGS ..." 1>&5
+ test -n "$verbose" && echo " ... extra $EXTRA_CFLAGS" 1>&6
+
+echo "${as_me:-configure}:17310: testing ... extra $EXTRA_CFLAGS ..." 1>&5
+
+ fi
;;
esac
fi
@@ -16263,14 +17318,16 @@ if test "$GCC" = yes || test "$GXX" = yes
then
case $CPPFLAGS in
(*-Werror=*)
- test -n "$verbose" && echo " repairing CPPFLAGS: $CPPFLAGS" 1>&6
-
-echo "${as_me:-configure}:16268: testing repairing CPPFLAGS: $CPPFLAGS ..." 1>&5
-
cf_temp_flags=
for cf_temp_scan in $CPPFLAGS
do
case "x$cf_temp_scan" in
+ (x-Werror=format*)
+
+ test -n "$cf_temp_flags" && cf_temp_flags="$cf_temp_flags "
+ cf_temp_flags="${cf_temp_flags}$cf_temp_scan"
+
+ ;;
(x-Werror=*)
test -n "$EXTRA_CFLAGS" && EXTRA_CFLAGS="$EXTRA_CFLAGS "
@@ -16285,15 +17342,22 @@ echo "${as_me:-configure}:16268: testing repairing CPPFLAGS: $CPPFLAGS ..." 1>&5
;;
esac
done
- CPPFLAGS="$cf_temp_flags"
- test -n "$verbose" && echo " ... fixed $CPPFLAGS" 1>&6
+ if test "x$CPPFLAGS" != "x$cf_temp_flags"
+ then
+ test -n "$verbose" && echo " repairing CPPFLAGS: $CPPFLAGS" 1>&6
+
+echo "${as_me:-configure}:17349: testing repairing CPPFLAGS: $CPPFLAGS ..." 1>&5
-echo "${as_me:-configure}:16291: testing ... fixed $CPPFLAGS ..." 1>&5
+ CPPFLAGS="$cf_temp_flags"
+ test -n "$verbose" && echo " ... fixed $CPPFLAGS" 1>&6
- test -n "$verbose" && echo " ... extra $EXTRA_CFLAGS" 1>&6
+echo "${as_me:-configure}:17354: testing ... fixed $CPPFLAGS ..." 1>&5
-echo "${as_me:-configure}:16295: testing ... extra $EXTRA_CFLAGS ..." 1>&5
+ test -n "$verbose" && echo " ... extra $EXTRA_CFLAGS" 1>&6
+echo "${as_me:-configure}:17358: testing ... extra $EXTRA_CFLAGS ..." 1>&5
+
+ fi
;;
esac
fi
@@ -16302,14 +17366,16 @@ if test "$GCC" = yes || test "$GXX" = yes
then
case $LDFLAGS in
(*-Werror=*)
- test -n "$verbose" && echo " repairing LDFLAGS: $LDFLAGS" 1>&6
-
-echo "${as_me:-configure}:16307: testing repairing LDFLAGS: $LDFLAGS ..." 1>&5
-
cf_temp_flags=
for cf_temp_scan in $LDFLAGS
do
case "x$cf_temp_scan" in
+ (x-Werror=format*)
+
+ test -n "$cf_temp_flags" && cf_temp_flags="$cf_temp_flags "
+ cf_temp_flags="${cf_temp_flags}$cf_temp_scan"
+
+ ;;
(x-Werror=*)
test -n "$EXTRA_CFLAGS" && EXTRA_CFLAGS="$EXTRA_CFLAGS "
@@ -16324,20 +17390,27 @@ echo "${as_me:-configure}:16307: testing repairing LDFLAGS: $LDFLAGS ..." 1>&5
;;
esac
done
- LDFLAGS="$cf_temp_flags"
- test -n "$verbose" && echo " ... fixed $LDFLAGS" 1>&6
+ if test "x$LDFLAGS" != "x$cf_temp_flags"
+ then
+ test -n "$verbose" && echo " repairing LDFLAGS: $LDFLAGS" 1>&6
+
+echo "${as_me:-configure}:17397: testing repairing LDFLAGS: $LDFLAGS ..." 1>&5
+
+ LDFLAGS="$cf_temp_flags"
+ test -n "$verbose" && echo " ... fixed $LDFLAGS" 1>&6
-echo "${as_me:-configure}:16330: testing ... fixed $LDFLAGS ..." 1>&5
+echo "${as_me:-configure}:17402: testing ... fixed $LDFLAGS ..." 1>&5
- test -n "$verbose" && echo " ... extra $EXTRA_CFLAGS" 1>&6
+ test -n "$verbose" && echo " ... extra $EXTRA_CFLAGS" 1>&6
-echo "${as_me:-configure}:16334: testing ... extra $EXTRA_CFLAGS ..." 1>&5
+echo "${as_me:-configure}:17406: testing ... extra $EXTRA_CFLAGS ..." 1>&5
+ fi
;;
esac
fi
-echo "$as_me:16340: checking if you want to turn on gcc warnings" >&5
+echo "$as_me:17413: checking if you want to turn on gcc warnings" >&5
echo $ECHO_N "checking if you want to turn on gcc warnings... $ECHO_C" >&6
# Check whether --enable-warnings or --disable-warnings was given.
@@ -16354,7 +17427,7 @@ else
enable_warnings=no
fi;
-echo "$as_me:16357: result: $enable_warnings" >&5
+echo "$as_me:17430: result: $enable_warnings" >&5
echo "${ECHO_T}$enable_warnings" >&6
if test "$enable_warnings" = "yes"
then
@@ -16378,7 +17451,7 @@ do
done
cat >"conftest.$ac_ext" <<_ACEOF
-#line 16381 "configure"
+#line 17454 "configure"
#include "confdefs.h"
#include <stdlib.h>
@@ -16387,34 +17460,35 @@ cat >"conftest.$ac_ext" <<_ACEOF
int
main (void)
{
-String foo = malloc(1); (void)foo
+String foo = malloc(1); free((void*)foo)
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:16396: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:17469: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:16399: \$? = $ac_status" >&5
+ echo "$as_me:17472: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:16402: \"$ac_try\"") >&5
+ { (eval echo "$as_me:17475: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:16405: \$? = $ac_status" >&5
+ echo "$as_me:17478: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
-echo "$as_me:16408: checking for X11/Xt const-feature" >&5
+echo "$as_me:17481: checking for X11/Xt const-feature" >&5
echo $ECHO_N "checking for X11/Xt const-feature... $ECHO_C" >&6
if test "${cf_cv_const_x_string+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 16415 "configure"
+#line 17488 "configure"
#include "confdefs.h"
+#undef _CONST_X_STRING
#define _CONST_X_STRING /* X11R7.8 (perhaps) */
#undef XTSTRINGDEFINES /* X11R5 and later */
#include <stdlib.h>
@@ -16429,16 +17503,16 @@ String foo = malloc(1); *foo = 0
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:16432: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:17506: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:16435: \$? = $ac_status" >&5
+ echo "$as_me:17509: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:16438: \"$ac_try\"") >&5
+ { (eval echo "$as_me:17512: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:16441: \$? = $ac_status" >&5
+ echo "$as_me:17515: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_const_x_string=no
@@ -16453,7 +17527,7 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:16456: result: $cf_cv_const_x_string" >&5
+echo "$as_me:17530: result: $cf_cv_const_x_string" >&5
echo "${ECHO_T}$cf_cv_const_x_string" >&6
LIBS="$cf_save_LIBS_CF_CONST_X_STRING"
@@ -16482,7 +17556,7 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
cat > "conftest.$ac_ext" <<EOF
-#line 16485 "${as_me:-configure}"
+#line 17559 "${as_me:-configure}"
int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
EOF
if test "$INTEL_COMPILER" = yes
@@ -16498,7 +17572,7 @@ then
# remark #981: operands are evaluated in unspecified order
# warning #279: controlling expression is constant
- { echo "$as_me:16501: checking for $CC warning options..." >&5
+ { echo "$as_me:17575: checking for $CC warning options..." >&5
echo "$as_me: checking for $CC warning options..." >&6;}
cf_save_CFLAGS="$CFLAGS"
EXTRA_CFLAGS="$EXTRA_CFLAGS -Wall"
@@ -16514,12 +17588,12 @@ echo "$as_me: checking for $CC warning options..." >&6;}
wd981
do
CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
- if { (eval echo "$as_me:16517: \"$ac_compile\"") >&5
+ if { (eval echo "$as_me:17591: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:16520: \$? = $ac_status" >&5
+ echo "$as_me:17594: \$? = $ac_status" >&5
(exit "$ac_status"); }; then
- test -n "$verbose" && echo "$as_me:16522: result: ... -$cf_opt" >&5
+ test -n "$verbose" && echo "$as_me:17596: result: ... -$cf_opt" >&5
echo "${ECHO_T}... -$cf_opt" >&6
EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
fi
@@ -16527,7 +17601,7 @@ echo "${ECHO_T}... -$cf_opt" >&6
CFLAGS="$cf_save_CFLAGS"
elif test "$GCC" = yes && test "$GCC_VERSION" != "unknown"
then
- { echo "$as_me:16530: checking for $CC warning options..." >&5
+ { echo "$as_me:17604: checking for $CC warning options..." >&5
echo "$as_me: checking for $CC warning options..." >&6;}
cf_save_CFLAGS="$CFLAGS"
cf_warn_CONST=""
@@ -16550,12 +17624,12 @@ echo "$as_me: checking for $CC warning options..." >&6;}
Wundef Wno-inline $cf_gcc_warnings $cf_warn_CONST Wno-unknown-pragmas Wswitch-enum
do
CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
- if { (eval echo "$as_me:16553: \"$ac_compile\"") >&5
+ if { (eval echo "$as_me:17627: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:16556: \$? = $ac_status" >&5
+ echo "$as_me:17630: \$? = $ac_status" >&5
(exit "$ac_status"); }; then
- test -n "$verbose" && echo "$as_me:16558: result: ... -$cf_opt" >&5
+ test -n "$verbose" && echo "$as_me:17632: result: ... -$cf_opt" >&5
echo "${ECHO_T}... -$cf_opt" >&6
case "$cf_opt" in
(Winline)
@@ -16563,7 +17637,7 @@ echo "${ECHO_T}... -$cf_opt" >&6
([34].*)
test -n "$verbose" && echo " feature is broken in gcc $GCC_VERSION" 1>&6
-echo "${as_me:-configure}:16566: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
+echo "${as_me:-configure}:17640: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
continue;;
esac
@@ -16573,7 +17647,7 @@ echo "${as_me:-configure}:16566: testing feature is broken in gcc $GCC_VERSION .
([12].*)
test -n "$verbose" && echo " feature is broken in gcc $GCC_VERSION" 1>&6
-echo "${as_me:-configure}:16576: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
+echo "${as_me:-configure}:17650: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
continue;;
esac
@@ -16606,10 +17680,11 @@ cat > conftest.i <<EOF
EOF
if test "$GCC" = yes
then
- { echo "$as_me:16609: checking for $CC __attribute__ directives..." >&5
+ { echo "$as_me:17683: checking for $CC __attribute__ directives..." >&5
echo "$as_me: checking for $CC __attribute__ directives..." >&6;}
cat > "conftest.$ac_ext" <<EOF
-#line 16612 "${as_me:-configure}"
+#line 17686 "${as_me:-configure}"
+#include <stdio.h>
#include "confdefs.h"
#include "conftest.h"
#include "conftest.i"
@@ -16624,8 +17699,8 @@ cat > "conftest.$ac_ext" <<EOF
#define GCC_SCANFLIKE(fmt,var) /*nothing*/
#endif
extern void wow(char *,...) GCC_SCANFLIKE(1,2);
-extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
-extern void foo(void) GCC_NORETURN;
+extern GCC_NORETURN void oops(char *,...) GCC_PRINTFLIKE(1,2);
+extern GCC_NORETURN void foo(void);
int main(int argc GCC_UNUSED, char *argv[] GCC_UNUSED) { (void)argc; (void)argv; return 0; }
EOF
cf_printf_attribute=no
@@ -16658,12 +17733,12 @@ EOF
;;
esac
- if { (eval echo "$as_me:16661: \"$ac_compile\"") >&5
+ if { (eval echo "$as_me:17736: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:16664: \$? = $ac_status" >&5
+ echo "$as_me:17739: \$? = $ac_status" >&5
(exit "$ac_status"); }; then
- test -n "$verbose" && echo "$as_me:16666: result: ... $cf_attribute" >&5
+ test -n "$verbose" && echo "$as_me:17741: result: ... $cf_attribute" >&5
echo "${ECHO_T}... $cf_attribute" >&6
cat conftest.h >>confdefs.h
case "$cf_attribute" in
@@ -16726,7 +17801,7 @@ fi
if test "x$enable_warnings" = "xyes"; then
- ADAFLAGS="$ADAFLAGS -gnatg"
+ ADAFLAGS="$ADAFLAGS -gnatwa -gnatyg"
if test "x$cf_with_cxx" = xyes ; then
@@ -16735,12 +17810,12 @@ INTEL_CPLUSPLUS=no
if test "$GCC" = yes ; then
case "$host_os" in
(linux*|gnu*)
- echo "$as_me:16738: checking if this is really Intel C++ compiler" >&5
+ echo "$as_me:17813: checking if this is really Intel C++ compiler" >&5
echo $ECHO_N "checking if this is really Intel C++ compiler... $ECHO_C" >&6
cf_save_CFLAGS="$CXXFLAGS"
CXXFLAGS="$CXXFLAGS -no-gcc"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 16743 "configure"
+#line 17818 "configure"
#include "confdefs.h"
int
@@ -16749,7 +17824,7 @@ main (void)
#ifdef __INTEL_COMPILER
#else
-make an error
+#error __INTEL_COMPILER is not defined
#endif
;
@@ -16757,16 +17832,16 @@ make an error
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:16760: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:17835: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:16763: \$? = $ac_status" >&5
+ echo "$as_me:17838: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:16766: \"$ac_try\"") >&5
+ { (eval echo "$as_me:17841: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:16769: \$? = $ac_status" >&5
+ echo "$as_me:17844: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
INTEL_CPLUSPLUS=yes
cf_save_CFLAGS="$cf_save_CFLAGS -we147"
@@ -16777,7 +17852,7 @@ cat "conftest.$ac_ext" >&5
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
CXXFLAGS="$cf_save_CFLAGS"
- echo "$as_me:16780: result: $INTEL_CPLUSPLUS" >&5
+ echo "$as_me:17855: result: $INTEL_CPLUSPLUS" >&5
echo "${ECHO_T}$INTEL_CPLUSPLUS" >&6
;;
esac
@@ -16786,11 +17861,11 @@ fi
CLANG_CPLUSPLUS=no
if test "$GCC" = yes ; then
- echo "$as_me:16789: checking if this is really Clang C++ compiler" >&5
+ echo "$as_me:17864: checking if this is really Clang C++ compiler" >&5
echo $ECHO_N "checking if this is really Clang C++ compiler... $ECHO_C" >&6
cf_save_CFLAGS="$CXXFLAGS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 16793 "configure"
+#line 17868 "configure"
#include "confdefs.h"
int
@@ -16799,7 +17874,7 @@ main (void)
#ifdef __clang__
#else
-make an error
+#error __clang__ is not defined
#endif
;
@@ -16807,16 +17882,16 @@ make an error
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:16810: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:17885: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:16813: \$? = $ac_status" >&5
+ echo "$as_me:17888: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:16816: \"$ac_try\"") >&5
+ { (eval echo "$as_me:17891: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:16819: \$? = $ac_status" >&5
+ echo "$as_me:17894: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
CLANG_CPLUSPLUS=yes
@@ -16826,7 +17901,7 @@ cat "conftest.$ac_ext" >&5
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
CXXFLAGS="$cf_save_CFLAGS"
- echo "$as_me:16829: result: $CLANG_CPLUSPLUS" >&5
+ echo "$as_me:17904: result: $CLANG_CPLUSPLUS" >&5
echo "${ECHO_T}$CLANG_CPLUSPLUS" >&6
fi
@@ -16835,30 +17910,30 @@ CLANG_VERSION=none
if test "x$CLANG_CPLUSPLUS" = "xyes" ; then
case "$CC" in
(c[1-9][0-9]|*/c[1-9][0-9])
- { echo "$as_me:16838: WARNING: replacing broken compiler alias $CC" >&5
+ { echo "$as_me:17913: WARNING: replacing broken compiler alias $CC" >&5
echo "$as_me: WARNING: replacing broken compiler alias $CC" >&2;}
CFLAGS="$CFLAGS -std=`echo "$CC" | sed -e 's%.*/%%'`"
CC=clang
;;
esac
- echo "$as_me:16845: checking version of $CC" >&5
+ echo "$as_me:17920: checking version of $CC" >&5
echo $ECHO_N "checking version of $CC... $ECHO_C" >&6
CLANG_VERSION="`$CC --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(CLANG[^)]*) //' -e 's/^.*(Debian[^)]*) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
test -z "$CLANG_VERSION" && CLANG_VERSION=unknown
- echo "$as_me:16849: result: $CLANG_VERSION" >&5
+ echo "$as_me:17924: result: $CLANG_VERSION" >&5
echo "${ECHO_T}$CLANG_VERSION" >&6
for cf_clang_opt in \
-Qunused-arguments \
-Wno-error=implicit-function-declaration
do
- echo "$as_me:16856: checking if option $cf_clang_opt works" >&5
+ echo "$as_me:17931: checking if option $cf_clang_opt works" >&5
echo $ECHO_N "checking if option $cf_clang_opt works... $ECHO_C" >&6
cf_save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $cf_clang_opt"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 16861 "configure"
+#line 17936 "configure"
#include "confdefs.h"
#include <stdio.h>
@@ -16872,16 +17947,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:16875: \"$ac_link\"") >&5
+if { (eval echo "$as_me:17950: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:16878: \$? = $ac_status" >&5
+ echo "$as_me:17953: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:16881: \"$ac_try\"") >&5
+ { (eval echo "$as_me:17956: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:16884: \$? = $ac_status" >&5
+ echo "$as_me:17959: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_clang_optok=yes
@@ -16892,13 +17967,13 @@ cat "conftest.$ac_ext" >&5
cf_clang_optok=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
- echo "$as_me:16895: result: $cf_clang_optok" >&5
+ echo "$as_me:17970: result: $cf_clang_optok" >&5
echo "${ECHO_T}$cf_clang_optok" >&6
CFLAGS="$cf_save_CFLAGS"
if test "$cf_clang_optok" = yes; then
test -n "$verbose" && echo " adding option $cf_clang_opt" 1>&6
-echo "${as_me:-configure}:16901: testing adding option $cf_clang_opt ..." 1>&5
+echo "${as_me:-configure}:17976: testing adding option $cf_clang_opt ..." 1>&5
test -n "$CFLAGS" && CFLAGS="$CFLAGS "
CFLAGS="${CFLAGS}$cf_clang_opt"
@@ -16915,7 +17990,7 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
ac_main_return="return"
cat > conftest.$ac_ext <<EOF
-#line 16918 "configure"
+#line 17993 "configure"
int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
EOF
@@ -16933,7 +18008,7 @@ then
# remark #981: operands are evaluated in unspecified order
# warning #269: invalid format string conversion
- { echo "$as_me:16936: checking for $CC warning options..." >&5
+ { echo "$as_me:18011: checking for $CC warning options..." >&5
echo "$as_me: checking for $CC warning options..." >&6;}
cf_save_CXXFLAGS="$CXXFLAGS"
EXTRA_CXXFLAGS="-Wall"
@@ -16950,12 +18025,12 @@ echo "$as_me: checking for $CC warning options..." >&6;}
wd981
do
CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -$cf_opt"
- if { (eval echo "$as_me:16953: \"$ac_compile\"") >&5
+ if { (eval echo "$as_me:18028: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:16956: \$? = $ac_status" >&5
+ echo "$as_me:18031: \$? = $ac_status" >&5
(exit "$ac_status"); }; then
- test -n "$verbose" && echo "$as_me:16958: result: ... -$cf_opt" >&5
+ test -n "$verbose" && echo "$as_me:18033: result: ... -$cf_opt" >&5
echo "${ECHO_T}... -$cf_opt" >&6
EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
fi
@@ -16964,7 +18039,7 @@ echo "${ECHO_T}... -$cf_opt" >&6
elif test "$GXX" = yes
then
- { echo "$as_me:16967: checking for $CXX warning options..." >&5
+ { echo "$as_me:18042: checking for $CXX warning options..." >&5
echo "$as_me: checking for $CXX warning options..." >&6;}
cf_save_CXXFLAGS="$CXXFLAGS"
EXTRA_CXXFLAGS="-W -Wall"
@@ -16994,16 +18069,16 @@ echo "$as_me: checking for $CXX warning options..." >&6;}
Wundef $cf_gxx_extra_warnings Wno-unused
do
CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -Werror -$cf_opt"
- if { (eval echo "$as_me:16997: \"$ac_compile\"") >&5
+ if { (eval echo "$as_me:18072: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:17000: \$? = $ac_status" >&5
+ echo "$as_me:18075: \$? = $ac_status" >&5
(exit "$ac_status"); }; then
- test -n "$verbose" && echo "$as_me:17002: result: ... -$cf_opt" >&5
+ test -n "$verbose" && echo "$as_me:18077: result: ... -$cf_opt" >&5
echo "${ECHO_T}... -$cf_opt" >&6
EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
else
- test -n "$verbose" && echo "$as_me:17006: result: ... no -$cf_opt" >&5
+ test -n "$verbose" && echo "$as_me:18081: result: ... no -$cf_opt" >&5
echo "${ECHO_T}... no -$cf_opt" >&6
fi
done
@@ -17021,7 +18096,7 @@ ac_main_return="return"
fi
fi
-echo "$as_me:17024: checking if you want to work around bogus compiler/loader warnings" >&5
+echo "$as_me:18099: checking if you want to work around bogus compiler/loader warnings" >&5
echo $ECHO_N "checking if you want to work around bogus compiler/loader warnings... $ECHO_C" >&6
# Check whether --enable-string-hacks or --disable-string-hacks was given.
@@ -17031,7 +18106,7 @@ if test "${enable_string_hacks+set}" = set; then
else
enable_string_hacks=no
fi;
-echo "$as_me:17034: result: $enable_string_hacks" >&5
+echo "$as_me:18109: result: $enable_string_hacks" >&5
echo "${ECHO_T}$enable_string_hacks" >&6
if test "x$enable_string_hacks" = "xyes"; then
@@ -17040,15 +18115,15 @@ cat >>confdefs.h <<\EOF
#define USE_STRING_HACKS 1
EOF
- { echo "$as_me:17043: WARNING: enabling string-hacks to work around bogus compiler/loader warnings" >&5
+ { echo "$as_me:18118: WARNING: enabling string-hacks to work around bogus compiler/loader warnings" >&5
echo "$as_me: WARNING: enabling string-hacks to work around bogus compiler/loader warnings" >&2;}
- echo "$as_me:17045: checking for strlcat" >&5
+ echo "$as_me:18120: checking for strlcat" >&5
echo $ECHO_N "checking for strlcat... $ECHO_C" >&6
if test "${ac_cv_func_strlcat+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 17051 "configure"
+#line 18126 "configure"
#include "confdefs.h"
#define strlcat autoconf_temporary
#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */
@@ -17079,16 +18154,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:17082: \"$ac_link\"") >&5
+if { (eval echo "$as_me:18157: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:17085: \$? = $ac_status" >&5
+ echo "$as_me:18160: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:17088: \"$ac_try\"") >&5
+ { (eval echo "$as_me:18163: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:17091: \$? = $ac_status" >&5
+ echo "$as_me:18166: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_func_strlcat=yes
else
@@ -17098,7 +18173,7 @@ ac_cv_func_strlcat=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:17101: result: $ac_cv_func_strlcat" >&5
+echo "$as_me:18176: result: $ac_cv_func_strlcat" >&5
echo "${ECHO_T}$ac_cv_func_strlcat" >&6
if test "$ac_cv_func_strlcat" = yes; then
@@ -17108,7 +18183,7 @@ EOF
else
- echo "$as_me:17111: checking for strlcat in -lbsd" >&5
+ echo "$as_me:18186: checking for strlcat in -lbsd" >&5
echo $ECHO_N "checking for strlcat in -lbsd... $ECHO_C" >&6
if test "${ac_cv_lib_bsd_strlcat+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -17116,7 +18191,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lbsd $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 17119 "configure"
+#line 18194 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -17125,7 +18200,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char strlcat ();
+char strlcat (void);
int
main (void)
{
@@ -17135,16 +18210,16 @@ strlcat ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:17138: \"$ac_link\"") >&5
+if { (eval echo "$as_me:18213: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:17141: \$? = $ac_status" >&5
+ echo "$as_me:18216: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:17144: \"$ac_try\"") >&5
+ { (eval echo "$as_me:18219: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:17147: \$? = $ac_status" >&5
+ echo "$as_me:18222: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_bsd_strlcat=yes
else
@@ -17155,7 +18230,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:17158: result: $ac_cv_lib_bsd_strlcat" >&5
+echo "$as_me:18233: result: $ac_cv_lib_bsd_strlcat" >&5
echo "${ECHO_T}$ac_cv_lib_bsd_strlcat" >&6
if test "$ac_cv_lib_bsd_strlcat" = yes; then
@@ -17178,23 +18253,23 @@ LIBS="$cf_add_libs"
for ac_header in bsd/string.h
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:17181: checking for $ac_header" >&5
+echo "$as_me:18256: checking for $ac_header" >&5
echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 17187 "configure"
+#line 18262 "configure"
#include "confdefs.h"
#include <$ac_header>
_ACEOF
-if { (eval echo "$as_me:17191: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:18266: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:17197: \$? = $ac_status" >&5
+ echo "$as_me:18272: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -17213,7 +18288,7 @@ else
fi
rm -f conftest.err "conftest.$ac_ext"
fi
-echo "$as_me:17216: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
+echo "$as_me:18291: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
echo "${ECHO_T}`eval echo '${'"$as_ac_Header"'}'`" >&6
if test "`eval echo '${'"$as_ac_Header"'}'`" = yes; then
cat >>confdefs.h <<EOF
@@ -17234,13 +18309,13 @@ fi
for ac_func in strlcpy snprintf
do
as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:17237: checking for $ac_func" >&5
+echo "$as_me:18312: checking for $ac_func" >&5
echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
if eval "test \"\${$as_ac_var+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 17243 "configure"
+#line 18318 "configure"
#include "confdefs.h"
#define $ac_func autoconf_temporary
#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */
@@ -17271,16 +18346,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:17274: \"$ac_link\"") >&5
+if { (eval echo "$as_me:18349: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:17277: \$? = $ac_status" >&5
+ echo "$as_me:18352: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:17280: \"$ac_try\"") >&5
+ { (eval echo "$as_me:18355: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:17283: \$? = $ac_status" >&5
+ echo "$as_me:18358: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
eval "$as_ac_var=yes"
else
@@ -17290,7 +18365,7 @@ eval "$as_ac_var=no"
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:17293: result: `eval echo '${'"$as_ac_var"'}'`" >&5
+echo "$as_me:18368: result: `eval echo '${'"$as_ac_var"'}'`" >&5
echo "${ECHO_T}`eval echo '${'"$as_ac_var"'}'`" >&6
if test "`eval echo '${'"$as_ac_var"'}'`" = yes; then
cat >>confdefs.h <<EOF
@@ -17303,7 +18378,7 @@ done
fi
### use option --enable-assertions to turn on generation of assertion code
-echo "$as_me:17306: checking if you want to enable runtime assertions" >&5
+echo "$as_me:18381: checking if you want to enable runtime assertions" >&5
echo $ECHO_N "checking if you want to enable runtime assertions... $ECHO_C" >&6
# Check whether --enable-assertions or --disable-assertions was given.
@@ -17313,7 +18388,7 @@ if test "${enable_assertions+set}" = set; then
else
with_assertions=no
fi;
-echo "$as_me:17316: result: $with_assertions" >&5
+echo "$as_me:18391: result: $with_assertions" >&5
echo "${ECHO_T}$with_assertions" >&6
if test -n "$GCC"
then
@@ -17329,24 +18404,29 @@ fi
### use option --disable-leaks to suppress "permanent" leaks, for testing
-echo "$as_me:17332: checking if you want to use dmalloc for testing" >&5
+echo "$as_me:18407: checking if you want to use dmalloc for testing" >&5
echo $ECHO_N "checking if you want to use dmalloc for testing... $ECHO_C" >&6
# Check whether --with-dmalloc or --without-dmalloc was given.
if test "${with_dmalloc+set}" = set; then
withval="$with_dmalloc"
+ case "x$withval" in
+ (x|xno) ;;
+ (*)
+ : "${with_cflags:=-g}"
+ : "${enable_leaks:=no}"
+ with_dmalloc=yes
cat >>confdefs.h <<EOF
#define USE_DMALLOC 1
EOF
- : "${with_cflags:=-g}"
- : "${enable_leaks:=no}"
- with_dmalloc=yes
+ ;;
+ esac
else
with_dmalloc=
fi;
-echo "$as_me:17349: result: ${with_dmalloc:-no}" >&5
+echo "$as_me:18429: result: ${with_dmalloc:-no}" >&5
echo "${ECHO_T}${with_dmalloc:-no}" >&6
case ".$with_cflags" in
@@ -17460,23 +18540,23 @@ fi
esac
if test "$with_dmalloc" = yes ; then
- echo "$as_me:17463: checking for dmalloc.h" >&5
+ echo "$as_me:18543: checking for dmalloc.h" >&5
echo $ECHO_N "checking for dmalloc.h... $ECHO_C" >&6
if test "${ac_cv_header_dmalloc_h+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 17469 "configure"
+#line 18549 "configure"
#include "confdefs.h"
#include <dmalloc.h>
_ACEOF
-if { (eval echo "$as_me:17473: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:18553: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:17479: \$? = $ac_status" >&5
+ echo "$as_me:18559: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -17495,11 +18575,11 @@ else
fi
rm -f conftest.err "conftest.$ac_ext"
fi
-echo "$as_me:17498: result: $ac_cv_header_dmalloc_h" >&5
+echo "$as_me:18578: result: $ac_cv_header_dmalloc_h" >&5
echo "${ECHO_T}$ac_cv_header_dmalloc_h" >&6
if test "$ac_cv_header_dmalloc_h" = yes; then
-echo "$as_me:17502: checking for dmalloc_debug in -ldmalloc" >&5
+echo "$as_me:18582: checking for dmalloc_debug in -ldmalloc" >&5
echo $ECHO_N "checking for dmalloc_debug in -ldmalloc... $ECHO_C" >&6
if test "${ac_cv_lib_dmalloc_dmalloc_debug+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -17507,7 +18587,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-ldmalloc $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 17510 "configure"
+#line 18590 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -17516,7 +18596,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char dmalloc_debug ();
+char dmalloc_debug (void);
int
main (void)
{
@@ -17526,16 +18606,16 @@ dmalloc_debug ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:17529: \"$ac_link\"") >&5
+if { (eval echo "$as_me:18609: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:17532: \$? = $ac_status" >&5
+ echo "$as_me:18612: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:17535: \"$ac_try\"") >&5
+ { (eval echo "$as_me:18615: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:17538: \$? = $ac_status" >&5
+ echo "$as_me:18618: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_dmalloc_dmalloc_debug=yes
else
@@ -17546,7 +18626,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:17549: result: $ac_cv_lib_dmalloc_dmalloc_debug" >&5
+echo "$as_me:18629: result: $ac_cv_lib_dmalloc_dmalloc_debug" >&5
echo "${ECHO_T}$ac_cv_lib_dmalloc_dmalloc_debug" >&6
if test "$ac_cv_lib_dmalloc_dmalloc_debug" = yes; then
cat >>confdefs.h <<EOF
@@ -17561,24 +18641,29 @@ fi
fi
-echo "$as_me:17564: checking if you want to use dbmalloc for testing" >&5
+echo "$as_me:18644: checking if you want to use dbmalloc for testing" >&5
echo $ECHO_N "checking if you want to use dbmalloc for testing... $ECHO_C" >&6
# Check whether --with-dbmalloc or --without-dbmalloc was given.
if test "${with_dbmalloc+set}" = set; then
withval="$with_dbmalloc"
+ case "x$withval" in
+ (x|xno) ;;
+ (*)
+ : "${with_cflags:=-g}"
+ : "${enable_leaks:=no}"
+ with_dbmalloc=yes
cat >>confdefs.h <<EOF
#define USE_DBMALLOC 1
EOF
- : "${with_cflags:=-g}"
- : "${enable_leaks:=no}"
- with_dbmalloc=yes
+ ;;
+ esac
else
with_dbmalloc=
fi;
-echo "$as_me:17581: result: ${with_dbmalloc:-no}" >&5
+echo "$as_me:18666: result: ${with_dbmalloc:-no}" >&5
echo "${ECHO_T}${with_dbmalloc:-no}" >&6
case ".$with_cflags" in
@@ -17692,23 +18777,23 @@ fi
esac
if test "$with_dbmalloc" = yes ; then
- echo "$as_me:17695: checking for dbmalloc.h" >&5
+ echo "$as_me:18780: checking for dbmalloc.h" >&5
echo $ECHO_N "checking for dbmalloc.h... $ECHO_C" >&6
if test "${ac_cv_header_dbmalloc_h+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 17701 "configure"
+#line 18786 "configure"
#include "confdefs.h"
#include <dbmalloc.h>
_ACEOF
-if { (eval echo "$as_me:17705: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:18790: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:17711: \$? = $ac_status" >&5
+ echo "$as_me:18796: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -17727,11 +18812,11 @@ else
fi
rm -f conftest.err "conftest.$ac_ext"
fi
-echo "$as_me:17730: result: $ac_cv_header_dbmalloc_h" >&5
+echo "$as_me:18815: result: $ac_cv_header_dbmalloc_h" >&5
echo "${ECHO_T}$ac_cv_header_dbmalloc_h" >&6
if test "$ac_cv_header_dbmalloc_h" = yes; then
-echo "$as_me:17734: checking for debug_malloc in -ldbmalloc" >&5
+echo "$as_me:18819: checking for debug_malloc in -ldbmalloc" >&5
echo $ECHO_N "checking for debug_malloc in -ldbmalloc... $ECHO_C" >&6
if test "${ac_cv_lib_dbmalloc_debug_malloc+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -17739,7 +18824,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-ldbmalloc $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 17742 "configure"
+#line 18827 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -17748,7 +18833,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char debug_malloc ();
+char debug_malloc (void);
int
main (void)
{
@@ -17758,16 +18843,16 @@ debug_malloc ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:17761: \"$ac_link\"") >&5
+if { (eval echo "$as_me:18846: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:17764: \$? = $ac_status" >&5
+ echo "$as_me:18849: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:17767: \"$ac_try\"") >&5
+ { (eval echo "$as_me:18852: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:17770: \$? = $ac_status" >&5
+ echo "$as_me:18855: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_dbmalloc_debug_malloc=yes
else
@@ -17778,7 +18863,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:17781: result: $ac_cv_lib_dbmalloc_debug_malloc" >&5
+echo "$as_me:18866: result: $ac_cv_lib_dbmalloc_debug_malloc" >&5
echo "${ECHO_T}$ac_cv_lib_dbmalloc_debug_malloc" >&6
if test "$ac_cv_lib_dbmalloc_debug_malloc" = yes; then
cat >>confdefs.h <<EOF
@@ -17793,24 +18878,29 @@ fi
fi
-echo "$as_me:17796: checking if you want to use valgrind for testing" >&5
+echo "$as_me:18881: checking if you want to use valgrind for testing" >&5
echo $ECHO_N "checking if you want to use valgrind for testing... $ECHO_C" >&6
# Check whether --with-valgrind or --without-valgrind was given.
if test "${with_valgrind+set}" = set; then
withval="$with_valgrind"
+ case "x$withval" in
+ (x|xno) ;;
+ (*)
+ : "${with_cflags:=-g}"
+ : "${enable_leaks:=no}"
+ with_valgrind=yes
cat >>confdefs.h <<EOF
#define USE_VALGRIND 1
EOF
- : "${with_cflags:=-g}"
- : "${enable_leaks:=no}"
- with_valgrind=yes
+ ;;
+ esac
else
with_valgrind=
fi;
-echo "$as_me:17813: result: ${with_valgrind:-no}" >&5
+echo "$as_me:18903: result: ${with_valgrind:-no}" >&5
echo "${ECHO_T}${with_valgrind:-no}" >&6
case ".$with_cflags" in
@@ -17923,18 +19013,18 @@ fi
;;
esac
-echo "$as_me:17926: checking if you want to perform memory-leak testing" >&5
+echo "$as_me:19016: checking if you want to perform memory-leak testing" >&5
echo $ECHO_N "checking if you want to perform memory-leak testing... $ECHO_C" >&6
# Check whether --enable-leaks or --disable-leaks was given.
if test "${enable_leaks+set}" = set; then
enableval="$enable_leaks"
- enable_leaks=no
+ enable_leaks=$enableval
else
enable_leaks=yes
fi;
if test "x$enable_leaks" = xno; then with_no_leaks=yes; else with_no_leaks=no; fi
-echo "$as_me:17937: result: $with_no_leaks" >&5
+echo "$as_me:19027: result: $with_no_leaks" >&5
echo "${ECHO_T}$with_no_leaks" >&6
if test "$enable_leaks" = no ; then
@@ -17986,7 +19076,7 @@ case "$CFLAGS $CPPFLAGS" in
;;
esac
-echo "$as_me:17989: checking whether to add trace feature to all models" >&5
+echo "$as_me:19079: checking whether to add trace feature to all models" >&5
echo $ECHO_N "checking whether to add trace feature to all models... $ECHO_C" >&6
# Check whether --with-trace or --without-trace was given.
@@ -17996,7 +19086,7 @@ if test "${with_trace+set}" = set; then
else
cf_with_trace=$cf_all_traces
fi;
-echo "$as_me:17999: result: $cf_with_trace" >&5
+echo "$as_me:19089: result: $cf_with_trace" >&5
echo "${ECHO_T}$cf_with_trace" >&6
if test "x$cf_with_trace" = xyes ; then
@@ -18110,7 +19200,7 @@ else
ADA_TRACE=FALSE
fi
-echo "$as_me:18113: checking if we want to use GNAT projects" >&5
+echo "$as_me:19203: checking if we want to use GNAT projects" >&5
echo $ECHO_N "checking if we want to use GNAT projects... $ECHO_C" >&6
# Check whether --enable-gnat-projects or --disable-gnat-projects was given.
@@ -18127,145 +19217,112 @@ else
enable_gnat_projects=yes
fi;
-echo "$as_me:18130: result: $enable_gnat_projects" >&5
+echo "$as_me:19220: result: $enable_gnat_projects" >&5
echo "${ECHO_T}$enable_gnat_projects" >&6
### Checks for libraries.
case "$cf_cv_system_name" in
(*mingw32*|*mingw64*)
+ # Note: WINVER may be a problem with Windows 10
if test "x$with_exp_win32" = xyes ; then
- CPPFLAGS="$CPPFLAGS -DWINVER=0x0600 -DWIN32_LEAN_AND_MEAN"
+ CPPFLAGS="$CPPFLAGS -DWINVER=0x0600 -DWIN32_LEAN_AND_MEAN"
else
- CPPFLAGS="$CPPFLAGS -DWINVER=0x0501 -DWIN32_LEAN_AND_MEAN"
+ CPPFLAGS="$CPPFLAGS -DWINVER=0x0501 -DWIN32_LEAN_AND_MEAN"
fi
- # Note: WINVER may be a problem with Windows 10
- ;;
-(*)
-echo "$as_me:18144: checking for gettimeofday" >&5
-echo $ECHO_N "checking for gettimeofday... $ECHO_C" >&6
-if test "${ac_cv_func_gettimeofday+set}" = set; then
+
+echo "$as_me:19233: checking if ssp library is needed" >&5
+echo $ECHO_N "checking if ssp library is needed... $ECHO_C" >&6
+if test "${cf_cv_need_libssp+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- cat >"conftest.$ac_ext" <<_ACEOF
-#line 18150 "configure"
-#include "confdefs.h"
-#define gettimeofday autoconf_temporary
-#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */
-#undef gettimeofday
-#ifdef __cplusplus
-extern "C"
-#endif
+cat >"conftest.$ac_ext" <<_ACEOF
+#line 19240 "configure"
+#include "confdefs.h"
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char gettimeofday (void);
+#include <sys/types.h>
+#include <dirent.h>
int
main (void)
{
-/* The GNU C library defines stubs for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_gettimeofday) || defined (__stub___gettimeofday)
-#error found stub for gettimeofday
-#endif
+ DIR *dp = opendir(".");
- return gettimeofday ();
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:18181: \"$ac_link\"") >&5
+if { (eval echo "$as_me:19257: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:18184: \$? = $ac_status" >&5
+ echo "$as_me:19260: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:18187: \"$ac_try\"") >&5
+ { (eval echo "$as_me:19263: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:18190: \$? = $ac_status" >&5
+ echo "$as_me:19266: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
- ac_cv_func_gettimeofday=yes
+ cf_cv_need_libssp=no
else
echo "$as_me: failed program was:" >&5
cat "conftest.$ac_ext" >&5
-ac_cv_func_gettimeofday=no
-fi
-rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
-fi
-echo "$as_me:18200: result: $ac_cv_func_gettimeofday" >&5
-echo "${ECHO_T}$ac_cv_func_gettimeofday" >&6
-if test "$ac_cv_func_gettimeofday" = yes; then
-
-cat >>confdefs.h <<\EOF
-#define HAVE_GETTIMEOFDAY 1
-EOF
-
-else
-echo "$as_me:18210: checking for gettimeofday in -lbsd" >&5
-echo $ECHO_N "checking for gettimeofday in -lbsd... $ECHO_C" >&6
-if test "${ac_cv_lib_bsd_gettimeofday+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lbsd $LIBS"
-cat >"conftest.$ac_ext" <<_ACEOF
-#line 18218 "configure"
+ cf_save_LIBS="$LIBS"
+ LIBS="$LIBS -lssp"
+ cat >"conftest.$ac_ext" <<_ACEOF
+#line 19276 "configure"
#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char gettimeofday ();
+#include <sys/types.h>
+#include <dirent.h>
+
int
main (void)
{
-gettimeofday ();
+
+ DIR *dp = opendir(".");
+
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:18237: \"$ac_link\"") >&5
+if { (eval echo "$as_me:19293: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:18240: \$? = $ac_status" >&5
+ echo "$as_me:19296: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:18243: \"$ac_try\"") >&5
+ { (eval echo "$as_me:19299: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:18246: \$? = $ac_status" >&5
+ echo "$as_me:19302: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
- ac_cv_lib_bsd_gettimeofday=yes
+ cf_cv_need_libssp=yes
else
echo "$as_me: failed program was:" >&5
cat "conftest.$ac_ext" >&5
-ac_cv_lib_bsd_gettimeofday=no
+cf_cv_need_libssp=maybe
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
-LIBS=$ac_check_lib_save_LIBS
+ LIBS="$cf_save_LIBS"
+
fi
-echo "$as_me:18257: result: $ac_cv_lib_bsd_gettimeofday" >&5
-echo "${ECHO_T}$ac_cv_lib_bsd_gettimeofday" >&6
-if test "$ac_cv_lib_bsd_gettimeofday" = yes; then
+rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
+fi
+echo "$as_me:19316: result: $cf_cv_need_libssp" >&5
+echo "${ECHO_T}$cf_cv_need_libssp" >&6
-cat >>confdefs.h <<\EOF
-#define HAVE_GETTIMEOFDAY 1
-EOF
+if test "x$cf_cv_need_libssp" = xyes
+then
cf_add_libs="$LIBS"
# reverse order
cf_add_0lib=
-for cf_add_1lib in -lbsd; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done
+for cf_add_1lib in -lssp; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done
# filter duplicates
for cf_add_1lib in $cf_add_0lib; do
for cf_add_2lib in $cf_add_libs; do
@@ -18280,23 +19337,24 @@ LIBS="$cf_add_libs"
fi
-fi
+ ;;
+(*)
;;
esac
-echo "$as_me:18287: checking if -lm needed for math functions" >&5
+echo "$as_me:19345: checking if -lm needed for math functions" >&5
echo $ECHO_N "checking if -lm needed for math functions... $ECHO_C" >&6
if test "${cf_cv_need_libm+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 18294 "configure"
+#line 19352 "configure"
#include "confdefs.h"
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <math.h>
int
main (void)
@@ -18307,16 +19365,16 @@ double x = rand(); printf("result = %g\\n", pow(sin(x),x))
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:18310: \"$ac_link\"") >&5
+if { (eval echo "$as_me:19368: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:18313: \$? = $ac_status" >&5
+ echo "$as_me:19371: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:18316: \"$ac_try\"") >&5
+ { (eval echo "$as_me:19374: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:18319: \$? = $ac_status" >&5
+ echo "$as_me:19377: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_need_libm=no
else
@@ -18326,324 +19384,85 @@ cf_cv_need_libm=yes
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:18329: result: $cf_cv_need_libm" >&5
+echo "$as_me:19387: result: $cf_cv_need_libm" >&5
echo "${ECHO_T}$cf_cv_need_libm" >&6
+
if test "$cf_cv_need_libm" = yes
then
-MATH_LIB=-lm
-fi
-### Checks for header files.
-echo "$as_me:18337: checking for ANSI C header files" >&5
-echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
-if test "${ac_cv_header_stdc+set}" = set; then
+ cf_save_LIBS="$LIBS"
+ LIBS="$LIBS -lm"
+ echo "$as_me:19395: checking if -lm is available for math functions" >&5
+echo $ECHO_N "checking if -lm is available for math functions... $ECHO_C" >&6
+if test "${cf_cv_have_libm+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- cat >"conftest.$ac_ext" <<_ACEOF
-#line 18343 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-_ACEOF
-if { (eval echo "$as_me:18351: \"$ac_cpp "conftest.$ac_ext"\"") >&5
- (eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
- ac_status=$?
- $EGREP -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:18357: \$? = $ac_status" >&5
- (exit "$ac_status"); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- ac_cv_header_stdc=yes
-else
- echo "$as_me: failed program was:" >&5
- cat "conftest.$ac_ext" >&5
- ac_cv_header_stdc=no
-fi
-rm -f conftest.err "conftest.$ac_ext"
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat >"conftest.$ac_ext" <<_ACEOF
-#line 18379 "configure"
-#include "confdefs.h"
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "memchr" >/dev/null 2>&1; then
- :
-else
- ac_cv_header_stdc=no
-fi
-rm -rf conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat >"conftest.$ac_ext" <<_ACEOF
-#line 18397 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "free" >/dev/null 2>&1; then
- :
-else
- ac_cv_header_stdc=no
-fi
-rm -rf conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- if test "$cross_compiling" = yes; then
- :
-else
- cat >"conftest.$ac_ext" <<_ACEOF
-#line 18418 "configure"
-#include "confdefs.h"
-#include <ctype.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main (void)
-{
- int i;
- for (i = 0; i < 256; i++)
- if (XOR (islower (i), ISLOWER (i))
- || toupper (i) != TOUPPER (i))
- $ac_main_return(2);
- $ac_main_return (0);
-}
-_ACEOF
-rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:18444: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:18447: \$? = $ac_status" >&5
- (exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:18449: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:18452: \$? = $ac_status" >&5
- (exit "$ac_status"); }; }; then
- :
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-cat "conftest.$ac_ext" >&5
-ac_cv_header_stdc=no
-fi
-rm -f core ./core.* ./*.core "conftest$ac_exeext" "conftest.$ac_objext" "conftest.$ac_ext"
-fi
-fi
-fi
-echo "$as_me:18465: result: $ac_cv_header_stdc" >&5
-echo "${ECHO_T}$ac_cv_header_stdc" >&6
-if test $ac_cv_header_stdc = yes; then
-
-cat >>confdefs.h <<\EOF
-#define STDC_HEADERS 1
-EOF
-
-fi
-
-ac_header_dirent=no
-for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
- as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
-echo "$as_me:18478: checking for $ac_hdr that defines DIR" >&5
-echo $ECHO_N "checking for $ac_hdr that defines DIR... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >"conftest.$ac_ext" <<_ACEOF
-#line 18484 "configure"
+ cat >"conftest.$ac_ext" <<_ACEOF
+#line 19402 "configure"
#include "confdefs.h"
-#include <sys/types.h>
-#include <$ac_hdr>
-
-int
-main (void)
-{
-if ((DIR *) 0)
-return 0;
- ;
- return 0;
-}
-_ACEOF
-rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:18499: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:18502: \$? = $ac_status" >&5
- (exit "$ac_status"); } &&
- { ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:18505: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:18508: \$? = $ac_status" >&5
- (exit "$ac_status"); }; }; then
- eval "$as_ac_Header=yes"
-else
- echo "$as_me: failed program was:" >&5
-cat "conftest.$ac_ext" >&5
-eval "$as_ac_Header=no"
-fi
-rm -f "conftest.$ac_objext" "conftest.$ac_ext"
-fi
-echo "$as_me:18518: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
-echo "${ECHO_T}`eval echo '${'"$as_ac_Header"'}'`" >&6
-if test "`eval echo '${'"$as_ac_Header"'}'`" = yes; then
- cat >>confdefs.h <<EOF
-#define `echo "HAVE_$ac_hdr" | $as_tr_cpp` 1
-EOF
-
-ac_header_dirent=$ac_hdr; break
-fi
-done
-# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
-if test $ac_header_dirent = dirent.h; then
- echo "$as_me:18531: checking for opendir in -ldir" >&5
-echo $ECHO_N "checking for opendir in -ldir... $ECHO_C" >&6
-if test "${ac_cv_lib_dir_opendir+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldir $LIBS"
-cat >"conftest.$ac_ext" <<_ACEOF
-#line 18539 "configure"
-#include "confdefs.h"
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <math.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char opendir ();
int
main (void)
{
-opendir ();
+double x = rand(); printf("result = %g\\n", pow(sin(x),x))
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:18558: \"$ac_link\"") >&5
+if { (eval echo "$as_me:19418: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:18561: \$? = $ac_status" >&5
+ echo "$as_me:19421: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:18564: \"$ac_try\"") >&5
+ { (eval echo "$as_me:19424: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:18567: \$? = $ac_status" >&5
+ echo "$as_me:19427: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
- ac_cv_lib_dir_opendir=yes
+ cf_cv_have_libm=yes
else
echo "$as_me: failed program was:" >&5
cat "conftest.$ac_ext" >&5
-ac_cv_lib_dir_opendir=no
+cf_cv_have_libm=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:18578: result: $ac_cv_lib_dir_opendir" >&5
-echo "${ECHO_T}$ac_cv_lib_dir_opendir" >&6
-if test "$ac_cv_lib_dir_opendir" = yes; then
- LIBS="$LIBS -ldir"
fi
+echo "$as_me:19437: result: $cf_cv_have_libm" >&5
+echo "${ECHO_T}$cf_cv_have_libm" >&6
+ LIBS="$cf_save_LIBS"
+ if test "$cf_cv_have_libm" = yes
+ then
+ MATH_LIB=-lm
+ fi
else
- echo "$as_me:18585: checking for opendir in -lx" >&5
-echo $ECHO_N "checking for opendir in -lx... $ECHO_C" >&6
-if test "${ac_cv_lib_x_opendir+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lx $LIBS"
-cat >"conftest.$ac_ext" <<_ACEOF
-#line 18593 "configure"
-#include "confdefs.h"
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char opendir ();
-int
-main (void)
-{
-opendir ();
- ;
- return 0;
-}
-_ACEOF
-rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:18612: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:18615: \$? = $ac_status" >&5
- (exit "$ac_status"); } &&
- { ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:18618: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:18621: \$? = $ac_status" >&5
- (exit "$ac_status"); }; }; then
- ac_cv_lib_x_opendir=yes
-else
- echo "$as_me: failed program was:" >&5
-cat "conftest.$ac_ext" >&5
-ac_cv_lib_x_opendir=no
-fi
-rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:18632: result: $ac_cv_lib_x_opendir" >&5
-echo "${ECHO_T}$ac_cv_lib_x_opendir" >&6
-if test "$ac_cv_lib_x_opendir" = yes; then
- LIBS="$LIBS -lx"
+ cf_cv_have_libm=yes
fi
+if test "$cf_cv_have_libm" = yes
+then
+
+cat >>confdefs.h <<\EOF
+#define HAVE_MATH_FUNCS 1
+EOF
+
fi
-echo "$as_me:18640: checking whether time.h and sys/time.h may both be included" >&5
+### Checks for header files.
+echo "$as_me:19459: checking whether time.h and sys/time.h may both be included" >&5
echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6
if test "${ac_cv_header_time+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 18646 "configure"
+#line 19465 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/time.h>
@@ -18659,16 +19478,16 @@ return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:18662: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:19481: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:18665: \$? = $ac_status" >&5
+ echo "$as_me:19484: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:18668: \"$ac_try\"") >&5
+ { (eval echo "$as_me:19487: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:18671: \$? = $ac_status" >&5
+ echo "$as_me:19490: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_header_time=yes
else
@@ -18678,7 +19497,7 @@ ac_cv_header_time=no
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:18681: result: $ac_cv_header_time" >&5
+echo "$as_me:19500: result: $ac_cv_header_time" >&5
echo "${ECHO_T}$ac_cv_header_time" >&6
if test $ac_cv_header_time = yes; then
@@ -18693,7 +19512,7 @@ cf_regex_libs=
case "$host_os" in
(mingw*)
# -lsystre -ltre -lintl -liconv
- echo "$as_me:18696: checking for regcomp in -lsystre" >&5
+ echo "$as_me:19515: checking for regcomp in -lsystre" >&5
echo $ECHO_N "checking for regcomp in -lsystre... $ECHO_C" >&6
if test "${ac_cv_lib_systre_regcomp+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -18701,7 +19520,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lsystre $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 18704 "configure"
+#line 19523 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -18710,7 +19529,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char regcomp ();
+char regcomp (void);
int
main (void)
{
@@ -18720,16 +19539,16 @@ regcomp ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:18723: \"$ac_link\"") >&5
+if { (eval echo "$as_me:19542: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:18726: \$? = $ac_status" >&5
+ echo "$as_me:19545: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:18729: \"$ac_try\"") >&5
+ { (eval echo "$as_me:19548: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:18732: \$? = $ac_status" >&5
+ echo "$as_me:19551: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_systre_regcomp=yes
else
@@ -18740,11 +19559,11 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:18743: result: $ac_cv_lib_systre_regcomp" >&5
+echo "$as_me:19562: result: $ac_cv_lib_systre_regcomp" >&5
echo "${ECHO_T}$ac_cv_lib_systre_regcomp" >&6
if test "$ac_cv_lib_systre_regcomp" = yes; then
- echo "$as_me:18747: checking for libiconv_open in -liconv" >&5
+ echo "$as_me:19566: checking for libiconv_open in -liconv" >&5
echo $ECHO_N "checking for libiconv_open in -liconv... $ECHO_C" >&6
if test "${ac_cv_lib_iconv_libiconv_open+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -18752,7 +19571,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-liconv $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 18755 "configure"
+#line 19574 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -18761,7 +19580,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char libiconv_open ();
+char libiconv_open (void);
int
main (void)
{
@@ -18771,16 +19590,16 @@ libiconv_open ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:18774: \"$ac_link\"") >&5
+if { (eval echo "$as_me:19593: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:18777: \$? = $ac_status" >&5
+ echo "$as_me:19596: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:18780: \"$ac_try\"") >&5
+ { (eval echo "$as_me:19599: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:18783: \$? = $ac_status" >&5
+ echo "$as_me:19602: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_iconv_libiconv_open=yes
else
@@ -18791,7 +19610,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:18794: result: $ac_cv_lib_iconv_libiconv_open" >&5
+echo "$as_me:19613: result: $ac_cv_lib_iconv_libiconv_open" >&5
echo "${ECHO_T}$ac_cv_lib_iconv_libiconv_open" >&6
if test "$ac_cv_lib_iconv_libiconv_open" = yes; then
@@ -18813,7 +19632,7 @@ LIBS="$cf_add_libs"
fi
- echo "$as_me:18816: checking for libintl_gettext in -lintl" >&5
+ echo "$as_me:19635: checking for libintl_gettext in -lintl" >&5
echo $ECHO_N "checking for libintl_gettext in -lintl... $ECHO_C" >&6
if test "${ac_cv_lib_intl_libintl_gettext+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -18821,7 +19640,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lintl $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 18824 "configure"
+#line 19643 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -18830,7 +19649,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char libintl_gettext ();
+char libintl_gettext (void);
int
main (void)
{
@@ -18840,16 +19659,16 @@ libintl_gettext ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:18843: \"$ac_link\"") >&5
+if { (eval echo "$as_me:19662: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:18846: \$? = $ac_status" >&5
+ echo "$as_me:19665: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:18849: \"$ac_try\"") >&5
+ { (eval echo "$as_me:19668: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:18852: \$? = $ac_status" >&5
+ echo "$as_me:19671: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_intl_libintl_gettext=yes
else
@@ -18860,7 +19679,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:18863: result: $ac_cv_lib_intl_libintl_gettext" >&5
+echo "$as_me:19682: result: $ac_cv_lib_intl_libintl_gettext" >&5
echo "${ECHO_T}$ac_cv_lib_intl_libintl_gettext" >&6
if test "$ac_cv_lib_intl_libintl_gettext" = yes; then
@@ -18882,7 +19701,7 @@ LIBS="$cf_add_libs"
fi
- echo "$as_me:18885: checking for tre_regcomp in -ltre" >&5
+ echo "$as_me:19704: checking for tre_regcomp in -ltre" >&5
echo $ECHO_N "checking for tre_regcomp in -ltre... $ECHO_C" >&6
if test "${ac_cv_lib_tre_tre_regcomp+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -18890,7 +19709,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-ltre $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 18893 "configure"
+#line 19712 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -18899,7 +19718,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char tre_regcomp ();
+char tre_regcomp (void);
int
main (void)
{
@@ -18909,16 +19728,16 @@ tre_regcomp ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:18912: \"$ac_link\"") >&5
+if { (eval echo "$as_me:19731: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:18915: \$? = $ac_status" >&5
+ echo "$as_me:19734: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:18918: \"$ac_try\"") >&5
+ { (eval echo "$as_me:19737: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:18921: \$? = $ac_status" >&5
+ echo "$as_me:19740: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_tre_tre_regcomp=yes
else
@@ -18929,7 +19748,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:18932: result: $ac_cv_lib_tre_tre_regcomp" >&5
+echo "$as_me:19751: result: $ac_cv_lib_tre_tre_regcomp" >&5
echo "${ECHO_T}$ac_cv_lib_tre_tre_regcomp" >&6
if test "$ac_cv_lib_tre_tre_regcomp" = yes; then
@@ -18971,7 +19790,7 @@ LIBS="$cf_add_libs"
else
- echo "$as_me:18974: checking for regcomp in -lgnurx" >&5
+ echo "$as_me:19793: checking for regcomp in -lgnurx" >&5
echo $ECHO_N "checking for regcomp in -lgnurx... $ECHO_C" >&6
if test "${ac_cv_lib_gnurx_regcomp+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -18979,7 +19798,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lgnurx $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 18982 "configure"
+#line 19801 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -18988,7 +19807,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char regcomp ();
+char regcomp (void);
int
main (void)
{
@@ -18998,16 +19817,16 @@ regcomp ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:19001: \"$ac_link\"") >&5
+if { (eval echo "$as_me:19820: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:19004: \$? = $ac_status" >&5
+ echo "$as_me:19823: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:19007: \"$ac_try\"") >&5
+ { (eval echo "$as_me:19826: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:19010: \$? = $ac_status" >&5
+ echo "$as_me:19829: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_gnurx_regcomp=yes
else
@@ -19018,7 +19837,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:19021: result: $ac_cv_lib_gnurx_regcomp" >&5
+echo "$as_me:19840: result: $ac_cv_lib_gnurx_regcomp" >&5
echo "${ECHO_T}$ac_cv_lib_gnurx_regcomp" >&6
if test "$ac_cv_lib_gnurx_regcomp" = yes; then
@@ -19046,13 +19865,13 @@ fi
;;
(*)
cf_regex_libs="regex re"
- echo "$as_me:19049: checking for regcomp" >&5
+ echo "$as_me:19868: checking for regcomp" >&5
echo $ECHO_N "checking for regcomp... $ECHO_C" >&6
if test "${ac_cv_func_regcomp+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 19055 "configure"
+#line 19874 "configure"
#include "confdefs.h"
#define regcomp autoconf_temporary
#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */
@@ -19083,16 +19902,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:19086: \"$ac_link\"") >&5
+if { (eval echo "$as_me:19905: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:19089: \$? = $ac_status" >&5
+ echo "$as_me:19908: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:19092: \"$ac_try\"") >&5
+ { (eval echo "$as_me:19911: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:19095: \$? = $ac_status" >&5
+ echo "$as_me:19914: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_func_regcomp=yes
else
@@ -19102,7 +19921,7 @@ ac_cv_func_regcomp=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:19105: result: $ac_cv_func_regcomp" >&5
+echo "$as_me:19924: result: $ac_cv_func_regcomp" >&5
echo "${ECHO_T}$ac_cv_func_regcomp" >&6
if test "$ac_cv_func_regcomp" = yes; then
cf_regex_func=regcomp
@@ -19111,7 +19930,7 @@ else
for cf_regex_lib in $cf_regex_libs
do
as_ac_Lib=`echo "ac_cv_lib_$cf_regex_lib''_regcomp" | $as_tr_sh`
-echo "$as_me:19114: checking for regcomp in -l$cf_regex_lib" >&5
+echo "$as_me:19933: checking for regcomp in -l$cf_regex_lib" >&5
echo $ECHO_N "checking for regcomp in -l$cf_regex_lib... $ECHO_C" >&6
if eval "test \"\${$as_ac_Lib+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -19119,7 +19938,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-l$cf_regex_lib $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 19122 "configure"
+#line 19941 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -19128,7 +19947,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char regcomp ();
+char regcomp (void);
int
main (void)
{
@@ -19138,16 +19957,16 @@ regcomp ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:19141: \"$ac_link\"") >&5
+if { (eval echo "$as_me:19960: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:19144: \$? = $ac_status" >&5
+ echo "$as_me:19963: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:19147: \"$ac_try\"") >&5
+ { (eval echo "$as_me:19966: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:19150: \$? = $ac_status" >&5
+ echo "$as_me:19969: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
eval "$as_ac_Lib=yes"
else
@@ -19158,7 +19977,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:19161: result: `eval echo '${'"$as_ac_Lib"'}'`" >&5
+echo "$as_me:19980: result: `eval echo '${'"$as_ac_Lib"'}'`" >&5
echo "${ECHO_T}`eval echo '${'"$as_ac_Lib"'}'`" >&6
if test "`eval echo '${'"$as_ac_Lib"'}'`" = yes; then
@@ -19190,13 +20009,13 @@ fi
esac
if test "$cf_regex_func" = no ; then
- echo "$as_me:19193: checking for compile" >&5
+ echo "$as_me:20012: checking for compile" >&5
echo $ECHO_N "checking for compile... $ECHO_C" >&6
if test "${ac_cv_func_compile+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 19199 "configure"
+#line 20018 "configure"
#include "confdefs.h"
#define compile autoconf_temporary
#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */
@@ -19227,16 +20046,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:19230: \"$ac_link\"") >&5
+if { (eval echo "$as_me:20049: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:19233: \$? = $ac_status" >&5
+ echo "$as_me:20052: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:19236: \"$ac_try\"") >&5
+ { (eval echo "$as_me:20055: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:19239: \$? = $ac_status" >&5
+ echo "$as_me:20058: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_func_compile=yes
else
@@ -19246,13 +20065,13 @@ ac_cv_func_compile=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:19249: result: $ac_cv_func_compile" >&5
+echo "$as_me:20068: result: $ac_cv_func_compile" >&5
echo "${ECHO_T}$ac_cv_func_compile" >&6
if test "$ac_cv_func_compile" = yes; then
cf_regex_func=compile
else
- echo "$as_me:19255: checking for compile in -lgen" >&5
+ echo "$as_me:20074: checking for compile in -lgen" >&5
echo $ECHO_N "checking for compile in -lgen... $ECHO_C" >&6
if test "${ac_cv_lib_gen_compile+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -19260,7 +20079,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lgen $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 19263 "configure"
+#line 20082 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -19269,7 +20088,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char compile ();
+char compile (void);
int
main (void)
{
@@ -19279,16 +20098,16 @@ compile ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:19282: \"$ac_link\"") >&5
+if { (eval echo "$as_me:20101: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:19285: \$? = $ac_status" >&5
+ echo "$as_me:20104: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:19288: \"$ac_try\"") >&5
+ { (eval echo "$as_me:20107: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:19291: \$? = $ac_status" >&5
+ echo "$as_me:20110: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_gen_compile=yes
else
@@ -19299,7 +20118,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:19302: result: $ac_cv_lib_gen_compile" >&5
+echo "$as_me:20121: result: $ac_cv_lib_gen_compile" >&5
echo "${ECHO_T}$ac_cv_lib_gen_compile" >&6
if test "$ac_cv_lib_gen_compile" = yes; then
@@ -19327,11 +20146,11 @@ fi
fi
if test "$cf_regex_func" = no ; then
- { echo "$as_me:19330: WARNING: cannot find regular expression library" >&5
+ { echo "$as_me:20149: WARNING: cannot find regular expression library" >&5
echo "$as_me: WARNING: cannot find regular expression library" >&2;}
fi
-echo "$as_me:19334: checking for regular-expression headers" >&5
+echo "$as_me:20153: checking for regular-expression headers" >&5
echo $ECHO_N "checking for regular-expression headers... $ECHO_C" >&6
if test "${cf_cv_regex_hdrs+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -19343,7 +20162,7 @@ case "$cf_regex_func" in
for cf_regex_hdr in regexp.h regexpr.h
do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 19346 "configure"
+#line 20165 "configure"
#include "confdefs.h"
#include <$cf_regex_hdr>
int
@@ -19360,16 +20179,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:19363: \"$ac_link\"") >&5
+if { (eval echo "$as_me:20182: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:19366: \$? = $ac_status" >&5
+ echo "$as_me:20185: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:19369: \"$ac_try\"") >&5
+ { (eval echo "$as_me:20188: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:19372: \$? = $ac_status" >&5
+ echo "$as_me:20191: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_regex_hdrs=$cf_regex_hdr
@@ -19386,7 +20205,7 @@ rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
for cf_regex_hdr in regex.h
do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 19389 "configure"
+#line 20208 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <$cf_regex_hdr>
@@ -19406,16 +20225,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:19409: \"$ac_link\"") >&5
+if { (eval echo "$as_me:20228: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:19412: \$? = $ac_status" >&5
+ echo "$as_me:20231: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:19415: \"$ac_try\"") >&5
+ { (eval echo "$as_me:20234: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:19418: \$? = $ac_status" >&5
+ echo "$as_me:20237: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_regex_hdrs=$cf_regex_hdr
@@ -19431,11 +20250,11 @@ rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
esac
fi
-echo "$as_me:19434: result: $cf_cv_regex_hdrs" >&5
+echo "$as_me:20253: result: $cf_cv_regex_hdrs" >&5
echo "${ECHO_T}$cf_cv_regex_hdrs" >&6
case "$cf_cv_regex_hdrs" in
- (no) { echo "$as_me:19438: WARNING: no regular expression header found" >&5
+ (no) { echo "$as_me:20257: WARNING: no regular expression header found" >&5
echo "$as_me: WARNING: no regular expression header found" >&2;} ;;
(regex.h)
cat >>confdefs.h <<\EOF
@@ -19461,35 +20280,35 @@ limits.h \
locale.h \
math.h \
poll.h \
+sys/auxv.h \
sys/ioctl.h \
sys/param.h \
sys/poll.h \
sys/select.h \
sys/time.h \
sys/times.h \
-ttyent.h \
unistd.h \
wctype.h \
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:19476: checking for $ac_header" >&5
+echo "$as_me:20295: checking for $ac_header" >&5
echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 19482 "configure"
+#line 20301 "configure"
#include "confdefs.h"
#include <$ac_header>
_ACEOF
-if { (eval echo "$as_me:19486: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:20305: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:19492: \$? = $ac_status" >&5
+ echo "$as_me:20311: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -19508,7 +20327,7 @@ else
fi
rm -f conftest.err "conftest.$ac_ext"
fi
-echo "$as_me:19511: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
+echo "$as_me:20330: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
echo "${ECHO_T}`eval echo '${'"$as_ac_Header"'}'`" >&6
if test "`eval echo '${'"$as_ac_Header"'}'`" = yes; then
cat >>confdefs.h <<EOF
@@ -19521,23 +20340,23 @@ done
for ac_header in unistd.h getopt.h
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:19524: checking for $ac_header" >&5
+echo "$as_me:20343: checking for $ac_header" >&5
echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 19530 "configure"
+#line 20349 "configure"
#include "confdefs.h"
#include <$ac_header>
_ACEOF
-if { (eval echo "$as_me:19534: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:20353: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:19540: \$? = $ac_status" >&5
+ echo "$as_me:20359: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -19556,7 +20375,7 @@ else
fi
rm -f conftest.err "conftest.$ac_ext"
fi
-echo "$as_me:19559: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
+echo "$as_me:20378: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
echo "${ECHO_T}`eval echo '${'"$as_ac_Header"'}'`" >&6
if test "`eval echo '${'"$as_ac_Header"'}'`" = yes; then
cat >>confdefs.h <<EOF
@@ -19566,7 +20385,7 @@ EOF
fi
done
-echo "$as_me:19569: checking for header declaring getopt variables" >&5
+echo "$as_me:20388: checking for header declaring getopt variables" >&5
echo $ECHO_N "checking for header declaring getopt variables... $ECHO_C" >&6
if test "${cf_cv_getopt_header+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -19576,29 +20395,29 @@ cf_cv_getopt_header=none
for cf_header in stdio.h stdlib.h unistd.h getopt.h
do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 19579 "configure"
+#line 20398 "configure"
#include "confdefs.h"
#include <$cf_header>
int
main (void)
{
-int x = optind; char *y = optarg
+int x = optind; char *y = optarg; (void)x; (void)y
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:19592: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:20411: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:19595: \$? = $ac_status" >&5
+ echo "$as_me:20414: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:19598: \"$ac_try\"") >&5
+ { (eval echo "$as_me:20417: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:19601: \$? = $ac_status" >&5
+ echo "$as_me:20420: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_getopt_header=$cf_header
break
@@ -19610,7 +20429,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
done
fi
-echo "$as_me:19613: result: $cf_cv_getopt_header" >&5
+echo "$as_me:20432: result: $cf_cv_getopt_header" >&5
echo "${ECHO_T}$cf_cv_getopt_header" >&6
if test "$cf_cv_getopt_header" != none ; then
@@ -19627,39 +20446,36 @@ EOF
fi
-echo "$as_me:19630: checking if external environ is declared" >&5
+echo "$as_me:20449: checking if external environ is declared" >&5
echo $ECHO_N "checking if external environ is declared... $ECHO_C" >&6
if test "${cf_cv_dcl_environ+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 19637 "configure"
+#line 20456 "configure"
#include "confdefs.h"
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#include <unistd.h>
+$ac_includes_default
int
main (void)
{
-int x = (int) environ
+void* x = (void*) environ; (void)x
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:19653: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:20469: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:19656: \$? = $ac_status" >&5
+ echo "$as_me:20472: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:19659: \"$ac_try\"") >&5
+ { (eval echo "$as_me:20475: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:19662: \$? = $ac_status" >&5
+ echo "$as_me:20478: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_dcl_environ=yes
else
@@ -19670,7 +20486,7 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:19673: result: $cf_cv_dcl_environ" >&5
+echo "$as_me:20489: result: $cf_cv_dcl_environ" >&5
echo "${ECHO_T}$cf_cv_dcl_environ" >&6
if test "$cf_cv_dcl_environ" = no ; then
@@ -19685,14 +20501,14 @@ fi
# It's possible (for near-UNIX clones) that the data doesn't exist
-echo "$as_me:19688: checking if external environ exists" >&5
+echo "$as_me:20504: checking if external environ exists" >&5
echo $ECHO_N "checking if external environ exists... $ECHO_C" >&6
if test "${cf_cv_have_environ+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 19695 "configure"
+#line 20511 "configure"
#include "confdefs.h"
#undef environ
@@ -19707,16 +20523,16 @@ environ = 2
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:19710: \"$ac_link\"") >&5
+if { (eval echo "$as_me:20526: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:19713: \$? = $ac_status" >&5
+ echo "$as_me:20529: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:19716: \"$ac_try\"") >&5
+ { (eval echo "$as_me:20532: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:19719: \$? = $ac_status" >&5
+ echo "$as_me:20535: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_have_environ=yes
else
@@ -19727,7 +20543,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:19730: result: $cf_cv_have_environ" >&5
+echo "$as_me:20546: result: $cf_cv_have_environ" >&5
echo "${ECHO_T}$cf_cv_have_environ" >&6
if test "$cf_cv_have_environ" = yes ; then
@@ -19740,13 +20556,13 @@ EOF
fi
-echo "$as_me:19743: checking for getenv" >&5
+echo "$as_me:20559: checking for getenv" >&5
echo $ECHO_N "checking for getenv... $ECHO_C" >&6
if test "${ac_cv_func_getenv+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 19749 "configure"
+#line 20565 "configure"
#include "confdefs.h"
#define getenv autoconf_temporary
#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */
@@ -19777,16 +20593,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:19780: \"$ac_link\"") >&5
+if { (eval echo "$as_me:20596: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:19783: \$? = $ac_status" >&5
+ echo "$as_me:20599: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:19786: \"$ac_try\"") >&5
+ { (eval echo "$as_me:20602: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:19789: \$? = $ac_status" >&5
+ echo "$as_me:20605: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_func_getenv=yes
else
@@ -19796,19 +20612,19 @@ ac_cv_func_getenv=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:19799: result: $ac_cv_func_getenv" >&5
+echo "$as_me:20615: result: $ac_cv_func_getenv" >&5
echo "${ECHO_T}$ac_cv_func_getenv" >&6
for ac_func in putenv setenv strdup
do
as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:19805: checking for $ac_func" >&5
+echo "$as_me:20621: checking for $ac_func" >&5
echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
if eval "test \"\${$as_ac_var+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 19811 "configure"
+#line 20627 "configure"
#include "confdefs.h"
#define $ac_func autoconf_temporary
#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */
@@ -19839,16 +20655,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:19842: \"$ac_link\"") >&5
+if { (eval echo "$as_me:20658: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:19845: \$? = $ac_status" >&5
+ echo "$as_me:20661: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:19848: \"$ac_try\"") >&5
+ { (eval echo "$as_me:20664: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:19851: \$? = $ac_status" >&5
+ echo "$as_me:20667: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
eval "$as_ac_var=yes"
else
@@ -19858,7 +20674,7 @@ eval "$as_ac_var=no"
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:19861: result: `eval echo '${'"$as_ac_var"'}'`" >&5
+echo "$as_me:20677: result: `eval echo '${'"$as_ac_var"'}'`" >&5
echo "${ECHO_T}`eval echo '${'"$as_ac_var"'}'`" >&6
if test "`eval echo '${'"$as_ac_var"'}'`" = yes; then
cat >>confdefs.h <<EOF
@@ -19868,7 +20684,7 @@ EOF
fi
done
-echo "$as_me:19871: checking if getenv returns consistent values" >&5
+echo "$as_me:20687: checking if getenv returns consistent values" >&5
echo $ECHO_N "checking if getenv returns consistent values... $ECHO_C" >&6
if test "${cf_cv_consistent_getenv+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -19878,14 +20694,10 @@ if test "$cross_compiling" = yes; then
cf_cv_consistent_getenv=unknown
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 19881 "configure"
+#line 20697 "configure"
#include "confdefs.h"
-#include <stdlib.h>
-#include <unistd.h>
-#include <stdio.h>
-#include <string.h>
-#include <sys/types.h>
+$ac_includes_default
#if defined(HAVE_ENVIRON) && defined(DECL_ENVIRON) && !defined(environ)
extern char **environ; /* POSIX, but some systems are not... */
@@ -19951,7 +20763,7 @@ int main(void)
}
}
} while (found);
- sprintf(value, "%lu:%p", (unsigned long) k, &mynames[j]);
+ sprintf(value, "%lu:%p", (unsigned long) k, (void*)&mynames[j]);
set_value(name, value);
mynames[j] = str_alloc(name);
myvalues[j] = str_alloc(value);
@@ -19987,15 +20799,15 @@ int main(void)
_ACEOF
rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:19990: \"$ac_link\"") >&5
+if { (eval echo "$as_me:20802: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:19993: \$? = $ac_status" >&5
+ echo "$as_me:20805: \$? = $ac_status" >&5
(exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:19995: \"$ac_try\"") >&5
+ { (eval echo "$as_me:20807: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:19998: \$? = $ac_status" >&5
+ echo "$as_me:20810: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_consistent_getenv=yes
else
@@ -20008,7 +20820,7 @@ rm -f core ./core.* ./*.core "conftest$ac_exeext" "conftest.$ac_objext" "conftes
fi
fi
-echo "$as_me:20011: result: $cf_cv_consistent_getenv" >&5
+echo "$as_me:20823: result: $cf_cv_consistent_getenv" >&5
echo "${ECHO_T}$cf_cv_consistent_getenv" >&6
if test "x$cf_cv_consistent_getenv" = xno
@@ -20023,18 +20835,18 @@ fi
if test "x$cf_cv_consistent_getenv" = xno && \
test "x$cf_with_trace" = xyes
then
- { echo "$as_me:20026: WARNING: The NCURSES_TRACE environment variable is not supported with this configuration" >&5
+ { echo "$as_me:20838: WARNING: The NCURSES_TRACE environment variable is not supported with this configuration" >&5
echo "$as_me: WARNING: The NCURSES_TRACE environment variable is not supported with this configuration" >&2;}
fi
-echo "$as_me:20030: checking if sys/time.h works with sys/select.h" >&5
+echo "$as_me:20842: checking if sys/time.h works with sys/select.h" >&5
echo $ECHO_N "checking if sys/time.h works with sys/select.h... $ECHO_C" >&6
if test "${cf_cv_sys_time_select+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 20037 "configure"
+#line 20849 "configure"
#include "confdefs.h"
#include <sys/types.h>
@@ -20054,16 +20866,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:20057: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:20869: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:20060: \$? = $ac_status" >&5
+ echo "$as_me:20872: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:20063: \"$ac_try\"") >&5
+ { (eval echo "$as_me:20875: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:20066: \$? = $ac_status" >&5
+ echo "$as_me:20878: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_sys_time_select=yes
else
@@ -20075,7 +20887,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:20078: result: $cf_cv_sys_time_select" >&5
+echo "$as_me:20890: result: $cf_cv_sys_time_select" >&5
echo "${ECHO_T}$cf_cv_sys_time_select" >&6
test "$cf_cv_sys_time_select" = yes &&
cat >>confdefs.h <<\EOF
@@ -20090,13 +20902,13 @@ ac_link='$CC -o "conftest$ac_exeext" $CFLAGS $CPPFLAGS $LDFLAGS "conftest.$ac_ex
ac_compiler_gnu=$ac_cv_c_compiler_gnu
ac_main_return="return"
-echo "$as_me:20093: checking for an ANSI C-conforming const" >&5
+echo "$as_me:20905: checking for an ANSI C-conforming const" >&5
echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6
if test "${ac_cv_c_const+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 20099 "configure"
+#line 20911 "configure"
#include "confdefs.h"
int
@@ -20106,13 +20918,13 @@ main (void)
#ifndef __cplusplus
/* Ultrix mips cc rejects this. */
typedef int charset[2];
- const charset x;
+ const charset x; (void)x;
/* SunOS 4.1.1 cc rejects this. */
char const *const *ccp;
char **p;
/* NEC SVR4.0.2 mips cc rejects this. */
struct point {int x, y;};
- static struct point const zero = {0,0};
+ static struct point const zero = {0,0}; (void)zero;
/* AIX XL C 1.02.0.0 rejects this.
It does not let you subtract one const X* pointer from another in
an arm of an if-expression whose if-part is not a constant
@@ -20128,16 +20940,19 @@ main (void)
char const *s = 0 ? (char *) 0 : (char const *) 0;
*t++ = 0;
+ (void)s;
}
{ /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */
int x[] = {25, 17};
const int *foo = &x[0];
++foo;
+ (void)foo;
}
{ /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
typedef const int *iptr;
iptr p = 0;
++p;
+ (void)p;
}
{ /* AIX XL C 1.02.0.0 rejects this saying
"k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
@@ -20146,6 +20961,7 @@ main (void)
}
{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
const int foo = 10;
+ (void)foo;
}
#endif
@@ -20154,16 +20970,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:20157: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:20973: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:20160: \$? = $ac_status" >&5
+ echo "$as_me:20976: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:20163: \"$ac_try\"") >&5
+ { (eval echo "$as_me:20979: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:20166: \$? = $ac_status" >&5
+ echo "$as_me:20982: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_c_const=yes
else
@@ -20173,7 +20989,7 @@ ac_cv_c_const=no
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:20176: result: $ac_cv_c_const" >&5
+echo "$as_me:20992: result: $ac_cv_c_const" >&5
echo "${ECHO_T}$ac_cv_c_const" >&6
if test $ac_cv_c_const = no; then
@@ -20183,7 +20999,7 @@ EOF
fi
-echo "$as_me:20186: checking for inline" >&5
+echo "$as_me:21002: checking for inline" >&5
echo $ECHO_N "checking for inline... $ECHO_C" >&6
if test "${ac_cv_c_inline+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -20191,25 +21007,25 @@ else
ac_cv_c_inline=no
for ac_kw in inline __inline__ __inline; do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 20194 "configure"
+#line 21010 "configure"
#include "confdefs.h"
#ifndef __cplusplus
-static $ac_kw int static_foo () {return 0; }
-$ac_kw int foo () {return 0; }
+static $ac_kw int static_foo (void) {return 0; }
+$ac_kw int foo (void) {return 0; }
#endif
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:20203: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:21019: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:20206: \$? = $ac_status" >&5
+ echo "$as_me:21022: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:20209: \"$ac_try\"") >&5
+ { (eval echo "$as_me:21025: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:20212: \$? = $ac_status" >&5
+ echo "$as_me:21028: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_c_inline=$ac_kw; break
else
@@ -20220,7 +21036,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
done
fi
-echo "$as_me:20223: result: $ac_cv_c_inline" >&5
+echo "$as_me:21039: result: $ac_cv_c_inline" >&5
echo "${ECHO_T}$ac_cv_c_inline" >&6
case $ac_cv_c_inline in
inline | yes) ;;
@@ -20246,7 +21062,7 @@ if test "$ac_cv_c_inline" != no ; then
:
elif test "$GCC" = yes
then
- echo "$as_me:20249: checking if $CC supports options to tune inlining" >&5
+ echo "$as_me:21065: checking if $CC supports options to tune inlining" >&5
echo $ECHO_N "checking if $CC supports options to tune inlining... $ECHO_C" >&6
if test "${cf_cv_gcc_inline+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -20255,7 +21071,7 @@ else
cf_save_CFLAGS=$CFLAGS
CFLAGS="$CFLAGS --param max-inline-insns-single=1200"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 20258 "configure"
+#line 21074 "configure"
#include "confdefs.h"
inline int foo(void) { return 1; }
int
@@ -20267,16 +21083,16 @@ ${cf_cv_main_return:-return} foo()
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:20270: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:21086: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:20273: \$? = $ac_status" >&5
+ echo "$as_me:21089: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:20276: \"$ac_try\"") >&5
+ { (eval echo "$as_me:21092: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:20279: \$? = $ac_status" >&5
+ echo "$as_me:21095: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_gcc_inline=yes
else
@@ -20288,7 +21104,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
CFLAGS=$cf_save_CFLAGS
fi
-echo "$as_me:20291: result: $cf_cv_gcc_inline" >&5
+echo "$as_me:21107: result: $cf_cv_gcc_inline" >&5
echo "${ECHO_T}$cf_cv_gcc_inline" >&6
if test "$cf_cv_gcc_inline" = yes ; then
@@ -20394,7 +21210,7 @@ fi
fi
fi
-echo "$as_me:20397: checking for signal global datatype" >&5
+echo "$as_me:21213: checking for signal global datatype" >&5
echo $ECHO_N "checking for signal global datatype... $ECHO_C" >&6
if test "${cf_cv_sig_atomic_t+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -20406,7 +21222,7 @@ else
"int"
do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 20409 "configure"
+#line 21225 "configure"
#include "confdefs.h"
#include <sys/types.h>
@@ -20430,16 +21246,16 @@ signal(SIGINT, handler);
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:20433: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:21249: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:20436: \$? = $ac_status" >&5
+ echo "$as_me:21252: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:20439: \"$ac_try\"") >&5
+ { (eval echo "$as_me:21255: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:20442: \$? = $ac_status" >&5
+ echo "$as_me:21258: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_sig_atomic_t=$cf_type
else
@@ -20453,7 +21269,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:20456: result: $cf_cv_sig_atomic_t" >&5
+echo "$as_me:21272: result: $cf_cv_sig_atomic_t" >&5
echo "${ECHO_T}$cf_cv_sig_atomic_t" >&6
test "$cf_cv_sig_atomic_t" != no &&
cat >>confdefs.h <<EOF
@@ -20462,7 +21278,7 @@ EOF
if test "$NCURSES_CHTYPE" = auto ; then
-echo "$as_me:20465: checking for type of chtype" >&5
+echo "$as_me:21281: checking for type of chtype" >&5
echo $ECHO_N "checking for type of chtype... $ECHO_C" >&6
if test "${cf_cv_typeof_chtype+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -20472,11 +21288,11 @@ else
cf_cv_typeof_chtype=long
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 20475 "configure"
+#line 21291 "configure"
#include "confdefs.h"
+$ac_includes_default
#define WANT_BITS 31
-#include <stdio.h>
int main(void)
{
FILE *fp = fopen("cf_test.out", "w");
@@ -20507,15 +21323,15 @@ int main(void)
_ACEOF
rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:20510: \"$ac_link\"") >&5
+if { (eval echo "$as_me:21326: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:20513: \$? = $ac_status" >&5
+ echo "$as_me:21329: \$? = $ac_status" >&5
(exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:20515: \"$ac_try\"") >&5
+ { (eval echo "$as_me:21331: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:20518: \$? = $ac_status" >&5
+ echo "$as_me:21334: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_typeof_chtype=`cat cf_test.out`
else
@@ -20530,7 +21346,7 @@ fi
fi
-echo "$as_me:20533: result: $cf_cv_typeof_chtype" >&5
+echo "$as_me:21349: result: $cf_cv_typeof_chtype" >&5
echo "${ECHO_T}$cf_cv_typeof_chtype" >&6
cat >>confdefs.h <<EOF
@@ -20542,35 +21358,35 @@ else
fi
test "$cf_cv_typeof_chtype" = unsigned && cf_cv_typeof_chtype=""
-echo "$as_me:20545: checking if unsigned literals are legal" >&5
+echo "$as_me:21361: checking if unsigned literals are legal" >&5
echo $ECHO_N "checking if unsigned literals are legal... $ECHO_C" >&6
if test "${cf_cv_unsigned_literals+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 20552 "configure"
+#line 21368 "configure"
#include "confdefs.h"
int
main (void)
{
-long x = 1L + 1UL + 1U + 1
+long x = 1L + 1UL + 1U + 1; (void)x
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:20564: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:21380: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:20567: \$? = $ac_status" >&5
+ echo "$as_me:21383: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:20570: \"$ac_try\"") >&5
+ { (eval echo "$as_me:21386: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:20573: \$? = $ac_status" >&5
+ echo "$as_me:21389: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_unsigned_literals=yes
else
@@ -20582,7 +21398,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:20585: result: $cf_cv_unsigned_literals" >&5
+echo "$as_me:21401: result: $cf_cv_unsigned_literals" >&5
echo "${ECHO_T}$cf_cv_unsigned_literals" >&6
cf_cv_1UL="1"
@@ -20598,21 +21414,17 @@ test "$cf_cv_typeof_mmask_t" = unsigned && cf_cv_typeof_mmask_t=""
### Checks for external-data
-echo "$as_me:20601: checking if external errno is declared" >&5
+echo "$as_me:21417: checking if external errno is declared" >&5
echo $ECHO_N "checking if external errno is declared... $ECHO_C" >&6
if test "${cf_cv_dcl_errno+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 20608 "configure"
+#line 21424 "configure"
#include "confdefs.h"
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#include <stdio.h>
-#include <sys/types.h>
+$ac_includes_default
#include <errno.h>
int
main (void)
@@ -20623,16 +21435,16 @@ int x = (int) errno; (void)x
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:20626: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:21438: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:20629: \$? = $ac_status" >&5
+ echo "$as_me:21441: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:20632: \"$ac_try\"") >&5
+ { (eval echo "$as_me:21444: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:20635: \$? = $ac_status" >&5
+ echo "$as_me:21447: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_dcl_errno=yes
else
@@ -20643,7 +21455,7 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:20646: result: $cf_cv_dcl_errno" >&5
+echo "$as_me:21458: result: $cf_cv_dcl_errno" >&5
echo "${ECHO_T}$cf_cv_dcl_errno" >&6
if test "$cf_cv_dcl_errno" = no ; then
@@ -20658,14 +21470,14 @@ fi
# It's possible (for near-UNIX clones) that the data doesn't exist
-echo "$as_me:20661: checking if external errno exists" >&5
+echo "$as_me:21473: checking if external errno exists" >&5
echo $ECHO_N "checking if external errno exists... $ECHO_C" >&6
if test "${cf_cv_have_errno+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 20668 "configure"
+#line 21480 "configure"
#include "confdefs.h"
#undef errno
@@ -20680,16 +21492,16 @@ errno = 2
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:20683: \"$ac_link\"") >&5
+if { (eval echo "$as_me:21495: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:20686: \$? = $ac_status" >&5
+ echo "$as_me:21498: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:20689: \"$ac_try\"") >&5
+ { (eval echo "$as_me:21501: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:20692: \$? = $ac_status" >&5
+ echo "$as_me:21504: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_have_errno=yes
else
@@ -20700,7 +21512,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:20703: result: $cf_cv_have_errno" >&5
+echo "$as_me:21515: result: $cf_cv_have_errno" >&5
echo "${ECHO_T}$cf_cv_have_errno" >&6
if test "$cf_cv_have_errno" = yes ; then
@@ -20713,7 +21525,7 @@ EOF
fi
-echo "$as_me:20716: checking if data-only library module links" >&5
+echo "$as_me:21528: checking if data-only library module links" >&5
echo $ECHO_N "checking if data-only library module links... $ECHO_C" >&6
if test "${cf_cv_link_dataonly+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -20721,36 +21533,40 @@ else
rm -f conftest.a
cat >conftest.$ac_ext <<EOF
-#line 20724 "configure"
+#line 21536 "configure"
int testdata[3] = { 123, 456, 789 };
EOF
- if { (eval echo "$as_me:20727: \"$ac_compile\"") >&5
+ if { (eval echo "$as_me:21539: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:20730: \$? = $ac_status" >&5
+ echo "$as_me:21542: \$? = $ac_status" >&5
(exit "$ac_status"); } ; then
mv conftest.o data.o && \
( $AR $ARFLAGS conftest.a data.o ) 2>&5 1>/dev/null
fi
rm -f conftest.$ac_ext data.o
cat >conftest.$ac_ext <<EOF
-#line 20737 "configure"
+#line 21549 "configure"
+extern int testfunc(void);
+#if defined(NeXT)
int testfunc(void)
{
-#if defined(NeXT)
${cf_cv_main_return:-return}(1); /* I'm told this linker is broken */
+}
#else
- extern int testdata[3];
+extern int testdata[3];
+int testfunc(void)
+{
return testdata[0] == 123
&& testdata[1] == 456
&& testdata[2] == 789;
-#endif
}
+#endif
EOF
- if { (eval echo "$as_me:20750: \"$ac_compile\"") >&5
+ if { (eval echo "$as_me:21566: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:20753: \$? = $ac_status" >&5
+ echo "$as_me:21569: \$? = $ac_status" >&5
(exit "$ac_status"); }; then
mv conftest.o func.o && \
( $AR $ARFLAGS conftest.a func.o ) 2>&5 1>/dev/null
@@ -20763,26 +21579,26 @@ EOF
cf_cv_link_dataonly=unknown
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 20766 "configure"
+#line 21582 "configure"
#include "confdefs.h"
+ extern int testfunc(void);
int main(void)
{
- extern int testfunc();
${cf_cv_main_return:-return} (!testfunc());
}
_ACEOF
rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:20777: \"$ac_link\"") >&5
+if { (eval echo "$as_me:21593: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:20780: \$? = $ac_status" >&5
+ echo "$as_me:21596: \$? = $ac_status" >&5
(exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:20782: \"$ac_try\"") >&5
+ { (eval echo "$as_me:21598: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:20785: \$? = $ac_status" >&5
+ echo "$as_me:21601: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_link_dataonly=yes
else
@@ -20797,7 +21613,7 @@ fi
fi
-echo "$as_me:20800: result: $cf_cv_link_dataonly" >&5
+echo "$as_me:21616: result: $cf_cv_link_dataonly" >&5
echo "${ECHO_T}$cf_cv_link_dataonly" >&6
if test "$cf_cv_link_dataonly" = no ; then
@@ -20811,21 +21627,215 @@ fi
### Checks for library functions.
+echo "$as_me:21630: checking for clock_gettime" >&5
+echo $ECHO_N "checking for clock_gettime... $ECHO_C" >&6
+if test "${cf_cv_func_clock_gettime+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+ cat >"conftest.$ac_ext" <<_ACEOF
+#line 21637 "configure"
+#include "confdefs.h"
+#include <time.h>
+int
+main (void)
+{
+struct timespec ts;
+ int rc = clock_gettime(CLOCK_REALTIME, &ts); (void) rc; (void)ts
+ ;
+ return 0;
+}
+_ACEOF
+rm -f "conftest.$ac_objext" "conftest$ac_exeext"
+if { (eval echo "$as_me:21650: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:21653: \$? = $ac_status" >&5
+ (exit "$ac_status"); } &&
+ { ac_try='test -s "conftest$ac_exeext"'
+ { (eval echo "$as_me:21656: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:21659: \$? = $ac_status" >&5
+ (exit "$ac_status"); }; }; then
+ cf_cv_func_clock_gettime=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat "conftest.$ac_ext" >&5
+cf_cv_func_clock_gettime=no
+fi
+rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
+
+fi
+echo "$as_me:21670: result: $cf_cv_func_clock_gettime" >&5
+echo "${ECHO_T}$cf_cv_func_clock_gettime" >&6
+
+if test "$cf_cv_func_clock_gettime" = yes
+then
+
+cat >>confdefs.h <<\EOF
+#define HAVE_CLOCK_GETTIME 1
+EOF
+
+else
+echo "$as_me:21681: checking for gettimeofday" >&5
+echo $ECHO_N "checking for gettimeofday... $ECHO_C" >&6
+if test "${ac_cv_func_gettimeofday+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >"conftest.$ac_ext" <<_ACEOF
+#line 21687 "configure"
+#include "confdefs.h"
+#define gettimeofday autoconf_temporary
+#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */
+#undef gettimeofday
+
+#ifdef __cplusplus
+extern "C"
+#endif
+
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char gettimeofday (void);
+
+int
+main (void)
+{
+
+/* The GNU C library defines stubs for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_gettimeofday) || defined (__stub___gettimeofday)
+#error found stub for gettimeofday
+#endif
+
+ return gettimeofday ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f "conftest.$ac_objext" "conftest$ac_exeext"
+if { (eval echo "$as_me:21718: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:21721: \$? = $ac_status" >&5
+ (exit "$ac_status"); } &&
+ { ac_try='test -s "conftest$ac_exeext"'
+ { (eval echo "$as_me:21724: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:21727: \$? = $ac_status" >&5
+ (exit "$ac_status"); }; }; then
+ ac_cv_func_gettimeofday=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat "conftest.$ac_ext" >&5
+ac_cv_func_gettimeofday=no
+fi
+rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
+fi
+echo "$as_me:21737: result: $ac_cv_func_gettimeofday" >&5
+echo "${ECHO_T}$ac_cv_func_gettimeofday" >&6
+if test "$ac_cv_func_gettimeofday" = yes; then
+
+cat >>confdefs.h <<\EOF
+#define HAVE_GETTIMEOFDAY 1
+EOF
+
+else
+
+echo "$as_me:21747: checking for gettimeofday in -lbsd" >&5
+echo $ECHO_N "checking for gettimeofday in -lbsd... $ECHO_C" >&6
+if test "${ac_cv_lib_bsd_gettimeofday+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lbsd $LIBS"
+cat >"conftest.$ac_ext" <<_ACEOF
+#line 21755 "configure"
+#include "confdefs.h"
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char gettimeofday (void);
+int
+main (void)
+{
+gettimeofday ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f "conftest.$ac_objext" "conftest$ac_exeext"
+if { (eval echo "$as_me:21774: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:21777: \$? = $ac_status" >&5
+ (exit "$ac_status"); } &&
+ { ac_try='test -s "conftest$ac_exeext"'
+ { (eval echo "$as_me:21780: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:21783: \$? = $ac_status" >&5
+ (exit "$ac_status"); }; }; then
+ ac_cv_lib_bsd_gettimeofday=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat "conftest.$ac_ext" >&5
+ac_cv_lib_bsd_gettimeofday=no
+fi
+rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:21794: result: $ac_cv_lib_bsd_gettimeofday" >&5
+echo "${ECHO_T}$ac_cv_lib_bsd_gettimeofday" >&6
+if test "$ac_cv_lib_bsd_gettimeofday" = yes; then
+
+cat >>confdefs.h <<\EOF
+#define HAVE_GETTIMEOFDAY 1
+EOF
+
+cf_add_libs="$LIBS"
+# reverse order
+cf_add_0lib=
+for cf_add_1lib in -lbsd; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done
+# filter duplicates
+for cf_add_1lib in $cf_add_0lib; do
+ for cf_add_2lib in $cf_add_libs; do
+ if test "x$cf_add_1lib" = "x$cf_add_2lib"; then
+ cf_add_1lib=
+ break
+ fi
+ done
+ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs"
+done
+LIBS="$cf_add_libs"
+
+fi
+
+fi
+fi
+
for ac_func in \
+fpathconf \
getcwd \
+getauxval \
getegid \
geteuid \
getopt \
-getttynam \
+getuid \
issetugid \
localeconv \
poll \
-putenv \
remove \
select \
setbuf \
setbuffer \
-setenv \
+setfsuid \
setvbuf \
sigaction \
sigvec \
@@ -20840,13 +21850,13 @@ vsnprintf \
do
as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:20843: checking for $ac_func" >&5
+echo "$as_me:21853: checking for $ac_func" >&5
echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
if eval "test \"\${$as_ac_var+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 20849 "configure"
+#line 21859 "configure"
#include "confdefs.h"
#define $ac_func autoconf_temporary
#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */
@@ -20877,16 +21887,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:20880: \"$ac_link\"") >&5
+if { (eval echo "$as_me:21890: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:20883: \$? = $ac_status" >&5
+ echo "$as_me:21893: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:20886: \"$ac_try\"") >&5
+ { (eval echo "$as_me:21896: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:20889: \$? = $ac_status" >&5
+ echo "$as_me:21899: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
eval "$as_ac_var=yes"
else
@@ -20896,7 +21906,7 @@ eval "$as_ac_var=no"
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:20899: result: `eval echo '${'"$as_ac_var"'}'`" >&5
+echo "$as_me:21909: result: `eval echo '${'"$as_ac_var"'}'`" >&5
echo "${ECHO_T}`eval echo '${'"$as_ac_var"'}'`" >&6
if test "`eval echo '${'"$as_ac_var"'}'`" = yes; then
cat >>confdefs.h <<EOF
@@ -20906,9 +21916,173 @@ EOF
fi
done
+echo "$as_me:21919: checking if _PATH_TTYS is defined in ttyent.h" >&5
+echo $ECHO_N "checking if _PATH_TTYS is defined in ttyent.h... $ECHO_C" >&6
+if test "${cf_cv_PATH_TTYS+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+cat >"conftest.$ac_ext" <<_ACEOF
+#line 21926 "configure"
+#include "confdefs.h"
+
+#include <stdio.h>
+#include <ttyent.h>
+int
+main (void)
+{
+
+FILE *fp = fopen(_PATH_TTYS, "r"); (void)fp
+ ;
+ return 0;
+}
+_ACEOF
+rm -f "conftest.$ac_objext"
+if { (eval echo "$as_me:21941: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:21944: \$? = $ac_status" >&5
+ (exit "$ac_status"); } &&
+ { ac_try='test -s "conftest.$ac_objext"'
+ { (eval echo "$as_me:21947: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:21950: \$? = $ac_status" >&5
+ (exit "$ac_status"); }; }; then
+ cf_cv_PATH_TTYS=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat "conftest.$ac_ext" >&5
+cf_cv_PATH_TTYS=no
+fi
+rm -f "conftest.$ac_objext" "conftest.$ac_ext"
+fi
+echo "$as_me:21960: result: $cf_cv_PATH_TTYS" >&5
+echo "${ECHO_T}$cf_cv_PATH_TTYS" >&6
+
+if test $cf_cv_PATH_TTYS = no
+then
+ for cf_ttys in /etc/ttytype /etc/ttys
+ do
+ if test -f $cf_ttys
+ then
+ cf_cv_PATH_TTYS=maybe
+
+cat >>confdefs.h <<\EOF
+#define _PATH_TTYS $cf_ttys
+EOF
+
+ break
+ fi
+ done
+fi
+
+if test $cf_cv_PATH_TTYS != no
+then
+ echo "$as_me:21982: checking if _PATH_TTYS file exists" >&5
+echo $ECHO_N "checking if _PATH_TTYS file exists... $ECHO_C" >&6
+if test "${cf_cv_have_PATH_TTYS+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+ if test "$cross_compiling" = yes; then
+ cf_cv_have_PATH_TTYS=unknown
+else
+ cat >"conftest.$ac_ext" <<_ACEOF
+#line 21992 "configure"
+#include "confdefs.h"
+
+$ac_includes_default
+
+#include <ttyent.h>
+
+int main(void) {
+ FILE *fp = fopen(_PATH_TTYS, "r");
+ ${cf_cv_main_return:-return} (fp == 0);
+}
+_ACEOF
+rm -f "conftest$ac_exeext"
+if { (eval echo "$as_me:22005: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:22008: \$? = $ac_status" >&5
+ (exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
+ { (eval echo "$as_me:22010: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:22013: \$? = $ac_status" >&5
+ (exit "$ac_status"); }; }; then
+ cf_cv_have_PATH_TTYS=yes
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+cat "conftest.$ac_ext" >&5
+cf_cv_have_PATH_TTYS=no
+fi
+rm -f core ./core.* ./*.core "conftest$ac_exeext" "conftest.$ac_objext" "conftest.$ac_ext"
+fi
+fi
+echo "$as_me:22025: result: $cf_cv_have_PATH_TTYS" >&5
+echo "${ECHO_T}$cf_cv_have_PATH_TTYS" >&6
+ test "$cf_cv_have_PATH_TTYS" = no && cf_cv_PATH_TTYS=no
+fi
+
+if test $cf_cv_PATH_TTYS != no
+then
+
+cat >>confdefs.h <<\EOF
+#define HAVE_PATH_TTYS 1
+EOF
+
+ echo "$as_me:22037: checking for getttynam" >&5
+echo $ECHO_N "checking for getttynam... $ECHO_C" >&6
+if test "${cf_cv_func_getttynam+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+ cat >"conftest.$ac_ext" <<_ACEOF
+#line 22044 "configure"
+#include "confdefs.h"
+#include <ttyent.h>
+int
+main (void)
+{
+struct ttyent *fp = getttynam("/dev/tty"); (void)fp
+ ;
+ return 0;
+}
+_ACEOF
+rm -f "conftest.$ac_objext" "conftest$ac_exeext"
+if { (eval echo "$as_me:22056: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:22059: \$? = $ac_status" >&5
+ (exit "$ac_status"); } &&
+ { ac_try='test -s "conftest$ac_exeext"'
+ { (eval echo "$as_me:22062: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:22065: \$? = $ac_status" >&5
+ (exit "$ac_status"); }; }; then
+ cf_cv_func_getttynam=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat "conftest.$ac_ext" >&5
+cf_cv_func_getttynam=no
+fi
+rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
+fi
+echo "$as_me:22075: result: $cf_cv_func_getttynam" >&5
+echo "${ECHO_T}$cf_cv_func_getttynam" >&6
+ test "$cf_cv_func_getttynam" = yes && cat >>confdefs.h <<\EOF
+#define HAVE_GETTTYNAM 1
+EOF
+
+fi
+
if test "x$ac_cv_func_getopt" = xno && \
test "x$cf_with_progs$cf_with_tests" != xnono; then
- { { echo "$as_me:20911: error: getopt is required for building programs" >&5
+ { { echo "$as_me:22085: error: getopt is required for building programs" >&5
echo "$as_me: error: getopt is required for building programs" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -20917,7 +22091,7 @@ if test "x$with_safe_sprintf" = xyes
then
if test "x$ac_cv_func_vsnprintf" = xyes
then
- { echo "$as_me:20920: WARNING: will use vsnprintf instead of safe-sprintf option" >&5
+ { echo "$as_me:22094: WARNING: will use vsnprintf instead of safe-sprintf option" >&5
echo "$as_me: WARNING: will use vsnprintf instead of safe-sprintf option" >&2;}
else
@@ -20930,17 +22104,17 @@ fi
if test "x$with_getcap" = "xyes" ; then
-echo "$as_me:20933: checking for terminal-capability database functions" >&5
+echo "$as_me:22107: checking for terminal-capability database functions" >&5
echo $ECHO_N "checking for terminal-capability database functions... $ECHO_C" >&6
if test "${cf_cv_cgetent+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 20940 "configure"
+#line 22114 "configure"
#include "confdefs.h"
-#include <stdlib.h>
+$ac_includes_default
int
main (void)
{
@@ -20957,16 +22131,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:20960: \"$ac_link\"") >&5
+if { (eval echo "$as_me:22134: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:20963: \$? = $ac_status" >&5
+ echo "$as_me:22137: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:20966: \"$ac_try\"") >&5
+ { (eval echo "$as_me:22140: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:20969: \$? = $ac_status" >&5
+ echo "$as_me:22143: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_cgetent=yes
else
@@ -20977,7 +22151,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:20980: result: $cf_cv_cgetent" >&5
+echo "$as_me:22154: result: $cf_cv_cgetent" >&5
echo "${ECHO_T}$cf_cv_cgetent" >&6
if test "$cf_cv_cgetent" = yes
@@ -20987,18 +22161,18 @@ cat >>confdefs.h <<\EOF
#define HAVE_BSD_CGETENT 1
EOF
-echo "$as_me:20990: checking if cgetent uses const parameter" >&5
+echo "$as_me:22164: checking if cgetent uses const parameter" >&5
echo $ECHO_N "checking if cgetent uses const parameter... $ECHO_C" >&6
if test "${cf_cv_cgetent_const+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 20997 "configure"
+#line 22171 "configure"
#include "confdefs.h"
#pragma GCC diagnostic error "-Wincompatible-pointer-types-discards-qualifiers"
-#include <stdlib.h>
+$ac_includes_default
int
main (void)
{
@@ -21017,16 +22191,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:21020: \"$ac_link\"") >&5
+if { (eval echo "$as_me:22194: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:21023: \$? = $ac_status" >&5
+ echo "$as_me:22197: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:21026: \"$ac_try\"") >&5
+ { (eval echo "$as_me:22200: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:21029: \$? = $ac_status" >&5
+ echo "$as_me:22203: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_cgetent_const=yes
else
@@ -21037,7 +22211,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:21040: result: $cf_cv_cgetent_const" >&5
+echo "$as_me:22214: result: $cf_cv_cgetent_const" >&5
echo "${ECHO_T}$cf_cv_cgetent_const" >&6
if test "$cf_cv_cgetent_const" = yes
then
@@ -21051,35 +22225,35 @@ fi
fi
-echo "$as_me:21054: checking for isascii" >&5
+echo "$as_me:22228: checking for isascii" >&5
echo $ECHO_N "checking for isascii... $ECHO_C" >&6
if test "${cf_cv_have_isascii+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 21061 "configure"
+#line 22235 "configure"
#include "confdefs.h"
#include <ctype.h>
int
main (void)
{
-int x = isascii(' ')
+int x = isascii(' '); (void)x
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:21073: \"$ac_link\"") >&5
+if { (eval echo "$as_me:22247: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:21076: \$? = $ac_status" >&5
+ echo "$as_me:22250: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:21079: \"$ac_try\"") >&5
+ { (eval echo "$as_me:22253: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:21082: \$? = $ac_status" >&5
+ echo "$as_me:22256: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_have_isascii=yes
else
@@ -21090,7 +22264,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:21093: result: $cf_cv_have_isascii" >&5
+echo "$as_me:22267: result: $cf_cv_have_isascii" >&5
echo "${ECHO_T}$cf_cv_have_isascii" >&6
test "$cf_cv_have_isascii" = yes &&
cat >>confdefs.h <<\EOF
@@ -21098,10 +22272,10 @@ cat >>confdefs.h <<\EOF
EOF
if test "$ac_cv_func_sigaction" = yes; then
-echo "$as_me:21101: checking whether sigaction needs _POSIX_SOURCE" >&5
+echo "$as_me:22275: checking whether sigaction needs _POSIX_SOURCE" >&5
echo $ECHO_N "checking whether sigaction needs _POSIX_SOURCE... $ECHO_C" >&6
cat >"conftest.$ac_ext" <<_ACEOF
-#line 21104 "configure"
+#line 22278 "configure"
#include "confdefs.h"
#include <sys/types.h>
@@ -21109,22 +22283,22 @@ cat >"conftest.$ac_ext" <<_ACEOF
int
main (void)
{
-struct sigaction act
+struct sigaction act; (void)act
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:21118: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:22292: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:21121: \$? = $ac_status" >&5
+ echo "$as_me:22295: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:21124: \"$ac_try\"") >&5
+ { (eval echo "$as_me:22298: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:21127: \$? = $ac_status" >&5
+ echo "$as_me:22301: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
sigact_bad=no
else
@@ -21132,7 +22306,7 @@ else
cat "conftest.$ac_ext" >&5
cat >"conftest.$ac_ext" <<_ACEOF
-#line 21135 "configure"
+#line 22309 "configure"
#include "confdefs.h"
#define _POSIX_SOURCE
@@ -21141,22 +22315,22 @@ cat >"conftest.$ac_ext" <<_ACEOF
int
main (void)
{
-struct sigaction act
+struct sigaction act; (void)act
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:21150: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:22324: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:21153: \$? = $ac_status" >&5
+ echo "$as_me:22327: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:21156: \"$ac_try\"") >&5
+ { (eval echo "$as_me:22330: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:21159: \$? = $ac_status" >&5
+ echo "$as_me:22333: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
sigact_bad=yes
@@ -21172,11 +22346,11 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
-echo "$as_me:21175: result: $sigact_bad" >&5
+echo "$as_me:22349: result: $sigact_bad" >&5
echo "${ECHO_T}$sigact_bad" >&6
fi
-echo "$as_me:21179: checking if nanosleep really works" >&5
+echo "$as_me:22353: checking if nanosleep really works" >&5
echo $ECHO_N "checking if nanosleep really works... $ECHO_C" >&6
if test "${cf_cv_func_nanosleep+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -21186,10 +22360,11 @@ if test "$cross_compiling" = yes; then
cf_cv_func_nanosleep=unknown
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 21189 "configure"
+#line 22363 "configure"
#include "confdefs.h"
-#include <stdio.h>
+$ac_includes_default
+
#include <errno.h>
#include <time.h>
@@ -21211,15 +22386,15 @@ int main(void) {
_ACEOF
rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:21214: \"$ac_link\"") >&5
+if { (eval echo "$as_me:22389: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:21217: \$? = $ac_status" >&5
+ echo "$as_me:22392: \$? = $ac_status" >&5
(exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:21219: \"$ac_try\"") >&5
+ { (eval echo "$as_me:22394: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:21222: \$? = $ac_status" >&5
+ echo "$as_me:22397: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_func_nanosleep=yes
else
@@ -21231,7 +22406,7 @@ fi
rm -f core ./core.* ./*.core "conftest$ac_exeext" "conftest.$ac_objext" "conftest.$ac_ext"
fi
fi
-echo "$as_me:21234: result: $cf_cv_func_nanosleep" >&5
+echo "$as_me:22409: result: $cf_cv_func_nanosleep" >&5
echo "${ECHO_T}$cf_cv_func_nanosleep" >&6
test "$cf_cv_func_nanosleep" = "yes" &&
@@ -21248,23 +22423,23 @@ sys/termio.h \
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:21251: checking for $ac_header" >&5
+echo "$as_me:22426: checking for $ac_header" >&5
echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 21257 "configure"
+#line 22432 "configure"
#include "confdefs.h"
#include <$ac_header>
_ACEOF
-if { (eval echo "$as_me:21261: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:22436: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:21267: \$? = $ac_status" >&5
+ echo "$as_me:22442: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -21283,7 +22458,7 @@ else
fi
rm -f conftest.err "conftest.$ac_ext"
fi
-echo "$as_me:21286: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
+echo "$as_me:22461: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
echo "${ECHO_T}`eval echo '${'"$as_ac_Header"'}'`" >&6
if test "`eval echo '${'"$as_ac_Header"'}'`" = yes; then
cat >>confdefs.h <<EOF
@@ -21300,31 +22475,31 @@ if test "$ac_cv_header_termios_h" = yes ; then
(*) termios_bad=maybe ;;
esac
if test "$termios_bad" = maybe ; then
- echo "$as_me:21303: checking whether termios.h needs _POSIX_SOURCE" >&5
+ echo "$as_me:22478: checking whether termios.h needs _POSIX_SOURCE" >&5
echo $ECHO_N "checking whether termios.h needs _POSIX_SOURCE... $ECHO_C" >&6
cat >"conftest.$ac_ext" <<_ACEOF
-#line 21306 "configure"
+#line 22481 "configure"
#include "confdefs.h"
#include <termios.h>
int
main (void)
{
-struct termios foo; int x = foo.c_iflag = 1; (void)x
+struct termios foo; int x = (int)(foo.c_iflag = 1); (void)x
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:21318: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:22493: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:21321: \$? = $ac_status" >&5
+ echo "$as_me:22496: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:21324: \"$ac_try\"") >&5
+ { (eval echo "$as_me:22499: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:21327: \$? = $ac_status" >&5
+ echo "$as_me:22502: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
termios_bad=no
else
@@ -21332,7 +22507,7 @@ else
cat "conftest.$ac_ext" >&5
cat >"conftest.$ac_ext" <<_ACEOF
-#line 21335 "configure"
+#line 22510 "configure"
#include "confdefs.h"
#define _POSIX_SOURCE
@@ -21340,22 +22515,22 @@ cat "conftest.$ac_ext" >&5
int
main (void)
{
-struct termios foo; int x = foo.c_iflag = 2; (void)x
+struct termios foo; int x = (int)(foo.c_iflag = 2); (void)x
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:21349: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:22524: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:21352: \$? = $ac_status" >&5
+ echo "$as_me:22527: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:21355: \"$ac_try\"") >&5
+ { (eval echo "$as_me:22530: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:21358: \$? = $ac_status" >&5
+ echo "$as_me:22533: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
termios_bad=unknown
else
@@ -21371,19 +22546,19 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
- echo "$as_me:21374: result: $termios_bad" >&5
+ echo "$as_me:22549: result: $termios_bad" >&5
echo "${ECHO_T}$termios_bad" >&6
fi
fi
-echo "$as_me:21379: checking for tcgetattr" >&5
+echo "$as_me:22554: checking for tcgetattr" >&5
echo $ECHO_N "checking for tcgetattr... $ECHO_C" >&6
if test "${cf_cv_have_tcgetattr+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 21386 "configure"
+#line 22561 "configure"
#include "confdefs.h"
#include <sys/types.h>
@@ -21411,16 +22586,16 @@ tcgetattr(1, &foo);
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:21414: \"$ac_link\"") >&5
+if { (eval echo "$as_me:22589: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:21417: \$? = $ac_status" >&5
+ echo "$as_me:22592: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:21420: \"$ac_try\"") >&5
+ { (eval echo "$as_me:22595: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:21423: \$? = $ac_status" >&5
+ echo "$as_me:22598: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_have_tcgetattr=yes
else
@@ -21430,46 +22605,56 @@ cf_cv_have_tcgetattr=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:21433: result: $cf_cv_have_tcgetattr" >&5
+echo "$as_me:22608: result: $cf_cv_have_tcgetattr" >&5
echo "${ECHO_T}$cf_cv_have_tcgetattr" >&6
test "$cf_cv_have_tcgetattr" = yes &&
cat >>confdefs.h <<\EOF
#define HAVE_TCGETATTR 1
EOF
-echo "$as_me:21440: checking for vsscanf function or workaround" >&5
+echo "$as_me:22615: checking for vsscanf function or workaround" >&5
echo $ECHO_N "checking for vsscanf function or workaround... $ECHO_C" >&6
if test "${cf_cv_func_vsscanf+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 21447 "configure"
+#line 22622 "configure"
#include "confdefs.h"
#include <stdarg.h>
#include <stdio.h>
+
+static void
+myfunc(const char *str, const char *fmt, ...)
+{
+ va_list ap;
+ va_start(ap, fmt);
+ vsscanf(str, fmt, ap);
+ va_end(ap);
+}
+
int
main (void)
{
- va_list ap;
- vsscanf("from", "%d", ap)
+ myfunc("55", "%d");
+
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:21463: \"$ac_link\"") >&5
+if { (eval echo "$as_me:22648: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:21466: \$? = $ac_status" >&5
+ echo "$as_me:22651: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:21469: \"$ac_try\"") >&5
+ { (eval echo "$as_me:22654: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:21472: \$? = $ac_status" >&5
+ echo "$as_me:22657: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_func_vsscanf=vsscanf
else
@@ -21477,7 +22662,7 @@ else
cat "conftest.$ac_ext" >&5
cat >"conftest.$ac_ext" <<_ACEOF
-#line 21480 "configure"
+#line 22665 "configure"
#include "confdefs.h"
#include <stdarg.h>
@@ -21499,16 +22684,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:21502: \"$ac_link\"") >&5
+if { (eval echo "$as_me:22687: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:21505: \$? = $ac_status" >&5
+ echo "$as_me:22690: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:21508: \"$ac_try\"") >&5
+ { (eval echo "$as_me:22693: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:21511: \$? = $ac_status" >&5
+ echo "$as_me:22696: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_func_vsscanf=vfscanf
else
@@ -21516,7 +22701,7 @@ else
cat "conftest.$ac_ext" >&5
cat >"conftest.$ac_ext" <<_ACEOF
-#line 21519 "configure"
+#line 22704 "configure"
#include "confdefs.h"
#include <stdarg.h>
@@ -21538,16 +22723,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:21541: \"$ac_link\"") >&5
+if { (eval echo "$as_me:22726: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:21544: \$? = $ac_status" >&5
+ echo "$as_me:22729: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:21547: \"$ac_try\"") >&5
+ { (eval echo "$as_me:22732: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:21550: \$? = $ac_status" >&5
+ echo "$as_me:22735: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_func_vsscanf=_doscan
else
@@ -21562,7 +22747,7 @@ rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:21565: result: $cf_cv_func_vsscanf" >&5
+echo "$as_me:22750: result: $cf_cv_func_vsscanf" >&5
echo "${ECHO_T}$cf_cv_func_vsscanf" >&6
case "$cf_cv_func_vsscanf" in
@@ -21588,23 +22773,23 @@ unistd.h \
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:21591: checking for $ac_header" >&5
+echo "$as_me:22776: checking for $ac_header" >&5
echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 21597 "configure"
+#line 22782 "configure"
#include "confdefs.h"
#include <$ac_header>
_ACEOF
-if { (eval echo "$as_me:21601: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:22786: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:21607: \$? = $ac_status" >&5
+ echo "$as_me:22792: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -21623,7 +22808,7 @@ else
fi
rm -f conftest.err "conftest.$ac_ext"
fi
-echo "$as_me:21626: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
+echo "$as_me:22811: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
echo "${ECHO_T}`eval echo '${'"$as_ac_Header"'}'`" >&6
if test "`eval echo '${'"$as_ac_Header"'}'`" = yes; then
cat >>confdefs.h <<EOF
@@ -21633,7 +22818,7 @@ EOF
fi
done
-echo "$as_me:21636: checking for working mkstemp" >&5
+echo "$as_me:22821: checking for working mkstemp" >&5
echo $ECHO_N "checking for working mkstemp... $ECHO_C" >&6
if test "${cf_cv_func_mkstemp+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -21644,20 +22829,14 @@ if test "$cross_compiling" = yes; then
cf_cv_func_mkstemp=maybe
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 21647 "configure"
+#line 22832 "configure"
#include "confdefs.h"
-#include <sys/types.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <sys/stat.h>
+$ac_includes_default
+
int main(void)
{
- char *tmpl = "conftestXXXXXX";
+ static char tmpl[] = "conftestXXXXXX";
char name[2][80];
int n;
int result = 0;
@@ -21685,15 +22864,15 @@ int main(void)
_ACEOF
rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:21688: \"$ac_link\"") >&5
+if { (eval echo "$as_me:22867: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:21691: \$? = $ac_status" >&5
+ echo "$as_me:22870: \$? = $ac_status" >&5
(exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:21693: \"$ac_try\"") >&5
+ { (eval echo "$as_me:22872: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:21696: \$? = $ac_status" >&5
+ echo "$as_me:22875: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_func_mkstemp=yes
@@ -21708,16 +22887,16 @@ rm -f core ./core.* ./*.core "conftest$ac_exeext" "conftest.$ac_objext" "conftes
fi
fi
-echo "$as_me:21711: result: $cf_cv_func_mkstemp" >&5
+echo "$as_me:22890: result: $cf_cv_func_mkstemp" >&5
echo "${ECHO_T}$cf_cv_func_mkstemp" >&6
if test "x$cf_cv_func_mkstemp" = xmaybe ; then
- echo "$as_me:21714: checking for mkstemp" >&5
+ echo "$as_me:22893: checking for mkstemp" >&5
echo $ECHO_N "checking for mkstemp... $ECHO_C" >&6
if test "${ac_cv_func_mkstemp+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 21720 "configure"
+#line 22899 "configure"
#include "confdefs.h"
#define mkstemp autoconf_temporary
#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */
@@ -21748,16 +22927,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:21751: \"$ac_link\"") >&5
+if { (eval echo "$as_me:22930: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:21754: \$? = $ac_status" >&5
+ echo "$as_me:22933: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:21757: \"$ac_try\"") >&5
+ { (eval echo "$as_me:22936: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:21760: \$? = $ac_status" >&5
+ echo "$as_me:22939: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_func_mkstemp=yes
else
@@ -21767,7 +22946,7 @@ ac_cv_func_mkstemp=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:21770: result: $ac_cv_func_mkstemp" >&5
+echo "$as_me:22949: result: $ac_cv_func_mkstemp" >&5
echo "${ECHO_T}$ac_cv_func_mkstemp" >&6
fi
@@ -21788,21 +22967,21 @@ else
fi
if test "x$cross_compiling" = xyes ; then
- { echo "$as_me:21791: WARNING: cross compiling: assume setvbuf params not reversed" >&5
+ { echo "$as_me:22970: WARNING: cross compiling: assume setvbuf params not reversed" >&5
echo "$as_me: WARNING: cross compiling: assume setvbuf params not reversed" >&2;}
else
- echo "$as_me:21794: checking whether setvbuf arguments are reversed" >&5
+ echo "$as_me:22973: checking whether setvbuf arguments are reversed" >&5
echo $ECHO_N "checking whether setvbuf arguments are reversed... $ECHO_C" >&6
if test "${ac_cv_func_setvbuf_reversed+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test "$cross_compiling" = yes; then
- { { echo "$as_me:21800: error: cannot run test program while cross compiling" >&5
+ { { echo "$as_me:22979: error: cannot run test program while cross compiling" >&5
echo "$as_me: error: cannot run test program while cross compiling" >&2;}
{ (exit 1); exit 1; }; }
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 21805 "configure"
+#line 22984 "configure"
#include "confdefs.h"
#include <stdio.h>
/* If setvbuf has the reversed format, exit 0. */
@@ -21815,19 +22994,19 @@ main (void)
if (setvbuf(stdout, _IOLBF, (char *) main, BUFSIZ) != 0)
$ac_main_return(1);
putc('\r', stdout);
- $ac_main_return(0); /* Non-reversed systems segv here. */
+ $ac_main_return(0); /* Non-reversed systems segv here. */
}
_ACEOF
rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:21822: \"$ac_link\"") >&5
+if { (eval echo "$as_me:23001: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:21825: \$? = $ac_status" >&5
+ echo "$as_me:23004: \$? = $ac_status" >&5
(exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:21827: \"$ac_try\"") >&5
+ { (eval echo "$as_me:23006: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:21830: \$? = $ac_status" >&5
+ echo "$as_me:23009: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_func_setvbuf_reversed=yes
else
@@ -21840,7 +23019,7 @@ rm -f core ./core.* ./*.core "conftest$ac_exeext" "conftest.$ac_objext" "conftes
fi
rm -f core ./core.* ./*.core
fi
-echo "$as_me:21843: result: $ac_cv_func_setvbuf_reversed" >&5
+echo "$as_me:23022: result: $ac_cv_func_setvbuf_reversed" >&5
echo "${ECHO_T}$ac_cv_func_setvbuf_reversed" >&6
if test $ac_cv_func_setvbuf_reversed = yes; then
@@ -21851,13 +23030,13 @@ EOF
fi
fi
-echo "$as_me:21854: checking for intptr_t" >&5
+echo "$as_me:23033: checking for intptr_t" >&5
echo $ECHO_N "checking for intptr_t... $ECHO_C" >&6
if test "${ac_cv_type_intptr_t+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 21860 "configure"
+#line 23039 "configure"
#include "confdefs.h"
$ac_includes_default
int
@@ -21872,16 +23051,16 @@ if (sizeof (intptr_t))
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:21875: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:23054: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:21878: \$? = $ac_status" >&5
+ echo "$as_me:23057: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:21881: \"$ac_try\"") >&5
+ { (eval echo "$as_me:23060: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:21884: \$? = $ac_status" >&5
+ echo "$as_me:23063: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_type_intptr_t=yes
else
@@ -21891,7 +23070,7 @@ ac_cv_type_intptr_t=no
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:21894: result: $ac_cv_type_intptr_t" >&5
+echo "$as_me:23073: result: $ac_cv_type_intptr_t" >&5
echo "${ECHO_T}$ac_cv_type_intptr_t" >&6
if test "$ac_cv_type_intptr_t" = yes; then
:
@@ -21903,13 +23082,13 @@ EOF
fi
-echo "$as_me:21906: checking for ssize_t" >&5
+echo "$as_me:23085: checking for ssize_t" >&5
echo $ECHO_N "checking for ssize_t... $ECHO_C" >&6
if test "${ac_cv_type_ssize_t+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 21912 "configure"
+#line 23091 "configure"
#include "confdefs.h"
$ac_includes_default
int
@@ -21924,16 +23103,16 @@ if (sizeof (ssize_t))
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:21927: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:23106: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:21930: \$? = $ac_status" >&5
+ echo "$as_me:23109: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:21933: \"$ac_try\"") >&5
+ { (eval echo "$as_me:23112: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:21936: \$? = $ac_status" >&5
+ echo "$as_me:23115: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_type_ssize_t=yes
else
@@ -21943,7 +23122,7 @@ ac_cv_type_ssize_t=no
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:21946: result: $ac_cv_type_ssize_t" >&5
+echo "$as_me:23125: result: $ac_cv_type_ssize_t" >&5
echo "${ECHO_T}$ac_cv_type_ssize_t" >&6
if test "$ac_cv_type_ssize_t" = yes; then
:
@@ -21955,36 +23134,36 @@ EOF
fi
-echo "$as_me:21958: checking for type sigaction_t" >&5
+echo "$as_me:23137: checking for type sigaction_t" >&5
echo $ECHO_N "checking for type sigaction_t... $ECHO_C" >&6
if test "${cf_cv_type_sigaction+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 21965 "configure"
+#line 23144 "configure"
#include "confdefs.h"
#include <signal.h>
int
main (void)
{
-sigaction_t x
+sigaction_t x; (void)x
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:21978: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:23157: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:21981: \$? = $ac_status" >&5
+ echo "$as_me:23160: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:21984: \"$ac_try\"") >&5
+ { (eval echo "$as_me:23163: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:21987: \$? = $ac_status" >&5
+ echo "$as_me:23166: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_type_sigaction=yes
else
@@ -21995,14 +23174,14 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:21998: result: $cf_cv_type_sigaction" >&5
+echo "$as_me:23177: result: $cf_cv_type_sigaction" >&5
echo "${ECHO_T}$cf_cv_type_sigaction" >&6
test "$cf_cv_type_sigaction" = yes &&
cat >>confdefs.h <<\EOF
#define HAVE_TYPE_SIGACTION 1
EOF
-echo "$as_me:22005: checking declaration of size-change" >&5
+echo "$as_me:23184: checking declaration of size-change" >&5
echo $ECHO_N "checking declaration of size-change... $ECHO_C" >&6
if test "${cf_cv_sizechange+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -22023,7 +23202,7 @@ do
fi
cat >"conftest.$ac_ext" <<_ACEOF
-#line 22026 "configure"
+#line 23205 "configure"
#include "confdefs.h"
#include <sys/types.h>
#ifdef HAVE_TERMIOS_H
@@ -22036,7 +23215,7 @@ do
#ifdef NEED_PTEM_H
/* This is a workaround for SCO: they neglected to define struct winsize in
- * termios.h -- it's only in termio.h and ptem.h
+ * termios.h -- it is only in termio.h and ptem.h
*/
#include <sys/stream.h>
#include <sys/ptem.h>
@@ -22073,16 +23252,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:22076: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:23255: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:22079: \$? = $ac_status" >&5
+ echo "$as_me:23258: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:22082: \"$ac_try\"") >&5
+ { (eval echo "$as_me:23261: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:22085: \$? = $ac_status" >&5
+ echo "$as_me:23264: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_sizechange=yes
else
@@ -22101,7 +23280,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
done
fi
-echo "$as_me:22104: result: $cf_cv_sizechange" >&5
+echo "$as_me:23283: result: $cf_cv_sizechange" >&5
echo "${ECHO_T}$cf_cv_sizechange" >&6
if test "$cf_cv_sizechange" != no ; then
@@ -22119,13 +23298,13 @@ EOF
esac
fi
-echo "$as_me:22122: checking for memmove" >&5
+echo "$as_me:23301: checking for memmove" >&5
echo $ECHO_N "checking for memmove... $ECHO_C" >&6
if test "${ac_cv_func_memmove+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 22128 "configure"
+#line 23307 "configure"
#include "confdefs.h"
#define memmove autoconf_temporary
#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */
@@ -22156,16 +23335,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:22159: \"$ac_link\"") >&5
+if { (eval echo "$as_me:23338: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:22162: \$? = $ac_status" >&5
+ echo "$as_me:23341: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:22165: \"$ac_try\"") >&5
+ { (eval echo "$as_me:23344: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:22168: \$? = $ac_status" >&5
+ echo "$as_me:23347: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_func_memmove=yes
else
@@ -22175,19 +23354,19 @@ ac_cv_func_memmove=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:22178: result: $ac_cv_func_memmove" >&5
+echo "$as_me:23357: result: $ac_cv_func_memmove" >&5
echo "${ECHO_T}$ac_cv_func_memmove" >&6
if test "$ac_cv_func_memmove" = yes; then
:
else
-echo "$as_me:22184: checking for bcopy" >&5
+echo "$as_me:23363: checking for bcopy" >&5
echo $ECHO_N "checking for bcopy... $ECHO_C" >&6
if test "${ac_cv_func_bcopy+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 22190 "configure"
+#line 23369 "configure"
#include "confdefs.h"
#define bcopy autoconf_temporary
#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */
@@ -22218,16 +23397,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:22221: \"$ac_link\"") >&5
+if { (eval echo "$as_me:23400: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:22224: \$? = $ac_status" >&5
+ echo "$as_me:23403: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:22227: \"$ac_try\"") >&5
+ { (eval echo "$as_me:23406: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:22230: \$? = $ac_status" >&5
+ echo "$as_me:23409: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_func_bcopy=yes
else
@@ -22237,11 +23416,11 @@ ac_cv_func_bcopy=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:22240: result: $ac_cv_func_bcopy" >&5
+echo "$as_me:23419: result: $ac_cv_func_bcopy" >&5
echo "${ECHO_T}$ac_cv_func_bcopy" >&6
if test "$ac_cv_func_bcopy" = yes; then
- echo "$as_me:22244: checking if bcopy does overlapping moves" >&5
+ echo "$as_me:23423: checking if bcopy does overlapping moves" >&5
echo $ECHO_N "checking if bcopy does overlapping moves... $ECHO_C" >&6
if test "${cf_cv_good_bcopy+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -22251,9 +23430,11 @@ else
cf_cv_good_bcopy=unknown
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 22254 "configure"
+#line 23433 "configure"
#include "confdefs.h"
+$ac_includes_default
+
int main(void) {
static char data[] = "abcdefghijklmnopqrstuwwxyz";
char temp[40];
@@ -22265,15 +23446,15 @@ int main(void) {
_ACEOF
rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:22268: \"$ac_link\"") >&5
+if { (eval echo "$as_me:23449: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:22271: \$? = $ac_status" >&5
+ echo "$as_me:23452: \$? = $ac_status" >&5
(exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:22273: \"$ac_try\"") >&5
+ { (eval echo "$as_me:23454: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:22276: \$? = $ac_status" >&5
+ echo "$as_me:23457: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_good_bcopy=yes
else
@@ -22286,7 +23467,7 @@ rm -f core ./core.* ./*.core "conftest$ac_exeext" "conftest.$ac_objext" "conftes
fi
fi
-echo "$as_me:22289: result: $cf_cv_good_bcopy" >&5
+echo "$as_me:23470: result: $cf_cv_good_bcopy" >&5
echo "${ECHO_T}$cf_cv_good_bcopy" >&6
else
@@ -22313,13 +23494,13 @@ tty >/dev/null 2>&1 || {
for ac_func in posix_openpt
do
as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:22316: checking for $ac_func" >&5
+echo "$as_me:23497: checking for $ac_func" >&5
echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
if eval "test \"\${$as_ac_var+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 22322 "configure"
+#line 23503 "configure"
#include "confdefs.h"
#define $ac_func autoconf_temporary
#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */
@@ -22350,16 +23531,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:22353: \"$ac_link\"") >&5
+if { (eval echo "$as_me:23534: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:22356: \$? = $ac_status" >&5
+ echo "$as_me:23537: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:22359: \"$ac_try\"") >&5
+ { (eval echo "$as_me:23540: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:22362: \$? = $ac_status" >&5
+ echo "$as_me:23543: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
eval "$as_ac_var=yes"
else
@@ -22369,7 +23550,7 @@ eval "$as_ac_var=no"
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:22372: result: `eval echo '${'"$as_ac_var"'}'`" >&5
+echo "$as_me:23553: result: `eval echo '${'"$as_ac_var"'}'`" >&5
echo "${ECHO_T}`eval echo '${'"$as_ac_var"'}'`" >&6
if test "`eval echo '${'"$as_ac_var"'}'`" = yes; then
cat >>confdefs.h <<EOF
@@ -22379,7 +23560,7 @@ EOF
fi
done
}
-echo "$as_me:22382: checking if poll really works" >&5
+echo "$as_me:23563: checking if poll really works" >&5
echo $ECHO_N "checking if poll really works... $ECHO_C" >&6
if test "${cf_cv_working_poll+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -22389,18 +23570,19 @@ if test "$cross_compiling" = yes; then
cf_cv_working_poll=unknown
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 22392 "configure"
+#line 23573 "configure"
#include "confdefs.h"
-#include <stdlib.h>
-#include <stdio.h>
-#include <unistd.h>
+$ac_includes_default
+
#include <fcntl.h>
+
#ifdef HAVE_POLL_H
#include <poll.h>
#else
#include <sys/poll.h>
#endif
+
int main(void) {
struct pollfd myfds;
int ret;
@@ -22441,15 +23623,15 @@ int main(void) {
}
_ACEOF
rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:22444: \"$ac_link\"") >&5
+if { (eval echo "$as_me:23626: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:22447: \$? = $ac_status" >&5
+ echo "$as_me:23629: \$? = $ac_status" >&5
(exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:22449: \"$ac_try\"") >&5
+ { (eval echo "$as_me:23631: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:22452: \$? = $ac_status" >&5
+ echo "$as_me:23634: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_working_poll=yes
else
@@ -22461,21 +23643,81 @@ fi
rm -f core ./core.* ./*.core "conftest$ac_exeext" "conftest.$ac_objext" "conftest.$ac_ext"
fi
fi
-echo "$as_me:22464: result: $cf_cv_working_poll" >&5
+echo "$as_me:23646: result: $cf_cv_working_poll" >&5
echo "${ECHO_T}$cf_cv_working_poll" >&6
test "$cf_cv_working_poll" = "yes" &&
cat >>confdefs.h <<\EOF
#define HAVE_WORKING_POLL 1
EOF
-echo "$as_me:22471: checking for va_copy" >&5
+echo "$as_me:23653: checking if MB_LEN_MAX is usable" >&5
+echo $ECHO_N "checking if MB_LEN_MAX is usable... $ECHO_C" >&6
+if test "${cf_cv_mb_len_max+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+cat >"conftest.$ac_ext" <<_ACEOF
+#line 23660 "configure"
+#include "confdefs.h"
+
+$ac_includes_default
+#include <limits.h>
+int
+main (void)
+{
+
+#if defined(MB_LEN_MAX) && MB_LEN_MAX >= 6
+ ${cf_cv_main_return:-return}(0);
+#else
+#error MB_LEN_MAX is not usable
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f "conftest.$ac_objext"
+if { (eval echo "$as_me:23680: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:23683: \$? = $ac_status" >&5
+ (exit "$ac_status"); } &&
+ { ac_try='test -s "conftest.$ac_objext"'
+ { (eval echo "$as_me:23686: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:23689: \$? = $ac_status" >&5
+ (exit "$ac_status"); }; }; then
+ cf_cv_mb_len_max=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat "conftest.$ac_ext" >&5
+cf_cv_mb_len_max=no
+fi
+rm -f "conftest.$ac_objext" "conftest.$ac_ext"
+fi
+echo "$as_me:23699: result: $cf_cv_mb_len_max" >&5
+echo "${ECHO_T}$cf_cv_mb_len_max" >&6
+if test "$cf_cv_mb_len_max" = yes
+then
+
+cat >>confdefs.h <<\EOF
+#define HAVE_CONSISTENT_MB_LEN_MAX 1
+EOF
+
+else
+ { echo "$as_me:23709: WARNING: MB_LEN_MAX is missing/inconsistent in system headers" >&5
+echo "$as_me: WARNING: MB_LEN_MAX is missing/inconsistent in system headers" >&2;}
+fi
+
+echo "$as_me:23713: checking for va_copy" >&5
echo $ECHO_N "checking for va_copy... $ECHO_C" >&6
if test "${cf_cv_have_va_copy+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 22478 "configure"
+#line 23720 "configure"
#include "confdefs.h"
#include <stdarg.h>
@@ -22492,16 +23734,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:22495: \"$ac_link\"") >&5
+if { (eval echo "$as_me:23737: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:22498: \$? = $ac_status" >&5
+ echo "$as_me:23740: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:22501: \"$ac_try\"") >&5
+ { (eval echo "$as_me:23743: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:22504: \$? = $ac_status" >&5
+ echo "$as_me:23746: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_have_va_copy=yes
else
@@ -22511,7 +23753,7 @@ cf_cv_have_va_copy=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:22514: result: $cf_cv_have_va_copy" >&5
+echo "$as_me:23756: result: $cf_cv_have_va_copy" >&5
echo "${ECHO_T}$cf_cv_have_va_copy" >&6
if test "$cf_cv_have_va_copy" = yes;
@@ -22523,14 +23765,14 @@ EOF
else # !cf_cv_have_va_copy
-echo "$as_me:22526: checking for __va_copy" >&5
+echo "$as_me:23768: checking for __va_copy" >&5
echo $ECHO_N "checking for __va_copy... $ECHO_C" >&6
if test "${cf_cv_have___va_copy+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 22533 "configure"
+#line 23775 "configure"
#include "confdefs.h"
#include <stdarg.h>
@@ -22547,16 +23789,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:22550: \"$ac_link\"") >&5
+if { (eval echo "$as_me:23792: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:22553: \$? = $ac_status" >&5
+ echo "$as_me:23795: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:22556: \"$ac_try\"") >&5
+ { (eval echo "$as_me:23798: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:22559: \$? = $ac_status" >&5
+ echo "$as_me:23801: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_have___va_copy=yes
else
@@ -22566,7 +23808,7 @@ cf_cv_have___va_copy=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:22569: result: $cf_cv_have___va_copy" >&5
+echo "$as_me:23811: result: $cf_cv_have___va_copy" >&5
echo "${ECHO_T}$cf_cv_have___va_copy" >&6
if test "$cf_cv_have___va_copy" = yes
@@ -22578,14 +23820,14 @@ EOF
else # !cf_cv_have___va_copy
-echo "$as_me:22581: checking for __builtin_va_copy" >&5
+echo "$as_me:23823: checking for __builtin_va_copy" >&5
echo $ECHO_N "checking for __builtin_va_copy... $ECHO_C" >&6
if test "${cf_cv_have___builtin_va_copy+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 22588 "configure"
+#line 23830 "configure"
#include "confdefs.h"
#include <stdarg.h>
@@ -22602,16 +23844,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:22605: \"$ac_link\"") >&5
+if { (eval echo "$as_me:23847: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:22608: \$? = $ac_status" >&5
+ echo "$as_me:23850: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:22611: \"$ac_try\"") >&5
+ { (eval echo "$as_me:23853: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:22614: \$? = $ac_status" >&5
+ echo "$as_me:23856: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_have___builtin_va_copy=yes
else
@@ -22621,7 +23863,7 @@ cf_cv_have___builtin_va_copy=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:22624: result: $cf_cv_have___builtin_va_copy" >&5
+echo "$as_me:23866: result: $cf_cv_have___builtin_va_copy" >&5
echo "${ECHO_T}$cf_cv_have___builtin_va_copy" >&6
test "$cf_cv_have___builtin_va_copy" = yes &&
@@ -22639,14 +23881,14 @@ case "${cf_cv_have_va_copy}${cf_cv_have___va_copy}${cf_cv_have___builtin_va_copy
;;
(*)
- echo "$as_me:22642: checking if we can simply copy va_list" >&5
+ echo "$as_me:23884: checking if we can simply copy va_list" >&5
echo $ECHO_N "checking if we can simply copy va_list... $ECHO_C" >&6
if test "${cf_cv_pointer_va_list+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 22649 "configure"
+#line 23891 "configure"
#include "confdefs.h"
#include <stdarg.h>
@@ -22663,16 +23905,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:22666: \"$ac_link\"") >&5
+if { (eval echo "$as_me:23908: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:22669: \$? = $ac_status" >&5
+ echo "$as_me:23911: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:22672: \"$ac_try\"") >&5
+ { (eval echo "$as_me:23914: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:22675: \$? = $ac_status" >&5
+ echo "$as_me:23917: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_pointer_va_list=yes
else
@@ -22682,19 +23924,19 @@ cf_cv_pointer_va_list=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:22685: result: $cf_cv_pointer_va_list" >&5
+echo "$as_me:23927: result: $cf_cv_pointer_va_list" >&5
echo "${ECHO_T}$cf_cv_pointer_va_list" >&6
if test "$cf_cv_pointer_va_list" = no
then
- echo "$as_me:22690: checking if we can copy va_list indirectly" >&5
+ echo "$as_me:23932: checking if we can copy va_list indirectly" >&5
echo $ECHO_N "checking if we can copy va_list indirectly... $ECHO_C" >&6
if test "${cf_cv_array_va_list+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 22697 "configure"
+#line 23939 "configure"
#include "confdefs.h"
#include <stdarg.h>
@@ -22711,16 +23953,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:22714: \"$ac_link\"") >&5
+if { (eval echo "$as_me:23956: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:22717: \$? = $ac_status" >&5
+ echo "$as_me:23959: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:22720: \"$ac_try\"") >&5
+ { (eval echo "$as_me:23962: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:22723: \$? = $ac_status" >&5
+ echo "$as_me:23965: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_array_va_list=yes
else
@@ -22730,7 +23972,7 @@ cf_cv_array_va_list=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:22733: result: $cf_cv_array_va_list" >&5
+echo "$as_me:23975: result: $cf_cv_array_va_list" >&5
echo "${ECHO_T}$cf_cv_array_va_list" >&6
test "$cf_cv_array_va_list" = yes &&
cat >>confdefs.h <<\EOF
@@ -22741,13 +23983,13 @@ EOF
;;
esac
-echo "$as_me:22744: checking for pid_t" >&5
+echo "$as_me:23986: checking for pid_t" >&5
echo $ECHO_N "checking for pid_t... $ECHO_C" >&6
if test "${ac_cv_type_pid_t+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 22750 "configure"
+#line 23992 "configure"
#include "confdefs.h"
$ac_includes_default
int
@@ -22762,16 +24004,16 @@ if (sizeof (pid_t))
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:22765: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:24007: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:22768: \$? = $ac_status" >&5
+ echo "$as_me:24010: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:22771: \"$ac_try\"") >&5
+ { (eval echo "$as_me:24013: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:22774: \$? = $ac_status" >&5
+ echo "$as_me:24016: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_type_pid_t=yes
else
@@ -22781,7 +24023,7 @@ ac_cv_type_pid_t=no
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:22784: result: $ac_cv_type_pid_t" >&5
+echo "$as_me:24026: result: $ac_cv_type_pid_t" >&5
echo "${ECHO_T}$ac_cv_type_pid_t" >&6
if test "$ac_cv_type_pid_t" = yes; then
:
@@ -22796,23 +24038,23 @@ fi
for ac_header in unistd.h vfork.h
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:22799: checking for $ac_header" >&5
+echo "$as_me:24041: checking for $ac_header" >&5
echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 22805 "configure"
+#line 24047 "configure"
#include "confdefs.h"
#include <$ac_header>
_ACEOF
-if { (eval echo "$as_me:22809: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:24051: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:22815: \$? = $ac_status" >&5
+ echo "$as_me:24057: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -22831,7 +24073,7 @@ else
fi
rm -f conftest.err "conftest.$ac_ext"
fi
-echo "$as_me:22834: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
+echo "$as_me:24076: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
echo "${ECHO_T}`eval echo '${'"$as_ac_Header"'}'`" >&6
if test "`eval echo '${'"$as_ac_Header"'}'`" = yes; then
cat >>confdefs.h <<EOF
@@ -22844,13 +24086,13 @@ done
for ac_func in fork vfork
do
as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:22847: checking for $ac_func" >&5
+echo "$as_me:24089: checking for $ac_func" >&5
echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
if eval "test \"\${$as_ac_var+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 22853 "configure"
+#line 24095 "configure"
#include "confdefs.h"
#define $ac_func autoconf_temporary
#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */
@@ -22881,16 +24123,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:22884: \"$ac_link\"") >&5
+if { (eval echo "$as_me:24126: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:22887: \$? = $ac_status" >&5
+ echo "$as_me:24129: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:22890: \"$ac_try\"") >&5
+ { (eval echo "$as_me:24132: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:22893: \$? = $ac_status" >&5
+ echo "$as_me:24135: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
eval "$as_ac_var=yes"
else
@@ -22900,7 +24142,7 @@ eval "$as_ac_var=no"
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:22903: result: `eval echo '${'"$as_ac_var"'}'`" >&5
+echo "$as_me:24145: result: `eval echo '${'"$as_ac_var"'}'`" >&5
echo "${ECHO_T}`eval echo '${'"$as_ac_var"'}'`" >&6
if test "`eval echo '${'"$as_ac_var"'}'`" = yes; then
cat >>confdefs.h <<EOF
@@ -22912,7 +24154,7 @@ done
ac_cv_func_fork_works=$ac_cv_func_fork
if test "x$ac_cv_func_fork" = xyes; then
- echo "$as_me:22915: checking for working fork" >&5
+ echo "$as_me:24157: checking for working fork" >&5
echo $ECHO_N "checking for working fork... $ECHO_C" >&6
if test "${ac_cv_func_fork_works+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -22935,15 +24177,15 @@ else
}
_ACEOF
rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:22938: \"$ac_link\"") >&5
+if { (eval echo "$as_me:24180: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:22941: \$? = $ac_status" >&5
+ echo "$as_me:24183: \$? = $ac_status" >&5
(exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:22943: \"$ac_try\"") >&5
+ { (eval echo "$as_me:24185: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:22946: \$? = $ac_status" >&5
+ echo "$as_me:24188: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_func_fork_works=yes
else
@@ -22955,7 +24197,7 @@ fi
rm -f core ./core.* ./*.core "conftest$ac_exeext" "conftest.$ac_objext" "conftest.$ac_ext"
fi
fi
-echo "$as_me:22958: result: $ac_cv_func_fork_works" >&5
+echo "$as_me:24200: result: $ac_cv_func_fork_works" >&5
echo "${ECHO_T}$ac_cv_func_fork_works" >&6
fi
@@ -22969,12 +24211,12 @@ if test "x$ac_cv_func_fork_works" = xcross; then
ac_cv_func_fork_works=yes
;;
esac
- { echo "$as_me:22972: WARNING: CROSS: Result $ac_cv_func_fork_works guessed due to cross-compiling." >&5
+ { echo "$as_me:24214: WARNING: CROSS: Result $ac_cv_func_fork_works guessed due to cross-compiling." >&5
echo "$as_me: WARNING: CROSS: Result $ac_cv_func_fork_works guessed due to cross-compiling." >&2;}
fi
ac_cv_func_vfork_works=$ac_cv_func_vfork
if test "x$ac_cv_func_vfork" = xyes; then
- echo "$as_me:22977: checking for working vfork" >&5
+ echo "$as_me:24219: checking for working vfork" >&5
echo $ECHO_N "checking for working vfork... $ECHO_C" >&6
if test "${ac_cv_func_vfork_works+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -22983,7 +24225,7 @@ else
ac_cv_func_vfork_works=cross
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 22986 "configure"
+#line 24228 "configure"
#include "confdefs.h"
/* Thanks to Paul Eggert for this test. */
#include <stdio.h>
@@ -23002,11 +24244,7 @@ else
static variable whose address is put into a register that is
clobbered by the vfork. */
static
-#ifdef __cplusplus
sparc_address_test (int arg)
-# else
-sparc_address_test (arg) int arg;
-#endif
{
static pid_t child;
if (!child) {
@@ -23049,7 +24287,7 @@ main (void)
/* Convince the compiler that p..p7 are live; otherwise, it might
use the same hardware register for all 8 local variables. */
if (p != p1 || p != p2 || p != p3 || p != p4
- || p != p5 || p != p6 || p != p7)
+ || p != p5 || p != p6 || p != p7)
_exit(1);
/* On some systems (e.g. IRIX 3.3), vfork doesn't separate parent
@@ -23064,31 +24302,31 @@ main (void)
while (wait(&status) != child)
;
$ac_main_return(
- /* Was there some problem with vforking? */
- child < 0
+ /* Was there some problem with vforking? */
+ child < 0
- /* Did the child fail? (This shouldn't happen.) */
- || status
+ /* Did the child fail? (This shouldn't happen.) */
+ || status
- /* Did the vfork/compiler bug occur? */
- || parent != getpid()
+ /* Did the vfork/compiler bug occur? */
+ || parent != getpid()
- /* Did the file descriptor bug occur? */
- || fstat(fileno(stdout), &st) != 0
- );
+ /* Did the file descriptor bug occur? */
+ || fstat(fileno(stdout), &st) != 0
+ );
}
}
_ACEOF
rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:23083: \"$ac_link\"") >&5
+if { (eval echo "$as_me:24321: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:23086: \$? = $ac_status" >&5
+ echo "$as_me:24324: \$? = $ac_status" >&5
(exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:23088: \"$ac_try\"") >&5
+ { (eval echo "$as_me:24326: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:23091: \$? = $ac_status" >&5
+ echo "$as_me:24329: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_func_vfork_works=yes
else
@@ -23100,13 +24338,13 @@ fi
rm -f core ./core.* ./*.core "conftest$ac_exeext" "conftest.$ac_objext" "conftest.$ac_ext"
fi
fi
-echo "$as_me:23103: result: $ac_cv_func_vfork_works" >&5
+echo "$as_me:24341: result: $ac_cv_func_vfork_works" >&5
echo "${ECHO_T}$ac_cv_func_vfork_works" >&6
fi;
if test "x$ac_cv_func_fork_works" = xcross; then
ac_cv_func_vfork_works=ac_cv_func_vfork
- { echo "$as_me:23109: WARNING: CROSS: Result $ac_cv_func_vfork_works guessed due to cross-compiling." >&5
+ { echo "$as_me:24347: WARNING: CROSS: Result $ac_cv_func_vfork_works guessed due to cross-compiling." >&5
echo "$as_me: WARNING: CROSS: Result $ac_cv_func_vfork_works guessed due to cross-compiling." >&2;}
fi
@@ -23131,7 +24369,7 @@ EOF
fi
-echo "$as_me:23134: checking if fopen accepts explicit binary mode" >&5
+echo "$as_me:24372: checking if fopen accepts explicit binary mode" >&5
echo $ECHO_N "checking if fopen accepts explicit binary mode... $ECHO_C" >&6
if test "${cf_cv_fopen_bin_r+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -23141,11 +24379,13 @@ else
cf_cv_fopen_bin_r=unknown
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 23144 "configure"
+#line 24382 "configure"
#include "confdefs.h"
-#include <stdio.h>
-int main(void) {
+$ac_includes_default
+
+int main(void)
+{
FILE *fp = fopen("conftest.tmp", "wb");
int rc = 0;
if (fp != 0) {
@@ -23174,15 +24414,15 @@ int main(void) {
_ACEOF
rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:23177: \"$ac_link\"") >&5
+if { (eval echo "$as_me:24417: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:23180: \$? = $ac_status" >&5
+ echo "$as_me:24420: \$? = $ac_status" >&5
(exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:23182: \"$ac_try\"") >&5
+ { (eval echo "$as_me:24422: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:23185: \$? = $ac_status" >&5
+ echo "$as_me:24425: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_fopen_bin_r=yes
else
@@ -23195,7 +24435,7 @@ rm -f core ./core.* ./*.core "conftest$ac_exeext" "conftest.$ac_objext" "conftes
fi
fi
-echo "$as_me:23198: result: $cf_cv_fopen_bin_r" >&5
+echo "$as_me:24438: result: $cf_cv_fopen_bin_r" >&5
echo "${ECHO_T}$cf_cv_fopen_bin_r" >&6
test "x$cf_cv_fopen_bin_r" != xno &&
cat >>confdefs.h <<\EOF
@@ -23204,7 +24444,7 @@ EOF
# special check for test/ditto.c
-echo "$as_me:23207: checking for openpty in -lutil" >&5
+echo "$as_me:24447: checking for openpty in -lutil" >&5
echo $ECHO_N "checking for openpty in -lutil... $ECHO_C" >&6
if test "${ac_cv_lib_util_openpty+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -23212,7 +24452,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lutil $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 23215 "configure"
+#line 24455 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -23221,7 +24461,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char openpty ();
+char openpty (void);
int
main (void)
{
@@ -23231,16 +24471,16 @@ openpty ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:23234: \"$ac_link\"") >&5
+if { (eval echo "$as_me:24474: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:23237: \$? = $ac_status" >&5
+ echo "$as_me:24477: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:23240: \"$ac_try\"") >&5
+ { (eval echo "$as_me:24480: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:23243: \$? = $ac_status" >&5
+ echo "$as_me:24483: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_util_openpty=yes
else
@@ -23251,7 +24491,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:23254: result: $ac_cv_lib_util_openpty" >&5
+echo "$as_me:24494: result: $ac_cv_lib_util_openpty" >&5
echo "${ECHO_T}$ac_cv_lib_util_openpty" >&6
if test "$ac_cv_lib_util_openpty" = yes; then
cf_cv_lib_util=yes
@@ -23259,7 +24499,7 @@ else
cf_cv_lib_util=no
fi
-echo "$as_me:23262: checking for openpty header" >&5
+echo "$as_me:24502: checking for openpty header" >&5
echo $ECHO_N "checking for openpty header... $ECHO_C" >&6
if test "${cf_cv_func_openpty+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -23286,7 +24526,7 @@ LIBS="$cf_add_libs"
for cf_header in pty.h libutil.h util.h
do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 23289 "configure"
+#line 24529 "configure"
#include "confdefs.h"
#include <$cf_header>
@@ -23297,22 +24537,23 @@ main (void)
int x = openpty((int *)0, (int *)0, (char *)0,
(struct termios *)0, (struct winsize *)0);
+ (void)x;
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:23306: \"$ac_link\"") >&5
+if { (eval echo "$as_me:24547: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:23309: \$? = $ac_status" >&5
+ echo "$as_me:24550: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:23312: \"$ac_try\"") >&5
+ { (eval echo "$as_me:24553: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:23315: \$? = $ac_status" >&5
+ echo "$as_me:24556: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_func_openpty=$cf_header
@@ -23330,7 +24571,7 @@ rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS="$cf_save_LIBS"
fi
-echo "$as_me:23333: result: $cf_cv_func_openpty" >&5
+echo "$as_me:24574: result: $cf_cv_func_openpty" >&5
echo "${ECHO_T}$cf_cv_func_openpty" >&6
if test "$cf_cv_func_openpty" != no ; then
@@ -23403,7 +24644,7 @@ if test -n "$with_hashed_db/include" ; then
CPPFLAGS="${CPPFLAGS}-I$cf_add_incdir"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 23406 "configure"
+#line 24647 "configure"
#include "confdefs.h"
#include <stdio.h>
int
@@ -23415,16 +24656,16 @@ printf("Hello")
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:23418: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:24659: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:23421: \$? = $ac_status" >&5
+ echo "$as_me:24662: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:23424: \"$ac_try\"") >&5
+ { (eval echo "$as_me:24665: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:23427: \$? = $ac_status" >&5
+ echo "$as_me:24668: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
:
else
@@ -23441,7 +24682,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
if test "$cf_have_incdir" = no ; then
test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-echo "${as_me:-configure}:23444: testing adding $cf_add_incdir to include-path ..." 1>&5
+echo "${as_me:-configure}:24685: testing adding $cf_add_incdir to include-path ..." 1>&5
CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
@@ -23477,7 +24718,7 @@ if test -n "$with_hashed_db/lib" ; then
if test "$cf_have_libdir" = no ; then
test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6
-echo "${as_me:-configure}:23480: testing adding $cf_add_libdir to library-path ..." 1>&5
+echo "${as_me:-configure}:24721: testing adding $cf_add_libdir to library-path ..." 1>&5
LDFLAGS="-L$cf_add_libdir $LDFLAGS"
fi
@@ -23488,7 +24729,7 @@ fi
else
case "$with_hashed_db" in
(./*|../*|/*)
- { echo "$as_me:23491: WARNING: no such directory $with_hashed_db" >&5
+ { echo "$as_me:24732: WARNING: no such directory $with_hashed_db" >&5
echo "$as_me: WARNING: no such directory $with_hashed_db" >&2;}
;;
(*)
@@ -23560,7 +24801,7 @@ if test -n "$cf_item" ; then
CPPFLAGS="${CPPFLAGS}-I$cf_add_incdir"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 23563 "configure"
+#line 24804 "configure"
#include "confdefs.h"
#include <stdio.h>
int
@@ -23572,16 +24813,16 @@ printf("Hello")
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:23575: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:24816: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:23578: \$? = $ac_status" >&5
+ echo "$as_me:24819: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:23581: \"$ac_try\"") >&5
+ { (eval echo "$as_me:24822: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:23584: \$? = $ac_status" >&5
+ echo "$as_me:24825: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
:
else
@@ -23598,7 +24839,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
if test "$cf_have_incdir" = no ; then
test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-echo "${as_me:-configure}:23601: testing adding $cf_add_incdir to include-path ..." 1>&5
+echo "${as_me:-configure}:24842: testing adding $cf_add_incdir to include-path ..." 1>&5
CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
@@ -23678,7 +24919,7 @@ if test -n "$cf_item" ; then
if test "$cf_have_libdir" = no ; then
test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6
-echo "${as_me:-configure}:23681: testing adding $cf_add_libdir to library-path ..." 1>&5
+echo "${as_me:-configure}:24922: testing adding $cf_add_libdir to library-path ..." 1>&5
LDFLAGS="-L$cf_add_libdir $LDFLAGS"
fi
@@ -23695,23 +24936,23 @@ fi
fi
esac
-echo "$as_me:23698: checking for db.h" >&5
+echo "$as_me:24939: checking for db.h" >&5
echo $ECHO_N "checking for db.h... $ECHO_C" >&6
if test "${ac_cv_header_db_h+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 23704 "configure"
+#line 24945 "configure"
#include "confdefs.h"
#include <db.h>
_ACEOF
-if { (eval echo "$as_me:23708: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:24949: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:23714: \$? = $ac_status" >&5
+ echo "$as_me:24955: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -23730,11 +24971,11 @@ else
fi
rm -f conftest.err "conftest.$ac_ext"
fi
-echo "$as_me:23733: result: $ac_cv_header_db_h" >&5
+echo "$as_me:24974: result: $ac_cv_header_db_h" >&5
echo "${ECHO_T}$ac_cv_header_db_h" >&6
if test "$ac_cv_header_db_h" = yes; then
-echo "$as_me:23737: checking for version of db" >&5
+echo "$as_me:24978: checking for version of db" >&5
echo $ECHO_N "checking for version of db... $ECHO_C" >&6
if test "${cf_cv_hashed_db_version+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -23745,10 +24986,10 @@ cf_cv_hashed_db_version=unknown
for cf_db_version in 1 2 3 4 5 6
do
-echo "${as_me:-configure}:23748: testing checking for db version $cf_db_version ..." 1>&5
+echo "${as_me:-configure}:24989: testing checking for db version $cf_db_version ..." 1>&5
cat >"conftest.$ac_ext" <<_ACEOF
-#line 23751 "configure"
+#line 24992 "configure"
#include "confdefs.h"
$ac_includes_default
@@ -23759,13 +25000,13 @@ $ac_includes_default
#if $cf_db_version == DB_VERSION_MAJOR
/* ok */
#else
- make an error
+ #error $cf_db_version is not DB_VERSION_MAJOR
#endif
#else
#if $cf_db_version == 1
/* ok: assuming this is DB 1.8.5 */
#else
- make an error
+ #error $cf_db_version is not 1
#endif
#endif
@@ -23778,16 +25019,16 @@ DBT *foo = 0
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:23781: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:25022: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:23784: \$? = $ac_status" >&5
+ echo "$as_me:25025: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:23787: \"$ac_try\"") >&5
+ { (eval echo "$as_me:25028: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:23790: \$? = $ac_status" >&5
+ echo "$as_me:25031: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_hashed_db_version=$cf_db_version
@@ -23801,16 +25042,16 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
done
fi
-echo "$as_me:23804: result: $cf_cv_hashed_db_version" >&5
+echo "$as_me:25045: result: $cf_cv_hashed_db_version" >&5
echo "${ECHO_T}$cf_cv_hashed_db_version" >&6
if test "$cf_cv_hashed_db_version" = unknown ; then
- { { echo "$as_me:23808: error: Cannot determine version of db" >&5
+ { { echo "$as_me:25049: error: Cannot determine version of db" >&5
echo "$as_me: error: Cannot determine version of db" >&2;}
{ (exit 1); exit 1; }; }
else
-echo "$as_me:23813: checking for db libraries" >&5
+echo "$as_me:25054: checking for db libraries" >&5
echo $ECHO_N "checking for db libraries... $ECHO_C" >&6
if test "${cf_cv_hashed_db_libs+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -23840,10 +25081,10 @@ LIBS="$cf_add_libs"
fi
-echo "${as_me:-configure}:23843: testing checking for library $cf_db_libs ..." 1>&5
+echo "${as_me:-configure}:25084: testing checking for library $cf_db_libs ..." 1>&5
cat >"conftest.$ac_ext" <<_ACEOF
-#line 23846 "configure"
+#line 25087 "configure"
#include "confdefs.h"
$ac_includes_default
@@ -23898,16 +25139,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:23901: \"$ac_link\"") >&5
+if { (eval echo "$as_me:25142: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:23904: \$? = $ac_status" >&5
+ echo "$as_me:25145: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:23907: \"$ac_try\"") >&5
+ { (eval echo "$as_me:25148: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:23910: \$? = $ac_status" >&5
+ echo "$as_me:25151: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
if test -n "$cf_db_libs" ; then
@@ -23927,11 +25168,11 @@ rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
done
fi
-echo "$as_me:23930: result: $cf_cv_hashed_db_libs" >&5
+echo "$as_me:25171: result: $cf_cv_hashed_db_libs" >&5
echo "${ECHO_T}$cf_cv_hashed_db_libs" >&6
if test "$cf_cv_hashed_db_libs" = unknown ; then
- { { echo "$as_me:23934: error: Cannot determine library for db" >&5
+ { { echo "$as_me:25175: error: Cannot determine library for db" >&5
echo "$as_me: error: Cannot determine library for db" >&2;}
{ (exit 1); exit 1; }; }
elif test "$cf_cv_hashed_db_libs" != default ; then
@@ -23957,7 +25198,7 @@ fi
else
- { { echo "$as_me:23960: error: Cannot find db.h" >&5
+ { { echo "$as_me:25201: error: Cannot find db.h" >&5
echo "$as_me: error: Cannot find db.h" >&2;}
{ (exit 1); exit 1; }; }
@@ -23972,7 +25213,7 @@ fi
# Just in case, check if the C compiler has a bool type.
-echo "$as_me:23975: checking if we should include stdbool.h" >&5
+echo "$as_me:25216: checking if we should include stdbool.h" >&5
echo $ECHO_N "checking if we should include stdbool.h... $ECHO_C" >&6
if test "${cf_cv_header_stdbool_h+set}" = set; then
@@ -23980,35 +25221,35 @@ if test "${cf_cv_header_stdbool_h+set}" = set; then
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 23983 "configure"
+#line 25224 "configure"
#include "confdefs.h"
int
main (void)
{
-bool foo = false
+bool foo = false; (void)foo
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:23995: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:25236: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:23998: \$? = $ac_status" >&5
+ echo "$as_me:25239: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:24001: \"$ac_try\"") >&5
+ { (eval echo "$as_me:25242: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:24004: \$? = $ac_status" >&5
+ echo "$as_me:25245: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_header_stdbool_h=0
else
echo "$as_me: failed program was:" >&5
cat "conftest.$ac_ext" >&5
cat >"conftest.$ac_ext" <<_ACEOF
-#line 24011 "configure"
+#line 25252 "configure"
#include "confdefs.h"
#ifndef __BEOS__
@@ -24018,22 +25259,22 @@ cat >"conftest.$ac_ext" <<_ACEOF
int
main (void)
{
-bool foo = false
+bool foo = false; (void)foo
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:24027: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:25268: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:24030: \$? = $ac_status" >&5
+ echo "$as_me:25271: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:24033: \"$ac_try\"") >&5
+ { (eval echo "$as_me:25274: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:24036: \$? = $ac_status" >&5
+ echo "$as_me:25277: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_header_stdbool_h=1
else
@@ -24047,13 +25288,13 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
if test "$cf_cv_header_stdbool_h" = 1
-then echo "$as_me:24050: result: yes" >&5
+then echo "$as_me:25291: result: yes" >&5
echo "${ECHO_T}yes" >&6
-else echo "$as_me:24052: result: no" >&5
+else echo "$as_me:25293: result: no" >&5
echo "${ECHO_T}no" >&6
fi
-echo "$as_me:24056: checking for builtin bool type" >&5
+echo "$as_me:25297: checking for builtin bool type" >&5
echo $ECHO_N "checking for builtin bool type... $ECHO_C" >&6
if test "${cf_cv_cc_bool_type+set}" = set; then
@@ -24061,7 +25302,7 @@ if test "${cf_cv_cc_bool_type+set}" = set; then
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 24064 "configure"
+#line 25305 "configure"
#include "confdefs.h"
#include <stdio.h>
@@ -24070,22 +25311,22 @@ else
int
main (void)
{
-bool x = false
+bool x = false; (void)x
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:24079: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:25320: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:24082: \$? = $ac_status" >&5
+ echo "$as_me:25323: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:24085: \"$ac_try\"") >&5
+ { (eval echo "$as_me:25326: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:24088: \$? = $ac_status" >&5
+ echo "$as_me:25329: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_cc_bool_type=1
else
@@ -24098,9 +25339,9 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
if test "$cf_cv_cc_bool_type" = 1
-then echo "$as_me:24101: result: yes" >&5
+then echo "$as_me:25342: result: yes" >&5
echo "${ECHO_T}yes" >&6
-else echo "$as_me:24103: result: no" >&5
+else echo "$as_me:25344: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -24117,10 +25358,10 @@ if test -n "$GXX" ; then
cf_save="$LIBS"
LIBS="$LIBS $CXXLIBS"
- echo "$as_me:24120: checking if we already have C++ library" >&5
+ echo "$as_me:25361: checking if we already have C++ library" >&5
echo $ECHO_N "checking if we already have C++ library... $ECHO_C" >&6
cat >"conftest.$ac_ext" <<_ACEOF
-#line 24123 "configure"
+#line 25364 "configure"
#include "confdefs.h"
#include <iostream>
@@ -24134,16 +25375,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:24137: \"$ac_link\"") >&5
+if { (eval echo "$as_me:25378: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:24140: \$? = $ac_status" >&5
+ echo "$as_me:25381: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:24143: \"$ac_try\"") >&5
+ { (eval echo "$as_me:25384: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:24146: \$? = $ac_status" >&5
+ echo "$as_me:25387: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_have_libstdcpp=yes
else
@@ -24152,7 +25393,7 @@ cat "conftest.$ac_ext" >&5
cf_have_libstdcpp=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
- echo "$as_me:24155: result: $cf_have_libstdcpp" >&5
+ echo "$as_me:25396: result: $cf_have_libstdcpp" >&5
echo "${ECHO_T}$cf_have_libstdcpp" >&6
LIBS="$cf_save"
@@ -24171,7 +25412,7 @@ echo "${ECHO_T}$cf_have_libstdcpp" >&6
;;
esac
- echo "$as_me:24174: checking for library $cf_stdcpp_libname" >&5
+ echo "$as_me:25415: checking for library $cf_stdcpp_libname" >&5
echo $ECHO_N "checking for library $cf_stdcpp_libname... $ECHO_C" >&6
if test "${cf_cv_libstdcpp+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -24197,7 +25438,7 @@ done
LIBS="$cf_add_libs"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 24200 "configure"
+#line 25441 "configure"
#include "confdefs.h"
#include <iostream>
@@ -24211,16 +25452,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:24214: \"$ac_link\"") >&5
+if { (eval echo "$as_me:25455: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:24217: \$? = $ac_status" >&5
+ echo "$as_me:25458: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:24220: \"$ac_try\"") >&5
+ { (eval echo "$as_me:25461: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:24223: \$? = $ac_status" >&5
+ echo "$as_me:25464: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_libstdcpp=yes
else
@@ -24232,7 +25473,7 @@ rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS="$cf_save"
fi
-echo "$as_me:24235: result: $cf_cv_libstdcpp" >&5
+echo "$as_me:25476: result: $cf_cv_libstdcpp" >&5
echo "${ECHO_T}$cf_cv_libstdcpp" >&6
test "$cf_cv_libstdcpp" = yes && {
cf_add_libs="$CXXLIBS"
@@ -24254,7 +25495,7 @@ CXXLIBS="$cf_add_libs"
fi
fi
- echo "$as_me:24257: checking whether $CXX understands -c and -o together" >&5
+ echo "$as_me:25498: checking whether $CXX understands -c and -o together" >&5
echo $ECHO_N "checking whether $CXX understands -c and -o together... $ECHO_C" >&6
if test "${cf_cv_prog_CXX_c_o+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -24269,15 +25510,15 @@ 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='$CXX $CXXFLAGS $CPPFLAGS -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
-if { (eval echo "$as_me:24272: \"$ac_try\"") >&5
+if { (eval echo "$as_me:25513: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:24275: \$? = $ac_status" >&5
+ echo "$as_me:25516: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
- test -f conftest2.$ac_objext && { (eval echo "$as_me:24277: \"$ac_try\"") >&5
+ test -f conftest2.$ac_objext && { (eval echo "$as_me:25518: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:24280: \$? = $ac_status" >&5
+ echo "$as_me:25521: \$? = $ac_status" >&5
(exit "$ac_status"); };
then
eval cf_cv_prog_CXX_c_o=yes
@@ -24288,10 +25529,10 @@ rm -rf ./conftest*
fi
if test "$cf_cv_prog_CXX_c_o" = yes; then
- echo "$as_me:24291: result: yes" >&5
+ echo "$as_me:25532: result: yes" >&5
echo "${ECHO_T}yes" >&6
else
- echo "$as_me:24294: result: no" >&5
+ echo "$as_me:25535: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -24311,7 +25552,7 @@ case "$cf_cv_system_name" in
;;
esac
if test "$GXX" = yes; then
- echo "$as_me:24314: checking for lib$cf_gpp_libname" >&5
+ echo "$as_me:25555: checking for lib$cf_gpp_libname" >&5
echo $ECHO_N "checking for lib$cf_gpp_libname... $ECHO_C" >&6
cf_save="$LIBS"
@@ -24332,7 +25573,7 @@ done
LIBS="$cf_add_libs"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 24335 "configure"
+#line 25576 "configure"
#include "confdefs.h"
#include <$cf_gpp_libname/builtin.h>
@@ -24346,16 +25587,16 @@ two_arg_error_handler_t foo2 = lib_error_handler
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:24349: \"$ac_link\"") >&5
+if { (eval echo "$as_me:25590: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:24352: \$? = $ac_status" >&5
+ echo "$as_me:25593: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:24355: \"$ac_try\"") >&5
+ { (eval echo "$as_me:25596: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:24358: \$? = $ac_status" >&5
+ echo "$as_me:25599: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cxx_library=yes
@@ -24392,7 +25633,7 @@ else
echo "$as_me: failed program was:" >&5
cat "conftest.$ac_ext" >&5
cat >"conftest.$ac_ext" <<_ACEOF
-#line 24395 "configure"
+#line 25636 "configure"
#include "confdefs.h"
#include <builtin.h>
@@ -24406,16 +25647,16 @@ two_arg_error_handler_t foo2 = lib_error_handler
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:24409: \"$ac_link\"") >&5
+if { (eval echo "$as_me:25650: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:24412: \$? = $ac_status" >&5
+ echo "$as_me:25653: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:24415: \"$ac_try\"") >&5
+ { (eval echo "$as_me:25656: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:24418: \$? = $ac_status" >&5
+ echo "$as_me:25659: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cxx_library=yes
@@ -24448,7 +25689,7 @@ rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS="$cf_save"
- echo "$as_me:24451: result: $cf_cxx_library" >&5
+ echo "$as_me:25692: result: $cf_cxx_library" >&5
echo "${ECHO_T}$cf_cxx_library" >&6
fi
@@ -24464,7 +25705,7 @@ ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS "conftest.$ac_ext" >&5'
ac_link='$CXX -o "conftest$ac_exeext" $CXXFLAGS $CPPFLAGS $LDFLAGS "conftest.$ac_ext" $LIBS >&5'
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
ac_main_return="return"
-echo "$as_me:24467: checking how to run the C++ preprocessor" >&5
+echo "$as_me:25708: checking how to run the C++ preprocessor" >&5
echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6
if test -z "$CXXCPP"; then
if test "${ac_cv_prog_CXXCPP+set}" = set; then
@@ -24481,18 +25722,18 @@ do
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp. "Syntax error" is here to catch this case.
cat >"conftest.$ac_ext" <<_ACEOF
-#line 24484 "configure"
+#line 25725 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax error
_ACEOF
-if { (eval echo "$as_me:24489: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:25730: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:24495: \$? = $ac_status" >&5
+ echo "$as_me:25736: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_cxx_preproc_warn_flag
@@ -24515,17 +25756,17 @@ rm -f conftest.err "conftest.$ac_ext"
# OK, works on sane cases. Now check whether non-existent headers
# can be detected and how.
cat >"conftest.$ac_ext" <<_ACEOF
-#line 24518 "configure"
+#line 25759 "configure"
#include "confdefs.h"
#include <ac_nonexistent.h>
_ACEOF
-if { (eval echo "$as_me:24522: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:25763: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:24528: \$? = $ac_status" >&5
+ echo "$as_me:25769: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_cxx_preproc_warn_flag
@@ -24562,7 +25803,7 @@ fi
else
ac_cv_prog_CXXCPP=$CXXCPP
fi
-echo "$as_me:24565: result: $CXXCPP" >&5
+echo "$as_me:25806: result: $CXXCPP" >&5
echo "${ECHO_T}$CXXCPP" >&6
ac_preproc_ok=false
for ac_cxx_preproc_warn_flag in '' yes
@@ -24572,18 +25813,18 @@ do
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp. "Syntax error" is here to catch this case.
cat >"conftest.$ac_ext" <<_ACEOF
-#line 24575 "configure"
+#line 25816 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax error
_ACEOF
-if { (eval echo "$as_me:24580: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:25821: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:24586: \$? = $ac_status" >&5
+ echo "$as_me:25827: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_cxx_preproc_warn_flag
@@ -24606,17 +25847,17 @@ rm -f conftest.err "conftest.$ac_ext"
# OK, works on sane cases. Now check whether non-existent headers
# can be detected and how.
cat >"conftest.$ac_ext" <<_ACEOF
-#line 24609 "configure"
+#line 25850 "configure"
#include "confdefs.h"
#include <ac_nonexistent.h>
_ACEOF
-if { (eval echo "$as_me:24613: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:25854: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:24619: \$? = $ac_status" >&5
+ echo "$as_me:25860: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_cxx_preproc_warn_flag
@@ -24644,7 +25885,7 @@ rm -f conftest.err "conftest.$ac_ext"
if $ac_preproc_ok; then
:
else
- { { echo "$as_me:24647: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&5
+ { { echo "$as_me:25888: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&5
echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -24659,23 +25900,23 @@ ac_main_return="return"
for ac_header in typeinfo
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:24662: checking for $ac_header" >&5
+echo "$as_me:25903: checking for $ac_header" >&5
echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 24668 "configure"
+#line 25909 "configure"
#include "confdefs.h"
#include <$ac_header>
_ACEOF
-if { (eval echo "$as_me:24672: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:25913: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:24678: \$? = $ac_status" >&5
+ echo "$as_me:25919: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_cxx_preproc_warn_flag
@@ -24694,7 +25935,7 @@ else
fi
rm -f conftest.err "conftest.$ac_ext"
fi
-echo "$as_me:24697: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
+echo "$as_me:25938: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
echo "${ECHO_T}`eval echo '${'"$as_ac_Header"'}'`" >&6
if test "`eval echo '${'"$as_ac_Header"'}'`" = yes; then
cat >>confdefs.h <<EOF
@@ -24707,23 +25948,23 @@ done
for ac_header in iostream
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:24710: checking for $ac_header" >&5
+echo "$as_me:25951: checking for $ac_header" >&5
echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 24716 "configure"
+#line 25957 "configure"
#include "confdefs.h"
#include <$ac_header>
_ACEOF
-if { (eval echo "$as_me:24720: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:25961: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:24726: \$? = $ac_status" >&5
+ echo "$as_me:25967: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_cxx_preproc_warn_flag
@@ -24742,7 +25983,7 @@ else
fi
rm -f conftest.err "conftest.$ac_ext"
fi
-echo "$as_me:24745: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
+echo "$as_me:25986: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
echo "${ECHO_T}`eval echo '${'"$as_ac_Header"'}'`" >&6
if test "`eval echo '${'"$as_ac_Header"'}'`" = yes; then
cat >>confdefs.h <<EOF
@@ -24753,10 +25994,10 @@ fi
done
if test x"$ac_cv_header_iostream" = xyes ; then
- echo "$as_me:24756: checking if iostream uses std-namespace" >&5
+ echo "$as_me:25997: checking if iostream uses std-namespace" >&5
echo $ECHO_N "checking if iostream uses std-namespace... $ECHO_C" >&6
cat >"conftest.$ac_ext" <<_ACEOF
-#line 24759 "configure"
+#line 26000 "configure"
#include "confdefs.h"
#include <iostream>
@@ -24773,16 +26014,16 @@ cerr << "testing" << endl;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:24776: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:26017: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:24779: \$? = $ac_status" >&5
+ echo "$as_me:26020: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:24782: \"$ac_try\"") >&5
+ { (eval echo "$as_me:26023: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:24785: \$? = $ac_status" >&5
+ echo "$as_me:26026: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_iostream_namespace=yes
else
@@ -24791,7 +26032,7 @@ cat "conftest.$ac_ext" >&5
cf_iostream_namespace=no
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
- echo "$as_me:24794: result: $cf_iostream_namespace" >&5
+ echo "$as_me:26035: result: $cf_iostream_namespace" >&5
echo "${ECHO_T}$cf_iostream_namespace" >&6
if test "$cf_iostream_namespace" = yes ; then
@@ -24802,7 +26043,7 @@ EOF
fi
fi
-echo "$as_me:24805: checking if we should include stdbool.h" >&5
+echo "$as_me:26046: checking if we should include stdbool.h" >&5
echo $ECHO_N "checking if we should include stdbool.h... $ECHO_C" >&6
if test "${cf_cv_header_stdbool_h+set}" = set; then
@@ -24810,35 +26051,35 @@ if test "${cf_cv_header_stdbool_h+set}" = set; then
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 24813 "configure"
+#line 26054 "configure"
#include "confdefs.h"
int
main (void)
{
-bool foo = false
+bool foo = false; (void)foo
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:24825: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:26066: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:24828: \$? = $ac_status" >&5
+ echo "$as_me:26069: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:24831: \"$ac_try\"") >&5
+ { (eval echo "$as_me:26072: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:24834: \$? = $ac_status" >&5
+ echo "$as_me:26075: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_header_stdbool_h=0
else
echo "$as_me: failed program was:" >&5
cat "conftest.$ac_ext" >&5
cat >"conftest.$ac_ext" <<_ACEOF
-#line 24841 "configure"
+#line 26082 "configure"
#include "confdefs.h"
#ifndef __BEOS__
@@ -24848,22 +26089,22 @@ cat >"conftest.$ac_ext" <<_ACEOF
int
main (void)
{
-bool foo = false
+bool foo = false; (void)foo
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:24857: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:26098: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:24860: \$? = $ac_status" >&5
+ echo "$as_me:26101: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:24863: \"$ac_try\"") >&5
+ { (eval echo "$as_me:26104: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:24866: \$? = $ac_status" >&5
+ echo "$as_me:26107: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_header_stdbool_h=1
else
@@ -24877,13 +26118,13 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
if test "$cf_cv_header_stdbool_h" = 1
-then echo "$as_me:24880: result: yes" >&5
+then echo "$as_me:26121: result: yes" >&5
echo "${ECHO_T}yes" >&6
-else echo "$as_me:24882: result: no" >&5
+else echo "$as_me:26123: result: no" >&5
echo "${ECHO_T}no" >&6
fi
-echo "$as_me:24886: checking for builtin bool type" >&5
+echo "$as_me:26127: checking for builtin bool type" >&5
echo $ECHO_N "checking for builtin bool type... $ECHO_C" >&6
if test "${cf_cv_builtin_bool+set}" = set; then
@@ -24891,7 +26132,7 @@ if test "${cf_cv_builtin_bool+set}" = set; then
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 24894 "configure"
+#line 26135 "configure"
#include "confdefs.h"
#include <stdio.h>
@@ -24900,22 +26141,22 @@ else
int
main (void)
{
-bool x = false
+bool x = false; (void)x
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:24909: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:26150: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:24912: \$? = $ac_status" >&5
+ echo "$as_me:26153: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:24915: \"$ac_try\"") >&5
+ { (eval echo "$as_me:26156: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:24918: \$? = $ac_status" >&5
+ echo "$as_me:26159: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_builtin_bool=1
else
@@ -24928,23 +26169,22 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
if test "$cf_cv_builtin_bool" = 1
-then echo "$as_me:24931: result: yes" >&5
+then echo "$as_me:26172: result: yes" >&5
echo "${ECHO_T}yes" >&6
-else echo "$as_me:24933: result: no" >&5
+else echo "$as_me:26174: result: no" >&5
echo "${ECHO_T}no" >&6
fi
-echo "$as_me:24937: checking for bool" >&5
+echo "$as_me:26178: checking for bool" >&5
echo $ECHO_N "checking for bool... $ECHO_C" >&6
if test "${ac_cv_type_bool+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 24943 "configure"
+#line 26184 "configure"
#include "confdefs.h"
-#include <stdlib.h>
-#include <stdio.h>
+$ac_includes_default
#if defined(__cplusplus)
@@ -24976,16 +26216,16 @@ if (sizeof (bool))
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:24979: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:26219: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:24982: \$? = $ac_status" >&5
+ echo "$as_me:26222: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:24985: \"$ac_try\"") >&5
+ { (eval echo "$as_me:26225: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:24988: \$? = $ac_status" >&5
+ echo "$as_me:26228: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_type_bool=yes
else
@@ -24995,10 +26235,10 @@ ac_cv_type_bool=no
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:24998: result: $ac_cv_type_bool" >&5
+echo "$as_me:26238: result: $ac_cv_type_bool" >&5
echo "${ECHO_T}$ac_cv_type_bool" >&6
-echo "$as_me:25001: checking size of bool" >&5
+echo "$as_me:26241: checking size of bool" >&5
echo $ECHO_N "checking size of bool... $ECHO_C" >&6
if test "${ac_cv_sizeof_bool+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -25007,11 +26247,10 @@ else
if test "$cross_compiling" = yes; then
# Depending upon the size, compute the lo and hi bounds.
cat >"conftest.$ac_ext" <<_ACEOF
-#line 25010 "configure"
+#line 26250 "configure"
#include "confdefs.h"
-#include <stdlib.h>
-#include <stdio.h>
+$ac_includes_default
#if defined(__cplusplus)
@@ -25040,25 +26279,24 @@ int _array_ [1 - 2 * !((sizeof (bool)) >= 0)]
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:25043: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:26282: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:25046: \$? = $ac_status" >&5
+ echo "$as_me:26285: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:25049: \"$ac_try\"") >&5
+ { (eval echo "$as_me:26288: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:25052: \$? = $ac_status" >&5
+ echo "$as_me:26291: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_lo=0 ac_mid=0
while :; do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 25057 "configure"
+#line 26296 "configure"
#include "confdefs.h"
-#include <stdlib.h>
-#include <stdio.h>
+$ac_includes_default
#if defined(__cplusplus)
@@ -25087,16 +26325,16 @@ int _array_ [1 - 2 * !((sizeof (bool)) <= $ac_mid)]
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:25090: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:26328: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:25093: \$? = $ac_status" >&5
+ echo "$as_me:26331: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:25096: \"$ac_try\"") >&5
+ { (eval echo "$as_me:26334: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:25099: \$? = $ac_status" >&5
+ echo "$as_me:26337: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_hi=$ac_mid; break
else
@@ -25112,11 +26350,10 @@ cat "conftest.$ac_ext" >&5
ac_hi=-1 ac_mid=-1
while :; do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 25115 "configure"
+#line 26353 "configure"
#include "confdefs.h"
-#include <stdlib.h>
-#include <stdio.h>
+$ac_includes_default
#if defined(__cplusplus)
@@ -25145,16 +26382,16 @@ int _array_ [1 - 2 * !((sizeof (bool)) >= $ac_mid)]
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:25148: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:26385: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:25151: \$? = $ac_status" >&5
+ echo "$as_me:26388: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:25154: \"$ac_try\"") >&5
+ { (eval echo "$as_me:26391: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:25157: \$? = $ac_status" >&5
+ echo "$as_me:26394: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_lo=$ac_mid; break
else
@@ -25170,11 +26407,10 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
while test "x$ac_lo" != "x$ac_hi"; do
ac_mid=`expr '(' "$ac_hi" - "$ac_lo" ')' / 2 + "$ac_lo"`
cat >"conftest.$ac_ext" <<_ACEOF
-#line 25173 "configure"
+#line 26410 "configure"
#include "confdefs.h"
-#include <stdlib.h>
-#include <stdio.h>
+$ac_includes_default
#if defined(__cplusplus)
@@ -25203,16 +26439,16 @@ int _array_ [1 - 2 * !((sizeof (bool)) <= $ac_mid)]
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:25206: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:26442: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:25209: \$? = $ac_status" >&5
+ echo "$as_me:26445: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:25212: \"$ac_try\"") >&5
+ { (eval echo "$as_me:26448: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:25215: \$? = $ac_status" >&5
+ echo "$as_me:26451: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_hi=$ac_mid
else
@@ -25225,16 +26461,15 @@ done
ac_cv_sizeof_bool=$ac_lo
else
if test "$cross_compiling" = yes; then
- { { echo "$as_me:25228: error: cannot run test program while cross compiling" >&5
+ { { echo "$as_me:26464: error: cannot run test program while cross compiling" >&5
echo "$as_me: error: cannot run test program while cross compiling" >&2;}
{ (exit 1); exit 1; }; }
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 25233 "configure"
+#line 26469 "configure"
#include "confdefs.h"
-#include <stdlib.h>
-#include <stdio.h>
+$ac_includes_default
#if defined(__cplusplus)
@@ -25260,22 +26495,22 @@ main (void)
FILE *f = fopen ("conftest.val", "w");
if (!f)
$ac_main_return (1);
-fprintf (f, "%d", (sizeof (bool)));
+fprintf (f, "%ld", (long)(sizeof (bool)));
fclose (f);
;
return 0;
}
_ACEOF
rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:25270: \"$ac_link\"") >&5
+if { (eval echo "$as_me:26505: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:25273: \$? = $ac_status" >&5
+ echo "$as_me:26508: \$? = $ac_status" >&5
(exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:25275: \"$ac_try\"") >&5
+ { (eval echo "$as_me:26510: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:25278: \$? = $ac_status" >&5
+ echo "$as_me:26513: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_sizeof_bool=`cat conftest.val`
else
@@ -25291,13 +26526,13 @@ else
ac_cv_sizeof_bool=0
fi
fi
-echo "$as_me:25294: result: $ac_cv_sizeof_bool" >&5
+echo "$as_me:26529: result: $ac_cv_sizeof_bool" >&5
echo "${ECHO_T}$ac_cv_sizeof_bool" >&6
cat >>confdefs.h <<EOF
#define SIZEOF_BOOL $ac_cv_sizeof_bool
EOF
-echo "$as_me:25300: checking for type of bool" >&5
+echo "$as_me:26535: checking for type of bool" >&5
echo $ECHO_N "checking for type of bool... $ECHO_C" >&6
if test "${cf_cv_type_of_bool+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -25316,11 +26551,10 @@ else
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 25319 "configure"
+#line 26554 "configure"
#include "confdefs.h"
-#include <stdlib.h>
-#include <stdio.h>
+$ac_includes_default
#if defined(__cplusplus)
@@ -25358,15 +26592,15 @@ int main(void)
_ACEOF
rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:25361: \"$ac_link\"") >&5
+if { (eval echo "$as_me:26595: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:25364: \$? = $ac_status" >&5
+ echo "$as_me:26598: \$? = $ac_status" >&5
(exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:25366: \"$ac_try\"") >&5
+ { (eval echo "$as_me:26600: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:25369: \$? = $ac_status" >&5
+ echo "$as_me:26603: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_type_of_bool=`cat cf_test.out`
if test -z "$cf_cv_type_of_bool"; then
@@ -25383,19 +26617,19 @@ fi
rm -f cf_test.out
fi
-echo "$as_me:25386: result: $cf_cv_type_of_bool" >&5
+echo "$as_me:26620: result: $cf_cv_type_of_bool" >&5
echo "${ECHO_T}$cf_cv_type_of_bool" >&6
if test "$cf_cv_type_of_bool" = unknown ; then
case .$NCURSES_BOOL in
(.auto|.) NCURSES_BOOL=unsigned;;
esac
- { echo "$as_me:25393: WARNING: Assuming $NCURSES_BOOL for type of bool" >&5
+ { echo "$as_me:26627: WARNING: Assuming $NCURSES_BOOL for type of bool" >&5
echo "$as_me: WARNING: Assuming $NCURSES_BOOL for type of bool" >&2;}
cf_cv_type_of_bool=$NCURSES_BOOL
fi
-echo "$as_me:25398: checking for special defines needed for etip.h" >&5
+echo "$as_me:26632: checking for special defines needed for etip.h" >&5
echo $ECHO_N "checking for special defines needed for etip.h... $ECHO_C" >&6
cf_save_CXXFLAGS="$CXXFLAGS"
cf_result="none"
@@ -25413,7 +26647,7 @@ do
test -n "$cf_math" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_math}"
test -n "$cf_excp" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_excp}"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 25416 "configure"
+#line 26650 "configure"
#include "confdefs.h"
#include <etip.h.in>
@@ -25427,16 +26661,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:25430: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:26664: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:25433: \$? = $ac_status" >&5
+ echo "$as_me:26667: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:25436: \"$ac_try\"") >&5
+ { (eval echo "$as_me:26670: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:25439: \$? = $ac_status" >&5
+ echo "$as_me:26673: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
test -n "$cf_math" && cat >>confdefs.h <<EOF
@@ -25457,12 +26691,84 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
done
done
-echo "$as_me:25460: result: $cf_result" >&5
-echo "${ECHO_T}$cf_result" >&6
+echo "$as_me:26694: result: ${cf_result:-(none)}" >&5
+echo "${ECHO_T}${cf_result:-(none)}" >&6
CXXFLAGS="$cf_save_CXXFLAGS"
if test -n "$CXX"; then
-echo "$as_me:25465: checking if $CXX accepts parameter initialization" >&5
+echo "$as_me:26699: checking if $CXX accepts override keyword" >&5
+echo $ECHO_N "checking if $CXX accepts override keyword... $ECHO_C" >&6
+if test "${cf_cv_cpp_override+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+ ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS "conftest.$ac_ext" >&5'
+ac_link='$CXX -o "conftest$ac_exeext" $CXXFLAGS $CPPFLAGS $LDFLAGS "conftest.$ac_ext" $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+ac_main_return="return"
+
+ if test "$cross_compiling" = yes; then
+ cf_cv_cpp_override=unknown
+else
+ cat >"conftest.$ac_ext" <<_ACEOF
+#line 26716 "configure"
+#include "confdefs.h"
+
+class base
+{
+public:
+ virtual int foo(float x) = 0;
+};
+
+class derived: public base
+{
+public:
+ int foo(float x) override { return x != 0.0 ? 1 : 0; }
+};
+
+int main(void) { }
+
+_ACEOF
+rm -f "conftest$ac_exeext"
+if { (eval echo "$as_me:26735: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:26738: \$? = $ac_status" >&5
+ (exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
+ { (eval echo "$as_me:26740: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:26743: \$? = $ac_status" >&5
+ (exit "$ac_status"); }; }; then
+ cf_cv_cpp_override=yes
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+cat "conftest.$ac_ext" >&5
+cf_cv_cpp_override=no
+fi
+rm -f core ./core.* ./*.core "conftest$ac_exeext" "conftest.$ac_objext" "conftest.$ac_ext"
+fi
+ ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS "conftest.$ac_ext" >&5'
+ac_link='$CXX -o "conftest$ac_exeext" $CXXFLAGS $CPPFLAGS $LDFLAGS "conftest.$ac_ext" $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+ac_main_return="return"
+
+fi
+echo "$as_me:26762: result: $cf_cv_cpp_override" >&5
+echo "${ECHO_T}$cf_cv_cpp_override" >&6
+fi
+test "$cf_cv_cpp_override" = yes &&
+cat >>confdefs.h <<\EOF
+#define CPP_HAS_OVERRIDE 1
+EOF
+
+if test -n "$CXX"; then
+echo "$as_me:26771: checking if $CXX accepts parameter initialization" >&5
echo $ECHO_N "checking if $CXX accepts parameter initialization... $ECHO_C" >&6
if test "${cf_cv_cpp_param_init+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -25479,7 +26785,7 @@ ac_main_return="return"
cf_cv_cpp_param_init=unknown
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 25482 "configure"
+#line 26788 "configure"
#include "confdefs.h"
class TEST {
@@ -25498,15 +26804,15 @@ int main(void) { }
_ACEOF
rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:25501: \"$ac_link\"") >&5
+if { (eval echo "$as_me:26807: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:25504: \$? = $ac_status" >&5
+ echo "$as_me:26810: \$? = $ac_status" >&5
(exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:25506: \"$ac_try\"") >&5
+ { (eval echo "$as_me:26812: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:25509: \$? = $ac_status" >&5
+ echo "$as_me:26815: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_cpp_param_init=yes
else
@@ -25525,7 +26831,7 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
ac_main_return="return"
fi
-echo "$as_me:25528: result: $cf_cv_cpp_param_init" >&5
+echo "$as_me:26834: result: $cf_cv_cpp_param_init" >&5
echo "${ECHO_T}$cf_cv_cpp_param_init" >&6
fi
test "$cf_cv_cpp_param_init" = yes &&
@@ -25535,7 +26841,7 @@ EOF
if test -n "$CXX"; then
-echo "$as_me:25538: checking if $CXX accepts static_cast" >&5
+echo "$as_me:26844: checking if $CXX accepts static_cast" >&5
echo $ECHO_N "checking if $CXX accepts static_cast... $ECHO_C" >&6
if test "${cf_cv_cpp_static_cast+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -25549,7 +26855,7 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
ac_main_return="return"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 25552 "configure"
+#line 26858 "configure"
#include "confdefs.h"
class NCursesPanel
@@ -25593,16 +26899,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:25596: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:26902: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:25599: \$? = $ac_status" >&5
+ echo "$as_me:26905: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:25602: \"$ac_try\"") >&5
+ { (eval echo "$as_me:26908: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:25605: \$? = $ac_status" >&5
+ echo "$as_me:26911: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_cpp_static_cast=yes
else
@@ -25620,7 +26926,7 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
ac_main_return="return"
fi
-echo "$as_me:25623: result: $cf_cv_cpp_static_cast" >&5
+echo "$as_me:26929: result: $cf_cv_cpp_static_cast" >&5
echo "${ECHO_T}$cf_cv_cpp_static_cast" >&6
fi
@@ -25669,17 +26975,16 @@ else
else
if test "$cf_cv_header_stdbool_h" = 1 ; then
-echo "$as_me:25672: checking for bool" >&5
+echo "$as_me:26978: checking for bool" >&5
echo $ECHO_N "checking for bool... $ECHO_C" >&6
if test "${ac_cv_type_bool+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 25678 "configure"
+#line 26984 "configure"
#include "confdefs.h"
-#include <stdlib.h>
-#include <stdio.h>
+$ac_includes_default
#if defined(__cplusplus)
@@ -25711,16 +27016,16 @@ if (sizeof (bool))
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:25714: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:27019: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:25717: \$? = $ac_status" >&5
+ echo "$as_me:27022: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:25720: \"$ac_try\"") >&5
+ { (eval echo "$as_me:27025: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:25723: \$? = $ac_status" >&5
+ echo "$as_me:27028: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_type_bool=yes
else
@@ -25730,10 +27035,10 @@ ac_cv_type_bool=no
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:25733: result: $ac_cv_type_bool" >&5
+echo "$as_me:27038: result: $ac_cv_type_bool" >&5
echo "${ECHO_T}$ac_cv_type_bool" >&6
-echo "$as_me:25736: checking size of bool" >&5
+echo "$as_me:27041: checking size of bool" >&5
echo $ECHO_N "checking size of bool... $ECHO_C" >&6
if test "${ac_cv_sizeof_bool+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -25742,11 +27047,10 @@ else
if test "$cross_compiling" = yes; then
# Depending upon the size, compute the lo and hi bounds.
cat >"conftest.$ac_ext" <<_ACEOF
-#line 25745 "configure"
+#line 27050 "configure"
#include "confdefs.h"
-#include <stdlib.h>
-#include <stdio.h>
+$ac_includes_default
#if defined(__cplusplus)
@@ -25775,25 +27079,24 @@ int _array_ [1 - 2 * !((sizeof (bool)) >= 0)]
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:25778: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:27082: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:25781: \$? = $ac_status" >&5
+ echo "$as_me:27085: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:25784: \"$ac_try\"") >&5
+ { (eval echo "$as_me:27088: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:25787: \$? = $ac_status" >&5
+ echo "$as_me:27091: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_lo=0 ac_mid=0
while :; do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 25792 "configure"
+#line 27096 "configure"
#include "confdefs.h"
-#include <stdlib.h>
-#include <stdio.h>
+$ac_includes_default
#if defined(__cplusplus)
@@ -25822,16 +27125,16 @@ int _array_ [1 - 2 * !((sizeof (bool)) <= $ac_mid)]
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:25825: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:27128: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:25828: \$? = $ac_status" >&5
+ echo "$as_me:27131: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:25831: \"$ac_try\"") >&5
+ { (eval echo "$as_me:27134: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:25834: \$? = $ac_status" >&5
+ echo "$as_me:27137: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_hi=$ac_mid; break
else
@@ -25847,11 +27150,10 @@ cat "conftest.$ac_ext" >&5
ac_hi=-1 ac_mid=-1
while :; do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 25850 "configure"
+#line 27153 "configure"
#include "confdefs.h"
-#include <stdlib.h>
-#include <stdio.h>
+$ac_includes_default
#if defined(__cplusplus)
@@ -25880,16 +27182,16 @@ int _array_ [1 - 2 * !((sizeof (bool)) >= $ac_mid)]
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:25883: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:27185: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:25886: \$? = $ac_status" >&5
+ echo "$as_me:27188: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:25889: \"$ac_try\"") >&5
+ { (eval echo "$as_me:27191: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:25892: \$? = $ac_status" >&5
+ echo "$as_me:27194: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_lo=$ac_mid; break
else
@@ -25905,11 +27207,10 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
while test "x$ac_lo" != "x$ac_hi"; do
ac_mid=`expr '(' "$ac_hi" - "$ac_lo" ')' / 2 + "$ac_lo"`
cat >"conftest.$ac_ext" <<_ACEOF
-#line 25908 "configure"
+#line 27210 "configure"
#include "confdefs.h"
-#include <stdlib.h>
-#include <stdio.h>
+$ac_includes_default
#if defined(__cplusplus)
@@ -25938,16 +27239,16 @@ int _array_ [1 - 2 * !((sizeof (bool)) <= $ac_mid)]
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:25941: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:27242: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:25944: \$? = $ac_status" >&5
+ echo "$as_me:27245: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:25947: \"$ac_try\"") >&5
+ { (eval echo "$as_me:27248: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:25950: \$? = $ac_status" >&5
+ echo "$as_me:27251: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_hi=$ac_mid
else
@@ -25960,16 +27261,15 @@ done
ac_cv_sizeof_bool=$ac_lo
else
if test "$cross_compiling" = yes; then
- { { echo "$as_me:25963: error: cannot run test program while cross compiling" >&5
+ { { echo "$as_me:27264: error: cannot run test program while cross compiling" >&5
echo "$as_me: error: cannot run test program while cross compiling" >&2;}
{ (exit 1); exit 1; }; }
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 25968 "configure"
+#line 27269 "configure"
#include "confdefs.h"
-#include <stdlib.h>
-#include <stdio.h>
+$ac_includes_default
#if defined(__cplusplus)
@@ -25995,22 +27295,22 @@ main (void)
FILE *f = fopen ("conftest.val", "w");
if (!f)
$ac_main_return (1);
-fprintf (f, "%d", (sizeof (bool)));
+fprintf (f, "%ld", (long)(sizeof (bool)));
fclose (f);
;
return 0;
}
_ACEOF
rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:26005: \"$ac_link\"") >&5
+if { (eval echo "$as_me:27305: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:26008: \$? = $ac_status" >&5
+ echo "$as_me:27308: \$? = $ac_status" >&5
(exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:26010: \"$ac_try\"") >&5
+ { (eval echo "$as_me:27310: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:26013: \$? = $ac_status" >&5
+ echo "$as_me:27313: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_sizeof_bool=`cat conftest.val`
else
@@ -26026,13 +27326,13 @@ else
ac_cv_sizeof_bool=0
fi
fi
-echo "$as_me:26029: result: $ac_cv_sizeof_bool" >&5
+echo "$as_me:27329: result: $ac_cv_sizeof_bool" >&5
echo "${ECHO_T}$ac_cv_sizeof_bool" >&6
cat >>confdefs.h <<EOF
#define SIZEOF_BOOL $ac_cv_sizeof_bool
EOF
-echo "$as_me:26035: checking for type of bool" >&5
+echo "$as_me:27335: checking for type of bool" >&5
echo $ECHO_N "checking for type of bool... $ECHO_C" >&6
if test "${cf_cv_type_of_bool+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -26051,11 +27351,10 @@ else
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 26054 "configure"
+#line 27354 "configure"
#include "confdefs.h"
-#include <stdlib.h>
-#include <stdio.h>
+$ac_includes_default
#if defined(__cplusplus)
@@ -26093,15 +27392,15 @@ int main(void)
_ACEOF
rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:26096: \"$ac_link\"") >&5
+if { (eval echo "$as_me:27395: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:26099: \$? = $ac_status" >&5
+ echo "$as_me:27398: \$? = $ac_status" >&5
(exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:26101: \"$ac_try\"") >&5
+ { (eval echo "$as_me:27400: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:26104: \$? = $ac_status" >&5
+ echo "$as_me:27403: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_type_of_bool=`cat cf_test.out`
if test -z "$cf_cv_type_of_bool"; then
@@ -26118,26 +27417,26 @@ fi
rm -f cf_test.out
fi
-echo "$as_me:26121: result: $cf_cv_type_of_bool" >&5
+echo "$as_me:27420: result: $cf_cv_type_of_bool" >&5
echo "${ECHO_T}$cf_cv_type_of_bool" >&6
if test "$cf_cv_type_of_bool" = unknown ; then
case .$NCURSES_BOOL in
(.auto|.) NCURSES_BOOL=unsigned;;
esac
- { echo "$as_me:26128: WARNING: Assuming $NCURSES_BOOL for type of bool" >&5
+ { echo "$as_me:27427: WARNING: Assuming $NCURSES_BOOL for type of bool" >&5
echo "$as_me: WARNING: Assuming $NCURSES_BOOL for type of bool" >&2;}
cf_cv_type_of_bool=$NCURSES_BOOL
fi
else
- echo "$as_me:26134: checking for fallback type of bool" >&5
+ echo "$as_me:27433: checking for fallback type of bool" >&5
echo $ECHO_N "checking for fallback type of bool... $ECHO_C" >&6
case "$host_cpu" in
(i?86) cf_cv_type_of_bool=char ;;
(*) cf_cv_type_of_bool=int ;;
esac
- echo "$as_me:26140: result: $cf_cv_type_of_bool" >&5
+ echo "$as_me:27439: result: $cf_cv_type_of_bool" >&5
echo "${ECHO_T}$cf_cv_type_of_bool" >&6
fi
fi
@@ -26166,7 +27465,7 @@ if test -f "${srcdir}/Ada95/Makefile.in" ; then
if test "$cf_with_ada" != "no" ; then
if test "$with_libtool" != "no"; then
- { echo "$as_me:26169: WARNING: libtool does not support Ada - disabling feature" >&5
+ { echo "$as_me:27468: WARNING: libtool does not support Ada - disabling feature" >&5
echo "$as_me: WARNING: libtool does not support Ada - disabling feature" >&2;}
cf_with_ada=no
fi
@@ -26183,7 +27482,7 @@ cf_upper_prog_gnat=`echo "${cf_prog_gnat}" | sed y%abcdefghijklmnopqrstuvwxyz./-
unset cf_TEMP_gnat
# Extract the first word of "$cf_prog_gnat", so it can be a program name with args.
set dummy $cf_prog_gnat; ac_word=$2
-echo "$as_me:26186: checking for $ac_word" >&5
+echo "$as_me:27485: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_path_cf_TEMP_gnat+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -26200,7 +27499,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
if $as_executable_p "$ac_dir/$ac_word"; then
ac_cv_path_cf_TEMP_gnat="$ac_dir/$ac_word"
- echo "$as_me:26203: found $ac_dir/$ac_word" >&5
+ echo "$as_me:27502: found $ac_dir/$ac_word" >&5
break
fi
done
@@ -26212,10 +27511,10 @@ fi
cf_TEMP_gnat=$ac_cv_path_cf_TEMP_gnat
if test -n "$cf_TEMP_gnat"; then
- echo "$as_me:26215: result: $cf_TEMP_gnat" >&5
+ echo "$as_me:27514: result: $cf_TEMP_gnat" >&5
echo "${ECHO_T}$cf_TEMP_gnat" >&6
else
- echo "$as_me:26218: result: no" >&5
+ echo "$as_me:27517: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -26225,7 +27524,7 @@ fi
unset cf_cv_gnat_version
unset cf_TEMP_gnat
-echo "$as_me:26228: checking for $cf_prog_gnat version" >&5
+echo "$as_me:27527: checking for $cf_prog_gnat version" >&5
echo $ECHO_N "checking for $cf_prog_gnat version... $ECHO_C" >&6
if test "${cf_cv_gnat_version+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -26236,7 +27535,7 @@ cf_cv_gnat_version=`$cf_prog_gnat --version 2>&1 | \
sed -e '2,$d' -e 's/[^0-9 \.]//g' -e 's/^[ ]*//' -e 's/ .*//'`
fi
-echo "$as_me:26239: result: $cf_cv_gnat_version" >&5
+echo "$as_me:27538: result: $cf_cv_gnat_version" >&5
echo "${ECHO_T}$cf_cv_gnat_version" >&6
test -z "$cf_cv_gnat_version" && cf_cv_gnat_version=no
eval cf_TEMP_gnat=$cf_cv_gnat_version; unset cf_cv_gnat_version
@@ -26265,7 +27564,7 @@ else
cd conftest.src
for cf_gprconfig in Ada C
do
- echo "$as_me:26268: checking for gprconfig name for $cf_gprconfig" >&5
+ echo "$as_me:27567: checking for gprconfig name for $cf_gprconfig" >&5
echo $ECHO_N "checking for gprconfig name for $cf_gprconfig... $ECHO_C" >&6
if test "$cf_gprconfig" = C
then
@@ -26284,10 +27583,10 @@ echo $ECHO_N "checking for gprconfig name for $cf_gprconfig... $ECHO_C" >&6
if test -n "$cf_gprconfig_value"
then
eval "cf_ada_config_$cf_gprconfig=$cf_gprconfig_value"
- echo "$as_me:26287: result: $cf_gprconfig_value" >&5
+ echo "$as_me:27586: result: $cf_gprconfig_value" >&5
echo "${ECHO_T}$cf_gprconfig_value" >&6
else
- echo "$as_me:26290: result: missing" >&5
+ echo "$as_me:27589: result: missing" >&5
echo "${ECHO_T}missing" >&6
cf_ada_config="#"
break
@@ -26300,7 +27599,7 @@ echo "${ECHO_T}missing" >&6
if test "x$cf_ada_config" != "x#"
then
-echo "$as_me:26303: checking for gnat version" >&5
+echo "$as_me:27602: checking for gnat version" >&5
echo $ECHO_N "checking for gnat version... $ECHO_C" >&6
if test "${cf_cv_gnat_version+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -26311,7 +27610,7 @@ cf_cv_gnat_version=`${cf_ada_make:-gnatmake} --version 2>&1 | \
sed -e '2,$d' -e 's/[^0-9 \.]//g' -e 's/^[ ]*//' -e 's/ .*//'`
fi
-echo "$as_me:26314: result: $cf_cv_gnat_version" >&5
+echo "$as_me:27613: result: $cf_cv_gnat_version" >&5
echo "${ECHO_T}$cf_cv_gnat_version" >&6
test -z "$cf_cv_gnat_version" && cf_cv_gnat_version=no
@@ -26320,7 +27619,7 @@ case "$cf_cv_gnat_version" in
cf_cv_prog_gnat_correct=yes
;;
(*)
- { echo "$as_me:26323: WARNING: Unsupported GNAT version $cf_cv_gnat_version. We require 3.11 or better. Disabling Ada95 binding." >&5
+ { echo "$as_me:27622: WARNING: Unsupported GNAT version $cf_cv_gnat_version. We require 3.11 or better. Disabling Ada95 binding." >&5
echo "$as_me: WARNING: Unsupported GNAT version $cf_cv_gnat_version. We require 3.11 or better. Disabling Ada95 binding." >&2;}
cf_cv_prog_gnat_correct=no
;;
@@ -26328,7 +27627,7 @@ esac
# Extract the first word of "m4", so it can be a program name with args.
set dummy m4; ac_word=$2
-echo "$as_me:26331: checking for $ac_word" >&5
+echo "$as_me:27630: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_M4_exists+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -26343,7 +27642,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_M4_exists="yes"
-echo "$as_me:26346: found $ac_dir/$ac_word" >&5
+echo "$as_me:27645: found $ac_dir/$ac_word" >&5
break
done
@@ -26352,20 +27651,20 @@ fi
fi
M4_exists=$ac_cv_prog_M4_exists
if test -n "$M4_exists"; then
- echo "$as_me:26355: result: $M4_exists" >&5
+ echo "$as_me:27654: result: $M4_exists" >&5
echo "${ECHO_T}$M4_exists" >&6
else
- echo "$as_me:26358: result: no" >&5
+ echo "$as_me:27657: result: no" >&5
echo "${ECHO_T}no" >&6
fi
if test "$ac_cv_prog_M4_exists" = no; then
cf_cv_prog_gnat_correct=no
- { echo "$as_me:26364: WARNING: Ada95 binding required program m4 not found. Ada95 binding disabled" >&5
+ { echo "$as_me:27663: WARNING: Ada95 binding required program m4 not found. Ada95 binding disabled" >&5
echo "$as_me: WARNING: Ada95 binding required program m4 not found. Ada95 binding disabled" >&2;}
fi
if test "$cf_cv_prog_gnat_correct" = yes; then
- echo "$as_me:26368: checking if GNAT works" >&5
+ echo "$as_me:27667: checking if GNAT works" >&5
echo $ECHO_N "checking if GNAT works... $ECHO_C" >&6
rm -rf ./conftest* ./*~conftest*
@@ -26393,7 +27692,7 @@ else
fi
rm -rf ./conftest* ./*~conftest*
- echo "$as_me:26396: result: $cf_cv_prog_gnat_correct" >&5
+ echo "$as_me:27695: result: $cf_cv_prog_gnat_correct" >&5
echo "${ECHO_T}$cf_cv_prog_gnat_correct" >&6
fi
else
@@ -26405,7 +27704,7 @@ fi
ADAFLAGS="$ADAFLAGS -gnatpn"
- echo "$as_me:26408: checking optimization options for ADAFLAGS" >&5
+ echo "$as_me:27707: checking optimization options for ADAFLAGS" >&5
echo $ECHO_N "checking optimization options for ADAFLAGS... $ECHO_C" >&6
case "$CFLAGS" in
(*-g*)
@@ -26422,10 +27721,10 @@ echo $ECHO_N "checking optimization options for ADAFLAGS... $ECHO_C" >&6
;;
esac
- echo "$as_me:26425: result: $ADAFLAGS" >&5
+ echo "$as_me:27724: result: $ADAFLAGS" >&5
echo "${ECHO_T}$ADAFLAGS" >&6
-echo "$as_me:26428: checking if GNATPREP supports -T option" >&5
+echo "$as_me:27727: checking if GNATPREP supports -T option" >&5
echo $ECHO_N "checking if GNATPREP supports -T option... $ECHO_C" >&6
if test "${cf_cv_gnatprep_opt_t+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -26435,11 +27734,11 @@ cf_cv_gnatprep_opt_t=no
gnatprep -T 2>/dev/null >/dev/null && cf_cv_gnatprep_opt_t=yes
fi
-echo "$as_me:26438: result: $cf_cv_gnatprep_opt_t" >&5
+echo "$as_me:27737: result: $cf_cv_gnatprep_opt_t" >&5
echo "${ECHO_T}$cf_cv_gnatprep_opt_t" >&6
test "$cf_cv_gnatprep_opt_t" = yes && GNATPREP_OPTS="-T $GNATPREP_OPTS"
-echo "$as_me:26442: checking if GNAT supports generics" >&5
+echo "$as_me:27741: checking if GNAT supports generics" >&5
echo $ECHO_N "checking if GNAT supports generics... $ECHO_C" >&6
case "$cf_cv_gnat_version" in
(3.1[1-9]*|3.[2-9]*|[4-9].*|[1-9][0-9].[0-9]*|20[0-9][0-9])
@@ -26449,7 +27748,7 @@ case "$cf_cv_gnat_version" in
cf_gnat_generics=no
;;
esac
-echo "$as_me:26452: result: $cf_gnat_generics" >&5
+echo "$as_me:27751: result: $cf_gnat_generics" >&5
echo "${ECHO_T}$cf_gnat_generics" >&6
if test "$cf_gnat_generics" = yes
@@ -26461,7 +27760,7 @@ else
cf_generic_objects=
fi
-echo "$as_me:26464: checking if GNAT supports SIGINT" >&5
+echo "$as_me:27763: checking if GNAT supports SIGINT" >&5
echo $ECHO_N "checking if GNAT supports SIGINT... $ECHO_C" >&6
if test "${cf_cv_gnat_sigint+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -26509,7 +27808,7 @@ fi
rm -rf ./conftest* ./*~conftest*
fi
-echo "$as_me:26512: result: $cf_cv_gnat_sigint" >&5
+echo "$as_me:27811: result: $cf_cv_gnat_sigint" >&5
echo "${ECHO_T}$cf_cv_gnat_sigint" >&6
if test "$cf_cv_gnat_sigint" = yes ; then
@@ -26522,7 +27821,7 @@ cf_gnat_libraries=no
cf_gnat_projects=no
if test "$enable_gnat_projects" != no ; then
-echo "$as_me:26525: checking if GNAT supports project files" >&5
+echo "$as_me:27824: checking if GNAT supports project files" >&5
echo $ECHO_N "checking if GNAT supports project files... $ECHO_C" >&6
case "$cf_cv_gnat_version" in
(3.[0-9]*)
@@ -26585,15 +27884,15 @@ CF_EOF
esac
;;
esac
-echo "$as_me:26588: result: $cf_gnat_projects" >&5
+echo "$as_me:27887: result: $cf_gnat_projects" >&5
echo "${ECHO_T}$cf_gnat_projects" >&6
fi # enable_gnat_projects
if test "$cf_gnat_projects" = yes
then
- echo "$as_me:26594: checking if GNAT supports libraries" >&5
+ echo "$as_me:27893: checking if GNAT supports libraries" >&5
echo $ECHO_N "checking if GNAT supports libraries... $ECHO_C" >&6
- echo "$as_me:26596: result: $cf_gnat_libraries" >&5
+ echo "$as_me:27895: result: $cf_gnat_libraries" >&5
echo "${ECHO_T}$cf_gnat_libraries" >&6
fi
@@ -26613,7 +27912,7 @@ then
then
USE_GNAT_MAKE_GPR=""
else
- { echo "$as_me:26616: WARNING: use old makefile rules since tools are missing" >&5
+ { echo "$as_me:27915: WARNING: use old makefile rules since tools are missing" >&5
echo "$as_me: WARNING: use old makefile rules since tools are missing" >&2;}
fi
fi
@@ -26625,8 +27924,8 @@ else
USE_GNAT_LIBRARIES="#"
fi
-echo "$as_me:26628: checking for ada-compiler" >&5
-echo $ECHO_N "checking for ada-compiler... $ECHO_C" >&6
+echo "$as_me:27927: checking for Ada95 compiler" >&5
+echo $ECHO_N "checking for Ada95 compiler... $ECHO_C" >&6
# Check whether --with-ada-compiler or --without-ada-compiler was given.
if test "${with_ada_compiler+set}" = set; then
@@ -26636,13 +27935,13 @@ else
cf_ada_compiler=gnatmake
fi;
-echo "$as_me:26639: result: $cf_ada_compiler" >&5
+echo "$as_me:27938: result: $cf_ada_compiler" >&5
echo "${ECHO_T}$cf_ada_compiler" >&6
cf_ada_package=terminal_interface
-echo "$as_me:26644: checking for ada-include" >&5
-echo $ECHO_N "checking for ada-include... $ECHO_C" >&6
+echo "$as_me:27943: checking for Ada95 include directory" >&5
+echo $ECHO_N "checking for Ada95 include directory... $ECHO_C" >&6
# Check whether --with-ada-include or --without-ada-include was given.
if test "${with_ada_include+set}" = set; then
@@ -26677,7 +27976,7 @@ case ".$withval" in
withval=`echo "$withval" | sed -e s%NONE%$cf_path_syntax%`
;;
(*)
- { { echo "$as_me:26680: error: expected a pathname, not \"$withval\"" >&5
+ { { echo "$as_me:27979: error: expected a pathname, not \"$withval\"" >&5
echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
{ (exit 1); exit 1; }; }
;;
@@ -26686,11 +27985,11 @@ esac
fi
eval ADA_INCLUDE="$withval"
-echo "$as_me:26689: result: $ADA_INCLUDE" >&5
+echo "$as_me:27988: result: $ADA_INCLUDE" >&5
echo "${ECHO_T}$ADA_INCLUDE" >&6
-echo "$as_me:26692: checking for ada-objects" >&5
-echo $ECHO_N "checking for ada-objects... $ECHO_C" >&6
+echo "$as_me:27991: checking for Ada95 object directory" >&5
+echo $ECHO_N "checking for Ada95 object directory... $ECHO_C" >&6
# Check whether --with-ada-objects or --without-ada-objects was given.
if test "${with_ada_objects+set}" = set; then
@@ -26725,7 +28024,7 @@ case ".$withval" in
withval=`echo "$withval" | sed -e s%NONE%$cf_path_syntax%`
;;
(*)
- { { echo "$as_me:26728: error: expected a pathname, not \"$withval\"" >&5
+ { { echo "$as_me:28027: error: expected a pathname, not \"$withval\"" >&5
echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
{ (exit 1); exit 1; }; }
;;
@@ -26734,11 +28033,11 @@ esac
fi
eval ADA_OBJECTS="$withval"
-echo "$as_me:26737: result: $ADA_OBJECTS" >&5
+echo "$as_me:28036: result: $ADA_OBJECTS" >&5
echo "${ECHO_T}$ADA_OBJECTS" >&6
-echo "$as_me:26740: checking if an Ada95 shared-library should be built" >&5
-echo $ECHO_N "checking if an Ada95 shared-library should be built... $ECHO_C" >&6
+echo "$as_me:28039: checking whether to build an Ada95 shared library" >&5
+echo $ECHO_N "checking whether to build an Ada95 shared library... $ECHO_C" >&6
# Check whether --with-ada-sharedlib or --without-ada-sharedlib was given.
if test "${with_ada_sharedlib+set}" = set; then
@@ -26747,19 +28046,25 @@ if test "${with_ada_sharedlib+set}" = set; then
else
with_ada_sharedlib=no
fi;
-echo "$as_me:26750: result: $with_ada_sharedlib" >&5
-echo "${ECHO_T}$with_ada_sharedlib" >&6
+cf_ada_sharedlib_warn=no
if test "x$with_ada_sharedlib" != xno
then
if test "x$cf_gnat_projects" != xyes
then
- { echo "$as_me:26757: WARNING: disabling shared-library since GNAT projects are not supported" >&5
-echo "$as_me: WARNING: disabling shared-library since GNAT projects are not supported" >&2;}
with_ada_sharedlib=no
+ cf_ada_sharedlib_warn=yes
fi
fi
+echo "$as_me:28060: result: $with_ada_sharedlib" >&5
+echo "${ECHO_T}$with_ada_sharedlib" >&6
+if test "x$cf_ada_sharedlib_warn" != xno
+then
+ { echo "$as_me:28064: WARNING: disabling Ada95 shared library since GNAT projects are not supported" >&5
+echo "$as_me: WARNING: disabling Ada95 shared library since GNAT projects are not supported" >&2;}
+fi
+
ADA_SHAREDLIB='lib$(LIB_NAME).so.1'
MAKE_ADA_SHAREDLIB="#"
@@ -26774,8 +28079,8 @@ fi
# allow the Ada binding to be renamed
-echo "$as_me:26777: checking for ada-libname" >&5
-echo $ECHO_N "checking for ada-libname... $ECHO_C" >&6
+echo "$as_me:28082: checking for Ada95 curses library name" >&5
+echo $ECHO_N "checking for Ada95 curses library name... $ECHO_C" >&6
# Check whether --with-ada-libname or --without-ada-libname was given.
if test "${with_ada_libname+set}" = set; then
@@ -26790,7 +28095,7 @@ case "x$ADA_LIBNAME" in
;;
esac
-echo "$as_me:26793: result: $ADA_LIBNAME" >&5
+echo "$as_me:28098: result: $ADA_LIBNAME" >&5
echo "${ECHO_T}$ADA_LIBNAME" >&6
fi
@@ -26801,13 +28106,13 @@ fi
# do this "late" to avoid conflict with header-checks
if test "x$with_widec" = xyes ; then
- echo "$as_me:26804: checking for wchar_t" >&5
+ echo "$as_me:28109: checking for wchar_t" >&5
echo $ECHO_N "checking for wchar_t... $ECHO_C" >&6
if test "${ac_cv_type_wchar_t+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 26810 "configure"
+#line 28115 "configure"
#include "confdefs.h"
$ac_includes_default
int
@@ -26822,16 +28127,16 @@ if (sizeof (wchar_t))
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:26825: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:28130: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:26828: \$? = $ac_status" >&5
+ echo "$as_me:28133: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:26831: \"$ac_try\"") >&5
+ { (eval echo "$as_me:28136: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:26834: \$? = $ac_status" >&5
+ echo "$as_me:28139: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_type_wchar_t=yes
else
@@ -26841,10 +28146,10 @@ ac_cv_type_wchar_t=no
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:26844: result: $ac_cv_type_wchar_t" >&5
+echo "$as_me:28149: result: $ac_cv_type_wchar_t" >&5
echo "${ECHO_T}$ac_cv_type_wchar_t" >&6
-echo "$as_me:26847: checking size of wchar_t" >&5
+echo "$as_me:28152: checking size of wchar_t" >&5
echo $ECHO_N "checking size of wchar_t... $ECHO_C" >&6
if test "${ac_cv_sizeof_wchar_t+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -26853,7 +28158,7 @@ else
if test "$cross_compiling" = yes; then
# Depending upon the size, compute the lo and hi bounds.
cat >"conftest.$ac_ext" <<_ACEOF
-#line 26856 "configure"
+#line 28161 "configure"
#include "confdefs.h"
$ac_includes_default
int
@@ -26865,21 +28170,21 @@ int _array_ [1 - 2 * !((sizeof (wchar_t)) >= 0)]
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:26868: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:28173: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:26871: \$? = $ac_status" >&5
+ echo "$as_me:28176: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:26874: \"$ac_try\"") >&5
+ { (eval echo "$as_me:28179: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:26877: \$? = $ac_status" >&5
+ echo "$as_me:28182: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_lo=0 ac_mid=0
while :; do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 26882 "configure"
+#line 28187 "configure"
#include "confdefs.h"
$ac_includes_default
int
@@ -26891,16 +28196,16 @@ int _array_ [1 - 2 * !((sizeof (wchar_t)) <= $ac_mid)]
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:26894: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:28199: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:26897: \$? = $ac_status" >&5
+ echo "$as_me:28202: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:26900: \"$ac_try\"") >&5
+ { (eval echo "$as_me:28205: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:26903: \$? = $ac_status" >&5
+ echo "$as_me:28208: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_hi=$ac_mid; break
else
@@ -26916,7 +28221,7 @@ cat "conftest.$ac_ext" >&5
ac_hi=-1 ac_mid=-1
while :; do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 26919 "configure"
+#line 28224 "configure"
#include "confdefs.h"
$ac_includes_default
int
@@ -26928,16 +28233,16 @@ int _array_ [1 - 2 * !((sizeof (wchar_t)) >= $ac_mid)]
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:26931: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:28236: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:26934: \$? = $ac_status" >&5
+ echo "$as_me:28239: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:26937: \"$ac_try\"") >&5
+ { (eval echo "$as_me:28242: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:26940: \$? = $ac_status" >&5
+ echo "$as_me:28245: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_lo=$ac_mid; break
else
@@ -26953,7 +28258,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
while test "x$ac_lo" != "x$ac_hi"; do
ac_mid=`expr '(' "$ac_hi" - "$ac_lo" ')' / 2 + "$ac_lo"`
cat >"conftest.$ac_ext" <<_ACEOF
-#line 26956 "configure"
+#line 28261 "configure"
#include "confdefs.h"
$ac_includes_default
int
@@ -26965,16 +28270,16 @@ int _array_ [1 - 2 * !((sizeof (wchar_t)) <= $ac_mid)]
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:26968: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:28273: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:26971: \$? = $ac_status" >&5
+ echo "$as_me:28276: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:26974: \"$ac_try\"") >&5
+ { (eval echo "$as_me:28279: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:26977: \$? = $ac_status" >&5
+ echo "$as_me:28282: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_hi=$ac_mid
else
@@ -26987,12 +28292,12 @@ done
ac_cv_sizeof_wchar_t=$ac_lo
else
if test "$cross_compiling" = yes; then
- { { echo "$as_me:26990: error: cannot run test program while cross compiling" >&5
+ { { echo "$as_me:28295: error: cannot run test program while cross compiling" >&5
echo "$as_me: error: cannot run test program while cross compiling" >&2;}
{ (exit 1); exit 1; }; }
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 26995 "configure"
+#line 28300 "configure"
#include "confdefs.h"
$ac_includes_default
int
@@ -27001,22 +28306,22 @@ main (void)
FILE *f = fopen ("conftest.val", "w");
if (!f)
$ac_main_return (1);
-fprintf (f, "%d", (sizeof (wchar_t)));
+fprintf (f, "%ld", (long)(sizeof (wchar_t)));
fclose (f);
;
return 0;
}
_ACEOF
rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:27011: \"$ac_link\"") >&5
+if { (eval echo "$as_me:28316: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:27014: \$? = $ac_status" >&5
+ echo "$as_me:28319: \$? = $ac_status" >&5
(exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:27016: \"$ac_try\"") >&5
+ { (eval echo "$as_me:28321: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:27019: \$? = $ac_status" >&5
+ echo "$as_me:28324: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_sizeof_wchar_t=`cat conftest.val`
else
@@ -27032,7 +28337,7 @@ else
ac_cv_sizeof_wchar_t=0
fi
fi
-echo "$as_me:27035: result: $ac_cv_sizeof_wchar_t" >&5
+echo "$as_me:28340: result: $ac_cv_sizeof_wchar_t" >&5
echo "${ECHO_T}$ac_cv_sizeof_wchar_t" >&6
cat >>confdefs.h <<EOF
#define SIZEOF_WCHAR_T $ac_cv_sizeof_wchar_t
@@ -27045,7 +28350,7 @@ EOF
then
test -n "$verbose" && echo " test failed (assume 2)" 1>&6
-echo "${as_me:-configure}:27048: testing test failed (assume 2) ..." 1>&5
+echo "${as_me:-configure}:28353: testing test failed (assume 2) ..." 1>&5
sed /SIZEOF_WCHAR_T/d confdefs.h >confdefs.tmp
mv confdefs.tmp confdefs.h
@@ -27063,7 +28368,7 @@ fi
### chooses to split module lists into libraries.
###
### (see CF_LIB_RULES).
-echo "$as_me:27066: checking for library subsets" >&5
+echo "$as_me:28371: checking for library subsets" >&5
echo $ECHO_N "checking for library subsets... $ECHO_C" >&6
LIB_SUBSETS=
@@ -27117,7 +28422,7 @@ fi
test "x$with_widec" = xyes && LIB_SUBSETS="${LIB_SUBSETS}+widechar"
test "x$with_ext_funcs" = xyes && LIB_SUBSETS="${LIB_SUBSETS}+ext_funcs"
-echo "$as_me:27120: result: $LIB_SUBSETS" >&5
+echo "$as_me:28425: result: $LIB_SUBSETS" >&5
echo "${ECHO_T}$LIB_SUBSETS" >&6
### Construct the list of include-directories to be generated
@@ -27148,7 +28453,7 @@ elif test "$includedir" != "/usr/include"; then
fi
### Build up pieces for makefile rules
-echo "$as_me:27151: checking default library suffix" >&5
+echo "$as_me:28456: checking default library suffix" >&5
echo $ECHO_N "checking default library suffix... $ECHO_C" >&6
case $DFT_LWR_MODEL in
@@ -27159,10 +28464,10 @@ echo $ECHO_N "checking default library suffix... $ECHO_C" >&6
(shared) DFT_ARG_SUFFIX='' ;;
esac
test -n "$LIB_SUFFIX" && DFT_ARG_SUFFIX="${LIB_SUFFIX}${DFT_ARG_SUFFIX}"
-echo "$as_me:27162: result: $DFT_ARG_SUFFIX" >&5
+echo "$as_me:28467: result: $DFT_ARG_SUFFIX" >&5
echo "${ECHO_T}$DFT_ARG_SUFFIX" >&6
-echo "$as_me:27165: checking default library-dependency suffix" >&5
+echo "$as_me:28470: checking default library-dependency suffix" >&5
echo $ECHO_N "checking default library-dependency suffix... $ECHO_C" >&6
case X$DFT_LWR_MODEL in
@@ -27245,10 +28550,10 @@ echo $ECHO_N "checking default library-dependency suffix... $ECHO_C" >&6
DFT_LIB_SUFFIX="${LIB_SUFFIX}${EXTRA_SUFFIX}${DFT_LIB_SUFFIX}"
DFT_DEP_SUFFIX="${LIB_SUFFIX}${EXTRA_SUFFIX}${DFT_DEP_SUFFIX}"
fi
-echo "$as_me:27248: result: $DFT_DEP_SUFFIX" >&5
+echo "$as_me:28553: result: $DFT_DEP_SUFFIX" >&5
echo "${ECHO_T}$DFT_DEP_SUFFIX" >&6
-echo "$as_me:27251: checking default object directory" >&5
+echo "$as_me:28556: checking default object directory" >&5
echo $ECHO_N "checking default object directory... $ECHO_C" >&6
case $DFT_LWR_MODEL in
@@ -27264,11 +28569,11 @@ echo $ECHO_N "checking default object directory... $ECHO_C" >&6
DFT_OBJ_SUBDIR='obj_s' ;;
esac
esac
-echo "$as_me:27267: result: $DFT_OBJ_SUBDIR" >&5
+echo "$as_me:28572: result: $DFT_OBJ_SUBDIR" >&5
echo "${ECHO_T}$DFT_OBJ_SUBDIR" >&6
if test "x$cf_with_cxx" = xyes ; then
-echo "$as_me:27271: checking c++ library-dependency suffix" >&5
+echo "$as_me:28576: checking c++ library-dependency suffix" >&5
echo $ECHO_N "checking c++ library-dependency suffix... $ECHO_C" >&6
if test "$with_libtool" != "no"; then
# libtool thinks it can make c++ shared libraries (perhaps only g++)
@@ -27361,7 +28666,7 @@ else
fi
fi
-echo "$as_me:27364: result: $CXX_LIB_SUFFIX" >&5
+echo "$as_me:28669: result: $CXX_LIB_SUFFIX" >&5
echo "${ECHO_T}$CXX_LIB_SUFFIX" >&6
fi
@@ -27537,19 +28842,19 @@ fi
if test -n "$LDFLAGS_STATIC" && test -n "$LDFLAGS_SHARED"
then
- echo "$as_me:27540: checking if linker supports switching between static/dynamic" >&5
+ echo "$as_me:28845: checking if linker supports switching between static/dynamic" >&5
echo $ECHO_N "checking if linker supports switching between static/dynamic... $ECHO_C" >&6
rm -f libconftest.a
cat >conftest.$ac_ext <<EOF
-#line 27545 "configure"
+#line 28850 "configure"
#include <stdio.h>
int cf_ldflags_static(FILE *fp) { return fflush(fp); }
EOF
- if { (eval echo "$as_me:27549: \"$ac_compile\"") >&5
+ if { (eval echo "$as_me:28854: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:27552: \$? = $ac_status" >&5
+ echo "$as_me:28857: \$? = $ac_status" >&5
(exit "$ac_status"); } ; then
( $AR $ARFLAGS libconftest.a conftest.o ) 2>&5 1>/dev/null
( eval $RANLIB libconftest.a ) 2>&5 >/dev/null
@@ -27560,10 +28865,10 @@ EOF
LIBS="$LDFLAGS_STATIC -L`pwd` -lconftest $LDFLAGS_DYNAMIC $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 27563 "configure"
+#line 28868 "configure"
#include "confdefs.h"
-#line 27566 "configure"
+#line 28871 "configure"
#include <stdio.h>
int cf_ldflags_static(FILE *fp);
@@ -27578,16 +28883,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:27581: \"$ac_link\"") >&5
+if { (eval echo "$as_me:28886: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:27584: \$? = $ac_status" >&5
+ echo "$as_me:28889: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:27587: \"$ac_try\"") >&5
+ { (eval echo "$as_me:28892: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:27590: \$? = $ac_status" >&5
+ echo "$as_me:28895: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
# some linkers simply ignore the -dynamic
@@ -27610,7 +28915,7 @@ rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
rm -f libconftest.*
LIBS="$cf_save_LIBS"
- echo "$as_me:27613: result: $cf_ldflags_static" >&5
+ echo "$as_me:28918: result: $cf_ldflags_static" >&5
echo "${ECHO_T}$cf_ldflags_static" >&6
if test "$cf_ldflags_static" != yes
@@ -27626,7 +28931,7 @@ fi
;;
esac
-echo "$as_me:27629: checking where we will install curses.h" >&5
+echo "$as_me:28934: checking where we will install curses.h" >&5
echo $ECHO_N "checking where we will install curses.h... $ECHO_C" >&6
includesubdir=
@@ -27636,7 +28941,7 @@ if test "$with_overwrite" = no && \
then
includesubdir="/ncurses${USE_LIB_SUFFIX}"
fi
-echo "$as_me:27639: result: ${includedir}${includesubdir}" >&5
+echo "$as_me:28944: result: ${includedir}${includesubdir}" >&5
echo "${ECHO_T}${includedir}${includesubdir}" >&6
### Resolve a conflict between normal and wide-curses by forcing applications
@@ -27644,7 +28949,7 @@ echo "${ECHO_T}${includedir}${includesubdir}" >&6
if test "$with_overwrite" != no ; then
if test "$NCURSES_LIBUTF8" = 1 ; then
NCURSES_LIBUTF8='defined(HAVE_LIBUTF8_H)'
- { echo "$as_me:27647: WARNING: Wide-character applications must define HAVE_LIBUTF8_H to include curses.h" >&5
+ { echo "$as_me:28952: WARNING: Wide-character applications must define HAVE_LIBUTF8_H to include curses.h" >&5
echo "$as_me: WARNING: Wide-character applications must define HAVE_LIBUTF8_H to include curses.h" >&2;}
fi
fi
@@ -27661,9 +28966,6 @@ case "$cf_cv_system_name" in
*) ;;
esac
-# used to separate tack out of the tree
-NCURSES_TREE=
-
### predefined stuff for the test programs
cat >>confdefs.h <<\EOF
@@ -27672,7 +28974,7 @@ EOF
# pkgsrc uses these
-echo "$as_me:27675: checking for desired basename for form library" >&5
+echo "$as_me:28977: checking for desired basename for form library" >&5
echo $ECHO_N "checking for desired basename for form library... $ECHO_C" >&6
# Check whether --with-form-libname or --without-form-libname was given.
@@ -27692,10 +28994,10 @@ case "x$FORM_NAME" in
;;
esac
-echo "$as_me:27695: result: $FORM_NAME" >&5
+echo "$as_me:28997: result: $FORM_NAME" >&5
echo "${ECHO_T}$FORM_NAME" >&6
-echo "$as_me:27698: checking for desired basename for menu library" >&5
+echo "$as_me:29000: checking for desired basename for menu library" >&5
echo $ECHO_N "checking for desired basename for menu library... $ECHO_C" >&6
# Check whether --with-menu-libname or --without-menu-libname was given.
@@ -27715,10 +29017,10 @@ case "x$MENU_NAME" in
;;
esac
-echo "$as_me:27718: result: $MENU_NAME" >&5
+echo "$as_me:29020: result: $MENU_NAME" >&5
echo "${ECHO_T}$MENU_NAME" >&6
-echo "$as_me:27721: checking for desired basename for panel library" >&5
+echo "$as_me:29023: checking for desired basename for panel library" >&5
echo $ECHO_N "checking for desired basename for panel library... $ECHO_C" >&6
# Check whether --with-panel-libname or --without-panel-libname was given.
@@ -27738,10 +29040,10 @@ case "x$PANEL_NAME" in
;;
esac
-echo "$as_me:27741: result: $PANEL_NAME" >&5
+echo "$as_me:29043: result: $PANEL_NAME" >&5
echo "${ECHO_T}$PANEL_NAME" >&6
-echo "$as_me:27744: checking for desired basename for cxx library" >&5
+echo "$as_me:29046: checking for desired basename for cxx library" >&5
echo $ECHO_N "checking for desired basename for cxx library... $ECHO_C" >&6
# Check whether --with-cxx-libname or --without-cxx-libname was given.
@@ -27761,13 +29063,13 @@ case "x$CXX_NAME" in
;;
esac
-echo "$as_me:27764: result: $CXX_NAME" >&5
+echo "$as_me:29066: result: $CXX_NAME" >&5
echo "${ECHO_T}$CXX_NAME" >&6
### Construct the list of subdirectories for which we'll customize makefiles
### with the appropriate compile-rules.
-echo "$as_me:27770: checking for src modules" >&5
+echo "$as_me:29072: checking for src modules" >&5
echo $ECHO_N "checking for src modules... $ECHO_C" >&6
# dependencies and linker-arguments for test-programs
@@ -27787,14 +29089,6 @@ for cf_dir in $modules_to_build
do
if test -f "$srcdir/$cf_dir/modules" ; then
- # We may/may not have tack in the distribution, though the
- # makefile is.
- if test "$cf_dir" = tack ; then
- if test "x$cf_with_tack" != "xyes"; then
- continue
- fi
- fi
-
if test -z "$cf_cv_src_modules"; then
cf_cv_src_modules=$cf_dir
else
@@ -27805,9 +29099,7 @@ do
# well. These are header files that are the same name as their
# directory. Ncurses is the only library that does not follow
# that pattern.
- if test "$cf_dir" = tack ; then
- continue
- elif test -f "$srcdir/${cf_dir}/${cf_dir}.h" ; then
+ if test -f "$srcdir/${cf_dir}/${cf_dir}.h" ; then
cf_have_include=`echo "$cf_dir" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
@@ -27836,7 +29128,7 @@ eval TEST_ROOT="\$${cf_map_lib_basename}_NAME"
fi
fi
done
-echo "$as_me:27839: result: $cf_cv_src_modules" >&5
+echo "$as_me:29131: result: $cf_cv_src_modules" >&5
echo "${ECHO_T}$cf_cv_src_modules" >&6
TEST_ARGS="-L${LIB_DIR} $TEST_ARGS"
@@ -27997,7 +29289,7 @@ case "$cf_cv_system_name" in
(*-D_XOPEN_SOURCE_EXTENDED*)
test -n "$verbose" && echo " moving _XOPEN_SOURCE_EXTENDED to work around g++ problem" 1>&6
-echo "${as_me:-configure}:28000: testing moving _XOPEN_SOURCE_EXTENDED to work around g++ problem ..." 1>&5
+echo "${as_me:-configure}:29292: testing moving _XOPEN_SOURCE_EXTENDED to work around g++ problem ..." 1>&5
CFLAGS="$CFLAGS -D_XOPEN_SOURCE_EXTENDED"
CPPFLAGS=`echo "x$CPPFLAGS" | sed -e 's/^.//' -e 's/-D_XOPEN_SOURCE_EXTENDED//'`
@@ -28008,8 +29300,8 @@ esac
# Help to automatically enable the extended curses features when using either
# the *-config or the ".pc" files by adding defines.
-echo "$as_me:28011: checking for defines to add to ncurses${USE_CFG_SUFFIX}-config script" >&5
-echo $ECHO_N "checking for defines to add to ncurses${USE_CFG_SUFFIX}-config script... $ECHO_C" >&6
+echo "$as_me:29303: checking for defines to add to ncurses${USE_CFG_SUFFIX}${cf_config_suffix}-config script" >&5
+echo $ECHO_N "checking for defines to add to ncurses${USE_CFG_SUFFIX}${cf_config_suffix}-config script... $ECHO_C" >&6
PKG_CFLAGS=
for cf_loop1 in $CPPFLAGS_after_XOPEN
do
@@ -28024,7 +29316,7 @@ do
done
test "$cf_found" = no && PKG_CFLAGS="$PKG_CFLAGS $cf_loop1"
done
-echo "$as_me:28027: result: $PKG_CFLAGS" >&5
+echo "$as_me:29319: result: $PKG_CFLAGS" >&5
echo "${ECHO_T}$PKG_CFLAGS" >&6
# AC_CHECK_SIZEOF demands a literal parameter, no variables. So we do this.
@@ -28083,9 +29375,9 @@ cf_filter_syms=no
if test -n "$RESULTING_SYMS"
then
cf_filter_syms=$cf_dft_filter_syms
- test -n "$verbose" && echo " will map symbols to ABI=$cf_cv_abi_version" 1>&6
+ test -n "$verbose" && echo " will map symbols to ABI=$cf_cv_abi_default" 1>&6
-echo "${as_me:-configure}:28088: testing will map symbols to ABI=$cf_cv_abi_version ..." 1>&5
+echo "${as_me:-configure}:29380: testing will map symbols to ABI=$cf_cv_abi_default ..." 1>&5
fi
@@ -28112,7 +29404,7 @@ fi
# This is used for the *-config script and *.pc data files.
-echo "$as_me:28115: checking for linker search path" >&5
+echo "$as_me:29407: checking for linker search path" >&5
echo $ECHO_N "checking for linker search path... $ECHO_C" >&6
if test "${cf_cv_ld_searchpath+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -28121,19 +29413,19 @@ else
if test "$cross_compiling" != yes ; then
# GNU binutils' ld does not involve permissions which may stop ldconfig.
-cf_pathlist=`ld --verbose 2>/dev/null | grep SEARCH_DIR | sed -e 's,SEARCH_DIR[("=][("=]*,,g' -e 's/"[)];//gp' | sort -u`
+cf_pathlist=`${LD:-ld} --verbose 2>/dev/null | grep SEARCH_DIR | sed -e 's,SEARCH_DIR[("=][("=]*,,g' -e 's/"[)];//gp' | sort -u`
# The -NX options tell newer versions of Linux ldconfig to not attempt to
# update the cache, which makes it run faster.
test -z "$cf_pathlist" && \
- cf_pathlist=`ldconfig -NX -v 2>/dev/null | sed -e '/^[ ]/d' -e 's/:$//' | sort -u`
+ cf_pathlist=`(ldconfig -NX -v) 2>/dev/null | sed -e '/^[ ]/d' -e 's/:$//' | sort -u`
test -z "$cf_pathlist" &&
- cf_pathlist=`ldconfig -v 2>/dev/null | sed -n -e '/^[ ]/d' -e 's/:$//p' | sort -u`
+ cf_pathlist=`(ldconfig -v) 2>/dev/null | sed -n -e '/^[ ]/d' -e 's/:$//p' | sort -u`
# This works with OpenBSD 6.5, which lists only filenames
test -z "$cf_pathlist" &&
- cf_pathlist=`ldconfig -v 2>/dev/null | sed -n -e 's,^Adding \(.*\)/.*$,\1,p' | sort -u`
+ cf_pathlist=`(ldconfig -v) 2>/dev/null | sed -n -e 's,^Adding \(.*\)/.*$,\1,p' | sort -u`
if test -z "$cf_pathlist"
then
@@ -28148,13 +29440,38 @@ fi
if test -z "$cf_pathlist"
then
- # Solaris is hardcoded
- if test -d /opt/SUNWspro/lib
+ # Solaris is "SunOS"
+ if test -f /usr/bin/isainfo && test "x`uname -s`" = xSunOS
then
- cf_pathlist="/opt/SUNWspro/lib /usr/ccs/lib /usr/lib"
- elif test -d /usr/ccs/lib
+ case x`(isainfo -b)` in
+ (x64)
+ cf_pathlist="$cf_pathlist /lib/64 /usr/lib/64"
+ ;;
+ (x32)
+ test -d /usr/ccs/lib && cf_pathlist="$cf_pathlist /usr/ccs/lib"
+ cf_pathlist="$cf_pathlist /lib /usr/lib"
+ ;;
+ (*)
+ { echo "$as_me:29455: WARNING: problem with Solaris architecture" >&5
+echo "$as_me: WARNING: problem with Solaris architecture" >&2;}
+ ;;
+ esac
+ fi
+fi
+
+if test -z "$cf_pathlist"
+then
+ # HP-UX
+ if test x"`uname -s`" = xHP-UX
then
- cf_pathlist="/usr/ccs/lib /usr/lib"
+ case x`getconf LONG_BIT` in
+ (x64)
+ cf_pathlist="/usr/lib/hpux64"
+ ;;
+ (x*)
+ cf_pathlist="/usr/lib/hpux32"
+ ;;
+ esac
fi
fi
@@ -28176,16 +29493,12 @@ done
test -z "$cf_cv_ld_searchpath" && cf_cv_ld_searchpath=/usr/lib
fi
-echo "$as_me:28179: result: $cf_cv_ld_searchpath" >&5
+echo "$as_me:29496: result: $cf_cv_ld_searchpath" >&5
echo "${ECHO_T}$cf_cv_ld_searchpath" >&6
LD_SEARCHPATH=`echo "$cf_cv_ld_searchpath"|sed -e 's/ /|/g'`
-cat >>confdefs.h <<\EOF
-#define HAVE_CURSES_DATA_BOOLNAMES 1
-EOF
-
-ac_config_files="$ac_config_files include/MKterm.h.awk include/curses.head:include/curses.h.in include/ncurses_dll.h include/termcap.h include/unctrl.h $SUB_MAKEFILES Makefile"
+ac_config_files="$ac_config_files include/MKterm.h.awk include/curses.head:include/curses.h.in include/ncurses_dll.h include/termcap.h include/unctrl.h man/man_db.renames $SUB_MAKEFILES Makefile"
ac_config_commands="$ac_config_commands default"
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
@@ -28197,7 +29510,7 @@ cat >confcache <<\_ACEOF
# config.status only pays attention to the cache file if you give it
# the --recheck option to rerun configure.
#
-# `ac_cv_env_foo' variables (set or unset) will be overriden when
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
# loading this file, other *unset* `ac_cv_foo' will be assigned the
# following values.
@@ -28266,7 +29579,7 @@ DEFS=-DHAVE_CONFIG_H
: "${CONFIG_STATUS=./config.status}"
ac_clean_files_save=$ac_clean_files
ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ echo "$as_me:28269: creating $CONFIG_STATUS" >&5
+{ echo "$as_me:29582: creating $CONFIG_STATUS" >&5
echo "$as_me: creating $CONFIG_STATUS" >&6;}
cat >"$CONFIG_STATUS" <<_ACEOF
#! $SHELL
@@ -28275,6 +29588,8 @@ cat >"$CONFIG_STATUS" <<_ACEOF
# Compiler output produced by configure, useful for debugging
# configure, is in config.log if it exists.
+me=\`echo "\$0" | sed -e 's,.*\\/,,'\`
+
debug=false
SHELL=\${CONFIG_SHELL-$SHELL}
ac_cs_invocation="\$0 \$@"
@@ -28296,9 +29611,9 @@ fi
as_me=`echo "$0" |sed 's,.*[\\/],,'`
if expr a : '\(a\)' >/dev/null 2>&1; then
- as_expr=expr
+ as_expr="expr"
else
- as_expr=false
+ as_expr="false"
fi
rm -f conf$$ conf$$.exe conf$$.file
@@ -28313,7 +29628,7 @@ if ln -s conf$$.file conf$$ 2>/dev/null; then
as_ln_s='ln -s'
fi
elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
+ as_ln_s='ln'
else
as_ln_s='cp -p'
fi
@@ -28400,10 +29715,10 @@ EOF
cat >>"$CONFIG_STATUS" <<EOF
ac_cs_version="\\
config.status
-configured by $0, generated by GNU Autoconf 2.52.20210105,
+configured by $0, generated by GNU Autoconf 2.52.20231210,
with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
-Copyright 2003-2020,2021 Thomas E. Dickey
+Copyright 2003-2022,2023 Thomas E. Dickey
Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
@@ -28445,7 +29760,7 @@ cat >>"$CONFIG_STATUS" <<\EOF
echo "$ac_cs_version"; exit 0 ;;
--he | --h)
# Conflict between --help and --header
- { { echo "$as_me:28448: error: ambiguous option: $1
+ { { echo "$as_me:29763: error: ambiguous option: $1
Try \`$0 --help' for more information." >&5
echo "$as_me: error: ambiguous option: $1
Try \`$0 --help' for more information." >&2;}
@@ -28464,7 +29779,7 @@ Try \`$0 --help' for more information." >&2;}
ac_need_defaults=false;;
# This is an error.
- -*) { { echo "$as_me:28467: error: unrecognized option: $1
+ -*) { { echo "$as_me:29782: error: unrecognized option: $1
Try \`$0 --help' for more information." >&5
echo "$as_me: error: unrecognized option: $1
Try \`$0 --help' for more information." >&2;}
@@ -28483,7 +29798,7 @@ cat >&5 << _ACEOF
## Running config.status. ##
## ----------------------- ##
-This file was extended by $as_me 2.52.20210105, executed with
+This file was extended by $as_me 2.52.20231210, executed with
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
CONFIG_LINKS = $CONFIG_LINKS
@@ -28519,6 +29834,7 @@ LIB_SUFFIX="$LIB_SUFFIX"
LIB_TRACING="$LIB_TRACING"
LN_S="$LN_S"
MAKE_TERMINFO="$MAKE_TERMINFO"
+MANPAGE_RENAMES="$MANPAGE_RENAMES"
MENU_NAME="$MENU_NAME"
NCURSES_MAJOR="$NCURSES_MAJOR"
NCURSES_MINOR="$NCURSES_MINOR"
@@ -28548,12 +29864,14 @@ WITH_OVERWRITE="$with_overwrite"
cf_LIST_MODELS="$cf_list_models"
cf_cv_VERSION_GNATMAKE=$cf_cv_VERSION_GNATMAKE
cf_cv_VERSION_GPRBUILD=$cf_cv_VERSION_GPRBUILD
+cf_cv_abi_default="$cf_cv_abi_default"
cf_cv_abi_version="$cf_cv_abi_version"
cf_cv_do_relink="$cf_cv_do_relink"
cf_cv_do_reranlib="$cf_cv_do_reranlib"
cf_cv_do_symlinks="$cf_cv_do_symlinks"
cf_cv_enable_lp64="$cf_cv_enable_lp64"
cf_cv_enable_opaque="$cf_cv_enable_opaque"
+cf_cv_make_PHONY="$cf_cv_make_PHONY"
cf_cv_prog_CC_c_o=$cf_cv_prog_CC_c_o
cf_cv_prog_CXX_c_o=$cf_cv_prog_CXX_c_o
cf_cv_prog_gnat_correct=$cf_cv_prog_gnat_correct
@@ -28571,6 +29889,7 @@ cf_with_manpages="$cf_with_manpages"
cf_with_tests="$cf_with_tests"
host="$host"
target="$target"
+verbose="$verbose"
with_shared_cxx="$with_shared_cxx"
EOF
@@ -28585,11 +29904,12 @@ do
"include/ncurses_dll.h" ) CONFIG_FILES="$CONFIG_FILES include/ncurses_dll.h" ;;
"include/termcap.h" ) CONFIG_FILES="$CONFIG_FILES include/termcap.h" ;;
"include/unctrl.h" ) CONFIG_FILES="$CONFIG_FILES include/unctrl.h" ;;
+ "man/man_db.renames" ) CONFIG_FILES="$CONFIG_FILES man/man_db.renames" ;;
"$SUB_MAKEFILES" ) CONFIG_FILES="$CONFIG_FILES $SUB_MAKEFILES" ;;
"Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
"default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
"include/ncurses_cfg.h" ) CONFIG_HEADERS="$CONFIG_HEADERS include/ncurses_cfg.h:include/ncurses_cfg.hin" ;;
- *) { { echo "$as_me:28592: error: invalid argument: $ac_config_target" >&5
+ *) { { echo "$as_me:29912: error: invalid argument: $ac_config_target" >&5
echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
{ (exit 1); exit 1; }; };;
esac
@@ -28613,14 +29933,14 @@ $debug ||
}
# Create a (secure) tmp directory for tmp files.
-: ${TMPDIR=/tmp}
+: "${TMPDIR=/tmp}"
{
tmp=`(umask 077 && mktemp -d -q "$TMPDIR/csXXXXXX") 2>/dev/null` &&
test -n "$tmp" && test -d "$tmp"
} ||
{
tmp=$TMPDIR/cs$$-$RANDOM
- (umask 077 && mkdir $tmp)
+ (umask 077 && mkdir "$tmp")
} ||
{
echo "$me: cannot create a temporary directory in $TMPDIR" >&2
@@ -28640,7 +29960,7 @@ cat >>"$CONFIG_STATUS" <<EOF
if test -n "\$CONFIG_FILES"; then
# Protect against being on the right side of a sed subst in config.status.
sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
- s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
+ s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >"\$tmp"/subs.sed <<\\CEOF
s,@SHELL@,$SHELL,;t t
s,@exec_prefix@,$exec_prefix,;t t
s,@prefix@,$prefix,;t t
@@ -28681,6 +30001,7 @@ s,@NCURSES_MINOR@,$NCURSES_MINOR,;t t
s,@NCURSES_PATCH@,$NCURSES_PATCH,;t t
s,@cf_cv_rel_version@,$cf_cv_rel_version,;t t
s,@cf_cv_abi_version@,$cf_cv_abi_version,;t t
+s,@cf_cv_abi_default@,$cf_cv_abi_default,;t t
s,@cf_cv_builtin_bool@,$cf_cv_builtin_bool,;t t
s,@cf_cv_header_stdbool_h@,$cf_cv_header_stdbool_h,;t t
s,@cf_cv_type_of_bool@,$cf_cv_type_of_bool,;t t
@@ -28721,6 +30042,7 @@ s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
s,@INSTALL_DATA@,$INSTALL_DATA,;t t
s,@LINT@,$LINT,;t t
s,@LINT_OPTS@,$LINT_OPTS,;t t
+s,@LINT_LIBS@,$LINT_LIBS,;t t
s,@LN_S@,$LN_S,;t t
s,@cf_config_suffix@,$cf_config_suffix,;t t
s,@PKG_CONFIG@,$PKG_CONFIG,;t t
@@ -28729,6 +30051,8 @@ s,@PKG_CONFIG_LIBDIR@,$PKG_CONFIG_LIBDIR,;t t
s,@MAKE_PC_FILES@,$MAKE_PC_FILES,;t t
s,@PC_MODULE_SUFFIX@,$PC_MODULE_SUFFIX,;t t
s,@SET_MAKE@,$SET_MAKE,;t t
+s,@MAKE_NO_PHONY@,$MAKE_NO_PHONY,;t t
+s,@MAKE_PHONY@,$MAKE_PHONY,;t t
s,@CTAGS@,$CTAGS,;t t
s,@ETAGS@,$ETAGS,;t t
s,@MAKE_LOWER_TAGS@,$MAKE_LOWER_TAGS,;t t
@@ -28832,10 +30156,17 @@ s,@RGB_PATH@,$RGB_PATH,;t t
s,@no_x11_rgb@,$no_x11_rgb,;t t
s,@NCURSES_BOOL@,$NCURSES_BOOL,;t t
s,@TERMINFO_CAPS@,$TERMINFO_CAPS,;t t
+s,@NCURSES_CHTYPE@,$NCURSES_CHTYPE,;t t
s,@NCURSES_OSPEED@,$NCURSES_OSPEED,;t t
+s,@NCURSES_MMASK_T@,$NCURSES_MMASK_T,;t t
s,@NCURSES_CCHARW_MAX@,$NCURSES_CCHARW_MAX,;t t
s,@NCURSES_SBOOL@,$NCURSES_SBOOL,;t t
s,@NCURSES_TPARM_ARG@,$NCURSES_TPARM_ARG,;t t
+s,@cf_manpage_format@,$cf_manpage_format,;t t
+s,@cf_manpage_inboth@,$cf_manpage_inboth,;t t
+s,@cf_manpage_so_strip@,$cf_manpage_so_strip,;t t
+s,@cf_manpage_compress@,$cf_manpage_compress,;t t
+s,@cf_manpage_coptions@,$cf_manpage_coptions,;t t
s,@MANPAGE_RENAMES@,$MANPAGE_RENAMES,;t t
s,@NCURSES_EXT_FUNCS@,$NCURSES_EXT_FUNCS,;t t
s,@GENERATED_EXT_FUNCS@,$GENERATED_EXT_FUNCS,;t t
@@ -28844,6 +30175,7 @@ s,@GENERATED_SP_FUNCS@,$GENERATED_SP_FUNCS,;t t
s,@NCURSES_CONST@,$NCURSES_CONST,;t t
s,@NCURSES_EXT_COLORS@,$NCURSES_EXT_COLORS,;t t
s,@NCURSES_MOUSE_VERSION@,$NCURSES_MOUSE_VERSION,;t t
+s,@cf_cv_enable_sigwinch@,$cf_cv_enable_sigwinch,;t t
s,@NCURSES_XNAMES@,$NCURSES_XNAMES,;t t
s,@PTHREAD@,$PTHREAD,;t t
s,@cf_cv_enable_reentrant@,$cf_cv_enable_reentrant,;t t
@@ -28870,6 +30202,8 @@ s,@INSTALL_OPT_S@,$INSTALL_OPT_S,;t t
s,@INSTALL_OPT_O@,$INSTALL_OPT_O,;t t
s,@INSTALL_OPT_P@,$INSTALL_OPT_P,;t t
s,@EXTRA_CFLAGS@,$EXTRA_CFLAGS,;t t
+s,@HAVE_STDNORETURN_H@,$HAVE_STDNORETURN_H,;t t
+s,@STDC_NORETURN@,$STDC_NORETURN,;t t
s,@ADAFLAGS@,$ADAFLAGS,;t t
s,@EXTRA_CXXFLAGS@,$EXTRA_CXXFLAGS,;t t
s,@ADA_TRACE@,$ADA_TRACE,;t t
@@ -28935,7 +30269,6 @@ s,@WITH_OVERWRITE@,$WITH_OVERWRITE,;t t
s,@TICS_LIST@,$TICS_LIST,;t t
s,@TINFO_LIST@,$TINFO_LIST,;t t
s,@SHLIB_LIST@,$SHLIB_LIST,;t t
-s,@NCURSES_TREE@,$NCURSES_TREE,;t t
s,@FORM_NAME@,$FORM_NAME,;t t
s,@MENU_NAME@,$MENU_NAME,;t t
s,@PANEL_NAME@,$PANEL_NAME,;t t
@@ -28980,11 +30313,11 @@ EOF
ac_sed_cmds=
while "$ac_more_lines"; do
if test "$ac_beg" -gt 1; then
- sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+ sed "1,${ac_beg}d; ${ac_end}q" "$tmp"/subs.sed >"$tmp"/subs.frag
else
- sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+ sed "${ac_end}q" "$tmp"/subs.sed >"$tmp"/subs.frag
fi
- if test ! -s $tmp/subs.frag; then
+ if test ! -s "$tmp"/subs.frag; then
ac_more_lines=false
else
# The purpose of the label and of the branching condition is to
@@ -28992,17 +30325,17 @@ EOF
# is no need to browse any of the substitutions).
# These are the two extra sed commands mentioned above.
(echo ':t
- /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
+ /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat "$tmp"/subs.frag) >"$tmp"/subs-$ac_sed_frag.sed
# It is possible to make a multiline substitution using escaped newlines.
# Ensure that we do not split the substitution between script fragments.
ac_BEG=$ac_end
ac_END=`expr "$ac_end" + "$ac_max_sed_lines"`
- sed "1,${ac_BEG}d; ${ac_END}p; q" $tmp/subs.sed >$tmp/subs.next
- if test -s $tmp/subs.next; then
- grep '^s,@[^@,][^@,]*@,.*\\$' $tmp/subs.next >$tmp/subs.edit
- if test ! -s $tmp/subs.edit; then
- grep "^s,@[^@,][^@,]*@,.*,;t t$" $tmp/subs.next >$tmp/subs.edit
- if test ! -s $tmp/subs.edit; then
+ sed "1,${ac_BEG}d; ${ac_END}p; q" "$tmp"/subs.sed >"$tmp"/subs.next
+ if test -s "$tmp"/subs.next; then
+ grep '^s,@[^@,][^@,]*@,.*\\$' "$tmp"/subs.next >"$tmp"/subs.edit
+ if test ! -s "$tmp"/subs.edit; then
+ grep "^s,@[^@,][^@,]*@,.*,;t t$" "$tmp"/subs.next >"$tmp"/subs.edit
+ if test ! -s "$tmp"/subs.edit; then
if test "$ac_beg" -gt 1; then
ac_end=`expr "$ac_end" - 1`
continue
@@ -29012,9 +30345,9 @@ EOF
fi
if test -z "$ac_sed_cmds"; then
- ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
+ ac_sed_cmds="sed -f \"$tmp\"/subs-$ac_sed_frag.sed"
else
- ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
+ ac_sed_cmds="$ac_sed_cmds | sed -f \"$tmp\"/subs-$ac_sed_frag.sed"
fi
ac_sed_frag=`expr "$ac_sed_frag" + 1`
ac_beg=$ac_end
@@ -29022,7 +30355,7 @@ EOF
fi
done
if test -z "$ac_sed_cmds"; then
- ac_sed_cmds=cat
+ ac_sed_cmds="cat"
fi
fi # test -n "$CONFIG_FILES"
@@ -29032,7 +30365,7 @@ for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
# Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
case "$ac_file" in
- | *:- | *:-:* ) # input from stdin
- cat >$tmp/stdin
+ cat >"$tmp"/stdin
ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
*:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
@@ -29069,7 +30402,7 @@ for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do
esac
done; }
- ac_dir_suffix="/`echo $ac_dir|sed 's,^\./,,'`"
+ ac_dir_suffix="/`echo "$ac_dir"|sed 's,^\./,,'`"
# A "../" for each directory in $ac_dir_suffix.
ac_dots=`echo "$ac_dir_suffix" | sed 's,/[^/]*,../,g'`
else
@@ -29097,7 +30430,7 @@ done; }
esac
if test x"$ac_file" != x-; then
- { echo "$as_me:29100: creating $ac_file" >&5
+ { echo "$as_me:30433: creating $ac_file" >&5
echo "$as_me: creating $ac_file" >&6;}
rm -f "$ac_file"
fi
@@ -29112,23 +30445,23 @@ echo "$as_me: creating $ac_file" >&6;}
ac_file_inputs=`IFS=:
for f in $ac_file_in; do
case $f in
- -) echo $tmp/stdin ;;
+ -) echo "$tmp"/stdin ;;
[\\/$]*)
# Absolute (can't be DOS-style, as IFS=:)
- test -f "$f" || { { echo "$as_me:29118: error: cannot find input file: $f" >&5
+ test -f "$f" || { { echo "$as_me:30451: error: cannot find input file: $f" >&5
echo "$as_me: error: cannot find input file: $f" >&2;}
{ (exit 1); exit 1; }; }
- echo $f;;
+ echo "$f";;
*) # Relative
if test -f "$f"; then
# Build tree
- echo $f
+ echo "$f"
elif test -f "$srcdir/$f"; then
# Source tree
echo "$srcdir/$f"
else
# /dev/null tree
- { { echo "$as_me:29131: error: cannot find input file: $f" >&5
+ { { echo "$as_me:30464: error: cannot find input file: $f" >&5
echo "$as_me: error: cannot find input file: $f" >&2;}
{ (exit 1); exit 1; }; }
fi;;
@@ -29144,7 +30477,7 @@ cat >>"$CONFIG_STATUS" <<\EOF
if test -n "$ac_seen"; then
ac_used=`grep '@datarootdir@' "$ac_item"`
if test -z "$ac_used"; then
- { echo "$as_me:29147: WARNING: datarootdir was used implicitly but not set:
+ { echo "$as_me:30480: WARNING: datarootdir was used implicitly but not set:
$ac_seen" >&5
echo "$as_me: WARNING: datarootdir was used implicitly but not set:
$ac_seen" >&2;}
@@ -29153,7 +30486,7 @@ $ac_seen" >&2;}
fi
ac_seen=`grep '${datarootdir}' "$ac_item"`
if test -n "$ac_seen"; then
- { echo "$as_me:29156: WARNING: datarootdir was used explicitly but not set:
+ { echo "$as_me:30489: WARNING: datarootdir was used explicitly but not set:
$ac_seen" >&5
echo "$as_me: WARNING: datarootdir was used explicitly but not set:
$ac_seen" >&2;}
@@ -29178,38 +30511,46 @@ s,@configure_input@,$configure_input,;t t
s,@srcdir@,$ac_srcdir,;t t
s,@top_srcdir@,$ac_top_srcdir,;t t
s,@INSTALL@,$ac_INSTALL,;t t
-" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
- rm -f $tmp/stdin
+" $ac_file_inputs | (eval "$ac_sed_cmds") >"$tmp"/out
+ rm -f "$tmp"/stdin
+EOF
+test -n "${FGREP}" || FGREP="grep -F"
+test -n "${EGREP}" || EGREP="grep -E"
+cat >>"$CONFIG_STATUS" <<EOF
+ test -n "\${FGREP}" || FGREP="$FGREP"
+ test -n "\${EGREP}" || EGREP="$EGREP"
+EOF
+cat >>"$CONFIG_STATUS" <<\EOF
if test x"$ac_file" != x-; then
cp "$tmp/out" "$ac_file"
for ac_name in prefix exec_prefix datarootdir
do
- ac_seen=`${FGREP-fgrep} -n '${'$ac_name'[:=].*}' "$ac_file"`
+ ac_seen=`$FGREP -n '${'$ac_name'[:=].*}' "$ac_file"`
if test -n "$ac_seen"; then
- ac_init=`${EGREP-egrep} '[ ]*'$ac_name'[ ]*=' "$ac_file"`
+ ac_init=`$EGREP '[ ]*'$ac_name'[ ]*=' "$ac_file"`
if test -z "$ac_init"; then
- ac_seen=`echo "$ac_seen" |sed -e 's,^,'$ac_file':,'`
- { echo "$as_me:29193: WARNING: Variable $ac_name is used but was not set:
+ ac_seen=`echo "$ac_seen" |sed -e 's,^,'"$ac_file"':,'`
+ { echo "$as_me:30534: WARNING: Variable $ac_name is used but was not set:
$ac_seen" >&5
echo "$as_me: WARNING: Variable $ac_name is used but was not set:
$ac_seen" >&2;}
fi
fi
done
- ${EGREP-egrep} -n '@[a-z_][a-z_0-9]+@' "$ac_file" >$tmp/out
- ${EGREP-egrep} -n '@[A-Z_][A-Z_0-9]+@' "$ac_file" >>$tmp/out
- if test -s $tmp/out; then
- ac_seen=`sed -e 's,^,'$ac_file':,' < $tmp/out`
- { echo "$as_me:29204: WARNING: Some variables may not be substituted:
+ $EGREP -n '@[a-z_][a-z_0-9]+@' "$ac_file" >"$tmp"/out
+ $EGREP -n '@[A-Z_][A-Z_0-9]+@' "$ac_file" >>"$tmp"/out
+ if test -s "$tmp"/out; then
+ ac_seen=`sed -e 's,^,'"$ac_file"':,' < "$tmp"/out`
+ { echo "$as_me:30545: WARNING: Some variables may not be substituted:
$ac_seen" >&5
echo "$as_me: WARNING: Some variables may not be substituted:
$ac_seen" >&2;}
fi
else
- cat $tmp/out
+ cat "$tmp"/out
fi
- rm -f $tmp/out
+ rm -f "$tmp"/out
done
EOF
@@ -29242,7 +30583,7 @@ for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
# Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
case "$ac_file" in
- | *:- | *:-:* ) # input from stdin
- cat >$tmp/stdin
+ cat >"$tmp"/stdin
ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
*:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
@@ -29250,7 +30591,7 @@ for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
* ) ac_file_in=$ac_file.in ;;
esac
- test x"$ac_file" != x- && { echo "$as_me:29253: creating $ac_file" >&5
+ test x"$ac_file" != x- && { echo "$as_me:30594: creating $ac_file" >&5
echo "$as_me: creating $ac_file" >&6;}
# First look for the input files in the build tree, otherwise in the
@@ -29258,10 +30599,10 @@ echo "$as_me: creating $ac_file" >&6;}
ac_file_inputs=`IFS=:
for f in $ac_file_in; do
case $f in
- -) echo $tmp/stdin ;;
+ -) echo "$tmp"/stdin ;;
[\\/$]*)
# Absolute (can't be DOS-style, as IFS=:)
- test -f "$f" || { { echo "$as_me:29264: error: cannot find input file: $f" >&5
+ test -f "$f" || { { echo "$as_me:30605: error: cannot find input file: $f" >&5
echo "$as_me: error: cannot find input file: $f" >&2;}
{ (exit 1); exit 1; }; }
echo $f;;
@@ -29274,14 +30615,14 @@ echo "$as_me: error: cannot find input file: $f" >&2;}
echo "$srcdir/$f"
else
# /dev/null tree
- { { echo "$as_me:29277: error: cannot find input file: $f" >&5
+ { { echo "$as_me:30618: error: cannot find input file: $f" >&5
echo "$as_me: error: cannot find input file: $f" >&2;}
{ (exit 1); exit 1; }; }
fi;;
esac
done` || { (exit 1); exit 1; }
# Remove the trailing spaces.
- sed 's/[ ]*$//' $ac_file_inputs >$tmp/in
+ sed 's/[ ]*$//' $ac_file_inputs >"$tmp"/in
EOF
@@ -29313,9 +30654,9 @@ echo ' cat >> conftest.edit <<CEOF
/@DEFS@/r conftest.frag
/@DEFS@/d
CEOF
-sed -f conftest.edit $tmp/in > $tmp/out
-rm -f $tmp/in
-mv $tmp/out $tmp/in
+sed -f conftest.edit "$tmp"/in > "$tmp"/out
+rm -f "$tmp"/in
+mv "$tmp"/out "$tmp"/in
rm -f conftest.edit conftest.frag
' >> "$CONFIG_STATUS"
@@ -29324,15 +30665,15 @@ cat >>"$CONFIG_STATUS" <<\EOF
# use $as_me), people would be surprised to read:
# /* config.h. Generated automatically by config.status. */
if test x"$ac_file" = x-; then
- echo "/* Generated automatically by configure. */" >$tmp/config.h
+ echo "/* Generated automatically by configure. */" >"$tmp"/config.h
else
- echo "/* $ac_file. Generated automatically by configure. */" >$tmp/config.h
+ echo "/* $ac_file. Generated automatically by configure. */" >"$tmp"/config.h
fi
- cat $tmp/in >>$tmp/config.h
- rm -f $tmp/in
+ cat "$tmp"/in >>"$tmp"/config.h
+ rm -f "$tmp"/in
if test x"$ac_file" != x-; then
if cmp -s "$ac_file" "$tmp/config.h" 2>/dev/null; then
- { echo "$as_me:29335: $ac_file is unchanged" >&5
+ { echo "$as_me:30676: $ac_file is unchanged" >&5
echo "$as_me: $ac_file is unchanged" >&6;}
else
ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
@@ -29368,8 +30709,8 @@ done; }
mv "$tmp/config.h" "$ac_file"
fi
else
- cat $tmp/config.h
- rm -f $tmp/config.h
+ cat "$tmp"/config.h
+ rm -f "$tmp"/config.h
fi
done
EOF
@@ -29431,11 +30772,11 @@ do
SHARED_LIB=
Libs_To_Make=
cf_awk_program=
- if test -n "${cf_cv_abi_version}" && test "x${cf_cv_abi_version}" != "x5"
+ if test -n "${cf_cv_abi_default}" && test "x${cf_cv_abi_default}" != "x5"
then
cf_awk_program="$cf_awk_program\
-/deprecated in ABI${cf_cv_abi_version}/ { next; }\
-{ sub(\"NCURSES([WT]+)?\", \"&${cf_cv_abi_version}\"); }\
+/deprecated in ABI${cf_cv_abi_default}/ { next; }\
+{ sub(\"NCURSES([WT]+)?\", \"&${cf_cv_abi_default}\"); }\
"
fi
@@ -29719,7 +31060,7 @@ cf_ITEM=`echo "$cf_item" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQ
(cygdll|msysdll|mingw|msvcdll)
test "x$with_shared_cxx" = xno && test -n "$verbose" && echo " overriding CXX_MODEL to SHARED" 1>&6
-echo "${as_me:-configure}:29722: testing overriding CXX_MODEL to SHARED ..." 1>&5
+echo "${as_me:-configure}:31063: testing overriding CXX_MODEL to SHARED ..." 1>&5
with_shared_cxx=yes
;;
@@ -29907,6 +31248,9 @@ eval cf_libname="\$${cf_map_lib_basename}_NAME"
traces=$LIB_TRACING \
MODEL=$cf_ITEM \
CXX_MODEL=$CXX_MODEL \
+ LIB_SUFFIX=$LIB_SUFFIX \
+ USE_LIB_SUFFIX=$USE_LIB_SUFFIX \
+ make_phony="${cf_cv_make_PHONY:-no}" \
model=$cf_subdir \
prefix=$cf_prefix \
suffix=$cf_suffix \
@@ -29954,6 +31298,21 @@ eval cf_libname="\$${cf_map_lib_basename}_NAME"
echo ' ( cd '$cf_dir' && ${MAKE} ${TOP_MFLAGS} $@ )' >>Makefile
done
+echo >> Makefile
+echo '# generated by CF_LIB_RULES' >> Makefile
+
+if test "x$cf_cv_make_PHONY" = xyes ; then
+ cat >> Makefile <<-CF_EOF
+
+ .PHONY : libs
+ .PHONY : lintlib
+ .PHONY : install.includes
+ .PHONY : uninstall.includes
+ .PHONY : install.libs
+ .PHONY : uninstall.libs
+CF_EOF
+fi
+
for cf_dir in $SRC_SUBDIRS
do
if test ! -d "$srcdir/$cf_dir" ; then
@@ -29972,6 +31331,15 @@ do
fi
if test -f "$srcdir/$cf_dir/modules" ; then
+
+ if test "x$cf_cv_make_PHONY" = xyes ; then
+ cat >> Makefile <<-CF_EOF
+
+ .PHONY : install.$cf_dir
+ .PHONY : uninstall.$cf_dir
+CF_EOF
+ fi
+
echo >> Makefile
if test -f "$srcdir/$cf_dir/headers" ; then
cat >> Makefile <<CF_EOF
@@ -29979,10 +31347,9 @@ install.includes \\
uninstall.includes \\
CF_EOF
fi
-if test "$cf_dir" != "c++" ; then
-echo 'lint \' >> Makefile
-fi
+
cat >> Makefile <<CF_EOF
+lint \\
libs \\
lintlib \\
install.libs \\
@@ -30004,6 +31371,14 @@ CF_EOF
fi
done
+if test "x$cf_cv_make_PHONY" = xyes ; then
+ cat >> Makefile <<-CF_EOF
+
+ .PHONY : install.data
+ .PHONY : uninstall.data
+CF_EOF
+fi
+
if test "x$cf_with_db_install" = xyes; then
cat >> Makefile <<CF_EOF
@@ -30020,6 +31395,15 @@ CF_EOF
fi
if test "x$cf_with_manpages" = xyes; then
+
+if test "x$cf_cv_make_PHONY" = xyes ; then
+ cat >> Makefile <<-CF_EOF
+
+ .PHONY : install.man
+ .PHONY : uninstall.man
+CF_EOF
+fi
+
cat >> Makefile <<CF_EOF
install.man \\
@@ -30033,22 +31417,10 @@ cat >> Makefile <<CF_EOF
distclean ::
rm -f config.cache config.log config.status Makefile include/ncurses_cfg.h
rm -f headers.sh headers.sed mk_shared_lib.sh
- rm -f edit_man.* man_alias.*
+ rm -f edit_man.* man_alias.* *.tmp
rm -rf \${DIRS_TO_MAKE}
CF_EOF
-# Special case: tack's manpage lives in its own directory.
-if test "x$cf_with_manpages" = xyes; then
-if test "x$cf_with_tack" = "xyes"; then
-cat >> Makefile <<CF_EOF
-
-install.man \\
-uninstall.man ::
- ( cd tack && \${MAKE} \${TOP_MFLAGS} \$@ )
-CF_EOF
-fi
-fi
-
rm -f headers.sed headers.sh
echo creating headers.sh
@@ -30145,6 +31517,13 @@ do
if test -f "$srcdir/$cf_dir/modules" ; then
if test "$cf_dir" != "c++" ; then
+ if test "x$cf_cv_make_PHONY" = xyes ; then
+ cat >> $cf_dir/Makefile <<-CF_EOF
+
+ .PHONY : depend
+CF_EOF
+ fi
+
cat >>$cf_dir/Makefile <<"CF_EOF"
depend : ${AUTO_SRC}
makedepend -- ${CPPFLAGS} -- ${C_SRC}
@@ -30155,6 +31534,13 @@ CF_EOF
fi
done
+if test "$MANPAGE_RENAMES" != no ; then
+ # Construct a sed-script to perform renaming within man-pages
+ test -n "$verbose" && echo "creating edit_man.sed"
+ test ! -d man && mkdir man
+ FGREP="${FGREP-grep -F}" $SHELL "$srcdir/man/make_sed.sh" "$MANPAGE_RENAMES" >./edit_man.sed
+fi
+
if test "x$cf_with_ada" = "xyes" && test "x$cf_cv_prog_gnat_correct" = "xyes"; then
if test -z "$USE_OLD_MAKERULES" ; then
$AWK -f "$srcdir/Ada95/mk-1st.awk" <"$srcdir/Ada95/src/modules" >>Ada95/src/Makefile
diff --git a/configure.in b/configure.in
index f2013a9fbbe9..2d6836cb7190 100644
--- a/configure.in
+++ b/configure.in
@@ -1,5 +1,5 @@
dnl***************************************************************************
-dnl Copyright 2018-2020,2021 Thomas E. Dickey *
+dnl Copyright 2018-2023,2024 Thomas E. Dickey *
dnl Copyright 1998-2017,2018 Free Software Foundation, Inc. *
dnl *
dnl Permission is hereby granted, free of charge, to any person obtaining a *
@@ -29,7 +29,7 @@ dnl***************************************************************************
dnl
dnl Author: Thomas E. Dickey 1995-on
dnl
-dnl $Id: configure.in,v 1.729 2021/01/09 11:20:52 tom Exp $
+dnl $Id: configure.in,v 1.779 2024/04/10 08:04:00 tom Exp $
dnl Process this file with autoconf to produce a configure script.
dnl
dnl For additional information, see
@@ -38,7 +38,7 @@ dnl https://invisible-island.net/autoconf/my-autoconf.html
dnl
dnl ---------------------------------------------------------------------------
AC_PREREQ(2.52.20210101)
-AC_REVISION($Revision: 1.729 $)
+AC_REVISION($Revision: 1.779 $)
AC_INIT(ncurses/base/lib_initscr.c)
AC_CONFIG_HEADER(include/ncurses_cfg.h:include/ncurses_cfg.hin)
@@ -61,6 +61,9 @@ CF_CFG_DEFAULTS
### Defaults for ncurses ABI
CF_ABI_DEFAULTS
+### override ABI version, e.g., packagers
+CF_WITH_ABI_ALTERED
+
### Checks for programs.
AC_ARG_WITH(ada,
[ --without-ada suppress check for Ada compiler, don't build demo],
@@ -183,22 +186,6 @@ AC_ARG_WITH(progs,
[cf_with_progs=yes])
AC_MSG_RESULT($cf_with_progs)
-if test -f "$srcdir/tack/tack.h" ; then
- if test "x$cross_compiling" = xyes ; then
- CF_VERBOSE(ignoring tack because we are cross-compiling)
- cf_with_tack=no
- else
- AC_MSG_CHECKING(if you want to build the tack program)
- AC_ARG_WITH(tack,
- [ --without-tack suppress build/install with tack program],
- [cf_with_tack=$withval],
- [cf_with_tack=$cf_with_progs])
- AC_MSG_RESULT($cf_with_tack)
- fi
-else
- cf_with_tack=no
-fi
-
AC_MSG_CHECKING(if you want to build test-programs)
AC_ARG_WITH(tests,
[ --without-tests suppress build/install with test-programs],
@@ -215,7 +202,6 @@ AC_MSG_RESULT($with_curses_h)
modules_to_build="ncurses"
test "X$cf_with_progs" != Xno && modules_to_build="$modules_to_build progs"
-test "X$cf_with_tack" != Xno && modules_to_build="$modules_to_build tack"
modules_to_build="$modules_to_build panel menu form"
AC_ARG_PROGRAM
@@ -231,7 +217,7 @@ AC_SYS_LONG_FILE_NAMES
# of package conflict.
cf_config_suffix=
AC_ARG_WITH(config-suffix,
- [ --with-config-suffix=X suffixes ncursesXX-config file],
+ [ --with-config-suffix=X name ncurses*X-config file with X],
[case "x$withval" in
(xyes|xno)
AC_MSG_WARN(expected a value for config-suffix option)
@@ -247,9 +233,9 @@ CF_WITH_PKG_CONFIG_LIBDIR
CF_ENABLE_PC_FILES
if test -z "$MAKE_PC_FILES"
then
- AC_MSG_CHECKING(for suffix to add to pc-files)
+ AC_MSG_CHECKING(for suffix to add to pkg-config files)
AC_ARG_WITH(pc-suffix,
- [ --with-pc-suffix suffixes pc-files],
+ [[ --with-pc-suffix[=XXX] suffix pkg-config files with XXX]],
[case "x$withval" in
(xyes|xno)
PC_MODULE_SUFFIX=
@@ -280,6 +266,7 @@ fi
# do this after mixed-case option (tags/TAGS is not as important as tic).
AC_PROG_MAKE_SET
+CF_MAKE_PHONY
CF_MAKE_TAGS
CF_MAKEFLAGS
@@ -293,16 +280,16 @@ CF_AR_FLAGS
dnl Special option for use by system-builders: the install-prefix is used to
dnl adjust the location into which the actual install is done, so that an
dnl archive can be built without modifying the host system's configuration.
-AC_MSG_CHECKING(if you have specified an install-prefix)
+AC_MSG_CHECKING(for an installation directory prefix)
AC_ARG_WITH(install-prefix,
- [ --with-install-prefix prefixes actual install-location ($DESTDIR)],
+ [ --with-install-prefix=DESTDIR use DESTDIR as installation directory prefix],
[case "x$withval" in
(xyes|xno)
;;
(*) DESTDIR="$withval"
;;
esac])
-AC_MSG_RESULT($DESTDIR)
+AC_MSG_RESULT([${DESTDIR:-(none)}])
AC_SUBST(DESTDIR)
###############################################################################
@@ -419,6 +406,10 @@ LIB_SUFFIX=
AC_SUBST(LIB_SUFFIX)
CF_PATHSEP
+# headers needed for checks...
+AC_CHECK_DECL(exit)
+AC_HEADER_DIRENT
+
###############################################################################
AC_MSG_CHECKING(if you want to build a separate terminfo library)
@@ -458,7 +449,7 @@ case "$DFT_LWR_MODEL" in
(shared) LD_MODEL='' ;;
esac
AC_SUBST(LD_MODEL)dnl the type of link (e.g., -g or -pg)
-AC_MSG_RESULT($LD_MODEL)
+AC_MSG_RESULT([${LD_MODEL:-(none)}])
case "$DFT_LWR_MODEL" in
(shared)
@@ -553,7 +544,7 @@ fi
### Depending on the system, someone may use rpath to build ncurses but not
# want users of the package to rely upon that feature. Give those people an
# option to suppress that detail from EXTRA_LDFLAGS.
-EXTRA_PKG_LDFLAGS="$EXTRA_LDFLAGS"
+EXTRA_PKG_LDFLAGS="$LDFLAGS $EXTRA_LDFLAGS"
if test -n "$EXTRA_PKG_LDFLAGS"
then
AC_MSG_CHECKING(if you want to disable extra LDFLAGS for package-scripts)
@@ -571,10 +562,10 @@ AC_SUBST(EXTRA_PKG_LDFLAGS)
CF_HELP_MESSAGE(Fine-Tuning Your Configuration:)
### use option --with-extra-suffix to append suffix to headers and libraries
-AC_MSG_CHECKING(if you wish to append extra suffix to header/library paths)
+AC_MSG_CHECKING(for extra suffix to append to header/library paths)
EXTRA_SUFFIX=
AC_ARG_WITH(extra-suffix,
- [ --with-extra-suffix=X append extra suffix to header/library paths],
+ [[ --with-extra-suffix[=X] append extra suffix X to header/library paths]],
[case x$withval in
(xno)
;;
@@ -586,7 +577,7 @@ AC_ARG_WITH(extra-suffix,
;;
esac
])
-AC_MSG_RESULT($EXTRA_SUFFIX)
+AC_MSG_RESULT([${EXTRA_SUFFIX:-(none)}])
AC_SUBST(EXTRA_SUFFIX)
### use option --disable-overwrite to leave out the link to -lcurses
@@ -634,12 +625,12 @@ else
fi
AC_SUBST(NCURSES_USE_DATABASE)
-AC_MSG_CHECKING(for list of fallback descriptions)
+AC_MSG_CHECKING(for list of fallback terminal descriptions)
AC_ARG_WITH(fallbacks,
[ --with-fallbacks=XXX specify list of fallback terminal descriptions],
[with_fallback=$withval],
[with_fallback=])
-AC_MSG_RESULT($with_fallback)
+AC_MSG_RESULT([${with_fallback:-(none)}])
case ".$with_fallback" in
(.|.no)
@@ -692,11 +683,20 @@ AC_MSG_RESULT($with_xterm_new)
WHICH_XTERM=$with_xterm_new
AC_SUBST(WHICH_XTERM)
+case $host_os in
+(*linux-gnu|*cygwin|*mingw32|*msys)
+ want_xterm_kbs=DEL
+ ;;
+(*)
+ want_xterm_kbs=BS
+ ;;
+esac
+
AC_MSG_CHECKING(if xterm backspace sends BS or DEL)
AC_ARG_WITH(xterm-kbs,
- [ --with-xterm-kbs=XXX specify if xterm backspace sends BS or DEL],
+ [[ --with-xterm-kbs[=XXX] specify if xterm backspace sends BS or DEL]],
[with_xterm_kbs=$withval],
- [with_xterm_kbs=BS])
+ [with_xterm_kbs=auto])
case x$with_xterm_kbs in
(xyes|xno|xBS|xbs|x8)
with_xterm_kbs=BS
@@ -704,6 +704,9 @@ case x$with_xterm_kbs in
(xDEL|xdel|x127)
with_xterm_kbs=DEL
;;
+(xauto)
+ with_xterm_kbs=$want_xterm_kbs
+ ;;
(*)
with_xterm_kbs=$withval
;;
@@ -712,6 +715,11 @@ AC_MSG_RESULT($with_xterm_kbs)
XTERM_KBS=$with_xterm_kbs
AC_SUBST(XTERM_KBS)
+if test "x$with_xterm_kbs" != "x$want_xterm_kbs"
+then
+ AC_MSG_WARN([expected --with-xterm-kbs=$want_xterm_kbs for $host_os, have $with_xterm_kbs])
+fi
+
MAKE_TERMINFO=
if test "$use_database" = no ; then
TERMINFO="${datadir}/terminfo"
@@ -757,7 +765,7 @@ AC_ARG_ENABLE(big-core,
[AC_TRY_RUN([
#include <stdlib.h>
#include <string.h>
-int main() {
+int main(void) {
unsigned long n = 6000000L;
char *s = malloc(n);
if (s != 0)
@@ -844,13 +852,29 @@ AC_ARG_ENABLE(home-terminfo,
AC_MSG_RESULT($with_home_terminfo)
test "x$with_home_terminfo" = "xyes" && AC_DEFINE(USE_HOME_TERMINFO,1,[Define to 1 if $HOME/.terminfo feature is wanted])
-AC_MSG_CHECKING(if you want to use restricted environment when running as root)
+AC_MSG_CHECKING(if you want to permit root to use ncurses environment variables)
AC_ARG_ENABLE(root-environ,
- [ --disable-root-environ restrict environment when running as root],
+ [ --disable-root-environ restrict root use of ncurses environment variables],
[with_root_environ=$enableval],
[with_root_environ=yes])
AC_MSG_RESULT($with_root_environ)
-test "x$with_root_environ" = xyes && AC_DEFINE(USE_ROOT_ENVIRON,1,[Define to 1 if environment should be restricted for root user])
+test "x$with_root_environ" = xyes && AC_DEFINE(USE_ROOT_ENVIRON,1,[Define to 1 if root/setuid application is allowed to use ncurses environment])
+
+AC_MSG_CHECKING(if you want to permit setuid programs to access all files)
+AC_ARG_ENABLE(root-access,
+ [ --disable-root-access restrict file-access when running setuid],
+ [with_root_access=$enableval],
+ [with_root_access=yes])
+AC_MSG_RESULT($with_root_access)
+test "x$with_root_access" = xyes && AC_DEFINE(USE_ROOT_ACCESS,1,[Define to 1 if setuid is allowed all file-access])
+
+AC_MSG_CHECKING(if you want to permit setuid use of ncurses environment variables)
+AC_ARG_ENABLE(setuid-environ,
+ [ --disable-setuid-environ restrict setuid use of ncurses environment variables],
+ [with_setuid_environ=$enableval],
+ [with_setuid_environ=$with_root_environ])
+AC_MSG_RESULT($with_setuid_environ)
+test "x$with_setuid_environ" = xyes && AC_DEFINE(USE_SETUID_ENVIRON,1,[Define to 1 if setuid/setgid application is allowed to use ncurses environment])
### Use option --enable-symlinks to make tic use symlinks, not hard links
### to reduce storage requirements for the terminfo database.
@@ -923,9 +947,9 @@ NCURSES_OK_WINT_T=
AC_MSG_CHECKING(if you want wide-character code)
AC_ARG_ENABLE(widec,
- [ --enable-widec compile with wide-char/UTF-8 code],
+ [ --disable-widec compile without wide character and UTF-8 support],
[with_widec=$enableval],
- [with_widec=no])
+ [with_widec=$cf_dft_widec])
AC_MSG_RESULT($with_widec)
NCURSES_WCWIDTH_GRAPHICS=1
@@ -935,8 +959,17 @@ if test "x$with_widec" = xyes ; then
if test "x$disable_lib_suffixes" = xno ; then
LIB_SUFFIX="w${LIB_SUFFIX}"
fi
- AC_DEFINE(USE_WIDEC_SUPPORT,1,[Define to 1 to compile with wide-char/UTF-8 code])
- AC_DEFINE(NCURSES_WIDECHAR,1,[Define to 1 to compile with wide-char/UTF-8 code])
+ AC_DEFINE(USE_WIDEC_SUPPORT,1,[Define to 1 to compile with wide character and UTF-8 support])
+ AC_DEFINE(NCURSES_WIDECHAR,1,[Define to 1 to compile with wide character and UTF-8 support])
+ case "$CPPFLAGS" in
+ (*_XOPEN_SOURCE=*)
+ ;;
+ (*)
+ AC_MSG_WARN(_XOPEN_SOURCE feature test macro appears to be predefined)
+ # CPPFLAGS="$CPPFLAGS -DNCURSES_WIDECHAR"
+ CPPFLAGS_after_XOPEN="$CPPFLAGS_after_XOPEN -DNCURSES_WIDECHAR"
+ ;;
+ esac
CF_CHECK_WCHAR_H
CF_CHECK_WCWIDTH_GRAPHICS
@@ -944,7 +977,7 @@ if test "x$with_widec" = xyes ; then
# with_overwrite=no
NCURSES_CH_T=cchar_t
- AC_CHECK_FUNCS(putwc btowc wctob mbtowc wctomb mblen mbrlen mbrtowc wcsrtombs mbsrtowcs wcstombs mbstowcs)
+ AC_CHECK_FUNCS(putwc btowc wctob wmemchr mbtowc wctomb mblen mbrlen mbrtowc wcsrtombs mbsrtowcs wcstombs mbstowcs)
if test "x$ac_cv_func_putwc" != xyes ; then
CF_UTF8_LIB
if test "$cf_cv_utf8_lib" != no ; then
@@ -1010,72 +1043,66 @@ else
with_tic_depends=no
fi
-### use option --disable-wattr-macros to suppress wattr* macros from curses.h
-AC_MSG_CHECKING(if you want to suppress wattr* macros to help with ncurses5/ncurses6 transition)
+### use option --enable-wattr-macros to enable wattr* macros in curses.h
+AC_MSG_CHECKING(if you want to enable wattr* macros)
AC_ARG_ENABLE(wattr-macros,
- [ --disable-wattr-macros suppress wattr* macros to help with ncurses5/ncurses6 transition],
+ [ --enable-wattr-macros enable wattr* macros],
[with_wattr_macros=$enableval],
- [with_wattr_macros=yes])
+ [with_wattr_macros=no])
if [[ "x$with_wattr_macros" != xyes ]]; then
NCURSES_WATTR_MACROS=0
- AC_MSG_RESULT(yes)
+ AC_MSG_RESULT(no)
else
NCURSES_WATTR_MACROS=1
- AC_MSG_RESULT(no)
+ AC_MSG_RESULT(yes)
fi
AC_SUBST(NCURSES_WATTR_MACROS)
CF_WITH_X11_RGB
### use option --with-bool to override bool's type
-AC_MSG_CHECKING(for type of bool)
-AC_ARG_WITH(bool,
- [ --with-bool=TYPE override fallback type of bool variable],
- [NCURSES_BOOL="$withval"],
- [NCURSES_BOOL=auto])
-AC_MSG_RESULT($NCURSES_BOOL)
-AC_SUBST(NCURSES_BOOL)
+CF_WITH_TYPE(bool,
+ [ --with-bool=TYPE fall back to TYPE for curses 'bool' typedef],
+ NCURSES_BOOL,
+ auto)
AC_MSG_CHECKING(for alternate terminal capabilities file)
AC_ARG_WITH(caps,
[ --with-caps=alt compile with alternate Caps file],
[TERMINFO_CAPS=Caps.$withval],
[TERMINFO_CAPS=Caps])
-test -f "${srcdir}/include/${TERMINFO_CAPS}" || TERMINFO_CAPS=Caps
+if test ! -f "${srcdir}/include/${TERMINFO_CAPS}"
+then
+ AC_MSG_WARN(file not found: "${srcdir}/include/${TERMINFO_CAPS}")
+ TERMINFO_CAPS=Caps
+fi
AC_MSG_RESULT($TERMINFO_CAPS)
AC_SUBST(TERMINFO_CAPS)
### use option --with-chtype to override chtype's type
-AC_MSG_CHECKING(for type of chtype)
-AC_ARG_WITH(chtype,
+CF_WITH_TYPE(chtype,
[ --with-chtype=TYPE override type of chtype],
- [NCURSES_CHTYPE="$withval"],
- [NCURSES_CHTYPE=$cf_dft_chtype])
-AC_MSG_RESULT($NCURSES_CHTYPE)
+ NCURSES_CHTYPE,
+ $cf_dft_chtype)
### use option --with-ospeed to override ospeed's type
-AC_MSG_CHECKING(for type of ospeed)
-AC_ARG_WITH(ospeed,
+CF_WITH_TYPE(ospeed,
[ --with-ospeed=TYPE override type of ospeed variable],
- [NCURSES_OSPEED="$withval"],
- [NCURSES_OSPEED=short])
-AC_MSG_RESULT($NCURSES_OSPEED)
-AC_SUBST(NCURSES_OSPEED)
+ NCURSES_OSPEED,
+ short)
### use option --with-mmask-t to override mmask_t's type
-AC_MSG_CHECKING(for type of mmask_t)
-AC_ARG_WITH(mmask-t,
+CF_WITH_TYPE(mmask-t,
[ --with-mmask-t=TYPE override type of mmask_t],
- [NCURSES_MMASK_T="$withval"],
- [NCURSES_MMASK_T=$cf_dft_mmask_t])
-AC_MSG_RESULT($NCURSES_MMASK_T)
+ NCURSES_MMASK_T,
+ $cf_dft_mmask_t)
### use option --with-ccharw-max to override CCHARW_MAX size
AC_MSG_CHECKING(for size CCHARW_MAX)
AC_ARG_WITH(ccharw-max,
[ --with-ccharw-max=XXX override size CCHARW_MAX],
[NCURSES_CCHARW_MAX="$withval"],
- [NCURSES_CCHARW_MAX=5])
+ [NCURSES_CCHARW_MAX=$cf_dft_ccharw_max])
AC_MSG_RESULT($NCURSES_CCHARW_MAX)
AC_SUBST(NCURSES_CCHARW_MAX)
@@ -1085,23 +1112,20 @@ if test "$ac_cv_sizeof_signed_char" = 1 ; then
else
NCURSES_SBOOL="char"
fi
-AC_MSG_CHECKING(if you want to use signed Boolean array in term.h)
+AC_MSG_CHECKING(whether to use signed chars for Boolean array in term.h)
AC_ARG_ENABLE(signed-char,
- [ --enable-signed-char compile using signed Boolean's in term.h],
+ [ --enable-signed-char use signed chars for Boolean array in term.h],
[with_signed_char=$enableval],
- [with_signed_char=no])
+ [with_signed_char=$cf_dft_signed_char])
AC_MSG_RESULT($with_signed_char)
test "x$with_signed_char" != xyes && NCURSES_SBOOL="char"
AC_SUBST(NCURSES_SBOOL)
### use option --with-tparm-arg to override tparm's argument type
-AC_MSG_CHECKING(for type of tparm args)
-AC_ARG_WITH(tparm-arg,
+CF_WITH_TYPE(tparm-arg,
[ --with-tparm-arg=TYPE override parameter type of tparm],
- [NCURSES_TPARM_ARG="$withval"],
- [NCURSES_TPARM_ARG=$cf_dft_tparm_arg])
-AC_MSG_RESULT($NCURSES_TPARM_ARG)
-AC_SUBST(NCURSES_TPARM_ARG)
+ NCURSES_TPARM_ARG,
+ $cf_dft_tparm_arg)
### Enable compiling-in rcs id's
AC_MSG_CHECKING(if RCS identifiers should be compiled-in)
@@ -1135,7 +1159,6 @@ if test "x$with_ext_funcs" = xyes ; then
AC_DEFINE(HAVE_RESIZE_TERM,1,[Define to 1 to enable resize_term() function in test-programs])
AC_DEFINE(HAVE_TERM_ENTRY_H,1,[Define to 1 to enable term_entry() function in test-programs])
AC_DEFINE(HAVE_USE_DEFAULT_COLORS,1,[Define to 1 to enable use_default_colors() function in test-programs])
- AC_DEFINE(HAVE_USE_EXTENDED_NAMES,1,[Define to 1 to enable use_extended_names() function in test-programs])
AC_DEFINE(HAVE_USE_SCREEN,1,[Define to 1 to enable use_screen() function in test-programs])
AC_DEFINE(HAVE_USE_WINDOW,1,[Define to 1 to enable use_window() function in test-programs])
AC_DEFINE(HAVE_WRESIZE,1,[Define to 1 to enable wresize() function in test-programs])
@@ -1225,11 +1248,18 @@ AC_ARG_ENABLE(ext-mouse,
[with_ext_mouse=$enableval],
[with_ext_mouse=$cf_dft_ext_mouse])
AC_MSG_RESULT($with_ext_mouse)
-NCURSES_MOUSE_VERSION=1
if test "x$with_ext_mouse" = xyes ; then
- NCURSES_MOUSE_VERSION=2
CF_NCURSES_ABI_6
fi
+
+if test $cf_cv_abi_default -le 5 ; then
+ NCURSES_MOUSE_VERSION=1
+elif test $cf_cv_abi_default -le 6 ; then
+ NCURSES_MOUSE_VERSION=2
+else
+ NCURSES_MOUSE_VERSION=3
+fi
+
AC_SUBST(NCURSES_MOUSE_VERSION)
### use option --enable-ext-putwin to turn on extended screendumps
@@ -1258,7 +1288,14 @@ AC_ARG_ENABLE(sigwinch,
[with_sigwinch=$enableval],
[with_sigwinch=$with_ext_funcs])
AC_MSG_RESULT($with_sigwinch)
-test "x$with_sigwinch" = xyes && AC_DEFINE(USE_SIGWINCH,1,[Define to 1 to compile with SIGWINCH handler])
+if test "x$with_sigwinch" = xyes
+then
+ AC_DEFINE(USE_SIGWINCH,1,[Define to 1 to compile with SIGWINCH handler])
+ cf_cv_enable_sigwinch=1
+else
+ cf_cv_enable_sigwinch=0
+fi
+AC_SUBST(cf_cv_enable_sigwinch)
### use option --enable-tcap-names to allow user to define new capabilities
AC_MSG_CHECKING(if you want user-definable terminal capabilities like termcap)
@@ -1268,7 +1305,10 @@ AC_ARG_ENABLE(tcap-names,
[with_tcap_names=$with_ext_funcs])
AC_MSG_RESULT($with_tcap_names)
NCURSES_XNAMES=0
-test "x$with_tcap_names" = xyes && NCURSES_XNAMES=1
+if test "x$with_tcap_names" = xyes; then
+ NCURSES_XNAMES=1
+ AC_DEFINE(NCURSES_XNAMES,1,[Define to 1 to compile with user-definable terminal capabilities])
+fi
AC_SUBST(NCURSES_XNAMES)
##############################################################################
@@ -1358,19 +1398,19 @@ if test "x$with_reentrant" = xyes ; then
else
cf_cv_enable_reentrant=0
cf_cv_enable_opaque="NCURSES_OPAQUE"
- NCURSES_SIZE_T=short
+ NCURSES_SIZE_T=$cf_dft_ordinate_type
fi
AC_SUBST(cf_cv_enable_reentrant)
AC_SUBST(cf_cv_enable_opaque)
AC_SUBST(NCURSES_SIZE_T)
-AC_MSG_CHECKING(if you want opaque curses-library structures)
-CF_ARG_ENABLE(opaque-curses,
- [ --enable-opaque-curses make curses WINDOW, etc., "opaque"],
- [enable_opaque_curses=yes],[
+AC_MSG_CHECKING(whether curses library structures should be opaque)
+CF_ARG_DISABLE(opaque-curses,
+ [ --disable-opaque-curses do not make WINDOW, etc., structures opaque],
+ [enable_opaque_curses=no],[
test "$cf_cv_enable_reentrant" = 1 && enable_opaque_curses=yes
- test "$cf_cv_enable_reentrant" = 1 || enable_opaque_curses=no
+ test "$cf_cv_enable_reentrant" = 1 || enable_opaque_curses=$cf_dft_opaque_curses
])
AC_MSG_RESULT($enable_opaque_curses)
@@ -1378,22 +1418,22 @@ test "$cf_cv_enable_reentrant" = 1 && \
test "$enable_opaque_curses" = no && \
AC_MSG_ERROR(reentrant configuration requires opaque library)
-AC_MSG_CHECKING(if you want opaque form-library structures)
-AC_ARG_ENABLE(opaque-form,
- [ --enable-opaque-form make form-library structures "opaque"],
- [enable_opaque_form=yes],[enable_opaque_form=no])
+AC_MSG_CHECKING(whether form library structures should be opaque)
+CF_ARG_DISABLE(opaque-form,
+ [ --disable-opaque-form do not make form library structures opaque],
+ [enable_opaque_form=no],[enable_opaque_form=$cf_dft_opaque_curses])
AC_MSG_RESULT($enable_opaque_form)
-AC_MSG_CHECKING(if you want opaque menu-library structures)
-AC_ARG_ENABLE(opaque-menu,
- [ --enable-opaque-menu make menu-library structures "opaque"],
- [enable_opaque_menu=yes],[enable_opaque_menu=no])
+AC_MSG_CHECKING(whether menu library structures should be opaque)
+CF_ARG_DISABLE(opaque-menu,
+ [ --disable-opaque-menu do not make menu library structures opaque],
+ [enable_opaque_menu=no],[enable_opaque_menu=$cf_dft_opaque_curses])
AC_MSG_RESULT($enable_opaque_menu)
-AC_MSG_CHECKING(if you want opaque panel-library structures)
-AC_ARG_ENABLE(opaque-panel,
- [ --enable-opaque-panel make panel-library structures "opaque"],
- [enable_opaque_panel=yes],[enable_opaque_panel=no])
+AC_MSG_CHECKING(whether panel library structures should be opaque)
+CF_ARG_DISABLE(opaque-panel,
+ [ --disable-opaque-panel do not make panel library structures opaque],
+ [enable_opaque_panel=no],[enable_opaque_panel=$cf_dft_opaque_curses])
AC_MSG_RESULT($enable_opaque_panel)
NCURSES_OPAQUE=0; test "$enable_opaque_curses" = yes && NCURSES_OPAQUE=1
@@ -1430,6 +1470,14 @@ AC_ARG_WITH(develop,
[with_develop=no])
AC_MSG_RESULT($with_develop)
+### use option --enable-check-size to detect screensize with CPR
+AC_MSG_CHECKING(if you want to check screensize of serial terminals)
+AC_ARG_ENABLE(check-size,
+ [ --enable-check-size compile-in code to detect screensize of serial terminals],,
+ [enable_check_size=$with_develop])
+AC_MSG_RESULT($enable_check_size)
+test "x$enable_check_size" = xyes && AC_DEFINE(USE_CHECK_SIZE,1,[Define to 1 to compile-in code to detect screensize])
+
### use option --enable-hard-tabs to turn on use of hard-tabs optimize
AC_MSG_CHECKING(if you want hard-tabs code)
AC_ARG_ENABLE(hard-tabs,
@@ -1616,7 +1664,7 @@ AC_SUBST(INSTALL_OPT_P)
CF_ENABLE_WARNINGS(Wno-unknown-pragmas Wswitch-enum,yes)
if test "x$enable_warnings" = "xyes"; then
- CF_ADD_ADAFLAGS(-gnatg)
+ CF_ADD_ADAFLAGS(-gnatwa -gnatyg)
if test "x$cf_with_cxx" = xyes ; then
CF_GXX_WARNINGS(Wno-unused)
fi
@@ -1687,20 +1735,15 @@ CF_DISABLE_GNAT_PROJECTS
### Checks for libraries.
case "$cf_cv_system_name" in
(*mingw32*|*mingw64*)
+ # Note: WINVER may be a problem with Windows 10
if test "x$with_exp_win32" = xyes ; then
- CPPFLAGS="$CPPFLAGS -DWINVER=0x0600 -DWIN32_LEAN_AND_MEAN"
+ CPPFLAGS="$CPPFLAGS -DWINVER=0x0600 -DWIN32_LEAN_AND_MEAN"
else
- CPPFLAGS="$CPPFLAGS -DWINVER=0x0501 -DWIN32_LEAN_AND_MEAN"
+ CPPFLAGS="$CPPFLAGS -DWINVER=0x0501 -DWIN32_LEAN_AND_MEAN"
fi
- # Note: WINVER may be a problem with Windows 10
+ CF_CHECK_LIBSSP
;;
(*)
-AC_CHECK_FUNC(gettimeofday,
- AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define to 1 if we have gettimeofday function]),[
-
-AC_CHECK_LIB(bsd, gettimeofday,
- AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define to 1 if we have gettimeofday function])
- CF_ADD_LIB(bsd))])dnl CLIX: bzero, select, gettimeofday
;;
esac
@@ -1708,8 +1751,6 @@ CF_MATH_LIB(MATH_LIB,pow(sin(x),x))
AC_SUBST(MATH_LIB)
### Checks for header files.
-AC_STDC_HEADERS
-AC_HEADER_DIRENT
AC_HEADER_TIME
CF_REGEX
@@ -1721,13 +1762,13 @@ limits.h \
locale.h \
math.h \
poll.h \
+sys/auxv.h \
sys/ioctl.h \
sys/param.h \
sys/poll.h \
sys/select.h \
sys/time.h \
sys/times.h \
-ttyent.h \
unistd.h \
wctype.h \
)
@@ -1777,21 +1818,23 @@ CF_ERRNO
CF_LINK_DATAONLY
### Checks for library functions.
+CF_FUNC_GETTIME
AC_CHECK_FUNCS( \
+fpathconf \
getcwd \
+getauxval \
getegid \
geteuid \
getopt \
-getttynam \
+getuid \
issetugid \
localeconv \
poll \
-putenv \
remove \
select \
setbuf \
setbuffer \
-setenv \
+setfsuid \
setvbuf \
sigaction \
sigvec \
@@ -1805,6 +1848,8 @@ tsearch \
vsnprintf \
)
+CF_FUNC_GETTTYNAM
+
if test "x$ac_cv_func_getopt" = xno && \
test "x$cf_with_progs$cf_with_tests" != xnono; then
AC_MSG_ERROR(getopt is required for building programs)
@@ -1846,6 +1891,7 @@ CF_TYPE_SIGACTION
CF_SIZECHANGE
CF_FUNC_MEMMOVE
CF_FUNC_POLL
+CF_MB_LEN_MAX
CF_VA_COPY
AC_FUNC_VFORK
CF_FOPEN_BIN_R
@@ -1899,6 +1945,7 @@ if test -n "$CXX" ; then
CF_BOOL_DECL
CF_BOOL_SIZE
CF_ETIP_DEFINES
+ CF_CPP_OVERRIDE
CF_CPP_PARAM_INIT
CF_CPP_STATIC_CAST
CF_CXX_AR_FLAGS
@@ -2293,14 +2340,11 @@ AC_SUBST(TICS_LIST)
AC_SUBST(TINFO_LIST)
AC_SUBST(SHLIB_LIST)
-# used to separate tack out of the tree
-NCURSES_TREE=
-AC_SUBST(NCURSES_TREE)
-
### predefined stuff for the test programs
AC_DEFINE(HAVE_SLK_COLOR,1,[Define to 1 if we have slk_color for test-programs])
# pkgsrc uses these
+CF_HELP_MESSAGE(Library basenames for pkgsrc:)
CF_WITH_LIB_BASENAME(FORM_NAME,form)
CF_WITH_LIB_BASENAME(MENU_NAME,menu)
CF_WITH_LIB_BASENAME(PANEL_NAME,panel)
@@ -2382,7 +2426,7 @@ esac
# Help to automatically enable the extended curses features when using either
# the *-config or the ".pc" files by adding defines.
-AC_MSG_CHECKING(for defines to add to ncurses${USE_CFG_SUFFIX}-config script)
+AC_MSG_CHECKING(for defines to add to ncurses${USE_CFG_SUFFIX}${cf_config_suffix}-config script)
PKG_CFLAGS=
for cf_loop1 in $CPPFLAGS_after_XOPEN
do
@@ -2457,7 +2501,7 @@ cf_filter_syms=no
if test -n "$RESULTING_SYMS"
then
cf_filter_syms=$cf_dft_filter_syms
- CF_VERBOSE(will map symbols to ABI=$cf_cv_abi_version)
+ CF_VERBOSE(will map symbols to ABI=$cf_cv_abi_default)
fi
if test "x$WILDCARD_SYMS" = xno
@@ -2488,20 +2532,20 @@ AC_SUBST(PRIVATE_LIBS)
# This is used for the *-config script and *.pc data files.
CF_LD_SEARCHPATH
-AC_DEFINE(HAVE_CURSES_DATA_BOOLNAMES,1,[definition needed for in-tree build of tack])
-
AC_OUTPUT( \
include/MKterm.h.awk \
include/curses.head:include/curses.h.in \
include/ncurses_dll.h \
include/termcap.h \
include/unctrl.h \
+ man/man_db.renames \
$SUB_MAKEFILES \
Makefile,[
if test "x$cf_with_tests" != xno ; then
CF_PRG_RULES(["$srcdir/test/mk-test.awk" INSTALL=no ECHO_LINK="$ECHO_LD"], test)
fi
CF_LIB_RULES($SRC_SUBDIRS)
+CF_OUTPUT_MANPAGE_RENAMES
if test "x$cf_with_ada" = "xyes" && test "x$cf_cv_prog_gnat_correct" = "xyes"; then
if test -z "$USE_OLD_MAKERULES" ; then
@@ -2529,6 +2573,7 @@ LIB_SUFFIX="$LIB_SUFFIX"
LIB_TRACING="$LIB_TRACING"
LN_S="$LN_S"
MAKE_TERMINFO="$MAKE_TERMINFO"
+MANPAGE_RENAMES="$MANPAGE_RENAMES"
MENU_NAME="$MENU_NAME"
NCURSES_MAJOR="$NCURSES_MAJOR"
NCURSES_MINOR="$NCURSES_MINOR"
@@ -2558,12 +2603,14 @@ WITH_OVERWRITE="$with_overwrite"
cf_LIST_MODELS="$cf_list_models"
cf_cv_VERSION_GNATMAKE=$cf_cv_VERSION_GNATMAKE
cf_cv_VERSION_GPRBUILD=$cf_cv_VERSION_GPRBUILD
+cf_cv_abi_default="$cf_cv_abi_default"
cf_cv_abi_version="$cf_cv_abi_version"
cf_cv_do_relink="$cf_cv_do_relink"
cf_cv_do_reranlib="$cf_cv_do_reranlib"
cf_cv_do_symlinks="$cf_cv_do_symlinks"
cf_cv_enable_lp64="$cf_cv_enable_lp64"
cf_cv_enable_opaque="$cf_cv_enable_opaque"
+cf_cv_make_PHONY="$cf_cv_make_PHONY"
cf_cv_prog_CC_c_o=$cf_cv_prog_CC_c_o
cf_cv_prog_CXX_c_o=$cf_cv_prog_CXX_c_o
cf_cv_prog_gnat_correct=$cf_cv_prog_gnat_correct
@@ -2581,6 +2628,7 @@ cf_with_manpages="$cf_with_manpages"
cf_with_tests="$cf_with_tests"
host="$host"
target="$target"
+verbose="$verbose"
with_shared_cxx="$with_shared_cxx"
],cat)dnl
diff --git a/dist.mk b/dist.mk
index ceead1705338..18484d8ca5c9 100644
--- a/dist.mk
+++ b/dist.mk
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright 2018-2020,2021 Thomas E. Dickey #
+# Copyright 2018-2023,2024 Thomas E. Dickey #
# Copyright 1998-2017,2018 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -26,7 +26,7 @@
# use or other dealings in this Software without prior written #
# authorization. #
##############################################################################
-# $Id: dist.mk,v 1.1401 2021/02/20 12:06:34 tom Exp $
+# $Id: dist.mk,v 1.1610 2024/04/27 13:55:54 tom Exp $
# Makefile for creating ncurses distributions.
#
# This only needs to be used directly as a makefile by developers, but
@@ -37,8 +37,8 @@ SHELL = /bin/sh
# These define the major/minor/patch versions of ncurses.
NCURSES_MAJOR = 6
-NCURSES_MINOR = 2
-NCURSES_PATCH = 20210220
+NCURSES_MINOR = 5
+NCURSES_PATCH = 20240427
# We don't append the patch to the version, since this only applies to releases
VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
@@ -63,7 +63,7 @@ GNATHTML= gnathtml
# would remove some text. The man program on Redhat 6.1 appears to work with
# man2html if we set the top/bottom margins to 6 (the default is 7). Newer
# versions of 'man' leave no margin (and make it harder to sync with pages).
-MAN2HTML= man2html -botm=0 -topm=0 -cgiurl '$$title.$$section$$subsection.html' -index
+MAN2HTML= man2html -botm=0 -topm=0 -cgiurl '$$title.$$section$$subsection.html' -index -mixsecs
ALL = ANNOUNCE doc/html/announce.html doc/ncurses-intro.doc doc/hackguide.doc manhtml adahtml
@@ -124,19 +124,20 @@ manhtml:
@echo 's/<I>/<EM>/g' >> subst.tmp
@echo 's/<\/I>/<\/EM>/g' >> subst.tmp
@misc/csort < subst.tmp | uniq > subst.sed
- @echo '/<\/TITLE>/a\' >> subst.sed
- @echo '<link rel="author" href="mailto:bug-ncurses@gnu.org">\' >> subst.sed
- @echo '<meta http-equiv="Content-Type" content="text\/html; charset=iso-8859-1">' >> subst.sed
+ @echo 's%[_-]*_-[_-]*%_%g' >> subst.sed
+ @echo '/<\/TITLE>/a\\' >> subst.sed
+ @echo '<link rel="author" href="mailto:bug-ncurses@gnu.org">\\' >> subst.sed
@rm -f subst.tmp
@for f in man/*.[0-9]* ; do \
m=`basename $$f` ;\
- T=`egrep '^.TH' $$f|sed -e 's/^.TH //' -e s'/"//g' -e 's/[ ]\+$$//'` ; \
+ T=`$${EGREP-grep -E} '^.TH' $$f|sed -e 's/^.TH //' -e s'/"//g' -e 's/[ ]\+$$//'` ; \
g=$${m}.html ;\
if [ -f doc/html/$$g ]; then chmod +w doc/html/$$g; fi;\
echo "Converting $$m to HTML" ;\
- echo '<!-- ' > doc/html/man/$$g ;\
- egrep '^.\\"[^#]' $$f | \
- sed -e 's/\$$/@/g' \
+ echo '<!--' > doc/html/man/$$g ;\
+ sed -e '/^\.[a-zA-Z]/,99999d' $$f | \
+ $${EGREP-grep -E} '^.\\"[^#]' | \
+ sed -e 's/\$$/@/g' \
-e 's/^.../ */' \
-e 's/</\&lt;/g' \
-e 's/>/\&gt;/g' \
diff --git a/doc/hackguide.doc b/doc/hackguide.doc
index 1bafad2ad10b..a464d0336597 100644
--- a/doc/hackguide.doc
+++ b/doc/hackguide.doc
@@ -1,6 +1,8 @@
A Hacker's Guide to NCURSES
- Contents
+A Hacker's Guide to NCURSES
+
+Contents
* Abstract
* Objective of the Package
@@ -24,7 +26,7 @@
* Style Tips for Developers
* Porting Hints
- Abstract
+Abstract
This document is a hacker's tour of the ncurses library and utilities.
It discusses design philosophy, implementation methods, and the
@@ -32,7 +34,7 @@
reading for anyone who is interested in porting, extending or
improving the package.
- Objective of the Package
+Objective of the Package
The objective of the ncurses package is to provide a free software API
for character-cell terminals and terminal emulators with the following
@@ -52,7 +54,7 @@
cannot add features if it means breaking the portion of the API
corresponding to historical curses versions.
-Why System V Curses?
+ Why System V Curses?
We used System V curses as a model, reverse-engineering their API, in
order to fulfill the first two objectives.
@@ -65,7 +67,7 @@ Why System V Curses?
X/Open is explicitly and closely modeled on System V. So conformance
with System V took us most of the way to base-level XSI conformance.
-How to Design Extensions
+ How to Design Extensions
The third objective (standards conformance) requires that it be easy
to condition source code using ncurses so that the absence of
@@ -80,7 +82,7 @@ How to Design Extensions
does not define, but which is defined in the ncurses library header.
You can use this to condition the calls to the mouse API calls.
- Portability and Configuration
+Portability and Configuration
Code written for ncurses may assume an ANSI-standard C compiler and
POSIX-compatible OS interface. It may also assume the presence of a
@@ -101,7 +103,7 @@ How to Design Extensions
specification files (configure.in and aclocal.m4) to set up a new
feature macro, which you then use to condition your code.
- Documentation Conventions
+Documentation Conventions
There are three kinds of documentation associated with this package.
Each has a different preferred format:
@@ -111,7 +113,7 @@ How to Design Extensions
Our conventions are simple:
1. Maintain package-internal files in plain text. The expected viewer
- for them more(1) or an editor window; there is no point in
+ for them is more(1) or an editor window; there is no point in
elaborate mark-up.
2. Mark up manual pages in the man macros. These have to be viewable
through traditional man(1) programs.
@@ -127,7 +129,7 @@ How to Design Extensions
nice-looking printed version from it. Also, of course, it make
exporting things like the announcement document to WWW pretty trivial.
- How to Report Bugs
+How to Report Bugs
The reporting address for bugs is bug-ncurses@gnu.org. This is a
majordomo list; to join, write to bug-ncurses-request@gnu.org with a
@@ -228,9 +230,9 @@ How to Design Extensions
comments of hardscroll.c and hashmap.c; then try it out. You can also
test the hardware-scrolling optimization separately with hardscroll.
- A Tour of the Ncurses Library
+A Tour of the Ncurses Library
-Library Overview
+ Library Overview
Most of the library is superstructure -- fairly trivial convenience
interfaces to a small set of basic functions and data structures used
@@ -303,9 +305,9 @@ Library Overview
We will discuss these in the compiler tour.
-The Engine Room
+ The Engine Room
- Keyboard Input
+ Keyboard Input
All ncurses input funnels through the function wgetch(), defined in
lib_getch.c. This function is tricky; it has to poll for keyboard and
@@ -328,7 +330,7 @@ The Engine Room
value. The function timed_wait() effectively simulates a System V
select.
- Mouse Events
+ Mouse Events
If the mouse interface is active, wgetch() polls for mouse events each
call, before it goes to the keyboard for input. It is up to
@@ -368,7 +370,7 @@ The Engine Room
accepted to parse the digested mouse reports (low-level events) into a
gesture (a high-level or composite event).
- Output and Screen Updating
+ Output and Screen Updating
With the single exception of character echoes during a wgetnstr() call
(which simulates cooked-mode line editing in an ncurses window), the
@@ -412,7 +414,7 @@ The Engine Room
variable _nc_optimize_enable. See the file include/curses.h.in for
mask values, near the end.
- The Forms and Menu Libraries
+The Forms and Menu Libraries
The forms and menu libraries should work reliably in any environment
you can port ncurses to. The only portability issue anywhere in them
@@ -428,7 +430,7 @@ The Engine Room
panels support; u386mon 2.10 and beyond use it. This version has been
slightly cleaned up for ncurses.
- A Tour of the Terminfo Compiler
+A Tour of the Terminfo Compiler
The ncurses implementation of tic is rather complex internally; it has
to do a trying combination of missions. This starts with the fact
@@ -443,7 +445,7 @@ The Engine Room
the grammar above it is trivial, just "parse entries till you run out
of file".
-Translation of Non-use Capabilities
+ Translation of Non-use Capabilities
Translation of most things besides use capabilities is pretty
straightforward. The lexical analyzer's tokenizer hands each
@@ -464,7 +466,7 @@ Translation of Non-use Capabilities
of adding one line to the include/Caps file. We will have more to say
about this in the section on Source-Form Translation.
-Use Capability Resolution
+ Use Capability Resolution
The background problem that makes tic tricky is not the capability
translation itself, it is the resolution of use capabilities. Older
@@ -512,7 +514,7 @@ Use Capability Resolution
complain about overwriting entries newly made during the tic run, but
not about overwriting ones that predate it.
-Source-Form Translation
+ Source-Form Translation
Another use of tic is to do source translation between various termcap
and terminfo formats. There are more variants out there than you might
@@ -536,7 +538,7 @@ Source-Form Translation
for example, is where the AIX box1 capability get translated to an
acsc string.
- Other Utilities
+Other Utilities
The infocmp utility is just a wrapper around the same entry-dumping
code used by tic for source translation. Perhaps the one interesting
@@ -548,7 +550,7 @@ Source-Form Translation
The tput and clear utilities just do an entry load followed by a
tputs() of a selected capability.
- Style Tips for Developers
+Style Tips for Developers
See the TO-DO file in the top-level directory of the source
distribution for additions that would be particularly useful.
@@ -575,7 +577,7 @@ Source-Form Translation
Have fun!
- Porting Hints
+Porting Hints
The following notes are intended to be a first step towards DOS and
Macintosh ports of the ncurses libraries.
diff --git a/doc/html/Ada95.html b/doc/html/Ada95.html
index 7f4e9f907d46..1affa3fbbab5 100644
--- a/doc/html/Ada95.html
+++ b/doc/html/Ada95.html
@@ -1,7 +1,7 @@
<!--
- $Id: Ada95.html,v 1.16 2020/02/02 23:34:34 tom Exp $
+ $Id: Ada95.html,v 1.18 2022/03/05 16:09:29 tom Exp $
****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2021,2022 Thomas E. Dickey *
* Copyright 2000-2010,2013 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -57,13 +57,13 @@
ncurses package, a clone of the SVr4 curses model.<br>
I did the development on an Intel box running the latest stable
release of <a href="http://www.linux.org">Linux</a>, ncurses
- and the most recent released <a href="http://www.gnat.com">GNU
+ and the most recent released <a href="https://ftp.gnu.org/gnu/gcc/">GNU
Ada Translator</a> gnat versions. For any older versions of
ncurses and gnat it is not guaranteed to work.</li>
<li>You must have the m4 macroprocessor to build this package.
If you don't have this program, you can get the FSF version
- <a href="ftp://ftp.gnu.org/pub/gnu/">here</a>.</li>
+ <a href="https://ftp.gnu.org/pub/gnu/">here</a>.</li>
<li>Ada programs are supposed to be readable. One of my
favorite methods to make code readable is to use expressive
@@ -73,14 +73,14 @@
<li>This is not a typical one-to-one interface mapping. It is
close to one-to-one on the functional level. Each (n)curses
- function has it's counterpart with a more or less similar
+ function has its counterpart with a more or less similar
formal parameter list in the binding. It is not one-to-one with
respect to the datatypes. I tried to make records out of the
flat chtype and similar structures, so you don't have to do bit
operations to mark an attributed character as bold. Just make
the boolean member <strong>bold</strong> of the record true.
The binding also hides the structures like WINDOW, PANEL, MENU,
- FORM etc. ! It's a pure functional API.</li>
+ FORM etc. ! It is a pure functional API.</li>
<li>I try to do as much error checking as possible and feasible
in the binding. I will raise an Ada exception when something
@@ -107,7 +107,7 @@
<li>Although Ada95 is an OO Language, this binding doesn't
provide an OO abstraction of the (n)curses functionality. As
- mentioned above it's a thin binding for the (n)curses
+ mentioned above it is a thin binding for the (n)curses
functions. But without any doubt it would be nice to build on
top of this an OO abstraction of (n)curses functionality.<br>
The only exception is the method how fieldtypes are represented
diff --git a/doc/html/NCURSES-Programming-HOWTO.html b/doc/html/NCURSES-Programming-HOWTO.html
index d3eeb95dbccc..9a3f078d2f1c 100644
--- a/doc/html/NCURSES-Programming-HOWTO.html
+++ b/doc/html/NCURSES-Programming-HOWTO.html
@@ -1,16 +1,13 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
-
<html>
<head>
<meta name="generator" content=
- "HTML Tidy for Linux (vers 25 March 2009), see www.w3.org">
-
+ "HTML Tidy for HTML5 for Linux version 5.6.0">
<title>NCURSES Programming HOWTO</title>
<meta name="GENERATOR" content=
"Modular DocBook HTML Stylesheet Version 1.79">
</head>
-
<body class="ARTICLE" bgcolor="#FFFFFF" text="#000000" link=
"#0000FF" vlink="#840084" alink="#0000FF">
<div class="ARTICLE">
@@ -24,7 +21,8 @@
<div class="AFFILIATION">
<div class="ADDRESS">
<p class="ADDRESS"><code class="EMAIL">&lt;<a href=
- "mailto:ppadala@gmail.com">ppadala@gmail.com</a>&gt;</code></p>
+ "mailto:ppadala@gmail.com">ppadala@gmail.com</a>&gt;</code>
+ </p>
</div>
</div>
@@ -34,14 +32,24 @@
<table width="100%" border="0" summary="revisions">
<tr>
<th align="left" valign="top" colspan="3"><b>Revision
- History</b></th>
+ History</b>
+ </th>
</tr>
<tr>
- <td align="left">Revision 1.9</td>
+ <td align="left">Revision 2.0</td>
+ <td align="left">2022-12-03</td>
+ <td align="left">Revised by: dickey</td>
+ </tr>
- <td align="left">2005-06-20</td>
+ <tr>
+ <td align="left" colspan="3">Fixes for the sample
+ programs, Correct documentation errata.</td>
+ </tr>
+ <tr>
+ <td align="left">Revision 1.9</td>
+ <td align="left">2005-06-20</td>
<td align="left">Revised by: ppadala</td>
</tr>
@@ -53,9 +61,7 @@
<tr>
<td align="left">Revision 1.8</td>
-
<td align="left">2005-06-17</td>
-
<td align="left">Revised by: ppadala</td>
</tr>
@@ -68,9 +74,7 @@
<tr>
<td align="left">Revision 1.7.1</td>
-
<td align="left">2002-06-25</td>
-
<td align="left">Revised by: ppadala</td>
</tr>
@@ -82,9 +86,7 @@
<tr>
<td align="left">Revision 1.7</td>
-
<td align="left">2002-06-25</td>
-
<td align="left">Revised by: ppadala</td>
</tr>
@@ -96,9 +98,7 @@
<tr>
<td align="left">Revision 1.6.1</td>
-
<td align="left">2002-02-24</td>
-
<td align="left">Revised by: ppadala</td>
</tr>
@@ -109,9 +109,7 @@
<tr>
<td align="left">Revision 1.6</td>
-
<td align="left">2002-02-16</td>
-
<td align="left">Revised by: ppadala</td>
</tr>
@@ -122,9 +120,7 @@
<tr>
<td align="left">Revision 1.5</td>
-
<td align="left">2002-01-05</td>
-
<td align="left">Revised by: ppadala</td>
</tr>
@@ -135,9 +131,7 @@
<tr>
<td align="left">Revision 1.3.1</td>
-
<td align="left">2001-07-26</td>
-
<td align="left">Revised by: ppadala</td>
</tr>
@@ -148,9 +142,7 @@
<tr>
<td align="left">Revision 1.3</td>
-
<td align="left">2001-07-24</td>
-
<td align="left">Revised by: ppadala</td>
</tr>
@@ -162,9 +154,7 @@
<tr>
<td align="left">Revision 1.2</td>
-
<td align="left">2001-06-05</td>
-
<td align="left">Revised by: ppadala</td>
</tr>
@@ -176,9 +166,7 @@
<tr>
<td align="left">Revision 1.1</td>
-
<td align="left">2001-05-22</td>
-
<td align="left">Revised by: ppadala</td>
</tr>
@@ -191,8 +179,7 @@
<div>
<div class="ABSTRACT">
- <a name="AEN67" id="AEN67"></a>
-
+ <a name="AEN72" id="AEN72"></a>
<p><span class="emphasis"><i class="EMPHASIS">This
document is intended to be an "All in One" guide for
programming with ncurses and its sister libraries. We
@@ -200,15 +187,18 @@
complex form manipulation. No prior experience in ncurses
is assumed. Send comments to <a href=
"mailto:ppadala@gmail.com" target="_top">this
- address</a></i></span></p>
+ address</a></i></span>
+ </p>
</div>
</div>
+
<hr>
</div>
<div class="TOC">
<dl>
- <dt><b>Table of Contents</b></dt>
+ <dt><b>Table of Contents</b>
+ </dt>
<dt>1. <a href="#INTRO">Introduction</a></dt>
@@ -309,7 +299,7 @@
<dt>6.1. <a href="#ADDCHCLASS">addch() class of
functions</a></dt>
- <dt>6.2. <a href="#AEN298">mvaddch(), waddch() and
+ <dt>6.2. <a href="#AEN303">mvaddch(), waddch() and
mvwaddch()</a></dt>
<dt>6.3. <a href="#PRINTWCLASS">printw() class of
@@ -667,7 +657,7 @@
cables. The terminals could be configured by sending a series
of bytes. All the capabilities (such as moving the cursor to
a new location, erasing part of the screen, scrolling the
- screen, changing modes etc.) of terminals could be accessed
+ screen, changing modes, etc.) of terminals could be accessed
through these series of bytes. These control seeuqnces are
usually called escape sequences, because they start with an
escape(0x1B) character. Even today, with proper emulation, we
@@ -676,20 +666,16 @@
<p>Suppose you wanted to print a line in color. Try typing
this on your console.</p>
- <pre class="PROGRAMLISTING">
-echo "^[[0;31;40mIn Color"
-</pre>
+ <pre class="PROGRAMLISTING">echo "^[[0;31;40mIn Color"</pre>
<p>The first character is an escape character, which looks
like two characters ^ and [. To be able to print it, you have
to press CTRL+V and then the ESC key. All the others are
normal printable characters. You should be able to see the
string "In Color" in red. It stays that way and to revert
back to the original mode type this.</p>
- <pre class="PROGRAMLISTING">
-echo "^[[0;37;40m"
-</pre>
+ <pre class="PROGRAMLISTING">echo "^[[0;37;40m"</pre>
<p>Now, what do these magic characters mean? Difficult to
comprehend? They might even be different for different
terminals. So the designers of UNIX invented a mechanism
@@ -711,14 +697,14 @@ echo "^[[0;37;40m"
<p>You might be wondering, what the import of all this
technical gibberish is. In the above scenario, every
application program is supposed to query the terminfo and
- perform the necessary stuff (sending control characters
+ perform the necessary stuff (sending control characters,
etc.). It soon became difficult to manage this complexity
and this gave birth to 'CURSES'. Curses is a pun on the
name "cursor optimization". The Curses library forms a
wrapper over working with raw terminal codes, and provides
highly flexible and efficient API (Application Programming
Interface). It provides functions to move the cursor,
- create windows, produce colors, play with mouse etc. The
+ create windows, produce colors, play with mouse, etc. The
application programs need not worry about the underlying
terminal capabilities.</p>
@@ -732,9 +718,9 @@ echo "^[[0;37;40m"
<p>A detailed history of NCURSES can be found in the NEWS
file from the source distribution. The current package is
- maintained by <a href="mailto:dickey@his.com" target=
- "_top">Thomas Dickey</a>. You can contact the maintainers
- at <a href="mailto:bug-ncurses@gnu.org" target=
+ maintained by <a href="mailto:dickey@invisible-island.net"
+ target="_top">Thomas Dickey</a>. You can contact the
+ maintainers at <a href="mailto:bug-ncurses@gnu.org" target=
"_top">bug-ncurses@gnu.org</a>.</p>
</div>
@@ -747,7 +733,7 @@ echo "^[[0;37;40m"
<p>NCURSES not only creates a wrapper over terminal
capabilities, but also gives a robust framework to create
nice looking UI (User Interface)s in text mode. It provides
- functions to create windows etc. Its sister libraries
+ functions to create windows, etc. Its sister libraries
panel, menu and form provide an extension to the basic
curses library. These libraries usually come along with
curses. One can create applications that contain multiple
@@ -778,38 +764,39 @@ echo "^[[0;37;40m"
on.</p>
<p><span class="emphasis"><i class="EMPHASIS">Compiling the
- package</i></span></p>
+ package</i></span>
+ </p>
<p>NCURSES can be obtained from <a href=
"ftp://ftp.gnu.org/pub/gnu/ncurses/ncurses.tar.gz" target=
"_top">ftp://ftp.gnu.org/pub/gnu/ncurses/ncurses.tar.gz</a>
or any of the ftp sites mentioned in <a href=
- "http://www.gnu.org/order/ftp.html" target=
- "_top">http://www.gnu.org/order/ftp.html</a>.</p>
+ "https://www.gnu.org/order/ftp.html" target=
+ "_top">https://www.gnu.org/order/ftp.html</a>.</p>
<p>Read the README and INSTALL files for details on to how
to install it. It usually involves the following
operations.</p>
- <pre class="PROGRAMLISTING">
- tar zxvf ncurses&lt;version&gt;.tar.gz # unzip and untar the archive
+
+ <pre class=
+ "PROGRAMLISTING"> tar zxvf ncurses&lt;version&gt;.tar.gz # unzip and untar the archive
cd ncurses&lt;version&gt; # cd to the directory
./configure # configure the build according to your
# environment
make # make it
su root # become root
- make install # install it
-</pre>
-
+ make install # install it</pre>
<p><span class="emphasis"><i class="EMPHASIS">Using the
- RPM</i></span></p>
+ RPM</i></span>
+ </p>
<p>NCURSES RPM can be found and downloaded from <a href=
- "http://rpmfind.net" target="_top">http://rpmfind.net</a> .
- The RPM can be installed with the following command after
+ "https://rpmfind.net" target="_top">https://rpmfind.net</a>
+ . The RPM can be installed with the following command after
becoming root.</p>
- <pre class="PROGRAMLISTING">
- rpm -i &lt;downloaded rpm&gt;
-</pre>
+
+ <pre class=
+ "PROGRAMLISTING"> rpm -i &lt;downloaded rpm&gt;</pre>
</div>
<div class="SECT2">
@@ -834,11 +821,11 @@ echo "^[[0;37;40m"
<p>All the programs in the document are available in zipped
form <a href=
- "http://www.tldp.org/HOWTO/NCURSES-Programming-HOWTO/ncurses_programs.tar.gz"
+ "https://www.tldp.org/HOWTO/NCURSES-Programming-HOWTO/ncurses_programs.tar.gz"
target="_top">here</a>. Unzip and untar it. The directory
structure looks like this.</p>
- <pre class="PROGRAMLISTING">
-ncurses
+
+ <pre class="PROGRAMLISTING">ncurses
|
|----&gt; JustForFun -- just for fun programs
|----&gt; basics -- basic programs
@@ -852,13 +839,12 @@ ncurses
| by Anuradha Ratnaweera)
|----&gt; Makefile -- the top level Makefile
|----&gt; README -- the top level README file. contains instructions
- |----&gt; COPYING -- copyright notice
-</pre>
-
+ |----&gt; COPYING -- copyright notice</pre>
<p>The individual directories contain the following
files.</p>
- <pre class="PROGRAMLISTING">
-Description of files in each directory
+
+ <pre class=
+ "PROGRAMLISTING">Description of files in each directory
--------------------------------------
JustForFun
|
@@ -899,7 +885,7 @@ JustForFun
menus
|
|----&gt; menu_attrib.c -- Usage of menu attributes
- |----&gt; menu_item_data.c -- Usage of item_name() etc.. functions
+ |----&gt; menu_item_data.c -- Usage of item_name(), etc. functions
|----&gt; menu_multi_column.c -- Creates multi columnar menus
|----&gt; menu_scroll.c -- Demonstrates scrolling capability of menus
|----&gt; menu_simple.c -- A simple menu accessed by arrow keys
@@ -917,9 +903,7 @@ JustForFun
|----&gt; panel_simple.c -- A simple panel example
perl
- |----&gt; 01-10.pl -- Perl equivalents of first ten example programs
-</pre>
-
+ |----&gt; 01-10.pl -- Perl equivalents of first ten example programs</pre>
<p>There is a top level Makefile included in the main
directory. It builds all the files and puts the
ready-to-use exes in demo/exe directory. You can also do
@@ -932,9 +916,9 @@ JustForFun
<p>If you prefer browsing individual programs, point your
browser to <a href=
- "http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/ncurses_programs/"
+ "https://tldp.org/HOWTO/NCURSES-Programming-HOWTO/ncurses_programs/"
target=
- "_top">http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/ncurses_programs/</a></p>
+ "_top">https://tldp.org/HOWTO/NCURSES-Programming-HOWTO/ncurses_programs/</a></p>
<p>All the programs are released under the same license
that is used by ncurses (MIT-style). This gives you the
@@ -949,7 +933,7 @@ JustForFun
<h3 class="SECT2"><a name="OTHERFORMATS" id=
"OTHERFORMATS">1.6. Other Formats of the document</a></h3>
- <p>This howto is also availabe in various other formats on
+ <p>This howto is also available in various other formats on
the tldp.org site. Here are the links to other formats of
this document.</p>
@@ -963,25 +947,25 @@ JustForFun
<ul>
<li>
<p><a href=
- "http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/pdf/NCURSES-Programming-HOWTO.pdf"
+ "https://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/pdf/NCURSES-Programming-HOWTO.pdf"
target="_top">Acrobat PDF Format</a></p>
</li>
<li>
<p><a href=
- "http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/ps/NCURSES-Programming-HOWTO.ps.gz"
+ "https://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/ps/NCURSES-Programming-HOWTO.ps.gz"
target="_top">PostScript Format</a></p>
</li>
<li>
<p><a href=
- "http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html/NCURSES-Programming-HOWTO-html.tar.gz"
+ "https://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html/NCURSES-Programming-HOWTO-html.tar.gz"
target="_top">In Multiple HTML pages</a></p>
</li>
<li>
<p><a href=
- "http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html_single/NCURSES-Programming-HOWTO.html"
+ "https://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html_single/NCURSES-Programming-HOWTO.html"
target="_top">In One big HTML format</a></p>
</li>
</ul>
@@ -995,8 +979,9 @@ JustForFun
<p>If above links are broken or if you want to experiment
with sgml read on.</p>
- <pre class="PROGRAMLISTING">
-&#13; Get both the source and the tar,gzipped programs, available at
+
+ <pre class=
+ "PROGRAMLISTING">&#13; Get both the source and the tar,gzipped programs, available at
http://cvsview.tldp.org/index.cgi/LDP/howto/docbook/
NCURSES-HOWTO/NCURSES-Programming-HOWTO.sgml
http://cvsview.tldp.org/index.cgi/LDP/howto/docbook/
@@ -1017,13 +1002,11 @@ JustForFun
NCURSES-ONE-BIG-FILE.html
for ps, you would use
htmldoc --size universal -t ps --firstpage p1 -f &lt;output file name.ps&gt;
- NCURSES-ONE-BIG-FILE.html
-</pre>
-
+ NCURSES-ONE-BIG-FILE.html</pre>
<p>See <a href=
- "http://www.tldp.org/LDP/LDP-Author-Guide/" target=
+ "https://www.tldp.org/LDP/LDP-Author-Guide/" target=
"_top">LDP Author guide</a> for more details. If all else
- failes, mail me at <a href="ppadala@gmail.com" target=
+ fails, mail me at <a href="ppadala@gmail.com" target=
"_top">ppadala@gmail.com</a></p>
</div>
</div>
@@ -1147,27 +1130,25 @@ JustForFun
<hr>
<h3 class="SECT2"><a name="COMPILECURSES" id=
- "COMPILECURSES">2.1. Compiling With the NCURSES
- Library</a></h3>
+ "COMPILECURSES">2.1. Compiling With the NCURSES Library</a></h3>
<p>To use ncurses library functions, you have to include
ncurses.h in your programs. To link the program with
ncurses the flag -lncurses should be added.</p>
- <pre class="PROGRAMLISTING">
- #include &lt;ncurses.h&gt;
+
+ <pre class="PROGRAMLISTING"> #include &lt;ncurses.h&gt;
.
.
.
- compile and link: gcc &lt;program file&gt; -lncurses
-</pre>
-
+ compile and link: gcc &lt;program file&gt; -lncurses</pre>
<div class="EXAMPLE">
<a name="BHW" id="BHW"></a>
+ <p><b>Example 1. The Hello World !!! Program</b>
+ </p>
- <p><b>Example 1. The Hello World !!! Program</b></p>
- <pre class="PROGRAMLISTING">
-<span class="INLINEMEDIAOBJECT">#include &lt;ncurses.h&gt;
+ <pre class="PROGRAMLISTING"><span class=
+ "INLINEMEDIAOBJECT">#include &lt;curses.h&gt;
int main()
{
@@ -1178,8 +1159,7 @@ int main()
endwin(); /* End curses mode */
return 0;
-}</span>
-</pre>
+}</span></pre>
</div>
</div>
@@ -1291,7 +1271,7 @@ int main()
initscr() has to be called. There are functions which can be
called after this initialization to customize our curses
session. We may ask the curses system to set the terminal in
- raw mode or initialize color or initialize the mouse etc..
+ raw mode or initialize color or initialize the mouse, etc.
Let's discuss some of the functions that are normally called
immediately after initscr();</p>
@@ -1335,7 +1315,7 @@ int main()
"LITERAL">noecho()</tt> switches off echoing. The reason
you might want to do this is to gain more control over
echoing or to suppress unnecessary echoing while taking
- input from the user through the getch() etc. functions.
+ input from the user through the getch(), etc. functions.
Most of the interactive programs call <tt class=
"LITERAL">noecho()</tt> at initialization and do the
echoing of characters in a controlled manner. It gives the
@@ -1351,7 +1331,7 @@ int main()
keypad()</a></h3>
<p>This is my favorite initialization function. It enables
- the reading of function keys like F1, F2, arrow keys etc.
+ the reading of function keys like F1, F2, arrow keys, etc.
Almost every interactive program enables this, as arrow
keys are a major part of any User Interface. Do <tt class=
"LITERAL">keypad(stdscr, TRUE)</tt> to enable this feature
@@ -1401,11 +1381,12 @@ int main()
<div class="EXAMPLE">
<a name="BINFU" id="BINFU"></a>
-
<p><b>Example 2. Initialization Function Usage
- example</b></p>
- <pre class="PROGRAMLISTING">
-<span class="INLINEMEDIAOBJECT">#include &lt;ncurses.h&gt;
+ example</b>
+ </p>
+
+ <pre class="PROGRAMLISTING"><span class=
+ "INLINEMEDIAOBJECT">#include &lt;curses.h&gt;
int main()
{ int ch;
@@ -1422,7 +1403,7 @@ int main()
if(ch == KEY_F(1)) /* Without keypad enabled this will */
printw("F1 Key pressed");/* not get to us either */
/* Without noecho() some ugly escape
- * charachters might have been printed
+ * characters might have been printed
* on screen */
else
{ printw("The pressed key is ");
@@ -1435,8 +1416,7 @@ int main()
endwin(); /* End curses mode */
return 0;
-}</span>
-</pre>
+}</span></pre>
</div>
<p>This program is self-explanatory. But I used functions
@@ -1470,17 +1450,15 @@ int main()
creates a default window named <tt class=
"LITERAL">stdscr</tt> which represents your 80x25 (or the
size of window in which you are running) screen. If you are
- doing simple tasks like printing few strings, reading input
+ doing simple tasks like printing few strings, reading input,
etc., you can safely use this single window for all of your
purposes. You can also create windows and call functions
which explicitly work on the specified window.</p>
<p>For example, if you call</p>
- <pre class="PROGRAMLISTING">
- printw("Hi There !!!");
- refresh();
-</pre>
+ <pre class="PROGRAMLISTING"> printw("Hi There !!!");
+ refresh();</pre>
<p>It prints the string on stdscr at the present cursor
position. Similarly the call to refresh(), works on stdscr
only.</p>
@@ -1488,23 +1466,20 @@ int main()
<p>Say you have created <a href="#WINDOWS">windows</a> then
you have to call a function with a 'w' added to the usual
function.</p>
- <pre class="PROGRAMLISTING">
- wprintw(win, "Hi There !!!");
- wrefresh(win);
-</pre>
+ <pre class="PROGRAMLISTING"> wprintw(win, "Hi There !!!");
+ wrefresh(win);</pre>
<p>As you will see in the rest of the document, naming of
functions follow the same convention. For each function there
usually are three more functions.</p>
- <pre class="PROGRAMLISTING">
- printw(string); /* Print on stdscr at present cursor position */
+
+ <pre class=
+ "PROGRAMLISTING"> printw(string); /* Print on stdscr at present cursor position */
mvprintw(y, x, string);/* Move to (y, x) then print string */
wprintw(win, string); /* Print on window win at present cursor position */
/* in the window */
mvwprintw(win, y, x, string); /* Move to (y, x) relative to window */
- /* co-ordinates and then print */
-</pre>
-
+ /* co-ordinates and then print */</pre>
<p>Usually the w-less functions are macros which expand to
corresponding w-function with stdscr as the window
parameter.</p>
@@ -1539,7 +1514,7 @@ int main()
</li>
</ol>
- <p>These functions can be used interchangeably and it's a
+ <p>These functions can be used interchangeably and it is a
matter of style as to which class is used. Let's see each one
in detail.</p>
@@ -1570,9 +1545,9 @@ int main()
For example, you want to print a character ch(of type
char) bold and underlined, you would call addch() as
below.</p>
- <pre class="PROGRAMLISTING">
- addch(ch | A_BOLD | A_UNDERLINE);
-</pre>
+
+ <pre class=
+ "PROGRAMLISTING"> addch(ch | A_BOLD | A_UNDERLINE);</pre>
</li>
<li>
@@ -1590,7 +1565,7 @@ int main()
<p>Additionally, <tt class="LITERAL">curses</tt> provides
some special characters for character-based graphics. You
can draw tables, horizontal or vertical lines, etc. You can
- find all avaliable characters in the header file <tt class=
+ find all available characters in the header file <tt class=
"LITERAL">ncurses.h</tt>. Try looking for macros beginning
with <tt class="LITERAL">ACS_</tt> in this file.</p>
</div>
@@ -1598,22 +1573,18 @@ int main()
<div class="SECT2">
<hr>
- <h3 class="SECT2"><a name="AEN298" id="AEN298">6.2.
+ <h3 class="SECT2"><a name="AEN303" id="AEN303">6.2.
mvaddch(), waddch() and mvwaddch()</a></h3>
<p><tt class="LITERAL">mvaddch()</tt> is used to move the
cursor to a given point, and then print. Thus, the
calls:</p>
- <pre class="PROGRAMLISTING">
- move(row,col); /* moves the cursor to row<span class=
-"emphasis"><i class=
-"EMPHASIS">th</i></span> row and col<span class="emphasis"><i class="EMPHASIS">th</i></span> column */
- addch(ch);
-</pre>can be replaced by
- <pre class="PROGRAMLISTING">
- mvaddch(row,col,ch);
-</pre>
+ <pre class=
+ "PROGRAMLISTING"> move(row,col); /* moves the cursor to row<span class="emphasis"><i class="EMPHASIS">th</i></span> row and col<span class="emphasis"><i class="EMPHASIS">th</i></span> column */
+ addch(ch);</pre>can be replaced by
+
+ <pre class="PROGRAMLISTING"> mvaddch(row,col,ch);</pre>
<p><tt class="LITERAL">waddch()</tt> is similar to
<tt class="LITERAL">addch()</tt>, except that it adds a
character into the given window. (Note that <tt class=
@@ -1667,8 +1638,7 @@ int main()
<hr>
<h4 class="SECT3"><a name="WPRINTWMVWPRINTW" id=
- "WPRINTWMVWPRINTW">6.3.2. wprintw() and
- mvwprintw</a></h4>
+ "WPRINTWMVWPRINTW">6.3.2. wprintw() and mvwprintw</a></h4>
<p>These two functions are similar to above two except
that they print in the corresponding window given as
@@ -1694,18 +1664,18 @@ int main()
<div class="EXAMPLE">
<a name="BPREX" id="BPREX"></a>
+ <p><b>Example 3. A Simple printw example</b>
+ </p>
- <p><b>Example 3. A Simple printw example</b></p>
- <pre class="PROGRAMLISTING">
-<span class=
-"INLINEMEDIAOBJECT">#include &lt;ncurses.h&gt; /* ncurses.h includes stdio.h */
+ <pre class="PROGRAMLISTING"><span class=
+ "INLINEMEDIAOBJECT">#include &lt;curses.h&gt;
#include &lt;string.h&gt;
int main()
{
char mesg[]="Just a string"; /* message to be appeared on the screen */
int row,col; /* to store the number of rows and *
- * the number of colums of the screen */
+ * the number of columns of the screen */
initscr(); /* start the curses mode */
getmaxyx(stdscr,row,col); /* get the number of rows and columns */
mvprintw(row/2,(col-strlen(mesg))/2,"%s",mesg);
@@ -1717,8 +1687,7 @@ int main()
endwin();
return 0;
-}</span>
-</pre>
+}</span></pre>
</div>
<p>Above program demonstrates how easy it is to use
@@ -1891,11 +1860,11 @@ int main()
<div class="EXAMPLE">
<a name="BSCEX" id="BSCEX"></a>
+ <p><b>Example 4. A Simple scanw example</b>
+ </p>
- <p><b>Example 4. A Simple scanw example</b></p>
- <pre class="PROGRAMLISTING">
-<span class=
-"INLINEMEDIAOBJECT">#include &lt;ncurses.h&gt; /* ncurses.h includes stdio.h */
+ <pre class="PROGRAMLISTING"><span class=
+ "INLINEMEDIAOBJECT">#include &lt;curses.h&gt;
#include &lt;string.h&gt;
int main()
@@ -1903,7 +1872,7 @@ int main()
char mesg[]="Enter a string: "; /* message to be appeared on the screen */
char str[80];
int row,col; /* to store the number of rows and *
- * the number of colums of the screen */
+ * the number of columns of the screen */
initscr(); /* start the curses mode */
getmaxyx(stdscr,row,col); /* get the number of rows and columns */
mvprintw(row/2,(col-strlen(mesg))/2,"%s",mesg);
@@ -1914,8 +1883,7 @@ int main()
endwin();
return 0;
-}</span>
-</pre>
+}</span></pre>
</div>
</div>
</div>
@@ -1935,12 +1903,12 @@ int main()
<div class="EXAMPLE">
<a name="BSIAT" id="BSIAT"></a>
+ <p><b>Example 5. A Simple Attributes example</b>
+ </p>
- <p><b>Example 5. A Simple Attributes example</b></p>
- <pre class="PROGRAMLISTING">
-<span class=
-"INLINEMEDIAOBJECT">/* pager functionality by Joseph Spainhour" &lt;spainhou@bellsouth.net&gt; */
-#include &lt;ncurses.h&gt;
+ <pre class="PROGRAMLISTING"><span class=
+ "INLINEMEDIAOBJECT">/* pager functionality by Joseph Spainhour" &lt;spainhou@bellsouth.net&gt; */
+#include &lt;curses.h&gt;
#include &lt;stdlib.h&gt;
int main(int argc, char *argv[])
@@ -1965,7 +1933,7 @@ int main(int argc, char *argv[])
getmaxyx(stdscr, row, col); /* find the boundaries of the screeen */
while((ch = fgetc(fp)) != EOF) /* read the file till we reach the end */
{
- getyx(stdscr, y, x); /* get the current curser position */
+ getyx(stdscr, y, x); /* get the current cursor position */
if(y == (row - 1)) /* are we are at the end of the screen */
{
printw("&lt;-Press Any Key-&gt;"); /* tell the user to press a key */
@@ -1977,7 +1945,7 @@ int main(int argc, char *argv[])
* switch bold on */
{
attron(A_BOLD); /* cut bold on */
- getyx(stdscr, y, x); /* get the current curser position */
+ getyx(stdscr, y, x); /* get the current cursor position */
move(y, x - 1); /* back up one space */
printw("%c%c", '/', ch); /* The actual printing is done here */
}
@@ -1992,8 +1960,7 @@ int main(int argc, char *argv[])
endwin(); /* End curses mode */
fclose(fp);
return 0;
-}</span>
-</pre>
+}</span></pre>
</div>
<p>Don't worry about all those initialization and other crap.
@@ -2026,7 +1993,7 @@ int main(int argc, char *argv[])
<p>Let's get into more details of attributes. The functions
<tt class="LITERAL">attron(), attroff(), attrset()</tt> ,
and their sister functions <tt class=
- "LITERAL">attr_get()</tt> etc.. can be used to switch
+ "LITERAL">attr_get()</tt>, etc. can be used to switch
attributes on/off , get attributes and produce a colorful
display.</p>
@@ -2034,8 +2001,8 @@ int main(int argc, char *argv[])
attributes and switch them on or off, respectively. The
following video attributes, which are defined in
&lt;curses.h&gt; can be passed to these functions.</p>
- <pre class="PROGRAMLISTING">
-
+
+ <pre class="PROGRAMLISTING">
A_NORMAL Normal display (no highlight)
A_STANDOUT Best highlighting mode of the terminal.
A_UNDERLINE Underlining
@@ -2048,9 +2015,7 @@ int main(int argc, char *argv[])
A_ALTCHARSET Alternate character set
A_CHARTEXT Bit-mask to extract a character
COLOR_PAIR(n) Color-pair number n
-
-</pre>
-
+ </pre>
<p>The last one is the most colorful one :-) Colors are
explained in the <a href="#color" target="_top">next
sections</a>.</p>
@@ -2058,9 +2023,9 @@ int main(int argc, char *argv[])
<p>We can OR(|) any number of above attributes to get a
combined effect. If you wanted reverse video with blinking
characters you can use</p>
- <pre class="PROGRAMLISTING">
- attron(A_REVERSE | A_BLINK);
-</pre>
+
+ <pre class=
+ "PROGRAMLISTING"> attron(A_REVERSE | A_BLINK);</pre>
</div>
<div class="SECT2">
@@ -2108,8 +2073,8 @@ int main(int argc, char *argv[])
<h3 class="SECT2"><a name="ATTRFUNCS" id="ATTRFUNCS">8.4.
attr_ functions</a></h3>
- <p>There are series of functions like attr_set(), attr_on
- etc.. These are similar to above functions except that they
+ <p>There are series of functions like attr_set(), attr_on,
+ etc. These are similar to above functions except that they
take parameters of type <tt class=
"LITERAL">attr_t</tt>.</p>
</div>
@@ -2141,10 +2106,9 @@ int main(int argc, char *argv[])
<p>We can give -1 as the character count to update till end
of line. If you want to change attributes of characters
from current position to end of line, just use this.</p>
- <pre class="PROGRAMLISTING">
- chgat(-1, A_REVERSE, 0, NULL);
-</pre>
+ <pre class=
+ "PROGRAMLISTING"> chgat(-1, A_REVERSE, 0, NULL);</pre>
<p>This function is useful when changing attributes for
characters that are already on the screen. Move to the
character from which you want to change and change the
@@ -2159,10 +2123,11 @@ int main(int argc, char *argv[])
<div class="EXAMPLE">
<a name="BWICH" id="BWICH"></a>
+ <p><b>Example 6. Chgat() Usage example</b>
+ </p>
- <p><b>Example 6. Chgat() Usage example</b></p>
- <pre class="PROGRAMLISTING">
-<span class="INLINEMEDIAOBJECT">#include &lt;ncurses.h&gt;
+ <pre class="PROGRAMLISTING"><span class=
+ "INLINEMEDIAOBJECT">#include &lt;curses.h&gt;
int main(int argc, char *argv[])
{ initscr(); /* Start curses mode */
@@ -2176,7 +2141,7 @@ int main(int argc, char *argv[])
* Third parameter number of characters to update. -1 means till
* end of line
* Forth parameter is the normal attribute you wanted to give
- * to the charcter
+ * to the character
* Fifth is the color index. It is the index given during init_pair()
* use 0 if you didn't want color
* Sixth one is always NULL
@@ -2185,8 +2150,7 @@ int main(int argc, char *argv[])
getch();
endwin(); /* End curses mode */
return 0;
-}</span>
-</pre>
+}</span></pre>
</div>
<p>This example also introduces us to the color world of
@@ -2224,13 +2188,13 @@ int main(int argc, char *argv[])
<tt class="LITERAL">newwin()</tt>. It doesn't create any
thing on the screen actually. It allocates memory for a
structure to manipulate the window and updates the
- structure with data regarding the window like it's size,
- beginy, beginx etc.. Hence in curses, a window is just an
+ structure with data regarding the window such as its size,
+ beginy, beginx, etc. Hence in curses, a window is just an
abstraction of an imaginary window, which can be
manipulated independent of other parts of screen. The
function newwin() returns a pointer to structure WINDOW,
- which can be passed to window related functions like
- wprintw() etc.. Finally the window can be destroyed with
+ which can be passed to window related functions such as
+ wprintw(), etc. Finally the window can be destroyed with
delwin(). It will deallocate the memory associated with the
window structure.</p>
</div>
@@ -2249,11 +2213,11 @@ int main(int argc, char *argv[])
<div class="EXAMPLE">
<a name="BWIBO" id="BWIBO"></a>
+ <p><b>Example 7. Window Border example</b>
+ </p>
- <p><b>Example 7. Window Border example</b></p>
- <pre class="PROGRAMLISTING">
-<span class="INLINEMEDIAOBJECT">#include &lt;ncurses.h&gt;
-
+ <pre class="PROGRAMLISTING"><span class=
+ "INLINEMEDIAOBJECT">#include &lt;curses.h&gt;
WINDOW *create_newwin(int height, int width, int starty, int startx);
void destroy_win(WINDOW *local_win);
@@ -2316,7 +2280,7 @@ WINDOW *create_newwin(int height, int width, int starty, int startx)
void destroy_win(WINDOW *local_win)
{
/* box(local_win, ' ', ' '); : This won't produce the desired
- * result of erasing the window. It will leave it's four corners
+ * result of erasing the window. It will leave its four corners
* and so an ugly remnant of window.
*/
wborder(local_win, ' ', ' ', ' ',' ',' ',' ',' ',' ');
@@ -2333,8 +2297,7 @@ void destroy_win(WINDOW *local_win)
*/
wrefresh(local_win);
delwin(local_win);
-}</span>
-</pre>
+}</span></pre>
</div>
</div>
@@ -2344,7 +2307,7 @@ void destroy_win(WINDOW *local_win)
<h3 class="SECT2"><a name="BORDEREXEXPL" id=
"BORDEREXEXPL">9.3. Explanation</a></h3>
- <p>Don't scream. I know it's a big example. But I have to
+ <p>Don't scream. I know it is a big example. But I have to
explain some important things here :-). This program
creates a rectangular window that can be moved with left,
right, up, down arrow keys. It repeatedly creates and
@@ -2369,21 +2332,19 @@ void destroy_win(WINDOW *local_win)
border around the window with the characters given to it as
the 4 corner points and the 4 lines. To put it clearly, if
you have called wborder as below:</p>
- <pre class="PROGRAMLISTING">
- wborder(win, '|', '|', '-', '-', '+', '+', '+', '+');
-</pre>
- <p>it produces some thing like</p>
- <pre class="PROGRAMLISTING">
- +------------+
+ <pre class=
+ "PROGRAMLISTING"> wborder(win, '|', '|', '-', '-', '+', '+', '+', '+');</pre>
+ <p>it produces something like</p>
+
+ <pre class="PROGRAMLISTING"> +------------+
| |
| |
| |
| |
| |
| |
- +------------+
-</pre>
+ +------------+</pre>
</div>
<div class="SECT2">
@@ -2423,10 +2384,11 @@ void destroy_win(WINDOW *local_win)
<div class="EXAMPLE">
<a name="BOTBO" id="BOTBO"></a>
+ <p><b>Example 8. More border functions</b>
+ </p>
- <p><b>Example 8. More border functions</b></p>
- <pre class="PROGRAMLISTING">
-<span class="INLINEMEDIAOBJECT">#include &lt;ncurses.h&gt;
+ <pre class="PROGRAMLISTING"><span class=
+ "INLINEMEDIAOBJECT">#include &lt;curses.h&gt;
typedef struct _win_border_struct {
chtype ls, rs, ts, bs,
@@ -2545,8 +2507,7 @@ void create_box(WIN *p_win, bool flag)
refresh();
-}</span>
-</pre>
+}</span></pre>
</div>
</div>
</div>
@@ -2554,8 +2515,7 @@ void create_box(WIN *p_win, bool flag)
<div class="SECT1">
<hr>
- <h2 class="SECT1"><a name="COLOR" id="COLOR">10.
- Colors</a></h2>
+ <h2 class="SECT1"><a name="COLOR" id="COLOR">10. Colors</a></h2>
<div class="SECT2">
<h3 class="SECT2"><a name="COLORBASICS" id=
@@ -2567,10 +2527,13 @@ void create_box(WIN *p_win, bool flag)
<div class="EXAMPLE">
<a name="BSICO" id="BSICO"></a>
+ <p><b>Example 9. A Simple Color example</b>
+ </p>
- <p><b>Example 9. A Simple Color example</b></p>
- <pre class="PROGRAMLISTING">
-<span class="INLINEMEDIAOBJECT">#include &lt;ncurses.h&gt;
+ <pre class="PROGRAMLISTING"><span class=
+ "INLINEMEDIAOBJECT">#include &lt;stdlib.h&gt;
+#include &lt;string.h&gt;
+#include &lt;curses.h&gt;
void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string);
int main(int argc, char *argv[])
@@ -2609,8 +2572,7 @@ void print_in_middle(WINDOW *win, int starty, int startx, int width, char *strin
mvwprintw(win, y, x, "%s", string);
refresh();
}
-</span>
-</pre>
+</span></pre>
</div>
<p>As you can see, to start using color, you should first
@@ -2624,36 +2586,35 @@ void print_in_middle(WINDOW *win, int starty, int startx, int width, char *strin
<p>Curses initializes all the colors supported by terminal
when start_color() is called. These can be accessed by the
define constants like <tt class="LITERAL">COLOR_BLACK</tt>
- etc. Now to actually start using colors, you have to define
- pairs. Colors are always used in pairs. That means you have
- to use the function <tt class="LITERAL">init_pair()</tt> to
- define the foreground and background for the pair number
- you give. After that that pair number can be used as a
- normal attribute with <tt class=
- "LITERAL">COLOR_PAIR()</tt>function. This may seem to be
- cumbersome at first. But this elegant solution allows us to
- manage color pairs very easily. To appreciate it, you have
- to look into the the source code of "dialog", a utility for
- displaying dialog boxes from shell scripts. The developers
- have defined foreground and background combinations for all
- the colors they might need and initialized at the
- beginning. This makes it very easy to set attributes just
- by accessing a pair which we already have defined as a
- constant.</p>
+ , etc. Now to actually start using colors, you have to
+ define pairs. Colors are always used in pairs. That means
+ you have to use the function <tt class=
+ "LITERAL">init_pair()</tt> to define the foreground and
+ background for the pair number you give. After that that
+ pair number can be used as a normal attribute with
+ <tt class="LITERAL">COLOR_PAIR()</tt>function. This may
+ seem to be cumbersome at first. But this elegant solution
+ allows us to manage color pairs very easily. To appreciate
+ it, you have to look into the the source code of "dialog",
+ a utility for displaying dialog boxes from shell scripts.
+ The developers have defined foreground and background
+ combinations for all the colors they might need and
+ initialized at the beginning. This makes it very easy to
+ set attributes just by accessing a pair which we already
+ have defined as a constant.</p>
<p>The following colors are defined in <tt class=
"LITERAL">curses.h</tt>. You can use these as parameters
for various color functions.</p>
- <pre class="PROGRAMLISTING">
- COLOR_BLACK 0
+
+ <pre class="PROGRAMLISTING"> COLOR_BLACK 0
COLOR_RED 1
COLOR_GREEN 2
COLOR_YELLOW 3
COLOR_BLUE 4
COLOR_MAGENTA 5
COLOR_CYAN 6
- COLOR_WHITE 7
-</pre>
+ COLOR_WHITE 7</pre>
</div>
<div class="SECT2">
@@ -2667,12 +2628,11 @@ void print_in_middle(WINDOW *win, int starty, int startx, int width, char *strin
curses initially. Say you wanted to lighten the intensity
of red color by a minuscule. Then you can use this function
as</p>
- <pre class="PROGRAMLISTING">
- init_color(COLOR_RED, 700, 0, 0);
- /* param 1 : color name
- * param 2, 3, 4 : rgb content min = 0, max = 1000 */
-</pre>
+ <pre class=
+ "PROGRAMLISTING"> init_color(COLOR_RED, 700, 0, 0);
+ /* param 1 : color name
+ * param 2, 3, 4 : rgb content min = 0, max = 1000 */</pre>
<p>If your terminal cannot change the color definitions,
the function returns ERR. The function <tt class=
"LITERAL">can_change_color()</tt> can be used to find out
@@ -2710,14 +2670,14 @@ void print_in_middle(WINDOW *win, int starty, int startx, int width, char *strin
sensitive to key presses or the mouse actions done by the
user. Let's deal with the keys first.</p>
- <p>As you have seen in almost all of the above examples,
- it's very easy to get key input from the user. A simple way
+ <p>As you have seen in almost all of the above examples, it
+ is very easy to get key input from the user. A simple way
of getting key presses is to use <tt class=
"LITERAL">getch()</tt> function. The cbreak mode should be
enabled to read keys when you are interested in reading
individual key hits rather than complete lines of text
(which usually end with a carriage return). keypad should
- be enabled to get the Functions keys, arrow keys etc. See
+ be enabled to get the Functions keys, arrow keys, etc. See
the initialization section for details.</p>
<p><tt class="LITERAL">getch()</tt> returns an integer
@@ -2731,12 +2691,10 @@ void print_in_middle(WINDOW *win, int starty, int startx, int width, char *strin
keys portable and easy to manage.</p>
<p>For example, if you call getch() like this</p>
- <pre class="PROGRAMLISTING">
- int ch;
- ch = getch();
-</pre>
+ <pre class="PROGRAMLISTING"> int ch;
+ ch = getch();</pre>
<p>getch() will wait for the user to press a key, (unless
you specified a timeout) and when user presses a key, the
corresponding integer is returned. Then you can check the
@@ -2744,11 +2702,9 @@ void print_in_middle(WINDOW *win, int starty, int startx, int width, char *strin
match against the keys you want.</p>
<p>The following code piece will do that job.</p>
- <pre class="PROGRAMLISTING">
- if(ch == KEY_LEFT)
- printw("Left arrow is pressed\n");
-</pre>
+ <pre class="PROGRAMLISTING"> if(ch == KEY_LEFT)
+ printw("Left arrow is pressed\n");</pre>
<p>Let's write a small program which creates a menu which
can be navigated by up and down arrows.</p>
</div>
@@ -2761,11 +2717,11 @@ void print_in_middle(WINDOW *win, int starty, int startx, int width, char *strin
<div class="EXAMPLE">
<a name="BSIKE" id="BSIKE"></a>
+ <p><b>Example 10. A Simple Key Usage example</b>
+ </p>
- <p><b>Example 10. A Simple Key Usage example</b></p>
- <pre class="PROGRAMLISTING">
-<span class="INLINEMEDIAOBJECT">#include &lt;stdio.h&gt;
-#include &lt;ncurses.h&gt;
+ <pre class="PROGRAMLISTING"><span class=
+ "INLINEMEDIAOBJECT">#include &lt;curses.h&gt;
#define WIDTH 30
#define HEIGHT 10
@@ -2820,7 +2776,7 @@ int main()
choice = highlight;
break;
default:
- mvprintw(24, 0, "Charcter pressed is = %3d Hopefully it can be printed as '%c'", c, c);
+ mvprintw(24, 0, "Character pressed is = %3d Hopefully it can be printed as '%c'", c, c);
refresh();
break;
}
@@ -2835,7 +2791,6 @@ int main()
return 0;
}
-
void print_menu(WINDOW *menu_win, int highlight)
{
int x, y, i;
@@ -2855,8 +2810,7 @@ void print_menu(WINDOW *menu_win, int highlight)
}
wrefresh(menu_win);
}
-</span>
-</pre>
+</span></pre>
</div>
</div>
</div>
@@ -2880,11 +2834,10 @@ void print_menu(WINDOW *menu_win, int highlight)
<p>Before you do any thing else, the events you want to
receive have to be enabled with <tt class=
"LITERAL">mousemask()</tt>.</p>
- <pre class="PROGRAMLISTING">
- mousemask( mmask_t newmask, /* The events you want to listen to */
- mmask_t *oldmask) /* The old events mask */
-</pre>
+ <pre class=
+ "PROGRAMLISTING"> mousemask( mmask_t newmask, /* The events you want to listen to */
+ mmask_t *oldmask) /* The old events mask */</pre>
<p>The first parameter to above function is a bit mask of
events you would like to listen. By default, all the events
are turned off. The bit mask <tt class=
@@ -2892,8 +2845,8 @@ void print_menu(WINDOW *menu_win, int highlight)
events.</p>
<p>The following are all the event masks:</p>
- <pre class="PROGRAMLISTING">
- Name Description
+
+ <pre class="PROGRAMLISTING"> Name Description
---------------------------------------------------------------------
BUTTON1_PRESSED mouse button 1 down
BUTTON1_RELEASED mouse button 1 up
@@ -2919,8 +2872,7 @@ void print_menu(WINDOW *menu_win, int highlight)
BUTTON_CTRL control was down during button state change
BUTTON_ALT alt was down during button state change
ALL_MOUSE_EVENTS report all button state changes
- REPORT_MOUSE_POSITION report mouse movement
-</pre>
+ REPORT_MOUSE_POSITION report mouse movement</pre>
</div>
<div class="SECT2">
@@ -2935,38 +2887,34 @@ void print_menu(WINDOW *menu_win, int highlight)
<tt class="LITERAL">getmouse()</tt>.</p>
<p>The code approximately looks like this:</p>
- <pre class="PROGRAMLISTING">
- MEVENT event;
+
+ <pre class="PROGRAMLISTING"> MEVENT event;
ch = getch();
if(ch == KEY_MOUSE)
if(getmouse(&amp;event) == OK)
. /* Do some thing with the event */
.
- .
-</pre>
-
+ .</pre>
<p>getmouse() returns the event into the pointer given to
- it. It's a structure which contains</p>
- <pre class="PROGRAMLISTING">
- typedef struct
+ it. It is a structure which contains</p>
+
+ <pre class="PROGRAMLISTING"> typedef struct
{
short id; /* ID to distinguish multiple devices */
int x, y, z; /* event coordinates */
mmask_t bstate; /* button state bits */
- }
-</pre>
-
+ } </pre>
<p>The <tt class="LITERAL">bstate</tt> is the main variable
we are interested in. It tells the button state of the
mouse.</p>
<p>Then with a code snippet like the following, we can find
out what happened.</p>
- <pre class="PROGRAMLISTING">
- if(event.bstate &amp; BUTTON1_PRESSED)
- printw("Left Button Pressed");
-</pre>
+
+ <pre class=
+ "PROGRAMLISTING"> if(event.bstate &amp; BUTTON1_PRESSED)
+ printw("Left Button Pressed");</pre>
</div>
<div class="SECT2">
@@ -2981,13 +2929,15 @@ void print_menu(WINDOW *menu_win, int highlight)
<div class="EXAMPLE">
<a name="BMOME" id="BMOME"></a>
+ <p><b>Example 11. Access the menu with mouse !!!</b>
+ </p>
- <p><b>Example 11. Access the menu with mouse !!!</b></p>
- <pre class="PROGRAMLISTING">
-<span class="INLINEMEDIAOBJECT">#include &lt;ncurses.h&gt;
+ <pre class="PROGRAMLISTING"><span class=
+ "INLINEMEDIAOBJECT">#include &lt;string.h&gt;
+#include &lt;curses.h&gt;
#define WIDTH 30
-#define HEIGHT 10
+#define HEIGHT 10
int startx = 0;
int starty = 0;
@@ -3018,7 +2968,7 @@ int main()
/* Try to put the window in the middle of screen */
startx = (80 - WIDTH) / 2;
starty = (24 - HEIGHT) / 2;
-
+
attron(A_REVERSE);
mvprintw(23, 1, "Click on Exit to quit (Works best in a virtual console)");
refresh();
@@ -3026,10 +2976,11 @@ int main()
/* Print the menu for the first time */
menu_win = newwin(HEIGHT, WIDTH, starty, startx);
+ keypad(menu_win, TRUE);
print_menu(menu_win, 1);
/* Get all the mouse events */
mousemask(ALL_MOUSE_EVENTS, NULL);
-
+
while(1)
{ c = wgetch(menu_win);
switch(c)
@@ -3041,29 +2992,28 @@ int main()
if(choice == -1) //Exit chosen
goto end;
mvprintw(22, 1, "Choice made is : %d String Chosen is \"%10s\"", choice, choices[choice - 1]);
- refresh();
+ refresh();
}
}
print_menu(menu_win, choice);
break;
}
- }
+ }
end:
endwin();
return 0;
}
-
void print_menu(WINDOW *menu_win, int highlight)
{
- int x, y, i;
+ int x, y, i;
x = 2;
y = 2;
box(menu_win, 0, 0);
for(i = 0; i &lt; n_choices; ++i)
{ if(highlight == i + 1)
- { wattron(menu_win, A_REVERSE);
+ { wattron(menu_win, A_REVERSE);
mvwprintw(menu_win, y, x, "%s", choices[i]);
wattroff(menu_win, A_REVERSE);
}
@@ -3080,17 +3030,16 @@ void report_choice(int mouse_x, int mouse_y, int *p_choice)
i = startx + 2;
j = starty + 3;
-
+
for(choice = 0; choice &lt; n_choices; ++choice)
if(mouse_y == j + choice &amp;&amp; mouse_x &gt;= i &amp;&amp; mouse_x &lt;= i + strlen(choices[choice]))
{ if(choice == n_choices - 1)
- *p_choice = -1;
+ *p_choice = -1;
else
- *p_choice = choice + 1;
+ *p_choice = choice + 1;
break;
}
-}</span>
-</pre>
+}</span></pre>
</div>
</div>
@@ -3134,18 +3083,16 @@ void report_choice(int mouse_x, int mouse_y, int *p_choice)
fill the values of x and y co-ordinates in the arguments
given to it. Since getyx() is a macro you don't have to
pass the address of the variables. It can be called as</p>
- <pre class="PROGRAMLISTING">
- getyx(win, y, x);
+
+ <pre class="PROGRAMLISTING"> getyx(win, y, x);
/* win: window pointer
* y, x: y, x co-ordinates will be put into this variables
- */
-</pre>
-
+ */</pre>
<p>The function getparyx() gets the beginning co-ordinates
of the sub window relative to the main window. This is some
times useful to update a sub window. When designing fancy
stuff like writing multiple menus, it becomes difficult to
- store the menu positions, their first option co-ordinates
+ store the menu positions, their first option co-ordinates,
etc. A simple solution to this problem, is to create menus
in sub windows and later find the starting co-ordinates of
the menus by using getparyx().</p>
@@ -3188,7 +3135,7 @@ void report_choice(int mouse_x, int mouse_y, int *p_choice)
used to copy a window completely onto another window. It
takes the source and destination windows as parameters and
according to the rectangle specified, it copies the
- rectangular region from source to destination window. It's
+ rectangular region from source to destination window. Its
last parameter specifies whether to overwrite or just
overlay the contents on to the destination window. If this
argument is true, then the copying is non-destructive.</p>
@@ -3214,11 +3161,10 @@ void report_choice(int mouse_x, int mouse_y, int *p_choice)
<p>This function can be used to make the cursor invisible.
The parameter to this function should be</p>
- <pre class="PROGRAMLISTING">
- 0 : invisible or
+
+ <pre class="PROGRAMLISTING"> 0 : invisible or
1 : normal or
- 2 : very visible.
-</pre>
+ 2 : very visible.</pre>
</div>
<div class="SECT2">
@@ -3242,10 +3188,12 @@ void report_choice(int mouse_x, int mouse_y, int *p_choice)
<div class="EXAMPLE">
<a name="BTELE" id="BTELE"></a>
+ <p><b>Example 12. Temporarily Leaving Curses Mode</b>
+ </p>
- <p><b>Example 12. Temporarily Leaving Curses Mode</b></p>
- <pre class="PROGRAMLISTING">
-<span class="INLINEMEDIAOBJECT">#include &lt;ncurses.h&gt;
+ <pre class="PROGRAMLISTING"><span class=
+ "INLINEMEDIAOBJECT">#include &lt;stdlib.h&gt;
+#include &lt;curses.h&gt;
int main()
{
@@ -3264,8 +3212,7 @@ int main()
endwin(); /* End curses mode */
return 0;
-}</span>
-</pre>
+}</span></pre>
</div>
</div>
@@ -3281,15 +3228,16 @@ int main()
<tt class="LITERAL">box()</tt> use these characters. All
these variables start with ACS meaning alternative
character set. You might have noticed me using these
- characters in some of the programs above. Here's an example
- showing all the characters.</p>
+ characters in some of the programs above. Here is an
+ example showing all the characters.</p>
<div class="EXAMPLE">
<a name="BACSVARS" id="BACSVARS"></a>
+ <p><b>Example 13. ACS Variables Example</b>
+ </p>
- <p><b>Example 13. ACS Variables Example</b></p>
- <pre class="PROGRAMLISTING">
-<span class="INLINEMEDIAOBJECT">#include &lt;ncurses.h&gt;
+ <pre class="PROGRAMLISTING"><span class=
+ "INLINEMEDIAOBJECT">#include &lt;curses.h&gt;
int main()
{
@@ -3332,8 +3280,7 @@ int main()
endwin();
return 0;
-}</span>
-</pre>
+}</span></pre>
</div>
</div>
</div>
@@ -3365,14 +3312,15 @@ int main()
create blotches, whenever you forget to refresh the windows
in the proper order.</p>
- <p>Don't despair. There's an elegant solution provided in
+ <p>Don't despair. There is an elegant solution provided in
panels library. In the words of developers of ncurses</p>
<p><span class="emphasis"><i class="EMPHASIS">When your
interface design is such that windows may dive deeper into
the visibility stack or pop to the top at runtime, the
resulting book-keeping can be tedious and difficult to get
- right. Hence the panels library.</i></span></p>
+ right. Hence the panels library.</i></span>
+ </p>
<p>If you have lot of overlapping windows, then panels
library is the way to go. It obviates the need of doing
@@ -3397,7 +3345,7 @@ int main()
to display them correctly. There is a function similar to
refresh() which, when called , displays panels in the
correct order. Functions are provided to hide or show
- panels, move panels, change its size etc.. The overlapping
+ panels, move panels, change its size, etc. The overlapping
problem is managed by the panels library during all the
calls to these functions.</p>
@@ -3423,7 +3371,7 @@ int main()
<li>
<p>Mainpulate the panels with show_panel(),
- hide_panel(), move_panel() etc. Make use of helper
+ hide_panel(), move_panel(), etc. Make use of helper
functions like panel_hidden() and panel_window(). Make
use of user pointer to store custom data for a panel.
Use the functions set_panel_userptr() and
@@ -3446,28 +3394,26 @@ int main()
<hr>
<h3 class="SECT2"><a name="COMPILEPANELS" id=
- "COMPILEPANELS">16.2. Compiling With the Panels
- Library</a></h3>
+ "COMPILEPANELS">16.2. Compiling With the Panels Library</a></h3>
<p>To use panels library functions, you have to include
panel.h and to link the program with panels library the
flag -lpanel should be added along with -lncurses in that
order.</p>
- <pre class="PROGRAMLISTING">
- #include &lt;panel.h&gt;
+
+ <pre class="PROGRAMLISTING"> #include &lt;panel.h&gt;
.
.
.
- compile and link: gcc &lt;program file&gt; -lpanel -lncurses
-</pre>
-
+ compile and link: gcc &lt;program file&gt; -lpanel -lncurses</pre>
<div class="EXAMPLE">
<a name="PPASI" id="PPASI"></a>
+ <p><b>Example 14. Panel basics</b>
+ </p>
- <p><b>Example 14. Panel basics</b></p>
- <pre class="PROGRAMLISTING">
-<span class="INLINEMEDIAOBJECT">#include &lt;panel.h&gt;
+ <pre class="PROGRAMLISTING"><span class=
+ "INLINEMEDIAOBJECT">#include &lt;panel.h&gt;
int main()
{ WINDOW *my_wins[3];
@@ -3504,8 +3450,7 @@ int main()
getch();
endwin();
}
-</span>
-</pre>
+</span></pre>
</div>
<p>As you can see, above program follows a simple flow as
@@ -3528,10 +3473,12 @@ int main()
<div class="EXAMPLE">
<a name="PPABR" id="PPABR"></a>
+ <p><b>Example 15. Panel Window Browsing Example</b>
+ </p>
- <p><b>Example 15. Panel Window Browsing Example</b></p>
- <pre class="PROGRAMLISTING">
-<span class="INLINEMEDIAOBJECT">#include &lt;panel.h&gt;
+ <pre class="PROGRAMLISTING"><span class=
+ "INLINEMEDIAOBJECT">#include &lt;string.h&gt;
+#include &lt;panel.h&gt;
#define NLINES 10
#define NCOLS 40
@@ -3647,8 +3594,7 @@ void print_in_middle(WINDOW *win, int starty, int startx, int width, char *strin
mvwprintw(win, y, x, "%s", string);
wattroff(win, color);
refresh();
-}</span>
-</pre>
+}</span></pre>
</div>
</div>
@@ -3668,7 +3614,7 @@ void print_in_middle(WINDOW *win, int starty, int startx, int width, char *strin
can be accessed using the function <tt class=
"LITERAL">panel_userptr()</tt> which will return the user
pointer for the panel given as argument. After finding the
- next panel in the cycle It's brought to the top by the
+ next panel in the cycle, it is brought to the top by the
function top_panel(). This function brings the panel given
as argument to the top of the panel stack.</p>
</div>
@@ -3705,11 +3651,13 @@ void print_in_middle(WINDOW *win, int starty, int startx, int width, char *strin
<div class="EXAMPLE">
<a name="PPARE" id="PPARE"></a>
+ <p><b>Example 16. Panel Moving and Resizing example</b>
+ </p>
- <p><b>Example 16. Panel Moving and Resizing
- example</b></p>
- <pre class="PROGRAMLISTING">
-<span class="INLINEMEDIAOBJECT">#include &lt;panel.h&gt;
+ <pre class="PROGRAMLISTING"><span class=
+ "INLINEMEDIAOBJECT">#include &lt;stdlib.h&gt;
+#include &lt;string.h&gt;
+#include &lt;panel.h&gt;
typedef struct _PANEL_DATA {
int x, y, w, h;
@@ -3942,8 +3890,7 @@ void print_in_middle(WINDOW *win, int starty, int startx, int width, char *strin
mvwprintw(win, y, x, "%s", string);
wattroff(win, color);
refresh();
-}</span>
-</pre>
+}</span></pre>
</div>
<p>Concentrate on the main while loop. Once it finds out
@@ -3953,7 +3900,7 @@ void print_in_middle(WINDOW *win, int starty, int startx, int width, char *strin
the user presses &lt;ENTER&gt; present selection ends and
panel is resized by using the concept explained. While in
resizing mode the program doesn't show how the window is
- getting resized. It's left as an exercise to the reader to
+ getting resized. It is left as an exercise to the reader to
print a dotted border while it gets resized to a new
position.</p>
@@ -3997,11 +3944,12 @@ void print_in_middle(WINDOW *win, int starty, int startx, int width, char *strin
<div class="EXAMPLE">
<a name="PPAHI" id="PPAHI"></a>
+ <p><b>Example 17. Panel Hiding and Showing example</b>
+ </p>
- <p><b>Example 17. Panel Hiding and Showing
- example</b></p>
- <pre class="PROGRAMLISTING">
-<span class="INLINEMEDIAOBJECT">#include &lt;panel.h&gt;
+ <pre class="PROGRAMLISTING"><span class=
+ "INLINEMEDIAOBJECT">#include &lt;string.h&gt;
+#include &lt;panel.h&gt;
typedef struct _PANEL_DATA {
int hide; /* TRUE if panel is hidden */
@@ -4041,7 +3989,7 @@ int main()
my_panels[1] = new_panel(my_wins[1]); /* Push 1, order: stdscr-0-1 */
my_panels[2] = new_panel(my_wins[2]); /* Push 2, order: stdscr-0-1-2 */
- /* Initialize panel datas saying that nothing is hidden */
+ /* Initialize panel data saying that nothing is hidden */
panel_datas[0].hide = FALSE;
panel_datas[1].hide = FALSE;
panel_datas[2].hide = FALSE;
@@ -4156,8 +4104,7 @@ void print_in_middle(WINDOW *win, int starty, int startx, int width, char *strin
mvwprintw(win, y, x, "%s", string);
wattroff(win, color);
refresh();
-}</span>
-</pre>
+}</span></pre>
</div>
</div>
@@ -4185,7 +4132,7 @@ void print_in_middle(WINDOW *win, int starty, int startx, int width, char *strin
<p>The menus library provides a nice extension to basic
curses, through which you can create menus. It provides a set
of functions to create menus. But they have to be customized
- to give a nicer look, with colors etc. Let's get into the
+ to give a nicer look, with colors, etc. Let's get into the
details.</p>
<p>A menu is a screen display that assists the user to choose
@@ -4262,28 +4209,27 @@ void print_in_middle(WINDOW *win, int starty, int startx, int width, char *strin
<hr>
<h3 class="SECT2"><a name="COMPILEMENUS" id=
- "COMPILEMENUS">17.2. Compiling With the Menu
- Library</a></h3>
+ "COMPILEMENUS">17.2. Compiling With the Menu Library</a></h3>
<p>To use menu library functions, you have to include
menu.h and to link the program with menu library the flag
-lmenu should be added along with -lncurses in that
order.</p>
- <pre class="PROGRAMLISTING">
- #include &lt;menu.h&gt;
+
+ <pre class="PROGRAMLISTING"> #include &lt;menu.h&gt;
.
.
.
- compile and link: gcc &lt;program file&gt; -lmenu -lncurses
-</pre>
-
+ compile and link: gcc &lt;program file&gt; -lmenu -lncurses</pre>
<div class="EXAMPLE">
<a name="MMESI" id="MMESI"></a>
+ <p><b>Example 18. Menu Basics</b>
+ </p>
- <p><b>Example 18. Menu Basics</b></p>
- <pre class="PROGRAMLISTING">
-<span class="INLINEMEDIAOBJECT">#include &lt;curses.h&gt;
+ <pre class="PROGRAMLISTING"><span class=
+ "INLINEMEDIAOBJECT">#include &lt;stdlib.h&gt;
+#include &lt;curses.h&gt;
#include &lt;menu.h&gt;
#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
@@ -4338,8 +4284,7 @@ int main()
free_menu(my_menu);
endwin();
}
- </span>
-</pre>
+ </span></pre>
</div>
<p>This program demonstrates the basic concepts involved in
@@ -4357,8 +4302,9 @@ int main()
<p>The menu_driver accepts following navigational
requests.</p>
- <pre class="PROGRAMLISTING">
-&#13; REQ_LEFT_ITEM Move left to an item.
+
+ <pre class=
+ "PROGRAMLISTING">&#13; REQ_LEFT_ITEM Move left to an item.
REQ_RIGHT_ITEM Move right to an item.
REQ_UP_ITEM Move up to an item.
REQ_DOWN_ITEM Move down to an item.
@@ -4374,9 +4320,7 @@ int main()
REQ_CLEAR_PATTERN Clear the menu pattern buffer.
REQ_BACK_PATTERN Delete the previous character from the pattern buffer.
REQ_NEXT_MATCH Move to the next item matching the pattern match.
- REQ_PREV_MATCH Move to the previous item matching the pattern match.&#13;
-</pre>
-
+ REQ_PREV_MATCH Move to the previous item matching the pattern match.&#13;</pre>
<p>Don't get overwhelmed by the number of options. We will
see them slowly one after another. The options of interest
in this example are REQ_UP_ITEM and REQ_DOWN_ITEM. These
@@ -4402,8 +4346,8 @@ int main()
<ul>
<li>
<p><span class="emphasis"><i class=
- "EMPHASIS">REQ_LEFT_ITEM and
- REQ_RIGHT_ITEM</i></span></p>
+ "EMPHASIS">REQ_LEFT_ITEM and REQ_RIGHT_ITEM</i></span>
+ </p>
<p>A Menu can be displayed with multiple columns for
more than one item. This can be done by using the
@@ -4415,7 +4359,8 @@ int main()
<li>
<p><span class="emphasis"><i class=
- "EMPHASIS">REQ_UP_ITEM and REQ_DOWN_ITEM</i></span></p>
+ "EMPHASIS">REQ_UP_ITEM and REQ_DOWN_ITEM</i></span>
+ </p>
<p>These two options you have seen in the above
example. These options when given, makes the
@@ -4425,7 +4370,8 @@ int main()
<li>
<p><span class="emphasis"><i class="EMPHASIS">REQ_SCR_*
- options</i></span></p>
+ options</i></span>
+ </p>
<p>The four options REQ_SCR_ULINE, REQ_SCR_DLINE,
REQ_SCR_DPAGE, REQ_SCR_UPAGE are related to scrolling.
@@ -4439,14 +4385,16 @@ int main()
<li>
<p><span class="emphasis"><i class=
"EMPHASIS">REQ_FIRST_ITEM, REQ_LAST_ITEM, REQ_NEXT_ITEM
- and REQ_PREV_ITEM</i></span></p>
+ and REQ_PREV_ITEM</i></span>
+ </p>
<p>These requests are self explanatory.</p>
</li>
<li>
<p><span class="emphasis"><i class=
- "EMPHASIS">REQ_TOGGLE_ITEM</i></span></p>
+ "EMPHASIS">REQ_TOGGLE_ITEM</i></span>
+ </p>
<p>This request when given, toggles the present
selection. This option is to be used only in a multi
@@ -4457,7 +4405,8 @@ int main()
<li>
<p><span class="emphasis"><i class="EMPHASIS">Pattern
- Requests</i></span></p>
+ Requests</i></span>
+ </p>
<p>Every menu has an associated pattern buffer, which
is used to find the nearest match to the ascii
@@ -4476,14 +4425,16 @@ int main()
<li>
<p><span class="emphasis"><i class="EMPHASIS">Mouse
- Requests</i></span></p>
+ Requests</i></span>
+ </p>
<p>In case of KEY_MOUSE requests, according to the
mouse position an action is taken accordingly. The
action to be taken is explained in the man page as,</p>
- <pre class="PROGRAMLISTING">
-<span class="emphasis"><i class=
-"EMPHASIS"> If the second argument is the KEY_MOUSE special key, the
+
+ <pre class="PROGRAMLISTING"><span class=
+ "emphasis"><i class=
+ "EMPHASIS"> If the second argument is the KEY_MOUSE special key, the
associated mouse event is translated into one of the above
pre-defined requests. Currently only clicks in the user
window (e.g. inside the menu display area or the decora&shy;
@@ -4495,8 +4446,7 @@ int main()
generated, if you doubleclick a REQ_SCR_DPAGE is generated
and if you tripleclick a REQ_LAST_ITEM is generated. If
you click at an item inside the display area of the menu,
- the menu cursor is positioned to that item.</i></span>
-</pre>
+ the menu cursor is positioned to that item.</i></span></pre>
</li>
</ul>
@@ -4524,10 +4474,13 @@ int main()
<div class="EXAMPLE">
<a name="MMEWI" id="MMEWI"></a>
+ <p><b>Example 19. Menu Windows Usage example</b>
+ </p>
- <p><b>Example 19. Menu Windows Usage example</b></p>
- <pre class="PROGRAMLISTING">
-<span class="INLINEMEDIAOBJECT">#include &lt;menu.h&gt;
+ <pre class="PROGRAMLISTING"><span class=
+ "INLINEMEDIAOBJECT">#include &lt;stdlib.h&gt;
+#include &lt;string.h&gt;
+#include &lt;menu.h&gt;
#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
#define CTRLD 4
@@ -4563,7 +4516,7 @@ int main()
for(i = 0; i &lt; n_choices; ++i)
my_items[i] = new_item(choices[i], choices[i]);
- /* Crate menu */
+ /* Create menu */
my_menu = new_menu((ITEM **)my_items);
/* Create the window to be associated with the menu */
@@ -4631,8 +4584,7 @@ void print_in_middle(WINDOW *win, int starty, int startx, int width, char *strin
mvwprintw(win, y, x, "%s", string);
wattroff(win, color);
refresh();
-}</span>
-</pre>
+}</span></pre>
</div>
<p>This example creates a menu with a title, border, a
@@ -4660,10 +4612,13 @@ void print_in_middle(WINDOW *win, int starty, int startx, int width, char *strin
<div class="EXAMPLE">
<a name="MMESC" id="MMESC"></a>
+ <p><b>Example 20. Scrolling Menus example</b>
+ </p>
- <p><b>Example 20. Scrolling Menus example</b></p>
- <pre class="PROGRAMLISTING">
-<span class="INLINEMEDIAOBJECT">#include &lt;curses.h&gt;
+ <pre class="PROGRAMLISTING"><span class=
+ "INLINEMEDIAOBJECT">#include &lt;stdlib.h&gt;
+#include &lt;string.h&gt;
+#include &lt;curses.h&gt;
#include &lt;menu.h&gt;
#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
@@ -4707,7 +4662,7 @@ int main()
for(i = 0; i &lt; n_choices; ++i)
my_items[i] = new_item(choices[i], choices[i]);
- /* Crate menu */
+ /* Create menu */
my_menu = new_menu((ITEM **)my_items);
/* Create the window to be associated with the menu */
@@ -4734,7 +4689,7 @@ int main()
wrefresh(my_menu_win);
attron(COLOR_PAIR(2));
- mvprintw(LINES - 2, 0, "Use PageUp and PageDown to scoll down or up a page of items");
+ mvprintw(LINES - 2, 0, "Use PageUp and PageDown to scroll down or up a page of items");
mvprintw(LINES - 1, 0, "Arrow Keys to navigate (F1 to Exit)");
attroff(COLOR_PAIR(2));
refresh();
@@ -4786,8 +4741,7 @@ void print_in_middle(WINDOW *win, int starty, int startx, int width, char *strin
mvwprintw(win, y, x, "%s", string);
wattroff(win, color);
refresh();
-}</span>
-</pre>
+}</span></pre>
</div>
<p>This program is self-explanatory. In this example the
@@ -4820,10 +4774,12 @@ void print_in_middle(WINDOW *win, int starty, int startx, int width, char *strin
<div class="EXAMPLE">
<a name="MMEMUCO" id="MMEMUCO"></a>
+ <p><b>Example 21. Milt Columnar Menus Example</b>
+ </p>
- <p><b>Example 21. Milt Columnar Menus Example</b></p>
- <pre class="PROGRAMLISTING">
-<span class="INLINEMEDIAOBJECT">#include &lt;curses.h&gt;
+ <pre class="PROGRAMLISTING"><span class=
+ "INLINEMEDIAOBJECT">#include &lt;stdlib.h&gt;
+#include &lt;curses.h&gt;
#include &lt;menu.h&gt;
#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
@@ -4860,7 +4816,7 @@ int main()
for(i = 0; i &lt; n_choices; ++i)
my_items[i] = new_item(choices[i], choices[i]);
- /* Crate menu */
+ /* Create menu */
my_menu = new_menu((ITEM **)my_items);
/* Set menu option not to show the description */
@@ -4919,8 +4875,7 @@ int main()
for(i = 0; i &lt; n_choices; ++i)
free_item(my_items[i]);
endwin();
-}</span>
-</pre>
+}</span></pre>
</div>
<p>Watch the function call to set_menu_format(). It
@@ -4930,8 +4885,8 @@ int main()
couple of functions set_menu_opts(), menu_opts_on() and
menu_opts() which can be used to manipulate menu options.
The following menu options can be specified.</p>
- <pre class="PROGRAMLISTING">
- O_ONEVALUE
+
+ <pre class="PROGRAMLISTING"> O_ONEVALUE
Only one item can be selected for this menu.
O_SHOWDESC
@@ -4950,9 +4905,7 @@ int main()
O_NONCYCLIC
Don't wrap around next-item and previous-item,
- requests to the other end of the menu.
-</pre>
-
+ requests to the other end of the menu.</pre>
<p>All options are on by default. You can switch specific
attributes on or off with menu_opts_on() and
menu_opts_off() functions. You can also use set_menu_opts()
@@ -4975,10 +4928,13 @@ int main()
<div class="EXAMPLE">
<a name="MMETO" id="MMETO"></a>
+ <p><b>Example 22. Multi Valued Menus example</b>
+ </p>
- <p><b>Example 22. Multi Valued Menus example</b></p>
- <pre class="PROGRAMLISTING">
-<span class="INLINEMEDIAOBJECT">#include &lt;curses.h&gt;
+ <pre class="PROGRAMLISTING"><span class=
+ "INLINEMEDIAOBJECT">#include &lt;stdlib.h&gt;
+#include &lt;string.h&gt;
+#include &lt;curses.h&gt;
#include &lt;menu.h&gt;
#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
@@ -5061,8 +5017,7 @@ int main()
free_menu(my_menu);
endwin();
}
- </span>
-</pre>
+ </span></pre>
</div>
<p>Whew, A lot of new functions. Let's take them one after
@@ -5106,16 +5061,18 @@ int main()
This brings us to the interesting option for an item the
one and only O_SELECTABLE. We can turn it off by the
function item_opts_off() and after that that item is not
- selectable. It's like a grayed item in those fancy windows
+ selectable. It is like a grayed item in those fancy windows
menus. Let's put these concepts in practice with this
example</p>
<div class="EXAMPLE">
<a name="MMEAT" id="MMEAT"></a>
+ <p><b>Example 23. Menu Options example</b>
+ </p>
- <p><b>Example 23. Menu Options example</b></p>
- <pre class="PROGRAMLISTING">
-<span class="INLINEMEDIAOBJECT">#include &lt;menu.h&gt;
+ <pre class="PROGRAMLISTING"><span class=
+ "INLINEMEDIAOBJECT">#include &lt;stdlib.h&gt;
+#include &lt;menu.h&gt;
#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
#define CTRLD 4
@@ -5167,7 +5124,7 @@ int main()
/* Post the menu */
mvprintw(LINES - 3, 0, "Press &lt;ENTER&gt; to see the option selected");
- mvprintw(LINES - 2, 0, "Up and Down arrow keys to naviage (F1 to Exit)");
+ mvprintw(LINES - 2, 0, "Up and Down arrow keys to navigate (F1 to Exit)");
post_menu(my_menu);
refresh();
@@ -5194,8 +5151,7 @@ int main()
free_menu(my_menu);
endwin();
}
- </span>
-</pre>
+ </span></pre>
</div>
</div>
@@ -5206,18 +5162,20 @@ int main()
"MENUUSERPTR">17.9. The useful User Pointer</a></h3>
<p>We can associate a user pointer with each item in the
- menu. It works the same way as user pointer in panels. It's
- not touched by menu system. You can store any thing you
+ menu. It works the same way as user pointer in panels. It
+ is not touched by menu system. You can store any thing you
like in that. I usually use it to store the function to be
- executed when the menu option is chosen (It's selected and
+ executed when the menu option is chosen (It is selected and
may be the user pressed &lt;ENTER&gt;);</p>
<div class="EXAMPLE">
<a name="MMEUS" id="MMEUS"></a>
+ <p><b>Example 24. Menu User Pointer Usage</b>
+ </p>
- <p><b>Example 24. Menu User Pointer Usage</b></p>
- <pre class="PROGRAMLISTING">
-<span class="INLINEMEDIAOBJECT">#include &lt;curses.h&gt;
+ <pre class="PROGRAMLISTING"><span class=
+ "INLINEMEDIAOBJECT">#include &lt;stdlib.h&gt;
+#include &lt;curses.h&gt;
#include &lt;menu.h&gt;
#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
@@ -5267,7 +5225,7 @@ int main()
/* Post the menu */
mvprintw(LINES - 3, 0, "Press &lt;ENTER&gt; to see the option selected");
- mvprintw(LINES - 2, 0, "Up and Down arrow keys to naviage (F1 to Exit)");
+ mvprintw(LINES - 2, 0, "Up and Down arrow keys to navigate (F1 to Exit)");
post_menu(my_menu);
refresh();
@@ -5303,8 +5261,7 @@ void func(char *name)
{ move(20, 0);
clrtoeol();
mvprintw(20, 0, "Item selected is : %s", name);
-} </span>
-</pre>
+} </span></pre>
</div>
</div>
</div>
@@ -5318,11 +5275,11 @@ void func(char *name)
<p>Well. If you have seen those forms on web pages which take
input from users and do various kinds of things, you might be
wondering how would any one create such forms in text mode
- display. It's quite difficult to write those nifty forms in
+ display. It is quite difficult to write those nifty forms in
plain ncurses. Forms library tries to provide a basic frame
work to build and maintain forms with ease. It has lot of
features(functions) which manage validation, dynamic
- expansion of fields etc.. Let's see it in full flow.</p>
+ expansion of fields, etc. Let's see it in full flow.</p>
<p>A form is a collection of fields; each field can be either
a label(static text) or a data-entry location. The forms also
@@ -5339,13 +5296,13 @@ void func(char *name)
the fields related to the form are created with
new_field(). You can set options for the fields, so that
they can be displayed with some fancy attributes, validated
- before the field looses focus etc.. Then the fields are
+ before the field looses focus, etc. Then the fields are
attached to form. After this, the form can be posted to
display and is ready to receive inputs. On the similar
lines to menu_driver(), the form is manipulated with
form_driver(). We can send requests to form_driver to move
focus to a certain field, move cursor to end of the field
- etc.. After the user enters values in the fields and
+ etc. After the user enters values in the fields and
validation done, form can be unposted and memory allocated
can be freed.</p>
@@ -5406,28 +5363,26 @@ void func(char *name)
<hr>
<h3 class="SECT2"><a name="COMPILEFORMS" id=
- "COMPILEFORMS">18.2. Compiling With the Forms
- Library</a></h3>
+ "COMPILEFORMS">18.2. Compiling With the Forms Library</a></h3>
<p>To use forms library functions, you have to include
form.h and to link the program with forms library the flag
-lform should be added along with -lncurses in that
order.</p>
- <pre class="PROGRAMLISTING">
- #include &lt;form.h&gt;
+
+ <pre class="PROGRAMLISTING"> #include &lt;form.h&gt;
.
.
.
- compile and link: gcc &lt;program file&gt; -lform -lncurses
-</pre>
-
+ compile and link: gcc &lt;program file&gt; -lform -lncurses</pre>
<div class="EXAMPLE">
<a name="FFOSI" id="FFOSI"></a>
+ <p><b>Example 25. Forms Basics</b>
+ </p>
- <p><b>Example 25. Forms Basics</b></p>
- <pre class="PROGRAMLISTING">
-<span class="INLINEMEDIAOBJECT">#include &lt;form.h&gt;
+ <pre class="PROGRAMLISTING"><span class=
+ "INLINEMEDIAOBJECT">#include &lt;form.h&gt;
int main()
{ FIELD *field[3];
@@ -5492,8 +5447,7 @@ int main()
endwin();
return 0;
-}</span>
-</pre>
+}</span></pre>
</div>
<p>Above example is pretty straight forward. It creates two
@@ -5545,13 +5499,13 @@ int main()
height, width, starty, startx, number of offscreen rows,
and number of additional buffers into the parameters
given to it. It is a sort of inverse of new_field().</p>
- <pre class="PROGRAMLISTING">
-int field_info( FIELD *field, /* field from which to fetch */
+
+ <pre class=
+ "PROGRAMLISTING">int field_info( FIELD *field, /* field from which to fetch */
int *height, *int width, /* field size */
int *top, int *left, /* upper left corner */
int *offscreen, /* number of offscreen rows */
- int *nbuf); /* number of working buffers */
-</pre>
+ int *nbuf); /* number of working buffers */</pre>
</div>
<div class="SECT3">
@@ -5562,11 +5516,10 @@ int field_info( FIELD *field, /* field from which to fetch */
<p>The location of the field can be moved to a different
position with move_field().</p>
- <pre class="PROGRAMLISTING">
-int move_field( FIELD *field, /* field to alter */
- int top, int left); /* new upper-left corner */
-</pre>
+ <pre class=
+ "PROGRAMLISTING">int move_field( FIELD *field, /* field to alter */
+ int top, int left); /* new upper-left corner */</pre>
<p>As usual, the changed position can be queried with
field_infor().</p>
</div>
@@ -5579,12 +5532,11 @@ int move_field( FIELD *field, /* field to alter */
<p>The justification to be done for the field can be
fixed using the function set_field_just().</p>
- <pre class="PROGRAMLISTING">
- int set_field_just(FIELD *field, /* field to alter */
- int justmode); /* mode to set */
- int field_just(FIELD *field); /* fetch justify mode of field */
-</pre>
+ <pre class=
+ "PROGRAMLISTING"> int set_field_just(FIELD *field, /* field to alter */
+ int justmode); /* mode to set */
+ int field_just(FIELD *field); /* fetch justify mode of field */</pre>
<p>The justification mode valued accepted and returned by
these functions are NO_JUSTIFICATION, JUSTIFY_RIGHT,
JUSTIFY_LEFT, or JUSTIFY_CENTER.</p>
@@ -5594,8 +5546,7 @@ int move_field( FIELD *field, /* field to alter */
<hr>
<h4 class="SECT3"><a name="FIELDDISPATTRIB" id=
- "FIELDDISPATTRIB">18.3.4. Field Display
- Attributes</a></h4>
+ "FIELDDISPATTRIB">18.3.4. Field Display Attributes</a></h4>
<p>As you have seen, in the above example, display
attribute for the fields can be set with set_field_fore()
@@ -5608,8 +5559,9 @@ int move_field( FIELD *field, /* field to alter */
be used to query the present foreground, background
attributes and pad character for the field. The following
list gives the usage of functions.</p>
- <pre class="PROGRAMLISTING">
-&#13;int set_field_fore(FIELD *field, /* field to alter */
+
+ <pre class=
+ "PROGRAMLISTING">&#13;int set_field_fore(FIELD *field, /* field to alter */
chtype attr); /* attribute to set */
chtype field_fore(FIELD *field); /* field to query */
@@ -5625,9 +5577,7 @@ int set_field_pad(FIELD *field, /* field to alter */
int pad); /* pad character to set */
chtype field_pad(FIELD *field); /* field to query */
- /* returns present pad character */&#13;
-</pre>
-
+ /* returns present pad character */&#13;</pre>
<p>Though above functions seem quite simple, using colors
with set_field_fore() may be frustrating in the
beginning. Let me first explain about foreground and
@@ -5643,10 +5593,11 @@ chtype field_pad(FIELD *field); /* field to query */
<div class="EXAMPLE">
<a name="FFOAT" id="FFOAT"></a>
+ <p><b>Example 26. Form Attributes example</b>
+ </p>
- <p><b>Example 26. Form Attributes example</b></p>
- <pre class="PROGRAMLISTING">
-<span class="INLINEMEDIAOBJECT">#include &lt;form.h&gt;
+ <pre class="PROGRAMLISTING"><span class=
+ "INLINEMEDIAOBJECT">#include &lt;form.h&gt;
int main()
{ FIELD *field[3];
@@ -5720,8 +5671,7 @@ int main()
endwin();
return 0;
-}</span>
-</pre>
+}</span></pre>
</div>
<p>Play with the color pairs and try to understand the
@@ -5741,8 +5691,9 @@ int main()
you can set to control various aspects of forms
processing. You can manipulate them with these
functions:</p>
- <pre class="PROGRAMLISTING">
-int set_field_opts(FIELD *field, /* field to alter */
+
+ <pre class=
+ "PROGRAMLISTING">int set_field_opts(FIELD *field, /* field to alter */
int attr); /* attribute to set */
int field_opts_on(FIELD *field, /* field to alter */
@@ -5751,9 +5702,7 @@ int field_opts_on(FIELD *field, /* field to alter */
int field_opts_off(FIELD *field, /* field to alter */
int attr); /* attributes to turn off */
-int field_opts(FIELD *field); /* field to query */
-</pre>
-
+int field_opts(FIELD *field); /* field to query */ </pre>
<p>The function set_field_opts() can be used to directly
set attributes of a field or you can choose to switch a
few attributes on and off with field_opts_on() and
@@ -5881,10 +5830,11 @@ int field_opts(FIELD *field); /* field to query */
<div class="EXAMPLE">
<a name="FFOOP" id="FFOOP"></a>
+ <p><b>Example 27. Field Options Usage example</b>
+ </p>
- <p><b>Example 27. Field Options Usage example</b></p>
- <pre class="PROGRAMLISTING">
-<span class="INLINEMEDIAOBJECT">#include &lt;form.h&gt;
+ <pre class="PROGRAMLISTING"><span class=
+ "INLINEMEDIAOBJECT">#include &lt;form.h&gt;
#define STARTX 15
#define STARTY 4
@@ -5959,8 +5909,7 @@ int main()
endwin();
return 0;
-}</span>
-</pre>
+}</span></pre>
</div>
<p>This example, though useless, shows the usage of
@@ -5982,14 +5931,13 @@ int main()
becomes TRUE. So a field's status can be queried to find
out whether it has been modified or not. The following
functions can assist in those operations.</p>
- <pre class="PROGRAMLISTING">
-int set_field_status(FIELD *field, /* field to alter */
- int status); /* status to set */
-int field_status(FIELD *field); /* fetch status of field */
-</pre>
+ <pre class=
+ "PROGRAMLISTING">int set_field_status(FIELD *field, /* field to alter */
+ int status); /* status to set */
- <p>It's better to check the field's status only after
+int field_status(FIELD *field); /* fetch status of field */</pre>
+ <p>It is better to check the field's status only after
after leaving the field, as data buffer might not have
been updated yet as the validation is still due. To
guarantee that right status is returned, call
@@ -6011,21 +5959,20 @@ int field_status(FIELD *field); /* fetch status of field */
by forms library and can be used for any purpose by the
user. The following functions set and fetch user
pointer.</p>
- <pre class="PROGRAMLISTING">
-int set_field_userptr(FIELD *field,
+
+ <pre class=
+ "PROGRAMLISTING">int set_field_userptr(FIELD *field,
char *userptr); /* the user pointer you wish to associate */
/* with the field */
-char *field_userptr(FIELD *field); /* fetch user pointer of the field */
-</pre>
+char *field_userptr(FIELD *field); /* fetch user pointer of the field */</pre>
</div>
<div class="SECT3">
<hr>
<h4 class="SECT3"><a name="VARIABLESIZEFIELDS" id=
- "VARIABLESIZEFIELDS">18.3.8. Variable-Sized
- Fields</a></h4>
+ "VARIABLESIZEFIELDS">18.3.8. Variable-Sized Fields</a></h4>
<p>If you want a dynamically changing field with variable
width, this is the feature you want to put to full use.
@@ -6038,30 +5985,27 @@ char *field_userptr(FIELD *field); /* fetch user pointer of the field */
<p>To make a field dynamically growable, the option
O_STATIC should be turned off. This can be done with
a</p>
- <pre class="PROGRAMLISTING">
- field_opts_off(field_pointer, O_STATIC);
-</pre>
- <p>But it's usually not advisable to allow a field to
+ <pre class=
+ "PROGRAMLISTING"> field_opts_off(field_pointer, O_STATIC);</pre>
+ <p>But it is usually not advisable to allow a field to
grow infinitely. You can set a maximum limit to the
growth of the field with</p>
- <pre class="PROGRAMLISTING">
-int set_max_field(FIELD *field, /* Field on which to operate */
- int max_growth); /* maximum growth allowed for the field */
-</pre>
+ <pre class=
+ "PROGRAMLISTING">int set_max_field(FIELD *field, /* Field on which to operate */
+ int max_growth); /* maximum growth allowed for the field */</pre>
<p>The field info for a dynamically growable field can be
retrieved by</p>
- <pre class="PROGRAMLISTING">
-int dynamic_field_info( FIELD *field, /* Field on which to operate */
+
+ <pre class=
+ "PROGRAMLISTING">int dynamic_field_info( FIELD *field, /* Field on which to operate */
int *prows, /* number of rows will be filled in this */
int *pcols, /* number of columns will be filled in this*/
int *pmax) /* maximum allowable growth will be filled */
- /* in this */
-</pre>Though field_info work as usual, it is advisable to use this
-function to get the proper attributes of a dynamically growable
-field.
-
+ /* in this */</pre>Though field_info
+work as usual, it is advisable to use this function to get the
+proper attributes of a dynamically growable field.
<p>Recall the library routine new_field; a new field
created with height set to one will be defined to be a
one line field. A new field created with height greater
@@ -6181,10 +6125,12 @@ field.
<div class="EXAMPLE">
<a name="FFOWI" id="FFOWI"></a>
+ <p><b>Example 28. Form Windows Example</b>
+ </p>
- <p><b>Example 28. Form Windows Example</b></p>
- <pre class="PROGRAMLISTING">
-<span class="INLINEMEDIAOBJECT">#include &lt;form.h&gt;
+ <pre class="PROGRAMLISTING"><span class=
+ "INLINEMEDIAOBJECT">#include &lt;string.h&gt;
+#include &lt;form.h&gt;
void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color);
@@ -6295,8 +6241,7 @@ void print_in_middle(WINDOW *win, int starty, int startx, int width, char *strin
mvwprintw(win, y, x, "%s", string);
wattroff(win, color);
refresh();
-}</span>
-</pre>
+}</span></pre>
</div>
</div>
@@ -6316,15 +6261,15 @@ void print_in_middle(WINDOW *win, int starty, int startx, int width, char *strin
<p>Validation can be attached to a field with the following
function.</p>
- <pre class="PROGRAMLISTING">
-int set_field_type(FIELD *field, /* field to alter */
+
+ <pre class=
+ "PROGRAMLISTING">int set_field_type(FIELD *field, /* field to alter */
FIELDTYPE *ftype, /* type to associate */
- ...); /* additional arguments*/
-</pre>Once set, the validation type for a field can be queried with
- <pre class="PROGRAMLISTING">
-FIELDTYPE *field_type(FIELD *field); /* field to query */
-</pre>
+ ...); /* additional arguments*/</pre>Once
+set, the validation type for a field can be queried with
+ <pre class=
+ "PROGRAMLISTING">FIELDTYPE *field_type(FIELD *field); /* field to query */</pre>
<p>The form driver validates the data in a field only when
data is entered by the end-user. Validation does not occur
when</p>
@@ -6342,61 +6287,58 @@ FIELDTYPE *field_type(FIELD *field); /* field to query */
</ul>
<p>The following are the pre-defined validation types. You
- can also specify custom validation, though it's a bit
+ can also specify custom validation, though it is a bit
tricky and cumbersome.</p>
- <h1 class="BRIDGEHEAD"><a name="AEN1069" id=
- "AEN1069"></a>TYPE_ALPHA</h1>
+ <h1 class="BRIDGEHEAD"><a name="AEN1074" id=
+ "AEN1074"></a>TYPE_ALPHA</h1>
<p>This field type accepts alphabetic data; no blanks, no
digits, no special characters (this is checked at
character-entry time). It is set up with:</p>
- <pre class="PROGRAMLISTING">
-int set_field_type(FIELD *field, /* field to alter */
- TYPE_ALPHA, /* type to associate */
- int width); /* minimum width of field */
-</pre>
+ <pre class=
+ "PROGRAMLISTING">int set_field_type(FIELD *field, /* field to alter */
+ TYPE_ALPHA, /* type to associate */
+ int width); /* minimum width of field */</pre>
<p>The width argument sets a minimum width of data. The
user has to enter at-least width number of characters
before he can leave the field. Typically you'll want to set
- this to the field width; if it's greater than the field
+ this to the field width; if it is greater than the field
width, the validation check will always fail. A minimum
width of zero makes field completion optional.</p>
- <h1 class="BRIDGEHEAD"><a name="AEN1073" id=
- "AEN1073"></a>TYPE_ALNUM</h1>
+ <h1 class="BRIDGEHEAD"><a name="AEN1078" id=
+ "AEN1078"></a>TYPE_ALNUM</h1>
<p>This field type accepts alphabetic data and digits; no
blanks, no special characters (this is checked at
character-entry time). It is set up with:</p>
- <pre class="PROGRAMLISTING">
-int set_field_type(FIELD *field, /* field to alter */
- TYPE_ALNUM, /* type to associate */
- int width); /* minimum width of field */
-</pre>
+ <pre class=
+ "PROGRAMLISTING">int set_field_type(FIELD *field, /* field to alter */
+ TYPE_ALNUM, /* type to associate */
+ int width); /* minimum width of field */</pre>
<p>The width argument sets a minimum width of data. As with
TYPE_ALPHA, typically you'll want to set this to the field
- width; if it's greater than the field width, the validation
- check will always fail. A minimum width of zero makes field
- completion optional.</p>
+ width; if it is greater than the field width, the
+ validation check will always fail. A minimum width of zero
+ makes field completion optional.</p>
- <h1 class="BRIDGEHEAD"><a name="AEN1077" id=
- "AEN1077"></a>TYPE_ENUM</h1>
+ <h1 class="BRIDGEHEAD"><a name="AEN1082" id=
+ "AEN1082"></a>TYPE_ENUM</h1>
<p>This type allows you to restrict a field's values to be
among a specified set of string values (for example, the
two-letter postal codes for U.S. states). It is set up
with:</p>
- <pre class="PROGRAMLISTING">
-int set_field_type(FIELD *field, /* field to alter */
+
+ <pre class=
+ "PROGRAMLISTING">int set_field_type(FIELD *field, /* field to alter */
TYPE_ENUM, /* type to associate */
char **valuelist; /* list of possible values */
int checkcase; /* case-sensitive? */
- int checkunique); /* must specify uniquely? */
-</pre>
-
+ int checkunique); /* must specify uniquely? */</pre>
<p>The valuelist parameter must point at a NULL-terminated
list of valid strings. The checkcase argument, if true,
makes comparison with the string case-sensitive.</p>
@@ -6416,18 +6358,17 @@ int set_field_type(FIELD *field, /* field to alter */
<p>The REQ_NEXT_CHOICE and REQ_PREV_CHOICE input requests
can be particularly useful with these fields.</p>
- <h1 class="BRIDGEHEAD"><a name="AEN1084" id=
- "AEN1084"></a>TYPE_INTEGER</h1>
+ <h1 class="BRIDGEHEAD"><a name="AEN1089" id=
+ "AEN1089"></a>TYPE_INTEGER</h1>
<p>This field type accepts an integer. It is set up as
follows:</p>
- <pre class="PROGRAMLISTING">
-int set_field_type(FIELD *field, /* field to alter */
+
+ <pre class=
+ "PROGRAMLISTING">int set_field_type(FIELD *field, /* field to alter */
TYPE_INTEGER, /* type to associate */
int padding, /* # places to zero-pad to */
- int vmin, int vmax); /* valid range */
-</pre>
-
+ int vmin, int vmax); /* valid range */</pre>
<p>Valid characters consist of an optional leading minus
and digits. The range check is performed on exit. If the
range maximum is less than or equal to the minimum, the
@@ -6440,18 +6381,17 @@ int set_field_type(FIELD *field, /* field to alter */
<p>A TYPE_INTEGER value buffer can conveniently be
interpreted with the C library function atoi(3).</p>
- <h1 class="BRIDGEHEAD"><a name="AEN1090" id=
- "AEN1090"></a>TYPE_NUMERIC</h1>
+ <h1 class="BRIDGEHEAD"><a name="AEN1095" id=
+ "AEN1095"></a>TYPE_NUMERIC</h1>
<p>This field type accepts a decimal number. It is set up
as follows:</p>
- <pre class="PROGRAMLISTING">
-int set_field_type(FIELD *field, /* field to alter */
+
+ <pre class=
+ "PROGRAMLISTING">int set_field_type(FIELD *field, /* field to alter */
TYPE_NUMERIC, /* type to associate */
int padding, /* # places of precision */
- int vmin, int vmax); /* valid range */
-</pre>
-
+ int vmin, int vmax); /* valid range */</pre>
<p>Valid characters consist of an optional leading minus
and digits. possibly including a decimal point. The range
check is performed on exit. If the range maximum is less
@@ -6464,17 +6404,16 @@ int set_field_type(FIELD *field, /* field to alter */
<p>A TYPE_NUMERIC value buffer can conveniently be
interpreted with the C library function atof(3).</p>
- <h1 class="BRIDGEHEAD"><a name="AEN1096" id=
- "AEN1096"></a>TYPE_REGEXP</h1>
+ <h1 class="BRIDGEHEAD"><a name="AEN1101" id=
+ "AEN1101"></a>TYPE_REGEXP</h1>
<p>This field type accepts data matching a regular
expression. It is set up as follows:</p>
- <pre class="PROGRAMLISTING">
-int set_field_type(FIELD *field, /* field to alter */
- TYPE_REGEXP, /* type to associate */
- char *regexp); /* expression to match */
-</pre>
+ <pre class=
+ "PROGRAMLISTING">int set_field_type(FIELD *field, /* field to alter */
+ TYPE_REGEXP, /* type to associate */
+ char *regexp); /* expression to match */</pre>
<p>The syntax for regular expressions is that of
regcomp(3). The check for regular-expression match is
performed on exit.</p>
@@ -6490,14 +6429,13 @@ int set_field_type(FIELD *field, /* field to alter */
<p>As in the menu system, form_driver() plays a very
important role in forms system. All types of requests to
forms system should be funneled through form_driver().</p>
- <pre class="PROGRAMLISTING">
-int form_driver(FORM *form, /* form on which to operate */
- int request) /* form request code */
-</pre>
+ <pre class=
+ "PROGRAMLISTING">int form_driver(FORM *form, /* form on which to operate */
+ int request) /* form request code */</pre>
<p>As you have seen some of the examples above, you have to
be in a loop looking for user input and then decide whether
- it's a field data or a form request. The form requests are
+ it is a field data or a form request. The form requests are
then passed to form_driver() to do the work.</p>
<p>The requests roughly can be divided into following
@@ -6516,11 +6454,10 @@ int form_driver(FORM *form, /* form on which to operate */
lot of fields and logical sections, then you can divide
the form into pages. The function set_new_page() to set a
new page at the field specified.</p>
- <pre class="PROGRAMLISTING">
-int set_new_page(FIELD *field,/* Field at which page break to be set or unset */
- bool new_page_flag); /* should be TRUE to put a break */
-</pre>
+ <pre class=
+ "PROGRAMLISTING">int set_new_page(FIELD *field,/* Field at which page break to be set or unset */
+ bool new_page_flag); /* should be TRUE to put a break */</pre>
<p>The following requests allow you to move to different
pages</p>
@@ -7070,13 +7007,14 @@ int set_new_page(FIELD *field,/* Field at which page break to be set or unset */
<p><span class="emphasis"><i class="EMPHASIS">CDK stands
for 'Curses Development Kit' and it currently contains 21
ready to use widgets which facilitate the speedy
- development of full screen curses programs.</i></span></p>
+ development of full screen curses programs.</i></span>
+ </p>
<p>The kit provides some useful widgets, which can be used
- in your programs directly. It's pretty well written and the
- documentation is very good. The examples in the examples
- directory can be a good place to start for beginners. The
- CDK can be downloaded from <a href=
+ in your programs directly. It is pretty well written and
+ the documentation is very good. The examples in the
+ examples directory can be a good place to start for
+ beginners. The CDK can be downloaded from <a href=
"https://invisible-island.net/cdk/" target=
"_top">https://invisible-island.net/cdk/</a> . Follow the
instructions in README file to install it.</p>
@@ -7089,8 +7027,9 @@ int set_new_page(FIELD *field,/* Field at which page break to be set or unset */
<p>The following is the list of widgets provided with cdk
and their description.</p>
- <pre class="PROGRAMLISTING">
-Widget Type Quick Description
+
+ <pre class=
+ "PROGRAMLISTING">Widget Type Quick Description
===========================================================================
Alphalist Allows a user to select from a list of words, with
the ability to narrow the search list by typing in a
@@ -7133,9 +7072,7 @@ Template Creates a entry field with character sensitive
dates and phone numbers.
Viewer This is a file/information viewer. Very useful
when you need to display loads of information.
-===========================================================================
-</pre>
-
+===========================================================================</pre>
<p>A few of the widgets are modified by Thomas Dickey in
recent versions.</p>
</div>
@@ -7153,15 +7090,14 @@ Viewer This is a file/information viewer. Very useful
which are passed to CDK functions. For Example</p>
<p>If the string</p>
- <pre class="PROGRAMLISTING">
-"&lt;/B/1&gt;This line should have a yellow foreground and a blue
-background.&lt;!1&gt;"
-</pre>
+ <pre class=
+ "PROGRAMLISTING">"&lt;/B/1&gt;This line should have a yellow foreground and a blue
+background.&lt;!1&gt;"</pre>
<p>given as a parameter to newCDKLabel(), it prints the
line with yellow foreground and blue background. There
are other tags available for justifying string, embedding
- special drawing characters etc.. Please refer to the man
+ special drawing characters, etc. Please refer to the man
page cdk_display(3X) for details. The man page explains
the usage with nice examples.</p>
</div>
@@ -7198,20 +7134,22 @@ background.&lt;!1&gt;"
professional-looking dialog boxes from within shell
scripts. This article presents a tutorial introduction to
the dialog utility, and shows examples of how and where it
- can be used</i></span></p>
+ can be used</i></span>
+ </p>
<p>As he explains, dialog is a real gem in making
professional-looking dialog boxes with ease. It creates a
- variety of dialog boxes, menus, check lists etc.. It is
+ variety of dialog boxes, menus, check lists, etc. It is
usually installed by default. If not, you can download it
from <a href="https://invisible-island.net/dialog/" target=
"_top">Thomas Dickey</a>'s site.</p>
<p>The above-mentioned article gives a very good overview
- of its uses and capabilites. The man page has more details.
- It can be used in variety of situations. One good example
- is building of linux kernel in text mode. Linux kernel uses
- a modified version of dialog tailored for its needs.</p>
+ of its uses and capabilities. The man page has more
+ details. It can be used in variety of situations. One good
+ example is building of linux kernel in text mode. Linux
+ kernel uses a modified version of dialog tailored for its
+ needs.</p>
<p>dialog was initially designed to be used with shell
scripts. If you want to use its functionality in a c
@@ -7278,27 +7216,26 @@ background.&lt;!1&gt;"
<p>Game of life is a wonder of math. In <a href=
"http://www.math.com/students/wonders/life/life.html"
target="_top">Paul Callahan</a>'s words</p>
- <pre class="PROGRAMLISTING">
-<span class="emphasis"><i class=
-"EMPHASIS">The Game of Life (or simply Life) is not a game in the conventional sense. There
+
+ <pre class="PROGRAMLISTING"><span class="emphasis"><i class=
+ "EMPHASIS">The Game of Life (or simply Life) is not a game in the conventional sense. There
are no players, and no winning or losing. Once the "pieces" are placed in the
starting position, the rules determine everything that happens later.
Nevertheless, Life is full of surprises! In most cases, it is impossible to look
at a starting position (or pattern) and see what will happen in the future. The
-only way to find out is to follow the rules of the game.</i></span>
-</pre>
-
+only way to find out is to follow the rules of the game.</i></span></pre>
<p>This program starts with a simple inverted U pattern and
shows how wonderful life works. There is a lot of room for
improvement in the program. You can let the user enter
pattern of his choice or even take input from a file. You
can also change rules and play with a lot of variations.
- Search on <a href="http://www.google.com" target=
+ Search on <a href="https://www.google.com" target=
"_top">google</a> for interesting information on game of
life.</p>
<p><span class="emphasis"><i class="EMPHASIS">File Path:
- JustForFun/life.c</i></span></p>
+ JustForFun/life.c</i></span>
+ </p>
</div>
<div class="SECT2">
@@ -7310,14 +7247,15 @@ only way to find out is to follow the rules of the game.</i></span>
<p>Magic Square, another wonder of math, is very simple to
understand but very difficult to make. In a magic square
sum of the numbers in each row, each column is equal. Even
- diagnol sum can be equal. There are many variations which
+ diagonal sum can be equal. There are many variations which
have special properties.</p>
<p>This program creates a simple magic square of odd
order.</p>
<p><span class="emphasis"><i class="EMPHASIS">File Path:
- JustForFun/magic.c</i></span></p>
+ JustForFun/magic.c</i></span>
+ </p>
</div>
<div class="SECT2">
@@ -7332,7 +7270,8 @@ only way to find out is to follow the rules of the game.</i></span>
larger disk over a small disk at any time.</p>
<p><span class="emphasis"><i class="EMPHASIS">File Path:
- JustForFun/hanoi.c</i></span></p>
+ JustForFun/hanoi.c</i></span>
+ </p>
</div>
<div class="SECT2">
@@ -7349,7 +7288,8 @@ only way to find out is to follow the rules of the game.</i></span>
technique.</p>
<p><span class="emphasis"><i class="EMPHASIS">File Path:
- JustForFun/queens.c</i></span></p>
+ JustForFun/queens.c</i></span>
+ </p>
</div>
<div class="SECT2">
@@ -7361,7 +7301,8 @@ only way to find out is to follow the rules of the game.</i></span>
<p>A fun game, if you have time to kill.</p>
<p><span class="emphasis"><i class="EMPHASIS">File Path:
- JustForFun/shuffle.c</i></span></p>
+ JustForFun/shuffle.c</i></span>
+ </p>
</div>
<div class="SECT2">
@@ -7376,15 +7317,15 @@ only way to find out is to follow the rules of the game.</i></span>
helpful.</p>
<p><span class="emphasis"><i class="EMPHASIS">File Path:
- JustForFun/tt.c</i></span></p>
+ JustForFun/tt.c</i></span>
+ </p>
</div>
</div>
<div class="SECT1">
<hr>
- <h2 class="SECT1"><a name="REF" id="REF">21.
- References</a></h2>
+ <h2 class="SECT1"><a name="REF" id="REF">21. References</a></h2>
<ul>
<li>
diff --git a/doc/html/ada/files.htm b/doc/html/ada/files.htm
index 49441be96997..d48af038557f 100644
--- a/doc/html/ada/files.htm
+++ b/doc/html/ada/files.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE></TITLE>
+<html>
+<head>
+<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,8 +11,8 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<H2 ALIGN=CENTER>Files</H2>
-<A HREF="files/T.htm">[T]</A>
-</BODY></HTML>
+</head>
+<body>
+<h2 align="center">Files</h2>
+<a href="files/T.htm">[T]</a>
+</body></html>
diff --git a/doc/html/ada/files/T.htm b/doc/html/ada/files/T.htm
index b54027bb1bea..973050677bda 100644
--- a/doc/html/ada/files/T.htm
+++ b/doc/html/ada/files/T.htm
@@ -1,83 +1,83 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<HTML>
-<HEAD>
-<TITLE>T</TITLE>
+<html>
+<head>
+<title>T</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</HEAD>
-<BODY>
-<H2>Files - T</H2>
-<A HREF="../files.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses-aux__adb.htm" TARGET="main">terminal_interface-curses-aux.adb</A>
-<LI><A HREF="../terminal_interface-curses-aux__ads.htm" TARGET="main">terminal_interface-curses-aux.ads</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-alpha__adb.htm" TARGET="main">terminal_interface-curses-forms-field_types-alpha.adb</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-alpha__ads.htm" TARGET="main">terminal_interface-curses-forms-field_types-alpha.ads</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-alphanumeric__adb.htm" TARGET="main">terminal_interface-curses-forms-field_types-alphanumeric.adb</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-alphanumeric__ads.htm" TARGET="main">terminal_interface-curses-forms-field_types-alphanumeric.ads</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm" TARGET="main">terminal_interface-curses-forms-field_types-enumeration-ada.adb</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm" TARGET="main">terminal_interface-curses-forms-field_types-enumeration-ada.ads</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__adb.htm" TARGET="main">terminal_interface-curses-forms-field_types-enumeration.adb</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__ads.htm" TARGET="main">terminal_interface-curses-forms-field_types-enumeration.ads</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-intfield__adb.htm" TARGET="main">terminal_interface-curses-forms-field_types-intfield.adb</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-intfield__ads.htm" TARGET="main">terminal_interface-curses-forms-field_types-intfield.ads</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-ipv4_address__adb.htm" TARGET="main">terminal_interface-curses-forms-field_types-ipv4_address.adb</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-ipv4_address__ads.htm" TARGET="main">terminal_interface-curses-forms-field_types-ipv4_address.ads</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-numeric__adb.htm" TARGET="main">terminal_interface-curses-forms-field_types-numeric.adb</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-numeric__ads.htm" TARGET="main">terminal_interface-curses-forms-field_types-numeric.ads</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-regexp__adb.htm" TARGET="main">terminal_interface-curses-forms-field_types-regexp.adb</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-regexp__ads.htm" TARGET="main">terminal_interface-curses-forms-field_types-regexp.ads</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__adb.htm" TARGET="main">terminal_interface-curses-forms-field_types-user-choice.adb</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__ads.htm" TARGET="main">terminal_interface-curses-forms-field_types-user-choice.ads</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user__adb.htm" TARGET="main">terminal_interface-curses-forms-field_types-user.adb</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user__ads.htm" TARGET="main">terminal_interface-curses-forms-field_types-user.ads</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm" TARGET="main">terminal_interface-curses-forms-field_types.adb</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm" TARGET="main">terminal_interface-curses-forms-field_types.ads</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_user_data__adb.htm" TARGET="main">terminal_interface-curses-forms-field_user_data.adb</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_user_data__ads.htm" TARGET="main">terminal_interface-curses-forms-field_user_data.ads</A>
-<LI><A HREF="../terminal_interface-curses-forms-form_user_data__adb.htm" TARGET="main">terminal_interface-curses-forms-form_user_data.adb</A>
-<LI><A HREF="../terminal_interface-curses-forms-form_user_data__ads.htm" TARGET="main">terminal_interface-curses-forms-form_user_data.ads</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm" TARGET="main">terminal_interface-curses-forms.adb</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm" TARGET="main">terminal_interface-curses-forms.ads</A>
-<LI><A HREF="../terminal_interface-curses-menus-item_user_data__adb.htm" TARGET="main">terminal_interface-curses-menus-item_user_data.adb</A>
-<LI><A HREF="../terminal_interface-curses-menus-item_user_data__ads.htm" TARGET="main">terminal_interface-curses-menus-item_user_data.ads</A>
-<LI><A HREF="../terminal_interface-curses-menus-menu_user_data__adb.htm" TARGET="main">terminal_interface-curses-menus-menu_user_data.adb</A>
-<LI><A HREF="../terminal_interface-curses-menus-menu_user_data__ads.htm" TARGET="main">terminal_interface-curses-menus-menu_user_data.ads</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm" TARGET="main">terminal_interface-curses-menus.adb</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm" TARGET="main">terminal_interface-curses-menus.ads</A>
-<LI><A HREF="../terminal_interface-curses-mouse__adb.htm" TARGET="main">terminal_interface-curses-mouse.adb</A>
-<LI><A HREF="../terminal_interface-curses-mouse__ads.htm" TARGET="main">terminal_interface-curses-mouse.ads</A>
-<LI><A HREF="../terminal_interface-curses-panels-user_data__adb.htm" TARGET="main">terminal_interface-curses-panels-user_data.adb</A>
-<LI><A HREF="../terminal_interface-curses-panels-user_data__ads.htm" TARGET="main">terminal_interface-curses-panels-user_data.ads</A>
-<LI><A HREF="../terminal_interface-curses-panels__adb.htm" TARGET="main">terminal_interface-curses-panels.adb</A>
-<LI><A HREF="../terminal_interface-curses-panels__ads.htm" TARGET="main">terminal_interface-curses-panels.ads</A>
-<LI><A HREF="../terminal_interface-curses-putwin__adb.htm" TARGET="main">terminal_interface-curses-putwin.adb</A>
-<LI><A HREF="../terminal_interface-curses-putwin__ads.htm" TARGET="main">terminal_interface-curses-putwin.ads</A>
-<LI><A HREF="../terminal_interface-curses-termcap__adb.htm" TARGET="main">terminal_interface-curses-termcap.adb</A>
-<LI><A HREF="../terminal_interface-curses-termcap__ads.htm" TARGET="main">terminal_interface-curses-termcap.ads</A>
-<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm" TARGET="main">terminal_interface-curses-terminfo.adb</A>
-<LI><A HREF="../terminal_interface-curses-terminfo__ads.htm" TARGET="main">terminal_interface-curses-terminfo.ads</A>
-<LI><A HREF="../terminal_interface-curses-text_io-aux__adb.htm" TARGET="main">terminal_interface-curses-text_io-aux.adb</A>
-<LI><A HREF="../terminal_interface-curses-text_io-aux__ads.htm" TARGET="main">terminal_interface-curses-text_io-aux.ads</A>
-<LI><A HREF="../terminal_interface-curses-text_io-complex_io__adb.htm" TARGET="main">terminal_interface-curses-text_io-complex_io.adb</A>
-<LI><A HREF="../terminal_interface-curses-text_io-complex_io__ads.htm" TARGET="main">terminal_interface-curses-text_io-complex_io.ads</A>
-<LI><A HREF="../terminal_interface-curses-text_io-decimal_io__adb.htm" TARGET="main">terminal_interface-curses-text_io-decimal_io.adb</A>
-<LI><A HREF="../terminal_interface-curses-text_io-decimal_io__ads.htm" TARGET="main">terminal_interface-curses-text_io-decimal_io.ads</A>
-<LI><A HREF="../terminal_interface-curses-text_io-enumeration_io__adb.htm" TARGET="main">terminal_interface-curses-text_io-enumeration_io.adb</A>
-<LI><A HREF="../terminal_interface-curses-text_io-enumeration_io__ads.htm" TARGET="main">terminal_interface-curses-text_io-enumeration_io.ads</A>
-<LI><A HREF="../terminal_interface-curses-text_io-fixed_io__adb.htm" TARGET="main">terminal_interface-curses-text_io-fixed_io.adb</A>
-<LI><A HREF="../terminal_interface-curses-text_io-fixed_io__ads.htm" TARGET="main">terminal_interface-curses-text_io-fixed_io.ads</A>
-<LI><A HREF="../terminal_interface-curses-text_io-float_io__adb.htm" TARGET="main">terminal_interface-curses-text_io-float_io.adb</A>
-<LI><A HREF="../terminal_interface-curses-text_io-float_io__ads.htm" TARGET="main">terminal_interface-curses-text_io-float_io.ads</A>
-<LI><A HREF="../terminal_interface-curses-text_io-integer_io__adb.htm" TARGET="main">terminal_interface-curses-text_io-integer_io.adb</A>
-<LI><A HREF="../terminal_interface-curses-text_io-integer_io__ads.htm" TARGET="main">terminal_interface-curses-text_io-integer_io.ads</A>
-<LI><A HREF="../terminal_interface-curses-text_io-modular_io__adb.htm" TARGET="main">terminal_interface-curses-text_io-modular_io.adb</A>
-<LI><A HREF="../terminal_interface-curses-text_io-modular_io__ads.htm" TARGET="main">terminal_interface-curses-text_io-modular_io.ads</A>
-<LI><A HREF="../terminal_interface-curses-text_io__adb.htm" TARGET="main">terminal_interface-curses-text_io.adb</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm" TARGET="main">terminal_interface-curses-text_io.ads</A>
-<LI><A HREF="../terminal_interface-curses-trace__adb.htm" TARGET="main">terminal_interface-curses-trace.adb</A>
-<LI><A HREF="../terminal_interface-curses-trace__ads.htm" TARGET="main">terminal_interface-curses-trace.ads</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm" TARGET="main">terminal_interface-curses.adb</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm" TARGET="main">terminal_interface-curses.ads</A>
-<LI><A HREF="../terminal_interface-curses_constants__ads.htm" TARGET="main">terminal_interface-curses_constants.ads</A>
-<LI><A HREF="../terminal_interface__ads.htm" TARGET="main">terminal_interface.ads</A>
-</UL></BODY></HTML>
+</head>
+<body>
+<h2>Files - T</h2>
+<a href="../files.htm" target="_self">[index]</a>
+<ul compact type="disc">
+<li><a href="../terminal_interface-curses-aux__adb.htm" target="main">terminal_interface-curses-aux.adb</a>
+<li><a href="../terminal_interface-curses-aux__ads.htm" target="main">terminal_interface-curses-aux.ads</a>
+<li><a href="../terminal_interface-curses-forms-field_types-alpha__adb.htm" target="main">terminal_interface-curses-forms-field_types-alpha.adb</a>
+<li><a href="../terminal_interface-curses-forms-field_types-alpha__ads.htm" target="main">terminal_interface-curses-forms-field_types-alpha.ads</a>
+<li><a href="../terminal_interface-curses-forms-field_types-alphanumeric__adb.htm" target="main">terminal_interface-curses-forms-field_types-alphanumeric.adb</a>
+<li><a href="../terminal_interface-curses-forms-field_types-alphanumeric__ads.htm" target="main">terminal_interface-curses-forms-field_types-alphanumeric.ads</a>
+<li><a href="../terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm" target="main">terminal_interface-curses-forms-field_types-enumeration-ada.adb</a>
+<li><a href="../terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm" target="main">terminal_interface-curses-forms-field_types-enumeration-ada.ads</a>
+<li><a href="../terminal_interface-curses-forms-field_types-enumeration__adb.htm" target="main">terminal_interface-curses-forms-field_types-enumeration.adb</a>
+<li><a href="../terminal_interface-curses-forms-field_types-enumeration__ads.htm" target="main">terminal_interface-curses-forms-field_types-enumeration.ads</a>
+<li><a href="../terminal_interface-curses-forms-field_types-intfield__adb.htm" target="main">terminal_interface-curses-forms-field_types-intfield.adb</a>
+<li><a href="../terminal_interface-curses-forms-field_types-intfield__ads.htm" target="main">terminal_interface-curses-forms-field_types-intfield.ads</a>
+<li><a href="../terminal_interface-curses-forms-field_types-ipv4_address__adb.htm" target="main">terminal_interface-curses-forms-field_types-ipv4_address.adb</a>
+<li><a href="../terminal_interface-curses-forms-field_types-ipv4_address__ads.htm" target="main">terminal_interface-curses-forms-field_types-ipv4_address.ads</a>
+<li><a href="../terminal_interface-curses-forms-field_types-numeric__adb.htm" target="main">terminal_interface-curses-forms-field_types-numeric.adb</a>
+<li><a href="../terminal_interface-curses-forms-field_types-numeric__ads.htm" target="main">terminal_interface-curses-forms-field_types-numeric.ads</a>
+<li><a href="../terminal_interface-curses-forms-field_types-regexp__adb.htm" target="main">terminal_interface-curses-forms-field_types-regexp.adb</a>
+<li><a href="../terminal_interface-curses-forms-field_types-regexp__ads.htm" target="main">terminal_interface-curses-forms-field_types-regexp.ads</a>
+<li><a href="../terminal_interface-curses-forms-field_types-user-choice__adb.htm" target="main">terminal_interface-curses-forms-field_types-user-choice.adb</a>
+<li><a href="../terminal_interface-curses-forms-field_types-user-choice__ads.htm" target="main">terminal_interface-curses-forms-field_types-user-choice.ads</a>
+<li><a href="../terminal_interface-curses-forms-field_types-user__adb.htm" target="main">terminal_interface-curses-forms-field_types-user.adb</a>
+<li><a href="../terminal_interface-curses-forms-field_types-user__ads.htm" target="main">terminal_interface-curses-forms-field_types-user.ads</a>
+<li><a href="../terminal_interface-curses-forms-field_types__adb.htm" target="main">terminal_interface-curses-forms-field_types.adb</a>
+<li><a href="../terminal_interface-curses-forms-field_types__ads.htm" target="main">terminal_interface-curses-forms-field_types.ads</a>
+<li><a href="../terminal_interface-curses-forms-field_user_data__adb.htm" target="main">terminal_interface-curses-forms-field_user_data.adb</a>
+<li><a href="../terminal_interface-curses-forms-field_user_data__ads.htm" target="main">terminal_interface-curses-forms-field_user_data.ads</a>
+<li><a href="../terminal_interface-curses-forms-form_user_data__adb.htm" target="main">terminal_interface-curses-forms-form_user_data.adb</a>
+<li><a href="../terminal_interface-curses-forms-form_user_data__ads.htm" target="main">terminal_interface-curses-forms-form_user_data.ads</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm" target="main">terminal_interface-curses-forms.adb</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm" target="main">terminal_interface-curses-forms.ads</a>
+<li><a href="../terminal_interface-curses-menus-item_user_data__adb.htm" target="main">terminal_interface-curses-menus-item_user_data.adb</a>
+<li><a href="../terminal_interface-curses-menus-item_user_data__ads.htm" target="main">terminal_interface-curses-menus-item_user_data.ads</a>
+<li><a href="../terminal_interface-curses-menus-menu_user_data__adb.htm" target="main">terminal_interface-curses-menus-menu_user_data.adb</a>
+<li><a href="../terminal_interface-curses-menus-menu_user_data__ads.htm" target="main">terminal_interface-curses-menus-menu_user_data.ads</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm" target="main">terminal_interface-curses-menus.adb</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm" target="main">terminal_interface-curses-menus.ads</a>
+<li><a href="../terminal_interface-curses-mouse__adb.htm" target="main">terminal_interface-curses-mouse.adb</a>
+<li><a href="../terminal_interface-curses-mouse__ads.htm" target="main">terminal_interface-curses-mouse.ads</a>
+<li><a href="../terminal_interface-curses-panels-user_data__adb.htm" target="main">terminal_interface-curses-panels-user_data.adb</a>
+<li><a href="../terminal_interface-curses-panels-user_data__ads.htm" target="main">terminal_interface-curses-panels-user_data.ads</a>
+<li><a href="../terminal_interface-curses-panels__adb.htm" target="main">terminal_interface-curses-panels.adb</a>
+<li><a href="../terminal_interface-curses-panels__ads.htm" target="main">terminal_interface-curses-panels.ads</a>
+<li><a href="../terminal_interface-curses-putwin__adb.htm" target="main">terminal_interface-curses-putwin.adb</a>
+<li><a href="../terminal_interface-curses-putwin__ads.htm" target="main">terminal_interface-curses-putwin.ads</a>
+<li><a href="../terminal_interface-curses-termcap__adb.htm" target="main">terminal_interface-curses-termcap.adb</a>
+<li><a href="../terminal_interface-curses-termcap__ads.htm" target="main">terminal_interface-curses-termcap.ads</a>
+<li><a href="../terminal_interface-curses-terminfo__adb.htm" target="main">terminal_interface-curses-terminfo.adb</a>
+<li><a href="../terminal_interface-curses-terminfo__ads.htm" target="main">terminal_interface-curses-terminfo.ads</a>
+<li><a href="../terminal_interface-curses-text_io-aux__adb.htm" target="main">terminal_interface-curses-text_io-aux.adb</a>
+<li><a href="../terminal_interface-curses-text_io-aux__ads.htm" target="main">terminal_interface-curses-text_io-aux.ads</a>
+<li><a href="../terminal_interface-curses-text_io-complex_io__adb.htm" target="main">terminal_interface-curses-text_io-complex_io.adb</a>
+<li><a href="../terminal_interface-curses-text_io-complex_io__ads.htm" target="main">terminal_interface-curses-text_io-complex_io.ads</a>
+<li><a href="../terminal_interface-curses-text_io-decimal_io__adb.htm" target="main">terminal_interface-curses-text_io-decimal_io.adb</a>
+<li><a href="../terminal_interface-curses-text_io-decimal_io__ads.htm" target="main">terminal_interface-curses-text_io-decimal_io.ads</a>
+<li><a href="../terminal_interface-curses-text_io-enumeration_io__adb.htm" target="main">terminal_interface-curses-text_io-enumeration_io.adb</a>
+<li><a href="../terminal_interface-curses-text_io-enumeration_io__ads.htm" target="main">terminal_interface-curses-text_io-enumeration_io.ads</a>
+<li><a href="../terminal_interface-curses-text_io-fixed_io__adb.htm" target="main">terminal_interface-curses-text_io-fixed_io.adb</a>
+<li><a href="../terminal_interface-curses-text_io-fixed_io__ads.htm" target="main">terminal_interface-curses-text_io-fixed_io.ads</a>
+<li><a href="../terminal_interface-curses-text_io-float_io__adb.htm" target="main">terminal_interface-curses-text_io-float_io.adb</a>
+<li><a href="../terminal_interface-curses-text_io-float_io__ads.htm" target="main">terminal_interface-curses-text_io-float_io.ads</a>
+<li><a href="../terminal_interface-curses-text_io-integer_io__adb.htm" target="main">terminal_interface-curses-text_io-integer_io.adb</a>
+<li><a href="../terminal_interface-curses-text_io-integer_io__ads.htm" target="main">terminal_interface-curses-text_io-integer_io.ads</a>
+<li><a href="../terminal_interface-curses-text_io-modular_io__adb.htm" target="main">terminal_interface-curses-text_io-modular_io.adb</a>
+<li><a href="../terminal_interface-curses-text_io-modular_io__ads.htm" target="main">terminal_interface-curses-text_io-modular_io.ads</a>
+<li><a href="../terminal_interface-curses-text_io__adb.htm" target="main">terminal_interface-curses-text_io.adb</a>
+<li><a href="../terminal_interface-curses-text_io__ads.htm" target="main">terminal_interface-curses-text_io.ads</a>
+<li><a href="../terminal_interface-curses-trace__adb.htm" target="main">terminal_interface-curses-trace.adb</a>
+<li><a href="../terminal_interface-curses-trace__ads.htm" target="main">terminal_interface-curses-trace.ads</a>
+<li><a href="../terminal_interface-curses__adb.htm" target="main">terminal_interface-curses.adb</a>
+<li><a href="../terminal_interface-curses__ads.htm" target="main">terminal_interface-curses.ads</a>
+<li><a href="../terminal_interface-curses_constants__ads.htm" target="main">terminal_interface-curses_constants.ads</a>
+<li><a href="../terminal_interface__ads.htm" target="main">terminal_interface.ads</a>
+</ul></body></html>
diff --git a/doc/html/ada/funcs.htm b/doc/html/ada/funcs.htm
index 903523e20be1..1ffcef16c5bb 100644
--- a/doc/html/ada/funcs.htm
+++ b/doc/html/ada/funcs.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE></TITLE>
+<html>
+<head>
+<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,29 +11,29 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<H2 ALIGN=CENTER>Functions/Procedures</H2>
-<A HREF="funcs/A.htm">[A]</A>
-<A HREF="funcs/B.htm">[B]</A>
-<A HREF="funcs/C.htm">[C]</A>
-<A HREF="funcs/D.htm">[D]</A>
-<A HREF="funcs/E.htm">[E]</A>
-<A HREF="funcs/F.htm">[F]</A>
-<A HREF="funcs/G.htm">[G]</A>
-<A HREF="funcs/H.htm">[H]</A>
-<A HREF="funcs/I.htm">[I]</A>
-<A HREF="funcs/K.htm">[K]</A>
-<A HREF="funcs/L.htm">[L]</A>
-<A HREF="funcs/M.htm">[M]</A>
-<A HREF="funcs/N.htm">[N]</A>
-<A HREF="funcs/O.htm">[O]</A>
-<A HREF="funcs/P.htm">[P]</A>
-<A HREF="funcs/Q.htm">[Q]</A>
-<A HREF="funcs/R.htm">[R]</A>
-<A HREF="funcs/S.htm">[S]</A>
-<A HREF="funcs/T.htm">[T]</A>
-<A HREF="funcs/U.htm">[U]</A>
-<A HREF="funcs/V.htm">[V]</A>
-<A HREF="funcs/W.htm">[W]</A>
-</BODY></HTML>
+</head>
+<body>
+<h2 align="center">Functions/Procedures</h2>
+<a href="funcs/A.htm">[A]</a>
+<a href="funcs/B.htm">[B]</a>
+<a href="funcs/C.htm">[C]</a>
+<a href="funcs/D.htm">[D]</a>
+<a href="funcs/E.htm">[E]</a>
+<a href="funcs/F.htm">[F]</a>
+<a href="funcs/G.htm">[G]</a>
+<a href="funcs/H.htm">[H]</a>
+<a href="funcs/I.htm">[I]</a>
+<a href="funcs/K.htm">[K]</a>
+<a href="funcs/L.htm">[L]</a>
+<a href="funcs/M.htm">[M]</a>
+<a href="funcs/N.htm">[N]</a>
+<a href="funcs/O.htm">[O]</a>
+<a href="funcs/P.htm">[P]</a>
+<a href="funcs/Q.htm">[Q]</a>
+<a href="funcs/R.htm">[R]</a>
+<a href="funcs/S.htm">[S]</a>
+<a href="funcs/T.htm">[T]</a>
+<a href="funcs/U.htm">[U]</a>
+<a href="funcs/V.htm">[V]</a>
+<a href="funcs/W.htm">[W]</a>
+</body></html>
diff --git a/doc/html/ada/funcs/A.htm b/doc/html/ada/funcs/A.htm
index 3080c76b711e..c5520758ea2b 100644
--- a/doc/html/ada/funcs/A.htm
+++ b/doc/html/ada/funcs/A.htm
@@ -1,29 +1,29 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<HTML>
-<HEAD>
-<TITLE>A</TITLE>
+<html>
+<head>
+<title>A</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</HEAD>
-<BODY>
-<H2>Functions - A</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_129_13" TARGET="main">Above</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_568_13" TARGET="main">ACS_Map</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_694_14" TARGET="main">Add - terminal_interface-curses.ads:694</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_699_14" TARGET="main">Add - terminal_interface-curses.ads:699</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_705_14" TARGET="main">Add - terminal_interface-curses.ads:705</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_713_14" TARGET="main">Add - terminal_interface-curses.ads:713</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_824_14" TARGET="main">Add - terminal_interface-curses.ads:824</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_833_14" TARGET="main">Add - terminal_interface-curses.ads:833</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_848_14" TARGET="main">Add - terminal_interface-curses.ads:848</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_857_14" TARGET="main">Add - terminal_interface-curses.ads:857</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1478_14" TARGET="main">Add_Character_To_Pad_And_Echo_It - terminal_interface-curses.ads:1478</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1483_14" TARGET="main">Add_Character_To_Pad_And_Echo_It - terminal_interface-curses.ads:1483</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_722_14" TARGET="main">Add_With_Immediate_Echo - terminal_interface-curses.ads:722</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_728_14" TARGET="main">Add_With_Immediate_Echo - terminal_interface-curses.ads:728</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_842_16" TARGET="main">Ahead</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user__adb.htm#ref_51_16" TARGET="main">Allocate_Arg</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1187_14" TARGET="main">Allow_Scrolling</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_2009_14" TARGET="main">Assume_Default_Colors</A>
-</UL></BODY></HTML>
+</head>
+<body>
+<h2>Functions - A</h2>
+<a href="../funcs.htm" target="_self">[index]</a>
+<ul compact type="disc">
+<li><a href="../terminal_interface-curses-panels__ads.htm#ref_129_13" target="main">Above</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_568_13" target="main">ACS_Map</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_694_14" target="main">Add - terminal_interface-curses.ads:694</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_699_14" target="main">Add - terminal_interface-curses.ads:699</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_705_14" target="main">Add - terminal_interface-curses.ads:705</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_713_14" target="main">Add - terminal_interface-curses.ads:713</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_824_14" target="main">Add - terminal_interface-curses.ads:824</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_833_14" target="main">Add - terminal_interface-curses.ads:833</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_848_14" target="main">Add - terminal_interface-curses.ads:848</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_857_14" target="main">Add - terminal_interface-curses.ads:857</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1478_14" target="main">Add_Character_To_Pad_And_Echo_It - terminal_interface-curses.ads:1478</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1483_14" target="main">Add_Character_To_Pad_And_Echo_It - terminal_interface-curses.ads:1483</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_722_14" target="main">Add_With_Immediate_Echo - terminal_interface-curses.ads:722</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_728_14" target="main">Add_With_Immediate_Echo - terminal_interface-curses.ads:728</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_842_16" target="main">Ahead</a>
+<li><a href="../terminal_interface-curses-forms-field_types-user__adb.htm#ref_51_16" target="main">Allocate_Arg</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1187_14" target="main">Allow_Scrolling</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_2009_14" target="main">Assume_Default_Colors</a>
+</ul></body></html>
diff --git a/doc/html/ada/funcs/B.htm b/doc/html/ada/funcs/B.htm
index 2f3142aa71b1..f8ca69b4d79c 100644
--- a/doc/html/ada/funcs/B.htm
+++ b/doc/html/ada/funcs/B.htm
@@ -1,25 +1,25 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<HTML>
-<HEAD>
-<TITLE>B</TITLE>
+<html>
+<head>
+<title>B</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</HEAD>
-<BODY>
-<H2>Functions - B</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_456_14" TARGET="main">Background - terminal_interface-curses-forms.ads:456</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_461_14" TARGET="main">Background - terminal_interface-curses-forms.ads:461</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_450_14" TARGET="main">Background - terminal_interface-curses-menus.ads:450</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_455_14" TARGET="main">Background - terminal_interface-curses-menus.ads:455</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2065_16" TARGET="main">Baud</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1818_13" TARGET="main">Baudrate</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1041_14" TARGET="main">Beep</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_752_16" TARGET="main">Beeper</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_858_16" TARGET="main">Behind</A>
-<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_134_13" TARGET="main">Below</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_875_14" TARGET="main">Border</A>
-<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_77_14" TARGET="main">Bottom</A>
-<LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_66_16" TARGET="main">Bottompanel</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_891_14" TARGET="main">Box</A>
-</UL></BODY></HTML>
+</head>
+<body>
+<h2>Functions - B</h2>
+<a href="../funcs.htm" target="_self">[index]</a>
+<ul compact type="disc">
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_456_14" target="main">Background - terminal_interface-curses-forms.ads:456</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_461_14" target="main">Background - terminal_interface-curses-forms.ads:461</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_450_14" target="main">Background - terminal_interface-curses-menus.ads:450</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_455_14" target="main">Background - terminal_interface-curses-menus.ads:455</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_2065_16" target="main">Baud</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1818_13" target="main">Baudrate</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1041_14" target="main">Beep</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_752_16" target="main">Beeper</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_858_16" target="main">Behind</a>
+<li><a href="../terminal_interface-curses-panels__ads.htm#ref_134_13" target="main">Below</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_875_14" target="main">Border</a>
+<li><a href="../terminal_interface-curses-panels__ads.htm#ref_77_14" target="main">Bottom</a>
+<li><a href="../terminal_interface-curses-panels__adb.htm#ref_66_16" target="main">Bottompanel</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_891_14" target="main">Box</a>
+</ul></body></html>
diff --git a/doc/html/ada/funcs/C.htm b/doc/html/ada/funcs/C.htm
index 9d88f819ccc2..8bfb09c636b5 100644
--- a/doc/html/ada/funcs/C.htm
+++ b/doc/html/ada/funcs/C.htm
@@ -1,63 +1,63 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<HTML>
-<HEAD>
-<TITLE>C</TITLE>
+<html>
+<head>
+<title>C</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</HEAD>
-<BODY>
-<H2>Functions - C</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2229_16" TARGET="main">Canchangecolor</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1910_13" TARGET="main">Can_Change_Color</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_772_16" TARGET="main">Cbreak</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_384_13" TARGET="main">Changed</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1016_14" TARGET="main">Change_Attributes - terminal_interface-curses.ads:1016</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1025_14" TARGET="main">Change_Attributes - terminal_interface-curses.ads:1025</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1287_14" TARGET="main">Change_Background</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1323_14" TARGET="main">Change_Lines_Status</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_186_13" TARGET="main">Char_Check_Router</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1251_14" TARGET="main">Clear</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_970_16" TARGET="main">Clear_Ok</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1152_14" TARGET="main">Clear_On_Next_Update</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1704_14" TARGET="main">Clear_Soft_Label_Keys</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1265_14" TARGET="main">Clear_To_End_Of_Line</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1258_14" TARGET="main">Clear_To_End_Of_Screen</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_99_13" TARGET="main">Col - terminal_interface-curses-text_io.ads:99</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_100_13" TARGET="main">Col - terminal_interface-curses-text_io.ads:100</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2246_16" TARGET="main">Colorcontent</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2382_16" TARGET="main">COLORS_As_Function</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1915_14" TARGET="main">Color_Content</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2390_16" TARGET="main">COLOR_PAIRS_As_Function</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2365_16" TARGET="main">COLS_As_Function</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_554_13" TARGET="main">Columns</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1345_14" TARGET="main">Copy</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1275_16" TARGET="main">Copywin</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_168_13" TARGET="main">Copy_Arg</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_681_16" TARGET="main">Count - terminal_interface-curses-forms.adb:681</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_797_16" TARGET="main">Count - terminal_interface-curses-menus.adb:797</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_49_13" TARGET="main">Create - terminal_interface-curses-forms-field_types-enumeration-ada.ads:49</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_65_13" TARGET="main">Create - terminal_interface-curses-forms-field_types-enumeration.ads:65</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_295_13" TARGET="main">Create - terminal_interface-curses-forms.ads:295</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_625_13" TARGET="main">Create - terminal_interface-curses-forms.ads:625</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_190_13" TARGET="main">Create - terminal_interface-curses-menus.ads:190</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_637_13" TARGET="main">Create - terminal_interface-curses-menus.ads:637</A>
-<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_67_13" TARGET="main">Create - terminal_interface-curses-panels.ads:67</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_740_13" TARGET="main">Create - terminal_interface-curses.ads:740</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_731_13" TARGET="main">Current - terminal_interface-curses-forms.ads:731</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_293_13" TARGET="main">Current - terminal_interface-curses-menus.ads:293</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_917_16" TARGET="main">Current_Fld</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_651_13" TARGET="main">Current_Window</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_261_16" TARGET="main">Curr_Item</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2460_17" TARGET="main">curses_freeall</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_2032_14" TARGET="main">Curses_Free_All</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_2019_13" TARGET="main">Curses_Version</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2452_16" TARGET="main">curses_versionC</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2334_16" TARGET="main">Curs_Set</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2438_16" TARGET="main">C_Assume_Default_Colors</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_149_13" TARGET="main">C_Builtin_Router</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_150_13" TARGET="main">C_Choice_Router</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_79_13" TARGET="main">C_Generic_Choice</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user__ads.htm#ref_80_13" TARGET="main">C_Generic_Type</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2426_16" TARGET="main">C_Use_Default_Colors</A>
-</UL></BODY></HTML>
+</head>
+<body>
+<h2>Functions - C</h2>
+<a href="../funcs.htm" target="_self">[index]</a>
+<ul compact type="disc">
+<li><a href="../terminal_interface-curses__adb.htm#ref_2229_16" target="main">Canchangecolor</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1910_13" target="main">Can_Change_Color</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_772_16" target="main">Cbreak</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_384_13" target="main">Changed</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1016_14" target="main">Change_Attributes - terminal_interface-curses.ads:1016</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1025_14" target="main">Change_Attributes - terminal_interface-curses.ads:1025</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1287_14" target="main">Change_Background</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1323_14" target="main">Change_Lines_Status</a>
+<li><a href="../terminal_interface-curses-forms-field_types__ads.htm#ref_186_13" target="main">Char_Check_Router</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1251_14" target="main">Clear</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_970_16" target="main">Clear_Ok</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1152_14" target="main">Clear_On_Next_Update</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1704_14" target="main">Clear_Soft_Label_Keys</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1265_14" target="main">Clear_To_End_Of_Line</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1258_14" target="main">Clear_To_End_Of_Screen</a>
+<li><a href="../terminal_interface-curses-text_io__ads.htm#ref_99_13" target="main">Col - terminal_interface-curses-text_io.ads:99</a>
+<li><a href="../terminal_interface-curses-text_io__ads.htm#ref_100_13" target="main">Col - terminal_interface-curses-text_io.ads:100</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_2246_16" target="main">Colorcontent</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_2382_16" target="main">COLORS_As_Function</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1915_14" target="main">Color_Content</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_2390_16" target="main">COLOR_PAIRS_As_Function</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_2365_16" target="main">COLS_As_Function</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_554_13" target="main">Columns</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1345_14" target="main">Copy</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1275_16" target="main">Copywin</a>
+<li><a href="../terminal_interface-curses-forms-field_types__ads.htm#ref_168_13" target="main">Copy_Arg</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_681_16" target="main">Count - terminal_interface-curses-forms.adb:681</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_797_16" target="main">Count - terminal_interface-curses-menus.adb:797</a>
+<li><a href="../terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_49_13" target="main">Create - terminal_interface-curses-forms-field_types-enumeration-ada.ads:49</a>
+<li><a href="../terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_65_13" target="main">Create - terminal_interface-curses-forms-field_types-enumeration.ads:65</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_295_13" target="main">Create - terminal_interface-curses-forms.ads:295</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_625_13" target="main">Create - terminal_interface-curses-forms.ads:625</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_190_13" target="main">Create - terminal_interface-curses-menus.ads:190</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_637_13" target="main">Create - terminal_interface-curses-menus.ads:637</a>
+<li><a href="../terminal_interface-curses-panels__ads.htm#ref_67_13" target="main">Create - terminal_interface-curses-panels.ads:67</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_740_13" target="main">Create - terminal_interface-curses.ads:740</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_731_13" target="main">Current - terminal_interface-curses-forms.ads:731</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_293_13" target="main">Current - terminal_interface-curses-menus.ads:293</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_917_16" target="main">Current_Fld</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_651_13" target="main">Current_Window</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_261_16" target="main">Curr_Item</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_2460_17" target="main">curses_freeall</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_2032_14" target="main">Curses_Free_All</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_2019_13" target="main">Curses_Version</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_2452_16" target="main">curses_versionC</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_2334_16" target="main">Curs_Set</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_2438_16" target="main">C_Assume_Default_Colors</a>
+<li><a href="../terminal_interface-curses-forms-field_types__ads.htm#ref_149_13" target="main">C_Builtin_Router</a>
+<li><a href="../terminal_interface-curses-forms-field_types__ads.htm#ref_150_13" target="main">C_Choice_Router</a>
+<li><a href="../terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_79_13" target="main">C_Generic_Choice</a>
+<li><a href="../terminal_interface-curses-forms-field_types-user__ads.htm#ref_80_13" target="main">C_Generic_Type</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_2426_16" target="main">C_Use_Default_Colors</a>
+</ul></body></html>
diff --git a/doc/html/ada/funcs/D.htm b/doc/html/ada/funcs/D.htm
index d58ec5bdbd23..2c16baa45e9b 100644
--- a/doc/html/ada/funcs/D.htm
+++ b/doc/html/ada/funcs/D.htm
@@ -1,51 +1,51 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<HTML>
-<HEAD>
-<TITLE>D</TITLE>
+<html>
+<head>
+<title>D</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</HEAD>
-<BODY>
-<H2>Functions - D</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_694_13" TARGET="main">Data_Ahead</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_699_13" TARGET="main">Data_Behind</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_105_13" TARGET="main">Default_Field_Options</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_127_13" TARGET="main">Default_Form_Options</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_167_13" TARGET="main">Default_Item_Options</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_146_13" TARGET="main">Default_Menu_Options</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1767_14" TARGET="main">Define_Key</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2013_16" TARGET="main">Defkey</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2266_16" TARGET="main">Def_Prog_Mode</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2268_16" TARGET="main">Def_Shell_Mode</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2045_16" TARGET="main">Delayoutput</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1804_14" TARGET="main">Delay_Output</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_317_14" TARGET="main">Delete - terminal_interface-curses-forms.ads:317</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_636_14" TARGET="main">Delete - terminal_interface-curses-forms.ads:636</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_202_14" TARGET="main">Delete - terminal_interface-curses-menus.ads:202</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_644_14" TARGET="main">Delete - terminal_interface-curses-menus.ads:644</A>
-<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_139_14" TARGET="main">Delete - terminal_interface-curses-panels.ads:139</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_759_14" TARGET="main">Delete - terminal_interface-curses.ads:759</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1505_14" TARGET="main">Delete_Character - terminal_interface-curses.ads:1505</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1510_14" TARGET="main">Delete_Character - terminal_interface-curses.ads:1510</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1383_14" TARGET="main">Delete_Line</A>
-<LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_157_16" TARGET="main">Del_Panel</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_775_13" TARGET="main">Derived_Window</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_299_16" TARGET="main">Derwin</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_108_16" TARGET="main">Descname - terminal_interface-curses-menus.adb:108</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_234_16" TARGET="main">Descname - terminal_interface-curses-menus.adb:234</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_242_16" TARGET="main">Descname - terminal_interface-curses-menus.adb:242</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_273_14" TARGET="main">Description - terminal_interface-curses-menus.ads:273</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_277_14" TARGET="main">Description - terminal_interface-curses-menus.ads:277</A>
-<LI><A HREF="../terminal_interface-curses-mouse__adb.htm#ref_130_14" TARGET="main">Dispatch_Event</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1062_16" TARGET="main">Do_Update</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_713_13" TARGET="main">Driver - terminal_interface-curses-forms.ads:713</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_659_13" TARGET="main">Driver - terminal_interface-curses-menus.ads:659</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_855_16" TARGET="main">Driver - terminal_interface-curses-menus.adb:855</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_323_13" TARGET="main">Duplicate - terminal_interface-curses-forms.ads:323</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_785_13" TARGET="main">Duplicate - terminal_interface-curses.ads:785</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_322_16" TARGET="main">Dupwin</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_131_16" TARGET="main">Dup_Field</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_495_14" TARGET="main">Dynamic_Info</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_495_16" TARGET="main">Dyn_Info</A>
-</UL></BODY></HTML>
+</head>
+<body>
+<h2>Functions - D</h2>
+<a href="../funcs.htm" target="_self">[index]</a>
+<ul compact type="disc">
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_694_13" target="main">Data_Ahead</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_699_13" target="main">Data_Behind</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_105_13" target="main">Default_Field_Options</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_127_13" target="main">Default_Form_Options</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_167_13" target="main">Default_Item_Options</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_146_13" target="main">Default_Menu_Options</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1767_14" target="main">Define_Key</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_2013_16" target="main">Defkey</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_2266_16" target="main">Def_Prog_Mode</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_2268_16" target="main">Def_Shell_Mode</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_2045_16" target="main">Delayoutput</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1804_14" target="main">Delay_Output</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_317_14" target="main">Delete - terminal_interface-curses-forms.ads:317</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_636_14" target="main">Delete - terminal_interface-curses-forms.ads:636</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_202_14" target="main">Delete - terminal_interface-curses-menus.ads:202</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_644_14" target="main">Delete - terminal_interface-curses-menus.ads:644</a>
+<li><a href="../terminal_interface-curses-panels__ads.htm#ref_139_14" target="main">Delete - terminal_interface-curses-panels.ads:139</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_759_14" target="main">Delete - terminal_interface-curses.ads:759</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1505_14" target="main">Delete_Character - terminal_interface-curses.ads:1505</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1510_14" target="main">Delete_Character - terminal_interface-curses.ads:1510</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1383_14" target="main">Delete_Line</a>
+<li><a href="../terminal_interface-curses-panels__adb.htm#ref_157_16" target="main">Del_Panel</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_775_13" target="main">Derived_Window</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_299_16" target="main">Derwin</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_108_16" target="main">Descname - terminal_interface-curses-menus.adb:108</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_234_16" target="main">Descname - terminal_interface-curses-menus.adb:234</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_242_16" target="main">Descname - terminal_interface-curses-menus.adb:242</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_273_14" target="main">Description - terminal_interface-curses-menus.ads:273</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_277_14" target="main">Description - terminal_interface-curses-menus.ads:277</a>
+<li><a href="../terminal_interface-curses-mouse__adb.htm#ref_130_14" target="main">Dispatch_Event</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1062_16" target="main">Do_Update</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_713_13" target="main">Driver - terminal_interface-curses-forms.ads:713</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_659_13" target="main">Driver - terminal_interface-curses-menus.ads:659</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_855_16" target="main">Driver - terminal_interface-curses-menus.adb:855</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_323_13" target="main">Duplicate - terminal_interface-curses-forms.ads:323</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_785_13" target="main">Duplicate - terminal_interface-curses.ads:785</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_322_16" target="main">Dupwin</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_131_16" target="main">Dup_Field</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_495_14" target="main">Dynamic_Info</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_495_16" target="main">Dyn_Info</a>
+</ul></body></html>
diff --git a/doc/html/ada/funcs/E.htm b/doc/html/ada/funcs/E.htm
index 9504d2547503..b161c0646f03 100644
--- a/doc/html/ada/funcs/E.htm
+++ b/doc/html/ada/funcs/E.htm
@@ -1,22 +1,22 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<HTML>
-<HEAD>
-<TITLE>E</TITLE>
+<html>
+<head>
+<title>E</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</HEAD>
-<BODY>
-<H2>Functions - E</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_810_16" TARGET="main">Echo</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1757_14" TARGET="main">Enable_Key</A>
-<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_147_13" TARGET="main">Enclosed_In_Window</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_113_16" TARGET="main">Endwin</A>
-<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_121_14" TARGET="main">End_Mouse</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_668_14" TARGET="main">End_Screen</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_666_14" TARGET="main">End_Windows</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1245_14" TARGET="main">Erase</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2073_16" TARGET="main">Erasechar</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1823_13" TARGET="main">Erase_Character</A>
-<LI><A HREF="../terminal_interface-curses-aux__ads.htm#ref_87_14" TARGET="main">Eti_Exception</A>
-</UL></BODY></HTML>
+</head>
+<body>
+<h2>Functions - E</h2>
+<a href="../funcs.htm" target="_self">[index]</a>
+<ul compact type="disc">
+<li><a href="../terminal_interface-curses__adb.htm#ref_810_16" target="main">Echo</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1757_14" target="main">Enable_Key</a>
+<li><a href="../terminal_interface-curses-mouse__ads.htm#ref_147_13" target="main">Enclosed_In_Window</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_113_16" target="main">Endwin</a>
+<li><a href="../terminal_interface-curses-mouse__ads.htm#ref_121_14" target="main">End_Mouse</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_668_14" target="main">End_Screen</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_666_14" target="main">End_Windows</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1245_14" target="main">Erase</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_2073_16" target="main">Erasechar</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1823_13" target="main">Erase_Character</a>
+<li><a href="../terminal_interface-curses-aux__ads.htm#ref_87_14" target="main">Eti_Exception</a>
+</ul></body></html>
diff --git a/doc/html/ada/funcs/F.htm b/doc/html/ada/funcs/F.htm
index d1914863be64..9e6bac8f1dd3 100644
--- a/doc/html/ada/funcs/F.htm
+++ b/doc/html/ada/funcs/F.htm
@@ -1,59 +1,59 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<HTML>
-<HEAD>
-<TITLE>F</TITLE>
+<html>
+<head>
+<title>F</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</HEAD>
-<BODY>
-<H2>Functions - F</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_603_13" TARGET="main">Fields</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_411_16" TARGET="main">Field_Back - terminal_interface-curses-forms.adb:411</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_421_16" TARGET="main">Field_Back - terminal_interface-curses-forms.adb:421</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_223_16" TARGET="main">Field_Buffer - terminal_interface-curses-forms.adb:223</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_234_16" TARGET="main">Field_Buffer - terminal_interface-curses-forms.adb:234</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_178_13" TARGET="main">Field_Check_Router</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_609_13" TARGET="main">Field_Count</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_372_16" TARGET="main">Field_Fore - terminal_interface-curses-forms.adb:372</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_382_16" TARGET="main">Field_Fore - terminal_interface-curses-forms.adb:382</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_189_16" TARGET="main">Field_Just</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_328_16" TARGET="main">Field_Opts</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_311_16" TARGET="main">Field_Opts_Off</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_308_16" TARGET="main">Field_Opts_On</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_447_16" TARGET="main">Field_Pad</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_260_16" TARGET="main">Field_Status</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_user_data__adb.htm#ref_68_16" TARGET="main">Field_Userptr</A>
-<LI><A HREF="../terminal_interface-curses-aux__ads.htm#ref_91_14" TARGET="main">Fill_String - terminal_interface-curses-aux.ads:91</A>
-<LI><A HREF="../terminal_interface-curses-aux__ads.htm#ref_96_13" TARGET="main">Fill_String - terminal_interface-curses-aux.ads:96</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_762_16" TARGET="main">Flash</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1046_14" TARGET="main">Flash_Screen</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_468_16" TARGET="main">Fld_Info</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_66_14" TARGET="main">Flush - terminal_interface-curses-text_io.ads:66</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_67_14" TARGET="main">Flush - terminal_interface-curses-text_io.ads:67</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2055_16" TARGET="main">Flushinp</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1809_14" TARGET="main">Flush_Input</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_436_14" TARGET="main">Foreground - terminal_interface-curses-forms.ads:436</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_441_14" TARGET="main">Foreground - terminal_interface-curses-forms.ads:441</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_430_14" TARGET="main">Foreground - terminal_interface-curses-menus.ads:430</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_435_14" TARGET="main">Foreground - terminal_interface-curses-menus.ads:435</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_550_14" TARGET="main">Format</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_780_16" TARGET="main">Form_Opts</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_763_16" TARGET="main">Form_Opts_Off</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_760_16" TARGET="main">Form_Opts_On</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_68_16" TARGET="main">Form_Request_Name - terminal_interface-curses-forms.adb:68</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_76_16" TARGET="main">Form_Request_Name - terminal_interface-curses-forms.adb:76</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_554_16" TARGET="main">Form_Sub</A>
-<LI><A HREF="../terminal_interface-curses-forms-form_user_data__adb.htm#ref_69_16" TARGET="main">Form_Userptr</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_529_16" TARGET="main">Form_Win</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_138_14" TARGET="main">Free - terminal_interface-curses-forms.ads:138</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_179_14" TARGET="main">Free - terminal_interface-curses-menus.ads:179</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_729_16" TARGET="main">Free - terminal_interface-curses-forms.adb:729</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_843_16" TARGET="main">Free - terminal_interface-curses-menus.adb:843</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_113_16" TARGET="main">Freeitem</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_173_14" TARGET="main">Free_Arg</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_117_16" TARGET="main">Free_Field</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_879_16" TARGET="main">Frm_Driver</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_952_13" TARGET="main">Function_Key</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_957_13" TARGET="main">Function_Key_Code</A>
-</UL></BODY></HTML>
+</head>
+<body>
+<h2>Functions - F</h2>
+<a href="../funcs.htm" target="_self">[index]</a>
+<ul compact type="disc">
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_603_13" target="main">Fields</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_411_16" target="main">Field_Back - terminal_interface-curses-forms.adb:411</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_421_16" target="main">Field_Back - terminal_interface-curses-forms.adb:421</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_223_16" target="main">Field_Buffer - terminal_interface-curses-forms.adb:223</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_234_16" target="main">Field_Buffer - terminal_interface-curses-forms.adb:234</a>
+<li><a href="../terminal_interface-curses-forms-field_types__ads.htm#ref_178_13" target="main">Field_Check_Router</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_609_13" target="main">Field_Count</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_372_16" target="main">Field_Fore - terminal_interface-curses-forms.adb:372</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_382_16" target="main">Field_Fore - terminal_interface-curses-forms.adb:382</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_189_16" target="main">Field_Just</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_328_16" target="main">Field_Opts</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_311_16" target="main">Field_Opts_Off</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_308_16" target="main">Field_Opts_On</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_447_16" target="main">Field_Pad</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_260_16" target="main">Field_Status</a>
+<li><a href="../terminal_interface-curses-forms-field_user_data__adb.htm#ref_68_16" target="main">Field_Userptr</a>
+<li><a href="../terminal_interface-curses-aux__ads.htm#ref_91_14" target="main">Fill_String - terminal_interface-curses-aux.ads:91</a>
+<li><a href="../terminal_interface-curses-aux__ads.htm#ref_96_13" target="main">Fill_String - terminal_interface-curses-aux.ads:96</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_762_16" target="main">Flash</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1046_14" target="main">Flash_Screen</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_468_16" target="main">Fld_Info</a>
+<li><a href="../terminal_interface-curses-text_io__ads.htm#ref_66_14" target="main">Flush - terminal_interface-curses-text_io.ads:66</a>
+<li><a href="../terminal_interface-curses-text_io__ads.htm#ref_67_14" target="main">Flush - terminal_interface-curses-text_io.ads:67</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_2055_16" target="main">Flushinp</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1809_14" target="main">Flush_Input</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_436_14" target="main">Foreground - terminal_interface-curses-forms.ads:436</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_441_14" target="main">Foreground - terminal_interface-curses-forms.ads:441</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_430_14" target="main">Foreground - terminal_interface-curses-menus.ads:430</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_435_14" target="main">Foreground - terminal_interface-curses-menus.ads:435</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_550_14" target="main">Format</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_780_16" target="main">Form_Opts</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_763_16" target="main">Form_Opts_Off</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_760_16" target="main">Form_Opts_On</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_68_16" target="main">Form_Request_Name - terminal_interface-curses-forms.adb:68</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_76_16" target="main">Form_Request_Name - terminal_interface-curses-forms.adb:76</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_554_16" target="main">Form_Sub</a>
+<li><a href="../terminal_interface-curses-forms-form_user_data__adb.htm#ref_69_16" target="main">Form_Userptr</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_529_16" target="main">Form_Win</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_138_14" target="main">Free - terminal_interface-curses-forms.ads:138</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_179_14" target="main">Free - terminal_interface-curses-menus.ads:179</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_729_16" target="main">Free - terminal_interface-curses-forms.adb:729</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_843_16" target="main">Free - terminal_interface-curses-menus.adb:843</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_113_16" target="main">Freeitem</a>
+<li><a href="../terminal_interface-curses-forms-field_types__ads.htm#ref_173_14" target="main">Free_Arg</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_117_16" target="main">Free_Field</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_879_16" target="main">Frm_Driver</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_952_13" target="main">Function_Key</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_957_13" target="main">Function_Key_Code</a>
+</ul></body></html>
diff --git a/doc/html/ada/funcs/G.htm b/doc/html/ada/funcs/G.htm
index 2a329f3c3de2..166fbc1a724c 100644
--- a/doc/html/ada/funcs/G.htm
+++ b/doc/html/ada/funcs/G.htm
@@ -1,100 +1,100 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<HTML>
-<HEAD>
-<TITLE>G</TITLE>
+<html>
+<head>
+<title>G</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</HEAD>
-<BODY>
-<H2>Functions - G</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user__ads.htm#ref_89_13" TARGET="main">Generic_Char_Check</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user__ads.htm#ref_82_13" TARGET="main">Generic_Field_Check</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_81_13" TARGET="main">Generic_Next</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_88_13" TARGET="main">Generic_Prev</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1634_14" TARGET="main">Get - terminal_interface-curses.ads:1634</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1645_14" TARGET="main">Get - terminal_interface-curses.ads:1645</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1377_16" TARGET="main">GetBegX</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1374_16" TARGET="main">GetBegY</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1395_16" TARGET="main">GetCurX</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1392_16" TARGET="main">GetCurY</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1359_16" TARGET="main">GetMaxX</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1356_16" TARGET="main">GetMaxY</A>
-<LI><A HREF="../terminal_interface-curses-mouse__adb.htm#ref_65_16" TARGET="main">Getmouse</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1414_16" TARGET="main">GetParX</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1411_16" TARGET="main">GetParY</A>
-<LI><A HREF="../terminal_interface-curses-putwin__adb.htm#ref_66_16" TARGET="main">getwin</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm#ref_62_13" TARGET="main">Get_Arg</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1296_13" TARGET="main">Get_Background</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_364_14" TARGET="main">Get_Buffer - terminal_interface-curses-forms.ads:364</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_370_13" TARGET="main">Get_Buffer - terminal_interface-curses-forms.ads:370</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_997_13" TARGET="main">Get_Character_Attribute - terminal_interface-curses.ads:997</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1003_13" TARGET="main">Get_Character_Attribute - terminal_interface-curses.ads:1003</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1415_14" TARGET="main">Get_Cursor_Position</A>
-<LI><A HREF="../terminal_interface-curses-termcap__ads.htm#ref_60_13" TARGET="main">Get_Entry</A>
-<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_130_14" TARGET="main">Get_Event</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_958_16" TARGET="main">Get_Fieldindex</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm#ref_59_13" TARGET="main">Get_Fieldtype</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_567_13" TARGET="main">Get_Field_Init_Hook</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_572_13" TARGET="main">Get_Field_Term_Hook</A>
-<LI><A HREF="../terminal_interface-curses-termcap__ads.htm#ref_64_13" TARGET="main">Get_Flag - terminal_interface-curses-termcap.ads:64</A>
-<LI><A HREF="../terminal_interface-curses-terminfo__ads.htm#ref_65_13" TARGET="main">Get_Flag - terminal_interface-curses-terminfo.ads:65</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_577_13" TARGET="main">Get_Form_Init_Hook</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_582_13" TARGET="main">Get_Form_Term_Hook</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_747_13" TARGET="main">Get_Index - terminal_interface-curses-forms.ads:747</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_309_13" TARGET="main">Get_Index - terminal_interface-curses-menus.ads:309</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_298_16" TARGET="main">Get_Itemindex</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_588_13" TARGET="main">Get_Item_Init_Hook</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_593_13" TARGET="main">Get_Item_Term_Hook</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_347_13" TARGET="main">Get_Justification</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1086_13" TARGET="main">Get_KeyPad_Mode</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_922_13" TARGET="main">Get_Keystroke</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_598_13" TARGET="main">Get_Menu_Init_Hook</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_459_16" TARGET="main">Get_Menu_Mark - terminal_interface-curses-menus.adb:459</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_467_16" TARGET="main">Get_Menu_Mark - terminal_interface-curses-menus.adb:467</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_603_13" TARGET="main">Get_Menu_Term_Hook</A>
-<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_126_13" TARGET="main">Get_Mouse</A>
-<LI><A HREF="../terminal_interface-curses-termcap__ads.htm#ref_68_14" TARGET="main">Get_Number - terminal_interface-curses-termcap.ads:68</A>
-<LI><A HREF="../terminal_interface-curses-terminfo__ads.htm#ref_69_13" TARGET="main">Get_Number - terminal_interface-curses-terminfo.ads:69</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_413_14" TARGET="main">Get_Options - terminal_interface-curses-forms.ads:413</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_418_13" TARGET="main">Get_Options - terminal_interface-curses-forms.ads:418</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_660_14" TARGET="main">Get_Options - terminal_interface-curses-forms.ads:660</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_665_13" TARGET="main">Get_Options - terminal_interface-curses-forms.ads:665</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_250_14" TARGET="main">Get_Options - terminal_interface-curses-menus.ads:250</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_255_13" TARGET="main">Get_Options - terminal_interface-curses-menus.ads:255</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_346_14" TARGET="main">Get_Options - terminal_interface-curses-menus.ads:346</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_351_13" TARGET="main">Get_Options - terminal_interface-curses-menus.ads:351</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1423_14" TARGET="main">Get_Origin_Relative_To_Parent</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_944_16" TARGET="main">Get_Page</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_665_16" TARGET="main">Get_Pattern</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1399_14" TARGET="main">Get_Size</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1693_14" TARGET="main">Get_Soft_Label_Key - terminal_interface-curses.ads:1693</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1698_13" TARGET="main">Get_Soft_Label_Key - terminal_interface-curses.ads:1698</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1734_13" TARGET="main">Get_Soft_Label_Key_Attributes - terminal_interface-curses.ads:1734</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1738_13" TARGET="main">Get_Soft_Label_Key_Attributes - terminal_interface-curses.ads:1738</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_624_16" TARGET="main">Get_Spacing</A>
-<LI><A HREF="../terminal_interface-curses-termcap__ads.htm#ref_74_14" TARGET="main">Get_String - terminal_interface-curses-termcap.ads:74</A>
-<LI><A HREF="../terminal_interface-curses-termcap__ads.htm#ref_77_13" TARGET="main">Get_String - terminal_interface-curses-termcap.ads:77</A>
-<LI><A HREF="../terminal_interface-curses-terminfo__ads.htm#ref_58_14" TARGET="main">Get_String - terminal_interface-curses-terminfo.ads:58</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_524_13" TARGET="main">Get_Sub_Window - terminal_interface-curses-forms.ads:524</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_377_13" TARGET="main">Get_Sub_Window - terminal_interface-curses-menus.ads:377</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_80_13" TARGET="main">Get_Type</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_user_data__ads.htm#ref_60_14" TARGET="main">Get_User_Data - terminal_interface-curses-forms-field_user_data.ads:60</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_user_data__ads.htm#ref_65_13" TARGET="main">Get_User_Data - terminal_interface-curses-forms-field_user_data.ads:65</A>
-<LI><A HREF="../terminal_interface-curses-forms-form_user_data__ads.htm#ref_60_14" TARGET="main">Get_User_Data - terminal_interface-curses-forms-form_user_data.ads:60</A>
-<LI><A HREF="../terminal_interface-curses-forms-form_user_data__ads.htm#ref_65_13" TARGET="main">Get_User_Data - terminal_interface-curses-forms-form_user_data.ads:65</A>
-<LI><A HREF="../terminal_interface-curses-menus-item_user_data__ads.htm#ref_65_14" TARGET="main">Get_User_Data - terminal_interface-curses-menus-item_user_data.ads:65</A>
-<LI><A HREF="../terminal_interface-curses-menus-item_user_data__ads.htm#ref_70_13" TARGET="main">Get_User_Data - terminal_interface-curses-menus-item_user_data.ads:70</A>
-<LI><A HREF="../terminal_interface-curses-menus-menu_user_data__ads.htm#ref_60_14" TARGET="main">Get_User_Data - terminal_interface-curses-menus-menu_user_data.ads:60</A>
-<LI><A HREF="../terminal_interface-curses-menus-menu_user_data__ads.htm#ref_65_13" TARGET="main">Get_User_Data - terminal_interface-curses-menus-menu_user_data.ads:65</A>
-<LI><A HREF="../terminal_interface-curses-panels-user_data__ads.htm#ref_60_14" TARGET="main">Get_User_Data - terminal_interface-curses-panels-user_data.ads:60</A>
-<LI><A HREF="../terminal_interface-curses-panels-user_data__ads.htm#ref_65_13" TARGET="main">Get_User_Data - terminal_interface-curses-panels-user_data.ads:65</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_513_13" TARGET="main">Get_Window - terminal_interface-curses-forms.ads:513</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_366_13" TARGET="main">Get_Window - terminal_interface-curses-menus.ads:366</A>
-<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_102_13" TARGET="main">Get_Window - terminal_interface-curses-panels.ads:102</A>
-<LI><A HREF="../terminal_interface-curses-putwin__ads.htm#ref_49_13" TARGET="main">Get_Window - terminal_interface-curses-putwin.ads:49</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_63_13" TARGET="main">Get_Window - terminal_interface-curses-text_io.ads:63</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1407_14" TARGET="main">Get_Window_Position</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_470_14" TARGET="main">Grey - terminal_interface-curses-menus.ads:470</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_475_14" TARGET="main">Grey - terminal_interface-curses-menus.ads:475</A>
-</UL></BODY></HTML>
+</head>
+<body>
+<h2>Functions - G</h2>
+<a href="../funcs.htm" target="_self">[index]</a>
+<ul compact type="disc">
+<li><a href="../terminal_interface-curses-forms-field_types-user__ads.htm#ref_89_13" target="main">Generic_Char_Check</a>
+<li><a href="../terminal_interface-curses-forms-field_types-user__ads.htm#ref_82_13" target="main">Generic_Field_Check</a>
+<li><a href="../terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_81_13" target="main">Generic_Next</a>
+<li><a href="../terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_88_13" target="main">Generic_Prev</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1634_14" target="main">Get - terminal_interface-curses.ads:1634</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1645_14" target="main">Get - terminal_interface-curses.ads:1645</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1377_16" target="main">GetBegX</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1374_16" target="main">GetBegY</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1395_16" target="main">GetCurX</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1392_16" target="main">GetCurY</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1359_16" target="main">GetMaxX</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1356_16" target="main">GetMaxY</a>
+<li><a href="../terminal_interface-curses-mouse__adb.htm#ref_65_16" target="main">Getmouse</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1414_16" target="main">GetParX</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1411_16" target="main">GetParY</a>
+<li><a href="../terminal_interface-curses-putwin__adb.htm#ref_66_16" target="main">getwin</a>
+<li><a href="../terminal_interface-curses-forms-field_types__adb.htm#ref_62_13" target="main">Get_Arg</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1296_13" target="main">Get_Background</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_364_14" target="main">Get_Buffer - terminal_interface-curses-forms.ads:364</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_370_13" target="main">Get_Buffer - terminal_interface-curses-forms.ads:370</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_997_13" target="main">Get_Character_Attribute - terminal_interface-curses.ads:997</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1003_13" target="main">Get_Character_Attribute - terminal_interface-curses.ads:1003</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1415_14" target="main">Get_Cursor_Position</a>
+<li><a href="../terminal_interface-curses-termcap__ads.htm#ref_60_13" target="main">Get_Entry</a>
+<li><a href="../terminal_interface-curses-mouse__ads.htm#ref_130_14" target="main">Get_Event</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_958_16" target="main">Get_Fieldindex</a>
+<li><a href="../terminal_interface-curses-forms-field_types__adb.htm#ref_59_13" target="main">Get_Fieldtype</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_567_13" target="main">Get_Field_Init_Hook</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_572_13" target="main">Get_Field_Term_Hook</a>
+<li><a href="../terminal_interface-curses-termcap__ads.htm#ref_64_13" target="main">Get_Flag - terminal_interface-curses-termcap.ads:64</a>
+<li><a href="../terminal_interface-curses-terminfo__ads.htm#ref_65_13" target="main">Get_Flag - terminal_interface-curses-terminfo.ads:65</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_577_13" target="main">Get_Form_Init_Hook</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_582_13" target="main">Get_Form_Term_Hook</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_747_13" target="main">Get_Index - terminal_interface-curses-forms.ads:747</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_309_13" target="main">Get_Index - terminal_interface-curses-menus.ads:309</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_298_16" target="main">Get_Itemindex</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_588_13" target="main">Get_Item_Init_Hook</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_593_13" target="main">Get_Item_Term_Hook</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_347_13" target="main">Get_Justification</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1086_13" target="main">Get_KeyPad_Mode</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_922_13" target="main">Get_Keystroke</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_598_13" target="main">Get_Menu_Init_Hook</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_459_16" target="main">Get_Menu_Mark - terminal_interface-curses-menus.adb:459</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_467_16" target="main">Get_Menu_Mark - terminal_interface-curses-menus.adb:467</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_603_13" target="main">Get_Menu_Term_Hook</a>
+<li><a href="../terminal_interface-curses-mouse__ads.htm#ref_126_13" target="main">Get_Mouse</a>
+<li><a href="../terminal_interface-curses-termcap__ads.htm#ref_68_14" target="main">Get_Number - terminal_interface-curses-termcap.ads:68</a>
+<li><a href="../terminal_interface-curses-terminfo__ads.htm#ref_69_13" target="main">Get_Number - terminal_interface-curses-terminfo.ads:69</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_413_14" target="main">Get_Options - terminal_interface-curses-forms.ads:413</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_418_13" target="main">Get_Options - terminal_interface-curses-forms.ads:418</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_660_14" target="main">Get_Options - terminal_interface-curses-forms.ads:660</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_665_13" target="main">Get_Options - terminal_interface-curses-forms.ads:665</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_250_14" target="main">Get_Options - terminal_interface-curses-menus.ads:250</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_255_13" target="main">Get_Options - terminal_interface-curses-menus.ads:255</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_346_14" target="main">Get_Options - terminal_interface-curses-menus.ads:346</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_351_13" target="main">Get_Options - terminal_interface-curses-menus.ads:351</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1423_14" target="main">Get_Origin_Relative_To_Parent</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_944_16" target="main">Get_Page</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_665_16" target="main">Get_Pattern</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1399_14" target="main">Get_Size</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1693_14" target="main">Get_Soft_Label_Key - terminal_interface-curses.ads:1693</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1698_13" target="main">Get_Soft_Label_Key - terminal_interface-curses.ads:1698</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1734_13" target="main">Get_Soft_Label_Key_Attributes - terminal_interface-curses.ads:1734</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1738_13" target="main">Get_Soft_Label_Key_Attributes - terminal_interface-curses.ads:1738</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_624_16" target="main">Get_Spacing</a>
+<li><a href="../terminal_interface-curses-termcap__ads.htm#ref_74_14" target="main">Get_String - terminal_interface-curses-termcap.ads:74</a>
+<li><a href="../terminal_interface-curses-termcap__ads.htm#ref_77_13" target="main">Get_String - terminal_interface-curses-termcap.ads:77</a>
+<li><a href="../terminal_interface-curses-terminfo__ads.htm#ref_58_14" target="main">Get_String - terminal_interface-curses-terminfo.ads:58</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_524_13" target="main">Get_Sub_Window - terminal_interface-curses-forms.ads:524</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_377_13" target="main">Get_Sub_Window - terminal_interface-curses-menus.ads:377</a>
+<li><a href="../terminal_interface-curses-forms-field_types__ads.htm#ref_80_13" target="main">Get_Type</a>
+<li><a href="../terminal_interface-curses-forms-field_user_data__ads.htm#ref_60_14" target="main">Get_User_Data - terminal_interface-curses-forms-field_user_data.ads:60</a>
+<li><a href="../terminal_interface-curses-forms-field_user_data__ads.htm#ref_65_13" target="main">Get_User_Data - terminal_interface-curses-forms-field_user_data.ads:65</a>
+<li><a href="../terminal_interface-curses-forms-form_user_data__ads.htm#ref_60_14" target="main">Get_User_Data - terminal_interface-curses-forms-form_user_data.ads:60</a>
+<li><a href="../terminal_interface-curses-forms-form_user_data__ads.htm#ref_65_13" target="main">Get_User_Data - terminal_interface-curses-forms-form_user_data.ads:65</a>
+<li><a href="../terminal_interface-curses-menus-item_user_data__ads.htm#ref_65_14" target="main">Get_User_Data - terminal_interface-curses-menus-item_user_data.ads:65</a>
+<li><a href="../terminal_interface-curses-menus-item_user_data__ads.htm#ref_70_13" target="main">Get_User_Data - terminal_interface-curses-menus-item_user_data.ads:70</a>
+<li><a href="../terminal_interface-curses-menus-menu_user_data__ads.htm#ref_60_14" target="main">Get_User_Data - terminal_interface-curses-menus-menu_user_data.ads:60</a>
+<li><a href="../terminal_interface-curses-menus-menu_user_data__ads.htm#ref_65_13" target="main">Get_User_Data - terminal_interface-curses-menus-menu_user_data.ads:65</a>
+<li><a href="../terminal_interface-curses-panels-user_data__ads.htm#ref_60_14" target="main">Get_User_Data - terminal_interface-curses-panels-user_data.ads:60</a>
+<li><a href="../terminal_interface-curses-panels-user_data__ads.htm#ref_65_13" target="main">Get_User_Data - terminal_interface-curses-panels-user_data.ads:65</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_513_13" target="main">Get_Window - terminal_interface-curses-forms.ads:513</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_366_13" target="main">Get_Window - terminal_interface-curses-menus.ads:366</a>
+<li><a href="../terminal_interface-curses-panels__ads.htm#ref_102_13" target="main">Get_Window - terminal_interface-curses-panels.ads:102</a>
+<li><a href="../terminal_interface-curses-putwin__ads.htm#ref_49_13" target="main">Get_Window - terminal_interface-curses-putwin.ads:49</a>
+<li><a href="../terminal_interface-curses-text_io__ads.htm#ref_63_13" target="main">Get_Window - terminal_interface-curses-text_io.ads:63</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1407_14" target="main">Get_Window_Position</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_470_14" target="main">Grey - terminal_interface-curses-menus.ads:470</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_475_14" target="main">Grey - terminal_interface-curses-menus.ads:475</a>
+</ul></body></html>
diff --git a/doc/html/ada/funcs/H.htm b/doc/html/ada/funcs/H.htm
index 1809b7b55c8e..c87793746ab8 100644
--- a/doc/html/ada/funcs/H.htm
+++ b/doc/html/ada/funcs/H.htm
@@ -1,26 +1,26 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<HTML>
-<HEAD>
-<TITLE>H</TITLE>
+<html>
+<head>
+<title>H</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</HEAD>
-<BODY>
-<H2>Functions - H</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_860_16" TARGET="main">Halfdelay</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1094_14" TARGET="main">Half_Delay</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2199_16" TARGET="main">Hascolors</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_550_16" TARGET="main">Haskey</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1897_13" TARGET="main">Has_Colors</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2089_16" TARGET="main">Has_Ic</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2101_16" TARGET="main">Has_Il</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1833_13" TARGET="main">Has_Insert_Character</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1838_13" TARGET="main">Has_Insert_Line</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_938_13" TARGET="main">Has_Key</A>
-<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_91_13" TARGET="main">Has_Mouse</A>
-<LI><A HREF="../terminal_interface-curses-terminfo__ads.htm#ref_61_13" TARGET="main">Has_String</A>
-<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_97_14" TARGET="main">Hide</A>
-<LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_96_16" TARGET="main">Hidepanel</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_899_14" TARGET="main">Horizontal_Line</A>
-</UL></BODY></HTML>
+</head>
+<body>
+<h2>Functions - H</h2>
+<a href="../funcs.htm" target="_self">[index]</a>
+<ul compact type="disc">
+<li><a href="../terminal_interface-curses__adb.htm#ref_860_16" target="main">Halfdelay</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1094_14" target="main">Half_Delay</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_2199_16" target="main">Hascolors</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_550_16" target="main">Haskey</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1897_13" target="main">Has_Colors</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_2089_16" target="main">Has_Ic</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_2101_16" target="main">Has_Il</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1833_13" target="main">Has_Insert_Character</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1838_13" target="main">Has_Insert_Line</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_938_13" target="main">Has_Key</a>
+<li><a href="../terminal_interface-curses-mouse__ads.htm#ref_91_13" target="main">Has_Mouse</a>
+<li><a href="../terminal_interface-curses-terminfo__ads.htm#ref_61_13" target="main">Has_String</a>
+<li><a href="../terminal_interface-curses-panels__ads.htm#ref_97_14" target="main">Hide</a>
+<li><a href="../terminal_interface-curses-panels__adb.htm#ref_96_16" target="main">Hidepanel</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_899_14" target="main">Horizontal_Line</a>
+</ul></body></html>
diff --git a/doc/html/ada/funcs/I.htm b/doc/html/ada/funcs/I.htm
index e563c5594ca0..97c5e524a67f 100644
--- a/doc/html/ada/funcs/I.htm
+++ b/doc/html/ada/funcs/I.htm
@@ -1,55 +1,55 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<HTML>
-<HEAD>
-<TITLE>I</TITLE>
+<html>
+<head>
+<title>I</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</HEAD>
-<BODY>
-<H2>Functions - I</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_994_17" TARGET="main">IDC_Ok</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_982_16" TARGET="main">IDL_Ok</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1180_14" TARGET="main">Immediate_Update_Mode</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1016_17" TARGET="main">Immedok</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_484_14" TARGET="main">Info</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2214_16" TARGET="main">Initcolor</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2157_16" TARGET="main">Initpair</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_100_16" TARGET="main">Initscr</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1902_14" TARGET="main">Init_Color</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1883_14" TARGET="main">Init_Pair</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_657_14" TARGET="main">Init_Screen</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1670_14" TARGET="main">Init_Soft_Label_Keys</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_660_14" TARGET="main">Init_Windows</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1542_14" TARGET="main">Insert - terminal_interface-curses.ads:1542</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1548_14" TARGET="main">Insert - terminal_interface-curses.ads:1548</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1560_14" TARGET="main">Insert - terminal_interface-curses.ads:1560</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1569_14" TARGET="main">Insert - terminal_interface-curses.ads:1569</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1375_14" TARGET="main">Insert_Delete_Lines</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1389_14" TARGET="main">Insert_Line</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_872_16" TARGET="main">Intrflush</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_123_16" TARGET="main">Isendwin</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_673_13" TARGET="main">Is_End_Window</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_945_13" TARGET="main">Is_Function_Key</A>
-<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_124_13" TARGET="main">Is_Hidden</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_852_16" TARGET="main">Is_Keypad</A>
-<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#ref_51_13" TARGET="main">Is_MinusOne_Pointer</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_990_16" TARGET="main">Is_New</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_765_13" TARGET="main">Is_New_Page</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1037_16" TARGET="main">Is_Scroll_Ok</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1331_13" TARGET="main">Is_Touched - terminal_interface-curses.ads:1331</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1336_13" TARGET="main">Is_Touched - terminal_interface-curses.ads:1336</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_110_16" TARGET="main">Itemname - terminal_interface-curses-menus.adb:110</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_217_16" TARGET="main">Itemname - terminal_interface-curses-menus.adb:217</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_225_16" TARGET="main">Itemname - terminal_interface-curses-menus.adb:225</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_622_13" TARGET="main">Items</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_628_13" TARGET="main">Item_Count</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_749_16" TARGET="main">Item_Init</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_199_16" TARGET="main">Item_Opts</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_184_16" TARGET="main">Item_Opts_Off</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_181_16" TARGET="main">Item_Opts_On</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_757_16" TARGET="main">Item_Term</A>
-<LI><A HREF="../terminal_interface-curses-menus-item_user_data__adb.htm#ref_59_16" TARGET="main">Item_Userptr</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_143_16" TARGET="main">Item_Val</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_156_16" TARGET="main">Item_Vis</A>
-</UL></BODY></HTML>
+</head>
+<body>
+<h2>Functions - I</h2>
+<a href="../funcs.htm" target="_self">[index]</a>
+<ul compact type="disc">
+<li><a href="../terminal_interface-curses__adb.htm#ref_994_17" target="main">IDC_Ok</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_982_16" target="main">IDL_Ok</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1180_14" target="main">Immediate_Update_Mode</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1016_17" target="main">Immedok</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_484_14" target="main">Info</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_2214_16" target="main">Initcolor</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_2157_16" target="main">Initpair</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_100_16" target="main">Initscr</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1902_14" target="main">Init_Color</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1883_14" target="main">Init_Pair</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_657_14" target="main">Init_Screen</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1670_14" target="main">Init_Soft_Label_Keys</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_660_14" target="main">Init_Windows</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1542_14" target="main">Insert - terminal_interface-curses.ads:1542</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1548_14" target="main">Insert - terminal_interface-curses.ads:1548</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1560_14" target="main">Insert - terminal_interface-curses.ads:1560</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1569_14" target="main">Insert - terminal_interface-curses.ads:1569</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1375_14" target="main">Insert_Delete_Lines</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1389_14" target="main">Insert_Line</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_872_16" target="main">Intrflush</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_123_16" target="main">Isendwin</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_673_13" target="main">Is_End_Window</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_945_13" target="main">Is_Function_Key</a>
+<li><a href="../terminal_interface-curses-panels__ads.htm#ref_124_13" target="main">Is_Hidden</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_852_16" target="main">Is_Keypad</a>
+<li><a href="../terminal_interface-curses-terminfo__adb.htm#ref_51_13" target="main">Is_MinusOne_Pointer</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_990_16" target="main">Is_New</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_765_13" target="main">Is_New_Page</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1037_16" target="main">Is_Scroll_Ok</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1331_13" target="main">Is_Touched - terminal_interface-curses.ads:1331</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1336_13" target="main">Is_Touched - terminal_interface-curses.ads:1336</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_110_16" target="main">Itemname - terminal_interface-curses-menus.adb:110</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_217_16" target="main">Itemname - terminal_interface-curses-menus.adb:217</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_225_16" target="main">Itemname - terminal_interface-curses-menus.adb:225</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_622_13" target="main">Items</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_628_13" target="main">Item_Count</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_749_16" target="main">Item_Init</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_199_16" target="main">Item_Opts</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_184_16" target="main">Item_Opts_Off</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_181_16" target="main">Item_Opts_On</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_757_16" target="main">Item_Term</a>
+<li><a href="../terminal_interface-curses-menus-item_user_data__adb.htm#ref_59_16" target="main">Item_Userptr</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_143_16" target="main">Item_Val</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_156_16" target="main">Item_Vis</a>
+</ul></body></html>
diff --git a/doc/html/ada/funcs/K.htm b/doc/html/ada/funcs/K.htm
index a243874f5a46..47e6835306af 100644
--- a/doc/html/ada/funcs/K.htm
+++ b/doc/html/ada/funcs/K.htm
@@ -1,18 +1,18 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<HTML>
-<HEAD>
-<TITLE>K</TITLE>
+<html>
+<head>
+<title>K</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</HEAD>
-<BODY>
-<H2>Functions - K</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_64_16" TARGET="main">Keyname</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1999_16" TARGET="main">Keyok</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_841_16" TARGET="main">Keypad</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1781_14" TARGET="main">Key_Name - terminal_interface-curses.ads:1781</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1787_13" TARGET="main">Key_Name - terminal_interface-curses.ads:1787</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2081_16" TARGET="main">Killchar</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1828_13" TARGET="main">Kill_Character</A>
-</UL></BODY></HTML>
+</head>
+<body>
+<h2>Functions - K</h2>
+<a href="../funcs.htm" target="_self">[index]</a>
+<ul compact type="disc">
+<li><a href="../terminal_interface-curses__adb.htm#ref_64_16" target="main">Keyname</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1999_16" target="main">Keyok</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_841_16" target="main">Keypad</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1781_14" target="main">Key_Name - terminal_interface-curses.ads:1781</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1787_13" target="main">Key_Name - terminal_interface-curses.ads:1787</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_2081_16" target="main">Killchar</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1828_13" target="main">Kill_Character</a>
+</ul></body></html>
diff --git a/doc/html/ada/funcs/L.htm b/doc/html/ada/funcs/L.htm
index 2720063c386d..b5929e6b6489 100644
--- a/doc/html/ada/funcs/L.htm
+++ b/doc/html/ada/funcs/L.htm
@@ -1,25 +1,25 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<HTML>
-<HEAD>
-<TITLE>L</TITLE>
+<html>
+<head>
+<title>L</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</HEAD>
-<BODY>
-<H2>Functions - L</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1173_14" TARGET="main">Leave_Cursor_After_Update</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1004_16" TARGET="main">Leave_Ok</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_102_13" TARGET="main">Line - terminal_interface-curses-text_io.ads:102</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_103_13" TARGET="main">Line - terminal_interface-curses-text_io.ads:103</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_551_13" TARGET="main">Lines</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2357_16" TARGET="main">LINES_As_Function</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_78_13" TARGET="main">Line_Length - terminal_interface-curses-text_io.ads:78</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_79_13" TARGET="main">Line_Length - terminal_interface-curses-text_io.ads:79</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_330_13" TARGET="main">Link</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_152_16" TARGET="main">Lnk_Field</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2123_16" TARGET="main">Longname - terminal_interface-curses.adb:2123</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2131_16" TARGET="main">Longname - terminal_interface-curses.adb:2131</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1848_14" TARGET="main">Long_Name - terminal_interface-curses.ads:1848</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1852_13" TARGET="main">Long_Name - terminal_interface-curses.ads:1852</A>
-</UL></BODY></HTML>
+</head>
+<body>
+<h2>Functions - L</h2>
+<a href="../funcs.htm" target="_self">[index]</a>
+<ul compact type="disc">
+<li><a href="../terminal_interface-curses__ads.htm#ref_1173_14" target="main">Leave_Cursor_After_Update</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1004_16" target="main">Leave_Ok</a>
+<li><a href="../terminal_interface-curses-text_io__ads.htm#ref_102_13" target="main">Line - terminal_interface-curses-text_io.ads:102</a>
+<li><a href="../terminal_interface-curses-text_io__ads.htm#ref_103_13" target="main">Line - terminal_interface-curses-text_io.ads:103</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_551_13" target="main">Lines</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_2357_16" target="main">LINES_As_Function</a>
+<li><a href="../terminal_interface-curses-text_io__ads.htm#ref_78_13" target="main">Line_Length - terminal_interface-curses-text_io.ads:78</a>
+<li><a href="../terminal_interface-curses-text_io__ads.htm#ref_79_13" target="main">Line_Length - terminal_interface-curses-text_io.ads:79</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_330_13" target="main">Link</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_152_16" target="main">Lnk_Field</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_2123_16" target="main">Longname - terminal_interface-curses.adb:2123</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_2131_16" target="main">Longname - terminal_interface-curses.adb:2131</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1848_14" target="main">Long_Name - terminal_interface-curses.ads:1848</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1852_13" target="main">Long_Name - terminal_interface-curses.ads:1852</a>
+</ul></body></html>
diff --git a/doc/html/ada/funcs/M.htm b/doc/html/ada/funcs/M.htm
index 68b1d5150e7e..00d10119c828 100644
--- a/doc/html/ada/funcs/M.htm
+++ b/doc/html/ada/funcs/M.htm
@@ -1,55 +1,55 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<HTML>
-<HEAD>
-<TITLE>M</TITLE>
+<html>
+<head>
+<title>M</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</HEAD>
-<BODY>
-<H2>Functions - M</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_163_13" TARGET="main">Make_Arg</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_408_14" TARGET="main">Mark - terminal_interface-curses-menus.ads:408</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_412_14" TARGET="main">Mark - terminal_interface-curses-menus.ads:412</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_529_16" TARGET="main">Menu_Back - terminal_interface-curses-menus.adb:529</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_539_16" TARGET="main">Menu_Back - terminal_interface-curses-menus.adb:539</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_692_16" TARGET="main">Menu_Fmt</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_493_16" TARGET="main">Menu_Fore - terminal_interface-curses-menus.adb:493</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_503_16" TARGET="main">Menu_Fore - terminal_interface-curses-menus.adb:503</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_565_16" TARGET="main">Menu_Grey - terminal_interface-curses-menus.adb:565</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_575_16" TARGET="main">Menu_Grey - terminal_interface-curses-menus.adb:575</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_765_16" TARGET="main">Menu_Init</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_358_16" TARGET="main">Menu_Opts</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_343_16" TARGET="main">Menu_Opts_Off</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_340_16" TARGET="main">Menu_Opts_On</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_596_16" TARGET="main">Menu_Pad</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_407_16" TARGET="main">Menu_Sub</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_773_16" TARGET="main">Menu_Term</A>
-<LI><A HREF="../terminal_interface-curses-menus-menu_user_data__adb.htm#ref_60_16" TARGET="main">Menu_Userptr</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_386_16" TARGET="main">Menu_Win</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_830_16" TARGET="main">Meta</A>
-<LI><A HREF="../terminal_interface-curses-mouse__adb.htm#ref_109_16" TARGET="main">MMask</A>
-<LI><A HREF="../terminal_interface-curses-mouse__adb.htm#ref_212_16" TARGET="main">Mouseinterval</A>
-<LI><A HREF="../terminal_interface-curses-mouse__adb.htm#ref_51_16" TARGET="main">Mouse_Avail</A>
-<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_154_13" TARGET="main">Mouse_Interval</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_614_14" TARGET="main">Move - terminal_interface-curses-forms.ads:614</A>
-<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_117_14" TARGET="main">Move - terminal_interface-curses-panels.ads:117</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_693_16" TARGET="main">Move - terminal_interface-curses-forms.adb:693</A>
-<LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_133_16" TARGET="main">Move - terminal_interface-curses-panels.adb:133</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_682_14" TARGET="main">Move_Cursor</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_797_14" TARGET="main">Move_Derived_Window</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_790_14" TARGET="main">Move_Window</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_351_16" TARGET="main">Mvderwin</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_176_16" TARGET="main">mvwaddch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1589_16" TARGET="main">Mvwdelch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_337_16" TARGET="main">Mvwin</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1613_16" TARGET="main">Mvwinch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1638_16" TARGET="main">Mvwinsch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1678_16" TARGET="main">Mvwinsnstr</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_806_16" TARGET="main">M_Post - terminal_interface-curses-forms.adb:806</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_312_16" TARGET="main">M_Post - terminal_interface-curses-menus.adb:312</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_569_16" TARGET="main">M_Scale - terminal_interface-curses-forms.adb:569</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_420_16" TARGET="main">M_Scale - terminal_interface-curses-menus.adb:420</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_808_16" TARGET="main">M_Unpost - terminal_interface-curses-forms.adb:808</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_314_16" TARGET="main">M_Unpost - terminal_interface-curses-menus.adb:314</A>
-</UL></BODY></HTML>
+</head>
+<body>
+<h2>Functions - M</h2>
+<a href="../funcs.htm" target="_self">[index]</a>
+<ul compact type="disc">
+<li><a href="../terminal_interface-curses-forms-field_types__ads.htm#ref_163_13" target="main">Make_Arg</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_408_14" target="main">Mark - terminal_interface-curses-menus.ads:408</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_412_14" target="main">Mark - terminal_interface-curses-menus.ads:412</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_529_16" target="main">Menu_Back - terminal_interface-curses-menus.adb:529</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_539_16" target="main">Menu_Back - terminal_interface-curses-menus.adb:539</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_692_16" target="main">Menu_Fmt</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_493_16" target="main">Menu_Fore - terminal_interface-curses-menus.adb:493</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_503_16" target="main">Menu_Fore - terminal_interface-curses-menus.adb:503</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_565_16" target="main">Menu_Grey - terminal_interface-curses-menus.adb:565</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_575_16" target="main">Menu_Grey - terminal_interface-curses-menus.adb:575</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_765_16" target="main">Menu_Init</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_358_16" target="main">Menu_Opts</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_343_16" target="main">Menu_Opts_Off</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_340_16" target="main">Menu_Opts_On</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_596_16" target="main">Menu_Pad</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_407_16" target="main">Menu_Sub</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_773_16" target="main">Menu_Term</a>
+<li><a href="../terminal_interface-curses-menus-menu_user_data__adb.htm#ref_60_16" target="main">Menu_Userptr</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_386_16" target="main">Menu_Win</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_830_16" target="main">Meta</a>
+<li><a href="../terminal_interface-curses-mouse__adb.htm#ref_109_16" target="main">MMask</a>
+<li><a href="../terminal_interface-curses-mouse__adb.htm#ref_212_16" target="main">Mouseinterval</a>
+<li><a href="../terminal_interface-curses-mouse__adb.htm#ref_51_16" target="main">Mouse_Avail</a>
+<li><a href="../terminal_interface-curses-mouse__ads.htm#ref_154_13" target="main">Mouse_Interval</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_614_14" target="main">Move - terminal_interface-curses-forms.ads:614</a>
+<li><a href="../terminal_interface-curses-panels__ads.htm#ref_117_14" target="main">Move - terminal_interface-curses-panels.ads:117</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_693_16" target="main">Move - terminal_interface-curses-forms.adb:693</a>
+<li><a href="../terminal_interface-curses-panels__adb.htm#ref_133_16" target="main">Move - terminal_interface-curses-panels.adb:133</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_682_14" target="main">Move_Cursor</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_797_14" target="main">Move_Derived_Window</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_790_14" target="main">Move_Window</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_351_16" target="main">Mvderwin</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_176_16" target="main">mvwaddch</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1589_16" target="main">Mvwdelch</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_337_16" target="main">Mvwin</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1613_16" target="main">Mvwinch</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1638_16" target="main">Mvwinsch</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1678_16" target="main">Mvwinsnstr</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_806_16" target="main">M_Post - terminal_interface-curses-forms.adb:806</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_312_16" target="main">M_Post - terminal_interface-curses-menus.adb:312</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_569_16" target="main">M_Scale - terminal_interface-curses-forms.adb:569</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_420_16" target="main">M_Scale - terminal_interface-curses-menus.adb:420</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_808_16" target="main">M_Unpost - terminal_interface-curses-forms.adb:808</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_314_16" target="main">M_Unpost - terminal_interface-curses-menus.adb:314</a>
+</ul></body></html>
diff --git a/doc/html/ada/funcs/N.htm b/doc/html/ada/funcs/N.htm
index 861f17a2e00b..cf1300605805 100644
--- a/doc/html/ada/funcs/N.htm
+++ b/doc/html/ada/funcs/N.htm
@@ -1,39 +1,39 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<HTML>
-<HEAD>
-<TITLE>N</TITLE>
+<html>
+<head>
+<title>N</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</HEAD>
-<BODY>
-<H2>Functions - N</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_264_14" TARGET="main">Name - terminal_interface-curses-menus.ads:264</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_267_14" TARGET="main">Name - terminal_interface-curses-menus.ads:267</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2347_16" TARGET="main">Napms</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1977_14" TARGET="main">Nap_Milli_Seconds</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_100_16" TARGET="main">Newfield</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_708_16" TARGET="main">NewForm</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_80_16" TARGET="main">Newitem</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_824_16" TARGET="main">Newmenu</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1434_16" TARGET="main">Newpad</A>
-<LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_52_16" TARGET="main">Newpanel</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_235_16" TARGET="main">Newwin</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_223_13" TARGET="main">New_Fieldtype</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_87_14" TARGET="main">New_Line - terminal_interface-curses-text_io.ads:87</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_88_14" TARGET="main">New_Line - terminal_interface-curses-text_io.ads:88</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1438_13" TARGET="main">New_Pad</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_90_14" TARGET="main">New_Page - terminal_interface-curses-text_io.ads:90</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_91_14" TARGET="main">New_Page - terminal_interface-curses-text_io.ads:91</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_194_13" TARGET="main">Next_Router</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_949_16" TARGET="main">NL</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_774_16" TARGET="main">NoCbreak</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_903_16" TARGET="main">Nodelay</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_812_16" TARGET="main">NoEcho</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_951_16" TARGET="main">NoNL</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_793_16" TARGET="main">NoRaw</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_936_16" TARGET="main">Notimeout</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_886_17" TARGET="main">No_Qiflush</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_560_13" TARGET="main">Number_Of_Colors</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_563_13" TARGET="main">Number_Of_Color_Pairs</A>
-</UL></BODY></HTML>
+</head>
+<body>
+<h2>Functions - N</h2>
+<a href="../funcs.htm" target="_self">[index]</a>
+<ul compact type="disc">
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_264_14" target="main">Name - terminal_interface-curses-menus.ads:264</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_267_14" target="main">Name - terminal_interface-curses-menus.ads:267</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_2347_16" target="main">Napms</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1977_14" target="main">Nap_Milli_Seconds</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_100_16" target="main">Newfield</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_708_16" target="main">NewForm</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_80_16" target="main">Newitem</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_824_16" target="main">Newmenu</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1434_16" target="main">Newpad</a>
+<li><a href="../terminal_interface-curses-panels__adb.htm#ref_52_16" target="main">Newpanel</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_235_16" target="main">Newwin</a>
+<li><a href="../terminal_interface-curses-forms-field_types__ads.htm#ref_223_13" target="main">New_Fieldtype</a>
+<li><a href="../terminal_interface-curses-text_io__ads.htm#ref_87_14" target="main">New_Line - terminal_interface-curses-text_io.ads:87</a>
+<li><a href="../terminal_interface-curses-text_io__ads.htm#ref_88_14" target="main">New_Line - terminal_interface-curses-text_io.ads:88</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1438_13" target="main">New_Pad</a>
+<li><a href="../terminal_interface-curses-text_io__ads.htm#ref_90_14" target="main">New_Page - terminal_interface-curses-text_io.ads:90</a>
+<li><a href="../terminal_interface-curses-text_io__ads.htm#ref_91_14" target="main">New_Page - terminal_interface-curses-text_io.ads:91</a>
+<li><a href="../terminal_interface-curses-forms-field_types__ads.htm#ref_194_13" target="main">Next_Router</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_949_16" target="main">NL</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_774_16" target="main">NoCbreak</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_903_16" target="main">Nodelay</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_812_16" target="main">NoEcho</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_951_16" target="main">NoNL</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_793_16" target="main">NoRaw</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_936_16" target="main">Notimeout</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_886_17" target="main">No_Qiflush</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_560_13" target="main">Number_Of_Colors</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_563_13" target="main">Number_Of_Color_Pairs</a>
+</ul></body></html>
diff --git a/doc/html/ada/funcs/O.htm b/doc/html/ada/funcs/O.htm
index 77311503b391..6ade14a5de83 100644
--- a/doc/html/ada/funcs/O.htm
+++ b/doc/html/ada/funcs/O.htm
@@ -1,16 +1,16 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<HTML>
-<HEAD>
-<TITLE>O</TITLE>
+<html>
+<head>
+<title>O</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</HEAD>
-<BODY>
-<H2>Functions - O</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses-text_io-aux__adb.htm#ref_60_17" TARGET="main">Output</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1365_14" TARGET="main">Overlay - terminal_interface-curses.ads:1365</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1317_16" TARGET="main">Overlay - terminal_interface-curses.adb:1317</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1359_14" TARGET="main">Overwrite - terminal_interface-curses.ads:1359</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1305_16" TARGET="main">Overwrite - terminal_interface-curses.adb:1305</A>
-</UL></BODY></HTML>
+</head>
+<body>
+<h2>Functions - O</h2>
+<a href="../funcs.htm" target="_self">[index]</a>
+<ul compact type="disc">
+<li><a href="../terminal_interface-curses-text_io-aux__adb.htm#ref_60_17" target="main">Output</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1365_14" target="main">Overlay - terminal_interface-curses.ads:1365</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1317_16" target="main">Overlay - terminal_interface-curses.adb:1317</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1359_14" target="main">Overwrite - terminal_interface-curses.ads:1359</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1305_16" target="main">Overwrite - terminal_interface-curses.adb:1305</a>
+</ul></body></html>
diff --git a/doc/html/ada/funcs/P.htm b/doc/html/ada/funcs/P.htm
index f34fe5a93683..d52c66dc003c 100644
--- a/doc/html/ada/funcs/P.htm
+++ b/doc/html/ada/funcs/P.htm
@@ -1,63 +1,63 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<HTML>
-<HEAD>
-<TITLE>P</TITLE>
+<html>
+<head>
+<title>P</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</HEAD>
-<BODY>
-<H2>Functions - P</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_474_14" TARGET="main">Pad_Character - terminal_interface-curses-forms.ads:474</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_489_14" TARGET="main">Pad_Character - terminal_interface-curses-menus.ads:489</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_742_13" TARGET="main">Page</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_81_13" TARGET="main">Page_Length - terminal_interface-curses-text_io.ads:81</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_82_13" TARGET="main">Page_Length - terminal_interface-curses-text_io.ads:82</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2182_16" TARGET="main">Paircontent</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1890_14" TARGET="main">Pair_Content</A>
-<LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_145_16" TARGET="main">Panel_Hidden</A>
-<LI><A HREF="../terminal_interface-curses-panels-user_data__adb.htm#ref_66_16" TARGET="main">Panel_Userptr</A>
-<LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_106_16" TARGET="main">Panel_Win</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_526_14" TARGET="main">Pattern</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1540_16" TARGET="main">Pechochar</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1523_13" TARGET="main">Peek - terminal_interface-curses.ads:1523</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1529_13" TARGET="main">Peek - terminal_interface-curses.ads:1529</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1585_14" TARGET="main">Peek - terminal_interface-curses.ads:1585</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1594_14" TARGET="main">Peek - terminal_interface-curses.ads:1594</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1609_14" TARGET="main">Peek - terminal_interface-curses.ads:1609</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1618_14" TARGET="main">Peek - terminal_interface-curses.ads:1618</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1514_16" TARGET="main">Pnoutrefresh</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_685_14" TARGET="main">Position_Cursor - terminal_interface-curses-forms.ads:685</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_393_14" TARGET="main">Position_Cursor - terminal_interface-curses-menus.ads:393</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_674_14" TARGET="main">Post - terminal_interface-curses-forms.ads:674</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_321_14" TARGET="main">Post - terminal_interface-curses-menus.ads:321</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_827_16" TARGET="main">Pos_Form_Cursor</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_433_16" TARGET="main">Pos_Menu_Cursor</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1483_16" TARGET="main">Prefresh</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_202_13" TARGET="main">Prev_Router</A>
-<LI><A HREF="../terminal_interface-curses-text_io-complex_io__ads.htm#ref_55_14" TARGET="main">Put - terminal_interface-curses-text_io-complex_io.ads:55</A>
-<LI><A HREF="../terminal_interface-curses-text_io-complex_io__ads.htm#ref_62_14" TARGET="main">Put - terminal_interface-curses-text_io-complex_io.ads:62</A>
-<LI><A HREF="../terminal_interface-curses-text_io-decimal_io__ads.htm#ref_51_14" TARGET="main">Put - terminal_interface-curses-text_io-decimal_io.ads:51</A>
-<LI><A HREF="../terminal_interface-curses-text_io-decimal_io__ads.htm#ref_58_14" TARGET="main">Put - terminal_interface-curses-text_io-decimal_io.ads:58</A>
-<LI><A HREF="../terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_50_14" TARGET="main">Put - terminal_interface-curses-text_io-enumeration_io.ads:50</A>
-<LI><A HREF="../terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_56_14" TARGET="main">Put - terminal_interface-curses-text_io-enumeration_io.ads:56</A>
-<LI><A HREF="../terminal_interface-curses-text_io-fixed_io__ads.htm#ref_51_14" TARGET="main">Put - terminal_interface-curses-text_io-fixed_io.ads:51</A>
-<LI><A HREF="../terminal_interface-curses-text_io-fixed_io__ads.htm#ref_58_14" TARGET="main">Put - terminal_interface-curses-text_io-fixed_io.ads:58</A>
-<LI><A HREF="../terminal_interface-curses-text_io-float_io__ads.htm#ref_51_14" TARGET="main">Put - terminal_interface-curses-text_io-float_io.ads:51</A>
-<LI><A HREF="../terminal_interface-curses-text_io-float_io__ads.htm#ref_58_14" TARGET="main">Put - terminal_interface-curses-text_io-float_io.ads:58</A>
-<LI><A HREF="../terminal_interface-curses-text_io-integer_io__ads.htm#ref_50_14" TARGET="main">Put - terminal_interface-curses-text_io-integer_io.ads:50</A>
-<LI><A HREF="../terminal_interface-curses-text_io-integer_io__ads.htm#ref_56_14" TARGET="main">Put - terminal_interface-curses-text_io-integer_io.ads:56</A>
-<LI><A HREF="../terminal_interface-curses-text_io-modular_io__ads.htm#ref_50_14" TARGET="main">Put - terminal_interface-curses-text_io-modular_io.ads:50</A>
-<LI><A HREF="../terminal_interface-curses-text_io-modular_io__ads.htm#ref_56_14" TARGET="main">Put - terminal_interface-curses-text_io-modular_io.ads:56</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_109_14" TARGET="main">Put - terminal_interface-curses-text_io.ads:109</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_110_14" TARGET="main">Put - terminal_interface-curses-text_io.ads:110</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_116_14" TARGET="main">Put - terminal_interface-curses-text_io.ads:116</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_117_14" TARGET="main">Put - terminal_interface-curses-text_io.ads:117</A>
-<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#ref_144_16" TARGET="main">putp</A>
-<LI><A HREF="../terminal_interface-curses-putwin__adb.htm#ref_54_16" TARGET="main">putwin</A>
-<LI><A HREF="../terminal_interface-curses-text_io-aux__ads.htm#ref_49_14" TARGET="main">Put_Buf</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_119_14" TARGET="main">Put_Line - terminal_interface-curses-text_io.ads:119</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_123_14" TARGET="main">Put_Line - terminal_interface-curses-text_io.ads:123</A>
-<LI><A HREF="../terminal_interface-curses-terminfo__ads.htm#ref_77_14" TARGET="main">Put_String</A>
-<LI><A HREF="../terminal_interface-curses-putwin__ads.htm#ref_46_14" TARGET="main">Put_Window</A>
-</UL></BODY></HTML>
+</head>
+<body>
+<h2>Functions - P</h2>
+<a href="../funcs.htm" target="_self">[index]</a>
+<ul compact type="disc">
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_474_14" target="main">Pad_Character - terminal_interface-curses-forms.ads:474</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_489_14" target="main">Pad_Character - terminal_interface-curses-menus.ads:489</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_742_13" target="main">Page</a>
+<li><a href="../terminal_interface-curses-text_io__ads.htm#ref_81_13" target="main">Page_Length - terminal_interface-curses-text_io.ads:81</a>
+<li><a href="../terminal_interface-curses-text_io__ads.htm#ref_82_13" target="main">Page_Length - terminal_interface-curses-text_io.ads:82</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_2182_16" target="main">Paircontent</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1890_14" target="main">Pair_Content</a>
+<li><a href="../terminal_interface-curses-panels__adb.htm#ref_145_16" target="main">Panel_Hidden</a>
+<li><a href="../terminal_interface-curses-panels-user_data__adb.htm#ref_66_16" target="main">Panel_Userptr</a>
+<li><a href="../terminal_interface-curses-panels__adb.htm#ref_106_16" target="main">Panel_Win</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_526_14" target="main">Pattern</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1540_16" target="main">Pechochar</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1523_13" target="main">Peek - terminal_interface-curses.ads:1523</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1529_13" target="main">Peek - terminal_interface-curses.ads:1529</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1585_14" target="main">Peek - terminal_interface-curses.ads:1585</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1594_14" target="main">Peek - terminal_interface-curses.ads:1594</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1609_14" target="main">Peek - terminal_interface-curses.ads:1609</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1618_14" target="main">Peek - terminal_interface-curses.ads:1618</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1514_16" target="main">Pnoutrefresh</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_685_14" target="main">Position_Cursor - terminal_interface-curses-forms.ads:685</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_393_14" target="main">Position_Cursor - terminal_interface-curses-menus.ads:393</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_674_14" target="main">Post - terminal_interface-curses-forms.ads:674</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_321_14" target="main">Post - terminal_interface-curses-menus.ads:321</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_827_16" target="main">Pos_Form_Cursor</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_433_16" target="main">Pos_Menu_Cursor</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1483_16" target="main">Prefresh</a>
+<li><a href="../terminal_interface-curses-forms-field_types__ads.htm#ref_202_13" target="main">Prev_Router</a>
+<li><a href="../terminal_interface-curses-text_io-complex_io__ads.htm#ref_55_14" target="main">Put - terminal_interface-curses-text_io-complex_io.ads:55</a>
+<li><a href="../terminal_interface-curses-text_io-complex_io__ads.htm#ref_62_14" target="main">Put - terminal_interface-curses-text_io-complex_io.ads:62</a>
+<li><a href="../terminal_interface-curses-text_io-decimal_io__ads.htm#ref_51_14" target="main">Put - terminal_interface-curses-text_io-decimal_io.ads:51</a>
+<li><a href="../terminal_interface-curses-text_io-decimal_io__ads.htm#ref_58_14" target="main">Put - terminal_interface-curses-text_io-decimal_io.ads:58</a>
+<li><a href="../terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_50_14" target="main">Put - terminal_interface-curses-text_io-enumeration_io.ads:50</a>
+<li><a href="../terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_56_14" target="main">Put - terminal_interface-curses-text_io-enumeration_io.ads:56</a>
+<li><a href="../terminal_interface-curses-text_io-fixed_io__ads.htm#ref_51_14" target="main">Put - terminal_interface-curses-text_io-fixed_io.ads:51</a>
+<li><a href="../terminal_interface-curses-text_io-fixed_io__ads.htm#ref_58_14" target="main">Put - terminal_interface-curses-text_io-fixed_io.ads:58</a>
+<li><a href="../terminal_interface-curses-text_io-float_io__ads.htm#ref_51_14" target="main">Put - terminal_interface-curses-text_io-float_io.ads:51</a>
+<li><a href="../terminal_interface-curses-text_io-float_io__ads.htm#ref_58_14" target="main">Put - terminal_interface-curses-text_io-float_io.ads:58</a>
+<li><a href="../terminal_interface-curses-text_io-integer_io__ads.htm#ref_50_14" target="main">Put - terminal_interface-curses-text_io-integer_io.ads:50</a>
+<li><a href="../terminal_interface-curses-text_io-integer_io__ads.htm#ref_56_14" target="main">Put - terminal_interface-curses-text_io-integer_io.ads:56</a>
+<li><a href="../terminal_interface-curses-text_io-modular_io__ads.htm#ref_50_14" target="main">Put - terminal_interface-curses-text_io-modular_io.ads:50</a>
+<li><a href="../terminal_interface-curses-text_io-modular_io__ads.htm#ref_56_14" target="main">Put - terminal_interface-curses-text_io-modular_io.ads:56</a>
+<li><a href="../terminal_interface-curses-text_io__ads.htm#ref_109_14" target="main">Put - terminal_interface-curses-text_io.ads:109</a>
+<li><a href="../terminal_interface-curses-text_io__ads.htm#ref_110_14" target="main">Put - terminal_interface-curses-text_io.ads:110</a>
+<li><a href="../terminal_interface-curses-text_io__ads.htm#ref_116_14" target="main">Put - terminal_interface-curses-text_io.ads:116</a>
+<li><a href="../terminal_interface-curses-text_io__ads.htm#ref_117_14" target="main">Put - terminal_interface-curses-text_io.ads:117</a>
+<li><a href="../terminal_interface-curses-terminfo__adb.htm#ref_144_16" target="main">putp</a>
+<li><a href="../terminal_interface-curses-putwin__adb.htm#ref_54_16" target="main">putwin</a>
+<li><a href="../terminal_interface-curses-text_io-aux__ads.htm#ref_49_14" target="main">Put_Buf</a>
+<li><a href="../terminal_interface-curses-text_io__ads.htm#ref_119_14" target="main">Put_Line - terminal_interface-curses-text_io.ads:119</a>
+<li><a href="../terminal_interface-curses-text_io__ads.htm#ref_123_14" target="main">Put_Line - terminal_interface-curses-text_io.ads:123</a>
+<li><a href="../terminal_interface-curses-terminfo__ads.htm#ref_77_14" target="main">Put_String</a>
+<li><a href="../terminal_interface-curses-putwin__ads.htm#ref_46_14" target="main">Put_Window</a>
+</ul></body></html>
diff --git a/doc/html/ada/funcs/Q.htm b/doc/html/ada/funcs/Q.htm
index 7810b95938b4..bcfee70d90ca 100644
--- a/doc/html/ada/funcs/Q.htm
+++ b/doc/html/ada/funcs/Q.htm
@@ -1,12 +1,12 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<HTML>
-<HEAD>
-<TITLE>Q</TITLE>
+<html>
+<head>
+<title>Q</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</HEAD>
-<BODY>
-<H2>Functions - Q</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_884_17" TARGET="main">Qiflush</A>
-</UL></BODY></HTML>
+</head>
+<body>
+<h2>Functions - Q</h2>
+<a href="../funcs.htm" target="_self">[index]</a>
+<ul compact type="disc">
+<li><a href="../terminal_interface-curses__adb.htm#ref_884_17" target="main">Qiflush</a>
+</ul></body></html>
diff --git a/doc/html/ada/funcs/R.htm b/doc/html/ada/funcs/R.htm
index 128f8e254ada..b4af87ecf9c6 100644
--- a/doc/html/ada/funcs/R.htm
+++ b/doc/html/ada/funcs/R.htm
@@ -1,43 +1,43 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<HTML>
-<HEAD>
-<TITLE>R</TITLE>
+<html>
+<head>
+<title>R</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</HEAD>
-<BODY>
-<H2>Functions - R</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_791_16" TARGET="main">Raw</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_591_14" TARGET="main">Redefine - terminal_interface-curses-forms.ads:591</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_612_14" TARGET="main">Redefine - terminal_interface-curses-menus.ads:612</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1230_14" TARGET="main">Redraw - terminal_interface-curses.ads:1230</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1234_14" TARGET="main">Redraw - terminal_interface-curses.ads:1234</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1093_16" TARGET="main">Redrawwin</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1216_14" TARGET="main">Refresh - terminal_interface-curses.ads:1216</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1454_14" TARGET="main">Refresh - terminal_interface-curses.ads:1454</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1683_14" TARGET="main">Refresh_Soft_Label_Keys</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1688_14" TARGET="main">Refresh_Soft_Label_Keys_Without_Update</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1223_14" TARGET="main">Refresh_Without_Update - terminal_interface-curses.ads:1223</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1466_14" TARGET="main">Refresh_Without_Update - terminal_interface-curses.ads:1466</A>
-<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_94_14" TARGET="main">Register_Reportable_Event</A>
-<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_103_14" TARGET="main">Register_Reportable_Events</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_78_14" TARGET="main">Release</A>
-<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_111_14" TARGET="main">Replace</A>
-<LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_120_16" TARGET="main">Replace_Pan</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_278_14" TARGET="main">Request_Name - terminal_interface-curses-forms.ads:278</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_281_14" TARGET="main">Request_Name - terminal_interface-curses-forms.ads:281</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_102_14" TARGET="main">Request_Name - terminal_interface-curses-menus.ads:102</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_105_14" TARGET="main">Request_Name - terminal_interface-curses-menus.ads:105</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_62_16" TARGET="main">Request_Name - terminal_interface-curses-menus.adb:62</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_70_16" TARGET="main">Request_Name - terminal_interface-curses-menus.adb:70</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2312_16" TARGET="main">Resetty</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1936_14" TARGET="main">Reset_Curses_Mode</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2284_16" TARGET="main">Reset_Prog_Mode</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2286_16" TARGET="main">Reset_Shell_Mode</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1947_14" TARGET="main">Reset_Terminal_State</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_2084_14" TARGET="main">Resize</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1709_14" TARGET="main">Restore_Soft_Label_Keys</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2323_16" TARGET="main">Ripoffline</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1960_14" TARGET="main">Rip_Off_Lines</A>
-</UL></BODY></HTML>
+</head>
+<body>
+<h2>Functions - R</h2>
+<a href="../funcs.htm" target="_self">[index]</a>
+<ul compact type="disc">
+<li><a href="../terminal_interface-curses__adb.htm#ref_791_16" target="main">Raw</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_591_14" target="main">Redefine - terminal_interface-curses-forms.ads:591</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_612_14" target="main">Redefine - terminal_interface-curses-menus.ads:612</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1230_14" target="main">Redraw - terminal_interface-curses.ads:1230</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1234_14" target="main">Redraw - terminal_interface-curses.ads:1234</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1093_16" target="main">Redrawwin</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1216_14" target="main">Refresh - terminal_interface-curses.ads:1216</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1454_14" target="main">Refresh - terminal_interface-curses.ads:1454</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1683_14" target="main">Refresh_Soft_Label_Keys</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1688_14" target="main">Refresh_Soft_Label_Keys_Without_Update</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1223_14" target="main">Refresh_Without_Update - terminal_interface-curses.ads:1223</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1466_14" target="main">Refresh_Without_Update - terminal_interface-curses.ads:1466</a>
+<li><a href="../terminal_interface-curses-mouse__ads.htm#ref_94_14" target="main">Register_Reportable_Event</a>
+<li><a href="../terminal_interface-curses-mouse__ads.htm#ref_103_14" target="main">Register_Reportable_Events</a>
+<li><a href="../terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_78_14" target="main">Release</a>
+<li><a href="../terminal_interface-curses-panels__ads.htm#ref_111_14" target="main">Replace</a>
+<li><a href="../terminal_interface-curses-panels__adb.htm#ref_120_16" target="main">Replace_Pan</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_278_14" target="main">Request_Name - terminal_interface-curses-forms.ads:278</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_281_14" target="main">Request_Name - terminal_interface-curses-forms.ads:281</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_102_14" target="main">Request_Name - terminal_interface-curses-menus.ads:102</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_105_14" target="main">Request_Name - terminal_interface-curses-menus.ads:105</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_62_16" target="main">Request_Name - terminal_interface-curses-menus.adb:62</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_70_16" target="main">Request_Name - terminal_interface-curses-menus.adb:70</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_2312_16" target="main">Resetty</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1936_14" target="main">Reset_Curses_Mode</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_2284_16" target="main">Reset_Prog_Mode</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_2286_16" target="main">Reset_Shell_Mode</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1947_14" target="main">Reset_Terminal_State</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_2084_14" target="main">Resize</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1709_14" target="main">Restore_Soft_Label_Keys</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_2323_16" target="main">Ripoffline</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1960_14" target="main">Rip_Off_Lines</a>
+</ul></body></html>
diff --git a/doc/html/ada/funcs/S.htm b/doc/html/ada/funcs/S.htm
index 937584d6879e..86dad7f4eabd 100644
--- a/doc/html/ada/funcs/S.htm
+++ b/doc/html/ada/funcs/S.htm
@@ -1,195 +1,195 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<HTML>
-<HEAD>
-<TITLE>S</TITLE>
+<html>
+<head>
+<title>S</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</HEAD>
-<BODY>
-<H2>Functions - S</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2302_16" TARGET="main">Savetty</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1930_14" TARGET="main">Save_Curses_Mode</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1942_14" TARGET="main">Save_Terminal_State</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_529_14" TARGET="main">Scale - terminal_interface-curses-forms.ads:529</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_382_14" TARGET="main">Scale - terminal_interface-curses-menus.ads:382</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_2040_14" TARGET="main">Screen_Dump_To_File</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_2048_14" TARGET="main">Screen_Init_From_File</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_2044_14" TARGET="main">Screen_Restore_From_File</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_2052_14" TARGET="main">Screen_Set_File</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1493_14" TARGET="main">Scroll</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1193_13" TARGET="main">Scrolling_Allowed</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1026_16" TARGET="main">Scrollok</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2490_16" TARGET="main">scr_dump</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2516_16" TARGET="main">scr_init</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2503_16" TARGET="main">scr_restore</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2529_16" TARGET="main">scr_set</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_448_14" TARGET="main">Set_Background - terminal_interface-curses-forms.ads:448</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_442_14" TARGET="main">Set_Background - terminal_interface-curses-menus.ads:442</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1279_14" TARGET="main">Set_Background - terminal_interface-curses.ads:1279</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_356_14" TARGET="main">Set_Buffer</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1057_14" TARGET="main">Set_Cbreak_Mode</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_988_14" TARGET="main">Set_Character_Attributes</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_93_14" TARGET="main">Set_Col - terminal_interface-curses-text_io.ads:93</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_94_14" TARGET="main">Set_Col - terminal_interface-curses-text_io.ads:94</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1009_14" TARGET="main">Set_Color</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_725_14" TARGET="main">Set_Current - terminal_interface-curses-forms.ads:725</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_287_14" TARGET="main">Set_Current - terminal_interface-curses-menus.ads:287</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_906_16" TARGET="main">Set_Current_Fld</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_251_16" TARGET="main">Set_Curr_Item</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1972_14" TARGET="main">Set_Cursor_Visibility</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1069_14" TARGET="main">Set_Echo_Mode</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1135_14" TARGET="main">Set_Escape_Timer_Mode</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_597_14" TARGET="main">Set_Fields</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_228_13" TARGET="main">Set_Fieldtype_Arg</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_235_13" TARGET="main">Set_Fieldtype_Choice</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_396_16" TARGET="main">Set_Field_Back</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_357_16" TARGET="main">Set_Field_Fore</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_588_16" TARGET="main">Set_Field_Init</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_543_14" TARGET="main">Set_Field_Init_Hook</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_176_16" TARGET="main">Set_Field_Just</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_277_16" TARGET="main">Set_Field_Max</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_294_16" TARGET="main">Set_Field_Opts</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_433_16" TARGET="main">Set_Field_Pad</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_601_16" TARGET="main">Set_Field_Term</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_549_14" TARGET="main">Set_Field_Term_Hook</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_50_14" TARGET="main">Set_Field_Type - terminal_interface-curses-forms-field_types-alpha.ads:50</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_51_14" TARGET="main">Set_Field_Type - terminal_interface-curses-forms-field_types-alphanumeric.ads:51</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_85_14" TARGET="main">Set_Field_Type - terminal_interface-curses-forms-field_types-enumeration.ads:85</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_52_14" TARGET="main">Set_Field_Type - terminal_interface-curses-forms-field_types-intfield.ads:52</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_48_14" TARGET="main">Set_Field_Type - terminal_interface-curses-forms-field_types-ipv4_address.ads:48</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_52_14" TARGET="main">Set_Field_Type - terminal_interface-curses-forms-field_types-numeric.ads:52</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_52_14" TARGET="main">Set_Field_Type - terminal_interface-curses-forms-field_types-regexp.ads:52</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user__ads.htm#ref_71_14" TARGET="main">Set_Field_Type - terminal_interface-curses-forms-field_types-user.ads:71</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_user_data__adb.htm#ref_56_16" TARGET="main">Set_Field_Userptr</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_206_16" TARGET="main">Set_Fld_Buffer</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_246_16" TARGET="main">Set_Fld_Status</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_50_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types-alpha.adb:50</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_50_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types-alphanumeric.adb:50</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_95_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types-enumeration.adb:95</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_50_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types-intfield.adb:50</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_50_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types-ipv4_address.adb:50</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_53_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types-numeric.adb:53</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user__adb.htm#ref_54_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types-user.adb:54</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm#ref_135_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types.adb:135</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1099_14" TARGET="main">Set_Flush_On_Interrupt_Mode</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_428_14" TARGET="main">Set_Foreground - terminal_interface-curses-forms.ads:428</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_422_14" TARGET="main">Set_Foreground - terminal_interface-curses-menus.ads:422</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_536_14" TARGET="main">Set_Format</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_614_16" TARGET="main">Set_Form_Init</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_555_14" TARGET="main">Set_Form_Init_Hook</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_746_16" TARGET="main">Set_Form_Opts</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_542_16" TARGET="main">Set_Form_Sub</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_627_16" TARGET="main">Set_Form_Term</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_561_14" TARGET="main">Set_Form_Term_Hook</A>
-<LI><A HREF="../terminal_interface-curses-forms-form_user_data__adb.htm#ref_57_16" TARGET="main">Set_Form_Userptr</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_517_16" TARGET="main">Set_Form_Win</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_644_16" TARGET="main">Set_Frm_Fields</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_933_16" TARGET="main">Set_Frm_Page</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_50_16" TARGET="main">Set_Ftyp</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_462_14" TARGET="main">Set_Grey</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_617_14" TARGET="main">Set_Items - terminal_interface-curses-menus.ads:617</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_782_16" TARGET="main">Set_Items - terminal_interface-curses-menus.adb:782</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_706_16" TARGET="main">Set_Item_Init</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_564_14" TARGET="main">Set_Item_Init_Hook</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_169_16" TARGET="main">Set_Item_Opts</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_717_16" TARGET="main">Set_Item_Term</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_570_14" TARGET="main">Set_Item_Term_Hook</A>
-<LI><A HREF="../terminal_interface-curses-menus-item_user_data__adb.htm#ref_49_16" TARGET="main">Set_Item_Userptr</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_133_16" TARGET="main">Set_Item_Val</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_341_14" TARGET="main">Set_Justification</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1081_14" TARGET="main">Set_KeyPad_Mode</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_96_14" TARGET="main">Set_Line - terminal_interface-curses-text_io.ads:96</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_97_14" TARGET="main">Set_Line - terminal_interface-curses-text_io.ads:97</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_402_14" TARGET="main">Set_Mark - terminal_interface-curses-menus.ads:402</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_445_16" TARGET="main">Set_Mark - terminal_interface-curses-menus.adb:445</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_389_14" TARGET="main">Set_Maximum_Size</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_515_16" TARGET="main">Set_Menu_Back</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_675_16" TARGET="main">Set_Menu_Fmt</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_479_16" TARGET="main">Set_Menu_Fore</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_550_16" TARGET="main">Set_Menu_Grey</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_728_16" TARGET="main">Set_Menu_Init</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_576_14" TARGET="main">Set_Menu_Init_Hook</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_328_16" TARGET="main">Set_Menu_Opts</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_585_16" TARGET="main">Set_Menu_Pad</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_397_16" TARGET="main">Set_Menu_Sub</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_739_16" TARGET="main">Set_Menu_Term</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_582_14" TARGET="main">Set_Menu_Term_Hook</A>
-<LI><A HREF="../terminal_interface-curses-menus-menu_user_data__adb.htm#ref_49_16" TARGET="main">Set_Menu_Userptr</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_376_16" TARGET="main">Set_Menu_Win</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1075_14" TARGET="main">Set_Meta_Mode</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_759_14" TARGET="main">Set_New_Page</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1146_14" TARGET="main">Set_NL_Mode</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1114_14" TARGET="main">Set_NoDelay_Mode</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_399_14" TARGET="main">Set_Options - terminal_interface-curses-forms.ads:399</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_646_14" TARGET="main">Set_Options - terminal_interface-curses-forms.ads:646</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_235_14" TARGET="main">Set_Options - terminal_interface-curses-menus.ads:235</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_332_14" TARGET="main">Set_Options - terminal_interface-curses-menus.ads:332</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_468_14" TARGET="main">Set_Pad_Character - terminal_interface-curses-forms.ads:468</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_483_14" TARGET="main">Set_Pad_Character - terminal_interface-curses-menus.ads:483</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_736_14" TARGET="main">Set_Page - terminal_interface-curses-forms.ads:736</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_979_16" TARGET="main">Set_Page - terminal_interface-curses-forms.adb:979</A>
-<LI><A HREF="../terminal_interface-curses-panels-user_data__adb.htm#ref_55_16" TARGET="main">Set_Panel_Userptr</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_519_13" TARGET="main">Set_Pattern - terminal_interface-curses-menus.ads:519</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_643_16" TARGET="main">Set_Pattern - terminal_interface-curses-menus.adb:643</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1106_14" TARGET="main">Set_Queue_Interrupt_Mode</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1063_14" TARGET="main">Set_Raw_Mode</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1198_14" TARGET="main">Set_Scroll_Region</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1676_14" TARGET="main">Set_Soft_Label_Key</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1727_14" TARGET="main">Set_Soft_Label_Key_Attributes</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1743_14" TARGET="main">Set_Soft_Label_Key_Color</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_499_14" TARGET="main">Set_Spacing - terminal_interface-curses-menus.ads:499</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_607_16" TARGET="main">Set_Spacing - terminal_interface-curses-menus.adb:607</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_378_14" TARGET="main">Set_Status</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_518_14" TARGET="main">Set_Sub_Window - terminal_interface-curses-forms.ads:518</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_371_14" TARGET="main">Set_Sub_Window - terminal_interface-curses-menus.ads:371</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_814_14" TARGET="main">Set_Synch_Mode</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1123_14" TARGET="main">Set_Timeout_Mode</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_275_16" TARGET="main">Set_Toprow</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_298_14" TARGET="main">Set_Top_Row</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_user_data__ads.htm#ref_54_14" TARGET="main">Set_User_Data - terminal_interface-curses-forms-field_user_data.ads:54</A>
-<LI><A HREF="../terminal_interface-curses-forms-form_user_data__ads.htm#ref_54_14" TARGET="main">Set_User_Data - terminal_interface-curses-forms-form_user_data.ads:54</A>
-<LI><A HREF="../terminal_interface-curses-menus-item_user_data__ads.htm#ref_59_14" TARGET="main">Set_User_Data - terminal_interface-curses-menus-item_user_data.ads:59</A>
-<LI><A HREF="../terminal_interface-curses-menus-menu_user_data__ads.htm#ref_54_14" TARGET="main">Set_User_Data - terminal_interface-curses-menus-menu_user_data.ads:54</A>
-<LI><A HREF="../terminal_interface-curses-panels-user_data__ads.htm#ref_54_14" TARGET="main">Set_User_Data - terminal_interface-curses-panels-user_data.ads:54</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_211_14" TARGET="main">Set_Value</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_507_14" TARGET="main">Set_Window - terminal_interface-curses-forms.ads:507</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_360_14" TARGET="main">Set_Window - terminal_interface-curses-menus.ads:360</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_60_14" TARGET="main">Set_Window - terminal_interface-curses-text_io.ads:60</A>
-<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_87_14" TARGET="main">Show</A>
-<LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_86_16" TARGET="main">Showpanel</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1967_16" TARGET="main">Slk_Attr - terminal_interface-curses.adb:1967</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1977_16" TARGET="main">Slk_Attr - terminal_interface-curses.adb:1977</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1931_16" TARGET="main">Slk_Attroff</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1929_16" TARGET="main">Slk_Attron</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1953_16" TARGET="main">Slk_Attrset</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1897_16" TARGET="main">Slk_Clear</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1987_16" TARGET="main">Slk_Color</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1830_16" TARGET="main">Slk_Init</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1881_16" TARGET="main">Slk_Label - terminal_interface-curses.adb:1881</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1889_16" TARGET="main">Slk_Label - terminal_interface-curses.adb:1889</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1870_16" TARGET="main">Slk_Noutrefresh</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1860_16" TARGET="main">Slk_Refresh</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1907_16" TARGET="main">Slk_Restore</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1842_16" TARGET="main">Slk_Set</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1917_16" TARGET="main">Slk_Touch</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_507_14" TARGET="main">Spacing</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_645_13" TARGET="main">Standard_Window</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_971_14" TARGET="main">Standout</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1878_14" TARGET="main">Start_Color</A>
-<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_116_13" TARGET="main">Start_Mouse</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1453_16" TARGET="main">Subpad</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_271_16" TARGET="main">Subwin</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1444_13" TARGET="main">Sub_Pad</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_765_13" TARGET="main">Sub_Window</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1843_13" TARGET="main">Supported_Attributes</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_977_14" TARGET="main">Switch_Character_Attribute</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_405_14" TARGET="main">Switch_Options - terminal_interface-curses-forms.ads:405</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_652_14" TARGET="main">Switch_Options - terminal_interface-curses-forms.ads:652</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_241_14" TARGET="main">Switch_Options - terminal_interface-curses-menus.ads:241</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_338_14" TARGET="main">Switch_Options - terminal_interface-curses-menus.ads:338</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1719_14" TARGET="main">Switch_Soft_Label_Key_Attributes</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_809_14" TARGET="main">Synchronize_Downwards</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_804_14" TARGET="main">Synchronize_Upwards</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_364_16" TARGET="main">Syncok</A>
-</UL></BODY></HTML>
+</head>
+<body>
+<h2>Functions - S</h2>
+<a href="../funcs.htm" target="_self">[index]</a>
+<ul compact type="disc">
+<li><a href="../terminal_interface-curses__adb.htm#ref_2302_16" target="main">Savetty</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1930_14" target="main">Save_Curses_Mode</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1942_14" target="main">Save_Terminal_State</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_529_14" target="main">Scale - terminal_interface-curses-forms.ads:529</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_382_14" target="main">Scale - terminal_interface-curses-menus.ads:382</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_2040_14" target="main">Screen_Dump_To_File</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_2048_14" target="main">Screen_Init_From_File</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_2044_14" target="main">Screen_Restore_From_File</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_2052_14" target="main">Screen_Set_File</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1493_14" target="main">Scroll</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1193_13" target="main">Scrolling_Allowed</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1026_16" target="main">Scrollok</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_2490_16" target="main">scr_dump</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_2516_16" target="main">scr_init</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_2503_16" target="main">scr_restore</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_2529_16" target="main">scr_set</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_448_14" target="main">Set_Background - terminal_interface-curses-forms.ads:448</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_442_14" target="main">Set_Background - terminal_interface-curses-menus.ads:442</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1279_14" target="main">Set_Background - terminal_interface-curses.ads:1279</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_356_14" target="main">Set_Buffer</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1057_14" target="main">Set_Cbreak_Mode</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_988_14" target="main">Set_Character_Attributes</a>
+<li><a href="../terminal_interface-curses-text_io__ads.htm#ref_93_14" target="main">Set_Col - terminal_interface-curses-text_io.ads:93</a>
+<li><a href="../terminal_interface-curses-text_io__ads.htm#ref_94_14" target="main">Set_Col - terminal_interface-curses-text_io.ads:94</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1009_14" target="main">Set_Color</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_725_14" target="main">Set_Current - terminal_interface-curses-forms.ads:725</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_287_14" target="main">Set_Current - terminal_interface-curses-menus.ads:287</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_906_16" target="main">Set_Current_Fld</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_251_16" target="main">Set_Curr_Item</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1972_14" target="main">Set_Cursor_Visibility</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1069_14" target="main">Set_Echo_Mode</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1135_14" target="main">Set_Escape_Timer_Mode</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_597_14" target="main">Set_Fields</a>
+<li><a href="../terminal_interface-curses-forms-field_types__ads.htm#ref_228_13" target="main">Set_Fieldtype_Arg</a>
+<li><a href="../terminal_interface-curses-forms-field_types__ads.htm#ref_235_13" target="main">Set_Fieldtype_Choice</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_396_16" target="main">Set_Field_Back</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_357_16" target="main">Set_Field_Fore</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_588_16" target="main">Set_Field_Init</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_543_14" target="main">Set_Field_Init_Hook</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_176_16" target="main">Set_Field_Just</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_277_16" target="main">Set_Field_Max</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_294_16" target="main">Set_Field_Opts</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_433_16" target="main">Set_Field_Pad</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_601_16" target="main">Set_Field_Term</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_549_14" target="main">Set_Field_Term_Hook</a>
+<li><a href="../terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_50_14" target="main">Set_Field_Type - terminal_interface-curses-forms-field_types-alpha.ads:50</a>
+<li><a href="../terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_51_14" target="main">Set_Field_Type - terminal_interface-curses-forms-field_types-alphanumeric.ads:51</a>
+<li><a href="../terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_85_14" target="main">Set_Field_Type - terminal_interface-curses-forms-field_types-enumeration.ads:85</a>
+<li><a href="../terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_52_14" target="main">Set_Field_Type - terminal_interface-curses-forms-field_types-intfield.ads:52</a>
+<li><a href="../terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_48_14" target="main">Set_Field_Type - terminal_interface-curses-forms-field_types-ipv4_address.ads:48</a>
+<li><a href="../terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_52_14" target="main">Set_Field_Type - terminal_interface-curses-forms-field_types-numeric.ads:52</a>
+<li><a href="../terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_52_14" target="main">Set_Field_Type - terminal_interface-curses-forms-field_types-regexp.ads:52</a>
+<li><a href="../terminal_interface-curses-forms-field_types-user__ads.htm#ref_71_14" target="main">Set_Field_Type - terminal_interface-curses-forms-field_types-user.ads:71</a>
+<li><a href="../terminal_interface-curses-forms-field_user_data__adb.htm#ref_56_16" target="main">Set_Field_Userptr</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_206_16" target="main">Set_Fld_Buffer</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_246_16" target="main">Set_Fld_Status</a>
+<li><a href="../terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_50_16" target="main">Set_Fld_Type - terminal_interface-curses-forms-field_types-alpha.adb:50</a>
+<li><a href="../terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_50_16" target="main">Set_Fld_Type - terminal_interface-curses-forms-field_types-alphanumeric.adb:50</a>
+<li><a href="../terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_95_16" target="main">Set_Fld_Type - terminal_interface-curses-forms-field_types-enumeration.adb:95</a>
+<li><a href="../terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_50_16" target="main">Set_Fld_Type - terminal_interface-curses-forms-field_types-intfield.adb:50</a>
+<li><a href="../terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_50_16" target="main">Set_Fld_Type - terminal_interface-curses-forms-field_types-ipv4_address.adb:50</a>
+<li><a href="../terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_53_16" target="main">Set_Fld_Type - terminal_interface-curses-forms-field_types-numeric.adb:53</a>
+<li><a href="../terminal_interface-curses-forms-field_types-user__adb.htm#ref_54_16" target="main">Set_Fld_Type - terminal_interface-curses-forms-field_types-user.adb:54</a>
+<li><a href="../terminal_interface-curses-forms-field_types__adb.htm#ref_135_16" target="main">Set_Fld_Type - terminal_interface-curses-forms-field_types.adb:135</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1099_14" target="main">Set_Flush_On_Interrupt_Mode</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_428_14" target="main">Set_Foreground - terminal_interface-curses-forms.ads:428</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_422_14" target="main">Set_Foreground - terminal_interface-curses-menus.ads:422</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_536_14" target="main">Set_Format</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_614_16" target="main">Set_Form_Init</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_555_14" target="main">Set_Form_Init_Hook</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_746_16" target="main">Set_Form_Opts</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_542_16" target="main">Set_Form_Sub</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_627_16" target="main">Set_Form_Term</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_561_14" target="main">Set_Form_Term_Hook</a>
+<li><a href="../terminal_interface-curses-forms-form_user_data__adb.htm#ref_57_16" target="main">Set_Form_Userptr</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_517_16" target="main">Set_Form_Win</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_644_16" target="main">Set_Frm_Fields</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_933_16" target="main">Set_Frm_Page</a>
+<li><a href="../terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_50_16" target="main">Set_Ftyp</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_462_14" target="main">Set_Grey</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_617_14" target="main">Set_Items - terminal_interface-curses-menus.ads:617</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_782_16" target="main">Set_Items - terminal_interface-curses-menus.adb:782</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_706_16" target="main">Set_Item_Init</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_564_14" target="main">Set_Item_Init_Hook</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_169_16" target="main">Set_Item_Opts</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_717_16" target="main">Set_Item_Term</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_570_14" target="main">Set_Item_Term_Hook</a>
+<li><a href="../terminal_interface-curses-menus-item_user_data__adb.htm#ref_49_16" target="main">Set_Item_Userptr</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_133_16" target="main">Set_Item_Val</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_341_14" target="main">Set_Justification</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1081_14" target="main">Set_KeyPad_Mode</a>
+<li><a href="../terminal_interface-curses-text_io__ads.htm#ref_96_14" target="main">Set_Line - terminal_interface-curses-text_io.ads:96</a>
+<li><a href="../terminal_interface-curses-text_io__ads.htm#ref_97_14" target="main">Set_Line - terminal_interface-curses-text_io.ads:97</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_402_14" target="main">Set_Mark - terminal_interface-curses-menus.ads:402</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_445_16" target="main">Set_Mark - terminal_interface-curses-menus.adb:445</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_389_14" target="main">Set_Maximum_Size</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_515_16" target="main">Set_Menu_Back</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_675_16" target="main">Set_Menu_Fmt</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_479_16" target="main">Set_Menu_Fore</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_550_16" target="main">Set_Menu_Grey</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_728_16" target="main">Set_Menu_Init</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_576_14" target="main">Set_Menu_Init_Hook</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_328_16" target="main">Set_Menu_Opts</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_585_16" target="main">Set_Menu_Pad</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_397_16" target="main">Set_Menu_Sub</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_739_16" target="main">Set_Menu_Term</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_582_14" target="main">Set_Menu_Term_Hook</a>
+<li><a href="../terminal_interface-curses-menus-menu_user_data__adb.htm#ref_49_16" target="main">Set_Menu_Userptr</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_376_16" target="main">Set_Menu_Win</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1075_14" target="main">Set_Meta_Mode</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_759_14" target="main">Set_New_Page</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1146_14" target="main">Set_NL_Mode</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1114_14" target="main">Set_NoDelay_Mode</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_399_14" target="main">Set_Options - terminal_interface-curses-forms.ads:399</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_646_14" target="main">Set_Options - terminal_interface-curses-forms.ads:646</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_235_14" target="main">Set_Options - terminal_interface-curses-menus.ads:235</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_332_14" target="main">Set_Options - terminal_interface-curses-menus.ads:332</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_468_14" target="main">Set_Pad_Character - terminal_interface-curses-forms.ads:468</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_483_14" target="main">Set_Pad_Character - terminal_interface-curses-menus.ads:483</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_736_14" target="main">Set_Page - terminal_interface-curses-forms.ads:736</a>
+<li><a href="../terminal_interface-curses-forms__adb.htm#ref_979_16" target="main">Set_Page - terminal_interface-curses-forms.adb:979</a>
+<li><a href="../terminal_interface-curses-panels-user_data__adb.htm#ref_55_16" target="main">Set_Panel_Userptr</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_519_13" target="main">Set_Pattern - terminal_interface-curses-menus.ads:519</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_643_16" target="main">Set_Pattern - terminal_interface-curses-menus.adb:643</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1106_14" target="main">Set_Queue_Interrupt_Mode</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1063_14" target="main">Set_Raw_Mode</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1198_14" target="main">Set_Scroll_Region</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1676_14" target="main">Set_Soft_Label_Key</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1727_14" target="main">Set_Soft_Label_Key_Attributes</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1743_14" target="main">Set_Soft_Label_Key_Color</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_499_14" target="main">Set_Spacing - terminal_interface-curses-menus.ads:499</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_607_16" target="main">Set_Spacing - terminal_interface-curses-menus.adb:607</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_378_14" target="main">Set_Status</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_518_14" target="main">Set_Sub_Window - terminal_interface-curses-forms.ads:518</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_371_14" target="main">Set_Sub_Window - terminal_interface-curses-menus.ads:371</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_814_14" target="main">Set_Synch_Mode</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1123_14" target="main">Set_Timeout_Mode</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_275_16" target="main">Set_Toprow</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_298_14" target="main">Set_Top_Row</a>
+<li><a href="../terminal_interface-curses-forms-field_user_data__ads.htm#ref_54_14" target="main">Set_User_Data - terminal_interface-curses-forms-field_user_data.ads:54</a>
+<li><a href="../terminal_interface-curses-forms-form_user_data__ads.htm#ref_54_14" target="main">Set_User_Data - terminal_interface-curses-forms-form_user_data.ads:54</a>
+<li><a href="../terminal_interface-curses-menus-item_user_data__ads.htm#ref_59_14" target="main">Set_User_Data - terminal_interface-curses-menus-item_user_data.ads:59</a>
+<li><a href="../terminal_interface-curses-menus-menu_user_data__ads.htm#ref_54_14" target="main">Set_User_Data - terminal_interface-curses-menus-menu_user_data.ads:54</a>
+<li><a href="../terminal_interface-curses-panels-user_data__ads.htm#ref_54_14" target="main">Set_User_Data - terminal_interface-curses-panels-user_data.ads:54</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_211_14" target="main">Set_Value</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_507_14" target="main">Set_Window - terminal_interface-curses-forms.ads:507</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_360_14" target="main">Set_Window - terminal_interface-curses-menus.ads:360</a>
+<li><a href="../terminal_interface-curses-text_io__ads.htm#ref_60_14" target="main">Set_Window - terminal_interface-curses-text_io.ads:60</a>
+<li><a href="../terminal_interface-curses-panels__ads.htm#ref_87_14" target="main">Show</a>
+<li><a href="../terminal_interface-curses-panels__adb.htm#ref_86_16" target="main">Showpanel</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1967_16" target="main">Slk_Attr - terminal_interface-curses.adb:1967</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1977_16" target="main">Slk_Attr - terminal_interface-curses.adb:1977</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1931_16" target="main">Slk_Attroff</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1929_16" target="main">Slk_Attron</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1953_16" target="main">Slk_Attrset</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1897_16" target="main">Slk_Clear</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1987_16" target="main">Slk_Color</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1830_16" target="main">Slk_Init</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1881_16" target="main">Slk_Label - terminal_interface-curses.adb:1881</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1889_16" target="main">Slk_Label - terminal_interface-curses.adb:1889</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1870_16" target="main">Slk_Noutrefresh</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1860_16" target="main">Slk_Refresh</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1907_16" target="main">Slk_Restore</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1842_16" target="main">Slk_Set</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1917_16" target="main">Slk_Touch</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_507_14" target="main">Spacing</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_645_13" target="main">Standard_Window</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_971_14" target="main">Standout</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1878_14" target="main">Start_Color</a>
+<li><a href="../terminal_interface-curses-mouse__ads.htm#ref_116_13" target="main">Start_Mouse</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1453_16" target="main">Subpad</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_271_16" target="main">Subwin</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1444_13" target="main">Sub_Pad</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_765_13" target="main">Sub_Window</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1843_13" target="main">Supported_Attributes</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_977_14" target="main">Switch_Character_Attribute</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_405_14" target="main">Switch_Options - terminal_interface-curses-forms.ads:405</a>
+<li><a href="../terminal_interface-curses-forms__ads.htm#ref_652_14" target="main">Switch_Options - terminal_interface-curses-forms.ads:652</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_241_14" target="main">Switch_Options - terminal_interface-curses-menus.ads:241</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_338_14" target="main">Switch_Options - terminal_interface-curses-menus.ads:338</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1719_14" target="main">Switch_Soft_Label_Key_Attributes</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_809_14" target="main">Synchronize_Downwards</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_804_14" target="main">Synchronize_Upwards</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_364_16" target="main">Syncok</a>
+</ul></body></html>
diff --git a/doc/html/ada/funcs/T.htm b/doc/html/ada/funcs/T.htm
index 9cb76d779d05..2534502a5360 100644
--- a/doc/html/ada/funcs/T.htm
+++ b/doc/html/ada/funcs/T.htm
@@ -1,43 +1,43 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<HTML>
-<HEAD>
-<TITLE>T</TITLE>
+<html>
+<head>
+<title>T</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</HEAD>
-<BODY>
-<H2>Functions - T</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2373_16" TARGET="main">TABSIZE_As_Function</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_557_13" TARGET="main">Tab_Size</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2113_16" TARGET="main">Termattrs</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1858_14" TARGET="main">Terminal_Name - terminal_interface-curses.ads:1858</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1862_13" TARGET="main">Terminal_Name - terminal_interface-curses.ads:1862</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2139_16" TARGET="main">Termname - terminal_interface-curses.adb:2139</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2147_16" TARGET="main">Termname - terminal_interface-curses.adb:2147</A>
-<LI><A HREF="../terminal_interface-curses-termcap__adb.htm#ref_52_16" TARGET="main">tgetent</A>
-<LI><A HREF="../terminal_interface-curses-termcap__adb.htm#ref_72_16" TARGET="main">tgetflag</A>
-<LI><A HREF="../terminal_interface-curses-termcap__adb.htm#ref_90_16" TARGET="main">tgetnum</A>
-<LI><A HREF="../terminal_interface-curses-termcap__adb.htm#ref_109_16" TARGET="main">tgetstr - terminal_interface-curses-termcap.adb:109</A>
-<LI><A HREF="../terminal_interface-curses-termcap__adb.htm#ref_130_16" TARGET="main">tgetstr - terminal_interface-curses-termcap.adb:130</A>
-<LI><A HREF="../terminal_interface-curses-termcap__ads.htm#ref_54_13" TARGET="main">TGoto</A>
-<LI><A HREF="../terminal_interface-curses-termcap__adb.htm#ref_152_16" TARGET="main">tgoto</A>
-<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#ref_70_16" TARGET="main">tigetflag</A>
-<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#ref_88_16" TARGET="main">tigetstr - terminal_interface-curses-terminfo.adb:88</A>
-<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#ref_109_16" TARGET="main">tigetstr - terminal_interface-curses-terminfo.adb:109</A>
-<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#ref_128_16" TARGET="main">tigetstr - terminal_interface-curses-terminfo.adb:128</A>
-<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_82_14" TARGET="main">Top</A>
-<LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_76_16" TARGET="main">Toppanel</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_285_16" TARGET="main">Toprow</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_304_13" TARGET="main">Top_Row</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1312_14" TARGET="main">Touch - terminal_interface-curses.ads:1312</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1316_14" TARGET="main">Touch - terminal_interface-curses.ads:1316</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1714_14" TARGET="main">Touch_Soft_Label_Keys</A>
-<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#ref_141_16" TARGET="main">tputs</A>
-<LI><A HREF="../terminal_interface-curses-trace__adb.htm#ref_47_17" TARGET="main">traceC</A>
-<LI><A HREF="../terminal_interface-curses-trace__adb.htm#ref_54_17" TARGET="main">tracef</A>
-<LI><A HREF="../terminal_interface-curses-trace__ads.htm#ref_115_14" TARGET="main">Trace_On</A>
-<LI><A HREF="../terminal_interface-curses-trace__ads.htm#ref_119_14" TARGET="main">Trace_Put</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2403_16" TARGET="main">Transform</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1985_14" TARGET="main">Transform_Coordinates</A>
-</UL></BODY></HTML>
+</head>
+<body>
+<h2>Functions - T</h2>
+<a href="../funcs.htm" target="_self">[index]</a>
+<ul compact type="disc">
+<li><a href="../terminal_interface-curses__adb.htm#ref_2373_16" target="main">TABSIZE_As_Function</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_557_13" target="main">Tab_Size</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_2113_16" target="main">Termattrs</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1858_14" target="main">Terminal_Name - terminal_interface-curses.ads:1858</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1862_13" target="main">Terminal_Name - terminal_interface-curses.ads:1862</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_2139_16" target="main">Termname - terminal_interface-curses.adb:2139</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_2147_16" target="main">Termname - terminal_interface-curses.adb:2147</a>
+<li><a href="../terminal_interface-curses-termcap__adb.htm#ref_52_16" target="main">tgetent</a>
+<li><a href="../terminal_interface-curses-termcap__adb.htm#ref_72_16" target="main">tgetflag</a>
+<li><a href="../terminal_interface-curses-termcap__adb.htm#ref_90_16" target="main">tgetnum</a>
+<li><a href="../terminal_interface-curses-termcap__adb.htm#ref_109_16" target="main">tgetstr - terminal_interface-curses-termcap.adb:109</a>
+<li><a href="../terminal_interface-curses-termcap__adb.htm#ref_130_16" target="main">tgetstr - terminal_interface-curses-termcap.adb:130</a>
+<li><a href="../terminal_interface-curses-termcap__ads.htm#ref_54_13" target="main">TGoto</a>
+<li><a href="../terminal_interface-curses-termcap__adb.htm#ref_152_16" target="main">tgoto</a>
+<li><a href="../terminal_interface-curses-terminfo__adb.htm#ref_70_16" target="main">tigetflag</a>
+<li><a href="../terminal_interface-curses-terminfo__adb.htm#ref_88_16" target="main">tigetstr - terminal_interface-curses-terminfo.adb:88</a>
+<li><a href="../terminal_interface-curses-terminfo__adb.htm#ref_109_16" target="main">tigetstr - terminal_interface-curses-terminfo.adb:109</a>
+<li><a href="../terminal_interface-curses-terminfo__adb.htm#ref_128_16" target="main">tigetstr - terminal_interface-curses-terminfo.adb:128</a>
+<li><a href="../terminal_interface-curses-panels__ads.htm#ref_82_14" target="main">Top</a>
+<li><a href="../terminal_interface-curses-panels__adb.htm#ref_76_16" target="main">Toppanel</a>
+<li><a href="../terminal_interface-curses-menus__adb.htm#ref_285_16" target="main">Toprow</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_304_13" target="main">Top_Row</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1312_14" target="main">Touch - terminal_interface-curses.ads:1312</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1316_14" target="main">Touch - terminal_interface-curses.ads:1316</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1714_14" target="main">Touch_Soft_Label_Keys</a>
+<li><a href="../terminal_interface-curses-terminfo__adb.htm#ref_141_16" target="main">tputs</a>
+<li><a href="../terminal_interface-curses-trace__adb.htm#ref_47_17" target="main">traceC</a>
+<li><a href="../terminal_interface-curses-trace__adb.htm#ref_54_17" target="main">tracef</a>
+<li><a href="../terminal_interface-curses-trace__ads.htm#ref_115_14" target="main">Trace_On</a>
+<li><a href="../terminal_interface-curses-trace__ads.htm#ref_119_14" target="main">Trace_Put</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_2403_16" target="main">Transform</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1985_14" target="main">Transform_Coordinates</a>
+</ul></body></html>
diff --git a/doc/html/ada/funcs/U.htm b/doc/html/ada/funcs/U.htm
index 6c5a5fe61d98..8a6d40de352f 100644
--- a/doc/html/ada/funcs/U.htm
+++ b/doc/html/ada/funcs/U.htm
@@ -1,27 +1,27 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<HTML>
-<HEAD>
-<TITLE>U</TITLE>
+<html>
+<head>
+<title>U</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</HEAD>
-<BODY>
-<H2>Functions - U</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2029_16" TARGET="main">Unctrl - terminal_interface-curses.adb:2029</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2037_16" TARGET="main">Unctrl - terminal_interface-curses.adb:2037</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_933_14" TARGET="main">Undo_Keystroke</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_540_16" TARGET="main">Ungetch</A>
-<LI><A HREF="../terminal_interface-curses-mouse__adb.htm#ref_186_16" TARGET="main">Ungetmouse</A>
-<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_142_14" TARGET="main">Unget_Mouse</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1307_14" TARGET="main">Untouch</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1793_14" TARGET="main">Un_Control - terminal_interface-curses.ads:1793</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1798_13" TARGET="main">Un_Control - terminal_interface-curses.ads:1798</A>
-<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_92_14" TARGET="main">Update_Panels</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1211_14" TARGET="main">Update_Screen</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_2004_14" TARGET="main">Use_Default_Colors</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_2024_13" TARGET="main">Use_Extended_Names</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2475_16" TARGET="main">use_extended_namesC</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1166_14" TARGET="main">Use_Insert_Delete_Character</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1159_14" TARGET="main">Use_Insert_Delete_Line</A>
-</UL></BODY></HTML>
+</head>
+<body>
+<h2>Functions - U</h2>
+<a href="../funcs.htm" target="_self">[index]</a>
+<ul compact type="disc">
+<li><a href="../terminal_interface-curses__adb.htm#ref_2029_16" target="main">Unctrl - terminal_interface-curses.adb:2029</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_2037_16" target="main">Unctrl - terminal_interface-curses.adb:2037</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_933_14" target="main">Undo_Keystroke</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_540_16" target="main">Ungetch</a>
+<li><a href="../terminal_interface-curses-mouse__adb.htm#ref_186_16" target="main">Ungetmouse</a>
+<li><a href="../terminal_interface-curses-mouse__ads.htm#ref_142_14" target="main">Unget_Mouse</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1307_14" target="main">Untouch</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1793_14" target="main">Un_Control - terminal_interface-curses.ads:1793</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1798_13" target="main">Un_Control - terminal_interface-curses.ads:1798</a>
+<li><a href="../terminal_interface-curses-panels__ads.htm#ref_92_14" target="main">Update_Panels</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1211_14" target="main">Update_Screen</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_2004_14" target="main">Use_Default_Colors</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_2024_13" target="main">Use_Extended_Names</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_2475_16" target="main">use_extended_namesC</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1166_14" target="main">Use_Insert_Delete_Character</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_1159_14" target="main">Use_Insert_Delete_Line</a>
+</ul></body></html>
diff --git a/doc/html/ada/funcs/V.htm b/doc/html/ada/funcs/V.htm
index 45edc6ae1d2a..260997340dc9 100644
--- a/doc/html/ada/funcs/V.htm
+++ b/doc/html/ada/funcs/V.htm
@@ -1,15 +1,15 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<HTML>
-<HEAD>
-<TITLE>V</TITLE>
+<html>
+<head>
+<title>V</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</HEAD>
-<BODY>
-<H2>Functions - V</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_54_13" TARGET="main">Value - terminal_interface-curses-forms-field_types-enumeration-ada.ads:54</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_217_13" TARGET="main">Value - terminal_interface-curses-menus.ads:217</A>
-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_908_14" TARGET="main">Vertical_Line</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_226_13" TARGET="main">Visible</A>
-</UL></BODY></HTML>
+</head>
+<body>
+<h2>Functions - V</h2>
+<a href="../funcs.htm" target="_self">[index]</a>
+<ul compact type="disc">
+<li><a href="../terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_54_13" target="main">Value - terminal_interface-curses-forms-field_types-enumeration-ada.ads:54</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_217_13" target="main">Value - terminal_interface-curses-menus.ads:217</a>
+<li><a href="../terminal_interface-curses__ads.htm#ref_908_14" target="main">Vertical_Line</a>
+<li><a href="../terminal_interface-curses-menus__ads.htm#ref_226_13" target="main">Visible</a>
+</ul></body></html>
diff --git a/doc/html/ada/funcs/W.htm b/doc/html/ada/funcs/W.htm
index 926ec196bf32..8bf0c83fce43 100644
--- a/doc/html/ada/funcs/W.htm
+++ b/doc/html/ada/funcs/W.htm
@@ -1,57 +1,57 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<HTML>
-<HEAD>
-<TITLE>W</TITLE>
+<html>
+<head>
+<title>W</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</HEAD>
-<BODY>
-<H2>Functions - W</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_151_16" TARGET="main">Waddch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_408_16" TARGET="main">Waddchnstr</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_377_16" TARGET="main">Waddnstr</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_657_16" TARGET="main">Wattrget - terminal_interface-curses.adb:657</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_678_16" TARGET="main">Wattrget - terminal_interface-curses.adb:678</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_617_16" TARGET="main">Wattroff</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_614_16" TARGET="main">Wattron</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_642_16" TARGET="main">Wattrset</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1163_17" TARGET="main">WBackground</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_450_16" TARGET="main">Wborder</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1173_16" TARGET="main">WChangeBkgd</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_718_16" TARGET="main">Wchgat</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1131_16" TARGET="main">Wclear</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1141_16" TARGET="main">Wclearbot</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1151_16" TARGET="main">Wcleareol</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1576_16" TARGET="main">Wdelch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_255_16" TARGET="main">Wdelwin</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_209_16" TARGET="main">Wechochar</A>
-<LI><A HREF="../terminal_interface-curses-mouse__adb.htm#ref_197_16" TARGET="main">Wenclose</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1121_16" TARGET="main">Werase</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1185_16" TARGET="main">Wgetbkgd</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_526_16" TARGET="main">Wgetch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1790_16" TARGET="main">Wgetnstr</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_491_16" TARGET="main">Whline</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1602_16" TARGET="main">Winch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1742_16" TARGET="main">Winchnstr</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1700_16" TARGET="main">Winnstr</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1624_16" TARGET="main">Winsch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1330_16" TARGET="main">Winsdelln</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1657_16" TARGET="main">Winsnstr</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1241_16" TARGET="main">WLineTouched</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_137_16" TARGET="main">Wmove</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1083_16" TARGET="main">Wnoutrefresh</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_152_14" TARGET="main">Wrap_Builtin</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1106_16" TARGET="main">Wredrawln</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1072_16" TARGET="main">Wrefresh</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2543_16" TARGET="main">wresize</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1564_16" TARGET="main">Wscrl</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1048_16" TARGET="main">Wsetscrreg</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_699_16" TARGET="main">Wset_Color</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_594_16" TARGET="main">wstandend</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_592_16" TARGET="main">wstandout</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_915_17" TARGET="main">Wtimeout</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1196_16" TARGET="main">Wtouchln</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_509_16" TARGET="main">Wvline</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1254_16" TARGET="main">WWinTouched</A>
-</UL></BODY></HTML>
+</head>
+<body>
+<h2>Functions - W</h2>
+<a href="../funcs.htm" target="_self">[index]</a>
+<ul compact type="disc">
+<li><a href="../terminal_interface-curses__adb.htm#ref_151_16" target="main">Waddch</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_408_16" target="main">Waddchnstr</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_377_16" target="main">Waddnstr</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_657_16" target="main">Wattrget - terminal_interface-curses.adb:657</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_678_16" target="main">Wattrget - terminal_interface-curses.adb:678</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_617_16" target="main">Wattroff</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_614_16" target="main">Wattron</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_642_16" target="main">Wattrset</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1163_17" target="main">WBackground</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_450_16" target="main">Wborder</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1173_16" target="main">WChangeBkgd</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_718_16" target="main">Wchgat</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1131_16" target="main">Wclear</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1141_16" target="main">Wclearbot</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1151_16" target="main">Wcleareol</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1576_16" target="main">Wdelch</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_255_16" target="main">Wdelwin</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_209_16" target="main">Wechochar</a>
+<li><a href="../terminal_interface-curses-mouse__adb.htm#ref_197_16" target="main">Wenclose</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1121_16" target="main">Werase</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1185_16" target="main">Wgetbkgd</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_526_16" target="main">Wgetch</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1790_16" target="main">Wgetnstr</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_491_16" target="main">Whline</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1602_16" target="main">Winch</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1742_16" target="main">Winchnstr</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1700_16" target="main">Winnstr</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1624_16" target="main">Winsch</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1330_16" target="main">Winsdelln</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1657_16" target="main">Winsnstr</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1241_16" target="main">WLineTouched</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_137_16" target="main">Wmove</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1083_16" target="main">Wnoutrefresh</a>
+<li><a href="../terminal_interface-curses-forms-field_types__ads.htm#ref_152_14" target="main">Wrap_Builtin</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1106_16" target="main">Wredrawln</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1072_16" target="main">Wrefresh</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_2543_16" target="main">wresize</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1564_16" target="main">Wscrl</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1048_16" target="main">Wsetscrreg</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_699_16" target="main">Wset_Color</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_594_16" target="main">wstandend</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_592_16" target="main">wstandout</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_915_17" target="main">Wtimeout</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1196_16" target="main">Wtouchln</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_509_16" target="main">Wvline</a>
+<li><a href="../terminal_interface-curses__adb.htm#ref_1254_16" target="main">WWinTouched</a>
+</ul></body></html>
diff --git a/doc/html/ada/index.htm b/doc/html/ada/index.htm
index b0a6a84e90de..2f7801ef51fc 100644
--- a/doc/html/ada/index.htm
+++ b/doc/html/ada/index.htm
@@ -1,42 +1,42 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
-<HTML>
-<HEAD>
-<TITLE>Source Browser</TITLE>
+<html>
+<head>
+<title>Source Browser</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</HEAD>
-<FRAMESET COLS="250,*">
-<NOFRAMES>
-<H2 ALIGN=CENTER>Files</H2>
-<A HREF="files/T.htm">[T]</A>
-<HR>
-<H2 ALIGN=CENTER>Functions/Procedures</H2>
-<A HREF="funcs/A.htm">[A]</A>
-<A HREF="funcs/B.htm">[B]</A>
-<A HREF="funcs/C.htm">[C]</A>
-<A HREF="funcs/D.htm">[D]</A>
-<A HREF="funcs/E.htm">[E]</A>
-<A HREF="funcs/F.htm">[F]</A>
-<A HREF="funcs/G.htm">[G]</A>
-<A HREF="funcs/H.htm">[H]</A>
-<A HREF="funcs/I.htm">[I]</A>
-<A HREF="funcs/K.htm">[K]</A>
-<A HREF="funcs/L.htm">[L]</A>
-<A HREF="funcs/M.htm">[M]</A>
-<A HREF="funcs/N.htm">[N]</A>
-<A HREF="funcs/O.htm">[O]</A>
-<A HREF="funcs/P.htm">[P]</A>
-<A HREF="funcs/Q.htm">[Q]</A>
-<A HREF="funcs/R.htm">[R]</A>
-<A HREF="funcs/S.htm">[S]</A>
-<A HREF="funcs/T.htm">[T]</A>
-<A HREF="funcs/U.htm">[U]</A>
-<A HREF="funcs/V.htm">[V]</A>
-<A HREF="funcs/W.htm">[W]</A>
-</NOFRAMES>
-<FRAMESET ROWS="50%,50%">
-<FRAME NAME=files SRC=files.htm>
-<FRAME NAME=funcs SRC=funcs.htm>
-</FRAMESET>
-<FRAME NAME=main SRC=main.htm>
-</FRAMESET>
-</HTML>
+</head>
+<frameset cols="250,*">
+<noframes>
+<h2 align="center">Files</h2>
+<a href="files/T.htm">[T]</a>
+<hr>
+<h2 align="center">Functions/Procedures</h2>
+<a href="funcs/A.htm">[A]</a>
+<a href="funcs/B.htm">[B]</a>
+<a href="funcs/C.htm">[C]</a>
+<a href="funcs/D.htm">[D]</a>
+<a href="funcs/E.htm">[E]</a>
+<a href="funcs/F.htm">[F]</a>
+<a href="funcs/G.htm">[G]</a>
+<a href="funcs/H.htm">[H]</a>
+<a href="funcs/I.htm">[I]</a>
+<a href="funcs/K.htm">[K]</a>
+<a href="funcs/L.htm">[L]</a>
+<a href="funcs/M.htm">[M]</a>
+<a href="funcs/N.htm">[N]</a>
+<a href="funcs/O.htm">[O]</a>
+<a href="funcs/P.htm">[P]</a>
+<a href="funcs/Q.htm">[Q]</a>
+<a href="funcs/R.htm">[R]</a>
+<a href="funcs/S.htm">[S]</a>
+<a href="funcs/T.htm">[T]</a>
+<a href="funcs/U.htm">[U]</a>
+<a href="funcs/V.htm">[V]</a>
+<a href="funcs/W.htm">[W]</a>
+</noframes>
+<frameset rows="50%,50%">
+<frame name="files" src="files.htm">
+<frame name="funcs" src="funcs.htm">
+</frameset>
+<frame name="main" src="main.htm">
+</frameset>
+</html>
diff --git a/doc/html/ada/main.htm b/doc/html/ada/main.htm
index e4475a566848..430871228f8e 100644
--- a/doc/html/ada/main.htm
+++ b/doc/html/ada/main.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE></TITLE>
+<html>
+<head>
+<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,72 +11,72 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<P ALIGN=right><A HREF="main.htm" TARGET="_top">[No frame version is here]</A><P><H2 ALIGN=CENTER>Files</H2>
-<A HREF="files/T.htm">[T]</A>
-<HR><H2 ALIGN=CENTER>Functions/Procedures</H2>
-<A HREF="funcs/A.htm">[A]</A>
-<A HREF="funcs/B.htm">[B]</A>
-<A HREF="funcs/C.htm">[C]</A>
-<A HREF="funcs/D.htm">[D]</A>
-<A HREF="funcs/E.htm">[E]</A>
-<A HREF="funcs/F.htm">[F]</A>
-<A HREF="funcs/G.htm">[G]</A>
-<A HREF="funcs/H.htm">[H]</A>
-<A HREF="funcs/I.htm">[I]</A>
-<A HREF="funcs/K.htm">[K]</A>
-<A HREF="funcs/L.htm">[L]</A>
-<A HREF="funcs/M.htm">[M]</A>
-<A HREF="funcs/N.htm">[N]</A>
-<A HREF="funcs/O.htm">[O]</A>
-<A HREF="funcs/P.htm">[P]</A>
-<A HREF="funcs/Q.htm">[Q]</A>
-<A HREF="funcs/R.htm">[R]</A>
-<A HREF="funcs/S.htm">[S]</A>
-<A HREF="funcs/T.htm">[T]</A>
-<A HREF="funcs/U.htm">[U]</A>
-<A HREF="funcs/V.htm">[V]</A>
-<A HREF="funcs/W.htm">[W]</A>
-<HR>
+</head>
+<body>
+<p align="right"><a href="main.htm" target="_top">[No frame version is here]</a><p><h2 align="center">Files</h2>
+<a href="files/T.htm">[T]</a>
+<hr><h2 align="center">Functions/Procedures</h2>
+<a href="funcs/A.htm">[A]</a>
+<a href="funcs/B.htm">[B]</a>
+<a href="funcs/C.htm">[C]</a>
+<a href="funcs/D.htm">[D]</a>
+<a href="funcs/E.htm">[E]</a>
+<a href="funcs/F.htm">[F]</a>
+<a href="funcs/G.htm">[G]</a>
+<a href="funcs/H.htm">[H]</a>
+<a href="funcs/I.htm">[I]</a>
+<a href="funcs/K.htm">[K]</a>
+<a href="funcs/L.htm">[L]</a>
+<a href="funcs/M.htm">[M]</a>
+<a href="funcs/N.htm">[N]</a>
+<a href="funcs/O.htm">[O]</a>
+<a href="funcs/P.htm">[P]</a>
+<a href="funcs/Q.htm">[Q]</a>
+<a href="funcs/R.htm">[R]</a>
+<a href="funcs/S.htm">[S]</a>
+<a href="funcs/T.htm">[T]</a>
+<a href="funcs/U.htm">[U]</a>
+<a href="funcs/V.htm">[V]</a>
+<a href="funcs/W.htm">[W]</a>
+<hr>
You should start your browsing with one of these files:
-<UL>
-<LI><A HREF="terminal_interface-curses-aux__ads.htm">terminal_interface-curses-aux.ads</A>
-<LI><A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm">terminal_interface-curses-forms-field_types-alpha.ads</A>
-<LI><A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm">terminal_interface-curses-forms-field_types-alphanumeric.ads</A>
-<LI><A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm">terminal_interface-curses-forms-field_types-enumeration-ada.ads</A>
-<LI><A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm">terminal_interface-curses-forms-field_types-enumeration.ads</A>
-<LI><A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm">terminal_interface-curses-forms-field_types-intfield.ads</A>
-<LI><A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm">terminal_interface-curses-forms-field_types-ipv4_address.ads</A>
-<LI><A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm">terminal_interface-curses-forms-field_types-numeric.ads</A>
-<LI><A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm">terminal_interface-curses-forms-field_types-regexp.ads</A>
-<LI><A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm">terminal_interface-curses-forms-field_types-user-choice.ads</A>
-<LI><A HREF="terminal_interface-curses-forms-field_types-user__ads.htm">terminal_interface-curses-forms-field_types-user.ads</A>
-<LI><A HREF="terminal_interface-curses-forms-field_types__ads.htm">terminal_interface-curses-forms-field_types.ads</A>
-<LI><A HREF="terminal_interface-curses-forms-field_user_data__ads.htm">terminal_interface-curses-forms-field_user_data.ads</A>
-<LI><A HREF="terminal_interface-curses-forms-form_user_data__ads.htm">terminal_interface-curses-forms-form_user_data.ads</A>
-<LI><A HREF="terminal_interface-curses-forms__ads.htm">terminal_interface-curses-forms.ads</A>
-<LI><A HREF="terminal_interface-curses-menus-item_user_data__ads.htm">terminal_interface-curses-menus-item_user_data.ads</A>
-<LI><A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm">terminal_interface-curses-menus-menu_user_data.ads</A>
-<LI><A HREF="terminal_interface-curses-menus__ads.htm">terminal_interface-curses-menus.ads</A>
-<LI><A HREF="terminal_interface-curses-mouse__ads.htm">terminal_interface-curses-mouse.ads</A>
-<LI><A HREF="terminal_interface-curses-panels-user_data__ads.htm">terminal_interface-curses-panels-user_data.ads</A>
-<LI><A HREF="terminal_interface-curses-panels__ads.htm">terminal_interface-curses-panels.ads</A>
-<LI><A HREF="terminal_interface-curses-putwin__ads.htm">terminal_interface-curses-putwin.ads</A>
-<LI><A HREF="terminal_interface-curses-termcap__ads.htm">terminal_interface-curses-termcap.ads</A>
-<LI><A HREF="terminal_interface-curses-terminfo__ads.htm">terminal_interface-curses-terminfo.ads</A>
-<LI><A HREF="terminal_interface-curses-text_io-aux__ads.htm">terminal_interface-curses-text_io-aux.ads</A>
-<LI><A HREF="terminal_interface-curses-text_io-complex_io__ads.htm">terminal_interface-curses-text_io-complex_io.ads</A>
-<LI><A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm">terminal_interface-curses-text_io-decimal_io.ads</A>
-<LI><A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm">terminal_interface-curses-text_io-enumeration_io.ads</A>
-<LI><A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm">terminal_interface-curses-text_io-fixed_io.ads</A>
-<LI><A HREF="terminal_interface-curses-text_io-float_io__ads.htm">terminal_interface-curses-text_io-float_io.ads</A>
-<LI><A HREF="terminal_interface-curses-text_io-integer_io__ads.htm">terminal_interface-curses-text_io-integer_io.ads</A>
-<LI><A HREF="terminal_interface-curses-text_io-modular_io__ads.htm">terminal_interface-curses-text_io-modular_io.ads</A>
-<LI><A HREF="terminal_interface-curses-text_io__ads.htm">terminal_interface-curses-text_io.ads</A>
-<LI><A HREF="terminal_interface-curses-trace__ads.htm">terminal_interface-curses-trace.ads</A>
-<LI><A HREF="terminal_interface-curses__ads.htm">terminal_interface-curses.ads</A>
-<LI><A HREF="terminal_interface-curses_constants__ads.htm">terminal_interface-curses_constants.ads</A>
-<LI><A HREF="terminal_interface__ads.htm">terminal_interface.ads</A>
-</UL>
-</BODY></HTML>
+<ul>
+<li><a href="terminal_interface-curses-aux__ads.htm">terminal_interface-curses-aux.ads</a>
+<li><a href="terminal_interface-curses-forms-field_types-alpha__ads.htm">terminal_interface-curses-forms-field_types-alpha.ads</a>
+<li><a href="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm">terminal_interface-curses-forms-field_types-alphanumeric.ads</a>
+<li><a href="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm">terminal_interface-curses-forms-field_types-enumeration-ada.ads</a>
+<li><a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm">terminal_interface-curses-forms-field_types-enumeration.ads</a>
+<li><a href="terminal_interface-curses-forms-field_types-intfield__ads.htm">terminal_interface-curses-forms-field_types-intfield.ads</a>
+<li><a href="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm">terminal_interface-curses-forms-field_types-ipv4_address.ads</a>
+<li><a href="terminal_interface-curses-forms-field_types-numeric__ads.htm">terminal_interface-curses-forms-field_types-numeric.ads</a>
+<li><a href="terminal_interface-curses-forms-field_types-regexp__ads.htm">terminal_interface-curses-forms-field_types-regexp.ads</a>
+<li><a href="terminal_interface-curses-forms-field_types-user-choice__ads.htm">terminal_interface-curses-forms-field_types-user-choice.ads</a>
+<li><a href="terminal_interface-curses-forms-field_types-user__ads.htm">terminal_interface-curses-forms-field_types-user.ads</a>
+<li><a href="terminal_interface-curses-forms-field_types__ads.htm">terminal_interface-curses-forms-field_types.ads</a>
+<li><a href="terminal_interface-curses-forms-field_user_data__ads.htm">terminal_interface-curses-forms-field_user_data.ads</a>
+<li><a href="terminal_interface-curses-forms-form_user_data__ads.htm">terminal_interface-curses-forms-form_user_data.ads</a>
+<li><a href="terminal_interface-curses-forms__ads.htm">terminal_interface-curses-forms.ads</a>
+<li><a href="terminal_interface-curses-menus-item_user_data__ads.htm">terminal_interface-curses-menus-item_user_data.ads</a>
+<li><a href="terminal_interface-curses-menus-menu_user_data__ads.htm">terminal_interface-curses-menus-menu_user_data.ads</a>
+<li><a href="terminal_interface-curses-menus__ads.htm">terminal_interface-curses-menus.ads</a>
+<li><a href="terminal_interface-curses-mouse__ads.htm">terminal_interface-curses-mouse.ads</a>
+<li><a href="terminal_interface-curses-panels-user_data__ads.htm">terminal_interface-curses-panels-user_data.ads</a>
+<li><a href="terminal_interface-curses-panels__ads.htm">terminal_interface-curses-panels.ads</a>
+<li><a href="terminal_interface-curses-putwin__ads.htm">terminal_interface-curses-putwin.ads</a>
+<li><a href="terminal_interface-curses-termcap__ads.htm">terminal_interface-curses-termcap.ads</a>
+<li><a href="terminal_interface-curses-terminfo__ads.htm">terminal_interface-curses-terminfo.ads</a>
+<li><a href="terminal_interface-curses-text_io-aux__ads.htm">terminal_interface-curses-text_io-aux.ads</a>
+<li><a href="terminal_interface-curses-text_io-complex_io__ads.htm">terminal_interface-curses-text_io-complex_io.ads</a>
+<li><a href="terminal_interface-curses-text_io-decimal_io__ads.htm">terminal_interface-curses-text_io-decimal_io.ads</a>
+<li><a href="terminal_interface-curses-text_io-enumeration_io__ads.htm">terminal_interface-curses-text_io-enumeration_io.ads</a>
+<li><a href="terminal_interface-curses-text_io-fixed_io__ads.htm">terminal_interface-curses-text_io-fixed_io.ads</a>
+<li><a href="terminal_interface-curses-text_io-float_io__ads.htm">terminal_interface-curses-text_io-float_io.ads</a>
+<li><a href="terminal_interface-curses-text_io-integer_io__ads.htm">terminal_interface-curses-text_io-integer_io.ads</a>
+<li><a href="terminal_interface-curses-text_io-modular_io__ads.htm">terminal_interface-curses-text_io-modular_io.ads</a>
+<li><a href="terminal_interface-curses-text_io__ads.htm">terminal_interface-curses-text_io.ads</a>
+<li><a href="terminal_interface-curses-trace__ads.htm">terminal_interface-curses-trace.ads</a>
+<li><a href="terminal_interface-curses__ads.htm">terminal_interface-curses.ads</a>
+<li><a href="terminal_interface-curses_constants__ads.htm">terminal_interface-curses_constants.ads</a>
+<li><a href="terminal_interface__ads.htm">terminal_interface.ads</a>
+</ul>
+</body></html>
diff --git a/doc/html/ada/table.html b/doc/html/ada/table.html
index ff6d0bd404b1..7635427b3ee4 100644
--- a/doc/html/ada/table.html
+++ b/doc/html/ada/table.html
@@ -1,15 +1,14 @@
-<!DOCTYPE HTML
-PUBLIC "-//IETF//DTD HTML 3.0//EN">
-<HTML>
-<HEAD>
-<TITLE>Correspondence between ncurses C and Ada functions</TITLE>
-</HEAD>
-<BODY>
-<H1>Correspondence between ncurses C and Ada functions</H1>
-<H2>Sorted by C function name</H2>
-<TABLE ALIGN=CENTER BORDER>
-<TR ALIGN=LEFT>
-<TH>C name</TH><TH>Ada name</TH><TH>man page</TH></TR>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+<head>
+<title>Correspondence between ncurses C and Ada functions</title>
+</head>
+<body>
+<h1>Correspondence between ncurses C and Ada functions</h1>
+<h2>Sorted by C function name</h2>
+<table align="center" border summary="Correspondence between ncurses C and Ada functions">
+<tr align="left">
+<th>C name</th><th>Ada name</th><th>man page</th></tr>
<TR><TD>assume_default_colors()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_156">Assume_Default_Colors</A></TD><TD><A HREF="../man/default_colors.3x.html">default_colors.3x</A></TD></TR>
<TR><TD>baudrate()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_131">Baudrate</A></TD><TD><A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></TD></TR>
<TR><TD>beep()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_40">Beep</A></TD><TD><A HREF="../man/curs_beep.3x.html">curs_beep.3x</A></TD></TR>
@@ -338,4 +337,4 @@ PUBLIC "-//IETF//DTD HTML 3.0//EN">
<TR><TD>wtimeout()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_51">Set_Timeout_Mode</A></TD><TD><A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></TD></TR>
<TR><TD>wtouchln()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_76">Change_Line_Status</A></TD><TD><A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></TD></TR>
<TR><TD>wvline()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_28">Vertical_Line</A></TD><TD><A HREF="../man/curs_border.3x.html">curs_border.3x</A></TD></TR>
-</TABLE></BODY></HTML>
+</table></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-aux__adb.htm b/doc/html/ada/terminal_interface-curses-aux__adb.htm
index 9e2272bd0234..61ea3de60b2f 100644
--- a/doc/html/ada/terminal_interface-curses-aux__adb.htm
+++ b/doc/html/ada/terminal_interface-curses-aux__adb.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-aux.adb</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-aux.adb</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,125 +11,125 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-aux.adb </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Aux --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- B O D Y --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.12 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<span class="symbol"><A NAME="ref_42_40" HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A></span> <b>is</b>
- <span class="comment"><EM>--</EM></span>
- <span class="comment"><EM>-- Some helpers</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_45_14" HREF="terminal_interface-curses-aux__ads.htm#ref_91_14">Fill_String</A></span> (<span class="symbol"><A NAME="ref_45_27" HREF="terminal_interface-curses-aux__ads.htm#ref_91_27">Cp</A></span> : chars_ptr;
- <span class="symbol"><A NAME="ref_46_27" HREF="terminal_interface-curses-aux__ads.htm#ref_92_27">Str</A></span> : <b>out</b> String)
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-aux.adb </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Aux --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- B O D Y --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.12 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<b>package</b> <b>body</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<span class="symbol"><a name="ref_42_40" href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a></span> <b>is</b>
+ <span class="comment"><em>--</em></span>
+ <span class="comment"><em>-- Some helpers</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_45_14" href="terminal_interface-curses-aux__ads.htm#ref_91_14">Fill_String</a></span> (<span class="symbol"><a name="ref_45_27" href="terminal_interface-curses-aux__ads.htm#ref_91_27">Cp</a></span> : chars_ptr;
+ <span class="symbol"><a name="ref_46_27" href="terminal_interface-curses-aux__ads.htm#ref_92_27">Str</a></span> : <b>out</b> String)
<b>is</b>
- <span class="comment"><EM>-- Fill the string with the characters referenced by the</EM></span>
- <span class="comment"><EM>-- chars_ptr.</EM></span>
- <span class="comment"><EM>--</EM></span>
- <span class="symbol"><A NAME="ref_51_7">Len</A></span> : Natural;
+ <span class="comment"><em>-- Fill the string with the characters referenced by the</em></span>
+ <span class="comment"><em>-- chars_ptr.</em></span>
+ <span class="comment"><em>--</em></span>
+ <span class="symbol"><a name="ref_51_7">Len</a></span> : Natural;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_91_27">Cp</A> /= Null_Ptr <b>then</b>
- <A HREF="terminal_interface-curses-aux__adb.htm#ref_51_7">Len</A> := Natural (Strlen (<A HREF="terminal_interface-curses-aux__ads.htm#ref_91_27">Cp</A>));
- <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_92_27">Str</A>'Length &lt; <A HREF="terminal_interface-curses-aux__adb.htm#ref_51_7">Len</A> <b>then</b>
+ <b>if</b> <a href="terminal_interface-curses-aux__ads.htm#ref_91_27">Cp</a> /= Null_Ptr <b>then</b>
+ <a href="terminal_interface-curses-aux__adb.htm#ref_51_7">Len</a> := Natural (Strlen (<a href="terminal_interface-curses-aux__ads.htm#ref_91_27">Cp</a>));
+ <b>if</b> <a href="terminal_interface-curses-aux__ads.htm#ref_92_27">Str</a>'Length &lt; <a href="terminal_interface-curses-aux__adb.htm#ref_51_7">Len</a> <b>then</b>
<b>raise</b> Constraint_Error;
<b>end</b> <b>if</b>;
<b>declare</b>
- <span class="symbol"><A NAME="ref_59_13">S</A></span> : String (1 .. <A HREF="terminal_interface-curses-aux__adb.htm#ref_51_7">Len</A>);
+ <span class="symbol"><a name="ref_59_13">S</a></span> : String (1 .. <a href="terminal_interface-curses-aux__adb.htm#ref_51_7">Len</a>);
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__adb.htm#ref_59_13">S</A> := Value (<A HREF="terminal_interface-curses-aux__ads.htm#ref_91_27">Cp</A>);
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_92_27">Str</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_92_27">Str</A>'First .. (<A HREF="terminal_interface-curses-aux__ads.htm#ref_92_27">Str</A>'First + <A HREF="terminal_interface-curses-aux__adb.htm#ref_51_7">Len</A> - 1)) := <A HREF="terminal_interface-curses-aux__adb.htm#ref_59_13">S</A> (<A HREF="terminal_interface-curses-aux__adb.htm#ref_59_13">S</A>'<b>Range</b>);
+ <a href="terminal_interface-curses-aux__adb.htm#ref_59_13">S</a> := Value (<a href="terminal_interface-curses-aux__ads.htm#ref_91_27">Cp</a>);
+ <a href="terminal_interface-curses-aux__ads.htm#ref_92_27">Str</a> (<a href="terminal_interface-curses-aux__ads.htm#ref_92_27">Str</a>'First .. (<a href="terminal_interface-curses-aux__ads.htm#ref_92_27">Str</a>'First + <a href="terminal_interface-curses-aux__adb.htm#ref_51_7">Len</a> - 1)) := <a href="terminal_interface-curses-aux__adb.htm#ref_59_13">S</a> (<a href="terminal_interface-curses-aux__adb.htm#ref_59_13">S</a>'<b>Range</b>);
<b>end</b>;
<b>else</b>
- <A HREF="terminal_interface-curses-aux__adb.htm#ref_51_7">Len</A> := 0;
+ <a href="terminal_interface-curses-aux__adb.htm#ref_51_7">Len</a> := 0;
<b>end</b> <b>if</b>;
- <b>if</b> <A HREF="terminal_interface-curses-aux__adb.htm#ref_51_7">Len</A> &lt; <A HREF="terminal_interface-curses-aux__ads.htm#ref_92_27">Str</A>'Length <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_92_27">Str</A> ((<A HREF="terminal_interface-curses-aux__ads.htm#ref_92_27">Str</A>'First + <A HREF="terminal_interface-curses-aux__adb.htm#ref_51_7">Len</A>) .. <A HREF="terminal_interface-curses-aux__ads.htm#ref_92_27">Str</A>'Last) := (<b>others</b> =&gt; ' ');
+ <b>if</b> <a href="terminal_interface-curses-aux__adb.htm#ref_51_7">Len</a> &lt; <a href="terminal_interface-curses-aux__ads.htm#ref_92_27">Str</a>'Length <b>then</b>
+ <a href="terminal_interface-curses-aux__ads.htm#ref_92_27">Str</a> ((<a href="terminal_interface-curses-aux__ads.htm#ref_92_27">Str</a>'First + <a href="terminal_interface-curses-aux__adb.htm#ref_51_7">Len</a>) .. <a href="terminal_interface-curses-aux__ads.htm#ref_92_27">Str</a>'Last) := (<b>others</b> =&gt; ' ');
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_91_14">Fill_String</A>;
+ <b>end</b> <a href="terminal_interface-curses-aux__ads.htm#ref_91_14">Fill_String</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_74_13" HREF="terminal_interface-curses-aux__ads.htm#ref_96_13">Fill_String</A></span> (<span class="symbol"><A NAME="ref_74_26" HREF="terminal_interface-curses-aux__ads.htm#ref_96_26">Cp</A></span> : chars_ptr) <b>return</b> String
+ <b>function</b> <span class="symbol"><a name="ref_74_13" href="terminal_interface-curses-aux__ads.htm#ref_96_13">Fill_String</a></span> (<span class="symbol"><a name="ref_74_26" href="terminal_interface-curses-aux__ads.htm#ref_96_26">Cp</a></span> : chars_ptr) <b>return</b> String
<b>is</b>
- <span class="symbol"><A NAME="ref_76_7">Len</A></span> : Natural;
+ <span class="symbol"><a name="ref_76_7">Len</a></span> : Natural;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_26">Cp</A> /= Null_Ptr <b>then</b>
- <A HREF="terminal_interface-curses-aux__adb.htm#ref_76_7">Len</A> := Natural (Strlen (<A HREF="terminal_interface-curses-aux__ads.htm#ref_96_26">Cp</A>));
- <b>if</b> <A HREF="terminal_interface-curses-aux__adb.htm#ref_76_7">Len</A> = 0 <b>then</b>
+ <b>if</b> <a href="terminal_interface-curses-aux__ads.htm#ref_96_26">Cp</a> /= Null_Ptr <b>then</b>
+ <a href="terminal_interface-curses-aux__adb.htm#ref_76_7">Len</a> := Natural (Strlen (<a href="terminal_interface-curses-aux__ads.htm#ref_96_26">Cp</a>));
+ <b>if</b> <a href="terminal_interface-curses-aux__adb.htm#ref_76_7">Len</a> = 0 <b>then</b>
<b>return</b> "";
<b>else</b>
<b>declare</b>
- <span class="symbol"><A NAME="ref_84_16">S</A></span> : String (1 .. <A HREF="terminal_interface-curses-aux__adb.htm#ref_76_7">Len</A>);
+ <span class="symbol"><a name="ref_84_16">S</a></span> : String (1 .. <a href="terminal_interface-curses-aux__adb.htm#ref_76_7">Len</a>);
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_91_14">Fill_String</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_96_26">Cp</A>, <A HREF="terminal_interface-curses-aux__adb.htm#ref_84_16">S</A>);
- <b>return</b> <A HREF="terminal_interface-curses-aux__adb.htm#ref_84_16">S</A>;
+ <a href="terminal_interface-curses-aux__ads.htm#ref_91_14">Fill_String</a> (<a href="terminal_interface-curses-aux__ads.htm#ref_96_26">Cp</a>, <a href="terminal_interface-curses-aux__adb.htm#ref_84_16">S</a>);
+ <b>return</b> <a href="terminal_interface-curses-aux__adb.htm#ref_84_16">S</a>;
<b>end</b>;
<b>end</b> <b>if</b>;
<b>else</b>
<b>return</b> "";
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_13">Fill_String</A>;
+ <b>end</b> <a href="terminal_interface-curses-aux__ads.htm#ref_96_13">Fill_String</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_95_14" HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A></span> (<span class="symbol"><A NAME="ref_95_29" HREF="terminal_interface-curses-aux__ads.htm#ref_87_29">Code</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_95_14" href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a></span> (<span class="symbol"><a name="ref_95_29" href="terminal_interface-curses-aux__ads.htm#ref_87_29">Code</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>)
<b>is</b>
<b>begin</b>
- <b>case</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_29">Code</A> <b>is</b>
- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_85_7">E_Ok</A> =&gt; <b>null</b>;
- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_84_7">E_System_Error</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_528_4">Eti_System_Error</A>;
- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_83_7">E_Bad_Argument</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_529_4">Eti_Bad_Argument</A>;
- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_82_7">E_Posted</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_530_4">Eti_Posted</A>;
- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_81_7">E_Connected</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_531_4">Eti_Connected</A>;
- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_7">E_Bad_State</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_532_4">Eti_Bad_State</A>;
- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_79_7">E_No_Room</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_533_4">Eti_No_Room</A>;
- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_7">E_Not_Posted</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_534_4">Eti_Not_Posted</A>;
- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_77_7">E_Unknown_Command</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_535_4">Eti_Unknown_Command</A>;
- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_76_7">E_No_Match</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_536_4">Eti_No_Match</A>;
- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_7">E_Not_Selectable</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_537_4">Eti_Not_Selectable</A>;
- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_74_7">E_Not_Connected</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_538_4">Eti_Not_Connected</A>;
- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_73_7">E_Request_Denied</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_539_4">Eti_Request_Denied</A>;
- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_7">E_Invalid_Field</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_540_4">Eti_Invalid_Field</A>;
- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_7">E_Current</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_541_4">Eti_Current</A>;
+ <b>case</b> <a href="terminal_interface-curses-aux__ads.htm#ref_87_29">Code</a> <b>is</b>
+ <b>when</b> <a href="terminal_interface-curses-aux__ads.htm#ref_85_7">E_Ok</a> =&gt; <b>null</b>;
+ <b>when</b> <a href="terminal_interface-curses-aux__ads.htm#ref_84_7">E_System_Error</a> =&gt; <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_528_4">Eti_System_Error</a>;
+ <b>when</b> <a href="terminal_interface-curses-aux__ads.htm#ref_83_7">E_Bad_Argument</a> =&gt; <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_529_4">Eti_Bad_Argument</a>;
+ <b>when</b> <a href="terminal_interface-curses-aux__ads.htm#ref_82_7">E_Posted</a> =&gt; <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_530_4">Eti_Posted</a>;
+ <b>when</b> <a href="terminal_interface-curses-aux__ads.htm#ref_81_7">E_Connected</a> =&gt; <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_531_4">Eti_Connected</a>;
+ <b>when</b> <a href="terminal_interface-curses-aux__ads.htm#ref_80_7">E_Bad_State</a> =&gt; <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_532_4">Eti_Bad_State</a>;
+ <b>when</b> <a href="terminal_interface-curses-aux__ads.htm#ref_79_7">E_No_Room</a> =&gt; <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_533_4">Eti_No_Room</a>;
+ <b>when</b> <a href="terminal_interface-curses-aux__ads.htm#ref_78_7">E_Not_Posted</a> =&gt; <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_534_4">Eti_Not_Posted</a>;
+ <b>when</b> <a href="terminal_interface-curses-aux__ads.htm#ref_77_7">E_Unknown_Command</a> =&gt; <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_535_4">Eti_Unknown_Command</a>;
+ <b>when</b> <a href="terminal_interface-curses-aux__ads.htm#ref_76_7">E_No_Match</a> =&gt; <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_536_4">Eti_No_Match</a>;
+ <b>when</b> <a href="terminal_interface-curses-aux__ads.htm#ref_75_7">E_Not_Selectable</a> =&gt; <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_537_4">Eti_Not_Selectable</a>;
+ <b>when</b> <a href="terminal_interface-curses-aux__ads.htm#ref_74_7">E_Not_Connected</a> =&gt; <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_538_4">Eti_Not_Connected</a>;
+ <b>when</b> <a href="terminal_interface-curses-aux__ads.htm#ref_73_7">E_Request_Denied</a> =&gt; <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_539_4">Eti_Request_Denied</a>;
+ <b>when</b> <a href="terminal_interface-curses-aux__ads.htm#ref_72_7">E_Invalid_Field</a> =&gt; <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_540_4">Eti_Invalid_Field</a>;
+ <b>when</b> <a href="terminal_interface-curses-aux__ads.htm#ref_71_7">E_Current</a> =&gt; <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_541_4">Eti_Current</a>;
<b>end</b> <b>case</b>;
- <b>end</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A>;
+ <b>end</b> <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-aux__ads.htm b/doc/html/ada/terminal_interface-curses-aux__ads.htm
index 3022236c5a9c..b53971961445 100644
--- a/doc/html/ada/terminal_interface-curses-aux__ads.htm
+++ b/doc/html/ada/terminal_interface-curses-aux__ads.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-aux.ads</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-aux.ads</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,126 +11,126 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-aux.ads </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Aux --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- S P E C --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2018,2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1998-2011,2014 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.25 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-aux.ads </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Aux --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- S P E C --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2018,2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1998-2011,2014 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.25 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
<b>with</b> System;
-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings;
+<b>with</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C;
+<b>with</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.Strings; <b>use</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.Strings;
-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<span class="symbol"><A NAME="ref_46_35" HREF="terminal_interface-curses-aux__adb.htm#ref_42_40">Aux</A></span> <b>is</b>
- <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>);
+<b>package</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<span class="symbol"><a name="ref_46_35" href="terminal_interface-curses-aux__adb.htm#ref_42_40">Aux</a></span> <b>is</b>
+ <b>pragma</b> Preelaborate (<a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>);
- <b>subtype</b> <span class="symbol"><A NAME="ref_49_12">C_Int</A></span> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
- <b>subtype</b> <span class="symbol"><A NAME="ref_50_12">C_Short</A></span> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short;
- <b>subtype</b> <span class="symbol"><A NAME="ref_51_12">C_Long_Int</A></span> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.long;
- <b>subtype</b> <span class="symbol"><A NAME="ref_52_12">C_Size_T</A></span> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.size_t;
- <b>subtype</b> <span class="symbol"><A NAME="ref_53_12">C_UInt</A></span> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.unsigned;
- <b>subtype</b> <span class="symbol"><A NAME="ref_54_12">C_ULong</A></span> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.unsigned_long;
- <b>subtype</b> <span class="symbol"><A NAME="ref_55_12">C_Char_Ptr</A></span> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings.chars_ptr;
- <b>type</b> <span class="symbol"><A NAME="ref_56_12">C_Void_Ptr</A></span> <b>is</b> <b>new</b> System.Address;
+ <b>subtype</b> <span class="symbol"><a name="ref_49_12">C_Int</a></span> <b>is</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.int;
+ <b>subtype</b> <span class="symbol"><a name="ref_50_12">C_Short</a></span> <b>is</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.short;
+ <b>subtype</b> <span class="symbol"><a name="ref_51_12">C_Long_Int</a></span> <b>is</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.long;
+ <b>subtype</b> <span class="symbol"><a name="ref_52_12">C_Size_T</a></span> <b>is</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.size_t;
+ <b>subtype</b> <span class="symbol"><a name="ref_53_12">C_UInt</a></span> <b>is</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.unsigned;
+ <b>subtype</b> <span class="symbol"><a name="ref_54_12">C_ULong</a></span> <b>is</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.unsigned_long;
+ <b>subtype</b> <span class="symbol"><a name="ref_55_12">C_Char_Ptr</a></span> <b>is</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.Strings.chars_ptr;
+ <b>type</b> <span class="symbol"><a name="ref_56_12">C_Void_Ptr</a></span> <b>is</b> <b>new</b> System.Address;
- <span class="comment"><EM>-- This is how those constants are defined in ncurses. I see them also</EM></span>
- <span class="comment"><EM>-- exactly like this in all ETI implementations I ever tested. So it</EM></span>
- <span class="comment"><EM>-- could be that this is quite general, but please check with your curses.</EM></span>
- <span class="comment"><EM>-- This is critical, because curses sometime mixes Boolean returns with</EM></span>
- <span class="comment"><EM>-- returning an error status.</EM></span>
- <span class="symbol"><A NAME="ref_63_4">Curses_Ok</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_12_4">OK</A>;
- <span class="symbol"><A NAME="ref_64_4">Curses_Err</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_13_4">ERR</A>;
+ <span class="comment"><em>-- This is how those constants are defined in ncurses. I see them also</em></span>
+ <span class="comment"><em>-- exactly like this in all ETI implementations I ever tested. So it</em></span>
+ <span class="comment"><em>-- could be that this is quite general, but please check with your curses.</em></span>
+ <span class="comment"><em>-- This is critical, because curses sometime mixes Boolean returns with</em></span>
+ <span class="comment"><em>-- returning an error status.</em></span>
+ <span class="symbol"><a name="ref_63_4">Curses_Ok</a></span> : <b>constant</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_12_4">OK</a>;
+ <span class="symbol"><a name="ref_64_4">Curses_Err</a></span> : <b>constant</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_13_4">ERR</a>;
- <span class="symbol"><A NAME="ref_66_4">Curses_True</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_15_4">TRUE</A>;
- <span class="symbol"><A NAME="ref_67_4">Curses_False</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_16_4">FALSE</A>;
+ <span class="symbol"><a name="ref_66_4">Curses_True</a></span> : <b>constant</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_15_4">TRUE</a>;
+ <span class="symbol"><a name="ref_67_4">Curses_False</a></span> : <b>constant</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_16_4">FALSE</a>;
- <span class="comment"><EM>-- Eti_Error: type for error codes returned by the menu and form subsystem</EM></span>
- <b>type</b> <span class="symbol"><A NAME="ref_70_9" HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Eti_Error</A></span> <b>is</b>
- (<span class="symbol"><A NAME="ref_71_7">E_Current</A></span>,
- <span class="symbol"><A NAME="ref_72_7">E_Invalid_Field</A></span>,
- <span class="symbol"><A NAME="ref_73_7">E_Request_Denied</A></span>,
- <span class="symbol"><A NAME="ref_74_7">E_Not_Connected</A></span>,
- <span class="symbol"><A NAME="ref_75_7">E_Not_Selectable</A></span>,
- <span class="symbol"><A NAME="ref_76_7">E_No_Match</A></span>,
- <span class="symbol"><A NAME="ref_77_7">E_Unknown_Command</A></span>,
- <span class="symbol"><A NAME="ref_78_7">E_Not_Posted</A></span>,
- <span class="symbol"><A NAME="ref_79_7">E_No_Room</A></span>,
- <span class="symbol"><A NAME="ref_80_7">E_Bad_State</A></span>,
- <span class="symbol"><A NAME="ref_81_7">E_Connected</A></span>,
- <span class="symbol"><A NAME="ref_82_7">E_Posted</A></span>,
- <span class="symbol"><A NAME="ref_83_7">E_Bad_Argument</A></span>,
- <span class="symbol"><A NAME="ref_84_7">E_System_Error</A></span>,
- <span class="symbol"><A NAME="ref_85_7">E_Ok</A></span>);
+ <span class="comment"><em>-- Eti_Error: type for error codes returned by the menu and form subsystem</em></span>
+ <b>type</b> <span class="symbol"><a name="ref_70_9" href="terminal_interface-curses-aux__ads.htm#ref_46_35">Eti_Error</a></span> <b>is</b>
+ (<span class="symbol"><a name="ref_71_7">E_Current</a></span>,
+ <span class="symbol"><a name="ref_72_7">E_Invalid_Field</a></span>,
+ <span class="symbol"><a name="ref_73_7">E_Request_Denied</a></span>,
+ <span class="symbol"><a name="ref_74_7">E_Not_Connected</a></span>,
+ <span class="symbol"><a name="ref_75_7">E_Not_Selectable</a></span>,
+ <span class="symbol"><a name="ref_76_7">E_No_Match</a></span>,
+ <span class="symbol"><a name="ref_77_7">E_Unknown_Command</a></span>,
+ <span class="symbol"><a name="ref_78_7">E_Not_Posted</a></span>,
+ <span class="symbol"><a name="ref_79_7">E_No_Room</a></span>,
+ <span class="symbol"><a name="ref_80_7">E_Bad_State</a></span>,
+ <span class="symbol"><a name="ref_81_7">E_Connected</a></span>,
+ <span class="symbol"><a name="ref_82_7">E_Posted</a></span>,
+ <span class="symbol"><a name="ref_83_7">E_Bad_Argument</a></span>,
+ <span class="symbol"><a name="ref_84_7">E_System_Error</a></span>,
+ <span class="symbol"><a name="ref_85_7">E_Ok</a></span>);
- <b>procedure</b> <span class="symbol"><A NAME="ref_87_14" HREF="terminal_interface-curses-aux__adb.htm#ref_95_14">Eti_Exception</A></span> (<span class="symbol"><A NAME="ref_87_29" HREF="terminal_interface-curses-aux__adb.htm#ref_95_29">Code</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>);
- <span class="comment"><EM>-- Do nothing if Code = E_Ok.</EM></span>
- <span class="comment"><EM>-- Else dispatch the error code and raise the appropriate exception.</EM></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_87_14" href="terminal_interface-curses-aux__adb.htm#ref_95_14">Eti_Exception</a></span> (<span class="symbol"><a name="ref_87_29" href="terminal_interface-curses-aux__adb.htm#ref_95_29">Code</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>);
+ <span class="comment"><em>-- Do nothing if Code = E_Ok.</em></span>
+ <span class="comment"><em>-- Else dispatch the error code and raise the appropriate exception.</em></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_91_14" HREF="terminal_interface-curses-aux__adb.htm#ref_45_14">Fill_String</A></span> (<span class="symbol"><A NAME="ref_91_27" HREF="terminal_interface-curses-aux__adb.htm#ref_45_27">Cp</A></span> : chars_ptr;
- <span class="symbol"><A NAME="ref_92_27" HREF="terminal_interface-curses-aux__adb.htm#ref_46_27">Str</A></span> : <b>out</b> String);
- <span class="comment"><EM>-- Fill the Str parameter with the string denoted by the chars_ptr</EM></span>
- <span class="comment"><EM>-- C-Style string.</EM></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_91_14" href="terminal_interface-curses-aux__adb.htm#ref_45_14">Fill_String</a></span> (<span class="symbol"><a name="ref_91_27" href="terminal_interface-curses-aux__adb.htm#ref_45_27">Cp</a></span> : chars_ptr;
+ <span class="symbol"><a name="ref_92_27" href="terminal_interface-curses-aux__adb.htm#ref_46_27">Str</a></span> : <b>out</b> String);
+ <span class="comment"><em>-- Fill the Str parameter with the string denoted by the chars_ptr</em></span>
+ <span class="comment"><em>-- C-Style string.</em></span>
- <b>function</b> <span class="symbol"><A NAME="ref_96_13" HREF="terminal_interface-curses-aux__adb.htm#ref_74_13">Fill_String</A></span> (<span class="symbol"><A NAME="ref_96_26" HREF="terminal_interface-curses-aux__adb.htm#ref_74_26">Cp</A></span> : chars_ptr) <b>return</b> String;
- <span class="comment"><EM>-- Same but as function.</EM></span>
+ <b>function</b> <span class="symbol"><a name="ref_96_13" href="terminal_interface-curses-aux__adb.htm#ref_74_13">Fill_String</a></span> (<span class="symbol"><a name="ref_96_26" href="terminal_interface-curses-aux__adb.htm#ref_74_26">Cp</a></span> : chars_ptr) <b>return</b> String;
+ <span class="comment"><em>-- Same but as function.</em></span>
<b>private</b>
- <b>for</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>'Size <b>use</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>'Size;
- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>);
- <b>for</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A> <b>use</b>
- (<A HREF="terminal_interface-curses-aux__ads.htm#ref_71_7">E_Current</A> =&gt; <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_94_4">E_CURRENT</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_7">E_Invalid_Field</A> =&gt; <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_93_4">E_INVALID_FIELD</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_73_7">E_Request_Denied</A> =&gt; <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_92_4">E_REQUEST_DENIED</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_74_7">E_Not_Connected</A> =&gt; <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_91_4">E_NOT_CONNECTED</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_7">E_Not_Selectable</A> =&gt; <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_90_4">E_NOT_SELECTABLE</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_76_7">E_No_Match</A> =&gt; <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_89_4">E_NO_MATCH</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_77_7">E_Unknown_Command</A> =&gt; <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_88_4">E_UNKNOWN_COMMAND</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_7">E_Not_Posted</A> =&gt; <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_87_4">E_NOT_POSTED</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_79_7">E_No_Room</A> =&gt; <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_86_4">E_NO_ROOM</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_7">E_Bad_State</A> =&gt; <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_85_4">E_BAD_STATE</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_81_7">E_Connected</A> =&gt; <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_84_4">E_CONNECTED</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_82_7">E_Posted</A> =&gt; <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_83_4">E_POSTED</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_83_7">E_Bad_Argument</A> =&gt; <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_82_4">E_BAD_ARGUMENT</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_84_7">E_System_Error</A> =&gt; <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_81_4">E_SYSTEM_ERROR</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_85_7">E_Ok</A> =&gt; <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_80_4">E_OK</A>);
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>;
-</PRE></BODY></HTML>
+ <b>for</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>'Size <b>use</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>'Size;
+ <b>pragma</b> Convention (C, <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>);
+ <b>for</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a> <b>use</b>
+ (<a href="terminal_interface-curses-aux__ads.htm#ref_71_7">E_Current</a> =&gt; <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_94_4">E_CURRENT</a>,
+ <a href="terminal_interface-curses-aux__ads.htm#ref_72_7">E_Invalid_Field</a> =&gt; <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_93_4">E_INVALID_FIELD</a>,
+ <a href="terminal_interface-curses-aux__ads.htm#ref_73_7">E_Request_Denied</a> =&gt; <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_92_4">E_REQUEST_DENIED</a>,
+ <a href="terminal_interface-curses-aux__ads.htm#ref_74_7">E_Not_Connected</a> =&gt; <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_91_4">E_NOT_CONNECTED</a>,
+ <a href="terminal_interface-curses-aux__ads.htm#ref_75_7">E_Not_Selectable</a> =&gt; <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_90_4">E_NOT_SELECTABLE</a>,
+ <a href="terminal_interface-curses-aux__ads.htm#ref_76_7">E_No_Match</a> =&gt; <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_89_4">E_NO_MATCH</a>,
+ <a href="terminal_interface-curses-aux__ads.htm#ref_77_7">E_Unknown_Command</a> =&gt; <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_88_4">E_UNKNOWN_COMMAND</a>,
+ <a href="terminal_interface-curses-aux__ads.htm#ref_78_7">E_Not_Posted</a> =&gt; <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_87_4">E_NOT_POSTED</a>,
+ <a href="terminal_interface-curses-aux__ads.htm#ref_79_7">E_No_Room</a> =&gt; <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_86_4">E_NO_ROOM</a>,
+ <a href="terminal_interface-curses-aux__ads.htm#ref_80_7">E_Bad_State</a> =&gt; <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_85_4">E_BAD_STATE</a>,
+ <a href="terminal_interface-curses-aux__ads.htm#ref_81_7">E_Connected</a> =&gt; <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_84_4">E_CONNECTED</a>,
+ <a href="terminal_interface-curses-aux__ads.htm#ref_82_7">E_Posted</a> =&gt; <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_83_4">E_POSTED</a>,
+ <a href="terminal_interface-curses-aux__ads.htm#ref_83_7">E_Bad_Argument</a> =&gt; <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_82_4">E_BAD_ARGUMENT</a>,
+ <a href="terminal_interface-curses-aux__ads.htm#ref_84_7">E_System_Error</a> =&gt; <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_81_4">E_SYSTEM_ERROR</a>,
+ <a href="terminal_interface-curses-aux__ads.htm#ref_85_7">E_Ok</a> =&gt; <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_80_4">E_OK</a>);
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__adb.htm b/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__adb.htm
index f7952f6fae64..6c51ab7d9259 100644
--- a/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__adb.htm
+++ b/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__adb.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-forms-field_types-alpha.adb</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-forms-field_types-alpha.adb</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,67 +11,67 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-alpha.adb </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Alpha --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- B O D Y --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2011,2014 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.14 @</EM></span>
-<span class="comment"><EM>-- @Date: 2020/02/02 23:34:34 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>;
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-forms-field_types-alpha.adb </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Forms.Field_Types.Alpha --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- B O D Y --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2011,2014 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.14 @</em></span>
+<span class="comment"><em>-- @Date: 2020/02/02 23:34:34 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<b>with</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>; <b>use</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<span class="symbol"><A NAME="ref_45_58" HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_42_53">Alpha</A></span> <b>is</b>
+<b>package</b> <b>body</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<span class="symbol"><a name="ref_45_58" href="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_42_53">Alpha</a></span> <b>is</b>
- <b>procedure</b> <span class="symbol"><A NAME="ref_47_14" HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_50_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_47_30" HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_50_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_48_30" HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_51_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_45_9">Alpha_Field</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_47_14" href="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_50_14">Set_Field_Type</a></span> (<span class="symbol"><a name="ref_47_30" href="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_50_30">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_48_30" href="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_51_30">Typ</a></span> : <a href="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_45_9">Alpha_Field</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_50_16">Set_Fld_Type</A></span> (<span class="symbol"><A NAME="ref_50_30" HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_50_16">F</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_50_30">Fld</A>;
- <span class="symbol"><A NAME="ref_51_30" HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_50_16">Arg1</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_47_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_50_16">Set_Fld_Type</a></span> (<span class="symbol"><a name="ref_50_30">F</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a> := <a href="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_50_30">Fld</a>;
+ <span class="symbol"><a name="ref_51_30">Arg1</a></span> : <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_47_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Fld_Type, "set_field_type_alpha");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_50_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_51_30">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_47_12">C_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_51_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_47_9">Minimum_Field_Width</A>)));
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_152_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_50_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_51_30">Typ</A>);
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_50_14">Set_Field_Type</A>;
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_50_16">Set_Fld_Type</a> (<a href="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_51_30">Arg1</a> =&gt; <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_47_12">C_Int</a> (<a href="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_51_30">Typ</a>.<a href="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_47_9">Minimum_Field_Width</a>)));
+ <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_152_14">Wrap_Builtin</a> (<a href="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_50_30">Fld</a>, <a href="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_51_30">Typ</a>);
+ <b>end</b> <a href="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_50_14">Set_Field_Type</a>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_42_53">Alpha</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<a href="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_42_53">Alpha</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__ads.htm b/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__ads.htm
index f2d18975bffa..88ad718cdd93 100644
--- a/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__ads.htm
+++ b/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__ads.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-forms-field_types-alpha.ads</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-forms-field_types-alpha.ads</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,62 +11,62 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-alpha.ads </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Alpha --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- S P E C --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.13 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<span class="symbol"><A NAME="ref_42_53" HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_45_58">Alpha</A></span> <b>is</b>
- <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_42_53">Alpha</A>);
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-forms-field_types-alpha.ads </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Forms.Field_Types.Alpha --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- S P E C --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.13 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<b>package</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<span class="symbol"><a name="ref_42_53" href="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_45_58">Alpha</a></span> <b>is</b>
+ <b>pragma</b> Preelaborate (<a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<a href="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_42_53">Alpha</a>);
- <b>type</b> <span class="symbol"><A NAME="ref_45_9">Alpha_Field</A></span> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_53_9">Field_Type</A>
+ <b>type</b> <span class="symbol"><a name="ref_45_9">Alpha_Field</a></span> <b>is</b> <b>new</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_53_9">Field_Type</a>
<b>with</b> <b>record</b>
- <span class="symbol"><A NAME="ref_47_9">Minimum_Field_Width</A></span> : Natural := 0;
+ <span class="symbol"><a name="ref_47_9">Minimum_Field_Width</a></span> : Natural := 0;
<b>end</b> <b>record</b>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_50_14" HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_47_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_50_30" HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_47_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_51_30" HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_48_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_45_9">Alpha_Field</A>);
+ <b>procedure</b> <span class="symbol"><a name="ref_50_14" href="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_47_14">Set_Field_Type</a></span> (<span class="symbol"><a name="ref_50_30" href="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_47_30">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_51_30" href="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_48_30">Typ</a></span> : <a href="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_45_9">Alpha_Field</a>);
<b>pragma</b> Inline (Set_Field_Type);
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_42_53">Alpha</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<a href="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_42_53">Alpha</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__adb.htm b/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__adb.htm
index ac3a10cc5e56..7e759e6c994a 100644
--- a/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__adb.htm
+++ b/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__adb.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-forms-field_types-alphanumeric.adb</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-forms-field_types-alphanumeric.adb</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,67 +11,67 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-alphanumeric.adb </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- B O D Y --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2011,2014 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.14 @</EM></span>
-<span class="comment"><EM>-- @Date: 2020/02/02 23:34:34 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>;
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-forms-field_types-alphanumeric.adb </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- B O D Y --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2011,2014 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.14 @</em></span>
+<span class="comment"><em>-- @Date: 2020/02/02 23:34:34 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<b>with</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>; <b>use</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<span class="symbol"><A NAME="ref_45_58" HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_42_53">AlphaNumeric</A></span> <b>is</b>
+<b>package</b> <b>body</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<span class="symbol"><a name="ref_45_58" href="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_42_53">AlphaNumeric</a></span> <b>is</b>
- <b>procedure</b> <span class="symbol"><A NAME="ref_47_14" HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_51_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_47_30" HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_51_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_48_30" HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_52_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_46_9">AlphaNumeric_Field</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_47_14" href="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_51_14">Set_Field_Type</a></span> (<span class="symbol"><a name="ref_47_30" href="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_51_30">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_48_30" href="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_52_30">Typ</a></span> : <a href="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_46_9">AlphaNumeric_Field</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_50_16">Set_Fld_Type</A></span> (<span class="symbol"><A NAME="ref_50_30" HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_50_16">F</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_51_30">Fld</A>;
- <span class="symbol"><A NAME="ref_51_30" HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_50_16">Arg1</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_47_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_50_16">Set_Fld_Type</a></span> (<span class="symbol"><a name="ref_50_30">F</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a> := <a href="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_51_30">Fld</a>;
+ <span class="symbol"><a name="ref_51_30">Arg1</a></span> : <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_47_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Fld_Type, "set_field_type_alnum");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_50_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_51_30">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_47_12">C_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_48_9">Minimum_Field_Width</A>)));
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_152_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_51_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_52_30">Typ</A>);
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_51_14">Set_Field_Type</A>;
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_50_16">Set_Fld_Type</a> (<a href="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_51_30">Arg1</a> =&gt; <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_47_12">C_Int</a> (<a href="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_52_30">Typ</a>.<a href="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_48_9">Minimum_Field_Width</a>)));
+ <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_152_14">Wrap_Builtin</a> (<a href="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_51_30">Fld</a>, <a href="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_52_30">Typ</a>);
+ <b>end</b> <a href="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_51_14">Set_Field_Type</a>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_42_53">AlphaNumeric</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<a href="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_42_53">AlphaNumeric</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__ads.htm b/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__ads.htm
index 4c398efe1947..73cdb40ef0e9 100644
--- a/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__ads.htm
+++ b/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__ads.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-forms-field_types-alphanumeric.ads</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-forms-field_types-alphanumeric.ads</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,63 +11,63 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-alphanumeric.ads </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- S P E C --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.13 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<span class="symbol"><A NAME="ref_42_53" HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_45_58">AlphaNumeric</A></span> <b>is</b>
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-forms-field_types-alphanumeric.ads </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- S P E C --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.13 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<b>package</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<span class="symbol"><a name="ref_42_53" href="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_45_58">AlphaNumeric</a></span> <b>is</b>
<b>pragma</b> Preelaborate
- (<A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_42_53">AlphaNumeric</A>);
+ (<a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<a href="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_42_53">AlphaNumeric</a>);
- <b>type</b> <span class="symbol"><A NAME="ref_46_9">AlphaNumeric_Field</A></span> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_53_9">Field_Type</A>
+ <b>type</b> <span class="symbol"><a name="ref_46_9">AlphaNumeric_Field</a></span> <b>is</b> <b>new</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_53_9">Field_Type</a>
<b>with</b> <b>record</b>
- <span class="symbol"><A NAME="ref_48_9">Minimum_Field_Width</A></span> : Natural := 0;
+ <span class="symbol"><a name="ref_48_9">Minimum_Field_Width</a></span> : Natural := 0;
<b>end</b> <b>record</b>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_51_14" HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_47_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_51_30" HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_47_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_52_30" HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_48_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_46_9">AlphaNumeric_Field</A>);
+ <b>procedure</b> <span class="symbol"><a name="ref_51_14" href="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_47_14">Set_Field_Type</a></span> (<span class="symbol"><a name="ref_51_30" href="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_47_30">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_52_30" href="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_48_30">Typ</a></span> : <a href="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_46_9">AlphaNumeric_Field</a>);
<b>pragma</b> Inline (Set_Field_Type);
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_42_53">AlphaNumeric</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<a href="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_42_53">AlphaNumeric</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm b/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm
index 96d61f667f73..acd17292623c 100644
--- a/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm
+++ b/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-forms-field_types-enumeration-ada.adb</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-forms-field_types-enumeration-ada.adb</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,90 +11,90 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-enumeration-ada.adb </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- B O D Y --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2004,2011 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.12 @</EM></span>
-<span class="comment"><EM>-- @Date: 2020/02/02 23:34:34 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-forms-field_types-enumeration-ada.adb </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- B O D Y --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2004,2011 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.12 @</em></span>
+<span class="comment"><em>-- @Date: 2020/02/02 23:34:34 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
<b>with</b> Ada.Characters.Handling; <b>use</b> Ada.Characters.Handling;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_44_53">Enumeration</A>.<span class="symbol"><A NAME="ref_45_70" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_45_65">Ada</A></span> <b>is</b>
+<b>package</b> <b>body</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_44_53">Enumeration</a>.<span class="symbol"><a name="ref_45_70" href="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_45_65">Ada</a></span> <b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_47_13" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_49_13">Create</A></span> (<span class="symbol"><A NAME="ref_47_21" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_49_21">Set</A></span> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_51_9">Type_Set</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_51_46">Mixed_Case</A>;
- <span class="symbol"><A NAME="ref_48_21" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_50_21">Case_Sensitive</A></span> : Boolean := False;
- <span class="symbol"><A NAME="ref_49_21" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_51_21">Must_Be_Unique</A></span> : Boolean := False)
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_63_9">Enumeration_Field</A>
+ <b>function</b> <span class="symbol"><a name="ref_47_13" href="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_49_13">Create</a></span> (<span class="symbol"><a name="ref_47_21" href="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_49_21">Set</a></span> : <a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_51_9">Type_Set</a> := <a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_51_46">Mixed_Case</a>;
+ <span class="symbol"><a name="ref_48_21" href="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_50_21">Case_Sensitive</a></span> : Boolean := False;
+ <span class="symbol"><a name="ref_49_21" href="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_51_21">Must_Be_Unique</a></span> : Boolean := False)
+ <b>return</b> <a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_63_9">Enumeration_Field</a>
<b>is</b>
- <span class="symbol"><A NAME="ref_52_7">I</A></span> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_56_9">Enumeration_Info</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_43_9">T</A>'Pos (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_43_9">T</A>'Last) - <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_43_9">T</A>'Pos (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_43_9">T</A>'First) + 1);
- <span class="symbol"><A NAME="ref_53_7">J</A></span> : Positive := 1;
+ <span class="symbol"><a name="ref_52_7">I</a></span> : <a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_56_9">Enumeration_Info</a> (<a href="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_43_9">T</a>'Pos (<a href="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_43_9">T</a>'Last) - <a href="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_43_9">T</a>'Pos (<a href="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_43_9">T</a>'First) + 1);
+ <span class="symbol"><a name="ref_53_7">J</a></span> : Positive := 1;
<b>begin</b>
- <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_52_7">I</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_58_10">Case_Sensitive</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_50_21">Case_Sensitive</A>;
- <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_52_7">I</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_59_10">Match_Must_Be_Unique</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_51_21">Must_Be_Unique</A>;
+ <a href="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_52_7">I</a>.<a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_58_10">Case_Sensitive</a> := <a href="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_50_21">Case_Sensitive</a>;
+ <a href="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_52_7">I</a>.<a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_59_10">Match_Must_Be_Unique</a> := <a href="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_51_21">Must_Be_Unique</a>;
- <b>for</b> <span class="symbol"><A NAME="ref_58_11">E</A></span> <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_43_9">T</A>'<b>Range</b> <b>loop</b>
- <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_52_7">I</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_60_10">Names</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_53_7">J</A>) := <b>new</b> String'(<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_43_9">T</A>'Image (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_58_11">E</A>));
- <span class="comment"><EM>-- The Image attribute defaults to upper case, so we have to handle</EM></span>
- <span class="comment"><EM>-- only the other ones...</EM></span>
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_49_21">Set</A> /= <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_51_34">Upper_Case</A> <b>then</b>
- <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_52_7">I</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_60_10">Names</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_53_7">J</A>).<b>all</b> := To_Lower (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_52_7">I</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_60_10">Names</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_53_7">J</A>).<b>all</b>);
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_49_21">Set</A> = <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_51_46">Mixed_Case</A> <b>then</b>
- <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_52_7">I</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_60_10">Names</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_53_7">J</A>).<b>all</b> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_52_7">I</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_60_10">Names</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_53_7">J</A>).<b>all</b>'First) :=
- To_Upper (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_52_7">I</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_60_10">Names</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_53_7">J</A>).<b>all</b> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_52_7">I</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_60_10">Names</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_53_7">J</A>).<b>all</b>'First));
+ <b>for</b> <span class="symbol"><a name="ref_58_11">E</a></span> <b>in</b> <a href="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_43_9">T</a>'<b>Range</b> <b>loop</b>
+ <a href="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_52_7">I</a>.<a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_60_10">Names</a> (<a href="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_53_7">J</a>) := <b>new</b> String'(<a href="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_43_9">T</a>'Image (<a href="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_58_11">E</a>));
+ <span class="comment"><em>-- The Image attribute defaults to upper case, so we have to handle</em></span>
+ <span class="comment"><em>-- only the other ones...</em></span>
+ <b>if</b> <a href="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_49_21">Set</a> /= <a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_51_34">Upper_Case</a> <b>then</b>
+ <a href="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_52_7">I</a>.<a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_60_10">Names</a> (<a href="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_53_7">J</a>).<b>all</b> := To_Lower (<a href="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_52_7">I</a>.<a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_60_10">Names</a> (<a href="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_53_7">J</a>).<b>all</b>);
+ <b>if</b> <a href="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_49_21">Set</a> = <a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_51_46">Mixed_Case</a> <b>then</b>
+ <a href="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_52_7">I</a>.<a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_60_10">Names</a> (<a href="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_53_7">J</a>).<b>all</b> (<a href="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_52_7">I</a>.<a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_60_10">Names</a> (<a href="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_53_7">J</a>).<b>all</b>'First) :=
+ To_Upper (<a href="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_52_7">I</a>.<a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_60_10">Names</a> (<a href="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_53_7">J</a>).<b>all</b> (<a href="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_52_7">I</a>.<a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_60_10">Names</a> (<a href="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_53_7">J</a>).<b>all</b>'First));
<b>end</b> <b>if</b>;
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_53_7">J</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_53_7">J</A> + 1;
+ <a href="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_53_7">J</a> := <a href="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_53_7">J</a> + 1;
<b>end</b> <b>loop</b>;
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_65_13">Create</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_52_7">I</A>, True);
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_49_13">Create</A>;
+ <b>return</b> <a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_65_13">Create</a> (<a href="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_52_7">I</a>, True);
+ <b>end</b> <a href="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_49_13">Create</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_75_13" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_54_13">Value</A></span> (<span class="symbol"><A NAME="ref_75_20" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_54_20">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_76_20" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_55_20">Buf</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A>'First) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_43_9">T</A>
+ <b>function</b> <span class="symbol"><a name="ref_75_13" href="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_54_13">Value</a></span> (<span class="symbol"><a name="ref_75_20" href="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_54_20">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_76_20" href="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_55_20">Buf</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</a> := <a href="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</a>'First) <b>return</b> <a href="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_43_9">T</a>
<b>is</b>
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_43_9">T</A>'Value (<A HREF="terminal_interface-curses-forms__ads.htm#ref_370_13">Get_Buffer</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_54_20">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_55_20">Buf</A>));
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_54_13">Value</A>;
+ <b>return</b> <a href="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_43_9">T</a>'Value (<a href="terminal_interface-curses-forms__ads.htm#ref_370_13">Get_Buffer</a> (<a href="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_54_20">Fld</a>, <a href="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_55_20">Buf</a>));
+ <b>end</b> <a href="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_54_13">Value</a>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_44_53">Enumeration</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_45_65">Ada</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_44_53">Enumeration</a>.<a href="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_45_65">Ada</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm b/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm
index 07d746053635..9ec8c2659f75 100644
--- a/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm
+++ b/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-forms-field_types-enumeration-ada.ads</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-forms-field_types-enumeration-ada.ads</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,68 +11,68 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-enumeration-ada.ads </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- S P E C --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2002,2003 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.12 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-forms-field_types-enumeration-ada.ads </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- S P E C --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2002,2003 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.12 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
<b>generic</b>
- <b>type</b> <span class="symbol"><A NAME="ref_43_9" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_45_65">T</A></span> <b>is</b> (&lt;&gt;);
+ <b>type</b> <span class="symbol"><a name="ref_43_9">T</a></span> <b>is</b> (&lt;&gt;);
-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_44_53">Enumeration</A>.<span class="symbol"><A NAME="ref_45_65" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_45_70">Ada</A></span> <b>is</b>
+<b>package</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_44_53">Enumeration</a>.<span class="symbol"><a name="ref_45_65" href="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_45_70">Ada</a></span> <b>is</b>
<b>pragma</b> Preelaborate
- (<A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_44_53">Enumeration</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_45_65">Ada</A>);
+ (<a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_44_53">Enumeration</a>.<a href="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_45_65">Ada</a>);
- <b>function</b> <span class="symbol"><A NAME="ref_49_13" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_47_13">Create</A></span> (<span class="symbol"><A NAME="ref_49_21" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_47_21">Set</A></span> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_51_9">Type_Set</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_51_46">Mixed_Case</A>;
- <span class="symbol"><A NAME="ref_50_21" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_48_21">Case_Sensitive</A></span> : Boolean := False;
- <span class="symbol"><A NAME="ref_51_21" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_49_21">Must_Be_Unique</A></span> : Boolean := False)
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_63_9">Enumeration_Field</A>;
+ <b>function</b> <span class="symbol"><a name="ref_49_13" href="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_47_13">Create</a></span> (<span class="symbol"><a name="ref_49_21" href="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_47_21">Set</a></span> : <a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_51_9">Type_Set</a> := <a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_51_46">Mixed_Case</a>;
+ <span class="symbol"><a name="ref_50_21" href="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_48_21">Case_Sensitive</a></span> : Boolean := False;
+ <span class="symbol"><a name="ref_51_21" href="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_49_21">Must_Be_Unique</a></span> : Boolean := False)
+ <b>return</b> <a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_63_9">Enumeration_Field</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_54_13" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_75_13">Value</A></span> (<span class="symbol"><A NAME="ref_54_20" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_75_20">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_55_20" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_76_20">Buf</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A>'First) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_43_9">T</A>;
- <span class="comment"><EM>-- Translate the content of the fields buffer - indicated by the</EM></span>
- <span class="comment"><EM>-- buffer number - into an enumeration value. If the buffer is empty</EM></span>
- <span class="comment"><EM>-- or the content is invalid, a Constraint_Error is raises.</EM></span>
+ <b>function</b> <span class="symbol"><a name="ref_54_13" href="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_75_13">Value</a></span> (<span class="symbol"><a name="ref_54_20" href="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_75_20">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_55_20" href="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_76_20">Buf</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</a> := <a href="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</a>'First) <b>return</b> <a href="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_43_9">T</a>;
+ <span class="comment"><em>-- Translate the content of the fields buffer - indicated by the</em></span>
+ <span class="comment"><em>-- buffer number - into an enumeration value. If the buffer is empty</em></span>
+ <span class="comment"><em>-- or the content is invalid, a Constraint_Error is raises.</em></span>
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_44_53">Enumeration</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_45_65">Ada</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_44_53">Enumeration</a>.<a href="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_45_65">Ada</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__adb.htm b/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__adb.htm
index e2881d97745c..1747221a4af8 100644
--- a/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__adb.htm
+++ b/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__adb.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-forms-field_types-enumeration.adb</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-forms-field_types-enumeration.adb</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,121 +11,121 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-enumeration.adb </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Enumeration --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- B O D Y --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2011,2014 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.13 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-forms-field_types-enumeration.adb </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Forms.Field_Types.Enumeration --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- B O D Y --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2011,2014 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.13 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
<b>with</b> Ada.Unchecked_Deallocation;
-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings;
-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>;
+<b>with</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C; <b>use</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C;
+<b>with</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.Strings; <b>use</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.Strings;
+<b>with</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>; <b>use</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<span class="symbol"><A NAME="ref_47_58" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_44_53">Enumeration</A></span> <b>is</b>
+<b>package</b> <b>body</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<span class="symbol"><a name="ref_47_58" href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_44_53">Enumeration</a></span> <b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_49_13" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_65_13">Create</A></span> (<span class="symbol"><A NAME="ref_49_21" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_65_21">Info</A></span> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_56_9">Enumeration_Info</A>;
- <span class="symbol"><A NAME="ref_50_21" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_66_21">Auto_Release_Names</A></span> : Boolean := False)
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_63_9">Enumeration_Field</A>
+ <b>function</b> <span class="symbol"><a name="ref_49_13" href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_65_13">Create</a></span> (<span class="symbol"><a name="ref_49_21" href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_65_21">Info</a></span> : <a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_56_9">Enumeration_Info</a>;
+ <span class="symbol"><a name="ref_50_21" href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_66_21">Auto_Release_Names</a></span> : Boolean := False)
+ <b>return</b> <a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_63_9">Enumeration_Field</a>
<b>is</b>
<b>procedure</b> Release_String <b>is</b>
<b>new</b> Ada.Unchecked_Deallocation (String,
- <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_48_9">String_Access</A>);
- <span class="symbol"><A NAME="ref_56_7">E</A></span> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_63_9">Enumeration_Field</A>;
- <span class="symbol"><A NAME="ref_57_7">L</A></span> : <b>constant</b> size_t := 1 + size_t (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_65_21">Info</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_56_27">C</A>);
- <span class="symbol"><A NAME="ref_58_7">S</A></span> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_48_9">String_Access</A>;
+ <a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_48_9">String_Access</a>);
+ <span class="symbol"><a name="ref_56_7">E</a></span> : <a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_63_9">Enumeration_Field</a>;
+ <span class="symbol"><a name="ref_57_7">L</a></span> : <b>constant</b> size_t := 1 + size_t (<a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_65_21">Info</a>.<a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_56_27">C</a>);
+ <span class="symbol"><a name="ref_58_7">S</a></span> : <a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_48_9">String_Access</a>;
<b>begin</b>
- <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_56_7">E</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_94_10">Case_Sensitive</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_65_21">Info</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_58_10">Case_Sensitive</A>;
- <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_56_7">E</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_95_10">Match_Must_Be_Unique</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_65_21">Info</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_59_10">Match_Must_Be_Unique</A>;
- <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_56_7">E</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_96_10">Arr</A> := <b>new</b> chars_ptr_array (size_t (1) .. <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_57_7">L</A>);
- <b>for</b> <span class="symbol"><A NAME="ref_63_11">I</A></span> <b>in</b> 1 .. Positive (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_57_7">L</A> - 1) <b>loop</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_65_21">Info</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_60_10">Names</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_63_11">I</A>) = <b>null</b> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</A>;
+ <a href="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_56_7">E</a>.<a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_94_10">Case_Sensitive</a> := <a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_65_21">Info</a>.<a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_58_10">Case_Sensitive</a>;
+ <a href="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_56_7">E</a>.<a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_95_10">Match_Must_Be_Unique</a> := <a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_65_21">Info</a>.<a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_59_10">Match_Must_Be_Unique</a>;
+ <a href="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_56_7">E</a>.<a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_96_10">Arr</a> := <b>new</b> chars_ptr_array (size_t (1) .. <a href="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_57_7">L</a>);
+ <b>for</b> <span class="symbol"><a name="ref_63_11">I</a></span> <b>in</b> 1 .. Positive (<a href="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_57_7">L</a> - 1) <b>loop</b>
+ <b>if</b> <a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_65_21">Info</a>.<a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_60_10">Names</a> (<a href="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_63_11">I</a>) = <b>null</b> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</a>;
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_56_7">E</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_96_10">Arr</A>.<b>all</b> (size_t (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_63_11">I</A>)) := New_String (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_65_21">Info</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_60_10">Names</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_63_11">I</A>).<b>all</b>);
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_66_21">Auto_Release_Names</A> <b>then</b>
- <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_58_7">S</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_65_21">Info</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_60_10">Names</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_63_11">I</A>);
- Release_String (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_58_7">S</A>);
+ <a href="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_56_7">E</a>.<a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_96_10">Arr</a>.<b>all</b> (size_t (<a href="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_63_11">I</a>)) := New_String (<a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_65_21">Info</a>.<a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_60_10">Names</a> (<a href="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_63_11">I</a>).<b>all</b>);
+ <b>if</b> <a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_66_21">Auto_Release_Names</a> <b>then</b>
+ <a href="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_58_7">S</a> := <a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_65_21">Info</a>.<a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_60_10">Names</a> (<a href="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_63_11">I</a>);
+ Release_String (<a href="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_58_7">S</a>);
<b>end</b> <b>if</b>;
<b>end</b> <b>loop</b>;
- <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_56_7">E</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_96_10">Arr</A>.<b>all</b> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_57_7">L</A>) := Null_Ptr;
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_56_7">E</A>;
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_65_13">Create</A>;
+ <a href="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_56_7">E</a>.<a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_96_10">Arr</a>.<b>all</b> (<a href="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_57_7">L</a>) := Null_Ptr;
+ <b>return</b> <a href="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_56_7">E</a>;
+ <b>end</b> <a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_65_13">Create</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_77_14" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_78_14">Release</A></span> (<span class="symbol"><A NAME="ref_77_23" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_78_23">Enum</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_63_9">Enumeration_Field</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_77_14" href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_78_14">Release</a></span> (<span class="symbol"><a name="ref_77_23" href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_78_23">Enum</a></span> : <b>in</b> <b>out</b> <a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_63_9">Enumeration_Field</a>)
<b>is</b>
- <span class="symbol"><A NAME="ref_79_7">I</A></span> : size_t := 0;
- <span class="symbol"><A NAME="ref_80_7">P</A></span> : chars_ptr;
+ <span class="symbol"><a name="ref_79_7">I</a></span> : size_t := 0;
+ <span class="symbol"><a name="ref_80_7">P</a></span> : chars_ptr;
<b>begin</b>
<b>loop</b>
- <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_80_7">P</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_78_23">Enum</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_96_10">Arr</A>.<b>all</b> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_79_7">I</A>);
- <b>exit</b> <b>when</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_80_7">P</A> = Null_Ptr;
- Free (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_80_7">P</A>);
- <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_78_23">Enum</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_96_10">Arr</A>.<b>all</b> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_79_7">I</A>) := Null_Ptr;
- <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_79_7">I</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_79_7">I</A> + 1;
+ <a href="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_80_7">P</a> := <a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_78_23">Enum</a>.<a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_96_10">Arr</a>.<b>all</b> (<a href="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_79_7">I</a>);
+ <b>exit</b> <b>when</b> <a href="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_80_7">P</a> = Null_Ptr;
+ Free (<a href="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_80_7">P</a>);
+ <a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_78_23">Enum</a>.<a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_96_10">Arr</a>.<b>all</b> (<a href="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_79_7">I</a>) := Null_Ptr;
+ <a href="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_79_7">I</a> := <a href="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_79_7">I</a> + 1;
<b>end</b> <b>loop</b>;
- <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_78_23">Enum</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_96_10">Arr</A> := <b>null</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_78_14">Release</A>;
+ <a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_78_23">Enum</a>.<a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_96_10">Arr</a> := <b>null</b>;
+ <b>end</b> <a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_78_14">Release</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_92_14" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_85_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_92_30" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_85_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_93_30" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_86_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_63_9">Enumeration_Field</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_92_14" href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_85_14">Set_Field_Type</a></span> (<span class="symbol"><a name="ref_92_30" href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_85_30">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_93_30" href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_86_30">Typ</a></span> : <a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_63_9">Enumeration_Field</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_95_16">Set_Fld_Type</A></span> (<span class="symbol"><A NAME="ref_95_30" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_95_16">F</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_85_30">Fld</A>;
- <span class="symbol"><A NAME="ref_96_30" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_95_16">Arg1</A></span> : chars_ptr_array;
- <span class="symbol"><A NAME="ref_97_30" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_95_16">Arg2</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_47_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_98_30" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_95_16">Arg3</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_47_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_95_16">Set_Fld_Type</a></span> (<span class="symbol"><a name="ref_95_30">F</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a> := <a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_85_30">Fld</a>;
+ <span class="symbol"><a name="ref_96_30">Arg1</a></span> : chars_ptr_array;
+ <span class="symbol"><a name="ref_97_30">Arg2</a></span> : <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_47_12">C_Int</a>;
+ <span class="symbol"><a name="ref_98_30">Arg3</a></span> : <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_47_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Fld_Type, "set_field_type_enum");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_86_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_96_10">Arr</A> = <b>null</b> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_86_30">Typ</a>.<a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_96_10">Arr</a> = <b>null</b> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</a>;
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A>
- (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_95_16">Set_Fld_Type</A>
- (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_96_30">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_86_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_96_10">Arr</A>.<b>all</b>,
- <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_97_30">Arg2</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_47_12">C_Int</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_86_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_94_10">Case_Sensitive</A>)),
- <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_98_30">Arg3</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_47_12">C_Int</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_86_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_95_10">Match_Must_Be_Unique</A>))));
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_152_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_85_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_86_30">Typ</A>, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_150_13">C_Choice_Router</A>);
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_85_14">Set_Field_Type</A>;
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a>
+ (<a href="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_95_16">Set_Fld_Type</a>
+ (<a href="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_96_30">Arg1</a> =&gt; <a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_86_30">Typ</a>.<a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_96_10">Arr</a>.<b>all</b>,
+ <a href="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_97_30">Arg2</a> =&gt; <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_47_12">C_Int</a> (Boolean'Pos (<a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_86_30">Typ</a>.<a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_94_10">Case_Sensitive</a>)),
+ <a href="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_98_30">Arg3</a> =&gt; <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_47_12">C_Int</a> (Boolean'Pos (<a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_86_30">Typ</a>.<a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_95_10">Match_Must_Be_Unique</a>))));
+ <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_152_14">Wrap_Builtin</a> (<a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_85_30">Fld</a>, <a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_86_30">Typ</a>, <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_150_13">C_Choice_Router</a>);
+ <b>end</b> <a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_85_14">Set_Field_Type</a>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_44_53">Enumeration</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_44_53">Enumeration</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__ads.htm b/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__ads.htm
index 7a4bfbee16fc..21719dbd99d8 100644
--- a/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__ads.htm
+++ b/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__ads.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-forms-field_types-enumeration.ads</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-forms-field_types-enumeration.ads</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,107 +11,107 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-enumeration.ads </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Enumeration --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- S P E C --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2018,2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.15 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings;
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-forms-field_types-enumeration.ads </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Forms.Field_Types.Enumeration --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- S P E C --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2018,2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.15 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<b>with</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.Strings;
-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<span class="symbol"><A NAME="ref_44_53" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_47_58">Enumeration</A></span> <b>is</b>
+<b>package</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<span class="symbol"><a name="ref_44_53" href="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_47_58">Enumeration</a></span> <b>is</b>
<b>pragma</b> Preelaborate
- (<A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_44_53">Enumeration</A>);
+ (<a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_44_53">Enumeration</a>);
- <b>type</b> <span class="symbol"><A NAME="ref_48_9">String_Access</A></span> <b>is</b> <b>access</b> String;
+ <b>type</b> <span class="symbol"><a name="ref_48_9">String_Access</a></span> <b>is</b> <b>access</b> String;
- <span class="comment"><EM>-- Type_Set is used by the child package Ada</EM></span>
- <b>type</b> <span class="symbol"><A NAME="ref_51_9">Type_Set</A></span> <b>is</b> (<span class="symbol"><A NAME="ref_51_22">Lower_Case</A></span>, <span class="symbol"><A NAME="ref_51_34">Upper_Case</A></span>, <span class="symbol"><A NAME="ref_51_46">Mixed_Case</A></span>);
+ <span class="comment"><em>-- Type_Set is used by the child package Ada</em></span>
+ <b>type</b> <span class="symbol"><a name="ref_51_9">Type_Set</a></span> <b>is</b> (<span class="symbol"><a name="ref_51_22">Lower_Case</a></span>, <span class="symbol"><a name="ref_51_34">Upper_Case</a></span>, <span class="symbol"><a name="ref_51_46">Mixed_Case</a></span>);
<b>type</b> Enum_Array <b>is</b> <b>array</b> (Positive <b>range</b> &lt;&gt;)
- <b>of</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_48_9">String_Access</A>;
+ <b>of</b> <a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_48_9">String_Access</a>;
- <b>type</b> <span class="symbol"><A NAME="ref_56_9">Enumeration_Info</A></span> (<span class="symbol"><A NAME="ref_56_27" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_56_9">C</A></span> : Positive) <b>is</b>
+ <b>type</b> <span class="symbol"><a name="ref_56_9">Enumeration_Info</a></span> (<span class="symbol"><a name="ref_56_27">C</a></span> : Positive) <b>is</b>
<b>record</b>
- <span class="symbol"><A NAME="ref_58_10">Case_Sensitive</A></span> : Boolean := False;
- <span class="symbol"><A NAME="ref_59_10">Match_Must_Be_Unique</A></span> : Boolean := False;
- <span class="symbol"><A NAME="ref_60_10">Names</A></span> : Enum_Array (1 .. <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_56_27">C</A>);
+ <span class="symbol"><a name="ref_58_10">Case_Sensitive</a></span> : Boolean := False;
+ <span class="symbol"><a name="ref_59_10">Match_Must_Be_Unique</a></span> : Boolean := False;
+ <span class="symbol"><a name="ref_60_10">Names</a></span> : Enum_Array (1 .. <a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_56_27">C</a>);
<b>end</b> <b>record</b>;
- <b>type</b> <span class="symbol"><A NAME="ref_63_9">Enumeration_Field</A></span> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_53_9">Field_Type</A> <b>with</b> <b>private</b>;
+ <b>type</b> <span class="symbol"><a name="ref_63_9">Enumeration_Field</a></span> <b>is</b> <b>new</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_53_9">Field_Type</a> <b>with</b> <b>private</b>;
- <b>function</b> <span class="symbol"><A NAME="ref_65_13" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_49_13">Create</A></span> (<span class="symbol"><A NAME="ref_65_21" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_49_21">Info</A></span> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_56_9">Enumeration_Info</A>;
- <span class="symbol"><A NAME="ref_66_21" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_50_21">Auto_Release_Names</A></span> : Boolean := False)
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_63_9">Enumeration_Field</A>;
- <span class="comment"><EM>-- Make an fieldtype from the info. Enumerations are special, because</EM></span>
- <span class="comment"><EM>-- they normally don't copy the enum values into a private store, so</EM></span>
- <span class="comment"><EM>-- we have to care for the lifetime of the info we provide.</EM></span>
- <span class="comment"><EM>-- The Auto_Release_Names flag may be used to automatically releases</EM></span>
- <span class="comment"><EM>-- the strings in the Names array of the Enumeration_Info.</EM></span>
+ <b>function</b> <span class="symbol"><a name="ref_65_13" href="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_49_13">Create</a></span> (<span class="symbol"><a name="ref_65_21" href="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_49_21">Info</a></span> : <a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_56_9">Enumeration_Info</a>;
+ <span class="symbol"><a name="ref_66_21" href="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_50_21">Auto_Release_Names</a></span> : Boolean := False)
+ <b>return</b> <a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_63_9">Enumeration_Field</a>;
+ <span class="comment"><em>-- Make an fieldtype from the info. Enumerations are special, because</em></span>
+ <span class="comment"><em>-- they normally don't copy the enum values into a private store, so</em></span>
+ <span class="comment"><em>-- we have to care for the lifetime of the info we provide.</em></span>
+ <span class="comment"><em>-- The Auto_Release_Names flag may be used to automatically releases</em></span>
+ <span class="comment"><em>-- the strings in the Names array of the Enumeration_Info.</em></span>
- <b>function</b> Make_Enumeration_Type (<span class="symbol"><A NAME="ref_74_36">Info</A></span> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_56_9">Enumeration_Info</A>;
- <span class="symbol"><A NAME="ref_75_36">Auto_Release_Names</A></span> : Boolean := False)
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_63_9">Enumeration_Field</A> <b>renames</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_65_13">Create</A>;
+ <b>function</b> Make_Enumeration_Type (<span class="symbol"><a name="ref_74_36">Info</a></span> : <a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_56_9">Enumeration_Info</a>;
+ <span class="symbol"><a name="ref_75_36">Auto_Release_Names</a></span> : Boolean := False)
+ <b>return</b> <a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_63_9">Enumeration_Field</a> <b>renames</b> <a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_65_13">Create</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_78_14" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_77_14">Release</A></span> (<span class="symbol"><A NAME="ref_78_23" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_77_23">Enum</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_63_9">Enumeration_Field</A>);
- <span class="comment"><EM>-- But we may want to release the field to release the memory allocated</EM></span>
- <span class="comment"><EM>-- by it internally. After that the Enumeration field is no longer usable.</EM></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_78_14" href="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_77_14">Release</a></span> (<span class="symbol"><a name="ref_78_23" href="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_77_23">Enum</a></span> : <b>in</b> <b>out</b> <a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_63_9">Enumeration_Field</a>);
+ <span class="comment"><em>-- But we may want to release the field to release the memory allocated</em></span>
+ <span class="comment"><em>-- by it internally. After that the Enumeration field is no longer usable.</em></span>
- <span class="comment"><EM>-- The next type definitions are all ncurses extensions. They are typically</EM></span>
- <span class="comment"><EM>-- not available in other curses implementations.</EM></span>
+ <span class="comment"><em>-- The next type definitions are all ncurses extensions. They are typically</em></span>
+ <span class="comment"><em>-- not available in other curses implementations.</em></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_85_14" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_92_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_85_30" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_92_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_86_30" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_93_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_63_9">Enumeration_Field</A>);
+ <b>procedure</b> <span class="symbol"><a name="ref_85_14" href="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_92_14">Set_Field_Type</a></span> (<span class="symbol"><a name="ref_85_30" href="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_92_30">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_86_30" href="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_93_30">Typ</a></span> : <a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_63_9">Enumeration_Field</a>);
<b>pragma</b> Inline (Set_Field_Type);
<b>private</b>
- <b>type</b> <span class="symbol"><A NAME="ref_90_9" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_44_53">CPA_Access</A></span> <b>is</b> <b>access</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings.chars_ptr_array;
+ <b>type</b> <span class="symbol"><a name="ref_90_9" href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_44_53">CPA_Access</a></span> <b>is</b> <b>access</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.Strings.chars_ptr_array;
- <b>type</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_63_9">Enumeration_Field</A> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_53_9">Field_Type</A> <b>with</b>
+ <b>type</b> <a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_63_9">Enumeration_Field</a> <b>is</b> <b>new</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_53_9">Field_Type</a> <b>with</b>
<b>record</b>
- <span class="symbol"><A NAME="ref_94_10">Case_Sensitive</A></span> : Boolean := False;
- <span class="symbol"><A NAME="ref_95_10">Match_Must_Be_Unique</A></span> : Boolean := False;
- <span class="symbol"><A NAME="ref_96_10">Arr</A></span> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_90_9">CPA_Access</A> := <b>null</b>;
+ <span class="symbol"><a name="ref_94_10">Case_Sensitive</a></span> : Boolean := False;
+ <span class="symbol"><a name="ref_95_10">Match_Must_Be_Unique</a></span> : Boolean := False;
+ <span class="symbol"><a name="ref_96_10">Arr</a></span> : <a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_90_9">CPA_Access</a> := <b>null</b>;
<b>end</b> <b>record</b>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_44_53">Enumeration</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<a href="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_44_53">Enumeration</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__adb.htm b/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__adb.htm
index 3569f015b8e1..6ff20e89c557 100644
--- a/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__adb.htm
+++ b/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__adb.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-forms-field_types-intfield.adb</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-forms-field_types-intfield.adb</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,71 +11,71 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-intfield.adb </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.IntField --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- B O D Y --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2011,2014 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.14 @</EM></span>
-<span class="comment"><EM>-- @Date: 2020/02/02 23:34:34 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>;
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-forms-field_types-intfield.adb </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Forms.Field_Types.IntField --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- B O D Y --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2011,2014 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.14 @</em></span>
+<span class="comment"><em>-- @Date: 2020/02/02 23:34:34 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<b>with</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>; <b>use</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<span class="symbol"><A NAME="ref_45_58" HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_42_53">IntField</A></span> <b>is</b>
+<b>package</b> <b>body</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<span class="symbol"><a name="ref_45_58" href="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_42_53">IntField</a></span> <b>is</b>
- <b>procedure</b> <span class="symbol"><A NAME="ref_47_14" HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_52_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_47_30" HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_52_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_48_30" HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_53_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_45_9">Integer_Field</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_47_14" href="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_52_14">Set_Field_Type</a></span> (<span class="symbol"><a name="ref_47_30" href="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_52_30">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_48_30" href="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_53_30">Typ</a></span> : <a href="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_45_9">Integer_Field</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_50_16">Set_Fld_Type</A></span> (<span class="symbol"><A NAME="ref_50_30" HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_50_16">F</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_52_30">Fld</A>;
- <span class="symbol"><A NAME="ref_51_30" HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_50_16">Arg1</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_47_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_52_30" HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_50_16">Arg2</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Long_Int</A>;
- <span class="symbol"><A NAME="ref_53_30" HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_50_16">Arg3</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Long_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_50_16">Set_Fld_Type</a></span> (<span class="symbol"><a name="ref_50_30">F</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a> := <a href="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_52_30">Fld</a>;
+ <span class="symbol"><a name="ref_51_30">Arg1</a></span> : <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_47_12">C_Int</a>;
+ <span class="symbol"><a name="ref_52_30">Arg2</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Long_Int</a>;
+ <span class="symbol"><a name="ref_53_30">Arg3</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Long_Int</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Fld_Type, "set_field_type_integer");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_50_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_51_30">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_47_12">C_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_53_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_47_10">Precision</A>),
- <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_52_30">Arg2</A> =&gt; <A HREF="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Long_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_53_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_48_10">Lower_Limit</A>),
- <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_53_30">Arg3</A> =&gt; <A HREF="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Long_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_53_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_49_10">Upper_Limit</A>)));
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_152_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_52_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_53_30">Typ</A>);
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_52_14">Set_Field_Type</A>;
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_50_16">Set_Fld_Type</a> (<a href="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_51_30">Arg1</a> =&gt; <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_47_12">C_Int</a> (<a href="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_53_30">Typ</a>.<a href="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_47_10">Precision</a>),
+ <a href="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_52_30">Arg2</a> =&gt; <a href="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Long_Int</a> (<a href="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_53_30">Typ</a>.<a href="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_48_10">Lower_Limit</a>),
+ <a href="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_53_30">Arg3</a> =&gt; <a href="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Long_Int</a> (<a href="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_53_30">Typ</a>.<a href="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_49_10">Upper_Limit</a>)));
+ <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_152_14">Wrap_Builtin</a> (<a href="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_52_30">Fld</a>, <a href="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_53_30">Typ</a>);
+ <b>end</b> <a href="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_52_14">Set_Field_Type</a>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_42_53">IntField</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<a href="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_42_53">IntField</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__ads.htm b/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__ads.htm
index 2331168420aa..91151756fab5 100644
--- a/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__ads.htm
+++ b/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__ads.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-forms-field_types-intfield.ads</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-forms-field_types-intfield.ads</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,64 +11,64 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-intfield.ads </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.IntField --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- S P E C --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.13 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<span class="symbol"><A NAME="ref_42_53" HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_45_58">IntField</A></span> <b>is</b>
- <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_42_53">IntField</A>);
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-forms-field_types-intfield.ads </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Forms.Field_Types.IntField --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- S P E C --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.13 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<b>package</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<span class="symbol"><a name="ref_42_53" href="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_45_58">IntField</a></span> <b>is</b>
+ <b>pragma</b> Preelaborate (<a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<a href="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_42_53">IntField</a>);
- <b>type</b> <span class="symbol"><A NAME="ref_45_9">Integer_Field</A></span> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_53_9">Field_Type</A> <b>with</b>
+ <b>type</b> <span class="symbol"><a name="ref_45_9">Integer_Field</a></span> <b>is</b> <b>new</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_53_9">Field_Type</a> <b>with</b>
<b>record</b>
- <span class="symbol"><A NAME="ref_47_10">Precision</A></span> : Natural;
- <span class="symbol"><A NAME="ref_48_10">Lower_Limit</A></span> : Integer;
- <span class="symbol"><A NAME="ref_49_10">Upper_Limit</A></span> : Integer;
+ <span class="symbol"><a name="ref_47_10">Precision</a></span> : Natural;
+ <span class="symbol"><a name="ref_48_10">Lower_Limit</a></span> : Integer;
+ <span class="symbol"><a name="ref_49_10">Upper_Limit</a></span> : Integer;
<b>end</b> <b>record</b>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_52_14" HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_47_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_52_30" HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_47_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_53_30" HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_48_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_45_9">Integer_Field</A>);
+ <b>procedure</b> <span class="symbol"><a name="ref_52_14" href="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_47_14">Set_Field_Type</a></span> (<span class="symbol"><a name="ref_52_30" href="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_47_30">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_53_30" href="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_48_30">Typ</a></span> : <a href="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_45_9">Integer_Field</a>);
<b>pragma</b> Inline (Set_Field_Type);
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_42_53">IntField</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<a href="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_42_53">IntField</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__adb.htm b/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__adb.htm
index 540733b3185a..e433d7526c33 100644
--- a/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__adb.htm
+++ b/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__adb.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-forms-field_types-ipv4_address.adb</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-forms-field_types-ipv4_address.adb</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,67 +11,67 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-ipv4_address.adb </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- B O D Y --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2011,2014 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.14 @</EM></span>
-<span class="comment"><EM>-- @Date: 2020/02/02 23:34:34 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>;
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-forms-field_types-ipv4_address.adb </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- B O D Y --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2011,2014 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.14 @</em></span>
+<span class="comment"><em>-- @Date: 2020/02/02 23:34:34 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<b>with</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>; <b>use</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<span class="symbol"><A NAME="ref_45_58" HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_42_53">IPV4_Address</A></span> <b>is</b>
+<b>package</b> <b>body</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<span class="symbol"><a name="ref_45_58" href="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_42_53">IPV4_Address</a></span> <b>is</b>
- <b>procedure</b> <span class="symbol"><A NAME="ref_47_14" HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_48_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_47_30" HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_48_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_48_30" HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_49_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_46_9">Internet_V4_Address_Field</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_47_14" href="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_48_14">Set_Field_Type</a></span> (<span class="symbol"><a name="ref_47_30" href="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_48_30">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_48_30" href="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_49_30">Typ</a></span> : <a href="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_46_9">Internet_V4_Address_Field</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_50_16">Set_Fld_Type</A></span> (<span class="symbol"><A NAME="ref_50_30" HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_50_16">F</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_48_30">Fld</A>)
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_50_16">Set_Fld_Type</a></span> (<span class="symbol"><a name="ref_50_30">F</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a> := <a href="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_48_30">Fld</a>)
+ <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Fld_Type, "set_field_type_ipv4");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_50_16">Set_Fld_Type</A>);
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_152_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_48_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_49_30">Typ</A>);
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_48_14">Set_Field_Type</A>;
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_50_16">Set_Fld_Type</a>);
+ <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_152_14">Wrap_Builtin</a> (<a href="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_48_30">Fld</a>, <a href="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_49_30">Typ</a>);
+ <b>end</b> <a href="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_48_14">Set_Field_Type</a>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_42_53">IPV4_Address</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<a href="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_42_53">IPV4_Address</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__ads.htm b/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__ads.htm
index 0e8296701ae2..5ace0d505a0d 100644
--- a/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__ads.htm
+++ b/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__ads.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-forms-field_types-ipv4_address.ads</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-forms-field_types-ipv4_address.ads</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,60 +11,60 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-ipv4_address.ads </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- S P E C --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.13 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<span class="symbol"><A NAME="ref_42_53" HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_45_58">IPV4_Address</A></span> <b>is</b>
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-forms-field_types-ipv4_address.ads </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- S P E C --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.13 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<b>package</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<span class="symbol"><a name="ref_42_53" href="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_45_58">IPV4_Address</a></span> <b>is</b>
<b>pragma</b> Preelaborate
- (<A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_42_53">IPV4_Address</A>);
+ (<a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<a href="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_42_53">IPV4_Address</a>);
- <b>type</b> <span class="symbol"><A NAME="ref_46_9">Internet_V4_Address_Field</A></span> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_53_9">Field_Type</A> <b>with</b> <b>null</b> <b>record</b>;
+ <b>type</b> <span class="symbol"><a name="ref_46_9">Internet_V4_Address_Field</a></span> <b>is</b> <b>new</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_53_9">Field_Type</a> <b>with</b> <b>null</b> <b>record</b>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_48_14" HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_47_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_48_30" HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_47_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_49_30" HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_48_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_46_9">Internet_V4_Address_Field</A>);
+ <b>procedure</b> <span class="symbol"><a name="ref_48_14" href="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_47_14">Set_Field_Type</a></span> (<span class="symbol"><a name="ref_48_30" href="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_47_30">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_49_30" href="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_48_30">Typ</a></span> : <a href="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_46_9">Internet_V4_Address_Field</a>);
<b>pragma</b> Inline (Set_Field_Type);
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_42_53">IPV4_Address</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<a href="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_42_53">IPV4_Address</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__adb.htm b/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__adb.htm
index f49021635147..11b48eb20c72 100644
--- a/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__adb.htm
+++ b/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__adb.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-forms-field_types-numeric.adb</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-forms-field_types-numeric.adb</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,74 +11,74 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-numeric.adb </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Numeric --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- B O D Y --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2011,2014 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.15 @</EM></span>
-<span class="comment"><EM>-- @Date: 2020/02/02 23:34:34 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>;
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-forms-field_types-numeric.adb </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Forms.Field_Types.Numeric --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- B O D Y --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2011,2014 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.15 @</em></span>
+<span class="comment"><em>-- @Date: 2020/02/02 23:34:34 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<b>with</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C;
+<b>with</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>; <b>use</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<span class="symbol"><A NAME="ref_46_58" HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_42_53">Numeric</A></span> <b>is</b>
+<b>package</b> <b>body</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<span class="symbol"><a name="ref_46_58" href="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_42_53">Numeric</a></span> <b>is</b>
- <b>procedure</b> <span class="symbol"><A NAME="ref_48_14" HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_52_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_48_30" HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_52_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_49_30" HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_53_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_45_9">Numeric_Field</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_48_14" href="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_52_14">Set_Field_Type</a></span> (<span class="symbol"><a name="ref_48_30" href="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_52_30">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_49_30" href="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_53_30">Typ</a></span> : <a href="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_45_9">Numeric_Field</a>)
<b>is</b>
- <b>type</b> <span class="symbol"><A NAME="ref_51_12">Double</A></span> <b>is</b> <b>new</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.double;
+ <b>type</b> <span class="symbol"><a name="ref_51_12">Double</a></span> <b>is</b> <b>new</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.double;
- <b>function</b> <span class="symbol"><A NAME="ref_53_16">Set_Fld_Type</A></span> (<span class="symbol"><A NAME="ref_53_30" HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_53_16">F</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_52_30">Fld</A>;
- <span class="symbol"><A NAME="ref_54_30" HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_53_16">Arg1</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_47_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_55_30" HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_53_16">Arg2</A></span> : <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_51_12">Double</A>;
- <span class="symbol"><A NAME="ref_56_30" HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_53_16">Arg3</A></span> : <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_51_12">Double</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_53_16">Set_Fld_Type</a></span> (<span class="symbol"><a name="ref_53_30">F</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a> := <a href="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_52_30">Fld</a>;
+ <span class="symbol"><a name="ref_54_30">Arg1</a></span> : <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_47_12">C_Int</a>;
+ <span class="symbol"><a name="ref_55_30">Arg2</a></span> : <a href="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_51_12">Double</a>;
+ <span class="symbol"><a name="ref_56_30">Arg3</a></span> : <a href="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_51_12">Double</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Fld_Type, "set_field_type_numeric");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_53_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_54_30">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_47_12">C_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_53_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_47_10">Precision</A>),
- <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_55_30">Arg2</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_51_12">Double</A> (<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_53_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_48_10">Lower_Limit</A>),
- <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_56_30">Arg3</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_51_12">Double</A> (<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_53_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_49_10">Upper_Limit</A>)));
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_152_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_52_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_53_30">Typ</A>);
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_52_14">Set_Field_Type</A>;
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_53_16">Set_Fld_Type</a> (<a href="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_54_30">Arg1</a> =&gt; <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_47_12">C_Int</a> (<a href="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_53_30">Typ</a>.<a href="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_47_10">Precision</a>),
+ <a href="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_55_30">Arg2</a> =&gt; <a href="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_51_12">Double</a> (<a href="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_53_30">Typ</a>.<a href="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_48_10">Lower_Limit</a>),
+ <a href="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_56_30">Arg3</a> =&gt; <a href="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_51_12">Double</a> (<a href="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_53_30">Typ</a>.<a href="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_49_10">Upper_Limit</a>)));
+ <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_152_14">Wrap_Builtin</a> (<a href="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_52_30">Fld</a>, <a href="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_53_30">Typ</a>);
+ <b>end</b> <a href="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_52_14">Set_Field_Type</a>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_42_53">Numeric</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<a href="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_42_53">Numeric</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__ads.htm b/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__ads.htm
index 0d33c2729feb..0dddc360c5ea 100644
--- a/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__ads.htm
+++ b/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__ads.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-forms-field_types-numeric.ads</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-forms-field_types-numeric.ads</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,64 +11,64 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-numeric.ads </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Numeric --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- S P E C --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.13 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<span class="symbol"><A NAME="ref_42_53" HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_46_58">Numeric</A></span> <b>is</b>
- <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_42_53">Numeric</A>);
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-forms-field_types-numeric.ads </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Forms.Field_Types.Numeric --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- S P E C --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.13 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<b>package</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<span class="symbol"><a name="ref_42_53" href="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_46_58">Numeric</a></span> <b>is</b>
+ <b>pragma</b> Preelaborate (<a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<a href="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_42_53">Numeric</a>);
- <b>type</b> <span class="symbol"><A NAME="ref_45_9">Numeric_Field</A></span> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_53_9">Field_Type</A> <b>with</b>
+ <b>type</b> <span class="symbol"><a name="ref_45_9">Numeric_Field</a></span> <b>is</b> <b>new</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_53_9">Field_Type</a> <b>with</b>
<b>record</b>
- <span class="symbol"><A NAME="ref_47_10">Precision</A></span> : Natural;
- <span class="symbol"><A NAME="ref_48_10">Lower_Limit</A></span> : Float;
- <span class="symbol"><A NAME="ref_49_10">Upper_Limit</A></span> : Float;
+ <span class="symbol"><a name="ref_47_10">Precision</a></span> : Natural;
+ <span class="symbol"><a name="ref_48_10">Lower_Limit</a></span> : Float;
+ <span class="symbol"><a name="ref_49_10">Upper_Limit</a></span> : Float;
<b>end</b> <b>record</b>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_52_14" HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_48_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_52_30" HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_48_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_53_30" HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_49_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_45_9">Numeric_Field</A>);
+ <b>procedure</b> <span class="symbol"><a name="ref_52_14" href="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_48_14">Set_Field_Type</a></span> (<span class="symbol"><a name="ref_52_30" href="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_48_30">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_53_30" href="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_49_30">Typ</a></span> : <a href="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_45_9">Numeric_Field</a>);
<b>pragma</b> Inline (Set_Field_Type);
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_42_53">Numeric</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<a href="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_42_53">Numeric</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__adb.htm b/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__adb.htm
index abdd97f47db4..a8936f5cb378 100644
--- a/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__adb.htm
+++ b/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__adb.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-forms-field_types-regexp.adb</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-forms-field_types-regexp.adb</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,67 +11,67 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-regexp.adb </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.RegExp --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- B O D Y --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2011,2014 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.13 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>;
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-forms-field_types-regexp.adb </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Forms.Field_Types.RegExp --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- B O D Y --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2011,2014 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.13 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<b>with</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C; <b>use</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C;
+<b>with</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>; <b>use</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<span class="symbol"><A NAME="ref_45_58" HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_42_53">RegExp</A></span> <b>is</b>
+<b>package</b> <b>body</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<span class="symbol"><a name="ref_45_58" href="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_42_53">RegExp</a></span> <b>is</b>
- <b>procedure</b> <span class="symbol"><A NAME="ref_47_14" HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_52_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_47_30" HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_52_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_48_30" HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_53_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_47_9">Regular_Expression_Field</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_47_14" href="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_52_14">Set_Field_Type</a></span> (<span class="symbol"><a name="ref_47_30" href="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_52_30">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_48_30" href="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_53_30">Typ</a></span> : <a href="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_47_9">Regular_Expression_Field</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_50_16">Set_Ftyp</A></span> (<span class="symbol"><A NAME="ref_50_26" HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_50_16">F</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_52_30">Fld</A>;
- <span class="symbol"><A NAME="ref_51_26" HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_50_16">Arg1</A></span> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_50_16">Set_Ftyp</a></span> (<span class="symbol"><a name="ref_50_26">F</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a> := <a href="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_52_30">Fld</a>;
+ <span class="symbol"><a name="ref_51_26">Arg1</a></span> : char_array) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Ftyp, "set_field_type_regexp");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_50_16">Set_Ftyp</A> (<A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_51_26">Arg1</A> =&gt; To_C (<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_53_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_49_10">Regular_Expression</A>.<b>all</b>)));
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_152_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_52_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_53_30">Typ</A>);
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_52_14">Set_Field_Type</A>;
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_50_16">Set_Ftyp</a> (<a href="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_51_26">Arg1</a> =&gt; To_C (<a href="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_53_30">Typ</a>.<a href="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_49_10">Regular_Expression</a>.<b>all</b>)));
+ <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_152_14">Wrap_Builtin</a> (<a href="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_52_30">Fld</a>, <a href="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_53_30">Typ</a>);
+ <b>end</b> <a href="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_52_14">Set_Field_Type</a>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_42_53">RegExp</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<a href="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_42_53">RegExp</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__ads.htm b/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__ads.htm
index 4dd1784dc19d..19f903daa8b4 100644
--- a/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__ads.htm
+++ b/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__ads.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-forms-field_types-regexp.ads</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-forms-field_types-regexp.ads</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,64 +11,64 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-regexp.ads </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.RegExp --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- S P E C --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.13 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<span class="symbol"><A NAME="ref_42_53" HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_45_58">RegExp</A></span> <b>is</b>
- <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_42_53">RegExp</A>);
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-forms-field_types-regexp.ads </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Forms.Field_Types.RegExp --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- S P E C --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.13 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<b>package</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<span class="symbol"><a name="ref_42_53" href="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_45_58">RegExp</a></span> <b>is</b>
+ <b>pragma</b> Preelaborate (<a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<a href="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_42_53">RegExp</a>);
- <b>type</b> <span class="symbol"><A NAME="ref_45_9">String_Access</A></span> <b>is</b> <b>access</b> String;
+ <b>type</b> <span class="symbol"><a name="ref_45_9">String_Access</a></span> <b>is</b> <b>access</b> String;
- <b>type</b> <span class="symbol"><A NAME="ref_47_9">Regular_Expression_Field</A></span> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_53_9">Field_Type</A> <b>with</b>
+ <b>type</b> <span class="symbol"><a name="ref_47_9">Regular_Expression_Field</a></span> <b>is</b> <b>new</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_53_9">Field_Type</a> <b>with</b>
<b>record</b>
- <span class="symbol"><A NAME="ref_49_10">Regular_Expression</A></span> : <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_45_9">String_Access</A>;
+ <span class="symbol"><a name="ref_49_10">Regular_Expression</a></span> : <a href="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_45_9">String_Access</a>;
<b>end</b> <b>record</b>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_52_14" HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_47_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_52_30" HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_47_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_53_30" HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_48_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_47_9">Regular_Expression_Field</A>);
+ <b>procedure</b> <span class="symbol"><a name="ref_52_14" href="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_47_14">Set_Field_Type</a></span> (<span class="symbol"><a name="ref_52_30" href="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_47_30">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_53_30" href="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_48_30">Typ</a></span> : <a href="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_47_9">Regular_Expression_Field</a>);
<b>pragma</b> Inline (Set_Field_Type);
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_42_53">RegExp</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<a href="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_42_53">RegExp</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__adb.htm b/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__adb.htm
index a78ae91dd959..b9f797a89f14 100644
--- a/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__adb.htm
+++ b/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__adb.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-forms-field_types-user-choice.adb</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-forms-field_types-user-choice.adb</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,113 +11,113 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-user-choice.adb </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.User.Choice --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- B O D Y --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2011,2014 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.21 @</EM></span>
-<span class="comment"><EM>-- @Date: 2020/02/02 23:34:34 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-forms-field_types-user-choice.adb </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Forms.Field_Types.User.Choice --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- B O D Y --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2011,2014 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.21 @</em></span>
+<span class="comment"><em>-- @Date: 2020/02/02 23:34:34 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
<b>with</b> System.Address_To_Access_Conversions;
-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>;
+<b>with</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>; <b>use</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_45_53">User</A>.<span class="symbol"><A NAME="ref_46_63" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_45_58">Choice</A></span> <b>is</b>
+<b>package</b> <b>body</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<a href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_45_53">User</a>.<span class="symbol"><a name="ref_46_63" href="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_45_58">Choice</a></span> <b>is</b>
<b>package</b> Argument_Conversions <b>is</b>
- <b>new</b> System.Address_To_Access_Conversions (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_9">Argument</A>);
+ <b>new</b> System.Address_To_Access_Conversions (<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_212_9">Argument</a>);
- <b>function</b> <span class="symbol"><A NAME="ref_51_13" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_81_13">Generic_Next</A></span> (<span class="symbol"><A NAME="ref_51_27" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_81_27">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_52_27" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_82_27">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A>
+ <b>function</b> <span class="symbol"><a name="ref_51_13" href="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_81_13">Generic_Next</a></span> (<span class="symbol"><a name="ref_51_27" href="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_81_27">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_52_27" href="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_82_27">Usr</a></span> : System.Address) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a>
<b>is</b>
- <span class="symbol"><A NAME="ref_54_7">Result</A></span> : Boolean;
- <span class="symbol"><A NAME="ref_55_7">Udf</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_58_9">User_Defined_Field_Type_With_Choice_Access</A> :=
- <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_58_9">User_Defined_Field_Type_With_Choice_Access</A>
- (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</A> (Argument_Conversions.To_Pointer (<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_82_27">Usr</A>)).<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Typ</A>);
+ <span class="symbol"><a name="ref_54_7">Result</a></span> : Boolean;
+ <span class="symbol"><a name="ref_55_7">Udf</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_58_9">User_Defined_Field_Type_With_Choice_Access</a> :=
+ <a href="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_58_9">User_Defined_Field_Type_With_Choice_Access</a>
+ (<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</a> (Argument_Conversions.To_Pointer (<a href="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_82_27">Usr</a>)).<b>all</b>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Typ</a>);
<b>begin</b>
- <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_54_7">Result</A> := <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_61_13">Next</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_81_27">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_55_7">Udf</A>.<b>all</b>);
- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_54_7">Result</A>));
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_81_13">Generic_Next</A>;
+ <a href="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_54_7">Result</a> := <a href="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_61_13">Next</a> (<a href="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_81_27">Fld</a>, <a href="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_55_7">Udf</a>.<b>all</b>);
+ <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a> (Boolean'Pos (<a href="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_54_7">Result</a>));
+ <b>end</b> <a href="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_81_13">Generic_Next</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_63_13" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_88_13">Generic_Prev</A></span> (<span class="symbol"><A NAME="ref_63_27" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_88_27">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_64_27" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_89_27">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A>
+ <b>function</b> <span class="symbol"><a name="ref_63_13" href="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_88_13">Generic_Prev</a></span> (<span class="symbol"><a name="ref_63_27" href="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_88_27">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_64_27" href="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_89_27">Usr</a></span> : System.Address) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a>
<b>is</b>
- <span class="symbol"><A NAME="ref_66_7">Result</A></span> : Boolean;
- <span class="symbol"><A NAME="ref_67_7">Udf</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_58_9">User_Defined_Field_Type_With_Choice_Access</A> :=
- <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_58_9">User_Defined_Field_Type_With_Choice_Access</A>
- (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</A> (Argument_Conversions.To_Pointer (<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_89_27">Usr</A>)).<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Typ</A>);
+ <span class="symbol"><a name="ref_66_7">Result</a></span> : Boolean;
+ <span class="symbol"><a name="ref_67_7">Udf</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_58_9">User_Defined_Field_Type_With_Choice_Access</a> :=
+ <a href="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_58_9">User_Defined_Field_Type_With_Choice_Access</a>
+ (<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</a> (Argument_Conversions.To_Pointer (<a href="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_89_27">Usr</a>)).<b>all</b>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Typ</a>);
<b>begin</b>
- <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_66_7">Result</A> := <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_68_13">Previous</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_88_27">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_67_7">Udf</A>.<b>all</b>);
- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_66_7">Result</A>));
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_88_13">Generic_Prev</A>;
+ <a href="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_66_7">Result</a> := <a href="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_68_13">Previous</a> (<a href="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_88_27">Fld</a>, <a href="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_67_7">Udf</a>.<b>all</b>);
+ <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a> (Boolean'Pos (<a href="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_66_7">Result</a>));
+ <b>end</b> <a href="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_88_13">Generic_Prev</a>;
- <span class="comment"><EM>-- -----------------------------------------------------------------------</EM></span>
- <span class="comment"><EM>--</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_77_13" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_79_13">C_Generic_Choice</A></span> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A>
+ <span class="comment"><em>-- -----------------------------------------------------------------------</em></span>
+ <span class="comment"><em>--</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_77_13" href="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_79_13">C_Generic_Choice</a></span> <b>return</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</a>
<b>is</b>
- <span class="symbol"><A NAME="ref_79_7">Res</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
- <span class="symbol"><A NAME="ref_80_7">T</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A>;
+ <span class="symbol"><a name="ref_79_7">Res</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
+ <span class="symbol"><a name="ref_80_7">T</a></span> : <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</a>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_143_4">M_Generic_Choice</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</A> <b>then</b>
- <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_80_7">T</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_223_13">New_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_82_13">Generic_Field_Check</A>'<b>Access</b>,
- <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_89_13">Generic_Char_Check</A>'<b>Access</b>);
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_80_7">T</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_143_4">M_Generic_Choice</a> = <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</a> <b>then</b>
+ <a href="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_80_7">T</a> := <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_223_13">New_Fieldtype</a> (<a href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_82_13">Generic_Field_Check</a>'<b>Access</b>,
+ <a href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_89_13">Generic_Char_Check</a>'<b>Access</b>);
+ <b>if</b> <a href="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_80_7">T</a> = <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</a>;
<b>else</b>
- <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_79_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_228_13">Set_Fieldtype_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_80_7">T</A>,
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_163_13">Make_Arg</A>'<b>Access</b>,
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_168_13">Copy_Arg</A>'<b>Access</b>,
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_173_14">Free_Arg</A>'<b>Access</b>);
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_79_7">Res</A>);
+ <a href="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_79_7">Res</a> := <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_228_13">Set_Fieldtype_Arg</a> (<a href="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_80_7">T</a>,
+ <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_163_13">Make_Arg</a>'<b>Access</b>,
+ <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_168_13">Copy_Arg</a>'<b>Access</b>,
+ <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_173_14">Free_Arg</a>'<b>Access</b>);
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_79_7">Res</a>);
- <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_79_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_235_13">Set_Fieldtype_Choice</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_80_7">T</A>,
- <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_81_13">Generic_Next</A>'<b>Access</b>,
- <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_88_13">Generic_Prev</A>'<b>Access</b>);
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_79_7">Res</A>);
+ <a href="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_79_7">Res</a> := <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_235_13">Set_Fieldtype_Choice</a> (<a href="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_80_7">T</a>,
+ <a href="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_81_13">Generic_Next</a>'<b>Access</b>,
+ <a href="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_88_13">Generic_Prev</a>'<b>Access</b>);
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_79_7">Res</a>);
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_143_4">M_Generic_Choice</A> := <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_80_7">T</A>;
+ <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_143_4">M_Generic_Choice</a> := <a href="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_80_7">T</a>;
<b>end</b> <b>if</b>;
- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_143_4">M_Generic_Choice</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</A>);
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_143_4">M_Generic_Choice</A>;
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_79_13">C_Generic_Choice</A>;
+ <b>pragma</b> Assert (<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_143_4">M_Generic_Choice</a> /= <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</a>);
+ <b>return</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_143_4">M_Generic_Choice</a>;
+ <b>end</b> <a href="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_79_13">C_Generic_Choice</a>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_45_53">User</A>.<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_45_58">Choice</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<a href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_45_53">User</a>.<a href="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_45_58">Choice</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__ads.htm b/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__ads.htm
index 7dd786e6e467..74a658891d77 100644
--- a/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__ads.htm
+++ b/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__ads.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-forms-field_types-user-choice.ads</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-forms-field_types-user-choice.ads</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,103 +11,103 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-user-choice.ads </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.User.Choice --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- S P E C --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2008,2011 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.15 @</EM></span>
-<span class="comment"><EM>-- @Date: 2020/02/02 23:34:34 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-forms-field_types-user-choice.ads </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Forms.Field_Types.User.Choice --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- S P E C --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2008,2011 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.15 @</em></span>
+<span class="comment"><em>-- @Date: 2020/02/02 23:34:34 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<b>with</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C;
-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_45_53">User</A>.<span class="symbol"><A NAME="ref_45_58" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_46_63">Choice</A></span> <b>is</b>
+<b>package</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<a href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_45_53">User</a>.<span class="symbol"><a name="ref_45_58" href="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_46_63">Choice</a></span> <b>is</b>
<b>pragma</b> Preelaborate
- (<A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_45_53">User</A>.<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_45_58">Choice</A>);
+ (<a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<a href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_45_53">User</a>.<a href="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_45_58">Choice</a>);
- <b>subtype</b> <span class="symbol"><A NAME="ref_49_12">C_Int</A></span> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
+ <b>subtype</b> <span class="symbol"><a name="ref_49_12">C_Int</a></span> <b>is</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.int;
- <b>type</b> <span class="symbol"><A NAME="ref_51_9">User_Defined_Field_Type_With_Choice</A></span> <b>is</b> <b>abstract</b> <b>new</b>
- <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_49_9">User_Defined_Field_Type</A> <b>with</b> <b>null</b> <b>record</b>;
- <span class="comment"><EM>-- This is the root of the mechanism we use to create field types in</EM></span>
- <span class="comment"><EM>-- Ada95 that allow the prev/next mechanism. You should your own type</EM></span>
- <span class="comment"><EM>-- derive from this one and implement the Field_Check, Character_Check</EM></span>
- <span class="comment"><EM>-- Next and Previous functions for your own type.</EM></span>
+ <b>type</b> <span class="symbol"><a name="ref_51_9">User_Defined_Field_Type_With_Choice</a></span> <b>is</b> <b>abstract</b> <b>new</b>
+ <a href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_49_9">User_Defined_Field_Type</a> <b>with</b> <b>null</b> <b>record</b>;
+ <span class="comment"><em>-- This is the root of the mechanism we use to create field types in</em></span>
+ <span class="comment"><em>-- Ada95 that allow the prev/next mechanism. You should your own type</em></span>
+ <span class="comment"><em>-- derive from this one and implement the Field_Check, Character_Check</em></span>
+ <span class="comment"><em>-- Next and Previous functions for your own type.</em></span>
- <b>type</b> <span class="symbol"><A NAME="ref_58_9">User_Defined_Field_Type_With_Choice_Access</A></span> <b>is</b> <b>access</b> <b>all</b>
- <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_51_9">User_Defined_Field_Type_With_Choice</A>'Class;
+ <b>type</b> <span class="symbol"><a name="ref_58_9">User_Defined_Field_Type_With_Choice_Access</a></span> <b>is</b> <b>access</b> <b>all</b>
+ <a href="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_51_9">User_Defined_Field_Type_With_Choice</a>'Class;
- <b>function</b> <span class="symbol"><A NAME="ref_61_13">Next</A></span>
- (<span class="symbol"><A NAME="ref_62_7" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_61_13">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_63_7" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_61_13">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_51_9">User_Defined_Field_Type_With_Choice</A>) <b>return</b> Boolean
+ <b>function</b> <span class="symbol"><a name="ref_61_13">Next</a></span>
+ (<span class="symbol"><a name="ref_62_7">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_63_7">Typ</a></span> : <a href="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_51_9">User_Defined_Field_Type_With_Choice</a>) <b>return</b> Boolean
<b>is</b> <b>abstract</b>;
- <span class="comment"><EM>-- If True is returned, the function successfully generated a next</EM></span>
- <span class="comment"><EM>-- value into the fields buffer.</EM></span>
+ <span class="comment"><em>-- If True is returned, the function successfully generated a next</em></span>
+ <span class="comment"><em>-- value into the fields buffer.</em></span>
- <b>function</b> <span class="symbol"><A NAME="ref_68_13">Previous</A></span>
- (<span class="symbol"><A NAME="ref_69_7" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_68_13">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_70_7" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_68_13">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_51_9">User_Defined_Field_Type_With_Choice</A>) <b>return</b> Boolean
+ <b>function</b> <span class="symbol"><a name="ref_68_13">Previous</a></span>
+ (<span class="symbol"><a name="ref_69_7">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_70_7">Typ</a></span> : <a href="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_51_9">User_Defined_Field_Type_With_Choice</a>) <b>return</b> Boolean
<b>is</b> <b>abstract</b>;
- <span class="comment"><EM>-- If True is returned, the function successfully generated a previous</EM></span>
- <span class="comment"><EM>-- value into the fields buffer.</EM></span>
+ <span class="comment"><em>-- If True is returned, the function successfully generated a previous</em></span>
+ <span class="comment"><em>-- value into the fields buffer.</em></span>
- <span class="comment"><EM>-- +----------------------------------------------------------------------</EM></span>
- <span class="comment"><EM>-- | Private Part.</EM></span>
- <span class="comment"><EM>-- |</EM></span>
+ <span class="comment"><em>-- +----------------------------------------------------------------------</em></span>
+ <span class="comment"><em>-- | Private Part.</em></span>
+ <span class="comment"><em>-- |</em></span>
<b>private</b>
- <b>function</b> <span class="symbol"><A NAME="ref_79_13" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_77_13">C_Generic_Choice</A></span> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A>;
+ <b>function</b> <span class="symbol"><a name="ref_79_13" href="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_77_13">C_Generic_Choice</a></span> <b>return</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_81_13" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_51_13">Generic_Next</A></span> (<span class="symbol"><A NAME="ref_81_27" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_51_27">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_82_27" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_52_27">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A>;
- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_81_13">Generic_Next</A>);
- <span class="comment"><EM>-- This is the generic next Choice_Function for the low-level fieldtype</EM></span>
- <span class="comment"><EM>-- representing all the User_Defined_Field_Type derivatives. It routes</EM></span>
- <span class="comment"><EM>-- the call to the Next implementation for the type.</EM></span>
+ <b>function</b> <span class="symbol"><a name="ref_81_13" href="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_51_13">Generic_Next</a></span> (<span class="symbol"><a name="ref_81_27" href="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_51_27">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_82_27" href="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_52_27">Usr</a></span> : System.Address) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a>;
+ <b>pragma</b> Convention (C, <a href="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_81_13">Generic_Next</a>);
+ <span class="comment"><em>-- This is the generic next Choice_Function for the low-level fieldtype</em></span>
+ <span class="comment"><em>-- representing all the User_Defined_Field_Type derivatives. It routes</em></span>
+ <span class="comment"><em>-- the call to the Next implementation for the type.</em></span>
- <b>function</b> <span class="symbol"><A NAME="ref_88_13" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_63_13">Generic_Prev</A></span> (<span class="symbol"><A NAME="ref_88_27" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_63_27">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_89_27" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_64_27">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A>;
- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_88_13">Generic_Prev</A>);
- <span class="comment"><EM>-- This is the generic prev Choice_Function for the low-level fieldtype</EM></span>
- <span class="comment"><EM>-- representing all the User_Defined_Field_Type derivatives. It routes</EM></span>
- <span class="comment"><EM>-- the call to the Previous implementation for the type.</EM></span>
+ <b>function</b> <span class="symbol"><a name="ref_88_13" href="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_63_13">Generic_Prev</a></span> (<span class="symbol"><a name="ref_88_27" href="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_63_27">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_89_27" href="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_64_27">Usr</a></span> : System.Address) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a>;
+ <b>pragma</b> Convention (C, <a href="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_88_13">Generic_Prev</a>);
+ <span class="comment"><em>-- This is the generic prev Choice_Function for the low-level fieldtype</em></span>
+ <span class="comment"><em>-- representing all the User_Defined_Field_Type derivatives. It routes</em></span>
+ <span class="comment"><em>-- the call to the Previous implementation for the type.</em></span>
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_45_53">User</A>.<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_45_58">Choice</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<a href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_45_53">User</a>.<a href="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_45_58">Choice</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_types-user__adb.htm b/doc/html/ada/terminal_interface-curses-forms-field_types-user__adb.htm
index 333957eb0aaf..066df2998f0e 100644
--- a/doc/html/ada/terminal_interface-curses-forms-field_types-user__adb.htm
+++ b/doc/html/ada/terminal_interface-curses-forms-field_types-user__adb.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-forms-field_types-user.adb</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-forms-field_types-user.adb</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,135 +11,135 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-user.adb </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.User --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- B O D Y --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2011,2014 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.24 @</EM></span>
-<span class="comment"><EM>-- @Date: 2020/02/02 23:34:34 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-forms-field_types-user.adb </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Forms.Field_Types.User --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- B O D Y --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2011,2014 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.24 @</em></span>
+<span class="comment"><em>-- @Date: 2020/02/02 23:34:34 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
<b>with</b> System.Address_To_Access_Conversions;
-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>;
+<b>with</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>; <b>use</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<span class="symbol"><A NAME="ref_46_58" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_45_53">User</A></span> <b>is</b>
+<b>package</b> <b>body</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<span class="symbol"><a name="ref_46_58" href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_45_53">User</a></span> <b>is</b>
- <b>procedure</b> <span class="symbol"><A NAME="ref_48_14" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_71_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_48_30" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_71_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_49_30" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_72_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_49_9">User_Defined_Field_Type</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_48_14" href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_71_14">Set_Field_Type</a></span> (<span class="symbol"><a name="ref_48_30" href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_71_30">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_49_30" href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_72_30">Typ</a></span> : <a href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_49_9">User_Defined_Field_Type</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_51_16" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_60_16">Allocate_Arg</A></span> (<span class="symbol"><A NAME="ref_51_30" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_60_30">T</A></span> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_49_9">User_Defined_Field_Type</A>'Class)
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</A>;
+ <b>function</b> <span class="symbol"><a name="ref_51_16" href="terminal_interface-curses-forms-field_types-user__adb.htm#ref_60_16">Allocate_Arg</a></span> (<span class="symbol"><a name="ref_51_30" href="terminal_interface-curses-forms-field_types-user__adb.htm#ref_60_30">T</a></span> : <a href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_49_9">User_Defined_Field_Type</a>'Class)
+ <b>return</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_54_16">Set_Fld_Type</A></span> (<span class="symbol"><A NAME="ref_54_30" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_54_16">F</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_71_30">Fld</A>;
- <span class="symbol"><A NAME="ref_55_30" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_54_16">Cft</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_80_13">C_Generic_Type</A>;
- <span class="symbol"><A NAME="ref_56_30" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_54_16">Arg1</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</A>)
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_54_16">Set_Fld_Type</a></span> (<span class="symbol"><a name="ref_54_30">F</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a> := <a href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_71_30">Fld</a>;
+ <span class="symbol"><a name="ref_55_30">Cft</a></span> : <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</a> := <a href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_80_13">C_Generic_Type</a>;
+ <span class="symbol"><a name="ref_56_30">Arg1</a></span> : <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</a>)
+ <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Fld_Type, "set_field_type_user");
- <b>function</b> <span class="symbol"><A NAME="ref_60_16" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_51_16">Allocate_Arg</A></span> (<span class="symbol"><A NAME="ref_60_30" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_51_30">T</A></span> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_49_9">User_Defined_Field_Type</A>'Class)
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</A>
+ <b>function</b> <span class="symbol"><a name="ref_60_16" href="terminal_interface-curses-forms-field_types-user__adb.htm#ref_51_16">Allocate_Arg</a></span> (<span class="symbol"><a name="ref_60_30" href="terminal_interface-curses-forms-field_types-user__adb.htm#ref_51_30">T</a></span> : <a href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_49_9">User_Defined_Field_Type</a>'Class)
+ <b>return</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</a>
<b>is</b>
- <span class="symbol"><A NAME="ref_63_10">Ptr</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_64_9">Field_Type_Access</A>
- := <b>new</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_49_9">User_Defined_Field_Type</A>'Class'(<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_51_30">T</A>);
+ <span class="symbol"><a name="ref_63_10">Ptr</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_64_9">Field_Type_Access</a>
+ := <b>new</b> <a href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_49_9">User_Defined_Field_Type</a>'Class'(<a href="terminal_interface-curses-forms-field_types-user__adb.htm#ref_51_30">T</a>);
<b>begin</b>
- <b>return</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_9">Argument</A>'(<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Usr</A> =&gt; System.Null_Address,
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Typ</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_63_10">Ptr</A>,
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_215_7">Cft</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</A>);
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_51_16">Allocate_Arg</A>;
+ <b>return</b> <b>new</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_212_9">Argument</a>'(<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Usr</a> =&gt; System.Null_Address,
+ <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Typ</a> =&gt; <a href="terminal_interface-curses-forms-field_types-user__adb.htm#ref_63_10">Ptr</a>,
+ <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_215_7">Cft</a> =&gt; <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</a>);
+ <b>end</b> <a href="terminal_interface-curses-forms-field_types-user__adb.htm#ref_51_16">Allocate_Arg</a>;
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_54_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_56_30">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_51_16">Allocate_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_72_30">Typ</A>)));
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_71_14">Set_Field_Type</A>;
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms-field_types-user__adb.htm#ref_54_16">Set_Fld_Type</a> (<a href="terminal_interface-curses-forms-field_types-user__adb.htm#ref_56_30">Arg1</a> =&gt; <a href="terminal_interface-curses-forms-field_types-user__adb.htm#ref_51_16">Allocate_Arg</a> (<a href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_72_30">Typ</a>)));
+ <b>end</b> <a href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_71_14">Set_Field_Type</a>;
<b>package</b> Argument_Conversions <b>is</b>
- <b>new</b> System.Address_To_Access_Conversions (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_9">Argument</A>);
+ <b>new</b> System.Address_To_Access_Conversions (<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_212_9">Argument</a>);
- <b>function</b> <span class="symbol"><A NAME="ref_78_13" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_82_13">Generic_Field_Check</A></span> (<span class="symbol"><A NAME="ref_78_34" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_82_34">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_79_34" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_83_34">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A>
+ <b>function</b> <span class="symbol"><a name="ref_78_13" href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_82_13">Generic_Field_Check</a></span> (<span class="symbol"><a name="ref_78_34" href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_82_34">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_79_34" href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_83_34">Usr</a></span> : System.Address) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a>
<b>is</b>
- <span class="symbol"><A NAME="ref_81_7">Result</A></span> : Boolean;
- <span class="symbol"><A NAME="ref_82_7">Udf</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_54_9">User_Defined_Field_Type_Access</A> :=
- <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_54_9">User_Defined_Field_Type_Access</A>
- (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</A> (Argument_Conversions.To_Pointer (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_83_34">Usr</A>)).<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Typ</A>);
+ <span class="symbol"><a name="ref_81_7">Result</a></span> : Boolean;
+ <span class="symbol"><a name="ref_82_7">Udf</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_54_9">User_Defined_Field_Type_Access</a> :=
+ <a href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_54_9">User_Defined_Field_Type_Access</a>
+ (<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</a> (Argument_Conversions.To_Pointer (<a href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_83_34">Usr</a>)).<b>all</b>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Typ</a>);
<b>begin</b>
- <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_81_7">Result</A> := <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_57_13">Field_Check</A> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_82_34">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_82_7">Udf</A>.<b>all</b>);
- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_81_7">Result</A>));
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_82_13">Generic_Field_Check</A>;
+ <a href="terminal_interface-curses-forms-field_types-user__adb.htm#ref_81_7">Result</a> := <a href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_57_13">Field_Check</a> (<a href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_82_34">Fld</a>, <a href="terminal_interface-curses-forms-field_types-user__adb.htm#ref_82_7">Udf</a>.<b>all</b>);
+ <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a> (Boolean'Pos (<a href="terminal_interface-curses-forms-field_types-user__adb.htm#ref_81_7">Result</a>));
+ <b>end</b> <a href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_82_13">Generic_Field_Check</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_90_13" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_89_13">Generic_Char_Check</A></span> (<span class="symbol"><A NAME="ref_90_33" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_89_33">Ch</A></span> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_47_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_91_33" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_90_33">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A>
+ <b>function</b> <span class="symbol"><a name="ref_90_13" href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_89_13">Generic_Char_Check</a></span> (<span class="symbol"><a name="ref_90_33" href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_89_33">Ch</a></span> : <a href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_47_12">C_Int</a>;
+ <span class="symbol"><a name="ref_91_33" href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_90_33">Usr</a></span> : System.Address) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a>
<b>is</b>
- <span class="symbol"><A NAME="ref_93_7">Result</A></span> : Boolean;
- <span class="symbol"><A NAME="ref_94_7">Udf</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_54_9">User_Defined_Field_Type_Access</A> :=
- <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_54_9">User_Defined_Field_Type_Access</A>
- (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</A> (Argument_Conversions.To_Pointer (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_90_33">Usr</A>)).<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Typ</A>);
+ <span class="symbol"><a name="ref_93_7">Result</a></span> : Boolean;
+ <span class="symbol"><a name="ref_94_7">Udf</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_54_9">User_Defined_Field_Type_Access</a> :=
+ <a href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_54_9">User_Defined_Field_Type_Access</a>
+ (<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</a> (Argument_Conversions.To_Pointer (<a href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_90_33">Usr</a>)).<b>all</b>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Typ</a>);
<b>begin</b>
- <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_93_7">Result</A> := <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_64_13">Character_Check</A> (Character'Val (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_89_33">Ch</A>), <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_94_7">Udf</A>.<b>all</b>);
- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_93_7">Result</A>));
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_89_13">Generic_Char_Check</A>;
+ <a href="terminal_interface-curses-forms-field_types-user__adb.htm#ref_93_7">Result</a> := <a href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_64_13">Character_Check</a> (Character'Val (<a href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_89_33">Ch</a>), <a href="terminal_interface-curses-forms-field_types-user__adb.htm#ref_94_7">Udf</a>.<b>all</b>);
+ <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a> (Boolean'Pos (<a href="terminal_interface-curses-forms-field_types-user__adb.htm#ref_93_7">Result</a>));
+ <b>end</b> <a href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_89_13">Generic_Char_Check</a>;
- <span class="comment"><EM>-- -----------------------------------------------------------------------</EM></span>
- <span class="comment"><EM>--</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_104_13" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_80_13">C_Generic_Type</A></span> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A>
+ <span class="comment"><em>-- -----------------------------------------------------------------------</em></span>
+ <span class="comment"><em>--</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_104_13" href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_80_13">C_Generic_Type</a></span> <b>return</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</a>
<b>is</b>
- <span class="symbol"><A NAME="ref_106_7">Res</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
- <span class="symbol"><A NAME="ref_107_7">T</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A>;
+ <span class="symbol"><a name="ref_106_7">Res</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
+ <span class="symbol"><a name="ref_107_7">T</a></span> : <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</a>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_142_4">M_Generic_Type</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</A> <b>then</b>
- <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_107_7">T</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_223_13">New_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_82_13">Generic_Field_Check</A>'<b>Access</b>,
- <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_89_13">Generic_Char_Check</A>'<b>Access</b>);
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_107_7">T</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_142_4">M_Generic_Type</a> = <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</a> <b>then</b>
+ <a href="terminal_interface-curses-forms-field_types-user__adb.htm#ref_107_7">T</a> := <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_223_13">New_Fieldtype</a> (<a href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_82_13">Generic_Field_Check</a>'<b>Access</b>,
+ <a href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_89_13">Generic_Char_Check</a>'<b>Access</b>);
+ <b>if</b> <a href="terminal_interface-curses-forms-field_types-user__adb.htm#ref_107_7">T</a> = <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</a>;
<b>else</b>
- <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_106_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_228_13">Set_Fieldtype_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_107_7">T</A>,
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_163_13">Make_Arg</A>'<b>Access</b>,
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_168_13">Copy_Arg</A>'<b>Access</b>,
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_173_14">Free_Arg</A>'<b>Access</b>);
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_106_7">Res</A>);
+ <a href="terminal_interface-curses-forms-field_types-user__adb.htm#ref_106_7">Res</a> := <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_228_13">Set_Fieldtype_Arg</a> (<a href="terminal_interface-curses-forms-field_types-user__adb.htm#ref_107_7">T</a>,
+ <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_163_13">Make_Arg</a>'<b>Access</b>,
+ <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_168_13">Copy_Arg</a>'<b>Access</b>,
+ <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_173_14">Free_Arg</a>'<b>Access</b>);
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms-field_types-user__adb.htm#ref_106_7">Res</a>);
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_142_4">M_Generic_Type</A> := <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_107_7">T</A>;
+ <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_142_4">M_Generic_Type</a> := <a href="terminal_interface-curses-forms-field_types-user__adb.htm#ref_107_7">T</a>;
<b>end</b> <b>if</b>;
- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_142_4">M_Generic_Type</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</A>);
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_142_4">M_Generic_Type</A>;
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_80_13">C_Generic_Type</A>;
+ <b>pragma</b> Assert (<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_142_4">M_Generic_Type</a> /= <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</a>);
+ <b>return</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_142_4">M_Generic_Type</a>;
+ <b>end</b> <a href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_80_13">C_Generic_Type</a>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_45_53">User</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<a href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_45_53">User</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_types-user__ads.htm b/doc/html/ada/terminal_interface-curses-forms-field_types-user__ads.htm
index 1b753bb51a7b..71902837dd31 100644
--- a/doc/html/ada/terminal_interface-curses-forms-field_types-user__ads.htm
+++ b/doc/html/ada/terminal_interface-curses-forms-field_types-user__ads.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-forms-field_types-user.ads</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-forms-field_types-user.ads</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,104 +11,104 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-user.ads </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.User --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- S P E C --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2009,2011 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.16 @</EM></span>
-<span class="comment"><EM>-- @Date: 2020/02/02 23:34:34 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-forms-field_types-user.ads </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Forms.Field_Types.User --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- S P E C --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2009,2011 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.16 @</em></span>
+<span class="comment"><em>-- @Date: 2020/02/02 23:34:34 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<b>with</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C;
-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<span class="symbol"><A NAME="ref_45_53" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_46_58">User</A></span> <b>is</b>
- <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_45_53">User</A>);
- <b>subtype</b> <span class="symbol"><A NAME="ref_47_12">C_Int</A></span> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
+<b>package</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<span class="symbol"><a name="ref_45_53" href="terminal_interface-curses-forms-field_types-user__adb.htm#ref_46_58">User</a></span> <b>is</b>
+ <b>pragma</b> Preelaborate (<a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<a href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_45_53">User</a>);
+ <b>subtype</b> <span class="symbol"><a name="ref_47_12">C_Int</a></span> <b>is</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.int;
- <b>type</b> <span class="symbol"><A NAME="ref_49_9">User_Defined_Field_Type</A></span> <b>is</b> <b>abstract</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_53_9">Field_Type</A> <b>with</b> <b>null</b> <b>record</b>;
- <span class="comment"><EM>-- This is the root of the mechanism we use to create field types in</EM></span>
- <span class="comment"><EM>-- Ada95. You should your own type derive from this one and implement</EM></span>
- <span class="comment"><EM>-- the Field_Check and Character_Check functions for your own type.</EM></span>
+ <b>type</b> <span class="symbol"><a name="ref_49_9">User_Defined_Field_Type</a></span> <b>is</b> <b>abstract</b> <b>new</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_53_9">Field_Type</a> <b>with</b> <b>null</b> <b>record</b>;
+ <span class="comment"><em>-- This is the root of the mechanism we use to create field types in</em></span>
+ <span class="comment"><em>-- Ada95. You should your own type derive from this one and implement</em></span>
+ <span class="comment"><em>-- the Field_Check and Character_Check functions for your own type.</em></span>
- <b>type</b> <span class="symbol"><A NAME="ref_54_9">User_Defined_Field_Type_Access</A></span> <b>is</b> <b>access</b> <b>all</b>
- <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_49_9">User_Defined_Field_Type</A>'Class;
+ <b>type</b> <span class="symbol"><a name="ref_54_9">User_Defined_Field_Type_Access</a></span> <b>is</b> <b>access</b> <b>all</b>
+ <a href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_49_9">User_Defined_Field_Type</a>'Class;
- <b>function</b> <span class="symbol"><A NAME="ref_57_13">Field_Check</A></span>
- (<span class="symbol"><A NAME="ref_58_7" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_57_13">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_59_7" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_57_13">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_49_9">User_Defined_Field_Type</A>) <b>return</b> Boolean
+ <b>function</b> <span class="symbol"><a name="ref_57_13">Field_Check</a></span>
+ (<span class="symbol"><a name="ref_58_7">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_59_7">Typ</a></span> : <a href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_49_9">User_Defined_Field_Type</a>) <b>return</b> Boolean
<b>is</b> <b>abstract</b>;
- <span class="comment"><EM>-- If True is returned, the field is considered valid, otherwise it is</EM></span>
- <span class="comment"><EM>-- invalid.</EM></span>
+ <span class="comment"><em>-- If True is returned, the field is considered valid, otherwise it is</em></span>
+ <span class="comment"><em>-- invalid.</em></span>
- <b>function</b> <span class="symbol"><A NAME="ref_64_13">Character_Check</A></span>
- (<span class="symbol"><A NAME="ref_65_7" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_64_13">Ch</A></span> : Character;
- <span class="symbol"><A NAME="ref_66_7" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_64_13">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_49_9">User_Defined_Field_Type</A>) <b>return</b> Boolean
+ <b>function</b> <span class="symbol"><a name="ref_64_13">Character_Check</a></span>
+ (<span class="symbol"><a name="ref_65_7">Ch</a></span> : Character;
+ <span class="symbol"><a name="ref_66_7">Typ</a></span> : <a href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_49_9">User_Defined_Field_Type</a>) <b>return</b> Boolean
<b>is</b> <b>abstract</b>;
- <span class="comment"><EM>-- If True is returned, the character is considered as valid for the</EM></span>
- <span class="comment"><EM>-- field, otherwise as invalid.</EM></span>
+ <span class="comment"><em>-- If True is returned, the character is considered as valid for the</em></span>
+ <span class="comment"><em>-- field, otherwise as invalid.</em></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_71_14" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_48_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_71_30" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_48_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_72_30" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_49_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_49_9">User_Defined_Field_Type</A>);
- <span class="comment"><EM>-- This should work for all types derived from User_Defined_Field_Type.</EM></span>
- <span class="comment"><EM>-- No need to reimplement it for your derived type.</EM></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_71_14" href="terminal_interface-curses-forms-field_types-user__adb.htm#ref_48_14">Set_Field_Type</a></span> (<span class="symbol"><a name="ref_71_30" href="terminal_interface-curses-forms-field_types-user__adb.htm#ref_48_30">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_72_30" href="terminal_interface-curses-forms-field_types-user__adb.htm#ref_49_30">Typ</a></span> : <a href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_49_9">User_Defined_Field_Type</a>);
+ <span class="comment"><em>-- This should work for all types derived from User_Defined_Field_Type.</em></span>
+ <span class="comment"><em>-- No need to reimplement it for your derived type.</em></span>
- <span class="comment"><EM>-- +----------------------------------------------------------------------</EM></span>
- <span class="comment"><EM>-- | Private Part.</EM></span>
- <span class="comment"><EM>-- | Used by the Choice child package.</EM></span>
+ <span class="comment"><em>-- +----------------------------------------------------------------------</em></span>
+ <span class="comment"><em>-- | Private Part.</em></span>
+ <span class="comment"><em>-- | Used by the Choice child package.</em></span>
<b>private</b>
- <b>function</b> <span class="symbol"><A NAME="ref_80_13" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_104_13">C_Generic_Type</A></span> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A>;
+ <b>function</b> <span class="symbol"><a name="ref_80_13" href="terminal_interface-curses-forms-field_types-user__adb.htm#ref_104_13">C_Generic_Type</a></span> <b>return</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_82_13" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_78_13">Generic_Field_Check</A></span> (<span class="symbol"><A NAME="ref_82_34" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_78_34">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_83_34" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_79_34">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A>;
- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_82_13">Generic_Field_Check</A>);
- <span class="comment"><EM>-- This is the generic Field_Check_Function for the low-level fieldtype</EM></span>
- <span class="comment"><EM>-- representing all the User_Defined_Field_Type derivatives. It routes</EM></span>
- <span class="comment"><EM>-- the call to the Field_Check implementation for the type.</EM></span>
+ <b>function</b> <span class="symbol"><a name="ref_82_13" href="terminal_interface-curses-forms-field_types-user__adb.htm#ref_78_13">Generic_Field_Check</a></span> (<span class="symbol"><a name="ref_82_34" href="terminal_interface-curses-forms-field_types-user__adb.htm#ref_78_34">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_83_34" href="terminal_interface-curses-forms-field_types-user__adb.htm#ref_79_34">Usr</a></span> : System.Address) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a>;
+ <b>pragma</b> Convention (C, <a href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_82_13">Generic_Field_Check</a>);
+ <span class="comment"><em>-- This is the generic Field_Check_Function for the low-level fieldtype</em></span>
+ <span class="comment"><em>-- representing all the User_Defined_Field_Type derivatives. It routes</em></span>
+ <span class="comment"><em>-- the call to the Field_Check implementation for the type.</em></span>
- <b>function</b> <span class="symbol"><A NAME="ref_89_13" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_90_13">Generic_Char_Check</A></span> (<span class="symbol"><A NAME="ref_89_33" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_90_33">Ch</A></span> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_47_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_90_33" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_91_33">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A>;
- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_89_13">Generic_Char_Check</A>);
- <span class="comment"><EM>-- This is the generic Char_Check_Function for the low-level fieldtype</EM></span>
- <span class="comment"><EM>-- representing all the User_Defined_Field_Type derivatives. It routes</EM></span>
- <span class="comment"><EM>-- the call to the Character_Check implementation for the type.</EM></span>
+ <b>function</b> <span class="symbol"><a name="ref_89_13" href="terminal_interface-curses-forms-field_types-user__adb.htm#ref_90_13">Generic_Char_Check</a></span> (<span class="symbol"><a name="ref_89_33" href="terminal_interface-curses-forms-field_types-user__adb.htm#ref_90_33">Ch</a></span> : <a href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_47_12">C_Int</a>;
+ <span class="symbol"><a name="ref_90_33" href="terminal_interface-curses-forms-field_types-user__adb.htm#ref_91_33">Usr</a></span> : System.Address) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a>;
+ <b>pragma</b> Convention (C, <a href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_89_13">Generic_Char_Check</a>);
+ <span class="comment"><em>-- This is the generic Char_Check_Function for the low-level fieldtype</em></span>
+ <span class="comment"><em>-- representing all the User_Defined_Field_Type derivatives. It routes</em></span>
+ <span class="comment"><em>-- the call to the Character_Check implementation for the type.</em></span>
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_45_53">User</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>.<a href="terminal_interface-curses-forms-field_types-user__ads.htm#ref_45_53">User</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_types__adb.htm b/doc/html/ada/terminal_interface-curses-forms-field_types__adb.htm
index 35cc0dfc06ec..c028825d4cfb 100644
--- a/doc/html/ada/terminal_interface-curses-forms-field_types__adb.htm
+++ b/doc/html/ada/terminal_interface-curses-forms-field_types__adb.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-forms-field_types.adb</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-forms-field_types.adb</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,278 +11,278 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types.adb </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- B O D Y --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2011,2014 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.29 @</EM></span>
-<span class="comment"><EM>-- @Date: 2020/02/02 23:34:34 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>;
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-forms-field_types.adb </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Forms.Field_Types --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- B O D Y --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2011,2014 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.29 @</em></span>
+<span class="comment"><em>-- @Date: 2020/02/02 23:34:34 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<b>with</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>; <b>use</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>;
<b>with</b> Ada.Unchecked_Deallocation;
<b>with</b> System.Address_To_Access_Conversions;
-<span class="comment"><EM>-- |</EM></span>
-<span class="comment"><EM>-- |=====================================================================</EM></span>
-<span class="comment"><EM>-- | man page form_fieldtype.3x</EM></span>
-<span class="comment"><EM>-- |=====================================================================</EM></span>
-<span class="comment"><EM>-- |</EM></span>
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<span class="symbol"><A NAME="ref_52_46" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A></span> <b>is</b>
+<span class="comment"><em>-- |</em></span>
+<span class="comment"><em>-- |=====================================================================</em></span>
+<span class="comment"><em>-- | man page form_fieldtype.3x</em></span>
+<span class="comment"><em>-- |=====================================================================</em></span>
+<span class="comment"><em>-- |</em></span>
+<b>package</b> <b>body</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<span class="symbol"><a name="ref_52_46" href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a></span> <b>is</b>
<b>use</b> <b>type</b> System.Address;
<b>package</b> Argument_Conversions <b>is</b>
- <b>new</b> System.Address_To_Access_Conversions (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_9">Argument</A>);
+ <b>new</b> System.Address_To_Access_Conversions (<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_212_9">Argument</a>);
- <b>function</b> <span class="symbol"><A NAME="ref_59_13">Get_Fieldtype</A></span> (<span class="symbol"><A NAME="ref_59_28" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_59_13">F</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A>;
+ <b>function</b> <span class="symbol"><a name="ref_59_13">Get_Fieldtype</a></span> (<span class="symbol"><a name="ref_59_28">F</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>) <b>return</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</a>;
<b>pragma</b> Import (C, Get_Fieldtype, "field_type");
- <b>function</b> <span class="symbol"><A NAME="ref_62_13">Get_Arg</A></span> (<span class="symbol"><A NAME="ref_62_22" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_62_13">F</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>) <b>return</b> System.Address;
+ <b>function</b> <span class="symbol"><a name="ref_62_13">Get_Arg</a></span> (<span class="symbol"><a name="ref_62_22">F</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>) <b>return</b> System.Address;
<b>pragma</b> Import (C, Get_Arg, "field_arg");
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | man page form_field_validation.3x</EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_71_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_80_13">Get_Type</A></span> (<span class="symbol"><A NAME="ref_71_23" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_80_23">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_64_9">Field_Type_Access</A>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | man page form_field_validation.3x</em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_71_13" href="terminal_interface-curses-forms-field_types__ads.htm#ref_80_13">Get_Type</a></span> (<span class="symbol"><a name="ref_71_23" href="terminal_interface-curses-forms-field_types__ads.htm#ref_80_23">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>) <b>return</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_64_9">Field_Type_Access</a>
<b>is</b>
- <span class="symbol"><A NAME="ref_73_7">Low_Level</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_59_13">Get_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_80_23">Fld</A>);
- <span class="symbol"><A NAME="ref_74_7">Arg</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</A>;
+ <span class="symbol"><a name="ref_73_7">Low_Level</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</a> := <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_59_13">Get_Fieldtype</a> (<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_80_23">Fld</a>);
+ <span class="symbol"><a name="ref_74_7">Arg</a></span> : <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</a>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_73_7">Low_Level</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</A> <b>then</b>
+ <b>if</b> <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_73_7">Low_Level</a> = <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</a> <b>then</b>
<b>return</b> <b>null</b>;
<b>else</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_73_7">Low_Level</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_144_4">M_Builtin_Router</A> <b>or</b> <b>else</b>
- <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_73_7">Low_Level</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_142_4">M_Generic_Type</A> <b>or</b> <b>else</b>
- <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_73_7">Low_Level</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_145_4">M_Choice_Router</A> <b>or</b> <b>else</b>
- <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_73_7">Low_Level</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_143_4">M_Generic_Choice</A>
+ <b>if</b> <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_73_7">Low_Level</a> = <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_144_4">M_Builtin_Router</a> <b>or</b> <b>else</b>
+ <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_73_7">Low_Level</a> = <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_142_4">M_Generic_Type</a> <b>or</b> <b>else</b>
+ <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_73_7">Low_Level</a> = <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_145_4">M_Choice_Router</a> <b>or</b> <b>else</b>
+ <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_73_7">Low_Level</a> = <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_143_4">M_Generic_Choice</a>
<b>then</b>
- <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_74_7">Arg</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</A>
- (Argument_Conversions.To_Pointer (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_62_13">Get_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_80_23">Fld</A>)));
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_74_7">Arg</A> = <b>null</b> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</A>;
+ <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_74_7">Arg</a> := <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</a>
+ (Argument_Conversions.To_Pointer (<a href="terminal_interface-curses-forms-field_types__adb.htm#ref_62_13">Get_Arg</a> (<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_80_23">Fld</a>)));
+ <b>if</b> <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_74_7">Arg</a> = <b>null</b> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</a>;
<b>else</b>
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_74_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Typ</A>;
+ <b>return</b> <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_74_7">Arg</a>.<b>all</b>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Typ</a>;
<b>end</b> <b>if</b>;
<b>else</b>
- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</A>;
+ <b>raise</b> <a href="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</a>;
<b>end</b> <b>if</b>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_80_13">Get_Type</A>;
+ <b>end</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_80_13">Get_Type</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_97_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_168_13">Copy_Arg</A></span> (<span class="symbol"><A NAME="ref_97_23" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_168_23">Usr</A></span> : System.Address) <b>return</b> System.Address
+ <b>function</b> <span class="symbol"><a name="ref_97_13" href="terminal_interface-curses-forms-field_types__ads.htm#ref_168_13">Copy_Arg</a></span> (<span class="symbol"><a name="ref_97_23" href="terminal_interface-curses-forms-field_types__ads.htm#ref_168_23">Usr</a></span> : System.Address) <b>return</b> System.Address
<b>is</b>
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_168_23">Usr</A>;
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_168_13">Copy_Arg</A>;
+ <b>return</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_168_23">Usr</a>;
+ <b>end</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_168_13">Copy_Arg</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_103_14" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_173_14">Free_Arg</A></span> (<span class="symbol"><A NAME="ref_103_24" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_173_24">Usr</A></span> : System.Address)
+ <b>procedure</b> <span class="symbol"><a name="ref_103_14" href="terminal_interface-curses-forms-field_types__ads.htm#ref_173_14">Free_Arg</a></span> (<span class="symbol"><a name="ref_103_24" href="terminal_interface-curses-forms-field_types__ads.htm#ref_173_24">Usr</a></span> : System.Address)
<b>is</b>
<b>procedure</b> Free_Type <b>is</b> <b>new</b> Ada.Unchecked_Deallocation
- (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_53_9">Field_Type</A>'Class, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_64_9">Field_Type_Access</A>);
+ (<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_53_9">Field_Type</a>'Class, <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_64_9">Field_Type_Access</a>);
<b>procedure</b> Freeargs <b>is</b> <b>new</b> Ada.Unchecked_Deallocation
- (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_9">Argument</A>, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</A>);
+ (<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_212_9">Argument</a>, <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</a>);
- <span class="symbol"><A NAME="ref_110_7">To_Be_Free</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</A>
- := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</A> (Argument_Conversions.To_Pointer (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_173_24">Usr</A>));
- <span class="symbol"><A NAME="ref_112_7">Low_Level</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A>;
+ <span class="symbol"><a name="ref_110_7">To_Be_Free</a></span> : <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</a>
+ := <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</a> (Argument_Conversions.To_Pointer (<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_173_24">Usr</a>));
+ <span class="symbol"><a name="ref_112_7">Low_Level</a></span> : <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</a>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_110_7">To_Be_Free</A> /= <b>null</b> <b>then</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_110_7">To_Be_Free</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Usr</A> /= System.Null_Address <b>then</b>
- <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_112_7">Low_Level</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_110_7">To_Be_Free</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_215_7">Cft</A>;
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_112_7">Low_Level</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_127_10">Freearg</A> /= <b>null</b> <b>then</b>
- <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_112_7">Low_Level</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_127_10">Freearg</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_110_7">To_Be_Free</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Usr</A>);
+ <b>if</b> <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_110_7">To_Be_Free</a> /= <b>null</b> <b>then</b>
+ <b>if</b> <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_110_7">To_Be_Free</a>.<b>all</b>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Usr</a> /= System.Null_Address <b>then</b>
+ <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_112_7">Low_Level</a> := <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_110_7">To_Be_Free</a>.<b>all</b>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_215_7">Cft</a>;
+ <b>if</b> <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_112_7">Low_Level</a>.<b>all</b>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_127_10">Freearg</a> /= <b>null</b> <b>then</b>
+ <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_112_7">Low_Level</a>.<b>all</b>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_127_10">Freearg</a> (<a href="terminal_interface-curses-forms-field_types__adb.htm#ref_110_7">To_Be_Free</a>.<b>all</b>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Usr</a>);
<b>end</b> <b>if</b>;
<b>end</b> <b>if</b>;
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_110_7">To_Be_Free</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Typ</A> /= <b>null</b> <b>then</b>
- Free_Type (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_110_7">To_Be_Free</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Typ</A>);
+ <b>if</b> <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_110_7">To_Be_Free</a>.<b>all</b>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Typ</a> /= <b>null</b> <b>then</b>
+ Free_Type (<a href="terminal_interface-curses-forms-field_types__adb.htm#ref_110_7">To_Be_Free</a>.<b>all</b>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Typ</a>);
<b>end</b> <b>if</b>;
- Freeargs (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_110_7">To_Be_Free</A>);
+ Freeargs (<a href="terminal_interface-curses-forms-field_types__adb.htm#ref_110_7">To_Be_Free</a>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_173_14">Free_Arg</A>;
+ <b>end</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_173_14">Free_Arg</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_128_14" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_152_14">Wrap_Builtin</A></span> (<span class="symbol"><A NAME="ref_128_28" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_152_28">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_129_28" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_153_28">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_53_9">Field_Type</A>'Class;
- <span class="symbol"><A NAME="ref_130_28" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_154_28">Cft</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_149_13">C_Builtin_Router</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_128_14" href="terminal_interface-curses-forms-field_types__ads.htm#ref_152_14">Wrap_Builtin</a></span> (<span class="symbol"><a name="ref_128_28" href="terminal_interface-curses-forms-field_types__ads.htm#ref_152_28">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_129_28" href="terminal_interface-curses-forms-field_types__ads.htm#ref_153_28">Typ</a></span> : <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_53_9">Field_Type</a>'Class;
+ <span class="symbol"><a name="ref_130_28" href="terminal_interface-curses-forms-field_types__ads.htm#ref_154_28">Cft</a></span> : <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</a> := <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_149_13">C_Builtin_Router</a>)
<b>is</b>
- <span class="symbol"><A NAME="ref_132_7">Usr_Arg</A></span> : <b>constant</b> System.Address := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_62_13">Get_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_152_28">Fld</A>);
- <span class="symbol"><A NAME="ref_133_7">Low_Level</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_59_13">Get_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_152_28">Fld</A>);
- <span class="symbol"><A NAME="ref_134_7">Arg</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</A>;
- <b>function</b> <span class="symbol"><A NAME="ref_135_16">Set_Fld_Type</A></span> (<span class="symbol"><A NAME="ref_135_30" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_135_16">F</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_152_28">Fld</A>;
- <span class="symbol"><A NAME="ref_136_30" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_135_16">Cf</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_154_28">Cft</A>;
- <span class="symbol"><A NAME="ref_137_30" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_135_16">Arg1</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <span class="symbol"><a name="ref_132_7">Usr_Arg</a></span> : <b>constant</b> System.Address := <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_62_13">Get_Arg</a> (<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_152_28">Fld</a>);
+ <span class="symbol"><a name="ref_133_7">Low_Level</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</a> := <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_59_13">Get_Fieldtype</a> (<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_152_28">Fld</a>);
+ <span class="symbol"><a name="ref_134_7">Arg</a></span> : <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</a>;
+ <b>function</b> <span class="symbol"><a name="ref_135_16">Set_Fld_Type</a></span> (<span class="symbol"><a name="ref_135_30">F</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a> := <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_152_28">Fld</a>;
+ <span class="symbol"><a name="ref_136_30">Cf</a></span> : <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</a> := <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_154_28">Cft</a>;
+ <span class="symbol"><a name="ref_137_30">Arg1</a></span> : <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Fld_Type, "set_field_type_user");
<b>begin</b>
- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_133_7">Low_Level</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</A>);
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_154_28">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_149_13">C_Builtin_Router</A> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_154_28">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_150_13">C_Choice_Router</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</A>;
+ <b>pragma</b> Assert (<a href="terminal_interface-curses-forms-field_types__adb.htm#ref_133_7">Low_Level</a> /= <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</a>);
+ <b>if</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_154_28">Cft</a> /= <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_149_13">C_Builtin_Router</a> <b>and</b> <b>then</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_154_28">Cft</a> /= <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_150_13">C_Choice_Router</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</a>;
<b>else</b>
- <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_134_7">Arg</A> := <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_9">Argument</A>'(<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Usr</A> =&gt; System.Null_Address,
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Typ</A> =&gt; <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_53_9">Field_Type</A>'Class'(<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_153_28">Typ</A>),
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_215_7">Cft</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_59_13">Get_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_152_28">Fld</A>));
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_132_7">Usr_Arg</A> /= System.Null_Address <b>then</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_133_7">Low_Level</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_126_10">Copyarg</A> /= <b>null</b> <b>then</b>
- <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_134_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Usr</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_133_7">Low_Level</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_126_10">Copyarg</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_132_7">Usr_Arg</A>);
+ <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_134_7">Arg</a> := <b>new</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_212_9">Argument</a>'(<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Usr</a> =&gt; System.Null_Address,
+ <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Typ</a> =&gt; <b>new</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_53_9">Field_Type</a>'Class'(<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_153_28">Typ</a>),
+ <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_215_7">Cft</a> =&gt; <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_59_13">Get_Fieldtype</a> (<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_152_28">Fld</a>));
+ <b>if</b> <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_132_7">Usr_Arg</a> /= System.Null_Address <b>then</b>
+ <b>if</b> <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_133_7">Low_Level</a>.<b>all</b>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_126_10">Copyarg</a> /= <b>null</b> <b>then</b>
+ <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_134_7">Arg</a>.<b>all</b>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Usr</a> := <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_133_7">Low_Level</a>.<b>all</b>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_126_10">Copyarg</a> (<a href="terminal_interface-curses-forms-field_types__adb.htm#ref_132_7">Usr_Arg</a>);
<b>else</b>
- <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_134_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Usr</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_132_7">Usr_Arg</A>;
+ <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_134_7">Arg</a>.<b>all</b>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Usr</a> := <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_132_7">Usr_Arg</a>;
<b>end</b> <b>if</b>;
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_135_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_137_30">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_134_7">Arg</A>));
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms-field_types__adb.htm#ref_135_16">Set_Fld_Type</a> (<a href="terminal_interface-curses-forms-field_types__adb.htm#ref_137_30">Arg1</a> =&gt; <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_134_7">Arg</a>));
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_152_14">Wrap_Builtin</A>;
+ <b>end</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_152_14">Wrap_Builtin</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_160_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_178_13">Field_Check_Router</A></span> (<span class="symbol"><A NAME="ref_160_33" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_178_33">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_161_33" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_179_33">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A>
+ <b>function</b> <span class="symbol"><a name="ref_160_13" href="terminal_interface-curses-forms-field_types__ads.htm#ref_178_13">Field_Check_Router</a></span> (<span class="symbol"><a name="ref_160_33" href="terminal_interface-curses-forms-field_types__ads.htm#ref_178_33">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_161_33" href="terminal_interface-curses-forms-field_types__ads.htm#ref_179_33">Usr</a></span> : System.Address) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a>
<b>is</b>
- <span class="symbol"><A NAME="ref_163_7">Arg</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</A>
- := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</A> (Argument_Conversions.To_Pointer (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_179_33">Usr</A>));
+ <span class="symbol"><a name="ref_163_7">Arg</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</a>
+ := <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</a> (Argument_Conversions.To_Pointer (<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_179_33">Usr</a>));
<b>begin</b>
- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_163_7">Arg</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_163_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_215_7">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</A>
- <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_163_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Typ</A> /= <b>null</b>);
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_163_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_215_7">Cft</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_128_10">Fcheck</A> /= <b>null</b> <b>then</b>
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_163_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_215_7">Cft</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_128_10">Fcheck</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_178_33">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_163_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Usr</A>);
+ <b>pragma</b> Assert (<a href="terminal_interface-curses-forms-field_types__adb.htm#ref_163_7">Arg</a> /= <b>null</b> <b>and</b> <b>then</b> <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_163_7">Arg</a>.<b>all</b>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_215_7">Cft</a> /= <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</a>
+ <b>and</b> <b>then</b> <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_163_7">Arg</a>.<b>all</b>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Typ</a> /= <b>null</b>);
+ <b>if</b> <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_163_7">Arg</a>.<b>all</b>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_215_7">Cft</a>.<b>all</b>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_128_10">Fcheck</a> /= <b>null</b> <b>then</b>
+ <b>return</b> <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_163_7">Arg</a>.<b>all</b>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_215_7">Cft</a>.<b>all</b>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_128_10">Fcheck</a> (<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_178_33">Fld</a>, <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_163_7">Arg</a>.<b>all</b>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Usr</a>);
<b>else</b>
<b>return</b> 1;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_178_13">Field_Check_Router</A>;
+ <b>end</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_178_13">Field_Check_Router</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_175_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_186_13">Char_Check_Router</A></span> (<span class="symbol"><A NAME="ref_175_32" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_186_32">Ch</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_47_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_176_32" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_187_32">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A>
+ <b>function</b> <span class="symbol"><a name="ref_175_13" href="terminal_interface-curses-forms-field_types__ads.htm#ref_186_13">Char_Check_Router</a></span> (<span class="symbol"><a name="ref_175_32" href="terminal_interface-curses-forms-field_types__ads.htm#ref_186_32">Ch</a></span> : <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_47_12">C_Int</a>;
+ <span class="symbol"><a name="ref_176_32" href="terminal_interface-curses-forms-field_types__ads.htm#ref_187_32">Usr</a></span> : System.Address) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a>
<b>is</b>
- <span class="symbol"><A NAME="ref_178_7">Arg</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</A>
- := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</A> (Argument_Conversions.To_Pointer (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_187_32">Usr</A>));
+ <span class="symbol"><a name="ref_178_7">Arg</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</a>
+ := <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</a> (Argument_Conversions.To_Pointer (<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_187_32">Usr</a>));
<b>begin</b>
- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_178_7">Arg</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_178_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_215_7">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</A>
- <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_178_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Typ</A> /= <b>null</b>);
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_178_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_215_7">Cft</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_129_10">Ccheck</A> /= <b>null</b> <b>then</b>
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_178_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_215_7">Cft</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_129_10">Ccheck</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_186_32">Ch</A>, <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_178_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Usr</A>);
+ <b>pragma</b> Assert (<a href="terminal_interface-curses-forms-field_types__adb.htm#ref_178_7">Arg</a> /= <b>null</b> <b>and</b> <b>then</b> <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_178_7">Arg</a>.<b>all</b>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_215_7">Cft</a> /= <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</a>
+ <b>and</b> <b>then</b> <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_178_7">Arg</a>.<b>all</b>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Typ</a> /= <b>null</b>);
+ <b>if</b> <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_178_7">Arg</a>.<b>all</b>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_215_7">Cft</a>.<b>all</b>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_129_10">Ccheck</a> /= <b>null</b> <b>then</b>
+ <b>return</b> <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_178_7">Arg</a>.<b>all</b>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_215_7">Cft</a>.<b>all</b>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_129_10">Ccheck</a> (<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_186_32">Ch</a>, <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_178_7">Arg</a>.<b>all</b>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Usr</a>);
<b>else</b>
<b>return</b> 1;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_186_13">Char_Check_Router</A>;
+ <b>end</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_186_13">Char_Check_Router</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_190_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_194_13">Next_Router</A></span> (<span class="symbol"><A NAME="ref_190_26" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_194_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_191_26" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_195_26">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A>
+ <b>function</b> <span class="symbol"><a name="ref_190_13" href="terminal_interface-curses-forms-field_types__ads.htm#ref_194_13">Next_Router</a></span> (<span class="symbol"><a name="ref_190_26" href="terminal_interface-curses-forms-field_types__ads.htm#ref_194_26">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_191_26" href="terminal_interface-curses-forms-field_types__ads.htm#ref_195_26">Usr</a></span> : System.Address) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a>
<b>is</b>
- <span class="symbol"><A NAME="ref_193_7">Arg</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</A>
- := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</A> (Argument_Conversions.To_Pointer (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_195_26">Usr</A>));
+ <span class="symbol"><a name="ref_193_7">Arg</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</a>
+ := <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</a> (Argument_Conversions.To_Pointer (<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_195_26">Usr</a>));
<b>begin</b>
- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_193_7">Arg</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_193_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_215_7">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</A>
- <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_193_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Typ</A> /= <b>null</b>);
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_193_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_215_7">Cft</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_130_10">Next</A> /= <b>null</b> <b>then</b>
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_193_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_215_7">Cft</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_130_10">Next</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_194_26">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_193_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Usr</A>);
+ <b>pragma</b> Assert (<a href="terminal_interface-curses-forms-field_types__adb.htm#ref_193_7">Arg</a> /= <b>null</b> <b>and</b> <b>then</b> <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_193_7">Arg</a>.<b>all</b>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_215_7">Cft</a> /= <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</a>
+ <b>and</b> <b>then</b> <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_193_7">Arg</a>.<b>all</b>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Typ</a> /= <b>null</b>);
+ <b>if</b> <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_193_7">Arg</a>.<b>all</b>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_215_7">Cft</a>.<b>all</b>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_130_10">Next</a> /= <b>null</b> <b>then</b>
+ <b>return</b> <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_193_7">Arg</a>.<b>all</b>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_215_7">Cft</a>.<b>all</b>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_130_10">Next</a> (<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_194_26">Fld</a>, <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_193_7">Arg</a>.<b>all</b>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Usr</a>);
<b>else</b>
<b>return</b> 1;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_194_13">Next_Router</A>;
+ <b>end</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_194_13">Next_Router</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_205_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_202_13">Prev_Router</A></span> (<span class="symbol"><A NAME="ref_205_26" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_202_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_206_26" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_203_26">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A>
+ <b>function</b> <span class="symbol"><a name="ref_205_13" href="terminal_interface-curses-forms-field_types__ads.htm#ref_202_13">Prev_Router</a></span> (<span class="symbol"><a name="ref_205_26" href="terminal_interface-curses-forms-field_types__ads.htm#ref_202_26">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_206_26" href="terminal_interface-curses-forms-field_types__ads.htm#ref_203_26">Usr</a></span> : System.Address) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a>
<b>is</b>
- <span class="symbol"><A NAME="ref_208_7">Arg</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</A> :=
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</A> (Argument_Conversions.To_Pointer (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_203_26">Usr</A>));
+ <span class="symbol"><a name="ref_208_7">Arg</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</a> :=
+ <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</a> (Argument_Conversions.To_Pointer (<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_203_26">Usr</a>));
<b>begin</b>
- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_208_7">Arg</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_208_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_215_7">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</A>
- <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_208_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Typ</A> /= <b>null</b>);
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_208_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_215_7">Cft</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_130_16">Prev</A> /= <b>null</b> <b>then</b>
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_208_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_215_7">Cft</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_130_16">Prev</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_202_26">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_208_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Usr</A>);
+ <b>pragma</b> Assert (<a href="terminal_interface-curses-forms-field_types__adb.htm#ref_208_7">Arg</a> /= <b>null</b> <b>and</b> <b>then</b> <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_208_7">Arg</a>.<b>all</b>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_215_7">Cft</a> /= <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</a>
+ <b>and</b> <b>then</b> <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_208_7">Arg</a>.<b>all</b>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Typ</a> /= <b>null</b>);
+ <b>if</b> <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_208_7">Arg</a>.<b>all</b>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_215_7">Cft</a>.<b>all</b>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_130_16">Prev</a> /= <b>null</b> <b>then</b>
+ <b>return</b> <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_208_7">Arg</a>.<b>all</b>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_215_7">Cft</a>.<b>all</b>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_130_16">Prev</a> (<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_202_26">Fld</a>, <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_208_7">Arg</a>.<b>all</b>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Usr</a>);
<b>else</b>
<b>return</b> 1;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_202_13">Prev_Router</A>;
+ <b>end</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_202_13">Prev_Router</a>;
- <span class="comment"><EM>-- -----------------------------------------------------------------------</EM></span>
- <span class="comment"><EM>--</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_222_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_149_13">C_Builtin_Router</A></span> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A>
+ <span class="comment"><em>-- -----------------------------------------------------------------------</em></span>
+ <span class="comment"><em>--</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_222_13" href="terminal_interface-curses-forms-field_types__ads.htm#ref_149_13">C_Builtin_Router</a></span> <b>return</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</a>
<b>is</b>
- <span class="symbol"><A NAME="ref_224_7">T</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A>;
+ <span class="symbol"><a name="ref_224_7">T</a></span> : <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</a>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_144_4">M_Builtin_Router</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</A> <b>then</b>
- <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_224_7">T</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_223_13">New_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_178_13">Field_Check_Router</A>'<b>Access</b>,
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_186_13">Char_Check_Router</A>'<b>Access</b>);
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_224_7">T</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_144_4">M_Builtin_Router</a> = <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</a> <b>then</b>
+ <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_224_7">T</a> := <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_223_13">New_Fieldtype</a> (<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_178_13">Field_Check_Router</a>'<b>Access</b>,
+ <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_186_13">Char_Check_Router</a>'<b>Access</b>);
+ <b>if</b> <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_224_7">T</a> = <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</a>;
<b>else</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_228_13">Set_Fieldtype_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_224_7">T</A>,
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_163_13">Make_Arg</A>'<b>Access</b>,
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_168_13">Copy_Arg</A>'<b>Access</b>,
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_173_14">Free_Arg</A>'<b>Access</b>));
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_228_13">Set_Fieldtype_Arg</a> (<a href="terminal_interface-curses-forms-field_types__adb.htm#ref_224_7">T</a>,
+ <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_163_13">Make_Arg</a>'<b>Access</b>,
+ <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_168_13">Copy_Arg</a>'<b>Access</b>,
+ <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_173_14">Free_Arg</a>'<b>Access</b>));
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_144_4">M_Builtin_Router</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_224_7">T</A>;
+ <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_144_4">M_Builtin_Router</a> := <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_224_7">T</a>;
<b>end</b> <b>if</b>;
- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_144_4">M_Builtin_Router</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</A>);
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_144_4">M_Builtin_Router</A>;
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_149_13">C_Builtin_Router</A>;
+ <b>pragma</b> Assert (<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_144_4">M_Builtin_Router</a> /= <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</a>);
+ <b>return</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_144_4">M_Builtin_Router</a>;
+ <b>end</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_149_13">C_Builtin_Router</a>;
- <span class="comment"><EM>-- -----------------------------------------------------------------------</EM></span>
- <span class="comment"><EM>--</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_245_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_150_13">C_Choice_Router</A></span> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A>
+ <span class="comment"><em>-- -----------------------------------------------------------------------</em></span>
+ <span class="comment"><em>--</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_245_13" href="terminal_interface-curses-forms-field_types__ads.htm#ref_150_13">C_Choice_Router</a></span> <b>return</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</a>
<b>is</b>
- <span class="symbol"><A NAME="ref_247_7">T</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A>;
+ <span class="symbol"><a name="ref_247_7">T</a></span> : <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</a>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_145_4">M_Choice_Router</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</A> <b>then</b>
- <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_247_7">T</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_223_13">New_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_178_13">Field_Check_Router</A>'<b>Access</b>,
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_186_13">Char_Check_Router</A>'<b>Access</b>);
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_247_7">T</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_145_4">M_Choice_Router</a> = <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</a> <b>then</b>
+ <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_247_7">T</a> := <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_223_13">New_Fieldtype</a> (<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_178_13">Field_Check_Router</a>'<b>Access</b>,
+ <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_186_13">Char_Check_Router</a>'<b>Access</b>);
+ <b>if</b> <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_247_7">T</a> = <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</a>;
<b>else</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_228_13">Set_Fieldtype_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_247_7">T</A>,
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_163_13">Make_Arg</A>'<b>Access</b>,
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_168_13">Copy_Arg</A>'<b>Access</b>,
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_173_14">Free_Arg</A>'<b>Access</b>));
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_228_13">Set_Fieldtype_Arg</a> (<a href="terminal_interface-curses-forms-field_types__adb.htm#ref_247_7">T</a>,
+ <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_163_13">Make_Arg</a>'<b>Access</b>,
+ <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_168_13">Copy_Arg</a>'<b>Access</b>,
+ <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_173_14">Free_Arg</a>'<b>Access</b>));
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_235_13">Set_Fieldtype_Choice</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_247_7">T</A>,
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_194_13">Next_Router</A>'<b>Access</b>,
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_202_13">Prev_Router</A>'<b>Access</b>));
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_235_13">Set_Fieldtype_Choice</a> (<a href="terminal_interface-curses-forms-field_types__adb.htm#ref_247_7">T</a>,
+ <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_194_13">Next_Router</a>'<b>Access</b>,
+ <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_202_13">Prev_Router</a>'<b>Access</b>));
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_145_4">M_Choice_Router</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_247_7">T</A>;
+ <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_145_4">M_Choice_Router</a> := <a href="terminal_interface-curses-forms-field_types__adb.htm#ref_247_7">T</a>;
<b>end</b> <b>if</b>;
- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_145_4">M_Choice_Router</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</A>);
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_145_4">M_Choice_Router</A>;
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_150_13">C_Choice_Router</A>;
+ <b>pragma</b> Assert (<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_145_4">M_Choice_Router</a> /= <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</a>);
+ <b>return</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_145_4">M_Choice_Router</a>;
+ <b>end</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_150_13">C_Choice_Router</a>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_types__ads.htm b/doc/html/ada/terminal_interface-curses-forms-field_types__ads.htm
index 470231ee9dc4..1970dd4e5f4a 100644
--- a/doc/html/ada/terminal_interface-curses-forms-field_types__ads.htm
+++ b/doc/html/ada/terminal_interface-curses-forms-field_types__ads.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-forms-field_types.ads</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-forms-field_types.ads</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,248 +11,248 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types.ads </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- S P E C --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2018,2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1998-2011,2014 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.21 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>;
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-forms-field_types.ads </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Forms.Field_Types --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- S P E C --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2018,2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1998-2011,2014 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.21 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<b>with</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C;
+<b>with</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>;
-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<span class="symbol"><A NAME="ref_45_41" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_52_46">Field_Types</A></span> <b>is</b>
- <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>);
- <b>subtype</b> <span class="symbol"><A NAME="ref_47_12">C_Int</A></span> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
+<b>package</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<span class="symbol"><a name="ref_45_41" href="terminal_interface-curses-forms-field_types__adb.htm#ref_52_46">Field_Types</a></span> <b>is</b>
+ <b>pragma</b> Preelaborate (<a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>);
+ <b>subtype</b> <span class="symbol"><a name="ref_47_12">C_Int</a></span> <b>is</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.int;
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/form_fieldtype.3x.html">form_fieldtype.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/form_fieldtype.3x.html">form_fieldtype.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
- <b>type</b> <span class="symbol"><A NAME="ref_53_9">Field_Type</A></span> <b>is</b> <b>abstract</b> <b>tagged</b> <b>null</b> <b>record</b>;
- <span class="comment"><EM>-- Abstract base type for all field types. A concrete field type</EM></span>
- <span class="comment"><EM>-- is an extension that adds some data elements describing formats or</EM></span>
- <span class="comment"><EM>-- boundary values for the type and validation routines.</EM></span>
- <span class="comment"><EM>-- For the builtin low-level fieldtypes, the validation routines are</EM></span>
- <span class="comment"><EM>-- already defined by the low-level C library.</EM></span>
- <span class="comment"><EM>-- The builtin types like Alpha or AlphaNumeric etc. are defined in</EM></span>
- <span class="comment"><EM>-- child packages of this package. You may use one of them as example</EM></span>
- <span class="comment"><EM>-- how to create you own child packages for low-level field types that</EM></span>
- <span class="comment"><EM>-- you may have already written in C.</EM></span>
+ <b>type</b> <span class="symbol"><a name="ref_53_9">Field_Type</a></span> <b>is</b> <b>abstract</b> <b>tagged</b> <b>null</b> <b>record</b>;
+ <span class="comment"><em>-- Abstract base type for all field types. A concrete field type</em></span>
+ <span class="comment"><em>-- is an extension that adds some data elements describing formats or</em></span>
+ <span class="comment"><em>-- boundary values for the type and validation routines.</em></span>
+ <span class="comment"><em>-- For the builtin low-level fieldtypes, the validation routines are</em></span>
+ <span class="comment"><em>-- already defined by the low-level C library.</em></span>
+ <span class="comment"><em>-- The builtin types like Alpha or AlphaNumeric etc. are defined in</em></span>
+ <span class="comment"><em>-- child packages of this package. You may use one of them as example</em></span>
+ <span class="comment"><em>-- how to create you own child packages for low-level field types that</em></span>
+ <span class="comment"><em>-- you may have already written in C.</em></span>
- <b>type</b> <span class="symbol"><A NAME="ref_64_9">Field_Type_Access</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_53_9">Field_Type</A>'Class;
+ <b>type</b> <span class="symbol"><a name="ref_64_9">Field_Type_Access</a></span> <b>is</b> <b>access</b> <b>all</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_53_9">Field_Type</a>'Class;
- <span class="comment"><EM>-- <A NAME="AFU_1">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_67_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_67_30" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_67_14">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_68_30" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_67_14">Fld_Type</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_53_9">Field_Type</A>) <b>is</b> <b>abstract</b>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_fieldtype.3x.html">set_field_type()</A></EM></span>
- <span class="comment"><EM>-- But: we hide the vararg mechanism of the C interface. You always</EM></span>
- <span class="comment"><EM>-- have to pass a single Field_Type parameter.</EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_1">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_67_14">Set_Field_Type</a></span> (<span class="symbol"><a name="ref_67_30">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_68_30">Fld_Type</a></span> : <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_53_9">Field_Type</a>) <b>is</b> <b>abstract</b>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_fieldtype.3x.html">set_field_type()</A></em></span>
+ <span class="comment"><em>-- But: we hide the vararg mechanism of the C interface. You always</em></span>
+ <span class="comment"><em>-- have to pass a single Field_Type parameter.</em></span>
- <span class="comment"><EM>-- ---------------------------------------------------------------------</EM></span>
+ <span class="comment"><em>-- ---------------------------------------------------------------------</em></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/form_field_validation.3x.html">form_field_validation.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/form_field_validation.3x.html">form_field_validation.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
- <span class="comment"><EM>-- <A NAME="AFU_2">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_80_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_71_13">Get_Type</A></span> (<span class="symbol"><A NAME="ref_80_23" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_71_23">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_64_9">Field_Type_Access</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_validation.3x.html">field_type()</A></EM></span>
- <span class="comment"><EM>-- AKA: field_arg()</EM></span>
- <span class="comment"><EM>-- In Ada95 we can combine these. If you try to retrieve the field type</EM></span>
- <span class="comment"><EM>-- that is not defined as extension of the abstract tagged type above,</EM></span>
- <span class="comment"><EM>-- you will raise a Form_Exception.</EM></span>
- <span class="comment"><EM>-- This is not inlined</EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_2">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_80_13" href="terminal_interface-curses-forms-field_types__adb.htm#ref_71_13">Get_Type</a></span> (<span class="symbol"><a name="ref_80_23" href="terminal_interface-curses-forms-field_types__adb.htm#ref_71_23">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>) <b>return</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_64_9">Field_Type_Access</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_field_validation.3x.html">field_type()</A></em></span>
+ <span class="comment"><em>-- AKA: field_arg()</em></span>
+ <span class="comment"><em>-- In Ada95 we can combine these. If you try to retrieve the field type</em></span>
+ <span class="comment"><em>-- that is not defined as extension of the abstract tagged type above,</em></span>
+ <span class="comment"><em>-- you will raise a Form_Exception.</em></span>
+ <span class="comment"><em>-- This is not inlined</em></span>
- <span class="comment"><EM>-- +----------------------------------------------------------------------</EM></span>
- <span class="comment"><EM>-- | Private Part.</EM></span>
- <span class="comment"><EM>-- | Most of this is used by the implementations of the child packages.</EM></span>
- <span class="comment"><EM>-- |</EM></span>
+ <span class="comment"><em>-- +----------------------------------------------------------------------</em></span>
+ <span class="comment"><em>-- | Private Part.</em></span>
+ <span class="comment"><em>-- | Most of this is used by the implementations of the child packages.</em></span>
+ <span class="comment"><em>-- |</em></span>
<b>private</b>
- <b>type</b> <span class="symbol"><A NAME="ref_93_9" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Makearg_Function</A></span> <b>is</b> <b>access</b>
- <b>function</b> (<span class="symbol"><A NAME="ref_94_16" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_93_9">Args</A></span> : System.Address) <b>return</b> System.Address;
- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_93_9">Makearg_Function</A>);
+ <b>type</b> <span class="symbol"><a name="ref_93_9" href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Makearg_Function</a></span> <b>is</b> <b>access</b>
+ <b>function</b> (<span class="symbol"><a name="ref_94_16">Args</a></span> : System.Address) <b>return</b> System.Address;
+ <b>pragma</b> Convention (C, <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_93_9">Makearg_Function</a>);
- <b>type</b> <span class="symbol"><A NAME="ref_97_9">Copyarg_Function</A></span> <b>is</b> <b>access</b>
- <b>function</b> (<span class="symbol"><A NAME="ref_98_16" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_97_9">Usr</A></span> : System.Address) <b>return</b> System.Address;
- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_97_9">Copyarg_Function</A>);
+ <b>type</b> <span class="symbol"><a name="ref_97_9">Copyarg_Function</a></span> <b>is</b> <b>access</b>
+ <b>function</b> (<span class="symbol"><a name="ref_98_16">Usr</a></span> : System.Address) <b>return</b> System.Address;
+ <b>pragma</b> Convention (C, <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_97_9">Copyarg_Function</a>);
- <b>type</b> <span class="symbol"><A NAME="ref_101_9">Freearg_Function</A></span> <b>is</b> <b>access</b>
- <b>procedure</b> (<span class="symbol"><A NAME="ref_102_17" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_101_9">Usr</A></span> : System.Address);
- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_101_9">Freearg_Function</A>);
+ <b>type</b> <span class="symbol"><a name="ref_101_9">Freearg_Function</a></span> <b>is</b> <b>access</b>
+ <b>procedure</b> (<span class="symbol"><a name="ref_102_17">Usr</a></span> : System.Address);
+ <b>pragma</b> Convention (C, <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_101_9">Freearg_Function</a>);
- <b>type</b> <span class="symbol"><A NAME="ref_105_9">Field_Check_Function</A></span> <b>is</b> <b>access</b>
- <b>function</b> (<span class="symbol"><A NAME="ref_106_16" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_105_9">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>; <span class="symbol"><A NAME="ref_106_29" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_105_9">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A>;
- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_105_9">Field_Check_Function</A>);
+ <b>type</b> <span class="symbol"><a name="ref_105_9">Field_Check_Function</a></span> <b>is</b> <b>access</b>
+ <b>function</b> (<span class="symbol"><a name="ref_106_16">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>; <span class="symbol"><a name="ref_106_29">Usr</a></span> : System.Address) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a>;
+ <b>pragma</b> Convention (C, <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_105_9">Field_Check_Function</a>);
- <b>type</b> <span class="symbol"><A NAME="ref_109_9">Char_Check_Function</A></span> <b>is</b> <b>access</b>
- <b>function</b> (<span class="symbol"><A NAME="ref_110_16" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_109_9">Ch</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_47_12">C_Int</A>; <span class="symbol"><A NAME="ref_110_28" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_109_9">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A>;
- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_109_9">Char_Check_Function</A>);
+ <b>type</b> <span class="symbol"><a name="ref_109_9">Char_Check_Function</a></span> <b>is</b> <b>access</b>
+ <b>function</b> (<span class="symbol"><a name="ref_110_16">Ch</a></span> : <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_47_12">C_Int</a>; <span class="symbol"><a name="ref_110_28">Usr</a></span> : System.Address) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a>;
+ <b>pragma</b> Convention (C, <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_109_9">Char_Check_Function</a>);
- <b>type</b> <span class="symbol"><A NAME="ref_113_9">Choice_Function</A></span> <b>is</b> <b>access</b>
- <b>function</b> (<span class="symbol"><A NAME="ref_114_16" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_113_9">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>; <span class="symbol"><A NAME="ref_114_29" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_113_9">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A>;
- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_113_9">Choice_Function</A>);
+ <b>type</b> <span class="symbol"><a name="ref_113_9">Choice_Function</a></span> <b>is</b> <b>access</b>
+ <b>function</b> (<span class="symbol"><a name="ref_114_16">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>; <span class="symbol"><a name="ref_114_29">Usr</a></span> : System.Address) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a>;
+ <b>pragma</b> Convention (C, <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_113_9">Choice_Function</a>);
- <span class="comment"><EM>-- +----------------------------------------------------------------------</EM></span>
- <span class="comment"><EM>-- | This must be in sync with the FIELDTYPE structure in form.h</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>type</b> <span class="symbol"><A NAME="ref_120_9">Low_Level_Field_Type</A></span> <b>is</b>
+ <span class="comment"><em>-- +----------------------------------------------------------------------</em></span>
+ <span class="comment"><em>-- | This must be in sync with the FIELDTYPE structure in form.h</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>type</b> <span class="symbol"><a name="ref_120_9">Low_Level_Field_Type</a></span> <b>is</b>
<b>record</b>
- <span class="symbol"><A NAME="ref_122_10">Status</A></span> : <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.unsigned_short;
- <span class="symbol"><A NAME="ref_123_10">Ref_Count</A></span> : <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.long;
- <span class="symbol"><A NAME="ref_124_10">Left</A></span>, <span class="symbol"><A NAME="ref_124_16">Right</A></span> : System.Address;
- <span class="symbol"><A NAME="ref_125_10">Makearg</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_93_9">Makearg_Function</A>;
- <span class="symbol"><A NAME="ref_126_10">Copyarg</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_97_9">Copyarg_Function</A>;
- <span class="symbol"><A NAME="ref_127_10">Freearg</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_101_9">Freearg_Function</A>;
- <span class="symbol"><A NAME="ref_128_10">Fcheck</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_105_9">Field_Check_Function</A>;
- <span class="symbol"><A NAME="ref_129_10">Ccheck</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_109_9">Char_Check_Function</A>;
- <span class="symbol"><A NAME="ref_130_10">Next</A></span>, <span class="symbol"><A NAME="ref_130_16">Prev</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_113_9">Choice_Function</A>;
+ <span class="symbol"><a name="ref_122_10">Status</a></span> : <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.unsigned_short;
+ <span class="symbol"><a name="ref_123_10">Ref_Count</a></span> : <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.long;
+ <span class="symbol"><a name="ref_124_10">Left</a></span>, <span class="symbol"><a name="ref_124_16">Right</a></span> : System.Address;
+ <span class="symbol"><a name="ref_125_10">Makearg</a></span> : <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_93_9">Makearg_Function</a>;
+ <span class="symbol"><a name="ref_126_10">Copyarg</a></span> : <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_97_9">Copyarg_Function</a>;
+ <span class="symbol"><a name="ref_127_10">Freearg</a></span> : <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_101_9">Freearg_Function</a>;
+ <span class="symbol"><a name="ref_128_10">Fcheck</a></span> : <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_105_9">Field_Check_Function</a>;
+ <span class="symbol"><a name="ref_129_10">Ccheck</a></span> : <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_109_9">Char_Check_Function</a>;
+ <span class="symbol"><a name="ref_130_10">Next</a></span>, <span class="symbol"><a name="ref_130_16">Prev</a></span> : <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_113_9">Choice_Function</a>;
<b>end</b> <b>record</b>;
- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_120_9">Low_Level_Field_Type</A>);
- <b>type</b> <span class="symbol"><A NAME="ref_133_9">C_Field_Type</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_120_9">Low_Level_Field_Type</A>;
+ <b>pragma</b> Convention (C, <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_120_9">Low_Level_Field_Type</a>);
+ <b>type</b> <span class="symbol"><a name="ref_133_9">C_Field_Type</a></span> <b>is</b> <b>access</b> <b>all</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_120_9">Low_Level_Field_Type</a>;
- <span class="symbol"><A NAME="ref_135_4">Null_Field_Type</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A> := <b>null</b>;
+ <span class="symbol"><a name="ref_135_4">Null_Field_Type</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</a> := <b>null</b>;
- <span class="comment"><EM>-- +----------------------------------------------------------------------</EM></span>
- <span class="comment"><EM>-- | This four low-level fieldtypes are the ones associated with</EM></span>
- <span class="comment"><EM>-- | fieldtypes handled by this binding. Any other low-level fieldtype</EM></span>
- <span class="comment"><EM>-- | will result in a Form_Exception is function Get_Type.</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="symbol"><A NAME="ref_142_4">M_Generic_Type</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A> := <b>null</b>;
- <span class="symbol"><A NAME="ref_143_4">M_Generic_Choice</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A> := <b>null</b>;
- <span class="symbol"><A NAME="ref_144_4">M_Builtin_Router</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A> := <b>null</b>;
- <span class="symbol"><A NAME="ref_145_4">M_Choice_Router</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A> := <b>null</b>;
+ <span class="comment"><em>-- +----------------------------------------------------------------------</em></span>
+ <span class="comment"><em>-- | This four low-level fieldtypes are the ones associated with</em></span>
+ <span class="comment"><em>-- | fieldtypes handled by this binding. Any other low-level fieldtype</em></span>
+ <span class="comment"><em>-- | will result in a Form_Exception is function Get_Type.</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="symbol"><a name="ref_142_4">M_Generic_Type</a></span> : <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</a> := <b>null</b>;
+ <span class="symbol"><a name="ref_143_4">M_Generic_Choice</a></span> : <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</a> := <b>null</b>;
+ <span class="symbol"><a name="ref_144_4">M_Builtin_Router</a></span> : <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</a> := <b>null</b>;
+ <span class="symbol"><a name="ref_145_4">M_Choice_Router</a></span> : <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</a> := <b>null</b>;
- <span class="comment"><EM>-- Two wrapper functions to access those low-level fieldtypes defined</EM></span>
- <span class="comment"><EM>-- in this package.</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_149_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_222_13">C_Builtin_Router</A></span> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A>;
- <b>function</b> <span class="symbol"><A NAME="ref_150_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_245_13">C_Choice_Router</A></span> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A>;
+ <span class="comment"><em>-- Two wrapper functions to access those low-level fieldtypes defined</em></span>
+ <span class="comment"><em>-- in this package.</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_149_13" href="terminal_interface-curses-forms-field_types__adb.htm#ref_222_13">C_Builtin_Router</a></span> <b>return</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</a>;
+ <b>function</b> <span class="symbol"><a name="ref_150_13" href="terminal_interface-curses-forms-field_types__adb.htm#ref_245_13">C_Choice_Router</a></span> <b>return</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_152_14" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_128_14">Wrap_Builtin</A></span> (<span class="symbol"><A NAME="ref_152_28" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_128_28">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_153_28" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_129_28">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_53_9">Field_Type</A>'Class;
- <span class="symbol"><A NAME="ref_154_28" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_130_28">Cft</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_149_13">C_Builtin_Router</A>);
- <span class="comment"><EM>-- This procedure has to be called by the Set_Field_Type implementation</EM></span>
- <span class="comment"><EM>-- for builtin low-level fieldtypes to replace it by an Ada95</EM></span>
- <span class="comment"><EM>-- conformant Field_Type object.</EM></span>
- <span class="comment"><EM>-- The parameter Cft must be C_Builtin_Router for regular low-level</EM></span>
- <span class="comment"><EM>-- fieldtypes (like TYP_ALPHA or TYP_ALNUM) and C_Choice_Router for</EM></span>
- <span class="comment"><EM>-- low-level fieldtypes witch choice functions (like TYP_ENUM).</EM></span>
- <span class="comment"><EM>-- Any other value will raise a Form_Exception.</EM></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_152_14" href="terminal_interface-curses-forms-field_types__adb.htm#ref_128_14">Wrap_Builtin</a></span> (<span class="symbol"><a name="ref_152_28" href="terminal_interface-curses-forms-field_types__adb.htm#ref_128_28">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_153_28" href="terminal_interface-curses-forms-field_types__adb.htm#ref_129_28">Typ</a></span> : <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_53_9">Field_Type</a>'Class;
+ <span class="symbol"><a name="ref_154_28" href="terminal_interface-curses-forms-field_types__adb.htm#ref_130_28">Cft</a></span> : <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</a> := <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_149_13">C_Builtin_Router</a>);
+ <span class="comment"><em>-- This procedure has to be called by the Set_Field_Type implementation</em></span>
+ <span class="comment"><em>-- for builtin low-level fieldtypes to replace it by an Ada95</em></span>
+ <span class="comment"><em>-- conformant Field_Type object.</em></span>
+ <span class="comment"><em>-- The parameter Cft must be C_Builtin_Router for regular low-level</em></span>
+ <span class="comment"><em>-- fieldtypes (like TYP_ALPHA or TYP_ALNUM) and C_Choice_Router for</em></span>
+ <span class="comment"><em>-- low-level fieldtypes witch choice functions (like TYP_ENUM).</em></span>
+ <span class="comment"><em>-- Any other value will raise a Form_Exception.</em></span>
- <b>function</b> <span class="symbol"><A NAME="ref_163_13">Make_Arg</A></span> (<span class="symbol"><A NAME="ref_163_23" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_163_13">Args</A></span> : System.Address) <b>return</b> System.Address;
+ <b>function</b> <span class="symbol"><a name="ref_163_13">Make_Arg</a></span> (<span class="symbol"><a name="ref_163_23">Args</a></span> : System.Address) <b>return</b> System.Address;
<b>pragma</b> Import (C, Make_Arg, "void_star_make_arg");
- <span class="comment"><EM>-- This is the Makearg_Function for the internal low-level types</EM></span>
- <span class="comment"><EM>-- introduced by this binding.</EM></span>
+ <span class="comment"><em>-- This is the Makearg_Function for the internal low-level types</em></span>
+ <span class="comment"><em>-- introduced by this binding.</em></span>
- <b>function</b> <span class="symbol"><A NAME="ref_168_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_97_13">Copy_Arg</A></span> (<span class="symbol"><A NAME="ref_168_23" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_97_23">Usr</A></span> : System.Address) <b>return</b> System.Address;
- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_168_13">Copy_Arg</A>);
- <span class="comment"><EM>-- This is the Copyarg_Function for the internal low-level types</EM></span>
- <span class="comment"><EM>-- introduced by this binding.</EM></span>
+ <b>function</b> <span class="symbol"><a name="ref_168_13" href="terminal_interface-curses-forms-field_types__adb.htm#ref_97_13">Copy_Arg</a></span> (<span class="symbol"><a name="ref_168_23" href="terminal_interface-curses-forms-field_types__adb.htm#ref_97_23">Usr</a></span> : System.Address) <b>return</b> System.Address;
+ <b>pragma</b> Convention (C, <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_168_13">Copy_Arg</a>);
+ <span class="comment"><em>-- This is the Copyarg_Function for the internal low-level types</em></span>
+ <span class="comment"><em>-- introduced by this binding.</em></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_173_14" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_103_14">Free_Arg</A></span> (<span class="symbol"><A NAME="ref_173_24" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_103_24">Usr</A></span> : System.Address);
- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_173_14">Free_Arg</A>);
- <span class="comment"><EM>-- This is the Freearg_Function for the internal low-level types</EM></span>
- <span class="comment"><EM>-- introduced by this binding.</EM></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_173_14" href="terminal_interface-curses-forms-field_types__adb.htm#ref_103_14">Free_Arg</a></span> (<span class="symbol"><a name="ref_173_24" href="terminal_interface-curses-forms-field_types__adb.htm#ref_103_24">Usr</a></span> : System.Address);
+ <b>pragma</b> Convention (C, <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_173_14">Free_Arg</a>);
+ <span class="comment"><em>-- This is the Freearg_Function for the internal low-level types</em></span>
+ <span class="comment"><em>-- introduced by this binding.</em></span>
- <b>function</b> <span class="symbol"><A NAME="ref_178_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_160_13">Field_Check_Router</A></span> (<span class="symbol"><A NAME="ref_178_33" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_160_33">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_179_33" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_161_33">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A>;
- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_178_13">Field_Check_Router</A>);
- <span class="comment"><EM>-- This is the Field_Check_Function for the internal low-level types</EM></span>
- <span class="comment"><EM>-- introduced to wrap the low-level types by a Field_Type derived</EM></span>
- <span class="comment"><EM>-- type. It routes the call to the corresponding low-level validation</EM></span>
- <span class="comment"><EM>-- function.</EM></span>
+ <b>function</b> <span class="symbol"><a name="ref_178_13" href="terminal_interface-curses-forms-field_types__adb.htm#ref_160_13">Field_Check_Router</a></span> (<span class="symbol"><a name="ref_178_33" href="terminal_interface-curses-forms-field_types__adb.htm#ref_160_33">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_179_33" href="terminal_interface-curses-forms-field_types__adb.htm#ref_161_33">Usr</a></span> : System.Address) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a>;
+ <b>pragma</b> Convention (C, <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_178_13">Field_Check_Router</a>);
+ <span class="comment"><em>-- This is the Field_Check_Function for the internal low-level types</em></span>
+ <span class="comment"><em>-- introduced to wrap the low-level types by a Field_Type derived</em></span>
+ <span class="comment"><em>-- type. It routes the call to the corresponding low-level validation</em></span>
+ <span class="comment"><em>-- function.</em></span>
- <b>function</b> <span class="symbol"><A NAME="ref_186_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_175_13">Char_Check_Router</A></span> (<span class="symbol"><A NAME="ref_186_32" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_175_32">Ch</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_47_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_187_32" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_176_32">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A>;
- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_186_13">Char_Check_Router</A>);
- <span class="comment"><EM>-- This is the Char_Check_Function for the internal low-level types</EM></span>
- <span class="comment"><EM>-- introduced to wrap the low-level types by a Field_Type derived</EM></span>
- <span class="comment"><EM>-- type. It routes the call to the corresponding low-level validation</EM></span>
- <span class="comment"><EM>-- function.</EM></span>
+ <b>function</b> <span class="symbol"><a name="ref_186_13" href="terminal_interface-curses-forms-field_types__adb.htm#ref_175_13">Char_Check_Router</a></span> (<span class="symbol"><a name="ref_186_32" href="terminal_interface-curses-forms-field_types__adb.htm#ref_175_32">Ch</a></span> : <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_47_12">C_Int</a>;
+ <span class="symbol"><a name="ref_187_32" href="terminal_interface-curses-forms-field_types__adb.htm#ref_176_32">Usr</a></span> : System.Address) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a>;
+ <b>pragma</b> Convention (C, <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_186_13">Char_Check_Router</a>);
+ <span class="comment"><em>-- This is the Char_Check_Function for the internal low-level types</em></span>
+ <span class="comment"><em>-- introduced to wrap the low-level types by a Field_Type derived</em></span>
+ <span class="comment"><em>-- type. It routes the call to the corresponding low-level validation</em></span>
+ <span class="comment"><em>-- function.</em></span>
- <b>function</b> <span class="symbol"><A NAME="ref_194_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_190_13">Next_Router</A></span> (<span class="symbol"><A NAME="ref_194_26" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_190_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_195_26" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_191_26">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A>;
- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_194_13">Next_Router</A>);
- <span class="comment"><EM>-- This is the Choice_Function for the internal low-level types</EM></span>
- <span class="comment"><EM>-- introduced to wrap the low-level types by a Field_Type derived</EM></span>
- <span class="comment"><EM>-- type. It routes the call to the corresponding low-level next_choice</EM></span>
- <span class="comment"><EM>-- function.</EM></span>
+ <b>function</b> <span class="symbol"><a name="ref_194_13" href="terminal_interface-curses-forms-field_types__adb.htm#ref_190_13">Next_Router</a></span> (<span class="symbol"><a name="ref_194_26" href="terminal_interface-curses-forms-field_types__adb.htm#ref_190_26">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_195_26" href="terminal_interface-curses-forms-field_types__adb.htm#ref_191_26">Usr</a></span> : System.Address) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a>;
+ <b>pragma</b> Convention (C, <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_194_13">Next_Router</a>);
+ <span class="comment"><em>-- This is the Choice_Function for the internal low-level types</em></span>
+ <span class="comment"><em>-- introduced to wrap the low-level types by a Field_Type derived</em></span>
+ <span class="comment"><em>-- type. It routes the call to the corresponding low-level next_choice</em></span>
+ <span class="comment"><em>-- function.</em></span>
- <b>function</b> <span class="symbol"><A NAME="ref_202_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_205_13">Prev_Router</A></span> (<span class="symbol"><A NAME="ref_202_26" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_205_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_203_26" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_206_26">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A>;
- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_202_13">Prev_Router</A>);
- <span class="comment"><EM>-- This is the Choice_Function for the internal low-level types</EM></span>
- <span class="comment"><EM>-- introduced to wrap the low-level types by a Field_Type derived</EM></span>
- <span class="comment"><EM>-- type. It routes the call to the corresponding low-level prev_choice</EM></span>
- <span class="comment"><EM>-- function.</EM></span>
+ <b>function</b> <span class="symbol"><a name="ref_202_13" href="terminal_interface-curses-forms-field_types__adb.htm#ref_205_13">Prev_Router</a></span> (<span class="symbol"><a name="ref_202_26" href="terminal_interface-curses-forms-field_types__adb.htm#ref_205_26">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_203_26" href="terminal_interface-curses-forms-field_types__adb.htm#ref_206_26">Usr</a></span> : System.Address) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a>;
+ <b>pragma</b> Convention (C, <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_202_13">Prev_Router</a>);
+ <span class="comment"><em>-- This is the Choice_Function for the internal low-level types</em></span>
+ <span class="comment"><em>-- introduced to wrap the low-level types by a Field_Type derived</em></span>
+ <span class="comment"><em>-- type. It routes the call to the corresponding low-level prev_choice</em></span>
+ <span class="comment"><em>-- function.</em></span>
- <span class="comment"><EM>-- This is the Argument structure maintained by all low-level field types</EM></span>
- <span class="comment"><EM>-- introduced by this binding.</EM></span>
- <b>type</b> <span class="symbol"><A NAME="ref_212_9">Argument</A></span> <b>is</b> <b>record</b>
- <span class="symbol"><A NAME="ref_213_7">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_64_9">Field_Type_Access</A>; <span class="comment"><EM>-- the Field_Type creating this record</EM></span>
- <span class="symbol"><A NAME="ref_214_7">Usr</A></span> : System.Address; <span class="comment"><EM>-- original arg for builtin low-level types</EM></span>
- <span class="symbol"><A NAME="ref_215_7">Cft</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A>; <span class="comment"><EM>-- the original low-level type</EM></span>
+ <span class="comment"><em>-- This is the Argument structure maintained by all low-level field types</em></span>
+ <span class="comment"><em>-- introduced by this binding.</em></span>
+ <b>type</b> <span class="symbol"><a name="ref_212_9">Argument</a></span> <b>is</b> <b>record</b>
+ <span class="symbol"><a name="ref_213_7">Typ</a></span> : <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_64_9">Field_Type_Access</a>; <span class="comment"><em>-- the Field_Type creating this record</em></span>
+ <span class="symbol"><a name="ref_214_7">Usr</a></span> : System.Address; <span class="comment"><em>-- original arg for builtin low-level types</em></span>
+ <span class="symbol"><a name="ref_215_7">Cft</a></span> : <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</a>; <span class="comment"><em>-- the original low-level type</em></span>
<b>end</b> <b>record</b>;
- <b>type</b> <span class="symbol"><A NAME="ref_217_9">Argument_Access</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_9">Argument</A>;
+ <b>type</b> <span class="symbol"><a name="ref_217_9">Argument_Access</a></span> <b>is</b> <b>access</b> <b>all</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_212_9">Argument</a>;
- <span class="comment"><EM>-- +----------------------------------------------------------------------</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- | Some Imports of libform routines to deal with low-level fieldtypes.</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_223_13">New_Fieldtype</A></span> (<span class="symbol"><A NAME="ref_223_28" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_223_13">Fcheck</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_105_9">Field_Check_Function</A>;
- <span class="symbol"><A NAME="ref_224_28" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_223_13">Ccheck</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_109_9">Char_Check_Function</A>)
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A>;
+ <span class="comment"><em>-- +----------------------------------------------------------------------</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- | Some Imports of libform routines to deal with low-level fieldtypes.</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_223_13">New_Fieldtype</a></span> (<span class="symbol"><a name="ref_223_28">Fcheck</a></span> : <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_105_9">Field_Check_Function</a>;
+ <span class="symbol"><a name="ref_224_28">Ccheck</a></span> : <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_109_9">Char_Check_Function</a>)
+ <b>return</b> <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</a>;
<b>pragma</b> Import (C, New_Fieldtype, "new_fieldtype");
- <b>function</b> <span class="symbol"><A NAME="ref_228_13">Set_Fieldtype_Arg</A></span> (<span class="symbol"><A NAME="ref_228_32" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_228_13">Cft</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A>;
- <span class="symbol"><A NAME="ref_229_32" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_228_13">Mak</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_93_9">Makearg_Function</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_163_13">Make_Arg</A>'<b>Access</b>;
- <span class="symbol"><A NAME="ref_230_32" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_228_13">Cop</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_97_9">Copyarg_Function</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_168_13">Copy_Arg</A>'<b>Access</b>;
- <span class="symbol"><A NAME="ref_231_32" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_228_13">Fre</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_101_9">Freearg_Function</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_173_14">Free_Arg</A>'<b>Access</b>)
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_228_13">Set_Fieldtype_Arg</a></span> (<span class="symbol"><a name="ref_228_32">Cft</a></span> : <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</a>;
+ <span class="symbol"><a name="ref_229_32">Mak</a></span> : <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_93_9">Makearg_Function</a> := <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_163_13">Make_Arg</a>'<b>Access</b>;
+ <span class="symbol"><a name="ref_230_32">Cop</a></span> : <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_97_9">Copyarg_Function</a> := <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_168_13">Copy_Arg</a>'<b>Access</b>;
+ <span class="symbol"><a name="ref_231_32">Fre</a></span> : <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_101_9">Freearg_Function</a> := <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_173_14">Free_Arg</a>'<b>Access</b>)
+ <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Fieldtype_Arg, "set_fieldtype_arg");
- <b>function</b> <span class="symbol"><A NAME="ref_235_13">Set_Fieldtype_Choice</A></span> (<span class="symbol"><A NAME="ref_235_35" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_235_13">Cft</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A>;
- <span class="symbol"><A NAME="ref_236_35" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_235_13">Next</A></span>, <span class="symbol"><A NAME="ref_236_41" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_235_13">Prev</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_113_9">Choice_Function</A>)
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_235_13">Set_Fieldtype_Choice</a></span> (<span class="symbol"><a name="ref_235_35">Cft</a></span> : <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</a>;
+ <span class="symbol"><a name="ref_236_35">Next</a></span>, <span class="symbol"><a name="ref_236_41">Prev</a></span> : <a href="terminal_interface-curses-forms-field_types__ads.htm#ref_113_9">Choice_Function</a>)
+ <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Fieldtype_Choice, "set_fieldtype_choice");
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_types__ads.htm#ref_45_41">Field_Types</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_user_data__adb.htm b/doc/html/ada/terminal_interface-curses-forms-field_user_data__adb.htm
index 3b07add01eae..a0c5a41a6e2b 100644
--- a/doc/html/ada/terminal_interface-curses-forms-field_user_data__adb.htm
+++ b/doc/html/ada/terminal_interface-curses-forms-field_user_data__adb.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-forms-field_user_data.adb</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-forms-field_user_data.adb</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,89 +11,89 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_user_data.adb </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_User_Data --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- B O D Y --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2018,2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2009,2014 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.17 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>;
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-forms-field_user_data.adb </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Forms.Field_User_Data --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- B O D Y --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2018,2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2009,2014 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.17 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<b>with</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>; <b>use</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>;
-<span class="comment"><EM>-- |</EM></span>
-<span class="comment"><EM>-- |=====================================================================</EM></span>
-<span class="comment"><EM>-- | man page form_field_userptr.3x</EM></span>
-<span class="comment"><EM>-- |=====================================================================</EM></span>
-<span class="comment"><EM>-- |</EM></span>
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<span class="symbol"><A NAME="ref_49_46" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_46_41">Field_User_Data</A></span> <b>is</b>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_53_14" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_54_14">Set_User_Data</A></span> (<span class="symbol"><A NAME="ref_53_29" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_54_29">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_54_29" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_55_29">Data</A></span> : <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_9">User_Access</A>)
+<span class="comment"><em>-- |</em></span>
+<span class="comment"><em>-- |=====================================================================</em></span>
+<span class="comment"><em>-- | man page form_field_userptr.3x</em></span>
+<span class="comment"><em>-- |=====================================================================</em></span>
+<span class="comment"><em>-- |</em></span>
+<b>package</b> <b>body</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<span class="symbol"><a name="ref_49_46" href="terminal_interface-curses-forms-field_user_data__ads.htm#ref_46_41">Field_User_Data</a></span> <b>is</b>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_53_14" href="terminal_interface-curses-forms-field_user_data__ads.htm#ref_54_14">Set_User_Data</a></span> (<span class="symbol"><a name="ref_53_29" href="terminal_interface-curses-forms-field_user_data__ads.htm#ref_54_29">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_54_29" href="terminal_interface-curses-forms-field_user_data__ads.htm#ref_55_29">Data</a></span> : <a href="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_9">User_Access</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_56_16">Set_Field_Userptr</A></span> (<span class="symbol"><A NAME="ref_56_35" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_56_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_57_35" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_56_16">Usr</A></span> : <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_9">User_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_56_16">Set_Field_Userptr</a></span> (<span class="symbol"><a name="ref_56_35">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_57_35">Usr</a></span> : <a href="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_9">User_Access</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Field_Userptr, "set_field_userptr");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_56_16">Set_Field_Userptr</A> (<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_54_29">Fld</A>, <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_55_29">Data</A>));
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_54_14">Set_User_Data</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_66_13" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_65_13">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_66_28" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_65_28">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_9">User_Access</A>
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms-field_user_data__adb.htm#ref_56_16">Set_Field_Userptr</a> (<a href="terminal_interface-curses-forms-field_user_data__ads.htm#ref_54_29">Fld</a>, <a href="terminal_interface-curses-forms-field_user_data__ads.htm#ref_55_29">Data</a>));
+ <b>end</b> <a href="terminal_interface-curses-forms-field_user_data__ads.htm#ref_54_14">Set_User_Data</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_66_13" href="terminal_interface-curses-forms-field_user_data__ads.htm#ref_65_13">Get_User_Data</a></span> (<span class="symbol"><a name="ref_66_28" href="terminal_interface-curses-forms-field_user_data__ads.htm#ref_65_28">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>) <b>return</b> <a href="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_9">User_Access</a>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_68_16">Field_Userptr</A></span> (<span class="symbol"><A NAME="ref_68_31" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_68_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_9">User_Access</A>;
+ <b>function</b> <span class="symbol"><a name="ref_68_16">Field_Userptr</a></span> (<span class="symbol"><a name="ref_68_31">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>) <b>return</b> <a href="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_9">User_Access</a>;
<b>pragma</b> Import (C, Field_Userptr, "field_userptr");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_68_16">Field_Userptr</A> (<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_65_28">Fld</A>);
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_65_13">Get_User_Data</A>;
+ <b>return</b> <a href="terminal_interface-curses-forms-field_user_data__adb.htm#ref_68_16">Field_Userptr</a> (<a href="terminal_interface-curses-forms-field_user_data__ads.htm#ref_65_28">Fld</a>);
+ <b>end</b> <a href="terminal_interface-curses-forms-field_user_data__ads.htm#ref_65_13">Get_User_Data</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_74_14" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_60_14">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_74_29" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_60_29">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_75_29" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_61_29">Data</A></span> : <b>out</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_9">User_Access</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_74_14" href="terminal_interface-curses-forms-field_user_data__ads.htm#ref_60_14">Get_User_Data</a></span> (<span class="symbol"><a name="ref_74_29" href="terminal_interface-curses-forms-field_user_data__ads.htm#ref_60_29">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_75_29" href="terminal_interface-curses-forms-field_user_data__ads.htm#ref_61_29">Data</a></span> : <b>out</b> <a href="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_9">User_Access</a>)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_61_29">Data</A> := <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_65_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_60_29">Fld</A>);
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_60_14">Get_User_Data</A>;
+ <a href="terminal_interface-curses-forms-field_user_data__ads.htm#ref_61_29">Data</a> := <a href="terminal_interface-curses-forms-field_user_data__ads.htm#ref_65_13">Get_User_Data</a> (<a href="terminal_interface-curses-forms-field_user_data__ads.htm#ref_60_29">Fld</a>);
+ <b>end</b> <a href="terminal_interface-curses-forms-field_user_data__ads.htm#ref_60_14">Get_User_Data</a>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_46_41">Field_User_Data</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_user_data__ads.htm#ref_46_41">Field_User_Data</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_user_data__ads.htm b/doc/html/ada/terminal_interface-curses-forms-field_user_data__ads.htm
index 7321fc4a7341..d1a467cc909f 100644
--- a/doc/html/ada/terminal_interface-curses-forms-field_user_data__ads.htm
+++ b/doc/html/ada/terminal_interface-curses-forms-field_user_data__ads.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-forms-field_user_data.ads</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-forms-field_user_data.ads</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,78 +11,78 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_user_data.ads </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_User_Data --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- S P E C --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1998-2003,2009 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.17 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-forms-field_user_data.ads </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Forms.Field_User_Data --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- S P E C --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1998-2003,2009 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.17 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
<b>generic</b>
- <b>type</b> <span class="symbol"><A NAME="ref_44_9" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_46_41">User</A></span> <b>is</b> <b>limited</b> <b>private</b>;
- <b>type</b> <span class="symbol"><A NAME="ref_45_9" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_46_41">User_Access</A></span> <b>is</b> <b>access</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">User</A>;
-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<span class="symbol"><A NAME="ref_46_41" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_49_46">Field_User_Data</A></span> <b>is</b>
- <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_46_41">Field_User_Data</A>);
+ <b>type</b> <span class="symbol"><a name="ref_44_9">User</a></span> <b>is</b> <b>limited</b> <b>private</b>;
+ <b>type</b> <span class="symbol"><a name="ref_45_9">User_Access</a></span> <b>is</b> <b>access</b> <a href="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">User</a>;
+<b>package</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<span class="symbol"><a name="ref_46_41" href="terminal_interface-curses-forms-field_user_data__adb.htm#ref_49_46">Field_User_Data</a></span> <b>is</b>
+ <b>pragma</b> Preelaborate (<a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_user_data__ads.htm#ref_46_41">Field_User_Data</a>);
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/form_field_userptr.3x.html">form_field_userptr.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/form_field_userptr.3x.html">form_field_userptr.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
- <span class="comment"><EM>-- <A NAME="AFU_1">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_54_14" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_53_14">Set_User_Data</A></span> (<span class="symbol"><A NAME="ref_54_29" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_53_29">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_55_29" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_54_29">Data</A></span> : <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_9">User_Access</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_userptr.3x.html">set_field_userptr</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_54_14">Set_User_Data</A>);
+ <span class="comment"><em>-- <A NAME="AFU_1">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_54_14" href="terminal_interface-curses-forms-field_user_data__adb.htm#ref_53_14">Set_User_Data</a></span> (<span class="symbol"><a name="ref_54_29" href="terminal_interface-curses-forms-field_user_data__adb.htm#ref_53_29">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_55_29" href="terminal_interface-curses-forms-field_user_data__adb.htm#ref_54_29">Data</a></span> : <a href="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_9">User_Access</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_field_userptr.3x.html">set_field_userptr</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-forms-field_user_data__ads.htm#ref_54_14">Set_User_Data</a>);
- <span class="comment"><EM>-- <A NAME="AFU_2">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_60_14" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_74_14">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_60_29" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_74_29">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_61_29" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_75_29">Data</A></span> : <b>out</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_9">User_Access</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_userptr.3x.html">field_userptr</A></EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_2">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_60_14" href="terminal_interface-curses-forms-field_user_data__adb.htm#ref_74_14">Get_User_Data</a></span> (<span class="symbol"><a name="ref_60_29" href="terminal_interface-curses-forms-field_user_data__adb.htm#ref_74_29">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_61_29" href="terminal_interface-curses-forms-field_user_data__adb.htm#ref_75_29">Data</a></span> : <b>out</b> <a href="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_9">User_Access</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_field_userptr.3x.html">field_userptr</A></em></span>
- <span class="comment"><EM>-- <A NAME="AFU_3">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_65_13" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_66_13">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_65_28" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_66_28">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_9">User_Access</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_userptr.3x.html">field_userptr</A></EM></span>
- <span class="comment"><EM>-- Sama as function</EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_3">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_65_13" href="terminal_interface-curses-forms-field_user_data__adb.htm#ref_66_13">Get_User_Data</a></span> (<span class="symbol"><a name="ref_65_28" href="terminal_interface-curses-forms-field_user_data__adb.htm#ref_66_28">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>) <b>return</b> <a href="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_9">User_Access</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_field_userptr.3x.html">field_userptr</A></em></span>
+ <span class="comment"><em>-- Sama as function</em></span>
<b>pragma</b> Inline (Get_User_Data);
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_46_41">Field_User_Data</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-field_user_data__ads.htm#ref_46_41">Field_User_Data</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-forms-form_user_data__adb.htm b/doc/html/ada/terminal_interface-curses-forms-form_user_data__adb.htm
index 5a885ffb634c..fbb0b5c71777 100644
--- a/doc/html/ada/terminal_interface-curses-forms-form_user_data__adb.htm
+++ b/doc/html/ada/terminal_interface-curses-forms-form_user_data__adb.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-forms-form_user_data.adb</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-forms-form_user_data.adb</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,90 +11,90 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-form_user_data.adb </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Form_User_Data --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- B O D Y --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2018,2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2009,2014 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.17 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- |</EM></span>
-<span class="comment"><EM>-- |=====================================================================</EM></span>
-<span class="comment"><EM>-- | man page form__userptr.3x</EM></span>
-<span class="comment"><EM>-- |=====================================================================</EM></span>
-<span class="comment"><EM>-- |</EM></span>
-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>;
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-forms-form_user_data.adb </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Forms.Form_User_Data --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- B O D Y --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2018,2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2009,2014 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.17 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- |</em></span>
+<span class="comment"><em>-- |=====================================================================</em></span>
+<span class="comment"><em>-- | man page form__userptr.3x</em></span>
+<span class="comment"><em>-- |=====================================================================</em></span>
+<span class="comment"><em>-- |</em></span>
+<b>with</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>; <b>use</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<span class="symbol"><A NAME="ref_49_46" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_46_41">Form_User_Data</A></span> <b>is</b>
+<b>package</b> <b>body</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<span class="symbol"><a name="ref_49_46" href="terminal_interface-curses-forms-form_user_data__ads.htm#ref_46_41">Form_User_Data</a></span> <b>is</b>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_54_14" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_54_14">Set_User_Data</A></span> (<span class="symbol"><A NAME="ref_54_29" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_54_29">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_55_29" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_55_29">Data</A></span> : <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_9">User_Access</A>)
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_54_14" href="terminal_interface-curses-forms-form_user_data__ads.htm#ref_54_14">Set_User_Data</a></span> (<span class="symbol"><a name="ref_54_29" href="terminal_interface-curses-forms-form_user_data__ads.htm#ref_54_29">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_55_29" href="terminal_interface-curses-forms-form_user_data__ads.htm#ref_55_29">Data</a></span> : <a href="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_9">User_Access</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_57_16">Set_Form_Userptr</A></span> (<span class="symbol"><A NAME="ref_57_34" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_57_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_58_34" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_57_16">Data</A></span> : <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_9">User_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_57_16">Set_Form_Userptr</a></span> (<span class="symbol"><a name="ref_57_34">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_58_34">Data</a></span> : <a href="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_9">User_Access</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Form_Userptr, "set_form_userptr");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_57_16">Set_Form_Userptr</A> (<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_54_29">Frm</A>, <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_55_29">Data</A>));
- <b>end</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_54_14">Set_User_Data</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_67_13" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_65_13">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_67_28" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_65_28">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_9">User_Access</A>
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms-form_user_data__adb.htm#ref_57_16">Set_Form_Userptr</a> (<a href="terminal_interface-curses-forms-form_user_data__ads.htm#ref_54_29">Frm</a>, <a href="terminal_interface-curses-forms-form_user_data__ads.htm#ref_55_29">Data</a>));
+ <b>end</b> <a href="terminal_interface-curses-forms-form_user_data__ads.htm#ref_54_14">Set_User_Data</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_67_13" href="terminal_interface-curses-forms-form_user_data__ads.htm#ref_65_13">Get_User_Data</a></span> (<span class="symbol"><a name="ref_67_28" href="terminal_interface-curses-forms-form_user_data__ads.htm#ref_65_28">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>) <b>return</b> <a href="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_9">User_Access</a>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_69_16">Form_Userptr</A></span> (<span class="symbol"><A NAME="ref_69_30" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_69_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_9">User_Access</A>;
+ <b>function</b> <span class="symbol"><a name="ref_69_16">Form_Userptr</a></span> (<span class="symbol"><a name="ref_69_30">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>) <b>return</b> <a href="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_9">User_Access</a>;
<b>pragma</b> Import (C, Form_Userptr, "form_userptr");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_69_16">Form_Userptr</A> (<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_65_28">Frm</A>);
- <b>end</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_65_13">Get_User_Data</A>;
+ <b>return</b> <a href="terminal_interface-curses-forms-form_user_data__adb.htm#ref_69_16">Form_Userptr</a> (<a href="terminal_interface-curses-forms-form_user_data__ads.htm#ref_65_28">Frm</a>);
+ <b>end</b> <a href="terminal_interface-curses-forms-form_user_data__ads.htm#ref_65_13">Get_User_Data</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_75_14" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_60_14">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_75_29" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_60_29">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_76_29" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_61_29">Data</A></span> : <b>out</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_9">User_Access</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_75_14" href="terminal_interface-curses-forms-form_user_data__ads.htm#ref_60_14">Get_User_Data</a></span> (<span class="symbol"><a name="ref_75_29" href="terminal_interface-curses-forms-form_user_data__ads.htm#ref_60_29">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_76_29" href="terminal_interface-curses-forms-form_user_data__ads.htm#ref_61_29">Data</a></span> : <b>out</b> <a href="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_9">User_Access</a>)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_61_29">Data</A> := <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_65_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_60_29">Frm</A>);
- <b>end</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_60_14">Get_User_Data</A>;
+ <a href="terminal_interface-curses-forms-form_user_data__ads.htm#ref_61_29">Data</a> := <a href="terminal_interface-curses-forms-form_user_data__ads.htm#ref_65_13">Get_User_Data</a> (<a href="terminal_interface-curses-forms-form_user_data__ads.htm#ref_60_29">Frm</a>);
+ <b>end</b> <a href="terminal_interface-curses-forms-form_user_data__ads.htm#ref_60_14">Get_User_Data</a>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_46_41">Form_User_Data</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-form_user_data__ads.htm#ref_46_41">Form_User_Data</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-forms-form_user_data__ads.htm b/doc/html/ada/terminal_interface-curses-forms-form_user_data__ads.htm
index 915dd0ac3635..c6baf65b1e12 100644
--- a/doc/html/ada/terminal_interface-curses-forms-form_user_data__ads.htm
+++ b/doc/html/ada/terminal_interface-curses-forms-form_user_data__ads.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-forms-form_user_data.ads</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-forms-form_user_data.ads</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,78 +11,78 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-form_user_data.ads </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Form_User_Data --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- S P E C --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1998-2003,2009 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.16 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-forms-form_user_data.ads </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Forms.Form_User_Data --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- S P E C --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1998-2003,2009 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.16 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
<b>generic</b>
- <b>type</b> <span class="symbol"><A NAME="ref_44_9" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_46_41">User</A></span> <b>is</b> <b>limited</b> <b>private</b>;
- <b>type</b> <span class="symbol"><A NAME="ref_45_9" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_46_41">User_Access</A></span> <b>is</b> <b>access</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">User</A>;
-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<span class="symbol"><A NAME="ref_46_41" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_49_46">Form_User_Data</A></span> <b>is</b>
- <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_46_41">Form_User_Data</A>);
+ <b>type</b> <span class="symbol"><a name="ref_44_9">User</a></span> <b>is</b> <b>limited</b> <b>private</b>;
+ <b>type</b> <span class="symbol"><a name="ref_45_9">User_Access</a></span> <b>is</b> <b>access</b> <a href="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">User</a>;
+<b>package</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<span class="symbol"><a name="ref_46_41" href="terminal_interface-curses-forms-form_user_data__adb.htm#ref_49_46">Form_User_Data</a></span> <b>is</b>
+ <b>pragma</b> Preelaborate (<a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-form_user_data__ads.htm#ref_46_41">Form_User_Data</a>);
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/form_userptr.3x.html">form_userptr.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/form_userptr.3x.html">form_userptr.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
- <span class="comment"><EM>-- <A NAME="AFU_1">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_54_14" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_54_14">Set_User_Data</A></span> (<span class="symbol"><A NAME="ref_54_29" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_54_29">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_55_29" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_55_29">Data</A></span> : <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_9">User_Access</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_userptr.3x.html">set_form_userptr</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_54_14">Set_User_Data</A>);
+ <span class="comment"><em>-- <A NAME="AFU_1">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_54_14" href="terminal_interface-curses-forms-form_user_data__adb.htm#ref_54_14">Set_User_Data</a></span> (<span class="symbol"><a name="ref_54_29" href="terminal_interface-curses-forms-form_user_data__adb.htm#ref_54_29">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_55_29" href="terminal_interface-curses-forms-form_user_data__adb.htm#ref_55_29">Data</a></span> : <a href="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_9">User_Access</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_userptr.3x.html">set_form_userptr</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-forms-form_user_data__ads.htm#ref_54_14">Set_User_Data</a>);
- <span class="comment"><EM>-- <A NAME="AFU_2">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_60_14" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_75_14">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_60_29" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_75_29">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_61_29" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_76_29">Data</A></span> : <b>out</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_9">User_Access</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_userptr.3x.html">form_userptr</A></EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_2">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_60_14" href="terminal_interface-curses-forms-form_user_data__adb.htm#ref_75_14">Get_User_Data</a></span> (<span class="symbol"><a name="ref_60_29" href="terminal_interface-curses-forms-form_user_data__adb.htm#ref_75_29">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_61_29" href="terminal_interface-curses-forms-form_user_data__adb.htm#ref_76_29">Data</a></span> : <b>out</b> <a href="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_9">User_Access</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_userptr.3x.html">form_userptr</A></em></span>
- <span class="comment"><EM>-- <A NAME="AFU_3">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_65_13" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_67_13">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_65_28" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_67_28">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_9">User_Access</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_userptr.3x.html">form_userptr</A></EM></span>
- <span class="comment"><EM>-- Same as function</EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_3">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_65_13" href="terminal_interface-curses-forms-form_user_data__adb.htm#ref_67_13">Get_User_Data</a></span> (<span class="symbol"><a name="ref_65_28" href="terminal_interface-curses-forms-form_user_data__adb.htm#ref_67_28">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>) <b>return</b> <a href="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_9">User_Access</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_userptr.3x.html">form_userptr</A></em></span>
+ <span class="comment"><em>-- Same as function</em></span>
<b>pragma</b> Inline (Get_User_Data);
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>.<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_46_41">Form_User_Data</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>.<a href="terminal_interface-curses-forms-form_user_data__ads.htm#ref_46_41">Form_User_Data</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-forms__adb.htm b/doc/html/ada/terminal_interface-curses-forms__adb.htm
index 7820c331ce25..3f22b40dac6f 100644
--- a/doc/html/ada/terminal_interface-curses-forms__adb.htm
+++ b/doc/html/ada/terminal_interface-curses-forms__adb.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-forms.adb</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-forms.adb</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,1040 +11,1040 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms.adb </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Forms --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- B O D Y --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2011,2014 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.33 @</EM></span>
-<span class="comment"><EM>-- @Date: 2020/02/02 23:34:34 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-forms.adb </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Forms --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- B O D Y --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2011,2014 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.33 @</em></span>
+<span class="comment"><em>-- @Date: 2020/02/02 23:34:34 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
<b>with</b> Ada.Unchecked_Deallocation;
-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings;
-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Pointers;
+<b>with</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C; <b>use</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C;
+<b>with</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.Strings; <b>use</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.Strings;
+<b>with</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.Pointers;
-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>;
+<b>with</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<span class="symbol"><A NAME="ref_51_40" HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A></span> <b>is</b>
+<b>package</b> <b>body</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<span class="symbol"><a name="ref_51_40" href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a></span> <b>is</b>
- <b>use</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>;
+ <b>use</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>;
- <b>type</b> C_Field_Array <b>is</b> <b>array</b> (Natural <b>range</b> &lt;&gt;) <b>of</b> <b>aliased</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
+ <b>type</b> C_Field_Array <b>is</b> <b>array</b> (Natural <b>range</b> &lt;&gt;) <b>of</b> <b>aliased</b> <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
<b>package</b> F_Array <b>is</b> <b>new</b>
- <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Pointers (Natural, <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>, C_Field_Array, <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_4">Null_Field</A>);
+ <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.Pointers (Natural, <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>, C_Field_Array, <a href="terminal_interface-curses-forms__ads.htm#ref_55_4">Null_Field</a>);
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- subtype chars_ptr is Interfaces.C.Strings.chars_ptr;</EM></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- subtype chars_ptr is Interfaces.C.Strings.chars_ptr;</em></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_65_14" HREF="terminal_interface-curses-forms__ads.htm#ref_278_14">Request_Name</A></span> (<span class="symbol"><A NAME="ref_65_28" HREF="terminal_interface-curses-forms__ads.htm#ref_278_28">Key</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A>;
- <span class="symbol"><A NAME="ref_66_33" HREF="terminal_interface-curses-forms__ads.htm#ref_279_28">Name</A></span> : <b>out</b> String)
+ <b>procedure</b> <span class="symbol"><a name="ref_65_14" href="terminal_interface-curses-forms__ads.htm#ref_278_14">Request_Name</a></span> (<span class="symbol"><a name="ref_65_28" href="terminal_interface-curses-forms__ads.htm#ref_278_28">Key</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a>;
+ <span class="symbol"><a name="ref_66_33" href="terminal_interface-curses-forms__ads.htm#ref_279_28">Name</a></span> : <b>out</b> String)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_68_16">Form_Request_Name</A></span> (<span class="symbol"><A NAME="ref_68_35" HREF="terminal_interface-curses-forms__adb.htm#ref_68_16">Key</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> chars_ptr;
+ <b>function</b> <span class="symbol"><a name="ref_68_16">Form_Request_Name</a></span> (<span class="symbol"><a name="ref_68_35">Key</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> chars_ptr;
<b>pragma</b> Import (C, Form_Request_Name, "form_request_name");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_91_14">Fill_String</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_68_16">Form_Request_Name</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_278_28">Key</A>)), <A HREF="terminal_interface-curses-forms__ads.htm#ref_279_28">Name</A>);
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_278_14">Request_Name</A>;
+ <a href="terminal_interface-curses-aux__ads.htm#ref_91_14">Fill_String</a> (<a href="terminal_interface-curses-forms__adb.htm#ref_68_16">Form_Request_Name</a> (<a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_278_28">Key</a>)), <a href="terminal_interface-curses-forms__ads.htm#ref_279_28">Name</a>);
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_278_14">Request_Name</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_74_13" HREF="terminal_interface-curses-forms__ads.htm#ref_281_14">Request_Name</A></span> (<span class="symbol"><A NAME="ref_74_27" HREF="terminal_interface-curses-forms__ads.htm#ref_281_28">Key</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A>) <b>return</b> String
+ <b>function</b> <span class="symbol"><a name="ref_74_13" href="terminal_interface-curses-forms__ads.htm#ref_281_14">Request_Name</a></span> (<span class="symbol"><a name="ref_74_27" href="terminal_interface-curses-forms__ads.htm#ref_281_28">Key</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a>) <b>return</b> String
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_76_16">Form_Request_Name</A></span> (<span class="symbol"><A NAME="ref_76_35" HREF="terminal_interface-curses-forms__adb.htm#ref_76_16">Key</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> chars_ptr;
+ <b>function</b> <span class="symbol"><a name="ref_76_16">Form_Request_Name</a></span> (<span class="symbol"><a name="ref_76_35">Key</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> chars_ptr;
<b>pragma</b> Import (C, Form_Request_Name, "form_request_name");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_13">Fill_String</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_76_16">Form_Request_Name</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_281_28">Key</A>)));
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_281_14">Request_Name</A>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | man page form_field_new.3x</EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_92_13" HREF="terminal_interface-curses-forms__ads.htm#ref_295_13">Create</A></span> (<span class="symbol"><A NAME="ref_92_21" HREF="terminal_interface-curses-forms__ads.htm#ref_295_21">Height</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</A>;
- <span class="symbol"><A NAME="ref_93_21" HREF="terminal_interface-curses-forms__ads.htm#ref_296_21">Width</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</A>;
- <span class="symbol"><A NAME="ref_94_21" HREF="terminal_interface-curses-forms__ads.htm#ref_297_21">Top</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_95_21" HREF="terminal_interface-curses-forms__ads.htm#ref_298_21">Left</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_96_21" HREF="terminal_interface-curses-forms__ads.htm#ref_299_21">Off_Screen</A></span> : Natural := 0;
- <span class="symbol"><A NAME="ref_97_21" HREF="terminal_interface-curses-forms__ads.htm#ref_300_21">More_Buffers</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A>'First)
- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>
+ <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_96_13">Fill_String</a> (<a href="terminal_interface-curses-forms__adb.htm#ref_76_16">Form_Request_Name</a> (<a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_281_28">Key</a>)));
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_281_14">Request_Name</a>;
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | man page form_field_new.3x</em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_92_13" href="terminal_interface-curses-forms__ads.htm#ref_295_13">Create</a></span> (<span class="symbol"><a name="ref_92_21" href="terminal_interface-curses-forms__ads.htm#ref_295_21">Height</a></span> : <a href="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</a>;
+ <span class="symbol"><a name="ref_93_21" href="terminal_interface-curses-forms__ads.htm#ref_296_21">Width</a></span> : <a href="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</a>;
+ <span class="symbol"><a name="ref_94_21" href="terminal_interface-curses-forms__ads.htm#ref_297_21">Top</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_95_21" href="terminal_interface-curses-forms__ads.htm#ref_298_21">Left</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_96_21" href="terminal_interface-curses-forms__ads.htm#ref_299_21">Off_Screen</a></span> : Natural := 0;
+ <span class="symbol"><a name="ref_97_21" href="terminal_interface-curses-forms__ads.htm#ref_300_21">More_Buffers</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</a> := <a href="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</a>'First)
+ <b>return</b> <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_100_16">Newfield</A></span> (<span class="symbol"><A NAME="ref_100_26" HREF="terminal_interface-curses-forms__adb.htm#ref_100_16">H</A></span>, <span class="symbol"><A NAME="ref_100_29" HREF="terminal_interface-curses-forms__adb.htm#ref_100_16">W</A></span>, <span class="symbol"><A NAME="ref_100_32" HREF="terminal_interface-curses-forms__adb.htm#ref_100_16">T</A></span>, <span class="symbol"><A NAME="ref_100_35" HREF="terminal_interface-curses-forms__adb.htm#ref_100_16">L</A></span>, <span class="symbol"><A NAME="ref_100_38" HREF="terminal_interface-curses-forms__adb.htm#ref_100_16">O</A></span>, <span class="symbol"><A NAME="ref_100_41" HREF="terminal_interface-curses-forms__adb.htm#ref_100_16">M</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
+ <b>function</b> <span class="symbol"><a name="ref_100_16">Newfield</a></span> (<span class="symbol"><a name="ref_100_26">H</a></span>, <span class="symbol"><a name="ref_100_29">W</a></span>, <span class="symbol"><a name="ref_100_32">T</a></span>, <span class="symbol"><a name="ref_100_35">L</a></span>, <span class="symbol"><a name="ref_100_38">O</a></span>, <span class="symbol"><a name="ref_100_41">M</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
<b>pragma</b> Import (C, Newfield, "new_field");
- <span class="symbol"><A NAME="ref_102_7">Fld</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_100_16">Newfield</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_295_21">Height</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_296_21">Width</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_297_21">Top</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_298_21">Left</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_299_21">Off_Screen</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_300_21">More_Buffers</A>));
+ <span class="symbol"><a name="ref_102_7">Fld</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a> := <a href="terminal_interface-curses-forms__adb.htm#ref_100_16">Newfield</a> (<a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_295_21">Height</a>), <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_296_21">Width</a>),
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_297_21">Top</a>), <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_298_21">Left</a>),
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_299_21">Off_Screen</a>),
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_300_21">More_Buffers</a>));
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_102_7">Fld</A> = <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_4">Null_Field</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses-forms__adb.htm#ref_102_7">Fld</a> = <a href="terminal_interface-curses-forms__ads.htm#ref_55_4">Null_Field</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</a>;
<b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_102_7">Fld</A>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_295_13">Create</A>;
-<span class="comment"><EM>-- |</EM></span>
-<span class="comment"><EM>-- |</EM></span>
-<span class="comment"><EM>-- |</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_115_14" HREF="terminal_interface-curses-forms__ads.htm#ref_317_14">Delete</A></span> (<span class="symbol"><A NAME="ref_115_22" HREF="terminal_interface-curses-forms__ads.htm#ref_317_22">Fld</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>)
+ <b>return</b> <a href="terminal_interface-curses-forms__adb.htm#ref_102_7">Fld</a>;
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_295_13">Create</a>;
+<span class="comment"><em>-- |</em></span>
+<span class="comment"><em>-- |</em></span>
+<span class="comment"><em>-- |</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_115_14" href="terminal_interface-curses-forms__ads.htm#ref_317_14">Delete</a></span> (<span class="symbol"><a name="ref_115_22" href="terminal_interface-curses-forms__ads.htm#ref_317_22">Fld</a></span> : <b>in</b> <b>out</b> <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_117_16">Free_Field</A></span> (<span class="symbol"><A NAME="ref_117_28" HREF="terminal_interface-curses-forms__adb.htm#ref_117_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_117_16">Free_Field</a></span> (<span class="symbol"><a name="ref_117_28">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Free_Field, "free_field");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_117_16">Free_Field</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_317_22">Fld</A>));
- <A HREF="terminal_interface-curses-forms__ads.htm#ref_317_22">Fld</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_4">Null_Field</A>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_317_14">Delete</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_127_13" HREF="terminal_interface-curses-forms__ads.htm#ref_323_13">Duplicate</A></span> (<span class="symbol"><A NAME="ref_127_24" HREF="terminal_interface-curses-forms__ads.htm#ref_323_24">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_128_24" HREF="terminal_interface-curses-forms__ads.htm#ref_324_24">Top</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_129_24" HREF="terminal_interface-curses-forms__ads.htm#ref_325_24">Left</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms__adb.htm#ref_117_16">Free_Field</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_317_22">Fld</a>));
+ <a href="terminal_interface-curses-forms__ads.htm#ref_317_22">Fld</a> := <a href="terminal_interface-curses-forms__ads.htm#ref_55_4">Null_Field</a>;
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_317_14">Delete</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_127_13" href="terminal_interface-curses-forms__ads.htm#ref_323_13">Duplicate</a></span> (<span class="symbol"><a name="ref_127_24" href="terminal_interface-curses-forms__ads.htm#ref_323_24">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_128_24" href="terminal_interface-curses-forms__ads.htm#ref_324_24">Top</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_129_24" href="terminal_interface-curses-forms__ads.htm#ref_325_24">Left</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>) <b>return</b> <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_131_16">Dup_Field</A></span> (<span class="symbol"><A NAME="ref_131_27" HREF="terminal_interface-curses-forms__adb.htm#ref_131_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_132_27" HREF="terminal_interface-curses-forms__adb.htm#ref_131_16">Top</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_133_27" HREF="terminal_interface-curses-forms__adb.htm#ref_131_16">Left</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
+ <b>function</b> <span class="symbol"><a name="ref_131_16">Dup_Field</a></span> (<span class="symbol"><a name="ref_131_27">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_132_27">Top</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_133_27">Left</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
<b>pragma</b> Import (C, Dup_Field, "dup_field");
- <span class="symbol"><A NAME="ref_136_7">F</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_131_16">Dup_Field</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_323_24">Fld</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_324_24">Top</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_325_24">Left</A>));
+ <span class="symbol"><a name="ref_136_7">F</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a> := <a href="terminal_interface-curses-forms__adb.htm#ref_131_16">Dup_Field</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_323_24">Fld</a>,
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_324_24">Top</a>),
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_325_24">Left</a>));
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_136_7">F</A> = <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_4">Null_Field</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses-forms__adb.htm#ref_136_7">F</a> = <a href="terminal_interface-curses-forms__ads.htm#ref_55_4">Null_Field</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</a>;
<b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_136_7">F</A>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_323_13">Duplicate</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_148_13" HREF="terminal_interface-curses-forms__ads.htm#ref_330_13">Link</A></span> (<span class="symbol"><A NAME="ref_148_19" HREF="terminal_interface-curses-forms__ads.htm#ref_330_19">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_149_19" HREF="terminal_interface-curses-forms__ads.htm#ref_331_19">Top</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_150_19" HREF="terminal_interface-curses-forms__ads.htm#ref_332_19">Left</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>
+ <b>return</b> <a href="terminal_interface-curses-forms__adb.htm#ref_136_7">F</a>;
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_323_13">Duplicate</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_148_13" href="terminal_interface-curses-forms__ads.htm#ref_330_13">Link</a></span> (<span class="symbol"><a name="ref_148_19" href="terminal_interface-curses-forms__ads.htm#ref_330_19">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_149_19" href="terminal_interface-curses-forms__ads.htm#ref_331_19">Top</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_150_19" href="terminal_interface-curses-forms__ads.htm#ref_332_19">Left</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>) <b>return</b> <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_152_16">Lnk_Field</A></span> (<span class="symbol"><A NAME="ref_152_27" HREF="terminal_interface-curses-forms__adb.htm#ref_152_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_153_27" HREF="terminal_interface-curses-forms__adb.htm#ref_152_16">Top</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_154_27" HREF="terminal_interface-curses-forms__adb.htm#ref_152_16">Left</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
+ <b>function</b> <span class="symbol"><a name="ref_152_16">Lnk_Field</a></span> (<span class="symbol"><a name="ref_152_27">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_153_27">Top</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_154_27">Left</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
<b>pragma</b> Import (C, Lnk_Field, "link_field");
- <span class="symbol"><A NAME="ref_157_7">F</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_152_16">Lnk_Field</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_330_19">Fld</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_331_19">Top</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_332_19">Left</A>));
+ <span class="symbol"><a name="ref_157_7">F</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a> := <a href="terminal_interface-curses-forms__adb.htm#ref_152_16">Lnk_Field</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_330_19">Fld</a>,
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_331_19">Top</a>),
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_332_19">Left</a>));
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_157_7">F</A> = <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_4">Null_Field</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses-forms__adb.htm#ref_157_7">F</a> = <a href="terminal_interface-curses-forms__ads.htm#ref_55_4">Null_Field</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</a>;
<b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_157_7">F</A>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_330_13">Link</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | man page form_field_just.3x</EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_173_14" HREF="terminal_interface-curses-forms__ads.htm#ref_341_14">Set_Justification</A></span> (<span class="symbol"><A NAME="ref_173_33" HREF="terminal_interface-curses-forms__ads.htm#ref_341_33">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_174_33" HREF="terminal_interface-curses-forms__ads.htm#ref_342_33">Just</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_58_9">Field_Justification</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_58_33">None</A>)
+ <b>return</b> <a href="terminal_interface-curses-forms__adb.htm#ref_157_7">F</a>;
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_330_13">Link</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | man page form_field_just.3x</em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_173_14" href="terminal_interface-curses-forms__ads.htm#ref_341_14">Set_Justification</a></span> (<span class="symbol"><a name="ref_173_33" href="terminal_interface-curses-forms__ads.htm#ref_341_33">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_174_33" href="terminal_interface-curses-forms__ads.htm#ref_342_33">Just</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_58_9">Field_Justification</a> := <a href="terminal_interface-curses-forms__ads.htm#ref_58_33">None</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_176_16">Set_Field_Just</A></span> (<span class="symbol"><A NAME="ref_176_32" HREF="terminal_interface-curses-forms__adb.htm#ref_176_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_177_32" HREF="terminal_interface-curses-forms__adb.htm#ref_176_16">Just</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_176_16">Set_Field_Just</a></span> (<span class="symbol"><a name="ref_176_32">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_177_32">Just</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Field_Just, "set_field_just");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_176_16">Set_Field_Just</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_341_33">Fld</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_58_9">Field_Justification</A>'Pos (<A HREF="terminal_interface-curses-forms__ads.htm#ref_342_33">Just</A>))));
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_341_14">Set_Justification</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_187_13" HREF="terminal_interface-curses-forms__ads.htm#ref_347_13">Get_Justification</A></span> (<span class="symbol"><A NAME="ref_187_32" HREF="terminal_interface-curses-forms__ads.htm#ref_347_32">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_58_9">Field_Justification</A>
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms__adb.htm#ref_176_16">Set_Field_Just</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_341_33">Fld</a>,
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_58_9">Field_Justification</a>'Pos (<a href="terminal_interface-curses-forms__ads.htm#ref_342_33">Just</a>))));
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_341_14">Set_Justification</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_187_13" href="terminal_interface-curses-forms__ads.htm#ref_347_13">Get_Justification</a></span> (<span class="symbol"><a name="ref_187_32" href="terminal_interface-curses-forms__ads.htm#ref_347_32">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>) <b>return</b> <a href="terminal_interface-curses-forms__ads.htm#ref_58_9">Field_Justification</a>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_189_16">Field_Just</A></span> (<span class="symbol"><A NAME="ref_189_28" HREF="terminal_interface-curses-forms__adb.htm#ref_189_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_189_16">Field_Just</a></span> (<span class="symbol"><a name="ref_189_28">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Field_Just, "field_just");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_58_9">Field_Justification</A>'Val (<A HREF="terminal_interface-curses-forms__adb.htm#ref_189_16">Field_Just</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_347_32">Fld</A>));
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_347_13">Get_Justification</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | man page form_field_buffer.3x</EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_201_14" HREF="terminal_interface-curses-forms__ads.htm#ref_356_14">Set_Buffer</A></span>
- (<span class="symbol"><A NAME="ref_202_7" HREF="terminal_interface-curses-forms__ads.htm#ref_357_7">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_203_7" HREF="terminal_interface-curses-forms__ads.htm#ref_358_7">Buffer</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A>'First;
- <span class="symbol"><A NAME="ref_204_7" HREF="terminal_interface-curses-forms__ads.htm#ref_359_7">Str</A></span> : String)
+ <b>return</b> <a href="terminal_interface-curses-forms__ads.htm#ref_58_9">Field_Justification</a>'Val (<a href="terminal_interface-curses-forms__adb.htm#ref_189_16">Field_Just</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_347_32">Fld</a>));
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_347_13">Get_Justification</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | man page form_field_buffer.3x</em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_201_14" href="terminal_interface-curses-forms__ads.htm#ref_356_14">Set_Buffer</a></span>
+ (<span class="symbol"><a name="ref_202_7" href="terminal_interface-curses-forms__ads.htm#ref_357_7">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_203_7" href="terminal_interface-curses-forms__ads.htm#ref_358_7">Buffer</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</a> := <a href="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</a>'First;
+ <span class="symbol"><a name="ref_204_7" href="terminal_interface-curses-forms__ads.htm#ref_359_7">Str</a></span> : String)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_206_16">Set_Fld_Buffer</A></span> (<span class="symbol"><A NAME="ref_206_32" HREF="terminal_interface-curses-forms__adb.htm#ref_206_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_207_34" HREF="terminal_interface-curses-forms__adb.htm#ref_206_16">Bufnum</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_208_34" HREF="terminal_interface-curses-forms__adb.htm#ref_206_16">S</A></span> : char_array)
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_206_16">Set_Fld_Buffer</a></span> (<span class="symbol"><a name="ref_206_32">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_207_34">Bufnum</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_208_34">S</a></span> : char_array)
+ <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Fld_Buffer, "set_field_buffer");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_206_16">Set_Fld_Buffer</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_357_7">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_358_7">Buffer</A>), To_C (<A HREF="terminal_interface-curses-forms__ads.htm#ref_359_7">Str</A>)));
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_356_14">Set_Buffer</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_218_14" HREF="terminal_interface-curses-forms__ads.htm#ref_364_14">Get_Buffer</A></span>
- (<span class="symbol"><A NAME="ref_219_7" HREF="terminal_interface-curses-forms__ads.htm#ref_365_7">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_220_7" HREF="terminal_interface-curses-forms__ads.htm#ref_366_7">Buffer</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A>'First;
- <span class="symbol"><A NAME="ref_221_7" HREF="terminal_interface-curses-forms__ads.htm#ref_367_7">Str</A></span> : <b>out</b> String)
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms__adb.htm#ref_206_16">Set_Fld_Buffer</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_357_7">Fld</a>, <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_358_7">Buffer</a>), To_C (<a href="terminal_interface-curses-forms__ads.htm#ref_359_7">Str</a>)));
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_356_14">Set_Buffer</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_218_14" href="terminal_interface-curses-forms__ads.htm#ref_364_14">Get_Buffer</a></span>
+ (<span class="symbol"><a name="ref_219_7" href="terminal_interface-curses-forms__ads.htm#ref_365_7">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_220_7" href="terminal_interface-curses-forms__ads.htm#ref_366_7">Buffer</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</a> := <a href="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</a>'First;
+ <span class="symbol"><a name="ref_221_7" href="terminal_interface-curses-forms__ads.htm#ref_367_7">Str</a></span> : <b>out</b> String)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_223_16">Field_Buffer</A></span> (<span class="symbol"><A NAME="ref_223_30" HREF="terminal_interface-curses-forms__adb.htm#ref_223_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_224_30" HREF="terminal_interface-curses-forms__adb.htm#ref_223_16">B</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> chars_ptr;
+ <b>function</b> <span class="symbol"><a name="ref_223_16">Field_Buffer</a></span> (<span class="symbol"><a name="ref_223_30">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_224_30">B</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> chars_ptr;
<b>pragma</b> Import (C, Field_Buffer, "field_buffer");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_91_14">Fill_String</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_223_16">Field_Buffer</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_365_7">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_366_7">Buffer</A>)), <A HREF="terminal_interface-curses-forms__ads.htm#ref_367_7">Str</A>);
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_364_14">Get_Buffer</A>;
+ <a href="terminal_interface-curses-aux__ads.htm#ref_91_14">Fill_String</a> (<a href="terminal_interface-curses-forms__adb.htm#ref_223_16">Field_Buffer</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_365_7">Fld</a>, <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_366_7">Buffer</a>)), <a href="terminal_interface-curses-forms__ads.htm#ref_367_7">Str</a>);
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_364_14">Get_Buffer</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_230_13" HREF="terminal_interface-curses-forms__ads.htm#ref_370_13">Get_Buffer</A></span>
- (<span class="symbol"><A NAME="ref_231_7" HREF="terminal_interface-curses-forms__ads.htm#ref_371_7">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_232_7" HREF="terminal_interface-curses-forms__ads.htm#ref_372_7">Buffer</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A>'First) <b>return</b> String
+ <b>function</b> <span class="symbol"><a name="ref_230_13" href="terminal_interface-curses-forms__ads.htm#ref_370_13">Get_Buffer</a></span>
+ (<span class="symbol"><a name="ref_231_7" href="terminal_interface-curses-forms__ads.htm#ref_371_7">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_232_7" href="terminal_interface-curses-forms__ads.htm#ref_372_7">Buffer</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</a> := <a href="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</a>'First) <b>return</b> String
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_234_16">Field_Buffer</A></span> (<span class="symbol"><A NAME="ref_234_30" HREF="terminal_interface-curses-forms__adb.htm#ref_234_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_235_30" HREF="terminal_interface-curses-forms__adb.htm#ref_234_16">B</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> chars_ptr;
+ <b>function</b> <span class="symbol"><a name="ref_234_16">Field_Buffer</a></span> (<span class="symbol"><a name="ref_234_30">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_235_30">B</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> chars_ptr;
<b>pragma</b> Import (C, Field_Buffer, "field_buffer");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_13">Fill_String</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_234_16">Field_Buffer</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_371_7">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_372_7">Buffer</A>)));
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_370_13">Get_Buffer</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_243_14" HREF="terminal_interface-curses-forms__ads.htm#ref_378_14">Set_Status</A></span> (<span class="symbol"><A NAME="ref_243_26" HREF="terminal_interface-curses-forms__ads.htm#ref_378_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_244_26" HREF="terminal_interface-curses-forms__ads.htm#ref_379_26">Status</A></span> : Boolean := True)
+ <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_96_13">Fill_String</a> (<a href="terminal_interface-curses-forms__adb.htm#ref_234_16">Field_Buffer</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_371_7">Fld</a>, <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_372_7">Buffer</a>)));
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_370_13">Get_Buffer</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_243_14" href="terminal_interface-curses-forms__ads.htm#ref_378_14">Set_Status</a></span> (<span class="symbol"><a name="ref_243_26" href="terminal_interface-curses-forms__ads.htm#ref_378_26">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_244_26" href="terminal_interface-curses-forms__ads.htm#ref_379_26">Status</a></span> : Boolean := True)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_246_16">Set_Fld_Status</A></span> (<span class="symbol"><A NAME="ref_246_32" HREF="terminal_interface-curses-forms__adb.htm#ref_246_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_247_32" HREF="terminal_interface-curses-forms__adb.htm#ref_246_16">St</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_246_16">Set_Fld_Status</a></span> (<span class="symbol"><a name="ref_246_32">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_247_32">St</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Fld_Status, "set_field_status");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_246_16">Set_Fld_Status</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_378_26">Fld</A>, Boolean'Pos (<A HREF="terminal_interface-curses-forms__ads.htm#ref_379_26">Status</A>)) /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_85_7">E_Ok</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses-forms__adb.htm#ref_246_16">Set_Fld_Status</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_378_26">Fld</a>, Boolean'Pos (<a href="terminal_interface-curses-forms__ads.htm#ref_379_26">Status</a>)) /= <a href="terminal_interface-curses-aux__ads.htm#ref_85_7">E_Ok</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_378_14">Set_Status</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_258_13" HREF="terminal_interface-curses-forms__ads.htm#ref_384_13">Changed</A></span> (<span class="symbol"><A NAME="ref_258_22" HREF="terminal_interface-curses-forms__ads.htm#ref_384_22">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>) <b>return</b> Boolean
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_378_14">Set_Status</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_258_13" href="terminal_interface-curses-forms__ads.htm#ref_384_13">Changed</a></span> (<span class="symbol"><a name="ref_258_22" href="terminal_interface-curses-forms__ads.htm#ref_384_22">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>) <b>return</b> Boolean
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_260_16">Field_Status</A></span> (<span class="symbol"><A NAME="ref_260_30" HREF="terminal_interface-curses-forms__adb.htm#ref_260_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_260_16">Field_Status</a></span> (<span class="symbol"><a name="ref_260_30">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Field_Status, "field_status");
- <span class="symbol"><A NAME="ref_263_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_260_16">Field_Status</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_384_22">Fld</A>);
+ <span class="symbol"><a name="ref_263_7">Res</a></span> : <b>constant</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> := <a href="terminal_interface-curses-forms__adb.htm#ref_260_16">Field_Status</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_384_22">Fld</a>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_263_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_67_4">Curses_False</A> <b>then</b>
+ <b>if</b> <a href="terminal_interface-curses-forms__adb.htm#ref_263_7">Res</a> = <a href="terminal_interface-curses-aux__ads.htm#ref_67_4">Curses_False</a> <b>then</b>
<b>return</b> False;
<b>else</b>
<b>return</b> True;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_384_13">Changed</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_274_14" HREF="terminal_interface-curses-forms__ads.htm#ref_389_14">Set_Maximum_Size</A></span> (<span class="symbol"><A NAME="ref_274_32" HREF="terminal_interface-curses-forms__ads.htm#ref_389_32">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_275_32" HREF="terminal_interface-curses-forms__ads.htm#ref_390_32">Max</A></span> : Natural := 0)
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_384_13">Changed</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_274_14" href="terminal_interface-curses-forms__ads.htm#ref_389_14">Set_Maximum_Size</a></span> (<span class="symbol"><a name="ref_274_32" href="terminal_interface-curses-forms__ads.htm#ref_389_32">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_275_32" href="terminal_interface-curses-forms__ads.htm#ref_390_32">Max</a></span> : Natural := 0)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_277_16">Set_Field_Max</A></span> (<span class="symbol"><A NAME="ref_277_31" HREF="terminal_interface-curses-forms__adb.htm#ref_277_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_278_31" HREF="terminal_interface-curses-forms__adb.htm#ref_277_16">M</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_277_16">Set_Field_Max</a></span> (<span class="symbol"><a name="ref_277_31">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_278_31">M</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Field_Max, "set_max_field");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_277_16">Set_Field_Max</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_389_32">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_390_32">Max</A>)));
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_389_14">Set_Maximum_Size</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | man page form_field_opts.3x</EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_291_14" HREF="terminal_interface-curses-forms__ads.htm#ref_399_14">Set_Options</A></span> (<span class="symbol"><A NAME="ref_291_27" HREF="terminal_interface-curses-forms__ads.htm#ref_399_27">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_292_27" HREF="terminal_interface-curses-forms__ads.htm#ref_400_27">Options</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_63_9">Field_Option_Set</A>)
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms__adb.htm#ref_277_16">Set_Field_Max</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_389_32">Fld</a>, <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_390_32">Max</a>)));
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_389_14">Set_Maximum_Size</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | man page form_field_opts.3x</em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_291_14" href="terminal_interface-curses-forms__ads.htm#ref_399_14">Set_Options</a></span> (<span class="symbol"><a name="ref_291_27" href="terminal_interface-curses-forms__ads.htm#ref_399_27">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_292_27" href="terminal_interface-curses-forms__ads.htm#ref_400_27">Options</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_63_9">Field_Option_Set</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_294_16">Set_Field_Opts</A></span> (<span class="symbol"><A NAME="ref_294_32" HREF="terminal_interface-curses-forms__adb.htm#ref_294_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_295_32" HREF="terminal_interface-curses-forms__adb.htm#ref_294_16">Opt</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_63_9">Field_Option_Set</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_294_16">Set_Field_Opts</a></span> (<span class="symbol"><a name="ref_294_32">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_295_32">Opt</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_63_9">Field_Option_Set</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Field_Opts, "set_field_opts");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_294_16">Set_Field_Opts</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_399_27">Fld</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_400_27">Options</A>));
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_399_14">Set_Options</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_304_14" HREF="terminal_interface-curses-forms__ads.htm#ref_405_14">Switch_Options</A></span> (<span class="symbol"><A NAME="ref_304_30" HREF="terminal_interface-curses-forms__ads.htm#ref_405_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_305_30" HREF="terminal_interface-curses-forms__ads.htm#ref_406_30">Options</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_63_9">Field_Option_Set</A>;
- <span class="symbol"><A NAME="ref_306_30" HREF="terminal_interface-curses-forms__ads.htm#ref_407_30">On</A></span> : Boolean := True)
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms__adb.htm#ref_294_16">Set_Field_Opts</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_399_27">Fld</a>, <a href="terminal_interface-curses-forms__ads.htm#ref_400_27">Options</a>));
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_399_14">Set_Options</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_304_14" href="terminal_interface-curses-forms__ads.htm#ref_405_14">Switch_Options</a></span> (<span class="symbol"><a name="ref_304_30" href="terminal_interface-curses-forms__ads.htm#ref_405_30">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_305_30" href="terminal_interface-curses-forms__ads.htm#ref_406_30">Options</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_63_9">Field_Option_Set</a>;
+ <span class="symbol"><a name="ref_306_30" href="terminal_interface-curses-forms__ads.htm#ref_407_30">On</a></span> : Boolean := True)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_308_16">Field_Opts_On</A></span> (<span class="symbol"><A NAME="ref_308_31" HREF="terminal_interface-curses-forms__adb.htm#ref_308_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_309_31" HREF="terminal_interface-curses-forms__adb.htm#ref_308_16">Opt</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_63_9">Field_Option_Set</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_308_16">Field_Opts_On</a></span> (<span class="symbol"><a name="ref_308_31">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_309_31">Opt</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_63_9">Field_Option_Set</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Field_Opts_On, "field_opts_on");
- <b>function</b> <span class="symbol"><A NAME="ref_311_16">Field_Opts_Off</A></span> (<span class="symbol"><A NAME="ref_311_32" HREF="terminal_interface-curses-forms__adb.htm#ref_311_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_312_32" HREF="terminal_interface-curses-forms__adb.htm#ref_311_16">Opt</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_63_9">Field_Option_Set</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_311_16">Field_Opts_Off</a></span> (<span class="symbol"><a name="ref_311_32">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_312_32">Opt</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_63_9">Field_Option_Set</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Field_Opts_Off, "field_opts_off");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_407_30">On</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_308_16">Field_Opts_On</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_405_30">Fld</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_406_30">Options</A>));
+ <b>if</b> <a href="terminal_interface-curses-forms__ads.htm#ref_407_30">On</a> <b>then</b>
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms__adb.htm#ref_308_16">Field_Opts_On</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_405_30">Fld</a>, <a href="terminal_interface-curses-forms__ads.htm#ref_406_30">Options</a>));
<b>else</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_311_16">Field_Opts_Off</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_405_30">Fld</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_406_30">Options</A>));
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms__adb.htm#ref_311_16">Field_Opts_Off</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_405_30">Fld</a>, <a href="terminal_interface-curses-forms__ads.htm#ref_406_30">Options</a>));
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_405_14">Switch_Options</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_325_14" HREF="terminal_interface-curses-forms__ads.htm#ref_413_14">Get_Options</A></span> (<span class="symbol"><A NAME="ref_325_27" HREF="terminal_interface-curses-forms__ads.htm#ref_413_27">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_326_27" HREF="terminal_interface-curses-forms__ads.htm#ref_414_27">Options</A></span> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_63_9">Field_Option_Set</A>)
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_405_14">Switch_Options</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_325_14" href="terminal_interface-curses-forms__ads.htm#ref_413_14">Get_Options</a></span> (<span class="symbol"><a name="ref_325_27" href="terminal_interface-curses-forms__ads.htm#ref_413_27">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_326_27" href="terminal_interface-curses-forms__ads.htm#ref_414_27">Options</a></span> : <b>out</b> <a href="terminal_interface-curses-forms__ads.htm#ref_63_9">Field_Option_Set</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_328_16">Field_Opts</A></span> (<span class="symbol"><A NAME="ref_328_28" HREF="terminal_interface-curses-forms__adb.htm#ref_328_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_63_9">Field_Option_Set</A>;
+ <b>function</b> <span class="symbol"><a name="ref_328_16">Field_Opts</a></span> (<span class="symbol"><a name="ref_328_28">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>) <b>return</b> <a href="terminal_interface-curses-forms__ads.htm#ref_63_9">Field_Option_Set</a>;
<b>pragma</b> Import (C, Field_Opts, "field_opts");
<b>begin</b>
- <A HREF="terminal_interface-curses-forms__ads.htm#ref_414_27">Options</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_328_16">Field_Opts</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_413_27">Fld</A>);
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_413_14">Get_Options</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_337_13" HREF="terminal_interface-curses-forms__ads.htm#ref_418_13">Get_Options</A></span> (<span class="symbol"><A NAME="ref_337_26" HREF="terminal_interface-curses-forms__ads.htm#ref_418_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_4">Null_Field</A>)
- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_63_9">Field_Option_Set</A>
+ <a href="terminal_interface-curses-forms__ads.htm#ref_414_27">Options</a> := <a href="terminal_interface-curses-forms__adb.htm#ref_328_16">Field_Opts</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_413_27">Fld</a>);
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_413_14">Get_Options</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_337_13" href="terminal_interface-curses-forms__ads.htm#ref_418_13">Get_Options</a></span> (<span class="symbol"><a name="ref_337_26" href="terminal_interface-curses-forms__ads.htm#ref_418_26">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a> := <a href="terminal_interface-curses-forms__ads.htm#ref_55_4">Null_Field</a>)
+ <b>return</b> <a href="terminal_interface-curses-forms__ads.htm#ref_63_9">Field_Option_Set</a>
<b>is</b>
- <span class="symbol"><A NAME="ref_340_7">Fos</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_63_9">Field_Option_Set</A>;
+ <span class="symbol"><a name="ref_340_7">Fos</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_63_9">Field_Option_Set</a>;
<b>begin</b>
- <A HREF="terminal_interface-curses-forms__ads.htm#ref_413_14">Get_Options</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_418_26">Fld</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_340_7">Fos</A>);
- <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_340_7">Fos</A>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_418_13">Get_Options</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | man page form_field_attributes.3x</EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_352_14" HREF="terminal_interface-curses-forms__ads.htm#ref_428_14">Set_Foreground</A></span>
- (<span class="symbol"><A NAME="ref_353_7" HREF="terminal_interface-curses-forms__ads.htm#ref_429_7">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_354_7" HREF="terminal_interface-curses-forms__ads.htm#ref_430_7">Fore</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</A>;
- <span class="symbol"><A NAME="ref_355_7" HREF="terminal_interface-curses-forms__ads.htm#ref_431_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>'First)
+ <a href="terminal_interface-curses-forms__ads.htm#ref_413_14">Get_Options</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_418_26">Fld</a>, <a href="terminal_interface-curses-forms__adb.htm#ref_340_7">Fos</a>);
+ <b>return</b> <a href="terminal_interface-curses-forms__adb.htm#ref_340_7">Fos</a>;
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_418_13">Get_Options</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | man page form_field_attributes.3x</em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_352_14" href="terminal_interface-curses-forms__ads.htm#ref_428_14">Set_Foreground</a></span>
+ (<span class="symbol"><a name="ref_353_7" href="terminal_interface-curses-forms__ads.htm#ref_429_7">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_354_7" href="terminal_interface-curses-forms__ads.htm#ref_430_7">Fore</a></span> : <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a> := <a href="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</a>;
+ <span class="symbol"><a name="ref_355_7" href="terminal_interface-curses-forms__ads.htm#ref_431_7">Color</a></span> : <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a> := <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>'First)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_357_16">Set_Field_Fore</A></span> (<span class="symbol"><A NAME="ref_357_32" HREF="terminal_interface-curses-forms__adb.htm#ref_357_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_358_32" HREF="terminal_interface-curses-forms__adb.htm#ref_357_16">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_357_16">Set_Field_Fore</a></span> (<span class="symbol"><a name="ref_357_32">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_358_32">Attr</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Field_Fore, "set_field_fore");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_357_16">Set_Field_Fore</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_429_7">Fld</A>, (<A HREF="terminal_interface-curses__ads.htm#ref_492_10">Ch</A> =&gt; Character'First,
- <A HREF="terminal_interface-curses__ads.htm#ref_491_10">Color</A> =&gt; <A HREF="terminal_interface-curses-forms__ads.htm#ref_431_7">Color</A>,
- <A HREF="terminal_interface-curses__ads.htm#ref_490_10">Attr</A> =&gt; <A HREF="terminal_interface-curses-forms__ads.htm#ref_430_7">Fore</A>)));
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_428_14">Set_Foreground</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_369_14" HREF="terminal_interface-curses-forms__ads.htm#ref_436_14">Foreground</A></span> (<span class="symbol"><A NAME="ref_369_26" HREF="terminal_interface-curses-forms__ads.htm#ref_436_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_370_26" HREF="terminal_interface-curses-forms__ads.htm#ref_437_26">Fore</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A>)
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms__adb.htm#ref_357_16">Set_Field_Fore</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_429_7">Fld</a>, (<a href="terminal_interface-curses__ads.htm#ref_492_10">Ch</a> =&gt; Character'First,
+ <a href="terminal_interface-curses__ads.htm#ref_491_10">Color</a> =&gt; <a href="terminal_interface-curses-forms__ads.htm#ref_431_7">Color</a>,
+ <a href="terminal_interface-curses__ads.htm#ref_490_10">Attr</a> =&gt; <a href="terminal_interface-curses-forms__ads.htm#ref_430_7">Fore</a>)));
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_428_14">Set_Foreground</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_369_14" href="terminal_interface-curses-forms__ads.htm#ref_436_14">Foreground</a></span> (<span class="symbol"><a name="ref_369_26" href="terminal_interface-curses-forms__ads.htm#ref_436_26">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_370_26" href="terminal_interface-curses-forms__ads.htm#ref_437_26">Fore</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_372_16">Field_Fore</A></span> (<span class="symbol"><A NAME="ref_372_28" HREF="terminal_interface-curses-forms__adb.htm#ref_372_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>;
+ <b>function</b> <span class="symbol"><a name="ref_372_16">Field_Fore</a></span> (<span class="symbol"><a name="ref_372_28">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>;
<b>pragma</b> Import (C, Field_Fore, "field_fore");
<b>begin</b>
- <A HREF="terminal_interface-curses-forms__ads.htm#ref_437_26">Fore</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_372_16">Field_Fore</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_436_26">Fld</A>).<A HREF="terminal_interface-curses__ads.htm#ref_490_10">Attr</A>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_436_14">Foreground</A>;
+ <a href="terminal_interface-curses-forms__ads.htm#ref_437_26">Fore</a> := <a href="terminal_interface-curses-forms__adb.htm#ref_372_16">Field_Fore</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_436_26">Fld</a>).<a href="terminal_interface-curses__ads.htm#ref_490_10">Attr</a>;
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_436_14">Foreground</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_378_14" HREF="terminal_interface-curses-forms__ads.htm#ref_441_14">Foreground</A></span> (<span class="symbol"><A NAME="ref_378_26" HREF="terminal_interface-curses-forms__ads.htm#ref_441_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_379_26" HREF="terminal_interface-curses-forms__ads.htm#ref_442_26">Fore</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A>;
- <span class="symbol"><A NAME="ref_380_26" HREF="terminal_interface-curses-forms__ads.htm#ref_443_26">Color</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_378_14" href="terminal_interface-curses-forms__ads.htm#ref_441_14">Foreground</a></span> (<span class="symbol"><a name="ref_378_26" href="terminal_interface-curses-forms__ads.htm#ref_441_26">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_379_26" href="terminal_interface-curses-forms__ads.htm#ref_442_26">Fore</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a>;
+ <span class="symbol"><a name="ref_380_26" href="terminal_interface-curses-forms__ads.htm#ref_443_26">Color</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_382_16">Field_Fore</A></span> (<span class="symbol"><A NAME="ref_382_28" HREF="terminal_interface-curses-forms__adb.htm#ref_382_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>;
+ <b>function</b> <span class="symbol"><a name="ref_382_16">Field_Fore</a></span> (<span class="symbol"><a name="ref_382_28">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>;
<b>pragma</b> Import (C, Field_Fore, "field_fore");
<b>begin</b>
- <A HREF="terminal_interface-curses-forms__ads.htm#ref_442_26">Fore</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_382_16">Field_Fore</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_441_26">Fld</A>).<A HREF="terminal_interface-curses__ads.htm#ref_490_10">Attr</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#ref_443_26">Color</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_382_16">Field_Fore</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_441_26">Fld</A>).<A HREF="terminal_interface-curses__ads.htm#ref_491_10">Color</A>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_441_14">Foreground</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_391_14" HREF="terminal_interface-curses-forms__ads.htm#ref_448_14">Set_Background</A></span>
- (<span class="symbol"><A NAME="ref_392_7" HREF="terminal_interface-curses-forms__ads.htm#ref_449_7">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_393_7" HREF="terminal_interface-curses-forms__ads.htm#ref_450_7">Back</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</A>;
- <span class="symbol"><A NAME="ref_394_7" HREF="terminal_interface-curses-forms__ads.htm#ref_451_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>'First)
+ <a href="terminal_interface-curses-forms__ads.htm#ref_442_26">Fore</a> := <a href="terminal_interface-curses-forms__adb.htm#ref_382_16">Field_Fore</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_441_26">Fld</a>).<a href="terminal_interface-curses__ads.htm#ref_490_10">Attr</a>;
+ <a href="terminal_interface-curses-forms__ads.htm#ref_443_26">Color</a> := <a href="terminal_interface-curses-forms__adb.htm#ref_382_16">Field_Fore</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_441_26">Fld</a>).<a href="terminal_interface-curses__ads.htm#ref_491_10">Color</a>;
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_441_14">Foreground</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_391_14" href="terminal_interface-curses-forms__ads.htm#ref_448_14">Set_Background</a></span>
+ (<span class="symbol"><a name="ref_392_7" href="terminal_interface-curses-forms__ads.htm#ref_449_7">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_393_7" href="terminal_interface-curses-forms__ads.htm#ref_450_7">Back</a></span> : <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a> := <a href="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</a>;
+ <span class="symbol"><a name="ref_394_7" href="terminal_interface-curses-forms__ads.htm#ref_451_7">Color</a></span> : <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a> := <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>'First)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_396_16">Set_Field_Back</A></span> (<span class="symbol"><A NAME="ref_396_32" HREF="terminal_interface-curses-forms__adb.htm#ref_396_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_397_32" HREF="terminal_interface-curses-forms__adb.htm#ref_396_16">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_396_16">Set_Field_Back</a></span> (<span class="symbol"><a name="ref_396_32">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_397_32">Attr</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Field_Back, "set_field_back");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_396_16">Set_Field_Back</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_449_7">Fld</A>, (<A HREF="terminal_interface-curses__ads.htm#ref_492_10">Ch</A> =&gt; Character'First,
- <A HREF="terminal_interface-curses__ads.htm#ref_491_10">Color</A> =&gt; <A HREF="terminal_interface-curses-forms__ads.htm#ref_451_7">Color</A>,
- <A HREF="terminal_interface-curses__ads.htm#ref_490_10">Attr</A> =&gt; <A HREF="terminal_interface-curses-forms__ads.htm#ref_450_7">Back</A>)));
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_448_14">Set_Background</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_408_14" HREF="terminal_interface-curses-forms__ads.htm#ref_456_14">Background</A></span> (<span class="symbol"><A NAME="ref_408_26" HREF="terminal_interface-curses-forms__ads.htm#ref_456_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_409_26" HREF="terminal_interface-curses-forms__ads.htm#ref_457_26">Back</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A>)
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms__adb.htm#ref_396_16">Set_Field_Back</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_449_7">Fld</a>, (<a href="terminal_interface-curses__ads.htm#ref_492_10">Ch</a> =&gt; Character'First,
+ <a href="terminal_interface-curses__ads.htm#ref_491_10">Color</a> =&gt; <a href="terminal_interface-curses-forms__ads.htm#ref_451_7">Color</a>,
+ <a href="terminal_interface-curses__ads.htm#ref_490_10">Attr</a> =&gt; <a href="terminal_interface-curses-forms__ads.htm#ref_450_7">Back</a>)));
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_448_14">Set_Background</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_408_14" href="terminal_interface-curses-forms__ads.htm#ref_456_14">Background</a></span> (<span class="symbol"><a name="ref_408_26" href="terminal_interface-curses-forms__ads.htm#ref_456_26">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_409_26" href="terminal_interface-curses-forms__ads.htm#ref_457_26">Back</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_411_16">Field_Back</A></span> (<span class="symbol"><A NAME="ref_411_28" HREF="terminal_interface-curses-forms__adb.htm#ref_411_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>;
+ <b>function</b> <span class="symbol"><a name="ref_411_16">Field_Back</a></span> (<span class="symbol"><a name="ref_411_28">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>;
<b>pragma</b> Import (C, Field_Back, "field_back");
<b>begin</b>
- <A HREF="terminal_interface-curses-forms__ads.htm#ref_457_26">Back</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_411_16">Field_Back</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_456_26">Fld</A>).<A HREF="terminal_interface-curses__ads.htm#ref_490_10">Attr</A>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_456_14">Background</A>;
+ <a href="terminal_interface-curses-forms__ads.htm#ref_457_26">Back</a> := <a href="terminal_interface-curses-forms__adb.htm#ref_411_16">Field_Back</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_456_26">Fld</a>).<a href="terminal_interface-curses__ads.htm#ref_490_10">Attr</a>;
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_456_14">Background</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_417_14" HREF="terminal_interface-curses-forms__ads.htm#ref_461_14">Background</A></span> (<span class="symbol"><A NAME="ref_417_26" HREF="terminal_interface-curses-forms__ads.htm#ref_461_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_418_26" HREF="terminal_interface-curses-forms__ads.htm#ref_462_26">Back</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A>;
- <span class="symbol"><A NAME="ref_419_26" HREF="terminal_interface-curses-forms__ads.htm#ref_463_26">Color</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_417_14" href="terminal_interface-curses-forms__ads.htm#ref_461_14">Background</a></span> (<span class="symbol"><a name="ref_417_26" href="terminal_interface-curses-forms__ads.htm#ref_461_26">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_418_26" href="terminal_interface-curses-forms__ads.htm#ref_462_26">Back</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a>;
+ <span class="symbol"><a name="ref_419_26" href="terminal_interface-curses-forms__ads.htm#ref_463_26">Color</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_421_16">Field_Back</A></span> (<span class="symbol"><A NAME="ref_421_28" HREF="terminal_interface-curses-forms__adb.htm#ref_421_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>;
+ <b>function</b> <span class="symbol"><a name="ref_421_16">Field_Back</a></span> (<span class="symbol"><a name="ref_421_28">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>;
<b>pragma</b> Import (C, Field_Back, "field_back");
<b>begin</b>
- <A HREF="terminal_interface-curses-forms__ads.htm#ref_462_26">Back</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_421_16">Field_Back</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_461_26">Fld</A>).<A HREF="terminal_interface-curses__ads.htm#ref_490_10">Attr</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#ref_463_26">Color</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_421_16">Field_Back</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_461_26">Fld</A>).<A HREF="terminal_interface-curses__ads.htm#ref_491_10">Color</A>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_461_14">Background</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_430_14" HREF="terminal_interface-curses-forms__ads.htm#ref_468_14">Set_Pad_Character</A></span> (<span class="symbol"><A NAME="ref_430_33" HREF="terminal_interface-curses-forms__ads.htm#ref_468_33">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_431_33" HREF="terminal_interface-curses-forms__ads.htm#ref_469_33">Pad</A></span> : Character := Space)
+ <a href="terminal_interface-curses-forms__ads.htm#ref_462_26">Back</a> := <a href="terminal_interface-curses-forms__adb.htm#ref_421_16">Field_Back</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_461_26">Fld</a>).<a href="terminal_interface-curses__ads.htm#ref_490_10">Attr</a>;
+ <a href="terminal_interface-curses-forms__ads.htm#ref_463_26">Color</a> := <a href="terminal_interface-curses-forms__adb.htm#ref_421_16">Field_Back</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_461_26">Fld</a>).<a href="terminal_interface-curses__ads.htm#ref_491_10">Color</a>;
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_461_14">Background</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_430_14" href="terminal_interface-curses-forms__ads.htm#ref_468_14">Set_Pad_Character</a></span> (<span class="symbol"><a name="ref_430_33" href="terminal_interface-curses-forms__ads.htm#ref_468_33">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_431_33" href="terminal_interface-curses-forms__ads.htm#ref_469_33">Pad</a></span> : Character := Space)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_433_16">Set_Field_Pad</A></span> (<span class="symbol"><A NAME="ref_433_31" HREF="terminal_interface-curses-forms__adb.htm#ref_433_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_434_31" HREF="terminal_interface-curses-forms__adb.htm#ref_433_16">Ch</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_433_16">Set_Field_Pad</a></span> (<span class="symbol"><a name="ref_433_31">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_434_31">Ch</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Field_Pad, "set_field_pad");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_433_16">Set_Field_Pad</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_468_33">Fld</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (Character'Pos (<A HREF="terminal_interface-curses-forms__ads.htm#ref_469_33">Pad</A>))));
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_468_14">Set_Pad_Character</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_444_14" HREF="terminal_interface-curses-forms__ads.htm#ref_474_14">Pad_Character</A></span> (<span class="symbol"><A NAME="ref_444_29" HREF="terminal_interface-curses-forms__ads.htm#ref_474_29">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_445_29" HREF="terminal_interface-curses-forms__ads.htm#ref_475_29">Pad</A></span> : <b>out</b> Character)
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms__adb.htm#ref_433_16">Set_Field_Pad</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_468_33">Fld</a>,
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (Character'Pos (<a href="terminal_interface-curses-forms__ads.htm#ref_469_33">Pad</a>))));
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_468_14">Set_Pad_Character</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_444_14" href="terminal_interface-curses-forms__ads.htm#ref_474_14">Pad_Character</a></span> (<span class="symbol"><a name="ref_444_29" href="terminal_interface-curses-forms__ads.htm#ref_474_29">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_445_29" href="terminal_interface-curses-forms__ads.htm#ref_475_29">Pad</a></span> : <b>out</b> Character)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_447_16">Field_Pad</A></span> (<span class="symbol"><A NAME="ref_447_27" HREF="terminal_interface-curses-forms__adb.htm#ref_447_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_447_16">Field_Pad</a></span> (<span class="symbol"><a name="ref_447_27">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Field_Pad, "field_pad");
<b>begin</b>
- <A HREF="terminal_interface-curses-forms__ads.htm#ref_475_29">Pad</A> := Character'Val (<A HREF="terminal_interface-curses-forms__adb.htm#ref_447_16">Field_Pad</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_474_29">Fld</A>));
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_474_14">Pad_Character</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | man page form_field_info.3x</EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_459_14" HREF="terminal_interface-curses-forms__ads.htm#ref_484_14">Info</A></span> (<span class="symbol"><A NAME="ref_459_20" HREF="terminal_interface-curses-forms__ads.htm#ref_484_20">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_460_20" HREF="terminal_interface-curses-forms__ads.htm#ref_485_20">Lines</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</A>;
- <span class="symbol"><A NAME="ref_461_20" HREF="terminal_interface-curses-forms__ads.htm#ref_486_20">Columns</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</A>;
- <span class="symbol"><A NAME="ref_462_20" HREF="terminal_interface-curses-forms__ads.htm#ref_487_20">First_Row</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_463_20" HREF="terminal_interface-curses-forms__ads.htm#ref_488_20">First_Column</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_464_20" HREF="terminal_interface-curses-forms__ads.htm#ref_489_20">Off_Screen</A></span> : <b>out</b> Natural;
- <span class="symbol"><A NAME="ref_465_20" HREF="terminal_interface-curses-forms__ads.htm#ref_490_20">Additional_Buffers</A></span> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A>)
+ <a href="terminal_interface-curses-forms__ads.htm#ref_475_29">Pad</a> := Character'Val (<a href="terminal_interface-curses-forms__adb.htm#ref_447_16">Field_Pad</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_474_29">Fld</a>));
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_474_14">Pad_Character</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | man page form_field_info.3x</em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_459_14" href="terminal_interface-curses-forms__ads.htm#ref_484_14">Info</a></span> (<span class="symbol"><a name="ref_459_20" href="terminal_interface-curses-forms__ads.htm#ref_484_20">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_460_20" href="terminal_interface-curses-forms__ads.htm#ref_485_20">Lines</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</a>;
+ <span class="symbol"><a name="ref_461_20" href="terminal_interface-curses-forms__ads.htm#ref_486_20">Columns</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</a>;
+ <span class="symbol"><a name="ref_462_20" href="terminal_interface-curses-forms__ads.htm#ref_487_20">First_Row</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_463_20" href="terminal_interface-curses-forms__ads.htm#ref_488_20">First_Column</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_464_20" href="terminal_interface-curses-forms__ads.htm#ref_489_20">Off_Screen</a></span> : <b>out</b> Natural;
+ <span class="symbol"><a name="ref_465_20" href="terminal_interface-curses-forms__ads.htm#ref_490_20">Additional_Buffers</a></span> : <b>out</b> <a href="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</a>)
<b>is</b>
- <b>type</b> <span class="symbol"><A NAME="ref_467_12">C_Int_Access</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <b>function</b> <span class="symbol"><A NAME="ref_468_16">Fld_Info</A></span> (<span class="symbol"><A NAME="ref_468_26" HREF="terminal_interface-curses-forms__adb.htm#ref_468_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_469_26" HREF="terminal_interface-curses-forms__adb.htm#ref_468_16">L</A></span>, <span class="symbol"><A NAME="ref_469_29" HREF="terminal_interface-curses-forms__adb.htm#ref_468_16">C</A></span>, <span class="symbol"><A NAME="ref_469_32" HREF="terminal_interface-curses-forms__adb.htm#ref_468_16">Fr</A></span>, <span class="symbol"><A NAME="ref_469_36" HREF="terminal_interface-curses-forms__adb.htm#ref_468_16">Fc</A></span>, <span class="symbol"><A NAME="ref_469_40" HREF="terminal_interface-curses-forms__adb.htm#ref_468_16">Os</A></span>, <span class="symbol"><A NAME="ref_469_44" HREF="terminal_interface-curses-forms__adb.htm#ref_468_16">Ab</A></span> : <A HREF="terminal_interface-curses-forms__adb.htm#ref_467_12">C_Int_Access</A>)
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>type</b> <span class="symbol"><a name="ref_467_12">C_Int_Access</a></span> <b>is</b> <b>access</b> <b>all</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <b>function</b> <span class="symbol"><a name="ref_468_16">Fld_Info</a></span> (<span class="symbol"><a name="ref_468_26">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_469_26">L</a></span>, <span class="symbol"><a name="ref_469_29">C</a></span>, <span class="symbol"><a name="ref_469_32">Fr</a></span>, <span class="symbol"><a name="ref_469_36">Fc</a></span>, <span class="symbol"><a name="ref_469_40">Os</a></span>, <span class="symbol"><a name="ref_469_44">Ab</a></span> : <a href="terminal_interface-curses-forms__adb.htm#ref_467_12">C_Int_Access</a>)
+ <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Fld_Info, "field_info");
- <span class="symbol"><A NAME="ref_473_7">L</A></span>, <span class="symbol"><A NAME="ref_473_10">C</A></span>, <span class="symbol"><A NAME="ref_473_13">Fr</A></span>, <span class="symbol"><A NAME="ref_473_17">Fc</A></span>, <span class="symbol"><A NAME="ref_473_21">Os</A></span>, <span class="symbol"><A NAME="ref_473_25">Ab</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <span class="symbol"><a name="ref_473_7">L</a></span>, <span class="symbol"><a name="ref_473_10">C</a></span>, <span class="symbol"><a name="ref_473_13">Fr</a></span>, <span class="symbol"><a name="ref_473_17">Fc</a></span>, <span class="symbol"><a name="ref_473_21">Os</a></span>, <span class="symbol"><a name="ref_473_25">Ab</a></span> : <b>aliased</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_468_16">Fld_Info</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_484_20">Fld</A>,
- <A HREF="terminal_interface-curses-forms__adb.htm#ref_473_7">L</A>'<b>Access</b>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_473_10">C</A>'<b>Access</b>,
- <A HREF="terminal_interface-curses-forms__adb.htm#ref_473_13">Fr</A>'<b>Access</b>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_473_17">Fc</A>'<b>Access</b>,
- <A HREF="terminal_interface-curses-forms__adb.htm#ref_473_21">Os</A>'<b>Access</b>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_473_25">Ab</A>'<b>Access</b>));
- <A HREF="terminal_interface-curses-forms__ads.htm#ref_485_20">Lines</A> := <A HREF="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_473_7">L</A>);
- <A HREF="terminal_interface-curses-forms__ads.htm#ref_486_20">Columns</A> := <A HREF="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_473_10">C</A>);
- <A HREF="terminal_interface-curses-forms__ads.htm#ref_487_20">First_Row</A> := <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_473_13">Fr</A>);
- <A HREF="terminal_interface-curses-forms__ads.htm#ref_488_20">First_Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_473_17">Fc</A>);
- <A HREF="terminal_interface-curses-forms__ads.htm#ref_489_20">Off_Screen</A> := Natural (<A HREF="terminal_interface-curses-forms__adb.htm#ref_473_21">Os</A>);
- <A HREF="terminal_interface-curses-forms__ads.htm#ref_490_20">Additional_Buffers</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_473_25">Ab</A>);
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_484_14">Info</A>;
-<span class="comment"><EM>-- |</EM></span>
-<span class="comment"><EM>-- |</EM></span>
-<span class="comment"><EM>-- |</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_489_14" HREF="terminal_interface-curses-forms__ads.htm#ref_495_14">Dynamic_Info</A></span> (<span class="symbol"><A NAME="ref_489_28" HREF="terminal_interface-curses-forms__ads.htm#ref_495_28">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_490_28" HREF="terminal_interface-curses-forms__ads.htm#ref_496_28">Lines</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</A>;
- <span class="symbol"><A NAME="ref_491_28" HREF="terminal_interface-curses-forms__ads.htm#ref_497_28">Columns</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</A>;
- <span class="symbol"><A NAME="ref_492_28" HREF="terminal_interface-curses-forms__ads.htm#ref_498_28">Max</A></span> : <b>out</b> Natural)
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms__adb.htm#ref_468_16">Fld_Info</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_484_20">Fld</a>,
+ <a href="terminal_interface-curses-forms__adb.htm#ref_473_7">L</a>'<b>Access</b>, <a href="terminal_interface-curses-forms__adb.htm#ref_473_10">C</a>'<b>Access</b>,
+ <a href="terminal_interface-curses-forms__adb.htm#ref_473_13">Fr</a>'<b>Access</b>, <a href="terminal_interface-curses-forms__adb.htm#ref_473_17">Fc</a>'<b>Access</b>,
+ <a href="terminal_interface-curses-forms__adb.htm#ref_473_21">Os</a>'<b>Access</b>, <a href="terminal_interface-curses-forms__adb.htm#ref_473_25">Ab</a>'<b>Access</b>));
+ <a href="terminal_interface-curses-forms__ads.htm#ref_485_20">Lines</a> := <a href="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</a> (<a href="terminal_interface-curses-forms__adb.htm#ref_473_7">L</a>);
+ <a href="terminal_interface-curses-forms__ads.htm#ref_486_20">Columns</a> := <a href="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</a> (<a href="terminal_interface-curses-forms__adb.htm#ref_473_10">C</a>);
+ <a href="terminal_interface-curses-forms__ads.htm#ref_487_20">First_Row</a> := <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a> (<a href="terminal_interface-curses-forms__adb.htm#ref_473_13">Fr</a>);
+ <a href="terminal_interface-curses-forms__ads.htm#ref_488_20">First_Column</a> := <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a> (<a href="terminal_interface-curses-forms__adb.htm#ref_473_17">Fc</a>);
+ <a href="terminal_interface-curses-forms__ads.htm#ref_489_20">Off_Screen</a> := Natural (<a href="terminal_interface-curses-forms__adb.htm#ref_473_21">Os</a>);
+ <a href="terminal_interface-curses-forms__ads.htm#ref_490_20">Additional_Buffers</a> := <a href="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</a> (<a href="terminal_interface-curses-forms__adb.htm#ref_473_25">Ab</a>);
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_484_14">Info</a>;
+<span class="comment"><em>-- |</em></span>
+<span class="comment"><em>-- |</em></span>
+<span class="comment"><em>-- |</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_489_14" href="terminal_interface-curses-forms__ads.htm#ref_495_14">Dynamic_Info</a></span> (<span class="symbol"><a name="ref_489_28" href="terminal_interface-curses-forms__ads.htm#ref_495_28">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_490_28" href="terminal_interface-curses-forms__ads.htm#ref_496_28">Lines</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</a>;
+ <span class="symbol"><a name="ref_491_28" href="terminal_interface-curses-forms__ads.htm#ref_497_28">Columns</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</a>;
+ <span class="symbol"><a name="ref_492_28" href="terminal_interface-curses-forms__ads.htm#ref_498_28">Max</a></span> : <b>out</b> Natural)
<b>is</b>
- <b>type</b> <span class="symbol"><A NAME="ref_494_12">C_Int_Access</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <b>function</b> <span class="symbol"><A NAME="ref_495_16">Dyn_Info</A></span> (<span class="symbol"><A NAME="ref_495_26" HREF="terminal_interface-curses-forms__adb.htm#ref_495_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>; <span class="symbol"><A NAME="ref_495_39" HREF="terminal_interface-curses-forms__adb.htm#ref_495_16">L</A></span>, <span class="symbol"><A NAME="ref_495_42" HREF="terminal_interface-curses-forms__adb.htm#ref_495_16">C</A></span>, <span class="symbol"><A NAME="ref_495_45" HREF="terminal_interface-curses-forms__adb.htm#ref_495_16">M</A></span> : <A HREF="terminal_interface-curses-forms__adb.htm#ref_494_12">C_Int_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>type</b> <span class="symbol"><a name="ref_494_12">C_Int_Access</a></span> <b>is</b> <b>access</b> <b>all</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <b>function</b> <span class="symbol"><a name="ref_495_16">Dyn_Info</a></span> (<span class="symbol"><a name="ref_495_26">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>; <span class="symbol"><a name="ref_495_39">L</a></span>, <span class="symbol"><a name="ref_495_42">C</a></span>, <span class="symbol"><a name="ref_495_45">M</a></span> : <a href="terminal_interface-curses-forms__adb.htm#ref_494_12">C_Int_Access</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Dyn_Info, "dynamic_field_info");
- <span class="symbol"><A NAME="ref_498_7">L</A></span>, <span class="symbol"><A NAME="ref_498_10">C</A></span>, <span class="symbol"><A NAME="ref_498_13">M</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <span class="symbol"><a name="ref_498_7">L</a></span>, <span class="symbol"><a name="ref_498_10">C</a></span>, <span class="symbol"><a name="ref_498_13">M</a></span> : <b>aliased</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_495_16">Dyn_Info</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_495_28">Fld</A>,
- <A HREF="terminal_interface-curses-forms__adb.htm#ref_498_7">L</A>'<b>Access</b>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_498_10">C</A>'<b>Access</b>,
- <A HREF="terminal_interface-curses-forms__adb.htm#ref_498_13">M</A>'<b>Access</b>));
- <A HREF="terminal_interface-curses-forms__ads.htm#ref_496_28">Lines</A> := <A HREF="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_498_7">L</A>);
- <A HREF="terminal_interface-curses-forms__ads.htm#ref_497_28">Columns</A> := <A HREF="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_498_10">C</A>);
- <A HREF="terminal_interface-curses-forms__ads.htm#ref_498_28">Max</A> := Natural (<A HREF="terminal_interface-curses-forms__adb.htm#ref_498_13">M</A>);
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_495_14">Dynamic_Info</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | man page form_win.3x</EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_514_14" HREF="terminal_interface-curses-forms__ads.htm#ref_507_14">Set_Window</A></span> (<span class="symbol"><A NAME="ref_514_26" HREF="terminal_interface-curses-forms__ads.htm#ref_507_26">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_515_26" HREF="terminal_interface-curses-forms__ads.htm#ref_508_26">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>)
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms__adb.htm#ref_495_16">Dyn_Info</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_495_28">Fld</a>,
+ <a href="terminal_interface-curses-forms__adb.htm#ref_498_7">L</a>'<b>Access</b>, <a href="terminal_interface-curses-forms__adb.htm#ref_498_10">C</a>'<b>Access</b>,
+ <a href="terminal_interface-curses-forms__adb.htm#ref_498_13">M</a>'<b>Access</b>));
+ <a href="terminal_interface-curses-forms__ads.htm#ref_496_28">Lines</a> := <a href="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</a> (<a href="terminal_interface-curses-forms__adb.htm#ref_498_7">L</a>);
+ <a href="terminal_interface-curses-forms__ads.htm#ref_497_28">Columns</a> := <a href="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</a> (<a href="terminal_interface-curses-forms__adb.htm#ref_498_10">C</a>);
+ <a href="terminal_interface-curses-forms__ads.htm#ref_498_28">Max</a> := Natural (<a href="terminal_interface-curses-forms__adb.htm#ref_498_13">M</a>);
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_495_14">Dynamic_Info</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | man page form_win.3x</em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_514_14" href="terminal_interface-curses-forms__ads.htm#ref_507_14">Set_Window</a></span> (<span class="symbol"><a name="ref_514_26" href="terminal_interface-curses-forms__ads.htm#ref_507_26">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_515_26" href="terminal_interface-curses-forms__ads.htm#ref_508_26">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_517_16">Set_Form_Win</A></span> (<span class="symbol"><A NAME="ref_517_30" HREF="terminal_interface-curses-forms__adb.htm#ref_517_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_518_30" HREF="terminal_interface-curses-forms__adb.htm#ref_517_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_517_16">Set_Form_Win</a></span> (<span class="symbol"><a name="ref_517_30">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_518_30">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Form_Win, "set_form_win");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_517_16">Set_Form_Win</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_507_26">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_508_26">Win</A>));
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_507_14">Set_Window</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_527_13" HREF="terminal_interface-curses-forms__ads.htm#ref_513_13">Get_Window</A></span> (<span class="symbol"><A NAME="ref_527_25" HREF="terminal_interface-curses-forms__ads.htm#ref_513_25">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms__adb.htm#ref_517_16">Set_Form_Win</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_507_26">Frm</a>, <a href="terminal_interface-curses-forms__ads.htm#ref_508_26">Win</a>));
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_507_14">Set_Window</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_527_13" href="terminal_interface-curses-forms__ads.htm#ref_513_13">Get_Window</a></span> (<span class="symbol"><a name="ref_527_25" href="terminal_interface-curses-forms__ads.htm#ref_513_25">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_529_16">Form_Win</A></span> (<span class="symbol"><A NAME="ref_529_26" HREF="terminal_interface-curses-forms__adb.htm#ref_529_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
+ <b>function</b> <span class="symbol"><a name="ref_529_16">Form_Win</a></span> (<span class="symbol"><a name="ref_529_26">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
<b>pragma</b> Import (C, Form_Win, "form_win");
- <span class="symbol"><A NAME="ref_532_7">W</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_529_16">Form_Win</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_513_25">Frm</A>);
+ <span class="symbol"><a name="ref_532_7">W</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses-forms__adb.htm#ref_529_16">Form_Win</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_513_25">Frm</a>);
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_532_7">W</A>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_513_13">Get_Window</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_539_14" HREF="terminal_interface-curses-forms__ads.htm#ref_518_14">Set_Sub_Window</A></span> (<span class="symbol"><A NAME="ref_539_30" HREF="terminal_interface-curses-forms__ads.htm#ref_518_30">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_540_30" HREF="terminal_interface-curses-forms__ads.htm#ref_519_30">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>)
+ <b>return</b> <a href="terminal_interface-curses-forms__adb.htm#ref_532_7">W</a>;
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_513_13">Get_Window</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_539_14" href="terminal_interface-curses-forms__ads.htm#ref_518_14">Set_Sub_Window</a></span> (<span class="symbol"><a name="ref_539_30" href="terminal_interface-curses-forms__ads.htm#ref_518_30">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_540_30" href="terminal_interface-curses-forms__ads.htm#ref_519_30">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_542_16">Set_Form_Sub</A></span> (<span class="symbol"><A NAME="ref_542_30" HREF="terminal_interface-curses-forms__adb.htm#ref_542_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_543_30" HREF="terminal_interface-curses-forms__adb.htm#ref_542_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_542_16">Set_Form_Sub</a></span> (<span class="symbol"><a name="ref_542_30">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_543_30">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Form_Sub, "set_form_sub");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_542_16">Set_Form_Sub</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_518_30">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_519_30">Win</A>));
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_518_14">Set_Sub_Window</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_552_13" HREF="terminal_interface-curses-forms__ads.htm#ref_524_13">Get_Sub_Window</A></span> (<span class="symbol"><A NAME="ref_552_29" HREF="terminal_interface-curses-forms__ads.htm#ref_524_29">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms__adb.htm#ref_542_16">Set_Form_Sub</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_518_30">Frm</a>, <a href="terminal_interface-curses-forms__ads.htm#ref_519_30">Win</a>));
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_518_14">Set_Sub_Window</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_552_13" href="terminal_interface-curses-forms__ads.htm#ref_524_13">Get_Sub_Window</a></span> (<span class="symbol"><a name="ref_552_29" href="terminal_interface-curses-forms__ads.htm#ref_524_29">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_554_16">Form_Sub</A></span> (<span class="symbol"><A NAME="ref_554_26" HREF="terminal_interface-curses-forms__adb.htm#ref_554_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
+ <b>function</b> <span class="symbol"><a name="ref_554_16">Form_Sub</a></span> (<span class="symbol"><a name="ref_554_26">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
<b>pragma</b> Import (C, Form_Sub, "form_sub");
- <span class="symbol"><A NAME="ref_557_7">W</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_554_16">Form_Sub</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_524_29">Frm</A>);
+ <span class="symbol"><a name="ref_557_7">W</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses-forms__adb.htm#ref_554_16">Form_Sub</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_524_29">Frm</a>);
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_557_7">W</A>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_524_13">Get_Sub_Window</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_564_14" HREF="terminal_interface-curses-forms__ads.htm#ref_529_14">Scale</A></span> (<span class="symbol"><A NAME="ref_564_21" HREF="terminal_interface-curses-forms__ads.htm#ref_529_21">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_565_21" HREF="terminal_interface-curses-forms__ads.htm#ref_530_21">Lines</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</A>;
- <span class="symbol"><A NAME="ref_566_21" HREF="terminal_interface-curses-forms__ads.htm#ref_531_21">Columns</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</A>)
+ <b>return</b> <a href="terminal_interface-curses-forms__adb.htm#ref_557_7">W</a>;
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_524_13">Get_Sub_Window</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_564_14" href="terminal_interface-curses-forms__ads.htm#ref_529_14">Scale</a></span> (<span class="symbol"><a name="ref_564_21" href="terminal_interface-curses-forms__ads.htm#ref_529_21">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_565_21" href="terminal_interface-curses-forms__ads.htm#ref_530_21">Lines</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</a>;
+ <span class="symbol"><a name="ref_566_21" href="terminal_interface-curses-forms__ads.htm#ref_531_21">Columns</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</a>)
<b>is</b>
- <b>type</b> <span class="symbol"><A NAME="ref_568_12">C_Int_Access</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <b>function</b> <span class="symbol"><A NAME="ref_569_16">M_Scale</A></span> (<span class="symbol"><A NAME="ref_569_25" HREF="terminal_interface-curses-forms__adb.htm#ref_569_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>; <span class="symbol"><A NAME="ref_569_37" HREF="terminal_interface-curses-forms__adb.htm#ref_569_16">Yp</A></span>, <span class="symbol"><A NAME="ref_569_41" HREF="terminal_interface-curses-forms__adb.htm#ref_569_16">Xp</A></span> : <A HREF="terminal_interface-curses-forms__adb.htm#ref_568_12">C_Int_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>type</b> <span class="symbol"><a name="ref_568_12">C_Int_Access</a></span> <b>is</b> <b>access</b> <b>all</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <b>function</b> <span class="symbol"><a name="ref_569_16">M_Scale</a></span> (<span class="symbol"><a name="ref_569_25">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>; <span class="symbol"><a name="ref_569_37">Yp</a></span>, <span class="symbol"><a name="ref_569_41">Xp</a></span> : <a href="terminal_interface-curses-forms__adb.htm#ref_568_12">C_Int_Access</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, M_Scale, "scale_form");
- <span class="symbol"><A NAME="ref_572_7">X</A></span>, <span class="symbol"><A NAME="ref_572_10">Y</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <span class="symbol"><a name="ref_572_7">X</a></span>, <span class="symbol"><a name="ref_572_10">Y</a></span> : <b>aliased</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_569_16">M_Scale</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_529_21">Frm</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_572_10">Y</A>'<b>Access</b>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_572_7">X</A>'<b>Access</b>));
- <A HREF="terminal_interface-curses-forms__ads.htm#ref_530_21">Lines</A> := <A HREF="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_572_10">Y</A>);
- <A HREF="terminal_interface-curses-forms__ads.htm#ref_531_21">Columns</A> := <A HREF="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_572_7">X</A>);
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_529_14">Scale</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | man page menu_hook.3x</EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_585_14" HREF="terminal_interface-curses-forms__ads.htm#ref_543_14">Set_Field_Init_Hook</A></span> (<span class="symbol"><A NAME="ref_585_35" HREF="terminal_interface-curses-forms__ads.htm#ref_543_35">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_586_35" HREF="terminal_interface-curses-forms__ads.htm#ref_544_35">Proc</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</A>)
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms__adb.htm#ref_569_16">M_Scale</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_529_21">Frm</a>, <a href="terminal_interface-curses-forms__adb.htm#ref_572_10">Y</a>'<b>Access</b>, <a href="terminal_interface-curses-forms__adb.htm#ref_572_7">X</a>'<b>Access</b>));
+ <a href="terminal_interface-curses-forms__ads.htm#ref_530_21">Lines</a> := <a href="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</a> (<a href="terminal_interface-curses-forms__adb.htm#ref_572_10">Y</a>);
+ <a href="terminal_interface-curses-forms__ads.htm#ref_531_21">Columns</a> := <a href="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</a> (<a href="terminal_interface-curses-forms__adb.htm#ref_572_7">X</a>);
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_529_14">Scale</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | man page menu_hook.3x</em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_585_14" href="terminal_interface-curses-forms__ads.htm#ref_543_14">Set_Field_Init_Hook</a></span> (<span class="symbol"><a name="ref_585_35" href="terminal_interface-curses-forms__ads.htm#ref_543_35">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_586_35" href="terminal_interface-curses-forms__ads.htm#ref_544_35">Proc</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_588_16">Set_Field_Init</A></span> (<span class="symbol"><A NAME="ref_588_32" HREF="terminal_interface-curses-forms__adb.htm#ref_588_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_589_32" HREF="terminal_interface-curses-forms__adb.htm#ref_588_16">Proc</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_588_16">Set_Field_Init</a></span> (<span class="symbol"><a name="ref_588_32">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_589_32">Proc</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Field_Init, "set_field_init");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_588_16">Set_Field_Init</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_543_35">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_544_35">Proc</A>));
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_543_14">Set_Field_Init_Hook</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_598_14" HREF="terminal_interface-curses-forms__ads.htm#ref_549_14">Set_Field_Term_Hook</A></span> (<span class="symbol"><A NAME="ref_598_35" HREF="terminal_interface-curses-forms__ads.htm#ref_549_35">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_599_35" HREF="terminal_interface-curses-forms__ads.htm#ref_550_35">Proc</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</A>)
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms__adb.htm#ref_588_16">Set_Field_Init</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_543_35">Frm</a>, <a href="terminal_interface-curses-forms__ads.htm#ref_544_35">Proc</a>));
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_543_14">Set_Field_Init_Hook</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_598_14" href="terminal_interface-curses-forms__ads.htm#ref_549_14">Set_Field_Term_Hook</a></span> (<span class="symbol"><a name="ref_598_35" href="terminal_interface-curses-forms__ads.htm#ref_549_35">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_599_35" href="terminal_interface-curses-forms__ads.htm#ref_550_35">Proc</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_601_16">Set_Field_Term</A></span> (<span class="symbol"><A NAME="ref_601_32" HREF="terminal_interface-curses-forms__adb.htm#ref_601_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_602_32" HREF="terminal_interface-curses-forms__adb.htm#ref_601_16">Proc</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_601_16">Set_Field_Term</a></span> (<span class="symbol"><a name="ref_601_32">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_602_32">Proc</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Field_Term, "set_field_term");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_601_16">Set_Field_Term</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_549_35">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_550_35">Proc</A>));
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_549_14">Set_Field_Term_Hook</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_611_14" HREF="terminal_interface-curses-forms__ads.htm#ref_555_14">Set_Form_Init_Hook</A></span> (<span class="symbol"><A NAME="ref_611_34" HREF="terminal_interface-curses-forms__ads.htm#ref_555_34">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_612_34" HREF="terminal_interface-curses-forms__ads.htm#ref_556_34">Proc</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</A>)
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms__adb.htm#ref_601_16">Set_Field_Term</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_549_35">Frm</a>, <a href="terminal_interface-curses-forms__ads.htm#ref_550_35">Proc</a>));
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_549_14">Set_Field_Term_Hook</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_611_14" href="terminal_interface-curses-forms__ads.htm#ref_555_14">Set_Form_Init_Hook</a></span> (<span class="symbol"><a name="ref_611_34" href="terminal_interface-curses-forms__ads.htm#ref_555_34">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_612_34" href="terminal_interface-curses-forms__ads.htm#ref_556_34">Proc</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_614_16">Set_Form_Init</A></span> (<span class="symbol"><A NAME="ref_614_31" HREF="terminal_interface-curses-forms__adb.htm#ref_614_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_615_31" HREF="terminal_interface-curses-forms__adb.htm#ref_614_16">Proc</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_614_16">Set_Form_Init</a></span> (<span class="symbol"><a name="ref_614_31">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_615_31">Proc</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Form_Init, "set_form_init");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_614_16">Set_Form_Init</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_555_34">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_556_34">Proc</A>));
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_555_14">Set_Form_Init_Hook</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_624_14" HREF="terminal_interface-curses-forms__ads.htm#ref_561_14">Set_Form_Term_Hook</A></span> (<span class="symbol"><A NAME="ref_624_34" HREF="terminal_interface-curses-forms__ads.htm#ref_561_34">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_625_34" HREF="terminal_interface-curses-forms__ads.htm#ref_562_34">Proc</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</A>)
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms__adb.htm#ref_614_16">Set_Form_Init</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_555_34">Frm</a>, <a href="terminal_interface-curses-forms__ads.htm#ref_556_34">Proc</a>));
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_555_14">Set_Form_Init_Hook</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_624_14" href="terminal_interface-curses-forms__ads.htm#ref_561_14">Set_Form_Term_Hook</a></span> (<span class="symbol"><a name="ref_624_34" href="terminal_interface-curses-forms__ads.htm#ref_561_34">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_625_34" href="terminal_interface-curses-forms__ads.htm#ref_562_34">Proc</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_627_16">Set_Form_Term</A></span> (<span class="symbol"><A NAME="ref_627_31" HREF="terminal_interface-curses-forms__adb.htm#ref_627_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_628_31" HREF="terminal_interface-curses-forms__adb.htm#ref_627_16">Proc</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_627_16">Set_Form_Term</a></span> (<span class="symbol"><a name="ref_627_31">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_628_31">Proc</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Form_Term, "set_form_term");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_627_16">Set_Form_Term</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_561_34">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_562_34">Proc</A>));
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_561_14">Set_Form_Term_Hook</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | man page form_fields.3x</EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_641_14" HREF="terminal_interface-curses-forms__ads.htm#ref_591_14">Redefine</A></span> (<span class="symbol"><A NAME="ref_641_24" HREF="terminal_interface-curses-forms__ads.htm#ref_591_24">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_642_24" HREF="terminal_interface-curses-forms__ads.htm#ref_592_24">Flds</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_136_9">Field_Array_Access</A>)
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms__adb.htm#ref_627_16">Set_Form_Term</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_561_34">Frm</a>, <a href="terminal_interface-curses-forms__ads.htm#ref_562_34">Proc</a>));
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_561_14">Set_Form_Term_Hook</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | man page form_fields.3x</em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_641_14" href="terminal_interface-curses-forms__ads.htm#ref_591_14">Redefine</a></span> (<span class="symbol"><a name="ref_641_24" href="terminal_interface-curses-forms__ads.htm#ref_591_24">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_642_24" href="terminal_interface-curses-forms__ads.htm#ref_592_24">Flds</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_136_9">Field_Array_Access</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_644_16">Set_Frm_Fields</A></span> (<span class="symbol"><A NAME="ref_644_32" HREF="terminal_interface-curses-forms__adb.htm#ref_644_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_645_32" HREF="terminal_interface-curses-forms__adb.htm#ref_644_16">Items</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_644_16">Set_Frm_Fields</a></span> (<span class="symbol"><a name="ref_644_32">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_645_32">Items</a></span> : System.Address) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Frm_Fields, "set_form_fields");
<b>begin</b>
- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms__ads.htm#ref_592_24">Flds</A>.<b>all</b> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_592_24">Flds</A>'Last) = <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_4">Null_Field</A>);
- <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_592_24">Flds</A>.<b>all</b> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_592_24">Flds</A>'Last) /= <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_4">Null_Field</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</A>;
+ <b>pragma</b> Assert (<a href="terminal_interface-curses-forms__ads.htm#ref_592_24">Flds</a>.<b>all</b> (<a href="terminal_interface-curses-forms__ads.htm#ref_592_24">Flds</a>'Last) = <a href="terminal_interface-curses-forms__ads.htm#ref_55_4">Null_Field</a>);
+ <b>if</b> <a href="terminal_interface-curses-forms__ads.htm#ref_592_24">Flds</a>.<b>all</b> (<a href="terminal_interface-curses-forms__ads.htm#ref_592_24">Flds</a>'Last) /= <a href="terminal_interface-curses-forms__ads.htm#ref_55_4">Null_Field</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</a>;
<b>else</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_644_16">Set_Frm_Fields</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_591_24">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_592_24">Flds</A>.<b>all</b> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_592_24">Flds</A>'First)'Address));
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms__adb.htm#ref_644_16">Set_Frm_Fields</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_591_24">Frm</a>, <a href="terminal_interface-curses-forms__ads.htm#ref_592_24">Flds</a>.<b>all</b> (<a href="terminal_interface-curses-forms__ads.htm#ref_592_24">Flds</a>'First)'Address));
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_591_14">Redefine</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_659_13" HREF="terminal_interface-curses-forms__ads.htm#ref_603_13">Fields</A></span> (<span class="symbol"><A NAME="ref_659_21" HREF="terminal_interface-curses-forms__ads.htm#ref_603_21">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_660_21" HREF="terminal_interface-curses-forms__ads.htm#ref_604_21">Index</A></span> : Positive) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_591_14">Redefine</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_659_13" href="terminal_interface-curses-forms__ads.htm#ref_603_13">Fields</a></span> (<span class="symbol"><a name="ref_659_21" href="terminal_interface-curses-forms__ads.htm#ref_603_21">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_660_21" href="terminal_interface-curses-forms__ads.htm#ref_604_21">Index</a></span> : Positive) <b>return</b> <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>
<b>is</b>
<b>use</b> F_Array;
- <b>function</b> C_Fields (<span class="symbol"><A NAME="ref_664_26">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>) <b>return</b> Pointer;
+ <b>function</b> C_Fields (<span class="symbol"><a name="ref_664_26">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>) <b>return</b> Pointer;
<b>pragma</b> Import (C, C_Fields, "form_fields");
- P : Pointer := C_Fields (<A HREF="terminal_interface-curses-forms__ads.htm#ref_603_21">Frm</A>);
+ P : Pointer := C_Fields (<a href="terminal_interface-curses-forms__ads.htm#ref_603_21">Frm</a>);
<b>begin</b>
- <b>if</b> P = <b>null</b> <b>or</b> <b>else</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_604_21">Index</A> &gt; <A HREF="terminal_interface-curses-forms__ads.htm#ref_609_13">Field_Count</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_603_21">Frm</A>) <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</A>;
+ <b>if</b> P = <b>null</b> <b>or</b> <b>else</b> <a href="terminal_interface-curses-forms__ads.htm#ref_604_21">Index</a> &gt; <a href="terminal_interface-curses-forms__ads.htm#ref_609_13">Field_Count</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_603_21">Frm</a>) <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</a>;
<b>else</b>
- P := P + ptrdiff_t (<A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_604_21">Index</A>) - 1);
+ P := P + ptrdiff_t (<a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_604_21">Index</a>) - 1);
<b>return</b> P.<b>all</b>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_603_13">Fields</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_679_13" HREF="terminal_interface-curses-forms__ads.htm#ref_609_13">Field_Count</A></span> (<span class="symbol"><A NAME="ref_679_26" HREF="terminal_interface-curses-forms__ads.htm#ref_609_26">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>) <b>return</b> Natural
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_603_13">Fields</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_679_13" href="terminal_interface-curses-forms__ads.htm#ref_609_13">Field_Count</a></span> (<span class="symbol"><a name="ref_679_26" href="terminal_interface-curses-forms__ads.htm#ref_609_26">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>) <b>return</b> Natural
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_681_16">Count</A></span> (<span class="symbol"><A NAME="ref_681_23" HREF="terminal_interface-curses-forms__adb.htm#ref_681_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_681_16">Count</a></span> (<span class="symbol"><a name="ref_681_23">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Count, "field_count");
<b>begin</b>
- <b>return</b> Natural (<A HREF="terminal_interface-curses-forms__adb.htm#ref_681_16">Count</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_609_26">Frm</A>));
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_609_13">Field_Count</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_689_14" HREF="terminal_interface-curses-forms__ads.htm#ref_614_14">Move</A></span> (<span class="symbol"><A NAME="ref_689_20" HREF="terminal_interface-curses-forms__ads.htm#ref_614_20">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_690_20" HREF="terminal_interface-curses-forms__ads.htm#ref_615_20">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_691_20" HREF="terminal_interface-curses-forms__ads.htm#ref_616_20">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>)
+ <b>return</b> Natural (<a href="terminal_interface-curses-forms__adb.htm#ref_681_16">Count</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_609_26">Frm</a>));
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_609_13">Field_Count</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_689_14" href="terminal_interface-curses-forms__ads.htm#ref_614_14">Move</a></span> (<span class="symbol"><a name="ref_689_20" href="terminal_interface-curses-forms__ads.htm#ref_614_20">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_690_20" href="terminal_interface-curses-forms__ads.htm#ref_615_20">Line</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_691_20" href="terminal_interface-curses-forms__ads.htm#ref_616_20">Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_693_16">Move</A></span> (<span class="symbol"><A NAME="ref_693_22" HREF="terminal_interface-curses-forms__adb.htm#ref_693_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>; <span class="symbol"><A NAME="ref_693_35" HREF="terminal_interface-curses-forms__adb.htm#ref_693_16">L</A></span>, <span class="symbol"><A NAME="ref_693_38" HREF="terminal_interface-curses-forms__adb.htm#ref_693_16">C</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_693_16">Move</a></span> (<span class="symbol"><a name="ref_693_22">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>; <span class="symbol"><a name="ref_693_35">L</a></span>, <span class="symbol"><a name="ref_693_38">C</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Move, "move_field");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_693_16">Move</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_614_20">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_615_20">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_616_20">Column</A>)));
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_614_14">Move</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | man page form_new.3x</EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_706_13" HREF="terminal_interface-curses-forms__ads.htm#ref_625_13">Create</A></span> (<span class="symbol"><A NAME="ref_706_21" HREF="terminal_interface-curses-forms__ads.htm#ref_625_21">Fields</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_136_9">Field_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms__adb.htm#ref_693_16">Move</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_614_20">Fld</a>, <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_615_20">Line</a>), <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_616_20">Column</a>)));
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_614_14">Move</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | man page form_new.3x</em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_706_13" href="terminal_interface-curses-forms__ads.htm#ref_625_13">Create</a></span> (<span class="symbol"><a name="ref_706_21" href="terminal_interface-curses-forms__ads.htm#ref_625_21">Fields</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_136_9">Field_Array_Access</a>) <b>return</b> <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_708_16">NewForm</A></span> (<span class="symbol"><A NAME="ref_708_25" HREF="terminal_interface-curses-forms__adb.htm#ref_708_16">Fields</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
+ <b>function</b> <span class="symbol"><a name="ref_708_16">NewForm</a></span> (<span class="symbol"><a name="ref_708_25">Fields</a></span> : System.Address) <b>return</b> <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
<b>pragma</b> Import (C, NewForm, "new_form");
- <span class="symbol"><A NAME="ref_711_7">M</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
+ <span class="symbol"><a name="ref_711_7">M</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
<b>begin</b>
- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms__ads.htm#ref_625_21">Fields</A>.<b>all</b> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_625_21">Fields</A>'Last) = <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_4">Null_Field</A>);
- <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_625_21">Fields</A>.<b>all</b> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_625_21">Fields</A>'Last) /= <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_4">Null_Field</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</A>;
+ <b>pragma</b> Assert (<a href="terminal_interface-curses-forms__ads.htm#ref_625_21">Fields</a>.<b>all</b> (<a href="terminal_interface-curses-forms__ads.htm#ref_625_21">Fields</a>'Last) = <a href="terminal_interface-curses-forms__ads.htm#ref_55_4">Null_Field</a>);
+ <b>if</b> <a href="terminal_interface-curses-forms__ads.htm#ref_625_21">Fields</a>.<b>all</b> (<a href="terminal_interface-curses-forms__ads.htm#ref_625_21">Fields</a>'Last) /= <a href="terminal_interface-curses-forms__ads.htm#ref_55_4">Null_Field</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</a>;
<b>else</b>
- <A HREF="terminal_interface-curses-forms__adb.htm#ref_711_7">M</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_708_16">NewForm</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_625_21">Fields</A>.<b>all</b> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_625_21">Fields</A>'First)'Address);
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_711_7">M</A> = <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_4">Null_Form</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</A>;
+ <a href="terminal_interface-curses-forms__adb.htm#ref_711_7">M</a> := <a href="terminal_interface-curses-forms__adb.htm#ref_708_16">NewForm</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_625_21">Fields</a>.<b>all</b> (<a href="terminal_interface-curses-forms__ads.htm#ref_625_21">Fields</a>'First)'Address);
+ <b>if</b> <a href="terminal_interface-curses-forms__adb.htm#ref_711_7">M</a> = <a href="terminal_interface-curses-forms__ads.htm#ref_56_4">Null_Form</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</a>;
<b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_711_7">M</A>;
+ <b>return</b> <a href="terminal_interface-curses-forms__adb.htm#ref_711_7">M</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_625_13">Create</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_727_14" HREF="terminal_interface-curses-forms__ads.htm#ref_636_14">Delete</A></span> (<span class="symbol"><A NAME="ref_727_22" HREF="terminal_interface-curses-forms__ads.htm#ref_636_22">Frm</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>)
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_625_13">Create</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_727_14" href="terminal_interface-curses-forms__ads.htm#ref_636_14">Delete</a></span> (<span class="symbol"><a name="ref_727_22" href="terminal_interface-curses-forms__ads.htm#ref_636_22">Frm</a></span> : <b>in</b> <b>out</b> <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_729_16">Free</A></span> (<span class="symbol"><A NAME="ref_729_22" HREF="terminal_interface-curses-forms__adb.htm#ref_729_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_729_16">Free</a></span> (<span class="symbol"><a name="ref_729_22">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Free, "free_form");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_729_16">Free</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_636_22">Frm</A>));
- <A HREF="terminal_interface-curses-forms__ads.htm#ref_636_22">Frm</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_4">Null_Form</A>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_636_14">Delete</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | man page form_opts.3x</EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_743_14" HREF="terminal_interface-curses-forms__ads.htm#ref_646_14">Set_Options</A></span> (<span class="symbol"><A NAME="ref_743_27" HREF="terminal_interface-curses-forms__ads.htm#ref_646_27">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_744_27" HREF="terminal_interface-curses-forms__ads.htm#ref_647_27">Options</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A>)
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms__adb.htm#ref_729_16">Free</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_636_22">Frm</a>));
+ <a href="terminal_interface-curses-forms__ads.htm#ref_636_22">Frm</a> := <a href="terminal_interface-curses-forms__ads.htm#ref_56_4">Null_Form</a>;
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_636_14">Delete</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | man page form_opts.3x</em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_743_14" href="terminal_interface-curses-forms__ads.htm#ref_646_14">Set_Options</a></span> (<span class="symbol"><a name="ref_743_27" href="terminal_interface-curses-forms__ads.htm#ref_646_27">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_744_27" href="terminal_interface-curses-forms__ads.htm#ref_647_27">Options</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_746_16">Set_Form_Opts</A></span> (<span class="symbol"><A NAME="ref_746_31" HREF="terminal_interface-curses-forms__adb.htm#ref_746_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_747_31" HREF="terminal_interface-curses-forms__adb.htm#ref_746_16">Opt</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_746_16">Set_Form_Opts</a></span> (<span class="symbol"><a name="ref_746_31">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_747_31">Opt</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Form_Opts, "set_form_opts");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_746_16">Set_Form_Opts</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_646_27">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_647_27">Options</A>));
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_646_14">Set_Options</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_756_14" HREF="terminal_interface-curses-forms__ads.htm#ref_652_14">Switch_Options</A></span> (<span class="symbol"><A NAME="ref_756_30" HREF="terminal_interface-curses-forms__ads.htm#ref_652_30">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_757_30" HREF="terminal_interface-curses-forms__ads.htm#ref_653_30">Options</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A>;
- <span class="symbol"><A NAME="ref_758_30" HREF="terminal_interface-curses-forms__ads.htm#ref_654_30">On</A></span> : Boolean := True)
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms__adb.htm#ref_746_16">Set_Form_Opts</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_646_27">Frm</a>, <a href="terminal_interface-curses-forms__ads.htm#ref_647_27">Options</a>));
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_646_14">Set_Options</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_756_14" href="terminal_interface-curses-forms__ads.htm#ref_652_14">Switch_Options</a></span> (<span class="symbol"><a name="ref_756_30" href="terminal_interface-curses-forms__ads.htm#ref_652_30">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_757_30" href="terminal_interface-curses-forms__ads.htm#ref_653_30">Options</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</a>;
+ <span class="symbol"><a name="ref_758_30" href="terminal_interface-curses-forms__ads.htm#ref_654_30">On</a></span> : Boolean := True)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_760_16">Form_Opts_On</A></span> (<span class="symbol"><A NAME="ref_760_30" HREF="terminal_interface-curses-forms__adb.htm#ref_760_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_761_30" HREF="terminal_interface-curses-forms__adb.htm#ref_760_16">Opt</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_760_16">Form_Opts_On</a></span> (<span class="symbol"><a name="ref_760_30">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_761_30">Opt</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Form_Opts_On, "form_opts_on");
- <b>function</b> <span class="symbol"><A NAME="ref_763_16">Form_Opts_Off</A></span> (<span class="symbol"><A NAME="ref_763_31" HREF="terminal_interface-curses-forms__adb.htm#ref_763_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_764_31" HREF="terminal_interface-curses-forms__adb.htm#ref_763_16">Opt</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_763_16">Form_Opts_Off</a></span> (<span class="symbol"><a name="ref_763_31">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_764_31">Opt</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Form_Opts_Off, "form_opts_off");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_654_30">On</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_760_16">Form_Opts_On</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_652_30">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_653_30">Options</A>));
+ <b>if</b> <a href="terminal_interface-curses-forms__ads.htm#ref_654_30">On</a> <b>then</b>
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms__adb.htm#ref_760_16">Form_Opts_On</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_652_30">Frm</a>, <a href="terminal_interface-curses-forms__ads.htm#ref_653_30">Options</a>));
<b>else</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_763_16">Form_Opts_Off</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_652_30">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_653_30">Options</A>));
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms__adb.htm#ref_763_16">Form_Opts_Off</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_652_30">Frm</a>, <a href="terminal_interface-curses-forms__ads.htm#ref_653_30">Options</a>));
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_652_14">Switch_Options</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_777_14" HREF="terminal_interface-curses-forms__ads.htm#ref_660_14">Get_Options</A></span> (<span class="symbol"><A NAME="ref_777_27" HREF="terminal_interface-curses-forms__ads.htm#ref_660_27">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_778_27" HREF="terminal_interface-curses-forms__ads.htm#ref_661_27">Options</A></span> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A>)
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_652_14">Switch_Options</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_777_14" href="terminal_interface-curses-forms__ads.htm#ref_660_14">Get_Options</a></span> (<span class="symbol"><a name="ref_777_27" href="terminal_interface-curses-forms__ads.htm#ref_660_27">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_778_27" href="terminal_interface-curses-forms__ads.htm#ref_661_27">Options</a></span> : <b>out</b> <a href="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_780_16">Form_Opts</A></span> (<span class="symbol"><A NAME="ref_780_27" HREF="terminal_interface-curses-forms__adb.htm#ref_780_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A>;
+ <b>function</b> <span class="symbol"><a name="ref_780_16">Form_Opts</a></span> (<span class="symbol"><a name="ref_780_27">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>) <b>return</b> <a href="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</a>;
<b>pragma</b> Import (C, Form_Opts, "form_opts");
<b>begin</b>
- <A HREF="terminal_interface-curses-forms__ads.htm#ref_661_27">Options</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_780_16">Form_Opts</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_660_27">Frm</A>);
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_660_14">Get_Options</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_789_13" HREF="terminal_interface-curses-forms__ads.htm#ref_665_13">Get_Options</A></span> (<span class="symbol"><A NAME="ref_789_26" HREF="terminal_interface-curses-forms__ads.htm#ref_665_26">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_4">Null_Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A>
+ <a href="terminal_interface-curses-forms__ads.htm#ref_661_27">Options</a> := <a href="terminal_interface-curses-forms__adb.htm#ref_780_16">Form_Opts</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_660_27">Frm</a>);
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_660_14">Get_Options</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_789_13" href="terminal_interface-curses-forms__ads.htm#ref_665_13">Get_Options</a></span> (<span class="symbol"><a name="ref_789_26" href="terminal_interface-curses-forms__ads.htm#ref_665_26">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a> := <a href="terminal_interface-curses-forms__ads.htm#ref_56_4">Null_Form</a>) <b>return</b> <a href="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</a>
<b>is</b>
- <span class="symbol"><A NAME="ref_791_7">Fos</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A>;
+ <span class="symbol"><a name="ref_791_7">Fos</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</a>;
<b>begin</b>
- <A HREF="terminal_interface-curses-forms__ads.htm#ref_660_14">Get_Options</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_665_26">Frm</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_791_7">Fos</A>);
- <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_791_7">Fos</A>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_665_13">Get_Options</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | man page form_post.3x</EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_803_14" HREF="terminal_interface-curses-forms__ads.htm#ref_674_14">Post</A></span> (<span class="symbol"><A NAME="ref_803_20" HREF="terminal_interface-curses-forms__ads.htm#ref_674_20">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_804_20" HREF="terminal_interface-curses-forms__ads.htm#ref_675_20">Post</A></span> : Boolean := True)
+ <a href="terminal_interface-curses-forms__ads.htm#ref_660_14">Get_Options</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_665_26">Frm</a>, <a href="terminal_interface-curses-forms__adb.htm#ref_791_7">Fos</a>);
+ <b>return</b> <a href="terminal_interface-curses-forms__adb.htm#ref_791_7">Fos</a>;
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_665_13">Get_Options</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | man page form_post.3x</em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_803_14" href="terminal_interface-curses-forms__ads.htm#ref_674_14">Post</a></span> (<span class="symbol"><a name="ref_803_20" href="terminal_interface-curses-forms__ads.htm#ref_674_20">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_804_20" href="terminal_interface-curses-forms__ads.htm#ref_675_20">Post</a></span> : Boolean := True)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_806_16">M_Post</A></span> (<span class="symbol"><A NAME="ref_806_24" HREF="terminal_interface-curses-forms__adb.htm#ref_806_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_806_16">M_Post</a></span> (<span class="symbol"><a name="ref_806_24">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, M_Post, "post_form");
- <b>function</b> <span class="symbol"><A NAME="ref_808_16">M_Unpost</A></span> (<span class="symbol"><A NAME="ref_808_26" HREF="terminal_interface-curses-forms__adb.htm#ref_808_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_808_16">M_Unpost</a></span> (<span class="symbol"><a name="ref_808_26">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, M_Unpost, "unpost_form");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_675_20">Post</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_806_16">M_Post</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_674_20">Frm</A>));
+ <b>if</b> <a href="terminal_interface-curses-forms__ads.htm#ref_675_20">Post</a> <b>then</b>
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms__adb.htm#ref_806_16">M_Post</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_674_20">Frm</a>));
<b>else</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_808_16">M_Unpost</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_674_20">Frm</A>));
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms__adb.htm#ref_808_16">M_Unpost</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_674_20">Frm</a>));
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_674_14">Post</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | man page form_cursor.3x</EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_825_14" HREF="terminal_interface-curses-forms__ads.htm#ref_685_14">Position_Cursor</A></span> (<span class="symbol"><A NAME="ref_825_31" HREF="terminal_interface-curses-forms__ads.htm#ref_685_31">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>)
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_674_14">Post</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | man page form_cursor.3x</em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_825_14" href="terminal_interface-curses-forms__ads.htm#ref_685_14">Position_Cursor</a></span> (<span class="symbol"><a name="ref_825_31" href="terminal_interface-curses-forms__ads.htm#ref_685_31">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_827_16">Pos_Form_Cursor</A></span> (<span class="symbol"><A NAME="ref_827_33" HREF="terminal_interface-curses-forms__adb.htm#ref_827_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_827_16">Pos_Form_Cursor</a></span> (<span class="symbol"><a name="ref_827_33">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Pos_Form_Cursor, "pos_form_cursor");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_827_16">Pos_Form_Cursor</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_685_31">Frm</A>));
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_685_14">Position_Cursor</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | man page form_data.3x</EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_840_13" HREF="terminal_interface-curses-forms__ads.htm#ref_694_13">Data_Ahead</A></span> (<span class="symbol"><A NAME="ref_840_25" HREF="terminal_interface-curses-forms__ads.htm#ref_694_25">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>) <b>return</b> Boolean
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms__adb.htm#ref_827_16">Pos_Form_Cursor</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_685_31">Frm</a>));
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_685_14">Position_Cursor</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | man page form_data.3x</em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_840_13" href="terminal_interface-curses-forms__ads.htm#ref_694_13">Data_Ahead</a></span> (<span class="symbol"><a name="ref_840_25" href="terminal_interface-curses-forms__ads.htm#ref_694_25">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>) <b>return</b> Boolean
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_842_16">Ahead</A></span> (<span class="symbol"><A NAME="ref_842_23" HREF="terminal_interface-curses-forms__adb.htm#ref_842_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_842_16">Ahead</a></span> (<span class="symbol"><a name="ref_842_23">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Ahead, "data_ahead");
- <span class="symbol"><A NAME="ref_845_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_842_16">Ahead</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_694_25">Frm</A>);
+ <span class="symbol"><a name="ref_845_7">Res</a></span> : <b>constant</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> := <a href="terminal_interface-curses-forms__adb.htm#ref_842_16">Ahead</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_694_25">Frm</a>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_845_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_67_4">Curses_False</A> <b>then</b>
+ <b>if</b> <a href="terminal_interface-curses-forms__adb.htm#ref_845_7">Res</a> = <a href="terminal_interface-curses-aux__ads.htm#ref_67_4">Curses_False</a> <b>then</b>
<b>return</b> False;
<b>else</b>
<b>return</b> True;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_694_13">Data_Ahead</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_856_13" HREF="terminal_interface-curses-forms__ads.htm#ref_699_13">Data_Behind</A></span> (<span class="symbol"><A NAME="ref_856_26" HREF="terminal_interface-curses-forms__ads.htm#ref_699_26">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>) <b>return</b> Boolean
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_694_13">Data_Ahead</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_856_13" href="terminal_interface-curses-forms__ads.htm#ref_699_13">Data_Behind</a></span> (<span class="symbol"><a name="ref_856_26" href="terminal_interface-curses-forms__ads.htm#ref_699_26">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>) <b>return</b> Boolean
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_858_16">Behind</A></span> (<span class="symbol"><A NAME="ref_858_24" HREF="terminal_interface-curses-forms__adb.htm#ref_858_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_858_16">Behind</a></span> (<span class="symbol"><a name="ref_858_24">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Behind, "data_behind");
- <span class="symbol"><A NAME="ref_861_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_858_16">Behind</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_699_26">Frm</A>);
+ <span class="symbol"><a name="ref_861_7">Res</a></span> : <b>constant</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> := <a href="terminal_interface-curses-forms__adb.htm#ref_858_16">Behind</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_699_26">Frm</a>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_861_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_67_4">Curses_False</A> <b>then</b>
+ <b>if</b> <a href="terminal_interface-curses-forms__adb.htm#ref_861_7">Res</a> = <a href="terminal_interface-curses-aux__ads.htm#ref_67_4">Curses_False</a> <b>then</b>
<b>return</b> False;
<b>else</b>
<b>return</b> True;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_699_13">Data_Behind</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | man page form_driver.3x</EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_876_13" HREF="terminal_interface-curses-forms__ads.htm#ref_713_13">Driver</A></span> (<span class="symbol"><A NAME="ref_876_21" HREF="terminal_interface-curses-forms__ads.htm#ref_713_21">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_877_21" HREF="terminal_interface-curses-forms__ads.htm#ref_714_21">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_67_9">Key_Code</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_707_9">Driver_Result</A>
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_699_13">Data_Behind</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | man page form_driver.3x</em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_876_13" href="terminal_interface-curses-forms__ads.htm#ref_713_13">Driver</a></span> (<span class="symbol"><a name="ref_876_21" href="terminal_interface-curses-forms__ads.htm#ref_713_21">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_877_21" href="terminal_interface-curses-forms__ads.htm#ref_714_21">Key</a></span> : <a href="terminal_interface-curses__ads.htm#ref_67_9">Key_Code</a>) <b>return</b> <a href="terminal_interface-curses-forms__ads.htm#ref_707_9">Driver_Result</a>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_879_16">Frm_Driver</A></span> (<span class="symbol"><A NAME="ref_879_28" HREF="terminal_interface-curses-forms__adb.htm#ref_879_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>; <span class="symbol"><A NAME="ref_879_40" HREF="terminal_interface-curses-forms__adb.htm#ref_879_16">Key</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_879_16">Frm_Driver</a></span> (<span class="symbol"><a name="ref_879_28">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>; <span class="symbol"><a name="ref_879_40">Key</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Frm_Driver, "form_driver");
- <span class="symbol"><A NAME="ref_882_7">R</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_879_16">Frm_Driver</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_713_21">Frm</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_714_21">Key</A>));
+ <span class="symbol"><a name="ref_882_7">R</a></span> : <b>constant</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a> := <a href="terminal_interface-curses-forms__adb.htm#ref_879_16">Frm_Driver</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_713_21">Frm</a>, <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_714_21">Key</a>));
<b>begin</b>
- <b>case</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_882_7">R</A> <b>is</b>
- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_77_7">E_Unknown_Command</A> =&gt;
- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_709_27">Unknown_Request</A>;
- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_7">E_Invalid_Field</A> =&gt;
- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_710_27">Invalid_Field</A>;
- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_73_7">E_Request_Denied</A> =&gt;
- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_708_27">Request_Denied</A>;
+ <b>case</b> <a href="terminal_interface-curses-forms__adb.htm#ref_882_7">R</a> <b>is</b>
+ <b>when</b> <a href="terminal_interface-curses-aux__ads.htm#ref_77_7">E_Unknown_Command</a> =&gt;
+ <b>return</b> <a href="terminal_interface-curses-forms__ads.htm#ref_709_27">Unknown_Request</a>;
+ <b>when</b> <a href="terminal_interface-curses-aux__ads.htm#ref_72_7">E_Invalid_Field</a> =&gt;
+ <b>return</b> <a href="terminal_interface-curses-forms__ads.htm#ref_710_27">Invalid_Field</a>;
+ <b>when</b> <a href="terminal_interface-curses-aux__ads.htm#ref_73_7">E_Request_Denied</a> =&gt;
+ <b>return</b> <a href="terminal_interface-curses-forms__ads.htm#ref_708_27">Request_Denied</a>;
<b>when</b> <b>others</b> =&gt;
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_882_7">R</A>);
- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_707_27">Form_Ok</A>;
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms__adb.htm#ref_882_7">R</a>);
+ <b>return</b> <a href="terminal_interface-curses-forms__ads.htm#ref_707_27">Form_Ok</a>;
<b>end</b> <b>case</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_713_13">Driver</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | man page form_page.3x</EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_903_14" HREF="terminal_interface-curses-forms__ads.htm#ref_725_14">Set_Current</A></span> (<span class="symbol"><A NAME="ref_903_27" HREF="terminal_interface-curses-forms__ads.htm#ref_725_27">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_904_27" HREF="terminal_interface-curses-forms__ads.htm#ref_726_27">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>)
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_713_13">Driver</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | man page form_page.3x</em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_903_14" href="terminal_interface-curses-forms__ads.htm#ref_725_14">Set_Current</a></span> (<span class="symbol"><a name="ref_903_27" href="terminal_interface-curses-forms__ads.htm#ref_725_27">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_904_27" href="terminal_interface-curses-forms__ads.htm#ref_726_27">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_906_16">Set_Current_Fld</A></span> (<span class="symbol"><A NAME="ref_906_33" HREF="terminal_interface-curses-forms__adb.htm#ref_906_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>; <span class="symbol"><A NAME="ref_906_45" HREF="terminal_interface-curses-forms__adb.htm#ref_906_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_906_16">Set_Current_Fld</a></span> (<span class="symbol"><a name="ref_906_33">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>; <span class="symbol"><a name="ref_906_45">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Current_Fld, "set_current_field");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_906_16">Set_Current_Fld</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_725_27">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_726_27">Fld</A>));
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_725_14">Set_Current</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_915_13" HREF="terminal_interface-curses-forms__ads.htm#ref_731_13">Current</A></span> (<span class="symbol"><A NAME="ref_915_22" HREF="terminal_interface-curses-forms__ads.htm#ref_731_22">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms__adb.htm#ref_906_16">Set_Current_Fld</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_725_27">Frm</a>, <a href="terminal_interface-curses-forms__ads.htm#ref_726_27">Fld</a>));
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_725_14">Set_Current</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_915_13" href="terminal_interface-curses-forms__ads.htm#ref_731_13">Current</a></span> (<span class="symbol"><a name="ref_915_22" href="terminal_interface-curses-forms__ads.htm#ref_731_22">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>) <b>return</b> <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_917_16">Current_Fld</A></span> (<span class="symbol"><A NAME="ref_917_29" HREF="terminal_interface-curses-forms__adb.htm#ref_917_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
+ <b>function</b> <span class="symbol"><a name="ref_917_16">Current_Fld</a></span> (<span class="symbol"><a name="ref_917_29">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>) <b>return</b> <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
<b>pragma</b> Import (C, Current_Fld, "current_field");
- <span class="symbol"><A NAME="ref_920_7">Fld</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_917_16">Current_Fld</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_731_22">Frm</A>);
+ <span class="symbol"><a name="ref_920_7">Fld</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a> := <a href="terminal_interface-curses-forms__adb.htm#ref_917_16">Current_Fld</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_731_22">Frm</a>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_920_7">Fld</A> = <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_4">Null_Field</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses-forms__adb.htm#ref_920_7">Fld</a> = <a href="terminal_interface-curses-forms__ads.htm#ref_55_4">Null_Field</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</a>;
<b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_920_7">Fld</A>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_731_13">Current</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_930_14" HREF="terminal_interface-curses-forms__ads.htm#ref_736_14">Set_Page</A></span> (<span class="symbol"><A NAME="ref_930_24" HREF="terminal_interface-curses-forms__ads.htm#ref_736_24">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_931_24" HREF="terminal_interface-curses-forms__ads.htm#ref_737_24">Page</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_722_9">Page_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_722_9">Page_Number</A>'First)
+ <b>return</b> <a href="terminal_interface-curses-forms__adb.htm#ref_920_7">Fld</a>;
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_731_13">Current</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_930_14" href="terminal_interface-curses-forms__ads.htm#ref_736_14">Set_Page</a></span> (<span class="symbol"><a name="ref_930_24" href="terminal_interface-curses-forms__ads.htm#ref_736_24">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_931_24" href="terminal_interface-curses-forms__ads.htm#ref_737_24">Page</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_722_9">Page_Number</a> := <a href="terminal_interface-curses-forms__ads.htm#ref_722_9">Page_Number</a>'First)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_933_16">Set_Frm_Page</A></span> (<span class="symbol"><A NAME="ref_933_30" HREF="terminal_interface-curses-forms__adb.htm#ref_933_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>; <span class="symbol"><A NAME="ref_933_42" HREF="terminal_interface-curses-forms__adb.htm#ref_933_16">Pg</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_933_16">Set_Frm_Page</a></span> (<span class="symbol"><a name="ref_933_30">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>; <span class="symbol"><a name="ref_933_42">Pg</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Frm_Page, "set_form_page");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_933_16">Set_Frm_Page</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_736_24">Frm</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_737_24">Page</A>)));
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_736_14">Set_Page</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_942_13" HREF="terminal_interface-curses-forms__ads.htm#ref_742_13">Page</A></span> (<span class="symbol"><A NAME="ref_942_19" HREF="terminal_interface-curses-forms__ads.htm#ref_742_19">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_722_9">Page_Number</A>
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms__adb.htm#ref_933_16">Set_Frm_Page</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_736_24">Frm</a>, <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_737_24">Page</a>)));
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_736_14">Set_Page</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_942_13" href="terminal_interface-curses-forms__ads.htm#ref_742_13">Page</a></span> (<span class="symbol"><a name="ref_942_19" href="terminal_interface-curses-forms__ads.htm#ref_742_19">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>) <b>return</b> <a href="terminal_interface-curses-forms__ads.htm#ref_722_9">Page_Number</a>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_944_16">Get_Page</A></span> (<span class="symbol"><A NAME="ref_944_26" HREF="terminal_interface-curses-forms__adb.htm#ref_944_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_944_16">Get_Page</a></span> (<span class="symbol"><a name="ref_944_26">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Get_Page, "form_page");
- <span class="symbol"><A NAME="ref_947_7">P</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_944_16">Get_Page</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_742_19">Frm</A>);
+ <span class="symbol"><a name="ref_947_7">P</a></span> : <b>constant</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> := <a href="terminal_interface-curses-forms__adb.htm#ref_944_16">Get_Page</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_742_19">Frm</a>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_947_7">P</A> &lt; 0 <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses-forms__adb.htm#ref_947_7">P</a> &lt; 0 <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</a>;
<b>else</b>
- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_722_9">Page_Number</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_947_7">P</A>);
+ <b>return</b> <a href="terminal_interface-curses-forms__ads.htm#ref_722_9">Page_Number</a> (<a href="terminal_interface-curses-forms__adb.htm#ref_947_7">P</a>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_742_13">Page</A>;
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_742_13">Page</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_956_13" HREF="terminal_interface-curses-forms__ads.htm#ref_747_13">Get_Index</A></span> (<span class="symbol"><A NAME="ref_956_24" HREF="terminal_interface-curses-forms__ads.htm#ref_747_24">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>) <b>return</b> Positive
+ <b>function</b> <span class="symbol"><a name="ref_956_13" href="terminal_interface-curses-forms__ads.htm#ref_747_13">Get_Index</a></span> (<span class="symbol"><a name="ref_956_24" href="terminal_interface-curses-forms__ads.htm#ref_747_24">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>) <b>return</b> Positive
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_958_16">Get_Fieldindex</A></span> (<span class="symbol"><A NAME="ref_958_32" HREF="terminal_interface-curses-forms__adb.htm#ref_958_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_958_16">Get_Fieldindex</a></span> (<span class="symbol"><a name="ref_958_32">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Get_Fieldindex, "field_index");
- <span class="symbol"><A NAME="ref_961_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_958_16">Get_Fieldindex</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_747_24">Fld</A>);
+ <span class="symbol"><a name="ref_961_7">Res</a></span> : <b>constant</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> := <a href="terminal_interface-curses-forms__adb.htm#ref_958_16">Get_Fieldindex</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_747_24">Fld</a>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_961_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses-forms__adb.htm#ref_961_7">Res</a> = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses-forms__ads.htm#ref_288_4">Form_Exception</a>;
<b>end</b> <b>if</b>;
- <b>return</b> Positive (Natural (<A HREF="terminal_interface-curses-forms__adb.htm#ref_961_7">Res</A>) + Positive'First);
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_747_13">Get_Index</A>;
-
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | man page form_new_page.3x</EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_976_14" HREF="terminal_interface-curses-forms__ads.htm#ref_759_14">Set_New_Page</A></span> (<span class="symbol"><A NAME="ref_976_28" HREF="terminal_interface-curses-forms__ads.htm#ref_759_28">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_977_28" HREF="terminal_interface-curses-forms__ads.htm#ref_760_28">New_Page</A></span> : Boolean := True)
+ <b>return</b> Positive (Natural (<a href="terminal_interface-curses-forms__adb.htm#ref_961_7">Res</a>) + Positive'First);
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_747_13">Get_Index</a>;
+
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | man page form_new_page.3x</em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_976_14" href="terminal_interface-curses-forms__ads.htm#ref_759_14">Set_New_Page</a></span> (<span class="symbol"><a name="ref_976_28" href="terminal_interface-curses-forms__ads.htm#ref_759_28">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_977_28" href="terminal_interface-curses-forms__ads.htm#ref_760_28">New_Page</a></span> : Boolean := True)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_979_16">Set_Page</A></span> (<span class="symbol"><A NAME="ref_979_26" HREF="terminal_interface-curses-forms__adb.htm#ref_979_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>; <span class="symbol"><A NAME="ref_979_39" HREF="terminal_interface-curses-forms__adb.htm#ref_979_16">Flg</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_979_16">Set_Page</a></span> (<span class="symbol"><a name="ref_979_26">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>; <span class="symbol"><a name="ref_979_39">Flg</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Page, "set_new_page");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_979_16">Set_Page</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_759_28">Fld</A>, Boolean'Pos (<A HREF="terminal_interface-curses-forms__ads.htm#ref_760_28">New_Page</A>)));
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_759_14">Set_New_Page</A>;
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_988_13" HREF="terminal_interface-curses-forms__ads.htm#ref_765_13">Is_New_Page</A></span> (<span class="symbol"><A NAME="ref_988_26" HREF="terminal_interface-curses-forms__ads.htm#ref_765_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>) <b>return</b> Boolean
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-forms__adb.htm#ref_979_16">Set_Page</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_759_28">Fld</a>, Boolean'Pos (<a href="terminal_interface-curses-forms__ads.htm#ref_760_28">New_Page</a>)));
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_759_14">Set_New_Page</a>;
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_988_13" href="terminal_interface-curses-forms__ads.htm#ref_765_13">Is_New_Page</a></span> (<span class="symbol"><a name="ref_988_26" href="terminal_interface-curses-forms__ads.htm#ref_765_26">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>) <b>return</b> Boolean
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_990_16">Is_New</A></span> (<span class="symbol"><A NAME="ref_990_24" HREF="terminal_interface-curses-forms__adb.htm#ref_990_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_990_16">Is_New</a></span> (<span class="symbol"><a name="ref_990_24">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Is_New, "new_page");
- <span class="symbol"><A NAME="ref_993_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_990_16">Is_New</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_765_26">Fld</A>);
+ <span class="symbol"><a name="ref_993_7">Res</a></span> : <b>constant</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> := <a href="terminal_interface-curses-forms__adb.htm#ref_990_16">Is_New</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_765_26">Fld</a>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_993_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_67_4">Curses_False</A> <b>then</b>
+ <b>if</b> <a href="terminal_interface-curses-forms__adb.htm#ref_993_7">Res</a> = <a href="terminal_interface-curses-aux__ads.htm#ref_67_4">Curses_False</a> <b>then</b>
<b>return</b> False;
<b>else</b>
<b>return</b> True;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_765_13">Is_New_Page</A>;
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_765_13">Is_New_Page</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_1002_14" HREF="terminal_interface-curses-forms__ads.htm#ref_138_14">Free</A></span> (<span class="symbol"><A NAME="ref_1002_20" HREF="terminal_interface-curses-forms__ads.htm#ref_138_20">FA</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_136_9">Field_Array_Access</A>;
- <span class="symbol"><A NAME="ref_1003_20" HREF="terminal_interface-curses-forms__ads.htm#ref_139_20">Free_Fields</A></span> : Boolean := False)
+ <b>procedure</b> <span class="symbol"><a name="ref_1002_14" href="terminal_interface-curses-forms__ads.htm#ref_138_14">Free</a></span> (<span class="symbol"><a name="ref_1002_20" href="terminal_interface-curses-forms__ads.htm#ref_138_20">FA</a></span> : <b>in</b> <b>out</b> <a href="terminal_interface-curses-forms__ads.htm#ref_136_9">Field_Array_Access</a>;
+ <span class="symbol"><a name="ref_1003_20" href="terminal_interface-curses-forms__ads.htm#ref_139_20">Free_Fields</a></span> : Boolean := False)
<b>is</b>
<b>procedure</b> Release <b>is</b> <b>new</b> Ada.Unchecked_Deallocation
- (Field_Array, <A HREF="terminal_interface-curses-forms__ads.htm#ref_136_9">Field_Array_Access</A>);
+ (Field_Array, <a href="terminal_interface-curses-forms__ads.htm#ref_136_9">Field_Array_Access</a>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_138_20">FA</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_139_20">Free_Fields</A> <b>then</b>
- <b>for</b> <span class="symbol"><A NAME="ref_1009_14">I</A></span> <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_138_20">FA</A>'First .. (<A HREF="terminal_interface-curses-forms__ads.htm#ref_138_20">FA</A>'Last - 1) <b>loop</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_138_20">FA</A>.<b>all</b> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_1009_14">I</A>) /= <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_4">Null_Field</A> <b>then</b>
- <A HREF="terminal_interface-curses-forms__ads.htm#ref_317_14">Delete</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_138_20">FA</A>.<b>all</b> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_1009_14">I</A>));
+ <b>if</b> <a href="terminal_interface-curses-forms__ads.htm#ref_138_20">FA</a> /= <b>null</b> <b>and</b> <b>then</b> <a href="terminal_interface-curses-forms__ads.htm#ref_139_20">Free_Fields</a> <b>then</b>
+ <b>for</b> <span class="symbol"><a name="ref_1009_14">I</a></span> <b>in</b> <a href="terminal_interface-curses-forms__ads.htm#ref_138_20">FA</a>'First .. (<a href="terminal_interface-curses-forms__ads.htm#ref_138_20">FA</a>'Last - 1) <b>loop</b>
+ <b>if</b> <a href="terminal_interface-curses-forms__ads.htm#ref_138_20">FA</a>.<b>all</b> (<a href="terminal_interface-curses-forms__adb.htm#ref_1009_14">I</a>) /= <a href="terminal_interface-curses-forms__ads.htm#ref_55_4">Null_Field</a> <b>then</b>
+ <a href="terminal_interface-curses-forms__ads.htm#ref_317_14">Delete</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_138_20">FA</a>.<b>all</b> (<a href="terminal_interface-curses-forms__adb.htm#ref_1009_14">I</a>));
<b>end</b> <b>if</b>;
<b>end</b> <b>loop</b>;
<b>end</b> <b>if</b>;
- Release (<A HREF="terminal_interface-curses-forms__ads.htm#ref_138_20">FA</A>);
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_138_14">Free</A>;
+ Release (<a href="terminal_interface-curses-forms__ads.htm#ref_138_20">FA</a>);
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_138_14">Free</a>;
- <span class="comment"><EM>-- |=====================================================================</EM></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
- <b>function</b> <span class="symbol"><A NAME="ref_1020_13" HREF="terminal_interface-curses-forms__ads.htm#ref_105_13">Default_Field_Options</A></span> <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_63_9">Field_Option_Set</A>
+ <b>function</b> <span class="symbol"><a name="ref_1020_13" href="terminal_interface-curses-forms__ads.htm#ref_105_13">Default_Field_Options</a></span> <b>return</b> <a href="terminal_interface-curses-forms__ads.htm#ref_63_9">Field_Option_Set</a>
<b>is</b>
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_418_13">Get_Options</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_55_4">Null_Field</A>);
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_105_13">Default_Field_Options</A>;
+ <b>return</b> <a href="terminal_interface-curses-forms__ads.htm#ref_418_13">Get_Options</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_55_4">Null_Field</a>);
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_105_13">Default_Field_Options</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_1026_13" HREF="terminal_interface-curses-forms__ads.htm#ref_127_13">Default_Form_Options</A></span> <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A>
+ <b>function</b> <span class="symbol"><a name="ref_1026_13" href="terminal_interface-curses-forms__ads.htm#ref_127_13">Default_Form_Options</a></span> <b>return</b> <a href="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</a>
<b>is</b>
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_665_13">Get_Options</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_56_4">Null_Form</A>);
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_127_13">Default_Form_Options</A>;
+ <b>return</b> <a href="terminal_interface-curses-forms__ads.htm#ref_665_13">Get_Options</a> (<a href="terminal_interface-curses-forms__ads.htm#ref_56_4">Null_Form</a>);
+ <b>end</b> <a href="terminal_interface-curses-forms__ads.htm#ref_127_13">Default_Form_Options</a>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-forms__ads.htm b/doc/html/ada/terminal_interface-curses-forms__ads.htm
index ee5ce13bcf37..22a91e4772c0 100644
--- a/doc/html/ada/terminal_interface-curses-forms__ads.htm
+++ b/doc/html/ada/terminal_interface-curses-forms__ads.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-forms.ads</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-forms.ads</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,790 +11,790 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms.ads </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Form --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- S P E C --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1998-2009,2014 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.34 @</EM></span>
-<span class="comment"><EM>-- @Date: 2020/02/02 23:34:34 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-forms.ads </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Form --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- S P E C --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1998-2009,2014 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.34 @</em></span>
+<span class="comment"><em>-- @Date: 2020/02/02 23:34:34 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
<b>with</b> System;
<b>with</b> Ada.Characters.Latin_1;
-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<span class="symbol"><A NAME="ref_46_35" HREF="terminal_interface-curses-forms__adb.htm#ref_51_40">Forms</A></span> <b>is</b>
- <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>);
- <b>pragma</b> Linker_Options ("-lform" &amp; <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_9_4">DFT_ARG_SUFFIX</A>);
+<b>package</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<span class="symbol"><a name="ref_46_35" href="terminal_interface-curses-forms__adb.htm#ref_51_40">Forms</a></span> <b>is</b>
+ <b>pragma</b> Preelaborate (<a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>);
+ <b>pragma</b> Linker_Options ("-lform" &amp; <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_9_4">DFT_ARG_SUFFIX</a>);
Space : Character <b>renames</b> Ada.Characters.Latin_1.Space;
- <b>type</b> <span class="symbol"><A NAME="ref_52_9">Field</A></span> <b>is</b> <b>private</b>;
- <b>type</b> <span class="symbol"><A NAME="ref_53_9">Form</A></span> <b>is</b> <b>private</b>;
+ <b>type</b> <span class="symbol"><a name="ref_52_9">Field</a></span> <b>is</b> <b>private</b>;
+ <b>type</b> <span class="symbol"><a name="ref_53_9">Form</a></span> <b>is</b> <b>private</b>;
- <span class="symbol"><A NAME="ref_55_4">Null_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_56_4">Null_Form</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
+ <span class="symbol"><a name="ref_55_4">Null_Field</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_56_4">Null_Form</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
- <b>type</b> <span class="symbol"><A NAME="ref_58_9">Field_Justification</A></span> <b>is</b> (<span class="symbol"><A NAME="ref_58_33">None</A></span>,
- <span class="symbol"><A NAME="ref_59_33">Left</A></span>,
- <span class="symbol"><A NAME="ref_60_33">Center</A></span>,
- <span class="symbol"><A NAME="ref_61_33">Right</A></span>);
+ <b>type</b> <span class="symbol"><a name="ref_58_9">Field_Justification</a></span> <b>is</b> (<span class="symbol"><a name="ref_58_33">None</a></span>,
+ <span class="symbol"><a name="ref_59_33">Left</a></span>,
+ <span class="symbol"><a name="ref_60_33">Center</a></span>,
+ <span class="symbol"><a name="ref_61_33">Right</a></span>);
- <b>type</b> <span class="symbol"><A NAME="ref_63_9">Field_Option_Set</A></span> <b>is</b>
+ <b>type</b> <span class="symbol"><a name="ref_63_9">Field_Option_Set</a></span> <b>is</b>
<b>record</b>
- <span class="symbol"><A NAME="ref_65_10">Visible</A></span> : Boolean;
- <span class="symbol"><A NAME="ref_66_10">Active</A></span> : Boolean;
- <span class="symbol"><A NAME="ref_67_10">Public</A></span> : Boolean;
- <span class="symbol"><A NAME="ref_68_10">Edit</A></span> : Boolean;
- <span class="symbol"><A NAME="ref_69_10">Wrap</A></span> : Boolean;
- <span class="symbol"><A NAME="ref_70_10">Blank</A></span> : Boolean;
- <span class="symbol"><A NAME="ref_71_10">Auto_Skip</A></span> : Boolean;
- <span class="symbol"><A NAME="ref_72_10">Null_Ok</A></span> : Boolean;
- <span class="symbol"><A NAME="ref_73_10">Pass_Ok</A></span> : Boolean;
- <span class="symbol"><A NAME="ref_74_10">Static</A></span> : Boolean;
+ <span class="symbol"><a name="ref_65_10">Visible</a></span> : Boolean;
+ <span class="symbol"><a name="ref_66_10">Active</a></span> : Boolean;
+ <span class="symbol"><a name="ref_67_10">Public</a></span> : Boolean;
+ <span class="symbol"><a name="ref_68_10">Edit</a></span> : Boolean;
+ <span class="symbol"><a name="ref_69_10">Wrap</a></span> : Boolean;
+ <span class="symbol"><a name="ref_70_10">Blank</a></span> : Boolean;
+ <span class="symbol"><a name="ref_71_10">Auto_Skip</a></span> : Boolean;
+ <span class="symbol"><a name="ref_72_10">Null_Ok</a></span> : Boolean;
+ <span class="symbol"><a name="ref_73_10">Pass_Ok</a></span> : Boolean;
+ <span class="symbol"><a name="ref_74_10">Static</a></span> : Boolean;
<b>end</b> <b>record</b>;
- <b>pragma</b> Convention (C_Pass_By_Copy, <A HREF="terminal_interface-curses-forms__ads.htm#ref_63_9">Field_Option_Set</A>);
+ <b>pragma</b> Convention (C_Pass_By_Copy, <a href="terminal_interface-curses-forms__ads.htm#ref_63_9">Field_Option_Set</a>);
- <b>for</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_63_9">Field_Option_Set</A> <b>use</b>
+ <b>for</b> <a href="terminal_interface-curses-forms__ads.htm#ref_63_9">Field_Option_Set</a> <b>use</b>
<b>record</b>
- <A HREF="terminal_interface-curses-forms__ads.htm#ref_65_10">Visible</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_279_4">O_VISIBLE_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_280_4">O_VISIBLE_Last</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#ref_66_10">Active</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_281_4">O_ACTIVE_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_282_4">O_ACTIVE_Last</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#ref_67_10">Public</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_283_4">O_PUBLIC_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_284_4">O_PUBLIC_Last</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_10">Edit</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_285_4">O_EDIT_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_286_4">O_EDIT_Last</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#ref_69_10">Wrap</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_287_4">O_WRAP_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_288_4">O_WRAP_Last</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#ref_70_10">Blank</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_289_4">O_BLANK_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_290_4">O_BLANK_Last</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#ref_71_10">Auto_Skip</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_291_4">O_AUTOSKIP_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_292_4">O_AUTOSKIP_Last</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#ref_72_10">Null_Ok</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_293_4">O_NULLOK_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_294_4">O_NULLOK_Last</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#ref_73_10">Pass_Ok</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_295_4">O_PASSOK_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_296_4">O_PASSOK_Last</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#ref_74_10">Static</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_297_4">O_STATIC_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_298_4">O_STATIC_Last</A>;
+ <a href="terminal_interface-curses-forms__ads.htm#ref_65_10">Visible</a> <b>at</b> 0 <b>range</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_279_4">O_VISIBLE_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_280_4">O_VISIBLE_Last</a>;
+ <a href="terminal_interface-curses-forms__ads.htm#ref_66_10">Active</a> <b>at</b> 0 <b>range</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_281_4">O_ACTIVE_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_282_4">O_ACTIVE_Last</a>;
+ <a href="terminal_interface-curses-forms__ads.htm#ref_67_10">Public</a> <b>at</b> 0 <b>range</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_283_4">O_PUBLIC_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_284_4">O_PUBLIC_Last</a>;
+ <a href="terminal_interface-curses-forms__ads.htm#ref_68_10">Edit</a> <b>at</b> 0 <b>range</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_285_4">O_EDIT_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_286_4">O_EDIT_Last</a>;
+ <a href="terminal_interface-curses-forms__ads.htm#ref_69_10">Wrap</a> <b>at</b> 0 <b>range</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_287_4">O_WRAP_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_288_4">O_WRAP_Last</a>;
+ <a href="terminal_interface-curses-forms__ads.htm#ref_70_10">Blank</a> <b>at</b> 0 <b>range</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_289_4">O_BLANK_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_290_4">O_BLANK_Last</a>;
+ <a href="terminal_interface-curses-forms__ads.htm#ref_71_10">Auto_Skip</a> <b>at</b> 0 <b>range</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_291_4">O_AUTOSKIP_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_292_4">O_AUTOSKIP_Last</a>;
+ <a href="terminal_interface-curses-forms__ads.htm#ref_72_10">Null_Ok</a> <b>at</b> 0 <b>range</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_293_4">O_NULLOK_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_294_4">O_NULLOK_Last</a>;
+ <a href="terminal_interface-curses-forms__ads.htm#ref_73_10">Pass_Ok</a> <b>at</b> 0 <b>range</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_295_4">O_PASSOK_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_296_4">O_PASSOK_Last</a>;
+ <a href="terminal_interface-curses-forms__ads.htm#ref_74_10">Static</a> <b>at</b> 0 <b>range</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_297_4">O_STATIC_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_298_4">O_STATIC_Last</a>;
<b>end</b> <b>record</b>;
<b>pragma</b> Warnings (Off);
- <b>for</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_63_9">Field_Option_Set</A>'Size <b>use</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_299_4">Field_Options_Size</A>;
+ <b>for</b> <a href="terminal_interface-curses-forms__ads.htm#ref_63_9">Field_Option_Set</a>'Size <b>use</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_299_4">Field_Options_Size</a>;
<b>pragma</b> Warnings (On);
- <b>function</b> <span class="symbol"><A NAME="ref_105_13" HREF="terminal_interface-curses-forms__adb.htm#ref_1020_13">Default_Field_Options</A></span> <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_63_9">Field_Option_Set</A>;
- <span class="comment"><EM>-- The initial defaults for the field options.</EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_105_13">Default_Field_Options</A>);
+ <b>function</b> <span class="symbol"><a name="ref_105_13" href="terminal_interface-curses-forms__adb.htm#ref_1020_13">Default_Field_Options</a></span> <b>return</b> <a href="terminal_interface-curses-forms__ads.htm#ref_63_9">Field_Option_Set</a>;
+ <span class="comment"><em>-- The initial defaults for the field options.</em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-forms__ads.htm#ref_105_13">Default_Field_Options</a>);
- <b>type</b> <span class="symbol"><A NAME="ref_109_9">Form_Option_Set</A></span> <b>is</b>
+ <b>type</b> <span class="symbol"><a name="ref_109_9">Form_Option_Set</a></span> <b>is</b>
<b>record</b>
- <span class="symbol"><A NAME="ref_111_10">NL_Overload</A></span> : Boolean;
- <span class="symbol"><A NAME="ref_112_10">BS_Overload</A></span> : Boolean;
+ <span class="symbol"><a name="ref_111_10">NL_Overload</a></span> : Boolean;
+ <span class="symbol"><a name="ref_112_10">BS_Overload</a></span> : Boolean;
<b>end</b> <b>record</b>;
- <b>pragma</b> Convention (C_Pass_By_Copy, <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A>);
+ <b>pragma</b> Convention (C_Pass_By_Copy, <a href="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</a>);
- <b>for</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A> <b>use</b>
+ <b>for</b> <a href="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</a> <b>use</b>
<b>record</b>
- <A HREF="terminal_interface-curses-forms__ads.htm#ref_111_10">NL_Overload</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_303_4">O_NL_OVERLOAD_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_304_4">O_NL_OVERLOAD_Last</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#ref_112_10">BS_Overload</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_305_4">O_BS_OVERLOAD_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_306_4">O_BS_OVERLOAD_Last</A>;
+ <a href="terminal_interface-curses-forms__ads.htm#ref_111_10">NL_Overload</a> <b>at</b> 0 <b>range</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_303_4">O_NL_OVERLOAD_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_304_4">O_NL_OVERLOAD_Last</a>;
+ <a href="terminal_interface-curses-forms__ads.htm#ref_112_10">BS_Overload</a> <b>at</b> 0 <b>range</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_305_4">O_BS_OVERLOAD_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_306_4">O_BS_OVERLOAD_Last</a>;
<b>end</b> <b>record</b>;
<b>pragma</b> Warnings (Off);
- <b>for</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A>'Size <b>use</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_299_4">Field_Options_Size</A>;
+ <b>for</b> <a href="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</a>'Size <b>use</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_299_4">Field_Options_Size</a>;
<b>pragma</b> Warnings (On);
- <b>function</b> <span class="symbol"><A NAME="ref_127_13" HREF="terminal_interface-curses-forms__adb.htm#ref_1026_13">Default_Form_Options</A></span> <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A>;
- <span class="comment"><EM>-- The initial defaults for the form options.</EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_127_13">Default_Form_Options</A>);
+ <b>function</b> <span class="symbol"><a name="ref_127_13" href="terminal_interface-curses-forms__adb.htm#ref_1026_13">Default_Form_Options</a></span> <b>return</b> <a href="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</a>;
+ <span class="comment"><em>-- The initial defaults for the form options.</em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-forms__ads.htm#ref_127_13">Default_Form_Options</a>);
- <b>type</b> <span class="symbol"><A NAME="ref_131_9">Buffer_Number</A></span> <b>is</b> <b>new</b> Natural;
+ <b>type</b> <span class="symbol"><a name="ref_131_9">Buffer_Number</a></span> <b>is</b> <b>new</b> Natural;
- <b>type</b> Field_Array <b>is</b> <b>array</b> (Positive <b>range</b> &lt;&gt;) <b>of</b> <b>aliased</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
+ <b>type</b> Field_Array <b>is</b> <b>array</b> (Positive <b>range</b> &lt;&gt;) <b>of</b> <b>aliased</b> <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
<b>pragma</b> Convention (C, Field_Array);
- <b>type</b> <span class="symbol"><A NAME="ref_136_9">Field_Array_Access</A></span> <b>is</b> <b>access</b> Field_Array;
-
- <b>procedure</b> <span class="symbol"><A NAME="ref_138_14" HREF="terminal_interface-curses-forms__adb.htm#ref_1002_14">Free</A></span> (<span class="symbol"><A NAME="ref_138_20" HREF="terminal_interface-curses-forms__adb.htm#ref_1002_20">FA</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_136_9">Field_Array_Access</A>;
- <span class="symbol"><A NAME="ref_139_20" HREF="terminal_interface-curses-forms__adb.htm#ref_1003_20">Free_Fields</A></span> : Boolean := False);
- <span class="comment"><EM>-- Release the memory for an allocated field array</EM></span>
- <span class="comment"><EM>-- If Free_Fields is True, call Delete() for all the fields in</EM></span>
- <span class="comment"><EM>-- the array.</EM></span>
-
- <b>subtype</b> <span class="symbol"><A NAME="ref_144_12">Form_Request_Code</A></span> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_67_9">Key_Code</A> <b>range</b> (<A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 1) .. (<A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 57);
-
- <span class="comment"><EM>-- The prefix F_ stands for "Form Request"</EM></span>
- <span class="symbol"><A NAME="ref_147_4">F_Next_Page</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 1;
- <span class="symbol"><A NAME="ref_148_4">F_Previous_Page</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 2;
- <span class="symbol"><A NAME="ref_149_4">F_First_Page</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 3;
- <span class="symbol"><A NAME="ref_150_4">F_Last_Page</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 4;
-
- <span class="symbol"><A NAME="ref_152_4">F_Next_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 5;
- <span class="symbol"><A NAME="ref_153_4">F_Previous_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 6;
- <span class="symbol"><A NAME="ref_154_4">F_First_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 7;
- <span class="symbol"><A NAME="ref_155_4">F_Last_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 8;
- <span class="symbol"><A NAME="ref_156_4">F_Sorted_Next_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 9;
- <span class="symbol"><A NAME="ref_157_4">F_Sorted_Previous_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 10;
- <span class="symbol"><A NAME="ref_158_4">F_Sorted_First_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 11;
- <span class="symbol"><A NAME="ref_159_4">F_Sorted_Last_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 12;
- <span class="symbol"><A NAME="ref_160_4">F_Left_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 13;
- <span class="symbol"><A NAME="ref_161_4">F_Right_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 14;
- <span class="symbol"><A NAME="ref_162_4">F_Up_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 15;
- <span class="symbol"><A NAME="ref_163_4">F_Down_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 16;
-
- <span class="symbol"><A NAME="ref_165_4">F_Next_Char</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 17;
- <span class="symbol"><A NAME="ref_166_4">F_Previous_Char</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 18;
- <span class="symbol"><A NAME="ref_167_4">F_Next_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 19;
- <span class="symbol"><A NAME="ref_168_4">F_Previous_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 20;
- <span class="symbol"><A NAME="ref_169_4">F_Next_Word</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 21;
- <span class="symbol"><A NAME="ref_170_4">F_Previous_Word</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 22;
- <span class="symbol"><A NAME="ref_171_4">F_Begin_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 23;
- <span class="symbol"><A NAME="ref_172_4">F_End_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 24;
- <span class="symbol"><A NAME="ref_173_4">F_Begin_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 25;
- <span class="symbol"><A NAME="ref_174_4">F_End_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 26;
- <span class="symbol"><A NAME="ref_175_4">F_Left_Char</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 27;
- <span class="symbol"><A NAME="ref_176_4">F_Right_Char</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 28;
- <span class="symbol"><A NAME="ref_177_4">F_Up_Char</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 29;
- <span class="symbol"><A NAME="ref_178_4">F_Down_Char</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 30;
-
- <span class="symbol"><A NAME="ref_180_4">F_New_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 31;
- <span class="symbol"><A NAME="ref_181_4">F_Insert_Char</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 32;
- <span class="symbol"><A NAME="ref_182_4">F_Insert_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 33;
- <span class="symbol"><A NAME="ref_183_4">F_Delete_Char</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 34;
- <span class="symbol"><A NAME="ref_184_4">F_Delete_Previous</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 35;
- <span class="symbol"><A NAME="ref_185_4">F_Delete_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 36;
- <span class="symbol"><A NAME="ref_186_4">F_Delete_Word</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 37;
- <span class="symbol"><A NAME="ref_187_4">F_Clear_EOL</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 38;
- <span class="symbol"><A NAME="ref_188_4">F_Clear_EOF</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 39;
- <span class="symbol"><A NAME="ref_189_4">F_Clear_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 40;
- <span class="symbol"><A NAME="ref_190_4">F_Overlay_Mode</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 41;
- <span class="symbol"><A NAME="ref_191_4">F_Insert_Mode</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 42;
-
- <span class="comment"><EM>-- Vertical Scrolling</EM></span>
- <span class="symbol"><A NAME="ref_194_4">F_ScrollForward_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 43;
- <span class="symbol"><A NAME="ref_195_4">F_ScrollBackward_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 44;
- <span class="symbol"><A NAME="ref_196_4">F_ScrollForward_Page</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 45;
- <span class="symbol"><A NAME="ref_197_4">F_ScrollBackward_Page</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 46;
- <span class="symbol"><A NAME="ref_198_4">F_ScrollForward_HalfPage</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 47;
- <span class="symbol"><A NAME="ref_199_4">F_ScrollBackward_HalfPage</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 48;
-
- <span class="comment"><EM>-- Horizontal Scrolling</EM></span>
- <span class="symbol"><A NAME="ref_202_4">F_HScrollForward_Char</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 49;
- <span class="symbol"><A NAME="ref_203_4">F_HScrollBackward_Char</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 50;
- <span class="symbol"><A NAME="ref_204_4">F_HScrollForward_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 51;
- <span class="symbol"><A NAME="ref_205_4">F_HScrollBackward_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 52;
- <span class="symbol"><A NAME="ref_206_4">F_HScrollForward_HalfLine</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 53;
- <span class="symbol"><A NAME="ref_207_4">F_HScrollBackward_HalfLine</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 54;
-
- <span class="symbol"><A NAME="ref_209_4">F_Validate_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 55;
- <span class="symbol"><A NAME="ref_210_4">F_Next_Choice</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 56;
- <span class="symbol"><A NAME="ref_211_4">F_Previous_Choice</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 57;
-
- <span class="comment"><EM>-- For those who like the old 'C' style request names</EM></span>
- REQ_NEXT_PAGE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_147_4">F_Next_Page</A>;
- REQ_PREV_PAGE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_148_4">F_Previous_Page</A>;
- REQ_FIRST_PAGE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_149_4">F_First_Page</A>;
- REQ_LAST_PAGE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_150_4">F_Last_Page</A>;
-
- REQ_NEXT_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_152_4">F_Next_Field</A>;
- REQ_PREV_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_153_4">F_Previous_Field</A>;
- REQ_FIRST_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_154_4">F_First_Field</A>;
- REQ_LAST_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_155_4">F_Last_Field</A>;
- REQ_SNEXT_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_156_4">F_Sorted_Next_Field</A>;
- REQ_SPREV_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_157_4">F_Sorted_Previous_Field</A>;
- REQ_SFIRST_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_158_4">F_Sorted_First_Field</A>;
- REQ_SLAST_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_159_4">F_Sorted_Last_Field</A>;
- REQ_LEFT_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_160_4">F_Left_Field</A>;
- REQ_RIGHT_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_161_4">F_Right_Field</A>;
- REQ_UP_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_162_4">F_Up_Field</A>;
- REQ_DOWN_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_163_4">F_Down_Field</A>;
-
- REQ_NEXT_CHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_165_4">F_Next_Char</A>;
- REQ_PREV_CHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_166_4">F_Previous_Char</A>;
- REQ_NEXT_LINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_167_4">F_Next_Line</A>;
- REQ_PREV_LINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_168_4">F_Previous_Line</A>;
- REQ_NEXT_WORD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_169_4">F_Next_Word</A>;
- REQ_PREV_WORD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_170_4">F_Previous_Word</A>;
- REQ_BEG_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_171_4">F_Begin_Field</A>;
- REQ_END_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_172_4">F_End_Field</A>;
- REQ_BEG_LINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_173_4">F_Begin_Line</A>;
- REQ_END_LINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_174_4">F_End_Line</A>;
- REQ_LEFT_CHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_175_4">F_Left_Char</A>;
- REQ_RIGHT_CHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_176_4">F_Right_Char</A>;
- REQ_UP_CHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_177_4">F_Up_Char</A>;
- REQ_DOWN_CHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_178_4">F_Down_Char</A>;
-
- REQ_NEW_LINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_180_4">F_New_Line</A>;
- REQ_INS_CHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_181_4">F_Insert_Char</A>;
- REQ_INS_LINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_182_4">F_Insert_Line</A>;
- REQ_DEL_CHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_183_4">F_Delete_Char</A>;
- REQ_DEL_PREV : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_184_4">F_Delete_Previous</A>;
- REQ_DEL_LINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_185_4">F_Delete_Line</A>;
- REQ_DEL_WORD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_186_4">F_Delete_Word</A>;
- REQ_CLR_EOL : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_187_4">F_Clear_EOL</A>;
- REQ_CLR_EOF : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_188_4">F_Clear_EOF</A>;
- REQ_CLR_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_189_4">F_Clear_Field</A>;
- REQ_OVL_MODE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_190_4">F_Overlay_Mode</A>;
- REQ_INS_MODE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_191_4">F_Insert_Mode</A>;
-
- REQ_SCR_FLINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_194_4">F_ScrollForward_Line</A>;
- REQ_SCR_BLINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_195_4">F_ScrollBackward_Line</A>;
- REQ_SCR_FPAGE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_196_4">F_ScrollForward_Page</A>;
- REQ_SCR_BPAGE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_197_4">F_ScrollBackward_Page</A>;
- REQ_SCR_FHPAGE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_198_4">F_ScrollForward_HalfPage</A>;
- REQ_SCR_BHPAGE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_199_4">F_ScrollBackward_HalfPage</A>;
-
- REQ_SCR_FCHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_202_4">F_HScrollForward_Char</A>;
- REQ_SCR_BCHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_203_4">F_HScrollBackward_Char</A>;
- REQ_SCR_HFLINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_204_4">F_HScrollForward_Line</A>;
- REQ_SCR_HBLINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_205_4">F_HScrollBackward_Line</A>;
- REQ_SCR_HFHALF : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_206_4">F_HScrollForward_HalfLine</A>;
- REQ_SCR_HBHALF : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_207_4">F_HScrollBackward_HalfLine</A>;
-
- REQ_VALIDATION : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_209_4">F_Validate_Field</A>;
- REQ_NEXT_CHOICE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_210_4">F_Next_Choice</A>;
- REQ_PREV_CHOICE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_211_4">F_Previous_Choice</A>;
-
- <b>procedure</b> <span class="symbol"><A NAME="ref_278_14" HREF="terminal_interface-curses-forms__adb.htm#ref_65_14">Request_Name</A></span> (<span class="symbol"><A NAME="ref_278_28" HREF="terminal_interface-curses-forms__adb.htm#ref_65_28">Key</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A>;
- <span class="symbol"><A NAME="ref_279_28" HREF="terminal_interface-curses-forms__adb.htm#ref_66_33">Name</A></span> : <b>out</b> String);
-
- <b>function</b> <span class="symbol"><A NAME="ref_281_14" HREF="terminal_interface-curses-forms__adb.htm#ref_74_13">Request_Name</A></span> (<span class="symbol"><A NAME="ref_281_28" HREF="terminal_interface-curses-forms__adb.htm#ref_74_27">Key</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</A>) <b>return</b> String;
- <span class="comment"><EM>-- Same as function</EM></span>
+ <b>type</b> <span class="symbol"><a name="ref_136_9">Field_Array_Access</a></span> <b>is</b> <b>access</b> Field_Array;
+
+ <b>procedure</b> <span class="symbol"><a name="ref_138_14" href="terminal_interface-curses-forms__adb.htm#ref_1002_14">Free</a></span> (<span class="symbol"><a name="ref_138_20" href="terminal_interface-curses-forms__adb.htm#ref_1002_20">FA</a></span> : <b>in</b> <b>out</b> <a href="terminal_interface-curses-forms__ads.htm#ref_136_9">Field_Array_Access</a>;
+ <span class="symbol"><a name="ref_139_20" href="terminal_interface-curses-forms__adb.htm#ref_1003_20">Free_Fields</a></span> : Boolean := False);
+ <span class="comment"><em>-- Release the memory for an allocated field array</em></span>
+ <span class="comment"><em>-- If Free_Fields is True, call Delete() for all the fields in</em></span>
+ <span class="comment"><em>-- the array.</em></span>
+
+ <b>subtype</b> <span class="symbol"><a name="ref_144_12">Form_Request_Code</a></span> <b>is</b> <a href="terminal_interface-curses__ads.htm#ref_67_9">Key_Code</a> <b>range</b> (<a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 1) .. (<a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 57);
+
+ <span class="comment"><em>-- The prefix F_ stands for "Form Request"</em></span>
+ <span class="symbol"><a name="ref_147_4">F_Next_Page</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 1;
+ <span class="symbol"><a name="ref_148_4">F_Previous_Page</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 2;
+ <span class="symbol"><a name="ref_149_4">F_First_Page</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 3;
+ <span class="symbol"><a name="ref_150_4">F_Last_Page</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 4;
+
+ <span class="symbol"><a name="ref_152_4">F_Next_Field</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 5;
+ <span class="symbol"><a name="ref_153_4">F_Previous_Field</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 6;
+ <span class="symbol"><a name="ref_154_4">F_First_Field</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 7;
+ <span class="symbol"><a name="ref_155_4">F_Last_Field</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 8;
+ <span class="symbol"><a name="ref_156_4">F_Sorted_Next_Field</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 9;
+ <span class="symbol"><a name="ref_157_4">F_Sorted_Previous_Field</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 10;
+ <span class="symbol"><a name="ref_158_4">F_Sorted_First_Field</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 11;
+ <span class="symbol"><a name="ref_159_4">F_Sorted_Last_Field</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 12;
+ <span class="symbol"><a name="ref_160_4">F_Left_Field</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 13;
+ <span class="symbol"><a name="ref_161_4">F_Right_Field</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 14;
+ <span class="symbol"><a name="ref_162_4">F_Up_Field</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 15;
+ <span class="symbol"><a name="ref_163_4">F_Down_Field</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 16;
+
+ <span class="symbol"><a name="ref_165_4">F_Next_Char</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 17;
+ <span class="symbol"><a name="ref_166_4">F_Previous_Char</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 18;
+ <span class="symbol"><a name="ref_167_4">F_Next_Line</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 19;
+ <span class="symbol"><a name="ref_168_4">F_Previous_Line</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 20;
+ <span class="symbol"><a name="ref_169_4">F_Next_Word</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 21;
+ <span class="symbol"><a name="ref_170_4">F_Previous_Word</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 22;
+ <span class="symbol"><a name="ref_171_4">F_Begin_Field</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 23;
+ <span class="symbol"><a name="ref_172_4">F_End_Field</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 24;
+ <span class="symbol"><a name="ref_173_4">F_Begin_Line</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 25;
+ <span class="symbol"><a name="ref_174_4">F_End_Line</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 26;
+ <span class="symbol"><a name="ref_175_4">F_Left_Char</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 27;
+ <span class="symbol"><a name="ref_176_4">F_Right_Char</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 28;
+ <span class="symbol"><a name="ref_177_4">F_Up_Char</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 29;
+ <span class="symbol"><a name="ref_178_4">F_Down_Char</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 30;
+
+ <span class="symbol"><a name="ref_180_4">F_New_Line</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 31;
+ <span class="symbol"><a name="ref_181_4">F_Insert_Char</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 32;
+ <span class="symbol"><a name="ref_182_4">F_Insert_Line</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 33;
+ <span class="symbol"><a name="ref_183_4">F_Delete_Char</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 34;
+ <span class="symbol"><a name="ref_184_4">F_Delete_Previous</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 35;
+ <span class="symbol"><a name="ref_185_4">F_Delete_Line</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 36;
+ <span class="symbol"><a name="ref_186_4">F_Delete_Word</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 37;
+ <span class="symbol"><a name="ref_187_4">F_Clear_EOL</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 38;
+ <span class="symbol"><a name="ref_188_4">F_Clear_EOF</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 39;
+ <span class="symbol"><a name="ref_189_4">F_Clear_Field</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 40;
+ <span class="symbol"><a name="ref_190_4">F_Overlay_Mode</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 41;
+ <span class="symbol"><a name="ref_191_4">F_Insert_Mode</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 42;
+
+ <span class="comment"><em>-- Vertical Scrolling</em></span>
+ <span class="symbol"><a name="ref_194_4">F_ScrollForward_Line</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 43;
+ <span class="symbol"><a name="ref_195_4">F_ScrollBackward_Line</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 44;
+ <span class="symbol"><a name="ref_196_4">F_ScrollForward_Page</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 45;
+ <span class="symbol"><a name="ref_197_4">F_ScrollBackward_Page</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 46;
+ <span class="symbol"><a name="ref_198_4">F_ScrollForward_HalfPage</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 47;
+ <span class="symbol"><a name="ref_199_4">F_ScrollBackward_HalfPage</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 48;
+
+ <span class="comment"><em>-- Horizontal Scrolling</em></span>
+ <span class="symbol"><a name="ref_202_4">F_HScrollForward_Char</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 49;
+ <span class="symbol"><a name="ref_203_4">F_HScrollBackward_Char</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 50;
+ <span class="symbol"><a name="ref_204_4">F_HScrollForward_Line</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 51;
+ <span class="symbol"><a name="ref_205_4">F_HScrollBackward_Line</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 52;
+ <span class="symbol"><a name="ref_206_4">F_HScrollForward_HalfLine</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 53;
+ <span class="symbol"><a name="ref_207_4">F_HScrollBackward_HalfLine</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 54;
+
+ <span class="symbol"><a name="ref_209_4">F_Validate_Field</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 55;
+ <span class="symbol"><a name="ref_210_4">F_Next_Choice</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 56;
+ <span class="symbol"><a name="ref_211_4">F_Previous_Choice</a></span> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 57;
+
+ <span class="comment"><em>-- For those who like the old 'C' style request names</em></span>
+ REQ_NEXT_PAGE : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_147_4">F_Next_Page</a>;
+ REQ_PREV_PAGE : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_148_4">F_Previous_Page</a>;
+ REQ_FIRST_PAGE : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_149_4">F_First_Page</a>;
+ REQ_LAST_PAGE : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_150_4">F_Last_Page</a>;
+
+ REQ_NEXT_FIELD : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_152_4">F_Next_Field</a>;
+ REQ_PREV_FIELD : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_153_4">F_Previous_Field</a>;
+ REQ_FIRST_FIELD : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_154_4">F_First_Field</a>;
+ REQ_LAST_FIELD : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_155_4">F_Last_Field</a>;
+ REQ_SNEXT_FIELD : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_156_4">F_Sorted_Next_Field</a>;
+ REQ_SPREV_FIELD : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_157_4">F_Sorted_Previous_Field</a>;
+ REQ_SFIRST_FIELD : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_158_4">F_Sorted_First_Field</a>;
+ REQ_SLAST_FIELD : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_159_4">F_Sorted_Last_Field</a>;
+ REQ_LEFT_FIELD : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_160_4">F_Left_Field</a>;
+ REQ_RIGHT_FIELD : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_161_4">F_Right_Field</a>;
+ REQ_UP_FIELD : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_162_4">F_Up_Field</a>;
+ REQ_DOWN_FIELD : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_163_4">F_Down_Field</a>;
+
+ REQ_NEXT_CHAR : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_165_4">F_Next_Char</a>;
+ REQ_PREV_CHAR : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_166_4">F_Previous_Char</a>;
+ REQ_NEXT_LINE : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_167_4">F_Next_Line</a>;
+ REQ_PREV_LINE : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_168_4">F_Previous_Line</a>;
+ REQ_NEXT_WORD : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_169_4">F_Next_Word</a>;
+ REQ_PREV_WORD : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_170_4">F_Previous_Word</a>;
+ REQ_BEG_FIELD : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_171_4">F_Begin_Field</a>;
+ REQ_END_FIELD : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_172_4">F_End_Field</a>;
+ REQ_BEG_LINE : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_173_4">F_Begin_Line</a>;
+ REQ_END_LINE : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_174_4">F_End_Line</a>;
+ REQ_LEFT_CHAR : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_175_4">F_Left_Char</a>;
+ REQ_RIGHT_CHAR : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_176_4">F_Right_Char</a>;
+ REQ_UP_CHAR : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_177_4">F_Up_Char</a>;
+ REQ_DOWN_CHAR : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_178_4">F_Down_Char</a>;
+
+ REQ_NEW_LINE : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_180_4">F_New_Line</a>;
+ REQ_INS_CHAR : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_181_4">F_Insert_Char</a>;
+ REQ_INS_LINE : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_182_4">F_Insert_Line</a>;
+ REQ_DEL_CHAR : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_183_4">F_Delete_Char</a>;
+ REQ_DEL_PREV : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_184_4">F_Delete_Previous</a>;
+ REQ_DEL_LINE : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_185_4">F_Delete_Line</a>;
+ REQ_DEL_WORD : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_186_4">F_Delete_Word</a>;
+ REQ_CLR_EOL : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_187_4">F_Clear_EOL</a>;
+ REQ_CLR_EOF : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_188_4">F_Clear_EOF</a>;
+ REQ_CLR_FIELD : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_189_4">F_Clear_Field</a>;
+ REQ_OVL_MODE : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_190_4">F_Overlay_Mode</a>;
+ REQ_INS_MODE : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_191_4">F_Insert_Mode</a>;
+
+ REQ_SCR_FLINE : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_194_4">F_ScrollForward_Line</a>;
+ REQ_SCR_BLINE : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_195_4">F_ScrollBackward_Line</a>;
+ REQ_SCR_FPAGE : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_196_4">F_ScrollForward_Page</a>;
+ REQ_SCR_BPAGE : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_197_4">F_ScrollBackward_Page</a>;
+ REQ_SCR_FHPAGE : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_198_4">F_ScrollForward_HalfPage</a>;
+ REQ_SCR_BHPAGE : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_199_4">F_ScrollBackward_HalfPage</a>;
+
+ REQ_SCR_FCHAR : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_202_4">F_HScrollForward_Char</a>;
+ REQ_SCR_BCHAR : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_203_4">F_HScrollBackward_Char</a>;
+ REQ_SCR_HFLINE : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_204_4">F_HScrollForward_Line</a>;
+ REQ_SCR_HBLINE : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_205_4">F_HScrollBackward_Line</a>;
+ REQ_SCR_HFHALF : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_206_4">F_HScrollForward_HalfLine</a>;
+ REQ_SCR_HBHALF : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_207_4">F_HScrollBackward_HalfLine</a>;
+
+ REQ_VALIDATION : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_209_4">F_Validate_Field</a>;
+ REQ_NEXT_CHOICE : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_210_4">F_Next_Choice</a>;
+ REQ_PREV_CHOICE : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_211_4">F_Previous_Choice</a>;
+
+ <b>procedure</b> <span class="symbol"><a name="ref_278_14" href="terminal_interface-curses-forms__adb.htm#ref_65_14">Request_Name</a></span> (<span class="symbol"><a name="ref_278_28" href="terminal_interface-curses-forms__adb.htm#ref_65_28">Key</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a>;
+ <span class="symbol"><a name="ref_279_28" href="terminal_interface-curses-forms__adb.htm#ref_66_33">Name</a></span> : <b>out</b> String);
+
+ <b>function</b> <span class="symbol"><a name="ref_281_14" href="terminal_interface-curses-forms__adb.htm#ref_74_13">Request_Name</a></span> (<span class="symbol"><a name="ref_281_28" href="terminal_interface-curses-forms__adb.htm#ref_74_27">Key</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_144_12">Form_Request_Code</a>) <b>return</b> String;
+ <span class="comment"><em>-- Same as function</em></span>
<b>pragma</b> Inline (Request_Name);
- <span class="comment"><EM>------------------</EM></span>
- <span class="comment"><EM>-- Exceptions --</EM></span>
- <span class="comment"><EM>------------------</EM></span>
- <span class="symbol"><A NAME="ref_288_4">Form_Exception</A></span> : <b>exception</b>;
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/form_field_new.3x.html">form_field_new.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_1">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_295_13" HREF="terminal_interface-curses-forms__adb.htm#ref_92_13">Create</A></span> (<span class="symbol"><A NAME="ref_295_21" HREF="terminal_interface-curses-forms__adb.htm#ref_92_21">Height</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</A>;
- <span class="symbol"><A NAME="ref_296_21" HREF="terminal_interface-curses-forms__adb.htm#ref_93_21">Width</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</A>;
- <span class="symbol"><A NAME="ref_297_21" HREF="terminal_interface-curses-forms__adb.htm#ref_94_21">Top</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_298_21" HREF="terminal_interface-curses-forms__adb.htm#ref_95_21">Left</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_299_21" HREF="terminal_interface-curses-forms__adb.htm#ref_96_21">Off_Screen</A></span> : Natural := 0;
- <span class="symbol"><A NAME="ref_300_21" HREF="terminal_interface-curses-forms__adb.htm#ref_97_21">More_Buffers</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A>'First)
- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_new.3x.html">new_field()</A></EM></span>
- <span class="comment"><EM>-- An overloaded Create is defined later. Pragma Inline appears there.</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_2">|</A></EM></span>
- <b>function</b> New_Field (<span class="symbol"><A NAME="ref_306_24">Height</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</A>;
- <span class="symbol"><A NAME="ref_307_24">Width</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</A>;
- <span class="symbol"><A NAME="ref_308_24">Top</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_309_24">Left</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_310_24">Off_Screen</A></span> : Natural := 0;
- <span class="symbol"><A NAME="ref_311_24">More_Buffers</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A>'First)
- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_295_13">Create</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_new.3x.html">new_field()</A></EM></span>
+ <span class="comment"><em>------------------</em></span>
+ <span class="comment"><em>-- Exceptions --</em></span>
+ <span class="comment"><em>------------------</em></span>
+ <span class="symbol"><a name="ref_288_4">Form_Exception</a></span> : <b>exception</b>;
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/form_field_new.3x.html">form_field_new.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_1">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_295_13" href="terminal_interface-curses-forms__adb.htm#ref_92_13">Create</a></span> (<span class="symbol"><a name="ref_295_21" href="terminal_interface-curses-forms__adb.htm#ref_92_21">Height</a></span> : <a href="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</a>;
+ <span class="symbol"><a name="ref_296_21" href="terminal_interface-curses-forms__adb.htm#ref_93_21">Width</a></span> : <a href="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</a>;
+ <span class="symbol"><a name="ref_297_21" href="terminal_interface-curses-forms__adb.htm#ref_94_21">Top</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_298_21" href="terminal_interface-curses-forms__adb.htm#ref_95_21">Left</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_299_21" href="terminal_interface-curses-forms__adb.htm#ref_96_21">Off_Screen</a></span> : Natural := 0;
+ <span class="symbol"><a name="ref_300_21" href="terminal_interface-curses-forms__adb.htm#ref_97_21">More_Buffers</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</a> := <a href="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</a>'First)
+ <b>return</b> <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_field_new.3x.html">new_field()</A></em></span>
+ <span class="comment"><em>-- An overloaded Create is defined later. Pragma Inline appears there.</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_2">|</A></em></span>
+ <b>function</b> New_Field (<span class="symbol"><a name="ref_306_24">Height</a></span> : <a href="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</a>;
+ <span class="symbol"><a name="ref_307_24">Width</a></span> : <a href="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</a>;
+ <span class="symbol"><a name="ref_308_24">Top</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_309_24">Left</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_310_24">Off_Screen</a></span> : Natural := 0;
+ <span class="symbol"><a name="ref_311_24">More_Buffers</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</a> := <a href="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</a>'First)
+ <b>return</b> <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a> <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_295_13">Create</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_field_new.3x.html">new_field()</A></em></span>
<b>pragma</b> Inline (New_Field);
- <span class="comment"><EM>-- <A NAME="AFU_3">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_317_14" HREF="terminal_interface-curses-forms__adb.htm#ref_115_14">Delete</A></span> (<span class="symbol"><A NAME="ref_317_22" HREF="terminal_interface-curses-forms__adb.htm#ref_115_22">Fld</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_new.3x.html">free_field()</A></EM></span>
- <span class="comment"><EM>-- Reset Fld to Null_Field</EM></span>
- <span class="comment"><EM>-- An overloaded Delete is defined later. Pragma Inline appears there.</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_4">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_323_13" HREF="terminal_interface-curses-forms__adb.htm#ref_127_13">Duplicate</A></span> (<span class="symbol"><A NAME="ref_323_24" HREF="terminal_interface-curses-forms__adb.htm#ref_127_24">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_324_24" HREF="terminal_interface-curses-forms__adb.htm#ref_128_24">Top</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_325_24" HREF="terminal_interface-curses-forms__adb.htm#ref_129_24">Left</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_new.3x.html">dup_field()</A></EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_3">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_317_14" href="terminal_interface-curses-forms__adb.htm#ref_115_14">Delete</a></span> (<span class="symbol"><a name="ref_317_22" href="terminal_interface-curses-forms__adb.htm#ref_115_22">Fld</a></span> : <b>in</b> <b>out</b> <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_field_new.3x.html">free_field()</A></em></span>
+ <span class="comment"><em>-- Reset Fld to Null_Field</em></span>
+ <span class="comment"><em>-- An overloaded Delete is defined later. Pragma Inline appears there.</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_4">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_323_13" href="terminal_interface-curses-forms__adb.htm#ref_127_13">Duplicate</a></span> (<span class="symbol"><a name="ref_323_24" href="terminal_interface-curses-forms__adb.htm#ref_127_24">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_324_24" href="terminal_interface-curses-forms__adb.htm#ref_128_24">Top</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_325_24" href="terminal_interface-curses-forms__adb.htm#ref_129_24">Left</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>) <b>return</b> <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_field_new.3x.html">dup_field()</A></em></span>
<b>pragma</b> Inline (Duplicate);
- <span class="comment"><EM>-- <A NAME="AFU_5">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_330_13" HREF="terminal_interface-curses-forms__adb.htm#ref_148_13">Link</A></span> (<span class="symbol"><A NAME="ref_330_19" HREF="terminal_interface-curses-forms__adb.htm#ref_148_19">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_331_19" HREF="terminal_interface-curses-forms__adb.htm#ref_149_19">Top</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_332_19" HREF="terminal_interface-curses-forms__adb.htm#ref_150_19">Left</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_new.3x.html">link_field()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_330_13">Link</A>);
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/form_field_just.3x.html">form_field_just.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_6">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_341_14" HREF="terminal_interface-curses-forms__adb.htm#ref_173_14">Set_Justification</A></span> (<span class="symbol"><A NAME="ref_341_33" HREF="terminal_interface-curses-forms__adb.htm#ref_173_33">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_342_33" HREF="terminal_interface-curses-forms__adb.htm#ref_174_33">Just</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_58_9">Field_Justification</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_58_33">None</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_just.3x.html">set_field_just()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_341_14">Set_Justification</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_7">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_347_13" HREF="terminal_interface-curses-forms__adb.htm#ref_187_13">Get_Justification</A></span> (<span class="symbol"><A NAME="ref_347_32" HREF="terminal_interface-curses-forms__adb.htm#ref_187_32">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_58_9">Field_Justification</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_just.3x.html">field_just()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_347_13">Get_Justification</A>);
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/form_field_buffer.3x.html">form_field_buffer.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_8">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_356_14" HREF="terminal_interface-curses-forms__adb.htm#ref_201_14">Set_Buffer</A></span>
- (<span class="symbol"><A NAME="ref_357_7" HREF="terminal_interface-curses-forms__adb.htm#ref_202_7">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_358_7" HREF="terminal_interface-curses-forms__adb.htm#ref_203_7">Buffer</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A>'First;
- <span class="symbol"><A NAME="ref_359_7" HREF="terminal_interface-curses-forms__adb.htm#ref_204_7">Str</A></span> : String);
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_buffer.3x.html">set_field_buffer()</A></EM></span>
- <span class="comment"><EM>-- Not inlined</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_9">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_364_14" HREF="terminal_interface-curses-forms__adb.htm#ref_218_14">Get_Buffer</A></span>
- (<span class="symbol"><A NAME="ref_365_7" HREF="terminal_interface-curses-forms__adb.htm#ref_219_7">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_366_7" HREF="terminal_interface-curses-forms__adb.htm#ref_220_7">Buffer</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A>'First;
- <span class="symbol"><A NAME="ref_367_7" HREF="terminal_interface-curses-forms__adb.htm#ref_221_7">Str</A></span> : <b>out</b> String);
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_buffer.3x.html">field_buffer()</A></EM></span>
-
- <b>function</b> <span class="symbol"><A NAME="ref_370_13" HREF="terminal_interface-curses-forms__adb.htm#ref_230_13">Get_Buffer</A></span>
- (<span class="symbol"><A NAME="ref_371_7" HREF="terminal_interface-curses-forms__adb.htm#ref_231_7">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_372_7" HREF="terminal_interface-curses-forms__adb.htm#ref_232_7">Buffer</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A>'First) <b>return</b> String;
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_buffer.3x.html">field_buffer()</A></EM></span>
- <span class="comment"><EM>-- Same but as function</EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_5">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_330_13" href="terminal_interface-curses-forms__adb.htm#ref_148_13">Link</a></span> (<span class="symbol"><a name="ref_330_19" href="terminal_interface-curses-forms__adb.htm#ref_148_19">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_331_19" href="terminal_interface-curses-forms__adb.htm#ref_149_19">Top</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_332_19" href="terminal_interface-curses-forms__adb.htm#ref_150_19">Left</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>) <b>return</b> <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_field_new.3x.html">link_field()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-forms__ads.htm#ref_330_13">Link</a>);
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/form_field_just.3x.html">form_field_just.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_6">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_341_14" href="terminal_interface-curses-forms__adb.htm#ref_173_14">Set_Justification</a></span> (<span class="symbol"><a name="ref_341_33" href="terminal_interface-curses-forms__adb.htm#ref_173_33">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_342_33" href="terminal_interface-curses-forms__adb.htm#ref_174_33">Just</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_58_9">Field_Justification</a> := <a href="terminal_interface-curses-forms__ads.htm#ref_58_33">None</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_field_just.3x.html">set_field_just()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-forms__ads.htm#ref_341_14">Set_Justification</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_7">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_347_13" href="terminal_interface-curses-forms__adb.htm#ref_187_13">Get_Justification</a></span> (<span class="symbol"><a name="ref_347_32" href="terminal_interface-curses-forms__adb.htm#ref_187_32">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>) <b>return</b> <a href="terminal_interface-curses-forms__ads.htm#ref_58_9">Field_Justification</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_field_just.3x.html">field_just()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-forms__ads.htm#ref_347_13">Get_Justification</a>);
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/form_field_buffer.3x.html">form_field_buffer.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_8">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_356_14" href="terminal_interface-curses-forms__adb.htm#ref_201_14">Set_Buffer</a></span>
+ (<span class="symbol"><a name="ref_357_7" href="terminal_interface-curses-forms__adb.htm#ref_202_7">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_358_7" href="terminal_interface-curses-forms__adb.htm#ref_203_7">Buffer</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</a> := <a href="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</a>'First;
+ <span class="symbol"><a name="ref_359_7" href="terminal_interface-curses-forms__adb.htm#ref_204_7">Str</a></span> : String);
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_field_buffer.3x.html">set_field_buffer()</A></em></span>
+ <span class="comment"><em>-- Not inlined</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_9">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_364_14" href="terminal_interface-curses-forms__adb.htm#ref_218_14">Get_Buffer</a></span>
+ (<span class="symbol"><a name="ref_365_7" href="terminal_interface-curses-forms__adb.htm#ref_219_7">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_366_7" href="terminal_interface-curses-forms__adb.htm#ref_220_7">Buffer</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</a> := <a href="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</a>'First;
+ <span class="symbol"><a name="ref_367_7" href="terminal_interface-curses-forms__adb.htm#ref_221_7">Str</a></span> : <b>out</b> String);
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_field_buffer.3x.html">field_buffer()</A></em></span>
+
+ <b>function</b> <span class="symbol"><a name="ref_370_13" href="terminal_interface-curses-forms__adb.htm#ref_230_13">Get_Buffer</a></span>
+ (<span class="symbol"><a name="ref_371_7" href="terminal_interface-curses-forms__adb.htm#ref_231_7">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_372_7" href="terminal_interface-curses-forms__adb.htm#ref_232_7">Buffer</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</a> := <a href="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</a>'First) <b>return</b> String;
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_field_buffer.3x.html">field_buffer()</A></em></span>
+ <span class="comment"><em>-- Same but as function</em></span>
<b>pragma</b> Inline (Get_Buffer);
- <span class="comment"><EM>-- <A NAME="AFU_10">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_378_14" HREF="terminal_interface-curses-forms__adb.htm#ref_243_14">Set_Status</A></span> (<span class="symbol"><A NAME="ref_378_26" HREF="terminal_interface-curses-forms__adb.htm#ref_243_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_379_26" HREF="terminal_interface-curses-forms__adb.htm#ref_244_26">Status</A></span> : Boolean := True);
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_buffer.3x.html">set_field_status()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_378_14">Set_Status</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_11">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_384_13" HREF="terminal_interface-curses-forms__adb.htm#ref_258_13">Changed</A></span> (<span class="symbol"><A NAME="ref_384_22" HREF="terminal_interface-curses-forms__adb.htm#ref_258_22">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>) <b>return</b> Boolean;
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_buffer.3x.html">field_status()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_384_13">Changed</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_12">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_389_14" HREF="terminal_interface-curses-forms__adb.htm#ref_274_14">Set_Maximum_Size</A></span> (<span class="symbol"><A NAME="ref_389_32" HREF="terminal_interface-curses-forms__adb.htm#ref_274_32">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_390_32" HREF="terminal_interface-curses-forms__adb.htm#ref_275_32">Max</A></span> : Natural := 0);
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_buffer.3x.html">set_field_max()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_389_14">Set_Maximum_Size</A>);
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/form_field_opts.3x.html">form_field_opts.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_13">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_399_14" HREF="terminal_interface-curses-forms__adb.htm#ref_291_14">Set_Options</A></span> (<span class="symbol"><A NAME="ref_399_27" HREF="terminal_interface-curses-forms__adb.htm#ref_291_27">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_400_27" HREF="terminal_interface-curses-forms__adb.htm#ref_292_27">Options</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_63_9">Field_Option_Set</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_opts.3x.html">set_field_opts()</A></EM></span>
- <span class="comment"><EM>-- An overloaded version is defined later. Pragma Inline appears there</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_14">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_405_14" HREF="terminal_interface-curses-forms__adb.htm#ref_304_14">Switch_Options</A></span> (<span class="symbol"><A NAME="ref_405_30" HREF="terminal_interface-curses-forms__adb.htm#ref_304_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_406_30" HREF="terminal_interface-curses-forms__adb.htm#ref_305_30">Options</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_63_9">Field_Option_Set</A>;
- <span class="symbol"><A NAME="ref_407_30" HREF="terminal_interface-curses-forms__adb.htm#ref_306_30">On</A></span> : Boolean := True);
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_opts.3x.html">field_opts_on()</A></EM></span>
- <span class="comment"><EM>-- AKA: field_opts_off()</EM></span>
- <span class="comment"><EM>-- An overloaded version is defined later. Pragma Inline appears there</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_15">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_413_14" HREF="terminal_interface-curses-forms__adb.htm#ref_325_14">Get_Options</A></span> (<span class="symbol"><A NAME="ref_413_27" HREF="terminal_interface-curses-forms__adb.htm#ref_325_27">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_414_27" HREF="terminal_interface-curses-forms__adb.htm#ref_326_27">Options</A></span> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_63_9">Field_Option_Set</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_opts.3x.html">field_opts()</A></EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_16">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_418_13" HREF="terminal_interface-curses-forms__adb.htm#ref_337_13">Get_Options</A></span> (<span class="symbol"><A NAME="ref_418_26" HREF="terminal_interface-curses-forms__adb.htm#ref_337_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_4">Null_Field</A>)
- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_63_9">Field_Option_Set</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_opts.3x.html">field_opts()</A></EM></span>
- <span class="comment"><EM>-- An overloaded version is defined later. Pragma Inline appears there</EM></span>
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/form_field_attributes.3x.html">form_field_attributes.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_17">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_428_14" HREF="terminal_interface-curses-forms__adb.htm#ref_352_14">Set_Foreground</A></span>
- (<span class="symbol"><A NAME="ref_429_7" HREF="terminal_interface-curses-forms__adb.htm#ref_353_7">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_430_7" HREF="terminal_interface-curses-forms__adb.htm#ref_354_7">Fore</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</A>;
- <span class="symbol"><A NAME="ref_431_7" HREF="terminal_interface-curses-forms__adb.htm#ref_355_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>'First);
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">set_field_fore()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_428_14">Set_Foreground</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_18">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_436_14" HREF="terminal_interface-curses-forms__adb.htm#ref_369_14">Foreground</A></span> (<span class="symbol"><A NAME="ref_436_26" HREF="terminal_interface-curses-forms__adb.htm#ref_369_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_437_26" HREF="terminal_interface-curses-forms__adb.htm#ref_370_26">Fore</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">field_fore()</A></EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_19">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_441_14" HREF="terminal_interface-curses-forms__adb.htm#ref_378_14">Foreground</A></span> (<span class="symbol"><A NAME="ref_441_26" HREF="terminal_interface-curses-forms__adb.htm#ref_378_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_442_26" HREF="terminal_interface-curses-forms__adb.htm#ref_379_26">Fore</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A>;
- <span class="symbol"><A NAME="ref_443_26" HREF="terminal_interface-curses-forms__adb.htm#ref_380_26">Color</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">field_fore()</A></EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_10">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_378_14" href="terminal_interface-curses-forms__adb.htm#ref_243_14">Set_Status</a></span> (<span class="symbol"><a name="ref_378_26" href="terminal_interface-curses-forms__adb.htm#ref_243_26">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_379_26" href="terminal_interface-curses-forms__adb.htm#ref_244_26">Status</a></span> : Boolean := True);
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_field_buffer.3x.html">set_field_status()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-forms__ads.htm#ref_378_14">Set_Status</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_11">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_384_13" href="terminal_interface-curses-forms__adb.htm#ref_258_13">Changed</a></span> (<span class="symbol"><a name="ref_384_22" href="terminal_interface-curses-forms__adb.htm#ref_258_22">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>) <b>return</b> Boolean;
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_field_buffer.3x.html">field_status()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-forms__ads.htm#ref_384_13">Changed</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_12">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_389_14" href="terminal_interface-curses-forms__adb.htm#ref_274_14">Set_Maximum_Size</a></span> (<span class="symbol"><a name="ref_389_32" href="terminal_interface-curses-forms__adb.htm#ref_274_32">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_390_32" href="terminal_interface-curses-forms__adb.htm#ref_275_32">Max</a></span> : Natural := 0);
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_field_buffer.3x.html">set_field_max()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-forms__ads.htm#ref_389_14">Set_Maximum_Size</a>);
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/form_field_opts.3x.html">form_field_opts.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_13">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_399_14" href="terminal_interface-curses-forms__adb.htm#ref_291_14">Set_Options</a></span> (<span class="symbol"><a name="ref_399_27" href="terminal_interface-curses-forms__adb.htm#ref_291_27">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_400_27" href="terminal_interface-curses-forms__adb.htm#ref_292_27">Options</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_63_9">Field_Option_Set</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_field_opts.3x.html">set_field_opts()</A></em></span>
+ <span class="comment"><em>-- An overloaded version is defined later. Pragma Inline appears there</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_14">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_405_14" href="terminal_interface-curses-forms__adb.htm#ref_304_14">Switch_Options</a></span> (<span class="symbol"><a name="ref_405_30" href="terminal_interface-curses-forms__adb.htm#ref_304_30">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_406_30" href="terminal_interface-curses-forms__adb.htm#ref_305_30">Options</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_63_9">Field_Option_Set</a>;
+ <span class="symbol"><a name="ref_407_30" href="terminal_interface-curses-forms__adb.htm#ref_306_30">On</a></span> : Boolean := True);
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_field_opts.3x.html">field_opts_on()</A></em></span>
+ <span class="comment"><em>-- AKA: field_opts_off()</em></span>
+ <span class="comment"><em>-- An overloaded version is defined later. Pragma Inline appears there</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_15">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_413_14" href="terminal_interface-curses-forms__adb.htm#ref_325_14">Get_Options</a></span> (<span class="symbol"><a name="ref_413_27" href="terminal_interface-curses-forms__adb.htm#ref_325_27">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_414_27" href="terminal_interface-curses-forms__adb.htm#ref_326_27">Options</a></span> : <b>out</b> <a href="terminal_interface-curses-forms__ads.htm#ref_63_9">Field_Option_Set</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_field_opts.3x.html">field_opts()</A></em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_16">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_418_13" href="terminal_interface-curses-forms__adb.htm#ref_337_13">Get_Options</a></span> (<span class="symbol"><a name="ref_418_26" href="terminal_interface-curses-forms__adb.htm#ref_337_26">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a> := <a href="terminal_interface-curses-forms__ads.htm#ref_55_4">Null_Field</a>)
+ <b>return</b> <a href="terminal_interface-curses-forms__ads.htm#ref_63_9">Field_Option_Set</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_field_opts.3x.html">field_opts()</A></em></span>
+ <span class="comment"><em>-- An overloaded version is defined later. Pragma Inline appears there</em></span>
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/form_field_attributes.3x.html">form_field_attributes.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_17">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_428_14" href="terminal_interface-curses-forms__adb.htm#ref_352_14">Set_Foreground</a></span>
+ (<span class="symbol"><a name="ref_429_7" href="terminal_interface-curses-forms__adb.htm#ref_353_7">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_430_7" href="terminal_interface-curses-forms__adb.htm#ref_354_7">Fore</a></span> : <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a> := <a href="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</a>;
+ <span class="symbol"><a name="ref_431_7" href="terminal_interface-curses-forms__adb.htm#ref_355_7">Color</a></span> : <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a> := <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>'First);
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_field_attributes.3x.html">set_field_fore()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-forms__ads.htm#ref_428_14">Set_Foreground</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_18">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_436_14" href="terminal_interface-curses-forms__adb.htm#ref_369_14">Foreground</a></span> (<span class="symbol"><a name="ref_436_26" href="terminal_interface-curses-forms__adb.htm#ref_369_26">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_437_26" href="terminal_interface-curses-forms__adb.htm#ref_370_26">Fore</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_field_attributes.3x.html">field_fore()</A></em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_19">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_441_14" href="terminal_interface-curses-forms__adb.htm#ref_378_14">Foreground</a></span> (<span class="symbol"><a name="ref_441_26" href="terminal_interface-curses-forms__adb.htm#ref_378_26">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_442_26" href="terminal_interface-curses-forms__adb.htm#ref_379_26">Fore</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a>;
+ <span class="symbol"><a name="ref_443_26" href="terminal_interface-curses-forms__adb.htm#ref_380_26">Color</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_field_attributes.3x.html">field_fore()</A></em></span>
<b>pragma</b> Inline (Foreground);
- <span class="comment"><EM>-- <A NAME="AFU_20">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_448_14" HREF="terminal_interface-curses-forms__adb.htm#ref_391_14">Set_Background</A></span>
- (<span class="symbol"><A NAME="ref_449_7" HREF="terminal_interface-curses-forms__adb.htm#ref_392_7">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_450_7" HREF="terminal_interface-curses-forms__adb.htm#ref_393_7">Back</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</A>;
- <span class="symbol"><A NAME="ref_451_7" HREF="terminal_interface-curses-forms__adb.htm#ref_394_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>'First);
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">set_field_back()</A></EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_20">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_448_14" href="terminal_interface-curses-forms__adb.htm#ref_391_14">Set_Background</a></span>
+ (<span class="symbol"><a name="ref_449_7" href="terminal_interface-curses-forms__adb.htm#ref_392_7">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_450_7" href="terminal_interface-curses-forms__adb.htm#ref_393_7">Back</a></span> : <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a> := <a href="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</a>;
+ <span class="symbol"><a name="ref_451_7" href="terminal_interface-curses-forms__adb.htm#ref_394_7">Color</a></span> : <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a> := <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>'First);
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_field_attributes.3x.html">set_field_back()</A></em></span>
<b>pragma</b> Inline (Set_Background);
- <span class="comment"><EM>-- <A NAME="AFU_21">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_456_14" HREF="terminal_interface-curses-forms__adb.htm#ref_408_14">Background</A></span> (<span class="symbol"><A NAME="ref_456_26" HREF="terminal_interface-curses-forms__adb.htm#ref_408_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_457_26" HREF="terminal_interface-curses-forms__adb.htm#ref_409_26">Back</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">field_back()</A></EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_21">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_456_14" href="terminal_interface-curses-forms__adb.htm#ref_408_14">Background</a></span> (<span class="symbol"><a name="ref_456_26" href="terminal_interface-curses-forms__adb.htm#ref_408_26">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_457_26" href="terminal_interface-curses-forms__adb.htm#ref_409_26">Back</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_field_attributes.3x.html">field_back()</A></em></span>
- <span class="comment"><EM>-- <A NAME="AFU_22">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_461_14" HREF="terminal_interface-curses-forms__adb.htm#ref_417_14">Background</A></span> (<span class="symbol"><A NAME="ref_461_26" HREF="terminal_interface-curses-forms__adb.htm#ref_417_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_462_26" HREF="terminal_interface-curses-forms__adb.htm#ref_418_26">Back</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A>;
- <span class="symbol"><A NAME="ref_463_26" HREF="terminal_interface-curses-forms__adb.htm#ref_419_26">Color</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">field_back()</A></EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_22">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_461_14" href="terminal_interface-curses-forms__adb.htm#ref_417_14">Background</a></span> (<span class="symbol"><a name="ref_461_26" href="terminal_interface-curses-forms__adb.htm#ref_417_26">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_462_26" href="terminal_interface-curses-forms__adb.htm#ref_418_26">Back</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a>;
+ <span class="symbol"><a name="ref_463_26" href="terminal_interface-curses-forms__adb.htm#ref_419_26">Color</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_field_attributes.3x.html">field_back()</A></em></span>
<b>pragma</b> Inline (Background);
- <span class="comment"><EM>-- <A NAME="AFU_23">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_468_14" HREF="terminal_interface-curses-forms__adb.htm#ref_430_14">Set_Pad_Character</A></span> (<span class="symbol"><A NAME="ref_468_33" HREF="terminal_interface-curses-forms__adb.htm#ref_430_33">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_469_33" HREF="terminal_interface-curses-forms__adb.htm#ref_431_33">Pad</A></span> : Character := Space);
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">set_field_pad()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_468_14">Set_Pad_Character</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_24">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_474_14" HREF="terminal_interface-curses-forms__adb.htm#ref_444_14">Pad_Character</A></span> (<span class="symbol"><A NAME="ref_474_29" HREF="terminal_interface-curses-forms__adb.htm#ref_444_29">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_475_29" HREF="terminal_interface-curses-forms__adb.htm#ref_445_29">Pad</A></span> : <b>out</b> Character);
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">field_pad()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_474_14">Pad_Character</A>);
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/form_field_info.3x.html">form_field_info.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_25">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_484_14" HREF="terminal_interface-curses-forms__adb.htm#ref_459_14">Info</A></span> (<span class="symbol"><A NAME="ref_484_20" HREF="terminal_interface-curses-forms__adb.htm#ref_459_20">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_485_20" HREF="terminal_interface-curses-forms__adb.htm#ref_460_20">Lines</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</A>;
- <span class="symbol"><A NAME="ref_486_20" HREF="terminal_interface-curses-forms__adb.htm#ref_461_20">Columns</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</A>;
- <span class="symbol"><A NAME="ref_487_20" HREF="terminal_interface-curses-forms__adb.htm#ref_462_20">First_Row</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_488_20" HREF="terminal_interface-curses-forms__adb.htm#ref_463_20">First_Column</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_489_20" HREF="terminal_interface-curses-forms__adb.htm#ref_464_20">Off_Screen</A></span> : <b>out</b> Natural;
- <span class="symbol"><A NAME="ref_490_20" HREF="terminal_interface-curses-forms__adb.htm#ref_465_20">Additional_Buffers</A></span> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_info.3x.html">field_info()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_484_14">Info</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_26">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_495_14" HREF="terminal_interface-curses-forms__adb.htm#ref_489_14">Dynamic_Info</A></span> (<span class="symbol"><A NAME="ref_495_28" HREF="terminal_interface-curses-forms__adb.htm#ref_489_28">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_496_28" HREF="terminal_interface-curses-forms__adb.htm#ref_490_28">Lines</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</A>;
- <span class="symbol"><A NAME="ref_497_28" HREF="terminal_interface-curses-forms__adb.htm#ref_491_28">Columns</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</A>;
- <span class="symbol"><A NAME="ref_498_28" HREF="terminal_interface-curses-forms__adb.htm#ref_492_28">Max</A></span> : <b>out</b> Natural);
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_info.3x.html">dynamic_field_info()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_495_14">Dynamic_Info</A>);
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/form_win.3x.html">form_win.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_27">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_507_14" HREF="terminal_interface-curses-forms__adb.htm#ref_514_14">Set_Window</A></span> (<span class="symbol"><A NAME="ref_507_26" HREF="terminal_interface-curses-forms__adb.htm#ref_514_26">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_508_26" HREF="terminal_interface-curses-forms__adb.htm#ref_515_26">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_win.3x.html">set_form_win()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_507_14">Set_Window</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_28">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_513_13" HREF="terminal_interface-curses-forms__adb.htm#ref_527_13">Get_Window</A></span> (<span class="symbol"><A NAME="ref_513_25" HREF="terminal_interface-curses-forms__adb.htm#ref_527_25">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_win.3x.html">form_win()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_513_13">Get_Window</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_29">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_518_14" HREF="terminal_interface-curses-forms__adb.htm#ref_539_14">Set_Sub_Window</A></span> (<span class="symbol"><A NAME="ref_518_30" HREF="terminal_interface-curses-forms__adb.htm#ref_539_30">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_519_30" HREF="terminal_interface-curses-forms__adb.htm#ref_540_30">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_win.3x.html">set_form_sub()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_518_14">Set_Sub_Window</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_30">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_524_13" HREF="terminal_interface-curses-forms__adb.htm#ref_552_13">Get_Sub_Window</A></span> (<span class="symbol"><A NAME="ref_524_29" HREF="terminal_interface-curses-forms__adb.htm#ref_552_29">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_win.3x.html">form_sub()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_524_13">Get_Sub_Window</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_31">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_529_14" HREF="terminal_interface-curses-forms__adb.htm#ref_564_14">Scale</A></span> (<span class="symbol"><A NAME="ref_529_21" HREF="terminal_interface-curses-forms__adb.htm#ref_564_21">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_530_21" HREF="terminal_interface-curses-forms__adb.htm#ref_565_21">Lines</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</A>;
- <span class="symbol"><A NAME="ref_531_21" HREF="terminal_interface-curses-forms__adb.htm#ref_566_21">Columns</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_win.3x.html">scale_form()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_529_14">Scale</A>);
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/form_hook.3x.html">form_hook.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <b>type</b> <span class="symbol"><A NAME="ref_539_9">Form_Hook_Function</A></span> <b>is</b> <b>access</b> <b>procedure</b> (<span class="symbol"><A NAME="ref_539_49" HREF="terminal_interface-curses-forms__ads.htm#ref_539_9">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>);
- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_32">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_543_14" HREF="terminal_interface-curses-forms__adb.htm#ref_585_14">Set_Field_Init_Hook</A></span> (<span class="symbol"><A NAME="ref_543_35" HREF="terminal_interface-curses-forms__adb.htm#ref_585_35">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_544_35" HREF="terminal_interface-curses-forms__adb.htm#ref_586_35">Proc</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_hook.3x.html">set_field_init()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_543_14">Set_Field_Init_Hook</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_33">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_549_14" HREF="terminal_interface-curses-forms__adb.htm#ref_598_14">Set_Field_Term_Hook</A></span> (<span class="symbol"><A NAME="ref_549_35" HREF="terminal_interface-curses-forms__adb.htm#ref_598_35">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_550_35" HREF="terminal_interface-curses-forms__adb.htm#ref_599_35">Proc</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_hook.3x.html">set_field_term()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_549_14">Set_Field_Term_Hook</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_34">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_555_14" HREF="terminal_interface-curses-forms__adb.htm#ref_611_14">Set_Form_Init_Hook</A></span> (<span class="symbol"><A NAME="ref_555_34" HREF="terminal_interface-curses-forms__adb.htm#ref_611_34">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_556_34" HREF="terminal_interface-curses-forms__adb.htm#ref_612_34">Proc</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_hook.3x.html">set_form_init()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_555_14">Set_Form_Init_Hook</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_35">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_561_14" HREF="terminal_interface-curses-forms__adb.htm#ref_624_14">Set_Form_Term_Hook</A></span> (<span class="symbol"><A NAME="ref_561_34" HREF="terminal_interface-curses-forms__adb.htm#ref_624_34">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_562_34" HREF="terminal_interface-curses-forms__adb.htm#ref_625_34">Proc</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_hook.3x.html">set_form_term()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_561_14">Set_Form_Term_Hook</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_36">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_567_13">Get_Field_Init_Hook</A></span> (<span class="symbol"><A NAME="ref_567_34" HREF="terminal_interface-curses-forms__ads.htm#ref_567_13">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_hook.3x.html">field_init()</A></EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_23">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_468_14" href="terminal_interface-curses-forms__adb.htm#ref_430_14">Set_Pad_Character</a></span> (<span class="symbol"><a name="ref_468_33" href="terminal_interface-curses-forms__adb.htm#ref_430_33">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_469_33" href="terminal_interface-curses-forms__adb.htm#ref_431_33">Pad</a></span> : Character := Space);
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_field_attributes.3x.html">set_field_pad()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-forms__ads.htm#ref_468_14">Set_Pad_Character</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_24">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_474_14" href="terminal_interface-curses-forms__adb.htm#ref_444_14">Pad_Character</a></span> (<span class="symbol"><a name="ref_474_29" href="terminal_interface-curses-forms__adb.htm#ref_444_29">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_475_29" href="terminal_interface-curses-forms__adb.htm#ref_445_29">Pad</a></span> : <b>out</b> Character);
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_field_attributes.3x.html">field_pad()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-forms__ads.htm#ref_474_14">Pad_Character</a>);
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/form_field_info.3x.html">form_field_info.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_25">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_484_14" href="terminal_interface-curses-forms__adb.htm#ref_459_14">Info</a></span> (<span class="symbol"><a name="ref_484_20" href="terminal_interface-curses-forms__adb.htm#ref_459_20">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_485_20" href="terminal_interface-curses-forms__adb.htm#ref_460_20">Lines</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</a>;
+ <span class="symbol"><a name="ref_486_20" href="terminal_interface-curses-forms__adb.htm#ref_461_20">Columns</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</a>;
+ <span class="symbol"><a name="ref_487_20" href="terminal_interface-curses-forms__adb.htm#ref_462_20">First_Row</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_488_20" href="terminal_interface-curses-forms__adb.htm#ref_463_20">First_Column</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_489_20" href="terminal_interface-curses-forms__adb.htm#ref_464_20">Off_Screen</a></span> : <b>out</b> Natural;
+ <span class="symbol"><a name="ref_490_20" href="terminal_interface-curses-forms__adb.htm#ref_465_20">Additional_Buffers</a></span> : <b>out</b> <a href="terminal_interface-curses-forms__ads.htm#ref_131_9">Buffer_Number</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_field_info.3x.html">field_info()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-forms__ads.htm#ref_484_14">Info</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_26">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_495_14" href="terminal_interface-curses-forms__adb.htm#ref_489_14">Dynamic_Info</a></span> (<span class="symbol"><a name="ref_495_28" href="terminal_interface-curses-forms__adb.htm#ref_489_28">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_496_28" href="terminal_interface-curses-forms__adb.htm#ref_490_28">Lines</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</a>;
+ <span class="symbol"><a name="ref_497_28" href="terminal_interface-curses-forms__adb.htm#ref_491_28">Columns</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</a>;
+ <span class="symbol"><a name="ref_498_28" href="terminal_interface-curses-forms__adb.htm#ref_492_28">Max</a></span> : <b>out</b> Natural);
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_field_info.3x.html">dynamic_field_info()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-forms__ads.htm#ref_495_14">Dynamic_Info</a>);
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/form_win.3x.html">form_win.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_27">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_507_14" href="terminal_interface-curses-forms__adb.htm#ref_514_14">Set_Window</a></span> (<span class="symbol"><a name="ref_507_26" href="terminal_interface-curses-forms__adb.htm#ref_514_26">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_508_26" href="terminal_interface-curses-forms__adb.htm#ref_515_26">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_win.3x.html">set_form_win()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-forms__ads.htm#ref_507_14">Set_Window</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_28">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_513_13" href="terminal_interface-curses-forms__adb.htm#ref_527_13">Get_Window</a></span> (<span class="symbol"><a name="ref_513_25" href="terminal_interface-curses-forms__adb.htm#ref_527_25">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_win.3x.html">form_win()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-forms__ads.htm#ref_513_13">Get_Window</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_29">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_518_14" href="terminal_interface-curses-forms__adb.htm#ref_539_14">Set_Sub_Window</a></span> (<span class="symbol"><a name="ref_518_30" href="terminal_interface-curses-forms__adb.htm#ref_539_30">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_519_30" href="terminal_interface-curses-forms__adb.htm#ref_540_30">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_win.3x.html">set_form_sub()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-forms__ads.htm#ref_518_14">Set_Sub_Window</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_30">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_524_13" href="terminal_interface-curses-forms__adb.htm#ref_552_13">Get_Sub_Window</a></span> (<span class="symbol"><a name="ref_524_29" href="terminal_interface-curses-forms__adb.htm#ref_552_29">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_win.3x.html">form_sub()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-forms__ads.htm#ref_524_13">Get_Sub_Window</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_31">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_529_14" href="terminal_interface-curses-forms__adb.htm#ref_564_14">Scale</a></span> (<span class="symbol"><a name="ref_529_21" href="terminal_interface-curses-forms__adb.htm#ref_564_21">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_530_21" href="terminal_interface-curses-forms__adb.htm#ref_565_21">Lines</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</a>;
+ <span class="symbol"><a name="ref_531_21" href="terminal_interface-curses-forms__adb.htm#ref_566_21">Columns</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_win.3x.html">scale_form()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-forms__ads.htm#ref_529_14">Scale</a>);
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/form_hook.3x.html">form_hook.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <b>type</b> <span class="symbol"><a name="ref_539_9">Form_Hook_Function</a></span> <b>is</b> <b>access</b> <b>procedure</b> (<span class="symbol"><a name="ref_539_49">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>);
+ <b>pragma</b> Convention (C, <a href="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_32">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_543_14" href="terminal_interface-curses-forms__adb.htm#ref_585_14">Set_Field_Init_Hook</a></span> (<span class="symbol"><a name="ref_543_35" href="terminal_interface-curses-forms__adb.htm#ref_585_35">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_544_35" href="terminal_interface-curses-forms__adb.htm#ref_586_35">Proc</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_hook.3x.html">set_field_init()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-forms__ads.htm#ref_543_14">Set_Field_Init_Hook</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_33">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_549_14" href="terminal_interface-curses-forms__adb.htm#ref_598_14">Set_Field_Term_Hook</a></span> (<span class="symbol"><a name="ref_549_35" href="terminal_interface-curses-forms__adb.htm#ref_598_35">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_550_35" href="terminal_interface-curses-forms__adb.htm#ref_599_35">Proc</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_hook.3x.html">set_field_term()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-forms__ads.htm#ref_549_14">Set_Field_Term_Hook</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_34">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_555_14" href="terminal_interface-curses-forms__adb.htm#ref_611_14">Set_Form_Init_Hook</a></span> (<span class="symbol"><a name="ref_555_34" href="terminal_interface-curses-forms__adb.htm#ref_611_34">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_556_34" href="terminal_interface-curses-forms__adb.htm#ref_612_34">Proc</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_hook.3x.html">set_form_init()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-forms__ads.htm#ref_555_14">Set_Form_Init_Hook</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_35">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_561_14" href="terminal_interface-curses-forms__adb.htm#ref_624_14">Set_Form_Term_Hook</a></span> (<span class="symbol"><a name="ref_561_34" href="terminal_interface-curses-forms__adb.htm#ref_624_34">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_562_34" href="terminal_interface-curses-forms__adb.htm#ref_625_34">Proc</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_hook.3x.html">set_form_term()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-forms__ads.htm#ref_561_14">Set_Form_Term_Hook</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_36">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_567_13">Get_Field_Init_Hook</a></span> (<span class="symbol"><a name="ref_567_34">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>) <b>return</b> <a href="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_hook.3x.html">field_init()</A></em></span>
<b>pragma</b> Import (C, Get_Field_Init_Hook, "field_init");
- <span class="comment"><EM>-- <A NAME="AFU_37">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_572_13">Get_Field_Term_Hook</A></span> (<span class="symbol"><A NAME="ref_572_34" HREF="terminal_interface-curses-forms__ads.htm#ref_572_13">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_hook.3x.html">field_term()</A></EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_37">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_572_13">Get_Field_Term_Hook</a></span> (<span class="symbol"><a name="ref_572_34">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>) <b>return</b> <a href="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_hook.3x.html">field_term()</A></em></span>
<b>pragma</b> Import (C, Get_Field_Term_Hook, "field_term");
- <span class="comment"><EM>-- <A NAME="AFU_38">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_577_13">Get_Form_Init_Hook</A></span> (<span class="symbol"><A NAME="ref_577_33" HREF="terminal_interface-curses-forms__ads.htm#ref_577_13">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_hook.3x.html">form_init()</A></EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_38">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_577_13">Get_Form_Init_Hook</a></span> (<span class="symbol"><a name="ref_577_33">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>) <b>return</b> <a href="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_hook.3x.html">form_init()</A></em></span>
<b>pragma</b> Import (C, Get_Form_Init_Hook, "form_init");
- <span class="comment"><EM>-- <A NAME="AFU_39">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_582_13">Get_Form_Term_Hook</A></span> (<span class="symbol"><A NAME="ref_582_33" HREF="terminal_interface-curses-forms__ads.htm#ref_582_13">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_hook.3x.html">form_term()</A></EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_39">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_582_13">Get_Form_Term_Hook</a></span> (<span class="symbol"><a name="ref_582_33">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>) <b>return</b> <a href="terminal_interface-curses-forms__ads.htm#ref_539_9">Form_Hook_Function</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_hook.3x.html">form_term()</A></em></span>
<b>pragma</b> Import (C, Get_Form_Term_Hook, "form_term");
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/form_field.3x.html">form_field.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_40">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_591_14" HREF="terminal_interface-curses-forms__adb.htm#ref_641_14">Redefine</A></span> (<span class="symbol"><A NAME="ref_591_24" HREF="terminal_interface-curses-forms__adb.htm#ref_641_24">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_592_24" HREF="terminal_interface-curses-forms__adb.htm#ref_642_24">Flds</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_136_9">Field_Array_Access</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_field.3x.html">set_form_fields()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_591_14">Redefine</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_41">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_597_14">Set_Fields</A></span> (<span class="symbol"><A NAME="ref_597_26">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_598_26">Flds</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_136_9">Field_Array_Access</A>) <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_591_14">Redefine</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_field.3x.html">set_form_fields()</A></EM></span>
- <span class="comment"><EM>-- pragma Inline (Set_Fields);</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_42">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_603_13" HREF="terminal_interface-curses-forms__adb.htm#ref_659_13">Fields</A></span> (<span class="symbol"><A NAME="ref_603_21" HREF="terminal_interface-curses-forms__adb.htm#ref_659_21">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_604_21" HREF="terminal_interface-curses-forms__adb.htm#ref_660_21">Index</A></span> : Positive) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_field.3x.html">form_fields()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_603_13">Fields</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_43">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_609_13" HREF="terminal_interface-curses-forms__adb.htm#ref_679_13">Field_Count</A></span> (<span class="symbol"><A NAME="ref_609_26" HREF="terminal_interface-curses-forms__adb.htm#ref_679_26">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>) <b>return</b> Natural;
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_field.3x.html">field_count()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_609_13">Field_Count</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_44">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_614_14" HREF="terminal_interface-curses-forms__adb.htm#ref_689_14">Move</A></span> (<span class="symbol"><A NAME="ref_614_20" HREF="terminal_interface-curses-forms__adb.htm#ref_689_20">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_615_20" HREF="terminal_interface-curses-forms__adb.htm#ref_690_20">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_616_20" HREF="terminal_interface-curses-forms__adb.htm#ref_691_20">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_field.3x.html">move_field()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_614_14">Move</A>);
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/form_new.3x.html">form_new.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_45">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_625_13" HREF="terminal_interface-curses-forms__adb.htm#ref_706_13">Create</A></span> (<span class="symbol"><A NAME="ref_625_21" HREF="terminal_interface-curses-forms__adb.htm#ref_706_21">Fields</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_136_9">Field_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_new.3x.html">new_form()</A></EM></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/form_field.3x.html">form_field.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_40">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_591_14" href="terminal_interface-curses-forms__adb.htm#ref_641_14">Redefine</a></span> (<span class="symbol"><a name="ref_591_24" href="terminal_interface-curses-forms__adb.htm#ref_641_24">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_592_24" href="terminal_interface-curses-forms__adb.htm#ref_642_24">Flds</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_136_9">Field_Array_Access</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_field.3x.html">set_form_fields()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-forms__ads.htm#ref_591_14">Redefine</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_41">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_597_14">Set_Fields</a></span> (<span class="symbol"><a name="ref_597_26">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_598_26">Flds</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_136_9">Field_Array_Access</a>) <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_591_14">Redefine</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_field.3x.html">set_form_fields()</A></em></span>
+ <span class="comment"><em>-- pragma Inline (Set_Fields);</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_42">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_603_13" href="terminal_interface-curses-forms__adb.htm#ref_659_13">Fields</a></span> (<span class="symbol"><a name="ref_603_21" href="terminal_interface-curses-forms__adb.htm#ref_659_21">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_604_21" href="terminal_interface-curses-forms__adb.htm#ref_660_21">Index</a></span> : Positive) <b>return</b> <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_field.3x.html">form_fields()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-forms__ads.htm#ref_603_13">Fields</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_43">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_609_13" href="terminal_interface-curses-forms__adb.htm#ref_679_13">Field_Count</a></span> (<span class="symbol"><a name="ref_609_26" href="terminal_interface-curses-forms__adb.htm#ref_679_26">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>) <b>return</b> Natural;
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_field.3x.html">field_count()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-forms__ads.htm#ref_609_13">Field_Count</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_44">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_614_14" href="terminal_interface-curses-forms__adb.htm#ref_689_14">Move</a></span> (<span class="symbol"><a name="ref_614_20" href="terminal_interface-curses-forms__adb.htm#ref_689_20">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_615_20" href="terminal_interface-curses-forms__adb.htm#ref_690_20">Line</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_616_20" href="terminal_interface-curses-forms__adb.htm#ref_691_20">Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_field.3x.html">move_field()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-forms__ads.htm#ref_614_14">Move</a>);
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/form_new.3x.html">form_new.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_45">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_625_13" href="terminal_interface-curses-forms__adb.htm#ref_706_13">Create</a></span> (<span class="symbol"><a name="ref_625_21" href="terminal_interface-curses-forms__adb.htm#ref_706_21">Fields</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_136_9">Field_Array_Access</a>) <b>return</b> <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_new.3x.html">new_form()</A></em></span>
<b>pragma</b> Inline (Create);
- <span class="comment"><EM>-- <A NAME="AFU_46">|</A></EM></span>
- <b>function</b> New_Form (<span class="symbol"><A NAME="ref_630_23">Fields</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_136_9">Field_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>
- <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_625_13">Create</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_new.3x.html">new_form()</A></EM></span>
- <span class="comment"><EM>-- pragma Inline (New_Form);</EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_46">|</A></em></span>
+ <b>function</b> New_Form (<span class="symbol"><a name="ref_630_23">Fields</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_136_9">Field_Array_Access</a>) <b>return</b> <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>
+ <b>renames</b> <a href="terminal_interface-curses-forms__ads.htm#ref_625_13">Create</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_new.3x.html">new_form()</A></em></span>
+ <span class="comment"><em>-- pragma Inline (New_Form);</em></span>
- <span class="comment"><EM>-- <A NAME="AFU_47">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_636_14" HREF="terminal_interface-curses-forms__adb.htm#ref_727_14">Delete</A></span> (<span class="symbol"><A NAME="ref_636_22" HREF="terminal_interface-curses-forms__adb.htm#ref_727_22">Frm</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_new.3x.html">free_form()</A></EM></span>
- <span class="comment"><EM>-- Reset Frm to Null_Form</EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_47">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_636_14" href="terminal_interface-curses-forms__adb.htm#ref_727_14">Delete</a></span> (<span class="symbol"><a name="ref_636_22" href="terminal_interface-curses-forms__adb.htm#ref_727_22">Frm</a></span> : <b>in</b> <b>out</b> <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_new.3x.html">free_form()</A></em></span>
+ <span class="comment"><em>-- Reset Frm to Null_Form</em></span>
<b>pragma</b> Inline (Delete);
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/form_opts.3x.html">form_opts.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/form_opts.3x.html">form_opts.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
- <span class="comment"><EM>-- <A NAME="AFU_48">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_646_14" HREF="terminal_interface-curses-forms__adb.htm#ref_743_14">Set_Options</A></span> (<span class="symbol"><A NAME="ref_646_27" HREF="terminal_interface-curses-forms__adb.htm#ref_743_27">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_647_27" HREF="terminal_interface-curses-forms__adb.htm#ref_744_27">Options</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_opts.3x.html">set_form_opts()</A></EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_48">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_646_14" href="terminal_interface-curses-forms__adb.htm#ref_743_14">Set_Options</a></span> (<span class="symbol"><a name="ref_646_27" href="terminal_interface-curses-forms__adb.htm#ref_743_27">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_647_27" href="terminal_interface-curses-forms__adb.htm#ref_744_27">Options</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_opts.3x.html">set_form_opts()</A></em></span>
<b>pragma</b> Inline (Set_Options);
- <span class="comment"><EM>-- <A NAME="AFU_49">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_652_14" HREF="terminal_interface-curses-forms__adb.htm#ref_756_14">Switch_Options</A></span> (<span class="symbol"><A NAME="ref_652_30" HREF="terminal_interface-curses-forms__adb.htm#ref_756_30">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_653_30" HREF="terminal_interface-curses-forms__adb.htm#ref_757_30">Options</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A>;
- <span class="symbol"><A NAME="ref_654_30" HREF="terminal_interface-curses-forms__adb.htm#ref_758_30">On</A></span> : Boolean := True);
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_opts.3x.html">form_opts_on()</A></EM></span>
- <span class="comment"><EM>-- AKA: form_opts_off()</EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_49">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_652_14" href="terminal_interface-curses-forms__adb.htm#ref_756_14">Switch_Options</a></span> (<span class="symbol"><a name="ref_652_30" href="terminal_interface-curses-forms__adb.htm#ref_756_30">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_653_30" href="terminal_interface-curses-forms__adb.htm#ref_757_30">Options</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</a>;
+ <span class="symbol"><a name="ref_654_30" href="terminal_interface-curses-forms__adb.htm#ref_758_30">On</a></span> : Boolean := True);
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_opts.3x.html">form_opts_on()</A></em></span>
+ <span class="comment"><em>-- AKA: form_opts_off()</em></span>
<b>pragma</b> Inline (Switch_Options);
- <span class="comment"><EM>-- <A NAME="AFU_50">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_660_14" HREF="terminal_interface-curses-forms__adb.htm#ref_777_14">Get_Options</A></span> (<span class="symbol"><A NAME="ref_660_27" HREF="terminal_interface-curses-forms__adb.htm#ref_777_27">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_661_27" HREF="terminal_interface-curses-forms__adb.htm#ref_778_27">Options</A></span> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_opts.3x.html">form_opts()</A></EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_50">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_660_14" href="terminal_interface-curses-forms__adb.htm#ref_777_14">Get_Options</a></span> (<span class="symbol"><a name="ref_660_27" href="terminal_interface-curses-forms__adb.htm#ref_777_27">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_661_27" href="terminal_interface-curses-forms__adb.htm#ref_778_27">Options</a></span> : <b>out</b> <a href="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_opts.3x.html">form_opts()</A></em></span>
- <span class="comment"><EM>-- <A NAME="AFU_51">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_665_13" HREF="terminal_interface-curses-forms__adb.htm#ref_789_13">Get_Options</A></span> (<span class="symbol"><A NAME="ref_665_26" HREF="terminal_interface-curses-forms__adb.htm#ref_789_26">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_4">Null_Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_opts.3x.html">form_opts()</A></EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_51">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_665_13" href="terminal_interface-curses-forms__adb.htm#ref_789_13">Get_Options</a></span> (<span class="symbol"><a name="ref_665_26" href="terminal_interface-curses-forms__adb.htm#ref_789_26">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a> := <a href="terminal_interface-curses-forms__ads.htm#ref_56_4">Null_Form</a>) <b>return</b> <a href="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_opts.3x.html">form_opts()</A></em></span>
<b>pragma</b> Inline (Get_Options);
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/form_post.3x.html">form_post.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_52">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_674_14" HREF="terminal_interface-curses-forms__adb.htm#ref_803_14">Post</A></span> (<span class="symbol"><A NAME="ref_674_20" HREF="terminal_interface-curses-forms__adb.htm#ref_803_20">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_675_20" HREF="terminal_interface-curses-forms__adb.htm#ref_804_20">Post</A></span> : Boolean := True);
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_post.3x.html">post_form()</A></EM></span>
- <span class="comment"><EM>-- AKA: unpost_form()</EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_674_14">Post</A>);
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/form_cursor.3x.html">form_cursor.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_53">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_685_14" HREF="terminal_interface-curses-forms__adb.htm#ref_825_14">Position_Cursor</A></span> (<span class="symbol"><A NAME="ref_685_31" HREF="terminal_interface-curses-forms__adb.htm#ref_825_31">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_cursor.3x.html">pos_form_cursor()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_685_14">Position_Cursor</A>);
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/form_data.3x.html">form_data.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_54">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_694_13" HREF="terminal_interface-curses-forms__adb.htm#ref_840_13">Data_Ahead</A></span> (<span class="symbol"><A NAME="ref_694_25" HREF="terminal_interface-curses-forms__adb.htm#ref_840_25">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>) <b>return</b> Boolean;
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_data.3x.html">data_ahead()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_694_13">Data_Ahead</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_55">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_699_13" HREF="terminal_interface-curses-forms__adb.htm#ref_856_13">Data_Behind</A></span> (<span class="symbol"><A NAME="ref_699_26" HREF="terminal_interface-curses-forms__adb.htm#ref_856_26">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>) <b>return</b> Boolean;
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_data.3x.html">data_behind()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_699_13">Data_Behind</A>);
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/form_driver.3x.html">form_driver.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <b>type</b> <span class="symbol"><A NAME="ref_707_9">Driver_Result</A></span> <b>is</b> (<span class="symbol"><A NAME="ref_707_27">Form_Ok</A></span>,
- <span class="symbol"><A NAME="ref_708_27">Request_Denied</A></span>,
- <span class="symbol"><A NAME="ref_709_27">Unknown_Request</A></span>,
- <span class="symbol"><A NAME="ref_710_27">Invalid_Field</A></span>);
-
- <span class="comment"><EM>-- <A NAME="AFU_56">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_713_13" HREF="terminal_interface-curses-forms__adb.htm#ref_876_13">Driver</A></span> (<span class="symbol"><A NAME="ref_713_21" HREF="terminal_interface-curses-forms__adb.htm#ref_876_21">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_714_21" HREF="terminal_interface-curses-forms__adb.htm#ref_877_21">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_67_9">Key_Code</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_707_9">Driver_Result</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_driver.3x.html">form_driver()</A></EM></span>
- <span class="comment"><EM>-- Driver not inlined</EM></span>
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/form_page.3x.html">form_page.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <b>type</b> <span class="symbol"><A NAME="ref_722_9">Page_Number</A></span> <b>is</b> <b>new</b> Natural;
-
- <span class="comment"><EM>-- <A NAME="AFU_57">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_725_14" HREF="terminal_interface-curses-forms__adb.htm#ref_903_14">Set_Current</A></span> (<span class="symbol"><A NAME="ref_725_27" HREF="terminal_interface-curses-forms__adb.htm#ref_903_27">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_726_27" HREF="terminal_interface-curses-forms__adb.htm#ref_904_27">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_page.3x.html">set_current_field()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_725_14">Set_Current</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_58">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_731_13" HREF="terminal_interface-curses-forms__adb.htm#ref_915_13">Current</A></span> (<span class="symbol"><A NAME="ref_731_22" HREF="terminal_interface-curses-forms__adb.htm#ref_915_22">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_page.3x.html">current_field()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_731_13">Current</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_59">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_736_14" HREF="terminal_interface-curses-forms__adb.htm#ref_930_14">Set_Page</A></span> (<span class="symbol"><A NAME="ref_736_24" HREF="terminal_interface-curses-forms__adb.htm#ref_930_24">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>;
- <span class="symbol"><A NAME="ref_737_24" HREF="terminal_interface-curses-forms__adb.htm#ref_931_24">Page</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_722_9">Page_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_722_9">Page_Number</A>'First);
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_page.3x.html">set_form_page()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_736_14">Set_Page</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_60">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_742_13" HREF="terminal_interface-curses-forms__adb.htm#ref_942_13">Page</A></span> (<span class="symbol"><A NAME="ref_742_19" HREF="terminal_interface-curses-forms__adb.htm#ref_942_19">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_722_9">Page_Number</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_page.3x.html">form_page()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_742_13">Page</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_61">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_747_13" HREF="terminal_interface-curses-forms__adb.htm#ref_956_13">Get_Index</A></span> (<span class="symbol"><A NAME="ref_747_24" HREF="terminal_interface-curses-forms__adb.htm#ref_956_24">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>) <b>return</b> Positive;
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_page.3x.html">field_index()</A></EM></span>
- <span class="comment"><EM>-- Please note that in this binding we start the numbering of fields</EM></span>
- <span class="comment"><EM>-- with 1. So this is number is one more than you get from the low</EM></span>
- <span class="comment"><EM>-- level call.</EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_747_13">Get_Index</A>);
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/form_new_page.3x.html">form_new_page.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_62">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_759_14" HREF="terminal_interface-curses-forms__adb.htm#ref_976_14">Set_New_Page</A></span> (<span class="symbol"><A NAME="ref_759_28" HREF="terminal_interface-curses-forms__adb.htm#ref_976_28">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>;
- <span class="symbol"><A NAME="ref_760_28" HREF="terminal_interface-curses-forms__adb.htm#ref_977_28">New_Page</A></span> : Boolean := True);
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_new_page.3x.html">set_new_page()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_759_14">Set_New_Page</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_63">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_765_13" HREF="terminal_interface-curses-forms__adb.htm#ref_988_13">Is_New_Page</A></span> (<span class="symbol"><A NAME="ref_765_26" HREF="terminal_interface-curses-forms__adb.htm#ref_988_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A>) <b>return</b> Boolean;
- <span class="comment"><EM>-- AKA: <A HREF="../man/form_new_page.3x.html">new_page()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_765_13">Is_New_Page</A>);
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/form_requestname.3x.html">form_requestname.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- Not Implemented: form_request_name, form_request_by_name</EM></span>
-
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/form_post.3x.html">form_post.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_52">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_674_14" href="terminal_interface-curses-forms__adb.htm#ref_803_14">Post</a></span> (<span class="symbol"><a name="ref_674_20" href="terminal_interface-curses-forms__adb.htm#ref_803_20">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_675_20" href="terminal_interface-curses-forms__adb.htm#ref_804_20">Post</a></span> : Boolean := True);
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_post.3x.html">post_form()</A></em></span>
+ <span class="comment"><em>-- AKA: unpost_form()</em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-forms__ads.htm#ref_674_14">Post</a>);
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/form_cursor.3x.html">form_cursor.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_53">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_685_14" href="terminal_interface-curses-forms__adb.htm#ref_825_14">Position_Cursor</a></span> (<span class="symbol"><a name="ref_685_31" href="terminal_interface-curses-forms__adb.htm#ref_825_31">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_cursor.3x.html">pos_form_cursor()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-forms__ads.htm#ref_685_14">Position_Cursor</a>);
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/form_data.3x.html">form_data.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_54">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_694_13" href="terminal_interface-curses-forms__adb.htm#ref_840_13">Data_Ahead</a></span> (<span class="symbol"><a name="ref_694_25" href="terminal_interface-curses-forms__adb.htm#ref_840_25">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>) <b>return</b> Boolean;
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_data.3x.html">data_ahead()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-forms__ads.htm#ref_694_13">Data_Ahead</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_55">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_699_13" href="terminal_interface-curses-forms__adb.htm#ref_856_13">Data_Behind</a></span> (<span class="symbol"><a name="ref_699_26" href="terminal_interface-curses-forms__adb.htm#ref_856_26">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>) <b>return</b> Boolean;
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_data.3x.html">data_behind()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-forms__ads.htm#ref_699_13">Data_Behind</a>);
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/form_driver.3x.html">form_driver.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <b>type</b> <span class="symbol"><a name="ref_707_9">Driver_Result</a></span> <b>is</b> (<span class="symbol"><a name="ref_707_27">Form_Ok</a></span>,
+ <span class="symbol"><a name="ref_708_27">Request_Denied</a></span>,
+ <span class="symbol"><a name="ref_709_27">Unknown_Request</a></span>,
+ <span class="symbol"><a name="ref_710_27">Invalid_Field</a></span>);
+
+ <span class="comment"><em>-- <A NAME="AFU_56">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_713_13" href="terminal_interface-curses-forms__adb.htm#ref_876_13">Driver</a></span> (<span class="symbol"><a name="ref_713_21" href="terminal_interface-curses-forms__adb.htm#ref_876_21">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_714_21" href="terminal_interface-curses-forms__adb.htm#ref_877_21">Key</a></span> : <a href="terminal_interface-curses__ads.htm#ref_67_9">Key_Code</a>) <b>return</b> <a href="terminal_interface-curses-forms__ads.htm#ref_707_9">Driver_Result</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_driver.3x.html">form_driver()</A></em></span>
+ <span class="comment"><em>-- Driver not inlined</em></span>
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/form_page.3x.html">form_page.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <b>type</b> <span class="symbol"><a name="ref_722_9">Page_Number</a></span> <b>is</b> <b>new</b> Natural;
+
+ <span class="comment"><em>-- <A NAME="AFU_57">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_725_14" href="terminal_interface-curses-forms__adb.htm#ref_903_14">Set_Current</a></span> (<span class="symbol"><a name="ref_725_27" href="terminal_interface-curses-forms__adb.htm#ref_903_27">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_726_27" href="terminal_interface-curses-forms__adb.htm#ref_904_27">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_page.3x.html">set_current_field()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-forms__ads.htm#ref_725_14">Set_Current</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_58">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_731_13" href="terminal_interface-curses-forms__adb.htm#ref_915_13">Current</a></span> (<span class="symbol"><a name="ref_731_22" href="terminal_interface-curses-forms__adb.htm#ref_915_22">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>) <b>return</b> <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_page.3x.html">current_field()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-forms__ads.htm#ref_731_13">Current</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_59">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_736_14" href="terminal_interface-curses-forms__adb.htm#ref_930_14">Set_Page</a></span> (<span class="symbol"><a name="ref_736_24" href="terminal_interface-curses-forms__adb.htm#ref_930_24">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>;
+ <span class="symbol"><a name="ref_737_24" href="terminal_interface-curses-forms__adb.htm#ref_931_24">Page</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_722_9">Page_Number</a> := <a href="terminal_interface-curses-forms__ads.htm#ref_722_9">Page_Number</a>'First);
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_page.3x.html">set_form_page()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-forms__ads.htm#ref_736_14">Set_Page</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_60">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_742_13" href="terminal_interface-curses-forms__adb.htm#ref_942_13">Page</a></span> (<span class="symbol"><a name="ref_742_19" href="terminal_interface-curses-forms__adb.htm#ref_942_19">Frm</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a>) <b>return</b> <a href="terminal_interface-curses-forms__ads.htm#ref_722_9">Page_Number</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_page.3x.html">form_page()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-forms__ads.htm#ref_742_13">Page</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_61">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_747_13" href="terminal_interface-curses-forms__adb.htm#ref_956_13">Get_Index</a></span> (<span class="symbol"><a name="ref_747_24" href="terminal_interface-curses-forms__adb.htm#ref_956_24">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>) <b>return</b> Positive;
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_page.3x.html">field_index()</A></em></span>
+ <span class="comment"><em>-- Please note that in this binding we start the numbering of fields</em></span>
+ <span class="comment"><em>-- with 1. So this is number is one more than you get from the low</em></span>
+ <span class="comment"><em>-- level call.</em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-forms__ads.htm#ref_747_13">Get_Index</a>);
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/form_new_page.3x.html">form_new_page.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_62">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_759_14" href="terminal_interface-curses-forms__adb.htm#ref_976_14">Set_New_Page</a></span> (<span class="symbol"><a name="ref_759_28" href="terminal_interface-curses-forms__adb.htm#ref_976_28">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>;
+ <span class="symbol"><a name="ref_760_28" href="terminal_interface-curses-forms__adb.htm#ref_977_28">New_Page</a></span> : Boolean := True);
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_new_page.3x.html">set_new_page()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-forms__ads.htm#ref_759_14">Set_New_Page</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_63">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_765_13" href="terminal_interface-curses-forms__adb.htm#ref_988_13">Is_New_Page</a></span> (<span class="symbol"><a name="ref_765_26" href="terminal_interface-curses-forms__adb.htm#ref_988_26">Fld</a></span> : <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a>) <b>return</b> Boolean;
+ <span class="comment"><em>-- AKA: <A HREF="../man/form_new_page.3x.html">new_page()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-forms__ads.htm#ref_765_13">Is_New_Page</a>);
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/form_requestname.3x.html">form_requestname.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- Not Implemented: form_request_name, form_request_by_name</em></span>
+
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
<b>private</b>
- <b>type</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
- <b>type</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
+ <b>type</b> <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
+ <b>type</b> <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
- <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_4">Null_Field</A> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</A> := 0;
- <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_4">Null_Form</A> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</A> := 0;
+ <a href="terminal_interface-curses-forms__ads.htm#ref_55_4">Null_Field</a> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_52_9">Field</a> := 0;
+ <a href="terminal_interface-curses-forms__ads.htm#ref_56_4">Null_Form</a> : <b>constant</b> <a href="terminal_interface-curses-forms__ads.htm#ref_53_9">Form</a> := 0;
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-forms__ads.htm#ref_46_35">Forms</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-menus-item_user_data__adb.htm b/doc/html/ada/terminal_interface-curses-menus-item_user_data__adb.htm
index 188efdfc449e..558bbf6a3253 100644
--- a/doc/html/ada/terminal_interface-curses-menus-item_user_data__adb.htm
+++ b/doc/html/ada/terminal_interface-curses-menus-item_user_data__adb.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-menus-item_user_data.adb</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-menus-item_user_data.adb</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,80 +11,80 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-menus-item_user_data.adb </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Menus.Item_User_Data --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- B O D Y --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2018,2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2009,2014 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.16 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>;
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-menus-item_user_data.adb </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Menus.Item_User_Data --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- B O D Y --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2018,2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2009,2014 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.16 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<b>with</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>; <b>use</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_46_35">Menus</A>.<span class="symbol"><A NAME="ref_44_46" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_47_41">Item_User_Data</A></span> <b>is</b>
+<b>package</b> <b>body</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-menus__ads.htm#ref_46_35">Menus</a>.<span class="symbol"><a name="ref_44_46" href="terminal_interface-curses-menus-item_user_data__ads.htm#ref_47_41">Item_User_Data</a></span> <b>is</b>
- <b>procedure</b> <span class="symbol"><A NAME="ref_46_14" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_59_14">Set_User_Data</A></span> (<span class="symbol"><A NAME="ref_46_29" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_59_29">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>;
- <span class="symbol"><A NAME="ref_47_29" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_60_29">Data</A></span> : <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_46_9">User_Access</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_46_14" href="terminal_interface-curses-menus-item_user_data__ads.htm#ref_59_14">Set_User_Data</a></span> (<span class="symbol"><a name="ref_46_29" href="terminal_interface-curses-menus-item_user_data__ads.htm#ref_59_29">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>;
+ <span class="symbol"><a name="ref_47_29" href="terminal_interface-curses-menus-item_user_data__ads.htm#ref_60_29">Data</a></span> : <a href="terminal_interface-curses-menus-item_user_data__ads.htm#ref_46_9">User_Access</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_49_16">Set_Item_Userptr</A></span> (<span class="symbol"><A NAME="ref_49_34" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_49_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>;
- <span class="symbol"><A NAME="ref_50_34" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_49_16">Addr</A></span> : <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_46_9">User_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_49_16">Set_Item_Userptr</a></span> (<span class="symbol"><a name="ref_49_34">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>;
+ <span class="symbol"><a name="ref_50_34">Addr</a></span> : <a href="terminal_interface-curses-menus-item_user_data__ads.htm#ref_46_9">User_Access</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Item_Userptr, "set_item_userptr");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_49_16">Set_Item_Userptr</A> (<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_59_29">Itm</A>, <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_60_29">Data</A>));
- <b>end</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_59_14">Set_User_Data</A>;
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-menus-item_user_data__adb.htm#ref_49_16">Set_Item_Userptr</a> (<a href="terminal_interface-curses-menus-item_user_data__ads.htm#ref_59_29">Itm</a>, <a href="terminal_interface-curses-menus-item_user_data__ads.htm#ref_60_29">Data</a>));
+ <b>end</b> <a href="terminal_interface-curses-menus-item_user_data__ads.htm#ref_59_14">Set_User_Data</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_57_13" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_70_13">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_57_28" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_70_28">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_46_9">User_Access</A>
+ <b>function</b> <span class="symbol"><a name="ref_57_13" href="terminal_interface-curses-menus-item_user_data__ads.htm#ref_70_13">Get_User_Data</a></span> (<span class="symbol"><a name="ref_57_28" href="terminal_interface-curses-menus-item_user_data__ads.htm#ref_70_28">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>) <b>return</b> <a href="terminal_interface-curses-menus-item_user_data__ads.htm#ref_46_9">User_Access</a>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_59_16">Item_Userptr</A></span> (<span class="symbol"><A NAME="ref_59_30" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_59_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_46_9">User_Access</A>;
+ <b>function</b> <span class="symbol"><a name="ref_59_16">Item_Userptr</a></span> (<span class="symbol"><a name="ref_59_30">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>) <b>return</b> <a href="terminal_interface-curses-menus-item_user_data__ads.htm#ref_46_9">User_Access</a>;
<b>pragma</b> Import (C, Item_Userptr, "item_userptr");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_59_16">Item_Userptr</A> (<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_70_28">Itm</A>);
- <b>end</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_70_13">Get_User_Data</A>;
+ <b>return</b> <a href="terminal_interface-curses-menus-item_user_data__adb.htm#ref_59_16">Item_Userptr</a> (<a href="terminal_interface-curses-menus-item_user_data__ads.htm#ref_70_28">Itm</a>);
+ <b>end</b> <a href="terminal_interface-curses-menus-item_user_data__ads.htm#ref_70_13">Get_User_Data</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_65_14" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_65_14">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_65_29" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_65_29">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>;
- <span class="symbol"><A NAME="ref_66_29" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_66_29">Data</A></span> : <b>out</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_46_9">User_Access</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_65_14" href="terminal_interface-curses-menus-item_user_data__ads.htm#ref_65_14">Get_User_Data</a></span> (<span class="symbol"><a name="ref_65_29" href="terminal_interface-curses-menus-item_user_data__ads.htm#ref_65_29">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>;
+ <span class="symbol"><a name="ref_66_29" href="terminal_interface-curses-menus-item_user_data__ads.htm#ref_66_29">Data</a></span> : <b>out</b> <a href="terminal_interface-curses-menus-item_user_data__ads.htm#ref_46_9">User_Access</a>)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_66_29">Data</A> := <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_70_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_65_29">Itm</A>);
- <b>end</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_65_14">Get_User_Data</A>;
+ <a href="terminal_interface-curses-menus-item_user_data__ads.htm#ref_66_29">Data</a> := <a href="terminal_interface-curses-menus-item_user_data__ads.htm#ref_70_13">Get_User_Data</a> (<a href="terminal_interface-curses-menus-item_user_data__ads.htm#ref_65_29">Itm</a>);
+ <b>end</b> <a href="terminal_interface-curses-menus-item_user_data__ads.htm#ref_65_14">Get_User_Data</a>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_46_35">Menus</A>.<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_47_41">Item_User_Data</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-menus__ads.htm#ref_46_35">Menus</a>.<a href="terminal_interface-curses-menus-item_user_data__ads.htm#ref_47_41">Item_User_Data</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-menus-item_user_data__ads.htm b/doc/html/ada/terminal_interface-curses-menus-item_user_data__ads.htm
index 3a31918a267e..44911be9177b 100644
--- a/doc/html/ada/terminal_interface-curses-menus-item_user_data__ads.htm
+++ b/doc/html/ada/terminal_interface-curses-menus-item_user_data__ads.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-menus-item_user_data.ads</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-menus-item_user_data.ads</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,83 +11,83 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-menus-item_user_data.ads </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Menus.Item_User_Data --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- S P E C --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1998-2006,2009 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.18 @</EM></span>
-<span class="comment"><EM>-- @Date: 2020/02/02 23:34:34 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-menus-item_user_data.ads </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Menus.Item_User_Data --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- S P E C --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1998-2006,2009 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.18 @</em></span>
+<span class="comment"><em>-- @Date: 2020/02/02 23:34:34 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
<b>generic</b>
- <b>type</b> <span class="symbol"><A NAME="ref_45_9" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_47_41">User</A></span> <b>is</b> <b>limited</b> <b>private</b>;
- <b>type</b> <span class="symbol"><A NAME="ref_46_9" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_47_41">User_Access</A></span> <b>is</b> <b>access</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_9">User</A>;
-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_46_35">Menus</A>.<span class="symbol"><A NAME="ref_47_41" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_44_46">Item_User_Data</A></span> <b>is</b>
- <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_46_35">Menus</A>.<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_47_41">Item_User_Data</A>);
+ <b>type</b> <span class="symbol"><a name="ref_45_9">User</a></span> <b>is</b> <b>limited</b> <b>private</b>;
+ <b>type</b> <span class="symbol"><a name="ref_46_9">User_Access</a></span> <b>is</b> <b>access</b> <a href="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_9">User</a>;
+<b>package</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-menus__ads.htm#ref_46_35">Menus</a>.<span class="symbol"><a name="ref_47_41" href="terminal_interface-curses-menus-item_user_data__adb.htm#ref_44_46">Item_User_Data</a></span> <b>is</b>
+ <b>pragma</b> Preelaborate (<a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-menus__ads.htm#ref_46_35">Menus</a>.<a href="terminal_interface-curses-menus-item_user_data__ads.htm#ref_47_41">Item_User_Data</a>);
- <span class="comment"><EM>-- The binding uses the same user pointer for menu items</EM></span>
- <span class="comment"><EM>-- as the low level C implementation. So you can safely</EM></span>
- <span class="comment"><EM>-- read or write the user pointer also with the C routines</EM></span>
- <span class="comment"><EM>--</EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/mitem_userptr.3x.html">mitem_userptr.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
+ <span class="comment"><em>-- The binding uses the same user pointer for menu items</em></span>
+ <span class="comment"><em>-- as the low level C implementation. So you can safely</em></span>
+ <span class="comment"><em>-- read or write the user pointer also with the C routines</em></span>
+ <span class="comment"><em>--</em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/mitem_userptr.3x.html">mitem_userptr.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
- <span class="comment"><EM>-- <A NAME="AFU_1">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_59_14" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_46_14">Set_User_Data</A></span> (<span class="symbol"><A NAME="ref_59_29" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_46_29">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>;
- <span class="symbol"><A NAME="ref_60_29" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_47_29">Data</A></span> : <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_46_9">User_Access</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_userptr.3x.html">set_item_userptr</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_59_14">Set_User_Data</A>);
+ <span class="comment"><em>-- <A NAME="AFU_1">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_59_14" href="terminal_interface-curses-menus-item_user_data__adb.htm#ref_46_14">Set_User_Data</a></span> (<span class="symbol"><a name="ref_59_29" href="terminal_interface-curses-menus-item_user_data__adb.htm#ref_46_29">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>;
+ <span class="symbol"><a name="ref_60_29" href="terminal_interface-curses-menus-item_user_data__adb.htm#ref_47_29">Data</a></span> : <a href="terminal_interface-curses-menus-item_user_data__ads.htm#ref_46_9">User_Access</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/mitem_userptr.3x.html">set_item_userptr</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-menus-item_user_data__ads.htm#ref_59_14">Set_User_Data</a>);
- <span class="comment"><EM>-- <A NAME="AFU_2">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_65_14" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_65_14">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_65_29" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_65_29">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>;
- <span class="symbol"><A NAME="ref_66_29" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_66_29">Data</A></span> : <b>out</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_46_9">User_Access</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_userptr.3x.html">item_userptr</A></EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_2">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_65_14" href="terminal_interface-curses-menus-item_user_data__adb.htm#ref_65_14">Get_User_Data</a></span> (<span class="symbol"><a name="ref_65_29" href="terminal_interface-curses-menus-item_user_data__adb.htm#ref_65_29">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>;
+ <span class="symbol"><a name="ref_66_29" href="terminal_interface-curses-menus-item_user_data__adb.htm#ref_66_29">Data</a></span> : <b>out</b> <a href="terminal_interface-curses-menus-item_user_data__ads.htm#ref_46_9">User_Access</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/mitem_userptr.3x.html">item_userptr</A></em></span>
- <span class="comment"><EM>-- <A NAME="AFU_3">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_70_13" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_57_13">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_70_28" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_57_28">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_46_9">User_Access</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_userptr.3x.html">item_userptr</A></EM></span>
- <span class="comment"><EM>-- Same as function</EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_3">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_70_13" href="terminal_interface-curses-menus-item_user_data__adb.htm#ref_57_13">Get_User_Data</a></span> (<span class="symbol"><a name="ref_70_28" href="terminal_interface-curses-menus-item_user_data__adb.htm#ref_57_28">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>) <b>return</b> <a href="terminal_interface-curses-menus-item_user_data__ads.htm#ref_46_9">User_Access</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/mitem_userptr.3x.html">item_userptr</A></em></span>
+ <span class="comment"><em>-- Same as function</em></span>
<b>pragma</b> Inline (Get_User_Data);
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_46_35">Menus</A>.<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_47_41">Item_User_Data</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-menus__ads.htm#ref_46_35">Menus</a>.<a href="terminal_interface-curses-menus-item_user_data__ads.htm#ref_47_41">Item_User_Data</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-menus-menu_user_data__adb.htm b/doc/html/ada/terminal_interface-curses-menus-menu_user_data__adb.htm
index 3b957c59f7d6..12c9eccd1409 100644
--- a/doc/html/ada/terminal_interface-curses-menus-menu_user_data__adb.htm
+++ b/doc/html/ada/terminal_interface-curses-menus-menu_user_data__adb.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-menus-menu_user_data.adb</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-menus-menu_user_data.adb</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,81 +11,81 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-menus-menu_user_data.adb </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Menus.Menu_User_Data --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- B O D Y --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2018,2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2009,2014 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.17 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>;
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-menus-menu_user_data.adb </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Menus.Menu_User_Data --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- B O D Y --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2018,2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2009,2014 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.17 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<b>with</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>; <b>use</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_46_35">Menus</A>.<span class="symbol"><A NAME="ref_44_46" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_46_41">Menu_User_Data</A></span> <b>is</b>
+<b>package</b> <b>body</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-menus__ads.htm#ref_46_35">Menus</a>.<span class="symbol"><a name="ref_44_46" href="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_46_41">Menu_User_Data</a></span> <b>is</b>
- <b>procedure</b> <span class="symbol"><A NAME="ref_46_14" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_54_14">Set_User_Data</A></span> (<span class="symbol"><A NAME="ref_46_29" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_54_29">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_47_29" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_55_29">Data</A></span> : <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_9">User_Access</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_46_14" href="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_54_14">Set_User_Data</a></span> (<span class="symbol"><a name="ref_46_29" href="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_54_29">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_47_29" href="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_55_29">Data</a></span> : <a href="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_9">User_Access</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_49_16">Set_Menu_Userptr</A></span> (<span class="symbol"><A NAME="ref_49_34" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_49_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_50_34" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_49_16">Data</A></span> : <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_9">User_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_49_16">Set_Menu_Userptr</a></span> (<span class="symbol"><a name="ref_49_34">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_50_34">Data</a></span> : <a href="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_9">User_Access</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Menu_Userptr, "set_menu_userptr");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_49_16">Set_Menu_Userptr</A> (<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_54_29">Men</A>, <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_55_29">Data</A>));
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_49_16">Set_Menu_Userptr</a> (<a href="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_54_29">Men</a>, <a href="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_55_29">Data</a>));
- <b>end</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_54_14">Set_User_Data</A>;
+ <b>end</b> <a href="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_54_14">Set_User_Data</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_58_13" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_65_13">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_58_28" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_65_28">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_9">User_Access</A>
+ <b>function</b> <span class="symbol"><a name="ref_58_13" href="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_65_13">Get_User_Data</a></span> (<span class="symbol"><a name="ref_58_28" href="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_65_28">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> <a href="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_9">User_Access</a>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_60_16">Menu_Userptr</A></span> (<span class="symbol"><A NAME="ref_60_30" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_60_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_9">User_Access</A>;
+ <b>function</b> <span class="symbol"><a name="ref_60_16">Menu_Userptr</a></span> (<span class="symbol"><a name="ref_60_30">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> <a href="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_9">User_Access</a>;
<b>pragma</b> Import (C, Menu_Userptr, "menu_userptr");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_60_16">Menu_Userptr</A> (<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_65_28">Men</A>);
- <b>end</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_65_13">Get_User_Data</A>;
+ <b>return</b> <a href="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_60_16">Menu_Userptr</a> (<a href="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_65_28">Men</a>);
+ <b>end</b> <a href="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_65_13">Get_User_Data</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_66_14" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_60_14">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_66_29" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_60_29">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_67_29" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_61_29">Data</A></span> : <b>out</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_9">User_Access</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_66_14" href="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_60_14">Get_User_Data</a></span> (<span class="symbol"><a name="ref_66_29" href="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_60_29">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_67_29" href="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_61_29">Data</a></span> : <b>out</b> <a href="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_9">User_Access</a>)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_61_29">Data</A> := <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_65_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_60_29">Men</A>);
- <b>end</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_60_14">Get_User_Data</A>;
+ <a href="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_61_29">Data</a> := <a href="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_65_13">Get_User_Data</a> (<a href="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_60_29">Men</a>);
+ <b>end</b> <a href="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_60_14">Get_User_Data</a>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_46_35">Menus</A>.<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_46_41">Menu_User_Data</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-menus__ads.htm#ref_46_35">Menus</a>.<a href="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_46_41">Menu_User_Data</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-menus-menu_user_data__ads.htm b/doc/html/ada/terminal_interface-curses-menus-menu_user_data__ads.htm
index e61d6b289c5f..aa398ef70701 100644
--- a/doc/html/ada/terminal_interface-curses-menus-menu_user_data__ads.htm
+++ b/doc/html/ada/terminal_interface-curses-menus-menu_user_data__ads.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-menus-menu_user_data.ads</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-menus-menu_user_data.ads</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,78 +11,78 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-menus-menu_user_data.ads </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Menus.Menu_User_Data --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- S P E C --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1998-2003,2009 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.16 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-menus-menu_user_data.ads </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Menus.Menu_User_Data --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- S P E C --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1998-2003,2009 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.16 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
<b>generic</b>
- <b>type</b> <span class="symbol"><A NAME="ref_44_9" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_46_41">User</A></span> <b>is</b> <b>limited</b> <b>private</b>;
- <b>type</b> <span class="symbol"><A NAME="ref_45_9" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_46_41">User_Access</A></span> <b>is</b> <b>access</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">User</A>;
-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_46_35">Menus</A>.<span class="symbol"><A NAME="ref_46_41" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_44_46">Menu_User_Data</A></span> <b>is</b>
- <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_46_35">Menus</A>.<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_46_41">Menu_User_Data</A>);
+ <b>type</b> <span class="symbol"><a name="ref_44_9">User</a></span> <b>is</b> <b>limited</b> <b>private</b>;
+ <b>type</b> <span class="symbol"><a name="ref_45_9">User_Access</a></span> <b>is</b> <b>access</b> <a href="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">User</a>;
+<b>package</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-menus__ads.htm#ref_46_35">Menus</a>.<span class="symbol"><a name="ref_46_41" href="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_44_46">Menu_User_Data</a></span> <b>is</b>
+ <b>pragma</b> Preelaborate (<a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-menus__ads.htm#ref_46_35">Menus</a>.<a href="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_46_41">Menu_User_Data</a>);
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/menu_userptr.3x.html">menu_userptr.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/menu_userptr.3x.html">menu_userptr.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
- <span class="comment"><EM>-- <A NAME="AFU_1">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_54_14" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_46_14">Set_User_Data</A></span> (<span class="symbol"><A NAME="ref_54_29" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_46_29">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_55_29" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_47_29">Data</A></span> : <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_9">User_Access</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_userptr.3x.html">set_menu_userptr</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_54_14">Set_User_Data</A>);
+ <span class="comment"><em>-- <A NAME="AFU_1">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_54_14" href="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_46_14">Set_User_Data</a></span> (<span class="symbol"><a name="ref_54_29" href="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_46_29">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_55_29" href="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_47_29">Data</a></span> : <a href="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_9">User_Access</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_userptr.3x.html">set_menu_userptr</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_54_14">Set_User_Data</a>);
- <span class="comment"><EM>-- <A NAME="AFU_2">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_60_14" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_66_14">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_60_29" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_66_29">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_61_29" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_67_29">Data</A></span> : <b>out</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_9">User_Access</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_userptr.3x.html">menu_userptr</A></EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_2">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_60_14" href="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_66_14">Get_User_Data</a></span> (<span class="symbol"><a name="ref_60_29" href="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_66_29">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_61_29" href="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_67_29">Data</a></span> : <b>out</b> <a href="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_9">User_Access</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_userptr.3x.html">menu_userptr</A></em></span>
- <span class="comment"><EM>-- <A NAME="AFU_3">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_65_13" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_58_13">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_65_28" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_58_28">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_9">User_Access</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_userptr.3x.html">menu_userptr</A></EM></span>
- <span class="comment"><EM>-- Same as function</EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_3">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_65_13" href="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_58_13">Get_User_Data</a></span> (<span class="symbol"><a name="ref_65_28" href="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_58_28">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> <a href="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_9">User_Access</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_userptr.3x.html">menu_userptr</A></em></span>
+ <span class="comment"><em>-- Same as function</em></span>
<b>pragma</b> Inline (Get_User_Data);
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_46_35">Menus</A>.<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_46_41">Menu_User_Data</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-menus__ads.htm#ref_46_35">Menus</a>.<a href="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_46_41">Menu_User_Data</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-menus__adb.htm b/doc/html/ada/terminal_interface-curses-menus__adb.htm
index d9d2513422b0..560273380537 100644
--- a/doc/html/ada/terminal_interface-curses-menus__adb.htm
+++ b/doc/html/ada/terminal_interface-curses-menus__adb.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-menus.adb</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-menus.adb</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,912 +11,912 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-menus.adb </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Menus --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- B O D Y --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2018,2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2011,2014 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.34 @</EM></span>
-<span class="comment"><EM>-- @Date: 2020/02/02 23:34:34 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-menus.adb </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Menus --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- B O D Y --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2018,2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2011,2014 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.34 @</em></span>
+<span class="comment"><em>-- @Date: 2020/02/02 23:34:34 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
<b>with</b> Ada.Unchecked_Deallocation;
-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>;
+<b>with</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>; <b>use</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>;
-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings;
-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Pointers;
+<b>with</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C; <b>use</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C;
+<b>with</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.Strings; <b>use</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.Strings;
+<b>with</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.Pointers;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<span class="symbol"><A NAME="ref_50_40" HREF="terminal_interface-curses-menus__ads.htm#ref_46_35">Menus</A></span> <b>is</b>
+<b>package</b> <b>body</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<span class="symbol"><a name="ref_50_40" href="terminal_interface-curses-menus__ads.htm#ref_46_35">Menus</a></span> <b>is</b>
- <b>type</b> C_Item_Array <b>is</b> <b>array</b> (Natural <b>range</b> &lt;&gt;) <b>of</b> <b>aliased</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>;
+ <b>type</b> C_Item_Array <b>is</b> <b>array</b> (Natural <b>range</b> &lt;&gt;) <b>of</b> <b>aliased</b> <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>;
<b>package</b> I_Array <b>is</b> <b>new</b>
- <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Pointers (Natural, <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>, C_Item_Array, <A HREF="terminal_interface-curses-menus__ads.htm#ref_58_4">Null_Item</A>);
+ <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.Pointers (Natural, <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>, C_Item_Array, <a href="terminal_interface-curses-menus__ads.htm#ref_58_4">Null_Item</a>);
- <b>subtype</b> <span class="symbol"><A NAME="ref_56_12">chars_ptr</A></span> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings.chars_ptr;
+ <b>subtype</b> <span class="symbol"><a name="ref_56_12">chars_ptr</a></span> <b>is</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.Strings.chars_ptr;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_59_14" HREF="terminal_interface-curses-menus__ads.htm#ref_102_14">Request_Name</A></span> (<span class="symbol"><A NAME="ref_59_28" HREF="terminal_interface-curses-menus__ads.htm#ref_102_28">Key</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</A>;
- <span class="symbol"><A NAME="ref_60_28" HREF="terminal_interface-curses-menus__ads.htm#ref_103_28">Name</A></span> : <b>out</b> String)
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_59_14" href="terminal_interface-curses-menus__ads.htm#ref_102_14">Request_Name</a></span> (<span class="symbol"><a name="ref_59_28" href="terminal_interface-curses-menus__ads.htm#ref_102_28">Key</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</a>;
+ <span class="symbol"><a name="ref_60_28" href="terminal_interface-curses-menus__ads.htm#ref_103_28">Name</a></span> : <b>out</b> String)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_62_16">Request_Name</A></span> (<span class="symbol"><A NAME="ref_62_30" HREF="terminal_interface-curses-menus__adb.htm#ref_62_16">Key</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_56_12">chars_ptr</A>;
+ <b>function</b> <span class="symbol"><a name="ref_62_16">Request_Name</a></span> (<span class="symbol"><a name="ref_62_30">Key</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-menus__adb.htm#ref_56_12">chars_ptr</a>;
<b>pragma</b> Import (C, Request_Name, "menu_request_name");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_91_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_62_16">Request_Name</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_102_28">Key</A>)), <A HREF="terminal_interface-curses-menus__ads.htm#ref_103_28">Name</A>);
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_102_14">Request_Name</A>;
+ <a href="terminal_interface-curses-aux__ads.htm#ref_91_14">Fill_String</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_62_16">Request_Name</a> (<a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_102_28">Key</a>)), <a href="terminal_interface-curses-menus__ads.htm#ref_103_28">Name</a>);
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_102_14">Request_Name</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_68_13" HREF="terminal_interface-curses-menus__ads.htm#ref_105_14">Request_Name</A></span> (<span class="symbol"><A NAME="ref_68_27" HREF="terminal_interface-curses-menus__ads.htm#ref_105_28">Key</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</A>) <b>return</b> String
+ <b>function</b> <span class="symbol"><a name="ref_68_13" href="terminal_interface-curses-menus__ads.htm#ref_105_14">Request_Name</a></span> (<span class="symbol"><a name="ref_68_27" href="terminal_interface-curses-menus__ads.htm#ref_105_28">Key</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</a>) <b>return</b> String
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_70_16">Request_Name</A></span> (<span class="symbol"><A NAME="ref_70_30" HREF="terminal_interface-curses-menus__adb.htm#ref_70_16">Key</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_56_12">chars_ptr</A>;
+ <b>function</b> <span class="symbol"><a name="ref_70_16">Request_Name</a></span> (<span class="symbol"><a name="ref_70_30">Key</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-menus__adb.htm#ref_56_12">chars_ptr</a>;
<b>pragma</b> Import (C, Request_Name, "menu_request_name");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_13">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_70_16">Request_Name</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_105_28">Key</A>)));
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_105_14">Request_Name</A>;
+ <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_96_13">Fill_String</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_70_16">Request_Name</a> (<a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_105_28">Key</a>)));
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_105_14">Request_Name</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_76_13" HREF="terminal_interface-curses-menus__ads.htm#ref_190_13">Create</A></span> (<span class="symbol"><A NAME="ref_76_21" HREF="terminal_interface-curses-menus__ads.htm#ref_190_21">Name</A></span> : String;
- <span class="symbol"><A NAME="ref_77_21" HREF="terminal_interface-curses-menus__ads.htm#ref_191_21">Description</A></span> : String := "") <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>
+ <b>function</b> <span class="symbol"><a name="ref_76_13" href="terminal_interface-curses-menus__ads.htm#ref_190_13">Create</a></span> (<span class="symbol"><a name="ref_76_21" href="terminal_interface-curses-menus__ads.htm#ref_190_21">Name</a></span> : String;
+ <span class="symbol"><a name="ref_77_21" href="terminal_interface-curses-menus__ads.htm#ref_191_21">Description</a></span> : String := "") <b>return</b> <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>
<b>is</b>
- <b>type</b> <span class="symbol"><A NAME="ref_79_12">Char_Ptr</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.char;
- <b>function</b> <span class="symbol"><A NAME="ref_80_16">Newitem</A></span> (<span class="symbol"><A NAME="ref_80_25" HREF="terminal_interface-curses-menus__adb.htm#ref_80_16">Name</A></span>, <span class="symbol"><A NAME="ref_80_31" HREF="terminal_interface-curses-menus__adb.htm#ref_80_16">Desc</A></span> : <A HREF="terminal_interface-curses-menus__adb.htm#ref_79_12">Char_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>;
+ <b>type</b> <span class="symbol"><a name="ref_79_12">Char_Ptr</a></span> <b>is</b> <b>access</b> <b>all</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.char;
+ <b>function</b> <span class="symbol"><a name="ref_80_16">Newitem</a></span> (<span class="symbol"><a name="ref_80_25">Name</a></span>, <span class="symbol"><a name="ref_80_31">Desc</a></span> : <a href="terminal_interface-curses-menus__adb.htm#ref_79_12">Char_Ptr</a>) <b>return</b> <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>;
<b>pragma</b> Import (C, Newitem, "new_item");
- <b>type</b> Name_String <b>is</b> <b>new</b> char_array (0 .. <A HREF="terminal_interface-curses-menus__ads.htm#ref_190_21">Name</A>'Length);
- <b>type</b> <span class="symbol"><A NAME="ref_84_12">Name_String_Ptr</A></span> <b>is</b> <b>access</b> Name_String;
- <b>pragma</b> Controlled (<A HREF="terminal_interface-curses-menus__adb.htm#ref_84_12">Name_String_Ptr</A>);
-
- <b>type</b> Desc_String <b>is</b> <b>new</b> char_array (0 .. <A HREF="terminal_interface-curses-menus__ads.htm#ref_191_21">Description</A>'Length);
- <b>type</b> <span class="symbol"><A NAME="ref_88_12">Desc_String_Ptr</A></span> <b>is</b> <b>access</b> Desc_String;
- <b>pragma</b> Controlled (<A HREF="terminal_interface-curses-menus__adb.htm#ref_88_12">Desc_String_Ptr</A>);
-
- <span class="symbol"><A NAME="ref_91_7">Name_Str</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_84_12">Name_String_Ptr</A> := <b>new</b> Name_String;
- <span class="symbol"><A NAME="ref_92_7">Desc_Str</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_88_12">Desc_String_Ptr</A> := <b>new</b> Desc_String;
- <span class="symbol"><A NAME="ref_93_7">Name_Len</A></span>, <span class="symbol"><A NAME="ref_93_17">Desc_Len</A></span> : size_t;
- <span class="symbol"><A NAME="ref_94_7">Result</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>;
- <b>begin</b>
- To_C (<A HREF="terminal_interface-curses-menus__ads.htm#ref_190_21">Name</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_91_7">Name_Str</A>.<b>all</b>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_93_7">Name_Len</A>);
- To_C (<A HREF="terminal_interface-curses-menus__ads.htm#ref_191_21">Description</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_92_7">Desc_Str</A>.<b>all</b>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_93_17">Desc_Len</A>);
- <A HREF="terminal_interface-curses-menus__adb.htm#ref_94_7">Result</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_80_16">Newitem</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_91_7">Name_Str</A>.<b>all</b> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_91_7">Name_Str</A>.<b>all</b>'First)'<b>Access</b>,
- <A HREF="terminal_interface-curses-menus__adb.htm#ref_92_7">Desc_Str</A>.<b>all</b> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_92_7">Desc_Str</A>.<b>all</b>'First)'<b>Access</b>);
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_94_7">Result</A> = <A HREF="terminal_interface-curses-menus__ads.htm#ref_58_4">Null_Item</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_528_4">Eti_System_Error</A>;
+ <b>type</b> Name_String <b>is</b> <b>new</b> char_array (0 .. <a href="terminal_interface-curses-menus__ads.htm#ref_190_21">Name</a>'Length);
+ <b>type</b> <span class="symbol"><a name="ref_84_12">Name_String_Ptr</a></span> <b>is</b> <b>access</b> Name_String;
+ <b>pragma</b> Controlled (<a href="terminal_interface-curses-menus__adb.htm#ref_84_12">Name_String_Ptr</a>);
+
+ <b>type</b> Desc_String <b>is</b> <b>new</b> char_array (0 .. <a href="terminal_interface-curses-menus__ads.htm#ref_191_21">Description</a>'Length);
+ <b>type</b> <span class="symbol"><a name="ref_88_12">Desc_String_Ptr</a></span> <b>is</b> <b>access</b> Desc_String;
+ <b>pragma</b> Controlled (<a href="terminal_interface-curses-menus__adb.htm#ref_88_12">Desc_String_Ptr</a>);
+
+ <span class="symbol"><a name="ref_91_7">Name_Str</a></span> : <b>constant</b> <a href="terminal_interface-curses-menus__adb.htm#ref_84_12">Name_String_Ptr</a> := <b>new</b> Name_String;
+ <span class="symbol"><a name="ref_92_7">Desc_Str</a></span> : <b>constant</b> <a href="terminal_interface-curses-menus__adb.htm#ref_88_12">Desc_String_Ptr</a> := <b>new</b> Desc_String;
+ <span class="symbol"><a name="ref_93_7">Name_Len</a></span>, <span class="symbol"><a name="ref_93_17">Desc_Len</a></span> : size_t;
+ <span class="symbol"><a name="ref_94_7">Result</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>;
+ <b>begin</b>
+ To_C (<a href="terminal_interface-curses-menus__ads.htm#ref_190_21">Name</a>, <a href="terminal_interface-curses-menus__adb.htm#ref_91_7">Name_Str</a>.<b>all</b>, <a href="terminal_interface-curses-menus__adb.htm#ref_93_7">Name_Len</a>);
+ To_C (<a href="terminal_interface-curses-menus__ads.htm#ref_191_21">Description</a>, <a href="terminal_interface-curses-menus__adb.htm#ref_92_7">Desc_Str</a>.<b>all</b>, <a href="terminal_interface-curses-menus__adb.htm#ref_93_17">Desc_Len</a>);
+ <a href="terminal_interface-curses-menus__adb.htm#ref_94_7">Result</a> := <a href="terminal_interface-curses-menus__adb.htm#ref_80_16">Newitem</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_91_7">Name_Str</a>.<b>all</b> (<a href="terminal_interface-curses-menus__adb.htm#ref_91_7">Name_Str</a>.<b>all</b>'First)'<b>Access</b>,
+ <a href="terminal_interface-curses-menus__adb.htm#ref_92_7">Desc_Str</a>.<b>all</b> (<a href="terminal_interface-curses-menus__adb.htm#ref_92_7">Desc_Str</a>.<b>all</b>'First)'<b>Access</b>);
+ <b>if</b> <a href="terminal_interface-curses-menus__adb.htm#ref_94_7">Result</a> = <a href="terminal_interface-curses-menus__ads.htm#ref_58_4">Null_Item</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_528_4">Eti_System_Error</a>;
<b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_94_7">Result</A>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_190_13">Create</A>;
+ <b>return</b> <a href="terminal_interface-curses-menus__adb.htm#ref_94_7">Result</a>;
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_190_13">Create</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_106_14" HREF="terminal_interface-curses-menus__ads.htm#ref_202_14">Delete</A></span> (<span class="symbol"><A NAME="ref_106_22" HREF="terminal_interface-curses-menus__ads.htm#ref_202_22">Itm</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_106_14" href="terminal_interface-curses-menus__ads.htm#ref_202_14">Delete</a></span> (<span class="symbol"><a name="ref_106_22" href="terminal_interface-curses-menus__ads.htm#ref_202_22">Itm</a></span> : <b>in</b> <b>out</b> <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_108_16">Descname</A></span> (<span class="symbol"><A NAME="ref_108_26" HREF="terminal_interface-curses-menus__adb.htm#ref_108_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_56_12">chars_ptr</A>;
+ <b>function</b> <span class="symbol"><a name="ref_108_16">Descname</a></span> (<span class="symbol"><a name="ref_108_26">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>) <b>return</b> <a href="terminal_interface-curses-menus__adb.htm#ref_56_12">chars_ptr</a>;
<b>pragma</b> Import (C, Descname, "item_description");
- <b>function</b> <span class="symbol"><A NAME="ref_110_16">Itemname</A></span> (<span class="symbol"><A NAME="ref_110_26" HREF="terminal_interface-curses-menus__adb.htm#ref_110_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_56_12">chars_ptr</A>;
+ <b>function</b> <span class="symbol"><a name="ref_110_16">Itemname</a></span> (<span class="symbol"><a name="ref_110_26">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>) <b>return</b> <a href="terminal_interface-curses-menus__adb.htm#ref_56_12">chars_ptr</a>;
<b>pragma</b> Import (C, Itemname, "item_name");
- <b>function</b> <span class="symbol"><A NAME="ref_113_16">Freeitem</A></span> (<span class="symbol"><A NAME="ref_113_26" HREF="terminal_interface-curses-menus__adb.htm#ref_113_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_113_16">Freeitem</a></span> (<span class="symbol"><a name="ref_113_26">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Freeitem, "free_item");
- <span class="symbol"><A NAME="ref_116_7">Ptr</A></span> : <A HREF="terminal_interface-curses-menus__adb.htm#ref_56_12">chars_ptr</A>;
+ <span class="symbol"><a name="ref_116_7">Ptr</a></span> : <a href="terminal_interface-curses-menus__adb.htm#ref_56_12">chars_ptr</a>;
<b>begin</b>
- <A HREF="terminal_interface-curses-menus__adb.htm#ref_116_7">Ptr</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_108_16">Descname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_202_22">Itm</A>);
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_116_7">Ptr</A> /= Null_Ptr <b>then</b>
- <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings.Free (<A HREF="terminal_interface-curses-menus__adb.htm#ref_116_7">Ptr</A>);
+ <a href="terminal_interface-curses-menus__adb.htm#ref_116_7">Ptr</a> := <a href="terminal_interface-curses-menus__adb.htm#ref_108_16">Descname</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_202_22">Itm</a>);
+ <b>if</b> <a href="terminal_interface-curses-menus__adb.htm#ref_116_7">Ptr</a> /= Null_Ptr <b>then</b>
+ <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.Strings.Free (<a href="terminal_interface-curses-menus__adb.htm#ref_116_7">Ptr</a>);
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-menus__adb.htm#ref_116_7">Ptr</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_110_16">Itemname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_202_22">Itm</A>);
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_116_7">Ptr</A> /= Null_Ptr <b>then</b>
- <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings.Free (<A HREF="terminal_interface-curses-menus__adb.htm#ref_116_7">Ptr</A>);
+ <a href="terminal_interface-curses-menus__adb.htm#ref_116_7">Ptr</a> := <a href="terminal_interface-curses-menus__adb.htm#ref_110_16">Itemname</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_202_22">Itm</a>);
+ <b>if</b> <a href="terminal_interface-curses-menus__adb.htm#ref_116_7">Ptr</a> /= Null_Ptr <b>then</b>
+ <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.Strings.Free (<a href="terminal_interface-curses-menus__adb.htm#ref_116_7">Ptr</a>);
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_113_16">Freeitem</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_202_22">Itm</A>));
- <A HREF="terminal_interface-curses-menus__ads.htm#ref_202_22">Itm</A> := <A HREF="terminal_interface-curses-menus__ads.htm#ref_58_4">Null_Item</A>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_202_14">Delete</A>;
-<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_130_14" HREF="terminal_interface-curses-menus__ads.htm#ref_211_14">Set_Value</A></span> (<span class="symbol"><A NAME="ref_130_25" HREF="terminal_interface-curses-menus__ads.htm#ref_211_25">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>;
- <span class="symbol"><A NAME="ref_131_25" HREF="terminal_interface-curses-menus__ads.htm#ref_212_25">Value</A></span> : Boolean := True)
- <b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_133_16">Set_Item_Val</A></span> (<span class="symbol"><A NAME="ref_133_30" HREF="terminal_interface-curses-menus__adb.htm#ref_133_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>;
- <span class="symbol"><A NAME="ref_134_30" HREF="terminal_interface-curses-menus__adb.htm#ref_133_16">Val</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_113_16">Freeitem</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_202_22">Itm</a>));
+ <a href="terminal_interface-curses-menus__ads.htm#ref_202_22">Itm</a> := <a href="terminal_interface-curses-menus__ads.htm#ref_58_4">Null_Item</a>;
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_202_14">Delete</a>;
+<span class="comment"><em>-------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_130_14" href="terminal_interface-curses-menus__ads.htm#ref_211_14">Set_Value</a></span> (<span class="symbol"><a name="ref_130_25" href="terminal_interface-curses-menus__ads.htm#ref_211_25">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>;
+ <span class="symbol"><a name="ref_131_25" href="terminal_interface-curses-menus__ads.htm#ref_212_25">Value</a></span> : Boolean := True)
+ <b>is</b>
+ <b>function</b> <span class="symbol"><a name="ref_133_16">Set_Item_Val</a></span> (<span class="symbol"><a name="ref_133_30">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>;
+ <span class="symbol"><a name="ref_134_30">Val</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Item_Val, "set_item_value");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_133_16">Set_Item_Val</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_211_25">Itm</A>, Boolean'Pos (<A HREF="terminal_interface-curses-menus__ads.htm#ref_212_25">Value</A>)));
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_211_14">Set_Value</A>;
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_133_16">Set_Item_Val</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_211_25">Itm</a>, Boolean'Pos (<a href="terminal_interface-curses-menus__ads.htm#ref_212_25">Value</a>)));
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_211_14">Set_Value</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_141_13" HREF="terminal_interface-curses-menus__ads.htm#ref_217_13">Value</A></span> (<span class="symbol"><A NAME="ref_141_20" HREF="terminal_interface-curses-menus__ads.htm#ref_217_20">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>) <b>return</b> Boolean
+ <b>function</b> <span class="symbol"><a name="ref_141_13" href="terminal_interface-curses-menus__ads.htm#ref_217_13">Value</a></span> (<span class="symbol"><a name="ref_141_20" href="terminal_interface-curses-menus__ads.htm#ref_217_20">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>) <b>return</b> Boolean
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_143_16">Item_Val</A></span> (<span class="symbol"><A NAME="ref_143_26" HREF="terminal_interface-curses-menus__adb.htm#ref_143_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_143_16">Item_Val</a></span> (<span class="symbol"><a name="ref_143_26">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Item_Val, "item_value");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_143_16">Item_Val</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_217_20">Itm</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_67_4">Curses_False</A> <b>then</b>
+ <b>if</b> <a href="terminal_interface-curses-menus__adb.htm#ref_143_16">Item_Val</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_217_20">Itm</a>) = <a href="terminal_interface-curses-aux__ads.htm#ref_67_4">Curses_False</a> <b>then</b>
<b>return</b> False;
<b>else</b>
<b>return</b> True;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_217_13">Value</A>;
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_217_13">Value</a>;
-<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_154_13" HREF="terminal_interface-curses-menus__ads.htm#ref_226_13">Visible</A></span> (<span class="symbol"><A NAME="ref_154_22" HREF="terminal_interface-curses-menus__ads.htm#ref_226_22">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>) <b>return</b> Boolean
+<span class="comment"><em>-------------------------------------------------------------------------------</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_154_13" href="terminal_interface-curses-menus__ads.htm#ref_226_13">Visible</a></span> (<span class="symbol"><a name="ref_154_22" href="terminal_interface-curses-menus__ads.htm#ref_226_22">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>) <b>return</b> Boolean
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_156_16">Item_Vis</A></span> (<span class="symbol"><A NAME="ref_156_26" HREF="terminal_interface-curses-menus__adb.htm#ref_156_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_156_16">Item_Vis</a></span> (<span class="symbol"><a name="ref_156_26">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Item_Vis, "item_visible");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_156_16">Item_Vis</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_226_22">Itm</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_67_4">Curses_False</A> <b>then</b>
+ <b>if</b> <a href="terminal_interface-curses-menus__adb.htm#ref_156_16">Item_Vis</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_226_22">Itm</a>) = <a href="terminal_interface-curses-aux__ads.htm#ref_67_4">Curses_False</a> <b>then</b>
<b>return</b> False;
<b>else</b>
<b>return</b> True;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_226_13">Visible</A>;
-<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_166_14" HREF="terminal_interface-curses-menus__ads.htm#ref_235_14">Set_Options</A></span> (<span class="symbol"><A NAME="ref_166_27" HREF="terminal_interface-curses-menus__ads.htm#ref_235_27">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>;
- <span class="symbol"><A NAME="ref_167_27" HREF="terminal_interface-curses-menus__ads.htm#ref_236_27">Options</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</A>)
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_226_13">Visible</a>;
+<span class="comment"><em>-------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_166_14" href="terminal_interface-curses-menus__ads.htm#ref_235_14">Set_Options</a></span> (<span class="symbol"><a name="ref_166_27" href="terminal_interface-curses-menus__ads.htm#ref_235_27">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>;
+ <span class="symbol"><a name="ref_167_27" href="terminal_interface-curses-menus__ads.htm#ref_236_27">Options</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_169_16">Set_Item_Opts</A></span> (<span class="symbol"><A NAME="ref_169_31" HREF="terminal_interface-curses-menus__adb.htm#ref_169_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>;
- <span class="symbol"><A NAME="ref_170_31" HREF="terminal_interface-curses-menus__adb.htm#ref_169_16">Opt</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_169_16">Set_Item_Opts</a></span> (<span class="symbol"><a name="ref_169_31">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>;
+ <span class="symbol"><a name="ref_170_31">Opt</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Item_Opts, "set_item_opts");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_169_16">Set_Item_Opts</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_235_27">Itm</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_236_27">Options</A>));
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_235_14">Set_Options</A>;
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_169_16">Set_Item_Opts</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_235_27">Itm</a>, <a href="terminal_interface-curses-menus__ads.htm#ref_236_27">Options</a>));
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_235_14">Set_Options</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_177_14" HREF="terminal_interface-curses-menus__ads.htm#ref_241_14">Switch_Options</A></span> (<span class="symbol"><A NAME="ref_177_30" HREF="terminal_interface-curses-menus__ads.htm#ref_241_30">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>;
- <span class="symbol"><A NAME="ref_178_30" HREF="terminal_interface-curses-menus__ads.htm#ref_242_30">Options</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</A>;
- <span class="symbol"><A NAME="ref_179_30" HREF="terminal_interface-curses-menus__ads.htm#ref_243_30">On</A></span> : Boolean := True)
+ <b>procedure</b> <span class="symbol"><a name="ref_177_14" href="terminal_interface-curses-menus__ads.htm#ref_241_14">Switch_Options</a></span> (<span class="symbol"><a name="ref_177_30" href="terminal_interface-curses-menus__ads.htm#ref_241_30">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>;
+ <span class="symbol"><a name="ref_178_30" href="terminal_interface-curses-menus__ads.htm#ref_242_30">Options</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</a>;
+ <span class="symbol"><a name="ref_179_30" href="terminal_interface-curses-menus__ads.htm#ref_243_30">On</a></span> : Boolean := True)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_181_16">Item_Opts_On</A></span> (<span class="symbol"><A NAME="ref_181_30" HREF="terminal_interface-curses-menus__adb.htm#ref_181_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>;
- <span class="symbol"><A NAME="ref_182_30" HREF="terminal_interface-curses-menus__adb.htm#ref_181_16">Opt</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_181_16">Item_Opts_On</a></span> (<span class="symbol"><a name="ref_181_30">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>;
+ <span class="symbol"><a name="ref_182_30">Opt</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Item_Opts_On, "item_opts_on");
- <b>function</b> <span class="symbol"><A NAME="ref_184_16">Item_Opts_Off</A></span> (<span class="symbol"><A NAME="ref_184_31" HREF="terminal_interface-curses-menus__adb.htm#ref_184_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>;
- <span class="symbol"><A NAME="ref_185_31" HREF="terminal_interface-curses-menus__adb.htm#ref_184_16">Opt</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_184_16">Item_Opts_Off</a></span> (<span class="symbol"><a name="ref_184_31">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>;
+ <span class="symbol"><a name="ref_185_31">Opt</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Item_Opts_Off, "item_opts_off");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_243_30">On</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_181_16">Item_Opts_On</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_241_30">Itm</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_242_30">Options</A>));
+ <b>if</b> <a href="terminal_interface-curses-menus__ads.htm#ref_243_30">On</a> <b>then</b>
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_181_16">Item_Opts_On</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_241_30">Itm</a>, <a href="terminal_interface-curses-menus__ads.htm#ref_242_30">Options</a>));
<b>else</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_184_16">Item_Opts_Off</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_241_30">Itm</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_242_30">Options</A>));
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_184_16">Item_Opts_Off</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_241_30">Itm</a>, <a href="terminal_interface-curses-menus__ads.htm#ref_242_30">Options</a>));
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_241_14">Switch_Options</A>;
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_241_14">Switch_Options</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_196_14" HREF="terminal_interface-curses-menus__ads.htm#ref_250_14">Get_Options</A></span> (<span class="symbol"><A NAME="ref_196_27" HREF="terminal_interface-curses-menus__ads.htm#ref_250_27">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>;
- <span class="symbol"><A NAME="ref_197_27" HREF="terminal_interface-curses-menus__ads.htm#ref_251_27">Options</A></span> : <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_196_14" href="terminal_interface-curses-menus__ads.htm#ref_250_14">Get_Options</a></span> (<span class="symbol"><a name="ref_196_27" href="terminal_interface-curses-menus__ads.htm#ref_250_27">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>;
+ <span class="symbol"><a name="ref_197_27" href="terminal_interface-curses-menus__ads.htm#ref_251_27">Options</a></span> : <b>out</b> <a href="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_199_16">Item_Opts</A></span> (<span class="symbol"><A NAME="ref_199_27" HREF="terminal_interface-curses-menus__adb.htm#ref_199_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</A>;
+ <b>function</b> <span class="symbol"><a name="ref_199_16">Item_Opts</a></span> (<span class="symbol"><a name="ref_199_27">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>) <b>return</b> <a href="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</a>;
<b>pragma</b> Import (C, Item_Opts, "item_opts");
<b>begin</b>
- <A HREF="terminal_interface-curses-menus__ads.htm#ref_251_27">Options</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_199_16">Item_Opts</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_250_27">Itm</A>);
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_250_14">Get_Options</A>;
+ <a href="terminal_interface-curses-menus__ads.htm#ref_251_27">Options</a> := <a href="terminal_interface-curses-menus__adb.htm#ref_199_16">Item_Opts</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_250_27">Itm</a>);
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_250_14">Get_Options</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_206_13" HREF="terminal_interface-curses-menus__ads.htm#ref_255_13">Get_Options</A></span> (<span class="symbol"><A NAME="ref_206_26" HREF="terminal_interface-curses-menus__ads.htm#ref_255_26">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A> := <A HREF="terminal_interface-curses-menus__ads.htm#ref_58_4">Null_Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</A>
+ <b>function</b> <span class="symbol"><a name="ref_206_13" href="terminal_interface-curses-menus__ads.htm#ref_255_13">Get_Options</a></span> (<span class="symbol"><a name="ref_206_26" href="terminal_interface-curses-menus__ads.htm#ref_255_26">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a> := <a href="terminal_interface-curses-menus__ads.htm#ref_58_4">Null_Item</a>) <b>return</b> <a href="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</a>
<b>is</b>
- <span class="symbol"><A NAME="ref_208_7">Ios</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</A>;
+ <span class="symbol"><a name="ref_208_7">Ios</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</a>;
<b>begin</b>
- <A HREF="terminal_interface-curses-menus__ads.htm#ref_250_14">Get_Options</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_255_26">Itm</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_208_7">Ios</A>);
- <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_208_7">Ios</A>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_255_13">Get_Options</A>;
-<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_214_14" HREF="terminal_interface-curses-menus__ads.htm#ref_264_14">Name</A></span> (<span class="symbol"><A NAME="ref_214_20" HREF="terminal_interface-curses-menus__ads.htm#ref_264_20">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>;
- <span class="symbol"><A NAME="ref_215_20" HREF="terminal_interface-curses-menus__ads.htm#ref_265_20">Name</A></span> : <b>out</b> String)
+ <a href="terminal_interface-curses-menus__ads.htm#ref_250_14">Get_Options</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_255_26">Itm</a>, <a href="terminal_interface-curses-menus__adb.htm#ref_208_7">Ios</a>);
+ <b>return</b> <a href="terminal_interface-curses-menus__adb.htm#ref_208_7">Ios</a>;
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_255_13">Get_Options</a>;
+<span class="comment"><em>-------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_214_14" href="terminal_interface-curses-menus__ads.htm#ref_264_14">Name</a></span> (<span class="symbol"><a name="ref_214_20" href="terminal_interface-curses-menus__ads.htm#ref_264_20">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>;
+ <span class="symbol"><a name="ref_215_20" href="terminal_interface-curses-menus__ads.htm#ref_265_20">Name</a></span> : <b>out</b> String)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_217_16">Itemname</A></span> (<span class="symbol"><A NAME="ref_217_26" HREF="terminal_interface-curses-menus__adb.htm#ref_217_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_56_12">chars_ptr</A>;
+ <b>function</b> <span class="symbol"><a name="ref_217_16">Itemname</a></span> (<span class="symbol"><a name="ref_217_26">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>) <b>return</b> <a href="terminal_interface-curses-menus__adb.htm#ref_56_12">chars_ptr</a>;
<b>pragma</b> Import (C, Itemname, "item_name");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_91_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_217_16">Itemname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_264_20">Itm</A>), <A HREF="terminal_interface-curses-menus__ads.htm#ref_265_20">Name</A>);
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_264_14">Name</A>;
+ <a href="terminal_interface-curses-aux__ads.htm#ref_91_14">Fill_String</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_217_16">Itemname</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_264_20">Itm</a>), <a href="terminal_interface-curses-menus__ads.htm#ref_265_20">Name</a>);
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_264_14">Name</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_223_13" HREF="terminal_interface-curses-menus__ads.htm#ref_267_14">Name</A></span> (<span class="symbol"><A NAME="ref_223_19" HREF="terminal_interface-curses-menus__ads.htm#ref_267_20">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>) <b>return</b> String
+ <b>function</b> <span class="symbol"><a name="ref_223_13" href="terminal_interface-curses-menus__ads.htm#ref_267_14">Name</a></span> (<span class="symbol"><a name="ref_223_19" href="terminal_interface-curses-menus__ads.htm#ref_267_20">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>) <b>return</b> String
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_225_16">Itemname</A></span> (<span class="symbol"><A NAME="ref_225_26" HREF="terminal_interface-curses-menus__adb.htm#ref_225_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_56_12">chars_ptr</A>;
+ <b>function</b> <span class="symbol"><a name="ref_225_16">Itemname</a></span> (<span class="symbol"><a name="ref_225_26">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>) <b>return</b> <a href="terminal_interface-curses-menus__adb.htm#ref_56_12">chars_ptr</a>;
<b>pragma</b> Import (C, Itemname, "item_name");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_13">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_225_16">Itemname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_267_20">Itm</A>));
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_267_14">Name</A>;
+ <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_96_13">Fill_String</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_225_16">Itemname</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_267_20">Itm</a>));
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_267_14">Name</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_231_14" HREF="terminal_interface-curses-menus__ads.htm#ref_273_14">Description</A></span> (<span class="symbol"><A NAME="ref_231_27" HREF="terminal_interface-curses-menus__ads.htm#ref_273_27">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>;
- <span class="symbol"><A NAME="ref_232_27" HREF="terminal_interface-curses-menus__ads.htm#ref_274_27">Description</A></span> : <b>out</b> String)
+ <b>procedure</b> <span class="symbol"><a name="ref_231_14" href="terminal_interface-curses-menus__ads.htm#ref_273_14">Description</a></span> (<span class="symbol"><a name="ref_231_27" href="terminal_interface-curses-menus__ads.htm#ref_273_27">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>;
+ <span class="symbol"><a name="ref_232_27" href="terminal_interface-curses-menus__ads.htm#ref_274_27">Description</a></span> : <b>out</b> String)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_234_16">Descname</A></span> (<span class="symbol"><A NAME="ref_234_26" HREF="terminal_interface-curses-menus__adb.htm#ref_234_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_56_12">chars_ptr</A>;
+ <b>function</b> <span class="symbol"><a name="ref_234_16">Descname</a></span> (<span class="symbol"><a name="ref_234_26">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>) <b>return</b> <a href="terminal_interface-curses-menus__adb.htm#ref_56_12">chars_ptr</a>;
<b>pragma</b> Import (C, Descname, "item_description");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_91_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_234_16">Descname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_273_27">Itm</A>), <A HREF="terminal_interface-curses-menus__ads.htm#ref_274_27">Description</A>);
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_273_14">Description</A>;
+ <a href="terminal_interface-curses-aux__ads.htm#ref_91_14">Fill_String</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_234_16">Descname</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_273_27">Itm</a>), <a href="terminal_interface-curses-menus__ads.htm#ref_274_27">Description</a>);
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_273_14">Description</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_240_13" HREF="terminal_interface-curses-menus__ads.htm#ref_277_14">Description</A></span> (<span class="symbol"><A NAME="ref_240_26" HREF="terminal_interface-curses-menus__ads.htm#ref_277_27">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>) <b>return</b> String
+ <b>function</b> <span class="symbol"><a name="ref_240_13" href="terminal_interface-curses-menus__ads.htm#ref_277_14">Description</a></span> (<span class="symbol"><a name="ref_240_26" href="terminal_interface-curses-menus__ads.htm#ref_277_27">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>) <b>return</b> String
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_242_16">Descname</A></span> (<span class="symbol"><A NAME="ref_242_26" HREF="terminal_interface-curses-menus__adb.htm#ref_242_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_56_12">chars_ptr</A>;
+ <b>function</b> <span class="symbol"><a name="ref_242_16">Descname</a></span> (<span class="symbol"><a name="ref_242_26">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>) <b>return</b> <a href="terminal_interface-curses-menus__adb.htm#ref_56_12">chars_ptr</a>;
<b>pragma</b> Import (C, Descname, "item_description");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_13">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_242_16">Descname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_277_27">Itm</A>));
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_277_14">Description</A>;
-<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_248_14" HREF="terminal_interface-curses-menus__ads.htm#ref_287_14">Set_Current</A></span> (<span class="symbol"><A NAME="ref_248_27" HREF="terminal_interface-curses-menus__ads.htm#ref_287_27">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_249_27" HREF="terminal_interface-curses-menus__ads.htm#ref_288_27">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>)
+ <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_96_13">Fill_String</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_242_16">Descname</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_277_27">Itm</a>));
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_277_14">Description</a>;
+<span class="comment"><em>-------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_248_14" href="terminal_interface-curses-menus__ads.htm#ref_287_14">Set_Current</a></span> (<span class="symbol"><a name="ref_248_27" href="terminal_interface-curses-menus__ads.htm#ref_287_27">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_249_27" href="terminal_interface-curses-menus__ads.htm#ref_288_27">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_251_16">Set_Curr_Item</A></span> (<span class="symbol"><A NAME="ref_251_31" HREF="terminal_interface-curses-menus__adb.htm#ref_251_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_252_31" HREF="terminal_interface-curses-menus__adb.htm#ref_251_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_251_16">Set_Curr_Item</a></span> (<span class="symbol"><a name="ref_251_31">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_252_31">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Curr_Item, "set_current_item");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_251_16">Set_Curr_Item</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_287_27">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_288_27">Itm</A>));
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_287_14">Set_Current</A>;
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_251_16">Set_Curr_Item</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_287_27">Men</a>, <a href="terminal_interface-curses-menus__ads.htm#ref_288_27">Itm</a>));
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_287_14">Set_Current</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_259_13" HREF="terminal_interface-curses-menus__ads.htm#ref_293_13">Current</A></span> (<span class="symbol"><A NAME="ref_259_22" HREF="terminal_interface-curses-menus__ads.htm#ref_293_22">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>
+ <b>function</b> <span class="symbol"><a name="ref_259_13" href="terminal_interface-curses-menus__ads.htm#ref_293_13">Current</a></span> (<span class="symbol"><a name="ref_259_22" href="terminal_interface-curses-menus__ads.htm#ref_293_22">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_261_16">Curr_Item</A></span> (<span class="symbol"><A NAME="ref_261_27" HREF="terminal_interface-curses-menus__adb.htm#ref_261_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>;
+ <b>function</b> <span class="symbol"><a name="ref_261_16">Curr_Item</a></span> (<span class="symbol"><a name="ref_261_27">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>;
<b>pragma</b> Import (C, Curr_Item, "current_item");
- <span class="symbol"><A NAME="ref_264_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_261_16">Curr_Item</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_293_22">Men</A>);
+ <span class="symbol"><a name="ref_264_7">Res</a></span> : <b>constant</b> <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a> := <a href="terminal_interface-curses-menus__adb.htm#ref_261_16">Curr_Item</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_293_22">Men</a>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_264_7">Res</A> = <A HREF="terminal_interface-curses-menus__ads.htm#ref_58_4">Null_Item</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_112_4">Menu_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses-menus__adb.htm#ref_264_7">Res</a> = <a href="terminal_interface-curses-menus__ads.htm#ref_58_4">Null_Item</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses-menus__ads.htm#ref_112_4">Menu_Exception</a>;
<b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_264_7">Res</A>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_293_13">Current</A>;
+ <b>return</b> <a href="terminal_interface-curses-menus__adb.htm#ref_264_7">Res</a>;
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_293_13">Current</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_272_14" HREF="terminal_interface-curses-menus__ads.htm#ref_298_14">Set_Top_Row</A></span> (<span class="symbol"><A NAME="ref_272_27" HREF="terminal_interface-curses-menus__ads.htm#ref_298_27">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_273_27" HREF="terminal_interface-curses-menus__ads.htm#ref_299_27">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_272_14" href="terminal_interface-curses-menus__ads.htm#ref_298_14">Set_Top_Row</a></span> (<span class="symbol"><a name="ref_272_27" href="terminal_interface-curses-menus__ads.htm#ref_298_27">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_273_27" href="terminal_interface-curses-menus__ads.htm#ref_299_27">Line</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_275_16">Set_Toprow</A></span> (<span class="symbol"><A NAME="ref_275_28" HREF="terminal_interface-curses-menus__adb.htm#ref_275_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_276_28" HREF="terminal_interface-curses-menus__adb.htm#ref_275_16">Line</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_275_16">Set_Toprow</a></span> (<span class="symbol"><a name="ref_275_28">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_276_28">Line</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Toprow, "set_top_row");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_275_16">Set_Toprow</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_298_27">Men</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_299_27">Line</A>)));
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_298_14">Set_Top_Row</A>;
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_275_16">Set_Toprow</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_298_27">Men</a>, <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_299_27">Line</a>)));
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_298_14">Set_Top_Row</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_283_13" HREF="terminal_interface-curses-menus__ads.htm#ref_304_13">Top_Row</A></span> (<span class="symbol"><A NAME="ref_283_22" HREF="terminal_interface-curses-menus__ads.htm#ref_304_22">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>
+ <b>function</b> <span class="symbol"><a name="ref_283_13" href="terminal_interface-curses-menus__ads.htm#ref_304_13">Top_Row</a></span> (<span class="symbol"><a name="ref_283_22" href="terminal_interface-curses-menus__ads.htm#ref_304_22">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_285_16">Toprow</A></span> (<span class="symbol"><A NAME="ref_285_24" HREF="terminal_interface-curses-menus__adb.htm#ref_285_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_285_16">Toprow</a></span> (<span class="symbol"><a name="ref_285_24">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Toprow, "top_row");
- <span class="symbol"><A NAME="ref_288_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_285_16">Toprow</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_304_22">Men</A>);
+ <span class="symbol"><a name="ref_288_7">Res</a></span> : <b>constant</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> := <a href="terminal_interface-curses-menus__adb.htm#ref_285_16">Toprow</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_304_22">Men</a>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_288_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_112_4">Menu_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses-menus__adb.htm#ref_288_7">Res</a> = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses-menus__ads.htm#ref_112_4">Menu_Exception</a>;
<b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_288_7">Res</A>);
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_304_13">Top_Row</A>;
+ <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_288_7">Res</a>);
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_304_13">Top_Row</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_296_13" HREF="terminal_interface-curses-menus__ads.htm#ref_309_13">Get_Index</A></span> (<span class="symbol"><A NAME="ref_296_24" HREF="terminal_interface-curses-menus__ads.htm#ref_309_24">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>) <b>return</b> Positive
+ <b>function</b> <span class="symbol"><a name="ref_296_13" href="terminal_interface-curses-menus__ads.htm#ref_309_13">Get_Index</a></span> (<span class="symbol"><a name="ref_296_24" href="terminal_interface-curses-menus__ads.htm#ref_309_24">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>) <b>return</b> Positive
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_298_16">Get_Itemindex</A></span> (<span class="symbol"><A NAME="ref_298_31" HREF="terminal_interface-curses-menus__adb.htm#ref_298_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_298_16">Get_Itemindex</a></span> (<span class="symbol"><a name="ref_298_31">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Get_Itemindex, "item_index");
- <span class="symbol"><A NAME="ref_301_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_298_16">Get_Itemindex</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_309_24">Itm</A>);
+ <span class="symbol"><a name="ref_301_7">Res</a></span> : <b>constant</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> := <a href="terminal_interface-curses-menus__adb.htm#ref_298_16">Get_Itemindex</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_309_24">Itm</a>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_301_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_112_4">Menu_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses-menus__adb.htm#ref_301_7">Res</a> = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses-menus__ads.htm#ref_112_4">Menu_Exception</a>;
<b>end</b> <b>if</b>;
- <b>return</b> Positive (Natural (<A HREF="terminal_interface-curses-menus__adb.htm#ref_301_7">Res</A>) + Positive'First);
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_309_13">Get_Index</A>;
-<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_309_14" HREF="terminal_interface-curses-menus__ads.htm#ref_321_14">Post</A></span> (<span class="symbol"><A NAME="ref_309_20" HREF="terminal_interface-curses-menus__ads.htm#ref_321_20">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_310_20" HREF="terminal_interface-curses-menus__ads.htm#ref_322_20">Post</A></span> : Boolean := True)
+ <b>return</b> Positive (Natural (<a href="terminal_interface-curses-menus__adb.htm#ref_301_7">Res</a>) + Positive'First);
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_309_13">Get_Index</a>;
+<span class="comment"><em>-------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_309_14" href="terminal_interface-curses-menus__ads.htm#ref_321_14">Post</a></span> (<span class="symbol"><a name="ref_309_20" href="terminal_interface-curses-menus__ads.htm#ref_321_20">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_310_20" href="terminal_interface-curses-menus__ads.htm#ref_322_20">Post</a></span> : Boolean := True)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_312_16">M_Post</A></span> (<span class="symbol"><A NAME="ref_312_24" HREF="terminal_interface-curses-menus__adb.htm#ref_312_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_312_16">M_Post</a></span> (<span class="symbol"><a name="ref_312_24">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, M_Post, "post_menu");
- <b>function</b> <span class="symbol"><A NAME="ref_314_16">M_Unpost</A></span> (<span class="symbol"><A NAME="ref_314_26" HREF="terminal_interface-curses-menus__adb.htm#ref_314_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_314_16">M_Unpost</a></span> (<span class="symbol"><a name="ref_314_26">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, M_Unpost, "unpost_menu");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_322_20">Post</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_312_16">M_Post</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_321_20">Men</A>));
+ <b>if</b> <a href="terminal_interface-curses-menus__ads.htm#ref_322_20">Post</a> <b>then</b>
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_312_16">M_Post</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_321_20">Men</a>));
<b>else</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_314_16">M_Unpost</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_321_20">Men</A>));
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_314_16">M_Unpost</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_321_20">Men</a>));
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_321_14">Post</A>;
-<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_325_14" HREF="terminal_interface-curses-menus__ads.htm#ref_332_14">Set_Options</A></span> (<span class="symbol"><A NAME="ref_325_27" HREF="terminal_interface-curses-menus__ads.htm#ref_332_27">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_326_27" HREF="terminal_interface-curses-menus__ads.htm#ref_333_27">Options</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_116_9">Menu_Option_Set</A>)
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_321_14">Post</a>;
+<span class="comment"><em>-------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_325_14" href="terminal_interface-curses-menus__ads.htm#ref_332_14">Set_Options</a></span> (<span class="symbol"><a name="ref_325_27" href="terminal_interface-curses-menus__ads.htm#ref_332_27">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_326_27" href="terminal_interface-curses-menus__ads.htm#ref_333_27">Options</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_116_9">Menu_Option_Set</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_328_16">Set_Menu_Opts</A></span> (<span class="symbol"><A NAME="ref_328_31" HREF="terminal_interface-curses-menus__adb.htm#ref_328_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_329_31" HREF="terminal_interface-curses-menus__adb.htm#ref_328_16">Opt</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_116_9">Menu_Option_Set</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_328_16">Set_Menu_Opts</a></span> (<span class="symbol"><a name="ref_328_31">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_329_31">Opt</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_116_9">Menu_Option_Set</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Menu_Opts, "set_menu_opts");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_328_16">Set_Menu_Opts</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_332_27">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_333_27">Options</A>));
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_332_14">Set_Options</A>;
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_328_16">Set_Menu_Opts</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_332_27">Men</a>, <a href="terminal_interface-curses-menus__ads.htm#ref_333_27">Options</a>));
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_332_14">Set_Options</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_336_14" HREF="terminal_interface-curses-menus__ads.htm#ref_338_14">Switch_Options</A></span> (<span class="symbol"><A NAME="ref_336_30" HREF="terminal_interface-curses-menus__ads.htm#ref_338_30">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_337_30" HREF="terminal_interface-curses-menus__ads.htm#ref_339_30">Options</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_116_9">Menu_Option_Set</A>;
- <span class="symbol"><A NAME="ref_338_30" HREF="terminal_interface-curses-menus__ads.htm#ref_340_30">On</A></span> : Boolean := True)
+ <b>procedure</b> <span class="symbol"><a name="ref_336_14" href="terminal_interface-curses-menus__ads.htm#ref_338_14">Switch_Options</a></span> (<span class="symbol"><a name="ref_336_30" href="terminal_interface-curses-menus__ads.htm#ref_338_30">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_337_30" href="terminal_interface-curses-menus__ads.htm#ref_339_30">Options</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_116_9">Menu_Option_Set</a>;
+ <span class="symbol"><a name="ref_338_30" href="terminal_interface-curses-menus__ads.htm#ref_340_30">On</a></span> : Boolean := True)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_340_16">Menu_Opts_On</A></span> (<span class="symbol"><A NAME="ref_340_30" HREF="terminal_interface-curses-menus__adb.htm#ref_340_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_341_30" HREF="terminal_interface-curses-menus__adb.htm#ref_340_16">Opt</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_116_9">Menu_Option_Set</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_340_16">Menu_Opts_On</a></span> (<span class="symbol"><a name="ref_340_30">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_341_30">Opt</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_116_9">Menu_Option_Set</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Menu_Opts_On, "menu_opts_on");
- <b>function</b> <span class="symbol"><A NAME="ref_343_16">Menu_Opts_Off</A></span> (<span class="symbol"><A NAME="ref_343_31" HREF="terminal_interface-curses-menus__adb.htm#ref_343_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_344_31" HREF="terminal_interface-curses-menus__adb.htm#ref_343_16">Opt</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_116_9">Menu_Option_Set</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_343_16">Menu_Opts_Off</a></span> (<span class="symbol"><a name="ref_343_31">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_344_31">Opt</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_116_9">Menu_Option_Set</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Menu_Opts_Off, "menu_opts_off");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_340_30">On</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_340_16">Menu_Opts_On</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_338_30">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_339_30">Options</A>));
+ <b>if</b> <a href="terminal_interface-curses-menus__ads.htm#ref_340_30">On</a> <b>then</b>
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_340_16">Menu_Opts_On</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_338_30">Men</a>, <a href="terminal_interface-curses-menus__ads.htm#ref_339_30">Options</a>));
<b>else</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_343_16">Menu_Opts_Off</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_338_30">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_339_30">Options</A>));
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_343_16">Menu_Opts_Off</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_338_30">Men</a>, <a href="terminal_interface-curses-menus__ads.htm#ref_339_30">Options</a>));
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_338_14">Switch_Options</A>;
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_338_14">Switch_Options</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_355_14" HREF="terminal_interface-curses-menus__ads.htm#ref_346_14">Get_Options</A></span> (<span class="symbol"><A NAME="ref_355_27" HREF="terminal_interface-curses-menus__ads.htm#ref_346_27">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_356_27" HREF="terminal_interface-curses-menus__ads.htm#ref_347_27">Options</A></span> : <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_116_9">Menu_Option_Set</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_355_14" href="terminal_interface-curses-menus__ads.htm#ref_346_14">Get_Options</a></span> (<span class="symbol"><a name="ref_355_27" href="terminal_interface-curses-menus__ads.htm#ref_346_27">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_356_27" href="terminal_interface-curses-menus__ads.htm#ref_347_27">Options</a></span> : <b>out</b> <a href="terminal_interface-curses-menus__ads.htm#ref_116_9">Menu_Option_Set</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_358_16">Menu_Opts</A></span> (<span class="symbol"><A NAME="ref_358_27" HREF="terminal_interface-curses-menus__adb.htm#ref_358_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_116_9">Menu_Option_Set</A>;
+ <b>function</b> <span class="symbol"><a name="ref_358_16">Menu_Opts</a></span> (<span class="symbol"><a name="ref_358_27">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> <a href="terminal_interface-curses-menus__ads.htm#ref_116_9">Menu_Option_Set</a>;
<b>pragma</b> Import (C, Menu_Opts, "menu_opts");
<b>begin</b>
- <A HREF="terminal_interface-curses-menus__ads.htm#ref_347_27">Options</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_358_16">Menu_Opts</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_346_27">Men</A>);
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_346_14">Get_Options</A>;
+ <a href="terminal_interface-curses-menus__ads.htm#ref_347_27">Options</a> := <a href="terminal_interface-curses-menus__adb.htm#ref_358_16">Menu_Opts</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_346_27">Men</a>);
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_346_14">Get_Options</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_365_13" HREF="terminal_interface-curses-menus__ads.htm#ref_351_13">Get_Options</A></span> (<span class="symbol"><A NAME="ref_365_26" HREF="terminal_interface-curses-menus__ads.htm#ref_351_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A> := <A HREF="terminal_interface-curses-menus__ads.htm#ref_59_4">Null_Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_116_9">Menu_Option_Set</A>
+ <b>function</b> <span class="symbol"><a name="ref_365_13" href="terminal_interface-curses-menus__ads.htm#ref_351_13">Get_Options</a></span> (<span class="symbol"><a name="ref_365_26" href="terminal_interface-curses-menus__ads.htm#ref_351_26">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a> := <a href="terminal_interface-curses-menus__ads.htm#ref_59_4">Null_Menu</a>) <b>return</b> <a href="terminal_interface-curses-menus__ads.htm#ref_116_9">Menu_Option_Set</a>
<b>is</b>
- <span class="symbol"><A NAME="ref_367_7">Mos</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_116_9">Menu_Option_Set</A>;
+ <span class="symbol"><a name="ref_367_7">Mos</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_116_9">Menu_Option_Set</a>;
<b>begin</b>
- <A HREF="terminal_interface-curses-menus__ads.htm#ref_346_14">Get_Options</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_351_26">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_367_7">Mos</A>);
- <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_367_7">Mos</A>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_351_13">Get_Options</A>;
-<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_373_14" HREF="terminal_interface-curses-menus__ads.htm#ref_360_14">Set_Window</A></span> (<span class="symbol"><A NAME="ref_373_26" HREF="terminal_interface-curses-menus__ads.htm#ref_360_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_374_26" HREF="terminal_interface-curses-menus__ads.htm#ref_361_26">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>)
+ <a href="terminal_interface-curses-menus__ads.htm#ref_346_14">Get_Options</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_351_26">Men</a>, <a href="terminal_interface-curses-menus__adb.htm#ref_367_7">Mos</a>);
+ <b>return</b> <a href="terminal_interface-curses-menus__adb.htm#ref_367_7">Mos</a>;
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_351_13">Get_Options</a>;
+<span class="comment"><em>-------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_373_14" href="terminal_interface-curses-menus__ads.htm#ref_360_14">Set_Window</a></span> (<span class="symbol"><a name="ref_373_26" href="terminal_interface-curses-menus__ads.htm#ref_360_26">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_374_26" href="terminal_interface-curses-menus__ads.htm#ref_361_26">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_376_16">Set_Menu_Win</A></span> (<span class="symbol"><A NAME="ref_376_30" HREF="terminal_interface-curses-menus__adb.htm#ref_376_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_377_30" HREF="terminal_interface-curses-menus__adb.htm#ref_376_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_376_16">Set_Menu_Win</a></span> (<span class="symbol"><a name="ref_376_30">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_377_30">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Menu_Win, "set_menu_win");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_376_16">Set_Menu_Win</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_360_26">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_361_26">Win</A>));
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_360_14">Set_Window</A>;
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_376_16">Set_Menu_Win</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_360_26">Men</a>, <a href="terminal_interface-curses-menus__ads.htm#ref_361_26">Win</a>));
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_360_14">Set_Window</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_384_13" HREF="terminal_interface-curses-menus__ads.htm#ref_366_13">Get_Window</A></span> (<span class="symbol"><A NAME="ref_384_25" HREF="terminal_interface-curses-menus__ads.htm#ref_366_25">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>
+ <b>function</b> <span class="symbol"><a name="ref_384_13" href="terminal_interface-curses-menus__ads.htm#ref_366_13">Get_Window</a></span> (<span class="symbol"><a name="ref_384_25" href="terminal_interface-curses-menus__ads.htm#ref_366_25">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_386_16">Menu_Win</A></span> (<span class="symbol"><A NAME="ref_386_26" HREF="terminal_interface-curses-menus__adb.htm#ref_386_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
+ <b>function</b> <span class="symbol"><a name="ref_386_16">Menu_Win</a></span> (<span class="symbol"><a name="ref_386_26">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
<b>pragma</b> Import (C, Menu_Win, "menu_win");
- <span class="symbol"><A NAME="ref_389_7">W</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_386_16">Menu_Win</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_366_25">Men</A>);
+ <span class="symbol"><a name="ref_389_7">W</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses-menus__adb.htm#ref_386_16">Menu_Win</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_366_25">Men</a>);
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_389_7">W</A>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_366_13">Get_Window</A>;
+ <b>return</b> <a href="terminal_interface-curses-menus__adb.htm#ref_389_7">W</a>;
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_366_13">Get_Window</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_394_14" HREF="terminal_interface-curses-menus__ads.htm#ref_371_14">Set_Sub_Window</A></span> (<span class="symbol"><A NAME="ref_394_30" HREF="terminal_interface-curses-menus__ads.htm#ref_371_30">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_395_30" HREF="terminal_interface-curses-menus__ads.htm#ref_372_30">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_394_14" href="terminal_interface-curses-menus__ads.htm#ref_371_14">Set_Sub_Window</a></span> (<span class="symbol"><a name="ref_394_30" href="terminal_interface-curses-menus__ads.htm#ref_371_30">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_395_30" href="terminal_interface-curses-menus__ads.htm#ref_372_30">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_397_16">Set_Menu_Sub</A></span> (<span class="symbol"><A NAME="ref_397_30" HREF="terminal_interface-curses-menus__adb.htm#ref_397_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_398_30" HREF="terminal_interface-curses-menus__adb.htm#ref_397_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_397_16">Set_Menu_Sub</a></span> (<span class="symbol"><a name="ref_397_30">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_398_30">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Menu_Sub, "set_menu_sub");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_397_16">Set_Menu_Sub</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_371_30">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_372_30">Win</A>));
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_371_14">Set_Sub_Window</A>;
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_397_16">Set_Menu_Sub</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_371_30">Men</a>, <a href="terminal_interface-curses-menus__ads.htm#ref_372_30">Win</a>));
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_371_14">Set_Sub_Window</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_405_13" HREF="terminal_interface-curses-menus__ads.htm#ref_377_13">Get_Sub_Window</A></span> (<span class="symbol"><A NAME="ref_405_29" HREF="terminal_interface-curses-menus__ads.htm#ref_377_29">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>
+ <b>function</b> <span class="symbol"><a name="ref_405_13" href="terminal_interface-curses-menus__ads.htm#ref_377_13">Get_Sub_Window</a></span> (<span class="symbol"><a name="ref_405_29" href="terminal_interface-curses-menus__ads.htm#ref_377_29">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_407_16">Menu_Sub</A></span> (<span class="symbol"><A NAME="ref_407_26" HREF="terminal_interface-curses-menus__adb.htm#ref_407_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
+ <b>function</b> <span class="symbol"><a name="ref_407_16">Menu_Sub</a></span> (<span class="symbol"><a name="ref_407_26">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
<b>pragma</b> Import (C, Menu_Sub, "menu_sub");
- <span class="symbol"><A NAME="ref_410_7">W</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_407_16">Menu_Sub</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_377_29">Men</A>);
+ <span class="symbol"><a name="ref_410_7">W</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses-menus__adb.htm#ref_407_16">Menu_Sub</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_377_29">Men</a>);
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_410_7">W</A>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_377_13">Get_Sub_Window</A>;
+ <b>return</b> <a href="terminal_interface-curses-menus__adb.htm#ref_410_7">W</a>;
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_377_13">Get_Sub_Window</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_415_14" HREF="terminal_interface-curses-menus__ads.htm#ref_382_14">Scale</A></span> (<span class="symbol"><A NAME="ref_415_21" HREF="terminal_interface-curses-menus__ads.htm#ref_382_21">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_416_21" HREF="terminal_interface-curses-menus__ads.htm#ref_383_21">Lines</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</A>;
- <span class="symbol"><A NAME="ref_417_21" HREF="terminal_interface-curses-menus__ads.htm#ref_384_21">Columns</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_415_14" href="terminal_interface-curses-menus__ads.htm#ref_382_14">Scale</a></span> (<span class="symbol"><a name="ref_415_21" href="terminal_interface-curses-menus__ads.htm#ref_382_21">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_416_21" href="terminal_interface-curses-menus__ads.htm#ref_383_21">Lines</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</a>;
+ <span class="symbol"><a name="ref_417_21" href="terminal_interface-curses-menus__ads.htm#ref_384_21">Columns</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</a>)
<b>is</b>
- <b>type</b> <span class="symbol"><A NAME="ref_419_12">C_Int_Access</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <b>function</b> <span class="symbol"><A NAME="ref_420_16">M_Scale</A></span> (<span class="symbol"><A NAME="ref_420_25" HREF="terminal_interface-curses-menus__adb.htm#ref_420_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_421_25" HREF="terminal_interface-curses-menus__adb.htm#ref_420_16">Yp</A></span>, <span class="symbol"><A NAME="ref_421_29" HREF="terminal_interface-curses-menus__adb.htm#ref_420_16">Xp</A></span> : <A HREF="terminal_interface-curses-menus__adb.htm#ref_419_12">C_Int_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>type</b> <span class="symbol"><a name="ref_419_12">C_Int_Access</a></span> <b>is</b> <b>access</b> <b>all</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <b>function</b> <span class="symbol"><a name="ref_420_16">M_Scale</a></span> (<span class="symbol"><a name="ref_420_25">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_421_25">Yp</a></span>, <span class="symbol"><a name="ref_421_29">Xp</a></span> : <a href="terminal_interface-curses-menus__adb.htm#ref_419_12">C_Int_Access</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, M_Scale, "scale_menu");
- <span class="symbol"><A NAME="ref_424_7">X</A></span>, <span class="symbol"><A NAME="ref_424_10">Y</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <span class="symbol"><a name="ref_424_7">X</a></span>, <span class="symbol"><a name="ref_424_10">Y</a></span> : <b>aliased</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_420_16">M_Scale</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_382_21">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_424_10">Y</A>'<b>Access</b>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_424_7">X</A>'<b>Access</b>));
- <A HREF="terminal_interface-curses-menus__ads.htm#ref_383_21">Lines</A> := <A HREF="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_424_10">Y</A>);
- <A HREF="terminal_interface-curses-menus__ads.htm#ref_384_21">Columns</A> := <A HREF="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_424_7">X</A>);
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_382_14">Scale</A>;
-<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_431_14" HREF="terminal_interface-curses-menus__ads.htm#ref_393_14">Position_Cursor</A></span> (<span class="symbol"><A NAME="ref_431_31" HREF="terminal_interface-curses-menus__ads.htm#ref_393_31">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>)
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_420_16">M_Scale</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_382_21">Men</a>, <a href="terminal_interface-curses-menus__adb.htm#ref_424_10">Y</a>'<b>Access</b>, <a href="terminal_interface-curses-menus__adb.htm#ref_424_7">X</a>'<b>Access</b>));
+ <a href="terminal_interface-curses-menus__ads.htm#ref_383_21">Lines</a> := <a href="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_424_10">Y</a>);
+ <a href="terminal_interface-curses-menus__ads.htm#ref_384_21">Columns</a> := <a href="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_424_7">X</a>);
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_382_14">Scale</a>;
+<span class="comment"><em>-------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_431_14" href="terminal_interface-curses-menus__ads.htm#ref_393_14">Position_Cursor</a></span> (<span class="symbol"><a name="ref_431_31" href="terminal_interface-curses-menus__ads.htm#ref_393_31">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_433_16">Pos_Menu_Cursor</A></span> (<span class="symbol"><A NAME="ref_433_33" HREF="terminal_interface-curses-menus__adb.htm#ref_433_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_433_16">Pos_Menu_Cursor</a></span> (<span class="symbol"><a name="ref_433_33">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Pos_Menu_Cursor, "pos_menu_cursor");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_433_16">Pos_Menu_Cursor</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_393_31">Men</A>));
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_393_14">Position_Cursor</A>;
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_433_16">Pos_Menu_Cursor</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_393_31">Men</a>));
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_393_14">Position_Cursor</a>;
-<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_441_14" HREF="terminal_interface-curses-menus__ads.htm#ref_402_14">Set_Mark</A></span> (<span class="symbol"><A NAME="ref_441_24" HREF="terminal_interface-curses-menus__ads.htm#ref_402_24">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_442_24" HREF="terminal_interface-curses-menus__ads.htm#ref_403_24">Mark</A></span> : String)
+<span class="comment"><em>-------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_441_14" href="terminal_interface-curses-menus__ads.htm#ref_402_14">Set_Mark</a></span> (<span class="symbol"><a name="ref_441_24" href="terminal_interface-curses-menus__ads.htm#ref_402_24">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_442_24" href="terminal_interface-curses-menus__ads.htm#ref_403_24">Mark</a></span> : String)
<b>is</b>
- <b>type</b> <span class="symbol"><A NAME="ref_444_12">Char_Ptr</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.char;
- <b>function</b> <span class="symbol"><A NAME="ref_445_16">Set_Mark</A></span> (<span class="symbol"><A NAME="ref_445_26" HREF="terminal_interface-curses-menus__adb.htm#ref_445_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_446_26" HREF="terminal_interface-curses-menus__adb.htm#ref_445_16">Mark</A></span> : <A HREF="terminal_interface-curses-menus__adb.htm#ref_444_12">Char_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>type</b> <span class="symbol"><a name="ref_444_12">Char_Ptr</a></span> <b>is</b> <b>access</b> <b>all</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.char;
+ <b>function</b> <span class="symbol"><a name="ref_445_16">Set_Mark</a></span> (<span class="symbol"><a name="ref_445_26">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_446_26">Mark</a></span> : <a href="terminal_interface-curses-menus__adb.htm#ref_444_12">Char_Ptr</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Mark, "set_menu_mark");
- <span class="symbol"><A NAME="ref_449_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses-menus__ads.htm#ref_403_24">Mark</A>'Length);
- <span class="symbol"><A NAME="ref_450_7">Len</A></span> : size_t;
+ <span class="symbol"><a name="ref_449_7">Txt</a></span> : char_array (0 .. <a href="terminal_interface-curses-menus__ads.htm#ref_403_24">Mark</a>'Length);
+ <span class="symbol"><a name="ref_450_7">Len</a></span> : size_t;
<b>begin</b>
- To_C (<A HREF="terminal_interface-curses-menus__ads.htm#ref_403_24">Mark</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_449_7">Txt</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_450_7">Len</A>);
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_445_16">Set_Mark</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_402_24">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_449_7">Txt</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_449_7">Txt</A>'First)'<b>Access</b>));
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_402_14">Set_Mark</A>;
+ To_C (<a href="terminal_interface-curses-menus__ads.htm#ref_403_24">Mark</a>, <a href="terminal_interface-curses-menus__adb.htm#ref_449_7">Txt</a>, <a href="terminal_interface-curses-menus__adb.htm#ref_450_7">Len</a>);
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_445_16">Set_Mark</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_402_24">Men</a>, <a href="terminal_interface-curses-menus__adb.htm#ref_449_7">Txt</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_449_7">Txt</a>'First)'<b>Access</b>));
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_402_14">Set_Mark</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_456_14" HREF="terminal_interface-curses-menus__ads.htm#ref_408_14">Mark</A></span> (<span class="symbol"><A NAME="ref_456_20" HREF="terminal_interface-curses-menus__ads.htm#ref_408_20">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_457_20" HREF="terminal_interface-curses-menus__ads.htm#ref_409_20">Mark</A></span> : <b>out</b> String)
+ <b>procedure</b> <span class="symbol"><a name="ref_456_14" href="terminal_interface-curses-menus__ads.htm#ref_408_14">Mark</a></span> (<span class="symbol"><a name="ref_456_20" href="terminal_interface-curses-menus__ads.htm#ref_408_20">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_457_20" href="terminal_interface-curses-menus__ads.htm#ref_409_20">Mark</a></span> : <b>out</b> String)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_459_16">Get_Menu_Mark</A></span> (<span class="symbol"><A NAME="ref_459_31" HREF="terminal_interface-curses-menus__adb.htm#ref_459_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_56_12">chars_ptr</A>;
+ <b>function</b> <span class="symbol"><a name="ref_459_16">Get_Menu_Mark</a></span> (<span class="symbol"><a name="ref_459_31">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> <a href="terminal_interface-curses-menus__adb.htm#ref_56_12">chars_ptr</a>;
<b>pragma</b> Import (C, Get_Menu_Mark, "menu_mark");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_91_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_459_16">Get_Menu_Mark</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_408_20">Men</A>), <A HREF="terminal_interface-curses-menus__ads.htm#ref_409_20">Mark</A>);
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_408_14">Mark</A>;
+ <a href="terminal_interface-curses-aux__ads.htm#ref_91_14">Fill_String</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_459_16">Get_Menu_Mark</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_408_20">Men</a>), <a href="terminal_interface-curses-menus__ads.htm#ref_409_20">Mark</a>);
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_408_14">Mark</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_465_13" HREF="terminal_interface-curses-menus__ads.htm#ref_412_14">Mark</A></span> (<span class="symbol"><A NAME="ref_465_19" HREF="terminal_interface-curses-menus__ads.htm#ref_412_20">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> String
+ <b>function</b> <span class="symbol"><a name="ref_465_13" href="terminal_interface-curses-menus__ads.htm#ref_412_14">Mark</a></span> (<span class="symbol"><a name="ref_465_19" href="terminal_interface-curses-menus__ads.htm#ref_412_20">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> String
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_467_16">Get_Menu_Mark</A></span> (<span class="symbol"><A NAME="ref_467_31" HREF="terminal_interface-curses-menus__adb.htm#ref_467_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_56_12">chars_ptr</A>;
+ <b>function</b> <span class="symbol"><a name="ref_467_16">Get_Menu_Mark</a></span> (<span class="symbol"><a name="ref_467_31">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> <a href="terminal_interface-curses-menus__adb.htm#ref_56_12">chars_ptr</a>;
<b>pragma</b> Import (C, Get_Menu_Mark, "menu_mark");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_13">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_467_16">Get_Menu_Mark</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_412_20">Men</A>));
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_412_14">Mark</A>;
+ <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_96_13">Fill_String</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_467_16">Get_Menu_Mark</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_412_20">Men</a>));
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_412_14">Mark</a>;
-<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_474_14" HREF="terminal_interface-curses-menus__ads.htm#ref_422_14">Set_Foreground</A></span>
- (<span class="symbol"><A NAME="ref_475_7" HREF="terminal_interface-curses-menus__ads.htm#ref_423_7">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_476_7" HREF="terminal_interface-curses-menus__ads.htm#ref_424_7">Fore</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</A>;
- <span class="symbol"><A NAME="ref_477_7" HREF="terminal_interface-curses-menus__ads.htm#ref_425_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>'First)
+<span class="comment"><em>-------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_474_14" href="terminal_interface-curses-menus__ads.htm#ref_422_14">Set_Foreground</a></span>
+ (<span class="symbol"><a name="ref_475_7" href="terminal_interface-curses-menus__ads.htm#ref_423_7">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_476_7" href="terminal_interface-curses-menus__ads.htm#ref_424_7">Fore</a></span> : <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a> := <a href="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</a>;
+ <span class="symbol"><a name="ref_477_7" href="terminal_interface-curses-menus__ads.htm#ref_425_7">Color</a></span> : <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a> := <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>'First)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_479_16">Set_Menu_Fore</A></span> (<span class="symbol"><A NAME="ref_479_31" HREF="terminal_interface-curses-menus__adb.htm#ref_479_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_480_31" HREF="terminal_interface-curses-menus__adb.htm#ref_479_16">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_479_16">Set_Menu_Fore</a></span> (<span class="symbol"><a name="ref_479_31">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_480_31">Attr</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Menu_Fore, "set_menu_fore");
- <span class="symbol"><A NAME="ref_483_7">Ch</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_492_10">Ch</A> =&gt; Character'First,
- <A HREF="terminal_interface-curses__ads.htm#ref_491_10">Color</A> =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#ref_425_7">Color</A>,
- <A HREF="terminal_interface-curses__ads.htm#ref_490_10">Attr</A> =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#ref_424_7">Fore</A>);
+ <span class="symbol"><a name="ref_483_7">Ch</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a> := (<a href="terminal_interface-curses__ads.htm#ref_492_10">Ch</a> =&gt; Character'First,
+ <a href="terminal_interface-curses__ads.htm#ref_491_10">Color</a> =&gt; <a href="terminal_interface-curses-menus__ads.htm#ref_425_7">Color</a>,
+ <a href="terminal_interface-curses__ads.htm#ref_490_10">Attr</a> =&gt; <a href="terminal_interface-curses-menus__ads.htm#ref_424_7">Fore</a>);
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_479_16">Set_Menu_Fore</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_423_7">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_483_7">Ch</A>));
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_422_14">Set_Foreground</A>;
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_479_16">Set_Menu_Fore</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_423_7">Men</a>, <a href="terminal_interface-curses-menus__adb.htm#ref_483_7">Ch</a>));
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_422_14">Set_Foreground</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_490_14" HREF="terminal_interface-curses-menus__ads.htm#ref_430_14">Foreground</A></span> (<span class="symbol"><A NAME="ref_490_26" HREF="terminal_interface-curses-menus__ads.htm#ref_430_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_491_26" HREF="terminal_interface-curses-menus__ads.htm#ref_431_26">Fore</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_490_14" href="terminal_interface-curses-menus__ads.htm#ref_430_14">Foreground</a></span> (<span class="symbol"><a name="ref_490_26" href="terminal_interface-curses-menus__ads.htm#ref_430_26">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_491_26" href="terminal_interface-curses-menus__ads.htm#ref_431_26">Fore</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_493_16">Menu_Fore</A></span> (<span class="symbol"><A NAME="ref_493_27" HREF="terminal_interface-curses-menus__adb.htm#ref_493_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>;
+ <b>function</b> <span class="symbol"><a name="ref_493_16">Menu_Fore</a></span> (<span class="symbol"><a name="ref_493_27">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>;
<b>pragma</b> Import (C, Menu_Fore, "menu_fore");
<b>begin</b>
- <A HREF="terminal_interface-curses-menus__ads.htm#ref_431_26">Fore</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_493_16">Menu_Fore</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_430_26">Men</A>).<A HREF="terminal_interface-curses__ads.htm#ref_490_10">Attr</A>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_430_14">Foreground</A>;
+ <a href="terminal_interface-curses-menus__ads.htm#ref_431_26">Fore</a> := <a href="terminal_interface-curses-menus__adb.htm#ref_493_16">Menu_Fore</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_430_26">Men</a>).<a href="terminal_interface-curses__ads.htm#ref_490_10">Attr</a>;
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_430_14">Foreground</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_499_14" HREF="terminal_interface-curses-menus__ads.htm#ref_435_14">Foreground</A></span> (<span class="symbol"><A NAME="ref_499_26" HREF="terminal_interface-curses-menus__ads.htm#ref_435_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_500_26" HREF="terminal_interface-curses-menus__ads.htm#ref_436_26">Fore</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A>;
- <span class="symbol"><A NAME="ref_501_26" HREF="terminal_interface-curses-menus__ads.htm#ref_437_26">Color</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_499_14" href="terminal_interface-curses-menus__ads.htm#ref_435_14">Foreground</a></span> (<span class="symbol"><a name="ref_499_26" href="terminal_interface-curses-menus__ads.htm#ref_435_26">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_500_26" href="terminal_interface-curses-menus__ads.htm#ref_436_26">Fore</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a>;
+ <span class="symbol"><a name="ref_501_26" href="terminal_interface-curses-menus__ads.htm#ref_437_26">Color</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_503_16">Menu_Fore</A></span> (<span class="symbol"><A NAME="ref_503_27" HREF="terminal_interface-curses-menus__adb.htm#ref_503_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>;
+ <b>function</b> <span class="symbol"><a name="ref_503_16">Menu_Fore</a></span> (<span class="symbol"><a name="ref_503_27">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>;
<b>pragma</b> Import (C, Menu_Fore, "menu_fore");
<b>begin</b>
- <A HREF="terminal_interface-curses-menus__ads.htm#ref_436_26">Fore</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_503_16">Menu_Fore</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_435_26">Men</A>).<A HREF="terminal_interface-curses__ads.htm#ref_490_10">Attr</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#ref_437_26">Color</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_503_16">Menu_Fore</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_435_26">Men</A>).<A HREF="terminal_interface-curses__ads.htm#ref_491_10">Color</A>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_435_14">Foreground</A>;
+ <a href="terminal_interface-curses-menus__ads.htm#ref_436_26">Fore</a> := <a href="terminal_interface-curses-menus__adb.htm#ref_503_16">Menu_Fore</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_435_26">Men</a>).<a href="terminal_interface-curses__ads.htm#ref_490_10">Attr</a>;
+ <a href="terminal_interface-curses-menus__ads.htm#ref_437_26">Color</a> := <a href="terminal_interface-curses-menus__adb.htm#ref_503_16">Menu_Fore</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_435_26">Men</a>).<a href="terminal_interface-curses__ads.htm#ref_491_10">Color</a>;
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_435_14">Foreground</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_510_14" HREF="terminal_interface-curses-menus__ads.htm#ref_442_14">Set_Background</A></span>
- (<span class="symbol"><A NAME="ref_511_7" HREF="terminal_interface-curses-menus__ads.htm#ref_443_7">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_512_7" HREF="terminal_interface-curses-menus__ads.htm#ref_444_7">Back</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</A>;
- <span class="symbol"><A NAME="ref_513_7" HREF="terminal_interface-curses-menus__ads.htm#ref_445_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>'First)
+ <b>procedure</b> <span class="symbol"><a name="ref_510_14" href="terminal_interface-curses-menus__ads.htm#ref_442_14">Set_Background</a></span>
+ (<span class="symbol"><a name="ref_511_7" href="terminal_interface-curses-menus__ads.htm#ref_443_7">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_512_7" href="terminal_interface-curses-menus__ads.htm#ref_444_7">Back</a></span> : <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a> := <a href="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</a>;
+ <span class="symbol"><a name="ref_513_7" href="terminal_interface-curses-menus__ads.htm#ref_445_7">Color</a></span> : <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a> := <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>'First)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_515_16">Set_Menu_Back</A></span> (<span class="symbol"><A NAME="ref_515_31" HREF="terminal_interface-curses-menus__adb.htm#ref_515_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_516_31" HREF="terminal_interface-curses-menus__adb.htm#ref_515_16">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_515_16">Set_Menu_Back</a></span> (<span class="symbol"><a name="ref_515_31">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_516_31">Attr</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Menu_Back, "set_menu_back");
- <span class="symbol"><A NAME="ref_519_7">Ch</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_492_10">Ch</A> =&gt; Character'First,
- <A HREF="terminal_interface-curses__ads.htm#ref_491_10">Color</A> =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#ref_445_7">Color</A>,
- <A HREF="terminal_interface-curses__ads.htm#ref_490_10">Attr</A> =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#ref_444_7">Back</A>);
+ <span class="symbol"><a name="ref_519_7">Ch</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a> := (<a href="terminal_interface-curses__ads.htm#ref_492_10">Ch</a> =&gt; Character'First,
+ <a href="terminal_interface-curses__ads.htm#ref_491_10">Color</a> =&gt; <a href="terminal_interface-curses-menus__ads.htm#ref_445_7">Color</a>,
+ <a href="terminal_interface-curses__ads.htm#ref_490_10">Attr</a> =&gt; <a href="terminal_interface-curses-menus__ads.htm#ref_444_7">Back</a>);
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_515_16">Set_Menu_Back</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_443_7">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_519_7">Ch</A>));
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_442_14">Set_Background</A>;
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_515_16">Set_Menu_Back</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_443_7">Men</a>, <a href="terminal_interface-curses-menus__adb.htm#ref_519_7">Ch</a>));
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_442_14">Set_Background</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_526_14" HREF="terminal_interface-curses-menus__ads.htm#ref_450_14">Background</A></span> (<span class="symbol"><A NAME="ref_526_26" HREF="terminal_interface-curses-menus__ads.htm#ref_450_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_527_26" HREF="terminal_interface-curses-menus__ads.htm#ref_451_26">Back</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_526_14" href="terminal_interface-curses-menus__ads.htm#ref_450_14">Background</a></span> (<span class="symbol"><a name="ref_526_26" href="terminal_interface-curses-menus__ads.htm#ref_450_26">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_527_26" href="terminal_interface-curses-menus__ads.htm#ref_451_26">Back</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_529_16">Menu_Back</A></span> (<span class="symbol"><A NAME="ref_529_27" HREF="terminal_interface-curses-menus__adb.htm#ref_529_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>;
+ <b>function</b> <span class="symbol"><a name="ref_529_16">Menu_Back</a></span> (<span class="symbol"><a name="ref_529_27">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>;
<b>pragma</b> Import (C, Menu_Back, "menu_back");
<b>begin</b>
- <A HREF="terminal_interface-curses-menus__ads.htm#ref_451_26">Back</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_529_16">Menu_Back</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_450_26">Men</A>).<A HREF="terminal_interface-curses__ads.htm#ref_490_10">Attr</A>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_450_14">Background</A>;
+ <a href="terminal_interface-curses-menus__ads.htm#ref_451_26">Back</a> := <a href="terminal_interface-curses-menus__adb.htm#ref_529_16">Menu_Back</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_450_26">Men</a>).<a href="terminal_interface-curses__ads.htm#ref_490_10">Attr</a>;
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_450_14">Background</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_535_14" HREF="terminal_interface-curses-menus__ads.htm#ref_455_14">Background</A></span> (<span class="symbol"><A NAME="ref_535_26" HREF="terminal_interface-curses-menus__ads.htm#ref_455_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_536_26" HREF="terminal_interface-curses-menus__ads.htm#ref_456_26">Back</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A>;
- <span class="symbol"><A NAME="ref_537_26" HREF="terminal_interface-curses-menus__ads.htm#ref_457_26">Color</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_535_14" href="terminal_interface-curses-menus__ads.htm#ref_455_14">Background</a></span> (<span class="symbol"><a name="ref_535_26" href="terminal_interface-curses-menus__ads.htm#ref_455_26">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_536_26" href="terminal_interface-curses-menus__ads.htm#ref_456_26">Back</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a>;
+ <span class="symbol"><a name="ref_537_26" href="terminal_interface-curses-menus__ads.htm#ref_457_26">Color</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_539_16">Menu_Back</A></span> (<span class="symbol"><A NAME="ref_539_27" HREF="terminal_interface-curses-menus__adb.htm#ref_539_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>;
+ <b>function</b> <span class="symbol"><a name="ref_539_16">Menu_Back</a></span> (<span class="symbol"><a name="ref_539_27">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>;
<b>pragma</b> Import (C, Menu_Back, "menu_back");
<b>begin</b>
- <A HREF="terminal_interface-curses-menus__ads.htm#ref_456_26">Back</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_539_16">Menu_Back</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_455_26">Men</A>).<A HREF="terminal_interface-curses__ads.htm#ref_490_10">Attr</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#ref_457_26">Color</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_539_16">Menu_Back</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_455_26">Men</A>).<A HREF="terminal_interface-curses__ads.htm#ref_491_10">Color</A>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_455_14">Background</A>;
+ <a href="terminal_interface-curses-menus__ads.htm#ref_456_26">Back</a> := <a href="terminal_interface-curses-menus__adb.htm#ref_539_16">Menu_Back</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_455_26">Men</a>).<a href="terminal_interface-curses__ads.htm#ref_490_10">Attr</a>;
+ <a href="terminal_interface-curses-menus__ads.htm#ref_457_26">Color</a> := <a href="terminal_interface-curses-menus__adb.htm#ref_539_16">Menu_Back</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_455_26">Men</a>).<a href="terminal_interface-curses__ads.htm#ref_491_10">Color</a>;
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_455_14">Background</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_546_14" HREF="terminal_interface-curses-menus__ads.htm#ref_462_14">Set_Grey</A></span> (<span class="symbol"><A NAME="ref_546_24" HREF="terminal_interface-curses-menus__ads.htm#ref_463_7">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_547_24" HREF="terminal_interface-curses-menus__ads.htm#ref_464_7">Grey</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</A>;
- <span class="symbol"><A NAME="ref_548_24" HREF="terminal_interface-curses-menus__ads.htm#ref_465_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>'First)
+ <b>procedure</b> <span class="symbol"><a name="ref_546_14" href="terminal_interface-curses-menus__ads.htm#ref_462_14">Set_Grey</a></span> (<span class="symbol"><a name="ref_546_24" href="terminal_interface-curses-menus__ads.htm#ref_463_7">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_547_24" href="terminal_interface-curses-menus__ads.htm#ref_464_7">Grey</a></span> : <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a> := <a href="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</a>;
+ <span class="symbol"><a name="ref_548_24" href="terminal_interface-curses-menus__ads.htm#ref_465_7">Color</a></span> : <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a> := <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>'First)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_550_16">Set_Menu_Grey</A></span> (<span class="symbol"><A NAME="ref_550_31" HREF="terminal_interface-curses-menus__adb.htm#ref_550_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_551_31" HREF="terminal_interface-curses-menus__adb.htm#ref_550_16">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_550_16">Set_Menu_Grey</a></span> (<span class="symbol"><a name="ref_550_31">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_551_31">Attr</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Menu_Grey, "set_menu_grey");
- <span class="symbol"><A NAME="ref_554_7">Ch</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_492_10">Ch</A> =&gt; Character'First,
- <A HREF="terminal_interface-curses__ads.htm#ref_491_10">Color</A> =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#ref_465_7">Color</A>,
- <A HREF="terminal_interface-curses__ads.htm#ref_490_10">Attr</A> =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#ref_464_7">Grey</A>);
+ <span class="symbol"><a name="ref_554_7">Ch</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a> := (<a href="terminal_interface-curses__ads.htm#ref_492_10">Ch</a> =&gt; Character'First,
+ <a href="terminal_interface-curses__ads.htm#ref_491_10">Color</a> =&gt; <a href="terminal_interface-curses-menus__ads.htm#ref_465_7">Color</a>,
+ <a href="terminal_interface-curses__ads.htm#ref_490_10">Attr</a> =&gt; <a href="terminal_interface-curses-menus__ads.htm#ref_464_7">Grey</a>);
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_550_16">Set_Menu_Grey</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_463_7">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_554_7">Ch</A>));
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_462_14">Set_Grey</A>;
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_550_16">Set_Menu_Grey</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_463_7">Men</a>, <a href="terminal_interface-curses-menus__adb.htm#ref_554_7">Ch</a>));
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_462_14">Set_Grey</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_562_14" HREF="terminal_interface-curses-menus__ads.htm#ref_470_14">Grey</A></span> (<span class="symbol"><A NAME="ref_562_20" HREF="terminal_interface-curses-menus__ads.htm#ref_470_20">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_563_20" HREF="terminal_interface-curses-menus__ads.htm#ref_471_20">Grey</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_562_14" href="terminal_interface-curses-menus__ads.htm#ref_470_14">Grey</a></span> (<span class="symbol"><a name="ref_562_20" href="terminal_interface-curses-menus__ads.htm#ref_470_20">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_563_20" href="terminal_interface-curses-menus__ads.htm#ref_471_20">Grey</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_565_16">Menu_Grey</A></span> (<span class="symbol"><A NAME="ref_565_27" HREF="terminal_interface-curses-menus__adb.htm#ref_565_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>;
+ <b>function</b> <span class="symbol"><a name="ref_565_16">Menu_Grey</a></span> (<span class="symbol"><a name="ref_565_27">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>;
<b>pragma</b> Import (C, Menu_Grey, "menu_grey");
<b>begin</b>
- <A HREF="terminal_interface-curses-menus__ads.htm#ref_471_20">Grey</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_565_16">Menu_Grey</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_470_20">Men</A>).<A HREF="terminal_interface-curses__ads.htm#ref_490_10">Attr</A>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_470_14">Grey</A>;
+ <a href="terminal_interface-curses-menus__ads.htm#ref_471_20">Grey</a> := <a href="terminal_interface-curses-menus__adb.htm#ref_565_16">Menu_Grey</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_470_20">Men</a>).<a href="terminal_interface-curses__ads.htm#ref_490_10">Attr</a>;
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_470_14">Grey</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_571_14" HREF="terminal_interface-curses-menus__ads.htm#ref_475_14">Grey</A></span> (<span class="symbol"><A NAME="ref_571_20" HREF="terminal_interface-curses-menus__ads.htm#ref_476_7">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_572_20" HREF="terminal_interface-curses-menus__ads.htm#ref_477_7">Grey</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A>;
- <span class="symbol"><A NAME="ref_573_20" HREF="terminal_interface-curses-menus__ads.htm#ref_478_7">Color</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_571_14" href="terminal_interface-curses-menus__ads.htm#ref_475_14">Grey</a></span> (<span class="symbol"><a name="ref_571_20" href="terminal_interface-curses-menus__ads.htm#ref_476_7">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_572_20" href="terminal_interface-curses-menus__ads.htm#ref_477_7">Grey</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a>;
+ <span class="symbol"><a name="ref_573_20" href="terminal_interface-curses-menus__ads.htm#ref_478_7">Color</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_575_16">Menu_Grey</A></span> (<span class="symbol"><A NAME="ref_575_27" HREF="terminal_interface-curses-menus__adb.htm#ref_575_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>;
+ <b>function</b> <span class="symbol"><a name="ref_575_16">Menu_Grey</a></span> (<span class="symbol"><a name="ref_575_27">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>;
<b>pragma</b> Import (C, Menu_Grey, "menu_grey");
<b>begin</b>
- <A HREF="terminal_interface-curses-menus__ads.htm#ref_477_7">Grey</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_575_16">Menu_Grey</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_476_7">Men</A>).<A HREF="terminal_interface-curses__ads.htm#ref_490_10">Attr</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#ref_478_7">Color</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_575_16">Menu_Grey</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_476_7">Men</A>).<A HREF="terminal_interface-curses__ads.htm#ref_491_10">Color</A>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_475_14">Grey</A>;
+ <a href="terminal_interface-curses-menus__ads.htm#ref_477_7">Grey</a> := <a href="terminal_interface-curses-menus__adb.htm#ref_575_16">Menu_Grey</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_476_7">Men</a>).<a href="terminal_interface-curses__ads.htm#ref_490_10">Attr</a>;
+ <a href="terminal_interface-curses-menus__ads.htm#ref_478_7">Color</a> := <a href="terminal_interface-curses-menus__adb.htm#ref_575_16">Menu_Grey</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_476_7">Men</a>).<a href="terminal_interface-curses__ads.htm#ref_491_10">Color</a>;
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_475_14">Grey</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_582_14" HREF="terminal_interface-curses-menus__ads.htm#ref_483_14">Set_Pad_Character</A></span> (<span class="symbol"><A NAME="ref_582_33" HREF="terminal_interface-curses-menus__ads.htm#ref_483_33">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_583_33" HREF="terminal_interface-curses-menus__ads.htm#ref_484_33">Pad</A></span> : Character := Space)
+ <b>procedure</b> <span class="symbol"><a name="ref_582_14" href="terminal_interface-curses-menus__ads.htm#ref_483_14">Set_Pad_Character</a></span> (<span class="symbol"><a name="ref_582_33" href="terminal_interface-curses-menus__ads.htm#ref_483_33">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_583_33" href="terminal_interface-curses-menus__ads.htm#ref_484_33">Pad</a></span> : Character := Space)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_585_16">Set_Menu_Pad</A></span> (<span class="symbol"><A NAME="ref_585_30" HREF="terminal_interface-curses-menus__adb.htm#ref_585_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_586_30" HREF="terminal_interface-curses-menus__adb.htm#ref_585_16">Ch</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_585_16">Set_Menu_Pad</a></span> (<span class="symbol"><a name="ref_585_30">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_586_30">Ch</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Menu_Pad, "set_menu_pad");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_585_16">Set_Menu_Pad</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_483_33">Men</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (Character'Pos (<A HREF="terminal_interface-curses-menus__ads.htm#ref_484_33">Pad</A>))));
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_483_14">Set_Pad_Character</A>;
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_585_16">Set_Menu_Pad</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_483_33">Men</a>, <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (Character'Pos (<a href="terminal_interface-curses-menus__ads.htm#ref_484_33">Pad</a>))));
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_483_14">Set_Pad_Character</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_593_14" HREF="terminal_interface-curses-menus__ads.htm#ref_489_14">Pad_Character</A></span> (<span class="symbol"><A NAME="ref_593_29" HREF="terminal_interface-curses-menus__ads.htm#ref_489_29">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_594_29" HREF="terminal_interface-curses-menus__ads.htm#ref_490_29">Pad</A></span> : <b>out</b> Character)
+ <b>procedure</b> <span class="symbol"><a name="ref_593_14" href="terminal_interface-curses-menus__ads.htm#ref_489_14">Pad_Character</a></span> (<span class="symbol"><a name="ref_593_29" href="terminal_interface-curses-menus__ads.htm#ref_489_29">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_594_29" href="terminal_interface-curses-menus__ads.htm#ref_490_29">Pad</a></span> : <b>out</b> Character)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_596_16">Menu_Pad</A></span> (<span class="symbol"><A NAME="ref_596_26" HREF="terminal_interface-curses-menus__adb.htm#ref_596_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_596_16">Menu_Pad</a></span> (<span class="symbol"><a name="ref_596_26">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Menu_Pad, "menu_pad");
<b>begin</b>
- <A HREF="terminal_interface-curses-menus__ads.htm#ref_490_29">Pad</A> := Character'Val (<A HREF="terminal_interface-curses-menus__adb.htm#ref_596_16">Menu_Pad</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_489_29">Men</A>));
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_489_14">Pad_Character</A>;
-<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_602_14" HREF="terminal_interface-curses-menus__ads.htm#ref_499_14">Set_Spacing</A></span> (<span class="symbol"><A NAME="ref_602_27" HREF="terminal_interface-curses-menus__ads.htm#ref_499_27">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_603_27" HREF="terminal_interface-curses-menus__ads.htm#ref_500_27">Descr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A> := 0;
- <span class="symbol"><A NAME="ref_604_27" HREF="terminal_interface-curses-menus__ads.htm#ref_501_27">Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A> := 0;
- <span class="symbol"><A NAME="ref_605_27" HREF="terminal_interface-curses-menus__ads.htm#ref_502_27">Col</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A> := 0)
+ <a href="terminal_interface-curses-menus__ads.htm#ref_490_29">Pad</a> := Character'Val (<a href="terminal_interface-curses-menus__adb.htm#ref_596_16">Menu_Pad</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_489_29">Men</a>));
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_489_14">Pad_Character</a>;
+<span class="comment"><em>-------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_602_14" href="terminal_interface-curses-menus__ads.htm#ref_499_14">Set_Spacing</a></span> (<span class="symbol"><a name="ref_602_27" href="terminal_interface-curses-menus__ads.htm#ref_499_27">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_603_27" href="terminal_interface-curses-menus__ads.htm#ref_500_27">Descr</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a> := 0;
+ <span class="symbol"><a name="ref_604_27" href="terminal_interface-curses-menus__ads.htm#ref_501_27">Row</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a> := 0;
+ <span class="symbol"><a name="ref_605_27" href="terminal_interface-curses-menus__ads.htm#ref_502_27">Col</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a> := 0)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_607_16">Set_Spacing</A></span> (<span class="symbol"><A NAME="ref_607_29" HREF="terminal_interface-curses-menus__adb.htm#ref_607_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_608_29" HREF="terminal_interface-curses-menus__adb.htm#ref_607_16">D</A></span>, <span class="symbol"><A NAME="ref_608_32" HREF="terminal_interface-curses-menus__adb.htm#ref_607_16">R</A></span>, <span class="symbol"><A NAME="ref_608_35" HREF="terminal_interface-curses-menus__adb.htm#ref_607_16">C</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_607_16">Set_Spacing</a></span> (<span class="symbol"><a name="ref_607_29">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_608_29">D</a></span>, <span class="symbol"><a name="ref_608_32">R</a></span>, <span class="symbol"><a name="ref_608_35">C</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Spacing, "set_menu_spacing");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_607_16">Set_Spacing</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_499_27">Men</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_500_27">Descr</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_501_27">Row</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_502_27">Col</A>)));
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_499_14">Set_Spacing</A>;
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_607_16">Set_Spacing</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_499_27">Men</a>,
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_500_27">Descr</a>),
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_501_27">Row</a>),
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_502_27">Col</a>)));
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_499_14">Set_Spacing</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_618_14" HREF="terminal_interface-curses-menus__ads.htm#ref_507_14">Spacing</A></span> (<span class="symbol"><A NAME="ref_618_23" HREF="terminal_interface-curses-menus__ads.htm#ref_507_23">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_619_23" HREF="terminal_interface-curses-menus__ads.htm#ref_508_23">Descr</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_620_23" HREF="terminal_interface-curses-menus__ads.htm#ref_509_23">Row</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_621_23" HREF="terminal_interface-curses-menus__ads.htm#ref_510_23">Col</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_618_14" href="terminal_interface-curses-menus__ads.htm#ref_507_14">Spacing</a></span> (<span class="symbol"><a name="ref_618_23" href="terminal_interface-curses-menus__ads.htm#ref_507_23">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_619_23" href="terminal_interface-curses-menus__ads.htm#ref_508_23">Descr</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_620_23" href="terminal_interface-curses-menus__ads.htm#ref_509_23">Row</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_621_23" href="terminal_interface-curses-menus__ads.htm#ref_510_23">Col</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>)
<b>is</b>
- <b>type</b> <span class="symbol"><A NAME="ref_623_12">C_Int_Access</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <b>function</b> <span class="symbol"><A NAME="ref_624_16">Get_Spacing</A></span> (<span class="symbol"><A NAME="ref_624_29" HREF="terminal_interface-curses-menus__adb.htm#ref_624_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_625_29" HREF="terminal_interface-curses-menus__adb.htm#ref_624_16">D</A></span>, <span class="symbol"><A NAME="ref_625_32" HREF="terminal_interface-curses-menus__adb.htm#ref_624_16">R</A></span>, <span class="symbol"><A NAME="ref_625_35" HREF="terminal_interface-curses-menus__adb.htm#ref_624_16">C</A></span> : <A HREF="terminal_interface-curses-menus__adb.htm#ref_623_12">C_Int_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>type</b> <span class="symbol"><a name="ref_623_12">C_Int_Access</a></span> <b>is</b> <b>access</b> <b>all</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <b>function</b> <span class="symbol"><a name="ref_624_16">Get_Spacing</a></span> (<span class="symbol"><a name="ref_624_29">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_625_29">D</a></span>, <span class="symbol"><a name="ref_625_32">R</a></span>, <span class="symbol"><a name="ref_625_35">C</a></span> : <a href="terminal_interface-curses-menus__adb.htm#ref_623_12">C_Int_Access</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Get_Spacing, "menu_spacing");
- <span class="symbol"><A NAME="ref_628_7">D</A></span>, <span class="symbol"><A NAME="ref_628_10">R</A></span>, <span class="symbol"><A NAME="ref_628_13">C</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_624_16">Get_Spacing</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_507_23">Men</A>,
- <A HREF="terminal_interface-curses-menus__adb.htm#ref_628_7">D</A>'<b>Access</b>,
- <A HREF="terminal_interface-curses-menus__adb.htm#ref_628_10">R</A>'<b>Access</b>,
- <A HREF="terminal_interface-curses-menus__adb.htm#ref_628_13">C</A>'<b>Access</b>));
- <A HREF="terminal_interface-curses-menus__ads.htm#ref_508_23">Descr</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_628_7">D</A>);
- <A HREF="terminal_interface-curses-menus__ads.htm#ref_509_23">Row</A> := <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_628_10">R</A>);
- <A HREF="terminal_interface-curses-menus__ads.htm#ref_510_23">Col</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_628_13">C</A>);
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_507_14">Spacing</A>;
-<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_639_13" HREF="terminal_interface-curses-menus__ads.htm#ref_519_13">Set_Pattern</A></span> (<span class="symbol"><A NAME="ref_639_26" HREF="terminal_interface-curses-menus__ads.htm#ref_519_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_640_26" HREF="terminal_interface-curses-menus__ads.htm#ref_520_26">Text</A></span> : String) <b>return</b> Boolean
- <b>is</b>
- <b>type</b> <span class="symbol"><A NAME="ref_642_12">Char_Ptr</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.char;
- <b>function</b> <span class="symbol"><A NAME="ref_643_16">Set_Pattern</A></span> (<span class="symbol"><A NAME="ref_643_29" HREF="terminal_interface-curses-menus__adb.htm#ref_643_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_644_29" HREF="terminal_interface-curses-menus__adb.htm#ref_643_16">Pattern</A></span> : <A HREF="terminal_interface-curses-menus__adb.htm#ref_642_12">Char_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <span class="symbol"><a name="ref_628_7">D</a></span>, <span class="symbol"><a name="ref_628_10">R</a></span>, <span class="symbol"><a name="ref_628_13">C</a></span> : <b>aliased</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <b>begin</b>
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_624_16">Get_Spacing</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_507_23">Men</a>,
+ <a href="terminal_interface-curses-menus__adb.htm#ref_628_7">D</a>'<b>Access</b>,
+ <a href="terminal_interface-curses-menus__adb.htm#ref_628_10">R</a>'<b>Access</b>,
+ <a href="terminal_interface-curses-menus__adb.htm#ref_628_13">C</a>'<b>Access</b>));
+ <a href="terminal_interface-curses-menus__ads.htm#ref_508_23">Descr</a> := <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_628_7">D</a>);
+ <a href="terminal_interface-curses-menus__ads.htm#ref_509_23">Row</a> := <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_628_10">R</a>);
+ <a href="terminal_interface-curses-menus__ads.htm#ref_510_23">Col</a> := <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_628_13">C</a>);
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_507_14">Spacing</a>;
+<span class="comment"><em>-------------------------------------------------------------------------------</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_639_13" href="terminal_interface-curses-menus__ads.htm#ref_519_13">Set_Pattern</a></span> (<span class="symbol"><a name="ref_639_26" href="terminal_interface-curses-menus__ads.htm#ref_519_26">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_640_26" href="terminal_interface-curses-menus__ads.htm#ref_520_26">Text</a></span> : String) <b>return</b> Boolean
+ <b>is</b>
+ <b>type</b> <span class="symbol"><a name="ref_642_12">Char_Ptr</a></span> <b>is</b> <b>access</b> <b>all</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.char;
+ <b>function</b> <span class="symbol"><a name="ref_643_16">Set_Pattern</a></span> (<span class="symbol"><a name="ref_643_29">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_644_29">Pattern</a></span> : <a href="terminal_interface-curses-menus__adb.htm#ref_642_12">Char_Ptr</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Pattern, "set_menu_pattern");
- <span class="symbol"><A NAME="ref_647_7">S</A></span> : char_array (0 .. <A HREF="terminal_interface-curses-menus__ads.htm#ref_520_26">Text</A>'Length);
- <span class="symbol"><A NAME="ref_648_7">L</A></span> : size_t;
- <span class="symbol"><A NAME="ref_649_7">Res</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <span class="symbol"><a name="ref_647_7">S</a></span> : char_array (0 .. <a href="terminal_interface-curses-menus__ads.htm#ref_520_26">Text</a>'Length);
+ <span class="symbol"><a name="ref_648_7">L</a></span> : size_t;
+ <span class="symbol"><a name="ref_649_7">Res</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>begin</b>
- To_C (<A HREF="terminal_interface-curses-menus__ads.htm#ref_520_26">Text</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_647_7">S</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_648_7">L</A>);
- <A HREF="terminal_interface-curses-menus__adb.htm#ref_649_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_643_16">Set_Pattern</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_519_26">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_647_7">S</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_647_7">S</A>'First)'<b>Access</b>);
- <b>case</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_649_7">Res</A> <b>is</b>
- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_76_7">E_No_Match</A> =&gt;
+ To_C (<a href="terminal_interface-curses-menus__ads.htm#ref_520_26">Text</a>, <a href="terminal_interface-curses-menus__adb.htm#ref_647_7">S</a>, <a href="terminal_interface-curses-menus__adb.htm#ref_648_7">L</a>);
+ <a href="terminal_interface-curses-menus__adb.htm#ref_649_7">Res</a> := <a href="terminal_interface-curses-menus__adb.htm#ref_643_16">Set_Pattern</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_519_26">Men</a>, <a href="terminal_interface-curses-menus__adb.htm#ref_647_7">S</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_647_7">S</a>'First)'<b>Access</b>);
+ <b>case</b> <a href="terminal_interface-curses-menus__adb.htm#ref_649_7">Res</a> <b>is</b>
+ <b>when</b> <a href="terminal_interface-curses-aux__ads.htm#ref_76_7">E_No_Match</a> =&gt;
<b>return</b> False;
<b>when</b> <b>others</b> =&gt;
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_649_7">Res</A>);
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_649_7">Res</a>);
<b>return</b> True;
<b>end</b> <b>case</b>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_519_13">Set_Pattern</A>;
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_519_13">Set_Pattern</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_662_14" HREF="terminal_interface-curses-menus__ads.htm#ref_526_14">Pattern</A></span> (<span class="symbol"><A NAME="ref_662_23" HREF="terminal_interface-curses-menus__ads.htm#ref_526_23">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_663_23" HREF="terminal_interface-curses-menus__ads.htm#ref_527_23">Text</A></span> : <b>out</b> String)
+ <b>procedure</b> <span class="symbol"><a name="ref_662_14" href="terminal_interface-curses-menus__ads.htm#ref_526_14">Pattern</a></span> (<span class="symbol"><a name="ref_662_23" href="terminal_interface-curses-menus__ads.htm#ref_526_23">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_663_23" href="terminal_interface-curses-menus__ads.htm#ref_527_23">Text</a></span> : <b>out</b> String)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_665_16">Get_Pattern</A></span> (<span class="symbol"><A NAME="ref_665_29" HREF="terminal_interface-curses-menus__adb.htm#ref_665_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_56_12">chars_ptr</A>;
+ <b>function</b> <span class="symbol"><a name="ref_665_16">Get_Pattern</a></span> (<span class="symbol"><a name="ref_665_29">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> <a href="terminal_interface-curses-menus__adb.htm#ref_56_12">chars_ptr</a>;
<b>pragma</b> Import (C, Get_Pattern, "menu_pattern");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_91_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_665_16">Get_Pattern</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_526_23">Men</A>), <A HREF="terminal_interface-curses-menus__ads.htm#ref_527_23">Text</A>);
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_526_14">Pattern</A>;
-<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_671_14" HREF="terminal_interface-curses-menus__ads.htm#ref_536_14">Set_Format</A></span> (<span class="symbol"><A NAME="ref_671_26" HREF="terminal_interface-curses-menus__ads.htm#ref_536_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_672_26" HREF="terminal_interface-curses-menus__ads.htm#ref_537_26">Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</A>;
- <span class="symbol"><A NAME="ref_673_26" HREF="terminal_interface-curses-menus__ads.htm#ref_538_26">Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</A>)
+ <a href="terminal_interface-curses-aux__ads.htm#ref_91_14">Fill_String</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_665_16">Get_Pattern</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_526_23">Men</a>), <a href="terminal_interface-curses-menus__ads.htm#ref_527_23">Text</a>);
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_526_14">Pattern</a>;
+<span class="comment"><em>-------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_671_14" href="terminal_interface-curses-menus__ads.htm#ref_536_14">Set_Format</a></span> (<span class="symbol"><a name="ref_671_26" href="terminal_interface-curses-menus__ads.htm#ref_536_26">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_672_26" href="terminal_interface-curses-menus__ads.htm#ref_537_26">Lines</a></span> : <a href="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</a>;
+ <span class="symbol"><a name="ref_673_26" href="terminal_interface-curses-menus__ads.htm#ref_538_26">Columns</a></span> : <a href="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_675_16">Set_Menu_Fmt</A></span> (<span class="symbol"><A NAME="ref_675_30" HREF="terminal_interface-curses-menus__adb.htm#ref_675_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_676_30" HREF="terminal_interface-curses-menus__adb.htm#ref_675_16">Lin</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_677_30" HREF="terminal_interface-curses-menus__adb.htm#ref_675_16">Col</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_675_16">Set_Menu_Fmt</a></span> (<span class="symbol"><a name="ref_675_30">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_676_30">Lin</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_677_30">Col</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Menu_Fmt, "set_menu_format");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_675_16">Set_Menu_Fmt</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_536_26">Men</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_537_26">Lines</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_538_26">Columns</A>)));
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_675_16">Set_Menu_Fmt</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_536_26">Men</a>,
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_537_26">Lines</a>),
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_538_26">Columns</a>)));
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_536_14">Set_Format</A>;
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_536_14">Set_Format</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_687_14" HREF="terminal_interface-curses-menus__ads.htm#ref_550_14">Format</A></span> (<span class="symbol"><A NAME="ref_687_22" HREF="terminal_interface-curses-menus__ads.htm#ref_550_22">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_688_22" HREF="terminal_interface-curses-menus__ads.htm#ref_551_22">Lines</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</A>;
- <span class="symbol"><A NAME="ref_689_22" HREF="terminal_interface-curses-menus__ads.htm#ref_552_22">Columns</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_687_14" href="terminal_interface-curses-menus__ads.htm#ref_550_14">Format</a></span> (<span class="symbol"><a name="ref_687_22" href="terminal_interface-curses-menus__ads.htm#ref_550_22">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_688_22" href="terminal_interface-curses-menus__ads.htm#ref_551_22">Lines</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</a>;
+ <span class="symbol"><a name="ref_689_22" href="terminal_interface-curses-menus__ads.htm#ref_552_22">Columns</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</a>)
<b>is</b>
- <b>type</b> <span class="symbol"><A NAME="ref_691_12">C_Int_Access</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <b>function</b> <span class="symbol"><A NAME="ref_692_16">Menu_Fmt</A></span> (<span class="symbol"><A NAME="ref_692_26" HREF="terminal_interface-curses-menus__adb.htm#ref_692_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_693_26" HREF="terminal_interface-curses-menus__adb.htm#ref_692_16">Y</A></span>, <span class="symbol"><A NAME="ref_693_29" HREF="terminal_interface-curses-menus__adb.htm#ref_692_16">X</A></span> : <A HREF="terminal_interface-curses-menus__adb.htm#ref_691_12">C_Int_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>type</b> <span class="symbol"><a name="ref_691_12">C_Int_Access</a></span> <b>is</b> <b>access</b> <b>all</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <b>function</b> <span class="symbol"><a name="ref_692_16">Menu_Fmt</a></span> (<span class="symbol"><a name="ref_692_26">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_693_26">Y</a></span>, <span class="symbol"><a name="ref_693_29">X</a></span> : <a href="terminal_interface-curses-menus__adb.htm#ref_691_12">C_Int_Access</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Menu_Fmt, "menu_format");
- <span class="symbol"><A NAME="ref_696_7">L</A></span>, <span class="symbol"><A NAME="ref_696_10">C</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <span class="symbol"><a name="ref_696_7">L</a></span>, <span class="symbol"><a name="ref_696_10">C</a></span> : <b>aliased</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_692_16">Menu_Fmt</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_550_22">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_696_7">L</A>'<b>Access</b>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_696_10">C</A>'<b>Access</b>));
- <A HREF="terminal_interface-curses-menus__ads.htm#ref_551_22">Lines</A> := <A HREF="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_696_7">L</A>);
- <A HREF="terminal_interface-curses-menus__ads.htm#ref_552_22">Columns</A> := <A HREF="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_696_10">C</A>);
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_550_14">Format</A>;
-<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_703_14" HREF="terminal_interface-curses-menus__ads.htm#ref_564_14">Set_Item_Init_Hook</A></span> (<span class="symbol"><A NAME="ref_703_34" HREF="terminal_interface-curses-menus__ads.htm#ref_564_34">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_704_34" HREF="terminal_interface-curses-menus__ads.htm#ref_565_34">Proc</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>)
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_692_16">Menu_Fmt</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_550_22">Men</a>, <a href="terminal_interface-curses-menus__adb.htm#ref_696_7">L</a>'<b>Access</b>, <a href="terminal_interface-curses-menus__adb.htm#ref_696_10">C</a>'<b>Access</b>));
+ <a href="terminal_interface-curses-menus__ads.htm#ref_551_22">Lines</a> := <a href="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_696_7">L</a>);
+ <a href="terminal_interface-curses-menus__ads.htm#ref_552_22">Columns</a> := <a href="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_696_10">C</a>);
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_550_14">Format</a>;
+<span class="comment"><em>-------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_703_14" href="terminal_interface-curses-menus__ads.htm#ref_564_14">Set_Item_Init_Hook</a></span> (<span class="symbol"><a name="ref_703_34" href="terminal_interface-curses-menus__ads.htm#ref_564_34">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_704_34" href="terminal_interface-curses-menus__ads.htm#ref_565_34">Proc</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_706_16">Set_Item_Init</A></span> (<span class="symbol"><A NAME="ref_706_31" HREF="terminal_interface-curses-menus__adb.htm#ref_706_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_707_31" HREF="terminal_interface-curses-menus__adb.htm#ref_706_16">Proc</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_706_16">Set_Item_Init</a></span> (<span class="symbol"><a name="ref_706_31">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_707_31">Proc</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Item_Init, "set_item_init");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_706_16">Set_Item_Init</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_564_34">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_34">Proc</A>));
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_564_14">Set_Item_Init_Hook</A>;
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_706_16">Set_Item_Init</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_564_34">Men</a>, <a href="terminal_interface-curses-menus__ads.htm#ref_565_34">Proc</a>));
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_564_14">Set_Item_Init_Hook</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_714_14" HREF="terminal_interface-curses-menus__ads.htm#ref_570_14">Set_Item_Term_Hook</A></span> (<span class="symbol"><A NAME="ref_714_34" HREF="terminal_interface-curses-menus__ads.htm#ref_570_34">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_715_34" HREF="terminal_interface-curses-menus__ads.htm#ref_571_34">Proc</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_714_14" href="terminal_interface-curses-menus__ads.htm#ref_570_14">Set_Item_Term_Hook</a></span> (<span class="symbol"><a name="ref_714_34" href="terminal_interface-curses-menus__ads.htm#ref_570_34">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_715_34" href="terminal_interface-curses-menus__ads.htm#ref_571_34">Proc</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_717_16">Set_Item_Term</A></span> (<span class="symbol"><A NAME="ref_717_31" HREF="terminal_interface-curses-menus__adb.htm#ref_717_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_718_31" HREF="terminal_interface-curses-menus__adb.htm#ref_717_16">Proc</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_717_16">Set_Item_Term</a></span> (<span class="symbol"><a name="ref_717_31">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_718_31">Proc</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Item_Term, "set_item_term");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_717_16">Set_Item_Term</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_570_34">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_571_34">Proc</A>));
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_570_14">Set_Item_Term_Hook</A>;
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_717_16">Set_Item_Term</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_570_34">Men</a>, <a href="terminal_interface-curses-menus__ads.htm#ref_571_34">Proc</a>));
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_570_14">Set_Item_Term_Hook</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_725_14" HREF="terminal_interface-curses-menus__ads.htm#ref_576_14">Set_Menu_Init_Hook</A></span> (<span class="symbol"><A NAME="ref_725_34" HREF="terminal_interface-curses-menus__ads.htm#ref_576_34">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_726_34" HREF="terminal_interface-curses-menus__ads.htm#ref_577_34">Proc</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_725_14" href="terminal_interface-curses-menus__ads.htm#ref_576_14">Set_Menu_Init_Hook</a></span> (<span class="symbol"><a name="ref_725_34" href="terminal_interface-curses-menus__ads.htm#ref_576_34">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_726_34" href="terminal_interface-curses-menus__ads.htm#ref_577_34">Proc</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_728_16">Set_Menu_Init</A></span> (<span class="symbol"><A NAME="ref_728_31" HREF="terminal_interface-curses-menus__adb.htm#ref_728_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_729_31" HREF="terminal_interface-curses-menus__adb.htm#ref_728_16">Proc</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_728_16">Set_Menu_Init</a></span> (<span class="symbol"><a name="ref_728_31">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_729_31">Proc</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Menu_Init, "set_menu_init");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_728_16">Set_Menu_Init</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_576_34">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_577_34">Proc</A>));
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_576_14">Set_Menu_Init_Hook</A>;
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_728_16">Set_Menu_Init</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_576_34">Men</a>, <a href="terminal_interface-curses-menus__ads.htm#ref_577_34">Proc</a>));
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_576_14">Set_Menu_Init_Hook</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_736_14" HREF="terminal_interface-curses-menus__ads.htm#ref_582_14">Set_Menu_Term_Hook</A></span> (<span class="symbol"><A NAME="ref_736_34" HREF="terminal_interface-curses-menus__ads.htm#ref_582_34">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_737_34" HREF="terminal_interface-curses-menus__ads.htm#ref_583_34">Proc</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_736_14" href="terminal_interface-curses-menus__ads.htm#ref_582_14">Set_Menu_Term_Hook</a></span> (<span class="symbol"><a name="ref_736_34" href="terminal_interface-curses-menus__ads.htm#ref_582_34">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_737_34" href="terminal_interface-curses-menus__ads.htm#ref_583_34">Proc</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_739_16">Set_Menu_Term</A></span> (<span class="symbol"><A NAME="ref_739_31" HREF="terminal_interface-curses-menus__adb.htm#ref_739_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_740_31" HREF="terminal_interface-curses-menus__adb.htm#ref_739_16">Proc</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_739_16">Set_Menu_Term</a></span> (<span class="symbol"><a name="ref_739_31">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_740_31">Proc</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Menu_Term, "set_menu_term");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_739_16">Set_Menu_Term</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_582_34">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_583_34">Proc</A>));
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_582_14">Set_Menu_Term_Hook</A>;
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_739_16">Set_Menu_Term</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_582_34">Men</a>, <a href="terminal_interface-curses-menus__ads.htm#ref_583_34">Proc</a>));
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_582_14">Set_Menu_Term_Hook</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_747_13" HREF="terminal_interface-curses-menus__ads.htm#ref_588_13">Get_Item_Init_Hook</A></span> (<span class="symbol"><A NAME="ref_747_33" HREF="terminal_interface-curses-menus__ads.htm#ref_588_33">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>
+ <b>function</b> <span class="symbol"><a name="ref_747_13" href="terminal_interface-curses-menus__ads.htm#ref_588_13">Get_Item_Init_Hook</a></span> (<span class="symbol"><a name="ref_747_33" href="terminal_interface-curses-menus__ads.htm#ref_588_33">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> <a href="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</a>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_749_16">Item_Init</A></span> (<span class="symbol"><A NAME="ref_749_27" HREF="terminal_interface-curses-menus__adb.htm#ref_749_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>;
+ <b>function</b> <span class="symbol"><a name="ref_749_16">Item_Init</a></span> (<span class="symbol"><a name="ref_749_27">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> <a href="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</a>;
<b>pragma</b> Import (C, Item_Init, "item_init");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_749_16">Item_Init</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_588_33">Men</A>);
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_588_13">Get_Item_Init_Hook</A>;
+ <b>return</b> <a href="terminal_interface-curses-menus__adb.htm#ref_749_16">Item_Init</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_588_33">Men</a>);
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_588_13">Get_Item_Init_Hook</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_755_13" HREF="terminal_interface-curses-menus__ads.htm#ref_593_13">Get_Item_Term_Hook</A></span> (<span class="symbol"><A NAME="ref_755_33" HREF="terminal_interface-curses-menus__ads.htm#ref_593_33">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>
+ <b>function</b> <span class="symbol"><a name="ref_755_13" href="terminal_interface-curses-menus__ads.htm#ref_593_13">Get_Item_Term_Hook</a></span> (<span class="symbol"><a name="ref_755_33" href="terminal_interface-curses-menus__ads.htm#ref_593_33">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> <a href="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</a>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_757_16">Item_Term</A></span> (<span class="symbol"><A NAME="ref_757_27" HREF="terminal_interface-curses-menus__adb.htm#ref_757_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>;
+ <b>function</b> <span class="symbol"><a name="ref_757_16">Item_Term</a></span> (<span class="symbol"><a name="ref_757_27">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> <a href="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</a>;
<b>pragma</b> Import (C, Item_Term, "item_term");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_757_16">Item_Term</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_593_33">Men</A>);
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_593_13">Get_Item_Term_Hook</A>;
+ <b>return</b> <a href="terminal_interface-curses-menus__adb.htm#ref_757_16">Item_Term</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_593_33">Men</a>);
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_593_13">Get_Item_Term_Hook</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_763_13" HREF="terminal_interface-curses-menus__ads.htm#ref_598_13">Get_Menu_Init_Hook</A></span> (<span class="symbol"><A NAME="ref_763_33" HREF="terminal_interface-curses-menus__ads.htm#ref_598_33">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>
+ <b>function</b> <span class="symbol"><a name="ref_763_13" href="terminal_interface-curses-menus__ads.htm#ref_598_13">Get_Menu_Init_Hook</a></span> (<span class="symbol"><a name="ref_763_33" href="terminal_interface-curses-menus__ads.htm#ref_598_33">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> <a href="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</a>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_765_16">Menu_Init</A></span> (<span class="symbol"><A NAME="ref_765_27" HREF="terminal_interface-curses-menus__adb.htm#ref_765_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>;
+ <b>function</b> <span class="symbol"><a name="ref_765_16">Menu_Init</a></span> (<span class="symbol"><a name="ref_765_27">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> <a href="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</a>;
<b>pragma</b> Import (C, Menu_Init, "menu_init");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_765_16">Menu_Init</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_598_33">Men</A>);
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_598_13">Get_Menu_Init_Hook</A>;
+ <b>return</b> <a href="terminal_interface-curses-menus__adb.htm#ref_765_16">Menu_Init</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_598_33">Men</a>);
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_598_13">Get_Menu_Init_Hook</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_771_13" HREF="terminal_interface-curses-menus__ads.htm#ref_603_13">Get_Menu_Term_Hook</A></span> (<span class="symbol"><A NAME="ref_771_33" HREF="terminal_interface-curses-menus__ads.htm#ref_603_33">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>
+ <b>function</b> <span class="symbol"><a name="ref_771_13" href="terminal_interface-curses-menus__ads.htm#ref_603_13">Get_Menu_Term_Hook</a></span> (<span class="symbol"><a name="ref_771_33" href="terminal_interface-curses-menus__ads.htm#ref_603_33">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> <a href="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</a>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_773_16">Menu_Term</A></span> (<span class="symbol"><A NAME="ref_773_27" HREF="terminal_interface-curses-menus__adb.htm#ref_773_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>;
+ <b>function</b> <span class="symbol"><a name="ref_773_16">Menu_Term</a></span> (<span class="symbol"><a name="ref_773_27">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> <a href="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</a>;
<b>pragma</b> Import (C, Menu_Term, "menu_term");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_773_16">Menu_Term</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_603_33">Men</A>);
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_603_13">Get_Menu_Term_Hook</A>;
-<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_779_14" HREF="terminal_interface-curses-menus__ads.htm#ref_612_14">Redefine</A></span> (<span class="symbol"><A NAME="ref_779_24" HREF="terminal_interface-curses-menus__ads.htm#ref_612_24">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_780_24" HREF="terminal_interface-curses-menus__ads.htm#ref_613_24">Items</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_177_9">Item_Array_Access</A>)
+ <b>return</b> <a href="terminal_interface-curses-menus__adb.htm#ref_773_16">Menu_Term</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_603_33">Men</a>);
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_603_13">Get_Menu_Term_Hook</a>;
+<span class="comment"><em>-------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_779_14" href="terminal_interface-curses-menus__ads.htm#ref_612_14">Redefine</a></span> (<span class="symbol"><a name="ref_779_24" href="terminal_interface-curses-menus__ads.htm#ref_612_24">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_780_24" href="terminal_interface-curses-menus__ads.htm#ref_613_24">Items</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_177_9">Item_Array_Access</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_782_16">Set_Items</A></span> (<span class="symbol"><A NAME="ref_782_27" HREF="terminal_interface-curses-menus__adb.htm#ref_782_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_783_27" HREF="terminal_interface-curses-menus__adb.htm#ref_782_16">Items</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_782_16">Set_Items</a></span> (<span class="symbol"><a name="ref_782_27">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_783_27">Items</a></span> : System.Address) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Set_Items, "set_menu_items");
<b>begin</b>
- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-menus__ads.htm#ref_613_24">Items</A>.<b>all</b> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_613_24">Items</A>'Last) = <A HREF="terminal_interface-curses-menus__ads.htm#ref_58_4">Null_Item</A>);
- <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_613_24">Items</A>.<b>all</b> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_613_24">Items</A>'Last) /= <A HREF="terminal_interface-curses-menus__ads.htm#ref_58_4">Null_Item</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_112_4">Menu_Exception</A>;
+ <b>pragma</b> Assert (<a href="terminal_interface-curses-menus__ads.htm#ref_613_24">Items</a>.<b>all</b> (<a href="terminal_interface-curses-menus__ads.htm#ref_613_24">Items</a>'Last) = <a href="terminal_interface-curses-menus__ads.htm#ref_58_4">Null_Item</a>);
+ <b>if</b> <a href="terminal_interface-curses-menus__ads.htm#ref_613_24">Items</a>.<b>all</b> (<a href="terminal_interface-curses-menus__ads.htm#ref_613_24">Items</a>'Last) /= <a href="terminal_interface-curses-menus__ads.htm#ref_58_4">Null_Item</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses-menus__ads.htm#ref_112_4">Menu_Exception</a>;
<b>else</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_782_16">Set_Items</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_612_24">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_613_24">Items</A>.<b>all</b>'Address));
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_782_16">Set_Items</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_612_24">Men</a>, <a href="terminal_interface-curses-menus__ads.htm#ref_613_24">Items</a>.<b>all</b>'Address));
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_612_14">Redefine</A>;
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_612_14">Redefine</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_795_13" HREF="terminal_interface-curses-menus__ads.htm#ref_628_13">Item_Count</A></span> (<span class="symbol"><A NAME="ref_795_25" HREF="terminal_interface-curses-menus__ads.htm#ref_628_25">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> Natural
+ <b>function</b> <span class="symbol"><a name="ref_795_13" href="terminal_interface-curses-menus__ads.htm#ref_628_13">Item_Count</a></span> (<span class="symbol"><a name="ref_795_25" href="terminal_interface-curses-menus__ads.htm#ref_628_25">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> Natural
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_797_16">Count</A></span> (<span class="symbol"><A NAME="ref_797_23" HREF="terminal_interface-curses-menus__adb.htm#ref_797_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_797_16">Count</a></span> (<span class="symbol"><a name="ref_797_23">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Count, "item_count");
<b>begin</b>
- <b>return</b> Natural (<A HREF="terminal_interface-curses-menus__adb.htm#ref_797_16">Count</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_628_25">Men</A>));
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_628_13">Item_Count</A>;
+ <b>return</b> Natural (<a href="terminal_interface-curses-menus__adb.htm#ref_797_16">Count</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_628_25">Men</a>));
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_628_13">Item_Count</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_803_13" HREF="terminal_interface-curses-menus__ads.htm#ref_622_13">Items</A></span> (<span class="symbol"><A NAME="ref_803_20" HREF="terminal_interface-curses-menus__ads.htm#ref_622_20">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_804_20" HREF="terminal_interface-curses-menus__ads.htm#ref_623_20">Index</A></span> : Positive) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>
+ <b>function</b> <span class="symbol"><a name="ref_803_13" href="terminal_interface-curses-menus__ads.htm#ref_622_13">Items</a></span> (<span class="symbol"><a name="ref_803_20" href="terminal_interface-curses-menus__ads.htm#ref_622_20">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_804_20" href="terminal_interface-curses-menus__ads.htm#ref_623_20">Index</a></span> : Positive) <b>return</b> <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>
<b>is</b>
<b>use</b> I_Array;
- <b>function</b> C_Mitems (<span class="symbol"><A NAME="ref_808_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> Pointer;
+ <b>function</b> C_Mitems (<span class="symbol"><a name="ref_808_26">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> Pointer;
<b>pragma</b> Import (C, C_Mitems, "menu_items");
- P : Pointer := C_Mitems (<A HREF="terminal_interface-curses-menus__ads.htm#ref_622_20">Men</A>);
+ P : Pointer := C_Mitems (<a href="terminal_interface-curses-menus__ads.htm#ref_622_20">Men</a>);
<b>begin</b>
- <b>if</b> P = <b>null</b> <b>or</b> <b>else</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_623_20">Index</A> &gt; <A HREF="terminal_interface-curses-menus__ads.htm#ref_628_13">Item_Count</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_622_20">Men</A>) <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_112_4">Menu_Exception</A>;
+ <b>if</b> P = <b>null</b> <b>or</b> <b>else</b> <a href="terminal_interface-curses-menus__ads.htm#ref_623_20">Index</a> &gt; <a href="terminal_interface-curses-menus__ads.htm#ref_628_13">Item_Count</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_622_20">Men</a>) <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses-menus__ads.htm#ref_112_4">Menu_Exception</a>;
<b>else</b>
- P := P + ptrdiff_t (<A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_623_20">Index</A>) - 1);
+ P := P + ptrdiff_t (<a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_623_20">Index</a>) - 1);
<b>return</b> P.<b>all</b>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_622_13">Items</A>;
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_622_13">Items</a>;
-<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_822_13" HREF="terminal_interface-curses-menus__ads.htm#ref_637_13">Create</A></span> (<span class="symbol"><A NAME="ref_822_21" HREF="terminal_interface-curses-menus__ads.htm#ref_637_21">Items</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_177_9">Item_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>
+<span class="comment"><em>-------------------------------------------------------------------------------</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_822_13" href="terminal_interface-curses-menus__ads.htm#ref_637_13">Create</a></span> (<span class="symbol"><a name="ref_822_21" href="terminal_interface-curses-menus__ads.htm#ref_637_21">Items</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_177_9">Item_Array_Access</a>) <b>return</b> <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_824_16">Newmenu</A></span> (<span class="symbol"><A NAME="ref_824_25" HREF="terminal_interface-curses-menus__adb.htm#ref_824_16">Items</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
+ <b>function</b> <span class="symbol"><a name="ref_824_16">Newmenu</a></span> (<span class="symbol"><a name="ref_824_25">Items</a></span> : System.Address) <b>return</b> <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
<b>pragma</b> Import (C, Newmenu, "new_menu");
- <span class="symbol"><A NAME="ref_827_7">M</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
+ <span class="symbol"><a name="ref_827_7">M</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
<b>begin</b>
- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-menus__ads.htm#ref_637_21">Items</A>.<b>all</b> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_637_21">Items</A>'Last) = <A HREF="terminal_interface-curses-menus__ads.htm#ref_58_4">Null_Item</A>);
- <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_637_21">Items</A>.<b>all</b> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_637_21">Items</A>'Last) /= <A HREF="terminal_interface-curses-menus__ads.htm#ref_58_4">Null_Item</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_112_4">Menu_Exception</A>;
+ <b>pragma</b> Assert (<a href="terminal_interface-curses-menus__ads.htm#ref_637_21">Items</a>.<b>all</b> (<a href="terminal_interface-curses-menus__ads.htm#ref_637_21">Items</a>'Last) = <a href="terminal_interface-curses-menus__ads.htm#ref_58_4">Null_Item</a>);
+ <b>if</b> <a href="terminal_interface-curses-menus__ads.htm#ref_637_21">Items</a>.<b>all</b> (<a href="terminal_interface-curses-menus__ads.htm#ref_637_21">Items</a>'Last) /= <a href="terminal_interface-curses-menus__ads.htm#ref_58_4">Null_Item</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses-menus__ads.htm#ref_112_4">Menu_Exception</a>;
<b>else</b>
- <A HREF="terminal_interface-curses-menus__adb.htm#ref_827_7">M</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_824_16">Newmenu</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_637_21">Items</A>.<b>all</b>'Address);
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_827_7">M</A> = <A HREF="terminal_interface-curses-menus__ads.htm#ref_59_4">Null_Menu</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_112_4">Menu_Exception</A>;
+ <a href="terminal_interface-curses-menus__adb.htm#ref_827_7">M</a> := <a href="terminal_interface-curses-menus__adb.htm#ref_824_16">Newmenu</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_637_21">Items</a>.<b>all</b>'Address);
+ <b>if</b> <a href="terminal_interface-curses-menus__adb.htm#ref_827_7">M</a> = <a href="terminal_interface-curses-menus__ads.htm#ref_59_4">Null_Menu</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses-menus__ads.htm#ref_112_4">Menu_Exception</a>;
<b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_827_7">M</A>;
+ <b>return</b> <a href="terminal_interface-curses-menus__adb.htm#ref_827_7">M</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_637_13">Create</A>;
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_637_13">Create</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_841_14" HREF="terminal_interface-curses-menus__ads.htm#ref_644_14">Delete</A></span> (<span class="symbol"><A NAME="ref_841_22" HREF="terminal_interface-curses-menus__ads.htm#ref_644_22">Men</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_841_14" href="terminal_interface-curses-menus__ads.htm#ref_644_14">Delete</a></span> (<span class="symbol"><a name="ref_841_22" href="terminal_interface-curses-menus__ads.htm#ref_644_22">Men</a></span> : <b>in</b> <b>out</b> <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_843_16">Free</A></span> (<span class="symbol"><A NAME="ref_843_22" HREF="terminal_interface-curses-menus__adb.htm#ref_843_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_843_16">Free</a></span> (<span class="symbol"><a name="ref_843_22">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Free, "free_menu");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_843_16">Free</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_644_22">Men</A>));
- <A HREF="terminal_interface-curses-menus__ads.htm#ref_644_22">Men</A> := <A HREF="terminal_interface-curses-menus__ads.htm#ref_59_4">Null_Menu</A>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_644_14">Delete</A>;
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_843_16">Free</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_644_22">Men</a>));
+ <a href="terminal_interface-curses-menus__ads.htm#ref_644_22">Men</a> := <a href="terminal_interface-curses-menus__ads.htm#ref_59_4">Null_Menu</a>;
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_644_14">Delete</a>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_852_13" HREF="terminal_interface-curses-menus__ads.htm#ref_659_13">Driver</A></span> (<span class="symbol"><A NAME="ref_852_21" HREF="terminal_interface-curses-menus__ads.htm#ref_659_21">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_853_21" HREF="terminal_interface-curses-menus__ads.htm#ref_660_21">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_67_9">Key_Code</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_653_9">Driver_Result</A>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_852_13" href="terminal_interface-curses-menus__ads.htm#ref_659_13">Driver</a></span> (<span class="symbol"><a name="ref_852_21" href="terminal_interface-curses-menus__ads.htm#ref_659_21">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_853_21" href="terminal_interface-curses-menus__ads.htm#ref_660_21">Key</a></span> : <a href="terminal_interface-curses__ads.htm#ref_67_9">Key_Code</a>) <b>return</b> <a href="terminal_interface-curses-menus__ads.htm#ref_653_9">Driver_Result</a>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_855_16">Driver</A></span> (<span class="symbol"><A NAME="ref_855_24" HREF="terminal_interface-curses-menus__adb.htm#ref_855_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_856_24" HREF="terminal_interface-curses-menus__adb.htm#ref_855_16">Key</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A>;
+ <b>function</b> <span class="symbol"><a name="ref_855_16">Driver</a></span> (<span class="symbol"><a name="ref_855_24">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_856_24">Key</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a>;
<b>pragma</b> Import (C, Driver, "menu_driver");
- <span class="symbol"><A NAME="ref_859_7">R</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_855_16">Driver</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_659_21">Men</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_660_21">Key</A>));
+ <span class="symbol"><a name="ref_859_7">R</a></span> : <b>constant</b> <a href="terminal_interface-curses-aux__ads.htm#ref_70_9">Eti_Error</a> := <a href="terminal_interface-curses-menus__adb.htm#ref_855_16">Driver</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_659_21">Men</a>, <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_660_21">Key</a>));
<b>begin</b>
- <b>case</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_859_7">R</A> <b>is</b>
- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_77_7">E_Unknown_Command</A> =&gt;
- <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_655_27">Unknown_Request</A>;
- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_76_7">E_No_Match</A> =&gt;
- <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_656_27">No_Match</A>;
- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_73_7">E_Request_Denied</A> | <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_7">E_Not_Selectable</A> =&gt;
- <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_654_27">Request_Denied</A>;
+ <b>case</b> <a href="terminal_interface-curses-menus__adb.htm#ref_859_7">R</a> <b>is</b>
+ <b>when</b> <a href="terminal_interface-curses-aux__ads.htm#ref_77_7">E_Unknown_Command</a> =&gt;
+ <b>return</b> <a href="terminal_interface-curses-menus__ads.htm#ref_655_27">Unknown_Request</a>;
+ <b>when</b> <a href="terminal_interface-curses-aux__ads.htm#ref_76_7">E_No_Match</a> =&gt;
+ <b>return</b> <a href="terminal_interface-curses-menus__ads.htm#ref_656_27">No_Match</a>;
+ <b>when</b> <a href="terminal_interface-curses-aux__ads.htm#ref_73_7">E_Request_Denied</a> | <a href="terminal_interface-curses-aux__ads.htm#ref_75_7">E_Not_Selectable</a> =&gt;
+ <b>return</b> <a href="terminal_interface-curses-menus__ads.htm#ref_654_27">Request_Denied</a>;
<b>when</b> <b>others</b> =&gt;
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_859_7">R</A>);
- <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_653_27">Menu_Ok</A>;
+ <a href="terminal_interface-curses-aux__ads.htm#ref_87_14">Eti_Exception</a> (<a href="terminal_interface-curses-menus__adb.htm#ref_859_7">R</a>);
+ <b>return</b> <a href="terminal_interface-curses-menus__ads.htm#ref_653_27">Menu_Ok</a>;
<b>end</b> <b>case</b>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_659_13">Driver</A>;
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_659_13">Driver</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_874_14" HREF="terminal_interface-curses-menus__ads.htm#ref_179_14">Free</A></span> (<span class="symbol"><A NAME="ref_874_20" HREF="terminal_interface-curses-menus__ads.htm#ref_179_20">IA</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_177_9">Item_Array_Access</A>;
- <span class="symbol"><A NAME="ref_875_20" HREF="terminal_interface-curses-menus__ads.htm#ref_180_20">Free_Items</A></span> : Boolean := False)
+ <b>procedure</b> <span class="symbol"><a name="ref_874_14" href="terminal_interface-curses-menus__ads.htm#ref_179_14">Free</a></span> (<span class="symbol"><a name="ref_874_20" href="terminal_interface-curses-menus__ads.htm#ref_179_20">IA</a></span> : <b>in</b> <b>out</b> <a href="terminal_interface-curses-menus__ads.htm#ref_177_9">Item_Array_Access</a>;
+ <span class="symbol"><a name="ref_875_20" href="terminal_interface-curses-menus__ads.htm#ref_180_20">Free_Items</a></span> : Boolean := False)
<b>is</b>
<b>procedure</b> Release <b>is</b> <b>new</b> Ada.Unchecked_Deallocation
- (Item_Array, <A HREF="terminal_interface-curses-menus__ads.htm#ref_177_9">Item_Array_Access</A>);
+ (Item_Array, <a href="terminal_interface-curses-menus__ads.htm#ref_177_9">Item_Array_Access</a>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_179_20">IA</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_180_20">Free_Items</A> <b>then</b>
- <b>for</b> <span class="symbol"><A NAME="ref_881_14">I</A></span> <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_179_20">IA</A>'First .. (<A HREF="terminal_interface-curses-menus__ads.htm#ref_179_20">IA</A>'Last - 1) <b>loop</b>
- <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_179_20">IA</A>.<b>all</b> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_881_14">I</A>) /= <A HREF="terminal_interface-curses-menus__ads.htm#ref_58_4">Null_Item</A> <b>then</b>
- <A HREF="terminal_interface-curses-menus__ads.htm#ref_202_14">Delete</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_179_20">IA</A>.<b>all</b> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_881_14">I</A>));
+ <b>if</b> <a href="terminal_interface-curses-menus__ads.htm#ref_179_20">IA</a> /= <b>null</b> <b>and</b> <b>then</b> <a href="terminal_interface-curses-menus__ads.htm#ref_180_20">Free_Items</a> <b>then</b>
+ <b>for</b> <span class="symbol"><a name="ref_881_14">I</a></span> <b>in</b> <a href="terminal_interface-curses-menus__ads.htm#ref_179_20">IA</a>'First .. (<a href="terminal_interface-curses-menus__ads.htm#ref_179_20">IA</a>'Last - 1) <b>loop</b>
+ <b>if</b> <a href="terminal_interface-curses-menus__ads.htm#ref_179_20">IA</a>.<b>all</b> (<a href="terminal_interface-curses-menus__adb.htm#ref_881_14">I</a>) /= <a href="terminal_interface-curses-menus__ads.htm#ref_58_4">Null_Item</a> <b>then</b>
+ <a href="terminal_interface-curses-menus__ads.htm#ref_202_14">Delete</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_179_20">IA</a>.<b>all</b> (<a href="terminal_interface-curses-menus__adb.htm#ref_881_14">I</a>));
<b>end</b> <b>if</b>;
<b>end</b> <b>loop</b>;
<b>end</b> <b>if</b>;
- Release (<A HREF="terminal_interface-curses-menus__ads.htm#ref_179_20">IA</A>);
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_179_14">Free</A>;
+ Release (<a href="terminal_interface-curses-menus__ads.htm#ref_179_20">IA</a>);
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_179_14">Free</a>;
-<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_891_13" HREF="terminal_interface-curses-menus__ads.htm#ref_146_13">Default_Menu_Options</A></span> <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_116_9">Menu_Option_Set</A>
+<span class="comment"><em>-------------------------------------------------------------------------------</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_891_13" href="terminal_interface-curses-menus__ads.htm#ref_146_13">Default_Menu_Options</a></span> <b>return</b> <a href="terminal_interface-curses-menus__ads.htm#ref_116_9">Menu_Option_Set</a>
<b>is</b>
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_351_13">Get_Options</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_59_4">Null_Menu</A>);
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_146_13">Default_Menu_Options</A>;
+ <b>return</b> <a href="terminal_interface-curses-menus__ads.htm#ref_351_13">Get_Options</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_59_4">Null_Menu</a>);
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_146_13">Default_Menu_Options</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_897_13" HREF="terminal_interface-curses-menus__ads.htm#ref_167_13">Default_Item_Options</A></span> <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</A>
+ <b>function</b> <span class="symbol"><a name="ref_897_13" href="terminal_interface-curses-menus__ads.htm#ref_167_13">Default_Item_Options</a></span> <b>return</b> <a href="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</a>
<b>is</b>
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_255_13">Get_Options</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_58_4">Null_Item</A>);
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_167_13">Default_Item_Options</A>;
-<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span>
+ <b>return</b> <a href="terminal_interface-curses-menus__ads.htm#ref_255_13">Get_Options</a> (<a href="terminal_interface-curses-menus__ads.htm#ref_58_4">Null_Item</a>);
+ <b>end</b> <a href="terminal_interface-curses-menus__ads.htm#ref_167_13">Default_Item_Options</a>;
+<span class="comment"><em>-------------------------------------------------------------------------------</em></span>
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_46_35">Menus</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-menus__ads.htm#ref_46_35">Menus</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-menus__ads.htm b/doc/html/ada/terminal_interface-curses-menus__ads.htm
index 22ae63c4cdee..5f61dacb9a8d 100644
--- a/doc/html/ada/terminal_interface-curses-menus__ads.htm
+++ b/doc/html/ada/terminal_interface-curses-menus__ads.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-menus.ads</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-menus.ads</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,682 +11,682 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-menus.ads </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Menu --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- S P E C --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1998-2009,2014 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.32 @</EM></span>
-<span class="comment"><EM>-- @Date: 2020/02/02 23:34:34 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-menus.ads </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Menu --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- S P E C --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1998-2009,2014 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.32 @</em></span>
+<span class="comment"><em>-- @Date: 2020/02/02 23:34:34 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
<b>with</b> System;
<b>with</b> Ada.Characters.Latin_1;
-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<span class="symbol"><A NAME="ref_46_35" HREF="terminal_interface-curses-menus__adb.htm#ref_50_40">Menus</A></span> <b>is</b>
- <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_46_35">Menus</A>);
- <b>pragma</b> Linker_Options ("-lmenu" &amp; <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_9_4">DFT_ARG_SUFFIX</A>);
+<b>package</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<span class="symbol"><a name="ref_46_35" href="terminal_interface-curses-menus__adb.htm#ref_50_40">Menus</a></span> <b>is</b>
+ <b>pragma</b> Preelaborate (<a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-menus__ads.htm#ref_46_35">Menus</a>);
+ <b>pragma</b> Linker_Options ("-lmenu" &amp; <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_9_4">DFT_ARG_SUFFIX</a>);
Space : Character <b>renames</b> Ada.Characters.Latin_1.Space;
- <b>type</b> <span class="symbol"><A NAME="ref_52_9">Item</A></span> <b>is</b> <b>private</b>;
- <b>type</b> <span class="symbol"><A NAME="ref_53_9">Menu</A></span> <b>is</b> <b>private</b>;
-
- <span class="comment"><EM>---------------------------</EM></span>
- <span class="comment"><EM>-- Interface constants --</EM></span>
- <span class="comment"><EM>---------------------------</EM></span>
- <span class="symbol"><A NAME="ref_58_4">Null_Item</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>;
- <span class="symbol"><A NAME="ref_59_4">Null_Menu</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
-
- <b>subtype</b> <span class="symbol"><A NAME="ref_61_12">Menu_Request_Code</A></span> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_67_9">Key_Code</A>
- <b>range</b> (<A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 1) .. (<A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 17);
-
- <span class="comment"><EM>-- The prefix M_ stands for "Menu Request"</EM></span>
- <span class="symbol"><A NAME="ref_65_4">M_Left_Item</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 1;
- <span class="symbol"><A NAME="ref_66_4">M_Right_Item</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 2;
- <span class="symbol"><A NAME="ref_67_4">M_Up_Item</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 3;
- <span class="symbol"><A NAME="ref_68_4">M_Down_Item</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 4;
- <span class="symbol"><A NAME="ref_69_4">M_ScrollUp_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 5;
- <span class="symbol"><A NAME="ref_70_4">M_ScrollDown_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 6;
- <span class="symbol"><A NAME="ref_71_4">M_ScrollDown_Page</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 7;
- <span class="symbol"><A NAME="ref_72_4">M_ScrollUp_Page</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 8;
- <span class="symbol"><A NAME="ref_73_4">M_First_Item</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 9;
- <span class="symbol"><A NAME="ref_74_4">M_Last_Item</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 10;
- <span class="symbol"><A NAME="ref_75_4">M_Next_Item</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 11;
- <span class="symbol"><A NAME="ref_76_4">M_Previous_Item</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 12;
- <span class="symbol"><A NAME="ref_77_4">M_Toggle_Item</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 13;
- <span class="symbol"><A NAME="ref_78_4">M_Clear_Pattern</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 14;
- <span class="symbol"><A NAME="ref_79_4">M_Back_Pattern</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 15;
- <span class="symbol"><A NAME="ref_80_4">M_Next_Match</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 16;
- <span class="symbol"><A NAME="ref_81_4">M_Previous_Match</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 17;
-
- <span class="comment"><EM>-- For those who like the old 'C' names for the request codes</EM></span>
- REQ_LEFT_ITEM : <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_4">M_Left_Item</A>;
- REQ_RIGHT_ITEM : <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_66_4">M_Right_Item</A>;
- REQ_UP_ITEM : <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_67_4">M_Up_Item</A>;
- REQ_DOWN_ITEM : <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_68_4">M_Down_Item</A>;
- REQ_SCR_ULINE : <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_69_4">M_ScrollUp_Line</A>;
- REQ_SCR_DLINE : <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_70_4">M_ScrollDown_Line</A>;
- REQ_SCR_DPAGE : <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_71_4">M_ScrollDown_Page</A>;
- REQ_SCR_UPAGE : <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_72_4">M_ScrollUp_Page</A>;
- REQ_FIRST_ITEM : <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_73_4">M_First_Item</A>;
- REQ_LAST_ITEM : <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_74_4">M_Last_Item</A>;
- REQ_NEXT_ITEM : <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_75_4">M_Next_Item</A>;
- REQ_PREV_ITEM : <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_76_4">M_Previous_Item</A>;
- REQ_TOGGLE_ITEM : <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_77_4">M_Toggle_Item</A>;
- REQ_CLEAR_PATTERN : <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_78_4">M_Clear_Pattern</A>;
- REQ_BACK_PATTERN : <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_79_4">M_Back_Pattern</A>;
- REQ_NEXT_MATCH : <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_80_4">M_Next_Match</A>;
- REQ_PREV_MATCH : <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_81_4">M_Previous_Match</A>;
-
- <b>procedure</b> <span class="symbol"><A NAME="ref_102_14" HREF="terminal_interface-curses-menus__adb.htm#ref_59_14">Request_Name</A></span> (<span class="symbol"><A NAME="ref_102_28" HREF="terminal_interface-curses-menus__adb.htm#ref_59_28">Key</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</A>;
- <span class="symbol"><A NAME="ref_103_28" HREF="terminal_interface-curses-menus__adb.htm#ref_60_28">Name</A></span> : <b>out</b> String);
-
- <b>function</b> <span class="symbol"><A NAME="ref_105_14" HREF="terminal_interface-curses-menus__adb.htm#ref_68_13">Request_Name</A></span> (<span class="symbol"><A NAME="ref_105_28" HREF="terminal_interface-curses-menus__adb.htm#ref_68_27">Key</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</A>) <b>return</b> String;
- <span class="comment"><EM>-- Same as function</EM></span>
-
- <span class="comment"><EM>------------------</EM></span>
- <span class="comment"><EM>-- Exceptions --</EM></span>
- <span class="comment"><EM>------------------</EM></span>
-
- <span class="symbol"><A NAME="ref_112_4">Menu_Exception</A></span> : <b>exception</b>;
- <span class="comment"><EM>--</EM></span>
- <span class="comment"><EM>-- Menu options</EM></span>
- <span class="comment"><EM>--</EM></span>
- <b>type</b> <span class="symbol"><A NAME="ref_116_9">Menu_Option_Set</A></span> <b>is</b>
+ <b>type</b> <span class="symbol"><a name="ref_52_9">Item</a></span> <b>is</b> <b>private</b>;
+ <b>type</b> <span class="symbol"><a name="ref_53_9">Menu</a></span> <b>is</b> <b>private</b>;
+
+ <span class="comment"><em>---------------------------</em></span>
+ <span class="comment"><em>-- Interface constants --</em></span>
+ <span class="comment"><em>---------------------------</em></span>
+ <span class="symbol"><a name="ref_58_4">Null_Item</a></span> : <b>constant</b> <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>;
+ <span class="symbol"><a name="ref_59_4">Null_Menu</a></span> : <b>constant</b> <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+
+ <b>subtype</b> <span class="symbol"><a name="ref_61_12">Menu_Request_Code</a></span> <b>is</b> <a href="terminal_interface-curses__ads.htm#ref_67_9">Key_Code</a>
+ <b>range</b> (<a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 1) .. (<a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 17);
+
+ <span class="comment"><em>-- The prefix M_ stands for "Menu Request"</em></span>
+ <span class="symbol"><a name="ref_65_4">M_Left_Item</a></span> : <b>constant</b> <a href="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 1;
+ <span class="symbol"><a name="ref_66_4">M_Right_Item</a></span> : <b>constant</b> <a href="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 2;
+ <span class="symbol"><a name="ref_67_4">M_Up_Item</a></span> : <b>constant</b> <a href="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 3;
+ <span class="symbol"><a name="ref_68_4">M_Down_Item</a></span> : <b>constant</b> <a href="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 4;
+ <span class="symbol"><a name="ref_69_4">M_ScrollUp_Line</a></span> : <b>constant</b> <a href="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 5;
+ <span class="symbol"><a name="ref_70_4">M_ScrollDown_Line</a></span> : <b>constant</b> <a href="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 6;
+ <span class="symbol"><a name="ref_71_4">M_ScrollDown_Page</a></span> : <b>constant</b> <a href="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 7;
+ <span class="symbol"><a name="ref_72_4">M_ScrollUp_Page</a></span> : <b>constant</b> <a href="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 8;
+ <span class="symbol"><a name="ref_73_4">M_First_Item</a></span> : <b>constant</b> <a href="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 9;
+ <span class="symbol"><a name="ref_74_4">M_Last_Item</a></span> : <b>constant</b> <a href="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 10;
+ <span class="symbol"><a name="ref_75_4">M_Next_Item</a></span> : <b>constant</b> <a href="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 11;
+ <span class="symbol"><a name="ref_76_4">M_Previous_Item</a></span> : <b>constant</b> <a href="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 12;
+ <span class="symbol"><a name="ref_77_4">M_Toggle_Item</a></span> : <b>constant</b> <a href="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 13;
+ <span class="symbol"><a name="ref_78_4">M_Clear_Pattern</a></span> : <b>constant</b> <a href="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 14;
+ <span class="symbol"><a name="ref_79_4">M_Back_Pattern</a></span> : <b>constant</b> <a href="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 15;
+ <span class="symbol"><a name="ref_80_4">M_Next_Match</a></span> : <b>constant</b> <a href="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 16;
+ <span class="symbol"><a name="ref_81_4">M_Previous_Match</a></span> : <b>constant</b> <a href="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 17;
+
+ <span class="comment"><em>-- For those who like the old 'C' names for the request codes</em></span>
+ REQ_LEFT_ITEM : <a href="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-menus__ads.htm#ref_65_4">M_Left_Item</a>;
+ REQ_RIGHT_ITEM : <a href="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-menus__ads.htm#ref_66_4">M_Right_Item</a>;
+ REQ_UP_ITEM : <a href="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-menus__ads.htm#ref_67_4">M_Up_Item</a>;
+ REQ_DOWN_ITEM : <a href="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-menus__ads.htm#ref_68_4">M_Down_Item</a>;
+ REQ_SCR_ULINE : <a href="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-menus__ads.htm#ref_69_4">M_ScrollUp_Line</a>;
+ REQ_SCR_DLINE : <a href="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-menus__ads.htm#ref_70_4">M_ScrollDown_Line</a>;
+ REQ_SCR_DPAGE : <a href="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-menus__ads.htm#ref_71_4">M_ScrollDown_Page</a>;
+ REQ_SCR_UPAGE : <a href="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-menus__ads.htm#ref_72_4">M_ScrollUp_Page</a>;
+ REQ_FIRST_ITEM : <a href="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-menus__ads.htm#ref_73_4">M_First_Item</a>;
+ REQ_LAST_ITEM : <a href="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-menus__ads.htm#ref_74_4">M_Last_Item</a>;
+ REQ_NEXT_ITEM : <a href="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-menus__ads.htm#ref_75_4">M_Next_Item</a>;
+ REQ_PREV_ITEM : <a href="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-menus__ads.htm#ref_76_4">M_Previous_Item</a>;
+ REQ_TOGGLE_ITEM : <a href="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-menus__ads.htm#ref_77_4">M_Toggle_Item</a>;
+ REQ_CLEAR_PATTERN : <a href="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-menus__ads.htm#ref_78_4">M_Clear_Pattern</a>;
+ REQ_BACK_PATTERN : <a href="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-menus__ads.htm#ref_79_4">M_Back_Pattern</a>;
+ REQ_NEXT_MATCH : <a href="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-menus__ads.htm#ref_80_4">M_Next_Match</a>;
+ REQ_PREV_MATCH : <a href="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</a> <b>renames</b> <a href="terminal_interface-curses-menus__ads.htm#ref_81_4">M_Previous_Match</a>;
+
+ <b>procedure</b> <span class="symbol"><a name="ref_102_14" href="terminal_interface-curses-menus__adb.htm#ref_59_14">Request_Name</a></span> (<span class="symbol"><a name="ref_102_28" href="terminal_interface-curses-menus__adb.htm#ref_59_28">Key</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</a>;
+ <span class="symbol"><a name="ref_103_28" href="terminal_interface-curses-menus__adb.htm#ref_60_28">Name</a></span> : <b>out</b> String);
+
+ <b>function</b> <span class="symbol"><a name="ref_105_14" href="terminal_interface-curses-menus__adb.htm#ref_68_13">Request_Name</a></span> (<span class="symbol"><a name="ref_105_28" href="terminal_interface-curses-menus__adb.htm#ref_68_27">Key</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_61_12">Menu_Request_Code</a>) <b>return</b> String;
+ <span class="comment"><em>-- Same as function</em></span>
+
+ <span class="comment"><em>------------------</em></span>
+ <span class="comment"><em>-- Exceptions --</em></span>
+ <span class="comment"><em>------------------</em></span>
+
+ <span class="symbol"><a name="ref_112_4">Menu_Exception</a></span> : <b>exception</b>;
+ <span class="comment"><em>--</em></span>
+ <span class="comment"><em>-- Menu options</em></span>
+ <span class="comment"><em>--</em></span>
+ <b>type</b> <span class="symbol"><a name="ref_116_9">Menu_Option_Set</a></span> <b>is</b>
<b>record</b>
- <span class="symbol"><A NAME="ref_118_10">One_Valued</A></span> : Boolean;
- <span class="symbol"><A NAME="ref_119_10">Show_Descriptions</A></span> : Boolean;
- <span class="symbol"><A NAME="ref_120_10">Row_Major_Order</A></span> : Boolean;
- <span class="symbol"><A NAME="ref_121_10">Ignore_Case</A></span> : Boolean;
- <span class="symbol"><A NAME="ref_122_10">Show_Matches</A></span> : Boolean;
- <span class="symbol"><A NAME="ref_123_10">Non_Cyclic</A></span> : Boolean;
+ <span class="symbol"><a name="ref_118_10">One_Valued</a></span> : Boolean;
+ <span class="symbol"><a name="ref_119_10">Show_Descriptions</a></span> : Boolean;
+ <span class="symbol"><a name="ref_120_10">Row_Major_Order</a></span> : Boolean;
+ <span class="symbol"><a name="ref_121_10">Ignore_Case</a></span> : Boolean;
+ <span class="symbol"><a name="ref_122_10">Show_Matches</a></span> : Boolean;
+ <span class="symbol"><a name="ref_123_10">Non_Cyclic</a></span> : Boolean;
<b>end</b> <b>record</b>;
- <b>pragma</b> Convention (C_Pass_By_Copy, <A HREF="terminal_interface-curses-menus__ads.htm#ref_116_9">Menu_Option_Set</A>);
+ <b>pragma</b> Convention (C_Pass_By_Copy, <a href="terminal_interface-curses-menus__ads.htm#ref_116_9">Menu_Option_Set</a>);
- <b>for</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_116_9">Menu_Option_Set</A> <b>use</b>
+ <b>for</b> <a href="terminal_interface-curses-menus__ads.htm#ref_116_9">Menu_Option_Set</a> <b>use</b>
<b>record</b>
- <A HREF="terminal_interface-curses-menus__ads.htm#ref_118_10">One_Valued</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_257_4">O_ONEVALUE_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_258_4">O_ONEVALUE_Last</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#ref_119_10">Show_Descriptions</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_259_4">O_SHOWDESC_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_260_4">O_SHOWDESC_Last</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#ref_120_10">Row_Major_Order</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_261_4">O_ROWMAJOR_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_262_4">O_ROWMAJOR_Last</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_10">Ignore_Case</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_263_4">O_IGNORECASE_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_264_4">O_IGNORECASE_Last</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#ref_122_10">Show_Matches</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_265_4">O_SHOWMATCH_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_266_4">O_SHOWMATCH_Last</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#ref_123_10">Non_Cyclic</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_267_4">O_NONCYCLIC_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_268_4">O_NONCYCLIC_Last</A>;
+ <a href="terminal_interface-curses-menus__ads.htm#ref_118_10">One_Valued</a> <b>at</b> 0 <b>range</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_257_4">O_ONEVALUE_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_258_4">O_ONEVALUE_Last</a>;
+ <a href="terminal_interface-curses-menus__ads.htm#ref_119_10">Show_Descriptions</a> <b>at</b> 0 <b>range</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_259_4">O_SHOWDESC_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_260_4">O_SHOWDESC_Last</a>;
+ <a href="terminal_interface-curses-menus__ads.htm#ref_120_10">Row_Major_Order</a> <b>at</b> 0 <b>range</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_261_4">O_ROWMAJOR_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_262_4">O_ROWMAJOR_Last</a>;
+ <a href="terminal_interface-curses-menus__ads.htm#ref_121_10">Ignore_Case</a> <b>at</b> 0 <b>range</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_263_4">O_IGNORECASE_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_264_4">O_IGNORECASE_Last</a>;
+ <a href="terminal_interface-curses-menus__ads.htm#ref_122_10">Show_Matches</a> <b>at</b> 0 <b>range</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_265_4">O_SHOWMATCH_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_266_4">O_SHOWMATCH_Last</a>;
+ <a href="terminal_interface-curses-menus__ads.htm#ref_123_10">Non_Cyclic</a> <b>at</b> 0 <b>range</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_267_4">O_NONCYCLIC_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_268_4">O_NONCYCLIC_Last</a>;
<b>end</b> <b>record</b>;
<b>pragma</b> Warnings (Off);
- <b>for</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_116_9">Menu_Option_Set</A>'Size <b>use</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_269_4">Menu_Options_Size</A>;
+ <b>for</b> <a href="terminal_interface-curses-menus__ads.htm#ref_116_9">Menu_Option_Set</a>'Size <b>use</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_269_4">Menu_Options_Size</a>;
<b>pragma</b> Warnings (On);
- <b>function</b> <span class="symbol"><A NAME="ref_146_13" HREF="terminal_interface-curses-menus__adb.htm#ref_891_13">Default_Menu_Options</A></span> <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_116_9">Menu_Option_Set</A>;
- <span class="comment"><EM>-- Initial default options for a menu.</EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_146_13">Default_Menu_Options</A>);
- <span class="comment"><EM>--</EM></span>
- <span class="comment"><EM>-- Item options</EM></span>
- <span class="comment"><EM>--</EM></span>
- <b>type</b> <span class="symbol"><A NAME="ref_152_9">Item_Option_Set</A></span> <b>is</b>
+ <b>function</b> <span class="symbol"><a name="ref_146_13" href="terminal_interface-curses-menus__adb.htm#ref_891_13">Default_Menu_Options</a></span> <b>return</b> <a href="terminal_interface-curses-menus__ads.htm#ref_116_9">Menu_Option_Set</a>;
+ <span class="comment"><em>-- Initial default options for a menu.</em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-menus__ads.htm#ref_146_13">Default_Menu_Options</a>);
+ <span class="comment"><em>--</em></span>
+ <span class="comment"><em>-- Item options</em></span>
+ <span class="comment"><em>--</em></span>
+ <b>type</b> <span class="symbol"><a name="ref_152_9">Item_Option_Set</a></span> <b>is</b>
<b>record</b>
- <span class="symbol"><A NAME="ref_154_10">Selectable</A></span> : Boolean;
+ <span class="symbol"><a name="ref_154_10">Selectable</a></span> : Boolean;
<b>end</b> <b>record</b>;
- <b>pragma</b> Convention (C_Pass_By_Copy, <A HREF="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</A>);
+ <b>pragma</b> Convention (C_Pass_By_Copy, <a href="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</a>);
- <b>for</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</A> <b>use</b>
+ <b>for</b> <a href="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</a> <b>use</b>
<b>record</b>
- <A HREF="terminal_interface-curses-menus__ads.htm#ref_154_10">Selectable</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_273_4">O_SELECTABLE_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_274_4">O_SELECTABLE_Last</A>;
+ <a href="terminal_interface-curses-menus__ads.htm#ref_154_10">Selectable</a> <b>at</b> 0 <b>range</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_273_4">O_SELECTABLE_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_274_4">O_SELECTABLE_Last</a>;
<b>end</b> <b>record</b>;
<b>pragma</b> Warnings (Off);
- <b>for</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</A>'Size <b>use</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_275_4">Item_Options_Size</A>;
+ <b>for</b> <a href="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</a>'Size <b>use</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_275_4">Item_Options_Size</a>;
<b>pragma</b> Warnings (On);
- <b>function</b> <span class="symbol"><A NAME="ref_167_13" HREF="terminal_interface-curses-menus__adb.htm#ref_897_13">Default_Item_Options</A></span> <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</A>;
- <span class="comment"><EM>-- Initial default options for an item.</EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_167_13">Default_Item_Options</A>);
+ <b>function</b> <span class="symbol"><a name="ref_167_13" href="terminal_interface-curses-menus__adb.htm#ref_897_13">Default_Item_Options</a></span> <b>return</b> <a href="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</a>;
+ <span class="comment"><em>-- Initial default options for an item.</em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-menus__ads.htm#ref_167_13">Default_Item_Options</a>);
- <span class="comment"><EM>--</EM></span>
- <span class="comment"><EM>-- Item Array</EM></span>
- <span class="comment"><EM>--</EM></span>
- <b>type</b> Item_Array <b>is</b> <b>array</b> (Positive <b>range</b> &lt;&gt;) <b>of</b> <b>aliased</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>;
+ <span class="comment"><em>--</em></span>
+ <span class="comment"><em>-- Item Array</em></span>
+ <span class="comment"><em>--</em></span>
+ <b>type</b> Item_Array <b>is</b> <b>array</b> (Positive <b>range</b> &lt;&gt;) <b>of</b> <b>aliased</b> <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>;
<b>pragma</b> Convention (C, Item_Array);
- <b>type</b> <span class="symbol"><A NAME="ref_177_9">Item_Array_Access</A></span> <b>is</b> <b>access</b> Item_Array;
-
- <b>procedure</b> <span class="symbol"><A NAME="ref_179_14" HREF="terminal_interface-curses-menus__adb.htm#ref_874_14">Free</A></span> (<span class="symbol"><A NAME="ref_179_20" HREF="terminal_interface-curses-menus__adb.htm#ref_874_20">IA</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_177_9">Item_Array_Access</A>;
- <span class="symbol"><A NAME="ref_180_20" HREF="terminal_interface-curses-menus__adb.htm#ref_875_20">Free_Items</A></span> : Boolean := False);
- <span class="comment"><EM>-- Release the memory for an allocated item array</EM></span>
- <span class="comment"><EM>-- If Free_Items is True, call Delete() for all the items in</EM></span>
- <span class="comment"><EM>-- the array.</EM></span>
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/mitem_new.3x.html">mitem_new.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_1">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_190_13" HREF="terminal_interface-curses-menus__adb.htm#ref_76_13">Create</A></span> (<span class="symbol"><A NAME="ref_190_21" HREF="terminal_interface-curses-menus__adb.htm#ref_76_21">Name</A></span> : String;
- <span class="symbol"><A NAME="ref_191_21" HREF="terminal_interface-curses-menus__adb.htm#ref_77_21">Description</A></span> : String := "") <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_new.3x.html">new_item()</A></EM></span>
- <span class="comment"><EM>-- Not inlined.</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_2">|</A></EM></span>
- <b>function</b> New_Item (<span class="symbol"><A NAME="ref_196_23">Name</A></span> : String;
- <span class="symbol"><A NAME="ref_197_23">Description</A></span> : String := "") <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>
- <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_190_13">Create</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_new.3x.html">new_item()</A></EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_3">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_202_14" HREF="terminal_interface-curses-menus__adb.htm#ref_106_14">Delete</A></span> (<span class="symbol"><A NAME="ref_202_22" HREF="terminal_interface-curses-menus__adb.htm#ref_106_22">Itm</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_new.3x.html">free_item()</A></EM></span>
- <span class="comment"><EM>-- Resets Itm to Null_Item</EM></span>
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/mitem_value.3x.html">mitem_value.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_4">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_211_14" HREF="terminal_interface-curses-menus__adb.htm#ref_130_14">Set_Value</A></span> (<span class="symbol"><A NAME="ref_211_25" HREF="terminal_interface-curses-menus__adb.htm#ref_130_25">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>;
- <span class="symbol"><A NAME="ref_212_25" HREF="terminal_interface-curses-menus__adb.htm#ref_131_25">Value</A></span> : Boolean := True);
- <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_value.3x.html">set_item_value()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_211_14">Set_Value</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_5">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_217_13" HREF="terminal_interface-curses-menus__adb.htm#ref_141_13">Value</A></span> (<span class="symbol"><A NAME="ref_217_20" HREF="terminal_interface-curses-menus__adb.htm#ref_141_20">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>) <b>return</b> Boolean;
- <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_value.3x.html">item_value()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_217_13">Value</A>);
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/mitem_visible.3x.html">mitem_visible.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_6">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_226_13" HREF="terminal_interface-curses-menus__adb.htm#ref_154_13">Visible</A></span> (<span class="symbol"><A NAME="ref_226_22" HREF="terminal_interface-curses-menus__adb.htm#ref_154_22">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>) <b>return</b> Boolean;
- <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_visible.3x.html">item_visible()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_226_13">Visible</A>);
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/mitem_opts.3x.html">mitem_opts.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_7">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_235_14" HREF="terminal_interface-curses-menus__adb.htm#ref_166_14">Set_Options</A></span> (<span class="symbol"><A NAME="ref_235_27" HREF="terminal_interface-curses-menus__adb.htm#ref_166_27">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>;
- <span class="symbol"><A NAME="ref_236_27" HREF="terminal_interface-curses-menus__adb.htm#ref_167_27">Options</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_opts.3x.html">set_item_opts()</A></EM></span>
- <span class="comment"><EM>-- An overloaded Set_Options is defined later. Pragma Inline appears there</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_8">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_241_14" HREF="terminal_interface-curses-menus__adb.htm#ref_177_14">Switch_Options</A></span> (<span class="symbol"><A NAME="ref_241_30" HREF="terminal_interface-curses-menus__adb.htm#ref_177_30">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>;
- <span class="symbol"><A NAME="ref_242_30" HREF="terminal_interface-curses-menus__adb.htm#ref_178_30">Options</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</A>;
- <span class="symbol"><A NAME="ref_243_30" HREF="terminal_interface-curses-menus__adb.htm#ref_179_30">On</A></span> : Boolean := True);
- <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_opts.3x.html">item_opts_on()</A></EM></span>
- <span class="comment"><EM>-- AKA: item_opts_off()</EM></span>
- <span class="comment"><EM>-- An overloaded Switch_Options is defined later.</EM></span>
- <span class="comment"><EM>-- Pragma Inline appears there</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_9">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_250_14" HREF="terminal_interface-curses-menus__adb.htm#ref_196_14">Get_Options</A></span> (<span class="symbol"><A NAME="ref_250_27" HREF="terminal_interface-curses-menus__adb.htm#ref_196_27">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>;
- <span class="symbol"><A NAME="ref_251_27" HREF="terminal_interface-curses-menus__adb.htm#ref_197_27">Options</A></span> : <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_opts.3x.html">item_opts()</A></EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_10">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_255_13" HREF="terminal_interface-curses-menus__adb.htm#ref_206_13">Get_Options</A></span> (<span class="symbol"><A NAME="ref_255_26" HREF="terminal_interface-curses-menus__adb.htm#ref_206_26">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A> := <A HREF="terminal_interface-curses-menus__ads.htm#ref_58_4">Null_Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_opts.3x.html">item_opts()</A></EM></span>
- <span class="comment"><EM>-- An overloaded Get_Options is defined later. Pragma Inline appears there</EM></span>
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/mitem_name.3x.html">mitem_name.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_11">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_264_14" HREF="terminal_interface-curses-menus__adb.htm#ref_214_14">Name</A></span> (<span class="symbol"><A NAME="ref_264_20" HREF="terminal_interface-curses-menus__adb.htm#ref_214_20">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>;
- <span class="symbol"><A NAME="ref_265_20" HREF="terminal_interface-curses-menus__adb.htm#ref_215_20">Name</A></span> : <b>out</b> String);
- <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_name.3x.html">item_name()</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_267_14" HREF="terminal_interface-curses-menus__adb.htm#ref_223_13">Name</A></span> (<span class="symbol"><A NAME="ref_267_20" HREF="terminal_interface-curses-menus__adb.htm#ref_223_19">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>) <b>return</b> String;
- <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_name.3x.html">item_name()</A></EM></span>
- <span class="comment"><EM>-- Implemented as function</EM></span>
+ <b>type</b> <span class="symbol"><a name="ref_177_9">Item_Array_Access</a></span> <b>is</b> <b>access</b> Item_Array;
+
+ <b>procedure</b> <span class="symbol"><a name="ref_179_14" href="terminal_interface-curses-menus__adb.htm#ref_874_14">Free</a></span> (<span class="symbol"><a name="ref_179_20" href="terminal_interface-curses-menus__adb.htm#ref_874_20">IA</a></span> : <b>in</b> <b>out</b> <a href="terminal_interface-curses-menus__ads.htm#ref_177_9">Item_Array_Access</a>;
+ <span class="symbol"><a name="ref_180_20" href="terminal_interface-curses-menus__adb.htm#ref_875_20">Free_Items</a></span> : Boolean := False);
+ <span class="comment"><em>-- Release the memory for an allocated item array</em></span>
+ <span class="comment"><em>-- If Free_Items is True, call Delete() for all the items in</em></span>
+ <span class="comment"><em>-- the array.</em></span>
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/mitem_new.3x.html">mitem_new.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_1">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_190_13" href="terminal_interface-curses-menus__adb.htm#ref_76_13">Create</a></span> (<span class="symbol"><a name="ref_190_21" href="terminal_interface-curses-menus__adb.htm#ref_76_21">Name</a></span> : String;
+ <span class="symbol"><a name="ref_191_21" href="terminal_interface-curses-menus__adb.htm#ref_77_21">Description</a></span> : String := "") <b>return</b> <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/mitem_new.3x.html">new_item()</A></em></span>
+ <span class="comment"><em>-- Not inlined.</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_2">|</A></em></span>
+ <b>function</b> New_Item (<span class="symbol"><a name="ref_196_23">Name</a></span> : String;
+ <span class="symbol"><a name="ref_197_23">Description</a></span> : String := "") <b>return</b> <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>
+ <b>renames</b> <a href="terminal_interface-curses-menus__ads.htm#ref_190_13">Create</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/mitem_new.3x.html">new_item()</A></em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_3">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_202_14" href="terminal_interface-curses-menus__adb.htm#ref_106_14">Delete</a></span> (<span class="symbol"><a name="ref_202_22" href="terminal_interface-curses-menus__adb.htm#ref_106_22">Itm</a></span> : <b>in</b> <b>out</b> <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/mitem_new.3x.html">free_item()</A></em></span>
+ <span class="comment"><em>-- Resets Itm to Null_Item</em></span>
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/mitem_value.3x.html">mitem_value.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_4">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_211_14" href="terminal_interface-curses-menus__adb.htm#ref_130_14">Set_Value</a></span> (<span class="symbol"><a name="ref_211_25" href="terminal_interface-curses-menus__adb.htm#ref_130_25">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>;
+ <span class="symbol"><a name="ref_212_25" href="terminal_interface-curses-menus__adb.htm#ref_131_25">Value</a></span> : Boolean := True);
+ <span class="comment"><em>-- AKA: <A HREF="../man/mitem_value.3x.html">set_item_value()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-menus__ads.htm#ref_211_14">Set_Value</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_5">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_217_13" href="terminal_interface-curses-menus__adb.htm#ref_141_13">Value</a></span> (<span class="symbol"><a name="ref_217_20" href="terminal_interface-curses-menus__adb.htm#ref_141_20">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>) <b>return</b> Boolean;
+ <span class="comment"><em>-- AKA: <A HREF="../man/mitem_value.3x.html">item_value()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-menus__ads.htm#ref_217_13">Value</a>);
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/mitem_visible.3x.html">mitem_visible.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_6">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_226_13" href="terminal_interface-curses-menus__adb.htm#ref_154_13">Visible</a></span> (<span class="symbol"><a name="ref_226_22" href="terminal_interface-curses-menus__adb.htm#ref_154_22">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>) <b>return</b> Boolean;
+ <span class="comment"><em>-- AKA: <A HREF="../man/mitem_visible.3x.html">item_visible()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-menus__ads.htm#ref_226_13">Visible</a>);
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/mitem_opts.3x.html">mitem_opts.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_7">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_235_14" href="terminal_interface-curses-menus__adb.htm#ref_166_14">Set_Options</a></span> (<span class="symbol"><a name="ref_235_27" href="terminal_interface-curses-menus__adb.htm#ref_166_27">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>;
+ <span class="symbol"><a name="ref_236_27" href="terminal_interface-curses-menus__adb.htm#ref_167_27">Options</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/mitem_opts.3x.html">set_item_opts()</A></em></span>
+ <span class="comment"><em>-- An overloaded Set_Options is defined later. Pragma Inline appears there</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_8">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_241_14" href="terminal_interface-curses-menus__adb.htm#ref_177_14">Switch_Options</a></span> (<span class="symbol"><a name="ref_241_30" href="terminal_interface-curses-menus__adb.htm#ref_177_30">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>;
+ <span class="symbol"><a name="ref_242_30" href="terminal_interface-curses-menus__adb.htm#ref_178_30">Options</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</a>;
+ <span class="symbol"><a name="ref_243_30" href="terminal_interface-curses-menus__adb.htm#ref_179_30">On</a></span> : Boolean := True);
+ <span class="comment"><em>-- AKA: <A HREF="../man/mitem_opts.3x.html">item_opts_on()</A></em></span>
+ <span class="comment"><em>-- AKA: item_opts_off()</em></span>
+ <span class="comment"><em>-- An overloaded Switch_Options is defined later.</em></span>
+ <span class="comment"><em>-- Pragma Inline appears there</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_9">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_250_14" href="terminal_interface-curses-menus__adb.htm#ref_196_14">Get_Options</a></span> (<span class="symbol"><a name="ref_250_27" href="terminal_interface-curses-menus__adb.htm#ref_196_27">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>;
+ <span class="symbol"><a name="ref_251_27" href="terminal_interface-curses-menus__adb.htm#ref_197_27">Options</a></span> : <b>out</b> <a href="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/mitem_opts.3x.html">item_opts()</A></em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_10">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_255_13" href="terminal_interface-curses-menus__adb.htm#ref_206_13">Get_Options</a></span> (<span class="symbol"><a name="ref_255_26" href="terminal_interface-curses-menus__adb.htm#ref_206_26">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a> := <a href="terminal_interface-curses-menus__ads.htm#ref_58_4">Null_Item</a>) <b>return</b> <a href="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/mitem_opts.3x.html">item_opts()</A></em></span>
+ <span class="comment"><em>-- An overloaded Get_Options is defined later. Pragma Inline appears there</em></span>
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/mitem_name.3x.html">mitem_name.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_11">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_264_14" href="terminal_interface-curses-menus__adb.htm#ref_214_14">Name</a></span> (<span class="symbol"><a name="ref_264_20" href="terminal_interface-curses-menus__adb.htm#ref_214_20">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>;
+ <span class="symbol"><a name="ref_265_20" href="terminal_interface-curses-menus__adb.htm#ref_215_20">Name</a></span> : <b>out</b> String);
+ <span class="comment"><em>-- AKA: <A HREF="../man/mitem_name.3x.html">item_name()</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_267_14" href="terminal_interface-curses-menus__adb.htm#ref_223_13">Name</a></span> (<span class="symbol"><a name="ref_267_20" href="terminal_interface-curses-menus__adb.htm#ref_223_19">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>) <b>return</b> String;
+ <span class="comment"><em>-- AKA: <A HREF="../man/mitem_name.3x.html">item_name()</A></em></span>
+ <span class="comment"><em>-- Implemented as function</em></span>
<b>pragma</b> Inline (Name);
- <span class="comment"><EM>-- <A NAME="AFU_12">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_273_14" HREF="terminal_interface-curses-menus__adb.htm#ref_231_14">Description</A></span> (<span class="symbol"><A NAME="ref_273_27" HREF="terminal_interface-curses-menus__adb.htm#ref_231_27">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>;
- <span class="symbol"><A NAME="ref_274_27" HREF="terminal_interface-curses-menus__adb.htm#ref_232_27">Description</A></span> : <b>out</b> String);
- <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_name.3x.html">item_description();</A></EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_12">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_273_14" href="terminal_interface-curses-menus__adb.htm#ref_231_14">Description</a></span> (<span class="symbol"><a name="ref_273_27" href="terminal_interface-curses-menus__adb.htm#ref_231_27">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>;
+ <span class="symbol"><a name="ref_274_27" href="terminal_interface-curses-menus__adb.htm#ref_232_27">Description</a></span> : <b>out</b> String);
+ <span class="comment"><em>-- AKA: <A HREF="../man/mitem_name.3x.html">item_description();</A></em></span>
- <b>function</b> <span class="symbol"><A NAME="ref_277_14" HREF="terminal_interface-curses-menus__adb.htm#ref_240_13">Description</A></span> (<span class="symbol"><A NAME="ref_277_27" HREF="terminal_interface-curses-menus__adb.htm#ref_240_26">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>) <b>return</b> String;
- <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_name.3x.html">item_description();</A></EM></span>
- <span class="comment"><EM>-- Implemented as function</EM></span>
+ <b>function</b> <span class="symbol"><a name="ref_277_14" href="terminal_interface-curses-menus__adb.htm#ref_240_13">Description</a></span> (<span class="symbol"><a name="ref_277_27" href="terminal_interface-curses-menus__adb.htm#ref_240_26">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>) <b>return</b> String;
+ <span class="comment"><em>-- AKA: <A HREF="../man/mitem_name.3x.html">item_description();</A></em></span>
+ <span class="comment"><em>-- Implemented as function</em></span>
<b>pragma</b> Inline (Description);
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/mitem_current.3x.html">mitem_current.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_13">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_287_14" HREF="terminal_interface-curses-menus__adb.htm#ref_248_14">Set_Current</A></span> (<span class="symbol"><A NAME="ref_287_27" HREF="terminal_interface-curses-menus__adb.htm#ref_248_27">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_288_27" HREF="terminal_interface-curses-menus__adb.htm#ref_249_27">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_current.3x.html">set_current_item()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_287_14">Set_Current</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_14">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_293_13" HREF="terminal_interface-curses-menus__adb.htm#ref_259_13">Current</A></span> (<span class="symbol"><A NAME="ref_293_22" HREF="terminal_interface-curses-menus__adb.htm#ref_259_22">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_current.3x.html">current_item()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_293_13">Current</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_15">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_298_14" HREF="terminal_interface-curses-menus__adb.htm#ref_272_14">Set_Top_Row</A></span> (<span class="symbol"><A NAME="ref_298_27" HREF="terminal_interface-curses-menus__adb.htm#ref_272_27">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_299_27" HREF="terminal_interface-curses-menus__adb.htm#ref_273_27">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_current.3x.html">set_top_row()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_298_14">Set_Top_Row</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_16">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_304_13" HREF="terminal_interface-curses-menus__adb.htm#ref_283_13">Top_Row</A></span> (<span class="symbol"><A NAME="ref_304_22" HREF="terminal_interface-curses-menus__adb.htm#ref_283_22">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_current.3x.html">top_row()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_304_13">Top_Row</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_17">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_309_13" HREF="terminal_interface-curses-menus__adb.htm#ref_296_13">Get_Index</A></span> (<span class="symbol"><A NAME="ref_309_24" HREF="terminal_interface-curses-menus__adb.htm#ref_296_24">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>) <b>return</b> Positive;
- <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_current.3x.html">item_index()</A></EM></span>
- <span class="comment"><EM>-- Please note that in this binding we start the numbering of items</EM></span>
- <span class="comment"><EM>-- with 1. So this is number is one more than you get from the low</EM></span>
- <span class="comment"><EM>-- level call.</EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_309_13">Get_Index</A>);
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/menu_post.3x.html">menu_post.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_18">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_321_14" HREF="terminal_interface-curses-menus__adb.htm#ref_309_14">Post</A></span> (<span class="symbol"><A NAME="ref_321_20" HREF="terminal_interface-curses-menus__adb.htm#ref_309_20">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_322_20" HREF="terminal_interface-curses-menus__adb.htm#ref_310_20">Post</A></span> : Boolean := True);
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_post.3x.html">post_menu()</A></EM></span>
- <span class="comment"><EM>-- AKA: unpost_menu()</EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_321_14">Post</A>);
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/menu_opts.3x.html">menu_opts.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_19">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_332_14" HREF="terminal_interface-curses-menus__adb.htm#ref_325_14">Set_Options</A></span> (<span class="symbol"><A NAME="ref_332_27" HREF="terminal_interface-curses-menus__adb.htm#ref_325_27">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_333_27" HREF="terminal_interface-curses-menus__adb.htm#ref_326_27">Options</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_116_9">Menu_Option_Set</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_opts.3x.html">set_menu_opts()</A></EM></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/mitem_current.3x.html">mitem_current.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_13">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_287_14" href="terminal_interface-curses-menus__adb.htm#ref_248_14">Set_Current</a></span> (<span class="symbol"><a name="ref_287_27" href="terminal_interface-curses-menus__adb.htm#ref_248_27">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_288_27" href="terminal_interface-curses-menus__adb.htm#ref_249_27">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/mitem_current.3x.html">set_current_item()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-menus__ads.htm#ref_287_14">Set_Current</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_14">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_293_13" href="terminal_interface-curses-menus__adb.htm#ref_259_13">Current</a></span> (<span class="symbol"><a name="ref_293_22" href="terminal_interface-curses-menus__adb.htm#ref_259_22">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/mitem_current.3x.html">current_item()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-menus__ads.htm#ref_293_13">Current</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_15">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_298_14" href="terminal_interface-curses-menus__adb.htm#ref_272_14">Set_Top_Row</a></span> (<span class="symbol"><a name="ref_298_27" href="terminal_interface-curses-menus__adb.htm#ref_272_27">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_299_27" href="terminal_interface-curses-menus__adb.htm#ref_273_27">Line</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/mitem_current.3x.html">set_top_row()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-menus__ads.htm#ref_298_14">Set_Top_Row</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_16">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_304_13" href="terminal_interface-curses-menus__adb.htm#ref_283_13">Top_Row</a></span> (<span class="symbol"><a name="ref_304_22" href="terminal_interface-curses-menus__adb.htm#ref_283_22">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/mitem_current.3x.html">top_row()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-menus__ads.htm#ref_304_13">Top_Row</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_17">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_309_13" href="terminal_interface-curses-menus__adb.htm#ref_296_13">Get_Index</a></span> (<span class="symbol"><a name="ref_309_24" href="terminal_interface-curses-menus__adb.htm#ref_296_24">Itm</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>) <b>return</b> Positive;
+ <span class="comment"><em>-- AKA: <A HREF="../man/mitem_current.3x.html">item_index()</A></em></span>
+ <span class="comment"><em>-- Please note that in this binding we start the numbering of items</em></span>
+ <span class="comment"><em>-- with 1. So this is number is one more than you get from the low</em></span>
+ <span class="comment"><em>-- level call.</em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-menus__ads.htm#ref_309_13">Get_Index</a>);
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/menu_post.3x.html">menu_post.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_18">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_321_14" href="terminal_interface-curses-menus__adb.htm#ref_309_14">Post</a></span> (<span class="symbol"><a name="ref_321_20" href="terminal_interface-curses-menus__adb.htm#ref_309_20">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_322_20" href="terminal_interface-curses-menus__adb.htm#ref_310_20">Post</a></span> : Boolean := True);
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_post.3x.html">post_menu()</A></em></span>
+ <span class="comment"><em>-- AKA: unpost_menu()</em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-menus__ads.htm#ref_321_14">Post</a>);
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/menu_opts.3x.html">menu_opts.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_19">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_332_14" href="terminal_interface-curses-menus__adb.htm#ref_325_14">Set_Options</a></span> (<span class="symbol"><a name="ref_332_27" href="terminal_interface-curses-menus__adb.htm#ref_325_27">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_333_27" href="terminal_interface-curses-menus__adb.htm#ref_326_27">Options</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_116_9">Menu_Option_Set</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_opts.3x.html">set_menu_opts()</A></em></span>
<b>pragma</b> Inline (Set_Options);
- <span class="comment"><EM>-- <A NAME="AFU_20">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_338_14" HREF="terminal_interface-curses-menus__adb.htm#ref_336_14">Switch_Options</A></span> (<span class="symbol"><A NAME="ref_338_30" HREF="terminal_interface-curses-menus__adb.htm#ref_336_30">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_339_30" HREF="terminal_interface-curses-menus__adb.htm#ref_337_30">Options</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_116_9">Menu_Option_Set</A>;
- <span class="symbol"><A NAME="ref_340_30" HREF="terminal_interface-curses-menus__adb.htm#ref_338_30">On</A></span> : Boolean := True);
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_opts.3x.html">menu_opts_on()</A></EM></span>
- <span class="comment"><EM>-- AKA: menu_opts_off()</EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_20">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_338_14" href="terminal_interface-curses-menus__adb.htm#ref_336_14">Switch_Options</a></span> (<span class="symbol"><a name="ref_338_30" href="terminal_interface-curses-menus__adb.htm#ref_336_30">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_339_30" href="terminal_interface-curses-menus__adb.htm#ref_337_30">Options</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_116_9">Menu_Option_Set</a>;
+ <span class="symbol"><a name="ref_340_30" href="terminal_interface-curses-menus__adb.htm#ref_338_30">On</a></span> : Boolean := True);
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_opts.3x.html">menu_opts_on()</A></em></span>
+ <span class="comment"><em>-- AKA: menu_opts_off()</em></span>
<b>pragma</b> Inline (Switch_Options);
- <span class="comment"><EM>-- <A NAME="AFU_21">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_346_14" HREF="terminal_interface-curses-menus__adb.htm#ref_355_14">Get_Options</A></span> (<span class="symbol"><A NAME="ref_346_27" HREF="terminal_interface-curses-menus__adb.htm#ref_355_27">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_347_27" HREF="terminal_interface-curses-menus__adb.htm#ref_356_27">Options</A></span> : <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_116_9">Menu_Option_Set</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_opts.3x.html">menu_opts()</A></EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_21">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_346_14" href="terminal_interface-curses-menus__adb.htm#ref_355_14">Get_Options</a></span> (<span class="symbol"><a name="ref_346_27" href="terminal_interface-curses-menus__adb.htm#ref_355_27">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_347_27" href="terminal_interface-curses-menus__adb.htm#ref_356_27">Options</a></span> : <b>out</b> <a href="terminal_interface-curses-menus__ads.htm#ref_116_9">Menu_Option_Set</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_opts.3x.html">menu_opts()</A></em></span>
- <span class="comment"><EM>-- <A NAME="AFU_22">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_351_13" HREF="terminal_interface-curses-menus__adb.htm#ref_365_13">Get_Options</A></span> (<span class="symbol"><A NAME="ref_351_26" HREF="terminal_interface-curses-menus__adb.htm#ref_365_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A> := <A HREF="terminal_interface-curses-menus__ads.htm#ref_59_4">Null_Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_116_9">Menu_Option_Set</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_opts.3x.html">menu_opts()</A></EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_22">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_351_13" href="terminal_interface-curses-menus__adb.htm#ref_365_13">Get_Options</a></span> (<span class="symbol"><a name="ref_351_26" href="terminal_interface-curses-menus__adb.htm#ref_365_26">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a> := <a href="terminal_interface-curses-menus__ads.htm#ref_59_4">Null_Menu</a>) <b>return</b> <a href="terminal_interface-curses-menus__ads.htm#ref_116_9">Menu_Option_Set</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_opts.3x.html">menu_opts()</A></em></span>
<b>pragma</b> Inline (Get_Options);
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/menu_win.3x.html">menu_win.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_23">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_360_14" HREF="terminal_interface-curses-menus__adb.htm#ref_373_14">Set_Window</A></span> (<span class="symbol"><A NAME="ref_360_26" HREF="terminal_interface-curses-menus__adb.htm#ref_373_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_361_26" HREF="terminal_interface-curses-menus__adb.htm#ref_374_26">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_win.3x.html">set_menu_win()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_360_14">Set_Window</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_24">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_366_13" HREF="terminal_interface-curses-menus__adb.htm#ref_384_13">Get_Window</A></span> (<span class="symbol"><A NAME="ref_366_25" HREF="terminal_interface-curses-menus__adb.htm#ref_384_25">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_win.3x.html">menu_win()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_366_13">Get_Window</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_25">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_371_14" HREF="terminal_interface-curses-menus__adb.htm#ref_394_14">Set_Sub_Window</A></span> (<span class="symbol"><A NAME="ref_371_30" HREF="terminal_interface-curses-menus__adb.htm#ref_394_30">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_372_30" HREF="terminal_interface-curses-menus__adb.htm#ref_395_30">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_win.3x.html">set_menu_sub()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_371_14">Set_Sub_Window</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_26">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_377_13" HREF="terminal_interface-curses-menus__adb.htm#ref_405_13">Get_Sub_Window</A></span> (<span class="symbol"><A NAME="ref_377_29" HREF="terminal_interface-curses-menus__adb.htm#ref_405_29">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_win.3x.html">menu_sub()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_377_13">Get_Sub_Window</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_27">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_382_14" HREF="terminal_interface-curses-menus__adb.htm#ref_415_14">Scale</A></span> (<span class="symbol"><A NAME="ref_382_21" HREF="terminal_interface-curses-menus__adb.htm#ref_415_21">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_383_21" HREF="terminal_interface-curses-menus__adb.htm#ref_416_21">Lines</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</A>;
- <span class="symbol"><A NAME="ref_384_21" HREF="terminal_interface-curses-menus__adb.htm#ref_417_21">Columns</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_win.3x.html">scale_menu()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_382_14">Scale</A>);
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/menu_cursor.3x.html">menu_cursor.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_28">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_393_14" HREF="terminal_interface-curses-menus__adb.htm#ref_431_14">Position_Cursor</A></span> (<span class="symbol"><A NAME="ref_393_31" HREF="terminal_interface-curses-menus__adb.htm#ref_431_31">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_cursor.3x.html">pos_menu_cursor()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_393_14">Position_Cursor</A>);
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/menu_mark.3x.html">menu_mark.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_29">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_402_14" HREF="terminal_interface-curses-menus__adb.htm#ref_441_14">Set_Mark</A></span> (<span class="symbol"><A NAME="ref_402_24" HREF="terminal_interface-curses-menus__adb.htm#ref_441_24">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_403_24" HREF="terminal_interface-curses-menus__adb.htm#ref_442_24">Mark</A></span> : String);
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_mark.3x.html">set_menu_mark()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_402_14">Set_Mark</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_30">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_408_14" HREF="terminal_interface-curses-menus__adb.htm#ref_456_14">Mark</A></span> (<span class="symbol"><A NAME="ref_408_20" HREF="terminal_interface-curses-menus__adb.htm#ref_456_20">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_409_20" HREF="terminal_interface-curses-menus__adb.htm#ref_457_20">Mark</A></span> : <b>out</b> String);
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_mark.3x.html">menu_mark()</A></EM></span>
-
- <b>function</b> <span class="symbol"><A NAME="ref_412_14" HREF="terminal_interface-curses-menus__adb.htm#ref_465_13">Mark</A></span> (<span class="symbol"><A NAME="ref_412_20" HREF="terminal_interface-curses-menus__adb.htm#ref_465_19">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> String;
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_mark.3x.html">menu_mark()</A></EM></span>
- <span class="comment"><EM>-- Implemented as function</EM></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/menu_win.3x.html">menu_win.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_23">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_360_14" href="terminal_interface-curses-menus__adb.htm#ref_373_14">Set_Window</a></span> (<span class="symbol"><a name="ref_360_26" href="terminal_interface-curses-menus__adb.htm#ref_373_26">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_361_26" href="terminal_interface-curses-menus__adb.htm#ref_374_26">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_win.3x.html">set_menu_win()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-menus__ads.htm#ref_360_14">Set_Window</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_24">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_366_13" href="terminal_interface-curses-menus__adb.htm#ref_384_13">Get_Window</a></span> (<span class="symbol"><a name="ref_366_25" href="terminal_interface-curses-menus__adb.htm#ref_384_25">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_win.3x.html">menu_win()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-menus__ads.htm#ref_366_13">Get_Window</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_25">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_371_14" href="terminal_interface-curses-menus__adb.htm#ref_394_14">Set_Sub_Window</a></span> (<span class="symbol"><a name="ref_371_30" href="terminal_interface-curses-menus__adb.htm#ref_394_30">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_372_30" href="terminal_interface-curses-menus__adb.htm#ref_395_30">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_win.3x.html">set_menu_sub()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-menus__ads.htm#ref_371_14">Set_Sub_Window</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_26">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_377_13" href="terminal_interface-curses-menus__adb.htm#ref_405_13">Get_Sub_Window</a></span> (<span class="symbol"><a name="ref_377_29" href="terminal_interface-curses-menus__adb.htm#ref_405_29">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_win.3x.html">menu_sub()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-menus__ads.htm#ref_377_13">Get_Sub_Window</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_27">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_382_14" href="terminal_interface-curses-menus__adb.htm#ref_415_14">Scale</a></span> (<span class="symbol"><a name="ref_382_21" href="terminal_interface-curses-menus__adb.htm#ref_415_21">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_383_21" href="terminal_interface-curses-menus__adb.htm#ref_416_21">Lines</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</a>;
+ <span class="symbol"><a name="ref_384_21" href="terminal_interface-curses-menus__adb.htm#ref_417_21">Columns</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_win.3x.html">scale_menu()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-menus__ads.htm#ref_382_14">Scale</a>);
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/menu_cursor.3x.html">menu_cursor.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_28">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_393_14" href="terminal_interface-curses-menus__adb.htm#ref_431_14">Position_Cursor</a></span> (<span class="symbol"><a name="ref_393_31" href="terminal_interface-curses-menus__adb.htm#ref_431_31">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_cursor.3x.html">pos_menu_cursor()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-menus__ads.htm#ref_393_14">Position_Cursor</a>);
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/menu_mark.3x.html">menu_mark.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_29">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_402_14" href="terminal_interface-curses-menus__adb.htm#ref_441_14">Set_Mark</a></span> (<span class="symbol"><a name="ref_402_24" href="terminal_interface-curses-menus__adb.htm#ref_441_24">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_403_24" href="terminal_interface-curses-menus__adb.htm#ref_442_24">Mark</a></span> : String);
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_mark.3x.html">set_menu_mark()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-menus__ads.htm#ref_402_14">Set_Mark</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_30">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_408_14" href="terminal_interface-curses-menus__adb.htm#ref_456_14">Mark</a></span> (<span class="symbol"><a name="ref_408_20" href="terminal_interface-curses-menus__adb.htm#ref_456_20">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_409_20" href="terminal_interface-curses-menus__adb.htm#ref_457_20">Mark</a></span> : <b>out</b> String);
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_mark.3x.html">menu_mark()</A></em></span>
+
+ <b>function</b> <span class="symbol"><a name="ref_412_14" href="terminal_interface-curses-menus__adb.htm#ref_465_13">Mark</a></span> (<span class="symbol"><a name="ref_412_20" href="terminal_interface-curses-menus__adb.htm#ref_465_19">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> String;
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_mark.3x.html">menu_mark()</A></em></span>
+ <span class="comment"><em>-- Implemented as function</em></span>
<b>pragma</b> Inline (Mark);
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/menu_attributes.3x.html">menu_attributes.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_31">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_422_14" HREF="terminal_interface-curses-menus__adb.htm#ref_474_14">Set_Foreground</A></span>
- (<span class="symbol"><A NAME="ref_423_7" HREF="terminal_interface-curses-menus__adb.htm#ref_475_7">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_424_7" HREF="terminal_interface-curses-menus__adb.htm#ref_476_7">Fore</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</A>;
- <span class="symbol"><A NAME="ref_425_7" HREF="terminal_interface-curses-menus__adb.htm#ref_477_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>'First);
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">set_menu_fore()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_422_14">Set_Foreground</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_32">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_430_14" HREF="terminal_interface-curses-menus__adb.htm#ref_490_14">Foreground</A></span> (<span class="symbol"><A NAME="ref_430_26" HREF="terminal_interface-curses-menus__adb.htm#ref_490_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_431_26" HREF="terminal_interface-curses-menus__adb.htm#ref_491_26">Fore</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">menu_fore()</A></EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_33">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_435_14" HREF="terminal_interface-curses-menus__adb.htm#ref_499_14">Foreground</A></span> (<span class="symbol"><A NAME="ref_435_26" HREF="terminal_interface-curses-menus__adb.htm#ref_499_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_436_26" HREF="terminal_interface-curses-menus__adb.htm#ref_500_26">Fore</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A>;
- <span class="symbol"><A NAME="ref_437_26" HREF="terminal_interface-curses-menus__adb.htm#ref_501_26">Color</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">menu_fore()</A></EM></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/menu_attributes.3x.html">menu_attributes.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_31">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_422_14" href="terminal_interface-curses-menus__adb.htm#ref_474_14">Set_Foreground</a></span>
+ (<span class="symbol"><a name="ref_423_7" href="terminal_interface-curses-menus__adb.htm#ref_475_7">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_424_7" href="terminal_interface-curses-menus__adb.htm#ref_476_7">Fore</a></span> : <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a> := <a href="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</a>;
+ <span class="symbol"><a name="ref_425_7" href="terminal_interface-curses-menus__adb.htm#ref_477_7">Color</a></span> : <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a> := <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>'First);
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_attributes.3x.html">set_menu_fore()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-menus__ads.htm#ref_422_14">Set_Foreground</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_32">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_430_14" href="terminal_interface-curses-menus__adb.htm#ref_490_14">Foreground</a></span> (<span class="symbol"><a name="ref_430_26" href="terminal_interface-curses-menus__adb.htm#ref_490_26">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_431_26" href="terminal_interface-curses-menus__adb.htm#ref_491_26">Fore</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_attributes.3x.html">menu_fore()</A></em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_33">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_435_14" href="terminal_interface-curses-menus__adb.htm#ref_499_14">Foreground</a></span> (<span class="symbol"><a name="ref_435_26" href="terminal_interface-curses-menus__adb.htm#ref_499_26">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_436_26" href="terminal_interface-curses-menus__adb.htm#ref_500_26">Fore</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a>;
+ <span class="symbol"><a name="ref_437_26" href="terminal_interface-curses-menus__adb.htm#ref_501_26">Color</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_attributes.3x.html">menu_fore()</A></em></span>
<b>pragma</b> Inline (Foreground);
- <span class="comment"><EM>-- <A NAME="AFU_34">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_442_14" HREF="terminal_interface-curses-menus__adb.htm#ref_510_14">Set_Background</A></span>
- (<span class="symbol"><A NAME="ref_443_7" HREF="terminal_interface-curses-menus__adb.htm#ref_511_7">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_444_7" HREF="terminal_interface-curses-menus__adb.htm#ref_512_7">Back</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</A>;
- <span class="symbol"><A NAME="ref_445_7" HREF="terminal_interface-curses-menus__adb.htm#ref_513_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>'First);
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">set_menu_back()</A></EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_34">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_442_14" href="terminal_interface-curses-menus__adb.htm#ref_510_14">Set_Background</a></span>
+ (<span class="symbol"><a name="ref_443_7" href="terminal_interface-curses-menus__adb.htm#ref_511_7">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_444_7" href="terminal_interface-curses-menus__adb.htm#ref_512_7">Back</a></span> : <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a> := <a href="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</a>;
+ <span class="symbol"><a name="ref_445_7" href="terminal_interface-curses-menus__adb.htm#ref_513_7">Color</a></span> : <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a> := <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>'First);
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_attributes.3x.html">set_menu_back()</A></em></span>
<b>pragma</b> Inline (Set_Background);
- <span class="comment"><EM>-- <A NAME="AFU_35">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_450_14" HREF="terminal_interface-curses-menus__adb.htm#ref_526_14">Background</A></span> (<span class="symbol"><A NAME="ref_450_26" HREF="terminal_interface-curses-menus__adb.htm#ref_526_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_451_26" HREF="terminal_interface-curses-menus__adb.htm#ref_527_26">Back</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">menu_back()</A></EM></span>
- <span class="comment"><EM>-- <A NAME="AFU_36">|</A></EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_35">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_450_14" href="terminal_interface-curses-menus__adb.htm#ref_526_14">Background</a></span> (<span class="symbol"><a name="ref_450_26" href="terminal_interface-curses-menus__adb.htm#ref_526_26">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_451_26" href="terminal_interface-curses-menus__adb.htm#ref_527_26">Back</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_attributes.3x.html">menu_back()</A></em></span>
+ <span class="comment"><em>-- <A NAME="AFU_36">|</A></em></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_455_14" HREF="terminal_interface-curses-menus__adb.htm#ref_535_14">Background</A></span> (<span class="symbol"><A NAME="ref_455_26" HREF="terminal_interface-curses-menus__adb.htm#ref_535_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_456_26" HREF="terminal_interface-curses-menus__adb.htm#ref_536_26">Back</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A>;
- <span class="symbol"><A NAME="ref_457_26" HREF="terminal_interface-curses-menus__adb.htm#ref_537_26">Color</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">menu_back()</A></EM></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_455_14" href="terminal_interface-curses-menus__adb.htm#ref_535_14">Background</a></span> (<span class="symbol"><a name="ref_455_26" href="terminal_interface-curses-menus__adb.htm#ref_535_26">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_456_26" href="terminal_interface-curses-menus__adb.htm#ref_536_26">Back</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a>;
+ <span class="symbol"><a name="ref_457_26" href="terminal_interface-curses-menus__adb.htm#ref_537_26">Color</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_attributes.3x.html">menu_back()</A></em></span>
<b>pragma</b> Inline (Background);
- <span class="comment"><EM>-- <A NAME="AFU_37">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_462_14" HREF="terminal_interface-curses-menus__adb.htm#ref_546_14">Set_Grey</A></span>
- (<span class="symbol"><A NAME="ref_463_7" HREF="terminal_interface-curses-menus__adb.htm#ref_546_24">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_464_7" HREF="terminal_interface-curses-menus__adb.htm#ref_547_24">Grey</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</A>;
- <span class="symbol"><A NAME="ref_465_7" HREF="terminal_interface-curses-menus__adb.htm#ref_548_24">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>'First);
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">set_menu_grey()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_462_14">Set_Grey</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_38">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_470_14" HREF="terminal_interface-curses-menus__adb.htm#ref_562_14">Grey</A></span> (<span class="symbol"><A NAME="ref_470_20" HREF="terminal_interface-curses-menus__adb.htm#ref_562_20">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_471_20" HREF="terminal_interface-curses-menus__adb.htm#ref_563_20">Grey</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">menu_grey()</A></EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_39">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_475_14" HREF="terminal_interface-curses-menus__adb.htm#ref_571_14">Grey</A></span>
- (<span class="symbol"><A NAME="ref_476_7" HREF="terminal_interface-curses-menus__adb.htm#ref_571_20">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_477_7" HREF="terminal_interface-curses-menus__adb.htm#ref_572_20">Grey</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A>;
- <span class="symbol"><A NAME="ref_478_7" HREF="terminal_interface-curses-menus__adb.htm#ref_573_20">Color</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">menu_grey()</A></EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_37">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_462_14" href="terminal_interface-curses-menus__adb.htm#ref_546_14">Set_Grey</a></span>
+ (<span class="symbol"><a name="ref_463_7" href="terminal_interface-curses-menus__adb.htm#ref_546_24">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_464_7" href="terminal_interface-curses-menus__adb.htm#ref_547_24">Grey</a></span> : <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a> := <a href="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</a>;
+ <span class="symbol"><a name="ref_465_7" href="terminal_interface-curses-menus__adb.htm#ref_548_24">Color</a></span> : <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a> := <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>'First);
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_attributes.3x.html">set_menu_grey()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-menus__ads.htm#ref_462_14">Set_Grey</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_38">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_470_14" href="terminal_interface-curses-menus__adb.htm#ref_562_14">Grey</a></span> (<span class="symbol"><a name="ref_470_20" href="terminal_interface-curses-menus__adb.htm#ref_562_20">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_471_20" href="terminal_interface-curses-menus__adb.htm#ref_563_20">Grey</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_attributes.3x.html">menu_grey()</A></em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_39">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_475_14" href="terminal_interface-curses-menus__adb.htm#ref_571_14">Grey</a></span>
+ (<span class="symbol"><a name="ref_476_7" href="terminal_interface-curses-menus__adb.htm#ref_571_20">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_477_7" href="terminal_interface-curses-menus__adb.htm#ref_572_20">Grey</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a>;
+ <span class="symbol"><a name="ref_478_7" href="terminal_interface-curses-menus__adb.htm#ref_573_20">Color</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_attributes.3x.html">menu_grey()</A></em></span>
<b>pragma</b> Inline (Grey);
- <span class="comment"><EM>-- <A NAME="AFU_40">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_483_14" HREF="terminal_interface-curses-menus__adb.htm#ref_582_14">Set_Pad_Character</A></span> (<span class="symbol"><A NAME="ref_483_33" HREF="terminal_interface-curses-menus__adb.htm#ref_582_33">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_484_33" HREF="terminal_interface-curses-menus__adb.htm#ref_583_33">Pad</A></span> : Character := Space);
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">set_menu_pad()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_483_14">Set_Pad_Character</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_41">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_489_14" HREF="terminal_interface-curses-menus__adb.htm#ref_593_14">Pad_Character</A></span> (<span class="symbol"><A NAME="ref_489_29" HREF="terminal_interface-curses-menus__adb.htm#ref_593_29">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_490_29" HREF="terminal_interface-curses-menus__adb.htm#ref_594_29">Pad</A></span> : <b>out</b> Character);
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">menu_pad()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_489_14">Pad_Character</A>);
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/menu_spacing.3x.html">menu_spacing.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_42">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_499_14" HREF="terminal_interface-curses-menus__adb.htm#ref_602_14">Set_Spacing</A></span> (<span class="symbol"><A NAME="ref_499_27" HREF="terminal_interface-curses-menus__adb.htm#ref_602_27">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_500_27" HREF="terminal_interface-curses-menus__adb.htm#ref_603_27">Descr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A> := 0;
- <span class="symbol"><A NAME="ref_501_27" HREF="terminal_interface-curses-menus__adb.htm#ref_604_27">Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A> := 0;
- <span class="symbol"><A NAME="ref_502_27" HREF="terminal_interface-curses-menus__adb.htm#ref_605_27">Col</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A> := 0);
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_spacing.3x.html">set_menu_spacing()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_499_14">Set_Spacing</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_43">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_507_14" HREF="terminal_interface-curses-menus__adb.htm#ref_618_14">Spacing</A></span> (<span class="symbol"><A NAME="ref_507_23" HREF="terminal_interface-curses-menus__adb.htm#ref_618_23">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_508_23" HREF="terminal_interface-curses-menus__adb.htm#ref_619_23">Descr</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_509_23" HREF="terminal_interface-curses-menus__adb.htm#ref_620_23">Row</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_510_23" HREF="terminal_interface-curses-menus__adb.htm#ref_621_23">Col</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_spacing.3x.html">menu_spacing()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_507_14">Spacing</A>);
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/menu_pattern.3x.html">menu_pattern.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_44">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_519_13" HREF="terminal_interface-curses-menus__adb.htm#ref_639_13">Set_Pattern</A></span> (<span class="symbol"><A NAME="ref_519_26" HREF="terminal_interface-curses-menus__adb.htm#ref_639_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_520_26" HREF="terminal_interface-curses-menus__adb.htm#ref_640_26">Text</A></span> : String) <b>return</b> Boolean;
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_pattern.3x.html">set_menu_pattern()</A></EM></span>
- <span class="comment"><EM>-- Return TRUE if the pattern matches, FALSE otherwise</EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_519_13">Set_Pattern</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_45">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_526_14" HREF="terminal_interface-curses-menus__adb.htm#ref_662_14">Pattern</A></span> (<span class="symbol"><A NAME="ref_526_23" HREF="terminal_interface-curses-menus__adb.htm#ref_662_23">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_527_23" HREF="terminal_interface-curses-menus__adb.htm#ref_663_23">Text</A></span> : <b>out</b> String);
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_pattern.3x.html">menu_pattern()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_526_14">Pattern</A>);
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/menu_format.3x.html">menu_format.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_46">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_536_14" HREF="terminal_interface-curses-menus__adb.htm#ref_671_14">Set_Format</A></span> (<span class="symbol"><A NAME="ref_536_26" HREF="terminal_interface-curses-menus__adb.htm#ref_671_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_537_26" HREF="terminal_interface-curses-menus__adb.htm#ref_672_26">Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</A>;
- <span class="symbol"><A NAME="ref_538_26" HREF="terminal_interface-curses-menus__adb.htm#ref_673_26">Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</A>);
- <span class="comment"><EM>-- Not implemented: 0 argument for Lines or Columns;</EM></span>
- <span class="comment"><EM>-- instead use Format to get the current sizes</EM></span>
- <span class="comment"><EM>-- The default format is 16 rows, 1 column. Calling</EM></span>
- <span class="comment"><EM>-- set_menu_format with a null menu pointer will change this</EM></span>
- <span class="comment"><EM>-- default. A zero row or column argument to set_menu_format</EM></span>
- <span class="comment"><EM>-- is interpreted as a request not to change the current</EM></span>
- <span class="comment"><EM>-- value.</EM></span>
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_format.3x.html">set_menu_format()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_536_14">Set_Format</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_47">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_550_14" HREF="terminal_interface-curses-menus__adb.htm#ref_687_14">Format</A></span> (<span class="symbol"><A NAME="ref_550_22" HREF="terminal_interface-curses-menus__adb.htm#ref_687_22">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_551_22" HREF="terminal_interface-curses-menus__adb.htm#ref_688_22">Lines</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</A>;
- <span class="symbol"><A NAME="ref_552_22" HREF="terminal_interface-curses-menus__adb.htm#ref_689_22">Columns</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_format.3x.html">menu_format()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_550_14">Format</A>);
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/menu_hook.3x.html">menu_hook.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <b>type</b> <span class="symbol"><A NAME="ref_560_9">Menu_Hook_Function</A></span> <b>is</b> <b>access</b> <b>procedure</b> (<span class="symbol"><A NAME="ref_560_49" HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>);
- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_48">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_564_14" HREF="terminal_interface-curses-menus__adb.htm#ref_703_14">Set_Item_Init_Hook</A></span> (<span class="symbol"><A NAME="ref_564_34" HREF="terminal_interface-curses-menus__adb.htm#ref_703_34">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_565_34" HREF="terminal_interface-curses-menus__adb.htm#ref_704_34">Proc</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">set_item_init()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_564_14">Set_Item_Init_Hook</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_49">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_570_14" HREF="terminal_interface-curses-menus__adb.htm#ref_714_14">Set_Item_Term_Hook</A></span> (<span class="symbol"><A NAME="ref_570_34" HREF="terminal_interface-curses-menus__adb.htm#ref_714_34">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_571_34" HREF="terminal_interface-curses-menus__adb.htm#ref_715_34">Proc</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">set_item_term()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_570_14">Set_Item_Term_Hook</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_50">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_576_14" HREF="terminal_interface-curses-menus__adb.htm#ref_725_14">Set_Menu_Init_Hook</A></span> (<span class="symbol"><A NAME="ref_576_34" HREF="terminal_interface-curses-menus__adb.htm#ref_725_34">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_577_34" HREF="terminal_interface-curses-menus__adb.htm#ref_726_34">Proc</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">set_menu_init()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_576_14">Set_Menu_Init_Hook</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_51">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_582_14" HREF="terminal_interface-curses-menus__adb.htm#ref_736_14">Set_Menu_Term_Hook</A></span> (<span class="symbol"><A NAME="ref_582_34" HREF="terminal_interface-curses-menus__adb.htm#ref_736_34">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_583_34" HREF="terminal_interface-curses-menus__adb.htm#ref_737_34">Proc</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">set_menu_term()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_582_14">Set_Menu_Term_Hook</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_52">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_588_13" HREF="terminal_interface-curses-menus__adb.htm#ref_747_13">Get_Item_Init_Hook</A></span> (<span class="symbol"><A NAME="ref_588_33" HREF="terminal_interface-curses-menus__adb.htm#ref_747_33">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">item_init()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_588_13">Get_Item_Init_Hook</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_53">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_593_13" HREF="terminal_interface-curses-menus__adb.htm#ref_755_13">Get_Item_Term_Hook</A></span> (<span class="symbol"><A NAME="ref_593_33" HREF="terminal_interface-curses-menus__adb.htm#ref_755_33">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">item_term()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_593_13">Get_Item_Term_Hook</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_54">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_598_13" HREF="terminal_interface-curses-menus__adb.htm#ref_763_13">Get_Menu_Init_Hook</A></span> (<span class="symbol"><A NAME="ref_598_33" HREF="terminal_interface-curses-menus__adb.htm#ref_763_33">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">menu_init()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_598_13">Get_Menu_Init_Hook</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_55">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_603_13" HREF="terminal_interface-curses-menus__adb.htm#ref_771_13">Get_Menu_Term_Hook</A></span> (<span class="symbol"><A NAME="ref_603_33" HREF="terminal_interface-curses-menus__adb.htm#ref_771_33">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">menu_term()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_603_13">Get_Menu_Term_Hook</A>);
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/menu_items.3x.html">menu_items.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_56">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_612_14" HREF="terminal_interface-curses-menus__adb.htm#ref_779_14">Redefine</A></span> (<span class="symbol"><A NAME="ref_612_24" HREF="terminal_interface-curses-menus__adb.htm#ref_779_24">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_613_24" HREF="terminal_interface-curses-menus__adb.htm#ref_780_24">Items</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_177_9">Item_Array_Access</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_items.3x.html">set_menu_items()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_612_14">Redefine</A>);
-
- <b>procedure</b> <span class="symbol"><A NAME="ref_617_14">Set_Items</A></span> (<span class="symbol"><A NAME="ref_617_25">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_618_25">Items</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_177_9">Item_Array_Access</A>) <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_612_14">Redefine</A>;
- <span class="comment"><EM>-- pragma Inline (Set_Items);</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_57">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_622_13" HREF="terminal_interface-curses-menus__adb.htm#ref_803_13">Items</A></span> (<span class="symbol"><A NAME="ref_622_20" HREF="terminal_interface-curses-menus__adb.htm#ref_803_20">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_623_20" HREF="terminal_interface-curses-menus__adb.htm#ref_804_20">Index</A></span> : Positive) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_items.3x.html">menu_items()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_622_13">Items</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_58">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_628_13" HREF="terminal_interface-curses-menus__adb.htm#ref_795_13">Item_Count</A></span> (<span class="symbol"><A NAME="ref_628_25" HREF="terminal_interface-curses-menus__adb.htm#ref_795_25">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>) <b>return</b> Natural;
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_items.3x.html">item_count()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_628_13">Item_Count</A>);
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/menu_new.3x.html">menu_new.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_59">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_637_13" HREF="terminal_interface-curses-menus__adb.htm#ref_822_13">Create</A></span> (<span class="symbol"><A NAME="ref_637_21" HREF="terminal_interface-curses-menus__adb.htm#ref_822_21">Items</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_177_9">Item_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_new.3x.html">new_menu()</A></EM></span>
- <span class="comment"><EM>-- Not inlined</EM></span>
-
- <b>function</b> New_Menu (<span class="symbol"><A NAME="ref_641_23">Items</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_177_9">Item_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_637_13">Create</A>;
-
- <span class="comment"><EM>-- <A NAME="AFU_60">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_644_14" HREF="terminal_interface-curses-menus__adb.htm#ref_841_14">Delete</A></span> (<span class="symbol"><A NAME="ref_644_22" HREF="terminal_interface-curses-menus__adb.htm#ref_841_22">Men</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_new.3x.html">free_menu()</A></EM></span>
- <span class="comment"><EM>-- Reset Men to Null_Menu</EM></span>
- <span class="comment"><EM>-- Not inlined</EM></span>
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/menu_driver.3x.html">menu_driver.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <b>type</b> <span class="symbol"><A NAME="ref_653_9">Driver_Result</A></span> <b>is</b> (<span class="symbol"><A NAME="ref_653_27">Menu_Ok</A></span>,
- <span class="symbol"><A NAME="ref_654_27">Request_Denied</A></span>,
- <span class="symbol"><A NAME="ref_655_27">Unknown_Request</A></span>,
- <span class="symbol"><A NAME="ref_656_27">No_Match</A></span>);
-
- <span class="comment"><EM>-- <A NAME="AFU_61">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_659_13" HREF="terminal_interface-curses-menus__adb.htm#ref_852_13">Driver</A></span> (<span class="symbol"><A NAME="ref_659_21" HREF="terminal_interface-curses-menus__adb.htm#ref_852_21">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A>;
- <span class="symbol"><A NAME="ref_660_21" HREF="terminal_interface-curses-menus__adb.htm#ref_853_21">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_67_9">Key_Code</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_653_9">Driver_Result</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/menu_driver.3x.html">menu_driver()</A></EM></span>
- <span class="comment"><EM>-- Driver is not inlined</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_62">|</A></EM></span>
- <span class="comment"><EM>-- Not Implemented: menu_request_name, menu_request_by_name</EM></span>
-<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_40">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_483_14" href="terminal_interface-curses-menus__adb.htm#ref_582_14">Set_Pad_Character</a></span> (<span class="symbol"><a name="ref_483_33" href="terminal_interface-curses-menus__adb.htm#ref_582_33">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_484_33" href="terminal_interface-curses-menus__adb.htm#ref_583_33">Pad</a></span> : Character := Space);
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_attributes.3x.html">set_menu_pad()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-menus__ads.htm#ref_483_14">Set_Pad_Character</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_41">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_489_14" href="terminal_interface-curses-menus__adb.htm#ref_593_14">Pad_Character</a></span> (<span class="symbol"><a name="ref_489_29" href="terminal_interface-curses-menus__adb.htm#ref_593_29">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_490_29" href="terminal_interface-curses-menus__adb.htm#ref_594_29">Pad</a></span> : <b>out</b> Character);
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_attributes.3x.html">menu_pad()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-menus__ads.htm#ref_489_14">Pad_Character</a>);
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/menu_spacing.3x.html">menu_spacing.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_42">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_499_14" href="terminal_interface-curses-menus__adb.htm#ref_602_14">Set_Spacing</a></span> (<span class="symbol"><a name="ref_499_27" href="terminal_interface-curses-menus__adb.htm#ref_602_27">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_500_27" href="terminal_interface-curses-menus__adb.htm#ref_603_27">Descr</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a> := 0;
+ <span class="symbol"><a name="ref_501_27" href="terminal_interface-curses-menus__adb.htm#ref_604_27">Row</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a> := 0;
+ <span class="symbol"><a name="ref_502_27" href="terminal_interface-curses-menus__adb.htm#ref_605_27">Col</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a> := 0);
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_spacing.3x.html">set_menu_spacing()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-menus__ads.htm#ref_499_14">Set_Spacing</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_43">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_507_14" href="terminal_interface-curses-menus__adb.htm#ref_618_14">Spacing</a></span> (<span class="symbol"><a name="ref_507_23" href="terminal_interface-curses-menus__adb.htm#ref_618_23">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_508_23" href="terminal_interface-curses-menus__adb.htm#ref_619_23">Descr</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_509_23" href="terminal_interface-curses-menus__adb.htm#ref_620_23">Row</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_510_23" href="terminal_interface-curses-menus__adb.htm#ref_621_23">Col</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_spacing.3x.html">menu_spacing()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-menus__ads.htm#ref_507_14">Spacing</a>);
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/menu_pattern.3x.html">menu_pattern.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_44">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_519_13" href="terminal_interface-curses-menus__adb.htm#ref_639_13">Set_Pattern</a></span> (<span class="symbol"><a name="ref_519_26" href="terminal_interface-curses-menus__adb.htm#ref_639_26">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_520_26" href="terminal_interface-curses-menus__adb.htm#ref_640_26">Text</a></span> : String) <b>return</b> Boolean;
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_pattern.3x.html">set_menu_pattern()</A></em></span>
+ <span class="comment"><em>-- Return TRUE if the pattern matches, FALSE otherwise</em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-menus__ads.htm#ref_519_13">Set_Pattern</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_45">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_526_14" href="terminal_interface-curses-menus__adb.htm#ref_662_14">Pattern</a></span> (<span class="symbol"><a name="ref_526_23" href="terminal_interface-curses-menus__adb.htm#ref_662_23">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_527_23" href="terminal_interface-curses-menus__adb.htm#ref_663_23">Text</a></span> : <b>out</b> String);
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_pattern.3x.html">menu_pattern()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-menus__ads.htm#ref_526_14">Pattern</a>);
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/menu_format.3x.html">menu_format.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_46">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_536_14" href="terminal_interface-curses-menus__adb.htm#ref_671_14">Set_Format</a></span> (<span class="symbol"><a name="ref_536_26" href="terminal_interface-curses-menus__adb.htm#ref_671_26">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_537_26" href="terminal_interface-curses-menus__adb.htm#ref_672_26">Lines</a></span> : <a href="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</a>;
+ <span class="symbol"><a name="ref_538_26" href="terminal_interface-curses-menus__adb.htm#ref_673_26">Columns</a></span> : <a href="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</a>);
+ <span class="comment"><em>-- Not implemented: 0 argument for Lines or Columns;</em></span>
+ <span class="comment"><em>-- instead use Format to get the current sizes</em></span>
+ <span class="comment"><em>-- The default format is 16 rows, 1 column. Calling</em></span>
+ <span class="comment"><em>-- set_menu_format with a null menu pointer will change this</em></span>
+ <span class="comment"><em>-- default. A zero row or column argument to set_menu_format</em></span>
+ <span class="comment"><em>-- is interpreted as a request not to change the current</em></span>
+ <span class="comment"><em>-- value.</em></span>
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_format.3x.html">set_menu_format()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-menus__ads.htm#ref_536_14">Set_Format</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_47">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_550_14" href="terminal_interface-curses-menus__adb.htm#ref_687_14">Format</a></span> (<span class="symbol"><a name="ref_550_22" href="terminal_interface-curses-menus__adb.htm#ref_687_22">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_551_22" href="terminal_interface-curses-menus__adb.htm#ref_688_22">Lines</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</a>;
+ <span class="symbol"><a name="ref_552_22" href="terminal_interface-curses-menus__adb.htm#ref_689_22">Columns</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_format.3x.html">menu_format()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-menus__ads.htm#ref_550_14">Format</a>);
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/menu_hook.3x.html">menu_hook.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <b>type</b> <span class="symbol"><a name="ref_560_9">Menu_Hook_Function</a></span> <b>is</b> <b>access</b> <b>procedure</b> (<span class="symbol"><a name="ref_560_49">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>);
+ <b>pragma</b> Convention (C, <a href="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_48">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_564_14" href="terminal_interface-curses-menus__adb.htm#ref_703_14">Set_Item_Init_Hook</a></span> (<span class="symbol"><a name="ref_564_34" href="terminal_interface-curses-menus__adb.htm#ref_703_34">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_565_34" href="terminal_interface-curses-menus__adb.htm#ref_704_34">Proc</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_hook.3x.html">set_item_init()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-menus__ads.htm#ref_564_14">Set_Item_Init_Hook</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_49">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_570_14" href="terminal_interface-curses-menus__adb.htm#ref_714_14">Set_Item_Term_Hook</a></span> (<span class="symbol"><a name="ref_570_34" href="terminal_interface-curses-menus__adb.htm#ref_714_34">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_571_34" href="terminal_interface-curses-menus__adb.htm#ref_715_34">Proc</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_hook.3x.html">set_item_term()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-menus__ads.htm#ref_570_14">Set_Item_Term_Hook</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_50">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_576_14" href="terminal_interface-curses-menus__adb.htm#ref_725_14">Set_Menu_Init_Hook</a></span> (<span class="symbol"><a name="ref_576_34" href="terminal_interface-curses-menus__adb.htm#ref_725_34">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_577_34" href="terminal_interface-curses-menus__adb.htm#ref_726_34">Proc</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_hook.3x.html">set_menu_init()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-menus__ads.htm#ref_576_14">Set_Menu_Init_Hook</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_51">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_582_14" href="terminal_interface-curses-menus__adb.htm#ref_736_14">Set_Menu_Term_Hook</a></span> (<span class="symbol"><a name="ref_582_34" href="terminal_interface-curses-menus__adb.htm#ref_736_34">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_583_34" href="terminal_interface-curses-menus__adb.htm#ref_737_34">Proc</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_hook.3x.html">set_menu_term()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-menus__ads.htm#ref_582_14">Set_Menu_Term_Hook</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_52">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_588_13" href="terminal_interface-curses-menus__adb.htm#ref_747_13">Get_Item_Init_Hook</a></span> (<span class="symbol"><a name="ref_588_33" href="terminal_interface-curses-menus__adb.htm#ref_747_33">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> <a href="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_hook.3x.html">item_init()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-menus__ads.htm#ref_588_13">Get_Item_Init_Hook</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_53">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_593_13" href="terminal_interface-curses-menus__adb.htm#ref_755_13">Get_Item_Term_Hook</a></span> (<span class="symbol"><a name="ref_593_33" href="terminal_interface-curses-menus__adb.htm#ref_755_33">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> <a href="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_hook.3x.html">item_term()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-menus__ads.htm#ref_593_13">Get_Item_Term_Hook</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_54">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_598_13" href="terminal_interface-curses-menus__adb.htm#ref_763_13">Get_Menu_Init_Hook</a></span> (<span class="symbol"><a name="ref_598_33" href="terminal_interface-curses-menus__adb.htm#ref_763_33">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> <a href="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_hook.3x.html">menu_init()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-menus__ads.htm#ref_598_13">Get_Menu_Init_Hook</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_55">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_603_13" href="terminal_interface-curses-menus__adb.htm#ref_771_13">Get_Menu_Term_Hook</a></span> (<span class="symbol"><a name="ref_603_33" href="terminal_interface-curses-menus__adb.htm#ref_771_33">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> <a href="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_hook.3x.html">menu_term()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-menus__ads.htm#ref_603_13">Get_Menu_Term_Hook</a>);
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/menu_items.3x.html">menu_items.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_56">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_612_14" href="terminal_interface-curses-menus__adb.htm#ref_779_14">Redefine</a></span> (<span class="symbol"><a name="ref_612_24" href="terminal_interface-curses-menus__adb.htm#ref_779_24">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_613_24" href="terminal_interface-curses-menus__adb.htm#ref_780_24">Items</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_177_9">Item_Array_Access</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_items.3x.html">set_menu_items()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-menus__ads.htm#ref_612_14">Redefine</a>);
+
+ <b>procedure</b> <span class="symbol"><a name="ref_617_14">Set_Items</a></span> (<span class="symbol"><a name="ref_617_25">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_618_25">Items</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_177_9">Item_Array_Access</a>) <b>renames</b> <a href="terminal_interface-curses-menus__ads.htm#ref_612_14">Redefine</a>;
+ <span class="comment"><em>-- pragma Inline (Set_Items);</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_57">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_622_13" href="terminal_interface-curses-menus__adb.htm#ref_803_13">Items</a></span> (<span class="symbol"><a name="ref_622_20" href="terminal_interface-curses-menus__adb.htm#ref_803_20">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_623_20" href="terminal_interface-curses-menus__adb.htm#ref_804_20">Index</a></span> : Positive) <b>return</b> <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_items.3x.html">menu_items()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-menus__ads.htm#ref_622_13">Items</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_58">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_628_13" href="terminal_interface-curses-menus__adb.htm#ref_795_13">Item_Count</a></span> (<span class="symbol"><a name="ref_628_25" href="terminal_interface-curses-menus__adb.htm#ref_795_25">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>) <b>return</b> Natural;
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_items.3x.html">item_count()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-menus__ads.htm#ref_628_13">Item_Count</a>);
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/menu_new.3x.html">menu_new.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_59">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_637_13" href="terminal_interface-curses-menus__adb.htm#ref_822_13">Create</a></span> (<span class="symbol"><a name="ref_637_21" href="terminal_interface-curses-menus__adb.htm#ref_822_21">Items</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_177_9">Item_Array_Access</a>) <b>return</b> <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_new.3x.html">new_menu()</A></em></span>
+ <span class="comment"><em>-- Not inlined</em></span>
+
+ <b>function</b> New_Menu (<span class="symbol"><a name="ref_641_23">Items</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_177_9">Item_Array_Access</a>) <b>return</b> <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a> <b>renames</b> <a href="terminal_interface-curses-menus__ads.htm#ref_637_13">Create</a>;
+
+ <span class="comment"><em>-- <A NAME="AFU_60">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_644_14" href="terminal_interface-curses-menus__adb.htm#ref_841_14">Delete</a></span> (<span class="symbol"><a name="ref_644_22" href="terminal_interface-curses-menus__adb.htm#ref_841_22">Men</a></span> : <b>in</b> <b>out</b> <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_new.3x.html">free_menu()</A></em></span>
+ <span class="comment"><em>-- Reset Men to Null_Menu</em></span>
+ <span class="comment"><em>-- Not inlined</em></span>
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/menu_driver.3x.html">menu_driver.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <b>type</b> <span class="symbol"><a name="ref_653_9">Driver_Result</a></span> <b>is</b> (<span class="symbol"><a name="ref_653_27">Menu_Ok</a></span>,
+ <span class="symbol"><a name="ref_654_27">Request_Denied</a></span>,
+ <span class="symbol"><a name="ref_655_27">Unknown_Request</a></span>,
+ <span class="symbol"><a name="ref_656_27">No_Match</a></span>);
+
+ <span class="comment"><em>-- <A NAME="AFU_61">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_659_13" href="terminal_interface-curses-menus__adb.htm#ref_852_13">Driver</a></span> (<span class="symbol"><a name="ref_659_21" href="terminal_interface-curses-menus__adb.htm#ref_852_21">Men</a></span> : <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a>;
+ <span class="symbol"><a name="ref_660_21" href="terminal_interface-curses-menus__adb.htm#ref_853_21">Key</a></span> : <a href="terminal_interface-curses__ads.htm#ref_67_9">Key_Code</a>) <b>return</b> <a href="terminal_interface-curses-menus__ads.htm#ref_653_9">Driver_Result</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/menu_driver.3x.html">menu_driver()</A></em></span>
+ <span class="comment"><em>-- Driver is not inlined</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_62">|</A></em></span>
+ <span class="comment"><em>-- Not Implemented: menu_request_name, menu_request_by_name</em></span>
+<span class="comment"><em>-------------------------------------------------------------------------------</em></span>
<b>private</b>
- <b>type</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
- <b>type</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
+ <b>type</b> <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
+ <b>type</b> <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
- <A HREF="terminal_interface-curses-menus__ads.htm#ref_58_4">Null_Item</A> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</A> := 0;
- <A HREF="terminal_interface-curses-menus__ads.htm#ref_59_4">Null_Menu</A> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</A> := 0;
+ <a href="terminal_interface-curses-menus__ads.htm#ref_58_4">Null_Item</a> : <b>constant</b> <a href="terminal_interface-curses-menus__ads.htm#ref_52_9">Item</a> := 0;
+ <a href="terminal_interface-curses-menus__ads.htm#ref_59_4">Null_Menu</a> : <b>constant</b> <a href="terminal_interface-curses-menus__ads.htm#ref_53_9">Menu</a> := 0;
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_46_35">Menus</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-menus__ads.htm#ref_46_35">Menus</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-mouse__adb.htm b/doc/html/ada/terminal_interface-curses-mouse__adb.htm
index 2035f6b28b88..1a473a790830 100644
--- a/doc/html/ada/terminal_interface-curses-mouse__adb.htm
+++ b/doc/html/ada/terminal_interface-curses-mouse__adb.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-mouse.adb</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-mouse.adb</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,226 +11,226 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-mouse.adb </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Mouse --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- B O D Y --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2018,2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2009,2014 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.28 @</EM></span>
-<span class="comment"><EM>-- @Date: 2020/06/27 18:50:44 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>;
-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
-<b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>;
-
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<span class="symbol"><A NAME="ref_47_40" HREF="terminal_interface-curses-mouse__ads.htm#ref_45_35">Mouse</A></span> <b>is</b>
-
- <b>function</b> <span class="symbol"><A NAME="ref_49_13" HREF="terminal_interface-curses-mouse__ads.htm#ref_91_13">Has_Mouse</A></span> <b>return</b> Boolean
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-mouse.adb </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Mouse --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- B O D Y --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2018,2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2009,2014 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.28 @</em></span>
+<span class="comment"><em>-- @Date: 2020/06/27 18:50:44 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<b>with</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>; <b>use</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>;
+<b>with</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C; <b>use</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C;
+<b>use</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>;
+
+<b>package</b> <b>body</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<span class="symbol"><a name="ref_47_40" href="terminal_interface-curses-mouse__ads.htm#ref_45_35">Mouse</a></span> <b>is</b>
+
+ <b>function</b> <span class="symbol"><a name="ref_49_13" href="terminal_interface-curses-mouse__ads.htm#ref_91_13">Has_Mouse</a></span> <b>return</b> Boolean
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_51_16">Mouse_Avail</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_51_16">Mouse_Avail</a></span> <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Mouse_Avail, "has_mouse");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_938_13">Has_Key</A> (<A HREF="terminal_interface-curses__ads.htm#ref_376_4">Key_Mouse</A>) <b>or</b> <b>else</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_51_16">Mouse_Avail</A> /= 0 <b>then</b>
+ <b>if</b> <a href="terminal_interface-curses__ads.htm#ref_938_13">Has_Key</a> (<a href="terminal_interface-curses__ads.htm#ref_376_4">Key_Mouse</a>) <b>or</b> <b>else</b> <a href="terminal_interface-curses-mouse__adb.htm#ref_51_16">Mouse_Avail</a> /= 0 <b>then</b>
<b>return</b> True;
<b>else</b>
<b>return</b> False;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_91_13">Has_Mouse</A>;
+ <b>end</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_91_13">Has_Mouse</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_61_13" HREF="terminal_interface-curses-mouse__ads.htm#ref_126_13">Get_Mouse</A></span> <b>return</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_85_9">Mouse_Event</A>
+ <b>function</b> <span class="symbol"><a name="ref_61_13" href="terminal_interface-curses-mouse__ads.htm#ref_126_13">Get_Mouse</a></span> <b>return</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_85_9">Mouse_Event</a>
<b>is</b>
- <b>type</b> <span class="symbol"><A NAME="ref_63_12">Event_Access</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_85_9">Mouse_Event</A>;
+ <b>type</b> <span class="symbol"><a name="ref_63_12">Event_Access</a></span> <b>is</b> <b>access</b> <b>all</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_85_9">Mouse_Event</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_65_16">Getmouse</A></span> (<span class="symbol"><A NAME="ref_65_26" HREF="terminal_interface-curses-mouse__adb.htm#ref_65_16">Ev</A></span> : <A HREF="terminal_interface-curses-mouse__adb.htm#ref_63_12">Event_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_65_16">Getmouse</a></span> (<span class="symbol"><a name="ref_65_26">Ev</a></span> : <a href="terminal_interface-curses-mouse__adb.htm#ref_63_12">Event_Access</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Getmouse, "getmouse");
- <span class="symbol"><A NAME="ref_68_7">Event</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_85_9">Mouse_Event</A>;
+ <span class="symbol"><a name="ref_68_7">Event</a></span> : <b>aliased</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_85_9">Mouse_Event</a>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_65_16">Getmouse</A> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_68_7">Event</A>'<b>Access</b>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses-mouse__adb.htm#ref_65_16">Getmouse</a> (<a href="terminal_interface-curses-mouse__adb.htm#ref_68_7">Event</a>'<b>Access</b>) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_68_7">Event</A>;
- <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_126_13">Get_Mouse</A>;
+ <b>return</b> <a href="terminal_interface-curses-mouse__adb.htm#ref_68_7">Event</a>;
+ <b>end</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_126_13">Get_Mouse</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_76_14" HREF="terminal_interface-curses-mouse__ads.htm#ref_94_14">Register_Reportable_Event</A></span> (<span class="symbol"><A NAME="ref_76_41" HREF="terminal_interface-curses-mouse__ads.htm#ref_95_7">Button</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_61_9">Mouse_Button</A>;
- <span class="symbol"><A NAME="ref_77_41" HREF="terminal_interface-curses-mouse__ads.htm#ref_96_7">State</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_72_9">Button_State</A>;
- <span class="symbol"><A NAME="ref_78_41" HREF="terminal_interface-curses-mouse__ads.htm#ref_97_7">Mask</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_76_14" href="terminal_interface-curses-mouse__ads.htm#ref_94_14">Register_Reportable_Event</a></span> (<span class="symbol"><a name="ref_76_41" href="terminal_interface-curses-mouse__ads.htm#ref_95_7">Button</a></span> : <a href="terminal_interface-curses-mouse__ads.htm#ref_61_9">Mouse_Button</a>;
+ <span class="symbol"><a name="ref_77_41" href="terminal_interface-curses-mouse__ads.htm#ref_96_7">State</a></span> : <a href="terminal_interface-curses-mouse__ads.htm#ref_72_9">Button_State</a>;
+ <span class="symbol"><a name="ref_78_41" href="terminal_interface-curses-mouse__ads.htm#ref_97_7">Mask</a></span> : <b>in</b> <b>out</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</a>)
<b>is</b>
- <span class="symbol"><A NAME="ref_80_7">Button_Nr</A></span> : <b>constant</b> Natural := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_61_9">Mouse_Button</A>'Pos (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_95_7">Button</A>);
- <span class="symbol"><A NAME="ref_81_7">State_Nr</A></span> : <b>constant</b> Natural := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_72_9">Button_State</A>'Pos (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_96_7">State</A>);
+ <span class="symbol"><a name="ref_80_7">Button_Nr</a></span> : <b>constant</b> Natural := <a href="terminal_interface-curses-mouse__ads.htm#ref_61_9">Mouse_Button</a>'Pos (<a href="terminal_interface-curses-mouse__ads.htm#ref_95_7">Button</a>);
+ <span class="symbol"><a name="ref_81_7">State_Nr</a></span> : <b>constant</b> Natural := <a href="terminal_interface-curses-mouse__ads.htm#ref_72_9">Button_State</a>'Pos (<a href="terminal_interface-curses-mouse__ads.htm#ref_96_7">State</a>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_95_7">Button</A> <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_70_12">Modifier_Keys</A> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_96_7">State</A> /= <A HREF="terminal_interface-curses-mouse__ads.htm#ref_73_26">Pressed</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_95_7">Button</a> <b>in</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_70_12">Modifier_Keys</a> <b>and</b> <b>then</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_96_7">State</a> /= <a href="terminal_interface-curses-mouse__ads.htm#ref_73_26">Pressed</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>else</b>
- <b>if</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_95_7">Button</A> <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_69_12">Real_Buttons</A> <b>then</b>
- <A HREF="terminal_interface-curses-mouse__ads.htm#ref_97_7">Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_97_7">Mask</A> <b>or</b> ((2 ** (6 * <A HREF="terminal_interface-curses-mouse__adb.htm#ref_80_7">Button_Nr</A>)) ** <A HREF="terminal_interface-curses-mouse__adb.htm#ref_81_7">State_Nr</A>);
+ <b>if</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_95_7">Button</a> <b>in</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_69_12">Real_Buttons</a> <b>then</b>
+ <a href="terminal_interface-curses-mouse__ads.htm#ref_97_7">Mask</a> := <a href="terminal_interface-curses-mouse__ads.htm#ref_97_7">Mask</a> <b>or</b> ((2 ** (6 * <a href="terminal_interface-curses-mouse__adb.htm#ref_80_7">Button_Nr</a>)) ** <a href="terminal_interface-curses-mouse__adb.htm#ref_81_7">State_Nr</a>);
<b>else</b>
- <A HREF="terminal_interface-curses-mouse__ads.htm#ref_97_7">Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_97_7">Mask</A> <b>or</b> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_190_4">BUTTON_CTRL</A> ** (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_80_7">Button_Nr</A> - 4));
+ <a href="terminal_interface-curses-mouse__ads.htm#ref_97_7">Mask</a> := <a href="terminal_interface-curses-mouse__ads.htm#ref_97_7">Mask</a> <b>or</b> (<a href="terminal_interface-curses-mouse__ads.htm#ref_190_4">BUTTON_CTRL</a> ** (<a href="terminal_interface-curses-mouse__adb.htm#ref_80_7">Button_Nr</a> - 4));
<b>end</b> <b>if</b>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_94_14">Register_Reportable_Event</A>;
+ <b>end</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_94_14">Register_Reportable_Event</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_94_14" HREF="terminal_interface-curses-mouse__ads.htm#ref_103_14">Register_Reportable_Events</A></span> (<span class="symbol"><A NAME="ref_94_42" HREF="terminal_interface-curses-mouse__ads.htm#ref_104_7">Button</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_61_9">Mouse_Button</A>;
- <span class="symbol"><A NAME="ref_95_42" HREF="terminal_interface-curses-mouse__ads.htm#ref_105_7">State</A></span> : Button_States;
- <span class="symbol"><A NAME="ref_96_42" HREF="terminal_interface-curses-mouse__ads.htm#ref_106_7">Mask</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_94_14" href="terminal_interface-curses-mouse__ads.htm#ref_103_14">Register_Reportable_Events</a></span> (<span class="symbol"><a name="ref_94_42" href="terminal_interface-curses-mouse__ads.htm#ref_104_7">Button</a></span> : <a href="terminal_interface-curses-mouse__ads.htm#ref_61_9">Mouse_Button</a>;
+ <span class="symbol"><a name="ref_95_42" href="terminal_interface-curses-mouse__ads.htm#ref_105_7">State</a></span> : Button_States;
+ <span class="symbol"><a name="ref_96_42" href="terminal_interface-curses-mouse__ads.htm#ref_106_7">Mask</a></span> : <b>in</b> <b>out</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</a>)
<b>is</b>
<b>begin</b>
- <b>for</b> <span class="symbol"><A NAME="ref_99_11">S</A></span> <b>in</b> Button_States'<b>Range</b> <b>loop</b>
- <b>if</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_105_7">State</A> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_99_11">S</A>) <b>then</b>
- <A HREF="terminal_interface-curses-mouse__ads.htm#ref_94_14">Register_Reportable_Event</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_104_7">Button</A>, <A HREF="terminal_interface-curses-mouse__adb.htm#ref_99_11">S</A>, <A HREF="terminal_interface-curses-mouse__ads.htm#ref_106_7">Mask</A>);
+ <b>for</b> <span class="symbol"><a name="ref_99_11">S</a></span> <b>in</b> Button_States'<b>Range</b> <b>loop</b>
+ <b>if</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_105_7">State</a> (<a href="terminal_interface-curses-mouse__adb.htm#ref_99_11">S</a>) <b>then</b>
+ <a href="terminal_interface-curses-mouse__ads.htm#ref_94_14">Register_Reportable_Event</a> (<a href="terminal_interface-curses-mouse__ads.htm#ref_104_7">Button</a>, <a href="terminal_interface-curses-mouse__adb.htm#ref_99_11">S</a>, <a href="terminal_interface-curses-mouse__ads.htm#ref_106_7">Mask</a>);
<b>end</b> <b>if</b>;
<b>end</b> <b>loop</b>;
- <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_103_14">Register_Reportable_Events</A>;
+ <b>end</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_103_14">Register_Reportable_Events</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_106_13" HREF="terminal_interface-curses-mouse__ads.htm#ref_116_13">Start_Mouse</A></span> (<span class="symbol"><A NAME="ref_106_26" HREF="terminal_interface-curses-mouse__ads.htm#ref_116_26">Mask</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_59_4">All_Events</A>)
- <b>return</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</A>
+ <b>function</b> <span class="symbol"><a name="ref_106_13" href="terminal_interface-curses-mouse__ads.htm#ref_116_13">Start_Mouse</a></span> (<span class="symbol"><a name="ref_106_26" href="terminal_interface-curses-mouse__ads.htm#ref_116_26">Mask</a></span> : <a href="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</a> := <a href="terminal_interface-curses-mouse__ads.htm#ref_59_4">All_Events</a>)
+ <b>return</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</a>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_109_16">MMask</A></span> (<span class="symbol"><A NAME="ref_109_23" HREF="terminal_interface-curses-mouse__adb.htm#ref_109_16">M</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</A>;
- <span class="symbol"><A NAME="ref_110_23" HREF="terminal_interface-curses-mouse__adb.htm#ref_109_16">O</A></span> : <b>access</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</A>) <b>return</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</A>;
+ <b>function</b> <span class="symbol"><a name="ref_109_16">MMask</a></span> (<span class="symbol"><a name="ref_109_23">M</a></span> : <a href="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</a>;
+ <span class="symbol"><a name="ref_110_23">O</a></span> : <b>access</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</a>) <b>return</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</a>;
<b>pragma</b> Import (C, MMask, "mousemask");
- <span class="symbol"><A NAME="ref_112_7">R</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</A>;
- <span class="symbol"><A NAME="ref_113_7">Old</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</A>;
+ <span class="symbol"><a name="ref_112_7">R</a></span> : <a href="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</a>;
+ <span class="symbol"><a name="ref_113_7">Old</a></span> : <b>aliased</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</a>;
<b>begin</b>
- <A HREF="terminal_interface-curses-mouse__adb.htm#ref_112_7">R</A> := <A HREF="terminal_interface-curses-mouse__adb.htm#ref_109_16">MMask</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_116_26">Mask</A>, <A HREF="terminal_interface-curses-mouse__adb.htm#ref_113_7">Old</A>'<b>Access</b>);
- <b>if</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_112_7">R</A> = <A HREF="terminal_interface-curses-mouse__ads.htm#ref_58_4">No_Events</A> <b>then</b>
- <A HREF="terminal_interface-curses__ads.htm#ref_1041_14">Beep</A>;
+ <a href="terminal_interface-curses-mouse__adb.htm#ref_112_7">R</a> := <a href="terminal_interface-curses-mouse__adb.htm#ref_109_16">MMask</a> (<a href="terminal_interface-curses-mouse__ads.htm#ref_116_26">Mask</a>, <a href="terminal_interface-curses-mouse__adb.htm#ref_113_7">Old</a>'<b>Access</b>);
+ <b>if</b> <a href="terminal_interface-curses-mouse__adb.htm#ref_112_7">R</a> = <a href="terminal_interface-curses-mouse__ads.htm#ref_58_4">No_Events</a> <b>then</b>
+ <a href="terminal_interface-curses__ads.htm#ref_1041_14">Beep</a>;
<b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_113_7">Old</A>;
- <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_116_13">Start_Mouse</A>;
+ <b>return</b> <a href="terminal_interface-curses-mouse__adb.htm#ref_113_7">Old</a>;
+ <b>end</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_116_13">Start_Mouse</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_122_14" HREF="terminal_interface-curses-mouse__ads.htm#ref_121_14">End_Mouse</A></span> (<span class="symbol"><A NAME="ref_122_25" HREF="terminal_interface-curses-mouse__ads.htm#ref_121_25">Mask</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_58_4">No_Events</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_122_14" href="terminal_interface-curses-mouse__ads.htm#ref_121_14">End_Mouse</a></span> (<span class="symbol"><a name="ref_122_25" href="terminal_interface-curses-mouse__ads.htm#ref_121_25">Mask</a></span> : <a href="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</a> := <a href="terminal_interface-curses-mouse__ads.htm#ref_58_4">No_Events</a>)
<b>is</b>
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_121_25">Mask</A> /= <A HREF="terminal_interface-curses-mouse__ads.htm#ref_58_4">No_Events</A> <b>then</b>
- <A HREF="terminal_interface-curses__ads.htm#ref_1041_14">Beep</A>;
+ <b>if</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_121_25">Mask</a> /= <a href="terminal_interface-curses-mouse__ads.htm#ref_58_4">No_Events</a> <b>then</b>
+ <a href="terminal_interface-curses__ads.htm#ref_1041_14">Beep</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_121_14">End_Mouse</A>;
+ <b>end</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_121_14">End_Mouse</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_130_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_134_14">Dispatch_Event</A></span> (<span class="symbol"><A NAME="ref_130_30" HREF="terminal_interface-curses-mouse__adb.htm#ref_134_30">Mask</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</A>;
- <span class="symbol"><A NAME="ref_131_30" HREF="terminal_interface-curses-mouse__adb.htm#ref_135_30">Button</A></span> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_61_9">Mouse_Button</A>;
- <span class="symbol"><A NAME="ref_132_30" HREF="terminal_interface-curses-mouse__adb.htm#ref_136_30">State</A></span> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_72_9">Button_State</A>);
+ <b>procedure</b> <span class="symbol"><a name="ref_130_14" href="terminal_interface-curses-mouse__adb.htm#ref_134_14">Dispatch_Event</a></span> (<span class="symbol"><a name="ref_130_30" href="terminal_interface-curses-mouse__adb.htm#ref_134_30">Mask</a></span> : <a href="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</a>;
+ <span class="symbol"><a name="ref_131_30" href="terminal_interface-curses-mouse__adb.htm#ref_135_30">Button</a></span> : <b>out</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_61_9">Mouse_Button</a>;
+ <span class="symbol"><a name="ref_132_30" href="terminal_interface-curses-mouse__adb.htm#ref_136_30">State</a></span> : <b>out</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_72_9">Button_State</a>);
- <b>procedure</b> <span class="symbol"><A NAME="ref_134_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_130_14">Dispatch_Event</A></span> (<span class="symbol"><A NAME="ref_134_30" HREF="terminal_interface-curses-mouse__adb.htm#ref_130_30">Mask</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</A>;
- <span class="symbol"><A NAME="ref_135_30" HREF="terminal_interface-curses-mouse__adb.htm#ref_131_30">Button</A></span> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_61_9">Mouse_Button</A>;
- <span class="symbol"><A NAME="ref_136_30" HREF="terminal_interface-curses-mouse__adb.htm#ref_132_30">State</A></span> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_72_9">Button_State</A>) <b>is</b>
- <span class="symbol"><A NAME="ref_137_7">L</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</A>;
+ <b>procedure</b> <span class="symbol"><a name="ref_134_14" href="terminal_interface-curses-mouse__adb.htm#ref_130_14">Dispatch_Event</a></span> (<span class="symbol"><a name="ref_134_30" href="terminal_interface-curses-mouse__adb.htm#ref_130_30">Mask</a></span> : <a href="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</a>;
+ <span class="symbol"><a name="ref_135_30" href="terminal_interface-curses-mouse__adb.htm#ref_131_30">Button</a></span> : <b>out</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_61_9">Mouse_Button</a>;
+ <span class="symbol"><a name="ref_136_30" href="terminal_interface-curses-mouse__adb.htm#ref_132_30">State</a></span> : <b>out</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_72_9">Button_State</a>) <b>is</b>
+ <span class="symbol"><a name="ref_137_7">L</a></span> : <a href="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</a>;
<b>begin</b>
- <A HREF="terminal_interface-curses-mouse__adb.htm#ref_131_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_67_26">Alt</A>; <span class="comment"><EM>-- preset to non real button;</EM></span>
- <b>if</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_130_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_193_4">BUTTON1_EVENTS</A>) /= 0 <b>then</b>
- <A HREF="terminal_interface-curses-mouse__adb.htm#ref_131_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_61_26">Left</A>;
- <b>elsif</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_130_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_195_4">BUTTON2_EVENTS</A>) /= 0 <b>then</b>
- <A HREF="terminal_interface-curses-mouse__adb.htm#ref_131_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_62_26">Middle</A>;
- <b>elsif</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_130_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_197_4">BUTTON3_EVENTS</A>) /= 0 <b>then</b>
- <A HREF="terminal_interface-curses-mouse__adb.htm#ref_131_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_63_26">Right</A>;
- <b>elsif</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_130_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_199_4">BUTTON4_EVENTS</A>) /= 0 <b>then</b>
- <A HREF="terminal_interface-curses-mouse__adb.htm#ref_131_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_26">Button4</A>;
+ <a href="terminal_interface-curses-mouse__adb.htm#ref_131_30">Button</a> := <a href="terminal_interface-curses-mouse__ads.htm#ref_67_26">Alt</a>; <span class="comment"><em>-- preset to non real button;</em></span>
+ <b>if</b> (<a href="terminal_interface-curses-mouse__adb.htm#ref_130_30">Mask</a> <b>and</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_193_4">BUTTON1_EVENTS</a>) /= 0 <b>then</b>
+ <a href="terminal_interface-curses-mouse__adb.htm#ref_131_30">Button</a> := <a href="terminal_interface-curses-mouse__ads.htm#ref_61_26">Left</a>;
+ <b>elsif</b> (<a href="terminal_interface-curses-mouse__adb.htm#ref_130_30">Mask</a> <b>and</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_195_4">BUTTON2_EVENTS</a>) /= 0 <b>then</b>
+ <a href="terminal_interface-curses-mouse__adb.htm#ref_131_30">Button</a> := <a href="terminal_interface-curses-mouse__ads.htm#ref_62_26">Middle</a>;
+ <b>elsif</b> (<a href="terminal_interface-curses-mouse__adb.htm#ref_130_30">Mask</a> <b>and</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_197_4">BUTTON3_EVENTS</a>) /= 0 <b>then</b>
+ <a href="terminal_interface-curses-mouse__adb.htm#ref_131_30">Button</a> := <a href="terminal_interface-curses-mouse__ads.htm#ref_63_26">Right</a>;
+ <b>elsif</b> (<a href="terminal_interface-curses-mouse__adb.htm#ref_130_30">Mask</a> <b>and</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_199_4">BUTTON4_EVENTS</a>) /= 0 <b>then</b>
+ <a href="terminal_interface-curses-mouse__adb.htm#ref_131_30">Button</a> := <a href="terminal_interface-curses-mouse__ads.htm#ref_64_26">Button4</a>;
<b>end</b> <b>if</b>;
- <b>if</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_131_30">Button</A> <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_69_12">Real_Buttons</A> <b>then</b>
- <A HREF="terminal_interface-curses-mouse__adb.htm#ref_132_30">State</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_72_26">Released</A>; <span class="comment"><EM>-- preset to non real button;</EM></span>
- <A HREF="terminal_interface-curses-mouse__adb.htm#ref_137_7">L</A> := 2 ** (6 * <A HREF="terminal_interface-curses-mouse__ads.htm#ref_61_9">Mouse_Button</A>'Pos (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_131_30">Button</A>));
- <b>for</b> <span class="symbol"><A NAME="ref_152_14">I</A></span> <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_72_9">Button_State</A>'<b>Range</b> <b>loop</b>
- <b>if</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_130_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_137_7">L</A>) /= 0 <b>then</b>
- <A HREF="terminal_interface-curses-mouse__adb.htm#ref_132_30">State</A> := <A HREF="terminal_interface-curses-mouse__adb.htm#ref_152_14">I</A>;
+ <b>if</b> <a href="terminal_interface-curses-mouse__adb.htm#ref_131_30">Button</a> <b>in</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_69_12">Real_Buttons</a> <b>then</b>
+ <a href="terminal_interface-curses-mouse__adb.htm#ref_132_30">State</a> := <a href="terminal_interface-curses-mouse__ads.htm#ref_72_26">Released</a>; <span class="comment"><em>-- preset to non real button;</em></span>
+ <a href="terminal_interface-curses-mouse__adb.htm#ref_137_7">L</a> := 2 ** (6 * <a href="terminal_interface-curses-mouse__ads.htm#ref_61_9">Mouse_Button</a>'Pos (<a href="terminal_interface-curses-mouse__adb.htm#ref_131_30">Button</a>));
+ <b>for</b> <span class="symbol"><a name="ref_152_14">I</a></span> <b>in</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_72_9">Button_State</a>'<b>Range</b> <b>loop</b>
+ <b>if</b> (<a href="terminal_interface-curses-mouse__adb.htm#ref_130_30">Mask</a> <b>and</b> <a href="terminal_interface-curses-mouse__adb.htm#ref_137_7">L</a>) /= 0 <b>then</b>
+ <a href="terminal_interface-curses-mouse__adb.htm#ref_132_30">State</a> := <a href="terminal_interface-curses-mouse__adb.htm#ref_152_14">I</a>;
<b>exit</b>;
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-mouse__adb.htm#ref_137_7">L</A> := 2 * <A HREF="terminal_interface-curses-mouse__adb.htm#ref_137_7">L</A>;
+ <a href="terminal_interface-curses-mouse__adb.htm#ref_137_7">L</a> := 2 * <a href="terminal_interface-curses-mouse__adb.htm#ref_137_7">L</a>;
<b>end</b> <b>loop</b>;
<b>else</b>
- <A HREF="terminal_interface-curses-mouse__adb.htm#ref_132_30">State</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_73_26">Pressed</A>;
- <b>if</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_130_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_190_4">BUTTON_CTRL</A>) /= 0 <b>then</b>
- <A HREF="terminal_interface-curses-mouse__adb.htm#ref_131_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_65_26">Control</A>;
- <b>elsif</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_130_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_191_4">BUTTON_SHIFT</A>) /= 0 <b>then</b>
- <A HREF="terminal_interface-curses-mouse__adb.htm#ref_131_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_66_26">Shift</A>;
- <b>elsif</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_130_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_192_4">BUTTON_ALT</A>) /= 0 <b>then</b>
- <A HREF="terminal_interface-curses-mouse__adb.htm#ref_131_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_67_26">Alt</A>;
+ <a href="terminal_interface-curses-mouse__adb.htm#ref_132_30">State</a> := <a href="terminal_interface-curses-mouse__ads.htm#ref_73_26">Pressed</a>;
+ <b>if</b> (<a href="terminal_interface-curses-mouse__adb.htm#ref_130_30">Mask</a> <b>and</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_190_4">BUTTON_CTRL</a>) /= 0 <b>then</b>
+ <a href="terminal_interface-curses-mouse__adb.htm#ref_131_30">Button</a> := <a href="terminal_interface-curses-mouse__ads.htm#ref_65_26">Control</a>;
+ <b>elsif</b> (<a href="terminal_interface-curses-mouse__adb.htm#ref_130_30">Mask</a> <b>and</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_191_4">BUTTON_SHIFT</a>) /= 0 <b>then</b>
+ <a href="terminal_interface-curses-mouse__adb.htm#ref_131_30">Button</a> := <a href="terminal_interface-curses-mouse__ads.htm#ref_66_26">Shift</a>;
+ <b>elsif</b> (<a href="terminal_interface-curses-mouse__adb.htm#ref_130_30">Mask</a> <b>and</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_192_4">BUTTON_ALT</a>) /= 0 <b>then</b>
+ <a href="terminal_interface-curses-mouse__adb.htm#ref_131_30">Button</a> := <a href="terminal_interface-curses-mouse__ads.htm#ref_67_26">Alt</a>;
<b>end</b> <b>if</b>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_130_14">Dispatch_Event</A>;
+ <b>end</b> <a href="terminal_interface-curses-mouse__adb.htm#ref_130_14">Dispatch_Event</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_171_14" HREF="terminal_interface-curses-mouse__ads.htm#ref_130_14">Get_Event</A></span> (<span class="symbol"><A NAME="ref_171_25" HREF="terminal_interface-curses-mouse__ads.htm#ref_130_25">Event</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_85_9">Mouse_Event</A>;
- <span class="symbol"><A NAME="ref_172_25" HREF="terminal_interface-curses-mouse__ads.htm#ref_131_25">Y</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_173_25" HREF="terminal_interface-curses-mouse__ads.htm#ref_132_25">X</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_174_25" HREF="terminal_interface-curses-mouse__ads.htm#ref_133_25">Button</A></span> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_61_9">Mouse_Button</A>;
- <span class="symbol"><A NAME="ref_175_25" HREF="terminal_interface-curses-mouse__ads.htm#ref_134_25">State</A></span> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_72_9">Button_State</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_171_14" href="terminal_interface-curses-mouse__ads.htm#ref_130_14">Get_Event</a></span> (<span class="symbol"><a name="ref_171_25" href="terminal_interface-curses-mouse__ads.htm#ref_130_25">Event</a></span> : <a href="terminal_interface-curses-mouse__ads.htm#ref_85_9">Mouse_Event</a>;
+ <span class="symbol"><a name="ref_172_25" href="terminal_interface-curses-mouse__ads.htm#ref_131_25">Y</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_173_25" href="terminal_interface-curses-mouse__ads.htm#ref_132_25">X</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_174_25" href="terminal_interface-curses-mouse__ads.htm#ref_133_25">Button</a></span> : <b>out</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_61_9">Mouse_Button</a>;
+ <span class="symbol"><a name="ref_175_25" href="terminal_interface-curses-mouse__ads.htm#ref_134_25">State</a></span> : <b>out</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_72_9">Button_State</a>)
<b>is</b>
- <span class="symbol"><A NAME="ref_177_7">Mask</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_130_25">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_170_10">Bstate</A>;
+ <span class="symbol"><a name="ref_177_7">Mask</a></span> : <b>constant</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</a> := <a href="terminal_interface-curses-mouse__ads.htm#ref_130_25">Event</a>.<a href="terminal_interface-curses-mouse__ads.htm#ref_170_10">Bstate</a>;
<b>begin</b>
- <A HREF="terminal_interface-curses-mouse__ads.htm#ref_132_25">X</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_130_25">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_168_10">X</A>);
- <A HREF="terminal_interface-curses-mouse__ads.htm#ref_131_25">Y</A> := <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_130_25">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_168_13">Y</A>);
- <A HREF="terminal_interface-curses-mouse__adb.htm#ref_130_14">Dispatch_Event</A> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_177_7">Mask</A>, <A HREF="terminal_interface-curses-mouse__ads.htm#ref_133_25">Button</A>, <A HREF="terminal_interface-curses-mouse__ads.htm#ref_134_25">State</A>);
- <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_130_14">Get_Event</A>;
+ <a href="terminal_interface-curses-mouse__ads.htm#ref_132_25">X</a> := <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a> (<a href="terminal_interface-curses-mouse__ads.htm#ref_130_25">Event</a>.<a href="terminal_interface-curses-mouse__ads.htm#ref_168_10">X</a>);
+ <a href="terminal_interface-curses-mouse__ads.htm#ref_131_25">Y</a> := <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a> (<a href="terminal_interface-curses-mouse__ads.htm#ref_130_25">Event</a>.<a href="terminal_interface-curses-mouse__ads.htm#ref_168_13">Y</a>);
+ <a href="terminal_interface-curses-mouse__adb.htm#ref_130_14">Dispatch_Event</a> (<a href="terminal_interface-curses-mouse__adb.htm#ref_177_7">Mask</a>, <a href="terminal_interface-curses-mouse__ads.htm#ref_133_25">Button</a>, <a href="terminal_interface-curses-mouse__ads.htm#ref_134_25">State</a>);
+ <b>end</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_130_14">Get_Event</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_184_14" HREF="terminal_interface-curses-mouse__ads.htm#ref_142_14">Unget_Mouse</A></span> (<span class="symbol"><A NAME="ref_184_27" HREF="terminal_interface-curses-mouse__ads.htm#ref_142_27">Event</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_85_9">Mouse_Event</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_184_14" href="terminal_interface-curses-mouse__ads.htm#ref_142_14">Unget_Mouse</a></span> (<span class="symbol"><a name="ref_184_27" href="terminal_interface-curses-mouse__ads.htm#ref_142_27">Event</a></span> : <a href="terminal_interface-curses-mouse__ads.htm#ref_85_9">Mouse_Event</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_186_16">Ungetmouse</A></span> (<span class="symbol"><A NAME="ref_186_28" HREF="terminal_interface-curses-mouse__adb.htm#ref_186_16">Ev</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_85_9">Mouse_Event</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_186_16">Ungetmouse</a></span> (<span class="symbol"><a name="ref_186_28">Ev</a></span> : <a href="terminal_interface-curses-mouse__ads.htm#ref_85_9">Mouse_Event</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Ungetmouse, "ungetmouse");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_186_16">Ungetmouse</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_142_27">Event</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses-mouse__adb.htm#ref_186_16">Ungetmouse</a> (<a href="terminal_interface-curses-mouse__ads.htm#ref_142_27">Event</a>) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_142_14">Unget_Mouse</A>;
+ <b>end</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_142_14">Unget_Mouse</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_194_13" HREF="terminal_interface-curses-mouse__ads.htm#ref_147_13">Enclosed_In_Window</A></span> (<span class="symbol"><A NAME="ref_194_33" HREF="terminal_interface-curses-mouse__ads.htm#ref_147_33">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_195_33" HREF="terminal_interface-curses-mouse__ads.htm#ref_148_33">Event</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_85_9">Mouse_Event</A>) <b>return</b> Boolean
+ <b>function</b> <span class="symbol"><a name="ref_194_13" href="terminal_interface-curses-mouse__ads.htm#ref_147_13">Enclosed_In_Window</a></span> (<span class="symbol"><a name="ref_194_33" href="terminal_interface-curses-mouse__ads.htm#ref_147_33">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_195_33" href="terminal_interface-curses-mouse__ads.htm#ref_148_33">Event</a></span> : <a href="terminal_interface-curses-mouse__ads.htm#ref_85_9">Mouse_Event</a>) <b>return</b> Boolean
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_197_16">Wenclose</A></span> (<span class="symbol"><A NAME="ref_197_26" HREF="terminal_interface-curses-mouse__adb.htm#ref_197_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>; <span class="symbol"><A NAME="ref_197_40" HREF="terminal_interface-curses-mouse__adb.htm#ref_197_16">Y</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>; <span class="symbol"><A NAME="ref_197_51" HREF="terminal_interface-curses-mouse__adb.htm#ref_197_16">X</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>)
- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A>;
+ <b>function</b> <span class="symbol"><a name="ref_197_16">Wenclose</a></span> (<span class="symbol"><a name="ref_197_26">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>; <span class="symbol"><a name="ref_197_40">Y</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>; <span class="symbol"><a name="ref_197_51">X</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>)
+ <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a>;
<b>pragma</b> Import (C, Wenclose, "wenclose");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_197_16">Wenclose</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_147_33">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_148_33">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_168_13">Y</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_148_33">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_168_10">X</A>))
- = <A HREF="terminal_interface-curses__ads.htm#ref_2101_4">Curses_Bool_False</A>
+ <b>if</b> <a href="terminal_interface-curses-mouse__adb.htm#ref_197_16">Wenclose</a> (<a href="terminal_interface-curses-mouse__ads.htm#ref_147_33">Win</a>, <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses-mouse__ads.htm#ref_148_33">Event</a>.<a href="terminal_interface-curses-mouse__ads.htm#ref_168_13">Y</a>), <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses-mouse__ads.htm#ref_148_33">Event</a>.<a href="terminal_interface-curses-mouse__ads.htm#ref_168_10">X</a>))
+ = <a href="terminal_interface-curses__ads.htm#ref_2101_4">Curses_Bool_False</a>
<b>then</b>
<b>return</b> False;
<b>else</b>
<b>return</b> True;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_147_13">Enclosed_In_Window</A>;
+ <b>end</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_147_13">Enclosed_In_Window</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_210_13" HREF="terminal_interface-curses-mouse__ads.htm#ref_154_13">Mouse_Interval</A></span> (<span class="symbol"><A NAME="ref_210_29" HREF="terminal_interface-curses-mouse__ads.htm#ref_154_29">Msec</A></span> : Natural := 200) <b>return</b> Natural
+ <b>function</b> <span class="symbol"><a name="ref_210_13" href="terminal_interface-curses-mouse__ads.htm#ref_154_13">Mouse_Interval</a></span> (<span class="symbol"><a name="ref_210_29" href="terminal_interface-curses-mouse__ads.htm#ref_154_29">Msec</a></span> : Natural := 200) <b>return</b> Natural
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_212_16">Mouseinterval</A></span> (<span class="symbol"><A NAME="ref_212_31" HREF="terminal_interface-curses-mouse__adb.htm#ref_212_16">Msec</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_212_16">Mouseinterval</a></span> (<span class="symbol"><a name="ref_212_31">Msec</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Mouseinterval, "mouseinterval");
<b>begin</b>
- <b>return</b> Natural (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_212_16">Mouseinterval</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_154_29">Msec</A>)));
- <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_154_13">Mouse_Interval</A>;
+ <b>return</b> Natural (<a href="terminal_interface-curses-mouse__adb.htm#ref_212_16">Mouseinterval</a> (<a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses-mouse__ads.htm#ref_154_29">Msec</a>)));
+ <b>end</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_154_13">Mouse_Interval</a>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_45_35">Mouse</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-mouse__ads.htm#ref_45_35">Mouse</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-mouse__ads.htm b/doc/html/ada/terminal_interface-curses-mouse__ads.htm
index c4de5e5fe90e..5ed20a8cbd18 100644
--- a/doc/html/ada/terminal_interface-curses-mouse__ads.htm
+++ b/doc/html/ada/terminal_interface-curses-mouse__ads.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-mouse.ads</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-mouse.ads</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,213 +11,213 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-mouse.ads </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Mouse --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- S P E C --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1998-2014,2015 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.33 @</EM></span>
-<span class="comment"><EM>-- @Date: 2020/02/02 23:34:34 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-mouse.ads </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Mouse --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- S P E C --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1998-2014,2015 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.33 @</em></span>
+<span class="comment"><em>-- @Date: 2020/02/02 23:34:34 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
<b>with</b> System;
-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<span class="symbol"><A NAME="ref_45_35" HREF="terminal_interface-curses-mouse__adb.htm#ref_47_40">Mouse</A></span> <b>is</b>
- <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_45_35">Mouse</A>);
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/curs_mouse.3x.html">curs_mouse.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- mouse_trafo, wmouse_trafo are implemented as Transform_Coordinates</EM></span>
- <span class="comment"><EM>-- in the parent package.</EM></span>
- <span class="comment"><EM>--</EM></span>
- <span class="comment"><EM>-- Not implemented:</EM></span>
- <span class="comment"><EM>-- REPORT_MOUSE_POSITION (i.e. as a parameter to Register_Reportable_Event</EM></span>
- <span class="comment"><EM>-- or Start_Mouse)</EM></span>
- <b>type</b> <span class="symbol"><A NAME="ref_57_9">Event_Mask</A></span> <b>is</b> <b>private</b>;
- <span class="symbol"><A NAME="ref_58_4">No_Events</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</A>;
- <span class="symbol"><A NAME="ref_59_4">All_Events</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</A>;
-
- <b>type</b> <span class="symbol"><A NAME="ref_61_9">Mouse_Button</A></span> <b>is</b> (<span class="symbol"><A NAME="ref_61_26">Left</A></span>, <span class="comment"><EM>-- aka: Button 1</EM></span>
- <span class="symbol"><A NAME="ref_62_26">Middle</A></span>, <span class="comment"><EM>-- aka: Button 2</EM></span>
- <span class="symbol"><A NAME="ref_63_26">Right</A></span>, <span class="comment"><EM>-- aka: Button 3</EM></span>
- <span class="symbol"><A NAME="ref_64_26">Button4</A></span>, <span class="comment"><EM>-- aka: Button 4</EM></span>
- <span class="symbol"><A NAME="ref_65_26">Control</A></span>, <span class="comment"><EM>-- Control Key</EM></span>
- <span class="symbol"><A NAME="ref_66_26">Shift</A></span>, <span class="comment"><EM>-- Shift Key</EM></span>
- <span class="symbol"><A NAME="ref_67_26">Alt</A></span>); <span class="comment"><EM>-- ALT Key</EM></span>
-
- <b>subtype</b> <span class="symbol"><A NAME="ref_69_12">Real_Buttons</A></span> <b>is</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_61_9">Mouse_Button</A> <b>range</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_61_26">Left</A> .. <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_26">Button4</A>;
- <b>subtype</b> <span class="symbol"><A NAME="ref_70_12">Modifier_Keys</A></span> <b>is</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_61_9">Mouse_Button</A> <b>range</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_65_26">Control</A> .. <A HREF="terminal_interface-curses-mouse__ads.htm#ref_67_26">Alt</A>;
-
- <b>type</b> <span class="symbol"><A NAME="ref_72_9">Button_State</A></span> <b>is</b> (<span class="symbol"><A NAME="ref_72_26">Released</A></span>,
- <span class="symbol"><A NAME="ref_73_26">Pressed</A></span>,
- <span class="symbol"><A NAME="ref_74_26">Clicked</A></span>,
- <span class="symbol"><A NAME="ref_75_26">Double_Clicked</A></span>,
- <span class="symbol"><A NAME="ref_76_26">Triple_Clicked</A></span>);
-
- <b>type</b> Button_States <b>is</b> <b>array</b> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_72_9">Button_State</A>) <b>of</b> Boolean;
+<b>package</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<span class="symbol"><a name="ref_45_35" href="terminal_interface-curses-mouse__adb.htm#ref_47_40">Mouse</a></span> <b>is</b>
+ <b>pragma</b> Preelaborate (<a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-mouse__ads.htm#ref_45_35">Mouse</a>);
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/curs_mouse.3x.html">curs_mouse.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- mouse_trafo, wmouse_trafo are implemented as Transform_Coordinates</em></span>
+ <span class="comment"><em>-- in the parent package.</em></span>
+ <span class="comment"><em>--</em></span>
+ <span class="comment"><em>-- Not implemented:</em></span>
+ <span class="comment"><em>-- REPORT_MOUSE_POSITION (i.e. as a parameter to Register_Reportable_Event</em></span>
+ <span class="comment"><em>-- or Start_Mouse)</em></span>
+ <b>type</b> <span class="symbol"><a name="ref_57_9">Event_Mask</a></span> <b>is</b> <b>private</b>;
+ <span class="symbol"><a name="ref_58_4">No_Events</a></span> : <b>constant</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</a>;
+ <span class="symbol"><a name="ref_59_4">All_Events</a></span> : <b>constant</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</a>;
+
+ <b>type</b> <span class="symbol"><a name="ref_61_9">Mouse_Button</a></span> <b>is</b> (<span class="symbol"><a name="ref_61_26">Left</a></span>, <span class="comment"><em>-- aka: Button 1</em></span>
+ <span class="symbol"><a name="ref_62_26">Middle</a></span>, <span class="comment"><em>-- aka: Button 2</em></span>
+ <span class="symbol"><a name="ref_63_26">Right</a></span>, <span class="comment"><em>-- aka: Button 3</em></span>
+ <span class="symbol"><a name="ref_64_26">Button4</a></span>, <span class="comment"><em>-- aka: Button 4</em></span>
+ <span class="symbol"><a name="ref_65_26">Control</a></span>, <span class="comment"><em>-- Control Key</em></span>
+ <span class="symbol"><a name="ref_66_26">Shift</a></span>, <span class="comment"><em>-- Shift Key</em></span>
+ <span class="symbol"><a name="ref_67_26">Alt</a></span>); <span class="comment"><em>-- ALT Key</em></span>
+
+ <b>subtype</b> <span class="symbol"><a name="ref_69_12">Real_Buttons</a></span> <b>is</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_61_9">Mouse_Button</a> <b>range</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_61_26">Left</a> .. <a href="terminal_interface-curses-mouse__ads.htm#ref_64_26">Button4</a>;
+ <b>subtype</b> <span class="symbol"><a name="ref_70_12">Modifier_Keys</a></span> <b>is</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_61_9">Mouse_Button</a> <b>range</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_65_26">Control</a> .. <a href="terminal_interface-curses-mouse__ads.htm#ref_67_26">Alt</a>;
+
+ <b>type</b> <span class="symbol"><a name="ref_72_9">Button_State</a></span> <b>is</b> (<span class="symbol"><a name="ref_72_26">Released</a></span>,
+ <span class="symbol"><a name="ref_73_26">Pressed</a></span>,
+ <span class="symbol"><a name="ref_74_26">Clicked</a></span>,
+ <span class="symbol"><a name="ref_75_26">Double_Clicked</a></span>,
+ <span class="symbol"><a name="ref_76_26">Triple_Clicked</a></span>);
+
+ <b>type</b> Button_States <b>is</b> <b>array</b> (<a href="terminal_interface-curses-mouse__ads.htm#ref_72_9">Button_State</a>) <b>of</b> Boolean;
<b>pragma</b> Pack (Button_States);
- <span class="symbol"><A NAME="ref_81_4">All_Clicks</A></span> : <b>constant</b> Button_States := (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_74_26">Clicked</A> .. <A HREF="terminal_interface-curses-mouse__ads.htm#ref_76_26">Triple_Clicked</A> =&gt; True,
+ <span class="symbol"><a name="ref_81_4">All_Clicks</a></span> : <b>constant</b> Button_States := (<a href="terminal_interface-curses-mouse__ads.htm#ref_74_26">Clicked</a> .. <a href="terminal_interface-curses-mouse__ads.htm#ref_76_26">Triple_Clicked</a> =&gt; True,
<b>others</b> =&gt; False);
- <span class="symbol"><A NAME="ref_83_4">All_States</A></span> : <b>constant</b> Button_States := (<b>others</b> =&gt; True);
-
- <b>type</b> <span class="symbol"><A NAME="ref_85_9">Mouse_Event</A></span> <b>is</b> <b>private</b>;
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/curs_mouse.3x.html">curs_mouse.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <b>function</b> <span class="symbol"><A NAME="ref_91_13" HREF="terminal_interface-curses-mouse__adb.htm#ref_49_13">Has_Mouse</A></span> <b>return</b> Boolean;
- <span class="comment"><EM>-- Return true if a mouse device is supported, false otherwise.</EM></span>
-
- <b>procedure</b> <span class="symbol"><A NAME="ref_94_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_76_14">Register_Reportable_Event</A></span>
- (<span class="symbol"><A NAME="ref_95_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_76_41">Button</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_61_9">Mouse_Button</A>;
- <span class="symbol"><A NAME="ref_96_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_77_41">State</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_72_9">Button_State</A>;
- <span class="symbol"><A NAME="ref_97_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_78_41">Mask</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</A>);
- <span class="comment"><EM>-- Stores the event described by the button and the state in the mask.</EM></span>
- <span class="comment"><EM>-- Before you call this the first time, you should initialize the mask</EM></span>
- <span class="comment"><EM>-- with the Empty_Mask constant</EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_94_14">Register_Reportable_Event</A>);
-
- <b>procedure</b> <span class="symbol"><A NAME="ref_103_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_94_14">Register_Reportable_Events</A></span>
- (<span class="symbol"><A NAME="ref_104_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_94_42">Button</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_61_9">Mouse_Button</A>;
- <span class="symbol"><A NAME="ref_105_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_95_42">State</A></span> : Button_States;
- <span class="symbol"><A NAME="ref_106_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_96_42">Mask</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</A>);
- <span class="comment"><EM>-- Register all events described by the Button and the State bitmap.</EM></span>
- <span class="comment"><EM>-- Before you call this the first time, you should initialize the mask</EM></span>
- <span class="comment"><EM>-- with the Empty_Mask constant</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_1">|</A></EM></span>
- <span class="comment"><EM>-- There is one difference to mousmask(): we return the value of the</EM></span>
- <span class="comment"><EM>-- old mask, that means the event mask value before this call.</EM></span>
- <span class="comment"><EM>-- Not Implemented: The library version</EM></span>
- <span class="comment"><EM>-- returns a Mouse_Mask that tells which events are reported.</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_116_13" HREF="terminal_interface-curses-mouse__adb.htm#ref_106_13">Start_Mouse</A></span> (<span class="symbol"><A NAME="ref_116_26" HREF="terminal_interface-curses-mouse__adb.htm#ref_106_26">Mask</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_59_4">All_Events</A>)
- <b>return</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_mouse.3x.html">mousemask()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_116_13">Start_Mouse</A>);
-
- <b>procedure</b> <span class="symbol"><A NAME="ref_121_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_122_14">End_Mouse</A></span> (<span class="symbol"><A NAME="ref_121_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_122_25">Mask</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_58_4">No_Events</A>);
- <span class="comment"><EM>-- Terminates the mouse, restores the specified event mask</EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_121_14">End_Mouse</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_2">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_126_13" HREF="terminal_interface-curses-mouse__adb.htm#ref_61_13">Get_Mouse</A></span> <b>return</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_85_9">Mouse_Event</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_mouse.3x.html">getmouse()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_126_13">Get_Mouse</A>);
-
- <b>procedure</b> <span class="symbol"><A NAME="ref_130_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_171_14">Get_Event</A></span> (<span class="symbol"><A NAME="ref_130_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_171_25">Event</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_85_9">Mouse_Event</A>;
- <span class="symbol"><A NAME="ref_131_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_172_25">Y</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_132_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_173_25">X</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_133_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_174_25">Button</A></span> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_61_9">Mouse_Button</A>;
- <span class="symbol"><A NAME="ref_134_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_175_25">State</A></span> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_72_9">Button_State</A>);
- <span class="comment"><EM>-- !!! Warning: X and Y are screen coordinates. Due to ripped of lines they</EM></span>
- <span class="comment"><EM>-- may not be identical to window coordinates.</EM></span>
- <span class="comment"><EM>-- Not Implemented: Get_Event only reports one event, the C library</EM></span>
- <span class="comment"><EM>-- version supports multiple events, e.g. {click-1, click-3}</EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_130_14">Get_Event</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_3">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_142_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_184_14">Unget_Mouse</A></span> (<span class="symbol"><A NAME="ref_142_27" HREF="terminal_interface-curses-mouse__adb.htm#ref_184_27">Event</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_85_9">Mouse_Event</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_mouse.3x.html">ungetmouse()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_142_14">Unget_Mouse</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_4">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_147_13" HREF="terminal_interface-curses-mouse__adb.htm#ref_194_13">Enclosed_In_Window</A></span> (<span class="symbol"><A NAME="ref_147_33" HREF="terminal_interface-curses-mouse__adb.htm#ref_194_33">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_148_33" HREF="terminal_interface-curses-mouse__adb.htm#ref_195_33">Event</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_85_9">Mouse_Event</A>) <b>return</b> Boolean;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_mouse.3x.html">wenclose()</A></EM></span>
- <span class="comment"><EM>-- But : use event instead of screen coordinates.</EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_147_13">Enclosed_In_Window</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_5">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_154_13" HREF="terminal_interface-curses-mouse__adb.htm#ref_210_13">Mouse_Interval</A></span> (<span class="symbol"><A NAME="ref_154_29" HREF="terminal_interface-curses-mouse__adb.htm#ref_210_29">Msec</A></span> : Natural := 200) <b>return</b> Natural;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_mouse.3x.html">mouseinterval()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_154_13">Mouse_Interval</A>);
+ <span class="symbol"><a name="ref_83_4">All_States</a></span> : <b>constant</b> Button_States := (<b>others</b> =&gt; True);
+
+ <b>type</b> <span class="symbol"><a name="ref_85_9">Mouse_Event</a></span> <b>is</b> <b>private</b>;
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/curs_mouse.3x.html">curs_mouse.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <b>function</b> <span class="symbol"><a name="ref_91_13" href="terminal_interface-curses-mouse__adb.htm#ref_49_13">Has_Mouse</a></span> <b>return</b> Boolean;
+ <span class="comment"><em>-- Return true if a mouse device is supported, false otherwise.</em></span>
+
+ <b>procedure</b> <span class="symbol"><a name="ref_94_14" href="terminal_interface-curses-mouse__adb.htm#ref_76_14">Register_Reportable_Event</a></span>
+ (<span class="symbol"><a name="ref_95_7" href="terminal_interface-curses-mouse__adb.htm#ref_76_41">Button</a></span> : <a href="terminal_interface-curses-mouse__ads.htm#ref_61_9">Mouse_Button</a>;
+ <span class="symbol"><a name="ref_96_7" href="terminal_interface-curses-mouse__adb.htm#ref_77_41">State</a></span> : <a href="terminal_interface-curses-mouse__ads.htm#ref_72_9">Button_State</a>;
+ <span class="symbol"><a name="ref_97_7" href="terminal_interface-curses-mouse__adb.htm#ref_78_41">Mask</a></span> : <b>in</b> <b>out</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</a>);
+ <span class="comment"><em>-- Stores the event described by the button and the state in the mask.</em></span>
+ <span class="comment"><em>-- Before you call this the first time, you should initialize the mask</em></span>
+ <span class="comment"><em>-- with the Empty_Mask constant</em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-mouse__ads.htm#ref_94_14">Register_Reportable_Event</a>);
+
+ <b>procedure</b> <span class="symbol"><a name="ref_103_14" href="terminal_interface-curses-mouse__adb.htm#ref_94_14">Register_Reportable_Events</a></span>
+ (<span class="symbol"><a name="ref_104_7" href="terminal_interface-curses-mouse__adb.htm#ref_94_42">Button</a></span> : <a href="terminal_interface-curses-mouse__ads.htm#ref_61_9">Mouse_Button</a>;
+ <span class="symbol"><a name="ref_105_7" href="terminal_interface-curses-mouse__adb.htm#ref_95_42">State</a></span> : Button_States;
+ <span class="symbol"><a name="ref_106_7" href="terminal_interface-curses-mouse__adb.htm#ref_96_42">Mask</a></span> : <b>in</b> <b>out</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</a>);
+ <span class="comment"><em>-- Register all events described by the Button and the State bitmap.</em></span>
+ <span class="comment"><em>-- Before you call this the first time, you should initialize the mask</em></span>
+ <span class="comment"><em>-- with the Empty_Mask constant</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_1">|</A></em></span>
+ <span class="comment"><em>-- There is one difference to mousmask(): we return the value of the</em></span>
+ <span class="comment"><em>-- old mask, that means the event mask value before this call.</em></span>
+ <span class="comment"><em>-- Not Implemented: The library version</em></span>
+ <span class="comment"><em>-- returns a Mouse_Mask that tells which events are reported.</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_116_13" href="terminal_interface-curses-mouse__adb.htm#ref_106_13">Start_Mouse</a></span> (<span class="symbol"><a name="ref_116_26" href="terminal_interface-curses-mouse__adb.htm#ref_106_26">Mask</a></span> : <a href="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</a> := <a href="terminal_interface-curses-mouse__ads.htm#ref_59_4">All_Events</a>)
+ <b>return</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_mouse.3x.html">mousemask()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-mouse__ads.htm#ref_116_13">Start_Mouse</a>);
+
+ <b>procedure</b> <span class="symbol"><a name="ref_121_14" href="terminal_interface-curses-mouse__adb.htm#ref_122_14">End_Mouse</a></span> (<span class="symbol"><a name="ref_121_25" href="terminal_interface-curses-mouse__adb.htm#ref_122_25">Mask</a></span> : <a href="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</a> := <a href="terminal_interface-curses-mouse__ads.htm#ref_58_4">No_Events</a>);
+ <span class="comment"><em>-- Terminates the mouse, restores the specified event mask</em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-mouse__ads.htm#ref_121_14">End_Mouse</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_2">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_126_13" href="terminal_interface-curses-mouse__adb.htm#ref_61_13">Get_Mouse</a></span> <b>return</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_85_9">Mouse_Event</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_mouse.3x.html">getmouse()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-mouse__ads.htm#ref_126_13">Get_Mouse</a>);
+
+ <b>procedure</b> <span class="symbol"><a name="ref_130_14" href="terminal_interface-curses-mouse__adb.htm#ref_171_14">Get_Event</a></span> (<span class="symbol"><a name="ref_130_25" href="terminal_interface-curses-mouse__adb.htm#ref_171_25">Event</a></span> : <a href="terminal_interface-curses-mouse__ads.htm#ref_85_9">Mouse_Event</a>;
+ <span class="symbol"><a name="ref_131_25" href="terminal_interface-curses-mouse__adb.htm#ref_172_25">Y</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_132_25" href="terminal_interface-curses-mouse__adb.htm#ref_173_25">X</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_133_25" href="terminal_interface-curses-mouse__adb.htm#ref_174_25">Button</a></span> : <b>out</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_61_9">Mouse_Button</a>;
+ <span class="symbol"><a name="ref_134_25" href="terminal_interface-curses-mouse__adb.htm#ref_175_25">State</a></span> : <b>out</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_72_9">Button_State</a>);
+ <span class="comment"><em>-- !!! Warning: X and Y are screen coordinates. Due to ripped of lines they</em></span>
+ <span class="comment"><em>-- may not be identical to window coordinates.</em></span>
+ <span class="comment"><em>-- Not Implemented: Get_Event only reports one event, the C library</em></span>
+ <span class="comment"><em>-- version supports multiple events, e.g. {click-1, click-3}</em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-mouse__ads.htm#ref_130_14">Get_Event</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_3">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_142_14" href="terminal_interface-curses-mouse__adb.htm#ref_184_14">Unget_Mouse</a></span> (<span class="symbol"><a name="ref_142_27" href="terminal_interface-curses-mouse__adb.htm#ref_184_27">Event</a></span> : <a href="terminal_interface-curses-mouse__ads.htm#ref_85_9">Mouse_Event</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_mouse.3x.html">ungetmouse()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-mouse__ads.htm#ref_142_14">Unget_Mouse</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_4">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_147_13" href="terminal_interface-curses-mouse__adb.htm#ref_194_13">Enclosed_In_Window</a></span> (<span class="symbol"><a name="ref_147_33" href="terminal_interface-curses-mouse__adb.htm#ref_194_33">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_148_33" href="terminal_interface-curses-mouse__adb.htm#ref_195_33">Event</a></span> : <a href="terminal_interface-curses-mouse__ads.htm#ref_85_9">Mouse_Event</a>) <b>return</b> Boolean;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_mouse.3x.html">wenclose()</A></em></span>
+ <span class="comment"><em>-- But : use event instead of screen coordinates.</em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-mouse__ads.htm#ref_147_13">Enclosed_In_Window</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_5">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_154_13" href="terminal_interface-curses-mouse__adb.htm#ref_210_13">Mouse_Interval</a></span> (<span class="symbol"><a name="ref_154_29" href="terminal_interface-curses-mouse__adb.htm#ref_210_29">Msec</a></span> : Natural := 200) <b>return</b> Natural;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_mouse.3x.html">mouseinterval()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-mouse__ads.htm#ref_154_13">Mouse_Interval</a>);
<b>private</b>
- <span class="comment"><EM>-- This can be as little as 32 bits (unsigned), or as long as the system's</EM></span>
- <span class="comment"><EM>-- unsigned long. Declare it as the minimum size to handle all valid</EM></span>
- <span class="comment"><EM>-- sizes.</EM></span>
- <b>type</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</A> <b>is</b> <b>mod</b> 4294967296;
+ <span class="comment"><em>-- This can be as little as 32 bits (unsigned), or as long as the system's</em></span>
+ <span class="comment"><em>-- unsigned long. Declare it as the minimum size to handle all valid</em></span>
+ <span class="comment"><em>-- sizes.</em></span>
+ <b>type</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</a> <b>is</b> <b>mod</b> 4294967296;
- <b>type</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_85_9">Mouse_Event</A> <b>is</b>
+ <b>type</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_85_9">Mouse_Event</a> <b>is</b>
<b>record</b>
- <span class="symbol"><A NAME="ref_166_10">Id</A></span> : Integer <b>range</b> Integer (<A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short'First) ..
- Integer (<A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short'Last);
- <span class="symbol"><A NAME="ref_168_10">X</A></span>, <span class="symbol"><A NAME="ref_168_13">Y</A></span>, <span class="symbol"><A NAME="ref_168_16">Z</A></span> : Integer <b>range</b> Integer (<A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int'First) ..
- Integer (<A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int'Last);
- <span class="symbol"><A NAME="ref_170_10">Bstate</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</A>;
+ <span class="symbol"><a name="ref_166_10">Id</a></span> : Integer <b>range</b> Integer (<a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.short'First) ..
+ Integer (<a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.short'Last);
+ <span class="symbol"><a name="ref_168_10">X</a></span>, <span class="symbol"><a name="ref_168_13">Y</a></span>, <span class="symbol"><a name="ref_168_16">Z</a></span> : Integer <b>range</b> Integer (<a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.int'First) ..
+ Integer (<a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.int'Last);
+ <span class="symbol"><a name="ref_170_10">Bstate</a></span> : <a href="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</a>;
<b>end</b> <b>record</b>;
- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-mouse__ads.htm#ref_85_9">Mouse_Event</A>);
+ <b>pragma</b> Convention (C, <a href="terminal_interface-curses-mouse__ads.htm#ref_85_9">Mouse_Event</a>);
- <b>for</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_85_9">Mouse_Event</A> <b>use</b>
+ <b>for</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_85_9">Mouse_Event</a> <b>use</b>
<b>record</b>
- <A HREF="terminal_interface-curses-mouse__ads.htm#ref_166_10">Id</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_310_4">MEVENT_id_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_311_4">MEVENT_id_Last</A>;
- <A HREF="terminal_interface-curses-mouse__ads.htm#ref_168_10">X</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_312_4">MEVENT_x_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_313_4">MEVENT_x_Last</A>;
- <A HREF="terminal_interface-curses-mouse__ads.htm#ref_168_13">Y</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_314_4">MEVENT_y_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_315_4">MEVENT_y_Last</A>;
- <A HREF="terminal_interface-curses-mouse__ads.htm#ref_168_16">Z</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_316_4">MEVENT_z_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_317_4">MEVENT_z_Last</A>;
- <A HREF="terminal_interface-curses-mouse__ads.htm#ref_170_10">Bstate</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_318_4">MEVENT_bstate_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_319_4">MEVENT_bstate_Last</A>;
+ <a href="terminal_interface-curses-mouse__ads.htm#ref_166_10">Id</a> <b>at</b> 0 <b>range</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_310_4">MEVENT_id_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_311_4">MEVENT_id_Last</a>;
+ <a href="terminal_interface-curses-mouse__ads.htm#ref_168_10">X</a> <b>at</b> 0 <b>range</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_312_4">MEVENT_x_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_313_4">MEVENT_x_Last</a>;
+ <a href="terminal_interface-curses-mouse__ads.htm#ref_168_13">Y</a> <b>at</b> 0 <b>range</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_314_4">MEVENT_y_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_315_4">MEVENT_y_Last</a>;
+ <a href="terminal_interface-curses-mouse__ads.htm#ref_168_16">Z</a> <b>at</b> 0 <b>range</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_316_4">MEVENT_z_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_317_4">MEVENT_z_Last</a>;
+ <a href="terminal_interface-curses-mouse__ads.htm#ref_170_10">Bstate</a> <b>at</b> 0 <b>range</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_318_4">MEVENT_bstate_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_319_4">MEVENT_bstate_Last</a>;
<b>end</b> <b>record</b>;
- <b>for</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_85_9">Mouse_Event</A>'Size <b>use</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_320_4">MEVENT_Size</A>;
- Generation_Bit_Order : System.Bit_Order <b>renames</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_10_4">Bit_Order</A>;
-
- <span class="symbol"><A NAME="ref_190_4">BUTTON_CTRL</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</A> := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_348_4">BUTTON_CTRL</A>;
- <span class="symbol"><A NAME="ref_191_4">BUTTON_SHIFT</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</A> := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_349_4">BUTTON_SHIFT</A>;
- <span class="symbol"><A NAME="ref_192_4">BUTTON_ALT</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</A> := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_350_4">BUTTON_ALT</A>;
- <span class="symbol"><A NAME="ref_193_4">BUTTON1_EVENTS</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_329_4">all_events_button_1</A>;
- <span class="symbol"><A NAME="ref_195_4">BUTTON2_EVENTS</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_335_4">all_events_button_2</A>;
- <span class="symbol"><A NAME="ref_197_4">BUTTON3_EVENTS</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_341_4">all_events_button_3</A>;
- <span class="symbol"><A NAME="ref_199_4">BUTTON4_EVENTS</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_347_4">all_events_button_4</A>;
- <span class="symbol"><A NAME="ref_201_4">ALL_MOUSE_EVENTS</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</A> := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_352_4">ALL_MOUSE_EVENTS</A>;
- <A HREF="terminal_interface-curses-mouse__ads.htm#ref_58_4">No_Events</A> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</A> := 0;
- <A HREF="terminal_interface-curses-mouse__ads.htm#ref_59_4">All_Events</A> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_201_4">ALL_MOUSE_EVENTS</A>;
-
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_45_35">Mouse</A>;
-</PRE></BODY></HTML>
+ <b>for</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_85_9">Mouse_Event</a>'Size <b>use</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_320_4">MEVENT_Size</a>;
+ Generation_Bit_Order : System.Bit_Order <b>renames</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_10_4">Bit_Order</a>;
+
+ <span class="symbol"><a name="ref_190_4">BUTTON_CTRL</a></span> : <b>constant</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</a> := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_348_4">BUTTON_CTRL</a>;
+ <span class="symbol"><a name="ref_191_4">BUTTON_SHIFT</a></span> : <b>constant</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</a> := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_349_4">BUTTON_SHIFT</a>;
+ <span class="symbol"><a name="ref_192_4">BUTTON_ALT</a></span> : <b>constant</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</a> := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_350_4">BUTTON_ALT</a>;
+ <span class="symbol"><a name="ref_193_4">BUTTON1_EVENTS</a></span> : <b>constant</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_329_4">all_events_button_1</a>;
+ <span class="symbol"><a name="ref_195_4">BUTTON2_EVENTS</a></span> : <b>constant</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_335_4">all_events_button_2</a>;
+ <span class="symbol"><a name="ref_197_4">BUTTON3_EVENTS</a></span> : <b>constant</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_341_4">all_events_button_3</a>;
+ <span class="symbol"><a name="ref_199_4">BUTTON4_EVENTS</a></span> : <b>constant</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_347_4">all_events_button_4</a>;
+ <span class="symbol"><a name="ref_201_4">ALL_MOUSE_EVENTS</a></span> : <b>constant</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</a> := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_352_4">ALL_MOUSE_EVENTS</a>;
+ <a href="terminal_interface-curses-mouse__ads.htm#ref_58_4">No_Events</a> : <b>constant</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</a> := 0;
+ <a href="terminal_interface-curses-mouse__ads.htm#ref_59_4">All_Events</a> : <b>constant</b> <a href="terminal_interface-curses-mouse__ads.htm#ref_57_9">Event_Mask</a> := <a href="terminal_interface-curses-mouse__ads.htm#ref_201_4">ALL_MOUSE_EVENTS</a>;
+
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-mouse__ads.htm#ref_45_35">Mouse</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-panels-user_data__adb.htm b/doc/html/ada/terminal_interface-curses-panels-user_data__adb.htm
index 02c6e8fd854a..7270d2c89df7 100644
--- a/doc/html/ada/terminal_interface-curses-panels-user_data__adb.htm
+++ b/doc/html/ada/terminal_interface-curses-panels-user_data__adb.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-panels-user_data.adb</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-panels-user_data.adb</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,87 +11,87 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-panels-user_data.adb </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Panels.User_Data --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- B O D Y --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.13 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>;
-<b>use</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>;
-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_45_35">Panels</A>;
-<b>use</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_45_35">Panels</A>;
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-panels-user_data.adb </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Panels.User_Data --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- B O D Y --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.13 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<b>with</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C;
+<b>with</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>;
+<b>use</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>;
+<b>with</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-panels__ads.htm#ref_45_35">Panels</a>;
+<b>use</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-panels__ads.htm#ref_45_35">Panels</a>;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_45_35">Panels</A>.<span class="symbol"><A NAME="ref_48_47" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_46_42">User_Data</A></span> <b>is</b>
+<b>package</b> <b>body</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-panels__ads.htm#ref_45_35">Panels</a>.<span class="symbol"><a name="ref_48_47" href="terminal_interface-curses-panels-user_data__ads.htm#ref_46_42">User_Data</a></span> <b>is</b>
- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
+ <b>use</b> <b>type</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.int;
- <b>procedure</b> <span class="symbol"><A NAME="ref_52_14" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_54_14">Set_User_Data</A></span> (<span class="symbol"><A NAME="ref_52_29" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_54_29">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
- <span class="symbol"><A NAME="ref_53_29" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_55_29">Data</A></span> : <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_45_9">User_Access</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_52_14" href="terminal_interface-curses-panels-user_data__ads.htm#ref_54_14">Set_User_Data</a></span> (<span class="symbol"><a name="ref_52_29" href="terminal_interface-curses-panels-user_data__ads.htm#ref_54_29">Pan</a></span> : <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a>;
+ <span class="symbol"><a name="ref_53_29" href="terminal_interface-curses-panels-user_data__ads.htm#ref_55_29">Data</a></span> : <a href="terminal_interface-curses-panels-user_data__ads.htm#ref_45_9">User_Access</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_55_16">Set_Panel_Userptr</A></span> (<span class="symbol"><A NAME="ref_55_35" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_55_16">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
- <span class="symbol"><A NAME="ref_56_35" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_55_16">Addr</A></span> : <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_45_9">User_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_55_16">Set_Panel_Userptr</a></span> (<span class="symbol"><a name="ref_55_35">Pan</a></span> : <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a>;
+ <span class="symbol"><a name="ref_56_35">Addr</a></span> : <a href="terminal_interface-curses-panels-user_data__ads.htm#ref_45_9">User_Access</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Set_Panel_Userptr, "set_panel_userptr");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_55_16">Set_Panel_Userptr</A> (<A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_54_29">Pan</A>, <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_55_29">Data</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_60_4">Panel_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses-panels-user_data__adb.htm#ref_55_16">Set_Panel_Userptr</a> (<a href="terminal_interface-curses-panels-user_data__ads.htm#ref_54_29">Pan</a>, <a href="terminal_interface-curses-panels-user_data__ads.htm#ref_55_29">Data</a>) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses-panels__ads.htm#ref_60_4">Panel_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_54_14">Set_User_Data</A>;
+ <b>end</b> <a href="terminal_interface-curses-panels-user_data__ads.htm#ref_54_14">Set_User_Data</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_64_13" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_65_13">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_64_28" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_65_28">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_45_9">User_Access</A>
+ <b>function</b> <span class="symbol"><a name="ref_64_13" href="terminal_interface-curses-panels-user_data__ads.htm#ref_65_13">Get_User_Data</a></span> (<span class="symbol"><a name="ref_64_28" href="terminal_interface-curses-panels-user_data__ads.htm#ref_65_28">Pan</a></span> : <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a>) <b>return</b> <a href="terminal_interface-curses-panels-user_data__ads.htm#ref_45_9">User_Access</a>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_66_16">Panel_Userptr</A></span> (<span class="symbol"><A NAME="ref_66_31" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_66_16">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_45_9">User_Access</A>;
+ <b>function</b> <span class="symbol"><a name="ref_66_16">Panel_Userptr</a></span> (<span class="symbol"><a name="ref_66_31">Pan</a></span> : <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a>) <b>return</b> <a href="terminal_interface-curses-panels-user_data__ads.htm#ref_45_9">User_Access</a>;
<b>pragma</b> Import (C, Panel_Userptr, "panel_userptr");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_66_16">Panel_Userptr</A> (<A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_65_28">Pan</A>);
- <b>end</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_65_13">Get_User_Data</A>;
+ <b>return</b> <a href="terminal_interface-curses-panels-user_data__adb.htm#ref_66_16">Panel_Userptr</a> (<a href="terminal_interface-curses-panels-user_data__ads.htm#ref_65_28">Pan</a>);
+ <b>end</b> <a href="terminal_interface-curses-panels-user_data__ads.htm#ref_65_13">Get_User_Data</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_72_14" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_60_14">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_72_29" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_60_29">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
- <span class="symbol"><A NAME="ref_73_29" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_61_29">Data</A></span> : <b>out</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_45_9">User_Access</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_72_14" href="terminal_interface-curses-panels-user_data__ads.htm#ref_60_14">Get_User_Data</a></span> (<span class="symbol"><a name="ref_72_29" href="terminal_interface-curses-panels-user_data__ads.htm#ref_60_29">Pan</a></span> : <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a>;
+ <span class="symbol"><a name="ref_73_29" href="terminal_interface-curses-panels-user_data__ads.htm#ref_61_29">Data</a></span> : <b>out</b> <a href="terminal_interface-curses-panels-user_data__ads.htm#ref_45_9">User_Access</a>)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_61_29">Data</A> := <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_65_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_60_29">Pan</A>);
- <b>end</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_60_14">Get_User_Data</A>;
+ <a href="terminal_interface-curses-panels-user_data__ads.htm#ref_61_29">Data</a> := <a href="terminal_interface-curses-panels-user_data__ads.htm#ref_65_13">Get_User_Data</a> (<a href="terminal_interface-curses-panels-user_data__ads.htm#ref_60_29">Pan</a>);
+ <b>end</b> <a href="terminal_interface-curses-panels-user_data__ads.htm#ref_60_14">Get_User_Data</a>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_45_35">Panels</A>.<A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_46_42">User_Data</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-panels__ads.htm#ref_45_35">Panels</a>.<a href="terminal_interface-curses-panels-user_data__ads.htm#ref_46_42">User_Data</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-panels-user_data__ads.htm b/doc/html/ada/terminal_interface-curses-panels-user_data__ads.htm
index 81cd6d11ba43..a39d0e489dfe 100644
--- a/doc/html/ada/terminal_interface-curses-panels-user_data__ads.htm
+++ b/doc/html/ada/terminal_interface-curses-panels-user_data__ads.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-panels-user_data.ads</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-panels-user_data.ads</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,78 +11,78 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-panels-user_data.ads </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Panels.User_Data --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- S P E C --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1998-2003,2009 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.16 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-panels-user_data.ads </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Panels.User_Data --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- S P E C --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1998-2003,2009 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.16 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
<b>generic</b>
- <b>type</b> <span class="symbol"><A NAME="ref_44_9" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_46_42">User</A></span> <b>is</b> <b>limited</b> <b>private</b>;
- <b>type</b> <span class="symbol"><A NAME="ref_45_9" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_46_42">User_Access</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">User</A>;
-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_45_35">Panels</A>.<span class="symbol"><A NAME="ref_46_42" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_48_47">User_Data</A></span> <b>is</b>
- <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_45_35">Panels</A>.<A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_46_42">User_Data</A>);
+ <b>type</b> <span class="symbol"><a name="ref_44_9">User</a></span> <b>is</b> <b>limited</b> <b>private</b>;
+ <b>type</b> <span class="symbol"><a name="ref_45_9">User_Access</a></span> <b>is</b> <b>access</b> <b>all</b> <a href="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">User</a>;
+<b>package</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-panels__ads.htm#ref_45_35">Panels</a>.<span class="symbol"><a name="ref_46_42" href="terminal_interface-curses-panels-user_data__adb.htm#ref_48_47">User_Data</a></span> <b>is</b>
+ <b>pragma</b> Preelaborate (<a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-panels__ads.htm#ref_45_35">Panels</a>.<a href="terminal_interface-curses-panels-user_data__ads.htm#ref_46_42">User_Data</a>);
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/panel.3x.html">panel.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/panel.3x.html">panel.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
- <span class="comment"><EM>-- <A NAME="AFU_1">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_54_14" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_52_14">Set_User_Data</A></span> (<span class="symbol"><A NAME="ref_54_29" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_52_29">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
- <span class="symbol"><A NAME="ref_55_29" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_53_29">Data</A></span> : <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_45_9">User_Access</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">set_panel_userptr</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_54_14">Set_User_Data</A>);
+ <span class="comment"><em>-- <A NAME="AFU_1">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_54_14" href="terminal_interface-curses-panels-user_data__adb.htm#ref_52_14">Set_User_Data</a></span> (<span class="symbol"><a name="ref_54_29" href="terminal_interface-curses-panels-user_data__adb.htm#ref_52_29">Pan</a></span> : <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a>;
+ <span class="symbol"><a name="ref_55_29" href="terminal_interface-curses-panels-user_data__adb.htm#ref_53_29">Data</a></span> : <a href="terminal_interface-curses-panels-user_data__ads.htm#ref_45_9">User_Access</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/panel.3x.html">set_panel_userptr</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-panels-user_data__ads.htm#ref_54_14">Set_User_Data</a>);
- <span class="comment"><EM>-- <A NAME="AFU_2">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_60_14" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_72_14">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_60_29" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_72_29">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
- <span class="symbol"><A NAME="ref_61_29" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_73_29">Data</A></span> : <b>out</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_45_9">User_Access</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">panel_userptr</A></EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_2">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_60_14" href="terminal_interface-curses-panels-user_data__adb.htm#ref_72_14">Get_User_Data</a></span> (<span class="symbol"><a name="ref_60_29" href="terminal_interface-curses-panels-user_data__adb.htm#ref_72_29">Pan</a></span> : <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a>;
+ <span class="symbol"><a name="ref_61_29" href="terminal_interface-curses-panels-user_data__adb.htm#ref_73_29">Data</a></span> : <b>out</b> <a href="terminal_interface-curses-panels-user_data__ads.htm#ref_45_9">User_Access</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/panel.3x.html">panel_userptr</A></em></span>
- <span class="comment"><EM>-- <A NAME="AFU_3">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_65_13" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_64_13">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_65_28" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_64_28">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_45_9">User_Access</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">panel_userptr</A></EM></span>
- <span class="comment"><EM>-- Same as function</EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_3">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_65_13" href="terminal_interface-curses-panels-user_data__adb.htm#ref_64_13">Get_User_Data</a></span> (<span class="symbol"><a name="ref_65_28" href="terminal_interface-curses-panels-user_data__adb.htm#ref_64_28">Pan</a></span> : <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a>) <b>return</b> <a href="terminal_interface-curses-panels-user_data__ads.htm#ref_45_9">User_Access</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/panel.3x.html">panel_userptr</A></em></span>
+ <span class="comment"><em>-- Same as function</em></span>
<b>pragma</b> Inline (Get_User_Data);
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_45_35">Panels</A>.<A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_46_42">User_Data</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-panels__ads.htm#ref_45_35">Panels</a>.<a href="terminal_interface-curses-panels-user_data__ads.htm#ref_46_42">User_Data</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-panels__adb.htm b/doc/html/ada/terminal_interface-curses-panels__adb.htm
index c9a6e7cc6e9e..096d7fed682c 100644
--- a/doc/html/ada/terminal_interface-curses-panels__adb.htm
+++ b/doc/html/ada/terminal_interface-curses-panels__adb.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-panels.adb</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-panels.adb</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,174 +11,174 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-panels.adb </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Panels --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- B O D Y --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2004,2009 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.15 @</EM></span>
-<span class="comment"><EM>-- @Date: 2020/02/02 23:34:34 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>;
-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-panels.adb </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Panels --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- B O D Y --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2004,2009 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.15 @</em></span>
+<span class="comment"><em>-- @Date: 2020/02/02 23:34:34 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<b>with</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>; <b>use</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>;
+<b>with</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<span class="symbol"><A NAME="ref_46_40" HREF="terminal_interface-curses-panels__ads.htm#ref_45_35">Panels</A></span> <b>is</b>
+<b>package</b> <b>body</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<span class="symbol"><a name="ref_46_40" href="terminal_interface-curses-panels__ads.htm#ref_45_35">Panels</a></span> <b>is</b>
- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
+ <b>use</b> <b>type</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.int;
- <b>function</b> <span class="symbol"><A NAME="ref_50_13" HREF="terminal_interface-curses-panels__ads.htm#ref_67_13">Create</A></span> (<span class="symbol"><A NAME="ref_50_21" HREF="terminal_interface-curses-panels__ads.htm#ref_67_21">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>
+ <b>function</b> <span class="symbol"><a name="ref_50_13" href="terminal_interface-curses-panels__ads.htm#ref_67_13">Create</a></span> (<span class="symbol"><a name="ref_50_21" href="terminal_interface-curses-panels__ads.htm#ref_67_21">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>) <b>return</b> <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_52_16">Newpanel</A></span> (<span class="symbol"><A NAME="ref_52_26" HREF="terminal_interface-curses-panels__adb.htm#ref_52_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
+ <b>function</b> <span class="symbol"><a name="ref_52_16">Newpanel</a></span> (<span class="symbol"><a name="ref_52_26">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>) <b>return</b> <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a>;
<b>pragma</b> Import (C, Newpanel, "new_panel");
- <span class="symbol"><A NAME="ref_55_7">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
+ <span class="symbol"><a name="ref_55_7">Pan</a></span> : <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a>;
<b>begin</b>
- <A HREF="terminal_interface-curses-panels__adb.htm#ref_55_7">Pan</A> := <A HREF="terminal_interface-curses-panels__adb.htm#ref_52_16">Newpanel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_67_21">Win</A>);
- <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_55_7">Pan</A> = <A HREF="terminal_interface-curses-panels__ads.htm#ref_54_4">Null_Panel</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_60_4">Panel_Exception</A>;
+ <a href="terminal_interface-curses-panels__adb.htm#ref_55_7">Pan</a> := <a href="terminal_interface-curses-panels__adb.htm#ref_52_16">Newpanel</a> (<a href="terminal_interface-curses-panels__ads.htm#ref_67_21">Win</a>);
+ <b>if</b> <a href="terminal_interface-curses-panels__adb.htm#ref_55_7">Pan</a> = <a href="terminal_interface-curses-panels__ads.htm#ref_54_4">Null_Panel</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses-panels__ads.htm#ref_60_4">Panel_Exception</a>;
<b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_55_7">Pan</A>;
- <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_67_13">Create</A>;
+ <b>return</b> <a href="terminal_interface-curses-panels__adb.htm#ref_55_7">Pan</a>;
+ <b>end</b> <a href="terminal_interface-curses-panels__ads.htm#ref_67_13">Create</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_64_14" HREF="terminal_interface-curses-panels__ads.htm#ref_77_14">Bottom</A></span> (<span class="symbol"><A NAME="ref_64_22" HREF="terminal_interface-curses-panels__ads.htm#ref_77_22">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_64_14" href="terminal_interface-curses-panels__ads.htm#ref_77_14">Bottom</a></span> (<span class="symbol"><a name="ref_64_22" href="terminal_interface-curses-panels__ads.htm#ref_77_22">Pan</a></span> : <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_66_16">Bottompanel</A></span> (<span class="symbol"><A NAME="ref_66_29" HREF="terminal_interface-curses-panels__adb.htm#ref_66_16">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_66_16">Bottompanel</a></span> (<span class="symbol"><a name="ref_66_29">Pan</a></span> : <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Bottompanel, "bottom_panel");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_66_16">Bottompanel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_77_22">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_60_4">Panel_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses-panels__adb.htm#ref_66_16">Bottompanel</a> (<a href="terminal_interface-curses-panels__ads.htm#ref_77_22">Pan</a>) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses-panels__ads.htm#ref_60_4">Panel_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_77_14">Bottom</A>;
+ <b>end</b> <a href="terminal_interface-curses-panels__ads.htm#ref_77_14">Bottom</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_74_14" HREF="terminal_interface-curses-panels__ads.htm#ref_82_14">Top</A></span> (<span class="symbol"><A NAME="ref_74_19" HREF="terminal_interface-curses-panels__ads.htm#ref_82_19">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_74_14" href="terminal_interface-curses-panels__ads.htm#ref_82_14">Top</a></span> (<span class="symbol"><a name="ref_74_19" href="terminal_interface-curses-panels__ads.htm#ref_82_19">Pan</a></span> : <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_76_16">Toppanel</A></span> (<span class="symbol"><A NAME="ref_76_26" HREF="terminal_interface-curses-panels__adb.htm#ref_76_16">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_76_16">Toppanel</a></span> (<span class="symbol"><a name="ref_76_26">Pan</a></span> : <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Toppanel, "top_panel");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_76_16">Toppanel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_82_19">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_60_4">Panel_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses-panels__adb.htm#ref_76_16">Toppanel</a> (<a href="terminal_interface-curses-panels__ads.htm#ref_82_19">Pan</a>) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses-panels__ads.htm#ref_60_4">Panel_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_82_14">Top</A>;
+ <b>end</b> <a href="terminal_interface-curses-panels__ads.htm#ref_82_14">Top</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_84_14" HREF="terminal_interface-curses-panels__ads.htm#ref_87_14">Show</A></span> (<span class="symbol"><A NAME="ref_84_20" HREF="terminal_interface-curses-panels__ads.htm#ref_87_20">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_84_14" href="terminal_interface-curses-panels__ads.htm#ref_87_14">Show</a></span> (<span class="symbol"><a name="ref_84_20" href="terminal_interface-curses-panels__ads.htm#ref_87_20">Pan</a></span> : <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_86_16">Showpanel</A></span> (<span class="symbol"><A NAME="ref_86_27" HREF="terminal_interface-curses-panels__adb.htm#ref_86_16">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_86_16">Showpanel</a></span> (<span class="symbol"><a name="ref_86_27">Pan</a></span> : <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Showpanel, "show_panel");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_86_16">Showpanel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_87_20">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_60_4">Panel_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses-panels__adb.htm#ref_86_16">Showpanel</a> (<a href="terminal_interface-curses-panels__ads.htm#ref_87_20">Pan</a>) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses-panels__ads.htm#ref_60_4">Panel_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_87_14">Show</A>;
+ <b>end</b> <a href="terminal_interface-curses-panels__ads.htm#ref_87_14">Show</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_94_14" HREF="terminal_interface-curses-panels__ads.htm#ref_97_14">Hide</A></span> (<span class="symbol"><A NAME="ref_94_20" HREF="terminal_interface-curses-panels__ads.htm#ref_97_20">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_94_14" href="terminal_interface-curses-panels__ads.htm#ref_97_14">Hide</a></span> (<span class="symbol"><a name="ref_94_20" href="terminal_interface-curses-panels__ads.htm#ref_97_20">Pan</a></span> : <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_96_16">Hidepanel</A></span> (<span class="symbol"><A NAME="ref_96_27" HREF="terminal_interface-curses-panels__adb.htm#ref_96_16">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_96_16">Hidepanel</a></span> (<span class="symbol"><a name="ref_96_27">Pan</a></span> : <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Hidepanel, "hide_panel");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_96_16">Hidepanel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_97_20">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_60_4">Panel_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses-panels__adb.htm#ref_96_16">Hidepanel</a> (<a href="terminal_interface-curses-panels__ads.htm#ref_97_20">Pan</a>) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses-panels__ads.htm#ref_60_4">Panel_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_97_14">Hide</A>;
+ <b>end</b> <a href="terminal_interface-curses-panels__ads.htm#ref_97_14">Hide</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_104_13" HREF="terminal_interface-curses-panels__ads.htm#ref_102_13">Get_Window</A></span> (<span class="symbol"><A NAME="ref_104_25" HREF="terminal_interface-curses-panels__ads.htm#ref_102_25">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>
+ <b>function</b> <span class="symbol"><a name="ref_104_13" href="terminal_interface-curses-panels__ads.htm#ref_102_13">Get_Window</a></span> (<span class="symbol"><a name="ref_104_25" href="terminal_interface-curses-panels__ads.htm#ref_102_25">Pan</a></span> : <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_106_16">Panel_Win</A></span> (<span class="symbol"><A NAME="ref_106_27" HREF="terminal_interface-curses-panels__adb.htm#ref_106_16">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
+ <b>function</b> <span class="symbol"><a name="ref_106_16">Panel_Win</a></span> (<span class="symbol"><a name="ref_106_27">Pan</a></span> : <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
<b>pragma</b> Import (C, Panel_Win, "panel_window");
- <span class="symbol"><A NAME="ref_109_7">Win</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses-panels__adb.htm#ref_106_16">Panel_Win</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_102_25">Pan</A>);
+ <span class="symbol"><a name="ref_109_7">Win</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses-panels__adb.htm#ref_106_16">Panel_Win</a> (<a href="terminal_interface-curses-panels__ads.htm#ref_102_25">Pan</a>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_109_7">Win</A> = <A HREF="terminal_interface-curses__ads.htm#ref_57_4">Null_Window</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_60_4">Panel_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses-panels__adb.htm#ref_109_7">Win</a> = <a href="terminal_interface-curses__ads.htm#ref_57_4">Null_Window</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses-panels__ads.htm#ref_60_4">Panel_Exception</a>;
<b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_109_7">Win</A>;
- <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_102_13">Get_Window</A>;
+ <b>return</b> <a href="terminal_interface-curses-panels__adb.htm#ref_109_7">Win</a>;
+ <b>end</b> <a href="terminal_interface-curses-panels__ads.htm#ref_102_13">Get_Window</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_117_14" HREF="terminal_interface-curses-panels__ads.htm#ref_111_14">Replace</A></span> (<span class="symbol"><A NAME="ref_117_23" HREF="terminal_interface-curses-panels__ads.htm#ref_111_23">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
- <span class="symbol"><A NAME="ref_118_23" HREF="terminal_interface-curses-panels__ads.htm#ref_112_23">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_117_14" href="terminal_interface-curses-panels__ads.htm#ref_111_14">Replace</a></span> (<span class="symbol"><a name="ref_117_23" href="terminal_interface-curses-panels__ads.htm#ref_111_23">Pan</a></span> : <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a>;
+ <span class="symbol"><a name="ref_118_23" href="terminal_interface-curses-panels__ads.htm#ref_112_23">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_120_16">Replace_Pan</A></span> (<span class="symbol"><A NAME="ref_120_29" HREF="terminal_interface-curses-panels__adb.htm#ref_120_16">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
- <span class="symbol"><A NAME="ref_121_29" HREF="terminal_interface-curses-panels__adb.htm#ref_120_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_120_16">Replace_Pan</a></span> (<span class="symbol"><a name="ref_120_29">Pan</a></span> : <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a>;
+ <span class="symbol"><a name="ref_121_29">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Replace_Pan, "replace_panel");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_120_16">Replace_Pan</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_111_23">Pan</A>, <A HREF="terminal_interface-curses-panels__ads.htm#ref_112_23">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_60_4">Panel_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses-panels__adb.htm#ref_120_16">Replace_Pan</a> (<a href="terminal_interface-curses-panels__ads.htm#ref_111_23">Pan</a>, <a href="terminal_interface-curses-panels__ads.htm#ref_112_23">Win</a>) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses-panels__ads.htm#ref_60_4">Panel_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_111_14">Replace</A>;
+ <b>end</b> <a href="terminal_interface-curses-panels__ads.htm#ref_111_14">Replace</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_129_14" HREF="terminal_interface-curses-panels__ads.htm#ref_117_14">Move</A></span> (<span class="symbol"><A NAME="ref_129_20" HREF="terminal_interface-curses-panels__ads.htm#ref_117_20">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
- <span class="symbol"><A NAME="ref_130_20" HREF="terminal_interface-curses-panels__ads.htm#ref_118_20">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_131_20" HREF="terminal_interface-curses-panels__ads.htm#ref_119_20">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_129_14" href="terminal_interface-curses-panels__ads.htm#ref_117_14">Move</a></span> (<span class="symbol"><a name="ref_129_20" href="terminal_interface-curses-panels__ads.htm#ref_117_20">Pan</a></span> : <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a>;
+ <span class="symbol"><a name="ref_130_20" href="terminal_interface-curses-panels__ads.htm#ref_118_20">Line</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_131_20" href="terminal_interface-curses-panels__ads.htm#ref_119_20">Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_133_16">Move</A></span> (<span class="symbol"><A NAME="ref_133_22" HREF="terminal_interface-curses-panels__adb.htm#ref_133_16">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
- <span class="symbol"><A NAME="ref_134_22" HREF="terminal_interface-curses-panels__adb.htm#ref_133_16">Line</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_135_22" HREF="terminal_interface-curses-panels__adb.htm#ref_133_16">Column</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_133_16">Move</a></span> (<span class="symbol"><a name="ref_133_22">Pan</a></span> : <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a>;
+ <span class="symbol"><a name="ref_134_22">Line</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_135_22">Column</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Move, "move_panel");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_133_16">Move</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_117_20">Pan</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_118_20">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_119_20">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_60_4">Panel_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses-panels__adb.htm#ref_133_16">Move</a> (<a href="terminal_interface-curses-panels__ads.htm#ref_117_20">Pan</a>, <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses-panels__ads.htm#ref_118_20">Line</a>), <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses-panels__ads.htm#ref_119_20">Column</a>)) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses-panels__ads.htm#ref_60_4">Panel_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_117_14">Move</A>;
+ <b>end</b> <a href="terminal_interface-curses-panels__ads.htm#ref_117_14">Move</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_143_13" HREF="terminal_interface-curses-panels__ads.htm#ref_124_13">Is_Hidden</A></span> (<span class="symbol"><A NAME="ref_143_24" HREF="terminal_interface-curses-panels__ads.htm#ref_124_24">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> Boolean
+ <b>function</b> <span class="symbol"><a name="ref_143_13" href="terminal_interface-curses-panels__ads.htm#ref_124_13">Is_Hidden</a></span> (<span class="symbol"><a name="ref_143_24" href="terminal_interface-curses-panels__ads.htm#ref_124_24">Pan</a></span> : <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a>) <b>return</b> Boolean
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_145_16">Panel_Hidden</A></span> (<span class="symbol"><A NAME="ref_145_30" HREF="terminal_interface-curses-panels__adb.htm#ref_145_16">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_145_16">Panel_Hidden</a></span> (<span class="symbol"><a name="ref_145_30">Pan</a></span> : <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Panel_Hidden, "panel_hidden");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_145_16">Panel_Hidden</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_124_24">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_67_4">Curses_False</A> <b>then</b>
+ <b>if</b> <a href="terminal_interface-curses-panels__adb.htm#ref_145_16">Panel_Hidden</a> (<a href="terminal_interface-curses-panels__ads.htm#ref_124_24">Pan</a>) = <a href="terminal_interface-curses-aux__ads.htm#ref_67_4">Curses_False</a> <b>then</b>
<b>return</b> False;
<b>else</b>
<b>return</b> True;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_124_13">Is_Hidden</A>;
+ <b>end</b> <a href="terminal_interface-curses-panels__ads.htm#ref_124_13">Is_Hidden</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_155_14" HREF="terminal_interface-curses-panels__ads.htm#ref_139_14">Delete</A></span> (<span class="symbol"><A NAME="ref_155_22" HREF="terminal_interface-curses-panels__ads.htm#ref_139_22">Pan</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_155_14" href="terminal_interface-curses-panels__ads.htm#ref_139_14">Delete</a></span> (<span class="symbol"><a name="ref_155_22" href="terminal_interface-curses-panels__ads.htm#ref_139_22">Pan</a></span> : <b>in</b> <b>out</b> <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_157_16">Del_Panel</A></span> (<span class="symbol"><A NAME="ref_157_27" HREF="terminal_interface-curses-panels__adb.htm#ref_157_16">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_157_16">Del_Panel</a></span> (<span class="symbol"><a name="ref_157_27">Pan</a></span> : <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Del_Panel, "del_panel");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_157_16">Del_Panel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_139_22">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_60_4">Panel_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses-panels__adb.htm#ref_157_16">Del_Panel</a> (<a href="terminal_interface-curses-panels__ads.htm#ref_139_22">Pan</a>) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses-panels__ads.htm#ref_60_4">Panel_Exception</a>;
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-panels__ads.htm#ref_139_22">Pan</A> := <A HREF="terminal_interface-curses-panels__ads.htm#ref_54_4">Null_Panel</A>;
- <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_139_14">Delete</A>;
+ <a href="terminal_interface-curses-panels__ads.htm#ref_139_22">Pan</a> := <a href="terminal_interface-curses-panels__ads.htm#ref_54_4">Null_Panel</a>;
+ <b>end</b> <a href="terminal_interface-curses-panels__ads.htm#ref_139_14">Delete</a>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_45_35">Panels</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-panels__ads.htm#ref_45_35">Panels</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-panels__ads.htm b/doc/html/ada/terminal_interface-curses-panels__ads.htm
index 7879fb0c9e8d..4cc3178d5811 100644
--- a/doc/html/ada/terminal_interface-curses-panels__ads.htm
+++ b/doc/html/ada/terminal_interface-curses-panels__ads.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-panels.ads</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-panels.ads</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,155 +11,155 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-panels.ads </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Panels --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- S P E C --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1998-2009,2014 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.23 @</EM></span>
-<span class="comment"><EM>-- @Date: 2020/02/02 23:34:34 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-panels.ads </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Panels --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- S P E C --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1998-2009,2014 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.23 @</em></span>
+<span class="comment"><em>-- @Date: 2020/02/02 23:34:34 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
<b>with</b> System;
-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<span class="symbol"><A NAME="ref_45_35" HREF="terminal_interface-curses-panels__adb.htm#ref_46_40">Panels</A></span> <b>is</b>
- <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_45_35">Panels</A>);
- <b>pragma</b> Linker_Options ("-lpanel" &amp; <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_9_4">DFT_ARG_SUFFIX</A>);
+<b>package</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<span class="symbol"><a name="ref_45_35" href="terminal_interface-curses-panels__adb.htm#ref_46_40">Panels</a></span> <b>is</b>
+ <b>pragma</b> Preelaborate (<a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-panels__ads.htm#ref_45_35">Panels</a>);
+ <b>pragma</b> Linker_Options ("-lpanel" &amp; <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_9_4">DFT_ARG_SUFFIX</a>);
- <b>type</b> <span class="symbol"><A NAME="ref_49_9">Panel</A></span> <b>is</b> <b>private</b>;
+ <b>type</b> <span class="symbol"><a name="ref_49_9">Panel</a></span> <b>is</b> <b>private</b>;
- <span class="comment"><EM>---------------------------</EM></span>
- <span class="comment"><EM>-- Interface constants --</EM></span>
- <span class="comment"><EM>---------------------------</EM></span>
- <span class="symbol"><A NAME="ref_54_4">Null_Panel</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
+ <span class="comment"><em>---------------------------</em></span>
+ <span class="comment"><em>-- Interface constants --</em></span>
+ <span class="comment"><em>---------------------------</em></span>
+ <span class="symbol"><a name="ref_54_4">Null_Panel</a></span> : <b>constant</b> <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a>;
- <span class="comment"><EM>-------------------</EM></span>
- <span class="comment"><EM>-- Exceptions --</EM></span>
- <span class="comment"><EM>-------------------</EM></span>
+ <span class="comment"><em>-------------------</em></span>
+ <span class="comment"><em>-- Exceptions --</em></span>
+ <span class="comment"><em>-------------------</em></span>
- <span class="symbol"><A NAME="ref_60_4">Panel_Exception</A></span> : <b>exception</b>;
+ <span class="symbol"><a name="ref_60_4">Panel_Exception</a></span> : <b>exception</b>;
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/panel.3x.html">panel.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/panel.3x.html">panel.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
- <span class="comment"><EM>-- <A NAME="AFU_1">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_67_13" HREF="terminal_interface-curses-panels__adb.htm#ref_50_13">Create</A></span> (<span class="symbol"><A NAME="ref_67_21" HREF="terminal_interface-curses-panels__adb.htm#ref_50_21">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">new_panel()</A></EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_1">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_67_13" href="terminal_interface-curses-panels__adb.htm#ref_50_13">Create</a></span> (<span class="symbol"><a name="ref_67_21" href="terminal_interface-curses-panels__adb.htm#ref_50_21">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>) <b>return</b> <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/panel.3x.html">new_panel()</A></em></span>
<b>pragma</b> Inline (Create);
- <span class="comment"><EM>-- <A NAME="AFU_2">|</A></EM></span>
- <b>function</b> New_Panel (<span class="symbol"><A NAME="ref_72_24">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A> <b>renames</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_67_13">Create</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">new_panel()</A></EM></span>
- <span class="comment"><EM>-- pragma Inline (New_Panel);</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_3">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_77_14" HREF="terminal_interface-curses-panels__adb.htm#ref_64_14">Bottom</A></span> (<span class="symbol"><A NAME="ref_77_22" HREF="terminal_interface-curses-panels__adb.htm#ref_64_22">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">bottom_panel()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_77_14">Bottom</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_4">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_82_14" HREF="terminal_interface-curses-panels__adb.htm#ref_74_14">Top</A></span> (<span class="symbol"><A NAME="ref_82_19" HREF="terminal_interface-curses-panels__adb.htm#ref_74_19">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">top_panel()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_82_14">Top</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_5">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_87_14" HREF="terminal_interface-curses-panels__adb.htm#ref_84_14">Show</A></span> (<span class="symbol"><A NAME="ref_87_20" HREF="terminal_interface-curses-panels__adb.htm#ref_84_20">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">show_panel()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_87_14">Show</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_6">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_92_14">Update_Panels</A></span>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">update_panels()</A></EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_2">|</A></em></span>
+ <b>function</b> New_Panel (<span class="symbol"><a name="ref_72_24">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>) <b>return</b> <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a> <b>renames</b> <a href="terminal_interface-curses-panels__ads.htm#ref_67_13">Create</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/panel.3x.html">new_panel()</A></em></span>
+ <span class="comment"><em>-- pragma Inline (New_Panel);</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_3">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_77_14" href="terminal_interface-curses-panels__adb.htm#ref_64_14">Bottom</a></span> (<span class="symbol"><a name="ref_77_22" href="terminal_interface-curses-panels__adb.htm#ref_64_22">Pan</a></span> : <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/panel.3x.html">bottom_panel()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-panels__ads.htm#ref_77_14">Bottom</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_4">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_82_14" href="terminal_interface-curses-panels__adb.htm#ref_74_14">Top</a></span> (<span class="symbol"><a name="ref_82_19" href="terminal_interface-curses-panels__adb.htm#ref_74_19">Pan</a></span> : <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/panel.3x.html">top_panel()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-panels__ads.htm#ref_82_14">Top</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_5">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_87_14" href="terminal_interface-curses-panels__adb.htm#ref_84_14">Show</a></span> (<span class="symbol"><a name="ref_87_20" href="terminal_interface-curses-panels__adb.htm#ref_84_20">Pan</a></span> : <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/panel.3x.html">show_panel()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-panels__ads.htm#ref_87_14">Show</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_6">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_92_14">Update_Panels</a></span>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/panel.3x.html">update_panels()</A></em></span>
<b>pragma</b> Import (C, Update_Panels, "update_panels");
- <span class="comment"><EM>-- <A NAME="AFU_7">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_97_14" HREF="terminal_interface-curses-panels__adb.htm#ref_94_14">Hide</A></span> (<span class="symbol"><A NAME="ref_97_20" HREF="terminal_interface-curses-panels__adb.htm#ref_94_20">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">hide_panel()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_97_14">Hide</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_8">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_102_13" HREF="terminal_interface-curses-panels__adb.htm#ref_104_13">Get_Window</A></span> (<span class="symbol"><A NAME="ref_102_25" HREF="terminal_interface-curses-panels__adb.htm#ref_104_25">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">panel_window()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_102_13">Get_Window</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_9">|</A></EM></span>
- <b>function</b> Panel_Window (<span class="symbol"><A NAME="ref_107_27">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> <b>renames</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_102_13">Get_Window</A>;
- <span class="comment"><EM>-- pragma Inline (Panel_Window);</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_10">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_111_14" HREF="terminal_interface-curses-panels__adb.htm#ref_117_14">Replace</A></span> (<span class="symbol"><A NAME="ref_111_23" HREF="terminal_interface-curses-panels__adb.htm#ref_117_23">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
- <span class="symbol"><A NAME="ref_112_23" HREF="terminal_interface-curses-panels__adb.htm#ref_118_23">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">replace_panel()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_111_14">Replace</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_11">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_117_14" HREF="terminal_interface-curses-panels__adb.htm#ref_129_14">Move</A></span> (<span class="symbol"><A NAME="ref_117_20" HREF="terminal_interface-curses-panels__adb.htm#ref_129_20">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
- <span class="symbol"><A NAME="ref_118_20" HREF="terminal_interface-curses-panels__adb.htm#ref_130_20">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_119_20" HREF="terminal_interface-curses-panels__adb.htm#ref_131_20">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">move_panel()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_117_14">Move</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_12">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_124_13" HREF="terminal_interface-curses-panels__adb.htm#ref_143_13">Is_Hidden</A></span> (<span class="symbol"><A NAME="ref_124_24" HREF="terminal_interface-curses-panels__adb.htm#ref_143_24">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> Boolean;
- <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">panel_hidden()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_124_13">Is_Hidden</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_13">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_129_13">Above</A></span> (<span class="symbol"><A NAME="ref_129_20" HREF="terminal_interface-curses-panels__ads.htm#ref_129_13">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">panel_above()</A></EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_7">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_97_14" href="terminal_interface-curses-panels__adb.htm#ref_94_14">Hide</a></span> (<span class="symbol"><a name="ref_97_20" href="terminal_interface-curses-panels__adb.htm#ref_94_20">Pan</a></span> : <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/panel.3x.html">hide_panel()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-panels__ads.htm#ref_97_14">Hide</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_8">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_102_13" href="terminal_interface-curses-panels__adb.htm#ref_104_13">Get_Window</a></span> (<span class="symbol"><a name="ref_102_25" href="terminal_interface-curses-panels__adb.htm#ref_104_25">Pan</a></span> : <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/panel.3x.html">panel_window()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-panels__ads.htm#ref_102_13">Get_Window</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_9">|</A></em></span>
+ <b>function</b> Panel_Window (<span class="symbol"><a name="ref_107_27">Pan</a></span> : <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> <b>renames</b> <a href="terminal_interface-curses-panels__ads.htm#ref_102_13">Get_Window</a>;
+ <span class="comment"><em>-- pragma Inline (Panel_Window);</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_10">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_111_14" href="terminal_interface-curses-panels__adb.htm#ref_117_14">Replace</a></span> (<span class="symbol"><a name="ref_111_23" href="terminal_interface-curses-panels__adb.htm#ref_117_23">Pan</a></span> : <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a>;
+ <span class="symbol"><a name="ref_112_23" href="terminal_interface-curses-panels__adb.htm#ref_118_23">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/panel.3x.html">replace_panel()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-panels__ads.htm#ref_111_14">Replace</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_11">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_117_14" href="terminal_interface-curses-panels__adb.htm#ref_129_14">Move</a></span> (<span class="symbol"><a name="ref_117_20" href="terminal_interface-curses-panels__adb.htm#ref_129_20">Pan</a></span> : <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a>;
+ <span class="symbol"><a name="ref_118_20" href="terminal_interface-curses-panels__adb.htm#ref_130_20">Line</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_119_20" href="terminal_interface-curses-panels__adb.htm#ref_131_20">Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/panel.3x.html">move_panel()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-panels__ads.htm#ref_117_14">Move</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_12">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_124_13" href="terminal_interface-curses-panels__adb.htm#ref_143_13">Is_Hidden</a></span> (<span class="symbol"><a name="ref_124_24" href="terminal_interface-curses-panels__adb.htm#ref_143_24">Pan</a></span> : <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a>) <b>return</b> Boolean;
+ <span class="comment"><em>-- AKA: <A HREF="../man/panel.3x.html">panel_hidden()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-panels__ads.htm#ref_124_13">Is_Hidden</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_13">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_129_13">Above</a></span> (<span class="symbol"><a name="ref_129_20">Pan</a></span> : <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a>) <b>return</b> <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/panel.3x.html">panel_above()</A></em></span>
<b>pragma</b> Import (C, Above, "panel_above");
- <span class="comment"><EM>-- <A NAME="AFU_14">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_134_13">Below</A></span> (<span class="symbol"><A NAME="ref_134_20" HREF="terminal_interface-curses-panels__ads.htm#ref_134_13">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">panel_below()</A></EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_14">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_134_13">Below</a></span> (<span class="symbol"><a name="ref_134_20">Pan</a></span> : <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a>) <b>return</b> <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/panel.3x.html">panel_below()</A></em></span>
<b>pragma</b> Import (C, Below, "panel_below");
- <span class="comment"><EM>-- <A NAME="AFU_15">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_139_14" HREF="terminal_interface-curses-panels__adb.htm#ref_155_14">Delete</A></span> (<span class="symbol"><A NAME="ref_139_22" HREF="terminal_interface-curses-panels__adb.htm#ref_155_22">Pan</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">del_panel()</A></EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_15">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_139_14" href="terminal_interface-curses-panels__adb.htm#ref_155_14">Delete</a></span> (<span class="symbol"><a name="ref_139_22" href="terminal_interface-curses-panels__adb.htm#ref_155_22">Pan</a></span> : <b>in</b> <b>out</b> <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/panel.3x.html">del_panel()</A></em></span>
<b>pragma</b> Inline (Delete);
<b>private</b>
- <b>type</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
- <A HREF="terminal_interface-curses-panels__ads.htm#ref_54_4">Null_Panel</A> : <b>constant</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A> := 0;
+ <b>type</b> <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
+ <a href="terminal_interface-curses-panels__ads.htm#ref_54_4">Null_Panel</a> : <b>constant</b> <a href="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</a> := 0;
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_45_35">Panels</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-panels__ads.htm#ref_45_35">Panels</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-putwin__adb.htm b/doc/html/ada/terminal_interface-curses-putwin__adb.htm
index 32f6411ae986..4e5073d601e5 100644
--- a/doc/html/ada/terminal_interface-curses-putwin__adb.htm
+++ b/doc/html/ada/terminal_interface-curses-putwin__adb.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-putwin.adb</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-putwin.adb</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,86 +11,86 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-putwin.adb </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.PutWin --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- B O D Y --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 2000-2002,2003 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.5 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-putwin.adb </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.PutWin --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- B O D Y --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 2000-2002,2003 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.5 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
<b>with</b> Ada.Streams.Stream_IO.C_Streams;
-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C_Streams;
-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>;
+<b>with</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C_Streams;
+<b>with</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>; <b>use</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<span class="symbol"><A NAME="ref_46_40" HREF="terminal_interface-curses-putwin__ads.htm#ref_44_35">PutWin</A></span> <b>is</b>
+<b>package</b> <b>body</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<span class="symbol"><a name="ref_46_40" href="terminal_interface-curses-putwin__ads.htm#ref_44_35">PutWin</a></span> <b>is</b>
- <b>package</b> <span class="symbol"><A NAME="ref_48_12">ICS</A></span> <b>renames</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C_Streams;
- <b>package</b> <span class="symbol"><A NAME="ref_49_12">ACS</A></span> <b>renames</b> Ada.Streams.Stream_IO.C_Streams;
- <b>use</b> <b>type</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>package</b> <span class="symbol"><a name="ref_48_12">ICS</a></span> <b>renames</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C_Streams;
+ <b>package</b> <span class="symbol"><a name="ref_49_12">ACS</a></span> <b>renames</b> Ada.Streams.Stream_IO.C_Streams;
+ <b>use</b> <b>type</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_52_14" HREF="terminal_interface-curses-putwin__ads.htm#ref_46_14">Put_Window</A></span> (<span class="symbol"><A NAME="ref_52_26" HREF="terminal_interface-curses-putwin__ads.htm#ref_46_26">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_53_26" HREF="terminal_interface-curses-putwin__ads.htm#ref_47_26">File</A></span> : Ada.Streams.Stream_IO.File_Type) <b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_54_16">putwin</A></span> (<span class="symbol"><A NAME="ref_54_24" HREF="terminal_interface-curses-putwin__adb.htm#ref_54_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>; <span class="symbol"><A NAME="ref_54_38" HREF="terminal_interface-curses-putwin__adb.htm#ref_54_16">f</A></span> : <A HREF="terminal_interface-curses-putwin__adb.htm#ref_48_12">ICS</A>.FILEs) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>procedure</b> <span class="symbol"><a name="ref_52_14" href="terminal_interface-curses-putwin__ads.htm#ref_46_14">Put_Window</a></span> (<span class="symbol"><a name="ref_52_26" href="terminal_interface-curses-putwin__ads.htm#ref_46_26">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_53_26" href="terminal_interface-curses-putwin__ads.htm#ref_47_26">File</a></span> : Ada.Streams.Stream_IO.File_Type) <b>is</b>
+ <b>function</b> <span class="symbol"><a name="ref_54_16">putwin</a></span> (<span class="symbol"><a name="ref_54_24">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>; <span class="symbol"><a name="ref_54_38">f</a></span> : <a href="terminal_interface-curses-putwin__adb.htm#ref_48_12">ICS</a>.FILEs) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, putwin, "putwin");
- <span class="symbol"><A NAME="ref_57_7">R</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> := <A HREF="terminal_interface-curses-putwin__adb.htm#ref_54_16">putwin</A> (<A HREF="terminal_interface-curses-putwin__ads.htm#ref_46_26">Win</A>, <A HREF="terminal_interface-curses-putwin__adb.htm#ref_49_12">ACS</A>.C_Stream (<A HREF="terminal_interface-curses-putwin__ads.htm#ref_47_26">File</A>));
+ <span class="symbol"><a name="ref_57_7">R</a></span> : <b>constant</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> := <a href="terminal_interface-curses-putwin__adb.htm#ref_54_16">putwin</a> (<a href="terminal_interface-curses-putwin__ads.htm#ref_46_26">Win</a>, <a href="terminal_interface-curses-putwin__adb.htm#ref_49_12">ACS</a>.C_Stream (<a href="terminal_interface-curses-putwin__ads.htm#ref_47_26">File</a>));
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-putwin__adb.htm#ref_57_7">R</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_4">Curses_Ok</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses-putwin__adb.htm#ref_57_7">R</a> /= <a href="terminal_interface-curses-aux__ads.htm#ref_63_4">Curses_Ok</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-putwin__ads.htm#ref_46_14">Put_Window</A>;
+ <b>end</b> <a href="terminal_interface-curses-putwin__ads.htm#ref_46_14">Put_Window</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_64_13" HREF="terminal_interface-curses-putwin__ads.htm#ref_49_13">Get_Window</A></span> (<span class="symbol"><A NAME="ref_64_25" HREF="terminal_interface-curses-putwin__ads.htm#ref_49_25">File</A></span> : Ada.Streams.Stream_IO.File_Type)
- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> <b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_66_16">getwin</A></span> (<span class="symbol"><A NAME="ref_66_24" HREF="terminal_interface-curses-putwin__adb.htm#ref_66_16">f</A></span> : <A HREF="terminal_interface-curses-putwin__adb.htm#ref_48_12">ICS</A>.FILEs) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
+ <b>function</b> <span class="symbol"><a name="ref_64_13" href="terminal_interface-curses-putwin__ads.htm#ref_49_13">Get_Window</a></span> (<span class="symbol"><a name="ref_64_25" href="terminal_interface-curses-putwin__ads.htm#ref_49_25">File</a></span> : Ada.Streams.Stream_IO.File_Type)
+ <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> <b>is</b>
+ <b>function</b> <span class="symbol"><a name="ref_66_16">getwin</a></span> (<span class="symbol"><a name="ref_66_24">f</a></span> : <a href="terminal_interface-curses-putwin__adb.htm#ref_48_12">ICS</a>.FILEs) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
<b>pragma</b> Import (C, getwin, "getwin");
- <span class="symbol"><A NAME="ref_69_7">W</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses-putwin__adb.htm#ref_66_16">getwin</A> (<A HREF="terminal_interface-curses-putwin__adb.htm#ref_49_12">ACS</A>.C_Stream (<A HREF="terminal_interface-curses-putwin__ads.htm#ref_49_25">File</A>));
+ <span class="symbol"><a name="ref_69_7">W</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses-putwin__adb.htm#ref_66_16">getwin</a> (<a href="terminal_interface-curses-putwin__adb.htm#ref_49_12">ACS</a>.C_Stream (<a href="terminal_interface-curses-putwin__ads.htm#ref_49_25">File</a>));
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-putwin__adb.htm#ref_69_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_57_4">Null_Window</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses-putwin__adb.htm#ref_69_7">W</a> = <a href="terminal_interface-curses__ads.htm#ref_57_4">Null_Window</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>else</b>
- <b>return</b> <A HREF="terminal_interface-curses-putwin__adb.htm#ref_69_7">W</A>;
+ <b>return</b> <a href="terminal_interface-curses-putwin__adb.htm#ref_69_7">W</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-putwin__ads.htm#ref_49_13">Get_Window</A>;
+ <b>end</b> <a href="terminal_interface-curses-putwin__ads.htm#ref_49_13">Get_Window</a>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-putwin__ads.htm#ref_44_35">PutWin</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-putwin__ads.htm#ref_44_35">PutWin</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-putwin__ads.htm b/doc/html/ada/terminal_interface-curses-putwin__ads.htm
index 9246fedcb393..91f26451b6cb 100644
--- a/doc/html/ada/terminal_interface-curses-putwin__ads.htm
+++ b/doc/html/ada/terminal_interface-curses-putwin__ads.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-putwin.ads</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-putwin.ads</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,59 +11,59 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-putwin.ads </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.PutWin --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- S P E C --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 2000-2002,2003 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.5 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-putwin.ads </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.PutWin --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- S P E C --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 2000-2002,2003 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.5 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
<b>with</b> Ada.Streams.Stream_IO;
-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<span class="symbol"><A NAME="ref_44_35" HREF="terminal_interface-curses-putwin__adb.htm#ref_46_40">PutWin</A></span> <b>is</b>
+<b>package</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<span class="symbol"><a name="ref_44_35" href="terminal_interface-curses-putwin__adb.htm#ref_46_40">PutWin</a></span> <b>is</b>
- <b>procedure</b> <span class="symbol"><A NAME="ref_46_14" HREF="terminal_interface-curses-putwin__adb.htm#ref_52_14">Put_Window</A></span> (<span class="symbol"><A NAME="ref_46_26" HREF="terminal_interface-curses-putwin__adb.htm#ref_52_26">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_47_26" HREF="terminal_interface-curses-putwin__adb.htm#ref_53_26">File</A></span> : Ada.Streams.Stream_IO.File_Type);
+ <b>procedure</b> <span class="symbol"><a name="ref_46_14" href="terminal_interface-curses-putwin__adb.htm#ref_52_14">Put_Window</a></span> (<span class="symbol"><a name="ref_46_26" href="terminal_interface-curses-putwin__adb.htm#ref_52_26">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_47_26" href="terminal_interface-curses-putwin__adb.htm#ref_53_26">File</a></span> : Ada.Streams.Stream_IO.File_Type);
- <b>function</b> <span class="symbol"><A NAME="ref_49_13" HREF="terminal_interface-curses-putwin__adb.htm#ref_64_13">Get_Window</A></span> (<span class="symbol"><A NAME="ref_49_25" HREF="terminal_interface-curses-putwin__adb.htm#ref_64_25">File</A></span> : Ada.Streams.Stream_IO.File_Type) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
+ <b>function</b> <span class="symbol"><a name="ref_49_13" href="terminal_interface-curses-putwin__adb.htm#ref_64_13">Get_Window</a></span> (<span class="symbol"><a name="ref_49_25" href="terminal_interface-curses-putwin__adb.htm#ref_64_25">File</a></span> : Ada.Streams.Stream_IO.File_Type) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-putwin__ads.htm#ref_44_35">PutWin</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-putwin__ads.htm#ref_44_35">PutWin</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-termcap__adb.htm b/doc/html/ada/terminal_interface-curses-termcap__adb.htm
index b6cf8933f4de..cef7daf3f1d3 100644
--- a/doc/html/ada/terminal_interface-curses-termcap__adb.htm
+++ b/doc/html/ada/terminal_interface-curses-termcap__adb.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-termcap.adb</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-termcap.adb</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,172 +11,172 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-termcap.adb </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Termcap --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- B O D Y --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 2000-2006,2009 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.13 @</EM></span>
-<span class="comment"><EM>-- @Date: 2020/02/02 23:34:34 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-termcap.adb </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Termcap --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- B O D Y --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 2000-2006,2009 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.13 @</em></span>
+<span class="comment"><em>-- @Date: 2020/02/02 23:34:34 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>;
-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings;
+<b>with</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>; <b>use</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>;
+<b>with</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C; <b>use</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C;
+<b>with</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.Strings; <b>use</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.Strings;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<span class="symbol"><A NAME="ref_48_40" HREF="terminal_interface-curses-termcap__ads.htm#ref_43_35">Termcap</A></span> <b>is</b>
+<b>package</b> <b>body</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<span class="symbol"><a name="ref_48_40" href="terminal_interface-curses-termcap__ads.htm#ref_43_35">Termcap</a></span> <b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_50_13" HREF="terminal_interface-curses-termcap__ads.htm#ref_60_13">Get_Entry</A></span> (<span class="symbol"><A NAME="ref_50_24" HREF="terminal_interface-curses-termcap__ads.htm#ref_60_24">Name</A></span> : String) <b>return</b> Boolean
+ <b>function</b> <span class="symbol"><a name="ref_50_13" href="terminal_interface-curses-termcap__ads.htm#ref_60_13">Get_Entry</a></span> (<span class="symbol"><a name="ref_50_24" href="terminal_interface-curses-termcap__ads.htm#ref_60_24">Name</a></span> : String) <b>return</b> Boolean
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_52_16">tgetent</A></span> (<span class="symbol"><A NAME="ref_52_25" HREF="terminal_interface-curses-termcap__adb.htm#ref_52_16">name</A></span> : char_array; <span class="symbol"><A NAME="ref_52_44" HREF="terminal_interface-curses-termcap__adb.htm#ref_52_16">val</A></span> : char_array)
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_52_16">tgetent</a></span> (<span class="symbol"><a name="ref_52_25">name</a></span> : char_array; <span class="symbol"><a name="ref_52_44">val</a></span> : char_array)
+ <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, tgetent, "tgetent");
- <span class="symbol"><A NAME="ref_55_7">NameTxt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#ref_60_24">Name</A>'Length);
- <span class="symbol"><A NAME="ref_56_7">Length</A></span> : size_t;
- <span class="symbol"><A NAME="ref_57_7">ignored</A></span> : <b>constant</b> char_array (0 .. 0) := (0 =&gt; nul);
- <span class="symbol"><A NAME="ref_58_7">result</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <span class="symbol"><a name="ref_55_7">NameTxt</a></span> : char_array (0 .. <a href="terminal_interface-curses-termcap__ads.htm#ref_60_24">Name</a>'Length);
+ <span class="symbol"><a name="ref_56_7">Length</a></span> : size_t;
+ <span class="symbol"><a name="ref_57_7">ignored</a></span> : <b>constant</b> char_array (0 .. 0) := (0 =&gt; nul);
+ <span class="symbol"><a name="ref_58_7">result</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>begin</b>
- To_C (<A HREF="terminal_interface-curses-termcap__ads.htm#ref_60_24">Name</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_55_7">NameTxt</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_56_7">Length</A>);
- <A HREF="terminal_interface-curses-termcap__adb.htm#ref_58_7">result</A> := <A HREF="terminal_interface-curses-termcap__adb.htm#ref_52_16">tgetent</A> (char_array (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_57_7">ignored</A>), <A HREF="terminal_interface-curses-termcap__adb.htm#ref_55_7">NameTxt</A>);
- <b>if</b> <A HREF="terminal_interface-curses-termcap__adb.htm#ref_58_7">result</A> = -1 <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ To_C (<a href="terminal_interface-curses-termcap__ads.htm#ref_60_24">Name</a>, <a href="terminal_interface-curses-termcap__adb.htm#ref_55_7">NameTxt</a>, <a href="terminal_interface-curses-termcap__adb.htm#ref_56_7">Length</a>);
+ <a href="terminal_interface-curses-termcap__adb.htm#ref_58_7">result</a> := <a href="terminal_interface-curses-termcap__adb.htm#ref_52_16">tgetent</a> (char_array (<a href="terminal_interface-curses-termcap__adb.htm#ref_57_7">ignored</a>), <a href="terminal_interface-curses-termcap__adb.htm#ref_55_7">NameTxt</a>);
+ <b>if</b> <a href="terminal_interface-curses-termcap__adb.htm#ref_58_7">result</a> = -1 <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>else</b>
- <b>return</b> Boolean'Val (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_58_7">result</A>);
+ <b>return</b> Boolean'Val (<a href="terminal_interface-curses-termcap__adb.htm#ref_58_7">result</a>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-termcap__ads.htm#ref_60_13">Get_Entry</A>;
+ <b>end</b> <a href="terminal_interface-curses-termcap__ads.htm#ref_60_13">Get_Entry</a>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_70_13" HREF="terminal_interface-curses-termcap__ads.htm#ref_64_13">Get_Flag</A></span> (<span class="symbol"><A NAME="ref_70_23" HREF="terminal_interface-curses-termcap__ads.htm#ref_64_23">Name</A></span> : String) <b>return</b> Boolean
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_70_13" href="terminal_interface-curses-termcap__ads.htm#ref_64_13">Get_Flag</a></span> (<span class="symbol"><a name="ref_70_23" href="terminal_interface-curses-termcap__ads.htm#ref_64_23">Name</a></span> : String) <b>return</b> Boolean
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_72_16">tgetflag</A></span> (<span class="symbol"><A NAME="ref_72_26" HREF="terminal_interface-curses-termcap__adb.htm#ref_72_16">id</A></span> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_72_16">tgetflag</a></span> (<span class="symbol"><a name="ref_72_26">id</a></span> : char_array) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, tgetflag, "tgetflag");
- <span class="symbol"><A NAME="ref_74_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#ref_64_23">Name</A>'Length);
- <span class="symbol"><A NAME="ref_75_7">Length</A></span> : size_t;
+ <span class="symbol"><a name="ref_74_7">Txt</a></span> : char_array (0 .. <a href="terminal_interface-curses-termcap__ads.htm#ref_64_23">Name</a>'Length);
+ <span class="symbol"><a name="ref_75_7">Length</a></span> : size_t;
<b>begin</b>
- To_C (<A HREF="terminal_interface-curses-termcap__ads.htm#ref_64_23">Name</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_74_7">Txt</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_75_7">Length</A>);
- <b>if</b> <A HREF="terminal_interface-curses-termcap__adb.htm#ref_72_16">tgetflag</A> (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_74_7">Txt</A>) = 0 <b>then</b>
+ To_C (<a href="terminal_interface-curses-termcap__ads.htm#ref_64_23">Name</a>, <a href="terminal_interface-curses-termcap__adb.htm#ref_74_7">Txt</a>, <a href="terminal_interface-curses-termcap__adb.htm#ref_75_7">Length</a>);
+ <b>if</b> <a href="terminal_interface-curses-termcap__adb.htm#ref_72_16">tgetflag</a> (<a href="terminal_interface-curses-termcap__adb.htm#ref_74_7">Txt</a>) = 0 <b>then</b>
<b>return</b> False;
<b>else</b>
<b>return</b> True;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-termcap__ads.htm#ref_64_13">Get_Flag</A>;
+ <b>end</b> <a href="terminal_interface-curses-termcap__ads.htm#ref_64_13">Get_Flag</a>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_86_14" HREF="terminal_interface-curses-termcap__ads.htm#ref_68_14">Get_Number</A></span> (<span class="symbol"><A NAME="ref_86_26" HREF="terminal_interface-curses-termcap__ads.htm#ref_68_26">Name</A></span> : String;
- <span class="symbol"><A NAME="ref_87_26" HREF="terminal_interface-curses-termcap__ads.htm#ref_69_26">Value</A></span> : <b>out</b> Integer;
- <span class="symbol"><A NAME="ref_88_26" HREF="terminal_interface-curses-termcap__ads.htm#ref_70_26">Result</A></span> : <b>out</b> Boolean)
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_86_14" href="terminal_interface-curses-termcap__ads.htm#ref_68_14">Get_Number</a></span> (<span class="symbol"><a name="ref_86_26" href="terminal_interface-curses-termcap__ads.htm#ref_68_26">Name</a></span> : String;
+ <span class="symbol"><a name="ref_87_26" href="terminal_interface-curses-termcap__ads.htm#ref_69_26">Value</a></span> : <b>out</b> Integer;
+ <span class="symbol"><a name="ref_88_26" href="terminal_interface-curses-termcap__ads.htm#ref_70_26">Result</a></span> : <b>out</b> Boolean)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_90_16">tgetnum</A></span> (<span class="symbol"><A NAME="ref_90_25" HREF="terminal_interface-curses-termcap__adb.htm#ref_90_16">id</A></span> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_90_16">tgetnum</a></span> (<span class="symbol"><a name="ref_90_25">id</a></span> : char_array) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, tgetnum, "tgetnum");
- <span class="symbol"><A NAME="ref_92_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#ref_68_26">Name</A>'Length);
- <span class="symbol"><A NAME="ref_93_7">Length</A></span> : size_t;
+ <span class="symbol"><a name="ref_92_7">Txt</a></span> : char_array (0 .. <a href="terminal_interface-curses-termcap__ads.htm#ref_68_26">Name</a>'Length);
+ <span class="symbol"><a name="ref_93_7">Length</a></span> : size_t;
<b>begin</b>
- To_C (<A HREF="terminal_interface-curses-termcap__ads.htm#ref_68_26">Name</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_92_7">Txt</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_93_7">Length</A>);
- <A HREF="terminal_interface-curses-termcap__ads.htm#ref_69_26">Value</A> := Integer (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_90_16">tgetnum</A> (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_92_7">Txt</A>));
- <b>if</b> <A HREF="terminal_interface-curses-termcap__ads.htm#ref_69_26">Value</A> = -1 <b>then</b>
- <A HREF="terminal_interface-curses-termcap__ads.htm#ref_70_26">Result</A> := False;
+ To_C (<a href="terminal_interface-curses-termcap__ads.htm#ref_68_26">Name</a>, <a href="terminal_interface-curses-termcap__adb.htm#ref_92_7">Txt</a>, <a href="terminal_interface-curses-termcap__adb.htm#ref_93_7">Length</a>);
+ <a href="terminal_interface-curses-termcap__ads.htm#ref_69_26">Value</a> := Integer (<a href="terminal_interface-curses-termcap__adb.htm#ref_90_16">tgetnum</a> (<a href="terminal_interface-curses-termcap__adb.htm#ref_92_7">Txt</a>));
+ <b>if</b> <a href="terminal_interface-curses-termcap__ads.htm#ref_69_26">Value</a> = -1 <b>then</b>
+ <a href="terminal_interface-curses-termcap__ads.htm#ref_70_26">Result</a> := False;
<b>else</b>
- <A HREF="terminal_interface-curses-termcap__ads.htm#ref_70_26">Result</A> := True;
+ <a href="terminal_interface-curses-termcap__ads.htm#ref_70_26">Result</a> := True;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-termcap__ads.htm#ref_68_14">Get_Number</A>;
+ <b>end</b> <a href="terminal_interface-curses-termcap__ads.htm#ref_68_14">Get_Number</a>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_105_14" HREF="terminal_interface-curses-termcap__ads.htm#ref_74_14">Get_String</A></span> (<span class="symbol"><A NAME="ref_105_26" HREF="terminal_interface-curses-termcap__ads.htm#ref_74_26">Name</A></span> : String;
- <span class="symbol"><A NAME="ref_106_26" HREF="terminal_interface-curses-termcap__ads.htm#ref_75_26">Value</A></span> : <b>out</b> String;
- <span class="symbol"><A NAME="ref_107_26" HREF="terminal_interface-curses-termcap__ads.htm#ref_76_26">Result</A></span> : <b>out</b> Boolean)
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_105_14" href="terminal_interface-curses-termcap__ads.htm#ref_74_14">Get_String</a></span> (<span class="symbol"><a name="ref_105_26" href="terminal_interface-curses-termcap__ads.htm#ref_74_26">Name</a></span> : String;
+ <span class="symbol"><a name="ref_106_26" href="terminal_interface-curses-termcap__ads.htm#ref_75_26">Value</a></span> : <b>out</b> String;
+ <span class="symbol"><a name="ref_107_26" href="terminal_interface-curses-termcap__ads.htm#ref_76_26">Result</a></span> : <b>out</b> Boolean)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_109_16">tgetstr</A></span> (<span class="symbol"><A NAME="ref_109_25" HREF="terminal_interface-curses-termcap__adb.htm#ref_109_16">id</A></span> : char_array;
- <span class="symbol"><A NAME="ref_110_25" HREF="terminal_interface-curses-termcap__adb.htm#ref_109_16">buf</A></span> : char_array) <b>return</b> chars_ptr;
+ <b>function</b> <span class="symbol"><a name="ref_109_16">tgetstr</a></span> (<span class="symbol"><a name="ref_109_25">id</a></span> : char_array;
+ <span class="symbol"><a name="ref_110_25">buf</a></span> : char_array) <b>return</b> chars_ptr;
<b>pragma</b> Import (C, tgetstr, "tgetstr");
- <span class="symbol"><A NAME="ref_112_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#ref_74_26">Name</A>'Length);
- <span class="symbol"><A NAME="ref_113_7">Length</A></span> : size_t;
- <span class="symbol"><A NAME="ref_114_7">Txt2</A></span> : chars_ptr;
- <b>type</b> t <b>is</b> <b>new</b> char_array (0 .. 1024); <span class="comment"><EM>-- does it need to be 1024?</EM></span>
- <span class="symbol"><A NAME="ref_116_7">Return_Buffer</A></span> : <b>constant</b> t := (<b>others</b> =&gt; nul);
+ <span class="symbol"><a name="ref_112_7">Txt</a></span> : char_array (0 .. <a href="terminal_interface-curses-termcap__ads.htm#ref_74_26">Name</a>'Length);
+ <span class="symbol"><a name="ref_113_7">Length</a></span> : size_t;
+ <span class="symbol"><a name="ref_114_7">Txt2</a></span> : chars_ptr;
+ <b>type</b> t <b>is</b> <b>new</b> char_array (0 .. 1024); <span class="comment"><em>-- does it need to be 1024?</em></span>
+ <span class="symbol"><a name="ref_116_7">Return_Buffer</a></span> : <b>constant</b> t := (<b>others</b> =&gt; nul);
<b>begin</b>
- To_C (<A HREF="terminal_interface-curses-termcap__ads.htm#ref_74_26">Name</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_112_7">Txt</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_113_7">Length</A>);
- <A HREF="terminal_interface-curses-termcap__adb.htm#ref_114_7">Txt2</A> := <A HREF="terminal_interface-curses-termcap__adb.htm#ref_109_16">tgetstr</A> (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_112_7">Txt</A>, char_array (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_116_7">Return_Buffer</A>));
- <b>if</b> <A HREF="terminal_interface-curses-termcap__adb.htm#ref_114_7">Txt2</A> = Null_Ptr <b>then</b>
- <A HREF="terminal_interface-curses-termcap__ads.htm#ref_76_26">Result</A> := False;
+ To_C (<a href="terminal_interface-curses-termcap__ads.htm#ref_74_26">Name</a>, <a href="terminal_interface-curses-termcap__adb.htm#ref_112_7">Txt</a>, <a href="terminal_interface-curses-termcap__adb.htm#ref_113_7">Length</a>);
+ <a href="terminal_interface-curses-termcap__adb.htm#ref_114_7">Txt2</a> := <a href="terminal_interface-curses-termcap__adb.htm#ref_109_16">tgetstr</a> (<a href="terminal_interface-curses-termcap__adb.htm#ref_112_7">Txt</a>, char_array (<a href="terminal_interface-curses-termcap__adb.htm#ref_116_7">Return_Buffer</a>));
+ <b>if</b> <a href="terminal_interface-curses-termcap__adb.htm#ref_114_7">Txt2</a> = Null_Ptr <b>then</b>
+ <a href="terminal_interface-curses-termcap__ads.htm#ref_76_26">Result</a> := False;
<b>else</b>
- <A HREF="terminal_interface-curses-termcap__ads.htm#ref_75_26">Value</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_13">Fill_String</A> (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_114_7">Txt2</A>);
- <A HREF="terminal_interface-curses-termcap__ads.htm#ref_76_26">Result</A> := True;
+ <a href="terminal_interface-curses-termcap__ads.htm#ref_75_26">Value</a> := <a href="terminal_interface-curses-aux__ads.htm#ref_96_13">Fill_String</a> (<a href="terminal_interface-curses-termcap__adb.htm#ref_114_7">Txt2</a>);
+ <a href="terminal_interface-curses-termcap__ads.htm#ref_76_26">Result</a> := True;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-termcap__ads.htm#ref_74_14">Get_String</A>;
+ <b>end</b> <a href="terminal_interface-curses-termcap__ads.htm#ref_74_14">Get_String</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_128_13" HREF="terminal_interface-curses-termcap__ads.htm#ref_77_13">Get_String</A></span> (<span class="symbol"><A NAME="ref_128_25" HREF="terminal_interface-curses-termcap__ads.htm#ref_77_25">Name</A></span> : String) <b>return</b> Boolean
+ <b>function</b> <span class="symbol"><a name="ref_128_13" href="terminal_interface-curses-termcap__ads.htm#ref_77_13">Get_String</a></span> (<span class="symbol"><a name="ref_128_25" href="terminal_interface-curses-termcap__ads.htm#ref_77_25">Name</a></span> : String) <b>return</b> Boolean
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_130_16">tgetstr</A></span> (<span class="symbol"><A NAME="ref_130_25" HREF="terminal_interface-curses-termcap__adb.htm#ref_130_16">Id</A></span> : char_array;
- <span class="symbol"><A NAME="ref_131_25" HREF="terminal_interface-curses-termcap__adb.htm#ref_130_16">buf</A></span> : char_array) <b>return</b> chars_ptr;
+ <b>function</b> <span class="symbol"><a name="ref_130_16">tgetstr</a></span> (<span class="symbol"><a name="ref_130_25">Id</a></span> : char_array;
+ <span class="symbol"><a name="ref_131_25">buf</a></span> : char_array) <b>return</b> chars_ptr;
<b>pragma</b> Import (C, tgetstr, "tgetstr");
- <span class="symbol"><A NAME="ref_133_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#ref_77_25">Name</A>'Length);
- <span class="symbol"><A NAME="ref_134_7">Length</A></span> : size_t;
- <span class="symbol"><A NAME="ref_135_7">Txt2</A></span> : chars_ptr;
- <b>type</b> t <b>is</b> <b>new</b> char_array (0 .. 1024); <span class="comment"><EM>-- does it need to be 1024?</EM></span>
- <span class="symbol"><A NAME="ref_137_7">Phony_Txt</A></span> : <b>constant</b> t := (<b>others</b> =&gt; nul);
+ <span class="symbol"><a name="ref_133_7">Txt</a></span> : char_array (0 .. <a href="terminal_interface-curses-termcap__ads.htm#ref_77_25">Name</a>'Length);
+ <span class="symbol"><a name="ref_134_7">Length</a></span> : size_t;
+ <span class="symbol"><a name="ref_135_7">Txt2</a></span> : chars_ptr;
+ <b>type</b> t <b>is</b> <b>new</b> char_array (0 .. 1024); <span class="comment"><em>-- does it need to be 1024?</em></span>
+ <span class="symbol"><a name="ref_137_7">Phony_Txt</a></span> : <b>constant</b> t := (<b>others</b> =&gt; nul);
<b>begin</b>
- To_C (<A HREF="terminal_interface-curses-termcap__ads.htm#ref_77_25">Name</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_133_7">Txt</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_134_7">Length</A>);
- <A HREF="terminal_interface-curses-termcap__adb.htm#ref_135_7">Txt2</A> := <A HREF="terminal_interface-curses-termcap__adb.htm#ref_130_16">tgetstr</A> (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_133_7">Txt</A>, char_array (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_137_7">Phony_Txt</A>));
- <b>if</b> <A HREF="terminal_interface-curses-termcap__adb.htm#ref_135_7">Txt2</A> = Null_Ptr <b>then</b>
+ To_C (<a href="terminal_interface-curses-termcap__ads.htm#ref_77_25">Name</a>, <a href="terminal_interface-curses-termcap__adb.htm#ref_133_7">Txt</a>, <a href="terminal_interface-curses-termcap__adb.htm#ref_134_7">Length</a>);
+ <a href="terminal_interface-curses-termcap__adb.htm#ref_135_7">Txt2</a> := <a href="terminal_interface-curses-termcap__adb.htm#ref_130_16">tgetstr</a> (<a href="terminal_interface-curses-termcap__adb.htm#ref_133_7">Txt</a>, char_array (<a href="terminal_interface-curses-termcap__adb.htm#ref_137_7">Phony_Txt</a>));
+ <b>if</b> <a href="terminal_interface-curses-termcap__adb.htm#ref_135_7">Txt2</a> = Null_Ptr <b>then</b>
<b>return</b> False;
<b>else</b>
<b>return</b> True;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-termcap__ads.htm#ref_77_13">Get_String</A>;
+ <b>end</b> <a href="terminal_interface-curses-termcap__ads.htm#ref_77_13">Get_String</a>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_149_13" HREF="terminal_interface-curses-termcap__ads.htm#ref_54_13">TGoto</A></span> (<span class="symbol"><A NAME="ref_149_20" HREF="terminal_interface-curses-termcap__ads.htm#ref_54_20">Cap</A></span> : String;
- <span class="symbol"><A NAME="ref_150_20" HREF="terminal_interface-curses-termcap__ads.htm#ref_55_20">Col</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_151_20" HREF="terminal_interface-curses-termcap__ads.htm#ref_56_20">Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>) <b>return</b> Termcap_String <b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_152_16">tgoto</A></span> (<span class="symbol"><A NAME="ref_152_23" HREF="terminal_interface-curses-termcap__adb.htm#ref_152_16">cap</A></span> : char_array;
- <span class="symbol"><A NAME="ref_153_23" HREF="terminal_interface-curses-termcap__adb.htm#ref_152_16">col</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_154_23" HREF="terminal_interface-curses-termcap__adb.htm#ref_152_16">row</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> chars_ptr;
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_149_13" href="terminal_interface-curses-termcap__ads.htm#ref_54_13">TGoto</a></span> (<span class="symbol"><a name="ref_149_20" href="terminal_interface-curses-termcap__ads.htm#ref_54_20">Cap</a></span> : String;
+ <span class="symbol"><a name="ref_150_20" href="terminal_interface-curses-termcap__ads.htm#ref_55_20">Col</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_151_20" href="terminal_interface-curses-termcap__ads.htm#ref_56_20">Row</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>) <b>return</b> Termcap_String <b>is</b>
+ <b>function</b> <span class="symbol"><a name="ref_152_16">tgoto</a></span> (<span class="symbol"><a name="ref_152_23">cap</a></span> : char_array;
+ <span class="symbol"><a name="ref_153_23">col</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_154_23">row</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> chars_ptr;
<b>pragma</b> Import (C, tgoto);
- <span class="symbol"><A NAME="ref_156_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#ref_54_20">Cap</A>'Length);
- <span class="symbol"><A NAME="ref_157_7">Length</A></span> : size_t;
+ <span class="symbol"><a name="ref_156_7">Txt</a></span> : char_array (0 .. <a href="terminal_interface-curses-termcap__ads.htm#ref_54_20">Cap</a>'Length);
+ <span class="symbol"><a name="ref_157_7">Length</a></span> : size_t;
<b>begin</b>
- To_C (<A HREF="terminal_interface-curses-termcap__ads.htm#ref_54_20">Cap</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_156_7">Txt</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_157_7">Length</A>);
- <b>return</b> Termcap_String (<A HREF="terminal_interface-curses-aux__ads.htm#ref_96_13">Fill_String</A>
- (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_152_16">tgoto</A> (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_156_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses-termcap__ads.htm#ref_55_20">Col</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses-termcap__ads.htm#ref_56_20">Row</A>))));
- <b>end</b> <A HREF="terminal_interface-curses-termcap__ads.htm#ref_54_13">TGoto</A>;
+ To_C (<a href="terminal_interface-curses-termcap__ads.htm#ref_54_20">Cap</a>, <a href="terminal_interface-curses-termcap__adb.htm#ref_156_7">Txt</a>, <a href="terminal_interface-curses-termcap__adb.htm#ref_157_7">Length</a>);
+ <b>return</b> Termcap_String (<a href="terminal_interface-curses-aux__ads.htm#ref_96_13">Fill_String</a>
+ (<a href="terminal_interface-curses-termcap__adb.htm#ref_152_16">tgoto</a> (<a href="terminal_interface-curses-termcap__adb.htm#ref_156_7">Txt</a>, <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses-termcap__ads.htm#ref_55_20">Col</a>), <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses-termcap__ads.htm#ref_56_20">Row</a>))));
+ <b>end</b> <a href="terminal_interface-curses-termcap__ads.htm#ref_54_13">TGoto</a>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-termcap__ads.htm#ref_43_35">Termcap</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-termcap__ads.htm#ref_43_35">Termcap</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-termcap__ads.htm b/doc/html/ada/terminal_interface-curses-termcap__ads.htm
index d019b91d698f..269ee9ddf0d7 100644
--- a/doc/html/ada/terminal_interface-curses-termcap__ads.htm
+++ b/doc/html/ada/terminal_interface-curses-termcap__ads.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-termcap.ads</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-termcap.ads</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,89 +11,89 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-termcap.ads </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Termcap --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- S P E C --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 2000-2002,2003 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.5 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-termcap.ads </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Termcap --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- S P E C --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 2000-2002,2003 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.5 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<span class="symbol"><A NAME="ref_43_35" HREF="terminal_interface-curses-termcap__adb.htm#ref_48_40">Termcap</A></span> <b>is</b>
- <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-termcap__ads.htm#ref_43_35">Termcap</A>);
+<b>package</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<span class="symbol"><a name="ref_43_35" href="terminal_interface-curses-termcap__adb.htm#ref_48_40">Termcap</a></span> <b>is</b>
+ <b>pragma</b> Preelaborate (<a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-termcap__ads.htm#ref_43_35">Termcap</a>);
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page curs_termcap.3x</EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- Not implemented: tputs (see curs_terminfo)</EM></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page curs_termcap.3x</em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- Not implemented: tputs (see curs_terminfo)</em></span>
<b>type</b> Termcap_String <b>is</b> <b>new</b> String;
- <span class="comment"><EM>-- |</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_54_13" HREF="terminal_interface-curses-termcap__adb.htm#ref_149_13">TGoto</A></span> (<span class="symbol"><A NAME="ref_54_20" HREF="terminal_interface-curses-termcap__adb.htm#ref_149_20">Cap</A></span> : String;
- <span class="symbol"><A NAME="ref_55_20" HREF="terminal_interface-curses-termcap__adb.htm#ref_150_20">Col</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_56_20" HREF="terminal_interface-curses-termcap__adb.htm#ref_151_20">Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>) <b>return</b> Termcap_String;
- <span class="comment"><EM>-- AKA: tgoto()</EM></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_54_13" href="terminal_interface-curses-termcap__adb.htm#ref_149_13">TGoto</a></span> (<span class="symbol"><a name="ref_54_20" href="terminal_interface-curses-termcap__adb.htm#ref_149_20">Cap</a></span> : String;
+ <span class="symbol"><a name="ref_55_20" href="terminal_interface-curses-termcap__adb.htm#ref_150_20">Col</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_56_20" href="terminal_interface-curses-termcap__adb.htm#ref_151_20">Row</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>) <b>return</b> Termcap_String;
+ <span class="comment"><em>-- AKA: tgoto()</em></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_60_13" HREF="terminal_interface-curses-termcap__adb.htm#ref_50_13">Get_Entry</A></span> (<span class="symbol"><A NAME="ref_60_24" HREF="terminal_interface-curses-termcap__adb.htm#ref_50_24">Name</A></span> : String) <b>return</b> Boolean;
- <span class="comment"><EM>-- AKA: tgetent()</EM></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_60_13" href="terminal_interface-curses-termcap__adb.htm#ref_50_13">Get_Entry</a></span> (<span class="symbol"><a name="ref_60_24" href="terminal_interface-curses-termcap__adb.htm#ref_50_24">Name</a></span> : String) <b>return</b> Boolean;
+ <span class="comment"><em>-- AKA: tgetent()</em></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_64_13" HREF="terminal_interface-curses-termcap__adb.htm#ref_70_13">Get_Flag</A></span> (<span class="symbol"><A NAME="ref_64_23" HREF="terminal_interface-curses-termcap__adb.htm#ref_70_23">Name</A></span> : String) <b>return</b> Boolean;
- <span class="comment"><EM>-- AKA: tgetflag()</EM></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_64_13" href="terminal_interface-curses-termcap__adb.htm#ref_70_13">Get_Flag</a></span> (<span class="symbol"><a name="ref_64_23" href="terminal_interface-curses-termcap__adb.htm#ref_70_23">Name</a></span> : String) <b>return</b> Boolean;
+ <span class="comment"><em>-- AKA: tgetflag()</em></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_68_14" HREF="terminal_interface-curses-termcap__adb.htm#ref_86_14">Get_Number</A></span> (<span class="symbol"><A NAME="ref_68_26" HREF="terminal_interface-curses-termcap__adb.htm#ref_86_26">Name</A></span> : String;
- <span class="symbol"><A NAME="ref_69_26" HREF="terminal_interface-curses-termcap__adb.htm#ref_87_26">Value</A></span> : <b>out</b> Integer;
- <span class="symbol"><A NAME="ref_70_26" HREF="terminal_interface-curses-termcap__adb.htm#ref_88_26">Result</A></span> : <b>out</b> Boolean);
- <span class="comment"><EM>-- AKA: tgetnum()</EM></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_68_14" href="terminal_interface-curses-termcap__adb.htm#ref_86_14">Get_Number</a></span> (<span class="symbol"><a name="ref_68_26" href="terminal_interface-curses-termcap__adb.htm#ref_86_26">Name</a></span> : String;
+ <span class="symbol"><a name="ref_69_26" href="terminal_interface-curses-termcap__adb.htm#ref_87_26">Value</a></span> : <b>out</b> Integer;
+ <span class="symbol"><a name="ref_70_26" href="terminal_interface-curses-termcap__adb.htm#ref_88_26">Result</a></span> : <b>out</b> Boolean);
+ <span class="comment"><em>-- AKA: tgetnum()</em></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_74_14" HREF="terminal_interface-curses-termcap__adb.htm#ref_105_14">Get_String</A></span> (<span class="symbol"><A NAME="ref_74_26" HREF="terminal_interface-curses-termcap__adb.htm#ref_105_26">Name</A></span> : String;
- <span class="symbol"><A NAME="ref_75_26" HREF="terminal_interface-curses-termcap__adb.htm#ref_106_26">Value</A></span> : <b>out</b> String;
- <span class="symbol"><A NAME="ref_76_26" HREF="terminal_interface-curses-termcap__adb.htm#ref_107_26">Result</A></span> : <b>out</b> Boolean);
- <b>function</b> <span class="symbol"><A NAME="ref_77_13" HREF="terminal_interface-curses-termcap__adb.htm#ref_128_13">Get_String</A></span> (<span class="symbol"><A NAME="ref_77_25" HREF="terminal_interface-curses-termcap__adb.htm#ref_128_25">Name</A></span> : String) <b>return</b> Boolean;
- <span class="comment"><EM>-- Returns True if the string is found.</EM></span>
- <span class="comment"><EM>-- AKA: tgetstr()</EM></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_74_14" href="terminal_interface-curses-termcap__adb.htm#ref_105_14">Get_String</a></span> (<span class="symbol"><a name="ref_74_26" href="terminal_interface-curses-termcap__adb.htm#ref_105_26">Name</a></span> : String;
+ <span class="symbol"><a name="ref_75_26" href="terminal_interface-curses-termcap__adb.htm#ref_106_26">Value</a></span> : <b>out</b> String;
+ <span class="symbol"><a name="ref_76_26" href="terminal_interface-curses-termcap__adb.htm#ref_107_26">Result</a></span> : <b>out</b> Boolean);
+ <b>function</b> <span class="symbol"><a name="ref_77_13" href="terminal_interface-curses-termcap__adb.htm#ref_128_13">Get_String</a></span> (<span class="symbol"><a name="ref_77_25" href="terminal_interface-curses-termcap__adb.htm#ref_128_25">Name</a></span> : String) <b>return</b> Boolean;
+ <span class="comment"><em>-- Returns True if the string is found.</em></span>
+ <span class="comment"><em>-- AKA: tgetstr()</em></span>
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-termcap__ads.htm#ref_43_35">Termcap</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-termcap__ads.htm#ref_43_35">Termcap</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-terminfo__adb.htm b/doc/html/ada/terminal_interface-curses-terminfo__adb.htm
index 9b25898c6f5c..c84c2035542f 100644
--- a/doc/html/ada/terminal_interface-curses-terminfo__adb.htm
+++ b/doc/html/ada/terminal_interface-curses-terminfo__adb.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-terminfo.adb</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-terminfo.adb</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,170 +11,170 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-terminfo.adb </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Terminfo --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- B O D Y --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 2000-2006,2009 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.7 @</EM></span>
-<span class="comment"><EM>-- @Date: 2020/02/02 23:34:34 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-terminfo.adb </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Terminfo --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- B O D Y --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 2000-2006,2009 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.7 @</em></span>
+<span class="comment"><em>-- @Date: 2020/02/02 23:34:34 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>;
-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings;
+<b>with</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>; <b>use</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>;
+<b>with</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C; <b>use</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C;
+<b>with</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.Strings; <b>use</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.Strings;
<b>with</b> Ada.Unchecked_Conversion;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<span class="symbol"><A NAME="ref_49_40" HREF="terminal_interface-curses-terminfo__ads.htm#ref_45_35">Terminfo</A></span> <b>is</b>
+<b>package</b> <b>body</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<span class="symbol"><a name="ref_49_40" href="terminal_interface-curses-terminfo__ads.htm#ref_45_35">Terminfo</a></span> <b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_51_13" HREF="terminal_interface-curses-terminfo__adb.htm#ref_53_13">Is_MinusOne_Pointer</A></span> (<span class="symbol"><A NAME="ref_51_34" HREF="terminal_interface-curses-terminfo__adb.htm#ref_53_34">P</A></span> : chars_ptr) <b>return</b> Boolean;
+ <b>function</b> <span class="symbol"><a name="ref_51_13" href="terminal_interface-curses-terminfo__adb.htm#ref_53_13">Is_MinusOne_Pointer</a></span> (<span class="symbol"><a name="ref_51_34" href="terminal_interface-curses-terminfo__adb.htm#ref_53_34">P</a></span> : chars_ptr) <b>return</b> Boolean;
- <b>function</b> <span class="symbol"><A NAME="ref_53_13" HREF="terminal_interface-curses-terminfo__adb.htm#ref_51_13">Is_MinusOne_Pointer</A></span> (<span class="symbol"><A NAME="ref_53_34" HREF="terminal_interface-curses-terminfo__adb.htm#ref_51_34">P</A></span> : chars_ptr) <b>return</b> Boolean <b>is</b>
- <b>type</b> <span class="symbol"><A NAME="ref_54_12">Weird_Address</A></span> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
- <span class="symbol"><A NAME="ref_55_7">Invalid_Pointer</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_54_12">Weird_Address</A> := -1;
+ <b>function</b> <span class="symbol"><a name="ref_53_13" href="terminal_interface-curses-terminfo__adb.htm#ref_51_13">Is_MinusOne_Pointer</a></span> (<span class="symbol"><a name="ref_53_34" href="terminal_interface-curses-terminfo__adb.htm#ref_51_34">P</a></span> : chars_ptr) <b>return</b> Boolean <b>is</b>
+ <b>type</b> <span class="symbol"><a name="ref_54_12">Weird_Address</a></span> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
+ <span class="symbol"><a name="ref_55_7">Invalid_Pointer</a></span> : <b>constant</b> <a href="terminal_interface-curses-terminfo__adb.htm#ref_54_12">Weird_Address</a> := -1;
<b>function</b> To_Weird <b>is</b> <b>new</b> Ada.Unchecked_Conversion
- (Source =&gt; chars_ptr, Target =&gt; <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_54_12">Weird_Address</A>);
+ (Source =&gt; chars_ptr, Target =&gt; <a href="terminal_interface-curses-terminfo__adb.htm#ref_54_12">Weird_Address</a>);
<b>begin</b>
- <b>if</b> To_Weird (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_51_34">P</A>) = <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_55_7">Invalid_Pointer</A> <b>then</b>
+ <b>if</b> To_Weird (<a href="terminal_interface-curses-terminfo__adb.htm#ref_51_34">P</a>) = <a href="terminal_interface-curses-terminfo__adb.htm#ref_55_7">Invalid_Pointer</a> <b>then</b>
<b>return</b> True;
<b>else</b>
<b>return</b> False;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_51_13">Is_MinusOne_Pointer</A>;
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_51_13">Is_MinusOne_Pointer</A>);
+ <b>end</b> <a href="terminal_interface-curses-terminfo__adb.htm#ref_51_13">Is_MinusOne_Pointer</a>;
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-terminfo__adb.htm#ref_51_13">Is_MinusOne_Pointer</a>);
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_68_13" HREF="terminal_interface-curses-terminfo__ads.htm#ref_65_13">Get_Flag</A></span> (<span class="symbol"><A NAME="ref_68_23" HREF="terminal_interface-curses-terminfo__ads.htm#ref_65_23">Name</A></span> : String) <b>return</b> Boolean
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_68_13" href="terminal_interface-curses-terminfo__ads.htm#ref_65_13">Get_Flag</a></span> (<span class="symbol"><a name="ref_68_23" href="terminal_interface-curses-terminfo__ads.htm#ref_65_23">Name</a></span> : String) <b>return</b> Boolean
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_70_16">tigetflag</A></span> (<span class="symbol"><A NAME="ref_70_27" HREF="terminal_interface-curses-terminfo__adb.htm#ref_70_16">id</A></span> : char_array) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A>;
+ <b>function</b> <span class="symbol"><a name="ref_70_16">tigetflag</a></span> (<span class="symbol"><a name="ref_70_27">id</a></span> : char_array) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a>;
<b>pragma</b> Import (C, tigetflag);
- <span class="symbol"><A NAME="ref_72_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_65_23">Name</A>'Length);
- <span class="symbol"><A NAME="ref_73_7">Length</A></span> : size_t;
+ <span class="symbol"><a name="ref_72_7">Txt</a></span> : char_array (0 .. <a href="terminal_interface-curses-terminfo__ads.htm#ref_65_23">Name</a>'Length);
+ <span class="symbol"><a name="ref_73_7">Length</a></span> : size_t;
<b>begin</b>
- To_C (<A HREF="terminal_interface-curses-terminfo__ads.htm#ref_65_23">Name</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_72_7">Txt</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_73_7">Length</A>);
- <b>if</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_70_16">tigetflag</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_72_7">Txt</A>) = <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_66_4">Curses_True</A>) <b>then</b>
+ To_C (<a href="terminal_interface-curses-terminfo__ads.htm#ref_65_23">Name</a>, <a href="terminal_interface-curses-terminfo__adb.htm#ref_72_7">Txt</a>, <a href="terminal_interface-curses-terminfo__adb.htm#ref_73_7">Length</a>);
+ <b>if</b> <a href="terminal_interface-curses-terminfo__adb.htm#ref_70_16">tigetflag</a> (<a href="terminal_interface-curses-terminfo__adb.htm#ref_72_7">Txt</a>) = <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a> (<a href="terminal_interface-curses-aux__ads.htm#ref_66_4">Curses_True</a>) <b>then</b>
<b>return</b> True;
<b>else</b>
<b>return</b> False;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_65_13">Get_Flag</A>;
+ <b>end</b> <a href="terminal_interface-curses-terminfo__ads.htm#ref_65_13">Get_Flag</a>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_84_14" HREF="terminal_interface-curses-terminfo__ads.htm#ref_58_14">Get_String</A></span> (<span class="symbol"><A NAME="ref_84_26" HREF="terminal_interface-curses-terminfo__ads.htm#ref_58_26">Name</A></span> : String;
- <span class="symbol"><A NAME="ref_85_26" HREF="terminal_interface-curses-terminfo__ads.htm#ref_59_26">Value</A></span> : <b>out</b> Terminfo_String;
- <span class="symbol"><A NAME="ref_86_26" HREF="terminal_interface-curses-terminfo__ads.htm#ref_60_26">Result</A></span> : <b>out</b> Boolean)
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_84_14" href="terminal_interface-curses-terminfo__ads.htm#ref_58_14">Get_String</a></span> (<span class="symbol"><a name="ref_84_26" href="terminal_interface-curses-terminfo__ads.htm#ref_58_26">Name</a></span> : String;
+ <span class="symbol"><a name="ref_85_26" href="terminal_interface-curses-terminfo__ads.htm#ref_59_26">Value</a></span> : <b>out</b> Terminfo_String;
+ <span class="symbol"><a name="ref_86_26" href="terminal_interface-curses-terminfo__ads.htm#ref_60_26">Result</a></span> : <b>out</b> Boolean)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_88_16">tigetstr</A></span> (<span class="symbol"><A NAME="ref_88_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_88_16">id</A></span> : char_array) <b>return</b> chars_ptr;
+ <b>function</b> <span class="symbol"><a name="ref_88_16">tigetstr</a></span> (<span class="symbol"><a name="ref_88_26">id</a></span> : char_array) <b>return</b> chars_ptr;
<b>pragma</b> Import (C, tigetstr, "tigetstr");
- <span class="symbol"><A NAME="ref_90_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_58_26">Name</A>'Length);
- <span class="symbol"><A NAME="ref_91_7">Length</A></span> : size_t;
- <span class="symbol"><A NAME="ref_92_7">Txt2</A></span> : chars_ptr;
+ <span class="symbol"><a name="ref_90_7">Txt</a></span> : char_array (0 .. <a href="terminal_interface-curses-terminfo__ads.htm#ref_58_26">Name</a>'Length);
+ <span class="symbol"><a name="ref_91_7">Length</a></span> : size_t;
+ <span class="symbol"><a name="ref_92_7">Txt2</a></span> : chars_ptr;
<b>begin</b>
- To_C (<A HREF="terminal_interface-curses-terminfo__ads.htm#ref_58_26">Name</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_90_7">Txt</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_91_7">Length</A>);
- <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_92_7">Txt2</A> := <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_88_16">tigetstr</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_90_7">Txt</A>);
- <b>if</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_92_7">Txt2</A> = Null_Ptr <b>then</b>
- <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_60_26">Result</A> := False;
- <b>elsif</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_51_13">Is_MinusOne_Pointer</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_92_7">Txt2</A>) <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ To_C (<a href="terminal_interface-curses-terminfo__ads.htm#ref_58_26">Name</a>, <a href="terminal_interface-curses-terminfo__adb.htm#ref_90_7">Txt</a>, <a href="terminal_interface-curses-terminfo__adb.htm#ref_91_7">Length</a>);
+ <a href="terminal_interface-curses-terminfo__adb.htm#ref_92_7">Txt2</a> := <a href="terminal_interface-curses-terminfo__adb.htm#ref_88_16">tigetstr</a> (<a href="terminal_interface-curses-terminfo__adb.htm#ref_90_7">Txt</a>);
+ <b>if</b> <a href="terminal_interface-curses-terminfo__adb.htm#ref_92_7">Txt2</a> = Null_Ptr <b>then</b>
+ <a href="terminal_interface-curses-terminfo__ads.htm#ref_60_26">Result</a> := False;
+ <b>elsif</b> <a href="terminal_interface-curses-terminfo__adb.htm#ref_51_13">Is_MinusOne_Pointer</a> (<a href="terminal_interface-curses-terminfo__adb.htm#ref_92_7">Txt2</a>) <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>else</b>
- <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_59_26">Value</A> := Terminfo_String (<A HREF="terminal_interface-curses-aux__ads.htm#ref_96_13">Fill_String</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_92_7">Txt2</A>));
- <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_60_26">Result</A> := True;
+ <a href="terminal_interface-curses-terminfo__ads.htm#ref_59_26">Value</a> := Terminfo_String (<a href="terminal_interface-curses-aux__ads.htm#ref_96_13">Fill_String</a> (<a href="terminal_interface-curses-terminfo__adb.htm#ref_92_7">Txt2</a>));
+ <a href="terminal_interface-curses-terminfo__ads.htm#ref_60_26">Result</a> := True;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_58_14">Get_String</A>;
+ <b>end</b> <a href="terminal_interface-curses-terminfo__ads.htm#ref_58_14">Get_String</a>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_107_13" HREF="terminal_interface-curses-terminfo__ads.htm#ref_61_13">Has_String</A></span> (<span class="symbol"><A NAME="ref_107_25" HREF="terminal_interface-curses-terminfo__ads.htm#ref_61_25">Name</A></span> : String) <b>return</b> Boolean
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_107_13" href="terminal_interface-curses-terminfo__ads.htm#ref_61_13">Has_String</a></span> (<span class="symbol"><a name="ref_107_25" href="terminal_interface-curses-terminfo__ads.htm#ref_61_25">Name</a></span> : String) <b>return</b> Boolean
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_109_16">tigetstr</A></span> (<span class="symbol"><A NAME="ref_109_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_109_16">id</A></span> : char_array) <b>return</b> chars_ptr;
+ <b>function</b> <span class="symbol"><a name="ref_109_16">tigetstr</a></span> (<span class="symbol"><a name="ref_109_26">id</a></span> : char_array) <b>return</b> chars_ptr;
<b>pragma</b> Import (C, tigetstr, "tigetstr");
- <span class="symbol"><A NAME="ref_111_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_61_25">Name</A>'Length);
- <span class="symbol"><A NAME="ref_112_7">Length</A></span> : size_t;
- <span class="symbol"><A NAME="ref_113_7">Txt2</A></span> : chars_ptr;
+ <span class="symbol"><a name="ref_111_7">Txt</a></span> : char_array (0 .. <a href="terminal_interface-curses-terminfo__ads.htm#ref_61_25">Name</a>'Length);
+ <span class="symbol"><a name="ref_112_7">Length</a></span> : size_t;
+ <span class="symbol"><a name="ref_113_7">Txt2</a></span> : chars_ptr;
<b>begin</b>
- To_C (<A HREF="terminal_interface-curses-terminfo__ads.htm#ref_61_25">Name</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_111_7">Txt</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_112_7">Length</A>);
- <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_113_7">Txt2</A> := <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_109_16">tigetstr</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_111_7">Txt</A>);
- <b>if</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_113_7">Txt2</A> = Null_Ptr <b>then</b>
+ To_C (<a href="terminal_interface-curses-terminfo__ads.htm#ref_61_25">Name</a>, <a href="terminal_interface-curses-terminfo__adb.htm#ref_111_7">Txt</a>, <a href="terminal_interface-curses-terminfo__adb.htm#ref_112_7">Length</a>);
+ <a href="terminal_interface-curses-terminfo__adb.htm#ref_113_7">Txt2</a> := <a href="terminal_interface-curses-terminfo__adb.htm#ref_109_16">tigetstr</a> (<a href="terminal_interface-curses-terminfo__adb.htm#ref_111_7">Txt</a>);
+ <b>if</b> <a href="terminal_interface-curses-terminfo__adb.htm#ref_113_7">Txt2</a> = Null_Ptr <b>then</b>
<b>return</b> False;
- <b>elsif</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_51_13">Is_MinusOne_Pointer</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_113_7">Txt2</A>) <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>elsif</b> <a href="terminal_interface-curses-terminfo__adb.htm#ref_51_13">Is_MinusOne_Pointer</a> (<a href="terminal_interface-curses-terminfo__adb.htm#ref_113_7">Txt2</a>) <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>else</b>
<b>return</b> True;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_61_13">Has_String</A>;
+ <b>end</b> <a href="terminal_interface-curses-terminfo__ads.htm#ref_61_13">Has_String</a>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_127_13" HREF="terminal_interface-curses-terminfo__ads.htm#ref_69_13">Get_Number</A></span> (<span class="symbol"><A NAME="ref_127_25" HREF="terminal_interface-curses-terminfo__ads.htm#ref_69_25">Name</A></span> : String) <b>return</b> Integer <b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_128_16">tigetstr</A></span> (<span class="symbol"><A NAME="ref_128_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_128_16">s</A></span> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_127_13" href="terminal_interface-curses-terminfo__ads.htm#ref_69_13">Get_Number</a></span> (<span class="symbol"><a name="ref_127_25" href="terminal_interface-curses-terminfo__ads.htm#ref_69_25">Name</a></span> : String) <b>return</b> Integer <b>is</b>
+ <b>function</b> <span class="symbol"><a name="ref_128_16">tigetstr</a></span> (<span class="symbol"><a name="ref_128_26">s</a></span> : char_array) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, tigetstr);
- <span class="symbol"><A NAME="ref_130_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_69_25">Name</A>'Length);
- <span class="symbol"><A NAME="ref_131_7">Length</A></span> : size_t;
+ <span class="symbol"><a name="ref_130_7">Txt</a></span> : char_array (0 .. <a href="terminal_interface-curses-terminfo__ads.htm#ref_69_25">Name</a>'Length);
+ <span class="symbol"><a name="ref_131_7">Length</a></span> : size_t;
<b>begin</b>
- To_C (<A HREF="terminal_interface-curses-terminfo__ads.htm#ref_69_25">Name</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_130_7">Txt</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_131_7">Length</A>);
- <b>return</b> Integer (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_128_16">tigetstr</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_130_7">Txt</A>));
- <b>end</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_69_13">Get_Number</A>;
+ To_C (<a href="terminal_interface-curses-terminfo__ads.htm#ref_69_25">Name</a>, <a href="terminal_interface-curses-terminfo__adb.htm#ref_130_7">Txt</a>, <a href="terminal_interface-curses-terminfo__adb.htm#ref_131_7">Length</a>);
+ <b>return</b> Integer (<a href="terminal_interface-curses-terminfo__adb.htm#ref_128_16">tigetstr</a> (<a href="terminal_interface-curses-terminfo__adb.htm#ref_130_7">Txt</a>));
+ <b>end</b> <a href="terminal_interface-curses-terminfo__ads.htm#ref_69_13">Get_Number</a>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_138_14" HREF="terminal_interface-curses-terminfo__ads.htm#ref_77_14">Put_String</A></span> (<span class="symbol"><A NAME="ref_138_26" HREF="terminal_interface-curses-terminfo__ads.htm#ref_77_26">Str</A></span> : <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_45_35">Terminfo_String</A>;
- <span class="symbol"><A NAME="ref_139_26" HREF="terminal_interface-curses-terminfo__ads.htm#ref_78_26">affcnt</A></span> : Natural := 1;
- <span class="symbol"><A NAME="ref_140_26" HREF="terminal_interface-curses-terminfo__ads.htm#ref_79_26">putc</A></span> : <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_72_9">putctype</A> := <b>null</b>) <b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_141_16">tputs</A></span> (<span class="symbol"><A NAME="ref_141_23" HREF="terminal_interface-curses-terminfo__adb.htm#ref_141_16">str</A></span> : char_array;
- <span class="symbol"><A NAME="ref_142_23" HREF="terminal_interface-curses-terminfo__adb.htm#ref_141_16">affcnt</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_143_23" HREF="terminal_interface-curses-terminfo__adb.htm#ref_141_16">putc</A></span> : <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_72_9">putctype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <b>function</b> <span class="symbol"><A NAME="ref_144_16">putp</A></span> (<span class="symbol"><A NAME="ref_144_22" HREF="terminal_interface-curses-terminfo__adb.htm#ref_144_16">str</A></span> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_138_14" href="terminal_interface-curses-terminfo__ads.htm#ref_77_14">Put_String</a></span> (<span class="symbol"><a name="ref_138_26" href="terminal_interface-curses-terminfo__ads.htm#ref_77_26">Str</a></span> : <a href="terminal_interface-curses-terminfo__ads.htm#ref_45_35">Terminfo_String</a>;
+ <span class="symbol"><a name="ref_139_26" href="terminal_interface-curses-terminfo__ads.htm#ref_78_26">affcnt</a></span> : Natural := 1;
+ <span class="symbol"><a name="ref_140_26" href="terminal_interface-curses-terminfo__ads.htm#ref_79_26">putc</a></span> : <a href="terminal_interface-curses-terminfo__ads.htm#ref_72_9">putctype</a> := <b>null</b>) <b>is</b>
+ <b>function</b> <span class="symbol"><a name="ref_141_16">tputs</a></span> (<span class="symbol"><a name="ref_141_23">str</a></span> : char_array;
+ <span class="symbol"><a name="ref_142_23">affcnt</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_143_23">putc</a></span> : <a href="terminal_interface-curses-terminfo__ads.htm#ref_72_9">putctype</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <b>function</b> <span class="symbol"><a name="ref_144_16">putp</a></span> (<span class="symbol"><a name="ref_144_22">str</a></span> : char_array) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, tputs);
<b>pragma</b> Import (C, putp);
- <span class="symbol"><A NAME="ref_147_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_77_26">Str</A>'Length);
- <span class="symbol"><A NAME="ref_148_7">Length</A></span> : size_t;
- <span class="symbol"><A NAME="ref_149_7">Err</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <span class="symbol"><a name="ref_147_7">Txt</a></span> : char_array (0 .. <a href="terminal_interface-curses-terminfo__ads.htm#ref_77_26">Str</a>'Length);
+ <span class="symbol"><a name="ref_148_7">Length</a></span> : size_t;
+ <span class="symbol"><a name="ref_149_7">Err</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>begin</b>
- To_C (String (<A HREF="terminal_interface-curses-terminfo__ads.htm#ref_77_26">Str</A>), <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_147_7">Txt</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_148_7">Length</A>);
- <b>if</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_79_26">putc</A> = <b>null</b> <b>then</b>
- <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_149_7">Err</A> := <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_144_16">putp</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_147_7">Txt</A>);
+ To_C (String (<a href="terminal_interface-curses-terminfo__ads.htm#ref_77_26">Str</a>), <a href="terminal_interface-curses-terminfo__adb.htm#ref_147_7">Txt</a>, <a href="terminal_interface-curses-terminfo__adb.htm#ref_148_7">Length</a>);
+ <b>if</b> <a href="terminal_interface-curses-terminfo__ads.htm#ref_79_26">putc</a> = <b>null</b> <b>then</b>
+ <a href="terminal_interface-curses-terminfo__adb.htm#ref_149_7">Err</a> := <a href="terminal_interface-curses-terminfo__adb.htm#ref_144_16">putp</a> (<a href="terminal_interface-curses-terminfo__adb.htm#ref_147_7">Txt</a>);
<b>else</b>
- <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_149_7">Err</A> := <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_141_16">tputs</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_147_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses-terminfo__ads.htm#ref_78_26">affcnt</A>), <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_79_26">putc</A>);
+ <a href="terminal_interface-curses-terminfo__adb.htm#ref_149_7">Err</a> := <a href="terminal_interface-curses-terminfo__adb.htm#ref_141_16">tputs</a> (<a href="terminal_interface-curses-terminfo__adb.htm#ref_147_7">Txt</a>, <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses-terminfo__ads.htm#ref_78_26">affcnt</a>), <a href="terminal_interface-curses-terminfo__ads.htm#ref_79_26">putc</a>);
<b>end</b> <b>if</b>;
- <b>if</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_149_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses-terminfo__adb.htm#ref_149_7">Err</a> = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_77_14">Put_String</A>;
+ <b>end</b> <a href="terminal_interface-curses-terminfo__ads.htm#ref_77_14">Put_String</a>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-terminfo__ads.htm#ref_45_35">Terminfo</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-terminfo__ads.htm#ref_45_35">Terminfo</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-terminfo__ads.htm b/doc/html/ada/terminal_interface-curses-terminfo__ads.htm
index e4721d0d29e4..5859280772b5 100644
--- a/doc/html/ada/terminal_interface-curses-terminfo__ads.htm
+++ b/doc/html/ada/terminal_interface-curses-terminfo__ads.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-terminfo.ads</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-terminfo.ads</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,90 +11,90 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-terminfo.ads </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Terminfo --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- S P E C --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 2000-2002,2003 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.5 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-terminfo.ads </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Terminfo --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- S P E C --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 2000-2002,2003 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.5 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
+<b>with</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C;
-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<span class="symbol"><A NAME="ref_45_35" HREF="terminal_interface-curses-terminfo__adb.htm#ref_49_40">Terminfo</A></span> <b>is</b>
- <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-terminfo__ads.htm#ref_45_35">Terminfo</A>);
+<b>package</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<span class="symbol"><a name="ref_45_35" href="terminal_interface-curses-terminfo__adb.htm#ref_49_40">Terminfo</a></span> <b>is</b>
+ <b>pragma</b> Preelaborate (<a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-terminfo__ads.htm#ref_45_35">Terminfo</a>);
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page curs_terminfo.3x</EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- Not implemented: setupterm, setterm, set_curterm, del_curterm,</EM></span>
- <span class="comment"><EM>-- restartterm, tparm, putp, vidputs, vidattr,</EM></span>
- <span class="comment"><EM>-- mvcur</EM></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page curs_terminfo.3x</em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- Not implemented: setupterm, setterm, set_curterm, del_curterm,</em></span>
+ <span class="comment"><em>-- restartterm, tparm, putp, vidputs, vidattr,</em></span>
+ <span class="comment"><em>-- mvcur</em></span>
<b>type</b> Terminfo_String <b>is</b> <b>new</b> String;
- <span class="comment"><EM>-- |</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_58_14" HREF="terminal_interface-curses-terminfo__adb.htm#ref_84_14">Get_String</A></span> (<span class="symbol"><A NAME="ref_58_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_84_26">Name</A></span> : String;
- <span class="symbol"><A NAME="ref_59_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_85_26">Value</A></span> : <b>out</b> Terminfo_String;
- <span class="symbol"><A NAME="ref_60_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_86_26">Result</A></span> : <b>out</b> Boolean);
- <b>function</b> <span class="symbol"><A NAME="ref_61_13" HREF="terminal_interface-curses-terminfo__adb.htm#ref_107_13">Has_String</A></span> (<span class="symbol"><A NAME="ref_61_25" HREF="terminal_interface-curses-terminfo__adb.htm#ref_107_25">Name</A></span> : String) <b>return</b> Boolean;
- <span class="comment"><EM>-- AKA: tigetstr()</EM></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_58_14" href="terminal_interface-curses-terminfo__adb.htm#ref_84_14">Get_String</a></span> (<span class="symbol"><a name="ref_58_26" href="terminal_interface-curses-terminfo__adb.htm#ref_84_26">Name</a></span> : String;
+ <span class="symbol"><a name="ref_59_26" href="terminal_interface-curses-terminfo__adb.htm#ref_85_26">Value</a></span> : <b>out</b> Terminfo_String;
+ <span class="symbol"><a name="ref_60_26" href="terminal_interface-curses-terminfo__adb.htm#ref_86_26">Result</a></span> : <b>out</b> Boolean);
+ <b>function</b> <span class="symbol"><a name="ref_61_13" href="terminal_interface-curses-terminfo__adb.htm#ref_107_13">Has_String</a></span> (<span class="symbol"><a name="ref_61_25" href="terminal_interface-curses-terminfo__adb.htm#ref_107_25">Name</a></span> : String) <b>return</b> Boolean;
+ <span class="comment"><em>-- AKA: tigetstr()</em></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_65_13" HREF="terminal_interface-curses-terminfo__adb.htm#ref_68_13">Get_Flag</A></span> (<span class="symbol"><A NAME="ref_65_23" HREF="terminal_interface-curses-terminfo__adb.htm#ref_68_23">Name</A></span> : String) <b>return</b> Boolean;
- <span class="comment"><EM>-- AKA: tigetflag()</EM></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_65_13" href="terminal_interface-curses-terminfo__adb.htm#ref_68_13">Get_Flag</a></span> (<span class="symbol"><a name="ref_65_23" href="terminal_interface-curses-terminfo__adb.htm#ref_68_23">Name</a></span> : String) <b>return</b> Boolean;
+ <span class="comment"><em>-- AKA: tigetflag()</em></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_69_13" HREF="terminal_interface-curses-terminfo__adb.htm#ref_127_13">Get_Number</A></span> (<span class="symbol"><A NAME="ref_69_25" HREF="terminal_interface-curses-terminfo__adb.htm#ref_127_25">Name</A></span> : String) <b>return</b> Integer;
- <span class="comment"><EM>-- AKA: tigetnum()</EM></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_69_13" href="terminal_interface-curses-terminfo__adb.htm#ref_127_13">Get_Number</a></span> (<span class="symbol"><a name="ref_69_25" href="terminal_interface-curses-terminfo__adb.htm#ref_127_25">Name</a></span> : String) <b>return</b> Integer;
+ <span class="comment"><em>-- AKA: tigetnum()</em></span>
- <b>type</b> <span class="symbol"><A NAME="ref_72_9">putctype</A></span> <b>is</b> <b>access</b> <b>function</b> (<span class="symbol"><A NAME="ref_72_38" HREF="terminal_interface-curses-terminfo__ads.htm#ref_72_9">c</A></span> : <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int)
- <b>return</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_72_9">putctype</A>);
+ <b>type</b> <span class="symbol"><a name="ref_72_9">putctype</a></span> <b>is</b> <b>access</b> <b>function</b> (<span class="symbol"><a name="ref_72_38">c</a></span> : <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.int)
+ <b>return</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.int;
+ <b>pragma</b> Convention (C, <a href="terminal_interface-curses-terminfo__ads.htm#ref_72_9">putctype</a>);
- <span class="comment"><EM>-- |</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_77_14" HREF="terminal_interface-curses-terminfo__adb.htm#ref_138_14">Put_String</A></span> (<span class="symbol"><A NAME="ref_77_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_138_26">Str</A></span> : Terminfo_String;
- <span class="symbol"><A NAME="ref_78_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_139_26">affcnt</A></span> : Natural := 1;
- <span class="symbol"><A NAME="ref_79_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_140_26">putc</A></span> : <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_72_9">putctype</A> := <b>null</b>);
- <span class="comment"><EM>-- AKA: tputs()</EM></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_77_14" href="terminal_interface-curses-terminfo__adb.htm#ref_138_14">Put_String</a></span> (<span class="symbol"><a name="ref_77_26" href="terminal_interface-curses-terminfo__adb.htm#ref_138_26">Str</a></span> : Terminfo_String;
+ <span class="symbol"><a name="ref_78_26" href="terminal_interface-curses-terminfo__adb.htm#ref_139_26">affcnt</a></span> : Natural := 1;
+ <span class="symbol"><a name="ref_79_26" href="terminal_interface-curses-terminfo__adb.htm#ref_140_26">putc</a></span> : <a href="terminal_interface-curses-terminfo__ads.htm#ref_72_9">putctype</a> := <b>null</b>);
+ <span class="comment"><em>-- AKA: tputs()</em></span>
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-terminfo__ads.htm#ref_45_35">Terminfo</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-terminfo__ads.htm#ref_45_35">Terminfo</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-text_io-aux__adb.htm b/doc/html/ada/terminal_interface-curses-text_io-aux__adb.htm
index 2fa040c7d603..6ce4a43c7b76 100644
--- a/doc/html/ada/terminal_interface-curses-text_io-aux__adb.htm
+++ b/doc/html/ada/terminal_interface-curses-text_io-aux__adb.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-text_io-aux.adb</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-text_io-aux.adb</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,137 +11,137 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-aux.adb </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Aux --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- B O D Y --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2006,2009 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.14 @</EM></span>
-<span class="comment"><EM>-- @Date: 2020/02/02 23:34:34 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>.<span class="symbol"><A NAME="ref_43_48" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_43_51">Aux</A></span> <b>is</b>
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-text_io-aux.adb </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Text_IO.Aux --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- B O D Y --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2006,2009 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.14 @</em></span>
+<span class="comment"><em>-- @Date: 2020/02/02 23:34:34 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<b>package</b> <b>body</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>.<span class="symbol"><a name="ref_43_48" href="terminal_interface-curses-text_io-aux__ads.htm#ref_43_51">Aux</a></span> <b>is</b>
- <b>procedure</b> <span class="symbol"><A NAME="ref_45_14" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_14">Put_Buf</A></span>
- (<span class="symbol"><A NAME="ref_46_7" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_50_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_47_7" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_51_7">Buf</A></span> : String;
- <span class="symbol"><A NAME="ref_48_7" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_52_7">Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A>;
- <span class="symbol"><A NAME="ref_49_7" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_53_7">Signal</A></span> : Boolean := True;
- <span class="symbol"><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_54_7">Ljust</A></span> : Boolean := False)
+ <b>procedure</b> <span class="symbol"><a name="ref_45_14" href="terminal_interface-curses-text_io-aux__ads.htm#ref_49_14">Put_Buf</a></span>
+ (<span class="symbol"><a name="ref_46_7" href="terminal_interface-curses-text_io-aux__ads.htm#ref_50_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_47_7" href="terminal_interface-curses-text_io-aux__ads.htm#ref_51_7">Buf</a></span> : String;
+ <span class="symbol"><a name="ref_48_7" href="terminal_interface-curses-text_io-aux__ads.htm#ref_52_7">Width</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a>;
+ <span class="symbol"><a name="ref_49_7" href="terminal_interface-curses-text_io-aux__ads.htm#ref_53_7">Signal</a></span> : Boolean := True;
+ <span class="symbol"><a name="ref_50_7" href="terminal_interface-curses-text_io-aux__ads.htm#ref_54_7">Ljust</a></span> : Boolean := False)
<b>is</b>
- <span class="symbol"><A NAME="ref_52_7">L</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A>;
- <span class="symbol"><A NAME="ref_53_7">Len</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A>;
- <span class="symbol"><A NAME="ref_54_7">W</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_52_7">Width</A>;
- <span class="symbol"><A NAME="ref_55_7">LC</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</A>;
- <span class="symbol"><A NAME="ref_56_7">CC</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</A>;
- <span class="symbol"><A NAME="ref_57_7">Y</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_58_7">X</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
+ <span class="symbol"><a name="ref_52_7">L</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a>;
+ <span class="symbol"><a name="ref_53_7">Len</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a>;
+ <span class="symbol"><a name="ref_54_7">W</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-aux__ads.htm#ref_52_7">Width</a>;
+ <span class="symbol"><a name="ref_55_7">LC</a></span> : <a href="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</a>;
+ <span class="symbol"><a name="ref_56_7">CC</a></span> : <a href="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</a>;
+ <span class="symbol"><a name="ref_57_7">Y</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_58_7">X</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_60_17" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_62_17">Output</A></span> (<span class="symbol"><A NAME="ref_60_25" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_62_25">From</A></span>, <span class="symbol"><A NAME="ref_60_31" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_62_31">To</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A>);
+ <b>procedure</b> <span class="symbol"><a name="ref_60_17" href="terminal_interface-curses-text_io-aux__adb.htm#ref_62_17">Output</a></span> (<span class="symbol"><a name="ref_60_25" href="terminal_interface-curses-text_io-aux__adb.htm#ref_62_25">From</a></span>, <span class="symbol"><a name="ref_60_31" href="terminal_interface-curses-text_io-aux__adb.htm#ref_62_31">To</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a>);
- <b>procedure</b> <span class="symbol"><A NAME="ref_62_17" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_60_17">Output</A></span> (<span class="symbol"><A NAME="ref_62_25" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_60_25">From</A></span>, <span class="symbol"><A NAME="ref_62_31" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_60_31">To</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_62_17" href="terminal_interface-curses-text_io-aux__adb.htm#ref_60_17">Output</a></span> (<span class="symbol"><a name="ref_62_25" href="terminal_interface-curses-text_io-aux__adb.htm#ref_60_25">From</a></span>, <span class="symbol"><a name="ref_62_31" href="terminal_interface-curses-text_io-aux__adb.htm#ref_60_31">To</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a>)
<b>is</b>
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">Len</A> &gt; 0 <b>then</b>
- <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_54_7">W</A> = 0 <b>then</b>
- <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_54_7">W</A> := <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">Len</A>;
+ <b>if</b> <a href="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">Len</a> &gt; 0 <b>then</b>
+ <b>if</b> <a href="terminal_interface-curses-text_io-aux__adb.htm#ref_54_7">W</a> = 0 <b>then</b>
+ <a href="terminal_interface-curses-text_io-aux__adb.htm#ref_54_7">W</a> := <a href="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">Len</a>;
<b>end</b> <b>if</b>;
- <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">Len</A> &gt; <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_54_7">W</A> <b>then</b>
- <span class="comment"><EM>-- LRM A10.6 (7) says this</EM></span>
- <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_54_7">W</A> := <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">Len</A>;
+ <b>if</b> <a href="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">Len</a> &gt; <a href="terminal_interface-curses-text_io-aux__adb.htm#ref_54_7">W</a> <b>then</b>
+ <span class="comment"><em>-- LRM A10.6 (7) says this</em></span>
+ <a href="terminal_interface-curses-text_io-aux__adb.htm#ref_54_7">W</a> := <a href="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">Len</a>;
<b>end</b> <b>if</b>;
- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">Len</A> &lt;= <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_54_7">W</A>);
- <A HREF="terminal_interface-curses__ads.htm#ref_1399_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_50_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_55_7">LC</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_56_7">CC</A>);
- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">Len</A>) &gt; <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_56_7">CC</A> <b>then</b>
- <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_53_7">Signal</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_135_4">Layout_Error</A>;
+ <b>pragma</b> Assert (<a href="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">Len</a> &lt;= <a href="terminal_interface-curses-text_io-aux__adb.htm#ref_54_7">W</a>);
+ <a href="terminal_interface-curses__ads.htm#ref_1399_14">Get_Size</a> (<a href="terminal_interface-curses-text_io-aux__ads.htm#ref_50_7">Win</a>, <a href="terminal_interface-curses-text_io-aux__adb.htm#ref_55_7">LC</a>, <a href="terminal_interface-curses-text_io-aux__adb.htm#ref_56_7">CC</a>);
+ <b>if</b> <a href="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</a> (<a href="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">Len</a>) &gt; <a href="terminal_interface-curses-text_io-aux__adb.htm#ref_56_7">CC</a> <b>then</b>
+ <b>if</b> <a href="terminal_interface-curses-text_io-aux__ads.htm#ref_53_7">Signal</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_135_4">Layout_Error</a>;
<b>else</b>
<b>return</b>;
<b>end</b> <b>if</b>;
<b>else</b>
- <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">Len</A> &lt; <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_54_7">W</A> <b>and</b> <b>then</b> <b>not</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_54_7">Ljust</A> <b>then</b>
+ <b>if</b> <a href="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">Len</a> &lt; <a href="terminal_interface-curses-text_io-aux__adb.htm#ref_54_7">W</a> <b>and</b> <b>then</b> <b>not</b> <a href="terminal_interface-curses-text_io-aux__ads.htm#ref_54_7">Ljust</a> <b>then</b>
<b>declare</b>
- <span class="symbol"><A NAME="ref_85_22">Filler</A></span> : <b>constant</b> String (1 .. (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_54_7">W</A> - <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">Len</A>))
+ <span class="symbol"><a name="ref_85_22">Filler</a></span> : <b>constant</b> String (1 .. (<a href="terminal_interface-curses-text_io-aux__adb.htm#ref_54_7">W</a> - <a href="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">Len</a>))
:= (<b>others</b> =&gt; ' ');
<b>begin</b>
- <A HREF="terminal_interface-curses-text_io__ads.htm#ref_116_14">Put</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_50_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_85_22">Filler</A>);
+ <a href="terminal_interface-curses-text_io__ads.htm#ref_116_14">Put</a> (<a href="terminal_interface-curses-text_io-aux__ads.htm#ref_50_7">Win</a>, <a href="terminal_interface-curses-text_io-aux__adb.htm#ref_85_22">Filler</a>);
<b>end</b>;
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses__ads.htm#ref_1415_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_50_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_57_7">Y</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_58_7">X</A>);
- <b>if</b> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_58_7">X</A> + <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">Len</A>)) &gt; <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_56_7">CC</A> <b>then</b>
- <A HREF="terminal_interface-curses-text_io__ads.htm#ref_87_14">New_Line</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_50_7">Win</A>);
+ <a href="terminal_interface-curses__ads.htm#ref_1415_14">Get_Cursor_Position</a> (<a href="terminal_interface-curses-text_io-aux__ads.htm#ref_50_7">Win</a>, <a href="terminal_interface-curses-text_io-aux__adb.htm#ref_57_7">Y</a>, <a href="terminal_interface-curses-text_io-aux__adb.htm#ref_58_7">X</a>);
+ <b>if</b> (<a href="terminal_interface-curses-text_io-aux__adb.htm#ref_58_7">X</a> + <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a> (<a href="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">Len</a>)) &gt; <a href="terminal_interface-curses-text_io-aux__adb.htm#ref_56_7">CC</a> <b>then</b>
+ <a href="terminal_interface-curses-text_io__ads.htm#ref_87_14">New_Line</a> (<a href="terminal_interface-curses-text_io-aux__ads.htm#ref_50_7">Win</a>);
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-text_io__ads.htm#ref_116_14">Put</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_50_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_51_7">Buf</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_60_25">From</A> .. <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_60_31">To</A>));
- <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">Len</A> &lt; <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_54_7">W</A> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_54_7">Ljust</A> <b>then</b>
+ <a href="terminal_interface-curses-text_io__ads.htm#ref_116_14">Put</a> (<a href="terminal_interface-curses-text_io-aux__ads.htm#ref_50_7">Win</a>, <a href="terminal_interface-curses-text_io-aux__ads.htm#ref_51_7">Buf</a> (<a href="terminal_interface-curses-text_io-aux__adb.htm#ref_60_25">From</a> .. <a href="terminal_interface-curses-text_io-aux__adb.htm#ref_60_31">To</a>));
+ <b>if</b> <a href="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">Len</a> &lt; <a href="terminal_interface-curses-text_io-aux__adb.htm#ref_54_7">W</a> <b>and</b> <b>then</b> <a href="terminal_interface-curses-text_io-aux__ads.htm#ref_54_7">Ljust</a> <b>then</b>
<b>declare</b>
- <span class="symbol"><A NAME="ref_98_22">Filler</A></span> : <b>constant</b> String (1 .. (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_54_7">W</A> - <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">Len</A>))
+ <span class="symbol"><a name="ref_98_22">Filler</a></span> : <b>constant</b> String (1 .. (<a href="terminal_interface-curses-text_io-aux__adb.htm#ref_54_7">W</a> - <a href="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">Len</a>))
:= (<b>others</b> =&gt; ' ');
<b>begin</b>
- <A HREF="terminal_interface-curses-text_io__ads.htm#ref_116_14">Put</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_50_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_98_22">Filler</A>);
+ <a href="terminal_interface-curses-text_io__ads.htm#ref_116_14">Put</a> (<a href="terminal_interface-curses-text_io-aux__ads.htm#ref_50_7">Win</a>, <a href="terminal_interface-curses-text_io-aux__adb.htm#ref_98_22">Filler</a>);
<b>end</b>;
<b>end</b> <b>if</b>;
<b>end</b> <b>if</b>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_60_17">Output</A>;
+ <b>end</b> <a href="terminal_interface-curses-text_io-aux__adb.htm#ref_60_17">Output</a>;
<b>begin</b>
- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_50_7">Win</A> /= <A HREF="terminal_interface-curses__ads.htm#ref_57_4">Null_Window</A>);
- <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_54_7">Ljust</A> <b>then</b>
- <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">L</A> := 1;
- <b>for</b> <span class="symbol"><A NAME="ref_112_14">I</A></span> <b>in</b> 1 .. <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_51_7">Buf</A>'Length <b>loop</b>
- <b>exit</b> <b>when</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_51_7">Buf</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">L</A>) = ' ';
- <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">L</A> := <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">L</A> + 1;
+ <b>pragma</b> Assert (<a href="terminal_interface-curses-text_io-aux__ads.htm#ref_50_7">Win</a> /= <a href="terminal_interface-curses__ads.htm#ref_57_4">Null_Window</a>);
+ <b>if</b> <a href="terminal_interface-curses-text_io-aux__ads.htm#ref_54_7">Ljust</a> <b>then</b>
+ <a href="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">L</a> := 1;
+ <b>for</b> <span class="symbol"><a name="ref_112_14">I</a></span> <b>in</b> 1 .. <a href="terminal_interface-curses-text_io-aux__ads.htm#ref_51_7">Buf</a>'Length <b>loop</b>
+ <b>exit</b> <b>when</b> <a href="terminal_interface-curses-text_io-aux__ads.htm#ref_51_7">Buf</a> (<a href="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">L</a>) = ' ';
+ <a href="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">L</a> := <a href="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">L</a> + 1;
<b>end</b> <b>loop</b>;
- <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">Len</A> := <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">L</A> - 1;
- <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_60_17">Output</A> (1, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">Len</A>);
- <b>else</b> <span class="comment"><EM>-- input buffer is not left justified</EM></span>
- <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">L</A> := <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_51_7">Buf</A>'Length;
- <b>for</b> <span class="symbol"><A NAME="ref_120_14">I</A></span> <b>in</b> 1 .. <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_51_7">Buf</A>'Length <b>loop</b>
- <b>exit</b> <b>when</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_51_7">Buf</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">L</A>) = ' ';
- <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">L</A> := <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">L</A> - 1;
+ <a href="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">Len</a> := <a href="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">L</a> - 1;
+ <a href="terminal_interface-curses-text_io-aux__adb.htm#ref_60_17">Output</a> (1, <a href="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">Len</a>);
+ <b>else</b> <span class="comment"><em>-- input buffer is not left justified</em></span>
+ <a href="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">L</a> := <a href="terminal_interface-curses-text_io-aux__ads.htm#ref_51_7">Buf</a>'Length;
+ <b>for</b> <span class="symbol"><a name="ref_120_14">I</a></span> <b>in</b> 1 .. <a href="terminal_interface-curses-text_io-aux__ads.htm#ref_51_7">Buf</a>'Length <b>loop</b>
+ <b>exit</b> <b>when</b> <a href="terminal_interface-curses-text_io-aux__ads.htm#ref_51_7">Buf</a> (<a href="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">L</a>) = ' ';
+ <a href="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">L</a> := <a href="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">L</a> - 1;
<b>end</b> <b>loop</b>;
- <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">Len</A> := <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_51_7">Buf</A>'Length - <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">L</A>;
- <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_60_17">Output</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">L</A> + 1, <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_51_7">Buf</A>'Length);
+ <a href="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">Len</a> := <a href="terminal_interface-curses-text_io-aux__ads.htm#ref_51_7">Buf</a>'Length - <a href="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">L</a>;
+ <a href="terminal_interface-curses-text_io-aux__adb.htm#ref_60_17">Output</a> (<a href="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">L</a> + 1, <a href="terminal_interface-curses-text_io-aux__ads.htm#ref_51_7">Buf</a>'Length);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_14">Put_Buf</A>;
+ <b>end</b> <a href="terminal_interface-curses-text_io-aux__ads.htm#ref_49_14">Put_Buf</a>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_43_51">Aux</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>.<a href="terminal_interface-curses-text_io-aux__ads.htm#ref_43_51">Aux</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-text_io-aux__ads.htm b/doc/html/ada/terminal_interface-curses-text_io-aux__ads.htm
index 62eac4caf717..82589864026d 100644
--- a/doc/html/ada/terminal_interface-curses-text_io-aux__ads.htm
+++ b/doc/html/ada/terminal_interface-curses-text_io-aux__ads.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-text_io-aux.ads</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-text_io-aux.ads</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,64 +11,64 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-aux.ads </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Aux --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- S P E C --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2006,2009 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.15 @</EM></span>
-<span class="comment"><EM>-- @Date: 2020/02/02 23:34:34 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<b>private</b> <b>package</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>.<span class="symbol"><A NAME="ref_43_51" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_43_48">Aux</A></span> <b>is</b>
- <span class="comment"><EM>-- pragma Preelaborate (Aux);</EM></span>
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-text_io-aux.ads </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Text_IO.Aux --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- S P E C --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2006,2009 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.15 @</em></span>
+<span class="comment"><em>-- @Date: 2020/02/02 23:34:34 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<b>private</b> <b>package</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>.<span class="symbol"><a name="ref_43_51" href="terminal_interface-curses-text_io-aux__adb.htm#ref_43_48">Aux</a></span> <b>is</b>
+ <span class="comment"><em>-- pragma Preelaborate (Aux);</em></span>
- <span class="comment"><EM>-- This routine is called from the Text_IO output routines for numeric</EM></span>
- <span class="comment"><EM>-- and enumeration types.</EM></span>
- <span class="comment"><EM>--</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_49_14" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_45_14">Put_Buf</A></span>
- (<span class="symbol"><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_46_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>; <span class="comment"><EM>-- The output window</EM></span>
- <span class="symbol"><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_47_7">Buf</A></span> : String; <span class="comment"><EM>-- The buffer containing the text</EM></span>
- <span class="symbol"><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_48_7">Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A>; <span class="comment"><EM>-- The width of the output field</EM></span>
- <span class="symbol"><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_49_7">Signal</A></span> : Boolean := True; <span class="comment"><EM>-- If true, we raise Layout_Error</EM></span>
- <span class="symbol"><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_50_7">Ljust</A></span> : Boolean := False); <span class="comment"><EM>-- The Buf is left justified</EM></span>
+ <span class="comment"><em>-- This routine is called from the Text_IO output routines for numeric</em></span>
+ <span class="comment"><em>-- and enumeration types.</em></span>
+ <span class="comment"><em>--</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_49_14" href="terminal_interface-curses-text_io-aux__adb.htm#ref_45_14">Put_Buf</a></span>
+ (<span class="symbol"><a name="ref_50_7" href="terminal_interface-curses-text_io-aux__adb.htm#ref_46_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>; <span class="comment"><em>-- The output window</em></span>
+ <span class="symbol"><a name="ref_51_7" href="terminal_interface-curses-text_io-aux__adb.htm#ref_47_7">Buf</a></span> : String; <span class="comment"><em>-- The buffer containing the text</em></span>
+ <span class="symbol"><a name="ref_52_7" href="terminal_interface-curses-text_io-aux__adb.htm#ref_48_7">Width</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a>; <span class="comment"><em>-- The width of the output field</em></span>
+ <span class="symbol"><a name="ref_53_7" href="terminal_interface-curses-text_io-aux__adb.htm#ref_49_7">Signal</a></span> : Boolean := True; <span class="comment"><em>-- If true, we raise Layout_Error</em></span>
+ <span class="symbol"><a name="ref_54_7" href="terminal_interface-curses-text_io-aux__adb.htm#ref_50_7">Ljust</a></span> : Boolean := False); <span class="comment"><em>-- The Buf is left justified</em></span>
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_43_51">Aux</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>.<a href="terminal_interface-curses-text_io-aux__ads.htm#ref_43_51">Aux</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-text_io-complex_io__adb.htm b/doc/html/ada/terminal_interface-curses-text_io-complex_io__adb.htm
index bc8e1178dd2c..cad3300a2138 100644
--- a/doc/html/ada/terminal_interface-curses-text_io-complex_io__adb.htm
+++ b/doc/html/ada/terminal_interface-curses-text_io-complex_io__adb.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-text_io-complex_io.adb</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-text_io-complex_io.adb</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,82 +11,82 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-complex_io.adb </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Complex_IO --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- B O D Y --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.12 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_45_43">Float_IO</A>;
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-text_io-complex_io.adb </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Text_IO.Complex_IO --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- B O D Y --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.12 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<b>with</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>.<a href="terminal_interface-curses-text_io-float_io__ads.htm#ref_45_43">Float_IO</a>;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>.<span class="symbol"><A NAME="ref_44_48" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_47_43">Complex_IO</A></span> <b>is</b>
+<b>package</b> <b>body</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>.<span class="symbol"><a name="ref_44_48" href="terminal_interface-curses-text_io-complex_io__ads.htm#ref_47_43">Complex_IO</a></span> <b>is</b>
<b>package</b> FIO <b>is</b> <b>new</b>
- <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_45_43">Float_IO</A> (Complex_Types.Real'Base);
+ <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>.<a href="terminal_interface-curses-text_io-float_io__ads.htm#ref_45_43">Float_IO</a> (Complex_Types.Real'Base);
- <b>procedure</b> <span class="symbol"><A NAME="ref_49_14" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_55_14">Put</A></span>
- (<span class="symbol"><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_56_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
+ <b>procedure</b> <span class="symbol"><a name="ref_49_14" href="terminal_interface-curses-text_io-complex_io__ads.htm#ref_55_14">Put</a></span>
+ (<span class="symbol"><a name="ref_50_7" href="terminal_interface-curses-text_io-complex_io__ads.htm#ref_56_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
Item : Complex;
- <span class="symbol"><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_58_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_51_4">Default_Fore</A>;
- <span class="symbol"><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_59_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_52_4">Default_Aft</A>;
- <span class="symbol"><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_60_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_53_4">Default_Exp</A>)
+ <span class="symbol"><a name="ref_52_7" href="terminal_interface-curses-text_io-complex_io__ads.htm#ref_58_7">Fore</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-complex_io__ads.htm#ref_51_4">Default_Fore</a>;
+ <span class="symbol"><a name="ref_53_7" href="terminal_interface-curses-text_io-complex_io__ads.htm#ref_59_7">Aft</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-complex_io__ads.htm#ref_52_4">Default_Aft</a>;
+ <span class="symbol"><a name="ref_54_7" href="terminal_interface-curses-text_io-complex_io__ads.htm#ref_60_7">Exp</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-complex_io__ads.htm#ref_53_4">Default_Exp</a>)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses-text_io__ads.htm#ref_109_14">Put</A> (<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_56_7">Win</A>, '(');
- FIO.<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_51_14">Put</A> (<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_56_7">Win</A>, Item.Re, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_58_7">Fore</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_59_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_60_7">Exp</A>);
- <A HREF="terminal_interface-curses-text_io__ads.htm#ref_109_14">Put</A> (<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_56_7">Win</A>, ',');
- FIO.<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_51_14">Put</A> (<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_56_7">Win</A>, Item.Im, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_58_7">Fore</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_59_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_60_7">Exp</A>);
- <A HREF="terminal_interface-curses-text_io__ads.htm#ref_109_14">Put</A> (<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_56_7">Win</A>, ')');
- <b>end</b> <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_55_14">Put</A>;
+ <a href="terminal_interface-curses-text_io__ads.htm#ref_109_14">Put</a> (<a href="terminal_interface-curses-text_io-complex_io__ads.htm#ref_56_7">Win</a>, '(');
+ FIO.<a href="terminal_interface-curses-text_io-float_io__ads.htm#ref_51_14">Put</a> (<a href="terminal_interface-curses-text_io-complex_io__ads.htm#ref_56_7">Win</a>, Item.Re, <a href="terminal_interface-curses-text_io-complex_io__ads.htm#ref_58_7">Fore</a>, <a href="terminal_interface-curses-text_io-complex_io__ads.htm#ref_59_7">Aft</a>, <a href="terminal_interface-curses-text_io-complex_io__ads.htm#ref_60_7">Exp</a>);
+ <a href="terminal_interface-curses-text_io__ads.htm#ref_109_14">Put</a> (<a href="terminal_interface-curses-text_io-complex_io__ads.htm#ref_56_7">Win</a>, ',');
+ FIO.<a href="terminal_interface-curses-text_io-float_io__ads.htm#ref_51_14">Put</a> (<a href="terminal_interface-curses-text_io-complex_io__ads.htm#ref_56_7">Win</a>, Item.Im, <a href="terminal_interface-curses-text_io-complex_io__ads.htm#ref_58_7">Fore</a>, <a href="terminal_interface-curses-text_io-complex_io__ads.htm#ref_59_7">Aft</a>, <a href="terminal_interface-curses-text_io-complex_io__ads.htm#ref_60_7">Exp</a>);
+ <a href="terminal_interface-curses-text_io__ads.htm#ref_109_14">Put</a> (<a href="terminal_interface-curses-text_io-complex_io__ads.htm#ref_56_7">Win</a>, ')');
+ <b>end</b> <a href="terminal_interface-curses-text_io-complex_io__ads.htm#ref_55_14">Put</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_64_14" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_62_14">Put</A></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_64_14" href="terminal_interface-curses-text_io-complex_io__ads.htm#ref_62_14">Put</a></span>
(Item : Complex;
- <span class="symbol"><A NAME="ref_66_7" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_64_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_51_4">Default_Fore</A>;
- <span class="symbol"><A NAME="ref_67_7" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_65_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_52_4">Default_Aft</A>;
- <span class="symbol"><A NAME="ref_68_7" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_66_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_53_4">Default_Exp</A>)
+ <span class="symbol"><a name="ref_66_7" href="terminal_interface-curses-text_io-complex_io__ads.htm#ref_64_7">Fore</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-complex_io__ads.htm#ref_51_4">Default_Fore</a>;
+ <span class="symbol"><a name="ref_67_7" href="terminal_interface-curses-text_io-complex_io__ads.htm#ref_65_7">Aft</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-complex_io__ads.htm#ref_52_4">Default_Aft</a>;
+ <span class="symbol"><a name="ref_68_7" href="terminal_interface-curses-text_io-complex_io__ads.htm#ref_66_7">Exp</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-complex_io__ads.htm#ref_53_4">Default_Exp</a>)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_55_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_63_13">Get_Window</A>, Item, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_64_7">Fore</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_65_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_66_7">Exp</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_62_14">Put</A>;
+ <a href="terminal_interface-curses-text_io-complex_io__ads.htm#ref_55_14">Put</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_63_13">Get_Window</a>, Item, <a href="terminal_interface-curses-text_io-complex_io__ads.htm#ref_64_7">Fore</a>, <a href="terminal_interface-curses-text_io-complex_io__ads.htm#ref_65_7">Aft</a>, <a href="terminal_interface-curses-text_io-complex_io__ads.htm#ref_66_7">Exp</a>);
+ <b>end</b> <a href="terminal_interface-curses-text_io-complex_io__ads.htm#ref_62_14">Put</a>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_47_43">Complex_IO</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>.<a href="terminal_interface-curses-text_io-complex_io__ads.htm#ref_47_43">Complex_IO</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-text_io-complex_io__ads.htm b/doc/html/ada/terminal_interface-curses-text_io-complex_io__ads.htm
index 7abdb6408183..ac7607eb9f18 100644
--- a/doc/html/ada/terminal_interface-curses-text_io-complex_io__ads.htm
+++ b/doc/html/ada/terminal_interface-curses-text_io-complex_io__ads.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-text_io-complex_io.ads</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-text_io-complex_io.ads</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,79 +11,79 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-complex_io.ads </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Complex_IO --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- S P E C --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.12 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-text_io-complex_io.ads </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Text_IO.Complex_IO --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- S P E C --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.12 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
<b>with</b> Ada.Numerics.Generic_Complex_Types;
<b>generic</b>
- <b>with</b> <b>package</b> <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_47_43">Complex_Types</A> <b>is</b> <b>new</b> Ada.Numerics.Generic_Complex_Types (&lt;&gt;);
+ <b>with</b> <b>package</b> Complex_Types <b>is</b> <b>new</b> Ada.Numerics.Generic_Complex_Types (&lt;&gt;);
-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>.<span class="symbol"><A NAME="ref_47_43" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_44_48">Complex_IO</A></span> <b>is</b>
+<b>package</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>.<span class="symbol"><a name="ref_47_43" href="terminal_interface-curses-text_io-complex_io__adb.htm#ref_44_48">Complex_IO</a></span> <b>is</b>
<b>use</b> Complex_Types;
- <span class="symbol"><A NAME="ref_51_4">Default_Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := 2;
- <span class="symbol"><A NAME="ref_52_4">Default_Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := Real'<b>Digits</b> - 1;
- <span class="symbol"><A NAME="ref_53_4">Default_Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := 3;
+ <span class="symbol"><a name="ref_51_4">Default_Fore</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := 2;
+ <span class="symbol"><a name="ref_52_4">Default_Aft</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := Real'<b>Digits</b> - 1;
+ <span class="symbol"><a name="ref_53_4">Default_Exp</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := 3;
- <b>procedure</b> <span class="symbol"><A NAME="ref_55_14" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_49_14">Put</A></span>
- (<span class="symbol"><A NAME="ref_56_7" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_50_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_55_14">Item</A> : Complex;
- <span class="symbol"><A NAME="ref_58_7" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_52_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_51_4">Default_Fore</A>;
- <span class="symbol"><A NAME="ref_59_7" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_53_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_52_4">Default_Aft</A>;
- <span class="symbol"><A NAME="ref_60_7" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_54_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_53_4">Default_Exp</A>);
+ <b>procedure</b> <span class="symbol"><a name="ref_55_14" href="terminal_interface-curses-text_io-complex_io__adb.htm#ref_49_14">Put</a></span>
+ (<span class="symbol"><a name="ref_56_7" href="terminal_interface-curses-text_io-complex_io__adb.htm#ref_50_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ Item : Complex;
+ <span class="symbol"><a name="ref_58_7" href="terminal_interface-curses-text_io-complex_io__adb.htm#ref_52_7">Fore</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-complex_io__ads.htm#ref_51_4">Default_Fore</a>;
+ <span class="symbol"><a name="ref_59_7" href="terminal_interface-curses-text_io-complex_io__adb.htm#ref_53_7">Aft</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-complex_io__ads.htm#ref_52_4">Default_Aft</a>;
+ <span class="symbol"><a name="ref_60_7" href="terminal_interface-curses-text_io-complex_io__adb.htm#ref_54_7">Exp</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-complex_io__ads.htm#ref_53_4">Default_Exp</a>);
- <b>procedure</b> <span class="symbol"><A NAME="ref_62_14" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_64_14">Put</A></span>
- (<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_62_14">Item</A> : Complex;
- <span class="symbol"><A NAME="ref_64_7" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_66_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_51_4">Default_Fore</A>;
- <span class="symbol"><A NAME="ref_65_7" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_67_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_52_4">Default_Aft</A>;
- <span class="symbol"><A NAME="ref_66_7" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_68_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_53_4">Default_Exp</A>);
+ <b>procedure</b> <span class="symbol"><a name="ref_62_14" href="terminal_interface-curses-text_io-complex_io__adb.htm#ref_64_14">Put</a></span>
+ (Item : Complex;
+ <span class="symbol"><a name="ref_64_7" href="terminal_interface-curses-text_io-complex_io__adb.htm#ref_66_7">Fore</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-complex_io__ads.htm#ref_51_4">Default_Fore</a>;
+ <span class="symbol"><a name="ref_65_7" href="terminal_interface-curses-text_io-complex_io__adb.htm#ref_67_7">Aft</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-complex_io__ads.htm#ref_52_4">Default_Aft</a>;
+ <span class="symbol"><a name="ref_66_7" href="terminal_interface-curses-text_io-complex_io__adb.htm#ref_68_7">Exp</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-complex_io__ads.htm#ref_53_4">Default_Exp</a>);
<b>private</b>
<b>pragma</b> Inline (Put);
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_47_43">Complex_IO</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>.<a href="terminal_interface-curses-text_io-complex_io__ads.htm#ref_47_43">Complex_IO</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-text_io-decimal_io__adb.htm b/doc/html/ada/terminal_interface-curses-text_io-decimal_io__adb.htm
index 4dc88020b3e1..7977d76dbfab 100644
--- a/doc/html/ada/terminal_interface-curses-text_io-decimal_io__adb.htm
+++ b/doc/html/ada/terminal_interface-curses-text_io-decimal_io__adb.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-text_io-decimal_io.adb</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-text_io-decimal_io.adb</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,84 +11,84 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-decimal_io.adb </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Decimal_IO --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- B O D Y --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.12 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-text_io-decimal_io.adb </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Text_IO.Decimal_IO --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- B O D Y --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.12 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
<b>with</b> Ada.Text_IO;
-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_43_51">Aux</A>;
+<b>with</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>.<a href="terminal_interface-curses-text_io-aux__ads.htm#ref_43_51">Aux</a>;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>.<span class="symbol"><A NAME="ref_45_48" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_45_43">Decimal_IO</A></span> <b>is</b>
+<b>package</b> <b>body</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>.<span class="symbol"><a name="ref_45_48" href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_45_43">Decimal_IO</a></span> <b>is</b>
- <b>package</b> <span class="symbol"><A NAME="ref_47_12">Aux</A></span> <b>renames</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_43_51">Aux</A>;
- <b>package</b> DIO <b>is</b> <b>new</b> Ada.Text_IO.Decimal_IO (<A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_43_9">Num</A>);
+ <b>package</b> <span class="symbol"><a name="ref_47_12">Aux</a></span> <b>renames</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>.<a href="terminal_interface-curses-text_io-aux__ads.htm#ref_43_51">Aux</a>;
+ <b>package</b> DIO <b>is</b> <b>new</b> Ada.Text_IO.Decimal_IO (<a href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_43_9">Num</a>);
- <b>procedure</b> <span class="symbol"><A NAME="ref_50_14" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_51_14">Put</A></span>
- (<span class="symbol"><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_52_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_53_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_43_9">Num</A>;
- <span class="symbol"><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_54_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_47_4">Default_Fore</A>;
- <span class="symbol"><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_55_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_48_4">Default_Aft</A>;
- <span class="symbol"><A NAME="ref_55_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_56_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_49_4">Default_Exp</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_50_14" href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_51_14">Put</a></span>
+ (<span class="symbol"><a name="ref_51_7" href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_52_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_52_7" href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_53_7">Item</a></span> : <a href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_43_9">Num</a>;
+ <span class="symbol"><a name="ref_53_7" href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_54_7">Fore</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_47_4">Default_Fore</a>;
+ <span class="symbol"><a name="ref_54_7" href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_55_7">Aft</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_48_4">Default_Aft</a>;
+ <span class="symbol"><a name="ref_55_7" href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_56_7">Exp</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_49_4">Default_Exp</a>)
<b>is</b>
- <span class="symbol"><A NAME="ref_57_7">Buf</A></span> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A>'Last);
- <span class="symbol"><A NAME="ref_58_7">Len</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_54_7">Fore</A> + 1 + <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_55_7">Aft</A>;
+ <span class="symbol"><a name="ref_57_7">Buf</a></span> : String (1 .. <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a>'Last);
+ <span class="symbol"><a name="ref_58_7">Len</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_54_7">Fore</a> + 1 + <a href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_55_7">Aft</a>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_56_7">Exp</A> &gt; 0 <b>then</b>
- <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_58_7">Len</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_58_7">Len</A> + 1 + <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_56_7">Exp</A>;
+ <b>if</b> <a href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_56_7">Exp</a> &gt; 0 <b>then</b>
+ <a href="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_58_7">Len</a> := <a href="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_58_7">Len</a> + 1 + <a href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_56_7">Exp</a>;
<b>end</b> <b>if</b>;
- DIO.Put (<A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_57_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_53_7">Item</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_55_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_56_7">Exp</A>);
- <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_47_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_52_7">Win</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_57_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_58_7">Len</A>, False);
- <b>end</b> <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_51_14">Put</A>;
+ DIO.Put (<a href="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_57_7">Buf</a>, <a href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_53_7">Item</a>, <a href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_55_7">Aft</a>, <a href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_56_7">Exp</a>);
+ <a href="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_47_12">Aux</a>.<a href="terminal_interface-curses-text_io-aux__ads.htm#ref_49_14">Put_Buf</a> (<a href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_52_7">Win</a>, <a href="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_57_7">Buf</a>, <a href="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_58_7">Len</a>, False);
+ <b>end</b> <a href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_51_14">Put</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_67_14" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_58_14">Put</A></span>
- (<span class="symbol"><A NAME="ref_68_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_59_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_43_9">Num</A>;
- <span class="symbol"><A NAME="ref_69_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_60_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_47_4">Default_Fore</A>;
- <span class="symbol"><A NAME="ref_70_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_61_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_48_4">Default_Aft</A>;
- <span class="symbol"><A NAME="ref_71_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_62_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_49_4">Default_Exp</A>) <b>is</b>
+ <b>procedure</b> <span class="symbol"><a name="ref_67_14" href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_58_14">Put</a></span>
+ (<span class="symbol"><a name="ref_68_7" href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_59_7">Item</a></span> : <a href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_43_9">Num</a>;
+ <span class="symbol"><a name="ref_69_7" href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_60_7">Fore</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_47_4">Default_Fore</a>;
+ <span class="symbol"><a name="ref_70_7" href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_61_7">Aft</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_48_4">Default_Aft</a>;
+ <span class="symbol"><a name="ref_71_7" href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_62_7">Exp</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_49_4">Default_Exp</a>) <b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_51_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_63_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_59_7">Item</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_60_7">Fore</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_61_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_62_7">Exp</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_58_14">Put</A>;
+ <a href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_51_14">Put</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_63_13">Get_Window</a>, <a href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_59_7">Item</a>, <a href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_60_7">Fore</a>, <a href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_61_7">Aft</a>, <a href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_62_7">Exp</a>);
+ <b>end</b> <a href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_58_14">Put</a>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_45_43">Decimal_IO</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>.<a href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_45_43">Decimal_IO</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-text_io-decimal_io__ads.htm b/doc/html/ada/terminal_interface-curses-text_io-decimal_io__ads.htm
index f3db7e756383..727165e01ff0 100644
--- a/doc/html/ada/terminal_interface-curses-text_io-decimal_io__ads.htm
+++ b/doc/html/ada/terminal_interface-curses-text_io-decimal_io__ads.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-text_io-decimal_io.ads</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-text_io-decimal_io.ads</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,75 +11,75 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-decimal_io.ads </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Decimal_IO --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- S P E C --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.13 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-text_io-decimal_io.ads </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Text_IO.Decimal_IO --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- S P E C --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.13 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
<b>generic</b>
- <b>type</b> <span class="symbol"><A NAME="ref_43_9" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_45_43">Num</A></span> <b>is</b> <b>delta</b> &lt;&gt; <b>digits</b> &lt;&gt;;
+ <b>type</b> <span class="symbol"><a name="ref_43_9">Num</a></span> <b>is</b> <b>delta</b> &lt;&gt; <b>digits</b> &lt;&gt;;
-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>.<span class="symbol"><A NAME="ref_45_43" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_45_48">Decimal_IO</A></span> <b>is</b>
+<b>package</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>.<span class="symbol"><a name="ref_45_43" href="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_45_48">Decimal_IO</a></span> <b>is</b>
- <span class="symbol"><A NAME="ref_47_4">Default_Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_43_9">Num</A>'Fore;
- <span class="symbol"><A NAME="ref_48_4">Default_Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_43_9">Num</A>'Aft;
- <span class="symbol"><A NAME="ref_49_4">Default_Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := 0;
+ <span class="symbol"><a name="ref_47_4">Default_Fore</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_43_9">Num</a>'Fore;
+ <span class="symbol"><a name="ref_48_4">Default_Aft</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_43_9">Num</a>'Aft;
+ <span class="symbol"><a name="ref_49_4">Default_Exp</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := 0;
- <b>procedure</b> <span class="symbol"><A NAME="ref_51_14" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_50_14">Put</A></span>
- (<span class="symbol"><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_51_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_52_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_43_9">Num</A>;
- <span class="symbol"><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_53_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_47_4">Default_Fore</A>;
- <span class="symbol"><A NAME="ref_55_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_54_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_48_4">Default_Aft</A>;
- <span class="symbol"><A NAME="ref_56_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_55_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_49_4">Default_Exp</A>);
+ <b>procedure</b> <span class="symbol"><a name="ref_51_14" href="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_50_14">Put</a></span>
+ (<span class="symbol"><a name="ref_52_7" href="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_51_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_53_7" href="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_52_7">Item</a></span> : <a href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_43_9">Num</a>;
+ <span class="symbol"><a name="ref_54_7" href="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_53_7">Fore</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_47_4">Default_Fore</a>;
+ <span class="symbol"><a name="ref_55_7" href="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_54_7">Aft</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_48_4">Default_Aft</a>;
+ <span class="symbol"><a name="ref_56_7" href="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_55_7">Exp</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_49_4">Default_Exp</a>);
- <b>procedure</b> <span class="symbol"><A NAME="ref_58_14" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_67_14">Put</A></span>
- (<span class="symbol"><A NAME="ref_59_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_68_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_43_9">Num</A>;
- <span class="symbol"><A NAME="ref_60_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_69_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_47_4">Default_Fore</A>;
- <span class="symbol"><A NAME="ref_61_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_70_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_48_4">Default_Aft</A>;
- <span class="symbol"><A NAME="ref_62_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_71_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_49_4">Default_Exp</A>);
+ <b>procedure</b> <span class="symbol"><a name="ref_58_14" href="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_67_14">Put</a></span>
+ (<span class="symbol"><a name="ref_59_7" href="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_68_7">Item</a></span> : <a href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_43_9">Num</a>;
+ <span class="symbol"><a name="ref_60_7" href="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_69_7">Fore</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_47_4">Default_Fore</a>;
+ <span class="symbol"><a name="ref_61_7" href="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_70_7">Aft</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_48_4">Default_Aft</a>;
+ <span class="symbol"><a name="ref_62_7" href="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_71_7">Exp</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_49_4">Default_Exp</a>);
<b>private</b>
<b>pragma</b> Inline (Put);
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_45_43">Decimal_IO</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>.<a href="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_45_43">Decimal_IO</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__adb.htm b/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__adb.htm
index fd959f14305b..9d316057ad87 100644
--- a/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__adb.htm
+++ b/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__adb.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-text_io-enumeration_io.adb</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-text_io-enumeration_io.adb</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,89 +11,89 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-enumeration_io.adb </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Enumeration_IO --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- B O D Y --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.12 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-text_io-enumeration_io.adb </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Text_IO.Enumeration_IO --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- B O D Y --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.12 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
<b>with</b> Ada.Text_IO;
<b>with</b> Ada.Characters.Handling; <b>use</b> Ada.Characters.Handling;
-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_43_51">Aux</A>;
+<b>with</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>.<a href="terminal_interface-curses-text_io-aux__ads.htm#ref_43_51">Aux</a>;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>.<span class="symbol"><A NAME="ref_46_48" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_45_43">Enumeration_IO</A></span> <b>is</b>
+<b>package</b> <b>body</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>.<span class="symbol"><a name="ref_46_48" href="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_45_43">Enumeration_IO</a></span> <b>is</b>
- <b>package</b> <span class="symbol"><A NAME="ref_48_12">Aux</A></span> <b>renames</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_43_51">Aux</A>;
- <b>package</b> EIO <b>is</b> <b>new</b> Ada.Text_IO.Enumeration_IO (<A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_43_9">Enum</A>);
+ <b>package</b> <span class="symbol"><a name="ref_48_12">Aux</a></span> <b>renames</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>.<a href="terminal_interface-curses-text_io-aux__ads.htm#ref_43_51">Aux</a>;
+ <b>package</b> EIO <b>is</b> <b>new</b> Ada.Text_IO.Enumeration_IO (<a href="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_43_9">Enum</a>);
- <b>procedure</b> <span class="symbol"><A NAME="ref_51_14" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_50_14">Put</A></span>
- (<span class="symbol"><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_51_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_52_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_43_9">Enum</A>;
- <span class="symbol"><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_53_7">Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_47_4">Default_Width</A>;
- <span class="symbol"><A NAME="ref_55_7" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_54_7">Set</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_54_9">Type_Set</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_48_4">Default_Setting</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_51_14" href="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_50_14">Put</a></span>
+ (<span class="symbol"><a name="ref_52_7" href="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_51_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_53_7" href="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_52_7">Item</a></span> : <a href="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_43_9">Enum</a>;
+ <span class="symbol"><a name="ref_54_7" href="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_53_7">Width</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_47_4">Default_Width</a>;
+ <span class="symbol"><a name="ref_55_7" href="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_54_7">Set</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_54_9">Type_Set</a> := <a href="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_48_4">Default_Setting</a>)
<b>is</b>
- <span class="symbol"><A NAME="ref_57_7">Buf</A></span> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A>'Last);
- <span class="symbol"><A NAME="ref_58_7">Tset</A></span> : Ada.Text_IO.Type_Set;
+ <span class="symbol"><a name="ref_57_7">Buf</a></span> : String (1 .. <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a>'Last);
+ <span class="symbol"><a name="ref_58_7">Tset</a></span> : Ada.Text_IO.Type_Set;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_54_7">Set</A> /= <A HREF="terminal_interface-curses-text_io__ads.htm#ref_54_46">Mixed_Case</A> <b>then</b>
- <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_58_7">Tset</A> := Ada.Text_IO.Type_Set'Val (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_54_9">Type_Set</A>'Pos (<A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_54_7">Set</A>));
+ <b>if</b> <a href="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_54_7">Set</a> /= <a href="terminal_interface-curses-text_io__ads.htm#ref_54_46">Mixed_Case</a> <b>then</b>
+ <a href="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_58_7">Tset</a> := Ada.Text_IO.Type_Set'Val (<a href="terminal_interface-curses-text_io__ads.htm#ref_54_9">Type_Set</a>'Pos (<a href="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_54_7">Set</a>));
<b>else</b>
- <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_58_7">Tset</A> := Ada.Text_IO.Lower_Case;
+ <a href="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_58_7">Tset</a> := Ada.Text_IO.Lower_Case;
<b>end</b> <b>if</b>;
- EIO.Put (<A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_57_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_52_7">Item</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_58_7">Tset</A>);
- <b>if</b> <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_54_7">Set</A> = <A HREF="terminal_interface-curses-text_io__ads.htm#ref_54_46">Mixed_Case</A> <b>then</b>
- <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_57_7">Buf</A> (<A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_57_7">Buf</A>'First) := To_Upper (<A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_57_7">Buf</A> (<A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_57_7">Buf</A>'First));
+ EIO.Put (<a href="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_57_7">Buf</a>, <a href="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_52_7">Item</a>, <a href="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_58_7">Tset</a>);
+ <b>if</b> <a href="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_54_7">Set</a> = <a href="terminal_interface-curses-text_io__ads.htm#ref_54_46">Mixed_Case</a> <b>then</b>
+ <a href="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_57_7">Buf</a> (<a href="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_57_7">Buf</a>'First) := To_Upper (<a href="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_57_7">Buf</a> (<a href="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_57_7">Buf</a>'First));
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_48_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_51_7">Win</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_57_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_53_7">Width</A>, True, True);
- <b>end</b> <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_50_14">Put</A>;
+ <a href="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_48_12">Aux</a>.<a href="terminal_interface-curses-text_io-aux__ads.htm#ref_49_14">Put_Buf</a> (<a href="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_51_7">Win</a>, <a href="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_57_7">Buf</a>, <a href="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_53_7">Width</a>, True, True);
+ <b>end</b> <a href="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_50_14">Put</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_72_14" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_56_14">Put</A></span>
- (<span class="symbol"><A NAME="ref_73_7" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_57_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_43_9">Enum</A>;
- <span class="symbol"><A NAME="ref_74_7" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_58_7">Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_47_4">Default_Width</A>;
- <span class="symbol"><A NAME="ref_75_7" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_59_7">Set</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_54_9">Type_Set</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_48_4">Default_Setting</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_72_14" href="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_56_14">Put</a></span>
+ (<span class="symbol"><a name="ref_73_7" href="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_57_7">Item</a></span> : <a href="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_43_9">Enum</a>;
+ <span class="symbol"><a name="ref_74_7" href="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_58_7">Width</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_47_4">Default_Width</a>;
+ <span class="symbol"><a name="ref_75_7" href="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_59_7">Set</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_54_9">Type_Set</a> := <a href="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_48_4">Default_Setting</a>)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_50_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_63_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_57_7">Item</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_58_7">Width</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_59_7">Set</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_56_14">Put</A>;
+ <a href="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_50_14">Put</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_63_13">Get_Window</a>, <a href="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_57_7">Item</a>, <a href="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_58_7">Width</a>, <a href="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_59_7">Set</a>);
+ <b>end</b> <a href="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_56_14">Put</a>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_45_43">Enumeration_IO</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>.<a href="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_45_43">Enumeration_IO</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__ads.htm b/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__ads.htm
index d29a51efb9f5..4f7bc7fc1987 100644
--- a/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__ads.htm
+++ b/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__ads.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-text_io-enumeration_io.ads</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-text_io-enumeration_io.ads</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,72 +11,72 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-enumeration_io.ads </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Enumeration_IO --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- S P E C --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.13 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-text_io-enumeration_io.ads </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Text_IO.Enumeration_IO --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- S P E C --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.13 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
<b>generic</b>
- <b>type</b> <span class="symbol"><A NAME="ref_43_9" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_45_43">Enum</A></span> <b>is</b> (&lt;&gt;);
+ <b>type</b> <span class="symbol"><a name="ref_43_9">Enum</a></span> <b>is</b> (&lt;&gt;);
-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>.<span class="symbol"><A NAME="ref_45_43" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_46_48">Enumeration_IO</A></span> <b>is</b>
+<b>package</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>.<span class="symbol"><a name="ref_45_43" href="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_46_48">Enumeration_IO</a></span> <b>is</b>
- <span class="symbol"><A NAME="ref_47_4">Default_Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := 0;
- <span class="symbol"><A NAME="ref_48_4">Default_Setting</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_54_9">Type_Set</A> := <A HREF="terminal_interface-curses-text_io__ads.htm#ref_54_46">Mixed_Case</A>;
+ <span class="symbol"><a name="ref_47_4">Default_Width</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := 0;
+ <span class="symbol"><a name="ref_48_4">Default_Setting</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_54_9">Type_Set</a> := <a href="terminal_interface-curses-text_io__ads.htm#ref_54_46">Mixed_Case</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_50_14" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_51_14">Put</A></span>
- (<span class="symbol"><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_52_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_53_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_43_9">Enum</A>;
- <span class="symbol"><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_54_7">Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_47_4">Default_Width</A>;
- <span class="symbol"><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_55_7">Set</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_54_9">Type_Set</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_48_4">Default_Setting</A>);
+ <b>procedure</b> <span class="symbol"><a name="ref_50_14" href="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_51_14">Put</a></span>
+ (<span class="symbol"><a name="ref_51_7" href="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_52_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_52_7" href="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_53_7">Item</a></span> : <a href="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_43_9">Enum</a>;
+ <span class="symbol"><a name="ref_53_7" href="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_54_7">Width</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_47_4">Default_Width</a>;
+ <span class="symbol"><a name="ref_54_7" href="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_55_7">Set</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_54_9">Type_Set</a> := <a href="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_48_4">Default_Setting</a>);
- <b>procedure</b> <span class="symbol"><A NAME="ref_56_14" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_72_14">Put</A></span>
- (<span class="symbol"><A NAME="ref_57_7" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_73_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_43_9">Enum</A>;
- <span class="symbol"><A NAME="ref_58_7" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_74_7">Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_47_4">Default_Width</A>;
- <span class="symbol"><A NAME="ref_59_7" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_75_7">Set</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_54_9">Type_Set</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_48_4">Default_Setting</A>);
+ <b>procedure</b> <span class="symbol"><a name="ref_56_14" href="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_72_14">Put</a></span>
+ (<span class="symbol"><a name="ref_57_7" href="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_73_7">Item</a></span> : <a href="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_43_9">Enum</a>;
+ <span class="symbol"><a name="ref_58_7" href="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_74_7">Width</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_47_4">Default_Width</a>;
+ <span class="symbol"><a name="ref_59_7" href="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_75_7">Set</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_54_9">Type_Set</a> := <a href="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_48_4">Default_Setting</a>);
<b>private</b>
<b>pragma</b> Inline (Put);
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_45_43">Enumeration_IO</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>.<a href="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_45_43">Enumeration_IO</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-text_io-fixed_io__adb.htm b/doc/html/ada/terminal_interface-curses-text_io-fixed_io__adb.htm
index 51b88dce58a5..b14e73ec746f 100644
--- a/doc/html/ada/terminal_interface-curses-text_io-fixed_io__adb.htm
+++ b/doc/html/ada/terminal_interface-curses-text_io-fixed_io__adb.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-text_io-fixed_io.adb</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-text_io-fixed_io.adb</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,84 +11,84 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-fixed_io.adb </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Fixed_IO --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- B O D Y --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.12 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-text_io-fixed_io.adb </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Text_IO.Fixed_IO --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- B O D Y --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.12 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
<b>with</b> Ada.Text_IO;
-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_43_51">Aux</A>;
+<b>with</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>.<a href="terminal_interface-curses-text_io-aux__ads.htm#ref_43_51">Aux</a>;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>.<span class="symbol"><A NAME="ref_45_48" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_45_43">Fixed_IO</A></span> <b>is</b>
+<b>package</b> <b>body</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>.<span class="symbol"><a name="ref_45_48" href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_45_43">Fixed_IO</a></span> <b>is</b>
- <b>package</b> <span class="symbol"><A NAME="ref_47_12">Aux</A></span> <b>renames</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_43_51">Aux</A>;
- <b>package</b> FIXIO <b>is</b> <b>new</b> Ada.Text_IO.Fixed_IO (<A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_43_9">Num</A>);
+ <b>package</b> <span class="symbol"><a name="ref_47_12">Aux</a></span> <b>renames</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>.<a href="terminal_interface-curses-text_io-aux__ads.htm#ref_43_51">Aux</a>;
+ <b>package</b> FIXIO <b>is</b> <b>new</b> Ada.Text_IO.Fixed_IO (<a href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_43_9">Num</a>);
- <b>procedure</b> <span class="symbol"><A NAME="ref_50_14" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_51_14">Put</A></span>
- (<span class="symbol"><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_52_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_53_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_43_9">Num</A>;
- <span class="symbol"><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_54_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_47_4">Default_Fore</A>;
- <span class="symbol"><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_55_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_48_4">Default_Aft</A>;
- <span class="symbol"><A NAME="ref_55_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_56_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_49_4">Default_Exp</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_50_14" href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_51_14">Put</a></span>
+ (<span class="symbol"><a name="ref_51_7" href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_52_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_52_7" href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_53_7">Item</a></span> : <a href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_43_9">Num</a>;
+ <span class="symbol"><a name="ref_53_7" href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_54_7">Fore</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_47_4">Default_Fore</a>;
+ <span class="symbol"><a name="ref_54_7" href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_55_7">Aft</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_48_4">Default_Aft</a>;
+ <span class="symbol"><a name="ref_55_7" href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_56_7">Exp</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_49_4">Default_Exp</a>)
<b>is</b>
- <span class="symbol"><A NAME="ref_57_7">Buf</A></span> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A>'Last);
- <span class="symbol"><A NAME="ref_58_7">Len</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_54_7">Fore</A> + 1 + <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_55_7">Aft</A>;
+ <span class="symbol"><a name="ref_57_7">Buf</a></span> : String (1 .. <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a>'Last);
+ <span class="symbol"><a name="ref_58_7">Len</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_54_7">Fore</a> + 1 + <a href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_55_7">Aft</a>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_56_7">Exp</A> &gt; 0 <b>then</b>
- <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_58_7">Len</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_58_7">Len</A> + 1 + <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_56_7">Exp</A>;
+ <b>if</b> <a href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_56_7">Exp</a> &gt; 0 <b>then</b>
+ <a href="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_58_7">Len</a> := <a href="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_58_7">Len</a> + 1 + <a href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_56_7">Exp</a>;
<b>end</b> <b>if</b>;
- FIXIO.Put (<A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_57_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_53_7">Item</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_55_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_56_7">Exp</A>);
- <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_47_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_52_7">Win</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_57_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_58_7">Len</A>, False);
- <b>end</b> <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_51_14">Put</A>;
+ FIXIO.Put (<a href="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_57_7">Buf</a>, <a href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_53_7">Item</a>, <a href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_55_7">Aft</a>, <a href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_56_7">Exp</a>);
+ <a href="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_47_12">Aux</a>.<a href="terminal_interface-curses-text_io-aux__ads.htm#ref_49_14">Put_Buf</a> (<a href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_52_7">Win</a>, <a href="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_57_7">Buf</a>, <a href="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_58_7">Len</a>, False);
+ <b>end</b> <a href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_51_14">Put</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_67_14" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_58_14">Put</A></span>
- (<span class="symbol"><A NAME="ref_68_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_59_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_43_9">Num</A>;
- <span class="symbol"><A NAME="ref_69_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_60_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_47_4">Default_Fore</A>;
- <span class="symbol"><A NAME="ref_70_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_61_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_48_4">Default_Aft</A>;
- <span class="symbol"><A NAME="ref_71_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_62_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_49_4">Default_Exp</A>) <b>is</b>
+ <b>procedure</b> <span class="symbol"><a name="ref_67_14" href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_58_14">Put</a></span>
+ (<span class="symbol"><a name="ref_68_7" href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_59_7">Item</a></span> : <a href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_43_9">Num</a>;
+ <span class="symbol"><a name="ref_69_7" href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_60_7">Fore</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_47_4">Default_Fore</a>;
+ <span class="symbol"><a name="ref_70_7" href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_61_7">Aft</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_48_4">Default_Aft</a>;
+ <span class="symbol"><a name="ref_71_7" href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_62_7">Exp</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_49_4">Default_Exp</a>) <b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_51_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_63_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_59_7">Item</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_60_7">Fore</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_61_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_62_7">Exp</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_58_14">Put</A>;
+ <a href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_51_14">Put</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_63_13">Get_Window</a>, <a href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_59_7">Item</a>, <a href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_60_7">Fore</a>, <a href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_61_7">Aft</a>, <a href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_62_7">Exp</a>);
+ <b>end</b> <a href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_58_14">Put</a>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_45_43">Fixed_IO</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>.<a href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_45_43">Fixed_IO</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-text_io-fixed_io__ads.htm b/doc/html/ada/terminal_interface-curses-text_io-fixed_io__ads.htm
index f6f9eb867d04..abd2b999fbfc 100644
--- a/doc/html/ada/terminal_interface-curses-text_io-fixed_io__ads.htm
+++ b/doc/html/ada/terminal_interface-curses-text_io-fixed_io__ads.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-text_io-fixed_io.ads</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-text_io-fixed_io.ads</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,75 +11,75 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-fixed_io.ads </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Fixed_IO --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- S P E C --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.13 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-text_io-fixed_io.ads </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Text_IO.Fixed_IO --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- S P E C --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.13 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
<b>generic</b>
- <b>type</b> <span class="symbol"><A NAME="ref_43_9" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_45_43">Num</A></span> <b>is</b> <b>delta</b> &lt;&gt;;
+ <b>type</b> <span class="symbol"><a name="ref_43_9">Num</a></span> <b>is</b> <b>delta</b> &lt;&gt;;
-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>.<span class="symbol"><A NAME="ref_45_43" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_45_48">Fixed_IO</A></span> <b>is</b>
+<b>package</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>.<span class="symbol"><a name="ref_45_43" href="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_45_48">Fixed_IO</a></span> <b>is</b>
- <span class="symbol"><A NAME="ref_47_4">Default_Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_43_9">Num</A>'Fore;
- <span class="symbol"><A NAME="ref_48_4">Default_Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_43_9">Num</A>'Aft;
- <span class="symbol"><A NAME="ref_49_4">Default_Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := 0;
+ <span class="symbol"><a name="ref_47_4">Default_Fore</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_43_9">Num</a>'Fore;
+ <span class="symbol"><a name="ref_48_4">Default_Aft</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_43_9">Num</a>'Aft;
+ <span class="symbol"><a name="ref_49_4">Default_Exp</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := 0;
- <b>procedure</b> <span class="symbol"><A NAME="ref_51_14" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_50_14">Put</A></span>
- (<span class="symbol"><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_51_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_52_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_43_9">Num</A>;
- <span class="symbol"><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_53_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_47_4">Default_Fore</A>;
- <span class="symbol"><A NAME="ref_55_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_54_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_48_4">Default_Aft</A>;
- <span class="symbol"><A NAME="ref_56_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_55_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_49_4">Default_Exp</A>);
+ <b>procedure</b> <span class="symbol"><a name="ref_51_14" href="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_50_14">Put</a></span>
+ (<span class="symbol"><a name="ref_52_7" href="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_51_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_53_7" href="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_52_7">Item</a></span> : <a href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_43_9">Num</a>;
+ <span class="symbol"><a name="ref_54_7" href="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_53_7">Fore</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_47_4">Default_Fore</a>;
+ <span class="symbol"><a name="ref_55_7" href="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_54_7">Aft</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_48_4">Default_Aft</a>;
+ <span class="symbol"><a name="ref_56_7" href="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_55_7">Exp</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_49_4">Default_Exp</a>);
- <b>procedure</b> <span class="symbol"><A NAME="ref_58_14" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_67_14">Put</A></span>
- (<span class="symbol"><A NAME="ref_59_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_68_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_43_9">Num</A>;
- <span class="symbol"><A NAME="ref_60_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_69_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_47_4">Default_Fore</A>;
- <span class="symbol"><A NAME="ref_61_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_70_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_48_4">Default_Aft</A>;
- <span class="symbol"><A NAME="ref_62_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_71_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_49_4">Default_Exp</A>);
+ <b>procedure</b> <span class="symbol"><a name="ref_58_14" href="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_67_14">Put</a></span>
+ (<span class="symbol"><a name="ref_59_7" href="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_68_7">Item</a></span> : <a href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_43_9">Num</a>;
+ <span class="symbol"><a name="ref_60_7" href="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_69_7">Fore</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_47_4">Default_Fore</a>;
+ <span class="symbol"><a name="ref_61_7" href="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_70_7">Aft</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_48_4">Default_Aft</a>;
+ <span class="symbol"><a name="ref_62_7" href="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_71_7">Exp</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_49_4">Default_Exp</a>);
<b>private</b>
<b>pragma</b> Inline (Put);
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_45_43">Fixed_IO</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>.<a href="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_45_43">Fixed_IO</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-text_io-float_io__adb.htm b/doc/html/ada/terminal_interface-curses-text_io-float_io__adb.htm
index d15123266f10..a0ba64c5803b 100644
--- a/doc/html/ada/terminal_interface-curses-text_io-float_io__adb.htm
+++ b/doc/html/ada/terminal_interface-curses-text_io-float_io__adb.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-text_io-float_io.adb</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-text_io-float_io.adb</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,85 +11,85 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-float_io.adb </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Float_IO --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- B O D Y --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.12 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-text_io-float_io.adb </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Text_IO.Float_IO --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- B O D Y --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.12 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
<b>with</b> Ada.Text_IO;
-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_43_51">Aux</A>;
+<b>with</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>.<a href="terminal_interface-curses-text_io-aux__ads.htm#ref_43_51">Aux</a>;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>.<span class="symbol"><A NAME="ref_45_48" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_45_43">Float_IO</A></span> <b>is</b>
+<b>package</b> <b>body</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>.<span class="symbol"><a name="ref_45_48" href="terminal_interface-curses-text_io-float_io__ads.htm#ref_45_43">Float_IO</a></span> <b>is</b>
- <b>package</b> <span class="symbol"><A NAME="ref_47_12">Aux</A></span> <b>renames</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_43_51">Aux</A>;
- <b>package</b> FIO <b>is</b> <b>new</b> Ada.Text_IO.Float_IO (<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_43_9">Num</A>);
+ <b>package</b> <span class="symbol"><a name="ref_47_12">Aux</a></span> <b>renames</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>.<a href="terminal_interface-curses-text_io-aux__ads.htm#ref_43_51">Aux</a>;
+ <b>package</b> FIO <b>is</b> <b>new</b> Ada.Text_IO.Float_IO (<a href="terminal_interface-curses-text_io-float_io__ads.htm#ref_43_9">Num</a>);
- <b>procedure</b> <span class="symbol"><A NAME="ref_50_14" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_51_14">Put</A></span>
- (<span class="symbol"><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_52_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_53_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_43_9">Num</A>;
- <span class="symbol"><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_54_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_47_4">Default_Fore</A>;
- <span class="symbol"><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_55_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_48_4">Default_Aft</A>;
- <span class="symbol"><A NAME="ref_55_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_56_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_49_4">Default_Exp</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_50_14" href="terminal_interface-curses-text_io-float_io__ads.htm#ref_51_14">Put</a></span>
+ (<span class="symbol"><a name="ref_51_7" href="terminal_interface-curses-text_io-float_io__ads.htm#ref_52_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_52_7" href="terminal_interface-curses-text_io-float_io__ads.htm#ref_53_7">Item</a></span> : <a href="terminal_interface-curses-text_io-float_io__ads.htm#ref_43_9">Num</a>;
+ <span class="symbol"><a name="ref_53_7" href="terminal_interface-curses-text_io-float_io__ads.htm#ref_54_7">Fore</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-float_io__ads.htm#ref_47_4">Default_Fore</a>;
+ <span class="symbol"><a name="ref_54_7" href="terminal_interface-curses-text_io-float_io__ads.htm#ref_55_7">Aft</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-float_io__ads.htm#ref_48_4">Default_Aft</a>;
+ <span class="symbol"><a name="ref_55_7" href="terminal_interface-curses-text_io-float_io__ads.htm#ref_56_7">Exp</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-float_io__ads.htm#ref_49_4">Default_Exp</a>)
<b>is</b>
- <span class="symbol"><A NAME="ref_57_7">Buf</A></span> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A>'Last);
- <span class="symbol"><A NAME="ref_58_7">Len</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_54_7">Fore</A> + 1 + <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_55_7">Aft</A>;
+ <span class="symbol"><a name="ref_57_7">Buf</a></span> : String (1 .. <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a>'Last);
+ <span class="symbol"><a name="ref_58_7">Len</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-float_io__ads.htm#ref_54_7">Fore</a> + 1 + <a href="terminal_interface-curses-text_io-float_io__ads.htm#ref_55_7">Aft</a>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_56_7">Exp</A> &gt; 0 <b>then</b>
- <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_58_7">Len</A> := <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_58_7">Len</A> + 1 + <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_56_7">Exp</A>;
+ <b>if</b> <a href="terminal_interface-curses-text_io-float_io__ads.htm#ref_56_7">Exp</a> &gt; 0 <b>then</b>
+ <a href="terminal_interface-curses-text_io-float_io__adb.htm#ref_58_7">Len</a> := <a href="terminal_interface-curses-text_io-float_io__adb.htm#ref_58_7">Len</a> + 1 + <a href="terminal_interface-curses-text_io-float_io__ads.htm#ref_56_7">Exp</a>;
<b>end</b> <b>if</b>;
- FIO.Put (<A HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_57_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_53_7">Item</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_55_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_56_7">Exp</A>);
- <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_47_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_52_7">Win</A>, <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_57_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_58_7">Len</A>, False);
- <b>end</b> <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_51_14">Put</A>;
+ FIO.Put (<a href="terminal_interface-curses-text_io-float_io__adb.htm#ref_57_7">Buf</a>, <a href="terminal_interface-curses-text_io-float_io__ads.htm#ref_53_7">Item</a>, <a href="terminal_interface-curses-text_io-float_io__ads.htm#ref_55_7">Aft</a>, <a href="terminal_interface-curses-text_io-float_io__ads.htm#ref_56_7">Exp</a>);
+ <a href="terminal_interface-curses-text_io-float_io__adb.htm#ref_47_12">Aux</a>.<a href="terminal_interface-curses-text_io-aux__ads.htm#ref_49_14">Put_Buf</a> (<a href="terminal_interface-curses-text_io-float_io__ads.htm#ref_52_7">Win</a>, <a href="terminal_interface-curses-text_io-float_io__adb.htm#ref_57_7">Buf</a>, <a href="terminal_interface-curses-text_io-float_io__adb.htm#ref_58_7">Len</a>, False);
+ <b>end</b> <a href="terminal_interface-curses-text_io-float_io__ads.htm#ref_51_14">Put</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_67_14" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_58_14">Put</A></span>
- (<span class="symbol"><A NAME="ref_68_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_59_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_43_9">Num</A>;
- <span class="symbol"><A NAME="ref_69_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_60_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_47_4">Default_Fore</A>;
- <span class="symbol"><A NAME="ref_70_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_61_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_48_4">Default_Aft</A>;
- <span class="symbol"><A NAME="ref_71_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_62_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_49_4">Default_Exp</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_67_14" href="terminal_interface-curses-text_io-float_io__ads.htm#ref_58_14">Put</a></span>
+ (<span class="symbol"><a name="ref_68_7" href="terminal_interface-curses-text_io-float_io__ads.htm#ref_59_7">Item</a></span> : <a href="terminal_interface-curses-text_io-float_io__ads.htm#ref_43_9">Num</a>;
+ <span class="symbol"><a name="ref_69_7" href="terminal_interface-curses-text_io-float_io__ads.htm#ref_60_7">Fore</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-float_io__ads.htm#ref_47_4">Default_Fore</a>;
+ <span class="symbol"><a name="ref_70_7" href="terminal_interface-curses-text_io-float_io__ads.htm#ref_61_7">Aft</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-float_io__ads.htm#ref_48_4">Default_Aft</a>;
+ <span class="symbol"><a name="ref_71_7" href="terminal_interface-curses-text_io-float_io__ads.htm#ref_62_7">Exp</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-float_io__ads.htm#ref_49_4">Default_Exp</a>)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_51_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_63_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_59_7">Item</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_60_7">Fore</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_61_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_62_7">Exp</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_58_14">Put</A>;
+ <a href="terminal_interface-curses-text_io-float_io__ads.htm#ref_51_14">Put</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_63_13">Get_Window</a>, <a href="terminal_interface-curses-text_io-float_io__ads.htm#ref_59_7">Item</a>, <a href="terminal_interface-curses-text_io-float_io__ads.htm#ref_60_7">Fore</a>, <a href="terminal_interface-curses-text_io-float_io__ads.htm#ref_61_7">Aft</a>, <a href="terminal_interface-curses-text_io-float_io__ads.htm#ref_62_7">Exp</a>);
+ <b>end</b> <a href="terminal_interface-curses-text_io-float_io__ads.htm#ref_58_14">Put</a>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_45_43">Float_IO</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>.<a href="terminal_interface-curses-text_io-float_io__ads.htm#ref_45_43">Float_IO</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-text_io-float_io__ads.htm b/doc/html/ada/terminal_interface-curses-text_io-float_io__ads.htm
index 4b16d638c0cc..a4382f194f9d 100644
--- a/doc/html/ada/terminal_interface-curses-text_io-float_io__ads.htm
+++ b/doc/html/ada/terminal_interface-curses-text_io-float_io__ads.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-text_io-float_io.ads</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-text_io-float_io.ads</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,75 +11,75 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-float_io.ads </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Float_IO --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- S P E C --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.13 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-text_io-float_io.ads </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Text_IO.Float_IO --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- S P E C --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.13 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
<b>generic</b>
- <b>type</b> <span class="symbol"><A NAME="ref_43_9" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_45_43">Num</A></span> <b>is</b> <b>digits</b> &lt;&gt;;
+ <b>type</b> <span class="symbol"><a name="ref_43_9">Num</a></span> <b>is</b> <b>digits</b> &lt;&gt;;
-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>.<span class="symbol"><A NAME="ref_45_43" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_45_48">Float_IO</A></span> <b>is</b>
+<b>package</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>.<span class="symbol"><a name="ref_45_43" href="terminal_interface-curses-text_io-float_io__adb.htm#ref_45_48">Float_IO</a></span> <b>is</b>
- <span class="symbol"><A NAME="ref_47_4">Default_Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := 2;
- <span class="symbol"><A NAME="ref_48_4">Default_Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_43_9">Num</A>'<b>Digits</b> - 1;
- <span class="symbol"><A NAME="ref_49_4">Default_Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := 3;
+ <span class="symbol"><a name="ref_47_4">Default_Fore</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := 2;
+ <span class="symbol"><a name="ref_48_4">Default_Aft</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-float_io__ads.htm#ref_43_9">Num</a>'<b>Digits</b> - 1;
+ <span class="symbol"><a name="ref_49_4">Default_Exp</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := 3;
- <b>procedure</b> <span class="symbol"><A NAME="ref_51_14" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_50_14">Put</A></span>
- (<span class="symbol"><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_51_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_52_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_43_9">Num</A>;
- <span class="symbol"><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_53_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_47_4">Default_Fore</A>;
- <span class="symbol"><A NAME="ref_55_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_54_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_48_4">Default_Aft</A>;
- <span class="symbol"><A NAME="ref_56_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_55_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_49_4">Default_Exp</A>);
+ <b>procedure</b> <span class="symbol"><a name="ref_51_14" href="terminal_interface-curses-text_io-float_io__adb.htm#ref_50_14">Put</a></span>
+ (<span class="symbol"><a name="ref_52_7" href="terminal_interface-curses-text_io-float_io__adb.htm#ref_51_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_53_7" href="terminal_interface-curses-text_io-float_io__adb.htm#ref_52_7">Item</a></span> : <a href="terminal_interface-curses-text_io-float_io__ads.htm#ref_43_9">Num</a>;
+ <span class="symbol"><a name="ref_54_7" href="terminal_interface-curses-text_io-float_io__adb.htm#ref_53_7">Fore</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-float_io__ads.htm#ref_47_4">Default_Fore</a>;
+ <span class="symbol"><a name="ref_55_7" href="terminal_interface-curses-text_io-float_io__adb.htm#ref_54_7">Aft</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-float_io__ads.htm#ref_48_4">Default_Aft</a>;
+ <span class="symbol"><a name="ref_56_7" href="terminal_interface-curses-text_io-float_io__adb.htm#ref_55_7">Exp</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-float_io__ads.htm#ref_49_4">Default_Exp</a>);
- <b>procedure</b> <span class="symbol"><A NAME="ref_58_14" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_67_14">Put</A></span>
- (<span class="symbol"><A NAME="ref_59_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_68_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_43_9">Num</A>;
- <span class="symbol"><A NAME="ref_60_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_69_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_47_4">Default_Fore</A>;
- <span class="symbol"><A NAME="ref_61_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_70_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_48_4">Default_Aft</A>;
- <span class="symbol"><A NAME="ref_62_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_71_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_49_4">Default_Exp</A>);
+ <b>procedure</b> <span class="symbol"><a name="ref_58_14" href="terminal_interface-curses-text_io-float_io__adb.htm#ref_67_14">Put</a></span>
+ (<span class="symbol"><a name="ref_59_7" href="terminal_interface-curses-text_io-float_io__adb.htm#ref_68_7">Item</a></span> : <a href="terminal_interface-curses-text_io-float_io__ads.htm#ref_43_9">Num</a>;
+ <span class="symbol"><a name="ref_60_7" href="terminal_interface-curses-text_io-float_io__adb.htm#ref_69_7">Fore</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-float_io__ads.htm#ref_47_4">Default_Fore</a>;
+ <span class="symbol"><a name="ref_61_7" href="terminal_interface-curses-text_io-float_io__adb.htm#ref_70_7">Aft</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-float_io__ads.htm#ref_48_4">Default_Aft</a>;
+ <span class="symbol"><a name="ref_62_7" href="terminal_interface-curses-text_io-float_io__adb.htm#ref_71_7">Exp</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-float_io__ads.htm#ref_49_4">Default_Exp</a>);
<b>private</b>
<b>pragma</b> Inline (Put);
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_45_43">Float_IO</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>.<a href="terminal_interface-curses-text_io-float_io__ads.htm#ref_45_43">Float_IO</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-text_io-integer_io__adb.htm b/doc/html/ada/terminal_interface-curses-text_io-integer_io__adb.htm
index d92a03dd8102..f158e3343675 100644
--- a/doc/html/ada/terminal_interface-curses-text_io-integer_io__adb.htm
+++ b/doc/html/ada/terminal_interface-curses-text_io-integer_io__adb.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-text_io-integer_io.adb</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-text_io-integer_io.adb</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,79 +11,79 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-integer_io.adb </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Integer_IO --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- B O D Y --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.12 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-text_io-integer_io.adb </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Text_IO.Integer_IO --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- B O D Y --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.12 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
<b>with</b> Ada.Text_IO;
-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_43_51">Aux</A>;
+<b>with</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>.<a href="terminal_interface-curses-text_io-aux__ads.htm#ref_43_51">Aux</a>;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>.<span class="symbol"><A NAME="ref_45_48" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_45_43">Integer_IO</A></span> <b>is</b>
+<b>package</b> <b>body</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>.<span class="symbol"><a name="ref_45_48" href="terminal_interface-curses-text_io-integer_io__ads.htm#ref_45_43">Integer_IO</a></span> <b>is</b>
- <b>package</b> <span class="symbol"><A NAME="ref_47_12">Aux</A></span> <b>renames</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_43_51">Aux</A>;
- <b>package</b> IIO <b>is</b> <b>new</b> Ada.Text_IO.Integer_IO (<A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_43_9">Num</A>);
+ <b>package</b> <span class="symbol"><a name="ref_47_12">Aux</a></span> <b>renames</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>.<a href="terminal_interface-curses-text_io-aux__ads.htm#ref_43_51">Aux</a>;
+ <b>package</b> IIO <b>is</b> <b>new</b> Ada.Text_IO.Integer_IO (<a href="terminal_interface-curses-text_io-integer_io__ads.htm#ref_43_9">Num</a>);
- <b>procedure</b> <span class="symbol"><A NAME="ref_50_14" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_50_14">Put</A></span>
- (<span class="symbol"><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_51_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_52_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_43_9">Num</A>;
- <span class="symbol"><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_53_7">Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_47_4">Default_Width</A>;
- <span class="symbol"><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_54_7">Base</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_52_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_48_4">Default_Base</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_50_14" href="terminal_interface-curses-text_io-integer_io__ads.htm#ref_50_14">Put</a></span>
+ (<span class="symbol"><a name="ref_51_7" href="terminal_interface-curses-text_io-integer_io__ads.htm#ref_51_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_52_7" href="terminal_interface-curses-text_io-integer_io__ads.htm#ref_52_7">Item</a></span> : <a href="terminal_interface-curses-text_io-integer_io__ads.htm#ref_43_9">Num</a>;
+ <span class="symbol"><a name="ref_53_7" href="terminal_interface-curses-text_io-integer_io__ads.htm#ref_53_7">Width</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-integer_io__ads.htm#ref_47_4">Default_Width</a>;
+ <span class="symbol"><a name="ref_54_7" href="terminal_interface-curses-text_io-integer_io__ads.htm#ref_54_7">Base</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_52_12">Number_Base</a> := <a href="terminal_interface-curses-text_io-integer_io__ads.htm#ref_48_4">Default_Base</a>)
<b>is</b>
- <span class="symbol"><A NAME="ref_56_7">Buf</A></span> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A>'Last);
+ <span class="symbol"><a name="ref_56_7">Buf</a></span> : String (1 .. <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a>'Last);
<b>begin</b>
- IIO.Put (<A HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_52_7">Item</A>, <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_54_7">Base</A>);
- <A HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_47_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_51_7">Win</A>, <A HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_53_7">Width</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_50_14">Put</A>;
+ IIO.Put (<a href="terminal_interface-curses-text_io-integer_io__adb.htm#ref_56_7">Buf</a>, <a href="terminal_interface-curses-text_io-integer_io__ads.htm#ref_52_7">Item</a>, <a href="terminal_interface-curses-text_io-integer_io__ads.htm#ref_54_7">Base</a>);
+ <a href="terminal_interface-curses-text_io-integer_io__adb.htm#ref_47_12">Aux</a>.<a href="terminal_interface-curses-text_io-aux__ads.htm#ref_49_14">Put_Buf</a> (<a href="terminal_interface-curses-text_io-integer_io__ads.htm#ref_51_7">Win</a>, <a href="terminal_interface-curses-text_io-integer_io__adb.htm#ref_56_7">Buf</a>, <a href="terminal_interface-curses-text_io-integer_io__ads.htm#ref_53_7">Width</a>);
+ <b>end</b> <a href="terminal_interface-curses-text_io-integer_io__ads.htm#ref_50_14">Put</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_62_14" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_56_14">Put</A></span>
- (<span class="symbol"><A NAME="ref_63_7" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_57_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_43_9">Num</A>;
- <span class="symbol"><A NAME="ref_64_7" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_58_7">Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_47_4">Default_Width</A>;
- <span class="symbol"><A NAME="ref_65_7" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_59_7">Base</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_52_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_48_4">Default_Base</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_62_14" href="terminal_interface-curses-text_io-integer_io__ads.htm#ref_56_14">Put</a></span>
+ (<span class="symbol"><a name="ref_63_7" href="terminal_interface-curses-text_io-integer_io__ads.htm#ref_57_7">Item</a></span> : <a href="terminal_interface-curses-text_io-integer_io__ads.htm#ref_43_9">Num</a>;
+ <span class="symbol"><a name="ref_64_7" href="terminal_interface-curses-text_io-integer_io__ads.htm#ref_58_7">Width</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-integer_io__ads.htm#ref_47_4">Default_Width</a>;
+ <span class="symbol"><a name="ref_65_7" href="terminal_interface-curses-text_io-integer_io__ads.htm#ref_59_7">Base</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_52_12">Number_Base</a> := <a href="terminal_interface-curses-text_io-integer_io__ads.htm#ref_48_4">Default_Base</a>)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_50_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_63_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_57_7">Item</A>, <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_58_7">Width</A>, <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_59_7">Base</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_56_14">Put</A>;
+ <a href="terminal_interface-curses-text_io-integer_io__ads.htm#ref_50_14">Put</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_63_13">Get_Window</a>, <a href="terminal_interface-curses-text_io-integer_io__ads.htm#ref_57_7">Item</a>, <a href="terminal_interface-curses-text_io-integer_io__ads.htm#ref_58_7">Width</a>, <a href="terminal_interface-curses-text_io-integer_io__ads.htm#ref_59_7">Base</a>);
+ <b>end</b> <a href="terminal_interface-curses-text_io-integer_io__ads.htm#ref_56_14">Put</a>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_45_43">Integer_IO</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>.<a href="terminal_interface-curses-text_io-integer_io__ads.htm#ref_45_43">Integer_IO</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-text_io-integer_io__ads.htm b/doc/html/ada/terminal_interface-curses-text_io-integer_io__ads.htm
index 52be27eaa92d..23239f6935ec 100644
--- a/doc/html/ada/terminal_interface-curses-text_io-integer_io__ads.htm
+++ b/doc/html/ada/terminal_interface-curses-text_io-integer_io__ads.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-text_io-integer_io.ads</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-text_io-integer_io.ads</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,72 +11,72 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-integer_io.ads </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Integer_IO --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- S P E C --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.13 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-text_io-integer_io.ads </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Text_IO.Integer_IO --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- S P E C --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.13 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
<b>generic</b>
- <b>type</b> <span class="symbol"><A NAME="ref_43_9" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_45_43">Num</A></span> <b>is</b> <b>range</b> &lt;&gt;;
+ <b>type</b> <span class="symbol"><a name="ref_43_9">Num</a></span> <b>is</b> <b>range</b> &lt;&gt;;
-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>.<span class="symbol"><A NAME="ref_45_43" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_45_48">Integer_IO</A></span> <b>is</b>
+<b>package</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>.<span class="symbol"><a name="ref_45_43" href="terminal_interface-curses-text_io-integer_io__adb.htm#ref_45_48">Integer_IO</a></span> <b>is</b>
- <span class="symbol"><A NAME="ref_47_4">Default_Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_43_9">Num</A>'Width;
- <span class="symbol"><A NAME="ref_48_4">Default_Base</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_52_12">Number_Base</A> := 10;
+ <span class="symbol"><a name="ref_47_4">Default_Width</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-integer_io__ads.htm#ref_43_9">Num</a>'Width;
+ <span class="symbol"><a name="ref_48_4">Default_Base</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_52_12">Number_Base</a> := 10;
- <b>procedure</b> <span class="symbol"><A NAME="ref_50_14" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_50_14">Put</A></span>
- (<span class="symbol"><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_51_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_52_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_43_9">Num</A>;
- <span class="symbol"><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_53_7">Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_47_4">Default_Width</A>;
- <span class="symbol"><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_54_7">Base</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_52_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_48_4">Default_Base</A>);
+ <b>procedure</b> <span class="symbol"><a name="ref_50_14" href="terminal_interface-curses-text_io-integer_io__adb.htm#ref_50_14">Put</a></span>
+ (<span class="symbol"><a name="ref_51_7" href="terminal_interface-curses-text_io-integer_io__adb.htm#ref_51_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_52_7" href="terminal_interface-curses-text_io-integer_io__adb.htm#ref_52_7">Item</a></span> : <a href="terminal_interface-curses-text_io-integer_io__ads.htm#ref_43_9">Num</a>;
+ <span class="symbol"><a name="ref_53_7" href="terminal_interface-curses-text_io-integer_io__adb.htm#ref_53_7">Width</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-integer_io__ads.htm#ref_47_4">Default_Width</a>;
+ <span class="symbol"><a name="ref_54_7" href="terminal_interface-curses-text_io-integer_io__adb.htm#ref_54_7">Base</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_52_12">Number_Base</a> := <a href="terminal_interface-curses-text_io-integer_io__ads.htm#ref_48_4">Default_Base</a>);
- <b>procedure</b> <span class="symbol"><A NAME="ref_56_14" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_62_14">Put</A></span>
- (<span class="symbol"><A NAME="ref_57_7" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_63_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_43_9">Num</A>;
- <span class="symbol"><A NAME="ref_58_7" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_64_7">Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_47_4">Default_Width</A>;
- <span class="symbol"><A NAME="ref_59_7" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_65_7">Base</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_52_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_48_4">Default_Base</A>);
+ <b>procedure</b> <span class="symbol"><a name="ref_56_14" href="terminal_interface-curses-text_io-integer_io__adb.htm#ref_62_14">Put</a></span>
+ (<span class="symbol"><a name="ref_57_7" href="terminal_interface-curses-text_io-integer_io__adb.htm#ref_63_7">Item</a></span> : <a href="terminal_interface-curses-text_io-integer_io__ads.htm#ref_43_9">Num</a>;
+ <span class="symbol"><a name="ref_58_7" href="terminal_interface-curses-text_io-integer_io__adb.htm#ref_64_7">Width</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-integer_io__ads.htm#ref_47_4">Default_Width</a>;
+ <span class="symbol"><a name="ref_59_7" href="terminal_interface-curses-text_io-integer_io__adb.htm#ref_65_7">Base</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_52_12">Number_Base</a> := <a href="terminal_interface-curses-text_io-integer_io__ads.htm#ref_48_4">Default_Base</a>);
<b>private</b>
<b>pragma</b> Inline (Put);
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_45_43">Integer_IO</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>.<a href="terminal_interface-curses-text_io-integer_io__ads.htm#ref_45_43">Integer_IO</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-text_io-modular_io__adb.htm b/doc/html/ada/terminal_interface-curses-text_io-modular_io__adb.htm
index bc5ebf888d95..0645bb6ec297 100644
--- a/doc/html/ada/terminal_interface-curses-text_io-modular_io__adb.htm
+++ b/doc/html/ada/terminal_interface-curses-text_io-modular_io__adb.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-text_io-modular_io.adb</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-text_io-modular_io.adb</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,79 +11,79 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-modular_io.adb </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Modular_IO --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- B O D Y --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.12 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-text_io-modular_io.adb </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Text_IO.Modular_IO --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- B O D Y --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.12 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
<b>with</b> Ada.Text_IO;
-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_43_51">Aux</A>;
+<b>with</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>.<a href="terminal_interface-curses-text_io-aux__ads.htm#ref_43_51">Aux</a>;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>.<span class="symbol"><A NAME="ref_45_48" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_45_43">Modular_IO</A></span> <b>is</b>
+<b>package</b> <b>body</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>.<span class="symbol"><a name="ref_45_48" href="terminal_interface-curses-text_io-modular_io__ads.htm#ref_45_43">Modular_IO</a></span> <b>is</b>
- <b>package</b> <span class="symbol"><A NAME="ref_47_12">Aux</A></span> <b>renames</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_43_51">Aux</A>;
- <b>package</b> MIO <b>is</b> <b>new</b> Ada.Text_IO.Modular_IO (<A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_43_9">Num</A>);
+ <b>package</b> <span class="symbol"><a name="ref_47_12">Aux</a></span> <b>renames</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>.<a href="terminal_interface-curses-text_io-aux__ads.htm#ref_43_51">Aux</a>;
+ <b>package</b> MIO <b>is</b> <b>new</b> Ada.Text_IO.Modular_IO (<a href="terminal_interface-curses-text_io-modular_io__ads.htm#ref_43_9">Num</a>);
- <b>procedure</b> <span class="symbol"><A NAME="ref_50_14" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_50_14">Put</A></span>
- (<span class="symbol"><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_51_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_52_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_43_9">Num</A>;
- <span class="symbol"><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_53_7">Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_47_4">Default_Width</A>;
- <span class="symbol"><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_54_7">Base</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_52_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_48_4">Default_Base</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_50_14" href="terminal_interface-curses-text_io-modular_io__ads.htm#ref_50_14">Put</a></span>
+ (<span class="symbol"><a name="ref_51_7" href="terminal_interface-curses-text_io-modular_io__ads.htm#ref_51_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_52_7" href="terminal_interface-curses-text_io-modular_io__ads.htm#ref_52_7">Item</a></span> : <a href="terminal_interface-curses-text_io-modular_io__ads.htm#ref_43_9">Num</a>;
+ <span class="symbol"><a name="ref_53_7" href="terminal_interface-curses-text_io-modular_io__ads.htm#ref_53_7">Width</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-modular_io__ads.htm#ref_47_4">Default_Width</a>;
+ <span class="symbol"><a name="ref_54_7" href="terminal_interface-curses-text_io-modular_io__ads.htm#ref_54_7">Base</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_52_12">Number_Base</a> := <a href="terminal_interface-curses-text_io-modular_io__ads.htm#ref_48_4">Default_Base</a>)
<b>is</b>
- <span class="symbol"><A NAME="ref_56_7">Buf</A></span> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A>'Last);
+ <span class="symbol"><a name="ref_56_7">Buf</a></span> : String (1 .. <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a>'Last);
<b>begin</b>
- MIO.Put (<A HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_52_7">Item</A>, <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_54_7">Base</A>);
- <A HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_47_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_51_7">Win</A>, <A HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_53_7">Width</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_50_14">Put</A>;
+ MIO.Put (<a href="terminal_interface-curses-text_io-modular_io__adb.htm#ref_56_7">Buf</a>, <a href="terminal_interface-curses-text_io-modular_io__ads.htm#ref_52_7">Item</a>, <a href="terminal_interface-curses-text_io-modular_io__ads.htm#ref_54_7">Base</a>);
+ <a href="terminal_interface-curses-text_io-modular_io__adb.htm#ref_47_12">Aux</a>.<a href="terminal_interface-curses-text_io-aux__ads.htm#ref_49_14">Put_Buf</a> (<a href="terminal_interface-curses-text_io-modular_io__ads.htm#ref_51_7">Win</a>, <a href="terminal_interface-curses-text_io-modular_io__adb.htm#ref_56_7">Buf</a>, <a href="terminal_interface-curses-text_io-modular_io__ads.htm#ref_53_7">Width</a>);
+ <b>end</b> <a href="terminal_interface-curses-text_io-modular_io__ads.htm#ref_50_14">Put</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_62_14" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_56_14">Put</A></span>
- (<span class="symbol"><A NAME="ref_63_7" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_57_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_43_9">Num</A>;
- <span class="symbol"><A NAME="ref_64_7" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_58_7">Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_47_4">Default_Width</A>;
- <span class="symbol"><A NAME="ref_65_7" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_59_7">Base</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_52_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_48_4">Default_Base</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_62_14" href="terminal_interface-curses-text_io-modular_io__ads.htm#ref_56_14">Put</a></span>
+ (<span class="symbol"><a name="ref_63_7" href="terminal_interface-curses-text_io-modular_io__ads.htm#ref_57_7">Item</a></span> : <a href="terminal_interface-curses-text_io-modular_io__ads.htm#ref_43_9">Num</a>;
+ <span class="symbol"><a name="ref_64_7" href="terminal_interface-curses-text_io-modular_io__ads.htm#ref_58_7">Width</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-modular_io__ads.htm#ref_47_4">Default_Width</a>;
+ <span class="symbol"><a name="ref_65_7" href="terminal_interface-curses-text_io-modular_io__ads.htm#ref_59_7">Base</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_52_12">Number_Base</a> := <a href="terminal_interface-curses-text_io-modular_io__ads.htm#ref_48_4">Default_Base</a>)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_50_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_63_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_57_7">Item</A>, <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_58_7">Width</A>, <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_59_7">Base</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_56_14">Put</A>;
+ <a href="terminal_interface-curses-text_io-modular_io__ads.htm#ref_50_14">Put</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_63_13">Get_Window</a>, <a href="terminal_interface-curses-text_io-modular_io__ads.htm#ref_57_7">Item</a>, <a href="terminal_interface-curses-text_io-modular_io__ads.htm#ref_58_7">Width</a>, <a href="terminal_interface-curses-text_io-modular_io__ads.htm#ref_59_7">Base</a>);
+ <b>end</b> <a href="terminal_interface-curses-text_io-modular_io__ads.htm#ref_56_14">Put</a>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_45_43">Modular_IO</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>.<a href="terminal_interface-curses-text_io-modular_io__ads.htm#ref_45_43">Modular_IO</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-text_io-modular_io__ads.htm b/doc/html/ada/terminal_interface-curses-text_io-modular_io__ads.htm
index f78a369226df..043ac0a380f4 100644
--- a/doc/html/ada/terminal_interface-curses-text_io-modular_io__ads.htm
+++ b/doc/html/ada/terminal_interface-curses-text_io-modular_io__ads.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-text_io-modular_io.ads</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-text_io-modular_io.ads</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,72 +11,72 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-modular_io.ads </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Modular_IO --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- S P E C --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.13 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-text_io-modular_io.ads </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Text_IO.Modular_IO --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- S P E C --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.13 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
<b>generic</b>
- <b>type</b> <span class="symbol"><A NAME="ref_43_9" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_45_43">Num</A></span> <b>is</b> <b>mod</b> &lt;&gt;;
+ <b>type</b> <span class="symbol"><a name="ref_43_9">Num</a></span> <b>is</b> <b>mod</b> &lt;&gt;;
-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>.<span class="symbol"><A NAME="ref_45_43" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_45_48">Modular_IO</A></span> <b>is</b>
+<b>package</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>.<span class="symbol"><a name="ref_45_43" href="terminal_interface-curses-text_io-modular_io__adb.htm#ref_45_48">Modular_IO</a></span> <b>is</b>
- <span class="symbol"><A NAME="ref_47_4">Default_Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_43_9">Num</A>'Width;
- <span class="symbol"><A NAME="ref_48_4">Default_Base</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_52_12">Number_Base</A> := 10;
+ <span class="symbol"><a name="ref_47_4">Default_Width</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-modular_io__ads.htm#ref_43_9">Num</a>'Width;
+ <span class="symbol"><a name="ref_48_4">Default_Base</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_52_12">Number_Base</a> := 10;
- <b>procedure</b> <span class="symbol"><A NAME="ref_50_14" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_50_14">Put</A></span>
- (<span class="symbol"><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_51_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_52_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_43_9">Num</A>;
- <span class="symbol"><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_53_7">Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_47_4">Default_Width</A>;
- <span class="symbol"><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_54_7">Base</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_52_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_48_4">Default_Base</A>);
+ <b>procedure</b> <span class="symbol"><a name="ref_50_14" href="terminal_interface-curses-text_io-modular_io__adb.htm#ref_50_14">Put</a></span>
+ (<span class="symbol"><a name="ref_51_7" href="terminal_interface-curses-text_io-modular_io__adb.htm#ref_51_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_52_7" href="terminal_interface-curses-text_io-modular_io__adb.htm#ref_52_7">Item</a></span> : <a href="terminal_interface-curses-text_io-modular_io__ads.htm#ref_43_9">Num</a>;
+ <span class="symbol"><a name="ref_53_7" href="terminal_interface-curses-text_io-modular_io__adb.htm#ref_53_7">Width</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-modular_io__ads.htm#ref_47_4">Default_Width</a>;
+ <span class="symbol"><a name="ref_54_7" href="terminal_interface-curses-text_io-modular_io__adb.htm#ref_54_7">Base</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_52_12">Number_Base</a> := <a href="terminal_interface-curses-text_io-modular_io__ads.htm#ref_48_4">Default_Base</a>);
- <b>procedure</b> <span class="symbol"><A NAME="ref_56_14" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_62_14">Put</A></span>
- (<span class="symbol"><A NAME="ref_57_7" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_63_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_43_9">Num</A>;
- <span class="symbol"><A NAME="ref_58_7" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_64_7">Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_47_4">Default_Width</A>;
- <span class="symbol"><A NAME="ref_59_7" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_65_7">Base</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_52_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_48_4">Default_Base</A>);
+ <b>procedure</b> <span class="symbol"><a name="ref_56_14" href="terminal_interface-curses-text_io-modular_io__adb.htm#ref_62_14">Put</a></span>
+ (<span class="symbol"><a name="ref_57_7" href="terminal_interface-curses-text_io-modular_io__adb.htm#ref_63_7">Item</a></span> : <a href="terminal_interface-curses-text_io-modular_io__ads.htm#ref_43_9">Num</a>;
+ <span class="symbol"><a name="ref_58_7" href="terminal_interface-curses-text_io-modular_io__adb.htm#ref_64_7">Width</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_51_12">Field</a> := <a href="terminal_interface-curses-text_io-modular_io__ads.htm#ref_47_4">Default_Width</a>;
+ <span class="symbol"><a name="ref_59_7" href="terminal_interface-curses-text_io-modular_io__adb.htm#ref_65_7">Base</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_52_12">Number_Base</a> := <a href="terminal_interface-curses-text_io-modular_io__ads.htm#ref_48_4">Default_Base</a>);
<b>private</b>
<b>pragma</b> Inline (Put);
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_45_43">Modular_IO</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>.<a href="terminal_interface-curses-text_io-modular_io__ads.htm#ref_45_43">Modular_IO</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-text_io__adb.htm b/doc/html/ada/terminal_interface-curses-text_io__adb.htm
index a1997113aea6..379760c0d9ba 100644
--- a/doc/html/ada/terminal_interface-curses-text_io__adb.htm
+++ b/doc/html/ada/terminal_interface-curses-text_io__adb.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-text_io.adb</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-text_io.adb</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,347 +11,347 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io.adb </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- B O D Y --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2011,2014 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.23 @</EM></span>
-<span class="comment"><EM>-- @Date: 2020/02/02 23:34:34 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<span class="symbol"><A NAME="ref_43_40" HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A></span> <b>is</b>
-
- <span class="symbol"><A NAME="ref_45_4">Default_Window</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_57_4">Null_Window</A>;
-
- <b>procedure</b> <span class="symbol"><A NAME="ref_47_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_60_14">Set_Window</A></span> (<span class="symbol"><A NAME="ref_47_26" HREF="terminal_interface-curses-text_io__ads.htm#ref_60_26">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>)
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-text_io.adb </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Text_IO --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- B O D Y --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2011,2014 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.23 @</em></span>
+<span class="comment"><em>-- @Date: 2020/02/02 23:34:34 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<b>package</b> <b>body</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<span class="symbol"><a name="ref_43_40" href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a></span> <b>is</b>
+
+ <span class="symbol"><a name="ref_45_4">Default_Window</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_57_4">Null_Window</a>;
+
+ <b>procedure</b> <span class="symbol"><a name="ref_47_14" href="terminal_interface-curses-text_io__ads.htm#ref_60_14">Set_Window</a></span> (<span class="symbol"><a name="ref_47_26" href="terminal_interface-curses-text_io__ads.htm#ref_60_26">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses-text_io__adb.htm#ref_45_4">Default_Window</A> := <A HREF="terminal_interface-curses-text_io__ads.htm#ref_60_26">Win</A>;
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_60_14">Set_Window</A>;
+ <a href="terminal_interface-curses-text_io__adb.htm#ref_45_4">Default_Window</a> := <a href="terminal_interface-curses-text_io__ads.htm#ref_60_26">Win</a>;
+ <b>end</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_60_14">Set_Window</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_53_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_63_13">Get_Window</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>
+ <b>function</b> <span class="symbol"><a name="ref_53_13" href="terminal_interface-curses-text_io__ads.htm#ref_63_13">Get_Window</a></span> <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>
<b>is</b>
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_45_4">Default_Window</A> = <A HREF="terminal_interface-curses__ads.htm#ref_57_4">Null_Window</A> <b>then</b>
- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
+ <b>if</b> <a href="terminal_interface-curses-text_io__adb.htm#ref_45_4">Default_Window</a> = <a href="terminal_interface-curses__ads.htm#ref_57_4">Null_Window</a> <b>then</b>
+ <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
<b>else</b>
- <b>return</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_45_4">Default_Window</A>;
+ <b>return</b> <a href="terminal_interface-curses-text_io__adb.htm#ref_45_4">Default_Window</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_63_13">Get_Window</A>;
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_63_13">Get_Window</A>);
+ <b>end</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_63_13">Get_Window</a>;
+ <b>pragma</b> Inline (<a href="terminal_interface-curses-text_io__ads.htm#ref_63_13">Get_Window</a>);
- <b>procedure</b> <span class="symbol"><A NAME="ref_64_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_66_14">Flush</A></span> (<span class="symbol"><A NAME="ref_64_21" HREF="terminal_interface-curses-text_io__ads.htm#ref_66_21">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_64_14" href="terminal_interface-curses-text_io__ads.htm#ref_66_14">Flush</a></span> (<span class="symbol"><a name="ref_64_21" href="terminal_interface-curses-text_io__ads.htm#ref_66_21">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#ref_1216_14">Refresh</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_66_21">Win</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_66_14">Flush</A>;
+ <a href="terminal_interface-curses__ads.htm#ref_1216_14">Refresh</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_66_21">Win</a>);
+ <b>end</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_66_14">Flush</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_70_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_67_14">Flush</A></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_70_14" href="terminal_interface-curses-text_io__ads.htm#ref_67_14">Flush</a></span>
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses-text_io__ads.htm#ref_66_14">Flush</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_63_13">Get_Window</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_67_14">Flush</A>;
+ <a href="terminal_interface-curses-text_io__ads.htm#ref_66_14">Flush</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_63_13">Get_Window</a>);
+ <b>end</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_67_14">Flush</a>;
- <span class="comment"><EM>--------------------------------------------</EM></span>
- <span class="comment"><EM>-- Specification of line and page lengths --</EM></span>
- <span class="comment"><EM>--------------------------------------------</EM></span>
+ <span class="comment"><em>--------------------------------------------</em></span>
+ <span class="comment"><em>-- Specification of line and page lengths --</em></span>
+ <span class="comment"><em>--------------------------------------------</em></span>
- <span class="comment"><EM>-- There are no set routines in this package. I assume, that you allocate</EM></span>
- <span class="comment"><EM>-- the window with an appropriate size.</EM></span>
- <span class="comment"><EM>-- A scroll-window is interpreted as an page with unbounded page length,</EM></span>
- <span class="comment"><EM>-- i.e. it returns the conventional 0 as page length.</EM></span>
+ <span class="comment"><em>-- There are no set routines in this package. I assume, that you allocate</em></span>
+ <span class="comment"><em>-- the window with an appropriate size.</em></span>
+ <span class="comment"><em>-- A scroll-window is interpreted as an page with unbounded page length,</em></span>
+ <span class="comment"><em>-- i.e. it returns the conventional 0 as page length.</em></span>
- <b>function</b> <span class="symbol"><A NAME="ref_85_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_78_13">Line_Length</A></span> (<span class="symbol"><A NAME="ref_85_26" HREF="terminal_interface-curses-text_io__ads.htm#ref_78_26">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Count</A>
+ <b>function</b> <span class="symbol"><a name="ref_85_13" href="terminal_interface-curses-text_io__ads.htm#ref_78_13">Line_Length</a></span> (<span class="symbol"><a name="ref_85_26" href="terminal_interface-curses-text_io__ads.htm#ref_78_26">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>) <b>return</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_48_12">Count</a>
<b>is</b>
- <span class="symbol"><A NAME="ref_87_7">N_Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</A>;
- <span class="symbol"><A NAME="ref_88_7">N_Cols</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</A>;
+ <span class="symbol"><a name="ref_87_7">N_Lines</a></span> : <a href="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</a>;
+ <span class="symbol"><a name="ref_88_7">N_Cols</a></span> : <a href="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</a>;
<b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#ref_1399_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_78_26">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_87_7">N_Lines</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_88_7">N_Cols</A>);
- <span class="comment"><EM>-- if Natural (N_Cols) &gt; Natural (Count'Last) then</EM></span>
- <span class="comment"><EM>-- raise Layout_Error;</EM></span>
- <span class="comment"><EM>-- end if;</EM></span>
- <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Count</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_88_7">N_Cols</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_78_13">Line_Length</A>;
-
- <b>function</b> <span class="symbol"><A NAME="ref_97_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_79_13">Line_Length</A></span> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Count</A>
+ <a href="terminal_interface-curses__ads.htm#ref_1399_14">Get_Size</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_78_26">Win</a>, <a href="terminal_interface-curses-text_io__adb.htm#ref_87_7">N_Lines</a>, <a href="terminal_interface-curses-text_io__adb.htm#ref_88_7">N_Cols</a>);
+ <span class="comment"><em>-- if Natural (N_Cols) &gt; Natural (Count'Last) then</em></span>
+ <span class="comment"><em>-- raise Layout_Error;</em></span>
+ <span class="comment"><em>-- end if;</em></span>
+ <b>return</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_48_12">Count</a> (<a href="terminal_interface-curses-text_io__adb.htm#ref_88_7">N_Cols</a>);
+ <b>end</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_78_13">Line_Length</a>;
+
+ <b>function</b> <span class="symbol"><a name="ref_97_13" href="terminal_interface-curses-text_io__ads.htm#ref_79_13">Line_Length</a></span> <b>return</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_48_12">Count</a>
<b>is</b>
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_78_13">Line_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_63_13">Get_Window</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_79_13">Line_Length</A>;
+ <b>return</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_78_13">Line_Length</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_63_13">Get_Window</a>);
+ <b>end</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_79_13">Line_Length</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_103_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_81_13">Page_Length</A></span> (<span class="symbol"><A NAME="ref_103_26" HREF="terminal_interface-curses-text_io__ads.htm#ref_81_26">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Count</A>
+ <b>function</b> <span class="symbol"><a name="ref_103_13" href="terminal_interface-curses-text_io__ads.htm#ref_81_13">Page_Length</a></span> (<span class="symbol"><a name="ref_103_26" href="terminal_interface-curses-text_io__ads.htm#ref_81_26">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>) <b>return</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_48_12">Count</a>
<b>is</b>
- <span class="symbol"><A NAME="ref_105_7">N_Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</A>;
- <span class="symbol"><A NAME="ref_106_7">N_Cols</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</A>;
+ <span class="symbol"><a name="ref_105_7">N_Lines</a></span> : <a href="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</a>;
+ <span class="symbol"><a name="ref_106_7">N_Cols</a></span> : <a href="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</a>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1193_13">Scrolling_Allowed</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_81_26">Win</A>) <b>then</b>
+ <b>if</b> <a href="terminal_interface-curses__ads.htm#ref_1193_13">Scrolling_Allowed</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_81_26">Win</a>) <b>then</b>
<b>return</b> 0;
<b>else</b>
- <A HREF="terminal_interface-curses__ads.htm#ref_1399_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_81_26">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_105_7">N_Lines</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_106_7">N_Cols</A>);
- <span class="comment"><EM>-- if Natural (N_Lines) &gt; Natural (Count'Last) then</EM></span>
- <span class="comment"><EM>-- raise Layout_Error;</EM></span>
- <span class="comment"><EM>-- end if;</EM></span>
- <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Count</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_105_7">N_Lines</A>);
+ <a href="terminal_interface-curses__ads.htm#ref_1399_14">Get_Size</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_81_26">Win</a>, <a href="terminal_interface-curses-text_io__adb.htm#ref_105_7">N_Lines</a>, <a href="terminal_interface-curses-text_io__adb.htm#ref_106_7">N_Cols</a>);
+ <span class="comment"><em>-- if Natural (N_Lines) &gt; Natural (Count'Last) then</em></span>
+ <span class="comment"><em>-- raise Layout_Error;</em></span>
+ <span class="comment"><em>-- end if;</em></span>
+ <b>return</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_48_12">Count</a> (<a href="terminal_interface-curses-text_io__adb.htm#ref_105_7">N_Lines</a>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_81_13">Page_Length</A>;
+ <b>end</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_81_13">Page_Length</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_119_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_82_13">Page_Length</A></span> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Count</A>
+ <b>function</b> <span class="symbol"><a name="ref_119_13" href="terminal_interface-curses-text_io__ads.htm#ref_82_13">Page_Length</a></span> <b>return</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_48_12">Count</a>
<b>is</b>
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_81_13">Page_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_63_13">Get_Window</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_82_13">Page_Length</A>;
+ <b>return</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_81_13">Page_Length</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_63_13">Get_Window</a>);
+ <b>end</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_82_13">Page_Length</a>;
- <span class="comment"><EM>------------------------------------</EM></span>
- <span class="comment"><EM>-- Column, Line, and Page Control --</EM></span>
- <span class="comment"><EM>------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_128_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_87_14">New_Line</A></span> (<span class="symbol"><A NAME="ref_128_24" HREF="terminal_interface-curses-text_io__ads.htm#ref_87_24">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>; <span class="symbol"><A NAME="ref_128_38" HREF="terminal_interface-curses-text_io__ads.htm#ref_87_38">Spacing</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_49_12">Positive_Count</A> := 1)
+ <span class="comment"><em>------------------------------------</em></span>
+ <span class="comment"><em>-- Column, Line, and Page Control --</em></span>
+ <span class="comment"><em>------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_128_14" href="terminal_interface-curses-text_io__ads.htm#ref_87_14">New_Line</a></span> (<span class="symbol"><a name="ref_128_24" href="terminal_interface-curses-text_io__ads.htm#ref_87_24">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>; <span class="symbol"><a name="ref_128_38" href="terminal_interface-curses-text_io__ads.htm#ref_87_38">Spacing</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_49_12">Positive_Count</a> := 1)
<b>is</b>
- <span class="symbol"><A NAME="ref_130_7">P_Size</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Count</A> := <A HREF="terminal_interface-curses-text_io__ads.htm#ref_81_13">Page_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_87_24">Win</A>);
+ <span class="symbol"><a name="ref_130_7">P_Size</a></span> : <b>constant</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_48_12">Count</a> := <a href="terminal_interface-curses-text_io__ads.htm#ref_81_13">Page_Length</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_87_24">Win</a>);
<b>begin</b>
- <b>if</b> <b>not</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_87_38">Spacing</A>'Valid <b>then</b>
+ <b>if</b> <b>not</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_87_38">Spacing</a>'Valid <b>then</b>
<b>raise</b> Constraint_Error;
<b>end</b> <b>if</b>;
- <b>for</b> <span class="symbol"><A NAME="ref_136_11">I</A></span> <b>in</b> 1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_87_38">Spacing</A> <b>loop</b>
- <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_130_7">P_Size</A> &gt; 0 <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_102_13">Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_87_24">Win</A>) &gt;= <A HREF="terminal_interface-curses-text_io__adb.htm#ref_130_7">P_Size</A> <b>then</b>
- <A HREF="terminal_interface-curses-text_io__ads.htm#ref_90_14">New_Page</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_87_24">Win</A>);
+ <b>for</b> <span class="symbol"><a name="ref_136_11">I</a></span> <b>in</b> 1 .. <a href="terminal_interface-curses-text_io__ads.htm#ref_87_38">Spacing</a> <b>loop</b>
+ <b>if</b> <a href="terminal_interface-curses-text_io__adb.htm#ref_130_7">P_Size</a> &gt; 0 <b>and</b> <b>then</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_102_13">Line</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_87_24">Win</a>) &gt;= <a href="terminal_interface-curses-text_io__adb.htm#ref_130_7">P_Size</a> <b>then</b>
+ <a href="terminal_interface-curses-text_io__ads.htm#ref_90_14">New_Page</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_87_24">Win</a>);
<b>else</b>
- <A HREF="terminal_interface-curses__ads.htm#ref_699_14">Add</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_87_24">Win</A>, ASCII.LF);
+ <a href="terminal_interface-curses__ads.htm#ref_699_14">Add</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_87_24">Win</a>, ASCII.LF);
<b>end</b> <b>if</b>;
<b>end</b> <b>loop</b>;
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_87_14">New_Line</A>;
+ <b>end</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_87_14">New_Line</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_145_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_88_14">New_Line</A></span> (<span class="symbol"><A NAME="ref_145_24" HREF="terminal_interface-curses-text_io__ads.htm#ref_88_24">Spacing</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_49_12">Positive_Count</A> := 1)
+ <b>procedure</b> <span class="symbol"><a name="ref_145_14" href="terminal_interface-curses-text_io__ads.htm#ref_88_14">New_Line</a></span> (<span class="symbol"><a name="ref_145_24" href="terminal_interface-curses-text_io__ads.htm#ref_88_24">Spacing</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_49_12">Positive_Count</a> := 1)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses-text_io__ads.htm#ref_87_14">New_Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_63_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_88_24">Spacing</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_88_14">New_Line</A>;
+ <a href="terminal_interface-curses-text_io__ads.htm#ref_87_14">New_Line</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_63_13">Get_Window</a>, <a href="terminal_interface-curses-text_io__ads.htm#ref_88_24">Spacing</a>);
+ <b>end</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_88_14">New_Line</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_151_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_90_14">New_Page</A></span> (<span class="symbol"><A NAME="ref_151_24" HREF="terminal_interface-curses-text_io__ads.htm#ref_90_24">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_151_14" href="terminal_interface-curses-text_io__ads.htm#ref_90_14">New_Page</a></span> (<span class="symbol"><a name="ref_151_24" href="terminal_interface-curses-text_io__ads.htm#ref_90_24">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#ref_1251_14">Clear</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_90_24">Win</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_90_14">New_Page</A>;
+ <a href="terminal_interface-curses__ads.htm#ref_1251_14">Clear</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_90_24">Win</a>);
+ <b>end</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_90_14">New_Page</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_157_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_91_14">New_Page</A></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_157_14" href="terminal_interface-curses-text_io__ads.htm#ref_91_14">New_Page</a></span>
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses-text_io__ads.htm#ref_90_14">New_Page</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_63_13">Get_Window</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_91_14">New_Page</A>;
+ <a href="terminal_interface-curses-text_io__ads.htm#ref_90_14">New_Page</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_63_13">Get_Window</a>);
+ <b>end</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_91_14">New_Page</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_163_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_93_14">Set_Col</A></span> (<span class="symbol"><A NAME="ref_163_23" HREF="terminal_interface-curses-text_io__ads.htm#ref_93_23">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>; <span class="symbol"><A NAME="ref_163_38" HREF="terminal_interface-curses-text_io__ads.htm#ref_93_38">To</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_49_12">Positive_Count</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_163_14" href="terminal_interface-curses-text_io__ads.htm#ref_93_14">Set_Col</a></span> (<span class="symbol"><a name="ref_163_23" href="terminal_interface-curses-text_io__ads.htm#ref_93_23">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>; <span class="symbol"><a name="ref_163_38" href="terminal_interface-curses-text_io__ads.htm#ref_93_38">To</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_49_12">Positive_Count</a>)
<b>is</b>
- <span class="symbol"><A NAME="ref_165_7">Y</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_166_7">X1</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_167_7">X2</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_168_7">N</A></span> : Natural;
+ <span class="symbol"><a name="ref_165_7">Y</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_166_7">X1</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_167_7">X2</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_168_7">N</a></span> : Natural;
<b>begin</b>
- <b>if</b> <b>not</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_93_38">To</A>'Valid <b>then</b>
+ <b>if</b> <b>not</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_93_38">To</a>'Valid <b>then</b>
<b>raise</b> Constraint_Error;
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses__ads.htm#ref_1415_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_93_23">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_165_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_166_7">X1</A>);
- <A HREF="terminal_interface-curses-text_io__adb.htm#ref_168_7">N</A> := Natural (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_93_38">To</A>); <A HREF="terminal_interface-curses-text_io__adb.htm#ref_168_7">N</A> := <A HREF="terminal_interface-curses-text_io__adb.htm#ref_168_7">N</A> - 1;
- <A HREF="terminal_interface-curses-text_io__adb.htm#ref_167_7">X2</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_168_7">N</A>);
- <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_166_7">X1</A> &gt; <A HREF="terminal_interface-curses-text_io__adb.htm#ref_167_7">X2</A> <b>then</b>
- <A HREF="terminal_interface-curses-text_io__ads.htm#ref_87_14">New_Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_93_23">Win</A>, 1);
- <A HREF="terminal_interface-curses-text_io__adb.htm#ref_166_7">X1</A> := 0;
+ <a href="terminal_interface-curses__ads.htm#ref_1415_14">Get_Cursor_Position</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_93_23">Win</a>, <a href="terminal_interface-curses-text_io__adb.htm#ref_165_7">Y</a>, <a href="terminal_interface-curses-text_io__adb.htm#ref_166_7">X1</a>);
+ <a href="terminal_interface-curses-text_io__adb.htm#ref_168_7">N</a> := Natural (<a href="terminal_interface-curses-text_io__ads.htm#ref_93_38">To</a>); <a href="terminal_interface-curses-text_io__adb.htm#ref_168_7">N</a> := <a href="terminal_interface-curses-text_io__adb.htm#ref_168_7">N</a> - 1;
+ <a href="terminal_interface-curses-text_io__adb.htm#ref_167_7">X2</a> := <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a> (<a href="terminal_interface-curses-text_io__adb.htm#ref_168_7">N</a>);
+ <b>if</b> <a href="terminal_interface-curses-text_io__adb.htm#ref_166_7">X1</a> &gt; <a href="terminal_interface-curses-text_io__adb.htm#ref_167_7">X2</a> <b>then</b>
+ <a href="terminal_interface-curses-text_io__ads.htm#ref_87_14">New_Line</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_93_23">Win</a>, 1);
+ <a href="terminal_interface-curses-text_io__adb.htm#ref_166_7">X1</a> := 0;
<b>end</b> <b>if</b>;
- <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_166_7">X1</A> &lt; <A HREF="terminal_interface-curses-text_io__adb.htm#ref_167_7">X2</A> <b>then</b>
+ <b>if</b> <a href="terminal_interface-curses-text_io__adb.htm#ref_166_7">X1</a> &lt; <a href="terminal_interface-curses-text_io__adb.htm#ref_167_7">X2</a> <b>then</b>
<b>declare</b>
- <span class="symbol"><A NAME="ref_183_13">Filler</A></span> : <b>constant</b> String (Integer (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_166_7">X1</A>) .. (Integer (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_167_7">X2</A>) - 1))
+ <span class="symbol"><a name="ref_183_13">Filler</a></span> : <b>constant</b> String (Integer (<a href="terminal_interface-curses-text_io__adb.htm#ref_166_7">X1</a>) .. (Integer (<a href="terminal_interface-curses-text_io__adb.htm#ref_167_7">X2</a>) - 1))
:= (<b>others</b> =&gt; ' ');
<b>begin</b>
- <A HREF="terminal_interface-curses-text_io__ads.htm#ref_116_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_93_23">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_183_13">Filler</A>);
+ <a href="terminal_interface-curses-text_io__ads.htm#ref_116_14">Put</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_93_23">Win</a>, <a href="terminal_interface-curses-text_io__adb.htm#ref_183_13">Filler</a>);
<b>end</b>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_93_14">Set_Col</A>;
+ <b>end</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_93_14">Set_Col</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_191_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_94_14">Set_Col</A></span> (<span class="symbol"><A NAME="ref_191_23" HREF="terminal_interface-curses-text_io__ads.htm#ref_94_23">To</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_49_12">Positive_Count</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_191_14" href="terminal_interface-curses-text_io__ads.htm#ref_94_14">Set_Col</a></span> (<span class="symbol"><a name="ref_191_23" href="terminal_interface-curses-text_io__ads.htm#ref_94_23">To</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_49_12">Positive_Count</a>)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses-text_io__ads.htm#ref_93_14">Set_Col</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_63_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_94_23">To</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_94_14">Set_Col</A>;
+ <a href="terminal_interface-curses-text_io__ads.htm#ref_93_14">Set_Col</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_63_13">Get_Window</a>, <a href="terminal_interface-curses-text_io__ads.htm#ref_94_23">To</a>);
+ <b>end</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_94_14">Set_Col</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_197_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_96_14">Set_Line</A></span> (<span class="symbol"><A NAME="ref_197_24" HREF="terminal_interface-curses-text_io__ads.htm#ref_96_24">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>; <span class="symbol"><A NAME="ref_197_38" HREF="terminal_interface-curses-text_io__ads.htm#ref_96_38">To</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_49_12">Positive_Count</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_197_14" href="terminal_interface-curses-text_io__ads.htm#ref_96_14">Set_Line</a></span> (<span class="symbol"><a name="ref_197_24" href="terminal_interface-curses-text_io__ads.htm#ref_96_24">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>; <span class="symbol"><a name="ref_197_38" href="terminal_interface-curses-text_io__ads.htm#ref_96_38">To</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_49_12">Positive_Count</a>)
<b>is</b>
- <span class="symbol"><A NAME="ref_199_7">Y1</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_200_7">Y2</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_201_7">X</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_202_7">N</A></span> : Natural;
+ <span class="symbol"><a name="ref_199_7">Y1</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_200_7">Y2</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_201_7">X</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_202_7">N</a></span> : Natural;
<b>begin</b>
- <b>if</b> <b>not</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_96_38">To</A>'Valid <b>then</b>
+ <b>if</b> <b>not</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_96_38">To</a>'Valid <b>then</b>
<b>raise</b> Constraint_Error;
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses__ads.htm#ref_1415_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_96_24">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_199_7">Y1</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_201_7">X</A>);
- <b>pragma</b> Warnings (Off, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_201_7">X</A>); <span class="comment"><EM>-- unreferenced</EM></span>
- <A HREF="terminal_interface-curses-text_io__adb.htm#ref_202_7">N</A> := Natural (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_96_38">To</A>); <A HREF="terminal_interface-curses-text_io__adb.htm#ref_202_7">N</A> := <A HREF="terminal_interface-curses-text_io__adb.htm#ref_202_7">N</A> - 1;
- <A HREF="terminal_interface-curses-text_io__adb.htm#ref_200_7">Y2</A> := <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_202_7">N</A>);
- <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_200_7">Y2</A> &lt; <A HREF="terminal_interface-curses-text_io__adb.htm#ref_199_7">Y1</A> <b>then</b>
- <A HREF="terminal_interface-curses-text_io__ads.htm#ref_90_14">New_Page</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_96_24">Win</A>);
- <A HREF="terminal_interface-curses-text_io__adb.htm#ref_199_7">Y1</A> := 0;
+ <a href="terminal_interface-curses__ads.htm#ref_1415_14">Get_Cursor_Position</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_96_24">Win</a>, <a href="terminal_interface-curses-text_io__adb.htm#ref_199_7">Y1</a>, <a href="terminal_interface-curses-text_io__adb.htm#ref_201_7">X</a>);
+ <b>pragma</b> Warnings (Off, <a href="terminal_interface-curses-text_io__adb.htm#ref_201_7">X</a>); <span class="comment"><em>-- unreferenced</em></span>
+ <a href="terminal_interface-curses-text_io__adb.htm#ref_202_7">N</a> := Natural (<a href="terminal_interface-curses-text_io__ads.htm#ref_96_38">To</a>); <a href="terminal_interface-curses-text_io__adb.htm#ref_202_7">N</a> := <a href="terminal_interface-curses-text_io__adb.htm#ref_202_7">N</a> - 1;
+ <a href="terminal_interface-curses-text_io__adb.htm#ref_200_7">Y2</a> := <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a> (<a href="terminal_interface-curses-text_io__adb.htm#ref_202_7">N</a>);
+ <b>if</b> <a href="terminal_interface-curses-text_io__adb.htm#ref_200_7">Y2</a> &lt; <a href="terminal_interface-curses-text_io__adb.htm#ref_199_7">Y1</a> <b>then</b>
+ <a href="terminal_interface-curses-text_io__ads.htm#ref_90_14">New_Page</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_96_24">Win</a>);
+ <a href="terminal_interface-curses-text_io__adb.htm#ref_199_7">Y1</a> := 0;
<b>end</b> <b>if</b>;
- <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_199_7">Y1</A> &lt; <A HREF="terminal_interface-curses-text_io__adb.htm#ref_200_7">Y2</A> <b>then</b>
- <A HREF="terminal_interface-curses-text_io__ads.htm#ref_87_14">New_Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_96_24">Win</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_49_12">Positive_Count</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_200_7">Y2</A> - <A HREF="terminal_interface-curses-text_io__adb.htm#ref_199_7">Y1</A>));
+ <b>if</b> <a href="terminal_interface-curses-text_io__adb.htm#ref_199_7">Y1</a> &lt; <a href="terminal_interface-curses-text_io__adb.htm#ref_200_7">Y2</a> <b>then</b>
+ <a href="terminal_interface-curses-text_io__ads.htm#ref_87_14">New_Line</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_96_24">Win</a>, <a href="terminal_interface-curses-text_io__ads.htm#ref_49_12">Positive_Count</a> (<a href="terminal_interface-curses-text_io__adb.htm#ref_200_7">Y2</a> - <a href="terminal_interface-curses-text_io__adb.htm#ref_199_7">Y1</a>));
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_96_14">Set_Line</A>;
+ <b>end</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_96_14">Set_Line</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_221_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_97_14">Set_Line</A></span> (<span class="symbol"><A NAME="ref_221_24" HREF="terminal_interface-curses-text_io__ads.htm#ref_97_24">To</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_49_12">Positive_Count</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_221_14" href="terminal_interface-curses-text_io__ads.htm#ref_97_14">Set_Line</a></span> (<span class="symbol"><a name="ref_221_24" href="terminal_interface-curses-text_io__ads.htm#ref_97_24">To</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_49_12">Positive_Count</a>)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses-text_io__ads.htm#ref_96_14">Set_Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_63_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_97_24">To</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_97_14">Set_Line</A>;
+ <a href="terminal_interface-curses-text_io__ads.htm#ref_96_14">Set_Line</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_63_13">Get_Window</a>, <a href="terminal_interface-curses-text_io__ads.htm#ref_97_24">To</a>);
+ <b>end</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_97_14">Set_Line</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_227_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_99_13">Col</A></span> (<span class="symbol"><A NAME="ref_227_18" HREF="terminal_interface-curses-text_io__ads.htm#ref_99_18">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_49_12">Positive_Count</A>
+ <b>function</b> <span class="symbol"><a name="ref_227_13" href="terminal_interface-curses-text_io__ads.htm#ref_99_13">Col</a></span> (<span class="symbol"><a name="ref_227_18" href="terminal_interface-curses-text_io__ads.htm#ref_99_18">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>) <b>return</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_49_12">Positive_Count</a>
<b>is</b>
- <span class="symbol"><A NAME="ref_229_7">Y</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_230_7">X</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_231_7">N</A></span> : Natural;
+ <span class="symbol"><a name="ref_229_7">Y</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_230_7">X</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_231_7">N</a></span> : Natural;
<b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#ref_1415_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_99_18">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_229_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_230_7">X</A>);
- <A HREF="terminal_interface-curses-text_io__adb.htm#ref_231_7">N</A> := Natural (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_230_7">X</A>); <A HREF="terminal_interface-curses-text_io__adb.htm#ref_231_7">N</A> := <A HREF="terminal_interface-curses-text_io__adb.htm#ref_231_7">N</A> + 1;
- <span class="comment"><EM>-- if N &gt; Natural (Count'Last) then</EM></span>
- <span class="comment"><EM>-- raise Layout_Error;</EM></span>
- <span class="comment"><EM>-- end if;</EM></span>
- <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_49_12">Positive_Count</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_231_7">N</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_99_13">Col</A>;
-
- <b>function</b> <span class="symbol"><A NAME="ref_241_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_100_13">Col</A></span> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_49_12">Positive_Count</A>
+ <a href="terminal_interface-curses__ads.htm#ref_1415_14">Get_Cursor_Position</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_99_18">Win</a>, <a href="terminal_interface-curses-text_io__adb.htm#ref_229_7">Y</a>, <a href="terminal_interface-curses-text_io__adb.htm#ref_230_7">X</a>);
+ <a href="terminal_interface-curses-text_io__adb.htm#ref_231_7">N</a> := Natural (<a href="terminal_interface-curses-text_io__adb.htm#ref_230_7">X</a>); <a href="terminal_interface-curses-text_io__adb.htm#ref_231_7">N</a> := <a href="terminal_interface-curses-text_io__adb.htm#ref_231_7">N</a> + 1;
+ <span class="comment"><em>-- if N &gt; Natural (Count'Last) then</em></span>
+ <span class="comment"><em>-- raise Layout_Error;</em></span>
+ <span class="comment"><em>-- end if;</em></span>
+ <b>return</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_49_12">Positive_Count</a> (<a href="terminal_interface-curses-text_io__adb.htm#ref_231_7">N</a>);
+ <b>end</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_99_13">Col</a>;
+
+ <b>function</b> <span class="symbol"><a name="ref_241_13" href="terminal_interface-curses-text_io__ads.htm#ref_100_13">Col</a></span> <b>return</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_49_12">Positive_Count</a>
<b>is</b>
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_99_13">Col</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_63_13">Get_Window</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_100_13">Col</A>;
+ <b>return</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_99_13">Col</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_63_13">Get_Window</a>);
+ <b>end</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_100_13">Col</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_247_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_102_13">Line</A></span> (<span class="symbol"><A NAME="ref_247_19" HREF="terminal_interface-curses-text_io__ads.htm#ref_102_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_49_12">Positive_Count</A>
+ <b>function</b> <span class="symbol"><a name="ref_247_13" href="terminal_interface-curses-text_io__ads.htm#ref_102_13">Line</a></span> (<span class="symbol"><a name="ref_247_19" href="terminal_interface-curses-text_io__ads.htm#ref_102_19">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>) <b>return</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_49_12">Positive_Count</a>
<b>is</b>
- <span class="symbol"><A NAME="ref_249_7">Y</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_250_7">X</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_251_7">N</A></span> : Natural;
+ <span class="symbol"><a name="ref_249_7">Y</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_250_7">X</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_251_7">N</a></span> : Natural;
<b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#ref_1415_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_102_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_249_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_250_7">X</A>);
- <A HREF="terminal_interface-curses-text_io__adb.htm#ref_251_7">N</A> := Natural (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_249_7">Y</A>); <A HREF="terminal_interface-curses-text_io__adb.htm#ref_251_7">N</A> := <A HREF="terminal_interface-curses-text_io__adb.htm#ref_251_7">N</A> + 1;
- <span class="comment"><EM>-- if N &gt; Natural (Count'Last) then</EM></span>
- <span class="comment"><EM>-- raise Layout_Error;</EM></span>
- <span class="comment"><EM>-- end if;</EM></span>
- <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_49_12">Positive_Count</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_251_7">N</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_102_13">Line</A>;
-
- <b>function</b> <span class="symbol"><A NAME="ref_261_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_103_13">Line</A></span> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_49_12">Positive_Count</A>
+ <a href="terminal_interface-curses__ads.htm#ref_1415_14">Get_Cursor_Position</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_102_19">Win</a>, <a href="terminal_interface-curses-text_io__adb.htm#ref_249_7">Y</a>, <a href="terminal_interface-curses-text_io__adb.htm#ref_250_7">X</a>);
+ <a href="terminal_interface-curses-text_io__adb.htm#ref_251_7">N</a> := Natural (<a href="terminal_interface-curses-text_io__adb.htm#ref_249_7">Y</a>); <a href="terminal_interface-curses-text_io__adb.htm#ref_251_7">N</a> := <a href="terminal_interface-curses-text_io__adb.htm#ref_251_7">N</a> + 1;
+ <span class="comment"><em>-- if N &gt; Natural (Count'Last) then</em></span>
+ <span class="comment"><em>-- raise Layout_Error;</em></span>
+ <span class="comment"><em>-- end if;</em></span>
+ <b>return</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_49_12">Positive_Count</a> (<a href="terminal_interface-curses-text_io__adb.htm#ref_251_7">N</a>);
+ <b>end</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_102_13">Line</a>;
+
+ <b>function</b> <span class="symbol"><a name="ref_261_13" href="terminal_interface-curses-text_io__ads.htm#ref_103_13">Line</a></span> <b>return</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_49_12">Positive_Count</a>
<b>is</b>
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_102_13">Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_63_13">Get_Window</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_103_13">Line</A>;
+ <b>return</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_102_13">Line</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_63_13">Get_Window</a>);
+ <b>end</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_103_13">Line</a>;
- <span class="comment"><EM>-----------------------</EM></span>
- <span class="comment"><EM>-- Characters Output --</EM></span>
- <span class="comment"><EM>-----------------------</EM></span>
+ <span class="comment"><em>-----------------------</em></span>
+ <span class="comment"><em>-- Characters Output --</em></span>
+ <span class="comment"><em>-----------------------</em></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_271_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_109_14">Put</A></span> (<span class="symbol"><A NAME="ref_271_19" HREF="terminal_interface-curses-text_io__ads.htm#ref_109_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>; <span class="symbol"><A NAME="ref_271_34" HREF="terminal_interface-curses-text_io__ads.htm#ref_109_34">Item</A></span> : Character)
+ <b>procedure</b> <span class="symbol"><a name="ref_271_14" href="terminal_interface-curses-text_io__ads.htm#ref_109_14">Put</a></span> (<span class="symbol"><a name="ref_271_19" href="terminal_interface-curses-text_io__ads.htm#ref_109_19">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>; <span class="symbol"><a name="ref_271_34" href="terminal_interface-curses-text_io__ads.htm#ref_109_34">Item</a></span> : Character)
<b>is</b>
- <span class="symbol"><A NAME="ref_273_7">P_Size</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Count</A> := <A HREF="terminal_interface-curses-text_io__ads.htm#ref_81_13">Page_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_109_19">Win</A>);
- <span class="symbol"><A NAME="ref_274_7">Y</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_275_7">X</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_276_7">L</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</A>;
- <span class="symbol"><A NAME="ref_277_7">C</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</A>;
+ <span class="symbol"><a name="ref_273_7">P_Size</a></span> : <b>constant</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_48_12">Count</a> := <a href="terminal_interface-curses-text_io__ads.htm#ref_81_13">Page_Length</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_109_19">Win</a>);
+ <span class="symbol"><a name="ref_274_7">Y</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_275_7">X</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_276_7">L</a></span> : <a href="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</a>;
+ <span class="symbol"><a name="ref_277_7">C</a></span> : <a href="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</a>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_273_7">P_Size</A> &gt; 0 <b>then</b>
- <A HREF="terminal_interface-curses__ads.htm#ref_1415_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_109_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_274_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_275_7">X</A>);
- <A HREF="terminal_interface-curses__ads.htm#ref_1399_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_109_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_276_7">L</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_277_7">C</A>);
- <b>if</b> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_274_7">Y</A> + 1) = <A HREF="terminal_interface-curses-text_io__adb.htm#ref_276_7">L</A> <b>and</b> <b>then</b> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_275_7">X</A> + 1) = <A HREF="terminal_interface-curses-text_io__adb.htm#ref_277_7">C</A> <b>then</b>
- <A HREF="terminal_interface-curses-text_io__ads.htm#ref_90_14">New_Page</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_109_19">Win</A>);
+ <b>if</b> <a href="terminal_interface-curses-text_io__adb.htm#ref_273_7">P_Size</a> &gt; 0 <b>then</b>
+ <a href="terminal_interface-curses__ads.htm#ref_1415_14">Get_Cursor_Position</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_109_19">Win</a>, <a href="terminal_interface-curses-text_io__adb.htm#ref_274_7">Y</a>, <a href="terminal_interface-curses-text_io__adb.htm#ref_275_7">X</a>);
+ <a href="terminal_interface-curses__ads.htm#ref_1399_14">Get_Size</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_109_19">Win</a>, <a href="terminal_interface-curses-text_io__adb.htm#ref_276_7">L</a>, <a href="terminal_interface-curses-text_io__adb.htm#ref_277_7">C</a>);
+ <b>if</b> (<a href="terminal_interface-curses-text_io__adb.htm#ref_274_7">Y</a> + 1) = <a href="terminal_interface-curses-text_io__adb.htm#ref_276_7">L</a> <b>and</b> <b>then</b> (<a href="terminal_interface-curses-text_io__adb.htm#ref_275_7">X</a> + 1) = <a href="terminal_interface-curses-text_io__adb.htm#ref_277_7">C</a> <b>then</b>
+ <a href="terminal_interface-curses-text_io__ads.htm#ref_90_14">New_Page</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_109_19">Win</a>);
<b>end</b> <b>if</b>;
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses__ads.htm#ref_699_14">Add</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_109_19">Win</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_109_34">Item</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_109_14">Put</A>;
+ <a href="terminal_interface-curses__ads.htm#ref_699_14">Add</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_109_19">Win</a>, <a href="terminal_interface-curses-text_io__ads.htm#ref_109_34">Item</a>);
+ <b>end</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_109_14">Put</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_289_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_110_14">Put</A></span> (<span class="symbol"><A NAME="ref_289_19" HREF="terminal_interface-curses-text_io__ads.htm#ref_110_19">Item</A></span> : Character)
+ <b>procedure</b> <span class="symbol"><a name="ref_289_14" href="terminal_interface-curses-text_io__ads.htm#ref_110_14">Put</a></span> (<span class="symbol"><a name="ref_289_19" href="terminal_interface-curses-text_io__ads.htm#ref_110_19">Item</a></span> : Character)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses-text_io__ads.htm#ref_109_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_63_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_110_19">Item</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_110_14">Put</A>;
+ <a href="terminal_interface-curses-text_io__ads.htm#ref_109_14">Put</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_63_13">Get_Window</a>, <a href="terminal_interface-curses-text_io__ads.htm#ref_110_19">Item</a>);
+ <b>end</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_110_14">Put</a>;
- <span class="comment"><EM>--------------------</EM></span>
- <span class="comment"><EM>-- Strings-Output --</EM></span>
- <span class="comment"><EM>--------------------</EM></span>
+ <span class="comment"><em>--------------------</em></span>
+ <span class="comment"><em>-- Strings-Output --</em></span>
+ <span class="comment"><em>--------------------</em></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_299_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_116_14">Put</A></span> (<span class="symbol"><A NAME="ref_299_19" HREF="terminal_interface-curses-text_io__ads.htm#ref_116_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>; <span class="symbol"><A NAME="ref_299_34" HREF="terminal_interface-curses-text_io__ads.htm#ref_116_34">Item</A></span> : String)
+ <b>procedure</b> <span class="symbol"><a name="ref_299_14" href="terminal_interface-curses-text_io__ads.htm#ref_116_14">Put</a></span> (<span class="symbol"><a name="ref_299_19" href="terminal_interface-curses-text_io__ads.htm#ref_116_19">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>; <span class="symbol"><a name="ref_299_34" href="terminal_interface-curses-text_io__ads.htm#ref_116_34">Item</a></span> : String)
<b>is</b>
- <span class="symbol"><A NAME="ref_301_7">P_Size</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Count</A> := <A HREF="terminal_interface-curses-text_io__ads.htm#ref_81_13">Page_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_116_19">Win</A>);
- <span class="symbol"><A NAME="ref_302_7">Y</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_303_7">X</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_304_7">L</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</A>;
- <span class="symbol"><A NAME="ref_305_7">C</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</A>;
+ <span class="symbol"><a name="ref_301_7">P_Size</a></span> : <b>constant</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_48_12">Count</a> := <a href="terminal_interface-curses-text_io__ads.htm#ref_81_13">Page_Length</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_116_19">Win</a>);
+ <span class="symbol"><a name="ref_302_7">Y</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_303_7">X</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_304_7">L</a></span> : <a href="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</a>;
+ <span class="symbol"><a name="ref_305_7">C</a></span> : <a href="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</a>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_301_7">P_Size</A> &gt; 0 <b>then</b>
- <A HREF="terminal_interface-curses__ads.htm#ref_1415_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_116_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_302_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_303_7">X</A>);
- <A HREF="terminal_interface-curses__ads.htm#ref_1399_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_116_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_304_7">L</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_305_7">C</A>);
- <b>if</b> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_302_7">Y</A> + 1) = <A HREF="terminal_interface-curses-text_io__adb.htm#ref_304_7">L</A> <b>and</b> <b>then</b> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_303_7">X</A> + 1 + <A HREF="terminal_interface-curses-text_io__ads.htm#ref_116_34">Item</A>'Length) &gt;= <A HREF="terminal_interface-curses-text_io__adb.htm#ref_305_7">C</A> <b>then</b>
- <A HREF="terminal_interface-curses-text_io__ads.htm#ref_90_14">New_Page</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_116_19">Win</A>);
+ <b>if</b> <a href="terminal_interface-curses-text_io__adb.htm#ref_301_7">P_Size</a> &gt; 0 <b>then</b>
+ <a href="terminal_interface-curses__ads.htm#ref_1415_14">Get_Cursor_Position</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_116_19">Win</a>, <a href="terminal_interface-curses-text_io__adb.htm#ref_302_7">Y</a>, <a href="terminal_interface-curses-text_io__adb.htm#ref_303_7">X</a>);
+ <a href="terminal_interface-curses__ads.htm#ref_1399_14">Get_Size</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_116_19">Win</a>, <a href="terminal_interface-curses-text_io__adb.htm#ref_304_7">L</a>, <a href="terminal_interface-curses-text_io__adb.htm#ref_305_7">C</a>);
+ <b>if</b> (<a href="terminal_interface-curses-text_io__adb.htm#ref_302_7">Y</a> + 1) = <a href="terminal_interface-curses-text_io__adb.htm#ref_304_7">L</a> <b>and</b> <b>then</b> (<a href="terminal_interface-curses-text_io__adb.htm#ref_303_7">X</a> + 1 + <a href="terminal_interface-curses-text_io__ads.htm#ref_116_34">Item</a>'Length) &gt;= <a href="terminal_interface-curses-text_io__adb.htm#ref_305_7">C</a> <b>then</b>
+ <a href="terminal_interface-curses-text_io__ads.htm#ref_90_14">New_Page</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_116_19">Win</a>);
<b>end</b> <b>if</b>;
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses__ads.htm#ref_824_14">Add</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_116_19">Win</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_116_34">Item</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_116_14">Put</A>;
+ <a href="terminal_interface-curses__ads.htm#ref_824_14">Add</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_116_19">Win</a>, <a href="terminal_interface-curses-text_io__ads.htm#ref_116_34">Item</a>);
+ <b>end</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_116_14">Put</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_317_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_117_14">Put</A></span> (<span class="symbol"><A NAME="ref_317_19" HREF="terminal_interface-curses-text_io__ads.htm#ref_117_19">Item</A></span> : String)
+ <b>procedure</b> <span class="symbol"><a name="ref_317_14" href="terminal_interface-curses-text_io__ads.htm#ref_117_14">Put</a></span> (<span class="symbol"><a name="ref_317_19" href="terminal_interface-curses-text_io__ads.htm#ref_117_19">Item</a></span> : String)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses-text_io__ads.htm#ref_116_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_63_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_117_19">Item</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_117_14">Put</A>;
+ <a href="terminal_interface-curses-text_io__ads.htm#ref_116_14">Put</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_63_13">Get_Window</a>, <a href="terminal_interface-curses-text_io__ads.htm#ref_117_19">Item</a>);
+ <b>end</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_117_14">Put</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_323_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_119_14">Put_Line</A></span>
- (<span class="symbol"><A NAME="ref_324_7" HREF="terminal_interface-curses-text_io__ads.htm#ref_120_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_325_7" HREF="terminal_interface-curses-text_io__ads.htm#ref_121_7">Item</A></span> : String)
+ <b>procedure</b> <span class="symbol"><a name="ref_323_14" href="terminal_interface-curses-text_io__ads.htm#ref_119_14">Put_Line</a></span>
+ (<span class="symbol"><a name="ref_324_7" href="terminal_interface-curses-text_io__ads.htm#ref_120_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_325_7" href="terminal_interface-curses-text_io__ads.htm#ref_121_7">Item</a></span> : String)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses-text_io__ads.htm#ref_116_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_120_7">Win</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_121_7">Item</A>);
- <A HREF="terminal_interface-curses-text_io__ads.htm#ref_87_14">New_Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_120_7">Win</A>, 1);
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_119_14">Put_Line</A>;
+ <a href="terminal_interface-curses-text_io__ads.htm#ref_116_14">Put</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_120_7">Win</a>, <a href="terminal_interface-curses-text_io__ads.htm#ref_121_7">Item</a>);
+ <a href="terminal_interface-curses-text_io__ads.htm#ref_87_14">New_Line</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_120_7">Win</a>, 1);
+ <b>end</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_119_14">Put_Line</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_332_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_123_14">Put_Line</A></span>
- (<span class="symbol"><A NAME="ref_333_7" HREF="terminal_interface-curses-text_io__ads.htm#ref_124_7">Item</A></span> : String)
+ <b>procedure</b> <span class="symbol"><a name="ref_332_14" href="terminal_interface-curses-text_io__ads.htm#ref_123_14">Put_Line</a></span>
+ (<span class="symbol"><a name="ref_333_7" href="terminal_interface-curses-text_io__ads.htm#ref_124_7">Item</a></span> : String)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses-text_io__ads.htm#ref_119_14">Put_Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_63_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_124_7">Item</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_123_14">Put_Line</A>;
+ <a href="terminal_interface-curses-text_io__ads.htm#ref_119_14">Put_Line</a> (<a href="terminal_interface-curses-text_io__ads.htm#ref_63_13">Get_Window</a>, <a href="terminal_interface-curses-text_io__ads.htm#ref_124_7">Item</a>);
+ <b>end</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_123_14">Put_Line</a>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-text_io__ads.htm b/doc/html/ada/terminal_interface-curses-text_io__ads.htm
index 03ee64b71f6f..580dd824870b 100644
--- a/doc/html/ada/terminal_interface-curses-text_io__ads.htm
+++ b/doc/html/ada/terminal_interface-curses-text_io__ads.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-text_io.ads</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-text_io.ads</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,145 +11,145 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io.ads </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- S P E C --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.15 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-text_io.ads </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Text_IO --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- S P E C --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2003,2009 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.15 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
<b>with</b> Ada.Text_IO;
<b>with</b> Ada.IO_Exceptions;
-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<span class="symbol"><A NAME="ref_45_35" HREF="terminal_interface-curses-text_io__adb.htm#ref_43_40">Text_IO</A></span> <b>is</b>
+<b>package</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<span class="symbol"><a name="ref_45_35" href="terminal_interface-curses-text_io__adb.htm#ref_43_40">Text_IO</a></span> <b>is</b>
<b>use</b> <b>type</b> Ada.Text_IO.Count;
- <b>subtype</b> <span class="symbol"><A NAME="ref_48_12">Count</A></span> <b>is</b> Ada.Text_IO.Count;
- <b>subtype</b> <span class="symbol"><A NAME="ref_49_12">Positive_Count</A></span> <b>is</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Count</A> <b>range</b> 1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Count</A>'Last;
+ <b>subtype</b> <span class="symbol"><a name="ref_48_12">Count</a></span> <b>is</b> Ada.Text_IO.Count;
+ <b>subtype</b> <span class="symbol"><a name="ref_49_12">Positive_Count</a></span> <b>is</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_48_12">Count</a> <b>range</b> 1 .. <a href="terminal_interface-curses-text_io__ads.htm#ref_48_12">Count</a>'Last;
- <b>subtype</b> <span class="symbol"><A NAME="ref_51_12">Field</A></span> <b>is</b> Ada.Text_IO.Field;
- <b>subtype</b> <span class="symbol"><A NAME="ref_52_12">Number_Base</A></span> <b>is</b> Integer <b>range</b> 2 .. 16;
+ <b>subtype</b> <span class="symbol"><a name="ref_51_12">Field</a></span> <b>is</b> Ada.Text_IO.Field;
+ <b>subtype</b> <span class="symbol"><a name="ref_52_12">Number_Base</a></span> <b>is</b> Integer <b>range</b> 2 .. 16;
- <b>type</b> <span class="symbol"><A NAME="ref_54_9">Type_Set</A></span> <b>is</b> (<span class="symbol"><A NAME="ref_54_22">Lower_Case</A></span>, <span class="symbol"><A NAME="ref_54_34">Upper_Case</A></span>, <span class="symbol"><A NAME="ref_54_46">Mixed_Case</A></span>);
+ <b>type</b> <span class="symbol"><a name="ref_54_9">Type_Set</a></span> <b>is</b> (<span class="symbol"><a name="ref_54_22">Lower_Case</a></span>, <span class="symbol"><a name="ref_54_34">Upper_Case</a></span>, <span class="symbol"><a name="ref_54_46">Mixed_Case</a></span>);
- <span class="comment"><EM>-- For most of the routines you will see a version without a Window</EM></span>
- <span class="comment"><EM>-- type parameter. They will operate on a default window, which can</EM></span>
- <span class="comment"><EM>-- be set by the user. It is initially equal to Standard_Window.</EM></span>
+ <span class="comment"><em>-- For most of the routines you will see a version without a Window</em></span>
+ <span class="comment"><em>-- type parameter. They will operate on a default window, which can</em></span>
+ <span class="comment"><em>-- be set by the user. It is initially equal to Standard_Window.</em></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_60_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_47_14">Set_Window</A></span> (<span class="symbol"><A NAME="ref_60_26" HREF="terminal_interface-curses-text_io__adb.htm#ref_47_26">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>);
- <span class="comment"><EM>-- Set Win as the default window</EM></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_60_14" href="terminal_interface-curses-text_io__adb.htm#ref_47_14">Set_Window</a></span> (<span class="symbol"><a name="ref_60_26" href="terminal_interface-curses-text_io__adb.htm#ref_47_26">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>);
+ <span class="comment"><em>-- Set Win as the default window</em></span>
- <b>function</b> <span class="symbol"><A NAME="ref_63_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_53_13">Get_Window</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="comment"><EM>-- Get the current default window</EM></span>
+ <b>function</b> <span class="symbol"><a name="ref_63_13" href="terminal_interface-curses-text_io__adb.htm#ref_53_13">Get_Window</a></span> <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="comment"><em>-- Get the current default window</em></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_66_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_64_14">Flush</A></span> (<span class="symbol"><A NAME="ref_66_21" HREF="terminal_interface-curses-text_io__adb.htm#ref_64_21">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>);
- <b>procedure</b> <span class="symbol"><A NAME="ref_67_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_70_14">Flush</A></span>;
+ <b>procedure</b> <span class="symbol"><a name="ref_66_14" href="terminal_interface-curses-text_io__adb.htm#ref_64_14">Flush</a></span> (<span class="symbol"><a name="ref_66_21" href="terminal_interface-curses-text_io__adb.htm#ref_64_21">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>);
+ <b>procedure</b> <span class="symbol"><a name="ref_67_14" href="terminal_interface-curses-text_io__adb.htm#ref_70_14">Flush</a></span>;
- <span class="comment"><EM>--------------------------------------------</EM></span>
- <span class="comment"><EM>-- Specification of line and page lengths --</EM></span>
- <span class="comment"><EM>--------------------------------------------</EM></span>
+ <span class="comment"><em>--------------------------------------------</em></span>
+ <span class="comment"><em>-- Specification of line and page lengths --</em></span>
+ <span class="comment"><em>--------------------------------------------</em></span>
- <span class="comment"><EM>-- There are no set routines in this package. I assume, that you allocate</EM></span>
- <span class="comment"><EM>-- the window with an appropriate size.</EM></span>
- <span class="comment"><EM>-- A scroll-window is interpreted as an page with unbounded page length,</EM></span>
- <span class="comment"><EM>-- i.e. it returns the conventional 0 as page length.</EM></span>
+ <span class="comment"><em>-- There are no set routines in this package. I assume, that you allocate</em></span>
+ <span class="comment"><em>-- the window with an appropriate size.</em></span>
+ <span class="comment"><em>-- A scroll-window is interpreted as an page with unbounded page length,</em></span>
+ <span class="comment"><em>-- i.e. it returns the conventional 0 as page length.</em></span>
- <b>function</b> <span class="symbol"><A NAME="ref_78_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_85_13">Line_Length</A></span> (<span class="symbol"><A NAME="ref_78_26" HREF="terminal_interface-curses-text_io__adb.htm#ref_85_26">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Count</A>;
- <b>function</b> <span class="symbol"><A NAME="ref_79_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_97_13">Line_Length</A></span> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Count</A>;
+ <b>function</b> <span class="symbol"><a name="ref_78_13" href="terminal_interface-curses-text_io__adb.htm#ref_85_13">Line_Length</a></span> (<span class="symbol"><a name="ref_78_26" href="terminal_interface-curses-text_io__adb.htm#ref_85_26">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>) <b>return</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_48_12">Count</a>;
+ <b>function</b> <span class="symbol"><a name="ref_79_13" href="terminal_interface-curses-text_io__adb.htm#ref_97_13">Line_Length</a></span> <b>return</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_48_12">Count</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_81_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_103_13">Page_Length</A></span> (<span class="symbol"><A NAME="ref_81_26" HREF="terminal_interface-curses-text_io__adb.htm#ref_103_26">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Count</A>;
- <b>function</b> <span class="symbol"><A NAME="ref_82_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_119_13">Page_Length</A></span> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Count</A>;
+ <b>function</b> <span class="symbol"><a name="ref_81_13" href="terminal_interface-curses-text_io__adb.htm#ref_103_13">Page_Length</a></span> (<span class="symbol"><a name="ref_81_26" href="terminal_interface-curses-text_io__adb.htm#ref_103_26">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>) <b>return</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_48_12">Count</a>;
+ <b>function</b> <span class="symbol"><a name="ref_82_13" href="terminal_interface-curses-text_io__adb.htm#ref_119_13">Page_Length</a></span> <b>return</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_48_12">Count</a>;
- <span class="comment"><EM>------------------------------------</EM></span>
- <span class="comment"><EM>-- Column, Line, and Page Control --</EM></span>
- <span class="comment"><EM>------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_87_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_128_14">New_Line</A></span> (<span class="symbol"><A NAME="ref_87_24" HREF="terminal_interface-curses-text_io__adb.htm#ref_128_24">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>; <span class="symbol"><A NAME="ref_87_38" HREF="terminal_interface-curses-text_io__adb.htm#ref_128_38">Spacing</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_49_12">Positive_Count</A> := 1);
- <b>procedure</b> <span class="symbol"><A NAME="ref_88_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_145_14">New_Line</A></span> (<span class="symbol"><A NAME="ref_88_24" HREF="terminal_interface-curses-text_io__adb.htm#ref_145_24">Spacing</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_49_12">Positive_Count</A> := 1);
+ <span class="comment"><em>------------------------------------</em></span>
+ <span class="comment"><em>-- Column, Line, and Page Control --</em></span>
+ <span class="comment"><em>------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_87_14" href="terminal_interface-curses-text_io__adb.htm#ref_128_14">New_Line</a></span> (<span class="symbol"><a name="ref_87_24" href="terminal_interface-curses-text_io__adb.htm#ref_128_24">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>; <span class="symbol"><a name="ref_87_38" href="terminal_interface-curses-text_io__adb.htm#ref_128_38">Spacing</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_49_12">Positive_Count</a> := 1);
+ <b>procedure</b> <span class="symbol"><a name="ref_88_14" href="terminal_interface-curses-text_io__adb.htm#ref_145_14">New_Line</a></span> (<span class="symbol"><a name="ref_88_24" href="terminal_interface-curses-text_io__adb.htm#ref_145_24">Spacing</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_49_12">Positive_Count</a> := 1);
- <b>procedure</b> <span class="symbol"><A NAME="ref_90_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_151_14">New_Page</A></span> (<span class="symbol"><A NAME="ref_90_24" HREF="terminal_interface-curses-text_io__adb.htm#ref_151_24">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>);
- <b>procedure</b> <span class="symbol"><A NAME="ref_91_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_157_14">New_Page</A></span>;
+ <b>procedure</b> <span class="symbol"><a name="ref_90_14" href="terminal_interface-curses-text_io__adb.htm#ref_151_14">New_Page</a></span> (<span class="symbol"><a name="ref_90_24" href="terminal_interface-curses-text_io__adb.htm#ref_151_24">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>);
+ <b>procedure</b> <span class="symbol"><a name="ref_91_14" href="terminal_interface-curses-text_io__adb.htm#ref_157_14">New_Page</a></span>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_93_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_163_14">Set_Col</A></span> (<span class="symbol"><A NAME="ref_93_23" HREF="terminal_interface-curses-text_io__adb.htm#ref_163_23">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>; <span class="symbol"><A NAME="ref_93_38" HREF="terminal_interface-curses-text_io__adb.htm#ref_163_38">To</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_49_12">Positive_Count</A>);
- <b>procedure</b> <span class="symbol"><A NAME="ref_94_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_191_14">Set_Col</A></span> (<span class="symbol"><A NAME="ref_94_23" HREF="terminal_interface-curses-text_io__adb.htm#ref_191_23">To</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_49_12">Positive_Count</A>);
+ <b>procedure</b> <span class="symbol"><a name="ref_93_14" href="terminal_interface-curses-text_io__adb.htm#ref_163_14">Set_Col</a></span> (<span class="symbol"><a name="ref_93_23" href="terminal_interface-curses-text_io__adb.htm#ref_163_23">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>; <span class="symbol"><a name="ref_93_38" href="terminal_interface-curses-text_io__adb.htm#ref_163_38">To</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_49_12">Positive_Count</a>);
+ <b>procedure</b> <span class="symbol"><a name="ref_94_14" href="terminal_interface-curses-text_io__adb.htm#ref_191_14">Set_Col</a></span> (<span class="symbol"><a name="ref_94_23" href="terminal_interface-curses-text_io__adb.htm#ref_191_23">To</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_49_12">Positive_Count</a>);
- <b>procedure</b> <span class="symbol"><A NAME="ref_96_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_197_14">Set_Line</A></span> (<span class="symbol"><A NAME="ref_96_24" HREF="terminal_interface-curses-text_io__adb.htm#ref_197_24">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>; <span class="symbol"><A NAME="ref_96_38" HREF="terminal_interface-curses-text_io__adb.htm#ref_197_38">To</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_49_12">Positive_Count</A>);
- <b>procedure</b> <span class="symbol"><A NAME="ref_97_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_221_14">Set_Line</A></span> (<span class="symbol"><A NAME="ref_97_24" HREF="terminal_interface-curses-text_io__adb.htm#ref_221_24">To</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_49_12">Positive_Count</A>);
+ <b>procedure</b> <span class="symbol"><a name="ref_96_14" href="terminal_interface-curses-text_io__adb.htm#ref_197_14">Set_Line</a></span> (<span class="symbol"><a name="ref_96_24" href="terminal_interface-curses-text_io__adb.htm#ref_197_24">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>; <span class="symbol"><a name="ref_96_38" href="terminal_interface-curses-text_io__adb.htm#ref_197_38">To</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_49_12">Positive_Count</a>);
+ <b>procedure</b> <span class="symbol"><a name="ref_97_14" href="terminal_interface-curses-text_io__adb.htm#ref_221_14">Set_Line</a></span> (<span class="symbol"><a name="ref_97_24" href="terminal_interface-curses-text_io__adb.htm#ref_221_24">To</a></span> : <a href="terminal_interface-curses-text_io__ads.htm#ref_49_12">Positive_Count</a>);
- <b>function</b> <span class="symbol"><A NAME="ref_99_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_227_13">Col</A></span> (<span class="symbol"><A NAME="ref_99_18" HREF="terminal_interface-curses-text_io__adb.htm#ref_227_18">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_49_12">Positive_Count</A>;
- <b>function</b> <span class="symbol"><A NAME="ref_100_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_241_13">Col</A></span> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_49_12">Positive_Count</A>;
+ <b>function</b> <span class="symbol"><a name="ref_99_13" href="terminal_interface-curses-text_io__adb.htm#ref_227_13">Col</a></span> (<span class="symbol"><a name="ref_99_18" href="terminal_interface-curses-text_io__adb.htm#ref_227_18">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>) <b>return</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_49_12">Positive_Count</a>;
+ <b>function</b> <span class="symbol"><a name="ref_100_13" href="terminal_interface-curses-text_io__adb.htm#ref_241_13">Col</a></span> <b>return</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_49_12">Positive_Count</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_102_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_247_13">Line</A></span> (<span class="symbol"><A NAME="ref_102_19" HREF="terminal_interface-curses-text_io__adb.htm#ref_247_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_49_12">Positive_Count</A>;
- <b>function</b> <span class="symbol"><A NAME="ref_103_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_261_13">Line</A></span> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_49_12">Positive_Count</A>;
+ <b>function</b> <span class="symbol"><a name="ref_102_13" href="terminal_interface-curses-text_io__adb.htm#ref_247_13">Line</a></span> (<span class="symbol"><a name="ref_102_19" href="terminal_interface-curses-text_io__adb.htm#ref_247_19">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>) <b>return</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_49_12">Positive_Count</a>;
+ <b>function</b> <span class="symbol"><a name="ref_103_13" href="terminal_interface-curses-text_io__adb.htm#ref_261_13">Line</a></span> <b>return</b> <a href="terminal_interface-curses-text_io__ads.htm#ref_49_12">Positive_Count</a>;
- <span class="comment"><EM>-----------------------</EM></span>
- <span class="comment"><EM>-- Characters-Output --</EM></span>
- <span class="comment"><EM>-----------------------</EM></span>
+ <span class="comment"><em>-----------------------</em></span>
+ <span class="comment"><em>-- Characters-Output --</em></span>
+ <span class="comment"><em>-----------------------</em></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_109_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_271_14">Put</A></span> (<span class="symbol"><A NAME="ref_109_19" HREF="terminal_interface-curses-text_io__adb.htm#ref_271_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>; <span class="symbol"><A NAME="ref_109_34" HREF="terminal_interface-curses-text_io__adb.htm#ref_271_34">Item</A></span> : Character);
- <b>procedure</b> <span class="symbol"><A NAME="ref_110_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_289_14">Put</A></span> (<span class="symbol"><A NAME="ref_110_19" HREF="terminal_interface-curses-text_io__adb.htm#ref_289_19">Item</A></span> : Character);
+ <b>procedure</b> <span class="symbol"><a name="ref_109_14" href="terminal_interface-curses-text_io__adb.htm#ref_271_14">Put</a></span> (<span class="symbol"><a name="ref_109_19" href="terminal_interface-curses-text_io__adb.htm#ref_271_19">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>; <span class="symbol"><a name="ref_109_34" href="terminal_interface-curses-text_io__adb.htm#ref_271_34">Item</a></span> : Character);
+ <b>procedure</b> <span class="symbol"><a name="ref_110_14" href="terminal_interface-curses-text_io__adb.htm#ref_289_14">Put</a></span> (<span class="symbol"><a name="ref_110_19" href="terminal_interface-curses-text_io__adb.htm#ref_289_19">Item</a></span> : Character);
- <span class="comment"><EM>--------------------</EM></span>
- <span class="comment"><EM>-- Strings-Output --</EM></span>
- <span class="comment"><EM>--------------------</EM></span>
+ <span class="comment"><em>--------------------</em></span>
+ <span class="comment"><em>-- Strings-Output --</em></span>
+ <span class="comment"><em>--------------------</em></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_116_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_299_14">Put</A></span> (<span class="symbol"><A NAME="ref_116_19" HREF="terminal_interface-curses-text_io__adb.htm#ref_299_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>; <span class="symbol"><A NAME="ref_116_34" HREF="terminal_interface-curses-text_io__adb.htm#ref_299_34">Item</A></span> : String);
- <b>procedure</b> <span class="symbol"><A NAME="ref_117_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_317_14">Put</A></span> (<span class="symbol"><A NAME="ref_117_19" HREF="terminal_interface-curses-text_io__adb.htm#ref_317_19">Item</A></span> : String);
+ <b>procedure</b> <span class="symbol"><a name="ref_116_14" href="terminal_interface-curses-text_io__adb.htm#ref_299_14">Put</a></span> (<span class="symbol"><a name="ref_116_19" href="terminal_interface-curses-text_io__adb.htm#ref_299_19">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>; <span class="symbol"><a name="ref_116_34" href="terminal_interface-curses-text_io__adb.htm#ref_299_34">Item</a></span> : String);
+ <b>procedure</b> <span class="symbol"><a name="ref_117_14" href="terminal_interface-curses-text_io__adb.htm#ref_317_14">Put</a></span> (<span class="symbol"><a name="ref_117_19" href="terminal_interface-curses-text_io__adb.htm#ref_317_19">Item</a></span> : String);
- <b>procedure</b> <span class="symbol"><A NAME="ref_119_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_323_14">Put_Line</A></span>
- (<span class="symbol"><A NAME="ref_120_7" HREF="terminal_interface-curses-text_io__adb.htm#ref_324_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_121_7" HREF="terminal_interface-curses-text_io__adb.htm#ref_325_7">Item</A></span> : String);
+ <b>procedure</b> <span class="symbol"><a name="ref_119_14" href="terminal_interface-curses-text_io__adb.htm#ref_323_14">Put_Line</a></span>
+ (<span class="symbol"><a name="ref_120_7" href="terminal_interface-curses-text_io__adb.htm#ref_324_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_121_7" href="terminal_interface-curses-text_io__adb.htm#ref_325_7">Item</a></span> : String);
- <b>procedure</b> <span class="symbol"><A NAME="ref_123_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_332_14">Put_Line</A></span>
- (<span class="symbol"><A NAME="ref_124_7" HREF="terminal_interface-curses-text_io__adb.htm#ref_333_7">Item</A></span> : String);
+ <b>procedure</b> <span class="symbol"><a name="ref_123_14" href="terminal_interface-curses-text_io__adb.htm#ref_332_14">Put_Line</a></span>
+ (<span class="symbol"><a name="ref_124_7" href="terminal_interface-curses-text_io__adb.htm#ref_333_7">Item</a></span> : String);
- <span class="comment"><EM>-- Exceptions</EM></span>
+ <span class="comment"><em>-- Exceptions</em></span>
- <span class="symbol"><A NAME="ref_128_4">Status_Error</A></span> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Status_Error;
- <span class="symbol"><A NAME="ref_129_4">Mode_Error</A></span> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Mode_Error;
- <span class="symbol"><A NAME="ref_130_4">Name_Error</A></span> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Name_Error;
- <span class="symbol"><A NAME="ref_131_4">Use_Error</A></span> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Use_Error;
- <span class="symbol"><A NAME="ref_132_4">Device_Error</A></span> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Device_Error;
- <span class="symbol"><A NAME="ref_133_4">End_Error</A></span> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.End_Error;
- <span class="symbol"><A NAME="ref_134_4">Data_Error</A></span> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Data_Error;
- <span class="symbol"><A NAME="ref_135_4">Layout_Error</A></span> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Layout_Error;
+ <span class="symbol"><a name="ref_128_4">Status_Error</a></span> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Status_Error;
+ <span class="symbol"><a name="ref_129_4">Mode_Error</a></span> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Mode_Error;
+ <span class="symbol"><a name="ref_130_4">Name_Error</a></span> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Name_Error;
+ <span class="symbol"><a name="ref_131_4">Use_Error</a></span> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Use_Error;
+ <span class="symbol"><a name="ref_132_4">Device_Error</a></span> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Device_Error;
+ <span class="symbol"><a name="ref_133_4">End_Error</a></span> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.End_Error;
+ <span class="symbol"><a name="ref_134_4">Data_Error</a></span> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Data_Error;
+ <span class="symbol"><a name="ref_135_4">Layout_Error</a></span> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Layout_Error;
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-text_io__ads.htm#ref_45_35">Text_IO</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-trace__adb.htm b/doc/html/ada/terminal_interface-curses-trace__adb.htm
index a5952109fafb..05455ee87007 100644
--- a/doc/html/ada/terminal_interface-curses-trace__adb.htm
+++ b/doc/html/ada/terminal_interface-curses-trace__adb.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-trace.adb</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-trace.adb</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,69 +11,69 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-trace.adb </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Trace --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- B O D Y --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 2001-2011,2014 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.12 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-trace.adb </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Trace --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- B O D Y --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 2001-2011,2014 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.12 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<b>with</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C; <b>use</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<span class="symbol"><A NAME="ref_44_40" HREF="terminal_interface-curses-trace__ads.htm#ref_43_35">Trace</A></span> <b>is</b>
+<b>package</b> <b>body</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<span class="symbol"><a name="ref_44_40" href="terminal_interface-curses-trace__ads.htm#ref_43_35">Trace</a></span> <b>is</b>
- <b>procedure</b> <span class="symbol"><A NAME="ref_46_14" HREF="terminal_interface-curses-trace__ads.htm#ref_115_14">Trace_On</A></span> (<span class="symbol"><A NAME="ref_46_24" HREF="terminal_interface-curses-trace__ads.htm#ref_115_24">x</A></span> : <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A>) <b>is</b>
- <b>procedure</b> <span class="symbol"><A NAME="ref_47_17">traceC</A></span> (<span class="symbol"><A NAME="ref_47_25" HREF="terminal_interface-curses-trace__adb.htm#ref_47_17">y</A></span> : <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A>);
+ <b>procedure</b> <span class="symbol"><a name="ref_46_14" href="terminal_interface-curses-trace__ads.htm#ref_115_14">Trace_On</a></span> (<span class="symbol"><a name="ref_46_24" href="terminal_interface-curses-trace__ads.htm#ref_115_24">x</a></span> : <a href="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</a>) <b>is</b>
+ <b>procedure</b> <span class="symbol"><a name="ref_47_17">traceC</a></span> (<span class="symbol"><a name="ref_47_25">y</a></span> : <a href="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</a>);
<b>pragma</b> Import (C, traceC, "trace");
<b>begin</b>
- <A HREF="terminal_interface-curses-trace__adb.htm#ref_47_17">traceC</A> (<A HREF="terminal_interface-curses-trace__ads.htm#ref_115_24">x</A>);
- <b>end</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_115_14">Trace_On</A>;
+ <a href="terminal_interface-curses-trace__adb.htm#ref_47_17">traceC</a> (<a href="terminal_interface-curses-trace__ads.htm#ref_115_24">x</a>);
+ <b>end</b> <a href="terminal_interface-curses-trace__ads.htm#ref_115_14">Trace_On</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_53_14" HREF="terminal_interface-curses-trace__ads.htm#ref_119_14">Trace_Put</A></span> (<span class="symbol"><A NAME="ref_53_25" HREF="terminal_interface-curses-trace__ads.htm#ref_119_25">str</A></span> : String) <b>is</b>
- <b>procedure</b> <span class="symbol"><A NAME="ref_54_17">tracef</A></span> (<span class="symbol"><A NAME="ref_54_25" HREF="terminal_interface-curses-trace__adb.htm#ref_54_17">format</A></span> : char_array; <span class="symbol"><A NAME="ref_54_46" HREF="terminal_interface-curses-trace__adb.htm#ref_54_17">s</A></span> : char_array);
+ <b>procedure</b> <span class="symbol"><a name="ref_53_14" href="terminal_interface-curses-trace__ads.htm#ref_119_14">Trace_Put</a></span> (<span class="symbol"><a name="ref_53_25" href="terminal_interface-curses-trace__ads.htm#ref_119_25">str</a></span> : String) <b>is</b>
+ <b>procedure</b> <span class="symbol"><a name="ref_54_17">tracef</a></span> (<span class="symbol"><a name="ref_54_25">format</a></span> : char_array; <span class="symbol"><a name="ref_54_46">s</a></span> : char_array);
<b>pragma</b> Import (C, tracef, "_traces");
- <span class="comment"><EM>-- _traces() is defined in c_varargs_to_ada.h</EM></span>
+ <span class="comment"><em>-- _traces() is defined in c_varargs_to_ada.h</em></span>
<b>begin</b>
- <A HREF="terminal_interface-curses-trace__adb.htm#ref_54_17">tracef</A> (To_C ("%s"), To_C (<A HREF="terminal_interface-curses-trace__ads.htm#ref_119_25">str</A>));
- <b>end</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_119_14">Trace_Put</A>;
+ <a href="terminal_interface-curses-trace__adb.htm#ref_54_17">tracef</a> (To_C ("%s"), To_C (<a href="terminal_interface-curses-trace__ads.htm#ref_119_25">str</a>));
+ <b>end</b> <a href="terminal_interface-curses-trace__ads.htm#ref_119_14">Trace_Put</a>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-trace__ads.htm#ref_43_35">Trace</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-trace__ads.htm#ref_43_35">Trace</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses-trace__ads.htm b/doc/html/ada/terminal_interface-curses-trace__ads.htm
index 136c93fc91af..43695163207f 100644
--- a/doc/html/ada/terminal_interface-curses-trace__ads.htm
+++ b/doc/html/ada/terminal_interface-curses-trace__ads.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses-trace.ads</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses-trace.ads</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,133 +11,133 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-trace.ads </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses.Trace --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- S P E C --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 2000,2014 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Eugene V. Melaragno &lt;aldomel@ix.netcom.com&gt; 2000</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.5 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses-trace.ads </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses.Trace --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- S P E C --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 2000,2014 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Eugene V. Melaragno &lt;aldomel@ix.netcom.com&gt; 2000</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.5 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<span class="symbol"><A NAME="ref_43_35" HREF="terminal_interface-curses-trace__adb.htm#ref_44_40">Trace</A></span> <b>is</b>
- <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-trace__ads.htm#ref_43_35">Trace</A>);
+<b>package</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<span class="symbol"><a name="ref_43_35" href="terminal_interface-curses-trace__adb.htm#ref_44_40">Trace</a></span> <b>is</b>
+ <b>pragma</b> Preelaborate (<a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-trace__ads.htm#ref_43_35">Trace</a>);
- <b>type</b> <span class="symbol"><A NAME="ref_46_9">Trace_Attribute_Set</A></span> <b>is</b>
+ <b>type</b> <span class="symbol"><a name="ref_46_9">Trace_Attribute_Set</a></span> <b>is</b>
<b>record</b>
- <span class="symbol"><A NAME="ref_48_10">Times</A></span> : Boolean;
- <span class="symbol"><A NAME="ref_49_10">Tputs</A></span> : Boolean;
- <span class="symbol"><A NAME="ref_50_10">Update</A></span> : Boolean;
- <span class="symbol"><A NAME="ref_51_10">Cursor_Move</A></span> : Boolean;
- <span class="symbol"><A NAME="ref_52_10">Character_Output</A></span> : Boolean;
- <span class="symbol"><A NAME="ref_53_10">Calls</A></span> : Boolean;
- <span class="symbol"><A NAME="ref_54_10">Virtual_Puts</A></span> : Boolean;
- <span class="symbol"><A NAME="ref_55_10">Input_Events</A></span> : Boolean;
- <span class="symbol"><A NAME="ref_56_10">TTY_State</A></span> : Boolean;
- <span class="symbol"><A NAME="ref_57_10">Internal_Calls</A></span> : Boolean;
- <span class="symbol"><A NAME="ref_58_10">Character_Calls</A></span> : Boolean;
- <span class="symbol"><A NAME="ref_59_10">Termcap_TermInfo</A></span> : Boolean;
- <span class="symbol"><A NAME="ref_60_10">Attribute_Color</A></span> : Boolean;
+ <span class="symbol"><a name="ref_48_10">Times</a></span> : Boolean;
+ <span class="symbol"><a name="ref_49_10">Tputs</a></span> : Boolean;
+ <span class="symbol"><a name="ref_50_10">Update</a></span> : Boolean;
+ <span class="symbol"><a name="ref_51_10">Cursor_Move</a></span> : Boolean;
+ <span class="symbol"><a name="ref_52_10">Character_Output</a></span> : Boolean;
+ <span class="symbol"><a name="ref_53_10">Calls</a></span> : Boolean;
+ <span class="symbol"><a name="ref_54_10">Virtual_Puts</a></span> : Boolean;
+ <span class="symbol"><a name="ref_55_10">Input_Events</a></span> : Boolean;
+ <span class="symbol"><a name="ref_56_10">TTY_State</a></span> : Boolean;
+ <span class="symbol"><a name="ref_57_10">Internal_Calls</a></span> : Boolean;
+ <span class="symbol"><a name="ref_58_10">Character_Calls</a></span> : Boolean;
+ <span class="symbol"><a name="ref_59_10">Termcap_TermInfo</a></span> : Boolean;
+ <span class="symbol"><a name="ref_60_10">Attribute_Color</a></span> : Boolean;
<b>end</b> <b>record</b>;
- <b>pragma</b> Convention (C_Pass_By_Copy, <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A>);
+ <b>pragma</b> Convention (C_Pass_By_Copy, <a href="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</a>);
- <b>for</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A> <b>use</b>
+ <b>for</b> <a href="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</a> <b>use</b>
<b>record</b>
- <A HREF="terminal_interface-curses-trace__ads.htm#ref_48_10">Times</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_356_4">TRACE_TIMES_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_357_4">TRACE_TIMES_Last</A>;
- <A HREF="terminal_interface-curses-trace__ads.htm#ref_49_10">Tputs</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_358_4">TRACE_TPUTS_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_359_4">TRACE_TPUTS_Last</A>;
- <A HREF="terminal_interface-curses-trace__ads.htm#ref_50_10">Update</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_360_4">TRACE_UPDATE_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_361_4">TRACE_UPDATE_Last</A>;
- <A HREF="terminal_interface-curses-trace__ads.htm#ref_51_10">Cursor_Move</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_362_4">TRACE_MOVE_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_363_4">TRACE_MOVE_Last</A>;
- <A HREF="terminal_interface-curses-trace__ads.htm#ref_52_10">Character_Output</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_364_4">TRACE_CHARPUT_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_365_4">TRACE_CHARPUT_Last</A>;
- <A HREF="terminal_interface-curses-trace__ads.htm#ref_53_10">Calls</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_366_4">TRACE_CALLS_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_367_4">TRACE_CALLS_Last</A>;
- <A HREF="terminal_interface-curses-trace__ads.htm#ref_54_10">Virtual_Puts</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_368_4">TRACE_VIRTPUT_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_369_4">TRACE_VIRTPUT_Last</A>;
- <A HREF="terminal_interface-curses-trace__ads.htm#ref_55_10">Input_Events</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_370_4">TRACE_IEVENT_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_371_4">TRACE_IEVENT_Last</A>;
- <A HREF="terminal_interface-curses-trace__ads.htm#ref_56_10">TTY_State</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_372_4">TRACE_BITS_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_373_4">TRACE_BITS_Last</A>;
- <A HREF="terminal_interface-curses-trace__ads.htm#ref_57_10">Internal_Calls</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_374_4">TRACE_ICALLS_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_375_4">TRACE_ICALLS_Last</A>;
- <A HREF="terminal_interface-curses-trace__ads.htm#ref_58_10">Character_Calls</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_376_4">TRACE_CCALLS_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_377_4">TRACE_CCALLS_Last</A>;
- <A HREF="terminal_interface-curses-trace__ads.htm#ref_59_10">Termcap_TermInfo</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_378_4">TRACE_DATABASE_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_379_4">TRACE_DATABASE_Last</A>;
- <A HREF="terminal_interface-curses-trace__ads.htm#ref_60_10">Attribute_Color</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_380_4">TRACE_ATTRS_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_381_4">TRACE_ATTRS_Last</A>;
+ <a href="terminal_interface-curses-trace__ads.htm#ref_48_10">Times</a> <b>at</b> 0 <b>range</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_356_4">TRACE_TIMES_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_357_4">TRACE_TIMES_Last</a>;
+ <a href="terminal_interface-curses-trace__ads.htm#ref_49_10">Tputs</a> <b>at</b> 0 <b>range</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_358_4">TRACE_TPUTS_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_359_4">TRACE_TPUTS_Last</a>;
+ <a href="terminal_interface-curses-trace__ads.htm#ref_50_10">Update</a> <b>at</b> 0 <b>range</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_360_4">TRACE_UPDATE_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_361_4">TRACE_UPDATE_Last</a>;
+ <a href="terminal_interface-curses-trace__ads.htm#ref_51_10">Cursor_Move</a> <b>at</b> 0 <b>range</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_362_4">TRACE_MOVE_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_363_4">TRACE_MOVE_Last</a>;
+ <a href="terminal_interface-curses-trace__ads.htm#ref_52_10">Character_Output</a> <b>at</b> 0 <b>range</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_364_4">TRACE_CHARPUT_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_365_4">TRACE_CHARPUT_Last</a>;
+ <a href="terminal_interface-curses-trace__ads.htm#ref_53_10">Calls</a> <b>at</b> 0 <b>range</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_366_4">TRACE_CALLS_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_367_4">TRACE_CALLS_Last</a>;
+ <a href="terminal_interface-curses-trace__ads.htm#ref_54_10">Virtual_Puts</a> <b>at</b> 0 <b>range</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_368_4">TRACE_VIRTPUT_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_369_4">TRACE_VIRTPUT_Last</a>;
+ <a href="terminal_interface-curses-trace__ads.htm#ref_55_10">Input_Events</a> <b>at</b> 0 <b>range</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_370_4">TRACE_IEVENT_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_371_4">TRACE_IEVENT_Last</a>;
+ <a href="terminal_interface-curses-trace__ads.htm#ref_56_10">TTY_State</a> <b>at</b> 0 <b>range</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_372_4">TRACE_BITS_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_373_4">TRACE_BITS_Last</a>;
+ <a href="terminal_interface-curses-trace__ads.htm#ref_57_10">Internal_Calls</a> <b>at</b> 0 <b>range</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_374_4">TRACE_ICALLS_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_375_4">TRACE_ICALLS_Last</a>;
+ <a href="terminal_interface-curses-trace__ads.htm#ref_58_10">Character_Calls</a> <b>at</b> 0 <b>range</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_376_4">TRACE_CCALLS_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_377_4">TRACE_CCALLS_Last</a>;
+ <a href="terminal_interface-curses-trace__ads.htm#ref_59_10">Termcap_TermInfo</a> <b>at</b> 0 <b>range</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_378_4">TRACE_DATABASE_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_379_4">TRACE_DATABASE_Last</a>;
+ <a href="terminal_interface-curses-trace__ads.htm#ref_60_10">Attribute_Color</a> <b>at</b> 0 <b>range</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_380_4">TRACE_ATTRS_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_381_4">TRACE_ATTRS_Last</a>;
<b>end</b> <b>record</b>;
<b>pragma</b> Warnings (Off);
- <b>for</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A>'Size <b>use</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_382_4">Trace_Size</A>;
+ <b>for</b> <a href="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</a>'Size <b>use</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_382_4">Trace_Size</a>;
<b>pragma</b> Warnings (On);
- <span class="symbol"><A NAME="ref_97_4">Trace_Disable</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A> := (<b>others</b> =&gt; False);
+ <span class="symbol"><a name="ref_97_4">Trace_Disable</a></span> : <b>constant</b> <a href="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</a> := (<b>others</b> =&gt; False);
- <span class="symbol"><A NAME="ref_99_4">Trace_Ordinary</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A> :=
- (<A HREF="terminal_interface-curses-trace__ads.htm#ref_48_10">Times</A> =&gt; True,
- <A HREF="terminal_interface-curses-trace__ads.htm#ref_49_10">Tputs</A> =&gt; True,
- <A HREF="terminal_interface-curses-trace__ads.htm#ref_50_10">Update</A> =&gt; True,
- <A HREF="terminal_interface-curses-trace__ads.htm#ref_51_10">Cursor_Move</A> =&gt; True,
- <A HREF="terminal_interface-curses-trace__ads.htm#ref_52_10">Character_Output</A> =&gt; True,
+ <span class="symbol"><a name="ref_99_4">Trace_Ordinary</a></span> : <b>constant</b> <a href="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</a> :=
+ (<a href="terminal_interface-curses-trace__ads.htm#ref_48_10">Times</a> =&gt; True,
+ <a href="terminal_interface-curses-trace__ads.htm#ref_49_10">Tputs</a> =&gt; True,
+ <a href="terminal_interface-curses-trace__ads.htm#ref_50_10">Update</a> =&gt; True,
+ <a href="terminal_interface-curses-trace__ads.htm#ref_51_10">Cursor_Move</a> =&gt; True,
+ <a href="terminal_interface-curses-trace__ads.htm#ref_52_10">Character_Output</a> =&gt; True,
<b>others</b> =&gt; False);
- <span class="symbol"><A NAME="ref_106_4">Trace_Maximum</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A> := (<b>others</b> =&gt; True);
+ <span class="symbol"><a name="ref_106_4">Trace_Maximum</a></span> : <b>constant</b> <a href="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</a> := (<b>others</b> =&gt; True);
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/curs_trace.3x.html">curs_trace.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/curs_trace.3x.html">curs_trace.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
- <span class="comment"><EM>-- <A NAME="AFU_1">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_115_14" HREF="terminal_interface-curses-trace__adb.htm#ref_46_14">Trace_On</A></span> (<span class="symbol"><A NAME="ref_115_24" HREF="terminal_interface-curses-trace__adb.htm#ref_46_24">x</A></span> : <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A>);
- <span class="comment"><EM>-- The debugging library has trace.</EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_1">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_115_14" href="terminal_interface-curses-trace__adb.htm#ref_46_14">Trace_On</a></span> (<span class="symbol"><a name="ref_115_24" href="terminal_interface-curses-trace__adb.htm#ref_46_24">x</a></span> : <a href="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</a>);
+ <span class="comment"><em>-- The debugging library has trace.</em></span>
- <span class="comment"><EM>-- <A NAME="AFU_2">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_119_14" HREF="terminal_interface-curses-trace__adb.htm#ref_53_14">Trace_Put</A></span> (<span class="symbol"><A NAME="ref_119_25" HREF="terminal_interface-curses-trace__adb.htm#ref_53_25">str</A></span> : String);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_trace.3x.html">_tracef()</A></EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_2">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_119_14" href="terminal_interface-curses-trace__adb.htm#ref_53_14">Trace_Put</a></span> (<span class="symbol"><a name="ref_119_25" href="terminal_interface-curses-trace__adb.htm#ref_53_25">str</a></span> : String);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_trace.3x.html">_tracef()</A></em></span>
- <span class="symbol"><A NAME="ref_122_4">Current_Trace_Setting</A></span> : <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-trace__ads.htm#ref_122_4">Current_Trace_Setting</A>, "_nc_tracing");
+ <span class="symbol"><a name="ref_122_4">Current_Trace_Setting</a></span> : <a href="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</a>;
+ <b>pragma</b> Import (C, <a href="terminal_interface-curses-trace__ads.htm#ref_122_4">Current_Trace_Setting</a>, "_nc_tracing");
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-trace__ads.htm#ref_43_35">Trace</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-trace__ads.htm#ref_43_35">Trace</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses__adb.htm b/doc/html/ada/terminal_interface-curses__adb.htm
index ca1df9162d82..1f5e7c3ed45e 100644
--- a/doc/html/ada/terminal_interface-curses__adb.htm
+++ b/doc/html/ada/terminal_interface-curses__adb.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses.adb</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses.adb</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,2565 +11,2565 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses.adb </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- B O D Y --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2018,2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 2007-2011,2014 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.16 @</EM></span>
-<span class="comment"><EM>-- @Date: 2020/02/02 23:34:34 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses.adb </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- B O D Y --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2018-2020,2024 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 2007-2011,2014 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.17 @</em></span>
+<span class="comment"><em>-- @Date: 2024/03/30 13:24:07 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
<b>with</b> System;
-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>;
-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings;
+<b>with</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>.<a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>;
+<b>with</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C; <b>use</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C;
+<b>with</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.Strings; <b>use</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.Strings;
<b>with</b> Ada.Characters.Handling; <b>use</b> Ada.Characters.Handling;
<b>with</b> Ada.Strings.Fixed;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<span class="symbol"><A NAME="ref_51_33" HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A></span> <b>is</b>
+<b>package</b> <b>body</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<span class="symbol"><a name="ref_51_33" href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a></span> <b>is</b>
- <b>use</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>;
+ <b>use</b> <a href="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</a>;
- <b>package</b> <span class="symbol"><A NAME="ref_55_12">ASF</A></span> <b>renames</b> Ada.Strings.Fixed;
+ <b>package</b> <span class="symbol"><a name="ref_55_12">ASF</a></span> <b>renames</b> Ada.Strings.Fixed;
<b>type</b> chtype_array <b>is</b> <b>array</b> (size_t <b>range</b> &lt;&gt;)
- <b>of</b> <b>aliased</b> <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>;
+ <b>of</b> <b>aliased</b> <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>;
<b>pragma</b> Convention (C, chtype_array);
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_62_13" HREF="terminal_interface-curses__ads.htm#ref_1787_13">Key_Name</A></span> (<span class="symbol"><A NAME="ref_62_23" HREF="terminal_interface-curses__ads.htm#ref_1787_23">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_72_12">Real_Key_Code</A>) <b>return</b> String
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_62_13" href="terminal_interface-curses__ads.htm#ref_1787_13">Key_Name</a></span> (<span class="symbol"><a name="ref_62_23" href="terminal_interface-curses__ads.htm#ref_1787_23">Key</a></span> : <a href="terminal_interface-curses__ads.htm#ref_72_12">Real_Key_Code</a>) <b>return</b> String
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_64_16">Keyname</A></span> (<span class="symbol"><A NAME="ref_64_25" HREF="terminal_interface-curses__adb.htm#ref_64_16">K</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> chars_ptr;
+ <b>function</b> <span class="symbol"><a name="ref_64_16">Keyname</a></span> (<span class="symbol"><a name="ref_64_25">K</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> chars_ptr;
<b>pragma</b> Import (C, Keyname, "keyname");
- <span class="symbol"><A NAME="ref_67_7">Ch</A></span> : Character;
+ <span class="symbol"><a name="ref_67_7">Ch</a></span> : Character;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1787_23">Key</A> &lt;= Character'Pos (Character'Last) <b>then</b>
- <A HREF="terminal_interface-curses__adb.htm#ref_67_7">Ch</A> := Character'Val (<A HREF="terminal_interface-curses__ads.htm#ref_1787_23">Key</A>);
- <b>if</b> Is_Control (<A HREF="terminal_interface-curses__adb.htm#ref_67_7">Ch</A>) <b>then</b>
- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1798_13">Un_Control</A> (<A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>'(<A HREF="terminal_interface-curses__ads.htm#ref_492_10">Ch</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_67_7">Ch</A>,
- <A HREF="terminal_interface-curses__ads.htm#ref_491_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>'First,
- <A HREF="terminal_interface-curses__ads.htm#ref_490_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</A>));
- <b>elsif</b> Is_Graphic (<A HREF="terminal_interface-curses__adb.htm#ref_67_7">Ch</A>) <b>then</b>
+ <b>if</b> <a href="terminal_interface-curses__ads.htm#ref_1787_23">Key</a> &lt;= Character'Pos (Character'Last) <b>then</b>
+ <a href="terminal_interface-curses__adb.htm#ref_67_7">Ch</a> := Character'Val (<a href="terminal_interface-curses__ads.htm#ref_1787_23">Key</a>);
+ <b>if</b> Is_Control (<a href="terminal_interface-curses__adb.htm#ref_67_7">Ch</a>) <b>then</b>
+ <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_1798_13">Un_Control</a> (<a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>'(<a href="terminal_interface-curses__ads.htm#ref_492_10">Ch</a> =&gt; <a href="terminal_interface-curses__adb.htm#ref_67_7">Ch</a>,
+ <a href="terminal_interface-curses__ads.htm#ref_491_10">Color</a> =&gt; <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>'First,
+ <a href="terminal_interface-curses__ads.htm#ref_490_10">Attr</a> =&gt; <a href="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</a>));
+ <b>elsif</b> Is_Graphic (<a href="terminal_interface-curses__adb.htm#ref_67_7">Ch</a>) <b>then</b>
<b>declare</b>
- <span class="symbol"><A NAME="ref_77_16">S</A></span> : String (1 .. 1);
+ <span class="symbol"><a name="ref_77_16">S</a></span> : String (1 .. 1);
<b>begin</b>
- <A HREF="terminal_interface-curses__adb.htm#ref_77_16">S</A> (1) := <A HREF="terminal_interface-curses__adb.htm#ref_67_7">Ch</A>;
- <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_77_16">S</A>;
+ <a href="terminal_interface-curses__adb.htm#ref_77_16">S</a> (1) := <a href="terminal_interface-curses__adb.htm#ref_67_7">Ch</a>;
+ <b>return</b> <a href="terminal_interface-curses__adb.htm#ref_77_16">S</a>;
<b>end</b>;
<b>else</b>
<b>return</b> "";
<b>end</b> <b>if</b>;
<b>else</b>
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_64_16">Keyname</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1787_23">Key</A>)));
+ <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_96_13">Fill_String</a> (<a href="terminal_interface-curses__adb.htm#ref_64_16">Keyname</a> (<a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1787_23">Key</a>)));
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1787_13">Key_Name</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1787_13">Key_Name</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_90_14" HREF="terminal_interface-curses__ads.htm#ref_1781_14">Key_Name</A></span> (<span class="symbol"><A NAME="ref_90_24" HREF="terminal_interface-curses__ads.htm#ref_1781_24">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_72_12">Real_Key_Code</A>;
- <span class="symbol"><A NAME="ref_91_24" HREF="terminal_interface-curses__ads.htm#ref_1782_24">Name</A></span> : <b>out</b> String)
+ <b>procedure</b> <span class="symbol"><a name="ref_90_14" href="terminal_interface-curses__ads.htm#ref_1781_14">Key_Name</a></span> (<span class="symbol"><a name="ref_90_24" href="terminal_interface-curses__ads.htm#ref_1781_24">Key</a></span> : <a href="terminal_interface-curses__ads.htm#ref_72_12">Real_Key_Code</a>;
+ <span class="symbol"><a name="ref_91_24" href="terminal_interface-curses__ads.htm#ref_1782_24">Name</a></span> : <b>out</b> String)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses__adb.htm#ref_55_12">ASF</A>.Move (<A HREF="terminal_interface-curses__ads.htm#ref_1787_13">Key_Name</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1781_24">Key</A>), <A HREF="terminal_interface-curses__ads.htm#ref_1782_24">Name</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1781_14">Key_Name</A>;
+ <a href="terminal_interface-curses__adb.htm#ref_55_12">ASF</a>.Move (<a href="terminal_interface-curses__ads.htm#ref_1787_13">Key_Name</a> (<a href="terminal_interface-curses__ads.htm#ref_1781_24">Key</a>), <a href="terminal_interface-curses__ads.htm#ref_1782_24">Name</a>);
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1781_14">Key_Name</a>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_98_14" HREF="terminal_interface-curses__ads.htm#ref_657_14">Init_Screen</A></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_98_14" href="terminal_interface-curses__ads.htm#ref_657_14">Init_Screen</a></span>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_100_16">Initscr</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
+ <b>function</b> <span class="symbol"><a name="ref_100_16">Initscr</a></span> <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
<b>pragma</b> Import (C, Initscr, "initscr");
- <span class="symbol"><A NAME="ref_103_7">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
+ <span class="symbol"><a name="ref_103_7">W</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
<b>begin</b>
- <A HREF="terminal_interface-curses__adb.htm#ref_103_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_100_16">Initscr</A>;
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_103_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_57_4">Null_Window</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <a href="terminal_interface-curses__adb.htm#ref_103_7">W</a> := <a href="terminal_interface-curses__adb.htm#ref_100_16">Initscr</a>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_103_7">W</a> = <a href="terminal_interface-curses__ads.htm#ref_57_4">Null_Window</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_657_14">Init_Screen</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_657_14">Init_Screen</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_111_14" HREF="terminal_interface-curses__ads.htm#ref_666_14">End_Windows</A></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_111_14" href="terminal_interface-curses__ads.htm#ref_666_14">End_Windows</a></span>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_113_16">Endwin</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_113_16">Endwin</a></span> <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Endwin, "endwin");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_113_16">Endwin</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_113_16">Endwin</a> = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_666_14">End_Windows</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_666_14">End_Windows</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_121_13" HREF="terminal_interface-curses__ads.htm#ref_673_13">Is_End_Window</A></span> <b>return</b> Boolean
+ <b>function</b> <span class="symbol"><a name="ref_121_13" href="terminal_interface-curses__ads.htm#ref_673_13">Is_End_Window</a></span> <b>return</b> Boolean
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_123_16">Isendwin</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A>;
+ <b>function</b> <span class="symbol"><a name="ref_123_16">Isendwin</a></span> <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a>;
<b>pragma</b> Import (C, Isendwin, "isendwin");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_123_16">Isendwin</A> = <A HREF="terminal_interface-curses__ads.htm#ref_2101_4">Curses_Bool_False</A> <b>then</b>
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_123_16">Isendwin</a> = <a href="terminal_interface-curses__ads.htm#ref_2101_4">Curses_Bool_False</a> <b>then</b>
<b>return</b> False;
<b>else</b>
<b>return</b> True;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_673_13">Is_End_Window</A>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_133_14" HREF="terminal_interface-curses__ads.htm#ref_682_14">Move_Cursor</A></span> (<span class="symbol"><A NAME="ref_133_27" HREF="terminal_interface-curses__ads.htm#ref_682_27">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_134_27" HREF="terminal_interface-curses__ads.htm#ref_683_27">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_135_27" HREF="terminal_interface-curses__ads.htm#ref_684_27">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>)
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_673_13">Is_End_Window</a>;
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_133_14" href="terminal_interface-curses__ads.htm#ref_682_14">Move_Cursor</a></span> (<span class="symbol"><a name="ref_133_27" href="terminal_interface-curses__ads.htm#ref_682_27">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_134_27" href="terminal_interface-curses__ads.htm#ref_683_27">Line</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_135_27" href="terminal_interface-curses__ads.htm#ref_684_27">Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_137_16">Wmove</A></span> (<span class="symbol"><A NAME="ref_137_23" HREF="terminal_interface-curses__adb.htm#ref_137_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_138_23" HREF="terminal_interface-curses__adb.htm#ref_137_16">Line</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_139_23" HREF="terminal_interface-curses__adb.htm#ref_137_16">Column</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>
- ) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_137_16">Wmove</a></span> (<span class="symbol"><a name="ref_137_23">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_138_23">Line</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_139_23">Column</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>
+ ) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Wmove, "wmove");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_137_16">Wmove</A> (<A HREF="terminal_interface-curses__ads.htm#ref_682_27">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_683_27">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_684_27">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_137_16">Wmove</a> (<a href="terminal_interface-curses__ads.htm#ref_682_27">Win</a>, <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_683_27">Line</a>), <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_684_27">Column</a>)) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_682_14">Move_Cursor</A>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_148_14" HREF="terminal_interface-curses__ads.htm#ref_694_14">Add</A></span> (<span class="symbol"><A NAME="ref_148_19" HREF="terminal_interface-curses__ads.htm#ref_694_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_149_19" HREF="terminal_interface-curses__ads.htm#ref_695_19">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>)
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_682_14">Move_Cursor</a>;
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_148_14" href="terminal_interface-curses__ads.htm#ref_694_14">Add</a></span> (<span class="symbol"><a name="ref_148_19" href="terminal_interface-curses__ads.htm#ref_694_19">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_149_19" href="terminal_interface-curses__ads.htm#ref_695_19">Ch</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_151_16">Waddch</A></span> (<span class="symbol"><A NAME="ref_151_24" HREF="terminal_interface-curses__adb.htm#ref_151_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_152_24" HREF="terminal_interface-curses__adb.htm#ref_151_16">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_151_16">Waddch</a></span> (<span class="symbol"><a name="ref_151_24">W</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_152_24">Ch</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Waddch, "waddch");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_151_16">Waddch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_694_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_695_19">Ch</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_151_16">Waddch</a> (<a href="terminal_interface-curses__ads.htm#ref_694_19">Win</a>, <a href="terminal_interface-curses__ads.htm#ref_695_19">Ch</a>) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_694_14">Add</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_694_14">Add</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_160_14" HREF="terminal_interface-curses__ads.htm#ref_699_14">Add</A></span> (<span class="symbol"><A NAME="ref_160_19" HREF="terminal_interface-curses__ads.htm#ref_699_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_161_19" HREF="terminal_interface-curses__ads.htm#ref_700_19">Ch</A></span> : Character)
+ <b>procedure</b> <span class="symbol"><a name="ref_160_14" href="terminal_interface-curses__ads.htm#ref_699_14">Add</a></span> (<span class="symbol"><a name="ref_160_19" href="terminal_interface-curses__ads.htm#ref_699_19">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_161_19" href="terminal_interface-curses__ads.htm#ref_700_19">Ch</a></span> : Character)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#ref_694_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#ref_699_19">Win</A>,
- <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>'(<A HREF="terminal_interface-curses__ads.htm#ref_492_10">Ch</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_700_19">Ch</A>,
- <A HREF="terminal_interface-curses__ads.htm#ref_491_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>'First,
- <A HREF="terminal_interface-curses__ads.htm#ref_490_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</A>));
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_699_14">Add</A>;
+ <a href="terminal_interface-curses__ads.htm#ref_694_14">Add</a> (<a href="terminal_interface-curses__ads.htm#ref_699_19">Win</a>,
+ <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>'(<a href="terminal_interface-curses__ads.htm#ref_492_10">Ch</a> =&gt; <a href="terminal_interface-curses__ads.htm#ref_700_19">Ch</a>,
+ <a href="terminal_interface-curses__ads.htm#ref_491_10">Color</a> =&gt; <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>'First,
+ <a href="terminal_interface-curses__ads.htm#ref_490_10">Attr</a> =&gt; <a href="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</a>));
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_699_14">Add</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_170_14" HREF="terminal_interface-curses__ads.htm#ref_705_14">Add</A></span>
- (<span class="symbol"><A NAME="ref_171_7" HREF="terminal_interface-curses__ads.htm#ref_706_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_172_7" HREF="terminal_interface-curses__ads.htm#ref_707_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_173_7" HREF="terminal_interface-curses__ads.htm#ref_708_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_174_7" HREF="terminal_interface-curses__ads.htm#ref_709_7">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_170_14" href="terminal_interface-curses__ads.htm#ref_705_14">Add</a></span>
+ (<span class="symbol"><a name="ref_171_7" href="terminal_interface-curses__ads.htm#ref_706_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_172_7" href="terminal_interface-curses__ads.htm#ref_707_7">Line</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_173_7" href="terminal_interface-curses__ads.htm#ref_708_7">Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_174_7" href="terminal_interface-curses__ads.htm#ref_709_7">Ch</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_176_16">mvwaddch</A></span> (<span class="symbol"><A NAME="ref_176_26" HREF="terminal_interface-curses__adb.htm#ref_176_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_177_26" HREF="terminal_interface-curses__adb.htm#ref_176_16">Y</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_178_26" HREF="terminal_interface-curses__adb.htm#ref_176_16">X</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_179_26" HREF="terminal_interface-curses__adb.htm#ref_176_16">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_176_16">mvwaddch</a></span> (<span class="symbol"><a name="ref_176_26">W</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_177_26">Y</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_178_26">X</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_179_26">Ch</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, mvwaddch, "mvwaddch");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_176_16">mvwaddch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_706_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_707_7">Line</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_708_7">Column</A>),
- <A HREF="terminal_interface-curses__ads.htm#ref_709_7">Ch</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A>
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_176_16">mvwaddch</a> (<a href="terminal_interface-curses__ads.htm#ref_706_7">Win</a>, <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_707_7">Line</a>),
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_708_7">Column</a>),
+ <a href="terminal_interface-curses__ads.htm#ref_709_7">Ch</a>) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a>
<b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_705_14">Add</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_705_14">Add</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_190_14" HREF="terminal_interface-curses__ads.htm#ref_713_14">Add</A></span>
- (<span class="symbol"><A NAME="ref_191_7" HREF="terminal_interface-curses__ads.htm#ref_714_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_192_7" HREF="terminal_interface-curses__ads.htm#ref_715_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_193_7" HREF="terminal_interface-curses__ads.htm#ref_716_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_194_7" HREF="terminal_interface-curses__ads.htm#ref_717_7">Ch</A></span> : Character)
+ <b>procedure</b> <span class="symbol"><a name="ref_190_14" href="terminal_interface-curses__ads.htm#ref_713_14">Add</a></span>
+ (<span class="symbol"><a name="ref_191_7" href="terminal_interface-curses__ads.htm#ref_714_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_192_7" href="terminal_interface-curses__ads.htm#ref_715_7">Line</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_193_7" href="terminal_interface-curses__ads.htm#ref_716_7">Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_194_7" href="terminal_interface-curses__ads.htm#ref_717_7">Ch</a></span> : Character)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#ref_705_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#ref_714_7">Win</A>,
- <A HREF="terminal_interface-curses__ads.htm#ref_715_7">Line</A>,
- <A HREF="terminal_interface-curses__ads.htm#ref_716_7">Column</A>,
- <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>'(<A HREF="terminal_interface-curses__ads.htm#ref_492_10">Ch</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_717_7">Ch</A>,
- <A HREF="terminal_interface-curses__ads.htm#ref_491_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>'First,
- <A HREF="terminal_interface-curses__ads.htm#ref_490_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</A>));
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_713_14">Add</A>;
+ <a href="terminal_interface-curses__ads.htm#ref_705_14">Add</a> (<a href="terminal_interface-curses__ads.htm#ref_714_7">Win</a>,
+ <a href="terminal_interface-curses__ads.htm#ref_715_7">Line</a>,
+ <a href="terminal_interface-curses__ads.htm#ref_716_7">Column</a>,
+ <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>'(<a href="terminal_interface-curses__ads.htm#ref_492_10">Ch</a> =&gt; <a href="terminal_interface-curses__ads.htm#ref_717_7">Ch</a>,
+ <a href="terminal_interface-curses__ads.htm#ref_491_10">Color</a> =&gt; <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>'First,
+ <a href="terminal_interface-curses__ads.htm#ref_490_10">Attr</a> =&gt; <a href="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</a>));
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_713_14">Add</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_205_14" HREF="terminal_interface-curses__ads.htm#ref_722_14">Add_With_Immediate_Echo</A></span>
- (<span class="symbol"><A NAME="ref_206_7" HREF="terminal_interface-curses__ads.htm#ref_723_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_207_7" HREF="terminal_interface-curses__ads.htm#ref_724_7">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_205_14" href="terminal_interface-curses__ads.htm#ref_722_14">Add_With_Immediate_Echo</a></span>
+ (<span class="symbol"><a name="ref_206_7" href="terminal_interface-curses__ads.htm#ref_723_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_207_7" href="terminal_interface-curses__ads.htm#ref_724_7">Ch</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_209_16">Wechochar</A></span> (<span class="symbol"><A NAME="ref_209_27" HREF="terminal_interface-curses__adb.htm#ref_209_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_210_27" HREF="terminal_interface-curses__adb.htm#ref_209_16">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_209_16">Wechochar</a></span> (<span class="symbol"><a name="ref_209_27">W</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_210_27">Ch</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Wechochar, "wechochar");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_209_16">Wechochar</A> (<A HREF="terminal_interface-curses__ads.htm#ref_723_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_724_7">Ch</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_209_16">Wechochar</a> (<a href="terminal_interface-curses__ads.htm#ref_723_7">Win</a>, <a href="terminal_interface-curses__ads.htm#ref_724_7">Ch</a>) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_722_14">Add_With_Immediate_Echo</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_722_14">Add_With_Immediate_Echo</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_218_14" HREF="terminal_interface-curses__ads.htm#ref_728_14">Add_With_Immediate_Echo</A></span>
- (<span class="symbol"><A NAME="ref_219_7" HREF="terminal_interface-curses__ads.htm#ref_729_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_220_7" HREF="terminal_interface-curses__ads.htm#ref_730_7">Ch</A></span> : Character)
+ <b>procedure</b> <span class="symbol"><a name="ref_218_14" href="terminal_interface-curses__ads.htm#ref_728_14">Add_With_Immediate_Echo</a></span>
+ (<span class="symbol"><a name="ref_219_7" href="terminal_interface-curses__ads.htm#ref_729_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_220_7" href="terminal_interface-curses__ads.htm#ref_730_7">Ch</a></span> : Character)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#ref_722_14">Add_With_Immediate_Echo</A>
- (<A HREF="terminal_interface-curses__ads.htm#ref_729_7">Win</A>,
- <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>'(<A HREF="terminal_interface-curses__ads.htm#ref_492_10">Ch</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_730_7">Ch</A>,
- <A HREF="terminal_interface-curses__ads.htm#ref_491_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>'First,
- <A HREF="terminal_interface-curses__ads.htm#ref_490_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</A>));
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_728_14">Add_With_Immediate_Echo</A>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_230_13" HREF="terminal_interface-curses__ads.htm#ref_740_13">Create</A></span> (<span class="symbol"><A NAME="ref_230_21" HREF="terminal_interface-curses__ads.htm#ref_741_7">Number_Of_Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</A>;
- <span class="symbol"><A NAME="ref_231_21" HREF="terminal_interface-curses__ads.htm#ref_742_7">Number_Of_Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</A>;
- <span class="symbol"><A NAME="ref_232_21" HREF="terminal_interface-curses__ads.htm#ref_743_7">First_Line_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_233_21" HREF="terminal_interface-curses__ads.htm#ref_744_7">First_Column_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>
+ <a href="terminal_interface-curses__ads.htm#ref_722_14">Add_With_Immediate_Echo</a>
+ (<a href="terminal_interface-curses__ads.htm#ref_729_7">Win</a>,
+ <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>'(<a href="terminal_interface-curses__ads.htm#ref_492_10">Ch</a> =&gt; <a href="terminal_interface-curses__ads.htm#ref_730_7">Ch</a>,
+ <a href="terminal_interface-curses__ads.htm#ref_491_10">Color</a> =&gt; <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>'First,
+ <a href="terminal_interface-curses__ads.htm#ref_490_10">Attr</a> =&gt; <a href="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</a>));
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_728_14">Add_With_Immediate_Echo</a>;
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_230_13" href="terminal_interface-curses__ads.htm#ref_740_13">Create</a></span> (<span class="symbol"><a name="ref_230_21" href="terminal_interface-curses__ads.htm#ref_741_7">Number_Of_Lines</a></span> : <a href="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</a>;
+ <span class="symbol"><a name="ref_231_21" href="terminal_interface-curses__ads.htm#ref_742_7">Number_Of_Columns</a></span> : <a href="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</a>;
+ <span class="symbol"><a name="ref_232_21" href="terminal_interface-curses__ads.htm#ref_743_7">First_Line_Position</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_233_21" href="terminal_interface-curses__ads.htm#ref_744_7">First_Column_Position</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_235_16">Newwin</A></span> (<span class="symbol"><A NAME="ref_235_24" HREF="terminal_interface-curses__adb.htm#ref_235_16">Number_Of_Lines</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_236_24" HREF="terminal_interface-curses__adb.htm#ref_235_16">Number_Of_Columns</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_237_24" HREF="terminal_interface-curses__adb.htm#ref_235_16">First_Line_Position</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_238_24" HREF="terminal_interface-curses__adb.htm#ref_235_16">First_Column_Position</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
+ <b>function</b> <span class="symbol"><a name="ref_235_16">Newwin</a></span> (<span class="symbol"><a name="ref_235_24">Number_Of_Lines</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_236_24">Number_Of_Columns</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_237_24">First_Line_Position</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_238_24">First_Column_Position</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
<b>pragma</b> Import (C, Newwin, "newwin");
- <span class="symbol"><A NAME="ref_241_7">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
+ <span class="symbol"><a name="ref_241_7">W</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
<b>begin</b>
- <A HREF="terminal_interface-curses__adb.htm#ref_241_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_235_16">Newwin</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_741_7">Number_Of_Lines</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_742_7">Number_Of_Columns</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_743_7">First_Line_Position</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_744_7">First_Column_Position</A>));
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_241_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_57_4">Null_Window</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <a href="terminal_interface-curses__adb.htm#ref_241_7">W</a> := <a href="terminal_interface-curses__adb.htm#ref_235_16">Newwin</a> (<a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_741_7">Number_Of_Lines</a>),
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_742_7">Number_Of_Columns</a>),
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_743_7">First_Line_Position</a>),
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_744_7">First_Column_Position</a>));
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_241_7">W</a> = <a href="terminal_interface-curses__ads.htm#ref_57_4">Null_Window</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_241_7">W</A>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_740_13">Create</A>;
+ <b>return</b> <a href="terminal_interface-curses__adb.htm#ref_241_7">W</a>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_740_13">Create</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_253_14" HREF="terminal_interface-curses__ads.htm#ref_759_14">Delete</A></span> (<span class="symbol"><A NAME="ref_253_22" HREF="terminal_interface-curses__ads.htm#ref_759_22">Win</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_253_14" href="terminal_interface-curses__ads.htm#ref_759_14">Delete</a></span> (<span class="symbol"><a name="ref_253_22" href="terminal_interface-curses__ads.htm#ref_759_22">Win</a></span> : <b>in</b> <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_255_16">Wdelwin</A></span> (<span class="symbol"><A NAME="ref_255_25" HREF="terminal_interface-curses__adb.htm#ref_255_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_255_16">Wdelwin</a></span> (<span class="symbol"><a name="ref_255_25">W</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Wdelwin, "delwin");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_255_16">Wdelwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_759_22">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
- <b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses__ads.htm#ref_759_22">Win</A> := <A HREF="terminal_interface-curses__ads.htm#ref_57_4">Null_Window</A>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_759_14">Delete</A>;
-
- <b>function</b> <span class="symbol"><A NAME="ref_264_13" HREF="terminal_interface-curses__ads.htm#ref_765_13">Sub_Window</A></span>
- (<span class="symbol"><A NAME="ref_265_7" HREF="terminal_interface-curses__ads.htm#ref_766_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_266_7" HREF="terminal_interface-curses__ads.htm#ref_767_7">Number_Of_Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</A>;
- <span class="symbol"><A NAME="ref_267_7" HREF="terminal_interface-curses__ads.htm#ref_768_7">Number_Of_Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</A>;
- <span class="symbol"><A NAME="ref_268_7" HREF="terminal_interface-curses__ads.htm#ref_769_7">First_Line_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_269_7" HREF="terminal_interface-curses__ads.htm#ref_770_7">First_Column_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>
- <b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_271_16">Subwin</A></span>
- (<span class="symbol"><A NAME="ref_272_10" HREF="terminal_interface-curses__adb.htm#ref_271_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_273_10" HREF="terminal_interface-curses__adb.htm#ref_271_16">Number_Of_Lines</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_274_10" HREF="terminal_interface-curses__adb.htm#ref_271_16">Number_Of_Columns</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_275_10" HREF="terminal_interface-curses__adb.htm#ref_271_16">First_Line_Position</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_276_10" HREF="terminal_interface-curses__adb.htm#ref_271_16">First_Column_Position</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_255_16">Wdelwin</a> (<a href="terminal_interface-curses__ads.htm#ref_759_22">Win</a>) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
+ <b>end</b> <b>if</b>;
+ <a href="terminal_interface-curses__ads.htm#ref_759_22">Win</a> := <a href="terminal_interface-curses__ads.htm#ref_57_4">Null_Window</a>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_759_14">Delete</a>;
+
+ <b>function</b> <span class="symbol"><a name="ref_264_13" href="terminal_interface-curses__ads.htm#ref_765_13">Sub_Window</a></span>
+ (<span class="symbol"><a name="ref_265_7" href="terminal_interface-curses__ads.htm#ref_766_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_266_7" href="terminal_interface-curses__ads.htm#ref_767_7">Number_Of_Lines</a></span> : <a href="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</a>;
+ <span class="symbol"><a name="ref_267_7" href="terminal_interface-curses__ads.htm#ref_768_7">Number_Of_Columns</a></span> : <a href="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</a>;
+ <span class="symbol"><a name="ref_268_7" href="terminal_interface-curses__ads.htm#ref_769_7">First_Line_Position</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_269_7" href="terminal_interface-curses__ads.htm#ref_770_7">First_Column_Position</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>
+ <b>is</b>
+ <b>function</b> <span class="symbol"><a name="ref_271_16">Subwin</a></span>
+ (<span class="symbol"><a name="ref_272_10">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_273_10">Number_Of_Lines</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_274_10">Number_Of_Columns</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_275_10">First_Line_Position</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_276_10">First_Column_Position</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
<b>pragma</b> Import (C, Subwin, "subwin");
- <span class="symbol"><A NAME="ref_279_7">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <b>begin</b>
- <A HREF="terminal_interface-curses__adb.htm#ref_279_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_271_16">Subwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_766_7">Win</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_767_7">Number_Of_Lines</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_768_7">Number_Of_Columns</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_769_7">First_Line_Position</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_770_7">First_Column_Position</A>));
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_279_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_57_4">Null_Window</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
- <b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_279_7">W</A>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_765_13">Sub_Window</A>;
-
- <b>function</b> <span class="symbol"><A NAME="ref_292_13" HREF="terminal_interface-curses__ads.htm#ref_775_13">Derived_Window</A></span>
- (<span class="symbol"><A NAME="ref_293_7" HREF="terminal_interface-curses__ads.htm#ref_776_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_294_7" HREF="terminal_interface-curses__ads.htm#ref_777_7">Number_Of_Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</A>;
- <span class="symbol"><A NAME="ref_295_7" HREF="terminal_interface-curses__ads.htm#ref_778_7">Number_Of_Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</A>;
- <span class="symbol"><A NAME="ref_296_7" HREF="terminal_interface-curses__ads.htm#ref_779_7">First_Line_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_297_7" HREF="terminal_interface-curses__ads.htm#ref_780_7">First_Column_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>
- <b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_299_16">Derwin</A></span>
- (<span class="symbol"><A NAME="ref_300_10" HREF="terminal_interface-curses__adb.htm#ref_299_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_301_10" HREF="terminal_interface-curses__adb.htm#ref_299_16">Number_Of_Lines</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_302_10" HREF="terminal_interface-curses__adb.htm#ref_299_16">Number_Of_Columns</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_303_10" HREF="terminal_interface-curses__adb.htm#ref_299_16">First_Line_Position</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_304_10" HREF="terminal_interface-curses__adb.htm#ref_299_16">First_Column_Position</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
+ <span class="symbol"><a name="ref_279_7">W</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <b>begin</b>
+ <a href="terminal_interface-curses__adb.htm#ref_279_7">W</a> := <a href="terminal_interface-curses__adb.htm#ref_271_16">Subwin</a> (<a href="terminal_interface-curses__ads.htm#ref_766_7">Win</a>,
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_767_7">Number_Of_Lines</a>),
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_768_7">Number_Of_Columns</a>),
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_769_7">First_Line_Position</a>),
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_770_7">First_Column_Position</a>));
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_279_7">W</a> = <a href="terminal_interface-curses__ads.htm#ref_57_4">Null_Window</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
+ <b>end</b> <b>if</b>;
+ <b>return</b> <a href="terminal_interface-curses__adb.htm#ref_279_7">W</a>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_765_13">Sub_Window</a>;
+
+ <b>function</b> <span class="symbol"><a name="ref_292_13" href="terminal_interface-curses__ads.htm#ref_775_13">Derived_Window</a></span>
+ (<span class="symbol"><a name="ref_293_7" href="terminal_interface-curses__ads.htm#ref_776_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_294_7" href="terminal_interface-curses__ads.htm#ref_777_7">Number_Of_Lines</a></span> : <a href="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</a>;
+ <span class="symbol"><a name="ref_295_7" href="terminal_interface-curses__ads.htm#ref_778_7">Number_Of_Columns</a></span> : <a href="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</a>;
+ <span class="symbol"><a name="ref_296_7" href="terminal_interface-curses__ads.htm#ref_779_7">First_Line_Position</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_297_7" href="terminal_interface-curses__ads.htm#ref_780_7">First_Column_Position</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>
+ <b>is</b>
+ <b>function</b> <span class="symbol"><a name="ref_299_16">Derwin</a></span>
+ (<span class="symbol"><a name="ref_300_10">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_301_10">Number_Of_Lines</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_302_10">Number_Of_Columns</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_303_10">First_Line_Position</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_304_10">First_Column_Position</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
<b>pragma</b> Import (C, Derwin, "derwin");
- <span class="symbol"><A NAME="ref_307_7">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
+ <span class="symbol"><a name="ref_307_7">W</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
<b>begin</b>
- <A HREF="terminal_interface-curses__adb.htm#ref_307_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_299_16">Derwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_776_7">Win</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_777_7">Number_Of_Lines</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_778_7">Number_Of_Columns</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_779_7">First_Line_Position</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_780_7">First_Column_Position</A>));
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_307_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_57_4">Null_Window</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <a href="terminal_interface-curses__adb.htm#ref_307_7">W</a> := <a href="terminal_interface-curses__adb.htm#ref_299_16">Derwin</a> (<a href="terminal_interface-curses__ads.htm#ref_776_7">Win</a>,
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_777_7">Number_Of_Lines</a>),
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_778_7">Number_Of_Columns</a>),
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_779_7">First_Line_Position</a>),
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_780_7">First_Column_Position</a>));
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_307_7">W</a> = <a href="terminal_interface-curses__ads.htm#ref_57_4">Null_Window</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_307_7">W</A>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_775_13">Derived_Window</A>;
+ <b>return</b> <a href="terminal_interface-curses__adb.htm#ref_307_7">W</a>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_775_13">Derived_Window</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_320_13" HREF="terminal_interface-curses__ads.htm#ref_785_13">Duplicate</A></span> (<span class="symbol"><A NAME="ref_320_24" HREF="terminal_interface-curses__ads.htm#ref_785_24">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>
+ <b>function</b> <span class="symbol"><a name="ref_320_13" href="terminal_interface-curses__ads.htm#ref_785_13">Duplicate</a></span> (<span class="symbol"><a name="ref_320_24" href="terminal_interface-curses__ads.htm#ref_785_24">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_322_16">Dupwin</A></span> (<span class="symbol"><A NAME="ref_322_24" HREF="terminal_interface-curses__adb.htm#ref_322_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
+ <b>function</b> <span class="symbol"><a name="ref_322_16">Dupwin</a></span> (<span class="symbol"><a name="ref_322_24">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
<b>pragma</b> Import (C, Dupwin, "dupwin");
- <span class="symbol"><A NAME="ref_325_7">W</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__adb.htm#ref_322_16">Dupwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_785_24">Win</A>);
+ <span class="symbol"><a name="ref_325_7">W</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__adb.htm#ref_322_16">Dupwin</a> (<a href="terminal_interface-curses__ads.htm#ref_785_24">Win</a>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_325_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_57_4">Null_Window</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_325_7">W</a> = <a href="terminal_interface-curses__ads.htm#ref_57_4">Null_Window</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_325_7">W</A>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_785_13">Duplicate</A>;
+ <b>return</b> <a href="terminal_interface-curses__adb.htm#ref_325_7">W</a>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_785_13">Duplicate</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_333_14" HREF="terminal_interface-curses__ads.htm#ref_790_14">Move_Window</A></span> (<span class="symbol"><A NAME="ref_333_27" HREF="terminal_interface-curses__ads.htm#ref_790_27">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_334_27" HREF="terminal_interface-curses__ads.htm#ref_791_27">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_335_27" HREF="terminal_interface-curses__ads.htm#ref_792_27">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_333_14" href="terminal_interface-curses__ads.htm#ref_790_14">Move_Window</a></span> (<span class="symbol"><a name="ref_333_27" href="terminal_interface-curses__ads.htm#ref_790_27">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_334_27" href="terminal_interface-curses__ads.htm#ref_791_27">Line</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_335_27" href="terminal_interface-curses__ads.htm#ref_792_27">Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_337_16">Mvwin</A></span> (<span class="symbol"><A NAME="ref_337_23" HREF="terminal_interface-curses__adb.htm#ref_337_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_338_23" HREF="terminal_interface-curses__adb.htm#ref_337_16">Line</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_339_23" HREF="terminal_interface-curses__adb.htm#ref_337_16">Column</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_337_16">Mvwin</a></span> (<span class="symbol"><a name="ref_337_23">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_338_23">Line</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_339_23">Column</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Mvwin, "mvwin");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_337_16">Mvwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_790_27">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_791_27">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_792_27">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_337_16">Mvwin</a> (<a href="terminal_interface-curses__ads.htm#ref_790_27">Win</a>, <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_791_27">Line</a>), <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_792_27">Column</a>)) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_790_14">Move_Window</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_790_14">Move_Window</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_347_14" HREF="terminal_interface-curses__ads.htm#ref_797_14">Move_Derived_Window</A></span> (<span class="symbol"><A NAME="ref_347_35" HREF="terminal_interface-curses__ads.htm#ref_797_35">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_348_35" HREF="terminal_interface-curses__ads.htm#ref_798_35">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_349_35" HREF="terminal_interface-curses__ads.htm#ref_799_35">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_347_14" href="terminal_interface-curses__ads.htm#ref_797_14">Move_Derived_Window</a></span> (<span class="symbol"><a name="ref_347_35" href="terminal_interface-curses__ads.htm#ref_797_35">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_348_35" href="terminal_interface-curses__ads.htm#ref_798_35">Line</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_349_35" href="terminal_interface-curses__ads.htm#ref_799_35">Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_351_16">Mvderwin</A></span> (<span class="symbol"><A NAME="ref_351_26" HREF="terminal_interface-curses__adb.htm#ref_351_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_352_26" HREF="terminal_interface-curses__adb.htm#ref_351_16">Line</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_353_26" HREF="terminal_interface-curses__adb.htm#ref_351_16">Column</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_351_16">Mvderwin</a></span> (<span class="symbol"><a name="ref_351_26">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_352_26">Line</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_353_26">Column</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Mvderwin, "mvderwin");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_351_16">Mvderwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_797_35">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_798_35">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_799_35">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_351_16">Mvderwin</a> (<a href="terminal_interface-curses__ads.htm#ref_797_35">Win</a>, <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_798_35">Line</a>), <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_799_35">Column</a>)) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_797_14">Move_Derived_Window</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_797_14">Move_Derived_Window</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_361_14" HREF="terminal_interface-curses__ads.htm#ref_814_14">Set_Synch_Mode</A></span> (<span class="symbol"><A NAME="ref_361_30" HREF="terminal_interface-curses__ads.htm#ref_814_30">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_362_30" HREF="terminal_interface-curses__ads.htm#ref_815_30">Mode</A></span> : Boolean := False)
+ <b>procedure</b> <span class="symbol"><a name="ref_361_14" href="terminal_interface-curses__ads.htm#ref_814_14">Set_Synch_Mode</a></span> (<span class="symbol"><a name="ref_361_30" href="terminal_interface-curses__ads.htm#ref_814_30">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_362_30" href="terminal_interface-curses__ads.htm#ref_815_30">Mode</a></span> : Boolean := False)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_364_16">Syncok</A></span> (<span class="symbol"><A NAME="ref_364_24" HREF="terminal_interface-curses__adb.htm#ref_364_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_365_24" HREF="terminal_interface-curses__adb.htm#ref_364_16">Mode</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_364_16">Syncok</a></span> (<span class="symbol"><a name="ref_364_24">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_365_24">Mode</a></span> : <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Syncok, "syncok");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_364_16">Syncok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_814_30">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_815_30">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_364_16">Syncok</a> (<a href="terminal_interface-curses__ads.htm#ref_814_30">Win</a>, <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a> (Boolean'Pos (<a href="terminal_interface-curses__ads.htm#ref_815_30">Mode</a>))) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_814_14">Set_Synch_Mode</A>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_373_14" HREF="terminal_interface-curses__ads.htm#ref_824_14">Add</A></span> (<span class="symbol"><A NAME="ref_373_19" HREF="terminal_interface-curses__ads.htm#ref_824_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_374_19" HREF="terminal_interface-curses__ads.htm#ref_825_19">Str</A></span> : String;
- <span class="symbol"><A NAME="ref_375_19" HREF="terminal_interface-curses__ads.htm#ref_826_19">Len</A></span> : Integer := -1)
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_814_14">Set_Synch_Mode</a>;
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_373_14" href="terminal_interface-curses__ads.htm#ref_824_14">Add</a></span> (<span class="symbol"><a name="ref_373_19" href="terminal_interface-curses__ads.htm#ref_824_19">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_374_19" href="terminal_interface-curses__ads.htm#ref_825_19">Str</a></span> : String;
+ <span class="symbol"><a name="ref_375_19" href="terminal_interface-curses__ads.htm#ref_826_19">Len</a></span> : Integer := -1)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_377_16">Waddnstr</A></span> (<span class="symbol"><A NAME="ref_377_26" HREF="terminal_interface-curses__adb.htm#ref_377_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_378_26" HREF="terminal_interface-curses__adb.htm#ref_377_16">Str</A></span> : char_array;
- <span class="symbol"><A NAME="ref_379_26" HREF="terminal_interface-curses__adb.htm#ref_377_16">Len</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> := -1) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_377_16">Waddnstr</a></span> (<span class="symbol"><a name="ref_377_26">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_378_26">Str</a></span> : char_array;
+ <span class="symbol"><a name="ref_379_26">Len</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> := -1) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Waddnstr, "waddnstr");
- <span class="symbol"><A NAME="ref_382_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_825_19">Str</A>'Length);
- <span class="symbol"><A NAME="ref_383_7">Length</A></span> : size_t;
+ <span class="symbol"><a name="ref_382_7">Txt</a></span> : char_array (0 .. <a href="terminal_interface-curses__ads.htm#ref_825_19">Str</a>'Length);
+ <span class="symbol"><a name="ref_383_7">Length</a></span> : size_t;
<b>begin</b>
- To_C (<A HREF="terminal_interface-curses__ads.htm#ref_825_19">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_382_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_383_7">Length</A>);
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_377_16">Waddnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_824_19">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_382_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_826_19">Len</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ To_C (<a href="terminal_interface-curses__ads.htm#ref_825_19">Str</a>, <a href="terminal_interface-curses__adb.htm#ref_382_7">Txt</a>, <a href="terminal_interface-curses__adb.htm#ref_383_7">Length</a>);
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_377_16">Waddnstr</a> (<a href="terminal_interface-curses__ads.htm#ref_824_19">Win</a>, <a href="terminal_interface-curses__adb.htm#ref_382_7">Txt</a>, <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_826_19">Len</a>)) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_824_14">Add</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_824_14">Add</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_391_14" HREF="terminal_interface-curses__ads.htm#ref_833_14">Add</A></span>
- (<span class="symbol"><A NAME="ref_392_7" HREF="terminal_interface-curses__ads.htm#ref_833_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_393_7" HREF="terminal_interface-curses__ads.htm#ref_834_19">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_394_7" HREF="terminal_interface-curses__ads.htm#ref_835_19">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_395_7" HREF="terminal_interface-curses__ads.htm#ref_836_19">Str</A></span> : String;
- <span class="symbol"><A NAME="ref_396_7" HREF="terminal_interface-curses__ads.htm#ref_837_19">Len</A></span> : Integer := -1)
+ <b>procedure</b> <span class="symbol"><a name="ref_391_14" href="terminal_interface-curses__ads.htm#ref_833_14">Add</a></span>
+ (<span class="symbol"><a name="ref_392_7" href="terminal_interface-curses__ads.htm#ref_833_19">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_393_7" href="terminal_interface-curses__ads.htm#ref_834_19">Line</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_394_7" href="terminal_interface-curses__ads.htm#ref_835_19">Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_395_7" href="terminal_interface-curses__ads.htm#ref_836_19">Str</a></span> : String;
+ <span class="symbol"><a name="ref_396_7" href="terminal_interface-curses__ads.htm#ref_837_19">Len</a></span> : Integer := -1)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#ref_682_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_833_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_834_19">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_835_19">Column</A>);
- <A HREF="terminal_interface-curses__ads.htm#ref_824_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#ref_833_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_836_19">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_837_19">Len</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_833_14">Add</A>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_403_14" HREF="terminal_interface-curses__ads.htm#ref_848_14">Add</A></span>
- (<span class="symbol"><A NAME="ref_404_7" HREF="terminal_interface-curses__ads.htm#ref_848_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_405_7" HREF="terminal_interface-curses__ads.htm#ref_849_19">Str</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_510_4">Attributed_String</A>;
- <span class="symbol"><A NAME="ref_406_7" HREF="terminal_interface-curses__ads.htm#ref_850_19">Len</A></span> : Integer := -1)
+ <a href="terminal_interface-curses__ads.htm#ref_682_14">Move_Cursor</a> (<a href="terminal_interface-curses__ads.htm#ref_833_19">Win</a>, <a href="terminal_interface-curses__ads.htm#ref_834_19">Line</a>, <a href="terminal_interface-curses__ads.htm#ref_835_19">Column</a>);
+ <a href="terminal_interface-curses__ads.htm#ref_824_14">Add</a> (<a href="terminal_interface-curses__ads.htm#ref_833_19">Win</a>, <a href="terminal_interface-curses__ads.htm#ref_836_19">Str</a>, <a href="terminal_interface-curses__ads.htm#ref_837_19">Len</a>);
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_833_14">Add</a>;
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_403_14" href="terminal_interface-curses__ads.htm#ref_848_14">Add</a></span>
+ (<span class="symbol"><a name="ref_404_7" href="terminal_interface-curses__ads.htm#ref_848_19">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_405_7" href="terminal_interface-curses__ads.htm#ref_849_19">Str</a></span> : <a href="terminal_interface-curses__ads.htm#ref_510_4">Attributed_String</a>;
+ <span class="symbol"><a name="ref_406_7" href="terminal_interface-curses__ads.htm#ref_850_19">Len</a></span> : Integer := -1)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_408_16">Waddchnstr</A></span> (<span class="symbol"><A NAME="ref_408_28" HREF="terminal_interface-curses__adb.htm#ref_408_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_409_28" HREF="terminal_interface-curses__adb.htm#ref_408_16">Str</A></span> : chtype_array;
- <span class="symbol"><A NAME="ref_410_28" HREF="terminal_interface-curses__adb.htm#ref_408_16">Len</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> := -1) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_408_16">Waddchnstr</a></span> (<span class="symbol"><a name="ref_408_28">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_409_28">Str</a></span> : chtype_array;
+ <span class="symbol"><a name="ref_410_28">Len</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> := -1) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Waddchnstr, "waddchnstr");
- <span class="symbol"><A NAME="ref_413_7">Txt</A></span> : chtype_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_849_19">Str</A>'Length);
+ <span class="symbol"><a name="ref_413_7">Txt</a></span> : chtype_array (0 .. <a href="terminal_interface-curses__ads.htm#ref_849_19">Str</a>'Length);
<b>begin</b>
- <b>for</b> <span class="symbol"><A NAME="ref_415_11">Length</A></span> <b>in</b> 1 .. size_t (<A HREF="terminal_interface-curses__ads.htm#ref_849_19">Str</A>'Length) <b>loop</b>
- <A HREF="terminal_interface-curses__adb.htm#ref_413_7">Txt</A> (<A HREF="terminal_interface-curses__adb.htm#ref_415_11">Length</A> - 1) := <A HREF="terminal_interface-curses__ads.htm#ref_849_19">Str</A> (Natural (<A HREF="terminal_interface-curses__adb.htm#ref_415_11">Length</A>));
+ <b>for</b> <span class="symbol"><a name="ref_415_11">Length</a></span> <b>in</b> 1 .. size_t (<a href="terminal_interface-curses__ads.htm#ref_849_19">Str</a>'Length) <b>loop</b>
+ <a href="terminal_interface-curses__adb.htm#ref_413_7">Txt</a> (<a href="terminal_interface-curses__adb.htm#ref_415_11">Length</a> - 1) := <a href="terminal_interface-curses__ads.htm#ref_849_19">Str</a> (Natural (<a href="terminal_interface-curses__adb.htm#ref_415_11">Length</a>));
<b>end</b> <b>loop</b>;
- <A HREF="terminal_interface-curses__adb.htm#ref_413_7">Txt</A> (<A HREF="terminal_interface-curses__ads.htm#ref_849_19">Str</A>'Length) := <A HREF="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</A>;
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_408_16">Waddchnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_848_19">Win</A>,
- <A HREF="terminal_interface-curses__adb.htm#ref_413_7">Txt</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_850_19">Len</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A>
+ <a href="terminal_interface-curses__adb.htm#ref_413_7">Txt</a> (<a href="terminal_interface-curses__ads.htm#ref_849_19">Str</a>'Length) := <a href="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</a>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_408_16">Waddchnstr</a> (<a href="terminal_interface-curses__ads.htm#ref_848_19">Win</a>,
+ <a href="terminal_interface-curses__adb.htm#ref_413_7">Txt</a>,
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_850_19">Len</a>)) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a>
<b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
- <b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_848_14">Add</A>;
-
- <b>procedure</b> <span class="symbol"><A NAME="ref_427_14" HREF="terminal_interface-curses__ads.htm#ref_857_14">Add</A></span>
- (<span class="symbol"><A NAME="ref_428_7" HREF="terminal_interface-curses__ads.htm#ref_857_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_429_7" HREF="terminal_interface-curses__ads.htm#ref_858_19">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_430_7" HREF="terminal_interface-curses__ads.htm#ref_859_19">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_431_7" HREF="terminal_interface-curses__ads.htm#ref_860_19">Str</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_510_4">Attributed_String</A>;
- <span class="symbol"><A NAME="ref_432_7" HREF="terminal_interface-curses__ads.htm#ref_861_19">Len</A></span> : Integer := -1)
- <b>is</b>
- <b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#ref_682_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_857_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_858_19">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_859_19">Column</A>);
- <A HREF="terminal_interface-curses__ads.htm#ref_848_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#ref_857_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_860_19">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_861_19">Len</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_857_14">Add</A>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_439_14" HREF="terminal_interface-curses__ads.htm#ref_875_14">Border</A></span>
- (<span class="symbol"><A NAME="ref_440_7" HREF="terminal_interface-curses__ads.htm#ref_876_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_441_7" HREF="terminal_interface-curses__ads.htm#ref_877_7">Left_Side_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</A>;
- <span class="symbol"><A NAME="ref_442_7" HREF="terminal_interface-curses__ads.htm#ref_878_7">Right_Side_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</A>;
- <span class="symbol"><A NAME="ref_443_7" HREF="terminal_interface-curses__ads.htm#ref_879_7">Top_Side_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</A>;
- <span class="symbol"><A NAME="ref_444_7" HREF="terminal_interface-curses__ads.htm#ref_880_7">Bottom_Side_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</A>;
- <span class="symbol"><A NAME="ref_445_7" HREF="terminal_interface-curses__ads.htm#ref_881_7">Upper_Left_Corner_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</A>;
- <span class="symbol"><A NAME="ref_446_7" HREF="terminal_interface-curses__ads.htm#ref_882_7">Upper_Right_Corner_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</A>;
- <span class="symbol"><A NAME="ref_447_7" HREF="terminal_interface-curses__ads.htm#ref_883_7">Lower_Left_Corner_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</A>;
- <span class="symbol"><A NAME="ref_448_7" HREF="terminal_interface-curses__ads.htm#ref_884_7">Lower_Right_Corner_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</A>)
- <b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_450_16">Wborder</A></span> (<span class="symbol"><A NAME="ref_450_25" HREF="terminal_interface-curses__adb.htm#ref_450_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_451_25" HREF="terminal_interface-curses__adb.htm#ref_450_16">LS</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>;
- <span class="symbol"><A NAME="ref_452_25" HREF="terminal_interface-curses__adb.htm#ref_450_16">RS</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>;
- <span class="symbol"><A NAME="ref_453_25" HREF="terminal_interface-curses__adb.htm#ref_450_16">TS</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>;
- <span class="symbol"><A NAME="ref_454_25" HREF="terminal_interface-curses__adb.htm#ref_450_16">BS</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>;
- <span class="symbol"><A NAME="ref_455_25" HREF="terminal_interface-curses__adb.htm#ref_450_16">ULC</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>;
- <span class="symbol"><A NAME="ref_456_25" HREF="terminal_interface-curses__adb.htm#ref_450_16">URC</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>;
- <span class="symbol"><A NAME="ref_457_25" HREF="terminal_interface-curses__adb.htm#ref_450_16">LLC</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>;
- <span class="symbol"><A NAME="ref_458_25" HREF="terminal_interface-curses__adb.htm#ref_450_16">LRC</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
+ <b>end</b> <b>if</b>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_848_14">Add</a>;
+
+ <b>procedure</b> <span class="symbol"><a name="ref_427_14" href="terminal_interface-curses__ads.htm#ref_857_14">Add</a></span>
+ (<span class="symbol"><a name="ref_428_7" href="terminal_interface-curses__ads.htm#ref_857_19">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_429_7" href="terminal_interface-curses__ads.htm#ref_858_19">Line</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_430_7" href="terminal_interface-curses__ads.htm#ref_859_19">Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_431_7" href="terminal_interface-curses__ads.htm#ref_860_19">Str</a></span> : <a href="terminal_interface-curses__ads.htm#ref_510_4">Attributed_String</a>;
+ <span class="symbol"><a name="ref_432_7" href="terminal_interface-curses__ads.htm#ref_861_19">Len</a></span> : Integer := -1)
+ <b>is</b>
+ <b>begin</b>
+ <a href="terminal_interface-curses__ads.htm#ref_682_14">Move_Cursor</a> (<a href="terminal_interface-curses__ads.htm#ref_857_19">Win</a>, <a href="terminal_interface-curses__ads.htm#ref_858_19">Line</a>, <a href="terminal_interface-curses__ads.htm#ref_859_19">Column</a>);
+ <a href="terminal_interface-curses__ads.htm#ref_848_14">Add</a> (<a href="terminal_interface-curses__ads.htm#ref_857_19">Win</a>, <a href="terminal_interface-curses__ads.htm#ref_860_19">Str</a>, <a href="terminal_interface-curses__ads.htm#ref_861_19">Len</a>);
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_857_14">Add</a>;
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_439_14" href="terminal_interface-curses__ads.htm#ref_875_14">Border</a></span>
+ (<span class="symbol"><a name="ref_440_7" href="terminal_interface-curses__ads.htm#ref_876_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_441_7" href="terminal_interface-curses__ads.htm#ref_877_7">Left_Side_Symbol</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a> := <a href="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</a>;
+ <span class="symbol"><a name="ref_442_7" href="terminal_interface-curses__ads.htm#ref_878_7">Right_Side_Symbol</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a> := <a href="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</a>;
+ <span class="symbol"><a name="ref_443_7" href="terminal_interface-curses__ads.htm#ref_879_7">Top_Side_Symbol</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a> := <a href="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</a>;
+ <span class="symbol"><a name="ref_444_7" href="terminal_interface-curses__ads.htm#ref_880_7">Bottom_Side_Symbol</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a> := <a href="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</a>;
+ <span class="symbol"><a name="ref_445_7" href="terminal_interface-curses__ads.htm#ref_881_7">Upper_Left_Corner_Symbol</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a> := <a href="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</a>;
+ <span class="symbol"><a name="ref_446_7" href="terminal_interface-curses__ads.htm#ref_882_7">Upper_Right_Corner_Symbol</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a> := <a href="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</a>;
+ <span class="symbol"><a name="ref_447_7" href="terminal_interface-curses__ads.htm#ref_883_7">Lower_Left_Corner_Symbol</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a> := <a href="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</a>;
+ <span class="symbol"><a name="ref_448_7" href="terminal_interface-curses__ads.htm#ref_884_7">Lower_Right_Corner_Symbol</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a> := <a href="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</a>)
+ <b>is</b>
+ <b>function</b> <span class="symbol"><a name="ref_450_16">Wborder</a></span> (<span class="symbol"><a name="ref_450_25">W</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_451_25">LS</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>;
+ <span class="symbol"><a name="ref_452_25">RS</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>;
+ <span class="symbol"><a name="ref_453_25">TS</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>;
+ <span class="symbol"><a name="ref_454_25">BS</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>;
+ <span class="symbol"><a name="ref_455_25">ULC</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>;
+ <span class="symbol"><a name="ref_456_25">URC</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>;
+ <span class="symbol"><a name="ref_457_25">LLC</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>;
+ <span class="symbol"><a name="ref_458_25">LRC</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Wborder, "wborder");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_450_16">Wborder</A> (<A HREF="terminal_interface-curses__ads.htm#ref_876_7">Win</A>,
- <A HREF="terminal_interface-curses__ads.htm#ref_877_7">Left_Side_Symbol</A>,
- <A HREF="terminal_interface-curses__ads.htm#ref_878_7">Right_Side_Symbol</A>,
- <A HREF="terminal_interface-curses__ads.htm#ref_879_7">Top_Side_Symbol</A>,
- <A HREF="terminal_interface-curses__ads.htm#ref_880_7">Bottom_Side_Symbol</A>,
- <A HREF="terminal_interface-curses__ads.htm#ref_881_7">Upper_Left_Corner_Symbol</A>,
- <A HREF="terminal_interface-curses__ads.htm#ref_882_7">Upper_Right_Corner_Symbol</A>,
- <A HREF="terminal_interface-curses__ads.htm#ref_883_7">Lower_Left_Corner_Symbol</A>,
- <A HREF="terminal_interface-curses__ads.htm#ref_884_7">Lower_Right_Corner_Symbol</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A>
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_450_16">Wborder</a> (<a href="terminal_interface-curses__ads.htm#ref_876_7">Win</a>,
+ <a href="terminal_interface-curses__ads.htm#ref_877_7">Left_Side_Symbol</a>,
+ <a href="terminal_interface-curses__ads.htm#ref_878_7">Right_Side_Symbol</a>,
+ <a href="terminal_interface-curses__ads.htm#ref_879_7">Top_Side_Symbol</a>,
+ <a href="terminal_interface-curses__ads.htm#ref_880_7">Bottom_Side_Symbol</a>,
+ <a href="terminal_interface-curses__ads.htm#ref_881_7">Upper_Left_Corner_Symbol</a>,
+ <a href="terminal_interface-curses__ads.htm#ref_882_7">Upper_Right_Corner_Symbol</a>,
+ <a href="terminal_interface-curses__ads.htm#ref_883_7">Lower_Left_Corner_Symbol</a>,
+ <a href="terminal_interface-curses__ads.htm#ref_884_7">Lower_Right_Corner_Symbol</a>) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a>
<b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_875_14">Border</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_875_14">Border</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_475_14" HREF="terminal_interface-curses__ads.htm#ref_891_14">Box</A></span>
- (<span class="symbol"><A NAME="ref_476_7" HREF="terminal_interface-curses__ads.htm#ref_892_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_477_7" HREF="terminal_interface-curses__ads.htm#ref_893_7">Vertical_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</A>;
- <span class="symbol"><A NAME="ref_478_7" HREF="terminal_interface-curses__ads.htm#ref_894_7">Horizontal_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_475_14" href="terminal_interface-curses__ads.htm#ref_891_14">Box</a></span>
+ (<span class="symbol"><a name="ref_476_7" href="terminal_interface-curses__ads.htm#ref_892_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_477_7" href="terminal_interface-curses__ads.htm#ref_893_7">Vertical_Symbol</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a> := <a href="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</a>;
+ <span class="symbol"><a name="ref_478_7" href="terminal_interface-curses__ads.htm#ref_894_7">Horizontal_Symbol</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a> := <a href="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</a>)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#ref_875_14">Border</A> (<A HREF="terminal_interface-curses__ads.htm#ref_892_7">Win</A>,
- <A HREF="terminal_interface-curses__ads.htm#ref_893_7">Vertical_Symbol</A>, <A HREF="terminal_interface-curses__ads.htm#ref_893_7">Vertical_Symbol</A>,
- <A HREF="terminal_interface-curses__ads.htm#ref_894_7">Horizontal_Symbol</A>, <A HREF="terminal_interface-curses__ads.htm#ref_894_7">Horizontal_Symbol</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_891_14">Box</A>;
+ <a href="terminal_interface-curses__ads.htm#ref_875_14">Border</a> (<a href="terminal_interface-curses__ads.htm#ref_892_7">Win</a>,
+ <a href="terminal_interface-curses__ads.htm#ref_893_7">Vertical_Symbol</a>, <a href="terminal_interface-curses__ads.htm#ref_893_7">Vertical_Symbol</a>,
+ <a href="terminal_interface-curses__ads.htm#ref_894_7">Horizontal_Symbol</a>, <a href="terminal_interface-curses__ads.htm#ref_894_7">Horizontal_Symbol</a>);
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_891_14">Box</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_486_14" HREF="terminal_interface-curses__ads.htm#ref_899_14">Horizontal_Line</A></span>
- (<span class="symbol"><A NAME="ref_487_7" HREF="terminal_interface-curses__ads.htm#ref_900_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_488_7" HREF="terminal_interface-curses__ads.htm#ref_901_7">Line_Size</A></span> : Natural;
- <span class="symbol"><A NAME="ref_489_7" HREF="terminal_interface-curses__ads.htm#ref_902_7">Line_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_486_14" href="terminal_interface-curses__ads.htm#ref_899_14">Horizontal_Line</a></span>
+ (<span class="symbol"><a name="ref_487_7" href="terminal_interface-curses__ads.htm#ref_900_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_488_7" href="terminal_interface-curses__ads.htm#ref_901_7">Line_Size</a></span> : Natural;
+ <span class="symbol"><a name="ref_489_7" href="terminal_interface-curses__ads.htm#ref_902_7">Line_Symbol</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a> := <a href="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_491_16">Whline</A></span> (<span class="symbol"><A NAME="ref_491_24" HREF="terminal_interface-curses__adb.htm#ref_491_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_492_24" HREF="terminal_interface-curses__adb.htm#ref_491_16">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>;
- <span class="symbol"><A NAME="ref_493_24" HREF="terminal_interface-curses__adb.htm#ref_491_16">Len</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_491_16">Whline</a></span> (<span class="symbol"><a name="ref_491_24">W</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_492_24">Ch</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>;
+ <span class="symbol"><a name="ref_493_24">Len</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Whline, "whline");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_491_16">Whline</A> (<A HREF="terminal_interface-curses__ads.htm#ref_900_7">Win</A>,
- <A HREF="terminal_interface-curses__ads.htm#ref_902_7">Line_Symbol</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_901_7">Line_Size</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A>
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_491_16">Whline</a> (<a href="terminal_interface-curses__ads.htm#ref_900_7">Win</a>,
+ <a href="terminal_interface-curses__ads.htm#ref_902_7">Line_Symbol</a>,
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_901_7">Line_Size</a>)) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a>
<b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_899_14">Horizontal_Line</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_899_14">Horizontal_Line</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_504_14" HREF="terminal_interface-curses__ads.htm#ref_908_14">Vertical_Line</A></span>
- (<span class="symbol"><A NAME="ref_505_7" HREF="terminal_interface-curses__ads.htm#ref_909_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_506_7" HREF="terminal_interface-curses__ads.htm#ref_910_7">Line_Size</A></span> : Natural;
- <span class="symbol"><A NAME="ref_507_7" HREF="terminal_interface-curses__ads.htm#ref_911_7">Line_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_504_14" href="terminal_interface-curses__ads.htm#ref_908_14">Vertical_Line</a></span>
+ (<span class="symbol"><a name="ref_505_7" href="terminal_interface-curses__ads.htm#ref_909_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_506_7" href="terminal_interface-curses__ads.htm#ref_910_7">Line_Size</a></span> : Natural;
+ <span class="symbol"><a name="ref_507_7" href="terminal_interface-curses__ads.htm#ref_911_7">Line_Symbol</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a> := <a href="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_509_16">Wvline</A></span> (<span class="symbol"><A NAME="ref_509_24" HREF="terminal_interface-curses__adb.htm#ref_509_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_510_24" HREF="terminal_interface-curses__adb.htm#ref_509_16">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>;
- <span class="symbol"><A NAME="ref_511_24" HREF="terminal_interface-curses__adb.htm#ref_509_16">Len</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_509_16">Wvline</a></span> (<span class="symbol"><a name="ref_509_24">W</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_510_24">Ch</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>;
+ <span class="symbol"><a name="ref_511_24">Len</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Wvline, "wvline");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_509_16">Wvline</A> (<A HREF="terminal_interface-curses__ads.htm#ref_909_7">Win</A>,
- <A HREF="terminal_interface-curses__ads.htm#ref_911_7">Line_Symbol</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_910_7">Line_Size</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A>
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_509_16">Wvline</a> (<a href="terminal_interface-curses__ads.htm#ref_909_7">Win</a>,
+ <a href="terminal_interface-curses__ads.htm#ref_911_7">Line_Symbol</a>,
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_910_7">Line_Size</a>)) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a>
<b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_908_14">Vertical_Line</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_908_14">Vertical_Line</a>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_523_13" HREF="terminal_interface-curses__ads.htm#ref_922_13">Get_Keystroke</A></span> (<span class="symbol"><A NAME="ref_523_28" HREF="terminal_interface-curses__ads.htm#ref_922_28">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>)
- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_72_12">Real_Key_Code</A>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_523_13" href="terminal_interface-curses__ads.htm#ref_922_13">Get_Keystroke</a></span> (<span class="symbol"><a name="ref_523_28" href="terminal_interface-curses__ads.htm#ref_922_28">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>)
+ <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_72_12">Real_Key_Code</a>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_526_16">Wgetch</A></span> (<span class="symbol"><A NAME="ref_526_24" HREF="terminal_interface-curses__adb.htm#ref_526_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_526_16">Wgetch</a></span> (<span class="symbol"><a name="ref_526_24">W</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Wgetch, "wgetch");
- <span class="symbol"><A NAME="ref_529_7">C</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_526_16">Wgetch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_922_28">Win</A>);
+ <span class="symbol"><a name="ref_529_7">C</a></span> : <b>constant</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> := <a href="terminal_interface-curses__adb.htm#ref_526_16">Wgetch</a> (<a href="terminal_interface-curses__ads.htm#ref_922_28">Win</a>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_529_7">C</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_89_4">Key_None</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_529_7">C</a> = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_89_4">Key_None</a>;
<b>else</b>
- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_72_12">Real_Key_Code</A> (<A HREF="terminal_interface-curses__adb.htm#ref_529_7">C</A>);
+ <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_72_12">Real_Key_Code</a> (<a href="terminal_interface-curses__adb.htm#ref_529_7">C</a>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_922_13">Get_Keystroke</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_922_13">Get_Keystroke</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_538_14" HREF="terminal_interface-curses__ads.htm#ref_933_14">Undo_Keystroke</A></span> (<span class="symbol"><A NAME="ref_538_30" HREF="terminal_interface-curses__ads.htm#ref_933_30">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_72_12">Real_Key_Code</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_538_14" href="terminal_interface-curses__ads.htm#ref_933_14">Undo_Keystroke</a></span> (<span class="symbol"><a name="ref_538_30" href="terminal_interface-curses__ads.htm#ref_933_30">Key</a></span> : <a href="terminal_interface-curses__ads.htm#ref_72_12">Real_Key_Code</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_540_16">Ungetch</A></span> (<span class="symbol"><A NAME="ref_540_25" HREF="terminal_interface-curses__adb.htm#ref_540_16">Ch</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_540_16">Ungetch</a></span> (<span class="symbol"><a name="ref_540_25">Ch</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Ungetch, "ungetch");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_540_16">Ungetch</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_933_30">Key</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_540_16">Ungetch</a> (<a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_933_30">Key</a>)) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_933_14">Undo_Keystroke</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_933_14">Undo_Keystroke</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_548_13" HREF="terminal_interface-curses__ads.htm#ref_938_13">Has_Key</A></span> (<span class="symbol"><A NAME="ref_548_22" HREF="terminal_interface-curses__ads.htm#ref_938_22">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>) <b>return</b> Boolean
+ <b>function</b> <span class="symbol"><a name="ref_548_13" href="terminal_interface-curses__ads.htm#ref_938_13">Has_Key</a></span> (<span class="symbol"><a name="ref_548_22" href="terminal_interface-curses__ads.htm#ref_938_22">Key</a></span> : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>) <b>return</b> Boolean
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_550_16">Haskey</A></span> (<span class="symbol"><A NAME="ref_550_24" HREF="terminal_interface-curses__adb.htm#ref_550_16">Key</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_550_16">Haskey</a></span> (<span class="symbol"><a name="ref_550_24">Key</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Haskey, "has_key");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_550_16">Haskey</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_938_22">Key</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_67_4">Curses_False</A> <b>then</b>
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_550_16">Haskey</a> (<a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_938_22">Key</a>)) = <a href="terminal_interface-curses-aux__ads.htm#ref_67_4">Curses_False</a> <b>then</b>
<b>return</b> False;
<b>else</b>
<b>return</b> True;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_938_13">Has_Key</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_938_13">Has_Key</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_560_13" HREF="terminal_interface-curses__ads.htm#ref_945_13">Is_Function_Key</A></span> (<span class="symbol"><A NAME="ref_560_30" HREF="terminal_interface-curses__ads.htm#ref_945_30">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>) <b>return</b> Boolean
+ <b>function</b> <span class="symbol"><a name="ref_560_13" href="terminal_interface-curses__ads.htm#ref_945_13">Is_Function_Key</a></span> (<span class="symbol"><a name="ref_560_30" href="terminal_interface-curses__ads.htm#ref_945_30">Key</a></span> : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>) <b>return</b> Boolean
<b>is</b>
- <span class="symbol"><A NAME="ref_562_7">L</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> (Natural (<A HREF="terminal_interface-curses__ads.htm#ref_111_4">Key_F0</A>) +
- Natural (<A HREF="terminal_interface-curses__ads.htm#ref_949_12">Function_Key_Number</A>'Last));
+ <span class="symbol"><a name="ref_562_7">L</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> := <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> (Natural (<a href="terminal_interface-curses__ads.htm#ref_111_4">Key_F0</a>) +
+ Natural (<a href="terminal_interface-curses__ads.htm#ref_949_12">Function_Key_Number</a>'Last));
<b>begin</b>
- <b>if</b> (<A HREF="terminal_interface-curses__ads.htm#ref_945_30">Key</A> &gt;= <A HREF="terminal_interface-curses__ads.htm#ref_111_4">Key_F0</A>) <b>and</b> <b>then</b> (<A HREF="terminal_interface-curses__ads.htm#ref_945_30">Key</A> &lt;= <A HREF="terminal_interface-curses__adb.htm#ref_562_7">L</A>) <b>then</b>
+ <b>if</b> <a href="terminal_interface-curses__ads.htm#ref_945_30">Key</a> &gt;= <a href="terminal_interface-curses__ads.htm#ref_111_4">Key_F0</a> <b>and</b> <b>then</b> <a href="terminal_interface-curses__ads.htm#ref_945_30">Key</a> &lt;= <a href="terminal_interface-curses__adb.htm#ref_562_7">L</a> <b>then</b>
<b>return</b> True;
<b>else</b>
<b>return</b> False;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_945_13">Is_Function_Key</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_945_13">Is_Function_Key</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_572_13" HREF="terminal_interface-curses__ads.htm#ref_952_13">Function_Key</A></span> (<span class="symbol"><A NAME="ref_572_27" HREF="terminal_interface-curses__ads.htm#ref_952_27">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_72_12">Real_Key_Code</A>)
- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_949_12">Function_Key_Number</A>
+ <b>function</b> <span class="symbol"><a name="ref_572_13" href="terminal_interface-curses__ads.htm#ref_952_13">Function_Key</a></span> (<span class="symbol"><a name="ref_572_27" href="terminal_interface-curses__ads.htm#ref_952_27">Key</a></span> : <a href="terminal_interface-curses__ads.htm#ref_72_12">Real_Key_Code</a>)
+ <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_949_12">Function_Key_Number</a>
<b>is</b>
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_945_13">Is_Function_Key</A> (<A HREF="terminal_interface-curses__ads.htm#ref_952_27">Key</A>) <b>then</b>
- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_949_12">Function_Key_Number</A> (<A HREF="terminal_interface-curses__ads.htm#ref_952_27">Key</A> - <A HREF="terminal_interface-curses__ads.htm#ref_111_4">Key_F0</A>);
+ <b>if</b> <a href="terminal_interface-curses__ads.htm#ref_945_13">Is_Function_Key</a> (<a href="terminal_interface-curses__ads.htm#ref_952_27">Key</a>) <b>then</b>
+ <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_949_12">Function_Key_Number</a> (<a href="terminal_interface-curses__ads.htm#ref_952_27">Key</a> - <a href="terminal_interface-curses__ads.htm#ref_111_4">Key_F0</a>);
<b>else</b>
<b>raise</b> Constraint_Error;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_952_13">Function_Key</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_952_13">Function_Key</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_583_13" HREF="terminal_interface-curses__ads.htm#ref_957_13">Function_Key_Code</A></span> (<span class="symbol"><A NAME="ref_583_32" HREF="terminal_interface-curses__ads.htm#ref_957_32">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_949_12">Function_Key_Number</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_72_12">Real_Key_Code</A>
+ <b>function</b> <span class="symbol"><a name="ref_583_13" href="terminal_interface-curses__ads.htm#ref_957_13">Function_Key_Code</a></span> (<span class="symbol"><a name="ref_583_32" href="terminal_interface-curses__ads.htm#ref_957_32">Key</a></span> : <a href="terminal_interface-curses__ads.htm#ref_949_12">Function_Key_Number</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_72_12">Real_Key_Code</a>
<b>is</b>
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_72_12">Real_Key_Code</A> (Natural (<A HREF="terminal_interface-curses__ads.htm#ref_111_4">Key_F0</A>) + Natural (<A HREF="terminal_interface-curses__ads.htm#ref_957_32">Key</A>));
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_957_13">Function_Key_Code</A>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_589_14" HREF="terminal_interface-curses__ads.htm#ref_971_14">Standout</A></span> (<span class="symbol"><A NAME="ref_589_24" HREF="terminal_interface-curses__ads.htm#ref_971_24">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_590_24" HREF="terminal_interface-curses__ads.htm#ref_972_24">On</A></span> : Boolean := True)
+ <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_72_12">Real_Key_Code</a> (Natural (<a href="terminal_interface-curses__ads.htm#ref_111_4">Key_F0</a>) + Natural (<a href="terminal_interface-curses__ads.htm#ref_957_32">Key</a>));
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_957_13">Function_Key_Code</a>;
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_589_14" href="terminal_interface-curses__ads.htm#ref_971_14">Standout</a></span> (<span class="symbol"><a name="ref_589_24" href="terminal_interface-curses__ads.htm#ref_971_24">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_590_24" href="terminal_interface-curses__ads.htm#ref_972_24">On</a></span> : Boolean := True)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_592_16">wstandout</A></span> (<span class="symbol"><A NAME="ref_592_27" HREF="terminal_interface-curses__adb.htm#ref_592_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_592_16">wstandout</a></span> (<span class="symbol"><a name="ref_592_27">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, wstandout, "wstandout");
- <b>function</b> <span class="symbol"><A NAME="ref_594_16">wstandend</A></span> (<span class="symbol"><A NAME="ref_594_27" HREF="terminal_interface-curses__adb.htm#ref_594_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_594_16">wstandend</a></span> (<span class="symbol"><a name="ref_594_27">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, wstandend, "wstandend");
- <span class="symbol"><A NAME="ref_597_7">Err</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <span class="symbol"><a name="ref_597_7">Err</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_972_24">On</A> <b>then</b>
- <A HREF="terminal_interface-curses__adb.htm#ref_597_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_592_16">wstandout</A> (<A HREF="terminal_interface-curses__ads.htm#ref_971_24">Win</A>);
+ <b>if</b> <a href="terminal_interface-curses__ads.htm#ref_972_24">On</a> <b>then</b>
+ <a href="terminal_interface-curses__adb.htm#ref_597_7">Err</a> := <a href="terminal_interface-curses__adb.htm#ref_592_16">wstandout</a> (<a href="terminal_interface-curses__ads.htm#ref_971_24">Win</a>);
<b>else</b>
- <A HREF="terminal_interface-curses__adb.htm#ref_597_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_594_16">wstandend</A> (<A HREF="terminal_interface-curses__ads.htm#ref_971_24">Win</A>);
+ <a href="terminal_interface-curses__adb.htm#ref_597_7">Err</a> := <a href="terminal_interface-curses__adb.htm#ref_594_16">wstandend</a> (<a href="terminal_interface-curses__ads.htm#ref_971_24">Win</a>);
<b>end</b> <b>if</b>;
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_597_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_597_7">Err</a> = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_971_14">Standout</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_971_14">Standout</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_609_14" HREF="terminal_interface-curses__ads.htm#ref_977_14">Switch_Character_Attribute</A></span>
- (<span class="symbol"><A NAME="ref_610_7" HREF="terminal_interface-curses__ads.htm#ref_978_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_611_7" HREF="terminal_interface-curses__ads.htm#ref_979_7">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</A>;
- <span class="symbol"><A NAME="ref_612_7" HREF="terminal_interface-curses__ads.htm#ref_980_7">On</A></span> : Boolean := True)
+ <b>procedure</b> <span class="symbol"><a name="ref_609_14" href="terminal_interface-curses__ads.htm#ref_977_14">Switch_Character_Attribute</a></span>
+ (<span class="symbol"><a name="ref_610_7" href="terminal_interface-curses__ads.htm#ref_978_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_611_7" href="terminal_interface-curses__ads.htm#ref_979_7">Attr</a></span> : <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a> := <a href="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</a>;
+ <span class="symbol"><a name="ref_612_7" href="terminal_interface-curses__ads.htm#ref_980_7">On</a></span> : Boolean := True)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_614_16">Wattron</A></span> (<span class="symbol"><A NAME="ref_614_25" HREF="terminal_interface-curses__adb.htm#ref_614_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_615_25" HREF="terminal_interface-curses__adb.htm#ref_614_16">C_Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_614_16">Wattron</a></span> (<span class="symbol"><a name="ref_614_25">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_615_25">C_Attr</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Wattron, "wattr_on");
- <b>function</b> <span class="symbol"><A NAME="ref_617_16">Wattroff</A></span> (<span class="symbol"><A NAME="ref_617_26" HREF="terminal_interface-curses__adb.htm#ref_617_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_618_26" HREF="terminal_interface-curses__adb.htm#ref_617_16">C_Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_617_16">Wattroff</a></span> (<span class="symbol"><a name="ref_617_26">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_618_26">C_Attr</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Wattroff, "wattr_off");
- <span class="comment"><EM>-- In Ada we use the On Boolean to control whether or not we want to</EM></span>
- <span class="comment"><EM>-- switch on or off the attributes in the set.</EM></span>
- <span class="symbol"><A NAME="ref_622_7">Err</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_623_7">AC</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_492_10">Ch</A> =&gt; Character'First,
- <A HREF="terminal_interface-curses__ads.htm#ref_491_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>'First,
- <A HREF="terminal_interface-curses__ads.htm#ref_490_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_979_7">Attr</A>);
- <b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_980_7">On</A> <b>then</b>
- <A HREF="terminal_interface-curses__adb.htm#ref_622_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_614_16">Wattron</A> (<A HREF="terminal_interface-curses__ads.htm#ref_978_7">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_623_7">AC</A>);
+ <span class="comment"><em>-- In Ada we use the On Boolean to control whether or not we want to</em></span>
+ <span class="comment"><em>-- switch on or off the attributes in the set.</em></span>
+ <span class="symbol"><a name="ref_622_7">Err</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_623_7">AC</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a> := (<a href="terminal_interface-curses__ads.htm#ref_492_10">Ch</a> =&gt; Character'First,
+ <a href="terminal_interface-curses__ads.htm#ref_491_10">Color</a> =&gt; <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>'First,
+ <a href="terminal_interface-curses__ads.htm#ref_490_10">Attr</a> =&gt; <a href="terminal_interface-curses__ads.htm#ref_979_7">Attr</a>);
+ <b>begin</b>
+ <b>if</b> <a href="terminal_interface-curses__ads.htm#ref_980_7">On</a> <b>then</b>
+ <a href="terminal_interface-curses__adb.htm#ref_622_7">Err</a> := <a href="terminal_interface-curses__adb.htm#ref_614_16">Wattron</a> (<a href="terminal_interface-curses__ads.htm#ref_978_7">Win</a>, <a href="terminal_interface-curses__adb.htm#ref_623_7">AC</a>);
<b>else</b>
- <A HREF="terminal_interface-curses__adb.htm#ref_622_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_617_16">Wattroff</A> (<A HREF="terminal_interface-curses__ads.htm#ref_978_7">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_623_7">AC</A>);
+ <a href="terminal_interface-curses__adb.htm#ref_622_7">Err</a> := <a href="terminal_interface-curses__adb.htm#ref_617_16">Wattroff</a> (<a href="terminal_interface-curses__ads.htm#ref_978_7">Win</a>, <a href="terminal_interface-curses__adb.htm#ref_623_7">AC</a>);
<b>end</b> <b>if</b>;
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_622_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_622_7">Err</a> = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_977_14">Switch_Character_Attribute</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_977_14">Switch_Character_Attribute</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_637_14" HREF="terminal_interface-curses__ads.htm#ref_988_14">Set_Character_Attributes</A></span>
- (<span class="symbol"><A NAME="ref_638_7" HREF="terminal_interface-curses__ads.htm#ref_989_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_639_7" HREF="terminal_interface-curses__ads.htm#ref_990_7">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</A>;
- <span class="symbol"><A NAME="ref_640_7" HREF="terminal_interface-curses__ads.htm#ref_991_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>'First)
+ <b>procedure</b> <span class="symbol"><a name="ref_637_14" href="terminal_interface-curses__ads.htm#ref_988_14">Set_Character_Attributes</a></span>
+ (<span class="symbol"><a name="ref_638_7" href="terminal_interface-curses__ads.htm#ref_989_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_639_7" href="terminal_interface-curses__ads.htm#ref_990_7">Attr</a></span> : <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a> := <a href="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</a>;
+ <span class="symbol"><a name="ref_640_7" href="terminal_interface-curses__ads.htm#ref_991_7">Color</a></span> : <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a> := <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>'First)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_642_16">Wattrset</A></span> (<span class="symbol"><A NAME="ref_642_26" HREF="terminal_interface-curses__adb.htm#ref_642_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_643_26" HREF="terminal_interface-curses__adb.htm#ref_642_16">C_Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <b>pragma</b> Import (C, Wattrset, "wattrset"); <span class="comment"><EM>-- ??? wattr_set</EM></span>
+ <b>function</b> <span class="symbol"><a name="ref_642_16">Wattrset</a></span> (<span class="symbol"><a name="ref_642_26">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_643_26">C_Attr</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <b>pragma</b> Import (C, Wattrset, "wattrset"); <span class="comment"><em>-- ??? wattr_set</em></span>
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_642_16">Wattrset</A> (<A HREF="terminal_interface-curses__ads.htm#ref_989_7">Win</A>, (<A HREF="terminal_interface-curses__ads.htm#ref_492_10">Ch</A> =&gt; Character'First,
- <A HREF="terminal_interface-curses__ads.htm#ref_491_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_991_7">Color</A>,
- <A HREF="terminal_interface-curses__ads.htm#ref_490_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_990_7">Attr</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A>
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_642_16">Wattrset</a> (<a href="terminal_interface-curses__ads.htm#ref_989_7">Win</a>, (<a href="terminal_interface-curses__ads.htm#ref_492_10">Ch</a> =&gt; Character'First,
+ <a href="terminal_interface-curses__ads.htm#ref_491_10">Color</a> =&gt; <a href="terminal_interface-curses__ads.htm#ref_991_7">Color</a>,
+ <a href="terminal_interface-curses__ads.htm#ref_490_10">Attr</a> =&gt; <a href="terminal_interface-curses__ads.htm#ref_990_7">Attr</a>)) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a>
<b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_988_14">Set_Character_Attributes</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_988_14">Set_Character_Attributes</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_654_13" HREF="terminal_interface-curses__ads.htm#ref_997_13">Get_Character_Attribute</A></span> (<span class="symbol"><A NAME="ref_654_38" HREF="terminal_interface-curses__ads.htm#ref_998_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>)
- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A>
+ <b>function</b> <span class="symbol"><a name="ref_654_13" href="terminal_interface-curses__ads.htm#ref_997_13">Get_Character_Attribute</a></span> (<span class="symbol"><a name="ref_654_38" href="terminal_interface-curses__ads.htm#ref_998_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>)
+ <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_657_16">Wattrget</A></span> (<span class="symbol"><A NAME="ref_657_26" HREF="terminal_interface-curses__adb.htm#ref_657_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_658_26" HREF="terminal_interface-curses__adb.htm#ref_657_16">Atr</A></span> : <b>access</b> <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>;
- <span class="symbol"><A NAME="ref_659_26" HREF="terminal_interface-curses__adb.htm#ref_657_16">Col</A></span> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</A>;
- <span class="symbol"><A NAME="ref_660_26" HREF="terminal_interface-curses__adb.htm#ref_657_16">Opt</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_657_16">Wattrget</a></span> (<span class="symbol"><a name="ref_657_26">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_658_26">Atr</a></span> : <b>access</b> <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>;
+ <span class="symbol"><a name="ref_659_26">Col</a></span> : <b>access</b> <a href="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</a>;
+ <span class="symbol"><a name="ref_660_26">Opt</a></span> : System.Address) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Wattrget, "wattr_get");
- <span class="symbol"><A NAME="ref_663_7">Attr</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>;
- <span class="symbol"><A NAME="ref_664_7">Col</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</A>;
- <span class="symbol"><A NAME="ref_665_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_657_16">Wattrget</A> (<A HREF="terminal_interface-curses__ads.htm#ref_998_7">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_663_7">Attr</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_664_7">Col</A>'<b>Access</b>,
+ <span class="symbol"><a name="ref_663_7">Attr</a></span> : <b>aliased</b> <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>;
+ <span class="symbol"><a name="ref_664_7">Col</a></span> : <b>aliased</b> <a href="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</a>;
+ <span class="symbol"><a name="ref_665_7">Res</a></span> : <b>constant</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> := <a href="terminal_interface-curses__adb.htm#ref_657_16">Wattrget</a> (<a href="terminal_interface-curses__ads.htm#ref_998_7">Win</a>, <a href="terminal_interface-curses__adb.htm#ref_663_7">Attr</a>'<b>Access</b>, <a href="terminal_interface-curses__adb.htm#ref_664_7">Col</a>'<b>Access</b>,
System.Null_Address);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_665_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_4">Curses_Ok</A> <b>then</b>
- <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_663_7">Attr</A>.<A HREF="terminal_interface-curses__ads.htm#ref_490_10">Attr</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_665_7">Res</a> = <a href="terminal_interface-curses-aux__ads.htm#ref_63_4">Curses_Ok</a> <b>then</b>
+ <b>return</b> <a href="terminal_interface-curses__adb.htm#ref_663_7">Attr</a>.<a href="terminal_interface-curses__ads.htm#ref_490_10">Attr</a>;
<b>else</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_997_13">Get_Character_Attribute</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_997_13">Get_Character_Attribute</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_675_13" HREF="terminal_interface-curses__ads.htm#ref_1003_13">Get_Character_Attribute</A></span> (<span class="symbol"><A NAME="ref_675_38" HREF="terminal_interface-curses__ads.htm#ref_1004_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>)
- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>
+ <b>function</b> <span class="symbol"><a name="ref_675_13" href="terminal_interface-curses__ads.htm#ref_1003_13">Get_Character_Attribute</a></span> (<span class="symbol"><a name="ref_675_38" href="terminal_interface-curses__ads.htm#ref_1004_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>)
+ <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_678_16">Wattrget</A></span> (<span class="symbol"><A NAME="ref_678_26" HREF="terminal_interface-curses__adb.htm#ref_678_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_679_26" HREF="terminal_interface-curses__adb.htm#ref_678_16">Atr</A></span> : <b>access</b> <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>;
- <span class="symbol"><A NAME="ref_680_26" HREF="terminal_interface-curses__adb.htm#ref_678_16">Col</A></span> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</A>;
- <span class="symbol"><A NAME="ref_681_26" HREF="terminal_interface-curses__adb.htm#ref_678_16">Opt</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_678_16">Wattrget</a></span> (<span class="symbol"><a name="ref_678_26">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_679_26">Atr</a></span> : <b>access</b> <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>;
+ <span class="symbol"><a name="ref_680_26">Col</a></span> : <b>access</b> <a href="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</a>;
+ <span class="symbol"><a name="ref_681_26">Opt</a></span> : System.Address) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Wattrget, "wattr_get");
- <span class="symbol"><A NAME="ref_684_7">Attr</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>;
- <span class="symbol"><A NAME="ref_685_7">Col</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</A>;
- <span class="symbol"><A NAME="ref_686_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_678_16">Wattrget</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1004_7">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_684_7">Attr</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_685_7">Col</A>'<b>Access</b>,
+ <span class="symbol"><a name="ref_684_7">Attr</a></span> : <b>aliased</b> <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>;
+ <span class="symbol"><a name="ref_685_7">Col</a></span> : <b>aliased</b> <a href="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</a>;
+ <span class="symbol"><a name="ref_686_7">Res</a></span> : <b>constant</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> := <a href="terminal_interface-curses__adb.htm#ref_678_16">Wattrget</a> (<a href="terminal_interface-curses__ads.htm#ref_1004_7">Win</a>, <a href="terminal_interface-curses__adb.htm#ref_684_7">Attr</a>'<b>Access</b>, <a href="terminal_interface-curses__adb.htm#ref_685_7">Col</a>'<b>Access</b>,
System.Null_Address);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_686_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_4">Curses_Ok</A> <b>then</b>
- <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_684_7">Attr</A>.<A HREF="terminal_interface-curses__ads.htm#ref_491_10">Color</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_686_7">Res</a> = <a href="terminal_interface-curses-aux__ads.htm#ref_63_4">Curses_Ok</a> <b>then</b>
+ <b>return</b> <a href="terminal_interface-curses__adb.htm#ref_684_7">Attr</a>.<a href="terminal_interface-curses__ads.htm#ref_491_10">Color</a>;
<b>else</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1003_13">Get_Character_Attribute</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1003_13">Get_Character_Attribute</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_696_14" HREF="terminal_interface-curses__ads.htm#ref_1009_14">Set_Color</A></span> (<span class="symbol"><A NAME="ref_696_25" HREF="terminal_interface-curses__ads.htm#ref_1009_25">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_697_25" HREF="terminal_interface-curses__ads.htm#ref_1010_25">Pair</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_696_14" href="terminal_interface-curses__ads.htm#ref_1009_14">Set_Color</a></span> (<span class="symbol"><a name="ref_696_25" href="terminal_interface-curses__ads.htm#ref_1009_25">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_697_25" href="terminal_interface-curses__ads.htm#ref_1010_25">Pair</a></span> : <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_699_16">Wset_Color</A></span> (<span class="symbol"><A NAME="ref_699_28" HREF="terminal_interface-curses__adb.htm#ref_699_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_700_28" HREF="terminal_interface-curses__adb.htm#ref_699_16">Color</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</A>;
- <span class="symbol"><A NAME="ref_701_28" HREF="terminal_interface-curses__adb.htm#ref_699_16">Opts</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Void_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_699_16">Wset_Color</a></span> (<span class="symbol"><a name="ref_699_28">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_700_28">Color</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</a>;
+ <span class="symbol"><a name="ref_701_28">Opts</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Void_Ptr</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Wset_Color, "wcolor_set");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_699_16">Wset_Color</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1009_25">Win</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1010_25">Pair</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Void_Ptr</A> (System.Null_Address)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A>
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_699_16">Wset_Color</a> (<a href="terminal_interface-curses__ads.htm#ref_1009_25">Win</a>,
+ <a href="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</a> (<a href="terminal_interface-curses__ads.htm#ref_1010_25">Pair</a>),
+ <a href="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Void_Ptr</a> (System.Null_Address)) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a>
<b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
- <b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1009_14">Set_Color</A>;
-
- <b>procedure</b> <span class="symbol"><A NAME="ref_712_14" HREF="terminal_interface-curses__ads.htm#ref_1016_14">Change_Attributes</A></span>
- (<span class="symbol"><A NAME="ref_713_7" HREF="terminal_interface-curses__ads.htm#ref_1017_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_714_7" HREF="terminal_interface-curses__ads.htm#ref_1018_7">Count</A></span> : Integer := -1;
- <span class="symbol"><A NAME="ref_715_7" HREF="terminal_interface-curses__ads.htm#ref_1019_7">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</A>;
- <span class="symbol"><A NAME="ref_716_7" HREF="terminal_interface-curses__ads.htm#ref_1020_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>'First)
- <b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_718_16">Wchgat</A></span> (<span class="symbol"><A NAME="ref_718_24" HREF="terminal_interface-curses__adb.htm#ref_718_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_719_24" HREF="terminal_interface-curses__adb.htm#ref_718_16">Cnt</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_720_24" HREF="terminal_interface-curses__adb.htm#ref_718_16">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>;
- <span class="symbol"><A NAME="ref_721_24" HREF="terminal_interface-curses__adb.htm#ref_718_16">Color</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</A>;
- <span class="symbol"><A NAME="ref_722_24" HREF="terminal_interface-curses__adb.htm#ref_718_16">Opts</A></span> : System.Address := System.Null_Address)
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
+ <b>end</b> <b>if</b>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1009_14">Set_Color</a>;
+
+ <b>procedure</b> <span class="symbol"><a name="ref_712_14" href="terminal_interface-curses__ads.htm#ref_1016_14">Change_Attributes</a></span>
+ (<span class="symbol"><a name="ref_713_7" href="terminal_interface-curses__ads.htm#ref_1017_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_714_7" href="terminal_interface-curses__ads.htm#ref_1018_7">Count</a></span> : Integer := -1;
+ <span class="symbol"><a name="ref_715_7" href="terminal_interface-curses__ads.htm#ref_1019_7">Attr</a></span> : <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a> := <a href="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</a>;
+ <span class="symbol"><a name="ref_716_7" href="terminal_interface-curses__ads.htm#ref_1020_7">Color</a></span> : <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a> := <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>'First)
+ <b>is</b>
+ <b>function</b> <span class="symbol"><a name="ref_718_16">Wchgat</a></span> (<span class="symbol"><a name="ref_718_24">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_719_24">Cnt</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_720_24">Attr</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>;
+ <span class="symbol"><a name="ref_721_24">Color</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</a>;
+ <span class="symbol"><a name="ref_722_24">Opts</a></span> : System.Address := System.Null_Address)
+ <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Wchgat, "wchgat");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_718_16">Wchgat</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1017_7">Win</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1018_7">Count</A>),
- (<A HREF="terminal_interface-curses__ads.htm#ref_492_10">Ch</A> =&gt; Character'First,
- <A HREF="terminal_interface-curses__ads.htm#ref_491_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>'First,
- <A HREF="terminal_interface-curses__ads.htm#ref_490_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_1019_7">Attr</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1020_7">Color</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A>
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_718_16">Wchgat</a> (<a href="terminal_interface-curses__ads.htm#ref_1017_7">Win</a>,
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1018_7">Count</a>),
+ (<a href="terminal_interface-curses__ads.htm#ref_492_10">Ch</a> =&gt; Character'First,
+ <a href="terminal_interface-curses__ads.htm#ref_491_10">Color</a> =&gt; <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>'First,
+ <a href="terminal_interface-curses__ads.htm#ref_490_10">Attr</a> =&gt; <a href="terminal_interface-curses__ads.htm#ref_1019_7">Attr</a>),
+ <a href="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</a> (<a href="terminal_interface-curses__ads.htm#ref_1020_7">Color</a>)) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a>
<b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1016_14">Change_Attributes</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1016_14">Change_Attributes</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_737_14" HREF="terminal_interface-curses__ads.htm#ref_1025_14">Change_Attributes</A></span>
- (<span class="symbol"><A NAME="ref_738_7" HREF="terminal_interface-curses__ads.htm#ref_1026_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_739_7" HREF="terminal_interface-curses__ads.htm#ref_1027_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A> := <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>'First;
- <span class="symbol"><A NAME="ref_740_7" HREF="terminal_interface-curses__ads.htm#ref_1028_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>'First;
- <span class="symbol"><A NAME="ref_741_7" HREF="terminal_interface-curses__ads.htm#ref_1029_7">Count</A></span> : Integer := -1;
- <span class="symbol"><A NAME="ref_742_7" HREF="terminal_interface-curses__ads.htm#ref_1030_7">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</A>;
- <span class="symbol"><A NAME="ref_743_7" HREF="terminal_interface-curses__ads.htm#ref_1031_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>'First)
+ <b>procedure</b> <span class="symbol"><a name="ref_737_14" href="terminal_interface-curses__ads.htm#ref_1025_14">Change_Attributes</a></span>
+ (<span class="symbol"><a name="ref_738_7" href="terminal_interface-curses__ads.htm#ref_1026_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_739_7" href="terminal_interface-curses__ads.htm#ref_1027_7">Line</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a> := <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>'First;
+ <span class="symbol"><a name="ref_740_7" href="terminal_interface-curses__ads.htm#ref_1028_7">Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a> := <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>'First;
+ <span class="symbol"><a name="ref_741_7" href="terminal_interface-curses__ads.htm#ref_1029_7">Count</a></span> : Integer := -1;
+ <span class="symbol"><a name="ref_742_7" href="terminal_interface-curses__ads.htm#ref_1030_7">Attr</a></span> : <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a> := <a href="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</a>;
+ <span class="symbol"><a name="ref_743_7" href="terminal_interface-curses__ads.htm#ref_1031_7">Color</a></span> : <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a> := <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>'First)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#ref_682_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1026_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1027_7">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1028_7">Column</A>);
- <A HREF="terminal_interface-curses__ads.htm#ref_1016_14">Change_Attributes</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1026_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1029_7">Count</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1030_7">Attr</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1031_7">Color</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1025_14">Change_Attributes</A>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_750_14" HREF="terminal_interface-curses__ads.htm#ref_1041_14">Beep</A></span>
+ <a href="terminal_interface-curses__ads.htm#ref_682_14">Move_Cursor</a> (<a href="terminal_interface-curses__ads.htm#ref_1026_7">Win</a>, <a href="terminal_interface-curses__ads.htm#ref_1027_7">Line</a>, <a href="terminal_interface-curses__ads.htm#ref_1028_7">Column</a>);
+ <a href="terminal_interface-curses__ads.htm#ref_1016_14">Change_Attributes</a> (<a href="terminal_interface-curses__ads.htm#ref_1026_7">Win</a>, <a href="terminal_interface-curses__ads.htm#ref_1029_7">Count</a>, <a href="terminal_interface-curses__ads.htm#ref_1030_7">Attr</a>, <a href="terminal_interface-curses__ads.htm#ref_1031_7">Color</a>);
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1025_14">Change_Attributes</a>;
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_750_14" href="terminal_interface-curses__ads.htm#ref_1041_14">Beep</a></span>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_752_16">Beeper</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_752_16">Beeper</a></span> <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Beeper, "beep");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_752_16">Beeper</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_752_16">Beeper</a> = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1041_14">Beep</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1041_14">Beep</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_760_14" HREF="terminal_interface-curses__ads.htm#ref_1046_14">Flash_Screen</A></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_760_14" href="terminal_interface-curses__ads.htm#ref_1046_14">Flash_Screen</a></span>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_762_16">Flash</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_762_16">Flash</a></span> <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Flash, "flash");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_762_16">Flash</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_762_16">Flash</a> = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1046_14">Flash_Screen</A>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_770_14" HREF="terminal_interface-curses__ads.htm#ref_1057_14">Set_Cbreak_Mode</A></span> (<span class="symbol"><A NAME="ref_770_31" HREF="terminal_interface-curses__ads.htm#ref_1057_31">SwitchOn</A></span> : Boolean := True)
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1046_14">Flash_Screen</a>;
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_770_14" href="terminal_interface-curses__ads.htm#ref_1057_14">Set_Cbreak_Mode</a></span> (<span class="symbol"><a name="ref_770_31" href="terminal_interface-curses__ads.htm#ref_1057_31">SwitchOn</a></span> : Boolean := True)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_772_16">Cbreak</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_772_16">Cbreak</a></span> <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Cbreak, "cbreak");
- <b>function</b> <span class="symbol"><A NAME="ref_774_16">NoCbreak</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_774_16">NoCbreak</a></span> <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, NoCbreak, "nocbreak");
- <span class="symbol"><A NAME="ref_777_7">Err</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <span class="symbol"><a name="ref_777_7">Err</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1057_31">SwitchOn</A> <b>then</b>
- <A HREF="terminal_interface-curses__adb.htm#ref_777_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_772_16">Cbreak</A>;
+ <b>if</b> <a href="terminal_interface-curses__ads.htm#ref_1057_31">SwitchOn</a> <b>then</b>
+ <a href="terminal_interface-curses__adb.htm#ref_777_7">Err</a> := <a href="terminal_interface-curses__adb.htm#ref_772_16">Cbreak</a>;
<b>else</b>
- <A HREF="terminal_interface-curses__adb.htm#ref_777_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_774_16">NoCbreak</A>;
+ <a href="terminal_interface-curses__adb.htm#ref_777_7">Err</a> := <a href="terminal_interface-curses__adb.htm#ref_774_16">NoCbreak</a>;
<b>end</b> <b>if</b>;
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_777_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_777_7">Err</a> = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1057_14">Set_Cbreak_Mode</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1057_14">Set_Cbreak_Mode</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_789_14" HREF="terminal_interface-curses__ads.htm#ref_1063_14">Set_Raw_Mode</A></span> (<span class="symbol"><A NAME="ref_789_28" HREF="terminal_interface-curses__ads.htm#ref_1063_28">SwitchOn</A></span> : Boolean := True)
+ <b>procedure</b> <span class="symbol"><a name="ref_789_14" href="terminal_interface-curses__ads.htm#ref_1063_14">Set_Raw_Mode</a></span> (<span class="symbol"><a name="ref_789_28" href="terminal_interface-curses__ads.htm#ref_1063_28">SwitchOn</a></span> : Boolean := True)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_791_16">Raw</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_791_16">Raw</a></span> <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Raw, "raw");
- <b>function</b> <span class="symbol"><A NAME="ref_793_16">NoRaw</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_793_16">NoRaw</a></span> <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, NoRaw, "noraw");
- <span class="symbol"><A NAME="ref_796_7">Err</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <span class="symbol"><a name="ref_796_7">Err</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1063_28">SwitchOn</A> <b>then</b>
- <A HREF="terminal_interface-curses__adb.htm#ref_796_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_791_16">Raw</A>;
+ <b>if</b> <a href="terminal_interface-curses__ads.htm#ref_1063_28">SwitchOn</a> <b>then</b>
+ <a href="terminal_interface-curses__adb.htm#ref_796_7">Err</a> := <a href="terminal_interface-curses__adb.htm#ref_791_16">Raw</a>;
<b>else</b>
- <A HREF="terminal_interface-curses__adb.htm#ref_796_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_793_16">NoRaw</A>;
+ <a href="terminal_interface-curses__adb.htm#ref_796_7">Err</a> := <a href="terminal_interface-curses__adb.htm#ref_793_16">NoRaw</a>;
<b>end</b> <b>if</b>;
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_796_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_796_7">Err</a> = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1063_14">Set_Raw_Mode</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1063_14">Set_Raw_Mode</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_808_14" HREF="terminal_interface-curses__ads.htm#ref_1069_14">Set_Echo_Mode</A></span> (<span class="symbol"><A NAME="ref_808_29" HREF="terminal_interface-curses__ads.htm#ref_1069_29">SwitchOn</A></span> : Boolean := True)
+ <b>procedure</b> <span class="symbol"><a name="ref_808_14" href="terminal_interface-curses__ads.htm#ref_1069_14">Set_Echo_Mode</a></span> (<span class="symbol"><a name="ref_808_29" href="terminal_interface-curses__ads.htm#ref_1069_29">SwitchOn</a></span> : Boolean := True)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_810_16">Echo</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_810_16">Echo</a></span> <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Echo, "echo");
- <b>function</b> <span class="symbol"><A NAME="ref_812_16">NoEcho</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_812_16">NoEcho</a></span> <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, NoEcho, "noecho");
- <span class="symbol"><A NAME="ref_815_7">Err</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <span class="symbol"><a name="ref_815_7">Err</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1069_29">SwitchOn</A> <b>then</b>
- <A HREF="terminal_interface-curses__adb.htm#ref_815_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_810_16">Echo</A>;
+ <b>if</b> <a href="terminal_interface-curses__ads.htm#ref_1069_29">SwitchOn</a> <b>then</b>
+ <a href="terminal_interface-curses__adb.htm#ref_815_7">Err</a> := <a href="terminal_interface-curses__adb.htm#ref_810_16">Echo</a>;
<b>else</b>
- <A HREF="terminal_interface-curses__adb.htm#ref_815_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_812_16">NoEcho</A>;
+ <a href="terminal_interface-curses__adb.htm#ref_815_7">Err</a> := <a href="terminal_interface-curses__adb.htm#ref_812_16">NoEcho</a>;
<b>end</b> <b>if</b>;
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_815_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_815_7">Err</a> = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1069_14">Set_Echo_Mode</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1069_14">Set_Echo_Mode</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_827_14" HREF="terminal_interface-curses__ads.htm#ref_1075_14">Set_Meta_Mode</A></span> (<span class="symbol"><A NAME="ref_827_29" HREF="terminal_interface-curses__ads.htm#ref_1075_29">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_828_29" HREF="terminal_interface-curses__ads.htm#ref_1076_29">SwitchOn</A></span> : Boolean := True)
+ <b>procedure</b> <span class="symbol"><a name="ref_827_14" href="terminal_interface-curses__ads.htm#ref_1075_14">Set_Meta_Mode</a></span> (<span class="symbol"><a name="ref_827_29" href="terminal_interface-curses__ads.htm#ref_1075_29">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_828_29" href="terminal_interface-curses__ads.htm#ref_1076_29">SwitchOn</a></span> : Boolean := True)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_830_16">Meta</A></span> (<span class="symbol"><A NAME="ref_830_22" HREF="terminal_interface-curses__adb.htm#ref_830_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>; <span class="symbol"><A NAME="ref_830_34" HREF="terminal_interface-curses__adb.htm#ref_830_16">Mode</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_830_16">Meta</a></span> (<span class="symbol"><a name="ref_830_22">W</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>; <span class="symbol"><a name="ref_830_34">Mode</a></span> : <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Meta, "meta");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_830_16">Meta</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1075_29">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1076_29">SwitchOn</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_830_16">Meta</a> (<a href="terminal_interface-curses__ads.htm#ref_1075_29">Win</a>, <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a> (Boolean'Pos (<a href="terminal_interface-curses__ads.htm#ref_1076_29">SwitchOn</a>))) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1075_14">Set_Meta_Mode</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1075_14">Set_Meta_Mode</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_838_14" HREF="terminal_interface-curses__ads.htm#ref_1081_14">Set_KeyPad_Mode</A></span> (<span class="symbol"><A NAME="ref_838_31" HREF="terminal_interface-curses__ads.htm#ref_1081_31">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_839_31" HREF="terminal_interface-curses__ads.htm#ref_1082_31">SwitchOn</A></span> : Boolean := True)
+ <b>procedure</b> <span class="symbol"><a name="ref_838_14" href="terminal_interface-curses__ads.htm#ref_1081_14">Set_KeyPad_Mode</a></span> (<span class="symbol"><a name="ref_838_31" href="terminal_interface-curses__ads.htm#ref_1081_31">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_839_31" href="terminal_interface-curses__ads.htm#ref_1082_31">SwitchOn</a></span> : Boolean := True)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_841_16">Keypad</A></span> (<span class="symbol"><A NAME="ref_841_24" HREF="terminal_interface-curses__adb.htm#ref_841_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>; <span class="symbol"><A NAME="ref_841_36" HREF="terminal_interface-curses__adb.htm#ref_841_16">Mode</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_841_16">Keypad</a></span> (<span class="symbol"><a name="ref_841_24">W</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>; <span class="symbol"><a name="ref_841_36">Mode</a></span> : <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Keypad, "keypad");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_841_16">Keypad</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1081_31">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1082_31">SwitchOn</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_841_16">Keypad</a> (<a href="terminal_interface-curses__ads.htm#ref_1081_31">Win</a>, <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a> (Boolean'Pos (<a href="terminal_interface-curses__ads.htm#ref_1082_31">SwitchOn</a>))) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1081_14">Set_KeyPad_Mode</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1081_14">Set_KeyPad_Mode</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_849_13" HREF="terminal_interface-curses__ads.htm#ref_1086_13">Get_KeyPad_Mode</A></span> (<span class="symbol"><A NAME="ref_849_30" HREF="terminal_interface-curses__ads.htm#ref_1086_30">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>)
+ <b>function</b> <span class="symbol"><a name="ref_849_13" href="terminal_interface-curses__ads.htm#ref_1086_13">Get_KeyPad_Mode</a></span> (<span class="symbol"><a name="ref_849_30" href="terminal_interface-curses__ads.htm#ref_1086_30">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>)
<b>return</b> Boolean
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_852_16">Is_Keypad</A></span> (<span class="symbol"><A NAME="ref_852_27" HREF="terminal_interface-curses__adb.htm#ref_852_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A>;
+ <b>function</b> <span class="symbol"><a name="ref_852_16">Is_Keypad</a></span> (<span class="symbol"><a name="ref_852_27">W</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a>;
<b>pragma</b> Import (C, Is_Keypad, "is_keypad");
<b>begin</b>
- <b>return</b> (<A HREF="terminal_interface-curses__adb.htm#ref_852_16">Is_Keypad</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1086_30">Win</A>) /= <A HREF="terminal_interface-curses__ads.htm#ref_2101_4">Curses_Bool_False</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1086_13">Get_KeyPad_Mode</A>;
+ <b>return</b> (<a href="terminal_interface-curses__adb.htm#ref_852_16">Is_Keypad</a> (<a href="terminal_interface-curses__ads.htm#ref_1086_30">Win</a>) /= <a href="terminal_interface-curses__ads.htm#ref_2101_4">Curses_Bool_False</a>);
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1086_13">Get_KeyPad_Mode</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_858_14" HREF="terminal_interface-curses__ads.htm#ref_1094_14">Half_Delay</A></span> (<span class="symbol"><A NAME="ref_858_26" HREF="terminal_interface-curses__ads.htm#ref_1094_26">Amount</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1091_9">Half_Delay_Amount</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_858_14" href="terminal_interface-curses__ads.htm#ref_1094_14">Half_Delay</a></span> (<span class="symbol"><a name="ref_858_26" href="terminal_interface-curses__ads.htm#ref_1094_26">Amount</a></span> : <a href="terminal_interface-curses__ads.htm#ref_1091_9">Half_Delay_Amount</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_860_16">Halfdelay</A></span> (<span class="symbol"><A NAME="ref_860_27" HREF="terminal_interface-curses__adb.htm#ref_860_16">Amount</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_860_16">Halfdelay</a></span> (<span class="symbol"><a name="ref_860_27">Amount</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Halfdelay, "halfdelay");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_860_16">Halfdelay</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1094_26">Amount</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_860_16">Halfdelay</a> (<a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1094_26">Amount</a>)) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1094_14">Half_Delay</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1094_14">Half_Delay</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_868_14" HREF="terminal_interface-curses__ads.htm#ref_1099_14">Set_Flush_On_Interrupt_Mode</A></span>
- (<span class="symbol"><A NAME="ref_869_7" HREF="terminal_interface-curses__ads.htm#ref_1100_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_870_7" HREF="terminal_interface-curses__ads.htm#ref_1101_7">Mode</A></span> : Boolean := True)
+ <b>procedure</b> <span class="symbol"><a name="ref_868_14" href="terminal_interface-curses__ads.htm#ref_1099_14">Set_Flush_On_Interrupt_Mode</a></span>
+ (<span class="symbol"><a name="ref_869_7" href="terminal_interface-curses__ads.htm#ref_1100_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_870_7" href="terminal_interface-curses__ads.htm#ref_1101_7">Mode</a></span> : Boolean := True)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_872_16">Intrflush</A></span> (<span class="symbol"><A NAME="ref_872_27" HREF="terminal_interface-curses__adb.htm#ref_872_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>; <span class="symbol"><A NAME="ref_872_41" HREF="terminal_interface-curses__adb.htm#ref_872_16">Mode</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_872_16">Intrflush</a></span> (<span class="symbol"><a name="ref_872_27">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>; <span class="symbol"><a name="ref_872_41">Mode</a></span> : <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Intrflush, "intrflush");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_872_16">Intrflush</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1100_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1101_7">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_872_16">Intrflush</a> (<a href="terminal_interface-curses__ads.htm#ref_1100_7">Win</a>, <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a> (Boolean'Pos (<a href="terminal_interface-curses__ads.htm#ref_1101_7">Mode</a>))) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1099_14">Set_Flush_On_Interrupt_Mode</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1099_14">Set_Flush_On_Interrupt_Mode</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_880_14" HREF="terminal_interface-curses__ads.htm#ref_1106_14">Set_Queue_Interrupt_Mode</A></span>
- (<span class="symbol"><A NAME="ref_881_7" HREF="terminal_interface-curses__ads.htm#ref_1107_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_882_7" HREF="terminal_interface-curses__ads.htm#ref_1108_7">Flush</A></span> : Boolean := True)
+ <b>procedure</b> <span class="symbol"><a name="ref_880_14" href="terminal_interface-curses__ads.htm#ref_1106_14">Set_Queue_Interrupt_Mode</a></span>
+ (<span class="symbol"><a name="ref_881_7" href="terminal_interface-curses__ads.htm#ref_1107_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_882_7" href="terminal_interface-curses__ads.htm#ref_1108_7">Flush</a></span> : Boolean := True)
<b>is</b>
- <b>procedure</b> <span class="symbol"><A NAME="ref_884_17">Qiflush</A></span>;
+ <b>procedure</b> <span class="symbol"><a name="ref_884_17">Qiflush</a></span>;
<b>pragma</b> Import (C, Qiflush, "qiflush");
- <b>procedure</b> <span class="symbol"><A NAME="ref_886_17">No_Qiflush</A></span>;
+ <b>procedure</b> <span class="symbol"><a name="ref_886_17">No_Qiflush</a></span>;
<b>pragma</b> Import (C, No_Qiflush, "noqiflush");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1107_7">Win</A> = <A HREF="terminal_interface-curses__ads.htm#ref_57_4">Null_Window</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__ads.htm#ref_1107_7">Win</a> = <a href="terminal_interface-curses__ads.htm#ref_57_4">Null_Window</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1108_7">Flush</A> <b>then</b>
- <A HREF="terminal_interface-curses__adb.htm#ref_884_17">Qiflush</A>;
+ <b>if</b> <a href="terminal_interface-curses__ads.htm#ref_1108_7">Flush</a> <b>then</b>
+ <a href="terminal_interface-curses__adb.htm#ref_884_17">Qiflush</a>;
<b>else</b>
- <A HREF="terminal_interface-curses__adb.htm#ref_886_17">No_Qiflush</A>;
+ <a href="terminal_interface-curses__adb.htm#ref_886_17">No_Qiflush</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1106_14">Set_Queue_Interrupt_Mode</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1106_14">Set_Queue_Interrupt_Mode</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_899_14" HREF="terminal_interface-curses__ads.htm#ref_1114_14">Set_NoDelay_Mode</A></span>
- (<span class="symbol"><A NAME="ref_900_7" HREF="terminal_interface-curses__ads.htm#ref_1115_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_901_7" HREF="terminal_interface-curses__ads.htm#ref_1116_7">Mode</A></span> : Boolean := False)
+ <b>procedure</b> <span class="symbol"><a name="ref_899_14" href="terminal_interface-curses__ads.htm#ref_1114_14">Set_NoDelay_Mode</a></span>
+ (<span class="symbol"><a name="ref_900_7" href="terminal_interface-curses__ads.htm#ref_1115_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_901_7" href="terminal_interface-curses__ads.htm#ref_1116_7">Mode</a></span> : Boolean := False)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_903_16">Nodelay</A></span> (<span class="symbol"><A NAME="ref_903_25" HREF="terminal_interface-curses__adb.htm#ref_903_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>; <span class="symbol"><A NAME="ref_903_39" HREF="terminal_interface-curses__adb.htm#ref_903_16">Mode</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_903_16">Nodelay</a></span> (<span class="symbol"><a name="ref_903_25">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>; <span class="symbol"><a name="ref_903_39">Mode</a></span> : <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Nodelay, "nodelay");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_903_16">Nodelay</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1115_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1116_7">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_903_16">Nodelay</a> (<a href="terminal_interface-curses__ads.htm#ref_1115_7">Win</a>, <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a> (Boolean'Pos (<a href="terminal_interface-curses__ads.htm#ref_1116_7">Mode</a>))) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1114_14">Set_NoDelay_Mode</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1114_14">Set_NoDelay_Mode</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_911_14" HREF="terminal_interface-curses__ads.htm#ref_1123_14">Set_Timeout_Mode</A></span> (<span class="symbol"><A NAME="ref_911_32" HREF="terminal_interface-curses__ads.htm#ref_1123_32">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_912_32" HREF="terminal_interface-curses__ads.htm#ref_1124_32">Mode</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1120_9">Timeout_Mode</A>;
- <span class="symbol"><A NAME="ref_913_32" HREF="terminal_interface-curses__ads.htm#ref_1125_32">Amount</A></span> : Natural)
+ <b>procedure</b> <span class="symbol"><a name="ref_911_14" href="terminal_interface-curses__ads.htm#ref_1123_14">Set_Timeout_Mode</a></span> (<span class="symbol"><a name="ref_911_32" href="terminal_interface-curses__ads.htm#ref_1123_32">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_912_32" href="terminal_interface-curses__ads.htm#ref_1124_32">Mode</a></span> : <a href="terminal_interface-curses__ads.htm#ref_1120_9">Timeout_Mode</a>;
+ <span class="symbol"><a name="ref_913_32" href="terminal_interface-curses__ads.htm#ref_1125_32">Amount</a></span> : Natural)
<b>is</b>
- <b>procedure</b> <span class="symbol"><A NAME="ref_915_17">Wtimeout</A></span> (<span class="symbol"><A NAME="ref_915_27" HREF="terminal_interface-curses__adb.htm#ref_915_17">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>; <span class="symbol"><A NAME="ref_915_41" HREF="terminal_interface-curses__adb.htm#ref_915_17">Amount</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>);
+ <b>procedure</b> <span class="symbol"><a name="ref_915_17">Wtimeout</a></span> (<span class="symbol"><a name="ref_915_27">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>; <span class="symbol"><a name="ref_915_41">Amount</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>);
<b>pragma</b> Import (C, Wtimeout, "wtimeout");
- <span class="symbol"><A NAME="ref_918_7">Time</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <span class="symbol"><a name="ref_918_7">Time</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>begin</b>
- <b>case</b> <A HREF="terminal_interface-curses__ads.htm#ref_1124_32">Mode</A> <b>is</b>
- <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1120_26">Blocking</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_918_7">Time</A> := -1;
- <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1120_36">Non_Blocking</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_918_7">Time</A> := 0;
- <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1120_50">Delayed</A> =&gt;
- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1125_32">Amount</A> = 0 <b>then</b>
+ <b>case</b> <a href="terminal_interface-curses__ads.htm#ref_1124_32">Mode</a> <b>is</b>
+ <b>when</b> <a href="terminal_interface-curses__ads.htm#ref_1120_26">Blocking</a> =&gt; <a href="terminal_interface-curses__adb.htm#ref_918_7">Time</a> := -1;
+ <b>when</b> <a href="terminal_interface-curses__ads.htm#ref_1120_36">Non_Blocking</a> =&gt; <a href="terminal_interface-curses__adb.htm#ref_918_7">Time</a> := 0;
+ <b>when</b> <a href="terminal_interface-curses__ads.htm#ref_1120_50">Delayed</a> =&gt;
+ <b>if</b> <a href="terminal_interface-curses__ads.htm#ref_1125_32">Amount</a> = 0 <b>then</b>
<b>raise</b> Constraint_Error;
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses__adb.htm#ref_918_7">Time</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1125_32">Amount</A>);
+ <a href="terminal_interface-curses__adb.htm#ref_918_7">Time</a> := <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1125_32">Amount</a>);
<b>end</b> <b>case</b>;
- <A HREF="terminal_interface-curses__adb.htm#ref_915_17">Wtimeout</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1123_32">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_918_7">Time</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1123_14">Set_Timeout_Mode</A>;
+ <a href="terminal_interface-curses__adb.htm#ref_915_17">Wtimeout</a> (<a href="terminal_interface-curses__ads.htm#ref_1123_32">Win</a>, <a href="terminal_interface-curses__adb.htm#ref_918_7">Time</a>);
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1123_14">Set_Timeout_Mode</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_932_14" HREF="terminal_interface-curses__ads.htm#ref_1135_14">Set_Escape_Timer_Mode</A></span>
- (<span class="symbol"><A NAME="ref_933_7" HREF="terminal_interface-curses__ads.htm#ref_1136_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_934_7" HREF="terminal_interface-curses__ads.htm#ref_1137_7">Timer_Off</A></span> : Boolean := False)
+ <b>procedure</b> <span class="symbol"><a name="ref_932_14" href="terminal_interface-curses__ads.htm#ref_1135_14">Set_Escape_Timer_Mode</a></span>
+ (<span class="symbol"><a name="ref_933_7" href="terminal_interface-curses__ads.htm#ref_1136_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_934_7" href="terminal_interface-curses__ads.htm#ref_1137_7">Timer_Off</a></span> : Boolean := False)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_936_16">Notimeout</A></span> (<span class="symbol"><A NAME="ref_936_27" HREF="terminal_interface-curses__adb.htm#ref_936_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>; <span class="symbol"><A NAME="ref_936_41" HREF="terminal_interface-curses__adb.htm#ref_936_16">Mode</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_936_16">Notimeout</a></span> (<span class="symbol"><a name="ref_936_27">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>; <span class="symbol"><a name="ref_936_41">Mode</a></span> : <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Notimeout, "notimeout");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_936_16">Notimeout</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1136_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1137_7">Timer_Off</A>)))
- = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A>
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_936_16">Notimeout</a> (<a href="terminal_interface-curses__ads.htm#ref_1136_7">Win</a>, <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a> (Boolean'Pos (<a href="terminal_interface-curses__ads.htm#ref_1137_7">Timer_Off</a>)))
+ = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a>
<b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1135_14">Set_Escape_Timer_Mode</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1135_14">Set_Escape_Timer_Mode</a>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_947_14" HREF="terminal_interface-curses__ads.htm#ref_1146_14">Set_NL_Mode</A></span> (<span class="symbol"><A NAME="ref_947_27" HREF="terminal_interface-curses__ads.htm#ref_1146_27">SwitchOn</A></span> : Boolean := True)
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_947_14" href="terminal_interface-curses__ads.htm#ref_1146_14">Set_NL_Mode</a></span> (<span class="symbol"><a name="ref_947_27" href="terminal_interface-curses__ads.htm#ref_1146_27">SwitchOn</a></span> : Boolean := True)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_949_16">NL</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_949_16">NL</a></span> <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, NL, "nl");
- <b>function</b> <span class="symbol"><A NAME="ref_951_16">NoNL</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_951_16">NoNL</a></span> <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, NoNL, "nonl");
- <span class="symbol"><A NAME="ref_954_7">Err</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <span class="symbol"><a name="ref_954_7">Err</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1146_27">SwitchOn</A> <b>then</b>
- <A HREF="terminal_interface-curses__adb.htm#ref_954_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_949_16">NL</A>;
+ <b>if</b> <a href="terminal_interface-curses__ads.htm#ref_1146_27">SwitchOn</a> <b>then</b>
+ <a href="terminal_interface-curses__adb.htm#ref_954_7">Err</a> := <a href="terminal_interface-curses__adb.htm#ref_949_16">NL</a>;
<b>else</b>
- <A HREF="terminal_interface-curses__adb.htm#ref_954_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_951_16">NoNL</A>;
+ <a href="terminal_interface-curses__adb.htm#ref_954_7">Err</a> := <a href="terminal_interface-curses__adb.htm#ref_951_16">NoNL</a>;
<b>end</b> <b>if</b>;
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_954_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_954_7">Err</a> = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1146_14">Set_NL_Mode</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1146_14">Set_NL_Mode</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_966_14" HREF="terminal_interface-curses__ads.htm#ref_1152_14">Clear_On_Next_Update</A></span>
- (<span class="symbol"><A NAME="ref_967_7" HREF="terminal_interface-curses__ads.htm#ref_1153_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_968_7" HREF="terminal_interface-curses__ads.htm#ref_1154_7">Do_Clear</A></span> : Boolean := True)
+ <b>procedure</b> <span class="symbol"><a name="ref_966_14" href="terminal_interface-curses__ads.htm#ref_1152_14">Clear_On_Next_Update</a></span>
+ (<span class="symbol"><a name="ref_967_7" href="terminal_interface-curses__ads.htm#ref_1153_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_968_7" href="terminal_interface-curses__ads.htm#ref_1154_7">Do_Clear</a></span> : Boolean := True)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_970_16">Clear_Ok</A></span> (<span class="symbol"><A NAME="ref_970_26" HREF="terminal_interface-curses__adb.htm#ref_970_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>; <span class="symbol"><A NAME="ref_970_38" HREF="terminal_interface-curses__adb.htm#ref_970_16">Flag</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_970_16">Clear_Ok</a></span> (<span class="symbol"><a name="ref_970_26">W</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>; <span class="symbol"><a name="ref_970_38">Flag</a></span> : <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Clear_Ok, "clearok");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_970_16">Clear_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1153_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1154_7">Do_Clear</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_970_16">Clear_Ok</a> (<a href="terminal_interface-curses__ads.htm#ref_1153_7">Win</a>, <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a> (Boolean'Pos (<a href="terminal_interface-curses__ads.htm#ref_1154_7">Do_Clear</a>))) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1152_14">Clear_On_Next_Update</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1152_14">Clear_On_Next_Update</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_978_14" HREF="terminal_interface-curses__ads.htm#ref_1159_14">Use_Insert_Delete_Line</A></span>
- (<span class="symbol"><A NAME="ref_979_7" HREF="terminal_interface-curses__ads.htm#ref_1160_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_980_7" HREF="terminal_interface-curses__ads.htm#ref_1161_7">Do_Idl</A></span> : Boolean := True)
+ <b>procedure</b> <span class="symbol"><a name="ref_978_14" href="terminal_interface-curses__ads.htm#ref_1159_14">Use_Insert_Delete_Line</a></span>
+ (<span class="symbol"><a name="ref_979_7" href="terminal_interface-curses__ads.htm#ref_1160_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_980_7" href="terminal_interface-curses__ads.htm#ref_1161_7">Do_Idl</a></span> : Boolean := True)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_982_16">IDL_Ok</A></span> (<span class="symbol"><A NAME="ref_982_24" HREF="terminal_interface-curses__adb.htm#ref_982_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>; <span class="symbol"><A NAME="ref_982_36" HREF="terminal_interface-curses__adb.htm#ref_982_16">Flag</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_982_16">IDL_Ok</a></span> (<span class="symbol"><a name="ref_982_24">W</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>; <span class="symbol"><a name="ref_982_36">Flag</a></span> : <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, IDL_Ok, "idlok");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_982_16">IDL_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1160_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1161_7">Do_Idl</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_982_16">IDL_Ok</a> (<a href="terminal_interface-curses__ads.htm#ref_1160_7">Win</a>, <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a> (Boolean'Pos (<a href="terminal_interface-curses__ads.htm#ref_1161_7">Do_Idl</a>))) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1159_14">Use_Insert_Delete_Line</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1159_14">Use_Insert_Delete_Line</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_990_14" HREF="terminal_interface-curses__ads.htm#ref_1166_14">Use_Insert_Delete_Character</A></span>
- (<span class="symbol"><A NAME="ref_991_7" HREF="terminal_interface-curses__ads.htm#ref_1167_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_992_7" HREF="terminal_interface-curses__ads.htm#ref_1168_7">Do_Idc</A></span> : Boolean := True)
+ <b>procedure</b> <span class="symbol"><a name="ref_990_14" href="terminal_interface-curses__ads.htm#ref_1166_14">Use_Insert_Delete_Character</a></span>
+ (<span class="symbol"><a name="ref_991_7" href="terminal_interface-curses__ads.htm#ref_1167_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_992_7" href="terminal_interface-curses__ads.htm#ref_1168_7">Do_Idc</a></span> : Boolean := True)
<b>is</b>
- <b>procedure</b> <span class="symbol"><A NAME="ref_994_17">IDC_Ok</A></span> (<span class="symbol"><A NAME="ref_994_25" HREF="terminal_interface-curses__adb.htm#ref_994_17">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>; <span class="symbol"><A NAME="ref_994_37" HREF="terminal_interface-curses__adb.htm#ref_994_17">Flag</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A>);
+ <b>procedure</b> <span class="symbol"><a name="ref_994_17">IDC_Ok</a></span> (<span class="symbol"><a name="ref_994_25">W</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>; <span class="symbol"><a name="ref_994_37">Flag</a></span> : <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a>);
<b>pragma</b> Import (C, IDC_Ok, "idcok");
<b>begin</b>
- <A HREF="terminal_interface-curses__adb.htm#ref_994_17">IDC_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1167_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1168_7">Do_Idc</A>)));
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1166_14">Use_Insert_Delete_Character</A>;
+ <a href="terminal_interface-curses__adb.htm#ref_994_17">IDC_Ok</a> (<a href="terminal_interface-curses__ads.htm#ref_1167_7">Win</a>, <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a> (Boolean'Pos (<a href="terminal_interface-curses__ads.htm#ref_1168_7">Do_Idc</a>)));
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1166_14">Use_Insert_Delete_Character</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_1000_14" HREF="terminal_interface-curses__ads.htm#ref_1173_14">Leave_Cursor_After_Update</A></span>
- (<span class="symbol"><A NAME="ref_1001_7" HREF="terminal_interface-curses__ads.htm#ref_1174_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1002_7" HREF="terminal_interface-curses__ads.htm#ref_1175_7">Do_Leave</A></span> : Boolean := True)
+ <b>procedure</b> <span class="symbol"><a name="ref_1000_14" href="terminal_interface-curses__ads.htm#ref_1173_14">Leave_Cursor_After_Update</a></span>
+ (<span class="symbol"><a name="ref_1001_7" href="terminal_interface-curses__ads.htm#ref_1174_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1002_7" href="terminal_interface-curses__ads.htm#ref_1175_7">Do_Leave</a></span> : Boolean := True)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1004_16">Leave_Ok</A></span> (<span class="symbol"><A NAME="ref_1004_26" HREF="terminal_interface-curses__adb.htm#ref_1004_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>; <span class="symbol"><A NAME="ref_1004_38" HREF="terminal_interface-curses__adb.htm#ref_1004_16">Flag</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1004_16">Leave_Ok</a></span> (<span class="symbol"><a name="ref_1004_26">W</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>; <span class="symbol"><a name="ref_1004_38">Flag</a></span> : <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Leave_Ok, "leaveok");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1004_16">Leave_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1174_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1175_7">Do_Leave</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1004_16">Leave_Ok</a> (<a href="terminal_interface-curses__ads.htm#ref_1174_7">Win</a>, <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a> (Boolean'Pos (<a href="terminal_interface-curses__ads.htm#ref_1175_7">Do_Leave</a>))) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1173_14">Leave_Cursor_After_Update</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1173_14">Leave_Cursor_After_Update</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_1012_14" HREF="terminal_interface-curses__ads.htm#ref_1180_14">Immediate_Update_Mode</A></span>
- (<span class="symbol"><A NAME="ref_1013_7" HREF="terminal_interface-curses__ads.htm#ref_1181_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1014_7" HREF="terminal_interface-curses__ads.htm#ref_1182_7">Mode</A></span> : Boolean := False)
+ <b>procedure</b> <span class="symbol"><a name="ref_1012_14" href="terminal_interface-curses__ads.htm#ref_1180_14">Immediate_Update_Mode</a></span>
+ (<span class="symbol"><a name="ref_1013_7" href="terminal_interface-curses__ads.htm#ref_1181_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1014_7" href="terminal_interface-curses__ads.htm#ref_1182_7">Mode</a></span> : Boolean := False)
<b>is</b>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1016_17">Immedok</A></span> (<span class="symbol"><A NAME="ref_1016_26" HREF="terminal_interface-curses__adb.htm#ref_1016_17">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>; <span class="symbol"><A NAME="ref_1016_40" HREF="terminal_interface-curses__adb.htm#ref_1016_17">Mode</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A>);
+ <b>procedure</b> <span class="symbol"><a name="ref_1016_17">Immedok</a></span> (<span class="symbol"><a name="ref_1016_26">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>; <span class="symbol"><a name="ref_1016_40">Mode</a></span> : <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a>);
<b>pragma</b> Import (C, Immedok, "immedok");
<b>begin</b>
- <A HREF="terminal_interface-curses__adb.htm#ref_1016_17">Immedok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1181_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1182_7">Mode</A>)));
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1180_14">Immediate_Update_Mode</A>;
+ <a href="terminal_interface-curses__adb.htm#ref_1016_17">Immedok</a> (<a href="terminal_interface-curses__ads.htm#ref_1181_7">Win</a>, <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a> (Boolean'Pos (<a href="terminal_interface-curses__ads.htm#ref_1182_7">Mode</a>)));
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1180_14">Immediate_Update_Mode</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_1022_14" HREF="terminal_interface-curses__ads.htm#ref_1187_14">Allow_Scrolling</A></span>
- (<span class="symbol"><A NAME="ref_1023_7" HREF="terminal_interface-curses__ads.htm#ref_1188_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1024_7" HREF="terminal_interface-curses__ads.htm#ref_1189_7">Mode</A></span> : Boolean := False)
+ <b>procedure</b> <span class="symbol"><a name="ref_1022_14" href="terminal_interface-curses__ads.htm#ref_1187_14">Allow_Scrolling</a></span>
+ (<span class="symbol"><a name="ref_1023_7" href="terminal_interface-curses__ads.htm#ref_1188_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1024_7" href="terminal_interface-curses__ads.htm#ref_1189_7">Mode</a></span> : Boolean := False)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1026_16">Scrollok</A></span> (<span class="symbol"><A NAME="ref_1026_26" HREF="terminal_interface-curses__adb.htm#ref_1026_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>; <span class="symbol"><A NAME="ref_1026_40" HREF="terminal_interface-curses__adb.htm#ref_1026_16">Mode</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1026_16">Scrollok</a></span> (<span class="symbol"><a name="ref_1026_26">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>; <span class="symbol"><a name="ref_1026_40">Mode</a></span> : <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Scrollok, "scrollok");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1026_16">Scrollok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1188_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1189_7">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1026_16">Scrollok</a> (<a href="terminal_interface-curses__ads.htm#ref_1188_7">Win</a>, <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a> (Boolean'Pos (<a href="terminal_interface-curses__ads.htm#ref_1189_7">Mode</a>))) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1187_14">Allow_Scrolling</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1187_14">Allow_Scrolling</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_1034_13" HREF="terminal_interface-curses__ads.htm#ref_1193_13">Scrolling_Allowed</A></span> (<span class="symbol"><A NAME="ref_1034_32" HREF="terminal_interface-curses__ads.htm#ref_1193_32">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>)
+ <b>function</b> <span class="symbol"><a name="ref_1034_13" href="terminal_interface-curses__ads.htm#ref_1193_13">Scrolling_Allowed</a></span> (<span class="symbol"><a name="ref_1034_32" href="terminal_interface-curses__ads.htm#ref_1193_32">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>)
<b>return</b> Boolean
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1037_16">Is_Scroll_Ok</A></span> (<span class="symbol"><A NAME="ref_1037_30" HREF="terminal_interface-curses__adb.htm#ref_1037_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1037_16">Is_Scroll_Ok</a></span> (<span class="symbol"><a name="ref_1037_30">W</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a>;
<b>pragma</b> Import (C, Is_Scroll_Ok, "is_scrollok");
<b>begin</b>
- <b>return</b> (<A HREF="terminal_interface-curses__adb.htm#ref_1037_16">Is_Scroll_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1193_32">Win</A>) /= <A HREF="terminal_interface-curses__ads.htm#ref_2101_4">Curses_Bool_False</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1193_13">Scrolling_Allowed</A>;
+ <b>return</b> (<a href="terminal_interface-curses__adb.htm#ref_1037_16">Is_Scroll_Ok</a> (<a href="terminal_interface-curses__ads.htm#ref_1193_32">Win</a>) /= <a href="terminal_interface-curses__ads.htm#ref_2101_4">Curses_Bool_False</a>);
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1193_13">Scrolling_Allowed</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_1043_14" HREF="terminal_interface-curses__ads.htm#ref_1198_14">Set_Scroll_Region</A></span>
- (<span class="symbol"><A NAME="ref_1044_7" HREF="terminal_interface-curses__ads.htm#ref_1199_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1045_7" HREF="terminal_interface-curses__ads.htm#ref_1200_7">Top_Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1046_7" HREF="terminal_interface-curses__ads.htm#ref_1201_7">Bottom_Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_1043_14" href="terminal_interface-curses__ads.htm#ref_1198_14">Set_Scroll_Region</a></span>
+ (<span class="symbol"><a name="ref_1044_7" href="terminal_interface-curses__ads.htm#ref_1199_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1045_7" href="terminal_interface-curses__ads.htm#ref_1200_7">Top_Line</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1046_7" href="terminal_interface-curses__ads.htm#ref_1201_7">Bottom_Line</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1048_16">Wsetscrreg</A></span> (<span class="symbol"><A NAME="ref_1048_28" HREF="terminal_interface-curses__adb.htm#ref_1048_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_1049_28" HREF="terminal_interface-curses__adb.htm#ref_1048_16">Lin</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_1050_28" HREF="terminal_interface-curses__adb.htm#ref_1048_16">Col</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1048_16">Wsetscrreg</a></span> (<span class="symbol"><a name="ref_1048_28">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_1049_28">Lin</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_1050_28">Col</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Wsetscrreg, "wsetscrreg");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1048_16">Wsetscrreg</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1199_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1200_7">Top_Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1201_7">Bottom_Line</A>))
- = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A>
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1048_16">Wsetscrreg</a> (<a href="terminal_interface-curses__ads.htm#ref_1199_7">Win</a>, <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1200_7">Top_Line</a>), <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1201_7">Bottom_Line</a>))
+ = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a>
<b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1198_14">Set_Scroll_Region</A>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1060_14" HREF="terminal_interface-curses__ads.htm#ref_1211_14">Update_Screen</A></span>
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1198_14">Set_Scroll_Region</a>;
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1060_14" href="terminal_interface-curses__ads.htm#ref_1211_14">Update_Screen</a></span>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1062_16">Do_Update</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1062_16">Do_Update</a></span> <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Do_Update, "doupdate");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1062_16">Do_Update</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1062_16">Do_Update</a> = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1211_14">Update_Screen</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1211_14">Update_Screen</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_1070_14" HREF="terminal_interface-curses__ads.htm#ref_1216_14">Refresh</A></span> (<span class="symbol"><A NAME="ref_1070_23" HREF="terminal_interface-curses__ads.htm#ref_1216_23">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_1070_14" href="terminal_interface-curses__ads.htm#ref_1216_14">Refresh</a></span> (<span class="symbol"><a name="ref_1070_23" href="terminal_interface-curses__ads.htm#ref_1216_23">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1072_16">Wrefresh</A></span> (<span class="symbol"><A NAME="ref_1072_26" HREF="terminal_interface-curses__adb.htm#ref_1072_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1072_16">Wrefresh</a></span> (<span class="symbol"><a name="ref_1072_26">W</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Wrefresh, "wrefresh");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1072_16">Wrefresh</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1216_23">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1072_16">Wrefresh</a> (<a href="terminal_interface-curses__ads.htm#ref_1216_23">Win</a>) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1216_14">Refresh</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1216_14">Refresh</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_1080_14" HREF="terminal_interface-curses__ads.htm#ref_1223_14">Refresh_Without_Update</A></span>
- (<span class="symbol"><A NAME="ref_1081_7" HREF="terminal_interface-curses__ads.htm#ref_1224_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_1080_14" href="terminal_interface-curses__ads.htm#ref_1223_14">Refresh_Without_Update</a></span>
+ (<span class="symbol"><a name="ref_1081_7" href="terminal_interface-curses__ads.htm#ref_1224_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1083_16">Wnoutrefresh</A></span> (<span class="symbol"><A NAME="ref_1083_30" HREF="terminal_interface-curses__adb.htm#ref_1083_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1083_16">Wnoutrefresh</a></span> (<span class="symbol"><a name="ref_1083_30">W</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Wnoutrefresh, "wnoutrefresh");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1083_16">Wnoutrefresh</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1224_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1083_16">Wnoutrefresh</a> (<a href="terminal_interface-curses__ads.htm#ref_1224_7">Win</a>) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1223_14">Refresh_Without_Update</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1223_14">Refresh_Without_Update</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_1091_14" HREF="terminal_interface-curses__ads.htm#ref_1230_14">Redraw</A></span> (<span class="symbol"><A NAME="ref_1091_22" HREF="terminal_interface-curses__ads.htm#ref_1230_22">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_1091_14" href="terminal_interface-curses__ads.htm#ref_1230_14">Redraw</a></span> (<span class="symbol"><a name="ref_1091_22" href="terminal_interface-curses__ads.htm#ref_1230_22">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1093_16">Redrawwin</A></span> (<span class="symbol"><A NAME="ref_1093_27" HREF="terminal_interface-curses__adb.htm#ref_1093_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1093_16">Redrawwin</a></span> (<span class="symbol"><a name="ref_1093_27">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Redrawwin, "redrawwin");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1093_16">Redrawwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1230_22">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1093_16">Redrawwin</a> (<a href="terminal_interface-curses__ads.htm#ref_1230_22">Win</a>) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1230_14">Redraw</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1230_14">Redraw</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_1101_14" HREF="terminal_interface-curses__ads.htm#ref_1234_14">Redraw</A></span>
- (<span class="symbol"><A NAME="ref_1102_7" HREF="terminal_interface-curses__ads.htm#ref_1234_22">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1103_7" HREF="terminal_interface-curses__ads.htm#ref_1235_22">Begin_Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1104_7" HREF="terminal_interface-curses__ads.htm#ref_1236_22">Line_Count</A></span> : Positive)
+ <b>procedure</b> <span class="symbol"><a name="ref_1101_14" href="terminal_interface-curses__ads.htm#ref_1234_14">Redraw</a></span>
+ (<span class="symbol"><a name="ref_1102_7" href="terminal_interface-curses__ads.htm#ref_1234_22">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1103_7" href="terminal_interface-curses__ads.htm#ref_1235_22">Begin_Line</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1104_7" href="terminal_interface-curses__ads.htm#ref_1236_22">Line_Count</a></span> : Positive)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1106_16">Wredrawln</A></span> (<span class="symbol"><A NAME="ref_1106_27" HREF="terminal_interface-curses__adb.htm#ref_1106_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>; <span class="symbol"><A NAME="ref_1106_41" HREF="terminal_interface-curses__adb.htm#ref_1106_16">First</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>; <span class="symbol"><A NAME="ref_1106_56" HREF="terminal_interface-curses__adb.htm#ref_1106_16">Cnt</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>)
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1106_16">Wredrawln</a></span> (<span class="symbol"><a name="ref_1106_27">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>; <span class="symbol"><a name="ref_1106_41">First</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>; <span class="symbol"><a name="ref_1106_56">Cnt</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>)
+ <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Wredrawln, "wredrawln");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1106_16">Wredrawln</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1234_22">Win</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1235_22">Begin_Line</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1236_22">Line_Count</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A>
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1106_16">Wredrawln</a> (<a href="terminal_interface-curses__ads.htm#ref_1234_22">Win</a>,
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1235_22">Begin_Line</a>),
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1236_22">Line_Count</a>)) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a>
<b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1234_14">Redraw</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1234_14">Redraw</a>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1119_14" HREF="terminal_interface-curses__ads.htm#ref_1245_14">Erase</A></span> (<span class="symbol"><A NAME="ref_1119_21" HREF="terminal_interface-curses__ads.htm#ref_1245_21">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>)
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1119_14" href="terminal_interface-curses__ads.htm#ref_1245_14">Erase</a></span> (<span class="symbol"><a name="ref_1119_21" href="terminal_interface-curses__ads.htm#ref_1245_21">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1121_16">Werase</A></span> (<span class="symbol"><A NAME="ref_1121_24" HREF="terminal_interface-curses__adb.htm#ref_1121_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1121_16">Werase</a></span> (<span class="symbol"><a name="ref_1121_24">W</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Werase, "werase");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1121_16">Werase</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1245_21">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1121_16">Werase</a> (<a href="terminal_interface-curses__ads.htm#ref_1245_21">Win</a>) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1245_14">Erase</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1245_14">Erase</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_1129_14" HREF="terminal_interface-curses__ads.htm#ref_1251_14">Clear</A></span> (<span class="symbol"><A NAME="ref_1129_21" HREF="terminal_interface-curses__ads.htm#ref_1252_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_1129_14" href="terminal_interface-curses__ads.htm#ref_1251_14">Clear</a></span> (<span class="symbol"><a name="ref_1129_21" href="terminal_interface-curses__ads.htm#ref_1252_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1131_16">Wclear</A></span> (<span class="symbol"><A NAME="ref_1131_24" HREF="terminal_interface-curses__adb.htm#ref_1131_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1131_16">Wclear</a></span> (<span class="symbol"><a name="ref_1131_24">W</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Wclear, "wclear");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1131_16">Wclear</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1252_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1131_16">Wclear</a> (<a href="terminal_interface-curses__ads.htm#ref_1252_7">Win</a>) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1251_14">Clear</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1251_14">Clear</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_1139_14" HREF="terminal_interface-curses__ads.htm#ref_1258_14">Clear_To_End_Of_Screen</A></span> (<span class="symbol"><A NAME="ref_1139_38" HREF="terminal_interface-curses__ads.htm#ref_1259_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_1139_14" href="terminal_interface-curses__ads.htm#ref_1258_14">Clear_To_End_Of_Screen</a></span> (<span class="symbol"><a name="ref_1139_38" href="terminal_interface-curses__ads.htm#ref_1259_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1141_16">Wclearbot</A></span> (<span class="symbol"><A NAME="ref_1141_27" HREF="terminal_interface-curses__adb.htm#ref_1141_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1141_16">Wclearbot</a></span> (<span class="symbol"><a name="ref_1141_27">W</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Wclearbot, "wclrtobot");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1141_16">Wclearbot</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1259_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1141_16">Wclearbot</a> (<a href="terminal_interface-curses__ads.htm#ref_1259_7">Win</a>) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1258_14">Clear_To_End_Of_Screen</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1258_14">Clear_To_End_Of_Screen</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_1149_14" HREF="terminal_interface-curses__ads.htm#ref_1265_14">Clear_To_End_Of_Line</A></span> (<span class="symbol"><A NAME="ref_1149_36" HREF="terminal_interface-curses__ads.htm#ref_1266_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_1149_14" href="terminal_interface-curses__ads.htm#ref_1265_14">Clear_To_End_Of_Line</a></span> (<span class="symbol"><a name="ref_1149_36" href="terminal_interface-curses__ads.htm#ref_1266_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1151_16">Wcleareol</A></span> (<span class="symbol"><A NAME="ref_1151_27" HREF="terminal_interface-curses__adb.htm#ref_1151_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1151_16">Wcleareol</a></span> (<span class="symbol"><a name="ref_1151_27">W</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Wcleareol, "wclrtoeol");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1151_16">Wcleareol</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1266_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1151_16">Wcleareol</a> (<a href="terminal_interface-curses__ads.htm#ref_1266_7">Win</a>) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1265_14">Clear_To_End_Of_Line</A>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1159_14" HREF="terminal_interface-curses__ads.htm#ref_1279_14">Set_Background</A></span>
- (<span class="symbol"><A NAME="ref_1160_7" HREF="terminal_interface-curses__ads.htm#ref_1280_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1161_7" HREF="terminal_interface-curses__ads.htm#ref_1281_7">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>)
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1265_14">Clear_To_End_Of_Line</a>;
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1159_14" href="terminal_interface-curses__ads.htm#ref_1279_14">Set_Background</a></span>
+ (<span class="symbol"><a name="ref_1160_7" href="terminal_interface-curses__ads.htm#ref_1280_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1161_7" href="terminal_interface-curses__ads.htm#ref_1281_7">Ch</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>)
<b>is</b>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1163_17">WBackground</A></span> (<span class="symbol"><A NAME="ref_1163_30" HREF="terminal_interface-curses__adb.htm#ref_1163_17">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>; <span class="symbol"><A NAME="ref_1163_42" HREF="terminal_interface-curses__adb.htm#ref_1163_17">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>);
+ <b>procedure</b> <span class="symbol"><a name="ref_1163_17">WBackground</a></span> (<span class="symbol"><a name="ref_1163_30">W</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>; <span class="symbol"><a name="ref_1163_42">Ch</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>);
<b>pragma</b> Import (C, WBackground, "wbkgdset");
<b>begin</b>
- <A HREF="terminal_interface-curses__adb.htm#ref_1163_17">WBackground</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1280_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1281_7">Ch</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1279_14">Set_Background</A>;
+ <a href="terminal_interface-curses__adb.htm#ref_1163_17">WBackground</a> (<a href="terminal_interface-curses__ads.htm#ref_1280_7">Win</a>, <a href="terminal_interface-curses__ads.htm#ref_1281_7">Ch</a>);
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1279_14">Set_Background</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_1169_14" HREF="terminal_interface-curses__ads.htm#ref_1287_14">Change_Background</A></span>
- (<span class="symbol"><A NAME="ref_1170_7" HREF="terminal_interface-curses__ads.htm#ref_1288_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1171_7" HREF="terminal_interface-curses__ads.htm#ref_1289_7">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_1169_14" href="terminal_interface-curses__ads.htm#ref_1287_14">Change_Background</a></span>
+ (<span class="symbol"><a name="ref_1170_7" href="terminal_interface-curses__ads.htm#ref_1288_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1171_7" href="terminal_interface-curses__ads.htm#ref_1289_7">Ch</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1173_16">WChangeBkgd</A></span> (<span class="symbol"><A NAME="ref_1173_29" HREF="terminal_interface-curses__adb.htm#ref_1173_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>; <span class="symbol"><A NAME="ref_1173_41" HREF="terminal_interface-curses__adb.htm#ref_1173_16">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>)
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1173_16">WChangeBkgd</a></span> (<span class="symbol"><a name="ref_1173_29">W</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>; <span class="symbol"><a name="ref_1173_41">Ch</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>)
+ <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, WChangeBkgd, "wbkgd");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1173_16">WChangeBkgd</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1288_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1289_7">Ch</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1173_16">WChangeBkgd</a> (<a href="terminal_interface-curses__ads.htm#ref_1288_7">Win</a>, <a href="terminal_interface-curses__ads.htm#ref_1289_7">Ch</a>) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1287_14">Change_Background</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1287_14">Change_Background</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_1182_13" HREF="terminal_interface-curses__ads.htm#ref_1296_13">Get_Background</A></span> (<span class="symbol"><A NAME="ref_1182_29" HREF="terminal_interface-curses__ads.htm#ref_1296_29">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>)
- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>
+ <b>function</b> <span class="symbol"><a name="ref_1182_13" href="terminal_interface-curses__ads.htm#ref_1296_13">Get_Background</a></span> (<span class="symbol"><a name="ref_1182_29" href="terminal_interface-curses__ads.htm#ref_1296_29">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>)
+ <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1185_16">Wgetbkgd</A></span> (<span class="symbol"><A NAME="ref_1185_26" HREF="terminal_interface-curses__adb.htm#ref_1185_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1185_16">Wgetbkgd</a></span> (<span class="symbol"><a name="ref_1185_26">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>;
<b>pragma</b> Import (C, Wgetbkgd, "getbkgd");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_1185_16">Wgetbkgd</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1296_29">Win</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1296_13">Get_Background</A>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1191_14" HREF="terminal_interface-curses__ads.htm#ref_1323_14">Change_Lines_Status</A></span> (<span class="symbol"><A NAME="ref_1191_35" HREF="terminal_interface-curses__ads.htm#ref_1323_35">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1192_35" HREF="terminal_interface-curses__ads.htm#ref_1324_35">Start</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1193_35" HREF="terminal_interface-curses__ads.htm#ref_1325_35">Count</A></span> : Positive;
- <span class="symbol"><A NAME="ref_1194_35" HREF="terminal_interface-curses__ads.htm#ref_1326_35">State</A></span> : Boolean)
- <b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1196_16">Wtouchln</A></span> (<span class="symbol"><A NAME="ref_1196_26" HREF="terminal_interface-curses__adb.htm#ref_1196_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_1197_26" HREF="terminal_interface-curses__adb.htm#ref_1196_16">Sta</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_1198_26" HREF="terminal_interface-curses__adb.htm#ref_1196_16">Cnt</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_1199_26" HREF="terminal_interface-curses__adb.htm#ref_1196_16">Chg</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>return</b> <a href="terminal_interface-curses__adb.htm#ref_1185_16">Wgetbkgd</a> (<a href="terminal_interface-curses__ads.htm#ref_1296_29">Win</a>);
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1296_13">Get_Background</a>;
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1191_14" href="terminal_interface-curses__ads.htm#ref_1323_14">Change_Lines_Status</a></span> (<span class="symbol"><a name="ref_1191_35" href="terminal_interface-curses__ads.htm#ref_1323_35">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1192_35" href="terminal_interface-curses__ads.htm#ref_1324_35">Start</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1193_35" href="terminal_interface-curses__ads.htm#ref_1325_35">Count</a></span> : Positive;
+ <span class="symbol"><a name="ref_1194_35" href="terminal_interface-curses__ads.htm#ref_1326_35">State</a></span> : Boolean)
+ <b>is</b>
+ <b>function</b> <span class="symbol"><a name="ref_1196_16">Wtouchln</a></span> (<span class="symbol"><a name="ref_1196_26">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_1197_26">Sta</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_1198_26">Cnt</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_1199_26">Chg</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Wtouchln, "wtouchln");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1196_16">Wtouchln</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1323_35">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1324_35">Start</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1325_35">Count</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1326_35">State</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A>
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1196_16">Wtouchln</a> (<a href="terminal_interface-curses__ads.htm#ref_1323_35">Win</a>, <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1324_35">Start</a>), <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1325_35">Count</a>),
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (Boolean'Pos (<a href="terminal_interface-curses__ads.htm#ref_1326_35">State</a>))) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a>
<b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1323_14">Change_Lines_Status</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1323_14">Change_Lines_Status</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_1209_14" HREF="terminal_interface-curses__ads.htm#ref_1312_14">Touch</A></span> (<span class="symbol"><A NAME="ref_1209_21" HREF="terminal_interface-curses__ads.htm#ref_1312_21">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_1209_14" href="terminal_interface-curses__ads.htm#ref_1312_14">Touch</a></span> (<span class="symbol"><a name="ref_1209_21" href="terminal_interface-curses__ads.htm#ref_1312_21">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>)
<b>is</b>
- <span class="symbol"><A NAME="ref_1211_7">Y</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1212_7">X</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
+ <span class="symbol"><a name="ref_1211_7">Y</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1212_7">X</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
<b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#ref_1399_14">Get_Size</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1312_21">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1211_7">Y</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1212_7">X</A>);
- <b>pragma</b> Warnings (Off, <A HREF="terminal_interface-curses__adb.htm#ref_1212_7">X</A>); <span class="comment"><EM>-- unreferenced</EM></span>
- <A HREF="terminal_interface-curses__ads.htm#ref_1323_14">Change_Lines_Status</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1312_21">Win</A>, 0, Positive (<A HREF="terminal_interface-curses__adb.htm#ref_1211_7">Y</A>), True);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1312_14">Touch</A>;
+ <a href="terminal_interface-curses__ads.htm#ref_1399_14">Get_Size</a> (<a href="terminal_interface-curses__ads.htm#ref_1312_21">Win</a>, <a href="terminal_interface-curses__adb.htm#ref_1211_7">Y</a>, <a href="terminal_interface-curses__adb.htm#ref_1212_7">X</a>);
+ <b>pragma</b> Warnings (Off, <a href="terminal_interface-curses__adb.htm#ref_1212_7">X</a>); <span class="comment"><em>-- unreferenced</em></span>
+ <a href="terminal_interface-curses__ads.htm#ref_1323_14">Change_Lines_Status</a> (<a href="terminal_interface-curses__ads.htm#ref_1312_21">Win</a>, 0, Positive (<a href="terminal_interface-curses__adb.htm#ref_1211_7">Y</a>), True);
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1312_14">Touch</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_1219_14" HREF="terminal_interface-curses__ads.htm#ref_1307_14">Untouch</A></span> (<span class="symbol"><A NAME="ref_1219_23" HREF="terminal_interface-curses__ads.htm#ref_1307_23">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_1219_14" href="terminal_interface-curses__ads.htm#ref_1307_14">Untouch</a></span> (<span class="symbol"><a name="ref_1219_23" href="terminal_interface-curses__ads.htm#ref_1307_23">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>)
<b>is</b>
- <span class="symbol"><A NAME="ref_1221_7">Y</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1222_7">X</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
+ <span class="symbol"><a name="ref_1221_7">Y</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1222_7">X</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
<b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#ref_1399_14">Get_Size</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1307_23">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1221_7">Y</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1222_7">X</A>);
- <b>pragma</b> Warnings (Off, <A HREF="terminal_interface-curses__adb.htm#ref_1222_7">X</A>); <span class="comment"><EM>-- unreferenced</EM></span>
- <A HREF="terminal_interface-curses__ads.htm#ref_1323_14">Change_Lines_Status</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1307_23">Win</A>, 0, Positive (<A HREF="terminal_interface-curses__adb.htm#ref_1221_7">Y</A>), False);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1307_14">Untouch</A>;
+ <a href="terminal_interface-curses__ads.htm#ref_1399_14">Get_Size</a> (<a href="terminal_interface-curses__ads.htm#ref_1307_23">Win</a>, <a href="terminal_interface-curses__adb.htm#ref_1221_7">Y</a>, <a href="terminal_interface-curses__adb.htm#ref_1222_7">X</a>);
+ <b>pragma</b> Warnings (Off, <a href="terminal_interface-curses__adb.htm#ref_1222_7">X</a>); <span class="comment"><em>-- unreferenced</em></span>
+ <a href="terminal_interface-curses__ads.htm#ref_1323_14">Change_Lines_Status</a> (<a href="terminal_interface-curses__ads.htm#ref_1307_23">Win</a>, 0, Positive (<a href="terminal_interface-curses__adb.htm#ref_1221_7">Y</a>), False);
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1307_14">Untouch</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_1229_14" HREF="terminal_interface-curses__ads.htm#ref_1316_14">Touch</A></span> (<span class="symbol"><A NAME="ref_1229_21" HREF="terminal_interface-curses__ads.htm#ref_1316_21">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1230_21" HREF="terminal_interface-curses__ads.htm#ref_1317_21">Start</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1231_21" HREF="terminal_interface-curses__ads.htm#ref_1318_21">Count</A></span> : Positive)
+ <b>procedure</b> <span class="symbol"><a name="ref_1229_14" href="terminal_interface-curses__ads.htm#ref_1316_14">Touch</a></span> (<span class="symbol"><a name="ref_1229_21" href="terminal_interface-curses__ads.htm#ref_1316_21">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1230_21" href="terminal_interface-curses__ads.htm#ref_1317_21">Start</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1231_21" href="terminal_interface-curses__ads.htm#ref_1318_21">Count</a></span> : Positive)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#ref_1323_14">Change_Lines_Status</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1316_21">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1317_21">Start</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1318_21">Count</A>, True);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1316_14">Touch</A>;
+ <a href="terminal_interface-curses__ads.htm#ref_1323_14">Change_Lines_Status</a> (<a href="terminal_interface-curses__ads.htm#ref_1316_21">Win</a>, <a href="terminal_interface-curses__ads.htm#ref_1317_21">Start</a>, <a href="terminal_interface-curses__ads.htm#ref_1318_21">Count</a>, True);
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1316_14">Touch</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_1237_13" HREF="terminal_interface-curses__ads.htm#ref_1331_13">Is_Touched</A></span>
- (<span class="symbol"><A NAME="ref_1238_7" HREF="terminal_interface-curses__ads.htm#ref_1331_25">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1239_7" HREF="terminal_interface-curses__ads.htm#ref_1332_25">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>) <b>return</b> Boolean
+ <b>function</b> <span class="symbol"><a name="ref_1237_13" href="terminal_interface-curses__ads.htm#ref_1331_13">Is_Touched</a></span>
+ (<span class="symbol"><a name="ref_1238_7" href="terminal_interface-curses__ads.htm#ref_1331_25">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1239_7" href="terminal_interface-curses__ads.htm#ref_1332_25">Line</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>) <b>return</b> Boolean
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1241_16">WLineTouched</A></span> (<span class="symbol"><A NAME="ref_1241_30" HREF="terminal_interface-curses__adb.htm#ref_1241_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>; <span class="symbol"><A NAME="ref_1241_42" HREF="terminal_interface-curses__adb.htm#ref_1241_16">L</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1241_16">WLineTouched</a></span> (<span class="symbol"><a name="ref_1241_30">W</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>; <span class="symbol"><a name="ref_1241_42">L</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a>;
<b>pragma</b> Import (C, WLineTouched, "is_linetouched");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1241_16">WLineTouched</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1331_25">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1332_25">Line</A>)) = <A HREF="terminal_interface-curses__ads.htm#ref_2101_4">Curses_Bool_False</A> <b>then</b>
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1241_16">WLineTouched</a> (<a href="terminal_interface-curses__ads.htm#ref_1331_25">Win</a>, <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1332_25">Line</a>)) = <a href="terminal_interface-curses__ads.htm#ref_2101_4">Curses_Bool_False</a> <b>then</b>
<b>return</b> False;
<b>else</b>
<b>return</b> True;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1331_13">Is_Touched</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1331_13">Is_Touched</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_1251_13" HREF="terminal_interface-curses__ads.htm#ref_1336_13">Is_Touched</A></span>
- (<span class="symbol"><A NAME="ref_1252_7" HREF="terminal_interface-curses__ads.htm#ref_1336_25">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>) <b>return</b> Boolean
+ <b>function</b> <span class="symbol"><a name="ref_1251_13" href="terminal_interface-curses__ads.htm#ref_1336_13">Is_Touched</a></span>
+ (<span class="symbol"><a name="ref_1252_7" href="terminal_interface-curses__ads.htm#ref_1336_25">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>) <b>return</b> Boolean
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1254_16">WWinTouched</A></span> (<span class="symbol"><A NAME="ref_1254_29" HREF="terminal_interface-curses__adb.htm#ref_1254_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1254_16">WWinTouched</a></span> (<span class="symbol"><a name="ref_1254_29">W</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a>;
<b>pragma</b> Import (C, WWinTouched, "is_wintouched");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1254_16">WWinTouched</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1336_25">Win</A>) = <A HREF="terminal_interface-curses__ads.htm#ref_2101_4">Curses_Bool_False</A> <b>then</b>
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1254_16">WWinTouched</a> (<a href="terminal_interface-curses__ads.htm#ref_1336_25">Win</a>) = <a href="terminal_interface-curses__ads.htm#ref_2101_4">Curses_Bool_False</a> <b>then</b>
<b>return</b> False;
<b>else</b>
<b>return</b> True;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1336_13">Is_Touched</A>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1264_14" HREF="terminal_interface-curses__ads.htm#ref_1345_14">Copy</A></span>
- (<span class="symbol"><A NAME="ref_1265_7" HREF="terminal_interface-curses__ads.htm#ref_1346_7">Source_Window</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_1266_7" HREF="terminal_interface-curses__ads.htm#ref_1347_7">Destination_Window</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_1267_7" HREF="terminal_interface-curses__ads.htm#ref_1348_7">Source_Top_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1268_7" HREF="terminal_interface-curses__ads.htm#ref_1349_7">Source_Left_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_1269_7" HREF="terminal_interface-curses__ads.htm#ref_1350_7">Destination_Top_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1270_7" HREF="terminal_interface-curses__ads.htm#ref_1351_7">Destination_Left_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_1271_7" HREF="terminal_interface-curses__ads.htm#ref_1352_7">Destination_Bottom_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1272_7" HREF="terminal_interface-curses__ads.htm#ref_1353_7">Destination_Right_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_1273_7" HREF="terminal_interface-curses__ads.htm#ref_1354_7">Non_Destructive_Mode</A></span> : Boolean := True)
- <b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1275_16">Copywin</A></span> (<span class="symbol"><A NAME="ref_1275_25" HREF="terminal_interface-curses__adb.htm#ref_1275_16">Src</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_1276_25" HREF="terminal_interface-curses__adb.htm#ref_1275_16">Dst</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_1277_25" HREF="terminal_interface-curses__adb.htm#ref_1275_16">Str</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_1278_25" HREF="terminal_interface-curses__adb.htm#ref_1275_16">Slc</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_1279_25" HREF="terminal_interface-curses__adb.htm#ref_1275_16">Dtr</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_1280_25" HREF="terminal_interface-curses__adb.htm#ref_1275_16">Dlc</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_1281_25" HREF="terminal_interface-curses__adb.htm#ref_1275_16">Dbr</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_1282_25" HREF="terminal_interface-curses__adb.htm#ref_1275_16">Drc</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_1283_25" HREF="terminal_interface-curses__adb.htm#ref_1275_16">Ndm</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1336_13">Is_Touched</a>;
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1264_14" href="terminal_interface-curses__ads.htm#ref_1345_14">Copy</a></span>
+ (<span class="symbol"><a name="ref_1265_7" href="terminal_interface-curses__ads.htm#ref_1346_7">Source_Window</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_1266_7" href="terminal_interface-curses__ads.htm#ref_1347_7">Destination_Window</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_1267_7" href="terminal_interface-curses__ads.htm#ref_1348_7">Source_Top_Row</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1268_7" href="terminal_interface-curses__ads.htm#ref_1349_7">Source_Left_Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_1269_7" href="terminal_interface-curses__ads.htm#ref_1350_7">Destination_Top_Row</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1270_7" href="terminal_interface-curses__ads.htm#ref_1351_7">Destination_Left_Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_1271_7" href="terminal_interface-curses__ads.htm#ref_1352_7">Destination_Bottom_Row</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1272_7" href="terminal_interface-curses__ads.htm#ref_1353_7">Destination_Right_Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_1273_7" href="terminal_interface-curses__ads.htm#ref_1354_7">Non_Destructive_Mode</a></span> : Boolean := True)
+ <b>is</b>
+ <b>function</b> <span class="symbol"><a name="ref_1275_16">Copywin</a></span> (<span class="symbol"><a name="ref_1275_25">Src</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_1276_25">Dst</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_1277_25">Str</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_1278_25">Slc</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_1279_25">Dtr</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_1280_25">Dlc</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_1281_25">Dbr</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_1282_25">Drc</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_1283_25">Ndm</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Copywin, "copywin");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1275_16">Copywin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1346_7">Source_Window</A>,
- <A HREF="terminal_interface-curses__ads.htm#ref_1347_7">Destination_Window</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1348_7">Source_Top_Row</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1349_7">Source_Left_Column</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1350_7">Destination_Top_Row</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1351_7">Destination_Left_Column</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1352_7">Destination_Bottom_Row</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1353_7">Destination_Right_Column</A>),
- Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1354_7">Non_Destructive_Mode</A>)
- ) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A>
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1275_16">Copywin</a> (<a href="terminal_interface-curses__ads.htm#ref_1346_7">Source_Window</a>,
+ <a href="terminal_interface-curses__ads.htm#ref_1347_7">Destination_Window</a>,
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1348_7">Source_Top_Row</a>),
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1349_7">Source_Left_Column</a>),
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1350_7">Destination_Top_Row</a>),
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1351_7">Destination_Left_Column</a>),
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1352_7">Destination_Bottom_Row</a>),
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1353_7">Destination_Right_Column</a>),
+ Boolean'Pos (<a href="terminal_interface-curses__ads.htm#ref_1354_7">Non_Destructive_Mode</a>)
+ ) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a>
<b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1345_14">Copy</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1345_14">Copy</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_1301_14" HREF="terminal_interface-curses__ads.htm#ref_1359_14">Overwrite</A></span>
- (<span class="symbol"><A NAME="ref_1302_7" HREF="terminal_interface-curses__ads.htm#ref_1359_25">Source_Window</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_1303_7" HREF="terminal_interface-curses__ads.htm#ref_1360_25">Destination_Window</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_1301_14" href="terminal_interface-curses__ads.htm#ref_1359_14">Overwrite</a></span>
+ (<span class="symbol"><a name="ref_1302_7" href="terminal_interface-curses__ads.htm#ref_1359_25">Source_Window</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_1303_7" href="terminal_interface-curses__ads.htm#ref_1360_25">Destination_Window</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1305_16">Overwrite</A></span> (<span class="symbol"><A NAME="ref_1305_27" HREF="terminal_interface-curses__adb.htm#ref_1305_16">Src</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>; <span class="symbol"><A NAME="ref_1305_41" HREF="terminal_interface-curses__adb.htm#ref_1305_16">Dst</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1305_16">Overwrite</a></span> (<span class="symbol"><a name="ref_1305_27">Src</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>; <span class="symbol"><a name="ref_1305_41">Dst</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Overwrite, "overwrite");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1305_16">Overwrite</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1359_25">Source_Window</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1360_25">Destination_Window</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1305_16">Overwrite</a> (<a href="terminal_interface-curses__ads.htm#ref_1359_25">Source_Window</a>, <a href="terminal_interface-curses__ads.htm#ref_1360_25">Destination_Window</a>) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1359_14">Overwrite</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1359_14">Overwrite</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_1313_14" HREF="terminal_interface-curses__ads.htm#ref_1365_14">Overlay</A></span>
- (<span class="symbol"><A NAME="ref_1314_7" HREF="terminal_interface-curses__ads.htm#ref_1365_23">Source_Window</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_1315_7" HREF="terminal_interface-curses__ads.htm#ref_1366_23">Destination_Window</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_1313_14" href="terminal_interface-curses__ads.htm#ref_1365_14">Overlay</a></span>
+ (<span class="symbol"><a name="ref_1314_7" href="terminal_interface-curses__ads.htm#ref_1365_23">Source_Window</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_1315_7" href="terminal_interface-curses__ads.htm#ref_1366_23">Destination_Window</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1317_16">Overlay</A></span> (<span class="symbol"><A NAME="ref_1317_25" HREF="terminal_interface-curses__adb.htm#ref_1317_16">Src</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>; <span class="symbol"><A NAME="ref_1317_39" HREF="terminal_interface-curses__adb.htm#ref_1317_16">Dst</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1317_16">Overlay</a></span> (<span class="symbol"><a name="ref_1317_25">Src</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>; <span class="symbol"><a name="ref_1317_39">Dst</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Overlay, "overlay");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1317_16">Overlay</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1365_23">Source_Window</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1366_23">Destination_Window</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1317_16">Overlay</a> (<a href="terminal_interface-curses__ads.htm#ref_1365_23">Source_Window</a>, <a href="terminal_interface-curses__ads.htm#ref_1366_23">Destination_Window</a>) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1365_14">Overlay</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1365_14">Overlay</a>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1326_14" HREF="terminal_interface-curses__ads.htm#ref_1375_14">Insert_Delete_Lines</A></span>
- (<span class="symbol"><A NAME="ref_1327_7" HREF="terminal_interface-curses__ads.htm#ref_1376_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1328_7" HREF="terminal_interface-curses__ads.htm#ref_1377_7">Lines</A></span> : Integer := 1) <span class="comment"><EM>-- default is to insert one line above</EM></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1326_14" href="terminal_interface-curses__ads.htm#ref_1375_14">Insert_Delete_Lines</a></span>
+ (<span class="symbol"><a name="ref_1327_7" href="terminal_interface-curses__ads.htm#ref_1376_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1328_7" href="terminal_interface-curses__ads.htm#ref_1377_7">Lines</a></span> : Integer := 1) <span class="comment"><em>-- default is to insert one line above</em></span>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1330_16">Winsdelln</A></span> (<span class="symbol"><A NAME="ref_1330_27" HREF="terminal_interface-curses__adb.htm#ref_1330_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>; <span class="symbol"><A NAME="ref_1330_39" HREF="terminal_interface-curses__adb.htm#ref_1330_16">N</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1330_16">Winsdelln</a></span> (<span class="symbol"><a name="ref_1330_27">W</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>; <span class="symbol"><a name="ref_1330_39">N</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Winsdelln, "winsdelln");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1330_16">Winsdelln</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1376_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1377_7">Lines</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1330_16">Winsdelln</a> (<a href="terminal_interface-curses__ads.htm#ref_1376_7">Win</a>, <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1377_7">Lines</a>)) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1375_14">Insert_Delete_Lines</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1375_14">Insert_Delete_Lines</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_1338_14" HREF="terminal_interface-curses__ads.htm#ref_1383_14">Delete_Line</A></span> (<span class="symbol"><A NAME="ref_1338_27" HREF="terminal_interface-curses__ads.htm#ref_1383_27">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_1338_14" href="terminal_interface-curses__ads.htm#ref_1383_14">Delete_Line</a></span> (<span class="symbol"><a name="ref_1338_27" href="terminal_interface-curses__ads.htm#ref_1383_27">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#ref_1375_14">Insert_Delete_Lines</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1383_27">Win</A>, -1);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1383_14">Delete_Line</A>;
+ <a href="terminal_interface-curses__ads.htm#ref_1375_14">Insert_Delete_Lines</a> (<a href="terminal_interface-curses__ads.htm#ref_1383_27">Win</a>, -1);
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1383_14">Delete_Line</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_1344_14" HREF="terminal_interface-curses__ads.htm#ref_1389_14">Insert_Line</A></span> (<span class="symbol"><A NAME="ref_1344_27" HREF="terminal_interface-curses__ads.htm#ref_1389_27">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_1344_14" href="terminal_interface-curses__ads.htm#ref_1389_14">Insert_Line</a></span> (<span class="symbol"><a name="ref_1344_27" href="terminal_interface-curses__ads.htm#ref_1389_27">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#ref_1375_14">Insert_Delete_Lines</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1389_27">Win</A>, 1);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1389_14">Insert_Line</A>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+ <a href="terminal_interface-curses__ads.htm#ref_1375_14">Insert_Delete_Lines</a> (<a href="terminal_interface-curses__ads.htm#ref_1389_27">Win</a>, 1);
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1389_14">Insert_Line</a>;
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1351_14" HREF="terminal_interface-curses__ads.htm#ref_1399_14">Get_Size</A></span>
- (<span class="symbol"><A NAME="ref_1352_7" HREF="terminal_interface-curses__ads.htm#ref_1400_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1353_7" HREF="terminal_interface-curses__ads.htm#ref_1401_7">Number_Of_Lines</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</A>;
- <span class="symbol"><A NAME="ref_1354_7" HREF="terminal_interface-curses__ads.htm#ref_1402_7">Number_Of_Columns</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_1351_14" href="terminal_interface-curses__ads.htm#ref_1399_14">Get_Size</a></span>
+ (<span class="symbol"><a name="ref_1352_7" href="terminal_interface-curses__ads.htm#ref_1400_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1353_7" href="terminal_interface-curses__ads.htm#ref_1401_7">Number_Of_Lines</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</a>;
+ <span class="symbol"><a name="ref_1354_7" href="terminal_interface-curses__ads.htm#ref_1402_7">Number_Of_Columns</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1356_16">GetMaxY</A></span> (<span class="symbol"><A NAME="ref_1356_25" HREF="terminal_interface-curses__adb.htm#ref_1356_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1356_16">GetMaxY</a></span> (<span class="symbol"><a name="ref_1356_25">W</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, GetMaxY, "getmaxy");
- <b>function</b> <span class="symbol"><A NAME="ref_1359_16">GetMaxX</A></span> (<span class="symbol"><A NAME="ref_1359_25" HREF="terminal_interface-curses__adb.htm#ref_1359_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1359_16">GetMaxX</a></span> (<span class="symbol"><a name="ref_1359_25">W</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, GetMaxX, "getmaxx");
- <span class="symbol"><A NAME="ref_1362_7">Y</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1356_16">GetMaxY</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1400_7">Win</A>);
- <span class="symbol"><A NAME="ref_1363_7">X</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1359_16">GetMaxX</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1400_7">Win</A>);
+ <span class="symbol"><a name="ref_1362_7">Y</a></span> : <b>constant</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> := <a href="terminal_interface-curses__adb.htm#ref_1356_16">GetMaxY</a> (<a href="terminal_interface-curses__ads.htm#ref_1400_7">Win</a>);
+ <span class="symbol"><a name="ref_1363_7">X</a></span> : <b>constant</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> := <a href="terminal_interface-curses__adb.htm#ref_1359_16">GetMaxX</a> (<a href="terminal_interface-curses__ads.htm#ref_1400_7">Win</a>);
<b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#ref_1401_7">Number_Of_Lines</A> := <A HREF="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1362_7">Y</A>);
- <A HREF="terminal_interface-curses__ads.htm#ref_1402_7">Number_Of_Columns</A> := <A HREF="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1363_7">X</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1399_14">Get_Size</A>;
+ <a href="terminal_interface-curses__ads.htm#ref_1401_7">Number_Of_Lines</a> := <a href="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</a> (<a href="terminal_interface-curses__adb.htm#ref_1362_7">Y</a>);
+ <a href="terminal_interface-curses__ads.htm#ref_1402_7">Number_Of_Columns</a> := <a href="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</a> (<a href="terminal_interface-curses__adb.htm#ref_1363_7">X</a>);
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1399_14">Get_Size</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_1369_14" HREF="terminal_interface-curses__ads.htm#ref_1407_14">Get_Window_Position</A></span>
- (<span class="symbol"><A NAME="ref_1370_7" HREF="terminal_interface-curses__ads.htm#ref_1408_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1371_7" HREF="terminal_interface-curses__ads.htm#ref_1409_7">Top_Left_Line</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1372_7" HREF="terminal_interface-curses__ads.htm#ref_1410_7">Top_Left_Column</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_1369_14" href="terminal_interface-curses__ads.htm#ref_1407_14">Get_Window_Position</a></span>
+ (<span class="symbol"><a name="ref_1370_7" href="terminal_interface-curses__ads.htm#ref_1408_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1371_7" href="terminal_interface-curses__ads.htm#ref_1409_7">Top_Left_Line</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1372_7" href="terminal_interface-curses__ads.htm#ref_1410_7">Top_Left_Column</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1374_16">GetBegY</A></span> (<span class="symbol"><A NAME="ref_1374_25" HREF="terminal_interface-curses__adb.htm#ref_1374_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1374_16">GetBegY</a></span> (<span class="symbol"><a name="ref_1374_25">W</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, GetBegY, "getbegy");
- <b>function</b> <span class="symbol"><A NAME="ref_1377_16">GetBegX</A></span> (<span class="symbol"><A NAME="ref_1377_25" HREF="terminal_interface-curses__adb.htm#ref_1377_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1377_16">GetBegX</a></span> (<span class="symbol"><a name="ref_1377_25">W</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, GetBegX, "getbegx");
- <span class="symbol"><A NAME="ref_1380_7">Y</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1374_16">GetBegY</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1408_7">Win</A>));
- <span class="symbol"><A NAME="ref_1381_7">X</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1377_16">GetBegX</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1408_7">Win</A>));
+ <span class="symbol"><a name="ref_1380_7">Y</a></span> : <b>constant</b> <a href="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</a> := <a href="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</a> (<a href="terminal_interface-curses__adb.htm#ref_1374_16">GetBegY</a> (<a href="terminal_interface-curses__ads.htm#ref_1408_7">Win</a>));
+ <span class="symbol"><a name="ref_1381_7">X</a></span> : <b>constant</b> <a href="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</a> := <a href="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</a> (<a href="terminal_interface-curses__adb.htm#ref_1377_16">GetBegX</a> (<a href="terminal_interface-curses__ads.htm#ref_1408_7">Win</a>));
<b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#ref_1409_7">Top_Left_Line</A> := <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1380_7">Y</A>);
- <A HREF="terminal_interface-curses__ads.htm#ref_1410_7">Top_Left_Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1381_7">X</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1407_14">Get_Window_Position</A>;
+ <a href="terminal_interface-curses__ads.htm#ref_1409_7">Top_Left_Line</a> := <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a> (<a href="terminal_interface-curses__adb.htm#ref_1380_7">Y</a>);
+ <a href="terminal_interface-curses__ads.htm#ref_1410_7">Top_Left_Column</a> := <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a> (<a href="terminal_interface-curses__adb.htm#ref_1381_7">X</a>);
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1407_14">Get_Window_Position</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_1387_14" HREF="terminal_interface-curses__ads.htm#ref_1415_14">Get_Cursor_Position</A></span>
- (<span class="symbol"><A NAME="ref_1388_7" HREF="terminal_interface-curses__ads.htm#ref_1416_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1389_7" HREF="terminal_interface-curses__ads.htm#ref_1417_7">Line</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1390_7" HREF="terminal_interface-curses__ads.htm#ref_1418_7">Column</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_1387_14" href="terminal_interface-curses__ads.htm#ref_1415_14">Get_Cursor_Position</a></span>
+ (<span class="symbol"><a name="ref_1388_7" href="terminal_interface-curses__ads.htm#ref_1416_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1389_7" href="terminal_interface-curses__ads.htm#ref_1417_7">Line</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1390_7" href="terminal_interface-curses__ads.htm#ref_1418_7">Column</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1392_16">GetCurY</A></span> (<span class="symbol"><A NAME="ref_1392_25" HREF="terminal_interface-curses__adb.htm#ref_1392_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1392_16">GetCurY</a></span> (<span class="symbol"><a name="ref_1392_25">W</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, GetCurY, "getcury");
- <b>function</b> <span class="symbol"><A NAME="ref_1395_16">GetCurX</A></span> (<span class="symbol"><A NAME="ref_1395_25" HREF="terminal_interface-curses__adb.htm#ref_1395_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1395_16">GetCurX</a></span> (<span class="symbol"><a name="ref_1395_25">W</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, GetCurX, "getcurx");
- <span class="symbol"><A NAME="ref_1398_7">Y</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1392_16">GetCurY</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1416_7">Win</A>));
- <span class="symbol"><A NAME="ref_1399_7">X</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1395_16">GetCurX</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1416_7">Win</A>));
+ <span class="symbol"><a name="ref_1398_7">Y</a></span> : <b>constant</b> <a href="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</a> := <a href="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</a> (<a href="terminal_interface-curses__adb.htm#ref_1392_16">GetCurY</a> (<a href="terminal_interface-curses__ads.htm#ref_1416_7">Win</a>));
+ <span class="symbol"><a name="ref_1399_7">X</a></span> : <b>constant</b> <a href="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</a> := <a href="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</a> (<a href="terminal_interface-curses__adb.htm#ref_1395_16">GetCurX</a> (<a href="terminal_interface-curses__ads.htm#ref_1416_7">Win</a>));
<b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#ref_1417_7">Line</A> := <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1398_7">Y</A>);
- <A HREF="terminal_interface-curses__ads.htm#ref_1418_7">Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1399_7">X</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1415_14">Get_Cursor_Position</A>;
+ <a href="terminal_interface-curses__ads.htm#ref_1417_7">Line</a> := <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a> (<a href="terminal_interface-curses__adb.htm#ref_1398_7">Y</a>);
+ <a href="terminal_interface-curses__ads.htm#ref_1418_7">Column</a> := <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a> (<a href="terminal_interface-curses__adb.htm#ref_1399_7">X</a>);
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1415_14">Get_Cursor_Position</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_1405_14" HREF="terminal_interface-curses__ads.htm#ref_1423_14">Get_Origin_Relative_To_Parent</A></span>
- (<span class="symbol"><A NAME="ref_1406_7" HREF="terminal_interface-curses__ads.htm#ref_1424_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_1407_7" HREF="terminal_interface-curses__ads.htm#ref_1425_7">Top_Left_Line</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1408_7" HREF="terminal_interface-curses__ads.htm#ref_1426_7">Top_Left_Column</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_1409_7" HREF="terminal_interface-curses__ads.htm#ref_1427_7">Is_Not_A_Subwindow</A></span> : <b>out</b> Boolean)
+ <b>procedure</b> <span class="symbol"><a name="ref_1405_14" href="terminal_interface-curses__ads.htm#ref_1423_14">Get_Origin_Relative_To_Parent</a></span>
+ (<span class="symbol"><a name="ref_1406_7" href="terminal_interface-curses__ads.htm#ref_1424_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_1407_7" href="terminal_interface-curses__ads.htm#ref_1425_7">Top_Left_Line</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1408_7" href="terminal_interface-curses__ads.htm#ref_1426_7">Top_Left_Column</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_1409_7" href="terminal_interface-curses__ads.htm#ref_1427_7">Is_Not_A_Subwindow</a></span> : <b>out</b> Boolean)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1411_16">GetParY</A></span> (<span class="symbol"><A NAME="ref_1411_25" HREF="terminal_interface-curses__adb.htm#ref_1411_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1411_16">GetParY</a></span> (<span class="symbol"><a name="ref_1411_25">W</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, GetParY, "getpary");
- <b>function</b> <span class="symbol"><A NAME="ref_1414_16">GetParX</A></span> (<span class="symbol"><A NAME="ref_1414_25" HREF="terminal_interface-curses__adb.htm#ref_1414_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1414_16">GetParX</a></span> (<span class="symbol"><a name="ref_1414_25">W</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, GetParX, "getparx");
- <span class="symbol"><A NAME="ref_1417_7">Y</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1411_16">GetParY</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1424_7">Win</A>);
- <span class="symbol"><A NAME="ref_1418_7">X</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1414_16">GetParX</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1424_7">Win</A>);
+ <span class="symbol"><a name="ref_1417_7">Y</a></span> : <b>constant</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> := <a href="terminal_interface-curses__adb.htm#ref_1411_16">GetParY</a> (<a href="terminal_interface-curses__ads.htm#ref_1424_7">Win</a>);
+ <span class="symbol"><a name="ref_1418_7">X</a></span> : <b>constant</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> := <a href="terminal_interface-curses__adb.htm#ref_1414_16">GetParX</a> (<a href="terminal_interface-curses__ads.htm#ref_1424_7">Win</a>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1417_7">Y</A> = -1 <b>then</b>
- <A HREF="terminal_interface-curses__ads.htm#ref_1425_7">Top_Left_Line</A> := <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>'Last;
- <A HREF="terminal_interface-curses__ads.htm#ref_1426_7">Top_Left_Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>'Last;
- <A HREF="terminal_interface-curses__ads.htm#ref_1427_7">Is_Not_A_Subwindow</A> := True;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1417_7">Y</a> = -1 <b>then</b>
+ <a href="terminal_interface-curses__ads.htm#ref_1425_7">Top_Left_Line</a> := <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>'Last;
+ <a href="terminal_interface-curses__ads.htm#ref_1426_7">Top_Left_Column</a> := <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>'Last;
+ <a href="terminal_interface-curses__ads.htm#ref_1427_7">Is_Not_A_Subwindow</a> := True;
<b>else</b>
- <A HREF="terminal_interface-curses__ads.htm#ref_1425_7">Top_Left_Line</A> := <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1417_7">Y</A>);
- <A HREF="terminal_interface-curses__ads.htm#ref_1426_7">Top_Left_Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1418_7">X</A>);
- <A HREF="terminal_interface-curses__ads.htm#ref_1427_7">Is_Not_A_Subwindow</A> := False;
+ <a href="terminal_interface-curses__ads.htm#ref_1425_7">Top_Left_Line</a> := <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a> (<a href="terminal_interface-curses__adb.htm#ref_1417_7">Y</a>);
+ <a href="terminal_interface-curses__ads.htm#ref_1426_7">Top_Left_Column</a> := <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a> (<a href="terminal_interface-curses__adb.htm#ref_1418_7">X</a>);
+ <a href="terminal_interface-curses__ads.htm#ref_1427_7">Is_Not_A_Subwindow</a> := False;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1423_14">Get_Origin_Relative_To_Parent</A>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_1431_13" HREF="terminal_interface-curses__ads.htm#ref_1438_13">New_Pad</A></span> (<span class="symbol"><A NAME="ref_1431_22" HREF="terminal_interface-curses__ads.htm#ref_1438_22">Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</A>;
- <span class="symbol"><A NAME="ref_1432_22" HREF="terminal_interface-curses__ads.htm#ref_1439_22">Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1423_14">Get_Origin_Relative_To_Parent</a>;
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_1431_13" href="terminal_interface-curses__ads.htm#ref_1438_13">New_Pad</a></span> (<span class="symbol"><a name="ref_1431_22" href="terminal_interface-curses__ads.htm#ref_1438_22">Lines</a></span> : <a href="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</a>;
+ <span class="symbol"><a name="ref_1432_22" href="terminal_interface-curses__ads.htm#ref_1439_22">Columns</a></span> : <a href="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1434_16">Newpad</A></span> (<span class="symbol"><A NAME="ref_1434_24" HREF="terminal_interface-curses__adb.htm#ref_1434_16">Lines</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>; <span class="symbol"><A NAME="ref_1434_39" HREF="terminal_interface-curses__adb.htm#ref_1434_16">Columns</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1434_16">Newpad</a></span> (<span class="symbol"><a name="ref_1434_24">Lines</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>; <span class="symbol"><a name="ref_1434_39">Columns</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
<b>pragma</b> Import (C, Newpad, "newpad");
- <span class="symbol"><A NAME="ref_1437_7">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
+ <span class="symbol"><a name="ref_1437_7">W</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
<b>begin</b>
- <A HREF="terminal_interface-curses__adb.htm#ref_1437_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1434_16">Newpad</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1438_22">Lines</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1439_22">Columns</A>));
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1437_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_57_4">Null_Window</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <a href="terminal_interface-curses__adb.htm#ref_1437_7">W</a> := <a href="terminal_interface-curses__adb.htm#ref_1434_16">Newpad</a> (<a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1438_22">Lines</a>), <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1439_22">Columns</a>));
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1437_7">W</a> = <a href="terminal_interface-curses__ads.htm#ref_57_4">Null_Window</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_1437_7">W</A>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1438_13">New_Pad</A>;
+ <b>return</b> <a href="terminal_interface-curses__adb.htm#ref_1437_7">W</a>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1438_13">New_Pad</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_1446_13" HREF="terminal_interface-curses__ads.htm#ref_1444_13">Sub_Pad</A></span>
- (<span class="symbol"><A NAME="ref_1447_7" HREF="terminal_interface-curses__ads.htm#ref_1445_7">Pad</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_1448_7" HREF="terminal_interface-curses__ads.htm#ref_1446_7">Number_Of_Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</A>;
- <span class="symbol"><A NAME="ref_1449_7" HREF="terminal_interface-curses__ads.htm#ref_1447_7">Number_Of_Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</A>;
- <span class="symbol"><A NAME="ref_1450_7" HREF="terminal_interface-curses__ads.htm#ref_1448_7">First_Line_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1451_7" HREF="terminal_interface-curses__ads.htm#ref_1449_7">First_Column_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>
+ <b>function</b> <span class="symbol"><a name="ref_1446_13" href="terminal_interface-curses__ads.htm#ref_1444_13">Sub_Pad</a></span>
+ (<span class="symbol"><a name="ref_1447_7" href="terminal_interface-curses__ads.htm#ref_1445_7">Pad</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_1448_7" href="terminal_interface-curses__ads.htm#ref_1446_7">Number_Of_Lines</a></span> : <a href="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</a>;
+ <span class="symbol"><a name="ref_1449_7" href="terminal_interface-curses__ads.htm#ref_1447_7">Number_Of_Columns</a></span> : <a href="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</a>;
+ <span class="symbol"><a name="ref_1450_7" href="terminal_interface-curses__ads.htm#ref_1448_7">First_Line_Position</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1451_7" href="terminal_interface-curses__ads.htm#ref_1449_7">First_Column_Position</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1453_16">Subpad</A></span>
- (<span class="symbol"><A NAME="ref_1454_10" HREF="terminal_interface-curses__adb.htm#ref_1453_16">Pad</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_1455_10" HREF="terminal_interface-curses__adb.htm#ref_1453_16">Number_Of_Lines</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_1456_10" HREF="terminal_interface-curses__adb.htm#ref_1453_16">Number_Of_Columns</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_1457_10" HREF="terminal_interface-curses__adb.htm#ref_1453_16">First_Line_Position</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_1458_10" HREF="terminal_interface-curses__adb.htm#ref_1453_16">First_Column_Position</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1453_16">Subpad</a></span>
+ (<span class="symbol"><a name="ref_1454_10">Pad</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_1455_10">Number_Of_Lines</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_1456_10">Number_Of_Columns</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_1457_10">First_Line_Position</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_1458_10">First_Column_Position</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
<b>pragma</b> Import (C, Subpad, "subpad");
- <span class="symbol"><A NAME="ref_1461_7">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <b>begin</b>
- <A HREF="terminal_interface-curses__adb.htm#ref_1461_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1453_16">Subpad</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1445_7">Pad</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1446_7">Number_Of_Lines</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1447_7">Number_Of_Columns</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1448_7">First_Line_Position</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1449_7">First_Column_Position</A>));
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1461_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_57_4">Null_Window</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
- <b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_1461_7">W</A>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1444_13">Sub_Pad</A>;
-
- <b>procedure</b> <span class="symbol"><A NAME="ref_1474_14" HREF="terminal_interface-curses__ads.htm#ref_1454_14">Refresh</A></span>
- (<span class="symbol"><A NAME="ref_1475_7" HREF="terminal_interface-curses__ads.htm#ref_1455_7">Pad</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_1476_7" HREF="terminal_interface-curses__ads.htm#ref_1456_7">Source_Top_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1477_7" HREF="terminal_interface-curses__ads.htm#ref_1457_7">Source_Left_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_1478_7" HREF="terminal_interface-curses__ads.htm#ref_1458_7">Destination_Top_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1479_7" HREF="terminal_interface-curses__ads.htm#ref_1459_7">Destination_Left_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_1480_7" HREF="terminal_interface-curses__ads.htm#ref_1460_7">Destination_Bottom_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1481_7" HREF="terminal_interface-curses__ads.htm#ref_1461_7">Destination_Right_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>)
- <b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1483_16">Prefresh</A></span>
- (<span class="symbol"><A NAME="ref_1484_10" HREF="terminal_interface-curses__adb.htm#ref_1483_16">Pad</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_1485_10" HREF="terminal_interface-curses__adb.htm#ref_1483_16">Source_Top_Row</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_1486_10" HREF="terminal_interface-curses__adb.htm#ref_1483_16">Source_Left_Column</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_1487_10" HREF="terminal_interface-curses__adb.htm#ref_1483_16">Destination_Top_Row</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_1488_10" HREF="terminal_interface-curses__adb.htm#ref_1483_16">Destination_Left_Column</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_1489_10" HREF="terminal_interface-curses__adb.htm#ref_1483_16">Destination_Bottom_Row</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_1490_10" HREF="terminal_interface-curses__adb.htm#ref_1483_16">Destination_Right_Column</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <span class="symbol"><a name="ref_1461_7">W</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <b>begin</b>
+ <a href="terminal_interface-curses__adb.htm#ref_1461_7">W</a> := <a href="terminal_interface-curses__adb.htm#ref_1453_16">Subpad</a> (<a href="terminal_interface-curses__ads.htm#ref_1445_7">Pad</a>,
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1446_7">Number_Of_Lines</a>),
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1447_7">Number_Of_Columns</a>),
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1448_7">First_Line_Position</a>),
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1449_7">First_Column_Position</a>));
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1461_7">W</a> = <a href="terminal_interface-curses__ads.htm#ref_57_4">Null_Window</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
+ <b>end</b> <b>if</b>;
+ <b>return</b> <a href="terminal_interface-curses__adb.htm#ref_1461_7">W</a>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1444_13">Sub_Pad</a>;
+
+ <b>procedure</b> <span class="symbol"><a name="ref_1474_14" href="terminal_interface-curses__ads.htm#ref_1454_14">Refresh</a></span>
+ (<span class="symbol"><a name="ref_1475_7" href="terminal_interface-curses__ads.htm#ref_1455_7">Pad</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_1476_7" href="terminal_interface-curses__ads.htm#ref_1456_7">Source_Top_Row</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1477_7" href="terminal_interface-curses__ads.htm#ref_1457_7">Source_Left_Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_1478_7" href="terminal_interface-curses__ads.htm#ref_1458_7">Destination_Top_Row</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1479_7" href="terminal_interface-curses__ads.htm#ref_1459_7">Destination_Left_Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_1480_7" href="terminal_interface-curses__ads.htm#ref_1460_7">Destination_Bottom_Row</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1481_7" href="terminal_interface-curses__ads.htm#ref_1461_7">Destination_Right_Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>)
+ <b>is</b>
+ <b>function</b> <span class="symbol"><a name="ref_1483_16">Prefresh</a></span>
+ (<span class="symbol"><a name="ref_1484_10">Pad</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_1485_10">Source_Top_Row</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_1486_10">Source_Left_Column</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_1487_10">Destination_Top_Row</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_1488_10">Destination_Left_Column</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_1489_10">Destination_Bottom_Row</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_1490_10">Destination_Right_Column</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Prefresh, "prefresh");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1483_16">Prefresh</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1455_7">Pad</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1456_7">Source_Top_Row</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1457_7">Source_Left_Column</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1458_7">Destination_Top_Row</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1459_7">Destination_Left_Column</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1460_7">Destination_Bottom_Row</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1461_7">Destination_Right_Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A>
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1483_16">Prefresh</a> (<a href="terminal_interface-curses__ads.htm#ref_1455_7">Pad</a>,
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1456_7">Source_Top_Row</a>),
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1457_7">Source_Left_Column</a>),
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1458_7">Destination_Top_Row</a>),
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1459_7">Destination_Left_Column</a>),
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1460_7">Destination_Bottom_Row</a>),
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1461_7">Destination_Right_Column</a>)) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a>
<b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
- <b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1454_14">Refresh</A>;
-
- <b>procedure</b> <span class="symbol"><A NAME="ref_1505_14" HREF="terminal_interface-curses__ads.htm#ref_1466_14">Refresh_Without_Update</A></span>
- (<span class="symbol"><A NAME="ref_1506_7" HREF="terminal_interface-curses__ads.htm#ref_1467_7">Pad</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_1507_7" HREF="terminal_interface-curses__ads.htm#ref_1468_7">Source_Top_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1508_7" HREF="terminal_interface-curses__ads.htm#ref_1469_7">Source_Left_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_1509_7" HREF="terminal_interface-curses__ads.htm#ref_1470_7">Destination_Top_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1510_7" HREF="terminal_interface-curses__ads.htm#ref_1471_7">Destination_Left_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_1511_7" HREF="terminal_interface-curses__ads.htm#ref_1472_7">Destination_Bottom_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1512_7" HREF="terminal_interface-curses__ads.htm#ref_1473_7">Destination_Right_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>)
- <b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1514_16">Pnoutrefresh</A></span>
- (<span class="symbol"><A NAME="ref_1515_10" HREF="terminal_interface-curses__adb.htm#ref_1514_16">Pad</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_1516_10" HREF="terminal_interface-curses__adb.htm#ref_1514_16">Source_Top_Row</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_1517_10" HREF="terminal_interface-curses__adb.htm#ref_1514_16">Source_Left_Column</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_1518_10" HREF="terminal_interface-curses__adb.htm#ref_1514_16">Destination_Top_Row</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_1519_10" HREF="terminal_interface-curses__adb.htm#ref_1514_16">Destination_Left_Column</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_1520_10" HREF="terminal_interface-curses__adb.htm#ref_1514_16">Destination_Bottom_Row</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_1521_10" HREF="terminal_interface-curses__adb.htm#ref_1514_16">Destination_Right_Column</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
+ <b>end</b> <b>if</b>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1454_14">Refresh</a>;
+
+ <b>procedure</b> <span class="symbol"><a name="ref_1505_14" href="terminal_interface-curses__ads.htm#ref_1466_14">Refresh_Without_Update</a></span>
+ (<span class="symbol"><a name="ref_1506_7" href="terminal_interface-curses__ads.htm#ref_1467_7">Pad</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_1507_7" href="terminal_interface-curses__ads.htm#ref_1468_7">Source_Top_Row</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1508_7" href="terminal_interface-curses__ads.htm#ref_1469_7">Source_Left_Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_1509_7" href="terminal_interface-curses__ads.htm#ref_1470_7">Destination_Top_Row</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1510_7" href="terminal_interface-curses__ads.htm#ref_1471_7">Destination_Left_Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_1511_7" href="terminal_interface-curses__ads.htm#ref_1472_7">Destination_Bottom_Row</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1512_7" href="terminal_interface-curses__ads.htm#ref_1473_7">Destination_Right_Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>)
+ <b>is</b>
+ <b>function</b> <span class="symbol"><a name="ref_1514_16">Pnoutrefresh</a></span>
+ (<span class="symbol"><a name="ref_1515_10">Pad</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_1516_10">Source_Top_Row</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_1517_10">Source_Left_Column</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_1518_10">Destination_Top_Row</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_1519_10">Destination_Left_Column</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_1520_10">Destination_Bottom_Row</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_1521_10">Destination_Right_Column</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Pnoutrefresh, "pnoutrefresh");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1514_16">Pnoutrefresh</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1467_7">Pad</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1468_7">Source_Top_Row</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1469_7">Source_Left_Column</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1470_7">Destination_Top_Row</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1471_7">Destination_Left_Column</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1472_7">Destination_Bottom_Row</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1473_7">Destination_Right_Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A>
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1514_16">Pnoutrefresh</a> (<a href="terminal_interface-curses__ads.htm#ref_1467_7">Pad</a>,
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1468_7">Source_Top_Row</a>),
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1469_7">Source_Left_Column</a>),
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1470_7">Destination_Top_Row</a>),
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1471_7">Destination_Left_Column</a>),
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1472_7">Destination_Bottom_Row</a>),
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1473_7">Destination_Right_Column</a>)) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a>
<b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1466_14">Refresh_Without_Update</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1466_14">Refresh_Without_Update</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_1536_14" HREF="terminal_interface-curses__ads.htm#ref_1478_14">Add_Character_To_Pad_And_Echo_It</A></span>
- (<span class="symbol"><A NAME="ref_1537_7" HREF="terminal_interface-curses__ads.htm#ref_1479_7">Pad</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_1538_7" HREF="terminal_interface-curses__ads.htm#ref_1480_7">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_1536_14" href="terminal_interface-curses__ads.htm#ref_1478_14">Add_Character_To_Pad_And_Echo_It</a></span>
+ (<span class="symbol"><a name="ref_1537_7" href="terminal_interface-curses__ads.htm#ref_1479_7">Pad</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_1538_7" href="terminal_interface-curses__ads.htm#ref_1480_7">Ch</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1540_16">Pechochar</A></span> (<span class="symbol"><A NAME="ref_1540_27" HREF="terminal_interface-curses__adb.htm#ref_1540_16">Pad</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>; <span class="symbol"><A NAME="ref_1540_41" HREF="terminal_interface-curses__adb.htm#ref_1540_16">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>)
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1540_16">Pechochar</a></span> (<span class="symbol"><a name="ref_1540_27">Pad</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>; <span class="symbol"><a name="ref_1540_41">Ch</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>)
+ <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Pechochar, "pechochar");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1540_16">Pechochar</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1479_7">Pad</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1480_7">Ch</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1540_16">Pechochar</a> (<a href="terminal_interface-curses__ads.htm#ref_1479_7">Pad</a>, <a href="terminal_interface-curses__ads.htm#ref_1480_7">Ch</a>) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1478_14">Add_Character_To_Pad_And_Echo_It</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1478_14">Add_Character_To_Pad_And_Echo_It</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_1549_14" HREF="terminal_interface-curses__ads.htm#ref_1483_14">Add_Character_To_Pad_And_Echo_It</A></span>
- (<span class="symbol"><A NAME="ref_1550_7" HREF="terminal_interface-curses__ads.htm#ref_1484_7">Pad</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_1551_7" HREF="terminal_interface-curses__ads.htm#ref_1485_7">Ch</A></span> : Character)
+ <b>procedure</b> <span class="symbol"><a name="ref_1549_14" href="terminal_interface-curses__ads.htm#ref_1483_14">Add_Character_To_Pad_And_Echo_It</a></span>
+ (<span class="symbol"><a name="ref_1550_7" href="terminal_interface-curses__ads.htm#ref_1484_7">Pad</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_1551_7" href="terminal_interface-curses__ads.htm#ref_1485_7">Ch</a></span> : Character)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#ref_1478_14">Add_Character_To_Pad_And_Echo_It</A>
- (<A HREF="terminal_interface-curses__ads.htm#ref_1484_7">Pad</A>,
- <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>'(<A HREF="terminal_interface-curses__ads.htm#ref_492_10">Ch</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_1485_7">Ch</A>,
- <A HREF="terminal_interface-curses__ads.htm#ref_491_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>'First,
- <A HREF="terminal_interface-curses__ads.htm#ref_490_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</A>));
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1483_14">Add_Character_To_Pad_And_Echo_It</A>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1561_14" HREF="terminal_interface-curses__ads.htm#ref_1493_14">Scroll</A></span> (<span class="symbol"><A NAME="ref_1561_22" HREF="terminal_interface-curses__ads.htm#ref_1493_22">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1562_22" HREF="terminal_interface-curses__ads.htm#ref_1494_22">Amount</A></span> : Integer := 1)
+ <a href="terminal_interface-curses__ads.htm#ref_1478_14">Add_Character_To_Pad_And_Echo_It</a>
+ (<a href="terminal_interface-curses__ads.htm#ref_1484_7">Pad</a>,
+ <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>'(<a href="terminal_interface-curses__ads.htm#ref_492_10">Ch</a> =&gt; <a href="terminal_interface-curses__ads.htm#ref_1485_7">Ch</a>,
+ <a href="terminal_interface-curses__ads.htm#ref_491_10">Color</a> =&gt; <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>'First,
+ <a href="terminal_interface-curses__ads.htm#ref_490_10">Attr</a> =&gt; <a href="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</a>));
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1483_14">Add_Character_To_Pad_And_Echo_It</a>;
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1561_14" href="terminal_interface-curses__ads.htm#ref_1493_14">Scroll</a></span> (<span class="symbol"><a name="ref_1561_22" href="terminal_interface-curses__ads.htm#ref_1493_22">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1562_22" href="terminal_interface-curses__ads.htm#ref_1494_22">Amount</a></span> : Integer := 1)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1564_16">Wscrl</A></span> (<span class="symbol"><A NAME="ref_1564_23" HREF="terminal_interface-curses__adb.htm#ref_1564_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>; <span class="symbol"><A NAME="ref_1564_37" HREF="terminal_interface-curses__adb.htm#ref_1564_16">N</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1564_16">Wscrl</a></span> (<span class="symbol"><a name="ref_1564_23">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>; <span class="symbol"><a name="ref_1564_37">N</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Wscrl, "wscrl");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1564_16">Wscrl</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1493_22">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1494_22">Amount</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1564_16">Wscrl</a> (<a href="terminal_interface-curses__ads.htm#ref_1493_22">Win</a>, <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1494_22">Amount</a>)) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1493_14">Scroll</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1493_14">Scroll</a>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1574_14" HREF="terminal_interface-curses__ads.htm#ref_1505_14">Delete_Character</A></span> (<span class="symbol"><A NAME="ref_1574_32" HREF="terminal_interface-curses__ads.htm#ref_1505_32">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>)
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1574_14" href="terminal_interface-curses__ads.htm#ref_1505_14">Delete_Character</a></span> (<span class="symbol"><a name="ref_1574_32" href="terminal_interface-curses__ads.htm#ref_1505_32">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1576_16">Wdelch</A></span> (<span class="symbol"><A NAME="ref_1576_24" HREF="terminal_interface-curses__adb.htm#ref_1576_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1576_16">Wdelch</a></span> (<span class="symbol"><a name="ref_1576_24">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Wdelch, "wdelch");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1576_16">Wdelch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1505_32">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1576_16">Wdelch</a> (<a href="terminal_interface-curses__ads.htm#ref_1505_32">Win</a>) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1505_14">Delete_Character</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1505_14">Delete_Character</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_1584_14" HREF="terminal_interface-curses__ads.htm#ref_1510_14">Delete_Character</A></span>
- (<span class="symbol"><A NAME="ref_1585_7" HREF="terminal_interface-curses__ads.htm#ref_1511_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1586_7" HREF="terminal_interface-curses__ads.htm#ref_1512_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1587_7" HREF="terminal_interface-curses__ads.htm#ref_1513_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_1584_14" href="terminal_interface-curses__ads.htm#ref_1510_14">Delete_Character</a></span>
+ (<span class="symbol"><a name="ref_1585_7" href="terminal_interface-curses__ads.htm#ref_1511_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1586_7" href="terminal_interface-curses__ads.htm#ref_1512_7">Line</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1587_7" href="terminal_interface-curses__ads.htm#ref_1513_7">Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1589_16">Mvwdelch</A></span> (<span class="symbol"><A NAME="ref_1589_26" HREF="terminal_interface-curses__adb.htm#ref_1589_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_1590_26" HREF="terminal_interface-curses__adb.htm#ref_1589_16">Lin</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_1591_26" HREF="terminal_interface-curses__adb.htm#ref_1589_16">Col</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1589_16">Mvwdelch</a></span> (<span class="symbol"><a name="ref_1589_26">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_1590_26">Lin</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_1591_26">Col</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Mvwdelch, "mvwdelch");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1589_16">Mvwdelch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1511_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1512_7">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1513_7">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1589_16">Mvwdelch</a> (<a href="terminal_interface-curses__ads.htm#ref_1511_7">Win</a>, <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1512_7">Line</a>), <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1513_7">Column</a>)) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1510_14">Delete_Character</A>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_1599_13" HREF="terminal_interface-curses__ads.htm#ref_1523_13">Peek</A></span> (<span class="symbol"><A NAME="ref_1599_19" HREF="terminal_interface-curses__ads.htm#ref_1523_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>)
- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1510_14">Delete_Character</a>;
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_1599_13" href="terminal_interface-curses__ads.htm#ref_1523_13">Peek</a></span> (<span class="symbol"><a name="ref_1599_19" href="terminal_interface-curses__ads.htm#ref_1523_19">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>)
+ <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1602_16">Winch</A></span> (<span class="symbol"><A NAME="ref_1602_23" HREF="terminal_interface-curses__adb.htm#ref_1602_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1602_16">Winch</a></span> (<span class="symbol"><a name="ref_1602_23">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>;
<b>pragma</b> Import (C, Winch, "winch");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_1602_16">Winch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1523_19">Win</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1523_13">Peek</A>;
+ <b>return</b> <a href="terminal_interface-curses__adb.htm#ref_1602_16">Winch</a> (<a href="terminal_interface-curses__ads.htm#ref_1523_19">Win</a>);
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1523_13">Peek</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_1608_13" HREF="terminal_interface-curses__ads.htm#ref_1529_13">Peek</A></span>
- (<span class="symbol"><A NAME="ref_1609_7" HREF="terminal_interface-curses__ads.htm#ref_1530_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1610_7" HREF="terminal_interface-curses__ads.htm#ref_1531_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1611_7" HREF="terminal_interface-curses__ads.htm#ref_1532_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>
+ <b>function</b> <span class="symbol"><a name="ref_1608_13" href="terminal_interface-curses__ads.htm#ref_1529_13">Peek</a></span>
+ (<span class="symbol"><a name="ref_1609_7" href="terminal_interface-curses__ads.htm#ref_1530_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1610_7" href="terminal_interface-curses__ads.htm#ref_1531_7">Line</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1611_7" href="terminal_interface-curses__ads.htm#ref_1532_7">Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1613_16">Mvwinch</A></span> (<span class="symbol"><A NAME="ref_1613_25" HREF="terminal_interface-curses__adb.htm#ref_1613_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_1614_25" HREF="terminal_interface-curses__adb.htm#ref_1613_16">Lin</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_1615_25" HREF="terminal_interface-curses__adb.htm#ref_1613_16">Col</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1613_16">Mvwinch</a></span> (<span class="symbol"><a name="ref_1613_25">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_1614_25">Lin</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_1615_25">Col</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>;
<b>pragma</b> Import (C, Mvwinch, "mvwinch");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_1613_16">Mvwinch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1530_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1531_7">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1532_7">Column</A>));
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1529_13">Peek</A>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1621_14" HREF="terminal_interface-curses__ads.htm#ref_1542_14">Insert</A></span> (<span class="symbol"><A NAME="ref_1621_22" HREF="terminal_interface-curses__ads.htm#ref_1542_22">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1622_22" HREF="terminal_interface-curses__ads.htm#ref_1543_22">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>)
+ <b>return</b> <a href="terminal_interface-curses__adb.htm#ref_1613_16">Mvwinch</a> (<a href="terminal_interface-curses__ads.htm#ref_1530_7">Win</a>, <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1531_7">Line</a>), <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1532_7">Column</a>));
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1529_13">Peek</a>;
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1621_14" href="terminal_interface-curses__ads.htm#ref_1542_14">Insert</a></span> (<span class="symbol"><a name="ref_1621_22" href="terminal_interface-curses__ads.htm#ref_1542_22">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1622_22" href="terminal_interface-curses__ads.htm#ref_1543_22">Ch</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1624_16">Winsch</A></span> (<span class="symbol"><A NAME="ref_1624_24" HREF="terminal_interface-curses__adb.htm#ref_1624_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>; <span class="symbol"><A NAME="ref_1624_38" HREF="terminal_interface-curses__adb.htm#ref_1624_16">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1624_16">Winsch</a></span> (<span class="symbol"><a name="ref_1624_24">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>; <span class="symbol"><a name="ref_1624_38">Ch</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Winsch, "winsch");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1624_16">Winsch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1542_22">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1543_22">Ch</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1624_16">Winsch</a> (<a href="terminal_interface-curses__ads.htm#ref_1542_22">Win</a>, <a href="terminal_interface-curses__ads.htm#ref_1543_22">Ch</a>) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1542_14">Insert</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1542_14">Insert</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_1632_14" HREF="terminal_interface-curses__ads.htm#ref_1548_14">Insert</A></span>
- (<span class="symbol"><A NAME="ref_1633_7" HREF="terminal_interface-curses__ads.htm#ref_1548_22">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1634_7" HREF="terminal_interface-curses__ads.htm#ref_1549_22">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1635_7" HREF="terminal_interface-curses__ads.htm#ref_1550_22">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_1636_7" HREF="terminal_interface-curses__ads.htm#ref_1551_22">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_1632_14" href="terminal_interface-curses__ads.htm#ref_1548_14">Insert</a></span>
+ (<span class="symbol"><a name="ref_1633_7" href="terminal_interface-curses__ads.htm#ref_1548_22">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1634_7" href="terminal_interface-curses__ads.htm#ref_1549_22">Line</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1635_7" href="terminal_interface-curses__ads.htm#ref_1550_22">Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_1636_7" href="terminal_interface-curses__ads.htm#ref_1551_22">Ch</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1638_16">Mvwinsch</A></span> (<span class="symbol"><A NAME="ref_1638_26" HREF="terminal_interface-curses__adb.htm#ref_1638_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_1639_26" HREF="terminal_interface-curses__adb.htm#ref_1638_16">Lin</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_1640_26" HREF="terminal_interface-curses__adb.htm#ref_1638_16">Col</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_1641_26" HREF="terminal_interface-curses__adb.htm#ref_1638_16">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1638_16">Mvwinsch</a></span> (<span class="symbol"><a name="ref_1638_26">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_1639_26">Lin</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_1640_26">Col</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_1641_26">Ch</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Mvwinsch, "mvwinsch");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1638_16">Mvwinsch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1548_22">Win</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1549_22">Line</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1550_22">Column</A>),
- <A HREF="terminal_interface-curses__ads.htm#ref_1551_22">Ch</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A>
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1638_16">Mvwinsch</a> (<a href="terminal_interface-curses__ads.htm#ref_1548_22">Win</a>,
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1549_22">Line</a>),
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1550_22">Column</a>),
+ <a href="terminal_interface-curses__ads.htm#ref_1551_22">Ch</a>) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a>
<b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1548_14">Insert</A>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1653_14" HREF="terminal_interface-curses__ads.htm#ref_1560_14">Insert</A></span> (<span class="symbol"><A NAME="ref_1653_22" HREF="terminal_interface-curses__ads.htm#ref_1560_22">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1654_22" HREF="terminal_interface-curses__ads.htm#ref_1561_22">Str</A></span> : String;
- <span class="symbol"><A NAME="ref_1655_22" HREF="terminal_interface-curses__ads.htm#ref_1562_22">Len</A></span> : Integer := -1)
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1548_14">Insert</a>;
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1653_14" href="terminal_interface-curses__ads.htm#ref_1560_14">Insert</a></span> (<span class="symbol"><a name="ref_1653_22" href="terminal_interface-curses__ads.htm#ref_1560_22">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1654_22" href="terminal_interface-curses__ads.htm#ref_1561_22">Str</a></span> : String;
+ <span class="symbol"><a name="ref_1655_22" href="terminal_interface-curses__ads.htm#ref_1562_22">Len</a></span> : Integer := -1)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1657_16">Winsnstr</A></span> (<span class="symbol"><A NAME="ref_1657_26" HREF="terminal_interface-curses__adb.htm#ref_1657_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_1658_26" HREF="terminal_interface-curses__adb.htm#ref_1657_16">Str</A></span> : char_array;
- <span class="symbol"><A NAME="ref_1659_26" HREF="terminal_interface-curses__adb.htm#ref_1657_16">Len</A></span> : Integer := -1) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1657_16">Winsnstr</a></span> (<span class="symbol"><a name="ref_1657_26">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_1658_26">Str</a></span> : char_array;
+ <span class="symbol"><a name="ref_1659_26">Len</a></span> : Integer := -1) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Winsnstr, "winsnstr");
- <span class="symbol"><A NAME="ref_1662_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1561_22">Str</A>'Length);
- <span class="symbol"><A NAME="ref_1663_7">Length</A></span> : size_t;
+ <span class="symbol"><a name="ref_1662_7">Txt</a></span> : char_array (0 .. <a href="terminal_interface-curses__ads.htm#ref_1561_22">Str</a>'Length);
+ <span class="symbol"><a name="ref_1663_7">Length</a></span> : size_t;
<b>begin</b>
- To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1561_22">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1662_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1663_7">Length</A>);
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1657_16">Winsnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1560_22">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1662_7">Txt</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1562_22">Len</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ To_C (<a href="terminal_interface-curses__ads.htm#ref_1561_22">Str</a>, <a href="terminal_interface-curses__adb.htm#ref_1662_7">Txt</a>, <a href="terminal_interface-curses__adb.htm#ref_1663_7">Length</a>);
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1657_16">Winsnstr</a> (<a href="terminal_interface-curses__ads.htm#ref_1560_22">Win</a>, <a href="terminal_interface-curses__adb.htm#ref_1662_7">Txt</a>, <a href="terminal_interface-curses__ads.htm#ref_1562_22">Len</a>) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1560_14">Insert</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1560_14">Insert</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_1671_14" HREF="terminal_interface-curses__ads.htm#ref_1569_14">Insert</A></span>
- (<span class="symbol"><A NAME="ref_1672_7" HREF="terminal_interface-curses__ads.htm#ref_1569_22">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1673_7" HREF="terminal_interface-curses__ads.htm#ref_1570_22">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1674_7" HREF="terminal_interface-curses__ads.htm#ref_1571_22">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_1675_7" HREF="terminal_interface-curses__ads.htm#ref_1572_22">Str</A></span> : String;
- <span class="symbol"><A NAME="ref_1676_7" HREF="terminal_interface-curses__ads.htm#ref_1573_22">Len</A></span> : Integer := -1)
+ <b>procedure</b> <span class="symbol"><a name="ref_1671_14" href="terminal_interface-curses__ads.htm#ref_1569_14">Insert</a></span>
+ (<span class="symbol"><a name="ref_1672_7" href="terminal_interface-curses__ads.htm#ref_1569_22">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1673_7" href="terminal_interface-curses__ads.htm#ref_1570_22">Line</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1674_7" href="terminal_interface-curses__ads.htm#ref_1571_22">Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_1675_7" href="terminal_interface-curses__ads.htm#ref_1572_22">Str</a></span> : String;
+ <span class="symbol"><a name="ref_1676_7" href="terminal_interface-curses__ads.htm#ref_1573_22">Len</a></span> : Integer := -1)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1678_16">Mvwinsnstr</A></span> (<span class="symbol"><A NAME="ref_1678_28" HREF="terminal_interface-curses__adb.htm#ref_1678_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_1679_28" HREF="terminal_interface-curses__adb.htm#ref_1678_16">Line</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_1680_28" HREF="terminal_interface-curses__adb.htm#ref_1678_16">Column</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_1681_28" HREF="terminal_interface-curses__adb.htm#ref_1678_16">Str</A></span> : char_array;
- <span class="symbol"><A NAME="ref_1682_28" HREF="terminal_interface-curses__adb.htm#ref_1678_16">Len</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1678_16">Mvwinsnstr</a></span> (<span class="symbol"><a name="ref_1678_28">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_1679_28">Line</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_1680_28">Column</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_1681_28">Str</a></span> : char_array;
+ <span class="symbol"><a name="ref_1682_28">Len</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Mvwinsnstr, "mvwinsnstr");
- <span class="symbol"><A NAME="ref_1685_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1572_22">Str</A>'Length);
- <span class="symbol"><A NAME="ref_1686_7">Length</A></span> : size_t;
+ <span class="symbol"><a name="ref_1685_7">Txt</a></span> : char_array (0 .. <a href="terminal_interface-curses__ads.htm#ref_1572_22">Str</a>'Length);
+ <span class="symbol"><a name="ref_1686_7">Length</a></span> : size_t;
<b>begin</b>
- To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1572_22">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1685_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1686_7">Length</A>);
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1678_16">Mvwinsnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1569_22">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1570_22">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1571_22">Column</A>), <A HREF="terminal_interface-curses__adb.htm#ref_1685_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1573_22">Len</A>))
- = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A>
+ To_C (<a href="terminal_interface-curses__ads.htm#ref_1572_22">Str</a>, <a href="terminal_interface-curses__adb.htm#ref_1685_7">Txt</a>, <a href="terminal_interface-curses__adb.htm#ref_1686_7">Length</a>);
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1678_16">Mvwinsnstr</a> (<a href="terminal_interface-curses__ads.htm#ref_1569_22">Win</a>, <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1570_22">Line</a>), <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1571_22">Column</a>), <a href="terminal_interface-curses__adb.htm#ref_1685_7">Txt</a>, <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1573_22">Len</a>))
+ = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a>
<b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1569_14">Insert</A>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1696_14" HREF="terminal_interface-curses__ads.htm#ref_1585_14">Peek</A></span> (<span class="symbol"><A NAME="ref_1696_20" HREF="terminal_interface-curses__ads.htm#ref_1585_20">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1697_20" HREF="terminal_interface-curses__ads.htm#ref_1586_20">Str</A></span> : <b>out</b> String;
- <span class="symbol"><A NAME="ref_1698_20" HREF="terminal_interface-curses__ads.htm#ref_1587_20">Len</A></span> : Integer := -1)
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1569_14">Insert</a>;
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1696_14" href="terminal_interface-curses__ads.htm#ref_1585_14">Peek</a></span> (<span class="symbol"><a name="ref_1696_20" href="terminal_interface-curses__ads.htm#ref_1585_20">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1697_20" href="terminal_interface-curses__ads.htm#ref_1586_20">Str</a></span> : <b>out</b> String;
+ <span class="symbol"><a name="ref_1698_20" href="terminal_interface-curses__ads.htm#ref_1587_20">Len</a></span> : Integer := -1)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1700_16">Winnstr</A></span> (<span class="symbol"><A NAME="ref_1700_25" HREF="terminal_interface-curses__adb.htm#ref_1700_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_1701_25" HREF="terminal_interface-curses__adb.htm#ref_1700_16">Str</A></span> : char_array;
- <span class="symbol"><A NAME="ref_1702_25" HREF="terminal_interface-curses__adb.htm#ref_1700_16">Len</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1700_16">Winnstr</a></span> (<span class="symbol"><a name="ref_1700_25">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_1701_25">Str</a></span> : char_array;
+ <span class="symbol"><a name="ref_1702_25">Len</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Winnstr, "winnstr");
- <span class="symbol"><A NAME="ref_1705_7">N</A></span> : Integer := <A HREF="terminal_interface-curses__ads.htm#ref_1587_20">Len</A>;
- <span class="symbol"><A NAME="ref_1706_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1586_20">Str</A>'Length);
- <span class="symbol"><A NAME="ref_1707_7">Cnt</A></span> : Natural;
+ <span class="symbol"><a name="ref_1705_7">N</a></span> : Integer := <a href="terminal_interface-curses__ads.htm#ref_1587_20">Len</a>;
+ <span class="symbol"><a name="ref_1706_7">Txt</a></span> : char_array (0 .. <a href="terminal_interface-curses__ads.htm#ref_1586_20">Str</a>'Length);
+ <span class="symbol"><a name="ref_1707_7">Cnt</a></span> : Natural;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1705_7">N</A> &lt; 0 <b>then</b>
- <A HREF="terminal_interface-curses__adb.htm#ref_1705_7">N</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1586_20">Str</A>'Length;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1705_7">N</a> &lt; 0 <b>then</b>
+ <a href="terminal_interface-curses__adb.htm#ref_1705_7">N</a> := <a href="terminal_interface-curses__ads.htm#ref_1586_20">Str</a>'Length;
<b>end</b> <b>if</b>;
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1705_7">N</A> &gt; <A HREF="terminal_interface-curses__ads.htm#ref_1586_20">Str</A>'Length <b>then</b>
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1705_7">N</a> &gt; <a href="terminal_interface-curses__ads.htm#ref_1586_20">Str</a>'Length <b>then</b>
<b>raise</b> Constraint_Error;
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses__adb.htm#ref_1706_7">Txt</A> (0) := <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.char'First;
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1700_16">Winnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1585_20">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1706_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1705_7">N</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <a href="terminal_interface-curses__adb.htm#ref_1706_7">Txt</a> (0) := <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.char'First;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1700_16">Winnstr</a> (<a href="terminal_interface-curses__ads.htm#ref_1585_20">Win</a>, <a href="terminal_interface-curses__adb.htm#ref_1706_7">Txt</a>, <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__adb.htm#ref_1705_7">N</a>)) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- To_Ada (<A HREF="terminal_interface-curses__adb.htm#ref_1706_7">Txt</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1586_20">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1707_7">Cnt</A>, True);
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1707_7">Cnt</A> &lt; <A HREF="terminal_interface-curses__ads.htm#ref_1586_20">Str</A>'Length <b>then</b>
- <A HREF="terminal_interface-curses__ads.htm#ref_1586_20">Str</A> ((<A HREF="terminal_interface-curses__ads.htm#ref_1586_20">Str</A>'First + <A HREF="terminal_interface-curses__adb.htm#ref_1707_7">Cnt</A>) .. <A HREF="terminal_interface-curses__ads.htm#ref_1586_20">Str</A>'Last) := (<b>others</b> =&gt; ' ');
+ To_Ada (<a href="terminal_interface-curses__adb.htm#ref_1706_7">Txt</a>, <a href="terminal_interface-curses__ads.htm#ref_1586_20">Str</a>, <a href="terminal_interface-curses__adb.htm#ref_1707_7">Cnt</a>, True);
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1707_7">Cnt</a> &lt; <a href="terminal_interface-curses__ads.htm#ref_1586_20">Str</a>'Length <b>then</b>
+ <a href="terminal_interface-curses__ads.htm#ref_1586_20">Str</a> ((<a href="terminal_interface-curses__ads.htm#ref_1586_20">Str</a>'First + <a href="terminal_interface-curses__adb.htm#ref_1707_7">Cnt</a>) .. <a href="terminal_interface-curses__ads.htm#ref_1586_20">Str</a>'Last) := (<b>others</b> =&gt; ' ');
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1585_14">Peek</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1585_14">Peek</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_1725_14" HREF="terminal_interface-curses__ads.htm#ref_1594_14">Peek</A></span>
- (<span class="symbol"><A NAME="ref_1726_7" HREF="terminal_interface-curses__ads.htm#ref_1594_20">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1727_7" HREF="terminal_interface-curses__ads.htm#ref_1595_20">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1728_7" HREF="terminal_interface-curses__ads.htm#ref_1596_20">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_1729_7" HREF="terminal_interface-curses__ads.htm#ref_1597_20">Str</A></span> : <b>out</b> String;
- <span class="symbol"><A NAME="ref_1730_7" HREF="terminal_interface-curses__ads.htm#ref_1598_20">Len</A></span> : Integer := -1)
+ <b>procedure</b> <span class="symbol"><a name="ref_1725_14" href="terminal_interface-curses__ads.htm#ref_1594_14">Peek</a></span>
+ (<span class="symbol"><a name="ref_1726_7" href="terminal_interface-curses__ads.htm#ref_1594_20">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1727_7" href="terminal_interface-curses__ads.htm#ref_1595_20">Line</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1728_7" href="terminal_interface-curses__ads.htm#ref_1596_20">Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_1729_7" href="terminal_interface-curses__ads.htm#ref_1597_20">Str</a></span> : <b>out</b> String;
+ <span class="symbol"><a name="ref_1730_7" href="terminal_interface-curses__ads.htm#ref_1598_20">Len</a></span> : Integer := -1)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#ref_682_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1594_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1595_20">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1596_20">Column</A>);
- <A HREF="terminal_interface-curses__ads.htm#ref_1585_14">Peek</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1594_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1597_20">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1598_20">Len</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1594_14">Peek</A>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1737_14" HREF="terminal_interface-curses__ads.htm#ref_1609_14">Peek</A></span>
- (<span class="symbol"><A NAME="ref_1738_7" HREF="terminal_interface-curses__ads.htm#ref_1609_20">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1739_7" HREF="terminal_interface-curses__ads.htm#ref_1610_20">Str</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_510_4">Attributed_String</A>;
- <span class="symbol"><A NAME="ref_1740_7" HREF="terminal_interface-curses__ads.htm#ref_1611_20">Len</A></span> : Integer := -1)
+ <a href="terminal_interface-curses__ads.htm#ref_682_14">Move_Cursor</a> (<a href="terminal_interface-curses__ads.htm#ref_1594_20">Win</a>, <a href="terminal_interface-curses__ads.htm#ref_1595_20">Line</a>, <a href="terminal_interface-curses__ads.htm#ref_1596_20">Column</a>);
+ <a href="terminal_interface-curses__ads.htm#ref_1585_14">Peek</a> (<a href="terminal_interface-curses__ads.htm#ref_1594_20">Win</a>, <a href="terminal_interface-curses__ads.htm#ref_1597_20">Str</a>, <a href="terminal_interface-curses__ads.htm#ref_1598_20">Len</a>);
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1594_14">Peek</a>;
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1737_14" href="terminal_interface-curses__ads.htm#ref_1609_14">Peek</a></span>
+ (<span class="symbol"><a name="ref_1738_7" href="terminal_interface-curses__ads.htm#ref_1609_20">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1739_7" href="terminal_interface-curses__ads.htm#ref_1610_20">Str</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_510_4">Attributed_String</a>;
+ <span class="symbol"><a name="ref_1740_7" href="terminal_interface-curses__ads.htm#ref_1611_20">Len</a></span> : Integer := -1)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1742_16">Winchnstr</A></span> (<span class="symbol"><A NAME="ref_1742_27" HREF="terminal_interface-curses__adb.htm#ref_1742_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_1743_27" HREF="terminal_interface-curses__adb.htm#ref_1742_16">Str</A></span> : chtype_array; <span class="comment"><EM>-- out</EM></span>
- <span class="symbol"><A NAME="ref_1744_27" HREF="terminal_interface-curses__adb.htm#ref_1742_16">Len</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1742_16">Winchnstr</a></span> (<span class="symbol"><a name="ref_1742_27">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_1743_27">Str</a></span> : chtype_array; <span class="comment"><em>-- out</em></span>
+ <span class="symbol"><a name="ref_1744_27">Len</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Winchnstr, "winchnstr");
- <span class="symbol"><A NAME="ref_1747_7">N</A></span> : Integer := <A HREF="terminal_interface-curses__ads.htm#ref_1611_20">Len</A>;
- <span class="symbol"><A NAME="ref_1748_7">Txt</A></span> : <b>constant</b> chtype_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1610_20">Str</A>'Length)
- := (0 =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</A>);
- <span class="symbol"><A NAME="ref_1750_7">Cnt</A></span> : Natural := 0;
+ <span class="symbol"><a name="ref_1747_7">N</a></span> : Integer := <a href="terminal_interface-curses__ads.htm#ref_1611_20">Len</a>;
+ <span class="symbol"><a name="ref_1748_7">Txt</a></span> : <b>constant</b> chtype_array (0 .. <a href="terminal_interface-curses__ads.htm#ref_1610_20">Str</a>'Length)
+ := (0 =&gt; <a href="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</a>);
+ <span class="symbol"><a name="ref_1750_7">Cnt</a></span> : Natural := 0;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1747_7">N</A> &lt; 0 <b>then</b>
- <A HREF="terminal_interface-curses__adb.htm#ref_1747_7">N</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1610_20">Str</A>'Length;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1747_7">N</a> &lt; 0 <b>then</b>
+ <a href="terminal_interface-curses__adb.htm#ref_1747_7">N</a> := <a href="terminal_interface-curses__ads.htm#ref_1610_20">Str</a>'Length;
<b>end</b> <b>if</b>;
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1747_7">N</A> &gt; <A HREF="terminal_interface-curses__ads.htm#ref_1610_20">Str</A>'Length <b>then</b>
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1747_7">N</a> &gt; <a href="terminal_interface-curses__ads.htm#ref_1610_20">Str</a>'Length <b>then</b>
<b>raise</b> Constraint_Error;
<b>end</b> <b>if</b>;
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1742_16">Winchnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1609_20">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1748_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1747_7">N</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1742_16">Winchnstr</a> (<a href="terminal_interface-curses__ads.htm#ref_1609_20">Win</a>, <a href="terminal_interface-curses__adb.htm#ref_1748_7">Txt</a>, <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__adb.htm#ref_1747_7">N</a>)) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>for</b> <span class="symbol"><A NAME="ref_1761_11">To</A></span> <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1610_20">Str</A>'<b>Range</b> <b>loop</b>
- <b>exit</b> <b>when</b> <A HREF="terminal_interface-curses__adb.htm#ref_1748_7">Txt</A> (size_t (<A HREF="terminal_interface-curses__adb.htm#ref_1750_7">Cnt</A>)) = <A HREF="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</A>;
- <A HREF="terminal_interface-curses__ads.htm#ref_1610_20">Str</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1761_11">To</A>) := <A HREF="terminal_interface-curses__adb.htm#ref_1748_7">Txt</A> (size_t (<A HREF="terminal_interface-curses__adb.htm#ref_1750_7">Cnt</A>));
- <A HREF="terminal_interface-curses__adb.htm#ref_1750_7">Cnt</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1750_7">Cnt</A> + 1;
+ <b>for</b> <span class="symbol"><a name="ref_1761_11">To</a></span> <b>in</b> <a href="terminal_interface-curses__ads.htm#ref_1610_20">Str</a>'<b>Range</b> <b>loop</b>
+ <b>exit</b> <b>when</b> <a href="terminal_interface-curses__adb.htm#ref_1748_7">Txt</a> (size_t (<a href="terminal_interface-curses__adb.htm#ref_1750_7">Cnt</a>)) = <a href="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</a>;
+ <a href="terminal_interface-curses__ads.htm#ref_1610_20">Str</a> (<a href="terminal_interface-curses__adb.htm#ref_1761_11">To</a>) := <a href="terminal_interface-curses__adb.htm#ref_1748_7">Txt</a> (size_t (<a href="terminal_interface-curses__adb.htm#ref_1750_7">Cnt</a>));
+ <a href="terminal_interface-curses__adb.htm#ref_1750_7">Cnt</a> := <a href="terminal_interface-curses__adb.htm#ref_1750_7">Cnt</a> + 1;
<b>end</b> <b>loop</b>;
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1750_7">Cnt</A> &lt; <A HREF="terminal_interface-curses__ads.htm#ref_1610_20">Str</A>'Length <b>then</b>
- <A HREF="terminal_interface-curses__ads.htm#ref_1610_20">Str</A> ((<A HREF="terminal_interface-curses__ads.htm#ref_1610_20">Str</A>'First + <A HREF="terminal_interface-curses__adb.htm#ref_1750_7">Cnt</A>) .. <A HREF="terminal_interface-curses__ads.htm#ref_1610_20">Str</A>'Last) :=
- (<b>others</b> =&gt; (<A HREF="terminal_interface-curses__ads.htm#ref_492_10">Ch</A> =&gt; ' ',
- <A HREF="terminal_interface-curses__ads.htm#ref_491_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>'First,
- <A HREF="terminal_interface-curses__ads.htm#ref_490_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</A>));
- <b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1609_14">Peek</A>;
-
- <b>procedure</b> <span class="symbol"><A NAME="ref_1774_14" HREF="terminal_interface-curses__ads.htm#ref_1618_14">Peek</A></span>
- (<span class="symbol"><A NAME="ref_1775_7" HREF="terminal_interface-curses__ads.htm#ref_1618_20">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1776_7" HREF="terminal_interface-curses__ads.htm#ref_1619_20">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1777_7" HREF="terminal_interface-curses__ads.htm#ref_1620_20">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_1778_7" HREF="terminal_interface-curses__ads.htm#ref_1621_20">Str</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_510_4">Attributed_String</A>;
- <span class="symbol"><A NAME="ref_1779_7" HREF="terminal_interface-curses__ads.htm#ref_1622_20">Len</A></span> : Integer := -1)
- <b>is</b>
- <b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#ref_682_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1618_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1619_20">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1620_20">Column</A>);
- <A HREF="terminal_interface-curses__ads.htm#ref_1609_14">Peek</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1618_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1621_20">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1622_20">Len</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1618_14">Peek</A>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1786_14" HREF="terminal_interface-curses__ads.htm#ref_1634_14">Get</A></span> (<span class="symbol"><A NAME="ref_1786_19" HREF="terminal_interface-curses__ads.htm#ref_1634_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1787_19" HREF="terminal_interface-curses__ads.htm#ref_1635_19">Str</A></span> : <b>out</b> String;
- <span class="symbol"><A NAME="ref_1788_19" HREF="terminal_interface-curses__ads.htm#ref_1636_19">Len</A></span> : Integer := -1)
- <b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1790_16">Wgetnstr</A></span> (<span class="symbol"><A NAME="ref_1790_26" HREF="terminal_interface-curses__adb.htm#ref_1790_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_1791_26" HREF="terminal_interface-curses__adb.htm#ref_1790_16">Str</A></span> : char_array;
- <span class="symbol"><A NAME="ref_1792_26" HREF="terminal_interface-curses__adb.htm#ref_1790_16">Len</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1750_7">Cnt</a> &lt; <a href="terminal_interface-curses__ads.htm#ref_1610_20">Str</a>'Length <b>then</b>
+ <a href="terminal_interface-curses__ads.htm#ref_1610_20">Str</a> ((<a href="terminal_interface-curses__ads.htm#ref_1610_20">Str</a>'First + <a href="terminal_interface-curses__adb.htm#ref_1750_7">Cnt</a>) .. <a href="terminal_interface-curses__ads.htm#ref_1610_20">Str</a>'Last) :=
+ (<b>others</b> =&gt; (<a href="terminal_interface-curses__ads.htm#ref_492_10">Ch</a> =&gt; ' ',
+ <a href="terminal_interface-curses__ads.htm#ref_491_10">Color</a> =&gt; <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>'First,
+ <a href="terminal_interface-curses__ads.htm#ref_490_10">Attr</a> =&gt; <a href="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</a>));
+ <b>end</b> <b>if</b>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1609_14">Peek</a>;
+
+ <b>procedure</b> <span class="symbol"><a name="ref_1774_14" href="terminal_interface-curses__ads.htm#ref_1618_14">Peek</a></span>
+ (<span class="symbol"><a name="ref_1775_7" href="terminal_interface-curses__ads.htm#ref_1618_20">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1776_7" href="terminal_interface-curses__ads.htm#ref_1619_20">Line</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1777_7" href="terminal_interface-curses__ads.htm#ref_1620_20">Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_1778_7" href="terminal_interface-curses__ads.htm#ref_1621_20">Str</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_510_4">Attributed_String</a>;
+ <span class="symbol"><a name="ref_1779_7" href="terminal_interface-curses__ads.htm#ref_1622_20">Len</a></span> : Integer := -1)
+ <b>is</b>
+ <b>begin</b>
+ <a href="terminal_interface-curses__ads.htm#ref_682_14">Move_Cursor</a> (<a href="terminal_interface-curses__ads.htm#ref_1618_20">Win</a>, <a href="terminal_interface-curses__ads.htm#ref_1619_20">Line</a>, <a href="terminal_interface-curses__ads.htm#ref_1620_20">Column</a>);
+ <a href="terminal_interface-curses__ads.htm#ref_1609_14">Peek</a> (<a href="terminal_interface-curses__ads.htm#ref_1618_20">Win</a>, <a href="terminal_interface-curses__ads.htm#ref_1621_20">Str</a>, <a href="terminal_interface-curses__ads.htm#ref_1622_20">Len</a>);
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1618_14">Peek</a>;
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1786_14" href="terminal_interface-curses__ads.htm#ref_1634_14">Get</a></span> (<span class="symbol"><a name="ref_1786_19" href="terminal_interface-curses__ads.htm#ref_1634_19">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1787_19" href="terminal_interface-curses__ads.htm#ref_1635_19">Str</a></span> : <b>out</b> String;
+ <span class="symbol"><a name="ref_1788_19" href="terminal_interface-curses__ads.htm#ref_1636_19">Len</a></span> : Integer := -1)
+ <b>is</b>
+ <b>function</b> <span class="symbol"><a name="ref_1790_16">Wgetnstr</a></span> (<span class="symbol"><a name="ref_1790_26">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_1791_26">Str</a></span> : char_array;
+ <span class="symbol"><a name="ref_1792_26">Len</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Wgetnstr, "wgetnstr");
- <span class="symbol"><A NAME="ref_1795_7">N</A></span> : Integer := <A HREF="terminal_interface-curses__ads.htm#ref_1636_19">Len</A>;
- <span class="symbol"><A NAME="ref_1796_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1635_19">Str</A>'Length);
- <span class="symbol"><A NAME="ref_1797_7">Cnt</A></span> : Natural;
+ <span class="symbol"><a name="ref_1795_7">N</a></span> : Integer := <a href="terminal_interface-curses__ads.htm#ref_1636_19">Len</a>;
+ <span class="symbol"><a name="ref_1796_7">Txt</a></span> : char_array (0 .. <a href="terminal_interface-curses__ads.htm#ref_1635_19">Str</a>'Length);
+ <span class="symbol"><a name="ref_1797_7">Cnt</a></span> : Natural;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1795_7">N</A> &lt; 0 <b>then</b>
- <A HREF="terminal_interface-curses__adb.htm#ref_1795_7">N</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1635_19">Str</A>'Length;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1795_7">N</a> &lt; 0 <b>then</b>
+ <a href="terminal_interface-curses__adb.htm#ref_1795_7">N</a> := <a href="terminal_interface-curses__ads.htm#ref_1635_19">Str</a>'Length;
<b>end</b> <b>if</b>;
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1795_7">N</A> &gt; <A HREF="terminal_interface-curses__ads.htm#ref_1635_19">Str</A>'Length <b>then</b>
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1795_7">N</a> &gt; <a href="terminal_interface-curses__ads.htm#ref_1635_19">Str</a>'Length <b>then</b>
<b>raise</b> Constraint_Error;
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses__adb.htm#ref_1796_7">Txt</A> (0) := <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.char'First;
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1790_16">Wgetnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1634_19">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1796_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1795_7">N</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <a href="terminal_interface-curses__adb.htm#ref_1796_7">Txt</a> (0) := <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.char'First;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1790_16">Wgetnstr</a> (<a href="terminal_interface-curses__ads.htm#ref_1634_19">Win</a>, <a href="terminal_interface-curses__adb.htm#ref_1796_7">Txt</a>, <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__adb.htm#ref_1795_7">N</a>)) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- To_Ada (<A HREF="terminal_interface-curses__adb.htm#ref_1796_7">Txt</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1635_19">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1797_7">Cnt</A>, True);
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1797_7">Cnt</A> &lt; <A HREF="terminal_interface-curses__ads.htm#ref_1635_19">Str</A>'Length <b>then</b>
- <A HREF="terminal_interface-curses__ads.htm#ref_1635_19">Str</A> ((<A HREF="terminal_interface-curses__ads.htm#ref_1635_19">Str</A>'First + <A HREF="terminal_interface-curses__adb.htm#ref_1797_7">Cnt</A>) .. <A HREF="terminal_interface-curses__ads.htm#ref_1635_19">Str</A>'Last) := (<b>others</b> =&gt; ' ');
+ To_Ada (<a href="terminal_interface-curses__adb.htm#ref_1796_7">Txt</a>, <a href="terminal_interface-curses__ads.htm#ref_1635_19">Str</a>, <a href="terminal_interface-curses__adb.htm#ref_1797_7">Cnt</a>, True);
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1797_7">Cnt</a> &lt; <a href="terminal_interface-curses__ads.htm#ref_1635_19">Str</a>'Length <b>then</b>
+ <a href="terminal_interface-curses__ads.htm#ref_1635_19">Str</a> ((<a href="terminal_interface-curses__ads.htm#ref_1635_19">Str</a>'First + <a href="terminal_interface-curses__adb.htm#ref_1797_7">Cnt</a>) .. <a href="terminal_interface-curses__ads.htm#ref_1635_19">Str</a>'Last) := (<b>others</b> =&gt; ' ');
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1634_14">Get</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1634_14">Get</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_1815_14" HREF="terminal_interface-curses__ads.htm#ref_1645_14">Get</A></span>
- (<span class="symbol"><A NAME="ref_1816_7" HREF="terminal_interface-curses__ads.htm#ref_1645_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1817_7" HREF="terminal_interface-curses__ads.htm#ref_1646_19">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1818_7" HREF="terminal_interface-curses__ads.htm#ref_1647_19">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_1819_7" HREF="terminal_interface-curses__ads.htm#ref_1648_19">Str</A></span> : <b>out</b> String;
- <span class="symbol"><A NAME="ref_1820_7" HREF="terminal_interface-curses__ads.htm#ref_1649_19">Len</A></span> : Integer := -1)
+ <b>procedure</b> <span class="symbol"><a name="ref_1815_14" href="terminal_interface-curses__ads.htm#ref_1645_14">Get</a></span>
+ (<span class="symbol"><a name="ref_1816_7" href="terminal_interface-curses__ads.htm#ref_1645_19">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1817_7" href="terminal_interface-curses__ads.htm#ref_1646_19">Line</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1818_7" href="terminal_interface-curses__ads.htm#ref_1647_19">Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_1819_7" href="terminal_interface-curses__ads.htm#ref_1648_19">Str</a></span> : <b>out</b> String;
+ <span class="symbol"><a name="ref_1820_7" href="terminal_interface-curses__ads.htm#ref_1649_19">Len</a></span> : Integer := -1)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#ref_682_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1645_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1646_19">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1647_19">Column</A>);
- <A HREF="terminal_interface-curses__ads.htm#ref_1634_14">Get</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1645_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1648_19">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1649_19">Len</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1645_14">Get</A>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1827_14" HREF="terminal_interface-curses__ads.htm#ref_1670_14">Init_Soft_Label_Keys</A></span>
- (<span class="symbol"><A NAME="ref_1828_7" HREF="terminal_interface-curses__ads.htm#ref_1671_7">Format</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1662_9">Soft_Label_Key_Format</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1662_35">Three_Two_Three</A>)
+ <a href="terminal_interface-curses__ads.htm#ref_682_14">Move_Cursor</a> (<a href="terminal_interface-curses__ads.htm#ref_1645_19">Win</a>, <a href="terminal_interface-curses__ads.htm#ref_1646_19">Line</a>, <a href="terminal_interface-curses__ads.htm#ref_1647_19">Column</a>);
+ <a href="terminal_interface-curses__ads.htm#ref_1634_14">Get</a> (<a href="terminal_interface-curses__ads.htm#ref_1645_19">Win</a>, <a href="terminal_interface-curses__ads.htm#ref_1648_19">Str</a>, <a href="terminal_interface-curses__ads.htm#ref_1649_19">Len</a>);
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1645_14">Get</a>;
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1827_14" href="terminal_interface-curses__ads.htm#ref_1670_14">Init_Soft_Label_Keys</a></span>
+ (<span class="symbol"><a name="ref_1828_7" href="terminal_interface-curses__ads.htm#ref_1671_7">Format</a></span> : <a href="terminal_interface-curses__ads.htm#ref_1662_9">Soft_Label_Key_Format</a> := <a href="terminal_interface-curses__ads.htm#ref_1662_35">Three_Two_Three</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1830_16">Slk_Init</A></span> (<span class="symbol"><A NAME="ref_1830_26" HREF="terminal_interface-curses__adb.htm#ref_1830_16">Fmt</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1830_16">Slk_Init</a></span> (<span class="symbol"><a name="ref_1830_26">Fmt</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Slk_Init, "slk_init");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1830_16">Slk_Init</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1662_9">Soft_Label_Key_Format</A>'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1671_7">Format</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1830_16">Slk_Init</a> (<a href="terminal_interface-curses__ads.htm#ref_1662_9">Soft_Label_Key_Format</a>'Pos (<a href="terminal_interface-curses__ads.htm#ref_1671_7">Format</a>)) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1670_14">Init_Soft_Label_Keys</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1670_14">Init_Soft_Label_Keys</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_1838_14" HREF="terminal_interface-curses__ads.htm#ref_1676_14">Set_Soft_Label_Key</A></span> (<span class="symbol"><A NAME="ref_1838_34" HREF="terminal_interface-curses__ads.htm#ref_1676_34">Label</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1666_9">Label_Number</A>;
- <span class="symbol"><A NAME="ref_1839_34" HREF="terminal_interface-curses__ads.htm#ref_1677_34">Text</A></span> : String;
- <span class="symbol"><A NAME="ref_1840_34" HREF="terminal_interface-curses__ads.htm#ref_1678_34">Fmt</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1667_9">Label_Justification</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1667_33">Left</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_1838_14" href="terminal_interface-curses__ads.htm#ref_1676_14">Set_Soft_Label_Key</a></span> (<span class="symbol"><a name="ref_1838_34" href="terminal_interface-curses__ads.htm#ref_1676_34">Label</a></span> : <a href="terminal_interface-curses__ads.htm#ref_1666_9">Label_Number</a>;
+ <span class="symbol"><a name="ref_1839_34" href="terminal_interface-curses__ads.htm#ref_1677_34">Text</a></span> : String;
+ <span class="symbol"><a name="ref_1840_34" href="terminal_interface-curses__ads.htm#ref_1678_34">Fmt</a></span> : <a href="terminal_interface-curses__ads.htm#ref_1667_9">Label_Justification</a> := <a href="terminal_interface-curses__ads.htm#ref_1667_33">Left</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1842_16">Slk_Set</A></span> (<span class="symbol"><A NAME="ref_1842_25" HREF="terminal_interface-curses__adb.htm#ref_1842_16">Label</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_1843_25" HREF="terminal_interface-curses__adb.htm#ref_1842_16">Txt</A></span> : char_array;
- <span class="symbol"><A NAME="ref_1844_25" HREF="terminal_interface-curses__adb.htm#ref_1842_16">Fmt</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1842_16">Slk_Set</a></span> (<span class="symbol"><a name="ref_1842_25">Label</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_1843_25">Txt</a></span> : char_array;
+ <span class="symbol"><a name="ref_1844_25">Fmt</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Slk_Set, "slk_set");
- <span class="symbol"><A NAME="ref_1847_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1677_34">Text</A>'Length);
- <span class="symbol"><A NAME="ref_1848_7">Len</A></span> : size_t;
+ <span class="symbol"><a name="ref_1847_7">Txt</a></span> : char_array (0 .. <a href="terminal_interface-curses__ads.htm#ref_1677_34">Text</a>'Length);
+ <span class="symbol"><a name="ref_1848_7">Len</a></span> : size_t;
<b>begin</b>
- To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1677_34">Text</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1847_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1848_7">Len</A>);
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1842_16">Slk_Set</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1676_34">Label</A>), <A HREF="terminal_interface-curses__adb.htm#ref_1847_7">Txt</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1667_9">Label_Justification</A>'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1678_34">Fmt</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A>
+ To_C (<a href="terminal_interface-curses__ads.htm#ref_1677_34">Text</a>, <a href="terminal_interface-curses__adb.htm#ref_1847_7">Txt</a>, <a href="terminal_interface-curses__adb.htm#ref_1848_7">Len</a>);
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1842_16">Slk_Set</a> (<a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1676_34">Label</a>), <a href="terminal_interface-curses__adb.htm#ref_1847_7">Txt</a>,
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1667_9">Label_Justification</a>'Pos (<a href="terminal_interface-curses__ads.htm#ref_1678_34">Fmt</a>))) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a>
<b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1676_14">Set_Soft_Label_Key</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1676_14">Set_Soft_Label_Key</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_1858_14" HREF="terminal_interface-curses__ads.htm#ref_1683_14">Refresh_Soft_Label_Keys</A></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1858_14" href="terminal_interface-curses__ads.htm#ref_1683_14">Refresh_Soft_Label_Keys</a></span>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1860_16">Slk_Refresh</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1860_16">Slk_Refresh</a></span> <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Slk_Refresh, "slk_refresh");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1860_16">Slk_Refresh</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1860_16">Slk_Refresh</a> = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1683_14">Refresh_Soft_Label_Keys</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1683_14">Refresh_Soft_Label_Keys</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_1868_14" HREF="terminal_interface-curses__ads.htm#ref_1688_14">Refresh_Soft_Label_Keys_Without_Update</A></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1868_14" href="terminal_interface-curses__ads.htm#ref_1688_14">Refresh_Soft_Label_Keys_Without_Update</a></span>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1870_16">Slk_Noutrefresh</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1870_16">Slk_Noutrefresh</a></span> <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Slk_Noutrefresh, "slk_noutrefresh");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1870_16">Slk_Noutrefresh</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1870_16">Slk_Noutrefresh</a> = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1688_14">Refresh_Soft_Label_Keys_Without_Update</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1688_14">Refresh_Soft_Label_Keys_Without_Update</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_1878_14" HREF="terminal_interface-curses__ads.htm#ref_1693_14">Get_Soft_Label_Key</A></span> (<span class="symbol"><A NAME="ref_1878_34" HREF="terminal_interface-curses__ads.htm#ref_1693_34">Label</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1666_9">Label_Number</A>;
- <span class="symbol"><A NAME="ref_1879_34" HREF="terminal_interface-curses__ads.htm#ref_1694_34">Text</A></span> : <b>out</b> String)
+ <b>procedure</b> <span class="symbol"><a name="ref_1878_14" href="terminal_interface-curses__ads.htm#ref_1693_14">Get_Soft_Label_Key</a></span> (<span class="symbol"><a name="ref_1878_34" href="terminal_interface-curses__ads.htm#ref_1693_34">Label</a></span> : <a href="terminal_interface-curses__ads.htm#ref_1666_9">Label_Number</a>;
+ <span class="symbol"><a name="ref_1879_34" href="terminal_interface-curses__ads.htm#ref_1694_34">Text</a></span> : <b>out</b> String)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1881_16">Slk_Label</A></span> (<span class="symbol"><A NAME="ref_1881_27" HREF="terminal_interface-curses__adb.htm#ref_1881_16">Label</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> chars_ptr;
+ <b>function</b> <span class="symbol"><a name="ref_1881_16">Slk_Label</a></span> (<span class="symbol"><a name="ref_1881_27">Label</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> chars_ptr;
<b>pragma</b> Import (C, Slk_Label, "slk_label");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_91_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1881_16">Slk_Label</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1693_34">Label</A>)), <A HREF="terminal_interface-curses__ads.htm#ref_1694_34">Text</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1693_14">Get_Soft_Label_Key</A>;
+ <a href="terminal_interface-curses-aux__ads.htm#ref_91_14">Fill_String</a> (<a href="terminal_interface-curses__adb.htm#ref_1881_16">Slk_Label</a> (<a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1693_34">Label</a>)), <a href="terminal_interface-curses__ads.htm#ref_1694_34">Text</a>);
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1693_14">Get_Soft_Label_Key</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_1887_13" HREF="terminal_interface-curses__ads.htm#ref_1698_13">Get_Soft_Label_Key</A></span> (<span class="symbol"><A NAME="ref_1887_33" HREF="terminal_interface-curses__ads.htm#ref_1698_33">Label</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1666_9">Label_Number</A>) <b>return</b> String
+ <b>function</b> <span class="symbol"><a name="ref_1887_13" href="terminal_interface-curses__ads.htm#ref_1698_13">Get_Soft_Label_Key</a></span> (<span class="symbol"><a name="ref_1887_33" href="terminal_interface-curses__ads.htm#ref_1698_33">Label</a></span> : <a href="terminal_interface-curses__ads.htm#ref_1666_9">Label_Number</a>) <b>return</b> String
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1889_16">Slk_Label</A></span> (<span class="symbol"><A NAME="ref_1889_27" HREF="terminal_interface-curses__adb.htm#ref_1889_16">Label</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> chars_ptr;
+ <b>function</b> <span class="symbol"><a name="ref_1889_16">Slk_Label</a></span> (<span class="symbol"><a name="ref_1889_27">Label</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> chars_ptr;
<b>pragma</b> Import (C, Slk_Label, "slk_label");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1889_16">Slk_Label</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1698_33">Label</A>)));
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1698_13">Get_Soft_Label_Key</A>;
+ <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_96_13">Fill_String</a> (<a href="terminal_interface-curses__adb.htm#ref_1889_16">Slk_Label</a> (<a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1698_33">Label</a>)));
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1698_13">Get_Soft_Label_Key</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_1895_14" HREF="terminal_interface-curses__ads.htm#ref_1704_14">Clear_Soft_Label_Keys</A></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1895_14" href="terminal_interface-curses__ads.htm#ref_1704_14">Clear_Soft_Label_Keys</a></span>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1897_16">Slk_Clear</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1897_16">Slk_Clear</a></span> <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Slk_Clear, "slk_clear");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1897_16">Slk_Clear</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1897_16">Slk_Clear</a> = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1704_14">Clear_Soft_Label_Keys</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1704_14">Clear_Soft_Label_Keys</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_1905_14" HREF="terminal_interface-curses__ads.htm#ref_1709_14">Restore_Soft_Label_Keys</A></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1905_14" href="terminal_interface-curses__ads.htm#ref_1709_14">Restore_Soft_Label_Keys</a></span>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1907_16">Slk_Restore</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1907_16">Slk_Restore</a></span> <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Slk_Restore, "slk_restore");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1907_16">Slk_Restore</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1907_16">Slk_Restore</a> = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1709_14">Restore_Soft_Label_Keys</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1709_14">Restore_Soft_Label_Keys</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_1915_14" HREF="terminal_interface-curses__ads.htm#ref_1714_14">Touch_Soft_Label_Keys</A></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1915_14" href="terminal_interface-curses__ads.htm#ref_1714_14">Touch_Soft_Label_Keys</a></span>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1917_16">Slk_Touch</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1917_16">Slk_Touch</a></span> <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Slk_Touch, "slk_touch");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1917_16">Slk_Touch</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1917_16">Slk_Touch</a> = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1714_14">Touch_Soft_Label_Keys</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1714_14">Touch_Soft_Label_Keys</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_1925_14" HREF="terminal_interface-curses__ads.htm#ref_1719_14">Switch_Soft_Label_Key_Attributes</A></span>
- (<span class="symbol"><A NAME="ref_1926_7" HREF="terminal_interface-curses__ads.htm#ref_1720_7">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A>;
- <span class="symbol"><A NAME="ref_1927_7" HREF="terminal_interface-curses__ads.htm#ref_1721_7">On</A></span> : Boolean := True)
+ <b>procedure</b> <span class="symbol"><a name="ref_1925_14" href="terminal_interface-curses__ads.htm#ref_1719_14">Switch_Soft_Label_Key_Attributes</a></span>
+ (<span class="symbol"><a name="ref_1926_7" href="terminal_interface-curses__ads.htm#ref_1720_7">Attr</a></span> : <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a>;
+ <span class="symbol"><a name="ref_1927_7" href="terminal_interface-curses__ads.htm#ref_1721_7">On</a></span> : Boolean := True)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1929_16">Slk_Attron</A></span> (<span class="symbol"><A NAME="ref_1929_28" HREF="terminal_interface-curses__adb.htm#ref_1929_16">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1929_16">Slk_Attron</a></span> (<span class="symbol"><a name="ref_1929_28">Ch</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Slk_Attron, "slk_attron");
- <b>function</b> <span class="symbol"><A NAME="ref_1931_16">Slk_Attroff</A></span> (<span class="symbol"><A NAME="ref_1931_29" HREF="terminal_interface-curses__adb.htm#ref_1931_16">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1931_16">Slk_Attroff</a></span> (<span class="symbol"><a name="ref_1931_29">Ch</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Slk_Attroff, "slk_attroff");
- <span class="symbol"><A NAME="ref_1934_7">Err</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_1935_7">Ch</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_492_10">Ch</A> =&gt; Character'First,
- <A HREF="terminal_interface-curses__ads.htm#ref_490_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_1720_7">Attr</A>,
- <A HREF="terminal_interface-curses__ads.htm#ref_491_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>'First);
+ <span class="symbol"><a name="ref_1934_7">Err</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_1935_7">Ch</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a> := (<a href="terminal_interface-curses__ads.htm#ref_492_10">Ch</a> =&gt; Character'First,
+ <a href="terminal_interface-curses__ads.htm#ref_490_10">Attr</a> =&gt; <a href="terminal_interface-curses__ads.htm#ref_1720_7">Attr</a>,
+ <a href="terminal_interface-curses__ads.htm#ref_491_10">Color</a> =&gt; <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>'First);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1721_7">On</A> <b>then</b>
- <A HREF="terminal_interface-curses__adb.htm#ref_1934_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1929_16">Slk_Attron</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1935_7">Ch</A>);
+ <b>if</b> <a href="terminal_interface-curses__ads.htm#ref_1721_7">On</a> <b>then</b>
+ <a href="terminal_interface-curses__adb.htm#ref_1934_7">Err</a> := <a href="terminal_interface-curses__adb.htm#ref_1929_16">Slk_Attron</a> (<a href="terminal_interface-curses__adb.htm#ref_1935_7">Ch</a>);
<b>else</b>
- <A HREF="terminal_interface-curses__adb.htm#ref_1934_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1931_16">Slk_Attroff</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1935_7">Ch</A>);
+ <a href="terminal_interface-curses__adb.htm#ref_1934_7">Err</a> := <a href="terminal_interface-curses__adb.htm#ref_1931_16">Slk_Attroff</a> (<a href="terminal_interface-curses__adb.htm#ref_1935_7">Ch</a>);
<b>end</b> <b>if</b>;
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1934_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1934_7">Err</a> = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1719_14">Switch_Soft_Label_Key_Attributes</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1719_14">Switch_Soft_Label_Key_Attributes</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_1949_14" HREF="terminal_interface-curses__ads.htm#ref_1727_14">Set_Soft_Label_Key_Attributes</A></span>
- (<span class="symbol"><A NAME="ref_1950_7" HREF="terminal_interface-curses__ads.htm#ref_1728_7">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</A>;
- <span class="symbol"><A NAME="ref_1951_7" HREF="terminal_interface-curses__ads.htm#ref_1729_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>'First)
+ <b>procedure</b> <span class="symbol"><a name="ref_1949_14" href="terminal_interface-curses__ads.htm#ref_1727_14">Set_Soft_Label_Key_Attributes</a></span>
+ (<span class="symbol"><a name="ref_1950_7" href="terminal_interface-curses__ads.htm#ref_1728_7">Attr</a></span> : <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a> := <a href="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</a>;
+ <span class="symbol"><a name="ref_1951_7" href="terminal_interface-curses__ads.htm#ref_1729_7">Color</a></span> : <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a> := <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>'First)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1953_16">Slk_Attrset</A></span> (<span class="symbol"><A NAME="ref_1953_29" HREF="terminal_interface-curses__adb.htm#ref_1953_16">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1953_16">Slk_Attrset</a></span> (<span class="symbol"><a name="ref_1953_29">Ch</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Slk_Attrset, "slk_attrset");
- <span class="symbol"><A NAME="ref_1956_7">Ch</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_492_10">Ch</A> =&gt; Character'First,
- <A HREF="terminal_interface-curses__ads.htm#ref_490_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_1728_7">Attr</A>,
- <A HREF="terminal_interface-curses__ads.htm#ref_491_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_1729_7">Color</A>);
+ <span class="symbol"><a name="ref_1956_7">Ch</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a> := (<a href="terminal_interface-curses__ads.htm#ref_492_10">Ch</a> =&gt; Character'First,
+ <a href="terminal_interface-curses__ads.htm#ref_490_10">Attr</a> =&gt; <a href="terminal_interface-curses__ads.htm#ref_1728_7">Attr</a>,
+ <a href="terminal_interface-curses__ads.htm#ref_491_10">Color</a> =&gt; <a href="terminal_interface-curses__ads.htm#ref_1729_7">Color</a>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1953_16">Slk_Attrset</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1956_7">Ch</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1953_16">Slk_Attrset</a> (<a href="terminal_interface-curses__adb.htm#ref_1956_7">Ch</a>) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1727_14">Set_Soft_Label_Key_Attributes</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1727_14">Set_Soft_Label_Key_Attributes</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_1965_13" HREF="terminal_interface-curses__ads.htm#ref_1734_13">Get_Soft_Label_Key_Attributes</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A>
+ <b>function</b> <span class="symbol"><a name="ref_1965_13" href="terminal_interface-curses__ads.htm#ref_1734_13">Get_Soft_Label_Key_Attributes</a></span> <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1967_16">Slk_Attr</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1967_16">Slk_Attr</a></span> <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>;
<b>pragma</b> Import (C, Slk_Attr, "slk_attr");
- <span class="symbol"><A NAME="ref_1970_7">Attr</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1967_16">Slk_Attr</A>;
+ <span class="symbol"><a name="ref_1970_7">Attr</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a> := <a href="terminal_interface-curses__adb.htm#ref_1967_16">Slk_Attr</a>;
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_1970_7">Attr</A>.<A HREF="terminal_interface-curses__ads.htm#ref_490_10">Attr</A>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1734_13">Get_Soft_Label_Key_Attributes</A>;
+ <b>return</b> <a href="terminal_interface-curses__adb.htm#ref_1970_7">Attr</a>.<a href="terminal_interface-curses__ads.htm#ref_490_10">Attr</a>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1734_13">Get_Soft_Label_Key_Attributes</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_1975_13" HREF="terminal_interface-curses__ads.htm#ref_1738_13">Get_Soft_Label_Key_Attributes</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>
+ <b>function</b> <span class="symbol"><a name="ref_1975_13" href="terminal_interface-curses__ads.htm#ref_1738_13">Get_Soft_Label_Key_Attributes</a></span> <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1977_16">Slk_Attr</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1977_16">Slk_Attr</a></span> <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>;
<b>pragma</b> Import (C, Slk_Attr, "slk_attr");
- <span class="symbol"><A NAME="ref_1980_7">Attr</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1977_16">Slk_Attr</A>;
+ <span class="symbol"><a name="ref_1980_7">Attr</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a> := <a href="terminal_interface-curses__adb.htm#ref_1977_16">Slk_Attr</a>;
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_1980_7">Attr</A>.<A HREF="terminal_interface-curses__ads.htm#ref_491_10">Color</A>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1738_13">Get_Soft_Label_Key_Attributes</A>;
+ <b>return</b> <a href="terminal_interface-curses__adb.htm#ref_1980_7">Attr</a>.<a href="terminal_interface-curses__ads.htm#ref_491_10">Color</a>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1738_13">Get_Soft_Label_Key_Attributes</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_1985_14" HREF="terminal_interface-curses__ads.htm#ref_1743_14">Set_Soft_Label_Key_Color</A></span> (<span class="symbol"><A NAME="ref_1985_40" HREF="terminal_interface-curses__ads.htm#ref_1743_40">Pair</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_1985_14" href="terminal_interface-curses__ads.htm#ref_1743_14">Set_Soft_Label_Key_Color</a></span> (<span class="symbol"><a name="ref_1985_40" href="terminal_interface-curses__ads.htm#ref_1743_40">Pair</a></span> : <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1987_16">Slk_Color</A></span> (<span class="symbol"><A NAME="ref_1987_27" HREF="terminal_interface-curses__adb.htm#ref_1987_16">Color</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1987_16">Slk_Color</a></span> (<span class="symbol"><a name="ref_1987_27">Color</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Slk_Color, "slk_color");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1987_16">Slk_Color</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1743_40">Pair</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1987_16">Slk_Color</a> (<a href="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</a> (<a href="terminal_interface-curses__ads.htm#ref_1743_40">Pair</a>)) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1743_14">Set_Soft_Label_Key_Color</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1743_14">Set_Soft_Label_Key_Color</a>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1996_14" HREF="terminal_interface-curses__ads.htm#ref_1757_14">Enable_Key</A></span> (<span class="symbol"><A NAME="ref_1996_26" HREF="terminal_interface-curses__ads.htm#ref_1757_26">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>;
- <span class="symbol"><A NAME="ref_1997_26" HREF="terminal_interface-curses__ads.htm#ref_1758_26">Enable</A></span> : Boolean := True)
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1996_14" href="terminal_interface-curses__ads.htm#ref_1757_14">Enable_Key</a></span> (<span class="symbol"><a name="ref_1996_26" href="terminal_interface-curses__ads.htm#ref_1757_26">Key</a></span> : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>;
+ <span class="symbol"><a name="ref_1997_26" href="terminal_interface-curses__ads.htm#ref_1758_26">Enable</a></span> : Boolean := True)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_1999_16">Keyok</A></span> (<span class="symbol"><A NAME="ref_1999_23" HREF="terminal_interface-curses__adb.htm#ref_1999_16">Keycode</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_2000_23" HREF="terminal_interface-curses__adb.htm#ref_1999_16">On_Off</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_1999_16">Keyok</a></span> (<span class="symbol"><a name="ref_1999_23">Keycode</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_2000_23">On_Off</a></span> : <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Keyok, "keyok");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1999_16">Keyok</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1757_26">Key</A>), <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1758_26">Enable</A>)))
- = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A>
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_1999_16">Keyok</a> (<a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1757_26">Key</a>), <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a> (Boolean'Pos (<a href="terminal_interface-curses__ads.htm#ref_1758_26">Enable</a>)))
+ = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a>
<b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1757_14">Enable_Key</A>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_2010_14" HREF="terminal_interface-curses__ads.htm#ref_1767_14">Define_Key</A></span> (<span class="symbol"><A NAME="ref_2010_26" HREF="terminal_interface-curses__ads.htm#ref_1767_26">Definition</A></span> : String;
- <span class="symbol"><A NAME="ref_2011_26" HREF="terminal_interface-curses__ads.htm#ref_1768_26">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>)
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1757_14">Enable_Key</a>;
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_2010_14" href="terminal_interface-curses__ads.htm#ref_1767_14">Define_Key</a></span> (<span class="symbol"><a name="ref_2010_26" href="terminal_interface-curses__ads.htm#ref_1767_26">Definition</a></span> : String;
+ <span class="symbol"><a name="ref_2011_26" href="terminal_interface-curses__ads.htm#ref_1768_26">Key</a></span> : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_2013_16">Defkey</A></span> (<span class="symbol"><A NAME="ref_2013_24" HREF="terminal_interface-curses__adb.htm#ref_2013_16">Def</A></span> : char_array;
- <span class="symbol"><A NAME="ref_2014_24" HREF="terminal_interface-curses__adb.htm#ref_2013_16">Key</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_2013_16">Defkey</a></span> (<span class="symbol"><a name="ref_2013_24">Def</a></span> : char_array;
+ <span class="symbol"><a name="ref_2014_24">Key</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Defkey, "define_key");
- <span class="symbol"><A NAME="ref_2017_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1767_26">Definition</A>'Length);
- <span class="symbol"><A NAME="ref_2018_7">Length</A></span> : size_t;
+ <span class="symbol"><a name="ref_2017_7">Txt</a></span> : char_array (0 .. <a href="terminal_interface-curses__ads.htm#ref_1767_26">Definition</a>'Length);
+ <span class="symbol"><a name="ref_2018_7">Length</a></span> : size_t;
<b>begin</b>
- To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1767_26">Definition</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2017_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2018_7">Length</A>);
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2013_16">Defkey</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2017_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1768_26">Key</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ To_C (<a href="terminal_interface-curses__ads.htm#ref_1767_26">Definition</a>, <a href="terminal_interface-curses__adb.htm#ref_2017_7">Txt</a>, <a href="terminal_interface-curses__adb.htm#ref_2018_7">Length</a>);
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_2013_16">Defkey</a> (<a href="terminal_interface-curses__adb.htm#ref_2017_7">Txt</a>, <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1768_26">Key</a>)) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1767_14">Define_Key</A>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_2026_14" HREF="terminal_interface-curses__ads.htm#ref_1793_14">Un_Control</A></span> (<span class="symbol"><A NAME="ref_2026_26" HREF="terminal_interface-curses__ads.htm#ref_1793_26">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>;
- <span class="symbol"><A NAME="ref_2027_26" HREF="terminal_interface-curses__ads.htm#ref_1794_26">Str</A></span> : <b>out</b> String)
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1767_14">Define_Key</a>;
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_2026_14" href="terminal_interface-curses__ads.htm#ref_1793_14">Un_Control</a></span> (<span class="symbol"><a name="ref_2026_26" href="terminal_interface-curses__ads.htm#ref_1793_26">Ch</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>;
+ <span class="symbol"><a name="ref_2027_26" href="terminal_interface-curses__ads.htm#ref_1794_26">Str</a></span> : <b>out</b> String)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_2029_16">Unctrl</A></span> (<span class="symbol"><A NAME="ref_2029_24" HREF="terminal_interface-curses__adb.htm#ref_2029_16">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>) <b>return</b> chars_ptr;
+ <b>function</b> <span class="symbol"><a name="ref_2029_16">Unctrl</a></span> (<span class="symbol"><a name="ref_2029_24">Ch</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>) <b>return</b> chars_ptr;
<b>pragma</b> Import (C, Unctrl, "unctrl");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_91_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2029_16">Unctrl</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1793_26">Ch</A>), <A HREF="terminal_interface-curses__ads.htm#ref_1794_26">Str</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1793_14">Un_Control</A>;
+ <a href="terminal_interface-curses-aux__ads.htm#ref_91_14">Fill_String</a> (<a href="terminal_interface-curses__adb.htm#ref_2029_16">Unctrl</a> (<a href="terminal_interface-curses__ads.htm#ref_1793_26">Ch</a>), <a href="terminal_interface-curses__ads.htm#ref_1794_26">Str</a>);
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1793_14">Un_Control</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_2035_13" HREF="terminal_interface-curses__ads.htm#ref_1798_13">Un_Control</A></span> (<span class="symbol"><A NAME="ref_2035_25" HREF="terminal_interface-curses__ads.htm#ref_1798_25">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>) <b>return</b> String
+ <b>function</b> <span class="symbol"><a name="ref_2035_13" href="terminal_interface-curses__ads.htm#ref_1798_13">Un_Control</a></span> (<span class="symbol"><a name="ref_2035_25" href="terminal_interface-curses__ads.htm#ref_1798_25">Ch</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>) <b>return</b> String
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_2037_16">Unctrl</A></span> (<span class="symbol"><A NAME="ref_2037_24" HREF="terminal_interface-curses__adb.htm#ref_2037_16">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>) <b>return</b> chars_ptr;
+ <b>function</b> <span class="symbol"><a name="ref_2037_16">Unctrl</a></span> (<span class="symbol"><a name="ref_2037_24">Ch</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>) <b>return</b> chars_ptr;
<b>pragma</b> Import (C, Unctrl, "unctrl");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2037_16">Unctrl</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1798_25">Ch</A>));
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1798_13">Un_Control</A>;
+ <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_96_13">Fill_String</a> (<a href="terminal_interface-curses__adb.htm#ref_2037_16">Unctrl</a> (<a href="terminal_interface-curses__ads.htm#ref_1798_25">Ch</a>));
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1798_13">Un_Control</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_2043_14" HREF="terminal_interface-curses__ads.htm#ref_1804_14">Delay_Output</A></span> (<span class="symbol"><A NAME="ref_2043_28" HREF="terminal_interface-curses__ads.htm#ref_1804_28">Msecs</A></span> : Natural)
+ <b>procedure</b> <span class="symbol"><a name="ref_2043_14" href="terminal_interface-curses__ads.htm#ref_1804_14">Delay_Output</a></span> (<span class="symbol"><a name="ref_2043_28" href="terminal_interface-curses__ads.htm#ref_1804_28">Msecs</a></span> : Natural)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_2045_16">Delayoutput</A></span> (<span class="symbol"><A NAME="ref_2045_29" HREF="terminal_interface-curses__adb.htm#ref_2045_16">Msecs</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_2045_16">Delayoutput</a></span> (<span class="symbol"><a name="ref_2045_29">Msecs</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Delayoutput, "delay_output");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2045_16">Delayoutput</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1804_28">Msecs</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_2045_16">Delayoutput</a> (<a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1804_28">Msecs</a>)) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1804_14">Delay_Output</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1804_14">Delay_Output</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_2053_14" HREF="terminal_interface-curses__ads.htm#ref_1809_14">Flush_Input</A></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_2053_14" href="terminal_interface-curses__ads.htm#ref_1809_14">Flush_Input</a></span>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_2055_16">Flushinp</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_2055_16">Flushinp</a></span> <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Flushinp, "flushinp");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2055_16">Flushinp</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b> <span class="comment"><EM>-- docu says that never happens, but...</EM></span>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_2055_16">Flushinp</a> = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b> <span class="comment"><em>-- docu says that never happens, but...</em></span>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1809_14">Flush_Input</A>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_2063_13" HREF="terminal_interface-curses__ads.htm#ref_1818_13">Baudrate</A></span> <b>return</b> Natural
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1809_14">Flush_Input</a>;
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_2063_13" href="terminal_interface-curses__ads.htm#ref_1818_13">Baudrate</a></span> <b>return</b> Natural
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_2065_16">Baud</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_2065_16">Baud</a></span> <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Baud, "baudrate");
<b>begin</b>
- <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#ref_2065_16">Baud</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1818_13">Baudrate</A>;
+ <b>return</b> Natural (<a href="terminal_interface-curses__adb.htm#ref_2065_16">Baud</a>);
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1818_13">Baudrate</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_2071_13" HREF="terminal_interface-curses__ads.htm#ref_1823_13">Erase_Character</A></span> <b>return</b> Character
+ <b>function</b> <span class="symbol"><a name="ref_2071_13" href="terminal_interface-curses__ads.htm#ref_1823_13">Erase_Character</a></span> <b>return</b> Character
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_2073_16">Erasechar</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_2073_16">Erasechar</a></span> <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Erasechar, "erasechar");
<b>begin</b>
- <b>return</b> Character'Val (<A HREF="terminal_interface-curses__adb.htm#ref_2073_16">Erasechar</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1823_13">Erase_Character</A>;
+ <b>return</b> Character'Val (<a href="terminal_interface-curses__adb.htm#ref_2073_16">Erasechar</a>);
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1823_13">Erase_Character</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_2079_13" HREF="terminal_interface-curses__ads.htm#ref_1828_13">Kill_Character</A></span> <b>return</b> Character
+ <b>function</b> <span class="symbol"><a name="ref_2079_13" href="terminal_interface-curses__ads.htm#ref_1828_13">Kill_Character</a></span> <b>return</b> Character
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_2081_16">Killchar</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_2081_16">Killchar</a></span> <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Killchar, "killchar");
<b>begin</b>
- <b>return</b> Character'Val (<A HREF="terminal_interface-curses__adb.htm#ref_2081_16">Killchar</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1828_13">Kill_Character</A>;
+ <b>return</b> Character'Val (<a href="terminal_interface-curses__adb.htm#ref_2081_16">Killchar</a>);
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1828_13">Kill_Character</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_2087_13" HREF="terminal_interface-curses__ads.htm#ref_1833_13">Has_Insert_Character</A></span> <b>return</b> Boolean
+ <b>function</b> <span class="symbol"><a name="ref_2087_13" href="terminal_interface-curses__ads.htm#ref_1833_13">Has_Insert_Character</a></span> <b>return</b> Boolean
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_2089_16">Has_Ic</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A>;
+ <b>function</b> <span class="symbol"><a name="ref_2089_16">Has_Ic</a></span> <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a>;
<b>pragma</b> Import (C, Has_Ic, "has_ic");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2089_16">Has_Ic</A> = <A HREF="terminal_interface-curses__ads.htm#ref_2101_4">Curses_Bool_False</A> <b>then</b>
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_2089_16">Has_Ic</a> = <a href="terminal_interface-curses__ads.htm#ref_2101_4">Curses_Bool_False</a> <b>then</b>
<b>return</b> False;
<b>else</b>
<b>return</b> True;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1833_13">Has_Insert_Character</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1833_13">Has_Insert_Character</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_2099_13" HREF="terminal_interface-curses__ads.htm#ref_1838_13">Has_Insert_Line</A></span> <b>return</b> Boolean
+ <b>function</b> <span class="symbol"><a name="ref_2099_13" href="terminal_interface-curses__ads.htm#ref_1838_13">Has_Insert_Line</a></span> <b>return</b> Boolean
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_2101_16">Has_Il</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A>;
+ <b>function</b> <span class="symbol"><a name="ref_2101_16">Has_Il</a></span> <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a>;
<b>pragma</b> Import (C, Has_Il, "has_il");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2101_16">Has_Il</A> = <A HREF="terminal_interface-curses__ads.htm#ref_2101_4">Curses_Bool_False</A> <b>then</b>
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_2101_16">Has_Il</a> = <a href="terminal_interface-curses__ads.htm#ref_2101_4">Curses_Bool_False</a> <b>then</b>
<b>return</b> False;
<b>else</b>
<b>return</b> True;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1838_13">Has_Insert_Line</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1838_13">Has_Insert_Line</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_2111_13" HREF="terminal_interface-curses__ads.htm#ref_1843_13">Supported_Attributes</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A>
+ <b>function</b> <span class="symbol"><a name="ref_2111_13" href="terminal_interface-curses__ads.htm#ref_1843_13">Supported_Attributes</a></span> <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_2113_16">Termattrs</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>;
+ <b>function</b> <span class="symbol"><a name="ref_2113_16">Termattrs</a></span> <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>;
<b>pragma</b> Import (C, Termattrs, "termattrs");
- <span class="symbol"><A NAME="ref_2116_7">Ch</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2113_16">Termattrs</A>;
+ <span class="symbol"><a name="ref_2116_7">Ch</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a> := <a href="terminal_interface-curses__adb.htm#ref_2113_16">Termattrs</a>;
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_2116_7">Ch</A>.<A HREF="terminal_interface-curses__ads.htm#ref_490_10">Attr</A>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1843_13">Supported_Attributes</A>;
+ <b>return</b> <a href="terminal_interface-curses__adb.htm#ref_2116_7">Ch</a>.<a href="terminal_interface-curses__ads.htm#ref_490_10">Attr</a>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1843_13">Supported_Attributes</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_2121_14" HREF="terminal_interface-curses__ads.htm#ref_1848_14">Long_Name</A></span> (<span class="symbol"><A NAME="ref_2121_25" HREF="terminal_interface-curses__ads.htm#ref_1848_25">Name</A></span> : <b>out</b> String)
+ <b>procedure</b> <span class="symbol"><a name="ref_2121_14" href="terminal_interface-curses__ads.htm#ref_1848_14">Long_Name</a></span> (<span class="symbol"><a name="ref_2121_25" href="terminal_interface-curses__ads.htm#ref_1848_25">Name</a></span> : <b>out</b> String)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_2123_16">Longname</A></span> <b>return</b> chars_ptr;
+ <b>function</b> <span class="symbol"><a name="ref_2123_16">Longname</a></span> <b>return</b> chars_ptr;
<b>pragma</b> Import (C, Longname, "longname");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_91_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2123_16">Longname</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1848_25">Name</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1848_14">Long_Name</A>;
+ <a href="terminal_interface-curses-aux__ads.htm#ref_91_14">Fill_String</a> (<a href="terminal_interface-curses__adb.htm#ref_2123_16">Longname</a>, <a href="terminal_interface-curses__ads.htm#ref_1848_25">Name</a>);
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1848_14">Long_Name</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_2129_13" HREF="terminal_interface-curses__ads.htm#ref_1852_13">Long_Name</A></span> <b>return</b> String
+ <b>function</b> <span class="symbol"><a name="ref_2129_13" href="terminal_interface-curses__ads.htm#ref_1852_13">Long_Name</a></span> <b>return</b> String
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_2131_16">Longname</A></span> <b>return</b> chars_ptr;
+ <b>function</b> <span class="symbol"><a name="ref_2131_16">Longname</a></span> <b>return</b> chars_ptr;
<b>pragma</b> Import (C, Longname, "longname");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2131_16">Longname</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1852_13">Long_Name</A>;
+ <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_96_13">Fill_String</a> (<a href="terminal_interface-curses__adb.htm#ref_2131_16">Longname</a>);
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1852_13">Long_Name</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_2137_14" HREF="terminal_interface-curses__ads.htm#ref_1858_14">Terminal_Name</A></span> (<span class="symbol"><A NAME="ref_2137_29" HREF="terminal_interface-curses__ads.htm#ref_1858_29">Name</A></span> : <b>out</b> String)
+ <b>procedure</b> <span class="symbol"><a name="ref_2137_14" href="terminal_interface-curses__ads.htm#ref_1858_14">Terminal_Name</a></span> (<span class="symbol"><a name="ref_2137_29" href="terminal_interface-curses__ads.htm#ref_1858_29">Name</a></span> : <b>out</b> String)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_2139_16">Termname</A></span> <b>return</b> chars_ptr;
+ <b>function</b> <span class="symbol"><a name="ref_2139_16">Termname</a></span> <b>return</b> chars_ptr;
<b>pragma</b> Import (C, Termname, "termname");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_91_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2139_16">Termname</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1858_29">Name</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1858_14">Terminal_Name</A>;
+ <a href="terminal_interface-curses-aux__ads.htm#ref_91_14">Fill_String</a> (<a href="terminal_interface-curses__adb.htm#ref_2139_16">Termname</a>, <a href="terminal_interface-curses__ads.htm#ref_1858_29">Name</a>);
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1858_14">Terminal_Name</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_2145_13" HREF="terminal_interface-curses__ads.htm#ref_1862_13">Terminal_Name</A></span> <b>return</b> String
+ <b>function</b> <span class="symbol"><a name="ref_2145_13" href="terminal_interface-curses__ads.htm#ref_1862_13">Terminal_Name</a></span> <b>return</b> String
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_2147_16">Termname</A></span> <b>return</b> chars_ptr;
+ <b>function</b> <span class="symbol"><a name="ref_2147_16">Termname</a></span> <b>return</b> chars_ptr;
<b>pragma</b> Import (C, Termname, "termname");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2147_16">Termname</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1862_13">Terminal_Name</A>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_2153_14" HREF="terminal_interface-curses__ads.htm#ref_1883_14">Init_Pair</A></span> (<span class="symbol"><A NAME="ref_2153_25" HREF="terminal_interface-curses__ads.htm#ref_1883_25">Pair</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_412_12">Redefinable_Color_Pair</A>;
- <span class="symbol"><A NAME="ref_2154_25" HREF="terminal_interface-curses__ads.htm#ref_1884_25">Fore</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</A>;
- <span class="symbol"><A NAME="ref_2155_25" HREF="terminal_interface-curses__ads.htm#ref_1885_25">Back</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</A>)
+ <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_96_13">Fill_String</a> (<a href="terminal_interface-curses__adb.htm#ref_2147_16">Termname</a>);
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1862_13">Terminal_Name</a>;
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_2153_14" href="terminal_interface-curses__ads.htm#ref_1883_14">Init_Pair</a></span> (<span class="symbol"><a name="ref_2153_25" href="terminal_interface-curses__ads.htm#ref_1883_25">Pair</a></span> : <a href="terminal_interface-curses__ads.htm#ref_412_12">Redefinable_Color_Pair</a>;
+ <span class="symbol"><a name="ref_2154_25" href="terminal_interface-curses__ads.htm#ref_1884_25">Fore</a></span> : <a href="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</a>;
+ <span class="symbol"><a name="ref_2155_25" href="terminal_interface-curses__ads.htm#ref_1885_25">Back</a></span> : <a href="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_2157_16">Initpair</A></span> (<span class="symbol"><A NAME="ref_2157_26" HREF="terminal_interface-curses__adb.htm#ref_2157_16">Pair</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</A>;
- <span class="symbol"><A NAME="ref_2158_26" HREF="terminal_interface-curses__adb.htm#ref_2157_16">Fore</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</A>;
- <span class="symbol"><A NAME="ref_2159_26" HREF="terminal_interface-curses__adb.htm#ref_2157_16">Back</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_2157_16">Initpair</a></span> (<span class="symbol"><a name="ref_2157_26">Pair</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</a>;
+ <span class="symbol"><a name="ref_2158_26">Fore</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</a>;
+ <span class="symbol"><a name="ref_2159_26">Back</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Initpair, "init_pair");
<b>begin</b>
- <b>if</b> Integer (<A HREF="terminal_interface-curses__ads.htm#ref_1883_25">Pair</A>) &gt;= <A HREF="terminal_interface-curses__ads.htm#ref_563_13">Number_Of_Color_Pairs</A> <b>then</b>
+ <b>if</b> Integer (<a href="terminal_interface-curses__ads.htm#ref_1883_25">Pair</a>) &gt;= <a href="terminal_interface-curses__ads.htm#ref_563_13">Number_Of_Color_Pairs</a> <b>then</b>
<b>raise</b> Constraint_Error;
<b>end</b> <b>if</b>;
- <b>if</b> Integer (<A HREF="terminal_interface-curses__ads.htm#ref_1884_25">Fore</A>) &gt;= <A HREF="terminal_interface-curses__ads.htm#ref_560_13">Number_Of_Colors</A> <b>or</b> <b>else</b>
- Integer (<A HREF="terminal_interface-curses__ads.htm#ref_1885_25">Back</A>) &gt;= <A HREF="terminal_interface-curses__ads.htm#ref_560_13">Number_Of_Colors</A>
+ <b>if</b> Integer (<a href="terminal_interface-curses__ads.htm#ref_1884_25">Fore</a>) &gt;= <a href="terminal_interface-curses__ads.htm#ref_560_13">Number_Of_Colors</a> <b>or</b> <b>else</b>
+ Integer (<a href="terminal_interface-curses__ads.htm#ref_1885_25">Back</a>) &gt;= <a href="terminal_interface-curses__ads.htm#ref_560_13">Number_Of_Colors</a>
<b>then</b>
<b>raise</b> Constraint_Error;
<b>end</b> <b>if</b>;
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2157_16">Initpair</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1883_25">Pair</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1884_25">Fore</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1885_25">Back</A>))
- = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A>
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_2157_16">Initpair</a> (<a href="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</a> (<a href="terminal_interface-curses__ads.htm#ref_1883_25">Pair</a>), <a href="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</a> (<a href="terminal_interface-curses__ads.htm#ref_1884_25">Fore</a>), <a href="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</a> (<a href="terminal_interface-curses__ads.htm#ref_1885_25">Back</a>))
+ = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a>
<b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1883_14">Init_Pair</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1883_14">Init_Pair</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_2177_14" HREF="terminal_interface-curses__ads.htm#ref_1890_14">Pair_Content</A></span> (<span class="symbol"><A NAME="ref_2177_28" HREF="terminal_interface-curses__ads.htm#ref_1890_28">Pair</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>;
- <span class="symbol"><A NAME="ref_2178_28" HREF="terminal_interface-curses__ads.htm#ref_1891_28">Fore</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</A>;
- <span class="symbol"><A NAME="ref_2179_28" HREF="terminal_interface-curses__ads.htm#ref_1892_28">Back</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_2177_14" href="terminal_interface-curses__ads.htm#ref_1890_14">Pair_Content</a></span> (<span class="symbol"><a name="ref_2177_28" href="terminal_interface-curses__ads.htm#ref_1890_28">Pair</a></span> : <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>;
+ <span class="symbol"><a name="ref_2178_28" href="terminal_interface-curses__ads.htm#ref_1891_28">Fore</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</a>;
+ <span class="symbol"><a name="ref_2179_28" href="terminal_interface-curses__ads.htm#ref_1892_28">Back</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</a>)
<b>is</b>
- <b>type</b> <span class="symbol"><A NAME="ref_2181_12">C_Short_Access</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</A>;
- <b>function</b> <span class="symbol"><A NAME="ref_2182_16">Paircontent</A></span> (<span class="symbol"><A NAME="ref_2182_29" HREF="terminal_interface-curses__adb.htm#ref_2182_16">Pair</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</A>;
- <span class="symbol"><A NAME="ref_2183_29" HREF="terminal_interface-curses__adb.htm#ref_2182_16">Fp</A></span> : <A HREF="terminal_interface-curses__adb.htm#ref_2181_12">C_Short_Access</A>;
- <span class="symbol"><A NAME="ref_2184_29" HREF="terminal_interface-curses__adb.htm#ref_2182_16">Bp</A></span> : <A HREF="terminal_interface-curses__adb.htm#ref_2181_12">C_Short_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>type</b> <span class="symbol"><a name="ref_2181_12">C_Short_Access</a></span> <b>is</b> <b>access</b> <b>all</b> <a href="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</a>;
+ <b>function</b> <span class="symbol"><a name="ref_2182_16">Paircontent</a></span> (<span class="symbol"><a name="ref_2182_29">Pair</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</a>;
+ <span class="symbol"><a name="ref_2183_29">Fp</a></span> : <a href="terminal_interface-curses__adb.htm#ref_2181_12">C_Short_Access</a>;
+ <span class="symbol"><a name="ref_2184_29">Bp</a></span> : <a href="terminal_interface-curses__adb.htm#ref_2181_12">C_Short_Access</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Paircontent, "pair_content");
- <span class="symbol"><A NAME="ref_2187_7">F</A></span>, <span class="symbol"><A NAME="ref_2187_10">B</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</A>;
+ <span class="symbol"><a name="ref_2187_7">F</a></span>, <span class="symbol"><a name="ref_2187_10">B</a></span> : <b>aliased</b> <a href="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</a>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2182_16">Paircontent</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1890_28">Pair</A>), <A HREF="terminal_interface-curses__adb.htm#ref_2187_7">F</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2187_10">B</A>'<b>Access</b>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_2182_16">Paircontent</a> (<a href="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</a> (<a href="terminal_interface-curses__ads.htm#ref_1890_28">Pair</a>), <a href="terminal_interface-curses__adb.htm#ref_2187_7">F</a>'<b>Access</b>, <a href="terminal_interface-curses__adb.htm#ref_2187_10">B</a>'<b>Access</b>) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>else</b>
- <A HREF="terminal_interface-curses__ads.htm#ref_1891_28">Fore</A> := <A HREF="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2187_7">F</A>);
- <A HREF="terminal_interface-curses__ads.htm#ref_1892_28">Back</A> := <A HREF="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2187_10">B</A>);
+ <a href="terminal_interface-curses__ads.htm#ref_1891_28">Fore</a> := <a href="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</a> (<a href="terminal_interface-curses__adb.htm#ref_2187_7">F</a>);
+ <a href="terminal_interface-curses__ads.htm#ref_1892_28">Back</a> := <a href="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</a> (<a href="terminal_interface-curses__adb.htm#ref_2187_10">B</a>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1890_14">Pair_Content</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1890_14">Pair_Content</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_2197_13" HREF="terminal_interface-curses__ads.htm#ref_1897_13">Has_Colors</A></span> <b>return</b> Boolean
+ <b>function</b> <span class="symbol"><a name="ref_2197_13" href="terminal_interface-curses__ads.htm#ref_1897_13">Has_Colors</a></span> <b>return</b> Boolean
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_2199_16">Hascolors</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A>;
+ <b>function</b> <span class="symbol"><a name="ref_2199_16">Hascolors</a></span> <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a>;
<b>pragma</b> Import (C, Hascolors, "has_colors");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2199_16">Hascolors</A> = <A HREF="terminal_interface-curses__ads.htm#ref_2101_4">Curses_Bool_False</A> <b>then</b>
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_2199_16">Hascolors</a> = <a href="terminal_interface-curses__ads.htm#ref_2101_4">Curses_Bool_False</a> <b>then</b>
<b>return</b> False;
<b>else</b>
<b>return</b> True;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1897_13">Has_Colors</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1897_13">Has_Colors</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_2209_14" HREF="terminal_interface-curses__ads.htm#ref_1902_14">Init_Color</A></span> (<span class="symbol"><A NAME="ref_2209_26" HREF="terminal_interface-curses__ads.htm#ref_1902_26">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</A>;
- <span class="symbol"><A NAME="ref_2210_26" HREF="terminal_interface-curses__ads.htm#ref_1903_26">Red</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_406_9">RGB_Value</A>;
- <span class="symbol"><A NAME="ref_2211_26" HREF="terminal_interface-curses__ads.htm#ref_1904_26">Green</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_406_9">RGB_Value</A>;
- <span class="symbol"><A NAME="ref_2212_26" HREF="terminal_interface-curses__ads.htm#ref_1905_26">Blue</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_406_9">RGB_Value</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_2209_14" href="terminal_interface-curses__ads.htm#ref_1902_14">Init_Color</a></span> (<span class="symbol"><a name="ref_2209_26" href="terminal_interface-curses__ads.htm#ref_1902_26">Color</a></span> : <a href="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</a>;
+ <span class="symbol"><a name="ref_2210_26" href="terminal_interface-curses__ads.htm#ref_1903_26">Red</a></span> : <a href="terminal_interface-curses__ads.htm#ref_406_9">RGB_Value</a>;
+ <span class="symbol"><a name="ref_2211_26" href="terminal_interface-curses__ads.htm#ref_1904_26">Green</a></span> : <a href="terminal_interface-curses__ads.htm#ref_406_9">RGB_Value</a>;
+ <span class="symbol"><a name="ref_2212_26" href="terminal_interface-curses__ads.htm#ref_1905_26">Blue</a></span> : <a href="terminal_interface-curses__ads.htm#ref_406_9">RGB_Value</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_2214_16">Initcolor</A></span> (<span class="symbol"><A NAME="ref_2214_27" HREF="terminal_interface-curses__adb.htm#ref_2214_16">Col</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</A>;
- <span class="symbol"><A NAME="ref_2215_27" HREF="terminal_interface-curses__adb.htm#ref_2214_16">Red</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</A>;
- <span class="symbol"><A NAME="ref_2216_27" HREF="terminal_interface-curses__adb.htm#ref_2214_16">Green</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</A>;
- <span class="symbol"><A NAME="ref_2217_27" HREF="terminal_interface-curses__adb.htm#ref_2214_16">Blue</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_2214_16">Initcolor</a></span> (<span class="symbol"><a name="ref_2214_27">Col</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</a>;
+ <span class="symbol"><a name="ref_2215_27">Red</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</a>;
+ <span class="symbol"><a name="ref_2216_27">Green</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</a>;
+ <span class="symbol"><a name="ref_2217_27">Blue</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Initcolor, "init_color");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2214_16">Initcolor</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1902_26">Color</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1903_26">Red</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1904_26">Green</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1905_26">Blue</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A>
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_2214_16">Initcolor</a> (<a href="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</a> (<a href="terminal_interface-curses__ads.htm#ref_1902_26">Color</a>), <a href="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</a> (<a href="terminal_interface-curses__ads.htm#ref_1903_26">Red</a>), <a href="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</a> (<a href="terminal_interface-curses__ads.htm#ref_1904_26">Green</a>),
+ <a href="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</a> (<a href="terminal_interface-curses__ads.htm#ref_1905_26">Blue</a>)) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a>
<b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1902_14">Init_Color</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1902_14">Init_Color</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_2227_13" HREF="terminal_interface-curses__ads.htm#ref_1910_13">Can_Change_Color</A></span> <b>return</b> Boolean
+ <b>function</b> <span class="symbol"><a name="ref_2227_13" href="terminal_interface-curses__ads.htm#ref_1910_13">Can_Change_Color</a></span> <b>return</b> Boolean
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_2229_16">Canchangecolor</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A>;
+ <b>function</b> <span class="symbol"><a name="ref_2229_16">Canchangecolor</a></span> <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a>;
<b>pragma</b> Import (C, Canchangecolor, "can_change_color");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2229_16">Canchangecolor</A> = <A HREF="terminal_interface-curses__ads.htm#ref_2101_4">Curses_Bool_False</A> <b>then</b>
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_2229_16">Canchangecolor</a> = <a href="terminal_interface-curses__ads.htm#ref_2101_4">Curses_Bool_False</a> <b>then</b>
<b>return</b> False;
<b>else</b>
<b>return</b> True;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1910_13">Can_Change_Color</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1910_13">Can_Change_Color</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_2239_14" HREF="terminal_interface-curses__ads.htm#ref_1915_14">Color_Content</A></span> (<span class="symbol"><A NAME="ref_2239_29" HREF="terminal_interface-curses__ads.htm#ref_1915_29">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</A>;
- <span class="symbol"><A NAME="ref_2240_29" HREF="terminal_interface-curses__ads.htm#ref_1916_29">Red</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_406_9">RGB_Value</A>;
- <span class="symbol"><A NAME="ref_2241_29" HREF="terminal_interface-curses__ads.htm#ref_1917_29">Green</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_406_9">RGB_Value</A>;
- <span class="symbol"><A NAME="ref_2242_29" HREF="terminal_interface-curses__ads.htm#ref_1918_29">Blue</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_406_9">RGB_Value</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_2239_14" href="terminal_interface-curses__ads.htm#ref_1915_14">Color_Content</a></span> (<span class="symbol"><a name="ref_2239_29" href="terminal_interface-curses__ads.htm#ref_1915_29">Color</a></span> : <a href="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</a>;
+ <span class="symbol"><a name="ref_2240_29" href="terminal_interface-curses__ads.htm#ref_1916_29">Red</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_406_9">RGB_Value</a>;
+ <span class="symbol"><a name="ref_2241_29" href="terminal_interface-curses__ads.htm#ref_1917_29">Green</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_406_9">RGB_Value</a>;
+ <span class="symbol"><a name="ref_2242_29" href="terminal_interface-curses__ads.htm#ref_1918_29">Blue</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_406_9">RGB_Value</a>)
<b>is</b>
- <b>type</b> <span class="symbol"><A NAME="ref_2244_12">C_Short_Access</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</A>;
+ <b>type</b> <span class="symbol"><a name="ref_2244_12">C_Short_Access</a></span> <b>is</b> <b>access</b> <b>all</b> <a href="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_2246_16">Colorcontent</A></span> (<span class="symbol"><A NAME="ref_2246_30" HREF="terminal_interface-curses__adb.htm#ref_2246_16">Color</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</A>; <span class="symbol"><A NAME="ref_2246_47" HREF="terminal_interface-curses__adb.htm#ref_2246_16">R</A></span>, <span class="symbol"><A NAME="ref_2246_50" HREF="terminal_interface-curses__adb.htm#ref_2246_16">G</A></span>, <span class="symbol"><A NAME="ref_2246_53" HREF="terminal_interface-curses__adb.htm#ref_2246_16">B</A></span> : <A HREF="terminal_interface-curses__adb.htm#ref_2244_12">C_Short_Access</A>)
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_2246_16">Colorcontent</a></span> (<span class="symbol"><a name="ref_2246_30">Color</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</a>; <span class="symbol"><a name="ref_2246_47">R</a></span>, <span class="symbol"><a name="ref_2246_50">G</a></span>, <span class="symbol"><a name="ref_2246_53">B</a></span> : <a href="terminal_interface-curses__adb.htm#ref_2244_12">C_Short_Access</a>)
+ <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Colorcontent, "color_content");
- <span class="symbol"><A NAME="ref_2250_7">R</A></span>, <span class="symbol"><A NAME="ref_2250_10">G</A></span>, <span class="symbol"><A NAME="ref_2250_13">B</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</A>;
+ <span class="symbol"><a name="ref_2250_7">R</a></span>, <span class="symbol"><a name="ref_2250_10">G</a></span>, <span class="symbol"><a name="ref_2250_13">B</a></span> : <b>aliased</b> <a href="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</a>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2246_16">Colorcontent</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1915_29">Color</A>), <A HREF="terminal_interface-curses__adb.htm#ref_2250_7">R</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2250_10">G</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2250_13">B</A>'<b>Access</b>) =
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A>
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_2246_16">Colorcontent</a> (<a href="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Short</a> (<a href="terminal_interface-curses__ads.htm#ref_1915_29">Color</a>), <a href="terminal_interface-curses__adb.htm#ref_2250_7">R</a>'<b>Access</b>, <a href="terminal_interface-curses__adb.htm#ref_2250_10">G</a>'<b>Access</b>, <a href="terminal_interface-curses__adb.htm#ref_2250_13">B</a>'<b>Access</b>) =
+ <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a>
<b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>else</b>
- <A HREF="terminal_interface-curses__ads.htm#ref_1916_29">Red</A> := <A HREF="terminal_interface-curses__ads.htm#ref_406_9">RGB_Value</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2250_7">R</A>);
- <A HREF="terminal_interface-curses__ads.htm#ref_1917_29">Green</A> := <A HREF="terminal_interface-curses__ads.htm#ref_406_9">RGB_Value</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2250_10">G</A>);
- <A HREF="terminal_interface-curses__ads.htm#ref_1918_29">Blue</A> := <A HREF="terminal_interface-curses__ads.htm#ref_406_9">RGB_Value</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2250_13">B</A>);
+ <a href="terminal_interface-curses__ads.htm#ref_1916_29">Red</a> := <a href="terminal_interface-curses__ads.htm#ref_406_9">RGB_Value</a> (<a href="terminal_interface-curses__adb.htm#ref_2250_7">R</a>);
+ <a href="terminal_interface-curses__ads.htm#ref_1917_29">Green</a> := <a href="terminal_interface-curses__ads.htm#ref_406_9">RGB_Value</a> (<a href="terminal_interface-curses__adb.htm#ref_2250_10">G</a>);
+ <a href="terminal_interface-curses__ads.htm#ref_1918_29">Blue</a> := <a href="terminal_interface-curses__ads.htm#ref_406_9">RGB_Value</a> (<a href="terminal_interface-curses__adb.htm#ref_2250_13">B</a>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1915_14">Color_Content</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1915_14">Color_Content</a>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_2264_14" HREF="terminal_interface-curses__ads.htm#ref_1930_14">Save_Curses_Mode</A></span> (<span class="symbol"><A NAME="ref_2264_32" HREF="terminal_interface-curses__ads.htm#ref_1930_32">Mode</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1927_9">Curses_Mode</A>)
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_2264_14" href="terminal_interface-curses__ads.htm#ref_1930_14">Save_Curses_Mode</a></span> (<span class="symbol"><a name="ref_2264_32" href="terminal_interface-curses__ads.htm#ref_1930_32">Mode</a></span> : <a href="terminal_interface-curses__ads.htm#ref_1927_9">Curses_Mode</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_2266_16">Def_Prog_Mode</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_2266_16">Def_Prog_Mode</a></span> <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Def_Prog_Mode, "def_prog_mode");
- <b>function</b> <span class="symbol"><A NAME="ref_2268_16">Def_Shell_Mode</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_2268_16">Def_Shell_Mode</a></span> <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Def_Shell_Mode, "def_shell_mode");
- <span class="symbol"><A NAME="ref_2271_7">Err</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <span class="symbol"><a name="ref_2271_7">Err</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>begin</b>
- <b>case</b> <A HREF="terminal_interface-curses__ads.htm#ref_1930_32">Mode</A> <b>is</b>
- <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1927_25">Curses</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_2271_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2266_16">Def_Prog_Mode</A>;
- <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1927_33">Shell</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_2271_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2268_16">Def_Shell_Mode</A>;
+ <b>case</b> <a href="terminal_interface-curses__ads.htm#ref_1930_32">Mode</a> <b>is</b>
+ <b>when</b> <a href="terminal_interface-curses__ads.htm#ref_1927_25">Curses</a> =&gt; <a href="terminal_interface-curses__adb.htm#ref_2271_7">Err</a> := <a href="terminal_interface-curses__adb.htm#ref_2266_16">Def_Prog_Mode</a>;
+ <b>when</b> <a href="terminal_interface-curses__ads.htm#ref_1927_33">Shell</a> =&gt; <a href="terminal_interface-curses__adb.htm#ref_2271_7">Err</a> := <a href="terminal_interface-curses__adb.htm#ref_2268_16">Def_Shell_Mode</a>;
<b>end</b> <b>case</b>;
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2271_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_2271_7">Err</a> = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1930_14">Save_Curses_Mode</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1930_14">Save_Curses_Mode</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_2282_14" HREF="terminal_interface-curses__ads.htm#ref_1936_14">Reset_Curses_Mode</A></span> (<span class="symbol"><A NAME="ref_2282_33" HREF="terminal_interface-curses__ads.htm#ref_1936_33">Mode</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1927_9">Curses_Mode</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_2282_14" href="terminal_interface-curses__ads.htm#ref_1936_14">Reset_Curses_Mode</a></span> (<span class="symbol"><a name="ref_2282_33" href="terminal_interface-curses__ads.htm#ref_1936_33">Mode</a></span> : <a href="terminal_interface-curses__ads.htm#ref_1927_9">Curses_Mode</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_2284_16">Reset_Prog_Mode</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_2284_16">Reset_Prog_Mode</a></span> <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Reset_Prog_Mode, "reset_prog_mode");
- <b>function</b> <span class="symbol"><A NAME="ref_2286_16">Reset_Shell_Mode</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_2286_16">Reset_Shell_Mode</a></span> <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Reset_Shell_Mode, "reset_shell_mode");
- <span class="symbol"><A NAME="ref_2289_7">Err</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <span class="symbol"><a name="ref_2289_7">Err</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>begin</b>
- <b>case</b> <A HREF="terminal_interface-curses__ads.htm#ref_1936_33">Mode</A> <b>is</b>
- <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1927_25">Curses</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_2289_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2284_16">Reset_Prog_Mode</A>;
- <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1927_33">Shell</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_2289_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2286_16">Reset_Shell_Mode</A>;
+ <b>case</b> <a href="terminal_interface-curses__ads.htm#ref_1936_33">Mode</a> <b>is</b>
+ <b>when</b> <a href="terminal_interface-curses__ads.htm#ref_1927_25">Curses</a> =&gt; <a href="terminal_interface-curses__adb.htm#ref_2289_7">Err</a> := <a href="terminal_interface-curses__adb.htm#ref_2284_16">Reset_Prog_Mode</a>;
+ <b>when</b> <a href="terminal_interface-curses__ads.htm#ref_1927_33">Shell</a> =&gt; <a href="terminal_interface-curses__adb.htm#ref_2289_7">Err</a> := <a href="terminal_interface-curses__adb.htm#ref_2286_16">Reset_Shell_Mode</a>;
<b>end</b> <b>case</b>;
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2289_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_2289_7">Err</a> = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1936_14">Reset_Curses_Mode</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1936_14">Reset_Curses_Mode</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_2300_14" HREF="terminal_interface-curses__ads.htm#ref_1942_14">Save_Terminal_State</A></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_2300_14" href="terminal_interface-curses__ads.htm#ref_1942_14">Save_Terminal_State</a></span>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_2302_16">Savetty</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_2302_16">Savetty</a></span> <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Savetty, "savetty");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2302_16">Savetty</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_2302_16">Savetty</a> = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1942_14">Save_Terminal_State</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1942_14">Save_Terminal_State</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_2310_14" HREF="terminal_interface-curses__ads.htm#ref_1947_14">Reset_Terminal_State</A></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_2310_14" href="terminal_interface-curses__ads.htm#ref_1947_14">Reset_Terminal_State</a></span>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_2312_16">Resetty</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_2312_16">Resetty</a></span> <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Resetty, "resetty");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2312_16">Resetty</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_2312_16">Resetty</a> = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1947_14">Reset_Terminal_State</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1947_14">Reset_Terminal_State</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_2320_14" HREF="terminal_interface-curses__ads.htm#ref_1960_14">Rip_Off_Lines</A></span> (<span class="symbol"><A NAME="ref_2320_29" HREF="terminal_interface-curses__ads.htm#ref_1960_29">Lines</A></span> : Integer;
- <span class="symbol"><A NAME="ref_2321_29" HREF="terminal_interface-curses__ads.htm#ref_1961_29">Proc</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1951_9">Stdscr_Init_Proc</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_2320_14" href="terminal_interface-curses__ads.htm#ref_1960_14">Rip_Off_Lines</a></span> (<span class="symbol"><a name="ref_2320_29" href="terminal_interface-curses__ads.htm#ref_1960_29">Lines</a></span> : Integer;
+ <span class="symbol"><a name="ref_2321_29" href="terminal_interface-curses__ads.htm#ref_1961_29">Proc</a></span> : <a href="terminal_interface-curses__ads.htm#ref_1951_9">Stdscr_Init_Proc</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_2323_16">Ripoffline</A></span> (<span class="symbol"><A NAME="ref_2323_28" HREF="terminal_interface-curses__adb.htm#ref_2323_16">Lines</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_2324_28" HREF="terminal_interface-curses__adb.htm#ref_2323_16">Proc</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1951_9">Stdscr_Init_Proc</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_2323_16">Ripoffline</a></span> (<span class="symbol"><a name="ref_2323_28">Lines</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_2324_28">Proc</a></span> : <a href="terminal_interface-curses__ads.htm#ref_1951_9">Stdscr_Init_Proc</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Ripoffline, "_nc_ripoffline");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2323_16">Ripoffline</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1960_29">Lines</A>), <A HREF="terminal_interface-curses__ads.htm#ref_1961_29">Proc</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_2323_16">Ripoffline</a> (<a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1960_29">Lines</a>), <a href="terminal_interface-curses__ads.htm#ref_1961_29">Proc</a>) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1960_14">Rip_Off_Lines</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1960_14">Rip_Off_Lines</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_2332_14" HREF="terminal_interface-curses__ads.htm#ref_1972_14">Set_Cursor_Visibility</A></span> (<span class="symbol"><A NAME="ref_2332_37" HREF="terminal_interface-curses__ads.htm#ref_1972_37">Visibility</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_1969_9">Cursor_Visibility</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_2332_14" href="terminal_interface-curses__ads.htm#ref_1972_14">Set_Cursor_Visibility</a></span> (<span class="symbol"><a name="ref_2332_37" href="terminal_interface-curses__ads.htm#ref_1972_37">Visibility</a></span> : <b>in</b> <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_1969_9">Cursor_Visibility</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_2334_16">Curs_Set</A></span> (<span class="symbol"><A NAME="ref_2334_26" HREF="terminal_interface-curses__adb.htm#ref_2334_16">Curs</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_2334_16">Curs_Set</a></span> (<span class="symbol"><a name="ref_2334_26">Curs</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Curs_Set, "curs_set");
- <span class="symbol"><A NAME="ref_2337_7">Res</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <span class="symbol"><a name="ref_2337_7">Res</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>begin</b>
- <A HREF="terminal_interface-curses__adb.htm#ref_2337_7">Res</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2334_16">Curs_Set</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1969_9">Cursor_Visibility</A>'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1972_37">Visibility</A>));
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2337_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <A HREF="terminal_interface-curses__ads.htm#ref_1972_37">Visibility</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1969_9">Cursor_Visibility</A>'Val (<A HREF="terminal_interface-curses__adb.htm#ref_2337_7">Res</A>);
+ <a href="terminal_interface-curses__adb.htm#ref_2337_7">Res</a> := <a href="terminal_interface-curses__adb.htm#ref_2334_16">Curs_Set</a> (<a href="terminal_interface-curses__ads.htm#ref_1969_9">Cursor_Visibility</a>'Pos (<a href="terminal_interface-curses__ads.htm#ref_1972_37">Visibility</a>));
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_2337_7">Res</a> /= <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <a href="terminal_interface-curses__ads.htm#ref_1972_37">Visibility</a> := <a href="terminal_interface-curses__ads.htm#ref_1969_9">Cursor_Visibility</a>'Val (<a href="terminal_interface-curses__adb.htm#ref_2337_7">Res</a>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1972_14">Set_Cursor_Visibility</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1972_14">Set_Cursor_Visibility</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_2345_14" HREF="terminal_interface-curses__ads.htm#ref_1977_14">Nap_Milli_Seconds</A></span> (<span class="symbol"><A NAME="ref_2345_33" HREF="terminal_interface-curses__ads.htm#ref_1977_33">Ms</A></span> : Natural)
+ <b>procedure</b> <span class="symbol"><a name="ref_2345_14" href="terminal_interface-curses__ads.htm#ref_1977_14">Nap_Milli_Seconds</a></span> (<span class="symbol"><a name="ref_2345_33" href="terminal_interface-curses__ads.htm#ref_1977_33">Ms</a></span> : Natural)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_2347_16">Napms</A></span> (<span class="symbol"><A NAME="ref_2347_23" HREF="terminal_interface-curses__adb.htm#ref_2347_16">Ms</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_2347_16">Napms</a></span> (<span class="symbol"><a name="ref_2347_23">Ms</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Napms, "napms");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2347_16">Napms</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1977_33">Ms</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_2347_16">Napms</a> (<a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1977_33">Ms</a>)) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1977_14">Nap_Milli_Seconds</A>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_2355_13" HREF="terminal_interface-curses__ads.htm#ref_551_13">Lines</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</A>
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1977_14">Nap_Milli_Seconds</a>;
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_2355_13" href="terminal_interface-curses__ads.htm#ref_551_13">Lines</a></span> <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</a>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_2357_16">LINES_As_Function</A></span> <b>return</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
+ <b>function</b> <span class="symbol"><a name="ref_2357_16">LINES_As_Function</a></span> <b>return</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.int;
<b>pragma</b> Import (C, LINES_As_Function, "LINES_as_function");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2357_16">LINES_As_Function</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_551_13">Lines</A>;
+ <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</a> (<a href="terminal_interface-curses__adb.htm#ref_2357_16">LINES_As_Function</a>);
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_551_13">Lines</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_2363_13" HREF="terminal_interface-curses__ads.htm#ref_554_13">Columns</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</A>
+ <b>function</b> <span class="symbol"><a name="ref_2363_13" href="terminal_interface-curses__ads.htm#ref_554_13">Columns</a></span> <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</a>
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_2365_16">COLS_As_Function</A></span> <b>return</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
+ <b>function</b> <span class="symbol"><a name="ref_2365_16">COLS_As_Function</a></span> <b>return</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.int;
<b>pragma</b> Import (C, COLS_As_Function, "COLS_as_function");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2365_16">COLS_As_Function</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_554_13">Columns</A>;
+ <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</a> (<a href="terminal_interface-curses__adb.htm#ref_2365_16">COLS_As_Function</a>);
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_554_13">Columns</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_2371_13" HREF="terminal_interface-curses__ads.htm#ref_557_13">Tab_Size</A></span> <b>return</b> Natural
+ <b>function</b> <span class="symbol"><a name="ref_2371_13" href="terminal_interface-curses__ads.htm#ref_557_13">Tab_Size</a></span> <b>return</b> Natural
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_2373_16">TABSIZE_As_Function</A></span> <b>return</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
+ <b>function</b> <span class="symbol"><a name="ref_2373_16">TABSIZE_As_Function</a></span> <b>return</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.int;
<b>pragma</b> Import (C, TABSIZE_As_Function, "TABSIZE_as_function");
<b>begin</b>
- <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#ref_2373_16">TABSIZE_As_Function</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_557_13">Tab_Size</A>;
+ <b>return</b> Natural (<a href="terminal_interface-curses__adb.htm#ref_2373_16">TABSIZE_As_Function</a>);
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_557_13">Tab_Size</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_2380_13" HREF="terminal_interface-curses__ads.htm#ref_560_13">Number_Of_Colors</A></span> <b>return</b> Natural
+ <b>function</b> <span class="symbol"><a name="ref_2380_13" href="terminal_interface-curses__ads.htm#ref_560_13">Number_Of_Colors</a></span> <b>return</b> Natural
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_2382_16">COLORS_As_Function</A></span> <b>return</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
+ <b>function</b> <span class="symbol"><a name="ref_2382_16">COLORS_As_Function</a></span> <b>return</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.int;
<b>pragma</b> Import (C, COLORS_As_Function, "COLORS_as_function");
<b>begin</b>
- <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#ref_2382_16">COLORS_As_Function</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_560_13">Number_Of_Colors</A>;
+ <b>return</b> Natural (<a href="terminal_interface-curses__adb.htm#ref_2382_16">COLORS_As_Function</a>);
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_560_13">Number_Of_Colors</a>;
- <b>function</b> <span class="symbol"><A NAME="ref_2388_13" HREF="terminal_interface-curses__ads.htm#ref_563_13">Number_Of_Color_Pairs</A></span> <b>return</b> Natural
+ <b>function</b> <span class="symbol"><a name="ref_2388_13" href="terminal_interface-curses__ads.htm#ref_563_13">Number_Of_Color_Pairs</a></span> <b>return</b> Natural
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_2390_16">COLOR_PAIRS_As_Function</A></span> <b>return</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
+ <b>function</b> <span class="symbol"><a name="ref_2390_16">COLOR_PAIRS_As_Function</a></span> <b>return</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.int;
<b>pragma</b> Import (C, COLOR_PAIRS_As_Function, "COLOR_PAIRS_as_function");
<b>begin</b>
- <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#ref_2390_16">COLOR_PAIRS_As_Function</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_563_13">Number_Of_Color_Pairs</A>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_2396_14" HREF="terminal_interface-curses__ads.htm#ref_1985_14">Transform_Coordinates</A></span>
- (<span class="symbol"><A NAME="ref_2397_7" HREF="terminal_interface-curses__ads.htm#ref_1986_7">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_2398_7" HREF="terminal_interface-curses__ads.htm#ref_1987_7">Line</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_2399_7" HREF="terminal_interface-curses__ads.htm#ref_1988_7">Column</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_2400_7" HREF="terminal_interface-curses__ads.htm#ref_1989_7">Dir</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1984_9">Transform_Direction</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1984_33">From_Screen</A>)
- <b>is</b>
- <b>type</b> <span class="symbol"><A NAME="ref_2402_12">Int_Access</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <b>function</b> <span class="symbol"><A NAME="ref_2403_16">Transform</A></span> (<span class="symbol"><A NAME="ref_2403_27" HREF="terminal_interface-curses__adb.htm#ref_2403_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_2404_27" HREF="terminal_interface-curses__adb.htm#ref_2403_16">Y</A></span>, <span class="symbol"><A NAME="ref_2404_30" HREF="terminal_interface-curses__adb.htm#ref_2403_16">X</A></span> : <A HREF="terminal_interface-curses__adb.htm#ref_2402_12">Int_Access</A>;
- <span class="symbol"><A NAME="ref_2405_27" HREF="terminal_interface-curses__adb.htm#ref_2403_16">Dir</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>return</b> Natural (<a href="terminal_interface-curses__adb.htm#ref_2390_16">COLOR_PAIRS_As_Function</a>);
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_563_13">Number_Of_Color_Pairs</a>;
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_2396_14" href="terminal_interface-curses__ads.htm#ref_1985_14">Transform_Coordinates</a></span>
+ (<span class="symbol"><a name="ref_2397_7" href="terminal_interface-curses__ads.htm#ref_1986_7">W</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_2398_7" href="terminal_interface-curses__ads.htm#ref_1987_7">Line</a></span> : <b>in</b> <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_2399_7" href="terminal_interface-curses__ads.htm#ref_1988_7">Column</a></span> : <b>in</b> <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_2400_7" href="terminal_interface-curses__ads.htm#ref_1989_7">Dir</a></span> : <a href="terminal_interface-curses__ads.htm#ref_1984_9">Transform_Direction</a> := <a href="terminal_interface-curses__ads.htm#ref_1984_33">From_Screen</a>)
+ <b>is</b>
+ <b>type</b> <span class="symbol"><a name="ref_2402_12">Int_Access</a></span> <b>is</b> <b>access</b> <b>all</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <b>function</b> <span class="symbol"><a name="ref_2403_16">Transform</a></span> (<span class="symbol"><a name="ref_2403_27">W</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_2404_27">Y</a></span>, <span class="symbol"><a name="ref_2404_30">X</a></span> : <a href="terminal_interface-curses__adb.htm#ref_2402_12">Int_Access</a>;
+ <span class="symbol"><a name="ref_2405_27">Dir</a></span> : <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, Transform, "wmouse_trafo");
- <span class="symbol"><A NAME="ref_2408_7">X</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1988_7">Column</A>);
- <span class="symbol"><A NAME="ref_2409_7">Y</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1987_7">Line</A>);
- <span class="symbol"><A NAME="ref_2410_7">D</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A> := <A HREF="terminal_interface-curses__ads.htm#ref_2101_4">Curses_Bool_False</A>;
- <span class="symbol"><A NAME="ref_2411_7">R</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <span class="symbol"><a name="ref_2408_7">X</a></span> : <b>aliased</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> := <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1988_7">Column</a>);
+ <span class="symbol"><a name="ref_2409_7">Y</a></span> : <b>aliased</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> := <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_1987_7">Line</a>);
+ <span class="symbol"><a name="ref_2410_7">D</a></span> : <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a> := <a href="terminal_interface-curses__ads.htm#ref_2101_4">Curses_Bool_False</a>;
+ <span class="symbol"><a name="ref_2411_7">R</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1989_7">Dir</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1984_46">To_Screen</A> <b>then</b>
- <A HREF="terminal_interface-curses__adb.htm#ref_2410_7">D</A> := 1;
+ <b>if</b> <a href="terminal_interface-curses__ads.htm#ref_1989_7">Dir</a> = <a href="terminal_interface-curses__ads.htm#ref_1984_46">To_Screen</a> <b>then</b>
+ <a href="terminal_interface-curses__adb.htm#ref_2410_7">D</a> := 1;
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses__adb.htm#ref_2411_7">R</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2403_16">Transform</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1986_7">W</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2409_7">Y</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2408_7">X</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2410_7">D</A>);
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2411_7">R</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_67_4">Curses_False</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <a href="terminal_interface-curses__adb.htm#ref_2411_7">R</a> := <a href="terminal_interface-curses__adb.htm#ref_2403_16">Transform</a> (<a href="terminal_interface-curses__ads.htm#ref_1986_7">W</a>, <a href="terminal_interface-curses__adb.htm#ref_2409_7">Y</a>'<b>Access</b>, <a href="terminal_interface-curses__adb.htm#ref_2408_7">X</a>'<b>Access</b>, <a href="terminal_interface-curses__adb.htm#ref_2410_7">D</a>);
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_2411_7">R</a> = <a href="terminal_interface-curses-aux__ads.htm#ref_67_4">Curses_False</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>else</b>
- <A HREF="terminal_interface-curses__ads.htm#ref_1987_7">Line</A> := <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2409_7">Y</A>);
- <A HREF="terminal_interface-curses__ads.htm#ref_1988_7">Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2408_7">X</A>);
+ <a href="terminal_interface-curses__ads.htm#ref_1987_7">Line</a> := <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a> (<a href="terminal_interface-curses__adb.htm#ref_2409_7">Y</a>);
+ <a href="terminal_interface-curses__ads.htm#ref_1988_7">Column</a> := <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a> (<a href="terminal_interface-curses__adb.htm#ref_2408_7">X</a>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1985_14">Transform_Coordinates</A>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_2425_14" HREF="terminal_interface-curses__ads.htm#ref_2004_14">Use_Default_Colors</A></span> <b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_2426_16">C_Use_Default_Colors</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_1985_14">Transform_Coordinates</a>;
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_2425_14" href="terminal_interface-curses__ads.htm#ref_2004_14">Use_Default_Colors</a></span> <b>is</b>
+ <b>function</b> <span class="symbol"><a name="ref_2426_16">C_Use_Default_Colors</a></span> <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, C_Use_Default_Colors, "use_default_colors");
- <span class="symbol"><A NAME="ref_2428_7">Err</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2426_16">C_Use_Default_Colors</A>;
+ <span class="symbol"><a name="ref_2428_7">Err</a></span> : <b>constant</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> := <a href="terminal_interface-curses__adb.htm#ref_2426_16">C_Use_Default_Colors</a>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2428_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_2428_7">Err</a> = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_2004_14">Use_Default_Colors</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_2004_14">Use_Default_Colors</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_2435_14" HREF="terminal_interface-curses__ads.htm#ref_2009_14">Assume_Default_Colors</A></span> (<span class="symbol"><A NAME="ref_2435_37" HREF="terminal_interface-curses__ads.htm#ref_2009_37">Fore</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</A> := <A HREF="terminal_interface-curses__ads.htm#ref_2001_4">Default_Color</A>;
- <span class="symbol"><A NAME="ref_2436_37" HREF="terminal_interface-curses__ads.htm#ref_2010_37">Back</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</A> := <A HREF="terminal_interface-curses__ads.htm#ref_2001_4">Default_Color</A>)
+ <b>procedure</b> <span class="symbol"><a name="ref_2435_14" href="terminal_interface-curses__ads.htm#ref_2009_14">Assume_Default_Colors</a></span> (<span class="symbol"><a name="ref_2435_37" href="terminal_interface-curses__ads.htm#ref_2009_37">Fore</a></span> : <a href="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</a> := <a href="terminal_interface-curses__ads.htm#ref_2001_4">Default_Color</a>;
+ <span class="symbol"><a name="ref_2436_37" href="terminal_interface-curses__ads.htm#ref_2010_37">Back</a></span> : <a href="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</a> := <a href="terminal_interface-curses__ads.htm#ref_2001_4">Default_Color</a>)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_2438_16">C_Assume_Default_Colors</A></span> (<span class="symbol"><A NAME="ref_2438_41" HREF="terminal_interface-curses__adb.htm#ref_2438_16">Fore</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_2439_41" HREF="terminal_interface-curses__adb.htm#ref_2438_16">Back</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_2438_16">C_Assume_Default_Colors</a></span> (<span class="symbol"><a name="ref_2438_41">Fore</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_2439_41">Back</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, C_Assume_Default_Colors, "assume_default_colors");
- <span class="symbol"><A NAME="ref_2442_7">Err</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2438_16">C_Assume_Default_Colors</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_2009_37">Fore</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_2010_37">Back</A>));
+ <span class="symbol"><a name="ref_2442_7">Err</a></span> : <b>constant</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> := <a href="terminal_interface-curses__adb.htm#ref_2438_16">C_Assume_Default_Colors</a> (<a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_2009_37">Fore</a>),
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_2010_37">Back</a>));
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2442_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_2442_7">Err</a> = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_2009_14">Assume_Default_Colors</A>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_2450_13" HREF="terminal_interface-curses__ads.htm#ref_2019_13">Curses_Version</A></span> <b>return</b> String
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_2009_14">Assume_Default_Colors</a>;
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_2450_13" href="terminal_interface-curses__ads.htm#ref_2019_13">Curses_Version</a></span> <b>return</b> String
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_2452_16">curses_versionC</A></span> <b>return</b> chars_ptr;
+ <b>function</b> <span class="symbol"><a name="ref_2452_16">curses_versionC</a></span> <b>return</b> chars_ptr;
<b>pragma</b> Import (C, curses_versionC, "curses_version");
- <span class="symbol"><A NAME="ref_2454_7">Result</A></span> : <b>constant</b> chars_ptr := <A HREF="terminal_interface-curses__adb.htm#ref_2452_16">curses_versionC</A>;
+ <span class="symbol"><a name="ref_2454_7">Result</a></span> : <b>constant</b> chars_ptr := <a href="terminal_interface-curses__adb.htm#ref_2452_16">curses_versionC</a>;
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2454_7">Result</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_2019_13">Curses_Version</A>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_2459_14" HREF="terminal_interface-curses__ads.htm#ref_2032_14">Curses_Free_All</A></span> <b>is</b>
- <b>procedure</b> <span class="symbol"><A NAME="ref_2460_17">curses_freeall</A></span>;
+ <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_96_13">Fill_String</a> (<a href="terminal_interface-curses__adb.htm#ref_2454_7">Result</a>);
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_2019_13">Curses_Version</a>;
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_2459_14" href="terminal_interface-curses__ads.htm#ref_2032_14">Curses_Free_All</a></span> <b>is</b>
+ <b>procedure</b> <span class="symbol"><a name="ref_2460_17">curses_freeall</a></span>;
<b>pragma</b> Import (C, curses_freeall, "_nc_freeall");
<b>begin</b>
- <span class="comment"><EM>-- Use this only for testing: you cannot use curses after calling it,</EM></span>
- <span class="comment"><EM>-- so it has to be the "last" thing done before exiting the program.</EM></span>
- <span class="comment"><EM>-- This will not really free ALL of memory used by curses. That is</EM></span>
- <span class="comment"><EM>-- because it cannot free the memory used for stdout's setbuf. The</EM></span>
- <span class="comment"><EM>-- _nc_free_and_exit() procedure can do that, but it can be invoked</EM></span>
- <span class="comment"><EM>-- safely only from C - and again, that only as the "last" thing done</EM></span>
- <span class="comment"><EM>-- before exiting the program.</EM></span>
- <A HREF="terminal_interface-curses__adb.htm#ref_2460_17">curses_freeall</A>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_2032_14">Curses_Free_All</A>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_2473_13" HREF="terminal_interface-curses__ads.htm#ref_2024_13">Use_Extended_Names</A></span> (<span class="symbol"><A NAME="ref_2473_33" HREF="terminal_interface-curses__ads.htm#ref_2024_33">Enable</A></span> : Boolean) <b>return</b> Boolean
- <b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_2475_16">use_extended_namesC</A></span> (<span class="symbol"><A NAME="ref_2475_37" HREF="terminal_interface-curses__adb.htm#ref_2475_16">e</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <span class="comment"><em>-- Use this only for testing: you cannot use curses after calling it,</em></span>
+ <span class="comment"><em>-- so it has to be the "last" thing done before exiting the program.</em></span>
+ <span class="comment"><em>-- This will not really free ALL of memory used by curses. That is</em></span>
+ <span class="comment"><em>-- because it cannot free the memory used for stdout's setbuf. The</em></span>
+ <span class="comment"><em>-- _nc_free_and_exit() procedure can do that, but it can be invoked</em></span>
+ <span class="comment"><em>-- safely only from C - and again, that only as the "last" thing done</em></span>
+ <span class="comment"><em>-- before exiting the program.</em></span>
+ <a href="terminal_interface-curses__adb.htm#ref_2460_17">curses_freeall</a>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_2032_14">Curses_Free_All</a>;
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_2473_13" href="terminal_interface-curses__ads.htm#ref_2024_13">Use_Extended_Names</a></span> (<span class="symbol"><a name="ref_2473_33" href="terminal_interface-curses__ads.htm#ref_2024_33">Enable</a></span> : Boolean) <b>return</b> Boolean
+ <b>is</b>
+ <b>function</b> <span class="symbol"><a name="ref_2475_16">use_extended_namesC</a></span> (<span class="symbol"><a name="ref_2475_37">e</a></span> : <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, use_extended_namesC, "use_extended_names");
- <span class="symbol"><A NAME="ref_2478_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> :=
- <A HREF="terminal_interface-curses__adb.htm#ref_2475_16">use_extended_namesC</A> (<A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_2024_33">Enable</A>)));
+ <span class="symbol"><a name="ref_2478_7">Res</a></span> : <b>constant</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> :=
+ <a href="terminal_interface-curses__adb.htm#ref_2475_16">use_extended_namesC</a> (<a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a> (Boolean'Pos (<a href="terminal_interface-curses__ads.htm#ref_2024_33">Enable</a>)));
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2478_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_2101_4">Curses_Bool_False</A>) <b>then</b>
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_2478_7">Res</a> = <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_2101_4">Curses_Bool_False</a>) <b>then</b>
<b>return</b> False;
<b>else</b>
<b>return</b> True;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_2024_13">Use_Extended_Names</A>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_2488_14" HREF="terminal_interface-curses__ads.htm#ref_2040_14">Screen_Dump_To_File</A></span> (<span class="symbol"><A NAME="ref_2488_35" HREF="terminal_interface-curses__ads.htm#ref_2040_35">Filename</A></span> : String)
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_2024_13">Use_Extended_Names</a>;
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_2488_14" href="terminal_interface-curses__ads.htm#ref_2040_14">Screen_Dump_To_File</a></span> (<span class="symbol"><a name="ref_2488_35" href="terminal_interface-curses__ads.htm#ref_2040_35">Filename</a></span> : String)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_2490_16">scr_dump</A></span> (<span class="symbol"><A NAME="ref_2490_26" HREF="terminal_interface-curses__adb.htm#ref_2490_16">f</A></span> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_2490_16">scr_dump</a></span> (<span class="symbol"><a name="ref_2490_26">f</a></span> : char_array) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, scr_dump, "scr_dump");
- <span class="symbol"><A NAME="ref_2492_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_2040_35">Filename</A>'Length);
- <span class="symbol"><A NAME="ref_2493_7">Length</A></span> : size_t;
+ <span class="symbol"><a name="ref_2492_7">Txt</a></span> : char_array (0 .. <a href="terminal_interface-curses__ads.htm#ref_2040_35">Filename</a>'Length);
+ <span class="symbol"><a name="ref_2493_7">Length</a></span> : size_t;
<b>begin</b>
- To_C (<A HREF="terminal_interface-curses__ads.htm#ref_2040_35">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2492_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2493_7">Length</A>);
- <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#ref_2490_16">scr_dump</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2492_7">Txt</A>) <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ To_C (<a href="terminal_interface-curses__ads.htm#ref_2040_35">Filename</a>, <a href="terminal_interface-curses__adb.htm#ref_2492_7">Txt</a>, <a href="terminal_interface-curses__adb.htm#ref_2493_7">Length</a>);
+ <b>if</b> <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> = <a href="terminal_interface-curses__adb.htm#ref_2490_16">scr_dump</a> (<a href="terminal_interface-curses__adb.htm#ref_2492_7">Txt</a>) <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_2040_14">Screen_Dump_To_File</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_2040_14">Screen_Dump_To_File</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_2501_14" HREF="terminal_interface-curses__ads.htm#ref_2044_14">Screen_Restore_From_File</A></span> (<span class="symbol"><A NAME="ref_2501_40" HREF="terminal_interface-curses__ads.htm#ref_2044_40">Filename</A></span> : String)
+ <b>procedure</b> <span class="symbol"><a name="ref_2501_14" href="terminal_interface-curses__ads.htm#ref_2044_14">Screen_Restore_From_File</a></span> (<span class="symbol"><a name="ref_2501_40" href="terminal_interface-curses__ads.htm#ref_2044_40">Filename</a></span> : String)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_2503_16">scr_restore</A></span> (<span class="symbol"><A NAME="ref_2503_29" HREF="terminal_interface-curses__adb.htm#ref_2503_16">f</A></span> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_2503_16">scr_restore</a></span> (<span class="symbol"><a name="ref_2503_29">f</a></span> : char_array) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, scr_restore, "scr_restore");
- <span class="symbol"><A NAME="ref_2505_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_2044_40">Filename</A>'Length);
- <span class="symbol"><A NAME="ref_2506_7">Length</A></span> : size_t;
+ <span class="symbol"><a name="ref_2505_7">Txt</a></span> : char_array (0 .. <a href="terminal_interface-curses__ads.htm#ref_2044_40">Filename</a>'Length);
+ <span class="symbol"><a name="ref_2506_7">Length</a></span> : size_t;
<b>begin</b>
- To_C (<A HREF="terminal_interface-curses__ads.htm#ref_2044_40">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2505_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2506_7">Length</A>);
- <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#ref_2503_16">scr_restore</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2505_7">Txt</A>) <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ To_C (<a href="terminal_interface-curses__ads.htm#ref_2044_40">Filename</a>, <a href="terminal_interface-curses__adb.htm#ref_2505_7">Txt</a>, <a href="terminal_interface-curses__adb.htm#ref_2506_7">Length</a>);
+ <b>if</b> <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> = <a href="terminal_interface-curses__adb.htm#ref_2503_16">scr_restore</a> (<a href="terminal_interface-curses__adb.htm#ref_2505_7">Txt</a>) <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_2044_14">Screen_Restore_From_File</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_2044_14">Screen_Restore_From_File</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_2514_14" HREF="terminal_interface-curses__ads.htm#ref_2048_14">Screen_Init_From_File</A></span> (<span class="symbol"><A NAME="ref_2514_37" HREF="terminal_interface-curses__ads.htm#ref_2048_37">Filename</A></span> : String)
+ <b>procedure</b> <span class="symbol"><a name="ref_2514_14" href="terminal_interface-curses__ads.htm#ref_2048_14">Screen_Init_From_File</a></span> (<span class="symbol"><a name="ref_2514_37" href="terminal_interface-curses__ads.htm#ref_2048_37">Filename</a></span> : String)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_2516_16">scr_init</A></span> (<span class="symbol"><A NAME="ref_2516_26" HREF="terminal_interface-curses__adb.htm#ref_2516_16">f</A></span> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_2516_16">scr_init</a></span> (<span class="symbol"><a name="ref_2516_26">f</a></span> : char_array) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, scr_init, "scr_init");
- <span class="symbol"><A NAME="ref_2518_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_2048_37">Filename</A>'Length);
- <span class="symbol"><A NAME="ref_2519_7">Length</A></span> : size_t;
+ <span class="symbol"><a name="ref_2518_7">Txt</a></span> : char_array (0 .. <a href="terminal_interface-curses__ads.htm#ref_2048_37">Filename</a>'Length);
+ <span class="symbol"><a name="ref_2519_7">Length</a></span> : size_t;
<b>begin</b>
- To_C (<A HREF="terminal_interface-curses__ads.htm#ref_2048_37">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2518_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2519_7">Length</A>);
- <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#ref_2516_16">scr_init</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2518_7">Txt</A>) <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ To_C (<a href="terminal_interface-curses__ads.htm#ref_2048_37">Filename</a>, <a href="terminal_interface-curses__adb.htm#ref_2518_7">Txt</a>, <a href="terminal_interface-curses__adb.htm#ref_2519_7">Length</a>);
+ <b>if</b> <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> = <a href="terminal_interface-curses__adb.htm#ref_2516_16">scr_init</a> (<a href="terminal_interface-curses__adb.htm#ref_2518_7">Txt</a>) <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_2048_14">Screen_Init_From_File</A>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_2048_14">Screen_Init_From_File</a>;
- <b>procedure</b> <span class="symbol"><A NAME="ref_2527_14" HREF="terminal_interface-curses__ads.htm#ref_2052_14">Screen_Set_File</A></span> (<span class="symbol"><A NAME="ref_2527_31" HREF="terminal_interface-curses__ads.htm#ref_2052_31">Filename</A></span> : String)
+ <b>procedure</b> <span class="symbol"><a name="ref_2527_14" href="terminal_interface-curses__ads.htm#ref_2052_14">Screen_Set_File</a></span> (<span class="symbol"><a name="ref_2527_31" href="terminal_interface-curses__ads.htm#ref_2052_31">Filename</a></span> : String)
<b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_2529_16">scr_set</A></span> (<span class="symbol"><A NAME="ref_2529_25" HREF="terminal_interface-curses__adb.htm#ref_2529_16">f</A></span> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <b>function</b> <span class="symbol"><a name="ref_2529_16">scr_set</a></span> (<span class="symbol"><a name="ref_2529_25">f</a></span> : char_array) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, scr_set, "scr_set");
- <span class="symbol"><A NAME="ref_2531_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_2052_31">Filename</A>'Length);
- <span class="symbol"><A NAME="ref_2532_7">Length</A></span> : size_t;
- <b>begin</b>
- To_C (<A HREF="terminal_interface-curses__ads.htm#ref_2052_31">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2531_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2532_7">Length</A>);
- <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#ref_2529_16">scr_set</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2531_7">Txt</A>) <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
- <b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_2052_14">Screen_Set_File</A>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_2540_14" HREF="terminal_interface-curses__ads.htm#ref_2084_14">Resize</A></span> (<span class="symbol"><A NAME="ref_2540_22" HREF="terminal_interface-curses__ads.htm#ref_2084_22">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_2541_22" HREF="terminal_interface-curses__ads.htm#ref_2085_22">Number_Of_Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</A>;
- <span class="symbol"><A NAME="ref_2542_22" HREF="terminal_interface-curses__ads.htm#ref_2086_22">Number_Of_Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</A>) <b>is</b>
- <b>function</b> <span class="symbol"><A NAME="ref_2543_16">wresize</A></span> (<span class="symbol"><A NAME="ref_2543_25" HREF="terminal_interface-curses__adb.htm#ref_2543_16">win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_2544_25" HREF="terminal_interface-curses__adb.htm#ref_2543_16">lines</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
- <span class="symbol"><A NAME="ref_2545_25" HREF="terminal_interface-curses__adb.htm#ref_2543_16">columns</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
+ <span class="symbol"><a name="ref_2531_7">Txt</a></span> : char_array (0 .. <a href="terminal_interface-curses__ads.htm#ref_2052_31">Filename</a>'Length);
+ <span class="symbol"><a name="ref_2532_7">Length</a></span> : size_t;
+ <b>begin</b>
+ To_C (<a href="terminal_interface-curses__ads.htm#ref_2052_31">Filename</a>, <a href="terminal_interface-curses__adb.htm#ref_2531_7">Txt</a>, <a href="terminal_interface-curses__adb.htm#ref_2532_7">Length</a>);
+ <b>if</b> <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a> = <a href="terminal_interface-curses__adb.htm#ref_2529_16">scr_set</a> (<a href="terminal_interface-curses__adb.htm#ref_2531_7">Txt</a>) <b>then</b>
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
+ <b>end</b> <b>if</b>;
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_2052_14">Screen_Set_File</a>;
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_2540_14" href="terminal_interface-curses__ads.htm#ref_2084_14">Resize</a></span> (<span class="symbol"><a name="ref_2540_22" href="terminal_interface-curses__ads.htm#ref_2084_22">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_2541_22" href="terminal_interface-curses__ads.htm#ref_2085_22">Number_Of_Lines</a></span> : <a href="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</a>;
+ <span class="symbol"><a name="ref_2542_22" href="terminal_interface-curses__ads.htm#ref_2086_22">Number_Of_Columns</a></span> : <a href="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</a>) <b>is</b>
+ <b>function</b> <span class="symbol"><a name="ref_2543_16">wresize</a></span> (<span class="symbol"><a name="ref_2543_25">win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_2544_25">lines</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
+ <span class="symbol"><a name="ref_2545_25">columns</a></span> : <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>) <b>return</b> <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a>;
<b>pragma</b> Import (C, wresize);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2543_16">wresize</A> (<A HREF="terminal_interface-curses__ads.htm#ref_2084_22">Win</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_2085_22">Number_Of_Lines</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_2086_22">Number_Of_Columns</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A>
+ <b>if</b> <a href="terminal_interface-curses__adb.htm#ref_2543_16">wresize</a> (<a href="terminal_interface-curses__ads.htm#ref_2084_22">Win</a>,
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_2085_22">Number_Of_Lines</a>),
+ <a href="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</a> (<a href="terminal_interface-curses__ads.htm#ref_2086_22">Number_Of_Columns</a>)) = <a href="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</a>
<b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</A>;
+ <b>raise</b> <a href="terminal_interface-curses__ads.htm#ref_522_4">Curses_Exception</a>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_2084_14">Resize</A>;
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+ <b>end</b> <a href="terminal_interface-curses__ads.htm#ref_2084_14">Resize</a>;
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses__ads.htm b/doc/html/ada/terminal_interface-curses__ads.htm
index 83978473efb7..c506fdd5ddfe 100644
--- a/doc/html/ada/terminal_interface-curses__ads.htm
+++ b/doc/html/ada/terminal_interface-curses__ads.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses.ads</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses.ads</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,2111 +11,2111 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses.ads </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface.Curses --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- S P E C --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1998-2011,2014 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.48 @</EM></span>
-<span class="comment"><EM>-- @Date: 2020/02/02 23:34:34 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses.ads </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface.Curses --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- S P E C --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020,2024 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1998-2011,2014 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.49 @</em></span>
+<span class="comment"><em>-- @Date: 2024/01/19 16:51:30 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
<b>with</b> System.Storage_Elements;
-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; <span class="comment"><EM>-- We need this for some assertions.</EM></span>
+<b>with</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C; <span class="comment"><em>-- We need this for some assertions.</em></span>
-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>;
+<b>with</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>;
-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<span class="symbol"><A NAME="ref_48_28" HREF="terminal_interface-curses__adb.htm#ref_51_33">Curses</A></span> <b>is</b>
- <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>);
- <b>pragma</b> Linker_Options ("-lncurses" &amp; <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_9_4">DFT_ARG_SUFFIX</A>);
+<b>package</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<span class="symbol"><a name="ref_48_28" href="terminal_interface-curses__adb.htm#ref_51_33">Curses</a></span> <b>is</b>
+ <b>pragma</b> Preelaborate (<a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>);
+ <b>pragma</b> Linker_Options ("-lncurses" &amp; <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_9_4">DFT_ARG_SUFFIX</a>);
- <span class="symbol"><A NAME="ref_52_4">Major_Version</A></span> : <b>constant</b> := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_21_4">NCURSES_VERSION_MAJOR</A>;
- <span class="symbol"><A NAME="ref_53_4">Minor_Version</A></span> : <b>constant</b> := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_22_4">NCURSES_VERSION_MINOR</A>;
- NC_Version : String <b>renames</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_23_4">Version</A>;
+ <span class="symbol"><a name="ref_52_4">Major_Version</a></span> : <b>constant</b> := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_21_4">NCURSES_VERSION_MAJOR</a>;
+ <span class="symbol"><a name="ref_53_4">Minor_Version</a></span> : <b>constant</b> := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_22_4">NCURSES_VERSION_MINOR</a>;
+ NC_Version : String <b>renames</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_23_4">Version</a>;
- <b>type</b> <span class="symbol"><A NAME="ref_56_9">Window</A></span> <b>is</b> <b>private</b>;
- <span class="symbol"><A NAME="ref_57_4">Null_Window</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
+ <b>type</b> <span class="symbol"><a name="ref_56_9">Window</a></span> <b>is</b> <b>private</b>;
+ <span class="symbol"><a name="ref_57_4">Null_Window</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
- <b>type</b> <span class="symbol"><A NAME="ref_59_9">Line_Position</A></span> <b>is</b> <b>new</b> Integer; <span class="comment"><EM>-- line coordinate</EM></span>
- <b>type</b> <span class="symbol"><A NAME="ref_60_9">Column_Position</A></span> <b>is</b> <b>new</b> Integer; <span class="comment"><EM>-- column coordinate</EM></span>
+ <b>type</b> <span class="symbol"><a name="ref_59_9">Line_Position</a></span> <b>is</b> <b>new</b> Integer; <span class="comment"><em>-- line coordinate</em></span>
+ <b>type</b> <span class="symbol"><a name="ref_60_9">Column_Position</a></span> <b>is</b> <b>new</b> Integer; <span class="comment"><em>-- column coordinate</em></span>
- <b>subtype</b> <span class="symbol"><A NAME="ref_62_12">Line_Count</A></span> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A> <b>range</b> 1 .. <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>'Last;
- <span class="comment"><EM>-- Type to count lines. We do not allow null windows, so must be positive</EM></span>
- <b>subtype</b> <span class="symbol"><A NAME="ref_64_12">Column_Count</A></span> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A> <b>range</b> 1 .. <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>'Last;
- <span class="comment"><EM>-- Type to count columns. We do not allow null windows, so must be positive</EM></span>
+ <b>subtype</b> <span class="symbol"><a name="ref_62_12">Line_Count</a></span> <b>is</b> <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a> <b>range</b> 1 .. <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>'Last;
+ <span class="comment"><em>-- Type to count lines. We do not allow null windows, so must be positive</em></span>
+ <b>subtype</b> <span class="symbol"><a name="ref_64_12">Column_Count</a></span> <b>is</b> <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a> <b>range</b> 1 .. <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>'Last;
+ <span class="comment"><em>-- Type to count columns. We do not allow null windows, so must be positive</em></span>
- <b>type</b> <span class="symbol"><A NAME="ref_67_9">Key_Code</A></span> <b>is</b> <b>new</b> Integer;
- <span class="comment"><EM>-- That is anything including real characters, special keys and logical</EM></span>
- <span class="comment"><EM>-- request codes.</EM></span>
+ <b>type</b> <span class="symbol"><a name="ref_67_9">Key_Code</a></span> <b>is</b> <b>new</b> Integer;
+ <span class="comment"><em>-- That is anything including real characters, special keys and logical</em></span>
+ <span class="comment"><em>-- request codes.</em></span>
- <span class="comment"><EM>-- FIXME: The "-1" should be Curses_Err</EM></span>
- <b>subtype</b> <span class="symbol"><A NAME="ref_72_12">Real_Key_Code</A></span> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_67_9">Key_Code</A> <b>range</b> -1 .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_99_4">KEY_MAX</A>;
- <span class="comment"><EM>-- This are the codes that potentially represent a real keystroke.</EM></span>
- <span class="comment"><EM>-- Not all codes may be possible on a specific terminal. To check the</EM></span>
- <span class="comment"><EM>-- availability of a special key, the Has_Key function is provided.</EM></span>
+ <span class="comment"><em>-- FIXME: The "-1" should be Curses_Err</em></span>
+ <b>subtype</b> <span class="symbol"><a name="ref_72_12">Real_Key_Code</a></span> <b>is</b> <a href="terminal_interface-curses__ads.htm#ref_67_9">Key_Code</a> <b>range</b> -1 .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_99_4">KEY_MAX</a>;
+ <span class="comment"><em>-- This are the codes that potentially represent a real keystroke.</em></span>
+ <span class="comment"><em>-- Not all codes may be possible on a specific terminal. To check the</em></span>
+ <span class="comment"><em>-- availability of a special key, the Has_Key function is provided.</em></span>
- <b>subtype</b> <span class="symbol"><A NAME="ref_77_12">Special_Key_Code</A></span> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_72_12">Real_Key_Code</A>
- <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>. <A HREF="terminal_interface-curses_constants__ads.htm#ref_98_4">KEY_MIN</A> - 1 .. <A HREF="terminal_interface-curses__ads.htm#ref_72_12">Real_Key_Code</A>'Last;
- <span class="comment"><EM>-- Type for a function- or special key number</EM></span>
+ <b>subtype</b> <span class="symbol"><a name="ref_77_12">Special_Key_Code</a></span> <b>is</b> <a href="terminal_interface-curses__ads.htm#ref_72_12">Real_Key_Code</a>
+ <b>range</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>. <a href="terminal_interface-curses_constants__ads.htm#ref_98_4">KEY_MIN</a> - 1 .. <a href="terminal_interface-curses__ads.htm#ref_72_12">Real_Key_Code</a>'Last;
+ <span class="comment"><em>-- Type for a function- or special key number</em></span>
- <b>subtype</b> <span class="symbol"><A NAME="ref_81_12">Normal_Key_Code</A></span> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_72_12">Real_Key_Code</A> <b>range</b>
+ <b>subtype</b> <span class="symbol"><a name="ref_81_12">Normal_Key_Code</a></span> <b>is</b> <a href="terminal_interface-curses__ads.htm#ref_72_12">Real_Key_Code</a> <b>range</b>
Character'Pos (Character'First) .. Character'Pos (Character'Last);
- <span class="comment"><EM>-- This are the codes for regular (incl. non-graphical) characters.</EM></span>
-
- <span class="comment"><EM>-- For those who like to use the original key names we produce them were</EM></span>
- <span class="comment"><EM>-- they differ from the original.</EM></span>
-
- <span class="comment"><EM>-- Constants for function- and special keys</EM></span>
- <span class="symbol"><A NAME="ref_89_4">Key_None</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_98_4">KEY_MIN</A> - 1;
- <span class="symbol"><A NAME="ref_91_4">Key_Min</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_98_4">KEY_MIN</A>;
- <span class="symbol"><A NAME="ref_93_4">Key_Break</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_104_4">KEY_BREAK</A>;
- <span class="symbol"><A NAME="ref_95_4">KEY_DOWN</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_105_4">KEY_DOWN</A>;
- Key_Cursor_Down : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_95_4">KEY_DOWN</A>;
- <span class="symbol"><A NAME="ref_98_4">KEY_UP</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_106_4">KEY_UP</A>;
- Key_Cursor_Up : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_98_4">KEY_UP</A>;
- <span class="symbol"><A NAME="ref_101_4">KEY_LEFT</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_107_4">KEY_LEFT</A>;
- Key_Cursor_Left : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_101_4">KEY_LEFT</A>;
- <span class="symbol"><A NAME="ref_104_4">KEY_RIGHT</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_108_4">KEY_RIGHT</A>;
- Key_Cursor_Right : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_104_4">KEY_RIGHT</A>;
- <span class="symbol"><A NAME="ref_107_4">Key_Home</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_109_4">KEY_HOME</A>;
- <span class="symbol"><A NAME="ref_109_4">Key_Backspace</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_110_4">KEY_BACKSPACE</A>;
- <span class="symbol"><A NAME="ref_111_4">Key_F0</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_111_4">KEY_F0</A>;
- <span class="symbol"><A NAME="ref_113_4">Key_F1</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_112_4">KEY_F1</A>;
- <span class="symbol"><A NAME="ref_115_4">Key_F2</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_113_4">KEY_F2</A>;
- <span class="symbol"><A NAME="ref_117_4">Key_F3</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_114_4">KEY_F3</A>;
- <span class="symbol"><A NAME="ref_119_4">Key_F4</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_115_4">KEY_F4</A>;
- <span class="symbol"><A NAME="ref_121_4">Key_F5</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_116_4">KEY_F5</A>;
- <span class="symbol"><A NAME="ref_123_4">Key_F6</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_117_4">KEY_F6</A>;
- <span class="symbol"><A NAME="ref_125_4">Key_F7</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_118_4">KEY_F7</A>;
- <span class="symbol"><A NAME="ref_127_4">Key_F8</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_119_4">KEY_F8</A>;
- <span class="symbol"><A NAME="ref_129_4">Key_F9</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_120_4">KEY_F9</A>;
- <span class="symbol"><A NAME="ref_131_4">Key_F10</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_121_4">KEY_F10</A>;
- <span class="symbol"><A NAME="ref_133_4">Key_F11</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_122_4">KEY_F11</A>;
- <span class="symbol"><A NAME="ref_135_4">Key_F12</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_123_4">KEY_F12</A>;
- <span class="symbol"><A NAME="ref_137_4">Key_F13</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_124_4">KEY_F13</A>;
- <span class="symbol"><A NAME="ref_139_4">Key_F14</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_125_4">KEY_F14</A>;
- <span class="symbol"><A NAME="ref_141_4">Key_F15</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_126_4">KEY_F15</A>;
- <span class="symbol"><A NAME="ref_143_4">Key_F16</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_127_4">KEY_F16</A>;
- <span class="symbol"><A NAME="ref_145_4">Key_F17</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_128_4">KEY_F17</A>;
- <span class="symbol"><A NAME="ref_147_4">Key_F18</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_129_4">KEY_F18</A>;
- <span class="symbol"><A NAME="ref_149_4">Key_F19</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_130_4">KEY_F19</A>;
- <span class="symbol"><A NAME="ref_151_4">Key_F20</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_131_4">KEY_F20</A>;
- <span class="symbol"><A NAME="ref_153_4">Key_F21</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_132_4">KEY_F21</A>;
- <span class="symbol"><A NAME="ref_155_4">Key_F22</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_133_4">KEY_F22</A>;
- <span class="symbol"><A NAME="ref_157_4">Key_F23</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_134_4">KEY_F23</A>;
- <span class="symbol"><A NAME="ref_159_4">Key_F24</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_135_4">KEY_F24</A>;
- <span class="symbol"><A NAME="ref_161_4">KEY_DL</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_136_4">KEY_DL</A>;
- Key_Delete_Line : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_161_4">KEY_DL</A>;
- <span class="symbol"><A NAME="ref_164_4">KEY_IL</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_137_4">KEY_IL</A>;
- Key_Insert_Line : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_164_4">KEY_IL</A>;
- <span class="symbol"><A NAME="ref_167_4">KEY_DC</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_138_4">KEY_DC</A>;
- Key_Delete_Char : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_167_4">KEY_DC</A>;
- <span class="symbol"><A NAME="ref_170_4">KEY_IC</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_139_4">KEY_IC</A>;
- Key_Insert_Char : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_170_4">KEY_IC</A>;
- <span class="symbol"><A NAME="ref_173_4">KEY_EIC</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_140_4">KEY_EIC</A>;
- Key_Exit_Insert_Mode : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_173_4">KEY_EIC</A>;
- <span class="symbol"><A NAME="ref_176_4">KEY_CLEAR</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_141_4">KEY_CLEAR</A>;
- Key_Clear_Screen : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_176_4">KEY_CLEAR</A>;
- <span class="symbol"><A NAME="ref_179_4">KEY_EOS</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_142_4">KEY_EOS</A>;
- Key_Clear_End_Of_Screen : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_179_4">KEY_EOS</A>;
- <span class="symbol"><A NAME="ref_182_4">KEY_EOL</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_143_4">KEY_EOL</A>;
- Key_Clear_End_Of_Line : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_182_4">KEY_EOL</A>;
- <span class="symbol"><A NAME="ref_185_4">KEY_SF</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_144_4">KEY_SF</A>;
- Key_Scroll_1_Forward : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_185_4">KEY_SF</A>;
- <span class="symbol"><A NAME="ref_188_4">KEY_SR</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_145_4">KEY_SR</A>;
- Key_Scroll_1_Backward : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_188_4">KEY_SR</A>;
- <span class="symbol"><A NAME="ref_191_4">KEY_NPAGE</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_146_4">KEY_NPAGE</A>;
- Key_Next_Page : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_191_4">KEY_NPAGE</A>;
- <span class="symbol"><A NAME="ref_194_4">KEY_PPAGE</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_147_4">KEY_PPAGE</A>;
- Key_Previous_Page : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_194_4">KEY_PPAGE</A>;
- <span class="symbol"><A NAME="ref_197_4">KEY_STAB</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_148_4">KEY_STAB</A>;
- Key_Set_Tab : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_197_4">KEY_STAB</A>;
- <span class="symbol"><A NAME="ref_200_4">KEY_CTAB</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_149_4">KEY_CTAB</A>;
- Key_Clear_Tab : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_200_4">KEY_CTAB</A>;
- <span class="symbol"><A NAME="ref_203_4">KEY_CATAB</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_150_4">KEY_CATAB</A>;
- Key_Clear_All_Tabs : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_203_4">KEY_CATAB</A>;
- <span class="symbol"><A NAME="ref_206_4">KEY_ENTER</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_151_4">KEY_ENTER</A>;
- Key_Enter_Or_Send : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_206_4">KEY_ENTER</A>;
- <span class="symbol"><A NAME="ref_209_4">KEY_SRESET</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_152_4">KEY_SRESET</A>;
- Key_Soft_Reset : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_209_4">KEY_SRESET</A>;
- <span class="symbol"><A NAME="ref_212_4">Key_Reset</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_153_4">KEY_RESET</A>;
- <span class="symbol"><A NAME="ref_214_4">Key_Print</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_154_4">KEY_PRINT</A>;
- <span class="symbol"><A NAME="ref_216_4">KEY_LL</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_155_4">KEY_LL</A>;
- Key_Bottom : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_216_4">KEY_LL</A>;
- <span class="symbol"><A NAME="ref_219_4">KEY_A1</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_156_4">KEY_A1</A>;
- Key_Upper_Left_Of_Keypad : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_219_4">KEY_A1</A>;
- <span class="symbol"><A NAME="ref_222_4">KEY_A3</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_157_4">KEY_A3</A>;
- Key_Upper_Right_Of_Keypad : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_222_4">KEY_A3</A>;
- <span class="symbol"><A NAME="ref_225_4">KEY_B2</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_158_4">KEY_B2</A>;
- Key_Center_Of_Keypad : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_225_4">KEY_B2</A>;
- <span class="symbol"><A NAME="ref_228_4">KEY_C1</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_159_4">KEY_C1</A>;
- Key_Lower_Left_Of_Keypad : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_228_4">KEY_C1</A>;
- <span class="symbol"><A NAME="ref_231_4">KEY_C3</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_160_4">KEY_C3</A>;
- Key_Lower_Right_Of_Keypad : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_231_4">KEY_C3</A>;
- <span class="symbol"><A NAME="ref_234_4">KEY_BTAB</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_161_4">KEY_BTAB</A>;
- Key_Back_Tab : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_234_4">KEY_BTAB</A>;
- <span class="symbol"><A NAME="ref_237_4">KEY_BEG</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_162_4">KEY_BEG</A>;
- Key_Beginning : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_237_4">KEY_BEG</A>;
- <span class="symbol"><A NAME="ref_240_4">Key_Cancel</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_163_4">KEY_CANCEL</A>;
- <span class="symbol"><A NAME="ref_242_4">Key_Close</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_164_4">KEY_CLOSE</A>;
- <span class="symbol"><A NAME="ref_244_4">Key_Command</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_165_4">KEY_COMMAND</A>;
- <span class="symbol"><A NAME="ref_246_4">Key_Copy</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_166_4">KEY_COPY</A>;
- <span class="symbol"><A NAME="ref_248_4">Key_Create</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_167_4">KEY_CREATE</A>;
- <span class="symbol"><A NAME="ref_250_4">Key_End</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_168_4">KEY_END</A>;
- <span class="symbol"><A NAME="ref_252_4">Key_Exit</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_169_4">KEY_EXIT</A>;
- <span class="symbol"><A NAME="ref_254_4">Key_Find</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_170_4">KEY_FIND</A>;
- <span class="symbol"><A NAME="ref_256_4">Key_Help</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_171_4">KEY_HELP</A>;
- <span class="symbol"><A NAME="ref_258_4">Key_Mark</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_172_4">KEY_MARK</A>;
- <span class="symbol"><A NAME="ref_260_4">Key_Message</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_173_4">KEY_MESSAGE</A>;
- <span class="symbol"><A NAME="ref_262_4">Key_Move</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_174_4">KEY_MOVE</A>;
- <span class="symbol"><A NAME="ref_264_4">Key_Next</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_175_4">KEY_NEXT</A>;
- <span class="symbol"><A NAME="ref_266_4">Key_Open</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_176_4">KEY_OPEN</A>;
- <span class="symbol"><A NAME="ref_268_4">Key_Options</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_177_4">KEY_OPTIONS</A>;
- <span class="symbol"><A NAME="ref_270_4">Key_Previous</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_178_4">KEY_PREVIOUS</A>;
- <span class="symbol"><A NAME="ref_272_4">Key_Redo</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_179_4">KEY_REDO</A>;
- <span class="symbol"><A NAME="ref_274_4">Key_Reference</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_180_4">KEY_REFERENCE</A>;
- <span class="symbol"><A NAME="ref_276_4">Key_Refresh</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_181_4">KEY_REFRESH</A>;
- <span class="symbol"><A NAME="ref_278_4">Key_Replace</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_182_4">KEY_REPLACE</A>;
- <span class="symbol"><A NAME="ref_280_4">Key_Restart</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_183_4">KEY_RESTART</A>;
- <span class="symbol"><A NAME="ref_282_4">Key_Resume</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_184_4">KEY_RESUME</A>;
- <span class="symbol"><A NAME="ref_284_4">Key_Save</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_185_4">KEY_SAVE</A>;
- <span class="symbol"><A NAME="ref_286_4">KEY_SBEG</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_186_4">KEY_SBEG</A>;
- Key_Shift_Begin : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_286_4">KEY_SBEG</A>;
- <span class="symbol"><A NAME="ref_289_4">KEY_SCANCEL</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_187_4">KEY_SCANCEL</A>;
- Key_Shift_Cancel : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_289_4">KEY_SCANCEL</A>;
- <span class="symbol"><A NAME="ref_292_4">KEY_SCOMMAND</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_188_4">KEY_SCOMMAND</A>;
- Key_Shift_Command : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_292_4">KEY_SCOMMAND</A>;
- <span class="symbol"><A NAME="ref_295_4">KEY_SCOPY</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_189_4">KEY_SCOPY</A>;
- Key_Shift_Copy : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_4">KEY_SCOPY</A>;
- <span class="symbol"><A NAME="ref_298_4">KEY_SCREATE</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_190_4">KEY_SCREATE</A>;
- Key_Shift_Create : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_298_4">KEY_SCREATE</A>;
- <span class="symbol"><A NAME="ref_301_4">KEY_SDC</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_191_4">KEY_SDC</A>;
- Key_Shift_Delete_Char : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_301_4">KEY_SDC</A>;
- <span class="symbol"><A NAME="ref_304_4">KEY_SDL</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_192_4">KEY_SDL</A>;
- Key_Shift_Delete_Line : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_304_4">KEY_SDL</A>;
- <span class="symbol"><A NAME="ref_307_4">Key_Select</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_193_4">KEY_SELECT</A>;
- <span class="symbol"><A NAME="ref_309_4">KEY_SEND</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_194_4">KEY_SEND</A>;
- Key_Shift_End : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_309_4">KEY_SEND</A>;
- <span class="symbol"><A NAME="ref_312_4">KEY_SEOL</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_195_4">KEY_SEOL</A>;
- Key_Shift_Clear_End_Of_Line : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_312_4">KEY_SEOL</A>;
- <span class="symbol"><A NAME="ref_315_4">KEY_SEXIT</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_196_4">KEY_SEXIT</A>;
- Key_Shift_Exit : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_315_4">KEY_SEXIT</A>;
- <span class="symbol"><A NAME="ref_318_4">KEY_SFIND</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_197_4">KEY_SFIND</A>;
- Key_Shift_Find : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_318_4">KEY_SFIND</A>;
- <span class="symbol"><A NAME="ref_321_4">KEY_SHELP</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_198_4">KEY_SHELP</A>;
- Key_Shift_Help : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_321_4">KEY_SHELP</A>;
- <span class="symbol"><A NAME="ref_324_4">KEY_SHOME</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_199_4">KEY_SHOME</A>;
- Key_Shift_Home : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_324_4">KEY_SHOME</A>;
- <span class="symbol"><A NAME="ref_327_4">KEY_SIC</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_200_4">KEY_SIC</A>;
- Key_Shift_Insert_Char : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_327_4">KEY_SIC</A>;
- <span class="symbol"><A NAME="ref_330_4">KEY_SLEFT</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_201_4">KEY_SLEFT</A>;
- Key_Shift_Cursor_Left : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_330_4">KEY_SLEFT</A>;
- <span class="symbol"><A NAME="ref_333_4">KEY_SMESSAGE</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_202_4">KEY_SMESSAGE</A>;
- Key_Shift_Message : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_333_4">KEY_SMESSAGE</A>;
- <span class="symbol"><A NAME="ref_336_4">KEY_SMOVE</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_203_4">KEY_SMOVE</A>;
- Key_Shift_Move : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_336_4">KEY_SMOVE</A>;
- <span class="symbol"><A NAME="ref_339_4">KEY_SNEXT</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_204_4">KEY_SNEXT</A>;
- Key_Shift_Next_Page : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_339_4">KEY_SNEXT</A>;
- <span class="symbol"><A NAME="ref_342_4">KEY_SOPTIONS</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_205_4">KEY_SOPTIONS</A>;
- Key_Shift_Options : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_342_4">KEY_SOPTIONS</A>;
- <span class="symbol"><A NAME="ref_345_4">KEY_SPREVIOUS</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_206_4">KEY_SPREVIOUS</A>;
- Key_Shift_Previous_Page : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_345_4">KEY_SPREVIOUS</A>;
- <span class="symbol"><A NAME="ref_348_4">KEY_SPRINT</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_207_4">KEY_SPRINT</A>;
- Key_Shift_Print : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_348_4">KEY_SPRINT</A>;
- <span class="symbol"><A NAME="ref_351_4">KEY_SREDO</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_208_4">KEY_SREDO</A>;
- Key_Shift_Redo : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_351_4">KEY_SREDO</A>;
- <span class="symbol"><A NAME="ref_354_4">KEY_SREPLACE</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_209_4">KEY_SREPLACE</A>;
- Key_Shift_Replace : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_354_4">KEY_SREPLACE</A>;
- <span class="symbol"><A NAME="ref_357_4">KEY_SRIGHT</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_210_4">KEY_SRIGHT</A>;
- Key_Shift_Cursor_Right : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_357_4">KEY_SRIGHT</A>;
- <span class="symbol"><A NAME="ref_360_4">KEY_SRSUME</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_211_4">KEY_SRSUME</A>;
- Key_Shift_Resume : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_360_4">KEY_SRSUME</A>;
- <span class="symbol"><A NAME="ref_363_4">KEY_SSAVE</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_212_4">KEY_SSAVE</A>;
- Key_Shift_Save : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_363_4">KEY_SSAVE</A>;
- <span class="symbol"><A NAME="ref_366_4">KEY_SSUSPEND</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_213_4">KEY_SSUSPEND</A>;
- Key_Shift_Suspend : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_366_4">KEY_SSUSPEND</A>;
- <span class="symbol"><A NAME="ref_369_4">KEY_SUNDO</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_214_4">KEY_SUNDO</A>;
- Key_Shift_Undo : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_369_4">KEY_SUNDO</A>;
- <span class="symbol"><A NAME="ref_372_4">Key_Suspend</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_215_4">KEY_SUSPEND</A>;
- <span class="symbol"><A NAME="ref_374_4">Key_Undo</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_216_4">KEY_UNDO</A>;
- <span class="symbol"><A NAME="ref_376_4">Key_Mouse</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_217_4">KEY_MOUSE</A>;
- <span class="symbol"><A NAME="ref_378_4">Key_Resize</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_218_4">KEY_RESIZE</A>;
- <span class="symbol"><A NAME="ref_380_4">Key_Max</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>
- := <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>'Last;
-
- <b>subtype</b> <span class="symbol"><A NAME="ref_383_12">User_Key_Code</A></span> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_67_9">Key_Code</A>
- <b>range</b> (<A HREF="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</A> + 129) .. <A HREF="terminal_interface-curses__ads.htm#ref_67_9">Key_Code</A>'Last;
- <span class="comment"><EM>-- This is reserved for user defined key codes. The range between Key_Max</EM></span>
- <span class="comment"><EM>-- and the first user code is reserved for subsystems like menu and forms.</EM></span>
-
- <span class="comment"><EM>--------------------------------------------------------------------------</EM></span>
-
- <b>type</b> <span class="symbol"><A NAME="ref_390_9">Color_Number</A></span> <b>is</b> <b>range</b> -1 .. Integer (<A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short'Last);
- <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</A>'Size <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short'Size;
- <span class="comment"><EM>-- (n)curses uses a short for the color index</EM></span>
- <span class="comment"><EM>-- The model is, that a Color_Number is an index into an array of</EM></span>
- <span class="comment"><EM>-- (potentially) definable colors. Some of those indices are</EM></span>
- <span class="comment"><EM>-- predefined (see below), although they may not really exist.</EM></span>
-
- <span class="symbol"><A NAME="ref_397_4">Black</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</A> := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_69_4">COLOR_BLACK</A>;
- <span class="symbol"><A NAME="ref_398_4">Red</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</A> := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_70_4">COLOR_RED</A>;
- <span class="symbol"><A NAME="ref_399_4">Green</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</A> := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_71_4">COLOR_GREEN</A>;
- <span class="symbol"><A NAME="ref_400_4">Yellow</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</A> := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_72_4">COLOR_YELLOW</A>;
- <span class="symbol"><A NAME="ref_401_4">Blue</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</A> := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_73_4">COLOR_BLUE</A>;
- <span class="symbol"><A NAME="ref_402_4">Magenta</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</A> := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_74_4">COLOR_MAGENTA</A>;
- <span class="symbol"><A NAME="ref_403_4">Cyan</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</A> := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_75_4">COLOR_CYAN</A>;
- <span class="symbol"><A NAME="ref_404_4">White</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</A> := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_76_4">COLOR_WHITE</A>;
-
- <b>type</b> <span class="symbol"><A NAME="ref_406_9">RGB_Value</A></span> <b>is</b> <b>range</b> 0 .. Integer (<A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short'Last);
- <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_406_9">RGB_Value</A>'Size <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short'Size;
- <span class="comment"><EM>-- Some system may allow to redefine a color by setting RGB values.</EM></span>
-
- <b>type</b> <span class="symbol"><A NAME="ref_410_9">Color_Pair</A></span> <b>is</b> <b>range</b> 0 .. 255;
- <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>'Size <b>use</b> 8;
- <b>subtype</b> <span class="symbol"><A NAME="ref_412_12">Redefinable_Color_Pair</A></span> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A> <b>range</b> 1 .. 255;
- <span class="comment"><EM>-- (n)curses reserves 1 Byte for the color-pair number. Color Pair 0</EM></span>
- <span class="comment"><EM>-- is fixed (Black &amp; White). A color pair is simply a combination of</EM></span>
- <span class="comment"><EM>-- two colors described by Color_Numbers, one for the foreground and</EM></span>
- <span class="comment"><EM>-- the other for the background</EM></span>
-
- <b>type</b> <span class="symbol"><A NAME="ref_418_9">Character_Attribute_Set</A></span> <b>is</b>
+ <span class="comment"><em>-- This are the codes for regular (incl. non-graphical) characters.</em></span>
+
+ <span class="comment"><em>-- For those who like to use the original key names we produce them were</em></span>
+ <span class="comment"><em>-- they differ from the original.</em></span>
+
+ <span class="comment"><em>-- Constants for function- and special keys</em></span>
+ <span class="symbol"><a name="ref_89_4">Key_None</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_98_4">KEY_MIN</a> - 1;
+ <span class="symbol"><a name="ref_91_4">Key_Min</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_98_4">KEY_MIN</a>;
+ <span class="symbol"><a name="ref_93_4">Key_Break</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_104_4">KEY_BREAK</a>;
+ <span class="symbol"><a name="ref_95_4">KEY_DOWN</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_105_4">KEY_DOWN</a>;
+ Key_Cursor_Down : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_95_4">KEY_DOWN</a>;
+ <span class="symbol"><a name="ref_98_4">KEY_UP</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_106_4">KEY_UP</a>;
+ Key_Cursor_Up : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_98_4">KEY_UP</a>;
+ <span class="symbol"><a name="ref_101_4">KEY_LEFT</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_107_4">KEY_LEFT</a>;
+ Key_Cursor_Left : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_101_4">KEY_LEFT</a>;
+ <span class="symbol"><a name="ref_104_4">KEY_RIGHT</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_108_4">KEY_RIGHT</a>;
+ Key_Cursor_Right : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_104_4">KEY_RIGHT</a>;
+ <span class="symbol"><a name="ref_107_4">Key_Home</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_109_4">KEY_HOME</a>;
+ <span class="symbol"><a name="ref_109_4">Key_Backspace</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_110_4">KEY_BACKSPACE</a>;
+ <span class="symbol"><a name="ref_111_4">Key_F0</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_111_4">KEY_F0</a>;
+ <span class="symbol"><a name="ref_113_4">Key_F1</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_112_4">KEY_F1</a>;
+ <span class="symbol"><a name="ref_115_4">Key_F2</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_113_4">KEY_F2</a>;
+ <span class="symbol"><a name="ref_117_4">Key_F3</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_114_4">KEY_F3</a>;
+ <span class="symbol"><a name="ref_119_4">Key_F4</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_115_4">KEY_F4</a>;
+ <span class="symbol"><a name="ref_121_4">Key_F5</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_116_4">KEY_F5</a>;
+ <span class="symbol"><a name="ref_123_4">Key_F6</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_117_4">KEY_F6</a>;
+ <span class="symbol"><a name="ref_125_4">Key_F7</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_118_4">KEY_F7</a>;
+ <span class="symbol"><a name="ref_127_4">Key_F8</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_119_4">KEY_F8</a>;
+ <span class="symbol"><a name="ref_129_4">Key_F9</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_120_4">KEY_F9</a>;
+ <span class="symbol"><a name="ref_131_4">Key_F10</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_121_4">KEY_F10</a>;
+ <span class="symbol"><a name="ref_133_4">Key_F11</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_122_4">KEY_F11</a>;
+ <span class="symbol"><a name="ref_135_4">Key_F12</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_123_4">KEY_F12</a>;
+ <span class="symbol"><a name="ref_137_4">Key_F13</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_124_4">KEY_F13</a>;
+ <span class="symbol"><a name="ref_139_4">Key_F14</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_125_4">KEY_F14</a>;
+ <span class="symbol"><a name="ref_141_4">Key_F15</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_126_4">KEY_F15</a>;
+ <span class="symbol"><a name="ref_143_4">Key_F16</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_127_4">KEY_F16</a>;
+ <span class="symbol"><a name="ref_145_4">Key_F17</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_128_4">KEY_F17</a>;
+ <span class="symbol"><a name="ref_147_4">Key_F18</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_129_4">KEY_F18</a>;
+ <span class="symbol"><a name="ref_149_4">Key_F19</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_130_4">KEY_F19</a>;
+ <span class="symbol"><a name="ref_151_4">Key_F20</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_131_4">KEY_F20</a>;
+ <span class="symbol"><a name="ref_153_4">Key_F21</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_132_4">KEY_F21</a>;
+ <span class="symbol"><a name="ref_155_4">Key_F22</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_133_4">KEY_F22</a>;
+ <span class="symbol"><a name="ref_157_4">Key_F23</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_134_4">KEY_F23</a>;
+ <span class="symbol"><a name="ref_159_4">Key_F24</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_135_4">KEY_F24</a>;
+ <span class="symbol"><a name="ref_161_4">KEY_DL</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_136_4">KEY_DL</a>;
+ Key_Delete_Line : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_161_4">KEY_DL</a>;
+ <span class="symbol"><a name="ref_164_4">KEY_IL</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_137_4">KEY_IL</a>;
+ Key_Insert_Line : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_164_4">KEY_IL</a>;
+ <span class="symbol"><a name="ref_167_4">KEY_DC</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_138_4">KEY_DC</a>;
+ Key_Delete_Char : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_167_4">KEY_DC</a>;
+ <span class="symbol"><a name="ref_170_4">KEY_IC</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_139_4">KEY_IC</a>;
+ Key_Insert_Char : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_170_4">KEY_IC</a>;
+ <span class="symbol"><a name="ref_173_4">KEY_EIC</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_140_4">KEY_EIC</a>;
+ Key_Exit_Insert_Mode : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_173_4">KEY_EIC</a>;
+ <span class="symbol"><a name="ref_176_4">KEY_CLEAR</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_141_4">KEY_CLEAR</a>;
+ Key_Clear_Screen : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_176_4">KEY_CLEAR</a>;
+ <span class="symbol"><a name="ref_179_4">KEY_EOS</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_142_4">KEY_EOS</a>;
+ Key_Clear_End_Of_Screen : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_179_4">KEY_EOS</a>;
+ <span class="symbol"><a name="ref_182_4">KEY_EOL</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_143_4">KEY_EOL</a>;
+ Key_Clear_End_Of_Line : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_182_4">KEY_EOL</a>;
+ <span class="symbol"><a name="ref_185_4">KEY_SF</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_144_4">KEY_SF</a>;
+ Key_Scroll_1_Forward : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_185_4">KEY_SF</a>;
+ <span class="symbol"><a name="ref_188_4">KEY_SR</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_145_4">KEY_SR</a>;
+ Key_Scroll_1_Backward : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_188_4">KEY_SR</a>;
+ <span class="symbol"><a name="ref_191_4">KEY_NPAGE</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_146_4">KEY_NPAGE</a>;
+ Key_Next_Page : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_191_4">KEY_NPAGE</a>;
+ <span class="symbol"><a name="ref_194_4">KEY_PPAGE</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_147_4">KEY_PPAGE</a>;
+ Key_Previous_Page : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_194_4">KEY_PPAGE</a>;
+ <span class="symbol"><a name="ref_197_4">KEY_STAB</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_148_4">KEY_STAB</a>;
+ Key_Set_Tab : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_197_4">KEY_STAB</a>;
+ <span class="symbol"><a name="ref_200_4">KEY_CTAB</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_149_4">KEY_CTAB</a>;
+ Key_Clear_Tab : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_200_4">KEY_CTAB</a>;
+ <span class="symbol"><a name="ref_203_4">KEY_CATAB</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_150_4">KEY_CATAB</a>;
+ Key_Clear_All_Tabs : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_203_4">KEY_CATAB</a>;
+ <span class="symbol"><a name="ref_206_4">KEY_ENTER</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_151_4">KEY_ENTER</a>;
+ Key_Enter_Or_Send : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_206_4">KEY_ENTER</a>;
+ <span class="symbol"><a name="ref_209_4">KEY_SRESET</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_152_4">KEY_SRESET</a>;
+ Key_Soft_Reset : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_209_4">KEY_SRESET</a>;
+ <span class="symbol"><a name="ref_212_4">Key_Reset</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_153_4">KEY_RESET</a>;
+ <span class="symbol"><a name="ref_214_4">Key_Print</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_154_4">KEY_PRINT</a>;
+ <span class="symbol"><a name="ref_216_4">KEY_LL</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_155_4">KEY_LL</a>;
+ Key_Bottom : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_216_4">KEY_LL</a>;
+ <span class="symbol"><a name="ref_219_4">KEY_A1</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_156_4">KEY_A1</a>;
+ Key_Upper_Left_Of_Keypad : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_219_4">KEY_A1</a>;
+ <span class="symbol"><a name="ref_222_4">KEY_A3</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_157_4">KEY_A3</a>;
+ Key_Upper_Right_Of_Keypad : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_222_4">KEY_A3</a>;
+ <span class="symbol"><a name="ref_225_4">KEY_B2</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_158_4">KEY_B2</a>;
+ Key_Center_Of_Keypad : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_225_4">KEY_B2</a>;
+ <span class="symbol"><a name="ref_228_4">KEY_C1</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_159_4">KEY_C1</a>;
+ Key_Lower_Left_Of_Keypad : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_228_4">KEY_C1</a>;
+ <span class="symbol"><a name="ref_231_4">KEY_C3</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_160_4">KEY_C3</a>;
+ Key_Lower_Right_Of_Keypad : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_231_4">KEY_C3</a>;
+ <span class="symbol"><a name="ref_234_4">KEY_BTAB</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_161_4">KEY_BTAB</a>;
+ Key_Back_Tab : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_234_4">KEY_BTAB</a>;
+ <span class="symbol"><a name="ref_237_4">KEY_BEG</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_162_4">KEY_BEG</a>;
+ Key_Beginning : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_237_4">KEY_BEG</a>;
+ <span class="symbol"><a name="ref_240_4">Key_Cancel</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_163_4">KEY_CANCEL</a>;
+ <span class="symbol"><a name="ref_242_4">Key_Close</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_164_4">KEY_CLOSE</a>;
+ <span class="symbol"><a name="ref_244_4">Key_Command</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_165_4">KEY_COMMAND</a>;
+ <span class="symbol"><a name="ref_246_4">Key_Copy</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_166_4">KEY_COPY</a>;
+ <span class="symbol"><a name="ref_248_4">Key_Create</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_167_4">KEY_CREATE</a>;
+ <span class="symbol"><a name="ref_250_4">Key_End</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_168_4">KEY_END</a>;
+ <span class="symbol"><a name="ref_252_4">Key_Exit</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_169_4">KEY_EXIT</a>;
+ <span class="symbol"><a name="ref_254_4">Key_Find</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_170_4">KEY_FIND</a>;
+ <span class="symbol"><a name="ref_256_4">Key_Help</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_171_4">KEY_HELP</a>;
+ <span class="symbol"><a name="ref_258_4">Key_Mark</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_172_4">KEY_MARK</a>;
+ <span class="symbol"><a name="ref_260_4">Key_Message</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_173_4">KEY_MESSAGE</a>;
+ <span class="symbol"><a name="ref_262_4">Key_Move</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_174_4">KEY_MOVE</a>;
+ <span class="symbol"><a name="ref_264_4">Key_Next</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_175_4">KEY_NEXT</a>;
+ <span class="symbol"><a name="ref_266_4">Key_Open</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_176_4">KEY_OPEN</a>;
+ <span class="symbol"><a name="ref_268_4">Key_Options</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_177_4">KEY_OPTIONS</a>;
+ <span class="symbol"><a name="ref_270_4">Key_Previous</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_178_4">KEY_PREVIOUS</a>;
+ <span class="symbol"><a name="ref_272_4">Key_Redo</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_179_4">KEY_REDO</a>;
+ <span class="symbol"><a name="ref_274_4">Key_Reference</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_180_4">KEY_REFERENCE</a>;
+ <span class="symbol"><a name="ref_276_4">Key_Refresh</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_181_4">KEY_REFRESH</a>;
+ <span class="symbol"><a name="ref_278_4">Key_Replace</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_182_4">KEY_REPLACE</a>;
+ <span class="symbol"><a name="ref_280_4">Key_Restart</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_183_4">KEY_RESTART</a>;
+ <span class="symbol"><a name="ref_282_4">Key_Resume</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_184_4">KEY_RESUME</a>;
+ <span class="symbol"><a name="ref_284_4">Key_Save</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_185_4">KEY_SAVE</a>;
+ <span class="symbol"><a name="ref_286_4">KEY_SBEG</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_186_4">KEY_SBEG</a>;
+ Key_Shift_Begin : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_286_4">KEY_SBEG</a>;
+ <span class="symbol"><a name="ref_289_4">KEY_SCANCEL</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_187_4">KEY_SCANCEL</a>;
+ Key_Shift_Cancel : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_289_4">KEY_SCANCEL</a>;
+ <span class="symbol"><a name="ref_292_4">KEY_SCOMMAND</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_188_4">KEY_SCOMMAND</a>;
+ Key_Shift_Command : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_292_4">KEY_SCOMMAND</a>;
+ <span class="symbol"><a name="ref_295_4">KEY_SCOPY</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_189_4">KEY_SCOPY</a>;
+ Key_Shift_Copy : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_295_4">KEY_SCOPY</a>;
+ <span class="symbol"><a name="ref_298_4">KEY_SCREATE</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_190_4">KEY_SCREATE</a>;
+ Key_Shift_Create : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_298_4">KEY_SCREATE</a>;
+ <span class="symbol"><a name="ref_301_4">KEY_SDC</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_191_4">KEY_SDC</a>;
+ Key_Shift_Delete_Char : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_301_4">KEY_SDC</a>;
+ <span class="symbol"><a name="ref_304_4">KEY_SDL</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_192_4">KEY_SDL</a>;
+ Key_Shift_Delete_Line : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_304_4">KEY_SDL</a>;
+ <span class="symbol"><a name="ref_307_4">Key_Select</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_193_4">KEY_SELECT</a>;
+ <span class="symbol"><a name="ref_309_4">KEY_SEND</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_194_4">KEY_SEND</a>;
+ Key_Shift_End : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_309_4">KEY_SEND</a>;
+ <span class="symbol"><a name="ref_312_4">KEY_SEOL</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_195_4">KEY_SEOL</a>;
+ Key_Shift_Clear_End_Of_Line : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_312_4">KEY_SEOL</a>;
+ <span class="symbol"><a name="ref_315_4">KEY_SEXIT</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_196_4">KEY_SEXIT</a>;
+ Key_Shift_Exit : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_315_4">KEY_SEXIT</a>;
+ <span class="symbol"><a name="ref_318_4">KEY_SFIND</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_197_4">KEY_SFIND</a>;
+ Key_Shift_Find : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_318_4">KEY_SFIND</a>;
+ <span class="symbol"><a name="ref_321_4">KEY_SHELP</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_198_4">KEY_SHELP</a>;
+ Key_Shift_Help : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_321_4">KEY_SHELP</a>;
+ <span class="symbol"><a name="ref_324_4">KEY_SHOME</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_199_4">KEY_SHOME</a>;
+ Key_Shift_Home : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_324_4">KEY_SHOME</a>;
+ <span class="symbol"><a name="ref_327_4">KEY_SIC</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_200_4">KEY_SIC</a>;
+ Key_Shift_Insert_Char : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_327_4">KEY_SIC</a>;
+ <span class="symbol"><a name="ref_330_4">KEY_SLEFT</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_201_4">KEY_SLEFT</a>;
+ Key_Shift_Cursor_Left : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_330_4">KEY_SLEFT</a>;
+ <span class="symbol"><a name="ref_333_4">KEY_SMESSAGE</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_202_4">KEY_SMESSAGE</a>;
+ Key_Shift_Message : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_333_4">KEY_SMESSAGE</a>;
+ <span class="symbol"><a name="ref_336_4">KEY_SMOVE</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_203_4">KEY_SMOVE</a>;
+ Key_Shift_Move : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_336_4">KEY_SMOVE</a>;
+ <span class="symbol"><a name="ref_339_4">KEY_SNEXT</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_204_4">KEY_SNEXT</a>;
+ Key_Shift_Next_Page : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_339_4">KEY_SNEXT</a>;
+ <span class="symbol"><a name="ref_342_4">KEY_SOPTIONS</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_205_4">KEY_SOPTIONS</a>;
+ Key_Shift_Options : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_342_4">KEY_SOPTIONS</a>;
+ <span class="symbol"><a name="ref_345_4">KEY_SPREVIOUS</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_206_4">KEY_SPREVIOUS</a>;
+ Key_Shift_Previous_Page : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_345_4">KEY_SPREVIOUS</a>;
+ <span class="symbol"><a name="ref_348_4">KEY_SPRINT</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_207_4">KEY_SPRINT</a>;
+ Key_Shift_Print : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_348_4">KEY_SPRINT</a>;
+ <span class="symbol"><a name="ref_351_4">KEY_SREDO</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_208_4">KEY_SREDO</a>;
+ Key_Shift_Redo : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_351_4">KEY_SREDO</a>;
+ <span class="symbol"><a name="ref_354_4">KEY_SREPLACE</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_209_4">KEY_SREPLACE</a>;
+ Key_Shift_Replace : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_354_4">KEY_SREPLACE</a>;
+ <span class="symbol"><a name="ref_357_4">KEY_SRIGHT</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_210_4">KEY_SRIGHT</a>;
+ Key_Shift_Cursor_Right : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_357_4">KEY_SRIGHT</a>;
+ <span class="symbol"><a name="ref_360_4">KEY_SRSUME</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_211_4">KEY_SRSUME</a>;
+ Key_Shift_Resume : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_360_4">KEY_SRSUME</a>;
+ <span class="symbol"><a name="ref_363_4">KEY_SSAVE</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_212_4">KEY_SSAVE</a>;
+ Key_Shift_Save : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_363_4">KEY_SSAVE</a>;
+ <span class="symbol"><a name="ref_366_4">KEY_SSUSPEND</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_213_4">KEY_SSUSPEND</a>;
+ Key_Shift_Suspend : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_366_4">KEY_SSUSPEND</a>;
+ <span class="symbol"><a name="ref_369_4">KEY_SUNDO</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_214_4">KEY_SUNDO</a>;
+ Key_Shift_Undo : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_369_4">KEY_SUNDO</a>;
+ <span class="symbol"><a name="ref_372_4">Key_Suspend</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_215_4">KEY_SUSPEND</a>;
+ <span class="symbol"><a name="ref_374_4">Key_Undo</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_216_4">KEY_UNDO</a>;
+ <span class="symbol"><a name="ref_376_4">Key_Mouse</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_217_4">KEY_MOUSE</a>;
+ <span class="symbol"><a name="ref_378_4">Key_Resize</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_218_4">KEY_RESIZE</a>;
+ <span class="symbol"><a name="ref_380_4">Key_Max</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>
+ := <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>'Last;
+
+ <b>subtype</b> <span class="symbol"><a name="ref_383_12">User_Key_Code</a></span> <b>is</b> <a href="terminal_interface-curses__ads.htm#ref_67_9">Key_Code</a>
+ <b>range</b> (<a href="terminal_interface-curses__ads.htm#ref_380_4">Key_Max</a> + 129) .. <a href="terminal_interface-curses__ads.htm#ref_67_9">Key_Code</a>'Last;
+ <span class="comment"><em>-- This is reserved for user defined key codes. The range between Key_Max</em></span>
+ <span class="comment"><em>-- and the first user code is reserved for subsystems like menu and forms.</em></span>
+
+ <span class="comment"><em>--------------------------------------------------------------------------</em></span>
+
+ <b>type</b> <span class="symbol"><a name="ref_390_9">Color_Number</a></span> <b>is</b> <b>range</b> -1 .. Integer (<a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.short'Last);
+ <b>for</b> <a href="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</a>'Size <b>use</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.short'Size;
+ <span class="comment"><em>-- (n)curses uses a short for the color index</em></span>
+ <span class="comment"><em>-- The model is, that a Color_Number is an index into an array of</em></span>
+ <span class="comment"><em>-- (potentially) definable colors. Some of those indices are</em></span>
+ <span class="comment"><em>-- predefined (see below), although they may not really exist.</em></span>
+
+ <span class="symbol"><a name="ref_397_4">Black</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</a> := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_69_4">COLOR_BLACK</a>;
+ <span class="symbol"><a name="ref_398_4">Red</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</a> := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_70_4">COLOR_RED</a>;
+ <span class="symbol"><a name="ref_399_4">Green</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</a> := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_71_4">COLOR_GREEN</a>;
+ <span class="symbol"><a name="ref_400_4">Yellow</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</a> := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_72_4">COLOR_YELLOW</a>;
+ <span class="symbol"><a name="ref_401_4">Blue</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</a> := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_73_4">COLOR_BLUE</a>;
+ <span class="symbol"><a name="ref_402_4">Magenta</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</a> := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_74_4">COLOR_MAGENTA</a>;
+ <span class="symbol"><a name="ref_403_4">Cyan</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</a> := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_75_4">COLOR_CYAN</a>;
+ <span class="symbol"><a name="ref_404_4">White</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</a> := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_76_4">COLOR_WHITE</a>;
+
+ <b>type</b> <span class="symbol"><a name="ref_406_9">RGB_Value</a></span> <b>is</b> <b>range</b> 0 .. Integer (<a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.short'Last);
+ <b>for</b> <a href="terminal_interface-curses__ads.htm#ref_406_9">RGB_Value</a>'Size <b>use</b> <a href="interfac__ads.htm#ref_38_9">Interfaces</a>.C.short'Size;
+ <span class="comment"><em>-- Some system may allow to redefine a color by setting RGB values.</em></span>
+
+ <b>type</b> <span class="symbol"><a name="ref_410_9">Color_Pair</a></span> <b>is</b> <b>range</b> 0 .. 255;
+ <b>for</b> <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>'Size <b>use</b> 8;
+ <b>subtype</b> <span class="symbol"><a name="ref_412_12">Redefinable_Color_Pair</a></span> <b>is</b> <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a> <b>range</b> 1 .. 255;
+ <span class="comment"><em>-- (n)curses reserves 1 Byte for the color-pair number. Color Pair 0</em></span>
+ <span class="comment"><em>-- is fixed (Black &amp; White). A color pair is simply a combination of</em></span>
+ <span class="comment"><em>-- two colors described by Color_Numbers, one for the foreground and</em></span>
+ <span class="comment"><em>-- the other for the background</em></span>
+
+ <b>type</b> <span class="symbol"><a name="ref_418_9">Character_Attribute_Set</a></span> <b>is</b>
<b>record</b>
- <span class="symbol"><A NAME="ref_420_10">Stand_Out</A></span> : Boolean;
- <span class="symbol"><A NAME="ref_421_10">Under_Line</A></span> : Boolean;
- <span class="symbol"><A NAME="ref_422_10">Reverse_Video</A></span> : Boolean;
- <span class="symbol"><A NAME="ref_423_10">Blink</A></span> : Boolean;
- <span class="symbol"><A NAME="ref_424_10">Dim_Character</A></span> : Boolean;
- <span class="symbol"><A NAME="ref_425_10">Bold_Character</A></span> : Boolean;
- <span class="symbol"><A NAME="ref_426_10">Protected_Character</A></span> : Boolean;
- <span class="symbol"><A NAME="ref_427_10">Invisible_Character</A></span> : Boolean;
- <span class="symbol"><A NAME="ref_428_10">Alternate_Character_Set</A></span> : Boolean;
- <span class="symbol"><A NAME="ref_429_10">Horizontal</A></span> : Boolean;
- <span class="symbol"><A NAME="ref_430_10">Left</A></span> : Boolean;
- <span class="symbol"><A NAME="ref_431_10">Low</A></span> : Boolean;
- <span class="symbol"><A NAME="ref_432_10">Right</A></span> : Boolean;
- <span class="symbol"><A NAME="ref_433_10">Top</A></span> : Boolean;
- <span class="symbol"><A NAME="ref_434_10">Vertical</A></span> : Boolean;
+ <span class="symbol"><a name="ref_420_10">Stand_Out</a></span> : Boolean;
+ <span class="symbol"><a name="ref_421_10">Under_Line</a></span> : Boolean;
+ <span class="symbol"><a name="ref_422_10">Reverse_Video</a></span> : Boolean;
+ <span class="symbol"><a name="ref_423_10">Blink</a></span> : Boolean;
+ <span class="symbol"><a name="ref_424_10">Dim_Character</a></span> : Boolean;
+ <span class="symbol"><a name="ref_425_10">Bold_Character</a></span> : Boolean;
+ <span class="symbol"><a name="ref_426_10">Protected_Character</a></span> : Boolean;
+ <span class="symbol"><a name="ref_427_10">Invisible_Character</a></span> : Boolean;
+ <span class="symbol"><a name="ref_428_10">Alternate_Character_Set</a></span> : Boolean;
+ <span class="symbol"><a name="ref_429_10">Horizontal</a></span> : Boolean;
+ <span class="symbol"><a name="ref_430_10">Left</a></span> : Boolean;
+ <span class="symbol"><a name="ref_431_10">Low</a></span> : Boolean;
+ <span class="symbol"><a name="ref_432_10">Right</a></span> : Boolean;
+ <span class="symbol"><a name="ref_433_10">Top</a></span> : Boolean;
+ <span class="symbol"><a name="ref_434_10">Vertical</a></span> : Boolean;
<b>end</b> <b>record</b>;
- <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A> <b>use</b>
+ <b>for</b> <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a> <b>use</b>
<b>record</b>
- <A HREF="terminal_interface-curses__ads.htm#ref_420_10">Stand_Out</A> <b>at</b> 0 <b>range</b>
- <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_35_4">A_STANDOUT_First</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_36_4">A_STANDOUT_Last</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>;
- <A HREF="terminal_interface-curses__ads.htm#ref_421_10">Under_Line</A> <b>at</b> 0 <b>range</b>
- <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_37_4">A_UNDERLINE_First</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_38_4">A_UNDERLINE_Last</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>;
- <A HREF="terminal_interface-curses__ads.htm#ref_422_10">Reverse_Video</A> <b>at</b> 0 <b>range</b>
- <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_39_4">A_REVERSE_First</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_40_4">A_REVERSE_Last</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>;
- <A HREF="terminal_interface-curses__ads.htm#ref_423_10">Blink</A> <b>at</b> 0 <b>range</b>
- <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_41_4">A_BLINK_First</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_42_4">A_BLINK_Last</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>;
- <A HREF="terminal_interface-curses__ads.htm#ref_424_10">Dim_Character</A> <b>at</b> 0 <b>range</b>
- <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_43_4">A_DIM_First</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_44_4">A_DIM_Last</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>;
- <A HREF="terminal_interface-curses__ads.htm#ref_425_10">Bold_Character</A> <b>at</b> 0 <b>range</b>
- <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_45_4">A_BOLD_First</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_46_4">A_BOLD_Last</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>;
- <A HREF="terminal_interface-curses__ads.htm#ref_426_10">Protected_Character</A> <b>at</b> 0 <b>range</b>
- <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_47_4">A_PROTECT_First</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_48_4">A_PROTECT_Last</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>;
- <A HREF="terminal_interface-curses__ads.htm#ref_427_10">Invisible_Character</A> <b>at</b> 0 <b>range</b>
- <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_49_4">A_INVIS_First</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_50_4">A_INVIS_Last</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>;
- <A HREF="terminal_interface-curses__ads.htm#ref_428_10">Alternate_Character_Set</A> <b>at</b> 0 <b>range</b>
- <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_51_4">A_ALTCHARSET_First</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_52_4">A_ALTCHARSET_Last</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>;
- <A HREF="terminal_interface-curses__ads.htm#ref_429_10">Horizontal</A> <b>at</b> 0 <b>range</b>
- <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_53_4">A_HORIZONTAL_First</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_54_4">A_HORIZONTAL_Last</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>;
- <A HREF="terminal_interface-curses__ads.htm#ref_430_10">Left</A> <b>at</b> 0 <b>range</b>
- <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_55_4">A_LEFT_First</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_56_4">A_LEFT_Last</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>;
- <A HREF="terminal_interface-curses__ads.htm#ref_431_10">Low</A> <b>at</b> 0 <b>range</b>
- <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_57_4">A_LOW_First</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_58_4">A_LOW_Last</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>;
- <A HREF="terminal_interface-curses__ads.htm#ref_432_10">Right</A> <b>at</b> 0 <b>range</b>
- <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_59_4">A_RIGHT_First</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_60_4">A_RIGHT_Last</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>;
- <A HREF="terminal_interface-curses__ads.htm#ref_433_10">Top</A> <b>at</b> 0 <b>range</b>
- <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_61_4">A_TOP_First</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_62_4">A_TOP_Last</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>;
- <A HREF="terminal_interface-curses__ads.htm#ref_434_10">Vertical</A> <b>at</b> 0 <b>range</b>
- <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_63_4">A_VERTICAL_First</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_64_4">A_VERTICAL_Last</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>;
+ <a href="terminal_interface-curses__ads.htm#ref_420_10">Stand_Out</a> <b>at</b> 0 <b>range</b>
+ <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_35_4">A_STANDOUT_First</a> - <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_36_4">A_STANDOUT_Last</a> - <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</a>;
+ <a href="terminal_interface-curses__ads.htm#ref_421_10">Under_Line</a> <b>at</b> 0 <b>range</b>
+ <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_37_4">A_UNDERLINE_First</a> - <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_38_4">A_UNDERLINE_Last</a> - <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</a>;
+ <a href="terminal_interface-curses__ads.htm#ref_422_10">Reverse_Video</a> <b>at</b> 0 <b>range</b>
+ <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_39_4">A_REVERSE_First</a> - <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_40_4">A_REVERSE_Last</a> - <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</a>;
+ <a href="terminal_interface-curses__ads.htm#ref_423_10">Blink</a> <b>at</b> 0 <b>range</b>
+ <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_41_4">A_BLINK_First</a> - <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_42_4">A_BLINK_Last</a> - <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</a>;
+ <a href="terminal_interface-curses__ads.htm#ref_424_10">Dim_Character</a> <b>at</b> 0 <b>range</b>
+ <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_43_4">A_DIM_First</a> - <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_44_4">A_DIM_Last</a> - <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</a>;
+ <a href="terminal_interface-curses__ads.htm#ref_425_10">Bold_Character</a> <b>at</b> 0 <b>range</b>
+ <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_45_4">A_BOLD_First</a> - <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_46_4">A_BOLD_Last</a> - <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</a>;
+ <a href="terminal_interface-curses__ads.htm#ref_426_10">Protected_Character</a> <b>at</b> 0 <b>range</b>
+ <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_47_4">A_PROTECT_First</a> - <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_48_4">A_PROTECT_Last</a> - <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</a>;
+ <a href="terminal_interface-curses__ads.htm#ref_427_10">Invisible_Character</a> <b>at</b> 0 <b>range</b>
+ <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_49_4">A_INVIS_First</a> - <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_50_4">A_INVIS_Last</a> - <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</a>;
+ <a href="terminal_interface-curses__ads.htm#ref_428_10">Alternate_Character_Set</a> <b>at</b> 0 <b>range</b>
+ <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_51_4">A_ALTCHARSET_First</a> - <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_52_4">A_ALTCHARSET_Last</a> - <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</a>;
+ <a href="terminal_interface-curses__ads.htm#ref_429_10">Horizontal</a> <b>at</b> 0 <b>range</b>
+ <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_53_4">A_HORIZONTAL_First</a> - <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_54_4">A_HORIZONTAL_Last</a> - <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</a>;
+ <a href="terminal_interface-curses__ads.htm#ref_430_10">Left</a> <b>at</b> 0 <b>range</b>
+ <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_55_4">A_LEFT_First</a> - <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_56_4">A_LEFT_Last</a> - <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</a>;
+ <a href="terminal_interface-curses__ads.htm#ref_431_10">Low</a> <b>at</b> 0 <b>range</b>
+ <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_57_4">A_LOW_First</a> - <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_58_4">A_LOW_Last</a> - <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</a>;
+ <a href="terminal_interface-curses__ads.htm#ref_432_10">Right</a> <b>at</b> 0 <b>range</b>
+ <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_59_4">A_RIGHT_First</a> - <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_60_4">A_RIGHT_Last</a> - <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</a>;
+ <a href="terminal_interface-curses__ads.htm#ref_433_10">Top</a> <b>at</b> 0 <b>range</b>
+ <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_61_4">A_TOP_First</a> - <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_62_4">A_TOP_Last</a> - <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</a>;
+ <a href="terminal_interface-curses__ads.htm#ref_434_10">Vertical</a> <b>at</b> 0 <b>range</b>
+ <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_63_4">A_VERTICAL_First</a> - <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_64_4">A_VERTICAL_Last</a> - <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</a>;
<b>end</b> <b>record</b>;
- <span class="symbol"><A NAME="ref_486_4">Normal_Video</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A> := (<b>others</b> =&gt; False);
+ <span class="symbol"><a name="ref_486_4">Normal_Video</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a> := (<b>others</b> =&gt; False);
- <b>type</b> <span class="symbol"><A NAME="ref_488_9">Attributed_Character</A></span> <b>is</b>
+ <b>type</b> <span class="symbol"><a name="ref_488_9">Attributed_Character</a></span> <b>is</b>
<b>record</b>
- <span class="symbol"><A NAME="ref_490_10">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A>;
- <span class="symbol"><A NAME="ref_491_10">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>;
- <span class="symbol"><A NAME="ref_492_10">Ch</A></span> : Character;
+ <span class="symbol"><a name="ref_490_10">Attr</a></span> : <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a>;
+ <span class="symbol"><a name="ref_491_10">Color</a></span> : <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>;
+ <span class="symbol"><a name="ref_492_10">Ch</a></span> : Character;
<b>end</b> <b>record</b>;
- <b>pragma</b> Convention (C_Pass_By_Copy, <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>);
- <span class="comment"><EM>-- This is the counterpart for the chtype in C.</EM></span>
+ <b>pragma</b> Convention (C_Pass_By_Copy, <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>);
+ <span class="comment"><em>-- This is the counterpart for the chtype in C.</em></span>
- <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A> <b>use</b>
+ <b>for</b> <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a> <b>use</b>
<b>record</b>
- <A HREF="terminal_interface-curses__ads.htm#ref_492_10">Ch</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_29_4">A_CHARTEXT_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_30_4">A_CHARTEXT_Last</A>;
- <A HREF="terminal_interface-curses__ads.htm#ref_491_10">Color</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_31_4">A_COLOR_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_32_4">A_COLOR_Last</A>;
+ <a href="terminal_interface-curses__ads.htm#ref_492_10">Ch</a> <b>at</b> 0 <b>range</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_29_4">A_CHARTEXT_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_30_4">A_CHARTEXT_Last</a>;
+ <a href="terminal_interface-curses__ads.htm#ref_491_10">Color</a> <b>at</b> 0 <b>range</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_31_4">A_COLOR_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_32_4">A_COLOR_Last</a>;
<b>pragma</b> Warnings (Off);
- <A HREF="terminal_interface-curses__ads.htm#ref_490_10">Attr</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>
- .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_34_4">Attr_Last</A>;
+ <a href="terminal_interface-curses__ads.htm#ref_490_10">Attr</a> <b>at</b> 0 <b>range</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</a>
+ .. <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_34_4">Attr_Last</a>;
<b>pragma</b> Warnings (On);
<b>end</b> <b>record</b>;
- <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>'Size <b>use</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_65_4">chtype_Size</A>;
+ <b>for</b> <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>'Size <b>use</b> <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_65_4">chtype_Size</a>;
- <span class="symbol"><A NAME="ref_510_4">Default_Character</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>
- := (<A HREF="terminal_interface-curses__ads.htm#ref_492_10">Ch</A> =&gt; Character'First,
- <A HREF="terminal_interface-curses__ads.htm#ref_491_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>'First,
- <A HREF="terminal_interface-curses__ads.htm#ref_490_10">Attr</A> =&gt; (<b>others</b> =&gt; False)); <span class="comment"><EM>-- preelaboratable Normal_Video</EM></span>
+ <span class="symbol"><a name="ref_510_4">Default_Character</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>
+ := (<a href="terminal_interface-curses__ads.htm#ref_492_10">Ch</a> =&gt; Character'First,
+ <a href="terminal_interface-curses__ads.htm#ref_491_10">Color</a> =&gt; <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>'First,
+ <a href="terminal_interface-curses__ads.htm#ref_490_10">Attr</a> =&gt; (<b>others</b> =&gt; False)); <span class="comment"><em>-- preelaboratable Normal_Video</em></span>
- <b>type</b> Attributed_String <b>is</b> <b>array</b> (Positive <b>range</b> &lt;&gt;) <b>of</b> <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>;
+ <b>type</b> Attributed_String <b>is</b> <b>array</b> (Positive <b>range</b> &lt;&gt;) <b>of</b> <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>;
<b>pragma</b> Convention (C, Attributed_String);
- <span class="comment"><EM>-- In this binding we allow strings of attributed characters.</EM></span>
-
- <span class="comment"><EM>------------------</EM></span>
- <span class="comment"><EM>-- Exceptions --</EM></span>
- <span class="comment"><EM>------------------</EM></span>
- <span class="symbol"><A NAME="ref_522_4">Curses_Exception</A></span> : <b>exception</b>;
- <span class="symbol"><A NAME="ref_523_4">Wrong_Curses_Version</A></span> : <b>exception</b>;
-
- <span class="comment"><EM>-- Those exceptions are raised by the ETI (Extended Terminal Interface)</EM></span>
- <span class="comment"><EM>-- subpackets for Menu and Forms handling.</EM></span>
- <span class="comment"><EM>--</EM></span>
- <span class="symbol"><A NAME="ref_528_4">Eti_System_Error</A></span> : <b>exception</b>;
- <span class="symbol"><A NAME="ref_529_4">Eti_Bad_Argument</A></span> : <b>exception</b>;
- <span class="symbol"><A NAME="ref_530_4">Eti_Posted</A></span> : <b>exception</b>;
- <span class="symbol"><A NAME="ref_531_4">Eti_Connected</A></span> : <b>exception</b>;
- <span class="symbol"><A NAME="ref_532_4">Eti_Bad_State</A></span> : <b>exception</b>;
- <span class="symbol"><A NAME="ref_533_4">Eti_No_Room</A></span> : <b>exception</b>;
- <span class="symbol"><A NAME="ref_534_4">Eti_Not_Posted</A></span> : <b>exception</b>;
- <span class="symbol"><A NAME="ref_535_4">Eti_Unknown_Command</A></span> : <b>exception</b>;
- <span class="symbol"><A NAME="ref_536_4">Eti_No_Match</A></span> : <b>exception</b>;
- <span class="symbol"><A NAME="ref_537_4">Eti_Not_Selectable</A></span> : <b>exception</b>;
- <span class="symbol"><A NAME="ref_538_4">Eti_Not_Connected</A></span> : <b>exception</b>;
- <span class="symbol"><A NAME="ref_539_4">Eti_Request_Denied</A></span> : <b>exception</b>;
- <span class="symbol"><A NAME="ref_540_4">Eti_Invalid_Field</A></span> : <b>exception</b>;
- <span class="symbol"><A NAME="ref_541_4">Eti_Current</A></span> : <b>exception</b>;
-
- <span class="comment"><EM>--------------------------------------------------------------------------</EM></span>
- <span class="comment"><EM>-- External C variables</EM></span>
- <span class="comment"><EM>-- Conceptually even in C this are kind of constants, but they are</EM></span>
- <span class="comment"><EM>-- initialized and sometimes changed by the library routines at runtime</EM></span>
- <span class="comment"><EM>-- depending on the type of terminal. I believe the best way to model</EM></span>
- <span class="comment"><EM>-- this is to use functions.</EM></span>
- <span class="comment"><EM>--------------------------------------------------------------------------</EM></span>
-
- <b>function</b> <span class="symbol"><A NAME="ref_551_13" HREF="terminal_interface-curses__adb.htm#ref_2355_13">Lines</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</A>;
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_551_13">Lines</A>);
-
- <b>function</b> <span class="symbol"><A NAME="ref_554_13" HREF="terminal_interface-curses__adb.htm#ref_2363_13">Columns</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</A>;
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_554_13">Columns</A>);
-
- <b>function</b> <span class="symbol"><A NAME="ref_557_13" HREF="terminal_interface-curses__adb.htm#ref_2371_13">Tab_Size</A></span> <b>return</b> Natural;
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_557_13">Tab_Size</A>);
-
- <b>function</b> <span class="symbol"><A NAME="ref_560_13" HREF="terminal_interface-curses__adb.htm#ref_2380_13">Number_Of_Colors</A></span> <b>return</b> Natural;
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_560_13">Number_Of_Colors</A>);
-
- <b>function</b> <span class="symbol"><A NAME="ref_563_13" HREF="terminal_interface-curses__adb.htm#ref_2388_13">Number_Of_Color_Pairs</A></span> <b>return</b> Natural;
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_563_13">Number_Of_Color_Pairs</A>);
-
- <b>subtype</b> <span class="symbol"><A NAME="ref_566_12">ACS_Index</A></span> <b>is</b> Character <b>range</b>
+ <span class="comment"><em>-- In this binding we allow strings of attributed characters.</em></span>
+
+ <span class="comment"><em>------------------</em></span>
+ <span class="comment"><em>-- Exceptions --</em></span>
+ <span class="comment"><em>------------------</em></span>
+ <span class="symbol"><a name="ref_522_4">Curses_Exception</a></span> : <b>exception</b>;
+ <span class="symbol"><a name="ref_523_4">Wrong_Curses_Version</a></span> : <b>exception</b>;
+
+ <span class="comment"><em>-- Those exceptions are raised by the ETI (Extended Terminal Interface)</em></span>
+ <span class="comment"><em>-- subpackets for Menu and Forms handling.</em></span>
+ <span class="comment"><em>--</em></span>
+ <span class="symbol"><a name="ref_528_4">Eti_System_Error</a></span> : <b>exception</b>;
+ <span class="symbol"><a name="ref_529_4">Eti_Bad_Argument</a></span> : <b>exception</b>;
+ <span class="symbol"><a name="ref_530_4">Eti_Posted</a></span> : <b>exception</b>;
+ <span class="symbol"><a name="ref_531_4">Eti_Connected</a></span> : <b>exception</b>;
+ <span class="symbol"><a name="ref_532_4">Eti_Bad_State</a></span> : <b>exception</b>;
+ <span class="symbol"><a name="ref_533_4">Eti_No_Room</a></span> : <b>exception</b>;
+ <span class="symbol"><a name="ref_534_4">Eti_Not_Posted</a></span> : <b>exception</b>;
+ <span class="symbol"><a name="ref_535_4">Eti_Unknown_Command</a></span> : <b>exception</b>;
+ <span class="symbol"><a name="ref_536_4">Eti_No_Match</a></span> : <b>exception</b>;
+ <span class="symbol"><a name="ref_537_4">Eti_Not_Selectable</a></span> : <b>exception</b>;
+ <span class="symbol"><a name="ref_538_4">Eti_Not_Connected</a></span> : <b>exception</b>;
+ <span class="symbol"><a name="ref_539_4">Eti_Request_Denied</a></span> : <b>exception</b>;
+ <span class="symbol"><a name="ref_540_4">Eti_Invalid_Field</a></span> : <b>exception</b>;
+ <span class="symbol"><a name="ref_541_4">Eti_Current</a></span> : <b>exception</b>;
+
+ <span class="comment"><em>--------------------------------------------------------------------------</em></span>
+ <span class="comment"><em>-- External C variables</em></span>
+ <span class="comment"><em>-- Conceptually even in C this are kind of constants, but they are</em></span>
+ <span class="comment"><em>-- initialized and sometimes changed by the library routines at runtime</em></span>
+ <span class="comment"><em>-- depending on the type of terminal. I believe the best way to model</em></span>
+ <span class="comment"><em>-- this is to use functions.</em></span>
+ <span class="comment"><em>--------------------------------------------------------------------------</em></span>
+
+ <b>function</b> <span class="symbol"><a name="ref_551_13" href="terminal_interface-curses__adb.htm#ref_2355_13">Lines</a></span> <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</a>;
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_551_13">Lines</a>);
+
+ <b>function</b> <span class="symbol"><a name="ref_554_13" href="terminal_interface-curses__adb.htm#ref_2363_13">Columns</a></span> <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</a>;
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_554_13">Columns</a>);
+
+ <b>function</b> <span class="symbol"><a name="ref_557_13" href="terminal_interface-curses__adb.htm#ref_2371_13">Tab_Size</a></span> <b>return</b> Natural;
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_557_13">Tab_Size</a>);
+
+ <b>function</b> <span class="symbol"><a name="ref_560_13" href="terminal_interface-curses__adb.htm#ref_2380_13">Number_Of_Colors</a></span> <b>return</b> Natural;
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_560_13">Number_Of_Colors</a>);
+
+ <b>function</b> <span class="symbol"><a name="ref_563_13" href="terminal_interface-curses__adb.htm#ref_2388_13">Number_Of_Color_Pairs</a></span> <b>return</b> Natural;
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_563_13">Number_Of_Color_Pairs</a>);
+
+ <b>subtype</b> <span class="symbol"><a name="ref_566_12">ACS_Index</a></span> <b>is</b> Character <b>range</b>
Character'Val (0) .. Character'Val (127);
- <b>function</b> <span class="symbol"><A NAME="ref_568_13">ACS_Map</A></span> (<span class="symbol"><A NAME="ref_568_22" HREF="terminal_interface-curses__ads.htm#ref_568_13">Index</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>;
+ <b>function</b> <span class="symbol"><a name="ref_568_13">ACS_Map</a></span> (<span class="symbol"><a name="ref_568_22">Index</a></span> : <a href="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>;
<b>pragma</b> Import (C, ACS_Map, "acs_map_as_function");
- <span class="comment"><EM>-- Constants for several characters from the Alternate Character Set</EM></span>
- <span class="comment"><EM>-- You must use these constants as indices into the ACS_Map function</EM></span>
- <span class="comment"><EM>-- to get the corresponding attributed character at runtime</EM></span>
- <span class="symbol"><A NAME="ref_574_4">ACS_Upper_Left_Corner</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</A>
- := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_222_4">ACS_ULCORNER</A>);
- <span class="symbol"><A NAME="ref_576_4">ACS_Lower_Left_Corner</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</A>
- := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_223_4">ACS_LLCORNER</A>);
- <span class="symbol"><A NAME="ref_578_4">ACS_Upper_Right_Corner</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</A>
- := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_224_4">ACS_URCORNER</A>);
- <span class="symbol"><A NAME="ref_580_4">ACS_Lower_Right_Corner</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</A>
- := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_225_4">ACS_LRCORNER</A>);
- <span class="symbol"><A NAME="ref_582_4">ACS_Left_Tee</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</A>
- := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_226_4">ACS_LTEE</A>);
- <span class="symbol"><A NAME="ref_584_4">ACS_Right_Tee</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</A>
- := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_227_4">ACS_RTEE</A>);
- <span class="symbol"><A NAME="ref_586_4">ACS_Bottom_Tee</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</A>
- := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_228_4">ACS_BTEE</A>);
- <span class="symbol"><A NAME="ref_588_4">ACS_Top_Tee</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</A>
- := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_229_4">ACS_TTEE</A>);
- <span class="symbol"><A NAME="ref_590_4">ACS_Horizontal_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</A>
- := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_230_4">ACS_HLINE</A>);
- <span class="symbol"><A NAME="ref_592_4">ACS_Vertical_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</A>
- := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_231_4">ACS_VLINE</A>);
- <span class="symbol"><A NAME="ref_594_4">ACS_Plus_Symbol</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</A>
- := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_232_4">ACS_PLUS</A>);
- <span class="symbol"><A NAME="ref_596_4">ACS_Scan_Line_1</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</A>
- := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_233_4">ACS_S1</A>);
- <span class="symbol"><A NAME="ref_598_4">ACS_Scan_Line_9</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</A>
- := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_234_4">ACS_S9</A>);
- <span class="symbol"><A NAME="ref_600_4">ACS_Diamond</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</A>
- := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_235_4">ACS_DIAMOND</A>);
- <span class="symbol"><A NAME="ref_602_4">ACS_Checker_Board</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</A>
- := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_236_4">ACS_CKBOARD</A>);
- <span class="symbol"><A NAME="ref_604_4">ACS_Degree</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</A>
- := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_237_4">ACS_DEGREE</A>);
- <span class="symbol"><A NAME="ref_606_4">ACS_Plus_Minus</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</A>
- := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_238_4">ACS_PLMINUS</A>);
- <span class="symbol"><A NAME="ref_608_4">ACS_Bullet</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</A>
- := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_239_4">ACS_BULLET</A>);
- <span class="symbol"><A NAME="ref_610_4">ACS_Left_Arrow</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</A>
- := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_240_4">ACS_LARROW</A>);
- <span class="symbol"><A NAME="ref_612_4">ACS_Right_Arrow</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</A>
- := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_241_4">ACS_RARROW</A>);
- <span class="symbol"><A NAME="ref_614_4">ACS_Down_Arrow</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</A>
- := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_242_4">ACS_DARROW</A>);
- <span class="symbol"><A NAME="ref_616_4">ACS_Up_Arrow</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</A>
- := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_243_4">ACS_UARROW</A>);
- <span class="symbol"><A NAME="ref_618_4">ACS_Board_Of_Squares</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</A>
- := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_244_4">ACS_BOARD</A>);
- <span class="symbol"><A NAME="ref_620_4">ACS_Lantern</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</A>
- := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_245_4">ACS_LANTERN</A>);
- <span class="symbol"><A NAME="ref_622_4">ACS_Solid_Block</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</A>
- := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_246_4">ACS_BLOCK</A>);
- <span class="symbol"><A NAME="ref_624_4">ACS_Scan_Line_3</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</A>
- := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_247_4">ACS_S3</A>);
- <span class="symbol"><A NAME="ref_626_4">ACS_Scan_Line_7</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</A>
- := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_248_4">ACS_S7</A>);
- <span class="symbol"><A NAME="ref_628_4">ACS_Less_Or_Equal</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</A>
- := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_249_4">ACS_LEQUAL</A>);
- <span class="symbol"><A NAME="ref_630_4">ACS_Greater_Or_Equal</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</A>
- := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_250_4">ACS_GEQUAL</A>);
- <span class="symbol"><A NAME="ref_632_4">ACS_PI</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</A>
- := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_251_4">ACS_PI</A>);
- <span class="symbol"><A NAME="ref_634_4">ACS_Not_Equal</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</A>
- := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_252_4">ACS_NEQUAL</A>);
- <span class="symbol"><A NAME="ref_636_4">ACS_Sterling</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</A>
- := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_253_4">ACS_STERLING</A>);
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/curs_initscr.3x.html">curs_initscr.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Not implemented: newterm, set_term, delscreen</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_1">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_645_13">Standard_Window</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_initscr.3x.html">stdscr</A></EM></span>
+ <span class="comment"><em>-- Constants for several characters from the Alternate Character Set</em></span>
+ <span class="comment"><em>-- You must use these constants as indices into the ACS_Map function</em></span>
+ <span class="comment"><em>-- to get the corresponding attributed character at runtime</em></span>
+ <span class="symbol"><a name="ref_574_4">ACS_Upper_Left_Corner</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</a>
+ := Character'Val (<a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_222_4">ACS_ULCORNER</a>);
+ <span class="symbol"><a name="ref_576_4">ACS_Lower_Left_Corner</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</a>
+ := Character'Val (<a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_223_4">ACS_LLCORNER</a>);
+ <span class="symbol"><a name="ref_578_4">ACS_Upper_Right_Corner</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</a>
+ := Character'Val (<a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_224_4">ACS_URCORNER</a>);
+ <span class="symbol"><a name="ref_580_4">ACS_Lower_Right_Corner</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</a>
+ := Character'Val (<a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_225_4">ACS_LRCORNER</a>);
+ <span class="symbol"><a name="ref_582_4">ACS_Left_Tee</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</a>
+ := Character'Val (<a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_226_4">ACS_LTEE</a>);
+ <span class="symbol"><a name="ref_584_4">ACS_Right_Tee</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</a>
+ := Character'Val (<a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_227_4">ACS_RTEE</a>);
+ <span class="symbol"><a name="ref_586_4">ACS_Bottom_Tee</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</a>
+ := Character'Val (<a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_228_4">ACS_BTEE</a>);
+ <span class="symbol"><a name="ref_588_4">ACS_Top_Tee</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</a>
+ := Character'Val (<a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_229_4">ACS_TTEE</a>);
+ <span class="symbol"><a name="ref_590_4">ACS_Horizontal_Line</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</a>
+ := Character'Val (<a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_230_4">ACS_HLINE</a>);
+ <span class="symbol"><a name="ref_592_4">ACS_Vertical_Line</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</a>
+ := Character'Val (<a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_231_4">ACS_VLINE</a>);
+ <span class="symbol"><a name="ref_594_4">ACS_Plus_Symbol</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</a>
+ := Character'Val (<a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_232_4">ACS_PLUS</a>);
+ <span class="symbol"><a name="ref_596_4">ACS_Scan_Line_1</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</a>
+ := Character'Val (<a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_233_4">ACS_S1</a>);
+ <span class="symbol"><a name="ref_598_4">ACS_Scan_Line_9</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</a>
+ := Character'Val (<a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_234_4">ACS_S9</a>);
+ <span class="symbol"><a name="ref_600_4">ACS_Diamond</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</a>
+ := Character'Val (<a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_235_4">ACS_DIAMOND</a>);
+ <span class="symbol"><a name="ref_602_4">ACS_Checker_Board</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</a>
+ := Character'Val (<a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_236_4">ACS_CKBOARD</a>);
+ <span class="symbol"><a name="ref_604_4">ACS_Degree</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</a>
+ := Character'Val (<a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_237_4">ACS_DEGREE</a>);
+ <span class="symbol"><a name="ref_606_4">ACS_Plus_Minus</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</a>
+ := Character'Val (<a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_238_4">ACS_PLMINUS</a>);
+ <span class="symbol"><a name="ref_608_4">ACS_Bullet</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</a>
+ := Character'Val (<a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_239_4">ACS_BULLET</a>);
+ <span class="symbol"><a name="ref_610_4">ACS_Left_Arrow</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</a>
+ := Character'Val (<a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_240_4">ACS_LARROW</a>);
+ <span class="symbol"><a name="ref_612_4">ACS_Right_Arrow</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</a>
+ := Character'Val (<a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_241_4">ACS_RARROW</a>);
+ <span class="symbol"><a name="ref_614_4">ACS_Down_Arrow</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</a>
+ := Character'Val (<a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_242_4">ACS_DARROW</a>);
+ <span class="symbol"><a name="ref_616_4">ACS_Up_Arrow</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</a>
+ := Character'Val (<a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_243_4">ACS_UARROW</a>);
+ <span class="symbol"><a name="ref_618_4">ACS_Board_Of_Squares</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</a>
+ := Character'Val (<a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_244_4">ACS_BOARD</a>);
+ <span class="symbol"><a name="ref_620_4">ACS_Lantern</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</a>
+ := Character'Val (<a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_245_4">ACS_LANTERN</a>);
+ <span class="symbol"><a name="ref_622_4">ACS_Solid_Block</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</a>
+ := Character'Val (<a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_246_4">ACS_BLOCK</a>);
+ <span class="symbol"><a name="ref_624_4">ACS_Scan_Line_3</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</a>
+ := Character'Val (<a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_247_4">ACS_S3</a>);
+ <span class="symbol"><a name="ref_626_4">ACS_Scan_Line_7</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</a>
+ := Character'Val (<a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_248_4">ACS_S7</a>);
+ <span class="symbol"><a name="ref_628_4">ACS_Less_Or_Equal</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</a>
+ := Character'Val (<a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_249_4">ACS_LEQUAL</a>);
+ <span class="symbol"><a name="ref_630_4">ACS_Greater_Or_Equal</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</a>
+ := Character'Val (<a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_250_4">ACS_GEQUAL</a>);
+ <span class="symbol"><a name="ref_632_4">ACS_PI</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</a>
+ := Character'Val (<a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_251_4">ACS_PI</a>);
+ <span class="symbol"><a name="ref_634_4">ACS_Not_Equal</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</a>
+ := Character'Val (<a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_252_4">ACS_NEQUAL</a>);
+ <span class="symbol"><a name="ref_636_4">ACS_Sterling</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_566_12">ACS_Index</a>
+ := Character'Val (<a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_253_4">ACS_STERLING</a>);
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/curs_initscr.3x.html">curs_initscr.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Not implemented: newterm, set_term, delscreen</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_1">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_645_13">Standard_Window</a></span> <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_initscr.3x.html">stdscr</A></em></span>
<b>pragma</b> Import (C, Standard_Window, "stdscr_as_function");
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>);
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>);
- <span class="comment"><EM>-- <A NAME="AFU_2">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_651_13">Current_Window</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_initscr.3x.html">curscr</A></EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_2">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_651_13">Current_Window</a></span> <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_initscr.3x.html">curscr</A></em></span>
<b>pragma</b> Import (C, Current_Window, "curscr_as_function");
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_651_13">Current_Window</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_3">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_657_14" HREF="terminal_interface-curses__adb.htm#ref_98_14">Init_Screen</A></span>;
-
- <span class="comment"><EM>-- <A NAME="AFU_4">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_660_14">Init_Windows</A></span> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_657_14">Init_Screen</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_initscr.3x.html">initscr()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_657_14">Init_Screen</A>);
- <span class="comment"><EM>-- pragma Inline (Init_Windows);</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_5">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_666_14" HREF="terminal_interface-curses__adb.htm#ref_111_14">End_Windows</A></span>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_initscr.3x.html">endwin()</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_668_14">End_Screen</A></span> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_666_14">End_Windows</A>;
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_666_14">End_Windows</A>);
- <span class="comment"><EM>-- pragma Inline (End_Screen);</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_6">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_673_13" HREF="terminal_interface-curses__adb.htm#ref_121_13">Is_End_Window</A></span> <b>return</b> Boolean;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_initscr.3x.html">isendwin()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_673_13">Is_End_Window</A>);
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/curs_move.3x.html">curs_move.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_7">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_682_14" HREF="terminal_interface-curses__adb.htm#ref_133_14">Move_Cursor</A></span> (<span class="symbol"><A NAME="ref_682_27" HREF="terminal_interface-curses__adb.htm#ref_133_27">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_683_27" HREF="terminal_interface-curses__adb.htm#ref_134_27">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_684_27" HREF="terminal_interface-curses__adb.htm#ref_135_27">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_move.3x.html">wmove()</A></EM></span>
- <span class="comment"><EM>-- AKA: move()</EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_682_14">Move_Cursor</A>);
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/curs_addch.3x.html">curs_addch.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_8">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_694_14" HREF="terminal_interface-curses__adb.htm#ref_148_14">Add</A></span> (<span class="symbol"><A NAME="ref_694_19" HREF="terminal_interface-curses__adb.htm#ref_148_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_695_19" HREF="terminal_interface-curses__adb.htm#ref_149_19">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_addch.3x.html">waddch()</A></EM></span>
- <span class="comment"><EM>-- AKA: addch()</EM></span>
-
- <b>procedure</b> <span class="symbol"><A NAME="ref_699_14" HREF="terminal_interface-curses__adb.htm#ref_160_14">Add</A></span> (<span class="symbol"><A NAME="ref_699_19" HREF="terminal_interface-curses__adb.htm#ref_160_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_700_19" HREF="terminal_interface-curses__adb.htm#ref_161_19">Ch</A></span> : Character);
- <span class="comment"><EM>-- Add a single character at the current logical cursor position to</EM></span>
- <span class="comment"><EM>-- the window. Use the current windows attributes.</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_9">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_705_14" HREF="terminal_interface-curses__adb.htm#ref_170_14">Add</A></span>
- (<span class="symbol"><A NAME="ref_706_7" HREF="terminal_interface-curses__adb.htm#ref_171_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_707_7" HREF="terminal_interface-curses__adb.htm#ref_172_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_708_7" HREF="terminal_interface-curses__adb.htm#ref_173_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_709_7" HREF="terminal_interface-curses__adb.htm#ref_174_7">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_addch.3x.html">mvwaddch()</A></EM></span>
- <span class="comment"><EM>-- AKA: mvaddch()</EM></span>
-
- <b>procedure</b> <span class="symbol"><A NAME="ref_713_14" HREF="terminal_interface-curses__adb.htm#ref_190_14">Add</A></span>
- (<span class="symbol"><A NAME="ref_714_7" HREF="terminal_interface-curses__adb.htm#ref_191_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_715_7" HREF="terminal_interface-curses__adb.htm#ref_192_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_716_7" HREF="terminal_interface-curses__adb.htm#ref_193_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_717_7" HREF="terminal_interface-curses__adb.htm#ref_194_7">Ch</A></span> : Character);
- <span class="comment"><EM>-- Move to the position and add a single character into the window</EM></span>
- <span class="comment"><EM>-- There are more Add routines, so the Inline pragma follows later</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_10">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_722_14" HREF="terminal_interface-curses__adb.htm#ref_205_14">Add_With_Immediate_Echo</A></span>
- (<span class="symbol"><A NAME="ref_723_7" HREF="terminal_interface-curses__adb.htm#ref_206_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_724_7" HREF="terminal_interface-curses__adb.htm#ref_207_7">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_addch.3x.html">wechochar()</A></EM></span>
- <span class="comment"><EM>-- AKA: echochar()</EM></span>
-
- <b>procedure</b> <span class="symbol"><A NAME="ref_728_14" HREF="terminal_interface-curses__adb.htm#ref_218_14">Add_With_Immediate_Echo</A></span>
- (<span class="symbol"><A NAME="ref_729_7" HREF="terminal_interface-curses__adb.htm#ref_219_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_730_7" HREF="terminal_interface-curses__adb.htm#ref_220_7">Ch</A></span> : Character);
- <span class="comment"><EM>-- Add a character and do an immediate refresh of the screen.</EM></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_651_13">Current_Window</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_3">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_657_14" href="terminal_interface-curses__adb.htm#ref_98_14">Init_Screen</a></span>;
+
+ <span class="comment"><em>-- <A NAME="AFU_4">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_660_14">Init_Windows</a></span> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_657_14">Init_Screen</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_initscr.3x.html">initscr()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_657_14">Init_Screen</a>);
+ <span class="comment"><em>-- pragma Inline (Init_Windows);</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_5">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_666_14" href="terminal_interface-curses__adb.htm#ref_111_14">End_Windows</a></span>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_initscr.3x.html">endwin()</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_668_14">End_Screen</a></span> <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_666_14">End_Windows</a>;
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_666_14">End_Windows</a>);
+ <span class="comment"><em>-- pragma Inline (End_Screen);</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_6">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_673_13" href="terminal_interface-curses__adb.htm#ref_121_13">Is_End_Window</a></span> <b>return</b> Boolean;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_initscr.3x.html">isendwin()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_673_13">Is_End_Window</a>);
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/curs_move.3x.html">curs_move.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_7">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_682_14" href="terminal_interface-curses__adb.htm#ref_133_14">Move_Cursor</a></span> (<span class="symbol"><a name="ref_682_27" href="terminal_interface-curses__adb.htm#ref_133_27">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_683_27" href="terminal_interface-curses__adb.htm#ref_134_27">Line</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_684_27" href="terminal_interface-curses__adb.htm#ref_135_27">Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_move.3x.html">wmove()</A></em></span>
+ <span class="comment"><em>-- AKA: move()</em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_682_14">Move_Cursor</a>);
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/curs_addch.3x.html">curs_addch.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_8">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_694_14" href="terminal_interface-curses__adb.htm#ref_148_14">Add</a></span> (<span class="symbol"><a name="ref_694_19" href="terminal_interface-curses__adb.htm#ref_148_19">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_695_19" href="terminal_interface-curses__adb.htm#ref_149_19">Ch</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_addch.3x.html">waddch()</A></em></span>
+ <span class="comment"><em>-- AKA: addch()</em></span>
+
+ <b>procedure</b> <span class="symbol"><a name="ref_699_14" href="terminal_interface-curses__adb.htm#ref_160_14">Add</a></span> (<span class="symbol"><a name="ref_699_19" href="terminal_interface-curses__adb.htm#ref_160_19">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_700_19" href="terminal_interface-curses__adb.htm#ref_161_19">Ch</a></span> : Character);
+ <span class="comment"><em>-- Add a single character at the current logical cursor position to</em></span>
+ <span class="comment"><em>-- the window. Use the current windows attributes.</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_9">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_705_14" href="terminal_interface-curses__adb.htm#ref_170_14">Add</a></span>
+ (<span class="symbol"><a name="ref_706_7" href="terminal_interface-curses__adb.htm#ref_171_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_707_7" href="terminal_interface-curses__adb.htm#ref_172_7">Line</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_708_7" href="terminal_interface-curses__adb.htm#ref_173_7">Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_709_7" href="terminal_interface-curses__adb.htm#ref_174_7">Ch</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_addch.3x.html">mvwaddch()</A></em></span>
+ <span class="comment"><em>-- AKA: mvaddch()</em></span>
+
+ <b>procedure</b> <span class="symbol"><a name="ref_713_14" href="terminal_interface-curses__adb.htm#ref_190_14">Add</a></span>
+ (<span class="symbol"><a name="ref_714_7" href="terminal_interface-curses__adb.htm#ref_191_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_715_7" href="terminal_interface-curses__adb.htm#ref_192_7">Line</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_716_7" href="terminal_interface-curses__adb.htm#ref_193_7">Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_717_7" href="terminal_interface-curses__adb.htm#ref_194_7">Ch</a></span> : Character);
+ <span class="comment"><em>-- Move to the position and add a single character into the window</em></span>
+ <span class="comment"><em>-- There are more Add routines, so the Inline pragma follows later</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_10">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_722_14" href="terminal_interface-curses__adb.htm#ref_205_14">Add_With_Immediate_Echo</a></span>
+ (<span class="symbol"><a name="ref_723_7" href="terminal_interface-curses__adb.htm#ref_206_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_724_7" href="terminal_interface-curses__adb.htm#ref_207_7">Ch</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_addch.3x.html">wechochar()</A></em></span>
+ <span class="comment"><em>-- AKA: echochar()</em></span>
+
+ <b>procedure</b> <span class="symbol"><a name="ref_728_14" href="terminal_interface-curses__adb.htm#ref_218_14">Add_With_Immediate_Echo</a></span>
+ (<span class="symbol"><a name="ref_729_7" href="terminal_interface-curses__adb.htm#ref_219_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_730_7" href="terminal_interface-curses__adb.htm#ref_220_7">Ch</a></span> : Character);
+ <span class="comment"><em>-- Add a character and do an immediate refresh of the screen.</em></span>
<b>pragma</b> Inline (Add_With_Immediate_Echo);
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/curs_window.3x.html">curs_window.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- Not Implemented: wcursyncup</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_11">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_740_13" HREF="terminal_interface-curses__adb.htm#ref_230_13">Create</A></span>
- (<span class="symbol"><A NAME="ref_741_7" HREF="terminal_interface-curses__adb.htm#ref_230_21">Number_Of_Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</A>;
- <span class="symbol"><A NAME="ref_742_7" HREF="terminal_interface-curses__adb.htm#ref_231_21">Number_Of_Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</A>;
- <span class="symbol"><A NAME="ref_743_7" HREF="terminal_interface-curses__adb.htm#ref_232_21">First_Line_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_744_7" HREF="terminal_interface-curses__adb.htm#ref_233_21">First_Column_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="comment"><EM>-- Not Implemented: Default Number_Of_Lines, Number_Of_Columns</EM></span>
- <span class="comment"><EM>-- the C version lets them be 0, see the man page.</EM></span>
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_window.3x.html">newwin()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_740_13">Create</A>);
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/curs_window.3x.html">curs_window.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- Not Implemented: wcursyncup</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_11">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_740_13" href="terminal_interface-curses__adb.htm#ref_230_13">Create</a></span>
+ (<span class="symbol"><a name="ref_741_7" href="terminal_interface-curses__adb.htm#ref_230_21">Number_Of_Lines</a></span> : <a href="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</a>;
+ <span class="symbol"><a name="ref_742_7" href="terminal_interface-curses__adb.htm#ref_231_21">Number_Of_Columns</a></span> : <a href="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</a>;
+ <span class="symbol"><a name="ref_743_7" href="terminal_interface-curses__adb.htm#ref_232_21">First_Line_Position</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_744_7" href="terminal_interface-curses__adb.htm#ref_233_21">First_Column_Position</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="comment"><em>-- Not Implemented: Default Number_Of_Lines, Number_Of_Columns</em></span>
+ <span class="comment"><em>-- the C version lets them be 0, see the man page.</em></span>
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_window.3x.html">newwin()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_740_13">Create</a>);
<b>function</b> New_Window
- (<span class="symbol"><A NAME="ref_751_7">Number_Of_Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</A>;
- <span class="symbol"><A NAME="ref_752_7">Number_Of_Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</A>;
- <span class="symbol"><A NAME="ref_753_7">First_Line_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_754_7">First_Column_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>
- <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_740_13">Create</A>;
- <span class="comment"><EM>-- pragma Inline (New_Window);</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_12">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_759_14" HREF="terminal_interface-curses__adb.htm#ref_253_14">Delete</A></span> (<span class="symbol"><A NAME="ref_759_22" HREF="terminal_interface-curses__adb.htm#ref_253_22">Win</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_window.3x.html">delwin()</A></EM></span>
- <span class="comment"><EM>-- Reset Win to Null_Window</EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_759_14">Delete</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_13">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_765_13" HREF="terminal_interface-curses__adb.htm#ref_264_13">Sub_Window</A></span>
- (<span class="symbol"><A NAME="ref_766_7" HREF="terminal_interface-curses__adb.htm#ref_265_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_767_7" HREF="terminal_interface-curses__adb.htm#ref_266_7">Number_Of_Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</A>;
- <span class="symbol"><A NAME="ref_768_7" HREF="terminal_interface-curses__adb.htm#ref_267_7">Number_Of_Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</A>;
- <span class="symbol"><A NAME="ref_769_7" HREF="terminal_interface-curses__adb.htm#ref_268_7">First_Line_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_770_7" HREF="terminal_interface-curses__adb.htm#ref_269_7">First_Column_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_window.3x.html">subwin()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_765_13">Sub_Window</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_14">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_775_13" HREF="terminal_interface-curses__adb.htm#ref_292_13">Derived_Window</A></span>
- (<span class="symbol"><A NAME="ref_776_7" HREF="terminal_interface-curses__adb.htm#ref_293_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_777_7" HREF="terminal_interface-curses__adb.htm#ref_294_7">Number_Of_Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</A>;
- <span class="symbol"><A NAME="ref_778_7" HREF="terminal_interface-curses__adb.htm#ref_295_7">Number_Of_Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</A>;
- <span class="symbol"><A NAME="ref_779_7" HREF="terminal_interface-curses__adb.htm#ref_296_7">First_Line_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_780_7" HREF="terminal_interface-curses__adb.htm#ref_297_7">First_Column_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_window.3x.html">derwin()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_775_13">Derived_Window</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_15">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_785_13" HREF="terminal_interface-curses__adb.htm#ref_320_13">Duplicate</A></span> (<span class="symbol"><A NAME="ref_785_24" HREF="terminal_interface-curses__adb.htm#ref_320_24">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_window.3x.html">dupwin()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_785_13">Duplicate</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_16">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_790_14" HREF="terminal_interface-curses__adb.htm#ref_333_14">Move_Window</A></span> (<span class="symbol"><A NAME="ref_790_27" HREF="terminal_interface-curses__adb.htm#ref_333_27">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_791_27" HREF="terminal_interface-curses__adb.htm#ref_334_27">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_792_27" HREF="terminal_interface-curses__adb.htm#ref_335_27">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_window.3x.html">mvwin()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_790_14">Move_Window</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_17">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_797_14" HREF="terminal_interface-curses__adb.htm#ref_347_14">Move_Derived_Window</A></span> (<span class="symbol"><A NAME="ref_797_35" HREF="terminal_interface-curses__adb.htm#ref_347_35">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_798_35" HREF="terminal_interface-curses__adb.htm#ref_348_35">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_799_35" HREF="terminal_interface-curses__adb.htm#ref_349_35">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_window.3x.html">mvderwin()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_797_14">Move_Derived_Window</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_18">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_804_14">Synchronize_Upwards</A></span> (<span class="symbol"><A NAME="ref_804_35" HREF="terminal_interface-curses__ads.htm#ref_804_14">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_window.3x.html">wsyncup()</A></EM></span>
+ (<span class="symbol"><a name="ref_751_7">Number_Of_Lines</a></span> : <a href="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</a>;
+ <span class="symbol"><a name="ref_752_7">Number_Of_Columns</a></span> : <a href="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</a>;
+ <span class="symbol"><a name="ref_753_7">First_Line_Position</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_754_7">First_Column_Position</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>
+ <b>renames</b> <a href="terminal_interface-curses__ads.htm#ref_740_13">Create</a>;
+ <span class="comment"><em>-- pragma Inline (New_Window);</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_12">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_759_14" href="terminal_interface-curses__adb.htm#ref_253_14">Delete</a></span> (<span class="symbol"><a name="ref_759_22" href="terminal_interface-curses__adb.htm#ref_253_22">Win</a></span> : <b>in</b> <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_window.3x.html">delwin()</A></em></span>
+ <span class="comment"><em>-- Reset Win to Null_Window</em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_759_14">Delete</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_13">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_765_13" href="terminal_interface-curses__adb.htm#ref_264_13">Sub_Window</a></span>
+ (<span class="symbol"><a name="ref_766_7" href="terminal_interface-curses__adb.htm#ref_265_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_767_7" href="terminal_interface-curses__adb.htm#ref_266_7">Number_Of_Lines</a></span> : <a href="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</a>;
+ <span class="symbol"><a name="ref_768_7" href="terminal_interface-curses__adb.htm#ref_267_7">Number_Of_Columns</a></span> : <a href="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</a>;
+ <span class="symbol"><a name="ref_769_7" href="terminal_interface-curses__adb.htm#ref_268_7">First_Line_Position</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_770_7" href="terminal_interface-curses__adb.htm#ref_269_7">First_Column_Position</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_window.3x.html">subwin()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_765_13">Sub_Window</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_14">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_775_13" href="terminal_interface-curses__adb.htm#ref_292_13">Derived_Window</a></span>
+ (<span class="symbol"><a name="ref_776_7" href="terminal_interface-curses__adb.htm#ref_293_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_777_7" href="terminal_interface-curses__adb.htm#ref_294_7">Number_Of_Lines</a></span> : <a href="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</a>;
+ <span class="symbol"><a name="ref_778_7" href="terminal_interface-curses__adb.htm#ref_295_7">Number_Of_Columns</a></span> : <a href="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</a>;
+ <span class="symbol"><a name="ref_779_7" href="terminal_interface-curses__adb.htm#ref_296_7">First_Line_Position</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_780_7" href="terminal_interface-curses__adb.htm#ref_297_7">First_Column_Position</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_window.3x.html">derwin()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_775_13">Derived_Window</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_15">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_785_13" href="terminal_interface-curses__adb.htm#ref_320_13">Duplicate</a></span> (<span class="symbol"><a name="ref_785_24" href="terminal_interface-curses__adb.htm#ref_320_24">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_window.3x.html">dupwin()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_785_13">Duplicate</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_16">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_790_14" href="terminal_interface-curses__adb.htm#ref_333_14">Move_Window</a></span> (<span class="symbol"><a name="ref_790_27" href="terminal_interface-curses__adb.htm#ref_333_27">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_791_27" href="terminal_interface-curses__adb.htm#ref_334_27">Line</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_792_27" href="terminal_interface-curses__adb.htm#ref_335_27">Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_window.3x.html">mvwin()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_790_14">Move_Window</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_17">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_797_14" href="terminal_interface-curses__adb.htm#ref_347_14">Move_Derived_Window</a></span> (<span class="symbol"><a name="ref_797_35" href="terminal_interface-curses__adb.htm#ref_347_35">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_798_35" href="terminal_interface-curses__adb.htm#ref_348_35">Line</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_799_35" href="terminal_interface-curses__adb.htm#ref_349_35">Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_window.3x.html">mvderwin()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_797_14">Move_Derived_Window</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_18">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_804_14">Synchronize_Upwards</a></span> (<span class="symbol"><a name="ref_804_35">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_window.3x.html">wsyncup()</A></em></span>
<b>pragma</b> Import (C, Synchronize_Upwards, "wsyncup");
- <span class="comment"><EM>-- <A NAME="AFU_19">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_809_14">Synchronize_Downwards</A></span> (<span class="symbol"><A NAME="ref_809_37" HREF="terminal_interface-curses__ads.htm#ref_809_14">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_window.3x.html">wsyncdown()</A></EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_19">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_809_14">Synchronize_Downwards</a></span> (<span class="symbol"><a name="ref_809_37">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_window.3x.html">wsyncdown()</A></em></span>
<b>pragma</b> Import (C, Synchronize_Downwards, "wsyncdown");
- <span class="comment"><EM>-- <A NAME="AFU_20">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_814_14" HREF="terminal_interface-curses__adb.htm#ref_361_14">Set_Synch_Mode</A></span> (<span class="symbol"><A NAME="ref_814_30" HREF="terminal_interface-curses__adb.htm#ref_361_30">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_815_30" HREF="terminal_interface-curses__adb.htm#ref_362_30">Mode</A></span> : Boolean := False);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_window.3x.html">syncok()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_814_14">Set_Synch_Mode</A>);
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/curs_addstr.3x.html">curs_addstr.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_21">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_824_14" HREF="terminal_interface-curses__adb.htm#ref_373_14">Add</A></span> (<span class="symbol"><A NAME="ref_824_19" HREF="terminal_interface-curses__adb.htm#ref_373_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_825_19" HREF="terminal_interface-curses__adb.htm#ref_374_19">Str</A></span> : String;
- <span class="symbol"><A NAME="ref_826_19" HREF="terminal_interface-curses__adb.htm#ref_375_19">Len</A></span> : Integer := -1);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_addstr.3x.html">waddnstr()</A></EM></span>
- <span class="comment"><EM>-- AKA: waddstr()</EM></span>
- <span class="comment"><EM>-- AKA: addnstr()</EM></span>
- <span class="comment"><EM>-- AKA: addstr()</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_22">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_833_14" HREF="terminal_interface-curses__adb.htm#ref_391_14">Add</A></span> (<span class="symbol"><A NAME="ref_833_19" HREF="terminal_interface-curses__adb.htm#ref_392_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_834_19" HREF="terminal_interface-curses__adb.htm#ref_393_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_835_19" HREF="terminal_interface-curses__adb.htm#ref_394_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_836_19" HREF="terminal_interface-curses__adb.htm#ref_395_7">Str</A></span> : String;
- <span class="symbol"><A NAME="ref_837_19" HREF="terminal_interface-curses__adb.htm#ref_396_7">Len</A></span> : Integer := -1);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_addstr.3x.html">mvwaddnstr()</A></EM></span>
- <span class="comment"><EM>-- AKA: mvwaddstr()</EM></span>
- <span class="comment"><EM>-- AKA: mvaddnstr()</EM></span>
- <span class="comment"><EM>-- AKA: mvaddstr()</EM></span>
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/curs_addchstr.3x.html">curs_addchstr.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_23">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_848_14" HREF="terminal_interface-curses__adb.htm#ref_403_14">Add</A></span> (<span class="symbol"><A NAME="ref_848_19" HREF="terminal_interface-curses__adb.htm#ref_404_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_849_19" HREF="terminal_interface-curses__adb.htm#ref_405_7">Str</A></span> : Attributed_String;
- <span class="symbol"><A NAME="ref_850_19" HREF="terminal_interface-curses__adb.htm#ref_406_7">Len</A></span> : Integer := -1);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_addchstr.3x.html">waddchnstr()</A></EM></span>
- <span class="comment"><EM>-- AKA: waddchstr()</EM></span>
- <span class="comment"><EM>-- AKA: addchnstr()</EM></span>
- <span class="comment"><EM>-- AKA: addchstr()</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_24">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_857_14" HREF="terminal_interface-curses__adb.htm#ref_427_14">Add</A></span> (<span class="symbol"><A NAME="ref_857_19" HREF="terminal_interface-curses__adb.htm#ref_428_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_858_19" HREF="terminal_interface-curses__adb.htm#ref_429_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_859_19" HREF="terminal_interface-curses__adb.htm#ref_430_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_860_19" HREF="terminal_interface-curses__adb.htm#ref_431_7">Str</A></span> : Attributed_String;
- <span class="symbol"><A NAME="ref_861_19" HREF="terminal_interface-curses__adb.htm#ref_432_7">Len</A></span> : Integer := -1);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_addchstr.3x.html">mvwaddchnstr()</A></EM></span>
- <span class="comment"><EM>-- AKA: mvwaddchstr()</EM></span>
- <span class="comment"><EM>-- AKA: mvaddchnstr()</EM></span>
- <span class="comment"><EM>-- AKA: mvaddchstr()</EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_20">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_814_14" href="terminal_interface-curses__adb.htm#ref_361_14">Set_Synch_Mode</a></span> (<span class="symbol"><a name="ref_814_30" href="terminal_interface-curses__adb.htm#ref_361_30">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_815_30" href="terminal_interface-curses__adb.htm#ref_362_30">Mode</a></span> : Boolean := False);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_window.3x.html">syncok()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_814_14">Set_Synch_Mode</a>);
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/curs_addstr.3x.html">curs_addstr.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_21">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_824_14" href="terminal_interface-curses__adb.htm#ref_373_14">Add</a></span> (<span class="symbol"><a name="ref_824_19" href="terminal_interface-curses__adb.htm#ref_373_19">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_825_19" href="terminal_interface-curses__adb.htm#ref_374_19">Str</a></span> : String;
+ <span class="symbol"><a name="ref_826_19" href="terminal_interface-curses__adb.htm#ref_375_19">Len</a></span> : Integer := -1);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_addstr.3x.html">waddnstr()</A></em></span>
+ <span class="comment"><em>-- AKA: waddstr()</em></span>
+ <span class="comment"><em>-- AKA: addnstr()</em></span>
+ <span class="comment"><em>-- AKA: addstr()</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_22">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_833_14" href="terminal_interface-curses__adb.htm#ref_391_14">Add</a></span> (<span class="symbol"><a name="ref_833_19" href="terminal_interface-curses__adb.htm#ref_392_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_834_19" href="terminal_interface-curses__adb.htm#ref_393_7">Line</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_835_19" href="terminal_interface-curses__adb.htm#ref_394_7">Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_836_19" href="terminal_interface-curses__adb.htm#ref_395_7">Str</a></span> : String;
+ <span class="symbol"><a name="ref_837_19" href="terminal_interface-curses__adb.htm#ref_396_7">Len</a></span> : Integer := -1);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_addstr.3x.html">mvwaddnstr()</A></em></span>
+ <span class="comment"><em>-- AKA: mvwaddstr()</em></span>
+ <span class="comment"><em>-- AKA: mvaddnstr()</em></span>
+ <span class="comment"><em>-- AKA: mvaddstr()</em></span>
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/curs_addchstr.3x.html">curs_addchstr.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_23">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_848_14" href="terminal_interface-curses__adb.htm#ref_403_14">Add</a></span> (<span class="symbol"><a name="ref_848_19" href="terminal_interface-curses__adb.htm#ref_404_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_849_19" href="terminal_interface-curses__adb.htm#ref_405_7">Str</a></span> : Attributed_String;
+ <span class="symbol"><a name="ref_850_19" href="terminal_interface-curses__adb.htm#ref_406_7">Len</a></span> : Integer := -1);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_addchstr.3x.html">waddchnstr()</A></em></span>
+ <span class="comment"><em>-- AKA: waddchstr()</em></span>
+ <span class="comment"><em>-- AKA: addchnstr()</em></span>
+ <span class="comment"><em>-- AKA: addchstr()</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_24">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_857_14" href="terminal_interface-curses__adb.htm#ref_427_14">Add</a></span> (<span class="symbol"><a name="ref_857_19" href="terminal_interface-curses__adb.htm#ref_428_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_858_19" href="terminal_interface-curses__adb.htm#ref_429_7">Line</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_859_19" href="terminal_interface-curses__adb.htm#ref_430_7">Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_860_19" href="terminal_interface-curses__adb.htm#ref_431_7">Str</a></span> : Attributed_String;
+ <span class="symbol"><a name="ref_861_19" href="terminal_interface-curses__adb.htm#ref_432_7">Len</a></span> : Integer := -1);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_addchstr.3x.html">mvwaddchnstr()</A></em></span>
+ <span class="comment"><em>-- AKA: mvwaddchstr()</em></span>
+ <span class="comment"><em>-- AKA: mvaddchnstr()</em></span>
+ <span class="comment"><em>-- AKA: mvaddchstr()</em></span>
<b>pragma</b> Inline (Add);
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/curs_border.3x.html">curs_border.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Not implemented: mvhline, mvwhline, mvvline, mvwvline</EM></span>
- <span class="comment"><EM>-- | use Move_Cursor then Horizontal_Line or Vertical_Line</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_25">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_875_14" HREF="terminal_interface-curses__adb.htm#ref_439_14">Border</A></span>
- (<span class="symbol"><A NAME="ref_876_7" HREF="terminal_interface-curses__adb.htm#ref_440_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_877_7" HREF="terminal_interface-curses__adb.htm#ref_441_7">Left_Side_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</A>;
- <span class="symbol"><A NAME="ref_878_7" HREF="terminal_interface-curses__adb.htm#ref_442_7">Right_Side_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</A>;
- <span class="symbol"><A NAME="ref_879_7" HREF="terminal_interface-curses__adb.htm#ref_443_7">Top_Side_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</A>;
- <span class="symbol"><A NAME="ref_880_7" HREF="terminal_interface-curses__adb.htm#ref_444_7">Bottom_Side_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</A>;
- <span class="symbol"><A NAME="ref_881_7" HREF="terminal_interface-curses__adb.htm#ref_445_7">Upper_Left_Corner_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</A>;
- <span class="symbol"><A NAME="ref_882_7" HREF="terminal_interface-curses__adb.htm#ref_446_7">Upper_Right_Corner_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</A>;
- <span class="symbol"><A NAME="ref_883_7" HREF="terminal_interface-curses__adb.htm#ref_447_7">Lower_Left_Corner_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</A>;
- <span class="symbol"><A NAME="ref_884_7" HREF="terminal_interface-curses__adb.htm#ref_448_7">Lower_Right_Corner_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</A>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/curs_border.3x.html">curs_border.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Not implemented: mvhline, mvwhline, mvvline, mvwvline</em></span>
+ <span class="comment"><em>-- | use Move_Cursor then Horizontal_Line or Vertical_Line</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_25">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_875_14" href="terminal_interface-curses__adb.htm#ref_439_14">Border</a></span>
+ (<span class="symbol"><a name="ref_876_7" href="terminal_interface-curses__adb.htm#ref_440_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_877_7" href="terminal_interface-curses__adb.htm#ref_441_7">Left_Side_Symbol</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a> := <a href="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</a>;
+ <span class="symbol"><a name="ref_878_7" href="terminal_interface-curses__adb.htm#ref_442_7">Right_Side_Symbol</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a> := <a href="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</a>;
+ <span class="symbol"><a name="ref_879_7" href="terminal_interface-curses__adb.htm#ref_443_7">Top_Side_Symbol</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a> := <a href="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</a>;
+ <span class="symbol"><a name="ref_880_7" href="terminal_interface-curses__adb.htm#ref_444_7">Bottom_Side_Symbol</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a> := <a href="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</a>;
+ <span class="symbol"><a name="ref_881_7" href="terminal_interface-curses__adb.htm#ref_445_7">Upper_Left_Corner_Symbol</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a> := <a href="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</a>;
+ <span class="symbol"><a name="ref_882_7" href="terminal_interface-curses__adb.htm#ref_446_7">Upper_Right_Corner_Symbol</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a> := <a href="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</a>;
+ <span class="symbol"><a name="ref_883_7" href="terminal_interface-curses__adb.htm#ref_447_7">Lower_Left_Corner_Symbol</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a> := <a href="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</a>;
+ <span class="symbol"><a name="ref_884_7" href="terminal_interface-curses__adb.htm#ref_448_7">Lower_Right_Corner_Symbol</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a> := <a href="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</a>
);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_border.3x.html">wborder()</A></EM></span>
- <span class="comment"><EM>-- AKA: border()</EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_875_14">Border</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_26">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_891_14" HREF="terminal_interface-curses__adb.htm#ref_475_14">Box</A></span>
- (<span class="symbol"><A NAME="ref_892_7" HREF="terminal_interface-curses__adb.htm#ref_476_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_893_7" HREF="terminal_interface-curses__adb.htm#ref_477_7">Vertical_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</A>;
- <span class="symbol"><A NAME="ref_894_7" HREF="terminal_interface-curses__adb.htm#ref_478_7">Horizontal_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_border.3x.html">box()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_891_14">Box</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_27">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_899_14" HREF="terminal_interface-curses__adb.htm#ref_486_14">Horizontal_Line</A></span>
- (<span class="symbol"><A NAME="ref_900_7" HREF="terminal_interface-curses__adb.htm#ref_487_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_901_7" HREF="terminal_interface-curses__adb.htm#ref_488_7">Line_Size</A></span> : Natural;
- <span class="symbol"><A NAME="ref_902_7" HREF="terminal_interface-curses__adb.htm#ref_489_7">Line_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_border.3x.html">whline()</A></EM></span>
- <span class="comment"><EM>-- AKA: hline()</EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_899_14">Horizontal_Line</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_28">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_908_14" HREF="terminal_interface-curses__adb.htm#ref_504_14">Vertical_Line</A></span>
- (<span class="symbol"><A NAME="ref_909_7" HREF="terminal_interface-curses__adb.htm#ref_505_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_910_7" HREF="terminal_interface-curses__adb.htm#ref_506_7">Line_Size</A></span> : Natural;
- <span class="symbol"><A NAME="ref_911_7" HREF="terminal_interface-curses__adb.htm#ref_507_7">Line_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_border.3x.html">wvline()</A></EM></span>
- <span class="comment"><EM>-- AKA: vline()</EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_908_14">Vertical_Line</A>);
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/curs_getch.3x.html">curs_getch.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- Not implemented: mvgetch, mvwgetch</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_29">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_922_13" HREF="terminal_interface-curses__adb.htm#ref_523_13">Get_Keystroke</A></span> (<span class="symbol"><A NAME="ref_922_28" HREF="terminal_interface-curses__adb.htm#ref_523_28">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>)
- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_72_12">Real_Key_Code</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_getch.3x.html">wgetch()</A></EM></span>
- <span class="comment"><EM>-- AKA: getch()</EM></span>
- <span class="comment"><EM>-- Get a character from the keyboard and echo it - if enabled - to the</EM></span>
- <span class="comment"><EM>-- window.</EM></span>
- <span class="comment"><EM>-- If for any reason (i.e. a timeout) we could not get a character the</EM></span>
- <span class="comment"><EM>-- returned keycode is Key_None.</EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_922_13">Get_Keystroke</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_30">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_933_14" HREF="terminal_interface-curses__adb.htm#ref_538_14">Undo_Keystroke</A></span> (<span class="symbol"><A NAME="ref_933_30" HREF="terminal_interface-curses__adb.htm#ref_538_30">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_72_12">Real_Key_Code</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_getch.3x.html">ungetch()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_933_14">Undo_Keystroke</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_31">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_938_13" HREF="terminal_interface-curses__adb.htm#ref_548_13">Has_Key</A></span> (<span class="symbol"><A NAME="ref_938_22" HREF="terminal_interface-curses__adb.htm#ref_548_22">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>) <b>return</b> Boolean;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_getch.3x.html">has_key()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_938_13">Has_Key</A>);
-
- <span class="comment"><EM>-- |</EM></span>
- <span class="comment"><EM>-- | Some helper functions</EM></span>
- <span class="comment"><EM>-- |</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_945_13" HREF="terminal_interface-curses__adb.htm#ref_560_13">Is_Function_Key</A></span> (<span class="symbol"><A NAME="ref_945_30" HREF="terminal_interface-curses__adb.htm#ref_560_30">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>) <b>return</b> Boolean;
- <span class="comment"><EM>-- Return True if the Key is a function key (i.e. one of F0 .. F63)</EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_945_13">Is_Function_Key</A>);
-
- <b>subtype</b> <span class="symbol"><A NAME="ref_949_12">Function_Key_Number</A></span> <b>is</b> Integer <b>range</b> 0 .. 63;
- <span class="comment"><EM>-- (n)curses allows for 64 function keys.</EM></span>
-
- <b>function</b> <span class="symbol"><A NAME="ref_952_13" HREF="terminal_interface-curses__adb.htm#ref_572_13">Function_Key</A></span> (<span class="symbol"><A NAME="ref_952_27" HREF="terminal_interface-curses__adb.htm#ref_572_27">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_72_12">Real_Key_Code</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_949_12">Function_Key_Number</A>;
- <span class="comment"><EM>-- Return the number of the function key. If the code is not a</EM></span>
- <span class="comment"><EM>-- function key, a CONSTRAINT_ERROR will be raised.</EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_952_13">Function_Key</A>);
-
- <b>function</b> <span class="symbol"><A NAME="ref_957_13" HREF="terminal_interface-curses__adb.htm#ref_583_13">Function_Key_Code</A></span> (<span class="symbol"><A NAME="ref_957_32" HREF="terminal_interface-curses__adb.htm#ref_583_32">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_949_12">Function_Key_Number</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_72_12">Real_Key_Code</A>;
- <span class="comment"><EM>-- Return the key code for a given function-key number.</EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_957_13">Function_Key_Code</A>);
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Not implemented attr_off, wattr_off,</EM></span>
- <span class="comment"><EM>-- | attr_on, wattr_on, attr_set, wattr_set</EM></span>
-
- <span class="comment"><EM>-- PAIR_NUMBER</EM></span>
- <span class="comment"><EM>-- PAIR_NUMBER(c) is the same as c.Color</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_32">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_971_14" HREF="terminal_interface-curses__adb.htm#ref_589_14">Standout</A></span> (<span class="symbol"><A NAME="ref_971_24" HREF="terminal_interface-curses__adb.htm#ref_589_24">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_972_24" HREF="terminal_interface-curses__adb.htm#ref_590_24">On</A></span> : Boolean := True);
- <span class="comment"><EM>-- AKA: wstandout()</EM></span>
- <span class="comment"><EM>-- AKA: wstandend()</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_33">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_977_14" HREF="terminal_interface-curses__adb.htm#ref_609_14">Switch_Character_Attribute</A></span>
- (<span class="symbol"><A NAME="ref_978_7" HREF="terminal_interface-curses__adb.htm#ref_610_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_979_7" HREF="terminal_interface-curses__adb.htm#ref_611_7">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</A>;
- <span class="symbol"><A NAME="ref_980_7" HREF="terminal_interface-curses__adb.htm#ref_612_7">On</A></span> : Boolean := True); <span class="comment"><EM>-- if False we switch Off.</EM></span>
- <span class="comment"><EM>-- Switches those Attributes set to true in the list.</EM></span>
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_attr.3x.html">wattron()</A></EM></span>
- <span class="comment"><EM>-- AKA: wattroff()</EM></span>
- <span class="comment"><EM>-- AKA: attron()</EM></span>
- <span class="comment"><EM>-- AKA: attroff()</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_34">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_988_14" HREF="terminal_interface-curses__adb.htm#ref_637_14">Set_Character_Attributes</A></span>
- (<span class="symbol"><A NAME="ref_989_7" HREF="terminal_interface-curses__adb.htm#ref_638_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_990_7" HREF="terminal_interface-curses__adb.htm#ref_639_7">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</A>;
- <span class="symbol"><A NAME="ref_991_7" HREF="terminal_interface-curses__adb.htm#ref_640_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>'First);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_attr.3x.html">wattrset()</A></EM></span>
- <span class="comment"><EM>-- AKA: attrset()</EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_988_14">Set_Character_Attributes</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_35">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_997_13" HREF="terminal_interface-curses__adb.htm#ref_654_13">Get_Character_Attribute</A></span>
- (<span class="symbol"><A NAME="ref_998_7" HREF="terminal_interface-curses__adb.htm#ref_654_38">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_attr.3x.html">wattr_get()</A></EM></span>
- <span class="comment"><EM>-- AKA: attr_get()</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_36">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_1003_13" HREF="terminal_interface-curses__adb.htm#ref_675_13">Get_Character_Attribute</A></span>
- (<span class="symbol"><A NAME="ref_1004_7" HREF="terminal_interface-curses__adb.htm#ref_675_38">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_attr.3x.html">wattr_get()</A></EM></span>
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_border.3x.html">wborder()</A></em></span>
+ <span class="comment"><em>-- AKA: border()</em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_875_14">Border</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_26">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_891_14" href="terminal_interface-curses__adb.htm#ref_475_14">Box</a></span>
+ (<span class="symbol"><a name="ref_892_7" href="terminal_interface-curses__adb.htm#ref_476_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_893_7" href="terminal_interface-curses__adb.htm#ref_477_7">Vertical_Symbol</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a> := <a href="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</a>;
+ <span class="symbol"><a name="ref_894_7" href="terminal_interface-curses__adb.htm#ref_478_7">Horizontal_Symbol</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a> := <a href="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_border.3x.html">box()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_891_14">Box</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_27">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_899_14" href="terminal_interface-curses__adb.htm#ref_486_14">Horizontal_Line</a></span>
+ (<span class="symbol"><a name="ref_900_7" href="terminal_interface-curses__adb.htm#ref_487_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_901_7" href="terminal_interface-curses__adb.htm#ref_488_7">Line_Size</a></span> : Natural;
+ <span class="symbol"><a name="ref_902_7" href="terminal_interface-curses__adb.htm#ref_489_7">Line_Symbol</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a> := <a href="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_border.3x.html">whline()</A></em></span>
+ <span class="comment"><em>-- AKA: hline()</em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_899_14">Horizontal_Line</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_28">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_908_14" href="terminal_interface-curses__adb.htm#ref_504_14">Vertical_Line</a></span>
+ (<span class="symbol"><a name="ref_909_7" href="terminal_interface-curses__adb.htm#ref_505_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_910_7" href="terminal_interface-curses__adb.htm#ref_506_7">Line_Size</a></span> : Natural;
+ <span class="symbol"><a name="ref_911_7" href="terminal_interface-curses__adb.htm#ref_507_7">Line_Symbol</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a> := <a href="terminal_interface-curses__ads.htm#ref_510_4">Default_Character</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_border.3x.html">wvline()</A></em></span>
+ <span class="comment"><em>-- AKA: vline()</em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_908_14">Vertical_Line</a>);
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/curs_getch.3x.html">curs_getch.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- Not implemented: mvgetch, mvwgetch</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_29">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_922_13" href="terminal_interface-curses__adb.htm#ref_523_13">Get_Keystroke</a></span> (<span class="symbol"><a name="ref_922_28" href="terminal_interface-curses__adb.htm#ref_523_28">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>)
+ <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_72_12">Real_Key_Code</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_getch.3x.html">wgetch()</A></em></span>
+ <span class="comment"><em>-- AKA: getch()</em></span>
+ <span class="comment"><em>-- Get a character from the keyboard and echo it - if enabled - to the</em></span>
+ <span class="comment"><em>-- window.</em></span>
+ <span class="comment"><em>-- If for any reason (i.e. a timeout) we could not get a character the</em></span>
+ <span class="comment"><em>-- returned keycode is Key_None.</em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_922_13">Get_Keystroke</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_30">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_933_14" href="terminal_interface-curses__adb.htm#ref_538_14">Undo_Keystroke</a></span> (<span class="symbol"><a name="ref_933_30" href="terminal_interface-curses__adb.htm#ref_538_30">Key</a></span> : <a href="terminal_interface-curses__ads.htm#ref_72_12">Real_Key_Code</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_getch.3x.html">ungetch()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_933_14">Undo_Keystroke</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_31">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_938_13" href="terminal_interface-curses__adb.htm#ref_548_13">Has_Key</a></span> (<span class="symbol"><a name="ref_938_22" href="terminal_interface-curses__adb.htm#ref_548_22">Key</a></span> : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>) <b>return</b> Boolean;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_getch.3x.html">has_key()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_938_13">Has_Key</a>);
+
+ <span class="comment"><em>-- |</em></span>
+ <span class="comment"><em>-- | Some helper functions</em></span>
+ <span class="comment"><em>-- |</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_945_13" href="terminal_interface-curses__adb.htm#ref_560_13">Is_Function_Key</a></span> (<span class="symbol"><a name="ref_945_30" href="terminal_interface-curses__adb.htm#ref_560_30">Key</a></span> : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>) <b>return</b> Boolean;
+ <span class="comment"><em>-- Return True if the Key is a function key (i.e. one of F0 .. F63)</em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_945_13">Is_Function_Key</a>);
+
+ <b>subtype</b> <span class="symbol"><a name="ref_949_12">Function_Key_Number</a></span> <b>is</b> Integer <b>range</b> 0 .. 63;
+ <span class="comment"><em>-- (n)curses allows for 64 function keys.</em></span>
+
+ <b>function</b> <span class="symbol"><a name="ref_952_13" href="terminal_interface-curses__adb.htm#ref_572_13">Function_Key</a></span> (<span class="symbol"><a name="ref_952_27" href="terminal_interface-curses__adb.htm#ref_572_27">Key</a></span> : <a href="terminal_interface-curses__ads.htm#ref_72_12">Real_Key_Code</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_949_12">Function_Key_Number</a>;
+ <span class="comment"><em>-- Return the number of the function key. If the code is not a</em></span>
+ <span class="comment"><em>-- function key, a CONSTRAINT_ERROR will be raised.</em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_952_13">Function_Key</a>);
+
+ <b>function</b> <span class="symbol"><a name="ref_957_13" href="terminal_interface-curses__adb.htm#ref_583_13">Function_Key_Code</a></span> (<span class="symbol"><a name="ref_957_32" href="terminal_interface-curses__adb.htm#ref_583_32">Key</a></span> : <a href="terminal_interface-curses__ads.htm#ref_949_12">Function_Key_Number</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_72_12">Real_Key_Code</a>;
+ <span class="comment"><em>-- Return the key code for a given function-key number.</em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_957_13">Function_Key_Code</a>);
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Not implemented attr_off, wattr_off,</em></span>
+ <span class="comment"><em>-- | attr_on, wattr_on, attr_set, wattr_set</em></span>
+
+ <span class="comment"><em>-- PAIR_NUMBER</em></span>
+ <span class="comment"><em>-- PAIR_NUMBER(c) is the same as c.Color</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_32">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_971_14" href="terminal_interface-curses__adb.htm#ref_589_14">Standout</a></span> (<span class="symbol"><a name="ref_971_24" href="terminal_interface-curses__adb.htm#ref_589_24">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_972_24" href="terminal_interface-curses__adb.htm#ref_590_24">On</a></span> : Boolean := True);
+ <span class="comment"><em>-- AKA: wstandout()</em></span>
+ <span class="comment"><em>-- AKA: wstandend()</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_33">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_977_14" href="terminal_interface-curses__adb.htm#ref_609_14">Switch_Character_Attribute</a></span>
+ (<span class="symbol"><a name="ref_978_7" href="terminal_interface-curses__adb.htm#ref_610_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_979_7" href="terminal_interface-curses__adb.htm#ref_611_7">Attr</a></span> : <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a> := <a href="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</a>;
+ <span class="symbol"><a name="ref_980_7" href="terminal_interface-curses__adb.htm#ref_612_7">On</a></span> : Boolean := True); <span class="comment"><em>-- if False we switch Off.</em></span>
+ <span class="comment"><em>-- Switches those Attributes set to true in the list.</em></span>
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_attr.3x.html">wattron()</A></em></span>
+ <span class="comment"><em>-- AKA: wattroff()</em></span>
+ <span class="comment"><em>-- AKA: attron()</em></span>
+ <span class="comment"><em>-- AKA: attroff()</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_34">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_988_14" href="terminal_interface-curses__adb.htm#ref_637_14">Set_Character_Attributes</a></span>
+ (<span class="symbol"><a name="ref_989_7" href="terminal_interface-curses__adb.htm#ref_638_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_990_7" href="terminal_interface-curses__adb.htm#ref_639_7">Attr</a></span> : <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a> := <a href="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</a>;
+ <span class="symbol"><a name="ref_991_7" href="terminal_interface-curses__adb.htm#ref_640_7">Color</a></span> : <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a> := <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>'First);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_attr.3x.html">wattrset()</A></em></span>
+ <span class="comment"><em>-- AKA: attrset()</em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_988_14">Set_Character_Attributes</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_35">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_997_13" href="terminal_interface-curses__adb.htm#ref_654_13">Get_Character_Attribute</a></span>
+ (<span class="symbol"><a name="ref_998_7" href="terminal_interface-curses__adb.htm#ref_654_38">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_attr.3x.html">wattr_get()</A></em></span>
+ <span class="comment"><em>-- AKA: attr_get()</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_36">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_1003_13" href="terminal_interface-curses__adb.htm#ref_675_13">Get_Character_Attribute</a></span>
+ (<span class="symbol"><a name="ref_1004_7" href="terminal_interface-curses__adb.htm#ref_675_38">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_attr.3x.html">wattr_get()</A></em></span>
<b>pragma</b> Inline (Get_Character_Attribute);
- <span class="comment"><EM>-- <A NAME="AFU_37">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1009_14" HREF="terminal_interface-curses__adb.htm#ref_696_14">Set_Color</A></span> (<span class="symbol"><A NAME="ref_1009_25" HREF="terminal_interface-curses__adb.htm#ref_696_25">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1010_25" HREF="terminal_interface-curses__adb.htm#ref_697_25">Pair</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_attr.3x.html">wcolor_set()</A></EM></span>
- <span class="comment"><EM>-- AKA: color_set()</EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1009_14">Set_Color</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_38">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1016_14" HREF="terminal_interface-curses__adb.htm#ref_712_14">Change_Attributes</A></span>
- (<span class="symbol"><A NAME="ref_1017_7" HREF="terminal_interface-curses__adb.htm#ref_713_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1018_7" HREF="terminal_interface-curses__adb.htm#ref_714_7">Count</A></span> : Integer := -1;
- <span class="symbol"><A NAME="ref_1019_7" HREF="terminal_interface-curses__adb.htm#ref_715_7">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</A>;
- <span class="symbol"><A NAME="ref_1020_7" HREF="terminal_interface-curses__adb.htm#ref_716_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>'First);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_attr.3x.html">wchgat()</A></EM></span>
- <span class="comment"><EM>-- AKA: chgat()</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_39">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1025_14" HREF="terminal_interface-curses__adb.htm#ref_737_14">Change_Attributes</A></span>
- (<span class="symbol"><A NAME="ref_1026_7" HREF="terminal_interface-curses__adb.htm#ref_738_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1027_7" HREF="terminal_interface-curses__adb.htm#ref_739_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A> := <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>'First;
- <span class="symbol"><A NAME="ref_1028_7" HREF="terminal_interface-curses__adb.htm#ref_740_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>'First;
- <span class="symbol"><A NAME="ref_1029_7" HREF="terminal_interface-curses__adb.htm#ref_741_7">Count</A></span> : Integer := -1;
- <span class="symbol"><A NAME="ref_1030_7" HREF="terminal_interface-curses__adb.htm#ref_742_7">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</A>;
- <span class="symbol"><A NAME="ref_1031_7" HREF="terminal_interface-curses__adb.htm#ref_743_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>'First);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_attr.3x.html">mvwchgat()</A></EM></span>
- <span class="comment"><EM>-- AKA: mvchgat()</EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_37">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1009_14" href="terminal_interface-curses__adb.htm#ref_696_14">Set_Color</a></span> (<span class="symbol"><a name="ref_1009_25" href="terminal_interface-curses__adb.htm#ref_696_25">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1010_25" href="terminal_interface-curses__adb.htm#ref_697_25">Pair</a></span> : <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_attr.3x.html">wcolor_set()</A></em></span>
+ <span class="comment"><em>-- AKA: color_set()</em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1009_14">Set_Color</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_38">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1016_14" href="terminal_interface-curses__adb.htm#ref_712_14">Change_Attributes</a></span>
+ (<span class="symbol"><a name="ref_1017_7" href="terminal_interface-curses__adb.htm#ref_713_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1018_7" href="terminal_interface-curses__adb.htm#ref_714_7">Count</a></span> : Integer := -1;
+ <span class="symbol"><a name="ref_1019_7" href="terminal_interface-curses__adb.htm#ref_715_7">Attr</a></span> : <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a> := <a href="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</a>;
+ <span class="symbol"><a name="ref_1020_7" href="terminal_interface-curses__adb.htm#ref_716_7">Color</a></span> : <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a> := <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>'First);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_attr.3x.html">wchgat()</A></em></span>
+ <span class="comment"><em>-- AKA: chgat()</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_39">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1025_14" href="terminal_interface-curses__adb.htm#ref_737_14">Change_Attributes</a></span>
+ (<span class="symbol"><a name="ref_1026_7" href="terminal_interface-curses__adb.htm#ref_738_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1027_7" href="terminal_interface-curses__adb.htm#ref_739_7">Line</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a> := <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>'First;
+ <span class="symbol"><a name="ref_1028_7" href="terminal_interface-curses__adb.htm#ref_740_7">Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a> := <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>'First;
+ <span class="symbol"><a name="ref_1029_7" href="terminal_interface-curses__adb.htm#ref_741_7">Count</a></span> : Integer := -1;
+ <span class="symbol"><a name="ref_1030_7" href="terminal_interface-curses__adb.htm#ref_742_7">Attr</a></span> : <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a> := <a href="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</a>;
+ <span class="symbol"><a name="ref_1031_7" href="terminal_interface-curses__adb.htm#ref_743_7">Color</a></span> : <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a> := <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>'First);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_attr.3x.html">mvwchgat()</A></em></span>
+ <span class="comment"><em>-- AKA: mvchgat()</em></span>
<b>pragma</b> Inline (Change_Attributes);
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/curs_beep.3x.html">curs_beep.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_40">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1041_14" HREF="terminal_interface-curses__adb.htm#ref_750_14">Beep</A></span>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_beep.3x.html">beep()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1041_14">Beep</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_41">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1046_14" HREF="terminal_interface-curses__adb.htm#ref_760_14">Flash_Screen</A></span>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_beep.3x.html">flash()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1046_14">Flash_Screen</A>);
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- | Not implemented : typeahead</EM></span>
- <span class="comment"><EM>--</EM></span>
- <span class="comment"><EM>-- <A NAME="AFU_42">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1057_14" HREF="terminal_interface-curses__adb.htm#ref_770_14">Set_Cbreak_Mode</A></span> (<span class="symbol"><A NAME="ref_1057_31" HREF="terminal_interface-curses__adb.htm#ref_770_31">SwitchOn</A></span> : Boolean := True);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">cbreak()</A></EM></span>
- <span class="comment"><EM>-- AKA: nocbreak()</EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1057_14">Set_Cbreak_Mode</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_43">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1063_14" HREF="terminal_interface-curses__adb.htm#ref_789_14">Set_Raw_Mode</A></span> (<span class="symbol"><A NAME="ref_1063_28" HREF="terminal_interface-curses__adb.htm#ref_789_28">SwitchOn</A></span> : Boolean := True);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">raw()</A></EM></span>
- <span class="comment"><EM>-- AKA: noraw()</EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1063_14">Set_Raw_Mode</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_44">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1069_14" HREF="terminal_interface-curses__adb.htm#ref_808_14">Set_Echo_Mode</A></span> (<span class="symbol"><A NAME="ref_1069_29" HREF="terminal_interface-curses__adb.htm#ref_808_29">SwitchOn</A></span> : Boolean := True);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">echo()</A></EM></span>
- <span class="comment"><EM>-- AKA: noecho()</EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1069_14">Set_Echo_Mode</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_45">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1075_14" HREF="terminal_interface-curses__adb.htm#ref_827_14">Set_Meta_Mode</A></span> (<span class="symbol"><A NAME="ref_1075_29" HREF="terminal_interface-curses__adb.htm#ref_827_29">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1076_29" HREF="terminal_interface-curses__adb.htm#ref_828_29">SwitchOn</A></span> : Boolean := True);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">meta()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1075_14">Set_Meta_Mode</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_46">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1081_14" HREF="terminal_interface-curses__adb.htm#ref_838_14">Set_KeyPad_Mode</A></span> (<span class="symbol"><A NAME="ref_1081_31" HREF="terminal_interface-curses__adb.htm#ref_838_31">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1082_31" HREF="terminal_interface-curses__adb.htm#ref_839_31">SwitchOn</A></span> : Boolean := True);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">keypad()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1081_14">Set_KeyPad_Mode</A>);
-
- <b>function</b> <span class="symbol"><A NAME="ref_1086_13" HREF="terminal_interface-curses__adb.htm#ref_849_13">Get_KeyPad_Mode</A></span> (<span class="symbol"><A NAME="ref_1086_30" HREF="terminal_interface-curses__adb.htm#ref_849_30">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>)
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/curs_beep.3x.html">curs_beep.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_40">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1041_14" href="terminal_interface-curses__adb.htm#ref_750_14">Beep</a></span>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_beep.3x.html">beep()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1041_14">Beep</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_41">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1046_14" href="terminal_interface-curses__adb.htm#ref_760_14">Flash_Screen</a></span>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_beep.3x.html">flash()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1046_14">Flash_Screen</a>);
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- | Not implemented : typeahead</em></span>
+ <span class="comment"><em>--</em></span>
+ <span class="comment"><em>-- <A NAME="AFU_42">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1057_14" href="terminal_interface-curses__adb.htm#ref_770_14">Set_Cbreak_Mode</a></span> (<span class="symbol"><a name="ref_1057_31" href="terminal_interface-curses__adb.htm#ref_770_31">SwitchOn</a></span> : Boolean := True);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_inopts.3x.html">cbreak()</A></em></span>
+ <span class="comment"><em>-- AKA: nocbreak()</em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1057_14">Set_Cbreak_Mode</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_43">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1063_14" href="terminal_interface-curses__adb.htm#ref_789_14">Set_Raw_Mode</a></span> (<span class="symbol"><a name="ref_1063_28" href="terminal_interface-curses__adb.htm#ref_789_28">SwitchOn</a></span> : Boolean := True);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_inopts.3x.html">raw()</A></em></span>
+ <span class="comment"><em>-- AKA: noraw()</em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1063_14">Set_Raw_Mode</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_44">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1069_14" href="terminal_interface-curses__adb.htm#ref_808_14">Set_Echo_Mode</a></span> (<span class="symbol"><a name="ref_1069_29" href="terminal_interface-curses__adb.htm#ref_808_29">SwitchOn</a></span> : Boolean := True);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_inopts.3x.html">echo()</A></em></span>
+ <span class="comment"><em>-- AKA: noecho()</em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1069_14">Set_Echo_Mode</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_45">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1075_14" href="terminal_interface-curses__adb.htm#ref_827_14">Set_Meta_Mode</a></span> (<span class="symbol"><a name="ref_1075_29" href="terminal_interface-curses__adb.htm#ref_827_29">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1076_29" href="terminal_interface-curses__adb.htm#ref_828_29">SwitchOn</a></span> : Boolean := True);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_inopts.3x.html">meta()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1075_14">Set_Meta_Mode</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_46">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1081_14" href="terminal_interface-curses__adb.htm#ref_838_14">Set_KeyPad_Mode</a></span> (<span class="symbol"><a name="ref_1081_31" href="terminal_interface-curses__adb.htm#ref_838_31">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1082_31" href="terminal_interface-curses__adb.htm#ref_839_31">SwitchOn</a></span> : Boolean := True);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_inopts.3x.html">keypad()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1081_14">Set_KeyPad_Mode</a>);
+
+ <b>function</b> <span class="symbol"><a name="ref_1086_13" href="terminal_interface-curses__adb.htm#ref_849_13">Get_KeyPad_Mode</a></span> (<span class="symbol"><a name="ref_1086_30" href="terminal_interface-curses__adb.htm#ref_849_30">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>)
<b>return</b> Boolean;
- <span class="comment"><EM>-- This has no pendant in C. There you've to look into the WINDOWS</EM></span>
- <span class="comment"><EM>-- structure to get the value. Bad practice, not repeated in Ada.</EM></span>
-
- <b>type</b> <span class="symbol"><A NAME="ref_1091_9">Half_Delay_Amount</A></span> <b>is</b> <b>range</b> 1 .. 255;
-
- <span class="comment"><EM>-- <A NAME="AFU_47">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1094_14" HREF="terminal_interface-curses__adb.htm#ref_858_14">Half_Delay</A></span> (<span class="symbol"><A NAME="ref_1094_26" HREF="terminal_interface-curses__adb.htm#ref_858_26">Amount</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1091_9">Half_Delay_Amount</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">halfdelay()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1094_14">Half_Delay</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_48">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1099_14" HREF="terminal_interface-curses__adb.htm#ref_868_14">Set_Flush_On_Interrupt_Mode</A></span>
- (<span class="symbol"><A NAME="ref_1100_7" HREF="terminal_interface-curses__adb.htm#ref_869_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1101_7" HREF="terminal_interface-curses__adb.htm#ref_870_7">Mode</A></span> : Boolean := True);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">intrflush()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1099_14">Set_Flush_On_Interrupt_Mode</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_49">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1106_14" HREF="terminal_interface-curses__adb.htm#ref_880_14">Set_Queue_Interrupt_Mode</A></span>
- (<span class="symbol"><A NAME="ref_1107_7" HREF="terminal_interface-curses__adb.htm#ref_881_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1108_7" HREF="terminal_interface-curses__adb.htm#ref_882_7">Flush</A></span> : Boolean := True);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">qiflush()</A></EM></span>
- <span class="comment"><EM>-- AKA: noqiflush()</EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1106_14">Set_Queue_Interrupt_Mode</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_50">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1114_14" HREF="terminal_interface-curses__adb.htm#ref_899_14">Set_NoDelay_Mode</A></span>
- (<span class="symbol"><A NAME="ref_1115_7" HREF="terminal_interface-curses__adb.htm#ref_900_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1116_7" HREF="terminal_interface-curses__adb.htm#ref_901_7">Mode</A></span> : Boolean := False);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">nodelay()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1114_14">Set_NoDelay_Mode</A>);
-
- <b>type</b> <span class="symbol"><A NAME="ref_1120_9">Timeout_Mode</A></span> <b>is</b> (<span class="symbol"><A NAME="ref_1120_26">Blocking</A></span>, <span class="symbol"><A NAME="ref_1120_36">Non_Blocking</A></span>, <span class="symbol"><A NAME="ref_1120_50">Delayed</A></span>);
-
- <span class="comment"><EM>-- <A NAME="AFU_51">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1123_14" HREF="terminal_interface-curses__adb.htm#ref_911_14">Set_Timeout_Mode</A></span> (<span class="symbol"><A NAME="ref_1123_32" HREF="terminal_interface-curses__adb.htm#ref_911_32">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1124_32" HREF="terminal_interface-curses__adb.htm#ref_912_32">Mode</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1120_9">Timeout_Mode</A>;
- <span class="symbol"><A NAME="ref_1125_32" HREF="terminal_interface-curses__adb.htm#ref_913_32">Amount</A></span> : Natural); <span class="comment"><EM>-- in Milliseconds</EM></span>
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">wtimeout()</A></EM></span>
- <span class="comment"><EM>-- AKA: timeout()</EM></span>
- <span class="comment"><EM>-- Instead of overloading the semantic of the sign of amount, we</EM></span>
- <span class="comment"><EM>-- introduce the Timeout_Mode parameter. This should improve</EM></span>
- <span class="comment"><EM>-- readability. For Blocking and Non_Blocking, the Amount is not</EM></span>
- <span class="comment"><EM>-- evaluated.</EM></span>
- <span class="comment"><EM>-- We do not inline this procedure.</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_52">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1135_14" HREF="terminal_interface-curses__adb.htm#ref_932_14">Set_Escape_Timer_Mode</A></span>
- (<span class="symbol"><A NAME="ref_1136_7" HREF="terminal_interface-curses__adb.htm#ref_933_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1137_7" HREF="terminal_interface-curses__adb.htm#ref_934_7">Timer_Off</A></span> : Boolean := False);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">notimeout()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1135_14">Set_Escape_Timer_Mode</A>);
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_53">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1146_14" HREF="terminal_interface-curses__adb.htm#ref_947_14">Set_NL_Mode</A></span> (<span class="symbol"><A NAME="ref_1146_27" HREF="terminal_interface-curses__adb.htm#ref_947_27">SwitchOn</A></span> : Boolean := True);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">nl()</A></EM></span>
- <span class="comment"><EM>-- AKA: nonl()</EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1146_14">Set_NL_Mode</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_54">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1152_14" HREF="terminal_interface-curses__adb.htm#ref_966_14">Clear_On_Next_Update</A></span>
- (<span class="symbol"><A NAME="ref_1153_7" HREF="terminal_interface-curses__adb.htm#ref_967_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1154_7" HREF="terminal_interface-curses__adb.htm#ref_968_7">Do_Clear</A></span> : Boolean := True);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">clearok()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1152_14">Clear_On_Next_Update</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_55">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1159_14" HREF="terminal_interface-curses__adb.htm#ref_978_14">Use_Insert_Delete_Line</A></span>
- (<span class="symbol"><A NAME="ref_1160_7" HREF="terminal_interface-curses__adb.htm#ref_979_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1161_7" HREF="terminal_interface-curses__adb.htm#ref_980_7">Do_Idl</A></span> : Boolean := True);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">idlok()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1159_14">Use_Insert_Delete_Line</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_56">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1166_14" HREF="terminal_interface-curses__adb.htm#ref_990_14">Use_Insert_Delete_Character</A></span>
- (<span class="symbol"><A NAME="ref_1167_7" HREF="terminal_interface-curses__adb.htm#ref_991_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1168_7" HREF="terminal_interface-curses__adb.htm#ref_992_7">Do_Idc</A></span> : Boolean := True);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">idcok()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1166_14">Use_Insert_Delete_Character</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_57">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1173_14" HREF="terminal_interface-curses__adb.htm#ref_1000_14">Leave_Cursor_After_Update</A></span>
- (<span class="symbol"><A NAME="ref_1174_7" HREF="terminal_interface-curses__adb.htm#ref_1001_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1175_7" HREF="terminal_interface-curses__adb.htm#ref_1002_7">Do_Leave</A></span> : Boolean := True);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">leaveok()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1173_14">Leave_Cursor_After_Update</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_58">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1180_14" HREF="terminal_interface-curses__adb.htm#ref_1012_14">Immediate_Update_Mode</A></span>
- (<span class="symbol"><A NAME="ref_1181_7" HREF="terminal_interface-curses__adb.htm#ref_1013_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1182_7" HREF="terminal_interface-curses__adb.htm#ref_1014_7">Mode</A></span> : Boolean := False);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">immedok()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1180_14">Immediate_Update_Mode</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_59">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1187_14" HREF="terminal_interface-curses__adb.htm#ref_1022_14">Allow_Scrolling</A></span>
- (<span class="symbol"><A NAME="ref_1188_7" HREF="terminal_interface-curses__adb.htm#ref_1023_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1189_7" HREF="terminal_interface-curses__adb.htm#ref_1024_7">Mode</A></span> : Boolean := False);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">scrollok()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1187_14">Allow_Scrolling</A>);
-
- <b>function</b> <span class="symbol"><A NAME="ref_1193_13" HREF="terminal_interface-curses__adb.htm#ref_1034_13">Scrolling_Allowed</A></span> (<span class="symbol"><A NAME="ref_1193_32" HREF="terminal_interface-curses__adb.htm#ref_1034_32">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>) <b>return</b> Boolean;
- <span class="comment"><EM>-- There is no such function in the C interface.</EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1193_13">Scrolling_Allowed</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_60">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1198_14" HREF="terminal_interface-curses__adb.htm#ref_1043_14">Set_Scroll_Region</A></span>
- (<span class="symbol"><A NAME="ref_1199_7" HREF="terminal_interface-curses__adb.htm#ref_1044_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1200_7" HREF="terminal_interface-curses__adb.htm#ref_1045_7">Top_Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1201_7" HREF="terminal_interface-curses__adb.htm#ref_1046_7">Bottom_Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">wsetscrreg()</A></EM></span>
- <span class="comment"><EM>-- AKA: setscrreg()</EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1198_14">Set_Scroll_Region</A>);
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/curs_refresh.3x.html">curs_refresh.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_61">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1211_14" HREF="terminal_interface-curses__adb.htm#ref_1060_14">Update_Screen</A></span>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_refresh.3x.html">doupdate()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1211_14">Update_Screen</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_62">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1216_14" HREF="terminal_interface-curses__adb.htm#ref_1070_14">Refresh</A></span> (<span class="symbol"><A NAME="ref_1216_23" HREF="terminal_interface-curses__adb.htm#ref_1070_23">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_refresh.3x.html">wrefresh()</A></EM></span>
- <span class="comment"><EM>-- There is an overloaded Refresh for Pads.</EM></span>
- <span class="comment"><EM>-- The Inline pragma appears there</EM></span>
- <span class="comment"><EM>-- AKA: refresh()</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_63">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1223_14" HREF="terminal_interface-curses__adb.htm#ref_1080_14">Refresh_Without_Update</A></span>
- (<span class="symbol"><A NAME="ref_1224_7" HREF="terminal_interface-curses__adb.htm#ref_1081_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_refresh.3x.html">wnoutrefresh()</A></EM></span>
- <span class="comment"><EM>-- There is an overloaded Refresh_Without_Update for Pads.</EM></span>
- <span class="comment"><EM>-- The Inline pragma appears there</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_64">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1230_14" HREF="terminal_interface-curses__adb.htm#ref_1091_14">Redraw</A></span> (<span class="symbol"><A NAME="ref_1230_22" HREF="terminal_interface-curses__adb.htm#ref_1091_22">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_refresh.3x.html">redrawwin()</A></EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_65">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1234_14" HREF="terminal_interface-curses__adb.htm#ref_1101_14">Redraw</A></span> (<span class="symbol"><A NAME="ref_1234_22" HREF="terminal_interface-curses__adb.htm#ref_1102_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1235_22" HREF="terminal_interface-curses__adb.htm#ref_1103_7">Begin_Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1236_22" HREF="terminal_interface-curses__adb.htm#ref_1104_7">Line_Count</A></span> : Positive);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_refresh.3x.html">wredrawln()</A></EM></span>
+ <span class="comment"><em>-- This has no pendant in C. There you've to look into the WINDOWS</em></span>
+ <span class="comment"><em>-- structure to get the value. Bad practice, not repeated in Ada.</em></span>
+
+ <b>type</b> <span class="symbol"><a name="ref_1091_9">Half_Delay_Amount</a></span> <b>is</b> <b>range</b> 1 .. 255;
+
+ <span class="comment"><em>-- <A NAME="AFU_47">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1094_14" href="terminal_interface-curses__adb.htm#ref_858_14">Half_Delay</a></span> (<span class="symbol"><a name="ref_1094_26" href="terminal_interface-curses__adb.htm#ref_858_26">Amount</a></span> : <a href="terminal_interface-curses__ads.htm#ref_1091_9">Half_Delay_Amount</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_inopts.3x.html">halfdelay()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1094_14">Half_Delay</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_48">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1099_14" href="terminal_interface-curses__adb.htm#ref_868_14">Set_Flush_On_Interrupt_Mode</a></span>
+ (<span class="symbol"><a name="ref_1100_7" href="terminal_interface-curses__adb.htm#ref_869_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1101_7" href="terminal_interface-curses__adb.htm#ref_870_7">Mode</a></span> : Boolean := True);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_inopts.3x.html">intrflush()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1099_14">Set_Flush_On_Interrupt_Mode</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_49">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1106_14" href="terminal_interface-curses__adb.htm#ref_880_14">Set_Queue_Interrupt_Mode</a></span>
+ (<span class="symbol"><a name="ref_1107_7" href="terminal_interface-curses__adb.htm#ref_881_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1108_7" href="terminal_interface-curses__adb.htm#ref_882_7">Flush</a></span> : Boolean := True);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_inopts.3x.html">qiflush()</A></em></span>
+ <span class="comment"><em>-- AKA: noqiflush()</em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1106_14">Set_Queue_Interrupt_Mode</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_50">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1114_14" href="terminal_interface-curses__adb.htm#ref_899_14">Set_NoDelay_Mode</a></span>
+ (<span class="symbol"><a name="ref_1115_7" href="terminal_interface-curses__adb.htm#ref_900_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1116_7" href="terminal_interface-curses__adb.htm#ref_901_7">Mode</a></span> : Boolean := False);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_inopts.3x.html">nodelay()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1114_14">Set_NoDelay_Mode</a>);
+
+ <b>type</b> <span class="symbol"><a name="ref_1120_9">Timeout_Mode</a></span> <b>is</b> (<span class="symbol"><a name="ref_1120_26">Blocking</a></span>, <span class="symbol"><a name="ref_1120_36">Non_Blocking</a></span>, <span class="symbol"><a name="ref_1120_50">Delayed</a></span>);
+
+ <span class="comment"><em>-- <A NAME="AFU_51">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1123_14" href="terminal_interface-curses__adb.htm#ref_911_14">Set_Timeout_Mode</a></span> (<span class="symbol"><a name="ref_1123_32" href="terminal_interface-curses__adb.htm#ref_911_32">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1124_32" href="terminal_interface-curses__adb.htm#ref_912_32">Mode</a></span> : <a href="terminal_interface-curses__ads.htm#ref_1120_9">Timeout_Mode</a>;
+ <span class="symbol"><a name="ref_1125_32" href="terminal_interface-curses__adb.htm#ref_913_32">Amount</a></span> : Natural); <span class="comment"><em>-- in Milliseconds</em></span>
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_inopts.3x.html">wtimeout()</A></em></span>
+ <span class="comment"><em>-- AKA: timeout()</em></span>
+ <span class="comment"><em>-- Instead of overloading the semantic of the sign of amount, we</em></span>
+ <span class="comment"><em>-- introduce the Timeout_Mode parameter. This should improve</em></span>
+ <span class="comment"><em>-- readability. For Blocking and Non_Blocking, the Amount is not</em></span>
+ <span class="comment"><em>-- evaluated.</em></span>
+ <span class="comment"><em>-- We do not inline this procedure.</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_52">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1135_14" href="terminal_interface-curses__adb.htm#ref_932_14">Set_Escape_Timer_Mode</a></span>
+ (<span class="symbol"><a name="ref_1136_7" href="terminal_interface-curses__adb.htm#ref_933_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1137_7" href="terminal_interface-curses__adb.htm#ref_934_7">Timer_Off</a></span> : Boolean := False);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_inopts.3x.html">notimeout()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1135_14">Set_Escape_Timer_Mode</a>);
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_53">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1146_14" href="terminal_interface-curses__adb.htm#ref_947_14">Set_NL_Mode</a></span> (<span class="symbol"><a name="ref_1146_27" href="terminal_interface-curses__adb.htm#ref_947_27">SwitchOn</a></span> : Boolean := True);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_outopts.3x.html">nl()</A></em></span>
+ <span class="comment"><em>-- AKA: nonl()</em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1146_14">Set_NL_Mode</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_54">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1152_14" href="terminal_interface-curses__adb.htm#ref_966_14">Clear_On_Next_Update</a></span>
+ (<span class="symbol"><a name="ref_1153_7" href="terminal_interface-curses__adb.htm#ref_967_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1154_7" href="terminal_interface-curses__adb.htm#ref_968_7">Do_Clear</a></span> : Boolean := True);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_outopts.3x.html">clearok()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1152_14">Clear_On_Next_Update</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_55">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1159_14" href="terminal_interface-curses__adb.htm#ref_978_14">Use_Insert_Delete_Line</a></span>
+ (<span class="symbol"><a name="ref_1160_7" href="terminal_interface-curses__adb.htm#ref_979_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1161_7" href="terminal_interface-curses__adb.htm#ref_980_7">Do_Idl</a></span> : Boolean := True);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_outopts.3x.html">idlok()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1159_14">Use_Insert_Delete_Line</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_56">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1166_14" href="terminal_interface-curses__adb.htm#ref_990_14">Use_Insert_Delete_Character</a></span>
+ (<span class="symbol"><a name="ref_1167_7" href="terminal_interface-curses__adb.htm#ref_991_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1168_7" href="terminal_interface-curses__adb.htm#ref_992_7">Do_Idc</a></span> : Boolean := True);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_outopts.3x.html">idcok()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1166_14">Use_Insert_Delete_Character</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_57">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1173_14" href="terminal_interface-curses__adb.htm#ref_1000_14">Leave_Cursor_After_Update</a></span>
+ (<span class="symbol"><a name="ref_1174_7" href="terminal_interface-curses__adb.htm#ref_1001_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1175_7" href="terminal_interface-curses__adb.htm#ref_1002_7">Do_Leave</a></span> : Boolean := True);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_outopts.3x.html">leaveok()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1173_14">Leave_Cursor_After_Update</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_58">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1180_14" href="terminal_interface-curses__adb.htm#ref_1012_14">Immediate_Update_Mode</a></span>
+ (<span class="symbol"><a name="ref_1181_7" href="terminal_interface-curses__adb.htm#ref_1013_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1182_7" href="terminal_interface-curses__adb.htm#ref_1014_7">Mode</a></span> : Boolean := False);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_outopts.3x.html">immedok()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1180_14">Immediate_Update_Mode</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_59">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1187_14" href="terminal_interface-curses__adb.htm#ref_1022_14">Allow_Scrolling</a></span>
+ (<span class="symbol"><a name="ref_1188_7" href="terminal_interface-curses__adb.htm#ref_1023_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1189_7" href="terminal_interface-curses__adb.htm#ref_1024_7">Mode</a></span> : Boolean := False);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_outopts.3x.html">scrollok()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1187_14">Allow_Scrolling</a>);
+
+ <b>function</b> <span class="symbol"><a name="ref_1193_13" href="terminal_interface-curses__adb.htm#ref_1034_13">Scrolling_Allowed</a></span> (<span class="symbol"><a name="ref_1193_32" href="terminal_interface-curses__adb.htm#ref_1034_32">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>) <b>return</b> Boolean;
+ <span class="comment"><em>-- There is no such function in the C interface.</em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1193_13">Scrolling_Allowed</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_60">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1198_14" href="terminal_interface-curses__adb.htm#ref_1043_14">Set_Scroll_Region</a></span>
+ (<span class="symbol"><a name="ref_1199_7" href="terminal_interface-curses__adb.htm#ref_1044_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1200_7" href="terminal_interface-curses__adb.htm#ref_1045_7">Top_Line</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1201_7" href="terminal_interface-curses__adb.htm#ref_1046_7">Bottom_Line</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_outopts.3x.html">wsetscrreg()</A></em></span>
+ <span class="comment"><em>-- AKA: setscrreg()</em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1198_14">Set_Scroll_Region</a>);
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/curs_refresh.3x.html">curs_refresh.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_61">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1211_14" href="terminal_interface-curses__adb.htm#ref_1060_14">Update_Screen</a></span>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_refresh.3x.html">doupdate()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1211_14">Update_Screen</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_62">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1216_14" href="terminal_interface-curses__adb.htm#ref_1070_14">Refresh</a></span> (<span class="symbol"><a name="ref_1216_23" href="terminal_interface-curses__adb.htm#ref_1070_23">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_refresh.3x.html">wrefresh()</A></em></span>
+ <span class="comment"><em>-- There is an overloaded Refresh for Pads.</em></span>
+ <span class="comment"><em>-- The Inline pragma appears there</em></span>
+ <span class="comment"><em>-- AKA: refresh()</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_63">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1223_14" href="terminal_interface-curses__adb.htm#ref_1080_14">Refresh_Without_Update</a></span>
+ (<span class="symbol"><a name="ref_1224_7" href="terminal_interface-curses__adb.htm#ref_1081_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_refresh.3x.html">wnoutrefresh()</A></em></span>
+ <span class="comment"><em>-- There is an overloaded Refresh_Without_Update for Pads.</em></span>
+ <span class="comment"><em>-- The Inline pragma appears there</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_64">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1230_14" href="terminal_interface-curses__adb.htm#ref_1091_14">Redraw</a></span> (<span class="symbol"><a name="ref_1230_22" href="terminal_interface-curses__adb.htm#ref_1091_22">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_refresh.3x.html">redrawwin()</A></em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_65">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1234_14" href="terminal_interface-curses__adb.htm#ref_1101_14">Redraw</a></span> (<span class="symbol"><a name="ref_1234_22" href="terminal_interface-curses__adb.htm#ref_1102_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1235_22" href="terminal_interface-curses__adb.htm#ref_1103_7">Begin_Line</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1236_22" href="terminal_interface-curses__adb.htm#ref_1104_7">Line_Count</a></span> : Positive);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_refresh.3x.html">wredrawln()</A></em></span>
<b>pragma</b> Inline (Redraw);
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/curs_clear.3x.html">curs_clear.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_66">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1245_14" HREF="terminal_interface-curses__adb.htm#ref_1119_14">Erase</A></span> (<span class="symbol"><A NAME="ref_1245_21" HREF="terminal_interface-curses__adb.htm#ref_1119_21">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_clear.3x.html">werase()</A></EM></span>
- <span class="comment"><EM>-- AKA: erase()</EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1245_14">Erase</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_67">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1251_14" HREF="terminal_interface-curses__adb.htm#ref_1129_14">Clear</A></span>
- (<span class="symbol"><A NAME="ref_1252_7" HREF="terminal_interface-curses__adb.htm#ref_1129_21">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_clear.3x.html">wclear()</A></EM></span>
- <span class="comment"><EM>-- AKA: clear()</EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1251_14">Clear</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_68">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1258_14" HREF="terminal_interface-curses__adb.htm#ref_1139_14">Clear_To_End_Of_Screen</A></span>
- (<span class="symbol"><A NAME="ref_1259_7" HREF="terminal_interface-curses__adb.htm#ref_1139_38">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_clear.3x.html">wclrtobot()</A></EM></span>
- <span class="comment"><EM>-- AKA: clrtobot()</EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1258_14">Clear_To_End_Of_Screen</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_69">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1265_14" HREF="terminal_interface-curses__adb.htm#ref_1149_14">Clear_To_End_Of_Line</A></span>
- (<span class="symbol"><A NAME="ref_1266_7" HREF="terminal_interface-curses__adb.htm#ref_1149_36">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_clear.3x.html">wclrtoeol()</A></EM></span>
- <span class="comment"><EM>-- AKA: clrtoeol()</EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1265_14">Clear_To_End_Of_Line</A>);
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/curs_bkgd.3x.html">curs_bkgd.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_70">|</A></EM></span>
- <span class="comment"><EM>-- TODO: we could have Set_Background(Window; Character_Attribute_Set)</EM></span>
- <span class="comment"><EM>-- because in C it is common to see bkgdset(A_BOLD) or</EM></span>
- <span class="comment"><EM>-- bkgdset(COLOR_PAIR(n))</EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1279_14" HREF="terminal_interface-curses__adb.htm#ref_1159_14">Set_Background</A></span>
- (<span class="symbol"><A NAME="ref_1280_7" HREF="terminal_interface-curses__adb.htm#ref_1160_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1281_7" HREF="terminal_interface-curses__adb.htm#ref_1161_7">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_bkgd.3x.html">wbkgdset()</A></EM></span>
- <span class="comment"><EM>-- AKA: bkgdset()</EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1279_14">Set_Background</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_71">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1287_14" HREF="terminal_interface-curses__adb.htm#ref_1169_14">Change_Background</A></span>
- (<span class="symbol"><A NAME="ref_1288_7" HREF="terminal_interface-curses__adb.htm#ref_1170_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1289_7" HREF="terminal_interface-curses__adb.htm#ref_1171_7">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_bkgd.3x.html">wbkgd()</A></EM></span>
- <span class="comment"><EM>-- AKA: bkgd()</EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1287_14">Change_Background</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_72">|</A></EM></span>
- <span class="comment"><EM>-- ? wbkgdget is not listed in curs_bkgd, getbkgd is thpough.</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_1296_13" HREF="terminal_interface-curses__adb.htm#ref_1182_13">Get_Background</A></span> (<span class="symbol"><A NAME="ref_1296_29" HREF="terminal_interface-curses__adb.htm#ref_1182_29">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>)
- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_bkgd.3x.html">wbkgdget()</A></EM></span>
- <span class="comment"><EM>-- AKA: bkgdget()</EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1296_13">Get_Background</A>);
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_73">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1307_14" HREF="terminal_interface-curses__adb.htm#ref_1219_14">Untouch</A></span> (<span class="symbol"><A NAME="ref_1307_23" HREF="terminal_interface-curses__adb.htm#ref_1219_23">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_touch.3x.html">untouchwin()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1307_14">Untouch</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_74">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1312_14" HREF="terminal_interface-curses__adb.htm#ref_1209_14">Touch</A></span> (<span class="symbol"><A NAME="ref_1312_21" HREF="terminal_interface-curses__adb.htm#ref_1209_21">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_touch.3x.html">touchwin()</A></EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_75">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1316_14" HREF="terminal_interface-curses__adb.htm#ref_1229_14">Touch</A></span> (<span class="symbol"><A NAME="ref_1316_21" HREF="terminal_interface-curses__adb.htm#ref_1229_21">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1317_21" HREF="terminal_interface-curses__adb.htm#ref_1230_21">Start</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1318_21" HREF="terminal_interface-curses__adb.htm#ref_1231_21">Count</A></span> : Positive);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_touch.3x.html">touchline()</A></EM></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/curs_clear.3x.html">curs_clear.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_66">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1245_14" href="terminal_interface-curses__adb.htm#ref_1119_14">Erase</a></span> (<span class="symbol"><a name="ref_1245_21" href="terminal_interface-curses__adb.htm#ref_1119_21">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_clear.3x.html">werase()</A></em></span>
+ <span class="comment"><em>-- AKA: erase()</em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1245_14">Erase</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_67">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1251_14" href="terminal_interface-curses__adb.htm#ref_1129_14">Clear</a></span>
+ (<span class="symbol"><a name="ref_1252_7" href="terminal_interface-curses__adb.htm#ref_1129_21">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_clear.3x.html">wclear()</A></em></span>
+ <span class="comment"><em>-- AKA: clear()</em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1251_14">Clear</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_68">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1258_14" href="terminal_interface-curses__adb.htm#ref_1139_14">Clear_To_End_Of_Screen</a></span>
+ (<span class="symbol"><a name="ref_1259_7" href="terminal_interface-curses__adb.htm#ref_1139_38">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_clear.3x.html">wclrtobot()</A></em></span>
+ <span class="comment"><em>-- AKA: clrtobot()</em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1258_14">Clear_To_End_Of_Screen</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_69">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1265_14" href="terminal_interface-curses__adb.htm#ref_1149_14">Clear_To_End_Of_Line</a></span>
+ (<span class="symbol"><a name="ref_1266_7" href="terminal_interface-curses__adb.htm#ref_1149_36">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_clear.3x.html">wclrtoeol()</A></em></span>
+ <span class="comment"><em>-- AKA: clrtoeol()</em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1265_14">Clear_To_End_Of_Line</a>);
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/curs_bkgd.3x.html">curs_bkgd.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_70">|</A></em></span>
+ <span class="comment"><em>-- TODO: we could have Set_Background(Window; Character_Attribute_Set)</em></span>
+ <span class="comment"><em>-- because in C it is common to see bkgdset(A_BOLD) or</em></span>
+ <span class="comment"><em>-- bkgdset(COLOR_PAIR(n))</em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1279_14" href="terminal_interface-curses__adb.htm#ref_1159_14">Set_Background</a></span>
+ (<span class="symbol"><a name="ref_1280_7" href="terminal_interface-curses__adb.htm#ref_1160_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1281_7" href="terminal_interface-curses__adb.htm#ref_1161_7">Ch</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_bkgd.3x.html">wbkgdset()</A></em></span>
+ <span class="comment"><em>-- AKA: bkgdset()</em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1279_14">Set_Background</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_71">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1287_14" href="terminal_interface-curses__adb.htm#ref_1169_14">Change_Background</a></span>
+ (<span class="symbol"><a name="ref_1288_7" href="terminal_interface-curses__adb.htm#ref_1170_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1289_7" href="terminal_interface-curses__adb.htm#ref_1171_7">Ch</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_bkgd.3x.html">wbkgd()</A></em></span>
+ <span class="comment"><em>-- AKA: bkgd()</em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1287_14">Change_Background</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_72">|</A></em></span>
+ <span class="comment"><em>-- ? wbkgdget is not listed in curs_bkgd, getbkgd is thpough.</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_1296_13" href="terminal_interface-curses__adb.htm#ref_1182_13">Get_Background</a></span> (<span class="symbol"><a name="ref_1296_29" href="terminal_interface-curses__adb.htm#ref_1182_29">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>)
+ <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_bkgd.3x.html">wbkgdget()</A></em></span>
+ <span class="comment"><em>-- AKA: bkgdget()</em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1296_13">Get_Background</a>);
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_73">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1307_14" href="terminal_interface-curses__adb.htm#ref_1219_14">Untouch</a></span> (<span class="symbol"><a name="ref_1307_23" href="terminal_interface-curses__adb.htm#ref_1219_23">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_touch.3x.html">untouchwin()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1307_14">Untouch</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_74">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1312_14" href="terminal_interface-curses__adb.htm#ref_1209_14">Touch</a></span> (<span class="symbol"><a name="ref_1312_21" href="terminal_interface-curses__adb.htm#ref_1209_21">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_touch.3x.html">touchwin()</A></em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_75">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1316_14" href="terminal_interface-curses__adb.htm#ref_1229_14">Touch</a></span> (<span class="symbol"><a name="ref_1316_21" href="terminal_interface-curses__adb.htm#ref_1229_21">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1317_21" href="terminal_interface-curses__adb.htm#ref_1230_21">Start</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1318_21" href="terminal_interface-curses__adb.htm#ref_1231_21">Count</a></span> : Positive);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_touch.3x.html">touchline()</A></em></span>
<b>pragma</b> Inline (Touch);
- <span class="comment"><EM>-- <A NAME="AFU_76">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1323_14" HREF="terminal_interface-curses__adb.htm#ref_1191_14">Change_Lines_Status</A></span> (<span class="symbol"><A NAME="ref_1323_35" HREF="terminal_interface-curses__adb.htm#ref_1191_35">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1324_35" HREF="terminal_interface-curses__adb.htm#ref_1192_35">Start</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1325_35" HREF="terminal_interface-curses__adb.htm#ref_1193_35">Count</A></span> : Positive;
- <span class="symbol"><A NAME="ref_1326_35" HREF="terminal_interface-curses__adb.htm#ref_1194_35">State</A></span> : Boolean);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_touch.3x.html">wtouchln()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1323_14">Change_Lines_Status</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_77">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_1331_13" HREF="terminal_interface-curses__adb.htm#ref_1237_13">Is_Touched</A></span> (<span class="symbol"><A NAME="ref_1331_25" HREF="terminal_interface-curses__adb.htm#ref_1238_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1332_25" HREF="terminal_interface-curses__adb.htm#ref_1239_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>) <b>return</b> Boolean;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_touch.3x.html">is_linetouched()</A></EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_78">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_1336_13" HREF="terminal_interface-curses__adb.htm#ref_1251_13">Is_Touched</A></span> (<span class="symbol"><A NAME="ref_1336_25" HREF="terminal_interface-curses__adb.htm#ref_1252_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>) <b>return</b> Boolean;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_touch.3x.html">is_wintouched()</A></EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_76">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1323_14" href="terminal_interface-curses__adb.htm#ref_1191_14">Change_Lines_Status</a></span> (<span class="symbol"><a name="ref_1323_35" href="terminal_interface-curses__adb.htm#ref_1191_35">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1324_35" href="terminal_interface-curses__adb.htm#ref_1192_35">Start</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1325_35" href="terminal_interface-curses__adb.htm#ref_1193_35">Count</a></span> : Positive;
+ <span class="symbol"><a name="ref_1326_35" href="terminal_interface-curses__adb.htm#ref_1194_35">State</a></span> : Boolean);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_touch.3x.html">wtouchln()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1323_14">Change_Lines_Status</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_77">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_1331_13" href="terminal_interface-curses__adb.htm#ref_1237_13">Is_Touched</a></span> (<span class="symbol"><a name="ref_1331_25" href="terminal_interface-curses__adb.htm#ref_1238_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1332_25" href="terminal_interface-curses__adb.htm#ref_1239_7">Line</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>) <b>return</b> Boolean;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_touch.3x.html">is_linetouched()</A></em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_78">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_1336_13" href="terminal_interface-curses__adb.htm#ref_1251_13">Is_Touched</a></span> (<span class="symbol"><a name="ref_1336_25" href="terminal_interface-curses__adb.htm#ref_1252_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>) <b>return</b> Boolean;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_touch.3x.html">is_wintouched()</A></em></span>
<b>pragma</b> Inline (Is_Touched);
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/curs_overlay.3x.html">curs_overlay.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_79">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1345_14" HREF="terminal_interface-curses__adb.htm#ref_1264_14">Copy</A></span>
- (<span class="symbol"><A NAME="ref_1346_7" HREF="terminal_interface-curses__adb.htm#ref_1265_7">Source_Window</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_1347_7" HREF="terminal_interface-curses__adb.htm#ref_1266_7">Destination_Window</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_1348_7" HREF="terminal_interface-curses__adb.htm#ref_1267_7">Source_Top_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1349_7" HREF="terminal_interface-curses__adb.htm#ref_1268_7">Source_Left_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_1350_7" HREF="terminal_interface-curses__adb.htm#ref_1269_7">Destination_Top_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1351_7" HREF="terminal_interface-curses__adb.htm#ref_1270_7">Destination_Left_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_1352_7" HREF="terminal_interface-curses__adb.htm#ref_1271_7">Destination_Bottom_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1353_7" HREF="terminal_interface-curses__adb.htm#ref_1272_7">Destination_Right_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_1354_7" HREF="terminal_interface-curses__adb.htm#ref_1273_7">Non_Destructive_Mode</A></span> : Boolean := True);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_overlay.3x.html">copywin()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1345_14">Copy</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_80">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1359_14" HREF="terminal_interface-curses__adb.htm#ref_1301_14">Overwrite</A></span> (<span class="symbol"><A NAME="ref_1359_25" HREF="terminal_interface-curses__adb.htm#ref_1302_7">Source_Window</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_1360_25" HREF="terminal_interface-curses__adb.htm#ref_1303_7">Destination_Window</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_overlay.3x.html">overwrite()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1359_14">Overwrite</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_81">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1365_14" HREF="terminal_interface-curses__adb.htm#ref_1313_14">Overlay</A></span> (<span class="symbol"><A NAME="ref_1365_23" HREF="terminal_interface-curses__adb.htm#ref_1314_7">Source_Window</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_1366_23" HREF="terminal_interface-curses__adb.htm#ref_1315_7">Destination_Window</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_overlay.3x.html">overlay()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1365_14">Overlay</A>);
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/curs_deleteln.3x.html">curs_deleteln.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_82">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1375_14" HREF="terminal_interface-curses__adb.htm#ref_1326_14">Insert_Delete_Lines</A></span>
- (<span class="symbol"><A NAME="ref_1376_7" HREF="terminal_interface-curses__adb.htm#ref_1327_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1377_7" HREF="terminal_interface-curses__adb.htm#ref_1328_7">Lines</A></span> : Integer := 1); <span class="comment"><EM>-- default is to insert one line above</EM></span>
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_deleteln.3x.html">winsdelln()</A></EM></span>
- <span class="comment"><EM>-- AKA: insdelln()</EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1375_14">Insert_Delete_Lines</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_83">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1383_14" HREF="terminal_interface-curses__adb.htm#ref_1338_14">Delete_Line</A></span> (<span class="symbol"><A NAME="ref_1383_27" HREF="terminal_interface-curses__adb.htm#ref_1338_27">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_deleteln.3x.html">wdeleteln()</A></EM></span>
- <span class="comment"><EM>-- AKA: deleteln()</EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1383_14">Delete_Line</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_84">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1389_14" HREF="terminal_interface-curses__adb.htm#ref_1344_14">Insert_Line</A></span> (<span class="symbol"><A NAME="ref_1389_27" HREF="terminal_interface-curses__adb.htm#ref_1344_27">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_deleteln.3x.html">winsertln()</A></EM></span>
- <span class="comment"><EM>-- AKA: insertln()</EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1389_14">Insert_Line</A>);
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/curs_getyx.3x.html">curs_getyx.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_85">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1399_14" HREF="terminal_interface-curses__adb.htm#ref_1351_14">Get_Size</A></span>
- (<span class="symbol"><A NAME="ref_1400_7" HREF="terminal_interface-curses__adb.htm#ref_1352_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1401_7" HREF="terminal_interface-curses__adb.htm#ref_1353_7">Number_Of_Lines</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</A>;
- <span class="symbol"><A NAME="ref_1402_7" HREF="terminal_interface-curses__adb.htm#ref_1354_7">Number_Of_Columns</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_getyx.3x.html">getmaxyx()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1399_14">Get_Size</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_86">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1407_14" HREF="terminal_interface-curses__adb.htm#ref_1369_14">Get_Window_Position</A></span>
- (<span class="symbol"><A NAME="ref_1408_7" HREF="terminal_interface-curses__adb.htm#ref_1370_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1409_7" HREF="terminal_interface-curses__adb.htm#ref_1371_7">Top_Left_Line</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1410_7" HREF="terminal_interface-curses__adb.htm#ref_1372_7">Top_Left_Column</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_getyx.3x.html">getbegyx()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1407_14">Get_Window_Position</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_87">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1415_14" HREF="terminal_interface-curses__adb.htm#ref_1387_14">Get_Cursor_Position</A></span>
- (<span class="symbol"><A NAME="ref_1416_7" HREF="terminal_interface-curses__adb.htm#ref_1388_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1417_7" HREF="terminal_interface-curses__adb.htm#ref_1389_7">Line</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1418_7" HREF="terminal_interface-curses__adb.htm#ref_1390_7">Column</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_getyx.3x.html">getyx()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1415_14">Get_Cursor_Position</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_88">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1423_14" HREF="terminal_interface-curses__adb.htm#ref_1405_14">Get_Origin_Relative_To_Parent</A></span>
- (<span class="symbol"><A NAME="ref_1424_7" HREF="terminal_interface-curses__adb.htm#ref_1406_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_1425_7" HREF="terminal_interface-curses__adb.htm#ref_1407_7">Top_Left_Line</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1426_7" HREF="terminal_interface-curses__adb.htm#ref_1408_7">Top_Left_Column</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_1427_7" HREF="terminal_interface-curses__adb.htm#ref_1409_7">Is_Not_A_Subwindow</A></span> : <b>out</b> Boolean);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_getyx.3x.html">getparyx()</A></EM></span>
- <span class="comment"><EM>-- Instead of placing -1 in the coordinates as return, we use a Boolean</EM></span>
- <span class="comment"><EM>-- to return the info that the window has no parent.</EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1423_14">Get_Origin_Relative_To_Parent</A>);
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/curs_pad.3x.html">curs_pad.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_89">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_1438_13" HREF="terminal_interface-curses__adb.htm#ref_1431_13">New_Pad</A></span> (<span class="symbol"><A NAME="ref_1438_22" HREF="terminal_interface-curses__adb.htm#ref_1431_22">Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</A>;
- <span class="symbol"><A NAME="ref_1439_22" HREF="terminal_interface-curses__adb.htm#ref_1432_22">Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_pad.3x.html">newpad()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1438_13">New_Pad</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_90">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_1444_13" HREF="terminal_interface-curses__adb.htm#ref_1446_13">Sub_Pad</A></span>
- (<span class="symbol"><A NAME="ref_1445_7" HREF="terminal_interface-curses__adb.htm#ref_1447_7">Pad</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_1446_7" HREF="terminal_interface-curses__adb.htm#ref_1448_7">Number_Of_Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</A>;
- <span class="symbol"><A NAME="ref_1447_7" HREF="terminal_interface-curses__adb.htm#ref_1449_7">Number_Of_Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</A>;
- <span class="symbol"><A NAME="ref_1448_7" HREF="terminal_interface-curses__adb.htm#ref_1450_7">First_Line_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1449_7" HREF="terminal_interface-curses__adb.htm#ref_1451_7">First_Column_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_pad.3x.html">subpad()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1444_13">Sub_Pad</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_91">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1454_14" HREF="terminal_interface-curses__adb.htm#ref_1474_14">Refresh</A></span>
- (<span class="symbol"><A NAME="ref_1455_7" HREF="terminal_interface-curses__adb.htm#ref_1475_7">Pad</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_1456_7" HREF="terminal_interface-curses__adb.htm#ref_1476_7">Source_Top_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1457_7" HREF="terminal_interface-curses__adb.htm#ref_1477_7">Source_Left_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_1458_7" HREF="terminal_interface-curses__adb.htm#ref_1478_7">Destination_Top_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1459_7" HREF="terminal_interface-curses__adb.htm#ref_1479_7">Destination_Left_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_1460_7" HREF="terminal_interface-curses__adb.htm#ref_1480_7">Destination_Bottom_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1461_7" HREF="terminal_interface-curses__adb.htm#ref_1481_7">Destination_Right_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_pad.3x.html">prefresh()</A></EM></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/curs_overlay.3x.html">curs_overlay.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_79">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1345_14" href="terminal_interface-curses__adb.htm#ref_1264_14">Copy</a></span>
+ (<span class="symbol"><a name="ref_1346_7" href="terminal_interface-curses__adb.htm#ref_1265_7">Source_Window</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_1347_7" href="terminal_interface-curses__adb.htm#ref_1266_7">Destination_Window</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_1348_7" href="terminal_interface-curses__adb.htm#ref_1267_7">Source_Top_Row</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1349_7" href="terminal_interface-curses__adb.htm#ref_1268_7">Source_Left_Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_1350_7" href="terminal_interface-curses__adb.htm#ref_1269_7">Destination_Top_Row</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1351_7" href="terminal_interface-curses__adb.htm#ref_1270_7">Destination_Left_Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_1352_7" href="terminal_interface-curses__adb.htm#ref_1271_7">Destination_Bottom_Row</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1353_7" href="terminal_interface-curses__adb.htm#ref_1272_7">Destination_Right_Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_1354_7" href="terminal_interface-curses__adb.htm#ref_1273_7">Non_Destructive_Mode</a></span> : Boolean := True);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_overlay.3x.html">copywin()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1345_14">Copy</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_80">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1359_14" href="terminal_interface-curses__adb.htm#ref_1301_14">Overwrite</a></span> (<span class="symbol"><a name="ref_1359_25" href="terminal_interface-curses__adb.htm#ref_1302_7">Source_Window</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_1360_25" href="terminal_interface-curses__adb.htm#ref_1303_7">Destination_Window</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_overlay.3x.html">overwrite()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1359_14">Overwrite</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_81">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1365_14" href="terminal_interface-curses__adb.htm#ref_1313_14">Overlay</a></span> (<span class="symbol"><a name="ref_1365_23" href="terminal_interface-curses__adb.htm#ref_1314_7">Source_Window</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_1366_23" href="terminal_interface-curses__adb.htm#ref_1315_7">Destination_Window</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_overlay.3x.html">overlay()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1365_14">Overlay</a>);
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/curs_deleteln.3x.html">curs_deleteln.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_82">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1375_14" href="terminal_interface-curses__adb.htm#ref_1326_14">Insert_Delete_Lines</a></span>
+ (<span class="symbol"><a name="ref_1376_7" href="terminal_interface-curses__adb.htm#ref_1327_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1377_7" href="terminal_interface-curses__adb.htm#ref_1328_7">Lines</a></span> : Integer := 1); <span class="comment"><em>-- default is to insert one line above</em></span>
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_deleteln.3x.html">winsdelln()</A></em></span>
+ <span class="comment"><em>-- AKA: insdelln()</em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1375_14">Insert_Delete_Lines</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_83">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1383_14" href="terminal_interface-curses__adb.htm#ref_1338_14">Delete_Line</a></span> (<span class="symbol"><a name="ref_1383_27" href="terminal_interface-curses__adb.htm#ref_1338_27">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_deleteln.3x.html">wdeleteln()</A></em></span>
+ <span class="comment"><em>-- AKA: deleteln()</em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1383_14">Delete_Line</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_84">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1389_14" href="terminal_interface-curses__adb.htm#ref_1344_14">Insert_Line</a></span> (<span class="symbol"><a name="ref_1389_27" href="terminal_interface-curses__adb.htm#ref_1344_27">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_deleteln.3x.html">winsertln()</A></em></span>
+ <span class="comment"><em>-- AKA: insertln()</em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1389_14">Insert_Line</a>);
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/curs_getyx.3x.html">curs_getyx.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_85">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1399_14" href="terminal_interface-curses__adb.htm#ref_1351_14">Get_Size</a></span>
+ (<span class="symbol"><a name="ref_1400_7" href="terminal_interface-curses__adb.htm#ref_1352_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1401_7" href="terminal_interface-curses__adb.htm#ref_1353_7">Number_Of_Lines</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</a>;
+ <span class="symbol"><a name="ref_1402_7" href="terminal_interface-curses__adb.htm#ref_1354_7">Number_Of_Columns</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_getyx.3x.html">getmaxyx()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1399_14">Get_Size</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_86">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1407_14" href="terminal_interface-curses__adb.htm#ref_1369_14">Get_Window_Position</a></span>
+ (<span class="symbol"><a name="ref_1408_7" href="terminal_interface-curses__adb.htm#ref_1370_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1409_7" href="terminal_interface-curses__adb.htm#ref_1371_7">Top_Left_Line</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1410_7" href="terminal_interface-curses__adb.htm#ref_1372_7">Top_Left_Column</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_getyx.3x.html">getbegyx()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1407_14">Get_Window_Position</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_87">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1415_14" href="terminal_interface-curses__adb.htm#ref_1387_14">Get_Cursor_Position</a></span>
+ (<span class="symbol"><a name="ref_1416_7" href="terminal_interface-curses__adb.htm#ref_1388_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1417_7" href="terminal_interface-curses__adb.htm#ref_1389_7">Line</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1418_7" href="terminal_interface-curses__adb.htm#ref_1390_7">Column</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_getyx.3x.html">getyx()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1415_14">Get_Cursor_Position</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_88">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1423_14" href="terminal_interface-curses__adb.htm#ref_1405_14">Get_Origin_Relative_To_Parent</a></span>
+ (<span class="symbol"><a name="ref_1424_7" href="terminal_interface-curses__adb.htm#ref_1406_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_1425_7" href="terminal_interface-curses__adb.htm#ref_1407_7">Top_Left_Line</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1426_7" href="terminal_interface-curses__adb.htm#ref_1408_7">Top_Left_Column</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_1427_7" href="terminal_interface-curses__adb.htm#ref_1409_7">Is_Not_A_Subwindow</a></span> : <b>out</b> Boolean);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_getyx.3x.html">getparyx()</A></em></span>
+ <span class="comment"><em>-- Instead of placing -1 in the coordinates as return, we use a Boolean</em></span>
+ <span class="comment"><em>-- to return the info that the window has no parent.</em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1423_14">Get_Origin_Relative_To_Parent</a>);
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/curs_pad.3x.html">curs_pad.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_89">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_1438_13" href="terminal_interface-curses__adb.htm#ref_1431_13">New_Pad</a></span> (<span class="symbol"><a name="ref_1438_22" href="terminal_interface-curses__adb.htm#ref_1431_22">Lines</a></span> : <a href="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</a>;
+ <span class="symbol"><a name="ref_1439_22" href="terminal_interface-curses__adb.htm#ref_1432_22">Columns</a></span> : <a href="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_pad.3x.html">newpad()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1438_13">New_Pad</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_90">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_1444_13" href="terminal_interface-curses__adb.htm#ref_1446_13">Sub_Pad</a></span>
+ (<span class="symbol"><a name="ref_1445_7" href="terminal_interface-curses__adb.htm#ref_1447_7">Pad</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_1446_7" href="terminal_interface-curses__adb.htm#ref_1448_7">Number_Of_Lines</a></span> : <a href="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</a>;
+ <span class="symbol"><a name="ref_1447_7" href="terminal_interface-curses__adb.htm#ref_1449_7">Number_Of_Columns</a></span> : <a href="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</a>;
+ <span class="symbol"><a name="ref_1448_7" href="terminal_interface-curses__adb.htm#ref_1450_7">First_Line_Position</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1449_7" href="terminal_interface-curses__adb.htm#ref_1451_7">First_Column_Position</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_pad.3x.html">subpad()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1444_13">Sub_Pad</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_91">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1454_14" href="terminal_interface-curses__adb.htm#ref_1474_14">Refresh</a></span>
+ (<span class="symbol"><a name="ref_1455_7" href="terminal_interface-curses__adb.htm#ref_1475_7">Pad</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_1456_7" href="terminal_interface-curses__adb.htm#ref_1476_7">Source_Top_Row</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1457_7" href="terminal_interface-curses__adb.htm#ref_1477_7">Source_Left_Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_1458_7" href="terminal_interface-curses__adb.htm#ref_1478_7">Destination_Top_Row</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1459_7" href="terminal_interface-curses__adb.htm#ref_1479_7">Destination_Left_Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_1460_7" href="terminal_interface-curses__adb.htm#ref_1480_7">Destination_Bottom_Row</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1461_7" href="terminal_interface-curses__adb.htm#ref_1481_7">Destination_Right_Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_pad.3x.html">prefresh()</A></em></span>
<b>pragma</b> Inline (Refresh);
- <span class="comment"><EM>-- <A NAME="AFU_92">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1466_14" HREF="terminal_interface-curses__adb.htm#ref_1505_14">Refresh_Without_Update</A></span>
- (<span class="symbol"><A NAME="ref_1467_7" HREF="terminal_interface-curses__adb.htm#ref_1506_7">Pad</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_1468_7" HREF="terminal_interface-curses__adb.htm#ref_1507_7">Source_Top_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1469_7" HREF="terminal_interface-curses__adb.htm#ref_1508_7">Source_Left_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_1470_7" HREF="terminal_interface-curses__adb.htm#ref_1509_7">Destination_Top_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1471_7" HREF="terminal_interface-curses__adb.htm#ref_1510_7">Destination_Left_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_1472_7" HREF="terminal_interface-curses__adb.htm#ref_1511_7">Destination_Bottom_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1473_7" HREF="terminal_interface-curses__adb.htm#ref_1512_7">Destination_Right_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_pad.3x.html">pnoutrefresh()</A></EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_92">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1466_14" href="terminal_interface-curses__adb.htm#ref_1505_14">Refresh_Without_Update</a></span>
+ (<span class="symbol"><a name="ref_1467_7" href="terminal_interface-curses__adb.htm#ref_1506_7">Pad</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_1468_7" href="terminal_interface-curses__adb.htm#ref_1507_7">Source_Top_Row</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1469_7" href="terminal_interface-curses__adb.htm#ref_1508_7">Source_Left_Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_1470_7" href="terminal_interface-curses__adb.htm#ref_1509_7">Destination_Top_Row</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1471_7" href="terminal_interface-curses__adb.htm#ref_1510_7">Destination_Left_Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_1472_7" href="terminal_interface-curses__adb.htm#ref_1511_7">Destination_Bottom_Row</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1473_7" href="terminal_interface-curses__adb.htm#ref_1512_7">Destination_Right_Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_pad.3x.html">pnoutrefresh()</A></em></span>
<b>pragma</b> Inline (Refresh_Without_Update);
- <span class="comment"><EM>-- <A NAME="AFU_93">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1478_14" HREF="terminal_interface-curses__adb.htm#ref_1536_14">Add_Character_To_Pad_And_Echo_It</A></span>
- (<span class="symbol"><A NAME="ref_1479_7" HREF="terminal_interface-curses__adb.htm#ref_1537_7">Pad</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_1480_7" HREF="terminal_interface-curses__adb.htm#ref_1538_7">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_pad.3x.html">pechochar()</A></EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_93">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1478_14" href="terminal_interface-curses__adb.htm#ref_1536_14">Add_Character_To_Pad_And_Echo_It</a></span>
+ (<span class="symbol"><a name="ref_1479_7" href="terminal_interface-curses__adb.htm#ref_1537_7">Pad</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_1480_7" href="terminal_interface-curses__adb.htm#ref_1538_7">Ch</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_pad.3x.html">pechochar()</A></em></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1483_14" HREF="terminal_interface-curses__adb.htm#ref_1549_14">Add_Character_To_Pad_And_Echo_It</A></span>
- (<span class="symbol"><A NAME="ref_1484_7" HREF="terminal_interface-curses__adb.htm#ref_1550_7">Pad</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_1485_7" HREF="terminal_interface-curses__adb.htm#ref_1551_7">Ch</A></span> : Character);
+ <b>procedure</b> <span class="symbol"><a name="ref_1483_14" href="terminal_interface-curses__adb.htm#ref_1549_14">Add_Character_To_Pad_And_Echo_It</a></span>
+ (<span class="symbol"><a name="ref_1484_7" href="terminal_interface-curses__adb.htm#ref_1550_7">Pad</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_1485_7" href="terminal_interface-curses__adb.htm#ref_1551_7">Ch</a></span> : Character);
<b>pragma</b> Inline (Add_Character_To_Pad_And_Echo_It);
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/curs_scroll.3x.html">curs_scroll.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_94">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1493_14" HREF="terminal_interface-curses__adb.htm#ref_1561_14">Scroll</A></span> (<span class="symbol"><A NAME="ref_1493_22" HREF="terminal_interface-curses__adb.htm#ref_1561_22">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1494_22" HREF="terminal_interface-curses__adb.htm#ref_1562_22">Amount</A></span> : Integer := 1);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_scroll.3x.html">wscrl()</A></EM></span>
- <span class="comment"><EM>-- AKA: scroll()</EM></span>
- <span class="comment"><EM>-- AKA: scrl()</EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1493_14">Scroll</A>);
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/curs_delch.3x.html">curs_delch.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_95">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1505_14" HREF="terminal_interface-curses__adb.htm#ref_1574_14">Delete_Character</A></span> (<span class="symbol"><A NAME="ref_1505_32" HREF="terminal_interface-curses__adb.htm#ref_1574_32">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_delch.3x.html">wdelch()</A></EM></span>
- <span class="comment"><EM>-- AKA: delch()</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_96">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1510_14" HREF="terminal_interface-curses__adb.htm#ref_1584_14">Delete_Character</A></span>
- (<span class="symbol"><A NAME="ref_1511_7" HREF="terminal_interface-curses__adb.htm#ref_1585_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1512_7" HREF="terminal_interface-curses__adb.htm#ref_1586_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1513_7" HREF="terminal_interface-curses__adb.htm#ref_1587_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_delch.3x.html">mvwdelch()</A></EM></span>
- <span class="comment"><EM>-- AKA: mvdelch()</EM></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/curs_scroll.3x.html">curs_scroll.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_94">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1493_14" href="terminal_interface-curses__adb.htm#ref_1561_14">Scroll</a></span> (<span class="symbol"><a name="ref_1493_22" href="terminal_interface-curses__adb.htm#ref_1561_22">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1494_22" href="terminal_interface-curses__adb.htm#ref_1562_22">Amount</a></span> : Integer := 1);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_scroll.3x.html">wscrl()</A></em></span>
+ <span class="comment"><em>-- AKA: scroll()</em></span>
+ <span class="comment"><em>-- AKA: scrl()</em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1493_14">Scroll</a>);
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/curs_delch.3x.html">curs_delch.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_95">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1505_14" href="terminal_interface-curses__adb.htm#ref_1574_14">Delete_Character</a></span> (<span class="symbol"><a name="ref_1505_32" href="terminal_interface-curses__adb.htm#ref_1574_32">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_delch.3x.html">wdelch()</A></em></span>
+ <span class="comment"><em>-- AKA: delch()</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_96">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1510_14" href="terminal_interface-curses__adb.htm#ref_1584_14">Delete_Character</a></span>
+ (<span class="symbol"><a name="ref_1511_7" href="terminal_interface-curses__adb.htm#ref_1585_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1512_7" href="terminal_interface-curses__adb.htm#ref_1586_7">Line</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1513_7" href="terminal_interface-curses__adb.htm#ref_1587_7">Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_delch.3x.html">mvwdelch()</A></em></span>
+ <span class="comment"><em>-- AKA: mvdelch()</em></span>
<b>pragma</b> Inline (Delete_Character);
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/curs_inch.3x.html">curs_inch.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_97">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_1523_13" HREF="terminal_interface-curses__adb.htm#ref_1599_13">Peek</A></span> (<span class="symbol"><A NAME="ref_1523_19" HREF="terminal_interface-curses__adb.htm#ref_1599_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>)
- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>;
- <span class="comment"><EM>-- AKA: inch()</EM></span>
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_inch.3x.html">winch()</A></EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_98">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_1529_13" HREF="terminal_interface-curses__adb.htm#ref_1608_13">Peek</A></span>
- (<span class="symbol"><A NAME="ref_1530_7" HREF="terminal_interface-curses__adb.htm#ref_1609_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1531_7" HREF="terminal_interface-curses__adb.htm#ref_1610_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1532_7" HREF="terminal_interface-curses__adb.htm#ref_1611_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_inch.3x.html">mvwinch()</A></EM></span>
- <span class="comment"><EM>-- AKA: mvinch()</EM></span>
- <span class="comment"><EM>-- More Peek's follow, pragma Inline appears later.</EM></span>
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/curs_insch.3x.html">curs_insch.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_99">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1542_14" HREF="terminal_interface-curses__adb.htm#ref_1621_14">Insert</A></span> (<span class="symbol"><A NAME="ref_1542_22" HREF="terminal_interface-curses__adb.htm#ref_1621_22">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1543_22" HREF="terminal_interface-curses__adb.htm#ref_1622_22">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_insch.3x.html">winsch()</A></EM></span>
- <span class="comment"><EM>-- AKA: insch()</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_100">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1548_14" HREF="terminal_interface-curses__adb.htm#ref_1632_14">Insert</A></span> (<span class="symbol"><A NAME="ref_1548_22" HREF="terminal_interface-curses__adb.htm#ref_1633_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1549_22" HREF="terminal_interface-curses__adb.htm#ref_1634_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1550_22" HREF="terminal_interface-curses__adb.htm#ref_1635_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_1551_22" HREF="terminal_interface-curses__adb.htm#ref_1636_7">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_insch.3x.html">mvwinsch()</A></EM></span>
- <span class="comment"><EM>-- AKA: mvinsch()</EM></span>
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/curs_insstr.3x.html">curs_insstr.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_101">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1560_14" HREF="terminal_interface-curses__adb.htm#ref_1653_14">Insert</A></span> (<span class="symbol"><A NAME="ref_1560_22" HREF="terminal_interface-curses__adb.htm#ref_1653_22">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1561_22" HREF="terminal_interface-curses__adb.htm#ref_1654_22">Str</A></span> : String;
- <span class="symbol"><A NAME="ref_1562_22" HREF="terminal_interface-curses__adb.htm#ref_1655_22">Len</A></span> : Integer := -1);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_insstr.3x.html">winsnstr()</A></EM></span>
- <span class="comment"><EM>-- AKA: winsstr()</EM></span>
- <span class="comment"><EM>-- AKA: insnstr()</EM></span>
- <span class="comment"><EM>-- AKA: insstr()</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_102">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1569_14" HREF="terminal_interface-curses__adb.htm#ref_1671_14">Insert</A></span> (<span class="symbol"><A NAME="ref_1569_22" HREF="terminal_interface-curses__adb.htm#ref_1672_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1570_22" HREF="terminal_interface-curses__adb.htm#ref_1673_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1571_22" HREF="terminal_interface-curses__adb.htm#ref_1674_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_1572_22" HREF="terminal_interface-curses__adb.htm#ref_1675_7">Str</A></span> : String;
- <span class="symbol"><A NAME="ref_1573_22" HREF="terminal_interface-curses__adb.htm#ref_1676_7">Len</A></span> : Integer := -1);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_insstr.3x.html">mvwinsnstr()</A></EM></span>
- <span class="comment"><EM>-- AKA: mvwinsstr()</EM></span>
- <span class="comment"><EM>-- AKA: mvinsnstr()</EM></span>
- <span class="comment"><EM>-- AKA: mvinsstr()</EM></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/curs_inch.3x.html">curs_inch.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_97">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_1523_13" href="terminal_interface-curses__adb.htm#ref_1599_13">Peek</a></span> (<span class="symbol"><a name="ref_1523_19" href="terminal_interface-curses__adb.htm#ref_1599_19">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>)
+ <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>;
+ <span class="comment"><em>-- AKA: inch()</em></span>
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_inch.3x.html">winch()</A></em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_98">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_1529_13" href="terminal_interface-curses__adb.htm#ref_1608_13">Peek</a></span>
+ (<span class="symbol"><a name="ref_1530_7" href="terminal_interface-curses__adb.htm#ref_1609_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1531_7" href="terminal_interface-curses__adb.htm#ref_1610_7">Line</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1532_7" href="terminal_interface-curses__adb.htm#ref_1611_7">Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>) <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_inch.3x.html">mvwinch()</A></em></span>
+ <span class="comment"><em>-- AKA: mvinch()</em></span>
+ <span class="comment"><em>-- More Peek's follow, pragma Inline appears later.</em></span>
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/curs_insch.3x.html">curs_insch.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_99">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1542_14" href="terminal_interface-curses__adb.htm#ref_1621_14">Insert</a></span> (<span class="symbol"><a name="ref_1542_22" href="terminal_interface-curses__adb.htm#ref_1621_22">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1543_22" href="terminal_interface-curses__adb.htm#ref_1622_22">Ch</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_insch.3x.html">winsch()</A></em></span>
+ <span class="comment"><em>-- AKA: insch()</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_100">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1548_14" href="terminal_interface-curses__adb.htm#ref_1632_14">Insert</a></span> (<span class="symbol"><a name="ref_1548_22" href="terminal_interface-curses__adb.htm#ref_1633_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1549_22" href="terminal_interface-curses__adb.htm#ref_1634_7">Line</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1550_22" href="terminal_interface-curses__adb.htm#ref_1635_7">Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_1551_22" href="terminal_interface-curses__adb.htm#ref_1636_7">Ch</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_insch.3x.html">mvwinsch()</A></em></span>
+ <span class="comment"><em>-- AKA: mvinsch()</em></span>
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/curs_insstr.3x.html">curs_insstr.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_101">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1560_14" href="terminal_interface-curses__adb.htm#ref_1653_14">Insert</a></span> (<span class="symbol"><a name="ref_1560_22" href="terminal_interface-curses__adb.htm#ref_1653_22">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1561_22" href="terminal_interface-curses__adb.htm#ref_1654_22">Str</a></span> : String;
+ <span class="symbol"><a name="ref_1562_22" href="terminal_interface-curses__adb.htm#ref_1655_22">Len</a></span> : Integer := -1);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_insstr.3x.html">winsnstr()</A></em></span>
+ <span class="comment"><em>-- AKA: winsstr()</em></span>
+ <span class="comment"><em>-- AKA: insnstr()</em></span>
+ <span class="comment"><em>-- AKA: insstr()</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_102">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1569_14" href="terminal_interface-curses__adb.htm#ref_1671_14">Insert</a></span> (<span class="symbol"><a name="ref_1569_22" href="terminal_interface-curses__adb.htm#ref_1672_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1570_22" href="terminal_interface-curses__adb.htm#ref_1673_7">Line</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1571_22" href="terminal_interface-curses__adb.htm#ref_1674_7">Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_1572_22" href="terminal_interface-curses__adb.htm#ref_1675_7">Str</a></span> : String;
+ <span class="symbol"><a name="ref_1573_22" href="terminal_interface-curses__adb.htm#ref_1676_7">Len</a></span> : Integer := -1);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_insstr.3x.html">mvwinsnstr()</A></em></span>
+ <span class="comment"><em>-- AKA: mvwinsstr()</em></span>
+ <span class="comment"><em>-- AKA: mvinsnstr()</em></span>
+ <span class="comment"><em>-- AKA: mvinsstr()</em></span>
<b>pragma</b> Inline (Insert);
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/curs_instr.3x.html">curs_instr.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_103">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1585_14" HREF="terminal_interface-curses__adb.htm#ref_1696_14">Peek</A></span> (<span class="symbol"><A NAME="ref_1585_20" HREF="terminal_interface-curses__adb.htm#ref_1696_20">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1586_20" HREF="terminal_interface-curses__adb.htm#ref_1697_20">Str</A></span> : <b>out</b> String;
- <span class="symbol"><A NAME="ref_1587_20" HREF="terminal_interface-curses__adb.htm#ref_1698_20">Len</A></span> : Integer := -1);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_instr.3x.html">winnstr()</A></EM></span>
- <span class="comment"><EM>-- AKA: winstr()</EM></span>
- <span class="comment"><EM>-- AKA: innstr()</EM></span>
- <span class="comment"><EM>-- AKA: instr()</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_104">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1594_14" HREF="terminal_interface-curses__adb.htm#ref_1725_14">Peek</A></span> (<span class="symbol"><A NAME="ref_1594_20" HREF="terminal_interface-curses__adb.htm#ref_1726_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1595_20" HREF="terminal_interface-curses__adb.htm#ref_1727_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1596_20" HREF="terminal_interface-curses__adb.htm#ref_1728_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_1597_20" HREF="terminal_interface-curses__adb.htm#ref_1729_7">Str</A></span> : <b>out</b> String;
- <span class="symbol"><A NAME="ref_1598_20" HREF="terminal_interface-curses__adb.htm#ref_1730_7">Len</A></span> : Integer := -1);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_instr.3x.html">mvwinnstr()</A></EM></span>
- <span class="comment"><EM>-- AKA: mvwinstr()</EM></span>
- <span class="comment"><EM>-- AKA: mvinnstr()</EM></span>
- <span class="comment"><EM>-- AKA: mvinstr()</EM></span>
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/curs_inchstr.3x.html">curs_inchstr.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_105">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1609_14" HREF="terminal_interface-curses__adb.htm#ref_1737_14">Peek</A></span> (<span class="symbol"><A NAME="ref_1609_20" HREF="terminal_interface-curses__adb.htm#ref_1738_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1610_20" HREF="terminal_interface-curses__adb.htm#ref_1739_7">Str</A></span> : <b>out</b> Attributed_String;
- <span class="symbol"><A NAME="ref_1611_20" HREF="terminal_interface-curses__adb.htm#ref_1740_7">Len</A></span> : Integer := -1);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_inchstr.3x.html">winchnstr()</A></EM></span>
- <span class="comment"><EM>-- AKA: winchstr()</EM></span>
- <span class="comment"><EM>-- AKA: inchnstr()</EM></span>
- <span class="comment"><EM>-- AKA: inchstr()</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_106">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1618_14" HREF="terminal_interface-curses__adb.htm#ref_1774_14">Peek</A></span> (<span class="symbol"><A NAME="ref_1618_20" HREF="terminal_interface-curses__adb.htm#ref_1775_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1619_20" HREF="terminal_interface-curses__adb.htm#ref_1776_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1620_20" HREF="terminal_interface-curses__adb.htm#ref_1777_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_1621_20" HREF="terminal_interface-curses__adb.htm#ref_1778_7">Str</A></span> : <b>out</b> Attributed_String;
- <span class="symbol"><A NAME="ref_1622_20" HREF="terminal_interface-curses__adb.htm#ref_1779_7">Len</A></span> : Integer := -1);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_inchstr.3x.html">mvwinchnstr()</A></EM></span>
- <span class="comment"><EM>-- AKA: mvwinchstr()</EM></span>
- <span class="comment"><EM>-- AKA: mvinchnstr()</EM></span>
- <span class="comment"><EM>-- AKA: mvinchstr()</EM></span>
- <span class="comment"><EM>-- We do not inline the Peek procedures</EM></span>
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/curs_getstr.3x.html">curs_getstr.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_107">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1634_14" HREF="terminal_interface-curses__adb.htm#ref_1786_14">Get</A></span> (<span class="symbol"><A NAME="ref_1634_19" HREF="terminal_interface-curses__adb.htm#ref_1786_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1635_19" HREF="terminal_interface-curses__adb.htm#ref_1787_19">Str</A></span> : <b>out</b> String;
- <span class="symbol"><A NAME="ref_1636_19" HREF="terminal_interface-curses__adb.htm#ref_1788_19">Len</A></span> : Integer := -1);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_getstr.3x.html">wgetnstr()</A></EM></span>
- <span class="comment"><EM>-- AKA: wgetstr()</EM></span>
- <span class="comment"><EM>-- AKA: getnstr()</EM></span>
- <span class="comment"><EM>-- AKA: getstr()</EM></span>
- <span class="comment"><EM>-- actually getstr is not supported because that results in buffer</EM></span>
- <span class="comment"><EM>-- overflows.</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_108">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1645_14" HREF="terminal_interface-curses__adb.htm#ref_1815_14">Get</A></span> (<span class="symbol"><A NAME="ref_1645_19" HREF="terminal_interface-curses__adb.htm#ref_1816_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1646_19" HREF="terminal_interface-curses__adb.htm#ref_1817_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1647_19" HREF="terminal_interface-curses__adb.htm#ref_1818_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_1648_19" HREF="terminal_interface-curses__adb.htm#ref_1819_7">Str</A></span> : <b>out</b> String;
- <span class="symbol"><A NAME="ref_1649_19" HREF="terminal_interface-curses__adb.htm#ref_1820_7">Len</A></span> : Integer := -1);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_getstr.3x.html">mvwgetnstr()</A></EM></span>
- <span class="comment"><EM>-- AKA: mvwgetstr()</EM></span>
- <span class="comment"><EM>-- AKA: mvgetnstr()</EM></span>
- <span class="comment"><EM>-- AKA: mvgetstr()</EM></span>
- <span class="comment"><EM>-- Get is not inlined</EM></span>
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- Not Implemented: slk_attr_on, slk_attr_off, slk_attr_set</EM></span>
-
- <b>type</b> <span class="symbol"><A NAME="ref_1662_9">Soft_Label_Key_Format</A></span> <b>is</b> (<span class="symbol"><A NAME="ref_1662_35">Three_Two_Three</A></span>,
- <span class="symbol"><A NAME="ref_1663_35">Four_Four</A></span>,
- <span class="symbol"><A NAME="ref_1664_35">PC_Style</A></span>, <span class="comment"><EM>-- ncurses specific</EM></span>
- <span class="symbol"><A NAME="ref_1665_35">PC_Style_With_Index</A></span>); <span class="comment"><EM>-- "</EM></span>
- <b>type</b> <span class="symbol"><A NAME="ref_1666_9">Label_Number</A></span> <b>is</b> <b>new</b> Positive <b>range</b> 1 .. 12;
- <b>type</b> <span class="symbol"><A NAME="ref_1667_9">Label_Justification</A></span> <b>is</b> (<span class="symbol"><A NAME="ref_1667_33">Left</A></span>, <span class="symbol"><A NAME="ref_1667_39">Centered</A></span>, <span class="symbol"><A NAME="ref_1667_49">Right</A></span>);
-
- <span class="comment"><EM>-- <A NAME="AFU_109">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1670_14" HREF="terminal_interface-curses__adb.htm#ref_1827_14">Init_Soft_Label_Keys</A></span>
- (<span class="symbol"><A NAME="ref_1671_7" HREF="terminal_interface-curses__adb.htm#ref_1828_7">Format</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1662_9">Soft_Label_Key_Format</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1662_35">Three_Two_Three</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_init()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1670_14">Init_Soft_Label_Keys</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_110">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1676_14" HREF="terminal_interface-curses__adb.htm#ref_1838_14">Set_Soft_Label_Key</A></span> (<span class="symbol"><A NAME="ref_1676_34" HREF="terminal_interface-curses__adb.htm#ref_1838_34">Label</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1666_9">Label_Number</A>;
- <span class="symbol"><A NAME="ref_1677_34" HREF="terminal_interface-curses__adb.htm#ref_1839_34">Text</A></span> : String;
- <span class="symbol"><A NAME="ref_1678_34" HREF="terminal_interface-curses__adb.htm#ref_1840_34">Fmt</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1667_9">Label_Justification</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1667_33">Left</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_set()</A></EM></span>
- <span class="comment"><EM>-- We do not inline this procedure</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_111">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1683_14" HREF="terminal_interface-curses__adb.htm#ref_1858_14">Refresh_Soft_Label_Keys</A></span>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_refresh()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1683_14">Refresh_Soft_Label_Keys</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_112">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1688_14" HREF="terminal_interface-curses__adb.htm#ref_1868_14">Refresh_Soft_Label_Keys_Without_Update</A></span>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_noutrefresh()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1688_14">Refresh_Soft_Label_Keys_Without_Update</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_113">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1693_14" HREF="terminal_interface-curses__adb.htm#ref_1878_14">Get_Soft_Label_Key</A></span> (<span class="symbol"><A NAME="ref_1693_34" HREF="terminal_interface-curses__adb.htm#ref_1878_34">Label</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1666_9">Label_Number</A>;
- <span class="symbol"><A NAME="ref_1694_34" HREF="terminal_interface-curses__adb.htm#ref_1879_34">Text</A></span> : <b>out</b> String);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_label()</A></EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_114">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_1698_13" HREF="terminal_interface-curses__adb.htm#ref_1887_13">Get_Soft_Label_Key</A></span> (<span class="symbol"><A NAME="ref_1698_33" HREF="terminal_interface-curses__adb.htm#ref_1887_33">Label</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1666_9">Label_Number</A>) <b>return</b> String;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_label()</A></EM></span>
- <span class="comment"><EM>-- Same as function</EM></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/curs_instr.3x.html">curs_instr.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_103">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1585_14" href="terminal_interface-curses__adb.htm#ref_1696_14">Peek</a></span> (<span class="symbol"><a name="ref_1585_20" href="terminal_interface-curses__adb.htm#ref_1696_20">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1586_20" href="terminal_interface-curses__adb.htm#ref_1697_20">Str</a></span> : <b>out</b> String;
+ <span class="symbol"><a name="ref_1587_20" href="terminal_interface-curses__adb.htm#ref_1698_20">Len</a></span> : Integer := -1);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_instr.3x.html">winnstr()</A></em></span>
+ <span class="comment"><em>-- AKA: winstr()</em></span>
+ <span class="comment"><em>-- AKA: innstr()</em></span>
+ <span class="comment"><em>-- AKA: instr()</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_104">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1594_14" href="terminal_interface-curses__adb.htm#ref_1725_14">Peek</a></span> (<span class="symbol"><a name="ref_1594_20" href="terminal_interface-curses__adb.htm#ref_1726_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1595_20" href="terminal_interface-curses__adb.htm#ref_1727_7">Line</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1596_20" href="terminal_interface-curses__adb.htm#ref_1728_7">Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_1597_20" href="terminal_interface-curses__adb.htm#ref_1729_7">Str</a></span> : <b>out</b> String;
+ <span class="symbol"><a name="ref_1598_20" href="terminal_interface-curses__adb.htm#ref_1730_7">Len</a></span> : Integer := -1);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_instr.3x.html">mvwinnstr()</A></em></span>
+ <span class="comment"><em>-- AKA: mvwinstr()</em></span>
+ <span class="comment"><em>-- AKA: mvinnstr()</em></span>
+ <span class="comment"><em>-- AKA: mvinstr()</em></span>
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/curs_inchstr.3x.html">curs_inchstr.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_105">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1609_14" href="terminal_interface-curses__adb.htm#ref_1737_14">Peek</a></span> (<span class="symbol"><a name="ref_1609_20" href="terminal_interface-curses__adb.htm#ref_1738_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1610_20" href="terminal_interface-curses__adb.htm#ref_1739_7">Str</a></span> : <b>out</b> Attributed_String;
+ <span class="symbol"><a name="ref_1611_20" href="terminal_interface-curses__adb.htm#ref_1740_7">Len</a></span> : Integer := -1);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_inchstr.3x.html">winchnstr()</A></em></span>
+ <span class="comment"><em>-- AKA: winchstr()</em></span>
+ <span class="comment"><em>-- AKA: inchnstr()</em></span>
+ <span class="comment"><em>-- AKA: inchstr()</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_106">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1618_14" href="terminal_interface-curses__adb.htm#ref_1774_14">Peek</a></span> (<span class="symbol"><a name="ref_1618_20" href="terminal_interface-curses__adb.htm#ref_1775_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1619_20" href="terminal_interface-curses__adb.htm#ref_1776_7">Line</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1620_20" href="terminal_interface-curses__adb.htm#ref_1777_7">Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_1621_20" href="terminal_interface-curses__adb.htm#ref_1778_7">Str</a></span> : <b>out</b> Attributed_String;
+ <span class="symbol"><a name="ref_1622_20" href="terminal_interface-curses__adb.htm#ref_1779_7">Len</a></span> : Integer := -1);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_inchstr.3x.html">mvwinchnstr()</A></em></span>
+ <span class="comment"><em>-- AKA: mvwinchstr()</em></span>
+ <span class="comment"><em>-- AKA: mvinchnstr()</em></span>
+ <span class="comment"><em>-- AKA: mvinchstr()</em></span>
+ <span class="comment"><em>-- We do not inline the Peek procedures</em></span>
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/curs_getstr.3x.html">curs_getstr.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_107">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1634_14" href="terminal_interface-curses__adb.htm#ref_1786_14">Get</a></span> (<span class="symbol"><a name="ref_1634_19" href="terminal_interface-curses__adb.htm#ref_1786_19">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1635_19" href="terminal_interface-curses__adb.htm#ref_1787_19">Str</a></span> : <b>out</b> String;
+ <span class="symbol"><a name="ref_1636_19" href="terminal_interface-curses__adb.htm#ref_1788_19">Len</a></span> : Integer := -1);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_getstr.3x.html">wgetnstr()</A></em></span>
+ <span class="comment"><em>-- AKA: wgetstr()</em></span>
+ <span class="comment"><em>-- AKA: getnstr()</em></span>
+ <span class="comment"><em>-- AKA: getstr()</em></span>
+ <span class="comment"><em>-- actually getstr is not supported because that results in buffer</em></span>
+ <span class="comment"><em>-- overflows.</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_108">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1645_14" href="terminal_interface-curses__adb.htm#ref_1815_14">Get</a></span> (<span class="symbol"><a name="ref_1645_19" href="terminal_interface-curses__adb.htm#ref_1816_7">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1646_19" href="terminal_interface-curses__adb.htm#ref_1817_7">Line</a></span> : <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1647_19" href="terminal_interface-curses__adb.htm#ref_1818_7">Column</a></span> : <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_1648_19" href="terminal_interface-curses__adb.htm#ref_1819_7">Str</a></span> : <b>out</b> String;
+ <span class="symbol"><a name="ref_1649_19" href="terminal_interface-curses__adb.htm#ref_1820_7">Len</a></span> : Integer := -1);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_getstr.3x.html">mvwgetnstr()</A></em></span>
+ <span class="comment"><em>-- AKA: mvwgetstr()</em></span>
+ <span class="comment"><em>-- AKA: mvgetnstr()</em></span>
+ <span class="comment"><em>-- AKA: mvgetstr()</em></span>
+ <span class="comment"><em>-- Get is not inlined</em></span>
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- Not Implemented: slk_attr_on, slk_attr_off, slk_attr_set</em></span>
+
+ <b>type</b> <span class="symbol"><a name="ref_1662_9">Soft_Label_Key_Format</a></span> <b>is</b> (<span class="symbol"><a name="ref_1662_35">Three_Two_Three</a></span>,
+ <span class="symbol"><a name="ref_1663_35">Four_Four</a></span>,
+ <span class="symbol"><a name="ref_1664_35">PC_Style</a></span>, <span class="comment"><em>-- ncurses specific</em></span>
+ <span class="symbol"><a name="ref_1665_35">PC_Style_With_Index</a></span>); <span class="comment"><em>-- "</em></span>
+ <b>type</b> <span class="symbol"><a name="ref_1666_9">Label_Number</a></span> <b>is</b> <b>new</b> Positive <b>range</b> 1 .. 12;
+ <b>type</b> <span class="symbol"><a name="ref_1667_9">Label_Justification</a></span> <b>is</b> (<span class="symbol"><a name="ref_1667_33">Left</a></span>, <span class="symbol"><a name="ref_1667_39">Centered</a></span>, <span class="symbol"><a name="ref_1667_49">Right</a></span>);
+
+ <span class="comment"><em>-- <A NAME="AFU_109">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1670_14" href="terminal_interface-curses__adb.htm#ref_1827_14">Init_Soft_Label_Keys</a></span>
+ (<span class="symbol"><a name="ref_1671_7" href="terminal_interface-curses__adb.htm#ref_1828_7">Format</a></span> : <a href="terminal_interface-curses__ads.htm#ref_1662_9">Soft_Label_Key_Format</a> := <a href="terminal_interface-curses__ads.htm#ref_1662_35">Three_Two_Three</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_init()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1670_14">Init_Soft_Label_Keys</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_110">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1676_14" href="terminal_interface-curses__adb.htm#ref_1838_14">Set_Soft_Label_Key</a></span> (<span class="symbol"><a name="ref_1676_34" href="terminal_interface-curses__adb.htm#ref_1838_34">Label</a></span> : <a href="terminal_interface-curses__ads.htm#ref_1666_9">Label_Number</a>;
+ <span class="symbol"><a name="ref_1677_34" href="terminal_interface-curses__adb.htm#ref_1839_34">Text</a></span> : String;
+ <span class="symbol"><a name="ref_1678_34" href="terminal_interface-curses__adb.htm#ref_1840_34">Fmt</a></span> : <a href="terminal_interface-curses__ads.htm#ref_1667_9">Label_Justification</a> := <a href="terminal_interface-curses__ads.htm#ref_1667_33">Left</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_set()</A></em></span>
+ <span class="comment"><em>-- We do not inline this procedure</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_111">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1683_14" href="terminal_interface-curses__adb.htm#ref_1858_14">Refresh_Soft_Label_Keys</a></span>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_refresh()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1683_14">Refresh_Soft_Label_Keys</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_112">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1688_14" href="terminal_interface-curses__adb.htm#ref_1868_14">Refresh_Soft_Label_Keys_Without_Update</a></span>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_noutrefresh()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1688_14">Refresh_Soft_Label_Keys_Without_Update</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_113">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1693_14" href="terminal_interface-curses__adb.htm#ref_1878_14">Get_Soft_Label_Key</a></span> (<span class="symbol"><a name="ref_1693_34" href="terminal_interface-curses__adb.htm#ref_1878_34">Label</a></span> : <a href="terminal_interface-curses__ads.htm#ref_1666_9">Label_Number</a>;
+ <span class="symbol"><a name="ref_1694_34" href="terminal_interface-curses__adb.htm#ref_1879_34">Text</a></span> : <b>out</b> String);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_label()</A></em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_114">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_1698_13" href="terminal_interface-curses__adb.htm#ref_1887_13">Get_Soft_Label_Key</a></span> (<span class="symbol"><a name="ref_1698_33" href="terminal_interface-curses__adb.htm#ref_1887_33">Label</a></span> : <a href="terminal_interface-curses__ads.htm#ref_1666_9">Label_Number</a>) <b>return</b> String;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_label()</A></em></span>
+ <span class="comment"><em>-- Same as function</em></span>
<b>pragma</b> Inline (Get_Soft_Label_Key);
- <span class="comment"><EM>-- <A NAME="AFU_115">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1704_14" HREF="terminal_interface-curses__adb.htm#ref_1895_14">Clear_Soft_Label_Keys</A></span>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_clear()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1704_14">Clear_Soft_Label_Keys</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_116">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1709_14" HREF="terminal_interface-curses__adb.htm#ref_1905_14">Restore_Soft_Label_Keys</A></span>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_restore()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1709_14">Restore_Soft_Label_Keys</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_117">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1714_14" HREF="terminal_interface-curses__adb.htm#ref_1915_14">Touch_Soft_Label_Keys</A></span>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_touch()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1714_14">Touch_Soft_Label_Keys</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_118">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1719_14" HREF="terminal_interface-curses__adb.htm#ref_1925_14">Switch_Soft_Label_Key_Attributes</A></span>
- (<span class="symbol"><A NAME="ref_1720_7" HREF="terminal_interface-curses__adb.htm#ref_1926_7">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A>;
- <span class="symbol"><A NAME="ref_1721_7" HREF="terminal_interface-curses__adb.htm#ref_1927_7">On</A></span> : Boolean := True);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_attron()</A></EM></span>
- <span class="comment"><EM>-- AKA: slk_attroff()</EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1719_14">Switch_Soft_Label_Key_Attributes</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_119">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1727_14" HREF="terminal_interface-curses__adb.htm#ref_1949_14">Set_Soft_Label_Key_Attributes</A></span>
- (<span class="symbol"><A NAME="ref_1728_7" HREF="terminal_interface-curses__adb.htm#ref_1950_7">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</A>;
- <span class="symbol"><A NAME="ref_1729_7" HREF="terminal_interface-curses__adb.htm#ref_1951_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>'First);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_attrset()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1727_14">Set_Soft_Label_Key_Attributes</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_120">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_1734_13" HREF="terminal_interface-curses__adb.htm#ref_1965_13">Get_Soft_Label_Key_Attributes</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_attr()</A></EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_121">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_1738_13" HREF="terminal_interface-curses__adb.htm#ref_1975_13">Get_Soft_Label_Key_Attributes</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_attr()</A></EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_115">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1704_14" href="terminal_interface-curses__adb.htm#ref_1895_14">Clear_Soft_Label_Keys</a></span>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_clear()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1704_14">Clear_Soft_Label_Keys</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_116">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1709_14" href="terminal_interface-curses__adb.htm#ref_1905_14">Restore_Soft_Label_Keys</a></span>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_restore()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1709_14">Restore_Soft_Label_Keys</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_117">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1714_14" href="terminal_interface-curses__adb.htm#ref_1915_14">Touch_Soft_Label_Keys</a></span>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_touch()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1714_14">Touch_Soft_Label_Keys</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_118">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1719_14" href="terminal_interface-curses__adb.htm#ref_1925_14">Switch_Soft_Label_Key_Attributes</a></span>
+ (<span class="symbol"><a name="ref_1720_7" href="terminal_interface-curses__adb.htm#ref_1926_7">Attr</a></span> : <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a>;
+ <span class="symbol"><a name="ref_1721_7" href="terminal_interface-curses__adb.htm#ref_1927_7">On</a></span> : Boolean := True);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_attron()</A></em></span>
+ <span class="comment"><em>-- AKA: slk_attroff()</em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1719_14">Switch_Soft_Label_Key_Attributes</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_119">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1727_14" href="terminal_interface-curses__adb.htm#ref_1949_14">Set_Soft_Label_Key_Attributes</a></span>
+ (<span class="symbol"><a name="ref_1728_7" href="terminal_interface-curses__adb.htm#ref_1950_7">Attr</a></span> : <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a> := <a href="terminal_interface-curses__ads.htm#ref_486_4">Normal_Video</a>;
+ <span class="symbol"><a name="ref_1729_7" href="terminal_interface-curses__adb.htm#ref_1951_7">Color</a></span> : <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a> := <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>'First);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_attrset()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1727_14">Set_Soft_Label_Key_Attributes</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_120">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_1734_13" href="terminal_interface-curses__adb.htm#ref_1965_13">Get_Soft_Label_Key_Attributes</a></span> <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_attr()</A></em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_121">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_1738_13" href="terminal_interface-curses__adb.htm#ref_1975_13">Get_Soft_Label_Key_Attributes</a></span> <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_attr()</A></em></span>
<b>pragma</b> Inline (Get_Soft_Label_Key_Attributes);
- <span class="comment"><EM>-- <A NAME="AFU_122">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1743_14" HREF="terminal_interface-curses__adb.htm#ref_1985_14">Set_Soft_Label_Key_Color</A></span> (<span class="symbol"><A NAME="ref_1743_40" HREF="terminal_interface-curses__adb.htm#ref_1985_40">Pair</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_color()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1743_14">Set_Soft_Label_Key_Color</A>);
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/keybound.3x.html">keybound.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- Not Implemented: keybound</EM></span>
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/keyok.3x.html">keyok.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_123">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1757_14" HREF="terminal_interface-curses__adb.htm#ref_1996_14">Enable_Key</A></span> (<span class="symbol"><A NAME="ref_1757_26" HREF="terminal_interface-curses__adb.htm#ref_1996_26">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>;
- <span class="symbol"><A NAME="ref_1758_26" HREF="terminal_interface-curses__adb.htm#ref_1997_26">Enable</A></span> : Boolean := True);
- <span class="comment"><EM>-- AKA: <A HREF="../man/keyok.3x.html">keyok()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1757_14">Enable_Key</A>);
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/define_key.3x.html">define_key.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_124">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1767_14" HREF="terminal_interface-curses__adb.htm#ref_2010_14">Define_Key</A></span> (<span class="symbol"><A NAME="ref_1767_26" HREF="terminal_interface-curses__adb.htm#ref_2010_26">Definition</A></span> : String;
- <span class="symbol"><A NAME="ref_1768_26" HREF="terminal_interface-curses__adb.htm#ref_2011_26">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/define_key.3x.html">define_key()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1767_14">Define_Key</A>);
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/curs_util.3x.html">curs_util.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- | Not implemented : filter, use_env</EM></span>
- <span class="comment"><EM>-- | putwin, getwin are in the child package PutWin</EM></span>
- <span class="comment"><EM>--</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_125">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1781_14" HREF="terminal_interface-curses__adb.htm#ref_90_14">Key_Name</A></span> (<span class="symbol"><A NAME="ref_1781_24" HREF="terminal_interface-curses__adb.htm#ref_90_24">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_72_12">Real_Key_Code</A>;
- <span class="symbol"><A NAME="ref_1782_24" HREF="terminal_interface-curses__adb.htm#ref_91_24">Name</A></span> : <b>out</b> String);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_util.3x.html">keyname()</A></EM></span>
- <span class="comment"><EM>-- The external name for a real keystroke.</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_126">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_1787_13" HREF="terminal_interface-curses__adb.htm#ref_62_13">Key_Name</A></span> (<span class="symbol"><A NAME="ref_1787_23" HREF="terminal_interface-curses__adb.htm#ref_62_23">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_72_12">Real_Key_Code</A>) <b>return</b> String;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_util.3x.html">keyname()</A></EM></span>
- <span class="comment"><EM>-- Same as function</EM></span>
- <span class="comment"><EM>-- We do not inline this routine</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_127">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1793_14" HREF="terminal_interface-curses__adb.htm#ref_2026_14">Un_Control</A></span> (<span class="symbol"><A NAME="ref_1793_26" HREF="terminal_interface-curses__adb.htm#ref_2026_26">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>;
- <span class="symbol"><A NAME="ref_1794_26" HREF="terminal_interface-curses__adb.htm#ref_2027_26">Str</A></span> : <b>out</b> String);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_util.3x.html">unctrl()</A></EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_128">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_1798_13" HREF="terminal_interface-curses__adb.htm#ref_2035_13">Un_Control</A></span> (<span class="symbol"><A NAME="ref_1798_25" HREF="terminal_interface-curses__adb.htm#ref_2035_25">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</A>) <b>return</b> String;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_util.3x.html">unctrl()</A></EM></span>
- <span class="comment"><EM>-- Same as function</EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_122">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1743_14" href="terminal_interface-curses__adb.htm#ref_1985_14">Set_Soft_Label_Key_Color</a></span> (<span class="symbol"><a name="ref_1743_40" href="terminal_interface-curses__adb.htm#ref_1985_40">Pair</a></span> : <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_color()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1743_14">Set_Soft_Label_Key_Color</a>);
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/keybound.3x.html">keybound.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- Not Implemented: keybound</em></span>
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/keyok.3x.html">keyok.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_123">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1757_14" href="terminal_interface-curses__adb.htm#ref_1996_14">Enable_Key</a></span> (<span class="symbol"><a name="ref_1757_26" href="terminal_interface-curses__adb.htm#ref_1996_26">Key</a></span> : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>;
+ <span class="symbol"><a name="ref_1758_26" href="terminal_interface-curses__adb.htm#ref_1997_26">Enable</a></span> : Boolean := True);
+ <span class="comment"><em>-- AKA: <A HREF="../man/keyok.3x.html">keyok()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1757_14">Enable_Key</a>);
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/define_key.3x.html">define_key.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_124">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1767_14" href="terminal_interface-curses__adb.htm#ref_2010_14">Define_Key</a></span> (<span class="symbol"><a name="ref_1767_26" href="terminal_interface-curses__adb.htm#ref_2010_26">Definition</a></span> : String;
+ <span class="symbol"><a name="ref_1768_26" href="terminal_interface-curses__adb.htm#ref_2011_26">Key</a></span> : <a href="terminal_interface-curses__ads.htm#ref_77_12">Special_Key_Code</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/define_key.3x.html">define_key()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1767_14">Define_Key</a>);
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/curs_util.3x.html">curs_util.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- | Not implemented : filter, use_env</em></span>
+ <span class="comment"><em>-- | putwin, getwin are in the child package PutWin</em></span>
+ <span class="comment"><em>--</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_125">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1781_14" href="terminal_interface-curses__adb.htm#ref_90_14">Key_Name</a></span> (<span class="symbol"><a name="ref_1781_24" href="terminal_interface-curses__adb.htm#ref_90_24">Key</a></span> : <a href="terminal_interface-curses__ads.htm#ref_72_12">Real_Key_Code</a>;
+ <span class="symbol"><a name="ref_1782_24" href="terminal_interface-curses__adb.htm#ref_91_24">Name</a></span> : <b>out</b> String);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_util.3x.html">keyname()</A></em></span>
+ <span class="comment"><em>-- The external name for a real keystroke.</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_126">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_1787_13" href="terminal_interface-curses__adb.htm#ref_62_13">Key_Name</a></span> (<span class="symbol"><a name="ref_1787_23" href="terminal_interface-curses__adb.htm#ref_62_23">Key</a></span> : <a href="terminal_interface-curses__ads.htm#ref_72_12">Real_Key_Code</a>) <b>return</b> String;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_util.3x.html">keyname()</A></em></span>
+ <span class="comment"><em>-- Same as function</em></span>
+ <span class="comment"><em>-- We do not inline this routine</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_127">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1793_14" href="terminal_interface-curses__adb.htm#ref_2026_14">Un_Control</a></span> (<span class="symbol"><a name="ref_1793_26" href="terminal_interface-curses__adb.htm#ref_2026_26">Ch</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>;
+ <span class="symbol"><a name="ref_1794_26" href="terminal_interface-curses__adb.htm#ref_2027_26">Str</a></span> : <b>out</b> String);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_util.3x.html">unctrl()</A></em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_128">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_1798_13" href="terminal_interface-curses__adb.htm#ref_2035_13">Un_Control</a></span> (<span class="symbol"><a name="ref_1798_25" href="terminal_interface-curses__adb.htm#ref_2035_25">Ch</a></span> : <a href="terminal_interface-curses__ads.htm#ref_488_9">Attributed_Character</a>) <b>return</b> String;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_util.3x.html">unctrl()</A></em></span>
+ <span class="comment"><em>-- Same as function</em></span>
<b>pragma</b> Inline (Un_Control);
- <span class="comment"><EM>-- <A NAME="AFU_129">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1804_14" HREF="terminal_interface-curses__adb.htm#ref_2043_14">Delay_Output</A></span> (<span class="symbol"><A NAME="ref_1804_28" HREF="terminal_interface-curses__adb.htm#ref_2043_28">Msecs</A></span> : Natural);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_util.3x.html">delay_output()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1804_14">Delay_Output</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_130">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1809_14" HREF="terminal_interface-curses__adb.htm#ref_2053_14">Flush_Input</A></span>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_util.3x.html">flushinp()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1809_14">Flush_Input</A>);
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_131">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_1818_13" HREF="terminal_interface-curses__adb.htm#ref_2063_13">Baudrate</A></span> <b>return</b> Natural;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">baudrate()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1818_13">Baudrate</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_132">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_1823_13" HREF="terminal_interface-curses__adb.htm#ref_2071_13">Erase_Character</A></span> <b>return</b> Character;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">erasechar()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1823_13">Erase_Character</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_133">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_1828_13" HREF="terminal_interface-curses__adb.htm#ref_2079_13">Kill_Character</A></span> <b>return</b> Character;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">killchar()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1828_13">Kill_Character</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_134">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_1833_13" HREF="terminal_interface-curses__adb.htm#ref_2087_13">Has_Insert_Character</A></span> <b>return</b> Boolean;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">has_ic()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1833_13">Has_Insert_Character</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_135">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_1838_13" HREF="terminal_interface-curses__adb.htm#ref_2099_13">Has_Insert_Line</A></span> <b>return</b> Boolean;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">has_il()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1838_13">Has_Insert_Line</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_136">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_1843_13" HREF="terminal_interface-curses__adb.htm#ref_2111_13">Supported_Attributes</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</A>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">termattrs()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1843_13">Supported_Attributes</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_137">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1848_14" HREF="terminal_interface-curses__adb.htm#ref_2121_14">Long_Name</A></span> (<span class="symbol"><A NAME="ref_1848_25" HREF="terminal_interface-curses__adb.htm#ref_2121_25">Name</A></span> : <b>out</b> String);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">longname()</A></EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_138">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_1852_13" HREF="terminal_interface-curses__adb.htm#ref_2129_13">Long_Name</A></span> <b>return</b> String;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">longname()</A></EM></span>
- <span class="comment"><EM>-- Same as function</EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_129">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1804_14" href="terminal_interface-curses__adb.htm#ref_2043_14">Delay_Output</a></span> (<span class="symbol"><a name="ref_1804_28" href="terminal_interface-curses__adb.htm#ref_2043_28">Msecs</a></span> : Natural);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_util.3x.html">delay_output()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1804_14">Delay_Output</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_130">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1809_14" href="terminal_interface-curses__adb.htm#ref_2053_14">Flush_Input</a></span>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_util.3x.html">flushinp()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1809_14">Flush_Input</a>);
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_131">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_1818_13" href="terminal_interface-curses__adb.htm#ref_2063_13">Baudrate</a></span> <b>return</b> Natural;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_termattrs.3x.html">baudrate()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1818_13">Baudrate</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_132">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_1823_13" href="terminal_interface-curses__adb.htm#ref_2071_13">Erase_Character</a></span> <b>return</b> Character;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_termattrs.3x.html">erasechar()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1823_13">Erase_Character</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_133">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_1828_13" href="terminal_interface-curses__adb.htm#ref_2079_13">Kill_Character</a></span> <b>return</b> Character;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_termattrs.3x.html">killchar()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1828_13">Kill_Character</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_134">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_1833_13" href="terminal_interface-curses__adb.htm#ref_2087_13">Has_Insert_Character</a></span> <b>return</b> Boolean;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_termattrs.3x.html">has_ic()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1833_13">Has_Insert_Character</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_135">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_1838_13" href="terminal_interface-curses__adb.htm#ref_2099_13">Has_Insert_Line</a></span> <b>return</b> Boolean;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_termattrs.3x.html">has_il()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1838_13">Has_Insert_Line</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_136">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_1843_13" href="terminal_interface-curses__adb.htm#ref_2111_13">Supported_Attributes</a></span> <b>return</b> <a href="terminal_interface-curses__ads.htm#ref_418_9">Character_Attribute_Set</a>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_termattrs.3x.html">termattrs()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1843_13">Supported_Attributes</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_137">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1848_14" href="terminal_interface-curses__adb.htm#ref_2121_14">Long_Name</a></span> (<span class="symbol"><a name="ref_1848_25" href="terminal_interface-curses__adb.htm#ref_2121_25">Name</a></span> : <b>out</b> String);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_termattrs.3x.html">longname()</A></em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_138">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_1852_13" href="terminal_interface-curses__adb.htm#ref_2129_13">Long_Name</a></span> <b>return</b> String;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_termattrs.3x.html">longname()</A></em></span>
+ <span class="comment"><em>-- Same as function</em></span>
<b>pragma</b> Inline (Long_Name);
- <span class="comment"><EM>-- <A NAME="AFU_139">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1858_14" HREF="terminal_interface-curses__adb.htm#ref_2137_14">Terminal_Name</A></span> (<span class="symbol"><A NAME="ref_1858_29" HREF="terminal_interface-curses__adb.htm#ref_2137_29">Name</A></span> : <b>out</b> String);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">termname()</A></EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_139">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1858_14" href="terminal_interface-curses__adb.htm#ref_2137_14">Terminal_Name</a></span> (<span class="symbol"><a name="ref_1858_29" href="terminal_interface-curses__adb.htm#ref_2137_29">Name</a></span> : <b>out</b> String);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_termattrs.3x.html">termname()</A></em></span>
- <span class="comment"><EM>-- <A NAME="AFU_140">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_1862_13" HREF="terminal_interface-curses__adb.htm#ref_2145_13">Terminal_Name</A></span> <b>return</b> String;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">termname()</A></EM></span>
- <span class="comment"><EM>-- Same as function</EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_140">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_1862_13" href="terminal_interface-curses__adb.htm#ref_2145_13">Terminal_Name</a></span> <b>return</b> String;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_termattrs.3x.html">termname()</A></em></span>
+ <span class="comment"><em>-- Same as function</em></span>
<b>pragma</b> Inline (Terminal_Name);
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/curs_color.3x.html">curs_color.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/curs_color.3x.html">curs_color.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
- <span class="comment"><EM>-- COLOR_PAIR</EM></span>
- <span class="comment"><EM>-- COLOR_PAIR(n) in C is the same as</EM></span>
- <span class="comment"><EM>-- Attributed_Character(Ch =&gt; Nul, Color =&gt; n, Attr =&gt; Normal_Video)</EM></span>
- <span class="comment"><EM>-- In C you often see something like c = c | COLOR_PAIR(n);</EM></span>
- <span class="comment"><EM>-- This is equivalent to c.Color := n;</EM></span>
+ <span class="comment"><em>-- COLOR_PAIR</em></span>
+ <span class="comment"><em>-- COLOR_PAIR(n) in C is the same as</em></span>
+ <span class="comment"><em>-- Attributed_Character(Ch =&gt; Nul, Color =&gt; n, Attr =&gt; Normal_Video)</em></span>
+ <span class="comment"><em>-- In C you often see something like c = c | COLOR_PAIR(n);</em></span>
+ <span class="comment"><em>-- This is equivalent to c.Color := n;</em></span>
- <span class="comment"><EM>-- <A NAME="AFU_141">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1878_14">Start_Color</A></span>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_color.3x.html">start_color()</A></EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_141">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1878_14">Start_Color</a></span>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_color.3x.html">start_color()</A></em></span>
<b>pragma</b> Import (C, Start_Color, "start_color");
- <span class="comment"><EM>-- <A NAME="AFU_142">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1883_14" HREF="terminal_interface-curses__adb.htm#ref_2153_14">Init_Pair</A></span> (<span class="symbol"><A NAME="ref_1883_25" HREF="terminal_interface-curses__adb.htm#ref_2153_25">Pair</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_412_12">Redefinable_Color_Pair</A>;
- <span class="symbol"><A NAME="ref_1884_25" HREF="terminal_interface-curses__adb.htm#ref_2154_25">Fore</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</A>;
- <span class="symbol"><A NAME="ref_1885_25" HREF="terminal_interface-curses__adb.htm#ref_2155_25">Back</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_color.3x.html">init_pair()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1883_14">Init_Pair</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_143">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1890_14" HREF="terminal_interface-curses__adb.htm#ref_2177_14">Pair_Content</A></span> (<span class="symbol"><A NAME="ref_1890_28" HREF="terminal_interface-curses__adb.htm#ref_2177_28">Pair</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</A>;
- <span class="symbol"><A NAME="ref_1891_28" HREF="terminal_interface-curses__adb.htm#ref_2178_28">Fore</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</A>;
- <span class="symbol"><A NAME="ref_1892_28" HREF="terminal_interface-curses__adb.htm#ref_2179_28">Back</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_color.3x.html">pair_content()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1890_14">Pair_Content</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_144">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_1897_13" HREF="terminal_interface-curses__adb.htm#ref_2197_13">Has_Colors</A></span> <b>return</b> Boolean;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_color.3x.html">has_colors()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1897_13">Has_Colors</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_145">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1902_14" HREF="terminal_interface-curses__adb.htm#ref_2209_14">Init_Color</A></span> (<span class="symbol"><A NAME="ref_1902_26" HREF="terminal_interface-curses__adb.htm#ref_2209_26">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</A>;
- <span class="symbol"><A NAME="ref_1903_26" HREF="terminal_interface-curses__adb.htm#ref_2210_26">Red</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_406_9">RGB_Value</A>;
- <span class="symbol"><A NAME="ref_1904_26" HREF="terminal_interface-curses__adb.htm#ref_2211_26">Green</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_406_9">RGB_Value</A>;
- <span class="symbol"><A NAME="ref_1905_26" HREF="terminal_interface-curses__adb.htm#ref_2212_26">Blue</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_406_9">RGB_Value</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_color.3x.html">init_color()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1902_14">Init_Color</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_146">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_1910_13" HREF="terminal_interface-curses__adb.htm#ref_2227_13">Can_Change_Color</A></span> <b>return</b> Boolean;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_color.3x.html">can_change_color()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1910_13">Can_Change_Color</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_147">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1915_14" HREF="terminal_interface-curses__adb.htm#ref_2239_14">Color_Content</A></span> (<span class="symbol"><A NAME="ref_1915_29" HREF="terminal_interface-curses__adb.htm#ref_2239_29">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</A>;
- <span class="symbol"><A NAME="ref_1916_29" HREF="terminal_interface-curses__adb.htm#ref_2240_29">Red</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_406_9">RGB_Value</A>;
- <span class="symbol"><A NAME="ref_1917_29" HREF="terminal_interface-curses__adb.htm#ref_2241_29">Green</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_406_9">RGB_Value</A>;
- <span class="symbol"><A NAME="ref_1918_29" HREF="terminal_interface-curses__adb.htm#ref_2242_29">Blue</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_406_9">RGB_Value</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_color.3x.html">color_content()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1915_14">Color_Content</A>);
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Not implemented: getsyx, setsyx</EM></span>
- <span class="comment"><EM>--</EM></span>
- <b>type</b> <span class="symbol"><A NAME="ref_1927_9">Curses_Mode</A></span> <b>is</b> (<span class="symbol"><A NAME="ref_1927_25">Curses</A></span>, <span class="symbol"><A NAME="ref_1927_33">Shell</A></span>);
-
- <span class="comment"><EM>-- <A NAME="AFU_148">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1930_14" HREF="terminal_interface-curses__adb.htm#ref_2264_14">Save_Curses_Mode</A></span> (<span class="symbol"><A NAME="ref_1930_32" HREF="terminal_interface-curses__adb.htm#ref_2264_32">Mode</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1927_9">Curses_Mode</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_kernel.3x.html">def_prog_mode()</A></EM></span>
- <span class="comment"><EM>-- AKA: def_shell_mode()</EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1930_14">Save_Curses_Mode</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_149">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1936_14" HREF="terminal_interface-curses__adb.htm#ref_2282_14">Reset_Curses_Mode</A></span> (<span class="symbol"><A NAME="ref_1936_33" HREF="terminal_interface-curses__adb.htm#ref_2282_33">Mode</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1927_9">Curses_Mode</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_kernel.3x.html">reset_prog_mode()</A></EM></span>
- <span class="comment"><EM>-- AKA: reset_shell_mode()</EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1936_14">Reset_Curses_Mode</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_150">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1942_14" HREF="terminal_interface-curses__adb.htm#ref_2300_14">Save_Terminal_State</A></span>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_kernel.3x.html">savetty()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1942_14">Save_Terminal_State</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_151">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1947_14" HREF="terminal_interface-curses__adb.htm#ref_2310_14">Reset_Terminal_State</A></span>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_kernel.3x.html">resetty();</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1947_14">Reset_Terminal_State</A>);
-
- <b>type</b> <span class="symbol"><A NAME="ref_1951_9">Stdscr_Init_Proc</A></span> <b>is</b> <b>access</b>
- <b>function</b> (<span class="symbol"><A NAME="ref_1952_17" HREF="terminal_interface-curses__ads.htm#ref_1951_9">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
- <span class="symbol"><A NAME="ref_1953_17" HREF="terminal_interface-curses__ads.htm#ref_1951_9">Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</A>) <b>return</b> Integer;
- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses__ads.htm#ref_1951_9">Stdscr_Init_Proc</A>);
- <span class="comment"><EM>-- N.B.: the return value is actually ignored, but it seems to be</EM></span>
- <span class="comment"><EM>-- a good practice to return 0 if you think all went fine</EM></span>
- <span class="comment"><EM>-- and -1 otherwise.</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_152">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1960_14" HREF="terminal_interface-curses__adb.htm#ref_2320_14">Rip_Off_Lines</A></span> (<span class="symbol"><A NAME="ref_1960_29" HREF="terminal_interface-curses__adb.htm#ref_2320_29">Lines</A></span> : Integer;
- <span class="symbol"><A NAME="ref_1961_29" HREF="terminal_interface-curses__adb.htm#ref_2321_29">Proc</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1951_9">Stdscr_Init_Proc</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_kernel.3x.html">ripoffline()</A></EM></span>
- <span class="comment"><EM>-- N.B.: to be more precise, this uses a ncurses specific enhancement of</EM></span>
- <span class="comment"><EM>-- ripoffline(), in which the Lines argument absolute value is the</EM></span>
- <span class="comment"><EM>-- number of lines to be ripped of. The official ripoffline() only</EM></span>
- <span class="comment"><EM>-- uses the sign of Lines to remove a single line from bottom or top.</EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1960_14">Rip_Off_Lines</A>);
-
- <b>type</b> <span class="symbol"><A NAME="ref_1969_9">Cursor_Visibility</A></span> <b>is</b> (<span class="symbol"><A NAME="ref_1969_31">Invisible</A></span>, <span class="symbol"><A NAME="ref_1969_42">Normal</A></span>, <span class="symbol"><A NAME="ref_1969_50">Very_Visible</A></span>);
-
- <span class="comment"><EM>-- <A NAME="AFU_153">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1972_14" HREF="terminal_interface-curses__adb.htm#ref_2332_14">Set_Cursor_Visibility</A></span> (<span class="symbol"><A NAME="ref_1972_37" HREF="terminal_interface-curses__adb.htm#ref_2332_37">Visibility</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_1969_9">Cursor_Visibility</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_kernel.3x.html">curs_set()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1972_14">Set_Cursor_Visibility</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_154">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_1977_14" HREF="terminal_interface-curses__adb.htm#ref_2345_14">Nap_Milli_Seconds</A></span> (<span class="symbol"><A NAME="ref_1977_33" HREF="terminal_interface-curses__adb.htm#ref_2345_33">Ms</A></span> : Natural);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_kernel.3x.html">napms()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1977_14">Nap_Milli_Seconds</A>);
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Some useful helpers.</EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <b>type</b> <span class="symbol"><A NAME="ref_1984_9">Transform_Direction</A></span> <b>is</b> (<span class="symbol"><A NAME="ref_1984_33">From_Screen</A></span>, <span class="symbol"><A NAME="ref_1984_46">To_Screen</A></span>);
- <b>procedure</b> <span class="symbol"><A NAME="ref_1985_14" HREF="terminal_interface-curses__adb.htm#ref_2396_14">Transform_Coordinates</A></span>
- (<span class="symbol"><A NAME="ref_1986_7" HREF="terminal_interface-curses__adb.htm#ref_2397_7">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_1987_7" HREF="terminal_interface-curses__adb.htm#ref_2398_7">Line</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
- <span class="symbol"><A NAME="ref_1988_7" HREF="terminal_interface-curses__adb.htm#ref_2399_7">Column</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
- <span class="symbol"><A NAME="ref_1989_7" HREF="terminal_interface-curses__adb.htm#ref_2400_7">Dir</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1984_9">Transform_Direction</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1984_33">From_Screen</A>);
- <span class="comment"><EM>-- This procedure transforms screen coordinates into coordinates relative</EM></span>
- <span class="comment"><EM>-- to the window and vice versa, depending on the Dir parameter.</EM></span>
- <span class="comment"><EM>-- Screen coordinates are the position information for the physical device.</EM></span>
- <span class="comment"><EM>-- An Curses_Exception will be raised if Line and Column are not in the</EM></span>
- <span class="comment"><EM>-- Window or if you pass the Null_Window as argument.</EM></span>
- <span class="comment"><EM>-- We do not inline this procedure</EM></span>
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/default_colors.3x.html">default_colors.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="symbol"><A NAME="ref_2001_4">Default_Color</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</A> := -1;
-
- <span class="comment"><EM>-- <A NAME="AFU_155">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_2004_14" HREF="terminal_interface-curses__adb.htm#ref_2425_14">Use_Default_Colors</A></span>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/default_colors.3x.html">use_default_colors()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_2004_14">Use_Default_Colors</A>);
-
- <span class="comment"><EM>-- <A NAME="AFU_156">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_2009_14" HREF="terminal_interface-curses__adb.htm#ref_2435_14">Assume_Default_Colors</A></span> (<span class="symbol"><A NAME="ref_2009_37" HREF="terminal_interface-curses__adb.htm#ref_2435_37">Fore</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</A> := <A HREF="terminal_interface-curses__ads.htm#ref_2001_4">Default_Color</A>;
- <span class="symbol"><A NAME="ref_2010_37" HREF="terminal_interface-curses__adb.htm#ref_2436_37">Back</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</A> := <A HREF="terminal_interface-curses__ads.htm#ref_2001_4">Default_Color</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/default_colors.3x.html">assume_default_colors()</A></EM></span>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_2009_14">Assume_Default_Colors</A>);
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/curs_extend.3x.html">curs_extend.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_157">|</A></EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_2019_13" HREF="terminal_interface-curses__adb.htm#ref_2450_13">Curses_Version</A></span> <b>return</b> String;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_extend.3x.html">curses_version()</A></EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_158">|</A></EM></span>
- <span class="comment"><EM>-- The returnvalue is the previous setting of the flag</EM></span>
- <b>function</b> <span class="symbol"><A NAME="ref_2024_13" HREF="terminal_interface-curses__adb.htm#ref_2473_13">Use_Extended_Names</A></span> (<span class="symbol"><A NAME="ref_2024_33" HREF="terminal_interface-curses__adb.htm#ref_2473_33">Enable</A></span> : Boolean) <b>return</b> Boolean;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_extend.3x.html">use_extended_names()</A></EM></span>
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/curs_trace.3x.html">curs_trace.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_159">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_2032_14" HREF="terminal_interface-curses__adb.htm#ref_2459_14">Curses_Free_All</A></span>;
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_trace.3x.html">_nc_freeall()</A></EM></span>
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/curs_scr_dump.3x.html">curs_scr_dump.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_160">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_2040_14" HREF="terminal_interface-curses__adb.htm#ref_2488_14">Screen_Dump_To_File</A></span> (<span class="symbol"><A NAME="ref_2040_35" HREF="terminal_interface-curses__adb.htm#ref_2488_35">Filename</A></span> : String);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_scr_dump.3x.html">scr_dump()</A></EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_161">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_2044_14" HREF="terminal_interface-curses__adb.htm#ref_2501_14">Screen_Restore_From_File</A></span> (<span class="symbol"><A NAME="ref_2044_40" HREF="terminal_interface-curses__adb.htm#ref_2501_40">Filename</A></span> : String);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_scr_dump.3x.html">scr_restore()</A></EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_162">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_2048_14" HREF="terminal_interface-curses__adb.htm#ref_2514_14">Screen_Init_From_File</A></span> (<span class="symbol"><A NAME="ref_2048_37" HREF="terminal_interface-curses__adb.htm#ref_2514_37">Filename</A></span> : String);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_scr_dump.3x.html">scr_init()</A></EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_163">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_2052_14" HREF="terminal_interface-curses__adb.htm#ref_2527_14">Screen_Set_File</A></span> (<span class="symbol"><A NAME="ref_2052_31" HREF="terminal_interface-curses__adb.htm#ref_2527_31">Filename</A></span> : String);
- <span class="comment"><EM>-- AKA: <A HREF="../man/curs_scr_dump.3x.html">scr_set()</A></EM></span>
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/curs_print.3x.html">curs_print.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- Not implemented: mcprint</EM></span>
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/curs_printw.3x.html">curs_printw.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- Not implemented: printw, wprintw, mvprintw, mvwprintw, vwprintw,</EM></span>
- <span class="comment"><EM>-- vw_printw</EM></span>
- <span class="comment"><EM>-- Please use the Ada style Text_IO child packages for formatted</EM></span>
- <span class="comment"><EM>-- printing. It does not make a lot of sense to map the printf style</EM></span>
- <span class="comment"><EM>-- C functions to Ada.</EM></span>
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/curs_scanw.3x.html">curs_scanw.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- Not implemented: scanw, wscanw, mvscanw, mvwscanw, vwscanw, vw_scanw</EM></span>
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/resizeterm.3x.html">resizeterm.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- Not Implemented: resizeterm</EM></span>
-
- <span class="comment"><EM>-- |=====================================================================</EM></span>
- <span class="comment"><EM>-- | Man page <A HREF="../man/wresize.3x.html">wresize.3x</A></EM></span>
- <span class="comment"><EM>-- |=====================================================================</EM></span>
-
- <span class="comment"><EM>-- <A NAME="AFU_164">|</A></EM></span>
- <b>procedure</b> <span class="symbol"><A NAME="ref_2084_14" HREF="terminal_interface-curses__adb.htm#ref_2540_14">Resize</A></span> (<span class="symbol"><A NAME="ref_2084_22" HREF="terminal_interface-curses__adb.htm#ref_2540_22">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</A>;
- <span class="symbol"><A NAME="ref_2085_22" HREF="terminal_interface-curses__adb.htm#ref_2541_22">Number_Of_Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</A>;
- <span class="symbol"><A NAME="ref_2086_22" HREF="terminal_interface-curses__adb.htm#ref_2542_22">Number_Of_Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</A>);
- <span class="comment"><EM>-- AKA: <A HREF="../man/wresize.3x.html">wresize()</A></EM></span>
+ <span class="comment"><em>-- <A NAME="AFU_142">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1883_14" href="terminal_interface-curses__adb.htm#ref_2153_14">Init_Pair</a></span> (<span class="symbol"><a name="ref_1883_25" href="terminal_interface-curses__adb.htm#ref_2153_25">Pair</a></span> : <a href="terminal_interface-curses__ads.htm#ref_412_12">Redefinable_Color_Pair</a>;
+ <span class="symbol"><a name="ref_1884_25" href="terminal_interface-curses__adb.htm#ref_2154_25">Fore</a></span> : <a href="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</a>;
+ <span class="symbol"><a name="ref_1885_25" href="terminal_interface-curses__adb.htm#ref_2155_25">Back</a></span> : <a href="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_color.3x.html">init_pair()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1883_14">Init_Pair</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_143">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1890_14" href="terminal_interface-curses__adb.htm#ref_2177_14">Pair_Content</a></span> (<span class="symbol"><a name="ref_1890_28" href="terminal_interface-curses__adb.htm#ref_2177_28">Pair</a></span> : <a href="terminal_interface-curses__ads.htm#ref_410_9">Color_Pair</a>;
+ <span class="symbol"><a name="ref_1891_28" href="terminal_interface-curses__adb.htm#ref_2178_28">Fore</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</a>;
+ <span class="symbol"><a name="ref_1892_28" href="terminal_interface-curses__adb.htm#ref_2179_28">Back</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_color.3x.html">pair_content()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1890_14">Pair_Content</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_144">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_1897_13" href="terminal_interface-curses__adb.htm#ref_2197_13">Has_Colors</a></span> <b>return</b> Boolean;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_color.3x.html">has_colors()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1897_13">Has_Colors</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_145">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1902_14" href="terminal_interface-curses__adb.htm#ref_2209_14">Init_Color</a></span> (<span class="symbol"><a name="ref_1902_26" href="terminal_interface-curses__adb.htm#ref_2209_26">Color</a></span> : <a href="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</a>;
+ <span class="symbol"><a name="ref_1903_26" href="terminal_interface-curses__adb.htm#ref_2210_26">Red</a></span> : <a href="terminal_interface-curses__ads.htm#ref_406_9">RGB_Value</a>;
+ <span class="symbol"><a name="ref_1904_26" href="terminal_interface-curses__adb.htm#ref_2211_26">Green</a></span> : <a href="terminal_interface-curses__ads.htm#ref_406_9">RGB_Value</a>;
+ <span class="symbol"><a name="ref_1905_26" href="terminal_interface-curses__adb.htm#ref_2212_26">Blue</a></span> : <a href="terminal_interface-curses__ads.htm#ref_406_9">RGB_Value</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_color.3x.html">init_color()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1902_14">Init_Color</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_146">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_1910_13" href="terminal_interface-curses__adb.htm#ref_2227_13">Can_Change_Color</a></span> <b>return</b> Boolean;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_color.3x.html">can_change_color()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1910_13">Can_Change_Color</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_147">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1915_14" href="terminal_interface-curses__adb.htm#ref_2239_14">Color_Content</a></span> (<span class="symbol"><a name="ref_1915_29" href="terminal_interface-curses__adb.htm#ref_2239_29">Color</a></span> : <a href="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</a>;
+ <span class="symbol"><a name="ref_1916_29" href="terminal_interface-curses__adb.htm#ref_2240_29">Red</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_406_9">RGB_Value</a>;
+ <span class="symbol"><a name="ref_1917_29" href="terminal_interface-curses__adb.htm#ref_2241_29">Green</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_406_9">RGB_Value</a>;
+ <span class="symbol"><a name="ref_1918_29" href="terminal_interface-curses__adb.htm#ref_2242_29">Blue</a></span> : <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_406_9">RGB_Value</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_color.3x.html">color_content()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1915_14">Color_Content</a>);
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Not implemented: getsyx, setsyx</em></span>
+ <span class="comment"><em>--</em></span>
+ <b>type</b> <span class="symbol"><a name="ref_1927_9">Curses_Mode</a></span> <b>is</b> (<span class="symbol"><a name="ref_1927_25">Curses</a></span>, <span class="symbol"><a name="ref_1927_33">Shell</a></span>);
+
+ <span class="comment"><em>-- <A NAME="AFU_148">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1930_14" href="terminal_interface-curses__adb.htm#ref_2264_14">Save_Curses_Mode</a></span> (<span class="symbol"><a name="ref_1930_32" href="terminal_interface-curses__adb.htm#ref_2264_32">Mode</a></span> : <a href="terminal_interface-curses__ads.htm#ref_1927_9">Curses_Mode</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_kernel.3x.html">def_prog_mode()</A></em></span>
+ <span class="comment"><em>-- AKA: def_shell_mode()</em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1930_14">Save_Curses_Mode</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_149">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1936_14" href="terminal_interface-curses__adb.htm#ref_2282_14">Reset_Curses_Mode</a></span> (<span class="symbol"><a name="ref_1936_33" href="terminal_interface-curses__adb.htm#ref_2282_33">Mode</a></span> : <a href="terminal_interface-curses__ads.htm#ref_1927_9">Curses_Mode</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_kernel.3x.html">reset_prog_mode()</A></em></span>
+ <span class="comment"><em>-- AKA: reset_shell_mode()</em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1936_14">Reset_Curses_Mode</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_150">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1942_14" href="terminal_interface-curses__adb.htm#ref_2300_14">Save_Terminal_State</a></span>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_kernel.3x.html">savetty()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1942_14">Save_Terminal_State</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_151">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1947_14" href="terminal_interface-curses__adb.htm#ref_2310_14">Reset_Terminal_State</a></span>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_kernel.3x.html">resetty();</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1947_14">Reset_Terminal_State</a>);
+
+ <b>type</b> <span class="symbol"><a name="ref_1951_9">Stdscr_Init_Proc</a></span> <b>is</b> <b>access</b>
+ <b>function</b> (<span class="symbol"><a name="ref_1952_17">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a>;
+ <span class="symbol"><a name="ref_1953_17">Columns</a></span> : <a href="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</a>) <b>return</b> Integer;
+ <b>pragma</b> Convention (C, <a href="terminal_interface-curses__ads.htm#ref_1951_9">Stdscr_Init_Proc</a>);
+ <span class="comment"><em>-- N.B.: the return value is actually ignored, but it seems to be</em></span>
+ <span class="comment"><em>-- a good practice to return 0 if you think all went fine</em></span>
+ <span class="comment"><em>-- and -1 otherwise.</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_152">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1960_14" href="terminal_interface-curses__adb.htm#ref_2320_14">Rip_Off_Lines</a></span> (<span class="symbol"><a name="ref_1960_29" href="terminal_interface-curses__adb.htm#ref_2320_29">Lines</a></span> : Integer;
+ <span class="symbol"><a name="ref_1961_29" href="terminal_interface-curses__adb.htm#ref_2321_29">Proc</a></span> : <a href="terminal_interface-curses__ads.htm#ref_1951_9">Stdscr_Init_Proc</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_kernel.3x.html">ripoffline()</A></em></span>
+ <span class="comment"><em>-- N.B.: to be more precise, this uses a ncurses specific enhancement of</em></span>
+ <span class="comment"><em>-- ripoffline(), in which the Lines argument absolute value is the</em></span>
+ <span class="comment"><em>-- number of lines to be ripped of. The official ripoffline() only</em></span>
+ <span class="comment"><em>-- uses the sign of Lines to remove a single line from bottom or top.</em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1960_14">Rip_Off_Lines</a>);
+
+ <b>type</b> <span class="symbol"><a name="ref_1969_9">Cursor_Visibility</a></span> <b>is</b> (<span class="symbol"><a name="ref_1969_31">Invisible</a></span>, <span class="symbol"><a name="ref_1969_42">Normal</a></span>, <span class="symbol"><a name="ref_1969_50">Very_Visible</a></span>);
+
+ <span class="comment"><em>-- <A NAME="AFU_153">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1972_14" href="terminal_interface-curses__adb.htm#ref_2332_14">Set_Cursor_Visibility</a></span> (<span class="symbol"><a name="ref_1972_37" href="terminal_interface-curses__adb.htm#ref_2332_37">Visibility</a></span> : <b>in</b> <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_1969_9">Cursor_Visibility</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_kernel.3x.html">curs_set()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1972_14">Set_Cursor_Visibility</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_154">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_1977_14" href="terminal_interface-curses__adb.htm#ref_2345_14">Nap_Milli_Seconds</a></span> (<span class="symbol"><a name="ref_1977_33" href="terminal_interface-curses__adb.htm#ref_2345_33">Ms</a></span> : Natural);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_kernel.3x.html">napms()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_1977_14">Nap_Milli_Seconds</a>);
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Some useful helpers.</em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <b>type</b> <span class="symbol"><a name="ref_1984_9">Transform_Direction</a></span> <b>is</b> (<span class="symbol"><a name="ref_1984_33">From_Screen</a></span>, <span class="symbol"><a name="ref_1984_46">To_Screen</a></span>);
+ <b>procedure</b> <span class="symbol"><a name="ref_1985_14" href="terminal_interface-curses__adb.htm#ref_2396_14">Transform_Coordinates</a></span>
+ (<span class="symbol"><a name="ref_1986_7" href="terminal_interface-curses__adb.htm#ref_2397_7">W</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_1987_7" href="terminal_interface-curses__adb.htm#ref_2398_7">Line</a></span> : <b>in</b> <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</a>;
+ <span class="symbol"><a name="ref_1988_7" href="terminal_interface-curses__adb.htm#ref_2399_7">Column</a></span> : <b>in</b> <b>out</b> <a href="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</a>;
+ <span class="symbol"><a name="ref_1989_7" href="terminal_interface-curses__adb.htm#ref_2400_7">Dir</a></span> : <a href="terminal_interface-curses__ads.htm#ref_1984_9">Transform_Direction</a> := <a href="terminal_interface-curses__ads.htm#ref_1984_33">From_Screen</a>);
+ <span class="comment"><em>-- This procedure transforms screen coordinates into coordinates relative</em></span>
+ <span class="comment"><em>-- to the window and vice versa, depending on the Dir parameter.</em></span>
+ <span class="comment"><em>-- Screen coordinates are the position information for the physical device.</em></span>
+ <span class="comment"><em>-- An Curses_Exception will be raised if Line and Column are not in the</em></span>
+ <span class="comment"><em>-- Window or if you pass the Null_Window as argument.</em></span>
+ <span class="comment"><em>-- We do not inline this procedure</em></span>
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/default_colors.3x.html">default_colors.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="symbol"><a name="ref_2001_4">Default_Color</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</a> := -1;
+
+ <span class="comment"><em>-- <A NAME="AFU_155">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_2004_14" href="terminal_interface-curses__adb.htm#ref_2425_14">Use_Default_Colors</a></span>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/default_colors.3x.html">use_default_colors()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_2004_14">Use_Default_Colors</a>);
+
+ <span class="comment"><em>-- <A NAME="AFU_156">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_2009_14" href="terminal_interface-curses__adb.htm#ref_2435_14">Assume_Default_Colors</a></span> (<span class="symbol"><a name="ref_2009_37" href="terminal_interface-curses__adb.htm#ref_2435_37">Fore</a></span> : <a href="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</a> := <a href="terminal_interface-curses__ads.htm#ref_2001_4">Default_Color</a>;
+ <span class="symbol"><a name="ref_2010_37" href="terminal_interface-curses__adb.htm#ref_2436_37">Back</a></span> : <a href="terminal_interface-curses__ads.htm#ref_390_9">Color_Number</a> := <a href="terminal_interface-curses__ads.htm#ref_2001_4">Default_Color</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/default_colors.3x.html">assume_default_colors()</A></em></span>
+ <b>pragma</b> Inline (<a href="terminal_interface-curses__ads.htm#ref_2009_14">Assume_Default_Colors</a>);
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/curs_extend.3x.html">curs_extend.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_157">|</A></em></span>
+ <b>function</b> <span class="symbol"><a name="ref_2019_13" href="terminal_interface-curses__adb.htm#ref_2450_13">Curses_Version</a></span> <b>return</b> String;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_extend.3x.html">curses_version()</A></em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_158">|</A></em></span>
+ <span class="comment"><em>-- The returnvalue is the previous setting of the flag</em></span>
+ <b>function</b> <span class="symbol"><a name="ref_2024_13" href="terminal_interface-curses__adb.htm#ref_2473_13">Use_Extended_Names</a></span> (<span class="symbol"><a name="ref_2024_33" href="terminal_interface-curses__adb.htm#ref_2473_33">Enable</a></span> : Boolean) <b>return</b> Boolean;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_extend.3x.html">use_extended_names()</A></em></span>
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/curs_trace.3x.html">curs_trace.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_159">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_2032_14" href="terminal_interface-curses__adb.htm#ref_2459_14">Curses_Free_All</a></span>;
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_trace.3x.html">_nc_freeall()</A></em></span>
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/curs_scr_dump.3x.html">curs_scr_dump.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_160">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_2040_14" href="terminal_interface-curses__adb.htm#ref_2488_14">Screen_Dump_To_File</a></span> (<span class="symbol"><a name="ref_2040_35" href="terminal_interface-curses__adb.htm#ref_2488_35">Filename</a></span> : String);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_scr_dump.3x.html">scr_dump()</A></em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_161">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_2044_14" href="terminal_interface-curses__adb.htm#ref_2501_14">Screen_Restore_From_File</a></span> (<span class="symbol"><a name="ref_2044_40" href="terminal_interface-curses__adb.htm#ref_2501_40">Filename</a></span> : String);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_scr_dump.3x.html">scr_restore()</A></em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_162">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_2048_14" href="terminal_interface-curses__adb.htm#ref_2514_14">Screen_Init_From_File</a></span> (<span class="symbol"><a name="ref_2048_37" href="terminal_interface-curses__adb.htm#ref_2514_37">Filename</a></span> : String);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_scr_dump.3x.html">scr_init()</A></em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_163">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_2052_14" href="terminal_interface-curses__adb.htm#ref_2527_14">Screen_Set_File</a></span> (<span class="symbol"><a name="ref_2052_31" href="terminal_interface-curses__adb.htm#ref_2527_31">Filename</a></span> : String);
+ <span class="comment"><em>-- AKA: <A HREF="../man/curs_scr_dump.3x.html">scr_set()</A></em></span>
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/curs_print.3x.html">curs_print.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- Not implemented: mcprint</em></span>
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/curs_printw.3x.html">curs_printw.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- Not implemented: printw, wprintw, mvprintw, mvwprintw, vwprintw,</em></span>
+ <span class="comment"><em>-- vw_printw</em></span>
+ <span class="comment"><em>-- Please use the Ada style Text_IO child packages for formatted</em></span>
+ <span class="comment"><em>-- printing. It does not make a lot of sense to map the printf style</em></span>
+ <span class="comment"><em>-- C functions to Ada.</em></span>
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/curs_scanw.3x.html">curs_scanw.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- Not implemented: scanw, wscanw, mvscanw, mvwscanw, vwscanw, vw_scanw</em></span>
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/resizeterm.3x.html">resizeterm.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- Not Implemented: resizeterm</em></span>
+
+ <span class="comment"><em>-- |=====================================================================</em></span>
+ <span class="comment"><em>-- | Man page <A HREF="../man/wresize.3x.html">wresize.3x</A></em></span>
+ <span class="comment"><em>-- |=====================================================================</em></span>
+
+ <span class="comment"><em>-- <A NAME="AFU_164">|</A></em></span>
+ <b>procedure</b> <span class="symbol"><a name="ref_2084_14" href="terminal_interface-curses__adb.htm#ref_2540_14">Resize</a></span> (<span class="symbol"><a name="ref_2084_22" href="terminal_interface-curses__adb.htm#ref_2540_22">Win</a></span> : <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := <a href="terminal_interface-curses__ads.htm#ref_645_13">Standard_Window</a>;
+ <span class="symbol"><a name="ref_2085_22" href="terminal_interface-curses__adb.htm#ref_2541_22">Number_Of_Lines</a></span> : <a href="terminal_interface-curses__ads.htm#ref_62_12">Line_Count</a>;
+ <span class="symbol"><a name="ref_2086_22" href="terminal_interface-curses__adb.htm#ref_2542_22">Number_Of_Columns</a></span> : <a href="terminal_interface-curses__ads.htm#ref_64_12">Column_Count</a>);
+ <span class="comment"><em>-- AKA: <A HREF="../man/wresize.3x.html">wresize()</A></em></span>
<b>private</b>
- <b>type</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
- <A HREF="terminal_interface-curses__ads.htm#ref_57_4">Null_Window</A> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := 0;
+ <b>type</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
+ <a href="terminal_interface-curses__ads.htm#ref_57_4">Null_Window</a> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_56_9">Window</a> := 0;
- <span class="comment"><EM>-- The next constants are generated and may be different on your</EM></span>
- <span class="comment"><EM>-- architecture.</EM></span>
- <span class="comment"><EM>--</EM></span>
+ <span class="comment"><em>-- The next constants are generated and may be different on your</em></span>
+ <span class="comment"><em>-- architecture.</em></span>
+ <span class="comment"><em>--</em></span>
- <span class="symbol"><A NAME="ref_2097_4">Sizeof_Bool</A></span> : <b>constant</b> := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_11_4">Sizeof_Bool</A>;
+ <span class="symbol"><a name="ref_2097_4">Sizeof_Bool</a></span> : <b>constant</b> := <a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_11_4">Sizeof_Bool</a>;
- <b>type</b> <span class="symbol"><A NAME="ref_2099_9">Curses_Bool</A></span> <b>is</b> <b>mod</b> 2 ** <A HREF="terminal_interface-curses__ads.htm#ref_2097_4">Sizeof_Bool</A>;
+ <b>type</b> <span class="symbol"><a name="ref_2099_9">Curses_Bool</a></span> <b>is</b> <b>mod</b> 2 ** <a href="terminal_interface-curses__ads.htm#ref_2097_4">Sizeof_Bool</a>;
- <span class="symbol"><A NAME="ref_2101_4">Curses_Bool_False</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</A> := 0;
+ <span class="symbol"><a name="ref_2101_4">Curses_Bool_False</a></span> : <b>constant</b> <a href="terminal_interface-curses__ads.htm#ref_2099_9">Curses_Bool</a> := 0;
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>;
-</PRE></BODY></HTML>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses__ads.htm#ref_48_28">Curses</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface-curses_constants__ads.htm b/doc/html/ada/terminal_interface-curses_constants__ads.htm
index d94896312f10..5a10ea48fef9 100644
--- a/doc/html/ada/terminal_interface-curses_constants__ads.htm
+++ b/doc/html/ada/terminal_interface-curses_constants__ads.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface-curses_constants.ads</TITLE>
+<html>
+<head>
+<title>terminal_interface-curses_constants.ads</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,391 +11,391 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses_constants.ads </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>-- Generated by the C program ./generate (source ./gen.c).</EM></span>
-<span class="comment"><EM>-- Do not edit this file directly.</EM></span>
-<span class="comment"><EM>-- The values provided here may vary on your system.</EM></span>
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface-curses_constants.ads </h1></div><hr>
+<pre>
+<span class="comment"><em>-- Generated by the C program ./generate (source ./gen.c).</em></span>
+<span class="comment"><em>-- Do not edit this file directly.</em></span>
+<span class="comment"><em>-- The values provided here may vary on your system.</em></span>
<b>with</b> System;
-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<span class="symbol"><A NAME="ref_6_28">Curses_Constants</A></span> <b>is</b>
+<b>package</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<span class="symbol"><a name="ref_6_28">Curses_Constants</a></span> <b>is</b>
<b>pragma</b> Pure;
- <span class="symbol"><A NAME="ref_9_4">DFT_ARG_SUFFIX</A></span> : <b>constant</b> String := "";
- <span class="symbol"><A NAME="ref_10_4">Bit_Order</A></span> : <b>constant</b> System.Bit_Order := System.Low_Order_First;
- <span class="symbol"><A NAME="ref_11_4">Sizeof_Bool</A></span> : <b>constant</b> := 8;
- <span class="symbol"><A NAME="ref_12_4">OK</A></span> : <b>constant</b> := 0;
- <span class="symbol"><A NAME="ref_13_4">ERR</A></span> : <b>constant</b> := -1;
- <b>pragma</b> Warnings (Off); <span class="comment"><EM>-- redefinition of Standard.True and False</EM></span>
- <span class="symbol"><A NAME="ref_15_4">TRUE</A></span> : <b>constant</b> := 1;
- <span class="symbol"><A NAME="ref_16_4">FALSE</A></span> : <b>constant</b> := 0;
+ <span class="symbol"><a name="ref_9_4">DFT_ARG_SUFFIX</a></span> : <b>constant</b> String := "w";
+ <span class="symbol"><a name="ref_10_4">Bit_Order</a></span> : <b>constant</b> System.Bit_Order := System.Low_Order_First;
+ <span class="symbol"><a name="ref_11_4">Sizeof_Bool</a></span> : <b>constant</b> := 8;
+ <span class="symbol"><a name="ref_12_4">OK</a></span> : <b>constant</b> := 0;
+ <span class="symbol"><a name="ref_13_4">ERR</a></span> : <b>constant</b> := -1;
+ <b>pragma</b> Warnings (Off); <span class="comment"><em>-- redefinition of Standard.True and False</em></span>
+ <span class="symbol"><a name="ref_15_4">TRUE</a></span> : <b>constant</b> := 1;
+ <span class="symbol"><a name="ref_16_4">FALSE</a></span> : <b>constant</b> := 0;
<b>pragma</b> Warnings (On);
- <span class="comment"><EM>-- Version of the ncurses library from extensions(3NCURSES)</EM></span>
+ <span class="comment"><em>-- Version of the ncurses library from extensions(3NCURSES)</em></span>
- <span class="symbol"><A NAME="ref_21_4">NCURSES_VERSION_MAJOR</A></span> : <b>constant</b> := 6;
- <span class="symbol"><A NAME="ref_22_4">NCURSES_VERSION_MINOR</A></span> : <b>constant</b> := 2;
- <span class="symbol"><A NAME="ref_23_4">Version</A></span> : <b>constant</b> String := "6.2";
+ <span class="symbol"><a name="ref_21_4">NCURSES_VERSION_MAJOR</a></span> : <b>constant</b> := 6;
+ <span class="symbol"><a name="ref_22_4">NCURSES_VERSION_MINOR</a></span> : <b>constant</b> := 5;
+ <span class="symbol"><a name="ref_23_4">Version</a></span> : <b>constant</b> String := "6.5";
- <span class="comment"><EM>-- Character non-color attributes from attr(3NCURSES)</EM></span>
+ <span class="comment"><em>-- Character non-color attributes from attr(3NCURSES)</em></span>
- <span class="comment"><EM>-- attr_t and chtype may be signed in C.</EM></span>
- <b>type</b> <span class="symbol"><A NAME="ref_28_9">attr_t</A></span> <b>is</b> <b>mod</b> 2 ** 32;
- <span class="symbol"><A NAME="ref_29_4">A_CHARTEXT_First</A></span> : <b>constant</b> := 0;
- <span class="symbol"><A NAME="ref_30_4">A_CHARTEXT_Last</A></span> : <b>constant</b> := 7;
- <span class="symbol"><A NAME="ref_31_4">A_COLOR_First</A></span> : <b>constant</b> := 8;
- <span class="symbol"><A NAME="ref_32_4">A_COLOR_Last</A></span> : <b>constant</b> := 15;
- <span class="symbol"><A NAME="ref_33_4">Attr_First</A></span> : <b>constant</b> := 16;
- <span class="symbol"><A NAME="ref_34_4">Attr_Last</A></span> : <b>constant</b> := 31;
- <span class="symbol"><A NAME="ref_35_4">A_STANDOUT_First</A></span> : <b>constant</b> := 16;
- <span class="symbol"><A NAME="ref_36_4">A_STANDOUT_Last</A></span> : <b>constant</b> := 16;
- <span class="symbol"><A NAME="ref_37_4">A_UNDERLINE_First</A></span> : <b>constant</b> := 17;
- <span class="symbol"><A NAME="ref_38_4">A_UNDERLINE_Last</A></span> : <b>constant</b> := 17;
- <span class="symbol"><A NAME="ref_39_4">A_REVERSE_First</A></span> : <b>constant</b> := 18;
- <span class="symbol"><A NAME="ref_40_4">A_REVERSE_Last</A></span> : <b>constant</b> := 18;
- <span class="symbol"><A NAME="ref_41_4">A_BLINK_First</A></span> : <b>constant</b> := 19;
- <span class="symbol"><A NAME="ref_42_4">A_BLINK_Last</A></span> : <b>constant</b> := 19;
- <span class="symbol"><A NAME="ref_43_4">A_DIM_First</A></span> : <b>constant</b> := 20;
- <span class="symbol"><A NAME="ref_44_4">A_DIM_Last</A></span> : <b>constant</b> := 20;
- <span class="symbol"><A NAME="ref_45_4">A_BOLD_First</A></span> : <b>constant</b> := 21;
- <span class="symbol"><A NAME="ref_46_4">A_BOLD_Last</A></span> : <b>constant</b> := 21;
- <span class="symbol"><A NAME="ref_47_4">A_PROTECT_First</A></span> : <b>constant</b> := 24;
- <span class="symbol"><A NAME="ref_48_4">A_PROTECT_Last</A></span> : <b>constant</b> := 24;
- <span class="symbol"><A NAME="ref_49_4">A_INVIS_First</A></span> : <b>constant</b> := 23;
- <span class="symbol"><A NAME="ref_50_4">A_INVIS_Last</A></span> : <b>constant</b> := 23;
- <span class="symbol"><A NAME="ref_51_4">A_ALTCHARSET_First</A></span> : <b>constant</b> := 22;
- <span class="symbol"><A NAME="ref_52_4">A_ALTCHARSET_Last</A></span> : <b>constant</b> := 22;
- <span class="symbol"><A NAME="ref_53_4">A_HORIZONTAL_First</A></span> : <b>constant</b> := 25;
- <span class="symbol"><A NAME="ref_54_4">A_HORIZONTAL_Last</A></span> : <b>constant</b> := 25;
- <span class="symbol"><A NAME="ref_55_4">A_LEFT_First</A></span> : <b>constant</b> := 26;
- <span class="symbol"><A NAME="ref_56_4">A_LEFT_Last</A></span> : <b>constant</b> := 26;
- <span class="symbol"><A NAME="ref_57_4">A_LOW_First</A></span> : <b>constant</b> := 27;
- <span class="symbol"><A NAME="ref_58_4">A_LOW_Last</A></span> : <b>constant</b> := 27;
- <span class="symbol"><A NAME="ref_59_4">A_RIGHT_First</A></span> : <b>constant</b> := 28;
- <span class="symbol"><A NAME="ref_60_4">A_RIGHT_Last</A></span> : <b>constant</b> := 28;
- <span class="symbol"><A NAME="ref_61_4">A_TOP_First</A></span> : <b>constant</b> := 29;
- <span class="symbol"><A NAME="ref_62_4">A_TOP_Last</A></span> : <b>constant</b> := 29;
- <span class="symbol"><A NAME="ref_63_4">A_VERTICAL_First</A></span> : <b>constant</b> := 30;
- <span class="symbol"><A NAME="ref_64_4">A_VERTICAL_Last</A></span> : <b>constant</b> := 30;
- <span class="symbol"><A NAME="ref_65_4">chtype_Size</A></span> : <b>constant</b> := 32;
+ <span class="comment"><em>-- attr_t and chtype may be signed in C.</em></span>
+ <b>type</b> <span class="symbol"><a name="ref_28_9">attr_t</a></span> <b>is</b> <b>mod</b> 2 ** 32;
+ <span class="symbol"><a name="ref_29_4">A_CHARTEXT_First</a></span> : <b>constant</b> := 0;
+ <span class="symbol"><a name="ref_30_4">A_CHARTEXT_Last</a></span> : <b>constant</b> := 7;
+ <span class="symbol"><a name="ref_31_4">A_COLOR_First</a></span> : <b>constant</b> := 8;
+ <span class="symbol"><a name="ref_32_4">A_COLOR_Last</a></span> : <b>constant</b> := 15;
+ <span class="symbol"><a name="ref_33_4">Attr_First</a></span> : <b>constant</b> := 16;
+ <span class="symbol"><a name="ref_34_4">Attr_Last</a></span> : <b>constant</b> := 31;
+ <span class="symbol"><a name="ref_35_4">A_STANDOUT_First</a></span> : <b>constant</b> := 16;
+ <span class="symbol"><a name="ref_36_4">A_STANDOUT_Last</a></span> : <b>constant</b> := 16;
+ <span class="symbol"><a name="ref_37_4">A_UNDERLINE_First</a></span> : <b>constant</b> := 17;
+ <span class="symbol"><a name="ref_38_4">A_UNDERLINE_Last</a></span> : <b>constant</b> := 17;
+ <span class="symbol"><a name="ref_39_4">A_REVERSE_First</a></span> : <b>constant</b> := 18;
+ <span class="symbol"><a name="ref_40_4">A_REVERSE_Last</a></span> : <b>constant</b> := 18;
+ <span class="symbol"><a name="ref_41_4">A_BLINK_First</a></span> : <b>constant</b> := 19;
+ <span class="symbol"><a name="ref_42_4">A_BLINK_Last</a></span> : <b>constant</b> := 19;
+ <span class="symbol"><a name="ref_43_4">A_DIM_First</a></span> : <b>constant</b> := 20;
+ <span class="symbol"><a name="ref_44_4">A_DIM_Last</a></span> : <b>constant</b> := 20;
+ <span class="symbol"><a name="ref_45_4">A_BOLD_First</a></span> : <b>constant</b> := 21;
+ <span class="symbol"><a name="ref_46_4">A_BOLD_Last</a></span> : <b>constant</b> := 21;
+ <span class="symbol"><a name="ref_47_4">A_PROTECT_First</a></span> : <b>constant</b> := 24;
+ <span class="symbol"><a name="ref_48_4">A_PROTECT_Last</a></span> : <b>constant</b> := 24;
+ <span class="symbol"><a name="ref_49_4">A_INVIS_First</a></span> : <b>constant</b> := 23;
+ <span class="symbol"><a name="ref_50_4">A_INVIS_Last</a></span> : <b>constant</b> := 23;
+ <span class="symbol"><a name="ref_51_4">A_ALTCHARSET_First</a></span> : <b>constant</b> := 22;
+ <span class="symbol"><a name="ref_52_4">A_ALTCHARSET_Last</a></span> : <b>constant</b> := 22;
+ <span class="symbol"><a name="ref_53_4">A_HORIZONTAL_First</a></span> : <b>constant</b> := 25;
+ <span class="symbol"><a name="ref_54_4">A_HORIZONTAL_Last</a></span> : <b>constant</b> := 25;
+ <span class="symbol"><a name="ref_55_4">A_LEFT_First</a></span> : <b>constant</b> := 26;
+ <span class="symbol"><a name="ref_56_4">A_LEFT_Last</a></span> : <b>constant</b> := 26;
+ <span class="symbol"><a name="ref_57_4">A_LOW_First</a></span> : <b>constant</b> := 27;
+ <span class="symbol"><a name="ref_58_4">A_LOW_Last</a></span> : <b>constant</b> := 27;
+ <span class="symbol"><a name="ref_59_4">A_RIGHT_First</a></span> : <b>constant</b> := 28;
+ <span class="symbol"><a name="ref_60_4">A_RIGHT_Last</a></span> : <b>constant</b> := 28;
+ <span class="symbol"><a name="ref_61_4">A_TOP_First</a></span> : <b>constant</b> := 29;
+ <span class="symbol"><a name="ref_62_4">A_TOP_Last</a></span> : <b>constant</b> := 29;
+ <span class="symbol"><a name="ref_63_4">A_VERTICAL_First</a></span> : <b>constant</b> := 30;
+ <span class="symbol"><a name="ref_64_4">A_VERTICAL_Last</a></span> : <b>constant</b> := 30;
+ <span class="symbol"><a name="ref_65_4">chtype_Size</a></span> : <b>constant</b> := 32;
- <span class="comment"><EM>-- predefined color numbers from color(3NCURSES)</EM></span>
+ <span class="comment"><em>-- predefined color numbers from color(3NCURSES)</em></span>
- <span class="symbol"><A NAME="ref_69_4">COLOR_BLACK</A></span> : <b>constant</b> := 0;
- <span class="symbol"><A NAME="ref_70_4">COLOR_RED</A></span> : <b>constant</b> := 1;
- <span class="symbol"><A NAME="ref_71_4">COLOR_GREEN</A></span> : <b>constant</b> := 2;
- <span class="symbol"><A NAME="ref_72_4">COLOR_YELLOW</A></span> : <b>constant</b> := 3;
- <span class="symbol"><A NAME="ref_73_4">COLOR_BLUE</A></span> : <b>constant</b> := 4;
- <span class="symbol"><A NAME="ref_74_4">COLOR_MAGENTA</A></span> : <b>constant</b> := 5;
- <span class="symbol"><A NAME="ref_75_4">COLOR_CYAN</A></span> : <b>constant</b> := 6;
- <span class="symbol"><A NAME="ref_76_4">COLOR_WHITE</A></span> : <b>constant</b> := 7;
+ <span class="symbol"><a name="ref_69_4">COLOR_BLACK</a></span> : <b>constant</b> := 0;
+ <span class="symbol"><a name="ref_70_4">COLOR_RED</a></span> : <b>constant</b> := 1;
+ <span class="symbol"><a name="ref_71_4">COLOR_GREEN</a></span> : <b>constant</b> := 2;
+ <span class="symbol"><a name="ref_72_4">COLOR_YELLOW</a></span> : <b>constant</b> := 3;
+ <span class="symbol"><a name="ref_73_4">COLOR_BLUE</a></span> : <b>constant</b> := 4;
+ <span class="symbol"><a name="ref_74_4">COLOR_MAGENTA</a></span> : <b>constant</b> := 5;
+ <span class="symbol"><a name="ref_75_4">COLOR_CYAN</a></span> : <b>constant</b> := 6;
+ <span class="symbol"><a name="ref_76_4">COLOR_WHITE</a></span> : <b>constant</b> := 7;
- <span class="comment"><EM>-- ETI return codes from ncurses.h</EM></span>
+ <span class="comment"><em>-- ETI return codes from ncurses.h</em></span>
- <span class="symbol"><A NAME="ref_80_4">E_OK</A></span> : <b>constant</b> := 0;
- <span class="symbol"><A NAME="ref_81_4">E_SYSTEM_ERROR</A></span> : <b>constant</b> := -1;
- <span class="symbol"><A NAME="ref_82_4">E_BAD_ARGUMENT</A></span> : <b>constant</b> := -2;
- <span class="symbol"><A NAME="ref_83_4">E_POSTED</A></span> : <b>constant</b> := -3;
- <span class="symbol"><A NAME="ref_84_4">E_CONNECTED</A></span> : <b>constant</b> := -4;
- <span class="symbol"><A NAME="ref_85_4">E_BAD_STATE</A></span> : <b>constant</b> := -5;
- <span class="symbol"><A NAME="ref_86_4">E_NO_ROOM</A></span> : <b>constant</b> := -6;
- <span class="symbol"><A NAME="ref_87_4">E_NOT_POSTED</A></span> : <b>constant</b> := -7;
- <span class="symbol"><A NAME="ref_88_4">E_UNKNOWN_COMMAND</A></span> : <b>constant</b> := -8;
- <span class="symbol"><A NAME="ref_89_4">E_NO_MATCH</A></span> : <b>constant</b> := -9;
- <span class="symbol"><A NAME="ref_90_4">E_NOT_SELECTABLE</A></span> : <b>constant</b> := -10;
- <span class="symbol"><A NAME="ref_91_4">E_NOT_CONNECTED</A></span> : <b>constant</b> := -11;
- <span class="symbol"><A NAME="ref_92_4">E_REQUEST_DENIED</A></span> : <b>constant</b> := -12;
- <span class="symbol"><A NAME="ref_93_4">E_INVALID_FIELD</A></span> : <b>constant</b> := -13;
- <span class="symbol"><A NAME="ref_94_4">E_CURRENT</A></span> : <b>constant</b> := -14;
+ <span class="symbol"><a name="ref_80_4">E_OK</a></span> : <b>constant</b> := 0;
+ <span class="symbol"><a name="ref_81_4">E_SYSTEM_ERROR</a></span> : <b>constant</b> := -1;
+ <span class="symbol"><a name="ref_82_4">E_BAD_ARGUMENT</a></span> : <b>constant</b> := -2;
+ <span class="symbol"><a name="ref_83_4">E_POSTED</a></span> : <b>constant</b> := -3;
+ <span class="symbol"><a name="ref_84_4">E_CONNECTED</a></span> : <b>constant</b> := -4;
+ <span class="symbol"><a name="ref_85_4">E_BAD_STATE</a></span> : <b>constant</b> := -5;
+ <span class="symbol"><a name="ref_86_4">E_NO_ROOM</a></span> : <b>constant</b> := -6;
+ <span class="symbol"><a name="ref_87_4">E_NOT_POSTED</a></span> : <b>constant</b> := -7;
+ <span class="symbol"><a name="ref_88_4">E_UNKNOWN_COMMAND</a></span> : <b>constant</b> := -8;
+ <span class="symbol"><a name="ref_89_4">E_NO_MATCH</a></span> : <b>constant</b> := -9;
+ <span class="symbol"><a name="ref_90_4">E_NOT_SELECTABLE</a></span> : <b>constant</b> := -10;
+ <span class="symbol"><a name="ref_91_4">E_NOT_CONNECTED</a></span> : <b>constant</b> := -11;
+ <span class="symbol"><a name="ref_92_4">E_REQUEST_DENIED</a></span> : <b>constant</b> := -12;
+ <span class="symbol"><a name="ref_93_4">E_INVALID_FIELD</a></span> : <b>constant</b> := -13;
+ <span class="symbol"><a name="ref_94_4">E_CURRENT</a></span> : <b>constant</b> := -14;
- <span class="comment"><EM>-- Input key codes not defined in any ncurses manpage</EM></span>
+ <span class="comment"><em>-- Input key codes not defined in any ncurses manpage</em></span>
- <span class="symbol"><A NAME="ref_98_4">KEY_MIN</A></span> : <b>constant</b> := 257;
- <span class="symbol"><A NAME="ref_99_4">KEY_MAX</A></span> : <b>constant</b> := 511;
- <span class="symbol"><A NAME="ref_100_4">KEY_CODE_YES</A></span> : <b>constant</b> := 256;
+ <span class="symbol"><a name="ref_98_4">KEY_MIN</a></span> : <b>constant</b> := 257;
+ <span class="symbol"><a name="ref_99_4">KEY_MAX</a></span> : <b>constant</b> := 511;
+ <span class="symbol"><a name="ref_100_4">KEY_CODE_YES</a></span> : <b>constant</b> := 256;
- <span class="comment"><EM>-- Input key codes from getch(3NCURSES)</EM></span>
+ <span class="comment"><em>-- Input key codes from getch(3NCURSES)</em></span>
- <span class="symbol"><A NAME="ref_104_4">KEY_BREAK</A></span> : <b>constant</b> := 257;
- <span class="symbol"><A NAME="ref_105_4">KEY_DOWN</A></span> : <b>constant</b> := 258;
- <span class="symbol"><A NAME="ref_106_4">KEY_UP</A></span> : <b>constant</b> := 259;
- <span class="symbol"><A NAME="ref_107_4">KEY_LEFT</A></span> : <b>constant</b> := 260;
- <span class="symbol"><A NAME="ref_108_4">KEY_RIGHT</A></span> : <b>constant</b> := 261;
- <span class="symbol"><A NAME="ref_109_4">KEY_HOME</A></span> : <b>constant</b> := 262;
- <span class="symbol"><A NAME="ref_110_4">KEY_BACKSPACE</A></span> : <b>constant</b> := 263;
- <span class="symbol"><A NAME="ref_111_4">KEY_F0</A></span> : <b>constant</b> := 264;
- <span class="symbol"><A NAME="ref_112_4">KEY_F1</A></span> : <b>constant</b> := 265;
- <span class="symbol"><A NAME="ref_113_4">KEY_F2</A></span> : <b>constant</b> := 266;
- <span class="symbol"><A NAME="ref_114_4">KEY_F3</A></span> : <b>constant</b> := 267;
- <span class="symbol"><A NAME="ref_115_4">KEY_F4</A></span> : <b>constant</b> := 268;
- <span class="symbol"><A NAME="ref_116_4">KEY_F5</A></span> : <b>constant</b> := 269;
- <span class="symbol"><A NAME="ref_117_4">KEY_F6</A></span> : <b>constant</b> := 270;
- <span class="symbol"><A NAME="ref_118_4">KEY_F7</A></span> : <b>constant</b> := 271;
- <span class="symbol"><A NAME="ref_119_4">KEY_F8</A></span> : <b>constant</b> := 272;
- <span class="symbol"><A NAME="ref_120_4">KEY_F9</A></span> : <b>constant</b> := 273;
- <span class="symbol"><A NAME="ref_121_4">KEY_F10</A></span> : <b>constant</b> := 274;
- <span class="symbol"><A NAME="ref_122_4">KEY_F11</A></span> : <b>constant</b> := 275;
- <span class="symbol"><A NAME="ref_123_4">KEY_F12</A></span> : <b>constant</b> := 276;
- <span class="symbol"><A NAME="ref_124_4">KEY_F13</A></span> : <b>constant</b> := 277;
- <span class="symbol"><A NAME="ref_125_4">KEY_F14</A></span> : <b>constant</b> := 278;
- <span class="symbol"><A NAME="ref_126_4">KEY_F15</A></span> : <b>constant</b> := 279;
- <span class="symbol"><A NAME="ref_127_4">KEY_F16</A></span> : <b>constant</b> := 280;
- <span class="symbol"><A NAME="ref_128_4">KEY_F17</A></span> : <b>constant</b> := 281;
- <span class="symbol"><A NAME="ref_129_4">KEY_F18</A></span> : <b>constant</b> := 282;
- <span class="symbol"><A NAME="ref_130_4">KEY_F19</A></span> : <b>constant</b> := 283;
- <span class="symbol"><A NAME="ref_131_4">KEY_F20</A></span> : <b>constant</b> := 284;
- <span class="symbol"><A NAME="ref_132_4">KEY_F21</A></span> : <b>constant</b> := 285;
- <span class="symbol"><A NAME="ref_133_4">KEY_F22</A></span> : <b>constant</b> := 286;
- <span class="symbol"><A NAME="ref_134_4">KEY_F23</A></span> : <b>constant</b> := 287;
- <span class="symbol"><A NAME="ref_135_4">KEY_F24</A></span> : <b>constant</b> := 288;
- <span class="symbol"><A NAME="ref_136_4">KEY_DL</A></span> : <b>constant</b> := 328;
- <span class="symbol"><A NAME="ref_137_4">KEY_IL</A></span> : <b>constant</b> := 329;
- <span class="symbol"><A NAME="ref_138_4">KEY_DC</A></span> : <b>constant</b> := 330;
- <span class="symbol"><A NAME="ref_139_4">KEY_IC</A></span> : <b>constant</b> := 331;
- <span class="symbol"><A NAME="ref_140_4">KEY_EIC</A></span> : <b>constant</b> := 332;
- <span class="symbol"><A NAME="ref_141_4">KEY_CLEAR</A></span> : <b>constant</b> := 333;
- <span class="symbol"><A NAME="ref_142_4">KEY_EOS</A></span> : <b>constant</b> := 334;
- <span class="symbol"><A NAME="ref_143_4">KEY_EOL</A></span> : <b>constant</b> := 335;
- <span class="symbol"><A NAME="ref_144_4">KEY_SF</A></span> : <b>constant</b> := 336;
- <span class="symbol"><A NAME="ref_145_4">KEY_SR</A></span> : <b>constant</b> := 337;
- <span class="symbol"><A NAME="ref_146_4">KEY_NPAGE</A></span> : <b>constant</b> := 338;
- <span class="symbol"><A NAME="ref_147_4">KEY_PPAGE</A></span> : <b>constant</b> := 339;
- <span class="symbol"><A NAME="ref_148_4">KEY_STAB</A></span> : <b>constant</b> := 340;
- <span class="symbol"><A NAME="ref_149_4">KEY_CTAB</A></span> : <b>constant</b> := 341;
- <span class="symbol"><A NAME="ref_150_4">KEY_CATAB</A></span> : <b>constant</b> := 342;
- <span class="symbol"><A NAME="ref_151_4">KEY_ENTER</A></span> : <b>constant</b> := 343;
- <span class="symbol"><A NAME="ref_152_4">KEY_SRESET</A></span> : <b>constant</b> := 344;
- <span class="symbol"><A NAME="ref_153_4">KEY_RESET</A></span> : <b>constant</b> := 345;
- <span class="symbol"><A NAME="ref_154_4">KEY_PRINT</A></span> : <b>constant</b> := 346;
- <span class="symbol"><A NAME="ref_155_4">KEY_LL</A></span> : <b>constant</b> := 347;
- <span class="symbol"><A NAME="ref_156_4">KEY_A1</A></span> : <b>constant</b> := 348;
- <span class="symbol"><A NAME="ref_157_4">KEY_A3</A></span> : <b>constant</b> := 349;
- <span class="symbol"><A NAME="ref_158_4">KEY_B2</A></span> : <b>constant</b> := 350;
- <span class="symbol"><A NAME="ref_159_4">KEY_C1</A></span> : <b>constant</b> := 351;
- <span class="symbol"><A NAME="ref_160_4">KEY_C3</A></span> : <b>constant</b> := 352;
- <span class="symbol"><A NAME="ref_161_4">KEY_BTAB</A></span> : <b>constant</b> := 353;
- <span class="symbol"><A NAME="ref_162_4">KEY_BEG</A></span> : <b>constant</b> := 354;
- <span class="symbol"><A NAME="ref_163_4">KEY_CANCEL</A></span> : <b>constant</b> := 355;
- <span class="symbol"><A NAME="ref_164_4">KEY_CLOSE</A></span> : <b>constant</b> := 356;
- <span class="symbol"><A NAME="ref_165_4">KEY_COMMAND</A></span> : <b>constant</b> := 357;
- <span class="symbol"><A NAME="ref_166_4">KEY_COPY</A></span> : <b>constant</b> := 358;
- <span class="symbol"><A NAME="ref_167_4">KEY_CREATE</A></span> : <b>constant</b> := 359;
- <span class="symbol"><A NAME="ref_168_4">KEY_END</A></span> : <b>constant</b> := 360;
- <span class="symbol"><A NAME="ref_169_4">KEY_EXIT</A></span> : <b>constant</b> := 361;
- <span class="symbol"><A NAME="ref_170_4">KEY_FIND</A></span> : <b>constant</b> := 362;
- <span class="symbol"><A NAME="ref_171_4">KEY_HELP</A></span> : <b>constant</b> := 363;
- <span class="symbol"><A NAME="ref_172_4">KEY_MARK</A></span> : <b>constant</b> := 364;
- <span class="symbol"><A NAME="ref_173_4">KEY_MESSAGE</A></span> : <b>constant</b> := 365;
- <span class="symbol"><A NAME="ref_174_4">KEY_MOVE</A></span> : <b>constant</b> := 366;
- <span class="symbol"><A NAME="ref_175_4">KEY_NEXT</A></span> : <b>constant</b> := 367;
- <span class="symbol"><A NAME="ref_176_4">KEY_OPEN</A></span> : <b>constant</b> := 368;
- <span class="symbol"><A NAME="ref_177_4">KEY_OPTIONS</A></span> : <b>constant</b> := 369;
- <span class="symbol"><A NAME="ref_178_4">KEY_PREVIOUS</A></span> : <b>constant</b> := 370;
- <span class="symbol"><A NAME="ref_179_4">KEY_REDO</A></span> : <b>constant</b> := 371;
- <span class="symbol"><A NAME="ref_180_4">KEY_REFERENCE</A></span> : <b>constant</b> := 372;
- <span class="symbol"><A NAME="ref_181_4">KEY_REFRESH</A></span> : <b>constant</b> := 373;
- <span class="symbol"><A NAME="ref_182_4">KEY_REPLACE</A></span> : <b>constant</b> := 374;
- <span class="symbol"><A NAME="ref_183_4">KEY_RESTART</A></span> : <b>constant</b> := 375;
- <span class="symbol"><A NAME="ref_184_4">KEY_RESUME</A></span> : <b>constant</b> := 376;
- <span class="symbol"><A NAME="ref_185_4">KEY_SAVE</A></span> : <b>constant</b> := 377;
- <span class="symbol"><A NAME="ref_186_4">KEY_SBEG</A></span> : <b>constant</b> := 378;
- <span class="symbol"><A NAME="ref_187_4">KEY_SCANCEL</A></span> : <b>constant</b> := 379;
- <span class="symbol"><A NAME="ref_188_4">KEY_SCOMMAND</A></span> : <b>constant</b> := 380;
- <span class="symbol"><A NAME="ref_189_4">KEY_SCOPY</A></span> : <b>constant</b> := 381;
- <span class="symbol"><A NAME="ref_190_4">KEY_SCREATE</A></span> : <b>constant</b> := 382;
- <span class="symbol"><A NAME="ref_191_4">KEY_SDC</A></span> : <b>constant</b> := 383;
- <span class="symbol"><A NAME="ref_192_4">KEY_SDL</A></span> : <b>constant</b> := 384;
- <span class="symbol"><A NAME="ref_193_4">KEY_SELECT</A></span> : <b>constant</b> := 385;
- <span class="symbol"><A NAME="ref_194_4">KEY_SEND</A></span> : <b>constant</b> := 386;
- <span class="symbol"><A NAME="ref_195_4">KEY_SEOL</A></span> : <b>constant</b> := 387;
- <span class="symbol"><A NAME="ref_196_4">KEY_SEXIT</A></span> : <b>constant</b> := 388;
- <span class="symbol"><A NAME="ref_197_4">KEY_SFIND</A></span> : <b>constant</b> := 389;
- <span class="symbol"><A NAME="ref_198_4">KEY_SHELP</A></span> : <b>constant</b> := 390;
- <span class="symbol"><A NAME="ref_199_4">KEY_SHOME</A></span> : <b>constant</b> := 391;
- <span class="symbol"><A NAME="ref_200_4">KEY_SIC</A></span> : <b>constant</b> := 392;
- <span class="symbol"><A NAME="ref_201_4">KEY_SLEFT</A></span> : <b>constant</b> := 393;
- <span class="symbol"><A NAME="ref_202_4">KEY_SMESSAGE</A></span> : <b>constant</b> := 394;
- <span class="symbol"><A NAME="ref_203_4">KEY_SMOVE</A></span> : <b>constant</b> := 395;
- <span class="symbol"><A NAME="ref_204_4">KEY_SNEXT</A></span> : <b>constant</b> := 396;
- <span class="symbol"><A NAME="ref_205_4">KEY_SOPTIONS</A></span> : <b>constant</b> := 397;
- <span class="symbol"><A NAME="ref_206_4">KEY_SPREVIOUS</A></span> : <b>constant</b> := 398;
- <span class="symbol"><A NAME="ref_207_4">KEY_SPRINT</A></span> : <b>constant</b> := 399;
- <span class="symbol"><A NAME="ref_208_4">KEY_SREDO</A></span> : <b>constant</b> := 400;
- <span class="symbol"><A NAME="ref_209_4">KEY_SREPLACE</A></span> : <b>constant</b> := 401;
- <span class="symbol"><A NAME="ref_210_4">KEY_SRIGHT</A></span> : <b>constant</b> := 402;
- <span class="symbol"><A NAME="ref_211_4">KEY_SRSUME</A></span> : <b>constant</b> := 403;
- <span class="symbol"><A NAME="ref_212_4">KEY_SSAVE</A></span> : <b>constant</b> := 404;
- <span class="symbol"><A NAME="ref_213_4">KEY_SSUSPEND</A></span> : <b>constant</b> := 405;
- <span class="symbol"><A NAME="ref_214_4">KEY_SUNDO</A></span> : <b>constant</b> := 406;
- <span class="symbol"><A NAME="ref_215_4">KEY_SUSPEND</A></span> : <b>constant</b> := 407;
- <span class="symbol"><A NAME="ref_216_4">KEY_UNDO</A></span> : <b>constant</b> := 408;
- <span class="symbol"><A NAME="ref_217_4">KEY_MOUSE</A></span> : <b>constant</b> := 409;
- <span class="symbol"><A NAME="ref_218_4">KEY_RESIZE</A></span> : <b>constant</b> := 410;
+ <span class="symbol"><a name="ref_104_4">KEY_BREAK</a></span> : <b>constant</b> := 257;
+ <span class="symbol"><a name="ref_105_4">KEY_DOWN</a></span> : <b>constant</b> := 258;
+ <span class="symbol"><a name="ref_106_4">KEY_UP</a></span> : <b>constant</b> := 259;
+ <span class="symbol"><a name="ref_107_4">KEY_LEFT</a></span> : <b>constant</b> := 260;
+ <span class="symbol"><a name="ref_108_4">KEY_RIGHT</a></span> : <b>constant</b> := 261;
+ <span class="symbol"><a name="ref_109_4">KEY_HOME</a></span> : <b>constant</b> := 262;
+ <span class="symbol"><a name="ref_110_4">KEY_BACKSPACE</a></span> : <b>constant</b> := 263;
+ <span class="symbol"><a name="ref_111_4">KEY_F0</a></span> : <b>constant</b> := 264;
+ <span class="symbol"><a name="ref_112_4">KEY_F1</a></span> : <b>constant</b> := 265;
+ <span class="symbol"><a name="ref_113_4">KEY_F2</a></span> : <b>constant</b> := 266;
+ <span class="symbol"><a name="ref_114_4">KEY_F3</a></span> : <b>constant</b> := 267;
+ <span class="symbol"><a name="ref_115_4">KEY_F4</a></span> : <b>constant</b> := 268;
+ <span class="symbol"><a name="ref_116_4">KEY_F5</a></span> : <b>constant</b> := 269;
+ <span class="symbol"><a name="ref_117_4">KEY_F6</a></span> : <b>constant</b> := 270;
+ <span class="symbol"><a name="ref_118_4">KEY_F7</a></span> : <b>constant</b> := 271;
+ <span class="symbol"><a name="ref_119_4">KEY_F8</a></span> : <b>constant</b> := 272;
+ <span class="symbol"><a name="ref_120_4">KEY_F9</a></span> : <b>constant</b> := 273;
+ <span class="symbol"><a name="ref_121_4">KEY_F10</a></span> : <b>constant</b> := 274;
+ <span class="symbol"><a name="ref_122_4">KEY_F11</a></span> : <b>constant</b> := 275;
+ <span class="symbol"><a name="ref_123_4">KEY_F12</a></span> : <b>constant</b> := 276;
+ <span class="symbol"><a name="ref_124_4">KEY_F13</a></span> : <b>constant</b> := 277;
+ <span class="symbol"><a name="ref_125_4">KEY_F14</a></span> : <b>constant</b> := 278;
+ <span class="symbol"><a name="ref_126_4">KEY_F15</a></span> : <b>constant</b> := 279;
+ <span class="symbol"><a name="ref_127_4">KEY_F16</a></span> : <b>constant</b> := 280;
+ <span class="symbol"><a name="ref_128_4">KEY_F17</a></span> : <b>constant</b> := 281;
+ <span class="symbol"><a name="ref_129_4">KEY_F18</a></span> : <b>constant</b> := 282;
+ <span class="symbol"><a name="ref_130_4">KEY_F19</a></span> : <b>constant</b> := 283;
+ <span class="symbol"><a name="ref_131_4">KEY_F20</a></span> : <b>constant</b> := 284;
+ <span class="symbol"><a name="ref_132_4">KEY_F21</a></span> : <b>constant</b> := 285;
+ <span class="symbol"><a name="ref_133_4">KEY_F22</a></span> : <b>constant</b> := 286;
+ <span class="symbol"><a name="ref_134_4">KEY_F23</a></span> : <b>constant</b> := 287;
+ <span class="symbol"><a name="ref_135_4">KEY_F24</a></span> : <b>constant</b> := 288;
+ <span class="symbol"><a name="ref_136_4">KEY_DL</a></span> : <b>constant</b> := 328;
+ <span class="symbol"><a name="ref_137_4">KEY_IL</a></span> : <b>constant</b> := 329;
+ <span class="symbol"><a name="ref_138_4">KEY_DC</a></span> : <b>constant</b> := 330;
+ <span class="symbol"><a name="ref_139_4">KEY_IC</a></span> : <b>constant</b> := 331;
+ <span class="symbol"><a name="ref_140_4">KEY_EIC</a></span> : <b>constant</b> := 332;
+ <span class="symbol"><a name="ref_141_4">KEY_CLEAR</a></span> : <b>constant</b> := 333;
+ <span class="symbol"><a name="ref_142_4">KEY_EOS</a></span> : <b>constant</b> := 334;
+ <span class="symbol"><a name="ref_143_4">KEY_EOL</a></span> : <b>constant</b> := 335;
+ <span class="symbol"><a name="ref_144_4">KEY_SF</a></span> : <b>constant</b> := 336;
+ <span class="symbol"><a name="ref_145_4">KEY_SR</a></span> : <b>constant</b> := 337;
+ <span class="symbol"><a name="ref_146_4">KEY_NPAGE</a></span> : <b>constant</b> := 338;
+ <span class="symbol"><a name="ref_147_4">KEY_PPAGE</a></span> : <b>constant</b> := 339;
+ <span class="symbol"><a name="ref_148_4">KEY_STAB</a></span> : <b>constant</b> := 340;
+ <span class="symbol"><a name="ref_149_4">KEY_CTAB</a></span> : <b>constant</b> := 341;
+ <span class="symbol"><a name="ref_150_4">KEY_CATAB</a></span> : <b>constant</b> := 342;
+ <span class="symbol"><a name="ref_151_4">KEY_ENTER</a></span> : <b>constant</b> := 343;
+ <span class="symbol"><a name="ref_152_4">KEY_SRESET</a></span> : <b>constant</b> := 344;
+ <span class="symbol"><a name="ref_153_4">KEY_RESET</a></span> : <b>constant</b> := 345;
+ <span class="symbol"><a name="ref_154_4">KEY_PRINT</a></span> : <b>constant</b> := 346;
+ <span class="symbol"><a name="ref_155_4">KEY_LL</a></span> : <b>constant</b> := 347;
+ <span class="symbol"><a name="ref_156_4">KEY_A1</a></span> : <b>constant</b> := 348;
+ <span class="symbol"><a name="ref_157_4">KEY_A3</a></span> : <b>constant</b> := 349;
+ <span class="symbol"><a name="ref_158_4">KEY_B2</a></span> : <b>constant</b> := 350;
+ <span class="symbol"><a name="ref_159_4">KEY_C1</a></span> : <b>constant</b> := 351;
+ <span class="symbol"><a name="ref_160_4">KEY_C3</a></span> : <b>constant</b> := 352;
+ <span class="symbol"><a name="ref_161_4">KEY_BTAB</a></span> : <b>constant</b> := 353;
+ <span class="symbol"><a name="ref_162_4">KEY_BEG</a></span> : <b>constant</b> := 354;
+ <span class="symbol"><a name="ref_163_4">KEY_CANCEL</a></span> : <b>constant</b> := 355;
+ <span class="symbol"><a name="ref_164_4">KEY_CLOSE</a></span> : <b>constant</b> := 356;
+ <span class="symbol"><a name="ref_165_4">KEY_COMMAND</a></span> : <b>constant</b> := 357;
+ <span class="symbol"><a name="ref_166_4">KEY_COPY</a></span> : <b>constant</b> := 358;
+ <span class="symbol"><a name="ref_167_4">KEY_CREATE</a></span> : <b>constant</b> := 359;
+ <span class="symbol"><a name="ref_168_4">KEY_END</a></span> : <b>constant</b> := 360;
+ <span class="symbol"><a name="ref_169_4">KEY_EXIT</a></span> : <b>constant</b> := 361;
+ <span class="symbol"><a name="ref_170_4">KEY_FIND</a></span> : <b>constant</b> := 362;
+ <span class="symbol"><a name="ref_171_4">KEY_HELP</a></span> : <b>constant</b> := 363;
+ <span class="symbol"><a name="ref_172_4">KEY_MARK</a></span> : <b>constant</b> := 364;
+ <span class="symbol"><a name="ref_173_4">KEY_MESSAGE</a></span> : <b>constant</b> := 365;
+ <span class="symbol"><a name="ref_174_4">KEY_MOVE</a></span> : <b>constant</b> := 366;
+ <span class="symbol"><a name="ref_175_4">KEY_NEXT</a></span> : <b>constant</b> := 367;
+ <span class="symbol"><a name="ref_176_4">KEY_OPEN</a></span> : <b>constant</b> := 368;
+ <span class="symbol"><a name="ref_177_4">KEY_OPTIONS</a></span> : <b>constant</b> := 369;
+ <span class="symbol"><a name="ref_178_4">KEY_PREVIOUS</a></span> : <b>constant</b> := 370;
+ <span class="symbol"><a name="ref_179_4">KEY_REDO</a></span> : <b>constant</b> := 371;
+ <span class="symbol"><a name="ref_180_4">KEY_REFERENCE</a></span> : <b>constant</b> := 372;
+ <span class="symbol"><a name="ref_181_4">KEY_REFRESH</a></span> : <b>constant</b> := 373;
+ <span class="symbol"><a name="ref_182_4">KEY_REPLACE</a></span> : <b>constant</b> := 374;
+ <span class="symbol"><a name="ref_183_4">KEY_RESTART</a></span> : <b>constant</b> := 375;
+ <span class="symbol"><a name="ref_184_4">KEY_RESUME</a></span> : <b>constant</b> := 376;
+ <span class="symbol"><a name="ref_185_4">KEY_SAVE</a></span> : <b>constant</b> := 377;
+ <span class="symbol"><a name="ref_186_4">KEY_SBEG</a></span> : <b>constant</b> := 378;
+ <span class="symbol"><a name="ref_187_4">KEY_SCANCEL</a></span> : <b>constant</b> := 379;
+ <span class="symbol"><a name="ref_188_4">KEY_SCOMMAND</a></span> : <b>constant</b> := 380;
+ <span class="symbol"><a name="ref_189_4">KEY_SCOPY</a></span> : <b>constant</b> := 381;
+ <span class="symbol"><a name="ref_190_4">KEY_SCREATE</a></span> : <b>constant</b> := 382;
+ <span class="symbol"><a name="ref_191_4">KEY_SDC</a></span> : <b>constant</b> := 383;
+ <span class="symbol"><a name="ref_192_4">KEY_SDL</a></span> : <b>constant</b> := 384;
+ <span class="symbol"><a name="ref_193_4">KEY_SELECT</a></span> : <b>constant</b> := 385;
+ <span class="symbol"><a name="ref_194_4">KEY_SEND</a></span> : <b>constant</b> := 386;
+ <span class="symbol"><a name="ref_195_4">KEY_SEOL</a></span> : <b>constant</b> := 387;
+ <span class="symbol"><a name="ref_196_4">KEY_SEXIT</a></span> : <b>constant</b> := 388;
+ <span class="symbol"><a name="ref_197_4">KEY_SFIND</a></span> : <b>constant</b> := 389;
+ <span class="symbol"><a name="ref_198_4">KEY_SHELP</a></span> : <b>constant</b> := 390;
+ <span class="symbol"><a name="ref_199_4">KEY_SHOME</a></span> : <b>constant</b> := 391;
+ <span class="symbol"><a name="ref_200_4">KEY_SIC</a></span> : <b>constant</b> := 392;
+ <span class="symbol"><a name="ref_201_4">KEY_SLEFT</a></span> : <b>constant</b> := 393;
+ <span class="symbol"><a name="ref_202_4">KEY_SMESSAGE</a></span> : <b>constant</b> := 394;
+ <span class="symbol"><a name="ref_203_4">KEY_SMOVE</a></span> : <b>constant</b> := 395;
+ <span class="symbol"><a name="ref_204_4">KEY_SNEXT</a></span> : <b>constant</b> := 396;
+ <span class="symbol"><a name="ref_205_4">KEY_SOPTIONS</a></span> : <b>constant</b> := 397;
+ <span class="symbol"><a name="ref_206_4">KEY_SPREVIOUS</a></span> : <b>constant</b> := 398;
+ <span class="symbol"><a name="ref_207_4">KEY_SPRINT</a></span> : <b>constant</b> := 399;
+ <span class="symbol"><a name="ref_208_4">KEY_SREDO</a></span> : <b>constant</b> := 400;
+ <span class="symbol"><a name="ref_209_4">KEY_SREPLACE</a></span> : <b>constant</b> := 401;
+ <span class="symbol"><a name="ref_210_4">KEY_SRIGHT</a></span> : <b>constant</b> := 402;
+ <span class="symbol"><a name="ref_211_4">KEY_SRSUME</a></span> : <b>constant</b> := 403;
+ <span class="symbol"><a name="ref_212_4">KEY_SSAVE</a></span> : <b>constant</b> := 404;
+ <span class="symbol"><a name="ref_213_4">KEY_SSUSPEND</a></span> : <b>constant</b> := 405;
+ <span class="symbol"><a name="ref_214_4">KEY_SUNDO</a></span> : <b>constant</b> := 406;
+ <span class="symbol"><a name="ref_215_4">KEY_SUSPEND</a></span> : <b>constant</b> := 407;
+ <span class="symbol"><a name="ref_216_4">KEY_UNDO</a></span> : <b>constant</b> := 408;
+ <span class="symbol"><a name="ref_217_4">KEY_MOUSE</a></span> : <b>constant</b> := 409;
+ <span class="symbol"><a name="ref_218_4">KEY_RESIZE</a></span> : <b>constant</b> := 410;
- <span class="comment"><EM>-- alternate character codes (ACS) from addch(3NCURSES)</EM></span>
+ <span class="comment"><em>-- alternate character codes (ACS) from addch(3NCURSES)</em></span>
- <span class="symbol"><A NAME="ref_222_4">ACS_ULCORNER</A></span> : <b>constant</b> := 108;
- <span class="symbol"><A NAME="ref_223_4">ACS_LLCORNER</A></span> : <b>constant</b> := 109;
- <span class="symbol"><A NAME="ref_224_4">ACS_URCORNER</A></span> : <b>constant</b> := 107;
- <span class="symbol"><A NAME="ref_225_4">ACS_LRCORNER</A></span> : <b>constant</b> := 106;
- <span class="symbol"><A NAME="ref_226_4">ACS_LTEE</A></span> : <b>constant</b> := 116;
- <span class="symbol"><A NAME="ref_227_4">ACS_RTEE</A></span> : <b>constant</b> := 117;
- <span class="symbol"><A NAME="ref_228_4">ACS_BTEE</A></span> : <b>constant</b> := 118;
- <span class="symbol"><A NAME="ref_229_4">ACS_TTEE</A></span> : <b>constant</b> := 119;
- <span class="symbol"><A NAME="ref_230_4">ACS_HLINE</A></span> : <b>constant</b> := 113;
- <span class="symbol"><A NAME="ref_231_4">ACS_VLINE</A></span> : <b>constant</b> := 120;
- <span class="symbol"><A NAME="ref_232_4">ACS_PLUS</A></span> : <b>constant</b> := 110;
- <span class="symbol"><A NAME="ref_233_4">ACS_S1</A></span> : <b>constant</b> := 111;
- <span class="symbol"><A NAME="ref_234_4">ACS_S9</A></span> : <b>constant</b> := 115;
- <span class="symbol"><A NAME="ref_235_4">ACS_DIAMOND</A></span> : <b>constant</b> := 96;
- <span class="symbol"><A NAME="ref_236_4">ACS_CKBOARD</A></span> : <b>constant</b> := 97;
- <span class="symbol"><A NAME="ref_237_4">ACS_DEGREE</A></span> : <b>constant</b> := 102;
- <span class="symbol"><A NAME="ref_238_4">ACS_PLMINUS</A></span> : <b>constant</b> := 103;
- <span class="symbol"><A NAME="ref_239_4">ACS_BULLET</A></span> : <b>constant</b> := 126;
- <span class="symbol"><A NAME="ref_240_4">ACS_LARROW</A></span> : <b>constant</b> := 44;
- <span class="symbol"><A NAME="ref_241_4">ACS_RARROW</A></span> : <b>constant</b> := 43;
- <span class="symbol"><A NAME="ref_242_4">ACS_DARROW</A></span> : <b>constant</b> := 46;
- <span class="symbol"><A NAME="ref_243_4">ACS_UARROW</A></span> : <b>constant</b> := 45;
- <span class="symbol"><A NAME="ref_244_4">ACS_BOARD</A></span> : <b>constant</b> := 104;
- <span class="symbol"><A NAME="ref_245_4">ACS_LANTERN</A></span> : <b>constant</b> := 105;
- <span class="symbol"><A NAME="ref_246_4">ACS_BLOCK</A></span> : <b>constant</b> := 48;
- <span class="symbol"><A NAME="ref_247_4">ACS_S3</A></span> : <b>constant</b> := 112;
- <span class="symbol"><A NAME="ref_248_4">ACS_S7</A></span> : <b>constant</b> := 114;
- <span class="symbol"><A NAME="ref_249_4">ACS_LEQUAL</A></span> : <b>constant</b> := 121;
- <span class="symbol"><A NAME="ref_250_4">ACS_GEQUAL</A></span> : <b>constant</b> := 122;
- <span class="symbol"><A NAME="ref_251_4">ACS_PI</A></span> : <b>constant</b> := 123;
- <span class="symbol"><A NAME="ref_252_4">ACS_NEQUAL</A></span> : <b>constant</b> := 124;
- <span class="symbol"><A NAME="ref_253_4">ACS_STERLING</A></span> : <b>constant</b> := 125;
+ <span class="symbol"><a name="ref_222_4">ACS_ULCORNER</a></span> : <b>constant</b> := 108;
+ <span class="symbol"><a name="ref_223_4">ACS_LLCORNER</a></span> : <b>constant</b> := 109;
+ <span class="symbol"><a name="ref_224_4">ACS_URCORNER</a></span> : <b>constant</b> := 107;
+ <span class="symbol"><a name="ref_225_4">ACS_LRCORNER</a></span> : <b>constant</b> := 106;
+ <span class="symbol"><a name="ref_226_4">ACS_LTEE</a></span> : <b>constant</b> := 116;
+ <span class="symbol"><a name="ref_227_4">ACS_RTEE</a></span> : <b>constant</b> := 117;
+ <span class="symbol"><a name="ref_228_4">ACS_BTEE</a></span> : <b>constant</b> := 118;
+ <span class="symbol"><a name="ref_229_4">ACS_TTEE</a></span> : <b>constant</b> := 119;
+ <span class="symbol"><a name="ref_230_4">ACS_HLINE</a></span> : <b>constant</b> := 113;
+ <span class="symbol"><a name="ref_231_4">ACS_VLINE</a></span> : <b>constant</b> := 120;
+ <span class="symbol"><a name="ref_232_4">ACS_PLUS</a></span> : <b>constant</b> := 110;
+ <span class="symbol"><a name="ref_233_4">ACS_S1</a></span> : <b>constant</b> := 111;
+ <span class="symbol"><a name="ref_234_4">ACS_S9</a></span> : <b>constant</b> := 115;
+ <span class="symbol"><a name="ref_235_4">ACS_DIAMOND</a></span> : <b>constant</b> := 96;
+ <span class="symbol"><a name="ref_236_4">ACS_CKBOARD</a></span> : <b>constant</b> := 97;
+ <span class="symbol"><a name="ref_237_4">ACS_DEGREE</a></span> : <b>constant</b> := 102;
+ <span class="symbol"><a name="ref_238_4">ACS_PLMINUS</a></span> : <b>constant</b> := 103;
+ <span class="symbol"><a name="ref_239_4">ACS_BULLET</a></span> : <b>constant</b> := 126;
+ <span class="symbol"><a name="ref_240_4">ACS_LARROW</a></span> : <b>constant</b> := 44;
+ <span class="symbol"><a name="ref_241_4">ACS_RARROW</a></span> : <b>constant</b> := 43;
+ <span class="symbol"><a name="ref_242_4">ACS_DARROW</a></span> : <b>constant</b> := 46;
+ <span class="symbol"><a name="ref_243_4">ACS_UARROW</a></span> : <b>constant</b> := 45;
+ <span class="symbol"><a name="ref_244_4">ACS_BOARD</a></span> : <b>constant</b> := 104;
+ <span class="symbol"><a name="ref_245_4">ACS_LANTERN</a></span> : <b>constant</b> := 105;
+ <span class="symbol"><a name="ref_246_4">ACS_BLOCK</a></span> : <b>constant</b> := 48;
+ <span class="symbol"><a name="ref_247_4">ACS_S3</a></span> : <b>constant</b> := 112;
+ <span class="symbol"><a name="ref_248_4">ACS_S7</a></span> : <b>constant</b> := 114;
+ <span class="symbol"><a name="ref_249_4">ACS_LEQUAL</a></span> : <b>constant</b> := 121;
+ <span class="symbol"><a name="ref_250_4">ACS_GEQUAL</a></span> : <b>constant</b> := 122;
+ <span class="symbol"><a name="ref_251_4">ACS_PI</a></span> : <b>constant</b> := 123;
+ <span class="symbol"><a name="ref_252_4">ACS_NEQUAL</a></span> : <b>constant</b> := 124;
+ <span class="symbol"><a name="ref_253_4">ACS_STERLING</a></span> : <b>constant</b> := 125;
- <span class="comment"><EM>-- Menu_Options from opts(3MENU)</EM></span>
+ <span class="comment"><em>-- Menu_Options from opts(3MENU)</em></span>
- <span class="symbol"><A NAME="ref_257_4">O_ONEVALUE_First</A></span> : <b>constant</b> := 0;
- <span class="symbol"><A NAME="ref_258_4">O_ONEVALUE_Last</A></span> : <b>constant</b> := 0;
- <span class="symbol"><A NAME="ref_259_4">O_SHOWDESC_First</A></span> : <b>constant</b> := 1;
- <span class="symbol"><A NAME="ref_260_4">O_SHOWDESC_Last</A></span> : <b>constant</b> := 1;
- <span class="symbol"><A NAME="ref_261_4">O_ROWMAJOR_First</A></span> : <b>constant</b> := 2;
- <span class="symbol"><A NAME="ref_262_4">O_ROWMAJOR_Last</A></span> : <b>constant</b> := 2;
- <span class="symbol"><A NAME="ref_263_4">O_IGNORECASE_First</A></span> : <b>constant</b> := 3;
- <span class="symbol"><A NAME="ref_264_4">O_IGNORECASE_Last</A></span> : <b>constant</b> := 3;
- <span class="symbol"><A NAME="ref_265_4">O_SHOWMATCH_First</A></span> : <b>constant</b> := 4;
- <span class="symbol"><A NAME="ref_266_4">O_SHOWMATCH_Last</A></span> : <b>constant</b> := 4;
- <span class="symbol"><A NAME="ref_267_4">O_NONCYCLIC_First</A></span> : <b>constant</b> := 5;
- <span class="symbol"><A NAME="ref_268_4">O_NONCYCLIC_Last</A></span> : <b>constant</b> := 5;
- <span class="symbol"><A NAME="ref_269_4">Menu_Options_Size</A></span> : <b>constant</b> := 32;
+ <span class="symbol"><a name="ref_257_4">O_ONEVALUE_First</a></span> : <b>constant</b> := 0;
+ <span class="symbol"><a name="ref_258_4">O_ONEVALUE_Last</a></span> : <b>constant</b> := 0;
+ <span class="symbol"><a name="ref_259_4">O_SHOWDESC_First</a></span> : <b>constant</b> := 1;
+ <span class="symbol"><a name="ref_260_4">O_SHOWDESC_Last</a></span> : <b>constant</b> := 1;
+ <span class="symbol"><a name="ref_261_4">O_ROWMAJOR_First</a></span> : <b>constant</b> := 2;
+ <span class="symbol"><a name="ref_262_4">O_ROWMAJOR_Last</a></span> : <b>constant</b> := 2;
+ <span class="symbol"><a name="ref_263_4">O_IGNORECASE_First</a></span> : <b>constant</b> := 3;
+ <span class="symbol"><a name="ref_264_4">O_IGNORECASE_Last</a></span> : <b>constant</b> := 3;
+ <span class="symbol"><a name="ref_265_4">O_SHOWMATCH_First</a></span> : <b>constant</b> := 4;
+ <span class="symbol"><a name="ref_266_4">O_SHOWMATCH_Last</a></span> : <b>constant</b> := 4;
+ <span class="symbol"><a name="ref_267_4">O_NONCYCLIC_First</a></span> : <b>constant</b> := 5;
+ <span class="symbol"><a name="ref_268_4">O_NONCYCLIC_Last</a></span> : <b>constant</b> := 5;
+ <span class="symbol"><a name="ref_269_4">Menu_Options_Size</a></span> : <b>constant</b> := 32;
- <span class="comment"><EM>-- Item_Options from menu_opts(3MENU)</EM></span>
+ <span class="comment"><em>-- Item_Options from menu_opts(3MENU)</em></span>
- <span class="symbol"><A NAME="ref_273_4">O_SELECTABLE_First</A></span> : <b>constant</b> := 0;
- <span class="symbol"><A NAME="ref_274_4">O_SELECTABLE_Last</A></span> : <b>constant</b> := 0;
- <span class="symbol"><A NAME="ref_275_4">Item_Options_Size</A></span> : <b>constant</b> := 32;
+ <span class="symbol"><a name="ref_273_4">O_SELECTABLE_First</a></span> : <b>constant</b> := 0;
+ <span class="symbol"><a name="ref_274_4">O_SELECTABLE_Last</a></span> : <b>constant</b> := 0;
+ <span class="symbol"><a name="ref_275_4">Item_Options_Size</a></span> : <b>constant</b> := 32;
- <span class="comment"><EM>-- Field_Options from field_opts(3FORM)</EM></span>
+ <span class="comment"><em>-- Field_Options from field_opts(3FORM)</em></span>
- <span class="symbol"><A NAME="ref_279_4">O_VISIBLE_First</A></span> : <b>constant</b> := 0;
- <span class="symbol"><A NAME="ref_280_4">O_VISIBLE_Last</A></span> : <b>constant</b> := 0;
- <span class="symbol"><A NAME="ref_281_4">O_ACTIVE_First</A></span> : <b>constant</b> := 1;
- <span class="symbol"><A NAME="ref_282_4">O_ACTIVE_Last</A></span> : <b>constant</b> := 1;
- <span class="symbol"><A NAME="ref_283_4">O_PUBLIC_First</A></span> : <b>constant</b> := 2;
- <span class="symbol"><A NAME="ref_284_4">O_PUBLIC_Last</A></span> : <b>constant</b> := 2;
- <span class="symbol"><A NAME="ref_285_4">O_EDIT_First</A></span> : <b>constant</b> := 3;
- <span class="symbol"><A NAME="ref_286_4">O_EDIT_Last</A></span> : <b>constant</b> := 3;
- <span class="symbol"><A NAME="ref_287_4">O_WRAP_First</A></span> : <b>constant</b> := 4;
- <span class="symbol"><A NAME="ref_288_4">O_WRAP_Last</A></span> : <b>constant</b> := 4;
- <span class="symbol"><A NAME="ref_289_4">O_BLANK_First</A></span> : <b>constant</b> := 5;
- <span class="symbol"><A NAME="ref_290_4">O_BLANK_Last</A></span> : <b>constant</b> := 5;
- <span class="symbol"><A NAME="ref_291_4">O_AUTOSKIP_First</A></span> : <b>constant</b> := 6;
- <span class="symbol"><A NAME="ref_292_4">O_AUTOSKIP_Last</A></span> : <b>constant</b> := 6;
- <span class="symbol"><A NAME="ref_293_4">O_NULLOK_First</A></span> : <b>constant</b> := 7;
- <span class="symbol"><A NAME="ref_294_4">O_NULLOK_Last</A></span> : <b>constant</b> := 7;
- <span class="symbol"><A NAME="ref_295_4">O_PASSOK_First</A></span> : <b>constant</b> := 8;
- <span class="symbol"><A NAME="ref_296_4">O_PASSOK_Last</A></span> : <b>constant</b> := 8;
- <span class="symbol"><A NAME="ref_297_4">O_STATIC_First</A></span> : <b>constant</b> := 9;
- <span class="symbol"><A NAME="ref_298_4">O_STATIC_Last</A></span> : <b>constant</b> := 9;
- <span class="symbol"><A NAME="ref_299_4">Field_Options_Size</A></span> : <b>constant</b> := 32;
+ <span class="symbol"><a name="ref_279_4">O_VISIBLE_First</a></span> : <b>constant</b> := 0;
+ <span class="symbol"><a name="ref_280_4">O_VISIBLE_Last</a></span> : <b>constant</b> := 0;
+ <span class="symbol"><a name="ref_281_4">O_ACTIVE_First</a></span> : <b>constant</b> := 1;
+ <span class="symbol"><a name="ref_282_4">O_ACTIVE_Last</a></span> : <b>constant</b> := 1;
+ <span class="symbol"><a name="ref_283_4">O_PUBLIC_First</a></span> : <b>constant</b> := 2;
+ <span class="symbol"><a name="ref_284_4">O_PUBLIC_Last</a></span> : <b>constant</b> := 2;
+ <span class="symbol"><a name="ref_285_4">O_EDIT_First</a></span> : <b>constant</b> := 3;
+ <span class="symbol"><a name="ref_286_4">O_EDIT_Last</a></span> : <b>constant</b> := 3;
+ <span class="symbol"><a name="ref_287_4">O_WRAP_First</a></span> : <b>constant</b> := 4;
+ <span class="symbol"><a name="ref_288_4">O_WRAP_Last</a></span> : <b>constant</b> := 4;
+ <span class="symbol"><a name="ref_289_4">O_BLANK_First</a></span> : <b>constant</b> := 5;
+ <span class="symbol"><a name="ref_290_4">O_BLANK_Last</a></span> : <b>constant</b> := 5;
+ <span class="symbol"><a name="ref_291_4">O_AUTOSKIP_First</a></span> : <b>constant</b> := 6;
+ <span class="symbol"><a name="ref_292_4">O_AUTOSKIP_Last</a></span> : <b>constant</b> := 6;
+ <span class="symbol"><a name="ref_293_4">O_NULLOK_First</a></span> : <b>constant</b> := 7;
+ <span class="symbol"><a name="ref_294_4">O_NULLOK_Last</a></span> : <b>constant</b> := 7;
+ <span class="symbol"><a name="ref_295_4">O_PASSOK_First</a></span> : <b>constant</b> := 8;
+ <span class="symbol"><a name="ref_296_4">O_PASSOK_Last</a></span> : <b>constant</b> := 8;
+ <span class="symbol"><a name="ref_297_4">O_STATIC_First</a></span> : <b>constant</b> := 9;
+ <span class="symbol"><a name="ref_298_4">O_STATIC_Last</a></span> : <b>constant</b> := 9;
+ <span class="symbol"><a name="ref_299_4">Field_Options_Size</a></span> : <b>constant</b> := 32;
- <span class="comment"><EM>-- Field_Options from opts(3FORM)</EM></span>
+ <span class="comment"><em>-- Field_Options from opts(3FORM)</em></span>
- <span class="symbol"><A NAME="ref_303_4">O_NL_OVERLOAD_First</A></span> : <b>constant</b> := 0;
- <span class="symbol"><A NAME="ref_304_4">O_NL_OVERLOAD_Last</A></span> : <b>constant</b> := 0;
- <span class="symbol"><A NAME="ref_305_4">O_BS_OVERLOAD_First</A></span> : <b>constant</b> := 1;
- <span class="symbol"><A NAME="ref_306_4">O_BS_OVERLOAD_Last</A></span> : <b>constant</b> := 1;
+ <span class="symbol"><a name="ref_303_4">O_NL_OVERLOAD_First</a></span> : <b>constant</b> := 0;
+ <span class="symbol"><a name="ref_304_4">O_NL_OVERLOAD_Last</a></span> : <b>constant</b> := 0;
+ <span class="symbol"><a name="ref_305_4">O_BS_OVERLOAD_First</a></span> : <b>constant</b> := 1;
+ <span class="symbol"><a name="ref_306_4">O_BS_OVERLOAD_Last</a></span> : <b>constant</b> := 1;
- <span class="comment"><EM>-- MEVENT structure from mouse(3NCURSES)</EM></span>
+ <span class="comment"><em>-- MEVENT structure from mouse(3NCURSES)</em></span>
- <span class="symbol"><A NAME="ref_310_4">MEVENT_id_First</A></span> : <b>constant</b> := 0;
- <span class="symbol"><A NAME="ref_311_4">MEVENT_id_Last</A></span> : <b>constant</b> := 15;
- <span class="symbol"><A NAME="ref_312_4">MEVENT_x_First</A></span> : <b>constant</b> := 32;
- <span class="symbol"><A NAME="ref_313_4">MEVENT_x_Last</A></span> : <b>constant</b> := 63;
- <span class="symbol"><A NAME="ref_314_4">MEVENT_y_First</A></span> : <b>constant</b> := 64;
- <span class="symbol"><A NAME="ref_315_4">MEVENT_y_Last</A></span> : <b>constant</b> := 95;
- <span class="symbol"><A NAME="ref_316_4">MEVENT_z_First</A></span> : <b>constant</b> := 96;
- <span class="symbol"><A NAME="ref_317_4">MEVENT_z_Last</A></span> : <b>constant</b> := 127;
- <span class="symbol"><A NAME="ref_318_4">MEVENT_bstate_First</A></span> : <b>constant</b> := 128;
- <span class="symbol"><A NAME="ref_319_4">MEVENT_bstate_Last</A></span> : <b>constant</b> := 159;
- <span class="symbol"><A NAME="ref_320_4">MEVENT_Size</A></span> : <b>constant</b> := 160;
+ <span class="symbol"><a name="ref_310_4">MEVENT_id_First</a></span> : <b>constant</b> := 0;
+ <span class="symbol"><a name="ref_311_4">MEVENT_id_Last</a></span> : <b>constant</b> := 15;
+ <span class="symbol"><a name="ref_312_4">MEVENT_x_First</a></span> : <b>constant</b> := 32;
+ <span class="symbol"><a name="ref_313_4">MEVENT_x_Last</a></span> : <b>constant</b> := 63;
+ <span class="symbol"><a name="ref_314_4">MEVENT_y_First</a></span> : <b>constant</b> := 64;
+ <span class="symbol"><a name="ref_315_4">MEVENT_y_Last</a></span> : <b>constant</b> := 95;
+ <span class="symbol"><a name="ref_316_4">MEVENT_z_First</a></span> : <b>constant</b> := 96;
+ <span class="symbol"><a name="ref_317_4">MEVENT_z_Last</a></span> : <b>constant</b> := 127;
+ <span class="symbol"><a name="ref_318_4">MEVENT_bstate_First</a></span> : <b>constant</b> := 128;
+ <span class="symbol"><a name="ref_319_4">MEVENT_bstate_Last</a></span> : <b>constant</b> := 159;
+ <span class="symbol"><a name="ref_320_4">MEVENT_Size</a></span> : <b>constant</b> := 160;
- <span class="comment"><EM>-- mouse events from mouse(3NCURSES)</EM></span>
+ <span class="comment"><em>-- mouse events from mouse(3NCURSES)</em></span>
- <span class="symbol"><A NAME="ref_324_4">BUTTON1_RELEASED</A></span> : <b>constant</b> := 1;
- <span class="symbol"><A NAME="ref_325_4">BUTTON1_PRESSED</A></span> : <b>constant</b> := 2;
- <span class="symbol"><A NAME="ref_326_4">BUTTON1_CLICKED</A></span> : <b>constant</b> := 4;
- <span class="symbol"><A NAME="ref_327_4">BUTTON1_DOUBLE_CLICKED</A></span> : <b>constant</b> := 8;
- <span class="symbol"><A NAME="ref_328_4">BUTTON1_TRIPLE_CLICKED</A></span> : <b>constant</b> := 16;
- <span class="symbol"><A NAME="ref_329_4">all_events_button_1</A></span> : <b>constant</b> := 31;
- <span class="symbol"><A NAME="ref_330_4">BUTTON2_RELEASED</A></span> : <b>constant</b> := 32;
- <span class="symbol"><A NAME="ref_331_4">BUTTON2_PRESSED</A></span> : <b>constant</b> := 64;
- <span class="symbol"><A NAME="ref_332_4">BUTTON2_CLICKED</A></span> : <b>constant</b> := 128;
- <span class="symbol"><A NAME="ref_333_4">BUTTON2_DOUBLE_CLICKED</A></span> : <b>constant</b> := 256;
- <span class="symbol"><A NAME="ref_334_4">BUTTON2_TRIPLE_CLICKED</A></span> : <b>constant</b> := 512;
- <span class="symbol"><A NAME="ref_335_4">all_events_button_2</A></span> : <b>constant</b> := 992;
- <span class="symbol"><A NAME="ref_336_4">BUTTON3_RELEASED</A></span> : <b>constant</b> := 1024;
- <span class="symbol"><A NAME="ref_337_4">BUTTON3_PRESSED</A></span> : <b>constant</b> := 2048;
- <span class="symbol"><A NAME="ref_338_4">BUTTON3_CLICKED</A></span> : <b>constant</b> := 4096;
- <span class="symbol"><A NAME="ref_339_4">BUTTON3_DOUBLE_CLICKED</A></span> : <b>constant</b> := 8192;
- <span class="symbol"><A NAME="ref_340_4">BUTTON3_TRIPLE_CLICKED</A></span> : <b>constant</b> := 16384;
- <span class="symbol"><A NAME="ref_341_4">all_events_button_3</A></span> : <b>constant</b> := 31744;
- <span class="symbol"><A NAME="ref_342_4">BUTTON4_RELEASED</A></span> : <b>constant</b> := 32768;
- <span class="symbol"><A NAME="ref_343_4">BUTTON4_PRESSED</A></span> : <b>constant</b> := 65536;
- <span class="symbol"><A NAME="ref_344_4">BUTTON4_CLICKED</A></span> : <b>constant</b> := 131072;
- <span class="symbol"><A NAME="ref_345_4">BUTTON4_DOUBLE_CLICKED</A></span> : <b>constant</b> := 262144;
- <span class="symbol"><A NAME="ref_346_4">BUTTON4_TRIPLE_CLICKED</A></span> : <b>constant</b> := 524288;
- <span class="symbol"><A NAME="ref_347_4">all_events_button_4</A></span> : <b>constant</b> := 1015808;
- <span class="symbol"><A NAME="ref_348_4">BUTTON_CTRL</A></span> : <b>constant</b> := 33554432;
- <span class="symbol"><A NAME="ref_349_4">BUTTON_SHIFT</A></span> : <b>constant</b> := 67108864;
- <span class="symbol"><A NAME="ref_350_4">BUTTON_ALT</A></span> : <b>constant</b> := 134217728;
- <span class="symbol"><A NAME="ref_351_4">REPORT_MOUSE_POSITION</A></span> : <b>constant</b> := 268435456;
- <span class="symbol"><A NAME="ref_352_4">ALL_MOUSE_EVENTS</A></span> : <b>constant</b> := 268435455;
+ <span class="symbol"><a name="ref_324_4">BUTTON1_RELEASED</a></span> : <b>constant</b> := 1;
+ <span class="symbol"><a name="ref_325_4">BUTTON1_PRESSED</a></span> : <b>constant</b> := 2;
+ <span class="symbol"><a name="ref_326_4">BUTTON1_CLICKED</a></span> : <b>constant</b> := 4;
+ <span class="symbol"><a name="ref_327_4">BUTTON1_DOUBLE_CLICKED</a></span> : <b>constant</b> := 8;
+ <span class="symbol"><a name="ref_328_4">BUTTON1_TRIPLE_CLICKED</a></span> : <b>constant</b> := 16;
+ <span class="symbol"><a name="ref_329_4">all_events_button_1</a></span> : <b>constant</b> := 31;
+ <span class="symbol"><a name="ref_330_4">BUTTON2_RELEASED</a></span> : <b>constant</b> := 32;
+ <span class="symbol"><a name="ref_331_4">BUTTON2_PRESSED</a></span> : <b>constant</b> := 64;
+ <span class="symbol"><a name="ref_332_4">BUTTON2_CLICKED</a></span> : <b>constant</b> := 128;
+ <span class="symbol"><a name="ref_333_4">BUTTON2_DOUBLE_CLICKED</a></span> : <b>constant</b> := 256;
+ <span class="symbol"><a name="ref_334_4">BUTTON2_TRIPLE_CLICKED</a></span> : <b>constant</b> := 512;
+ <span class="symbol"><a name="ref_335_4">all_events_button_2</a></span> : <b>constant</b> := 992;
+ <span class="symbol"><a name="ref_336_4">BUTTON3_RELEASED</a></span> : <b>constant</b> := 1024;
+ <span class="symbol"><a name="ref_337_4">BUTTON3_PRESSED</a></span> : <b>constant</b> := 2048;
+ <span class="symbol"><a name="ref_338_4">BUTTON3_CLICKED</a></span> : <b>constant</b> := 4096;
+ <span class="symbol"><a name="ref_339_4">BUTTON3_DOUBLE_CLICKED</a></span> : <b>constant</b> := 8192;
+ <span class="symbol"><a name="ref_340_4">BUTTON3_TRIPLE_CLICKED</a></span> : <b>constant</b> := 16384;
+ <span class="symbol"><a name="ref_341_4">all_events_button_3</a></span> : <b>constant</b> := 31744;
+ <span class="symbol"><a name="ref_342_4">BUTTON4_RELEASED</a></span> : <b>constant</b> := 32768;
+ <span class="symbol"><a name="ref_343_4">BUTTON4_PRESSED</a></span> : <b>constant</b> := 65536;
+ <span class="symbol"><a name="ref_344_4">BUTTON4_CLICKED</a></span> : <b>constant</b> := 131072;
+ <span class="symbol"><a name="ref_345_4">BUTTON4_DOUBLE_CLICKED</a></span> : <b>constant</b> := 262144;
+ <span class="symbol"><a name="ref_346_4">BUTTON4_TRIPLE_CLICKED</a></span> : <b>constant</b> := 524288;
+ <span class="symbol"><a name="ref_347_4">all_events_button_4</a></span> : <b>constant</b> := 1015808;
+ <span class="symbol"><a name="ref_348_4">BUTTON_CTRL</a></span> : <b>constant</b> := 33554432;
+ <span class="symbol"><a name="ref_349_4">BUTTON_SHIFT</a></span> : <b>constant</b> := 67108864;
+ <span class="symbol"><a name="ref_350_4">BUTTON_ALT</a></span> : <b>constant</b> := 134217728;
+ <span class="symbol"><a name="ref_351_4">REPORT_MOUSE_POSITION</a></span> : <b>constant</b> := 268435456;
+ <span class="symbol"><a name="ref_352_4">ALL_MOUSE_EVENTS</a></span> : <b>constant</b> := 268435455;
- <span class="comment"><EM>-- trace selection from trace(3NCURSES)</EM></span>
+ <span class="comment"><em>-- trace selection from trace(3NCURSES)</em></span>
- <span class="symbol"><A NAME="ref_356_4">TRACE_TIMES_First</A></span> : <b>constant</b> := 0;
- <span class="symbol"><A NAME="ref_357_4">TRACE_TIMES_Last</A></span> : <b>constant</b> := 0;
- <span class="symbol"><A NAME="ref_358_4">TRACE_TPUTS_First</A></span> : <b>constant</b> := 1;
- <span class="symbol"><A NAME="ref_359_4">TRACE_TPUTS_Last</A></span> : <b>constant</b> := 1;
- <span class="symbol"><A NAME="ref_360_4">TRACE_UPDATE_First</A></span> : <b>constant</b> := 2;
- <span class="symbol"><A NAME="ref_361_4">TRACE_UPDATE_Last</A></span> : <b>constant</b> := 2;
- <span class="symbol"><A NAME="ref_362_4">TRACE_MOVE_First</A></span> : <b>constant</b> := 3;
- <span class="symbol"><A NAME="ref_363_4">TRACE_MOVE_Last</A></span> : <b>constant</b> := 3;
- <span class="symbol"><A NAME="ref_364_4">TRACE_CHARPUT_First</A></span> : <b>constant</b> := 4;
- <span class="symbol"><A NAME="ref_365_4">TRACE_CHARPUT_Last</A></span> : <b>constant</b> := 4;
- <span class="symbol"><A NAME="ref_366_4">TRACE_CALLS_First</A></span> : <b>constant</b> := 5;
- <span class="symbol"><A NAME="ref_367_4">TRACE_CALLS_Last</A></span> : <b>constant</b> := 5;
- <span class="symbol"><A NAME="ref_368_4">TRACE_VIRTPUT_First</A></span> : <b>constant</b> := 6;
- <span class="symbol"><A NAME="ref_369_4">TRACE_VIRTPUT_Last</A></span> : <b>constant</b> := 6;
- <span class="symbol"><A NAME="ref_370_4">TRACE_IEVENT_First</A></span> : <b>constant</b> := 7;
- <span class="symbol"><A NAME="ref_371_4">TRACE_IEVENT_Last</A></span> : <b>constant</b> := 7;
- <span class="symbol"><A NAME="ref_372_4">TRACE_BITS_First</A></span> : <b>constant</b> := 8;
- <span class="symbol"><A NAME="ref_373_4">TRACE_BITS_Last</A></span> : <b>constant</b> := 8;
- <span class="symbol"><A NAME="ref_374_4">TRACE_ICALLS_First</A></span> : <b>constant</b> := 9;
- <span class="symbol"><A NAME="ref_375_4">TRACE_ICALLS_Last</A></span> : <b>constant</b> := 9;
- <span class="symbol"><A NAME="ref_376_4">TRACE_CCALLS_First</A></span> : <b>constant</b> := 10;
- <span class="symbol"><A NAME="ref_377_4">TRACE_CCALLS_Last</A></span> : <b>constant</b> := 10;
- <span class="symbol"><A NAME="ref_378_4">TRACE_DATABASE_First</A></span> : <b>constant</b> := 11;
- <span class="symbol"><A NAME="ref_379_4">TRACE_DATABASE_Last</A></span> : <b>constant</b> := 11;
- <span class="symbol"><A NAME="ref_380_4">TRACE_ATTRS_First</A></span> : <b>constant</b> := 12;
- <span class="symbol"><A NAME="ref_381_4">TRACE_ATTRS_Last</A></span> : <b>constant</b> := 12;
- <span class="symbol"><A NAME="ref_382_4">Trace_Size</A></span> : <b>constant</b> := 32;
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>;
-</PRE></BODY></HTML>
+ <span class="symbol"><a name="ref_356_4">TRACE_TIMES_First</a></span> : <b>constant</b> := 0;
+ <span class="symbol"><a name="ref_357_4">TRACE_TIMES_Last</a></span> : <b>constant</b> := 0;
+ <span class="symbol"><a name="ref_358_4">TRACE_TPUTS_First</a></span> : <b>constant</b> := 1;
+ <span class="symbol"><a name="ref_359_4">TRACE_TPUTS_Last</a></span> : <b>constant</b> := 1;
+ <span class="symbol"><a name="ref_360_4">TRACE_UPDATE_First</a></span> : <b>constant</b> := 2;
+ <span class="symbol"><a name="ref_361_4">TRACE_UPDATE_Last</a></span> : <b>constant</b> := 2;
+ <span class="symbol"><a name="ref_362_4">TRACE_MOVE_First</a></span> : <b>constant</b> := 3;
+ <span class="symbol"><a name="ref_363_4">TRACE_MOVE_Last</a></span> : <b>constant</b> := 3;
+ <span class="symbol"><a name="ref_364_4">TRACE_CHARPUT_First</a></span> : <b>constant</b> := 4;
+ <span class="symbol"><a name="ref_365_4">TRACE_CHARPUT_Last</a></span> : <b>constant</b> := 4;
+ <span class="symbol"><a name="ref_366_4">TRACE_CALLS_First</a></span> : <b>constant</b> := 5;
+ <span class="symbol"><a name="ref_367_4">TRACE_CALLS_Last</a></span> : <b>constant</b> := 5;
+ <span class="symbol"><a name="ref_368_4">TRACE_VIRTPUT_First</a></span> : <b>constant</b> := 6;
+ <span class="symbol"><a name="ref_369_4">TRACE_VIRTPUT_Last</a></span> : <b>constant</b> := 6;
+ <span class="symbol"><a name="ref_370_4">TRACE_IEVENT_First</a></span> : <b>constant</b> := 7;
+ <span class="symbol"><a name="ref_371_4">TRACE_IEVENT_Last</a></span> : <b>constant</b> := 7;
+ <span class="symbol"><a name="ref_372_4">TRACE_BITS_First</a></span> : <b>constant</b> := 8;
+ <span class="symbol"><a name="ref_373_4">TRACE_BITS_Last</a></span> : <b>constant</b> := 8;
+ <span class="symbol"><a name="ref_374_4">TRACE_ICALLS_First</a></span> : <b>constant</b> := 9;
+ <span class="symbol"><a name="ref_375_4">TRACE_ICALLS_Last</a></span> : <b>constant</b> := 9;
+ <span class="symbol"><a name="ref_376_4">TRACE_CCALLS_First</a></span> : <b>constant</b> := 10;
+ <span class="symbol"><a name="ref_377_4">TRACE_CCALLS_Last</a></span> : <b>constant</b> := 10;
+ <span class="symbol"><a name="ref_378_4">TRACE_DATABASE_First</a></span> : <b>constant</b> := 11;
+ <span class="symbol"><a name="ref_379_4">TRACE_DATABASE_Last</a></span> : <b>constant</b> := 11;
+ <span class="symbol"><a name="ref_380_4">TRACE_ATTRS_First</a></span> : <b>constant</b> := 12;
+ <span class="symbol"><a name="ref_381_4">TRACE_ATTRS_Last</a></span> : <b>constant</b> := 12;
+ <span class="symbol"><a name="ref_382_4">Trace_Size</a></span> : <b>constant</b> := 32;
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>.<a href="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</a>;
+</pre></body></html>
diff --git a/doc/html/ada/terminal_interface__ads.htm b/doc/html/ada/terminal_interface__ads.htm
index 08b3879a5f25..6876bd0b9f8e 100644
--- a/doc/html/ada/terminal_interface__ads.htm
+++ b/doc/html/ada/terminal_interface__ads.htm
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<TITLE>terminal_interface.ads</TITLE>
+<html>
+<head>
+<title>terminal_interface.ads</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
*.comment {
@@ -11,56 +11,56 @@
color: red;
}
</style>
-</HEAD>
-<BODY>
-<HR><DIV style="text-align:center"><H1> File : terminal_interface.ads </H1></DIV><HR>
-<PRE>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Terminal_Interface --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- S P E C --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
-<span class="comment"><EM>-- Copyright 1999-2003,2006 Free Software Foundation, Inc. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
-<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
-<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
-<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
-<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
-<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
-<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
-<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
-<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
-<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
-<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
-<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
-<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
-<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
-<span class="comment"><EM>-- --</EM></span>
-<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
-<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
-<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
-<span class="comment"><EM>-- authorization. --</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
-<span class="comment"><EM>-- Version Control:</EM></span>
-<span class="comment"><EM>-- @Revision: 1.15 @</EM></span>
-<span class="comment"><EM>-- @Date: 2020/02/02 23:34:34 @</EM></span>
-<span class="comment"><EM>-- Binding Version 01.00</EM></span>
-<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
-<b>package</b> <span class="symbol"><A NAME="ref_43_9">Terminal_Interface</A></span> <b>is</b>
- <b>pragma</b> Pure (<A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>);
-<span class="comment"><EM>--</EM></span>
-<span class="comment"><EM>-- Everything is in the child units</EM></span>
-<span class="comment"><EM>--</EM></span>
-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>;
-</PRE></BODY></HTML>
+</head>
+<body>
+<hr><div style="text-align:center"><h1> File : terminal_interface.ads </h1></div><hr>
+<pre>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- <strong>GNAT</strong> ncurses Binding --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Terminal_Interface --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- S P E C --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Copyright 2020 Thomas E. Dickey --</em></span>
+<span class="comment"><em>-- Copyright 1999-2003,2006 Free Software Foundation, Inc. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Permission is hereby granted, free of charge, to any person obtaining a --</em></span>
+<span class="comment"><em>-- copy of this software and associated documentation files (the --</em></span>
+<span class="comment"><em>-- "Software"), to deal in the Software without restriction, including --</em></span>
+<span class="comment"><em>-- without limitation the rights to use, copy, modify, merge, publish, --</em></span>
+<span class="comment"><em>-- distribute, distribute with modifications, sublicense, and/or sell --</em></span>
+<span class="comment"><em>-- copies of the Software, and to permit persons to whom the Software is --</em></span>
+<span class="comment"><em>-- furnished to do so, subject to the following conditions: --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- The above copyright notice and this permission notice shall be included --</em></span>
+<span class="comment"><em>-- in all copies or substantial portions of the Software. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</em></span>
+<span class="comment"><em>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</em></span>
+<span class="comment"><em>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</em></span>
+<span class="comment"><em>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</em></span>
+<span class="comment"><em>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</em></span>
+<span class="comment"><em>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</em></span>
+<span class="comment"><em>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</em></span>
+<span class="comment"><em>-- --</em></span>
+<span class="comment"><em>-- Except as contained in this notice, the name(s) of the above copyright --</em></span>
+<span class="comment"><em>-- holders shall not be used in advertising or otherwise to promote the --</em></span>
+<span class="comment"><em>-- sale, use or other dealings in this Software without prior written --</em></span>
+<span class="comment"><em>-- authorization. --</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<span class="comment"><em>-- Author: Juergen Pfeifer, 1996</em></span>
+<span class="comment"><em>-- Version Control:</em></span>
+<span class="comment"><em>-- @Revision: 1.15 @</em></span>
+<span class="comment"><em>-- @Date: 2020/02/02 23:34:34 @</em></span>
+<span class="comment"><em>-- Binding Version 01.00</em></span>
+<span class="comment"><em>------------------------------------------------------------------------------</em></span>
+<b>package</b> <span class="symbol"><a name="ref_43_9">Terminal_Interface</a></span> <b>is</b>
+ <b>pragma</b> Pure (<a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>);
+<span class="comment"><em>--</em></span>
+<span class="comment"><em>-- Everything is in the child units</em></span>
+<span class="comment"><em>--</em></span>
+<b>end</b> <a href="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</a>;
+</pre></body></html>
diff --git a/doc/html/announce.html b/doc/html/announce.html
index 699372019b83..2aa03cfab131 100644
--- a/doc/html/announce.html
+++ b/doc/html/announce.html
@@ -1,7 +1,7 @@
<!--
- $Id: announce.html,v 1.64 2020/10/19 08:18:48 tom Exp $
+ $Id: announce.html,v 1.70 2024/04/27 18:38:45 tom Exp $
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
@@ -29,13 +29,11 @@
****************************************************************************
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-
<html>
<head>
<meta name="generator" content=
- "HTML Tidy for HTML5 for Linux version 5.2.0">
-
- <title>Announcing ncurses 6.2</title>
+ "HTML Tidy for HTML5 for Linux version 5.6.0">
+ <title>Announcing ncurses 6.5</title>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
<meta http-equiv="Content-Type" content=
"text/html; charset=us-ascii">
@@ -57,9 +55,8 @@
}
</style>
</head>
-
<body>
- <h1 class="no-header">Announcing ncurses 6.2</h1>
+ <h1 class="no-header">Announcing ncurses 6.5</h1>
<h2><a name="h2-overview" id="h2-overview">Overview</a></h2>
@@ -103,38 +100,33 @@
including</p>
<ul>
- <li><a href=
- "https://invisible-island.net/ncurses/man/captoinfo.1m.html"><span class="part-name">
- captoinfo</span></a>, a termcap conversion tool</li>
+ <li><a href="https://invisible-island.net/ncurses/man/captoinfo.1m.html"><span class=
+ "part-name">captoinfo</span></a>, a termcap conversion
+ tool</li>
- <li><a href=
- "https://invisible-island.net/ncurses/man/clear.1.html"><span class="part-name">
- clear</span></a>, utility for clearing the screen</li>
+ <li><a href="https://invisible-island.net/ncurses/man/clear.1.html"><span class=
+ "part-name">clear</span></a>, utility for clearing the
+ screen</li>
- <li><a href=
- "https://invisible-island.net/ncurses/man/infocmp.1m.html"><span class="part-name">
- infocmp</span></a>, the terminfo decompiler</li>
+ <li><a href="https://invisible-island.net/ncurses/man/infocmp.1m.html"><span class=
+ "part-name">infocmp</span></a>, the terminfo decompiler</li>
- <li><a href=
- "https://invisible-island.net/ncurses/man/tabs.1.html"><span class="part-name">
- tabs</span></a>, set tabs on a terminal</li>
+ <li><a href="https://invisible-island.net/ncurses/man/tabs.1.html"><span class=
+ "part-name">tabs</span></a>, set tabs on a terminal</li>
- <li><a href=
- "https://invisible-island.net/ncurses/man/tic.1m.html"><span class="part-name">
- tic</span></a>, the terminfo compiler</li>
+ <li><a href="https://invisible-island.net/ncurses/man/tic.1m.html"><span class=
+ "part-name">tic</span></a>, the terminfo compiler</li>
- <li><a href=
- "https://invisible-island.net/ncurses/man/toe.1m.html"><span class="part-name">
- toe</span></a>, list (table of) terminfo entries</li>
+ <li><a href="https://invisible-island.net/ncurses/man/toe.1m.html"><span class=
+ "part-name">toe</span></a>, list (table of) terminfo
+ entries</li>
- <li><a href=
- "https://invisible-island.net/ncurses/man/tput.1.html"><span class="part-name">
- tput</span></a>, utility for retrieving terminal capabilities
- in shell scripts</li>
+ <li><a href="https://invisible-island.net/ncurses/man/tput.1.html"><span class=
+ "part-name">tput</span></a>, utility for retrieving terminal
+ capabilities in shell scripts</li>
- <li><a href=
- "https://invisible-island.net/ncurses/man/tset.1.html"><span class="part-name">
- tset</span></a>, to initialize the terminal</li>
+ <li><a href="https://invisible-island.net/ncurses/man/tset.1.html"><span class=
+ "part-name">tset</span></a>, to initialize the terminal</li>
</ul>
<p>Full manual pages are provided for the library and tools.</p>
@@ -145,28 +137,27 @@
<blockquote>
<p><a href=
- "ftp://ftp.invisible-island.net/ncurses/">ftp://ftp.invisible-island.net/ncurses/</a>
+ "https://invisible-island.net/archives/ncurses/">https://invisible-island.net/archives/ncurses/</a>
or<br>
<a href=
"https://invisible-mirror.net/archives/ncurses/">https://invisible-mirror.net/archives/ncurses/</a>&nbsp;.</p>
</blockquote>
- <p>It is also available via anonymous FTP at the GNU distribution
- site</p>
+ <p>It is also available at the GNU distribution site</p>
<blockquote>
<p><a href=
- "ftp://ftp.gnu.org/gnu/ncurses/">ftp://ftp.gnu.org/gnu/ncurses/</a>&nbsp;.</p>
+ "https://ftp.gnu.org/gnu/ncurses/">https://ftp.gnu.org/gnu/ncurses/</a>&nbsp;.</p>
</blockquote>
<h2><a name="h2-release-notes" id="h2-release-notes">Release
Notes</a></h2>
<p>These notes are for <span class="main-name">ncurses</span>
- 6.2, released <strong>February 12, 2020</strong>.</p>
+ 6.5, released <strong>April 27, 2024</strong>.</p>
<p>This release is designed to be source-compatible with
- <span class="main-name">ncurses</span> 5.0 through 6.1; providing
+ <span class="main-name">ncurses</span> 5.0 through 6.4; providing
extensions to the application binary interface (ABI). Although
the source can still be configured to support the <span class=
"main-name">ncurses</span> 5 ABI, the reason for the release is
@@ -178,303 +169,181 @@
this announcement.</p>
<p>The most <a href="#h3-bug-fixes">important
- bug-fixes/improvements</a> dealt with user-defined capabilities
- in terminal descriptions. The release notes also mention some
- other bug-fixes, but are focused on new features and improvements
- to existing features since <span class="main-name">ncurses</span>
- 6.1 release.</p>
+ bug-fixes/improvements</a> dealt with robustness issues. The
+ release notes also mention some other bug-fixes, but are focused
+ on new features and improvements to existing features since
+ <span class="main-name">ncurses</span> 6.4 release.</p>
<h3><a name="h3-library" id="h3-library">Library improvements</a></h3>
<h4><a name="h4-new-library" id="h4-new-library">New features</a></h4>
- <p>There are several new features:</p>
+ <p>These are new features:</p>
<ul>
<li>
- <p><a href=
- "https://invisible-island.net/ncurses/man/form_field_opts.3x.html">
- O_EDGE_INSERT_STAY</a> tells the form library to optionally
- delay cursor movement on a field edge/boundary</p>
- </li>
-
- <li>
- <p><a href=
- "https://invisible-island.net/ncurses/man/form_field_opts.3x.html">
- O_INPUT_FIELD</a> extension to form library allows a dynamic
- field to shrink if the new limit is smaller than the current
- field size.</p>
- </li>
-
- <li>
- <p>added <a href=
- "https://invisible-island.net/ncurses/man/curs_memleaks.3x.html">
- exit_curses</a> and <a href=
- "https://invisible-island.net/ncurses/man/curs_memleaks.3x.html">
- exit_terminfo</a> to replace internal symbols for
- leak-checking.</p>
- </li>
+ <p>The low-level terminfo and termcap interfaces are used
+ both by the higher-level curses library, as well as by many
+ applications.</p>
- <li>
- <p>added <a href=
- "https://invisible-island.net/ncurses/man/curs_trace.3x.html#h3-Functions">
- curses_trace</a>, to replace trace().</p>
- </li>
- </ul>
+ <p>The functions which convert parameterized terminal
+ capability strings for output to the terminal
+ (<code>tiparm</code> and <code>tparm</code>) analyze the
+ capability string to determine which parameters are strings
+ (i.e., addresses), versus numbers (not addresses).</p>
- <p>Additionally, to improve performance other changes (and
- extensions) are provided in this release:</p>
-
- <ul>
- <li>
- <p>mouse decoding now handles shift/control/alt logic when
- decoding xterm's 1006 mode</p>
- </li>
-
- <li>
- <p>ncurses now defines a limit for <a href=
- "https://invisible-island.net/ncurses/man/curs_getstr.3x.html">
- wgetnstr</a>, <a href=
- "https://invisible-island.net/ncurses/man/curs_get_wstr.3x.html">
- wgetn_wstr</a> when length is negative or &ldquo;too
- large&rdquo;.</p>
- </li>
+ <p>The library's analysis of a capability string may differ
+ from the calling application's design if environment
+ variables are used to point to an invalid terminal database.
+ This is a longstanding problem with <em>all</em>
+ implementations of terminfo, dating from the early 1980s.</p>
- <li>reordered loop-limit checks in <a href=
- "https://invisible-island.net/ncurses/man/curs_insstr.3x.html">winsnstr</a>
- in case the string has no terminating null and only the number
- of characters is used.</li>
+ <p>Two new functions address this problem: by providing a
+ function which allows the calling application to tell ncurses
+ how many string-parameters to expect:</p>
- <li>
- <p>there is now no buffer-size limit when reading the
- <a href="https://invisible-island.net/ncurses/man/ncurses.3x.html#h3-TERMCAP">
- <tt>$TERMCAP</tt></a> variable.</p>
- </li>
-
- <li>
- <p>the <a href=
- "https://invisible-island.net/ncurses/man/ncurses.3x.html#h3-TERMCAP">
- <tt>$TERMCAP</tt></a> variable may be interpreted as a
- fallback to a terminfo entry</p>
- </li>
+ <ul>
+ <li><code>tiscan_s</code> helps applications check
+ formatting capabilities that would be passed to
+ <code>tiparm_s</code>.</li>
- <li>
- <p><a href=
- "https://invisible-island.net/ncurses/man/curs_terminfo.3x.html#h3-Output-Functions">
- <tt>mvcur</tt></a> now decides whether to use hard-tabs,
- using <strong><tt>xt</tt></strong>,
- <strong><tt>tbc</tt></strong> and
- <strong><tt>hts</tt></strong> as clues.</p>
+ <li><code>tiparm_s</code> provides applications a way to
+ tell ncurses what the expected parameters are for a
+ capability.</li>
+ </ul>
</li>
<li>
- <p>extended colors are improved by modifying an internal call
- to <a href=
- "https://invisible-island.net/ncurses/man/curs_terminfo.3x.html#h3-Output-Functions">
- <tt>vid_puts</tt></a> to pass extended color pairs e.g., from
- <tt>tty_update.c</tt> and <tt>lib_mvcur.c</tt></p>
- </li>
+ <p>The ncurses library supports a compile-time feature
+ (enabled with the configure <code>--enable-check-size</code>
+ option) which simplifies initialization with terminals which
+ do not negotiate window (screen) size. This is done in
+ <code>setupterm</code>, by providing for using ANSI
+ cursor-position report (in user6/user7 terminfo capabilities)
+ to obtain the screen size if neither environment variables or
+ ioctl is used.</p>
- <li>
- <p id="getenv-fixes">the initialization functions now avoid
- relying upon persistent data for the result from <a href=
- "#getenv-check"><tt>getenv</tt></a></p>
+ <p>The ncurses test-program with options
+ &ldquo;<code>-E&nbsp;-T</code>&rdquo; demonstrates this
+ feature.</p>
</li>
- <li>
- <p>scrolling is improved:</p>
-
- <ul>
- <li>a limit check in <tt>newline_forces_scroll</tt> handles
- the case where the row is inside scroll-margins, but not at
- the end.</li>
-
- <li>
- <p>improved loop limits in <tt>_nc_scroll_window</tt>
- handle a case where the scrolled data is a pad which is
- taller than the window.</p>
- </li>
- </ul>
- </li>
+ <li>add functions to query tty-flags in
+ <code>SCREEN</code></li>
</ul>
+ <p>This release drops compatibility with obsolete versions of
+ <a href="https://invisible-island.net/ncurses/tack/">tack</a>, e.g., pre-1.08</p>
+
<h4><a name="h4-fixes-library" id="h4-fixes-library">Other
improvements</a></h4>
- <p>These are revised features:</p>
+ <p>These are improvements to existing features:</p>
<ul>
<li>
- <p>used &ldquo;<tt>const</tt>&rdquo; in some prototypes
- rather than <tt>NCURSES_CONST</tt> where X/Open Curses was
- updated to do this, e.g., <tt>wscanw</tt>, <tt>newterm</tt>,
- the terminfo interface. Also use &ldquo;<tt>const</tt>&rdquo;
- for consistency in the termcap interface, which was withdrawn
- by X/Open Curses in Issue 5 (2007). As of Issue 7, X/Open
- Curses still lacks &ldquo;<tt>const</tt>&rdquo; for certain
- return values, e.g., <a href=
- "https://invisible-island.net/ncurses/man/curs_util.3x.html#h3-keyname_key_name">
- keyname</a>.</p>
- </li>
-
- <li>
- <p>modified <a href=
- "https://invisible-island.net/ncurses/man/curs_bkgd.3x.html#h3-bkgd">
- <tt>wbkgd</tt></a> and <a href=
- "https://invisible-island.net/ncurses/man/curs_bkgrnd.3x.html#h3-bkgrnd">
- <tt>wbkgrnd</tt></a> to improve compatibility with SVr4
- curses, changing the way the window rendition is updated when
- the background character is modified</p>
- </li>
-
- <li>
- <p>improved terminfo write/read by modifying the fourth item
- of the extended header to denote the number of valid strings
- in the extended string table (see <a href=
- "https://invisible-island.net/ncurses/man/term.5.html#h3-EXTENDED-STORAGE-FORMAT">
- term(5)</a>).</p>
- </li>
-
- <li>
- <p>modified the initialization checks for mouse so that the
- <a href=
- "/ncurses/terminfo.src.html#tic-xterm_sm_1006"><tt>xterm+sm+1006</tt></a>
- block will work with terminal descriptions not mentioning
- <em>xterm</em>.</p>
- </li>
- </ul>
+ <p>In addition to the new, safer function
+ <code>tiparm_s</code>, ncurses adds checks to make the older
+ <code>tiparm</code>, <code>tparm</code> and
+ <code>tgoto</code> functions safer:</p>
- <p>These were done to limit or ultimately deprecate features:</p>
+ <ul>
+ <li>
+ <p>the terminfo functions <code>tiparm</code> and
+ <code>tparm</code> ensure that the capability string
+ comes from the terminal description which ncurses loads,
+ rather than from random data which the application
+ happens to have.</p>
+ </li>
- <ul>
- <li>
- <p>deprecated <a href=
- "https://invisible-island.net/ncurses/NEWS.html#t970831">safe-sprintf</a>,
- since the <tt>vsnprintf</tt> function, which does what was
- needed, was standardized long ago.</p>
- </li>
+ <li>
+ <p>the <code>tgoto</code> function disallows capabilities
+ which its analysis shows will attempt to use string
+ parameters.</p>
+ </li>
- <li>
- <p>marked <a href=
- "https://invisible-island.net/ncurses/man/curs_printw.3x.html#h2-PORTABILITY">
- <tt>vwprintw</tt></a> and <tt>vwscanw</tt> as deprecated;
- recommend using <a href=
- "https://invisible-island.net/ncurses/man/curs_printw.3x.html">
- <tt>vw_printw</tt></a> and <tt>vw_scanw</tt>,
- respectively.</p>
+ <li>
+ <p>ncurses uses internal functions which correspond to
+ <code>tiparm</code>, and <code>tgoto</code> which ensure
+ that the capability strings which are passed to these
+ functions come from the loaded terminal description.</p>
+ </li>
+ </ul>
</li>
<li>
- <p>added deprecation warnings for internal functions called
- by older versions of <a href=
- "https://invisible-island.net/ncurses/tack.html">tack</a>.</p>
+ <p>improve check in <code>lib_tparm.c</code>, ensuring that a
+ char* fits into a <code>TPARM_ARG</code></p>
</li>
<li>
- <p>removed unused <tt>_nc_import_termtype2</tt> function.</p>
+ <p>modify <code>_nc_syserr_abort</code> to use
+ <code>_nc_env_access</code>, rather than only checking root
+ uid</p>
</li>
- </ul>
-
- <p>These are improvements to existing features:</p>
- <ul>
<li>
- <p>check parameter of <a href=
- "https://invisible-island.net/ncurses/man/curs_threads.3x.html">
- set_escdelay</a>, return ERR if negative.</p>
+ <p>improve thread lock in <code>lib_trace.c</code></p>
</li>
<li>
- <p>check parameter of <a href=
- "https://invisible-island.net/ncurses/man/curs_threads.3x.html">
- set_tabsize</a>, return ERR if not greater than zero</p>
+ <p>modify <code>flushinp</code> to use file descriptors in
+ <code>SCREEN</code>, rather than from <code>TERMINAL</code>,
+ and check if they are for a terminal, like SVr4</p>
</li>
<li>
- <p>correct a status-check in _nc_read_tic_entry() so that if
- reading a hex/b64 <a href=
- "https://invisible-island.net/ncurses/man/ncurses.3x.html#h3-TERMINFO">
- <tt>$TERMINFO</tt></a>, and the <a href=
- "https://invisible-island.net/ncurses/man/ncurses.3x.html#h3-TERM">
- <tt>$TERM</tt></a> does not match, fall-through to the
- compiled-in search list.</p>
+ <p>modify <code>mcprint</code> to use file descriptor in
+ <code>SCREEN</code>, for consistency</p>
</li>
<li>
- <p>amend check for <a href=
- "https://invisible-island.net/ncurses/man/terminfo.5.html#h3-Predefined-Capabilities">
- <tt>repeat_char</tt></a> to handle a case where setlocale()
- was called after <a href=
- "https://invisible-island.net/ncurses/man/curs_initscr.3x.html">
- <tt>initscr</tt></a></p>
+ <p>modify internal function <code>_nc_read_file_entry</code>
+ to show relevant filename in warnings</p>
</li>
<li>
- <p>move macro for <a href=
- "https://invisible-island.net/ncurses/man/curs_touch.3x.html">
- <tt>is_linetouched</tt></a> inside
- <strong><tt>NCURSES_NOMACROS</tt></strong>
- <em><tt>ifndef</tt></em>.</p>
+ <p>improve checks in internal function
+ <code>convert_string</code> for corrupt terminfo entry</p>
</li>
<li>
- <p>use <tt>_nc_copy_termtype2</tt> rather than direct
- assignment in <a href=
- "https://invisible-island.net/ncurses/man/curs_terminfo.3x.html#h3-Initialization">
- setupterm</a>, in case it is called repeatedly using fallback
- terminfo descriptions</p>
+ <p>review/improve handling of out-of-memory conditions</p>
</li>
<li>
- <p>improve workaround for Solaris wcwidth versus line-drawing
- characters</p>
+ <p>limit delays to 30 seconds, i.e., padding delays in
+ terminfo, as well as <code>napms</code> and
+ <code>delay_output</code> functions</p>
</li>
<li>
- <p>add checks in <a href=
- "https://invisible-island.net/ncurses/man/resizeterm.3x.html">
- <tt>repair_subwindows</tt></a> to keep the current position
- and scroll-margins inside the resized subwindow.</p>
+ <p>fix reallocation loop for <code>vsnprintf</code> in
+ <code>_nc_sprintf_string</code> by copying the va_list
+ variable</p>
</li>
<li>
- <p>correct a buffer-limit in <tt>write_entry.c</tt> for
- systems that use caseless filenames.</p>
+ <p>modify <code>delscreen</code> to limit the windows which
+ it creates to just those associated with the screen</p>
</li>
<li>
- <p>improved build-time utility <em>report_offsets</em>:</p>
-
- <ul>
- <li>
- <p>add categories, e.g., "w" for wide-character, "t" for
- threads to make the report more readable. Reorganized the
- structures reported to make the categories more
- apparent.</p>
- </li>
-
- <li>
- <p>add <tt>NCURSES_GLOBALS</tt> and
- <tt>NCURSES_PRESCREEN</tt> to report to show how similar
- the different <em>libtinfo</em> configurations are.</p>
- </li>
- </ul>
+ <p>modify <code>endwin</code> to return an error if it is
+ called again without an intervening screen update</p>
</li>
<li>
- <p>modified some header files to ensure that those include
- necessary files except for the previously-documented
- cases</p>
+ <p>modify <code>wenclose</code> to handle pads</p>
</li>
<li>
- <p>added some traces in initialization to show whether a
- fallback entry is used.</p>
+ <p>eliminate use of <code>PATH_MAX</code> in
+ <code>lib_trace.c</code></p>
</li>
<li>
- <p>made minor optimization to reduce calls to
- _nc_reserve_pairs</p>
+ <p>provide for any <code>CCHARW_MAX</code> greater than 1</p>
</li>
</ul>
@@ -482,38 +351,32 @@
<ul>
<li>
- <p>fix a special case in <tt>PutAttrChar</tt> where a cell is
- marked as alternate-character set, but the terminal does not
- actually support the given graphic character. This would
- happen in an older terminal such as <em>vt52</em>, which
- lacks most line-drawing capability.</p>
+ <p>correct loop termination condition in
+ <code>waddnstr</code> and <code>waddnwstr</code></p>
</li>
<li>
- <p>corrected flag for "seq" method of db 1.8.5 interface,
- needed by toe on some of the BSDs.</p>
+ <p>improve parsing in internal function
+ <code>_nc_msec_cost</code>, allowing a single decimal
+ point</p>
</li>
<li>
- <p>modify comparison in make_hash.c to correct a special case
- in collision handling for Caps-hpux11</p>
+ <p>amend parameter check for entire string versus specific
+ length in <code>winsnstr</code> and <code>wins_nwstr</code>
+ to match Solaris; make similar correction to
+ <code>wins_nwstr</code></p>
</li>
<li>
- <p>add extended_slk_color{,_sp} symbols to the appropriate
- package/*.{map,sym} files</p>
+ <p>correct internal function <code>wadd_wch_literal</code>
+ when adding a non-spacing character to a double-width
+ character</p>
</li>
<li>
- <p>modify lib_setup to avoid calling pthread_self() without
- first verifying that the address is valid, i.e., for weak
- symbols</p>
- </li>
-
- <li>
- <p>add a couple of broken-linker symbols to the list of
- versioned symbols to help with link-time optimization versus
- weak symbols.</p>
+ <p>correct definition of <code>Charable</code> macro for
+ non-wide ncurses library .</p>
</li>
</ul>
@@ -521,467 +384,303 @@
improvements</a></h3>
<p id="h4-utilities">Several improvements were made to the
- utility programs:</p>
+ utility programs. Some were done to make the <code>infocmp</code>
+ option &ldquo;<tt>-u</tt>&rdquo; option help refactor the
+ terminal database.</p>
<dl>
- <dt><span class="part-name">clear</span>
+ <dt><span class="part-name"><a href=
+ "https://invisible-island.net/ncurses/man/infocmp.1m.html">infocmp</a></span>
</dt>
<dd>
<ul>
- <li>improved logic for clearing with the <em>E3</em>
- extension, in case the terminal scrolls content onto its
- saved-lines before actually clearing the display, by
- clearing the saved-lines after clearing the display</li>
- </ul>
- </dd>
+ <li>
+ <p>add limit checks for processing extended capabilities
+ with the &ldquo;<code>-u</code>&rdquo; option</p>
+ </li>
- <dt><span class="part-name">infocmp</span>
- </dt>
+ <li>
+ <p>correct initial alignment of extended capabilities, so
+ that the &ldquo;<code>-u</code>&rdquo; option can be used
+ for more than two terminal types</p>
+ </li>
- <dd>
- <ul>
- <li>omit filtering of &ldquo;<tt>OTxx</tt>&rdquo; names
- which are used for obsolete capabilities, when the output
- is sorted by long-names. This change helps when making a
- table of the short/long capability names.</li>
+ <li>
+ <p>modify &ldquo;<code>-u</code>&rdquo; option to not
+ report cancels for strings which were already cancelled
+ in a use'd chunk.</p>
+ </li>
+
+ <li>
+ <p>correct an assignment &ldquo;<code>-u</code>&rdquo;
+ for detecting if a boolean is unset in a base entry and
+ set in a use'd chunk, i.e., if it was cancelled.</p>
+ </li>
</ul>
</dd>
- <dt><span class="part-name">tic</span>
+ <dt><span class="part-name"><a href=
+ "https://invisible-island.net/ncurses/man/tic.1m.html">tic</a></span>
</dt>
<dd>
<ul>
- <li>added check for consistent alternate character set
- capabilities.</li>
-
- <li>added check for paired <tt>indn</tt>/<tt>rin</tt>.</li>
-
- <li>added check for terminals with <tt>parm_dch</tt> vs
- <tt>parm_ich</tt>.</li>
-
- <li>added check for the case where
- <tt>setf</tt>/<tt>setb</tt> are given using different
- strings, but provide identical results to
- <tt>setaf</tt>/<tt>setab</tt>.</li>
-
- <li>corrected check for <tt>ich1</tt>.</li>
+ <li>
+ <p>correct limit-check when dumping tc/use clause via
+ &ldquo;<code>-I</code>&rdquo;</p>
+ </li>
- <li>changed a too-large terminal entry from a fatal error
- to a warning.</li>
- </ul>
- </dd>
+ <li>
+ <p>check return value of <code>_nc_save_str</code>, in
+ special case where extended capabilities are processed
+ but the terminal description was not initialized</p>
+ </li>
- <dt><span class="part-name">toe</span>
- </dt>
+ <li>
+ <p>modify check for multiply defined aliases to report
+ problems within the current runtime rather than for
+ conflicts with pre-existing terminal descriptions.</p>
+ </li>
- <dd>
- <ul>
- <li>ignores any hex/b64 <tt>$TERMINFO</tt> value in the
- list of terminfo databases.</li>
+ <li>
+ <p>disallow using <code>$TERMINFO</code> or
+ <code>$HOME/.terminfo</code> when
+ &ldquo;<code>-o</code>&rdquo; option is used</p>
+ </li>
</ul>
</dd>
- <dt><span class="part-name">tset</span>
- </dt>
+ <dt><span class="part-name"><a href=
+ "https://invisible-island.net/ncurses/man/tput.1.html">tput</a></span> and <span class=
+ "part-name"><a href=
+ "https://invisible-island.net/ncurses/man/tset.1.html">tset</a></span></dt>
<dd>
<ul>
- <li>replace check in <span class="part-name">reset</span>
- command for obsolete &ldquo;<tt>pt</tt>&rdquo; capability
- using <tt>tbc</tt> and <tt>hts</tt> capabilities as
- clues</li>
-
- <li>modify <span class="part-name">reset</span> to allow
- for tabstops at intervals other than 8.</li>
-
- <li>change <span class="part-name">reset</span>'s behavior
- for margins to simply clear soft-margins if possible,
- rather than clearing and then setting them according to the
- terminal's width.</li>
- </ul>
- </dd>
+ <li>
+ <p>add &ldquo;<code>-v</code>&rdquo; option to tput, to
+ show warnings</p>
+ </li>
- <dt><span class="part-name">tput</span>
- </dt>
+ <li>
+ <p>modify <em>reset</em> command to avoid altering clocal
+ if the terminal uses a modem</p>
+ </li>
- <dd>
- <ul>
- <li>add &ldquo;<tt>x</tt>&rdquo; to <tt>getopt</tt> string
- so that &ldquo;<tt>tput&nbsp;-x&nbsp;clear</tt>&rdquo;
- works.</li>
+ <li>
+ <p>modify <em>reset</em> feature to avoid 1-second sleep
+ if running in a pseudo-terminal</p>
+ </li>
</ul>
</dd>
</dl>
- <p>Several changes were made to the generated ncurses*config
- scripts and the analogous &ldquo;<tt>.pc</tt>&rdquo; files to
- reduce differences between the configurations they report:</p>
-
- <ul>
- <li>
- <p>modified the ncurse*-config and pc-files to more closely
- match for the <tt>-I</tt> and <tt>-l</tt> options.</p>
- </li>
-
- <li>
- <p>filtered out linker-specs from the <tt>--libs</tt>
- report.</p>
- </li>
-
- <li>
- <p>amended the ncurses*-config and pc-files to take into
- account the rpath hack which differed between those
- files.</p>
- </li>
-
- <li>
- <p>modified generated ncurses*config and ncurses.pc,
- ncursesw.pc, etc., to list helper libraries such as gpm for
- static linking.</p>
- </li>
- </ul>
-
<h4><a name="h4-examples" id="h4-examples">Examples</a></h4>
<p>Along with the library and utilities, improvements were made
to the <a href=
- "https://invisible-island.net/ncurses/ncurses-examples.html">ncurses-examples</a>.
- Most of this activity aimed at improving the test-packages. A few
- changes are more generally useful, e.g., for the main ncurses
- test-program, and for analyzing traces using the
- <em>tracemunch</em> script:</p>
+ "https://invisible-island.net/ncurses/ncurses-examples.html">ncurses-examples</a>:</p>
<ul>
<li>
- <p>improve recovery from error when reading command-character
- in <tt>test/ncurses.c</tt>, showing the relevant error
- message and not exiting on EINTR.</p>
- </li>
-
- <li>
- <p>improve <em>tracemunch</em>, by keeping track of
- <tt>TERMINAL*</tt> values, and if tracing was first turned on
- after initialization, attempt to show distinct screen, window
- and terminal names anyway.</p>
+ <p>modify <code>test_tparm</code> to account for extended
+ capabilities</p>
</li>
<li>
- <p>modify <em>tracemunch</em> to accept filename parameters
- in addition to use as a pipe/filter.</p>
+ <p>corrected mouse mask in <code>test/testcurs.c</code></p>
</li>
<li>
- <p>update <em>tracemunch</em> to work with <em>perl
- 5.26.2</em>, which changed the rules for escaping regular
- expressions.</p>
+ <p>modify <code>test/clip_printw.c</code> to optionally test
+ non-wrapped updates</p>
</li>
<li>
- <p>add some checks in <em>tracemunch</em> for undefined
- variables.</p>
+ <p>modify <code>test/test_mouse.c</code> to use curses api
+ for raw/noraw</p>
</li>
<li>
- <p>modify <tt>TurnOn</tt>/<tt>TurnOff</tt> macros (in
- lib_vidattr.c and lib_vid_attr.c) to avoid expansion of
- &ldquo;<tt>CUR</tt>&rdquo; in trace.</p>
+ <p>modify <code>test/clip_printw.c</code> to optionally test
+ non-wrapped updates</p>
</li>
</ul>
- <p>There are other new demo/test programs and reusable
- examples:</p>
+ <p>There is one new demo/test programs:</p>
<dl>
- <dt><span class="part-name">color_content</span>
+ <dt><span class="part-name"><em>test/test_endwin.c</em></span>
</dt>
- <dd>Demonstrate the <tt>color_content</tt> and
- <tt>extended_color_content</tt> functions.</dd>
-
- <dt><span class="part-name">demo_tabs</span>
- </dt>
-
- <dd>A simple demo of tabs in curses.</dd>
-
- <dt><span class="part-name">dump_window</span>
- </dt>
-
- <dd>A portable curses screen-dump, used to compare ncurses
- screen contents with Solaris.</dd>
-
- <dt><span class="part-name">pair_content</span>
- </dt>
-
- <dd>Demonstrate the <tt>pair_content</tt> and
- <tt>extended_pair_content</tt> functions.</dd>
-
- <dt><span class="part-name">report_hashing</span>
- </dt>
-
- <dd>Check hash-tables used for terminfo and termcap names.</dd>
-
- <dt><span class="part-name">parse_rgb</span>
- </dt>
-
- <dd>Sample implementation of the ncurses RGB extension from
- <a href=
- "https://invisible-island.net/ncurses/man/user_caps.5.html">user_caps.5</a>,
- used in <em>picsmap</em> and <em>savescreen</em> programs.</dd>
+ <dd>
+ <p>This program shows the return-status from
+ <code>endwin</code> with different combinations of
+ <code>endwin</code> (repeated), <code>initscr</code>,
+ <code>newterm</code>.</p>
+ </dd>
</dl>
- <p>A variety of improvements were made to existing programs, both
- new features as well as options added to make the set of programs
- more consistent.</p>
+ <h3><a name="h3-database" id="h3-database">Terminal database</a></h3>
+
+ <p>There are several new terminal descriptions:</p>
<ul>
<li>
- <p>add &ldquo;<tt>-l</tt>&rdquo; option to test/background,
- to dump screen contents in a form that lets different curses
- implementations be compared.</p>
+ <p><a href=
+ "https://invisible-island.net/ncurses/terminfo.src.html#tic-ansi_apparrows"><tt>ansi+apparrows</tt></a></p>
</li>
<li>
- <p>add &ldquo;<tt>@</tt>&rdquo; command to test/ncurses
- F-test, to allow rapid jump to different character pages.</p>
+ <p><a href=
+ "https://invisible-island.net/ncurses/terminfo.src.html#tic-contour"><tt>contour</tt></a></p>
</li>
<li>
- <p>added enum, regex examples to test/demo_forms</p>
+ <p><a href=
+ "https://invisible-island.net/ncurses/terminfo.src.html#tic-linux_kbs"><tt>linux+kbs</tt></a>
+ for terminals which imitate xterm's behavior with Linux</p>
</li>
<li>
- <p>amend Scaled256() macro in test/picsmap.c to cover the
- full range 0..1000</p>
+ <p><a href=
+ "https://invisible-island.net/ncurses/terminfo.src.html#tic-rio"><tt>rio</tt></a>,
+ <a href=
+ "https://invisible-island.net/ncurses/terminfo.src.html#tic-rio-direct"><tt>rio-direct</tt></a></p>
</li>
<li>
- <p>corrected pathname used in Ada95 sample programs for
- <tt>explain.txt</tt>, to work with test-packages, and used an
- awk script to split the resulting pathname when it would be
- too long for a single line.</p>
+ <p><a href=
+ "https://invisible-island.net/ncurses/terminfo.src.html#tic-mostlike"><tt>mostlike</tt></a></p>
</li>
<li>
- <p>ignore interrupted system-call in test/ncurses's
- command-line, e.g., if the terminal were resized.</p>
+ <p><a href=
+ "https://invisible-island.net/ncurses/terminfo.src.html#tic-ms-vt100-16color"><tt>ms-vt100-16color</tt></a>,
+ <a href=
+ "https://invisible-island.net/ncurses/terminfo.src.html#tic-winconsole"><tt>winconsole</tt></a></p>
</li>
<li>
- <p>improved ifdef's for <tt>TABSIZE</tt> variable, to help
- with AIX/HPUX ports.</p>
+ <p><a href=
+ "https://invisible-island.net/ncurses/terminfo.src.html#tic-vt100_noapp"><tt>vt100+noapp</tt></a>,
+ <a href=
+ "https://invisible-island.net/ncurses/terminfo.src.html#tic-vt100_noapp_pc"><tt>vt100+noapp+pc</tt></a>,
+ <a href=
+ "https://invisible-island.net/ncurses/terminfo.src.html#tic-xterm_app_pc"><tt>xterm+app+pc</tt></a>,
+ <a href=
+ "https://invisible-island.net/ncurses/terminfo.src.html#tic-xterm_decedit"><tt>xterm+decedit</tt></a>
+ from <a href="https://invisible-island.net/xterm/xterm.log.html#xterm_389">xterm
+ #389</a></p>
</li>
- </ul>
-
- <h3><a name="h3-database" id="h3-database">Terminal database</a></h3>
-
- <p>There are several new terminal descriptions:</p>
-
- <blockquote style="word-break:keep-all">
- <p><tt>alacritty</tt>, <tt>domterm</tt>, <tt>kitty</tt>,
- <tt>mintty</tt>, <tt>mintty-direct</tt>, <tt>ms-terminal</tt>,
- <tt>n7900</tt>, <tt>nsterm-build309</tt>,
- <tt>nsterm-direct</tt>, <tt>screen5</tt>, <tt>ti703</tt>,
- <tt>ti707</tt>, <tt>ti703-w</tt>, <tt>ti707-w</tt>
- <tt>vscode</tt>, <tt>vscode-direct</tt>, <tt>xterm-mono</tt>,
- <tt>xterm.js</tt></p>
- </blockquote>
- <p>There are many changes to existing terminal descriptions. Some
- were updates to several descriptions:</p>
-
- <ul>
- <li>use <a href=
- "/ncurses/terminfo.src.html#tic-ansi_rep"><tt>ansi+rep</tt></a>
- in a dozen places</li>
-
- <li>add rs1 to konsole, mlterm</li>
-
- <li>improve several flash capabilities with trailing mandatory
- delays</li>
-
- <li>drop <tt>ich1</tt> from <tt>rxvt-basic</tt>, <tt>Eterm</tt>
- and <tt>mlterm</tt> to improve compatibility with old
- non-curses programs</li>
-
- <li>add/use <a href=
- "/ncurses/terminfo.src.html#tic-xterm_keypad"><tt>xterm+keypad</tt></a>
- in <tt>xterm-new</tt></li>
-
- <li>use <a href=
- "/ncurses/terminfo.src.html#tic-xterm_sl-twm"><tt>xterm+sl-twm</tt></a>
- for consistency, nine places</li>
+ <li>
+ <p><a href=
+ "https://invisible-island.net/ncurses/terminfo.src.html#tic-putty_cursor"><tt>putty+cursor</tt></a>
+ to reflect amending of modified cursor-keys in 2021</p>
+ </li>
- <li>improve <em>xm</em> example in <a href=
- "/ncurses/terminfo.src.html#tic-xterm_x11mouse">xterm+x11mouse</a>
- and <a href=
- "/ncurses/terminfo.src.html#tic-xterm_sm_1006">xterm+sm_1006</a>.</li>
+ <li>
+ <p><a href=
+ "https://invisible-island.net/ncurses/terminfo.src.html#tic-wezterm"><tt>wezterm</tt></a></p>
+ </li>
</ul>
- <p>while others affected specific descriptions. These were
- retested, to take into account changes by their developers:</p>
-
- <blockquote>
- <p><tt>terminator</tt>, <tt>st</tt></p>
- </blockquote>
-
- <p>while these are specific fixes based on reviewing
- documentation, user reports, or warnings from <span class=
- "part-name">tic</span>:</p>
-
- <dl>
- <dt><a href=
- "/ncurses/terminfo.src.html#tic-adds200">adds200</a>:</dt>
-
- <dd>
- <ul>
- <li>fix typo</li>
- </ul>
- </dd>
-
- <dt><a href=
- "/ncurses/terminfo.src.html#tic-gnome-256color">gnome-256color</a>
- </dt>
-
- <dd>
- <ul>
- <li>base entry on "gnome", not "vte", for consistency</li>
- </ul>
- </dd>
-
- <dt><a href=
- "/ncurses/terminfo.src.html#tic-interix">interix</a>
- </dt>
-
- <dd>
- <ul>
- <li>trim unnecessary setf/setb</li>
- </ul>
- </dd>
-
- <dt><a href=
- "/ncurses/terminfo.src.html#tic-linux-16color">linux-16color</a>
- </dt>
-
- <dd>
- <ul>
- <li>accommodate <a href=
- "https://lists.gnu.org/archive/html/bug-ncurses/2019-10/msg00061.html">
- Linux console driver</a> incompatibility introduced in
- early 2018</li>
- </ul>
- </dd>
-
- <dt><a href=
- "/ncurses/terminfo.src.html#tic-nsterm-256color">nsterm-256color</a>:</dt>
-
- <dd>
- <ul>
- <li>add nsterm-build309 to replace nsterm-256color,
- assigning the latter as an alias of nsterm, to make mouse
- work with nsterm-256color</li>
- </ul>
- </dd>
-
- <dt><a href=
- "/ncurses/terminfo.src.html#tic-regent40">regent40</a>:</dt>
-
- <dd>
- <ul>
- <li>renumber function-keys to match manual</li>
- </ul>
- </dd>
-
- <dt><a href=
- "/ncurses/terminfo.src.html#tic-regent60">regent60</a>:</dt>
-
- <dd>
- <ul>
- <li>add cd (clr_eos)</li>
-
- <li>corrected acsc</li>
-
- <li>add shifted function-keys</li>
- </ul>
- </dd>
-
- <dt><a href=
- "/ncurses/terminfo.src.html#tic-tvi950">tvi950</a>:</dt>
-
- <dd>
- <ul>
- <li>added function-key definitions to agree with Televideo
- 950 manual</li>
-
- <li>corrected acsc</li>
+ <p>There are many changes to existing terminal descriptions. Some
+ were updates to several descriptions, using the
+ <code>infocmp</code> &ldquo;<code>-u</code>&rdquo; option in a
+ script to determine which <em>building-block</em> entries could
+ be used to replace multiple capability settings (and trim
+ redundant information).</p>
- <li>remove bogus kf0</li>
+ <p>Other changes include:</p>
- <li>add bel</li>
- </ul>
- </dd>
+ <ul>
+ <li>
+ <p><a href=
+ "https://invisible-island.net/ncurses/terminfo.src.html#toc-_X_T_E_R_M__Extensions_">document</a>
+ XF, kxIN and kxOUT</p>
+ </li>
- <dt><a href=
- "/ncurses/terminfo.src.html#tic-tvi955">tvi955</a>:</dt>
+ <li>
+ <p>add note on <a href=
+ "https://invisible-island.net/ncurses/terminfo.src.html#tic-sun"><tt>sun</tt></a>
+ regarding wscons/cmdtool/shelltool</p>
+ </li>
- <dd>
- <ul>
- <li>fix typo</li>
- </ul>
- </dd>
+ <li>
+ <p>remove DECCOLM+DECSCLM from <a href=
+ "https://invisible-island.net/ncurses/terminfo.src.html#tic-foot"><tt>foot</tt></a></p>
+ </li>
- <dt><a href=
- "/ncurses/terminfo.src.html#tic-vi200">vi200</a>:</dt>
+ <li>
+ <p>add xterm+focus to <a href=
+ "https://invisible-island.net/ncurses/terminfo.src.html#tic-foot_base"><tt>foot+base</tt></a></p>
+ </li>
- <dd>
- <ul>
- <li>add acsc string, including right/down-arrow</li>
- </ul>
- </dd>
+ <li>
+ <p>add ecma+strikeout to <a href=
+ "https://invisible-island.net/ncurses/terminfo.src.html#tic-putty"><tt>putty</tt></a></p>
+ </li>
- <dt><a href=
- "/ncurses/terminfo.src.html#tic-wy50">wy50</a>:</dt>
+ <li>
+ <p>use CSI 3J in <a href=
+ "https://invisible-island.net/ncurses/terminfo.src.html#tic-vte-2017"><tt>vte-2017</tt></a></p>
+ </li>
- <dd>
- <ul>
- <li>corrected acsc</li>
- </ul>
- </dd>
+ <li>
+ <p>use oldxterm+sm+1006 in <a href=
+ "https://invisible-island.net/ncurses/terminfo.src.html#tic-vte-2014"><tt>vte-2014</tt></a></p>
+ </li>
- <dt><a href="/ncurses/terminfo.src.html#tic-wy50">wy50</a> and
- <a href="/ncurses/terminfo.src.html#tic-wy60">wy60</a>:</dt>
+ <li>
+ <p>modify <a href=
+ "https://invisible-island.net/ncurses/terminfo.src.html#tic-xgterm"><tt>xgterm</tt></a>
+ to work around line-drawing bug</p>
+ </li>
- <dd>
- <ul>
- <li>add shifted function-keys as kF1 to kF16</li>
- </ul>
- </dd>
+ <li>
+ <p>add xterm focus mode 1004 to <a href=
+ "https://invisible-island.net/ncurses/terminfo.src.html#tic-xterm_focus"><tt>xterm+focus</tt></a>
+ as fe/fd capabilities, like vim.</p>
+ </li>
- <dt><a href=
- "/ncurses/terminfo.src.html#tic-xterm_x11hilite">xterm+x11hilite</a>:</dt>
+ <li>
+ <p>add xterm+focus to <a href=
+ "https://invisible-island.net/ncurses/terminfo.src.html#tic-alacritty_common"><tt>alacritty+common</tt></a></p>
+ </li>
- <dd>
- <ul>
- <li>eliminate unused <em>p5</em> parameter.</li>
- </ul>
- </dd>
- </dl>
+ <li>
+ <p>add XR/xr, to work with vim, and use RV/rv to denote DA2
+ and its response</p>
+ </li>
- <p>A few entries use extensions (user-defined terminal
- capabilities):</p>
+ <li>
+ <p>add XF flag to <a href=
+ "https://invisible-island.net/ncurses/terminfo.src.html#tic-xterm_focus"><tt>xterm+focus</tt></a>
+ so that termcap applications can be aware of terminals which
+ may support focus in/out</p>
+ </li>
- <ul>
- <li>use <a href=
- "/ncurses/terminfo.src.html#tic-xterm_sm_1006"><tt>xterm+sm+1006</tt></a>
- (aka &ldquo;SGR 1006 mouse&rdquo;) for konsole-base and
- putty</li>
+ <li>
+ <p>use xterm+focus in <a href=
+ "https://invisible-island.net/ncurses/terminfo.src.html#tic-xterm-p370"><tt>xterm-p370</tt></a>
+ and <a href=
+ "https://invisible-island.net/ncurses/terminfo.src.html#tic-tmux"><tt>tmux</tt></a></p>
+ </li>
- <li>add <em><tt>Smol/Rmol</tt></em> user-defined capability to
- <tt>tmux</tt> and <tt>vte-2018</tt></li>
+ <li>
+ <p>remove xterm+sm+1006 from <a href=
+ "https://invisible-island.net/ncurses/terminfo.src.html#tic-tmux"><tt>tmux</tt></a></p>
+ </li>
- <li>add <em><tt>Smulx</tt></em> user-defined capability to
- <tt>tmux</tt>, <tt>vte-2018</tt></li>
+ <li>
+ <p>NetBSD-related fixes for <a href=
+ "https://invisible-island.net/ncurses/terminfo.src.html#tic-x68k"><tt>x68k</tt></a> and
+ <a href=
+ "https://invisible-island.net/ncurses/terminfo.src.html#tic-wsvt25"><tt>wsvt25</tt></a></p>
+ </li>
</ul>
<h3><a name="h3-documentation" id=
@@ -1001,9 +700,8 @@
<li>
<p>fills in overlooked descriptions of features which were
- described in the <a href=
- "https://invisible-island.net/ncurses/NEWS.html">NEWS</a>
- file but treated sketchily in manual pages.</p>
+ described in the <a href="https://invisible-island.net/ncurses/NEWS.html">NEWS</a> file
+ but treated sketchily in manual pages.</p>
</li>
</ul>
@@ -1016,95 +714,69 @@
<p>Corrections:</p>
<ul>
- <li>correct error-returns listed in manual pages for a few
- form functions</li>
+ <li>
+ <p>add assignment in <code>CF_MAN_PAGES</code> to fill in
+ value for <code>TERMINFO_DIRS</code> in ncurses, terminfo
+ and tic manpages.</p>
+ </li>
- <li>corrected prototypes in several manpages using script
- to extract those in compilable form.</li>
+ <li>
+ <p>clarify interaction of <code>-R</code> option versus
+ <code>-C</code>, <code>-I</code> and <code>-r</code> in
+ <code>infocmp</code> manpage.</p>
+ </li>
- <li>fix typo in <a href=
- "https://invisible-island.net/ncurses/man/term.5.html#h3-EXTENDED-NUMBER-FORMAT">
- term.5</a>, improve explanation of format</li>
- </ul>
- </li>
+ <li>
+ <p>correct manpage description of panel_hidden.</p>
+ </li>
- <li>
- <p>Clarify in manual pages that <a href=
- "https://invisible-island.net/ncurses/man/curs_printw.3x.html#h2-PORTABILITY">
- vwprintw</a> and <a href=
- "https://invisible-island.net/ncurses/man/curs_scanw.3x.html#h2-PORTABILITY">
- vwscanw</a> are obsolete.<br>
- They have not been part of X/Open Curses since 2007.</p>
- </li>
+ <li>
+ <p>improve manpage description for addch versus unctrl
+ format used for non-printable characters.</p>
+ </li>
- <li>
- <p>New/improved history and portability sections:</p>
+ <li>
+ <p>improve manpages discussing file descriptors in
+ low-level functions.</p>
+ </li>
- <ul>
- <li><a href=
- "https://invisible-island.net/ncurses/man/curs_addch.3x.html#h3-ACS-Symbols">
- curs_addch.3x</a> gives some background for ACS
- symbols.</li>
-
- <li><a href=
- "https://invisible-island.net/ncurses/man/curs_getcchar.3x.html#h2-PORTABILITY">
- curs_getcchar.3x</a> explains a difference between ncurses
- and X/Open Curses.</li>
-
- <li><a href=
- "https://invisible-island.net/ncurses/man/curs_getstr.3x.html#h2-PORTABILITY">
- curs_getstr.3x</a> gives historical/portability background
- for the length parameter of <tt>wgetnstr</tt>.</li>
-
- <li><a href=
- "https://invisible-island.net/ncurses/man/curs_slk.3x.html">
- curs_slk.3x</a> lists a few differences between SVr4 curses
- and X/Open Curses for soft-keys.</li>
-
- <li><a href=
- "https://invisible-island.net/ncurses/man/curs_terminfo.3x.html">
- curs_terminfo.3x</a> explains that the initial
- implementation of terminfo in SVr2 was mostly replaced by
- other developers in SVr3.</li>
-
- <li><a href=
- "https://invisible-island.net/ncurses/man/infocmp.1m.html">infocmp.1</a>
- explains that the initial version of terminfo had no tool
- for decompiling descriptions. That came later, with SVr3,
- with a different developer.</li>
-
- <li><a href=
- "https://invisible-island.net/ncurses/man/tabs.1.html">tabs.1</a>
- tells more than you wanted to know about the tool.</li>
-
- <li><a href=
- "https://invisible-island.net/ncurses/man/tic.1m.html">tic.1</a>
- explains that the initial version of terminfo had a
- rudimentary tool (based on termcap) for compiling entries.
- The tool used with Unix was developed by others for
- SVr3.</li>
-
- <li><a href=
- "https://invisible-island.net/ncurses/man/toe.1m.html">toe.1</a>
- explains the origin of this tool.</li>
+ <li>
+ <p>improve description of search rules for terminal
+ descriptions in terminfo manpage.</p>
+ </li>
+
+ <li>
+ <p>modify dist.mk to avoid passing developer's comments
+ in manpages into the generated html documentation.</p>
+ </li>
+
+ <li>
+ <p>modify test-package "ncurses6-doc" to use
+ manpage-aliases, which in turn required a change to the
+ configure script to factor in the extra-suffix option
+ when deriving alias names.</p>
+ </li>
</ul>
</li>
<li>
- <p>Improvements for <a href=
- "https://invisible-island.net/ncurses/man/user_caps.5.html">user_caps.5</a>:</p>
+ <p>New/improved history and portability sections:</p>
<ul>
- <li>mention <tt>meml</tt>, <tt>memu</tt> and
- <tt>box1</tt></li>
-
- <li>expanded description of <tt>XM</tt></li>
+ <li>
+ <p>add information about "ttycap", termcap's forerunner,
+ to tset.1</p>
+ </li>
- <li>add a clarification regarding the <tt>RGB</tt>
- capability.</li>
+ <li>
+ <p>document limitations of tparm, and error-returns in
+ curs_terminfo.3x</p>
+ </li>
- <li>mention user_caps.5 in the tic and infocmp manual
- pages.</li>
+ <li>
+ <p>document limitations of tgoto, and error-returns in
+ curs_termcap.3x</p>
+ </li>
</ul>
</li>
@@ -1112,52 +784,20 @@
<p>Other improvements:</p>
<ul>
- <li><a href=
- "https://invisible-island.net/ncurses/man/curs_add_wch.3x.html#h3-Line-Graphics">
- curs_add_wch.3x</a> adds note about Unicode terminology for
- the line-drawing characters.</li>
-
- <li><a href=
- "https://invisible-island.net/ncurses/man/curs_color.3x.html#h2-RETURN-VALUE">
- curs_color.3x</a> improves discussion of error returns and
- extensions.</li>
-
- <li><a href=
- "https://invisible-island.net/ncurses/man/curs_mouse.3x.html">
- curs_mouse.3x</a> explains how the <tt>kmous</tt> and
- <tt>XM</tt> capabilities are used for xterm-mouse
- input.</li>
-
- <li><a href=
- "https://invisible-island.net/ncurses/man/curs_refresh.3x.html#h3-wnoutrefresh_doupdate">
- curs_refresh.3x</a> improves documentation regarding the
- virtual and physical screens.</li>
-
- <li><a href=
- "https://invisible-island.net/ncurses/man/curs_util.3x.html">
- curs_util.3x</a> mentions a difference between SVr4 and
- X/Open Curses for <tt>unctrl.h</tt></li>
-
- <li><a href=
- "https://invisible-island.net/ncurses/man/curs_variables.3x.html#h2-PORTABILITY">
- curs_variables.3x</a> improves description of the
- <em>init_tabs</em> capability and <tt>TABSIZE</tt>
- variable.</li>
-
- <li><a href=
- "https://invisible-island.net/ncurses/man/ncurses.3x.html#h2-ALTERNATE-CONFIGURATIONS">
- ncurses.3x</a> improves documentation regarding
- feature-test macros in curses.h</li>
-
- <li><a href=
- "https://invisible-island.net/ncurses/man/resizeterm.3x.html#h3-resize_term">
- resizeterm.3x</a> about top-level windows which touch the
- screen's borders.</li>
-
- <li><a href=
- "https://invisible-island.net/ncurses/man/tput.1.html#h3-Terminal-Size">
- tput.1</a> clarifies how <em>tput</em> determines the
- terminal size.</li>
+ <li>
+ <p>This release has many changes to improve the
+ formatting and style of the manpages.</p>
+ </li>
+
+ <li>
+ <p>Manpages now use consistent section-naming, page
+ headers and footers (including the modification date for
+ each page).</p>
+ </li>
+
+ <li>
+ <p>Table layout has been revised.</p>
+ </li>
</ul>
</li>
</ul>
@@ -1165,249 +805,165 @@
<p>There are no new manual pages (all of the manual page updates
are to existing pages).</p>
- <p>Some of the improvements are more subtle, relating to the way
- the information is presented. For instance, the generated
- terminfo.5 file uses a different table layout, allowing it to use
- space on wide terminals more effectively.</p>
-
<h3><a name="h3-bug-fixes" id="h3-bug-fixes">Interesting
bug-fixes</a></h3>
- <p>While there were many bugs fixed during development of ncurses
- 6.2, only a few (the reason for this release) were both important
- and interesting. Most of the bug-fixes were for local issues
- which did not affect compatibility across releases. Since those
- are detailed in the NEWS file no elaboration is needed here.</p>
+ <p>The changes to <tt>tparm</tt>, <tt>tgoto</tt> which improve
+ the design of the low-level interfaces are <em>interesting</em>,
+ but are not bug-fixes <em>per se</em>.</p>
- <p>The interesting bugs were in tic/infocmp's handling of
- user-defined capabilities. These were not recent bugs. Initially
- it was a simple problem:</p>
-
- <ul>
- <li>The user-defined capabilities can be any type (boolean,
- number or string), but once given a type all uses of the name
- must conform to that type&mdash;unless some special support for
- a particular multi-typed name is built into ncurses.</li>
+ <h3><a name="h3-config-config" id=
+ "h3-config-config">Configuration changes</a></h3>
- <li>
- <p>One of simpleterm's contributors copied some definitions
- for using <em>tmux</em>'s user-defined capabilities in
- <a href=
- "https://git.suckless.org/st/commit/06f8cf8ca87a81db15816658c40b2afcd1ad5332.html">
- late in 2016</a>.</p>
+ <h4><a name="h4-config-major" id="h4-config-major">Major
+ changes</a></h4>
- <blockquote>
- <pre class="demo-name">
-diff --git a/st.info b/st.info
-@@ -185,7 +185,10 @@ st| simpleterm,
- tsl=\E]0;,
- xenl,
- vpa=\E[%i%p1%dd,
--
-+# Tmux unofficial extensions, see TERMINFO EXTENSIONS in tmux(1)
-+ Se,
-+ Ss,
-+ Tc,
-
- st-256color| simpleterm with 256 colors,
- use=st,
-</pre>
- </blockquote>
- </li>
+ <p>These are the major changes (aside from introducing <a href=
+ "#h4-new-library"><tt>tiparm_s</tt></a>):</p>
+ <ul>
<li>
- <p>Later, in (referring to a version from <a href=
- "https://git.suckless.org/st/commit/c0882f2ed1d7a2dd0fa2efa52157e6fc6fde3652.html">
- mid-2017</a>), a user asked to have it updated in
- ncurses.</p>
+ <p>use wide-character (ncursesw) by default</p>
</li>
<li>
- <p>However, it had an error from the change in late 2016. The
- terminal description made what <em>tmux</em> expected to be
- <strong>string</strong> actually a
- <strong>boolean</strong>.</p>
-
- <p>Over the years, there were problems with each of
- simpleterm's terminal descriptions. I repaired those, and
- usually dealt with the problem.</p>
+ <p>use opaque typedefs by default</p>
</li>
+ </ul>
+
+ <p>However, most of the work on configure scripts was done to
+ reduce warnings within the configure script:</p>
+ <ul>
<li>
- <p>The difference in this case was that when compiling the
- terminal database, <em>tic</em> may have in memory the
- definitions for more than one terminal description (so that
- it can resolve &ldquo;<tt>use=</tt>&rdquo; clauses). Seeing
- two different types for the same name, in certain situations
- it would incorrectly merge the symbol tables for the two
- terminal descriptions.</p>
+ <p>intrusive warnings from GNU grep regarding fgrep and
+ egrep</p>
</li>
<li>
- <p>On simpleterm's side, their bug was finally fixed in
- <a href=
- "https://git.suckless.org/st/commit/83866428de031300eab03fbb116bcf7d2b1d4f60.html">
- late 2019</a>, three years after the bug was created.</p>
+ <p>fatal errors in compile-checks, arising from recent
+ &ldquo;Modern&nbsp;C&rdquo; efforts by some developers which
+ caused longstanding configure checks to fail.</p>
+
+ <p>After repairing the configure script, none of that
+ activity affected ncurses because stricter warnings are used
+ routinely in development.</p>
</li>
</ul>
- <p>For ncurses, the elapsed time to fix this bug was less than
- three years. Someone reported a problem with the terminal
- description a few weeks after releasing ncurses 6.1 (in <a href=
- "https://github.com/tmux/tmux/issues/1264">tmux #1264</a>), and
- the terminal description was updated that week (ncurses patch
- <a href=
- "https://invisible-island.net/ncurses/NEWS.html#t20180224">20180224</a>):</p>
-
- <blockquote>
- <pre class="demo-name">
-20180224
- + modify _nc_resolve_uses2() to detect incompatible types when merging
- a "use=" clause of extended capabilities. The problem was seen in a
- defective terminfo integrated from simpleterm sources in 20171111,
- compounded by repair in 20180121.
- + correct Ss/Ms interchange in st-0.7 entry (tmux #1264) -TD
-</pre>
- </blockquote>
-
- <p>The larger part of that change added a check to prevent a
- simple merge of terminal descriptions where the same user-defined
- name was used with different types. But it raised some
- questions:</p>
+ <p>Other improvements made to configure checks include</p>
<ul>
<li>
- <p>Was there a reliable way to manage terminal descriptions
- which used the same extended name in different ways?</p>
+ <p>use <a href=
+ "https://invisible-island.net/ncurses/INSTALL.html#option:enable-string-hacks">string-hacks</a>
+ in alloc_entry.c, alloc_type.c and hardscroll.c, overlooked
+ due to compiler changes in recent OpenBSD releases</p>
</li>
<li>
- <p>Should ncurses provide a registry of well-known extended
- names, with their types?</p>
+ <p>revise progs.priv.h to provide for NC_ISATTY reuse</p>
</li>
- </ul>
-
- <p>Since the correction to <a href=
- "https://invisible-island.net/ncurses/ncurses.html#download_database">
- <tt>terminfo.src</tt></a> could have been readily adopted by
- packagers, there was nothing more to be done from ncurses'
- standpoint on that part. But improving ncurses to prevent issues
- like that is the reason for making a release.</p>
- <p>Nothing more (constructive) was mentioned with regard to
- simpleterm. But a few problems were found in the handling of
- user-defined capabilities:</p>
+ <li>
+ <p>configure check for MB_LEN_MAX provides warning as
+ needed</p>
+ </li>
- <ul>
<li>
- <p>Forward-references to user-defined capabilities in a
- &ldquo;<tt>use=</tt>&rdquo; clause did not allocate new data
- for each use. In <em>tic</em>, successive compilation of
- terminal entries could add user-defined capabilities to the
- wrong terminal entry.</p>
+ <p>trim a space after some "-R" options, fixing builds for
+ applications built using clang and ncurses on Solaris</p>
+ </li>
- <p>This was not noticed before, since xterm's terminal
- descriptions were the main users of the feature, and almost
- all of the uses of the building-blocks which contained
- user-defined capabilities were backward-references.</p>
+ <li>
+ <p>work around misconfiguration of MacPorts gcc13, which
+ exposes invalid definition of <tt>MB_LEN_MAX</tt> in gcc's
+ fallback copy of <tt>limits.h</tt></p>
</li>
<li>
- <p>There is one (documented) case where ncurses 6.1 supports
- a user-defined capability that could be any type (i.e.,
- &ldquo;RGB&rdquo;). The check added in February 2018 to guard
- against mismatches did not handle all of the combinations
- needed.</p>
+ <p>modified experimental Windows driver works with xterm
+ mouse protocol</p>
</li>
</ul>
- <p>Both of these issues dated from the original implementation of
- user-defined capabilities. Fixing them does not change the
- terminal database, but a older <em>tic</em> without the fixes
- will not be able to handle terminfo sources which rely upon those
- fixes. Starting in June 2019, the download link for the terminfo
- source file was capped at that date. The development sources have
- an up-to-date copy of the file, for people with a legitimate need
- for it.</p>
-
- <p>The &ldquo;<tt>-c</tt>&rdquo; (check) option of <em>tic</em>
- is not very useful if it cannot offer advice on parameters needed
- for user-defined capabilities. The various <em>Caps</em> files
- were reorganized to reduce redundancy, and in the common portion
- (<a href=
- "https://github.com/ThomasDickey/ncurses-snapshots/blob/master/include/Caps-ncurses">Caps-ncurses</a>),
- a registry of user-defined capabilities is provided for use by
- <em>tic</em>. While users can still define their own custom
- capabilities, <em>tic</em> will not offer any advice when their
- parameters do not match.</p>
-
- <p>In ncurses 6.2, <em>tic</em> makes a special check to allow
- any type for <em>RGB</em>, but its being able to do this relies
- upon fixes made in the ncurses library in mid-2019.</p>
-
- <h3><a name="h3-config-config" id=
- "h3-config-config">Configuration changes</a></h3>
-
- <h4><a name="h4-config-major" id="h4-config-major">Major
- changes</a></h4>
-
- <p>There are no major changes. Several new options were added to
- ease integration of packages with systems using different
- versions of <em>GNAT</em> and <em>ncurses</em>. Also,
- improvements were made to configure checks.</p>
-
<h4><a name="h4-config-options" id=
"h4-config-options">Configuration options</a></h4>
- <p>There are a few new/modified configure options:</p>
+ <p>There are a few new configure options:</p>
<dl>
- <dt><tt>--with-config-suffix</tt>
+ <dt><a href=
+ "https://invisible-island.net/ncurses/INSTALL.html#option:disable-setuid-environ"><tt>--disable-setuid-environ</tt></a>
</dt>
<dd>
- <p>helps work around a filename conflict with Debian packages
- versus test-packages.</p>
+ <p>Compile with environment restriction, so certain
+ environment variables are not available when running via a
+ setuid/setgid application. These are (for example
+ <tt>$TERMINFO</tt>) those that allow the search path for the
+ terminfo or termcap entry to be customized.</p>
+
+ <p>A setuid/setgid application inherits its environment
+ variables from the current user, in contrast to sudo which
+ may limit the environment variables that ncurses uses.</p>
</dd>
- <dt><tt>--with-ada-libname</tt>
+ <dt><a href=
+ "https://invisible-island.net/ncurses/INSTALL.html#option:enable-check-size"><tt>--enable-check-size</tt></a>
</dt>
<dd>
- <p>allows one to rename the &ldquo;AdaCurses&rdquo; library
- (at least one packager prefers a lowercase name).</p>
+ <p>Compile-in feature to detect screensize for terminals
+ which do not advertise their screensize, e.g., serial
+ terminals.</p>
</dd>
- <dt><tt>--with-fallbacks</tt>
+ <dt><a href=
+ "https://invisible-island.net/ncurses/INSTALL.html#option:with-abi-altered"><tt>--with-abi-altered=<em>NUM</em></tt></a>
</dt>
<dd>
- <p>now ensures there is a value, and adds the fallback
- information to top-level Makefile summary.</p>
+ <p>Override the displayed (rather than compiled-in) ABI. Only
+ packagers who have created configurations where the ABI
+ differs from ncurses should be interested in this option.</p>
</dd>
- <dt><tt>--with-pcre2</tt>
+ <dt><a href=
+ "https://invisible-island.net/ncurses/INSTALL.html#option:with-strip-program"><tt>--with-strip-program=<em>XXX</em></tt></a>
</dt>
<dd>
- <p>check for pcre-posix library to help with MinGW port.</p>
+ <p>When stripping executables during install, use the
+ specified program rather than &ldquo;strip&rdquo; overriding
+ program chosen by the install program for stripping
+ executables.</p>
</dd>
+ </dl>
- <dt><tt>--with-tic-path</tt> and<br></dt>
+ <p>These configure options are modified:</p>
- <dt><tt>--with-infocmp-path</tt>
+ <dl>
+ <dt><a href=
+ "https://invisible-island.net/ncurses/INSTALL.html#option:with-pkg-config-libdir"><tt>--with-pkg-config-libdir[=<em>DIR</em>]</tt></a>
</dt>
<dd>
- <p>help work around problems building fallback source using
- pre-6.0 tic/infocmp.</p>
+ <p>The optional <em>DIR</em> parameter can now be
+ &ldquo;auto&rdquo; to automatically use pkg-config's library
+ directory.</p>
+
+ <p>The default is <tt>$(libdir)</tt>.</p>
</dd>
- <dt><tt>--with-versioned-syms</tt>
+ <dt><a href=
+ "https://invisible-island.net/ncurses/INSTALL.html#option:with-xterm-kbs"><tt>--with-xterm-kbs[=<em>XXX</em>]</tt></a>
</dt>
<dd>
- <p>option value can now be a relative pathname.</p>
+ <p>The default is &ldquo;auto&rdquo; which tells the
+ configure script to choose BS or DEL according to platform
+ defaults.</p>
</dd>
</dl>
@@ -1418,148 +974,117 @@ diff --git a/st.info b/st.info
<ul>
<li>
- <p>ignore <a href=
- "/ncurses/man/ncurses.3x.html#h3-TERMINFO"><tt>$TERMINFO</tt></a>
- as a default value in configure script if it came from the
- <tt>infocmp</tt> <strong><tt>-Q</tt></strong> option.</p>
+ <p>add/use configure check for <code>clock_gettime</code>, to
+ supersede <code>gettimeofday</code>.</p>
</li>
<li>
- <p>distinguish gcc from icc and clang when the
- <tt>--enable-warnings</tt> option is not used, to avoid
- unnecessary warnings about unrecognized inline options</p>
+ <p>modify configure script check for pkg-config library
+ directory to take into account an older version 0.15.0 which
+ used PKG_CONFIG_PATH but not PKG_CONFIG_LIBDIR</p>
</li>
<li>
- <p>consistently prepend new libraries as they are found
- during configuration, rather than relying upon the linker to
- resolve order dependencies of libraries.</p>
+ <p>allow for MinGW32-/64-bit configurations to use
+ _DEFAULT_SOURCE</p>
</li>
<li>
- <p>modified configure scripts to reduce relinking/ranlib
- during library install :</p>
-
- <ul>
- <li>use &ldquo;<tt>install -p</tt>&rdquo; when available,
- to avoid need for ranlib of static libraries.</li>
-
- <li>scripts which use
- &ldquo;<tt>--disable-relink</tt>;&rdquo; add a 1-second
- sleep to work around tools which use whole-second
- timestamps, e.g., in <tt>utime</tt> rather than the actual
- file system resolution.</li>
- </ul>
+ <p>modify CF_XOPEN_SOURCE macro's amend default case to avoid
+ undefining _XOPEN_SOURCE if _POSIX_C_SOURCE is defined</p>
</li>
<li>
- <p id="getenv-check">add configure check for <a href=
- "#getenv-fixes"><tt>getenv</tt></a> to work around
- implementation shown in Emscripten which overwrites the
- previous return value on each call.</p>
-
- <p>Use that to optionally suppress <tt>START_TRACE</tt>
- macro, whose call to <tt>getenv</tt> may not work
- properly</p>
+ <p>updated configure script macro CF_XOPEN_SOURCE, for
+ uClibc-ng</p>
</li>
<li>
- <p>change target configure level for <tt>_XOPEN_SOURCE</tt>
- to 600 to address use of <tt>vsscanf</tt> and
- <tt>setenv</tt>.</p>
+ <p>modify version-check for gcc/g++, now works for msys2</p>
</li>
<li>
- <p>reduce use of <tt>_GNU_SOURCE</tt> for current glibc where
- <tt>_DEFAULT_SOURCE</tt> combines with
- <tt>_XOPEN_SOURCE</tt></p>
+ <p>build-fixes related to configure-options and/or
+ platform:</p>
- <p>Allow for Cygwin's newlib when checking for the
- _DEFAULT_SOURCE symbol.</p>
+ <ul>
+ <li>fix for <tt>--enable-fvisibility</tt></li>
- <p>MidnightBSD is now checked for the
- <tt>_XOPEN_SOURCE</tt>-related definitions.</p>
- </li>
+ <li>fix for unusual values of
+ <tt>--with-rel-version</tt></li>
- <li>
- <p>If the check for <tt>va_copy</tt> or <tt>__va_copy</tt>
- fails,</p>
+ <li>fix for unusual values of
+ <tt>--with-abi-version</tt></li>
- <ul>
- <li>configure now tries copying the pointers for
- <tt>va_list</tt>, or as an array.</li>
+ <li>fix for <tt>--disable-tcap-names</tt></li>
- <li>alternatively, it checks for
- <tt>__builtin_va_copy</tt>(), which could be used with AIX
- <tt>xlc</tt> in <em>c89</em> mode.</li>
+ <li>fix for termcap in <tt>nc_access.h</tt></li>
</ul>
</li>
<li>
- <p>several changes to support a port to Ultrix 3.1:</p>
+ <p>other configure-script improvements:</p>
<ul>
- <li>check if "b" binary feature of fopen works</li>
+ <li>recent msys2 headers work with
+ <tt>_DEFAULT_SOURCE</tt>; amend check</li>
- <li>check for missing feature of locale.h</li>
+ <li>use <tt>$ac_includes_default</tt> in most cases where
+ stdlib.h should work</li>
- <li>add fallback for strstr() in test-programs</li>
+ <li>use <tt>#error</tt> consistently vs "make an
+ error"</li>
- <li>add fallback for STDOUT_FILENO in test-programs</li>
+ <li>add configure macro for <tt>gettimeofday</tt> vs inline
+ check</li>
</ul>
</li>
+ </ul>
- <li>
- <p>The <em>test/configure</em> script (used for <a href=
- "/ncurses/ncurses-examples.html"><em>ncurses-examples</em></a>)
- is improved:</p>
-
- <ul>
- <li>work around non-ncurses termcap.h file, e.g., in
- Slackware.</li>
+ <p>Here are some of the other portability fixes:</p>
- <li>check for <a href=
- "/ncurses/man/curs_variables.3x.html#h3-TABSIZE"><tt>TABSIZE</tt></a>
- variable.</li>
+ <ul>
+ <li>
+ <p>modify configure scripts/makefiles to omit
+ <tt>KEY_RESIZE</tt> if the corresponding <tt>SIGWINCH</tt>
+ feature is disabled</p>
+ </li>
- <li>checks for the X11/Intrinsic.h header, accommodate
- recent MacOS changes which largely emptied
- <tt>/usr/include</tt>.</li>
- </ul>
+ <li>
+ <p>increase <tt>MB_CUR_MAX</tt> to 16, matching glibc's
+ <tt>MB_LEN_MAX</tt></p>
</li>
- </ul>
- <p>Here are some of the other portability fixes:</p>
+ <li>
+ <p>add BSD <tt>erase2</tt> to characters handled by
+ tset/reset</p>
+ </li>
- <ul>
<li>
- <p>added dummy "check" rule in top-level and test-Makefile to
- simplify building test-packages for ArchLinux.</p>
+ <p>use <tt>getauxval</tt> when available, to improve
+ <tt>setuid</tt>/<tt>setgid</tt> checks</p>
</li>
<li>
- <p>dropped library-dependency on psapi for MinGW port, since
- win_driver.c defines <tt>PSAPI_VERSION</tt> to 2, making it
- use <tt>GetProcessImageFileName</tt> from kernel32.dll</p>
+ <p>set <tt>dwShareMode</tt> in calls to
+ <tt>CreateConsoleScreenBuffer</tt></p>
</li>
<li>
- <p>made build-fixes for configuration using --program-suffix
- with Ada95, noticed with MacOS but applicable to other
- platforms without libpanelw, etc.</p>
+ <p>use <tt>CreateFile</tt> with "<tt>CONIN$</tt>",
+ "<tt>CONOUT$</tt>" rather than <tt>GetStdHandle</tt> to
+ obtain a handle on the actual console, avoiding redirection
+ in the MinGW/Win32 configurations</p>
</li>
<li>
- <p>modified ncurses/Makefile.in to fix a case where
- Debian/testing changes to the ld --as-needed configuration
- broke ncurses-examples test packages.</p>
+ <p>modify MinGW driver to return <tt>KEY_BACKSPACE</tt> when
+ an unmodified <tt>VK_BACK</tt> virtual key is entered</p>
</li>
<li>
- <p>used <tt>_WIN32</tt>/<tt>_WIN64</tt> in preference to
- <tt>__MINGW32__</tt>/<tt>__MINGW64__</tt> symbols to simplify
- building with Microsoft Visual C++, since the former are
- defined in both compiler configurations.</p>
+ <p>modify MinGW configuration to provide for running in
+ MSYS/MSYS2 shells, assuming ConPTY support</p>
</li>
</ul>
@@ -1578,30 +1103,31 @@ diff --git a/st.info b/st.info
</li>
<li>
- <p><span class="main-name">ncurses</span> supports all of the
- for SVr4 curses features including keyboard mapping, color,
- forms-drawing with ACS characters, and automatic recognition
+ <p><span class="main-name">ncurses</span> supports the
+ features of SVr4 curses including keyboard mapping, color,
+ form drawing with ACS characters, and automatic recognition
of keypad and function keys.</p>
</li>
<li>
- <p><span class="main-name">ncurses</span> provides these SVr4
- add-on libraries (not part of X/Open Curses):</p>
+ <p><span class="main-name">ncurses</span> provides work-alike
+ replacements of SVr4 supplemental libraries based on curses,
+ but which were not specified by X/Open Curses:</p>
<ul>
<li>
- <p>the panels library, supporting a stack of windows with
- backing store.</p>
+ <p>the panel library, supporting a stack of windows with
+ backing store</p>
</li>
<li>
- <p>the menus library, supporting a uniform but flexible
- interface for menu programming.</p>
+ <p>the menu library, supporting a uniform but flexible
+ interface for menu programming</p>
</li>
<li>
<p>the form library, supporting data collection through
- on-screen forms.</p>
+ on-screen forms</p>
</li>
</ul>
</li>
@@ -1613,7 +1139,7 @@ diff --git a/st.info b/st.info
<ul>
<li>
<p><span class="main-name">ncurses</span> supports
- user-defined capabilities which it can see, but which are
+ user-defined capabilities that it can see, but which are
hidden from SVr4 curses applications using the
<em>same</em> terminal database.</p>
</li>
@@ -1635,7 +1161,7 @@ diff --git a/st.info b/st.info
<p>The <span class="main-name">ncurses</span> utilities have
options to allow you to filter terminfo entries for use with
less capable <em>curses</em>/<em>terminfo</em> versions such
- as the HP/UX and AIX ports.</p>
+ as the HP-UX and AIX ports.</p>
</li>
</ul>
@@ -1645,11 +1171,11 @@ diff --git a/st.info b/st.info
<ul>
<li>
<p>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).</p>
+ X/Open Curses specification, XSI curses (that is, it
+ implements all <em>BASE</em> level features, and almost all
+ <em>EXTENDED</em> 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).</p>
</li>
<li>
@@ -1692,6 +1218,11 @@ diff --git a/st.info b/st.info
</li>
<li>
+ <p>Support for direct-color terminals, such as modern
+ xterm.</p>
+ </li>
+
+ <li>
<p>Support for 256-color terminals, such as modern xterm.</p>
</li>
@@ -1735,19 +1266,18 @@ diff --git a/st.info b/st.info
</li>
<li>
- <p>The <a href=
- "https://invisible-island.net/ncurses/man/tic.1m.html"><span class="part-name">
- tic</span></a>/<a href=
- "https://invisible-island.net/ncurses/man/captoinfo.1m.html">captoinfo</a>
- utility provided with <span class="main-name">ncurses</span>
- has the ability to translate many termcaps from the XENIX,
- IBM and AT&amp;T extension sets.</p>
+ <p>The <a href="https://invisible-island.net/ncurses/man/tic.1m.html"><span class=
+ "part-name">tic</span></a>/<a href=
+ "https://invisible-island.net/ncurses/man/captoinfo.1m.html">captoinfo</a> utility
+ provided with <span class="main-name">ncurses</span> has the
+ ability to translate many termcaps from the XENIX, IBM and
+ AT&amp;T extension sets.</p>
</li>
<li>
<p>A BSD-like <a href=
- "https://invisible-island.net/ncurses/man/tset.1.html"><span class="part-name">
- tset</span></a> utility is provided.</p>
+ "https://invisible-island.net/ncurses/man/tset.1.html"><span class=
+ "part-name">tset</span></a> utility is provided.</p>
</li>
<li>
@@ -1776,24 +1306,42 @@ diff --git a/st.info b/st.info
<li>
<p>The table-of-entries utility <a href=
- "https://invisible-island.net/ncurses/man/toe.1m.html"><span class="part-name">
- toe</span></a> makes it easy for users to see exactly what
- terminal types are available on the system.</p>
+ "https://invisible-island.net/ncurses/man/toe.1m.html"><span class=
+ "part-name">toe</span></a> makes it easy for users to see
+ exactly what terminal types are available on the system.</p>
</li>
<li>
- <p>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 <code>#undef</code>.</p>
+ <p>X/Open Curses permits most functions it specifies to be
+ made available as macros as well. ncurses does this</p>
+
+ <ul>
+ <li>to improve performance, e.g., for operations composed
+ of simpler functions such as cursor movement following by
+ adding text to the screen,</li>
+
+ <li>to simplify the implementation by reusing functions
+ which use common parameters, e.g., the standard screen
+ <code>stdscr</code>, and</li>
+
+ <li>to provide functions that return values via their
+ parameters</li>
+ </ul>
+
+ <p>Except for the last case, ncurses provides a non-macro
+ implementation of the function. If the macro definition is
+ disabled with <code>#undef</code>, or by defining
+ <code>NCURSES_NOMACROS</code> the function may be linked (and
+ its calls will be checked against the prototype).</p>
</li>
<li>
<p>Extensive documentation is provided (see the <em><a href=
- "https://invisible-island.net/ncurses/ncurses.faq.html#additional_reading">
- Additional Reading</a></em> section of the <em><a href=
- "https://invisible-island.net/ncurses/ncurses.faq.html"><span class="main-name">
- ncurses</span> FAQ</a></em> for online documentation).</p>
+ "https://invisible-island.net/ncurses/ncurses.faq.html#additional_reading">Additional
+ Reading</a></em> section of the <em><a href=
+ "https://invisible-island.net/ncurses/ncurses.faq.html"><span class=
+ "main-name">ncurses</span> FAQ</a></em> for online
+ documentation).</p>
</li>
</ul>
@@ -1826,9 +1374,7 @@ diff --git a/st.info b/st.info
<dd>
<p>Curses Development Kit</p>
- <p><a href=
- "https://invisible-island.net/cdk/">https://invisible-island.net/cdk/</a><br>
-
+ <p><a href="https://invisible-island.net/cdk/">https://invisible-island.net/cdk/</a><br>
</p>
</dd>
@@ -1838,8 +1384,7 @@ diff --git a/st.info b/st.info
<dd>
<p>directory-editor</p>
- <p><a href=
- "https://invisible-island.net/ded/">https://invisible-island.net/ded/</a></p>
+ <p><a href="https://invisible-island.net/ded/">https://invisible-island.net/ded/</a></p>
</dd>
<dt><span class="part-name">dialog</span>
@@ -1850,8 +1395,7 @@ diff --git a/st.info b/st.info
and the basis for similar install/configure applications on
many systems.</p>
- <p><a href=
- "https://invisible-island.net/dialog/">https://invisible-island.net/dialog/</a></p>
+ <p><a href="https://invisible-island.net/dialog/">https://invisible-island.net/dialog/</a></p>
</dd>
<dt><span class="part-name">lynx</span>
@@ -1890,7 +1434,8 @@ diff --git a/st.info b/st.info
<p>New vi uses ncurses.</p>
<p><a href=
- "https://sites.google.com/a/bostic.com/keithbostic/vi">https://sites.google.com/a/bostic.com/keithbostic/vi</a><br>
+ "https://sites.google.com/a/bostic.com/keithbostic/the-berkeley-vi-editor-home-page">
+ https://sites.google.com/a/bostic.com/keithbostic/the-berkeley-vi-editor-home-page</a><br>
</p>
</dd>
@@ -1938,7 +1483,7 @@ diff --git a/st.info b/st.info
<p>terminal emulator for serial modem connections</p>
<p><a href=
- "https://alioth.debian.org/projects/minicom/">https://alioth.debian.org/projects/minicom/</a></p>
+ "https://salsa.debian.org/minicom-team/minicom">https://salsa.debian.org/minicom-team/minicom</a></p>
</dd>
<dt><span class="part-name">mosh</span>
@@ -1947,8 +1492,7 @@ diff --git a/st.info b/st.info
<dd>
<p>a replacement for <code>ssh</code>.</p>
- <p><a href=
- "https://mosh.mit.edu/">https://mosh.mit.edu/</a></p>
+ <p><a href="https://mosh.org/">https://mosh.org/</a></p>
</dd>
<dt><span class="part-name">tack</span>
@@ -1957,8 +1501,7 @@ diff --git a/st.info b/st.info
<dd>
<p>terminfo action checker</p>
- <p><a href=
- "https://invisible-island.net/ncurses/tack.html">https://invisible-island.net/ncurses/tack.html</a></p>
+ <p><a href="https://invisible-island.net/ncurses/tack.html">https://invisible-island.net/ncurses/tack.html</a></p>
</dd>
<dt><span class="part-name">tmux</span>
@@ -1978,8 +1521,7 @@ diff --git a/st.info b/st.info
<p><em>vi-like-emacs</em> may be built to use the terminfo,
termcap or curses interfaces.</p>
- <p><a href=
- "https://invisible-island.net/vile/">https://invisible-island.net/vile/</a></p>
+ <p><a href="https://invisible-island.net/vile/">https://invisible-island.net/vile/</a></p>
</dd>
</dl>
</blockquote>
@@ -2041,13 +1583,13 @@ diff --git a/st.info b/st.info
<p>Ongoing development work is done by <a href=
"mailto:dickey@invisible-island.net">Thomas E. Dickey</a>. Thomas
E. Dickey has acted as the maintainer for the Free Software
- Foundation, which holds a <a href=
- "https://invisible-island.net/ncurses/ncurses-license.html">copyright
- on ncurses</a> for releases 4.2 through 6.1. Following the
- release of ncurses 6.1, effective as of release 6.2, copyright
- for ncurses reverted to Thomas E. Dickey (see the <a href=
- "https://invisible-island.net/ncurses/ncurses.faq.html#relicensed">
- ncurses FAQ</a> for additional information).</p>
+ Foundation, which held a <a href=
+ "https://invisible-island.net/ncurses/ncurses-license.html">copyright on ncurses</a> for
+ releases 4.2 through 6.1. Following the release of ncurses 6.1,
+ effective as of release 6.2, copyright for ncurses reverted to
+ Thomas E. Dickey (see the <a href=
+ "https://invisible-island.net/ncurses/ncurses.faq.html#relicensed">ncurses FAQ</a> for
+ additional information).</p>
<p>Contact the current maintainers at</p>
@@ -2062,7 +1604,6 @@ diff --git a/st.info b/st.info
"mailto:bug-ncurses-request@gnu.org">bug-ncurses-request@gnu.org</a>
</blockquote>
containing the line:
-
<blockquote>
<p><code>subscribe</code>
<em>&lt;name&gt;@&lt;host.domain&gt;</em></p>
@@ -2076,7 +1617,7 @@ diff --git a/st.info b/st.info
<blockquote>
<p><a href=
- "ftp://ftp.invisible-island.net/ncurses/current/">ftp://ftp.invisible-island.net/ncurses/current/</a>
+ "https://invisible-island.net/archives/ncurses/current/">https://invisible-island.net/archives/ncurses/current/</a>
and<br>
<a href=
"https://invisible-mirror.net/archives/ncurses/current/">https://invisible-mirror.net/archives/ncurses/current/</a>&nbsp;.</p>
@@ -2086,19 +1627,17 @@ diff --git a/st.info b/st.info
<blockquote>
<p><a href=
- "ftp://ftp.invisible-island.net/ncurses/6.1/">ftp://ftp.invisible-island.net/ncurses/6.1/</a>
+ "https://invisible-island.net/archives/ncurses/6.4/">https://invisible-island.net/archives/ncurses/6.4/</a>
and<br>
<a href=
- "https://invisible-mirror.net/archives/ncurses/6.1/">https://invisible-mirror.net/archives/ncurses/6.1/</a>&nbsp;.</p>
+ "https://invisible-mirror.net/archives/ncurses/6.4/">https://invisible-mirror.net/archives/ncurses/6.4/</a>&nbsp;.</p>
</blockquote>
<p>There is an archive of the mailing list here:</p>
<blockquote>
<p><a href=
- "http://lists.gnu.org/archive/html/bug-ncurses">http://lists.gnu.org/archive/html/bug-ncurses</a>
- (also <a href=
- "https://lists.gnu.org/archive/html/bug-ncurses">https</a>)</p>
+ "https://lists.gnu.org/archive/html/bug-ncurses">https://lists.gnu.org/archive/html/bug-ncurses</a>&nbsp;.</p>
</blockquote>
<h2><a name="h2-this-stuff" id="h2-this-stuff">Related
@@ -2108,30 +1647,28 @@ diff --git a/st.info b/st.info
which may be interesting by themselves:</p>
<ul>
- <li><a href=
- "https://invisible-island.net/ncurses/ncurses-license.html"><span class="main-name">
- ncurses</span> licensing</a></li>
+ <li><a href="https://invisible-island.net/ncurses/ncurses-license.html"><span class=
+ "main-name">ncurses</span> licensing</a></li>
- <li><a href=
- "https://invisible-island.net/ncurses/ncurses-mapsyms.html">Symbol
- versioning in <span class="main-name">ncurses</span></a></li>
+ <li><a href="https://invisible-island.net/ncurses/ncurses-mapsyms.html">Symbol versioning
+ in <span class="main-name">ncurses</span></a></li>
- <li><a href=
- "https://invisible-island.net/ncurses/ncurses-slang.html">Comments
- on <span class="main-name">ncurses</span> versus <span class=
+ <li><a href="https://invisible-island.net/ncurses/ncurses-slang.html">Comments on
+ <span class="main-name">ncurses</span> versus <span class=
"main-name">slang</span> (S-Lang)</a></li>
- <li><a href=
- "https://invisible-island.net/ncurses/tack.html">tack &ndash;
- terminfo action checker</a></li>
+ <li><a href="https://invisible-island.net/ncurses/ncurses-openbsd.html">Comments on
+ <span class="main-name">OpenBSD</span></a></li>
- <li><a href=
- "https://invisible-island.net/ncurses/tctest.html">tctest
- &ndash; termcap library checker</a></li>
+ <li><a href="https://invisible-island.net/ncurses/tack.html">tack &ndash; terminfo action
+ checker</a></li>
+
+ <li><a href="https://invisible-island.net/ncurses/tctest.html">tctest &ndash; termcap
+ library checker</a></li>
<li><a href=
- "https://invisible-island.net/ncurses/ncurses.html#download_database">
- Terminal Database</a></li>
+ "https://invisible-island.net/ncurses/ncurses.html#download_database">Terminal
+ Database</a></li>
</ul>
<h2><a name="h2-other-stuff" id="h2-other-stuff">Other
@@ -2142,14 +1679,15 @@ diff --git a/st.info b/st.info
<a href="http://www.catb.org/~esr/terminfo/">Eric
Raymond</a>&nbsp;. Unlike the older version, the termcap and
terminfo data are provided in the same file, which also provides
- several user-definable extensions beyond the X/Open
+ several user-definable extensions beyond the X/Open Curses
specification.</p>
<p>You can find lots of information on terminal-related topics
- not covered in the terminfo file at <a href=
- "http://web.archive.org/web/*/http://www.cs.utk.edu/~shuford/terminal">
- Richard Shuford's archive</a>&nbsp;. The collection of computer
- manuals at <a href=
+ not covered in the terminfo file in <a href=
+ "https://shuford.invisible-island.net/">Richard Shuford's
+ archive</a> (<a href=
+ "http://web.archive.org/web/*/http://www.cs.utk.edu/~shuford/terminal">original</a>).
+ The collection of computer manuals at <a href=
"http://www.bitsavers.org/pdf/">bitsavers.org</a> has also been
useful.</p>
@@ -2159,11 +1697,9 @@ diff --git a/st.info b/st.info
<li>
<a href="#h2-release-notes">Release Notes</a>
-
<ul>
<li>
<a href="#h3-library">Library improvements</a>
-
<ul>
<li><a href="#h4-new-library">New features</a></li>
@@ -2174,7 +1710,6 @@ diff --git a/st.info b/st.info
<li>
<a href="#h3-programs">Program improvements</a>
-
<ul>
<li><a href="#h4-utilities">Utilities</a></li>
@@ -2190,7 +1725,6 @@ diff --git a/st.info b/st.info
<li>
<a href="#h3-config-config">Configuration changes</a>
-
<ul>
<li><a href="#h4-config-major">Major changes</a></li>
diff --git a/doc/html/hackguide.html b/doc/html/hackguide.html
index 71312a565f4c..2b9445538dc8 100644
--- a/doc/html/hackguide.html
+++ b/doc/html/hackguide.html
@@ -1,7 +1,7 @@
<!--
- $Id: hackguide.html,v 1.33 2020/02/02 23:34:34 tom Exp $
+ $Id: hackguide.html,v 1.36 2022/11/26 19:31:56 tom Exp $
****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2020,2022 Thomas E. Dickey *
* Copyright 2000-2013,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -30,12 +30,10 @@
****************************************************************************
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-
<html>
<head>
<meta name="generator" content=
- "HTML Tidy for HTML5 for Linux version 5.2.0">
-
+ "HTML Tidy for HTML5 for Linux version 5.6.0">
<title>A Hacker's Guide to Ncurses Internals</title>
<link rel="author" href="mailto:bugs-ncurses@gnu.org">
<meta http-equiv="Content-Type" content=
@@ -45,70 +43,70 @@ the ncurses-intro.html document, expected to be in the same directory with
this one.
-->
</head>
-
<body>
- <h1>A Hacker's Guide to NCURSES</h1>
+ <h1 class="no-header">A Hacker's Guide to NCURSES</h1>
- <h1>Contents</h1>
+ <h2>A Hacker's Guide to NCURSES</h2>
- <ul>
- <li><a href="#abstract">Abstract</a></li>
+ <div class="nav">
+ <h2>Contents</h2>
- <li>
- <a href="#objective">Objective of the Package</a>
+ <ul>
+ <li><a href="#abstract">Abstract</a></li>
- <ul>
- <li><a href="#whysvr4">Why System V Curses?</a></li>
+ <li>
+ <a href="#objective">Objective of the Package</a>
+ <ul>
+ <li><a href="#whysvr4">Why System V Curses?</a></li>
- <li><a href="#extensions">How to Design Extensions</a></li>
- </ul>
- </li>
-
- <li><a href="#portability">Portability and Configuration</a></li>
+ <li><a href="#extensions">How to Design Extensions</a></li>
+ </ul>
+ </li>
- <li><a href="#documentation">Documentation Conventions</a></li>
+ <li><a href="#portability">Portability and Configuration</a></li>
- <li><a href="#bugtrack">How to Report Bugs</a></li>
-
- <li>
- <a href="#ncurslib">A Tour of the Ncurses Library</a>
+ <li><a href="#documentation">Documentation Conventions</a></li>
- <ul>
- <li><a href="#loverview">Library Overview</a></li>
+ <li><a href="#bugtrack">How to Report Bugs</a></li>
- <li><a href="#engine">The Engine Room</a></li>
+ <li>
+ <a href="#ncurslib">A Tour of the Ncurses Library</a>
+ <ul>
+ <li><a href="#loverview">Library Overview</a></li>
- <li><a href="#input">Keyboard Input</a></li>
+ <li><a href="#engine">The Engine Room</a></li>
- <li><a href="#mouse">Mouse Events</a></li>
+ <li><a href="#input">Keyboard Input</a></li>
- <li><a href="#output">Output and Screen Updating</a></li>
- </ul>
- </li>
+ <li><a href="#mouse">Mouse Events</a></li>
- <li><a href="#fmnote">The Forms and Menu Libraries</a></li>
+ <li><a href="#output">Output and Screen Updating</a></li>
+ </ul>
+ </li>
- <li>
- <a href="#tic">A Tour of the Terminfo Compiler</a>
+ <li><a href="#fmnote">The Forms and Menu Libraries</a></li>
- <ul>
- <li><a href="#nonuse">Translation of
- Non-<strong>use</strong> Capabilities</a></li>
+ <li>
+ <a href="#tic">A Tour of the Terminfo Compiler</a>
+ <ul>
+ <li><a href="#nonuse">Translation of
+ Non-<strong>use</strong> Capabilities</a></li>
- <li><a href="#uses">Use Capability Resolution</a></li>
+ <li><a href="#uses">Use Capability Resolution</a></li>
- <li><a href="#translation">Source-Form Translation</a></li>
- </ul>
- </li>
+ <li><a href="#translation">Source-Form Translation</a></li>
+ </ul>
+ </li>
- <li><a href="#utils">Other Utilities</a></li>
+ <li><a href="#utils">Other Utilities</a></li>
- <li><a href="#style">Style Tips for Developers</a></li>
+ <li><a href="#style">Style Tips for Developers</a></li>
- <li><a href="#port">Porting Hints</a></li>
- </ul>
+ <li><a href="#port">Porting Hints</a></li>
+ </ul>
+ </div>
- <h1><a name="abstract" id="abstract">Abstract</a></h1>
+ <h2><a name="abstract" id="abstract">Abstract</a></h2>
<p>This document is a hacker's tour of the
<strong>ncurses</strong> library and utilities. It discusses
@@ -117,8 +115,8 @@ this one.
anyone who is interested in porting, extending or improving the
package.</p>
- <h1><a name="objective" id="objective">Objective of the
- Package</a></h1>
+ <h2><a name="objective" id="objective">Objective of the
+ Package</a></h2>
<p>The objective of the <strong>ncurses</strong> package is to
provide a free software API for character-cell terminals and
@@ -144,7 +142,7 @@ this one.
&mdash; we cannot add features if it means breaking the portion
of the API corresponding to historical curses versions.</p>
- <h2><a name="whysvr4" id="whysvr4">Why System V Curses?</a></h2>
+ <h3><a name="whysvr4" id="whysvr4">Why System V Curses?</a></h3>
<p>We used System V curses as a model, reverse-engineering their
API, in order to fulfill the first two objectives.</p>
@@ -158,8 +156,8 @@ this one.
So conformance with System V took us most of the way to
base-level XSI conformance.</p>
- <h2><a name="extensions" id="extensions">How to Design
- Extensions</a></h2>
+ <h3><a name="extensions" id="extensions">How to Design
+ Extensions</a></h3>
<p>The third objective (standards conformance) requires that it
be easy to condition source code using <strong>ncurses</strong>
@@ -177,8 +175,8 @@ this one.
library header. You can use this to condition the calls to the
mouse API calls.</p>
- <h1><a name="portability" id="portability">Portability and
- Configuration</a></h1>
+ <h2><a name="portability" id="portability">Portability and
+ Configuration</a></h2>
<p>Code written for <strong>ncurses</strong> may assume an
ANSI-standard C compiler and POSIX-compatible OS interface. It
@@ -208,8 +206,8 @@ this one.
(configure.in and aclocal.m4) to set up a new feature macro,
which you then use to condition your code.</p>
- <h1><a name="documentation" id="documentation">Documentation
- Conventions</a></h1>
+ <h2><a name="documentation" id="documentation">Documentation
+ Conventions</a></h2>
<p>There are three kinds of documentation associated with this
package. Each has a different preferred format:</p>
@@ -226,7 +224,7 @@ this one.
<ol>
<li><strong>Maintain package-internal files in plain
- text.</strong> The expected viewer for them <em>more(1)</em> or
+ text.</strong> The expected viewer for them is <em>more(1)</em> or
an editor window; there is no point in elaborate mark-up.</li>
<li><strong>Mark up manual pages in the man macros.</strong>
@@ -249,7 +247,7 @@ this one.
course, it make exporting things like the announcement document
to WWW pretty trivial.</p>
- <h1><a name="bugtrack" id="bugtrack">How to Report Bugs</a></h1>
+ <h2><a name="bugtrack" id="bugtrack">How to Report Bugs</a></h2>
<p>The <a name="bugreport" id="bugreport">reporting address for
bugs</a> is <a href=
@@ -258,10 +256,9 @@ this one.
<code>bug-ncurses-request@gnu.org</code> with a message
containing the line:</p>
- <pre>
+ <pre class="code-block">
subscribe &lt;name&gt;@&lt;host.domain&gt;
</pre>
-
<p>The <code>ncurses</code> code is maintained by a small group
of volunteers. While we try our best to fix bugs promptly, we
simply do not have a lot of hours to spend on elementary
@@ -276,8 +273,7 @@ this one.
tail end and have to wait a while.</p>
<ol>
- <li>Develop a recipe to reproduce the bug.
-
+ <li><p>Develop a recipe to reproduce the bug.
<p>Bugs we can reproduce are likely to be fixed very quickly,
often within days. The most effective single thing you can do
to get a quick fix is develop a way we can duplicate the bad
@@ -287,8 +283,7 @@ this one.
with the distribution.)</p>
</li>
- <li>Try to reproduce the bug on a different terminal type.
-
+ <li><p>Try to reproduce the bug on a different terminal type.
<p>In our experience, most of the behaviors people report as
library bugs are actually due to subtle problems in terminal
descriptions. This is especially likely to be true if you are
@@ -309,8 +304,7 @@ this one.
triggered or masked by these.</p>
</li>
- <li>Generate and examine a trace file for the broken behavior.
-
+ <li><p>Generate and examine a trace file for the broken behavior.
<p>Recompile your program with the debugging versions of the
libraries. Insert a <code>trace()</code> call with the
argument set to <code>TRACE_UPDATE</code>. (See <a href=
@@ -341,8 +335,7 @@ this one.
screen-update logic quite exactly.</p>
</li>
- <li>Report details and symptoms, not just interpretations.
-
+ <li><p>Report details and symptoms, not just interpretations.
<p>If you do the preceding two steps, it is very likely that
you will discover the nature of the problem yourself and be
able to send us a fix. This will create happy feelings all
@@ -397,10 +390,10 @@ this one.
out. You can also test the hardware-scrolling optimization
separately with <code>hardscroll</code>.</p>
- <h1><a name="ncurslib" id="ncurslib">A Tour of the Ncurses
- Library</a></h1>
+ <h2><a name="ncurslib" id="ncurslib">A Tour of the Ncurses
+ Library</a></h2>
- <h2><a name="loverview" id="loverview">Library Overview</a></h2>
+ <h3><a name="loverview" id="loverview">Library Overview</a></h3>
<p>Most of the library is superstructure &mdash; fairly trivial
convenience interfaces to a small set of basic functions and data
@@ -495,9 +488,9 @@ this one.
<p>We will discuss these in the compiler tour.</p>
- <h2><a name="engine" id="engine">The Engine Room</a></h2>
+ <h3><a name="engine" id="engine">The Engine Room</a></h3>
- <h3><a name="input" id="input">Keyboard Input</a></h3>
+ <h4><a name="input" id="input">Keyboard Input</a></h4>
<p>All <code>ncurses</code> input funnels through the function
<code>wgetch()</code>, defined in <code>lib_getch.c</code>. This
@@ -523,7 +516,7 @@ this one.
The function <code>timed_wait()</code> effectively simulates a
System V select.</p>
- <h3><a name="mouse" id="mouse">Mouse Events</a></h3>
+ <h4><a name="mouse" id="mouse">Mouse Events</a></h4>
<p>If the mouse interface is active, <code>wgetch()</code> polls
for mouse events each call, before it goes to the keyboard for
@@ -568,7 +561,7 @@ this one.
reports (low-level events) into a gesture (a high-level or
composite event).</p>
- <h3><a name="output" id="output">Output and Screen Updating</a></h3>
+ <h4><a name="output" id="output">Output and Screen Updating</a></h4>
<p>With the single exception of character echoes during a
<code>wgetnstr()</code> call (which simulates cooked-mode line
@@ -630,7 +623,7 @@ this one.
<code>include/curses.h.in</code> for mask values, near the
end.</p>
- <h1><a name="fmnote" id="fmnote">The Forms and Menu Libraries</a></h1>
+ <h2><a name="fmnote" id="fmnote">The Forms and Menu Libraries</a></h2>
<p>The forms and menu libraries should work reliably in any
environment you can port ncurses to. The only portability issue
@@ -647,7 +640,7 @@ this one.
This version has been slightly cleaned up for
<code>ncurses</code>.</p>
- <h1><a name="tic" id="tic">A Tour of the Terminfo Compiler</a></h1>
+ <h2><a name="tic" id="tic">A Tour of the Terminfo Compiler</a></h2>
<p>The <strong>ncurses</strong> implementation of
<strong>tic</strong> is rather complex internally; it has to do a
@@ -664,8 +657,8 @@ this one.
values; the grammar above it is trivial, just "parse entries till
you run out of file".</p>
- <h2><a name="nonuse" id="nonuse">Translation of
- Non-<strong>use</strong> Capabilities</a></h2>
+ <h3><a name="nonuse" id="nonuse">Translation of
+ Non-<strong>use</strong> Capabilities</a></h3>
<p>Translation of most things besides <strong>use</strong>
capabilities is pretty straightforward. The lexical analyzer's
@@ -689,7 +682,7 @@ this one.
file. We will have more to say about this in the section on
<a href="#translation">Source-Form Translation</a>.</p>
- <h2><a name="uses" id="uses">Use Capability Resolution</a></h2>
+ <h3><a name="uses" id="uses">Use Capability Resolution</a></h3>
<p>The background problem that makes <strong>tic</strong> tricky
is not the capability translation itself, it is the resolution of
@@ -744,8 +737,8 @@ this one.
overwriting entries newly made during the <strong>tic</strong>
run, but not about overwriting ones that predate it.</p>
- <h2><a name="translation" id="translation">Source-Form
- Translation</a></h2>
+ <h3><a name="translation" id="translation">Source-Form
+ Translation</a></h3>
<p>Another use of <strong>tic</strong> is to do source
translation between various termcap and terminfo formats. There
@@ -773,7 +766,7 @@ this one.
where the AIX <strong>box1</strong> capability get translated to
an <strong>acsc</strong> string.</p>
- <h1><a name="utils" id="utils">Other Utilities</a></h1>
+ <h2><a name="utils" id="utils">Other Utilities</a></h2>
<p>The <strong>infocmp</strong> utility is just a wrapper around
the same entry-dumping code used by <strong>tic</strong> for
@@ -787,7 +780,7 @@ this one.
just do an entry load followed by a <code>tputs()</code> of a
selected capability.</p>
- <h1><a name="style" id="style">Style Tips for Developers</a></h1>
+ <h2><a name="style" id="style">Style Tips for Developers</a></h2>
<p>See the TO-DO file in the top-level directory of the source
distribution for additions that would be particularly useful.</p>
@@ -816,7 +809,7 @@ this one.
<p>Have fun!</p>
- <h1><a name="port" id="port">Porting Hints</a></h1>
+ <h2><a name="port" id="port">Porting Hints</a></h2>
<p>The following notes are intended to be a first step towards
DOS and Macintosh ports of the ncurses libraries.</p>
diff --git a/doc/html/index.html b/doc/html/index.html
index 48377819044d..3f35122d4377 100644
--- a/doc/html/index.html
+++ b/doc/html/index.html
@@ -1,7 +1,7 @@
<!--
- $Id: index.html,v 1.9 2020/02/02 23:34:34 tom Exp $
+ $Id: index.html,v 1.11 2022/11/26 17:39:53 tom Exp $
****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2020,2022 Thomas E. Dickey *
* Copyright 2000-2013,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -30,21 +30,20 @@
****************************************************************************
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-
<html>
<head>
<meta name="generator" content=
- "HTML Tidy for Linux (vers 25 March 2009), see www.w3.org">
-
+ "HTML Tidy for HTML5 for Linux version 5.6.0">
<title>Welcome to ncurses</title>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
<meta http-equiv="Content-Type" content=
"text/html; charset=us-ascii">
</head>
-
<body>
- <h1>Welcome to ncurses</h1>From this index page you have access
- to these further documents
+ <h1>Welcome to ncurses</h1>
+
+ <p>From this index page you have access to these further
+ documents</p>
<ul>
<li>The <a href="announce.html">Announcement</a> of the current
diff --git a/doc/html/man/adacurses6-config.1.html b/doc/html/man/adacurses6-config.1.html
deleted file mode 100644
index ec3b1b7b5ab3..000000000000
--- a/doc/html/man/adacurses6-config.1.html
+++ /dev/null
@@ -1,146 +0,0 @@
-<!--
- ****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
- * Copyright 2010-2014,2016 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: MKada_config.in,v 1.12 2020/02/02 23:34:34 tom Exp @
--->
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
-<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>ADACURSES 1 User Commands</TITLE>
-<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</HEAD>
-<BODY>
-<H1 class="no-header">ADACURSES 1 User Commands</H1>
-<PRE>
-<STRONG>ADACURSES(1)</STRONG> User Commands <STRONG>ADACURSES(1)</STRONG>
-
-
-
-
-</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- adacurses6-config - helper script for AdaCurses libraries
-
-
-</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
- <STRONG>adacurses6-config</STRONG> [<EM>options</EM>]
-
-
-</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- This is a shell script which simplifies configuring an application to
- use the AdaCurses library binding to ncurses.
-
-
-</PRE><H2><a name="h2-OPTIONS">OPTIONS</a></H2><PRE>
- <STRONG>--cflags</STRONG>
- echos the gnat (Ada compiler) flags needed to compile with
- AdaCurses.
-
- <STRONG>--libs</STRONG> echos the gnat libraries needed to link with AdaCurses.
-
- <STRONG>--version</STRONG>
- echos the release+patchdate version of the ncurses libraries
- used to configure and build AdaCurses.
-
- <STRONG>--help</STRONG> prints a list of the <STRONG>adacurses6-config</STRONG> script's options.
-
- If no options are given, <STRONG>adacurses6-config</STRONG> prints the combination of
- <STRONG>--cflags</STRONG> and <STRONG>--libs</STRONG> that <STRONG>gnatmake</STRONG> expects (see example).
-
-
-</PRE><H2><a name="h2-EXAMPLE">EXAMPLE</a></H2><PRE>
- For example, supposing that you want to compile the "Hello World!"
- program for AdaCurses. Make a file named "hello.adb":
- with Terminal_Interface.Curses; use Terminal_Interface.Curses;
-
- procedure Hello is
-
- Visibility : Cursor_Visibility := Invisible;
- done : Boolean := False;
- c : Key_Code;
-
- begin
-
- Init_Screen;
- Set_Echo_Mode (False);
-
- Set_Cursor_Visibility (Visibility);
- Set_Timeout_Mode (Standard_Window, Non_Blocking, 0);
-
- Move_Cursor (Line =&gt; Lines / 2, Column =&gt; (Columns - 12) / 2);
- Add (Str =&gt; "Hello World!");
-
- while not done loop
-
- c := Get_Keystroke (Standard_Window);
- case c is
- when Character'Pos ('q') =&gt; done := True;
- when others =&gt; null;
- end case;
-
- Nap_Milli_Seconds (50);
- end loop;
-
- End_Windows;
-
- end Hello;
-
- Then, using
- gnatmake `adacurses-config --cflags` hello -largs `adacurses-
- config --libs`
-
- or (simpler):
- gnatmake hello `adacurses-config`
-
- you will compile and link the program.
-
-
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>
-
- This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210109).
-
-
-
- <STRONG>ADACURSES(1)</STRONG>
-</PRE>
-<div class="nav">
-<ul>
-<li><a href="#h2-NAME">NAME</a></li>
-<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
-<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
-<li><a href="#h2-OPTIONS">OPTIONS</a></li>
-<li><a href="#h2-EXAMPLE">EXAMPLE</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-</ul>
-</div>
-</BODY>
-</HTML>
diff --git a/doc/html/man/adacursesw6-config.1.html b/doc/html/man/adacursesw6-config.1.html
new file mode 100644
index 000000000000..3ded34ae5818
--- /dev/null
+++ b/doc/html/man/adacursesw6-config.1.html
@@ -0,0 +1,144 @@
+<!--
+ ****************************************************************************
+ * Copyright 2019-2023,2024 Thomas E. Dickey *
+ * Copyright 2010-2014,2016 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: MKada_config.in,v 1.35 2024/04/20 21:13:27 tom Exp @
+-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<HTML>
+<HEAD>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
+<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
+<TITLE>adacursesw6\-config 1 2024-04-20 ncurses 6.5 User commands</TITLE>
+<link rel="author" href="mailto:bug-ncurses@gnu.org">
+
+</HEAD>
+<BODY>
+<H1 class="no-header">adacursesw6\-config 1 2024-04-20 ncurses 6.5 User commands</H1>
+<PRE>
+<STRONG><A HREF="adacursesw6-config.1.html">adacursesw6-config(1)</A></STRONG> User commands <STRONG><A HREF="adacursesw6-config.1.html">adacursesw6-config(1)</A></STRONG>
+
+
+
+
+</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
+ <STRONG>adacursesw6-config</STRONG> - configuration helper for <EM>AdaCurses</EM> libraries
+
+
+</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
+ <STRONG>adacursesw6-config</STRONG> [<STRONG>--cflags</STRONG>] [<STRONG>--libs</STRONG>]
+
+ <STRONG>adacursesw6-config</STRONG> <STRONG>--version</STRONG>
+
+ <STRONG>adacursesw6-config</STRONG> <STRONG>--help</STRONG>
+
+
+</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
+ This program development aid simplifies the process of configuring
+ applications to use the <EM>AdaCurses</EM> library binding to <EM>ncurses</EM>.
+
+
+</PRE><H2><a name="h2-OPTIONS">OPTIONS</a></H2><PRE>
+ <STRONG>--cflags</STRONG> reports the GNAT (Ada compiler) flags needed to compile with
+ <EM>AdaCurses</EM>.
+
+ <STRONG>--libs</STRONG> reports the GNAT libraries needed to link with <EM>AdaCurses</EM>.
+
+ <STRONG>--version</STRONG> reports the release and patch date information of the
+ <EM>ncurses</EM> libraries used to configure and build <EM>AdaCurses</EM> and
+ exits successfully.
+
+ <STRONG>--help</STRONG> issues a usage message and exits successfully.
+
+ Omitting options implies "<STRONG>--cflags</STRONG> <STRONG>--libs</STRONG>".
+
+
+</PRE><H2><a name="h2-EXAMPLES">EXAMPLES</a></H2><PRE>
+ Consider a program using <EM>AdaCurses</EM> to write the message "Hello, world!"
+ in the center of the screen and wait for the user to press the "q" key
+ before exiting. Populate a file <EM>hello.adb</EM> with the following.
+
+ with Terminal_Interface.Curses; use Terminal_Interface.Curses;
+
+ procedure Hello is
+ Visibility : Cursor_Visibility := Invisible;
+ Message : constant String := "Hello, World!";
+ done : Boolean := False;
+ c : Key_Code;
+ begin
+ Init_Screen;
+ Set_Echo_Mode (False);
+ Set_Cursor_Visibility (Visibility);
+ Set_Timeout_Mode (Standard_Window, Non_Blocking, 0);
+
+ Move_Cursor (Line =&gt; Lines / 2,
+ Column =&gt; (Columns - Message'Length) / 2);
+ Add (Str =&gt; Message);
+
+ while not done loop
+ c := Get_Keystroke (Standard_Window);
+
+ case c is
+ when Character'Pos ('q') =&gt; done := True;
+ when others =&gt; null;
+ end case;
+
+ Nap_Milli_Seconds (50);
+ end loop;
+
+ End_Windows;
+
+ end Hello;
+
+ Then, using
+ gnatmake `adacursesw6-config --cflags` hello \
+ -largs `adacursesw6-config --libs`
+ or, more simply,
+ gnatmake hello `adacursesw6-config`
+ you can compile and link the program.
+
+
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>
+
+
+
+ncurses 6.5 2024-04-20 <STRONG><A HREF="adacursesw6-config.1.html">adacursesw6-config(1)</A></STRONG>
+</PRE>
+<div class="nav">
+<ul>
+<li><a href="#h2-NAME">NAME</a></li>
+<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
+<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
+<li><a href="#h2-OPTIONS">OPTIONS</a></li>
+<li><a href="#h2-EXAMPLES">EXAMPLES</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
+</ul>
+</div>
+</BODY>
+</HTML>
diff --git a/doc/html/man/captoinfo.1m.html b/doc/html/man/captoinfo.1m.html
index b4fe523ef8f6..92f9905e2a88 100644
--- a/doc/html/man/captoinfo.1m.html
+++ b/doc/html/man/captoinfo.1m.html
@@ -1,7 +1,7 @@
-<!--
+<!--
* t
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2010,2016 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,21 +28,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: captoinfo.1m,v 1.30 2020/02/02 23:34:34 tom Exp @
+ * @Id: captoinfo.1m,v 1.63 2024/03/23 20:37:25 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>captoinfo 1m</TITLE>
+<TITLE>captoinfo 1m 2024-03-23 ncurses 6.5 User commands</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">captoinfo 1m</H1>
+<H1 class="no-header">captoinfo 1m 2024-03-23 ncurses 6.5 User commands</H1>
<PRE>
-<STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG> <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>
+<STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG> User commands <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>
@@ -52,175 +52,163 @@
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
- <STRONG>captoinfo</STRONG> [<STRONG>-v</STRONG><EM>n</EM> <EM>width</EM>] [<STRONG>-V</STRONG>] [<STRONG>-1</STRONG>] [<STRONG>-w</STRONG> <EM>width</EM>] <EM>file</EM> ...
-
-
-</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- <STRONG>captoinfo</STRONG> looks in each given text <EM>file</EM> for <STRONG>termcap</STRONG> descriptions. For
- each one found, an equivalent <STRONG>terminfo</STRONG> description is written to
- standard output. Termcap <STRONG>tc</STRONG> capabilities are translated directly to
- terminfo <STRONG>use</STRONG> capabilities.
-
- If no <EM>file</EM> is given, then the environment variable <STRONG>TERMCAP</STRONG> is used for
- the filename or entry. If <STRONG>TERMCAP</STRONG> is a full pathname to a file, only
- the terminal whose name is specified in the environment variable <STRONG>TERM</STRONG>
- is extracted from that file. If the environment variable <STRONG>TERMCAP</STRONG> is
- not set, then the file <STRONG>/usr/share/terminfo</STRONG> is read.
+ <STRONG>captoinfo</STRONG> [<EM>tic-option</EM>] [<EM>file</EM> ...]
- <STRONG>-v</STRONG> print out tracing information on standard error as the program
- runs.
+ <STRONG>captoinfo</STRONG> <STRONG>-V</STRONG>
- <STRONG>-V</STRONG> print out the version of the program in use on standard error and
- exit.
- <STRONG>-1</STRONG> cause the fields to print out one to a line. Otherwise, the
- fields will be printed several to a line to a maximum width of 60
- characters.
-
- <STRONG>-w</STRONG> change the output to <EM>width</EM> characters.
+</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
+ <STRONG>captoinfo</STRONG> translates terminal descriptions. It looks in each given
+ text <EM>file</EM> for <EM>termcap</EM> entries and, for each one found, writes an
+ equivalent <EM>terminfo</EM> description to the standard output stream. <EM>termcap</EM>
+ <STRONG>tc</STRONG> capabilities translate to <EM>terminfo</EM> "<STRONG>use</STRONG>" capabilities.
+
+ If no <EM>file</EM>s are specified, <STRONG>captoinfo</STRONG> interprets the content of the
+ environment variable <EM>TERMCAP</EM> as a file name, and extracts only the
+ entry for the terminal named in the environment variable <EM>TERM</EM> from it.
+ If the environment variable <EM>TERMCAP</EM> is not set, <STRONG>captoinfo</STRONG> reads
+ <EM>/etc/termcap</EM>.
+
+ This utility is implemented as a link to <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, with the latter's <STRONG>-I</STRONG>
+ option implied. You can use other <STRONG>tic</STRONG> options such as <STRONG>-1</STRONG>, <STRONG>-f</STRONG>, <STRONG>-v</STRONG>, <STRONG>-w</STRONG>,
+ and <STRONG>-x</STRONG>. The <STRONG>-V</STRONG> option reports the version of <EM>ncurses</EM> associated with
+ this program and exits with a successful status.
+
+
+</PRE><H3><a name="h3-Translations-from-Nonstandard-Capabilities">Translations from Nonstandard Capabilities</a></H3><PRE>
+ <STRONG>captoinfo</STRONG> translates some obsolete, nonstandard capabilities into
+ standard (SVr4/XSI Curses) <EM>terminfo</EM> capabilities. It issues a
+ diagnostic to the standard error stream for each, inviting the user to
+ check that it has not mistakenly translated an unknown or mistyped
+ capability name.
+
+ <STRONG>Name</STRONG>
+ <STRONG>Obsolete</STRONG> <STRONG>Standard</STRONG> <STRONG>Origin</STRONG> <STRONG><EM>terminfo</EM></STRONG> <STRONG>capability</STRONG>
+ ---------------------------------------------------------
+ <STRONG>BO</STRONG> <STRONG>mr</STRONG> AT&amp;T <STRONG>enter_reverse_mode</STRONG>
+ <STRONG>CI</STRONG> <STRONG>vi</STRONG> AT&amp;T <STRONG>cursor_invisible</STRONG>
+ <STRONG>CV</STRONG> <STRONG>ve</STRONG> AT&amp;T <STRONG>cursor_normal</STRONG>
+ <STRONG>DS</STRONG> <STRONG>mh</STRONG> AT&amp;T <STRONG>enter_dim_mode</STRONG>
+ <STRONG>EE</STRONG> <STRONG>me</STRONG> AT&amp;T <STRONG>exit_attribute_mode</STRONG>
+ <STRONG>FE</STRONG> <STRONG>LF</STRONG> AT&amp;T <STRONG>label_on</STRONG>
+ <STRONG>FL</STRONG> <STRONG>LO</STRONG> AT&amp;T <STRONG>label_off</STRONG>
+ <STRONG>XS</STRONG> <STRONG>mk</STRONG> AT&amp;T <STRONG>enter_secure_mode</STRONG>
+ <STRONG>EN</STRONG> <STRONG>@7</STRONG> XENIX <STRONG>key_end</STRONG>
+ <STRONG>GE</STRONG> <STRONG>ae</STRONG> XENIX <STRONG>exit_alt_charset_mode</STRONG>
+ <STRONG>GS</STRONG> <STRONG>as</STRONG> XENIX <STRONG>enter_alt_charset_mode</STRONG>
+ <STRONG>HM</STRONG> <STRONG>kh</STRONG> XENIX <STRONG>key_home</STRONG>
+ <STRONG>LD</STRONG> <STRONG>kL</STRONG> XENIX <STRONG>key_dl</STRONG>
+ <STRONG>PD</STRONG> <STRONG>kN</STRONG> XENIX <STRONG>key_npage</STRONG>
+ <STRONG>PN</STRONG> <STRONG>po</STRONG> XENIX <STRONG>prtr_off</STRONG>
+ <STRONG>PS</STRONG> <STRONG>pf</STRONG> XENIX <STRONG>prtr_on</STRONG>
+ <STRONG>PU</STRONG> <STRONG>kP</STRONG> XENIX <STRONG>key_ppage</STRONG>
+ <STRONG>RT</STRONG> <STRONG>@8</STRONG> XENIX <STRONG>kent</STRONG>
+ <STRONG>UP</STRONG> <STRONG>ku</STRONG> XENIX <STRONG>kcuu1</STRONG>
+ <STRONG>KA</STRONG> <STRONG>k;</STRONG> Tektronix <STRONG>key_f10</STRONG>
+ <STRONG>KB</STRONG> <STRONG>F1</STRONG> Tektronix <STRONG>key_f11</STRONG>
+ <STRONG>KC</STRONG> <STRONG>F2</STRONG> Tektronix <STRONG>key_f12</STRONG>
+ <STRONG>KD</STRONG> <STRONG>F3</STRONG> Tektronix <STRONG>key_f13</STRONG>
+ <STRONG>KE</STRONG> <STRONG>F4</STRONG> Tektronix <STRONG>key_f14</STRONG>
+ <STRONG>KF</STRONG> <STRONG>F5</STRONG> Tektronix <STRONG>key_f15</STRONG>
+ <STRONG>BC</STRONG> <STRONG>Sb</STRONG> Tektronix <STRONG>set_background</STRONG>
+
+ <STRONG>FC</STRONG> <STRONG>Sf</STRONG> Tektronix <STRONG>set_foreground</STRONG>
+ <STRONG>HS</STRONG> <STRONG>mh</STRONG> IRIX <STRONG>enter_dim_mode</STRONG>
+
+ XENIX <EM>termcap</EM> had a set of extension capabilities, corresponding to box
+ drawing characters of CCSID ("code page") 437, as follows.
+
+ <STRONG><EM>termcap</EM></STRONG> <STRONG>Name</STRONG> <STRONG>Graphic</STRONG>
+ -----------------------------------------
+ <STRONG>G2</STRONG> upper left corner
+ <STRONG>G3</STRONG> lower left corner
+ <STRONG>G1</STRONG> upper right corner
+ <STRONG>G4</STRONG> lower right corner
+ <STRONG>GR</STRONG> tee pointing right
+ <STRONG>GL</STRONG> tee pointing left
+ <STRONG>GU</STRONG> tee pointing up
+ <STRONG>GD</STRONG> tee pointing down
+ <STRONG>GH</STRONG> horizontal line
+ <STRONG>GV</STRONG> vertical line
+ <STRONG>GC</STRONG> intersection
+ <STRONG>G6</STRONG> double upper left corner
+ <STRONG>G7</STRONG> double lower left corner
+ <STRONG>G5</STRONG> double upper right corner
+ <STRONG>G8</STRONG> double lower right corner
+ <STRONG>Gr</STRONG> double tee pointing right
+ <STRONG>Gr</STRONG> double tee pointing left
+ <STRONG>Gu</STRONG> double tee pointing up
+ <STRONG>Gd</STRONG> double tee pointing down
+ <STRONG>Gh</STRONG> double horizontal line
+ <STRONG>Gv</STRONG> double vertical line
+ <STRONG>Gc</STRONG> double intersection
+ <STRONG>GG</STRONG> ACS magic cookie count
+
+ <STRONG>captoinfo</STRONG> composes single-line capabilities into an <STRONG>acsc</STRONG> string, and
+ discards <STRONG>GG</STRONG> and double-line capabilities with a warning diagnostic.
+
+ IBM's AIX has a <EM>terminfo</EM> facility descended from SVr1 <EM>terminfo</EM>, but
+ which is incompatible with the SVr4 format. <STRONG>captoinfo</STRONG> translates the
+ following AIX extensions.
+
+ <STRONG>IBM</STRONG> <STRONG>XSI</STRONG>
+ -------------
+ ksel kslt
+ kbtab kcbt
+ font0 s0ds
+ font1 s1ds
+ font2 s2ds
+ font3 s3ds
+
+ Additionally, this program translates the AIX <STRONG>box1</STRONG> capability to an
+ <STRONG>acsc</STRONG> string.
+
+ The HP-UX <EM>terminfo</EM> library supports two nonstandard <EM>terminfo</EM>
+ capabilities, <STRONG>meml</STRONG> (memory lock) and <STRONG>memu</STRONG> (memory unlock). <STRONG>captoinfo</STRONG>
+ discards these with a warning message.
</PRE><H2><a name="h2-FILES">FILES</a></H2><PRE>
- /usr/share/terminfo Compiled terminal description database.
-
-
-</PRE><H2><a name="h2-TRANSLATIONS-FROM-NONSTANDARD-CAPABILITIES">TRANSLATIONS FROM NONSTANDARD CAPABILITIES</a></H2><PRE>
- Some obsolete nonstandard capabilities will automatically be translated
- into standard (SVr4/XSI Curses) terminfo capabilities by <STRONG>captoinfo</STRONG>.
- Whenever one of these automatic translations is done, the program will
- issue an notification to stderr, inviting the user to check that it has
- not mistakenly translated a completely unknown and random capability
- and/or syntax error.
-
- Nonstd Std From Terminfo
- name name capability
- -----------------------------------------------
- BO mr AT&amp;T enter_reverse_mode
- CI vi AT&amp;T cursor_invisible
- CV ve AT&amp;T cursor_normal
- DS mh AT&amp;T enter_dim_mode
- EE me AT&amp;T exit_attribute_mode
- FE LF AT&amp;T label_on
- FL LO AT&amp;T label_off
- XS mk AT&amp;T enter_secure_mode
- EN @7 XENIX key_end
- GE ae XENIX exit_alt_charset_mode
- GS as XENIX enter_alt_charset_mode
- HM kh XENIX key_home
- LD kL XENIX key_dl
- PD kN XENIX key_npage
- PN po XENIX prtr_off
- PS pf XENIX prtr_on
- PU kP XENIX key_ppage
-
- RT @8 XENIX kent
- UP ku XENIX kcuu1
- KA k; Tek key_f10
- KB F1 Tek key_f11
- KC F2 Tek key_f12
- KD F3 Tek key_f13
- KE F4 Tek key_f14
- KF F5 Tek key_f15
- BC Sb Tek set_background
- FC Sf Tek set_foreground
- HS mh Iris enter_dim_mode
-
- XENIX termcap also used to have a set of extension capabilities for
- forms drawing, designed to take advantage of the IBM PC high-half
- graphics. They were as follows:
-
- Cap Graphic
- -----------------------------
- G2 upper left
- G3 lower left
- G1 upper right
- G4 lower right
- GR pointing right
- GL pointing left
- GU pointing up
- GD pointing down
- GH horizontal line
- GV vertical line
- GC intersection
- G6 upper left
- G7 lower left
- G5 upper right
- G8 lower right
- Gr tee pointing right
- Gr tee pointing left
- Gu tee pointing up
- Gd tee pointing down
- Gh horizontal line
- Gv vertical line
- Gc intersection
- GG acs magic cookie count
-
- If the single-line capabilities occur in an entry, they will
- automatically be composed into an <STRONG>acsc</STRONG> string. The double-line
- capabilities and <STRONG>GG</STRONG> are discarded with a warning message.
-
- IBM's AIX has a terminfo facility descended from SVr1 terminfo but
- incompatible with the SVr4 format. The following AIX extensions are
- automatically translated:
-
- IBM XSI
- -------------
- ksel kslt
- kbtab kcbt
- font0 s0ds
- font1 s1ds
- font2 s2ds
- font3 s3ds
-
- Additionally, the AIX <EM>box1</EM> capability will be automatically translated
- to an <STRONG>acsc</STRONG> string.
-
- Hewlett-Packard's terminfo library supports two nonstandard terminfo
- capabilities <STRONG>meml</STRONG> (memory lock) and <STRONG>memu</STRONG> (memory unlock). These will
- be discarded with a warning message.
-
-
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- This utility is actually a link to <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, running in <EM>-I</EM> mode. You
- can use other <STRONG>tic</STRONG> options such as <STRONG>-f</STRONG> and <STRONG>-x</STRONG>.
-
- The verbose option is not identical to SVr4's. Under SVr4, instead of
- following the <STRONG>-v</STRONG> with a trace level n, you repeat it n times.
+ <EM>/etc/termcap</EM>
+ default <EM>termcap</EM> terminal capability database
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
X/Open Curses, Issue 7 (2009) describes <STRONG>tic</STRONG> briefly, but omits this
- program. SVr4 systems provide <STRONG>captoinfo</STRONG> as a separate application from
- <STRONG>tic</STRONG>.
-
- NetBSD does not provide this application.
+ program.
+ SVr4 systems provide <STRONG>captoinfo</STRONG> as a separate application from <STRONG>tic</STRONG>. Its
+ <STRONG>-v</STRONG> option does not accept a trace level argument <EM>n</EM>; repeat <STRONG>-v</STRONG> <EM>n</EM> times
+ instead.
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
-
- This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210109).
+ NetBSD does not provide this application.
-</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
+</PRE><H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
Eric S. Raymond &lt;esr@snark.thyrsus.com&gt; and
Thomas E. Dickey &lt;dickey@invisible-island.net&gt;
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
+
+
- <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>
+ncurses 6.5 2024-03-23 <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<li><a href="#h2-NAME">NAME</a></li>
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
-<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
+<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
+<ul>
+<li><a href="#h3-Translations-from-Nonstandard-Capabilities">Translations from Nonstandard Capabilities</a></li>
+</ul>
+</li>
<li><a href="#h2-FILES">FILES</a></li>
-<li><a href="#h2-TRANSLATIONS-FROM-NONSTANDARD-CAPABILITIES">TRANSLATIONS FROM NONSTANDARD CAPABILITIES</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
+<li><a href="#h2-AUTHORS">AUTHORS</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-AUTHOR">AUTHOR</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/clear.1.html b/doc/html/man/clear.1.html
index 15d8ad5c39e3..e7da4da4f41d 100644
--- a/doc/html/man/clear.1.html
+++ b/doc/html/man/clear.1.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,23 +27,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: clear.1,v 1.23 2020/02/02 23:34:34 tom Exp @
- * these would be fallbacks for DS/DE,
- * but groff changed the meaning of the macros.
+ * @Id: clear.1,v 1.48 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>clear 1</TITLE>
+<TITLE>clear 1 2024-03-16 ncurses 6.5 User commands</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">clear 1</H1>
+<H1 class="no-header">clear 1 2024-03-16 ncurses 6.5 User commands</H1>
<PRE>
-<STRONG><A HREF="clear.1.html">clear(1)</A></STRONG> General Commands Manual <STRONG><A HREF="clear.1.html">clear(1)</A></STRONG>
+<STRONG><A HREF="clear.1.html">clear(1)</A></STRONG> User commands <STRONG><A HREF="clear.1.html">clear(1)</A></STRONG>
@@ -53,108 +51,104 @@
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
- <STRONG>clear</STRONG> [<STRONG>-T</STRONG><EM>type</EM>] [<STRONG>-V</STRONG>] [<STRONG>-x</STRONG>]
+ <STRONG>clear</STRONG> [<STRONG>-x</STRONG>] [<STRONG>-T</STRONG> <EM>terminal-type</EM>]
+
+ <STRONG>clear</STRONG> <STRONG>-V</STRONG>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- <STRONG>clear</STRONG> clears your screen if this is possible, including its scrollback
- buffer (if the extended "E3" capability is defined). <STRONG>clear</STRONG> looks in
- the environment for the terminal type given by the environment variable
- <STRONG>TERM</STRONG>, and then in the <STRONG>terminfo</STRONG> database to determine how to clear the
- screen.
+ <STRONG>clear</STRONG> clears your terminal's screen and its scrollback buffer, if any.
+ <STRONG>clear</STRONG> retrieves the terminal type from the environment variable <EM>TERM</EM>,
+ then consults the <EM>terminfo</EM> terminal capability database entry for that
+ type to determine how to perform these actions.
- <STRONG>clear</STRONG> writes to the standard output. You can redirect the standard
- output to a file (which prevents <STRONG>clear</STRONG> from actually clearing the
- screen), and later <STRONG>cat</STRONG> the file to the screen, clearing it at that
- point.
+ The capabilities to clear the screen and scrollback buffer are named
+ "clear" and "E3", respectively. The latter is a <EM>user-defined</EM>
+ <EM>capability</EM>, applying an extension mechanism introduced in <EM>ncurses</EM> 5.0
+ (1999).
</PRE><H2><a name="h2-OPTIONS">OPTIONS</a></H2><PRE>
- <STRONG>-T</STRONG> <EM>type</EM>
- indicates the <EM>type</EM> of terminal. Normally this option is
- unnecessary, because the default is taken from the environment
- variable <STRONG>TERM</STRONG>. If <STRONG>-T</STRONG> is specified, then the shell variables <STRONG>LINES</STRONG>
- and <STRONG>COLUMNS</STRONG> will also be ignored.
+ <STRONG>clear</STRONG> recognizes the following options.
+
+ <STRONG>-T</STRONG> <EM>type</EM> produces instructions suitable for the terminal <EM>type</EM>.
+ Normally, this option is unnecessary, because the terminal
+ type is inferred from the environment variable <EM>TERM</EM>. If this
+ option is specified, <STRONG>clear</STRONG> ignores the environment variables
+ <EM>LINES</EM> and <EM>COLUMNS</EM> as well.
+
+ <STRONG>-V</STRONG> reports the version of <EM>ncurses</EM> associated with this program
+ and exits with a successful status.
+
+ <STRONG>-x</STRONG> prevents <STRONG>clear</STRONG> from attempting to clear the scrollback buffer.
- <STRONG>-V</STRONG> reports the version of ncurses which was used in this program, and
- exits. The options are as follows:
- <STRONG>-x</STRONG> do not attempt to clear the terminal's scrollback buffer using the
- extended "E3" capability.
+</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
+ Neither IEEE Std 1003.1/The Open Group Base Specifications Issue 7
+ (POSIX.1-2008) nor X/Open Curses Issue 7 documents <STRONG>clear</STRONG>.
+
+ The latter documents <STRONG>tput</STRONG>, which could be used to replace this utility
+ either via a shell script or by an alias (such as a symbolic link) to
+ run <STRONG>tput</STRONG> as <STRONG>clear</STRONG>.
</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
- A <STRONG>clear</STRONG> command appeared in 2.79BSD dated February 24, 1979. Later
- that was provided in Unix 8th edition (1985).
+ A <STRONG>clear</STRONG> command using the <EM>termcap</EM> database and library appeared in 2BSD
+ (1979). Eighth Edition Unix (1985) later included it.
- AT&amp;T adapted a different BSD program (<STRONG>tset</STRONG>) to make a new command
- (<STRONG>tput</STRONG>), and used this to replace the <STRONG>clear</STRONG> command with a shell script
- which calls <STRONG>tput</STRONG> <STRONG>clear</STRONG>, e.g.,
+ The commercial Unix arm of AT&amp;T adapted a different BSD program (<STRONG>tset</STRONG>)
+ to make a new command, <STRONG>tput</STRONG>, and replaced the <STRONG>clear</STRONG> program with a
+ shell script that called "<STRONG>tput</STRONG> <STRONG>clear</STRONG>".
/usr/bin/tput ${1:+-T$1} clear 2&gt; /dev/null
exit
In 1989, when Keith Bostic revised the BSD <STRONG>tput</STRONG> command to make it
- similar to the AT&amp;T <STRONG>tput</STRONG>, he added a shell script for the <STRONG>clear</STRONG>
- command:
+ similar to AT&amp;T's <STRONG>tput</STRONG>, he added a <STRONG>clear</STRONG> shell script as well.
exec tput clear
The remainder of the script in each case is a copyright notice.
- The ncurses <STRONG>clear</STRONG> command began in 1995 by adapting the original BSD
- <STRONG>clear</STRONG> command (with terminfo, of course).
-
- The <STRONG>E3</STRONG> extension came later:
+ In 1995, <EM>ncurses</EM>'s <STRONG>clear</STRONG> began by adapting BSD's original <STRONG>clear</STRONG> command
+ to use <EM>terminfo</EM>. The <STRONG>E3</STRONG> extension came later.
- <STRONG>o</STRONG> In June 1999, xterm provided an extension to the standard control
- sequence for clearing the screen. Rather than clearing just the
+ <STRONG>o</STRONG> In June 1999, <EM>xterm</EM> provided an extension to the standard control
+ sequence for clearing the screen. Rather than clearing just the
visible part of the screen using
printf '\033[2J'
- one could clear the <EM>scrollback</EM> using
+ one could clear the scrollback buffer as well by using
printf '\033[<STRONG>3</STRONG>J'
- This is documented in <EM>XTerm</EM> <EM>Control</EM> <EM>Sequences</EM> as a feature
- originating with xterm.
+ instead. "XTerm Control Sequences" documents this feature as
+ originating with <EM>xterm</EM>.
- <STRONG>o</STRONG> A few other terminal developers adopted the feature, e.g., PuTTY in
- 2006.
+ <STRONG>o</STRONG> A few other terminal emulators adopted it, such as PuTTY in 2006.
<STRONG>o</STRONG> In April 2011, a Red Hat developer submitted a patch to the Linux
- kernel, modifying its console driver to do the same thing. The
- Linux change, part of the 3.0 release, did not mention xterm,
- although it was cited in the Red Hat bug report (#683733) which led
- to the change.
+ kernel, modifying its console driver to do the same thing.
+ Documentation of this change, appearing in Linux 3.0, did not
+ mention <EM>xterm</EM>, although that program was cited in the Red Hat bug
+ report (#683733) motivating the feature.
- <STRONG>o</STRONG> Again, a few other terminal developers adopted the feature. But
- the next relevant step was a change to the <STRONG>clear</STRONG> program in 2013 to
- incorporate this extension.
+ <STRONG>o</STRONG> Subsequently, more terminal developers adopted the feature. The
+ next relevant step was to change the <EM>ncurses</EM> <STRONG>clear</STRONG> program in 2013
+ to incorporate this extension.
- <STRONG>o</STRONG> In 2013, the <STRONG>E3</STRONG> extension was overlooked in <STRONG>tput</STRONG> with the "clear"
- parameter. That was addressed in 2016 by reorganizing <STRONG>tput</STRONG> to
- share its logic with <STRONG>clear</STRONG> and <STRONG>tset</STRONG>.
-
-
-</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- Neither IEEE Std 1003.1/The Open Group Base Specifications Issue 7
- (POSIX.1-2008) nor X/Open Curses Issue 7 documents tset or reset.
-
- The latter documents <STRONG>tput</STRONG>, which could be used to replace this utility
- either via a shell script or by an alias (such as a symbolic link) to
- run <STRONG>tput</STRONG> as <STRONG>clear</STRONG>.
+ <STRONG>o</STRONG> In 2013, the <STRONG>E3</STRONG> capability was not exercised by "<STRONG>tput</STRONG> <STRONG>clear</STRONG>". That
+ oversight was addressed in 2016 by reorganizing <STRONG>tput</STRONG> to share its
+ logic with <STRONG>clear</STRONG> and <STRONG>tset</STRONG>.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
-
- This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210109).
+ <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG>, <STRONG>xterm(1)</STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
- <STRONG><A HREF="clear.1.html">clear(1)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="clear.1.html">clear(1)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -162,8 +156,8 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-OPTIONS">OPTIONS</a></li>
-<li><a href="#h2-HISTORY">HISTORY</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
+<li><a href="#h2-HISTORY">HISTORY</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
diff --git a/doc/html/man/curs_add_wch.3x.html b/doc/html/man/curs_add_wch.3x.html
index 2aa592000831..64c645d5ad02 100644
--- a/doc/html/man/curs_add_wch.3x.html
+++ b/doc/html/man/curs_add_wch.3x.html
@@ -1,6 +1,7 @@
-<!--
+<!--
+ * t
****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2023,2024 Thomas E. Dickey *
* Copyright 2001-2015,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,60 +28,68 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_add_wch.3x,v 1.28 2020/10/17 23:10:38 tom Exp @
+ * @Id: curs_add_wch.3x,v 1.62 2024/04/20 21:20:07 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_add_wch 3x</TITLE>
+<TITLE>curs_add_wch 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_add_wch 3x</H1>
+<H1 class="no-header">curs_add_wch 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG> <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
+<STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
<STRONG>add_wch</STRONG>, <STRONG>wadd_wch</STRONG>, <STRONG>mvadd_wch</STRONG>, <STRONG>mvwadd_wch</STRONG>, <STRONG>echo_wchar</STRONG>, <STRONG>wecho_wchar</STRONG> - add
- a complex character and rendition to a <STRONG>curses</STRONG> window, then advance the
- cursor
+ a <EM>curses</EM> complex character to a window and advance the cursor
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
<STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
- <STRONG>int</STRONG> <STRONG>add_wch(</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM> <STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>wadd_wch(</STRONG> <STRONG>WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM> <STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>mvadd_wch(</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM> <STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>mvwadd_wch(</STRONG> <STRONG>WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM> <STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>add_wch(const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>wadd_wch(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>mvadd_wch(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>mvwadd_wch(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>echo_wchar(</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM> <STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>wecho_wchar(</STRONG> <STRONG>WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM> <STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>echo_wchar(const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>wecho_wchar(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
</PRE><H3><a name="h3-add_wch">add_wch</a></H3><PRE>
- The <STRONG>add_wch</STRONG>, <STRONG>wadd_wch</STRONG>, <STRONG>mvadd_wch</STRONG>, and <STRONG>mvwadd_wch</STRONG> functions put the
- complex character <EM>wch</EM> into the given window at its current position,
- which is then advanced. These functions perform wrapping and special-
+ The <STRONG>add_wch</STRONG>, <STRONG>wadd_wch</STRONG>, <STRONG>mvadd_wch</STRONG>, and <STRONG>mvwadd_wch</STRONG> functions put the
+ complex character <EM>wch</EM> into the given window at its current position,
+ which is then advanced. These functions perform wrapping and special-
character processing as follows:
- <STRONG>o</STRONG> If <EM>wch</EM> refers to a spacing character, then any previous character
- at that location is removed. A new character specified by <EM>wch</EM> is
- placed at that location with rendition specified by <EM>wch</EM>. The
- cursor then advances to the next spacing character on the screen.
+ <STRONG>o</STRONG> If <EM>wch</EM> refers to a spacing character, then any previous character
+ at that location is removed. A new character specified by <EM>wch</EM> is
+ placed at that location with rendition specified by <EM>wch</EM>. The
+ cursor then advances after this spacing character, to prepare for
+ writing the next character on the screen.
+
+ The newly added spacing character is the base of the active complex
+ character. Subsequent non-spacing characters can be combined with
+ this base until another spacing character is written to the screen,
+ or the cursor is moved, e.g., using <STRONG>wmove</STRONG>.
+
+ <STRONG>o</STRONG> If <EM>wch</EM> refers to a non-spacing character, it is appended to the
+ active complex character, retaining the previous characters at that
+ location. The rendition specified by <EM>wch</EM> is ignored.
- <STRONG>o</STRONG> If <EM>wch</EM> refers to a non-spacing character, all previous characters
- at that location are preserved. The non-spacing characters of <EM>wch</EM>
- are added to the spacing complex character, and the rendition
- specified by <EM>wch</EM> is ignored.
+ The cursor is not advanced after adding a non-spacing character.
+ Subsequent calls to add non-spacing characters will update the same
+ position.
<STRONG>o</STRONG> If the character part of <EM>wch</EM> is a tab, newline, backspace or other
control character, the window is updated and the cursor moves as if
@@ -102,80 +111,82 @@
lines and other frequently used special characters. These symbols
correspond to the same VT100 line-drawing set as <STRONG><A HREF="curs_addch.3x.html">addch(3x)</A></STRONG>.
- <STRONG>ACS</STRONG> <STRONG>Unicode</STRONG> <STRONG>ASCII</STRONG> <STRONG>acsc</STRONG> <STRONG>Glyph</STRONG>
- <STRONG>Name</STRONG> <STRONG>Default</STRONG> <STRONG>Default</STRONG> <STRONG>char</STRONG> <STRONG>Name</STRONG>
+ <STRONG>Unicode</STRONG> <STRONG>ASCII</STRONG> <STRONG>acsc</STRONG>
+
+
+ <STRONG>ACS</STRONG> <STRONG>Name</STRONG> <STRONG>Default</STRONG> <STRONG>Default</STRONG> <STRONG>Char</STRONG> <STRONG>Glyph</STRONG> <STRONG>Name</STRONG>
------------------------------------------------------------------------
- WACS_BLOCK 0x25ae # 0 solid square block
- WACS_BOARD 0x2592 # h board of squares
- WACS_BTEE 0x2534 + v bottom tee
- WACS_BULLET 0x00b7 o ~ bullet
- WACS_CKBOARD 0x2592 : a checker board (stipple)
- WACS_DARROW 0x2193 v . arrow pointing down
- WACS_DEGREE 0x00b0 ' f degree symbol
-
- WACS_DIAMOND 0x25c6 + ` diamond
- WACS_GEQUAL 0x2265 &gt; &gt; greater-than-or-equal-to
- WACS_HLINE 0x2500 - q horizontal line
- WACS_LANTERN 0x2603 # i lantern symbol
- WACS_LARROW 0x2190 &lt; , arrow pointing left
- WACS_LEQUAL 0x2264 &lt; y less-than-or-equal-to
- WACS_LLCORNER 0x2514 + m lower left-hand corner
- WACS_LRCORNER 0x2518 + j lower right-hand corner
- WACS_LTEE 0x2524 + t left tee
- WACS_NEQUAL 0x2260 ! | not-equal
- WACS_PI 0x03c0 * { greek pi
- WACS_PLMINUS 0x00b1 # g plus/minus
- WACS_PLUS 0x253c + n plus
- WACS_RARROW 0x2192 &gt; + arrow pointing right
- WACS_RTEE 0x251c + u right tee
- WACS_S1 0x23ba - o scan line 1
- WACS_S3 0x23bb - p scan line 3
- WACS_S7 0x23bc - r scan line 7
- WACS_S9 0x23bd _ s scan line 9
- WACS_STERLING 0x00a3 f } pound-sterling symbol
- WACS_TTEE 0x252c + w top tee
- WACS_UARROW 0x2191 ^ - arrow pointing up
- WACS_ULCORNER 0x250c + l upper left-hand corner
- WACS_URCORNER 0x2510 + k upper right-hand corner
- WACS_VLINE 0x2502 | x vertical line
-
- The wide-character configuration of ncurses also defines symbols for
+ <STRONG>WACS_BLOCK</STRONG> 0x25ae # 0 solid square block
+ <STRONG>WACS_BOARD</STRONG> 0x2592 # h board of squares
+ <STRONG>WACS_BTEE</STRONG> 0x2534 + v bottom tee
+ <STRONG>WACS_BULLET</STRONG> 0x00b7 o ~ bullet
+ <STRONG>WACS_CKBOARD</STRONG> 0x2592 : a checker board (stipple)
+ <STRONG>WACS_DARROW</STRONG> 0x2193 v . arrow pointing down
+ <STRONG>WACS_DEGREE</STRONG> 0x00b0 ' f degree symbol
+ <STRONG>WACS_DIAMOND</STRONG> 0x25c6 + ` diamond
+ <STRONG>WACS_GEQUAL</STRONG> 0x2265 &gt; &gt; greater-than-or-equal-to
+ <STRONG>WACS_HLINE</STRONG> 0x2500 - q horizontal line
+ <STRONG>WACS_LANTERN</STRONG> 0x2603 # i lantern symbol
+ <STRONG>WACS_LARROW</STRONG> 0x2190 &lt; , arrow pointing left
+ <STRONG>WACS_LEQUAL</STRONG> 0x2264 &lt; y less-than-or-equal-to
+ <STRONG>WACS_LLCORNER</STRONG> 0x2514 + m lower left-hand corner
+ <STRONG>WACS_LRCORNER</STRONG> 0x2518 + j lower right-hand corner
+ <STRONG>WACS_LTEE</STRONG> 0x2524 + t left tee
+ <STRONG>WACS_NEQUAL</STRONG> 0x2260 ! | not-equal
+ <STRONG>WACS_PI</STRONG> 0x03c0 * { greek pi
+ <STRONG>WACS_PLMINUS</STRONG> 0x00b1 # g plus/minus
+ <STRONG>WACS_PLUS</STRONG> 0x253c + n plus
+ <STRONG>WACS_RARROW</STRONG> 0x2192 &gt; + arrow pointing right
+ <STRONG>WACS_RTEE</STRONG> 0x251c + u right tee
+ <STRONG>WACS_S1</STRONG> 0x23ba - o scan line 1
+ <STRONG>WACS_S3</STRONG> 0x23bb - p scan line 3
+ <STRONG>WACS_S7</STRONG> 0x23bc - r scan line 7
+ <STRONG>WACS_S9</STRONG> 0x23bd _ s scan line 9
+ <STRONG>WACS_STERLING</STRONG> 0x00a3 f } pound-sterling symbol
+ <STRONG>WACS_TTEE</STRONG> 0x252c + w top tee
+ <STRONG>WACS_UARROW</STRONG> 0x2191 ^ - arrow pointing up
+ <STRONG>WACS_ULCORNER</STRONG> 0x250c + l upper left-hand corner
+ <STRONG>WACS_URCORNER</STRONG> 0x2510 + k upper right-hand corner
+ <STRONG>WACS_VLINE</STRONG> 0x2502 | x vertical line
+
+ The wide-character configuration of <EM>ncurses</EM> also defines symbols for
thick lines (<STRONG>acsc</STRONG> "J" to "V"):
- <STRONG>ACS</STRONG> <STRONG>Unicode</STRONG> <STRONG>ASCII</STRONG> <STRONG>acsc</STRONG> <STRONG>Glyph</STRONG>
- <STRONG>Name</STRONG> <STRONG>Default</STRONG> <STRONG>Default</STRONG> <STRONG>char</STRONG> <STRONG>Name</STRONG>
- -----------------------------------------------------------------------
- WACS_T_BTEE 0x253b + V thick tee pointing up
- WACS_T_HLINE 0x2501 - Q thick horizontal line
- WACS_T_LLCORNER 0x2517 + M thick lower left corner
- WACS_T_LRCORNER 0x251b + J thick lower right corner
- WACS_T_LTEE 0x252b + T thick tee pointing right
- WACS_T_PLUS 0x254b + N thick large plus
- WACS_T_RTEE 0x2523 + U thick tee pointing left
- WACS_T_TTEE 0x2533 + W thick tee pointing down
- WACS_T_ULCORNER 0x250f + L thick upper left corner
- WACS_T_URCORNER 0x2513 + K thick upper right corner
- WACS_T_VLINE 0x2503 | X thick vertical line
+ <STRONG>Unicode</STRONG> <STRONG>ASCII</STRONG> <STRONG>acsc</STRONG>
+ <STRONG>ACS</STRONG> <STRONG>Name</STRONG> <STRONG>Default</STRONG> <STRONG>Default</STRONG> <STRONG>Char</STRONG> <STRONG>Glyph</STRONG> <STRONG>Name</STRONG>
+ ------------------------------------------------------------------------
+ <STRONG>WACS_T_BTEE</STRONG> 0x253b + V thick tee pointing up
+ <STRONG>WACS_T_HLINE</STRONG> 0x2501 - Q thick horizontal line
+ <STRONG>WACS_T_LLCORNER</STRONG> 0x2517 + M thick lower left corner
+ <STRONG>WACS_T_LRCORNER</STRONG> 0x251b + J thick lower right corner
+ <STRONG>WACS_T_LTEE</STRONG> 0x252b + T thick tee pointing right
+ <STRONG>WACS_T_PLUS</STRONG> 0x254b + N thick large plus
+ <STRONG>WACS_T_RTEE</STRONG> 0x2523 + U thick tee pointing left
+ <STRONG>WACS_T_TTEE</STRONG> 0x2533 + W thick tee pointing down
+ <STRONG>WACS_T_ULCORNER</STRONG> 0x250f + L thick upper left corner
+ <STRONG>WACS_T_URCORNER</STRONG> 0x2513 + K thick upper right corner
+ <STRONG>WACS_T_VLINE</STRONG> 0x2503 | X thick vertical line
and for double-lines (<STRONG>acsc</STRONG> "A" to "I"):
- <STRONG>ACS</STRONG> <STRONG>Unicode</STRONG> <STRONG>ASCII</STRONG> <STRONG>acsc</STRONG> <STRONG>Glyph</STRONG>
- <STRONG>Name</STRONG> <STRONG>Default</STRONG> <STRONG>Default</STRONG> <STRONG>char</STRONG> <STRONG>Name</STRONG>
+ <STRONG>Unicode</STRONG> <STRONG>ASCII</STRONG> <STRONG>acsc</STRONG>
+ <STRONG>ACS</STRONG> <STRONG>Name</STRONG> <STRONG>Default</STRONG> <STRONG>Default</STRONG> <STRONG>Char</STRONG> <STRONG>Glyph</STRONG> <STRONG>Name</STRONG>
------------------------------------------------------------------------
- WACS_D_BTEE 0x2569 + H double tee pointing up
- WACS_D_HLINE 0x2550 - R double horizontal line
- WACS_D_LLCORNER 0x255a + D double lower left corner
- WACS_D_LRCORNER 0x255d + A double lower right corner
- WACS_D_LTEE 0x2560 + F double tee pointing right
- WACS_D_PLUS 0x256c + E double large plus
- WACS_D_RTEE 0x2563 + G double tee pointing left
- WACS_D_TTEE 0x2566 + I double tee pointing down
- WACS_D_ULCORNER 0x2554 + C double upper left corner
- WACS_D_URCORNER 0x2557 + B double upper right corner
- WACS_D_VLINE 0x2551 | Y double vertical line
+ <STRONG>WACS_D_BTEE</STRONG> 0x2569 + H double tee pointing up
+ <STRONG>WACS_D_HLINE</STRONG> 0x2550 - R double horizontal line
+ <STRONG>WACS_D_LLCORNER</STRONG> 0x255a + D double lower left corner
+ <STRONG>WACS_D_LRCORNER</STRONG> 0x255d + A double lower right corner
+ <STRONG>WACS_D_LTEE</STRONG> 0x2560 + F double tee pointing right
+ <STRONG>WACS_D_PLUS</STRONG> 0x256c + E double large plus
+ <STRONG>WACS_D_RTEE</STRONG> 0x2563 + G double tee pointing left
+
+ <STRONG>WACS_D_TTEE</STRONG> 0x2566 + I double tee pointing down
+ <STRONG>WACS_D_ULCORNER</STRONG> 0x2554 + C double upper left corner
+ <STRONG>WACS_D_URCORNER</STRONG> 0x2557 + B double upper right corner
+ <STRONG>WACS_D_VLINE</STRONG> 0x2551 | Y double vertical line
Unicode's descriptions for these characters differs slightly from
- ncurses, by introducing the term "light" (along with less important
+ <EM>ncurses</EM>, by introducing the term "light" (along with less important
details). Here are its descriptions for the normal, thick, and double
horizontal lines:
@@ -189,8 +200,8 @@
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
All routines return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> on success.
- X/Open does not define any error conditions. This implementation
- returns an error
+ X/Open Curses does not specify any error conditions. This
+ implementation returns an error
<STRONG>o</STRONG> if the window pointer is null or
@@ -198,17 +209,16 @@
The latter may be due to different causes:
- <STRONG>o</STRONG> If <STRONG>scrollok</STRONG> is not enabled, writing a character at the lower right
- margin succeeds. However, an error is returned because it is not
- possible to wrap to a new line
+ <STRONG>o</STRONG> If <STRONG><A HREF="scrollok.3x.html">scrollok(3x)</A></STRONG> is not enabled, writing a character at the lower
+ right margin succeeds. However, an error is returned because it is
+ not possible to wrap to a new line.
<STRONG>o</STRONG> If an error is detected when converting a multibyte character to a
sequence of bytes, or if it is not possible to add all of the
resulting bytes in the window, an error is returned.
- Functions with a "mv" prefix first perform a cursor movement using
- <STRONG>wmove</STRONG>, and return an error if the position is outside the window, or if
- the window pointer is null.
+ Functions prefixed with "mv" first perform cursor movement and fail if
+ the position (<EM>y</EM>, <EM>x</EM>) is outside the window boundaries.
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
@@ -216,41 +226,42 @@
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- All of these functions are described in the XSI Curses standard, Issue
- 4. The defaults specified for line-drawing characters apply in the
- POSIX locale.
+ These functions are described in X/Open Curses, Issue 4. The defaults
+ specified for line-drawing characters apply in the POSIX locale.
+
+</PRE><H3><a name="h3-WACS-Symbols">WACS Symbols</a></H3><PRE>
X/Open Curses makes it clear that the WACS_ symbols should be defined
as a pointer to <STRONG>cchar_t</STRONG> data, e.g., in the discussion of <STRONG>border_set</STRONG>. A
few implementations are problematic:
<STRONG>o</STRONG> NetBSD curses defines the symbols as a <STRONG>wchar_t</STRONG> within a <STRONG>cchar_t</STRONG>.
- <STRONG>o</STRONG> HPUX curses equates some of the <EM>ACS</EM><STRONG>_</STRONG> symbols to the analogous <EM>WACS</EM><STRONG>_</STRONG>
- symbols as if the <EM>ACS</EM><STRONG>_</STRONG> symbols were wide characters. The
+ <STRONG>o</STRONG> HP-UX curses equates some of the <STRONG>ACS_</STRONG> symbols to the analogous
+ <STRONG>WACS_</STRONG> symbols as if the <STRONG>ACS_</STRONG> symbols were wide characters. The
misdefined symbols are the arrows and other symbols which are not
used for line-drawing.
- X/Open Curses does not define symbols for thick- or double-lines. SVr4
- curses implementations defined their line-drawing symbols in terms of
- intermediate symbols. This implementation extends those symbols,
+ X/Open Curses does not specify symbols for thick- or double-lines.
+ SVr4 curses implementations defined their line-drawing symbols in terms
+ of intermediate symbols. This implementation extends those symbols,
providing new definitions which are not in the SVr4 implementations.
Not all Unicode-capable terminals provide support for VT100-style
alternate character sets (i.e., the <STRONG>acsc</STRONG> capability), with their
corresponding line-drawing characters. X/Open Curses did not address
the aspect of integrating Unicode with line-drawing characters.
- Existing implementations of Unix curses (AIX, HPUX, Solaris) use only
+ Existing implementations of Unix curses (AIX, HP-UX, Solaris) use only
the <STRONG>acsc</STRONG> character-mapping to provide this feature. As a result, those
implementations can only use single-byte line-drawing characters.
- Ncurses 5.3 (2002) provided a table of Unicode values to solve these
+ <EM>ncurses</EM> 5.3 (2002) provided a table of Unicode values to solve these
problems. NetBSD curses incorporated that table in 2010.
In this implementation, the Unicode values are used instead of the
terminal description's <STRONG>acsc</STRONG> mapping as discussed in <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> for the
- environment variable <STRONG>NCURSES_NO_UTF8_ACS</STRONG>. In contrast, for the same
- cases, the line-drawing characters described in <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG> will use
- only the ASCII default values.
+ environment variable <EM>NCURSES</EM><STRONG>_</STRONG><EM>NO</EM><STRONG>_</STRONG><EM>UTF8</EM><STRONG>_</STRONG><EM>ACS</EM>. In contrast, for the same
+ cases, the line-drawing characters described in <STRONG><A HREF="curs_addch.3x.html">addch(3x)</A></STRONG> will use only
+ the ASCII default values.
Having Unicode available does not solve all of the problems with line-
drawing for curses:
@@ -284,13 +295,40 @@
and horizontal), and U+2612 (ballot box with x).
+</PRE><H3><a name="h3-Complex-Characters">Complex Characters</a></H3><PRE>
+ The complex character type <STRONG>cchar_t</STRONG> can store more than one wide
+ character (<STRONG>wchar_t</STRONG>). The X/Open Curses description does not mention
+ this possibility, describing only the cases where <EM>wch</EM> is a spacing
+ character or a non-spacing character.
+
+ This implementation assumes that <EM>wch</EM> is constructed using <STRONG><A HREF="curs_getcchar.3x.html">setcchar(3x)</A></STRONG>,
+ and in turn that the result
+
+ <STRONG>o</STRONG> contains at most one spacing character in the beginning of its list
+ of wide characters, and zero or more non-spacing characters or
+
+ <STRONG>o</STRONG> may hold one non-spacing character.
+
+ In the latter case, <EM>ncurses</EM> adds the non-spacing character to the
+ active (base) spacing character.
+
+
+</PRE><H3><a name="h3-TABSIZE">TABSIZE</a></H3><PRE>
+ The <STRONG>TABSIZE</STRONG> variable is implemented in SVr4 and other versions of
+ <EM>curses</EM>, but is not specified by X/Open Curses (see <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>).
+
+
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>, <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>, <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>,
- <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, <STRONG>putwc(3)</STRONG>
+ <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG> describes comparable functions of the <EM>ncurses</EM> library in
+ its non-wide-character configuration.
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>, <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>, <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>,
+ <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>, <STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG>, <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>,
+ <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, <STRONG>putwc(3)</STRONG>
- <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
+
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -305,7 +343,13 @@
</li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
<li><a href="#h2-NOTES">NOTES</a></li>
-<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
+<li><a href="#h2-PORTABILITY">PORTABILITY</a>
+<ul>
+<li><a href="#h3-WACS-Symbols">WACS Symbols</a></li>
+<li><a href="#h3-Complex-Characters">Complex Characters</a></li>
+<li><a href="#h3-TABSIZE">TABSIZE</a></li>
+</ul>
+</li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
diff --git a/doc/html/man/curs_add_wchstr.3x.html b/doc/html/man/curs_add_wchstr.3x.html
index ea65069211eb..f554061d849d 100644
--- a/doc/html/man/curs_add_wchstr.3x.html
+++ b/doc/html/man/curs_add_wchstr.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2023,2024 Thomas E. Dickey *
* Copyright 2002-2012,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,81 +27,85 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_add_wchstr.3x,v 1.15 2020/12/19 21:39:06 tom Exp @
+ * @Id: curs_add_wchstr.3x,v 1.39 2024/04/20 21:20:07 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_add_wchstr 3x</TITLE>
+<TITLE>curs_add_wchstr 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_add_wchstr 3x</H1>
+<H1 class="no-header">curs_add_wchstr 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG> <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
+<STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>add_wchstr</STRONG>, <STRONG>add_wchnstr</STRONG>, <STRONG>wadd_wchstr</STRONG>, <STRONG>wadd_wchnstr</STRONG>, <STRONG>mvadd_wchstr</STRONG>,
- <STRONG>mvadd_wchnstr</STRONG>, <STRONG>mvwadd_wchstr</STRONG>, <STRONG>mvwadd_wchnstr</STRONG> - add an array of complex
- characters (and attributes) to a curses window
+ <STRONG>add_wchstr</STRONG>, <STRONG>add_wchnstr</STRONG>, <STRONG>wadd_wchstr</STRONG>, <STRONG>wadd_wchnstr</STRONG>, <STRONG>mvadd_wchstr</STRONG>,
+ <STRONG>mvadd_wchnstr</STRONG>, <STRONG>mvwadd_wchstr</STRONG>, <STRONG>mvwadd_wchnstr</STRONG> - add a <EM>curses</EM> complex
+ character string to a window
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
<STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
<STRONG>int</STRONG> <STRONG>add_wchstr(const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wchstr</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>add_wchnstr(const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wchstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>wadd_wchstr(WINDOW</STRONG> <STRONG>*</STRONG> <EM>win</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wchstr</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>wadd_wchnstr(WINDOW</STRONG> <STRONG>*</STRONG> <EM>win</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wchstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
-
<STRONG>int</STRONG> <STRONG>mvadd_wchstr(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wchstr</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>mvadd_wchnstr(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wchstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>mvwadd_wchstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wchstr</EM><STRONG>);</STRONG>
+
+ <STRONG>int</STRONG> <STRONG>add_wchnstr(const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wchstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>wadd_wchnstr(WINDOW</STRONG> <STRONG>*</STRONG> <EM>win</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wchstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>mvadd_wchnstr(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wchstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>mvwadd_wchnstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wchstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
These functions copy the (null-terminated) array of complex characters
<EM>wchstr</EM> into the window image structure starting at the current cursor
- position. The four functions with <EM>n</EM> as the last argument copy at most
- <EM>n</EM> elements, but no more than will fit on the line. If <STRONG>n</STRONG>=<STRONG>-1</STRONG> then the
- whole array is copied, to the maximum number of characters that will
- fit on the line.
+ position.
- The window cursor is <EM>not</EM> advanced. These functions work faster than
+ The four functions with <EM>n</EM> as the last argument copy at most <EM>n</EM> elements,
+ but no more than will fit on the line. If <STRONG>n</STRONG>=<STRONG>-1</STRONG> then the whole array is
+ copied, to the maximum number of characters that will fit on the line.
+
+ The window cursor is <EM>not</EM> advanced. These functions are faster than
<STRONG>waddnstr</STRONG>. On the other hand:
- <STRONG>o</STRONG> they do not perform checking (such as for the newline, backspace,
+ <STRONG>o</STRONG> they do not perform checking (such as for the newline, backspace,
or carriage return characters),
<STRONG>o</STRONG> they do not advance the current cursor position,
<STRONG>o</STRONG> they do not expand other control characters to ^-escapes, and
- <STRONG>o</STRONG> they truncate the string if it crosses the right margin, rather
+ <STRONG>o</STRONG> they truncate the string if it crosses the right margin, rather
than wrapping it around to the new line.
- These functions end successfully on encountering a null <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM>, or
- when they have filled the current line. If a complex character cannot
- completely fit at the end of the current line, the remaining columns
+ These functions end successfully on encountering a null <STRONG>cchar_t</STRONG>, or
+ when they have filled the current line. If a complex character cannot
+ completely fit at the end of the current line, the remaining columns
are filled with the background character and rendition.
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
All functions return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> on success.
- X/Open does not define any error conditions. This implementation re-
- turns an error if the window pointer is null.
+ X/Open Curses does not specify any error conditions. This
+ implementation returns an error
+
+ <STRONG>o</STRONG> if the <EM>win</EM> parameter is null or
+
+ <STRONG>o</STRONG> if the <EM>wchstr</EM> parameter is null.
- Functions with a "mv" prefix first perform a cursor movement using
- <STRONG>wmove</STRONG>, and return an error if the position is outside the window, or if
- the window pointer is null.
+ Functions prefixed with "mv" first perform cursor movement and fail if
+ the position (<EM>y</EM>, <EM>x</EM>) is outside the window boundaries.
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
@@ -109,18 +113,18 @@
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These entry points are described in the XSI Curses standard, Issue 4.
+ These functions are described in X/Open Curses, Issue 4.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>.
+ <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG> describes comparable functions of the <EM>ncurses</EM> library
+ in its non-wide-character configuration.
- Comparable functions in the narrow-character (ncurses) library are de-
- scribed in <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>.
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>, <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
- <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
diff --git a/doc/html/man/curs_addch.3x.html b/doc/html/man/curs_addch.3x.html
index ba13e2a725a3..0a0622e39af3 100644
--- a/doc/html/man/curs_addch.3x.html
+++ b/doc/html/man/curs_addch.3x.html
@@ -1,7 +1,7 @@
-<!--
+<!--
* t
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2015,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,28 +28,28 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_addch.3x,v 1.55 2020/10/24 09:12:31 tom Exp @
+ * @Id: curs_addch.3x,v 1.85 2024/04/20 19:03:47 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_addch 3x</TITLE>
+<TITLE>curs_addch 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_addch 3x</H1>
+<H1 class="no-header">curs_addch 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG> <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
+<STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>addch</STRONG>, <STRONG>waddch</STRONG>, <STRONG>mvaddch</STRONG>, <STRONG>mvwaddch</STRONG>, <STRONG>echochar</STRONG>, <STRONG>wechochar</STRONG> - add a character
- (with attributes) to a <STRONG>curses</STRONG> window, then advance the cursor
+ <STRONG>addch</STRONG>, <STRONG>waddch</STRONG>, <STRONG>mvaddch</STRONG>, <STRONG>mvwaddch</STRONG>, <STRONG>echochar</STRONG>, <STRONG>wechochar</STRONG> - add a <EM>curses</EM>
+ character to a window and advance the cursor
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -66,239 +66,241 @@
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
-</PRE><H3><a name="h3-Adding-characters">Adding characters</a></H3><PRE>
- The <STRONG>addch</STRONG>, <STRONG>waddch</STRONG>, <STRONG>mvaddch</STRONG> and <STRONG>mvwaddch</STRONG> routines put the character <EM>ch</EM>
- into the given window at its current window position, which is then
- advanced. They are analogous to <STRONG>putchar(3)</STRONG> in <STRONG>stdio(3)</STRONG>. If the
- advance is at the right margin:
+</PRE><H3><a name="h3-Adding-Characters">Adding Characters</a></H3><PRE>
+ <STRONG>waddch</STRONG> puts the character <EM>ch</EM> at the cursor position of window <EM>win</EM>, then
+ advances the cursor position, analogously to the standard C library's
+ <STRONG>putchar(3)</STRONG>. <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> describes the variants of this function.
- <STRONG>o</STRONG> The cursor automatically wraps to the beginning of the next line.
+ If advancement occurs at the right margin,
- <STRONG>o</STRONG> At the bottom of the current scrolling region, and if <STRONG>scrollok</STRONG> is
- enabled, the scrolling region is scrolled up one line.
+ <STRONG>o</STRONG> the cursor automatically wraps to the beginning of the next line;
+ and
- <STRONG>o</STRONG> If <STRONG>scrollok</STRONG> is not enabled, writing a character at the lower right
- margin succeeds. However, an error is returned because it is not
- possible to wrap to a new line
+ <STRONG>o</STRONG> at the bottom of the current scrolling region, and if <STRONG><A HREF="scrollok.3x.html">scrollok(3x)</A></STRONG>
+ is enabled for <EM>win</EM>, the scrolling region scrolls up one line.
- If <EM>ch</EM> is a tab, newline, carriage return or backspace, the cursor is
- moved appropriately within the window:
+ If <EM>ch</EM> is a backspace, carriage return, line feed, or tab, the cursor
+ moves appropriately within the window.
- <STRONG>o</STRONG> Backspace moves the cursor one character left; at the left edge of
- a window it does nothing.
+ <STRONG>o</STRONG> Backspace moves the cursor one character left; at the left margin
+ of a window, it does nothing.
- <STRONG>o</STRONG> Carriage return moves the cursor to the window left margin on the
- current line.
+ <STRONG>o</STRONG> Carriage return moves the cursor to the left margin on the current
+ line of the window.
- <STRONG>o</STRONG> Newline does a <STRONG>clrtoeol</STRONG>, then moves the cursor to the window left
- margin on the next line, scrolling the window if on the last line.
+ <STRONG>o</STRONG> Line feed does a <STRONG><A HREF="curs_clear.3x.html">clrtoeol(3x)</A></STRONG>, then moves the cursor to the left
+ margin on the next line of the window, and if <STRONG><A HREF="scrollok.3x.html">scrollok(3x)</A></STRONG> is
+ enabled for <EM>win</EM>, scrolls the window if the cursor was already on
+ the last line.
- <STRONG>o</STRONG> Tabs are considered to be at every eighth column. The tab interval
- may be altered by setting the <STRONG>TABSIZE</STRONG> variable.
+ <STRONG>o</STRONG> Tab advances the cursor to the next tab stop (possibly on the next
+ line); these are placed at every eighth column by default. Alter
+ the tab interval with the <STRONG>TABSIZE</STRONG> extension; see
+ <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>.
If <EM>ch</EM> is any other nonprintable character, it is drawn in printable
- form, i.e., the <STRONG>^</STRONG><EM>X</EM> notation used by <STRONG><A HREF="unctrl.3x.html">unctrl(3x)</A></STRONG>. Calling <STRONG>winch</STRONG> after
- adding a nonprintable character does not return the character itself,
- but instead returns the printable representation of the character.
-
- Video attributes can be combined with a character argument passed to
- <STRONG>addch</STRONG> or related functions by logical-ORing them into the character.
- (Thus, text, including attributes, can be copied from one place to
- another using <STRONG><A HREF="curs_inch.3x.html">inch(3x)</A></STRONG> and <STRONG>addch</STRONG>.) See the <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG> page for
- values of predefined video attribute constants that can be usefully
- OR'ed into characters.
-
-
-</PRE><H3><a name="h3-Echoing-characters">Echoing characters</a></H3><PRE>
- The <STRONG>echochar</STRONG> and <STRONG>wechochar</STRONG> routines are equivalent to a call to <STRONG>addch</STRONG>
- followed by a call to <STRONG><A HREF="curs_refresh.3x.html">refresh(3x)</A></STRONG>, or a call to <STRONG>waddch</STRONG> followed by a
- call to <STRONG>wrefresh</STRONG>. The knowledge that only a single character is being
- output is used and, for non-control characters, a considerable
- performance gain may be seen by using these routines instead of their
- equivalents.
-
-
-</PRE><H3><a name="h3-Line-Graphics">Line Graphics</a></H3><PRE>
- The following variables may be used to add line drawing characters to
- the screen with routines of the <STRONG>addch</STRONG> family. The default character
- listed below is used if the <STRONG>acsc</STRONG> capability does not define a terminal-
- specific replacement for it, or if the terminal and locale
- configuration requires Unicode but the library is unable to use
- Unicode.
-
- The names are taken from VT100 nomenclature.
-
- <STRONG>ACS</STRONG> <STRONG>ACS</STRONG> <STRONG>acsc</STRONG> <STRONG>Glyph</STRONG>
- <STRONG>Name</STRONG> <STRONG>Default</STRONG> <STRONG>char</STRONG> <STRONG>Name</STRONG>
- ---------------------------------------------------------
- ACS_BLOCK # 0 solid square block
- ACS_BOARD # h board of squares
- ACS_BTEE + v bottom tee
- ACS_BULLET o ~ bullet
- ACS_CKBOARD : a checker board (stipple)
- ACS_DARROW v . arrow pointing down
- ACS_DEGREE ' f degree symbol
- ACS_DIAMOND + ` diamond
- ACS_GEQUAL &gt; &gt; greater-than-or-equal-to
- ACS_HLINE - q horizontal line
- ACS_LANTERN # i lantern symbol
- ACS_LARROW &lt; , arrow pointing left
- ACS_LEQUAL &lt; y less-than-or-equal-to
- ACS_LLCORNER + m lower left-hand corner
- ACS_LRCORNER + j lower right-hand corner
- ACS_LTEE + t left tee
- ACS_NEQUAL ! | not-equal
- ACS_PI * { greek pi
- ACS_PLMINUS # g plus/minus
- ACS_PLUS + n plus
- ACS_RARROW &gt; + arrow pointing right
- ACS_RTEE + u right tee
- ACS_S1 - o scan line 1
- ACS_S3 - p scan line 3
- ACS_S7 - r scan line 7
- ACS_S9 _ s scan line 9
- ACS_STERLING f } pound-sterling symbol
- ACS_TTEE + w top tee
- ACS_UARROW ^ - arrow pointing up
- ACS_ULCORNER + l upper left-hand corner
- ACS_URCORNER + k upper right-hand corner
- ACS_VLINE | x vertical line
+ form, using the same convention as <STRONG><A HREF="unctrl.3x.html">unctrl(3x)</A></STRONG>.
+
+ Calling <STRONG><A HREF="curs_inch.3x.html">winch(3x)</A></STRONG> on the location of a nonprintable character does not
+ return the character itself, but its <STRONG><A HREF="unctrl.3x.html">unctrl(3x)</A></STRONG> representation.
+
+ <EM>ch</EM> may contain rendering and/or color attributes, and others can be
+ combined with the parameter by logically "or"ing with it. (A character
+ with its attributes can be copied from place to place using <STRONG><A HREF="curs_inch.3x.html">winch(3x)</A></STRONG>
+ and <STRONG>waddch</STRONG>.) See <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG> for values of predefined video
+ attribute constants that can be usefully "or"ed with characters.
+
+
+</PRE><H3><a name="h3-Echoing-Characters">Echoing Characters</a></H3><PRE>
+ <STRONG>echochar</STRONG> and <STRONG>wechochar</STRONG> are equivalent to calling (<STRONG>w</STRONG>)<STRONG>addch</STRONG> followed by
+ (<STRONG>w</STRONG>)<STRONG>refresh</STRONG>. <EM>curses</EM> interprets these functions as a hint that only a
+ single character is being output; for non-control characters, a
+ considerable performance gain may be enjoyed by employing them.
+
+
+</PRE><H3><a name="h3-Forms-Drawing-Characters">Forms-Drawing Characters</a></H3><PRE>
+ <EM>curses</EM> defines macros starting with <STRONG>ACS_</STRONG> that can be used with <STRONG>waddch</STRONG>
+ to write line-drawing and other special characters to the screen.
+ <EM>ncurses</EM> terms these <EM>forms-drawing</EM> <EM>characters.</EM> The ACS default listed
+ below is used if the <STRONG>acs_chars</STRONG> (<STRONG>acsc</STRONG>) <EM>terminfo</EM> capability does not
+ define a terminal-specific replacement for it, or if the terminal and
+ locale configuration requires Unicode to access these characters but
+ the library is unable to use Unicode. The "acsc char" column
+ corresponds to how the characters are specified in the <STRONG>acs_chars</STRONG> string
+ capability, and the characters in it may appear on the screen if the
+ terminal's database entry incorrectly advertises ACS support. The name
+ "ACS" originates in the Alternate Character Set feature of the DEC
+ VT100 terminal.
+
+ <STRONG>ACS</STRONG> <STRONG>acsc</STRONG>
+ <STRONG>Symbol</STRONG> <STRONG>Default</STRONG> <STRONG>char</STRONG> <STRONG>Glyph</STRONG> <STRONG>Name</STRONG>
+ ------------------------------------------------------------------------
+ <STRONG>ACS_BLOCK</STRONG> # 0 solid square block
+ <STRONG>ACS_BOARD</STRONG> # h board of squares
+ <STRONG>ACS_BTEE</STRONG> + v bottom tee
+ <STRONG>ACS_BULLET</STRONG> o ~ bullet
+ <STRONG>ACS_CKBOARD</STRONG> : a checker board (stipple)
+ <STRONG>ACS_DARROW</STRONG> v . arrow pointing down
+ <STRONG>ACS_DEGREE</STRONG> ' f degree symbol
+ <STRONG>ACS_DIAMOND</STRONG> + ` diamond
+ <STRONG>ACS_GEQUAL</STRONG> &gt; &gt; greater-than-or-equal-to
+ <STRONG>ACS_HLINE</STRONG> - q horizontal line
+ <STRONG>ACS_LANTERN</STRONG> # i lantern symbol
+ <STRONG>ACS_LARROW</STRONG> &lt; , arrow pointing left
+ <STRONG>ACS_LEQUAL</STRONG> &lt; y less-than-or-equal-to
+ <STRONG>ACS_LLCORNER</STRONG> + m lower left-hand corner
+ <STRONG>ACS_LRCORNER</STRONG> + j lower right-hand corner
+ <STRONG>ACS_LTEE</STRONG> + t left tee
+ <STRONG>ACS_NEQUAL</STRONG> ! | not-equal
+ <STRONG>ACS_PI</STRONG> * { greek pi
+ <STRONG>ACS_PLMINUS</STRONG> # g plus/minus
+ <STRONG>ACS_PLUS</STRONG> + n plus
+ <STRONG>ACS_RARROW</STRONG> &gt; + arrow pointing right
+ <STRONG>ACS_RTEE</STRONG> + u right tee
+ <STRONG>ACS_S1</STRONG> - o scan line 1
+ <STRONG>ACS_S3</STRONG> - p scan line 3
+ <STRONG>ACS_S7</STRONG> - r scan line 7
+ <STRONG>ACS_S9</STRONG> _ s scan line 9
+ <STRONG>ACS_STERLING</STRONG> f } pound-sterling symbol
+ <STRONG>ACS_TTEE</STRONG> + w top tee
+ <STRONG>ACS_UARROW</STRONG> ^ - arrow pointing up
+ <STRONG>ACS_ULCORNER</STRONG> + l upper left-hand corner
+ <STRONG>ACS_URCORNER</STRONG> + k upper right-hand corner
+ <STRONG>ACS_VLINE</STRONG> | x vertical line
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- All routines return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> on success (the
- SVr4 manuals specify only "an integer value other than <STRONG>ERR</STRONG>") upon
- successful completion, unless otherwise noted in the preceding routine
- descriptions.
+ These functions return <STRONG>OK</STRONG> on success and <STRONG>ERR</STRONG> on failure.
- Functions with a "mv" prefix first perform a cursor movement using
- <STRONG>wmove</STRONG>, and return an error if the position is outside the window, or if
- the window pointer is null.
+ In <EM>ncurses</EM>, <STRONG>waddch</STRONG> returns <STRONG>ERR</STRONG> if it is not possible to add a complete
+ character at the cursor position, as when conversion of a multibyte
+ character to a byte sequence fails, or at least one of the resulting
+ bytes cannot be added to the window. See section "PORTABILITY" below
+ regarding the use of <STRONG>waddch</STRONG> with multibyte characters.
- If it is not possible to add a complete character, an error is
- returned:
+ <STRONG>waddch</STRONG> can successfully write a character at the bottom right location
+ of the window. However, <EM>ncurses</EM> returns <STRONG>ERR</STRONG> if <STRONG><A HREF="scrollok.3x.html">scrollok(3x)</A></STRONG> is not
+ enabled in that event, because it is not possible to wrap to a new
+ line.
- <STRONG>o</STRONG> If <STRONG>scrollok</STRONG> is not enabled, writing a character at the lower right
- margin succeeds. However, an error is returned because it is not
- possible to wrap to a new line
-
- <STRONG>o</STRONG> If an error is detected when converting a multibyte character to a
- sequence of bytes, or if it is not possible to add all of the
- resulting bytes in the window, an error is returned.
+ Functions prefixed with "mv" first perform cursor movement and fail if
+ the position (<EM>y</EM>, <EM>x</EM>) is outside the window boundaries.
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- Note that <STRONG>addch</STRONG>, <STRONG>mvaddch</STRONG>, <STRONG>mvwaddch</STRONG>, and <STRONG>echochar</STRONG> may be macros.
+ <STRONG>addch</STRONG>, <STRONG>mvaddch</STRONG>, <STRONG>mvwaddch</STRONG>, and <STRONG>echochar</STRONG> may be implemented as macros.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- All these functions are described in the XSI Curses standard, Issue 4.
- The defaults specified for forms-drawing characters apply in the POSIX
+ X/Open Curses, Issue 4 describes these functions. It specifies no
+ error conditions for them.
+
+ SVr4 <EM>curses</EM> describes a successful return value only as "an integer
+ value other than <STRONG>ERR</STRONG>".
+
+ The defaults specified for forms-drawing characters apply in the POSIX
locale.
</PRE><H3><a name="h3-ACS-Symbols">ACS Symbols</a></H3><PRE>
- X/Open Curses states that the <EM>ACS</EM><STRONG>_</STRONG> definitions are <STRONG>char</STRONG> constants. For
- the wide-character implementation (see <STRONG>curs_add_wch</STRONG>), there are
- analogous <EM>WACS</EM><STRONG>_</STRONG> definitions which are <STRONG>cchar_t</STRONG> constants. Some
- implementations are problematic:
+ X/Open Curses states that the <STRONG>ACS_</STRONG> definitions are <EM>char</EM> constants.
+
+ Some implementations are problematic.
- <STRONG>o</STRONG> Some implementations define the ACS symbols to a constant (such as
- Solaris), while others define those to entries in an array.
+ <STRONG>o</STRONG> Solaris <EM>curses</EM>, for example, define the ACS symbols as constants;
+ others define them as elements of an array.
- This implementation uses an array <STRONG>acs_map</STRONG>, as done in SVr4 curses.
+ This implementation uses an array, <STRONG>acs_map</STRONG>, as did SVr4 <EM>curses</EM>.
NetBSD also uses an array, actually named <STRONG>_acs_char</STRONG>, with a <STRONG>#define</STRONG>
for compatibility.
- <STRONG>o</STRONG> HPUX curses equates some of the <EM>ACS</EM><STRONG>_</STRONG> symbols to the analogous <EM>WACS</EM><STRONG>_</STRONG>
- symbols as if the <EM>ACS</EM><STRONG>_</STRONG> symbols were wide characters. The
- misdefined symbols are the arrows and other symbols which are not
- used for line-drawing.
+ <STRONG>o</STRONG> HP-UX <EM>curses</EM> equates some of the <STRONG>ACS_</STRONG> symbols to the analogous
+ <STRONG>WACS_</STRONG> symbols as if the <STRONG>ACS_</STRONG> symbols were wide characters (see
+ <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>). The misdefined symbols are the arrows and
+ others that are not used for line drawing.
- <STRONG>o</STRONG> X/Open Curses (issues 2 through 7) has a typographical error for
- the ACS_LANTERN symbol, equating its "VT100+ Character" to <STRONG>I</STRONG>
- (capital I), while the header files for SVr4 curses and the various
- implementations use <STRONG>i</STRONG> (lowercase).
+ <STRONG>o</STRONG> X/Open Curses (Issues 2 through 7) has a typographical error for
+ the <STRONG>ACS_LANTERN</STRONG> symbol, equating its "VT100+ Character" to "I"
+ (capital I), while the header files for SVr4 <EM>curses</EM> and other
+ implementations use "i" (small i).
- None of the terminal descriptions on Unix platforms use uppercase-
- I, except for Solaris (i.e., <EM>screen</EM>'s terminal description,
+ None of the terminal descriptions on Unix platforms use uppercase
+ I, except for Solaris (in its <EM>terminfo</EM> entry for <STRONG>screen(1)</STRONG>,
apparently based on the X/Open documentation around 1995). On the
- other hand, the terminal description <EM>gs6300</EM> (AT&amp;T PC6300 with EMOTS
- Terminal Emulator) uses lowercase-i.
+ other hand, its <STRONG>gs6300</STRONG> (AT&amp;T PC6300 with EMOTS Terminal Emulator)
+ description uses lowercase i.
- Some ACS symbols (ACS_S3, ACS_S7, ACS_LEQUAL, ACS_GEQUAL, ACS_PI,
- ACS_NEQUAL, ACS_STERLING) were not documented in any publicly released
- System V. However, many publicly available terminfos include <STRONG>acsc</STRONG>
- strings in which their key characters (pryz{|}) are embedded, and a
- second-hand list of their character descriptions has come to light.
- The ACS-prefixed names for them were invented for <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>.
+ Some ACS symbols (<STRONG>ACS_S3</STRONG>, <STRONG>ACS_S7</STRONG>, <STRONG>ACS_LEQUAL</STRONG>, <STRONG>ACS_GEQUAL</STRONG>, <STRONG>ACS_PI</STRONG>,
+ <STRONG>ACS_NEQUAL</STRONG>, and <STRONG>ACS_STERLING</STRONG>) were not documented in any publicly
+ released System V. However, many publicly available <EM>terminfo</EM> entries
+ include <STRONG>acsc</STRONG> strings in which their key characters <STRONG>(</STRONG>pryz{|}<STRONG>)</STRONG> are
+ embedded, and a second-hand list of their character descriptions has
+ come to light. The <EM>ncurses</EM> developers invented ACS-prefixed names for
+ them.
- The <EM>displayed</EM> values for the <EM>ACS</EM><STRONG>_</STRONG> and <EM>WACS</EM><STRONG>_</STRONG> constants depend on
+ The <EM>displayed</EM> values of <STRONG>ACS_</STRONG> constants depend on
- <STRONG>o</STRONG> the library configuration, i.e., <STRONG>ncurses</STRONG> versus <STRONG>ncursesw</STRONG>, where the
- latter is capable of displaying Unicode while the former is not,
- and
+ <STRONG>o</STRONG> the <EM>ncurses</EM> ABI--for example, wide-character versus non-wide-
+ character configurations (the former is capable of displaying
+ Unicode while the latter is not), and
- <STRONG>o</STRONG> whether the <EM>locale</EM> uses UTF-8 encoding.
+ <STRONG>o</STRONG> whether the locale uses UTF-8 encoding.
- In certain cases, the terminal is unable to display line-drawing
- characters except by using UTF-8 (see the discussion of
- <STRONG>NCURSES_NO_UTF8_ACS</STRONG> in <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>).
+ In certain cases, the terminal is unable to display forms-drawing
+ characters <EM>except</EM> by using UTF-8; see the discussion of the
+ <EM>NCURSES</EM><STRONG>_</STRONG><EM>NO</EM><STRONG>_</STRONG><EM>UTF8</EM><STRONG>_</STRONG><EM>ACS</EM> environment variable in <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>).
</PRE><H3><a name="h3-Character-Set">Character Set</a></H3><PRE>
- X/Open Curses assumes that the parameter passed to <STRONG>waddch</STRONG> contains a
- single character. As discussed in <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>, that character may
- have been more than eight bits in an SVr3 or SVr4 implementation, but
- in the X/Open Curses model, the details are not given. The important
- distinction between SVr4 curses and X/Open Curses is that the non-
- character information (attributes and color) was separated from the
- character information which is packed in a <STRONG>chtype</STRONG> to pass to <STRONG>waddch</STRONG>.
-
- In this implementation, <STRONG>chtype</STRONG> holds an eight-bit character. But
- ncurses allows multibyte characters to be passed in a succession of
- calls to <STRONG>waddch</STRONG>. The other implementations do not do this; a call to
- <STRONG>waddch</STRONG> passes exactly one character which may be rendered as one or
- more cells on the screen depending on whether it is printable.
-
- Depending on the locale settings, ncurses will inspect the byte passed
- in each call to <STRONG>waddch</STRONG>, and check if the latest call will continue a
- multibyte sequence. When a character is <EM>complete</EM>, ncurses displays the
- character and moves to the next position in the screen.
+ X/Open Curses assumes that the parameter passed to <STRONG>waddch</STRONG> contains a
+ single character. As discussed in <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>, that character may
+ have been more than eight bits wide in an SVr3 or SVr4 implementation,
+ but in the X/Open Curses model, the details are not given. The
+ important distinction between SVr4 <EM>curses</EM> and X/Open Curses is that the
+ latter separates non-character information (attributes and color) from
+ the character code, which SVr4 packs into a <EM>chtype</EM> for passage to
+ <STRONG>waddch</STRONG>.
+
+ In <EM>ncurses</EM>, <EM>chtype</EM> holds an eight-bit character. But the library
+ allows a multibyte character to be passed in a succession of calls to
+ <STRONG>waddch</STRONG>. Other implementations do not; a <STRONG>waddch</STRONG> call transmits exactly
+ one character, which may be rendered in one or more screen locations
+ depending on whether it is printable.
+
+ Depending on the locale settings, <EM>ncurses</EM> inspects the byte passed in
+ each <STRONG>waddch</STRONG> call, and checks whether the latest call continues a
+ multibyte sequence. When a character is <EM>complete</EM>, <EM>ncurses</EM> displays the
+ character and advances the cursor.
If the calling application interrupts the succession of bytes in a
- multibyte character by moving the current location (e.g., using <STRONG>wmove</STRONG>),
- ncurses discards the partially built character, starting over again.
+ multibyte character sequence by changing the current location--for
+ example, with <STRONG><A HREF="curs_move.3x.html">wmove(3x)</A></STRONG>--<EM>ncurses</EM> discards the incomplete character.
For portability to other implementations, do not rely upon this
- behavior:
+ behavior. Check whether a character can be represented as a single
+ byte in the current locale.
- <STRONG>o</STRONG> check if a character can be represented as a single byte in the
- current locale before attempting call <STRONG>waddch</STRONG>, and
+ <STRONG>o</STRONG> If it can, call either <STRONG>waddch</STRONG> or <STRONG><A HREF="curs_add_wch.3x.html">wadd_wch(3x)</A></STRONG>.
- <STRONG>o</STRONG> call <STRONG>wadd_wch</STRONG> for characters which cannot be handled by <STRONG>waddch</STRONG>.
+ <STRONG>o</STRONG> If it cannot, use only <STRONG><A HREF="curs_add_wch.3x.html">wadd_wch(3x)</A></STRONG>.
</PRE><H3><a name="h3-TABSIZE">TABSIZE</a></H3><PRE>
- The <STRONG>TABSIZE</STRONG> variable is implemented in SVr4 and other versions of
- curses, but is not part of X/Open curses (see <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG> for
- more details).
-
- If <EM>ch</EM> is a carriage return, the cursor is moved to the beginning of the
- current row of the window. This is true of other implementations, but
- is not documented.
+ SVr4 and other versions of <EM>curses</EM> implement the <STRONG>TABSIZE</STRONG> variable, but
+ X/Open Curses does not specify it (see <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>).
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>, <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>, <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>,
- <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, <STRONG>putc(3)</STRONG>.
+ <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG> describes comparable functions of the <EM>ncurses</EM> library
+ in its wide-character configuration (<EM>ncursesw</EM>).
- Comparable functions in the wide-character (ncursesw) library are
- described in <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>.
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>, <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>, <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>,
+ <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>, <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>, <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>,
+ <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, <STRONG>putchar(3)</STRONG>
- <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -306,9 +308,9 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
<ul>
-<li><a href="#h3-Adding-characters">Adding characters</a></li>
-<li><a href="#h3-Echoing-characters">Echoing characters</a></li>
-<li><a href="#h3-Line-Graphics">Line Graphics</a></li>
+<li><a href="#h3-Adding-Characters">Adding Characters</a></li>
+<li><a href="#h3-Echoing-Characters">Echoing Characters</a></li>
+<li><a href="#h3-Forms-Drawing-Characters">Forms-Drawing Characters</a></li>
</ul>
</li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
diff --git a/doc/html/man/curs_addchstr.3x.html b/doc/html/man/curs_addchstr.3x.html
index 5712a67cd967..a3441e6c9a1d 100644
--- a/doc/html/man/curs_addchstr.3x.html
+++ b/doc/html/man/curs_addchstr.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2023,2024 Thomas E. Dickey *
* Copyright 1998-2012,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,53 +27,53 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_addchstr.3x,v 1.22 2020/12/19 21:39:20 tom Exp @
+ * @Id: curs_addchstr.3x,v 1.45 2024/04/20 21:20:07 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_addchstr 3x</TITLE>
+<TITLE>curs_addchstr 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_addchstr 3x</H1>
+<H1 class="no-header">curs_addchstr 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG> <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
+<STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>addchstr</STRONG>, <STRONG>addchnstr</STRONG>, <STRONG>waddchstr</STRONG>, <STRONG>waddchnstr</STRONG>, <STRONG>mvaddchstr</STRONG>, <STRONG>mvaddchnstr</STRONG>,
- <STRONG>mvwaddchstr</STRONG>, <STRONG>mvwaddchnstr</STRONG> - add a string of characters (and attributes)
- to a <STRONG>curses</STRONG> window
+ <STRONG>addchstr</STRONG>, <STRONG>addchnstr</STRONG>, <STRONG>waddchstr</STRONG>, <STRONG>waddchnstr</STRONG>, <STRONG>mvaddchstr</STRONG>, <STRONG>mvaddchnstr</STRONG>,
+ <STRONG>mvwaddchstr</STRONG>, <STRONG>mvwaddchnstr</STRONG> - add a <EM>curses</EM> character string to a window
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
<STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
<STRONG>int</STRONG> <STRONG>addchstr(const</STRONG> <STRONG>chtype</STRONG> <STRONG>*</STRONG><EM>chstr</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>addchnstr(const</STRONG> <STRONG>chtype</STRONG> <STRONG>*</STRONG><EM>chstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>waddchstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>chtype</STRONG> <STRONG>*</STRONG><EM>chstr</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>waddchnstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>chtype</STRONG> <STRONG>*</STRONG><EM>chstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
-
<STRONG>int</STRONG> <STRONG>mvaddchstr(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>chtype</STRONG> <STRONG>*</STRONG><EM>chstr</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>mvaddchnstr(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>chtype</STRONG> <STRONG>*</STRONG><EM>chstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>mvwaddchstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>chtype</STRONG> <STRONG>*</STRONG><EM>chstr</EM><STRONG>);</STRONG>
+
+ <STRONG>int</STRONG> <STRONG>addchnstr(const</STRONG> <STRONG>chtype</STRONG> <STRONG>*</STRONG><EM>chstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>waddchnstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>chtype</STRONG> <STRONG>*</STRONG><EM>chstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>mvaddchnstr(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>chtype</STRONG> <STRONG>*</STRONG><EM>chstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>mvwaddchnstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>chtype</STRONG> <STRONG>*</STRONG><EM>chstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- These functions copy the (null-terminated) <EM>chstr</EM> array into the window
- image structure starting at the current cursor position. The four
- functions with <EM>n</EM> as the last argument copy at most <EM>n</EM> elements, but no
- more than will fit on the line. If <STRONG>n</STRONG>=<STRONG>-1</STRONG> then the whole array is
+ These functions copy the (null-terminated) <EM>chstr</EM> array into the window
+ image structure starting at the current cursor position.
+
+ The four functions with <EM>n</EM> as the last argument copy at most <EM>n</EM> elements,
+ but no more than will fit on the line. If <STRONG>n</STRONG>=<STRONG>-1</STRONG> then the whole array is
copied, to the maximum number of characters that will fit on the line.
- The window cursor is <EM>not</EM> advanced. These functions work faster than
+ The window cursor is <EM>not</EM> advanced. These functions are faster than
<STRONG>waddnstr</STRONG>. On the other hand:
<STRONG>o</STRONG> they do not perform checking (such as for the newline, backspace,
@@ -90,12 +90,15 @@
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
All functions return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> on success.
- X/Open does not define any error conditions. This implementation re-
- turns an error if the window pointer is null.
+ X/Open Curses does not specify any error conditions. This
+ implementation returns an error
+
+ <STRONG>o</STRONG> if the <EM>win</EM> parameter is null or
+
+ <STRONG>o</STRONG> if the <EM>wchstr</EM> parameter is null.
- Functions with a "mv" prefix first perform a cursor movement using
- <STRONG>wmove</STRONG>, and return an error if the position is outside the window, or if
- the window pointer is null.
+ Functions prefixed with "mv" first perform cursor movement and fail if
+ the position (<EM>y</EM>, <EM>x</EM>) is outside the window boundaries.
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
@@ -103,18 +106,18 @@
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These entry points are described in the XSI Curses standard, Issue 4.
+ These functions are described in X/Open Curses, Issue 4.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>.
+ <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG> describes comparable functions of the <EM>ncurses</EM>
+ library in its wide-character configuration (<EM>ncursesw</EM>).
- Comparable functions in the wide-character (ncursesw) library are de-
- scribed in <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>.
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>, <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
- <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
diff --git a/doc/html/man/curs_addstr.3x.html b/doc/html/man/curs_addstr.3x.html
index 50a8ce5b62f8..b7f1c689b994 100644
--- a/doc/html/man/curs_addstr.3x.html
+++ b/doc/html/man/curs_addstr.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2023,2024 Thomas E. Dickey *
* Copyright 1998-2012,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,82 +27,70 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_addstr.3x,v 1.23 2020/10/17 23:11:02 tom Exp @
+ * @Id: curs_addstr.3x,v 1.45 2024/04/20 19:18:18 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_addstr 3x</TITLE>
+<TITLE>curs_addstr 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_addstr 3x</H1>
+<H1 class="no-header">curs_addstr 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG> <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
+<STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>addstr</STRONG>, <STRONG>addnstr</STRONG>, <STRONG>waddstr</STRONG>, <STRONG>waddnstr</STRONG>, <STRONG>mvaddstr</STRONG>, <STRONG>mvaddnstr</STRONG>, <STRONG>mvwaddstr</STRONG>,
- <STRONG>mvwaddnstr</STRONG> - add a string of characters to a <STRONG>curses</STRONG> window and advance
- cursor
+ <STRONG>addstr</STRONG>, <STRONG>addnstr</STRONG>, <STRONG>waddstr</STRONG>, <STRONG>waddnstr</STRONG>, <STRONG>mvaddstr</STRONG>, <STRONG>mvaddnstr</STRONG>, <STRONG>mvwaddstr</STRONG>,
+ <STRONG>mvwaddnstr</STRONG> - add a string to a <EM>curses</EM> window and advance the cursor
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
<STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
<STRONG>int</STRONG> <STRONG>addstr(const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>addnstr(const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>mvaddstr(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>mvwaddstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>waddstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>waddnstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>mvaddstr(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>addnstr(const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>mvaddnstr(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>mvwaddstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>mvwaddnstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str,</EM> <EM>int</EM> <EM>n</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>mvwaddnstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>waddnstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- These functions write the (null-terminated) character string <EM>str</EM> on the
- given window. It is similar to calling <STRONG>waddch</STRONG> once for each byte in
- the string.
+ <STRONG>waddstr</STRONG> writes the characters of the (null-terminated) string <EM>str</EM> to
+ the window <EM>win</EM>. Its process is similar to calling <STRONG><A HREF="curs_addch.3x.html">waddch(3x)</A></STRONG> for each
+ <EM>char</EM> in <EM>str</EM>. Control characters are processed as in <STRONG><A HREF="curs_addch.3x.html">waddch(3x)</A></STRONG>.
- The <EM>mv</EM> functions perform cursor movement once, before writing any char-
- acters. Thereafter, the cursor is advanced as a side-effect of writing
- to the window.
+ <STRONG>waddnstr</STRONG> writes at most <EM>n</EM> characters, or until a terminating null
+ character occurs in <EM>str</EM>. If <EM>n</EM> is -1, <STRONG>waddnstr</STRONG> writes the entire
+ string.
- The four functions with <EM>n</EM> as the last argument write at most <EM>n</EM> bytes,
- or until a terminating null is reached. If <EM>n</EM> is -1, then the entire
- string will be added.
+ <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> describes the variants of these functions.
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- All functions return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> on success.
+ These functions return <STRONG>OK</STRONG> on success and <STRONG>ERR</STRONG> on failure.
- X/Open does not define any error conditions. This implementation re-
- turns an error
+ X/Open Curses does not specify any error conditions. <EM>ncurses</EM> returns
+ an error
- <STRONG>o</STRONG> if the window pointer is null or
+ <STRONG>o</STRONG> if the window pointer is <STRONG>NULL</STRONG>,
- <STRONG>o</STRONG> if the string pointer is null or
+ <STRONG>o</STRONG> if the string pointer is <STRONG>NULL</STRONG>, or
- <STRONG>o</STRONG> if the corresponding calls to <STRONG>waddch</STRONG> return an error.
+ <STRONG>o</STRONG> if an internal <STRONG><A HREF="curs_addch.3x.html">waddch(3x)</A></STRONG> call returns an error.
- Functions with a "mv" prefix first perform a cursor movement using
- <STRONG>wmove</STRONG>, and return an error if the position is outside the window, or if
- the window pointer is null. If an error is returned by the <STRONG>wmove</STRONG>, no
- characters are added to the window.
-
- If an error is returned by <STRONG>waddch</STRONG> (e.g., because the window is not
- large enough, or an illegal byte sequence was detected) only part of
- the string may be added. Aside from that, there is a special case in
- <STRONG>waddch</STRONG> where an error may be returned after successfully writing a
- character to the lower-right corner of a window when <STRONG>scrollok</STRONG> is dis-
- abled.
+ Functions prefixed with "mv" first perform cursor movement and fail if
+ the position (<EM>y</EM>, <EM>x</EM>) is outside the window boundaries.
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
@@ -110,15 +98,18 @@
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These functions are described in the XSI Curses standard, Issue 4.
+ X/Open Curses, Issue 4 describes these functions.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>.
+ <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG> describes comparable functions of the <EM>ncurses</EM> library
+ in its wide-character configuration (<EM>ncursesw</EM>).
+
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>, <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
- <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
diff --git a/doc/html/man/curs_addwstr.3x.html b/doc/html/man/curs_addwstr.3x.html
index f157a29674d5..ce3229acc228 100644
--- a/doc/html/man/curs_addwstr.3x.html
+++ b/doc/html/man/curs_addwstr.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2023,2024 Thomas E. Dickey *
* Copyright 2002-2012,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,91 +27,96 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_addwstr.3x,v 1.15 2020/10/17 23:12:22 tom Exp @
+ * @Id: curs_addwstr.3x,v 1.37 2024/04/20 19:18:18 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_addwstr 3x</TITLE>
+<TITLE>curs_addwstr 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_addwstr 3x</H1>
+<H1 class="no-header">curs_addwstr 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG> <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
+<STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>addwstr</STRONG>, <STRONG>addnwstr</STRONG>, <STRONG>waddwstr</STRONG>, <STRONG>waddnwstr</STRONG>, <STRONG>mvaddwstr</STRONG>, <STRONG>mvaddnwstr</STRONG>,
- <STRONG>mvwaddwstr</STRONG>, <STRONG>mvwaddnwstr</STRONG> - add a string of wide characters to a <STRONG>curses</STRONG>
- window and advance cursor
+ <STRONG>addwstr</STRONG>, <STRONG>addnwstr</STRONG>, <STRONG>waddwstr</STRONG>, <STRONG>waddnwstr</STRONG>, <STRONG>mvaddwstr</STRONG>, <STRONG>mvaddnwstr</STRONG>,
+ <STRONG>mvwaddwstr</STRONG>, <STRONG>mvwaddnwstr</STRONG> - add a wide-character string to a <EM>curses</EM>
+ window and advance the cursor
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
<STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
<STRONG>int</STRONG> <STRONG>addwstr(const</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wstr</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>addnwstr(const</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>mvaddwstr(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wstr</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>mvwaddwstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wstr</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>waddwstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wstr</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>waddnwstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>mvaddwstr(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wstr</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>addnwstr(const</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>mvaddnwstr(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>mvwaddwstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wstr</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>mvwaddnwstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>waddnwstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- These functions write the characters of the (null-terminated) <STRONG>wchar_t</STRONG>
- character string <EM>wstr</EM> on the given window. It is similar to construct-
- ing a <STRONG>cchar_t</STRONG> for each wchar_t in the string, then calling <STRONG>wadd_wch</STRONG> for
- the resulting <STRONG>cchar_t</STRONG>.
+ <STRONG>waddwstr</STRONG> writes the characters of the (wide-null-terminated) wide-
+ character string <EM>wstr</EM> to the window <EM>win</EM>. Its process is similar to
+ constructing a <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM> for each <EM>wchar</EM><STRONG>_</STRONG><EM>t</EM> in <EM>wstr</EM>, then calling
+ <STRONG><A HREF="curs_add_wch.3x.html">wadd_wch(3x)</A></STRONG> with the resulting <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM>.
- The <EM>mv</EM> functions perform cursor movement once, before writing any char-
- acters. Thereafter, the cursor is advanced as a side-effect of writing
- to the window.
+ <STRONG>o</STRONG> Spacing and non-spacing characters in the string are processed one
+ at a time, and
- The four functions with <EM>n</EM> as the last argument write at most <EM>n</EM> <STRONG>wchar_t</STRONG>
- characters, or until a terminating null is reached. If <EM>n</EM> is -1, then
- the entire string will be added.
+ <STRONG>o</STRONG> control characters are processed as in <STRONG><A HREF="curs_add_wch.3x.html">wadd_wch(3x)</A></STRONG>.
+
+ <STRONG>waddnwstr</STRONG> writes at most <EM>n</EM> wide characters, or until a terminating wide
+ null character occurs in <EM>wstr</EM>. If <EM>n</EM> is -1, <STRONG>waddnwstr</STRONG> writes the entire
+ wide string.
+
+ <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> describes the variants of these functions.
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- All functions return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> on success.
+ These functions return <STRONG>OK</STRONG> on success and <STRONG>ERR</STRONG> on failure.
- X/Open does not define any error conditions. This implementation re-
- turns an error
+ X/Open Curses does not specify any error conditions. <EM>ncurses</EM> returns
+ an error
- <STRONG>o</STRONG> if the window pointer is null or
+ <STRONG>o</STRONG> if the window pointer is <STRONG>NULL</STRONG>,
- <STRONG>o</STRONG> if the string pointer is null or
+ <STRONG>o</STRONG> if the string pointer is <STRONG>NULL</STRONG>, or
- <STRONG>o</STRONG> if the corresponding calls to <STRONG>wadd_wch</STRONG> return an error.
+ <STRONG>o</STRONG> if an internal <STRONG><A HREF="curs_add_wch.3x.html">wadd_wch(3x)</A></STRONG> call returns an error.
- Functions with a "mv" prefix first perform a cursor movement using
- <STRONG>wmove</STRONG>, and return an error if the position is outside the window, or if
- the window pointer is null.
+ Functions prefixed with "mv" first perform cursor movement and fail if
+ the position (<EM>y</EM>, <EM>x</EM>) is outside the window boundaries.
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- All of these functions except <STRONG>waddnwstr</STRONG> may be macros.
+ All of these functions except <STRONG>waddnwstr</STRONG> may be implemented as macros.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These functions are described in the XSI Curses standard, Issue 4.
+ X/Open Curses, Issue 4 describes these functions.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
+ <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG> describes comparable functions of the <EM>ncurses</EM> library
+ in its non-wide-character configuration.
+
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>, <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
- <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
diff --git a/doc/html/man/curs_attr.3x.html b/doc/html/man/curs_attr.3x.html
index 95e98e41dd27..bc1fd859d06a 100644
--- a/doc/html/man/curs_attr.3x.html
+++ b/doc/html/man/curs_attr.3x.html
@@ -1,7 +1,7 @@
-<!--
+<!--
* t
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,42 +28,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_attr.3x,v 1.66 2020/02/02 23:34:34 tom Exp @
- * ---------------------------------------------------------------------------
- * attr_get
- * .br
- * .br
- * .br
- * .br
- * .br
- * ---------------------------------------------------------------------------
- * ---------------------------------------------------------------------------
- * ---------------------------------------------------------------------------
- * ---------------------------------------------------------------------------
- * ---------------------------------------------------------------------------
- * ---------------------------------------------------------------------------
- * ---------------------------------------------------------------------------
- * ---------------------------------------------------------------------------
- * ---------------------------------------------------------------------------
- * ---------------------------------------------------------------------------
- * ---------------------------------------------------------------------------
- * ---------------------------------------------------------------------------
- * ---------------------------------------------------------------------------
- * ---------------------------------------------------------------------------
+ * @Id: curs_attr.3x,v 1.105 2024/04/27 17:54:42 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_attr 3x</TITLE>
+<TITLE>curs_attr 3x 2024-04-27 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_attr 3x</H1>
+<H1 class="no-header">curs_attr 3x 2024-04-27 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG> <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
+<STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
@@ -71,9 +50,9 @@
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
<STRONG>attr_get</STRONG>, <STRONG>wattr_get</STRONG>, <STRONG>attr_set</STRONG>, <STRONG>wattr_set</STRONG>, <STRONG>attr_off</STRONG>, <STRONG>wattr_off</STRONG>, <STRONG>attr_on</STRONG>,
<STRONG>wattr_on</STRONG>, <STRONG>attroff</STRONG>, <STRONG>wattroff</STRONG>, <STRONG>attron</STRONG>, <STRONG>wattron</STRONG>, <STRONG>attrset</STRONG>, <STRONG>wattrset</STRONG>, <STRONG>chgat</STRONG>,
- <STRONG>wchgat</STRONG>, <STRONG>mvchgat</STRONG>, <STRONG>mvwchgat</STRONG>, <STRONG>color_set</STRONG>, <STRONG>wcolor_set</STRONG>, <STRONG>standend</STRONG>, <STRONG>wstandend</STRONG>,
- <STRONG>standout</STRONG>, <STRONG>wstandout</STRONG> - <STRONG>curses</STRONG> character and window attribute control
- routines
+ <STRONG>wchgat</STRONG>, <STRONG>mvchgat</STRONG>, <STRONG>mvwchgat</STRONG>, <STRONG>color_set</STRONG>, <STRONG>wcolor_set</STRONG>, <STRONG>standend</STRONG>, <STRONG>wstandend</STRONG>,
+ <STRONG>standout</STRONG>, <STRONG>wstandout</STRONG> - manipulate attributes of character cells in
+ <EM>curses</EM> windows
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -89,7 +68,7 @@
<STRONG>int</STRONG> <STRONG>attr_on(attr_t</STRONG> <EM>attrs</EM><STRONG>,</STRONG> <STRONG>void</STRONG> <STRONG>*</STRONG><EM>opts</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>wattr_on(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>attr_t</STRONG> <EM>attrs</EM><STRONG>,</STRONG> <STRONG>void</STRONG> <STRONG>*</STRONG><EM>opts</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>attroff(int</STRONG> <EM>attrs);</EM>
+ <STRONG>int</STRONG> <STRONG>attroff(int</STRONG> <EM>attrs</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>wattroff(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>attrs</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>attron(int</STRONG> <EM>attrs</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>wattron(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>attrs</EM><STRONG>);</STRONG>
@@ -101,11 +80,11 @@
<STRONG>int</STRONG> <EM>n</EM><STRONG>,</STRONG> <STRONG>attr_t</STRONG> <EM>attr</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>pair</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>void</STRONG> <STRONG>*</STRONG><EM>opts</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>mvchgat(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG>
<STRONG>int</STRONG> <EM>n</EM><STRONG>,</STRONG> <STRONG>attr_t</STRONG> <EM>attr</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>pair</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>void</STRONG> <STRONG>*</STRONG><EM>opts</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>mvwchgat(WINDOW</STRONG> <STRONG>*</STRONG><EM>win,</EM> <EM>int</EM> <EM>y,</EM> <EM>int</EM> <EM>x</EM><STRONG>,</STRONG>
- <STRONG>int</STRONG> <EM>n,</EM> <STRONG>attr_t</STRONG> <EM>attr</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>pair</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>void</STRONG> <STRONG>*</STRONG><EM>opts</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>mvwchgat(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG>
+ <STRONG>int</STRONG> <EM>n</EM><STRONG>,</STRONG> <STRONG>attr_t</STRONG> <EM>attr</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>pair</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>void</STRONG> <STRONG>*</STRONG><EM>opts</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>color_set(short</STRONG> <EM>pair</EM><STRONG>,</STRONG> <STRONG>void*</STRONG> <EM>opts</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>wcolor_set(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>pair</EM><STRONG>,</STRONG> <STRONG>void*</STRONG> <EM>opts);</EM>
+ <STRONG>int</STRONG> <STRONG>wcolor_set(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>pair</EM><STRONG>,</STRONG> <STRONG>void*</STRONG> <EM>opts</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>standend(void);</STRONG>
<STRONG>int</STRONG> <STRONG>wstandend(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>);</STRONG>
@@ -117,121 +96,118 @@
These routines manipulate the current attributes of the named window,
which then apply to all characters that are written into the window
with <STRONG>waddch</STRONG>, <STRONG>waddstr</STRONG> and <STRONG>wprintw</STRONG>. Attributes are a property of the
- character, and move with the character through any scrolling and in-
- sert/delete line/character operations. To the extent possible, they
+ character, and move with the character through any scrolling and
+ insert/delete line/character operations. To the extent possible, they
are displayed as appropriate modifications to the graphic rendition of
characters put on the screen.
These routines do not affect the attributes used when erasing portions
- of the window. See <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG> for functions which modify the at-
- tributes used for erasing and clearing.
+ of the window. See <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG> for functions which modify the
+ attributes used for erasing and clearing.
- Routines which do not have a <STRONG>WINDOW*</STRONG> parameter apply to <STRONG>stdscr</STRONG>. For
- example, <STRONG>attr_set</STRONG> is the <STRONG>stdscr</STRONG> variant of <STRONG>wattr_set</STRONG>.
-
-</PRE><H3><a name="h3-Window-attributes">Window attributes</a></H3><PRE>
+</PRE><H3><a name="h3-Window-Attributes">Window Attributes</a></H3><PRE>
There are two sets of functions:
- <STRONG>o</STRONG> functions for manipulating the window attributes and color: <STRONG>wat-</STRONG>
- <STRONG>tr_set</STRONG> and <STRONG>wattr_get</STRONG>.
+ <STRONG>o</STRONG> functions for manipulating the window attributes and color:
+ <STRONG>wattr_set</STRONG> and <STRONG>wattr_get</STRONG>.
- <STRONG>o</STRONG> functions for manipulating only the window attributes (not color):
+ <STRONG>o</STRONG> functions for manipulating only the window attributes (not color):
<STRONG>wattr_on</STRONG> and <STRONG>wattr_off</STRONG>.
- The <STRONG>wattr_set</STRONG> function sets the current attributes of the given window
+ The <STRONG>wattr_set</STRONG> function sets the current attributes of the given window
to <EM>attrs</EM>, with color specified by <EM>pair</EM>.
Use <STRONG>wattr_get</STRONG> to retrieve attributes for the given window.
- Use <STRONG>attr_on</STRONG> and <STRONG>wattr_on</STRONG> to turn on window attributes, i.e., values
- OR'd together in <EM>attr</EM>, without affecting other attributes. Use <STRONG>at-</STRONG>
- <STRONG>tr_off</STRONG> and <STRONG>wattr_off</STRONG> to turn off window attributes, again values OR'd
+ Use <STRONG>attr_on</STRONG> and <STRONG>wattr_on</STRONG> to turn on window attributes, i.e., values
+ OR'd together in <EM>attr</EM>, without affecting other attributes. Use
+ <STRONG>attr_off</STRONG> and <STRONG>wattr_off</STRONG> to turn off window attributes, again values OR'd
together in <EM>attr</EM>, without affecting other attributes.
-</PRE><H3><a name="h3-Legacy-window-attributes">Legacy window attributes</a></H3><PRE>
- The X/Open window attribute routines which <EM>set</EM> or <EM>get</EM>, turn <EM>on</EM> or <EM>off</EM>
+</PRE><H3><a name="h3-Legacy-Window-Attributes">Legacy Window Attributes</a></H3><PRE>
+ The X/Open window attribute routines which <EM>set</EM> or <EM>get</EM>, turn <EM>on</EM> or <EM>off</EM>
are extensions of older routines which assume that color pairs are OR'd
- into the attribute parameter. These newer routines use similar names,
+ into the attribute parameter. These newer routines use similar names,
because X/Open simply added an underscore (<STRONG>_</STRONG>) for the newer names.
The <STRONG>int</STRONG> datatype used in the legacy routines is treated as if it is the
- same size as <STRONG>chtype</STRONG> (used by <STRONG><A HREF="curs_addch.3x.html">addch(3x)</A></STRONG>). It holds the common video at-
- tributes (such as bold, reverse), as well as a few bits for color.
- Those bits correspond to the <STRONG>A_COLOR</STRONG> symbol. The <STRONG>COLOR_PAIR</STRONG> macro pro-
- vides a value which can be OR'd into the attribute parameter. For ex-
- ample, as long as that value fits into the <STRONG>A_COLOR</STRONG> mask, then these
+ same size as <STRONG>chtype</STRONG> (used by <STRONG><A HREF="curs_addch.3x.html">addch(3x)</A></STRONG>). It holds the common video
+ attributes (such as bold, reverse), as well as a few bits for color.
+ Those bits correspond to the <STRONG>A_COLOR</STRONG> symbol. The <STRONG>COLOR_PAIR</STRONG> macro
+ provides a value which can be OR'd into the attribute parameter. For
+ example, as long as that value fits into the <STRONG>A_COLOR</STRONG> mask, then these
calls produce similar results:
attrset(A_BOLD | COLOR_PAIR(<EM>pair</EM>));
attr_set(A_BOLD, <EM>pair</EM>, NULL);
However, if the value does not fit, then the <STRONG>COLOR_PAIR</STRONG> macro uses only
- the bits that fit. For example, because in ncurses <STRONG>A_COLOR</STRONG> has eight
+ the bits that fit. For example, because in <EM>ncurses</EM> <STRONG>A_COLOR</STRONG> has eight
(8) bits, then <STRONG>COLOR_PAIR(</STRONG><EM>259</EM><STRONG>)</STRONG> is 4 (i.e., 259 is 4 more than the limit
255).
- The <STRONG>PAIR_NUMBER</STRONG> macro extracts a pair number from an <STRONG>int</STRONG> (or <STRONG>chtype</STRONG>).
- For example, the <EM>input</EM> and <EM>output</EM> values in these statements would be
+ The <STRONG>PAIR_NUMBER</STRONG> macro extracts a pair number from an <STRONG>int</STRONG> (or <STRONG>chtype</STRONG>).
+ For example, the <EM>input</EM> and <EM>output</EM> values in these statements would be
the same:
int value = A_BOLD | COLOR_PAIR(<EM>input</EM>);
int <EM>output</EM> = PAIR_NUMBER(value);
- The <STRONG>attrset</STRONG> routine is a legacy feature predating SVr4 curses but kept
- in X/Open Curses for the same reason that SVr4 curses kept it: compati-
- bility.
+ The <STRONG>attrset</STRONG> routine is a legacy feature predating SVr4 curses but kept
+ in X/Open Curses for the same reason that SVr4 curses kept it:
+ compatibility.
- The remaining <STRONG>attr</STRONG>* functions operate exactly like the corresponding
- <STRONG>attr_</STRONG>* functions, except that they take arguments of type <STRONG>int</STRONG> rather
+ The remaining <STRONG>attr</STRONG>* functions operate exactly like the corresponding
+ <STRONG>attr_</STRONG>* functions, except that they take arguments of type <STRONG>int</STRONG> rather
than <STRONG>attr_t</STRONG>.
- There is no corresponding <STRONG>attrget</STRONG> function as such in X/Open Curses,
- although ncurses provides <STRONG>getattrs</STRONG> (see <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>).
+ There is no corresponding <STRONG>attrget</STRONG> function as such in X/Open Curses,
+ although <EM>ncurses</EM> provides <STRONG>getattrs</STRONG> (see <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>).
-</PRE><H3><a name="h3-Change-character-rendition">Change character rendition</a></H3><PRE>
- The routine <STRONG>chgat</STRONG> changes the attributes of a given number of charac-
- ters starting at the current cursor location of <STRONG>stdscr</STRONG>. It does not
- update the cursor and does not perform wrapping. A character count of
- -1 or greater than the remaining window width means to change at-
- tributes all the way to the end of the current line. The <STRONG>wchgat</STRONG> func-
- tion generalizes this to any window; the <STRONG>mvwchgat</STRONG> function does a cur-
- sor move before acting.
+</PRE><H3><a name="h3-Change-Character-Rendition">Change Character Rendition</a></H3><PRE>
+ The routine <STRONG>chgat</STRONG> changes the attributes of a given number of
+ characters starting at the current cursor location of <STRONG>stdscr</STRONG>. It does
+ not update the cursor and does not perform wrapping. A character count
+ of -1 or greater than the remaining window width means to change
+ attributes all the way to the end of the current line. The <STRONG>wchgat</STRONG>
+ function generalizes this to any window; the <STRONG>mvwchgat</STRONG> function does a
+ cursor move before acting.
- In these functions, the color <EM>pair</EM> argument is a color-pair index (as
+ In these functions, the color <EM>pair</EM> argument is a color pair index (as
in the first argument of <STRONG>init_pair</STRONG>, see <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>).
-</PRE><H3><a name="h3-Change-window-color">Change window color</a></H3><PRE>
+</PRE><H3><a name="h3-Change-Window-Color">Change Window Color</a></H3><PRE>
The routine <STRONG>color_set</STRONG> sets the current color of the given window to the
- foreground/background combination described by the color <EM>pair</EM> parame-
- ter.
+ foreground/background combination described by the color <EM>pair</EM>
+ parameter.
</PRE><H3><a name="h3-Standout">Standout</a></H3><PRE>
- The routine <STRONG>standout</STRONG> is the same as <STRONG>attron(A_STANDOUT)</STRONG>. The routine
- <STRONG>standend</STRONG> is the same as <STRONG>attrset(A_NORMAL)</STRONG> or <STRONG>attrset(0)</STRONG>, that is, it
+ The routine <STRONG>standout</STRONG> is the same as <STRONG>attron(A_STANDOUT)</STRONG>. The routine
+ <STRONG>standend</STRONG> is the same as <STRONG>attrset(A_NORMAL)</STRONG> or <STRONG>attrset(0)</STRONG>, that is, it
turns off all attributes.
- X/Open does not mark these "restricted", because
+ X/Open Curses does not mark these "restricted", because
<STRONG>o</STRONG> they have well established legacy use, and
- <STRONG>o</STRONG> there is no ambiguity about the way the attributes might be com-
- bined with a color pair.
+ <STRONG>o</STRONG> there is no ambiguity about the way the attributes might be
+ combined with a color pair.
-</PRE><H2><a name="h2-VIDEO-ATTRIBUTES">VIDEO ATTRIBUTES</a></H2><PRE>
+</PRE><H3><a name="h3-Video-Attributes">Video Attributes</a></H3><PRE>
The following video attributes, defined in <STRONG>&lt;curses.h&gt;</STRONG>, can be passed to
- the routines <STRONG>attron</STRONG>, <STRONG>attroff</STRONG>, and <STRONG>attrset</STRONG>, or OR'd with the characters
+ the routines <STRONG>attron</STRONG>, <STRONG>attroff</STRONG>, and <STRONG>attrset</STRONG>, or OR'd with the characters
passed to <STRONG>addch</STRONG> (see <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>).
- <EM>Name</EM> <EM>Description</EM>
+ <STRONG>Name</STRONG> <STRONG>Description</STRONG>
-----------------------------------------------------------------
<STRONG>A_NORMAL</STRONG> Normal display (no highlight)
- <STRONG>A_STANDOUT</STRONG> Best highlighting mode of the terminal.
+ <STRONG>A_STANDOUT</STRONG> Best highlighting mode of the terminal
<STRONG>A_UNDERLINE</STRONG> Underlining
<STRONG>A_REVERSE</STRONG> Reverse video
<STRONG>A_BLINK</STRONG> Blinking
@@ -244,11 +220,11 @@
<STRONG>A_CHARTEXT</STRONG> Bit-mask to extract a character
<STRONG>A_COLOR</STRONG> Bit-mask to extract a color (legacy routines)
- These video attributes are supported by <STRONG>attr_on</STRONG> and related functions
+ These video attributes are supported by <STRONG>attr_on</STRONG> and related functions
(which also support the attributes recognized by <STRONG>attron</STRONG>, etc.):
- <EM>Name</EM> <EM>Description</EM>
- -----------------------------------------
+ <STRONG>Name</STRONG> <STRONG>Description</STRONG>
+ -----------------------------------------------------------------
<STRONG>WA_HORIZONTAL</STRONG> Horizontal highlight
<STRONG>WA_LEFT</STRONG> Left highlight
<STRONG>WA_LOW</STRONG> Low highlight
@@ -256,12 +232,31 @@
<STRONG>WA_TOP</STRONG> Top highlight
<STRONG>WA_VERTICAL</STRONG> Vertical highlight
- The return values of many of these routines are not meaningful (they
- are implemented as macro-expanded assignments and simply return their
- argument). The SVr4 manual page claims (falsely) that these routines
+ The return values of many of these routines are not meaningful (they
+ are implemented as macro-expanded assignments and simply return their
+ argument). The SVr4 manual page claims (falsely) that these routines
always return <STRONG>1</STRONG>.
+</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
+ All routines return the integer <STRONG>OK</STRONG> on success, or <STRONG>ERR</STRONG> on failure.
+
+ X/Open Curses does not specify any error conditions.
+
+ This implementation
+
+ <STRONG>o</STRONG> returns an error if the window pointer is null.
+
+ <STRONG>o</STRONG> returns an error if the color pair parameter for <STRONG>wcolor_set</STRONG> is
+ outside the range 0..COLOR_PAIRS-1.
+
+ <STRONG>o</STRONG> does not return an error if either of the parameters of <STRONG>wattr_get</STRONG>
+ used for retrieving attribute or color pair values is <STRONG>NULL</STRONG>.
+
+ Functions prefixed with "mv" first perform cursor movement and fail if
+ the position (<EM>y</EM>, <EM>x</EM>) is outside the window boundaries.
+
+
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
These functions may be macros:
@@ -270,16 +265,116 @@
Color pair values can only be OR'd with attributes if the pair number
is less than 256. The alternate functions such as <STRONG>color_set</STRONG> can pass a
- color pair value directly. However, ncurses ABI 4 and 5 simply OR this
- value within the alternate functions. You must use ncurses ABI 6 to
+ color pair value directly. However, <EM>ncurses</EM> ABI 4 and 5 simply OR this
+ value within the alternate functions. You must use <EM>ncurses</EM> ABI 6 to
support more than 256 color pairs.
+</PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
+ This implementation provides the <STRONG>A_ITALIC</STRONG> attribute for terminals which
+ have the <STRONG>enter_italics_mode</STRONG> (<STRONG>sitm</STRONG>) and <STRONG>exit_italics_mode</STRONG> (<STRONG>ritm</STRONG>)
+ capabilities. Italics are not mentioned in X/Open Curses. Unlike the
+ other video attributes, <STRONG>A_ITALIC</STRONG> is unrelated to the <STRONG>set_attributes</STRONG>
+ capabilities. This implementation makes the assumption that
+ <STRONG>exit_attribute_mode</STRONG> may also reset italics.
+
+ Each of the functions added by XSI Curses has a parameter <EM>opts</EM>, which
+ X/Open Curses still (after more than twenty years) documents as
+ reserved for future use, saying that it should be <STRONG>NULL</STRONG>. This
+ implementation uses that parameter in ABI 6 for the functions which
+ have a color pair parameter to support <EM>extended</EM> <EM>color</EM> <EM>pairs</EM>:
+
+ <STRONG>o</STRONG> For functions which modify the color, e.g., <STRONG>wattr_set</STRONG> and <STRONG>wattr_on</STRONG>,
+ if <EM>opts</EM> is set it is treated as a pointer to <STRONG>int</STRONG>, and used to set
+ the color pair instead of the <STRONG>short</STRONG> <EM>pair</EM> parameter.
+
+ <STRONG>o</STRONG> For functions which retrieve the color, e.g., <STRONG>wattr_get</STRONG>, if <EM>opts</EM> is
+ set it is treated as a pointer to <STRONG>int</STRONG>, and used to retrieve the
+ color pair as an <STRONG>int</STRONG> value, in addition to retrieving it via the
+ standard pointer to <STRONG>short</STRONG> parameter.
+
+ <STRONG>o</STRONG> For functions which turn attributes off, e.g., <STRONG>wattr_off</STRONG>, the <EM>opts</EM>
+ parameter is ignored except except to check that it is <STRONG>NULL</STRONG>.
+
+
+</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
+ These functions are described in X/Open Curses, Issue 4. The standard
+ defined the dedicated type for highlights, <STRONG>attr_t</STRONG>, which was not
+ defined in SVr4 curses. The functions taking <STRONG>attr_t</STRONG> arguments were not
+ supported under SVr4.
+
+ Very old versions of this library did not force an update of the screen
+ when changing the attributes. Use <STRONG>touchwin</STRONG> to force the screen to
+ match the updated attributes.
+
+ X/Open Curses states that whether the traditional functions
+ <STRONG>attron</STRONG>/<STRONG>attroff</STRONG>/<STRONG>attrset</STRONG> can manipulate attributes other than <STRONG>A_BLINK</STRONG>,
+ <STRONG>A_BOLD</STRONG>, <STRONG>A_DIM</STRONG>, <STRONG>A_REVERSE</STRONG>, <STRONG>A_STANDOUT</STRONG>, or <STRONG>A_UNDERLINE</STRONG> is "unspecified".
+ Under this implementation as well as SVr4 curses, these functions
+ correctly manipulate all other highlights (specifically, <STRONG>A_ALTCHARSET</STRONG>,
+ <STRONG>A_PROTECT</STRONG>, and <STRONG>A_INVIS</STRONG>).
+
+ X/Open Curses added these entry points:
+
+ <STRONG>attr_get</STRONG>, <STRONG>attr_on</STRONG>, <STRONG>attr_off</STRONG>, <STRONG>attr_set</STRONG>, <STRONG>wattr_on</STRONG>, <STRONG>wattr_off</STRONG>,
+ <STRONG>wattr_get</STRONG>, <STRONG>wattr_set</STRONG>
+
+ The new functions are intended to work with a new series of highlight
+ macros prefixed with <STRONG>WA_</STRONG>. The older macros have direct counterparts in
+ the newer set of names:
+
+ <STRONG>Name</STRONG> <STRONG>Description</STRONG>
+ -----------------------------------------------------------------
+ <STRONG>WA_NORMAL</STRONG> Normal display (no highlight)
+ <STRONG>WA_STANDOUT</STRONG> Best highlighting mode of the terminal
+ <STRONG>WA_UNDERLINE</STRONG> Underlining
+ <STRONG>WA_REVERSE</STRONG> Reverse video
+ <STRONG>WA_BLINK</STRONG> Blinking
+ <STRONG>WA_DIM</STRONG> Half bright
+ <STRONG>WA_BOLD</STRONG> Extra bright or bold
+
+ <STRONG>WA_ALTCHARSET</STRONG> Alternate character set
+
+ X/Open Curses does not assign values to these symbols, nor does it
+ state whether or not they are related to the similarly-named A_NORMAL,
+ etc.:
+
+ <STRONG>o</STRONG> X/Open Curses specifies that each pair of corresponding <STRONG>A_</STRONG> and
+ <STRONG>WA_</STRONG>-using functions operates on the same current-highlight
+ information.
+
+ <STRONG>o</STRONG> However, in some implementations, those symbols have unrelated
+ values.
+
+ For example, the Solaris <EM>xpg4</EM> (X/Open) curses declares <STRONG>attr_t</STRONG> to be
+ an unsigned short integer (16-bits), while <STRONG>chtype</STRONG> is a unsigned
+ integer (32-bits). The <STRONG>WA_</STRONG> symbols in this case are different from
+ the <STRONG>A_</STRONG> symbols because they are used for a smaller datatype which
+ does not represent <STRONG>A_CHARTEXT</STRONG> or <STRONG>A_COLOR</STRONG>.
+
+ In this implementation (as in many others), the values happen to be
+ the same because it simplifies copying information between <STRONG>chtype</STRONG>
+ and <STRONG>cchar_t</STRONG> variables.
+
+ <STRONG>o</STRONG> Because <EM>ncurses</EM>'s <STRONG>attr_t</STRONG> can hold a color pair (in the <STRONG>A_COLOR</STRONG>
+ field), a call to <STRONG>wattr_on</STRONG>, <STRONG>wattr_off</STRONG>, or <STRONG>wattr_set</STRONG> may alter the
+ window's color. If the color pair information in the attribute
+ parameter is zero, no change is made to the window's color.
+
+ This is consistent with SVr4 curses; X/Open Curses does not specify
+ this.
+
+ The X/Open Curses extended conformance level adds new highlights
+ <STRONG>A_HORIZONTAL</STRONG>, <STRONG>A_LEFT</STRONG>, <STRONG>A_LOW</STRONG>, <STRONG>A_RIGHT</STRONG>, <STRONG>A_TOP</STRONG>, <STRONG>A_VERTICAL</STRONG> (and
+ corresponding <STRONG>WA_</STRONG> macros for each). As of August 2013, no known
+ terminal provides these highlights (i.e., via the <STRONG>sgr1</STRONG> capability).
+
+
</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
X/Open Curses is largely based on SVr4 curses, adding support for
- "wide-characters" (not specific to Unicode). Some of the X/Open dif-
- ferences from SVr4 curses address the way video attributes can be ap-
- plied to wide-characters. But aside from that, <STRONG>attrset</STRONG> and <STRONG>attr_set</STRONG>
+ "wide-characters" (not specific to Unicode). Some of the X/Open
+ differences from SVr4 curses address the way video attributes can be
+ applied to wide-characters. But aside from that, <STRONG>attrset</STRONG> and <STRONG>attr_set</STRONG>
are similar. SVr4 curses provided the basic features for manipulating
video attributes. However, earlier versions of curses provided a part
of these features.
@@ -290,11 +385,11 @@
<STRONG>standout</STRONG> and <STRONG>standend</STRONG> which were carried along into X/Open Curses due
to their pervasive use in legacy applications.
- Some terminals in the 1980s could support a variety of video at-
- tributes, although the BSD curses library could do nothing with those.
- System V (1983) provided an improved curses library. It defined the <STRONG>A_</STRONG>
- symbols for use by applications to manipulate the other attributes.
- There are few useful references for the chronology.
+ Some terminals in the 1980s could support a variety of video
+ attributes, although the BSD curses library could do nothing with
+ those. System V (1983) provided an improved curses library. It
+ defined the <STRONG>A_</STRONG> symbols for use by applications to manipulate the other
+ attributes. There are few useful references for the chronology.
Goodheart's book <EM>UNIX</EM> <EM>Curses</EM> <EM>Explained</EM> (1991) describes SVr3 (1987),
commenting on several functions:
@@ -322,24 +417,24 @@
This table showing the number of bits for <STRONG>A_COLOR</STRONG> and <STRONG>A_CHARTEXT</STRONG> was
gleaned from the curses header files for various operating systems and
architectures. The inferred architecture and notes reflect the format
- and size of the defined constants as well as clues such as the alter-
- nate character set implementation. A 32-bit library can be used on a
- 64-bit system, but not necessarily the reverse.
-
- <EM>Year</EM> <EM>System</EM> <EM>Arch</EM> <EM>Color</EM> <EM>Char</EM> <EM>Notes</EM>
- ----------------------------------------------------------------
- 1992 Solaris 5.2 32 6 17 SVr4 curses
- 1992 HPUX 9 32 no 8 SVr2 curses
- 1992 AIX 3.2 32 no 23 SVr2 curses
- 1994 OSF/1 r3 32 no 23 SVr2 curses
- 1995 HP-UX 10.00 32 6 16 SVr3 "curses_colr"
- 1995 HP-UX 10.00 32 6 8 SVr4, X/Open curses
- 1995 Solaris 5.4 32/64 7 16 X/Open curses
- 1996 AIX 4.2 32 7 16 X/Open curses
- 1996 OSF/1 r4 32 6 16 X/Open curses
-
- 1997 HP-UX 11.00 32 6 8 X/Open curses
- 2000 U/Win 32/64 7/31 16 uses <STRONG>chtype</STRONG>
+ and size of the defined constants as well as clues such as the
+ alternate character set implementation. A 32-bit library can be used
+ on a 64-bit system, but not necessarily the reverse.
+
+ <STRONG>Bits</STRONG>
+ <STRONG>Year</STRONG> <STRONG>System</STRONG> <STRONG>Arch</STRONG> <STRONG>Color</STRONG> <STRONG>Char</STRONG> <STRONG>Notes</STRONG>
+ ------------------------------------------------------------------------
+ 1992 Solaris 5.2 32 6 17 SVr4 <EM>curses</EM>
+ 1992 HP-UX 9 32 no 8 SVr2 <EM>curses</EM>
+ 1992 AIX 3.2 32 no 23 SVr2 <EM>curses</EM>
+ 1994 OSF/1 r3 32 no 23 SVr2 <EM>curses</EM>
+ 1995 HP-UX 10.00 32 6 16 SVr3 <EM>curses</EM><STRONG>_</STRONG><EM>colr</EM>
+ 1995 HP-UX 10.00 32 6 8 SVr4, X/Open <EM>curses</EM>
+ 1995 Solaris 5.4 32/64 7 16 X/Open <EM>curses</EM>
+ 1996 AIX 4.2 32 7 16 X/Open <EM>curses</EM>
+ 1996 OSF/1 r4 32 6 16 X/Open <EM>curses</EM>
+ 1997 HP-UX 11.00 32 6 8 X/Open <EM>curses</EM>
+ 2000 U/Win 32/64 7/31 16 uses <EM>chtype</EM>
Notes:
@@ -353,11 +448,11 @@
Regarding OSF/1 (and Tru64),
- <STRONG>o</STRONG> These used 64-bit hardware. Like ncurses, the OSF/1 curses in-
- terface is not customized for 32-bit and 64-bit versions.
+ <STRONG>o</STRONG> These used 64-bit hardware. Like <EM>ncurses</EM>, the OSF/1 curses
+ interface is not customized for 32-bit and 64-bit versions.
- <STRONG>o</STRONG> Unlike other systems which evolved from AT&amp;T code, OSF/1 provid-
- ed a new implementation for X/Open curses.
+ <STRONG>o</STRONG> Unlike other systems which evolved from AT&amp;T code, OSF/1
+ provided a new implementation for X/Open curses.
Regarding Solaris,
@@ -367,8 +462,8 @@
Sun's copyright began in 1996.
<STRONG>o</STRONG> Sun updated the X/Open curses interface after 64-bit support was
- introduced in 1997, but did not modify the SVr4 curses inter-
- face.
+ introduced in 1997, but did not modify the SVr4 curses
+ interface.
Regarding U/Win,
@@ -387,133 +482,22 @@
Other interfaces are rarely used now:
<STRONG>o</STRONG> BSD curses was improved slightly in 1993/1994 using Keith Bostic's
- modification to make the library 8-bit clean for <STRONG>nvi</STRONG>. He moved
+ modification to make the library 8-bit clean for <STRONG>nvi(1)</STRONG>. He moved
<EM>standout</EM> attribute to a structure member.
- The resulting 4.4BSD curses was replaced by ncurses over the next
+ The resulting 4.4BSD curses was replaced by <EM>ncurses</EM> over the next
ten years.
<STRONG>o</STRONG> U/Win is rarely used now.
-</PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
- This implementation provides the <STRONG>A_ITALIC</STRONG> attribute for terminals which
- have the <STRONG>enter_italics_mode</STRONG> (<STRONG>sitm</STRONG>) and <STRONG>exit_italics_mode</STRONG> (<STRONG>ritm</STRONG>) capa-
- bilities. Italics are not mentioned in X/Open Curses. Unlike the oth-
- er video attributes, <STRONG>A_ITALIC</STRONG> is unrelated to the <STRONG>set_attributes</STRONG> capa-
- bilities. This implementation makes the assumption that <STRONG>exit_attri-</STRONG>
- <STRONG>bute_mode</STRONG> may also reset italics.
-
- Each of the functions added by XSI Curses has a parameter <EM>opts</EM>, which
- X/Open Curses still (after more than twenty years) documents as re-
- served for future use, saying that it should be <STRONG>NULL</STRONG>. This implementa-
- tion uses that parameter in ABI 6 for the functions which have a color-
- pair parameter to support <EM>extended</EM> <EM>color</EM> <EM>pairs</EM>:
-
- <STRONG>o</STRONG> For functions which modify the color, e.g., <STRONG>wattr_set</STRONG>, if <EM>opts</EM> is
- set it is treated as a pointer to <STRONG>int</STRONG>, and used to set the color
- pair instead of the <STRONG>short</STRONG> <EM>pair</EM> parameter.
-
- <STRONG>o</STRONG> For functions which retrieve the color, e.g., <STRONG>wattr_get</STRONG>, if <EM>opts</EM> is
- set it is treated as a pointer to <STRONG>int</STRONG>, and used to retrieve the
- color pair as an <STRONG>int</STRONG> value, in addition retrieving it via the stan-
- dard pointer to <STRONG>short</STRONG> parameter.
-
- The remaining functions which have <EM>opts</EM>, but do not manipulate color,
- e.g., <STRONG>wattr_on</STRONG> and <STRONG>wattr_off</STRONG> are not used by this implementation except
- to check that they are <STRONG>NULL</STRONG>.
-
-
-</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These functions are supported in the XSI Curses standard, Issue 4. The
- standard defined the dedicated type for highlights, <STRONG>attr_t</STRONG>, which was
- not defined in SVr4 curses. The functions taking <STRONG>attr_t</STRONG> arguments were
- not supported under SVr4.
-
- Very old versions of this library did not force an update of the screen
- when changing the attributes. Use <STRONG>touchwin</STRONG> to force the screen to
- match the updated attributes.
-
- The XSI Curses standard states that whether the traditional functions
- <STRONG>attron</STRONG>/<STRONG>attroff</STRONG>/<STRONG>attrset</STRONG> can manipulate attributes other than <STRONG>A_BLINK</STRONG>,
- <STRONG>A_BOLD</STRONG>, <STRONG>A_DIM</STRONG>, <STRONG>A_REVERSE</STRONG>, <STRONG>A_STANDOUT</STRONG>, or <STRONG>A_UNDERLINE</STRONG> is "unspecified".
- Under this implementation as well as SVr4 curses, these functions cor-
- rectly manipulate all other highlights (specifically, <STRONG>A_ALTCHARSET</STRONG>,
- <STRONG>A_PROTECT</STRONG>, and <STRONG>A_INVIS</STRONG>).
-
- XSI Curses added these entry points:
-
- <STRONG>attr_get</STRONG>, <STRONG>attr_on</STRONG>, <STRONG>attr_off</STRONG>, <STRONG>attr_set</STRONG>, <STRONG>wattr_on</STRONG>, <STRONG>wattr_off</STRONG>, <STRONG>wat-</STRONG>
- <STRONG>tr_get</STRONG>, <STRONG>wattr_set</STRONG>
-
- The new functions are intended to work with a new series of highlight
- macros prefixed with <STRONG>WA_</STRONG>. The older macros have direct counterparts in
- the newer set of names:
-
- <EM>Name</EM> <EM>Description</EM>
- ------------------------------------------------------------
- <STRONG>WA_NORMAL</STRONG> Normal display (no highlight)
- <STRONG>WA_STANDOUT</STRONG> Best highlighting mode of the terminal.
- <STRONG>WA_UNDERLINE</STRONG> Underlining
- <STRONG>WA_REVERSE</STRONG> Reverse video
- <STRONG>WA_BLINK</STRONG> Blinking
- <STRONG>WA_DIM</STRONG> Half bright
- <STRONG>WA_BOLD</STRONG> Extra bright or bold
- <STRONG>WA_ALTCHARSET</STRONG> Alternate character set
-
- XSI curses does not assign values to these symbols, nor does it state
- whether or not they are related to the similarly-named A_NORMAL, etc.:
-
- <STRONG>o</STRONG> The XSI curses standard specifies that each pair of corresponding
- <STRONG>A_</STRONG> and <STRONG>WA_</STRONG>-using functions operates on the same current-highlight
- information.
-
- <STRONG>o</STRONG> However, in some implementations, those symbols have unrelated val-
- ues.
-
- For example, the Solaris <EM>xpg4</EM> (X/Open) curses declares <STRONG>attr_t</STRONG> to be
- an unsigned short integer (16-bits), while <STRONG>chtype</STRONG> is a unsigned in-
- teger (32-bits). The <STRONG>WA_</STRONG> symbols in this case are different from
- the <STRONG>A_</STRONG> symbols because they are used for a smaller datatype which
- does not represent <STRONG>A_CHARTEXT</STRONG> or <STRONG>A_COLOR</STRONG>.
-
- In this implementation (as in many others), the values happen to be
- the same because it simplifies copying information between <STRONG>chtype</STRONG>
- and <STRONG>cchar_t</STRONG> variables.
-
- The XSI standard extended conformance level adds new highlights <STRONG>A_HORI-</STRONG>
- <STRONG>ZONTAL</STRONG>, <STRONG>A_LEFT</STRONG>, <STRONG>A_LOW</STRONG>, <STRONG>A_RIGHT</STRONG>, <STRONG>A_TOP</STRONG>, <STRONG>A_VERTICAL</STRONG> (and corresponding
- <STRONG>WA_</STRONG> macros for each). As of August 2013, no known terminal provides
- these highlights (i.e., via the <STRONG>sgr1</STRONG> capability).
-
-
-</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- All routines return the integer <STRONG>OK</STRONG> on success, or <STRONG>ERR</STRONG> on failure.
-
- X/Open does not define any error conditions.
-
- This implementation
-
- <STRONG>o</STRONG> returns an error if the window pointer is null.
-
- <STRONG>o</STRONG> returns an error if the color pair parameter for <STRONG>wcolor_set</STRONG> is out-
- side the range 0..COLOR_PAIRS-1.
-
- <STRONG>o</STRONG> does not return an error if either of the parameters of <STRONG>wattr_get</STRONG>
- used for retrieving attribute or color-pair values is <STRONG>NULL</STRONG>.
-
- Functions with a "mv" prefix first perform a cursor movement using
- <STRONG>wmove</STRONG>, and return an error if the position is outside the window, or if
- the window pointer is null.
-
-
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>, <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>, <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>,
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>, <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>, <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>,
<STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>
- <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
+ncurses 6.5 2024-04-27 <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -521,19 +505,19 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
<ul>
-<li><a href="#h3-Window-attributes">Window attributes</a></li>
-<li><a href="#h3-Legacy-window-attributes">Legacy window attributes</a></li>
-<li><a href="#h3-Change-character-rendition">Change character rendition</a></li>
-<li><a href="#h3-Change-window-color">Change window color</a></li>
+<li><a href="#h3-Window-Attributes">Window Attributes</a></li>
+<li><a href="#h3-Legacy-Window-Attributes">Legacy Window Attributes</a></li>
+<li><a href="#h3-Change-Character-Rendition">Change Character Rendition</a></li>
+<li><a href="#h3-Change-Window-Color">Change Window Color</a></li>
<li><a href="#h3-Standout">Standout</a></li>
+<li><a href="#h3-Video-Attributes">Video Attributes</a></li>
</ul>
</li>
-<li><a href="#h2-VIDEO-ATTRIBUTES">VIDEO ATTRIBUTES</a></li>
+<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
<li><a href="#h2-NOTES">NOTES</a></li>
-<li><a href="#h2-HISTORY">HISTORY</a></li>
<li><a href="#h2-EXTENSIONS">EXTENSIONS</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
-<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
+<li><a href="#h2-HISTORY">HISTORY</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
diff --git a/doc/html/man/curs_beep.3x.html b/doc/html/man/curs_beep.3x.html
index d9719d84b73e..e3d6c81786db 100644
--- a/doc/html/man/curs_beep.3x.html
+++ b/doc/html/man/curs_beep.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2005,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,27 +27,27 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_beep.3x,v 1.14 2020/02/02 23:34:34 tom Exp @
+ * @Id: curs_beep.3x,v 1.29 2024/04/20 21:20:07 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_beep 3x</TITLE>
+<TITLE>curs_beep 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_beep 3x</H1>
+<H1 class="no-header">curs_beep 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_beep.3x.html">curs_beep(3x)</A></STRONG> <STRONG><A HREF="curs_beep.3x.html">curs_beep(3x)</A></STRONG>
+<STRONG><A HREF="curs_beep.3x.html">curs_beep(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_beep.3x.html">curs_beep(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>beep</STRONG>, <STRONG>flash</STRONG> - <STRONG>curses</STRONG> bell and screen flash routines
+ <STRONG>beep</STRONG>, <STRONG>flash</STRONG> - ring the (visual) bell of the terminal with <EM>curses</EM>
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -77,8 +77,8 @@
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These functions are described in the XSI Curses standard, Issue 4.
- Like SVr4, it specifies that they always return <STRONG>OK</STRONG>.
+ These functions are described in X/Open Curses, Issue 4. Like SVr4, it
+ specifies that they always return <STRONG>OK</STRONG>.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
@@ -86,7 +86,7 @@
- <STRONG><A HREF="curs_beep.3x.html">curs_beep(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_beep.3x.html">curs_beep(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
diff --git a/doc/html/man/curs_bkgd.3x.html b/doc/html/man/curs_bkgd.3x.html
index d47f7b5e7716..47d2e13b829f 100644
--- a/doc/html/man/curs_bkgd.3x.html
+++ b/doc/html/man/curs_bkgd.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2015,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,150 +27,169 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_bkgd.3x,v 1.31 2020/10/17 23:12:52 tom Exp @
+ * @Id: curs_bkgd.3x,v 1.61 2024/04/20 18:54:36 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_bkgd 3x</TITLE>
+<TITLE>curs_bkgd 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_bkgd 3x</H1>
+<H1 class="no-header">curs_bkgd 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG> <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
+<STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>bkgdset</STRONG>, <STRONG>wbkgdset</STRONG>, <STRONG>bkgd</STRONG>, <STRONG>wbkgd</STRONG>, <STRONG>getbkgd</STRONG> - <STRONG>curses</STRONG> window background
- manipulation routines
+ <STRONG>bkgdset</STRONG>, <STRONG>wbkgdset</STRONG>, <STRONG>bkgd</STRONG>, <STRONG>wbkgd</STRONG>, <STRONG>getbkgd</STRONG> - manipulate background of a
+ <EM>curses</EM> window of characters
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
<STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
- <STRONG>void</STRONG> <STRONG>bkgdset(chtype</STRONG> <EM>ch</EM><STRONG>);</STRONG>
- <STRONG>void</STRONG> <STRONG>wbkgdset(WINDOW</STRONG> <STRONG>*</STRONG><EM>win,</EM> <EM>chtype</EM> <EM>ch</EM><STRONG>);</STRONG>
-
<STRONG>int</STRONG> <STRONG>bkgd(chtype</STRONG> <EM>ch</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>wbkgd(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>chtype</STRONG> <EM>ch</EM><STRONG>);</STRONG>
+ <STRONG>void</STRONG> <STRONG>bkgdset(chtype</STRONG> <EM>ch</EM><STRONG>);</STRONG>
+ <STRONG>void</STRONG> <STRONG>wbkgdset(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>chtype</STRONG> <EM>ch</EM><STRONG>);</STRONG>
+
<STRONG>chtype</STRONG> <STRONG>getbkgd(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>);</STRONG>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
+ The <EM>background</EM> of a <EM>curses</EM> window (in the library's non-"wide"
+ configuration) is a <EM>chtype</EM> combining a set of attributes (see
+ <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>) with a character called the <EM>blank</EM> <EM>character.</EM>
+
+ The blank character is a spacing character that populates a window's
+ character cells when their contents are erased without replacement.
+ The background's attributes are combined with all non-blank characters
+ written to the window, as with the <STRONG><A HREF="curs_addch.3x.html">waddch(3x)</A></STRONG> and <STRONG><A HREF="curs_insch.3x.html">winsch(3x)</A></STRONG> families
+ of functions.
+
+ The blank character and attributes of the background combine with
+ characters written to the window as described below. The background
+ becomes a property of the character and moves with it through any
+ scrolling and insert/delete line/character operations.
+
+ To the extent possible on a given terminal, the attribute part of the
+ background is displayed as the graphic rendition of the character put
+ on the screen.
+
+
+</PRE><H3><a name="h3-bkgd_wbkgd">bkgd, wbkgd</a></H3><PRE>
+ <STRONG>bkgd</STRONG> and <STRONG>wbkgd</STRONG> set the background property of <STRONG>stdscr</STRONG> or the specified
+ window and then apply this setting to every character cell in that
+ window.
-</PRE><H3><a name="h3-bkgdset">bkgdset</a></H3><PRE>
- The <STRONG>bkgdset</STRONG> and <STRONG>wbkgdset</STRONG> routines manipulate the background of the
- named window. The window background is a <STRONG>chtype</STRONG> consisting of any
- combination of attributes (i.e., rendition) and a character. The
- attribute part of the background is combined (OR'ed) with all non-blank
- characters that are written into the window with <STRONG>waddch</STRONG>. Both the
- character and attribute parts of the background are combined with the
- blank characters. The background becomes a property of the character
- and moves with the character through any scrolling and insert/delete
- line/character operations.
-
- To the extent possible on a particular terminal, the attribute part of
- the background is displayed as the graphic rendition of the character
- put on the screen.
-
-
-</PRE><H3><a name="h3-bkgd">bkgd</a></H3><PRE>
- The <STRONG>bkgd</STRONG> and <STRONG>wbkgd</STRONG> functions set the background property of the current
- or specified window and then apply this setting to every character
- position in that window. According to X/Open Curses, it should do
- this:
-
- <STRONG>o</STRONG> The rendition of every character on the screen is changed to the
- new background rendition.
-
- <STRONG>o</STRONG> Wherever the former background character appears, it is changed to
- the new background character.
-
- Neither X/Open Curses nor the SVr4 manual pages give details about the
- way the rendition of characters on the screen is updated when <STRONG>bkgd</STRONG> or
- <STRONG>wbkgd</STRONG> is used to change the background character.
-
- This implementation, like SVr4 curses, does not store the background
- and window attribute contributions to each cell separately. It updates
- the rendition by comparing the character, non-color attributes and
- colors contained in the background. For each cell in the window,
- whether or not it is blank:
-
- <STRONG>o</STRONG> The library first compares the <EM>character</EM>, and if it matches the
- current character part of the background, it replaces that with the
+ <STRONG>o</STRONG> The rendition of every character in the window changes to the new
+ background rendition.
+
+ <STRONG>o</STRONG> Wherever the former background character appears, it changes to the
new background character.
- <STRONG>o</STRONG> The library then checks if the cell uses color, i.e., its color
- pair value is nonzero. If not, it simply replaces the attributes
- and color pair in the cell with those from the new background
+ <EM>ncurses</EM> updates the rendition of each character cell by comparing the
+ character, non-color attributes, and colors. The library applies to
+ following procedure to each cell in the window, whether or not it is
+ blank.
+
+ <STRONG>o</STRONG> <EM>ncurses</EM> first compares the cell's character to the previously
+ specified blank character; if they match, <EM>ncurses</EM> writes the new
+ blank character to the cell.
+
+ <STRONG>o</STRONG> <EM>ncurses</EM> then checks if the cell uses color, that is, its color pair
+ value is nonzero. If not, it simply replaces the attributes and
+ color pair in the cell with those from the new background
character.
- <STRONG>o</STRONG> If the cell uses color, and that matches the color in the current
- background, the library removes attributes which may have come from
- the current background and adds attributes from the new background.
- It finishes by setting the cell to use the color from the new
- background.
+ <STRONG>o</STRONG> If the cell uses color, and its background color matches that of
+ the current window background, <EM>ncurses</EM> removes attributes that may
+ have come from the current background and adds those from the new
+ background. It finishes by setting the cell's background to use
+ the new window background color.
- <STRONG>o</STRONG> If the cell uses color, and that does not match the color in the
- current background, the library updates only the non-color
- attributes, first removing those which may have come from the
- current background, and then adding attributes from the new
+ <STRONG>o</STRONG> If the cell uses color, and its background color does not match
+ that of the current window background, <EM>ncurses</EM> updates only the
+ non-color attributes, first removing those that may have come from
+ the current background, and then adding attributes from the new
background.
- If the background's character value is zero, a space is assumed.
+ <EM>ncurses</EM> treats a background character value of zero (0) as a blank
+ character.
If the terminal does not support color, or if color has not been
- started with <STRONG>start_color</STRONG>, the new background character's color
- attribute will be ignored.
+ initialized with <STRONG><A HREF="curs_color.3x.html">start_color(3x)</A></STRONG>, <EM>ncurses</EM> ignores the new background
+ character's color attribute.
+
+
+</PRE><H3><a name="h3-bkgdset_wbkgdset">bkgdset, wbkgdset</a></H3><PRE>
+ <STRONG>bkgdset</STRONG> and <STRONG>wbkgdset</STRONG> manipulate the background of the applicable
+ window, without updating the character cells as <STRONG>bkgd</STRONG> and <STRONG>wbkgd</STRONG> do; only
+ future writes reflect the updated background.
</PRE><H3><a name="h3-getbkgd">getbkgd</a></H3><PRE>
- The <STRONG>getbkgd</STRONG> function returns the given window's current background
- character/attribute pair.
+ <STRONG>getbkgd</STRONG> obtains the given window's background character and attribute
+ combination.
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- These functions are described in the XSI Curses standard, Issue 4. It
- specifies that <STRONG>bkgd</STRONG> and <STRONG>wbkgd</STRONG> return <STRONG>ERR</STRONG> on failure, but gives no
- failure conditions.
+ Functions returning an <EM>int</EM> return <STRONG>OK</STRONG> on success. <STRONG>bkgd</STRONG> returns <STRONG>ERR</STRONG> if
+ the library has not been initialized. <STRONG>wbkgd</STRONG> and <STRONG>getbkgd</STRONG> return <STRONG>ERR</STRONG> if
+ a <EM>WINDOW</EM> pointer argument is null.
- The routines <STRONG>bkgd</STRONG> and <STRONG>wbkgd</STRONG> return the integer <STRONG>OK</STRONG>, unless the library
- has not been initialized.
+ <STRONG>bkgdset</STRONG> and <STRONG>wbkgdset</STRONG> do not return a value.
- In contrast, the SVr4.0 manual says <STRONG>bkgd</STRONG> and <STRONG>wbkgd</STRONG> may return <STRONG>OK</STRONG> "or a
- non-negative integer if <STRONG>immedok</STRONG> is set", which refers to the return
- value from <STRONG>wrefresh</STRONG> (used to implement the immediate repainting). The
- SVr4 curses <STRONG>wrefresh</STRONG> returns the number of characters written to the
- screen during the refresh. This implementation does not do that.
+ <STRONG>getbkgd</STRONG> returns a window's background character and attribute
+ combination.
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- Note that <STRONG>bkgdset</STRONG> and <STRONG>bkgd</STRONG> may be macros.
+ Unusually, there is no <STRONG>wgetbkgd</STRONG> function; <STRONG>getbkgd</STRONG> behaves as one would
+ expect <STRONG>wgetbkgd</STRONG> to, accepting a <EM>WINDOW</EM> pointer argument.
+
+ <STRONG>bkgd</STRONG> and <STRONG>bkgdset</STRONG> may be implemented as macros.
- X/Open Curses mentions that the character part of the background must
- be a single-byte value. This implementation, like SVr4, checks to
- ensure that, and will reuse the old background character if the check
- fails.
+ X/Open Curses mentions that the character part of the background must
+ be a single-byte value. <EM>ncurses</EM>, like SVr4 <EM>curses</EM>, checks to ensure
+ that, and will reuse the old background character if the check fails.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These functions are described in the XSI Curses standard, Issue 4
- (X/Open Curses).
+ X/Open Curses, Issue 4 describes these functions. It specifies that
+ <STRONG>bkgd</STRONG>, <STRONG>wbkgd</STRONG>, and <STRONG>getbkgd</STRONG> return <STRONG>ERR</STRONG> on failure (in the case of the
+ last, this value is cast to <EM>chtype</EM>), but describes no failure
+ conditions.
+
+ The SVr4.0 manual says that <STRONG>bkgd</STRONG> and <STRONG>wbkgd</STRONG> may return <STRONG>OK</STRONG> "or a non-
+ negative integer if <STRONG>immedok</STRONG> is set", which refers to the return value
+ from <STRONG><A HREF="curs_refresh.3x.html">wrefresh(3x)</A></STRONG>, used to implement the immediate repainting. SVr4
+ <EM>curses</EM>'s <STRONG>wrefresh</STRONG> returns the number of characters written to the
+ screen during the refresh. <EM>ncurses</EM> does not do that.
+
+ Neither X/Open Curses nor the SVr4 manual pages detail how the
+ rendition of characters on the screen updates when <STRONG>bkgd</STRONG> or <STRONG>wbkgd</STRONG>
+ changes the background character. <EM>ncurses</EM>, like SVr4 <EM>curses</EM>, does not
+ (in its non-"wide" configuration) store the background and window
+ attribute contributions to each character cell separately.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>, <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>, <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
+ <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG> describes the corresponding functions in the "wide"
+ configuration of <EM>ncurses</EM>.
+
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>, <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
- <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -178,8 +197,8 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
<ul>
-<li><a href="#h3-bkgdset">bkgdset</a></li>
-<li><a href="#h3-bkgd">bkgd</a></li>
+<li><a href="#h3-bkgd_wbkgd">bkgd, wbkgd</a></li>
+<li><a href="#h3-bkgdset_wbkgdset">bkgdset, wbkgdset</a></li>
<li><a href="#h3-getbkgd">getbkgd</a></li>
</ul>
</li>
diff --git a/doc/html/man/curs_bkgrnd.3x.html b/doc/html/man/curs_bkgrnd.3x.html
index ec8a36e735cb..a11a68c57a7b 100644
--- a/doc/html/man/curs_bkgrnd.3x.html
+++ b/doc/html/man/curs_bkgrnd.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 2002-2015,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,37 +27,37 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_bkgrnd.3x,v 1.12 2020/10/17 23:13:15 tom Exp @
+ * @Id: curs_bkgrnd.3x,v 1.42 2024/04/20 18:54:36 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_bkgrnd 3x</TITLE>
+<TITLE>curs_bkgrnd 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_bkgrnd 3x</H1>
+<H1 class="no-header">curs_bkgrnd 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG> <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
+<STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>bkgrnd</STRONG>, <STRONG>wbkgrnd</STRONG>, <STRONG>bkgrndset</STRONG>, <STRONG>wbkgrndset</STRONG>, <STRONG>getbkgrnd</STRONG>, <STRONG>wgetbkgrnd</STRONG> - <STRONG>curses</STRONG>
- window complex background manipulation routines
+ <STRONG>bkgrnd</STRONG>, <STRONG>wbkgrnd</STRONG>, <STRONG>bkgrndset</STRONG>, <STRONG>wbkgrndset</STRONG>, <STRONG>getbkgrnd</STRONG>, <STRONG>wgetbkgrnd</STRONG> -
+ manipulate background of a <EM>curses</EM> window of wide characters
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
<STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
- <STRONG>int</STRONG> <STRONG>bkgrnd(</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>wbkgrnd(</STRONG> <STRONG>WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>bkgrnd(const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>wbkgrnd(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
- <STRONG>void</STRONG> <STRONG>bkgrndset(const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM> <STRONG>);</STRONG>
+ <STRONG>void</STRONG> <STRONG>bkgrndset(const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
<STRONG>void</STRONG> <STRONG>wbkgrndset(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>getbkgrnd(cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
@@ -65,71 +65,119 @@
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
+ The <EM>background</EM> of a <EM>curses</EM> window (in the library's "wide"
+ configuration) is a <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM> combining a set of attributes (see
+ <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>) with a complex character called the <EM>blank</EM> <EM>character.</EM>
-</PRE><H3><a name="h3-bkgrndset">bkgrndset</a></H3><PRE>
- The <STRONG>bkgrndset</STRONG> and <STRONG>wbkgrndset</STRONG> routines manipulate the background of the
- named window. The window background is a <STRONG>cchar_t</STRONG> consisting of any
- combination of attributes (i.e., rendition) and a complex character.
- The attribute part of the background is combined (OR'ed) with all non-
- blank characters that are written into the window with <STRONG>waddch</STRONG>. Both
- the character and attribute parts of the background are combined with
- the blank characters. The background becomes a property of the
- character and moves with the character through any scrolling and
- insert/delete line/character operations.
+ The blank character is a spacing character that populates a window's
+ character cells when their contents are erased without replacement.
+ The background's attributes are combined with all non-blank characters
+ written to the window, as with the <STRONG><A HREF="curs_add_wch.3x.html">wadd_wch(3x)</A></STRONG> and <STRONG><A HREF="curs_ins_wch.3x.html">wins_wch(3x)</A></STRONG>
+ families of functions.
- To the extent possible on a particular terminal, the attribute part of
- the background is displayed as the graphic rendition of the character
- put on the screen.
+ The blank character and attributes of the background combine with
+ characters written to the window as described below. The background
+ becomes a property of the character and moves with it through any
+ scrolling and insert/delete line/character operations.
+ To the extent possible on a given terminal, the attribute part of the
+ background is displayed as the graphic rendition of the character put
+ on the screen.
-</PRE><H3><a name="h3-bkgrnd">bkgrnd</a></H3><PRE>
- The <STRONG>bkgrnd</STRONG> and <STRONG>wbkgrnd</STRONG> functions set the background property of the
- current or specified window and then apply this setting to every
- character position in that window:
- <STRONG>o</STRONG> The rendition of every character on the screen is changed to the
- new background rendition.
+</PRE><H3><a name="h3-bkgrnd_wbkgrnd">bkgrnd, wbkgrnd</a></H3><PRE>
+ <STRONG>bkgrnd</STRONG> and <STRONG>wbkgrnd</STRONG> set the background property of <STRONG>stdscr</STRONG> or the
+ specified window and then apply this setting to every character cell in
+ that window.
- <STRONG>o</STRONG> Wherever the former background character appears, it is changed to
- the new background character.
+ <STRONG>o</STRONG> The rendition of every character in the window changes to the new
+ background rendition.
+ <STRONG>o</STRONG> Wherever the former background character appears, it changes to the
+ new background character.
-</PRE><H3><a name="h3-getbkgrnd">getbkgrnd</a></H3><PRE>
- The <STRONG>getbkgrnd</STRONG> function returns the given window's current background
- character/attribute pair via the <STRONG>wch</STRONG> pointer. If the given window
- pointer is null, the character is not updated (but no error returned).
+ <EM>ncurses</EM> updates the rendition of each character cell by comparing the
+ character, non-color attributes, and colors. The library applies to
+ following procedure to each cell in the window, whether or not it is
+ blank.
+ <STRONG>o</STRONG> <EM>ncurses</EM> first compares the cell's character to the previously
+ specified blank character; if they match, <EM>ncurses</EM> writes the new
+ blank character to the cell.
+
+ <STRONG>o</STRONG> <EM>ncurses</EM> then checks if the cell uses color, that is, its color pair
+ value is nonzero. If not, it simply replaces the attributes and
+ color pair in the cell with those from the new background
+ character.
+
+ <STRONG>o</STRONG> If the cell uses color, and its background color matches that of
+ the current window background, <EM>ncurses</EM> removes attributes that may
+ have come from the current background and adds those from the new
+ background. It finishes by setting the cell's background to use
+ the new window background color.
+
+ <STRONG>o</STRONG> If the cell uses color, and its background color does not match
+ that of the current window background, <EM>ncurses</EM> updates only the
+ non-color attributes, first removing those that may have come from
+ the current background, and then adding attributes from the new
+ background.
+
+ <EM>ncurses</EM> treats a background character value of zero (0) as a blank
+ character.
+
+ If the terminal does not support color, or if color has not been
+ initialized with <STRONG><A HREF="curs_color.3x.html">start_color(3x)</A></STRONG>, <EM>ncurses</EM> ignores the new background
+ character's color attribute.
+
+
+</PRE><H3><a name="h3-bkgrndset_wbkgrndset">bkgrndset, wbkgrndset</a></H3><PRE>
+ <STRONG>bkgrndset</STRONG> and <STRONG>wbkgrndset</STRONG> manipulate the background of the applicable
+ window, without updating the character cells as <STRONG>bkgrnd</STRONG> and <STRONG>wbkgrnd</STRONG> do;
+ only future writes reflect the updated background.
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- Note that <STRONG>bkgrnd</STRONG>, <STRONG>bkgrndset</STRONG>, and <STRONG>getbkgrnd</STRONG> may be macros.
- X/Open Curses does not provide details on how the rendition is changed.
- This implementation follows the approach used in SVr4 curses, which is
- explained in the manual page for <STRONG>wbkgd</STRONG>.
+</PRE><H3><a name="h3-getbkgrnd_wgetbkgrnd">getbkgrnd, wgetbkgrnd</a></H3><PRE>
+ The <STRONG>getbkgrnd</STRONG> and <STRONG>wgetbkgrnd</STRONG> functions obtain the background character
+ and attribute pair of <STRONG>stdscr</STRONG> or the specified window and store it via
+ the <EM>wch</EM> pointer.
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- The <STRONG>bkgrndset</STRONG> and <STRONG>wbkgrndset</STRONG> routines do not return a value.
+ <STRONG>bkgrndset</STRONG> and <STRONG>wbkgrndset</STRONG> do not return a value.
- Upon successful completion, the other functions return <STRONG>OK</STRONG>. Otherwise,
- they return <STRONG>ERR</STRONG>:
+ The other functions return <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> upon success. In
+ <EM>ncurses</EM>, failure occurs if
- <STRONG>o</STRONG> A null window pointer is treated as an error.
+ <STRONG>o</STRONG> a <EM>WINDOW</EM> pointer <EM>win</EM> is null, or
- <STRONG>o</STRONG> A null character pointer is treated as an error.
+ <STRONG>o</STRONG> a <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM> pointer <EM>wch</EM> is null.
+
+
+</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
+ <STRONG>bkgrnd</STRONG>, <STRONG>bkgrndset</STRONG>, and <STRONG>getbkgrnd</STRONG> may be implemented as macros.
+
+ Unlike their counterparts in the non-"wide" configuration of <EM>ncurses</EM>,
+ <STRONG>getbkgrnd</STRONG> and <STRONG>wgetbkgrnd</STRONG> supply the background character and attribute
+ in a modifiable <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM> parameter, not as the return value.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These functions are described in the XSI Curses standard, Issue 4
- (X/Open Curses).
+ X/Open Curses, Issue 4 describes these functions. It specifies no
+ error conditions for them.
+
+ X/Open Curses does not provide details of how the rendition is updated.
+ This implementation follows the approach used in SVr4 <EM>curses</EM>.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
+ <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG> describes the corresponding functions in the non-"wide"
+ configuration of <EM>ncurses</EM>.
+
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>, <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
- <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -137,13 +185,13 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
<ul>
-<li><a href="#h3-bkgrndset">bkgrndset</a></li>
-<li><a href="#h3-bkgrnd">bkgrnd</a></li>
-<li><a href="#h3-getbkgrnd">getbkgrnd</a></li>
+<li><a href="#h3-bkgrnd_wbkgrnd">bkgrnd, wbkgrnd</a></li>
+<li><a href="#h3-bkgrndset_wbkgrndset">bkgrndset, wbkgrndset</a></li>
+<li><a href="#h3-getbkgrnd_wgetbkgrnd">getbkgrnd, wgetbkgrnd</a></li>
</ul>
</li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
+<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
diff --git a/doc/html/man/curs_border.3x.html b/doc/html/man/curs_border.3x.html
index 20013f61ab52..d310dad798ca 100644
--- a/doc/html/man/curs_border.3x.html
+++ b/doc/html/man/curs_border.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2007,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,29 +27,29 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_border.3x,v 1.27 2020/10/18 00:33:06 tom Exp @
+ * @Id: curs_border.3x,v 1.49 2024/04/20 21:20:07 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_border 3x</TITLE>
+<TITLE>curs_border 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_border 3x</H1>
+<H1 class="no-header">curs_border 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG> <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
+<STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>border</STRONG>, <STRONG>wborder</STRONG>, <STRONG>box</STRONG>, <STRONG>hline</STRONG>, <STRONG>whline</STRONG>, <STRONG>vline</STRONG>, <STRONG>wvline</STRONG>, <STRONG>mvhline</STRONG>, <STRONG>mvwhline</STRONG>,
- <STRONG>mvvline</STRONG>, <STRONG>mvwvline</STRONG> - create <STRONG>curses</STRONG> borders, horizontal and vertical
- lines
+ <STRONG>border</STRONG>, <STRONG>wborder</STRONG>, <STRONG>box</STRONG>, <STRONG>hline</STRONG>, <STRONG>whline</STRONG>, <STRONG>vline</STRONG>, <STRONG>wvline</STRONG>, <STRONG>mvhline</STRONG>, <STRONG>mvwhline</STRONG>,
+ <STRONG>mvvline</STRONG>, <STRONG>mvwvline</STRONG> - draw borders and lines in a <EM>curses</EM> window of
+ characters
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -76,8 +76,8 @@
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
The <STRONG>border</STRONG>, <STRONG>wborder</STRONG> and <STRONG>box</STRONG> routines draw a box around the edges of a
- window. Other than the window, each argument is a character with at-
- tributes:
+ window. Other than the window, each argument is a character with
+ attributes:
<EM>ls</EM> - left side,
<EM>rs</EM> - right side,
@@ -88,8 +88,8 @@
<EM>bl</EM> - bottom left-hand corner, and
<EM>br</EM> - bottom right-hand corner.
- If any of these arguments is zero, then the corresponding default val-
- ues (defined in <STRONG>curses.h</STRONG>) are used instead:
+ If any of these arguments is zero, then the corresponding default
+ values (defined in <STRONG>curses.h</STRONG>) are used instead:
<STRONG>ACS_VLINE</STRONG>,
<STRONG>ACS_VLINE</STRONG>,
@@ -100,51 +100,48 @@
<STRONG>ACS_LLCORNER</STRONG>,
<STRONG>ACS_LRCORNER</STRONG>.
- <STRONG>box(</STRONG><EM>win</EM><STRONG>,</STRONG> <EM>verch</EM><STRONG>,</STRONG> <EM>horch</EM><STRONG>)</STRONG> is a shorthand for the following call: <STRONG>wbor-</STRONG>
- <STRONG>der(</STRONG><EM>win</EM><STRONG>,</STRONG> <EM>verch</EM><STRONG>,</STRONG> <EM>verch</EM><STRONG>,</STRONG> <EM>horch</EM><STRONG>,</STRONG> <EM>horch</EM><STRONG>,</STRONG> <STRONG>0,</STRONG> <STRONG>0,</STRONG> <STRONG>0,</STRONG> <STRONG>0)</STRONG>.
+ <STRONG>box(</STRONG><EM>win</EM><STRONG>,</STRONG> <EM>verch</EM><STRONG>,</STRONG> <EM>horch</EM><STRONG>)</STRONG> is a shorthand for the following call:
+ <STRONG>wborder(</STRONG><EM>win</EM><STRONG>,</STRONG> <EM>verch</EM><STRONG>,</STRONG> <EM>verch</EM><STRONG>,</STRONG> <EM>horch</EM><STRONG>,</STRONG> <EM>horch</EM><STRONG>,</STRONG> <STRONG>0,</STRONG> <STRONG>0,</STRONG> <STRONG>0,</STRONG> <STRONG>0)</STRONG>.
The <STRONG>hline</STRONG> and <STRONG>whline</STRONG> functions draw a horizontal (left to right) line
using <EM>ch</EM> starting at the current cursor position in the window. The
- current cursor position is not changed. The line is at most <EM>n</EM> charac-
- ters long, or as many as fit into the window.
+ current cursor position is not changed. The line is at most <EM>n</EM>
+ characters long, or as many as fit into the window.
- The <STRONG>vline</STRONG> and <STRONG>wvline</STRONG> functions draw a vertical (top to bottom) line us-
- ing <EM>ch</EM> starting at the current cursor position in the window. The cur-
- rent cursor position is not changed. The line is at most <EM>n</EM> characters
- long, or as many as fit into the window.
+ The <STRONG>vline</STRONG> and <STRONG>wvline</STRONG> functions draw a vertical (top to bottom) line
+ using <EM>ch</EM> starting at the current cursor position in the window. The
+ current cursor position is not changed. The line is at most <EM>n</EM>
+ characters long, or as many as fit into the window.
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
All routines return the integer <STRONG>OK</STRONG>. The SVr4.0 manual says "or a non-
negative integer if <STRONG>immedok</STRONG> is set", but this appears to be an error.
- X/Open does not define any error conditions. This implementation re-
- turns an error if the window pointer is null.
+ X/Open Curses does not specify any error conditions. This
+ implementation returns an error if the window pointer is null.
- Functions with a "mv" prefix first perform a cursor movement using
- <STRONG>wmove</STRONG>, and return an error if the position is outside the window, or if
- the window pointer is null.
+ Functions prefixed with "mv" first perform cursor movement and fail if
+ the position (<EM>y</EM>, <EM>x</EM>) is outside the window boundaries.
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The borders generated by these functions are <EM>inside</EM> borders (this is
+ The borders generated by these functions are <EM>inside</EM> borders (this is
also true of SVr4 curses, though the fact is not documented).
Note that <STRONG>border</STRONG> and <STRONG>box</STRONG> may be macros.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These functions are described in the XSI Curses standard, Issue 4. The
- standard specifies that they return <STRONG>ERR</STRONG> on failure, but specifies no
- error conditions.
+ These functions are described in X/Open Curses, Issue 4.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>.
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
- <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
diff --git a/doc/html/man/curs_border_set.3x.html b/doc/html/man/curs_border_set.3x.html
index 9c1f8459146b..e687aa68a87a 100644
--- a/doc/html/man/curs_border_set.3x.html
+++ b/doc/html/man/curs_border_set.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2023,2024 Thomas E. Dickey *
* Copyright 2002-2011,2012 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,73 +27,73 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_border_set.3x,v 1.13 2020/02/02 23:34:34 tom Exp @
+ * @Id: curs_border_set.3x,v 1.36 2024/04/20 21:20:07 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_border_set 3x</TITLE>
+<TITLE>curs_border_set 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_border_set 3x</H1>
+<H1 class="no-header">curs_border_set 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG> <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
+<STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>border_set</STRONG>, <STRONG>wborder_set</STRONG>, <STRONG>box_set</STRONG>, <STRONG>hline_set</STRONG>, <STRONG>whline_set</STRONG>, <STRONG>mvhline_set</STRONG>,
- <STRONG>mvwhline_set</STRONG>, <STRONG>vline_set</STRONG>, <STRONG>wvline_set</STRONG>, <STRONG>mvvline_set</STRONG>, <STRONG>mvwvline_set</STRONG> - create
- <STRONG>curses</STRONG> borders or lines using complex characters and renditions
+ <STRONG>border_set</STRONG>, <STRONG>wborder_set</STRONG>, <STRONG>box_set</STRONG>, <STRONG>hline_set</STRONG>, <STRONG>whline_set</STRONG>, <STRONG>mvhline_set</STRONG>,
+ <STRONG>mvwhline_set</STRONG>, <STRONG>vline_set</STRONG>, <STRONG>wvline_set</STRONG>, <STRONG>mvvline_set</STRONG>, <STRONG>mvwvline_set</STRONG> - draw
+ borders and lines in a <EM>curses</EM> window of wide characters
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
<STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
<STRONG>int</STRONG> <STRONG>border_set(</STRONG>
- <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>ls</EM>, <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>rs</EM>,
- <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>ts</EM>, <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>bs</EM>,
- <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>tl</EM>, <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>tr</EM>,
- <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>bl</EM>, <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>br</EM> <STRONG>);</STRONG>
+ <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>ls</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>rs</EM><STRONG>,</STRONG>
+ <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>ts</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>bs</EM><STRONG>,</STRONG>
+ <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>tl</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>tr</EM><STRONG>,</STRONG>
+ <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>bl</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>br</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>wborder_set(</STRONG>
- <STRONG>WINDOW</STRONG> <STRONG>*win</STRONG>,
- <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>ls</EM>, <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>rs</EM>,
- <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>ts</EM>, <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>bs</EM>,
- <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>tl</EM>, <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>tr</EM>,
- <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>bl</EM>, <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>br</EM><STRONG>);</STRONG>
+ <STRONG>WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG>
+ <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>ls</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>rs</EM><STRONG>,</STRONG>
+ <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>ts</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>bs</EM><STRONG>,</STRONG>
+ <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>tl</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>tr</EM><STRONG>,</STRONG>
+ <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>bl</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>br</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>box_set(</STRONG>
- <STRONG>WINDOW</STRONG> <STRONG>*win</STRONG>,
- <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>verch</EM>,
+ <STRONG>WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG>
+ <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>verch</EM><STRONG>,</STRONG>
<STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>horch</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>hline_set(</STRONG>
- <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM>, <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+ <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>whline_set(</STRONG>
- <STRONG>WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM>,
- <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM>, <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+ <STRONG>WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG>
+ <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>mvhline_set(</STRONG>
- <STRONG>int</STRONG> <EM>y</EM>, <STRONG>int</STRONG> <EM>x</EM>,
- <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM>, <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG>
+ <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>mvwhline_set(</STRONG>
- <STRONG>WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM>,
- <STRONG>int</STRONG> <EM>y</EM>, <STRONG>int</STRONG> <EM>x</EM>,
- <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM>, <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+ <STRONG>WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG>
+ <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG>
+ <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>vline_set(</STRONG>
- <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM>, <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+ <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>wvline_set(</STRONG>
- <STRONG>WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM>,
- <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM>, <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+ <STRONG>WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG>
+ <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>mvvline_set(</STRONG>
- <STRONG>int</STRONG> <EM>y</EM>, <STRONG>int</STRONG> <EM>x</EM>,
- <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM>, <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG>
+ <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>mvwvline_set(</STRONG>
- <STRONG>WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM>,
- <STRONG>int</STRONG> <EM>y</EM>, <STRONG>int</STRONG> <EM>x</EM>,
- <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM>, <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+ <STRONG>WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG>
+ <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG>
+ <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
@@ -101,8 +101,8 @@
of the current or specified window. These functions do not change the
cursor position, and do not wrap.
- Other than the window, each argument is a complex character with at-
- tributes:
+ Other than the window, each argument is a complex character with
+ attributes:
<EM>ls</EM> - left side,
<EM>rs</EM> - right side,
<EM>ts</EM> - top side,
@@ -112,8 +112,8 @@
<EM>bl</EM> - bottom left-hand corner, and
<EM>br</EM> - bottom right-hand corner.
- If any of these arguments is zero, then the corresponding default val-
- ues (defined in <STRONG>curses.h</STRONG>) are used instead:
+ If any of these arguments is zero, then the corresponding default
+ values (defined in <STRONG>curses.h</STRONG>) are used instead:
<STRONG>WACS_VLINE</STRONG>,
<STRONG>WACS_VLINE</STRONG>,
<STRONG>WACS_HLINE</STRONG>,
@@ -140,36 +140,40 @@
a line proceeding toward the last line of the window.
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- Note that <STRONG>border_set</STRONG>, <STRONG>hline_set</STRONG>, <STRONG>mvhline_set</STRONG>, <STRONG>mvvline_set</STRONG>, <STRONG>mvwh-</STRONG>
- <STRONG>line_set</STRONG>, <STRONG>mvwvline_set</STRONG>, and <STRONG>vline_set</STRONG> may be macros.
-
-
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
Upon successful completion, these functions return <STRONG>OK</STRONG>. Otherwise, they
return <STRONG>ERR</STRONG>.
Functions using a window parameter return an error if it is null.
- Functions with a "mv" prefix first perform a cursor movement using
- <STRONG>wmove</STRONG>, and return an error if the position is outside the window, or if
- the window pointer is null.
+ Functions prefixed with "mv" first perform cursor movement and fail if
+ the position (<EM>y</EM>, <EM>x</EM>) is outside the window boundaries.
+
+
+</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
+ Note that <STRONG>border_set</STRONG>, <STRONG>hline_set</STRONG>, <STRONG>mvhline_set</STRONG>, <STRONG>mvvline_set</STRONG>,
+ <STRONG>mvwhline_set</STRONG>, <STRONG>mvwvline_set</STRONG>, and <STRONG>vline_set</STRONG> may be macros.
+
+
+</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
+ These functions are described in X/Open Curses, Issue 4.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>, <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>, <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>, <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>, <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>, <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
- <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<li><a href="#h2-NAME">NAME</a></li>
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
+<li><a href="#h2-NOTES">NOTES</a></li>
+<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
diff --git a/doc/html/man/curs_clear.3x.html b/doc/html/man/curs_clear.3x.html
index bf7fa0a208c3..058689bfc827 100644
--- a/doc/html/man/curs_clear.3x.html
+++ b/doc/html/man/curs_clear.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2010,2016 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,28 +27,28 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_clear.3x,v 1.20 2020/10/24 09:19:37 tom Exp @
+ * @Id: curs_clear.3x,v 1.48 2024/04/20 21:20:07 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_clear 3x</TITLE>
+<TITLE>curs_clear 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_clear 3x</H1>
+<H1 class="no-header">curs_clear 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG> <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
+<STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>erase</STRONG>, <STRONG>werase</STRONG>, <STRONG>clear</STRONG>, <STRONG>wclear</STRONG>, <STRONG>clrtobot</STRONG>, <STRONG>wclrtobot</STRONG>, <STRONG>clrtoeol</STRONG>, <STRONG>wclrtoeol</STRONG>
- - clear all or part of a <STRONG>curses</STRONG> window
+ <STRONG>erase</STRONG>, <STRONG>werase</STRONG>, <STRONG>clear</STRONG>, <STRONG>wclear</STRONG>, <STRONG>clrtobot</STRONG>, <STRONG>wclrtobot</STRONG>, <STRONG>clrtoeol</STRONG>, <STRONG>wclrtoeol</STRONG>
+ - clear all or part of a <EM>curses</EM> window
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -68,24 +68,32 @@
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- The <STRONG>erase</STRONG> and <STRONG>werase</STRONG> routines copy blanks to every position in the win-
- dow, clearing the screen.
- The <STRONG>clear</STRONG> and <STRONG>wclear</STRONG> routines are like <STRONG>erase</STRONG> and <STRONG>werase</STRONG>, but they also
- call <STRONG>clearok</STRONG>, so that the screen is cleared completely on the next call
- to <STRONG>wrefresh</STRONG> for that window and repainted from scratch.
+</PRE><H3><a name="h3-erase_werase">erase, werase</a></H3><PRE>
+ The <STRONG>erase</STRONG> and <STRONG>werase</STRONG> routines copy blanks to every position in the
+ window, clearing the screen.
+
+ Blanks created by erasure have the current background rendition (as set
+ by <STRONG><A HREF="curs_bkgd.3x.html">wbkgdset(3x)</A></STRONG>) merged into them.
+
+
+</PRE><H3><a name="h3-clear_wclear">clear, wclear</a></H3><PRE>
+ The <STRONG>clear</STRONG> and <STRONG>wclear</STRONG> routines are like <STRONG>erase</STRONG> and <STRONG>werase</STRONG>, but they also
+ call <STRONG><A HREF="curs_outopts.3x.html">clearok(3x)</A></STRONG>, so that the screen is cleared completely on the next
+ call to <STRONG>wrefresh</STRONG> for that window and repainted from scratch.
+
+</PRE><H3><a name="h3-clrtobot_wclrtobot">clrtobot, wclrtobot</a></H3><PRE>
The <STRONG>clrtobot</STRONG> and <STRONG>wclrtobot</STRONG> routines erase from the cursor to the end of
- screen. That is, they erase all lines below the cursor in the window.
- Also, the current line to the right of the cursor, inclusive, is
+ screen. That is, they erase all lines below the cursor in the window.
+ Also, the current line to the right of the cursor, inclusive, is
erased.
+
+</PRE><H3><a name="h3-clrtoeol_wclrtoeol">clrtoeol, wclrtoeol</a></H3><PRE>
The <STRONG>clrtoeol</STRONG> and <STRONG>wclrtoeol</STRONG> routines erase the current line to the right
of the cursor, inclusive, to the end of the current line.
- Blanks created by erasure have the current background rendition (as set
- by <STRONG>wbkgdset</STRONG>) merged into them.
-
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
All routines return the integer <STRONG>OK</STRONG> on success and <STRONG>ERR</STRONG> on failure.
@@ -104,23 +112,21 @@
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These functions are described in the XSI Curses standard, Issue 4. The
- standard specifies that they return <STRONG>ERR</STRONG> on failure, but specifies no
- error conditions.
+ These functions are described in X/Open Curses, Issue 4.
- The SVr4.0 manual says that these functions could return "a non-nega-
- tive integer if <STRONG>immedok</STRONG> is set", referring to the return-value of <STRONG>wre-</STRONG>
- <STRONG>fresh</STRONG>. In that implementation, <STRONG>wrefresh</STRONG> would return a count of the
+ The SVr4.0 manual says that these functions could return "or a non-
+ negative integer if <STRONG>immedok</STRONG> is set", referring to the return-value of
+ <STRONG>wrefresh</STRONG>. In that implementation, <STRONG>wrefresh</STRONG> would return a count of the
number of characters written to the terminal.
Some historic curses implementations had, as an undocumented feature,
- the ability to do the equivalent of <STRONG>clearok(...,</STRONG> <STRONG>1)</STRONG> by saying <STRONG>touch-</STRONG>
- <STRONG>win(stdscr)</STRONG> or <STRONG>clear(stdscr)</STRONG>. This will not work under ncurses.
+ the ability to do the equivalent of <STRONG>clearok(...,</STRONG> <STRONG>1)</STRONG> by saying
+ <STRONG>touchwin(stdscr)</STRONG> or <STRONG>clear(stdscr)</STRONG>. This will not work under <EM>ncurses</EM>.
- This implementation, and others such as Solaris, sets the current posi-
- tion to 0,0 after erasing via <STRONG>werase</STRONG> and <STRONG>wclear</STRONG>. That fact is not doc-
- umented in other implementations, and may not be true of implementa-
- tions which were not derived from SVr4 source.
+ This implementation, and others such as Solaris, sets the current
+ position to 0,0 after erasing via <STRONG>werase</STRONG> and <STRONG>wclear</STRONG>. That fact is not
+ documented in other implementations, and may not be true of
+ implementations which were not derived from SVr4 source.
Not obvious from the description, most implementations clear the screen
after <STRONG>wclear</STRONG> even for a subwindow or derived window. If you do not
@@ -132,13 +138,20 @@
- <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<li><a href="#h2-NAME">NAME</a></li>
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
-<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
+<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
+<ul>
+<li><a href="#h3-erase_werase">erase, werase</a></li>
+<li><a href="#h3-clear_wclear">clear, wclear</a></li>
+<li><a href="#h3-clrtobot_wclrtobot">clrtobot, wclrtobot</a></li>
+<li><a href="#h3-clrtoeol_wclrtoeol">clrtoeol, wclrtoeol</a></li>
+</ul>
+</li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
diff --git a/doc/html/man/curs_color.3x.html b/doc/html/man/curs_color.3x.html
index c672b72a90ef..d84a5732540a 100644
--- a/doc/html/man/curs_color.3x.html
+++ b/doc/html/man/curs_color.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,35 +27,41 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_color.3x,v 1.63 2020/10/24 09:35:23 tom Exp @
+ * @Id: curs_color.3x,v 1.100 2024/04/20 21:24:19 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_color 3x</TITLE>
+<TITLE>curs_color 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_color 3x</H1>
+<H1 class="no-header">curs_color 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG> <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
+<STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>start_color</STRONG>, <STRONG>has_colors</STRONG>, <STRONG>can_change_color</STRONG>, <STRONG>init_pair</STRONG>, <STRONG>init_color</STRONG>,
- <STRONG>init_extended_pair</STRONG>, <STRONG>init_extended_color</STRONG>, <STRONG>color_content</STRONG>, <STRONG>pair_content</STRONG>,
- <STRONG>extended_color_content</STRONG>, <STRONG>extended_pair_content</STRONG>, <STRONG>reset_color_pairs</STRONG>,
- <STRONG>COLOR_PAIR</STRONG>, <STRONG>PAIR_NUMBER</STRONG> - <STRONG>curses</STRONG> color manipulation routines
+ <STRONG>start_color</STRONG>, <STRONG>has_colors</STRONG>, <STRONG>can_change_color</STRONG>, <STRONG>init_pair</STRONG>, <STRONG>init_color</STRONG>,
+ <STRONG>init_extended_pair</STRONG>, <STRONG>init_extended_color</STRONG>, <STRONG>color_content</STRONG>, <STRONG>pair_content</STRONG>,
+ <STRONG>extended_color_content</STRONG>, <STRONG>extended_pair_content</STRONG>, <STRONG>reset_color_pairs</STRONG>,
+ <STRONG>COLOR_PAIR</STRONG>, <STRONG>PAIR_NUMBER</STRONG>, <STRONG>COLORS</STRONG>, <STRONG>COLOR_PAIRS</STRONG>, <STRONG>COLOR_BLACK</STRONG>, <STRONG>COLOR_RED</STRONG>,
+ <STRONG>COLOR_GREEN</STRONG>, <STRONG>COLOR_YELLOW</STRONG>, <STRONG>COLOR_BLUE</STRONG>, <STRONG>COLOR_MAGENTA</STRONG>, <STRONG>COLOR_CYAN</STRONG>,
+ <STRONG>COLOR_WHITE</STRONG> - manipulate terminal colors with <EM>curses</EM>
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
<STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
+ <EM>/*</EM> <EM>variables</EM> <EM>*/</EM>
+ <STRONG>int</STRONG> <STRONG>COLOR_PAIRS;</STRONG>
+ <STRONG>int</STRONG> <STRONG>COLORS;</STRONG>
+
<STRONG>int</STRONG> <STRONG>start_color(void);</STRONG>
<STRONG>bool</STRONG> <STRONG>has_colors(void);</STRONG>
@@ -63,89 +69,88 @@
<STRONG>int</STRONG> <STRONG>init_pair(short</STRONG> <EM>pair</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>f</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>b</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>init_color(short</STRONG> <EM>color</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>r</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>g</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>b</EM><STRONG>);</STRONG>
- /* extensions */
+ <EM>/*</EM> <EM>extensions</EM> <EM>*/</EM>
<STRONG>int</STRONG> <STRONG>init_extended_pair(int</STRONG> <EM>pair</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>f</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>b</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>init_extended_color(int</STRONG> <EM>color</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>r</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>g</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>b</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>color_content(short</STRONG> <EM>color</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <STRONG>*</STRONG><EM>r</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <STRONG>*</STRONG><EM>g</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <STRONG>*</STRONG><EM>b</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>pair_content(short</STRONG> <EM>pair</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <STRONG>*</STRONG><EM>f</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <STRONG>*</STRONG><EM>b</EM><STRONG>);</STRONG>
- /* extensions */
+ <EM>/*</EM> <EM>extensions</EM> <EM>*/</EM>
<STRONG>int</STRONG> <STRONG>extended_color_content(int</STRONG> <EM>color</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <STRONG>*</STRONG><EM>r</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <STRONG>*</STRONG><EM>g</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <STRONG>*</STRONG><EM>b</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>extended_pair_content(int</STRONG> <EM>pair</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <STRONG>*</STRONG><EM>f</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <STRONG>*</STRONG><EM>b</EM><STRONG>);</STRONG>
- /* extensions */
+ <EM>/*</EM> <EM>extension</EM> <EM>*/</EM>
<STRONG>void</STRONG> <STRONG>reset_color_pairs(void);</STRONG>
<STRONG>int</STRONG> <STRONG>COLOR_PAIR(int</STRONG> <EM>n</EM><STRONG>);</STRONG>
- <STRONG>PAIR_NUMBER(</STRONG><EM>attrs</EM><STRONG>);</STRONG>
+ <STRONG>PAIR_NUMBER(int</STRONG> <EM>attr</EM><STRONG>);</STRONG>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
</PRE><H3><a name="h3-Overview">Overview</a></H3><PRE>
- <STRONG>curses</STRONG> supports color attributes on terminals with that capability. To
- use these routines <STRONG>start_color</STRONG> must be called, usually right after
- <STRONG>initscr</STRONG>. Colors are always used in pairs (referred to as color-pairs).
- A color-pair consists of a foreground color (for characters) and a
- background color (for the blank field on which the characters are dis-
- played). A programmer initializes a color-pair with the routine
- <STRONG>init_pair</STRONG>. After it has been initialized, <STRONG>COLOR_PAIR</STRONG>(<EM>n</EM>) can be used to
- convert the pair to a video attribute.
+ <EM>curses</EM> supports color attributes on terminals with that capability.
+ Call <STRONG>start_color</STRONG> (typically right after <STRONG><A HREF="curs_initscr.3x.html">initscr(3x)</A></STRONG>) to enable this
+ feature. Colors are always used in pairs. A <EM>color</EM> <EM>pair</EM> couples a
+ foreground color for characters with a background color for the blank
+ field on which characters are rendered. <STRONG>init_pair</STRONG> initializes a color
+ pair. The macro <STRONG>COLOR_PAIR</STRONG>(<EM>n</EM>) can then convert the pair to a video
+ attribute.
- If a terminal is capable of redefining colors, the programmer can use
- the routine <STRONG>init_color</STRONG> to change the definition of a color. The rou-
- tines <STRONG>has_colors</STRONG> and <STRONG>can_change_color</STRONG> return <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>, depending
- on whether the terminal has color capabilities and whether the program-
- mer can change the colors. The routine <STRONG>color_content</STRONG> allows a program-
- mer to extract the amounts of red, green, and blue components in an
- initialized color. The routine <STRONG>pair_content</STRONG> allows a programmer to
- find out how a given color-pair is currently defined.
+ If a terminal has the relevant capability, <STRONG>init_color</STRONG> permits
+ (re)definition of a color. <STRONG>has_colors</STRONG> and <STRONG>can_change_color</STRONG> return <STRONG>TRUE</STRONG>
+ or <STRONG>FALSE</STRONG>, depending on whether the terminal has color capability and
+ whether the programmer can change the colors. <STRONG>color_content</STRONG> permits
+ extraction of the red, green, and blue components of an initialized
+ color. <STRONG>pair_content</STRONG> permits discovery of a color pair's current
+ definition.
-</PRE><H3><a name="h3-Color-Rendering">Color Rendering</a></H3><PRE>
- The <STRONG>curses</STRONG> library combines these inputs to produce the actual fore-
- ground and background colors shown on the screen:
+</PRE><H3><a name="h3-Rendering">Rendering</a></H3><PRE>
+ <EM>curses</EM> combines the following data to render a character cell. Any of
+ them can include color information.
- <STRONG>o</STRONG> per-character video attributes (e.g., via <STRONG>waddch</STRONG>),
+ <STRONG>o</STRONG> <EM>curses</EM> character attributes, as from <STRONG><A HREF="curs_addch.3x.html">waddch(3x)</A></STRONG> or <STRONG><A HREF="curs_add_wch.3x.html">wadd_wch(3x)</A></STRONG>
- <STRONG>o</STRONG> the window attribute (e.g., by <STRONG>wattrset</STRONG>), and
+ <STRONG>o</STRONG> window attributes, as from <STRONG><A HREF="curs_attr.3x.html">wattrset(3x)</A></STRONG> or <STRONG><A HREF="curs_attr.3x.html">wattr_set(3x)</A></STRONG>
- <STRONG>o</STRONG> the background character (e.g., <STRONG>wbkgdset</STRONG>).
+ <STRONG>o</STRONG> window background character attributes, as from <STRONG><A HREF="curs_bkgd.3x.html">wbkgdset(3x)</A></STRONG> or
+ <STRONG><A HREF="curs_bkgrnd.3x.html">wbkgrndset(3x)</A></STRONG>
- Per-character and window attributes are usually set by a parameter con-
- taining video attributes including a color pair value. Some functions
- such as <STRONG>wattr_set</STRONG> use a separate parameter which is the color pair num-
- ber.
+ Per-character and window attributes are usually set through a function
+ parameter containing attributes including a color pair value. Some
+ functions, such as <STRONG>wattr_set</STRONG>, use a separate color pair number
+ parameter.
- The background character is a special case: it includes a character
- value, just as if it were passed to <STRONG>waddch</STRONG>.
+ The background character is a special case: it includes a character
+ code, just as if it were passed to <STRONG>waddch</STRONG>.
- The <STRONG>curses</STRONG> library does the actual work of combining these color pairs
+ The <EM>curses</EM> library does the actual work of combining these color pairs
in an internal function called from <STRONG>waddch</STRONG>:
<STRONG>o</STRONG> If the parameter passed to <STRONG>waddch</STRONG> is <EM>blank</EM>, and it uses the special
color pair 0,
- <STRONG>o</STRONG> <STRONG>curses</STRONG> next checks the window attribute.
+ <STRONG>o</STRONG> <EM>curses</EM> next checks the window attribute.
- <STRONG>o</STRONG> If the window attribute does not use color pair 0, <STRONG>curses</STRONG> uses
+ <STRONG>o</STRONG> If the window attribute does not use color pair 0, <EM>curses</EM> uses
the color pair from the window attribute.
- <STRONG>o</STRONG> Otherwise, <STRONG>curses</STRONG> uses the background character.
+ <STRONG>o</STRONG> Otherwise, <EM>curses</EM> uses the background character.
- <STRONG>o</STRONG> If the parameter passed to <STRONG>waddch</STRONG> is <EM>not</EM> <EM>blank</EM>, or it does not use
- the special color pair 0, <STRONG>curses</STRONG> prefers the color pair from the
- parameter, if it is nonzero. Otherwise, it tries the window attri-
- bute next, and finally the background character.
+ <STRONG>o</STRONG> If the parameter passed to <STRONG>waddch</STRONG> is <EM>not</EM> <EM>blank</EM>, or it does not use
+ the special color pair 0, <EM>curses</EM> prefers the color pair from the
+ parameter, if it is nonzero. Otherwise, it tries the window
+ attribute next, and finally the background character.
- Some <STRONG>curses</STRONG> functions such as <STRONG>wprintw</STRONG> call <STRONG>waddch</STRONG>. Those do not com-
- bine its parameter with a color pair. Consequently those calls use on-
- ly the window attribute or the background character.
+ Some <EM>curses</EM> functions such as <STRONG>wprintw</STRONG> call <STRONG>waddch</STRONG>. Those do not
+ combine its parameter with a color pair. Consequently those calls use
+ only the window attribute or the background character.
</PRE><H2><a name="h2-CONSTANTS">CONSTANTS</a></H2><PRE>
In <STRONG>&lt;curses.h&gt;</STRONG> the following macros are defined. These are the standard
- colors (ISO-6429). <STRONG>curses</STRONG> also assumes that <STRONG>COLOR_BLACK</STRONG> is the default
+ colors (ISO-6429). <EM>curses</EM> also assumes that <STRONG>COLOR_BLACK</STRONG> is the default
background color for all terminals.
<STRONG>COLOR_BLACK</STRONG>
@@ -157,32 +162,39 @@
<STRONG>COLOR_CYAN</STRONG>
<STRONG>COLOR_WHITE</STRONG>
- Some terminals support more than the eight (8) "ANSI" colors. There
+ Some terminals support more than the eight (8) "ANSI" colors. There
are no standard names for those additional colors.
</PRE><H2><a name="h2-VARIABLES">VARIABLES</a></H2><PRE>
</PRE><H3><a name="h3-COLORS">COLORS</a></H3><PRE>
- is initialized by <STRONG>start_color</STRONG> to the maximum number of colors the ter-
- minal can support.
+ is initialized by <STRONG>start_color</STRONG> to the maximum number of colors the
+ terminal can support.
</PRE><H3><a name="h3-COLOR_PAIRS">COLOR_PAIRS</a></H3><PRE>
- is initialized by <STRONG>start_color</STRONG> to the maximum number of color pairs the
- terminal can support.
+ is initialized by <STRONG>start_color</STRONG> to the maximum number of color pairs the
+ terminal can support. Often, its value is the product <STRONG>COLORS</STRONG> x <STRONG>COLORS</STRONG>,
+ but this is not always true.
+
+ <STRONG>o</STRONG> A few terminals use the HLS color space (see <STRONG>start_color</STRONG> below),
+ ignoring this rule; and
+
+ <STRONG>o</STRONG> terminals supporting a large number of colors are limited to the
+ number of color pairs that a <EM>signed</EM> <EM>short</EM> value can represent.
</PRE><H2><a name="h2-FUNCTIONS">FUNCTIONS</a></H2><PRE>
</PRE><H3><a name="h3-start_color">start_color</a></H3><PRE>
The <STRONG>start_color</STRONG> routine requires no arguments. It must be called if
- the programmer wants to use colors, and before any other color manipu-
- lation routine is called. It is good practice to call this routine
- right after <STRONG>initscr</STRONG>. <STRONG>start_color</STRONG> does this:
+ the programmer wants to use colors, and before any other color
+ manipulation routine is called. It is good practice to call this
+ routine right after <STRONG>initscr</STRONG>. <STRONG>start_color</STRONG> does this:
- <STRONG>o</STRONG> It initializes two global variables, <STRONG>COLORS</STRONG> and <STRONG>COLOR_PAIRS</STRONG> (re-
- spectively defining the maximum number of colors and color-pairs
+ <STRONG>o</STRONG> It initializes two global variables, <STRONG>COLORS</STRONG> and <STRONG>COLOR_PAIRS</STRONG>
+ (respectively defining the maximum number of colors and color pairs
the terminal can support).
<STRONG>o</STRONG> It initializes the special color pair <STRONG>0</STRONG> to the default foreground
@@ -209,77 +221,77 @@
initial eight colors.
<STRONG>start_color</STRONG> does not attempt to set the terminal's color palette to
- match its built-in table. An application may use <STRONG>init_color</STRONG> to al-
- ter the internal table along with the terminal's color.
+ match its built-in table. An application may use <STRONG>init_color</STRONG> to
+ alter the internal table along with the terminal's color.
These limits apply to color values and color pairs. Values outside
- these limits are not legal, and may result in a runtime error:
+ these limits are not valid, and may result in a runtime error:
- <STRONG>o</STRONG> <STRONG>COLORS</STRONG> corresponds to the terminal database's <STRONG>max_colors</STRONG> capabili-
- ty, (see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>).
+ <STRONG>o</STRONG> <STRONG>COLORS</STRONG> corresponds to the terminal database's <STRONG>max_colors</STRONG>
+ capability, (see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>).
- <STRONG>o</STRONG> color values are expected to be in the range <STRONG>0</STRONG> to <STRONG>COLORS-1</STRONG>, inclu-
- sive (including <STRONG>0</STRONG> and <STRONG>COLORS-1</STRONG>).
+ <STRONG>o</STRONG> color values are expected to be in the range <STRONG>0</STRONG> to <STRONG>COLORS-1</STRONG>,
+ inclusive (including <STRONG>0</STRONG> and <STRONG>COLORS-1</STRONG>).
<STRONG>o</STRONG> a special color value <STRONG>-1</STRONG> is used in certain extended functions to
denote the <EM>default</EM> <EM>color</EM> (see <STRONG><A HREF="default_colors.3x.html">use_default_colors(3x)</A></STRONG>).
- <STRONG>o</STRONG> <STRONG>COLOR_PAIRS</STRONG> corresponds to the terminal database's <STRONG>max_pairs</STRONG> capa-
- bility, (see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>).
+ <STRONG>o</STRONG> <STRONG>COLOR_PAIRS</STRONG> corresponds to the terminal database's <STRONG>max_pairs</STRONG>
+ capability, (see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>).
- <STRONG>o</STRONG> legal color pair values are in the range <STRONG>1</STRONG> to <STRONG>COLOR_PAIRS-1</STRONG>, inclu-
- sive.
+ <STRONG>o</STRONG> valid color pair values are in the range <STRONG>1</STRONG> to <STRONG>COLOR_PAIRS-1</STRONG>,
+ inclusive.
<STRONG>o</STRONG> color pair <STRONG>0</STRONG> is special; it denotes "no color".
- Color pair <STRONG>0</STRONG> is assumed to be white on black, but is actually what-
- ever the terminal implements before color is initialized. It can-
- not be modified by the application.
+ Color pair <STRONG>0</STRONG> is assumed to be white on black, but is actually
+ whatever the terminal implements before color is initialized. It
+ cannot be modified by the application.
</PRE><H3><a name="h3-has_colors">has_colors</a></H3><PRE>
The <STRONG>has_colors</STRONG> routine requires no arguments. It returns <STRONG>TRUE</STRONG> if the
- terminal can manipulate colors; otherwise, it returns <STRONG>FALSE</STRONG>. This rou-
- tine facilitates writing terminal-independent programs. For example, a
- programmer can use it to decide whether to use color or some other
- video attribute.
+ terminal can manipulate colors; otherwise, it returns <STRONG>FALSE</STRONG>. This
+ routine facilitates writing terminal-independent programs. For
+ example, a programmer can use it to decide whether to use color or some
+ other video attribute.
</PRE><H3><a name="h3-can_change_color">can_change_color</a></H3><PRE>
The <STRONG>can_change_color</STRONG> routine requires no arguments. It returns <STRONG>TRUE</STRONG> if
the terminal supports colors and can change their definitions; other,
- it returns <STRONG>FALSE</STRONG>. This routine facilitates writing terminal-indepen-
- dent programs.
+ it returns <STRONG>FALSE</STRONG>. This routine facilitates writing terminal-
+ independent programs.
</PRE><H3><a name="h3-init_pair">init_pair</a></H3><PRE>
- The <STRONG>init_pair</STRONG> routine changes the definition of a color-pair. It takes
- three arguments: the number of the color-pair to be changed, the fore-
- ground color number, and the background color number. For portable ap-
- plications:
+ The <STRONG>init_pair</STRONG> routine changes the definition of a color pair. It takes
+ three arguments: the number of the color pair to be changed, the
+ foreground color number, and the background color number. For portable
+ applications:
- <STRONG>o</STRONG> The first argument must be a legal color pair value. If default
- colors are used (see <STRONG><A HREF="default_colors.3x.html">use_default_colors(3x)</A></STRONG>) the upper limit is ad-
- justed to allow for extra pairs which use a default color in fore-
- ground and/or background.
+ <STRONG>o</STRONG> The first argument must be a valid color pair value. If default
+ colors are used (see <STRONG><A HREF="default_colors.3x.html">use_default_colors(3x)</A></STRONG>) the upper limit is
+ adjusted to allow for extra pairs which use a default color in
+ foreground and/or background.
- <STRONG>o</STRONG> The second and third arguments must be legal color values.
+ <STRONG>o</STRONG> The second and third arguments must be valid color values.
- If the color-pair was previously initialized, the screen is refreshed
- and all occurrences of that color-pair are changed to the new defini-
- tion.
+ If the color pair was previously initialized, the screen is refreshed
+ and all occurrences of that color pair are changed to the new
+ definition.
- As an extension, ncurses allows you to set color pair <STRONG>0</STRONG> via the <STRONG>as-</STRONG>
- <STRONG><A HREF="assume_default_colors.3x.html">sume_default_colors(3x)</A></STRONG> routine, or to specify the use of default col-
- ors (color number <STRONG>-1</STRONG>) if you first invoke the <STRONG><A HREF="default_colors.3x.html">use_default_colors(3x)</A></STRONG>
+ As an extension, <EM>ncurses</EM> allows you to set color pair <STRONG>0</STRONG> via the
+ <STRONG><A HREF="default_colors.3x.html">assume_default_colors(3x)</A></STRONG> routine, or to specify the use of default
+ colors (color number <STRONG>-1</STRONG>) if you first invoke the <STRONG><A HREF="default_colors.3x.html">use_default_colors(3x)</A></STRONG>
routine.
</PRE><H3><a name="h3-init_extended_pair">init_extended_pair</a></H3><PRE>
Because <STRONG>init_pair</STRONG> uses signed <STRONG>short</STRONG>s for its parameters, that limits
- color-pairs and color-values to 32767 on modern hardware. The exten-
- sion <STRONG>init_extended_pair</STRONG> uses <STRONG>int</STRONG>s for the color-pair and color-value,
- allowing a larger number of colors to be supported.
+ color pairs and color-values to 32767 on modern hardware. The
+ extension <STRONG>init_extended_pair</STRONG> uses <STRONG>int</STRONG>s for the color pair and color-
+ value, allowing a larger number of colors to be supported.
</PRE><H3><a name="h3-init_color">init_color</a></H3><PRE>
@@ -287,7 +299,7 @@
four arguments: the number of the color to be changed followed by three
RGB values (for the amounts of red, green, and blue components).
- <STRONG>o</STRONG> The first argument must be a legal color value; default colors are
+ <STRONG>o</STRONG> The first argument must be a valid color value; default colors are
not allowed here. (See the section <STRONG>Colors</STRONG> for the default color
index.)
@@ -300,20 +312,20 @@
</PRE><H3><a name="h3-init_extended_color">init_extended_color</a></H3><PRE>
Because <STRONG>init_color</STRONG> uses signed <STRONG>short</STRONG>s for its parameters, that limits
- color-values and their red, green, and blue components to 32767 on mod-
- ern hardware. The extension <STRONG>init_extended_color</STRONG> uses <STRONG>int</STRONG>s for the col-
- or value and for setting the red, green, and blue components, allowing
- a larger number of colors to be supported.
+ color-values and their red, green, and blue components to 32767 on
+ modern hardware. The extension <STRONG>init_extended_color</STRONG> uses <STRONG>int</STRONG>s for the
+ color value and for setting the red, green, and blue components,
+ allowing a larger number of colors to be supported.
</PRE><H3><a name="h3-color_content">color_content</a></H3><PRE>
The <STRONG>color_content</STRONG> routine gives programmers a way to find the intensity
of the red, green, and blue (RGB) components in a color. It requires
four arguments: the color number, and three addresses of <STRONG>short</STRONG>s for
- storing the information about the amounts of red, green, and blue com-
- ponents in the given color.
+ storing the information about the amounts of red, green, and blue
+ components in the given color.
- <STRONG>o</STRONG> The first argument must be a legal color value, i.e., <STRONG>0</STRONG> through
+ <STRONG>o</STRONG> The first argument must be a valid color value, i.e., <STRONG>0</STRONG> through
<STRONG>COLORS-1</STRONG>, inclusive.
<STRONG>o</STRONG> The values that are stored at the addresses pointed to by the last
@@ -322,68 +334,70 @@
</PRE><H3><a name="h3-extended_color_content">extended_color_content</a></H3><PRE>
- Because <STRONG>color_content</STRONG> uses signed <STRONG>short</STRONG>s for its parameters, that lim-
- its color-values and their red, green, and blue components to 32767 on
- modern hardware. The extension <STRONG>extended_color_content</STRONG> uses <STRONG>int</STRONG>s for
+ Because <STRONG>color_content</STRONG> uses signed <STRONG>short</STRONG>s for its parameters, that
+ limits color-values and their red, green, and blue components to 32767
+ on modern hardware. The extension <STRONG>extended_color_content</STRONG> uses <STRONG>int</STRONG>s for
the color value and for returning the red, green, and blue components,
allowing a larger number of colors to be supported.
</PRE><H3><a name="h3-pair_content">pair_content</a></H3><PRE>
The <STRONG>pair_content</STRONG> routine allows programmers to find out what colors a
- given color-pair consists of. It requires three arguments: the color-
+ given color pair consists of. It requires three arguments: the color
pair number, and two addresses of <STRONG>short</STRONG>s for storing the foreground and
the background color numbers.
- <STRONG>o</STRONG> The first argument must be a legal color value, i.e., in the range
+ <STRONG>o</STRONG> The first argument must be a valid color value, i.e., in the range
<STRONG>1</STRONG> through <STRONG>COLOR_PAIRS-1</STRONG>, inclusive.
- <STRONG>o</STRONG> The values that are stored at the addresses pointed to by the sec-
- ond and third arguments are in the range <STRONG>0</STRONG> through <STRONG>COLORS</STRONG>, inclu-
- sive.
+ <STRONG>o</STRONG> The values that are stored at the addresses pointed to by the
+ second and third arguments are in the range <STRONG>0</STRONG> through <STRONG>COLORS</STRONG>,
+ inclusive.
</PRE><H3><a name="h3-extended_pair_content">extended_pair_content</a></H3><PRE>
Because <STRONG>pair_content</STRONG> uses signed <STRONG>short</STRONG>s for its parameters, that limits
- color-pair and color-values to 32767 on modern hardware. The extension
+ color pair and color-values to 32767 on modern hardware. The extension
<STRONG>extended_pair_content</STRONG> uses <STRONG>int</STRONG>s for the color pair and for returning
- the foreground and background colors, allowing a larger number of col-
- ors to be supported.
+ the foreground and background colors, allowing a larger number of
+ colors to be supported.
</PRE><H3><a name="h3-reset_color_pairs">reset_color_pairs</a></H3><PRE>
- The extension <STRONG>reset_color_pairs</STRONG> tells ncurses to discard all of the
- color-pair information which was set with <STRONG>init_pair</STRONG>. It also touches
+ The extension <STRONG>reset_color_pairs</STRONG> tells <EM>ncurses</EM> to discard all of the
+ color pair information which was set with <STRONG>init_pair</STRONG>. It also touches
the current- and standard-screens, allowing an application to switch
color palettes rapidly.
-</PRE><H3><a name="h3-PAIR_NUMBER">PAIR_NUMBER</a></H3><PRE>
- <STRONG>PAIR_NUMBER(</STRONG><EM>attrs</EM>) extracts the color value from its <EM>attrs</EM> parameter
- and returns it as a color pair number.
+</PRE><H3><a name="h3-COLOR_PAIR">COLOR_PAIR</a></H3><PRE>
+ <STRONG>COLOR_PAIR(</STRONG><EM>n</EM><STRONG>)</STRONG> converts a color pair number to an attribute. Attributes
+ can hold color pairs in the range 0 to 255. If you need a color pair
+ larger than that, you must use functions such as <STRONG>attr_set</STRONG> (which pass
+ the color pair as a separate parameter) rather than the legacy
+ functions such as <STRONG>attrset</STRONG>.
-</PRE><H3><a name="h3-COLOR_PAIR">COLOR_PAIR</a></H3><PRE>
- Its inverse <STRONG>COLOR_PAIR(</STRONG><EM>n</EM><STRONG>)</STRONG> converts a color pair number to an attribute.
- Attributes can hold color pairs in the range 0 to 255. If you need a
- color pair larger than that, you must use functions such as <STRONG>attr_set</STRONG>
- (which pass the color pair as a separate parameter) rather than the
- legacy functions such as <STRONG>attrset</STRONG>.
+</PRE><H3><a name="h3-PAIR_NUMBER">PAIR_NUMBER</a></H3><PRE>
+ <STRONG>PAIR_NUMBER(</STRONG><EM>attr</EM>) extracts the color information from its <EM>attr</EM>
+ parameter and returns it as a color pair number; it is the inverse
+ operation of <STRONG>COLOR_PAIR</STRONG>.
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
The routines <STRONG>can_change_color</STRONG> and <STRONG>has_colors</STRONG> return <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>.
- All other routines return the integer <STRONG>ERR</STRONG> upon failure and an <STRONG>OK</STRONG> (SVr4
- specifies only "an integer value other than <STRONG>ERR</STRONG>") upon successful com-
- pletion.
+ All other routines return the integer <STRONG>ERR</STRONG> upon failure and an <STRONG>OK</STRONG> (SVr4
+ specifies only "an integer value other than <STRONG>ERR</STRONG>") upon successful
+ completion.
- X/Open defines no error conditions. SVr4 does document some error con-
- ditions which apply in general:
+ X/Open defines no error conditions. SVr4 does document some error
+ conditions which apply in general:
<STRONG>o</STRONG> This implementation will return <STRONG>ERR</STRONG> on attempts to use color values
- outside the range <STRONG>0</STRONG> to <STRONG>COLORS</STRONG>-1 (except for the default colors ex-
- tension), or use color pairs outside the range <STRONG>0</STRONG> to <STRONG>COLOR_PAIRS-1</STRONG>.
+ outside the range <STRONG>0</STRONG> to <STRONG>COLORS</STRONG>-1 (except for the default colors
+ extension), or use color pairs outside the range <STRONG>0</STRONG> to
+ <STRONG>COLOR_PAIRS-1</STRONG>.
Color values used in <STRONG>init_color</STRONG> must be in the range <STRONG>0</STRONG> to <STRONG>1000</STRONG>.
@@ -393,9 +407,9 @@
An error is returned from secondary functions such as <STRONG>init_pair</STRONG> if
<STRONG>start_color</STRONG> was not called.
- <STRONG>o</STRONG> SVr4 does much the same, except that it returns <STRONG>ERR</STRONG> from <STRONG>pair_con-</STRONG>
- <STRONG>tent</STRONG> if the pair was not initialized using <STRONG>init_pairs</STRONG> and it re-
- turns <STRONG>ERR</STRONG> from <STRONG>color_content</STRONG> if the terminal does not support
+ <STRONG>o</STRONG> SVr4 does much the same, except that it returns <STRONG>ERR</STRONG> from
+ <STRONG>pair_content</STRONG> if the pair was not initialized using <STRONG>init_pairs</STRONG> and
+ it returns <STRONG>ERR</STRONG> from <STRONG>color_content</STRONG> if the terminal does not support
changing colors.
This implementation does not return <STRONG>ERR</STRONG> for either case.
@@ -412,12 +426,12 @@
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- In the <STRONG>ncurses</STRONG> implementation, there is a separate color activation
- flag, color palette, color pairs table, and associated <STRONG>COLORS</STRONG> and <STRONG>COL-</STRONG>
- <STRONG>OR_PAIRS</STRONG> counts for each screen; the <STRONG>start_color</STRONG> function only affects
- the current screen. The SVr4/XSI interface is not really designed with
- this in mind, and historical implementations may use a single shared
- color palette.
+ In the <EM>ncurses</EM> implementation, there is a separate color activation
+ flag, color palette, color pairs table, and associated <STRONG>COLORS</STRONG> and
+ <STRONG>COLOR_PAIRS</STRONG> counts for each screen; the <STRONG>start_color</STRONG> function only
+ affects the current screen. The SVr4/XSI interface is not really
+ designed with this in mind, and historical implementations may use a
+ single shared color palette.
Setting an implicit background color via a color pair affects only
character cells that a character write operation explicitly touches.
@@ -439,40 +453,93 @@
<STRONG>o</STRONG> Color RGB values are not settable.
+</PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
+ The functions marked as extensions were designed for <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>, and
+ are not found in SVr4 <EM>curses</EM>, 4.4BSD <EM>curses</EM>, or any other previous
+ curses implementation.
+
+
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- This implementation satisfies XSI Curses's minimum maximums for <STRONG>COLORS</STRONG>
- and <STRONG>COLOR_PAIRS</STRONG>.
+ Applications employing <EM>ncurses</EM> extensions should condition their use on
+ the visibility of the <STRONG>NCURSES_VERSION</STRONG> preprocessor macro.
+
+ This implementation satisfies X/Open Curses's minimum maximums for
+ <STRONG>COLORS</STRONG> and <STRONG>COLOR_PAIRS</STRONG>.
- The <STRONG>init_pair</STRONG> routine accepts negative values of foreground and back-
- ground color to support the <STRONG><A HREF="default_colors.3x.html">use_default_colors(3x)</A></STRONG> extension, but only
- if that routine has been first invoked.
+ The <STRONG>init_pair</STRONG> routine accepts negative values of foreground and
+ background color to support the <STRONG><A HREF="default_colors.3x.html">use_default_colors(3x)</A></STRONG> extension, but
+ only if that routine has been first invoked.
The assumption that <STRONG>COLOR_BLACK</STRONG> is the default background color for all
- terminals can be modified using the <STRONG><A HREF="default_colors.3x.html">assume_default_colors(3x)</A></STRONG> exten-
- sion.
+ terminals can be modified using the <STRONG><A HREF="default_colors.3x.html">assume_default_colors(3x)</A></STRONG>
+ extension.
- This implementation checks the pointers, e.g., for the values returned
- by <STRONG>color_content</STRONG> and <STRONG>pair_content</STRONG>, and will treat those as optional pa-
- rameters when null.
+ This implementation checks the pointers, e.g., for the values returned
+ by <STRONG>color_content</STRONG> and <STRONG>pair_content</STRONG>, and will treat those as optional
+ parameters when null.
- X/Open Curses does not specify a limit for the number of colors and
+ X/Open Curses does not specify a limit for the number of colors and
color pairs which a terminal can support. However, in its use of <STRONG>short</STRONG>
- for the parameters, it carries over SVr4's implementation detail for
+ for the parameters, it carries over SVr4's implementation detail for
the compiled terminfo database, which uses signed 16-bit numbers. This
- implementation provides extended versions of those functions which use
- <STRONG>short</STRONG> parameters, allowing applications to use larger color- and pair-
+ implementation provides extended versions of those functions which use
+ <STRONG>short</STRONG> parameters, allowing applications to use larger color- and pair-
numbers.
- The <STRONG>reset_color_pairs</STRONG> function is an extension of ncurses.
+ The <STRONG>reset_color_pairs</STRONG> function is an extension of <EM>ncurses</EM>.
+
+
+</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
+ SVr3.2 introduced color support to curses in 1987.
+
+ SVr4 made internal changes, e.g., moving the storage for the color
+ state from <STRONG>SP</STRONG> (the <EM>SCREEN</EM> structure) to <STRONG>cur_term</STRONG> (the <EM>TERMINAL</EM>
+ structure), but provided the same set of library functions.
+
+ SVr4 curses limits the number of color pairs to 64, reserving color
+ pair zero (0) as the terminal's initial uncolored state. This limit
+ arises because the color pair information is a bitfield in the <STRONG>chtype</STRONG>
+ data type (denoted by <STRONG>A_COLOR</STRONG>).
+
+ Other implementations of curses had different limits:
+
+ <STRONG>o</STRONG> PCCurses (1987-1990) provided for only eight (8) colors.
+
+ <STRONG>o</STRONG> PDCurses (1992-present) inherited the 8-color limitation from
+ PCCurses, but changed this to 256 in version 2.5 (2001), along with
+ changing <STRONG>chtype</STRONG> from 16-bits to 32-bits.
+
+ <STRONG>o</STRONG> X/Open Curses (1992-present) added a new structure <STRONG>cchar_t</STRONG> to store
+ the character, attributes and color pair values, allowing increased
+ range of color pairs. Both color pairs and color-values used a
+ signed <STRONG>short</STRONG>, limiting values to 15 bits.
+
+ <STRONG>o</STRONG> <EM>ncurses</EM> (1992-present) uses eight bits for <STRONG>A_COLOR</STRONG> in <STRONG>chtype</STRONG>
+ values.
+
+ Version 5.3 provided a wide-character interface (2002), but left
+ color pairs as part of the attributes-field.
+
+ Since version 6 (2015), ncurses uses a separate <STRONG>int</STRONG> for color pairs
+ in the <STRONG>cchar_t</STRONG> values. When those color pair values fit in 8 bits,
+ ncurses allows color pairs to be manipulated via the functions
+ using <STRONG>chtype</STRONG> values.
+
+ <STRONG>o</STRONG> NetBSD curses used 6 bits from 2000 (when colors were first
+ supported) until 2004. At that point, NetBSD changed to use 10
+ bits. As of 2021, that size is unchanged. Like <EM>ncurses</EM> before
+ version 6, the NetBSD color pair information is stored in the
+ attributes field of <STRONG>cchar_t</STRONG>, limiting the number of color pairs by
+ the size of the bitfield.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, <STRONG>de-</STRONG>
- <STRONG><A HREF="default_colors.3x.html">fault_colors(3x)</A></STRONG>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>,
+ <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>
- <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -481,7 +548,7 @@
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
<ul>
<li><a href="#h3-Overview">Overview</a></li>
-<li><a href="#h3-Color-Rendering">Color Rendering</a></li>
+<li><a href="#h3-Rendering">Rendering</a></li>
</ul>
</li>
<li><a href="#h2-CONSTANTS">CONSTANTS</a></li>
@@ -505,13 +572,15 @@
<li><a href="#h3-pair_content">pair_content</a></li>
<li><a href="#h3-extended_pair_content">extended_pair_content</a></li>
<li><a href="#h3-reset_color_pairs">reset_color_pairs</a></li>
-<li><a href="#h3-PAIR_NUMBER">PAIR_NUMBER</a></li>
<li><a href="#h3-COLOR_PAIR">COLOR_PAIR</a></li>
+<li><a href="#h3-PAIR_NUMBER">PAIR_NUMBER</a></li>
</ul>
</li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
<li><a href="#h2-NOTES">NOTES</a></li>
+<li><a href="#h2-EXTENSIONS">EXTENSIONS</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
+<li><a href="#h2-HISTORY">HISTORY</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
diff --git a/doc/html/man/curs_delch.3x.html b/doc/html/man/curs_delch.3x.html
index 17698ec5574e..ca638df7ce2e 100644
--- a/doc/html/man/curs_delch.3x.html
+++ b/doc/html/man/curs_delch.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2006,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,28 +27,28 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_delch.3x,v 1.15 2020/10/24 09:36:43 tom Exp @
+ * @Id: curs_delch.3x,v 1.34 2024/04/20 19:24:14 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_delch 3x</TITLE>
+<TITLE>curs_delch 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_delch 3x</H1>
+<H1 class="no-header">curs_delch 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG> <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
+<STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>delch</STRONG>, <STRONG>wdelch</STRONG>, <STRONG>mvdelch</STRONG>, <STRONG>mvwdelch</STRONG> - delete character under the cursor in
- a <STRONG>curses</STRONG> window
+ <STRONG>delch</STRONG>, <STRONG>wdelch</STRONG>, <STRONG>mvdelch</STRONG>, <STRONG>mvwdelch</STRONG> - delete a character from a <EM>curses</EM>
+ window
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -61,32 +61,37 @@
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- These routines delete the character under the cursor; all characters to
- the right of the cursor on the same line are moved to the left one
- position and the last character on the line is filled with a blank.
- The cursor position does not change (after moving to <EM>y</EM>, <EM>x</EM>, if
- specified). (This does not imply use of the hardware delete character
- feature.)
+ <STRONG>wdelch</STRONG> deletes the character at the cursor position in <EM>win</EM>.
+ <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> describes the variants of this function.
+
+ <STRONG>wdelch</STRONG> moves all characters to the right of the cursor on the same line
+ to the left one position and replaces the contents of the rightmost
+ position on the line with the window's blank character; see <STRONG><A HREF="curs_bkgd.3x.html">bkgd(3x)</A></STRONG>
+ (wide-character API users may consult <STRONG><A HREF="curs_bkgrnd.3x.html">bkgrnd(3x)</A></STRONG> instead). The cursor
+ position does not change (after moving to (<EM>y</EM>, <EM>x</EM>), if specified).
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- All routines return the integer <STRONG>ERR</STRONG> upon failure and an <STRONG>OK</STRONG> (SVr4
- specifies only "an integer value other than <STRONG>ERR</STRONG>") upon successful
- completion.
+ These functions return <STRONG>OK</STRONG> on success and <STRONG>ERR</STRONG> on failure.
+
+ Functions taking a <EM>WINDOW</EM> pointer argument fail if the pointer is <STRONG>NULL</STRONG>.
- Functions with a "mv" prefix first perform a cursor movement using
- <STRONG>wmove</STRONG>, and return an error if the position is outside the window, or if
- the window pointer is null.
+ Functions prefixed with "mv" first perform cursor movement and fail if
+ the position (<EM>y</EM>, <EM>x</EM>) is outside the window boundaries.
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- Note that <STRONG>delch</STRONG>, <STRONG>mvdelch</STRONG>, and <STRONG>mvwdelch</STRONG> may be macros.
+ <STRONG>delch</STRONG>, <STRONG>mvdelch</STRONG>, and <STRONG>mvwdelch</STRONG> may be implemented as macros.
+
+ A terminal's <STRONG>delete_character</STRONG> (<STRONG>dch1</STRONG>) capability is not necessarily
+ employed.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These functions are described in the XSI Curses standard, Issue 4. The
- standard specifies that they return <STRONG>ERR</STRONG> on failure, but specifies no
- error conditions.
+ X/Open Curses, Issue 4 describes these functions.
+
+ SVr4 <EM>curses</EM> describes a successful return value only as "an integer
+ value other than <STRONG>ERR</STRONG>".
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
@@ -94,7 +99,7 @@
- <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
diff --git a/doc/html/man/curs_deleteln.3x.html b/doc/html/man/curs_deleteln.3x.html
index 59a0f1222924..c9c500146182 100644
--- a/doc/html/man/curs_deleteln.3x.html
+++ b/doc/html/man/curs_deleteln.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2007,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,28 +27,28 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_deleteln.3x,v 1.17 2020/10/18 00:28:51 tom Exp @
+ * @Id: curs_deleteln.3x,v 1.38 2024/04/20 21:20:07 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_deleteln 3x</TITLE>
+<TITLE>curs_deleteln 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_deleteln 3x</H1>
+<H1 class="no-header">curs_deleteln 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG> <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
+<STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
<STRONG>deleteln</STRONG>, <STRONG>wdeleteln</STRONG>, <STRONG>insdelln</STRONG>, <STRONG>winsdelln</STRONG>, <STRONG>insertln</STRONG>, <STRONG>winsertln</STRONG> - delete
- and insert lines in a <STRONG>curses</STRONG> window
+ or insert lines in a <EM>curses</EM> window
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -81,7 +81,7 @@
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- All routines return the integer <STRONG>ERR</STRONG> upon failure and an <STRONG>OK</STRONG> (SVr4
+ These routines return the integer <STRONG>ERR</STRONG> upon failure and an <STRONG>OK</STRONG> (SVr4
specifies only "an integer value other than <STRONG>ERR</STRONG>") upon successful
completion.
@@ -89,12 +89,6 @@
window parameter is null, an error is returned.
-</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These functions are described in the XSI Curses standard, Issue 4. The
- standard specifies that they return <STRONG>ERR</STRONG> on failure, but specifies no
- error conditions.
-
-
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
Note that all but <STRONG>winsdelln</STRONG> may be macros.
@@ -104,12 +98,18 @@
window.
+</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
+ These functions are described in X/Open Curses, Issue 4. The standard
+ specifies that they return <STRONG>ERR</STRONG> on failure, but specifies no error
+ conditions.
+
+
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
<STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>
- <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -117,8 +117,8 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-NOTES">NOTES</a></li>
+<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
diff --git a/doc/html/man/curs_extend.3x.html b/doc/html/man/curs_extend.3x.html
index f1645a31be49..e8b3a4682f73 100644
--- a/doc/html/man/curs_extend.3x.html
+++ b/doc/html/man/curs_extend.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1999-2010,2016 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,27 +28,27 @@
* authorization. *
****************************************************************************
* Author: Thomas E. Dickey 1999-on
- * @Id: curs_extend.3x,v 1.24 2020/10/24 09:37:07 tom Exp @
+ * @Id: curs_extend.3x,v 1.46 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_extend 3x</TITLE>
+<TITLE>curs_extend 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_extend 3x</H1>
+<H1 class="no-header">curs_extend 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG> <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG>
+<STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>curses_version</STRONG>, <STRONG>use_extended_names</STRONG> - miscellaneous curses extensions
+ <STRONG>curses_version</STRONG>, <STRONG>use_extended_names</STRONG> - miscellaneous <EM>curses</EM> extensions
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -65,7 +65,9 @@
</PRE><H3><a name="h3-curses_version">curses_version</a></H3><PRE>
Use <STRONG>curses_version</STRONG> to get the version number, including patch level of
- the library, e.g., <STRONG>5.0.19991023</STRONG>
+ the library, prefixed by "ncurses", e.g.,
+
+ <STRONG>ncurses</STRONG> <STRONG>5.0.19991023</STRONG>
</PRE><H3><a name="h3-use_extended_names">use_extended_names</a></H3><PRE>
@@ -86,24 +88,28 @@
this and restore it.
+</PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
+ These functions are <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> extensions, and are not found in SVr4
+ <EM>curses</EM>, 4.4BSD <EM>curses</EM>, or any other previous curses implementation.
+
+
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines are specific to ncurses. They were not supported on
- Version 7, BSD or System V implementations. It is recommended that any
- code depending on them be conditioned using NCURSES_VERSION.
+ Applications employing <EM>ncurses</EM> extensions should condition their use on
+ the visibility of the <STRONG>NCURSES_VERSION</STRONG> preprocessor macro.
+
+
+</PRE><H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
+ Thomas Dickey.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
<STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>, <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>, <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG>, <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>,
<STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>, <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>, <STRONG><A HREF="keybound.3x.html">keybound(3x)</A></STRONG>, <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>,
- <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>, <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>.
-
-
-</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
- Thomas Dickey.
+ <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>, <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>
- <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -116,9 +122,10 @@
</ul>
</li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
+<li><a href="#h2-EXTENSIONS">EXTENSIONS</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
+<li><a href="#h2-AUTHORS">AUTHORS</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-AUTHOR">AUTHOR</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/curs_get_wch.3x.html b/doc/html/man/curs_get_wch.3x.html
index ad6619f2d77e..291ef67f1c0a 100644
--- a/doc/html/man/curs_get_wch.3x.html
+++ b/doc/html/man/curs_get_wch.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 2002-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,28 +27,28 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_get_wch.3x,v 1.14 2020/10/17 23:17:05 tom Exp @
+ * @Id: curs_get_wch.3x,v 1.40 2024/04/20 19:23:03 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_get_wch 3x</TITLE>
+<TITLE>curs_get_wch 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_get_wch 3x</H1>
+<H1 class="no-header">curs_get_wch 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG> <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
+<STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>get_wch</STRONG>, <STRONG>wget_wch</STRONG>, <STRONG>mvget_wch</STRONG>, <STRONG>mvwget_wch</STRONG>, <STRONG>unget_wch</STRONG> - get (or push
- back) a wide character from curses terminal keyboard
+ <STRONG>get_wch</STRONG>, <STRONG>wget_wch</STRONG>, <STRONG>mvget_wch</STRONG>, <STRONG>mvwget_wch</STRONG>, <STRONG>unget_wch</STRONG> - get (or push
+ back) a wide character from <EM>curses</EM> terminal keyboard
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -59,98 +59,130 @@
<STRONG>int</STRONG> <STRONG>mvget_wch(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>wint_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>mvwget_wch(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>wint_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>unget_wch(const</STRONG> <STRONG>wchar_t</STRONG> <EM>wch</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>unget_wch(const</STRONG> <STRONG>wchar_t</STRONG> <EM>wc</EM><STRONG>);</STRONG>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- The <STRONG>get_wch</STRONG>, <STRONG>wget_wch</STRONG>, <STRONG>mvget_wch</STRONG>, and <STRONG>mvwget_wch</STRONG> functions read a char-
- acter from the terminal associated with the current or specified win-
- dow. In no-delay mode, if no input is waiting, the value <STRONG>ERR</STRONG> is re-
- turned. In delay mode, the program waits until the system passes text
- through to the program. Depending on the setting of <STRONG>cbreak</STRONG>, this is
- after one character (cbreak mode), or after the first newline (nocbreak
- mode). In half-delay mode, the program waits until the user types a
- character or the specified timeout interval has elapsed.
-
- Unless <STRONG>noecho</STRONG> has been set, these routines echo the character into the
- designated window.
-
- If the window is not a pad and has been moved or modified since the
- last call to <STRONG>wrefresh</STRONG>, <STRONG>wrefresh</STRONG> will be called before another character
- is read.
-
- If <STRONG>keypad</STRONG> is enabled, these functions respond to the pressing of a
- function key by setting the object pointed to by <EM>wch</EM> to the keycode as-
- signed to the function key, and returning <STRONG>KEY_CODE_YES</STRONG>. If a character
- (such as escape) that could be the beginning of a function key is re-
- ceived, curses sets a timer. If the remainder of the sequence does ar-
- rive within the designated time, curses passes through the character;
- otherwise, curses returns the function key value. For this reason,
- many terminals experience a delay between the time a user presses the
- escape key and the time the escape is returned to the program.
-
- The keycodes returned by these functions are the same as those returned
- by <STRONG>wgetch</STRONG>:
-
- <STRONG>o</STRONG> The predefined function keys are listed in <STRONG>&lt;curses.h&gt;</STRONG> as macros
- with values outside the range of 8-bit characters. Their names be-
- gin with <STRONG>KEY_</STRONG>.
-
- <STRONG>o</STRONG> Other (user-defined) function keys which may be defined using <STRONG>de-</STRONG>
- <STRONG><A HREF="define_key.3x.html">fine_key(3x)</A></STRONG> have no names, but also are expected to have values
- outside the range of 8-bit characters.
-
- The <STRONG>unget_wch</STRONG> function pushes the wide character <EM>wch</EM> back onto the head
- of the input queue, so the wide character is returned by the next call
- to <STRONG>get_wch</STRONG>. The pushback of one character is guaranteed. If the pro-
- gram calls <STRONG>unget_wch</STRONG> too many times without an intervening call to
- <STRONG>get_wch</STRONG>, the operation may fail.
+</PRE><H3><a name="h3-Reading-Characters">Reading Characters</a></H3><PRE>
+ <STRONG>wget_wch</STRONG> gathers a key stroke <EM>wch</EM> from the terminal keyboard associated
+ with a <EM>curses</EM> window <EM>win</EM>, returning <STRONG>OK</STRONG> if a wide character is read,
+ <STRONG>KEY_CODE_YES</STRONG> if a function key is read, and <STRONG>ERR</STRONG> if no key event is
+ available. <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> describes the variants of this function.
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The header file <STRONG>&lt;curses.h&gt;</STRONG> automatically includes the header file
- <STRONG>&lt;stdio.h&gt;</STRONG>.
+ When input is pending, <STRONG>wget_wch</STRONG> stores an integer identifying the key
+ stroke in <EM>wch</EM>; for alphanumeric and punctuation keys, this value
+ corresponds to the character encoding used by the terminal. Use of the
+ control key as a modifier often results in a distinct code. The
+ behavior of other keys depends on whether <EM>win</EM> is in keypad mode; see
+ subsections "Keypad Mode" and "Predefined Key Codes" in <STRONG><A HREF="curs_getch.3x.html">getch(3x)</A></STRONG>.
+
+ If no input is pending, then if the no-delay flag is set in the window
+ (see <STRONG><A HREF="nodelay.3x.html">nodelay(3x)</A></STRONG>), the function returns <STRONG>ERR</STRONG>; otherwise, <EM>curses</EM> waits
+ until the terminal has input. If <STRONG><A HREF="curs_inopts.3x.html">cbreak(3x)</A></STRONG> has been called, this
+ happens after one character is read. If <STRONG><A HREF="curs_inopts.3x.html">nocbreak(3x)</A></STRONG> has been called,
+ it occurs when the next newline is read. If <STRONG><A HREF="curs_inopts.3x.html">halfdelay(3x)</A></STRONG> has been
+ called, <EM>curses</EM> waits until a character is typed or the specified delay
+ elapses.
+
+ If <STRONG><A HREF="curs_inopts.3x.html">echo(3x)</A></STRONG> has been called, and the window is not a pad, <EM>curses</EM> writes
+ <EM>wch</EM> to the window (at the cursor position) per the following rules.
+
+ <STRONG>o</STRONG> If <EM>wch</EM> matches the terminal's erase character, the cursor moves
+ leftward one position and the new position is erased as if
+ <STRONG><A HREF="curs_move.3x.html">wmove(3x)</A></STRONG> and then <STRONG><A HREF="curs_delch.3x.html">wdelch(3x)</A></STRONG> were called. When the window's
+ keypad mode is enabled (see below), <STRONG>KEY_LEFT</STRONG> and <STRONG>KEY_BACKSPACE</STRONG> are
+ handled the same way.
+
+ <STRONG>o</STRONG> <EM>curses</EM> writes any other <EM>wch</EM> to the window, as with <STRONG><A HREF="curs_add_wch.3x.html">wecho_wchar(3x)</A></STRONG>.
+
+ <STRONG>o</STRONG> If the window has been moved or modified since the last call to
+ <STRONG><A HREF="curs_refresh.3x.html">wrefresh(3x)</A></STRONG>, <EM>curses</EM> calls <STRONG>wrefresh</STRONG>.
- Applications should not define the escape key by itself as a single-
- character function.
+ If <EM>wch</EM> is a carriage return and <STRONG><A HREF="curs_inopts.3x.html">nl(3x)</A></STRONG> has been called, <STRONG>wgetch</STRONG> stores
+ the the character code for newline (line feed) in <EM>wch</EM> instead.
- When using <STRONG>get_wch</STRONG>, <STRONG>wget_wch</STRONG>, <STRONG>mvget_wch</STRONG>, or <STRONG>mvwget_wch</STRONG>, applications
- should not use <STRONG>nocbreak</STRONG> mode and <STRONG>echo</STRONG> mode at the same time. Depending
- on the state of the tty driver when each character is typed, the pro-
- gram may produce undesirable results.
- All functions except <STRONG>wget_wch</STRONG> and <STRONG>unget_wch</STRONG> may be macros.
+</PRE><H3><a name="h3-Ungetting-Characters">Ungetting Characters</a></H3><PRE>
+ <STRONG>unget_wch</STRONG> places <EM>wch</EM> into the input queue to be returned by the next
+ call to <STRONG>wget_wch</STRONG>. A single input queue serves all windows.
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- When <STRONG>get_wch</STRONG>, <STRONG>wget_wch</STRONG>, <STRONG>mvget_wch</STRONG>, and <STRONG>mvwget_wch</STRONG> functions successful-
- ly report the pressing of a function key, they return <STRONG>KEY_CODE_YES</STRONG>.
- When they successfully report a wide character, they return <STRONG>OK</STRONG>. Other-
- wise, they return <STRONG>ERR</STRONG>.
+ <STRONG>wget_wch</STRONG> returns <STRONG>OK</STRONG> when it reads a wide character and <STRONG>KEY_CODE_YES</STRONG>
+ when it reads a function key code. It returns <STRONG>ERR</STRONG> if
- Upon successful completion, <STRONG>unget_wch</STRONG> returns <STRONG>OK</STRONG>. Otherwise, the func-
- tion returns <STRONG>ERR</STRONG>.
+ <STRONG>o</STRONG> the <EM>WINDOW</EM> pointer is <STRONG>NULL</STRONG>, or
+
+ <STRONG>o</STRONG> its timeout expires without any data arriving, or
+
+ <STRONG>o</STRONG> execution was interrupted by a signal, in which case <STRONG>errno</STRONG> is set
+ to <STRONG>EINTR</STRONG>.
+
+ Functions prefixed with "mv" first perform cursor movement and fail if
+ the position (<EM>y</EM>, <EM>x</EM>) is outside the window boundaries.
+
+ <STRONG>unget_wch</STRONG> returns <STRONG>OK</STRONG> on success and <STRONG>ERR</STRONG> if there is no more room in the
+ input queue.
+
+
+</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
+ See the "NOTES" section of <STRONG><A HREF="curs_getch.3x.html">wgetch(3x)</A></STRONG>.
- Functions with a "mv" prefix first perform a cursor movement using
- <STRONG>wmove</STRONG>, and return an error if the position is outside the window, or if
- the window pointer is null.
+ All of these functions except <STRONG>wget_wch</STRONG> and <STRONG>unget_wch</STRONG> may be implemented
+ as macros.
+
+ Unlike <STRONG><A HREF="curs_getch.3x.html">wgetch(3x)</A></STRONG>, <STRONG>wget_wch</STRONG> and its variants store the value of the
+ input character in an additional <EM>wch</EM> parameter instead of the return
+ value.
+
+ Unlike <STRONG>ungetch</STRONG>, <STRONG>unget_wch</STRONG> cannot distinguish function key codes
+ <STRONG>wget_wch</STRONG> from conventional character codes. An application can
+ overcome this limitation by pushing function key codes with <STRONG>ungetch</STRONG> and
+ subsequently checking the return value of <STRONG>wget_wch</STRONG> for a match with
+ <STRONG>KEY_CODE_YES</STRONG>.
+
+
+</PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
+ See the "EXTENSIONS" section of <STRONG><A HREF="curs_getch.3x.html">wgetch(3x)</A></STRONG>.
+
+
+</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
+ Applications employing <EM>ncurses</EM> extensions should condition their use on
+ the visibility of the <STRONG>NCURSES_VERSION</STRONG> preprocessor macro.
+
+ X/Open Curses, Issue 4 describes these functions. It specifies no
+ error conditions for them.
+
+ See the "PORTABILITY" section of <STRONG><A HREF="curs_getch.3x.html">wgetch(3x)</A></STRONG> regarding the interaction
+ of <STRONG>wget_wch</STRONG> with signal handlers.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>, <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>, <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>,
- <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
+ <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG> describes comparable functions of the <EM>ncurses</EM> library in
+ its non-wide-character configuration.
+
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>, <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>, <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>,
+ <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
- <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<li><a href="#h2-NAME">NAME</a></li>
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
-<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
+<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
+<ul>
+<li><a href="#h3-Reading-Characters">Reading Characters</a></li>
+<li><a href="#h3-Ungetting-Characters">Ungetting Characters</a></li>
+</ul>
+</li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
+<li><a href="#h2-NOTES">NOTES</a></li>
+<li><a href="#h2-EXTENSIONS">EXTENSIONS</a></li>
+<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
diff --git a/doc/html/man/curs_get_wstr.3x.html b/doc/html/man/curs_get_wstr.3x.html
index 0d30c9e59c4d..9e18e64f3dae 100644
--- a/doc/html/man/curs_get_wstr.3x.html
+++ b/doc/html/man/curs_get_wstr.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 2002-2012,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,29 +27,29 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_get_wstr.3x,v 1.21 2020/10/17 23:17:24 tom Exp @
+ * @Id: curs_get_wstr.3x,v 1.48 2024/04/20 19:18:18 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_get_wstr 3x</TITLE>
+<TITLE>curs_get_wstr 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_get_wstr 3x</H1>
+<H1 class="no-header">curs_get_wstr 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG> <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
+<STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>get_wstr</STRONG>, <STRONG>getn_wstr</STRONG>, <STRONG>wget_wstr</STRONG>, <STRONG>wgetn_wstr</STRONG>, <STRONG>mvget_wstr</STRONG>, <STRONG>mvgetn_wstr</STRONG>,
- <STRONG>mvwget_wstr</STRONG>, <STRONG>mvwgetn_wstr</STRONG> - get an array of wide characters from a
- curses terminal keyboard
+ <STRONG>get_wstr</STRONG>, <STRONG>getn_wstr</STRONG>, <STRONG>wget_wstr</STRONG>, <STRONG>wgetn_wstr</STRONG>, <STRONG>mvget_wstr</STRONG>, <STRONG>mvgetn_wstr</STRONG>,
+ <STRONG>mvwget_wstr</STRONG>, <STRONG>mvwgetn_wstr</STRONG> - get a wide-character string from a <EM>curses</EM>
+ terminal keyboard
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -67,116 +67,137 @@
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- The effect of <STRONG>get_wstr</STRONG> is as though a series of calls to <STRONG><A HREF="curs_get_wch.3x.html">get_wch(3x)</A></STRONG>
- were made, until a newline, other end-of-line, or end-of-file condition
- is processed. An end-of-file condition is represented by <STRONG>WEOF</STRONG>, as de-
- fined in <STRONG>&lt;wchar.h&gt;</STRONG>. The newline and end-of-line conditions are repre-
- sented by the <STRONG>\n</STRONG> <STRONG>wchar_t</STRONG> value. In all instances, the end of the
- string is terminated by a null <STRONG>wchar_t</STRONG>. The routine places resulting
- values in the area pointed to by <EM>wstr</EM>.
+ The function <STRONG>wgetn_wstr</STRONG> is equivalent to a series of calls to
+ <STRONG><A HREF="curs_get_wch.3x.html">wget_wch(3x)</A></STRONG> until a newline or carriage return terminates the series:
- The user's erase and kill characters are interpreted. If keypad mode
- is on for the window, <STRONG>KEY_LEFT</STRONG> and <STRONG>KEY_BACKSPACE</STRONG> are both considered
- equivalent to the user's kill character.
+ <STRONG>o</STRONG> The terminating character is not included in the returned string.
- Characters input are echoed only if <STRONG>echo</STRONG> is currently on. In that
- case, backspace is echoed as deletion of the previous character (typi-
- cally a left motion).
+ <STRONG>o</STRONG> An end-of-file condition is represented by <STRONG>WEOF</STRONG>, as defined in
+ <STRONG>&lt;wchar.h&gt;</STRONG>.
- The effect of <STRONG>wget_wstr</STRONG> is as though a series of calls to <STRONG>wget_wch</STRONG> were
- made.
+ <STRONG>o</STRONG> In all instances, the end of the string is terminated by a null
+ <STRONG>wchar_t</STRONG>.
- The effect of <STRONG>mvget_wstr</STRONG> is as though a call to <STRONG>move</STRONG> and then a series
- of calls to <STRONG>get_wch</STRONG> were made.
+ <STRONG>o</STRONG> The function stores the result in the area pointed to by the <EM>wstr</EM>
+ parameter.
- The effect of <STRONG>mvwget_wstr</STRONG> is as though a call to <STRONG>wmove</STRONG> and then a se-
- ries of calls to <STRONG>wget_wch</STRONG> were made.
+ <STRONG>o</STRONG> The function reads at most <EM>n</EM> characters, thus preventing a possible
+ overflow of the input buffer.
- The <STRONG>getn_wstr</STRONG>, <STRONG>mvgetn_wstr</STRONG>, <STRONG>mvwgetn_wstr</STRONG>, and <STRONG>wgetn_wstr</STRONG> functions are
- identical to the <STRONG>get_wstr</STRONG>, <STRONG>mvget_wstr</STRONG>, <STRONG>mvwget_wstr</STRONG>, and <STRONG>wget_wstr</STRONG> func-
- tions, respectively, except that the <STRONG>*n_*</STRONG> versions read at most <EM>n</EM> char-
- acters, letting the application prevent overflow of the input buffer.
+ Any attempt to enter more characters (other than the terminating
+ newline or carriage return) causes a beep.
+ Function keys also cause a beep and are ignored.
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- Using <STRONG>get_wstr</STRONG>, <STRONG>mvget_wstr</STRONG>, <STRONG>mvwget_wstr</STRONG>, or <STRONG>wget_wstr</STRONG> to read a line
- that overflows the array pointed to by <STRONG>wstr</STRONG> causes undefined results.
- The use of <STRONG>getn_wstr</STRONG>, <STRONG>mvgetn_wstr</STRONG>, <STRONG>mvwgetn_wstr</STRONG>, or <STRONG>wgetn_wstr</STRONG>, respec-
- tively, is recommended.
+ The user's <EM>erase</EM> and <EM>kill</EM> characters are interpreted:
- These functions cannot return <STRONG>KEY_</STRONG> values because there is no way to
- distinguish a <STRONG>KEY_</STRONG> value from a valid <STRONG>wchar_t</STRONG> value.
+ <STRONG>o</STRONG> The <EM>erase</EM> character (e.g., <STRONG>^H</STRONG>) erases the character at the end of
+ the buffer, moving the cursor to the left.
+
+ If <EM>keypad</EM> mode is on for the window, <STRONG>KEY_LEFT</STRONG> and <STRONG>KEY_BACKSPACE</STRONG> are
+ both considered equivalent to the user's <EM>erase</EM> character.
- All of these routines except <STRONG>wgetn_wstr</STRONG> may be macros.
+ <STRONG>o</STRONG> The <EM>kill</EM> character (e.g., <STRONG>^U</STRONG>) erases the entire buffer, leaving the
+ cursor at the beginning of the buffer.
+
+ Characters input are echoed only if <STRONG>echo</STRONG> is currently on. In that
+ case, backspace is echoed as deletion of the previous character
+ (typically a left motion).
+
+ The <STRONG>getn_wstr</STRONG>, <STRONG>mvgetn_wstr</STRONG>, <STRONG>mvwgetn_wstr</STRONG>, and <STRONG>wgetn_wstr</STRONG> functions are
+ identical to the <STRONG>get_wstr</STRONG>, <STRONG>mvget_wstr</STRONG>, <STRONG>mvwget_wstr</STRONG>, and <STRONG>wget_wstr</STRONG>
+ functions, respectively, except that the <STRONG>*n_*</STRONG> versions read at most <EM>n</EM>
+ characters, letting the application prevent overflow of the input
+ buffer.
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- All of these functions return <STRONG>OK</STRONG> upon successful completion. Other-
- wise, they return <STRONG>ERR</STRONG>.
+ All of these functions return the integer <STRONG>OK</STRONG> upon successful
+ completion. If unsuccessful, they return <STRONG>ERR</STRONG>.
+
+ X/Open defines no error conditions.
+
+ In this implementation, these functions return an error
+
+ <STRONG>o</STRONG> if the window pointer is null,
- Functions using a window parameter return an error if it is null.
+ <STRONG>o</STRONG> if its timeout expires without having any data, or
- <STRONG>wgetn_wstr</STRONG>
- returns an error if the associated call to <STRONG>wget_wch</STRONG> failed.
+ <STRONG>o</STRONG> if the associated call to <STRONG>wget_wch</STRONG> failed.
- Functions with a "mv" prefix first perform a cursor movement using
- <STRONG>wmove</STRONG>, and return an error if the position is outside the window, or if
- the window pointer is null.
+ Functions prefixed with "mv" first perform cursor movement and fail if
+ the position (<EM>y</EM>, <EM>x</EM>) is outside the window boundaries.
+
+
+</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
+ Any of these functions other than <STRONG>wgetn_wstr</STRONG> may be macros.
+
+ Using <STRONG>get_wstr</STRONG>, <STRONG>mvget_wstr</STRONG>, <STRONG>mvwget_wstr</STRONG>, or <STRONG>wget_wstr</STRONG> to read a line
+ that overflows the array pointed to by <STRONG>wstr</STRONG> causes undefined results.
+ The use of <STRONG>getn_wstr</STRONG>, <STRONG>mvgetn_wstr</STRONG>, <STRONG>mvwgetn_wstr</STRONG>, or <STRONG>wgetn_wstr</STRONG>,
+ respectively, is recommended.
+
+ These functions cannot return <STRONG>KEY_</STRONG> values because there is no way to
+ distinguish a <STRONG>KEY_</STRONG> value from a valid <STRONG>wchar_t</STRONG> value.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
These functions are described in The Single Unix Specification, Version
- 2. No error conditions are defined. This implementation returns <STRONG>ERR</STRONG>
- if the window pointer is null, or if the lower-level <STRONG>wget_wch</STRONG> call re-
- turns an <STRONG>ERR</STRONG>. In the latter case, an <STRONG>ERR</STRONG> return without other data is
- treated as an end-of-file condition, and the returned array contains a
- <STRONG>WEOF</STRONG> followed by a null <STRONG>wchar_t</STRONG>.
+ 2. No error conditions are defined.
+
+ This implementation returns <STRONG>ERR</STRONG> if the window pointer is null, or if
+ the lower-level <STRONG>wget_wch</STRONG> call returns an <STRONG>ERR</STRONG>. In the latter case, an
+ <STRONG>ERR</STRONG> return without other data is treated as an end-of-file condition,
+ and the returned array contains a <STRONG>WEOF</STRONG> followed by a null <STRONG>wchar_t</STRONG>.
X/Open curses documented these functions to pass an array of <STRONG>wchar_t</STRONG> in
1997, but that was an error because of this part of the description:
- The effect of <EM>get</EM><STRONG>_</STRONG><EM>wstr()</EM> is as though a series of calls to
- <EM>get</EM><STRONG>_</STRONG><EM>wch()</EM> were made, until a newline character, end-of-line
- character, or end-of-file character is processed.
+ The effect of <STRONG>get_wstr</STRONG> is as though a series of calls to <STRONG>get_wch</STRONG>
+ were made, until a newline character, end-of-line character, or
+ end-of-file character is processed.
- The latter function <EM>get</EM><STRONG>_</STRONG><EM>wch()</EM> can return a negative value, while
- <STRONG>wchar_t</STRONG> is a unsigned type. All of the vendors implement this using
- <STRONG>wint_t</STRONG>, following the standard.
+ The latter function <EM>get</EM><STRONG>_</STRONG><EM>wch</EM> can return a negative value, while <STRONG>wchar_t</STRONG>
+ is a unsigned type. All of the vendors implement this using <STRONG>wint_t</STRONG>,
+ following the standard.
- X/Open Curses, Issue 7 (2009) is unclear regarding whether the termi-
- nating <EM>null</EM> <STRONG>wchar_t</STRONG> value is counted in the length parameter <EM>n</EM>. X/Open
- Curses, Issue 7 revised the corresponding description of <STRONG>wgetnstr</STRONG> to
- address this issue. The unrevised description of <STRONG>wget_nwstr</STRONG> can be in-
- terpreted either way. This implementation counts the terminator in the
- length.
+ X/Open Curses, Issue 7 (2009) is unclear regarding whether the
+ terminating <EM>null</EM> <STRONG>wchar_t</STRONG> value is counted in the length parameter <EM>n</EM>.
+ X/Open Curses, Issue 7 revised the corresponding description of
+ <STRONG>wgetnstr</STRONG> to address this issue. The unrevised description of
+ <STRONG>wget_nwstr</STRONG> can be interpreted either way. This implementation counts
+ the terminator in the length.
- X/Open Curses does not specify what happens if the length <EM>n</EM> is nega-
- tive.
+ X/Open Curses does not specify what happens if the length <EM>n</EM> is
+ negative.
- <STRONG>o</STRONG> For analogy with <STRONG>wgetnstr</STRONG>, ncurses 6.2 uses a limit (based on
+ <STRONG>o</STRONG> For analogy with <STRONG>wgetnstr</STRONG>, <EM>ncurses</EM> 6.2 uses a limit (based on
<STRONG>LINE_MAX</STRONG>).
- <STRONG>o</STRONG> Some other implementations (such as Solaris xcurses) do the same,
+ <STRONG>o</STRONG> Some other implementations (such as Solaris xcurses) do the same,
while others (PDCurses) do not allow this.
- <STRONG>o</STRONG> NetBSD 7 curses imitates ncurses 6.1 in this regard, treating a <STRONG>-1</STRONG>
+ <STRONG>o</STRONG> NetBSD 7 curses imitates <EM>ncurses</EM> 6.1 in this regard, treating a <STRONG>-1</STRONG>
as an indefinite number of characters.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- Functions: <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>, <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>.
+ <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG> describes comparable functions of the <EM>ncurses</EM> library
+ in its non-wide-character configuration.
+
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
- <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<li><a href="#h2-NAME">NAME</a></li>
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
+<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
diff --git a/doc/html/man/curs_getcchar.3x.html b/doc/html/man/curs_getcchar.3x.html
index 6a45e0ac8121..c1edf2841c36 100644
--- a/doc/html/man/curs_getcchar.3x.html
+++ b/doc/html/man/curs_getcchar.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2023,2024 Thomas E. Dickey *
* Copyright 2001-2015,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,43 +27,43 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_getcchar.3x,v 1.24 2020/02/02 23:34:34 tom Exp @
+ * @Id: curs_getcchar.3x,v 1.49 2024/04/20 18:55:09 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_getcchar 3x</TITLE>
+<TITLE>curs_getcchar 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_getcchar 3x</H1>
+<H1 class="no-header">curs_getcchar 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG> <STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG>
+<STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>getcchar</STRONG>, <STRONG>setcchar</STRONG> - Get a wide character string and rendition from a
- <STRONG>cchar_t</STRONG> or set a <STRONG>cchar_t</STRONG> from a wide-character string
+ <STRONG>getcchar</STRONG>, <STRONG>setcchar</STRONG> - convert between a wide-character string and a
+ <EM>curses</EM> complex character
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
<STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
<STRONG>int</STRONG> <STRONG>getcchar(</STRONG>
- <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wcval</EM><STRONG>,</STRONG>
- <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>,</STRONG>
+ <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>,</STRONG>
+ <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wc</EM><STRONG>,</STRONG>
<STRONG>attr_t</STRONG> <STRONG>*</STRONG><EM>attrs</EM><STRONG>,</STRONG>
<STRONG>short</STRONG> <STRONG>*</STRONG><EM>color</EM><STRONG>_</STRONG><EM>pair</EM><STRONG>,</STRONG>
<STRONG>void</STRONG> <STRONG>*</STRONG><EM>opts</EM> <STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>setcchar(</STRONG>
- <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wcval</EM><STRONG>,</STRONG>
- <STRONG>const</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>,</STRONG>
+ <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>,</STRONG>
+ <STRONG>const</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wc</EM><STRONG>,</STRONG>
<STRONG>const</STRONG> <STRONG>attr_t</STRONG> <EM>attrs</EM><STRONG>,</STRONG>
<STRONG>short</STRONG> <EM>color</EM><STRONG>_</STRONG><EM>pair</EM><STRONG>,</STRONG>
<STRONG>const</STRONG> <STRONG>void</STRONG> <STRONG>*</STRONG><EM>opts</EM> <STRONG>);</STRONG>
@@ -73,79 +73,79 @@
</PRE><H3><a name="h3-getcchar">getcchar</a></H3><PRE>
The <STRONG>getcchar</STRONG> function gets a wide-character string and rendition from a
- <STRONG>cchar_t</STRONG> argument. When <EM>wch</EM> is not a null pointer, the <STRONG>getcchar</STRONG>
- function does the following:
+ <STRONG>cchar_t</STRONG> argument. When <EM>wc</EM> is not a null pointer, the <STRONG>getcchar</STRONG> function
+ does the following:
- <STRONG>o</STRONG> Extracts information from a <STRONG>cchar_t</STRONG> value <EM>wcval</EM>
+ <STRONG>o</STRONG> Extracts information from a <STRONG>cchar_t</STRONG> value <EM>wch</EM>
<STRONG>o</STRONG> Stores the character attributes in the location pointed to by <EM>attrs</EM>
- <STRONG>o</STRONG> Stores the color-pair in the location pointed to by <EM>color</EM><STRONG>_</STRONG><EM>pair</EM>
+ <STRONG>o</STRONG> Stores the color pair in the location pointed to by <EM>color</EM><STRONG>_</STRONG><EM>pair</EM>
- <STRONG>o</STRONG> Stores the wide-character string, characters referenced by <EM>wcval</EM>,
- into the array pointed to by <EM>wch</EM>.
+ <STRONG>o</STRONG> Stores the wide-character string, characters referenced by <EM>wch</EM>,
+ into the array pointed to by <EM>wc</EM>.
- When <EM>wch</EM> is a null pointer, the <STRONG>getcchar</STRONG> function does the following:
+ When <EM>wc</EM> is a null pointer, the <STRONG>getcchar</STRONG> function does the following:
- <STRONG>o</STRONG> Obtains the number of wide characters pointed to by <EM>wcval</EM>
+ <STRONG>o</STRONG> Obtains the number of wide characters pointed to by <EM>wch</EM>
<STRONG>o</STRONG> Does not change the data referenced by <EM>attrs</EM> or <EM>color</EM><STRONG>_</STRONG><EM>pair</EM>
</PRE><H3><a name="h3-setcchar">setcchar</a></H3><PRE>
- The <STRONG>setcchar</STRONG> function initializes the location pointed to by <EM>wcval</EM> by
+ The <STRONG>setcchar</STRONG> function initializes the location pointed to by <EM>wch</EM> by
using:
<STRONG>o</STRONG> The character attributes in <EM>attrs</EM>
<STRONG>o</STRONG> The color pair in <EM>color</EM><STRONG>_</STRONG><EM>pair</EM>
- <STRONG>o</STRONG> The wide-character string pointed to by <EM>wch</EM>. The string must be
+ <STRONG>o</STRONG> The wide-character string pointed to by <EM>wc</EM>. The string must be
L'\0' terminated, contain at most one spacing character, which must
be the first.
- Up to <STRONG>CCHARW_MAX</STRONG>-1 nonspacing characters may follow. Additional
- nonspacing characters are ignored.
+ Up to <STRONG>CCHARW_MAX</STRONG>-1 non-spacing characters may follow. Additional
+ non-spacing characters are ignored.
The string may contain a single control character instead. In that
- case, no nonspacing characters are allowed.
+ case, no non-spacing characters are allowed.
-</PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
- X/Open Curses documents the <EM>opts</EM> argument as reserved for future use,
- saying that it must be null. This implementation uses that parameter
- in ABI 6 for the functions which have a color-pair parameter to support
- extended color pairs:
+</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
+ When <EM>wc</EM> is a null pointer, <STRONG>getcchar</STRONG> returns the number of wide
+ characters referenced by <EM>wch</EM>, including one for a trailing null.
- <STRONG>o</STRONG> For functions which modify the color, e.g., <STRONG>setcchar</STRONG>, if <EM>opts</EM> is
- set it is treated as a pointer to <STRONG>int</STRONG>, and used to set the color
- pair instead of the <STRONG>short</STRONG> pair parameter.
+ When <EM>wc</EM> is not a null pointer, <STRONG>getcchar</STRONG> returns <STRONG>OK</STRONG> upon successful
+ completion, and <STRONG>ERR</STRONG> otherwise.
- <STRONG>o</STRONG> For functions which retrieve the color, e.g., <STRONG>getcchar</STRONG>, if <EM>opts</EM> is
- set it is treated as a pointer to <STRONG>int</STRONG>, and used to retrieve the
- color pair as an <STRONG>int</STRONG> value, in addition retrieving it via the
- standard pointer to <STRONG>short</STRONG> parameter.
+ Upon successful completion, <STRONG>setcchar</STRONG> returns <STRONG>OK</STRONG>. Otherwise, it returns
+ <STRONG>ERR</STRONG>.
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The <EM>wcval</EM> argument may be a value generated by a call to <STRONG>setcchar</STRONG> or by
- a function that has a <STRONG>cchar_t</STRONG> output argument. If <EM>wcval</EM> is constructed
- by any other means, the effect is unspecified.
+ The <EM>wch</EM> argument may be a value generated by a call to <STRONG>setcchar</STRONG> or by a
+ function that has a <STRONG>cchar_t</STRONG> output argument. If <EM>wch</EM> is constructed by
+ any other means, the effect is unspecified.
-</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- When <EM>wch</EM> is a null pointer, <STRONG>getcchar</STRONG> returns the number of wide
- characters referenced by <EM>wcval</EM>, including one for a trailing null.
+</PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
+ X/Open Curses documents the <EM>opts</EM> argument as reserved for future use,
+ saying that it must be null. This implementation uses that parameter
+ in ABI 6 for the functions which have a color pair parameter to support
+ extended color pairs:
- When <EM>wch</EM> is not a null pointer, <STRONG>getcchar</STRONG> returns <STRONG>OK</STRONG> upon successful
- completion, and <STRONG>ERR</STRONG> otherwise.
+ <STRONG>o</STRONG> For functions which modify the color, e.g., <STRONG>setcchar</STRONG>, if <EM>opts</EM> is
+ set it is treated as a pointer to <STRONG>int</STRONG>, and used to set the color
+ pair instead of the <STRONG>short</STRONG> pair parameter.
- Upon successful completion, <STRONG>setcchar</STRONG> returns <STRONG>OK</STRONG>. Otherwise, it returns
- <STRONG>ERR</STRONG>.
+ <STRONG>o</STRONG> For functions which retrieve the color, e.g., <STRONG>getcchar</STRONG>, if <EM>opts</EM> is
+ set it is treated as a pointer to <STRONG>int</STRONG>, and used to retrieve the
+ color pair as an <STRONG>int</STRONG> value, in addition retrieving it via the
+ standard pointer to <STRONG>short</STRONG> parameter.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- The <STRONG>CCHARW_MAX</STRONG> symbol is specific to ncurses. X/Open Curses does not
+ The <STRONG>CCHARW_MAX</STRONG> symbol is specific to <EM>ncurses</EM>. X/Open Curses does not
provide details for the layout of the <STRONG>cchar_t</STRONG> structure. It tells what
data are stored in it:
@@ -174,7 +174,7 @@
<STRONG>o</STRONG> HP-UX 10 uses an opaque structure with 28 bytes, which is large
enough for the 6 <STRONG>wchar_t</STRONG> values.
- <STRONG>o</STRONG> Solaris xpg4 curses uses a single array of 6 <STRONG>wchar_t</STRONG> values.
+ <STRONG>o</STRONG> Solaris <EM>xpg4</EM> curses uses a single array of 6 <STRONG>wchar_t</STRONG> values.
This implementation's <STRONG>cchar_t</STRONG> was defined in 1995 using <STRONG>5</STRONG> for the total
of spacing and non-spacing characters (<STRONG>CCHARW_MAX</STRONG>). That was probably
@@ -192,11 +192,11 @@
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- Functions: <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>, <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG>wcwidth(3)</STRONG>.
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>, <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>, <STRONG>wcwidth(3)</STRONG>
- <STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -208,9 +208,9 @@
<li><a href="#h3-setcchar">setcchar</a></li>
</ul>
</li>
-<li><a href="#h2-EXTENSIONS">EXTENSIONS</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
+<li><a href="#h2-NOTES">NOTES</a></li>
+<li><a href="#h2-EXTENSIONS">EXTENSIONS</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
diff --git a/doc/html/man/curs_getch.3x.html b/doc/html/man/curs_getch.3x.html
index b4e6c5cd5211..fd8a8909f3e7 100644
--- a/doc/html/man/curs_getch.3x.html
+++ b/doc/html/man/curs_getch.3x.html
@@ -1,7 +1,7 @@
-<!--
+<!--
* t
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,362 +28,403 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_getch.3x,v 1.57 2020/12/19 21:38:20 tom Exp @
+ * @Id: curs_getch.3x,v 1.87 2024/04/20 19:18:18 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_getch 3x</TITLE>
+<TITLE>curs_getch 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_getch 3x</H1>
+<H1 class="no-header">curs_getch 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG> <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
+<STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
<STRONG>getch</STRONG>, <STRONG>wgetch</STRONG>, <STRONG>mvgetch</STRONG>, <STRONG>mvwgetch</STRONG>, <STRONG>ungetch</STRONG>, <STRONG>has_key</STRONG> - get (or push back)
- characters from <STRONG>curses</STRONG> terminal keyboard
+ characters from <EM>curses</EM> terminal keyboard
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
<STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
<STRONG>int</STRONG> <STRONG>getch(void);</STRONG>
- <STRONG>int</STRONG> <STRONG>wgetch(WINDOW</STRONG> <STRONG>*</STRONG><EM>win);</EM>
-
+ <STRONG>int</STRONG> <STRONG>wgetch(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>mvgetch(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>mvwgetch(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>ungetch(int</STRONG> <EM>ch</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>ungetch(int</STRONG> <EM>c</EM><STRONG>);</STRONG>
- /* extension */
- <STRONG>int</STRONG> <STRONG>has_key(int</STRONG> <EM>ch</EM><STRONG>);</STRONG>
+ <EM>/*</EM> <EM>extension</EM> <EM>*/</EM>
+ <STRONG>int</STRONG> <STRONG>has_key(int</STRONG> <EM>c</EM><STRONG>);</STRONG>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
-</PRE><H3><a name="h3-Reading-characters">Reading characters</a></H3><PRE>
- The <STRONG>getch</STRONG>, <STRONG>wgetch</STRONG>, <STRONG>mvgetch</STRONG> and <STRONG>mvwgetch</STRONG>, routines read a character from
- the window. In no-delay mode, if no input is waiting, the value <STRONG>ERR</STRONG> is
- returned. In delay mode, the program waits until the system passes
- text through to the program. Depending on the setting of <STRONG>cbreak</STRONG>, this
- is after one character (cbreak mode), or after the first newline
- (nocbreak mode). In half-delay mode, the program waits until a charac-
- ter is typed or the specified timeout has been reached.
-
- If <STRONG>echo</STRONG> is enabled, and the window is not a pad, then the character
- will also be echoed into the designated window according to the follow-
- ing rules:
-
- <STRONG>o</STRONG> If the character is the current erase character, left arrow, or
- backspace, the cursor is moved one space to the left and that
- screen position is erased as if <STRONG>delch</STRONG> had been called.
-
- <STRONG>o</STRONG> If the character value is any other <STRONG>KEY_</STRONG> define, the user is alert-
- ed with a <STRONG>beep</STRONG> call.
-
- <STRONG>o</STRONG> If the character is a carriage-return, and if <STRONG>nl</STRONG> is enabled, it is
- translated to a line-feed after echoing.
-
- <STRONG>o</STRONG> Otherwise the character is simply output to the screen.
-
- If the window is not a pad, and it has been moved or modified since the
- last call to <STRONG>wrefresh</STRONG>, <STRONG>wrefresh</STRONG> will be called before another character
- is read.
-
-
-</PRE><H3><a name="h3-Keypad-mode">Keypad mode</a></H3><PRE>
- If <STRONG>keypad</STRONG> is <STRONG>TRUE</STRONG>, and a function key is pressed, the token for that
- function key is returned instead of the raw characters:
-
- <STRONG>o</STRONG> The predefined function keys are listed in <STRONG>&lt;curses.h&gt;</STRONG> as macros
- with values outside the range of 8-bit characters. Their names be-
- gin with <STRONG>KEY_</STRONG>.
-
- <STRONG>o</STRONG> Other (user-defined) function keys which may be defined using <STRONG>de-</STRONG>
- <STRONG><A HREF="define_key.3x.html">fine_key(3x)</A></STRONG> have no names, but also are expected to have values
- outside the range of 8-bit characters.
-
- Thus, a variable intended to hold the return value of a function key
- must be of short size or larger.
-
- When a character that could be the beginning of a function key is re-
- ceived (which, on modern terminals, means an escape character), <STRONG>curses</STRONG>
- sets a timer. If the remainder of the sequence does not come in within
- the designated time, the character is passed through; otherwise, the
- function key value is returned. For this reason, many terminals expe-
- rience a delay between the time a user presses the escape key and the
- escape is returned to the program.
-
- In <STRONG>ncurses</STRONG>, the timer normally expires after the value in <STRONG>ESCDELAY</STRONG> (see
- <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>). If <STRONG>notimeout</STRONG> is <STRONG>TRUE</STRONG>, the timer does not expire;
- it is an infinite (or very large) value. Because function keys usually
- begin with an escape character, the terminal may appear to hang in no-
- timeout mode after pressing the escape key until another key is
- pressed.
-
-
-</PRE><H3><a name="h3-Ungetting-characters">Ungetting characters</a></H3><PRE>
- The <STRONG>ungetch</STRONG> routine places <EM>ch</EM> back onto the input queue to be returned
- by the next call to <STRONG>wgetch</STRONG>. There is just one input queue for all win-
- dows.
-
-
-</PRE><H3><a name="h3-Predefined-key-codes">Predefined key-codes</a></H3><PRE>
- The following special keys are defined in <STRONG>&lt;curses.h&gt;</STRONG>.
-
- <STRONG>o</STRONG> Except for the special case <STRONG>KEY_RESIZE</STRONG>, it is necessary to enable
- <STRONG>keypad</STRONG> for <STRONG>getch</STRONG> to return these codes.
-
- <STRONG>o</STRONG> Not all of these are necessarily supported on any particular termi-
- nal.
-
- <STRONG>o</STRONG> The naming convention may seem obscure, with some apparent mis-
- spellings (such as "RSUME" for "resume"). The names correspond to
- the long terminfo capability names for the keys, and were defined
- long ago, in the 1980s.
-
- <EM>Name</EM> <EM>Key</EM> <EM>name</EM>
- -------------------------------------------------
- KEY_BREAK Break key
- KEY_DOWN The four arrow keys ...
- KEY_UP
- KEY_LEFT
- KEY_RIGHT
- KEY_HOME Home key (upward+left arrow)
- KEY_BACKSPACE Backspace
- KEY_F0 Function keys; space for 64 keys
- is reserved.
- KEY_F(<EM>n</EM>) For 0 &lt;= <EM>n</EM> &lt;= 63
- KEY_DL Delete line
- KEY_IL Insert line
- KEY_DC Delete character
- KEY_IC Insert char or enter insert mode
- KEY_EIC Exit insert char mode
- KEY_CLEAR Clear screen
- KEY_EOS Clear to end of screen
- KEY_EOL Clear to end of line
- KEY_SF Scroll 1 line forward
- KEY_SR Scroll 1 line backward (reverse)
- KEY_NPAGE Next page
- KEY_PPAGE Previous page
- KEY_STAB Set tab
- KEY_CTAB Clear tab
- KEY_CATAB Clear all tabs
- KEY_ENTER Enter or send
- KEY_SRESET Soft (partial) reset
- KEY_RESET Reset or hard reset
-
- KEY_PRINT Print or copy
- KEY_LL Home down or bottom (lower left)
- KEY_A1 Upper left of keypad
- KEY_A3 Upper right of keypad
- KEY_B2 Center of keypad
- KEY_C1 Lower left of keypad
- KEY_C3 Lower right of keypad
- KEY_BTAB Back tab key
- KEY_BEG Beg(inning) key
- KEY_CANCEL Cancel key
- KEY_CLOSE Close key
- KEY_COMMAND Cmd (command) key
- KEY_COPY Copy key
- KEY_CREATE Create key
- KEY_END End key
- KEY_EXIT Exit key
- KEY_FIND Find key
- KEY_HELP Help key
- KEY_MARK Mark key
- KEY_MESSAGE Message key
- KEY_MOUSE Mouse event read
- KEY_MOVE Move key
- KEY_NEXT Next object key
- KEY_OPEN Open key
- KEY_OPTIONS Options key
- KEY_PREVIOUS Previous object key
- KEY_REDO Redo key
- KEY_REFERENCE Ref(erence) key
- KEY_REFRESH Refresh key
- KEY_REPLACE Replace key
- KEY_RESIZE Screen resized
- KEY_RESTART Restart key
- KEY_RESUME Resume key
- KEY_SAVE Save key
- KEY_SBEG Shifted beginning key
- KEY_SCANCEL Shifted cancel key
- KEY_SCOMMAND Shifted command key
- KEY_SCOPY Shifted copy key
- KEY_SCREATE Shifted create key
- KEY_SDC Shifted delete char key
- KEY_SDL Shifted delete line key
- KEY_SELECT Select key
- KEY_SEND Shifted end key
- KEY_SEOL Shifted clear line key
- KEY_SEXIT Shifted exit key
- KEY_SFIND Shifted find key
- KEY_SHELP Shifted help key
- KEY_SHOME Shifted home key
- KEY_SIC Shifted input key
- KEY_SLEFT Shifted left arrow key
- KEY_SMESSAGE Shifted message key
- KEY_SMOVE Shifted move key
- KEY_SNEXT Shifted next key
- KEY_SOPTIONS Shifted options key
- KEY_SPREVIOUS Shifted prev key
- KEY_SPRINT Shifted print key
- KEY_SREDO Shifted redo key
- KEY_SREPLACE Shifted replace key
- KEY_SRIGHT Shifted right arrow
- KEY_SRSUME Shifted resume key
- KEY_SSAVE Shifted save key
- KEY_SSUSPEND Shifted suspend key
- KEY_SUNDO Shifted undo key
- KEY_SUSPEND Suspend key
- KEY_UNDO Undo key
-
- Keypad is arranged like this:
-
- +-----+------+-------+
- | <STRONG>A1</STRONG> | <STRONG>up</STRONG> | <STRONG>A3</STRONG> |
- +-----+------+-------+
- |<STRONG>left</STRONG> | <STRONG>B2</STRONG> | <STRONG>right</STRONG> |
- +-----+------+-------+
- | <STRONG>C1</STRONG> | <STRONG>down</STRONG> | <STRONG>C3</STRONG> |
- +-----+------+-------+
- A few of these predefined values do <EM>not</EM> correspond to a real key:
-
- <STRONG>o</STRONG> <STRONG>KEY_RESIZE</STRONG> is returned when the <STRONG>SIGWINCH</STRONG> signal has been detected
- (see <STRONG><A HREF="curs_initscr.3x.html">initscr(3x)</A></STRONG> and <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>). This code is returned
- whether or not <STRONG>keypad</STRONG> has been enabled.
-
- <STRONG>o</STRONG> <STRONG>KEY_MOUSE</STRONG> is returned for mouse-events (see <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>). This
- code relies upon whether or not <STRONG><A HREF="curs_inopts.3x.html">keypad(3x)</A></STRONG> has been enabled, be-
- cause (e.g., with <EM>xterm</EM> mouse prototocol) ncurses must read escape
- sequences, just like a function key.
-
-
-</PRE><H3><a name="h3-Testing-key-codes">Testing key-codes</a></H3><PRE>
- The <STRONG>has_key</STRONG> routine takes a key-code value from the above list, and re-
- turns <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG> according to whether the current terminal type rec-
- ognizes a key with that value.
-
- The library also supports these extensions:
-
- <STRONG>define_key</STRONG>
- defines a key-code for a given string (see <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>).
-
- <STRONG>key_defined</STRONG>
- checks if there is a key-code defined for a given string (see
- <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>).
+</PRE><H3><a name="h3-Reading-Characters">Reading Characters</a></H3><PRE>
+ <STRONG>wgetch</STRONG> gathers a key stroke from the terminal keyboard associated with
+ a <EM>curses</EM> window <EM>win</EM>. <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> describes the variants of this
+ function.
+
+ When input is pending, <STRONG>wgetch</STRONG> returns an integer identifying the key
+ stroke; for alphanumeric and punctuation keys, this value corresponds
+ to the character encoding used by the terminal. Use of the control key
+ as a modifier often results in a distinct code. The behavior of other
+ keys depends on whether <EM>win</EM> is in keypad mode; see subsection "Keypad
+ Mode" below.
+
+ If no input is pending, then if the no-delay flag is set in the window
+ (see <STRONG><A HREF="nodelay.3x.html">nodelay(3x)</A></STRONG>), the function returns <STRONG>ERR</STRONG>; otherwise, <EM>curses</EM> waits
+ until the terminal has input. If <STRONG><A HREF="curs_inopts.3x.html">cbreak(3x)</A></STRONG> has been called, this
+ happens after one character is read. If <STRONG><A HREF="curs_inopts.3x.html">nocbreak(3x)</A></STRONG> has been called,
+ it occurs when the next newline is read. If <STRONG><A HREF="curs_inopts.3x.html">halfdelay(3x)</A></STRONG> has been
+ called, <EM>curses</EM> waits until a character is typed or the specified delay
+ elapses.
+
+ If <STRONG><A HREF="curs_inopts.3x.html">echo(3x)</A></STRONG> has been called, and the window is not a pad, <EM>curses</EM> writes
+ the returned character <EM>c</EM> to the window (at the cursor position) per the
+ following rules.
+
+ <STRONG>o</STRONG> If <EM>c</EM> matches the terminal's erase character, the cursor moves
+ leftward one position and the new position is erased as if
+ <STRONG><A HREF="curs_move.3x.html">wmove(3x)</A></STRONG> and then <STRONG><A HREF="curs_delch.3x.html">wdelch(3x)</A></STRONG> were called. When the window's
+ keypad mode is enabled (see below), <STRONG>KEY_LEFT</STRONG> and <STRONG>KEY_BACKSPACE</STRONG> are
+ handled the same way.
+
+ <STRONG>o</STRONG> <EM>curses</EM> writes any other <EM>c</EM> to the window, as with <STRONG><A HREF="curs_addch.3x.html">wechochar(3x)</A></STRONG>.
+
+ <STRONG>o</STRONG> If the window has been moved or modified since the last call to
+ <STRONG><A HREF="curs_refresh.3x.html">wrefresh(3x)</A></STRONG>, <EM>curses</EM> calls <STRONG>wrefresh</STRONG>.
+
+ If <EM>c</EM> is a carriage return and <STRONG><A HREF="curs_inopts.3x.html">nl(3x)</A></STRONG> has been called, <STRONG>wgetch</STRONG> returns
+ the character code for line feed instead.
+
+
+</PRE><H3><a name="h3-Keypad-Mode">Keypad Mode</a></H3><PRE>
+ To <EM>curses</EM>, key strokes not from the alphabetic section of the keyboard
+ (those corresponding to the ECMA-6 character set--see
+ <STRONG>ascii(7)</STRONG>--optionally modified by either the control or shift keys) are
+ treated as <EM>function</EM> keys. (In <EM>curses</EM>, the term "function key" includes
+ but is not limited to keycaps engraved with "F1", "PF1", and so on.)
+ If the window is in keypad mode, these produce a numeric code
+ corresponding to the <STRONG>KEY_</STRONG> symbols listed in subsection "Predefined Key
+ Codes" below; otherwise, they transmit a sequence of codes typically
+ starting with the escape character, and which must be collected with
+ multiple <STRONG>wgetch</STRONG> calls.
+
+ <STRONG>o</STRONG> The <EM>curses.h</EM> header file declares many <EM>predefined</EM> <EM>function</EM> <EM>keys</EM>
+ whose names begin with <STRONG>KEY_</STRONG>; these object-like macros have values
+ outside the range of eight-bit character codes.
+
+ <STRONG>o</STRONG> In <EM>ncurses</EM>, <EM>user-defined</EM> <EM>function</EM> <EM>keys</EM> are configured with
+ <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>; they have no names, but are also expected to have
+ values outside the range of eight-bit codes.
+
+ A variable intended to hold a function key code must thus be of type
+ <EM>short</EM> or larger.
+
+ Most terminals one encounters follow the ECMA-48 standard insofar as
+ their function keys produce character sequences prefixed with the
+ escape character ESC. This fact implies that <EM>curses</EM> cannot know
+ whether the terminal has sent an ESC key stroke or the beginning of a
+ function key's character sequence without waiting to see if, and how
+ soon, further input arrives. When <EM>curses</EM> reads such an ambiguous
+ character, it sets a timer. If the remainder of the sequence does not
+ arrive within the designated time, <STRONG>wgetch</STRONG> returns the prefix character;
+ otherwise, it returns the function key code corresponding to the unique
+ sequence defined by the terminal. Consequently, a user of a <EM>curses</EM>
+ application may experience a delay after pressing ESC while <EM>curses</EM>
+ disambiguates the input; see section "EXTENSIONS" below. If the window
+ is in "no time-out" mode, the timer does not expire; it is an infinite
+ (or very large) value. See <STRONG><A HREF="notimeout.3x.html">notimeout(3x)</A></STRONG>. Because function key
+ sequences usually begin with an escape character, the terminal may
+ appear to hang in no time-out mode after the user has pressed ESC.
+ Generally, further typing "awakens" <EM>curses</EM>.
+
+
+</PRE><H3><a name="h3-Ungetting-Characters">Ungetting Characters</a></H3><PRE>
+ <STRONG>ungetch</STRONG> places <EM>c</EM> into the input queue to be returned by the next call
+ to <STRONG>wgetch</STRONG>. A single input queue serves all windows.
+
+
+</PRE><H3><a name="h3-Predefined-Key-Codes">Predefined Key Codes</a></H3><PRE>
+ The header file <EM>curses.h</EM> defines the following function key codes.
+
+ <STRONG>o</STRONG> Except for the special case of <STRONG>KEY_RESIZE</STRONG>, a window's keypad mode
+ must be enabled for <STRONG>wgetch</STRONG> to read these codes from it.
+
+ <STRONG>o</STRONG> Not all of these are necessarily supported on any particular
+ terminal.
+
+ <STRONG>o</STRONG> The naming convention may seem obscure, with some apparent
+ misspellings (such as "RSUME" for "resume"); the names correspond
+ to the <EM>terminfo</EM> capability names for the keys, and were
+ standardized before the IBM PC/AT keyboard layout achieved a
+ dominant position in industry.
+
+ <STRONG>Symbol</STRONG> <STRONG>Key</STRONG> <STRONG>name</STRONG>
+ -----------------------------------------------------------------
+ <STRONG>KEY_BREAK</STRONG> Break key
+ <STRONG>KEY_DOWN</STRONG>
+ <STRONG>KEY_UP</STRONG> Arrow keys
+ <STRONG>KEY_LEFT</STRONG>
+ <STRONG>KEY_RIGHT</STRONG>
+ <STRONG>KEY_HOME</STRONG> Home key (upward+left arrow)
+ <STRONG>KEY_BACKSPACE</STRONG> Backspace
+ <STRONG>KEY_F0</STRONG> Function keys; space for 64 keys is reserved
+ <STRONG>KEY_F(</STRONG><EM>n</EM><STRONG>)</STRONG> Function key <EM>n</EM> where 0 &lt;= <EM>n</EM> &lt;= 63
+
+ <STRONG>KEY_DL</STRONG> Delete line
+ <STRONG>KEY_IL</STRONG> Insert line
+ <STRONG>KEY_DC</STRONG> Delete character
+ <STRONG>KEY_IC</STRONG> Insert character/Enter insert mode
+ <STRONG>KEY_EIC</STRONG> Exit insert character mode
+ <STRONG>KEY_CLEAR</STRONG> Clear screen
+ <STRONG>KEY_EOS</STRONG> Clear to end of screen
+ <STRONG>KEY_EOL</STRONG> Clear to end of line
+ <STRONG>KEY_SF</STRONG> Scroll one line forward
+ <STRONG>KEY_SR</STRONG> Scroll one line backward (reverse)
+ <STRONG>KEY_NPAGE</STRONG> Next page/Page up
+ <STRONG>KEY_PPAGE</STRONG> Previous page/Page down
+ <STRONG>KEY_STAB</STRONG> Set tab
+ <STRONG>KEY_CTAB</STRONG> Clear tab
+ <STRONG>KEY_CATAB</STRONG> Clear all tabs
+ <STRONG>KEY_ENTER</STRONG> Enter/Send
+ <STRONG>KEY_SRESET</STRONG> Soft (partial) reset
+ <STRONG>KEY_RESET</STRONG> (Hard) reset
+ <STRONG>KEY_PRINT</STRONG> Print/Copy
+ <STRONG>KEY_LL</STRONG> Home down/Bottom (lower left)
+ <STRONG>KEY_A1</STRONG> Upper left of keypad
+ <STRONG>KEY_A3</STRONG> Upper right of keypad
+ <STRONG>KEY_B2</STRONG> Center of keypad
+ <STRONG>KEY_C1</STRONG> Lower left of keypad
+ <STRONG>KEY_C3</STRONG> Lower right of keypad
+ <STRONG>KEY_BTAB</STRONG> Back tab key
+ <STRONG>KEY_BEG</STRONG> Beg(inning) key
+ <STRONG>KEY_CANCEL</STRONG> Cancel key
+ <STRONG>KEY_CLOSE</STRONG> Close key
+ <STRONG>KEY_COMMAND</STRONG> Cmd (command) key
+ <STRONG>KEY_COPY</STRONG> Copy key
+ <STRONG>KEY_CREATE</STRONG> Create key
+ <STRONG>KEY_END</STRONG> End key
+ <STRONG>KEY_EXIT</STRONG> Exit key
+ <STRONG>KEY_FIND</STRONG> Find key
+ <STRONG>KEY_HELP</STRONG> Help key
+ <STRONG>KEY_MARK</STRONG> Mark key
+ <STRONG>KEY_MESSAGE</STRONG> Message key
+ <STRONG>KEY_MOUSE</STRONG> Mouse event occurred
+ <STRONG>KEY_MOVE</STRONG> Move key
+ <STRONG>KEY_NEXT</STRONG> Next object key
+ <STRONG>KEY_OPEN</STRONG> Open key
+ <STRONG>KEY_OPTIONS</STRONG> Options key
+ <STRONG>KEY_PREVIOUS</STRONG> Previous object key
+ <STRONG>KEY_REDO</STRONG> Redo key
+ <STRONG>KEY_REFERENCE</STRONG> Ref(erence) key
+ <STRONG>KEY_REFRESH</STRONG> Refresh key
+ <STRONG>KEY_REPLACE</STRONG> Replace key
+ <STRONG>KEY_RESIZE</STRONG> Screen resized
+ <STRONG>KEY_RESTART</STRONG> Restart key
+ <STRONG>KEY_RESUME</STRONG> Resume key
+ <STRONG>KEY_SAVE</STRONG> Save key
+ <STRONG>KEY_SELECT</STRONG> Select key
+ <STRONG>KEY_SUSPEND</STRONG> Suspend key
+ <STRONG>KEY_UNDO</STRONG> Undo key
+ -----------------------------------------------------------------
+ <STRONG>KEY_SBEG</STRONG> Shifted beginning key
+ <STRONG>KEY_SCANCEL</STRONG> Shifted cancel key
+ <STRONG>KEY_SCOMMAND</STRONG> Shifted command key
+ <STRONG>KEY_SCOPY</STRONG> Shifted copy key
+ <STRONG>KEY_SCREATE</STRONG> Shifted create key
+ <STRONG>KEY_SDC</STRONG> Shifted delete character key
+ <STRONG>KEY_SDL</STRONG> Shifted delete line key
+ <STRONG>KEY_SEND</STRONG> Shifted end key
+ <STRONG>KEY_SEOL</STRONG> Shifted clear line key
+
+ <STRONG>KEY_SEXIT</STRONG> Shifted exit key
+ <STRONG>KEY_SFIND</STRONG> Shifted find key
+ <STRONG>KEY_SHELP</STRONG> Shifted help key
+ <STRONG>KEY_SHOME</STRONG> Shifted home key
+ <STRONG>KEY_SIC</STRONG> Shifted insert key
+ <STRONG>KEY_SLEFT</STRONG> Shifted left arrow key
+ <STRONG>KEY_SMESSAGE</STRONG> Shifted message key
+ <STRONG>KEY_SMOVE</STRONG> Shifted move key
+ <STRONG>KEY_SNEXT</STRONG> Shifted next object key
+ <STRONG>KEY_SOPTIONS</STRONG> Shifted options key
+ <STRONG>KEY_SPREVIOUS</STRONG> Shifted previous object key
+ <STRONG>KEY_SPRINT</STRONG> Shifted print key
+ <STRONG>KEY_SREDO</STRONG> Shifted redo key
+ <STRONG>KEY_SREPLACE</STRONG> Shifted replace key
+ <STRONG>KEY_SRIGHT</STRONG> Shifted right arrow key
+ <STRONG>KEY_SRSUME</STRONG> Shifted resume key
+ <STRONG>KEY_SSAVE</STRONG> Shifted save key
+ <STRONG>KEY_SSUSPEND</STRONG> Shifted suspend key
+ <STRONG>KEY_SUNDO</STRONG> Shifted undo key
+
+ Many keyboards feature a nine-key directional pad.
+
+ +-----+------+-------+
+ | A1 | up | A3 |
+ +-----+------+-------+
+ |left | B2 | right |
+ +-----+------+-------+
+ | C1 | down | C3 |
+ +-----+------+-------+
+ Two of the symbols in the list above do <EM>not</EM> correspond to a physical
+ key.
+
+ <STRONG>o</STRONG> <STRONG>wgetch</STRONG> returns <STRONG>KEY_RESIZE</STRONG>, even if the window's keypad mode is
+ disabled, when <EM>ncurses</EM> handles a <STRONG>SIGWINCH</STRONG> signal; see <STRONG><A HREF="curs_initscr.3x.html">initscr(3x)</A></STRONG>
+ and <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>.
+
+ <STRONG>o</STRONG> <STRONG>wgetch</STRONG> returns <STRONG>KEY_MOUSE</STRONG> to indicate that a mouse event is pending
+ collection; see <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>. Receipt of this code requires a
+ window's keypad mode to be enabled, because to interpret mouse
+ input (as with with <STRONG>xterm(1)</STRONG>'s mouse prototocol), <EM>ncurses</EM> must read
+ an escape sequence, as with a function key.
+
+
+</PRE><H3><a name="h3-Testing-Key-Codes">Testing Key Codes</a></H3><PRE>
+ In <EM>ncurses</EM>, <STRONG>has_key</STRONG> returns a Boolean value indicating whether the
+ terminal type recognizes its parameter as a key code value. See also
+ <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG> and <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>.
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- All routines return the integer <STRONG>ERR</STRONG> upon failure and an integer value
- other than <STRONG>ERR</STRONG> (<STRONG>OK</STRONG> in the case of <STRONG>ungetch</STRONG>) upon successful completion.
+ Except for <STRONG>has_key</STRONG>, these functions return <STRONG>OK</STRONG> on success and <STRONG>ERR</STRONG> on
+ failure.
+
+ Functions taking a <EM>WINDOW</EM> pointer argument fail if the pointer is <STRONG>NULL</STRONG>.
+
+ Functions prefixed with "mv" first perform cursor movement and fail if
+ the position (<EM>y</EM>, <EM>x</EM>) is outside the window boundaries.
+
+ <STRONG>wgetch</STRONG> also fails if
+
+ <STRONG>o</STRONG> its timeout expires without any data arriving, or
- <STRONG>ungetch</STRONG>
- returns <STRONG>ERR</STRONG> if there is no more room in the FIFO.
+ <STRONG>o</STRONG> execution was interrupted by a signal, in which case <STRONG>errno</STRONG> is set
+ to <STRONG>EINTR</STRONG>.
- <STRONG>wgetch</STRONG>
- returns <STRONG>ERR</STRONG> if the window pointer is null, or if its timeout
- expires without having any data, or if the execution was inter-
- rupted by a signal (<STRONG>errno</STRONG> will be set to <STRONG>EINTR</STRONG>).
+ <STRONG>ungetch</STRONG> fails if there is no more room in the input queue.
- Functions with a "mv" prefix first perform a cursor movement using
- <STRONG>wmove</STRONG>, and return an error if the position is outside the window, or if
- the window pointer is null.
+ <STRONG>has_key</STRONG> returns <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>.
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- Use of the escape key by a programmer for a single character function
- is discouraged, as it will cause a delay of up to one second while the
- keypad code looks for a following function-key sequence.
+ <EM>curses</EM> discourages assignment of the ESC key to a discrete function by
+ the programmer because the library requires a delay while it awaits the
+ potential remainder of a terminal escape sequence.
- Some keys may be the same as commonly used control keys, e.g., <STRONG>KEY_EN-</STRONG>
- <STRONG>TER</STRONG> versus control/M, <STRONG>KEY_BACKSPACE</STRONG> versus control/H. Some curses im-
- plementations may differ according to whether they treat these control
- keys specially (and ignore the terminfo), or use the terminfo defini-
- tions. <STRONG>Ncurses</STRONG> uses the terminfo definition. If it says that <STRONG>KEY_EN-</STRONG>
- <STRONG>TER</STRONG> is control/M, <STRONG>getch</STRONG> will return <STRONG>KEY_ENTER</STRONG> when you press control/M.
+ Some key strokes are indistinguishable from control characters; for
+ example, <STRONG>KEY_ENTER</STRONG> may be the same as <STRONG>^M</STRONG>, and <STRONG>KEY_BACKSPACE</STRONG> may be the
+ same as <STRONG>^H</STRONG> or <STRONG>^?</STRONG>. Consult the terminal's <EM>terminfo</EM> entry to determine
+ whether this is the case; see <STRONG><A HREF="infocmp.1m.html">infocmp(1)</A></STRONG>. Some <EM>curses</EM> implementations,
+ including <EM>ncurses</EM>, honor the <EM>terminfo</EM> key definitions; others treat
+ such control characters specially.
- Generally, <STRONG>KEY_ENTER</STRONG> denotes the character(s) sent by the <EM>Enter</EM> key on
- the numeric keypad:
+ <EM>curses</EM> distinguishes the Enter keys in the alphabetic and numeric
+ keypad sections of a keyboard because (most) terminals do. <STRONG>KEY_ENTER</STRONG>
+ refers to the key on the numeric keypad and, like other function keys,
+ and is reliably recognized only if the window's keypad mode is enabled.
- <STRONG>o</STRONG> the terminal description lists the most useful keys,
+ <STRONG>o</STRONG> The <EM>terminfo</EM> <STRONG>key_enter</STRONG> (<STRONG>kent</STRONG>) capability describes the character
+ (sequence) sent by the Enter key of a terminal's numeric (or
+ similar) keypad.
- <STRONG>o</STRONG> the <EM>Enter</EM> key on the regular keyboard is already handled by the
- standard ASCII characters for carriage-return and line-feed,
+ <STRONG>o</STRONG> "Enter or send" is X/Open Curses's description of this key.
- <STRONG>o</STRONG> depending on whether <STRONG>nl</STRONG> or <STRONG>nonl</STRONG> was called, pressing "Enter" on the
- regular keyboard may return either a carriage-return or line-feed,
- and finally
+ <EM>curses</EM> treats the Enter or Return key in the <EM>alphabetic</EM> section of the
+ keyboard differently.
- <STRONG>o</STRONG> "Enter or send" is the standard description for this key.
+ <STRONG>o</STRONG> It usually produces a control code for carriage return (<STRONG>^M</STRONG>) or line
+ feed (<STRONG>^J</STRONG>).
- When using <STRONG>getch</STRONG>, <STRONG>wgetch</STRONG>, <STRONG>mvgetch</STRONG>, or <STRONG>mvwgetch</STRONG>, nocbreak mode
- (<STRONG>nocbreak</STRONG>) and echo mode (<STRONG>echo</STRONG>) should not be used at the same time.
- Depending on the state of the tty driver when each character is typed,
- the program may produce undesirable results.
+ <STRONG>o</STRONG> Depending on the terminal mode (raw, cbreak, or "cooked"), and
+ whether <STRONG><A HREF="curs_inopts.3x.html">nl(3x)</A></STRONG> or <STRONG><A HREF="curs_inopts.3x.html">nonl(3x)</A></STRONG> has been called, <STRONG>wgetch</STRONG> may return
+ either a carriage return or line feed upon an Enter or Return key
+ stroke.
- Note that <STRONG>getch</STRONG>, <STRONG>mvgetch</STRONG>, and <STRONG>mvwgetch</STRONG> may be macros.
+ Use of <STRONG>wgetch</STRONG> with <STRONG><A HREF="curs_inopts.3x.html">echo(3x)</A></STRONG> and neither <STRONG><A HREF="curs_inopts.3x.html">cbreak(3x)</A></STRONG> nor <STRONG><A HREF="curs_inopts.3x.html">raw(3x)</A></STRONG> is not
+ well-defined.
- Historically, the set of keypad macros was largely defined by the ex-
- tremely function-key-rich keyboard of the AT&amp;T 7300, aka 3B1, aka Sa-
- fari 4. Modern personal computers usually have only a small subset of
- these. IBM PC-style consoles typically support little more than
- <STRONG>KEY_UP</STRONG>, <STRONG>KEY_DOWN</STRONG>, <STRONG>KEY_LEFT</STRONG>, <STRONG>KEY_RIGHT</STRONG>, <STRONG>KEY_HOME</STRONG>, <STRONG>KEY_END</STRONG>, <STRONG>KEY_NPAGE</STRONG>,
- <STRONG>KEY_PPAGE</STRONG>, and function keys 1 through 12. The Ins key is usually
- mapped to <STRONG>KEY_IC</STRONG>.
+ Historically, the list of key code macros above was influenced by the
+ function-key-rich keyboard of the AT&amp;T 7300 (also known variously as
+ the "3B1", "Safari 4", and "UNIX PC"), a 1985 machine. Today's
+ computer keyboards are based that of the IBM PC/AT and tend to have
+ fewer. A <EM>curses</EM> application can expect such a keyboard to transmit key
+ codes <STRONG>KEY_UP</STRONG>, <STRONG>KEY_DOWN</STRONG>, <STRONG>KEY_LEFT</STRONG>, <STRONG>KEY_RIGHT</STRONG>, <STRONG>KEY_HOME</STRONG>, <STRONG>KEY_END</STRONG>,
+ <STRONG>KEY_PPAGE</STRONG> (Page Up), <STRONG>KEY_NPAGE</STRONG> (Page Down), <STRONG>KEY_IC</STRONG> (Insert), <STRONG>KEY_DC</STRONG>
+ (Delete), and <STRONG>KEY_F(</STRONG><EM>n</EM><STRONG>)</STRONG> for 1 &lt;= <EM>n</EM> &lt;= 12.
+
+ <STRONG>getch</STRONG>, <STRONG>mvgetch</STRONG>, and <STRONG>mvwgetch</STRONG> may be implemented as macros.
+
+
+</PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
+ In <EM>ncurses</EM>, when a window's "no time-out" mode is <EM>not</EM> set, the <STRONG>ESCDELAY</STRONG>
+ variable configures the duration of the timer used to disambiguate a
+ function key character sequence from a series of key strokes beginning
+ with ESC typed by the user; see <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>.
+
+ <STRONG>has_key</STRONG> was designed for <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>, and is not found in SVr4 <EM>curses</EM>,
+ 4.4BSD <EM>curses</EM>, or any other previous curses implementation.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- The *get* functions are described in the XSI Curses standard, Issue 4.
- They read single-byte characters only. The standard specifies that
- they return <STRONG>ERR</STRONG> on failure, but specifies no error conditions.
+ Applications employing <EM>ncurses</EM> extensions should condition their use on
+ the visibility of the <STRONG>NCURSES_VERSION</STRONG> preprocessor macro.
- The echo behavior of these functions on input of <STRONG>KEY_</STRONG> or backspace
- characters was not specified in the SVr4 documentation. This descrip-
- tion is adopted from the XSI Curses standard.
+ X/Open Curses, Issue 4 describes <STRONG>getch</STRONG>, <STRONG>wgetch</STRONG>, <STRONG>mvgetch</STRONG>, <STRONG>mvwgetch</STRONG>, and
+ <STRONG>ungetch</STRONG>. It specifies no error conditions for them.
- The behavior of <STRONG>getch</STRONG> and friends in the presence of handled signals is
- unspecified in the SVr4 and XSI Curses documentation. Under historical
- curses implementations, it varied depending on whether the operating
- system's implementation of handled signal receipt interrupts a <STRONG>read(2)</STRONG>
- call in progress or not, and also (in some implementations) depending
- on whether an input timeout or non-blocking mode has been set.
+ <STRONG>wgetch</STRONG> reads only single-byte characters.
- <STRONG>KEY_MOUSE</STRONG> is mentioned in XSI Curses, along with a few related terminfo
- capabilities, but no higher-level functions use the feature. The im-
- plementation in ncurses is an extension.
+ The echo behavior of these functions on input of <STRONG>KEY_</STRONG> or backspace
+ characters was not specified in the SVr4 documentation. This
+ description is adapted from X/Open Curses.
- <STRONG>KEY_RESIZE</STRONG> is an extension first implemented for ncurses. NetBSD curs-
- es later added this extension.
+ The behavior of <STRONG>wgetch</STRONG> in the presence of signal handlers is
+ unspecified in the SVr4 documentation and X/Open Curses. In historical
+ <EM>curses</EM> implementations, it varied depending on whether the operating
+ system's dispatch of a signal to a handler interrupting a <STRONG>read(2)</STRONG> call
+ in progress, and also (in some implementations) whether an input
+ timeout or non-blocking mode has been set. Programmers concerned about
+ portability should be prepared for either of two cases: (a) signal
+ receipt does not interrupt <STRONG>wgetch</STRONG>; or (b) signal receipt interrupts
+ <STRONG>wgetch</STRONG> and causes it to return <STRONG>ERR</STRONG> with <STRONG>errno</STRONG> set to <STRONG>EINTR</STRONG>.
- Programmers concerned about portability should be prepared for either
- of two cases: (a) signal receipt does not interrupt <STRONG>getch</STRONG>; (b) signal
- receipt interrupts <STRONG>getch</STRONG> and causes it to return <STRONG>ERR</STRONG> with <STRONG>errno</STRONG> set to
- <STRONG>EINTR</STRONG>.
+ <STRONG>KEY_MOUSE</STRONG> is mentioned in X/Open Curses, along with a few related <EM>term-</EM>
+ <EM>info</EM> capabilities, but no higher-level functions use the feature. The
+ implementation in <EM>ncurses</EM> is an extension.
- The <STRONG>has_key</STRONG> function is unique to <STRONG>ncurses</STRONG>. We recommend that any code
- using it be conditionalized on the <STRONG>NCURSES_VERSION</STRONG> feature macro.
+ <STRONG>KEY_RESIZE</STRONG> and <STRONG>has_key</STRONG> are extensions first implemented for <EM>ncurses</EM>.
+ By 2022, <EM>PDCurses</EM> and NetBSD <EM>curses</EM> had added them along with
+ <STRONG>KEY_MOUSE</STRONG>.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>, <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>, <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>, <STRONG>curs_out-</STRONG>
- <STRONG><A HREF="curs_outopts.3x.html">opts(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>.
+ <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG> describes comparable functions of the <EM>ncurses</EM> library
+ in its wide-character configuration (<EM>ncursesw</EM>).
+
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>, <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>, <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>,
+ <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>, <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>,
+ <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>, <STRONG>ascii(7)</STRONG>
+
+ ECMA-6 "7-bit coded Character Set" &lt;https://ecma-international.org/
+ publications-and-standards/standards/ecma-6/&gt;
- Comparable functions in the wide-character (ncursesw) library are de-
- scribed in <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>.
+ ECMA-48 "Control Functions for Coded Character Sets" &lt;https://
+ ecma-international.org/publications-and-standards/standards/ecma-48/&gt;
- <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -391,15 +432,16 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
<ul>
-<li><a href="#h3-Reading-characters">Reading characters</a></li>
-<li><a href="#h3-Keypad-mode">Keypad mode</a></li>
-<li><a href="#h3-Ungetting-characters">Ungetting characters</a></li>
-<li><a href="#h3-Predefined-key-codes">Predefined key-codes</a></li>
-<li><a href="#h3-Testing-key-codes">Testing key-codes</a></li>
+<li><a href="#h3-Reading-Characters">Reading Characters</a></li>
+<li><a href="#h3-Keypad-Mode">Keypad Mode</a></li>
+<li><a href="#h3-Ungetting-Characters">Ungetting Characters</a></li>
+<li><a href="#h3-Predefined-Key-Codes">Predefined Key Codes</a></li>
+<li><a href="#h3-Testing-Key-Codes">Testing Key Codes</a></li>
</ul>
</li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
<li><a href="#h2-NOTES">NOTES</a></li>
+<li><a href="#h2-EXTENSIONS">EXTENSIONS</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
diff --git a/doc/html/man/curs_getstr.3x.html b/doc/html/man/curs_getstr.3x.html
index 5d8a2c0e5cc5..0142df971c21 100644
--- a/doc/html/man/curs_getstr.3x.html
+++ b/doc/html/man/curs_getstr.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2010,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,31 +27,28 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_getstr.3x,v 1.31 2020/10/18 00:27:44 tom Exp @
- * X/Open says also until EOf
- * X/Open says then an EOS is added to the result
- * X/Open doesn't mention n&lt;0
+ * @Id: curs_getstr.3x,v 1.58 2024/04/20 19:18:18 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_getstr 3x</TITLE>
+<TITLE>curs_getstr 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_getstr 3x</H1>
+<H1 class="no-header">curs_getstr 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG> <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
+<STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>getstr</STRONG>, <STRONG>getnstr</STRONG>, <STRONG>wgetstr</STRONG>, <STRONG>wgetnstr</STRONG>, <STRONG>mvgetstr</STRONG>, <STRONG>mvgetnstr</STRONG>, <STRONG>mvwgetstr</STRONG>,
- <STRONG>mvwgetnstr</STRONG> - accept character strings from <STRONG>curses</STRONG> terminal keyboard
+ <STRONG>getstr</STRONG>, <STRONG>getnstr</STRONG>, <STRONG>wgetstr</STRONG>, <STRONG>wgetnstr</STRONG>, <STRONG>mvgetstr</STRONG>, <STRONG>mvgetnstr</STRONG>, <STRONG>mvwgetstr</STRONG>,
+ <STRONG>mvwgetnstr</STRONG> - accept character strings from <EM>curses</EM> terminal keyboard
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -69,77 +66,109 @@
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- The function <STRONG>getstr</STRONG> is equivalent to a series of calls to <STRONG>getch</STRONG>, until
- a newline or carriage return is received (the terminating character is
- not included in the returned string). The resulting value is placed in
- the area pointed to by the character pointer <EM>str</EM>, followed by a NUL.
+ The function <STRONG>wgetnstr</STRONG> is equivalent to a series of calls to <STRONG><A HREF="curs_getch.3x.html">wgetch(3x)</A></STRONG>,
+ until a newline or carriage return terminates the series:
+
+ <STRONG>o</STRONG> The terminating character is not included in the returned string.
+
+ <STRONG>o</STRONG> In all instances, the end of the string is terminated by a NUL.
+
+ <STRONG>o</STRONG> The function stores the result in the area pointed to by the <EM>str</EM>
+ parameter.
+
+ <STRONG>o</STRONG> The function reads at most <EM>n</EM> characters, thus preventing a possible
+ overflow of the input buffer.
+
+ Any attempt to enter more characters (other than the terminating
+ newline or carriage return) causes a beep.
+
+ Function keys also cause a beep and are ignored.
- <STRONG>wgetnstr</STRONG> reads at most <EM>n</EM> characters, thus preventing a possible over-
- flow of the input buffer. Any attempt to enter more characters (other
- than the terminating newline or carriage return) causes a beep. Func-
- tion keys also cause a beep and are ignored. The <STRONG>getnstr</STRONG> function
- reads from the <EM>stdscr</EM> default window.
+ The user's <EM>erase</EM> and <EM>kill</EM> characters are interpreted:
- The user's erase and kill characters are interpreted. If keypad mode
- is on for the window, <STRONG>KEY_LEFT</STRONG> and <STRONG>KEY_BACKSPACE</STRONG> are both considered
- equivalent to the user's kill character.
+ <STRONG>o</STRONG> The <EM>erase</EM> character (e.g., <STRONG>^H</STRONG>) erases the character at the end of
+ the buffer, moving the cursor to the left.
+
+ If <EM>keypad</EM> mode is on for the window, <STRONG>KEY_LEFT</STRONG> and <STRONG>KEY_BACKSPACE</STRONG> are
+ both considered equivalent to the user's <EM>erase</EM> character.
+
+ <STRONG>o</STRONG> The <EM>kill</EM> character (e.g., <STRONG>^U</STRONG>) erases the entire buffer, leaving the
+ cursor at the beginning of the buffer.
Characters input are echoed only if <STRONG>echo</STRONG> is currently on. In that
- case, backspace is echoed as deletion of the previous character (typi-
- cally a left motion).
+ case, backspace is echoed as deletion of the previous character
+ (typically a left motion).
+
+ The <STRONG>getnstr</STRONG>, <STRONG>mvgetnstr</STRONG>, <STRONG>mvwgetnstr</STRONG>, and <STRONG>wgetnstr</STRONG> functions are
+ identical to the <STRONG>getstr</STRONG>, <STRONG>mvgetstr</STRONG>, <STRONG>mvwgetstr</STRONG>, and <STRONG>wgetstr</STRONG> functions,
+ respectively, except that the <STRONG>*n*</STRONG> versions read at most <EM>n</EM> characters,
+ letting the application prevent overflow of the input buffer.
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- All routines return the integer <STRONG>ERR</STRONG> upon failure and an <STRONG>OK</STRONG> (SVr4 speci-
- fies only "an integer value other than <STRONG>ERR</STRONG>") upon successful comple-
- tion.
+ All of these functions return the integer <STRONG>OK</STRONG> upon successful
+ completion. (SVr4 specifies only "an integer value other than <STRONG>ERR</STRONG>") If
+ unsuccessful, they return <STRONG>ERR</STRONG>.
X/Open defines no error conditions.
- In this implementation, these functions return an error if the window
- pointer is null, or if its timeout expires without having any data.
+ In this implementation, these functions return an error
+
+ <STRONG>o</STRONG> if the window pointer is null,
+
+ <STRONG>o</STRONG> if its timeout expires without having any data, or
+
+ <STRONG>o</STRONG> if the associated call to <STRONG>wgetch</STRONG> failed.
- This implementation provides an extension as well. If a <STRONG>SIGWINCH</STRONG> in-
- terrupts the function, it will return <STRONG>KEY_RESIZE</STRONG> rather than <STRONG>OK</STRONG> or <STRONG>ERR</STRONG>.
+ This implementation provides an extension as well. If a <STRONG>SIGWINCH</STRONG>
+ interrupts the function, it will return <STRONG>KEY_RESIZE</STRONG> rather than <STRONG>OK</STRONG> or
+ <STRONG>ERR</STRONG>.
- Functions with a "mv" prefix first perform a cursor movement using
- <STRONG>wmove</STRONG>, and return an error if the position is outside the window, or if
- the window pointer is null.
+ Functions prefixed with "mv" first perform cursor movement and fail if
+ the position (<EM>y</EM>, <EM>x</EM>) is outside the window boundaries.
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- Note that <STRONG>getstr</STRONG>, <STRONG>mvgetstr</STRONG>, and <STRONG>mvwgetstr</STRONG> may be macros.
+ Any of these functions other than <STRONG>wgetnstr</STRONG> may be macros.
+
+ Using <STRONG>getstr</STRONG>, <STRONG>mvgetstr</STRONG>, <STRONG>mvwgetstr</STRONG>, or <STRONG>wgetstr</STRONG> to read a line that
+ overflows the array pointed to by <STRONG>str</STRONG> causes undefined results. The
+ use of <STRONG>getnstr</STRONG>, <STRONG>mvgetnstr</STRONG>, <STRONG>mvwgetnstr</STRONG>, or <STRONG>wgetnstr</STRONG>, respectively, is
+ recommended.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These functions are described in the XSI Curses standard, Issue 4.
- They read single-byte characters only. The standard does not define
- any error conditions. This implementation returns <STRONG>ERR</STRONG> if the window
- pointer is null, or if the lower-level <STRONG><A HREF="curs_getch.3x.html">wgetch(3x)</A></STRONG> call returns an <STRONG>ERR</STRONG>.
+ These functions are described in The Single Unix Specification, Version
+ 2. No error conditions are defined.
+
+ This implementation returns <STRONG>ERR</STRONG> if the window pointer is null, or if
+ the lower-level <STRONG><A HREF="curs_getch.3x.html">wgetch(3x)</A></STRONG> call returns an <STRONG>ERR</STRONG>.
SVr3 and early SVr4 curses implementations did not reject function
keys; the SVr4.0 documentation claimed that "special keys" (such as
- function keys, "home" key, "clear" key, <EM>etc</EM>.) are "interpreted", with-
- out giving details. It lied. In fact, the "character" value appended
- to the string by those implementations was predictable but not useful
- (being, in fact, the low-order eight bits of the key's KEY_ value).
+ function keys, "home" key, "clear" key, <EM>etc</EM>.) are "interpreted",
+ without giving details. It lied. In fact, the "character" value
+ appended to the string by those implementations was predictable but not
+ useful (being, in fact, the low-order eight bits of the key's KEY_
+ value).
- The functions <STRONG>getnstr</STRONG>, <STRONG>mvgetnstr</STRONG>, and <STRONG>mvwgetnstr</STRONG> were present but not
+ The functions <STRONG>getnstr</STRONG>, <STRONG>mvgetnstr</STRONG>, and <STRONG>mvwgetnstr</STRONG> were present but not
documented in SVr4.
X/Open Curses, Issue 5 (2007) stated that these functions "read at most
- <EM>n</EM> bytes" but did not state whether the terminating NUL is counted in
- that limit. X/Open Curses, Issue 7 (2009) changed that to say they
+ <EM>n</EM> bytes" but did not state whether the terminating NUL is counted in
+ that limit. X/Open Curses, Issue 7 (2009) changed that to say they
"read at most <EM>n</EM>-1 bytes" to allow for the terminating NUL. As of 2018,
- some implementations do, some do not count it:
+ some implementations count it, some do not:
- <STRONG>o</STRONG> ncurses 6.1 and PDCurses do not count the NUL in the given limit,
+ <STRONG>o</STRONG> <EM>ncurses</EM> 6.1 and PDCurses do not count the NUL in the given limit,
while
<STRONG>o</STRONG> Solaris SVr4 and NetBSD curses count the NUL as part of the limit.
- <STRONG>o</STRONG> Solaris xcurses provides both: its wide-character <STRONG>wget_nstr</STRONG> re-
- serves a NUL, but its <STRONG>wgetnstr</STRONG> does not count the NUL consistently.
+ <STRONG>o</STRONG> Solaris xcurses provides both: its wide-character <STRONG>wget_nstr</STRONG>
+ reserves a NUL, but its <STRONG>wgetnstr</STRONG> does not count the NUL
+ consistently.
In SVr4 curses, a negative value of <EM>n</EM> tells <STRONG>wgetnstr</STRONG> to assume that the
caller's buffer is large enough to hold the result, i.e., to act like
@@ -159,23 +188,61 @@
A comment in NetBSD's source code states that this is specified in
SUSv2.
- <STRONG>o</STRONG> ncurses (before 6.2) assumes no particular limit for the result
+ <STRONG>o</STRONG> <EM>ncurses</EM> (before 6.2) assumes no particular limit for the result
from <STRONG>wgetstr</STRONG>, and treats the <EM>n</EM> parameter of <STRONG>wgetnstr</STRONG> like SVr4
curses.
- <STRONG>o</STRONG> ncurses 6.2 uses <STRONG>LINE_MAX</STRONG>, or a larger (system-dependent) value
+ <STRONG>o</STRONG> <EM>ncurses</EM> 6.2 uses <STRONG>LINE_MAX</STRONG>, or a larger (system-dependent) value
which the <STRONG>sysconf</STRONG> function may provide. If neither <STRONG>LINE_MAX</STRONG> or
- <STRONG>sysconf</STRONG> is available, ncurses uses the POSIX value for <STRONG>LINE_MAX</STRONG> (a
- 2048 byte limit). In either case, it reserves a byte for the ter-
- minating NUL.
+ <STRONG>sysconf</STRONG> is available, <EM>ncurses</EM> uses the POSIX value for <STRONG>LINE_MAX</STRONG> (a
+ 2048 byte limit). In either case, it reserves a byte for the
+ terminating NUL.
+
+ Although <STRONG>getnstr</STRONG> is equivalent to a series of calls to <STRONG>getch</STRONG>, it also
+ makes changes to the curses modes to allow simple editing of the input
+ buffer:
+
+ <STRONG>o</STRONG> <STRONG>getnstr</STRONG> saves the current value of the <STRONG>nl</STRONG>, <STRONG>echo</STRONG>, <STRONG>raw</STRONG> and <STRONG>cbreak</STRONG>
+ modes, and sets <STRONG>nl</STRONG>, <STRONG>noecho</STRONG>, <STRONG>noraw</STRONG>, and <STRONG>cbreak</STRONG>.
+
+ <STRONG>getnstr</STRONG> handles the echoing of characters, rather than relying on
+ the caller to set an appropriate mode.
+
+ <STRONG>o</STRONG> It also obtains the <EM>erase</EM> and <EM>kill</EM> characters from <STRONG>erasechar</STRONG> and
+ <STRONG>killchar</STRONG>, respectively.
+
+ <STRONG>o</STRONG> On return, <STRONG>getnstr</STRONG> restores the modes to their previous values.
+
+ Other implementations differ in their treatment of special characters:
+
+ <STRONG>o</STRONG> While they may set the <EM>echo</EM> mode, other implementations do not
+ modify the <EM>raw</EM> mode, They may take the <EM>cbreak</EM> mode set by the
+ caller into account when deciding whether to handle echoing within
+ <STRONG>getnstr</STRONG> or as a side-effect of the <STRONG>getch</STRONG> calls.
+
+ <STRONG>o</STRONG> The original <EM>ncurses</EM> (as <EM>pcurses</EM> in 1986) set <STRONG>noraw</STRONG> and <STRONG>cbreak</STRONG> when
+ accepting input for <STRONG>getnstr</STRONG>. That may have been done to make
+ function- and cursor-keys work; it is not necessary with <EM>ncurses</EM>.
+
+ Since 1995, <EM>ncurses</EM> has provided signal handlers for INTR and QUIT
+ (e.g., <STRONG>^C</STRONG> or <STRONG>^\</STRONG>). With the <STRONG>noraw</STRONG> and <STRONG>cbreak</STRONG> settings, those may
+ catch a signal and stop the program, where other implementations
+ allow one to enter those characters in the buffer.
+
+ <STRONG>o</STRONG> Starting in 2021 (<EM>ncurses</EM> 6.3), <STRONG>getnstr</STRONG> sets <STRONG>raw</STRONG>, rather than <STRONG>noraw</STRONG>
+ and <STRONG>cbreak</STRONG> for better compatibility with SVr4-curses, e.g.,
+ allowing one to enter a <STRONG>^C</STRONG> into the buffer.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>.
+ <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG> describes comparable functions of the <EM>ncurses</EM> library
+ in its wide-character configuration (<EM>ncursesw</EM>).
+
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>, <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>
- <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
diff --git a/doc/html/man/curs_getyx.3x.html b/doc/html/man/curs_getyx.3x.html
index 7543eb2f6f30..1857170022bd 100644
--- a/doc/html/man/curs_getyx.3x.html
+++ b/doc/html/man/curs_getyx.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020-2023,2024 Thomas E. Dickey *
* Copyright 1998-2007,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,27 +27,27 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_getyx.3x,v 1.20 2020/10/24 09:38:43 tom Exp @
+ * @Id: curs_getyx.3x,v 1.44 2024/04/20 21:20:07 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_getyx 3x</TITLE>
+<TITLE>curs_getyx 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_getyx 3x</H1>
+<H1 class="no-header">curs_getyx 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG> <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
+<STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>getyx</STRONG>, <STRONG>getparyx</STRONG>, <STRONG>getbegyx</STRONG>, <STRONG>getmaxyx</STRONG> - get <STRONG>curses</STRONG> cursor and window
+ <STRONG>getyx</STRONG>, <STRONG>getparyx</STRONG>, <STRONG>getbegyx</STRONG>, <STRONG>getmaxyx</STRONG> - get <EM>curses</EM> cursor and window
coordinates
@@ -78,27 +78,27 @@
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- All of these interfaces are macros. A "<STRONG>&amp;</STRONG>" is not necessary before the
+ All of these interfaces are macros. A "&amp;" is not necessary before the
variables <EM>y</EM> and <EM>x</EM>.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- The <STRONG>getyx</STRONG>, <STRONG>getparyx</STRONG>, <STRONG>getbegyx</STRONG> and <STRONG>getmaxyx</STRONG> macros are described in the
- XSI Curses standard, Issue 4.
+ The <STRONG>getyx</STRONG>, <STRONG>getparyx</STRONG>, <STRONG>getbegyx</STRONG> and <STRONG>getmaxyx</STRONG> macros are described in
+ X/Open Curses, Issue 4.
This implementation also provides functions <STRONG>getbegx</STRONG>, <STRONG>getbegy</STRONG>, <STRONG>getcurx</STRONG>,
<STRONG>getcury</STRONG>, <STRONG>getmaxx</STRONG>, <STRONG>getmaxy</STRONG>, <STRONG>getparx</STRONG> and <STRONG>getpary</STRONG> for compatibility with
- older versions of curses.
+ older versions of <EM>curses</EM>; see <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>.
Although X/Open Curses does not address this, many implementations
- provide members of the WINDOW structure containing values corresponding
+ provide members of the <STRONG>WINDOW</STRONG> structure containing values corresponding
to these macros. For best portability, do not rely on using the data
- in WINDOW, since some implementations make WINDOW opaque (do not allow
+ in <STRONG>WINDOW</STRONG>, since some implementations make <STRONG>WINDOW</STRONG> opaque (do not allow
direct use of its members).
Besides the problem of opaque structures, the data stored in like-named
members may not have like-values in different implementations. For
- example, the WINDOW._maxx and WINDOW._maxy values in ncurses have (at
+ example, the <STRONG>WINDOW._maxx</STRONG> and <STRONG>WINDOW._maxy</STRONG> values in <EM>ncurses</EM> have (at
least since release 1.8.1) differed by one from some other
implementations. The difference is hidden by means of the macro
<STRONG>getmaxyx</STRONG>.
@@ -109,7 +109,7 @@
- <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
diff --git a/doc/html/man/curs_in_wch.3x.html b/doc/html/man/curs_in_wch.3x.html
index 7fed34ba9edd..1ea5b63ec42b 100644
--- a/doc/html/man/curs_in_wch.3x.html
+++ b/doc/html/man/curs_in_wch.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 2002-2010,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,55 +27,54 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_in_wch.3x,v 1.10 2020/10/17 23:19:29 tom Exp @
+ * @Id: curs_in_wch.3x,v 1.31 2024/04/20 21:20:07 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_in_wch 3x</TITLE>
+<TITLE>curs_in_wch 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_in_wch 3x</H1>
+<H1 class="no-header">curs_in_wch 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG> <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
+<STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>in_wch</STRONG>, <STRONG>mvin_wch</STRONG>, <STRONG>mvwin_wch</STRONG>, <STRONG>win_wch</STRONG> - extract a complex character and
- rendition from a window
+ <STRONG>in_wch</STRONG>, <STRONG>mvin_wch</STRONG>, <STRONG>mvwin_wch</STRONG>, <STRONG>win_wch</STRONG> - get a <EM>curses</EM> complex character
+ from a window
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
<STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
- <STRONG>int</STRONG> <STRONG>in_wch(cchar_t</STRONG> <STRONG>*</STRONG><EM>wcval</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>win_wch(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wcval</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>in_wch(cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>win_wch(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>mvin_wch(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wcval</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>mvwin_wch(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wcval</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>mvin_wch(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>mvwin_wch(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
These functions extract the complex character and rendition from the
current position in the named window into the <STRONG>cchar_t</STRONG> object referenced
- by wcval.
+ by wch.
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- No errors are defined in the XSI Curses standard. This implementation
- checks for null pointers, returns <STRONG>ERR</STRONG> in that case. Also, the <EM>mv</EM>
- routines check for error moving the cursor, returning <STRONG>ERR</STRONG> in that case.
- Otherwise they return <STRONG>OK</STRONG>.
+ No errors are defined in X/Open Curses. This implementation checks for
+ null pointers, returns <STRONG>ERR</STRONG> in that case. Also, the <EM>mv</EM> routines check
+ for error moving the cursor, returning <STRONG>ERR</STRONG> in that case. Otherwise
+ they return <STRONG>OK</STRONG>.
- Functions with a "mv" prefix first perform a cursor movement using
- <STRONG>wmove</STRONG>, and return an error if the position is outside the window, or if
- the window pointer is null.
+ Functions prefixed with "mv" first perform cursor movement and fail if
+ the position (<EM>y</EM>, <EM>x</EM>) is outside the window boundaries.
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
@@ -83,15 +82,18 @@
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These functions are described in the XSI Curses standard, Issue 4.
+ These functions are described in X/Open Curses, Issue 4.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>.
+ <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG> describes comparable functions of the <EM>ncurses</EM> library in
+ its non-wide-character configuration.
+
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
- <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
diff --git a/doc/html/man/curs_in_wchstr.3x.html b/doc/html/man/curs_in_wchstr.3x.html
index f1b048f51307..d7af18ddcfdf 100644
--- a/doc/html/man/curs_in_wchstr.3x.html
+++ b/doc/html/man/curs_in_wchstr.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 2002-2012,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,92 +27,106 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_in_wchstr.3x,v 1.14 2020/10/17 23:19:44 tom Exp @
+ * @Id: curs_in_wchstr.3x,v 1.39 2024/04/20 21:24:19 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_in_wchstr 3x</TITLE>
+<TITLE>curs_in_wchstr 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_in_wchstr 3x</H1>
+<H1 class="no-header">curs_in_wchstr 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG> <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
+<STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>in_wchstr</STRONG>, <STRONG>in_wchnstr</STRONG>, <STRONG>win_wchstr</STRONG>, <STRONG>win_wchnstr</STRONG>, <STRONG>mvin_wchstr</STRONG>,
- <STRONG>mvin_wchnstr</STRONG>, <STRONG>mvwin_wchstr</STRONG>, <STRONG>mvwin_wchnstr</STRONG> - get an array of complex
- characters and renditions from a curses window
+ <STRONG>in_wchstr</STRONG>, <STRONG>in_wchnstr</STRONG>, <STRONG>win_wchstr</STRONG>, <STRONG>win_wchnstr</STRONG>, <STRONG>mvin_wchstr</STRONG>,
+ <STRONG>mvin_wchnstr</STRONG>, <STRONG>mvwin_wchstr</STRONG>, <STRONG>mvwin_wchnstr</STRONG> - get a <EM>curses</EM> complex
+ character string from a window
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
<STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
<STRONG>int</STRONG> <STRONG>in_wchstr(cchar_t</STRONG> <STRONG>*</STRONG><EM>wchstr</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>in_wchnstr(cchar_t</STRONG> <STRONG>*</STRONG><EM>wchstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>win_wchstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wchstr</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>win_wchnstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wchstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
-
<STRONG>int</STRONG> <STRONG>mvin_wchstr(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wchstr</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>mvin_wchnstr(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wchstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>mvwin_wchstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wchstr</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>mvwin_wchnstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wchstr</EM>, int <EM>n</EM><STRONG>);</STRONG>
-
-</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- These functions return an array of complex characters in <EM>wchstr</EM>, start-
- ing at the current cursor position in the named window. Attributes
- (rendition) are stored with the characters.
+ <STRONG>int</STRONG> <STRONG>in_wchnstr(cchar_t</STRONG> <STRONG>*</STRONG><EM>wchstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>win_wchnstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wchstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>mvin_wchnstr(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wchstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>mvwin_wchnstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wchstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
- The <STRONG>in_wchnstr</STRONG>, <STRONG>mvin_wchnstr</STRONG>, <STRONG>mvwin_wchnstr</STRONG> and <STRONG>win_wchnstr</STRONG> fill the
- array with at most <EM>n</EM> <STRONG>cchar_t</STRONG> elements.
+</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
+ These functions return an array of complex characters in <EM>wchstr</EM>,
+ starting at the current cursor position in the named window.
+ Attributes (rendition) are stored with the characters.
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- Note that all routines except <STRONG>win_wchnstr</STRONG> may be macros.
+ The four functions with <EM>n</EM> as the last argument return a leading
+ substring at most <EM>n</EM> characters long (exclusive of the trailing zeroed
+ <STRONG>cchar_t</STRONG>. Transfer stops at the end of the current line, or when <EM>n</EM>
+ characters have been stored at the location referenced by <EM>wchstr</EM>.
- Reading a line that overflows the array pointed to by <EM>wchstr</EM> with
- <STRONG>in_wchstr</STRONG>, <STRONG>mvin_wchstr</STRONG>, <STRONG>mvwin_wchstr</STRONG> or <STRONG>win_wchstr</STRONG> causes undefined re-
- sults. Therefore, the use of <STRONG>in_wchnstr</STRONG>, <STRONG>mvin_wchnstr</STRONG>, <STRONG>mvwin_wchnstr</STRONG>,
- or <STRONG>win_wchnstr</STRONG> is recommended.
+ Constants defined in <STRONG>&lt;curses.h&gt;</STRONG> can be used with the <STRONG>&amp;</STRONG> (logical AND)
+ operator to extract the character or the attribute alone from any
+ position in the <EM>wchstr</EM> [see <STRONG><A HREF="curs_getcchar.3x.html">getcchar(3x)</A></STRONG>].
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
Upon successful completion, these functions return <STRONG>OK</STRONG>. Otherwise, they
return <STRONG>ERR</STRONG>.
- Functions with a "mv" prefix first perform a cursor movement using
- <STRONG>wmove</STRONG>, and return an error if the position is outside the window, or if
- the window pointer is null.
+ X/Open Curses defines no error conditions. This implementation returns
+ an error
+
+ <STRONG>o</STRONG> if the <EM>win</EM> parameter is null or
+
+ <STRONG>o</STRONG> if the <EM>wchstr</EM> parameter is null.
+
+ Functions prefixed with "mv" first perform cursor movement and fail if
+ the position (<EM>y</EM>, <EM>x</EM>) is outside the window boundaries.
+
+
+</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
+ All routines except <STRONG>win_wchnstr</STRONG> may be macros.
+
+ Reading a line that overflows the array pointed to by <EM>wchstr</EM> with
+ <STRONG>in_wchstr</STRONG>, <STRONG>mvin_wchstr</STRONG>, <STRONG>mvwin_wchstr</STRONG> or <STRONG>win_wchstr</STRONG> causes undefined
+ results. Therefore, the use of <STRONG>in_wchnstr</STRONG>, <STRONG>mvin_wchnstr</STRONG>,
+ <STRONG>mvwin_wchnstr</STRONG>, or <STRONG>win_wchnstr</STRONG> is recommended.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- The XSI Curses defines no error conditions. This implementation checks
+ X/Open Curses defines no error conditions. This implementation checks
for null pointers, returning <STRONG>ERR</STRONG> in that case.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- Functions: <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>, <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>, <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
- <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
+ <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG> describes comparable functions of the <EM>ncurses</EM> library
+ in its non-wide-character configuration.
+
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>, <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
- <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<li><a href="#h2-NAME">NAME</a></li>
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
+<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
diff --git a/doc/html/man/curs_inch.3x.html b/doc/html/man/curs_inch.3x.html
index a3382dfd186d..15bd134e9b76 100644
--- a/doc/html/man/curs_inch.3x.html
+++ b/doc/html/man/curs_inch.3x.html
@@ -1,7 +1,7 @@
-<!--
+<!--
* t
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2010,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,28 +28,27 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_inch.3x,v 1.25 2020/10/18 00:25:23 tom Exp @
+ * @Id: curs_inch.3x,v 1.51 2024/04/20 21:20:07 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_inch 3x</TITLE>
+<TITLE>curs_inch 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_inch 3x</H1>
+<H1 class="no-header">curs_inch 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG> <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
+<STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>inch</STRONG>, <STRONG>winch</STRONG>, <STRONG>mvinch</STRONG>, <STRONG>mvwinch</STRONG> - get a character and attributes from a
- <STRONG>curses</STRONG> window
+ <STRONG>inch</STRONG>, <STRONG>winch</STRONG>, <STRONG>mvinch</STRONG>, <STRONG>mvwinch</STRONG> - get a <EM>curses</EM> character from a window
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -63,26 +62,27 @@
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- These routines return the character, of type <STRONG>chtype</STRONG>, at the current
- position in the named window. If any attributes are set for that
- position, their values are OR'ed into the value returned. Constants
- defined in <STRONG>&lt;curses.h&gt;</STRONG> can be used with the <STRONG>&amp;</STRONG> (logical AND) operator to
+ These routines return the character, of type <STRONG>chtype</STRONG>, at the current
+ position in the named window. If any attributes are set for that
+ position, their values are OR'ed into the value returned. Constants
+ defined in <STRONG>&lt;curses.h&gt;</STRONG> can be used with the <STRONG>&amp;</STRONG> (logical AND) operator to
extract the character or attributes alone.
</PRE><H3><a name="h3-Attributes">Attributes</a></H3><PRE>
- The following bit-masks may be AND-ed with characters returned by
+ The following bit masks may be AND-ed with characters returned by
<STRONG>winch</STRONG>.
- <STRONG>A_CHARTEXT</STRONG> Bit-mask to extract character
- <STRONG>A_ATTRIBUTES</STRONG> Bit-mask to extract attributes
- <STRONG>A_COLOR</STRONG> Bit-mask to extract color-pair field information
+ <STRONG>Name</STRONG> <STRONG>Description</STRONG>
+ ------------------------------------------------------------------------
+ <STRONG>A_CHARTEXT</STRONG> Extract character
+ <STRONG>A_ATTRIBUTES</STRONG> Extract attributes
+ <STRONG>A_COLOR</STRONG> Extract color pair information
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- Functions with a "mv" prefix first perform a cursor movement using
- <STRONG>wmove</STRONG>, and return an error if the position is outside the window, or if
- the window pointer is null.
+ Functions prefixed with "mv" first perform cursor movement and fail if
+ the position (<EM>y</EM>, <EM>x</EM>) is outside the window boundaries.
The <STRONG>winch</STRONG> function does not return an error if the window contains
characters larger than 8-bits (255). Only the low-order 8 bits of the
@@ -94,7 +94,7 @@
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These functions are described in the XSI Curses standard, Issue 4.
+ These functions are described in X/Open Curses, Issue 4.
Very old systems (before standardization) provide a different function
with the same name:
@@ -120,20 +120,14 @@
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>
- gives an overview of the WINDOW and <STRONG>chtype</STRONG> data types.
-
- <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
- goes into more detail, pointing out portability problems and
- constraints on the use of <STRONG>chtype</STRONG> for returning window information.
+ <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG> describes comparable functions of the <EM>ncurses</EM> library
+ in its wide-character configuration (<EM>ncursesw</EM>).
- <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
- describes comparable functions for the wide-character (ncursesw)
- library.
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
- <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
diff --git a/doc/html/man/curs_inchstr.3x.html b/doc/html/man/curs_inchstr.3x.html
index a94a7fcf05e9..1eeb1b3a3c5e 100644
--- a/doc/html/man/curs_inchstr.3x.html
+++ b/doc/html/man/curs_inchstr.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2010,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,29 +27,28 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_inchstr.3x,v 1.21 2020/10/18 00:24:36 tom Exp @
+ * @Id: curs_inchstr.3x,v 1.45 2024/04/20 21:20:07 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_inchstr 3x</TITLE>
+<TITLE>curs_inchstr 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_inchstr 3x</H1>
+<H1 class="no-header">curs_inchstr 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG> <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
+<STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>inchstr</STRONG>, <STRONG>inchnstr</STRONG>, <STRONG>winchstr</STRONG>, <STRONG>winchnstr</STRONG>, <STRONG>mvinchstr</STRONG>, <STRONG>mvinchnstr</STRONG>,
- <STRONG>mvwinchstr</STRONG>, <STRONG>mvwinchnstr</STRONG> - get a string of characters (and attributes)
- from a <STRONG>curses</STRONG> window
+ <STRONG>inchstr</STRONG>, <STRONG>inchnstr</STRONG>, <STRONG>winchstr</STRONG>, <STRONG>winchnstr</STRONG>, <STRONG>mvinchstr</STRONG>, <STRONG>mvinchnstr</STRONG>,
+ <STRONG>mvwinchstr</STRONG>, <STRONG>mvwinchnstr</STRONG> - get a <EM>curses</EM> character string from a window
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -67,54 +66,61 @@
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- These routines return a NULL-terminated array of <STRONG>chtype</STRONG> quantities,
- starting at the current cursor position in the named window and ending
- at the right margin of the window. The four functions with <EM>n</EM> as the
- last argument, return a leading substring at most <EM>n</EM> characters long
- (exclusive of the trailing (chtype)0). Constants defined in <STRONG>&lt;curses.h&gt;</STRONG>
- can be used with the <STRONG>&amp;</STRONG> (logical AND) operator to extract the character
- or the attribute alone from any position in the <EM>chstr</EM> [see
- <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>].
+ These routines return a NULL-terminated array of <STRONG>chtype</STRONG> quantities,
+ starting at the current cursor position in the named window and ending
+ at the right margin of the window.
+
+ The four functions with <EM>n</EM> as the last argument, return a leading
+ substring at most <EM>n</EM> characters long (exclusive of the trailing
+ (chtype)0). Transfer stops at the end of the current line, or when <EM>n</EM>
+ characters have been stored at the location referenced by <EM>chstr</EM>.
+
+ Constants defined in <STRONG>&lt;curses.h&gt;</STRONG> can be used with the <STRONG>&amp;</STRONG> (logical AND)
+ operator to extract the character or the attribute alone from any
+ position in the <EM>chstr</EM> [see <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>].
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- All routines return the integer <STRONG>ERR</STRONG> upon failure and an integer value
- other than <STRONG>ERR</STRONG> upon successful completion (the number of characters re-
- trieved, exclusive of the trailing 0).
+ All routines return the integer <STRONG>ERR</STRONG> upon failure and an integer value
+ other than <STRONG>ERR</STRONG> upon successful completion (the number of characters
+ retrieved, exclusive of the trailing 0).
- X/Open Curses defines no error conditions. In this implementation:
+ X/Open Curses defines no error conditions. This implementation returns
+ an error
- <STRONG>o</STRONG> If the <EM>win</EM> parameter is null, an error is returned,
+ <STRONG>o</STRONG> if the <EM>win</EM> parameter is null or
- <STRONG>o</STRONG> If the <EM>chstr</EM> parameter is null, an error is returned,
+ <STRONG>o</STRONG> if the <EM>chstr</EM> parameter is null.
- Functions with a "mv" prefix first perform a cursor movement using
- <STRONG>wmove</STRONG>, and return an error if the position is outside the window, or if
- the window pointer is null.
+ Functions prefixed with "mv" first perform cursor movement and fail if
+ the position (<EM>y</EM>, <EM>x</EM>) is outside the window boundaries.
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- Note that all routines except <STRONG>winchnstr</STRONG> may be macros. SVr4 does not
- document whether the result string is zero-terminated; it does not doc-
- ument whether a length limit argument includes any trailing 0; and it
- does not document the meaning of the return value.
+ All routines except <STRONG>winchnstr</STRONG> may be macros.
+
+ SVr4 does not document whether the result string is zero-terminated; it
+ does not document whether a length limit argument includes any trailing
+ 0; and it does not document the meaning of the return value.
+
+ Reading a line that overflows the array pointed to by <EM>chstr</EM> with
+ <STRONG>inchstr</STRONG>, <STRONG>mvinchstr</STRONG>, <STRONG>mvwinchstr</STRONG> or <STRONG>winchstr</STRONG> causes undefined results.
+ Therefore, the use of <STRONG>inchnstr</STRONG>, <STRONG>mvinchnstr</STRONG>, <STRONG>mvwinchnstr</STRONG>, or <STRONG>winchnstr</STRONG>
+ is recommended.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These functions are described in the XSI Curses standard, Issue 4. It
- is no more specific than the SVr4 documentation on the trailing 0. It
- does specify that the successful return of the functions is <STRONG>OK</STRONG>.
+ These functions are described in X/Open Curses, Issue 4. It is no more
+ specific than the SVr4 documentation on the trailing 0. It does
+ specify that the successful return of the functions is <STRONG>OK</STRONG>.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>.
-
- Comparable functions in the wide-character (ncursesw) library are de-
- scribed in <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>.
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>, <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>, <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
- <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
diff --git a/doc/html/man/curs_initscr.3x.html b/doc/html/man/curs_initscr.3x.html
index ff3e6c26db89..778fc0016d1a 100644
--- a/doc/html/man/curs_initscr.3x.html
+++ b/doc/html/man/curs_initscr.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,28 +27,28 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_initscr.3x,v 1.33 2020/10/17 23:20:48 tom Exp @
+ * @Id: curs_initscr.3x,v 1.69 2024/04/20 21:24:19 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_initscr 3x</TITLE>
+<TITLE>curs_initscr 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_initscr 3x</H1>
+<H1 class="no-header">curs_initscr 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG> <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
+<STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>initscr</STRONG>, <STRONG>newterm</STRONG>, <STRONG>endwin</STRONG>, <STRONG>isendwin</STRONG>, <STRONG>set_term</STRONG>, <STRONG>delscreen</STRONG> - <STRONG>curses</STRONG> screen
- initialization and manipulation routines
+ <STRONG>initscr</STRONG>, <STRONG>newterm</STRONG>, <STRONG>endwin</STRONG>, <STRONG>isendwin</STRONG>, <STRONG>set_term</STRONG>, <STRONG>delscreen</STRONG> - initialize,
+ manipulate, or tear down <EM>curses</EM> terminal interface
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -59,7 +59,7 @@
<STRONG>bool</STRONG> <STRONG>isendwin(void);</STRONG>
- <STRONG>SCREEN</STRONG> <STRONG>*newterm(const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>type</EM><STRONG>,</STRONG> <STRONG>FILE</STRONG> <STRONG>*</STRONG><EM>outfd</EM><STRONG>,</STRONG> <STRONG>FILE</STRONG> <STRONG>*</STRONG><EM>infd</EM><STRONG>);</STRONG>
+ <STRONG>SCREEN</STRONG> <STRONG>*newterm(const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>type</EM><STRONG>,</STRONG> <STRONG>FILE</STRONG> <STRONG>*</STRONG><EM>outf</EM><STRONG>,</STRONG> <STRONG>FILE</STRONG> <STRONG>*</STRONG><EM>inf</EM><STRONG>);</STRONG>
<STRONG>SCREEN</STRONG> <STRONG>*set_term(SCREEN</STRONG> <STRONG>*</STRONG><EM>new</EM><STRONG>);</STRONG>
<STRONG>void</STRONG> <STRONG>delscreen(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
@@ -72,11 +72,11 @@
it; these are <STRONG><A HREF="curs_slk.3x.html">slk_init(3x)</A></STRONG>, <STRONG>filter</STRONG>, <STRONG>ripoffline</STRONG>, <STRONG>use_env</STRONG>. For multiple-
terminal applications, <STRONG>newterm</STRONG> may be called before <STRONG>initscr</STRONG>.
- The initscr code determines the terminal type and initializes all <STRONG>curs-</STRONG>
- <STRONG>es</STRONG> data structures. <STRONG>initscr</STRONG> also causes the first call to <STRONG><A HREF="curscurs_refresh.3x.html">refresh(3x)</A></STRONG>
- to clear the screen. If errors occur, <STRONG>initscr</STRONG> writes an appropriate
- error message to standard error and exits; otherwise, a pointer is re-
- turned to <STRONG>stdscr</STRONG>.
+ The initscr code determines the terminal type and initializes all
+ <STRONG>curses</STRONG> data structures. <STRONG>initscr</STRONG> also causes the first call to
+ <STRONG><A HREF="curs_refresh.3x.html">refresh(3x)</A></STRONG> to clear the screen. If errors occur, <STRONG>initscr</STRONG> writes an
+ appropriate error message to standard error and exits; otherwise, a
+ pointer is returned to <STRONG>stdscr</STRONG>.
</PRE><H3><a name="h3-newterm">newterm</a></H3><PRE>
@@ -84,18 +84,24 @@
routine for each terminal instead of <STRONG>initscr</STRONG>. A program that needs to
inspect capabilities, so it can continue to run in a line-oriented mode
if the terminal cannot support a screen-oriented program, would also
- use <STRONG>newterm</STRONG>. The routine <STRONG>newterm</STRONG> should be called once for each termi-
- nal. It returns a variable of type <STRONG>SCREEN</STRONG> <STRONG>*</STRONG> which should be saved as a
+ use <STRONG>newterm</STRONG>.
+
+ The routine <STRONG>newterm</STRONG> should be called once for each terminal. It
+ returns a variable of type <EM>SCREEN</EM> <EM>*</EM> which should be saved as a
reference to that terminal. <STRONG>newterm</STRONG>'s arguments are
<STRONG>o</STRONG> the <EM>type</EM> of the terminal to be used in place of <STRONG>$TERM</STRONG>,
- <STRONG>o</STRONG> a file pointer for output to the terminal, and
+ <STRONG>o</STRONG> an output stream connected to the terminal, and
- <STRONG>o</STRONG> another file pointer for input from the terminal
+ <STRONG>o</STRONG> an input stream connected to the terminal
If the <EM>type</EM> parameter is <STRONG>NULL</STRONG>, <STRONG>$TERM</STRONG> will be used.
+ The file descriptor of the output stream is passed to <STRONG><A HREF="curs_terminfo.3x.html">setupterm(3x)</A></STRONG>,
+ which returns a pointer to a <EM>TERMINAL</EM> structure. <STRONG>newterm</STRONG>'s return
+ value holds a pointer to the <EM>TERMINAL</EM> structure.
+
</PRE><H3><a name="h3-endwin">endwin</a></H3><PRE>
The program must also call <STRONG>endwin</STRONG> for each terminal being used before
@@ -110,13 +116,13 @@
<STRONG>o</STRONG> moves the cursor to the lower left-hand corner of the screen,
- <STRONG>o</STRONG> clears the remainder of the line so that it uses the default col-
- ors,
+ <STRONG>o</STRONG> clears the remainder of the line so that it uses the default
+ colors,
<STRONG>o</STRONG> sets the cursor to normal visibility (see <STRONG><A HREF="curs_kernel.3x.html">curs_set(3x)</A></STRONG>),
- <STRONG>o</STRONG> stops cursor-addressing mode using the <EM>exit</EM><STRONG>_</STRONG><EM>ca</EM><STRONG>_</STRONG><EM>mode</EM> terminal capa-
- bility,
+ <STRONG>o</STRONG> stops cursor-addressing mode using the <EM>exit</EM><STRONG>_</STRONG><EM>ca</EM><STRONG>_</STRONG><EM>mode</EM> terminal
+ capability,
<STRONG>o</STRONG> restores tty modes (see <STRONG><A HREF="curs_kernel.3x.html">reset_shell_mode(3x)</A></STRONG>).
@@ -131,27 +137,33 @@
</PRE><H3><a name="h3-set_term">set_term</a></H3><PRE>
The <STRONG>set_term</STRONG> routine is used to switch between different terminals.
- The screen reference <STRONG>new</STRONG> becomes the new current terminal. The previ-
- ous terminal is returned by the routine. This is the only routine
- which manipulates <STRONG>SCREEN</STRONG> pointers; all other routines affect only the
+ The screen reference <EM>new</EM> becomes the new current terminal. The
+ previous terminal is returned by the routine. This is the only routine
+ which manipulates <EM>SCREEN</EM> pointers; all other routines affect only the
current terminal.
</PRE><H3><a name="h3-delscreen">delscreen</a></H3><PRE>
- The <STRONG>delscreen</STRONG> routine frees storage associated with the <STRONG>SCREEN</STRONG> data
+ The <STRONG>delscreen</STRONG> routine frees storage associated with the <EM>SCREEN</EM> data
structure. The <STRONG>endwin</STRONG> routine does not do this, so <STRONG>delscreen</STRONG> should be
- called after <STRONG>endwin</STRONG> if a particular <STRONG>SCREEN</STRONG> is no longer needed.
+ called after <STRONG>endwin</STRONG> if a particular <EM>SCREEN</EM> is no longer needed.
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- <STRONG>endwin</STRONG> returns the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> upon successful com-
- pletion.
+ <STRONG>endwin</STRONG> returns the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> upon successful
+ completion.
Routines that return pointers always return <STRONG>NULL</STRONG> on error.
X/Open defines no error conditions. In this implementation
- <STRONG>o</STRONG> <STRONG>endwin</STRONG> returns an error if the terminal was not initialized.
+ <STRONG>o</STRONG> <STRONG>endwin</STRONG> returns an error if
+
+ <STRONG>o</STRONG> the terminal was not initialized, or
+
+ <STRONG>o</STRONG> <STRONG>endwin</STRONG> is called more than once without updating the screen, or
+
+ <STRONG>o</STRONG> <STRONG><A HREF="curs_kernel.3x.html">reset_shell_mode(3x)</A></STRONG> returns an error.
<STRONG>o</STRONG> <STRONG>newterm</STRONG> returns an error if it cannot allocate the data structures
for the screen, or for the top-level windows within the screen,
@@ -161,93 +173,133 @@
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These functions were described in the XSI Curses standard, Issue 4. As
- of 2015, the current document is X/Open Curses, Issue 7.
+ These functions were described in X/Open Curses, Issue 4. As of 2015,
+ the current document is X/Open Curses, Issue 7.
</PRE><H3><a name="h3-Differences">Differences</a></H3><PRE>
- X/Open specifies that portable applications must not call <STRONG>initscr</STRONG> more
- than once:
+ X/Open Curses specifies that portable applications must not call
+ <STRONG>initscr</STRONG> more than once:
- <STRONG>o</STRONG> The portable way to use <STRONG>initscr</STRONG> is once only, using <STRONG>refresh</STRONG> (see
- <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>) to restore the screen after <STRONG>endwin</STRONG>.
+ <STRONG>o</STRONG> The portable way to use <STRONG>initscr</STRONG> is once only, using <STRONG><A HREF="curs_refresh.3x.html">refresh(3x)</A></STRONG> to
+ restore the screen after <STRONG>endwin</STRONG>.
<STRONG>o</STRONG> This implementation allows using <STRONG>initscr</STRONG> after <STRONG>endwin</STRONG>.
- Old versions of curses, e.g., BSD 4.4, may have returned a null pointer
- from <STRONG>initscr</STRONG> when an error is detected, rather than exiting. It is
- safe but redundant to check the return value of <STRONG>initscr</STRONG> in XSI Curses.
+ Old versions of curses, e.g., BSD 4.4, would return a null pointer from
+ <STRONG>initscr</STRONG> when an error is detected, rather than exiting. It is safe but
+ redundant to check the return value of <STRONG>initscr</STRONG> in X/Open Curses.
+
+ Calling <STRONG>endwin</STRONG> does not dispose of the memory allocated in <STRONG>initscr</STRONG> or
+ <STRONG>newterm</STRONG>. Deleting a <EM>SCREEN</EM> provides a way to do this:
+
+ <STRONG>o</STRONG> X/Open Curses does not say what happens to <EM>WINDOW</EM>s when <STRONG>delscreen</STRONG>
+ "frees storage associated with the <EM>SCREEN</EM>" nor does the SVr4
+ documentation help, adding that it should be called after <STRONG>endwin</STRONG> if
+ a <EM>SCREEN</EM> is no longer needed.
+
+ <STRONG>o</STRONG> However, <EM>WINDOW</EM>s are implicitly associated with a <EM>SCREEN</EM>. so that
+ it is reasonable to expect <STRONG>delscreen</STRONG> to deal with these.
+
+ <STRONG>o</STRONG> SVr4 curses deletes the standard <EM>WINDOW</EM> structures <STRONG>stdscr</STRONG> and
+ <STRONG>curscr</STRONG> as well as a work area <STRONG>newscr</STRONG>. SVr4 curses ignores other
+ windows.
+
+ <STRONG>o</STRONG> Since version 4.0 (1996), <EM>ncurses</EM> has maintained a list of all
+ windows for each screen, using that information to delete those
+ windows when <STRONG>delscreen</STRONG> is called.
+
+ <STRONG>o</STRONG> NetBSD copied this feature of <EM>ncurses</EM> in 2001. PDCurses follows
+ the SVr4 model, deleting only the standard <EM>WINDOW</EM> structures.
+
+
+</PRE><H3><a name="h3-High-level-versus-Low-level">High-level versus Low-level</a></H3><PRE>
+ Different implementations may disagree regarding the level of some
+ functions. For example, <EM>SCREEN</EM> (returned by <STRONG>newterm</STRONG>) and <EM>TERMINAL</EM>
+ (returned by <STRONG><A HREF="curs_terminfo.3x.html">setupterm(3x)</A></STRONG>) hold file descriptors for the output
+ stream. If an application switches screens using <STRONG>set_term</STRONG>, or switches
+ terminals using <STRONG><A HREF="curs_terminfo.3x.html">set_curterm(3x)</A></STRONG>, applications which use the output file
+ descriptor can have different behavior depending on which structure
+ holds the corresponding descriptor.
+
+ For example
+
+ <STRONG>o</STRONG> NetBSD's <STRONG><A HREF="curs_termattrs.3x.html">baudrate(3x)</A></STRONG> function uses the descriptor in <EM>TERMINAL</EM>.
+ <EM>ncurses</EM> and SVr4 use the descriptor in <EM>SCREEN</EM>.
+ <STRONG>o</STRONG> NetBSD and <EM>ncurses</EM> use the descriptor in <EM>TERMINAL</EM> for terminal I/O
+ modes, e.g., <STRONG><A HREF="curs_kernel.3x.html">def_shell_mode(3x)</A></STRONG>, <STRONG><A HREF="curs_kernel.3x.html">def_prog_mode(3x)</A></STRONG>. SVr4 curses
+ uses the descriptor in <EM>SCREEN</EM>.
-</PRE><H3><a name="h3-Unset-TERM-Variable">Unset TERM Variable</a></H3><PRE>
- If the TERM variable is missing or empty, <STRONG>initscr</STRONG> uses the value "un-
- known", which normally corresponds to a terminal entry with the <EM>generic</EM>
- (<EM>gn</EM>) capability. Generic entries are detected by <STRONG>setupterm</STRONG> (see
- <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>) and cannot be used for full-screen operation. Other
- implementations may handle a missing/empty TERM variable differently.
+ <STRONG>Unset</STRONG> <EM>TERM</EM> <STRONG>Variable</STRONG>
+ If the <EM>TERM</EM> variable is missing or empty, <STRONG>initscr</STRONG> uses the value
+ "unknown", which normally corresponds to a terminal entry with the
+ <EM>generic</EM> (<EM>gn</EM>) capability. Generic entries are detected by <STRONG><A HREF="curs_terminfo.3x.html">setupterm(3x)</A></STRONG>
+ and cannot be used for full-screen operation. Other implementations
+ may handle a missing/empty <EM>TERM</EM> variable differently.
</PRE><H3><a name="h3-Signal-Handlers">Signal Handlers</a></H3><PRE>
- Quoting from X/Open Curses, section 3.1.1:
+ Quoting from X/Open Curses Issue 7, section 3.1.1:
- <EM>Curses</EM> <EM>implementations</EM> <EM>may</EM> <EM>provide</EM> <EM>for</EM> <EM>special</EM> <EM>handling</EM> <EM>of</EM> <EM>the</EM>
- <STRONG>SIGINT</STRONG><EM>,</EM> <STRONG>SIGQUIT</STRONG> <EM>and</EM> <STRONG>SIGTSTP</STRONG> <EM>signals</EM> <EM>if</EM> <EM>their</EM> <EM>disposition</EM> <EM>is</EM>
- <STRONG>SIG_DFL</STRONG> <EM>at</EM> <EM>the</EM> <EM>time</EM> <STRONG>initscr</STRONG> <EM>is</EM> <EM>called</EM> <STRONG>...</STRONG>
+ Curses implementations may provide for special handling of the
+ SIGINT, SIGQUIT, and SIGTSTP signals if their disposition is
+ SIG_DFL at the time <EM>initscr</EM> is called...
- <EM>Any</EM> <EM>special</EM> <EM>handling</EM> <EM>for</EM> <EM>these</EM> <EM>signals</EM> <EM>may</EM> <EM>remain</EM> <EM>in</EM> <EM>effect</EM> <EM>for</EM>
- <EM>the</EM> <EM>life</EM> <EM>of</EM> <EM>the</EM> <EM>process</EM> <EM>or</EM> <EM>until</EM> <EM>the</EM> <EM>process</EM> <EM>changes</EM> <EM>the</EM> <EM>disposi-</EM>
- <EM>tion</EM> <EM>of</EM> <EM>the</EM> <EM>signal.</EM>
+ Any special handling for these signals may remain in effect for
+ the life of the process or until the process changes the
+ disposition of the signal.
- <EM>None</EM> <EM>of</EM> <EM>the</EM> <EM>Curses</EM> <EM>functions</EM> <EM>are</EM> <EM>required</EM> <EM>to</EM> <EM>be</EM> <EM>safe</EM> <EM>with</EM> <EM>respect</EM>
- <EM>to</EM> <EM>signals</EM> ...
+ None of the Curses functions are required to be safe with respect
+ to signals...
- This implementation establishes signal handlers during initialization,
+ This implementation establishes signal handlers during initialization,
e.g., <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG>. Applications which must handle these signals
- should set up the corresponding handlers <EM>after</EM> initializing the li-
- brary:
+ should set up the corresponding handlers <EM>after</EM> initializing the
+ library:
<STRONG>SIGINT</STRONG>
- The handler <EM>attempts</EM> to cleanup the screen on exit. Although it
+ The handler <EM>attempts</EM> to clean up the screen on exit. Although it
<EM>usually</EM> works as expected, there are limitations:
- <STRONG>o</STRONG> Walking the <STRONG>SCREEN</STRONG> list is unsafe, since all list management
+ <STRONG>o</STRONG> Walking the <EM>SCREEN</EM> list is unsafe, since all list management
is done without any signal blocking.
- <STRONG>o</STRONG> On systems which have <STRONG>REENTRANT</STRONG> turned on, <STRONG>set_term</STRONG> uses func-
- tions which could deadlock or misbehave in other ways.
+ <STRONG>o</STRONG> On systems which have <STRONG>REENTRANT</STRONG> turned on, <STRONG>set_term</STRONG> uses
+ functions which could deadlock or misbehave in other ways.
- <STRONG>o</STRONG> <STRONG>endwin</STRONG> calls other functions, many of which use stdio or other
- library functions which are clearly unsafe.
+ <STRONG>o</STRONG> <STRONG>endwin</STRONG> calls other functions, many of which use <STRONG>stdio(3)</STRONG> or
+ other library functions which are clearly unsafe.
<STRONG>SIGTERM</STRONG>
- This uses the same handler as <STRONG>SIGINT</STRONG>, with the same limitations.
- It is not mentioned in X/Open Curses, but is more suitable for
+ This uses the same handler as <STRONG>SIGINT</STRONG>, with the same limitations.
+ It is not mentioned in X/Open Curses, but is more suitable for
this purpose than <STRONG>SIGQUIT</STRONG> (which is used in debugging).
<STRONG>SIGTSTP</STRONG>
- This handles the <EM>stop</EM> signal, used in job control. When resuming
- the process, this implementation discards pending input with
- <STRONG>flushinput</STRONG> (see <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>), and repaints the screen assuming
- that it has been completely altered. It also updates the saved
- terminal modes with <STRONG>def_shell_mode</STRONG> (see <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>).
+ This handles the <EM>stop</EM> signal, used in job control. When resuming
+ the process, this implementation discards pending input with
+ <STRONG><A HREF="curs_util.3x.html">flushinp(3x)</A></STRONG>, and repaints the screen assuming that it has been
+ completely altered. It also updates the saved terminal modes with
+ <STRONG><A HREF="curs_kernel.3x.html">def_shell_mode(3x)</A></STRONG>.
<STRONG>SIGWINCH</STRONG>
- This handles the window-size changes which were ignored in the
- standardization efforts. The handler sets a (signal-safe) vari-
- able which is later tested in <STRONG>wgetch</STRONG> (see <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>). If
- <STRONG>keypad</STRONG> has been enabled for the corresponding window, <STRONG>wgetch</STRONG> re-
- turns the key symbol <STRONG>KEY_RESIZE</STRONG>. At the same time, <STRONG>wgetch</STRONG> calls
- <STRONG>resizeterm</STRONG> to adjust the standard screen <STRONG>stdscr</STRONG>, and update other
- data such as <STRONG>LINES</STRONG> and <STRONG>COLS</STRONG>.
+ This handles the window-size changes which were ignored in the
+ standardization efforts. The handler sets a (signal-safe)
+ variable which is later tested in <STRONG><A HREF="curs_getch.3x.html">wgetch(3x)</A></STRONG>. If <STRONG>keypad</STRONG> has been
+ enabled for the corresponding window, <STRONG>wgetch</STRONG> returns the key
+ symbol <STRONG>KEY_RESIZE</STRONG>. At the same time, <STRONG>wgetch</STRONG> calls <STRONG>resizeterm</STRONG> to
+ adjust the standard screen <STRONG>stdscr</STRONG>, and update other data such as
+ <STRONG>LINES</STRONG> and <STRONG>COLS</STRONG>.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>, <STRONG>curs_ter-</STRONG>
- <STRONG><A HREF="curs_terminfo.3x.html">minfo(3x)</A></STRONG>, <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>.
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>,
+ <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>, <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>
- <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -267,7 +319,7 @@
<li><a href="#h2-PORTABILITY">PORTABILITY</a>
<ul>
<li><a href="#h3-Differences">Differences</a></li>
-<li><a href="#h3-Unset-TERM-Variable">Unset TERM Variable</a></li>
+<li><a href="#h3-High-level-versus-Low-level">High-level versus Low-level</a></li>
<li><a href="#h3-Signal-Handlers">Signal Handlers</a></li>
</ul>
</li>
diff --git a/doc/html/man/curs_inopts.3x.html b/doc/html/man/curs_inopts.3x.html
index 533d6709f8c5..149b2b82be28 100644
--- a/doc/html/man/curs_inopts.3x.html
+++ b/doc/html/man/curs_inopts.3x.html
@@ -1,6 +1,7 @@
-<!--
+<!--
+ * t
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,29 +28,30 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_inopts.3x,v 1.33 2020/12/05 19:38:18 Benno.Schulenberg Exp @
+ * @Id: curs_inopts.3x,v 1.66 2024/04/13 22:20:29 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_inopts 3x</TITLE>
+<TITLE>curs_inopts 3x 2024-04-13 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_inopts 3x</H1>
+<H1 class="no-header">curs_inopts 3x 2024-04-13 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG> <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
+<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>cbreak</STRONG>, <STRONG>nocbreak</STRONG>, <STRONG>echo</STRONG>, <STRONG>noecho</STRONG>, <STRONG>halfdelay</STRONG>, <STRONG>intrflush</STRONG>, <STRONG>keypad</STRONG>, <STRONG>meta</STRONG>, <STRONG>nl</STRONG>,
- <STRONG>nonl</STRONG>, <STRONG>nodelay</STRONG>, <STRONG>notimeout</STRONG>, <STRONG>raw</STRONG>, <STRONG>noraw</STRONG>, <STRONG>qiflush</STRONG>, <STRONG>noqiflush</STRONG>, <STRONG>timeout</STRONG>,
- <STRONG>wtimeout</STRONG>, <STRONG>typeahead</STRONG> - <STRONG>curses</STRONG> input options
+ <STRONG>cbreak</STRONG>, <STRONG>echo</STRONG>, <STRONG>halfdelay</STRONG>, <STRONG>intrflush</STRONG>, <STRONG>is_cbreak</STRONG>, <STRONG>is_echo</STRONG>, <STRONG>is_nl</STRONG>, <STRONG>is_raw</STRONG>,
+ <STRONG>keypad</STRONG>, <STRONG>meta</STRONG>, <STRONG>nl</STRONG>, <STRONG>nocbreak</STRONG>, <STRONG>nodelay</STRONG>, <STRONG>noecho</STRONG>, <STRONG>nonl</STRONG>, <STRONG>noqiflush</STRONG>, <STRONG>noraw</STRONG>,
+ <STRONG>notimeout</STRONG>, <STRONG>qiflush</STRONG>, <STRONG>raw</STRONG>, <STRONG>timeout</STRONG>, <STRONG>wtimeout</STRONG>, <STRONG>typeahead</STRONG> - get and set
+ <EM>curses</EM> terminal input options
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -82,227 +84,272 @@
<STRONG>int</STRONG> <STRONG>typeahead(int</STRONG> <EM>fd</EM><STRONG>);</STRONG>
+ <EM>/*</EM> <EM>extensions</EM> <EM>*/</EM>
+ <STRONG>int</STRONG> <STRONG>is_cbreak(void);</STRONG>
+ <STRONG>int</STRONG> <STRONG>is_echo(void);</STRONG>
+ <STRONG>int</STRONG> <STRONG>is_nl(void);</STRONG>
+ <STRONG>int</STRONG> <STRONG>is_raw(void);</STRONG>
+
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- The <STRONG>ncurses</STRONG> library provides several functions which let an application
- change the way input from the terminal is handled. Some are global,
- applying to all windows. Others apply only to a specific window. Win-
- dow-specific settings are not automatically applied to new or derived
- windows. An application must apply these to each window, if the same
- behavior is needed.
-
-
-</PRE><H3><a name="h3-cbreak_nocbreak">cbreak/nocbreak</a></H3><PRE>
- Normally, the tty driver buffers typed characters until a newline or
- carriage return is typed. The <STRONG>cbreak</STRONG> routine disables line buffering
- and erase/kill character-processing (interrupt and flow control charac-
- ters are unaffected), making characters typed by the user immediately
- available to the program. The <STRONG>nocbreak</STRONG> routine returns the terminal to
- normal (cooked) mode.
+ <EM>ncurses</EM> provides several functions that let an application change the
+ way input from the terminal is handled. Some are global, applying to
+ all windows. Others apply only to a specific window. Window-specific
+ settings are not automatically applied to new or derived windows. An
+ application must apply these to each window if the same behavior is
+ desired.
+
+
+</PRE><H3><a name="h3-cbreak_nocbreak">cbreak, nocbreak</a></H3><PRE>
+ Normally, the terminal driver buffers typed characters until a newline
+ or carriage return is typed. The <STRONG>cbreak</STRONG> routine disables line
+ buffering and erase/kill character-processing (interrupt and flow
+ control characters are unaffected), making characters typed by the user
+ immediately available to the program. The <STRONG>nocbreak</STRONG> routine returns the
+ terminal to normal (cooked) mode.
Initially the terminal may or may not be in <STRONG>cbreak</STRONG> mode, as the mode is
- inherited; therefore, a program should call <STRONG>cbreak</STRONG> or <STRONG>nocbreak</STRONG> explic-
- itly. Most interactive programs using <STRONG>curses</STRONG> set the <STRONG>cbreak</STRONG> mode.
- Note that <STRONG>cbreak</STRONG> overrides <STRONG>raw</STRONG>. [See <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG> for a discussion
- of how these routines interact with <STRONG>echo</STRONG> and <STRONG>noecho</STRONG>.]
+ inherited; therefore, a program should call <STRONG>cbreak</STRONG> or <STRONG>nocbreak</STRONG>
+ explicitly. Most interactive programs using <EM>curses</EM> set the <STRONG>cbreak</STRONG>
+ mode. Note that <STRONG>cbreak</STRONG> overrides <STRONG>raw</STRONG>. [See <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG> for a
+ discussion of how these routines interact with <STRONG>echo</STRONG> and <STRONG>noecho</STRONG>.]
-</PRE><H3><a name="h3-echo_noecho">echo/noecho</a></H3><PRE>
- The <STRONG>echo</STRONG> and <STRONG>noecho</STRONG> routines control whether characters typed by the
- user are echoed by <STRONG><A HREF="curs_getch.3x.html">getch(3x)</A></STRONG> as they are typed. Echoing by the tty
- driver is always disabled, but initially <STRONG>getch</STRONG> is in echo mode, so
- characters typed are echoed. Authors of most interactive programs pre-
- fer to do their own echoing in a controlled area of the screen, or not
- to echo at all, so they disable echoing by calling <STRONG>noecho</STRONG>. [See
- <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG> for a discussion of how these routines interact with
- <STRONG>cbreak</STRONG> and <STRONG>nocbreak</STRONG>.]
+</PRE><H3><a name="h3-echo_noecho">echo, noecho</a></H3><PRE>
+ The <STRONG>echo</STRONG> and <STRONG>noecho</STRONG> routines control whether characters typed by the
+ user are echoed by <STRONG><A HREF="curs_getch.3x.html">getch(3x)</A></STRONG> as they are typed. Echoing by the
+ terminal driver is always disabled, but initially <STRONG>getch</STRONG> is in echo
+ mode, so characters typed are echoed. Authors of most interactive
+ programs prefer to do their own echoing in a controlled area of the
+ screen, or not to echo at all, so they disable echoing by calling
+ <STRONG>noecho</STRONG>. [See <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG> for a discussion of how these routines
+ interact with <STRONG>cbreak</STRONG> and <STRONG>nocbreak</STRONG>.]
</PRE><H3><a name="h3-halfdelay">halfdelay</a></H3><PRE>
- The <STRONG>halfdelay</STRONG> routine is used for half-delay mode, which is similar to
- <STRONG>cbreak</STRONG> mode in that characters typed by the user are immediately avail-
- able to the program. However, after blocking for <EM>tenths</EM> tenths of sec-
- onds, <STRONG>ERR</STRONG> is returned if nothing has been typed. The value of <EM>tenths</EM>
- must be a number between 1 and 255. Use <STRONG>nocbreak</STRONG> to leave half-delay
- mode.
+ The <STRONG>halfdelay</STRONG> routine is used for half-delay mode, which is similar to
+ <STRONG>cbreak</STRONG> mode in that characters typed by the user are immediately
+ available to the program. However, after blocking for <EM>tenths</EM> tenths of
+ seconds, <STRONG>ERR</STRONG> is returned if nothing has been typed. The value of
+ <EM>tenths</EM> must be a number between 1 and 255. Use <STRONG>nocbreak</STRONG> to leave half-
+ delay mode.
</PRE><H3><a name="h3-intrflush">intrflush</a></H3><PRE>
- If the <STRONG>intrflush</STRONG> option is enabled (<EM>bf</EM> is <STRONG>TRUE</STRONG>), and an interrupt key
- is pressed on the keyboard (interrupt, break, quit), all output in the
- tty driver queue will be flushed, giving the effect of faster response
- to the interrupt, but causing <STRONG>curses</STRONG> to have the wrong idea of what is
- on the screen. Disabling the option (<EM>bf</EM> is <STRONG>FALSE</STRONG>) prevents the flush.
- The default for the option is inherited from the tty driver settings.
- The window argument is ignored.
+ If the <STRONG>intrflush</STRONG> option is enabled (<EM>bf</EM> is <STRONG>TRUE</STRONG>), and an interrupt key
+ is pressed on the keyboard (interrupt, break, quit), all output in the
+ terminal driver queue is flushed, giving the effect of faster response
+ to the interrupt, but causing <EM>curses</EM> to have the wrong idea of what is
+ on the screen. Disabling the option (<EM>bf</EM> is <STRONG>FALSE</STRONG>), prevents the flush.
+ The default for the option is inherited from the terminal driver
+ settings. The <EM>win</EM> argument is ignored.
</PRE><H3><a name="h3-keypad">keypad</a></H3><PRE>
- The <STRONG>keypad</STRONG> option enables the keypad of the user's terminal. If en-
- abled (<EM>bf</EM> is <STRONG>TRUE</STRONG>), the user can press a function key (such as an arrow
- key) and <STRONG><A HREF="curs_getch.3x.html">wgetch(3x)</A></STRONG> returns a single value representing the function
- key, as in <STRONG>KEY_LEFT</STRONG>. If disabled (<EM>bf</EM> is <STRONG>FALSE</STRONG>), <STRONG>curses</STRONG> does not treat
- function keys specially and the program has to interpret the escape se-
- quences itself. If the keypad in the terminal can be turned on (made
- to transmit) and off (made to work locally), turning on this option
- causes the terminal keypad to be turned on when <STRONG><A HREF="curs_getch.3x.html">wgetch(3x)</A></STRONG> is called.
- The default value for keypad is <STRONG>FALSE</STRONG>.
+ The <STRONG>keypad</STRONG> option enables the keypad of the user's terminal. If
+ enabled (<EM>bf</EM> is <STRONG>TRUE</STRONG>), the user can press a function key (such as an
+ arrow key) and <STRONG><A HREF="curs_getch.3x.html">wgetch(3x)</A></STRONG> returns a single value representing the
+ function key, as in <STRONG>KEY_LEFT</STRONG>. If disabled (<EM>bf</EM> is <STRONG>FALSE</STRONG>), <EM>curses</EM> does
+ not treat function keys specially and the program has to interpret the
+ escape sequences itself. If the keypad in the terminal can be turned
+ on (made to transmit) and off (made to work locally), turning on this
+ option causes the terminal keypad to be turned on when <STRONG><A HREF="curs_getch.3x.html">wgetch(3x)</A></STRONG> is
+ called. The default value for keypad is <STRONG>FALSE</STRONG>.
</PRE><H3><a name="h3-meta">meta</a></H3><PRE>
- Initially, whether the terminal returns 7 or 8 significant bits on in-
- put depends on the control mode of the tty driver [see <STRONG>termios(3)</STRONG>]. To
- force 8 bits to be returned, invoke <STRONG>meta</STRONG>(<EM>win</EM>, <STRONG>TRUE</STRONG>); this is equiva-
- lent, under POSIX, to setting the CS8 flag on the terminal. To force 7
- bits to be returned, invoke <STRONG>meta</STRONG>(<EM>win</EM>, <STRONG>FALSE</STRONG>); this is equivalent, under
- POSIX, to setting the CS7 flag on the terminal. The window argument,
- <EM>win</EM>, is always ignored. If the terminfo capabilities <STRONG>smm</STRONG> (meta_on) and
- <STRONG>rmm</STRONG> (meta_off) are defined for the terminal, <STRONG>smm</STRONG> is sent to the termi-
- nal when <STRONG>meta</STRONG>(<EM>win</EM>, <STRONG>TRUE</STRONG>) is called and <STRONG>rmm</STRONG> is sent when <STRONG>meta</STRONG>(<EM>win</EM>,
- <STRONG>FALSE</STRONG>) is called.
-
-
-</PRE><H3><a name="h3-nl_nonl">nl/nonl</a></H3><PRE>
- The <STRONG>nl</STRONG> and <STRONG>nonl</STRONG> routines control whether the underlying display device
+ Initially, whether the terminal returns 7 or 8 significant bits on
+ input depends on the control mode of the terminal driver [see
+ <STRONG>termios(3)</STRONG>]. To force 8 bits to be returned, invoke <STRONG>meta</STRONG>(<EM>win</EM>, <STRONG>TRUE</STRONG>);
+ this is equivalent, under POSIX, to setting the CS8 flag on the
+ terminal. To force 7 bits to be returned, invoke <STRONG>meta</STRONG>(<EM>win</EM>, <STRONG>FALSE</STRONG>);
+ this is equivalent, under POSIX, to setting the CS7 flag on the
+ terminal. The window argument, <EM>win</EM>, is always ignored. If the
+ terminfo capabilities <STRONG>smm</STRONG> (meta_on) and <STRONG>rmm</STRONG> (meta_off) are defined for
+ the terminal, <STRONG>smm</STRONG> is sent to the terminal when <STRONG>meta</STRONG>(<EM>win</EM>, <STRONG>TRUE</STRONG>) is
+ called and <STRONG>rmm</STRONG> is sent when <STRONG>meta</STRONG>(<EM>win</EM>, <STRONG>FALSE</STRONG>) is called.
+
+
+</PRE><H3><a name="h3-nl_nonl">nl, nonl</a></H3><PRE>
+ The <STRONG>nl</STRONG> and <STRONG>nonl</STRONG> routines control whether the underlying display device
translates the return key into newline on input.
</PRE><H3><a name="h3-nodelay">nodelay</a></H3><PRE>
The <STRONG>nodelay</STRONG> option causes <STRONG>getch</STRONG> to be a non-blocking call. If no input
- is ready, <STRONG>getch</STRONG> returns <STRONG>ERR</STRONG>. If disabled (<EM>bf</EM> is <STRONG>FALSE</STRONG>), <STRONG>getch</STRONG> waits
+ is ready, <STRONG>getch</STRONG> returns <STRONG>ERR</STRONG>. If disabled (<EM>bf</EM> is <STRONG>FALSE</STRONG>), <STRONG>getch</STRONG> waits
until a key is pressed.
</PRE><H3><a name="h3-notimeout">notimeout</a></H3><PRE>
- When interpreting an escape sequence, <STRONG><A HREF="curs_getch.3x.html">wgetch(3x)</A></STRONG> sets a timer while
- waiting for the next character. If <STRONG>notimeout(</STRONG><EM>win</EM>, <STRONG>TRUE</STRONG>) is called,
- then <STRONG>wgetch</STRONG> does not set a timer. The purpose of the timeout is to
- differentiate between sequences received from a function key and those
- typed by a user.
-
-
-</PRE><H3><a name="h3-raw_noraw">raw/noraw</a></H3><PRE>
- The <STRONG>raw</STRONG> and <STRONG>noraw</STRONG> routines place the terminal into or out of raw mode.
- Raw mode is similar to <STRONG>cbreak</STRONG> mode, in that characters typed are imme-
- diately passed through to the user program. The differences are that
- in raw mode, the interrupt, quit, suspend, and flow control characters
- are all passed through uninterpreted, instead of generating a signal.
- The behavior of the BREAK key depends on other bits in the tty driver
- that are not set by <STRONG>curses</STRONG>.
-
-
-</PRE><H3><a name="h3-qiflush_noqiflush">qiflush/noqiflush</a></H3><PRE>
- When the <STRONG>noqiflush</STRONG> routine is used, normal flush of input and output
- queues associated with the <STRONG>INTR</STRONG>, <STRONG>QUIT</STRONG> and <STRONG>SUSP</STRONG> characters will not be
- done [see <STRONG>termios(3)</STRONG>]. When <STRONG>qiflush</STRONG> is called, the queues will be
- flushed when these control characters are read. You may want to call
- <STRONG>noqiflush</STRONG> in a signal handler if you want output to continue as though
+ When interpreting an escape sequence, <STRONG><A HREF="curs_getch.3x.html">wgetch(3x)</A></STRONG> sets a timer while
+ waiting for the next character. If <STRONG>notimeout(</STRONG><EM>win</EM>, <STRONG>TRUE</STRONG>) is called,
+ then <STRONG>wgetch</STRONG> does not set a timer. The purpose of the timeout is to
+ distinguish sequences produced by a function key from those typed by a
+ user.
+
+
+</PRE><H3><a name="h3-raw_noraw">raw, noraw</a></H3><PRE>
+ The <STRONG>raw</STRONG> and <STRONG>noraw</STRONG> routines place the terminal into or out of raw mode.
+ Raw mode is similar to <STRONG>cbreak</STRONG> mode, in that characters typed are
+ immediately passed through to the user program. The differences are
+ that in raw mode, the interrupt, quit, suspend, and flow control
+ characters are all passed through uninterpreted, instead of generating
+ a signal. The behavior of the BREAK key depends on other bits in the
+ terminal driver that are not set by <EM>curses</EM>.
+
+
+</PRE><H3><a name="h3-qiflush_nqiflush">qiflush, nqiflush</a></H3><PRE>
+ When the <STRONG>noqiflush</STRONG> routine is used, normal flush of input and output
+ queues associated with the <STRONG>INTR</STRONG>, <STRONG>QUIT</STRONG> and <STRONG>SUSP</STRONG> characters will not be
+ done [see <STRONG>termios(3)</STRONG>]. When <STRONG>qiflush</STRONG> is called, the queues will be
+ flushed when these control characters are read. You may want to call
+ <STRONG>noqiflush</STRONG> in a signal handler if you want output to continue as though
the interrupt had not occurred, after the handler exits.
-</PRE><H3><a name="h3-timeout_wtimeout">timeout/wtimeout</a></H3><PRE>
+</PRE><H3><a name="h3-timeout_wtimeout">timeout, wtimeout</a></H3><PRE>
The <STRONG>timeout</STRONG> and <STRONG>wtimeout</STRONG> routines set blocking or non-blocking read for
- a given window. If <EM>delay</EM> is negative, blocking read is used (i.e.,
- waits indefinitely for input). If <EM>delay</EM> is zero, then non-blocking
- read is used (i.e., read returns <STRONG>ERR</STRONG> if no input is waiting). If <EM>delay</EM>
- is positive, then read blocks for <EM>delay</EM> milliseconds, and returns <STRONG>ERR</STRONG>
- if there is still no input. Hence, these routines provide the same
- functionality as <STRONG>nodelay</STRONG>, plus the additional capability of being able
+ a given window. If <EM>delay</EM> is negative, a blocking read is used (i.e.,
+ waits indefinitely for input). If <EM>delay</EM> is zero, then a non-blocking
+ read is used (i.e., <EM>read</EM> returns <STRONG>ERR</STRONG> if no input is waiting). If <EM>delay</EM>
+ is positive, then <EM>read</EM> blocks for <EM>delay</EM> milliseconds, and returns <STRONG>ERR</STRONG>
+ if there is still no input. Hence, these routines provide the same
+ functionality as <STRONG>nodelay</STRONG>, plus the additional capability of being able
to block for only <EM>delay</EM> milliseconds (where <EM>delay</EM> is positive).
</PRE><H3><a name="h3-typeahead">typeahead</a></H3><PRE>
- The <STRONG>curses</STRONG> library does "line-breakout optimization" by looking for ty-
- peahead periodically while updating the screen. If input is found, and
- it is coming from a tty, the current update is postponed until <STRONG>re-</STRONG>
- <STRONG><A HREF="refresh.3x.html">fresh(3x)</A></STRONG> or <STRONG>doupdate</STRONG> is called again. This allows faster response to
- commands typed in advance. Normally, the input FILE pointer passed to
- <STRONG>newterm</STRONG>, or <STRONG>stdin</STRONG> in the case that <STRONG>initscr</STRONG> was used, will be used to do
- this typeahead checking. The <STRONG>typeahead</STRONG> routine specifies that the file
- descriptor <EM>fd</EM> is to be used to check for typeahead instead. If <EM>fd</EM> is
- -1, then no typeahead checking is done.
+ <EM>curses</EM> does "line-breakout optimization" by looking for typeahead
+ periodically while updating the screen. If input is found, and it is
+ coming from a terminal, the current update is postponed until
+ <STRONG><A HREF="curs_refresh.3x.html">refresh(3x)</A></STRONG> or <STRONG>doupdate</STRONG> is called again. This allows faster response
+ to commands typed in advance. Normally, the input <EM>FILE</EM> pointer passed
+ to <STRONG>newterm</STRONG>, or <STRONG>stdin</STRONG> in the case that <STRONG>initscr</STRONG> was used, will be used to
+ do this typeahead checking. The <STRONG>typeahead</STRONG> routine specifies that the
+ file descriptor <EM>fd</EM> is to be used to check for typeahead instead. If <EM>fd</EM>
+ is -1, then no typeahead checking is done.
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- All routines that return an integer return <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG>
+ All routines that return an integer return <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG>
(SVr4 specifies only "an integer value other than <STRONG>ERR</STRONG>") upon successful
- completion, unless otherwise noted in the preceding routine descrip-
- tions.
+ completion, unless otherwise noted in the preceding routine
+ descriptions.
+
+ X/Open Curses does not specify any error conditions. In this
+ implementation, functions with a window parameter will return an error
+ if it is null. Any function will also return an error if the terminal
+ was not initialized. Also,
+
+ <STRONG>halfdelay</STRONG>
+ returns an error if its parameter is outside the range 1..255.
+
+
+</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
+ <STRONG>echo</STRONG>, <STRONG>noecho</STRONG>, <STRONG>halfdelay</STRONG>, <STRONG>intrflush</STRONG>, <STRONG>meta</STRONG>, <STRONG>nl</STRONG>, <STRONG>nonl</STRONG>, <STRONG>nodelay</STRONG>, <STRONG>notimeout</STRONG>,
+ <STRONG>noqiflush</STRONG>, <STRONG>qiflush</STRONG>, <STRONG>timeout</STRONG>, and <STRONG>wtimeout</STRONG> may be implemented as macros.
+
+ <STRONG>noraw</STRONG> and <STRONG>nocbreak</STRONG> follow historical practice in that they attempt to
+ restore normal ("cooked") mode from raw and cbreak modes respectively.
+ Mixing <STRONG>raw</STRONG>/<STRONG>noraw</STRONG> and <STRONG>cbreak</STRONG>/<STRONG>nocbreak</STRONG> calls leads to terminal driver
+ control states that are hard to predict or understand; doing so is not
+ recommended.
+
- X/Open does not define any error conditions. In this implementation,
- functions with a window parameter will return an error if it is null.
- Any function will also return an error if the terminal was not initial-
- ized. Also,
+</PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
+ <EM>ncurses</EM> provides four "is_" functions that may be used to detect if the
+ corresponding flags were set or reset.
- <STRONG>halfdelay</STRONG>
- returns an error if its parameter is outside the range
- 1..255.
+ <STRONG>Query</STRONG> <STRONG>Set</STRONG> <STRONG>Reset</STRONG>
+ ------------------------------
+ is_cbreak cbreak nocbreak
+ is_echo echo noecho
+ is_nl nl nonl
+ is_raw raw noraw
+
+ In each case, the function returns
+
+ 1 if the flag is set,
+
+ 0 if the flag is reset, or
+
+ -1 if the library is not initialized.
+
+ They were designed for <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>, and are not found in SVr4 <EM>curses</EM>,
+ 4.4BSD <EM>curses</EM>, or any other previous <EM>curses</EM> implementation.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These functions are described in the XSI Curses standard, Issue 4.
-
- The ncurses library obeys the XPG4 standard and the historical practice
- of the AT&amp;T curses implementations, in that the echo bit is cleared
- when curses initializes the terminal state. BSD curses differed from
- this slightly; it left the echo bit on at initialization, but the BSD
- <STRONG>raw</STRONG> call turned it off as a side-effect. For best portability, set
- <STRONG>echo</STRONG> or <STRONG>noecho</STRONG> explicitly just after initialization, even if your pro-
- gram remains in cooked mode.
-
- The XSI Curses standard is ambiguous on the question of whether <STRONG>raw</STRONG>
- should disable the CRLF translations controlled by <STRONG>nl</STRONG> and <STRONG>nonl</STRONG>. BSD
- curses did turn off these translations; AT&amp;T curses (at least as late
- as SVr1) did not. We chose to do so, on the theory that a programmer
- requesting raw input wants a clean (ideally 8-bit clean) connection
- that the operating system will not alter.
-
- When <STRONG>keypad</STRONG> is first enabled, ncurses loads the key-definitions for the
- current terminal description. If the terminal description includes ex-
- tended string capabilities, e.g., from using the <STRONG>-x</STRONG> option of <STRONG>tic</STRONG>, then
- ncurses also defines keys for the capabilities whose names begin with
- "k". The corresponding keycodes are generated and (depending on previ-
- ous loads of terminal descriptions) may differ from one execution of a
- program to the next. The generated keycodes are recognized by the <STRONG>key-</STRONG>
- <STRONG>name</STRONG> function (which will then return a name beginning with "k" denot-
- ing the terminfo capability name rather than "K", used for curses key-
- names). On the other hand, an application can use <STRONG>define_key</STRONG> to estab-
- lish a specific keycode for a given string. This makes it possible for
- an application to check for an extended capability's presence with
- <STRONG>tigetstr</STRONG>, and reassign the keycode to match its own needs.
+ Applications employing <EM>ncurses</EM> extensions should condition their use on
+ the visibility of the <STRONG>NCURSES_VERSION</STRONG> preprocessor macro.
+
+ Except as noted in section "EXTENSIONS" above, X/Open Curses, Issue 4,
+ Version 2 describes these functions.
+
+ <EM>ncurses</EM> follows X/Open Curses and the historical practice of AT&amp;T
+ <EM>curses</EM> implementations, in that the echo bit is cleared when <EM>curses</EM>
+ initializes the terminal state. BSD <EM>curses</EM> differed from this
+ slightly; it left the echo bit on at initialization, but the BSD <STRONG>raw</STRONG>
+ call turned it off as a side effect. For best portability, set <STRONG>echo</STRONG> or
+ <STRONG>noecho</STRONG> explicitly just after initialization, even if your program
+ remains in cooked mode.
+
+ X/Open Curses is ambiguous regarding whether <STRONG>raw</STRONG> should disable the
+ CR/LF translations controlled by <STRONG>nl</STRONG> and <STRONG>nonl</STRONG>. BSD <EM>curses</EM> did turn off
+ these translations; AT&amp;T <EM>curses</EM> (at least as late as SVr1) did not.
+ <EM>ncurses</EM> does so, on the assumption that a programmer requesting raw
+ input wants a clean (ideally, 8-bit clean) connection that the
+ operating system will not alter.
+
+ When <STRONG>keypad</STRONG> is first enabled, <EM>ncurses</EM> loads the key definitions for the
+ current terminal description. If the terminal description includes
+ extended string capabilities, e.g., from using the <STRONG>-x</STRONG> option of <STRONG>tic</STRONG>,
+ then <EM>ncurses</EM> also defines keys for the capabilities whose names begin
+ with "k". The corresponding keycodes are generated and (depending on
+ previous loads of terminal descriptions) may differ from one execution
+ of a program to the next. The generated keycodes are recognized by the
+ <STRONG><A HREF="curs_util.3x.html">keyname(3x)</A></STRONG> function (which will then return a name beginning with "k"
+ denoting the terminfo capability name rather than "K", used for <EM>curses</EM>
+ key names). On the other hand, an application can use <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>
+ to establish a specific keycode for a given string. This makes it
+ possible for an application to check for an extended capability's
+ presence with <STRONG>tigetstr</STRONG>, and reassign the keycode to match its own
+ needs.
Low-level applications can use <STRONG>tigetstr</STRONG> to obtain the definition of any
particular string capability. Higher-level applications which use the
- curses <STRONG>wgetch</STRONG> and similar functions to return keycodes rely upon the
+ <EM>curses</EM> <STRONG>wgetch</STRONG> and similar functions to return keycodes rely upon the
order in which the strings are loaded. If more than one key definition
has the same string value, then <STRONG>wgetch</STRONG> can return only one keycode.
- Most curses implementations (including ncurses) load key definitions in
+ Most <EM>curses</EM> implementations (including <EM>ncurses</EM>) load key definitions in
the order defined by the array of string capability names. The last
key to be loaded determines the keycode which will be returned. In
- ncurses, you may also have extended capabilities interpreted as key
- definitions. These are loaded after the predefined keys, and if a ca-
- pability's value is the same as a previously-loaded key definition, the
- later definition is the one used.
+ <EM>ncurses</EM>, you may also have extended capabilities interpreted as key
+ definitions. These are loaded after the predefined keys, and if a
+ capability's value is the same as a previously-loaded key definition,
+ the later definition is the one used.
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- Note that <STRONG>echo</STRONG>, <STRONG>noecho</STRONG>, <STRONG>halfdelay</STRONG>, <STRONG>intrflush</STRONG>, <STRONG>meta</STRONG>, <STRONG>nl</STRONG>, <STRONG>nonl</STRONG>, <STRONG>nodelay</STRONG>,
- <STRONG>notimeout</STRONG>, <STRONG>noqiflush</STRONG>, <STRONG>qiflush</STRONG>, <STRONG>timeout</STRONG>, and <STRONG>wtimeout</STRONG> may be macros.
-
- The <STRONG>noraw</STRONG> and <STRONG>nocbreak</STRONG> calls follow historical practice in that they
- attempt to restore to normal ("cooked") mode from raw and cbreak modes
- respectively. Mixing raw/noraw and cbreak/nocbreak calls leads to tty
- driver control states that are hard to predict or understand; it is not
- recommended.
+</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
+ Formerly, <EM>ncurses</EM> used <STRONG>nl</STRONG> and <STRONG>nonl</STRONG> to control the conversion of
+ newlines to carriage return/line feed on output as well as input.
+ X/Open Curses documents the use of these functions only for input.
+ This difference arose from converting the <EM>pcurses</EM> source (1986), which
+ used <STRONG>ioctl(2)</STRONG> calls and the <EM>sgttyb</EM> structure, to <EM>termios</EM> (the POSIX
+ terminal API). In the former, both input and output were controlled
+ via a single option <STRONG>CRMOD</STRONG>, while the latter separates these features.
+ Because that conversion interferes with output optimization, <EM>ncurses</EM>
+ 6.2 (2020) amended <STRONG>nl</STRONG> and <STRONG>nonl</STRONG> to eliminate their effect on output.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>, <STRONG>de-</STRONG>
- <STRONG><A HREF="define_key.3x.html">fine_key(3x)</A></STRONG>, <STRONG>termios(3)</STRONG>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>,
+ <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>, <STRONG>termios(3)</STRONG>
- <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
+ncurses 6.5 2024-04-13 <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -310,24 +357,26 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
<ul>
-<li><a href="#h3-cbreak_nocbreak">cbreak/nocbreak</a></li>
-<li><a href="#h3-echo_noecho">echo/noecho</a></li>
+<li><a href="#h3-cbreak_nocbreak">cbreak, nocbreak</a></li>
+<li><a href="#h3-echo_noecho">echo, noecho</a></li>
<li><a href="#h3-halfdelay">halfdelay</a></li>
<li><a href="#h3-intrflush">intrflush</a></li>
<li><a href="#h3-keypad">keypad</a></li>
<li><a href="#h3-meta">meta</a></li>
-<li><a href="#h3-nl_nonl">nl/nonl</a></li>
+<li><a href="#h3-nl_nonl">nl, nonl</a></li>
<li><a href="#h3-nodelay">nodelay</a></li>
<li><a href="#h3-notimeout">notimeout</a></li>
-<li><a href="#h3-raw_noraw">raw/noraw</a></li>
-<li><a href="#h3-qiflush_noqiflush">qiflush/noqiflush</a></li>
-<li><a href="#h3-timeout_wtimeout">timeout/wtimeout</a></li>
+<li><a href="#h3-raw_noraw">raw, noraw</a></li>
+<li><a href="#h3-qiflush_nqiflush">qiflush, nqiflush</a></li>
+<li><a href="#h3-timeout_wtimeout">timeout, wtimeout</a></li>
<li><a href="#h3-typeahead">typeahead</a></li>
</ul>
</li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-NOTES">NOTES</a></li>
+<li><a href="#h2-EXTENSIONS">EXTENSIONS</a></li>
+<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
+<li><a href="#h2-HISTORY">HISTORY</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
diff --git a/doc/html/man/curs_ins_wch.3x.html b/doc/html/man/curs_ins_wch.3x.html
index 5ab6a01189f8..7c25b2ed7e9d 100644
--- a/doc/html/man/curs_ins_wch.3x.html
+++ b/doc/html/man/curs_ins_wch.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2023,2024 Thomas E. Dickey *
* Copyright 2002-2010,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,66 +27,84 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_ins_wch.3x,v 1.10 2020/10/18 00:22:21 tom Exp @
+ * @Id: curs_ins_wch.3x,v 1.30 2024/04/20 19:18:18 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_ins_wch 3x</TITLE>
+<TITLE>curs_ins_wch 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_ins_wch 3x</H1>
+<H1 class="no-header">curs_ins_wch 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG> <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
+<STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>ins_wch</STRONG>, <STRONG>mvins_wch</STRONG>, <STRONG>mvwins_wch</STRONG>, <STRONG>wins_wch</STRONG> - insert a complex character
- and rendition into a window
+ <STRONG>ins_wch</STRONG>, <STRONG>mvins_wch</STRONG>, <STRONG>mvwins_wch</STRONG>, <STRONG>wins_wch</STRONG> - insert a <EM>curses</EM> complex
+ character in a window
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
- #include &lt;curses.h&gt;
+ <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
<STRONG>int</STRONG> <STRONG>ins_wch(const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>wins_wch(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
-
<STRONG>int</STRONG> <STRONG>mvins_wch(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>mvwins_wch(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- These routines, insert the complex character <EM>wch</EM> with rendition before
- the character under the cursor. All characters to the right of the
- cursor are moved one space to the right, with the possibility of the
- rightmost character on the line being lost. The insertion operation
- does not change the cursor position.
+ These functions insert the <EM>curses</EM> complex character <EM>wch</EM> at the cursor
+ in the specified window <EM>win</EM> (or <STRONG>stdscr</STRONG>). The character previously at
+ the cursor and any to its right move one cell to the right; the
+ rightmost character on the line is discarded. The cursor does not
+ advance.
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- If successful, these functions return <STRONG>OK</STRONG>. If not, they return <STRONG>ERR</STRONG>.
+ These functions return <STRONG>OK</STRONG> on success and <STRONG>ERR</STRONG> on failure.
+
+ Functions taking a <EM>WINDOW</EM> pointer argument fail if the pointer is <STRONG>NULL</STRONG>.
+
+ Functions prefixed with "mv" first perform cursor movement and fail if
+ the position (<EM>y</EM>, <EM>x</EM>) is outside the window boundaries.
+
- Functions with a "mv" prefix first perform a cursor movement using
- <STRONG>wmove</STRONG>, and return an error if the position is outside the window, or if
- the window pointer is null.
+</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
+ A terminal's <STRONG>insert_character</STRONG> (<STRONG>ich1</STRONG>) capability is not necessarily
+ employed.
+ <STRONG>ins_wch</STRONG>, <STRONG>mvins_wch</STRONG>, and <STRONG>mvwins_wch</STRONG> may be implemented as macros.
-</PRE><H2><a name="h2-ERRORS">ERRORS</a></H2><PRE>
- No errors are defined.
+
+</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
+ X/Open Curses, Issue 4 describes these functions.
+
+ SVr4 describes successful return values only as "an integer value other
+ than <STRONG>ERR</STRONG>".
+
+
+</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
+ SVr4 (1989) implemented these functions under the names <STRONG>inswch</STRONG>,
+ <STRONG>winswch</STRONG>, <STRONG>mvinswch</STRONG>, and <STRONG>mvwinswch</STRONG>.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>.
+ <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG> describes comparable functions in the non-wide-character
+ <EM>curses</EM> configuration.
+
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
- <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -94,7 +112,9 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-ERRORS">ERRORS</a></li>
+<li><a href="#h2-NOTES">NOTES</a></li>
+<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
+<li><a href="#h2-HISTORY">HISTORY</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
diff --git a/doc/html/man/curs_ins_wstr.3x.html b/doc/html/man/curs_ins_wstr.3x.html
index fdb40881149d..f2982eaa14ab 100644
--- a/doc/html/man/curs_ins_wstr.3x.html
+++ b/doc/html/man/curs_ins_wstr.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2023,2024 Thomas E. Dickey *
* Copyright 2002-2012,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,35 +27,35 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_ins_wstr.3x,v 1.11 2020/10/17 23:21:25 tom Exp @
+ * @Id: curs_ins_wstr.3x,v 1.38 2024/04/20 21:23:08 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_ins_wstr 3x</TITLE>
+<TITLE>curs_ins_wstr 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_ins_wstr 3x</H1>
+<H1 class="no-header">curs_ins_wstr 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG> <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
+<STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>ins_wstr</STRONG>, <STRONG>ins_nwstr</STRONG>, <STRONG>wins_wstr</STRONG>, <STRONG>wins_nwstr</STRONG>, <STRONG>mvins_wstr</STRONG>, <STRONG>mvins_nwstr</STRONG>,
- <STRONG>mvwins_wstr</STRONG>, <STRONG>mvwins_nwstr</STRONG> - insert a wide-character string into a
- curses window
+ <STRONG>ins_wstr</STRONG>, <STRONG>ins_nwstr</STRONG>, <STRONG>wins_wstr</STRONG>, <STRONG>wins_nwstr</STRONG>, <STRONG>mvins_wstr</STRONG>, <STRONG>mvins_nwstr</STRONG>,
+ <STRONG>mvwins_wstr</STRONG>, <STRONG>mvwins_nwstr</STRONG> - insert a wide-character string in a <EM>curses</EM>
+ window
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
<STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
- <STRONG>int</STRONG> <STRONG>ins_wstr(const</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wstr);</EM>
+ <STRONG>int</STRONG> <STRONG>ins_wstr(const</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wstr</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>ins_nwstr(const</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>wins_wstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wstr</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>wins_nwstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
@@ -68,55 +68,72 @@
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
These routines insert a <STRONG>wchar_t</STRONG> character string (as many characters as
- will fit on the line) before the character under the cursor. All char-
- acters to the right of the cursor are shifted right, with the possibil-
- ity of the rightmost characters on the line being lost. No wrapping is
- performed. The cursor position does not change (after moving to <EM>y</EM>, <EM>x</EM>,
- if specified). The four routines with <EM>n</EM> as the last argument insert a
- leading substring of at most <EM>n</EM> <STRONG>wchar_t</STRONG> characters. If <EM>n</EM> is less than
- 1, the entire string is inserted.
-
- If a character in <EM>wstr</EM> is a tab, newline, carriage return or backspace,
- the cursor is moved appropriately within the window. A newline also
- does a <STRONG>clrtoeol</STRONG> before moving. Tabs are considered to be at every
- eighth column. If a character in <EM>wstr</EM> is another control character, it
- is drawn in the <STRONG>^</STRONG><EM>X</EM> notation. Calling <STRONG>win_wch</STRONG> after adding a control
- character (and moving to it, if necessary) does not return the control
- character, but instead returns a character in the ^-representation of
- the control character.
+ will fit on the line) before the character under the cursor, as if
+ calling <STRONG><A HREF="curs_ins_wch.3x.html">wins_wch(3x)</A></STRONG>. All characters to the right of the cursor are
+ shifted right, with the possibility of the rightmost characters on the
+ line being lost. No wrapping is performed.
+ The cursor position does not change (after moving to <EM>y</EM>, <EM>x</EM>, if
+ specified).
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- Note that all but wins_nwstr may be macros.
+ The functions with <EM>n</EM> as the last argument insert a leading substring of
+ at most <EM>n</EM> <STRONG>wchar_t</STRONG> characters. If <EM>n</EM> is less than zero, the entire
+ string is inserted (stopping on a L'\0' character).
- If the first character in the string is a nonspacing character, these
- functions will fail. XSI does not define what will happen if a non-
- spacing character follows a control character.
+ Special characters are handled as in <STRONG><A HREF="curs_add_wch.3x.html">wadd_wch(3x)</A></STRONG>.
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- Upon successful completion, these functions return <STRONG>OK</STRONG>. Otherwise, they
- return <STRONG>ERR</STRONG>.
+ All functions return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> on success.
+
+ X/Open Curses does not specify any error conditions. This
+ implementation returns an error
+
+ <STRONG>o</STRONG> if the <EM>win</EM> parameter is null or
+
+ <STRONG>o</STRONG> if the <EM>wstr</EM> parameter is null or
+
+ <STRONG>o</STRONG> if the <STRONG>wins_wch</STRONG> function returns an error.
+
+ Functions prefixed with "mv" first perform cursor movement and fail if
+ the position (<EM>y</EM>, <EM>x</EM>) is outside the window boundaries.
+
- Functions with a "mv" prefix first perform a cursor movement using
- <STRONG>wmove</STRONG>, and return an error if the position is outside the window, or if
- the window pointer is null.
+</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
+ All but <STRONG>wins_nwstr</STRONG> may be macros.
+
+ If the first character in the string is a non-spacing character, these
+ functions will fail. X/Open Curses does not define what will happen if
+ a non-spacing character follows a control character.
+
+
+</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
+ These functions are described in X/Open Curses, Issue 4, which adds
+ <EM>const</EM> qualifiers to the arguments.
+
+ X/Open states that the entire string is inserted if <EM>n</EM> is less than 1.
+ This is probably an error, because it is inconsistent with other
+ functions, and differs from the X/Open implementation on Solaris.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>, <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>, <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>.
+ <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG> describes comparable functions of the <EM>ncurses</EM> library
+ in its non-wide-character configuration.
+
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>, <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
- <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<li><a href="#h2-NAME">NAME</a></li>
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
+<li><a href="#h2-NOTES">NOTES</a></li>
+<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
diff --git a/doc/html/man/curs_insch.3x.html b/doc/html/man/curs_insch.3x.html
index c727aa7149db..5f60c67c0fde 100644
--- a/doc/html/man/curs_insch.3x.html
+++ b/doc/html/man/curs_insch.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2010,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,28 +27,28 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_insch.3x,v 1.19 2020/10/18 00:21:39 tom Exp @
+ * @Id: curs_insch.3x,v 1.40 2024/04/20 19:03:47 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_insch 3x</TITLE>
+<TITLE>curs_insch 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_insch 3x</H1>
+<H1 class="no-header">curs_insch 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG> <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
+<STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>insch</STRONG>, <STRONG>winsch</STRONG>, <STRONG>mvinsch</STRONG>, <STRONG>mvwinsch</STRONG> - insert a character before cursor in
- a <STRONG>curses</STRONG> window
+ <STRONG>insch</STRONG>, <STRONG>winsch</STRONG>, <STRONG>mvinsch</STRONG>, <STRONG>mvwinsch</STRONG> - insert a <EM>curses</EM> character in a
+ window
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -56,50 +56,49 @@
<STRONG>int</STRONG> <STRONG>insch(chtype</STRONG> <EM>ch</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>winsch(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>chtype</STRONG> <EM>ch</EM><STRONG>);</STRONG>
-
<STRONG>int</STRONG> <STRONG>mvinsch(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>chtype</STRONG> <EM>ch</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>mvwinsch(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>chtype</STRONG> <EM>ch</EM><STRONG>);</STRONG>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- These routines insert the character <EM>ch</EM> before the character under the
- cursor. All characters to the right of the cursor are moved one space
- to the right, with the possibility of the rightmost character on the
- line being lost. The insertion operation does not change the cursor
- position.
+ These functions insert the <EM>curses</EM> character <EM>ch</EM> at the cursor in the
+ specified window <EM>win</EM> (or <STRONG>stdscr</STRONG>). The character previously at the
+ cursor and any to its right move one cell to the right; the rightmost
+ character on the line is discarded. The cursor does not advance.
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- All routines that return an integer return <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG>
- (SVr4 specifies only "an integer value other than <STRONG>ERR</STRONG>") upon successful
- completion, unless otherwise noted in the preceding routine
- descriptions.
+ These functions return <STRONG>OK</STRONG> on success and <STRONG>ERR</STRONG> on failure.
- Functions with a "mv" prefix first perform a cursor movement using
- <STRONG>wmove</STRONG>, and return an error if the position is outside the window, or if
- the window pointer is null.
+ Functions taking a <EM>WINDOW</EM> pointer argument fail if the pointer is <STRONG>NULL</STRONG>.
+
+ Functions prefixed with "mv" first perform cursor movement and fail if
+ the position (<EM>y</EM>, <EM>x</EM>) is outside the window boundaries.
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- These routines do not necessarily imply use of a hardware insert
- character feature.
+ <STRONG>insch</STRONG>, <STRONG>mvinsch</STRONG>, and <STRONG>mvwinsch</STRONG> may be implemented as macros.
- Note that <STRONG>insch</STRONG>, <STRONG>mvinsch</STRONG>, and <STRONG>mvwinsch</STRONG> may be macros.
+ A terminal's <STRONG>insert_character</STRONG> (<STRONG>ich1</STRONG>) capability is not necessarily
+ employed.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These functions are described in the XSI Curses standard, Issue 4.
+ X/Open Curses, Issue 4 describes these functions.
+
+ SVr4 <EM>curses</EM> describes a successful return value only as "an integer
+ value other than <STRONG>ERR</STRONG>".
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>.
+ <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG> describes comparable functions in the wide-character
+ <EM>curses</EM> configuration.
- Comparable functions in the wide-character (ncursesw) library are
- described in <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>.
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
- <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
diff --git a/doc/html/man/curs_insstr.3x.html b/doc/html/man/curs_insstr.3x.html
index 7d4815a6914b..04e0239925e2 100644
--- a/doc/html/man/curs_insstr.3x.html
+++ b/doc/html/man/curs_insstr.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2023,2024 Thomas E. Dickey *
* Copyright 1998-2010,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,28 +27,28 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_insstr.3x,v 1.26 2020/10/18 00:20:36 tom Exp @
+ * @Id: curs_insstr.3x,v 1.51 2024/04/20 21:20:07 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_insstr 3x</TITLE>
+<TITLE>curs_insstr 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_insstr 3x</H1>
+<H1 class="no-header">curs_insstr 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG> <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
+<STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
<STRONG>insstr</STRONG>, <STRONG>insnstr</STRONG>, <STRONG>winsstr</STRONG>, <STRONG>winsnstr</STRONG>, <STRONG>mvinsstr</STRONG>, <STRONG>mvinsnstr</STRONG>, <STRONG>mvwinsstr</STRONG>,
- <STRONG>mvwinsnstr</STRONG> - insert string before cursor in a <STRONG>curses</STRONG> window
+ <STRONG>mvwinsnstr</STRONG> - insert a string in a <EM>curses</EM> window
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -66,51 +66,62 @@
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
These routines insert a character string (as many characters as will
- fit on the line) before the character under the cursor. All characters
- to the right of the cursor are shifted right with the possibility of
- the rightmost characters on the line being lost. The cursor position
- does not change (after moving to <EM>y</EM>, <EM>x</EM>, if specified). The functions
- with <EM>n</EM> as the last argument insert a leading substring of at most <EM>n</EM>
- characters. If <EM>n</EM>&lt;=0, then the entire string is inserted.
+ fit on the line) before the character under the cursor, as if calling
+ <STRONG><A HREF="curs_insch.3x.html">winsch(3x)</A></STRONG>. All characters to the right of the cursor are shifted
+ right, with the possibility of the rightmost characters on the line
+ being lost. No wrapping is performed.
+
+ The cursor position does not change (after moving to <EM>y</EM>, <EM>x</EM>, if
+ specified).
- Special characters are handled as in <STRONG>addch</STRONG>.
+ The functions with <EM>n</EM> as the last argument insert a leading substring of
+ at most <EM>n</EM> characters. If <EM>n</EM> is less than zero, the entire string is
+ inserted (stopping on a NUL character).
+
+ Special characters are handled as in <STRONG><A HREF="curs_addch.3x.html">waddch(3x)</A></STRONG>.
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- All routines that return an integer return <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG>
- (SVr4 specifies only "an integer value other than <STRONG>ERR</STRONG>") upon successful
- completion, unless otherwise noted in the preceding routine
- descriptions.
+ All functions return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> on success.
+
+ X/Open Curses does not specify any error conditions. This
+ implementation returns an error
- X/Open defines no error conditions. In this implementation, if the
- window parameter is null or the str parameter is null, an error is
- returned.
+ <STRONG>o</STRONG> if the <EM>win</EM> parameter is null or
- Functions with a "mv" prefix first perform a cursor movement using
- <STRONG>wmove</STRONG>, and return an error if the position is outside the window, or if
- the window pointer is null.
+ <STRONG>o</STRONG> if the <EM>str</EM> parameter is null or
+
+ <STRONG>o</STRONG> the <STRONG><A HREF="curs_insch.3x.html">winsch(3x)</A></STRONG> function returns an error.
+
+ Functions prefixed with "mv" first perform cursor movement and fail if
+ the position (<EM>y</EM>, <EM>x</EM>) is outside the window boundaries.
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- Note that all but <STRONG>winsnstr</STRONG> may be macros.
+ All but <STRONG>winsnstr</STRONG> may be macros.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These functions are described in the XSI Curses standard, Issue 4,
- which adds const qualifiers to the arguments.
+ These functions are described in X/Open Curses, Issue 4, which adds
+ <EM>const</EM> qualifiers to the arguments.
The Single Unix Specification, Version 2 states that <STRONG>insnstr</STRONG> and
<STRONG>winsnstr</STRONG> perform wrapping. This is probably an error, since it makes
this group of functions inconsistent. Also, no implementation of
curses documents this inconsistency.
+ X/Open states that the entire string is inserted if <EM>n</EM> is less than 1.
+ This is probably an error, because it is inconsistent with other
+ functions, and differs from the SVr4 and X/Open implementations on
+ Solaris.
+
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>, <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>, <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>.
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>, <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>, <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
- <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
diff --git a/doc/html/man/curs_instr.3x.html b/doc/html/man/curs_instr.3x.html
index cd6e72787b98..50d0f20e2d9b 100644
--- a/doc/html/man/curs_instr.3x.html
+++ b/doc/html/man/curs_instr.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2010,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,28 +27,28 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_instr.3x,v 1.22 2020/10/18 00:18:27 tom Exp @
+ * @Id: curs_instr.3x,v 1.51 2024/04/20 21:24:19 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_instr 3x</TITLE>
+<TITLE>curs_instr 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_instr 3x</H1>
+<H1 class="no-header">curs_instr 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG> <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
+<STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
<STRONG>instr</STRONG>, <STRONG>innstr</STRONG>, <STRONG>winstr</STRONG>, <STRONG>winnstr</STRONG>, <STRONG>mvinstr</STRONG>, <STRONG>mvinnstr</STRONG>, <STRONG>mvwinstr</STRONG>, <STRONG>mvwinnstr</STRONG>
- - get a string of characters from a <STRONG>curses</STRONG> window
+ - get a string from a <EM>curses</EM> window
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -66,47 +66,57 @@
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- These routines return a string of characters in <EM>str</EM>, extracted starting
- at the current cursor position in the named window. Attributes are
- stripped from the characters. The four functions with <EM>n</EM> as the last
- argument return a leading substring at most <EM>n</EM> characters long
- (exclusive of the trailing NUL).
+ These routines return a string of characters in <EM>str</EM>, starting at the
+ current cursor position in the named window. Attributes are stripped
+ from the characters.
+
+ The four functions with <EM>n</EM> as the last argument return a leading
+ substring at most <EM>n</EM> characters long (exclusive of the trailing NUL).
+ Transfer stops at the end of the current line, or when <EM>n</EM> characters
+ have been stored at the location referenced by <EM>str</EM>.
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- All of the functions return <STRONG>ERR</STRONG> upon failure, or the number of
+ All of the functions return <STRONG>ERR</STRONG> upon failure, or the number of
characters actually read into the string.
- X/Open Curses defines no error conditions. In this implementation:
+ X/Open Curses defines no error conditions. This implementation returns
+ an error
- <STRONG>o</STRONG> If the <EM>win</EM> parameter is null, an error is returned,
+ <STRONG>o</STRONG> if the <EM>win</EM> parameter is null or
- <STRONG>o</STRONG> If the <EM>chstr</EM> parameter is null, an error is returned,
+ <STRONG>o</STRONG> if the <EM>chstr</EM> parameter is null.
- Functions with a "mv" prefix first perform a cursor movement using
- <STRONG>wmove</STRONG>, and return an error if the position is outside the window, or if
- the window pointer is null.
+ Functions prefixed with "mv" first perform cursor movement and fail if
+ the position (<EM>y</EM>, <EM>x</EM>) is outside the window boundaries.
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- Note that all routines except <STRONG>winnstr</STRONG> may be macros.
+ All routines except <STRONG>winnstr</STRONG> may be macros.
+
+ Reading a line that overflows the array pointed to by <EM>str</EM> with <STRONG>instr</STRONG>,
+ <STRONG>mvinstr</STRONG>, <STRONG>mvwinstr</STRONG> or <STRONG>winstr</STRONG> causes undefined results. Therefore, the
+ use of <STRONG>innstr</STRONG>, <STRONG>mvinnstr</STRONG>, <STRONG>mvwinnstr</STRONG>, or <STRONG>winnstr</STRONG> is recommended.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- SVr4 does not document whether a length limit includes or excludes the
+ SVr4 does not document whether a length limit includes or excludes the
trailing NUL.
- The ncurses library extends the XSI description by allowing a negative
- value for <EM>n</EM>. In this case, the functions return the string ending at
- the right margin.
+ The <EM>ncurses</EM> library extends the X/Open Curses description by allowing a
+ negative value for <EM>n</EM>. In this case, the functions return the string
+ ending at the right margin.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>.
+ <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG> describes comparable functions of the <EM>ncurses</EM> library
+ in its wide-character configuration (<EM>ncursesw</EM>).
+
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>, <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
- <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
diff --git a/doc/html/man/curs_inwstr.3x.html b/doc/html/man/curs_inwstr.3x.html
index 3110967aeebe..6c79b595fbeb 100644
--- a/doc/html/man/curs_inwstr.3x.html
+++ b/doc/html/man/curs_inwstr.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 2002-2012,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,28 +27,28 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_inwstr.3x,v 1.14 2020/10/17 23:22:11 tom Exp @
+ * @Id: curs_inwstr.3x,v 1.41 2024/04/20 21:20:07 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_inwstr 3x</TITLE>
+<TITLE>curs_inwstr 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_inwstr 3x</H1>
+<H1 class="no-header">curs_inwstr 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG> <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
+<STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
<STRONG>inwstr</STRONG>, <STRONG>innwstr</STRONG>, <STRONG>winwstr</STRONG>, <STRONG>winnwstr</STRONG>, <STRONG>mvinwstr</STRONG>, <STRONG>mvinnwstr</STRONG>, <STRONG>mvwinwstr</STRONG>,
- <STRONG>mvwinnwstr</STRONG> - get a string of <STRONG>wchar_t</STRONG> characters from a curses window
+ <STRONG>mvwinnwstr</STRONG> - get a wide-character string from a <EM>curses</EM> window
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -67,7 +67,7 @@
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
These routines return a string of <STRONG>wchar_t</STRONG> wide characters in <EM>wstr</EM>,
- extracted starting at the current cursor position in the named window.
+ starting at the current cursor position in the named window.
The four functions with <EM>n</EM> as the last argument return a leading
substring at most <EM>n</EM> characters long (exclusive of the trailing NUL).
@@ -78,39 +78,58 @@
character, an error is generated.
+</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
+ All routines return <STRONG>ERR</STRONG> upon failure. Upon successful completion, the
+ *<STRONG>inwstr</STRONG> routines return <STRONG>OK</STRONG>, and the *<STRONG>innwstr</STRONG> routines return the number
+ of characters read into the string.
+
+ X/Open defines no error conditions. This implementation returns an
+ error
+
+ <STRONG>o</STRONG> if the <EM>win</EM> parameter is null or
+
+ <STRONG>o</STRONG> if the <EM>wstr</EM> parameter is null, or
+
+ <STRONG>o</STRONG> if no characters could be read.
+
+ Functions prefixed with "mv" first perform cursor movement and fail if
+ the position (<EM>y</EM>, <EM>x</EM>) is outside the window boundaries.
+
+
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
All routines except <STRONG>winnwstr</STRONG> may be macros.
- Each cell in the window holds a complex character (i.e., base- and
- combining-characters) together with attributes and color. These
- functions store only the wide characters, ignoring attributes and
- color. Use <STRONG>in_wchstr</STRONG> to return the complex characters from a window.
+ Each cell in the window holds a complex character (a spacing character
+ and zero or more non-spacing characters) together with attributes and
+ color. These functions store only the wide characters, ignoring
+ attributes and color. Use <STRONG>in_wchstr</STRONG> to return the complex characters
+ from a window.
+ Reading a line that overflows the array pointed to by <EM>wstr</EM> with <STRONG>inwstr</STRONG>,
+ <STRONG>mvinwstr</STRONG>, <STRONG>mvwinwstr</STRONG> or <STRONG>winwstr</STRONG> causes undefined results. Therefore,
+ the use of <STRONG>innwstr</STRONG>, <STRONG>mvinnwstr</STRONG>, <STRONG>mvwinnwstr</STRONG>, or <STRONG>winnwstr</STRONG> is recommended.
-</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- All routines return <STRONG>ERR</STRONG> upon failure. Upon successful completion, the
- *<STRONG>inwstr</STRONG> routines return <STRONG>OK</STRONG>, and the *<STRONG>innwstr</STRONG> routines return the number
- of characters read into the string.
- Functions with a "mv" prefix first perform a cursor movement using
- <STRONG>wmove</STRONG>, and return an error if the position is outside the window, or if
- the window pointer is null.
+</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
+ These functions are described in X/Open Curses, Issue 4.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>, <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>, <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>, <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>,
+ <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
- <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<li><a href="#h2-NAME">NAME</a></li>
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
+<li><a href="#h2-NOTES">NOTES</a></li>
+<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
diff --git a/doc/html/man/curs_kernel.3x.html b/doc/html/man/curs_kernel.3x.html
index d8932e326a91..90042caf9d2e 100644
--- a/doc/html/man/curs_kernel.3x.html
+++ b/doc/html/man/curs_kernel.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,29 +27,29 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_kernel.3x,v 1.29 2020/10/17 23:22:35 tom Exp @
+ * @Id: curs_kernel.3x,v 1.61 2024/04/20 21:24:19 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_kernel 3x</TITLE>
+<TITLE>curs_kernel 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_kernel 3x</H1>
+<H1 class="no-header">curs_kernel 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG> <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
+<STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>def_prog_mode</STRONG>, <STRONG>def_shell_mode</STRONG>, <STRONG>reset_prog_mode</STRONG>, <STRONG>reset_shell_mode</STRONG>,
- <STRONG>resetty</STRONG>, <STRONG>savetty</STRONG>, <STRONG>getsyx</STRONG>, <STRONG>setsyx</STRONG>, <STRONG>ripoffline</STRONG>, <STRONG>curs_set</STRONG>, <STRONG>napms</STRONG> - low-
- level <STRONG>curses</STRONG> routines
+ <STRONG>def_prog_mode</STRONG>, <STRONG>def_shell_mode</STRONG>, <STRONG>reset_prog_mode</STRONG>, <STRONG>reset_shell_mode</STRONG>,
+ <STRONG>resetty</STRONG>, <STRONG>savetty</STRONG>, <STRONG>getsyx</STRONG>, <STRONG>setsyx</STRONG>, <STRONG>ripoffline</STRONG>, <STRONG>curs_set</STRONG>, <STRONG>napms</STRONG> - low-
+ level <EM>curses</EM> routines
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -73,58 +73,58 @@
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- The following routines give low-level access to various <STRONG>curses</STRONG> capabil-
- ities. These routines typically are used inside library routines.
+ The following routines give low-level access to various <STRONG>curses</STRONG>
+ capabilities. These routines typically are used inside library
+ routines.
-</PRE><H3><a name="h3-def_prog_mode_-def_shell_mode">def_prog_mode, def_shell_mode</a></H3><PRE>
+</PRE><H3><a name="h3-def_prog_mode_def_shell_mode">def_prog_mode, def_shell_mode</a></H3><PRE>
The <STRONG>def_prog_mode</STRONG> and <STRONG>def_shell_mode</STRONG> routines save the current terminal
modes as the "program" (in <STRONG>curses</STRONG>) or "shell" (not in <STRONG>curses</STRONG>) state for
use by the <STRONG>reset_prog_mode</STRONG> and <STRONG>reset_shell_mode</STRONG> routines. This is done
- automatically by <STRONG>initscr</STRONG>. There is one such save area for each screen
+ automatically by <STRONG>initscr</STRONG>. There is one such save area for each screen
context allocated by <STRONG>newterm</STRONG>.
-</PRE><H3><a name="h3-reset_prog_mode_-reset_shell_mode">reset_prog_mode, reset_shell_mode</a></H3><PRE>
- The <STRONG>reset_prog_mode</STRONG> and <STRONG>reset_shell_mode</STRONG> routines restore the terminal
- to "program" (in <STRONG>curses</STRONG>) or "shell" (out of <STRONG>curses</STRONG>) state. These are
- done automatically by <STRONG><A HREF="curs_initscr.3x.html">endwin(3x)</A></STRONG> and, after an <STRONG>endwin</STRONG>, by <STRONG>doupdate</STRONG>, so
+</PRE><H3><a name="h3-reset_prog_mode_reset_shell_mode">reset_prog_mode, reset_shell_mode</a></H3><PRE>
+ The <STRONG>reset_prog_mode</STRONG> and <STRONG>reset_shell_mode</STRONG> routines restore the terminal
+ to "program" (in <STRONG>curses</STRONG>) or "shell" (out of <STRONG>curses</STRONG>) state. These are
+ done automatically by <STRONG><A HREF="curs_initscr.3x.html">endwin(3x)</A></STRONG> and, after an <STRONG>endwin</STRONG>, by <STRONG>doupdate</STRONG>, so
they normally are not called.
-</PRE><H3><a name="h3-resetty_-savetty">resetty, savetty</a></H3><PRE>
- The <STRONG>resetty</STRONG> and <STRONG>savetty</STRONG> routines save and restore the state of the ter-
- minal modes. <STRONG>savetty</STRONG> saves the current state in a buffer and <STRONG>resetty</STRONG>
- restores the state to what it was at the last call to <STRONG>savetty</STRONG>.
+</PRE><H3><a name="h3-resetty_savetty">resetty, savetty</a></H3><PRE>
+ The <STRONG>resetty</STRONG> and <STRONG>savetty</STRONG> routines save and restore the state of the
+ terminal modes. <STRONG>savetty</STRONG> saves the current state in a buffer and
+ <STRONG>resetty</STRONG> restores the state to what it was at the last call to <STRONG>savetty</STRONG>.
</PRE><H3><a name="h3-getsyx">getsyx</a></H3><PRE>
- The <STRONG>getsyx</STRONG> routine returns the current coordinates of the <EM>virtual</EM>
- <EM>screen</EM> cursor in <EM>y</EM> and <EM>x</EM>. If <STRONG>leaveok</STRONG> is currently <STRONG>TRUE</STRONG>, then <STRONG>-1</STRONG>,<STRONG>-1</STRONG> is
+ The <STRONG>getsyx</STRONG> routine returns the current coordinates of the <EM>virtual</EM>
+ <EM>screen</EM> cursor in <EM>y</EM> and <EM>x</EM>. If <STRONG>leaveok</STRONG> is currently <STRONG>TRUE</STRONG>, then <STRONG>-1</STRONG>,<STRONG>-1</STRONG> is
returned. If lines have been removed from the top of the screen, using
- <STRONG>ripoffline</STRONG>, <EM>y</EM> and <EM>x</EM> include these lines; therefore, <EM>y</EM> and <EM>x</EM> should be
+ <STRONG>ripoffline</STRONG>, <EM>y</EM> and <EM>x</EM> include these lines; therefore, <EM>y</EM> and <EM>x</EM> should be
used only as arguments for <STRONG>setsyx</STRONG>.
Few applications will use this feature, most use <STRONG>getyx</STRONG> instead.
</PRE><H3><a name="h3-setsyx">setsyx</a></H3><PRE>
- The <STRONG>setsyx</STRONG> routine sets the <EM>virtual</EM> <EM>screen</EM> cursor to <EM>y</EM>, <EM>x</EM>. If <EM>y</EM> and <EM>x</EM>
- are both <STRONG>-1</STRONG>, then <STRONG>leaveok</STRONG> is set. The two routines <STRONG>getsyx</STRONG> and <STRONG>setsyx</STRONG>
- are designed to be used by a library routine, which manipulates <STRONG>curses</STRONG>
- windows but does not want to change the current position of the pro-
- gram's cursor. The library routine would call <STRONG>getsyx</STRONG> at the beginning,
- do its manipulation of its own windows, do a <STRONG>wnoutrefresh</STRONG> on its win-
- dows, call <STRONG>setsyx</STRONG>, and then call <STRONG>doupdate</STRONG>.
+ The <STRONG>setsyx</STRONG> routine sets the <EM>virtual</EM> <EM>screen</EM> cursor to <EM>y</EM>, <EM>x</EM>. If <EM>y</EM> and <EM>x</EM>
+ are both <STRONG>-1</STRONG>, then <STRONG>leaveok</STRONG> is set. The two routines <STRONG>getsyx</STRONG> and <STRONG>setsyx</STRONG>
+ are designed to be used by a library routine, which manipulates <STRONG>curses</STRONG>
+ windows but does not want to change the current position of the
+ program's cursor. The library routine would call <STRONG>getsyx</STRONG> at the
+ beginning, do its manipulation of its own windows, do a <STRONG>wnoutrefresh</STRONG> on
+ its windows, call <STRONG>setsyx</STRONG>, and then call <STRONG>doupdate</STRONG>.
Few applications will use this feature, most use <STRONG>wmove</STRONG> instead.
</PRE><H3><a name="h3-ripoffline">ripoffline</a></H3><PRE>
- The <STRONG>ripoffline</STRONG> routine provides access to the same facility that
- <STRONG>slk_init</STRONG> [see <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>] uses to reduce the size of the screen.
- <STRONG>ripoffline</STRONG> must be called before <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG> is called, to pre-
- pare these initial actions:
+ <STRONG>ripoffline</STRONG> provides access to the same facility that <STRONG><A HREF="curs_slk.3x.html">slk_init(3x)</A></STRONG> uses
+ to reduce the size of the screen. <STRONG>ripoffline</STRONG> must be called before
+ <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG> is called, to prepare these initial actions:
<STRONG>o</STRONG> If <EM>line</EM> is positive, a line is removed from the top of <STRONG>stdscr</STRONG>.
@@ -138,9 +138,9 @@
<STRONG>o</STRONG> an integer with the number of columns in the window.
Inside this initialization routine, the integer variables <STRONG>LINES</STRONG> and
- <STRONG>COLS</STRONG> (defined in <STRONG>&lt;curses.h&gt;</STRONG>) are not guaranteed to be accurate and <STRONG>wre-</STRONG>
- <STRONG>fresh</STRONG> or <STRONG>doupdate</STRONG> must not be called. It is allowable to call <STRONG>wnoutre-</STRONG>
- <STRONG>fresh</STRONG> during the initialization routine.
+ <STRONG>COLS</STRONG> (defined in <STRONG>&lt;curses.h&gt;</STRONG>) are not guaranteed to be accurate and
+ <STRONG>wrefresh</STRONG> or <STRONG>doupdate</STRONG> must not be called. It is allowable to call
+ <STRONG>wnoutrefresh</STRONG> during the initialization routine.
<STRONG>ripoffline</STRONG> can be called up to five times before calling <STRONG>initscr</STRONG> or
<STRONG>newterm</STRONG>.
@@ -154,13 +154,14 @@
</PRE><H3><a name="h3-napms">napms</a></H3><PRE>
- The <STRONG>napms</STRONG> routine is used to sleep for <EM>ms</EM> milliseconds.
+ <STRONG>napms</STRONG> sleeps for <EM>ms</EM> milliseconds. If <EM>ms</EM> exceeds 30,000 (thirty
+ seconds), it is capped at that value.
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
Except for <STRONG>curs_set</STRONG>, these routines always return <STRONG>OK</STRONG>.
- <STRONG>curs_set</STRONG> returns the previous cursor state, or <STRONG>ERR</STRONG> if the requested
+ <STRONG>curs_set</STRONG> returns the previous cursor state, or <STRONG>ERR</STRONG> if the requested
<EM>visibility</EM> is not supported.
X/Open defines no error conditions. In this implementation
@@ -171,40 +172,43 @@
<STRONG>ripoffline</STRONG>
returns an error if the maximum number of ripped-off lines exceeds
- the maximum (NRIPS = 5).
+ the maximum (5).
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
Note that <STRONG>getsyx</STRONG> is a macro, so <STRONG>&amp;</STRONG> is not necessary before the variables
<EM>y</EM> and <EM>x</EM>.
- Older SVr4 man pages warn that the return value of <STRONG>curs_set</STRONG> "is cur-
- rently incorrect". This implementation gets it right, but it may be
+ Older SVr4 man pages warn that the return value of <STRONG>curs_set</STRONG> "is
+ currently incorrect". This implementation gets it right, but it may be
unwise to count on the correctness of the return value anywhere else.
- Both ncurses and SVr4 will call <STRONG>curs_set</STRONG> in <STRONG>endwin</STRONG> if <STRONG>curs_set</STRONG> has been
- called to make the cursor other than normal, i.e., either invisible or
- very visible. There is no way for ncurses to determine the initial
+ Both <EM>ncurses</EM> and SVr4 will call <STRONG>curs_set</STRONG> in <STRONG>endwin</STRONG> if <STRONG>curs_set</STRONG> has been
+ called to make the cursor other than normal, i.e., either invisible or
+ very visible. There is no way for <EM>ncurses</EM> to determine the initial
cursor state to restore that.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- The <EM>virtual</EM> <EM>screen</EM> functions <STRONG>setsyx</STRONG> and <STRONG>getsyx</STRONG> are not described in the
- XSI Curses standard, Issue 4. All other functions are as described in
- XSI Curses.
+ The <EM>virtual</EM> <EM>screen</EM> functions <STRONG>setsyx</STRONG> and <STRONG>getsyx</STRONG> are not described in
+ X/Open Curses, Issue 4. All other functions are as described in X/Open
+ Curses.
- The SVr4 documentation describes <STRONG>setsyx</STRONG> and <STRONG>getsyx</STRONG> as having return
- type int. This is misleading, as they are macros with no documented
+ The SVr4 documentation describes <STRONG>setsyx</STRONG> and <STRONG>getsyx</STRONG> as having return
+ type int. This is misleading, as they are macros with no documented
semantics for the return value.
+ If interrupted, <EM>ncurses</EM> restarts <STRONG>napms</STRONG>. That, and the limitation to 30
+ seconds, are different from other implementations.
+
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
<STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>,
- <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>, <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>.
+ <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>, <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>
- <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -212,9 +216,9 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
<ul>
-<li><a href="#h3-def_prog_mode_-def_shell_mode">def_prog_mode, def_shell_mode</a></li>
-<li><a href="#h3-reset_prog_mode_-reset_shell_mode">reset_prog_mode, reset_shell_mode</a></li>
-<li><a href="#h3-resetty_-savetty">resetty, savetty</a></li>
+<li><a href="#h3-def_prog_mode_def_shell_mode">def_prog_mode, def_shell_mode</a></li>
+<li><a href="#h3-reset_prog_mode_reset_shell_mode">reset_prog_mode, reset_shell_mode</a></li>
+<li><a href="#h3-resetty_savetty">resetty, savetty</a></li>
<li><a href="#h3-getsyx">getsyx</a></li>
<li><a href="#h3-setsyx">setsyx</a></li>
<li><a href="#h3-ripoffline">ripoffline</a></li>
diff --git a/doc/html/man/curs_legacy.3x.html b/doc/html/man/curs_legacy.3x.html
index c52be23be754..22f78dddbcf9 100644
--- a/doc/html/man/curs_legacy.3x.html
+++ b/doc/html/man/curs_legacy.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2023,2024 Thomas E. Dickey *
* Copyright 2007-2015,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,27 +27,29 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_legacy.3x,v 1.12 2020/10/18 00:16:04 tom Exp @
+ * @Id: curs_legacy.3x,v 1.32 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_legacy 3x</TITLE>
+<TITLE>curs_legacy 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_legacy 3x</H1>
+<H1 class="no-header">curs_legacy 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG> <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>
+<STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- curs_legacy - get <STRONG>curses</STRONG> cursor and window coordinates, attributes
+ <STRONG>getattrs</STRONG>, <STRONG>getbegx</STRONG>, <STRONG>getbegy</STRONG>, <STRONG>getcurx</STRONG>, <STRONG>getcury</STRONG>, <STRONG>getmaxx</STRONG>, <STRONG>getmaxy</STRONG>,
+ <STRONG>getparx</STRONG>, <STRONG>getpary</STRONG> - get <EM>curses</EM> cursor and window coordinates or
+ attributes (legacy)
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -69,7 +71,7 @@
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- These legacy functions are simpler to use than the X/Open Curses
+ These legacy functions are simpler to use than the X/Open <EM>curses</EM>
functions:
<STRONG>o</STRONG> The <STRONG>getattrs</STRONG> function returns the same attribute data as <STRONG>wattr_get</STRONG>.
@@ -100,12 +102,14 @@
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- All of these interfaces are provided as macros and functions. The
- macros are suppressed (and only the functions provided) when
- <STRONG>NCURSES_OPAQUE</STRONG> is defined. The standard forms such as <STRONG>getyx</STRONG> must be
- implemented as macros, and (in this implementation) are defined in
- terms of the functions described here, to avoid reliance on internal
- details of the WINDOW structure.
+ All of these interfaces are implemented as macros and functions. The
+ macros are suppressed (and only the functions provided) in an "opaque"
+ <EM>ncurses</EM> build, which defines the preprocessor symbol <STRONG>NCURSES_OPAQUE</STRONG>.
+ See section "ALTERNATE CONFIGURATIONS" in <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>.
+
+ The standard forms such as <STRONG>getyx</STRONG> <EM>must</EM> be implemented as macros, and (in
+ this implementation) are defined in terms of the functions described
+ here, to avoid reliance on internal details of the <EM>WINDOW</EM> structure.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
@@ -123,7 +127,7 @@
- <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
diff --git a/doc/html/man/curs_memleaks.3x.html b/doc/html/man/curs_memleaks.3x.html
index 388d969a3146..085e3aba91d8 100644
--- a/doc/html/man/curs_memleaks.3x.html
+++ b/doc/html/man/curs_memleaks.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2019-2020,2021 Thomas E. Dickey *
+ * Copyright 2019-2023,2024 Thomas E. Dickey *
* Copyright 2008-2010,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,27 +27,27 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_memleaks.3x,v 1.11 2021/01/02 23:47:51 tom Exp @
+ * @Id: curs_memleaks.3x,v 1.35 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_memleaks 3x</TITLE>
+<TITLE>curs_memleaks 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_memleaks 3x</H1>
+<H1 class="no-header">curs_memleaks 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG> <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>
+<STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>exit_curses</STRONG>, <STRONG>exit_terminfo</STRONG> - <STRONG>curses</STRONG> memory-leak checking
+ <STRONG>exit_curses</STRONG>, <STRONG>exit_terminfo</STRONG> - check for memory leaks in <EM>curses</EM>
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -57,7 +57,7 @@
<STRONG>#include</STRONG> <STRONG>&lt;term.h&gt;</STRONG>
<STRONG>void</STRONG> <STRONG>exit_terminfo(int</STRONG> <EM>code</EM><STRONG>);</STRONG>
- /* deprecated (intentionally not declared in curses.h or term.h) */
+ <EM>/*</EM> <EM>deprecated</EM> <EM>(intentionally</EM> <EM>not</EM> <EM>declared</EM> <EM>in</EM> <EM>curses.h</EM> <EM>or</EM> <EM>term.h)</EM> <EM>*/</EM>
<STRONG>void</STRONG> <STRONG>_nc_freeall(void);</STRONG>
<STRONG>void</STRONG> <STRONG>_nc_free_and_exit(int</STRONG> <EM>code</EM><STRONG>);</STRONG>
<STRONG>void</STRONG> <STRONG>_nc_free_tinfo(int</STRONG> <EM>code</EM><STRONG>);</STRONG>
@@ -65,28 +65,28 @@
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
These functions are used to simplify analysis of memory leaks in the
- ncurses library.
+ <EM>ncurses</EM> library.
Any implementation of curses must not free the memory associated with a
screen, since (even after calling <STRONG><A HREF="curs_initscr.3x.html">endwin(3x)</A></STRONG>), it must be available for
use in the next call to <STRONG><A HREF="curs_refresh.3x.html">refresh(3x)</A></STRONG>. There are also chunks of memory
- held for performance reasons. That makes it hard to analyze curses ap-
- plications for memory leaks. When using the specially configured de-
- bugging version of the ncurses library, applications can call functions
- which free those chunks of memory, simplifying the process of memory-
- leak checking.
+ held for performance reasons. That makes it hard to analyze curses
+ applications for memory leaks. When using the specially configured
+ debugging version of the <EM>ncurses</EM> library, applications can call
+ functions which free those chunks of memory, simplifying the process of
+ memory-leak checking.
Some of the functions are named with a "_nc_" prefix because they are
not intended for use in the non-debugging library:
<STRONG>_nc_freeall</STRONG>
- This frees (almost) all of the memory allocated by ncurses.
+ This frees (almost) all of the memory allocated by <EM>ncurses</EM>.
<STRONG>_nc_free_and_exit</STRONG>
- This frees the memory allocated by ncurses (like <STRONG>_nc_freeall</STRONG>), and
+ This frees the memory allocated by <EM>ncurses</EM> (like <STRONG>_nc_freeall</STRONG>), and
exits the program. It is preferred over <STRONG>_nc_freeall</STRONG> since some of
- that memory may be required to keep the application running. Sim-
- ply exiting (with the given exit-code) is safer.
+ that memory may be required to keep the application running.
+ Simply exiting (with the given exit-code) is safer.
<STRONG>_nc_free_tinfo</STRONG>
Use this function if only the low-level terminfo functions (and
@@ -94,9 +94,9 @@
the program after freeing memory.
The functions prefixed "_nc" are normally not available; they must be
- configured into the library at build time using the <STRONG>--disable-leaks</STRONG> op-
- tion. That compiles-in code that frees memory that normally would not
- be freed.
+ configured into the library at build time using the <STRONG>--disable-leaks</STRONG>
+ option. That compiles-in code that frees memory that normally would
+ not be freed.
The <STRONG>exit_curses</STRONG> and <STRONG>exit_terminfo</STRONG> functions call <STRONG>_nc_free_and_exit</STRONG> and
<STRONG>_nc_free_tinfo</STRONG> if the library is configured to support memory-leak
@@ -109,16 +109,30 @@
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These functions are not part of X/Open Curses; nor do other implementa-
- tions of curses provide a similar feature.
+ These functions are not part of X/Open Curses; nor do other
+ implementations of curses provide a similar feature.
+
+ In any implementation of X/Open Curses, an application can free part of
+ the memory allocated by curses:
+
+ <STRONG>o</STRONG> The portable part of <STRONG>exit_curses</STRONG> can be freed using <STRONG>delscreen</STRONG>,
+ passing the <EM>SCREEN</EM> pointer returned by <STRONG>newterm</STRONG>.
+
+ In some implementations, there is a global variable <STRONG>sp</STRONG> which could
+ be used, e.g., if the screen were only initialized using <STRONG>initscr</STRONG>.
+
+ <STRONG>o</STRONG> The portable part of <STRONG>exit_terminfo</STRONG> can be freed using <STRONG>del_curterm</STRONG>.
+
+ In this case, there is a global variable <STRONG>cur_term</STRONG> which can be used
+ as parameter.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>.
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
- <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
diff --git a/doc/html/man/curs_mouse.3x.html b/doc/html/man/curs_mouse.3x.html
index b62defdfbe14..cdb42f278832 100644
--- a/doc/html/man/curs_mouse.3x.html
+++ b/doc/html/man/curs_mouse.3x.html
@@ -1,7 +1,7 @@
-<!--
+<!--
* t
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2015,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,28 +28,28 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_mouse.3x,v 1.53 2020/10/17 23:25:08 tom Exp @
+ * @Id: curs_mouse.3x,v 1.98 2024/04/20 19:02:07 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_mouse 3x</TITLE>
+<TITLE>curs_mouse 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_mouse 3x</H1>
+<H1 class="no-header">curs_mouse 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG> <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>
+<STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>has_mouse</STRONG>, <STRONG>getmouse</STRONG>, <STRONG>ungetmouse</STRONG>, <STRONG>mousemask</STRONG>, <STRONG>wenclose</STRONG>, <STRONG>mouse_trafo</STRONG>,
- <STRONG>wmouse_trafo</STRONG>, <STRONG>mouseinterval</STRONG> - mouse interface through curses
+ <STRONG>has_mouse</STRONG>, <STRONG>getmouse</STRONG>, <STRONG>ungetmouse</STRONG>, <STRONG>mousemask</STRONG>, <STRONG>wenclose</STRONG>, <STRONG>mouse_trafo</STRONG>,
+ <STRONG>wmouse_trafo</STRONG>, <STRONG>mouseinterval</STRONG> - get mouse events in <EM>curses</EM>
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -65,11 +65,11 @@
<STRONG>bool</STRONG> <STRONG>has_mouse(void);</STRONG>
+ <STRONG>mmask_t</STRONG> <STRONG>mousemask(mmask_t</STRONG> <EM>newmask</EM><STRONG>,</STRONG> <STRONG>mmask_t</STRONG> <STRONG>*</STRONG><EM>oldmask</EM><STRONG>);</STRONG>
+
<STRONG>int</STRONG> <STRONG>getmouse(MEVENT</STRONG> <STRONG>*</STRONG><EM>event</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>ungetmouse(MEVENT</STRONG> <STRONG>*</STRONG><EM>event</EM><STRONG>);</STRONG>
- <STRONG>mmask_t</STRONG> <STRONG>mousemask(mmask_t</STRONG> <EM>newmask</EM><STRONG>,</STRONG> <STRONG>mmask_t</STRONG> <STRONG>*</STRONG><EM>oldmask</EM><STRONG>);</STRONG>
-
<STRONG>bool</STRONG> <STRONG>wenclose(const</STRONG> <STRONG>WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>);</STRONG>
<STRONG>bool</STRONG> <STRONG>mouse_trafo(int*</STRONG> <EM>pY</EM><STRONG>,</STRONG> <STRONG>int*</STRONG> <EM>pX</EM><STRONG>,</STRONG> <STRONG>bool</STRONG> <EM>to</EM><STRONG>_</STRONG><EM>screen</EM><STRONG>);</STRONG>
@@ -85,61 +85,76 @@
<STRONG><A HREF="curs_getch.3x.html">wgetch(3x)</A></STRONG> input stream.
+</PRE><H3><a name="h3-has_mouse">has_mouse</a></H3><PRE>
+ The <STRONG>has_mouse</STRONG> function returns <STRONG>TRUE</STRONG> if the mouse driver has been
+ successfully initialized, and <STRONG>FALSE</STRONG> otherwise.
+
+ Mouse events are ignored when input is in cooked mode, and cause an
+ error beep when cooked mode is being simulated in a window by a
+ function such as <STRONG>getstr</STRONG> that expects a linefeed for input-loop
+ termination.
+
+
</PRE><H3><a name="h3-mousemask">mousemask</a></H3><PRE>
- To make mouse events visible, use the <STRONG>mousemask</STRONG> function. This will
- set the mouse events to be reported. By default, no mouse events are
- reported. The function will return a mask to indicate which of the
- specified mouse events can be reported; on complete failure it returns
- 0. If oldmask is non-NULL, this function fills the indicated location
- with the previous value of the given window's mouse event mask.
-
- As a side effect, setting a zero mousemask may turn off the mouse
+ To make mouse events visible, use the <STRONG>mousemask</STRONG> function. This sets
+ the mouse events to be reported. By default, no mouse events are
+ reported.
+
+ <STRONG>o</STRONG> The function returns an updated copy of <EM>newmask</EM> to indicate which
+ of the specified mouse events can be reported.
+
+ If the screen has not been initialized, or if the terminal does not
+ support mouse-events, this function returns 0.
+
+ <STRONG>o</STRONG> If <EM>oldmask</EM> is non-<STRONG>NULL</STRONG>, this function fills the indicated location
+ with the previous value of the current screen's mouse event mask.
+
+ As a side effect, setting a zero mouse mask may turn off the mouse
pointer; setting a nonzero mask may turn it on. Whether this happens
is device-dependent.
-</PRE><H3><a name="h3-Mouse-events">Mouse events</a></H3><PRE>
+</PRE><H3><a name="h3-Mouse-Events">Mouse Events</a></H3><PRE>
Here are the mouse event type masks which may be defined:
- <EM>Name</EM> <EM>Description</EM>
- ---------------------------------------------------------------------
- BUTTON1_PRESSED mouse button 1 down
- BUTTON1_RELEASED mouse button 1 up
- BUTTON1_CLICKED mouse button 1 clicked
- BUTTON1_DOUBLE_CLICKED mouse button 1 double clicked
- BUTTON1_TRIPLE_CLICKED mouse button 1 triple clicked
- ---------------------------------------------------------------------
- BUTTON2_PRESSED mouse button 2 down
- BUTTON2_RELEASED mouse button 2 up
- BUTTON2_CLICKED mouse button 2 clicked
-
- BUTTON2_DOUBLE_CLICKED mouse button 2 double clicked
- BUTTON2_TRIPLE_CLICKED mouse button 2 triple clicked
- ---------------------------------------------------------------------
- BUTTON3_PRESSED mouse button 3 down
- BUTTON3_RELEASED mouse button 3 up
- BUTTON3_CLICKED mouse button 3 clicked
- BUTTON3_DOUBLE_CLICKED mouse button 3 double clicked
- BUTTON3_TRIPLE_CLICKED mouse button 3 triple clicked
- ---------------------------------------------------------------------
- BUTTON4_PRESSED mouse button 4 down
- BUTTON4_RELEASED mouse button 4 up
- BUTTON4_CLICKED mouse button 4 clicked
- BUTTON4_DOUBLE_CLICKED mouse button 4 double clicked
- BUTTON4_TRIPLE_CLICKED mouse button 4 triple clicked
- ---------------------------------------------------------------------
- BUTTON5_PRESSED mouse button 5 down
- BUTTON5_RELEASED mouse button 5 up
- BUTTON5_CLICKED mouse button 5 clicked
- BUTTON5_DOUBLE_CLICKED mouse button 5 double clicked
- BUTTON5_TRIPLE_CLICKED mouse button 5 triple clicked
- ---------------------------------------------------------------------
- BUTTON_SHIFT shift was down during button state change
- BUTTON_CTRL control was down during button state change
- BUTTON_ALT alt was down during button state change
- ALL_MOUSE_EVENTS report all button state changes
- REPORT_MOUSE_POSITION report mouse movement
- ---------------------------------------------------------------------
+ <STRONG>Name</STRONG> <STRONG>Description</STRONG>
+ ------------------------------------------------------------------------
+ <STRONG>BUTTON1_PRESSED</STRONG> mouse button 1 down
+ <STRONG>BUTTON1_RELEASED</STRONG> mouse button 1 up
+ <STRONG>BUTTON1_CLICKED</STRONG> mouse button 1 clicked
+ <STRONG>BUTTON1_DOUBLE_CLICKED</STRONG> mouse button 1 double clicked
+ <STRONG>BUTTON1_TRIPLE_CLICKED</STRONG> mouse button 1 triple clicked
+ ------------------------------------------------------------------------
+ <STRONG>BUTTON2_PRESSED</STRONG> mouse button 2 down
+ <STRONG>BUTTON2_RELEASED</STRONG> mouse button 2 up
+ <STRONG>BUTTON2_CLICKED</STRONG> mouse button 2 clicked
+ <STRONG>BUTTON2_DOUBLE_CLICKED</STRONG> mouse button 2 double clicked
+ <STRONG>BUTTON2_TRIPLE_CLICKED</STRONG> mouse button 2 triple clicked
+ ------------------------------------------------------------------------
+ <STRONG>BUTTON3_PRESSED</STRONG> mouse button 3 down
+ <STRONG>BUTTON3_RELEASED</STRONG> mouse button 3 up
+ <STRONG>BUTTON3_CLICKED</STRONG> mouse button 3 clicked
+ <STRONG>BUTTON3_DOUBLE_CLICKED</STRONG> mouse button 3 double clicked
+ <STRONG>BUTTON3_TRIPLE_CLICKED</STRONG> mouse button 3 triple clicked
+ ------------------------------------------------------------------------
+ <STRONG>BUTTON4_PRESSED</STRONG> mouse button 4 down
+ <STRONG>BUTTON4_RELEASED</STRONG> mouse button 4 up
+ <STRONG>BUTTON4_CLICKED</STRONG> mouse button 4 clicked
+ <STRONG>BUTTON4_DOUBLE_CLICKED</STRONG> mouse button 4 double clicked
+ <STRONG>BUTTON4_TRIPLE_CLICKED</STRONG> mouse button 4 triple clicked
+ ------------------------------------------------------------------------
+ <STRONG>BUTTON5_PRESSED</STRONG> mouse button 5 down
+ <STRONG>BUTTON5_RELEASED</STRONG> mouse button 5 up
+ <STRONG>BUTTON5_CLICKED</STRONG> mouse button 5 clicked
+ <STRONG>BUTTON5_DOUBLE_CLICKED</STRONG> mouse button 5 double clicked
+ <STRONG>BUTTON5_TRIPLE_CLICKED</STRONG> mouse button 5 triple clicked
+ ------------------------------------------------------------------------
+ <STRONG>BUTTON_SHIFT</STRONG> shift was down during button state change
+ <STRONG>BUTTON_CTRL</STRONG> control was down during button state change
+ <STRONG>BUTTON_ALT</STRONG> alt was down during button state change
+ <STRONG>ALL_MOUSE_EVENTS</STRONG> report all button state changes
+ <STRONG>REPORT_MOUSE_POSITION</STRONG> report mouse movement
+ ------------------------------------------------------------------------
</PRE><H3><a name="h3-getmouse">getmouse</a></H3><PRE>
@@ -149,11 +164,11 @@
event off the queue, call <STRONG>getmouse</STRONG>. This function will return <STRONG>OK</STRONG> if a
mouse event is actually visible in the given window, <STRONG>ERR</STRONG> otherwise.
When <STRONG>getmouse</STRONG> returns <STRONG>OK</STRONG>, the data deposited as y and x in the event
- structure coordinates will be screen-relative character-cell coordi-
- nates. The returned state mask will have exactly one bit set to indi-
- cate the event type. The corresponding data in the queue is marked in-
- valid. A subsequent call to <STRONG>getmouse</STRONG> will retrieve the next older item
- from the queue.
+ structure coordinates will be screen-relative character-cell
+ coordinates. The returned state mask will have exactly one bit set to
+ indicate the event type. The corresponding data in the queue is marked
+ invalid. A subsequent call to <STRONG>getmouse</STRONG> will retrieve the next older
+ item from the queue.
</PRE><H3><a name="h3-ungetmouse">ungetmouse</a></H3><PRE>
@@ -168,73 +183,83 @@
<STRONG>TRUE</STRONG> if it is and <STRONG>FALSE</STRONG> otherwise. It is useful for determining what
subset of the screen windows enclose the location of a mouse event.
+ If the parameter is a pad, <STRONG>wenclose</STRONG> uses the most recent screen
+ coordinates used for this pad in <STRONG><A HREF="curs_pad.3x.html">prefresh(3x)</A></STRONG> or <STRONG><A HREF="curs_pad.3x.html">pnoutrefresh(3x)</A></STRONG>.
+
</PRE><H3><a name="h3-wmouse_trafo">wmouse_trafo</a></H3><PRE>
- The <STRONG>wmouse_trafo</STRONG> function transforms a given pair of coordinates from
- stdscr-relative coordinates to coordinates relative to the given window
- or vice versa. The resulting stdscr-relative coordinates are not al-
- ways identical to window-relative coordinates due to the mechanism to
- reserve lines on top or bottom of the screen for other purposes (see
- the <STRONG>ripoffline</STRONG> and <STRONG><A HREF="curs_slk.3x.html">slk_init(3x)</A></STRONG> calls, for example).
-
- <STRONG>o</STRONG> If the parameter <STRONG>to_screen</STRONG> is <STRONG>TRUE</STRONG>, the pointers <STRONG>pY,</STRONG> <STRONG>pX</STRONG> must refer-
- ence the coordinates of a location inside the window <STRONG>win</STRONG>. They are
- converted to window-relative coordinates and returned through the
- pointers. If the conversion was successful, the function returns
- <STRONG>TRUE</STRONG>.
-
- <STRONG>o</STRONG> If one of the parameters was NULL or the location is not inside the
+ The <STRONG>wmouse_trafo</STRONG> function transforms a given pair of coordinates from
+ <STRONG>stdscr</STRONG>-relative coordinates to coordinates relative to the given window
+ or vice versa. The resulting <STRONG>stdscr</STRONG>-relative coordinates are not
+ always identical to screen coordinates due to the mechanism to reserve
+ lines on top or bottom of the screen for other purposes (see the
+ <STRONG><A HREF="curs_kernel.3x.html">ripoffline(3x)</A></STRONG> and <STRONG><A HREF="curs_slk.3x.html">slk_init(3x)</A></STRONG> calls, for example).
+
+ <STRONG>o</STRONG> If the parameter <EM>to</EM><STRONG>_</STRONG><EM>screen</EM> is <STRONG>TRUE</STRONG>, the pointers <EM>pY,</EM> <EM>pX</EM> must
+ reference the coordinates of a location inside the window <EM>win</EM>.
+ They are converted to <STRONG>stdscr</STRONG>-relative coordinates and returned
+ through the pointers. If the conversion was successful, the
+ function returns <STRONG>TRUE</STRONG>.
+
+ If one of the parameters was <STRONG>NULL</STRONG> or the location is not inside the
window, <STRONG>FALSE</STRONG> is returned.
- <STRONG>o</STRONG> If <STRONG>to_screen</STRONG> is <STRONG>FALSE</STRONG>, the pointers <STRONG>pY,</STRONG> <STRONG>pX</STRONG> must reference window-
- relative coordinates. They are converted to stdscr-relative coor-
- dinates if the window <STRONG>win</STRONG> encloses this point. In this case the
- function returns <STRONG>TRUE</STRONG>.
+ <STRONG>o</STRONG> If <EM>to</EM><STRONG>_</STRONG><EM>screen</EM> is <STRONG>FALSE</STRONG>, the pointers <EM>pY,</EM> <EM>pX</EM> must reference
+ <STRONG>stdscr</STRONG>-relative coordinates. They are converted to window-relative
+ coordinates if the window <EM>win</EM> encloses this point. In this case
+ the function returns <STRONG>TRUE</STRONG>.
- <STRONG>o</STRONG> If one of the parameters is NULL or the point is not inside the
- window, <STRONG>FALSE</STRONG> is returned. The referenced coordinates are only re-
- placed by the converted coordinates if the transformation was suc-
- cessful.
+ If one of the parameters is <STRONG>NULL</STRONG> or the point is not inside the
+ window, <STRONG>FALSE</STRONG> is returned.
+
+ The referenced coordinates are only replaced by the converted
+ coordinates if the transformation was successful.
</PRE><H3><a name="h3-mouse_trafo">mouse_trafo</a></H3><PRE>
The <STRONG>mouse_trafo</STRONG> function performs the same translation as <STRONG>wmouse_trafo</STRONG>,
- using stdscr for <STRONG>win</STRONG>.
+ using <STRONG>stdscr</STRONG> for <EM>win</EM>.
</PRE><H3><a name="h3-mouseinterval">mouseinterval</a></H3><PRE>
The <STRONG>mouseinterval</STRONG> function sets the maximum time (in thousands of a
second) that can elapse between press and release events for them to be
- recognized as a click. Use <STRONG>mouseinterval(0)</STRONG> to disable click resolu-
- tion. This function returns the previous interval value. Use <STRONG>mousein-</STRONG>
- <STRONG>terval(-1)</STRONG> to obtain the interval without altering it. The default is
- one sixth of a second.
+ resolved as a <EM>click</EM>. An application might interpret button press and
+ release events separated by more than the mouse interval as a "long
+ press", or, with motion, as a "drag".
+ Calling <STRONG>mouseinterval(0)</STRONG> disables click resolution. When <EM>ncurses</EM>
+ detects a mouse event, it awaits further input activity up to this
+ interval, and then checks for a subsequent mouse event which can be
+ combined with the first event. If the timeout expires without input
+ activity (which would happen with a zero interval), then no click
+ resolution will occur.
-</PRE><H3><a name="h3-has_mouse">has_mouse</a></H3><PRE>
- The <STRONG>has_mouse</STRONG> function returns <STRONG>TRUE</STRONG> if the mouse driver has been suc-
- cessfully initialized.
+ This function returns the previous interval value. Use
+ <STRONG>mouseinterval(-1)</STRONG> to obtain the interval without altering it.
- Note that mouse events will be ignored when input is in cooked mode,
- and will cause an error beep when cooked mode is being simulated in a
- window by a function such as <STRONG>getstr</STRONG> that expects a linefeed for input-
- loop termination.
+ The mouse interval is set to one sixth of a second when the
+ corresponding screen is initialized, e.g., in <STRONG><A HREF="curs_initscr.3x.html">initscr(3x)</A></STRONG> or
+ <STRONG><A HREF="curs_terminfo.3x.html">setupterm(3x)</A></STRONG>.
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- <STRONG>getmouse</STRONG> and <STRONG>ungetmouse</STRONG> return the integer <STRONG>ERR</STRONG> upon failure or <STRONG>OK</STRONG> upon
- successful completion:
+ <STRONG>has_mouse</STRONG>, <STRONG>wenclose</STRONG>, <STRONG>mouse_trafo</STRONG>, and <STRONG>wmouse_trafo</STRONG> return <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>
+ as noted above.
+
+ <STRONG>getmouse</STRONG> and <STRONG>ungetmouse</STRONG> return <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> upon success.
- <STRONG>getmouse</STRONG>
- returns an error.
+ <STRONG>getmouse</STRONG> fails if:
- <STRONG>o</STRONG> If no mouse driver was initialized, or if the mask parameter is
- zero,
+ <STRONG>o</STRONG> no mouse driver was initialized,
- <STRONG>o</STRONG> It also returns an error if no more events remain in the queue.
+ <STRONG>o</STRONG> the mask of reportable events is zero,
- <STRONG>ungetmouse</STRONG>
- returns an error if the FIFO is full.
+ <STRONG>o</STRONG> a mouse event was detected that does not match the mask,
+
+ <STRONG>o</STRONG> or if no more events remain in the queue.
+
+ <STRONG>ungetmouse</STRONG> returns an error if the event queue is full.
<STRONG>mousemask</STRONG> returns the mask of reportable events.
@@ -242,130 +267,134 @@
was not initialized. In that case, it returns the maximum interval
value (166).
- <STRONG>wenclose</STRONG> and <STRONG>wmouse_trafo</STRONG> are boolean functions returning <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>
- depending on their test result.
+</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
+ The order of the <STRONG>MEVENT</STRONG> structure members is not guaranteed.
+ Additional fields may be added to the structure in the future.
-</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These calls were designed for <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>, and are not found in SVr4
- curses, 4.4BSD curses, or any other previous version of curses.
+ Under <EM>ncurses</EM>, these calls are implemented using either <EM>xterm</EM>'s built-
+ in mouse-tracking API or platform-specific drivers including
- SVr4 curses had support for the mouse in a variant of <STRONG>xterm</STRONG>. It is
- mentioned in a few places, but with no supporting documentation:
+ <STRONG>o</STRONG> Alessandro Rubini's gpm server
- <STRONG>o</STRONG> the "libcurses" manual page lists functions for this feature which
- are prototyped in <STRONG>curses.h</STRONG>:
+ <STRONG>o</STRONG> FreeBSD sysmouse
- extern int mouse_set(long int);
- extern int mouse_on(long int);
- extern int mouse_off(long int);
- extern int request_mouse_pos(void);
- extern int map_button(unsigned long);
- extern void wmouse_position(WINDOW *, int *, int *);
- extern unsigned long getmouse(void), getbmap(void);
+ <STRONG>o</STRONG> OS/2 EMX
- <STRONG>o</STRONG> the "terminfo" manual page lists capabilities for the feature
+ If you are using an unsupported configuration, mouse events will not be
+ visible to <EM>ncurses</EM> (and the <STRONG>mousemask</STRONG> function will always return <STRONG>0</STRONG>).
- buttons btns BT Number of buttons on the mouse
- get_mouse getm Gm Curses should get button events
- key_mouse kmous Km 0631, Mouse event has occurred
- mouse_info minfo Mi Mouse status information
- req_mouse_pos reqmp RQ Request mouse position report
+ If the <EM>terminfo</EM> entry contains a <STRONG>XM</STRONG> string, this is used in the <EM>xterm</EM>
+ mouse driver to control the way the terminal is initialized for mouse
+ operation. The default, if <STRONG>XM</STRONG> is not found, corresponds to private
+ mode 1000 of <EM>xterm:</EM>
- <STRONG>o</STRONG> the interface made assumptions (as does ncurses) about the escape
- sequences sent to and received from the terminal.
+ \E[?1000%?%p1%{1}%=%th%el%;
- For instance the SVr4 curses library used the <STRONG>get_mouse</STRONG> capability
- to tell the terminal which mouse button events it should send,
- passing the mouse-button bit-mask to the terminal. Also, it could
- ask the terminal where the mouse was using the <STRONG>req_mouse_pos</STRONG> capa-
- bility.
+ The mouse driver also recognizes a newer <EM>xterm</EM> private mode 1006, e.g.,
- Those features required a terminal which had been modified to work
- with curses. They were not part of the X Consortium's xterm.
+ \E[?1006;1000%?%p1%{1}%=%th%el%;
- When developing the xterm mouse support for ncurses in September 1995,
- Eric Raymond was uninterested in using the same interface due to its
- lack of documentation. Later, in 1998, Mark Hesseling provided support
- in PDCurses 2.3 using the SVr4 interface. PDCurses, however, does not
- use video terminals, making it unnecessary to be concerned about com-
- patibility with the escape sequences.
+ The <EM>z</EM> member in the event structure is not presently used. It is
+ intended for use with touch screens (which may be pressure-sensitive)
+ or with 3D-mice/trackballs/power gloves.
- The feature macro <STRONG>NCURSES_MOUSE_VERSION</STRONG> is provided so the preprocessor
- can be used to test whether these features are present. If the inter-
- face is changed, the value of <STRONG>NCURSES_MOUSE_VERSION</STRONG> will be increment-
- ed. These values for <STRONG>NCURSES_MOUSE_VERSION</STRONG> may be specified when con-
- figuring ncurses:
+ The <STRONG>ALL_MOUSE_EVENTS</STRONG> class does not include <STRONG>REPORT_MOUSE_POSITION</STRONG>.
+ They are distinct. For example, in <EM>xterm</EM>, wheel/scrolling mice send
+ position reports as a sequence of presses of buttons 4 or 5 without
+ matching button-releases.
- 1 has definitions for reserved events. The mask uses 28 bits.
- 2 adds definitions for button 5, removes the definitions for re-
- served events. The mask uses 29 bits.
+</PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
+ These functions were designed for <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>, and are not found in
+ SVr4 <EM>curses</EM>, 4.4BSD <EM>curses</EM>, or any other previous curses
+ implementation. (SVr4 <EM>curses</EM> did have a <EM>getmouse</EM> function, which took
+ no argument and returned a different type.)
- The order of the <STRONG>MEVENT</STRONG> structure members is not guaranteed. Addition-
- al fields may be added to the structure in the future.
- Under <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>, these calls are implemented using either xterm's
- built-in mouse-tracking API or platform-specific drivers including
+</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
+ Applications employing the <EM>ncurses</EM> mouse extension should condition its
+ use on the visibility of the <STRONG>NCURSES_MOUSE_VERSION</STRONG> preprocessor macro.
+ When the interface changes, the macro's value increments. Multiple
+ versions are available when <EM>ncurses</EM> is configured; see section
+ "ALTERNATE CONFIGURATIONS" of <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>. The following values may be
+ specified.
- <STRONG>o</STRONG> Alessandro Rubini's gpm server
+ 1 has definitions for reserved events. The mask uses 28 bits.
- <STRONG>o</STRONG> FreeBSD sysmouse
+ 2 adds definitions for button 5, removes the definitions for
+ reserved events. The mask uses 29 bits.
- <STRONG>o</STRONG> OS/2 EMX
+ SVr4 <EM>curses</EM> had support for the mouse in a variant of <STRONG>xterm(1)</STRONG>. It is
+ mentioned in a few places, with little supporting documentation.
- If you are using an unsupported configuration, mouse events will not be
- visible to <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> (and the <STRONG>mousemask</STRONG> function will always return
- <STRONG>0</STRONG>).
+ <STRONG>o</STRONG> Its "libcurses" manual page lists functions for this feature
+ prototyped in <EM>curses.h</EM>.
- If the terminfo entry contains a <STRONG>XM</STRONG> string, this is used in the xterm
- mouse driver to control the way the terminal is initialized for mouse
- operation. The default, if <STRONG>XM</STRONG> is not found, corresponds to private
- mode 1000 of xterm:
+ extern int mouse_set(long int);
+ extern int mouse_on(long int);
+ extern int mouse_off(long int);
+ extern int request_mouse_pos(void);
+ extern int map_button(unsigned long);
+ extern void wmouse_position(WINDOW *, int *, int *);
+ extern unsigned long getmouse(void), getbmap(void);
- \E[?1000%?%p1%{1}%=%th%el%;
+ <STRONG>o</STRONG> Its "terminfo" manual page lists capabilities for the feature.
- The mouse driver also recognizes a newer xterm private mode 1006, e.g.,
+ <STRONG>buttons</STRONG> <STRONG>btns</STRONG> <STRONG>BT</STRONG> Number of buttons on the mouse
+ <STRONG>get_mouse</STRONG> <STRONG>getm</STRONG> <STRONG>Gm</STRONG> Curses should get button events
+ <STRONG>key_mouse</STRONG> <STRONG>kmous</STRONG> <STRONG>Km</STRONG> 0631, Mouse event has occurred
+ <STRONG>mouse_info</STRONG> <STRONG>minfo</STRONG> <STRONG>Mi</STRONG> Mouse status information
+ <STRONG>req_mouse_pos</STRONG> <STRONG>reqmp</STRONG> <STRONG>RQ</STRONG> Request mouse position report
- \E[?1006;1000%?%p1%{1}%=%th%el%;
+ <STRONG>o</STRONG> The interface made assumptions (as does <EM>ncurses</EM>) about the escape
+ sequences sent to and received from the terminal.
- The <EM>z</EM> member in the event structure is not presently used. It is in-
- tended for use with touch screens (which may be pressure-sensitive) or
- with 3D-mice/trackballs/power gloves.
+ For instance, the SVr4 <EM>curses</EM> library used the <STRONG>get_mouse</STRONG> capability
+ to tell the terminal which mouse button events it should send,
+ passing the mouse-button bit mask to the terminal. Also, it could
+ ask the terminal where the mouse was using the <STRONG>req_mouse_pos</STRONG>
+ capability.
- The <STRONG>ALL_MOUSE_EVENTS</STRONG> class does not include <STRONG>REPORT_MOUSE_POSITION</STRONG>.
- They are distinct. For example, in xterm, wheel/scrolling mice send
- position reports as a sequence of presses of buttons 4 or 5 without
- matching button-releases.
+ Those features required a terminal program that had been modified
+ to work with SVr4 <EM>curses</EM>. They were not part of the X Consortium's
+ <EM>xterm</EM>.
+
+ When developing the <EM>xterm</EM> mouse support for <EM>ncurses</EM> in September 1995,
+ Eric Raymond was uninterested in using the same interface due to its
+ lack of documentation. Later, in 1998, Mark Hesseling provided support
+ in <EM>PDCurses</EM> 2.3 using the SVr4 interface. <EM>PDCurses</EM>, however, does not
+ use video terminals, making it unnecessary to be concerned about
+ compatibility with the escape sequences.
</PRE><H2><a name="h2-BUGS">BUGS</a></H2><PRE>
- Mouse events under xterm will not in fact be ignored during cooked
- mode, if they have been enabled by <STRONG>mousemask</STRONG>. Instead, the xterm mouse
- report sequence will appear in the string read.
-
- Mouse events under xterm will not be detected correctly in a window
- with its keypad bit off, since they are interpreted as a variety of
- function key. Your terminfo description should have <STRONG>kmous</STRONG> set to
- "\E[M" (the beginning of the response from xterm for mouse clicks).
- Other values for <STRONG>kmous</STRONG> are permitted, but under the same assumption,
- i.e., it is the beginning of the response.
-
- Because there are no standard terminal responses that would serve to
- identify terminals which support the xterm mouse protocol, <STRONG>ncurses</STRONG> as-
- sumes that if <STRONG>kmous</STRONG> is defined in the terminal description, or if the
- terminal description's primary name or aliases contain the string
- "xterm", then the terminal may send mouse events. The <STRONG>kmous</STRONG> capability
- is checked first, allowing the use of newer xterm mouse protocols such
- as xterm's private mode 1006.
+ Mouse events from <EM>xterm</EM> are <EM>not</EM> ignored in cooked mode if they have
+ been enabled by <STRONG>mousemask</STRONG>. Instead, the <EM>xterm</EM> mouse report sequence
+ appears in the string read.
+
+ Mouse event reports from <EM>xterm</EM> are not detected correctly in a window
+ with keypad application mode disabled, since they are interpreted as a
+ variety of function key. Set the terminal's <EM>terminfo</EM> capability <STRONG>kmous</STRONG>
+ to "\E[M" (the beginning of the response from <EM>xterm</EM> for mouse clicks).
+ Other values of <STRONG>kmous</STRONG> are permitted under the same assumption, that is,
+ the report begins with that sequence.
+
+ Because there are no standard response sequences that serve to identify
+ terminals supporting the <EM>xterm</EM> mouse protocol, <EM>ncurses</EM> assumes that if
+ <STRONG>kmous</STRONG> is defined in the terminal description, or if the terminal type's
+ primary name or aliases contain the string "xterm", then the terminal
+ may send mouse events. The <STRONG>kmous</STRONG> capability is checked first, allowing
+ use of newer <EM>xterm</EM> mouse protocols, such as its private mode 1006.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>, <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>.
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>, <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>, <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>,
+ <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>
- <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -373,18 +402,20 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
<ul>
+<li><a href="#h3-has_mouse">has_mouse</a></li>
<li><a href="#h3-mousemask">mousemask</a></li>
-<li><a href="#h3-Mouse-events">Mouse events</a></li>
+<li><a href="#h3-Mouse-Events">Mouse Events</a></li>
<li><a href="#h3-getmouse">getmouse</a></li>
<li><a href="#h3-ungetmouse">ungetmouse</a></li>
<li><a href="#h3-wenclose">wenclose</a></li>
<li><a href="#h3-wmouse_trafo">wmouse_trafo</a></li>
<li><a href="#h3-mouse_trafo">mouse_trafo</a></li>
<li><a href="#h3-mouseinterval">mouseinterval</a></li>
-<li><a href="#h3-has_mouse">has_mouse</a></li>
</ul>
</li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
+<li><a href="#h2-NOTES">NOTES</a></li>
+<li><a href="#h2-EXTENSIONS">EXTENSIONS</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-BUGS">BUGS</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
diff --git a/doc/html/man/curs_move.3x.html b/doc/html/man/curs_move.3x.html
index 7b9336019a82..bbab2b871ff3 100644
--- a/doc/html/man/curs_move.3x.html
+++ b/doc/html/man/curs_move.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2010,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,27 +27,27 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_move.3x,v 1.19 2020/10/24 09:39:41 tom Exp @
+ * @Id: curs_move.3x,v 1.40 2024/04/27 17:56:05 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_move 3x</TITLE>
+<TITLE>curs_move 3x 2024-04-27 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_move 3x</H1>
+<H1 class="no-header">curs_move 3x 2024-04-27 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG> <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>
+<STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>move</STRONG>, <STRONG>wmove</STRONG> - move <STRONG>curses</STRONG> window cursor
+ <STRONG>move</STRONG>, <STRONG>wmove</STRONG> - move cursor in a <EM>curses</EM> window
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -58,26 +58,27 @@
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- These routines move the cursor associated with the window to line <EM>y</EM> and
- column <EM>x</EM>. This routine does not move the physical cursor of the termi-
- nal until <STRONG><A HREF="curs_refresh.3x.html">refresh(3x)</A></STRONG> is called. The position specified is relative to
- the upper left-hand corner of the window, which is (0,0).
+ <STRONG>wmove</STRONG> relocates the cursor associated with the <EM>curses</EM> window <EM>win</EM> to
+ line <EM>y</EM> and column <EM>x</EM>. The terminal's cursor does not move until
+ <STRONG><A HREF="curs_refresh.3x.html">refresh(3x)</A></STRONG> is called. The position (<EM>y</EM>, <EM>x</EM>) is relative to the upper
+ left-hand corner of the window, which has coordinates (0, 0).
+ <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> describes the <STRONG>move</STRONG> variant of this function.
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- These routines return <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> (SVr4 specifies only "an
- integer value other than <STRONG>ERR</STRONG>") upon successful completion.
+ These functions return <STRONG>OK</STRONG> on success and <STRONG>ERR</STRONG> on failure.
+
+ They fail if the position (<EM>y</EM>, <EM>x</EM>) is outside the window boundaries.
- Specifically, they return an error if the window pointer is null, or if
- the position is outside the window.
+ <STRONG>wmove</STRONG> fails if its <EM>WINDOW</EM> pointer argument is <STRONG>NULL</STRONG>.
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- Note that <STRONG>move</STRONG> may be a macro.
+ <STRONG>move</STRONG> may be implemented as a macro.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These functions are described in the XSI Curses standard, Issue 4.
+ X/Open Curses, Issue 4 describes these functions.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
@@ -85,7 +86,7 @@
- <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>
+ncurses 6.5 2024-04-27 <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
diff --git a/doc/html/man/curs_opaque.3x.html b/doc/html/man/curs_opaque.3x.html
index 6a1fcdfdd7c3..50bb9ee64e91 100644
--- a/doc/html/man/curs_opaque.3x.html
+++ b/doc/html/man/curs_opaque.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020-2023,2024 Thomas E. Dickey *
* Copyright 2007-2014,2015 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,29 +27,29 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_opaque.3x,v 1.15 2020/10/24 09:41:22 tom Exp @
+ * @Id: curs_opaque.3x,v 1.43 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_opaque 3x</TITLE>
+<TITLE>curs_opaque 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_opaque 3x</H1>
+<H1 class="no-header">curs_opaque 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG> <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>
+<STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>is_cleared</STRONG>, <STRONG>is_idlok</STRONG>, <STRONG>is_idcok</STRONG>, <STRONG>is_immedok</STRONG>, <STRONG>is_keypad</STRONG>, <STRONG>is_leaveok</STRONG>,
- <STRONG>is_nodelay</STRONG>, <STRONG>is_notimeout</STRONG>, <STRONG>is_pad</STRONG>, <STRONG>is_scrollok</STRONG>, <STRONG>is_subwin</STRONG>, <STRONG>is_syncok</STRONG>,
- <STRONG>wgetdelay</STRONG>, <STRONG>wgetparent</STRONG>, <STRONG>wgetscrreg</STRONG> - <STRONG>curses</STRONG> window properties
+ <STRONG>is_cleared</STRONG>, <STRONG>is_idlok</STRONG>, <STRONG>is_idcok</STRONG>, <STRONG>is_immedok</STRONG>, <STRONG>is_keypad</STRONG>, <STRONG>is_leaveok</STRONG>,
+ <STRONG>is_nodelay</STRONG>, <STRONG>is_notimeout</STRONG>, <STRONG>is_pad</STRONG>, <STRONG>is_scrollok</STRONG>, <STRONG>is_subwin</STRONG>, <STRONG>is_syncok</STRONG>,
+ <STRONG>wgetdelay</STRONG>, <STRONG>wgetparent</STRONG>, <STRONG>wgetscrreg</STRONG> - obtain <EM>curses</EM> window properties
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -67,86 +67,95 @@
<STRONG>bool</STRONG> <STRONG>is_scrollok(const</STRONG> <STRONG>WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>);</STRONG>
<STRONG>bool</STRONG> <STRONG>is_subwin(const</STRONG> <STRONG>WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>);</STRONG>
<STRONG>bool</STRONG> <STRONG>is_syncok(const</STRONG> <STRONG>WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>);</STRONG>
+
<STRONG>WINDOW</STRONG> <STRONG>*</STRONG> <STRONG>wgetparent(const</STRONG> <STRONG>WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>wgetdelay(const</STRONG> <STRONG>WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>wgetscrreg(const</STRONG> <STRONG>WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <STRONG>*</STRONG><EM>top</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <STRONG>*</STRONG><EM>bottom</EM><STRONG>);</STRONG>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- This implementation provides functions which return properties set in
- the WINDOW structure, allowing it to be "opaque" if the symbol <STRONG>NCURS-</STRONG>
- <STRONG>ES_OPAQUE</STRONG> is defined:
+ <EM>ncurses</EM> provides functions returning properties of a <EM>WINDOW</EM> structure,
+ allowing it to be "opaque" if the application defines the
+ <STRONG>NCURSES_OPAQUE</STRONG> preprocessor symbol. <EM>Opacity</EM> in this sense means that
+ the members of <EM>struct</EM> data types are not directly accessible (for
+ instance, through "." or "-&gt;" operators), but instead must be queried
+ and/or set via library functions. Advantages of opacity include
+ greater abstraction and improved management of concurrent accesses to
+ data structures, keeping object states coherent.
<STRONG>is_cleared</STRONG>
- returns the value set in <STRONG>clearok</STRONG>
+ returns the value set by <STRONG><A HREF="curs_outopts.3x.html">clearok(3x)</A></STRONG>.
<STRONG>is_idcok</STRONG>
- returns the value set in <STRONG>idcok</STRONG>
+ returns the value set by <STRONG><A HREF="idcok.3x.html">idcok(3x)</A></STRONG>.
<STRONG>is_idlok</STRONG>
- returns the value set in <STRONG>idlok</STRONG>
+ returns the value set by <STRONG><A HREF="idlok.3x.html">idlok(3x)</A></STRONG>.
<STRONG>is_immedok</STRONG>
- returns the value set in <STRONG>immedok</STRONG>
+ returns the value set by <STRONG><A HREF="curs_outopts.3x.html">immedok(3x)</A></STRONG>.
<STRONG>is_keypad</STRONG>
- returns the value set in <STRONG>keypad</STRONG>
+ returns the value set by <STRONG><A HREF="curs_inopts.3x.html">keypad(3x)</A></STRONG>.
<STRONG>is_leaveok</STRONG>
- returns the value set in <STRONG>leaveok</STRONG>
+ returns the value set by <STRONG><A HREF="leaveok.3x.html">leaveok(3x)</A></STRONG>.
<STRONG>is_nodelay</STRONG>
- returns the value set in <STRONG>nodelay</STRONG>
+ returns the value set by <STRONG><A HREF="nodelay.3x.html">nodelay(3x)</A></STRONG>.
<STRONG>is_notimeout</STRONG>
- returns the value set in <STRONG>notimeout</STRONG>
+ returns the value set by <STRONG><A HREF="notimeout.3x.html">notimeout(3x)</A></STRONG>.
- <STRONG>is_pad</STRONG>
- returns <STRONG>TRUE</STRONG> if the window is a pad i.e., created by <STRONG>newpad</STRONG>
+ <STRONG>is_pad</STRONG> returns <STRONG>TRUE</STRONG> if the window is a pad; that is, it was created by
+ <STRONG><A HREF="newpad.3x.html">newpad(3x)</A></STRONG>.
<STRONG>is_scrollok</STRONG>
- returns the value set in <STRONG>scrollok</STRONG>
+ returns the value set by <STRONG><A HREF="scrollok.3x.html">scrollok(3x)</A></STRONG>.
<STRONG>is_subwin</STRONG>
- returns <STRONG>TRUE</STRONG> if the window is a subwindow, i.e., created by <STRONG>subwin</STRONG>
- or <STRONG>derwin</STRONG>
+ returns <STRONG>TRUE</STRONG> if the window is a subwindow, that is, it was
+ created by <STRONG><A HREF="subwin.3x.html">subwin(3x)</A></STRONG> or <STRONG><A HREF="derwin.3x.html">derwin(3x)</A></STRONG>.
<STRONG>is_syncok</STRONG>
- returns the value set in <STRONG>syncok</STRONG>
+ returns the value set by <STRONG><A HREF="syncok.3x.html">syncok(3x)</A></STRONG>.
<STRONG>wgetdelay</STRONG>
- returns the delay timeout as set in <STRONG>wtimeout</STRONG>.
+ returns the delay timeout set by <STRONG><A HREF="wtimeout.3x.html">wtimeout(3x)</A></STRONG>.
<STRONG>wgetparent</STRONG>
- returns the parent WINDOW pointer for subwindows, or NULL for win-
- dows having no parent.
+ returns the parent <EM>WINDOW</EM> pointer for subwindows, or <STRONG>NULL</STRONG> for
+ windows having no parent.
<STRONG>wgetscrreg</STRONG>
- returns the top and bottom rows for the scrolling margin as set in
- <STRONG>wsetscrreg</STRONG>.
+ stores the the top and bottom rows for the scrolling margin set
+ by <STRONG><A HREF="curs_outopts.3x.html">wsetscrreg(3x)</A></STRONG> in the corresponding arguments, returning <STRONG>ERR</STRONG>
+ upon failure and <STRONG>OK</STRONG> upon successful completion.
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- These functions all return <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>, except as noted.
+ These functions return <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG> except as noted.
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- Both a macro and a function are provided for each name.
+ <EM>ncurses</EM> provides both a C function and a preprocessor macro for each
+ function documented in this page.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines are specific to ncurses. They were not supported on
+ These routines are specific to <EM>ncurses</EM>. They were not supported on
Version 7, BSD or System V implementations. It is recommended that any
- code depending on ncurses extensions be conditioned using NCURSES_VER-
- SION.
+ code depending on <EM>ncurses</EM> extensions be conditioned using
+ <STRONG>NCURSES_VERSION</STRONG>.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>, <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>, <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>, <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>, <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>,
+ <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
- <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
diff --git a/doc/html/man/curs_outopts.3x.html b/doc/html/man/curs_outopts.3x.html
index a860b1bb1291..7f04d92eabef 100644
--- a/doc/html/man/curs_outopts.3x.html
+++ b/doc/html/man/curs_outopts.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,28 +27,28 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_outopts.3x,v 1.33 2020/10/03 22:04:09 tom Exp @
+ * @Id: curs_outopts.3x,v 1.64 2024/04/20 21:24:19 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_outopts 3x</TITLE>
+<TITLE>curs_outopts 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_outopts 3x</H1>
+<H1 class="no-header">curs_outopts 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG> <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
+<STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>clearok</STRONG>, <STRONG>idlok</STRONG>, <STRONG>idcok</STRONG>, <STRONG>immedok</STRONG>, <STRONG>leaveok</STRONG>, <STRONG>setscrreg</STRONG>, <STRONG>wsetscrreg</STRONG>,
- <STRONG>scrollok</STRONG> - <STRONG>curses</STRONG> output options
+ <STRONG>clearok</STRONG>, <STRONG>idlok</STRONG>, <STRONG>idcok</STRONG>, <STRONG>immedok</STRONG>, <STRONG>leaveok</STRONG>, <STRONG>setscrreg</STRONG>, <STRONG>wsetscrreg</STRONG>,
+ <STRONG>scrollok</STRONG> - set <EM>curses</EM> output options
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -66,9 +66,9 @@
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- These routines set options that change the style of output within <STRONG>curs-</STRONG>
- <STRONG>es</STRONG>. All options are initially <STRONG>FALSE</STRONG>, unless otherwise stated. It is
- not necessary to turn these options off before calling <STRONG><A HREF="curs_initscr.3x.html">endwin(3x)</A></STRONG>.
+ These routines set options that change the style of output within
+ <STRONG>curses</STRONG>. All options are initially <STRONG>FALSE</STRONG>, unless otherwise stated. It
+ is not necessary to turn these options off before calling <STRONG><A HREF="curs_initscr.3x.html">endwin(3x)</A></STRONG>.
</PRE><H3><a name="h3-clearok">clearok</a></H3><PRE>
@@ -84,61 +84,63 @@
</PRE><H3><a name="h3-idlok">idlok</a></H3><PRE>
If <STRONG>idlok</STRONG> is called with <STRONG>TRUE</STRONG> as second argument, <STRONG>curses</STRONG> considers using
the hardware insert/delete line feature of terminals so equipped.
- Calling <STRONG>idlok</STRONG> with <STRONG>FALSE</STRONG> as second argument disables use of line inser-
- tion and deletion. This option should be enabled only if the applica-
- tion needs insert/delete line, for example, for a screen editor. It is
- disabled by default because insert/delete line tends to be visually an-
- noying when used in applications where it is not really needed. If in-
- sert/delete line cannot be used, <STRONG>curses</STRONG> redraws the changed portions of
- all lines.
+ Calling <STRONG>idlok</STRONG> with <STRONG>FALSE</STRONG> as second argument disables use of line
+ insertion and deletion. This option should be enabled only if the
+ application needs insert/delete line, for example, for a screen editor.
+ It is disabled by default because insert/delete line tends to be
+ visually annoying when used in applications where it is not really
+ needed. If insert/delete line cannot be used, <STRONG>curses</STRONG> redraws the
+ changed portions of all lines.
</PRE><H3><a name="h3-idcok">idcok</a></H3><PRE>
- If <STRONG>idcok</STRONG> is called with <STRONG>FALSE</STRONG> as second argument, <STRONG>curses</STRONG> no longer con-
- siders using the hardware insert/delete character feature of terminals
- so equipped. Use of character insert/delete is enabled by default.
- Calling <STRONG>idcok</STRONG> with <STRONG>TRUE</STRONG> as second argument re-enables use of character
- insertion and deletion.
+ If <STRONG>idcok</STRONG> is called with <STRONG>FALSE</STRONG> as second argument, <STRONG>curses</STRONG> no longer
+ considers using the hardware insert/delete character feature of
+ terminals so equipped. Use of character insert/delete is enabled by
+ default. Calling <STRONG>idcok</STRONG> with <STRONG>TRUE</STRONG> as second argument re-enables use of
+ character insertion and deletion.
</PRE><H3><a name="h3-immedok">immedok</a></H3><PRE>
- If <STRONG>immedok</STRONG> is called with <STRONG>TRUE</STRONG> <STRONG>as</STRONG> <STRONG>argument</STRONG>, any change in the window
- image, such as the ones caused by <STRONG>waddch,</STRONG> <STRONG>wclrtobot,</STRONG> <STRONG>wscrl</STRONG>, etc., auto-
- matically cause a call to <STRONG>wrefresh</STRONG>. However, it may degrade perfor-
- mance considerably, due to repeated calls to <STRONG>wrefresh</STRONG>. It is disabled
- by default.
+ If <STRONG>immedok</STRONG> is called with <STRONG>TRUE</STRONG> as second argument, any change in the
+ window image, such as the ones caused by <STRONG>waddch,</STRONG> <STRONG>wclrtobot,</STRONG> <STRONG>wscrl</STRONG>,
+ etc., automatically causes a call to <STRONG>wrefresh</STRONG>. However, it may degrade
+ performance considerably, due to repeated calls to <STRONG>wrefresh</STRONG>. Calling
+ <STRONG>immedok</STRONG> with <STRONG>FALSE</STRONG> as second argument restores the default behavior,
+ i.e., deferring screen updates until a refresh is needed.
</PRE><H3><a name="h3-leaveok">leaveok</a></H3><PRE>
- Normally, the hardware cursor is left at the location of the window
- cursor being refreshed. The <STRONG>leaveok</STRONG> option allows the cursor to be
- left wherever the update happens to leave it. It is useful for appli-
- cations where the cursor is not used, since it reduces the need for
- cursor motions.
+ Normally, the hardware cursor is left at the location of the window
+ cursor being refreshed. The <STRONG>leaveok</STRONG> option allows the cursor to be
+ left wherever the update happens to leave it. It is useful for
+ applications where the cursor is not used, since it reduces the need
+ for cursor motions.
</PRE><H3><a name="h3-scrollok">scrollok</a></H3><PRE>
- The <STRONG>scrollok</STRONG> option controls what happens when the cursor of a window
- is moved off the edge of the window or scrolling region, either as a
- result of a newline action on the bottom line, or typing the last char-
- acter of the last line. If disabled, (<EM>bf</EM> is <STRONG>FALSE</STRONG>), the cursor is left
- on the bottom line. If enabled, (<EM>bf</EM> is <STRONG>TRUE</STRONG>), the window is scrolled
- up one line (Note that to get the physical scrolling effect on the ter-
- minal, it is also necessary to call <STRONG>idlok</STRONG>).
-
-
-</PRE><H3><a name="h3-setscrreg_wsetscrreg">setscrreg/wsetscrreg</a></H3><PRE>
- The <STRONG>setscrreg</STRONG> and <STRONG>wsetscrreg</STRONG> routines allow the application programmer
- to set a software scrolling region in a window. The <EM>top</EM> and <EM>bot</EM> param-
- eters are the line numbers of the top and bottom margin of the
- scrolling region. (Line 0 is the top line of the window.) If this op-
- tion and <STRONG>scrollok</STRONG> are enabled, an attempt to move off the bottom margin
- line causes all lines in the scrolling region to scroll one line in the
- direction of the first line. Only the text of the window is scrolled.
- (Note that this has nothing to do with the use of a physical scrolling
- region capability in the terminal, like that in the VT100. If <STRONG>idlok</STRONG> is
- enabled and the terminal has either a scrolling region or insert/delete
- line capability, they will probably be used by the output routines.)
+ The <STRONG>scrollok</STRONG> option controls what happens when the cursor of a window
+ is moved off the edge of the window or scrolling region, either as a
+ result of a newline action on the bottom line, or typing the last
+ character of the last line. If disabled, (<EM>bf</EM> is <STRONG>FALSE</STRONG>), the cursor is
+ left on the bottom line. If enabled, (<EM>bf</EM> is <STRONG>TRUE</STRONG>), the window is
+ scrolled up one line (Note that to get the physical scrolling effect on
+ the terminal, it is also necessary to call <STRONG>idlok</STRONG>).
+
+
+</PRE><H3><a name="h3-setscrreg_wsetscrreg">setscrreg, wsetscrreg</a></H3><PRE>
+ The <STRONG>setscrreg</STRONG> and <STRONG>wsetscrreg</STRONG> routines allow the application programmer
+ to set a software scrolling region in a window. The <EM>top</EM> and <EM>bot</EM>
+ parameters are the line numbers of the top and bottom margin of the
+ scrolling region. (Line 0 is the top line of the window.) If this
+ option and <STRONG>scrollok</STRONG> are enabled, an attempt to move off the bottom
+ margin line causes all lines in the scrolling region to scroll one line
+ in the direction of the first line. Only the text of the window is
+ scrolled. (Note that this has nothing to do with the use of a physical
+ scrolling region capability in the terminal, like that in the VT100.
+ If <STRONG>idlok</STRONG> is enabled and the terminal has either a scrolling region or
+ insert/delete line capability, they will probably be used by the output
+ routines.)
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
@@ -146,7 +148,7 @@
upon failure. All other routines that return an integer always return
<STRONG>OK</STRONG>.
- X/Open Curses does not define any error conditions.
+ X/Open Curses does not specify any error conditions.
In this implementation,
@@ -154,56 +156,47 @@
the window pointer is null
<STRONG>o</STRONG> <STRONG>wsetscrreg</STRONG> returns an error if the scrolling region limits extend
- outside the window.
+ outside the window boundaries.
- X/Open does not define any error conditions. This implementation re-
- turns an error if the window pointer is null.
+
+</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
+ Note that <STRONG>clearok</STRONG>, <STRONG>leaveok</STRONG>, <STRONG>scrollok</STRONG>, <STRONG>idcok</STRONG>, and <STRONG>setscrreg</STRONG> may be
+ macros.
+
+ The <STRONG>immedok</STRONG> routine is useful for windows that are used as terminal
+ emulators.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These functions are described in the XSI Curses standard, Issue 4.
-
- From the outset, ncurses used <STRONG>nl</STRONG>/<STRONG>nonl</STRONG> to control the conversion of new-
- lines to carriage return/line-feed on output as well as input. XSI
- Curses documents only the use of these functions for input. This dif-
- ference arose from converting the <EM>pcurses</EM> source (which used <STRONG>ioctl</STRONG>
- calls with the <STRONG>sgttyb</STRONG> structure) to termios (i.e., the POSIX terminal
- interface). In the former, both input and output were controlled via a
- single option <STRONG>CRMOD</STRONG>, while the latter separates these features. Be-
- cause that conversion interferes with output optimization, <STRONG>nl</STRONG>/<STRONG>nonl</STRONG> were
- amended after ncurses 6.2 to eliminate their effect on output.
-
- Some historic curses implementations had, as an undocumented feature,
- the ability to do the equivalent of <STRONG>clearok(...,</STRONG> <STRONG>1)</STRONG> by saying <STRONG>touch-</STRONG>
- <STRONG>win(stdscr)</STRONG> or <STRONG>clear(stdscr)</STRONG>. This will not work under ncurses.
-
- Earlier System V curses implementations specified that with <STRONG>scrollok</STRONG>
- enabled, any window modification triggering a scroll also forced a
- physical refresh. XSI Curses does not require this, and <STRONG>ncurses</STRONG> avoids
- doing it to perform better vertical-motion optimization at <STRONG>wrefresh</STRONG>
- time.
-
- The XSI Curses standard does not mention that the cursor should be made
- invisible as a side-effect of <STRONG>leaveok</STRONG>. SVr4 curses documentation does
- this, but the code does not. Use <STRONG>curs_set</STRONG> to make the cursor invisi-
- ble.
+ These functions are described in X/Open Curses, Issue 4.
+ Some historic curses implementations had, as an undocumented feature,
+ the ability to do the equivalent of <STRONG>clearok(...,</STRONG> <STRONG>1)</STRONG> by saying
+ <STRONG>touchwin(stdscr)</STRONG> or <STRONG>clear(stdscr)</STRONG>. This will not work under <EM>ncurses</EM>.
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- Note that <STRONG>clearok</STRONG>, <STRONG>leaveok</STRONG>, <STRONG>scrollok</STRONG>, <STRONG>idcok</STRONG>, and <STRONG>setscrreg</STRONG> may be
- macros.
+ Earlier System V curses implementations specified that with <STRONG>scrollok</STRONG>
+ enabled, any window modification triggering a scroll also forced a
+ physical refresh. X/Open Curses does not require this, and <EM>ncurses</EM>
+ avoids doing it to perform better vertical-motion optimization at
+ <STRONG>wrefresh</STRONG> time.
+
+ X/Open Curses does not mention that the cursor should be made invisible
+ as a side-effect of <STRONG>leaveok</STRONG>. SVr4 curses documentation does this, but
+ the code does not. Use <STRONG>curs_set</STRONG> to make the cursor invisible.
- The <STRONG>immedok</STRONG> routine is useful for windows that are used as terminal em-
- ulators.
+
+</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
+ <EM>ncurses</EM> formerly treated <STRONG><A HREF="curs_inopts.3x.html">nl(3x)</A></STRONG> and <STRONG><A HREF="curs_inopts.3x.html">nonl(3x)</A></STRONG> as both input <EM>and</EM> output
+ options, but no longer; see <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>, <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>,
- <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>.
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>, <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>,
+ <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>
- <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -217,12 +210,13 @@
<li><a href="#h3-immedok">immedok</a></li>
<li><a href="#h3-leaveok">leaveok</a></li>
<li><a href="#h3-scrollok">scrollok</a></li>
-<li><a href="#h3-setscrreg_wsetscrreg">setscrreg/wsetscrreg</a></li>
+<li><a href="#h3-setscrreg_wsetscrreg">setscrreg, wsetscrreg</a></li>
</ul>
</li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-NOTES">NOTES</a></li>
+<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
+<li><a href="#h2-HISTORY">HISTORY</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
diff --git a/doc/html/man/curs_overlay.3x.html b/doc/html/man/curs_overlay.3x.html
index f858adaef65b..61c4c1999fd1 100644
--- a/doc/html/man/curs_overlay.3x.html
+++ b/doc/html/man/curs_overlay.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020-2023,2024 Thomas E. Dickey *
* Copyright 1998-2013,2015 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,28 +27,28 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_overlay.3x,v 1.19 2020/02/02 23:34:34 tom Exp @
+ * @Id: curs_overlay.3x,v 1.43 2024/04/20 21:20:07 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_overlay 3x</TITLE>
+<TITLE>curs_overlay 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_overlay 3x</H1>
+<H1 class="no-header">curs_overlay 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG> <STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG>
+<STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>overlay</STRONG>, <STRONG>overwrite</STRONG>, <STRONG>copywin</STRONG> - overlay and manipulate overlapped <STRONG>curses</STRONG>
- windows
+ <STRONG>overlay</STRONG>, <STRONG>overwrite</STRONG>, <STRONG>copywin</STRONG> - overlay <EM>curses</EM> windows and manipulate
+ them
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -63,27 +63,27 @@
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
-</PRE><H3><a name="h3-overlay_-overwrite">overlay, overwrite</a></H3><PRE>
+</PRE><H3><a name="h3-overlay_overwrite">overlay, overwrite</a></H3><PRE>
The <STRONG>overlay</STRONG> and <STRONG>overwrite</STRONG> routines overlay <EM>srcwin</EM> on top of <EM>dstwin</EM>.
<EM>scrwin</EM> and <EM>dstwin</EM> are not required to be the same size; only text where
the two windows overlap is copied. The difference is that <STRONG>overlay</STRONG> is
- non-destructive (blanks are not copied) whereas <STRONG>overwrite</STRONG> is destruc-
- tive.
+ non-destructive (blanks are not copied) whereas <STRONG>overwrite</STRONG> is
+ destructive.
</PRE><H3><a name="h3-copywin">copywin</a></H3><PRE>
The <STRONG>copywin</STRONG> routine provides a finer granularity of control over the
- <STRONG>overlay</STRONG> and <STRONG>overwrite</STRONG> routines. As in the <STRONG>prefresh</STRONG> routine, a rectan-
- gle is specified in the destination window, (<EM>dminrow</EM>, <EM>dmincol</EM>) and
- (<EM>dmaxrow</EM>, <EM>dmaxcol</EM>), and the upper-left-corner coordinates of the source
- window, (<EM>sminrow</EM>, <EM>smincol</EM>). If the argument <EM>overlay</EM> is <STRONG>true</STRONG>, then
- copying is non-destructive, as in <STRONG>overlay</STRONG>.
+ <STRONG>overlay</STRONG> and <STRONG>overwrite</STRONG> routines. As in the <STRONG>prefresh</STRONG> routine, a
+ rectangle is specified in the destination window, (<EM>dminrow</EM>, <EM>dmincol</EM>)
+ and (<EM>dmaxrow</EM>, <EM>dmaxcol</EM>), and the upper-left-corner coordinates of the
+ source window, (<EM>sminrow</EM>, <EM>smincol</EM>). If the argument <EM>overlay</EM> is <STRONG>true</STRONG>,
+ then copying is non-destructive, as in <STRONG>overlay</STRONG>.
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- Routines that return an integer return <STRONG>ERR</STRONG> upon failure, and <STRONG>OK</STRONG> (SVr4
- only specifies "an integer value other than <STRONG>ERR</STRONG>") upon successful com-
- pletion.
+ These routines return the integer <STRONG>ERR</STRONG> upon failure and an <STRONG>OK</STRONG> (SVr4
+ specifies only "an integer value other than <STRONG>ERR</STRONG>") upon successful
+ completion.
X/Open defines no error conditions. In this implementation, <STRONG>copywin</STRONG>,
<STRONG>overlay</STRONG> and <STRONG>overwrite</STRONG> return an error if either of the window pointers
@@ -95,10 +95,10 @@
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- The XSI Curses standard, Issue 4 describes these functions (adding the
- const qualifiers). It further specifies their behavior in the presence
- of characters with multibyte renditions (not yet supported in this im-
- plementation).
+ These functions are described in X/Open Curses, Issue 4, which adds
+ <EM>const</EM> qualifiers to the arguments. It further specifies their behavior
+ in the presence of characters with multibyte renditions (not yet
+ supported in this implementation).
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
@@ -106,7 +106,7 @@
- <STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -114,7 +114,7 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
<ul>
-<li><a href="#h3-overlay_-overwrite">overlay, overwrite</a></li>
+<li><a href="#h3-overlay_overwrite">overlay, overwrite</a></li>
<li><a href="#h3-copywin">copywin</a></li>
</ul>
</li>
diff --git a/doc/html/man/curs_pad.3x.html b/doc/html/man/curs_pad.3x.html
index b065000bfd5d..ae27590967bc 100644
--- a/doc/html/man/curs_pad.3x.html
+++ b/doc/html/man/curs_pad.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2015,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,163 +27,161 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_pad.3x,v 1.26 2020/02/02 23:34:34 tom Exp @
+ * @Id: curs_pad.3x,v 1.61 2024/04/27 17:55:43 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_pad 3x</TITLE>
+<TITLE>curs_pad 3x 2024-04-27 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_pad 3x</H1>
+<H1 class="no-header">curs_pad 3x 2024-04-27 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG> <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
+<STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
<STRONG>newpad</STRONG>, <STRONG>subpad</STRONG>, <STRONG>prefresh</STRONG>, <STRONG>pnoutrefresh</STRONG>, <STRONG>pechochar</STRONG>, <STRONG>pecho_wchar</STRONG> - create
- and display <STRONG>curses</STRONG> pads
+ and display <EM>curses</EM> pads
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
<STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
<STRONG>WINDOW</STRONG> <STRONG>*newpad(int</STRONG> <EM>nlines</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>ncols</EM><STRONG>);</STRONG>
- <STRONG>WINDOW</STRONG> <STRONG>*subpad(WINDOW</STRONG> <STRONG>*</STRONG><EM>orig</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>nlines</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>ncols</EM><STRONG>,</STRONG>
+ <STRONG>WINDOW</STRONG> <STRONG>*subpad(WINDOW</STRONG> <STRONG>*</STRONG><EM>parent</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>nlines</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>ncols</EM><STRONG>,</STRONG>
<STRONG>int</STRONG> <EM>begin</EM><STRONG>_</STRONG><EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>begin</EM><STRONG>_</STRONG><EM>x</EM><STRONG>);</STRONG>
+
<STRONG>int</STRONG> <STRONG>prefresh(WINDOW</STRONG> <STRONG>*</STRONG><EM>pad</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>pminrow</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>pmincol</EM><STRONG>,</STRONG>
<STRONG>int</STRONG> <EM>sminrow</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>smincol</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>smaxrow</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>smaxcol</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>pnoutrefresh(WINDOW</STRONG> <STRONG>*</STRONG><EM>pad</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>pminrow</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>pmincol</EM><STRONG>,</STRONG>
<STRONG>int</STRONG> <EM>sminrow</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>smincol</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>smaxrow</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>smaxcol</EM><STRONG>);</STRONG>
+
<STRONG>int</STRONG> <STRONG>pechochar(WINDOW</STRONG> <STRONG>*</STRONG><EM>pad</EM><STRONG>,</STRONG> <STRONG>chtype</STRONG> <EM>ch</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>pecho_wchar(WINDOW</STRONG> <STRONG>*</STRONG><EM>pad</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
+ A <EM>curses</EM> <EM>pad</EM> is like a window, except that it is not restricted by the
+ screen size, and is not necessarily associated with a particular part
+ of the screen. Pads can be used when a large window is needed, only
+ part of which is to be visible on the screen. Pads are not
+ automatically refreshed by scrolling or input-echoing operations.
+
+ Pads cannot be refreshed with <STRONG><A HREF="curs_refresh.3x.html">wrefresh(3x)</A></STRONG>; use <STRONG>prefresh</STRONG> or
+ <STRONG>pnoutrefresh</STRONG> instead.
+
</PRE><H3><a name="h3-newpad">newpad</a></H3><PRE>
- The <STRONG>newpad</STRONG> routine creates and returns a pointer to a new pad data
- structure with the given number of lines, <EM>nlines</EM>, and columns, <EM>ncols</EM>.
- A pad is like a window, except that it is not restricted by the screen
- size, and is not necessarily associated with a particular part of the
- screen. Pads can be used when a large window is needed, and only a
- part of the window will be on the screen at one time. Automatic re-
- freshes of pads (e.g., from scrolling or echoing of input) do not oc-
- cur.
-
- It is not legal to call <STRONG>wrefresh</STRONG> with a <EM>pad</EM> as an argument; the rou-
- tines <STRONG>prefresh</STRONG> or <STRONG>pnoutrefresh</STRONG> should be called instead. Note that
- these routines require additional parameters to specify the part of the
- pad to be displayed and the location on the screen to be used for the
- display.
+ <STRONG>newpad</STRONG> creates and returns a pointer to a new pad data structure with
+ the given number of lines, <EM>nlines</EM>, and columns, <EM>ncols</EM>.
</PRE><H3><a name="h3-subpad">subpad</a></H3><PRE>
- The <STRONG>subpad</STRONG> routine creates and returns a pointer to a subwindow within
- a pad with the given number of lines, <EM>nlines</EM>, and columns, <EM>ncols</EM>. Un-
- like <STRONG>subwin</STRONG>, which uses screen coordinates, the window is at position
- (<EM>begin</EM>_<EM>x</EM><STRONG>,</STRONG> <EM>begin</EM>_<EM>y</EM>) on the pad. The window is made in the middle of the
- window <EM>orig</EM>, so that changes made to one window affect both windows.
- During the use of this routine, it will often be necessary to call
- <STRONG>touchwin</STRONG> or <STRONG>touchline</STRONG> on <EM>orig</EM> before calling <STRONG>prefresh</STRONG>.
+ <STRONG>subpad</STRONG> creates and returns a pointer to a subwindow within a pad with
+ the given number of lines, <EM>nlines</EM>, and columns, <EM>ncols</EM>. Unlike
+ <STRONG><A HREF="subwin.3x.html">subwin(3x)</A></STRONG>, which uses screen coordinates, the new pad is placed at
+ position (<EM>begin</EM><STRONG>_</STRONG><EM>y</EM>, <EM>begin</EM><STRONG>_</STRONG><EM>x</EM>) relative to its parent. Thus, changes made
+ to one pad can affect both. When operating on a subpad, it is often
+ necessary to call <STRONG><A HREF="curs_touch.3x.html">touchwin(3x)</A></STRONG> or <STRONG><A HREF="curs_touch.3x.html">touchline(3x)</A></STRONG> on <EM>parent</EM> before
+ calling <STRONG>prefresh</STRONG>.
-</PRE><H3><a name="h3-prefresh_-pnoutrefresh">prefresh, pnoutrefresh</a></H3><PRE>
- The <STRONG>prefresh</STRONG> and <STRONG>pnoutrefresh</STRONG> routines are analogous to <STRONG>wrefresh</STRONG> and
- <STRONG>wnoutrefresh</STRONG> except that they relate to pads instead of windows. The
- additional parameters are needed to indicate what part of the pad and
- screen are involved.
+</PRE><H3><a name="h3-prefresh_pnoutrefresh">prefresh, pnoutrefresh</a></H3><PRE>
+ <STRONG>prefresh</STRONG> and <STRONG>pnoutrefresh</STRONG> are analogous to <STRONG><A HREF="curs_refresh.3x.html">wrefresh(3x)</A></STRONG> and
+ <STRONG><A HREF="curs_refresh.3x.html">wnoutrefresh(3x)</A></STRONG> except that they operate on pads rather than windows.
+ They require additional parameters are needed to indicate what portions
+ of the pad and screen are involved.
- <STRONG>o</STRONG> The <EM>pminrow</EM> and <EM>pmincol</EM> parameters specify the upper left-hand cor-
- ner of the rectangle to be displayed in the pad.
+ <STRONG>o</STRONG> <EM>pminrow</EM> and <EM>pmincol</EM> specify the upper left-hand corner of a
+ rectangular view of the pad.
- <STRONG>o</STRONG> The <EM>sminrow</EM>, <EM>smincol</EM>, <EM>smaxrow</EM>, and <EM>smaxcol</EM> parameters specify the
- edges of the rectangle to be displayed on the screen.
+ <STRONG>o</STRONG> <EM>sminrow</EM>, <EM>smincol</EM>, <EM>smaxrow</EM>, and <EM>smaxcol</EM> specify the vertices of the
+ rectangle to be displayed on the screen.
The lower right-hand corner of the rectangle to be displayed in the pad
is calculated from the screen coordinates, since the rectangles must be
the same size. Both rectangles must be entirely contained within their
- respective structures. Negative values of <EM>pminrow</EM>, <EM>pmincol</EM>, <EM>sminrow</EM>,
- or <EM>smincol</EM> are treated as if they were zero.
+ respective structures. <EM>curses</EM> treats negative values of any of these
+ parameters as zero.
</PRE><H3><a name="h3-pechochar">pechochar</a></H3><PRE>
- The <STRONG>pechochar</STRONG> routine is functionally equivalent to a call to <STRONG>addch</STRONG>
- followed by a call to <STRONG><A HREF="curs_refresh.3x.html">refresh(3x)</A></STRONG>, a call to <STRONG>waddch</STRONG> followed by a call
- to <STRONG>wrefresh</STRONG>, or a call to <STRONG>waddch</STRONG> followed by a call to <STRONG>prefresh</STRONG>. The
- knowledge that only a single character is being output is taken into
- consideration and, for non-control characters, a considerable perfor-
- mance gain might be seen by using these routines instead of their
- equivalents. In the case of <STRONG>pechochar</STRONG>, the last location of the pad on
- the screen is reused for the arguments to <STRONG>prefresh</STRONG>.
+ <STRONG>pechochar</STRONG> is functionally equivalent to calling <STRONG><A HREF="curs_addch.3x.html">waddch(3x)</A></STRONG> followed by
+ <STRONG>prefresh</STRONG>. It suggests to the <EM>curses</EM> optimizer that only a single
+ character is being output; a considerable performance benefit may be
+ thus enjoyed. The location of the character <EM>ch</EM> written to the pad is
+ used to populate the arguments to <STRONG>prefresh</STRONG>.
</PRE><H3><a name="h3-pecho_wchar">pecho_wchar</a></H3><PRE>
- The <STRONG>pecho_wchar</STRONG> function is the analogous wide-character form of <STRONG>pe-</STRONG>
- <STRONG>chochar</STRONG>. It outputs one character to a pad and immediately refreshes
- the pad. It does this by a call to <STRONG>wadd_wch</STRONG> followed by a call to <STRONG>pre-</STRONG>
- <STRONG>fresh</STRONG>.
+ <STRONG>pecho_wchar</STRONG> is functionally equivalent to calling <STRONG><A HREF="curs_add_wch.3x.html">wadd_wch(3x)</A></STRONG> followed
+ by <STRONG>prefresh</STRONG>. It suggests to the <EM>curses</EM> optimizer that only a single
+ wide character is being output; a considerable performance benefit may
+ be thus enjoyed. The location of the character <EM>wch</EM> written to the pad
+ is used to populate the arguments to <STRONG>prefresh</STRONG>.
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- Routines that return an integer return <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> (SVr4
- only specifies "an integer value other than <STRONG>ERR</STRONG>") upon successful com-
- pletion.
+ Functions that return an integer return <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> (SVr4
+ specifies only "an integer value other than <STRONG>ERR</STRONG>") upon successful
+ completion.
- Routines that return pointers return <STRONG>NULL</STRONG> on error, and set <STRONG>errno</STRONG> to
+ Functions that return pointers return <STRONG>NULL</STRONG> on error, and set <STRONG>errno</STRONG> to
<STRONG>ENOMEM</STRONG>.
- X/Open does not define any error conditions. In this implementation
+ X/Open Curses does not specify any error conditions. In this
+ implementation
<STRONG>prefresh</STRONG> and <STRONG>pnoutrefresh</STRONG>
return an error if the window pointer is null, or if the window
is not really a pad or if the area to refresh extends off-
- screen or if the minimum coordinates are greater than the maxi-
- mum.
+ screen or if the minimum coordinates are greater than the
+ maximum.
<STRONG>pechochar</STRONG>
- returns an error if the window is not really a pad, and the as-
- sociated call to <STRONG>wechochar</STRONG> returns an error.
+ returns an error if the window is not really a pad, and the
+ associated call to <STRONG>wechochar</STRONG> returns an error.
<STRONG>pecho_wchar</STRONG>
- returns an error if the window is not really a pad, and the as-
- sociated call to <STRONG>wecho_wchar</STRONG> returns an error.
+ returns an error if the window is not really a pad, and the
+ associated call to <STRONG>wecho_wchar</STRONG> returns an error.
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- Note that <STRONG>pechochar</STRONG> may be a macro.
+ <STRONG>pechochar</STRONG> may be a macro.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- BSD curses has no <EM>pad</EM> feature.
+ BSD <EM>curses</EM> has no <EM>pad</EM> feature.
- SVr2 curses (1986) provided the <STRONG>newpad</STRONG> and related functions, document-
- ing them in a single line each. SVr3 (1987) provided more extensive
- documentation.
+ SVr2 <EM>curses</EM> (1986) provided the <STRONG>newpad</STRONG> and related functions,
+ documenting them in a single line each. SVr3 (1987) provided more
+ extensive documentation.
The documentation does not explain the term <EM>pad</EM>. However, the Apollo
<EM>Aegis</EM> workstation operating system supported a graphical <EM>pad</EM> feature:
- <STRONG>o</STRONG> These graphical pads could be much larger than the computer's dis-
- play.
+ <STRONG>o</STRONG> These graphical pads could be much larger than the computer's
+ display.
- <STRONG>o</STRONG> The read-only output from a command could be scrolled back to in-
- spect, and select text from the pad.
+ <STRONG>o</STRONG> The read-only output from a command could be scrolled back to
+ inspect, and select text from the pad.
The two uses may be related.
- The XSI Curses standard, Issue 4 describes these functions, without
- significant change from the SVr3 documentation. It describes no error
- conditions. The behavior of <STRONG>subpad</STRONG> if the parent window is not a pad
- is undocumented, and is not checked by the vendor Unix implementations:
+ X/Open Curses, Issue 4 describes these functions, without significant
+ change from the SVr3 documentation. It describes no error conditions.
+ The behavior of <STRONG>subpad</STRONG> if the parent window is not a pad is
+ undocumented, and is not checked by the vendor Unix implementations:
- <STRONG>o</STRONG> SVr4 curses sets a flag in the <STRONG>WINDOW</STRONG> structure in <STRONG>newpad</STRONG> which
+ <STRONG>o</STRONG> SVr4 <EM>curses</EM> sets a flag in the <EM>WINDOW</EM> structure in <STRONG>newpad</STRONG> which
tells if the window is a <EM>pad</EM>.
However, it uses this information only in <STRONG>waddch</STRONG> (to decide if it
@@ -191,20 +189,20 @@
does not check in <STRONG>wrefresh</STRONG> to ensure that the pad is refreshed
properly.
- <STRONG>o</STRONG> Solaris X/Open Curses checks if a window is a pad in <STRONG>wnoutrefresh</STRONG>,
+ <STRONG>o</STRONG> Solaris <EM>xcurses</EM> checks whether a window is a pad in <STRONG>wnoutrefresh</STRONG>,
returning <STRONG>ERR</STRONG> in that case.
However, it only sets the flag for subwindows if the parent window
- is a pad. Its <STRONG>newpad</STRONG> function does not set this information. Con-
- sequently, the check will never fail.
+ is a pad. Its <STRONG>newpad</STRONG> function does not set this information.
+ Consequently, the check will never fail.
It makes no comparable check in <STRONG>pnoutrefresh</STRONG>, though interestingly
enough, a comment in the source code states that the lack of a
check was an MKS extension.
- <STRONG>o</STRONG> NetBSD 7 curses sets a flag in the <STRONG>WINDOW</STRONG> structure for <STRONG>newpad</STRONG> and
- <STRONG>subpad</STRONG>, using this to help with the distinction between <STRONG>wnoutre-</STRONG>
- <STRONG>fresh</STRONG> and <STRONG>pnoutrefresh</STRONG>.
+ <STRONG>o</STRONG> NetBSD 7 <EM>curses</EM> sets a flag in the <EM>WINDOW</EM> structure for <STRONG>newpad</STRONG> and
+ <STRONG>subpad</STRONG>, using this to help with the distinction between
+ <STRONG>wnoutrefresh</STRONG> and <STRONG>pnoutrefresh</STRONG>.
It does not check for the case where a subwindow is created in a
pad using <STRONG>subwin</STRONG> or <STRONG>derwin</STRONG>.
@@ -215,7 +213,7 @@
This implementation
- <STRONG>o</STRONG> sets a flag in the <STRONG>WINDOW</STRONG> structure for <STRONG>newpad</STRONG> and <STRONG>subpad</STRONG>,
+ <STRONG>o</STRONG> sets a flag in the <EM>WINDOW</EM> structure for <STRONG>newpad</STRONG> and <STRONG>subpad</STRONG>,
<STRONG>o</STRONG> allows a <STRONG>subwin</STRONG> or <STRONG>derwin</STRONG> call to succeed having a pad parent by
forcing the subwindow to be a pad,
@@ -223,16 +221,16 @@
<STRONG>o</STRONG> checks in both <STRONG>wnoutrefresh</STRONG> and <STRONG>pnoutrefresh</STRONG> to ensure that pads
and windows are handled distinctly, and
- <STRONG>o</STRONG> ensures that <STRONG>dupwin</STRONG> and <STRONG>getwin</STRONG> treat pads versus windows consis-
- tently.
+ <STRONG>o</STRONG> ensures that <STRONG>dupwin</STRONG> and <STRONG>getwin</STRONG> treat pads versus windows
+ consistently.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>, <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>.
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
- <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
+ncurses 6.5 2024-04-27 <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -242,7 +240,7 @@
<ul>
<li><a href="#h3-newpad">newpad</a></li>
<li><a href="#h3-subpad">subpad</a></li>
-<li><a href="#h3-prefresh_-pnoutrefresh">prefresh, pnoutrefresh</a></li>
+<li><a href="#h3-prefresh_pnoutrefresh">prefresh, pnoutrefresh</a></li>
<li><a href="#h3-pechochar">pechochar</a></li>
<li><a href="#h3-pecho_wchar">pecho_wchar</a></li>
</ul>
diff --git a/doc/html/man/curs_print.3x.html b/doc/html/man/curs_print.3x.html
index 8550173febaa..92fb48d47856 100644
--- a/doc/html/man/curs_print.3x.html
+++ b/doc/html/man/curs_print.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2010,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,27 +27,27 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_print.3x,v 1.16 2020/10/24 09:25:14 tom Exp @
+ * @Id: curs_print.3x,v 1.38 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_print 3x</TITLE>
+<TITLE>curs_print 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_print 3x</H1>
+<H1 class="no-header">curs_print 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG> <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG>
+<STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>mcprint</STRONG> - ship binary data to printer
+ <STRONG>mcprint</STRONG> - write binary data to printer using <EM>terminfo</EM> capabilities
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -74,23 +74,28 @@
some reason. In this case, <STRONG>errno</STRONG> will contain either an error
associated with <STRONG>write(2)</STRONG> or one of the following:
- ENODEV
+ <STRONG>ENODEV</STRONG>
Capabilities for printer redirection do not exist.
- ENOMEM
+ <STRONG>ENOMEM</STRONG>
Couldn't allocate sufficient memory to buffer the printer write.
When <STRONG>mcprint</STRONG> succeeds, it returns the number of characters actually
sent to the printer.
+</PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
+ <STRONG>mcprint</STRONG> was designed for <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>, and was not found in SVr4 <EM>curses</EM>,
+ 4.4BSD <EM>curses</EM>, or any other previous curses implementation.
+
+
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- The <STRONG>mcprint</STRONG> call was designed for <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>, and is not found in SVr4
- curses, 4.4BSD curses, or any other previous version of curses.
+ Applications employing this <EM>ncurses</EM> extension should condition its use
+ on the visibility of the <STRONG>NCURSES_VERSION</STRONG> preprocessor macro.
</PRE><H2><a name="h2-BUGS">BUGS</a></H2><PRE>
- Padding in the <STRONG>mc5p</STRONG>, <STRONG>mc4</STRONG> and <STRONG>mc5</STRONG> capabilities will not be interpreted.
+ Padding in the <STRONG>mc5p</STRONG>, <STRONG>mc4</STRONG>, and <STRONG>mc5</STRONG> capabilities is not interpreted.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
@@ -98,7 +103,7 @@
- <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -106,6 +111,7 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
+<li><a href="#h2-EXTENSIONS">EXTENSIONS</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-BUGS">BUGS</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
diff --git a/doc/html/man/curs_printw.3x.html b/doc/html/man/curs_printw.3x.html
index 9dfc57807b35..259b56121b93 100644
--- a/doc/html/man/curs_printw.3x.html
+++ b/doc/html/man/curs_printw.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2010,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,28 +27,28 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_printw.3x,v 1.28 2020/10/24 09:22:45 tom Exp @
+ * @Id: curs_printw.3x,v 1.53 2024/04/20 19:18:18 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_printw 3x</TITLE>
+<TITLE>curs_printw 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_printw 3x</H1>
+<H1 class="no-header">curs_printw 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG> <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
+<STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>printw</STRONG>, <STRONG>wprintw</STRONG>, <STRONG>mvprintw</STRONG>, <STRONG>mvwprintw</STRONG>, <STRONG>vwprintw</STRONG>, <STRONG>vw_printw</STRONG> - print
- formatted output in <STRONG>curses</STRONG> windows
+ <STRONG>printw</STRONG>, <STRONG>wprintw</STRONG>, <STRONG>mvprintw</STRONG>, <STRONG>mvwprintw</STRONG>, <STRONG>vwprintw</STRONG>, <STRONG>vw_printw</STRONG> - write
+ formatted output to a <EM>curses</EM> window
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -58,91 +58,96 @@
<STRONG>int</STRONG> <STRONG>wprintw(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>fmt</EM><STRONG>,</STRONG> <STRONG>...);</STRONG>
<STRONG>int</STRONG> <STRONG>mvprintw(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>fmt</EM><STRONG>,</STRONG> <STRONG>...);</STRONG>
<STRONG>int</STRONG> <STRONG>mvwprintw(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>fmt</EM><STRONG>,</STRONG> <STRONG>...);</STRONG>
+
<STRONG>int</STRONG> <STRONG>vw_printw(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>fmt</EM><STRONG>,</STRONG> <STRONG>va_list</STRONG> <EM>varglist</EM><STRONG>);</STRONG>
- /* obsolete */
+ <EM>/*</EM> <EM>obsolete</EM> <EM>*/</EM>
<STRONG>int</STRONG> <STRONG>vwprintw(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>fmt</EM><STRONG>,</STRONG> <STRONG>va_list</STRONG> <EM>varglist</EM><STRONG>);</STRONG>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- The <STRONG>printw</STRONG>, <STRONG>wprintw</STRONG>, <STRONG>mvprintw</STRONG> and <STRONG>mvwprintw</STRONG> routines are analogous to
- <STRONG>printf</STRONG> [see <STRONG>printf(3)</STRONG>]. In effect, the string that would be output by
- <STRONG>printf</STRONG> is output instead as though <STRONG>waddstr</STRONG> were used on the given win-
- dow.
+ <STRONG>printw</STRONG>, <STRONG>wprintw</STRONG>, <STRONG>mvprintw</STRONG>, and <STRONG>mvwprintw</STRONG> are analogous to <STRONG>printf(3)</STRONG>.
+ In effect, the string that would be output by <STRONG>printf(3)</STRONG> is instead
+ output as though <STRONG><A HREF="curs_addstr.3x.html">waddstr(3x)</A></STRONG> were used with <EM>win</EM> (or <STRONG>stdscr</STRONG>) as its
+ first argument.
- The <STRONG>vwprintw</STRONG> and <STRONG>vw_printw</STRONG> routines are analogous to <STRONG>vprintf</STRONG> [see
- <STRONG>printf(3)</STRONG>] and perform a <STRONG>wprintw</STRONG> using a variable argument list. The
- third argument is a <STRONG>va_list</STRONG>, a pointer to a list of arguments, as de-
- fined in <STRONG>&lt;stdarg.h&gt;</STRONG>.
+ <STRONG>vwprintw</STRONG> and <STRONG>vw_printw</STRONG> are analogous to <STRONG>vprintf(3)</STRONG>, and perform a
+ <STRONG>wprintw</STRONG> using a variable argument list. The third argument is a
+ <EM>va</EM><STRONG>_</STRONG><EM>list</EM>, a pointer to a list of arguments, as defined in <EM>stdarg.h</EM>.
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- Routines that return an integer return <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> (SVr4
- only specifies "an integer value other than <STRONG>ERR</STRONG>") upon successful com-
- pletion.
+ These functions return <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> upon success.
- X/Open defines no error conditions. In this implementation, an error
- may be returned if it cannot allocate enough memory for the buffer used
- to format the results. It will return an error if the window pointer
- is null.
+ In <EM>ncurses</EM>, failure occurs if the library cannot allocate enough memory
+ for the buffer into which the output is formatted, or if the window
+ pointer <EM>win</EM> is null.
- Functions with a "mv" prefix first perform a cursor movement using
- <STRONG>wmove</STRONG>, and return an error if the position is outside the window, or if
- the window pointer is null.
+ Functions prefixed with "mv" first perform cursor movement and fail if
+ the position (<EM>y</EM>, <EM>x</EM>) is outside the window boundaries.
-</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
- While <STRONG>printw</STRONG> was implemented in 4BSD, it was unused until 4.2BSD (which
- used it in games). That early version of curses was before the ANSI C
- standard. It did not use &lt;varargs.h&gt;, though that was available. In
- 1991 (a couple of years after SVr4 was generally available, and after
- the C standard was published), other developers updated the library,
- using &lt;stdarg.h&gt; internally in 4.4BSD curses. Even with this improve-
- ment, BSD curses did not use function prototypes (or even declare func-
- tions) in the &lt;curses.h&gt; header until 1992.
+</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
+ No wide character counterpart functions are defined by the "wide"
+ <EM>ncurses</EM> configuration nor by any standard. To format and write a wide-
+ character string to a <EM>curses</EM> window, consider using <STRONG>swprintf(3)</STRONG> and
+ <STRONG><A HREF="curs_addwstr.3x.html">waddwstr(3x)</A></STRONG> or similar.
- SVr2 documented <STRONG>printw</STRONG>, <STRONG>wprintw</STRONG> tersely as "printf on <EM>stdscr</EM>" and
- tersely as "printf on <EM>win</EM>", respectively.
- SVr3 added <STRONG>mvprintw</STRONG>, and <STRONG>mvwprintw</STRONG>, with a three-line summary saying
- that they were analogous to <STRONG>printf(3)</STRONG>, explaining that the string which
- would be output from <STRONG>printf(3)</STRONG> would instead be output using <STRONG>waddstr</STRONG> on
- the given window. SVr3 also added <STRONG>vwprintw</STRONG>, saying that the third pa-
- rameter is a <STRONG>va_list</STRONG>, defined in &lt;varargs.h&gt;, and referring the reader
- to the manual pages for <EM>varargs</EM> and <EM>vprintf</EM> for detailed descriptions.
+</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
+ X/Open Curses, Issue 4 describes these functions. It specifies no
+ error conditions for them.
- SVr4 added no new variations of <STRONG>printw</STRONG>, but provided for using
- &lt;varargs.h&gt; or &lt;stdarg.h&gt; to define the <STRONG>va_list</STRONG> type.
+ <EM>ncurses</EM> defines <STRONG>vw_printw</STRONG> and <STRONG>vwprintw</STRONG> identically to support legacy
+ applications. However, the latter is obsolete.
- X/Open Curses added <STRONG>vw_printw</STRONG> to replace <STRONG>vwprintw</STRONG>, stating that its
- <STRONG>va_list</STRONG> definition requires &lt;stdarg.h&gt;.
+ <STRONG>o</STRONG> X/Open Curses, Issue 4 Version 2 (1996), marked <STRONG>vwprintw</STRONG> as
+ requiring <EM>varargs.h</EM> and "TO BE WITHDRAWN", and specified <STRONG>vw_printw</STRONG>
+ using the <EM>stdarg.h</EM> interface.
+ <STRONG>o</STRONG> X/Open Curses, Issue 5, Draft 2 (December 2007) marked <STRONG>vwprintw</STRONG>
+ (along with <STRONG>vwscanw</STRONG> and the <EM>termcap</EM> interface) as withdrawn. After
+ incorporating review comments, this became X/Open Curses, Issue 7
+ (2009).
-</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- In this implementation, <STRONG>vw_printw</STRONG> and <STRONG>vwprintw</STRONG> are equivalent, to sup-
- port legacy applications. However, the latter (<STRONG>vwprintw</STRONG>) is obsolete:
+ <STRONG>o</STRONG> <EM>ncurses</EM> provides <STRONG>vwprintw</STRONG>, but marks it as deprecated.
- <STRONG>o</STRONG> The XSI Curses standard, Issue 4 described these functions. The
- function <STRONG>vwprintw</STRONG> is marked TO BE WITHDRAWN, and is to be replaced
- by a function <STRONG>vw_printw</STRONG> using the <STRONG>&lt;stdarg.h&gt;</STRONG> interface.
- <STRONG>o</STRONG> The Single Unix Specification, Version 2 states that <STRONG>vw_printw</STRONG> is
- preferred to <STRONG>vwprintw</STRONG> since the latter requires including
- <STRONG>&lt;varargs.h&gt;</STRONG>, which cannot be used in the same file as <STRONG>&lt;stdarg.h&gt;</STRONG>.
- This implementation uses <STRONG>&lt;stdarg.h&gt;</STRONG> for both, because that header
- is included in <STRONG>&lt;curses.h</STRONG>&gt;.
-
- <STRONG>o</STRONG> X/Open Curses, Issue 5 (December 2007) marked <STRONG>vwprintw</STRONG> (along with
- <STRONG>vwscanw</STRONG> and the termcap interface) as withdrawn.
+</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
+ While <STRONG>printw</STRONG> was implemented in 4BSD (November 1980), it was unused
+ until 4.2BSD (August 1983), which employed it for games. That early
+ version of <EM>curses</EM> preceded the ANSI C standard of 1989. It did not use
+ <EM>varargs.h</EM>, though that had been available since Seventh Edition Unix
+ (1979). In 1991 (a couple of years after SVr4 was generally available,
+ and after the C standard was published), other developers updated the
+ library, using <EM>stdarg.h</EM> internally in 4.4BSD <EM>curses</EM>. Even with this
+ improvement, BSD <EM>curses</EM> did not use function prototypes (nor even
+ declare functions) in <EM>curses.h</EM> until 1992.
+
+ SVr2 (1984) documented <STRONG>printw</STRONG> and <STRONG>wprintw</STRONG> tersely as "printf on <STRONG>stdscr</STRONG>"
+ and "printf on <EM>win</EM>", respectively.
+
+ SVr3 (1987) added <STRONG>mvprintw</STRONG> and <STRONG>mvwprintw</STRONG>, with a three-line summary
+ asserting that they were analogous to <STRONG>printf(3)</STRONG>, explaining that the
+ string that <STRONG>printf(3)</STRONG> would write to the standard output stream would
+ instead be output using <STRONG>waddstr</STRONG> to the given window. SVr3 also
+ implemented <STRONG>vwprintw</STRONG>, describing its third parameter as a <EM>va</EM><STRONG>_</STRONG><EM>list</EM>,
+ defined in <EM>varargs.h</EM>, and referred the reader to the manual pages for
+ <EM>varargs</EM> and <EM>vprintf</EM> for detailed descriptions.
+
+ SVr4 (1989) introduced no new variations of <EM>printw</EM>, but provided for
+ using either <EM>varargs.h</EM> or <EM>stdarg.h</EM> to define the <EM>va</EM><STRONG>_</STRONG><EM>list</EM> type.
+
+ X/Open Curses, Issue 4 (1995), defined <STRONG>vw_printw</STRONG> to replace <STRONG>vwprintw</STRONG>,
+ stating that its <EM>va</EM><STRONG>_</STRONG><EM>list</EM> type is defined in <EM>stdarg.h</EM>.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>, <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>, <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>,
- <STRONG>printf(3)</STRONG>, <STRONG>vprintf(3)</STRONG>.
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>, <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>, <STRONG>printf(3)</STRONG>, <STRONG>vprintf(3)</STRONG>
- <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -150,8 +155,9 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-HISTORY">HISTORY</a></li>
+<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
+<li><a href="#h2-HISTORY">HISTORY</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
diff --git a/doc/html/man/curs_refresh.3x.html b/doc/html/man/curs_refresh.3x.html
index e18574c60121..4beec325ad44 100644
--- a/doc/html/man/curs_refresh.3x.html
+++ b/doc/html/man/curs_refresh.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2010,2016 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,28 +27,28 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_refresh.3x,v 1.22 2020/10/24 09:43:49 tom Exp @
+ * @Id: curs_refresh.3x,v 1.46 2024/04/20 21:20:07 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_refresh 3x</TITLE>
+<TITLE>curs_refresh 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_refresh 3x</H1>
+<H1 class="no-header">curs_refresh 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG> <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
+<STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>doupdate</STRONG>, <STRONG>redrawwin</STRONG>, <STRONG>refresh</STRONG>, <STRONG>wnoutrefresh</STRONG>, <STRONG>wredrawln</STRONG>, <STRONG>wrefresh</STRONG> -
- refresh <STRONG>curses</STRONG> windows and lines
+ <STRONG>doupdate</STRONG>, <STRONG>redrawwin</STRONG>, <STRONG>refresh</STRONG>, <STRONG>wnoutrefresh</STRONG>, <STRONG>wredrawln</STRONG>, <STRONG>wrefresh</STRONG> -
+ refresh <EM>curses</EM> windows or lines thereupon
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -65,21 +65,21 @@
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
-</PRE><H3><a name="h3-refresh_wrefresh">refresh/wrefresh</a></H3><PRE>
+</PRE><H3><a name="h3-refresh_wrefresh">refresh, wrefresh</a></H3><PRE>
The <STRONG>refresh</STRONG> and <STRONG>wrefresh</STRONG> routines (or <STRONG>wnoutrefresh</STRONG> and <STRONG>doupdate</STRONG>) must
- be called to get actual output to the terminal, as other routines mere-
- ly manipulate data structures. The routine <STRONG>wrefresh</STRONG> copies the named
- window to the <EM>physical</EM> <EM>screen</EM>, taking into account what is already
- there to do optimizations. The <STRONG>refresh</STRONG> routine is the same, using <STRONG>std-</STRONG>
- <STRONG>scr</STRONG> as the default window. Unless <STRONG>leaveok</STRONG> has been enabled, the physi-
- cal cursor of the terminal is left at the location of the cursor for
- that window.
+ be called to get actual output to the terminal, as other routines
+ merely manipulate data structures. The routine <STRONG>wrefresh</STRONG> copies the
+ named window to the <EM>physical</EM> <EM>screen</EM>, taking into account what is
+ already there to do optimizations. The <STRONG>refresh</STRONG> routine is the same,
+ using <STRONG>stdscr</STRONG> as the default window. Unless <STRONG><A HREF="leaveok.3x.html">leaveok(3x)</A></STRONG> has been
+ enabled, the physical cursor of the terminal is left at the location of
+ the cursor for that window.
-</PRE><H3><a name="h3-wnoutrefresh_doupdate">wnoutrefresh/doupdate</a></H3><PRE>
+</PRE><H3><a name="h3-wnoutrefresh_doupdate">wnoutrefresh, doupdate</a></H3><PRE>
The <STRONG>wnoutrefresh</STRONG> and <STRONG>doupdate</STRONG> routines allow multiple updates with more
- efficiency than <STRONG>wrefresh</STRONG> alone. In addition to all the window struc-
- tures, <STRONG>curses</STRONG> keeps two data structures representing the terminal
+ efficiency than <STRONG>wrefresh</STRONG> alone. In addition to all the window
+ structures, <STRONG>curses</STRONG> keeps two data structures representing the terminal
screen:
<STRONG>o</STRONG> a <EM>physical</EM> <EM>screen</EM>, describing what is actually on the screen, and
@@ -98,43 +98,44 @@
If the programmer wishes to output several windows at once, a series of
calls to <STRONG>wrefresh</STRONG> results in alternating calls to <STRONG>wnoutrefresh</STRONG> and
<STRONG>doupdate</STRONG>, causing several bursts of output to the screen. By first
- calling <STRONG>wnoutrefresh</STRONG> for each window, it is then possible to call <STRONG>doup-</STRONG>
- <STRONG>date</STRONG> once, resulting in only one burst of output, with fewer total
+ calling <STRONG>wnoutrefresh</STRONG> for each window, it is then possible to call
+ <STRONG>doupdate</STRONG> once, resulting in only one burst of output, with fewer total
characters transmitted and less CPU time used.
- If the <EM>win</EM> argument to <STRONG>wrefresh</STRONG> is the <EM>physical</EM> <EM>screen</EM> (i.e., the glob-
- al variable <STRONG>curscr</STRONG>), the screen is immediately cleared and repainted
- from scratch.
+ If the <EM>win</EM> argument to <STRONG>wrefresh</STRONG> is the <EM>physical</EM> <EM>screen</EM> (i.e., the
+ global variable <STRONG>curscr</STRONG>), the screen is immediately cleared and
+ repainted from scratch.
- The phrase "copies the named window to the virtual screen" above is am-
- biguous. What actually happens is that all <EM>touched</EM> (changed) lines in
- the window are copied to the virtual screen. This affects programs
+ The phrase "copies the named window to the virtual screen" above is
+ ambiguous. What actually happens is that all <EM>touched</EM> (changed) lines
+ in the window are copied to the virtual screen. This affects programs
that use overlapping windows; it means that if two windows overlap, you
- can refresh them in either order and the overlap region will be modi-
- fied only when it is explicitly changed. (But see the section on
+ can refresh them in either order and the overlap region will be
+ modified only when it is explicitly changed. (But see the section on
<STRONG>PORTABILITY</STRONG> below for a warning about exploiting this behavior.)
-</PRE><H3><a name="h3-wredrawln_redrawwin">wredrawln/redrawwin</a></H3><PRE>
+</PRE><H3><a name="h3-wredrawln_redrawwin">wredrawln, redrawwin</a></H3><PRE>
The <STRONG>wredrawln</STRONG> routine indicates to <STRONG>curses</STRONG> that some screen lines are
corrupted and should be thrown away before anything is written over
- them. It touches the indicated lines (marking them changed). The rou-
- tine <STRONG>redrawwin</STRONG> touches the entire window.
+ them. It touches the indicated lines (marking them changed). The
+ routine <STRONG>redrawwin</STRONG> touches the entire window.
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- Routines that return an integer return <STRONG>ERR</STRONG> upon failure, and <STRONG>OK</STRONG> (SVr4
- only specifies "an integer value other than <STRONG>ERR</STRONG>") upon successful com-
- pletion.
+ These routines return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> (SVr4
+ specifies only "an integer value other than <STRONG>ERR</STRONG>") upon successful
+ completion.
- X/Open does not define any error conditions. In this implementation
+ X/Open Curses does not specify any error conditions. In this
+ implementation
<STRONG>wnoutrefresh</STRONG>
- returns an error if the window pointer is null, or if the win-
- dow is really a pad.
+ returns an error if the window pointer is null, or if the
+ window is really a pad.
<STRONG>wredrawln</STRONG>
- returns an error if the associated call to <STRONG>touchln</STRONG> returns an
+ returns an error if the associated call to <STRONG>touchln</STRONG> returns an
error.
@@ -143,23 +144,23 @@
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- The XSI Curses standard, Issue 4 describes these functions.
+ X/Open Curses, Issue 4 describes these functions.
- Whether <STRONG>wnoutrefresh</STRONG> copies to the virtual screen the entire contents
+ Whether <STRONG>wnoutrefresh</STRONG> copies to the virtual screen the entire contents
of a window or just its changed portions has never been well-documented
- in historic curses versions (including SVr4). It might be unwise to
- rely on either behavior in programs that might have to be linked with
+ in historic curses versions (including SVr4). It might be unwise to
+ rely on either behavior in programs that might have to be linked with
other curses implementations. Instead, you can do an explicit <STRONG>touchwin</STRONG>
- before the <STRONG>wnoutrefresh</STRONG> call to guarantee an entire-contents copy any-
- where.
+ before the <STRONG>wnoutrefresh</STRONG> call to guarantee an entire-contents copy
+ anywhere.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG> <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>.
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG> <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>
- <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -167,9 +168,9 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
<ul>
-<li><a href="#h3-refresh_wrefresh">refresh/wrefresh</a></li>
-<li><a href="#h3-wnoutrefresh_doupdate">wnoutrefresh/doupdate</a></li>
-<li><a href="#h3-wredrawln_redrawwin">wredrawln/redrawwin</a></li>
+<li><a href="#h3-refresh_wrefresh">refresh, wrefresh</a></li>
+<li><a href="#h3-wnoutrefresh_doupdate">wnoutrefresh, doupdate</a></li>
+<li><a href="#h3-wredrawln_redrawwin">wredrawln, redrawwin</a></li>
</ul>
</li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
diff --git a/doc/html/man/curs_scanw.3x.html b/doc/html/man/curs_scanw.3x.html
index 91b68292143b..d0b9b7947d47 100644
--- a/doc/html/man/curs_scanw.3x.html
+++ b/doc/html/man/curs_scanw.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2010,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,28 +27,28 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_scanw.3x,v 1.28 2020/10/24 09:29:26 tom Exp @
+ * @Id: curs_scanw.3x,v 1.53 2024/04/20 19:18:18 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_scanw 3x</TITLE>
+<TITLE>curs_scanw 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_scanw 3x</H1>
+<H1 class="no-header">curs_scanw 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG> <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
+<STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>scanw</STRONG>, <STRONG>wscanw</STRONG>, <STRONG>mvscanw</STRONG>, <STRONG>mvwscanw</STRONG>, <STRONG>vwscanw</STRONG>, <STRONG>vw_scanw</STRONG> - convert formatted
- input from a <STRONG>curses</STRONG> window
+ <STRONG>scanw</STRONG>, <STRONG>wscanw</STRONG>, <STRONG>mvscanw</STRONG>, <STRONG>mvwscanw</STRONG>, <STRONG>vwscanw</STRONG>, <STRONG>vw_scanw</STRONG> - read formatted
+ input from a <EM>curses</EM> window
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -61,109 +61,125 @@
<STRONG>int</STRONG> <STRONG>vw_scanw(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>fmt</EM><STRONG>,</STRONG> <STRONG>va_list</STRONG> <EM>varglist</EM><STRONG>);</STRONG>
- /* obsolete */
+ <EM>/*</EM> <EM>obsolete</EM> <EM>*/</EM>
<STRONG>int</STRONG> <STRONG>vwscanw(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>fmt</EM><STRONG>,</STRONG> <STRONG>va_list</STRONG> <EM>varglist</EM><STRONG>);</STRONG>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- The <STRONG>scanw</STRONG>, <STRONG>wscanw</STRONG> and <STRONG>mvscanw</STRONG> routines are analogous to <STRONG>scanf</STRONG> [see
- <STRONG>scanf(3)</STRONG>]. The effect of these routines is as though <STRONG>wgetstr</STRONG> were
- called on the window, and the resulting line used as input for
- <STRONG>sscanf(3)</STRONG>. Fields which do not map to a variable in the <EM>fmt</EM> field are
- lost.
+ <STRONG>scanw</STRONG>, <STRONG>wscanw</STRONG>, <STRONG>mvscanw</STRONG>, and <STRONG>mvwscanw</STRONG> are analogous to <STRONG>scanf(3)</STRONG>. In
+ effect, they call <STRONG><A HREF="curs_getstr.3x.html">wgetstr(3x)</A></STRONG> with <EM>win</EM> (or <STRONG>stdscr</STRONG>) as its first
+ argument, then attempt conversion of the resulting string with
+ <STRONG>vsscanf(3)</STRONG>. Fields in the string that do not map to a variable in the
+ <EM>fmt</EM> parameter are discarded.
- The <STRONG>vwscanw</STRONG> and <STRONG>vw_scanw</STRONG> routines are analogous to <STRONG>vscanf(3)</STRONG>. They
- perform a <STRONG>wscanw</STRONG> using a variable argument list. The third argument is
- a <EM>va</EM><STRONG>_</STRONG><EM>list</EM>, a pointer to a list of arguments, as defined in <STRONG>&lt;stdarg.h&gt;</STRONG>.
+ <STRONG>vwscanw</STRONG> and <STRONG>vw_scanw</STRONG> are analogous to <STRONG>vscanf(3)</STRONG>, and perform a <STRONG>wscanw</STRONG>
+ using a variable argument list. The third argument is a <EM>va</EM><STRONG>_</STRONG><EM>list</EM>, a
+ pointer to a list of arguments, as defined in <EM>stdarg.h</EM>.
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- <STRONG>vwscanw</STRONG> returns <STRONG>ERR</STRONG> on failure and an integer equal to the number of
- fields scanned on success.
+ These functions return <STRONG>ERR</STRONG> upon failure and otherwise a count of
+ successful conversions; this quantity may be zero.
- Applications may use the return value from the <STRONG>scanw</STRONG>, <STRONG>wscanw</STRONG>, <STRONG>mvscanw</STRONG>
- and <STRONG>mvwscanw</STRONG> routines to determine the number of fields which were
- mapped in the call.
+ In <EM>ncurses</EM>, failure occurs if <STRONG>vsscanf(3)</STRONG> returns <STRONG>EOF</STRONG>, or if the window
+ pointer <EM>win</EM> is null.
- Functions with a "mv" prefix first perform a cursor movement using
- <STRONG>wmove</STRONG>, and return an error if the position is outside the window, or if
- the window pointer is null.
+ Functions prefixed with "mv" first perform cursor movement and fail if
+ the position (<EM>y</EM>, <EM>x</EM>) is outside the window boundaries.
-</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
- While <STRONG>scanw</STRONG> was implemented in 4BSD, none of the BSD releases used it
- until 4.4BSD (in a game). That early version of curses was before the
- ANSI C standard. It did not use &lt;varargs.h&gt;, though that was
- available. In 1991 (a couple of years after SVr4 was generally
- available, and after the C standard was published), other developers
- updated the library, using &lt;stdarg.h&gt; internally in 4.4BSD curses.
- Even with this improvement, BSD curses did not use function prototypes
- (or even declare functions) in the &lt;curses.h&gt; header until 1992.
-
- SVr2 documented <STRONG>scanw</STRONG>, <STRONG>wscanw</STRONG> tersely as "scanf through <EM>stdscr</EM>" and
- tersely as "scanf through <EM>win</EM>", respectively.
-
- SVr3 added <STRONG>mvscanw</STRONG>, and <STRONG>mvwscanw</STRONG>, with a three-line summary saying that
- they were analogous to <STRONG>scanf(3)</STRONG>, explaining that the string which would
- be output from <STRONG>scanf(3)</STRONG> would instead be output using <STRONG>waddstr</STRONG> on the
- given window. SVr3 also added <STRONG>vwscanw</STRONG>, saying that the third parameter
- is a <STRONG>va_list</STRONG>, defined in &lt;varargs.h&gt;, and referring the reader to the
- manual pages for <EM>varargs</EM> and <EM>vprintf</EM> for detailed descriptions.
- (Because the SVr3 documentation does not mention <EM>vscanf</EM>, that reference
- to <EM>vprintf</EM> may not be an error).
-
- SVr4 added no new variations of <STRONG>scanw</STRONG>, but provided for using
- &lt;varargs.h&gt; or &lt;stdarg.h&gt; to define the <STRONG>va_list</STRONG> type.
-
- X/Open Curses added <STRONG>vw_scanw</STRONG> to replace <STRONG>vwscanw</STRONG>, stating that its
- <STRONG>va_list</STRONG> definition requires &lt;stdarg.h&gt;.
+</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
+ No wide character counterpart functions are defined by the "wide"
+ <EM>ncurses</EM> configuration nor by any standard. They are unnecessary: to
+ retrieve and convert a wide-character string from a <EM>curses</EM> terminal
+ keyboard, use these functions with the <STRONG>scanf(3)</STRONG> conversions "%lc" and
+ "%ls" for wide characters and strings, respectively.
+
+ <EM>ncurses</EM> implements <STRONG>vsscanf(3)</STRONG> internally if it is unavailable when the
+ library is configured.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- In this implementation, <STRONG>vw_scanw</STRONG> and <STRONG>vwscanw</STRONG> are equivalent, to support
- legacy applications. However, the latter (<STRONG>vwscanw</STRONG>) is obsolete:
+ X/Open Curses, Issue 4 describes these functions. It specifies no
+ error conditions for them.
+
+ <EM>ncurses</EM> defines <STRONG>vw_scanw</STRONG> and <STRONG>vwscanw</STRONG> identically to support legacy
+ applications. However, the latter is obsolete.
- <STRONG>o</STRONG> The XSI Curses standard, Issue 4 described these functions, noting
- that the function <STRONG>vwscanw</STRONG> is marked TO BE WITHDRAWN, and is to be
- replaced by a function <STRONG>vw_scanw</STRONG> using the <STRONG>&lt;stdarg.h&gt;</STRONG> interface.
+ <STRONG>o</STRONG> X/Open Curses, Issue 4 Version 2 (1996), marked <STRONG>vwscanw</STRONG> as
+ requiring <EM>varargs.h</EM> and "TO BE WITHDRAWN", and specified <STRONG>vw_scanw</STRONG>
+ using the <EM>stdarg.h</EM> interface.
- <STRONG>o</STRONG> The Single Unix Specification, Version 2 states that <STRONG>vw_scanw</STRONG> is
- preferred to <STRONG>vwscanw</STRONG> since the latter requires including
- <STRONG>&lt;varargs.h&gt;</STRONG>, which cannot be used in the same file as <STRONG>&lt;stdarg.h&gt;</STRONG>.
- This implementation uses <STRONG>&lt;stdarg.h&gt;</STRONG> for both, because that header
- is included in <STRONG>&lt;curses.h</STRONG>&gt;.
+ <STRONG>o</STRONG> X/Open Curses, Issue 5, Draft 2 (December 2007) marked <STRONG>vwscanw</STRONG>
+ (along with <STRONG>vwscanw</STRONG> and the <EM>termcap</EM> interface) as withdrawn. After
+ incorporating review comments, this became X/Open Curses, Issue 7
+ (2009).
- <STRONG>o</STRONG> X/Open Curses, Issue 5 (December 2007) marked <STRONG>vwscanw</STRONG> (along with
- <STRONG>vwprintw</STRONG> and the termcap interface) as withdrawn.
+ <STRONG>o</STRONG> <EM>ncurses</EM> provides <STRONG>vwscanw</STRONG>, but marks it as deprecated.
- Both XSI and The Single Unix Specification, Version 2 state that these
- functions return <STRONG>ERR</STRONG> or <STRONG>OK</STRONG>.
+ X/Open Curses Issues 4 and 7 both state that these functions return <STRONG>ERR</STRONG>
+ or <STRONG>OK</STRONG>. This is likely an erratum.
- <STRONG>o</STRONG> Since the underlying <STRONG>scanf(3)</STRONG> can return the number of items
- scanned, and the SVr4 code was documented to use this feature, this
- is probably an editing error which was introduced in XSI, rather
- than being done intentionally.
+ <STRONG>o</STRONG> Since the underlying <STRONG>scanf(3)</STRONG> returns the number of successful
+ conversions, and SVr4 <EM>curses</EM> was documented to use this feature,
+ this may have been an editorial solecism introduced by X/Open,
+ rather than an intentional change.
- <STRONG>o</STRONG> This implementation returns the number of items scanned, for
- compatibility with SVr4 curses. As of 2018, NetBSD curses also
- returns the number of items scanned. Both ncurses and NetBSD
- curses call <STRONG>vsscanf</STRONG> to scan the string, which returns <STRONG>EOF</STRONG> on error.
+ <STRONG>o</STRONG> This implementation retains compatibility with SVr4 <EM>curses</EM>. As of
+ 2018, NetBSD <EM>curses</EM> also returns the number of successful
+ conversions. Both <EM>ncurses</EM> and NetBSD <EM>curses</EM> call <STRONG>vsscanf(3)</STRONG> to
+ scan the string, which returns <STRONG>EOF</STRONG> on error.
- <STRONG>o</STRONG> Portable applications should only test if the return value is <STRONG>ERR</STRONG>,
- since the <STRONG>OK</STRONG> value (zero) is likely to be misleading.
+ <STRONG>o</STRONG> Portable applications should test only if the return value is <STRONG>ERR</STRONG>,
+ and not compare it to <STRONG>OK</STRONG>, since that value (zero) might be
+ misleading.
+
+ One portable way to get useful results would be to use a "%n"
+ conversion at the end of the format string, and check the value of
+ the corresponding variable to determine how many conversions
+ succeeded.
+
+
+</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
+ <STRONG>scanw</STRONG> was implemented in 4BSD (November 1980); that early version of
+ <EM>curses</EM> preceded the ANSI C standard of 1989. The function was unused
+ in Berkeley distributions for over ten years, until 4.4BSD, which
+ employed it in a game. The 4BSD <STRONG>scanw</STRONG> did not use <EM>varargs.h</EM>, though
+ that had been available since Seventh Edition Unix (1979). In 1991 (a
+ couple of years after SVr4 was generally available, and after the C
+ standard was published), other developers updated the library, using
+ <EM>stdarg.h</EM> internally in 4.4BSD <EM>curses</EM>. Even with this improvement, BSD
+ <EM>curses</EM> did not use function prototypes (nor even declare functions) in
+ <EM>curses.h</EM> until 1992.
- One possible way to get useful results would be to use a "%n"
- conversion at the end of the format string to ensure that something
- was processed.
+ SVr2 (1984) documented <STRONG>scanw</STRONG> and <STRONG>wscanw</STRONG> tersely as "scanf through
+ <STRONG>stdscr</STRONG>" and "scanf through <EM>win</EM>", respectively.
+
+ SVr3 (1987) added <STRONG>mvscanw</STRONG>, and <STRONG>mvwscanw</STRONG>, stating
+
+ "[t]hese routines correspond to <STRONG>scanf(3S)</STRONG>, as do their arguments
+ and return values. <STRONG>wgetstr</STRONG>() is called on the window, and the
+ resulting line is used as input for the scan."
+
+ SVr3 also implemented <STRONG>vwscanw</STRONG>, describing its third parameter as a
+ <EM>va</EM><STRONG>_</STRONG><EM>list</EM>, defined in <EM>varargs.h</EM>, and referred the reader to the manual
+ pages for <EM>varargs</EM> and <EM>vprintf</EM> for detailed descriptions. (Because the
+ SVr3 documentation does not mention <EM>vscanf</EM>, the reference to <EM>vprintf</EM>
+ might not be an error).
+
+ SVr4 (1989) introduced no new variations of <EM>scanw</EM>, but provided for
+ using either <EM>varargs.h</EM> or <EM>stdarg.h</EM> to define the <EM>va</EM><STRONG>_</STRONG><EM>list</EM> type.
+
+ X/Open Curses, Issue 4 (1995), defined <EM>vw</EM><STRONG>_</STRONG><EM>scanw</EM> to replace <EM>vwscanw</EM>,
+ stating that its <EM>va</EM><STRONG>_</STRONG><EM>list</EM> type is defined in <EM>stdarg.h</EM>.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>, <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>, <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>,
- <STRONG>scanf(3)</STRONG>.
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>, <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>, <STRONG>scanf(3)</STRONG>, <STRONG>vscanf(3)</STRONG>
- <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -171,8 +187,9 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-HISTORY">HISTORY</a></li>
+<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
+<li><a href="#h2-HISTORY">HISTORY</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
diff --git a/doc/html/man/curs_scr_dump.3x.html b/doc/html/man/curs_scr_dump.3x.html
index 2c3efab46df7..f1759cb3b700 100644
--- a/doc/html/man/curs_scr_dump.3x.html
+++ b/doc/html/man/curs_scr_dump.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2010,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,28 +27,28 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_scr_dump.3x,v 1.16 2020/10/24 09:44:43 tom Exp @
+ * @Id: curs_scr_dump.3x,v 1.43 2024/04/20 18:54:36 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_scr_dump 3x</TITLE>
+<TITLE>curs_scr_dump 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_scr_dump 3x</H1>
+<H1 class="no-header">curs_scr_dump 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG> <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
+<STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>scr_dump</STRONG>, <STRONG>scr_restore</STRONG>, <STRONG>scr_init</STRONG>, <STRONG>scr_set</STRONG> - read (write) a <STRONG>curses</STRONG> screen
- from (to) a file
+ <STRONG>scr_dump</STRONG>, <STRONG>scr_restore</STRONG>, <STRONG>scr_init</STRONG>, <STRONG>scr_set</STRONG> - read/write a <EM>curses</EM> screen
+ from/to a file
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -61,70 +61,90 @@
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- The <STRONG>scr_dump</STRONG> routine dumps the current contents of the <EM>virtual</EM> <EM>screen</EM>
- to the file <EM>filename</EM>.
+ <EM>curses</EM> provides applications the ability to write the contents of the
+ screen to a file and read them back. To read/write a window (rather
+ than the whole screen) from/to a file, use <STRONG><A HREF="curs_util.3x.html">getwin(3x)</A></STRONG> and <STRONG><A HREF="curs_util.3x.html">putwin(3x)</A></STRONG>,
+ respectively.
+
+
+</PRE><H3><a name="h3-scr_dump">scr_dump</a></H3><PRE>
+ <STRONG>scr_dump</STRONG> writes to <EM>filename</EM> the contents of the virtual screen; see
+ <STRONG><A HREF="curs_variables.3x.html">curscr(3x)</A></STRONG>.
+
+
+</PRE><H3><a name="h3-scr_restore">scr_restore</a></H3><PRE>
+ <STRONG>scr_restore</STRONG> updates the virtual screen to contain the contents of
+ <EM>filename</EM> (if it was validly written with <STRONG>scr_dump</STRONG>). No refresh is
+ performed; after performing any further desired updates, call
+ <STRONG><A HREF="curs_refresh.3x.html">doupdate(3x)</A></STRONG> or similar.
+
- The <STRONG>scr_restore</STRONG> routine sets the <EM>virtual</EM> <EM>screen</EM> to the contents of
- <EM>filename</EM>, which must have been written using <STRONG>scr_dump</STRONG>. The next call
- to <STRONG>doupdate</STRONG> restores the <EM>physical</EM> <EM>screen</EM> to the way it looked in the
- dump file.
+</PRE><H3><a name="h3-scr_init">scr_init</a></H3><PRE>
+ <STRONG>scr_init</STRONG> reads <EM>filename</EM>, using it to initialize <EM>curses</EM> data structures
+ describing the state of the terminal screen. If these data are valid,
+ <EM>curses</EM> bases its next update of the screen on this information rather
+ than clearing it and starting from scratch.
- The <STRONG>scr_init</STRONG> routine reads in the contents of <EM>filename</EM> and uses them to
- initialize the <STRONG>curses</STRONG> data structures about what the terminal currently
- has on its screen. If the data is determined to be valid, <STRONG>curses</STRONG> bases
- its next update of the screen on this information rather than clearing
- the screen and starting from scratch. <STRONG>scr_init</STRONG> is used after <STRONG>initscr</STRONG>
- or a <STRONG>system</STRONG> call to share the screen with another process which has
- done a <STRONG>scr_dump</STRONG> after its <STRONG><A HREF="curs_initscr.3x.html">endwin(3x)</A></STRONG> call. The data is declared in-
- valid
+ The data fail the validity check
- <STRONG>o</STRONG> if the terminfo capabilities <STRONG>rmcup</STRONG> and <STRONG>nrrmc</STRONG> exist, also
+ <STRONG>o</STRONG> if the terminal employs <EM>terminfo</EM> capabilities <STRONG>exit_ca_mode</STRONG> (<STRONG>rmcup</STRONG>)
+ or <STRONG>non_rev_rmcup</STRONG> (<STRONG>nrrmc</STRONG>) are defined, or
- <STRONG>o</STRONG> if the terminal has been written to since the preceding <STRONG>scr_dump</STRONG>
- call.
+ <STRONG>o</STRONG> if <EM>curses</EM> knows that the terminal has been written to since the
+ preceding <STRONG>scr_dump</STRONG> call.
- The <STRONG>scr_set</STRONG> routine is a combination of <STRONG>scr_restore</STRONG> and <STRONG>scr_init</STRONG>. It
+ <STRONG>scr_init</STRONG> could be used after <STRONG><A HREF="curs_initscr.3x.html">initscr(3x)</A></STRONG> or <STRONG>system(3)</STRONG> to share the
+ screen with another process that has done a <STRONG>scr_dump</STRONG> after <STRONG><A HREF="curs_initscr.3x.html">endwin(3x)</A></STRONG>.
+
+
+</PRE><H3><a name="h3-scr_set">scr_set</a></H3><PRE>
+ The <STRONG>scr_set</STRONG> routine is a combination of <STRONG>scr_restore</STRONG> and <STRONG>scr_init</STRONG>. It
tells the program that the information in <EM>filename</EM> is what is currently
on the screen, and also what the program wants on the screen. This can
be thought of as a screen inheritance function.
- To read (write) a window from (to) a file, use the <STRONG>getwin</STRONG> and <STRONG>putwin</STRONG>
- routines [see <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>].
-
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- All routines return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> upon success.
+ These functions return <STRONG>OK</STRONG> on success and <STRONG>ERR</STRONG> on failure.
- X/Open defines no error conditions. In this implementation, each will
- return an error if the file cannot be opened.
+ X/Open defines no failure conditions. In this implementation, each
+ function fails if it cannot open <EM>filename</EM>.
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- Note that <STRONG>scr_init</STRONG>, <STRONG>scr_set</STRONG>, and <STRONG>scr_restore</STRONG> may be macros.
+ <STRONG>scr_init</STRONG>, <STRONG>scr_set</STRONG>, and <STRONG>scr_restore</STRONG> may be macros.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- The XSI Curses standard, Issue 4, describes these functions (adding the
- const qualifiers).
+ X/Open Curses, Issue 4 describes these functions.
- The SVr4 docs merely say under <STRONG>scr_init</STRONG> that the dump data is also con-
- sidered invalid "if the time-stamp of the tty is old" but do not define
- "old".
+ SVr4 omitted the <EM>const</EM> qualifiers.
+
+ SVr4 documentation describes <STRONG>scr_init</STRONG> such that the dump data is also
+ considered invalid "if the time-stamp of the tty is old" but does not
+ define "old".
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
<STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>,
- <STRONG><A HREF="scr_dump.5.html">scr_dump(5)</A></STRONG>, <STRONG>system(3)</STRONG>
+ <STRONG>system(3)</STRONG>, <STRONG><A HREF="scr_dump.5.html">scr_dump(5)</A></STRONG>
- <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<li><a href="#h2-NAME">NAME</a></li>
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
-<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
+<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
+<ul>
+<li><a href="#h3-scr_dump">scr_dump</a></li>
+<li><a href="#h3-scr_restore">scr_restore</a></li>
+<li><a href="#h3-scr_init">scr_init</a></li>
+<li><a href="#h3-scr_set">scr_set</a></li>
+</ul>
+</li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
diff --git a/doc/html/man/curs_scroll.3x.html b/doc/html/man/curs_scroll.3x.html
index d936cbc1b0da..5b827feded69 100644
--- a/doc/html/man/curs_scroll.3x.html
+++ b/doc/html/man/curs_scroll.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2006,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,27 +27,27 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_scroll.3x,v 1.19 2020/10/24 09:45:48 tom Exp @
+ * @Id: curs_scroll.3x,v 1.43 2024/04/20 18:54:36 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_scroll 3x</TITLE>
+<TITLE>curs_scroll 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_scroll 3x</H1>
+<H1 class="no-header">curs_scroll 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG> <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>
+<STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>scroll</STRONG>, <STRONG>scrl</STRONG>, <STRONG>wscrl</STRONG> - scroll a <STRONG>curses</STRONG> window
+ <STRONG>scroll</STRONG>, <STRONG>scrl</STRONG>, <STRONG>wscrl</STRONG> - scroll a <EM>curses</EM> window
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -60,45 +60,54 @@
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- The <STRONG>scroll</STRONG> routine scrolls the window up one line. This involves mov-
- ing the lines in the window data structure. As an optimization, if the
- scrolling region of the window is the entire screen, the <EM>physical</EM>
- <EM>screen</EM> may be scrolled at the same time.
+ <STRONG>scroll</STRONG> scrolls the given window up one line. That is, every visible
+ line we might number <EM>i</EM> becomes line <EM>i</EM>-1. The text of the top line in
+ the window disappears and the bottom line is populated with blank
+ characters; see <STRONG><A HREF="curs_bkgd.3x.html">bkgd(3x)</A></STRONG> or <STRONG><A HREF="curs_bkgrnd.3x.html">bkgrnd(3x)</A></STRONG>. As an optimization, if the
+ scrolling region of the window is the entire screen, the physical
+ screen may be scrolled at the same time; see <STRONG><A HREF="curs_variables.3x.html">curscr(3x)</A></STRONG>.
- For positive <EM>n</EM>, the <STRONG>scrl</STRONG> and <STRONG>wscrl</STRONG> routines scroll the window up <EM>n</EM>
- lines (line <EM>i</EM>+<EM>n</EM> becomes <EM>i</EM>); otherwise scroll the window down <EM>n</EM> lines.
- This involves moving the lines in the window character image structure.
- The current cursor position is not changed.
+ <STRONG>scrl</STRONG> and <STRONG>wscrl</STRONG> scroll <STRONG>stdscr</STRONG> or the specified window up or down
+ depending on the sign of <EM>n</EM>.
- For these functions to work, scrolling must be enabled via <STRONG>scrollok</STRONG>.
+ <STRONG>o</STRONG> For positive <EM>n</EM>, line <EM>i</EM>+<EM>n</EM> becomes <EM>i</EM> (scrolling up);
+ <STRONG>o</STRONG> for negative <EM>n</EM>, line <EM>i</EM>-<EM>n</EM> becomes <EM>i</EM> (scrolling down).
-</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- These routines return <STRONG>ERR</STRONG> upon failure, and <STRONG>OK</STRONG> (SVr4 only specifies "an
- integer value other than <STRONG>ERR</STRONG>") upon successful completion.
+ The cursor does not move. These functions perform no operation unless
+ scrolling is enabled for the window via <STRONG><A HREF="scrollok.3x.html">scrollok(3x)</A></STRONG>.
- X/Open defines no error conditions.
- This implementation returns an error if the window pointer is null, or
- if scrolling is not enabled in the window, e.g., with <STRONG>scrollok</STRONG>.
+</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
+ These functions return <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> upon success.
+ <EM>ncurses</EM> returns <STRONG>ERR</STRONG> if scrolling is not enabled in the window, for
+ example with <STRONG><A HREF="scrollok.3x.html">scrollok(3x)</A></STRONG>, or if the <EM>WINDOW</EM> pointer is null.
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- Note that <STRONG>scrl</STRONG> and <STRONG>scroll</STRONG> may be macros.
- The SVr4 documentation says that the optimization of physically
- scrolling immediately if the scroll region is the entire screen "is"
- performed, not "may be" performed. This implementation deliberately
- does not guarantee that this will occur, to leave open the possibility
- of smarter optimization of multiple scroll actions on the next update.
+</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
+ Unusually, there is no <STRONG>wscroll</STRONG> function; <STRONG>scroll</STRONG> behaves as one would
+ expect <STRONG>wscroll</STRONG> to, accepting a <EM>WINDOW</EM> pointer argument.
- Neither the SVr4 nor the XSI documentation specify whether the current
- attribute or current color-pair of blanks generated by the scroll func-
- tion is zeroed. Under this implementation it is.
+ <STRONG>scrl</STRONG> and <STRONG>scroll</STRONG> may be implemented as macros.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- The XSI Curses standard, Issue 4 describes these functions.
+ X/Open Curses, Issue 4 describes these functions. It defines no error
+ conditions.
+
+ SVr4 specifies only "an integer value other than <STRONG>ERR</STRONG>" as a successful
+ return value.
+
+ SVr4 indicates that the optimization of physically scrolling
+ immediately if the scroll region is the entire screen "is" performed,
+ not "may be" performed. <EM>ncurses</EM> deliberately does not guarantee that
+ this will occur, to leave open the possibility of smarter optimization
+ of multiple scroll actions on the next update.
+
+ Neither SVr4 <EM>curses</EM> nor X/Open Curses specify whether the current
+ attribute or current color pair of blanks generated by the scroll
+ function are zeroed. <EM>ncurses</EM> does so.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
@@ -106,7 +115,7 @@
- <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
diff --git a/doc/html/man/curs_slk.3x.html b/doc/html/man/curs_slk.3x.html
index 38c3c61b4ff3..52f8c29fbdef 100644
--- a/doc/html/man/curs_slk.3x.html
+++ b/doc/html/man/curs_slk.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,30 +27,30 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_slk.3x,v 1.37 2020/12/30 18:37:43 tom Exp @
+ * @Id: curs_slk.3x,v 1.71 2024/04/20 18:54:36 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_slk 3x</TITLE>
+<TITLE>curs_slk 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_slk 3x</H1>
+<H1 class="no-header">curs_slk 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG> <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
+<STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>slk_init</STRONG>, <STRONG>slk_set</STRONG>, <STRONG>slk_wset</STRONG>, <STRONG>slk_refresh</STRONG>, <STRONG>slk_noutrefresh</STRONG>, <STRONG>slk_label</STRONG>,
- <STRONG>slk_clear</STRONG>, <STRONG>slk_restore</STRONG>, <STRONG>slk_touch</STRONG>, <STRONG>slk_attron</STRONG>, <STRONG>slk_attrset</STRONG>,
- <STRONG>slk_attroff</STRONG>, <STRONG>slk_attr_on</STRONG>, <STRONG>slk_attr_set</STRONG>, <STRONG>slk_attr_off</STRONG>, <STRONG>slk_attr</STRONG>,
- <STRONG>slk_color</STRONG>, <STRONG>extended_slk_color</STRONG> - <STRONG>curses</STRONG> soft label routines
+ <STRONG>slk_init</STRONG>, <STRONG>slk_set</STRONG>, <STRONG>slk_wset</STRONG>, <STRONG>slk_refresh</STRONG>, <STRONG>slk_noutrefresh</STRONG>, <STRONG>slk_label</STRONG>,
+ <STRONG>slk_clear</STRONG>, <STRONG>slk_restore</STRONG>, <STRONG>slk_touch</STRONG>, <STRONG>slk_attron</STRONG>, <STRONG>slk_attrset</STRONG>,
+ <STRONG>slk_attroff</STRONG>, <STRONG>slk_attr_on</STRONG>, <STRONG>slk_attr_set</STRONG>, <STRONG>slk_attr_off</STRONG>, <STRONG>slk_attr</STRONG>,
+ <STRONG>slk_color</STRONG>, <STRONG>extended_slk_color</STRONG> - <EM>curses</EM> soft label key routines
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -58,9 +58,8 @@
<STRONG>int</STRONG> <STRONG>slk_init(int</STRONG> <EM>fmt</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>slk_set(int</STRONG> <EM>labnum</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>label</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>fmt</EM><STRONG>);</STRONG>
- /* extension */
- <STRONG>int</STRONG> <STRONG>slk_wset(int</STRONG> <EM>labnum</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>label</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>fmt</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>slk_set(int</STRONG> <EM>labnum</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>label</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>align</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>slk_wset(int</STRONG> <EM>labnum</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>label</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>align</EM><STRONG>);</STRONG>
<STRONG>char</STRONG> <STRONG>*slk_label(int</STRONG> <EM>labnum</EM><STRONG>);</STRONG>
@@ -73,69 +72,69 @@
<STRONG>int</STRONG> <STRONG>slk_attron(const</STRONG> <STRONG>chtype</STRONG> <EM>attrs</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>slk_attroff(const</STRONG> <STRONG>chtype</STRONG> <EM>attrs</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>slk_attrset(const</STRONG> <STRONG>chtype</STRONG> <EM>attrs</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>slk_attr_on(attr_t</STRONG> <EM>attrs</EM><STRONG>,</STRONG> <STRONG>void*</STRONG> <EM>opts</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>slk_attr_off(const</STRONG> <STRONG>attr_t</STRONG> <EM>attrs</EM><STRONG>,</STRONG> <STRONG>void</STRONG> <STRONG>*</STRONG> <EM>opts</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>slk_attr_set(const</STRONG> <STRONG>attr_t</STRONG> <EM>attrs</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>pair</EM><STRONG>,</STRONG> <STRONG>void*</STRONG> <EM>opts</EM><STRONG>);</STRONG>
-
+ <STRONG>int</STRONG> <STRONG>slk_attr_on(attr_t</STRONG> <EM>attrs</EM><STRONG>,</STRONG> <STRONG>void</STRONG> <STRONG>*</STRONG><EM>opts</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>slk_attr_off(const</STRONG> <STRONG>attr_t</STRONG> <EM>attrs</EM><STRONG>,</STRONG> <STRONG>void</STRONG> <STRONG>*</STRONG><EM>opts</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>slk_attr_set(const</STRONG> <STRONG>attr_t</STRONG> <EM>attrs</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>pair</EM><STRONG>,</STRONG> <STRONG>void*</STRONG><EM>opts</EM><STRONG>);</STRONG>
+ <EM>/*</EM> <EM>extension</EM> <EM>*/</EM>
<STRONG>attr_t</STRONG> <STRONG>slk_attr(void);</STRONG>
<STRONG>int</STRONG> <STRONG>slk_color(short</STRONG> <EM>pair</EM><STRONG>);</STRONG>
- /* extension */
+ <EM>/*</EM> <EM>extension</EM> <EM>*/</EM>
<STRONG>int</STRONG> <STRONG>extended_slk_color(int</STRONG> <EM>pair</EM><STRONG>);</STRONG>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- The slk* functions manipulate the set of soft function-key labels that
- exist on many terminals. For those terminals that do not have soft la-
- bels, <STRONG>curses</STRONG> takes over the bottom line of <STRONG>stdscr</STRONG>, reducing the size of
- <STRONG>stdscr</STRONG> and the variable <STRONG>LINES</STRONG>. <STRONG>curses</STRONG> standardizes on eight labels of
- up to eight characters each. In addition to this, the ncurses imple-
- mentation supports a mode where it simulates 12 labels of up to five
- characters each. This is useful for PC-like enduser devices. ncurses
- simulates this mode by taking over up to two lines at the bottom of the
- screen; it does not try to use any hardware support for this mode.
+ These functions manipulate the soft function key labels that some
+ hardware terminals support. For those terminals that do not have soft
+ labels, <EM>curses</EM> takes over the bottom line of <STRONG>stdscr</STRONG>, reducing its
+ vertical size and the value of <STRONG>LINES</STRONG> by one. By default, <EM>curses</EM> uses
+ eight labels of up to eight characters each.
+
+ <EM>ncurses</EM> furthermore supports a mode comprising twelve labels of up to
+ five characters each, following a convention associated with the IBM
+ PC/AT keyboard. <EM>ncurses</EM> simulates this mode by taking over up to two
+ lines at the bottom of the screen; it does not try to use any hardware
+ support for this mode.
</PRE><H3><a name="h3-Initialization">Initialization</a></H3><PRE>
- The <STRONG>slk_init</STRONG> routine must be called before <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG> is
- called. If <STRONG>initscr</STRONG> eventually uses a line from <STRONG>stdscr</STRONG> to emulate the
- soft labels, then <EM>fmt</EM> determines how the labels are arranged on the
- screen:
+ <STRONG>slk_init</STRONG> must be called before <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG>. If <STRONG>initscr</STRONG>
+ eventually uses a line from <STRONG>stdscr</STRONG> to emulate the soft labels, then <EM>fmt</EM>
+ determines how the labels are arranged on the screen.
- <STRONG>0</STRONG> indicates a 3-2-3 arrangement of the labels.
+ <STRONG>0</STRONG> indicates a 3-2-3 arrangement of the labels.
- <STRONG>1</STRONG> indicates a 4-4 arrangement
+ <STRONG>1</STRONG> indicates a 4-4 arrangement
- <STRONG>2</STRONG> indicates the PC-like 4-4-4 mode.
+ <STRONG>2</STRONG> indicates the PC-like 4-4-4 mode.
- <STRONG>3</STRONG> is again the PC-like 4-4-4 mode, but in addition an index line is
- generated, helping the user to identify the key numbers easily.
+ <STRONG>3</STRONG> is again the PC-like 4-4-4 mode, but in addition an index line is
+ generated, helping the user to associate each label with its
+ numbered function key. <STRONG>LINES</STRONG> and the vertical size of <STRONG>stdscr</STRONG> are
+ further reduced.
</PRE><H3><a name="h3-Labels">Labels</a></H3><PRE>
- The <STRONG>slk_set</STRONG> routine (and the <STRONG>slk_wset</STRONG> routine for the wide-character
- library) has three parameters:
+ Populate the labels with normal strings (<STRONG>slk_set</STRONG>) or wide-character
+ strings (<STRONG>slk_wset</STRONG>). Each function takes three parameters.
- <EM>labnum</EM>
- is the label number, from <STRONG>1</STRONG> to <STRONG>8</STRONG> (12 for <EM>fmt</EM> in <STRONG>slk_init</STRONG> is <STRONG>2</STRONG>
- or <STRONG>3</STRONG>);
+ <EM>labnum</EM> is the label number, from <STRONG>1</STRONG> to <STRONG>8</STRONG> (12 if <EM>fmt</EM> in <STRONG>slk_init</STRONG> is <STRONG>2</STRONG> or
+ <STRONG>3</STRONG>);
- <EM>label</EM>
- is be the string to put on the label, up to eight (five for <EM>fmt</EM>
- in <STRONG>slk_init</STRONG> is <STRONG>2</STRONG> or <STRONG>3</STRONG>) characters in length. A null string or
+ <EM>label</EM> is be the string to put on the label, up to eight (five if <EM>fmt</EM>
+ in <STRONG>slk_init</STRONG> is <STRONG>2</STRONG> or <STRONG>3</STRONG>) characters in length. A empty string or
a null pointer sets up a blank label.
- <EM>fmt</EM> is either <STRONG>0</STRONG>, <STRONG>1</STRONG>, or <STRONG>2</STRONG>, indicating whether the label is to be
- left-justified, centered, or right-justified, respectively,
- within the label.
+ <EM>align</EM> is <STRONG>0</STRONG>, <STRONG>1</STRONG>, or <STRONG>2</STRONG>, aligning <EM>label</EM> to the left, center, or right,
+ respectively, within the 8 (5) character cells housing it.
- The <STRONG>slk_label</STRONG> routine returns the current label for label number <EM>lab-</EM>
- <EM>num</EM>, with leading and trailing blanks stripped.
+ <STRONG>slk_label</STRONG> obtains the string assigned to label number <EM>labnum</EM>, with any
+ leading and trailing blanks stripped.
-</PRE><H3><a name="h3-Screen-updates">Screen updates</a></H3><PRE>
- The <STRONG>slk_refresh</STRONG> and <STRONG>slk_noutrefresh</STRONG> routines correspond to the <STRONG>wrefresh</STRONG>
- and <STRONG>wnoutrefresh</STRONG> routines.
+</PRE><H3><a name="h3-Screen-Updates">Screen Updates</a></H3><PRE>
+ <STRONG>slk_refresh</STRONG> and <STRONG>slk_noutrefresh</STRONG> affect the soft key label lines as
+ <STRONG>wrefresh</STRONG> and <STRONG>wnoutrefresh</STRONG> do the <EM>curses</EM> window.
The <STRONG>slk_clear</STRONG> routine clears the soft labels from the screen.
@@ -146,142 +145,175 @@
time a <STRONG>slk_noutrefresh</STRONG> is performed.
-</PRE><H3><a name="h3-Video-attributes">Video attributes</a></H3><PRE>
- The <STRONG>slk_attron</STRONG>, <STRONG>slk_attrset</STRONG>, <STRONG>slk_attroff</STRONG> and <STRONG>slk_attr</STRONG> routines corre-
- spond to <STRONG>attron</STRONG>, <STRONG>attrset</STRONG>, <STRONG>attroff</STRONG> and <STRONG>attr_get</STRONG>, respectively. They
- have an effect only if soft labels are simulated on the bottom line of
- the screen. The default highlight for soft keys is A_STANDOUT (as in
- System V curses, which does not document this fact).
+</PRE><H3><a name="h3-Video-Attributes">Video Attributes</a></H3><PRE>
+ The <STRONG>slk_attron</STRONG>, <STRONG>slk_attrset</STRONG>, <STRONG>slk_attroff</STRONG>, and <STRONG>slk_attr</STRONG> routines
+ correspond to <STRONG>attron</STRONG>, <STRONG>attrset</STRONG>, <STRONG>attroff</STRONG>, and <STRONG>attr_get</STRONG>, respectively.
+ They have an effect only if soft labels are simulated on the bottom
+ line of the screen. The default highlight for soft key labels is
+ <STRONG>A_STANDOUT</STRONG> (as in System V <EM>curses</EM>, which does not document this fact).
</PRE><H3><a name="h3-Colors">Colors</a></H3><PRE>
The <STRONG>slk_color</STRONG> routine corresponds to <STRONG>color_set</STRONG>. It has an effect only
if soft labels are simulated on the bottom line of the screen.
- Because <STRONG>slk_color</STRONG> accepts only <STRONG>short</STRONG> (signed 16-bit integer) values,
- this implementation provides <STRONG>extended_slk_color</STRONG> which accepts an inte-
- ger value, e.g., 32-bits.
+ Because <STRONG>slk_color</STRONG> accepts only <EM>short</EM> (signed 16-bit integer) values,
+ this implementation provides <STRONG>extended_slk_color</STRONG>, which accepts an <EM>int</EM>
+ value of at least 32 bits.
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- These routines return <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> (SVr4 specifies only "an
- integer value other than <STRONG>ERR</STRONG>") upon successful completion.
+ Routines that return an integer return <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> (SVr4
+ specifies only "an integer value other than <STRONG>ERR</STRONG>") upon successful
+ completion.
- X/Open defines no error conditions. In this implementation
+ X/Open Curses defines no error conditions.
+
+ In this implementation
<STRONG>slk_attr</STRONG>
returns the attribute used for the soft keys.
- <STRONG>slk_attroff</STRONG>, <STRONG>slk_attron</STRONG>, <STRONG>slk_clear</STRONG>, <STRONG>slk_noutrefresh</STRONG>, <STRONG>slk_refresh</STRONG>,
+ <STRONG>slk_attroff</STRONG>, <STRONG>slk_attron</STRONG>, <STRONG>slk_clear</STRONG>, <STRONG>slk_noutrefresh</STRONG>, <STRONG>slk_refresh</STRONG>,
<STRONG>slk_touch</STRONG>
- return an error if the terminal or the softkeys were not ini-
- tialized.
+ return an error if the terminal or the softkeys were not
+ initialized.
<STRONG>slk_attrset</STRONG>
- returns an error if the terminal or the softkeys were not ini-
- tialized.
+ returns an error if the terminal or the softkeys were not
+ initialized.
<STRONG>slk_attr_set</STRONG>
- returns an error if the terminal or the softkeys were not ini-
- tialized, or the color pair is outside the range 0..COL-
- OR_PAIRS-1.
+ returns an error if the terminal or the softkeys were not
+ initialized, or the color pair is outside the range
+ 0..<STRONG>COLOR_PAIRS</STRONG>-1.
<STRONG>slk_color</STRONG>
- returns an error if the terminal or the softkeys were not ini-
- tialized, or the color pair is outside the range 0..COL-
- OR_PAIRS-1.
+ returns an error if the terminal or the softkeys were not
+ initialized, or the color pair is outside the range
+ 0..<STRONG>COLOR_PAIRS</STRONG>-1.
<STRONG>slk_init</STRONG>
- returns an error if the format parameter is outside the range
+ returns an error if the format parameter is outside the range
0..3.
<STRONG>slk_label</STRONG>
returns <STRONG>NULL</STRONG> on error.
<STRONG>slk_set</STRONG>
- returns an error if the terminal or the softkeys were not ini-
- tialized, or the <EM>labnum</EM> parameter is outside the range of label
- counts, or if the format parameter is outside the range 0..2,
- or if memory for the labels cannot be allocated.
-
+ returns an error if the terminal or the softkeys were not
+ initialized, or the <EM>labnum</EM> parameter is outside the range of
+ label counts, or if the format parameter is outside the range
+ 0..2, or if memory for the labels cannot be allocated.
-</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
- SVr3 introduced these functions:
- slk_clear
- slk_init
- slk_label
- slk_noutrefresh
- slk_refresh
- slk_restore
- slk_set
- slk_touch
- SVr4 added these functions:
- slk_attroff
- slk_attron
- slk_attrset
- slk_start
-
- X/Open Curses added these:
- slk_attr_off
- slk_attr_on
- slk_attr_set
- slk_color
- slk_wset
+</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
+ Most applications would use <STRONG>slk_noutrefresh</STRONG> because a <STRONG>wrefresh</STRONG> is
+ likely to follow soon.
</PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
X/Open Curses documents the <EM>opts</EM> argument as reserved for future use,
saying that it must be null. This implementation uses that parameter
- in ABI 6 for the functions which have a color-pair parameter to support
+ in ABI 6 for the functions which have a color pair parameter to support
extended color pairs.
- For functions which modify the color, e.g., <STRONG>slk_attr_set</STRONG>, if <EM>opts</EM> is
- set it is treated as a pointer to <STRONG>int</STRONG>, and used to set the color
- pair instead of the <STRONG>short</STRONG> pair parameter.
-
-
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- Most applications would use <STRONG>slk_noutrefresh</STRONG> because a <STRONG>wrefresh</STRONG> is like-
- ly to follow soon.
+ For functions which modify the color, e.g., <STRONG>slk_attr_set</STRONG>, if <EM>opts</EM> is
+ set it is treated as a pointer to <EM>int</EM>, and used to set the color pair
+ instead of the <EM>short</EM> pair parameter.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- The XSI Curses standard, Issue 4, described the soft-key functions,
- with some differences from SVr4 curses:
+ X/Open Curses, Issue 4 describes these functions, with some differences
+ from SVr4 <EM>curses</EM>:
- <STRONG>o</STRONG> It added functions like the SVr4 attribute-manipulation functions
- <STRONG>slk_attron</STRONG>, <STRONG>slk_attroff</STRONG>, <STRONG>slk_attrset</STRONG>, but which use <STRONG>attr_t</STRONG> parame-
- ters (rather than <STRONG>chtype</STRONG>), along with a reserved <EM>opts</EM> parameter.
+ <STRONG>o</STRONG> X/Open added functions like the SVr4 attribute-manipulation
+ functions <STRONG>slk_attron</STRONG>, <STRONG>slk_attroff</STRONG>, and <STRONG>slk_attrset</STRONG>, but which use
+ <EM>attr</EM><STRONG>_</STRONG><EM>t</EM> parameters (rather than <EM>chtype</EM>), along with a reserved <EM>opts</EM>
+ parameter.
- Two of these new functions (unlike the SVr4 functions) have no pro-
- vision for color: <STRONG>slk_attr_on</STRONG> and <STRONG>slk_attr_off</STRONG>.
+ Two of these new functions (unlike the SVr4 functions) have no
+ provision for color: <STRONG>slk_attr_on</STRONG> and <STRONG>slk_attr_off</STRONG>.
- The third function (<STRONG>slk_attr_set</STRONG>) has a color-pair parameter.
+ The third function (<STRONG>slk_attr_set</STRONG>) has a color pair parameter.
- <STRONG>o</STRONG> It added <STRONG>const</STRONG> qualifiers to parameters (unnecessarily), and
+ <STRONG>o</STRONG> It added <EM>const</EM> qualifiers to parameters (unnecessarily), and
<STRONG>o</STRONG> It added <STRONG>slk_color</STRONG>.
- The format codes <STRONG>2</STRONG> and <STRONG>3</STRONG> for <STRONG>slk_init</STRONG> and the function <STRONG>slk_attr</STRONG> are
- specific to ncurses.
+ Although <STRONG>slk_start</STRONG> is declared in the <EM>curses</EM> header file, it was not
+ documented by SVr4 other than its presence in a list of libtermlib.so.1
+ symbols. Reading the source code (i.e., Illumos):
+
+ <STRONG>o</STRONG> <STRONG>slk_start</STRONG> has two parameters:
+
+ <STRONG>o</STRONG> <EM>ng</EM> (number of groups) and
+
+ <STRONG>o</STRONG> <EM>gp</EM> (group pointer).
+
+ <STRONG>o</STRONG> Soft-key groups are an array of <EM>ng</EM> integers.
+
+ <STRONG>o</STRONG> In SVr4, <STRONG>slk_init</STRONG> calls <STRONG>slk_start</STRONG> passing a null for <EM>gp</EM>. For this
+ case, <STRONG>slk_start</STRONG> uses the number of groups <EM>ng</EM> (3 for the 3-2-3
+ layout, 2 for the 4-4 layout) which <STRONG>slk_init</STRONG> provided.
- X/Open Curses does not specify a limit for the number of colors and
- color pairs which a terminal can support. However, in its use of <STRONG>short</STRONG>
- for the parameters, it carries over SVr4's implementation detail for
+ If <EM>ng</EM> is neither 2 or 3, <STRONG>slk_start</STRONG> checks the terminfo <STRONG>fln</STRONG>
+ (label_format) capability, interpreting that as a comma-separated
+ list of numbers, e.g., "3,2,3" for the 3-2-3 layout.
+
+ Finally, if there is no <STRONG>fln</STRONG> capability, <STRONG>slk_start</STRONG> returns <STRONG>ERR</STRONG>.
+
+ <STRONG>o</STRONG> If <STRONG>slk_start</STRONG> is given a non-null <EM>gp</EM>, it copies the <EM>ng</EM> elements of
+ the group of soft-keys, up to 16.
+
+ If there are more than 16 elements, <STRONG>slk_start</STRONG> returns an error.
+
+ <STRONG>o</STRONG> The format codes <STRONG>2</STRONG> and <STRONG>3</STRONG> for <STRONG>slk_init</STRONG> were added by <EM>ncurses</EM> in
+ 1996. PDCurses 2.4 added this feature in 2001.
+
+ The function <STRONG>slk_attr</STRONG> was added by <EM>ncurses</EM> in 1996.
+
+ X/Open Curses does not specify a limit for the number of colors and
+ color pairs which a terminal can support. However, in its use of <EM>short</EM>
+ for the parameters, it carries over SVr4's implementation detail for
the compiled terminfo database, which uses signed 16-bit numbers. This
- implementation provides extended versions of those functions which use
- <STRONG>short</STRONG> parameters, allowing applications to use larger color- and pair-
+ implementation provides extended versions of those functions which use
+ <EM>int</EM> parameters, allowing applications to use larger color- and pair-
numbers.
+</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
+ SVr3 introduced these functions:
+ <STRONG>slk_clear</STRONG>
+ <STRONG>slk_init</STRONG>
+ <STRONG>slk_label</STRONG>
+ <STRONG>slk_noutrefresh</STRONG>
+ <STRONG>slk_refresh</STRONG>
+ <STRONG>slk_restore</STRONG>
+ <STRONG>slk_set</STRONG>
+ <STRONG>slk_touch</STRONG>
+
+ SVr4 added these functions:
+ <STRONG>slk_attroff</STRONG>
+ <STRONG>slk_attron</STRONG>
+ <STRONG>slk_attrset</STRONG>
+ <STRONG>slk_start</STRONG>
+
+ X/Open Curses added these:
+ <STRONG>slk_attr_off</STRONG>
+ <STRONG>slk_attr_on</STRONG>
+ <STRONG>slk_attr_set</STRONG>
+ <STRONG>slk_color</STRONG>
+ <STRONG>slk_wset</STRONG>
+
+
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
<STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>,
- <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>.
+ <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>
- <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -291,16 +323,16 @@
<ul>
<li><a href="#h3-Initialization">Initialization</a></li>
<li><a href="#h3-Labels">Labels</a></li>
-<li><a href="#h3-Screen-updates">Screen updates</a></li>
-<li><a href="#h3-Video-attributes">Video attributes</a></li>
+<li><a href="#h3-Screen-Updates">Screen Updates</a></li>
+<li><a href="#h3-Video-Attributes">Video Attributes</a></li>
<li><a href="#h3-Colors">Colors</a></li>
</ul>
</li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-HISTORY">HISTORY</a></li>
-<li><a href="#h2-EXTENSIONS">EXTENSIONS</a></li>
<li><a href="#h2-NOTES">NOTES</a></li>
+<li><a href="#h2-EXTENSIONS">EXTENSIONS</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
+<li><a href="#h2-HISTORY">HISTORY</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
diff --git a/doc/html/man/curs_sp_funcs.3x.html b/doc/html/man/curs_sp_funcs.3x.html
index c934b28ff639..7695f68c40e4 100644
--- a/doc/html/man/curs_sp_funcs.3x.html
+++ b/doc/html/man/curs_sp_funcs.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018-2020,2021 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 2010-2015,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,30 +27,27 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_sp_funcs.3x,v 1.24 2021/01/02 23:53:22 tom Exp @
- * ***************************************************************************
- * ***************************************************************************
- * ***************************************************************************
+ * @Id: curs_sp_funcs.3x,v 1.50 2024/04/20 18:56:31 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_sp_funcs 3x</TITLE>
+<TITLE>curs_sp_funcs 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_sp_funcs 3x</H1>
+<H1 class="no-header">curs_sp_funcs 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG> <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG>
+<STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- curs_sp_funcs - <STRONG>curses</STRONG> screen-pointer extension
+ <STRONG>curs_sp_funcs</STRONG> - <EM>curses</EM> screen-pointer extension
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -63,7 +60,7 @@
<STRONG>bool</STRONG> <STRONG>can_change_color_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>cbreak_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>color_content_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>color</EM><STRONG>,</STRONG> <STRONG>short*</STRONG> <EM>r</EM><STRONG>,</STRONG> <STRONG>short*</STRONG> <EM>g</EM><STRONG>,</STRONG> <STRONG>short*</STRONG> <EM>b</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>curs_set_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>visibility</EM>);
+ <STRONG>int</STRONG> <STRONG>curs_set_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>visibility</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>def_prog_mode_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>def_shell_mode_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
@@ -73,108 +70,115 @@
<STRONG>int</STRONG> <STRONG>echo_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>endwin_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
<STRONG>char</STRONG> <STRONG>erasechar_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>erasewchar_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wc</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>extended_color_content_sp(SCREEN</STRONG> <STRONG>*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>color</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <STRONG>*</STRONG> <EM>r</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <STRONG>*</STRONG> <EM>g</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <STRONG>*</STRONG> <EM>b</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>extended_pair_content_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>pair</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <STRONG>*</STRONG> <EM>fg</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <STRONG>*</STRONG> <EM>bg</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>extended_slk_color_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>pair</EM><STRONG>);</STRONG>
- <STRONG>void</STRONG> <STRONG>filter_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
+ <STRONG>void</STRONG> <STRONG>filter_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>find_pair_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>fg</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>bg</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>flash_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>flushinp_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>free_pair_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>pair</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>get_escdelay_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>getmouse_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>MEVENT*</STRONG> <STRONG>event);</STRONG>
+ <STRONG>int</STRONG> <STRONG>getmouse_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>MEVENT*</STRONG> <EM>event</EM><STRONG>);</STRONG>
<STRONG>WINDOW*</STRONG> <STRONG>getwin_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>FILE*</STRONG> <EM>filep</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>halfdelay_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>tenths</EM><STRONG>);</STRONG>
<STRONG>bool</STRONG> <STRONG>has_colors_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
- <STRONG>bool</STRONG> <STRONG>has_ic_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
+ <STRONG>bool</STRONG> <STRONG>has_ic_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
<STRONG>bool</STRONG> <STRONG>has_il_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>has_key_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>ch</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>has_key_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>c</EM><STRONG>);</STRONG>
<STRONG>bool</STRONG> <STRONG>has_mouse_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>init_color_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>color</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>r</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>g</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>b</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>init_extended_color_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>color</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>r</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>g</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>b</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>init_extended_pair_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>pair</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>fg</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>bg</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>init_pair_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>pair</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>fg</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>bg</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>intrflush_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>WINDOW*</STRONG> <EM>win</EM><STRONG>,</STRONG> <STRONG>bool</STRONG> <EM>bf</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>is_cbreak_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
+
+ <STRONG>int</STRONG> <STRONG>is_echo_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>is_nl_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>is_raw_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
<STRONG>bool</STRONG> <STRONG>is_term_resized_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>lines</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>columns</EM><STRONG>);</STRONG>
<STRONG>bool</STRONG> <STRONG>isendwin_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
-
<STRONG>int</STRONG> <STRONG>key_defined_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>definition</EM><STRONG>);</STRONG>
<STRONG>char*</STRONG> <STRONG>keybound_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>keycode</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>count</EM><STRONG>);</STRONG>
- <STRONG>NCURSES_CONST</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG> <STRONG>keyname_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>c</EM><STRONG>);</STRONG>
+ <STRONG>NCURSES_CONST</STRONG> <STRONG>char*</STRONG> <STRONG>keyname_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>c</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>keyok_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>keycode</EM><STRONG>,</STRONG> <STRONG>bool</STRONG> <EM>enable</EM><STRONG>);</STRONG>
<STRONG>char</STRONG> <STRONG>killchar_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
+
+ <STRONG>int</STRONG> <STRONG>killwchar_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wc</EM><STRONG>);</STRONG>
<STRONG>char*</STRONG> <STRONG>longname_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>mcprint_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>data</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>len</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>mouseinterval_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>erval</EM><STRONG>);</STRONG>
<STRONG>mmask_t</STRONG> <STRONG>mousemask_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>mmask_t</STRONG> <EM>newmask</EM><STRONG>,</STRONG> <STRONG>mmask_t</STRONG> <STRONG>*</STRONG><EM>oldmask</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>mvcur_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>oldrow</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>oldcol</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>newrow</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>newcol</EM><STRONG>);</STRONG>
-
<STRONG>int</STRONG> <STRONG>napms_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>ms</EM><STRONG>);</STRONG>
<STRONG>WINDOW*</STRONG> <STRONG>newpad_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>nrows</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>ncols</EM><STRONG>);</STRONG>
<STRONG>SCREEN*</STRONG> <STRONG>new_prescr(void);</STRONG>
<STRONG>SCREEN*</STRONG> <STRONG>newterm_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>type</EM><STRONG>,</STRONG> <STRONG>FILE</STRONG> <STRONG>*</STRONG><EM>outfd</EM><STRONG>,</STRONG> <STRONG>FILE</STRONG> <STRONG>*</STRONG><EM>infd</EM><STRONG>);</STRONG>
+
<STRONG>WINDOW*</STRONG> <STRONG>newwin_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>nlines</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>ncols</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>begin</EM><STRONG>_</STRONG><EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>begin</EM><STRONG>_</STRONG><EM>x</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>nl_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>nocbreak_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>noecho_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
<STRONG>void</STRONG> <STRONG>nofilter_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>nonl_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
-
<STRONG>void</STRONG> <STRONG>noqiflush_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>noraw_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>pair_content_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>pair</EM><STRONG>,</STRONG> <STRONG>short*</STRONG> <EM>fg</EM><STRONG>,</STRONG> <STRONG>short*</STRONG> <EM>bg</EM><STRONG>);</STRONG>
<STRONG>void</STRONG> <STRONG>qiflush_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
+
<STRONG>int</STRONG> <STRONG>raw_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>reset_prog_mode_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
<STRONG>void</STRONG> <STRONG>reset_color_pairs_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>reset_prog_mode_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>reset_shell_mode_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>resetty_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>resize_term_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>lines</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>columns</EM><STRONG>);</STRONG>
-
<STRONG>int</STRONG> <STRONG>resizeterm_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>lines</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>columns</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>ripoffline_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>line</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <STRONG>(*</STRONG><EM>init</EM><STRONG>)(WINDOW*</STRONG> <EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>fmt</EM><STRONG>));</STRONG>
<STRONG>int</STRONG> <STRONG>savetty_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>scr_init_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>filename</EM><STRONG>);</STRONG>
+
<STRONG>int</STRONG> <STRONG>scr_restore_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>filename</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>scr_set_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>filename</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>set_escdelay_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>ms</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>set_tabsize_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>cols</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>slk_attr_set_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>attr_t</STRONG> <EM>attrs</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>pair</EM><STRONG>,</STRONG> <STRONG>void*</STRONG><EM>opts</EM><STRONG>);</STRONG>
-
<STRONG>int</STRONG> <STRONG>slk_attrset_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>chtype</STRONG> <EM>a</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>slk_attr_set_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>attr_t</STRONG> <EM>attrs</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>pair</EM><STRONG>,</STRONG> <STRONG>void*</STRONG><EM>opts</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>slk_attroff_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>chtype</STRONG> <EM>a</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>slk_attron_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>chtype</STRONG> <EM>a</EM><STRONG>);</STRONG>
<STRONG>attr_t</STRONG> <STRONG>slk_attr_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>slk_clear_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
+
<STRONG>int</STRONG> <STRONG>slk_color_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>pair</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>slk_init_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>fmt</EM><STRONG>);</STRONG>
<STRONG>char*</STRONG> <STRONG>slk_label_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>labnum</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>slk_noutrefresh_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>slk_refresh_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
-
<STRONG>int</STRONG> <STRONG>slk_restore_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>slk_set_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>labnum</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG> <EM>label</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>fmt</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>slk_touch_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>start_color_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
<STRONG>attr_t</STRONG> <STRONG>term_attrs_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
+
<STRONG>chtype</STRONG> <STRONG>termattrs_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
<STRONG>char*</STRONG> <STRONG>termname_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>typeahead_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>fd</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>unget_wch_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>wchar_t</STRONG> <EM>wch</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>ungetch_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>ch</EM><STRONG>);</STRONG>
-
- <STRONG>int</STRONG> <STRONG>ungetmouse_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,MEVENT</STRONG> <STRONG>*</STRONG> <STRONG>event);</STRONG>
+ <STRONG>int</STRONG> <STRONG>unget_wch_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>wchar_t</STRONG> <EM>wc</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>ungetch_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>c</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>ungetmouse_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>MEVENT*</STRONG> <EM>event</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>use_default_colors_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>);</STRONG>
<STRONG>void</STRONG> <STRONG>use_env_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>bool</STRONG> <EM>bf</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>use_legacy_coding_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>level</EM><STRONG>);</STRONG>
<STRONG>void</STRONG> <STRONG>use_tioctl_sp(SCREEN</STRONG> <STRONG>*</STRONG><EM>sp</EM><STRONG>,</STRONG> <STRONG>bool</STRONG> <EM>bf</EM><STRONG>);</STRONG>
+
<STRONG>int</STRONG> <STRONG>vid_attr_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>attr_t</STRONG> <EM>attrs</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>pair</EM><STRONG>,</STRONG> <STRONG>void</STRONG> <STRONG>*</STRONG> <EM>opts</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>vid_puts_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>attr_t</STRONG> <EM>attrs</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>pair</EM><STRONG>,</STRONG> <STRONG>void</STRONG> <STRONG>*</STRONG> <EM>opts</EM><STRONG>,</STRONG> <STRONG>NCURSES_SP_OUTC</STRONG> <EM>putc</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>vidattr_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>chtype</STRONG> <EM>attrs</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>vidputs_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>chtype</STRONG> <EM>attrs</EM><STRONG>,</STRONG> <STRONG>NCURSES_SP_OUTC</STRONG> <EM>putc</EM><STRONG>);</STRONG>
- <STRONG>wchar_t*</STRONG> <STRONG>wunctrl_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>ch</EM><STRONG>);</STRONG>
+ <STRONG>wchar_t*</STRONG> <STRONG>wunctrl_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
<STRONG>#include</STRONG> <STRONG>&lt;form.h&gt;</STRONG>
@@ -202,36 +206,37 @@
<STRONG>char*</STRONG> <STRONG>tgetstr_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>capname</EM><STRONG>,</STRONG> <STRONG>char</STRONG> <STRONG>**</STRONG><EM>area</EM><STRONG>);</STRONG>
<STRONG>char*</STRONG> <STRONG>tgoto_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>capname</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>col</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>row</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>tigetflag_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>capname</EM><STRONG>);</STRONG>
+
<STRONG>int</STRONG> <STRONG>tigetnum_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>capname</EM><STRONG>);</STRONG>
<STRONG>char*</STRONG> <STRONG>tigetstr_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>capname</EM><STRONG>);</STRONG>
- /* may instead use 9 long parameters */
+ <EM>/*</EM> <EM>tparm</EM><STRONG>_</STRONG><EM>sp</EM> <EM>may</EM> <EM>use</EM> <EM>9</EM> <EM>long</EM> <EM>parameters</EM> <EM>rather</EM> <EM>than</EM> <EM>being</EM> <EM>variadic</EM> <EM>*/</EM>
<STRONG>char*</STRONG> <STRONG>tparm_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>,</STRONG> <STRONG>...);</STRONG>
<STRONG>int</STRONG> <STRONG>tputs_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>affcnt</EM><STRONG>,</STRONG> <STRONG>NCURSES_SP_OUTC</STRONG> <EM>putc</EM><STRONG>);</STRONG>
<STRONG>#include</STRONG> <STRONG>&lt;unctrl.h&gt;</STRONG>
- <STRONG>NCURSES_CONST</STRONG> <STRONG>char*</STRONG> <STRONG>unctrl_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>chtype</STRONG> <EM>c</EM><STRONG>);</STRONG>
+ <STRONG>NCURSES_CONST</STRONG> <STRONG>char*</STRONG> <STRONG>unctrl_sp(SCREEN*</STRONG> <EM>sp</EM><STRONG>,</STRONG> <STRONG>chtype</STRONG> <EM>ch</EM><STRONG>);</STRONG>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
This implementation can be configured to provide a set of functions
which improve the ability to manage multiple screens. This feature can
- be added to any of the configurations supported by ncurses; it adds new
- entrypoints without changing the meaning of any of the existing ones.
+ be added to any of the configurations supported by <EM>ncurses</EM>; it adds new
+ symbols without changing the meaning of any of the existing ones.
-</PRE><H3><a name="h3-IMPROVED-FUNCTIONS">IMPROVED FUNCTIONS</a></H3><PRE>
- Most of the functions are new versions of existing functions. A param-
- eter is added at the front of the parameter list. It is a SCREEN
+</PRE><H3><a name="h3-Improved-Functions">Improved Functions</a></H3><PRE>
+ Most of the functions are new versions of existing functions. A
+ parameter is added at the front of the parameter list. It is a <EM>SCREEN</EM>
pointer.
The existing functions all use the current screen, which is a static
- variable. The extended functions use the specified screen, thereby re-
- ducing the number of variables which must be modified to update multi-
- ple screens.
+ variable. The extended functions use the specified screen, thereby
+ reducing the number of variables which must be modified to update
+ multiple screens.
-</PRE><H3><a name="h3-NEW-FUNCTIONS">NEW FUNCTIONS</a></H3><PRE>
+</PRE><H3><a name="h3-New-Functions">New Functions</a></H3><PRE>
Here are the new functions:
ceiling_panel
@@ -246,8 +251,8 @@
With the screen-pointer extension, there are situations where it
must create a current screen before the unextended library does.
The <STRONG>new_prescr</STRONG> function is used internally to handle these cases.
- It is also provided as an entrypoint to allow applications to cus-
- tomize the library initialization.
+ It is also provided to allow applications to customize library
+ initialization.
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
@@ -260,35 +265,36 @@
NCURSES_SP_NAME
The new functions are named using the macro <EM>NCURSES</EM><STRONG>_</STRONG><EM>SP</EM><STRONG>_</STRONG><EM>NAME</EM>, which
- hides the actual implementation. Currently this adds a "_sp" suf-
- fix to the name of the unextended function. This manual page in-
- dexes the extensions showing the full name. However the proper
- usage of these functions uses the macro, to provide for the possi-
- bility of changing the naming convention for specific library con-
- figurations.
+ hides the actual implementation. Currently this adds a "_sp"
+ suffix to the name of the unextended function. This manual page
+ indexes the extensions showing the full name. However the proper
+ usage of these functions uses the macro, to provide for the
+ possibility of changing the naming convention for specific library
+ configurations.
NCURSES_SP_OUTC
This is a new function-pointer type to use in the screen-pointer
functions where an <EM>NCURSES</EM><STRONG>_</STRONG><EM>OUTC</EM> is used in the unextended library.
NCURSES_OUTC
- This is a function-pointer type used for the cases where a func-
- tion passes characters to the output stream, e.g., <STRONG><A HREF="curs_terminfo.3x.html">vidputs(3x)</A></STRONG>.
+ This is a function-pointer type used for the cases where a
+ function passes characters to the output stream, e.g.,
+ <STRONG><A HREF="curs_terminfo.3x.html">vidputs(3x)</A></STRONG>.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines are specific to ncurses. They were not supported on
+ These routines are specific to <EM>ncurses</EM>. They were not supported on
Version 7, BSD or System V implementations. It is recommended that any
- code depending on ncurses extensions be conditioned using <EM>NCURS-</EM>
- <EM>ES</EM><STRONG>_</STRONG><EM>SP</EM><STRONG>_</STRONG><EM>FUNCS</EM>.
+ code depending on <EM>ncurses</EM> extensions be conditioned using
+ <EM>NCURSES</EM><STRONG>_</STRONG><EM>SP</EM><STRONG>_</STRONG><EM>FUNCS</EM>.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>, <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>.
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>, <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>
- <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -296,8 +302,8 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
<ul>
-<li><a href="#h3-IMPROVED-FUNCTIONS">IMPROVED FUNCTIONS</a></li>
-<li><a href="#h3-NEW-FUNCTIONS">NEW FUNCTIONS</a></li>
+<li><a href="#h3-Improved-Functions">Improved Functions</a></li>
+<li><a href="#h3-New-Functions">New Functions</a></li>
</ul>
</li>
<li><a href="#h2-NOTES">NOTES</a></li>
diff --git a/doc/html/man/curs_termattrs.3x.html b/doc/html/man/curs_termattrs.3x.html
index 1ca91e23a3b1..386b4b4b39a6 100644
--- a/doc/html/man/curs_termattrs.3x.html
+++ b/doc/html/man/curs_termattrs.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2010,2015 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,28 +27,28 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_termattrs.3x,v 1.15 2020/02/02 23:34:34 tom Exp @
+ * @Id: curs_termattrs.3x,v 1.41 2024/04/20 21:20:07 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_termattrs 3x</TITLE>
+<TITLE>curs_termattrs 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_termattrs 3x</H1>
+<H1 class="no-header">curs_termattrs 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG> <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
+<STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
<STRONG>baudrate</STRONG>, <STRONG>erasechar</STRONG>, <STRONG>erasewchar</STRONG>, <STRONG>has_ic</STRONG>, <STRONG>has_il</STRONG>, <STRONG>killchar</STRONG>, <STRONG>killwchar</STRONG>,
- <STRONG>longname</STRONG>, <STRONG>term_attrs</STRONG>, <STRONG>termattrs</STRONG>, <STRONG>termname</STRONG> - <STRONG>curses</STRONG> environment query
+ <STRONG>longname</STRONG>, <STRONG>term_attrs</STRONG>, <STRONG>termattrs</STRONG>, <STRONG>termname</STRONG> - <EM>curses</EM> environment query
routines
@@ -57,11 +57,11 @@
<STRONG>int</STRONG> <STRONG>baudrate(void);</STRONG>
<STRONG>char</STRONG> <STRONG>erasechar(void);</STRONG>
- <STRONG>int</STRONG> <STRONG>erasewchar(wchar_t</STRONG> <STRONG>*</STRONG><EM>ch</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>erasewchar(wchar_t</STRONG> <STRONG>*</STRONG><EM>wc</EM><STRONG>);</STRONG>
<STRONG>bool</STRONG> <STRONG>has_ic(void);</STRONG>
<STRONG>bool</STRONG> <STRONG>has_il(void);</STRONG>
<STRONG>char</STRONG> <STRONG>killchar(void);</STRONG>
- <STRONG>int</STRONG> <STRONG>killwchar(wchar_t</STRONG> <STRONG>*</STRONG><EM>ch</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>killwchar(wchar_t</STRONG> <STRONG>*</STRONG><EM>wc</EM><STRONG>);</STRONG>
<STRONG>char</STRONG> <STRONG>*longname(void);</STRONG>
<STRONG>attr_t</STRONG> <STRONG>term_attrs(void);</STRONG>
<STRONG>chtype</STRONG> <STRONG>termattrs(void);</STRONG>
@@ -76,30 +76,30 @@
integer.
-</PRE><H3><a name="h3-erasechar_-erasewchar">erasechar, erasewchar</a></H3><PRE>
+</PRE><H3><a name="h3-erasechar_erasewchar">erasechar, erasewchar</a></H3><PRE>
The <STRONG>erasechar</STRONG> routine returns the user's current erase character.
The <STRONG>erasewchar</STRONG> routine stores the current erase character in the
- location referenced by <EM>ch</EM>. If no erase character has been defined, the
- routine fails and the location referenced by <EM>ch</EM> is not changed.
+ location referenced by <EM>wc</EM>. If no erase character has been defined, the
+ routine fails and the location referenced by <EM>wc</EM> is not changed.
-</PRE><H3><a name="h3-has_is_-has_il">has_is, has_il</a></H3><PRE>
+</PRE><H3><a name="h3-has_ic_has_il">has_ic, has_il</a></H3><PRE>
The <STRONG>has_ic</STRONG> routine is true if the terminal has insert- and delete-
character capabilities.
The <STRONG>has_il</STRONG> routine is true if the terminal has insert- and delete-line
capabilities, or can simulate them using scrolling regions. This might
be used to determine if it would be appropriate to turn on physical
- scrolling using <STRONG>scrollok</STRONG>.
+ scrolling using <STRONG><A HREF="scrollok.3x.html">scrollok(3x)</A></STRONG>.
-</PRE><H3><a name="h3-killchar_-killwchar">killchar, killwchar</a></H3><PRE>
+</PRE><H3><a name="h3-killchar_killwchar">killchar, killwchar</a></H3><PRE>
The <STRONG>killchar</STRONG> routine returns the user's current line kill character.
The <STRONG>killwchar</STRONG> routine stores the current line-kill character in the
- location referenced by <EM>ch</EM>. If no line-kill character has been defined,
- the routine fails and the location referenced by <EM>ch</EM> is not changed.
+ location referenced by <EM>wc</EM>. If no line-kill character has been defined,
+ the routine fails and the location referenced by <EM>wc</EM> is not changed.
</PRE><H3><a name="h3-longname">longname</a></H3><PRE>
@@ -112,12 +112,12 @@
terminals.
-</PRE><H3><a name="h3-termattrs_-term_attrs">termattrs, term_attrs</a></H3><PRE>
+</PRE><H3><a name="h3-termattrs_term_attrs">termattrs, term_attrs</a></H3><PRE>
If a given terminal does not support a video attribute that an
application program is trying to use, <STRONG>curses</STRONG> may substitute a different
video attribute for it. The <STRONG>termattrs</STRONG> and <STRONG>term_attrs</STRONG> functions return
- a logical <STRONG>OR</STRONG> of all video attributes supported by the terminal using <EM>A</EM><STRONG>_</STRONG>
- and <EM>WA</EM><STRONG>_</STRONG> constants respectively. This information is useful when a
+ a logical <STRONG>OR</STRONG> of all video attributes supported by the terminal using <STRONG>A_</STRONG>
+ and <STRONG>WA_</STRONG> constants respectively. This information is useful when a
<STRONG>curses</STRONG> program needs complete control over the appearance of the
screen.
@@ -139,8 +139,8 @@
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- The XSI Curses standard, Issue 4 describes these functions. It changes
- the return type of <STRONG>termattrs</STRONG> to the new type <STRONG>attr_t</STRONG>. Most versions of
+ X/Open Curses, Issue 4 describes these functions. It changes the
+ return type of <STRONG>termattrs</STRONG> to the new type <STRONG>attr_t</STRONG>. Most versions of
curses truncate the result returned by <STRONG>termname</STRONG> to 14 characters.
@@ -149,7 +149,7 @@
- <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -158,11 +158,11 @@
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
<ul>
<li><a href="#h3-baudrate">baudrate</a></li>
-<li><a href="#h3-erasechar_-erasewchar">erasechar, erasewchar</a></li>
-<li><a href="#h3-has_is_-has_il">has_is, has_il</a></li>
-<li><a href="#h3-killchar_-killwchar">killchar, killwchar</a></li>
+<li><a href="#h3-erasechar_erasewchar">erasechar, erasewchar</a></li>
+<li><a href="#h3-has_ic_has_il">has_ic, has_il</a></li>
+<li><a href="#h3-killchar_killwchar">killchar, killwchar</a></li>
<li><a href="#h3-longname">longname</a></li>
-<li><a href="#h3-termattrs_-term_attrs">termattrs, term_attrs</a></li>
+<li><a href="#h3-termattrs_term_attrs">termattrs, term_attrs</a></li>
<li><a href="#h3-termname">termname</a></li>
</ul>
</li>
diff --git a/doc/html/man/curs_termcap.3x.html b/doc/html/man/curs_termcap.3x.html
index 4398f634efd8..c2763afe3b94 100644
--- a/doc/html/man/curs_termcap.3x.html
+++ b/doc/html/man/curs_termcap.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018-2020,2021 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2017,2018 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,38 +27,38 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_termcap.3x,v 1.48 2021/01/09 11:07:15 tom Exp @
+ * @Id: curs_termcap.3x,v 1.85 2024/04/20 19:13:12 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_termcap 3x</TITLE>
+<TITLE>curs_termcap 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_termcap 3x</H1>
+<H1 class="no-header">curs_termcap 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG> <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
+<STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
<STRONG>PC</STRONG>, <STRONG>UP</STRONG>, <STRONG>BC</STRONG>, <STRONG>ospeed</STRONG>, <STRONG>tgetent</STRONG>, <STRONG>tgetflag</STRONG>, <STRONG>tgetnum</STRONG>, <STRONG>tgetstr</STRONG>, <STRONG>tgoto</STRONG>, <STRONG>tputs</STRONG> -
- <STRONG>curses</STRONG> emulation of termcap
+ <EM>curses</EM> emulation of <EM>termcap</EM>
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
<STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
<STRONG>#include</STRONG> <STRONG>&lt;term.h&gt;</STRONG>
- <STRONG>extern</STRONG> <STRONG>char</STRONG> <STRONG>PC;</STRONG>
- <STRONG>extern</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG> <STRONG>UP;</STRONG>
- <STRONG>extern</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG> <STRONG>BC;</STRONG>
- <STRONG>extern</STRONG> <STRONG>short</STRONG> <STRONG>ospeed;</STRONG>
+ <STRONG>char</STRONG> <STRONG>PC;</STRONG>
+ <STRONG>char</STRONG> <STRONG>*</STRONG> <STRONG>UP;</STRONG>
+ <STRONG>char</STRONG> <STRONG>*</STRONG> <STRONG>BC;</STRONG>
+ <STRONG>short</STRONG> <STRONG>ospeed;</STRONG>
<STRONG>int</STRONG> <STRONG>tgetent(char</STRONG> <STRONG>*</STRONG><EM>bp</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>name</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>tgetflag(const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>id</EM><STRONG>);</STRONG>
@@ -69,241 +69,307 @@
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- These routines are included as a conversion aid for programs that use
- the <EM>termcap</EM> library. Their parameters are the same, but the routines
- are emulated using the <EM>terminfo</EM> database. Thus, they can only be used
- to query the capabilities of entries for which a terminfo entry has
- been compiled.
-
+ <EM>ncurses</EM> provides the foregoing variables and functions as a
+ compatibility layer for programs that use the <EM>termcap</EM> library. The API
+ is the same, but behavior is emulated using the <EM>terminfo</EM> database.
+ Thus, it can be used only to query the capabilities of terminal
+ database entries for which a <EM>terminfo</EM> entry has been compiled.
-</PRE><H3><a name="h3-INITIALIZATION">INITIALIZATION</a></H3><PRE>
- The <STRONG>tgetent</STRONG> routine loads the entry for <EM>name</EM>. It returns:
- 1 on success,
+</PRE><H3><a name="h3-Initialization">Initialization</a></H3><PRE>
+ <STRONG>tgetent</STRONG> loads the terminal database entry for <EM>name</EM>; see <STRONG><A HREF="term.7.html">term(7)</A></STRONG>. This
+ must be done before calling any of the other functions. It returns
- 0 if there is no such entry (or that it is a generic type, having
- too little information for curses applications to run), and
+ 1 on success,
- -1 if the terminfo database could not be found.
+ 0 if there is no such entry (or if the matching entry describes a
+ generic terminal, having too little information for <EM>curses</EM>
+ applications to run), and
- This differs from the <EM>termcap</EM> library in two ways:
+ -1 if the <EM>terminfo</EM> database could not be found.
- <STRONG>o</STRONG> The emulation ignores the buffer pointer <EM>bp</EM>. The <EM>termcap</EM> li-
- brary would store a copy of the terminal description in the area
- referenced by this pointer. However, ncurses stores its termi-
- nal descriptions in compiled binary form, which is not the same
- thing.
+ This implementation differs from those of historical <EM>termcap</EM> libraries.
- <STRONG>o</STRONG> There is a difference in return codes. The <EM>termcap</EM> library does
- not check if the terminal description is marked with the <EM>generic</EM>
- capability, or if the terminal description has cursor-address-
- ing.
+ <STRONG>o</STRONG> <EM>ncurses</EM> ignores the buffer pointer <EM>bp</EM>, as do other <EM>termcap</EM>
+ implementations conforming to portions of X/Open Curses now
+ withdrawn. The BSD <EM>termcap</EM> library would store a copy of the
+ terminal type description in the area referenced by this
+ pointer. <EM>terminfo</EM> stores terminal type descriptions in compiled
+ form, which is not the same thing.
+ <STRONG>o</STRONG> The meanings of the return values differ. The BSD <EM>termcap</EM>
+ library does not check whether the terminal type description
+ includes the <STRONG>generic</STRONG> (<STRONG>gn</STRONG>) capability, nor whether the terminal
+ type description supports an addressable cursor, a property
+ essential for any <EM>curses</EM> implementation to operate.
-</PRE><H3><a name="h3-CAPABILITY-VALUES">CAPABILITY VALUES</a></H3><PRE>
- The <STRONG>tgetflag</STRONG> routine gets the boolean entry for <EM>id</EM>, or zero if it is
- not available.
- The <STRONG>tgetnum</STRONG> routine gets the numeric entry for <EM>id</EM>, or -1 if it is not
+</PRE><H3><a name="h3-Retrieving-Capability-Values">Retrieving Capability Values</a></H3><PRE>
+ <STRONG>tgetflag</STRONG> reports the Boolean entry for <EM>id</EM>, or zero if it is not
available.
- The <STRONG>tgetstr</STRONG> routine returns the string entry for <EM>id</EM>, or zero if it is
- not available. Use <STRONG>tputs</STRONG> to output the returned string. The <EM>area</EM> pa-
- rameter is used as follows:
+ <STRONG>tgetnum</STRONG> obtains the numeric entry for <EM>id</EM>, or -1 if it is not available.
+
+ <STRONG>tgetstr</STRONG> returns the string entry for <EM>id</EM>, or <STRONG>NULL</STRONG> if it is not
+ available. Use <STRONG>tputs</STRONG> to output the string returned. The <EM>area</EM>
+ parameter is used as follows.
<STRONG>o</STRONG> It is assumed to be the address of a pointer to a buffer managed
by the calling application.
- <STRONG>o</STRONG> However, ncurses checks to ensure that <STRONG>area</STRONG> is not NULL, and al-
- so that the resulting buffer pointer is not NULL. If either
- check fails, the <EM>area</EM> parameter is ignored.
+ <STRONG>o</STRONG> However, <EM>ncurses</EM> checks to ensure that <EM>area</EM> is not <STRONG>NULL</STRONG>, and
+ also that the resulting buffer pointer is not <STRONG>NULL</STRONG>. If either
+ check fails, <EM>area</EM> is ignored.
- <STRONG>o</STRONG> If the checks succeed, ncurses also copies the return value to
- the buffer pointed to by <EM>area</EM>, and the <EM>area</EM> value will be updat-
- ed to point past the null ending this value.
+ <STRONG>o</STRONG> If the checks succeed, <EM>ncurses</EM> also copies the return value to
+ the buffer pointed to by <EM>area</EM>, and the library updates <EM>area</EM> to
+ point past the null character terminating this value.
- <STRONG>o</STRONG> The return value itself is an address in the terminal descrip-
- tion which is loaded into memory.
+ <STRONG>o</STRONG> The return value itself is an address in the terminal type
+ description loaded into memory.
- Only the first two characters of the <STRONG>id</STRONG> parameter of <STRONG>tgetflag</STRONG>, <STRONG>tgetnum</STRONG>
- and <STRONG>tgetstr</STRONG> are compared in lookups.
+</PRE><H3><a name="h3-Applying-String-Capabilities">Applying String Capabilities</a></H3><PRE>
+ String capabilities can be parameterized; see subsection "Parameterized
+ Strings" in <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>. <STRONG>tgoto</STRONG> applies its second and third arguments
+ to the parametric placeholders in the capability stored in the first
+ argument.
-</PRE><H3><a name="h3-FORMATTING-CAPABILITIES">FORMATTING CAPABILITIES</a></H3><PRE>
- The <STRONG>tgoto</STRONG> routine expands the given capability using the parameters.
+ <STRONG>o</STRONG> The capability may contain padding specifications; see subsection
+ "Delays and Padding" of <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>. The output of <STRONG>tgoto</STRONG> should
+ thus be passed to <STRONG>tputs</STRONG> rather than some other output function such
+ as <STRONG>printf(3)</STRONG>.
- <STRONG>o</STRONG> Because the capability may have padding characters, the output of
- <STRONG>tgoto</STRONG> should be passed to <STRONG>tputs</STRONG> rather than some other output func-
- tion such as <STRONG>printf</STRONG>.
+ <STRONG>o</STRONG> While <STRONG>tgoto</STRONG> is assumed to be used for the two-parameter cursor
+ positioning capability, <EM>termcap</EM> applications also use it for
+ single-parameter capabilities.
- <STRONG>o</STRONG> While <STRONG>tgoto</STRONG> is assumed to be used for the two-parameter cursor po-
- sitioning capability, termcap applications also use it for single-
- parameter capabilities.
+ Doing so reveals a quirk in <STRONG>tgoto</STRONG>: most hardware terminals use
+ cursor addressing with <EM>row</EM> first, but the original developers of
+ the <EM>termcap</EM> interface chose to put the <EM>col</EM> (column) parameter
+ first. The <STRONG>tgoto</STRONG> function swaps the order of its parameters. It
+ does this even for calls requiring only a single parameter. In
+ that case, the first parameter is merely a placeholder.
- Doing this shows a quirk in <STRONG>tgoto</STRONG>: most hardware terminals use cur-
- sor addressing with <EM>row</EM> first, but the original developers of the
- termcap interface chose to put the <EM>column</EM> parameter first. The
- <STRONG>tgoto</STRONG> function swaps the order of parameters. It does this also
- for calls requiring only a single parameter. In that case, the
- first parameter is merely a placeholder.
+ <STRONG>o</STRONG> Normally the <EM>ncurses</EM> library is compiled without full <EM>termcap</EM>
+ support. In that case, <STRONG>tgoto</STRONG> uses an internal version of <STRONG><A HREF="curs_terminfo.3x.html">tparm(3x)</A></STRONG>
+ (a more capable function).
- <STRONG>o</STRONG> Normally the ncurses library is compiled with terminfo support. In
- that case, <STRONG>tgoto</STRONG> uses <STRONG><A HREF="curs_terminfo.3x.html">tparm(3x)</A></STRONG> (a more capable formatter).
+ Because it uses <STRONG>tparm</STRONG> internally, <STRONG>tgoto</STRONG> is able to use some <EM>term-</EM>
+ <EM>info</EM> features, but not all. In particular, it allows only numeric
+ parameters; <STRONG>tparm</STRONG> supports string parameters.
- However, <STRONG>tparm</STRONG> is not a <EM>termcap</EM> feature, and portable <EM>termcap</EM> ap-
- plications should not rely upon its availability.
+ However, <STRONG>tparm</STRONG> is not a <EM>termcap</EM> feature, and portable <EM>termcap</EM>
+ applications should not rely upon its availability.
- The <STRONG>tputs</STRONG> routine is described on the <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> manual page.
- It can retrieve capabilities by either termcap or terminfo name.
+ <STRONG>tputs</STRONG> is described in <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>. It can retrieve capabilities
+ by either <EM>termcap</EM> or <EM>terminfo</EM> code.
-</PRE><H3><a name="h3-GLOBAL-VARIABLES">GLOBAL VARIABLES</a></H3><PRE>
- The variables <STRONG>PC</STRONG>, <STRONG>UP</STRONG> and <STRONG>BC</STRONG> are set by <STRONG>tgetent</STRONG> to the terminfo entry's
+</PRE><H3><a name="h3-Global-Variables">Global Variables</a></H3><PRE>
+ The variables <STRONG>PC</STRONG>, <STRONG>UP</STRONG> and <STRONG>BC</STRONG> are set by <STRONG>tgetent</STRONG> to the <EM>terminfo</EM> entry's
data for <STRONG>pad_char</STRONG>, <STRONG>cursor_up</STRONG> and <STRONG>backspace_if_not_bs</STRONG>, respectively. <STRONG>UP</STRONG>
- is not used by ncurses. <STRONG>PC</STRONG> is used in the <STRONG>tdelay_output</STRONG> function. <STRONG>BC</STRONG>
- is used in the <STRONG>tgoto</STRONG> emulation. The variable <STRONG>ospeed</STRONG> is set by ncurses
- in a system-specific coding to reflect the terminal speed.
-
+ is not used by <EM>ncurses</EM>. <STRONG>PC</STRONG> is used by <STRONG><A HREF="curs_util.3x.html">delay_output(3x)</A></STRONG>. <STRONG>BC</STRONG> is used by
+ <STRONG>tgoto</STRONG> emulation. The variable <STRONG>ospeed</STRONG> is set by <EM>ncurses</EM> using a system-
+ specific encoding to indicate the terminal's data rate.
-</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- Except where explicitly noted, routines that return an integer return
- <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> (SVr4 only specifies "an integer value other
- than <STRONG>ERR</STRONG>") upon successful completion.
-
- Routines that return pointers return <STRONG>NULL</STRONG> on error.
+</PRE><H3><a name="h3-Releasing-Memory">Releasing Memory</a></H3><PRE>
+ The <EM>termcap</EM> functions provide no means of freeing memory, because
+ legacy <EM>termcap</EM> implementations used only the buffer areas provided by
+ the caller via <STRONG>tgetent</STRONG> and <STRONG>tgetstr</STRONG>. Those buffers are unused in <EM>term-</EM>
+ <EM>info</EM>.
-</PRE><H2><a name="h2-BUGS">BUGS</a></H2><PRE>
- If you call <STRONG>tgetstr</STRONG> to fetch <STRONG>ca</STRONG> or any other parameterized string, be
- aware that it will be returned in terminfo notation, not the older and
- not-quite-compatible termcap notation. This will not cause problems if
- all you do with it is call <STRONG>tgoto</STRONG> or <STRONG>tparm</STRONG>, which both expand terminfo-
- style strings as terminfo. (The <STRONG>tgoto</STRONG> function, if configured to sup-
- port termcap, will check if the string is indeed terminfo-style by
- looking for "%p" parameters or "$&lt;..&gt;" delays, and invoke a termcap-
- style parser if the string does not appear to be terminfo).
-
- Because terminfo conventions for representing padding in string capa-
- bilities differ from termcap's, <STRONG>tputs("50");</STRONG> will put out a literal
- "50" rather than busy-waiting for 50 milliseconds. Cope with it.
-
- Note that termcap has nothing analogous to terminfo's <STRONG>sgr</STRONG> string. One
- consequence of this is that termcap applications assume me (terminfo
- <STRONG>sgr0</STRONG>) does not reset the alternate character set. This implementation
- checks for, and modifies the data shown to the termcap interface to ac-
- commodate termcap's limitation in this respect.
-
+ By contrast, <EM>terminfo</EM> allocates memory. It uses <STRONG><A HREF="curs_terminfo.3x.html">setupterm(3x)</A></STRONG> to
+ obtain the data used by <STRONG>tgetent</STRONG> and the functions that retrieve
+ capability values. One could use
+ del_curterm(cur_term);
+ to free this memory, but there is an additional complication with
+ <EM>ncurses</EM>. It uses a fixed-size pool of storage locations, one per value
+ of the terminal name parameter given to <STRONG>tgetent</STRONG>. The <STRONG>screen(1)</STRONG> program
+ relies upon this arrangement to improve its performance.
-</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
+ An application that uses only the <EM>termcap</EM> functions, not the higher
+ level <EM>curses</EM> API, could release the memory using <STRONG><A HREF="curs_terminfo.3x.html">del_curterm(3x)</A></STRONG>,
+ because the pool is freed using other functions; see <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>.
-</PRE><H3><a name="h3-Standards">Standards</a></H3><PRE>
- These functions are provided for supporting legacy applications, and
- should not be used in new programs:
- <STRONG>o</STRONG> The XSI Curses standard, Issue 4 describes these functions. Howev-
- er, they are marked TO BE WITHDRAWN and may be removed in future
- versions.
+</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
+ The return values of <STRONG>tgetent</STRONG>, <STRONG>tgetflag</STRONG>, <STRONG>tgetname</STRONG>, and <STRONG>tgetstr</STRONG> are
+ documented above.
- <STRONG>o</STRONG> X/Open Curses, Issue 5 (December 2007) marked the termcap interface
- (along with <STRONG>vwprintw</STRONG> and <STRONG>vwscanw</STRONG>) as withdrawn.
+ <STRONG>tgoto</STRONG> returns <STRONG>NULL</STRONG> on error. Error conditions include:
- Neither the XSI Curses standard nor the SVr4 man pages documented the
- return values of <STRONG>tgetent</STRONG> correctly, though all three were in fact re-
- turned ever since SVr1. In particular, an omission in the XSI Curses
- documentation has been misinterpreted to mean that <STRONG>tgetent</STRONG> returns <STRONG>OK</STRONG>
- or <STRONG>ERR</STRONG>. Because the purpose of these functions is to provide compati-
- bility with the <EM>termcap</EM> library, that is a defect in XCurses, Issue 4,
- Version 2 rather than in ncurses.
+ <STRONG>o</STRONG> uninitialized state (<STRONG>tgetent</STRONG> was not called successfully),
+ <STRONG>o</STRONG> <EM>cap</EM> being a null pointer,
-</PRE><H3><a name="h3-Compatibility-with-BSD-Termcap">Compatibility with BSD Termcap</a></H3><PRE>
- External variables are provided for support of certain termcap applica-
- tions. However, termcap applications' use of those variables is poorly
- documented, e.g., not distinguishing between input and output. In par-
- ticular, some applications are reported to declare and/or modify <STRONG>os-</STRONG>
- <STRONG>peed</STRONG>.
+ <STRONG>o</STRONG> <EM>cap</EM> referring to a canceled capability,
- The comment that only the first two characters of the <STRONG>id</STRONG> parameter are
- used escapes many application developers. The original BSD 4.2 termcap
- library (and historical relics thereof) did not require a trailing null
- NUL on the parameter name passed to <STRONG>tgetstr</STRONG>, <STRONG>tgetnum</STRONG> and <STRONG>tgetflag</STRONG>.
- Some applications assume that the termcap interface does not require
- the trailing NUL for the parameter name. Taking into account these is-
- sues:
+ <STRONG>o</STRONG> <EM>cap</EM> being a capability with string-valued parameters (a <EM>term-</EM>
+ <EM>info</EM>-only feature), and
- <STRONG>o</STRONG> As a special case, <STRONG>tgetflag</STRONG> matched against a single-character
- identifier provided that was at the end of the terminal descrip-
- tion. You should not rely upon this behavior in portable programs.
- This implementation disallows matches against single-character ca-
- pability names.
+ <STRONG>o</STRONG> <EM>cap</EM> being a capability with more than two parameters.
- <STRONG>o</STRONG> This implementation disallows matches by the termcap interface
- against extended capability names which are longer than two charac-
- ters.
+ See <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> regarding <STRONG>tputs</STRONG>.
- The BSD termcap function <STRONG>tgetent</STRONG> returns the text of a termcap entry in
- the buffer passed as an argument. This library (like other terminfo
- implementations) does not store terminal descriptions as text. It sets
- the buffer contents to a null-terminated string.
+</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
+ <EM>ncurses</EM> compares only the first two characters of the <EM>id</EM> parameter of
+ <STRONG>tgetflag</STRONG>, <STRONG>tgetnum</STRONG>, and <STRONG>tgetstr</STRONG> to the capability names in the database.
-</PRE><H3><a name="h3-Other-Compatibility">Other Compatibility</a></H3><PRE>
- This library includes a termcap.h header, for compatibility with other
- implementations. But the header is rarely used because the other im-
- plementations are not strictly compatible.
- The original BSD termcap (through 4.3BSD) had no header file which gave
- function prototypes, because that was a feature of ANSI C. BSD termcap
- was written several years before C was standardized. However, there
- were two different termcap.h header files in the BSD sources:
+</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
+ These functions are no longer standardized (and the variables never
+ were); <EM>ncurses</EM> provides them to support legacy applications. They
+ should not be used in new programs.
- <STRONG>o</STRONG> One was used internally by the <EM>jove</EM> editor in 2BSD through 4.4BSD.
- It defined global symbols for the termcap variables which it used.
- <STRONG>o</STRONG> The other appeared in 4.4BSD Lite Release 2 (mid-1993) as part of
- <EM>libedit</EM> (also known as the <EM>editline</EM> library). The CSRG source his-
- tory shows that this was added in mid-1992. The <EM>libedit</EM> header
- file was used internally, as a convenience for compiling the <EM>edit-</EM>
- <EM>line</EM> library. It declared function prototypes, but no global vari-
- ables.
+</PRE><H3><a name="h3-Standards">Standards</a></H3><PRE>
+ <STRONG>o</STRONG> X/Open Curses, Issue 4, Version 2 (1996), describes these
+ functions, marking them as "TO BE WITHDRAWN".
+
+ <STRONG>o</STRONG> X/Open Curses, Issue 7 (2009) marks the <EM>termcap</EM> interface (along
+ with <STRONG>vwprintw</STRONG> and <STRONG>vwscanw</STRONG>) as withdrawn.
+
+ Neither X/Open Curses nor the SVr4 man pages documented the return
+ values of <STRONG>tgetent</STRONG> correctly, though all three shown here were in fact
+ returned ever since SVr1. In particular, an omission in the X/Open
+ Curses specification has been misinterpreted to mean that <STRONG>tgetent</STRONG>
+ returns <STRONG>OK</STRONG> or <STRONG>ERR</STRONG>. Because the purpose of these functions is to
+ provide compatibility with the <EM>termcap</EM> library, that is a defect in
+ X/Open Curses, Issue 4, Version 2 rather than in <EM>ncurses</EM>.
+
+ <STRONG>Compatibility</STRONG> <STRONG>with</STRONG> <STRONG>BSD</STRONG> <EM>termcap</EM>
+ Externally visible variables are provided for support of certain
+ <EM>termcap</EM> applications. However, their correct usage is poorly
+ documented; for example, it is unclear when reading and writing them is
+ meaningful. In particular, some applications are reported to declare
+ and/or modify <STRONG>ospeed</STRONG>.
+
+ The constraint that only the first two characters of the <EM>id</EM> parameter
+ are used escapes many application developers. The BSD <EM>termcap</EM> library
+ did not require a trailing null character on the capability identifier
+ passed to <STRONG>tgetstr</STRONG>, <STRONG>tgetnum</STRONG>, and <STRONG>tgetflag</STRONG>. Some applications thus
+ assume that the <EM>termcap</EM> interface does not require the trailing null
+ character for the capability identifier.
+
+ <STRONG>o</STRONG> <EM>ncurses</EM> disallows matches by the <EM>termcap</EM> interface against extended
+ capability names that are longer than two characters; see
+ <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>.
+
+ The BSD <EM>termcap</EM> function <STRONG>tgetent</STRONG> returns the text of a <EM>termcap</EM> entry in
+ the buffer passed as an argument. This library, like other <EM>terminfo</EM>
+ implementations, does not store terminal type descriptions as text. It
+ sets the buffer contents to a null-terminated string.
+
+
+</PRE><H3><a name="h3-Header-File">Header File</a></H3><PRE>
+ This library includes a <EM>termcap.h</EM> header for compatibility with other
+ implementations, but the header is rarely used because the other
+ implementations are not strictly compatible.
+
+
+</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
+ Bill Joy originated a forerunner of <EM>termcap</EM> called "ttycap", dated
+ September 1977, and released in 1BSD (March 1978). It used many of the
+ same function names as the later <EM>termcap</EM>, such as <STRONG>tgetent</STRONG>, <STRONG>tgetflag</STRONG>,
+ <STRONG>tgetnum</STRONG>, and <STRONG>tgetstr</STRONG>.
+
+ A clear descendant, the <EM>termlib</EM> library, followed in 2BSD (May 1979),
+ adding <STRONG>tgoto</STRONG> and <STRONG>tputs</STRONG>. The former applied at that time only to cursor
+ positioning capabilities, thus the overly specific name. Little
+ changed in 3BSD (late 1979) except the addition of test programs and a
+ <EM>termlib</EM> man page, which documented the API shown in section "SYNOPSIS"
+ above.
+
+ 4BSD (November 1980) renamed <EM>termlib</EM> to <EM>termcap</EM> and added another test
+ program. The library remained much the same though 4.3BSD (June 1986).
+ 4.4BSD-Lite (June 1994) refactored it, leaving the API unchanged.
+
+ Function prototypes were a feature of ANSI C (1989). The library long
+ antedated the standard and thus provided no header file declaring them.
+ Nevertheless, the BSD sources included two different <EM>termcap.h</EM> header
+ files over time.
+
+ <STRONG>o</STRONG> One was used internally by <STRONG>jove(1)</STRONG> from 4.3BSD onward. It declared
+ global symbols for the <EM>termcap</EM> variables that it used.
+
+ <STRONG>o</STRONG> The other appeared in 4.4BSD-Lite Release 2 (June 1995) as part of
+ <EM>libedit</EM> (also known as the <EM>editline</EM> library). CSRG source history
+ shows that this was added in mid-1992. The <EM>libedit</EM> header file was
+ used internally as a convenience for compiling the <EM>editline</EM>
+ library. It declared function prototypes, but no global variables.
+ This header file was added to NetBSD's <EM>termcap</EM> library in mid-1994.
+
+ Meanwhile, GNU <EM>termcap</EM> began development in 1990. Its first release
+ (1.0) in 1991 included a <EM>termcap.h</EM> header. Its second (1.1) in
+ September 1992 modified the header to use <EM>const</EM> for the function
+ prototypes in the header where one would expect the parameters to be
+ read-only. BSD <EM>termcap</EM> did not. The prototype for <STRONG>tputs</STRONG> also
+ differed, but in that instance, it was <EM>libedit</EM> that differed from BSD
+ <EM>termcap</EM>.
+
+ GNU <EM>termcap</EM> 1.3 was bundled with <STRONG>bash(1)</STRONG> in mid-1993 to support the
+ <STRONG>readline(3)</STRONG> library.
+
+ <EM>ncurses</EM> 1.8.1 (November 1993) provided a <EM>termcap.h</EM> file. It reflected
+ influence from GNU <EM>termcap</EM> and <STRONG>emacs(1)</STRONG> (rather than <STRONG>jove(1)</STRONG>),
+ providing the following interface:
+
+ <STRONG>o</STRONG> global symbols used by <EM>emacs</EM>,
+
+ <STRONG>o</STRONG> <EM>const</EM>-qualified function prototypes, and
+
+ <STRONG>o</STRONG> a prototype for <STRONG>tparam</STRONG>, a GNU <EM>termcap</EM> feature.
+
+ Later (in mid-1996) the <STRONG>tparam</STRONG> function was removed from <EM>ncurses</EM>. Any
+ two of the four implementations thus differ, and programs that intend
+ to work with all <EM>termcap</EM> library interfaces must account for that fact.
- The header file from <EM>libedit</EM> was added to NetBSD's termcap library in
- mid-1994.
- Meanwhile, GNU termcap was under development, starting in 1990. The
- first release (termcap 1.0) in 1991 included a termcap.h header. The
- second release (termcap 1.1) in September 1992 modified the header to
- use <STRONG>const</STRONG> for the function prototypes in the header where one would ex-
- pect the parameters to be read-only. This was a difference versus the
- original BSD termcap. The prototype for <STRONG>tputs</STRONG> also differed, but in
- that instance, it was <EM>libedit</EM> which differed from BSD termcap.
+</PRE><H2><a name="h2-BUGS">BUGS</a></H2><PRE>
+ If you call <STRONG>tgetstr</STRONG> to fetch <STRONG>column_address</STRONG> (<STRONG>ch</STRONG>) or any other
+ parameterized string capability, be aware that it is returned in <EM>term-</EM>
+ <EM>info</EM> notation, not the older and not-quite-compatible <EM>termcap</EM> notation.
+ This does not cause problems if all you do with it is call <STRONG>tgoto</STRONG> or
+ <STRONG>tparm</STRONG>, which both parametrically expand <EM>terminfo</EM>-style string
+ capabilities as <EM>terminfo</EM> does. (If <EM>ncurses</EM> is configured to support
+ <EM>termcap,</EM> <STRONG>tgoto</STRONG> checks whether the string is <EM>terminfo</EM>-style by looking
+ for "<STRONG>%p</STRONG>" parameters or "<STRONG>&lt;</STRONG>...<STRONG>&gt;</STRONG>" delays, and invokes a <EM>termcap</EM>-style
+ parser if the string appears not to use <EM>terminfo</EM> syntax.)
- A copy of GNU termcap 1.3 was bundled with <EM>bash</EM> in mid-1993, to support
- the <EM>readline</EM> library.
+ Because <EM>terminfo</EM>'s syntax for padding in string capabilities differs
+ from <EM>termcap</EM>'s, users can be surprised.
- A termcap.h file was provided in ncurses 1.8.1 (November 1993). That
- reflected influence by <EM>emacs</EM> (rather than <EM>jove</EM>) and GNU termcap:
+ <STRONG>o</STRONG> <STRONG>tputs("50")</STRONG> in a <EM>terminfo</EM> system transmits "50" rather than busy-
+ waiting for 50 milliseconds.
- <STRONG>o</STRONG> it provided declarations for a few global symbols used by <EM>emacs</EM>
+ <STRONG>o</STRONG> However, if <EM>ncurses</EM> is configured to support <EM>termcap</EM>, it may also
+ have been configured to support BSD-style padding.
- <STRONG>o</STRONG> it provided function prototypes (using <STRONG>const</STRONG>).
+ In that case, <STRONG>tputs</STRONG> inspects strings passed to it, looking for
+ digits at the beginning of the string.
- <STRONG>o</STRONG> a prototype for <STRONG>tparam</STRONG> (a GNU termcap feature) was provided.
+ <STRONG>tputs("50")</STRONG> in a <EM>termcap</EM> system may busy-wait for 50 milliseconds
+ rather than transmitting "50".
- Later (in mid-1996) the <STRONG>tparam</STRONG> function was removed from ncurses. As a
- result, there are differences between any of the four implementations,
- which must be taken into account by programs which can work with all
- termcap library interfaces.
+ <EM>termcap</EM> has nothing analogous to <EM>terminfo</EM>'s <STRONG>set_attributes</STRONG> (<STRONG>sgr</STRONG>)
+ capability. One consequence is that <EM>termcap</EM> applications assume that
+ "<STRONG>me</STRONG>" (equivalent to <EM>terminfo</EM>'s <STRONG>exit_attribute_mode</STRONG> (<STRONG>sgr0</STRONG>) capability)
+ does not reset the alternate character set. <EM>ncurses</EM> checks for, and
+ modifies the data shared with, the <EM>termcap</EM> interface to accommodate the
+ latter's limitation in this respect.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG>putc(3)</STRONG>, <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>, <STRONG>putc(3)</STRONG>, <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
https://invisible-island.net/ncurses/tctest.html
- <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -311,21 +377,23 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
<ul>
-<li><a href="#h3-INITIALIZATION">INITIALIZATION</a></li>
-<li><a href="#h3-CAPABILITY-VALUES">CAPABILITY VALUES</a></li>
-<li><a href="#h3-FORMATTING-CAPABILITIES">FORMATTING CAPABILITIES</a></li>
-<li><a href="#h3-GLOBAL-VARIABLES">GLOBAL VARIABLES</a></li>
+<li><a href="#h3-Initialization">Initialization</a></li>
+<li><a href="#h3-Retrieving-Capability-Values">Retrieving Capability Values</a></li>
+<li><a href="#h3-Applying-String-Capabilities">Applying String Capabilities</a></li>
+<li><a href="#h3-Global-Variables">Global Variables</a></li>
+<li><a href="#h3-Releasing-Memory">Releasing Memory</a></li>
</ul>
</li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-BUGS">BUGS</a></li>
+<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a>
<ul>
<li><a href="#h3-Standards">Standards</a></li>
-<li><a href="#h3-Compatibility-with-BSD-Termcap">Compatibility with BSD Termcap</a></li>
-<li><a href="#h3-Other-Compatibility">Other Compatibility</a></li>
+<li><a href="#h3-Header-File">Header File</a></li>
</ul>
</li>
+<li><a href="#h2-HISTORY">HISTORY</a></li>
+<li><a href="#h2-BUGS">BUGS</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
diff --git a/doc/html/man/curs_terminfo.3x.html b/doc/html/man/curs_terminfo.3x.html
index 3c8da425172f..2bba9d912567 100644
--- a/doc/html/man/curs_terminfo.3x.html
+++ b/doc/html/man/curs_terminfo.3x.html
@@ -1,6 +1,7 @@
-<!--
+<!--
+ * t
****************************************************************************
- * Copyright 2018-2020,2021 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,36 +28,30 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_terminfo.3x,v 1.72 2021/01/02 23:50:04 tom Exp @
- * ***************************************************************************
- * ***************************************************************************
- * ***************************************************************************
- * ***************************************************************************
- * ***************************************************************************
- * ***************************************************************************
- * ***************************************************************************
+ * @Id: curs_terminfo.3x,v 1.136 2024/04/14 00:14:40 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_terminfo 3x</TITLE>
+<TITLE>curs_terminfo 3x 2024-04-13 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_terminfo 3x</H1>
+<H1 class="no-header">curs_terminfo 3x 2024-04-13 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
+<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>del_curterm</STRONG>, <STRONG>mvcur</STRONG>, <STRONG>putp</STRONG>, <STRONG>restartterm</STRONG>, <STRONG>set_curterm</STRONG>, <STRONG>setupterm</STRONG>,
- <STRONG>tigetflag</STRONG>, <STRONG>tigetnum</STRONG>, <STRONG>tigetstr</STRONG>, <STRONG>tiparm</STRONG>, <STRONG>tparm</STRONG>, <STRONG>tputs</STRONG>, <STRONG>vid_attr</STRONG>,
- <STRONG>vid_puts</STRONG>, <STRONG>vidattr</STRONG>, <STRONG>vidputs</STRONG> - <STRONG>curses</STRONG> interfaces to terminfo database
+ <STRONG>del_curterm</STRONG>, <STRONG>mvcur</STRONG>, <STRONG>putp</STRONG>, <STRONG>restartterm</STRONG>, <STRONG>set_curterm</STRONG>, <STRONG>setupterm</STRONG>,
+ <STRONG>tigetflag</STRONG>, <STRONG>tigetnum</STRONG>, <STRONG>tigetstr</STRONG>, <STRONG>tiparm</STRONG>, <STRONG>tiparm_s</STRONG>, <STRONG>tiscan_s</STRONG>, <STRONG>tparm</STRONG>,
+ <STRONG>tputs</STRONG>, <STRONG>vid_attr</STRONG>, <STRONG>vid_puts</STRONG>, <STRONG>vidattr</STRONG>, <STRONG>vidputs</STRONG> - <EM>curses</EM> interfaces to
+ <EM>terminfo</EM> database
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -80,7 +75,10 @@
<STRONG>int</STRONG> <STRONG>del_curterm(TERMINAL</STRONG> <STRONG>*</STRONG><EM>oterm</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>restartterm(const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>term</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>filedes</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <STRONG>*</STRONG><EM>errret</EM><STRONG>);</STRONG>
- <STRONG>char</STRONG> <STRONG>*tparm(const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>,</STRONG> <STRONG>...);</STRONG>
+ <STRONG>char</STRONG> <STRONG>*tparm(const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>,</STRONG> ...<STRONG>);</STRONG>
+ <EM>/*</EM> <EM>or</EM> <EM>*/</EM>
+ <STRONG>char</STRONG> <STRONG>*tparm(const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>,</STRONG> <STRONG>long</STRONG> <EM>p1</EM> ... <STRONG>long</STRONG> <EM>p9</EM><STRONG>);</STRONG>
+
<STRONG>int</STRONG> <STRONG>tputs(const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>affcnt</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <STRONG>(*</STRONG><EM>putc</EM><STRONG>)(int));</STRONG>
<STRONG>int</STRONG> <STRONG>putp(const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>);</STRONG>
@@ -89,238 +87,280 @@
<STRONG>int</STRONG> <STRONG>vid_puts(attr_t</STRONG> <EM>attrs</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>pair</EM><STRONG>,</STRONG> <STRONG>void</STRONG> <STRONG>*</STRONG><EM>opts</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <STRONG>(*</STRONG><EM>putc</EM><STRONG>)(int));</STRONG>
<STRONG>int</STRONG> <STRONG>vid_attr(attr_t</STRONG> <EM>attrs</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>pair</EM><STRONG>,</STRONG> <STRONG>void</STRONG> <STRONG>*</STRONG><EM>opts</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>mvcur(int</STRONG> <EM>oldrow</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>oldcol</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>newrow</EM>, int <EM>newcol</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>mvcur(int</STRONG> <EM>oldrow</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>oldcol</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>newrow</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>newcol</EM><STRONG>);</STRONG>
+
+ <STRONG>int</STRONG> <STRONG>tigetflag(const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>cap-code</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>tigetnum(const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>cap-code</EM><STRONG>);</STRONG>
+ <STRONG>char</STRONG> <STRONG>*tigetstr(const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>cap-code</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>tigetflag(const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>capname</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>tigetnum(const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>capname</EM><STRONG>);</STRONG>
- <STRONG>char</STRONG> <STRONG>*tigetstr(const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>capname</EM><STRONG>);</STRONG>
+ <STRONG>char</STRONG> <STRONG>*tiparm(const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>,</STRONG> ...<STRONG>);</STRONG>
- <STRONG>char</STRONG> <STRONG>*tiparm(const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>,</STRONG> <STRONG>...);</STRONG>
+ <EM>/*</EM> <EM>extensions</EM> <EM>*/</EM>
+ <STRONG>char</STRONG> <STRONG>*tiparm_s(int</STRONG> <EM>expected</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>mask</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>,</STRONG> <STRONG>...);</STRONG>
+ <STRONG>int</STRONG> <STRONG>tiscan_s(int</STRONG> <STRONG>*</STRONG><EM>expected</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <STRONG>*</STRONG><EM>mask</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>);</STRONG>
+
+ <EM>/*</EM> <EM>deprecated</EM> <EM>*/</EM>
+ <STRONG>int</STRONG> <STRONG>setterm(const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>term</EM><STRONG>);</STRONG>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- These low-level routines must be called by programs that have to deal
- directly with the <STRONG>terminfo</STRONG> database to handle certain terminal capabil-
- ities, such as programming function keys. For all other functionality,
- <STRONG>curses</STRONG> routines are more suitable and their use is recommended.
+ These low-level functions must be called by programs that deal directly
+ with the <EM>terminfo</EM> database to handle certain terminal capabilities,
+ such as programming function keys. For all other functionality, <EM>curses</EM>
+ functions are more suitable and their use is recommended.
- None of these functions use (or are aware of) multibyte character
- strings such as UTF-8:
+ None of these functions use (or are aware of) multibyte character
+ strings such as UTF-8.
- <STRONG>o</STRONG> capability names use the POSIX portable character set
+ <STRONG>o</STRONG> Capability names and codes use the POSIX portable character set.
- <STRONG>o</STRONG> capability string values have no associated encoding; they are
+ <STRONG>o</STRONG> Capability string values have no associated encoding; they are
strings of 8-bit characters.
</PRE><H3><a name="h3-Initialization">Initialization</a></H3><PRE>
- Initially, <STRONG>setupterm</STRONG> should be called. The high-level curses functions
- <STRONG>initscr</STRONG> and <STRONG>newterm</STRONG> call <STRONG>setupterm</STRONG> to initialize the low-level set of
- terminal-dependent variables [listed in <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>].
+ Initially, <STRONG>setupterm</STRONG> should be called. The high-level <EM>curses</EM> functions
+ <STRONG>initscr</STRONG> and <STRONG>newterm</STRONG> call <STRONG>setupterm</STRONG> to initialize the low-level set of
+ terminal-dependent variables listed in <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>.
- Applications can use the terminal capabilities either directly (via
- header definitions), or by special functions. The header files <STRONG>curs-</STRONG>
- <STRONG>es.h</STRONG> and <STRONG>term.h</STRONG> should be included (in this order) to get the defini-
- tions for these strings, numbers, and flags.
+ Applications can use the terminal capabilities either directly (via
+ header definitions), or by special functions. The header files
+ <EM>curses.h</EM> and <EM>term.h</EM> should be included (in that order) to get the
+ definitions for these strings, numbers, and flags.
- The <STRONG>terminfo</STRONG> variables <STRONG>lines</STRONG> and <STRONG>columns</STRONG> are initialized by <STRONG>setupterm</STRONG>
- as follows:
+ The <EM>terminfo</EM> variables <STRONG>lines</STRONG> and <STRONG>columns</STRONG> are initialized by <STRONG>setupterm</STRONG>
+ as follows.
- <STRONG>o</STRONG> If <STRONG>use_env(FALSE)</STRONG> has been called, values for <STRONG>lines</STRONG> and <STRONG>columns</STRONG>
- specified in <STRONG>terminfo</STRONG> are used.
+ <STRONG>o</STRONG> If <STRONG>use_env(FALSE)</STRONG> has been called, values for <STRONG>lines</STRONG> and <STRONG>columns</STRONG>
+ specified in <EM>terminfo</EM> are used.
- <STRONG>o</STRONG> Otherwise, if the environment variables <STRONG>LINES</STRONG> and <STRONG>COLUMNS</STRONG> exist,
+ <STRONG>o</STRONG> Otherwise, if the environment variables <EM>LINES</EM> and <EM>COLUMNS</EM> exist,
their values are used. If these environment variables do not exist
- and the program is running in a window, the current window size is
- used. Otherwise, if the environment variables do not exist, the
- values for <STRONG>lines</STRONG> and <STRONG>columns</STRONG> specified in the <STRONG>terminfo</STRONG> database are
+ and the program is running in a window, the current window size is
+ used. Otherwise, if the environment variables do not exist, the
+ values for <STRONG>lines</STRONG> and <STRONG>columns</STRONG> specified in the <EM>terminfo</EM> database are
used.
- Parameterized strings should be passed through <STRONG>tparm</STRONG> to instantiate
- them. All <STRONG>terminfo</STRONG> strings (including the output of <STRONG>tparm</STRONG>) should be
- printed with <STRONG>tputs</STRONG> or <STRONG>putp</STRONG>. Call <STRONG>reset_shell_mode</STRONG> to restore the tty
- modes before exiting [see <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>].
+ Parameterized strings should be passed through <STRONG>tparm</STRONG> to instantiate
+ them. All <EM>terminfo</EM> strings (including the output of <STRONG>tparm</STRONG>) should be
+ sent to the terminal device with <STRONG>tputs</STRONG> or <STRONG>putp</STRONG>. Call <STRONG>reset_shell_mode</STRONG>
+ to restore the terminal modes before exiting; see <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>.
- Programs which use cursor addressing should
+ Programs that use cursor addressing should
<STRONG>o</STRONG> output <STRONG>enter_ca_mode</STRONG> upon startup and
<STRONG>o</STRONG> output <STRONG>exit_ca_mode</STRONG> before exiting.
- Programs which execute shell subprocesses should
+ Programs that execute shell subprocesses should
- <STRONG>o</STRONG> call <STRONG>reset_shell_mode</STRONG> and output <STRONG>exit_ca_mode</STRONG> before the shell is
+ <STRONG>o</STRONG> call <STRONG>reset_shell_mode</STRONG> and output <STRONG>exit_ca_mode</STRONG> before the shell is
called and
- <STRONG>o</STRONG> output <STRONG>enter_ca_mode</STRONG> and call <STRONG>reset_prog_mode</STRONG> after returning from
+ <STRONG>o</STRONG> output <STRONG>enter_ca_mode</STRONG> and call <STRONG>reset_prog_mode</STRONG> after returning from
the shell.
- The <STRONG>setupterm</STRONG> routine reads in the <STRONG>terminfo</STRONG> database, initializing the
- <STRONG>terminfo</STRONG> structures, but does not set up the output virtualization
- structures used by <STRONG>curses</STRONG>. These are its parameters:
+ <STRONG>setupterm</STRONG> reads in the <EM>terminfo</EM> database, initializing the <EM>terminfo</EM>
+ structures, but does not set up the output virtualization structures
+ used by <EM>curses</EM>. Its parameters follow.
<EM>term</EM> is the terminal type, a character string. If <EM>term</EM> is null, the
- environment variable <STRONG>TERM</STRONG> is used.
+ environment variable <EM>TERM</EM> is read.
<EM>filedes</EM>
- is the file descriptor used for all output.
+ is the file descriptor used for getting and setting terminal
+ I/O modes.
+
+ Higher-level applications use <STRONG><A HREF="curs_initscr.3x.html">newterm(3x)</A></STRONG> to initialize the
+ terminal, passing an output <EM>stream</EM> rather than a <EM>descriptor</EM>.
+ In <EM>curses</EM>, the two are the same because <STRONG>newterm</STRONG> calls
+ <STRONG>setupterm</STRONG>, passing the file descriptor derived from its output
+ stream parameter.
<EM>errret</EM>
- points to an optional location where an error status can be re-
- turned to the caller. If <EM>errret</EM> is not null, then <STRONG>setupterm</STRONG>
+ points to an optional location where an error status can be
+ returned to the caller. If <EM>errret</EM> is not null, then <STRONG>setupterm</STRONG>
returns <STRONG>OK</STRONG> or <STRONG>ERR</STRONG> and stores a status value in the integer
- pointed to by <EM>errret</EM>. A return value of <STRONG>OK</STRONG> combined with sta-
- tus of <STRONG>1</STRONG> in <EM>errret</EM> is normal.
+ pointed to by <EM>errret</EM>. A return value of <STRONG>OK</STRONG> combined with
+ status of <STRONG>1</STRONG> in <EM>errret</EM> is normal.
- If <STRONG>ERR</STRONG> is returned, examine <EM>errret</EM>:
+ If <STRONG>ERR</STRONG> is returned, examine <EM>errret:</EM>
- <STRONG>1</STRONG> means that the terminal is hardcopy, cannot be used for
- curses applications.
+ <STRONG>1</STRONG> means that the terminal is hardcopy, and cannot be used
+ for <EM>curses</EM> applications.
<STRONG>setupterm</STRONG> determines if the entry is a hardcopy type by
- checking the <STRONG>hc</STRONG> (<STRONG>hardcopy</STRONG>) capability.
+ checking the <STRONG>hardcopy</STRONG> (<STRONG>hc</STRONG>) capability.
<STRONG>0</STRONG> means that the terminal could not be found, or that it is
- a generic type, having too little information for curses
+ a generic type, having too little information for <EM>curses</EM>
applications to run.
<STRONG>setupterm</STRONG> determines if the entry is a generic type by
- checking the <STRONG>gn</STRONG> (<STRONG>generic</STRONG>) capability.
+ checking the <STRONG>generic_type</STRONG> (<STRONG>gn</STRONG>) capability.
- <STRONG>-1</STRONG> means that the <STRONG>terminfo</STRONG> database could not be found.
+ <STRONG>-1</STRONG> means that the <EM>terminfo</EM> database could not be found.
- If <EM>errret</EM> is null, <STRONG>setupterm</STRONG> prints an error message upon find-
- ing an error and exits. Thus, the simplest call is:
+ If <EM>errret</EM> is null, <STRONG>setupterm</STRONG> reports an error message upon
+ finding an error and exits. Thus, the simplest call is:
- <STRONG>setupterm((char</STRONG> <STRONG>*)0,</STRONG> <STRONG>1,</STRONG> <STRONG>(int</STRONG> <STRONG>*)0);</STRONG>,
+ setupterm((char *)0, 1, (int *)0);
which uses all the defaults and sends the output to <STRONG>stdout</STRONG>.
</PRE><H3><a name="h3-The-Terminal-State">The Terminal State</a></H3><PRE>
- The <STRONG>setupterm</STRONG> routine stores its information about the terminal in a
- <STRONG>TERMINAL</STRONG> structure pointed to by the global variable <STRONG>cur_term</STRONG>. If it
- detects an error, or decides that the terminal is unsuitable (hardcopy
- or generic), it discards this information, making it not available to
+ <STRONG>setupterm</STRONG> stores its information about the terminal in a <EM>TERMINAL</EM>
+ structure pointed to by the global variable <STRONG>cur_term</STRONG>. If it detects an
+ error, or decides that the terminal is unsuitable (hardcopy or
+ generic), it discards this information, making it not available to
applications.
If <STRONG>setupterm</STRONG> is called repeatedly for the same terminal type, it will
- reuse the information. It maintains only one copy of a given termi-
- nal's capabilities in memory. If it is called for different terminal
- types, <STRONG>setupterm</STRONG> allocates new storage for each set of terminal capa-
- bilities.
-
- The <STRONG>set_curterm</STRONG> routine sets <STRONG>cur_term</STRONG> to <EM>nterm</EM>, and makes all of the
- <STRONG>terminfo</STRONG> boolean, numeric, and string variables use the values from
- <EM>nterm</EM>. It returns the old value of <STRONG>cur_term</STRONG>.
-
- The <STRONG>del_curterm</STRONG> routine frees the space pointed to by <EM>oterm</EM> and makes
- it available for further use. If <EM>oterm</EM> is the same as <STRONG>cur_term</STRONG>, refer-
- ences to any of the <STRONG>terminfo</STRONG> boolean, numeric, and string variables
- thereafter may refer to invalid memory locations until another <STRONG>se-</STRONG>
- <STRONG>tupterm</STRONG> has been called.
-
- The <STRONG>restartterm</STRONG> routine is similar to <STRONG>setupterm</STRONG> and <STRONG>initscr</STRONG>, except
- that it is called after restoring memory to a previous state (for exam-
- ple, when reloading a game saved as a core image dump). <STRONG>restartterm</STRONG>
- assumes that the windows and the input and output options are the same
- as when memory was saved, but the terminal type and baud rate may be
- different. Accordingly, <STRONG>restartterm</STRONG> saves various tty state bits,
- calls <STRONG>setupterm</STRONG>, and then restores the bits.
+ reuse the information. It maintains only one copy of a given
+ terminal's capabilities in memory. If it is called for different
+ terminal types, <STRONG>setupterm</STRONG> allocates new storage for each set of
+ terminal capabilities.
+
+ <STRONG>set_curterm</STRONG> sets <STRONG>cur_term</STRONG> to <EM>nterm</EM>, and makes all of the <EM>terminfo</EM>
+ Boolean, numeric, and string variables use the values from <EM>nterm</EM>. It
+ returns the old value of <STRONG>cur_term</STRONG>.
+
+ <STRONG>del_curterm</STRONG> frees the space pointed to by <EM>oterm</EM> and makes it available
+ for further use. If <EM>oterm</EM> is the same as <STRONG>cur_term</STRONG>, references to any
+ of the <EM>terminfo</EM> Boolean, numeric, and string variables thereafter may
+ refer to invalid memory locations until another <STRONG>setupterm</STRONG> has been
+ called.
+
+ <STRONG>restartterm</STRONG> is similar to <STRONG>setupterm</STRONG> and <STRONG>initscr</STRONG>, except that it is
+ called after restoring memory to a previous state (for example, when
+ reloading a game saved as a core image dump). <STRONG>restartterm</STRONG> assumes that
+ the windows and the input and output options are the same as when
+ memory was saved, but the terminal type and baud rate may be different.
+ Accordingly, <STRONG>restartterm</STRONG> saves various terminal state bits, calls
+ <STRONG>setupterm</STRONG>, and then restores the bits.
</PRE><H3><a name="h3-Formatting-Output">Formatting Output</a></H3><PRE>
- The <STRONG>tparm</STRONG> routine instantiates the string <EM>str</EM> with parameters <EM>pi</EM>. A
- pointer is returned to the result of <EM>str</EM> with the parameters applied.
- Application developers should keep in mind these quirks of the inter-
- face:
+ <STRONG>tparm</STRONG> instantiates the string <EM>str</EM> with parameters <EM>pi</EM>. A pointer is
+ returned to the result of <EM>str</EM> with the parameters applied. Application
+ developers should keep in mind these quirks of the interface:
+
+ <STRONG>o</STRONG> Although <STRONG>tparm</STRONG>'s actual parameters may be integers or strings, the
+ prototype expects <EM>long</EM> (integer) values.
+
+ <STRONG>o</STRONG> Aside from the <STRONG>set_attributes</STRONG> (<STRONG>sgr</STRONG>) capability, most terminal
+ capabilities require no more than one or two parameters.
+
+ <STRONG>o</STRONG> Padding information is ignored by <STRONG>tparm</STRONG>; it is interpreted by
+ <STRONG>tputs</STRONG>.
+
+ <STRONG>o</STRONG> The capability string is null-terminated. Use "\200" where an
+ ASCII NUL is needed in the output.
+
+ <STRONG>tiparm</STRONG> is a newer form of <STRONG>tparm</STRONG> which uses <EM>stdarg.h</EM> rather than a
+ fixed-parameter list. Its numeric parameters are <EM>int</EM>s rather than
+ <EM>long</EM>s.
- <STRONG>o</STRONG> Although <STRONG>tparm</STRONG>'s actual parameters may be integers or strings, the
- prototype expects <STRONG>long</STRONG> (integer) values.
+ Both <STRONG>tparm</STRONG> and <STRONG>tiparm</STRONG> assume that the application passes parameters
+ consistent with the terminal description. Two extensions are provided
+ as alternatives to deal with untrusted data.
- <STRONG>o</STRONG> Aside from the <STRONG>set_attributes</STRONG> (<STRONG>sgr</STRONG>) capability, most terminal capa-
- bilities require no more than one or two parameters.
+ <STRONG>o</STRONG> <STRONG>tiparm_s</STRONG> is an extension which is a safer formatting function than
+ <STRONG>tparm</STRONG> or <STRONG>tiparm</STRONG>, because it allows the developer to tell the <EM>curses</EM>
+ library how many parameters to expect in the parameter list, and
+ which may be string parameters.
- <STRONG>tiparm</STRONG> is a newer form of <STRONG>tparm</STRONG> which uses <EM>&lt;stdarg.h&gt;</EM> rather than a
- fixed-parameter list. Its numeric parameters are integers (int) rather
- than longs.
+ The <EM>mask</EM> parameter has one bit set for each of the parameters (up
+ to 9) passed as <EM>char</EM> pointers rather than numbers.
+
+ <STRONG>o</STRONG> The extension <STRONG>tiscan_s</STRONG> allows the application to inspect a
+ formatting capability to see what the <EM>curses</EM> library would assume.
</PRE><H3><a name="h3-Output-Functions">Output Functions</a></H3><PRE>
- The <STRONG>tputs</STRONG> routine applies padding information to the string <EM>str</EM> and
- outputs it:
+ String capabilities can contain padding information, a time delay
+ (accommodating performance limitations of hardware terminals) expressed
+ as <STRONG>$&lt;</STRONG><EM>n</EM><STRONG>&gt;</STRONG>, where <EM>n</EM> is a nonnegative integral count of milliseconds. If <EM>n</EM>
+ exceeds 30,000 (thirty seconds), it is capped at that value.
+
+ <STRONG>tputs</STRONG> interprets time-delay information in the string <EM>str</EM> and outputs
+ it, executing the delays:
- <STRONG>o</STRONG> The <EM>str</EM> parameter must be a terminfo string variable or the return
- value from <STRONG>tparm</STRONG>, <STRONG>tiparm</STRONG>, <STRONG>tgetstr</STRONG>, or <STRONG>tgoto</STRONG>.
+ <STRONG>o</STRONG> The <EM>str</EM> parameter must be a <EM>terminfo</EM> string variable or the return
+ value of <STRONG>tparm</STRONG>, <STRONG>tiparm</STRONG>, <STRONG>tgetstr</STRONG>, or <STRONG>tgoto</STRONG>.
- The <STRONG>tgetstr</STRONG> and <STRONG>tgoto</STRONG> functions are part of the <EM>termcap</EM> interface,
- which happens to share this function name with the <EM>terminfo</EM> inter-
- face.
+ The <STRONG>tgetstr</STRONG> and <STRONG>tgoto</STRONG> functions are part of the <EM>termcap</EM> interface,
+ which happens to share these function names with the <EM>terminfo</EM> API.
- <STRONG>o</STRONG> <EM>affcnt</EM> is the number of lines affected, or 1 if not applicable.
+ <STRONG>o</STRONG> <EM>affcnt</EM> is the number of lines affected, or <STRONG>1</STRONG> if not applicable.
- <STRONG>o</STRONG> <EM>putc</EM> is a <STRONG>putchar</STRONG>-like routine to which the characters are passed,
+ <STRONG>o</STRONG> <EM>putc</EM> is a <EM>putchar</EM>-like function to which the characters are passed,
one at a time.
- The <STRONG>putp</STRONG> routine calls <STRONG>tputs(</STRONG><EM>str</EM><STRONG>,</STRONG> <STRONG>1,</STRONG> <STRONG>putchar)</STRONG>. The output of <STRONG>putp</STRONG> al-
- ways goes to <STRONG>stdout</STRONG>, rather than the <EM>filedes</EM> specified in <STRONG>setupterm</STRONG>.
+ If <STRONG>tputs</STRONG> processes a time-delay, it uses the <STRONG><A HREF="curs_util.3x.html">delay_output(3x)</A></STRONG>
+ function, routing any resulting padding characters through this
+ function.
+
+ <STRONG>putp</STRONG> calls "<STRONG>tputs(</STRONG><EM>str</EM><STRONG>,</STRONG> <STRONG>1,</STRONG> <STRONG>putchar)</STRONG>". The output of <STRONG>putp</STRONG> always goes to
+ <STRONG>stdout</STRONG>, rather than the <EM>filedes</EM> specified in <STRONG>setupterm</STRONG>.
- The <STRONG>vidputs</STRONG> routine displays the string on the terminal in the video
- attribute mode <EM>attrs</EM>, which is any combination of the attributes listed
- in <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>. The characters are passed to the <STRONG>putchar</STRONG>-like routine
- <EM>putc</EM>.
+ <STRONG>vidputs</STRONG> displays the string on the terminal in the video attribute mode
+ <EM>attrs</EM>, which is any combination of the attributes listed in <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>.
+ The characters are passed to the <EM>putchar</EM>-like function <EM>putc</EM>.
- The <STRONG>vidattr</STRONG> routine is like the <STRONG>vidputs</STRONG> routine, except that it outputs
- through <STRONG>putchar</STRONG>.
+ <STRONG>vidattr</STRONG> is like <STRONG>vidputs</STRONG>, except that it outputs through <STRONG>putchar(3)</STRONG>.
- The <STRONG>vid_attr</STRONG> and <STRONG>vid_puts</STRONG> routines correspond to vidattr and vidputs,
- respectively. They use a set of arguments for representing the video
- attributes plus color, i.e.,
+ <STRONG>vid_attr</STRONG> and <STRONG>vid_puts</STRONG> correspond to <STRONG>vidattr</STRONG> and <STRONG>vidputs</STRONG>, respectively.
+ They use multiple parameters to represent the character attributes and
+ color; namely,
- <STRONG>o</STRONG> <EM>attrs</EM> of type <STRONG>attr_t</STRONG> for the attributes and
+ <STRONG>o</STRONG> <EM>attrs</EM>, of type <EM>attr</EM><STRONG>_</STRONG><EM>t</EM>, for the attributes and
- <STRONG>o</STRONG> <EM>pair</EM> of type <STRONG>short</STRONG> for the color-pair number.
+ <STRONG>o</STRONG> <EM>pair</EM>, of type <EM>short</EM>, for the color pair number.
- The <STRONG>vid_attr</STRONG> and <STRONG>vid_puts</STRONG> routines are designed to use the attribute
- constants with the <EM>WA</EM><STRONG>_</STRONG> prefix.
+ Use the attribute constants prefixed with "<STRONG>WA_</STRONG>" with <STRONG>vid_attr</STRONG> and
+ <STRONG>vid_puts</STRONG>.
X/Open Curses reserves the <EM>opts</EM> argument for future use, saying that
- applications must provide a null pointer for that argument. As an ex-
- tension, this implementation allows <EM>opts</EM> to be used as a pointer to
- <STRONG>int</STRONG>, which overrides the <EM>pair</EM> (<STRONG>short</STRONG>) argument.
+ applications must provide a null pointer for that argument; but see
+ section "EXTENSIONS" below.
- The <STRONG>mvcur</STRONG> routine provides low-level cursor motion. It takes effect
- immediately (rather than at the next refresh).
+ <STRONG>mvcur</STRONG> provides low-level cursor motion. It takes effect immediately
+ (rather than at the next refresh). Unlike the other low-level output
+ functions, which either write to the standard output or pass an output
+ function parameter, <STRONG>mvcur</STRONG> uses an output file descriptor derived from
+ the output stream parameter of <STRONG><A HREF="curs_initscr.3x.html">newterm(3x)</A></STRONG>.
- While <STRONG>putp</STRONG> and <STRONG>mvcur</STRONG> are low-level functions which do not use the high-
- level curses state, they are declared in <STRONG>&lt;curses.h&gt;</STRONG> because SystemV did
- this (see <STRONG>HISTORY</STRONG>).
+ While <STRONG>putp</STRONG> and <STRONG>mvcur</STRONG> are low-level functions that do not use high-level
+ <EM>curses</EM> state, <EM>ncurses</EM> declares them in <EM>curses.h</EM> because System V did
+ this (see section "HISTORY" below).
</PRE><H3><a name="h3-Terminal-Capability-Functions">Terminal Capability Functions</a></H3><PRE>
- The <STRONG>tigetflag</STRONG>, <STRONG>tigetnum</STRONG> and <STRONG>tigetstr</STRONG> routines return the value of the
- capability corresponding to the <STRONG>terminfo</STRONG> <EM>capname</EM> passed to them, such
- as <STRONG>xenl</STRONG>. The <EM>capname</EM> for each capability is given in the table column
- entitled <EM>capname</EM> code in the capabilities section of <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
+ <STRONG>tigetflag</STRONG>, <STRONG>tigetnum</STRONG>, and <STRONG>tigetstr</STRONG> return the value of the capability
+ corresponding to the <EM>terminfo</EM> <EM>cap-code</EM>, such as <STRONG>xenl</STRONG>, passed to them.
+ The <EM>cap-code</EM> for each capability is given in the table column entitled
+ <EM>cap-code</EM> code in the capabilities section of <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
- These routines return special values to denote errors.
+ These functions return special values to denote errors.
- The <STRONG>tigetflag</STRONG> routine returns
+ <STRONG>tigetflag</STRONG> returns
- <STRONG>-1</STRONG> if <EM>capname</EM> is not a boolean capability, or
+ <STRONG>-1</STRONG> if <EM>cap-code</EM> is not a Boolean capability, or
<STRONG>0</STRONG> if it is canceled or absent from the terminal description.
- The <STRONG>tigetnum</STRONG> routine returns
+ <STRONG>tigetnum</STRONG> returns
- <STRONG>-2</STRONG> if <EM>capname</EM> is not a numeric capability, or
+ <STRONG>-2</STRONG> if <EM>cap-code</EM> is not a numeric capability, or
<STRONG>-1</STRONG> if it is canceled or absent from the terminal description.
- The <STRONG>tigetstr</STRONG> routine returns
+ <STRONG>tigetstr</STRONG> returns
<STRONG>(char</STRONG> <STRONG>*)-1</STRONG>
- if <EM>capname</EM> is not a string capability, or
+ if <EM>cap-code</EM> is not a string capability, or
<STRONG>0</STRONG> if it is canceled or absent from the terminal description.
@@ -328,248 +368,327 @@
</PRE><H3><a name="h3-Terminal-Capability-Names">Terminal Capability Names</a></H3><PRE>
These null-terminated arrays contain
- <STRONG>o</STRONG> the short terminfo names ("codes"),
+ <STRONG>o</STRONG> the short <EM>terminfo</EM> names ("codes"),
- <STRONG>o</STRONG> the <STRONG>termcap</STRONG> names ("names"), and
+ <STRONG>o</STRONG> the <EM>termcap</EM> names ("names"), and
- <STRONG>o</STRONG> the long terminfo names ("fnames")
+ <STRONG>o</STRONG> the long <EM>terminfo</EM> names ("fnames")
- for each of the predefined <STRONG>terminfo</STRONG> variables:
+ for each of the predefined <EM>terminfo</EM> variables:
<STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*boolnames[]</STRONG>, <STRONG>*boolcodes[]</STRONG>, <STRONG>*boolfnames[]</STRONG>
<STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*numnames[]</STRONG>, <STRONG>*numcodes[]</STRONG>, <STRONG>*numfnames[]</STRONG>
<STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*strnames[]</STRONG>, <STRONG>*strcodes[]</STRONG>, <STRONG>*strfnames[]</STRONG>
-</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- Routines that return an integer return <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> (SVr4
- only specifies "an integer value other than <STRONG>ERR</STRONG>") upon successful com-
- pletion, unless otherwise noted in the preceding routine descriptions.
-
- Routines that return pointers always return <STRONG>NULL</STRONG> on error.
+</PRE><H3><a name="h3-Releasing-Memory">Releasing Memory</a></H3><PRE>
+ Each successful call to <STRONG>setupterm</STRONG> allocates memory to hold the terminal
+ description. As a side effect, it sets <STRONG>cur_term</STRONG> to point to this
+ memory. If an application calls
- X/Open defines no error conditions. In this implementation
+ del_curterm(cur_term);
- <STRONG>del_curterm</STRONG>
- returns an error if its terminal parameter is null.
+ the memory will be freed.
- <STRONG>putp</STRONG> calls <STRONG>tputs</STRONG>, returning the same error-codes.
+ The formatting functions <STRONG>tparm</STRONG> and <STRONG>tiparm</STRONG> extend the storage allocated
+ by <STRONG>setupterm</STRONG> as follows.
- <STRONG>restartterm</STRONG>
- returns an error if the associated call to <STRONG>setupterm</STRONG> returns an
- error.
+ <STRONG>o</STRONG> They add the "static" <EM>terminfo</EM> variables [a-z]. Before <EM>ncurses</EM>
+ 6.3, those were shared by all screens. With <EM>ncurses</EM> 6.3, those are
+ allocated per screen. See <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
- <STRONG>setupterm</STRONG>
- returns an error if it cannot allocate enough memory, or create
- the initial windows (stdscr, curscr, newscr). Other error con-
- ditions are documented above.
+ <STRONG>o</STRONG> To improve performance, <EM>ncurses</EM> 6.3 caches the result of analyzing
+ <EM>terminfo</EM> strings for their parameter types. That is stored as a
+ binary tree referenced from the <EM>TERMINAL</EM> structure.
- <STRONG>tputs</STRONG>
- returns an error if the string parameter is null. It does not
- detect I/O errors: X/Open states that <STRONG>tputs</STRONG> ignores the return
- value of the output function <EM>putc</EM>.
-
-
-</PRE><H3><a name="h3-Compatibility-macros">Compatibility macros</a></H3><PRE>
- This implementation provides a few macros for compatibility with sys-
- tems before SVr4 (see <STRONG>HISTORY</STRONG>). Those include <STRONG>crmode</STRONG>, <STRONG>fixterm</STRONG>,
- <STRONG>gettmode</STRONG>, <STRONG>nocrmode</STRONG>, <STRONG>resetterm</STRONG>, <STRONG>saveterm</STRONG>, and <STRONG>setterm</STRONG>.
-
- In SVr4, those are found in <STRONG>&lt;curses.h&gt;</STRONG>, but except for <STRONG>setterm</STRONG>, are
- likewise macros. The one function, <STRONG>setterm</STRONG>, is mentioned in the manual
- page. The manual page notes that the <STRONG>setterm</STRONG> routine was replaced by
- <STRONG>setupterm</STRONG>, stating that the call:
+ The higher-level <STRONG>initscr</STRONG> and <STRONG>newterm</STRONG> functions use <STRONG>setupterm</STRONG>. Normally
+ they do not free this memory, but it is possible to do that using the
+ <STRONG><A HREF="curs_initscr.3x.html">delscreen(3x)</A></STRONG> function.
- <STRONG>setupterm(</STRONG><EM>term</EM><STRONG>,</STRONG> <STRONG>1,</STRONG> <STRONG>(int</STRONG> <STRONG>*)0)</STRONG>
- provides the same functionality as <STRONG>setterm(</STRONG><EM>term</EM><STRONG>)</STRONG>, and is not recommend-
- ed for new programs. This implementation provides each of those sym-
- bols as macros for BSD compatibility,
+</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
+ X/Open Curses defines no failure conditions. In <EM>ncurses</EM>,
+ <STRONG>del_curtem</STRONG>
+ fails if its terminal parameter is null.
-</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
- SVr2 introduced the terminfo feature. Its programming manual mentioned
- these low-level functions:
+ <STRONG>putp</STRONG> calls <STRONG>tputs</STRONG>, returning the same error codes.
- <STRONG>Function</STRONG> <STRONG>Description</STRONG>
- ------------------------------------------------------------
-
- fixterm restore tty to "in curses" state
- gettmode establish current tty modes
- mvcur low level cursor motion
- putp utility function that uses <STRONG>tputs</STRONG> to send char-
- acters via <STRONG>putchar</STRONG>.
- resetterm set tty modes to "out of curses" state
- resetty reset tty flags to stored value
- saveterm save current modes as "in curses" state
- savetty store current tty flags
- setterm establish terminal with given type
- setupterm establish terminal with given type
- tparm instantiate a string expression with parameters
- tputs apply padding information to a string
- vidattr like <STRONG>vidputs</STRONG>, but outputs through <STRONG>putchar</STRONG>
- vidputs output a string to put terminal in a specified
- video attribute mode
-
- The programming manual also mentioned functions provided for termcap
- compatibility (commenting that they "may go away at a later date"):
+ <STRONG>restartterm</STRONG>
+ fails if the associated call to <STRONG>setupterm</STRONG> returns an error.
- <STRONG>Function</STRONG> <STRONG>Description</STRONG>
- ------------------------------------------------
- tgetent look up termcap entry for given <EM>name</EM>
- tgetflag get boolean entry for given <EM>id</EM>
- tgetnum get numeric entry for given <EM>id</EM>
- tgetstr get string entry for given <EM>id</EM>
- tgoto apply parameters to given capability
- tputs apply padding to capability, calling
- a function to put characters
-
- Early terminfo programs obtained capability values from the <STRONG>TERMINAL</STRONG>
- structure initialized by <STRONG>setupterm</STRONG>.
+ <STRONG>setupterm</STRONG>
+ fails if it cannot allocate enough memory, or create the initial
+ windows (<STRONG>stdscr</STRONG>, <STRONG>curscr</STRONG>, and <STRONG>newscr</STRONG>) Other error conditions are
+ documented above.
- SVr3 extended terminfo by adding functions to retrieve capability val-
- ues (like the termcap interface), and reusing tgoto and tputs:
+ <STRONG>tparm</STRONG>
+ returns a null pointer if the capability would require unexpected
+ parameters; that is, too many, too few, or incorrect types
+ (strings where integers are expected, or vice versa).
- <STRONG>Function</STRONG> <STRONG>Description</STRONG>
- -------------------------------------------
- tigetflag get boolean entry for given <EM>id</EM>
- tigetnum get numeric entry for given <EM>id</EM>
- tigetstr get string entry for given <EM>id</EM>
-
- SVr3 also replaced several of the SVr2 terminfo functions which had no
- counterpart in the termcap interface, documenting them as obsolete:
+ <STRONG>tputs</STRONG>
+ fails if the string parameter is null. It does not detect I/O
+ errors: X/Open Curses states that <STRONG>tputs</STRONG> ignores the return value
+ of the output function <EM>putc</EM>.
- <STRONG>Function</STRONG> <STRONG>Replaced</STRONG> <STRONG>by</STRONG>
- -----------------------------
- crmode cbreak
- fixterm reset_prog_mode
- gettmode N/A
- nocrmode nocbreak
- resetterm reset_shell_mode
- saveterm def_prog_mode
- setterm setupterm
- SVr3 kept the <STRONG>mvcur</STRONG>, <STRONG>vidattr</STRONG> and <STRONG>vidputs</STRONG> functions, along with <STRONG>putp</STRONG>,
- <STRONG>tparm</STRONG> and <STRONG>tputs</STRONG>. The latter were needed to support padding, and han-
- dling functions such as <STRONG>vidattr</STRONG> (which used more than the two parame-
- ters supported by <STRONG>tgoto</STRONG>).
+</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
+ The <STRONG>vid_attr</STRONG> function in <EM>ncurses</EM> is a special case. It was originally
+ implemented based on a draft of X/Open Curses, as a macro, before other
+ parts of the <EM>ncurses</EM> wide-character API were developed, and unlike the
+ other wide-character functions, is also provided in the non-wide-
+ character configuration.
- SVr3 introduced the functions for switching between terminal descrip-
- tions, e.g., <STRONG>set_curterm</STRONG>. The various global variables such as <STRONG>bool-</STRONG>
- <STRONG>names</STRONG> were mentioned in the programming manual at this point.
- SVr4 added the <STRONG>vid_attr</STRONG> and <STRONG>vid_puts</STRONG> functions.
+</PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
+ The functions marked as extensions were designed for <EM>ncurses</EM>, and are
+ not found in SVr4 <EM>curses</EM>, 4.4BSD <EM>curses</EM>, or any other previous <EM>curses</EM>
+ implementation.
- There are other low-level functions declared in the curses header files
- on Unix systems, but none were documented. The functions marked "obso-
- lete" remained in use by the Unix <STRONG>vi</STRONG> editor.
+ <EM>ncurses</EM> allows <EM>opts</EM> to be a pointer to <EM>int</EM>, which overrides the <EM>pair</EM>
+ (<EM>short</EM>) argument.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
+ <STRONG>setterm</STRONG> is not described by X/Open and must be considered non-portable.
+ All other functions are as described by X/Open.
-</PRE><H3><a name="h3-Legacy-functions">Legacy functions</a></H3><PRE>
- X/Open notes that <STRONG>vidattr</STRONG> and <STRONG>vidputs</STRONG> may be macros.
- The function <STRONG>setterm</STRONG> is not described by X/Open and must be considered
- non-portable. All other functions are as described by X/Open.
+</PRE><H3><a name="h3-Compatibility-Macros">Compatibility Macros</a></H3><PRE>
+ This implementation provides a few macros for compatibility with
+ systems before SVr4 (see section "HISTORY" below). They include
+ <STRONG>Bcrmode</STRONG>, <STRONG>Bfixterm</STRONG>, <STRONG>Bgettmode</STRONG>, <STRONG>Bnocrmode</STRONG>, <STRONG>Bresetterm</STRONG>, <STRONG>Bsaveterm</STRONG>, and
+ <STRONG>Bsetterm</STRONG>.
+
+ In SVr4, these are found in <EM>curses.h</EM>, but except for <STRONG>setterm</STRONG>, are
+ likewise macros. The one function, <STRONG>setterm</STRONG>, is mentioned in the manual
+ page. It further notes that <STRONG>setterm</STRONG> was replaced by <STRONG>setupterm</STRONG>, stating
+ that the call
+ setupterm(<EM>term</EM>, 1, (int *)0)
+ provides the same functionality as <STRONG>setterm(</STRONG><EM>term</EM><STRONG>)</STRONG>, discouraging the
+ latter for new programs. <EM>ncurses</EM> implements each of these symbols as
+ macros for BSD <EM>curses</EM> compatibility.
-</PRE><H3><a name="h3-Legacy-data">Legacy data</a></H3><PRE>
- <STRONG>setupterm</STRONG> copies the terminal name to the array <STRONG>ttytype</STRONG>. This is not
+</PRE><H3><a name="h3-Legacy-Data">Legacy Data</a></H3><PRE>
+ <STRONG>setupterm</STRONG> copies the terminal name to the array <STRONG>ttytype</STRONG>. This is not
part of X/Open Curses, but is assumed by some applications.
- Other implementions may not declare the capability name arrays. Some
- provide them without declaring them. X/Open does not specify them.
+ Other implementions may not declare the capability name arrays. Some
+ provide them without declaring them. X/Open Curses does not specify
+ them.
- Extended terminal capability names, e.g., as defined by <STRONG>tic</STRONG> <STRONG>-x</STRONG>, are not
+ Extended terminal capability names, as defined by "<STRONG>tic</STRONG> <STRONG>-x</STRONG>", are not
stored in the arrays described here.
-</PRE><H3><a name="h3-Output-buffering">Output buffering</a></H3><PRE>
- Older versions of <STRONG>ncurses</STRONG> assumed that the file descriptor passed to
+</PRE><H3><a name="h3-Output-Buffering">Output Buffering</a></H3><PRE>
+ Older versions of <EM>ncurses</EM> assumed that the file descriptor passed to
<STRONG>setupterm</STRONG> from <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG> uses buffered I/O, and would write to
- the corresponding stream. In addition to the limitation that the ter-
- minal was left in block-buffered mode on exit (like System V curses),
- it was problematic because <STRONG>ncurses</STRONG> did not allow a reliable way to
- cleanup on receiving SIGTSTP.
+ the corresponding stream. In addition to the limitation that the
+ terminal was left in block-buffered mode on exit (like System V
+ <EM>curses</EM>), it was problematic because <EM>ncurses</EM> did not allow a reliable
+ way to clean up on receiving <STRONG>SIGTSTP</STRONG>.
The current version (ncurses6) uses output buffers managed directly by
- <STRONG>ncurses</STRONG>. Some of the low-level functions described in this manual page
- write to the standard output. They are not signal-safe. The high-lev-
- el functions in <STRONG>ncurses</STRONG> use alternate versions of these functions using
- the more reliable buffering scheme.
-
-
-</PRE><H3><a name="h3-Function-prototypes">Function prototypes</a></H3><PRE>
- The X/Open Curses prototypes are based on the SVr4 curses header decla-
- rations, which were defined at the same time the C language was first
- standardized in the late 1980s.
-
- <STRONG>o</STRONG> X/Open Curses uses <STRONG>const</STRONG> less effectively than a later design
- might, in some cases applying it needlessly to values are already
- constant, and in most cases overlooking parameters which normally
- would use <STRONG>const</STRONG>. Using constant parameters for functions which do
- not use <STRONG>const</STRONG> may prevent the program from compiling. On the other
- hand, <EM>writable</EM> <EM>strings</EM> are an obsolescent feature.
-
- As an extension, this implementation can be configured to change
- the function prototypes to use the <STRONG>const</STRONG> keyword. The ncurses ABI
+ <EM>ncurses</EM>. Some of the low-level functions described in this manual page
+ write to the standard output. They are not signal-safe. The high-
+ level functions in <EM>ncurses</EM> employ alternate versions of these functions
+ using the more reliable buffering scheme.
+
+
+</PRE><H3><a name="h3-Function-Prototypes">Function Prototypes</a></H3><PRE>
+ The X/Open Curses prototypes are based on the SVr4 <EM>curses</EM> header
+ declarations, which were defined at the same time the C language was
+ first standardized in the late 1980s.
+
+ <STRONG>o</STRONG> X/Open Curses uses <EM>const</EM> less effectively than a later design
+ might, sometimes applying it needlessly to values that are already
+ constant, and in most cases overlooking parameters that normally
+ would use <EM>const</EM>. Passing <EM>const</EM>-qualified parameters to functions
+ that do not declare them <EM>const</EM> may prevent the program from
+ compiling. On the other hand, "writable strings" are an
+ obsolescent feature.
+
+ As an extension, this implementation can be configured to change
+ the function prototypes to use the <EM>const</EM> keyword. The <EM>ncurses</EM> ABI
6 enables this feature by default.
- <STRONG>o</STRONG> X/Open Curses prototypes <STRONG>tparm</STRONG> with a fixed number of parameters,
+ <STRONG>o</STRONG> X/Open Curses prototypes <STRONG>tparm</STRONG> with a fixed number of parameters,
rather than a variable argument list.
- This implementation uses a variable argument list, but can be con-
- figured to use the fixed-parameter list. Portable applications
- should provide 9 parameters after the format; zeroes are fine for
- this purpose.
+ This implementation uses a variable argument list, but can be
+ configured to use the fixed-parameter list. Portable applications
+ should provide nine parameters after the format; zeroes are fine
+ for this purpose.
- In response to review comments by Thomas E. Dickey, X/Open Curses
+ In response to review comments by Thomas E. Dickey, X/Open Curses
Issue 7 proposed the <STRONG>tiparm</STRONG> function in mid-2009.
+ While <STRONG>tiparm</STRONG> is always provided in <EM>ncurses</EM>, the older form is only
+ available as a build-time configuration option. If not specially
+ configured, <STRONG>tparm</STRONG> is the same as <STRONG>tiparm</STRONG>.
+
+ Both forms of <STRONG>tparm</STRONG> have drawbacks:
+
+ <STRONG>o</STRONG> Most of the calls to <STRONG>tparm</STRONG> use only one or two parameters. Passing
+ nine on each call is awkward.
-</PRE><H3><a name="h3-Special-TERM-treatment">Special TERM treatment</a></H3><PRE>
- If configured to use the terminal-driver, e.g., for the MinGW port,
+ Using <EM>long</EM> for the numeric parameter type is a workaround to make
+ the parameter use the same amount of stack as a pointer. That
+ approach dates back to the mid-1980s, before C was standardized.
+ Since then, there is a standard (and pointers are not required to
+ fit in a <EM>long</EM>).
- <STRONG>o</STRONG> <STRONG>setupterm</STRONG> interprets a missing/empty TERM variable as the special
+ <STRONG>o</STRONG> Providing the right number of parameters for a variadic function
+ such as <STRONG>tiparm</STRONG> can be a problem, in particular for string
+ parameters. However, only a few <EM>terminfo</EM> capabilities use string
+ parameters (for instance, the ones used for programmable function
+ keys).
+
+ The <EM>ncurses</EM> library checks usage of these capabilities, and returns
+ an error if the capability mishandles string parameters. But it
+ cannot check if a calling program provides strings in the right
+ places for the <STRONG>tparm</STRONG> calls.
+
+ The <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG> program checks its use of these capabilities with a
+ table, so that it calls <STRONG>tparm</STRONG> correctly.
+
+ <STRONG>Special</STRONG> <EM>TERM</EM> <STRONG>treatment</STRONG>
+ If configured to use the terminal driver, as with the MinGW port,
+
+ <STRONG>o</STRONG> <STRONG>setupterm</STRONG> interprets a missing/empty <EM>TERM</EM> variable as the special
value "unknown".
+ SVr4 <EM>curses</EM> uses the special value "dumb".
+
+ The difference between the two is that the former uses the
+ <STRONG>generic_type</STRONG> (<STRONG>gn</STRONG>) <EM>terminfo</EM> capability, while the latter does not.
+ A generic terminal is unsuitable for full-screen applications.
+
<STRONG>o</STRONG> <STRONG>setupterm</STRONG> allows explicit use of the the windows console driver by
- checking if $TERM is set to "#win32con" or an abbreviation of that
+ checking if <STRONG>$TERM</STRONG> is set to "#win32con" or an abbreviation of that
string.
-</PRE><H3><a name="h3-Other-portability-issues">Other portability issues</a></H3><PRE>
- In System V Release 4, <STRONG>set_curterm</STRONG> has an <STRONG>int</STRONG> return type and returns
- <STRONG>OK</STRONG> or <STRONG>ERR</STRONG>. We have chosen to implement the X/Open Curses semantics.
+</PRE><H3><a name="h3-Other-Portability-Issues">Other Portability Issues</a></H3><PRE>
+ In SVr4, <STRONG>set_curterm</STRONG> returns an <EM>int</EM>, <STRONG>OK</STRONG> or <STRONG>ERR</STRONG>. We have chosen to
+ implement the X/Open Curses semantics.
+
+ In SVr4, the third argument of <STRONG>tputs</STRONG> has the type "<STRONG>int</STRONG> <STRONG>(*putc)(char)</STRONG>".
- In System V Release 4, the third argument of <STRONG>tputs</STRONG> has the type <STRONG>int</STRONG>
- <STRONG>(*putc)(char)</STRONG>.
+ At least one implementation of X/Open Curses (Solaris) returns a value
+ other than <STRONG>OK</STRONG> or <STRONG>ERR</STRONG> from <STRONG>tputs</STRONG>. It instead returns the length of the
+ string, and does no error checking.
- At least one implementation of X/Open Curses (Solaris) returns a value
- other than <STRONG>OK</STRONG>/<STRONG>ERR</STRONG> from <STRONG>tputs</STRONG>. That returns the length of the string,
- and does no error-checking.
+ X/Open Curses notes that after calling <STRONG>mvcur</STRONG>, the <EM>curses</EM> state may not
+ match the actual terminal state, and that an application should touch
+ and refresh the window before resuming normal <EM>curses</EM> calls. Both
+ <EM>ncurses</EM> and SVr4 <EM>curses</EM> implement <STRONG>mvcur</STRONG> using the <EM>SCREEN</EM> data allocated
+ in either <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG>. So though it is documented as a <EM>terminfo</EM>
+ function, <STRONG>mvcur</STRONG> is really a <EM>curses</EM> function that is not well specified.
- X/Open notes that after calling <STRONG>mvcur</STRONG>, the curses state may not match
- the actual terminal state, and that an application should touch and re-
- fresh the window before resuming normal curses calls. Both <STRONG>ncurses</STRONG> and
- System V Release 4 curses implement <STRONG>mvcur</STRONG> using the SCREEN data allo-
- cated in either <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG>. So though it is documented as a
- terminfo function, <STRONG>mvcur</STRONG> is really a curses function which is not well
- specified.
+ X/Open Curses states that the old location must be given for <STRONG>mvcur</STRONG> to
+ accommodate terminals that lack absolute cursor positioning. <EM>ncurses</EM>
+ allows the caller to use -1 for either or both old coordinates. The -1
+ tells <EM>ncurses</EM> that the old location is unknown, and that it must use
+ only absolute motion, as with the <STRONG>cursor_address</STRONG> (<STRONG>cup</STRONG>) capability,
+ rather than the least costly combination of absolute and relative
+ motion.
- X/Open states that the old location must be given for <STRONG>mvcur</STRONG>. This im-
- plementation allows the caller to use -1's for the old ordinates. In
- that case, the old location is unknown.
+
+</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
+ SVr2 (1984) introduced the <EM>terminfo</EM> feature. Its programming manual
+ mentioned the following low-level functions.
+
+ <STRONG>Function</STRONG> <STRONG>Description</STRONG>
+ ------------------------------------------------------------------------
+ <STRONG>fixterm</STRONG> restore terminal to "in <EM>curses</EM>" state
+ <STRONG>gettmode</STRONG> establish current terminal modes
+ <STRONG>mvcur</STRONG> low level cursor motion
+ <STRONG>putp</STRONG> use <STRONG>tputs</STRONG> to send characters via <EM>putchar</EM>
+ <STRONG>resetterm</STRONG> set terminal modes to "out of <EM>curses</EM>" state
+
+ <STRONG>resetty</STRONG> reset terminal flags to stored value
+ <STRONG>saveterm</STRONG> save current modes as "in <EM>curses</EM>" state
+ <STRONG>savetty</STRONG> store current terminal flags
+ <STRONG>setterm</STRONG> establish terminal with given type
+ <STRONG>setupterm</STRONG> establish terminal with given type
+ <STRONG>tparm</STRONG> interpolate parameters into string capability
+ <STRONG>tputs</STRONG> apply padding information to a string
+ <STRONG>vidattr</STRONG> like <STRONG>vidputs</STRONG>, but output through <EM>putchar</EM>
+ <STRONG>vidputs</STRONG> write string to terminal, applying specified attributes
+
+ The programming manual also mentioned functions provided for <EM>termcap</EM>
+ compatibility (commenting that they "may go away at a later date").
+
+ <STRONG>Function</STRONG> <STRONG>Description</STRONG>
+ ------------------------------------------------------------------------
+ <STRONG>tgetent</STRONG> look up <EM>termcap</EM> entry for given <EM>name</EM>
+ <STRONG>tgetflag</STRONG> get Boolean entry for given <EM>id</EM>
+ <STRONG>tgetnum</STRONG> get numeric entry for given <EM>id</EM>
+ <STRONG>tgetstr</STRONG> get string entry for given <EM>id</EM>
+ <STRONG>tgoto</STRONG> apply parameters to given capability
+ <STRONG>tputs</STRONG> write characters via a function parameter, applying padding
+
+ Early <EM>terminfo</EM> programs obtained capability values from the <EM>TERMINAL</EM>
+ structure initialized by <STRONG>setupterm</STRONG>.
+
+ SVr3 (1987) extended <EM>terminfo</EM> by adding functions to retrieve
+ capability values (like the <EM>termcap</EM> interface), and reusing <STRONG>tgoto</STRONG> and
+ <STRONG>tputs</STRONG>.
+
+ <STRONG>Function</STRONG> <STRONG>Description</STRONG>
+ ------------------------------------------------------------------------
+ <STRONG>tigetflag</STRONG> get Boolean entry for given <EM>id</EM>
+ <STRONG>tigetnum</STRONG> get numeric entry for given <EM>id</EM>
+ <STRONG>tigetstr</STRONG> get string entry for given <EM>id</EM>
+
+ SVr3 also replaced several of the SVr2 <EM>terminfo</EM> functions that had no
+ counterpart in the <EM>termcap</EM> interface, documenting them as obsolete.
+
+ <STRONG>Function</STRONG> <STRONG>Replaced</STRONG> <STRONG>by</STRONG>
+ ------------------------------------------------------------------------
+ crmode cbreak
+ fixterm reset_prog_mode
+ gettmode <EM>n/a</EM>
+ nocrmode nocbreak
+ resetterm reset_shell_mode
+ saveterm def_prog_mode
+ setterm setupterm
+
+ SVr3 kept the <STRONG>mvcur</STRONG>, <STRONG>vidattr</STRONG>, and <STRONG>vidputs</STRONG> functions, along with <STRONG>putp</STRONG>,
+ <STRONG>tparm</STRONG>, and <STRONG>tputs</STRONG>. The latter were needed to support padding, and to
+ handle capabilities accessed by functions such as <STRONG>vidattr</STRONG> (which used
+ more than the two parameters supported by <STRONG>tgoto</STRONG>).
+
+ SVr3 introduced the functions for switching between terminal
+ descriptions; for example, <STRONG>set_curterm</STRONG>. Some changes reflected
+ incremental improvements to the SVr2 library.
+
+ <STRONG>o</STRONG> The <EM>TERMINAL</EM> type definition was introduced in SVr3.01, for the
+ <EM>term</EM> structure provided in SVr2.
+
+ <STRONG>o</STRONG> Various global variables such as <STRONG>boolnames</STRONG> were mentioned in the
+ programming manual at this point, though the variables had been
+ provided in SVr2.
+
+ SVr4 (1989) added the <STRONG>vid_attr</STRONG> and <STRONG>vid_puts</STRONG> functions.
+
+ Other low-level functions are declared in the <EM>curses</EM> header files of
+ Unix systems, but none are documented. Those noted as "obsolete" by
+ SVr3 remained in use by System V's <STRONG>vi(1)</STRONG> editor.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>, <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>,
- <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>, <STRONG>putc(3)</STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>, <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>,
+ <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, <STRONG>putc(3)</STRONG>, <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>,
+ <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
- <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
+ncurses 6.5 2024-04-13 <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -583,24 +702,22 @@
<li><a href="#h3-Output-Functions">Output Functions</a></li>
<li><a href="#h3-Terminal-Capability-Functions">Terminal Capability Functions</a></li>
<li><a href="#h3-Terminal-Capability-Names">Terminal Capability Names</a></li>
+<li><a href="#h3-Releasing-Memory">Releasing Memory</a></li>
</ul>
</li>
-<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a>
-<ul>
-<li><a href="#h3-Compatibility-macros">Compatibility macros</a></li>
-</ul>
-</li>
-<li><a href="#h2-HISTORY">HISTORY</a></li>
+<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
+<li><a href="#h2-NOTES">NOTES</a></li>
+<li><a href="#h2-EXTENSIONS">EXTENSIONS</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a>
<ul>
-<li><a href="#h3-Legacy-functions">Legacy functions</a></li>
-<li><a href="#h3-Legacy-data">Legacy data</a></li>
-<li><a href="#h3-Output-buffering">Output buffering</a></li>
-<li><a href="#h3-Function-prototypes">Function prototypes</a></li>
-<li><a href="#h3-Special-TERM-treatment">Special TERM treatment</a></li>
-<li><a href="#h3-Other-portability-issues">Other portability issues</a></li>
+<li><a href="#h3-Compatibility-Macros">Compatibility Macros</a></li>
+<li><a href="#h3-Legacy-Data">Legacy Data</a></li>
+<li><a href="#h3-Output-Buffering">Output Buffering</a></li>
+<li><a href="#h3-Function-Prototypes">Function Prototypes</a></li>
+<li><a href="#h3-Other-Portability-Issues">Other Portability Issues</a></li>
</ul>
</li>
+<li><a href="#h2-HISTORY">HISTORY</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
diff --git a/doc/html/man/curs_threads.3x.html b/doc/html/man/curs_threads.3x.html
index 51a249bc642f..8681a8fe8305 100644
--- a/doc/html/man/curs_threads.3x.html
+++ b/doc/html/man/curs_threads.3x.html
@@ -1,6 +1,7 @@
-<!--
+<!--
+ * t
****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2021-2023,2024 Thomas E. Dickey *
* Copyright 2008-2015,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,34 +28,35 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_threads.3x,v 1.27 2020/12/30 18:28:51 tom Exp @
- * ***************************************************************************
- * ***************************************************************************
+ * @Id: curs_threads.3x,v 1.56 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_threads 3x</TITLE>
+<TITLE>curs_threads 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_threads 3x</H1>
+<H1 class="no-header">curs_threads 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG> <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>
+<STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>curs_threads</STRONG> - <STRONG>curses</STRONG> thread support
+ <EM>NCURSES</EM><STRONG>_</STRONG><EM>WINDOW</EM><STRONG>_</STRONG><EM>CB</EM>, <EM>NCURSES</EM><STRONG>_</STRONG><EM>SCREEN</EM><STRONG>_</STRONG><EM>CB</EM>, <STRONG>get_escdelay</STRONG>, <STRONG>set_escdelay</STRONG>,
+ <STRONG>set_tabsize</STRONG>, <STRONG>use_screen</STRONG>, <STRONG>use_window</STRONG> - <EM>curses</EM> support for multi-threaded
+ applications
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
<STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
+ <EM>/*</EM> <EM>data</EM> <EM>types</EM> <EM>*/</EM>
<STRONG>typedef</STRONG> <STRONG>int</STRONG> <STRONG>(*NCURSES_WINDOW_CB)(WINDOW</STRONG> <STRONG>*,</STRONG> <STRONG>void</STRONG> <STRONG>*);</STRONG>
<STRONG>typedef</STRONG> <STRONG>int</STRONG> <STRONG>(*NCURSES_SCREEN_CB)(SCREEN</STRONG> <STRONG>*,</STRONG> <STRONG>void</STRONG> <STRONG>*);</STRONG>
@@ -67,548 +69,555 @@
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- This implementation can be configured to provide rudimentary support
- for multi-threaded applications. This makes a different set of li-
- braries, e.g., <EM>libncursest</EM> since the binary interfaces are different.
-
- Rather than modify the interfaces to pass a thread specifier to each
- function, it adds a few functions which can be used in any configura-
- tion which hide the mutex's needed to prevent concurrent use of the
- global variables when configured for threading.
-
- In addition to forcing access to members of the <STRONG>WINDOW</STRONG> structure to be
- via functions (see <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>), it makes functions of the common
- global variables, e.g., COLORS, COLOR_PAIRS, COLS, ESCDELAY, LINES,
- TABSIZE curscr, newscr and ttytype. Those variables are maintained as
- read-only values, stored in the <STRONG>SCREEN</STRONG> structure.
-
- Even this is not enough to make a thread-safe application using curses.
- A multi-threaded application would be expected to have threads updating
- separate windows (within the same device), or updating on separate
- screens (on different devices). Also, a few of the global variables
- are considered writable by some applications. The functions described
- here address these special situations.
-
- The ESCDELAY and TABSIZE global variables are modified by some applica-
- tions. To modify them in any configuration, use the <STRONG>set_escdelay</STRONG> or
- <STRONG>set_tabsize</STRONG> functions. Other global variables are not modifiable.
-
- The <STRONG>get_escdelay</STRONG> function returns the value for ESCDELAY.
-
- The <STRONG>use_window</STRONG> and <STRONG>use_screen</STRONG> functions provide coarse granularity mu-
- texes for their respective <STRONG>WINDOW</STRONG> and <STRONG>SCREEN</STRONG> parameters, and call a us-
- er-supplied function, passing it a <EM>data</EM> parameter, and returning the
- value from the user-supplied function to the application.
-
-
-</PRE><H3><a name="h3-USAGE">USAGE</a></H3><PRE>
- All of the ncurses library functions assume that the locale is not al-
- tered during operation. In addition, they use data which is maintained
- within a hierarchy of scopes.
-
- <STRONG>o</STRONG> global data, e.g., used in the low-level terminfo or termcap in-
- terfaces.
-
- <STRONG>o</STRONG> terminal data, e.g., associated with a call to <EM>set</EM><STRONG>_</STRONG><EM>curterm</EM>. The
- terminal data are initialized when screens are created.
-
- <STRONG>o</STRONG> screen data, e.g., associated with a call to <EM>newterm</EM> or <EM>initscr</EM>.
-
- <STRONG>o</STRONG> window data, e.g., associated with a call to <EM>newwin</EM> or <EM>subwin</EM>.
- Windows are associated with screens. Pads are not necessarily
- associated with a particular screen.
-
- Most curses applications operate on one or more windows within a
- single screen.
-
- <STRONG>o</STRONG> reentrant, i.e., it uses only the data passed as parameters.
-
- This table lists the scope of data used for each symbol in the ncurses
- library when it is configured to support threading:
-
- Symbol Scope
- -------------------------------------------------------------
- BC global
- COLORS screen (readonly)
- COLOR_PAIR reentrant
- COLOR_PAIRS screen (readonly)
- COLS screen (readonly)
- ESCDELAY screen (readonly, see <EM>set</EM><STRONG>_</STRONG><EM>escdelay</EM>)
- LINES screen (readonly)
- PAIR_NUMBER reentrant
- PC global
- SP global
- TABSIZE screen (readonly)
- UP global
- acs_map screen (readonly)
- add_wch window (stdscr)
- add_wchnstr window (stdscr)
- add_wchstr window (stdscr)
- addch window (stdscr)
- addchnstr window (stdscr)
- addchstr window (stdscr)
- addnstr window (stdscr)
- addnwstr window (stdscr)
- addstr window (stdscr)
- addwstr window (stdscr)
- assume_default_colors screen
- attr_get window (stdscr)
- attr_off window (stdscr)
- attr_on window (stdscr)
- attr_set window (stdscr)
- attroff window (stdscr)
- attron window (stdscr)
- attrset window (stdscr)
- baudrate screen
- beep screen
- bkgd window (stdscr)
- bkgdset window (stdscr)
- bkgrnd window (stdscr)
- bkgrndset window (stdscr)
- boolcodes global (readonly)
- boolfnames global (readonly)
- boolnames global (readonly)
- border window (stdscr)
- border_set window (stdscr)
- box window (stdscr)
- box_set window (stdscr)
- can_change_color terminal
- cbreak screen
- chgat window (stdscr)
- clear window (stdscr)
- clearok window
- clrtobot window (stdscr)
- clrtoeol window (stdscr)
- color_content screen
-
- color_set window (stdscr)
- copywin window locks(source, target)
- cur_term terminal
- curs_set screen
- curscr screen (readonly)
- curses_version global (readonly)
- def_prog_mode terminal
- def_shell_mode terminal
- define_key screen
- del_curterm screen
- delay_output screen
- delch window (stdscr)
- deleteln window (stdscr)
- delscreen global locks(screenlist, screen)
- delwin global locks(windowlist)
- derwin screen
- doupdate screen
- dupwin screen locks(window)
- echo screen
- echo_wchar window (stdscr)
- echochar window (stdscr)
- endwin screen
- erase window (stdscr)
- erasechar window (stdscr)
- erasewchar window (stdscr)
- filter global
- flash terminal
- flushinp screen
- get_wch screen (input-operation)
- get_wstr screen (input-operation)
- getattrs window
- getbegx window
- getbegy window
- getbkgd window
- getbkgrnd window
- getcchar reentrant
- getch screen (input-operation)
- getcurx window
- getcury window
- getmaxx window
- getmaxy window
- getmouse screen (input-operation)
- getn_wstr screen (input-operation)
- getnstr screen (input-operation)
- getparx window
- getpary window
- getstr screen (input-operation)
- getwin screen (input-operation)
- halfdelay screen
- has_colors terminal
- has_ic terminal
- has_il terminal
- has_key screen
- hline window (stdscr)
- hline_set window (stdscr)
- idcok window
- idlok window
- immedok window
- in_wch window (stdscr)
- in_wchnstr window (stdscr)
- in_wchstr window (stdscr)
- inch window (stdscr)
- inchnstr window (stdscr)
- inchstr window (stdscr)
- init_color screen
- init_pair screen
-
- initscr global locks(screenlist)
- innstr window (stdscr)
- innwstr window (stdscr)
- ins_nwstr window (stdscr)
- ins_wch window (stdscr)
- ins_wstr window (stdscr)
- insch window (stdscr)
- insdelln window (stdscr)
- insertln window (stdscr)
- insnstr window (stdscr)
- insstr window (stdscr)
- instr window (stdscr)
- intrflush terminal
- inwstr window (stdscr)
- is_cleared window
- is_idcok window
- is_idlok window
- is_immedok window
- is_keypad window
- is_leaveok window
- is_linetouched window
- is_nodelay window
- is_notimeout window
- is_scrollok window
- is_syncok window
- is_term_resized terminal
- is_wintouched window
- isendwin screen
- key_defined screen
- key_name global (static data)
- keybound screen
- keyname global (static data)
- keyok screen
- keypad window
- killchar terminal
- killwchar terminal
- leaveok window
- longname screen
- mcprint terminal
- meta screen
- mouse_trafo window (stdscr)
- mouseinterval screen
- mousemask screen
- move window (stdscr)
- mvadd_wch window (stdscr)
- mvadd_wchnstr window (stdscr)
- mvadd_wchstr window (stdscr)
- mvaddch window (stdscr)
- mvaddchnstr window (stdscr)
- mvaddchstr window (stdscr)
- mvaddnstr window (stdscr)
- mvaddnwstr window (stdscr)
- mvaddstr window (stdscr)
- mvaddwstr window (stdscr)
- mvchgat window (stdscr)
- mvcur screen
- mvdelch window (stdscr)
- mvderwin window (stdscr)
- mvget_wch screen (input-operation)
- mvget_wstr screen (input-operation)
- mvgetch screen (input-operation)
- mvgetn_wstr screen (input-operation)
- mvgetnstr screen (input-operation)
- mvgetstr screen (input-operation)
- mvhline window (stdscr)
- mvhline_set window (stdscr)
-
- mvin_wch window (stdscr)
- mvin_wchnstr window (stdscr)
- mvin_wchstr window (stdscr)
- mvinch window (stdscr)
- mvinchnstr window (stdscr)
- mvinchstr window (stdscr)
- mvinnstr window (stdscr)
- mvinnwstr window (stdscr)
- mvins_nwstr window (stdscr)
- mvins_wch window (stdscr)
- mvins_wstr window (stdscr)
- mvinsch window (stdscr)
- mvinsnstr window (stdscr)
- mvinsstr window (stdscr)
- mvinstr window (stdscr)
- mvinwstr window (stdscr)
- mvprintw window (stdscr)
- mvscanw screen
- mvvline window (stdscr)
- mvvline_set window (stdscr)
- mvwadd_wch window
- mvwadd_wchnstr window
- mvwadd_wchstr window
- mvwaddch window
- mvwaddchnstr window
- mvwaddchstr window
- mvwaddnstr window
- mvwaddnwstr window
- mvwaddstr window
- mvwaddwstr window
- mvwchgat window
- mvwdelch window
- mvwget_wch screen (input-operation)
- mvwget_wstr screen (input-operation)
- mvwgetch screen (input-operation)
- mvwgetn_wstr screen (input-operation)
- mvwgetnstr screen (input-operation)
- mvwgetstr screen (input-operation)
- mvwhline window
- mvwhline_set window
- mvwin window
- mvwin_wch window
- mvwin_wchnstr window
- mvwin_wchstr window
- mvwinch window
- mvwinchnstr window
- mvwinchstr window
- mvwinnstr window
- mvwinnwstr window
- mvwins_nwstr window
- mvwins_wch window
- mvwins_wstr window
- mvwinsch window
- mvwinsnstr window
- mvwinsstr window
- mvwinstr window
- mvwinwstr window
- mvwprintw window
- mvwscanw screen
- mvwvline window
- mvwvline_set window
- napms reentrant
- newpad global locks(windowlist)
- newscr screen (readonly)
- newterm global locks(screenlist)
- newwin global locks(windowlist)
-
- nl screen
- nocbreak screen
- nodelay window
- noecho screen
- nofilter global
- nonl screen
- noqiflush terminal
- noraw screen
- notimeout window
- numcodes global (readonly)
- numfnames global (readonly)
- numnames global (readonly)
- ospeed global
- overlay window locks(source, target)
- overwrite window locks(source, target)
- pair_content screen
- pecho_wchar screen
- pechochar screen
- pnoutrefresh screen
- prefresh screen
- printw window
- putp global
- putwin window
- qiflush terminal
- raw screen
- redrawwin window
- refresh screen
- reset_prog_mode screen
- reset_shell_mode screen
- resetty terminal
- resize_term screen locks(windowlist)
- resizeterm screen
- restartterm screen
- ripoffline global (static data)
- savetty terminal
- scanw screen
- scr_dump screen
- scr_init screen
- scr_restore screen
- scr_set screen
- scrl window (stdscr)
- scroll window
- scrollok window
- set_curterm screen
- set_escdelay screen
- set_tabsize screen
- set_term global locks(screenlist, screen)
- setcchar reentrant
- setscrreg window (stdscr)
- setupterm global
- slk_attr screen
- slk_attr_off screen
- slk_attr_on screen
- slk_attr_set screen
- slk_attroff screen
- slk_attron screen
- slk_attrset screen
- slk_clear screen
- slk_color screen
- slk_init screen
- slk_label screen
- slk_noutrefresh screen
- slk_refresh screen
- slk_restore screen
- slk_set screen
- slk_touch screen
-
- slk_wset screen
- standend window
- standout window
- start_color screen
- stdscr screen (readonly)
- strcodes global (readonly)
- strfnames global (readonly)
- strnames global (readonly)
- subpad window
- subwin window
- syncok window
- term_attrs screen
- termattrs screen
- termname terminal
- tgetent global
- tgetflag global
- tgetnum global
- tgetstr global
- tgoto global
- tigetflag terminal
- tigetnum terminal
- tigetstr terminal
- timeout window (stdscr)
- touchline window
- touchwin window
- tparm global (static data)
- tputs screen
- trace global (static data)
- ttytype screen (readonly)
- typeahead screen
- unctrl screen
- unget_wch screen (input-operation)
- ungetch screen (input-operation)
- ungetmouse screen (input-operation)
- untouchwin window
- use_default_colors screen
- use_env global (static data)
- use_extended_names global (static data)
- use_legacy_coding screen
- use_screen global locks(screenlist, screen)
- use_window global locks(windowlist, window)
- vid_attr screen
- vid_puts screen
- vidattr screen
- vidputs screen
- vline window (stdscr)
- vline_set window (stdscr)
- vw_printw window
- vw_scanw screen
- vwprintw window
- vwscanw screen
- wadd_wch window
- wadd_wchnstr window
- wadd_wchstr window
- waddch window
- waddchnstr window
- waddchstr window
- waddnstr window
- waddnwstr window
- waddstr window
- waddwstr window
- wattr_get window
- wattr_off window
- wattr_on window
- wattr_set window
- wattroff window
-
- wattron window
- wattrset window
- wbkgd window
- wbkgdset window
- wbkgrnd window
- wbkgrndset window
- wborder window
- wborder_set window
- wchgat window
- wclear window
- wclrtobot window
- wclrtoeol window
- wcolor_set window
- wcursyncup screen (affects window plus parents)
- wdelch window
- wdeleteln window
- wecho_wchar window
- wechochar window
- wenclose window
- werase window
- wget_wch screen (input-operation)
- wget_wstr screen (input-operation)
- wgetbkgrnd window
- wgetch screen (input-operation)
- wgetdelay window
- wgetn_wstr screen (input-operation)
- wgetnstr screen (input-operation)
- wgetparent window
- wgetscrreg window
- wgetstr screen (input-operation)
- whline window
- whline_set window
- win_wch window
- win_wchnstr window
- win_wchstr window
- winch window
- winchnstr window
- winchstr window
- winnstr window
- winnwstr window
- wins_nwstr window
- wins_wch window
- wins_wstr window
- winsch window
- winsdelln window
- winsertln window
- winsnstr window
- winsstr window
- winstr window
- winwstr window
- wmouse_trafo window
- wmove window
- wnoutrefresh screen
- wprintw window
- wredrawln window
- wrefresh screen
- wresize window locks(windowlist)
- wscanw screen
- wscrl window
- wsetscrreg window
- wstandend window
- wstandout window
- wsyncdown screen (affects window plus parents)
- wsyncup screen (affects window plus parents)
- wtimeout window
- wtouchln window
-
- wunctrl global (static data)
- wvline window
- wvline_set window
+ The <EM>ncurses</EM> library can be configured to support multi-threaded
+ applications in a rudimentary way. Such configuration produces a
+ different set of libraries, named <EM>libncursest</EM>, for example, since doing
+ so alters <EM>ncurses</EM>'s application binary interface (ABI).
+
+ Instead of modifying the programming interface (API) to make <EM>ncurses</EM>
+ functions expect an additional argument specifying a thread, the
+ library adds functions, usable in any configuration, that hide the
+ <EM>mutexes</EM> (mutual exclusion locks) needed to prevent concurrent access to
+ variables shared by multiple threads of execution.
+
+ <EM>ncurses</EM> threading support requires the use of functions to access
+ members of the <EM>WINDOW</EM> structure (see <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>). It further
+ makes functions of the common global variables <STRONG>COLORS</STRONG>, <STRONG>COLOR_PAIRS</STRONG>,
+ <STRONG>COLS</STRONG>, <STRONG>ESCDELAY</STRONG>, <STRONG>LINES</STRONG>, <STRONG>TABSIZE</STRONG>, <STRONG>curscr</STRONG>, <STRONG>newscr</STRONG>, and <STRONG>ttytype</STRONG>,
+ maintaining them as as read-only values in the <EM>SCREEN</EM> structure.
+
+ Even this is not enough to make an application using <EM>curses</EM> thread-
+ safe. We would expect a multi-threaded application to have threads
+ updating separate windows (on the same device), and separate screens
+ (on different devices). Further, applications expect a few of the
+ global variables to be writable. The functions described here address
+ these special situations.
+
+ The <STRONG>ESCDELAY</STRONG> and <STRONG>TABSIZE</STRONG> global variables are modified by some
+ applications. To modify them in any configuration, use the
+ <STRONG>set_escdelay</STRONG> or <STRONG>set_tabsize</STRONG> functions. Other global variables are not
+ modifiable. <STRONG>get_escdelay</STRONG> retrieves <STRONG>ESCDELAY</STRONG>'s value.
+
+ The <STRONG>use_window</STRONG> and <STRONG>use_screen</STRONG> functions provide coarse-grained mutexes
+ for their respective <EM>WINDOW</EM> and <EM>SCREEN</EM> parameters; they call a user-
+ supplied function, pass it a <EM>data</EM> parameter, and return the value from
+ the user-supplied function to the application.
+
+
+</PRE><H3><a name="h3-Usage">Usage</a></H3><PRE>
+ All <EM>ncurses</EM> library functions assume that the locale is not altered
+ during operation. In addition, they use data that is maintained within
+ a hierarchy of scopes.
+
+ <STRONG>o</STRONG> global data used in the low-level <EM>terminfo</EM> or <EM>termcap</EM> interfaces
+
+ <STRONG>o</STRONG> terminal data associated with a call to <STRONG><A HREF="curs_terminfo.3x.html">set_curterm(3x)</A></STRONG>
+
+ Terminal data are initialized when screens are created.
+
+ <STRONG>o</STRONG> screen data associated with a call to <STRONG><A HREF="curs_initscr.3x.html">newterm(3x)</A></STRONG> or <STRONG><A HREF="curs_initscr.3x.html">initscr(3x)</A></STRONG>
+
+ <STRONG>o</STRONG> window data associated with a call to <STRONG><A HREF="curs_window.3x.html">newwin(3x)</A></STRONG> or <STRONG><A HREF="subwin.3x.html">subwin(3x)</A></STRONG>
+
+ Windows are associated with screens. Pads are not necessarily
+ associated with any particular screen.
+
+ Most <EM>curses</EM> applications operate on one or more windows within a
+ single screen.
+
+ <STRONG>o</STRONG> reentrant data associated with "pure" functions that alter no
+ shared variables
+
+ The following table lists the scope of each symbol in the <EM>ncurses</EM>
+ library when configured to support multi-threaded applications.
+
+ <STRONG>Symbol</STRONG> <STRONG>Scope</STRONG>
+ ------------------------------------------------------------------------
+ <STRONG>BC</STRONG> global
+ <STRONG>COLORS</STRONG> screen (read-only)
+ <STRONG>COLOR_PAIR</STRONG> reentrant
+ <STRONG>COLOR_PAIRS</STRONG> screen (read-only)
+ <STRONG>COLS</STRONG> screen (read-only)
+ <STRONG>ESCDELAY</STRONG> screen (read-only; see <STRONG>set_escdelay</STRONG>)
+ <STRONG>LINES</STRONG> screen (read-only)
+ <STRONG>PAIR_NUMBER</STRONG> reentrant
+ <STRONG>PC</STRONG> global
+ <STRONG>SP</STRONG> global
+ <STRONG>TABSIZE</STRONG> screen (read-only; see <STRONG>set_tabsize</STRONG>)
+ <STRONG>UP</STRONG> global
+ <STRONG>acs_map</STRONG> screen (read-only)
+ <STRONG>add_wch</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>add_wchnstr</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>add_wchstr</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>addch</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>addchnstr</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>addchstr</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>addnstr</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>addnwstr</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>addstr</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>addwstr</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>assume_default_colors</STRONG> screen
+ <STRONG>attr_get</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>attr_off</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>attr_on</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>attr_set</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>attroff</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>attron</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>attrset</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>baudrate</STRONG> screen
+ <STRONG>beep</STRONG> screen
+ <STRONG>bkgd</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>bkgdset</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>bkgrnd</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>bkgrndset</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>boolcodes</STRONG> global (read-only)
+ <STRONG>boolfnames</STRONG> global (read-only)
+ <STRONG>boolnames</STRONG> global (read-only)
+ <STRONG>border</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>border_set</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>box</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>box_set</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>can_change_color</STRONG> terminal
+ <STRONG>cbreak</STRONG> screen
+
+ <STRONG>chgat</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>clear</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>clearok</STRONG> window
+ <STRONG>clrtobot</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>clrtoeol</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>color_content</STRONG> screen
+ <STRONG>color_set</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>copywin</STRONG> window (locks source, target)
+ <STRONG>cur_term</STRONG> terminal
+ <STRONG>curs_set</STRONG> screen
+ <STRONG>curscr</STRONG> screen (read-only)
+ <STRONG>curses_version</STRONG> global (read-only)
+ <STRONG>def_prog_mode</STRONG> terminal
+ <STRONG>def_shell_mode</STRONG> terminal
+ <STRONG>define_key</STRONG> screen
+ <STRONG>del_curterm</STRONG> screen
+ <STRONG>delay_output</STRONG> screen
+ <STRONG>delch</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>deleteln</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>delscreen</STRONG> global (locks screen list, screen)
+ <STRONG>delwin</STRONG> global (locks window list)
+ <STRONG>derwin</STRONG> screen
+ <STRONG>doupdate</STRONG> screen
+ <STRONG>dupwin</STRONG> screen (locks window)
+ <STRONG>echo</STRONG> screen
+ <STRONG>echo_wchar</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>echochar</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>endwin</STRONG> screen
+ <STRONG>erase</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>erasechar</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>erasewchar</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>filter</STRONG> global
+ <STRONG>flash</STRONG> terminal
+ <STRONG>flushinp</STRONG> screen
+ <STRONG>get_wch</STRONG> screen (input operation)
+ <STRONG>get_wstr</STRONG> screen (input operation)
+ <STRONG>getattrs</STRONG> window
+ <STRONG>getbegx</STRONG> window
+ <STRONG>getbegy</STRONG> window
+ <STRONG>getbkgd</STRONG> window
+ <STRONG>getbkgrnd</STRONG> window
+ <STRONG>getcchar</STRONG> reentrant
+ <STRONG>getch</STRONG> screen (input operation)
+ <STRONG>getcurx</STRONG> window
+ <STRONG>getcury</STRONG> window
+ <STRONG>getmaxx</STRONG> window
+ <STRONG>getmaxy</STRONG> window
+ <STRONG>getmouse</STRONG> screen (input operation)
+ <STRONG>getn_wstr</STRONG> screen (input operation)
+ <STRONG>getnstr</STRONG> screen (input operation)
+ <STRONG>getparx</STRONG> window
+ <STRONG>getpary</STRONG> window
+ <STRONG>getstr</STRONG> screen (input operation)
+ <STRONG>getwin</STRONG> screen (input operation)
+ <STRONG>halfdelay</STRONG> screen
+ <STRONG>has_colors</STRONG> terminal
+ <STRONG>has_ic</STRONG> terminal
+ <STRONG>has_il</STRONG> terminal
+ <STRONG>has_key</STRONG> screen
+ <STRONG>hline</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>hline_set</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>idcok</STRONG> window
+ <STRONG>idlok</STRONG> window
+ <STRONG>immedok</STRONG> window
+ <STRONG>in_wch</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>in_wchnstr</STRONG> window (<STRONG>stdscr</STRONG>)
+
+ <STRONG>in_wchstr</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>inch</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>inchnstr</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>inchstr</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>init_color</STRONG> screen
+ <STRONG>init_pair</STRONG> screen
+ <STRONG>initscr</STRONG> global (locks screen list)
+ <STRONG>innstr</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>innwstr</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>ins_nwstr</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>ins_wch</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>ins_wstr</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>insch</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>insdelln</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>insertln</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>insnstr</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>insstr</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>instr</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>intrflush</STRONG> terminal
+ <STRONG>inwstr</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>is_cleared</STRONG> window
+ <STRONG>is_idcok</STRONG> window
+ <STRONG>is_idlok</STRONG> window
+ <STRONG>is_immedok</STRONG> window
+ <STRONG>is_keypad</STRONG> window
+ <STRONG>is_leaveok</STRONG> window
+ <STRONG>is_linetouched</STRONG> window
+ <STRONG>is_nodelay</STRONG> window
+ <STRONG>is_notimeout</STRONG> window
+ <STRONG>is_scrollok</STRONG> window
+ <STRONG>is_syncok</STRONG> window
+ <STRONG>is_term_resized</STRONG> terminal
+ <STRONG>is_wintouched</STRONG> window
+ <STRONG>isendwin</STRONG> screen
+ <STRONG>key_defined</STRONG> screen
+ <STRONG>key_name</STRONG> global (static data)
+ <STRONG>keybound</STRONG> screen
+ <STRONG>keyname</STRONG> global (static data)
+ <STRONG>keyok</STRONG> screen
+ <STRONG>keypad</STRONG> window
+ <STRONG>killchar</STRONG> terminal
+ <STRONG>killwchar</STRONG> terminal
+ <STRONG>leaveok</STRONG> window
+ <STRONG>longname</STRONG> screen
+ <STRONG>mcprint</STRONG> terminal
+ <STRONG>meta</STRONG> screen
+ <STRONG>mouse_trafo</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>mouseinterval</STRONG> screen
+ <STRONG>mousemask</STRONG> screen
+ <STRONG>move</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>mvadd_wch</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>mvadd_wchnstr</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>mvadd_wchstr</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>mvaddch</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>mvaddchnstr</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>mvaddchstr</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>mvaddnstr</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>mvaddnwstr</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>mvaddstr</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>mvaddwstr</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>mvchgat</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>mvcur</STRONG> screen
+ <STRONG>mvdelch</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>mvderwin</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>mvget_wch</STRONG> screen (input operation)
+ <STRONG>mvget_wstr</STRONG> screen (input operation)
+
+ <STRONG>mvgetch</STRONG> screen (input operation)
+ <STRONG>mvgetn_wstr</STRONG> screen (input operation)
+ <STRONG>mvgetnstr</STRONG> screen (input operation)
+ <STRONG>mvgetstr</STRONG> screen (input operation)
+ <STRONG>mvhline</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>mvhline_set</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>mvin_wch</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>mvin_wchnstr</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>mvin_wchstr</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>mvinch</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>mvinchnstr</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>mvinchstr</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>mvinnstr</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>mvinnwstr</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>mvins_nwstr</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>mvins_wch</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>mvins_wstr</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>mvinsch</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>mvinsnstr</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>mvinsstr</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>mvinstr</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>mvinwstr</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>mvprintw</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>mvscanw</STRONG> screen
+ <STRONG>mvvline</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>mvvline_set</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>mvwadd_wch</STRONG> window
+ <STRONG>mvwadd_wchnstr</STRONG> window
+ <STRONG>mvwadd_wchstr</STRONG> window
+ <STRONG>mvwaddch</STRONG> window
+ <STRONG>mvwaddchnstr</STRONG> window
+ <STRONG>mvwaddchstr</STRONG> window
+ <STRONG>mvwaddnstr</STRONG> window
+ <STRONG>mvwaddnwstr</STRONG> window
+ <STRONG>mvwaddstr</STRONG> window
+ <STRONG>mvwaddwstr</STRONG> window
+ <STRONG>mvwchgat</STRONG> window
+ <STRONG>mvwdelch</STRONG> window
+ <STRONG>mvwget_wch</STRONG> screen (input operation)
+ <STRONG>mvwget_wstr</STRONG> screen (input operation)
+ <STRONG>mvwgetch</STRONG> screen (input operation)
+ <STRONG>mvwgetn_wstr</STRONG> screen (input operation)
+ <STRONG>mvwgetnstr</STRONG> screen (input operation)
+ <STRONG>mvwgetstr</STRONG> screen (input operation)
+ <STRONG>mvwhline</STRONG> window
+ <STRONG>mvwhline_set</STRONG> window
+ <STRONG>mvwin</STRONG> window
+ <STRONG>mvwin_wch</STRONG> window
+ <STRONG>mvwin_wchnstr</STRONG> window
+ <STRONG>mvwin_wchstr</STRONG> window
+ <STRONG>mvwinch</STRONG> window
+ <STRONG>mvwinchnstr</STRONG> window
+ <STRONG>mvwinchstr</STRONG> window
+ <STRONG>mvwinnstr</STRONG> window
+ <STRONG>mvwinnwstr</STRONG> window
+ <STRONG>mvwins_nwstr</STRONG> window
+ <STRONG>mvwins_wch</STRONG> window
+ <STRONG>mvwins_wstr</STRONG> window
+ <STRONG>mvwinsch</STRONG> window
+ <STRONG>mvwinsnstr</STRONG> window
+ <STRONG>mvwinsstr</STRONG> window
+ <STRONG>mvwinstr</STRONG> window
+ <STRONG>mvwinwstr</STRONG> window
+ <STRONG>mvwprintw</STRONG> window
+ <STRONG>mvwscanw</STRONG> screen
+ <STRONG>mvwvline</STRONG> window
+
+ <STRONG>mvwvline_set</STRONG> window
+ <STRONG>napms</STRONG> reentrant
+ <STRONG>newpad</STRONG> global (locks window list)
+ <STRONG>newscr</STRONG> screen (read-only)
+ <STRONG>newterm</STRONG> global (locks screen list)
+ <STRONG>newwin</STRONG> global (locks window list)
+ <STRONG>nl</STRONG> screen
+ <STRONG>nocbreak</STRONG> screen
+ <STRONG>nodelay</STRONG> window
+ <STRONG>noecho</STRONG> screen
+ <STRONG>nofilter</STRONG> global
+ <STRONG>nonl</STRONG> screen
+ <STRONG>noqiflush</STRONG> terminal
+ <STRONG>noraw</STRONG> screen
+ <STRONG>notimeout</STRONG> window
+ <STRONG>numcodes</STRONG> global (read-only)
+ <STRONG>numfnames</STRONG> global (read-only)
+ <STRONG>numnames</STRONG> global (read-only)
+ <STRONG>ospeed</STRONG> global
+ <STRONG>overlay</STRONG> window (locks source, target)
+ <STRONG>overwrite</STRONG> window (locks source, target)
+ <STRONG>pair_content</STRONG> screen
+ <STRONG>pecho_wchar</STRONG> screen
+ <STRONG>pechochar</STRONG> screen
+ <STRONG>pnoutrefresh</STRONG> screen
+ <STRONG>prefresh</STRONG> screen
+ <STRONG>printw</STRONG> window
+ <STRONG>putp</STRONG> global
+ <STRONG>putwin</STRONG> window
+ <STRONG>qiflush</STRONG> terminal
+ <STRONG>raw</STRONG> screen
+ <STRONG>redrawwin</STRONG> window
+ <STRONG>refresh</STRONG> screen
+ <STRONG>reset_prog_mode</STRONG> screen
+ <STRONG>reset_shell_mode</STRONG> screen
+ <STRONG>resetty</STRONG> terminal
+ <STRONG>resize_term</STRONG> screen (locks window list)
+ <STRONG>resizeterm</STRONG> screen
+ <STRONG>restartterm</STRONG> screen
+ <STRONG>ripoffline</STRONG> global (static data)
+ <STRONG>savetty</STRONG> terminal
+ <STRONG>scanw</STRONG> screen
+ <STRONG>scr_dump</STRONG> screen
+ <STRONG>scr_init</STRONG> screen
+ <STRONG>scr_restore</STRONG> screen
+ <STRONG>scr_set</STRONG> screen
+ <STRONG>scrl</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>scroll</STRONG> window
+ <STRONG>scrollok</STRONG> window
+ <STRONG>set_curterm</STRONG> screen
+ <STRONG>set_escdelay</STRONG> screen
+ <STRONG>set_tabsize</STRONG> screen
+ <STRONG>set_term</STRONG> global (locks screen list, screen)
+ <STRONG>setcchar</STRONG> reentrant
+ <STRONG>setscrreg</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>setupterm</STRONG> global
+ <STRONG>slk_attr</STRONG> screen
+ <STRONG>slk_attr_off</STRONG> screen
+ <STRONG>slk_attr_on</STRONG> screen
+ <STRONG>slk_attr_set</STRONG> screen
+ <STRONG>slk_attroff</STRONG> screen
+ <STRONG>slk_attron</STRONG> screen
+ <STRONG>slk_attrset</STRONG> screen
+ <STRONG>slk_clear</STRONG> screen
+ <STRONG>slk_color</STRONG> screen
+ <STRONG>slk_init</STRONG> screen
+
+ <STRONG>slk_label</STRONG> screen
+ <STRONG>slk_noutrefresh</STRONG> screen
+ <STRONG>slk_refresh</STRONG> screen
+ <STRONG>slk_restore</STRONG> screen
+ <STRONG>slk_set</STRONG> screen
+ <STRONG>slk_touch</STRONG> screen
+ <STRONG>slk_wset</STRONG> screen
+ <STRONG>standend</STRONG> window
+ <STRONG>standout</STRONG> window
+ <STRONG>start_color</STRONG> screen
+ <STRONG>stdscr</STRONG> screen (read-only)
+ <STRONG>strcodes</STRONG> global (read-only)
+ <STRONG>strfnames</STRONG> global (read-only)
+ <STRONG>strnames</STRONG> global (read-only)
+ <STRONG>subpad</STRONG> window
+ <STRONG>subwin</STRONG> window
+ <STRONG>syncok</STRONG> window
+ <STRONG>term_attrs</STRONG> screen
+ <STRONG>termattrs</STRONG> screen
+ <STRONG>termname</STRONG> terminal
+ <STRONG>tgetent</STRONG> global
+ <STRONG>tgetflag</STRONG> global
+ <STRONG>tgetnum</STRONG> global
+ <STRONG>tgetstr</STRONG> global
+ <STRONG>tgoto</STRONG> global
+ <STRONG>tigetflag</STRONG> terminal
+ <STRONG>tigetnum</STRONG> terminal
+ <STRONG>tigetstr</STRONG> terminal
+ <STRONG>timeout</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>touchline</STRONG> window
+ <STRONG>touchwin</STRONG> window
+ <STRONG>tparm</STRONG> global (static data)
+ <STRONG>tputs</STRONG> screen
+ <STRONG>trace</STRONG> global (static data)
+ <STRONG>ttytype</STRONG> screen (read-only)
+ <STRONG>typeahead</STRONG> screen
+ <STRONG>unctrl</STRONG> screen
+ <STRONG>unget_wch</STRONG> screen (input operation)
+ <STRONG>ungetch</STRONG> screen (input operation)
+ <STRONG>ungetmouse</STRONG> screen (input operation)
+ <STRONG>untouchwin</STRONG> window
+ <STRONG>use_default_colors</STRONG> screen
+ <STRONG>use_env</STRONG> global (static data)
+ <STRONG>use_extended_names</STRONG> global (static data)
+ <STRONG>use_legacy_coding</STRONG> screen
+ <STRONG>use_screen</STRONG> global (locks screen list, screen)
+ <STRONG>use_window</STRONG> global (locks window list, window)
+ <STRONG>vid_attr</STRONG> screen
+ <STRONG>vid_puts</STRONG> screen
+ <STRONG>vidattr</STRONG> screen
+ <STRONG>vidputs</STRONG> screen
+ <STRONG>vline</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>vline_set</STRONG> window (<STRONG>stdscr</STRONG>)
+ <STRONG>vw_printw</STRONG> window
+ <STRONG>vw_scanw</STRONG> screen
+ <STRONG>vwprintw</STRONG> window
+ <STRONG>vwscanw</STRONG> screen
+ <STRONG>wadd_wch</STRONG> window
+ <STRONG>wadd_wchnstr</STRONG> window
+ <STRONG>wadd_wchstr</STRONG> window
+ <STRONG>waddch</STRONG> window
+ <STRONG>waddchnstr</STRONG> window
+ <STRONG>waddchstr</STRONG> window
+ <STRONG>waddnstr</STRONG> window
+ <STRONG>waddnwstr</STRONG> window
+ <STRONG>waddstr</STRONG> window
+
+ <STRONG>waddwstr</STRONG> window
+ <STRONG>wattr_get</STRONG> window
+ <STRONG>wattr_off</STRONG> window
+ <STRONG>wattr_on</STRONG> window
+ <STRONG>wattr_set</STRONG> window
+ <STRONG>wattroff</STRONG> window
+ <STRONG>wattron</STRONG> window
+ <STRONG>wattrset</STRONG> window
+ <STRONG>wbkgd</STRONG> window
+ <STRONG>wbkgdset</STRONG> window
+ <STRONG>wbkgrnd</STRONG> window
+ <STRONG>wbkgrndset</STRONG> window
+ <STRONG>wborder</STRONG> window
+ <STRONG>wborder_set</STRONG> window
+ <STRONG>wchgat</STRONG> window
+ <STRONG>wclear</STRONG> window
+ <STRONG>wclrtobot</STRONG> window
+ <STRONG>wclrtoeol</STRONG> window
+ <STRONG>wcolor_set</STRONG> window
+ <STRONG>wcursyncup</STRONG> screen (affects window plus parents)
+ <STRONG>wdelch</STRONG> window
+ <STRONG>wdeleteln</STRONG> window
+ <STRONG>wecho_wchar</STRONG> window
+ <STRONG>wechochar</STRONG> window
+ <STRONG>wenclose</STRONG> window
+ <STRONG>werase</STRONG> window
+ <STRONG>wget_wch</STRONG> screen (input operation)
+ <STRONG>wget_wstr</STRONG> screen (input operation)
+ <STRONG>wgetbkgrnd</STRONG> window
+ <STRONG>wgetch</STRONG> screen (input operation)
+ <STRONG>wgetdelay</STRONG> window
+ <STRONG>wgetn_wstr</STRONG> screen (input operation)
+ <STRONG>wgetnstr</STRONG> screen (input operation)
+ <STRONG>wgetparent</STRONG> window
+ <STRONG>wgetscrreg</STRONG> window
+ <STRONG>wgetstr</STRONG> screen (input operation)
+ <STRONG>whline</STRONG> window
+ <STRONG>whline_set</STRONG> window
+ <STRONG>win_wch</STRONG> window
+ <STRONG>win_wchnstr</STRONG> window
+ <STRONG>win_wchstr</STRONG> window
+ <STRONG>winch</STRONG> window
+ <STRONG>winchnstr</STRONG> window
+ <STRONG>winchstr</STRONG> window
+ <STRONG>winnstr</STRONG> window
+ <STRONG>winnwstr</STRONG> window
+ <STRONG>wins_nwstr</STRONG> window
+ <STRONG>wins_wch</STRONG> window
+ <STRONG>wins_wstr</STRONG> window
+ <STRONG>winsch</STRONG> window
+ <STRONG>winsdelln</STRONG> window
+ <STRONG>winsertln</STRONG> window
+ <STRONG>winsnstr</STRONG> window
+ <STRONG>winsstr</STRONG> window
+ <STRONG>winstr</STRONG> window
+ <STRONG>winwstr</STRONG> window
+ <STRONG>wmouse_trafo</STRONG> window
+ <STRONG>wmove</STRONG> window
+ <STRONG>wnoutrefresh</STRONG> screen
+ <STRONG>wprintw</STRONG> window
+ <STRONG>wredrawln</STRONG> window
+ <STRONG>wrefresh</STRONG> screen
+ <STRONG>wresize</STRONG> window (locks window list)
+ <STRONG>wscanw</STRONG> screen
+ <STRONG>wscrl</STRONG> window
+ <STRONG>wsetscrreg</STRONG> window
+
+ <STRONG>wstandend</STRONG> window
+ <STRONG>wstandout</STRONG> window
+ <STRONG>wsyncdown</STRONG> screen (affects window plus parents)
+ <STRONG>wsyncup</STRONG> screen (affects window plus parents)
+ <STRONG>wtimeout</STRONG> window
+ <STRONG>wtouchln</STRONG> window
+ <STRONG>wunctrl</STRONG> global (static data)
+ <STRONG>wvline</STRONG> window
+ <STRONG>wvline_set</STRONG> window
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- These functions all return <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>, except as noted.
+ <STRONG>get_escdelay</STRONG> returns the value of <STRONG>ESCDELAY</STRONG>. <STRONG>set_escdelay</STRONG> and
+ <STRONG>set_tabsize</STRONG> return <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> upon successful completion.
+ <STRONG>use_screen</STRONG> and <STRONG>use_window</STRONG> return the <EM>int</EM> returned by the user-supplied
+ function they are called with.
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- Both a macro and a function are provided for each name.
+ <EM>ncurses</EM> provides both a C function and a preprocessor macro for each
+ function documented in this page.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines are specific to ncurses. They were not supported on
+ These routines are specific to <EM>ncurses</EM>. They were not supported on
Version 7, BSD or System V implementations. It is recommended that any
- code depending on ncurses extensions be conditioned using NCURSES_VER-
- SION.
+ code depending on <EM>ncurses</EM> extensions be conditioned using
+ <STRONG>NCURSES_VERSION</STRONG>.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>.
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>
- <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -616,7 +625,7 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
<ul>
-<li><a href="#h3-USAGE">USAGE</a></li>
+<li><a href="#h3-Usage">Usage</a></li>
</ul>
</li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
diff --git a/doc/html/man/curs_touch.3x.html b/doc/html/man/curs_touch.3x.html
index 55eb33ea1525..50717662864c 100644
--- a/doc/html/man/curs_touch.3x.html
+++ b/doc/html/man/curs_touch.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2015,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,28 +27,28 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_touch.3x,v 1.23 2020/10/24 09:51:21 tom Exp @
+ * @Id: curs_touch.3x,v 1.47 2024/04/20 21:20:07 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_touch 3x</TITLE>
+<TITLE>curs_touch 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_touch 3x</H1>
+<H1 class="no-header">curs_touch 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG> <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
+<STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>touchwin</STRONG>, <STRONG>touchline</STRONG>, <STRONG>untouchwin</STRONG>, <STRONG>wtouchln</STRONG>, <STRONG>is_linetouched</STRONG>,
- <STRONG>is_wintouched</STRONG> - <STRONG>curses</STRONG> refresh control routines
+ <STRONG>touchwin</STRONG>, <STRONG>touchline</STRONG>, <STRONG>untouchwin</STRONG>, <STRONG>wtouchln</STRONG>, <STRONG>is_linetouched</STRONG>,
+ <STRONG>is_wintouched</STRONG> - control terminal output refresh in a <EM>curses</EM> window
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -66,37 +66,39 @@
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- The <STRONG>touchwin</STRONG> and <STRONG>touchline</STRONG> routines throw away all optimization infor-
- mation about which parts of the window have been touched, by pretending
- that the entire window has been drawn on. This is sometimes necessary
- when using overlapping windows, since a change to one window affects
- the other window, but the records of which lines have been changed in
- the other window do not reflect the change. The routine <STRONG>touchline</STRONG> only
- pretends that <EM>count</EM> lines have been changed, beginning with line <EM>start</EM>.
+ The <STRONG>touchwin</STRONG> and <STRONG>touchline</STRONG> routines throw away all optimization
+ information about which parts of the window have been touched, by
+ pretending that the entire window has been drawn on. This is sometimes
+ necessary when using overlapping windows, since a change to one window
+ affects the other window, but the records of which lines have been
+ changed in the other window do not reflect the change. The routine
+ <STRONG>touchline</STRONG> only pretends that <EM>count</EM> lines have been changed, beginning
+ with line <EM>start</EM>.
The <STRONG>untouchwin</STRONG> routine marks all lines in the window as unchanged since
the last call to <STRONG>wrefresh</STRONG>.
- The <STRONG>wtouchln</STRONG> routine makes <EM>n</EM> lines in the window, starting at line <EM>y</EM>,
- look as if they have (<EM>changed</EM><STRONG>=1</STRONG>) or have not (<EM>changed</EM><STRONG>=0</STRONG>) been changed
+ The <STRONG>wtouchln</STRONG> routine makes <EM>n</EM> lines in the window, starting at line <EM>y</EM>,
+ look as if they have (<EM>changed</EM><STRONG>=1</STRONG>) or have not (<EM>changed</EM><STRONG>=0</STRONG>) been changed
since the last call to <STRONG>wrefresh</STRONG>.
- The <STRONG>is_linetouched</STRONG> and <STRONG>is_wintouched</STRONG> routines return <STRONG>TRUE</STRONG> if the speci-
- fied line/window was modified since the last call to <STRONG>wrefresh</STRONG>; other-
- wise they return <STRONG>FALSE</STRONG>. In addition, <STRONG>is_linetouched</STRONG> returns <STRONG>ERR</STRONG> if
- <EM>line</EM> is not valid for the given window.
+ The <STRONG>is_linetouched</STRONG> and <STRONG>is_wintouched</STRONG> routines return <STRONG>TRUE</STRONG> if the
+ specified line/window was modified since the last call to <STRONG>wrefresh</STRONG>;
+ otherwise they return <STRONG>FALSE</STRONG>. In addition, <STRONG>is_linetouched</STRONG> returns <STRONG>ERR</STRONG>
+ if <EM>line</EM> is not valid for the given window.
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- All routines return the integer <STRONG>ERR</STRONG> upon failure and an integer value
- other than <STRONG>ERR</STRONG> upon successful completion, unless otherwise noted in
+ All routines return the integer <STRONG>ERR</STRONG> upon failure and an integer value
+ other than <STRONG>ERR</STRONG> upon successful completion, unless otherwise noted in
the preceding routine descriptions.
- X/Open does not define any error conditions. In this implementation
+ X/Open Curses does not specify any error conditions. In this
+ implementation
<STRONG>is_linetouched</STRONG>
returns an error if the window pointer is null, or if the line
- number is outside the window.
+ number is outside the window boundaries.
The constant <STRONG>ERR</STRONG> is distinct from <STRONG>TRUE</STRONG> and <STRONG>FALSE</STRONG>, which are the
normal return values of this function. Because the function
@@ -109,30 +111,30 @@
<STRONG>wtouchln</STRONG>
returns an error if the window pointer is null, or if the line
- number is outside the window.
+ number is outside the window boundaries.
+
+
+</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
+ All of these routines except <STRONG>wtouchln</STRONG> may be macros.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These functions were introduced by SVr4. The Solaris curses header
+ These functions were introduced by SVr4. The Solaris <EM>curses</EM> header
file, for instance, defines both an actual function and macro for each.
- The macros give the same result as the actual functions. SVr4 curses
+ The macros give the same result as the actual functions. SVr4 <EM>curses</EM>
does not check the window parameter <EM>win</EM> to ensure that it is not <STRONG>NULL</STRONG>;
otherwise this implementation behaves the same as SVr4.
- The XSI Curses standard, Issue 4 describes these functions, but defines
- no error conditions.
-
-
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- All of these routines except <STRONG>wtouchln</STRONG> may be macros.
+ X/Open Curses, Issue 4 describes these functions, but defines no error
+ conditions.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>.
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>
- <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -140,8 +142,8 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-NOTES">NOTES</a></li>
+<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
diff --git a/doc/html/man/curs_trace.3x.html b/doc/html/man/curs_trace.3x.html
index a60ae970276d..c1ea937fd64b 100644
--- a/doc/html/man/curs_trace.3x.html
+++ b/doc/html/man/curs_trace.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2023,2024 Thomas E. Dickey *
* Copyright 2000-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,35 +27,35 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_trace.3x,v 1.21 2020/02/02 23:34:34 tom Exp @
+ * @Id: curs_trace.3x,v 1.50 2024/04/20 21:24:19 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_trace 3x</TITLE>
+<TITLE>curs_trace 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_trace 3x</H1>
+<H1 class="no-header">curs_trace 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG> <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>
+<STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>curses_trace</STRONG>, <STRONG>trace</STRONG>, <STRONG>_tracef</STRONG>, <STRONG>_traceattr</STRONG>, <STRONG>_traceattr2</STRONG>, <STRONG>_tracecchar_t</STRONG>,
+ <STRONG>curses_trace</STRONG>, <STRONG>trace</STRONG>, <STRONG>_tracef</STRONG>, <STRONG>_traceattr</STRONG>, <STRONG>_traceattr2</STRONG>, <STRONG>_tracecchar_t</STRONG>,
<STRONG>_tracecchar_t2</STRONG>, <STRONG>_tracechar</STRONG>, <STRONG>_tracechtype</STRONG>, <STRONG>_tracechtype2</STRONG>, <STRONG>_nc_tracebits</STRONG>,
- <STRONG>_tracedump</STRONG>, <STRONG>_tracemouse</STRONG> - <STRONG>curses</STRONG> debugging routines
+ <STRONG>_tracedump</STRONG>, <STRONG>_tracemouse</STRONG> - <EM>curses</EM> debugging routines
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
<STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
- <STRONG>unsigned</STRONG> <STRONG>curses_trace(const</STRONG> <STRONG>unsigned</STRONG> <EM>param</EM><STRONG>);</STRONG>
+ <STRONG>unsigned</STRONG> <STRONG>curses_trace(const</STRONG> <STRONG>unsigned</STRONG> <EM>trace-mask</EM><STRONG>);</STRONG>
<STRONG>void</STRONG> <STRONG>_tracef(const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>format</EM><STRONG>,</STRONG> <STRONG>...);</STRONG>
@@ -63,7 +63,7 @@
<STRONG>char</STRONG> <STRONG>*_traceattr2(int</STRONG> <EM>buffer</EM><STRONG>,</STRONG> <STRONG>chtype</STRONG> <EM>ch</EM><STRONG>);</STRONG>
<STRONG>char</STRONG> <STRONG>*_tracecchar_t(const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>string</EM><STRONG>);</STRONG>
<STRONG>char</STRONG> <STRONG>*_tracecchar_t2(int</STRONG> <EM>buffer</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>string</EM><STRONG>);</STRONG>
- <STRONG>char</STRONG> <STRONG>*_tracechar(int</STRONG> <EM>ch</EM><STRONG>);</STRONG>
+ <STRONG>char</STRONG> <STRONG>*_tracechar(int</STRONG> <EM>c</EM><STRONG>);</STRONG>
<STRONG>char</STRONG> <STRONG>*_tracechtype(chtype</STRONG> <EM>ch</EM><STRONG>);</STRONG>
<STRONG>char</STRONG> <STRONG>*_tracechtype2(int</STRONG> <EM>buffer</EM><STRONG>,</STRONG> <STRONG>chtype</STRONG> <EM>ch</EM><STRONG>);</STRONG>
@@ -71,17 +71,17 @@
<STRONG>char</STRONG> <STRONG>*_nc_tracebits(void);</STRONG>
<STRONG>char</STRONG> <STRONG>*_tracemouse(const</STRONG> <STRONG>MEVENT</STRONG> <STRONG>*</STRONG><EM>event</EM><STRONG>);</STRONG>
- /* deprecated */
- <STRONG>void</STRONG> <STRONG>trace(const</STRONG> <STRONG>unsigned</STRONG> <STRONG>int</STRONG> <EM>param</EM><STRONG>);</STRONG>
+ <EM>/*</EM> <EM>deprecated</EM> <EM>*/</EM>
+ <STRONG>void</STRONG> <STRONG>trace(const</STRONG> <STRONG>unsigned</STRONG> <STRONG>int</STRONG> <EM>trace-mask</EM><STRONG>);</STRONG>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- The <EM>curses</EM> <EM>trace</EM> routines are used for debugging the ncurses libraries,
- as well as applications which use the ncurses libraries. Some limita-
- tions apply:
+ The <EM>curses</EM> <EM>trace</EM> routines are used for debugging the <EM>ncurses</EM> libraries,
+ as well as applications which use the <EM>ncurses</EM> libraries. Some
+ limitations apply:
<STRONG>o</STRONG> Aside from <STRONG>curses_trace</STRONG>, the other functions are normally available
- only with the debugging library e.g., <EM>libncurses</EM><STRONG>_</STRONG><EM>g.a</EM>.
+ only with the debugging library e.g., <STRONG>libncurses_g.a</STRONG>.
All of the trace functions may be compiled into any model (shared,
static, profile) by defining the symbol <STRONG>TRACE</STRONG>.
@@ -98,9 +98,9 @@
<STRONG>o</STRONG> <STRONG>_tracef</STRONG>, which writes formatted data to the <EM>trace</EM> file.
- The other functions either return a pointer to a string-area (allo-
- cated by the corresponding function), or return no value (such as
- <STRONG>_tracedump</STRONG>, which implements the screen dump for <STRONG>TRACE_UPDATE</STRONG>).
+ The other functions either return a pointer to a string-area
+ (allocated by the corresponding function), or return no value (such
+ as <STRONG>_tracedump</STRONG>, which implements the screen dump for <STRONG>TRACE_UPDATE</STRONG>).
The caller should not free these strings, since the allocation is
reused on successive calls. To work around the problem of a single
string-area per function, some use a buffer-number parameter,
@@ -109,26 +109,27 @@
The <STRONG>curses_trace</STRONG> function is always available, whether or not the other
trace functions are available:
- <STRONG>o</STRONG> If tracing is available, calling <STRONG>curses_trace</STRONG> with a nonzero param-
- eter updates the trace mask, and returns the previous trace mask.
+ <STRONG>o</STRONG> If tracing is available, calling <STRONG>curses_trace</STRONG> with a nonzero
+ parameter updates the trace mask, and returns the previous trace
+ mask.
- When the trace mask is nonzero, ncurses creates the file "trace" in
- the current directory for output. If the file already exists, no
+ When the trace mask is nonzero, <EM>ncurses</EM> creates the file "trace" in
+ the current directory for output. If the file already exists, no
tracing is done.
<STRONG>o</STRONG> If tracing is not available, <STRONG>curses_trace</STRONG> returns zero (0).
</PRE><H3><a name="h3-Trace-Parameter">Trace Parameter</a></H3><PRE>
- The trace parameter is formed by OR'ing values from the list of
+ The trace parameter is formed by OR'ing values from the list of
<STRONG>TRACE_</STRONG><EM>xxx</EM> definitions in <STRONG>&lt;curses.h&gt;</STRONG>. These include:
<STRONG>TRACE_DISABLE</STRONG>
turn off tracing by passing a zero parameter.
- The library flushes the output file, but retains an open file-de-
- scriptor to the trace file so that it can resume tracing later if
- a nonzero parameter is passed to the <STRONG>curses_trace</STRONG> function.
+ The library flushes the output file, but retains an open file-
+ descriptor to the trace file so that it can resume tracing later
+ if a nonzero parameter is passed to the <STRONG>curses_trace</STRONG> function.
<STRONG>TRACE_TIMES</STRONG>
trace user and system times of updates.
@@ -146,11 +147,11 @@
trace all character outputs.
<STRONG>TRACE_ORDINARY</STRONG>
- trace all update actions. The old and new screen contents are
+ trace all update actions. The old and new screen contents are
written to the trace file for each refresh.
<STRONG>TRACE_CALLS</STRONG>
- trace all curses calls. The parameters for each call are traced,
+ trace all curses calls. The parameters for each call are traced,
as well as return values.
<STRONG>TRACE_VIRTPUT</STRONG>
@@ -177,36 +178,27 @@
<STRONG>TRACE_MAXIMUM</STRONG>
maximum trace level, enables all of the separate trace features.
- Some tracing features are enabled whenever the <STRONG>curses_trace</STRONG> parameter
- is nonzero. Some features overlap. The specific names are used as a
+ Some tracing features are enabled whenever the <STRONG>curses_trace</STRONG> parameter
+ is nonzero. Some features overlap. The specific names are used as a
guideline.
-</PRE><H3><a name="h3-Initialization">Initialization</a></H3><PRE>
- These functions check the <STRONG>NCURSES_TRACE</STRONG> environment variable, to set
- the tracing feature as if <STRONG>curses_trace</STRONG> was called:
-
- filter, initscr, new_prescr, newterm, nofilter, restartterm,
- ripoffline, setupterm, slk_init, tgetent, use_env,
- use_extended_names, use_tioctl
-
-
</PRE><H3><a name="h3-Command-line-Utilities">Command-line Utilities</a></H3><PRE>
The command-line utilities such as <STRONG><A HREF="tic.1m.html">tic(1)</A></STRONG> provide a verbose option
- which extends the set of messages written using the <STRONG>curses_trace</STRONG> func-
- tion. Both of these (<STRONG>-v</STRONG> and <STRONG>curses_trace</STRONG>) use the same variable
+ which extends the set of messages written using the <STRONG>curses_trace</STRONG>
+ function. Both of these (<STRONG>-v</STRONG> and <STRONG>curses_trace</STRONG>) use the same variable
(<STRONG>_nc_tracing</STRONG>), which determines the messages which are written.
Because the command-line utilities may call initialization functions
- such as <STRONG>setupterm</STRONG>, <STRONG>tgetent</STRONG> or <STRONG>use_extended_names</STRONG>, some of their debug-
- ging output may be directed to the <EM>trace</EM> file if the <STRONG>NCURSES_TRACE</STRONG> en-
- vironment variable is set:
+ such as <STRONG>setupterm</STRONG>, <STRONG>tgetent</STRONG> or <STRONG>use_extended_names</STRONG>, some of their
+ debugging output may be directed to the <EM>trace</EM> file if the <EM>NCURSES</EM><STRONG>_</STRONG><EM>TRACE</EM>
+ environment variable is set:
<STRONG>o</STRONG> messages produced in the utility are written to the standard error.
<STRONG>o</STRONG> messages produced by the underlying library are written to <EM>trace</EM>.
- If ncurses is built without tracing, none of the latter are produced,
+ If <EM>ncurses</EM> is built without tracing, none of the latter are produced,
and fewer diagnostics are provided by the command-line utilities.
@@ -215,35 +207,47 @@
the <STRONG>_tracef</STRONG> routine.
+</PRE><H2><a name="h2-ENVIRONMENT">ENVIRONMENT</a></H2><PRE>
+
+</PRE><H3><a name="h3-NCURSES_TRACE">NCURSES_TRACE</a></H3><PRE>
+ A positive integral value stored in this variable causes the following
+ functions to enable the tracing feature as if <STRONG>curses_trace</STRONG> were called.
+
+ <STRONG>filter</STRONG>, <STRONG>initscr</STRONG>, <STRONG>new_prescr</STRONG>, <STRONG>newterm</STRONG>, <STRONG>nofilter</STRONG>, <STRONG>restartterm</STRONG>,
+ <STRONG>ripoffline</STRONG>, <STRONG>setupterm</STRONG>, <STRONG>slk_init</STRONG>, <STRONG>tgetent</STRONG>, <STRONG>use_env</STRONG>,
+ <STRONG>use_extended_names</STRONG>, <STRONG>use_tioctl</STRONG>
+
+
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These functions are not part of the XSI interface. Some other curses
- implementations are known to have similar features, but they are not
- compatible with ncurses:
+ These functions are not part of the X/Open Curses interface. Some
+ other curses implementations are known to have similar features, but
+ they are not compatible with <EM>ncurses</EM>:
- <STRONG>o</STRONG> SVr4 provided <STRONG>traceon</STRONG> and <STRONG>traceoff</STRONG>, to control whether debugging
- information was written to the "trace" file. While the functions
- were always available, this feature was only enabled if <STRONG>DEBUG</STRONG> was
+ <STRONG>o</STRONG> SVr4 provided <STRONG>traceon</STRONG> and <STRONG>traceoff</STRONG>, to control whether debugging
+ information was written to the "trace" file. While the functions
+ were always available, this feature was only enabled if <STRONG>DEBUG</STRONG> was
defined when building the library.
The SVr4 tracing feature is undocumented.
- <STRONG>o</STRONG> PDCurses provides <STRONG>traceon</STRONG> and <STRONG>traceoff</STRONG>, which (like SVr4) are al-
- ways available, and enable tracing to the "trace" file only when a
- debug-library is built.
+ <STRONG>o</STRONG> PDCurses provides <STRONG>traceon</STRONG> and <STRONG>traceoff</STRONG>, which (like SVr4) are
+ always available, and enable tracing to the "trace" file only when
+ a debug-library is built.
- PDCurses has a short description of these functions, with a note
- that they are not present in X/Open Curses, ncurses or NetBSD. It
- does not mention SVr4, but the functions' inclusion in a header
+ PDCurses has a short description of these functions, with a note
+ that they are not present in X/Open Curses, <EM>ncurses</EM> or NetBSD. It
+ does not mention SVr4, but the functions' inclusion in a header
file section labeled "Quasi-standard" hints at the origin.
- <STRONG>o</STRONG> NetBSD does not provide functions for enabling/disabling traces.
- It uses environment variables <STRONG>CURSES_TRACE_MASK</STRONG> and <STRONG>CURS-</STRONG>
- <STRONG>ES_TRACE_FILE</STRONG> to determine what is traced, and where the results
- are written. This is available only when a debug-library is built.
+ <STRONG>o</STRONG> NetBSD does not provide functions for enabling/disabling traces.
+ It uses environment variables <EM>CURSES</EM><STRONG>_</STRONG><EM>TRACE</EM><STRONG>_</STRONG><EM>MASK</EM> and
+ <EM>CURSES</EM><STRONG>_</STRONG><EM>TRACE</EM><STRONG>_</STRONG><EM>FILE</EM> to determine what is traced, and where the
+ results are written. This is available only when a debug-library
+ is built.
The NetBSD tracing feature is undocumented.
- A few ncurses functions are not provided when symbol versioning is
+ A few <EM>ncurses</EM> functions are not provided when symbol versioning is
used:
_nc_tracebits, _tracedump, _tracemouse
@@ -253,11 +257,11 @@
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>.
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>
- <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -267,11 +271,15 @@
<ul>
<li><a href="#h3-Functions">Functions</a></li>
<li><a href="#h3-Trace-Parameter">Trace Parameter</a></li>
-<li><a href="#h3-Initialization">Initialization</a></li>
<li><a href="#h3-Command-line-Utilities">Command-line Utilities</a></li>
</ul>
</li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
+<li><a href="#h2-ENVIRONMENT">ENVIRONMENT</a>
+<ul>
+<li><a href="#h3-NCURSES_TRACE">NCURSES_TRACE</a></li>
+</ul>
+</li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
diff --git a/doc/html/man/curs_util.3x.html b/doc/html/man/curs_util.3x.html
index d2a83a0599db..6160a2cad552 100644
--- a/doc/html/man/curs_util.3x.html
+++ b/doc/html/man/curs_util.3x.html
@@ -1,7 +1,7 @@
-<!--
+<!--
* t
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2015,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,45 +28,43 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_util.3x,v 1.60 2020/12/19 22:44:46 tom Exp @
+ * @Id: curs_util.3x,v 1.101 2024/04/20 21:20:07 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_util 3x</TITLE>
+<TITLE>curs_util 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_util 3x</H1>
+<H1 class="no-header">curs_util 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG> <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
+<STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>delay_output</STRONG>, <STRONG>filter</STRONG>, <STRONG>flushinp</STRONG>, <STRONG>getwin</STRONG>, <STRONG>key_name</STRONG>, <STRONG>keyname</STRONG>, <STRONG>nofilter</STRONG>,
- <STRONG>putwin</STRONG>, <STRONG>unctrl</STRONG>, <STRONG>use_env</STRONG>, <STRONG>use_tioctl</STRONG>, <STRONG>wunctrl</STRONG> - miscellaneous <STRONG>curses</STRONG>
+ <STRONG>delay_output</STRONG>, <STRONG>filter</STRONG>, <STRONG>flushinp</STRONG>, <STRONG>getwin</STRONG>, <STRONG>key_name</STRONG>, <STRONG>keyname</STRONG>, <STRONG>nofilter</STRONG>,
+ <STRONG>putwin</STRONG>, <STRONG>unctrl</STRONG>, <STRONG>use_env</STRONG>, <STRONG>use_tioctl</STRONG>, <STRONG>wunctrl</STRONG> - miscellaneous <EM>curses</EM>
utility routines
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
<STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
- <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*unctrl(chtype</STRONG> <EM>c</EM><STRONG>);</STRONG>
- <STRONG>wchar_t</STRONG> <STRONG>*wunctrl(cchar_t</STRONG> <STRONG>*</STRONG><EM>c</EM><STRONG>);</STRONG>
+ <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*unctrl(chtype</STRONG> <EM>ch</EM><STRONG>);</STRONG>
+ <STRONG>wchar_t</STRONG> <STRONG>*wunctrl(cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
<STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*keyname(int</STRONG> <EM>c</EM><STRONG>);</STRONG>
- <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*key_name(wchar_t</STRONG> <EM>w</EM><STRONG>);</STRONG>
+ <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*key_name(wchar_t</STRONG> <EM>wc</EM><STRONG>);</STRONG>
<STRONG>void</STRONG> <STRONG>filter(void);</STRONG>
- <STRONG>void</STRONG> <STRONG>nofilter(void);</STRONG>
<STRONG>void</STRONG> <STRONG>use_env(bool</STRONG> <EM>f</EM><STRONG>);</STRONG>
- <STRONG>void</STRONG> <STRONG>use_tioctl(bool</STRONG> <EM>f</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>putwin(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>FILE</STRONG> <STRONG>*</STRONG><EM>filep</EM><STRONG>);</STRONG>
<STRONG>WINDOW</STRONG> <STRONG>*getwin(FILE</STRONG> <STRONG>*</STRONG><EM>filep</EM><STRONG>);</STRONG>
@@ -74,152 +72,174 @@
<STRONG>int</STRONG> <STRONG>delay_output(int</STRONG> <EM>ms</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>flushinp(void);</STRONG>
+ <EM>/*</EM> <EM>extensions</EM> <EM>*/</EM>
+ <STRONG>void</STRONG> <STRONG>nofilter(void);</STRONG>
+ <STRONG>void</STRONG> <STRONG>use_tioctl(bool</STRONG> <EM>f</EM><STRONG>);</STRONG>
+
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
</PRE><H3><a name="h3-unctrl">unctrl</a></H3><PRE>
- The <STRONG>unctrl</STRONG> routine returns a character string which is a printable rep-
- resentation of the character <EM>c</EM>, ignoring attributes. Control charac-
- ters are displayed in the <STRONG>^</STRONG><EM>X</EM> notation. Printing characters are dis-
- played as is. The corresponding <STRONG>wunctrl</STRONG> returns a printable represen-
- tation of a wide character.
-
+ The <STRONG>unctrl</STRONG> routine returns a character string which is a printable
+ representation of the character <EM>ch</EM>:
-</PRE><H3><a name="h3-keyname_key_name">keyname/key_name</a></H3><PRE>
- The <STRONG>keyname</STRONG> routine returns a character string corresponding to the key
- <EM>c</EM>:
-
- <STRONG>o</STRONG> Printable characters are displayed as themselves, e.g., a one-char-
- acter string containing the key.
+ <STRONG>o</STRONG> Printable characters are displayed as themselves, e.g., a one-
+ character string containing the key.
<STRONG>o</STRONG> Control characters are displayed in the <STRONG>^</STRONG><EM>X</EM> notation.
+ <STRONG>o</STRONG> Printing characters are displayed as is.
+
<STRONG>o</STRONG> DEL (character 127) is displayed as <STRONG>^?</STRONG>.
<STRONG>o</STRONG> Values above 128 are either meta characters (if the screen has not
- been initialized, or if <STRONG><A HREF="curs_inopts.3x.html">meta(3x)</A></STRONG> has been called with a <STRONG>TRUE</STRONG> param-
- eter), shown in the <STRONG>M-</STRONG><EM>X</EM> notation, or are displayed as themselves.
- In the latter case, the values may not be printable; this follows
- the X/Open specification.
+ been initialized, or if <STRONG><A HREF="curs_inopts.3x.html">meta(3x)</A></STRONG> has been called with a <STRONG>TRUE</STRONG>
+ parameter), shown in the <STRONG>M-</STRONG><EM>X</EM> notation, or are displayed as
+ themselves. In the latter case, the values may not be printable;
+ this follows the X/Open specification.
+
+ The corresponding <STRONG>wunctrl</STRONG> returns a printable representation of a
+ complex character <EM>wch</EM>.
- <STRONG>o</STRONG> Values above 256 may be the names of the names of function keys.
+ In both <STRONG>unctrl</STRONG> and <STRONG>wunctrl</STRONG> the attributes and color associated with the
+ character parameter are ignored.
+
+
+</PRE><H3><a name="h3-keyname_key_name">keyname, key_name</a></H3><PRE>
+ The <STRONG>keyname</STRONG> routine returns a character string corresponding to the key
+ <EM>c</EM>. Key codes are different from character codes.
- <STRONG>o</STRONG> Otherwise (if there is no corresponding name) the function returns
- null, to denote an error. X/Open also lists an "UNKNOWN KEY" re-
- turn value, which some implementations return rather than null.
+ <STRONG>o</STRONG> Key codes below 256 are characters. They are displayed using
+ <STRONG>unctrl</STRONG>.
- The corresponding <STRONG>key_name</STRONG> returns a character string corresponding to
- the wide-character value <EM>w</EM>. The two functions do not return the same
- set of strings; the latter returns null where the former would display
- a meta character.
+ <STRONG>o</STRONG> Values above 256 may be the codes for function keys. The function
+ key name is displayed.
+ <STRONG>o</STRONG> Otherwise (if there is no corresponding name and the key is not a
+ character) the function returns null, to denote an error. X/Open
+ also lists an "UNKNOWN KEY" return value, which some
+ implementations return rather than null.
-</PRE><H3><a name="h3-filter_nofilter">filter/nofilter</a></H3><PRE>
- The <STRONG>filter</STRONG> routine, if used, must be called before <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG>
+ The corresponding <STRONG>key_name</STRONG> returns a multibyte character string
+ corresponding to the wide-character value <EM>w</EM>. The two functions
+ (<STRONG>keyname</STRONG> and <STRONG>key_name</STRONG>) do not return the same set of strings:
+
+ <STRONG>o</STRONG> <STRONG>keyname</STRONG> returns null where <STRONG>key_name</STRONG> would display a meta character.
+
+ <STRONG>o</STRONG> <STRONG>key_name</STRONG> does not return the name of a function key.
+
+
+</PRE><H3><a name="h3-filter_nofilter">filter, nofilter</a></H3><PRE>
+ The <STRONG>filter</STRONG> routine, if used, must be called before <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG>
are called. Calling <STRONG>filter</STRONG> causes these changes in initialization:
<STRONG>o</STRONG> <STRONG>LINES</STRONG> is set to 1;
- <STRONG>o</STRONG> the capabilities <STRONG>clear</STRONG>, <STRONG>cud1</STRONG>, <STRONG>cud</STRONG>, <STRONG>cup</STRONG>, <STRONG>cuu1</STRONG>, <STRONG>cuu</STRONG>, <STRONG>vpa</STRONG> are dis-
- abled;
+ <STRONG>o</STRONG> the capabilities <STRONG>clear</STRONG>, <STRONG>cud1</STRONG>, <STRONG>cud</STRONG>, <STRONG>cup</STRONG>, <STRONG>cuu1</STRONG>, <STRONG>cuu</STRONG>, <STRONG>vpa</STRONG> are
+ disabled;
<STRONG>o</STRONG> the capability <STRONG>ed</STRONG> is disabled if <STRONG>bce</STRONG> is set;
<STRONG>o</STRONG> and the <STRONG>home</STRONG> string is set to the value of <STRONG>cr</STRONG>.
- The <STRONG>nofilter</STRONG> routine cancels the effect of a preceding <STRONG>filter</STRONG> call.
- That allows the caller to initialize a screen on a different device,
- using a different value of <STRONG>$TERM</STRONG>. The limitation arises because the
+ The <STRONG>nofilter</STRONG> routine cancels the effect of a preceding <STRONG>filter</STRONG> call.
+ That allows the caller to initialize a screen on a different device,
+ using a different value of <STRONG>$TERM</STRONG>. The limitation arises because the
<STRONG>filter</STRONG> routine modifies the in-memory copy of the terminal information.
</PRE><H3><a name="h3-use_env">use_env</a></H3><PRE>
- The <STRONG>use_env</STRONG> routine, if used, should be called before <STRONG>initscr</STRONG> or
- <STRONG>newterm</STRONG> are called (because those compute the screen size). It modi-
- fies the way <STRONG>ncurses</STRONG> treats environment variables when determining the
- screen size.
+ The <STRONG>use_env</STRONG> routine, if used, should be called before <STRONG>initscr</STRONG> or
+ <STRONG>newterm</STRONG> are called (because those compute the screen size). It
+ modifies the way <EM>ncurses</EM> treats environment variables when determining
+ the screen size.
- <STRONG>o</STRONG> Normally <STRONG>ncurses</STRONG> looks first at the terminal database for the
+ <STRONG>o</STRONG> Normally <EM>ncurses</EM> looks first at the terminal database for the
screen size.
- If <STRONG>use_env</STRONG> was called with <STRONG>FALSE</STRONG> for parameter, it stops here un-
- less <STRONG>use_tioctl</STRONG> was also called with <STRONG>TRUE</STRONG> for parameter.
+ If <STRONG>use_env</STRONG> was called with <STRONG>FALSE</STRONG> for parameter, it stops here
+ unless <STRONG>use_tioctl</STRONG> was also called with <STRONG>TRUE</STRONG> for parameter.
- <STRONG>o</STRONG> Then it asks for the screen size via operating system calls. If
+ <STRONG>o</STRONG> Then it asks for the screen size via operating system calls. If
successful, it overrides the values from the terminal database.
- <STRONG>o</STRONG> Finally (unless <STRONG>use_env</STRONG> was called with <STRONG>FALSE</STRONG> parameter), <STRONG>ncurses</STRONG>
- examines the <STRONG>LINES</STRONG> or <STRONG>COLUMNS</STRONG> environment variables, using a value
- in those to override the results from the operating system or ter-
- minal database.
+ <STRONG>o</STRONG> Finally (unless <STRONG>use_env</STRONG> was called with <STRONG>FALSE</STRONG> parameter), <EM>ncurses</EM>
+ examines the <EM>LINES</EM> or <EM>COLUMNS</EM> environment variables, using a value
+ in those to override the results from the operating system or
+ terminal database.
- <STRONG>Ncurses</STRONG> also updates the screen size in response to <STRONG>SIGWINCH</STRONG>, un-
- less overridden by the <STRONG>LINES</STRONG> or <STRONG>COLUMNS</STRONG> environment variables,
+ <EM>curses</EM> also updates the screen size in response to <STRONG>SIGWINCH</STRONG>, unless
+ overridden by the <EM>LINES</EM> or <EM>COLUMNS</EM> environment variables,
</PRE><H3><a name="h3-use_tioctl">use_tioctl</a></H3><PRE>
- The <STRONG>use_tioctl</STRONG> routine, if used, should be called before <STRONG>initscr</STRONG> or
- <STRONG>newterm</STRONG> are called (because those compute the screen size). After
- <STRONG>use_tioctl</STRONG> is called with <STRONG>TRUE</STRONG> as an argument, <STRONG>ncurses</STRONG> modifies the
+ The <STRONG>use_tioctl</STRONG> routine, if used, should be called before <STRONG>initscr</STRONG> or
+ <STRONG>newterm</STRONG> are called (because those compute the screen size). After
+ <STRONG>use_tioctl</STRONG> is called with <STRONG>TRUE</STRONG> as an argument, <EM>ncurses</EM> modifies the
last step in its computation of screen size as follows:
- <STRONG>o</STRONG> checks if the <STRONG>LINES</STRONG> and <STRONG>COLUMNS</STRONG> environment variables are set to a
+ <STRONG>o</STRONG> checks if the <EM>LINES</EM> and <EM>COLUMNS</EM> environment variables are set to a
number greater than zero.
- <STRONG>o</STRONG> for each, <STRONG>ncurses</STRONG> updates the corresponding environment variable
- with the value that it has obtained via operating system call or
+ <STRONG>o</STRONG> for each, <EM>ncurses</EM> updates the corresponding environment variable
+ with the value that it has obtained via operating system call or
from the terminal database.
- <STRONG>o</STRONG> <STRONG>ncurses</STRONG> re-fetches the value of the environment variables so that
+ <STRONG>o</STRONG> <EM>ncurses</EM> re-fetches the value of the environment variables so that
it is still the environment variables which set the screen size.
- The <STRONG>use_env</STRONG> and <STRONG>use_tioctl</STRONG> routines combine as summarized here:
+ The <STRONG>use_env</STRONG> and <STRONG>use_tioctl</STRONG> routines combine as follows.
- <EM>use</EM><STRONG>_</STRONG><EM>env</EM> <EM>use</EM><STRONG>_</STRONG><EM>tioctl</EM> <EM>Summary</EM>
- ----------------------------------------------------------------
- TRUE FALSE This is the default behavior. <STRONG>ncurses</STRONG>
- uses operating system calls unless over-
- ridden by $LINES or $COLUMNS environment
- variables.
+ <STRONG>use_env</STRONG> <STRONG>use_tioctl</STRONG> <STRONG>Summary</STRONG>
+ -----------------------------------------------------------------
+ <STRONG>TRUE</STRONG> <STRONG>FALSE</STRONG> This is the default behavior. <EM>ncurses</EM>
+ uses operating system calls unless
+ overridden by <EM>LINES</EM> or <EM>COLUMNS</EM>
+ environment variables; default.
+ <STRONG>TRUE</STRONG> <STRONG>TRUE</STRONG> <EM>ncurses</EM> updates <EM>LINES</EM> and <EM>COLUMNS</EM> based
+ on operating system calls.
+ <STRONG>FALSE</STRONG> <STRONG>TRUE</STRONG> <EM>ncurses</EM> ignores <EM>LINES</EM> and <EM>COLUMNS</EM>, using
+ operating system calls to obtain size.
- TRUE TRUE <STRONG>ncurses</STRONG> updates $LINES and $COLUMNS
- based on operating system calls.
- FALSE TRUE <STRONG>ncurses</STRONG> ignores $LINES and $COLUMNS, us-
- es operating system calls to obtain
- size.
- FALSE FALSE <STRONG>ncurses</STRONG> relies on the terminal database
- to determine size.
+</PRE><H3><a name="h3-putwin_getwin">putwin, getwin</a></H3><PRE>
+ The <STRONG>putwin</STRONG> routine writes all data associated with window (or pad) <EM>win</EM>
+ into the file to which <EM>filep</EM> points. This information can be later
+ retrieved using the <STRONG>getwin</STRONG> function.
-</PRE><H3><a name="h3-putwin_getwin">putwin/getwin</a></H3><PRE>
- The <STRONG>putwin</STRONG> routine writes all data associated with window (or pad) <EM>win</EM>
- into the file to which <EM>filep</EM> points. This information can be later re-
- trieved using the <STRONG>getwin</STRONG> function.
-
- The <STRONG>getwin</STRONG> routine reads window related data stored in the file by
- <STRONG>putwin</STRONG>. The routine then creates and initializes a new window using
- that data. It returns a pointer to the new window. There are a few
+ The <STRONG>getwin</STRONG> routine reads window related data stored in the file by
+ <STRONG>putwin</STRONG>. The routine then creates and initializes a new window using
+ that data. It returns a pointer to the new window. There are a few
caveats:
- <STRONG>o</STRONG> the data written is a copy of the <STRONG>WINDOW</STRONG> structure, and its associ-
- ated character cells. The format differs between the wide-charac-
- ter (<STRONG>ncursesw</STRONG>) and non-wide (<STRONG>ncurses</STRONG>) libraries. You can transfer
- data between the two, however.
+ <STRONG>o</STRONG> the data written is a copy of the <EM>WINDOW</EM> structure, and its
+ associated character cells. The format differs between the wide-
+ character (<EM>ncursesw</EM>) and non-wide (<EM>ncurses</EM>) libraries. You can
+ transfer data between the two, however.
- <STRONG>o</STRONG> the retrieved window is always created as a top-level window (or
+ <STRONG>o</STRONG> the retrieved window is always created as a top-level window (or
pad), rather than a subwindow.
- <STRONG>o</STRONG> the window's character cells contain the color pair <EM>value</EM>, but not
- the actual color <EM>numbers</EM>. If cells in the retrieved window use
- color pairs which have not been created in the application using
+ <STRONG>o</STRONG> the window's character cells contain the color pair <EM>value</EM>, but not
+ the actual color <EM>numbers</EM>. If cells in the retrieved window use
+ color pairs which have not been created in the application using
<STRONG>init_pair</STRONG>, they will not be colored when the window is refreshed.
</PRE><H3><a name="h3-delay_output">delay_output</a></H3><PRE>
- The <STRONG>delay_output</STRONG> routine inserts an <EM>ms</EM> millisecond pause in output.
- This routine should not be used extensively because padding characters
- are used rather than a CPU pause. If no padding character is speci-
- fied, this uses <STRONG>napms</STRONG> to perform the delay.
+ The <STRONG>delay_output</STRONG> routine inserts an <EM>ms</EM> millisecond pause in output.
+ Employ this function judiciously when terminal output uses padding,
+ because <EM>ncurses</EM> transmits null characters (consuming CPU and I/O
+ resources) instead of sleeping and requesting resumption from the
+ operating system. Padding is used unless:
+
+ <STRONG>o</STRONG> the terminal description has <STRONG>npc</STRONG> (<STRONG>no_pad_char</STRONG>) capability, or
+
+ <STRONG>o</STRONG> the environment variable <STRONG>NCURSES_NO_PADDING</STRONG> is set.
+
+ If padding is not in use, <EM>ncurses</EM> uses <STRONG>napms</STRONG> to perform the delay. If
+ the value of <EM>ms</EM> exceeds 30,000 (thirty seconds), it is capped at that
+ value.
</PRE><H3><a name="h3-flushinp">flushinp</a></H3><PRE>
@@ -234,29 +254,43 @@
Routines that return pointers return <STRONG>NULL</STRONG> on error.
- X/Open does not define any error conditions. In this implementation
+ X/Open Curses does not specify any error conditions. In this
+ implementation
<STRONG>flushinp</STRONG>
returns an error if the terminal was not initialized.
<STRONG>putwin</STRONG>
- returns an error if the associated <STRONG>fwrite</STRONG> calls return an er-
- ror.
+ returns an error if the associated <STRONG>fwrite</STRONG> calls return an
+ error.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
</PRE><H3><a name="h3-filter">filter</a></H3><PRE>
- The SVr4 documentation describes the action of <STRONG>filter</STRONG> only in the
- vaguest terms. The description here is adapted from the XSI Curses
- standard (which erroneously fails to describe the disabling of <STRONG>cuu</STRONG>).
+ The SVr4 documentation describes the action of <STRONG>filter</STRONG> only in the
+ vaguest terms. The description here is adapted from X/Open Curses
+ (which erroneously fails to describe the disabling of <STRONG>cuu</STRONG>).
+
+
+</PRE><H3><a name="h3-delay_output-padding">delay_output padding</a></H3><PRE>
+ The limitation to 30 seconds and the use of <STRONG>napms</STRONG> differ from other
+ implementations.
+
+ <STRONG>o</STRONG> SVr4 curses does not delay if no padding character is available.
+
+ <STRONG>o</STRONG> NetBSD curses uses <STRONG>napms</STRONG> when no padding character is available,
+ but does not take timing into account when using the padding
+ character.
+
+ Neither limits the delay.
</PRE><H3><a name="h3-keyname">keyname</a></H3><PRE>
- The <STRONG>keyname</STRONG> function may return the names of user-defined string capa-
- bilities which are defined in the terminfo entry via the <STRONG>-x</STRONG> option of
- <STRONG>tic</STRONG>. This implementation automatically assigns at run-time keycodes to
- user-defined strings which begin with "k". The keycodes start at
+ The <STRONG>keyname</STRONG> function may return the names of user-defined string
+ capabilities which are defined in the terminfo entry via the <STRONG>-x</STRONG> option
+ of <STRONG>tic</STRONG>. This implementation automatically assigns at run-time keycodes
+ to user-defined strings which begin with "k". The keycodes start at
KEY_MAX, but are not guaranteed to be the same value for different runs
because user-defined codes are merged from all terminal descriptions
which have been loaded. The <STRONG><A HREF="curs_extend.3x.html">use_extended_names(3x)</A></STRONG> function controls
@@ -264,19 +298,19 @@
the library.
-</PRE><H3><a name="h3-nofilter_use_tioctl">nofilter/use_tioctl</a></H3><PRE>
- The <STRONG>nofilter</STRONG> and <STRONG>use_tioctl</STRONG> routines are specific to <STRONG>ncurses</STRONG>. They
+</PRE><H3><a name="h3-nofilter_use_tioctl">nofilter, use_tioctl</a></H3><PRE>
+ The <STRONG>nofilter</STRONG> and <STRONG>use_tioctl</STRONG> routines are specific to <EM>ncurses</EM>. They
were not supported on Version 7, BSD or System V implementations. It
- is recommended that any code depending on <STRONG>ncurses</STRONG> extensions be condi-
- tioned using NCURSES_VERSION.
+ is recommended that any code depending on <EM>ncurses</EM> extensions be
+ conditioned using <STRONG>NCURSES_VERSION</STRONG>.
-</PRE><H3><a name="h3-putwin_getwin">putwin/getwin</a></H3><PRE>
+</PRE><H3><a name="h3-putwin_getwin-file-format">putwin/getwin file-format</a></H3><PRE>
The <STRONG>putwin</STRONG> and <STRONG>getwin</STRONG> functions have several issues with portability:
- <STRONG>o</STRONG> The files written and read by these functions use an implementa-
- tion-specific format. Although the format is an obvious target for
- standardization, it has been overlooked.
+ <STRONG>o</STRONG> The files written and read by these functions use an
+ implementation-specific format. Although the format is an obvious
+ target for standardization, it has been overlooked.
Interestingly enough, according to the copyright dates in Solaris
source, the functions (along with <STRONG>scr_init</STRONG>, etc.) originated with
@@ -284,9 +318,9 @@
1988) incorporated into SVr4. Oddly, there are no such functions
in the 4.3BSD curses sources.
- <STRONG>o</STRONG> Most implementations simply dump the binary <STRONG>WINDOW</STRONG> structure to the
+ <STRONG>o</STRONG> Most implementations simply dump the binary <EM>WINDOW</EM> structure to the
file. These include SVr4 curses, NetBSD and PDCurses, as well as
- older <STRONG>ncurses</STRONG> versions. This implementation (as well as the X/Open
+ older <EM>ncurses</EM> versions. This implementation (as well as the X/Open
variant of Solaris curses, dated 1995) uses textual dumps.
The implementations which use binary dumps use block-I/O (the
@@ -298,20 +332,20 @@
file written using mixed schemes may not be successful.
-</PRE><H3><a name="h3-unctrl_wunctrl">unctrl/wunctrl</a></H3><PRE>
- The XSI Curses standard, Issue 4 describes these functions. It states
- that <STRONG>unctrl</STRONG> and <STRONG>wunctrl</STRONG> will return a null pointer if unsuccessful, but
- does not define any error conditions. This implementation checks for
- three cases:
+</PRE><H3><a name="h3-unctrl_wunctrl">unctrl, wunctrl</a></H3><PRE>
+ X/Open Curses, Issue 4 describes these functions. It states that
+ <STRONG>unctrl</STRONG> and <STRONG>wunctrl</STRONG> will return a null pointer if unsuccessful, but does
+ not define any error conditions. This implementation checks for three
+ cases:
<STRONG>o</STRONG> the parameter is a 7-bit US-ASCII code. This is the case that
X/Open Curses documented.
<STRONG>o</STRONG> the parameter is in the range 128-159, i.e., a C1 control code. If
<STRONG><A HREF="legacy_coding.3x.html">use_legacy_coding(3x)</A></STRONG> has been called with a <STRONG>2</STRONG> parameter, <STRONG>unctrl</STRONG>
- returns the parameter, i.e., a one-character string with the param-
- eter as the first character. Otherwise, it returns "~@", "~A",
- etc., analogous to "^@", "^A", C0 controls.
+ returns the parameter, i.e., a one-character string with the
+ parameter as the first character. Otherwise, it returns "~@",
+ "~A", etc., analogous to "^@", "^A", C0 controls.
X/Open Curses does not document whether <STRONG>unctrl</STRONG> can be called before
initializing curses. This implementation permits that, and returns
@@ -322,42 +356,43 @@
The strings returned by <STRONG>unctrl</STRONG> in this implementation are determined at
compile time, showing C1 controls from the upper-128 codes with a "~"
- prefix rather than "^". Other implementations have different conven-
- tions. For example, they may show both sets of control characters with
- "^", and strip the parameter to 7 bits. Or they may ignore C1 controls
- and treat all of the upper-128 codes as printable. This implementation
- uses 8 bits but does not modify the string to reflect locale. The
- <STRONG><A HREF="legacy_coding.3x.html">use_legacy_coding(3x)</A></STRONG> function allows the caller to change the output
- of <STRONG>unctrl</STRONG>.
+ prefix rather than "^". Other implementations have different
+ conventions. For example, they may show both sets of control
+ characters with "^", and strip the parameter to 7 bits. Or they may
+ ignore C1 controls and treat all of the upper-128 codes as printable.
+ This implementation uses 8 bits but does not modify the string to
+ reflect locale. The <STRONG><A HREF="legacy_coding.3x.html">use_legacy_coding(3x)</A></STRONG> function allows the caller
+ to change the output of <STRONG>unctrl</STRONG>.
Likewise, the <STRONG><A HREF="curs_inopts.3x.html">meta(3x)</A></STRONG> function allows the caller to change the output
of <STRONG>keyname</STRONG>, i.e., it determines whether to use the "M-" prefix for
- "meta" keys (codes in the range 128 to 255). Both <STRONG>use_legacy_cod-</STRONG>
- <STRONG><A HREF="use_legacy_coding.3x.html">ing(3x)</A></STRONG> and <STRONG><A HREF="curs_inopts.3x.html">meta(3x)</A></STRONG> succeed only after curses is initialized. X/Open
- Curses does not document the treatment of codes 128 to 159. When
- treating them as "meta" keys (or if <STRONG>keyname</STRONG> is called before initializ-
- ing curses), this implementation returns strings "M-^@", "M-^A", etc.
-
- X/Open Curses documents <STRONG>unctrl</STRONG> as declared in <STRONG>&lt;unctrl.h&gt;</STRONG>, which <STRONG>ncurses</STRONG>
- does. However, <STRONG>ncurses</STRONG>' <STRONG>&lt;curses.h&gt;</STRONG> includes <STRONG>&lt;unctrl.h&gt;</STRONG>, matching the
+ "meta" keys (codes in the range 128 to 255). Both
+ <STRONG><A HREF="legacy_coding.3x.html">use_legacy_coding(3x)</A></STRONG> and <STRONG><A HREF="curs_inopts.3x.html">meta(3x)</A></STRONG> succeed only after curses is
+ initialized. X/Open Curses does not document the treatment of codes
+ 128 to 159. When treating them as "meta" keys (or if <STRONG>keyname</STRONG> is called
+ before initializing curses), this implementation returns strings
+ "M-^@", "M-^A", etc.
+
+ X/Open Curses documents <STRONG>unctrl</STRONG> as declared in <STRONG>&lt;unctrl.h&gt;</STRONG>, which <EM>ncurses</EM>
+ does. However, <EM>ncurses</EM>' <STRONG>&lt;curses.h&gt;</STRONG> includes <STRONG>&lt;unctrl.h&gt;</STRONG>, matching the
behavior of SVr4 curses. Other implementations may not do that.
-</PRE><H3><a name="h3-use_env_use_tioctl">use_env/use_tioctl</a></H3><PRE>
- If <STRONG>ncurses</STRONG> is configured to provide the sp-functions extension, the
- state of <STRONG>use_env</STRONG> and <STRONG>use_tioctl</STRONG> may be updated before creating each
- <EM>screen</EM> rather than once only (<STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG>). This feature of
- <STRONG>use_env</STRONG> is not provided by other implementation of curses.
+</PRE><H3><a name="h3-use_env_use_tioctl">use_env, use_tioctl</a></H3><PRE>
+ If <EM>ncurses</EM> is configured to provide the sp-functions extension, the
+ state of <STRONG>use_env</STRONG> and <STRONG>use_tioctl</STRONG> may be updated before creating each
+ <EM>screen</EM> rather than once only (<STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG>). This feature of
+ <STRONG>use_env</STRONG> is not provided by other implementations of curses.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>, <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>,
- <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>, <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, <STRONG>legacy_cod-</STRONG>
- <STRONG><A HREF="legacy_coding.3x.html">ing(3x)</A></STRONG>.
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>, <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>,
+ <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>, <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>,
+ <STRONG><A HREF="legacy_coding.3x.html">legacy_coding(3x)</A></STRONG>
- <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -366,11 +401,11 @@
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
<ul>
<li><a href="#h3-unctrl">unctrl</a></li>
-<li><a href="#h3-keyname_key_name">keyname/key_name</a></li>
-<li><a href="#h3-filter_nofilter">filter/nofilter</a></li>
+<li><a href="#h3-keyname_key_name">keyname, key_name</a></li>
+<li><a href="#h3-filter_nofilter">filter, nofilter</a></li>
<li><a href="#h3-use_env">use_env</a></li>
<li><a href="#h3-use_tioctl">use_tioctl</a></li>
-<li><a href="#h3-putwin_getwin">putwin/getwin</a></li>
+<li><a href="#h3-putwin_getwin">putwin, getwin</a></li>
<li><a href="#h3-delay_output">delay_output</a></li>
<li><a href="#h3-flushinp">flushinp</a></li>
</ul>
@@ -379,11 +414,12 @@
<li><a href="#h2-PORTABILITY">PORTABILITY</a>
<ul>
<li><a href="#h3-filter">filter</a></li>
+<li><a href="#h3-delay_output-padding">delay_output padding</a></li>
<li><a href="#h3-keyname">keyname</a></li>
-<li><a href="#h3-nofilter_use_tioctl">nofilter/use_tioctl</a></li>
-<li><a href="#h3-putwin_getwin">putwin/getwin</a></li>
-<li><a href="#h3-unctrl_wunctrl">unctrl/wunctrl</a></li>
-<li><a href="#h3-use_env_use_tioctl">use_env/use_tioctl</a></li>
+<li><a href="#h3-nofilter_use_tioctl">nofilter, use_tioctl</a></li>
+<li><a href="#h3-putwin_getwin-file-format">putwin/getwin file-format</a></li>
+<li><a href="#h3-unctrl_wunctrl">unctrl, wunctrl</a></li>
+<li><a href="#h3-use_env_use_tioctl">use_env, use_tioctl</a></li>
</ul>
</li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
diff --git a/doc/html/man/curs_variables.3x.html b/doc/html/man/curs_variables.3x.html
index e91e6af3a506..92ae9851fdf2 100644
--- a/doc/html/man/curs_variables.3x.html
+++ b/doc/html/man/curs_variables.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 2010-2015,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,188 +27,275 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_variables.3x,v 1.15 2020/04/18 14:29:07 tom Exp @
+ * @Id: curs_variables.3x,v 1.47 2024/04/13 22:37:35 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_variables 3x</TITLE>
+<TITLE>curs_variables 3x 2024-04-13 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_variables 3x</H1>
+<H1 class="no-header">curs_variables 3x 2024-04-13 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG> <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>
+<STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>COLORS</STRONG>, <STRONG>COLOR_PAIRS</STRONG>, <STRONG>COLS</STRONG>, <STRONG>ESCDELAY</STRONG>, <STRONG>LINES</STRONG>, <STRONG>TABSIZE</STRONG>, <STRONG>curscr</STRONG>, <STRONG>newscr</STRONG>,
- <STRONG>stdscr</STRONG> - <STRONG>curses</STRONG> global variables
+ <EM>bool</EM>, <EM>chtype</EM>, <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM>, <EM>attr</EM><STRONG>_</STRONG><EM>t</EM>, <EM>SCREEN</EM>, <EM>WINDOW</EM>, <STRONG>TRUE</STRONG>, <STRONG>FALSE</STRONG>, <STRONG>ERR</STRONG>, <STRONG>OK</STRONG>,
+ <STRONG>curscr</STRONG>, <STRONG>newscr</STRONG>, <STRONG>stdscr</STRONG>, <STRONG>COLORS</STRONG>, <STRONG>COLOR_PAIRS</STRONG>, <STRONG>COLS</STRONG>, <STRONG>LINES</STRONG>, <STRONG>ESCDELAY</STRONG>,
+ <STRONG>TABSIZE</STRONG> - <EM>curses</EM> data types, constants, and global variables
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
<STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
- <STRONG>int</STRONG> <STRONG>COLOR_PAIRS;</STRONG>
+ <EM>/*</EM> <EM>data</EM> <EM>types</EM> <EM>*/</EM>
+ <STRONG>typedef</STRONG> <EM>/*</EM> <STRONG>...</STRONG> <EM>*/</EM> <STRONG>bool;</STRONG>
+ <STRONG>typedef</STRONG> <EM>/*</EM> <STRONG>...</STRONG> <EM>*/</EM> <STRONG>chtype;</STRONG>
+ <STRONG>typedef</STRONG> <EM>/*</EM> <STRONG>...</STRONG> <EM>*/</EM> <STRONG>cchar_t;</STRONG>
+ <STRONG>typedef</STRONG> <EM>/*</EM> <STRONG>...</STRONG> <EM>*/</EM> <STRONG>attr_t;</STRONG>
+ <STRONG>typedef</STRONG> <EM>/*</EM> <STRONG>...</STRONG> <EM>*/</EM> <STRONG>SCREEN;</STRONG>
+ <STRONG>typedef</STRONG> <EM>/*</EM> <STRONG>...</STRONG> <EM>*/</EM> <STRONG>WINDOW;</STRONG>
+
+ <EM>/*</EM> <EM>constants</EM> <EM>*/</EM>
+ <STRONG>const</STRONG> <STRONG>bool</STRONG> <STRONG>TRUE;</STRONG>
+ <STRONG>const</STRONG> <STRONG>bool</STRONG> <STRONG>FALSE;</STRONG>
+
+ <STRONG>const</STRONG> <EM>/*</EM> <STRONG>...</STRONG> <EM>*/</EM> <STRONG>ERR;</STRONG>
+ <STRONG>const</STRONG> <EM>/*</EM> <STRONG>...</STRONG> <EM>*/</EM> <STRONG>OK;</STRONG>
+
+ <EM>/*</EM> <EM>variables</EM> <EM>*/</EM>
<STRONG>int</STRONG> <STRONG>COLORS;</STRONG>
+ <STRONG>int</STRONG> <STRONG>COLOR_PAIRS;</STRONG>
<STRONG>int</STRONG> <STRONG>COLS;</STRONG>
- <STRONG>int</STRONG> <STRONG>ESCDELAY;</STRONG>
<STRONG>int</STRONG> <STRONG>LINES;</STRONG>
- <STRONG>int</STRONG> <STRONG>TABSIZE;</STRONG>
<STRONG>WINDOW</STRONG> <STRONG>*</STRONG> <STRONG>curscr;</STRONG>
- <STRONG>WINDOW</STRONG> <STRONG>*</STRONG> <STRONG>newscr;</STRONG>
<STRONG>WINDOW</STRONG> <STRONG>*</STRONG> <STRONG>stdscr;</STRONG>
+ <EM>/*</EM> <EM>extensions</EM> <EM>*/</EM>
+ <STRONG>int</STRONG> <STRONG>ESCDELAY;</STRONG>
+ <STRONG>int</STRONG> <STRONG>TABSIZE;</STRONG>
+ <STRONG>WINDOW</STRONG> <STRONG>*</STRONG> <STRONG>newscr;</STRONG>
+
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- This page summarizes variables provided by the <STRONG>curses</STRONG> library. A more
- complete description is given in the <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> manual page.
+ This page summarizes data types, constants, and variables provided by
+ the <EM>curses</EM> library. Locate further discussion in <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>.
- Depending on the configuration, these may be actual variables, or
- macros (see <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG> and <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>) which provide read-
- only access to <EM>curses</EM>'s state. In either case, applications should
- treat them as read-only to avoid confusing the library.
+ Depending on <EM>ncurses</EM>'s build-time configuration, the variables may
+ instead be macros (see <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG> and <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>) that
+ provide read-only access to the library's state. In either case,
+ applications should treat them as read-only to avoid confusing the
+ library.
-</PRE><H3><a name="h3-COLOR_PAIRS">COLOR_PAIRS</a></H3><PRE>
- After initializing curses, this variable contains the number of color
- pairs which the terminal can support. Usually the number of color
- pairs will be the product <STRONG>COLORS</STRONG>*<STRONG>COLORS</STRONG>, however this is not always
- true:
+</PRE><H2><a name="h2-CONSTANTS">CONSTANTS</a></H2><PRE>
- <STRONG>o</STRONG> a few terminals use HLS colors, which do not follow this rule
+</PRE><H3><a name="h3-TRUE_FALSE">TRUE, FALSE</a></H3><PRE>
+ The <EM>curses</EM> library defines <STRONG>TRUE</STRONG> and <STRONG>FALSE</STRONG> to represent the values of
+ the Boolean data type.
- <STRONG>o</STRONG> terminals supporting a large number of colors are limited by the
- number of color pairs that can be represented in a <EM>signed</EM> <EM>short</EM>
- value.
+</PRE><H3><a name="h3-ERR_OK">ERR, OK</a></H3><PRE>
+ <EM>curses</EM> and <EM>terminfo</EM> routines frequently return these constant integral
+ values indicating failure and success, respectively.
-</PRE><H3><a name="h3-COLORS">COLORS</a></H3><PRE>
- After initializing curses, this variable contains the number of colors
- which the terminal can support.
+</PRE><H2><a name="h2-PREDEFINED-TYPES">PREDEFINED TYPES</a></H2><PRE>
-</PRE><H3><a name="h3-COLS">COLS</a></H3><PRE>
- After initializing curses, this variable contains the width of the
- screen, i.e., the number of columns.
+</PRE><H3><a name="h3-bool"><EM>bool</EM></a></H3><PRE>
+ X/Open Issue 4 <EM>curses</EM> (1996) preceded the ISO C99 and ISO C++98
+ standards, each of which also defined a Boolean data type. The <EM>curses</EM>
+ library requires an integral type <EM>bool</EM>.
+ <STRONG>ncurses</STRONG>' configure script attempts to discover the data type used by
+ the system's C and C++ compilers, to reuse for the <EM>curses</EM> <EM>bool</EM>.
-</PRE><H3><a name="h3-ESCDELAY">ESCDELAY</a></H3><PRE>
- This variable holds the number of milliseconds to wait after reading an
- escape character, to distinguish between an individual escape character
- entered on the keyboard from escape sequences sent by cursor- and func-
- tion-keys (see <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>).
+</PRE><H3><a name="h3-chtype"><EM>chtype</EM></a></H3><PRE>
+ The <EM>chtype</EM> integral type combines a ("narrow", 8-bit) character with
+ attributes encoding the character's <EM>rendition</EM>, such as the styling of
+ its typeface and/or foreground and background colors. See, for
+ example, <STRONG><A HREF="curs_addch.3x.html">addch(3x)</A></STRONG>, <STRONG><A HREF="curs_attr.3x.html">attron(3x)</A></STRONG>, and <STRONG><A HREF="curs_inch.3x.html">inch(3x)</A></STRONG>.
-</PRE><H3><a name="h3-LINES">LINES</a></H3><PRE>
- After initializing curses, this variable contains the height of the
- screen, i.e., the number of lines.
+</PRE><H3><a name="h3-cchar_t_attr_t"><EM>cchar_t,</EM> attr_t</a></H3><PRE>
+ <EM>chtype</EM> is too small for the standard C library's wide-character type,
+ <EM>wchar</EM><STRONG>_</STRONG><EM>t</EM>. <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM> is a type that can accommodate an <EM>attr</EM><STRONG>_</STRONG><EM>t</EM> and enough
+ wide characters to store what Unicode terms a <EM>grapheme</EM> <EM>cluster</EM> (a
+ "user-perceived character" [UAX #29], which may nevertheless require
+ several character encoding units to represent). <EM>attr</EM><STRONG>_</STRONG><EM>t</EM> is an integral
+ type storing "wide" attributes that apply to <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM>s. See, for
+ example, <STRONG><A HREF="curs_add_wch.3x.html">add_wch(3x)</A></STRONG>, <STRONG><A HREF="curs_attr.3x.html">attr_on(3x)</A></STRONG>, and <STRONG><A HREF="curs_in_wch.3x.html">in_wch(3x)</A></STRONG>.
-</PRE><H3><a name="h3-TABSIZE">TABSIZE</a></H3><PRE>
- This variable holds the number of columns used by the <EM>curses</EM> library
- when converting a tab character to spaces as it adds the tab to a win-
- dow (see <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>.
+</PRE><H3><a name="h3-SCREEN"><EM>SCREEN</EM></a></H3><PRE>
+ <EM>curses</EM> manages a terminal device with this structure type; see
+ <STRONG><A HREF="curs_initscr.3x.html">initscr(3x)</A></STRONG>.
+
+
+</PRE><H3><a name="h3-WINDOW"><EM>WINDOW</EM></a></H3><PRE>
+ <EM>curses</EM> represents rectangular portions of the terminal screen with the
+ <EM>WINDOW</EM> structure type; see subsection "Overview" of <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>.
+
+
+</PRE><H2><a name="h2-VARIABLES">VARIABLES</a></H2><PRE>
+
+</PRE><H3><a name="h3-curscr_stdscr_newscr">curscr, stdscr, newscr</a></H3><PRE>
+ The library records updates to the terminal screen in a window named
+ <STRONG>curscr</STRONG>. This object is referred to as the "physical screen" in
+ <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG> and <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>.
-</PRE><H3><a name="h3-The-Current-Screen">The Current Screen</a></H3><PRE>
- This implementation of curses uses a special window <STRONG>curscr</STRONG> to record
- its updates to the terminal screen.
+ <EM>ncurses</EM> collects pending updates to the terminal screen in a window
+ named <STRONG>newscr</STRONG>. This object is referred to as the "virtual screen" in
+ the <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, and <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>. When the
+ screen is refreshed, <EM>curses</EM> determines a minimal set of updates using
+ the terminal's capabilities to make <STRONG>curscr</STRONG> look like <STRONG>newscr</STRONG>.
- This is referred to as the "physical screen" in the <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
- and <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG> manual pages.
+ Once <EM>curses</EM> is initialized, it creates a window named <STRONG>stdscr</STRONG>. It is
+ the same size as the terminal screen and is the default window used by
+ routines that do not take a parameter identifying one. Many <EM>curses</EM>
+ functions use this window.
-</PRE><H3><a name="h3-The-New-Screen">The New Screen</a></H3><PRE>
- This implementation of curses uses a special window <STRONG>newscr</STRONG> to hold up-
- dates to the terminal screen before applying them to <STRONG>curscr</STRONG>.
+</PRE><H3><a name="h3-COLORS">COLORS</a></H3><PRE>
+ Once <EM>curses</EM> is initialized, <STRONG>COLORS</STRONG> contains the number of colors
+ supported by the terminal; see <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>.
+
+
+</PRE><H3><a name="h3-COLOR_PAIRS">COLOR_PAIRS</a></H3><PRE>
+ Once <EM>curses</EM> is initialized, <STRONG>COLOR_PAIRS</STRONG> contains the number of color
+ pairs supported by the terminal; see <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>.
+
- This is referred to as the "virtual screen" in the <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>,
- <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG> and <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG> manual pages.
+</PRE><H3><a name="h3-COLS_LINES">COLS, LINES</a></H3><PRE>
+ Once <EM>curses</EM> is initialized, <STRONG>COLS</STRONG> and <STRONG>LINES</STRONG> contain the screen's width
+ and height in character cells, respectively; that is, the number of
+ columns and lines.
-</PRE><H3><a name="h3-The-Standard-Screen">The Standard Screen</a></H3><PRE>
- Upon initializing curses, a default window called <STRONG>stdscr</STRONG>, which is the
- size of the terminal screen, is created. Many curses functions use
- this window.
+</PRE><H3><a name="h3-ESCDELAY">ESCDELAY</a></H3><PRE>
+ For <EM>curses</EM> to distinguish the ESC character resulting from a user's
+ press of the "Escape" key on the input device from one beginning an
+ <EM>escape</EM> <EM>sequence</EM> (as commonly produced by function keys), it waits after
+ the escape character to see if further characters are available on the
+ input stream within a short interval. <STRONG>ESCDELAY</STRONG> stores this interval in
+ milliseconds.
+
+ If <STRONG><A HREF="curs_inopts.3x.html">keypad(3x)</A></STRONG> is disabled for the <EM>curses</EM> window receiving input, a
+ program must disambiguate escape sequences itself.
+
+
+</PRE><H3><a name="h3-TABSIZE">TABSIZE</a></H3><PRE>
+ The <EM>curses</EM> library converts a tab character to this number of spaces as
+ it adds a tab to a window; see <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>.
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The curses library is initialized using either <STRONG><A HREF="curs_initscr.3x.html">initscr(3x)</A></STRONG>, or
- <STRONG><A HREF="curs_initscr.3x.html">newterm(3x)</A></STRONG>.
+ Either <STRONG><A HREF="curs_initscr.3x.html">initscr(3x)</A></STRONG> or <STRONG><A HREF="curs_initscr.3x.html">newterm(3x)</A></STRONG> initializes <EM>curses</EM>.
- If <STRONG>curses</STRONG> is configured to use separate curses/terminfo libraries, most
- of these variables reside in the curses library.
+ If <EM>ncurses</EM> is configured to provide separate <EM>curses</EM> and <EM>tinfo</EM>
+ libraries, most of these variables reside in the former.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- <STRONG>TABSIZE</STRONG> is a feature of SVr4 curses which is not documented by X/Open
- curses.
+ The X/Open Curses standard documents all of the foregoing types and
+ symbols except for <STRONG>newscr</STRONG>, <STRONG>TABSIZE</STRONG>, and <STRONG>ESCDELAY</STRONG>.
+
+ X/Open Curses describes <STRONG>curscr</STRONG> only as "an internal data structure";
+ SVr4 gave more details, noting its use "for certain low-level
+ operations like clearing and redrawing a screen containing garbage".
+ Neither specified its interaction with the rest of the interface beyond
+ use as an argument to <STRONG><A HREF="curs_outopts.3x.html">clearok(3x)</A></STRONG> and <STRONG><A HREF="curs_refresh.3x.html">wrefresh(3x)</A></STRONG>.
- <STRONG>o</STRONG> In SVr4 curses, <STRONG>TABSIZE</STRONG> is initially set from the terminal descrip-
- tion's <STRONG>init_tabs</STRONG> capability. After that, it can be altered by the
- applications using SVr4 curses.
+ <STRONG>newscr</STRONG> is a feature of SVr4 <EM>curses</EM>. When refreshing the screen, it is
+ used as a working area for combining the standard window <STRONG>stdscr</STRONG> with
+ any others the application may have created with <STRONG><A HREF="curs_window.3x.html">newwin(3x)</A></STRONG>. When the
+ update of <STRONG>newscr</STRONG> is complete, <EM>curses</EM> modifies <STRONG>curscr</STRONG> to match <STRONG>newscr</STRONG>.
- SVr4 curses uses the current value of <STRONG>TABSIZE</STRONG> to compute the posi-
- tion of tabstops for updating both the virtual screen with <STRONG>add-</STRONG>
- <STRONG><A HREF="addch.3x.html">ch(3x)</A></STRONG> as well as the physical screen with <STRONG><A HREF="curs_terminfo.3x.html">mvcur(3x)</A></STRONG>.
+ <STRONG>TABSIZE</STRONG> is a feature of SVr4 <EM>curses</EM>.
- <STRONG>o</STRONG> This implementation uses the current value of <STRONG>TABSIZE</STRONG> only for up-
- dating the virtual screen. It uses the terminal description's <STRONG>it</STRONG>
- (<STRONG>init_tabs</STRONG>) capability for computing hardware tabs (i.e., tab stops
- on the physical screen).
+ <STRONG>o</STRONG> SVr4 initially sets <STRONG>TABSIZE</STRONG> from the terminal description's
+ <STRONG>init_tabs</STRONG> capability. After that, it can be altered by
+ applications using SVr4 <EM>curses</EM>.
- <STRONG>o</STRONG> Other implementations differ. For instance, NetBSD curses allows
- <STRONG>TABSIZE</STRONG> to be set through an environment variable. This implemen-
- tation does not.
+ <STRONG>o</STRONG> SVr4 <EM>curses</EM> uses the value of <STRONG>TABSIZE</STRONG> to compute the position of
+ tab stops when updating both the virtual screen with <STRONG><A HREF="curs_addch.3x.html">addch(3x)</A></STRONG> and
+ the physical screen with <STRONG><A HREF="curs_terminfo.3x.html">mvcur(3x)</A></STRONG>.
- NetBSD curses does not support hardware tabs; it uses the <STRONG>init_tabs</STRONG>
- capability and the <STRONG>TABSIZE</STRONG> variable only for updating the virtual
+ <STRONG>o</STRONG> <EM>ncurses</EM> uses the value of <STRONG>TABSIZE</STRONG> only to update the virtual
+ screen. It uses the terminal description's "<STRONG>it</STRONG>" (<STRONG>init_tabs</STRONG>)
+ capability for computing hardware tabs (that is, tab stops on the
+ physical screen).
+
+ <STRONG>o</STRONG> Other implementations differ. For instance, NetBSD <EM>curses</EM> allows
+ <STRONG>TABSIZE</STRONG> to be set through an environment variable. <EM>ncurses</EM> does
+ not.
+
+ NetBSD <EM>curses</EM> does not support hardware tabs; it uses the <STRONG>init_tabs</STRONG>
+ capability and the <STRONG>TABSIZE</STRONG> variable only for updating the virtual
screen.
- <STRONG>ESCDELAY</STRONG> is an extension in AIX curses:
+ <STRONG>ESCDELAY</STRONG> is a feature of AIX <EM>curses</EM>.
- <STRONG>o</STRONG> In AIX, the units for <STRONG>ESCDELAY</STRONG> are <EM>fifths</EM> of a millisecond.
+ <STRONG>o</STRONG> In AIX, the units for <STRONG>ESCDELAY</STRONG> are <EM>fifths</EM> of milliseconds.
- <STRONG>o</STRONG> The default value for AIX's <STRONG>ESCDELAY</STRONG> is 0.1 seconds.
+ <STRONG>o</STRONG> The default value for AIX's <STRONG>ESCDELAY</STRONG> equals 0.1 seconds.
- <STRONG>o</STRONG> AIX also enforces a limit of 10,000 seconds for <STRONG>ESCDELAY</STRONG>; this im-
- plementation currently has no upper limit.
+ <STRONG>o</STRONG> AIX also enforces a limit of 10,000 seconds for <STRONG>ESCDELAY</STRONG>; <EM>ncurses</EM>
+ does not enforce any upper limit.
- This implementation has long used <STRONG>ESCDELAY</STRONG> with units of milliseconds,
- making it impossible to be completely compatible with AIX. Likewise,
- most users have either decided to override the value, or rely upon its
- default value.
+ <EM>ncurses</EM> has long used <STRONG>ESCDELAY</STRONG> with units of milliseconds, making it
+ impossible to be completely compatible with AIX. Consequently, most
+ users have decided either to override the value, or to rely upon its
+ default.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>, <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>, <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>,
- <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>, <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>, <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>,
+ <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>, <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
+
+ [UAX #29] "Unicode Standard Annex #29: Unicode Text Segmentation";
+ &lt;https://unicode.org/reports/tr29/&gt;
- <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>
+ncurses 6.5 2024-04-13 <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<li><a href="#h2-NAME">NAME</a></li>
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
-<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
+<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
+<li><a href="#h2-CONSTANTS">CONSTANTS</a>
<ul>
-<li><a href="#h3-COLOR_PAIRS">COLOR_PAIRS</a></li>
+<li><a href="#h3-TRUE_FALSE">TRUE, FALSE</a></li>
+<li><a href="#h3-ERR_OK">ERR, OK</a></li>
+</ul>
+</li>
+<li><a href="#h2-PREDEFINED-TYPES">PREDEFINED TYPES</a>
+<ul>
+<li><a href="#h3-bool">bool</a></li>
+<li><a href="#h3-chtype">chtype</a></li>
+<li><a href="#h3-cchar_t_attr_t">cchar_t, attr_t</a></li>
+<li><a href="#h3-SCREEN">SCREEN</a></li>
+<li><a href="#h3-WINDOW">WINDOW</a></li>
+</ul>
+</li>
+<li><a href="#h2-VARIABLES">VARIABLES</a>
+<ul>
+<li><a href="#h3-curscr_stdscr_newscr">curscr, stdscr, newscr</a></li>
<li><a href="#h3-COLORS">COLORS</a></li>
-<li><a href="#h3-COLS">COLS</a></li>
+<li><a href="#h3-COLOR_PAIRS">COLOR_PAIRS</a></li>
+<li><a href="#h3-COLS_LINES">COLS, LINES</a></li>
<li><a href="#h3-ESCDELAY">ESCDELAY</a></li>
-<li><a href="#h3-LINES">LINES</a></li>
<li><a href="#h3-TABSIZE">TABSIZE</a></li>
-<li><a href="#h3-The-Current-Screen">The Current Screen</a></li>
-<li><a href="#h3-The-New-Screen">The New Screen</a></li>
-<li><a href="#h3-The-Standard-Screen">The Standard Screen</a></li>
</ul>
</li>
<li><a href="#h2-NOTES">NOTES</a></li>
diff --git a/doc/html/man/curs_window.3x.html b/doc/html/man/curs_window.3x.html
index 786ca4f93fe9..ea99659ecf62 100644
--- a/doc/html/man/curs_window.3x.html
+++ b/doc/html/man/curs_window.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020-2023,2024 Thomas E. Dickey *
* Copyright 1998-2015,2016 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,28 +27,28 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_window.3x,v 1.21 2020/02/02 23:34:34 tom Exp @
+ * @Id: curs_window.3x,v 1.48 2024/04/20 21:20:07 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_window 3x</TITLE>
+<TITLE>curs_window 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_window 3x</H1>
+<H1 class="no-header">curs_window 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG> <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
+<STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>newwin</STRONG>, <STRONG>delwin</STRONG>, <STRONG>mvwin</STRONG>, <STRONG>subwin</STRONG>, <STRONG>derwin</STRONG>, <STRONG>mvderwin</STRONG>, <STRONG>dupwin</STRONG>, <STRONG>wsyncup</STRONG>,
- <STRONG>syncok</STRONG>, <STRONG>wcursyncup</STRONG>, <STRONG>wsyncdown</STRONG> - create <STRONG>curses</STRONG> windows
+ <STRONG>newwin</STRONG>, <STRONG>delwin</STRONG>, <STRONG>mvwin</STRONG>, <STRONG>subwin</STRONG>, <STRONG>derwin</STRONG>, <STRONG>mvderwin</STRONG>, <STRONG>dupwin</STRONG>, <STRONG>wsyncup</STRONG>,
+ <STRONG>syncok</STRONG>, <STRONG>wcursyncup</STRONG>, <STRONG>wsyncdown</STRONG> - create and manipulate <EM>curses</EM> windows
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -88,11 +88,19 @@
A new full-screen window is created by calling <STRONG>newwin(0,0,0,0)</STRONG>.
+ Regardless of the function used for creating a new window (e.g.,
+ <STRONG>newwin</STRONG>, <STRONG>subwin</STRONG>, <STRONG>derwin</STRONG>, <STRONG>newpad</STRONG>), rather than a duplicate (with <STRONG>dupwin</STRONG>),
+ all of the window modes are initialized to the default values. These
+ functions set window modes after a window is created:
+
+ <STRONG>idcok</STRONG> <STRONG>idlok</STRONG> <STRONG>immedok</STRONG> <STRONG>keypad</STRONG> <STRONG>leaveok</STRONG> <STRONG>nodelay</STRONG> <STRONG>scrollok</STRONG> <STRONG>setscrreg</STRONG>
+ <STRONG>syncok</STRONG> <STRONG>wbkgdset</STRONG> <STRONG>wbkgrndset</STRONG> and <STRONG>wtimeout</STRONG>.
+
</PRE><H3><a name="h3-delwin">delwin</a></H3><PRE>
Calling <STRONG>delwin</STRONG> deletes the named window, freeing all memory associated
- with it (it does not actually erase the window's screen image). Sub-
- windows must be deleted before the main window can be deleted.
+ with it (it does not actually erase the window's screen image).
+ Subwindows must be deleted before the main window can be deleted.
</PRE><H3><a name="h3-mvwin">mvwin</a></H3><PRE>
@@ -106,19 +114,22 @@
Calling <STRONG>subwin</STRONG> creates and returns a pointer to a new window with the
given number of lines, <EM>nlines</EM>, and columns, <EM>ncols</EM>. The window is at
position (<EM>begin</EM>_<EM>y</EM>, <EM>begin</EM>_<EM>x</EM>) on the screen. The subwindow shares memory
- with the window <EM>orig</EM>, so that changes made to one window will affect
- both windows. When using this routine, it is necessary to call <STRONG>touch-</STRONG>
- <STRONG>win</STRONG> or <STRONG>touchline</STRONG> on <EM>orig</EM> before calling <STRONG>wrefresh</STRONG> on the subwindow.
+ with the window <EM>orig</EM>, its <EM>ancestor</EM>, so that changes made to one window
+ will affect both windows. When using this routine, it is necessary to
+ call <STRONG>touchwin</STRONG> or <STRONG>touchline</STRONG> on <EM>orig</EM> before calling <STRONG>wrefresh</STRONG> on the
+ subwindow.
</PRE><H3><a name="h3-derwin">derwin</a></H3><PRE>
- Calling <STRONG>derwin</STRONG> is the same as calling <STRONG>subwin,</STRONG> except that <EM>begin</EM>_<EM>y</EM> and
- <EM>begin</EM>_<EM>x</EM> are relative to the origin of the window <EM>orig</EM> rather than the
- screen. There is no difference between the subwindows and the derived
+ Calling <STRONG>derwin</STRONG> is the same as calling <STRONG>subwin,</STRONG> except that <EM>begin</EM>_<EM>y</EM> and
+ <EM>begin</EM>_<EM>x</EM> are relative to the origin of the window <EM>orig</EM> rather than the
+ screen. There is no difference between the subwindows and the derived
windows.
- Calling <STRONG>mvderwin</STRONG> moves a derived window (or subwindow) inside its par-
- ent window. The screen-relative parameters of the window are not
+
+</PRE><H3><a name="h3-mvderwin">mvderwin</a></H3><PRE>
+ Calling <STRONG>mvderwin</STRONG> moves a derived window (or subwindow) inside its
+ parent window. The screen-relative parameters of the window are not
changed. This routine is used to display different parts of the parent
window at the same physical position on the screen.
@@ -128,106 +139,124 @@
</PRE><H3><a name="h3-wsyncup">wsyncup</a></H3><PRE>
- Calling <STRONG>wsyncup</STRONG> touches all locations in ancestors of <EM>win</EM> that are
- changed in <EM>win</EM>. If <STRONG>syncok</STRONG> is called with second argument <STRONG>TRUE</STRONG> then
- <STRONG>wsyncup</STRONG> is called automatically whenever there is a change in the win-
- dow.
+ Calling <STRONG>wsyncup</STRONG> touches all locations in ancestors of <EM>win</EM> that are
+ changed in <EM>win</EM>. If <STRONG>syncok</STRONG> is called with second argument <STRONG>TRUE</STRONG> then
+ <STRONG>wsyncup</STRONG> is called automatically whenever there is a change in the
+ window.
</PRE><H3><a name="h3-wsyncdown">wsyncdown</a></H3><PRE>
- The <STRONG>wsyncdown</STRONG> routine touches each location in <EM>win</EM> that has been
- touched in any of its ancestor windows. This routine is called by <STRONG>wre-</STRONG>
- <STRONG>fresh</STRONG>, so it should almost never be necessary to call it manually.
+ The <STRONG>wsyncdown</STRONG> routine touches each location in <EM>win</EM> that has been
+ touched in any of its ancestor windows. This routine is called by
+ <STRONG>wrefresh</STRONG>, so it should almost never be necessary to call it manually.
</PRE><H3><a name="h3-wcursyncup">wcursyncup</a></H3><PRE>
- The routine <STRONG>wcursyncup</STRONG> updates the current cursor position of all the
- ancestors of the window to reflect the current cursor position of the
+ The routine <STRONG>wcursyncup</STRONG> updates the current cursor position of all the
+ ancestors of the window to reflect the current cursor position of the
window.
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
Routines that return an integer return the integer <STRONG>ERR</STRONG> upon failure and
- <STRONG>OK</STRONG> (SVr4 only specifies "an integer value other than <STRONG>ERR</STRONG>") upon suc-
- cessful completion.
+ <STRONG>OK</STRONG> (SVr4 only specifies "an integer value other than <STRONG>ERR</STRONG>") upon
+ successful completion.
Routines that return pointers return <STRONG>NULL</STRONG> on error.
X/Open defines no error conditions. In this implementation
<STRONG>delwin</STRONG>
- returns an error if the window pointer is null, or if the window
+ returns an error if the window pointer is null, or if the window
is the parent of another window.
<STRONG>derwin</STRONG>
- returns an error if the parent window pointer is null, or if any
- of its ordinates or dimensions is negative, or if the resulting
+ returns an error if the parent window pointer is null, or if any
+ of its ordinates or dimensions is negative, or if the resulting
window does not fit inside the parent window.
<STRONG>dupwin</STRONG>
returns an error if the window pointer is null.
- This implementation also maintains a list of windows, and checks
- that the pointer passed to <STRONG>delwin</STRONG> is one that it created, return-
- ing an error if it was not..
+ This implementation also maintains a list of windows, and checks
+ that the pointer passed to <STRONG>delwin</STRONG> is one that it created,
+ returning an error if it was not..
<STRONG>mvderwin</STRONG>
returns an error if the window pointer is null, or if some part of
the window would be placed off-screen.
<STRONG>mvwin</STRONG>
- returns an error if the window pointer is null, or if the window
- is really a pad, or if some part of the window would be placed
+ returns an error if the window pointer is null, or if the window
+ is really a pad, or if some part of the window would be placed
off-screen.
<STRONG>newwin</STRONG>
- will fail if either of its beginning ordinates is negative, or if
+ will fail if either of its beginning ordinates is negative, or if
either the number of lines or columns is negative.
<STRONG>syncok</STRONG>
returns an error if the window pointer is null.
<STRONG>subwin</STRONG>
- returns an error if the parent window pointer is null, or if any
- of its ordinates or dimensions is negative, or if the resulting
+ returns an error if the parent window pointer is null, or if any
+ of its ordinates or dimensions is negative, or if the resulting
window does not fit inside the parent window.
- The functions which return a window pointer may also fail if there is
- insufficient memory for its data structures. Any of these functions
+ The functions which return a window pointer may also fail if there is
+ insufficient memory for its data structures. Any of these functions
will fail if the screen has not been initialized, i.e., with <STRONG>initscr</STRONG> or
<STRONG>newterm</STRONG>.
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- If many small changes are made to the window, the <STRONG>wsyncup</STRONG> option could
+ If many small changes are made to the window, the <STRONG>wsyncup</STRONG> option could
degrade performance.
Note that <STRONG>syncok</STRONG> may be a macro.
-</PRE><H2><a name="h2-BUGS">BUGS</a></H2><PRE>
- The subwindow functions (<STRONG>subwin</STRONG>, <STRONG>derwin</STRONG>, <STRONG>mvderwin</STRONG>, <STRONG>wsyncup</STRONG>, <STRONG>wsyncdown</STRONG>,
- <STRONG>wcursyncup</STRONG>, <STRONG>syncok</STRONG>) are flaky, incompletely implemented, and not well
- tested.
+</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
+ X/Open Curses, Issue 4 describes these functions.
- The System V curses documentation is very unclear about what <STRONG>wsyncup</STRONG>
- and <STRONG>wsyncdown</STRONG> actually do. It seems to imply that they are only sup-
- posed to touch exactly those lines that are affected by ancestor
- changes. The language here, and the behavior of the <STRONG>curses</STRONG> implementa-
- tion, is patterned on the XPG4 curses standard. The weaker XPG4 spec
- may result in slower updates.
+ X/Open Curses states regarding <STRONG>delwin</STRONG>:
+ <STRONG>o</STRONG> It must delete subwindows before deleting their parent.
-</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- The XSI Curses standard, Issue 4 describes these functions.
+ <STRONG>o</STRONG> If <STRONG>delwin</STRONG> is asked to delete a parent window, it can only succeed
+ if the curses library keeps a list of the subwindows. SVr4 curses
+ kept a count of the number of subwindows rather than a list. It
+ simply returned <STRONG>ERR</STRONG> when asked to delete a subwindow. Solaris
+ X/Open curses does not even make that check, and will delete a
+ parent window which still has subwindows.
+
+ <STRONG>o</STRONG> Since release 4.0 (1996), <EM>ncurses</EM> maintains a list of windows for
+ each screen, to ensure that a window has no subwindows before
+ allowing deletion.
+
+ <STRONG>o</STRONG> NetBSD copied this feature of <EM>ncurses</EM> in 2003.
+ PDCurses follows the scheme used in Solaris X/Open curses.
+
+
+</PRE><H2><a name="h2-BUGS">BUGS</a></H2><PRE>
+ The subwindow functions <STRONG>subwin</STRONG>, <STRONG>derwin</STRONG>, <STRONG>mvderwin</STRONG>, <STRONG>wsyncup</STRONG>, <STRONG>wsyncdown</STRONG>,
+ <STRONG>wcursyncup</STRONG>, and <STRONG>syncok</STRONG> are flaky, incompletely implemented, and not
+ well tested.
+
+ System V's <EM>curses</EM> documentation is unclear about what <STRONG>wsyncup</STRONG> and
+ <STRONG>wsyncdown</STRONG> actually do. It seems to imply that they are supposed to
+ touch only those lines that are affected by changes to a window's
+ ancestors. The language here, and behavior of <EM>ncurses</EM>, is patterned on
+ the X/Open Curses standard; this approach may result in slower updates.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>,
+ <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>
- <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -240,6 +269,7 @@
<li><a href="#h3-mvwin">mvwin</a></li>
<li><a href="#h3-subwin">subwin</a></li>
<li><a href="#h3-derwin">derwin</a></li>
+<li><a href="#h3-mvderwin">mvderwin</a></li>
<li><a href="#h3-dupwin">dupwin</a></li>
<li><a href="#h3-wsyncup">wsyncup</a></li>
<li><a href="#h3-wsyncdown">wsyncdown</a></li>
@@ -248,8 +278,8 @@
</li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
<li><a href="#h2-NOTES">NOTES</a></li>
-<li><a href="#h2-BUGS">BUGS</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
+<li><a href="#h2-BUGS">BUGS</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
diff --git a/doc/html/man/default_colors.3x.html b/doc/html/man/default_colors.3x.html
index bb525b37205e..14a0f8e36507 100644
--- a/doc/html/man/default_colors.3x.html
+++ b/doc/html/man/default_colors.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 2000-2011,2016 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,28 +28,28 @@
* authorization. *
****************************************************************************
* Author: Thomas E. Dickey 1997,1999,2000,2005
- * @Id: default_colors.3x,v 1.31 2020/12/19 21:38:37 tom Exp @
+ * @Id: default_colors.3x,v 1.52 2024/04/13 22:17:22 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>default_colors 3x</TITLE>
+<TITLE>default_colors 3x 2024-04-13 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">default_colors 3x</H1>
+<H1 class="no-header">default_colors 3x 2024-04-13 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG> <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>
+<STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG> Library calls <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
<STRONG>use_default_colors</STRONG>, <STRONG>assume_default_colors</STRONG> - use terminal's default
- colors
+ colors in <EM>curses</EM>
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -90,15 +90,15 @@
<EM>use</EM><STRONG>_</STRONG><EM>default</EM><STRONG>_</STRONG><EM>colors();</EM>
<EM>assume</EM><STRONG>_</STRONG><EM>default</EM><STRONG>_</STRONG><EM>colors(-1,-1);</EM>
- These are ncurses extensions. For other curses implementations, color
- number -1 does not mean anything, just as for ncurses before a
+ These are <EM>ncurses</EM> extensions. For other curses implementations, color
+ number -1 does not mean anything, just as for <EM>ncurses</EM> before a
successful call of <STRONG>use_default_colors</STRONG> or <STRONG>assume_default_colors</STRONG>.
Other curses implementations do not allow an application to modify
color pair 0. They assume that the background is COLOR_BLACK, but do
not ensure that the color pair 0 is painted to match the assumption.
If your application does not use either <STRONG>use_default_colors</STRONG> or
- <STRONG>assume_default_colors</STRONG> ncurses will paint a white foreground (text) with
+ <STRONG>assume_default_colors</STRONG> <EM>ncurses</EM> will paint a white foreground (text) with
black background for color pair 0.
@@ -113,7 +113,7 @@
Associated with this extension, the <STRONG>init_pair</STRONG> function accepts negative
arguments to specify default foreground or background colors.
- The <STRONG>use_default_colors</STRONG> function was added to support <EM>ded</EM>. This is a
+ The <STRONG>use_default_colors</STRONG> function was added to support <STRONG>ded</STRONG>. This is a
full-screen application which uses curses to manage only part of the
screen. The bottom portion of the screen, which is of adjustable size,
is left uncolored to display the results from shell commands. The top
@@ -134,22 +134,22 @@
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines are specific to ncurses. They were not supported on
+ These routines are specific to <EM>ncurses</EM>. They were not supported on
Version 7, BSD or System V implementations. It is recommended that any
code depending on them be conditioned using NCURSES_VERSION.
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG>ded(1)</STRONG>, <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>.
-
-
-</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
+</PRE><H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
Thomas Dickey (from an analysis of the requirements for color xterm for
XFree86 3.1.2C, February 1996).
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG>ded(1)</STRONG>, <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
+
+
- <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>
+ncurses 6.5 2024-04-13 <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -159,8 +159,8 @@
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
+<li><a href="#h2-AUTHORS">AUTHORS</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-AUTHOR">AUTHOR</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/define_key.3x.html b/doc/html/man/define_key.3x.html
index a0f81a5590f4..d135e3109948 100644
--- a/doc/html/man/define_key.3x.html
+++ b/doc/html/man/define_key.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2010,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,27 +28,27 @@
* authorization. *
****************************************************************************
* Author: Thomas E. Dickey 1997
- * @Id: define_key.3x,v 1.18 2020/10/24 09:52:54 tom Exp @
+ * @Id: define_key.3x,v 1.42 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>define_key 3x</TITLE>
+<TITLE>define_key 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">define_key 3x</H1>
+<H1 class="no-header">define_key 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG> <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>
+<STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG> Library calls <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>define_key</STRONG> - define a keycode
+ <STRONG>define_key</STRONG> - define a <EM>curses</EM> keycode
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -58,39 +58,39 @@
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- This is an extension to the curses library. It permits an application
+ This is an extension to the <EM>curses</EM> library. It permits an application
to define keycodes with their corresponding control strings, so that
- the ncurses library will interpret them just as it would the predefined
+ the <EM>ncurses</EM> library will interpret them just as it would the predefined
codes in the terminfo database.
- If the given string is null, any existing definition for the keycode is
- removed. Similarly, if the given keycode is negative or zero, any
- existing string for the given definition is removed.
+ If <EM>definition</EM> is <STRONG>NULL</STRONG>, any existing one for the keycode is removed.
+ Similarly, if the given keycode is negative or zero, any existing
+ string for the given definition is removed.
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- The keycode must be greater than zero, and the string non-null,
- otherwise <STRONG>ERR</STRONG> is returned. <STRONG>ERR</STRONG> may also be returned if there is
+ Either <EM>keycode</EM> must be greater than zero, or <EM>definition</EM> must be non-
+ <STRONG>NULL</STRONG>, otherwise <STRONG>ERR</STRONG> is returned. <STRONG>ERR</STRONG> may also be returned if there is
insufficient memory to allocate the data to store the definition. If
no error is detected, <STRONG>OK</STRONG> is returned.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines are specific to ncurses. They were not supported on
+ These routines are specific to <EM>ncurses</EM>. They were not supported on
Version 7, BSD or System V implementations. It is recommended that any
- code depending on them be conditioned using NCURSES_VERSION.
+ code depending on them be conditioned using <STRONG>NCURSES_VERSION</STRONG>.
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>, <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>.
+</PRE><H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
+ Thomas Dickey
-</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
- Thomas Dickey.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>, <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>
- <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -99,8 +99,8 @@
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
+<li><a href="#h2-AUTHORS">AUTHORS</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-AUTHOR">AUTHOR</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/form.3x.html b/doc/html/man/form.3x.html
index 8b10dfa52660..fcdb7af1f5a7 100644
--- a/doc/html/man/form.3x.html
+++ b/doc/html/man/form.3x.html
@@ -1,7 +1,7 @@
-<!--
+<!--
* t
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,21 +28,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: form.3x,v 1.36 2020/12/12 16:34:33 tom Exp @
+ * @Id: form.3x,v 1.54 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>form 3x</TITLE>
+<TITLE>form 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">form 3x</H1>
+<H1 class="no-header">form 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="form.3x.html">form(3x)</A></STRONG> <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>
+<STRONG><A HREF="form.3x.html">form(3x)</A></STRONG> Library calls <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>
@@ -85,8 +85,8 @@
</PRE><H3><a name="h3-Routine-Name-Index">Routine Name Index</a></H3><PRE>
The following table lists each <STRONG>form</STRONG> routine and the name of the manual
- page on which it is described. Routines flagged with "*" are ncurses-
- specific, not present in SVr4.
+ page on which it is described. Routines flagged with "*" are
+ <EM>ncurses</EM>-specific, not present in SVr4.
<STRONG>curses</STRONG> Routine Name Manual Page Name
--------------------------------------------------
@@ -211,48 +211,41 @@
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header files
- <STRONG>&lt;curses.h&gt;</STRONG> and <STRONG>&lt;eti.h&gt;</STRONG>.
-
- In your library list, libform.a should be before libncurses.a; that is,
- you want to say "-lform -lncurses", not the other way around (which
- would give you a link error when using static libraries).
+ The header file <EM>form.h</EM> itself includes <EM>curses.h</EM>.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines emulate the System V forms library. They were not
+ These routines emulate the System V forms library. They were not
supported on Version 7 or BSD versions.
- The menu facility was documented in SVr4.2 in <EM>Character</EM> <EM>User</EM> <EM>Interface</EM>
- <EM>Programming</EM> <EM>(UNIX</EM> <EM>SVR4.2)</EM>.
+ A form facility was documented in SVr4.2's <EM>Character</EM> <EM>User</EM> <EM>Interface</EM>
+ <EM>Programming</EM> document.
It is not part of X/Open Curses.
- Aside from ncurses, there are few implementations:
+ Aside from <EM>ncurses</EM>, there are few implementations:
<STRONG>o</STRONG> systems based on SVr4 source code, e.g., Solaris.
<STRONG>o</STRONG> NetBSD curses.
- A few functions in this implementation are extensions added for
- ncurses, but not provided by other implementations, e.g.,
+ A few functions in this implementation are extensions added for
+ <EM>ncurses</EM>, but not provided by other implementations, e.g.,
<STRONG>form_driver_w</STRONG>, <STRONG>unfocus_current_field</STRONG>.
</PRE><H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for ncurses by Eric S.
+ Juergen Pfeifer. Manual pages and adaptation for <EM>ncurses</EM> by Eric S.
Raymond.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names begin "form_" for detailed
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names begin "form_" for detailed
descriptions of the entry points.
- This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210109).
-
- <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
diff --git a/doc/html/man/form_cursor.3x.html b/doc/html/man/form_cursor.3x.html
index 622ab149d1b9..5844dd58d9d2 100644
--- a/doc/html/man/form_cursor.3x.html
+++ b/doc/html/man/form_cursor.3x.html
@@ -1,7 +1,7 @@
-<!--
+<!--
* t
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2010,2015 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,21 +28,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: form_cursor.3x,v 1.14 2020/10/18 00:15:29 tom Exp @
+ * @Id: form_cursor.3x,v 1.31 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>form_cursor 3x</TITLE>
+<TITLE>form_cursor 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">form_cursor 3x</H1>
+<H1 class="no-header">form_cursor 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="form_cursor.3x.html">form_cursor(3x)</A></STRONG> <STRONG><A HREF="form_cursor.3x.html">form_cursor(3x)</A></STRONG>
+<STRONG><A HREF="form_cursor.3x.html">form_cursor(3x)</A></STRONG> Library calls <STRONG><A HREF="form_cursor.3x.html">form_cursor(3x)</A></STRONG>
@@ -79,17 +79,8 @@
System error occurred (see <STRONG>errno(3)</STRONG>).
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
-
-
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header file
- <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines emulate the System V forms library. They were not
+ These routines emulate the System V forms library. They were not
supported on Version 7 or BSD versions.
@@ -98,8 +89,12 @@
Raymond.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>
+
+
- <STRONG><A HREF="form_cursor.3x.html">form_cursor(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="form_cursor.3x.html">form_cursor(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -107,10 +102,9 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/form_data.3x.html b/doc/html/man/form_data.3x.html
index c43be785c944..2f1dc3b9016c 100644
--- a/doc/html/man/form_data.3x.html
+++ b/doc/html/man/form_data.3x.html
@@ -1,7 +1,7 @@
-<!--
+<!--
* t
****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2010,2015 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,21 +28,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: form_data.3x,v 1.15 2020/10/18 00:15:00 tom Exp @
+ * @Id: form_data.3x,v 1.32 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>form_data 3x</TITLE>
+<TITLE>form_data 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">form_data 3x</H1>
+<H1 class="no-header">form_data 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="form_data.3x.html">form_data(3x)</A></STRONG> <STRONG><A HREF="form_data.3x.html">form_data(3x)</A></STRONG>
+<STRONG><A HREF="form_data.3x.html">form_data(3x)</A></STRONG> Library calls <STRONG><A HREF="form_data.3x.html">form_data(3x)</A></STRONG>
@@ -66,17 +66,8 @@
in the given form. It returns TRUE (1) or FALSE (0).
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
-
-
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header file
- <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines emulate the System V forms library. They were not
+ These routines emulate the System V forms library. They were not
supported on Version 7 or BSD versions.
@@ -85,18 +76,21 @@
Raymond.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>
+
+
- <STRONG><A HREF="form_data.3x.html">form_data(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="form_data.3x.html">form_data(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<li><a href="#h2-NAME">NAME</a></li>
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/form_driver.3x.html b/doc/html/man/form_driver.3x.html
index 38e9603ca4fa..859c291a77bb 100644
--- a/doc/html/man/form_driver.3x.html
+++ b/doc/html/man/form_driver.3x.html
@@ -1,6 +1,7 @@
-<!--
+<!--
+ * t
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,21 +28,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: form_driver.3x,v 1.35 2020/12/19 21:34:15 tom Exp @
+ * @Id: form_driver.3x,v 1.61 2024/04/20 18:55:09 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>form_driver 3x</TITLE>
+<TITLE>form_driver 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">form_driver 3x</H1>
+<H1 class="no-header">form_driver 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="form_driver.3x.html">form_driver(3x)</A></STRONG> <STRONG><A HREF="form_driver.3x.html">form_driver(3x)</A></STRONG>
+<STRONG><A HREF="form_driver.3x.html">form_driver(3x)</A></STRONG> Library calls <STRONG><A HREF="form_driver.3x.html">form_driver(3x)</A></STRONG>
@@ -54,7 +55,7 @@
<STRONG>#include</STRONG> <STRONG>&lt;form.h&gt;</STRONG>
<STRONG>int</STRONG> <STRONG>form_driver(FORM</STRONG> <STRONG>*</STRONG><EM>form</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>c</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>form_driver_w(FORM</STRONG> <STRONG>*</STRONG><EM>form</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>c</EM><STRONG>,</STRONG> <STRONG>wchar_t</STRONG> <EM>wch</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>form_driver_w(FORM</STRONG> <STRONG>*</STRONG><EM>form</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>c</EM><STRONG>,</STRONG> <STRONG>wchar_t</STRONG> <EM>wc</EM><STRONG>);</STRONG>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
@@ -83,77 +84,77 @@
character or a request.
-</PRE><H3><a name="h3-Form-driver-requests">Form-driver requests</a></H3><PRE>
+</PRE><H3><a name="h3-Form-Driver-Requests">Form Driver Requests</a></H3><PRE>
The form driver requests are as follows:
- <EM>Name</EM> <EM>Description</EM>
- ---------------------------------------------------------------------
- REQ_BEG_FIELD Move to the beginning of the field.
- REQ_BEG_LINE Move to the beginning of the line.
- REQ_CLR_EOF Clear to end of field from cursor.
- REQ_CLR_EOL Clear to end of line from cursor.
- REQ_CLR_FIELD Clear the entire field.
- REQ_DEL_CHAR Delete character at the cursor.
- REQ_DEL_LINE Delete line at the cursor.
- REQ_DEL_PREV Delete character before the cursor.
- REQ_DEL_WORD Delete blank-delimited word at the cursor.
- REQ_DOWN_CHAR Move down in the field.
- REQ_DOWN_FIELD Move down to a field.
- REQ_END_FIELD Move to the end of the field.
- REQ_END_LINE Move to the end of the line.
- REQ_FIRST_FIELD Move to the first field.
- REQ_FIRST_PAGE Move to the first page.
- REQ_INS_CHAR Insert a blank at the cursor.
- REQ_INS_LINE Insert a blank line at the cursor.
- REQ_INS_MODE Enter insert mode.
- REQ_LAST_FIELD Move to the last field.
- REQ_LAST_PAGE Move to the last field.
- REQ_LEFT_CHAR Move left in the field.
- REQ_LEFT_FIELD Move left to a field.
- REQ_NEW_LINE Insert or overlay a new line.
- REQ_NEXT_CHAR Move to the next char.
-
- REQ_NEXT_CHOICE Display next field choice.
- REQ_NEXT_FIELD Move to the next field.
- REQ_NEXT_LINE Move to the next line.
- REQ_NEXT_PAGE Move to the next page.
- REQ_NEXT_PAGE Move to the next page.
- REQ_NEXT_WORD Move to the next word.
- REQ_OVL_MODE Enter overlay mode.
- REQ_PREV_CHAR Move to the previous char.
- REQ_PREV_CHOICE Display previous field choice.
- REQ_PREV_FIELD Move to the previous field.
- REQ_PREV_LINE Move to the previous line.
- REQ_PREV_PAGE Move to the previous page.
- REQ_PREV_WORD Move to the previous word.
- REQ_RIGHT_CHAR Move right in the field.
- REQ_RIGHT_FIELD Move right to a field.
- REQ_SCR_BCHAR Scroll the field backward a character.
- REQ_SCR_BHPAGE Scroll the field backward half a page.
- REQ_SCR_BLINE Scroll the field backward a line.
- REQ_SCR_BPAGE Scroll the field backward a page.
- REQ_SCR_FCHAR Scroll the field forward a character.
- REQ_SCR_FHPAGE Scroll the field forward half a page.
- REQ_SCR_FLINE Scroll the field forward a line.
- REQ_SCR_FPAGE Scroll the field forward a page.
- REQ_SCR_HBHALF Horizontal scroll the field backward half a line.
- REQ_SCR_HBLINE Horizontal scroll the field backward a line.
- REQ_SCR_HFHALF Horizontal scroll the field forward half a line.
- REQ_SCR_HFLINE Horizontal scroll the field forward a line.
- REQ_SFIRST_FIELD Move to the sorted first field.
- REQ_SLAST_FIELD Move to the sorted last field.
- REQ_SNEXT_FIELD Move to the sorted next field.
- REQ_SPREV_FIELD Move to the sorted previous field.
- REQ_UP_CHAR Move up in the field.
- REQ_UP_FIELD Move up to a field.
- REQ_VALIDATION Validate field.
+ <STRONG>Name</STRONG> <STRONG>Description</STRONG>
+ ------------------------------------------------------------------------
+ <STRONG>REQ_BEG_FIELD</STRONG> Move to beginning of field.
+ <STRONG>REQ_BEG_LINE</STRONG> Move to beginning of the line.
+ <STRONG>REQ_CLR_EOF</STRONG> Clear to end of field from cursor.
+ <STRONG>REQ_CLR_EOL</STRONG> Clear to end of line from cursor.
+ <STRONG>REQ_CLR_FIELD</STRONG> Clear the entire field.
+ <STRONG>REQ_DEL_CHAR</STRONG> Delete character at the cursor.
+ <STRONG>REQ_DEL_LINE</STRONG> Delete line at the cursor.
+ <STRONG>REQ_DEL_PREV</STRONG> Delete character before the cursor.
+ <STRONG>REQ_DEL_WORD</STRONG> Delete blank-delimited word at cursor.
+ <STRONG>REQ_DOWN_CHAR</STRONG> Move down in field.
+ <STRONG>REQ_DOWN_FIELD</STRONG> Move down to a field.
+ <STRONG>REQ_END_FIELD</STRONG> Move to the end of field.
+ <STRONG>REQ_END_LINE</STRONG> Move to the end of the line.
+ <STRONG>REQ_FIRST_FIELD</STRONG> Move to the first field.
+ <STRONG>REQ_FIRST_PAGE</STRONG> Move to the first page.
+ <STRONG>REQ_INS_CHAR</STRONG> Insert a blank at the cursor.
+ <STRONG>REQ_INS_LINE</STRONG> Insert a blank line at the cursor.
+ <STRONG>REQ_INS_MODE</STRONG> Enter insert mode.
+ <STRONG>REQ_LAST_FIELD</STRONG> Move to the last field.
+ <STRONG>REQ_LAST_PAGE</STRONG> Move to the last field.
+ <STRONG>REQ_LEFT_CHAR</STRONG> Move left in field.
+ <STRONG>REQ_LEFT_FIELD</STRONG> Move left to a field.
+ <STRONG>REQ_NEW_LINE</STRONG> Insert or overlay a new line.
+ <STRONG>REQ_NEXT_CHAR</STRONG> Move to the next char.
+
+ <STRONG>REQ_NEXT_CHOICE</STRONG> Display next field choice.
+ <STRONG>REQ_NEXT_FIELD</STRONG> Move to the next field.
+ <STRONG>REQ_NEXT_LINE</STRONG> Move to the next line.
+ <STRONG>REQ_NEXT_PAGE</STRONG> Move to the next page.
+ <STRONG>REQ_NEXT_PAGE</STRONG> Move to the next page.
+ <STRONG>REQ_NEXT_WORD</STRONG> Move to the next word.
+ <STRONG>REQ_OVL_MODE</STRONG> Enter overlay mode.
+ <STRONG>REQ_PREV_CHAR</STRONG> Move to the previous char.
+ <STRONG>REQ_PREV_CHOICE</STRONG> Display previous field choice.
+ <STRONG>REQ_PREV_FIELD</STRONG> Move to the previous field.
+ <STRONG>REQ_PREV_LINE</STRONG> Move to the previous line.
+ <STRONG>REQ_PREV_PAGE</STRONG> Move to the previous page.
+ <STRONG>REQ_PREV_WORD</STRONG> Move to the previous word.
+ <STRONG>REQ_RIGHT_CHAR</STRONG> Move right in field.
+ <STRONG>REQ_RIGHT_FIELD</STRONG> Move right to a field.
+ <STRONG>REQ_SCR_BCHAR</STRONG> Scroll field backward 1 character.
+ <STRONG>REQ_SCR_BHPAGE</STRONG> Scroll field backward 1/2 page.
+ <STRONG>REQ_SCR_BLINE</STRONG> Scroll field backward 1 line.
+ <STRONG>REQ_SCR_BPAGE</STRONG> Scroll field backward 1 page.
+ <STRONG>REQ_SCR_FCHAR</STRONG> Scroll field forward 1 character.
+ <STRONG>REQ_SCR_FHPAGE</STRONG> Scroll field forward 1/2 page.
+ <STRONG>REQ_SCR_FLINE</STRONG> Scroll field forward 1 line.
+ <STRONG>REQ_SCR_FPAGE</STRONG> Scroll field forward 1 page.
+ <STRONG>REQ_SCR_HBHALF</STRONG> Horizontal scroll field backward 1/2 line.
+ <STRONG>REQ_SCR_HBLINE</STRONG> Horizontal scroll field backward 1 line.
+ <STRONG>REQ_SCR_HFHALF</STRONG> Horizontal scroll field forward 1/2 line.
+ <STRONG>REQ_SCR_HFLINE</STRONG> Horizontal scroll field forward 1 line.
+ <STRONG>REQ_SFIRST_FIELD</STRONG> Move to the sorted first field.
+ <STRONG>REQ_SLAST_FIELD</STRONG> Move to the sorted last field.
+ <STRONG>REQ_SNEXT_FIELD</STRONG> Move to the sorted next field.
+ <STRONG>REQ_SPREV_FIELD</STRONG> Move to the sorted previous field.
+ <STRONG>REQ_UP_CHAR</STRONG> Move up in field.
+ <STRONG>REQ_UP_FIELD</STRONG> Move up to a field.
+ <STRONG>REQ_VALIDATION</STRONG> Validate field.
If the second argument is a printable character, the driver places it
in the current position in the current field. If it is one of the
forms requests listed above, that request is executed.
-</PRE><H3><a name="h3-Field-validation">Field validation</a></H3><PRE>
+</PRE><H3><a name="h3-Field-Validation">Field Validation</a></H3><PRE>
The form library makes updates to the window associated with form
fields rather than directly to the field buffers.
@@ -180,7 +181,7 @@
data from the window associated with the field to the field buffer.
-</PRE><H3><a name="h3-Mouse-handling">Mouse handling</a></H3><PRE>
+</PRE><H3><a name="h3-Mouse-Handling">Mouse Handling</a></H3><PRE>
If the second argument is the KEY_MOUSE special key, the associated
mouse event is translated into one of the above pre-defined requests.
Currently only clicks in the user window (e.g., inside the form display
@@ -220,7 +221,7 @@
translated into a form request an <STRONG>E_REQUEST_DENIED</STRONG> is returned.
-</PRE><H3><a name="h3-Application-defined-commands">Application-defined commands</a></H3><PRE>
+</PRE><H3><a name="h3-Application-defined-Commands">Application-defined Commands</a></H3><PRE>
If the second argument is neither printable nor one of the above pre-
defined form requests, the driver assumes it is an application-specific
command and returns <STRONG>E_UNKNOWN_COMMAND</STRONG>. Application-defined commands
@@ -258,16 +259,6 @@
The form driver code saw an unknown request code.
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>, <STRONG><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></STRONG>, <STRONG><A HREF="form_field_buffer.3x.html">form_field_buffer(3x)</A></STRONG>,
- <STRONG><A HREF="form_field_validation.3x.html">form_field_validation(3x)</A></STRONG>, <STRONG><A HREF="form_variables.3x.html">form_variables(3x)</A></STRONG>, <STRONG><A HREF="curs_getch.3x.html">getch(3x)</A></STRONG>.
-
-
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header files
- <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
These routines emulate the System V forms library. They were not
supported on Version 7 or BSD versions.
@@ -278,8 +269,13 @@
Raymond.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>, <STRONG><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></STRONG>, <STRONG><A HREF="form_field_buffer.3x.html">form_field_buffer(3x)</A></STRONG>,
+ <STRONG><A HREF="form_field_validation.3x.html">form_field_validation(3x)</A></STRONG>, <STRONG><A HREF="form_variables.3x.html">form_variables(3x)</A></STRONG>, <STRONG><A HREF="curs_getch.3x.html">getch(3x)</A></STRONG>
+
- <STRONG><A HREF="form_driver.3x.html">form_driver(3x)</A></STRONG>
+
+ncurses 6.5 2024-04-20 <STRONG><A HREF="form_driver.3x.html">form_driver(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -289,17 +285,16 @@
<ul>
<li><a href="#h3-form_driver">form_driver</a></li>
<li><a href="#h3-form_driver_w">form_driver_w</a></li>
-<li><a href="#h3-Form-driver-requests">Form-driver requests</a></li>
-<li><a href="#h3-Field-validation">Field validation</a></li>
-<li><a href="#h3-Mouse-handling">Mouse handling</a></li>
-<li><a href="#h3-Application-defined-commands">Application-defined commands</a></li>
+<li><a href="#h3-Form-Driver-Requests">Form Driver Requests</a></li>
+<li><a href="#h3-Field-Validation">Field Validation</a></li>
+<li><a href="#h3-Mouse-Handling">Mouse Handling</a></li>
+<li><a href="#h3-Application-defined-Commands">Application-defined Commands</a></li>
</ul>
</li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/form_field.3x.html b/doc/html/man/form_field.3x.html
index 40ac7f2799b5..8eb58d4c62a2 100644
--- a/doc/html/man/form_field.3x.html
+++ b/doc/html/man/form_field.3x.html
@@ -1,7 +1,7 @@
-<!--
+<!--
* t
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2010,2012 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,21 +28,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: form_field.3x,v 1.17 2020/10/24 09:10:45 tom Exp @
+ * @Id: form_field.3x,v 1.34 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>form_field 3x</TITLE>
+<TITLE>form_field 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">form_field 3x</H1>
+<H1 class="no-header">form_field 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="form_field.3x.html">form_field(3x)</A></STRONG> <STRONG><A HREF="form_field.3x.html">form_field(3x)</A></STRONG>
+<STRONG><A HREF="form_field.3x.html">form_field(3x)</A></STRONG> Library calls <STRONG><A HREF="form_field.3x.html">form_field(3x)</A></STRONG>
@@ -96,20 +96,11 @@
System error occurred (see <STRONG>errno(3)</STRONG>).
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
-
-
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header file
- <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines emulate the System V forms library. They were not
+ These routines emulate the System V forms library. They were not
supported on Version 7 or BSD versions.
- The SVr4 forms library documentation specifies the <STRONG>field_count</STRONG> error
+ The SVr4 forms library documentation specifies the <STRONG>field_count</STRONG> error
value as -1 (which is the value of <STRONG>ERR</STRONG>).
@@ -118,8 +109,12 @@
Raymond.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>
+
+
- <STRONG><A HREF="form_field.3x.html">form_field(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="form_field.3x.html">form_field(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -127,10 +122,9 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/form_field_attributes.3x.html b/doc/html/man/form_field_attributes.3x.html
index 6239181d9628..22afdc67971d 100644
--- a/doc/html/man/form_field_attributes.3x.html
+++ b/doc/html/man/form_field_attributes.3x.html
@@ -1,7 +1,7 @@
-<!--
+<!--
* t
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2006,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,21 +28,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: form_field_attributes.3x,v 1.18 2020/10/18 00:14:20 tom Exp @
+ * @Id: form_field_attributes.3x,v 1.35 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>form_field_attributes 3x</TITLE>
+<TITLE>form_field_attributes 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">form_field_attributes 3x</H1>
+<H1 class="no-header">form_field_attributes 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="form_field_attributes.3x.html">form_field_attributes(3x)</A></STRONG> <STRONG><A HREF="form_field_attributes.3x.html">form_field_attributes(3x)</A></STRONG>
+<STRONG><A HREF="form_field_attributes.3x.html">form_field_attributes(3x)</A></STRONG> Library calls <STRONG><A HREF="form_field_attributes.3x.html">form_field_attributes(3x)</A></STRONG>
@@ -92,16 +92,6 @@
System error occurred (see <STRONG>errno(3)</STRONG>).
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names begin "form_" for detailed
- descriptions of the entry points.
-
-
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header file
- <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
These routines emulate the System V forms library. They were not
supported on Version 7 or BSD versions.
@@ -112,8 +102,13 @@
Raymond.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names begin "form_" for detailed
+ descriptions of the entry points.
+
- <STRONG><A HREF="form_field_attributes.3x.html">form_field_attributes(3x)</A></STRONG>
+
+ncurses 6.5 2024-03-16 <STRONG><A HREF="form_field_attributes.3x.html">form_field_attributes(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -121,10 +116,9 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/form_field_buffer.3x.html b/doc/html/man/form_field_buffer.3x.html
index 31fb08b95bf0..47d6c8b3e421 100644
--- a/doc/html/man/form_field_buffer.3x.html
+++ b/doc/html/man/form_field_buffer.3x.html
@@ -1,7 +1,6 @@
-<!--
- * t
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2010,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,21 +27,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: form_field_buffer.3x,v 1.27 2020/10/24 09:27:17 tom Exp @
+ * @Id: form_field_buffer.3x,v 1.45 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>form_field_buffer 3x</TITLE>
+<TITLE>form_field_buffer 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">form_field_buffer 3x</H1>
+<H1 class="no-header">form_field_buffer 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="form_field_buffer.3x.html">form_field_buffer(3x)</A></STRONG> <STRONG><A HREF="form_field_buffer.3x.html">form_field_buffer(3x)</A></STRONG>
+<STRONG><A HREF="form_field_buffer.3x.html">form_field_buffer(3x)</A></STRONG> Library calls <STRONG><A HREF="form_field_buffer.3x.html">form_field_buffer(3x)</A></STRONG>
@@ -126,26 +125,19 @@
Routine detected an incorrect or out-of-range argument.
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names begin "form_" for detailed
- descriptions of the entry points.
-
-
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header file
-
- When configured for wide characters, <STRONG>field_buffer</STRONG> returns a pointer to
- temporary storage (allocated and freed by the library). The
+ When configured for wide characters, <STRONG>field_buffer</STRONG> returns a pointer to
+ temporary storage (allocated and freed by the library). The
application should not attempt to modify the data. It will be freed on
- the next call to <STRONG>field_buffer</STRONG> to return the same buffer. <STRONG>&lt;curses.h&gt;</STRONG>.
+ the next call to <STRONG>field_buffer</STRONG> to return the same buffer.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines emulate the System V forms library. They were not
+ These routines emulate the System V forms library. They were not
supported on Version 7 or BSD versions.
- The <STRONG>set_max_field</STRONG> function checks for an ncurses extension
- <STRONG>O_INPUT_FIELD</STRONG> which allows a dynamic field to shrink if the new limit
+ The <STRONG>set_max_field</STRONG> function checks for an <EM>ncurses</EM> extension
+ <STRONG>O_INPUT_FIELD</STRONG> which allows a dynamic field to shrink if the new limit
is smaller than the current field size.
@@ -154,8 +146,13 @@
Raymond.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names begin "form_" for detailed
+ descriptions of the entry points.
+
- <STRONG><A HREF="form_field_buffer.3x.html">form_field_buffer(3x)</A></STRONG>
+
+ncurses 6.5 2024-03-16 <STRONG><A HREF="form_field_buffer.3x.html">form_field_buffer(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -163,10 +160,10 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/form_field_info.3x.html b/doc/html/man/form_field_info.3x.html
index f967ff71dedc..2090ab669ced 100644
--- a/doc/html/man/form_field_info.3x.html
+++ b/doc/html/man/form_field_info.3x.html
@@ -1,7 +1,6 @@
-<!--
- * t
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2010,2015 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,21 +27,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: form_field_info.3x,v 1.18 2020/10/17 23:35:05 tom Exp @
+ * @Id: form_field_info.3x,v 1.32 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>form_field_info 3x</TITLE>
+<TITLE>form_field_info 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">form_field_info 3x</H1>
+<H1 class="no-header">form_field_info 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="form_field_info.3x.html">form_field_info(3x)</A></STRONG> <STRONG><A HREF="form_field_info.3x.html">form_field_info(3x)</A></STRONG>
+<STRONG><A HREF="form_field_info.3x.html">form_field_info(3x)</A></STRONG> Library calls <STRONG><A HREF="form_field_info.3x.html">form_field_info(3x)</A></STRONG>
@@ -87,16 +86,6 @@
Routine detected an incorrect or out-of-range argument.
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names begin "form_" for detailed
- descriptions of the entry points.
-
-
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header file
- <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
These routines emulate the System V forms library. They were not
supported on Version 7 or BSD versions.
@@ -111,8 +100,13 @@
Raymond.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names begin "form_" for detailed
+ descriptions of the entry points.
+
- <STRONG><A HREF="form_field_info.3x.html">form_field_info(3x)</A></STRONG>
+
+ncurses 6.5 2024-03-16 <STRONG><A HREF="form_field_info.3x.html">form_field_info(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -120,10 +114,9 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/form_field_just.3x.html b/doc/html/man/form_field_just.3x.html
index 036da6dbabe2..f0bc457faf24 100644
--- a/doc/html/man/form_field_just.3x.html
+++ b/doc/html/man/form_field_just.3x.html
@@ -1,7 +1,6 @@
-<!--
- * t
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2010,2015 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,21 +27,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: form_field_just.3x,v 1.18 2020/10/18 00:12:55 tom Exp @
+ * @Id: form_field_just.3x,v 1.35 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>form_field_just 3x</TITLE>
+<TITLE>form_field_just 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">form_field_just 3x</H1>
+<H1 class="no-header">form_field_just 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="form_field_just.3x.html">form_field_just(3x)</A></STRONG> <STRONG><A HREF="form_field_just.3x.html">form_field_just(3x)</A></STRONG>
+<STRONG><A HREF="form_field_just.3x.html">form_field_just(3x)</A></STRONG> Library calls <STRONG><A HREF="form_field_just.3x.html">form_field_just(3x)</A></STRONG>
@@ -80,16 +79,6 @@
Routine detected an incorrect or out-of-range argument.
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names begin "form_" for detailed
- descriptions of the entry points.
-
-
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header file
- <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
These routines emulate the System V forms library. They were not
supported on Version 7 or BSD versions.
@@ -100,8 +89,13 @@
Raymond.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names begin "form_" for detailed
+ descriptions of the entry points.
+
- <STRONG><A HREF="form_field_just.3x.html">form_field_just(3x)</A></STRONG>
+
+ncurses 6.5 2024-03-16 <STRONG><A HREF="form_field_just.3x.html">form_field_just(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -109,10 +103,9 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/form_field_new.3x.html b/doc/html/man/form_field_new.3x.html
index 7f4a0e4f95ab..c7bedd9a214c 100644
--- a/doc/html/man/form_field_new.3x.html
+++ b/doc/html/man/form_field_new.3x.html
@@ -1,7 +1,6 @@
-<!--
- * t
+<!--
****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2010,2015 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,21 +27,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: form_field_new.3x,v 1.24 2020/10/24 09:09:18 tom Exp @
+ * @Id: form_field_new.3x,v 1.41 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>form_field_new 3x</TITLE>
+<TITLE>form_field_new 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">form_field_new 3x</H1>
+<H1 class="no-header">form_field_new 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="form_field_new.3x.html">form_field_new(3x)</A></STRONG> <STRONG><A HREF="form_field_new.3x.html">form_field_new(3x)</A></STRONG>
+<STRONG><A HREF="form_field_new.3x.html">form_field_new(3x)</A></STRONG> Library calls <STRONG><A HREF="form_field_new.3x.html">form_field_new(3x)</A></STRONG>
@@ -104,21 +103,12 @@
field is connected.
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
-
-
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header file
- <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines emulate the System V forms library. They were not
+ These routines emulate the System V forms library. They were not
supported on Version 7 or BSD versions.
- It may be unwise to count on the set of attributes copied by <STRONG>dup_field</STRONG>
- being portable; the System V forms library documents are not very
+ It may be unwise to count on the set of attributes copied by <STRONG>dup_field</STRONG>
+ being portable; the System V forms library documents are not very
explicit about what gets copied and what does not.
@@ -127,8 +117,12 @@
Raymond.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>
+
+
- <STRONG><A HREF="form_field_new.3x.html">form_field_new(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="form_field_new.3x.html">form_field_new(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -136,10 +130,9 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/form_field_opts.3x.html b/doc/html/man/form_field_opts.3x.html
index a0470050baca..52fca0a5a333 100644
--- a/doc/html/man/form_field_opts.3x.html
+++ b/doc/html/man/form_field_opts.3x.html
@@ -1,7 +1,6 @@
-<!--
- * t
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2014,2015 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,21 +27,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: form_field_opts.3x,v 1.27 2020/10/18 00:11:45 tom Exp @
+ * @Id: form_field_opts.3x,v 1.44 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>form_field_opts 3x</TITLE>
+<TITLE>form_field_opts 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">form_field_opts 3x</H1>
+<H1 class="no-header">form_field_opts 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="form_field_opts.3x.html">form_field_opts(3x)</A></STRONG> <STRONG><A HREF="form_field_opts.3x.html">form_field_opts(3x)</A></STRONG>
+<STRONG><A HREF="form_field_opts.3x.html">form_field_opts(3x)</A></STRONG> Library calls <STRONG><A HREF="form_field_opts.3x.html">form_field_opts(3x)</A></STRONG>
@@ -150,17 +149,8 @@
System error occurred (see <STRONG>errno(3)</STRONG>).
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>. <STRONG><A HREF="form_field_just.3x.html">form_field_just(3x)</A></STRONG>.
-
-
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header file
- <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines emulate the System V forms library. They were not
+ These routines emulate the System V forms library. They were not
supported on Version 7 or BSD versions.
@@ -169,8 +159,12 @@
Raymond.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>, <STRONG><A HREF="form_field_just.3x.html">form_field_just(3x)</A></STRONG>
+
+
- <STRONG><A HREF="form_field_opts.3x.html">form_field_opts(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="form_field_opts.3x.html">form_field_opts(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -178,10 +172,9 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/form_field_userptr.3x.html b/doc/html/man/form_field_userptr.3x.html
index 2c32b99e122b..128698edb249 100644
--- a/doc/html/man/form_field_userptr.3x.html
+++ b/doc/html/man/form_field_userptr.3x.html
@@ -1,7 +1,6 @@
-<!--
- * t
+<!--
****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2010,2015 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,21 +27,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: form_field_userptr.3x,v 1.16 2020/10/24 09:06:33 tom Exp @
+ * @Id: form_field_userptr.3x,v 1.30 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>form_field_userptr 3x</TITLE>
+<TITLE>form_field_userptr 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">form_field_userptr 3x</H1>
+<H1 class="no-header">form_field_userptr 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="form_field_userptr.3x.html">form_field_userptr(3x)</A></STRONG> <STRONG><A HREF="form_field_userptr.3x.html">form_field_userptr(3x)</A></STRONG>
+<STRONG><A HREF="form_field_userptr.3x.html">form_field_userptr(3x)</A></STRONG> Library calls <STRONG><A HREF="form_field_userptr.3x.html">form_field_userptr(3x)</A></STRONG>
@@ -72,17 +71,8 @@
The function <STRONG>set_field_userptr</STRONG> returns <STRONG>E_OK</STRONG> (success).
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
-
-
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header file
- <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines emulate the System V forms library. They were not
+ These routines emulate the System V forms library. They were not
supported on Version 7 or BSD versions.
The user pointer is a void pointer. We chose not to leave it as a char
@@ -94,8 +84,12 @@
Raymond.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>
+
+
- <STRONG><A HREF="form_field_userptr.3x.html">form_field_userptr(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="form_field_userptr.3x.html">form_field_userptr(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -103,10 +97,9 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/form_field_validation.3x.html b/doc/html/man/form_field_validation.3x.html
index 695b2ed37b50..e66d71c26462 100644
--- a/doc/html/man/form_field_validation.3x.html
+++ b/doc/html/man/form_field_validation.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2010,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,21 +27,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: form_field_validation.3x,v 1.33 2020/12/12 19:57:55 tom Exp @
+ * @Id: form_field_validation.3x,v 1.53 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>form_field_validation 3x</TITLE>
+<TITLE>form_field_validation 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">form_field_validation 3x</H1>
+<H1 class="no-header">form_field_validation 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="form_field_validation.3x.html">form_field_validation(3x)</A></STRONG> <STRONG><A HREF="form_field_validation.3x.html">form_field_validation(3x)</A></STRONG>
+<STRONG><A HREF="form_field_validation.3x.html">form_field_validation(3x)</A></STRONG> Library calls <STRONG><A HREF="form_field_validation.3x.html">form_field_validation(3x)</A></STRONG>
@@ -57,7 +57,7 @@
<STRONG>FIELDTYPE</STRONG> <STRONG>*field_type(const</STRONG> <STRONG>FIELD</STRONG> <STRONG>*</STRONG><EM>field</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>set_field_type(FIELD</STRONG> <STRONG>*</STRONG><EM>field</EM><STRONG>,</STRONG> <STRONG>FIELDTYPE</STRONG> <STRONG>*</STRONG><EM>type</EM><STRONG>,</STRONG> <STRONG>...);</STRONG>
- /* predefined field types */
+ <EM>/*</EM> <EM>predefined</EM> <EM>field</EM> <EM>types</EM> <EM>*/</EM>
<STRONG>FIELDTYPE</STRONG> <STRONG>*TYPE_ALNUM;</STRONG>
<STRONG>FIELDTYPE</STRONG> <STRONG>*TYPE_ALPHA;</STRONG>
<STRONG>FIELDTYPE</STRONG> <STRONG>*TYPE_ENUM;</STRONG>
@@ -92,7 +92,7 @@
Several field types are predefined by the form library.
-</PRE><H3><a name="h3-Predefined-types">Predefined types</a></H3><PRE>
+</PRE><H2><a name="h2-PREDEFINED-TYPES">PREDEFINED TYPES</a></H2><PRE>
It is possible to set up new programmer-defined field types. Field
types are implemented via the <STRONG>FIELDTYPE</STRONG> data structure, which contains
several pointers to functions.
@@ -102,100 +102,102 @@
The predefined types are as follows:
- TYPE_ALNUM
- Alphanumeric data. Required parameter:
- <STRONG>o</STRONG> a third <STRONG>int</STRONG> argument, a minimum field width.
+</PRE><H3><a name="h3-TYPE_ALNUM">TYPE_ALNUM</a></H3><PRE>
+ Alphanumeric data. Required parameter:
+
+ <STRONG>o</STRONG> a third <STRONG>int</STRONG> argument, a minimum field width.
+
+
+</PRE><H3><a name="h3-TYPE_ALPHA">TYPE_ALPHA</a></H3><PRE>
+ Character data. Required parameter:
+
+ <STRONG>o</STRONG> a third <STRONG>int</STRONG> argument, a minimum field width.
+
- TYPE_ALPHA
- Character data. Required parameter:
+</PRE><H3><a name="h3-TYPE_ENUM">TYPE_ENUM</a></H3><PRE>
+ Accept one of a specified set of strings. Required parameters:
- <STRONG>o</STRONG> a third <STRONG>int</STRONG> argument, a minimum field width.
+ <STRONG>o</STRONG> a third <STRONG>(char</STRONG> <STRONG>**)</STRONG> argument pointing to a string list;
- TYPE_ENUM
- Accept one of a specified set of strings. Required parameters:
+ <STRONG>o</STRONG> a fourth <STRONG>int</STRONG> flag argument to enable case-sensitivity;
- <STRONG>o</STRONG> a third <STRONG>(char</STRONG> <STRONG>**)</STRONG> argument pointing to a string list;
+ <STRONG>o</STRONG> a fifth <STRONG>int</STRONG> flag argument specifying whether a partial match must
+ be a unique one. If this flag is off, a prefix matches the first
+ of any set of more than one list elements with that prefix.
- <STRONG>o</STRONG> a fourth <STRONG>int</STRONG> flag argument to enable case-sensitivity;
+ The library copies the string list, so you may use a list that lives in
+ automatic variables on the stack.
- <STRONG>o</STRONG> a fifth <STRONG>int</STRONG> flag argument specifying whether a partial match
- must be a unique one. If this flag is off, a prefix matches
- the first of any set of more than one list elements with that
- prefix.
- The library copies the string list, so you may use a list that
- lives in automatic variables on the stack.
+</PRE><H3><a name="h3-TYPE_INTEGER">TYPE_INTEGER</a></H3><PRE>
+ Integer data, parsable to an integer by <STRONG>atoi(3)</STRONG>. Required parameters:
- TYPE_INTEGER
- Integer data, parsable to an integer by <STRONG>atoi(3)</STRONG>. Required
- parameters:
+ <STRONG>o</STRONG> a third <STRONG>int</STRONG> argument controlling the precision,
- <STRONG>o</STRONG> a third <STRONG>int</STRONG> argument controlling the precision,
+ <STRONG>o</STRONG> a fourth <STRONG>long</STRONG> argument constraining minimum value,
- <STRONG>o</STRONG> a fourth <STRONG>long</STRONG> argument constraining minimum value,
+ <STRONG>o</STRONG> a fifth <STRONG>long</STRONG> constraining maximum value. If the maximum value is
+ less than or equal to the minimum value, the range is simply
+ ignored.
- <STRONG>o</STRONG> a fifth <STRONG>long</STRONG> constraining maximum value. If the maximum value
- is less than or equal to the minimum value, the range is
- simply ignored.
+ On return, the field buffer is formatted according to the <STRONG>printf</STRONG> format
+ specification ".*ld", where the "*" is replaced by the precision
+ argument.
- On return, the field buffer is formatted according to the <STRONG>printf</STRONG>
- format specification ".*ld", where the "*" is replaced by the
- precision argument.
+ For details of the precision handling see <STRONG>printf(3)</STRONG>.
- For details of the precision handling see <STRONG>printf(3)</STRONG>.
- TYPE_NUMERIC
- Numeric data (may have a decimal-point part). Required
- parameters:
+</PRE><H3><a name="h3-TYPE_NUMERIC">TYPE_NUMERIC</a></H3><PRE>
+ Numeric data (may have a decimal-point part). Required parameters:
- <STRONG>o</STRONG> a third <STRONG>int</STRONG> argument controlling the precision,
+ <STRONG>o</STRONG> a third <STRONG>int</STRONG> argument controlling the precision,
- <STRONG>o</STRONG> a fourth <STRONG>double</STRONG> argument constraining minimum value,
+ <STRONG>o</STRONG> a fourth <STRONG>double</STRONG> argument constraining minimum value,
- <STRONG>o</STRONG> and a fifth <STRONG>double</STRONG> constraining maximum value. If your system
- supports locales, the decimal point character must be the one
- specified by your locale. If the maximum value is less than
- or equal to the minimum value, the range is simply ignored.
+ <STRONG>o</STRONG> and a fifth <STRONG>double</STRONG> constraining maximum value. If your system
+ supports locales, the decimal point character must be the one
+ specified by your locale. If the maximum value is less than or
+ equal to the minimum value, the range is simply ignored.
- On return, the field buffer is formatted according to the <STRONG>printf</STRONG>
- format specification ".*f", where the "*" is replaced by the
- precision argument.
+ On return, the field buffer is formatted according to the <STRONG>printf</STRONG> format
+ specification ".*f", where the "*" is replaced by the precision
+ argument.
- For details of the precision handling see <STRONG>printf(3)</STRONG>.
+ For details of the precision handling see <STRONG>printf(3)</STRONG>.
- TYPE_REGEXP
- Regular expression data. Required parameter:
- <STRONG>o</STRONG> a third argument, a regular expression <STRONG>(char</STRONG> <STRONG>*)</STRONG> string. The
- data is valid if the regular expression matches it.
+</PRE><H3><a name="h3-TYPE_REGEXP">TYPE_REGEXP</a></H3><PRE>
+ Regular expression data. Required parameter:
- Regular expressions are in the format of <STRONG>regcomp</STRONG> and <STRONG>regexec</STRONG>.
+ <STRONG>o</STRONG> a third argument, a regular expression <STRONG>(char</STRONG> <STRONG>*)</STRONG> string. The data
+ is valid if the regular expression matches it.
- The regular expression must match the whole field. If you have
- for example, an eight character wide field, a regular expression
- "^[0-9]*$" always means that you have to fill all eight positions
- with digits. If you want to allow fewer digits, you may use for
- example "^[0-9]* *$" which is good for trailing spaces (up to an
- empty field), or "^ *[0-9]* *$" which is good for leading and
- trailing spaces around the digits.
+ Regular expressions are in the format of <STRONG>regcomp</STRONG> and <STRONG>regexec</STRONG>.
- TYPE_IPV4
- An Internet Protocol Version 4 address. Required parameter:
+ The regular expression must match the whole field. If you have for
+ example, an eight character wide field, a regular expression "^[0-9]*$"
+ always means that you have to fill all eight positions with digits. If
+ you want to allow fewer digits, you may use for example "^[0-9]* *$"
+ which is good for trailing spaces (up to an empty field), or "^ *[0-9]*
+ *$" which is good for leading and trailing spaces around the digits.
- <STRONG>o</STRONG> none
- The form library checks whether or not the buffer has the form
- <EM>a.b.c.d</EM>, where <EM>a</EM>, <EM>b</EM>, <EM>c</EM>, and <EM>d</EM> are numbers in the range 0 to 255.
- Trailing blanks in the buffer are ignored. The address itself is
- not validated.
+</PRE><H3><a name="h3-TYPE_IPV4">TYPE_IPV4</a></H3><PRE>
+ An Internet Protocol Version 4 address. Required parameter:
- This is an ncurses extension; this field type may not be available
- in other curses implementations.
+ <STRONG>o</STRONG> none
+
+ The form library checks whether or not the buffer has the form <EM>a.b.c.d</EM>,
+ where <EM>a</EM>, <EM>b</EM>, <EM>c</EM>, and <EM>d</EM> are numbers in the range 0 to 255. Trailing
+ blanks in the buffer are ignored. The address itself is not validated.
+
+ This is an <EM>ncurses</EM> extension; this field type may not be available in
+ other curses implementations.
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- The functions <STRONG>field_type</STRONG> and <STRONG>field_arg</STRONG> return <STRONG>NULL</STRONG> on error. The
+ The functions <STRONG>field_type</STRONG> and <STRONG>field_arg</STRONG> return <STRONG>NULL</STRONG> on error. The
function <STRONG>set_field_type</STRONG> returns one of the following:
<STRONG>E_OK</STRONG> The routine succeeded.
@@ -204,15 +206,6 @@
System error occurred (see <STRONG>errno(3)</STRONG>).
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>, <STRONG><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></STRONG>, <STRONG><A HREF="form_variables.3x.html">form_variables(3x)</A></STRONG>.
-
-
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header file
- <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
These routines emulate the System V forms library. They were not
supported on Version 7 or BSD versions.
@@ -223,8 +216,12 @@
Raymond.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>, <STRONG><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></STRONG>, <STRONG><A HREF="form_variables.3x.html">form_variables(3x)</A></STRONG>
+
+
- <STRONG><A HREF="form_field_validation.3x.html">form_field_validation(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="form_field_validation.3x.html">form_field_validation(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -235,14 +232,23 @@
<li><a href="#h3-field_arg">field_arg</a></li>
<li><a href="#h3-field_type">field_type</a></li>
<li><a href="#h3-set_field_type">set_field_type</a></li>
-<li><a href="#h3-Predefined-types">Predefined types</a></li>
+</ul>
+</li>
+<li><a href="#h2-PREDEFINED-TYPES">PREDEFINED TYPES</a>
+<ul>
+<li><a href="#h3-TYPE_ALNUM">TYPE_ALNUM</a></li>
+<li><a href="#h3-TYPE_ALPHA">TYPE_ALPHA</a></li>
+<li><a href="#h3-TYPE_ENUM">TYPE_ENUM</a></li>
+<li><a href="#h3-TYPE_INTEGER">TYPE_INTEGER</a></li>
+<li><a href="#h3-TYPE_NUMERIC">TYPE_NUMERIC</a></li>
+<li><a href="#h3-TYPE_REGEXP">TYPE_REGEXP</a></li>
+<li><a href="#h3-TYPE_IPV4">TYPE_IPV4</a></li>
</ul>
</li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/form_fieldtype.3x.html b/doc/html/man/form_fieldtype.3x.html
index c236a2682f02..369f25c5fc11 100644
--- a/doc/html/man/form_fieldtype.3x.html
+++ b/doc/html/man/form_fieldtype.3x.html
@@ -1,7 +1,6 @@
-<!--
- * t
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2006,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,21 +27,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: form_fieldtype.3x,v 1.28 2020/12/12 17:11:21 tom Exp @
+ * @Id: form_fieldtype.3x,v 1.46 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>form_fieldtype 3x</TITLE>
+<TITLE>form_fieldtype 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">form_fieldtype 3x</H1>
+<H1 class="no-header">form_fieldtype 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></STRONG> <STRONG><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></STRONG>
+<STRONG><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></STRONG> Library calls <STRONG><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></STRONG>
@@ -169,17 +168,8 @@
System error occurred (see <STRONG>errno(3)</STRONG>).
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>, <STRONG><A HREF="form_field_validation.3x.html">form_field_validation(3x)</A></STRONG>.
-
-
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header file
- <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines emulate the System V forms library. They were not
+ These routines emulate the System V forms library. They were not
supported on Version 7 or BSD versions.
@@ -188,8 +178,12 @@
Raymond.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>, <STRONG><A HREF="form_field_validation.3x.html">form_field_validation(3x)</A></STRONG>
+
+
- <STRONG><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -205,10 +199,9 @@
</ul>
</li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/form_hook.3x.html b/doc/html/man/form_hook.3x.html
index 28284c7a3feb..4845771f8112 100644
--- a/doc/html/man/form_hook.3x.html
+++ b/doc/html/man/form_hook.3x.html
@@ -1,7 +1,6 @@
-<!--
- * t
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2007,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,21 +27,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: form_hook.3x,v 1.16 2020/10/18 00:06:29 tom Exp @
+ * @Id: form_hook.3x,v 1.37 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>form_hook 3x</TITLE>
+<TITLE>form_hook 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">form_hook 3x</H1>
+<H1 class="no-header">form_hook 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="form_hook.3x.html">form_hook(3x)</A></STRONG> <STRONG><A HREF="form_hook.3x.html">form_hook(3x)</A></STRONG>
+<STRONG><A HREF="form_hook.3x.html">form_hook(3x)</A></STRONG> Library calls <STRONG><A HREF="form_hook.3x.html">form_hook(3x)</A></STRONG>
@@ -72,23 +71,45 @@
various points in the automatic processing of input event codes by
<STRONG>form_driver</STRONG>.
- The function <STRONG>set_field_init</STRONG> sets a hook to be called at form-post time
- and each time the selected field changes (after the change).
- <STRONG>field_init</STRONG> returns the current field init hook, if any (<STRONG>NULL</STRONG> if there
- is no such hook).
- The function <STRONG>set_field_term</STRONG> sets a hook to be called at form-unpost
- time and each time the selected field changes (before the change).
- <STRONG>field_term</STRONG> returns the current field term hook, if any (<STRONG>NULL</STRONG> if there
- is no such hook).
+</PRE><H3><a name="h3-set_field_init">set_field_init</a></H3><PRE>
+ sets a hook to be called at form-post time and each time the selected
+ field changes (after the change).
+
+
+</PRE><H3><a name="h3-field_init">field_init</a></H3><PRE>
+ returns the current field init hook, if any (<STRONG>NULL</STRONG> if there is no such
+ hook).
+
+
+</PRE><H3><a name="h3-set_field_term">set_field_term</a></H3><PRE>
+ sets a hook to be called at form-unpost time and each time the selected
+ field changes (before the change).
+
+
+</PRE><H3><a name="h3-field_term">field_term</a></H3><PRE>
+ returns the current field term hook, if any (<STRONG>NULL</STRONG> if there is no such
+ hook).
+
+
+</PRE><H3><a name="h3-set_form_init">set_form_init</a></H3><PRE>
+ sets a hook to be called at form-post time and just after a page change
+ once it is posted.
+
+
+</PRE><H3><a name="h3-form_init">form_init</a></H3><PRE>
+ returns the current form init hook, if any (<STRONG>NULL</STRONG> if there is no such
+ hook).
+
+
+</PRE><H3><a name="h3-set_form_term">set_form_term</a></H3><PRE>
+ sets a hook to be called at form-unpost time and just before a page
+ change once it is posted.
- The function <STRONG>set_form_init</STRONG> sets a hook to be called at form-post time
- and just after a page change once it is posted. <STRONG>form_init</STRONG> returns the
- current form init hook, if any (<STRONG>NULL</STRONG> if there is no such hook).
- The function <STRONG>set_form_term</STRONG> sets a hook to be called at form-unpost time
- and just before a page change once it is posted. <STRONG>form_init</STRONG> returns the
- current form term hook, if any (<STRONG>NULL</STRONG> if there is no such hook).
+</PRE><H3><a name="h3-form_term">form_term</a></H3><PRE>
+ returns the current form term hook, if any (<STRONG>NULL</STRONG> if there is no such
+ hook).
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
@@ -101,17 +122,8 @@
System error occurred (see <STRONG>errno(3)</STRONG>).
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
-
-
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header file
- <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines emulate the System V forms library. They were not
+ These routines emulate the System V forms library. They were not
supported on Version 7 or BSD versions.
@@ -120,19 +132,33 @@
Raymond.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>
+
+
- <STRONG><A HREF="form_hook.3x.html">form_hook(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="form_hook.3x.html">form_hook(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<li><a href="#h2-NAME">NAME</a></li>
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
-<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
+<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
+<ul>
+<li><a href="#h3-set_field_init">set_field_init</a></li>
+<li><a href="#h3-field_init">field_init</a></li>
+<li><a href="#h3-set_field_term">set_field_term</a></li>
+<li><a href="#h3-field_term">field_term</a></li>
+<li><a href="#h3-set_form_init">set_form_init</a></li>
+<li><a href="#h3-form_init">form_init</a></li>
+<li><a href="#h3-set_form_term">set_form_term</a></li>
+<li><a href="#h3-form_term">form_term</a></li>
+</ul>
+</li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/form_new.3x.html b/doc/html/man/form_new.3x.html
index 10d4bb024212..7a1877cad84d 100644
--- a/doc/html/man/form_new.3x.html
+++ b/doc/html/man/form_new.3x.html
@@ -1,7 +1,6 @@
-<!--
- * t
+<!--
****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2010,2015 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,21 +27,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: form_new.3x,v 1.15 2020/10/24 09:02:26 tom Exp @
+ * @Id: form_new.3x,v 1.32 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>form_new 3x</TITLE>
+<TITLE>form_new 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">form_new 3x</H1>
+<H1 class="no-header">form_new 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="form_new.3x.html">form_new(3x)</A></STRONG> <STRONG><A HREF="form_new.3x.html">form_new(3x)</A></STRONG>
+<STRONG><A HREF="form_new.3x.html">form_new(3x)</A></STRONG> Library calls <STRONG><A HREF="form_new.3x.html">form_new(3x)</A></STRONG>
@@ -92,17 +91,8 @@
The form has already been posted.
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
-
-
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header file
- <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines emulate the System V forms library. They were not
+ These routines emulate the System V forms library. They were not
supported on Version 7 or BSD versions.
@@ -111,8 +101,12 @@
Raymond.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>
+
+
- <STRONG><A HREF="form_new.3x.html">form_new(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="form_new.3x.html">form_new(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -120,10 +114,9 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/form_new_page.3x.html b/doc/html/man/form_new_page.3x.html
index c1a840636208..e8a18df4ff0f 100644
--- a/doc/html/man/form_new_page.3x.html
+++ b/doc/html/man/form_new_page.3x.html
@@ -1,7 +1,6 @@
-<!--
- * t
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2010,2015 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,21 +27,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: form_new_page.3x,v 1.17 2020/10/18 00:04:36 tom Exp @
+ * @Id: form_new_page.3x,v 1.34 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>form_new_page 3x</TITLE>
+<TITLE>form_new_page 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">form_new_page 3x</H1>
+<H1 class="no-header">form_new_page 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="form_new_page.3x.html">form_new_page(3x)</A></STRONG> <STRONG><A HREF="form_new_page.3x.html">form_new_page(3x)</A></STRONG>
+<STRONG><A HREF="form_new_page.3x.html">form_new_page(3x)</A></STRONG> Library calls <STRONG><A HREF="form_new_page.3x.html">form_new_page(3x)</A></STRONG>
@@ -77,16 +76,6 @@
The given field is already connected to a form.
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names begin "form_" for detailed
- descriptions of the entry points.
-
-
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header file
- <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
These routines emulate the System V forms library. They were not
supported on Version 7 or BSD versions.
@@ -97,8 +86,13 @@
Raymond.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names begin "form_" for detailed
+ descriptions of the entry points.
+
- <STRONG><A HREF="form_new_page.3x.html">form_new_page(3x)</A></STRONG>
+
+ncurses 6.5 2024-03-16 <STRONG><A HREF="form_new_page.3x.html">form_new_page(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -106,10 +100,9 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/form_opts.3x.html b/doc/html/man/form_opts.3x.html
index e30a321ab85a..63a9437fc873 100644
--- a/doc/html/man/form_opts.3x.html
+++ b/doc/html/man/form_opts.3x.html
@@ -1,7 +1,6 @@
-<!--
- * t
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2010,2015 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,21 +27,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: form_opts.3x,v 1.17 2020/10/18 00:03:49 tom Exp @
+ * @Id: form_opts.3x,v 1.34 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>form_opts 3x</TITLE>
+<TITLE>form_opts 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">form_opts 3x</H1>
+<H1 class="no-header">form_opts 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="form_opts.3x.html">form_opts(3x)</A></STRONG> <STRONG><A HREF="form_opts.3x.html">form_opts(3x)</A></STRONG>
+<STRONG><A HREF="form_opts.3x.html">form_opts(3x)</A></STRONG> Library calls <STRONG><A HREF="form_opts.3x.html">form_opts(3x)</A></STRONG>
@@ -94,17 +93,8 @@
System error occurred (see <STRONG>errno(3)</STRONG>).
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
-
-
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header file
- <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines emulate the System V forms library. They were not
+ These routines emulate the System V forms library. They were not
supported on Version 7 or BSD versions.
@@ -113,8 +103,12 @@
Raymond.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>
+
+
- <STRONG><A HREF="form_opts.3x.html">form_opts(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="form_opts.3x.html">form_opts(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -122,10 +116,9 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/form_page.3x.html b/doc/html/man/form_page.3x.html
index 3c67fccc6674..b882db2beb49 100644
--- a/doc/html/man/form_page.3x.html
+++ b/doc/html/man/form_page.3x.html
@@ -1,7 +1,6 @@
-<!--
- * t
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2010,2016 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,21 +27,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: form_page.3x,v 1.19 2020/10/18 00:02:44 tom Exp @
+ * @Id: form_page.3x,v 1.37 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>form_page 3x</TITLE>
+<TITLE>form_page 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">form_page 3x</H1>
+<H1 class="no-header">form_page 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="form_page.3x.html">form_page(3x)</A></STRONG> <STRONG><A HREF="form_page.3x.html">form_page(3x)</A></STRONG>
+<STRONG><A HREF="form_page.3x.html">form_page(3x)</A></STRONG> Library calls <STRONG><A HREF="form_page.3x.html">form_page(3x)</A></STRONG>
@@ -104,20 +103,11 @@
System error occurred (see <STRONG>errno(3)</STRONG>).
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
-
-
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header file
- <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines emulate the System V forms library. They were not
+ These routines emulate the System V forms library. They were not
supported on Version 7 or BSD versions.
- The <STRONG>unfocus_current_field</STRONG> function is an ncurses extension.
+ The <STRONG>unfocus_current_field</STRONG> function is an <EM>ncurses</EM> extension.
</PRE><H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
@@ -125,8 +115,12 @@
Raymond.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>
+
+
- <STRONG><A HREF="form_page.3x.html">form_page(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="form_page.3x.html">form_page(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -134,10 +128,9 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/form_post.3x.html b/doc/html/man/form_post.3x.html
index f42e72cf8add..9f97d3e5e8da 100644
--- a/doc/html/man/form_post.3x.html
+++ b/doc/html/man/form_post.3x.html
@@ -1,7 +1,6 @@
-<!--
- * t
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2015,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,21 +27,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: form_post.3x,v 1.16 2020/10/18 00:01:05 tom Exp @
+ * @Id: form_post.3x,v 1.33 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>form_post 3x</TITLE>
+<TITLE>form_post 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">form_post 3x</H1>
+<H1 class="no-header">form_post 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="form_post.3x.html">form_post(3x)</A></STRONG> <STRONG><A HREF="form_post.3x.html">form_post(3x)</A></STRONG>
+<STRONG><A HREF="form_post.3x.html">form_post(3x)</A></STRONG> Library calls <STRONG><A HREF="form_post.3x.html">form_post(3x)</A></STRONG>
@@ -95,17 +94,8 @@
System error occurred (see <STRONG>errno(3)</STRONG>).
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
-
-
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header file
- <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines emulate the System V forms library. They were not
+ These routines emulate the System V forms library. They were not
supported on Version 7 or BSD versions.
@@ -114,8 +104,12 @@
Raymond.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>
+
+
- <STRONG><A HREF="form_post.3x.html">form_post(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="form_post.3x.html">form_post(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -123,10 +117,9 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/form_requestname.3x.html b/doc/html/man/form_requestname.3x.html
index b8c23062e0ca..ecb5992d428a 100644
--- a/doc/html/man/form_requestname.3x.html
+++ b/doc/html/man/form_requestname.3x.html
@@ -1,7 +1,6 @@
-<!--
- * t
+<!--
****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2010,2015 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,21 +27,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: form_requestname.3x,v 1.16 2020/12/12 16:37:14 tom Exp @
+ * @Id: form_requestname.3x,v 1.35 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>form_requestname 3x</TITLE>
+<TITLE>form_requestname 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">form_requestname 3x</H1>
+<H1 class="no-header">form_requestname 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="form_requestname.3x.html">form_requestname(3x)</A></STRONG> <STRONG><A HREF="form_requestname.3x.html">form_requestname(3x)</A></STRONG>
+<STRONG><A HREF="form_requestname.3x.html">form_requestname(3x)</A></STRONG> Library calls <STRONG><A HREF="form_requestname.3x.html">form_requestname(3x)</A></STRONG>
@@ -60,16 +59,10 @@
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
-
-</PRE><H3><a name="h3-form_request_name">form_request_name</a></H3><PRE>
The function <STRONG>form_request_name</STRONG> returns the printable name of a form
- request code.
-
-
-</PRE><H3><a name="h3-form_request_name_by_name">form_request_name_by_name</a></H3><PRE>
- The function <STRONG>form_request_by_name</STRONG> searches in the name-table for a
- request with the given name and returns its request code. Otherwise
- E_NO_MATCH is returned.
+ request code. The function <STRONG>form_request_by_name</STRONG> searches in the name-
+ table for a request with the given name and returns its request code.
+ Otherwise E_NO_MATCH is returned.
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
@@ -80,17 +73,8 @@
<STRONG>errno</STRONG>.
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
-
-
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header file
- <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines are specific to ncurses. They were not supported on
+ These routines are specific to <EM>ncurses</EM>. They were not supported on
Version 7, BSD or System V implementations. It is recommended that any
code depending on them be conditioned using NCURSES_VERSION.
@@ -100,24 +84,22 @@
Raymond.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>
+
+
- <STRONG><A HREF="form_requestname.3x.html">form_requestname(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="form_requestname.3x.html">form_requestname(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<li><a href="#h2-NAME">NAME</a></li>
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
-<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
-<ul>
-<li><a href="#h3-form_request_name">form_request_name</a></li>
-<li><a href="#h3-form_request_name_by_name">form_request_name_by_name</a></li>
-</ul>
-</li>
+<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/form_userptr.3x.html b/doc/html/man/form_userptr.3x.html
index 91b07352ee49..db79de2022cb 100644
--- a/doc/html/man/form_userptr.3x.html
+++ b/doc/html/man/form_userptr.3x.html
@@ -1,7 +1,6 @@
-<!--
- * t
+<!--
****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2010,2015 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,21 +27,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: form_userptr.3x,v 1.19 2020/10/24 09:00:52 tom Exp @
+ * @Id: form_userptr.3x,v 1.36 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>form_userptr 3x</TITLE>
+<TITLE>form_userptr 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">form_userptr 3x</H1>
+<H1 class="no-header">form_userptr 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="form_userptr.3x.html">form_userptr(3x)</A></STRONG> <STRONG><A HREF="form_userptr.3x.html">form_userptr(3x)</A></STRONG>
+<STRONG><A HREF="form_userptr.3x.html">form_userptr(3x)</A></STRONG> Library calls <STRONG><A HREF="form_userptr.3x.html">form_userptr(3x)</A></STRONG>
@@ -72,17 +71,8 @@
The function <STRONG>set_form_userptr</STRONG> returns <STRONG>E_OK</STRONG> (success).
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
-
-
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header file
- <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines emulate the System V forms library. They were not
+ These routines emulate the System V forms library. They were not
supported on Version 7 or BSD versions.
The user pointer is a void pointer. We chose not to leave it as a char
@@ -94,8 +84,12 @@
Raymond.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>
+
+
- <STRONG><A HREF="form_userptr.3x.html">form_userptr(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="form_userptr.3x.html">form_userptr(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -103,10 +97,9 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/form_variables.3x.html b/doc/html/man/form_variables.3x.html
index 48a7d8716848..68c8e5635c55 100644
--- a/doc/html/man/form_variables.3x.html
+++ b/doc/html/man/form_variables.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020-2023,2024 Thomas E. Dickey *
* Copyright 2010-2013,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,27 +27,27 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: form_variables.3x,v 1.7 2020/12/12 14:45:16 tom Exp @
+ * @Id: form_variables.3x,v 1.18 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>form_variables 3x</TITLE>
+<TITLE>form_variables 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">form_variables 3x</H1>
+<H1 class="no-header">form_variables 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="form_variables.3x.html">form_variables(3x)</A></STRONG> <STRONG><A HREF="form_variables.3x.html">form_variables(3x)</A></STRONG>
+<STRONG><A HREF="form_variables.3x.html">form_variables(3x)</A></STRONG> Library calls <STRONG><A HREF="form_variables.3x.html">form_variables(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>TYPE_ALNUM</STRONG>, <STRONG>TYPE_ALPHA</STRONG>, <STRONG>TYPE_ENUM</STRONG>, <STRONG>TYPE_INTEGER</STRONG>, <STRONG>TYPE_IPV4</STRONG>,
+ <STRONG>TYPE_ALNUM</STRONG>, <STRONG>TYPE_ALPHA</STRONG>, <STRONG>TYPE_ENUM</STRONG>, <STRONG>TYPE_INTEGER</STRONG>, <STRONG>TYPE_IPV4</STRONG>,
<STRONG>TYPE_NUMERIC</STRONG>, <STRONG>TYPE_REGEXP</STRONG> - form system global variables
@@ -99,16 +99,16 @@
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- The <STRONG>TYPE_IPV4</STRONG> variable is an extension not provided by older implemen-
- tations of the form library.
+ The <STRONG>TYPE_IPV4</STRONG> variable is an extension not provided by older
+ implementations of the form library.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
+ <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>
- <STRONG><A HREF="form_variables.3x.html">form_variables(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="form_variables.3x.html">form_variables(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
diff --git a/doc/html/man/form_win.3x.html b/doc/html/man/form_win.3x.html
index 9b18e3d2fbd9..976ef2714ed0 100644
--- a/doc/html/man/form_win.3x.html
+++ b/doc/html/man/form_win.3x.html
@@ -1,7 +1,6 @@
-<!--
- * t
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2006,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,21 +27,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: form_win.3x,v 1.18 2020/10/18 00:00:32 tom Exp @
+ * @Id: form_win.3x,v 1.35 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>form_win 3x</TITLE>
+<TITLE>form_win 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">form_win 3x</H1>
+<H1 class="no-header">form_win 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="form_win.3x.html">form_win(3x)</A></STRONG> <STRONG><A HREF="form_win.3x.html">form_win(3x)</A></STRONG>
+<STRONG><A HREF="form_win.3x.html">form_win(3x)</A></STRONG> Library calls <STRONG><A HREF="form_win.3x.html">form_win(3x)</A></STRONG>
@@ -100,17 +99,8 @@
No items are connected to the form.
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
-
-
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header file
- <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines emulate the System V forms library. They were not
+ These routines emulate the System V forms library. They were not
supported on Version 7 or BSD versions.
@@ -119,8 +109,12 @@
Raymond.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>
+
+
- <STRONG><A HREF="form_win.3x.html">form_win(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="form_win.3x.html">form_win(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -128,10 +122,9 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/infocmp.1m.html b/doc/html/man/infocmp.1m.html
index c0ab7629e1b7..44cb12fb7122 100644
--- a/doc/html/man/infocmp.1m.html
+++ b/doc/html/man/infocmp.1m.html
@@ -1,7 +1,7 @@
-<!--
+<!--
* t
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2017,2018 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,21 +28,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: infocmp.1m,v 1.77 2020/07/25 20:37:39 tom Exp @
+ * @Id: infocmp.1m,v 1.109 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>infocmp 1m</TITLE>
+<TITLE>infocmp 1m 2024-03-16 ncurses 6.5 User commands</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">infocmp 1m</H1>
+<H1 class="no-header">infocmp 1m 2024-03-16 ncurses 6.5 User commands</H1>
<PRE>
-<STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG> <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>
+<STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG> User commands <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>
@@ -52,35 +52,35 @@
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
- <STRONG>infocmp</STRONG> [<STRONG>-1CDEFGIKLTUVWcdegilnpqrtux</STRONG>]
+ <STRONG>infocmp</STRONG> [<STRONG>-1cCdDeEFgGiIKlLnpqrtTuUVWx</STRONG>]
[<STRONG>-v</STRONG> <EM>n</EM>] [<STRONG>-s</STRONG> <STRONG>d</STRONG>| <STRONG>i</STRONG>| <STRONG>l</STRONG>| <STRONG>c</STRONG>] [<STRONG>-Q</STRONG> <EM>n</EM>] [<STRONG>-R</STRONG> <STRONG>subset</STRONG>]
[<STRONG>-w</STRONG> <EM>width</EM>] [<STRONG>-A</STRONG> <EM>directory</EM>] [<STRONG>-B</STRONG> <EM>directory</EM>]
- [<EM>termname</EM>...]
+ [<EM>terminal-type</EM> ...]
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
<STRONG>infocmp</STRONG> can be used to compare a binary <STRONG>terminfo</STRONG> entry with other
terminfo entries, rewrite a <STRONG>terminfo</STRONG> description to take advantage of
the <STRONG>use=</STRONG> terminfo field, or print out a <STRONG>terminfo</STRONG> description from the
- binary file (<STRONG>term</STRONG>) in a variety of formats. In all cases, the boolean
+ binary file (<STRONG>term</STRONG>) in a variety of formats. In all cases, the Boolean
fields will be printed first, followed by the numeric fields, followed
by the string fields.
</PRE><H3><a name="h3-Default-Options">Default Options</a></H3><PRE>
- If no options are specified and zero or one <EM>termnames</EM> are specified,
- the <STRONG>-I</STRONG> option will be assumed. If more than one <EM>termname</EM> is specified,
- the <STRONG>-d</STRONG> option will be assumed.
+ If no options are specified and zero or one <EM>terminal-types</EM> are
+ specified, the <STRONG>-I</STRONG> option will be assumed. If more than one <EM>terminal-</EM>
+ <EM>type</EM> is specified, the <STRONG>-d</STRONG> option will be assumed.
-</PRE><H3><a name="h3-Comparison-Options-_-d_-_-c_-_-n_">Comparison Options [-d] [-c] [-n]</a></H3><PRE>
+</PRE><H3><a name="h3-Comparison-Options_d_c_n_">Comparison Options [-d] [-c] [-n]</a></H3><PRE>
<STRONG>infocmp</STRONG> compares the <STRONG>terminfo</STRONG> description of the first terminal
- <EM>termname</EM> with each of the descriptions given by the entries for the
- other terminal's <EM>termnames</EM>. If a capability is defined for only one of
- the terminals, the value returned depends on the type of the
- capability:
+ <EM>terminal-type</EM> with each of the descriptions given by the entries for
+ the other terminal's <EM>terminal-types</EM>. If a capability is defined for
+ only one of the terminals, the value returned depends on the type of
+ the capability:
- <STRONG>o</STRONG> <STRONG>F</STRONG> for missing boolean variables
+ <STRONG>o</STRONG> <STRONG>F</STRONG> for missing Boolean variables
<STRONG>o</STRONG> <STRONG>NULL</STRONG> for missing integer or string variables
@@ -111,22 +111,22 @@
option to add the BSD-compatibility capabilities (names prefixed
with "OT").
- If no <EM>termnames</EM> are given, <STRONG>infocmp</STRONG> uses the environment variable
- <STRONG>TERM</STRONG> for each of the <EM>termnames</EM>.
+ If no <EM>terminal-types</EM> are given, <STRONG>infocmp</STRONG> uses the environment
+ variable <EM>TERM</EM> for each of the <EM>terminal-types</EM>.
-</PRE><H3><a name="h3-Source-Listing-Options-_-I_-_-L_-_-C_-_-r_">Source Listing Options [-I] [-L] [-C] [-r]</a></H3><PRE>
+</PRE><H3><a name="h3-Source-Listing-Options_I_L_C_r_">Source Listing Options [-I] [-L] [-C] [-r]</a></H3><PRE>
The <STRONG>-I</STRONG>, <STRONG>-L</STRONG>, and <STRONG>-C</STRONG> options will produce a source listing for each
terminal named.
- <STRONG>-I</STRONG> use the <STRONG>terminfo</STRONG> names
- <STRONG>-L</STRONG> use the long C variable name listed in &lt;<STRONG>term.h</STRONG>&gt;
- <STRONG>-C</STRONG> use the <STRONG>termcap</STRONG> names
- <STRONG>-r</STRONG> when using <STRONG>-C</STRONG>, put out all capabilities in <STRONG>termcap</STRONG> form
- <STRONG>-K</STRONG> modifies the <STRONG>-C</STRONG> option, improving BSD-compatibility.
+ <STRONG>-I</STRONG> use <EM>terminfo</EM> capability codes
+ <STRONG>-L</STRONG> use "long" capability names
+ <STRONG>-C</STRONG> use <EM>termcap</EM> capability codes
+ <STRONG>-r</STRONG> with <STRONG>-C</STRONG>, include nonstandard capabilities
+ <STRONG>-K</STRONG> with <STRONG>-C</STRONG>, improve BSD compatibility
- If no <EM>termnames</EM> are given, the environment variable <STRONG>TERM</STRONG> will be used
- for the terminal name.
+ If no <EM>terminal-types</EM> are given, the environment variable <EM>TERM</EM> will be
+ used for the terminal name.
The source produced by the <STRONG>-C</STRONG> option may be used directly as a <STRONG>termcap</STRONG>
entry, but not all parameterized strings can be changed to the <STRONG>termcap</STRONG>
@@ -168,41 +168,43 @@
Some common <STRONG>terminfo</STRONG> parameter sequences, their <STRONG>termcap</STRONG> equivalents,
and some terminal types which commonly have such sequences, are:
- <STRONG>terminfo</STRONG> <STRONG>termcap</STRONG> Representative Terminals
- ---------------------------------------------------------------
- <STRONG>%p1%c</STRONG> <STRONG>%.</STRONG> adm
- <STRONG>%p1%d</STRONG> <STRONG>%d</STRONG> hp, ANSI standard, vt100
- <STRONG>%p1%'x'%+%c</STRONG> <STRONG>%+x</STRONG> concept
- <STRONG>%i</STRONG> <STRONG>%i</STRONG>q ANSI standard, vt100
- <STRONG>%p1%?%'x'%&gt;%t%p1%'y'%+%;</STRONG> <STRONG>%&gt;xy</STRONG> concept
- <STRONG>%p2</STRONG> is printed before <STRONG>%p1</STRONG> <STRONG>%r</STRONG> hp
+ <STRONG><EM>terminfo</EM></STRONG> <STRONG><EM>termcap</EM></STRONG> Terminal Types
+ ----------------------------------------------------
+ <STRONG>%p1%c</STRONG> <STRONG>%.</STRONG> ansi-m
+ <STRONG>%p1%d</STRONG> <STRONG>%d</STRONG> ansi, vt100
+ <STRONG>%p1%'</STRONG> <STRONG>'%+%c</STRONG> <STRONG>%+x</STRONG> vt52
+ <STRONG>%i</STRONG> <STRONG>%iq</STRONG> ansi, vt100
+ <STRONG>%p1%?%'x'%&gt;%t%p1%'y'%+%;</STRONG> <STRONG>%&gt;xy</STRONG> annarbor4080
+ <STRONG>%p2</STRONG>...<STRONG>%p1</STRONG> <STRONG>%r</STRONG> hpgeneric
-</PRE><H3><a name="h3-Use_-Option-_-u_">Use= Option [-u]</a></H3><PRE>
+</PRE><H3><a name="h3-Use_Option_u_">Use= Option [-u]</a></H3><PRE>
The <STRONG>-u</STRONG> option produces a <STRONG>terminfo</STRONG> source description of the first
- terminal <EM>termname</EM> which is relative to the sum of the descriptions
- given by the entries for the other terminals <EM>termnames</EM>. It does this
- by analyzing the differences between the first <EM>termname</EM> and the other
- <EM>termnames</EM> and producing a description with <STRONG>use=</STRONG> fields for the other
- terminals. In this manner, it is possible to retrofit generic terminfo
- entries into a terminal's description. Or, if two similar terminals
- exist, but were coded at different times or by different people so that
- each description is a full description, using <STRONG>infocmp</STRONG> will show what
- can be done to change one description to be relative to the other.
+ terminal <EM>terminal-type</EM> which is relative to the sum of the descriptions
+ given by the entries for the other <EM>terminal-types</EM>. It does this by
+ analyzing the differences between the first <EM>terminal-types</EM> and the
+ other <EM>terminal-types</EM> and producing a description with <STRONG>use=</STRONG> fields for
+ the other terminals. In this manner, it is possible to retrofit
+ generic terminfo entries into a terminal's description. Or, if two
+ similar terminals exist, but were coded at different times or by
+ different people so that each description is a full description, using
+ <STRONG>infocmp</STRONG> will show what can be done to change one description to be
+ relative to the other.
A capability will be printed with an at-sign (@) if it no longer exists
- in the first <EM>termname</EM>, but one of the other <EM>termname</EM> entries contains a
- value for it. A capability's value will be printed if the value in the
- first <EM>termname</EM> is not found in any of the other <EM>termname</EM> entries, or if
- the first of the other <EM>termname</EM> entries that has this capability gives
- a different value for the capability than that in the first <EM>termname</EM>.
-
- The order of the other <EM>termname</EM> entries is significant. Since the
+ in the first <EM>terminal-type</EM>, but one of the other <EM>terminal-type</EM> entries
+ contains a value for it. A capability's value will be printed if the
+ value in the first <EM>terminal-type</EM> is not found in any of the other
+ <EM>terminal-type</EM> entries, or if the first of the other <EM>terminal-type</EM>
+ entries that has this capability gives a different value for the
+ capability than that in the first <EM>terminal-type</EM>.
+
+ The order of the other <EM>terminal-type</EM> entries is significant. Since the
terminfo compiler <STRONG>tic</STRONG> does a left-to-right scan of the capabilities,
specifying two <STRONG>use=</STRONG> entries that contain differing entries for the same
capabilities will produce different results depending on the order that
the entries are given in. <STRONG>infocmp</STRONG> will flag any such inconsistencies
- between the other <EM>termname</EM> entries as they are found.
+ between the other <EM>terminal-type</EM> entries as they are found.
Alternatively, specifying a capability <EM>after</EM> a <STRONG>use=</STRONG> entry that contains
that capability will cause the second specification to be ignored.
@@ -212,25 +214,26 @@
Another error that does not cause incorrect compiled files, but will
slow down the compilation time, is specifying extra <STRONG>use=</STRONG> fields that
- are superfluous. <STRONG>infocmp</STRONG> will flag any other <EM>termname</EM> <EM>use=</EM> fields that
- were not needed.
+ are superfluous. <STRONG>infocmp</STRONG> will flag any other <EM>terminal-type</EM> <EM>use=</EM> fields
+ that were not needed.
<STRONG>Changing</STRONG> <STRONG>Databases</STRONG> <STRONG>[-A</STRONG> <EM>directory</EM>] [-B <EM>directory</EM>]
- Like other <STRONG>ncurses</STRONG> utilities, <STRONG>infocmp</STRONG> looks for the terminal
- descriptions in several places. You can use the <STRONG>TERMINFO</STRONG> and
- <STRONG>TERMINFO_DIRS</STRONG> environment variables to override the compiled-in default
- list of places to search (see <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> for details).
+ Like other <EM>ncurses</EM> utilities, <STRONG>infocmp</STRONG> looks for the terminal
+ descriptions in several places. You can use the <EM>TERMINFO</EM> and
+ <EM>TERMINFO</EM><STRONG>_</STRONG><EM>DIRS</EM> environment variables to override the compiled-in default
+ list of places to search. See <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, as well as the <EM>Fetching</EM>
+ <EM>Compiled</EM> <EM>Descriptions</EM> section in <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
- You can also use the options <STRONG>-A</STRONG> and <STRONG>-B</STRONG> to override the list of places
+ You can also use the options <STRONG>-A</STRONG> and <STRONG>-B</STRONG> to override the list of places
to search when comparing terminal descriptions:
- <STRONG>o</STRONG> The <STRONG>-A</STRONG> option sets the location for the first <EM>termname</EM>
+ <STRONG>o</STRONG> The <STRONG>-A</STRONG> option sets the location for the first <EM>terminal-type</EM>
- <STRONG>o</STRONG> The <STRONG>-B</STRONG> option sets the location for the other <EM>termnames</EM>.
+ <STRONG>o</STRONG> The <STRONG>-B</STRONG> option sets the location for the other <EM>terminal-types</EM>.
- Using these options, it is possible to compare descriptions for a
- terminal with the same name located in two different databases. For
- instance, you can use this feature for comparing descriptions for the
+ Using these options, it is possible to compare descriptions for a
+ terminal with the same name located in two different databases. For
+ instance, you can use this feature for comparing descriptions for the
same terminal created by different people.
@@ -238,118 +241,117 @@
<STRONG>-0</STRONG> causes the fields to be printed on one line, without wrapping.
<STRONG>-1</STRONG> causes the fields to be printed out one to a line. Otherwise, the
- fields will be printed several to a line to a maximum width of 60
+ fields will be printed several to a line to a maximum width of 60
characters.
- <STRONG>-a</STRONG> tells <STRONG>infocmp</STRONG> to retain commented-out capabilities rather than
- discarding them. Capabilities are commented by prefixing them
+ <STRONG>-a</STRONG> tells <STRONG>infocmp</STRONG> to retain commented-out capabilities rather than
+ discarding them. Capabilities are commented by prefixing them
with a period.
<STRONG>-D</STRONG> tells <STRONG>infocmp</STRONG> to print the database locations that it knows about,
and exit.
- <STRONG>-E</STRONG> Dump the capabilities of the given terminal as tables, needed in
- the C initializer for a TERMTYPE structure (the terminal
- capability structure in the <STRONG>&lt;term.h&gt;</STRONG>). This option is useful for
- preparing versions of the curses library hardwired for a given
- terminal type. The tables are all declared static, and are named
- according to the type and the name of the corresponding terminal
+ <STRONG>-E</STRONG> Dump the capabilities of the given terminal as tables, needed in
+ the C initializer for a TERMTYPE structure (the terminal
+ capability structure in the <STRONG>&lt;term.h&gt;</STRONG>). This option is useful for
+ preparing versions of the curses library hardwired for a given
+ terminal type. The tables are all declared static, and are named
+ according to the type and the name of the corresponding terminal
entry.
- Before ncurses 5.0, the split between the <STRONG>-e</STRONG> and <STRONG>-E</STRONG> options was
- not needed; but support for extended names required making the
- arrays of terminal capabilities separate from the TERMTYPE
+ Before <EM>ncurses</EM> 5.0, the split between the <STRONG>-e</STRONG> and <STRONG>-E</STRONG> options was
+ not needed; but support for extended names required making the
+ arrays of terminal capabilities separate from the TERMTYPE
structure.
<STRONG>-e</STRONG> Dump the capabilities of the given terminal as a C initializer for
- a TERMTYPE structure (the terminal capability structure in the
- <STRONG>&lt;term.h&gt;</STRONG>). This option is useful for preparing versions of the
+ a TERMTYPE structure (the terminal capability structure in the
+ <STRONG>&lt;term.h&gt;</STRONG>). This option is useful for preparing versions of the
curses library hardwired for a given terminal type.
<STRONG>-F</STRONG> compare terminfo files. This assumes that two following arguments
- are filenames. The files are searched for pairwise matches
- between entries, with two entries considered to match if any of
- their names do. The report printed to standard output lists
- entries with no matches in the other file, and entries with more
- than one match. For entries with exactly one match it includes a
- difference report. Normally, to reduce the volume of the report,
- use references are not resolved before looking for differences,
+ are filenames. The files are searched for pairwise matches
+ between entries, with two entries considered to match if any of
+ their names do. The report printed to standard output lists
+ entries with no matches in the other file, and entries with more
+ than one match. For entries with exactly one match it includes a
+ difference report. Normally, to reduce the volume of the report,
+ use references are not resolved before looking for differences,
but resolution can be forced by also specifying <STRONG>-r</STRONG>.
- <STRONG>-f</STRONG> Display complex terminfo strings which contain if/then/else/endif
+ <STRONG>-f</STRONG> Display complex terminfo strings which contain if/then/else/endif
expressions indented for readability.
- <STRONG>-G</STRONG> Display constant literals in decimal form rather than their
+ <STRONG>-G</STRONG> Display constant literals in decimal form rather than their
character equivalents.
- <STRONG>-g</STRONG> Display constant character literals in quoted form rather than
+ <STRONG>-g</STRONG> Display constant character literals in quoted form rather than
their decimal equivalents.
- <STRONG>-i</STRONG> Analyze the initialization (<STRONG>is1</STRONG>, <STRONG>is2</STRONG>, <STRONG>is3</STRONG>), and reset (<STRONG>rs1</STRONG>, <STRONG>rs2</STRONG>,
- <STRONG>rs3</STRONG>), strings in the entry, as well as those used for
- starting/stopping cursor-positioning mode (<STRONG>smcup</STRONG>, <STRONG>rmcup</STRONG>) as well
+ <STRONG>-i</STRONG> Analyze the initialization (<STRONG>is1</STRONG>, <STRONG>is2</STRONG>, <STRONG>is3</STRONG>), and reset (<STRONG>rs1</STRONG>, <STRONG>rs2</STRONG>,
+ <STRONG>rs3</STRONG>), strings in the entry, as well as those used for
+ starting/stopping cursor-positioning mode (<STRONG>smcup</STRONG>, <STRONG>rmcup</STRONG>) as well
as starting/stopping keymap mode (<STRONG>smkx</STRONG>, <STRONG>rmkx</STRONG>).
- For each string, the code tries to analyze it into actions in
- terms of the other capabilities in the entry, certain X3.64/ISO
+ For each string, the code tries to analyze it into actions in
+ terms of the other capabilities in the entry, certain X3.64/ISO
6429/ECMA-48 capabilities, and certain DEC VT-series private modes
- (the set of recognized special sequences has been selected for
- completeness over the existing terminfo database). Each report
- line consists of the capability name, followed by a colon and
- space, followed by a printable expansion of the capability string
- with sections matching recognized actions translated into
+ (the set of recognized special sequences has been selected for
+ completeness over the existing terminfo database). Each report
+ line consists of the capability name, followed by a colon and
+ space, followed by a printable expansion of the capability string
+ with sections matching recognized actions translated into
{}-bracketed descriptions.
Here is a list of the DEC/ANSI special sequences recognized:
- Action Meaning
- -----------------------------------------
- RIS full reset
- SC save cursor
- RC restore cursor
- LL home-down
- RSR reset scroll region
- -----------------------------------------
- DECSTR soft reset (VT320)
- S7C1T 7-bit controls (VT220)
- -----------------------------------------
-
- ISO DEC G0 enable DEC graphics for G0
- ISO UK G0 enable UK chars for G0
- ISO US G0 enable US chars for G0
- ISO DEC G1 enable DEC graphics for G1
- ISO UK G1 enable UK chars for G1
- ISO US G1 enable US chars for G1
- -----------------------------------------
- DECPAM application keypad mode
- DECPNM normal keypad mode
- DECANSI enter ANSI mode
- -----------------------------------------
- ECMA[+-]AM keyboard action mode
- ECMA[+-]IRM insert replace mode
- ECMA[+-]SRM send receive mode
- ECMA[+-]LNM linefeed mode
- -----------------------------------------
- DEC[+-]CKM application cursor keys
- DEC[+-]ANM set VT52 mode
- DEC[+-]COLM 132-column mode
- DEC[+-]SCLM smooth scroll
- DEC[+-]SCNM reverse video mode
- DEC[+-]OM origin mode
- DEC[+-]AWM wraparound mode
- DEC[+-]ARM auto-repeat mode
-
- It also recognizes a SGR action corresponding to ANSI/ISO
- 6429/ECMA Set Graphics Rendition, with the values NORMAL, BOLD,
- UNDERLINE, BLINK, and REVERSE. All but NORMAL may be prefixed
- with
-
- <STRONG>o</STRONG> "+" (turn on) or
-
- <STRONG>o</STRONG> "-" (turn off).
-
- An SGR0 designates an empty highlight sequence (equivalent to
- {SGR:NORMAL}).
+ Action Meaning
+ -----------------------------------------
+ RIS full reset
+ SC save cursor
+ RC restore cursor
+ LL home-down
+ RSR reset scroll region
+ -----------------------------------------
+
+ DECSTR soft reset (VT320)
+ S7C1T 7-bit controls (VT220)
+ -----------------------------------------
+ ISO DEC G0 enable DEC graphics for G0
+ ISO UK G0 enable UK chars for G0
+ ISO US G0 enable US chars for G0
+ ISO DEC G1 enable DEC graphics for G1
+ ISO UK G1 enable UK chars for G1
+ ISO US G1 enable US chars for G1
+ -----------------------------------------
+ DECPAM application keypad mode
+ DECPNM normal keypad mode
+ DECANSI enter ANSI mode
+ -----------------------------------------
+ ECMA[+-]AM keyboard action mode
+ ECMA[+-]IRM insert replace mode
+ ECMA[+-]SRM send receive mode
+ ECMA[+-]LNM linefeed mode
+ -----------------------------------------
+ DEC[+-]CKM application cursor keys
+ DEC[+-]ANM set VT52 mode
+ DEC[+-]COLM 132-column mode
+ DEC[+-]SCLM smooth scroll
+ DEC[+-]SCNM reverse video mode
+ DEC[+-]OM origin mode
+ DEC[+-]AWM wraparound mode
+ DEC[+-]ARM auto-repeat mode
+
+ It also recognizes a SGR action corresponding to ANSI/ISO 6429/ECMA Set
+ Graphics Rendition, with the values NORMAL, BOLD, UNDERLINE, BLINK, and
+ REVERSE. All but NORMAL may be prefixed with
+
+ <STRONG>o</STRONG> "+" (turn on) or
+
+ <STRONG>o</STRONG> "-" (turn off).
+
+ An SGR0 designates an empty highlight sequence (equivalent to
+ {SGR:NORMAL}).
<STRONG>-l</STRONG> Set output format to terminfo.
@@ -366,7 +368,7 @@
3 hexadecimal and base64
For example, this prints the compiled terminfo value as a string
- which could be assigned to the <STRONG>TERMINFO</STRONG> environment variable:
+ which could be assigned to the <EM>TERMINFO</EM> environment variable:
infocmp -0 -q -Q2
@@ -383,7 +385,7 @@
<STRONG>-R</STRONG><EM>subset</EM>
Restrict output to a given subset. This option is for use with
- archaic versions of terminfo like those on SVr1, Ultrix, or HP/UX
+ archaic versions of terminfo like those on SVr1, Ultrix, or HP-UX
that do not support the full set of SVR4/XSI Curses terminfo; and
variants such as AIX that have their own extensions incompatible
with SVr4/XSI.
@@ -392,18 +394,25 @@
"AIX"; see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> for details.
<STRONG>o</STRONG> You can also choose the subset "BSD" which selects only
- capabilities with termcap equivalents recognized by 4.4BSD.
- The <STRONG>-C</STRONG> option sets the "BSD" subset as a side-effect.
+ capabilities with termcap equivalents recognized by 4.4BSD.
+
+ <STRONG>o</STRONG> If you select any other value for <STRONG>-R</STRONG>, it is the same as no
+ subset, i.e., all capabilities are used.
+
+ A few options override the subset selected with <STRONG>-R</STRONG>, if they are
+ processed later in the command parameters:
- <STRONG>o</STRONG> If you select any other value for <STRONG>-R</STRONG>, it is the same as no
- subset, i.e., all capabilities are used. The <STRONG>-I</STRONG> option
- likewise selects no subset as a side-effect.
+ <STRONG>-C</STRONG> sets the "BSD" subset as a side-effect.
+
+ <STRONG>-I</STRONG> sets the subset to all capabilities.
+
+ <STRONG>-r</STRONG> sets the subset to all capabilities.
<STRONG>-s</STRONG> <EM>[d|i|l|c]</EM>
- The <STRONG>-s</STRONG> option sorts the fields within each type according to the
+ The <STRONG>-s</STRONG> option sorts the fields within each type according to the
argument below:
- <STRONG>d</STRONG> leave fields in the order that they are stored in the
+ <STRONG>d</STRONG> leave fields in the order that they are stored in the
<EM>terminfo</EM> database.
<STRONG>i</STRONG> sort by <EM>terminfo</EM> name.
@@ -412,118 +421,117 @@
<STRONG>c</STRONG> sort by the <EM>termcap</EM> name.
- If the <STRONG>-s</STRONG> option is not given, the fields printed out will be
- sorted alphabetically by the <STRONG>terminfo</STRONG> name within each type,
- except in the case of the <STRONG>-C</STRONG> or the <STRONG>-L</STRONG> options, which cause the
- sorting to be done by the <STRONG>termcap</STRONG> name or the long C variable
+ If the <STRONG>-s</STRONG> option is not given, the fields printed out will be
+ sorted alphabetically by the <STRONG>terminfo</STRONG> name within each type,
+ except in the case of the <STRONG>-C</STRONG> or the <STRONG>-L</STRONG> options, which cause the
+ sorting to be done by the <STRONG>termcap</STRONG> name or the long C variable
name, respectively.
- <STRONG>-T</STRONG> eliminates size-restrictions on the generated text. This is
+ <STRONG>-T</STRONG> eliminates size-restrictions on the generated text. This is
mainly useful for testing and analysis, since the compiled
descriptions are limited (e.g., 1023 for termcap, 4096 for
terminfo).
- <STRONG>-t</STRONG> tells <STRONG>tic</STRONG> to discard commented-out capabilities. Normally when
- translating from terminfo to termcap, untranslatable capabilities
+ <STRONG>-t</STRONG> tells <STRONG>tic</STRONG> to discard commented-out capabilities. Normally when
+ translating from terminfo to termcap, untranslatable capabilities
are commented-out.
- <STRONG>-U</STRONG> tells <STRONG>infocmp</STRONG> to not post-process the data after parsing the
+ <STRONG>-U</STRONG> tells <STRONG>infocmp</STRONG> to not post-process the data after parsing the
source file. This feature helps when comparing the actual
- contents of two source files, since it excludes the inferences
+ contents of two source files, since it excludes the inferences
that <STRONG>infocmp</STRONG> makes to fill in missing data.
- <STRONG>-V</STRONG> reports the version of ncurses which was used in this program, and
+ <STRONG>-V</STRONG> reports the version of <EM>ncurses</EM> which was used in this program, and
exits.
- <STRONG>-v</STRONG> <EM>n</EM> prints out tracing information on standard error as the program
+ <STRONG>-v</STRONG> <EM>n</EM> prints out tracing information on standard error as the program
runs.
- The optional parameter <EM>n</EM> is a number from 1 to 10, inclusive,
- indicating the desired level of detail of information. If ncurses
- is built without tracing support, the optional parameter is
+ The optional parameter <EM>n</EM> is a number from 1 to 10, inclusive,
+ indicating the desired level of detail of information. If <EM>ncurses</EM>
+ is built without tracing support, the optional parameter is
ignored.
- <STRONG>-W</STRONG> By itself, the <STRONG>-w</STRONG> option will not force long strings to be
+ <STRONG>-W</STRONG> By itself, the <STRONG>-w</STRONG> option will not force long strings to be
wrapped. Use the <STRONG>-W</STRONG> option to do this.
<STRONG>-w</STRONG> <EM>width</EM>
changes the output to <EM>width</EM> characters.
- <STRONG>-x</STRONG> print information for user-defined capabilities (see <STRONG>user_caps(5)</STRONG>.
- These are extensions to the terminfo repertoire which can be
+ <STRONG>-x</STRONG> print information for user-defined capabilities (see <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>.
+ These are extensions to the terminfo repertoire which can be
loaded using the <STRONG>-x</STRONG> option of <STRONG>tic</STRONG>.
</PRE><H2><a name="h2-FILES">FILES</a></H2><PRE>
- /usr/share/terminfo Compiled terminal description database.
+ <EM>/usr/share/terminfo</EM>
+ compiled terminal description database
+
+
+</PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
+ The <STRONG>-0</STRONG>, <STRONG>-1</STRONG>, <STRONG>-E</STRONG>, <STRONG>-F</STRONG>, <STRONG>-G</STRONG>, <STRONG>-Q</STRONG>, <STRONG>-R</STRONG>, <STRONG>-T</STRONG>, <STRONG>-V</STRONG>, <STRONG>-a</STRONG>, <STRONG>-e</STRONG>, <STRONG>-f</STRONG>, <STRONG>-g</STRONG>, <STRONG>-i</STRONG>, <STRONG>-l</STRONG>, <STRONG>-p</STRONG>, <STRONG>-q</STRONG>
+ and <STRONG>-t</STRONG> options are not supported in SVr4 curses.
+
+ SVr4 infocmp does not distinguish between absent and cancelled
+ capabilities. Also, it shows missing integer capabilities as <STRONG>-1</STRONG> (the
+ internal value used to represent missing integers). This
+ implementation shows those as "NULL", for consistency with missing
+ strings.
+
+ The <STRONG>-r</STRONG> option's notion of "termcap" capabilities is System V Release
+ 4's. Actual BSD curses versions will have a more restricted set. To
+ see only the 4.4BSD set, use <STRONG>-r</STRONG> <STRONG>-RBSD</STRONG>.
+
+
+</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
+ X/Open Curses, Issue 7 (2009) provides a description of <STRONG>infocmp</STRONG>. It
+ does not mention the options used for converting to termcap format.
</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
- Although System V Release 2 provided a terminfo library, it had no
+ Although System V Release 2 provided a terminfo library, it had no
documented tool for decompiling the terminal descriptions. Tony Hansen
(AT&amp;T) wrote the first <STRONG>infocmp</STRONG> in early 1984, for System V Release 3.
- Eric Raymond used the AT&amp;T documentation in 1995 to provide an
- equivalent <STRONG>infocmp</STRONG> for ncurses. In addition, he added a few new
+ Eric Raymond used the AT&amp;T documentation in 1995 to provide an
+ equivalent <STRONG>infocmp</STRONG> for <EM>ncurses</EM>. In addition, he added a few new
features such as:
- <STRONG>o</STRONG> the <STRONG>-e</STRONG> option, to support <EM>fallback</EM> (compiled-in) terminal
+ <STRONG>o</STRONG> the <STRONG>-e</STRONG> option, to support <EM>fallback</EM> (compiled-in) terminal
descriptions
<STRONG>o</STRONG> the <STRONG>-i</STRONG> option, to help with analysis
- Later, Thomas Dickey added the <STRONG>-x</STRONG> (user-defined capabilities) option,
- and the <STRONG>-E</STRONG> option to support fallback entries with user-defined
+ Later, Thomas Dickey added the <STRONG>-x</STRONG> (user-defined capabilities) option,
+ and the <STRONG>-E</STRONG> option to support fallback entries with user-defined
capabilities.
For a complete list, see the <EM>EXTENSIONS</EM> section.
- In 2010, Roy Marples provided an <STRONG>infocmp</STRONG> program for NetBSD. It is
- less capable than the SVr4 or ncurses versions (e.g., it lacks the
- sorting options documented in X/Open), but does include the <STRONG>-x</STRONG> option
- adapted from ncurses.
-
-
-</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- X/Open Curses, Issue 7 (2009) provides a description of <STRONG>infocmp</STRONG>. It
- does not mention the options used for converting to termcap format.
-
-
-</PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
- The <STRONG>-0</STRONG>, <STRONG>-1</STRONG>, <STRONG>-E</STRONG>, <STRONG>-F</STRONG>, <STRONG>-G</STRONG>, <STRONG>-Q</STRONG>, <STRONG>-R</STRONG>, <STRONG>-T</STRONG>, <STRONG>-V</STRONG>, <STRONG>-a</STRONG>, <STRONG>-e</STRONG>, <STRONG>-f</STRONG>, <STRONG>-g</STRONG>, <STRONG>-i</STRONG>, <STRONG>-l</STRONG>, <STRONG>-p</STRONG>, <STRONG>-q</STRONG>
- and <STRONG>-t</STRONG> options are not supported in SVr4 curses.
-
- SVr4 infocmp does not distinguish between absent and cancelled
- capabilities. Also, it shows missing integer capabilities as <STRONG>-1</STRONG> (the
- internal value used to represent missing integers). This
- implementation shows those as "NULL", for consistency with missing
- strings.
-
- The <STRONG>-r</STRONG> option's notion of "termcap" capabilities is System V Release
- 4's. Actual BSD curses versions will have a more restricted set. To
- see only the 4.4BSD set, use <STRONG>-r</STRONG> <STRONG>-RBSD</STRONG>.
+ In 2010, Roy Marples provided an <STRONG>infocmp</STRONG> program for NetBSD. It is
+ less capable than the SVr4 or <EM>ncurses</EM> versions (e.g., it lacks the
+ sorting options documented in X/Open), but does include the <STRONG>-x</STRONG> option
+ adapted from <EM>ncurses</EM>.
</PRE><H2><a name="h2-BUGS">BUGS</a></H2><PRE>
The <STRONG>-F</STRONG> option of <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG> should be a <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG> mode.
+</PRE><H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
+ Eric S. Raymond &lt;esr@snark.thyrsus.com&gt; and
+ Thomas E. Dickey &lt;dickey@invisible-island.net&gt;
+
+
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
<STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>, <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>, <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,
- <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>. <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>.
+ <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>, <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>
https://invisible-island.net/ncurses/tctest.html
- This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210109).
-
-
-</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
- Eric S. Raymond &lt;esr@snark.thyrsus.com&gt; and
- Thomas E. Dickey &lt;dickey@invisible-island.net&gt;
-
- <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -532,19 +540,19 @@
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
<ul>
<li><a href="#h3-Default-Options">Default Options</a></li>
-<li><a href="#h3-Comparison-Options-_-d_-_-c_-_-n_">Comparison Options [-d] [-c] [-n]</a></li>
-<li><a href="#h3-Source-Listing-Options-_-I_-_-L_-_-C_-_-r_">Source Listing Options [-I] [-L] [-C] [-r]</a></li>
-<li><a href="#h3-Use_-Option-_-u_">Use= Option [-u]</a></li>
+<li><a href="#h3-Comparison-Options_d_c_n_">Comparison Options [-d] [-c] [-n]</a></li>
+<li><a href="#h3-Source-Listing-Options_I_L_C_r_">Source Listing Options [-I] [-L] [-C] [-r]</a></li>
+<li><a href="#h3-Use_Option_u_">Use= Option [-u]</a></li>
<li><a href="#h3-Other-Options">Other Options</a></li>
</ul>
</li>
<li><a href="#h2-FILES">FILES</a></li>
-<li><a href="#h2-HISTORY">HISTORY</a></li>
-<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-EXTENSIONS">EXTENSIONS</a></li>
+<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
+<li><a href="#h2-HISTORY">HISTORY</a></li>
<li><a href="#h2-BUGS">BUGS</a></li>
+<li><a href="#h2-AUTHORS">AUTHORS</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-AUTHOR">AUTHOR</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/infotocap.1m.html b/doc/html/man/infotocap.1m.html
index 2af6ac13821b..4213f69428fe 100644
--- a/doc/html/man/infotocap.1m.html
+++ b/doc/html/man/infotocap.1m.html
@@ -1,7 +1,6 @@
-<!--
- * t
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1999-2010,2016 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,21 +27,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: infotocap.1m,v 1.17 2020/12/19 21:49:52 tom Exp @
+ * @Id: infotocap.1m,v 1.41 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>infotocap 1m</TITLE>
+<TITLE>infotocap 1m 2024-03-16 ncurses 6.5 User commands</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">infotocap 1m</H1>
+<H1 class="no-header">infotocap 1m 2024-03-16 ncurses 6.5 User commands</H1>
<PRE>
-<STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG> <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>
+<STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG> User commands <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>
@@ -52,55 +51,46 @@
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
- <STRONG>infotocap</STRONG> [<STRONG>-v</STRONG><EM>n</EM> <EM>width</EM>] [<STRONG>-V</STRONG>] [<STRONG>-1</STRONG>] [<STRONG>-w</STRONG> <EM>width</EM>] <EM>file</EM> ...
-
-
-</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- <STRONG>infotocap</STRONG> looks in each given text <EM>file</EM> for <STRONG>terminfo</STRONG> descriptions. For
- each terminfo description found, an equivalent <STRONG>termcap</STRONG> description is
- written to standard output. Terminfo <STRONG>use</STRONG> capabilities are translated
- directly to termcap <STRONG>tc</STRONG> capabilities.
+ <STRONG>infotocap</STRONG> [<EM>tic-option</EM>] <EM>file</EM> ...
- <STRONG>-v</STRONG> print out tracing information on standard error as the program
- runs.
+ <STRONG>infotocap</STRONG> <STRONG>-V</STRONG>
- <STRONG>-V</STRONG> print out the version of the program in use on standard error and
- exit.
- <STRONG>-1</STRONG> cause the fields to print out one to a line. Otherwise, the
- fields will be printed several to a line to a maximum width of 60
- characters.
+</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
+ <STRONG>infotocap</STRONG> translates terminal descriptions. It looks in each given
+ text <EM>file</EM> for <EM>terminfo</EM> entries and, For each one found, it writes an
+ analogous <EM>termcap</EM> description to the standard output stream. <EM>terminfo</EM>
+ "<STRONG>use</STRONG>" capabilities translate to <EM>termcap</EM> <STRONG>tc</STRONG> capabilities. Because
+ <EM>termcap</EM> is a less expressive format than <EM>terminfo</EM>, some capabilities
+ cannot be translated.
- <STRONG>-w</STRONG> change the output to <EM>width</EM> characters.
+ This utility is implemented as a link to <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, with the latter's <STRONG>-C</STRONG>
+ option implied. You can use other <STRONG>tic</STRONG> options such as <STRONG>-1</STRONG>, <STRONG>-f</STRONG>, <STRONG>-v</STRONG>, <STRONG>-w</STRONG>,
+ and <STRONG>-x</STRONG>. The <STRONG>-V</STRONG> option reports the version of <EM>ncurses</EM> associated with
+ this program and exits with a successful status.
</PRE><H2><a name="h2-FILES">FILES</a></H2><PRE>
- /usr/share/terminfo Compiled terminal description database.
-
-
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- This utility is actually a link to <STRONG>tic</STRONG>, running in <EM>-C</EM> mode. You can
- use other <STRONG>tic</STRONG> options such as <STRONG>-f</STRONG> and <STRONG>-x</STRONG>.
+ <EM>/usr/share/terminfo</EM>
+ compiled terminal description database
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- None of X/Open Curses, Issue 7 (2009), SVr4 or NetBSD document this
+ None of X/Open Curses, Issue 7 (2009), SVr4, or NetBSD document this
application.
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
-
- This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210109).
-
-
-</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
+</PRE><H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
Eric S. Raymond &lt;esr@snark.thyrsus.com&gt; and
Thomas E. Dickey &lt;dickey@invisible-island.net&gt;
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
+
+
- <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -108,10 +98,9 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-FILES">FILES</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
+<li><a href="#h2-AUTHORS">AUTHORS</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-AUTHOR">AUTHOR</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/key_defined.3x.html b/doc/html/man/key_defined.3x.html
index 87278cacefce..453decfdb758 100644
--- a/doc/html/man/key_defined.3x.html
+++ b/doc/html/man/key_defined.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 2003-2006,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,27 +28,27 @@
* authorization. *
****************************************************************************
* Author: Thomas E. Dickey 2003
- * @Id: key_defined.3x,v 1.10 2020/10/17 23:39:03 tom Exp @
+ * @Id: key_defined.3x,v 1.34 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>key_defined 3x</TITLE>
+<TITLE>key_defined 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">key_defined 3x</H1>
+<H1 class="no-header">key_defined 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG> <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>
+<STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG> Library calls <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>key_defined</STRONG> - check if a keycode is defined
+ <STRONG>key_defined</STRONG> - test whether a <EM>curses</EM> keycode is defined
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -58,7 +58,7 @@
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- This is an extension to the curses library. It permits an application
+ This is an extension to the <EM>curses</EM> library. It permits an application
to determine if a string is currently bound to any keycode.
@@ -69,21 +69,21 @@
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines are specific to ncurses. They were not supported on
- Version 7, BSD or System V implementations. It is recommended that any
- code depending on them be conditioned using NCURSES_VERSION.
+ This routine is specific to <EM>ncurses</EM>. It was not supported on Version
+ 7, BSD or System V implementations. It is recommended that any code
+ depending on them be conditioned using <STRONG>NCURSES_VERSION</STRONG>.
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>.
+</PRE><H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
+ Thomas Dickey
-</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
- Thomas Dickey.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>
- <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -92,8 +92,8 @@
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
+<li><a href="#h2-AUTHORS">AUTHORS</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-AUTHOR">AUTHOR</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/keybound.3x.html b/doc/html/man/keybound.3x.html
index 551376227b24..e926e77c6acb 100644
--- a/doc/html/man/keybound.3x.html
+++ b/doc/html/man/keybound.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1999-2008,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,65 +28,65 @@
* authorization. *
****************************************************************************
* Author: Thomas E. Dickey 1999
- * @Id: keybound.3x,v 1.11 2020/10/17 23:39:30 tom Exp @
+ * @Id: keybound.3x,v 1.36 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>keybound 3x</TITLE>
+<TITLE>keybound 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">keybound 3x</H1>
+<H1 class="no-header">keybound 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="keybound.3x.html">keybound(3x)</A></STRONG> <STRONG><A HREF="keybound.3x.html">keybound(3x)</A></STRONG>
+<STRONG><A HREF="keybound.3x.html">keybound(3x)</A></STRONG> Library calls <STRONG><A HREF="keybound.3x.html">keybound(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>keybound</STRONG> - return definition of keycode
+ <STRONG>keybound</STRONG> - get definition of <EM>curses</EM> keycode
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
<STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
- <STRONG>char</STRONG> <STRONG>*</STRONG> <STRONG>keybound(int</STRONG> <EM>keycode</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>count);</EM>
+ <STRONG>char</STRONG> <STRONG>*</STRONG> <STRONG>keybound(int</STRONG> <EM>keycode</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>count</EM><STRONG>);</STRONG>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- This is an extension to the curses library. It permits an application
+ This is an extension to the <EM>curses</EM> library. It permits an application
to determine the string which is defined in the terminfo for specific
keycodes.
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- The <EM>keycode</EM> parameter must be greater than zero, else NULL is returned.
- If it does not correspond to a defined key, then NULL is returned. The
+ The <EM>keycode</EM> parameter must be greater than zero, else <STRONG>NULL</STRONG> is returned.
+ If it does not correspond to a defined key, then <STRONG>NULL</STRONG> is returned. The
<EM>count</EM> parameter is used to allow the application to iterate through
multiple definitions, counting from zero. When successful, the
function returns a string which must be freed by the caller.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines are specific to ncurses. They were not supported on
- Version 7, BSD or System V implementations. It is recommended that any
- code depending on them be conditioned using NCURSES_VERSION.
+ This routine is specific to <EM>ncurses</EM>. It was not supported on Version
+ 7, BSD or System V implementations. It is recommended that any code
+ depending on them be conditioned using <STRONG>NCURSES_VERSION</STRONG>.
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>, <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>.
+</PRE><H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
+ Thomas Dickey
-</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
- Thomas Dickey.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>, <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>
- <STRONG><A HREF="keybound.3x.html">keybound(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="keybound.3x.html">keybound(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -95,8 +95,8 @@
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
+<li><a href="#h2-AUTHORS">AUTHORS</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-AUTHOR">AUTHOR</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/keyok.3x.html b/doc/html/man/keyok.3x.html
index 3d255b476438..f94f82f49db1 100644
--- a/doc/html/man/keyok.3x.html
+++ b/doc/html/man/keyok.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2010,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,27 +28,27 @@
* authorization. *
****************************************************************************
* Author: Thomas E. Dickey 1997
- * @Id: keyok.3x,v 1.15 2020/10/17 23:39:59 tom Exp @
+ * @Id: keyok.3x,v 1.40 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>keyok 3x</TITLE>
+<TITLE>keyok 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">keyok 3x</H1>
+<H1 class="no-header">keyok 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG> <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>
+<STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG> Library calls <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>keyok</STRONG> - enable or disable a keycode
+ <STRONG>keyok</STRONG> - enable or disable a <EM>curses</EM> keycode
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -58,8 +58,8 @@
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- This is an extension to the curses library. It permits an application
- to disable specific keycodes, rather than use the <EM>keypad</EM> function to
+ This is an extension to the <EM>curses</EM> library. It permits an application
+ to disable specific keycodes, rather than use the <STRONG>keypad</STRONG> function to
disable all keycodes. Keys that have been disabled can be re-enabled.
@@ -71,21 +71,21 @@
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines are specific to ncurses. They were not supported on
- Version 7, BSD or System V implementations. It is recommended that any
- code depending on them be conditioned using NCURSES_VERSION.
+ This routine is specific to <EM>ncurses</EM>. It was not supported on Version
+ 7, BSD or System V implementations. It is recommended that any code
+ depending on them be conditioned using <STRONG>NCURSES_VERSION</STRONG>.
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>.
+</PRE><H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
+ Thomas Dickey
-</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
- Thomas Dickey.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>
- <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -94,8 +94,8 @@
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
+<li><a href="#h2-AUTHORS">AUTHORS</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-AUTHOR">AUTHOR</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/legacy_coding.3x.html b/doc/html/man/legacy_coding.3x.html
index a7f3026ae29f..f7b41ba9996b 100644
--- a/doc/html/man/legacy_coding.3x.html
+++ b/doc/html/man/legacy_coding.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020-2023,2024 Thomas E. Dickey *
* Copyright 2005-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,27 +28,27 @@
* authorization. *
****************************************************************************
* Author: Thomas E. Dickey
- * @Id: legacy_coding.3x,v 1.8 2020/10/17 23:40:23 tom Exp @
+ * @Id: legacy_coding.3x,v 1.28 2024/04/20 19:13:50 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>legacy_coding 3x</TITLE>
+<TITLE>legacy_coding 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">legacy_coding 3x</H1>
+<H1 class="no-header">legacy_coding 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="legacy_coding.3x.html">legacy_coding(3x)</A></STRONG> <STRONG><A HREF="legacy_coding.3x.html">legacy_coding(3x)</A></STRONG>
+<STRONG><A HREF="legacy_coding.3x.html">legacy_coding(3x)</A></STRONG> Library calls <STRONG><A HREF="legacy_coding.3x.html">legacy_coding(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>use_legacy_coding</STRONG> - override locale-encoding checks
+ <STRONG>use_legacy_coding</STRONG> - override <EM>curses</EM> locale encoding checks
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -58,47 +58,47 @@
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- The <STRONG>use_legacy_coding</STRONG> function is an extension to the curses library.
- It allows the caller to change the result of <STRONG>unctrl</STRONG>, and suppress
- related checks within the library that would normally cause nonprinting
- characters to be rendered in visible form. This affects only 8-bit
- characters.
+ <STRONG>use_legacy_coding</STRONG> is an extension to the <EM>curses</EM> library. It allows the
+ caller to change the result of <STRONG><A HREF="unctrl.3x.html">unctrl(3x)</A></STRONG>, suppressing <STRONG>isprint(3)</STRONG>-based
+ checks within the library that would normally cause nonprinting
+ characters to be rendered in visible form. The alteration affects only
+ eight-bit characters.
- The <EM>level</EM> parameter controls the result:
+ The <EM>level</EM> parameter controls the result.
- 0 the library functions normally, rendering nonprinting
- characters as described in <STRONG>unctrl</STRONG>.
+ <STRONG>0</STRONG> The library functions normally, rendering nonprinting
+ characters as described in <STRONG><A HREF="unctrl.3x.html">unctrl(3x)</A></STRONG>,
- 1 the library ignores <STRONG>isprintf</STRONG> for codes in the range
- 160-255.
+ <STRONG>1</STRONG> the library ignores <EM>isprint</EM> for codes in the range 160-255.
- 2 the library ignores <STRONG>isprintf</STRONG> for codes in the range
- 128-255. It also modifies the output of <STRONG>unctrl</STRONG>, showing
- codes in the range 128-159 as is.
+ <STRONG>2</STRONG> the library ignores <EM>isprint</EM> for codes in the range 128-255.
+ It also modifies the output of <STRONG><A HREF="unctrl.3x.html">unctrl(3x)</A></STRONG>, showing codes in
+ the range 128-159 as is.
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- If the screen has not been initialized, or the <EM>level</EM> parameter is out
- of range, the function returns <STRONG>ERR</STRONG>. Otherwise, it returns the previous
- level: <STRONG>0</STRONG>, <STRONG>1</STRONG> or <STRONG>2</STRONG>.
+ If the screen has not been initialized, or the <EM>level</EM> parameter is out
+ of range, <STRONG>use_legacy_coding</STRONG> returns <STRONG>ERR</STRONG>. Otherwise, it returns the
+ previous level: <STRONG>0</STRONG>, <STRONG>1</STRONG>, or <STRONG>2</STRONG>.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- This routine is specific to ncurses. It was not supported on Version
- 7, BSD or System V implementations. It is recommended that any code
- depending on ncurses extensions be conditioned using NCURSES_VERSION.
+ <STRONG>use_legacy_coding</STRONG> is specific to <EM>ncurses</EM>. It was not supported on
+ Version 7, BSD or System V implementations. Applications employing
+ <EM>ncurses</EM> extensions should condition their use on the visibility of the
+ <STRONG>NCURSES_VERSION</STRONG> preprocessor macro.
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG>unctrl</STRONG>.
+</PRE><H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
+ Thomas Dickey (to support <STRONG>lynx(1)</STRONG>'s font-switching feature).
-</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
- Thomas Dickey (to support lynx's font-switching feature).
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="unctrl.3x.html">unctrl(3x)</A></STRONG>
- <STRONG><A HREF="legacy_coding.3x.html">legacy_coding(3x)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="legacy_coding.3x.html">legacy_coding(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -107,8 +107,8 @@
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
+<li><a href="#h2-AUTHORS">AUTHORS</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-AUTHOR">AUTHOR</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/menu.3x.html b/doc/html/man/menu.3x.html
index 6961b2b19314..a499cf1adbd7 100644
--- a/doc/html/man/menu.3x.html
+++ b/doc/html/man/menu.3x.html
@@ -1,7 +1,7 @@
-<!--
+<!--
* t
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2014,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,21 +28,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: menu.3x,v 1.27 2020/02/02 23:34:34 tom Exp @
+ * @Id: menu.3x,v 1.45 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>menu 3x</TITLE>
+<TITLE>menu 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">menu 3x</H1>
+<H1 class="no-header">menu 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG> <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>
+<STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG> Library calls <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>
@@ -190,24 +190,19 @@
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header files
- <STRONG>&lt;curses.h&gt;</STRONG> and <STRONG>&lt;eti.h&gt;</STRONG>.
-
- In your library list, libmenu.a should be before libncurses.a; that is,
- you should say "-lmenu -lncurses", not the other way around (which
- would give a link-error when using static libraries).
+ The header file <EM>menu.h</EM> itself includes the header file <EM>curses.h</EM>.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines emulate the System V menu library. They were not
+ These routines emulate the System V menu library. They were not
supported on Version 7 or BSD versions.
- The menu facility was documented in SVr4.2 in <EM>Character</EM> <EM>User</EM> <EM>Interface</EM>
- <EM>Programming</EM> <EM>(UNIX</EM> <EM>SVR4.2)</EM>.
+ A menu facility was documented in SVr4.2's <EM>Character</EM> <EM>User</EM> <EM>Interface</EM>
+ <EM>Programming</EM> document.
It is not part of X/Open Curses.
- Aside from ncurses, there are few implementations:
+ Aside from <EM>ncurses</EM>, there are few implementations:
<STRONG>o</STRONG> systems based on SVr4 source code, e.g., Solaris.
@@ -215,19 +210,17 @@
</PRE><H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for ncurses by Eric S.
+ Juergen Pfeifer. Manual pages and adaptation for <EM>ncurses</EM> by Eric S.
Raymond.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names begin "menu_" for detailed
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names begin "menu_" for detailed
descriptions of the entry points.
- This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210109).
-
- <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
diff --git a/doc/html/man/menu_attributes.3x.html b/doc/html/man/menu_attributes.3x.html
index ec9db2ed2e32..3b3f6ea5e2e8 100644
--- a/doc/html/man/menu_attributes.3x.html
+++ b/doc/html/man/menu_attributes.3x.html
@@ -1,7 +1,6 @@
-<!--
- * t
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2010,2015 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,21 +27,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: menu_attributes.3x,v 1.19 2020/10/17 23:58:58 tom Exp @
+ * @Id: menu_attributes.3x,v 1.36 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>menu_attributes 3x</TITLE>
+<TITLE>menu_attributes 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">menu_attributes 3x</H1>
+<H1 class="no-header">menu_attributes 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="menu_attributes.3x.html">menu_attributes(3x)</A></STRONG> <STRONG><A HREF="menu_attributes.3x.html">menu_attributes(3x)</A></STRONG>
+<STRONG><A HREF="menu_attributes.3x.html">menu_attributes(3x)</A></STRONG> Library calls <STRONG><A HREF="menu_attributes.3x.html">menu_attributes(3x)</A></STRONG>
@@ -101,16 +100,6 @@
Routine detected an incorrect or out-of-range argument.
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names begin "menu_" for detailed
- descriptions of the entry points.
-
-
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header file
- <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
These routines emulate the System V menu library. They were not
supported on Version 7 or BSD versions.
@@ -121,8 +110,13 @@
Raymond.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names begin "menu_" for detailed
+ descriptions of the entry points.
+
- <STRONG><A HREF="menu_attributes.3x.html">menu_attributes(3x)</A></STRONG>
+
+ncurses 6.5 2024-03-16 <STRONG><A HREF="menu_attributes.3x.html">menu_attributes(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -130,10 +124,9 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/menu_cursor.3x.html b/doc/html/man/menu_cursor.3x.html
index 0957a9ad5666..0003bcdbd4b4 100644
--- a/doc/html/man/menu_cursor.3x.html
+++ b/doc/html/man/menu_cursor.3x.html
@@ -1,7 +1,6 @@
-<!--
- * t
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2010,2015 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,21 +27,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: menu_cursor.3x,v 1.13 2020/10/17 23:41:31 tom Exp @
+ * @Id: menu_cursor.3x,v 1.30 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>menu_cursor 3x</TITLE>
+<TITLE>menu_cursor 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">menu_cursor 3x</H1>
+<H1 class="no-header">menu_cursor 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="menu_cursor.3x.html">menu_cursor(3x)</A></STRONG> <STRONG><A HREF="menu_cursor.3x.html">menu_cursor(3x)</A></STRONG>
+<STRONG><A HREF="menu_cursor.3x.html">menu_cursor(3x)</A></STRONG> Library calls <STRONG><A HREF="menu_cursor.3x.html">menu_cursor(3x)</A></STRONG>
@@ -79,17 +78,8 @@
The menu has not been posted.
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
-
-
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header file
- <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines emulate the System V menu library. They were not
+ These routines emulate the System V menu library. They were not
supported on Version 7 or BSD versions.
@@ -98,8 +88,12 @@
Raymond.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>
+
+
- <STRONG><A HREF="menu_cursor.3x.html">menu_cursor(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="menu_cursor.3x.html">menu_cursor(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -107,10 +101,9 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/menu_driver.3x.html b/doc/html/man/menu_driver.3x.html
index 8a3b348260cc..d82a7f5cedee 100644
--- a/doc/html/man/menu_driver.3x.html
+++ b/doc/html/man/menu_driver.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2010,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,21 +27,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: menu_driver.3x,v 1.28 2020/12/19 21:33:37 tom Exp @
+ * @Id: menu_driver.3x,v 1.47 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>menu_driver 3x</TITLE>
+<TITLE>menu_driver 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">menu_driver 3x</H1>
+<H1 class="no-header">menu_driver 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="menu_driver.3x.html">menu_driver(3x)</A></STRONG> <STRONG><A HREF="menu_driver.3x.html">menu_driver(3x)</A></STRONG>
+<STRONG><A HREF="menu_driver.3x.html">menu_driver(3x)</A></STRONG> Library calls <STRONG><A HREF="menu_driver.3x.html">menu_driver(3x)</A></STRONG>
@@ -133,7 +133,7 @@
corresponding action is performed.
-</PRE><H3><a name="h3-MOUSE-HANDLING">MOUSE HANDLING</a></H3><PRE>
+</PRE><H3><a name="h3-Mouse-Handling">Mouse Handling</a></H3><PRE>
If the second argument is the KEY_MOUSE special key, the associated
mouse event is translated into one of the above pre-defined requests.
Currently only clicks in the user window (e.g., inside the menu display
@@ -172,7 +172,7 @@
translated into a menu request an <STRONG>E_REQUEST_DENIED</STRONG> is returned.
-</PRE><H3><a name="h3-APPLICATION-DEFINED-COMMANDS">APPLICATION-DEFINED COMMANDS</a></H3><PRE>
+</PRE><H3><a name="h3-Application-defined-Commands">Application-defined Commands</a></H3><PRE>
If the second argument is neither printable nor one of the above pre-
defined menu requests or KEY_MOUSE, the drive assumes it is an
application-specific command and returns <STRONG>E_UNKNOWN_COMMAND</STRONG>.
@@ -207,19 +207,10 @@
The menu driver could not process the request.
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_getch.3x.html">getch(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
-
-
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header files
- <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines emulate the System V menu library. They were not
- supported on Version 7 or BSD versions. The support for mouse events
- is ncurses specific.
+ These routines emulate the System V menu library. They were not
+ supported on Version 7 or BSD versions. The support for mouse events
+ is <EM>ncurses</EM> specific.
</PRE><H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
@@ -227,8 +218,12 @@
Raymond.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_getch.3x.html">getch(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>
+
+
- <STRONG><A HREF="menu_driver.3x.html">menu_driver(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="menu_driver.3x.html">menu_driver(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -236,15 +231,14 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
<ul>
-<li><a href="#h3-MOUSE-HANDLING">MOUSE HANDLING</a></li>
-<li><a href="#h3-APPLICATION-DEFINED-COMMANDS">APPLICATION-DEFINED COMMANDS</a></li>
+<li><a href="#h3-Mouse-Handling">Mouse Handling</a></li>
+<li><a href="#h3-Application-defined-Commands">Application-defined Commands</a></li>
</ul>
</li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/menu_format.3x.html b/doc/html/man/menu_format.3x.html
index bafbee3dd46a..ddd934cfbfbd 100644
--- a/doc/html/man/menu_format.3x.html
+++ b/doc/html/man/menu_format.3x.html
@@ -1,7 +1,6 @@
-<!--
- * t
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2015,2016 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,21 +27,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: menu_format.3x,v 1.18 2020/10/17 23:43:11 tom Exp @
+ * @Id: menu_format.3x,v 1.35 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>menu_format 3x</TITLE>
+<TITLE>menu_format 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">menu_format 3x</H1>
+<H1 class="no-header">menu_format 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="menu_format.3x.html">menu_format(3x)</A></STRONG> <STRONG><A HREF="menu_format.3x.html">menu_format(3x)</A></STRONG>
+<STRONG><A HREF="menu_format.3x.html">menu_format(3x)</A></STRONG> Library calls <STRONG><A HREF="menu_format.3x.html">menu_format(3x)</A></STRONG>
@@ -92,17 +91,8 @@
No items are connected to the menu.
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
-
-
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header file
- <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines emulate the System V menu library. They were not
+ These routines emulate the System V menu library. They were not
supported on Version 7 or BSD versions.
@@ -111,8 +101,12 @@
Raymond.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>
+
+
- <STRONG><A HREF="menu_format.3x.html">menu_format(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="menu_format.3x.html">menu_format(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -120,10 +114,9 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/menu_hook.3x.html b/doc/html/man/menu_hook.3x.html
index 3ece961190f2..ca1810c27ea9 100644
--- a/doc/html/man/menu_hook.3x.html
+++ b/doc/html/man/menu_hook.3x.html
@@ -1,7 +1,6 @@
-<!--
- * t
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2007,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,21 +27,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: menu_hook.3x,v 1.15 2020/10/17 23:44:57 tom Exp @
+ * @Id: menu_hook.3x,v 1.32 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>menu_hook 3x</TITLE>
+<TITLE>menu_hook 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">menu_hook 3x</H1>
+<H1 class="no-header">menu_hook 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="menu_hook.3x.html">menu_hook(3x)</A></STRONG> <STRONG><A HREF="menu_hook.3x.html">menu_hook(3x)</A></STRONG>
+<STRONG><A HREF="menu_hook.3x.html">menu_hook(3x)</A></STRONG> Library calls <STRONG><A HREF="menu_hook.3x.html">menu_hook(3x)</A></STRONG>
@@ -54,17 +53,17 @@
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
<STRONG>#include</STRONG> <STRONG>&lt;menu.h&gt;</STRONG>
- <STRONG>int</STRONG> <STRONG>set_item_init(MENU</STRONG> <STRONG>*</STRONG><EM>menu</EM><STRONG>,</STRONG> <STRONG>Menu_Hook</STRONG> <EM>func);</EM>
- <STRONG>Menu_Hook</STRONG> <STRONG>item_init(const</STRONG> <STRONG>MENU</STRONG> <STRONG>*</STRONG><EM>menu);</EM>
+ <STRONG>int</STRONG> <STRONG>set_item_init(MENU</STRONG> <STRONG>*</STRONG><EM>menu</EM><STRONG>,</STRONG> <STRONG>Menu_Hook</STRONG> <EM>func</EM><STRONG>);</STRONG>
+ <STRONG>Menu_Hook</STRONG> <STRONG>item_init(const</STRONG> <STRONG>MENU</STRONG> <STRONG>*</STRONG><EM>menu</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>set_item_term(MENU</STRONG> <STRONG>*</STRONG><EM>menu</EM><STRONG>,</STRONG> <STRONG>Menu_Hook</STRONG> <EM>func);</EM>
- <STRONG>Menu_Hook</STRONG> <STRONG>item_term(const</STRONG> <STRONG>MENU</STRONG> <STRONG>*</STRONG><EM>menu);</EM>
+ <STRONG>int</STRONG> <STRONG>set_item_term(MENU</STRONG> <STRONG>*</STRONG><EM>menu</EM><STRONG>,</STRONG> <STRONG>Menu_Hook</STRONG> <EM>func</EM><STRONG>);</STRONG>
+ <STRONG>Menu_Hook</STRONG> <STRONG>item_term(const</STRONG> <STRONG>MENU</STRONG> <STRONG>*</STRONG><EM>menu</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>set_menu_init(MENU</STRONG> <STRONG>*</STRONG><EM>menu</EM><STRONG>,</STRONG> <STRONG>Menu_Hook</STRONG> <EM>func);</EM>
- <STRONG>Menu_Hook</STRONG> <STRONG>menu_init(const</STRONG> <STRONG>MENU</STRONG> <STRONG>*</STRONG><EM>menu);</EM>
+ <STRONG>int</STRONG> <STRONG>set_menu_init(MENU</STRONG> <STRONG>*</STRONG><EM>menu</EM><STRONG>,</STRONG> <STRONG>Menu_Hook</STRONG> <EM>func</EM><STRONG>);</STRONG>
+ <STRONG>Menu_Hook</STRONG> <STRONG>menu_init(const</STRONG> <STRONG>MENU</STRONG> <STRONG>*</STRONG><EM>menu</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>set_menu_term(MENU</STRONG> <STRONG>*</STRONG><EM>menu</EM><STRONG>,</STRONG> <STRONG>Menu_Hook</STRONG> <EM>func);</EM>
- <STRONG>Menu_Hook</STRONG> <STRONG>menu_term(const</STRONG> <STRONG>MENU</STRONG> <STRONG>*</STRONG><EM>menu);</EM>
+ <STRONG>int</STRONG> <STRONG>set_menu_term(MENU</STRONG> <STRONG>*</STRONG><EM>menu</EM><STRONG>,</STRONG> <STRONG>Menu_Hook</STRONG> <EM>func</EM><STRONG>);</STRONG>
+ <STRONG>Menu_Hook</STRONG> <STRONG>menu_term(const</STRONG> <STRONG>MENU</STRONG> <STRONG>*</STRONG><EM>menu</EM><STRONG>);</STRONG>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
@@ -103,17 +102,8 @@
System error occurred (see <STRONG>errno(3)</STRONG>).
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
-
-
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header file
- <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines emulate the System V menu library. They were not
+ These routines emulate the System V menu library. They were not
supported on Version 7 or BSD versions.
@@ -122,8 +112,12 @@
Raymond.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>
+
+
- <STRONG><A HREF="menu_hook.3x.html">menu_hook(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="menu_hook.3x.html">menu_hook(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -131,10 +125,9 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/menu_items.3x.html b/doc/html/man/menu_items.3x.html
index 1b010521d094..7f1c08249cce 100644
--- a/doc/html/man/menu_items.3x.html
+++ b/doc/html/man/menu_items.3x.html
@@ -1,7 +1,6 @@
-<!--
- * t
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2012,2015 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,21 +27,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: menu_items.3x,v 1.17 2020/10/24 09:00:06 tom Exp @
+ * @Id: menu_items.3x,v 1.34 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>menu_items 3x</TITLE>
+<TITLE>menu_items 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">menu_items 3x</H1>
+<H1 class="no-header">menu_items 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="menu_items.3x.html">menu_items(3x)</A></STRONG> <STRONG><A HREF="menu_items.3x.html">menu_items(3x)</A></STRONG>
+<STRONG><A HREF="menu_items.3x.html">menu_items(3x)</A></STRONG> Library calls <STRONG><A HREF="menu_items.3x.html">menu_items(3x)</A></STRONG>
@@ -94,20 +93,11 @@
System error occurred (see <STRONG>errno(3)</STRONG>).
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
-
-
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header file
- <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines emulate the System V menu library. They were not
+ These routines emulate the System V menu library. They were not
supported on Version 7 or BSD versions.
- The SVr4 menu library documentation specifies the <STRONG>item_count</STRONG> error
+ The SVr4 menu library documentation specifies the <STRONG>item_count</STRONG> error
value as -1 (which is the value of <STRONG>ERR</STRONG>).
@@ -116,8 +106,12 @@
Raymond.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>
+
+
- <STRONG><A HREF="menu_items.3x.html">menu_items(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="menu_items.3x.html">menu_items(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -125,10 +119,9 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/menu_mark.3x.html b/doc/html/man/menu_mark.3x.html
index bc9b0df02d17..1cdb2b051b10 100644
--- a/doc/html/man/menu_mark.3x.html
+++ b/doc/html/man/menu_mark.3x.html
@@ -1,7 +1,6 @@
-<!--
- * t
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2010,2015 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,21 +27,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: menu_mark.3x,v 1.18 2020/10/24 08:59:04 tom Exp @
+ * @Id: menu_mark.3x,v 1.35 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>menu_mark 3x</TITLE>
+<TITLE>menu_mark 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">menu_mark 3x</H1>
+<H1 class="no-header">menu_mark 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="menu_mark.3x.html">menu_mark(3x)</A></STRONG> <STRONG><A HREF="menu_mark.3x.html">menu_mark(3x)</A></STRONG>
+<STRONG><A HREF="menu_mark.3x.html">menu_mark(3x)</A></STRONG> Library calls <STRONG><A HREF="menu_mark.3x.html">menu_mark(3x)</A></STRONG>
@@ -90,17 +89,8 @@
System error occurred (see <STRONG>errno(3)</STRONG>).
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
-
-
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header file
- <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines emulate the System V menu library. They were not
+ These routines emulate the System V menu library. They were not
supported on Version 7 or BSD versions.
@@ -109,8 +99,12 @@
Raymond.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>
+
+
- <STRONG><A HREF="menu_mark.3x.html">menu_mark(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="menu_mark.3x.html">menu_mark(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -118,10 +112,9 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/menu_new.3x.html b/doc/html/man/menu_new.3x.html
index 165764abb672..e53eacb65c44 100644
--- a/doc/html/man/menu_new.3x.html
+++ b/doc/html/man/menu_new.3x.html
@@ -1,7 +1,6 @@
-<!--
- * t
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2010,2015 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,21 +27,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: menu_new.3x,v 1.18 2020/10/24 08:57:51 tom Exp @
+ * @Id: menu_new.3x,v 1.35 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>menu_new 3x</TITLE>
+<TITLE>menu_new 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">menu_new 3x</H1>
+<H1 class="no-header">menu_new 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="menu_new.3x.html">menu_new(3x)</A></STRONG> <STRONG><A HREF="menu_new.3x.html">menu_new(3x)</A></STRONG>
+<STRONG><A HREF="menu_new.3x.html">menu_new(3x)</A></STRONG> Library calls <STRONG><A HREF="menu_new.3x.html">menu_new(3x)</A></STRONG>
@@ -90,17 +89,8 @@
The menu has already been posted.
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
-
-
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header file
- <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines emulate the System V menu library. They were not
+ These routines emulate the System V menu library. They were not
supported on Version 7 or BSD versions.
@@ -109,8 +99,12 @@
Raymond.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>
+
+
- <STRONG><A HREF="menu_new.3x.html">menu_new(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="menu_new.3x.html">menu_new(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -118,10 +112,9 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/menu_opts.3x.html b/doc/html/man/menu_opts.3x.html
index 125d70fd3d0b..453526ab206b 100644
--- a/doc/html/man/menu_opts.3x.html
+++ b/doc/html/man/menu_opts.3x.html
@@ -1,7 +1,6 @@
-<!--
- * t
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2015,2016 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,21 +27,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: menu_opts.3x,v 1.18 2020/10/17 23:46:35 tom Exp @
+ * @Id: menu_opts.3x,v 1.35 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>menu_opts 3x</TITLE>
+<TITLE>menu_opts 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">menu_opts 3x</H1>
+<H1 class="no-header">menu_opts 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="menu_opts.3x.html">menu_opts(3x)</A></STRONG> <STRONG><A HREF="menu_opts.3x.html">menu_opts(3x)</A></STRONG>
+<STRONG><A HREF="menu_opts.3x.html">menu_opts(3x)</A></STRONG> Library calls <STRONG><A HREF="menu_opts.3x.html">menu_opts(3x)</A></STRONG>
@@ -114,17 +113,8 @@
The menu is already posted.
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
-
-
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header file
- <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines emulate the System V menu library. They were not
+ These routines emulate the System V menu library. They were not
supported on Version 7 or BSD versions.
@@ -133,8 +123,12 @@
Raymond.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>
+
+
- <STRONG><A HREF="menu_opts.3x.html">menu_opts(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="menu_opts.3x.html">menu_opts(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -142,10 +136,9 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/menu_pattern.3x.html b/doc/html/man/menu_pattern.3x.html
index 401ad4ae3be9..34d6f98d2cb8 100644
--- a/doc/html/man/menu_pattern.3x.html
+++ b/doc/html/man/menu_pattern.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2010,2015 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,21 +27,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: menu_pattern.3x,v 1.21 2020/10/18 00:41:14 tom Exp @
+ * @Id: menu_pattern.3x,v 1.38 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>menu_pattern 3x</TITLE>
+<TITLE>menu_pattern 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">menu_pattern 3x</H1>
+<H1 class="no-header">menu_pattern 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="menu_pattern.3x.html">menu_pattern(3x)</A></STRONG> <STRONG><A HREF="menu_pattern.3x.html">menu_pattern(3x)</A></STRONG>
+<STRONG><A HREF="menu_pattern.3x.html">menu_pattern(3x)</A></STRONG> Library calls <STRONG><A HREF="menu_pattern.3x.html">menu_pattern(3x)</A></STRONG>
@@ -94,17 +94,8 @@
System error occurred (see <STRONG>errno(3)</STRONG>).
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
-
-
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header file
- <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines emulate the System V menu library. They were not
+ These routines emulate the System V menu library. They were not
supported on Version 7 or BSD versions.
@@ -113,8 +104,12 @@
Raymond.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>
+
+
- <STRONG><A HREF="menu_pattern.3x.html">menu_pattern(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="menu_pattern.3x.html">menu_pattern(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -122,10 +117,9 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/menu_post.3x.html b/doc/html/man/menu_post.3x.html
index 5b5598c94b53..6d48f77b05a7 100644
--- a/doc/html/man/menu_post.3x.html
+++ b/doc/html/man/menu_post.3x.html
@@ -1,7 +1,6 @@
-<!--
- * t
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,21 +27,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: menu_post.3x,v 1.19 2020/10/17 23:47:21 tom Exp @
+ * @Id: menu_post.3x,v 1.36 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>menu_post 3x</TITLE>
+<TITLE>menu_post 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">menu_post 3x</H1>
+<H1 class="no-header">menu_post 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="menu_post.3x.html">menu_post(3x)</A></STRONG> <STRONG><A HREF="menu_post.3x.html">menu_post(3x)</A></STRONG>
+<STRONG><A HREF="menu_post.3x.html">menu_post(3x)</A></STRONG> Library calls <STRONG><A HREF="menu_post.3x.html">menu_post(3x)</A></STRONG>
@@ -97,17 +96,8 @@
No items are connected to the menu.
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
-
-
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header file
- <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines emulate the System V menu library. They were not
+ These routines emulate the System V menu library. They were not
supported on Version 7 or BSD versions.
@@ -116,8 +106,12 @@
Raymond.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>
+
+
- <STRONG><A HREF="menu_post.3x.html">menu_post(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="menu_post.3x.html">menu_post(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -125,10 +119,9 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/menu_requestname.3x.html b/doc/html/man/menu_requestname.3x.html
index 518955d77964..0a06ada495bd 100644
--- a/doc/html/man/menu_requestname.3x.html
+++ b/doc/html/man/menu_requestname.3x.html
@@ -1,7 +1,6 @@
-<!--
- * t
+<!--
****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2010,2015 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,21 +27,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: menu_requestname.3x,v 1.15 2020/10/18 00:40:34 tom Exp @
+ * @Id: menu_requestname.3x,v 1.33 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>menu_requestname 3x</TITLE>
+<TITLE>menu_requestname 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">menu_requestname 3x</H1>
+<H1 class="no-header">menu_requestname 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="menu_requestname.3x.html">menu_requestname(3x)</A></STRONG> <STRONG><A HREF="menu_requestname.3x.html">menu_requestname(3x)</A></STRONG>
+<STRONG><A HREF="menu_requestname.3x.html">menu_requestname(3x)</A></STRONG> Library calls <STRONG><A HREF="menu_requestname.3x.html">menu_requestname(3x)</A></STRONG>
@@ -74,17 +73,8 @@
<STRONG>errno</STRONG>.
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
-
-
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header file
- <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines are specific to ncurses. They were not supported on
+ These routines are specific to <EM>ncurses</EM>. They were not supported on
Version 7, BSD or System V implementations. It is recommended that any
code depending on them be conditioned using NCURSES_VERSION.
@@ -94,8 +84,12 @@
Raymond.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>
+
+
- <STRONG><A HREF="menu_requestname.3x.html">menu_requestname(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="menu_requestname.3x.html">menu_requestname(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -103,10 +97,9 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/menu_spacing.3x.html b/doc/html/man/menu_spacing.3x.html
index aff22830bc5b..5526b4dea54f 100644
--- a/doc/html/man/menu_spacing.3x.html
+++ b/doc/html/man/menu_spacing.3x.html
@@ -1,7 +1,6 @@
-<!--
- * t
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2010,2015 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,21 +27,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: menu_spacing.3x,v 1.17 2020/10/17 23:48:53 tom Exp @
+ * @Id: menu_spacing.3x,v 1.37 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>menu_spacing 3x</TITLE>
+<TITLE>menu_spacing 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">menu_spacing 3x</H1>
+<H1 class="no-header">menu_spacing 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="menu_spacing.3x.html">menu_spacing(3x)</A></STRONG> <STRONG><A HREF="menu_spacing.3x.html">menu_spacing(3x)</A></STRONG>
+<STRONG><A HREF="menu_spacing.3x.html">menu_spacing(3x)</A></STRONG> Library calls <STRONG><A HREF="menu_spacing.3x.html">menu_spacing(3x)</A></STRONG>
@@ -67,38 +66,39 @@
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
The function <STRONG>set_menu_spacing</STRONG> sets the spacing information for the
- menu. Its parameter <STRONG>spc_description</STRONG> controls the number of spaces
- between an item name and an item description. It must not be larger
- than <STRONG>TABSIZE</STRONG>. The menu system puts in the middle of this spacing area
- the pad character. The remaining parts are filled with spaces. The
- <STRONG>spc_rows</STRONG> parameter controls the number of rows that are used for an
- item. It must not be larger than 3. The menu system inserts the blank
- lines between item rows, these lines will contain the pad character in
- the appropriate positions. The <STRONG>spc_columns</STRONG> parameter controls the
- number of blanks between columns of items. It must not be larger than
- <STRONG>TABSIZE</STRONG>. A value of 0 for all the spacing values resets them to the
- default, which is 1 for all of them.
- The function <STRONG>menu_spacing</STRONG> passes back the spacing info for the menu.
- If a pointer is NULL, this specific info is simply not returned.
+ menu. Its parameters provide the description and the size (in rows and
+ columns).
+ <EM>spc</EM><STRONG>_</STRONG><EM>description</EM>
+ controls the number of spaces between an item name and an item
+ description. It must not be larger than <STRONG>TABSIZE</STRONG>. The menu
+ system puts in the middle of this spacing area the pad
+ character. The remaining parts are filled with spaces.
-</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- Both routines return <STRONG>E_OK</STRONG> on success. <STRONG>set_menu_spacing</STRONG> may return
- <STRONG>E_POSTED</STRONG> if the menu is posted, or <STRONG>E_BAD_ARGUMENT</STRONG> if one of the spacing
- values is out of range.
+ <EM>spc</EM><STRONG>_</STRONG><EM>rows</EM>
+ controls the number of rows that are used for an item. It must
+ not be larger than 3. The menu system inserts the blank lines
+ between item rows, these lines will contain the pad character in
+ the appropriate positions.
+ <EM>spc</EM><STRONG>_</STRONG><EM>columns</EM>
+ controls the number of blanks between columns of items. It must
+ not be larger than <STRONG>TABSIZE</STRONG>. A value of 0 for all the spacing
+ values resets them to the default, which is 1 for all of them.
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
+ The function <STRONG>menu_spacing</STRONG> returns the spacing information for the menu.
+ If a pointer is NULL, the corresponding information is simply not
+ returned.
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header file
- <STRONG>&lt;curses.h&gt;</STRONG>.
+</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
+ Both routines return <STRONG>E_OK</STRONG> on success. <STRONG>set_menu_spacing</STRONG> may return
+ <STRONG>E_POSTED</STRONG> if the menu is posted, or <STRONG>E_BAD_ARGUMENT</STRONG> if one of the spacing
+ values is out of range.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines are specific to ncurses. They were not supported on
+ These routines are specific to <EM>ncurses</EM>. They were not supported on
Version 7, BSD or System V implementations. It is recommended that any
code depending on them be conditioned using NCURSES_VERSION.
@@ -108,8 +108,12 @@
Raymond.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>
+
- <STRONG><A HREF="menu_spacing.3x.html">menu_spacing(3x)</A></STRONG>
+
+ncurses 6.5 2024-03-16 <STRONG><A HREF="menu_spacing.3x.html">menu_spacing(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -117,10 +121,9 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/menu_userptr.3x.html b/doc/html/man/menu_userptr.3x.html
index bcd22a2fb9d1..d2b52f1df4ed 100644
--- a/doc/html/man/menu_userptr.3x.html
+++ b/doc/html/man/menu_userptr.3x.html
@@ -1,7 +1,6 @@
-<!--
- * t
+<!--
****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2010,2015 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,21 +27,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: menu_userptr.3x,v 1.16 2020/10/18 00:39:49 tom Exp @
+ * @Id: menu_userptr.3x,v 1.33 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>menu_userptr 3x</TITLE>
+<TITLE>menu_userptr 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">menu_userptr 3x</H1>
+<H1 class="no-header">menu_userptr 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="menu_userptr.3x.html">menu_userptr(3x)</A></STRONG> <STRONG><A HREF="menu_userptr.3x.html">menu_userptr(3x)</A></STRONG>
+<STRONG><A HREF="menu_userptr.3x.html">menu_userptr(3x)</A></STRONG> Library calls <STRONG><A HREF="menu_userptr.3x.html">menu_userptr(3x)</A></STRONG>
@@ -72,17 +71,8 @@
<STRONG>set_menu_userptr</STRONG> returns <STRONG>E_OK</STRONG> (success).
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
-
-
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header file
- <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines emulate the System V menu library. They were not
+ These routines emulate the System V menu library. They were not
supported on Version 7 or BSD versions.
The user pointer is a void pointer. We chose not to leave it as a char
@@ -94,8 +84,12 @@
Raymond.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>
+
+
- <STRONG><A HREF="menu_userptr.3x.html">menu_userptr(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="menu_userptr.3x.html">menu_userptr(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -103,10 +97,9 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/menu_win.3x.html b/doc/html/man/menu_win.3x.html
index 2ad5ada45b26..9688e0f506ce 100644
--- a/doc/html/man/menu_win.3x.html
+++ b/doc/html/man/menu_win.3x.html
@@ -1,7 +1,6 @@
-<!--
- * t
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2006,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,21 +27,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: menu_win.3x,v 1.15 2020/10/17 23:50:51 tom Exp @
+ * @Id: menu_win.3x,v 1.32 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>menu_win 3x</TITLE>
+<TITLE>menu_win 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">menu_win 3x</H1>
+<H1 class="no-header">menu_win 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="menu_win.3x.html">menu_win(3x)</A></STRONG> <STRONG><A HREF="menu_win.3x.html">menu_win(3x)</A></STRONG>
+<STRONG><A HREF="menu_win.3x.html">menu_win(3x)</A></STRONG> Library calls <STRONG><A HREF="menu_win.3x.html">menu_win(3x)</A></STRONG>
@@ -60,7 +59,7 @@
<STRONG>int</STRONG> <STRONG>set_menu_sub(MENU</STRONG> <STRONG>*</STRONG><EM>menu</EM><STRONG>,</STRONG> <STRONG>WINDOW</STRONG> <STRONG>*</STRONG><EM>sub</EM><STRONG>);</STRONG>
<STRONG>WINDOW</STRONG> <STRONG>*menu_sub(const</STRONG> <STRONG>MENU</STRONG> <STRONG>*</STRONG><EM>menu</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>scale_menu(const</STRONG> <STRONG>MENU</STRONG> <STRONG>*</STRONG><EM>menu,</EM> <EM>int</EM> <EM>*rows</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <STRONG>*</STRONG><EM>columns);</EM>
+ <STRONG>int</STRONG> <STRONG>scale_menu(const</STRONG> <STRONG>MENU</STRONG> <STRONG>*</STRONG><EM>menu</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <STRONG>*</STRONG><EM>rows</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <STRONG>*</STRONG><EM>columns</EM><STRONG>);</STRONG>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
@@ -100,17 +99,8 @@
No items are connected to the menu.
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
-
-
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header file
- <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines emulate the System V menu library. They were not
+ These routines emulate the System V menu library. They were not
supported on Version 7 or BSD versions.
@@ -119,8 +109,12 @@
Raymond.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>
+
+
- <STRONG><A HREF="menu_win.3x.html">menu_win(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="menu_win.3x.html">menu_win(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -128,10 +122,9 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/mitem_current.3x.html b/doc/html/man/mitem_current.3x.html
index 016b6609854b..ea8a33f7ddc9 100644
--- a/doc/html/man/mitem_current.3x.html
+++ b/doc/html/man/mitem_current.3x.html
@@ -1,7 +1,6 @@
-<!--
- * t
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2006,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,21 +27,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: mitem_current.3x,v 1.20 2020/10/18 00:39:06 tom Exp @
+ * @Id: mitem_current.3x,v 1.37 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>mitem_current 3x</TITLE>
+<TITLE>mitem_current 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">mitem_current 3x</H1>
+<H1 class="no-header">mitem_current 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="mitem_current.3x.html">mitem_current(3x)</A></STRONG> <STRONG><A HREF="mitem_current.3x.html">mitem_current(3x)</A></STRONG>
+<STRONG><A HREF="mitem_current.3x.html">mitem_current(3x)</A></STRONG> Library calls <STRONG><A HREF="mitem_current.3x.html">mitem_current(3x)</A></STRONG>
@@ -102,20 +101,11 @@
System error occurred (see <STRONG>errno(3)</STRONG>).
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
-
-
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header file
- <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines emulate the System V menu library. They were not
+ These routines emulate the System V menu library. They were not
supported on Version 7 or BSD versions.
- The SVr4 menu library documentation specifies the <STRONG>top_row</STRONG> and
+ The SVr4 menu library documentation specifies the <STRONG>top_row</STRONG> and
<STRONG>index_item</STRONG> error value as -1 (which is the value of <STRONG>ERR</STRONG>).
@@ -124,8 +114,12 @@
Raymond.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>
+
+
- <STRONG><A HREF="mitem_current.3x.html">mitem_current(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="mitem_current.3x.html">mitem_current(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -133,10 +127,9 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/mitem_name.3x.html b/doc/html/man/mitem_name.3x.html
index b757dd4765d9..1ff53c8a9437 100644
--- a/doc/html/man/mitem_name.3x.html
+++ b/doc/html/man/mitem_name.3x.html
@@ -1,7 +1,6 @@
-<!--
- * t
+<!--
****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2010,2015 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,21 +27,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: mitem_name.3x,v 1.14 2020/10/18 00:37:48 tom Exp @
+ * @Id: mitem_name.3x,v 1.31 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>mitem_name 3x</TITLE>
+<TITLE>mitem_name 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">mitem_name 3x</H1>
+<H1 class="no-header">mitem_name 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="mitem_name.3x.html">mitem_name(3x)</A></STRONG> <STRONG><A HREF="mitem_name.3x.html">mitem_name(3x)</A></STRONG>
+<STRONG><A HREF="mitem_name.3x.html">mitem_name(3x)</A></STRONG> Library calls <STRONG><A HREF="mitem_name.3x.html">mitem_name(3x)</A></STRONG>
@@ -69,17 +68,8 @@
<STRONG>errno</STRONG>.
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
-
-
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header file
- <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines emulate the System V menu library. They were not
+ These routines emulate the System V menu library. They were not
supported on Version 7 or BSD versions.
@@ -88,8 +78,12 @@
Raymond.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>
+
+
- <STRONG><A HREF="mitem_name.3x.html">mitem_name(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="mitem_name.3x.html">mitem_name(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -97,10 +91,9 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/mitem_new.3x.html b/doc/html/man/mitem_new.3x.html
index 25ef46f5d5c5..b4ed66765bb7 100644
--- a/doc/html/man/mitem_new.3x.html
+++ b/doc/html/man/mitem_new.3x.html
@@ -1,7 +1,6 @@
-<!--
- * t
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2010,2015 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,21 +27,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: mitem_new.3x,v 1.19 2020/10/18 00:37:03 tom Exp @
+ * @Id: mitem_new.3x,v 1.36 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>mitem_new 3x</TITLE>
+<TITLE>mitem_new 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">mitem_new 3x</H1>
+<H1 class="no-header">mitem_new 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="mitem_new.3x.html">mitem_new(3x)</A></STRONG> <STRONG><A HREF="mitem_new.3x.html">mitem_new(3x)</A></STRONG>
+<STRONG><A HREF="mitem_new.3x.html">mitem_new(3x)</A></STRONG> Library calls <STRONG><A HREF="mitem_new.3x.html">mitem_new(3x)</A></STRONG>
@@ -93,17 +92,8 @@
System error occurred (see <STRONG>errno(3)</STRONG>).
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
-
-
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header file
- <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines emulate the System V menu library. They were not
+ These routines emulate the System V menu library. They were not
supported on Version 7 or BSD versions.
@@ -112,8 +102,12 @@
Raymond.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>
+
+
- <STRONG><A HREF="mitem_new.3x.html">mitem_new(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="mitem_new.3x.html">mitem_new(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -121,10 +115,9 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/mitem_opts.3x.html b/doc/html/man/mitem_opts.3x.html
index 26137c7dd6fe..537a91301e0f 100644
--- a/doc/html/man/mitem_opts.3x.html
+++ b/doc/html/man/mitem_opts.3x.html
@@ -1,7 +1,6 @@
-<!--
- * t
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2010,2015 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,21 +27,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: mitem_opts.3x,v 1.16 2020/10/17 23:52:26 tom Exp @
+ * @Id: mitem_opts.3x,v 1.33 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>mitem_opts 3x</TITLE>
+<TITLE>mitem_opts 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">mitem_opts 3x</H1>
+<H1 class="no-header">mitem_opts 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="mitem_opts.3x.html">mitem_opts(3x)</A></STRONG> <STRONG><A HREF="mitem_opts.3x.html">mitem_opts(3x)</A></STRONG>
+<STRONG><A HREF="mitem_opts.3x.html">mitem_opts(3x)</A></STRONG> Library calls <STRONG><A HREF="mitem_opts.3x.html">mitem_opts(3x)</A></STRONG>
@@ -88,17 +87,8 @@
System error occurred (see <STRONG>errno(3)</STRONG>).
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
-
-
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header file
- <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines emulate the System V menu library. They were not
+ These routines emulate the System V menu library. They were not
supported on Version 7 or BSD versions.
@@ -107,8 +97,12 @@
Raymond.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>
+
+
- <STRONG><A HREF="mitem_opts.3x.html">mitem_opts(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="mitem_opts.3x.html">mitem_opts(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -116,10 +110,9 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/mitem_userptr.3x.html b/doc/html/man/mitem_userptr.3x.html
index fe58bd4f48c5..afb442d81c63 100644
--- a/doc/html/man/mitem_userptr.3x.html
+++ b/doc/html/man/mitem_userptr.3x.html
@@ -1,7 +1,6 @@
-<!--
- * t
+<!--
****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2010,2015 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,21 +27,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: mitem_userptr.3x,v 1.17 2020/10/18 00:36:16 tom Exp @
+ * @Id: mitem_userptr.3x,v 1.34 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>mitem_userptr 3x</TITLE>
+<TITLE>mitem_userptr 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">mitem_userptr 3x</H1>
+<H1 class="no-header">mitem_userptr 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="mitem_userptr.3x.html">mitem_userptr(3x)</A></STRONG> <STRONG><A HREF="mitem_userptr.3x.html">mitem_userptr(3x)</A></STRONG>
+<STRONG><A HREF="mitem_userptr.3x.html">mitem_userptr(3x)</A></STRONG> Library calls <STRONG><A HREF="mitem_userptr.3x.html">mitem_userptr(3x)</A></STRONG>
@@ -72,17 +71,8 @@
The <STRONG>set_item_userptr</STRONG> always returns <STRONG>E_OK</STRONG> (success).
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
-
-
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header file
- <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines emulate the System V menu library. They were not
+ These routines emulate the System V menu library. They were not
supported on Version 7 or BSD versions.
The user pointer is a void pointer. We chose not to leave it as a char
@@ -94,8 +84,12 @@
Raymond.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>
+
+
- <STRONG><A HREF="mitem_userptr.3x.html">mitem_userptr(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="mitem_userptr.3x.html">mitem_userptr(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -103,10 +97,9 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/mitem_value.3x.html b/doc/html/man/mitem_value.3x.html
index 8ddf93432caa..01ce5d506a21 100644
--- a/doc/html/man/mitem_value.3x.html
+++ b/doc/html/man/mitem_value.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2010,2015 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,21 +27,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: mitem_value.3x,v 1.15 2020/10/17 23:53:24 tom Exp @
+ * @Id: mitem_value.3x,v 1.32 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>mitem_value 3x</TITLE>
+<TITLE>mitem_value 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">mitem_value 3x</H1>
+<H1 class="no-header">mitem_value 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="mitem_value.3x.html">mitem_value(3x)</A></STRONG> <STRONG><A HREF="mitem_value.3x.html">mitem_value(3x)</A></STRONG>
+<STRONG><A HREF="mitem_value.3x.html">mitem_value(3x)</A></STRONG> Library calls <STRONG><A HREF="mitem_value.3x.html">mitem_value(3x)</A></STRONG>
@@ -79,17 +79,8 @@
The menu driver could not process the request.
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
-
-
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header file
- <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines emulate the System V menu library. They were not
+ These routines emulate the System V menu library. They were not
supported on Version 7 or BSD versions.
@@ -98,8 +89,12 @@
Raymond.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>
+
+
- <STRONG><A HREF="mitem_value.3x.html">mitem_value(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="mitem_value.3x.html">mitem_value(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -107,10 +102,9 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/mitem_visible.3x.html b/doc/html/man/mitem_visible.3x.html
index 7a63ad3c8504..8224323f3282 100644
--- a/doc/html/man/mitem_visible.3x.html
+++ b/doc/html/man/mitem_visible.3x.html
@@ -1,7 +1,6 @@
-<!--
- * t
+<!--
****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,27 +27,27 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: mitem_visible.3x,v 1.10 2020/10/17 23:53:55 tom Exp @
+ * @Id: mitem_visible.3x,v 1.27 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>mitem_visible 3x</TITLE>
+<TITLE>mitem_visible 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">mitem_visible 3x</H1>
+<H1 class="no-header">mitem_visible 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="mitem_visible.3x.html">mitem_visible(3x)</A></STRONG> <STRONG><A HREF="mitem_visible.3x.html">mitem_visible(3x)</A></STRONG>
+<STRONG><A HREF="mitem_visible.3x.html">mitem_visible(3x)</A></STRONG> Library calls <STRONG><A HREF="mitem_visible.3x.html">mitem_visible(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>mitem_visible</STRONG> - check visibility of a menu item
+ <STRONG>item_visible</STRONG> - check visibility of a menu item
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -63,17 +62,8 @@
this portion will be smaller than the whole menu).
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
-
-
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header file
- <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines emulate the System V menu library. They were not
+ These routines emulate the System V menu library. They were not
supported on Version 7 or BSD versions.
@@ -82,18 +72,21 @@
Raymond.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>
+
+
- <STRONG><A HREF="mitem_visible.3x.html">mitem_visible(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="mitem_visible.3x.html">mitem_visible(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<li><a href="#h2-NAME">NAME</a></li>
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/ncurses.3x.html b/doc/html/man/ncurses.3x.html
index 64cc934b441d..9b061acba0e0 100644
--- a/doc/html/man/ncurses.3x.html
+++ b/doc/html/man/ncurses.3x.html
@@ -1,7 +1,7 @@
-<!--
+<!--
* t
****************************************************************************
- * Copyright 2018-2020,2021 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2015,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,27 +28,27 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: ncurses.3x,v 1.152 2021/01/09 11:07:55 tom Exp @
+ * @Id: ncurses.3x,v 1.214 2024/04/27 17:55:43 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>ncurses 3x</TITLE>
+<TITLE>ncurses 3x 2024-04-27 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">ncurses 3x</H1>
+<H1 class="no-header">ncurses 3x 2024-04-27 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>
+<STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> Library calls <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>ncurses</STRONG> - CRT screen handling and optimization package
+ <STRONG>ncurses</STRONG> - character-cell terminal interface with optimized output
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -56,237 +56,275 @@
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- The <STRONG>ncurses</STRONG> library routines give the user a terminal-independent
- method of updating character screens with reasonable optimization.
- This implementation is "new curses" (ncurses) and is the approved
- replacement for 4.4BSD classic curses, which has been discontinued.
- This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210109).
-
- The <STRONG>ncurses</STRONG> library emulates the curses library of System V Release 4
- UNIX, and XPG4 (X/Open Portability Guide) curses (also known as XSI
- curses). XSI stands for X/Open System Interfaces Extension. The
- <STRONG>ncurses</STRONG> library is freely redistributable in source form. Differences
- from the SVr4 curses are summarized under the <STRONG>EXTENSIONS</STRONG> and
- <STRONG>PORTABILITY</STRONG> sections below and described in detail in the respective
- <STRONG>EXTENSIONS</STRONG>, <STRONG>PORTABILITY</STRONG> and <STRONG>BUGS</STRONG> sections of individual man pages.
-
- The <STRONG>ncurses</STRONG> library also provides many useful extensions, i.e.,
- features which cannot be implemented by a simple add-on library but
- which require access to the internals of the library.
-
- A program using these routines must be linked with the <STRONG>-lncurses</STRONG>
- option, or (if it has been generated) with the debugging library
- <STRONG>-lncurses_g</STRONG>. (Your system integrator may also have installed these
- libraries under the names <STRONG>-lcurses</STRONG> and <STRONG>-lcurses_g</STRONG>.) The ncurses_g
- library generates trace logs (in a file called 'trace' in the current
- directory) that describe curses actions. See also the section on
- <STRONG>ALTERNATE</STRONG> <STRONG>CONFIGURATIONS</STRONG>.
-
- The <STRONG>ncurses</STRONG> package supports: overall screen, window and pad
- manipulation; output to windows and pads; reading terminal input;
- control over terminal and <STRONG>curses</STRONG> input and output options; environment
- query routines; color manipulation; use of soft label keys; terminfo
- capabilities; and access to low-level terminal-manipulation routines.
-
-
-</PRE><H3><a name="h3-Initialization">Initialization</a></H3><PRE>
- The library uses the locale which the calling program has initialized.
- That is normally done with <STRONG>setlocale</STRONG>:
-
- <STRONG>setlocale(LC_ALL,</STRONG> <STRONG>"");</STRONG>
-
- If the locale is not initialized, the library assumes that characters
- are printable as in ISO-8859-1, to work with certain legacy programs.
- You should initialize the locale and not rely on specific details of
- the library when the locale has not been setup.
-
- The function <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG> must be called to initialize the
- library before any of the other routines that deal with windows and
- screens are used. The routine <STRONG><A HREF="curs_initscr.3x.html">endwin(3x)</A></STRONG> must be called before
- exiting.
-
- To get character-at-a-time input without echoing (most interactive,
- screen oriented programs want this), the following sequence should be
- used:
-
- <STRONG>initscr();</STRONG> <STRONG>cbreak();</STRONG> <STRONG>noecho();</STRONG>
-
- Most programs would additionally use the sequence:
-
- <STRONG>intrflush(stdscr,</STRONG> <STRONG>FALSE);</STRONG>
- <STRONG>keypad(stdscr,</STRONG> <STRONG>TRUE);</STRONG>
-
- Before a <STRONG>curses</STRONG> program is run, the tab stops of the terminal should be
- set and its initialization strings, if defined, must be output. This
- can be done by executing the <STRONG>tput</STRONG> <STRONG>init</STRONG> command after the shell
- environment variable <STRONG>TERM</STRONG> has been exported. <STRONG>tset(1)</STRONG> is usually
- responsible for doing this. [See <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> for further details.]
-
-
-</PRE><H3><a name="h3-Datatypes">Datatypes</a></H3><PRE>
- The <STRONG>ncurses</STRONG> library permits manipulation of data structures, called
- <EM>windows</EM>, which can be thought of as two-dimensional arrays of
- characters representing all or part of a CRT screen. A default window
- called <STRONG>stdscr</STRONG>, which is the size of the terminal screen, is supplied.
- Others may be created with <STRONG>newwin</STRONG>.
-
- Note that <STRONG>curses</STRONG> does not handle overlapping windows, that's done by
- the <STRONG><A HREF="panel.3x.html">panel(3x)</A></STRONG> library. This means that you can either use <STRONG>stdscr</STRONG> or
- divide the screen into tiled windows and not using <STRONG>stdscr</STRONG> at all.
- Mixing the two will result in unpredictable, and undesired, effects.
-
- Windows are referred to by variables declared as <STRONG>WINDOW</STRONG> <STRONG>*</STRONG>. These data
- structures are manipulated with routines described here and elsewhere
- in the <STRONG>ncurses</STRONG> manual pages. Among those, the most basic routines are
- <STRONG>move</STRONG> and <STRONG>addch</STRONG>. More general versions of these routines are included
- with names beginning with <STRONG>w</STRONG>, allowing the user to specify a window.
- The routines not beginning with <STRONG>w</STRONG> affect <STRONG>stdscr</STRONG>.
-
- After using routines to manipulate a window, <STRONG><A HREF="curs_refresh.3x.html">refresh(3x)</A></STRONG> is called,
- telling <STRONG>curses</STRONG> to make the user's CRT screen look like <STRONG>stdscr</STRONG>. The
- characters in a window are actually of type <STRONG>chtype</STRONG>, (character and
- attribute data) so that other information about the character may also
- be stored with each character.
+ The "new curses" library offers the programmer a terminal-independent
+ means of reading keyboard and mouse input and updating character-cell
+ terminals with output optimized to minimize screen updates. <EM>ncurses</EM>
+ replaces the <EM>curses</EM> libraries from System V Release 4 Unix ("SVr4") and
+ 4.4BSD Unix, the development of which ceased in the 1990s. This
+ document describes <EM>ncurses</EM> version 6.5 (patch 20240427).
+
+ <EM>ncurses</EM> permits control of the terminal screen's contents; abstraction
+ and subdivision thereof with <EM>windows</EM> and <EM>pads</EM>; the reading of terminal
+ input; control of terminal input and output options; environment query
+ routines; color manipulation; the definition and use of <EM>soft</EM> <EM>label</EM>
+ keys; <EM>terminfo</EM> capability access; a <EM>termcap</EM> compatibility interface;
+ and an abstraction of the system's API for manipulating the terminal
+ (such as <STRONG>termios(3)</STRONG>).
+
+ <EM>ncurses</EM> implements the standard interface described by X/Open Curses
+ Issue 7. In many behavioral details not standardized by X/Open,
+ <EM>ncurses</EM> emulates the <EM>curses</EM> library of SVr4 and provides numerous
+ useful extensions.
+
+ <EM>ncurses</EM> man pages employ several sections to clarify matters of usage
+ and interoperability with other <EM>curses</EM> implementations.
+
+ <STRONG>o</STRONG> "NOTES" describes issues and caveats of which any user of the
+ <EM>ncurses</EM> API should be aware, such as limitations on the size of an
+ underlying integral type or the availability of a preprocessor
+ macro exclusive of a function definition (which prevents its
+ address from being taken). This section also describes
+ implementation details that will be significant to the programmer
+ but which are not standardized.
+
+ <STRONG>o</STRONG> "EXTENSIONS" presents <EM>ncurses</EM> innovations beyond the X/Open Curses
+ standard and/or the SVr4 <EM>curses</EM> implementation. They are termed
+ <EM>extensions</EM> to indicate that they cannot be implemented solely by
+ using the library API, but require access to the library's internal
+ state.
+
+ <STRONG>o</STRONG> "PORTABILITY" discusses matters (beyond the exercise of extensions)
+ that should be considered when writing to a <EM>curses</EM> standard, or for
+ multiple implementations.
+
+ <STRONG>o</STRONG> "HISTORY" examines points of detail in <EM>ncurses</EM> and other <EM>curses</EM>
+ implementations over the decades of their development, particularly
+ where precedent or inertia have frustrated better design (and, in a
+ few cases, where such inertia has been overcome).
+
+ A <EM>curses</EM> application must be linked with the library; use the <STRONG>-lncurses</STRONG>
+ option to your compiler or linker. A debugging version of the library
+ may be available; if so, link with it using <STRONG>-lncurses_g</STRONG>. (Your system
+ integrator may have installed these libraries such that you can use the
+ options <STRONG>-lcurses</STRONG> and <STRONG>-lcurses_g</STRONG>, respectively.) The <EM>ncurses</EM><STRONG>_</STRONG><EM>g</EM> library
+ generates trace logs (in a file called <EM>trace</EM> in the current directory)
+ that describe <EM>ncurses</EM> actions. See section "ALTERNATE CONFIGURATIONS"
+ below.
+
+
+</PRE><H3><a name="h3-Application-Structure">Application Structure</a></H3><PRE>
+ A <EM>curses</EM> application uses information from the system locale;
+ <STRONG>setlocale(3)</STRONG> prepares it for <EM>curses</EM> library calls.
+
+ setlocale(LC_ALL, "");
+
+ If the locale is not thus initialized, the library assumes that
+ characters are printable as in ISO 8859-1, to work with certain legacy
+ programs. You should initialize the locale; do not expect consistent
+ behavior from the library when the locale has not been set up.
+
+ <STRONG><A HREF="curs_initscr.3x.html">initscr(3x)</A></STRONG> or <STRONG><A HREF="curs_initscr.3x.html">newterm(3x)</A></STRONG> must be called to initialize <EM>curses</EM> before
+ use of any functions that deal with windows and screens.
+
+ To get character-at-a-time input without echoing--most interactive,
+ screen-oriented programs want this--use the following sequence.
+
+ initscr(); cbreak(); noecho();
+
+ Most applications perform further setup as follows.
+
+ intrflush(stdscr, FALSE);
+ keypad(stdscr, TRUE);
+
+ A <EM>curses</EM> program then often enters an event loop of some sort. Call
+ <STRONG><A HREF="curs_initscr.3x.html">endwin(3x)</A></STRONG> before exiting.
+
+
+</PRE><H3><a name="h3-Overview">Overview</a></H3><PRE>
+ A <EM>curses</EM> library abstracts the terminal screen by representing all or
+ part of it as a <EM>WINDOW</EM> data structure. A <EM>window</EM> is a rectangular grid
+ of character cells, addressed by row and column coordinates (<EM>y</EM>, <EM>x</EM>),
+ with the upper left corner as (0, 0). A window called <STRONG>stdscr</STRONG>, the same
+ size as the terminal screen, is always available. Create others with
+ <STRONG><A HREF="curs_window.3x.html">newwin(3x)</A></STRONG>.
+
+ A <EM>curses</EM> library does not manage overlapping windows (but see below).
+ You can either use <STRONG>stdscr</STRONG> to manage one screen-filling window, or tile
+ the screen into non-overlapping windows and not use <STRONG>stdscr</STRONG> at all.
+ Mixing the two approaches will result in unpredictable and undesired
+ effects.
+
+ Functions permit manipulation of a window and the <EM>cursor</EM> identifying
+ the cell within it at which the next output operation will occur.
+ Among those, the most basic are <STRONG><A HREF="curs_move.3x.html">move(3x)</A></STRONG> and <STRONG><A HREF="curs_addch.3x.html">addch(3x)</A></STRONG>: these place the
+ cursor and write a character to <STRONG>stdscr</STRONG>, respectively.
+
+ Frequent changes to the terminal screen can cause unpleasant flicker or
+ inefficient use of the communication channel to the device, so the
+ library does not generally update it automatically. Therefore, after
+ using <EM>curses</EM> functions to accumulate a set of desired updates that make
+ sense to present together, call <STRONG><A HREF="curs_refresh.3x.html">refresh(3x)</A></STRONG> to tell the library to make
+ the user's screen look like <STRONG>stdscr</STRONG>. The library <EM>optimizes</EM> its output
+ by computing a minimal number of operations to mutate the screen from
+ its state at the previous refresh to the new one. Effective
+ optimization demands accurate information about the terminal device:
+ the management of such information is the province of the <STRONG><A HREF="curs_terminfo.3x.html">terminfo(3x)</A></STRONG>
+ API, a feature of every standard <EM>curses</EM> implementation.
Special windows called <EM>pads</EM> may also be manipulated. These are windows
- which are not constrained to the size of the screen and whose contents
- need not be completely displayed. See <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG> for more
- information.
+ that are not constrained to the size of the terminal screen and whose
+ contents need not be completely displayed. See <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>.
- In addition to drawing characters on the screen, video attributes and
- colors may be supported, causing the characters to show up in such
+ In addition to drawing characters on the screen, rendering attributes
+ and colors may be supported, causing the characters to show up in such
modes as underlined, in reverse video, or in color on terminals that
- support such display enhancements. Line drawing characters may be
- specified to be output. On input, <STRONG>curses</STRONG> is also able to translate
- arrow and function keys that transmit escape sequences into single
- values. The video attributes, line drawing characters, and input
- values use names, defined in <STRONG>&lt;curses.h&gt;</STRONG>, such as <STRONG>A_REVERSE</STRONG>, <STRONG>ACS_HLINE</STRONG>,
- and <STRONG>KEY_LEFT</STRONG>.
-
-
-</PRE><H3><a name="h3-Environment-variables">Environment variables</a></H3><PRE>
- If the environment variables <STRONG>LINES</STRONG> and <STRONG>COLUMNS</STRONG> are set, or if the
- program is executing in a window environment, line and column
- information in the environment will override information read by
- <EM>terminfo</EM>. This would affect a program running in an AT&amp;T 630 layer,
- for example, where the size of a screen is changeable (see
- <STRONG>ENVIRONMENT</STRONG>).
-
- If the environment variable <STRONG>TERMINFO</STRONG> is defined, any program using
- <STRONG>curses</STRONG> checks for a local terminal definition before checking in the
- standard place. For example, if <STRONG>TERM</STRONG> is set to <STRONG>att4424</STRONG>, then the
- compiled terminal definition is found in
-
- <STRONG>/usr/share/terminfo/a/att4424</STRONG>.
-
- (The <STRONG>a</STRONG> is copied from the first letter of <STRONG>att4424</STRONG> to avoid creation of
- huge directories.) However, if <STRONG>TERMINFO</STRONG> is set to <STRONG>$HOME/myterms</STRONG>,
- <STRONG>curses</STRONG> first checks
-
- <STRONG>$HOME/myterms/a/att4424</STRONG>,
-
- and if that fails, it then checks
-
- <STRONG>/usr/share/terminfo/a/att4424</STRONG>.
-
- This is useful for developing experimental definitions or when write
- permission in <STRONG>/usr/share/terminfo</STRONG> is not available.
-
- The integer variables <STRONG>LINES</STRONG> and <STRONG>COLS</STRONG> are defined in <STRONG>&lt;curses.h&gt;</STRONG> and will
- be filled in by <STRONG>initscr</STRONG> with the size of the screen. The constants
- <STRONG>TRUE</STRONG> and <STRONG>FALSE</STRONG> have the values <STRONG>1</STRONG> and <STRONG>0</STRONG>, respectively.
-
- The <STRONG>curses</STRONG> routines also define the <STRONG>WINDOW</STRONG> <STRONG>*</STRONG> variable <STRONG>curscr</STRONG> which is
- used for certain low-level operations like clearing and redrawing a
- screen containing garbage. The <STRONG>curscr</STRONG> can be used in only a few
- routines.
-
-
-</PRE><H3><a name="h3-Routine-and-Argument-Names">Routine and Argument Names</a></H3><PRE>
- Many <STRONG>curses</STRONG> routines have two or more versions. The routines prefixed
- with <STRONG>w</STRONG> require a window argument. The routines prefixed with <STRONG>p</STRONG> require
- a pad argument. Those without a prefix generally use <STRONG>stdscr</STRONG>.
-
- The routines prefixed with <STRONG>mv</STRONG> require a <EM>y</EM> and <EM>x</EM> coordinate to move to
- before performing the appropriate action. The <STRONG>mv</STRONG> routines imply a call
- to <STRONG>move</STRONG> before the call to the other routine. The coordinate <EM>y</EM> always
- refers to the row (of the window), and <EM>x</EM> always refers to the column.
- The upper left-hand corner is always (0,0), not (1,1).
-
- The routines prefixed with <STRONG>mvw</STRONG> take both a window argument and <EM>x</EM> and <EM>y</EM>
- coordinates. The window argument is always specified before the
- coordinates.
-
- In each case, <EM>win</EM> is the window affected, and <EM>pad</EM> is the pad affected;
- <EM>win</EM> and <EM>pad</EM> are always pointers to type <STRONG>WINDOW</STRONG>.
-
- Option setting routines require a Boolean flag <EM>bf</EM> with the value <STRONG>TRUE</STRONG>
- or <STRONG>FALSE</STRONG>; <EM>bf</EM> is always of type <STRONG>bool</STRONG>. Most of the data types used in
- the library routines, such as <STRONG>WINDOW</STRONG>, <STRONG>SCREEN</STRONG>, <STRONG>bool</STRONG>, and <STRONG>chtype</STRONG> are
- defined in <STRONG>&lt;curses.h&gt;</STRONG>. Types used for the terminfo routines such as
- <STRONG>TERMINAL</STRONG> are defined in <STRONG>&lt;term.h&gt;</STRONG>.
-
- This manual page describes functions which may appear in any
- configuration of the library. There are two common configurations of
- the library:
-
- <EM>ncurses</EM>
- the "normal" library, which handles 8-bit characters. The
- normal (8-bit) library stores characters combined with
- attributes in <STRONG>chtype</STRONG> data.
-
- Attributes alone (no corresponding character) may be stored in
- <STRONG>chtype</STRONG> or the equivalent <STRONG>attr_t</STRONG> data. In either case, the data
- is stored in something like an integer.
-
- Each cell (row and column) in a <STRONG>WINDOW</STRONG> is stored as a <STRONG>chtype</STRONG>.
-
- <EM>ncursesw</EM>
- the so-called "wide" library, which handles multibyte
- characters (see the section on <STRONG>ALTERNATE</STRONG> <STRONG>CONFIGURATIONS</STRONG>). The
- "wide" library includes all of the calls from the "normal"
- library. It adds about one third more calls using data types
- which store multibyte characters:
-
- <STRONG>cchar_t</STRONG>
- corresponds to <STRONG>chtype</STRONG>. However it is a structure, because
- more data is stored than can fit into an integer. The
- characters are large enough to require a full integer
- value - and there may be more than one character per cell.
- The video attributes and color are stored in separate
- fields of the structure.
-
- Each cell (row and column) in a <STRONG>WINDOW</STRONG> is stored as a
- <STRONG>cchar_t</STRONG>.
-
- The <STRONG><A HREF="curs_getcchar.3x.html">setcchar(3x)</A></STRONG> and <STRONG><A HREF="curs_getcchar.3x.html">getcchar(3x)</A></STRONG> functions store and
- retrieve the data from a <STRONG>cchar_t</STRONG> structure.
+ support such display enhancements. See <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>.
- <STRONG>wchar_t</STRONG>
- stores a "wide" character. Like <STRONG>chtype</STRONG>, this may be an
- integer.
+ <EM>curses</EM> predefines constants for a small set of forms-drawing graphics
+ corresponding to the DEC Alternate Character Set (ACS), a feature of
+ VT100 and other terminals. See <STRONG><A HREF="curs_addch.3x.html">waddch(3x)</A></STRONG>.
- <STRONG>wint_t</STRONG>
- stores a <STRONG>wchar_t</STRONG> or <STRONG>WEOF</STRONG> - not the same, though both may
- have the same size.
+ <EM>curses</EM> is implemented using the operating system's terminal driver;
+ keystroke events are received not as scan codes but as byte sequences.
+ Graphical keycaps (alphanumeric and punctuation keys, and the space)
+ appear as-is. Everything else, including the tab, enter/return,
+ keypad, arrow, and function keys, appears as a control character or a
+ multibyte <EM>escape</EM> <EM>sequence.</EM> <EM>curses</EM> translates these into unique <EM>key</EM>
+ <EM>codes.</EM> See <STRONG><A HREF="curs_getch.3x.html">getch(3x)</A></STRONG>.
- The "wide" library provides new functions which are analogous
- to functions in the "normal" library. There is a naming
- convention which relates many of the normal/wide variants: a
- "_w" is inserted into the name. For example, <STRONG>waddch</STRONG> becomes
- <STRONG>wadd_wch</STRONG>.
+ <EM>ncurses</EM> provides reimplementations of the SVr4 <STRONG><A HREF="panel.3x.html">panel(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>, and
+ <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG> libraries to ease construction of user interfaces with <EM>curses</EM>.
-</PRE><H3><a name="h3-Routine-Name-Index">Routine Name Index</a></H3><PRE>
- The following table lists the <STRONG>curses</STRONG> routines provided in the "normal"
- and "wide" libraries and the names of the manual pages on which they
- are described. Routines flagged with "*" are ncurses-specific, not
- described by XPG4 or present in SVr4.
-
- <STRONG>curses</STRONG> Routine Name Manual Page Name
+</PRE><H3><a name="h3-Initialization">Initialization</a></H3><PRE>
+ The selection of an appropriate value of <EM>TERM</EM> in the process
+ environment is essential to correct <EM>curses</EM> and <EM>terminfo</EM> library
+ operation. A well-configured system selects a correct <EM>TERM</EM> value
+ automatically; <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG> may assist with troubleshooting exotic
+ situations.
+
+ If you change the terminal type, export the <EM>TERM</EM> environment variable
+ in the shell, then run <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG> or the "<STRONG>tput</STRONG> <STRONG>init</STRONG>" command. See
+ subsection "Tabs and Initialization" of <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
+
+ If the environment variables <EM>LINES</EM> and <EM>COLUMNS</EM> are set, or if the
+ <EM>curses</EM> program is executing in a graphical windowing environment, the
+ information obtained thence overrides that obtained by <EM>terminfo</EM>. An
+ <EM>ncurses</EM> extension supports resizable terminals; see <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>.
+
+ If the environment variable <EM>TERMINFO</EM> is defined, a <EM>curses</EM> program
+ checks first for a terminal type description in the location it
+ identifies. <EM>TERMINFO</EM> is useful for developing experimental type
+ descriptions or when write permission to <EM>/usr/share/terminfo</EM> is not
+ available.
+
+ See section "ENVIRONMENT" below.
+
+
+</PRE><H3><a name="h3-Naming-Conventions">Naming Conventions</a></H3><PRE>
+ <EM>curses</EM> offers many functions in variant forms using a regular set of
+ alternatives to the name of an elemental one. Those prefixed with "w"
+ require a <EM>WINDOW</EM> pointer argument; those with a "mv" prefix first
+ perform cursor movement using <STRONG><A HREF="curs_move.3x.html">wmove(3x)</A></STRONG>; a "mvw" prefix indicates both.
+ The "w" function is typically the elemental one; the removal of this
+ prefix usually indicates operation on <STRONG>stdscr</STRONG>.
+
+ Four functions prefixed with "p" require a pad argument.
+
+ In function synopses, <EM>ncurses</EM> man pages apply the following names to
+ parameters.
+
+ <EM>bf</EM> <EM>bool</EM> (<STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>)
+ <EM>c</EM> a <EM>char</EM> or <EM>int</EM>
+ <EM>ch</EM> a <EM>chtype</EM>
+ <EM>wc</EM> a <EM>wchar</EM><STRONG>_</STRONG><EM>t</EM> or <EM>wint</EM><STRONG>_</STRONG><EM>t</EM>
+ <EM>wch</EM> a <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM>
+ <EM>win</EM> pointer to a <EM>WINDOW</EM>
+ <EM>pad</EM> pointer to a <EM>WINDOW</EM> that is a pad
+
+
+</PRE><H3><a name="h3-Wide-and-Non-wide-Character-Configurations">Wide and Non-wide Character Configurations</a></H3><PRE>
+ This manual page describes functions that appear in any configuration
+ of the library. There are two common configurations; see section
+ "ALTERNATE CONFIGURATIONS" below.
+
+ <EM>ncurses</EM> is the library in its "non-wide" configuration, handling only
+ eight-bit characters. It stores a character combined with
+ attributes in a <EM>chtype</EM> datum, which is often an alias of <EM>int</EM>.
+
+ Attributes alone (with no corresponding character) can be
+ stored in variables of <EM>chtype</EM> or <EM>attr</EM><STRONG>_</STRONG><EM>t</EM> type. In either
+ case, they are represented as an integral bit mask.
+
+ Each cell of a <EM>WINDOW</EM> is stored as a <EM>chtype</EM>.
+
+ <EM>ncursesw</EM> is the library in its "wide" configuration, which handles
+ character encodings requiring a larger data type than <EM>char</EM> (a
+ byte-sized type) can represent. It adds about one third more
+ calls using additional data types that can store such
+ <EM>multibyte</EM> characters.
+
+ <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM> corresponds to the non-wide configuration's <EM>chtype</EM>.
+ It always a structure type, because it stores more
+ data than fit into a standard scalar type. A
+ character code may not be representable as a <EM>char</EM>,
+ and moreover more than one character may occupy a
+ cell (as with accent marks and other diacritics).
+ Each character is of type <EM>wchar</EM><STRONG>_</STRONG><EM>t</EM>; a complex
+ character contains one spacing character and zero or
+ more non-spacing characters (see below). Attributes
+ and color data are stored in separate fields of the
+ structure, not combined as in <EM>chtype</EM>.
+
+ Each cell of a <EM>WINDOW</EM> is stored as a <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM>.
+
+ <STRONG><A HREF="curs_getcchar.3x.html">setcchar(3x)</A></STRONG> and <STRONG><A HREF="curs_getcchar.3x.html">getcchar(3x)</A></STRONG> store and retrieve <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM>
+ data. The wide library API of <EM>ncurses</EM> depends on two data
+ types standardized by ISO C95.
+
+ <EM>wchar</EM><STRONG>_</STRONG><EM>t</EM> stores a wide character. Like <EM>chtype</EM>, it may be an
+ alias of <EM>int</EM>. Depending on the character encoding,
+ a wide character may be <EM>spacing</EM>, meaning that it
+ occupies a character cell by itself and typically
+ accompanies cursor advancement, or <EM>non-spacing</EM>,
+ meaning that it occupies the same cell as a spacing
+ character, is often regarded as a "modifier" of the
+ base glyph with which it combines, and typically
+ does not advance the cursor.
+
+ <EM>wint</EM><STRONG>_</STRONG><EM>t</EM> can store a <EM>wchar</EM><STRONG>_</STRONG><EM>t</EM> or the constant <STRONG>WEOF</STRONG>,
+ analogously to the <EM>int</EM>-sized character manipulation
+ functions of ISO C and its constant <STRONG>EOF</STRONG>.
+
+ The wide library provides additional functions that
+ complement those in the non-wide library where the size of
+ the underlying character type is significant. A somewhat
+ regular naming convention relates many of the wide variants
+ to their non-wide counterparts; where a non-wide function
+ name contains "ch" or "str", prefix it with "_w" to obtain
+ the wide counterpart. For example, <STRONG>waddch</STRONG> becomes <STRONG>wadd_wch</STRONG>.
+ (Exceptions that add only "w" comprise <STRONG>addwstr</STRONG>, <STRONG>inwstr</STRONG>, and
+ their variants.)
+
+ This convention is inapplicable to some non-wide function
+ names, so other transformations are used for the wide
+ configuration: the window background management function
+ "bkgd" becomes "bkgrnd"; the window border-drawing and
+ -clearing functions are suffixed with "_set"; and character
+ attribute manipulation functions like "attron" become
+ "attr_on".
+
+
+</PRE><H3><a name="h3-Function-Name-Index">Function Name Index</a></H3><PRE>
+ The following table lists the <EM>curses</EM> functions provided in the non-wide
+ and wide APIs and the corresponding man pages that describe them.
+ Those flagged with "*" are <EM>ncurses</EM>-specific, neither described by
+ X/Open Curses nor present in SVr4.
+
+ <STRONG><EM>curses</EM></STRONG> Function Name Man Page
---------------------------------------------
COLOR_PAIR <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
- PAIR_NUMBER <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
+ PAIR_NUMBER <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
add_wch <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
add_wchnstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
add_wchstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
@@ -313,7 +351,6 @@
bkgrnd <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
bkgrndset <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
border <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
-
border_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
box <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
box_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
@@ -343,6 +380,7 @@
doupdate <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
dupwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
echo <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
+
echo_wchar <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
echochar <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
endwin <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
@@ -359,6 +397,7 @@
flash <STRONG><A HREF="curs_beep.3x.html">curs_beep(3x)</A></STRONG>
flushinp <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
free_pair <STRONG><A HREF="new_pair.3x.html">new_pair(3x)</A></STRONG>*
+ get_escdelay <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>*
get_wch <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
get_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
getattrs <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
@@ -379,7 +418,6 @@
getnstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
getparx <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
getpary <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
-
getparyx <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
getstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
getsyx <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
@@ -408,6 +446,7 @@
init_pair <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
initscr <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
innstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
+
innwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
ins_nwstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
ins_wch <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
@@ -420,16 +459,20 @@
instr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
intrflush <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
inwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
+ is_cbreak <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>*
is_cleared <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
+ is_echo <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>*
is_idcok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
is_idlok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
is_immedok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
is_keypad <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
is_leaveok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
is_linetouched <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
+ is_nl <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>*
is_nodelay <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
is_notimeout <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
is_pad <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
+ is_raw <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>*
is_scrollok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
is_subwin <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
is_syncok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
@@ -445,7 +488,6 @@
killchar <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
killwchar <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
leaveok <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
-
longname <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
mcprint <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG>*
meta <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
@@ -470,6 +512,7 @@
mvget_wch <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
mvget_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
mvgetch <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
+
mvgetn_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
mvgetnstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
mvgetstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
@@ -511,7 +554,6 @@
mvwget_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
mvwgetch <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
mvwgetn_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
-
mvwgetnstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
mvwgetstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
mvwhline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
@@ -536,6 +578,7 @@
mvwprintw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
mvwscanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
mvwvline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
+
mvwvline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
napms <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
newpad <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
@@ -553,7 +596,7 @@
overlay <STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG>
overwrite <STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG>
pair_content <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
- pecho_wchar <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>*
+ pecho_wchar <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
pechochar <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
pnoutrefresh <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
prefresh <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
@@ -577,12 +620,13 @@
scr_dump <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
scr_init <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
scr_restore <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
-
scr_set <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
scrl <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>
scroll <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>
scrollok <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
set_curterm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
+ set_escdelay <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>*
+ set_tabsize <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>*
set_term <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
setcchar <STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG>
setscrreg <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
@@ -600,11 +644,12 @@
slk_init <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
slk_label <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
slk_noutrefresh <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
+
slk_refresh <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
slk_restore <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
slk_set <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
slk_touch <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
- slk_wset <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>*
+ slk_wset <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
standend <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
standout <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
start_color <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
@@ -623,7 +668,9 @@
tigetnum <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
tigetstr <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
timeout <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
- tiparm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>*
+ tiparm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
+ tiparm_s <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>*
+ tiscan_s <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>*
touchline <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
touchwin <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
tparm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
@@ -640,10 +687,11 @@
use_env <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
use_extended_names <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG>*
use_legacy_coding <STRONG><A HREF="legacy_coding.3x.html">legacy_coding(3x)</A></STRONG>*
+ use_screen <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>*
use_tioctl <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>*
+ use_window <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>*
vid_attr <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
vid_puts <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
-
vidattr <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
vidputs <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
vline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
@@ -662,6 +710,7 @@
waddnwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
waddstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
waddwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
+
wattr_get <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
wattr_off <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
wattr_on <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
@@ -709,7 +758,6 @@
winnwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
wins_nwstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
wins_wch <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
-
wins_wstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
winsch <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
winsdelln <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
@@ -728,6 +776,7 @@
wscanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
wscrl <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>
wsetscrreg <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
+
wstandend <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
wstandout <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
wsyncdown <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
@@ -738,259 +787,237 @@
wvline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
wvline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
- Depending on the configuration, additional sets of functions may be
- available:
-
- <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG> - curses memory-leak checking
-
- <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG> - curses screen-pointer extension
+ <EM>ncurses</EM>'s <EM>screen-pointer</EM> <EM>extension</EM> adds additional functions
+ corresponding to many of the above, each with an "_sp" suffix; see
+ <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG>.
- <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG> - curses thread support
-
- <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG> - curses debugging routines
+ The availability of some extensions is configurable when <EM>ncurses</EM> is
+ compiled; see sections "ALTERNATE CONFIGURATIONS" and "EXTENSIONS"
+ below.
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- Routines that return an integer return <STRONG>ERR</STRONG> upon failure and an integer
- value other than <STRONG>ERR</STRONG> upon successful completion, unless otherwise noted
- in the routine descriptions.
-
- As a general rule, routines check for null pointers passed as
- parameters, and handle this as an error.
-
- All macros return the value of the <STRONG>w</STRONG> version, except <STRONG>setscrreg</STRONG>,
- <STRONG>wsetscrreg</STRONG>, <STRONG>getyx</STRONG>, <STRONG>getbegyx</STRONG>, and <STRONG>getmaxyx</STRONG>. The return values of
- <STRONG>setscrreg</STRONG>, <STRONG>wsetscrreg</STRONG>, <STRONG>getyx</STRONG>, <STRONG>getbegyx</STRONG>, and <STRONG>getmaxyx</STRONG> are undefined
- (i.e., these should not be used as the right-hand side of assignment
- statements).
+ Unless otherwise noted, functions that return an integer return <STRONG>OK</STRONG> on
+ success and <STRONG>ERR</STRONG> on failure. Functions that return pointers return <STRONG>NULL</STRONG>
+ on failure. Typically, <EM>ncurses</EM> treats a null pointer passed as a
+ function parameter as a failure. Functions prefixed with "mv" first
+ perform cursor movement and fail if the position (<EM>y</EM>, <EM>x</EM>) is outside the
+ window boundaries.
- Functions with a "mv" prefix first perform a cursor movement using
- <STRONG>wmove</STRONG>, and return an error if the position is outside the window, or if
- the window pointer is null. Most "mv"-prefixed functions (except
- variadic functions such as <STRONG>mvprintw</STRONG>) are provided both as macros and
- functions.
- Routines that return pointers return <STRONG>NULL</STRONG> on error.
+</PRE><H2><a name="h2-ENVIRONMENT">ENVIRONMENT</a></H2><PRE>
+ The following symbols from the process environment customize the
+ runtime behavior of <EM>ncurses</EM> applications. The library may be
+ configured to disregard the variables <EM>TERMINFO</EM>, <EM>TERMINFO</EM><STRONG>_</STRONG><EM>DIRS</EM>,
+ <EM>TERMPATH</EM>, and <EM>HOME</EM>, if the user is the superuser (root), or the
+ application uses <STRONG>setuid(2)</STRONG> or <STRONG>setgid(2)</STRONG>.
-</PRE><H2><a name="h2-ENVIRONMENT">ENVIRONMENT</a></H2><PRE>
- The following environment symbols are useful for customizing the
- runtime behavior of the <STRONG>ncurses</STRONG> library. The most important ones have
- been already discussed in detail.
+</PRE><H3><a name="h3-BAUDRATE"><EM>BAUDRATE</EM></a></H3><PRE>
+ The debugging library checks this variable when the application has
+ redirected output to a file. Its integral value is used for the baud
+ rate. If that value is absent or invalid, <EM>ncurses</EM> uses 9600. This
+ feature allows testers to construct repeatable test cases that take
+ into account optimization decisions that depend on baud rate.
-</PRE><H3><a name="h3-CC-command-character">CC command-character</a></H3><PRE>
- When set, change occurrences of the command_character (i.e., the <STRONG>cmdch</STRONG>
- capability) of the loaded terminfo entries to the value of this
- variable. Very few terminfo entries provide this feature.
+</PRE><H3><a name="h3-CC-_command-character_"><EM>CC</EM> (command character)</a></H3><PRE>
+ When set, the <STRONG>command_character</STRONG> (<STRONG>cmdch</STRONG>) capability value of loaded
+ <EM>terminfo</EM> entries changes to the value of this variable. Very few <EM>term-</EM>
+ <EM>info</EM> entries provide this feature.
Because this name is also used in development environments to represent
- the C compiler's name, <STRONG>ncurses</STRONG> ignores it if it does not happen to be a
- single character.
-
-
-</PRE><H3><a name="h3-BAUDRATE">BAUDRATE</a></H3><PRE>
- The debugging library checks this environment variable when the
- application has redirected output to a file. The variable's numeric
- value is used for the baudrate. If no value is found, <STRONG>ncurses</STRONG> uses
- 9600. This allows testers to construct repeatable test-cases that take
- into account costs that depend on baudrate.
-
-
-</PRE><H3><a name="h3-COLUMNS">COLUMNS</a></H3><PRE>
- Specify the width of the screen in characters. Applications running in
- a windowing environment usually are able to obtain the width of the
- window in which they are executing. If neither the <STRONG>COLUMNS</STRONG> value nor
- the terminal's screen size is available, <STRONG>ncurses</STRONG> uses the size which
- may be specified in the terminfo database (i.e., the <STRONG>cols</STRONG> capability).
-
- It is important that your application use a correct size for the
- screen. This is not always possible because your application may be
- running on a host which does not honor NAWS (Negotiations About Window
- Size), or because you are temporarily running as another user.
- However, setting <STRONG>COLUMNS</STRONG> and/or <STRONG>LINES</STRONG> overrides the library's use of
- the screen size obtained from the operating system.
-
- Either <STRONG>COLUMNS</STRONG> or <STRONG>LINES</STRONG> symbols may be specified independently. This
- is mainly useful to circumvent legacy misfeatures of terminal
- descriptions, e.g., xterm which commonly specifies a 65 line screen.
- For best results, <STRONG>lines</STRONG> and <STRONG>cols</STRONG> should not be specified in a terminal
- description for terminals which are run as emulations.
-
- Use the <STRONG>use_env</STRONG> function to disable all use of external environment
- (but not including system calls) to determine the screen size. Use the
- <STRONG>use_tioctl</STRONG> function to update <STRONG>COLUMNS</STRONG> or <STRONG>LINES</STRONG> to match the screen size
- obtained from system calls or the terminal database.
-
-
-</PRE><H3><a name="h3-ESCDELAY">ESCDELAY</a></H3><PRE>
- Specifies the total time, in milliseconds, for which ncurses will await
- a character sequence, e.g., a function key. The default value, 1000
- milliseconds, is enough for most uses. However, it is made a variable
- to accommodate unusual applications.
+ the C compiler's name, <EM>ncurses</EM> ignores its value if it is not one
+ character in length.
+
+
+</PRE><H3><a name="h3-COLUMNS"><EM>COLUMNS</EM></a></H3><PRE>
+ This variable specifies the width of the screen in characters.
+ Applications running in a windowing environment usually are able to
+ obtain the width of the window in which they are executing. If <EM>COLUMNS</EM>
+ is not defined and the terminal's screen size is not available from the
+ terminal driver, <EM>ncurses</EM> uses the size specified by the <STRONG>columns</STRONG> (<STRONG>cols</STRONG>)
+ capability of the terminal type's entry in the <EM>terminfo</EM> database, if
+ any.
+
+ It is important that your application use the correct screen size.
+ Automatic detection thereof is not always possible because an
+ application may be running on a host that does not honor NAWS
+ (Negotiations About Window Size) or as a different user ID than the
+ owner of the terminal device file. Setting <EM>COLUMNS</EM> and/or <EM>LINES</EM>
+ overrides the library's use of the screen size obtained from the
+ operating system.
+
+ The <EM>COLUMNS</EM> and <EM>LINES</EM> variables may be specified independently. This
+ property is useful to circumvent misfeatures of legacy terminal type
+ descriptions; <STRONG>xterm(1)</STRONG> descriptions specifying 65 lines were once
+ notorious. For best results, avoid specifying <STRONG>cols</STRONG> and <STRONG>lines</STRONG>
+ capability codes in <EM>terminfo</EM> descriptions of terminal emulators.
+
+ <STRONG><A HREF="curs_util.3x.html">use_env(3x)</A></STRONG> can disable use of the process environment in determining
+ the screen size. <STRONG><A HREF="curs_util.3x.html">use_tioctl(3x)</A></STRONG> can update <EM>COLUMNS</EM> and <EM>LINES</EM> to match
+ the screen size obtained from system calls or the terminal database.
+
+
+</PRE><H3><a name="h3-ESCDELAY"><EM>ESCDELAY</EM></a></H3><PRE>
+ For <EM>curses</EM> to distinguish the ESC character resulting from a user's
+ press of the "Escape" key on the input device from one beginning an
+ <EM>escape</EM> <EM>sequence</EM> (as commonly produced by function keys), it waits after
+ receiving the escape character to see if further characters are
+ available on the input stream within a short interval. A global
+ variable <STRONG>ESCDELAY</STRONG> stores this interval in milliseconds. The default
+ value of 1000 (one second) is adequate for most uses. This environment
+ variable overrides it.
The most common instance where you may wish to change this value is to
- work with slow hosts, e.g., running on a network. If the host cannot
- read characters rapidly enough, it will have the same effect as if the
- terminal did not send characters rapidly enough. The library will
- still see a timeout.
-
- Note that xterm mouse events are built up from character sequences
- received from the xterm. If your application makes heavy use of
- multiple-clicking, you may wish to lengthen this default value because
- the timeout applies to the composed multi-click event as well as the
- individual clicks.
-
- In addition to the environment variable, this implementation provides a
- global variable with the same name. Portable applications should not
- rely upon the presence of ESCDELAY in either form, but setting the
- environment variable rather than the global variable does not create
- problems when compiling an application.
-
-
-</PRE><H3><a name="h3-HOME">HOME</a></H3><PRE>
- Tells <STRONG>ncurses</STRONG> where your home directory is. That is where it may read
- and write auxiliary terminal descriptions:
-
- $HOME/.termcap
- $HOME/.terminfo
-
-
-</PRE><H3><a name="h3-LINES">LINES</a></H3><PRE>
- Like COLUMNS, specify the height of the screen in characters. See
- COLUMNS for a detailed description.
-
-
-</PRE><H3><a name="h3-MOUSE_BUTTONS_123">MOUSE_BUTTONS_123</a></H3><PRE>
- This applies only to the OS/2 EMX port. It specifies the order of
- buttons on the mouse. OS/2 numbers a 3-button mouse inconsistently
- from other platforms:
-
- 1 = left
- 2 = right
- 3 = middle.
-
- This variable lets you customize the mouse. The variable must be three
- numeric digits 1-3 in any order, e.g., 123 or 321. If it is not
- specified, <STRONG>ncurses</STRONG> uses 132.
-
-
-</PRE><H3><a name="h3-NCURSES_ASSUMED_COLORS">NCURSES_ASSUMED_COLORS</a></H3><PRE>
- Override the compiled-in assumption that the terminal's default colors
- are white-on-black (see <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>). You may set the
- foreground and background color values with this environment variable
- by proving a 2-element list: foreground,background. For example, to
- tell ncurses to not assume anything about the colors, set this to
- "-1,-1". To make it green-on-black, set it to "2,0". Any positive
- value from zero to the terminfo <STRONG>max_colors</STRONG> value is allowed.
-
-
-</PRE><H3><a name="h3-NCURSES_CONSOLE2">NCURSES_CONSOLE2</a></H3><PRE>
- This applies only to the MinGW port of ncurses.
-
- The <STRONG>Console2</STRONG> program's handling of the Microsoft Console API call
- <STRONG>CreateConsoleScreenBuffer</STRONG> is defective. Applications which use this
- will hang. However, it is possible to simulate the action of this call
- by mapping coordinates, explicitly saving and restoring the original
- screen contents. Setting the environment variable <STRONG>NCGDB</STRONG> has the same
- effect.
-
-
-</PRE><H3><a name="h3-NCURSES_GPM_TERMS">NCURSES_GPM_TERMS</a></H3><PRE>
- This applies only to ncurses configured to use the GPM interface.
-
- If present, the environment variable is a list of one or more terminal
- names against which the <STRONG>TERM</STRONG> environment variable is matched. Setting
- it to an empty value disables the GPM interface; using the built-in
- support for xterm, etc.
-
- If the environment variable is absent, ncurses will attempt to open GPM
- if <STRONG>TERM</STRONG> contains "linux".
-
-
-</PRE><H3><a name="h3-NCURSES_NO_HARD_TABS">NCURSES_NO_HARD_TABS</a></H3><PRE>
- <STRONG>Ncurses</STRONG> may use tabs as part of the cursor movement optimization. In
- some cases, your terminal driver may not handle these properly. Set
- this environment variable to disable the feature. You can also adjust
- your <STRONG>stty</STRONG> settings to avoid the problem.
-
-
-</PRE><H3><a name="h3-NCURSES_NO_MAGIC_COOKIE">NCURSES_NO_MAGIC_COOKIE</a></H3><PRE>
- Some terminals use a magic-cookie feature which requires special
- handling to make highlighting and other video attributes display
- properly. You can suppress the highlighting entirely for these
- terminals by setting this environment variable.
-
-
-</PRE><H3><a name="h3-NCURSES_NO_PADDING">NCURSES_NO_PADDING</a></H3><PRE>
- Most of the terminal descriptions in the terminfo database are written
- for real "hardware" terminals. Many people use terminal emulators
- which run in a windowing environment and use curses-based applications.
- Terminal emulators can duplicate all of the important aspects of a
- hardware terminal, but they do not have the same limitations. The
- chief limitation of a hardware terminal from the standpoint of your
- application is the management of dataflow, i.e., timing. Unless a
+ work with a remote host over a slow communication channel. If the host
+ running a <EM>curses</EM> application does not receive the characters of an
+ escape sequence in a timely manner, the library can interpret them as
+ multiple key stroke events.
+
+ <STRONG>xterm(1)</STRONG> mouse events are a form of escape sequence; therefore, if your
+ application makes heavy use of multiple-clicking, you may wish to
+ lengthen the default value because the delay applies to the composite
+ multi-click event as well as the individual clicks.
+
+ Portable applications should not rely upon the presence of <STRONG>ESCDELAY</STRONG> in
+ either form, but setting the environment variable rather than the
+ global variable does not create problems when compiling an application.
+
+ If <STRONG><A HREF="curs_inopts.3x.html">keypad(3x)</A></STRONG> is disabled for the <EM>curses</EM> window receiving input, a
+ program must disambiguate escape sequences itself.
+
+
+</PRE><H3><a name="h3-HOME"><EM>HOME</EM></a></H3><PRE>
+ <EM>ncurses</EM> may read and write auxiliary terminal descriptions in <EM>.termcap</EM>
+ and <EM>.terminfo</EM> files in the user's home directory.
+
+
+</PRE><H3><a name="h3-LINES"><EM>LINES</EM></a></H3><PRE>
+ This counterpart to <EM>COLUMNS</EM> specifies the height of the screen in
+ characters. The corresponding <EM>terminfo</EM> capability and code is <STRONG>lines</STRONG>.
+ See the description of the <EM>COLUMNS</EM> variable above.
+
+
+</PRE><H3><a name="h3-MOUSE_BUTTONS_123"><EM>MOUSE_BUTTONS_123</EM></a></H3><PRE>
+ (OS/2 EMX port only) OS/2 numbers a three-button mouse inconsistently
+ with other platforms, such that 1 is the left button, 2 the right, and
+ 3 the middle. This variable customizes the mouse button numbering.
+ Its value must be three digits 1-3 in any order. By default, <EM>ncurses</EM>
+ assumes a numbering of "132".
+
+
+</PRE><H3><a name="h3-NCURSES_ASSUMED_COLORS"><EM>NCURSES_ASSUMED_COLORS</EM></a></H3><PRE>
+ If set, this variable overrides the <EM>ncurses</EM> library's compiled-in
+ assumption that the terminal's default colors are white on black; see
+ <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>. Set the foreground and background color values
+ with this environment variable by assigning it two integer values
+ separated by a comma, indicating foregound and background color
+ numbers, respectively.
+
+ For example, to tell <EM>ncurses</EM> not to assume anything about the colors,
+ use a value of "-1,-1". To make the default color scheme green on
+ black, use "2,0". <EM>ncurses</EM> accepts integral values from -1 up to the
+ value of the <EM>terminfo</EM> <STRONG>max_colors</STRONG> (<STRONG>colors</STRONG>) capability.
+
+
+</PRE><H3><a name="h3-NCURSES_CONSOLE2"><EM>NCURSES_CONSOLE2</EM></a></H3><PRE>
+ (MinGW port only) The <EM>Console2</EM> program defectively handles the
+ Microsoft Console API call <EM>CreateConsoleScreenBuffer</EM>. Applications
+ that use it will hang. However, it is possible to simulate the action
+ of this call by mapping coordinates, explicitly saving and restoring
+ the original screen contents. Setting the environment variable <EM>NCGDB</EM>
+ has the same effect.
+
+
+</PRE><H3><a name="h3-NCURSES_GPM_TERMS"><EM>NCURSES_GPM_TERMS</EM></a></H3><PRE>
+ (Linux only) When <EM>ncurses</EM> is configured to use the GPM interface, this
+ variable may list one or more terminal names against which the <EM>TERM</EM>
+ variable (see below) is matched. An empty value disables the GPM
+ interface, using <EM>ncurses</EM>'s built-in support for <STRONG>xterm(1)</STRONG> mouse
+ protocols instead. If the variable is absent, <EM>ncurses</EM> attempts to open
+ GPM if <EM>TERM</EM> contains "linux".
+
+
+</PRE><H3><a name="h3-NCURSES_NO_HARD_TABS"><EM>NCURSES_NO_HARD_TABS</EM></a></H3><PRE>
+ <EM>ncurses</EM> may use tab characters in cursor movement optimization. In
+ some cases, your terminal driver may not handle them properly. Set
+ this environment variable to any value to disable the feature. You can
+ also adjust your <STRONG>stty(1)</STRONG> settings to avoid the problem.
+
+
+</PRE><H3><a name="h3-NCURSES_NO_MAGIC_COOKIE"><EM>NCURSES_NO_MAGIC_COOKIE</EM></a></H3><PRE>
+ Many terminals store video attributes as a property of a character
+ cell, as <EM>curses</EM> does. Historically, some recorded changes in video
+ attributes as data that logically <EM>occupies</EM> character cells on the
+ display, switching attributes on or off, similarly to tags in a markup
+ language; these are termed "magic cookies", and must be subsequently
+ overprinted. If the <EM>terminfo</EM> entry for your terminal type does not
+ adequately describe its handling of magic cookies, set this variable to
+ any value to instruct <EM>ncurses</EM> to disable attributes entirely.
+
+
+</PRE><H3><a name="h3-NCURSES_NO_PADDING"><EM>NCURSES_NO_PADDING</EM></a></H3><PRE>
+ Most terminal type descriptions in the <EM>terminfo</EM> database detail
+ hardware devices. Many people use <EM>curses</EM>-based applications in
+ terminal emulator programs that run in a windowing environment. These
+ programs can duplicate all of the important features of a hardware
+ terminal, but often lack their limitations. Chief among these absent
+ drawbacks is the problem of data flow management; that is, limiting the
+ speed of communication to what the hardware could handle. Unless a
hardware terminal is interfaced into a terminal concentrator (which
- does flow control), it (or your application) must manage dataflow,
- preventing overruns. The cheapest solution (no hardware cost) is for
- your program to do this by pausing after operations that the terminal
- does slowly, such as clearing the display.
-
- As a result, many terminal descriptions (including the vt100) have
- delay times embedded. You may wish to use these descriptions, but not
- want to pay the performance penalty.
-
- Set the NCURSES_NO_PADDING environment variable to disable all but
- mandatory padding. Mandatory padding is used as a part of special
- control sequences such as <EM>flash</EM>.
-
-
-</PRE><H3><a name="h3-NCURSES_NO_SETBUF">NCURSES_NO_SETBUF</a></H3><PRE>
- This setting is obsolete. Before changes
-
- <STRONG>o</STRONG> started with 5.9 patch 20120825 and
-
- <STRONG>o</STRONG> continued though 5.9 patch 20130126
-
- <STRONG>ncurses</STRONG> enabled buffered output during terminal initialization. This
- was done (as in SVr4 curses) for performance reasons. For testing
- purposes, both of <STRONG>ncurses</STRONG> and certain applications, this feature was
- made optional. Setting the NCURSES_NO_SETBUF variable disabled output
- buffering, leaving the output in the original (usually line buffered)
- mode.
-
- In the current implementation, ncurses performs its own buffering and
- does not require this workaround. It does not modify the buffering of
- the standard output.
-
- The reason for the change was to make the behavior for interrupts and
- other signals more robust. One drawback is that certain
- nonconventional programs would mix ordinary stdio calls with ncurses
- calls and (usually) work. This is no longer possible since ncurses is
- not using the buffered standard output but its own output (to the same
- file descriptor). As a special case, the low-level calls such as <STRONG>putp</STRONG>
- still use the standard output. But high-level curses calls do not.
-
-
-</PRE><H3><a name="h3-NCURSES_NO_UTF8_ACS">NCURSES_NO_UTF8_ACS</a></H3><PRE>
- During initialization, the <STRONG>ncurses</STRONG> library checks for special cases
- where VT100 line-drawing (and the corresponding alternate character set
- capabilities) described in the terminfo are known to be missing.
- Specifically, when running in a UTF-8 locale, the Linux console
- emulator and the GNU screen program ignore these. Ncurses checks the
- <STRONG>TERM</STRONG> environment variable for these. For other special cases, you
- should set this environment variable. Doing this tells ncurses to use
- Unicode values which correspond to the VT100 line-drawing glyphs. That
- works for the special cases cited, and is likely to work for terminal
- emulators.
-
- When setting this variable, you should set it to a nonzero value.
- Setting it to zero (or to a nonnumber) disables the special check for
- "linux" and "screen".
-
- As an alternative to the environment variable, ncurses checks for an
- extended terminfo capability <STRONG>U8</STRONG>. This is a numeric capability which
- can be compiled using <STRONG>tic</STRONG> <STRONG>-x</STRONG>. For example
+ does flow control), an application must manage flow control itself to
+ prevent overruns and data loss.
+
+ A solution that comes at no hardware cost is for an application to
+ pause after directing a terminal to execute an operation that it
+ performs slowly, such as clearing the display. Many terminal type
+ descriptions, including that for the VT100, embed delay specifications
+ in capabilities. You may wish to use these terminal descriptions
+ without paying the performance penalty. Set <EM>NCURSES</EM><STRONG>_</STRONG><EM>NO</EM><STRONG>_</STRONG><EM>PADDING</EM> to any
+ value to disable all but mandatory padding. Mandatory padding is used
+ by such terminal capabilities as <STRONG>flash_screen</STRONG> (<STRONG>flash</STRONG>).
+
+
+</PRE><H3><a name="h3-NCURSES_NO_SETBUF"><EM>NCURSES_NO_SETBUF</EM></a></H3><PRE>
+ (Obsolete) Prior to internal changes developed in <EM>ncurses</EM> 5.9 (patches
+ 20120825 through 20130126), the library used <STRONG>setbuf(3)</STRONG> to enable fully
+ buffered output when initializing the terminal. This was done, as in
+ SVr4 <EM>curses</EM>, to increase performance. For testing purposes, both of
+ <EM>ncurses</EM> and of certain applications, this feature was made optional.
+ Setting this variable disabled output buffering, leaving the output
+ stream in the original (usually line-buffered) mode.
+
+ Nowadays, <EM>ncurses</EM> performs its own buffering and does not require this
+ workaround; it does not modify the buffering of the standard output
+ stream. This approach makes signal handling, as for interrupts, more
+ robust. A drawback is that certain unconventional programs mixed
+ <STRONG>stdio(3)</STRONG> calls with <EM>ncurses</EM> calls and (usually) got the behavior they
+ expected. This is no longer the case; <EM>ncurses</EM> does not write to the
+ standard output file descriptor through a <EM>stdio</EM>-buffered stream.
+
+ As a special case, low-level API calls such as <STRONG><A HREF="curs_terminfo.3x.html">putp(3x)</A></STRONG> still use the
+ standard output stream. High-level <EM>curses</EM> calls such as <STRONG><A HREF="curs_printw.3x.html">printw(3x)</A></STRONG> do
+ not.
+
+
+</PRE><H3><a name="h3-NCURSES_NO_UTF8_ACS"><EM>NCURSES_NO_UTF8_ACS</EM></a></H3><PRE>
+ At initialization, <EM>ncurses</EM> inspects the <EM>TERM</EM> environment variable for
+ special cases where VT100 forms-drawing characters (and the
+ corresponding alternate character set <EM>terminfo</EM> capabilities) are known
+ to be unsupported by terminal types that otherwise claim VT100
+ compatibility. Specifically, when running in a UTF-8 locale, the Linux
+ virtual console device and the GNU <STRONG>screen(1)</STRONG> program ignore them. Set
+ this variable to a nonzero value to instruct <EM>ncurses</EM> that the
+ terminal's ACS support is broken; the library then outputs Unicode code
+ points that correspond to the forms-drawing characters. Set it to zero
+ (or a non-integer) to disable the special check for terminal type names
+ matching "linux" or "screen", directing <EM>ncurses</EM> to assume that the ACS
+ feature works if the terminal type description advertises it.
+
+ As an alternative to use of this variable, <EM>ncurses</EM> checks for an
+ extended <EM>terminfo</EM> numeric capability <STRONG>U8</STRONG> that can be compiled using "<STRONG>tic</STRONG>
+ <STRONG>-x</STRONG>". Examples follow.
# linux console, if patched to provide working
# VT100 shift-in/shift-out, with corresponding font.
@@ -1001,170 +1028,135 @@
xterm-utf8|xterm relying on UTF-8 line-graphics,
U8#1, use=xterm,
- The name "U8" is chosen to be two characters, to permit it to be used
- by applications that use ncurses' termcap interface.
-
+ The two-character name "U8" was chosen to permit its use via <EM>ncurses</EM>'s
+ <EM>termcap</EM> interface.
-</PRE><H3><a name="h3-NCURSES_TRACE">NCURSES_TRACE</a></H3><PRE>
- During initialization, the <STRONG>ncurses</STRONG> debugging library checks the
- NCURSES_TRACE environment variable. If it is defined, to a numeric
- value, <STRONG>ncurses</STRONG> calls the <STRONG>trace</STRONG> function, using that value as the
- argument.
- The argument values, which are defined in <STRONG>curses.h</STRONG>, provide several
- types of information. When running with traces enabled, your
- application will write the file <STRONG>trace</STRONG> to the current directory.
+</PRE><H3><a name="h3-NCURSES_TRACE"><EM>NCURSES_TRACE</EM></a></H3><PRE>
+ At initialization, <EM>ncurses</EM> (in its debugging configuration) checks for
+ this variable's presence. If defined with an integral value, the
+ library calls <STRONG><A HREF="curs_trace.3x.html">curses_trace(3x)</A></STRONG> with that value as the argument.
- See <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG> for more information.
+</PRE><H3><a name="h3-TERM"><EM>TERM</EM></a></H3><PRE>
+ The <EM>TERM</EM> variable denotes the terminal type. Each is distinct, though
+ many are similar. It is commonly set by terminal emulators to help
+ applications find a workable terminal description. Some choose a
+ popular approximation such as "ansi", "vt100", or "xterm" rather than
+ an exact fit to their capabilities. Not infrequently, an application
+ will have problems with that approach; for example, a key stroke may
+ not operate correctly, or produce no effect but seeming garbage
+ characters on the screen.
-</PRE><H3><a name="h3-TERM">TERM</a></H3><PRE>
- Denotes your terminal type. Each terminal type is distinct, though
- many are similar.
+ Setting <EM>TERM</EM> has no effect on hardware operation; it affects the way
+ applications communicate with the terminal. Likewise, as a general
+ rule (<STRONG>xterm(1)</STRONG> being a rare exception), terminal emulators that allow
+ you to specify <EM>TERM</EM> as a parameter or configuration value do not change
+ their behavior to match that setting.
- <STRONG>TERM</STRONG> is commonly set by terminal emulators to help applications find a
- workable terminal description. Some of those choose a popular
- approximation, e.g., "ansi", "vt100", "xterm" rather than an exact fit.
- Not infrequently, your application will have problems with that
- approach, e.g., incorrect function-key definitions.
- If you set <STRONG>TERM</STRONG> in your environment, it has no effect on the operation
- of the terminal emulator. It only affects the way applications work
- within the terminal. Likewise, as a general rule (<STRONG>xterm</STRONG> being a rare
- exception), terminal emulators which allow you to specify <STRONG>TERM</STRONG> as a
- parameter or configuration value do not change their behavior to match
- that setting.
+</PRE><H3><a name="h3-TERMCAP"><EM>TERMCAP</EM></a></H3><PRE>
+ If <EM>ncurses</EM> is configured with <EM>termcap</EM> support, it checks for a terminal
+ type description in <EM>termcap</EM> format if one in <EM>terminfo</EM> format is not
+ available. Setting this variable directs <EM>ncurses</EM> to ignore the usual
+ <EM>termcap</EM> database location, <EM>/etc/termcap</EM>; see <EM>TERMPATH</EM> below. <EM>TERMCAP</EM>
+ should contain either a terminal description (with newlines stripped
+ out), or a file name indicating where the information required by the
+ <EM>TERM</EM> environment variable is stored.
-</PRE><H3><a name="h3-TERMCAP">TERMCAP</a></H3><PRE>
- If the <STRONG>ncurses</STRONG> library has been configured with <EM>termcap</EM> support,
- <STRONG>ncurses</STRONG> will check for a terminal's description in termcap form if it
- is not available in the terminfo database.
+</PRE><H3><a name="h3-TERMINFO"><EM>TERMINFO</EM></a></H3><PRE>
+ <EM>ncurses</EM> can be configured to read terminal type description databases
+ in various locations using different formats. This variable overrides
+ the default location.
- The <STRONG>TERMCAP</STRONG> environment variable contains either a terminal description
- (with newlines stripped out), or a file name telling where the
- information denoted by the <STRONG>TERM</STRONG> environment variable exists. In either
- case, setting it directs <STRONG>ncurses</STRONG> to ignore the usual place for this
- information, e.g., /etc/termcap.
+ <STRONG>o</STRONG> Descriptions in <EM>terminfo</EM> format are normally stored in a directory
+ tree using subdirectories named by the common first letters of the
+ terminal types named therein. This is the scheme used in System V.
+ <STRONG>o</STRONG> If <EM>ncurses</EM> is configured to use hashed databases, then <EM>TERMINFO</EM> may
+ name its location, such as <EM>/usr/share/terminfo.db</EM>, rather than
+ <EM>/usr/share/terminfo/</EM>.
-</PRE><H3><a name="h3-TERMINFO">TERMINFO</a></H3><PRE>
- <STRONG>ncurses</STRONG> can be configured to read from multiple terminal databases.
- The <STRONG>TERMINFO</STRONG> variable overrides the location for the default terminal
- database. Terminal descriptions (in terminal format) are stored in
- terminal databases:
+ The hashed database uses less disk space and is a little faster than
+ the directory tree. However, some applications assume the existence of
+ the directory tree, and read it directly rather than using the <EM>terminfo</EM>
+ API.
- <STRONG>o</STRONG> Normally these are stored in a directory tree, using subdirectories
- named by the first letter of the terminal names therein.
+ <STRONG>o</STRONG> If <EM>ncurses</EM> is configured with <EM>termcap</EM> support, this variable may
+ contain the location of a <EM>termcap</EM> file.
- This is the scheme used in System V, which legacy Unix systems use,
- and the <STRONG>TERMINFO</STRONG> variable is used by <EM>curses</EM> applications on those
- systems to override the default location of the terminal database.
+ <STRONG>o</STRONG> If the value of <EM>TERMINFO</EM> begins with "hex:" or "b64:", <EM>ncurses</EM> uses
+ the remainder of the value as a compiled <EM>terminfo</EM> description. You
+ might produce the base64 format using <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>.
- <STRONG>o</STRONG> If <STRONG>ncurses</STRONG> is built to use hashed databases, then each entry in
- this list may be the path of a hashed database file, e.g.,
+ TERMINFO=$(infocmp -0 -Q2 -q)
+ export TERMINFO
- /usr/share/terminfo.db
+ The compiled description is used only if it corresponds to the
+ terminal type identified by <EM>TERM</EM>.
- rather than
+ Setting <EM>TERMINFO</EM> is the simplest, but not the only, way to direct
+ <EM>ncurses</EM> to a terminal database. The search path is as follows.
- /usr/share/terminfo/
+ <STRONG>o</STRONG> the last terminal database to which the running <EM>ncurses</EM> application
+ wrote, if any
- The hashed database uses less disk-space and is a little faster
- than the directory tree. However, some applications assume the
- existence of the directory tree, reading it directly rather than
- using the terminfo library calls.
+ <STRONG>o</STRONG> the location specified by the <EM>TERMINFO</EM> environment variable
- <STRONG>o</STRONG> If <STRONG>ncurses</STRONG> is built with a support for reading termcap files
- directly, then an entry in this list may be the path of a termcap
- file.
+ <STRONG>o</STRONG> <EM>$HOME/.terminfo</EM>
- <STRONG>o</STRONG> If the <STRONG>TERMINFO</STRONG> variable begins with "hex:" or "b64:", <STRONG>ncurses</STRONG> uses
- the remainder of that variable as a compiled terminal description.
- You might produce the base64 format using <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>:
+ <STRONG>o</STRONG> locations listed in the <EM>TERMINFO</EM><STRONG>_</STRONG><EM>DIRS</EM> environment variable
- TERMINFO="$(infocmp -0 -Q2 -q)"
- export TERMINFO
+ <STRONG>o</STRONG> location(s) configured and compiled into <EM>ncurses</EM>
- The compiled description is used if it corresponds to the terminal
- identified by the <STRONG>TERM</STRONG> variable.
+ <STRONG>o</STRONG> <EM>/usr/share/terminfo</EM>
- Setting <STRONG>TERMINFO</STRONG> is the simplest, but not the only way to set location
- of the default terminal database. The complete list of database
- locations in order follows:
- <STRONG>o</STRONG> the last terminal database to which <STRONG>ncurses</STRONG> wrote, if any, is
- searched first
+</PRE><H3><a name="h3-TERMINFO_DIRS"><EM>TERMINFO_DIRS</EM></a></H3><PRE>
+ This variable specifies a list of locations, akin to <EM>PATH</EM>, in which
+ <EM>ncurses</EM> searches for the terminal type descriptions described by
+ <EM>TERMINFO</EM> above. The list items are separated by colons on Unix and
+ semicolons on OS/2 EMX. System V <EM>terminfo</EM> lacks a corresponding
+ feature; <EM>TERMINFO</EM><STRONG>_</STRONG><EM>DIRS</EM> is an <EM>ncurses</EM> extension.
- <STRONG>o</STRONG> the location specified by the TERMINFO environment variable
- <STRONG>o</STRONG> $HOME/.terminfo
+</PRE><H3><a name="h3-TERMPATH"><EM>TERMPATH</EM></a></H3><PRE>
+ If <EM>TERMCAP</EM> does not hold a terminal type description or file name, then
+ <EM>ncurses</EM> checks the contents of <EM>TERMPATH</EM>, a list of locations, akin to
+ <EM>PATH</EM>, in which it searches for <EM>termcap</EM> terminal type descriptions. The
+ list items are separated by colons on Unix and semicolons on OS/2 EMX.
- <STRONG>o</STRONG> locations listed in the TERMINFO_DIRS environment variable
-
- <STRONG>o</STRONG> one or more locations whose names are configured and compiled
- into the ncurses library, i.e.,
-
- <STRONG>o</STRONG> no default value (corresponding to the TERMINFO_DIRS
- variable)
-
- <STRONG>o</STRONG> /usr/share/terminfo (corresponding to the TERMINFO variable)
-
-
-</PRE><H3><a name="h3-TERMINFO_DIRS">TERMINFO_DIRS</a></H3><PRE>
- Specifies a list of locations to search for terminal descriptions.
- Each location in the list is a terminal database as described in the
- section on the <STRONG>TERMINFO</STRONG> variable. The list is separated by colons
- (i.e., ":") on Unix, semicolons on OS/2 EMX.
-
- There is no corresponding feature in System V terminfo; it is an
- extension developed for <STRONG>ncurses</STRONG>.
-
-
-</PRE><H3><a name="h3-TERMPATH">TERMPATH</a></H3><PRE>
- If <STRONG>TERMCAP</STRONG> does not hold a file name then <STRONG>ncurses</STRONG> checks the <STRONG>TERMPATH</STRONG>
- environment variable. This is a list of filenames separated by spaces
- or colons (i.e., ":") on Unix, semicolons on OS/2 EMX.
-
- If the <STRONG>TERMPATH</STRONG> environment variable is not set, <STRONG>ncurses</STRONG> looks in the
- files
-
- /etc/termcap, /usr/share/misc/termcap and $HOME/.termcap,
-
- in that order.
-
- The library may be configured to disregard the following variables when
- the current user is the superuser (root), or if the application uses
- setuid or setgid permissions:
-
- $TERMINFO, $TERMINFO_DIRS, $TERMPATH, as well as $HOME.
+ If both <EM>TERMCAP</EM> and <EM>TERMPATH</EM> are unset or invalid, <EM>ncurses</EM> searches for
+ the files <EM>/etc/termcap</EM>, <EM>/usr/share/misc/termcap</EM>, and <EM>$HOME/.termcap</EM>, in
+ that order.
</PRE><H2><a name="h2-ALTERNATE-CONFIGURATIONS">ALTERNATE CONFIGURATIONS</a></H2><PRE>
- Several different configurations are possible, depending on the
- configure script options used when building <STRONG>ncurses</STRONG>. There are a few
- main options whose effects are visible to the applications developer
- using <STRONG>ncurses</STRONG>:
+ Many different <EM>ncurses</EM> configurations are possible, determined by the
+ options given to the <EM>configure</EM> script when building the library. Run
+ the script with the <STRONG>--help</STRONG> option to peruse them all. A few are of
+ particular significance to the application developer employing <EM>ncurses</EM>.
- --disable-overwrite
- The standard include for <STRONG>ncurses</STRONG> is as noted in <STRONG>SYNOPSIS</STRONG>:
+ <STRONG>--disable-overwrite</STRONG>
+ The standard include for <EM>ncurses</EM> is as noted in <STRONG>SYNOPSIS</STRONG>:
<STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
- This option is used to avoid filename conflicts when <STRONG>ncurses</STRONG> is
- not the main implementation of curses of the computer. If <STRONG>ncurses</STRONG>
- is installed disabling overwrite, it puts its headers in a
+ This option is used to avoid filename conflicts when <EM>ncurses</EM> is
+ not the main implementation of curses of the computer. If <EM>ncurses</EM>
+ is installed disabling overwrite, it puts its headers in a
subdirectory, e.g.,
<STRONG>#include</STRONG> <STRONG>&lt;ncurses/curses.h&gt;</STRONG>
- It also omits a symbolic link which would allow you to use
+ It also omits a symbolic link which would allow you to use
<STRONG>-lcurses</STRONG> to build executables.
- --enable-widec
- The configure script renames the library and (if the
- <STRONG>--disable-overwrite</STRONG> option is used) puts the header files in a
- different subdirectory. All of the library names have a "w"
+ <STRONG>--enable-widec</STRONG>
+ The configure script renames the library and (if the
+ <STRONG>--disable-overwrite</STRONG> option is used) puts the header files in a
+ different subdirectory. All of the library names have a "w"
appended to them, i.e., instead of
<STRONG>-lncurses</STRONG>
@@ -1173,310 +1165,318 @@
<STRONG>-lncursesw</STRONG>
- You must also enable the wide-character features in the header
- file when compiling for the wide-character library to use the
- extended (wide-character) functions. The symbol which enables
- these features has changed since XSI Curses, Issue 4:
+ You must also enable the wide-character features in the header
+ file when compiling for the wide-character library to use the
+ extended (wide-character) functions. The symbol which enables
+ these features has changed since X/Open Curses, Issue 4:
- <STRONG>o</STRONG> Originally, the wide-character feature required the symbol
+ <STRONG>o</STRONG> Originally, the wide-character feature required the symbol
<STRONG>_XOPEN_SOURCE_EXTENDED</STRONG> but that was only valid for XPG4
(1996).
- <STRONG>o</STRONG> Later, that was deemed conflicting with <STRONG>_XOPEN_SOURCE</STRONG> defined
+ <STRONG>o</STRONG> Later, that was deemed conflicting with <STRONG>_XOPEN_SOURCE</STRONG> defined
to 500.
- <STRONG>o</STRONG> As of mid-2018, none of the features in this implementation
- require a <STRONG>_XOPEN_SOURCE</STRONG> feature greater than 600. However,
+ <STRONG>o</STRONG> As of mid-2018, none of the features in this implementation
+ require a <STRONG>_XOPEN_SOURCE</STRONG> feature greater than 600. However,
X/Open Curses, Issue 7 (2009) recommends defining it to 700.
- <STRONG>o</STRONG> Alternatively, you can enable the feature by defining
- <STRONG>NCURSES_WIDECHAR</STRONG> with the caveat that some other header file
- than <STRONG>curses.h</STRONG> may require a specific value for <STRONG>_XOPEN_SOURCE</STRONG>
+ <STRONG>o</STRONG> Alternatively, you can enable the feature by defining
+ <STRONG>NCURSES_WIDECHAR</STRONG> with the caveat that some other header file
+ than <STRONG>curses.h</STRONG> may require a specific value for <STRONG>_XOPEN_SOURCE</STRONG>
(or a system-specific symbol).
- The <STRONG>curses.h</STRONG> file which is installed for the wide-character
- library is designed to be compatible with the normal library's
- header. Only the size of the <STRONG>WINDOW</STRONG> structure differs, and very
- few applications require more than a pointer to <STRONG>WINDOW</STRONG>s.
+ The <EM>curses.h</EM> header file installed for the wide-character library
+ is designed to be compatible with the non-wide library's header.
+ Only the size of the <EM>WINDOW</EM> structure differs; few applications
+ require more than pointers to <EM>WINDOW</EM>s.
If the headers are installed allowing overwrite, the wide-
- character library's headers should be installed last, to allow
+ character library's headers should be installed last, to allow
applications to be built using either library from the same set of
headers.
- --with-pthread
- The configure script renames the library. All of the library
- names have a "t" appended to them (before any "w" added by
+ <STRONG>--with-pthread</STRONG>
+ The configure script renames the library. All of the library
+ names have a "t" appended to them (before any "w" added by
<STRONG>--enable-widec</STRONG>).
The global variables such as <STRONG>LINES</STRONG> are replaced by macros to allow
read-only access. At the same time, setter-functions are provided
- to set these values. Some applications (very few) may require
+ to set these values. Some applications (very few) may require
changes to work with this convention.
- --with-shared
-
- --with-normal
-
- --with-debug
-
- --with-profile
- The shared and normal (static) library names differ by their
- suffixes, e.g., <STRONG>libncurses.so</STRONG> and <STRONG>libncurses.a</STRONG>. The debug and
- profiling libraries add a "_g" and a "_p" to the root names
+ <STRONG>--with-shared</STRONG>
+ <STRONG>--with-normal</STRONG>
+ <STRONG>--with-debug</STRONG>
+ <STRONG>--with-profile</STRONG>
+ The shared and normal (static) library names differ by their
+ suffixes, e.g., <STRONG>libncurses.so</STRONG> and <STRONG>libncurses.a</STRONG>. The debug and
+ profiling libraries add a "_g" and a "_p" to the root names
respectively, e.g., <STRONG>libncurses_g.a</STRONG> and <STRONG>libncurses_p.a</STRONG>.
- --with-termlib
- Low-level functions which do not depend upon whether the library
+ <STRONG>--with-termlib</STRONG>
+ Low-level functions which do not depend upon whether the library
supports wide-characters, are provided in the tinfo library.
- By doing this, it is possible to share the tinfo library between
- wide/normal configurations as well as reduce the size of the
+ By doing this, it is possible to share the tinfo library between
+ wide/normal configurations as well as reduce the size of the
library when only low-level functions are needed.
Those functions are described in these pages:
- <STRONG>o</STRONG> <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG> - miscellaneous curses extensions
+ <STRONG>o</STRONG> <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG> - miscellaneous <EM>curses</EM> extensions
- <STRONG>o</STRONG> <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG> - <STRONG>curses</STRONG> input options
+ <STRONG>o</STRONG> <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG> - <EM>curses</EM> input options
- <STRONG>o</STRONG> <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG> - low-level <STRONG>curses</STRONG> routines
+ <STRONG>o</STRONG> <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG> - low-level <EM>curses</EM> routines
- <STRONG>o</STRONG> <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG> - <STRONG>curses</STRONG> environment query routines
+ <STRONG>o</STRONG> <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG> - <EM>curses</EM> environment query routines
- <STRONG>o</STRONG> <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG> - <STRONG>curses</STRONG> emulation of termcap
+ <STRONG>o</STRONG> <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG> - <EM>curses</EM> emulation of <EM>termcap</EM>
- <STRONG>o</STRONG> <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> - <STRONG>curses</STRONG> interfaces to terminfo database
+ <STRONG>o</STRONG> <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> - <EM>curses</EM> interface to <EM>terminfo</EM> database
- <STRONG>o</STRONG> <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG> - miscellaneous <STRONG>curses</STRONG> utility routines
+ <STRONG>o</STRONG> <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG> - miscellaneous <EM>curses</EM> utility routines
- --with-trace
- The <STRONG>trace</STRONG> function normally resides in the debug library, but it
- is sometimes useful to configure this in the shared library.
+ <STRONG>--with-trace</STRONG>
+ The <STRONG>trace</STRONG> function normally resides in the debug library, but it
+ is sometimes useful to configure this in the shared library.
Configure scripts should check for the function's existence rather
than assuming it is always in the debug library.
</PRE><H2><a name="h2-FILES">FILES</a></H2><PRE>
- /usr/share/tabset
- directory containing initialization files for the terminal
- capability database /usr/share/terminfo terminal capability
- database
+ <EM>/usr/share/tabset</EM>
+ tab stop initialization database
+ <EM>/usr/share/terminfo</EM>
+ compiled terminal capability database
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> and related pages whose names begin "curs_" for detailed
- routine descriptions.
- <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>
- <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG> for user-defined capabilities
+
+</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
+ X/Open Curses permits most functions it specifies to be made available
+ as macros as well. <EM>ncurses</EM> does so
+
+ <STRONG>o</STRONG> for functions that return values via their parameters,
+
+ <STRONG>o</STRONG> to support obsolete features,
+
+ <STRONG>o</STRONG> to reuse functions (for example, those that move the cursor before
+ another operation), and
+
+ <STRONG>o</STRONG> a few special cases.
+
+ If the standard output file descriptor of an <EM>ncurses</EM> program is
+ redirected to something that is not a terminal device, the library
+ writes screen updates to the standard error file descriptor. This was
+ an undocumented feature of SVr3 <EM>curses</EM>.
+
+ See subsection "Header Files" below regarding symbols exposed by
+ inclusion of <EM>curses.h</EM>.
</PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
- The <STRONG>ncurses</STRONG> library can be compiled with an option (<STRONG>-DUSE_GETCAP</STRONG>) that
- falls back to the old-style /etc/termcap file if the terminal setup
- code cannot find a terminfo entry corresponding to <STRONG>TERM</STRONG>. Use of this
- feature is not recommended, as it essentially includes an entire
- termcap compiler in the <STRONG>ncurses</STRONG> startup code, at significant cost in
- core and startup cycles.
-
- The <STRONG>ncurses</STRONG> library includes facilities for capturing mouse events on
- certain terminals (including xterm). See the <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG> manual
- page for details.
-
- The <STRONG>ncurses</STRONG> library includes facilities for responding to window
- resizing events, e.g., when running in an xterm. See the
- <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG> and <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG> manual pages for details. In addition,
- the library may be configured with a <STRONG>SIGWINCH</STRONG> handler.
-
- The <STRONG>ncurses</STRONG> library extends the fixed set of function key capabilities
- of terminals by allowing the application designer to define additional
- key sequences at runtime. See the <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG> <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>, and
- <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG> manual pages for details.
-
- The <STRONG>ncurses</STRONG> library can exploit the capabilities of terminals which
- implement the ISO-6429 SGR 39 and SGR 49 controls, which allow an
- application to reset the terminal to its original foreground and
- background colors. From the users' perspective, the application is
- able to draw colored text on a background whose color is set
- independently, providing better control over color contrasts. See the
- <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG> manual page for details.
+ <EM>ncurses</EM> enables an application to capture mouse events on certain
+ terminals, including <STRONG>xterm(1)</STRONG>; see <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>.
- The <STRONG>ncurses</STRONG> library includes a function for directing application
- output to a printer attached to the terminal device. See the
- <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG> manual page for details.
+ <EM>ncurses</EM> provides a means of responding to window resizing events, as
+ when running in a GUI terminal emulator application such as <EM>xterm</EM>; see
+ <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG> and <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>.
+ <EM>ncurses</EM> allows an application to query the terminal for the presence of
+ a wide variety of special keys; see <STRONG><A HREF="curs_getch.3x.html">has_key(3x)</A></STRONG>.
-</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- The <STRONG>ncurses</STRONG> library is intended to be BASE-level conformant with XSI
- Curses. The EXTENDED XSI Curses functionality (including color
- support) is supported.
+ <EM>ncurses</EM> extends the fixed set of function key capabilities specified by
+ X/Open Curses by allowing the application programmer to define
+ additional key events at runtime; see <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>, <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>,
+ <STRONG><A HREF="keybound.3x.html">keybound(3x)</A></STRONG>, and <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>.
+
+ <EM>ncurses</EM> can exploit the capabilities of terminals implementing
+ ISO 6429/ECMA-48 SGR 39 and SGR 49 sequences, which allow an
+ application to reset the terminal to its original foreground and
+ background colors. From a user's perspective, the application is able
+ to draw colored text on a background whose color is set independently,
+ providing better control over color contrasts. See <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>.
- A small number of local differences (that is, individual differences
- between the XSI Curses and <STRONG>ncurses</STRONG> calls) are described in <STRONG>PORTABILITY</STRONG>
- sections of the library man pages.
+ An <EM>ncurses</EM> application can eschew knowledge of <EM>WINDOW</EM> structure
+ internals, instead using accessor functions such as <STRONG><A HREF="curs_opaque.3x.html">is_scrollok(3x)</A></STRONG>.
+ <EM>ncurses</EM> enables an application to direct application output to a
+ printer attached to the terminal device; see <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG>.
-</PRE><H3><a name="h3-Error-checking">Error checking</a></H3><PRE>
- In many cases, X/Open Curses is vague about error conditions, omitting
- some of the SVr4 documentation.
+ <EM>ncurses</EM> offers <STRONG><A HREF="curs_slk.3x.html">slk_attr(3x)</A></STRONG> as a counterpart of <STRONG><A HREF="curs_attr.3x.html">attr_get(3x)</A></STRONG> for soft-
+ label key lines, and <STRONG><A HREF="curs_slk.3x.html">extended_slk_color(3x)</A></STRONG> as a form of <STRONG><A HREF="curs_slk.3x.html">slk_color(3x)</A></STRONG>
+ that can gather color information from them when many colors are
+ supported.
- Unlike other implementations, this one checks parameters such as
- pointers to WINDOW structures to ensure they are not null. The main
- reason for providing this behavior is to guard against programmer
- error. The standard interface does not provide a way for the library
- to tell an application which of several possible errors were detected.
- Relying on this (or some other) extension will adversely affect the
- portability of curses applications.
+ Some extensions are available only if <EM>ncurses</EM> permits modification of
+ <STRONG><A HREF="unctrl.3x.html">unctrl(3x)</A></STRONG>'s behavior; see <STRONG><A HREF="legacy_coding.3x.html">use_legacy_coding(3x)</A></STRONG>. <EM>ncurses</EM> is compiled
+ to support them; section "ALTERNATE CONFIGURATIONS" describes how.
+ <STRONG>o</STRONG> Rudimentary support for multi-threaded applications may be
+ available; see <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>.
-</PRE><H3><a name="h3-Extensions-versus-portability">Extensions versus portability</a></H3><PRE>
- Most of the extensions provided by ncurses have not been standardized.
- Some have been incorporated into other implementations, such as
- PDCurses or NetBSD curses. Here are a few to consider:
+ <STRONG>o</STRONG> Functions that ease the management of multiple screens can be
+ exposed; see <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG>.
- <STRONG>o</STRONG> The routine <STRONG>has_key</STRONG> is not part of XPG4, nor is it present in SVr4.
- See the <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG> manual page for details.
+ <STRONG>o</STRONG> To aid applications to debug their memory usage, <EM>ncurses</EM> optionally
+ offers functions to more aggressively free memory it dynamically
+ allocates itself; see <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>.
- <STRONG>o</STRONG> The routine <STRONG>slk_attr</STRONG> is not part of XPG4, nor is it present in
- SVr4. See the <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG> manual page for details.
+ <STRONG>o</STRONG> The library facilitates auditing and troubleshooting of its
+ behavior; see <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>.
- <STRONG>o</STRONG> The routines <STRONG>getmouse</STRONG>, <STRONG>mousemask</STRONG>, <STRONG>ungetmouse</STRONG>, <STRONG>mouseinterval</STRONG>, and
- <STRONG>wenclose</STRONG> relating to mouse interfacing are not part of XPG4, nor
- are they present in SVr4. See the <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG> manual page for
- details.
+ <STRONG>o</STRONG> The compiler option <STRONG>-DUSE_GETCAP</STRONG> causes the library to fall back to
+ reading <EM>/etc/termcap</EM> if the terminal setup code cannot find a <EM>term-</EM>
+ <EM>info</EM> entry corresponding to <EM>TERM</EM>. Use of this feature is not
+ recommended, as it essentially includes an entire <EM>termcap</EM> compiler
+ in the <EM>ncurses</EM> startup code, at a cost in memory usage and
+ application launch latency.
- <STRONG>o</STRONG> The routine <STRONG>mcprint</STRONG> was not present in any previous curses
- implementation. See the <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG> manual page for details.
+ <EM>PDCurses</EM> and NetBSD <EM>curses</EM> incorporate some <EM>ncurses</EM> extensions.
+ Individual man pages indicate where this is the case.
- <STRONG>o</STRONG> The routine <STRONG>wresize</STRONG> is not part of XPG4, nor is it present in SVr4.
- See the <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG> manual page for details.
- <STRONG>o</STRONG> The WINDOW structure's internal details can be hidden from
- application programs. See <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG> for the discussion of
- <STRONG>is_scrollok</STRONG>, etc.
+</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
+ X/Open Curses defines two levels of conformance, "base" and "enhanced".
+ The latter includes several additional features, such as wide-character
+ and color support. <EM>ncurses</EM> intends base-level conformance with X/Open
+ Curses, and supports all features of its enhanced level except the
+ <STRONG>untic</STRONG> utility.
- <STRONG>o</STRONG> This implementation can be configured to provide rudimentary
- support for multi-threaded applications. See <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG> for
- details.
+ Differences between X/Open Curses and <EM>ncurses</EM> are documented in the
+ "PORTABILITY" sections of applicable man pages.
- <STRONG>o</STRONG> This implementation can also be configured to provide a set of
- functions which improve the ability to manage multiple screens.
- See <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG> for details.
+</PRE><H3><a name="h3-Error-Checking">Error Checking</a></H3><PRE>
+ In many cases, X/Open Curses is vague about error conditions, omitting
+ some of the SVr4 documentation.
-</PRE><H3><a name="h3-Padding-differences">Padding differences</a></H3><PRE>
- In historic curses versions, delays embedded in the capabilities <STRONG>cr</STRONG>,
- <STRONG>ind</STRONG>, <STRONG>cub1</STRONG>, <STRONG>ff</STRONG> and <STRONG>tab</STRONG> activated corresponding delay bits in the UNIX
- tty driver. In this implementation, all padding is done by sending NUL
- bytes. This method is slightly more expensive, but narrows the
- interface to the UNIX kernel significantly and increases the package's
- portability correspondingly.
+ Unlike other implementations, <EM>ncurses</EM> checks pointer parameters, such
+ as those to <EM>WINDOW</EM> structures, to ensure that they are not null. This
+ is done primarily to guard against programmer error. The standard
+ interface does not provide a way for the library to tell an application
+ which of several possible errors occurred. Relying on this (or some
+ other) extension adversely affects the portability of <EM>curses</EM>
+ applications.
-</PRE><H3><a name="h3-Header-files">Header files</a></H3><PRE>
- The header file <STRONG>&lt;curses.h&gt;</STRONG> automatically includes the header files
- <STRONG>&lt;stdio.h&gt;</STRONG> and <STRONG>&lt;unctrl.h&gt;</STRONG>.
+</PRE><H3><a name="h3-Padding-Differences">Padding Differences</a></H3><PRE>
+ In historical <EM>curses</EM> implementations, delays embedded in the <EM>terminfo</EM>
+ capabilities <STRONG>carriage_return</STRONG> (<STRONG>cr</STRONG>), <STRONG>scroll_forward</STRONG> (<STRONG>ind</STRONG>), <STRONG>cursor_left</STRONG>
+ (<STRONG>cub1</STRONG>), <STRONG>form_feed</STRONG> (<STRONG>ff</STRONG>), and <STRONG>tab</STRONG> (<STRONG>ht</STRONG>) activated corresponding delay bits
+ in the Unix terminal driver. <EM>ncurses</EM> performs all padding by sending
+ NUL bytes to the device. This method is slightly more expensive, but
+ narrows the interface to the Unix kernel significantly and
+ correspondingly increases the package's portability.
- X/Open Curses has more to say, but does not finish the story:
- The inclusion of &lt;curses.h&gt; may make visible all symbols from the
- headers &lt;stdio.h&gt;, &lt;term.h&gt;, &lt;termios.h&gt;, and &lt;wchar.h&gt;.
+</PRE><H3><a name="h3-Header-Files">Header Files</a></H3><PRE>
+ The header file <EM>curses.h</EM> itself includes the header files <EM>stdio.h</EM> and
+ <EM>unctrl.h</EM>.
- Here is a more complete story:
+ X/Open Curses has more to say,
- <STRONG>o</STRONG> Starting with BSD curses, all implementations have included
- &lt;stdio.h&gt;.
+ The inclusion of <EM>curses.h</EM> may make visible all symbols from the
+ headers <EM>stdio.h</EM>, <EM>term.h</EM>, <EM>termios.h</EM>, and <EM>wchar.h</EM>.
- BSD curses included &lt;curses.h&gt; and &lt;unctrl.h&gt; from an internal
- header "curses.ext" ("ext" was a short name for <EM>externs</EM>).
+ but does not finish the story. A more complete account follows.
- BSD curses used &lt;stdio.h&gt; internally (for <STRONG>printw</STRONG> and <STRONG>scanw</STRONG>), but
- nothing in &lt;curses.h&gt; itself relied upon &lt;stdio.h&gt;.
+ <STRONG>o</STRONG> Starting with 4BSD <EM>curses</EM> (1980) all implementations have provided
+ a <EM>curses.h</EM> file.
- <STRONG>o</STRONG> SVr2 curses added <STRONG><A HREF="curs_initscr.3x.html">newterm(3x)</A></STRONG>, which relies upon &lt;stdio.h&gt;. That
- is, the function prototype uses <STRONG>FILE</STRONG>.
+ BSD <EM>curses</EM> code included <EM>curses.h</EM> and <EM>unctrl.h</EM> from an internal
+ header file <EM>curses.ext</EM>, where "ext" abbreviated "externs".
- SVr4 curses added <STRONG>putwin</STRONG> and <STRONG>getwin</STRONG>, which also use &lt;stdio.h&gt;.
+ The implementations of <EM>printw</EM> and <EM>scanw</EM> used undocumented internal
+ functions of the standard I/O library (<STRONG>_</STRONG><EM>doprnt</EM> and <STRONG>_</STRONG><EM>doscan</EM>), but
+ nothing in <EM>curses.h</EM> itself relied upon <EM>stdio.h</EM>.
- X/Open Curses documents all three of these functions.
+ <STRONG>o</STRONG> SVr2 <EM>curses</EM> added <EM>newterm</EM>, which relies upon <EM>stdio.h</EM> because its
+ function prototype employs the <EM>FILE</EM> type.
- SVr4 curses and X/Open Curses do not require the developer to
- include &lt;stdio.h&gt; before including &lt;curses.h&gt;. Both document
- curses showing &lt;curses.h&gt; as the only required header.
+ SVr4 <EM>curses</EM> added <EM>putwin</EM> and <EM>getwin</EM>, which also use <EM>stdio.h</EM>.
- As a result, standard &lt;curses.h&gt; will always include &lt;stdio.h&gt;.
+ X/Open Curses specifies all three of these functions.
- <STRONG>o</STRONG> X/Open Curses is inconsistent with respect to SVr4 regarding
- &lt;unctrl.h&gt;.
+ SVr4 <EM>curses</EM> and X/Open Curses do not require the developer to
+ include <EM>stdio.h</EM> before <EM>curses.h</EM>. Both document use of <EM>curses</EM> as
+ requiring only <EM>curses.h</EM>.
- As noted in <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>, ncurses includes &lt;unctrl.h&gt; from
- &lt;curses.h&gt; (like SVr4).
+ As a result, standard <EM>curses.h</EM> always includes <EM>stdio.h</EM>.
- <STRONG>o</STRONG> X/Open's comments about &lt;term.h&gt; and &lt;termios.h&gt; may refer to HP-UX
- and AIX:
+ <STRONG>o</STRONG> X/Open Curses and SVr4 <EM>curses</EM> are inconsistent with respect to
+ <EM>unctrl.h</EM>.
- HP-UX curses includes &lt;term.h&gt; from &lt;curses.h&gt; to declare <STRONG>setupterm</STRONG>
- in curses.h, but ncurses (and Solaris curses) do not.
+ As noted in <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>, <EM>ncurses</EM> includes <EM>unctrl.h</EM> from <EM>curses.h</EM>
+ (as SVr4 does).
- AIX curses includes &lt;term.h&gt; and &lt;termios.h&gt;. Again, ncurses (and
- Solaris curses) do not.
+ <STRONG>o</STRONG> X/Open Curses's comments about <EM>term.h</EM> and <EM>termios.h</EM> may refer to
+ HP-UX and AIX.
- <STRONG>o</STRONG> X/Open says that &lt;curses.h&gt; <EM>may</EM> include &lt;term.h&gt;, but there is no
- requirement that it do that.
+ HP-UX <EM>curses</EM> includes <EM>term.h</EM> from <EM>curses.h</EM> to declare <EM>setupterm</EM> in
+ <EM>curses.h</EM>, but <EM>ncurses</EM> and Solaris <EM>curses</EM> do not.
- Some programs use functions declared in both &lt;curses.h&gt; and
- &lt;term.h&gt;, and must include both headers in the same module. Very
- old versions of AIX curses required including &lt;curses.h&gt; before
- including &lt;term.h&gt;.
+ AIX <EM>curses</EM> includes <EM>term.h</EM> and termios.h<EM>.</EM> Again, <EM>ncurses</EM> and
+ Solaris <EM>curses</EM> do not.
- Because ncurses header files include the headers needed to define
- datatypes used in the headers, ncurses header files can be included
- in any order. But for portability, you should include &lt;curses.h&gt;
- before &lt;term.h&gt;.
+ <STRONG>o</STRONG> X/Open Curses says that <EM>curses.h</EM> <STRONG>may</STRONG> include <EM>term.h</EM>, but does not
+ require it to do so.
- <STRONG>o</STRONG> X/Open Curses says <EM>"may</EM> <EM>make</EM> <EM>visible"</EM> because including a header
- file does not necessarily make all symbols in it visible (there are
- ifdef's to consider).
+ Some programs use functions declared in both <EM>curses.h</EM> and <EM>term.h</EM>,
+ and must include both header files in the same module. Very old
+ versions of AIX <EM>curses</EM> required inclusion of <EM>curses.h</EM> before
+ <EM>term.h</EM>.
- For instance, in ncurses &lt;wchar.h&gt; <EM>may</EM> be included if the proper
- symbol is defined, and if ncurses is configured for wide-character
- support. If the header is included, its symbols may be made
- visible. That depends on the value used for <STRONG>_XOPEN_SOURCE</STRONG> feature
- test macro.
+ The header files supplied by <EM>ncurses</EM> include the standard library
+ headers required for its declarations, so <EM>ncurses</EM>'s own header
+ files can be included in any order. But for portability, you
+ should include <EM>curses.h</EM> before <EM>term.h</EM>.
- <STRONG>o</STRONG> X/Open Curses documents one required header, in a special case:
- &lt;stdarg.h&gt; before &lt;curses.h&gt; to prototype the <STRONG>vw_printw</STRONG> and
- <STRONG>vw_scanw</STRONG> functions (as well as the obsolete the <STRONG>vwprintw</STRONG> and
- <STRONG>vwscanw</STRONG> functions). Each of those uses a <STRONG>va_list</STRONG> parameter.
+ <STRONG>o</STRONG> X/Open Curses says "may make visible" because including a header
+ file does not necessarily make visible all of the symbols in it
+ (consider <STRONG>#ifdef</STRONG> and similar).
- The two obsolete functions were introduced in SVr3. The other
- functions were introduced in X/Open Curses. In between, SVr4
- curses provided for the possibility that an application might
- include either &lt;varargs.h&gt; or &lt;stdarg.h&gt;. Initially, that was done
- by using <STRONG>void*</STRONG> for the <STRONG>va_list</STRONG> parameter. Later, a special type
- (defined in &lt;stdio.h&gt;) was introduced, to allow for compiler type-
- checking. That special type is always available, because &lt;stdio.h&gt;
- is always included by &lt;curses.h&gt;.
+ For instance, <EM>ncurses</EM>'s <EM>curses.h</EM> <STRONG>may</STRONG> include <EM>wchar.h</EM> if the proper
+ symbol is defined, and if <EM>ncurses</EM> is configured for wide-character
+ support. If <EM>wchar.h</EM> is included, its symbols <STRONG>may</STRONG> be made visible
+ depending on the value of the <STRONG>_XOPEN_SOURCE</STRONG> feature test macro.
- None of the X/Open Curses implementations require an application to
- include &lt;stdarg.h&gt; before &lt;curses.h&gt; because they either have
- allowed for a special type, or (like ncurses) include &lt;stdarg.h&gt;
- directly to provide a portable interface.
+ <STRONG>o</STRONG> X/Open Curses mandates an application's inclusion of one standard C
+ library header in a special case: <EM>stdarg.h</EM> before <EM>curses.h</EM> to
+ prototype the functions <EM>vw</EM><STRONG>_</STRONG><EM>printw</EM> and <EM>vw</EM><STRONG>_</STRONG><EM>scanw</EM> (as well as the
+ obsolete <EM>vwprintw</EM> and <EM>vwscanw</EM>). Each of these takes a variadic
+ argument list, a <EM>va</EM><STRONG>_</STRONG><EM>list</EM> parameter, like that of <STRONG>printf(3)</STRONG>.
+ SVr3 <EM>curses</EM> introduced the two obsolete functions, and X/Open
+ Curses the others. In between, SVr4 <EM>curses</EM> provided for the
+ possibility that an application might include either <EM>varargs.h</EM> or
+ <EM>stdarg.h</EM>. These represented contrasting approaches to handling
+ variadic argument lists. The older interface, <EM>varargs.h</EM>, used a
+ pointer to <EM>char</EM> for variadic functions' <EM>va</EM><STRONG>_</STRONG><EM>list</EM> parameter. Later,
+ the list acquired its own standard data type, <EM>va</EM><STRONG>_</STRONG><EM>list</EM>, defined in
+ <EM>stdarg.h</EM>, empowering the compiler to check the types of a function
+ call's actual parameters against the formal ones declared in its
+ prototype.
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- If standard output from a <STRONG>ncurses</STRONG> program is re-directed to something
- which is not a tty, screen updates will be directed to standard error.
- This was an undocumented feature of AT&amp;T System V Release 3 curses.
+ No conforming implementations of X/Open Curses require an
+ application to include <EM>stdarg.h</EM> before <EM>curses.h</EM> because they either
+ have allowed for a special type, or, like <EM>ncurses</EM>, they include
+ <EM>stdarg.h</EM> themselves to provide a portable interface.
</PRE><H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
- Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey. Based on pcurses
+ Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey. Based on <EM>pcurses</EM>
by Pavel Curtis.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>, <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>
+
- <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>
+
+ncurses 6.5 2024-04-27 <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -1484,18 +1484,19 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
<ul>
+<li><a href="#h3-Application-Structure">Application Structure</a></li>
+<li><a href="#h3-Overview">Overview</a></li>
<li><a href="#h3-Initialization">Initialization</a></li>
-<li><a href="#h3-Datatypes">Datatypes</a></li>
-<li><a href="#h3-Environment-variables">Environment variables</a></li>
-<li><a href="#h3-Routine-and-Argument-Names">Routine and Argument Names</a></li>
-<li><a href="#h3-Routine-Name-Index">Routine Name Index</a></li>
+<li><a href="#h3-Naming-Conventions">Naming Conventions</a></li>
+<li><a href="#h3-Wide-and-Non-wide-Character-Configurations">Wide and Non-wide Character Configurations</a></li>
+<li><a href="#h3-Function-Name-Index">Function Name Index</a></li>
</ul>
</li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
<li><a href="#h2-ENVIRONMENT">ENVIRONMENT</a>
<ul>
-<li><a href="#h3-CC-command-character">CC command-character</a></li>
<li><a href="#h3-BAUDRATE">BAUDRATE</a></li>
+<li><a href="#h3-CC-_command-character_">CC (command character)</a></li>
<li><a href="#h3-COLUMNS">COLUMNS</a></li>
<li><a href="#h3-ESCDELAY">ESCDELAY</a></li>
<li><a href="#h3-HOME">HOME</a></li>
@@ -1519,18 +1520,17 @@
</li>
<li><a href="#h2-ALTERNATE-CONFIGURATIONS">ALTERNATE CONFIGURATIONS</a></li>
<li><a href="#h2-FILES">FILES</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
+<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-EXTENSIONS">EXTENSIONS</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a>
<ul>
-<li><a href="#h3-Error-checking">Error checking</a></li>
-<li><a href="#h3-Extensions-versus-portability">Extensions versus portability</a></li>
-<li><a href="#h3-Padding-differences">Padding differences</a></li>
-<li><a href="#h3-Header-files">Header files</a></li>
+<li><a href="#h3-Error-Checking">Error Checking</a></li>
+<li><a href="#h3-Padding-Differences">Padding Differences</a></li>
+<li><a href="#h3-Header-Files">Header Files</a></li>
</ul>
</li>
-<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/ncurses6-config.1.html b/doc/html/man/ncurses6-config.1.html
deleted file mode 100644
index e2678b28eb26..000000000000
--- a/doc/html/man/ncurses6-config.1.html
+++ /dev/null
@@ -1,132 +0,0 @@
-<!--
- ****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
- * Copyright 2010 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: MKncu_config.in,v 1.4 2020/02/02 23:34:34 tom Exp @
--->
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<HTML>
-<HEAD>
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
-<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>ncurses6-config 1</TITLE>
-<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</HEAD>
-<BODY>
-<H1 class="no-header">ncurses6-config 1</H1>
-<PRE>
-<STRONG><A HREF="ncurses6-config.1.html">ncurses6-config(1)</A></STRONG> General Commands Manual <STRONG><A HREF="ncurses6-config.1.html">ncurses6-config(1)</A></STRONG>
-
-
-
-
-</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- ncurses6-config - helper script for ncurses libraries
-
-
-</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
- <STRONG>ncurses6-config</STRONG> [<EM>options</EM>]
-
-
-</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- This is a shell script which simplifies configuring applications
- against a particular set of ncurses libraries.
-
-
-</PRE><H2><a name="h2-OPTIONS">OPTIONS</a></H2><PRE>
- <STRONG>--prefix</STRONG>
- echos the package-prefix of ncurses
-
- <STRONG>--exec-prefix</STRONG>
- echos the executable-prefix of ncurses
-
- <STRONG>--cflags</STRONG>
- echos the C compiler flags needed to compile with ncurses
-
- <STRONG>--libs</STRONG> echos the libraries needed to link with ncurses
-
- <STRONG>--version</STRONG>
- echos the release+patchdate version of ncurses
-
- <STRONG>--abi-version</STRONG>
- echos the ABI version of ncurses
-
- <STRONG>--mouse-version</STRONG>
- echos the mouse-interface version of ncurses
-
- <STRONG>--bindir</STRONG>
- echos the directory containing ncurses programs
-
- <STRONG>--datadir</STRONG>
- echos the directory containing ncurses data
-
- <STRONG>--includedir</STRONG>
- echos the directory containing ncurses header files
-
- <STRONG>--libdir</STRONG>
- echos the directory containing ncurses libraries
-
- <STRONG>--mandir</STRONG>
- echos the directory containing ncurses manpages
-
- <STRONG>--terminfo</STRONG>
- echos the $TERMINFO terminfo database path, e.g.,
- /usr/share/terminfo
-
- <STRONG>--terminfo-dirs</STRONG>
- echos the $TERMINFO_DIRS directory list, e.g.,
- /usr/share/terminfo
-
- <STRONG>--termpath</STRONG>
- echos the $TERMPATH termcap list, if support for termcap is
- configured.
-
- <STRONG>--help</STRONG> prints this message
-
-
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>
-
- This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210109).
-
-
-
- <STRONG><A HREF="ncurses6-config.1.html">ncurses6-config(1)</A></STRONG>
-</PRE>
-<div class="nav">
-<ul>
-<li><a href="#h2-NAME">NAME</a></li>
-<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
-<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
-<li><a href="#h2-OPTIONS">OPTIONS</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-</ul>
-</div>
-</BODY>
-</HTML>
diff --git a/doc/html/man/ncursesw6-config.1.html b/doc/html/man/ncursesw6-config.1.html
new file mode 100644
index 000000000000..6380a6dda3b7
--- /dev/null
+++ b/doc/html/man/ncursesw6-config.1.html
@@ -0,0 +1,127 @@
+<!--
+ ****************************************************************************
+ * Copyright 2020-2023,2024 Thomas E. Dickey *
+ * Copyright 2010 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: MKncu_config.in,v 1.24 2024/04/20 21:13:38 tom Exp @
+-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<HTML>
+<HEAD>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
+<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
+<TITLE>ncursesw6-config 1 2024-04-20 ncurses 6.5 User commands</TITLE>
+<link rel="author" href="mailto:bug-ncurses@gnu.org">
+
+</HEAD>
+<BODY>
+<H1 class="no-header">ncursesw6-config 1 2024-04-20 ncurses 6.5 User commands</H1>
+<PRE>
+<STRONG><A HREF="ncursesw6-config.1.html">ncursesw6-config(1)</A></STRONG> User commands <STRONG><A HREF="ncursesw6-config.1.html">ncursesw6-config(1)</A></STRONG>
+
+
+
+
+</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
+ <STRONG>ncursesw6-config</STRONG> - configuration helper for <EM>ncurses</EM> libraries
+
+
+</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
+ <STRONG>ncursesw6-config</STRONG> <EM>option</EM> ...
+
+ <STRONG>ncursesw6-config</STRONG> <STRONG>--version</STRONG>
+
+ <STRONG>ncursesw6-config</STRONG> <STRONG>--help</STRONG>
+
+
+</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
+ This program development aid simplifies the process of configuring
+ applications against a particular set of <EM>ncurses</EM> libraries.
+
+
+</PRE><H2><a name="h2-OPTIONS">OPTIONS</a></H2><PRE>
+ <STRONG>--prefix</STRONG> reports the package prefix of <EM>ncurses</EM>.
+
+ <STRONG>--exec-prefix</STRONG> reports the executable prefix of <EM>ncurses</EM>.
+
+ <STRONG>--cflags</STRONG> reports the C compiler flags needed to compile with
+ <EM>ncurses</EM>.
+
+ <STRONG>--libs</STRONG> reports the libraries needed to link with <EM>ncurses</EM>.
+
+ <STRONG>--abi-version</STRONG> reports the ABI version of <EM>ncurses</EM>.
+
+ <STRONG>--mouse-version</STRONG> reports the mouse-interface version of <EM>ncurses</EM>.
+
+ <STRONG>--bindir</STRONG> reports the directory containing <EM>ncurses</EM> programs.
+
+ <STRONG>--datadir</STRONG> reports the directory containing <EM>ncurses</EM> data.
+
+ <STRONG>--includedir</STRONG> reports the directory containing <EM>ncurses</EM> header
+ files.
+
+ <STRONG>--libdir</STRONG> reports the directory containing <EM>ncurses</EM> libraries.
+
+ <STRONG>--mandir</STRONG> reports the directory containing <EM>ncurses</EM> man pages.
+
+ <STRONG>--terminfo</STRONG> reports the <EM>TERMINFO</EM> <EM>terminfo</EM> database path, for
+ example <EM>/usr/share/terminfo</EM>.
+
+ <STRONG>--terminfo-dirs</STRONG> reports the <EM>TERMINFO</EM><STRONG>_</STRONG><EM>DIRS</EM> supplemental search path
+ for the <EM>terminfo</EM> database, for example
+ <EM>/usr/share/terminfo</EM>.
+
+ <STRONG>--termpath</STRONG> reports the <EM>TERMPATH</EM> supplemental search path for the
+ <EM>termcap</EM> database, if support for <EM>termcap</EM> is
+ configured.
+
+ The following options cause all others to be ignored.
+
+ <STRONG>--help</STRONG> issues a usage message and exits successfully.
+
+ <STRONG>--version</STRONG> issues the release and patch date information of <EM>ncurses</EM> and
+ exits successfully.
+
+
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>
+
+
+
+ncurses 6.5 2024-04-20 <STRONG><A HREF="ncursesw6-config.1.html">ncursesw6-config(1)</A></STRONG>
+</PRE>
+<div class="nav">
+<ul>
+<li><a href="#h2-NAME">NAME</a></li>
+<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
+<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
+<li><a href="#h2-OPTIONS">OPTIONS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
+</ul>
+</div>
+</BODY>
+</HTML>
diff --git a/doc/html/man/new_pair.3x.html b/doc/html/man/new_pair.3x.html
index 28c9988c7938..3cc73d6f3e29 100644
--- a/doc/html/man/new_pair.3x.html
+++ b/doc/html/man/new_pair.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,27 +28,28 @@
* authorization. *
****************************************************************************
* Author: Thomas E. Dickey
- * @Id: new_pair.3x,v 1.15 2020/10/17 23:54:50 tom Exp @
+ * @Id: new_pair.3x,v 1.46 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>new_pair 3x</TITLE>
+<TITLE>new_pair 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">new_pair 3x</H1>
+<H1 class="no-header">new_pair 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="new_pair.3x.html">new_pair(3x)</A></STRONG> <STRONG><A HREF="new_pair.3x.html">new_pair(3x)</A></STRONG>
+<STRONG><A HREF="new_pair.3x.html">new_pair(3x)</A></STRONG> Library calls <STRONG><A HREF="new_pair.3x.html">new_pair(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>alloc_pair</STRONG>, <STRONG>find_pair</STRONG>, <STRONG>free_pair</STRONG> - new curses color-pair functions
+ <STRONG>alloc_pair</STRONG>, <STRONG>find_pair</STRONG>, <STRONG>free_pair</STRONG> - dynamically allocate <EM>curses</EM> color
+ pairs
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -60,31 +61,31 @@
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- These functions are an extension to the curses library. They permit an
- application to dynamically allocate a color pair using the
- foreground/background colors rather than assign a fixed color pair
+ These functions are an extension to the <EM>curses</EM> library. They permit an
+ application to dynamically allocate a color pair using the
+ foreground/background colors rather than assign a fixed color pair
number, and return an unused pair to the pool.
- The number of colors may be related to the number of possible color
+ The number of colors may be related to the number of possible color
pairs for a given terminal, or it may not:
- <STRONG>o</STRONG> While almost all terminals allow setting the color <EM>attributes</EM>
- independently, it is unlikely that your terminal allows you to
- modify the attributes of a given character cell without rewriting
+ <STRONG>o</STRONG> While almost all terminals allow setting the color <EM>attributes</EM>
+ independently, it is unlikely that your terminal allows you to
+ modify the attributes of a given character cell without rewriting
it. That is, the foreground and background colors are applied as a
pair.
- <STRONG>o</STRONG> Color pairs are the curses library's way of managing a color
- palette on a terminal. If the library does not keep track of the
+ <STRONG>o</STRONG> Color pairs are the <EM>curses</EM> library's way of managing a color
+ palette on a terminal. If the library does not keep track of the
<EM>combinations</EM> of colors which are displayed, it will be inefficient.
- <STRONG>o</STRONG> For simple terminal emulators with only a few dozen color
- combinations, it is convenient to use the maximum number of
+ <STRONG>o</STRONG> For simple terminal emulators with only a few dozen color
+ combinations, it is convenient to use the maximum number of
combinations as the limit on color pairs:
<STRONG>COLORS</STRONG> <EM>*</EM> <STRONG>COLORS</STRONG>
- <STRONG>o</STRONG> Terminals which support <EM>default</EM> <EM>colors</EM> distinct from "ANSI colors"
+ <STRONG>o</STRONG> Terminals which support <EM>default</EM> <EM>colors</EM> distinct from "ANSI colors"
add to the possible combinations, producing this total:
<EM>(</EM> <STRONG>COLORS</STRONG> <EM>+</EM> <EM>1</EM> <EM>)</EM> <EM>*</EM> <EM>(</EM> <STRONG>COLORS</STRONG> <EM>+</EM> <EM>1</EM> <EM>)</EM>
@@ -92,43 +93,43 @@
<STRONG>o</STRONG> An application might use up to a few dozen color pairs to implement
a predefined color scheme.
- Beyond that lies in the realm of programs using the foreground and
- background colors for "ASCII art" (or some other non-textual
+ Beyond that lies in the realm of programs using the foreground and
+ background colors for "ASCII art" (or some other non-textual
application).
Also beyond those few dozen pairs, the required size for a table to
- represent the combinations grows rapidly with an increasing number
+ represent the combinations grows rapidly with an increasing number
of colors.
- These functions allow a developer to let the screen library manage
+ These functions allow a developer to let the screen library manage
color pairs.
</PRE><H3><a name="h3-alloc_pair">alloc_pair</a></H3><PRE>
- The <STRONG>alloc_pair</STRONG> function accepts parameters for foreground and
- background color, and checks if that color combination is already
+ The <STRONG>alloc_pair</STRONG> function accepts parameters for foreground and
+ background color, and checks if that color combination is already
associated with a color pair.
- <STRONG>o</STRONG> If the combination already exists, <STRONG>alloc_pair</STRONG> returns the existing
+ <STRONG>o</STRONG> If the combination already exists, <STRONG>alloc_pair</STRONG> returns the existing
pair.
<STRONG>o</STRONG> If the combination does not exist, <STRONG>alloc_pair</STRONG> allocates a new color
pair and returns that.
- <STRONG>o</STRONG> If the table fills up, <STRONG>alloc_pair</STRONG> discards the least-recently
+ <STRONG>o</STRONG> If the table fills up, <STRONG>alloc_pair</STRONG> discards the least-recently
allocated entry using <STRONG>free_pair</STRONG> and allocates a new color pair.
- All of the color pairs are allocated from a table of possible color
- pairs. The size of the table is determined by the terminfo <EM>pairs</EM>
- capability. The table is shared with <STRONG>init_pair</STRONG>; in fact <STRONG>alloc_pair</STRONG>
- calls <STRONG>init_pair</STRONG> after updating the ncurses library's fast index to the
+ All of the color pairs are allocated from a table of possible color
+ pairs. The size of the table is determined by the terminfo <STRONG>pairs</STRONG>
+ capability. The table is shared with <STRONG>init_pair</STRONG>; in fact <STRONG>alloc_pair</STRONG>
+ calls <STRONG>init_pair</STRONG> after updating the <EM>ncurses</EM> library's fast index to the
colors versus color pairs.
</PRE><H3><a name="h3-find_pair">find_pair</a></H3><PRE>
The <STRONG>find_pair</STRONG> function accepts parameters for foreground and background
- color, and checks if that color combination is already associated with
- a color pair, returning the pair number if it has been allocated.
+ color, and checks if that color combination is already associated with
+ a color pair, returning the pair number if it has been allocated.
Otherwise it returns -1.
@@ -137,34 +138,34 @@
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- The <STRONG>alloc_pair</STRONG> function returns a color pair number in the range 1
- through <STRONG>COLOR_PAIRS</STRONG>-1, unless it encounters an error updating its fast
- index to the color pair values, preventing it from allocating a color
+ The <STRONG>alloc_pair</STRONG> function returns a color pair number in the range 1
+ through <STRONG>COLOR_PAIRS</STRONG>-1, unless it encounters an error updating its fast
+ index to the color pair values, preventing it from allocating a color
pair. In that case, it returns -1.
- The <STRONG>find_pair</STRONG> function returns a color pair number if the given color
+ The <STRONG>find_pair</STRONG> function returns a color pair number if the given color
combination has been associated with a color pair, or -1 if not.
- Likewise, <STRONG>free_pair</STRONG> returns <STRONG>OK</STRONG> unless it encounters an error updating
+ Likewise, <STRONG>free_pair</STRONG> returns <STRONG>OK</STRONG> unless it encounters an error updating
the fast index or if no such color pair is in use.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines are specific to ncurses. They were not supported on
+ These routines are specific to <EM>ncurses</EM>. They were not supported on
Version 7, BSD or System V implementations. It is recommended that any
- code depending on them be conditioned using NCURSES_VERSION.
+ code depending on them be conditioned using <STRONG>NCURSES_VERSION</STRONG>.
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>.
+</PRE><H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
+ Thomas Dickey
-</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
- Thomas Dickey.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
- <STRONG><A HREF="new_pair.3x.html">new_pair(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="new_pair.3x.html">new_pair(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -179,8 +180,8 @@
</li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
+<li><a href="#h2-AUTHORS">AUTHORS</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-AUTHOR">AUTHOR</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/panel.3x.html b/doc/html/man/panel.3x.html
index df93d91550db..58ad42d26efe 100644
--- a/doc/html/man/panel.3x.html
+++ b/doc/html/man/panel.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,51 +27,32 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: panel.3x,v 1.39 2020/02/15 21:06:40 tom Exp @
- * ---------
- * ---------
- * ---------
- * ---------
- * ---------
- * ---------
- * ---------
- * ---------
- * ---------
- * ---------
- * ---------
- * ---------
- * ---------
- * ---------
- * ---------
- * ---------
- * ---------
+ * @Id: panel.3x,v 1.63 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>panel 3x</TITLE>
+<TITLE>panel 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">panel 3x</H1>
+<H1 class="no-header">panel 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="panel.3x.html">panel(3x)</A></STRONG> <STRONG><A HREF="panel.3x.html">panel(3x)</A></STRONG>
+<STRONG><A HREF="panel.3x.html">panel(3x)</A></STRONG> Library calls <STRONG><A HREF="panel.3x.html">panel(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- panel - panel stack extension for curses
+ panel - panel stack extension for <EM>curses</EM>
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
<STRONG>#include</STRONG> <STRONG>&lt;panel.h&gt;</STRONG>
- <STRONG>cc</STRONG> <STRONG>[flags]</STRONG> <STRONG>sourcefiles</STRONG> <STRONG>-lpanel</STRONG> <STRONG>-lncurses</STRONG>
-
<STRONG>PANEL</STRONG> <STRONG>*new_panel(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>bottom_panel(PANEL</STRONG> <STRONG>*</STRONG><EM>pan</EM><STRONG>);</STRONG>
@@ -93,25 +74,25 @@
<STRONG>int</STRONG> <STRONG>del_panel(PANEL</STRONG> <STRONG>*</STRONG><EM>pan</EM><STRONG>);</STRONG>
- /* ncurses-extensions */
+ <EM>/*</EM> <EM>ncurses</EM> <EM>extensions</EM> <EM>*/</EM>
<STRONG>PANEL</STRONG> <STRONG>*ground_panel(SCREEN</STRONG> <STRONG>*</STRONG><EM>sp</EM><STRONG>);</STRONG>
<STRONG>PANEL</STRONG> <STRONG>*ceiling_panel(SCREEN</STRONG> <STRONG>*</STRONG><EM>sp</EM><STRONG>);</STRONG>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- Panels are <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> windows with the added feature of depth. Panel
- functions allow the use of stacked windows and ensure the proper
- portions of each window and the curses <STRONG>stdscr</STRONG> window are hidden or
- displayed when panels are added, moved, modified or removed. The set
+ Panels are <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> windows with the added property of depth. Panel
+ functions allow the use of stacked windows and ensure that the proper
+ portions of each window and the <EM>curses</EM> <STRONG>stdscr</STRONG> window are hidden or
+ displayed when panels are added, moved, modified, or removed. The set
of currently visible panels is the stack of panels. The <STRONG>stdscr</STRONG> window
is beneath all panels, and is not considered part of the stack.
- A window is associated with every panel. The panel routines enable you
- to create, move, hide, and show panels, as well as position a panel at
- any desired location in the stack.
+ A window is associated with each panel. The panel routines enable you
+ to create, move, hide, and show panels. You can relocate a panel to
+ any desired position in the stack.
- Panel routines are a functional layer added to <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, make only
- high-level curses calls, and work anywhere terminfo curses does.
+ Panel routines are a functional layer added to <EM>curses</EM>, make only high-
+ level <EM>curses</EM> calls, and work anywhere <EM>curses</EM> does.
</PRE><H2><a name="h2-FUNCTIONS">FUNCTIONS</a></H2><PRE>
@@ -121,52 +102,52 @@
</PRE><H3><a name="h3-ceiling_panel">ceiling_panel</a></H3><PRE>
- <STRONG>ceiling_panel(</STRONG><EM>sp</EM><STRONG>)</STRONG> acts like <STRONG>panel_below(NULL)</STRONG>, for the given <STRONG>SCREEN</STRONG> <EM>sp</EM>.
+ <STRONG>ceiling_panel(</STRONG><EM>sp</EM><STRONG>)</STRONG> acts like <STRONG>panel_below(NULL)</STRONG> for the given <EM>SCREEN</EM> <EM>sp</EM>.
</PRE><H3><a name="h3-del_panel">del_panel</a></H3><PRE>
- <STRONG>del_panel(</STRONG><EM>pan</EM><STRONG>)</STRONG> removes the given panel <EM>pan</EM> from the stack and
- deallocates the <STRONG>PANEL</STRONG> structure (but not its associated window).
+ <STRONG>del_panel(</STRONG><EM>pan</EM><STRONG>)</STRONG> removes the given panel <EM>pan</EM> from the stack and
+ deallocates the <EM>PANEL</EM> structure (but not its associated window).
</PRE><H3><a name="h3-ground_panel">ground_panel</a></H3><PRE>
- <STRONG>ground_panel(</STRONG><EM>sp</EM><STRONG>)</STRONG> acts like <STRONG>panel_above(NULL)</STRONG>, for the given <STRONG>SCREEN</STRONG> <EM>sp</EM>.
+ <STRONG>ground_panel(</STRONG><EM>sp</EM><STRONG>)</STRONG> acts like <STRONG>panel_above(NULL)</STRONG> for the given <EM>SCREEN</EM> <EM>sp</EM>.
</PRE><H3><a name="h3-hide_panel">hide_panel</a></H3><PRE>
<STRONG>hide_panel(</STRONG><EM>pan</EM><STRONG>)</STRONG> removes the given panel <EM>pan</EM> from the panel stack and
- thus hides it from view. The <STRONG>PANEL</STRONG> structure is not lost, merely
+ thus hides it from view. The <EM>PANEL</EM> structure is not lost, merely
removed from the stack.
</PRE><H3><a name="h3-move_panel">move_panel</a></H3><PRE>
- <STRONG>move_panel(</STRONG><EM>pan</EM><STRONG>,</STRONG><EM>starty</EM><STRONG>,</STRONG><EM>startx</EM><STRONG>)</STRONG> moves the given panel <EM>pan</EM>'s window so
+ <STRONG>move_panel(</STRONG><EM>pan</EM><STRONG>,</STRONG> <EM>starty</EM><STRONG>,</STRONG> <EM>startx</EM><STRONG>)</STRONG> moves the given panel <EM>pan</EM>'s window so
that its upper-left corner is at <EM>starty</EM>, <EM>startx</EM>. It does not change
the position of the panel in the stack. Be sure to use this function,
not <STRONG><A HREF="curs_window.3x.html">mvwin(3x)</A></STRONG>, to move a panel window.
</PRE><H3><a name="h3-new_panel">new_panel</a></H3><PRE>
- <STRONG>new_panel(</STRONG><EM>win</EM><STRONG>)</STRONG> allocates a <STRONG>PANEL</STRONG> structure, associates it with <EM>win</EM>,
- places the panel on the top of the stack (causes it to be displayed
+ <STRONG>new_panel(</STRONG><EM>win</EM><STRONG>)</STRONG> allocates a <EM>PANEL</EM> structure, associates it with <EM>win</EM>,
+ places the panel on the top of the stack (causes it to be displayed
above any other panel) and returns a pointer to the new panel.
</PRE><H3><a name="h3-panel_above">panel_above</a></H3><PRE>
<STRONG>panel_above(</STRONG><EM>pan</EM><STRONG>)</STRONG> returns a pointer to the panel above <EM>pan</EM>. If the
- panel argument is <STRONG>(PANEL</STRONG> <STRONG>*)0</STRONG>, it returns a pointer to the bottom panel
- in the stack.
+ panel argument is "<STRONG>(PANEL</STRONG> <STRONG>*)0</STRONG>", it returns a pointer to the bottom
+ panel in the stack.
</PRE><H3><a name="h3-panel_below">panel_below</a></H3><PRE>
<STRONG>panel_below(</STRONG><EM>pan</EM><STRONG>)</STRONG> returns a pointer to the panel just below <EM>pan</EM>. If the
- panel argument is <STRONG>(PANEL</STRONG> <STRONG>*)0</STRONG>, it returns a pointer to the top panel in
- the stack.
+ panel argument is "<STRONG>(PANEL</STRONG> <STRONG>*)0</STRONG>", it returns a pointer to the top panel
+ in the stack.
</PRE><H3><a name="h3-panel_hidden">panel_hidden</a></H3><PRE>
- <STRONG>panel_hidden(</STRONG><EM>pan</EM><STRONG>)</STRONG> returns <STRONG>TRUE</STRONG> if the panel <EM>pan</EM> is in the panel stack,
- <STRONG>FALSE</STRONG> if it is not. If the panel is a null pointer, return <STRONG>ERR</STRONG>.
+ <STRONG>panel_hidden(</STRONG><EM>pan</EM><STRONG>)</STRONG> returns <STRONG>FALSE</STRONG> if the panel <EM>pan</EM> is in the panel stack,
+ and <STRONG>TRUE</STRONG> if it is not. If the panel is a null pointer, it returns <STRONG>ERR</STRONG>.
</PRE><H3><a name="h3-panel_userptr">panel_userptr</a></H3><PRE>
@@ -179,89 +160,87 @@
</PRE><H3><a name="h3-replace_panel">replace_panel</a></H3><PRE>
- <STRONG>replace_panel(</STRONG><EM>pan</EM><STRONG>,</STRONG><EM>window</EM><STRONG>)</STRONG> replaces the current window of panel <EM>pan</EM> with
- <EM>window</EM> This is useful, for example if you want to resize a panel. In
- <STRONG>ncurses</STRONG>, you can call <STRONG>replace_panel</STRONG> to resize a panel using a window
+ <STRONG>replace_panel(</STRONG><EM>pan</EM><STRONG>,</STRONG> <EM>window</EM><STRONG>)</STRONG> replaces the current window of panel <EM>pan</EM>
+ with <EM>window</EM> This is useful if, for example, you want to resize a panel.
+ In <EM>ncurses</EM>, you can call <STRONG>replace_panel</STRONG> to resize a panel using a window
resized with <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>. It does not change the position of the panel
in the stack.
</PRE><H3><a name="h3-set_panel_userptr">set_panel_userptr</a></H3><PRE>
- <STRONG>set_panel_userptr(</STRONG><EM>pan</EM><STRONG>,</STRONG><EM>ptr</EM><STRONG>)</STRONG> sets the panel's user pointer.
+ <STRONG>set_panel_userptr(</STRONG><EM>pan</EM><STRONG>,</STRONG> <EM>ptr</EM><STRONG>)</STRONG> sets the panel's user pointer.
</PRE><H3><a name="h3-show_panel">show_panel</a></H3><PRE>
<STRONG>show_panel(</STRONG><EM>pan</EM><STRONG>)</STRONG> makes a hidden panel visible by placing it on top of
- the panels in the panel stack. See <STRONG>COMPATIBILITY</STRONG> below.
+ the panels in the panel stack. See "PORTABILITY" below.
</PRE><H3><a name="h3-top_panel">top_panel</a></H3><PRE>
<STRONG>top_panel(</STRONG><EM>pan</EM><STRONG>)</STRONG> puts the given visible panel <EM>pan</EM> on top of all panels in
- the stack. See <STRONG>COMPATIBILITY</STRONG> below.
+ the stack. See "PORTABILITY" below.
</PRE><H3><a name="h3-update_panels">update_panels</a></H3><PRE>
- <STRONG>update_panels()</STRONG> refreshes the <EM>virtual</EM> <EM>screen</EM> to reflect the relations
+ <STRONG>update_panels()</STRONG> refreshes the virtual screen to reflect the relations
between the panels in the stack, but does not call <STRONG><A HREF="curs_refresh.3x.html">doupdate(3x)</A></STRONG> to
- refresh the <EM>physical</EM> <EM>screen</EM>. Use this function and not <STRONG><A HREF="curs_refresh.3x.html">wrefresh(3x)</A></STRONG> or
+ refresh the physical screen. Use this function and not <STRONG><A HREF="curs_refresh.3x.html">wrefresh(3x)</A></STRONG> or
<STRONG><A HREF="curs_refresh.3x.html">wnoutrefresh(3x)</A></STRONG>.
<STRONG>update_panels</STRONG> may be called more than once before a call to <STRONG>doupdate</STRONG>,
- but <STRONG>doupdate</STRONG> is the function responsible for updating the <EM>physical</EM>
- <EM>screen</EM>.
+ but <STRONG>doupdate</STRONG> is the function responsible for updating the physical
+ screen.
-</PRE><H2><a name="h2-DIAGNOSTICS">DIAGNOSTICS</a></H2><PRE>
+</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
Each routine that returns a pointer returns <STRONG>NULL</STRONG> if an error occurs.
Each routine that returns an int value returns <STRONG>OK</STRONG> if it executes
successfully and <STRONG>ERR</STRONG> if not.
Except as noted, the <EM>pan</EM> and <EM>window</EM> parameters must be non-null. If
- those are null, an error is returned.
+ either is null, an error is returned.
- The <STRONG>move_panel</STRONG> function uses <STRONG><A HREF="curs_window.3x.html">mvwin(3x)</A></STRONG>, and will return an error if
- <STRONG>mvwin</STRONG> returns an error.
+ The <STRONG>move_panel</STRONG> function uses <STRONG><A HREF="curs_window.3x.html">mvwin(3x)</A></STRONG>, and returns an error if <STRONG>mvwin</STRONG>
+ returns an error.
-</PRE><H2><a name="h2-COMPATIBILITY">COMPATIBILITY</a></H2><PRE>
- Reasonable care has been taken to ensure compatibility with the
- native panel facility introduced in System V (inspection of the SVr4
- manual pages suggests the programming interface is unchanged). The
- <STRONG>PANEL</STRONG> data structures are merely similar. The programmer is
- cautioned not to directly use <STRONG>PANEL</STRONG> fields.
+</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
+ The header file <EM>panel.h</EM> itself includes the header file <EM>curses.h</EM>.
+
+
+</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
+ Reasonable care has been taken to ensure compatibility with the native
+ panel facility introduced in System V; inspection of the SVr4 manual
+ pages suggests the programming interface never changed. The <EM>PANEL</EM> data
+ structures are merely similar. The programmer is cautioned not to
+ directly use <EM>PANEL</EM> fields.
The functions <STRONG>show_panel</STRONG> and <STRONG>top_panel</STRONG> are identical in this
implementation, and work equally well with displayed or hidden panels.
- In the native System V implementation, <STRONG>show_panel</STRONG> is intended for
- making a hidden panel visible (at the top of the stack) and <STRONG>top_panel</STRONG>
- is intended for making an already-visible panel move to the top of the
+ In the System V implementation, <STRONG>show_panel</STRONG> is intended for making a
+ hidden panel visible (at the top of the stack) and <STRONG>top_panel</STRONG> is
+ intended for making an already-visible panel move to the top of the
stack. You are cautioned to use the correct function to ensure
- compatibility with native panel libraries.
-
+ compatibility with System V panel libraries.
-</PRE><H2><a name="h2-NOTE">NOTE</a></H2><PRE>
- In your library list, libpanel.a should be before libncurses.a; that
- is, you should say "-lpanel -lncurses", not the other way around (which
- would give a link-error with static libraries).
-
-</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- The panel facility was documented in SVr4.2 in <EM>Character</EM> <EM>User</EM> <EM>Interface</EM>
- <EM>Programming</EM> <EM>(UNIX</EM> <EM>SVR4.2)</EM>.
+</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
+ A panel facility was documented in SVr4.2's <EM>Character</EM> <EM>User</EM> <EM>Interface</EM>
+ <EM>Programming</EM> document.
It is not part of X/Open Curses.
A few implementations exist:
- <STRONG>o</STRONG> Systems based on SVr4 source code, e.g., Solaris, provide this
+ <STRONG>o</STRONG> Systems based on SVr4 source code, such as Solaris, provide this
library.
- <STRONG>o</STRONG> <STRONG>ncurses</STRONG> (since version 0.6 in 1993) and <STRONG>PDCurses</STRONG> (since version 2.2
- in 1995) provide a panel library whose common ancestor was a public
+ <STRONG>o</STRONG> <EM>ncurses</EM> (since version 0.6 in 1993) and <EM>PDCurses</EM> (since version 2.2
+ in 1995) provide a panel library whose common ancestor is a public
domain implementation by Warren Tucker published in <EM>u386mon</EM> 2.20
(1990).
- According to Tucker, the SystemV panel library was first released
+ According to Tucker, the System V panel library was first released
in SVr3.2 (1988), and his implementation helped with a port to
SVr3.1 (1987).
@@ -269,33 +248,25 @@
the same as Tucker's implementation.
<STRONG>o</STRONG> NetBSD 8 (2018) has a panel library begun by Valery Ushakov in
- 2015. This is based on the AT&amp;T documentation.
-
-
-</PRE><H2><a name="h2-FILES">FILES</a></H2><PRE>
- panel.h interface for the panels library
+ 2015, based on the System V documentation.
- libpanel.a the panels library itself
+</PRE><H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
+ Warren Tucker &lt;wht@n4hgf.mt-park.ga.us&gt; originally wrote this
+ implementation, primarily to assist in porting <EM>u386mon</EM> to systems
+ without a native panel library.
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>,
-
- This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210109).
+ Zeyd ben-Halim repackaged it for <EM>ncurses</EM>.
+ Juergen Pfeifer and Thomas E. Dickey revised and improved the library.
-</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
- Originally written by Warren Tucker &lt;wht@n4hgf.mt-park.ga.us&gt;,
- primarily to assist in porting <EM>u386mon</EM> to systems without a native
- panels library.
- Repackaged for ncurses by Zeyd ben-Halim.
-
- Juergen Pfeifer and Thomas E. Dickey revised/improved the library.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>
- <STRONG><A HREF="panel.3x.html">panel(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="panel.3x.html">panel(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -323,13 +294,12 @@
<li><a href="#h3-update_panels">update_panels</a></li>
</ul>
</li>
-<li><a href="#h2-DIAGNOSTICS">DIAGNOSTICS</a></li>
-<li><a href="#h2-COMPATIBILITY">COMPATIBILITY</a></li>
-<li><a href="#h2-NOTE">NOTE</a></li>
+<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
+<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
-<li><a href="#h2-FILES">FILES</a></li>
+<li><a href="#h2-HISTORY">HISTORY</a></li>
+<li><a href="#h2-AUTHORS">AUTHORS</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-AUTHOR">AUTHOR</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/resizeterm.3x.html b/doc/html/man/resizeterm.3x.html
index 66b807d4edf5..23491462792c 100644
--- a/doc/html/man/resizeterm.3x.html
+++ b/doc/html/man/resizeterm.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2015,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,28 +28,28 @@
* authorization. *
****************************************************************************
* Author: Thomas E. Dickey 1996-on
- * @Id: resizeterm.3x,v 1.28 2020/10/17 23:55:41 tom Exp @
+ * @Id: resizeterm.3x,v 1.56 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>resizeterm 3x</TITLE>
+<TITLE>resizeterm 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">resizeterm 3x</H1>
+<H1 class="no-header">resizeterm 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG> <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>
+<STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG> Library calls <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>is_term_resized</STRONG>, <STRONG>resize_term</STRONG>, <STRONG>resizeterm</STRONG> - change the curses terminal
- size
+ <STRONG>is_term_resized</STRONG>, <STRONG>resize_term</STRONG>, <STRONG>resizeterm</STRONG> - manage the terminal
+ dimensions understood by <EM>curses</EM>
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -61,30 +61,62 @@
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- This is an extension to the curses library. It provides callers with a
- hook into the <STRONG>ncurses</STRONG> data to resize windows, primarily for use by
- programs running in an X Window terminal (e.g., xterm).
+ This is an extension to the <EM>curses</EM> library. It provides callers with a
+ hook into the <EM>ncurses</EM> data to resize windows, primarily for use by
+ programs running in an X Window terminal (e.g., xterm) when the
+ terminal's screen size is changed by the user:
+
+ <STRONG>o</STRONG> <EM>curses</EM> windows cannot extend outside the screen. If the terminal
+ is shrunk, <EM>curses</EM> windows must be shrunk to fit.
+
+ <STRONG>o</STRONG> If the terminal is stretched, rows and/or columns can be added to
+ existing windows. The added cells should match the current
+ attributes of the windows.
+
+ If the calling program has not set up a handler for <STRONG>SIGWINCH</STRONG> when it
+ initializes <EM>ncurses</EM> (e.g., using <STRONG><A HREF="curs_initscr.3x.html">initscr(3x)</A></STRONG> or <STRONG><A HREF="curs_initscr.3x.html">newterm(3x)</A></STRONG>), then
+ <EM>ncurses</EM> sets a handler for <STRONG>SIGWINCH</STRONG> which notifies the library when a
+ window-size event has occurred. The library checks for this
+ notification
+
+ <STRONG>o</STRONG> when reading input data,
+
+ <STRONG>o</STRONG> when implicitly resuming program mode (e.g., between <STRONG><A HREF="curs_initscr.3x.html">endwin(3x)</A></STRONG> and
+ <STRONG><A HREF="curs_refresh.3x.html">wrefresh(3x)</A></STRONG>), and
+
+ <STRONG>o</STRONG> when explicitly resuming program mode in <STRONG><A HREF="curs_terminfo.3x.html">restartterm(3x)</A></STRONG>.
+
+ When the library has found that the terminal's window-size has changed,
+ it calls <STRONG>resizeterm</STRONG> to update its data structures.
+ An application which establishes its own <STRONG>SIGWINCH</STRONG> handler can call
+ <STRONG>resizeterm</STRONG>, but in that case, the library will not see <STRONG>SIGWINCH</STRONG>, and
+ proper layout will rely upon the application.
+
+
+</PRE><H2><a name="h2-FUNCTIONS">FUNCTIONS</a></H2><PRE>
</PRE><H3><a name="h3-resizeterm">resizeterm</a></H3><PRE>
- The function <STRONG>resizeterm</STRONG> resizes the standard and current windows to the
- specified dimensions, and adjusts other bookkeeping data used by the
- <STRONG>ncurses</STRONG> library that record the window dimensions such as the <STRONG>LINES</STRONG> and
- <STRONG>COLS</STRONG> variables.
+ The function <STRONG>resizeterm</STRONG> resizes the standard and current windows (i.e.,
+ <STRONG>stdscr</STRONG> and <STRONG>curscr</STRONG>) to the specified dimensions, and adjusts other
+ bookkeeping data used by the <EM>ncurses</EM> library that record the window
+ dimensions such as the <STRONG>LINES</STRONG> and <STRONG>COLS</STRONG> variables.
</PRE><H3><a name="h3-resize_term">resize_term</a></H3><PRE>
- Most of the work is done by the inner function <STRONG>resize_term</STRONG>. The outer
- function <STRONG>resizeterm</STRONG> adds bookkeeping for the <STRONG>SIGWINCH</STRONG> handler, as well
- as repainting the soft-key area (see <STRONG><A HREF="curs_slk.3x.html">slk_touch(3x)</A></STRONG>).
+ Most of the work for <STRONG>resizeterm</STRONG> is done by the inner function
+ <STRONG>resize_term</STRONG>. The outer function <STRONG>resizeterm</STRONG> adds bookkeeping for the
+ <STRONG>SIGWINCH</STRONG> handler, as well as repainting the soft-key area (see
+ <STRONG><A HREF="curs_slk.3x.html">slk_touch(3x)</A></STRONG>).
- When resizing the windows, <STRONG>resize_term</STRONG> blank-fills the areas that are
- extended. The calling application should fill in these areas with
- appropriate data.
+ The <STRONG>resize_term</STRONG> function attempts to resize all windows. This helps
+ with simple applications. However:
- The <STRONG>resize_term</STRONG> function attempts to resize all windows. However, due
- to the calling convention of pads, it is not possible to resize these
- without additional interaction with the application.
+ <STRONG>o</STRONG> It is not possible to automatically resize pads.
+
+ <STRONG>o</STRONG> Applications which have complicated layouts should check for
+ <STRONG>KEY_RESIZE</STRONG> returned from <STRONG>wgetch</STRONG>, and adjust their layout, e.g.,
+ using <STRONG>wresize</STRONG> and <STRONG>mvwin</STRONG>, or by recreating the windows.
When resizing windows, <STRONG>resize_term</STRONG> recursively adjusts subwindows,
keeping them within the updated parent window's limits. If a top-level
@@ -112,11 +144,11 @@
them in a context where <STRONG>malloc</STRONG> or <STRONG>realloc</STRONG> may have been interrupted,
since it uses those functions.
- If ncurses is configured to supply its own <STRONG>SIGWINCH</STRONG> handler,
+ If <EM>ncurses</EM> is configured to supply its own <STRONG>SIGWINCH</STRONG> handler,
<STRONG>o</STRONG> on receipt of a <STRONG>SIGWINCH</STRONG>, the handler sets a flag
- <STRONG>o</STRONG> which is tested in <STRONG><A HREF="curs_getch.3x.html">wgetch(3x)</A></STRONG> and <STRONG>doupdate</STRONG>,
+ <STRONG>o</STRONG> which is tested in <STRONG><A HREF="curs_getch.3x.html">wgetch(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">doupdate(3x)</A></STRONG> and <STRONG><A HREF="curs_terminfo.3x.html">restartterm(3x)</A></STRONG>,
<STRONG>o</STRONG> in turn, calling the <STRONG>resizeterm</STRONG> function,
@@ -129,44 +161,45 @@
Calling <STRONG>resizeterm</STRONG> or <STRONG>resize_term</STRONG> directly from a signal handler is
unsafe. This indirect method is used to provide a safe way to
- resize the ncurses data structures.
+ resize the <EM>ncurses</EM> data structures.
- If the environment variables <STRONG>LINES</STRONG> or <STRONG>COLUMNS</STRONG> are set, this overrides
+ If the environment variables <EM>LINES</EM> or <EM>COLUMNS</EM> are set, this overrides
the library's use of the window size obtained from the operating
system. Thus, even if a <STRONG>SIGWINCH</STRONG> is received, no screen size change
may be recorded.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- It is possible to resize the screen with SVr4 curses, by
+ It is possible to resize the screen with SVr4 <EM>curses</EM>, by
- <STRONG>o</STRONG> exiting curses with <STRONG><A HREF="curs_initscr.3x.html">endwin(3x)</A></STRONG> and
+ <STRONG>o</STRONG> exiting <EM>curses</EM> with <STRONG><A HREF="curs_initscr.3x.html">endwin(3x)</A></STRONG> and
<STRONG>o</STRONG> resuming using <STRONG><A HREF="curs_refresh.3x.html">refresh(3x)</A></STRONG>.
Doing that clears the screen and is visually distracting.
- This extension of ncurses was introduced in mid-1995. It was adopted
- in NetBSD curses (2001) and PDCurses (2003).
+ This extension of <EM>ncurses</EM> was introduced in mid-1995. It was adopted
+ in NetBSD <EM>curses</EM> (2001) and PDCurses (2003).
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>.
+</PRE><H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
+ Thomas Dickey (from an equivalent function written in 1988 for BSD
+ <EM>curses</EM>)
-</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
- Thomas Dickey (from an equivalent function written in 1988 for BSD
- curses).
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>
- <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<li><a href="#h2-NAME">NAME</a></li>
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
-<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
+<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
+<li><a href="#h2-FUNCTIONS">FUNCTIONS</a>
<ul>
<li><a href="#h3-resizeterm">resizeterm</a></li>
<li><a href="#h3-resize_term">resize_term</a></li>
@@ -176,8 +209,8 @@
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
+<li><a href="#h2-AUTHORS">AUTHORS</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-AUTHOR">AUTHOR</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/scr_dump.5.html b/doc/html/man/scr_dump.5.html
index f1527c8b353e..a96342558ecb 100644
--- a/doc/html/man/scr_dump.5.html
+++ b/doc/html/man/scr_dump.5.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,31 +27,27 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: scr_dump.5,v 1.16 2020/02/02 23:34:34 tom Exp @
+ * @Id: scr_dump.5,v 1.46 2024/03/23 20:42:29 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>scr_dump 5</TITLE>
+<TITLE>scr_dump 5 2024-03-23 ncurses 6.5 File formats</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">scr_dump 5</H1>
+<H1 class="no-header">scr_dump 5 2024-03-23 ncurses 6.5 File formats</H1>
<PRE>
-<STRONG><A HREF="scr_dump.5.html">scr_dump(5)</A></STRONG> File Formats Manual <STRONG><A HREF="scr_dump.5.html">scr_dump(5)</A></STRONG>
+<STRONG><A HREF="scr_dump.5.html">scr_dump(5)</A></STRONG> File formats <STRONG><A HREF="scr_dump.5.html">scr_dump(5)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- scr_dump - format of curses screen-dumps.
-
-
-</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
- <STRONG>scr_dump</STRONG>
+ scr_dump - <EM>curses</EM> screen dump
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
@@ -110,67 +106,53 @@
<STRONG>o</STRONG> The ncurses6 <STRONG>getwin</STRONG> reads the legacy screen dumps from ncurses5.
-</PRE><H3><a name="h3-ncurses5-_legacy_">ncurses5 (legacy)</a></H3><PRE>
- The screen-dump feature was added to ncurses in June 1995. While there
+</PRE><H3><a name="h3-ncurses5-_Legacy_">ncurses5 (Legacy)</a></H3><PRE>
+ The screen-dump feature was added to <EM>ncurses</EM> in June 1995. While there
were fixes and improvements in succeeding years, the basic scheme was
unchanged:
- <STRONG>o</STRONG> The <STRONG>WINDOW</STRONG> structure was written in binary form.
+ <STRONG>o</STRONG> The <EM>WINDOW</EM> structure was written in binary form.
- <STRONG>o</STRONG> The <STRONG>WINDOW</STRONG> structure refers to lines of data, which were written as
- an array of binary data following the <STRONG>WINDOW</STRONG>.
+ <STRONG>o</STRONG> The <EM>WINDOW</EM> structure refers to lines of data, which were written as
+ an array of binary data following the <EM>WINDOW</EM>.
<STRONG>o</STRONG> When <STRONG>getwin</STRONG> restored the window, it would keep track of offsets
- into the array of line-data and adjust the <STRONG>WINDOW</STRONG> structure which
+ into the array of line-data and adjust the <EM>WINDOW</EM> structure which
was read back into memory.
- This is similar to Unix SystemV, but does not write a "magic number" to
- identify the file format.
+ This is similar to Unix System V, but does not write a "magic number"
+ to identify the file format.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- There is no standard format for <STRONG>putwin</STRONG>. This section gives a brief
- description of the existing formats.
+ There is no standard format for <EM>curses</EM> screen dumps. A brief survey of
+ the existing implementations follows.
</PRE><H3><a name="h3-X_Open-Curses">X/Open Curses</a></H3><PRE>
- Refer to <EM>X/Open</EM> <EM>Curses,</EM> <EM>Issue</EM> <EM>7</EM> (2009).
-
- X/Open's documentation for <EM>enhanced</EM> <EM>curses</EM> says only:
+ X/Open Curses, Issue 7 specifies little. It says (boldface emphasis
+ added)
- The <EM>getwin(</EM> <EM>)</EM> function reads window-related data stored in the file
- by <EM>putwin(</EM> <EM>)</EM>. The function then creates and initializes a new
+ "[t]he <EM>getwin()</EM> function reads window-related data stored in the
+ file by <EM>putwin()</EM>. The function then creates and initializes a new
window using that data.
- The <EM>putwin(</EM> <EM>)</EM> function writes all data associated with <EM>win</EM> into the
- <EM>stdio</EM> stream to which <EM>filep</EM> points, using an <STRONG>unspecified</STRONG> <STRONG>format</STRONG>.
- This information can be retrieved later using <EM>getwin(</EM> <EM>)</EM>.
+ The <EM>putwin()</EM> function writes all data associated with <EM>win</EM> into the
+ <EM>stdio</EM> stream to which <EM>filep</EM> points, using an <STRONG>unspecified</STRONG> <STRONG>format</STRONG>.
+ This information can be retrieved later using <EM>getwin()</EM>."
- In the mid-1990s when the X/Open Curses document was written, there
- were still systems using older, less capable curses libraries (aside
- from the BSD curses library which was not relevant to X/Open because it
- did not meet the criteria for <EM>base</EM> <EM>curses</EM>). The document explained the
- term "enhanced" as follows:
+ In the mid-1990s when the X/Open Curses document was written, there
+ were still System V systems using older, less capable <EM>curses</EM> libraries.
+ BSD <EM>curses</EM> was not relevant to X/Open because it did not meet the
+ criteria for base-level conformance; see <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>.
- <STRONG>o</STRONG> Shading is used to identify <EM>X/Open</EM> <EM>Enhanced</EM> <EM>Curses</EM> material,
- relating to interfaces included to provide enhanced capabilities
- for applications originally written to be compiled on systems
- based on the UNIX operating system. Therefore, the features
- described may not be present on systems that conform to <STRONG>XPG4</STRONG> <STRONG>or</STRONG>
- <STRONG>to</STRONG> <STRONG>earlier</STRONG> <STRONG>XPG</STRONG> <STRONG>releases</STRONG>. The relevant reference pages may
- provide additional or more specific portability warnings about
- use of the material.
- In the foregoing, emphasis was added to <STRONG>unspecified</STRONG> <STRONG>format</STRONG> and to <STRONG>XPG4</STRONG>
- <STRONG>or</STRONG> <STRONG>to</STRONG> <STRONG>earlier</STRONG> <STRONG>XPG</STRONG> <STRONG>releases</STRONG>, for clarity.
+</PRE><H3><a name="h3-System-V">System V</a></H3><PRE>
+ System V <EM>curses</EM> identified the file format by writing a "magic number"
+ at the beginning of the dump. The <EM>WINDOW</EM> data and the lines of text
+ follow, all in binary form.
-
-</PRE><H3><a name="h3-Unix-SystemV">Unix SystemV</a></H3><PRE>
- Unix SystemV curses identified the file format by writing a "magic
- number" at the beginning of the dump. The <STRONG>WINDOW</STRONG> data and the lines of
- text follow, all in binary form.
-
- The Solaris curses source has these definitions:
+ Solaris <EM>curses</EM> has the following definitions.
/* terminfo magic number */
#define MAGNUM 0432
@@ -180,86 +162,87 @@
#define SVR3_DUMP_MAGIC_NUMBER 0434
That is, the feature was likely introduced in SVr2 (1984), and improved
- in SVr3 (1987). The Solaris curses source has no magic number for SVr4
- (1989). Other operating systems (AIX and HPUX) use a magic number
- which would correspond to this definition:
+ in SVr3 (1987). Solaris <EM>curses</EM> has no magic number for SVr4 (1989).
+ Other System V operating systems (AIX and HP-UX) use a magic number
+ that would correspond to the following.
/* curses screen dump magic number */
#define SVR4_DUMP_MAGIC_NUMBER 0435
- That octal number in bytes is 001, 035. Because most Unix vendors use
- big-endian hardware, the magic number is written with the high-order
- byte first, e.g.,
+ That octal number in bytes is 001, 035. Because most Unix vendors at
+ the time used big-endian hardware, the magic number is written with the
+ high-order byte first.
- 01 35
+ \001\035
- After the magic number, the <STRONG>WINDOW</STRONG> structure and line-data are written
- in binary format. While the magic number used by the Unix systems can
- be seen using <STRONG>od(1)</STRONG>, none of the Unix systems documents the format used
- for screen-dumps.
+ After the magic number, the <EM>WINDOW</EM> structure and line data are written
+ in binary format. While the magic number used by these systems can be
+ observed with <STRONG>od(1)</STRONG>, none of them documents the format used for screen
+ dumps.
- The Unix systems do not use identical formats. While collecting
- information for for this manual page, the <EM>savescreen</EM> test-program
- produced dumps of different size (all on 64-bit hardware, on 40x80
- screens):
+ Nor do they use an identical format, even with the System V family.
+ The <EM>ncurses</EM> <EM>savescreen</EM> test program was used to collect information for
+ this manual page. It produced dumps of different size (all on 64-bit
+ hardware, on 40x80 screens):
<STRONG>o</STRONG> AIX (51817 bytes)
- <STRONG>o</STRONG> HPUX (90093 bytes)
+ <STRONG>o</STRONG> HP-UX (90093 bytes)
<STRONG>o</STRONG> Solaris 10 (13273 bytes)
- <STRONG>o</STRONG> ncurses5 (12888 bytes)
+ <STRONG>o</STRONG> <EM>ncurses</EM>5 (12888 bytes)
</PRE><H3><a name="h3-Solaris">Solaris</a></H3><PRE>
- As noted above, Solaris curses has no magic number corresponding to
- SVr4 curses. This is odd since Solaris was the first operating system
- to pass the SVr4 guidelines. Solaris has two versions of curses:
+ As noted above, Solaris <EM>curses</EM> has no magic number corresponding to
+ SVr4 <EM>curses</EM>. This is odd, since Solaris was the first operating system
+ to meet the SVr4 guidelines. Solaris furthermore supplies two versions
+ of <EM>curses</EM>.
- <STRONG>o</STRONG> The default curses library uses the SVr3 magic number.
+ <STRONG>o</STRONG> The default <EM>curses</EM> library uses the SVr3 magic number.
- <STRONG>o</STRONG> There is an alternate curses library in <STRONG>/usr/xpg4</STRONG>. This uses a
- textual format with no magic number.
+ <STRONG>o</STRONG> An alternate <EM>curses</EM> library (which we term <EM>xcurses),</EM> available in
+ <EM>/usr/xpg4</EM>, uses a textual format with no magic number.
- According to the copyright notice, the <EM>xpg4</EM> Solaris curses library
- was developed by MKS (Mortice Kern Systems) from 1990 to 1995.
+ According to its copyright notice, this <EM>xcurses</EM> library was
+ developed by MKS (Mortice Kern Systems) from 1990 to 1995.
- Like ncurses6, there is a file-header with parameters. Unlike
- ncurses6, the contents of the window are written piecemeal, with
- coordinates and attributes for each chunk of text rather than
+ Like ncurses6, it includes a header with parameters. Unlike
+ ncurses6, the contents of the window are written piecemeal, with
+ coordinates and attributes for each chunk of text rather than
writing the whole window from top to bottom.
</PRE><H3><a name="h3-PDCurses">PDCurses</a></H3><PRE>
- PDCurses added support for screen dumps in version 2.7 (2005). Like
- Unix SystemV and ncurses5, it writes the <STRONG>WINDOW</STRONG> structure in binary,
- but begins the file with its three-byte identifier "PDC", followed by a
- one-byte version, e.g.,
+ <EM>PDCurses</EM> added support for screen dumps in version 2.7 (2005). Like
+ System V and ncurses5, it writes the <EM>WINDOW</EM> structure in binary, but
+ begins the file with its three-byte identifier "PDC", followed by a
+ single-byte version number.
"PDC\001"
</PRE><H3><a name="h3-NetBSD">NetBSD</a></H3><PRE>
- As of April 2017, NetBSD curses does not support <STRONG>scr_dump</STRONG> and
+ As of April 2017, NetBSD <EM>curses</EM> does not support <STRONG>scr_dump</STRONG> and
<STRONG>scr_restore</STRONG> (or <STRONG>scr_init</STRONG>, <STRONG>scr_set</STRONG>), although it has <STRONG>putwin</STRONG> and <STRONG>getwin</STRONG>.
- Like ncurses5, NetBSD <STRONG>putwin</STRONG> does not identify its dumps with a useful
+ Like ncurses5, NetBSD <STRONG>putwin</STRONG> does not identify its dumps with a useful
magic number. It writes
- <STRONG>o</STRONG> the curses shared library major and minor versions as the first two
- bytes (e.g., 7 and 1),
+ <STRONG>o</STRONG> the <EM>curses</EM> shared library major and minor versions as the first two
+ bytes (for example, 7 and 1),
- <STRONG>o</STRONG> followed by a binary dump of the <STRONG>WINDOW</STRONG>,
+ <STRONG>o</STRONG> followed by a binary dump of the <EM>WINDOW</EM>,
- <STRONG>o</STRONG> some data for wide-characters referenced by the <STRONG>WINDOW</STRONG> structure,
+ <STRONG>o</STRONG> some data for wide characters referenced by the <EM>WINDOW</EM> structure,
and
<STRONG>o</STRONG> finally, lines as done by other implementations.
-</PRE><H2><a name="h2-EXAMPLE">EXAMPLE</a></H2><PRE>
- Given a simple program which writes text to the screen (and for the
+</PRE><H2><a name="h2-EXAMPLES">EXAMPLES</a></H2><PRE>
+ Given a simple program which writes text to the screen (and for the
sake of example, limiting the screen-size to 10x20):
#include &lt;curses.h&gt;
@@ -317,13 +300,13 @@
<STRONG>o</STRONG> The actual color pair values are not written to the file.
- <STRONG>o</STRONG> All characters are shown in printable form; spaces are "\s" to
+ <STRONG>o</STRONG> All characters are shown in printable form; spaces are "\s" to
ensure they are not overlooked.
- <STRONG>o</STRONG> Attributes are written in escaped curly braces, e.g., "\{BOLD}",
- and may include a color-pair (C1 or C2 in this example).
+ <STRONG>o</STRONG> Attributes are written in escaped curly braces, e.g., "\{BOLD}",
+ and may include a color pair (C1 or C2 in this example).
- <STRONG>o</STRONG> The parameters in the header are written out only if they are
+ <STRONG>o</STRONG> The parameters in the header are written out only if they are
nonzero. When reading back, order does not matter.
Running the same program with Solaris <EM>xpg4</EM> curses gives this dump:
@@ -362,12 +345,12 @@
9,19,0,0,
CUR=11,5
- Solaris <STRONG>getwin</STRONG> requires that all parameters are present, and in the
- same order. The <EM>xpg4</EM> curses library does not know about the <STRONG>bce</STRONG> (back
+ Solaris <STRONG>getwin</STRONG> requires that all parameters are present, and in the
+ same order. The <EM>xpg4</EM> curses library does not know about the <STRONG>bce</STRONG> (back
color erase) capability, and does not color the window background.
- On the other hand, the SVr4 curses library does know about the
- background color. However, its screen dumps are in binary. Here is
+ On the other hand, the SVr4 curses library does know about the
+ background color. However, its screen dumps are in binary. Here is
the corresponding dump (using "od -t x1"):
0000000 1c 01 c3 d6 f3 58 05 00 0b 00 0a 00 14 00 00 00
@@ -394,43 +377,42 @@
0002371
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>, <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>.
-
-
</PRE><H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
Thomas E. Dickey
- extended screen-dump format for ncurses 6.0 (2015)
+ extended screen-dump format for <EM>ncurses</EM> 6.0 (2015)
Eric S. Raymond
- screen dump feature in ncurses 1.9.2d (1995)
+ screen dump feature in <EM>ncurses</EM> 1.9.2d (1995)
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>, <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
+
- <STRONG><A HREF="scr_dump.5.html">scr_dump(5)</A></STRONG>
+
+ncurses 6.5 2024-03-23 <STRONG><A HREF="scr_dump.5.html">scr_dump(5)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<li><a href="#h2-NAME">NAME</a></li>
-<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
<ul>
<li><a href="#h3-ncurses6">ncurses6</a></li>
-<li><a href="#h3-ncurses5-_legacy_">ncurses5 (legacy)</a></li>
+<li><a href="#h3-ncurses5-_Legacy_">ncurses5 (Legacy)</a></li>
</ul>
</li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a>
<ul>
<li><a href="#h3-X_Open-Curses">X/Open Curses</a></li>
-<li><a href="#h3-Unix-SystemV">Unix SystemV</a></li>
+<li><a href="#h3-System-V">System V</a></li>
<li><a href="#h3-Solaris">Solaris</a></li>
<li><a href="#h3-PDCurses">PDCurses</a></li>
<li><a href="#h3-NetBSD">NetBSD</a></li>
</ul>
</li>
-<li><a href="#h2-EXAMPLE">EXAMPLE</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
+<li><a href="#h2-EXAMPLES">EXAMPLES</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/tabs.1.html b/doc/html/man/tabs.1.html
index 34dc416ead2e..5a548fab176b 100644
--- a/doc/html/man/tabs.1.html
+++ b/doc/html/man/tabs.1.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 2008-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,36 +27,36 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: tabs.1,v 1.28 2020/12/19 21:50:22 tom Exp @
+ * @Id: tabs.1,v 1.59 2024/04/20 19:08:15 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>tabs 1</TITLE>
+<TITLE>tabs 1 2024-04-20 ncurses 6.5 User commands</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">tabs 1</H1>
+<H1 class="no-header">tabs 1 2024-04-20 ncurses 6.5 User commands</H1>
<PRE>
-<STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG> General Commands Manual <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>
+<STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG> User commands <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>tabs</STRONG> - set tabs on a terminal
+ <STRONG>tabs</STRONG> - set terminal tab stops
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
- <STRONG>tabs</STRONG> [<EM>options</EM>]] <EM>[tabstop-list]</EM>
+ <STRONG>tabs</STRONG> [<EM>options</EM>] [<EM>tabstop-list</EM>]
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
The <STRONG>tabs</STRONG> program clears and sets tab-stops on the terminal. This uses
- the terminfo <EM>clear</EM><STRONG>_</STRONG><EM>all</EM><STRONG>_</STRONG><EM>tabs</EM> and <EM>set</EM><STRONG>_</STRONG><EM>tab</EM> capabilities. If either is
+ the terminfo <STRONG>clear_all_tabs</STRONG> and <STRONG>set_tab</STRONG> capabilities. If either is
absent, <STRONG>tabs</STRONG> is unable to clear/set tab-stops. The terminal should be
configured to use hard tabs, e.g.,
@@ -97,7 +97,7 @@
<STRONG>-n</STRONG> This option tells <STRONG>tabs</STRONG> to check the options and run any debugging
option, but not to modify the terminal settings.
- <STRONG>-V</STRONG> reports the version of ncurses which was used in this program, and
+ <STRONG>-V</STRONG> reports the version of <EM>ncurses</EM> which was used in this program, and
exits.
The <STRONG>tabs</STRONG> program processes a single list of tab stops. The last option
@@ -132,86 +132,133 @@
which is equivalent to the 1,6,11,16,21 example.
-</PRE><H3><a name="h3-Predefined-Tab-Stops">Predefined Tab-Stops</a></H3><PRE>
- X/Open defines several predefined lists of tab stops.
+</PRE><H3><a name="h3-Predefined-Tab-Stops">Predefined Tab Stops</a></H3><PRE>
+ POSIX defines several predefined lists of tab stops.
<STRONG>-a</STRONG> Assembler, IBM S/370, first format
+ 1,10,16,36,72
<STRONG>-a2</STRONG> Assembler, IBM S/370, second format
+ 1,10,16,40,72
<STRONG>-c</STRONG> COBOL, normal format
+ 1,8,12,16,20,55
<STRONG>-c2</STRONG> COBOL compact format
+ 1,6,10,14,49
<STRONG>-c3</STRONG> COBOL compact format extended
+ 1,6,10,14,18,22,26,30,34,38,42,46,50,54,58,62,67
<STRONG>-f</STRONG> FORTRAN
+ 1,7,11,15,19,23
<STRONG>-p</STRONG> PL/I
+ 1,5,9,13,17,21,25,29,33,37,41,45,49,53,57,61
<STRONG>-s</STRONG> SNOBOL
+ 1,10,55
<STRONG>-u</STRONG> UNIVAC 1100 Assembler
+ 1,12,20,44
+
+
+</PRE><H3><a name="h3-Margins">Margins</a></H3><PRE>
+ A few terminals expose a means of changing their left and right
+ margins. <STRONG>tabs</STRONG> supports this feature with an option.
+
+ <STRONG>+m</STRONG> <EM>margin</EM>
+ The effect depends on whether the terminal has the margin
+ capabilities:
+
+ <STRONG>o</STRONG> If the terminal provides the capability for setting the left
+ margin, <STRONG>tabs</STRONG> uses this, and adjusts the available tab stop
+ widths.
+
+ <STRONG>o</STRONG> If the terminal does not provide the margin capabilities, <STRONG>tabs</STRONG>
+ imitates their effect, putting tab stops at appropriate places
+ on each line. The terminal's left margin is not modified.
+
+ If the <EM>margin</EM> parameter is omitted, the default is 10. Use <STRONG>+m0</STRONG> to
+ reset the left margin, that is, to make it the left edge of the
+ terminal's display. Before setting a left margin, <STRONG>tabs</STRONG> resets the
+ margin to reduce problems that might arise from moving the cursor
+ to the left of the current left margin.
+
+ When setting or resetting the left margin, <STRONG>tabs</STRONG> may also reset the
+ right margin.
+
+
+</PRE><H2><a name="h2-FILES">FILES</a></H2><PRE>
+ <EM>/usr/share/tabset</EM>
+ tab stop initialization database
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- <EM>IEEE</EM> <EM>Std</EM> <EM>1003.1/The</EM> <EM>Open</EM> <EM>Group</EM> <EM>Base</EM> <EM>Specifications</EM> <EM>Issue</EM> <EM>7</EM>
- (POSIX.1-2008) describes a <STRONG>tabs</STRONG> utility. However
+ IEEE Std 1003.1/The Open Group Base Specifications Issue 7
+ (POSIX.1-2008) describes a <STRONG>tabs</STRONG> utility. However,
- <STRONG>o</STRONG> This standard describes a <STRONG>+m</STRONG> option, to set a terminal's left-
- margin. Very few of the entries in the terminal database provide
- the <STRONG>smgl</STRONG> (<STRONG>set_left_margin</STRONG>) or <STRONG>smglp</STRONG> (<STRONG>set_left_margin_parm</STRONG>)
- capability needed to support the feature.
+ <STRONG>o</STRONG> this standard describes a <STRONG>+m</STRONG> option to set a terminal's left
+ margin. Very few of the entries in the terminal database provide
+ the <STRONG>set_left_margin</STRONG> (<STRONG>smgl</STRONG>) or <STRONG>set_left_margin_parm</STRONG> (<STRONG>smglp</STRONG>)
+ capabilities needed to support the feature.
- <STRONG>o</STRONG> There is no counterpart in X/Open Curses Issue 7 for this utility,
- unlike <STRONG>tput(1)</STRONG>.
+ <STRONG>o</STRONG> There is no counterpart in X/Open Curses Issue 7 for this utility,
+ unlike <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG>.
- The <STRONG>-d</STRONG> (debug) and <STRONG>-n</STRONG> (no-op) options are extensions not provided by
- other implementations.
+ The <STRONG>-d</STRONG> (debug) and <STRONG>-n</STRONG> (no-op) options are <EM>ncurses</EM> extensions not
+ provided by other implementations.
- A <STRONG>tabs</STRONG> utility appeared in PWB/Unix 1.0 (1977). There was a reduced
- version of the <STRONG>tabs</STRONG> utility in Unix 7th edition and in 3BSD (1979).
- The latter supported a single "-n" option (to cause the first tab stop
- to be set on the left margin). That option is not documented by POSIX.
- The PWB/Unix <STRONG>tabs</STRONG> utility, which was included in System III (1980),
- used built-in tables rather than the terminal database, to support a
- half-dozen terminal types. It also had built-in logic to support the
- left-margin, as well as a feature for copying the tab settings from a
- file.
+</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
+ A <STRONG>tabs</STRONG> utility appeared in PWB/Unix 1.0 (1977). A reduced version
+ shipped in Seventh Edition Unix (early 1979) and in 3BSD (later the
+ same year); it supported a "-n" option to set the first tab stop at the
+ left margin. That option is not specified by POSIX.
- Later versions of Unix, e.g., SVr4, added support for the terminal
- database, but kept the tables, as a fallback. In an earlier
- development effort, the tab-stop initialization provided by <STRONG>tset</STRONG> (1982)
- and incorporated into <STRONG>tput</STRONG> uses the terminal database,
+ The PWB/Unix <STRONG>tabs</STRONG> utility returned in System III (1980), and used
+ built-in tables to support a half-dozen hardcopy terminal (printer)
+ types. It also had logic to support setting the left margin, as well
+ as a feature for copying the tab settings from a file.
- POSIX documents no limits on the number of tab stops. Documentation
- for other implementations states that there is a limit on the number of
- tab stops (e.g., 20 in PWB/Unix's <STRONG>tabs</STRONG> utility). While some terminals
- may not accept an arbitrary number of tab stops, this implementation
- will attempt to set tab stops up to the right margin of the screen, if
- the given list happens to be that long.
+ Versions of the program in later releases of AT&amp;T Unix, such as SVr4,
+ added support for the terminal database, but retained the tables to
+ support the printers. By this time, System V <STRONG>tput</STRONG> had incorporated the
+ tab stop initialization feature of BSD's <STRONG>tset</STRONG> from 1982, but employed
+ the <EM>terminfo</EM> database to do so.
- The <EM>Rationale</EM> section of the POSIX documentation goes into some detail
- about the ways the committee considered redesigning the <STRONG>tabs</STRONG> and <STRONG>tput</STRONG>
- utilities, without proposing an improved solution. It comments that
+ The <STRONG>+m</STRONG> option was documented in the POSIX Base Specifications Issue 5
+ (Unix98, 1997), then omitted in Issue 6 (Unix03, 2004) without express
+ motivation, though an introductory comment "and optionally adjusts the
+ margin" remains, overlooked in the removal. The <STRONG>tabs</STRONG> utility
+ documented in Issues 6 and later has no mechanism for setting margins.
+ The <STRONG>+m</STRONG> option in <EM>ncurses</EM> <STRONG>tabs</STRONG> differs from the SVr4 feature by using
+ terminal capabilities rather than built-in tables.
- no known historical version of tabs supports the capability of
- setting arbitrary tab stops.
+ POSIX documents no limit on the number of tab stops. Other
+ implementations impose one; the limit is 20 in PWB/Unix's <STRONG>tabs</STRONG> utility.
+ While some terminals may not accept an arbitrary number of tab stops,
+ <EM>ncurses</EM> <STRONG>tabs</STRONG> attempts to set tab stops up to the right margin if the
+ list thereof is sufficiently long.
- However, the <EM>Explicit</EM> <EM>Lists</EM> described in this manual page were
- implemented in PWB/Unix. Those provide the capability of setting
- abitrary tab stops.
+ The "Rationale" section of the Issue 6 <STRONG>tabs</STRONG> reference page details how
+ the committee considered redesigning the <STRONG>tabs</STRONG> and <STRONG>tput</STRONG> utilities,
+ without settling on an improved solution. It claims that
+ "no known historical version of <EM>tabs</EM> supports the capability of
+ setting arbitrary tab stops."
+
+ The feature described in subsection "Explicit Lists" above was
+ implemented in PWB/Unix, and permitted the setting of abitrary tab
+ stops nevertheless.
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
- This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210109).
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
- <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -223,10 +270,13 @@
<li><a href="#h3-General-Options">General Options</a></li>
<li><a href="#h3-Implicit-Lists">Implicit Lists</a></li>
<li><a href="#h3-Explicit-Lists">Explicit Lists</a></li>
-<li><a href="#h3-Predefined-Tab-Stops">Predefined Tab-Stops</a></li>
+<li><a href="#h3-Predefined-Tab-Stops">Predefined Tab Stops</a></li>
+<li><a href="#h3-Margins">Margins</a></li>
</ul>
</li>
+<li><a href="#h2-FILES">FILES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
+<li><a href="#h2-HISTORY">HISTORY</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
diff --git a/doc/html/man/term.5.html b/doc/html/man/term.5.html
index 03c6b3b68d57..9c9b5b8e52ac 100644
--- a/doc/html/man/term.5.html
+++ b/doc/html/man/term.5.html
@@ -1,6 +1,7 @@
-<!--
+<!--
+ * t
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,27 +28,27 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: term.5,v 1.38 2020/07/25 21:56:02 tom Exp @
+ * @Id: term.5,v 1.77 2024/04/20 21:24:19 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>term 5</TITLE>
+<TITLE>term 5 2024-04-20 ncurses 6.5 File formats</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">term 5</H1>
+<H1 class="no-header">term 5 2024-04-20 ncurses 6.5 File formats</H1>
<PRE>
-<STRONG><A HREF="term.5.html">term(5)</A></STRONG> File Formats Manual <STRONG><A HREF="term.5.html">term(5)</A></STRONG>
+<STRONG><A HREF="term.5.html">term(5)</A></STRONG> File formats <STRONG><A HREF="term.5.html">term(5)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- term - format of compiled term file.
+ term - compiled <EM>terminfo</EM> terminal description
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -56,13 +57,13 @@
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
-</PRE><H3><a name="h3-STORAGE-LOCATION">STORAGE LOCATION</a></H3><PRE>
+</PRE><H3><a name="h3-Storage-Location">Storage Location</a></H3><PRE>
Compiled terminfo descriptions are placed under the directory
<STRONG>/usr/share/terminfo</STRONG>. Two configurations are supported (when building
- the <STRONG>ncurses</STRONG> libraries):
+ the <EM>ncurses</EM> libraries):
<STRONG>directory</STRONG> <STRONG>tree</STRONG>
- A two-level scheme is used to avoid a linear search of a huge UNIX
+ A two-level scheme is used to avoid a linear search of a huge Unix
system directory: <STRONG>/usr/share/terminfo/c/name</STRONG> where <EM>name</EM> is the
name of the terminal, and <EM>c</EM> is the first character of <EM>name</EM>. Thus,
<EM>act4</EM> can be found in the file <STRONG>/usr/share/terminfo/a/act4</STRONG>.
@@ -75,18 +76,18 @@
with the terminfo's primary name as a key, and records containing
only aliases pointing to the primary name.
- If built to write hashed databases, <STRONG>ncurses</STRONG> can still read
+ If built to write hashed databases, <EM>ncurses</EM> can still read
terminfo databases organized as a directory tree, but cannot write
entries into the directory tree. It can write (or rewrite)
entries in the hashed database.
- <STRONG>ncurses</STRONG> distinguishes the two cases in the TERMINFO and
- TERMINFO_DIRS environment variable by assuming a directory tree
+ <EM>ncurses</EM> distinguishes the two cases in the <EM>TERMINFO</EM> and
+ <EM>TERMINFO</EM><STRONG>_</STRONG><EM>DIRS</EM> environment variable by assuming a directory tree
for entries that correspond to an existing directory, and hashed
database otherwise.
-</PRE><H3><a name="h3-LEGACY-STORAGE-FORMAT">LEGACY STORAGE FORMAT</a></H3><PRE>
+</PRE><H3><a name="h3-Legacy-Storage-Format">Legacy Storage Format</a></H3><PRE>
The format has been chosen so that it will be the same on all hardware.
An 8 or more bit byte is assumed, but no assumptions about byte
ordering or sign extension are made.
@@ -98,7 +99,7 @@
b) <EM>terminal</EM> <EM>names</EM>,
- c) <EM>boolean</EM> <EM>flags</EM>,
+ c) <EM>Boolean</EM> <EM>flags</EM>,
d) <EM>numbers</EM>,
@@ -113,7 +114,7 @@
(2) the size, in bytes, of the <EM>terminal</EM> <EM>names</EM> section;
- (3) the number of bytes in the <EM>boolean</EM> <EM>flags</EM> section;
+ (3) the number of bytes in the <EM>Boolean</EM> <EM>flags</EM> section;
(4) the number of short integers in the <EM>numbers</EM> section;
@@ -121,7 +122,7 @@
(6) the size, in bytes, of the <EM>string</EM> <EM>table</EM>.
- The capabilities in the <EM>boolean</EM> <EM>flags</EM>, <EM>numbers</EM>, and <EM>strings</EM> sections
+ The capabilities in the <EM>Boolean</EM> <EM>flags</EM>, <EM>numbers</EM>, and <EM>strings</EM> sections
are in the same order as the file &lt;term.h&gt;.
Short integers are signed, in the range -32768 to 32767. They are
@@ -144,13 +145,13 @@
the corresponding table.
The integer value -1 is represented by two bytes 0377, 0377.
- Absent boolean values are represented by the byte 0 (false).
+ Absent Boolean values are represented by the byte 0 (false).
<STRONG>o</STRONG> If a capability has been canceled from this terminal, tic stores a
-2 in the corresponding table.
The integer value -2 is represented by two bytes 0377, 0376.
- The boolean value -2 is represented by the byte 0376.
+ The Boolean value -2 is represented by the byte 0376.
<STRONG>o</STRONG> Other negative values are illegal.
@@ -159,18 +160,18 @@
the terminal, separated by the "|" character. The <EM>terminal</EM> <EM>names</EM>
section is terminated with an ASCII NUL character.
- The <EM>boolean</EM> <EM>flags</EM> section has one byte for each flag. Boolean
+ The <EM>Boolean</EM> <EM>flags</EM> section has one byte for each flag. Boolean
capabilities are either 1 or 0 (true or false) according to whether the
terminal supports the given capability or not.
- Between the <EM>boolean</EM> <EM>flags</EM> section and the <EM>number</EM> section, a null byte
+ Between the <EM>Boolean</EM> <EM>flags</EM> section and the <EM>number</EM> section, a null byte
will be inserted, if necessary, to ensure that the <EM>number</EM> section
begins on an even byte This is a relic of the PDP-11's word-addressed
architecture, originally designed to avoid traps induced by addressing
a word on an odd byte boundary. All short integers are aligned on a
short word boundary.
- The <EM>numbers</EM> section is similar to the <EM>boolean</EM> <EM>flags</EM> section. Each
+ The <EM>numbers</EM> section is similar to the <EM>Boolean</EM> <EM>flags</EM> section. Each
capability takes up two bytes, and is stored as a little-endian short
integer.
@@ -185,23 +186,23 @@
uninterpreted form.
-</PRE><H3><a name="h3-EXTENDED-STORAGE-FORMAT">EXTENDED STORAGE FORMAT</a></H3><PRE>
+</PRE><H3><a name="h3-Extended-Storage-Format">Extended Storage Format</a></H3><PRE>
The previous section describes the conventional terminfo binary format.
With some minor variations of the offsets (see PORTABILITY), the same
- binary format is used in all modern UNIX systems. Each system uses a
- predefined set of boolean, number or string capabilities.
+ binary format is used in all modern Unix systems. Each system uses a
+ predefined set of Boolean, number or string capabilities.
- The <STRONG>ncurses</STRONG> libraries and applications support extended terminfo binary
+ The <EM>ncurses</EM> libraries and applications support extended terminfo binary
format, allowing users to define capabilities which are loaded at
runtime. This extension is made possible by using the fact that the
other implementations stop reading the terminfo data when they have
- reached the end of the size given in the header. <STRONG>ncurses</STRONG> checks the
+ reached the end of the size given in the header. <EM>ncurses</EM> checks the
size, and if it exceeds that due to the predefined data, continues to
parse according to its own scheme.
First, it reads the extended header (5 short integers):
- (1) count of extended boolean capabilities
+ (1) count of extended Boolean capabilities
(2) count of extended numeric capabilities
@@ -214,21 +215,27 @@
The count- and size-values for the extended string table include the
extended capability <EM>names</EM> as well as extended capability <EM>values</EM>.
- Using the counts and sizes, <STRONG>ncurses</STRONG> allocates arrays and reads data for
+ Using the counts and sizes, <EM>ncurses</EM> allocates arrays and reads data for
the extended capabilities in the same order as the header information.
The extended string table contains values for string capabilities.
After the end of these values, it contains the names for each of the
- extended capabilities in order, e.g., booleans, then numbers and
+ extended capabilities in order, e.g., Booleans, then numbers and
finally strings.
+ By storing terminal descriptions in this way, <EM>ncurses</EM> is able to
+ provide a database useful with legacy applications, as well as
+ providing data for applications which need more than the predefined
+ capabilities. See <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG> for an overview of the way <EM>ncurses</EM> uses
+ this extended information.
+
Applications which manipulate terminal data can use the definitions
described in <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG> which associate the long capability
names with members of a <STRONG>TERMTYPE</STRONG> structure.
-</PRE><H3><a name="h3-EXTENDED-NUMBER-FORMAT">EXTENDED NUMBER FORMAT</a></H3><PRE>
- On occasion, 16-bit signed integers are not large enough. With <STRONG>ncurses</STRONG>
+</PRE><H3><a name="h3-Extended-Number-Format">Extended Number Format</a></H3><PRE>
+ On occasion, 16-bit signed integers are not large enough. With <EM>ncurses</EM>
6.1, a new format was introduced by making a few changes to the legacy
format:
@@ -244,143 +251,155 @@
<STRONG>TERMTYPE2</STRONG> to provide data for the terminfo functions.
+</PRE><H2><a name="h2-FILES">FILES</a></H2><PRE>
+ <EM>/usr/share/terminfo</EM>
+ compiled terminal description database
+
+
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
</PRE><H3><a name="h3-setupterm">setupterm</a></H3><PRE>
Note that it is possible for <STRONG>setupterm</STRONG> to expect a different set of
capabilities than are actually present in the file. Either the
- database may have been updated since <STRONG>setupterm</STRONG> has been recompiled
+ database may have been updated since <STRONG>setupterm</STRONG> was recompiled
(resulting in extra unrecognized entries in the file) or the program
may have been recompiled more recently than the database was updated
(resulting in missing entries). The routine <STRONG>setupterm</STRONG> must be prepared
for both possibilities - this is why the numbers and sizes are
included. Also, new capabilities must always be added at the end of
- the lists of boolean, number, and string capabilities.
+ the lists of Boolean, number, and string capabilities.
-</PRE><H3><a name="h3-Binary-format">Binary format</a></H3><PRE>
+</PRE><H3><a name="h3-Binary-Format">Binary Format</a></H3><PRE>
X/Open Curses does not specify a format for the terminfo database.
- UNIX System V curses used a directory-tree of binary files, one per
- terminal description.
+ System V curses used a directory-tree of binary files, one per terminal
+ description.
Despite the consistent use of little-endian for numbers and the
otherwise self-describing format, it is not wise to count on
- portability of binary terminfo entries between commercial UNIX
+ portability of binary terminfo entries between commercial Unix
versions. The problem is that there are at least three versions of
terminfo (under HP-UX, AIX, and OSF/1) which diverged from System V
terminfo after SVr1, and have added extension capabilities to the
- string table that (in the binary format) collide with System V and XSI
- Curses extensions. See <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> for detailed discussion of terminfo
- source compatibility issues.
+ string table that (in the binary format) collide with System V and
+ X/Open Curses extensions. See <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> for detailed discussion of
+ terminfo source compatibility issues.
This implementation is by default compatible with the binary terminfo
format used by Solaris curses, except in a few less-used details where
it was found that the latter did not match X/Open Curses. The format
- used by the other Unix versions can be matched by building ncurses with
+ used by the other Unix versions can be matched by building <EM>ncurses</EM> with
different configuration options.
-</PRE><H3><a name="h3-Magic-codes">Magic codes</a></H3><PRE>
+</PRE><H3><a name="h3-Magic-Codes">Magic Codes</a></H3><PRE>
The magic number in a binary terminfo file is the first 16-bits (two
bytes). Besides making it more reliable for the library to check that
- a file is terminfo, utilities such as <STRONG>file</STRONG> also use that to tell what
- the file-format is. System V defined more than one magic number, with
- 0433, 0435 as screen-dumps (see <STRONG><A HREF="scr_dump.5.html">scr_dump(5)</A></STRONG>). This implementation uses
- 01036 as a continuation of that sequence, but with a different high-
- order byte to avoid confusion.
-
+ a file is terminfo, utilities such as <STRONG>file(1)</STRONG> also use that to tell
+ what the file-format is. System V defined more than one magic number,
+ with 0433, 0435 as screen-dumps (see <STRONG><A HREF="scr_dump.5.html">scr_dump(5)</A></STRONG>). This implementation
+ uses 01036 as a continuation of that sequence, but with a different
+ high-order byte to avoid confusion.
-</PRE><H3><a name="h3-The-TERMTYPE-structure">The TERMTYPE structure</a></H3><PRE>
+ <STRONG>The</STRONG> <EM>TERMTYPE</EM> <STRONG>Structure</STRONG>
Direct access to the <STRONG>TERMTYPE</STRONG> structure is provided for legacy
applications. Portable applications should use the <STRONG>tigetflag</STRONG> and
related functions described in <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> for reading terminal
capabilities.
-</PRE><H3><a name="h3-Mixed-case-terminal-names">Mixed-case terminal names</a></H3><PRE>
+</PRE><H3><a name="h3-Mixed-case-Terminal-Names">Mixed-case Terminal Names</a></H3><PRE>
A small number of terminal descriptions use uppercase characters in
their names. If the underlying filesystem ignores the difference
- between uppercase and lowercase, <STRONG>ncurses</STRONG> represents the "first
+ between uppercase and lowercase, <EM>ncurses</EM> represents the "first
character" of the terminal name used as the intermediate level of a
directory tree in (two-character) hexadecimal form.
-</PRE><H2><a name="h2-EXAMPLE">EXAMPLE</a></H2><PRE>
- As an example, here is a description for the Lear-Siegler ADM-3, a
- popular though rather stupid early terminal:
+</PRE><H3><a name="h3-Limits">Limits</a></H3><PRE>
+ <EM>ncurses</EM> stores compiled terminal descriptions in three related formats,
+ described in the sections
- adm3a|lsi adm3a,
- am,
- cols#80, lines#24,
- bel=^G, clear= 32$&lt;1&gt;, cr=^M, cub1=^H, cud1=^J,
- cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
- home=^^, ind=^J,
+ <STRONG>o</STRONG> <STRONG>LEGACY</STRONG> <STRONG>STORAGE</STRONG> <STRONG>FORMAT</STRONG>, and
+ <STRONG>o</STRONG> <STRONG>EXTENDED</STRONG> <STRONG>STORAGE</STRONG> <STRONG>FORMAT</STRONG>, and
- and a hexadecimal dump of the compiled terminal description:
+ <STRONG>o</STRONG> <STRONG>EXTENDED</STRONG> <STRONG>NUMBER</STRONG> <STRONG>FORMAT</STRONG>.
+
+ The legacy storage format and the extended number format differ by the
+ types of numeric capability which they can store (i.e., 16-bit versus
+ 32-bit integers). The extended storage format introduced by <EM>ncurses</EM>
+ 5.0 adds data to either of these formats.
- 0000 1a 01 10 00 02 00 03 00 82 00 31 00 61 64 6d 33 ........ ..1.adm3
- 0010 61 7c 6c 73 69 20 61 64 6d 33 61 00 00 01 50 00 a|lsi ad m3a...P.
- 0020 ff ff 18 00 ff ff 00 00 02 00 ff ff ff ff 04 00 ........ ........
- 0030 ff ff ff ff ff ff ff ff 0a 00 25 00 27 00 ff ff ........ ..%.'...
- 0040 29 00 ff ff ff ff 2b 00 ff ff 2d 00 ff ff ff ff ).....+. ..-.....
- 0050 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
- 0060 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
- 0070 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
- 0080 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
- 0090 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
- 00a0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
- 00b0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
- 00c0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
- 00d0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
- 00e0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
- 00f0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
- 0100 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
- 0110 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
- 0120 ff ff ff ff ff ff 2f 00 07 00 0d 00 1a 24 3c 31 ....../. .....$&lt;1
- 0130 3e 00 1b 3d 25 70 31 25 7b 33 32 7d 25 2b 25 63 &gt;..=%p1% {32}%+%c
- 0140 25 70 32 25 7b 33 32 7d 25 2b 25 63 00 0a 00 1e %p2%{32} %+%c....
- 0150 00 08 00 0c 00 0b 00 0a 00 ........ .
-
-
-
-</PRE><H2><a name="h2-LIMITS">LIMITS</a></H2><PRE>
- Some limitations:
-
- <STRONG>o</STRONG> total compiled entries cannot exceed 4096 bytes in the legacy
+ Some limitations apply:
+
+ <STRONG>o</STRONG> total compiled entries cannot exceed 4096 bytes in the legacy
format.
- <STRONG>o</STRONG> total compiled entries cannot exceed 32768 bytes in the extended
+ <STRONG>o</STRONG> total compiled entries cannot exceed 32768 bytes in the extended
format.
<STRONG>o</STRONG> the name field cannot exceed 128 bytes.
- Compiled entries are limited to 32768 bytes because offsets into the
- <EM>strings</EM> <EM>table</EM> use two-byte integers. The legacy format could have
- supported 32768-byte entries, but was limited a virtual memory page's
- 4096 bytes.
+ Compiled entries are limited to 32768 bytes because offsets into the
+ <EM>strings</EM> <EM>table</EM> use two-byte integers. The legacy format could have
+ supported 32768-byte entries, but was limited to a virtual memory
+ page's 4096 bytes.
-</PRE><H2><a name="h2-FILES">FILES</a></H2><PRE>
- /usr/share/terminfo/*/* compiled terminal capability data base
+</PRE><H2><a name="h2-EXAMPLES">EXAMPLES</a></H2><PRE>
+ As an example, here is a description for the Lear-Siegler ADM-3, a
+ popular though rather stupid early terminal:
+ adm3a|lsi adm3a,
+ am,
+ cols#80, lines#24,
+ bel=^G, clear=\032$&lt;1&gt;, cr=^M, cub1=^H, cud1=^J,
+ cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
+ home=^^, ind=^J,
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
+ and a hexadecimal dump of the compiled terminal description:
+
+ 0000 1a 01 10 00 02 00 03 00 82 00 31 00 61 64 6d 33 ........ ..1.adm3
+ 0010 61 7c 6c 73 69 20 61 64 6d 33 61 00 00 01 50 00 a|lsi ad m3a...P.
+ 0020 ff ff 18 00 ff ff 00 00 02 00 ff ff ff ff 04 00 ........ ........
+ 0030 ff ff ff ff ff ff ff ff 0a 00 25 00 27 00 ff ff ........ ..%.'...
+ 0040 29 00 ff ff ff ff 2b 00 ff ff 2d 00 ff ff ff ff ).....+. ..-.....
+ 0050 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
+ 0060 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
+ 0070 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
+ 0080 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
+ 0090 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
+ 00a0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
+ 00b0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
+ 00c0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
+ 00d0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
+ 00e0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
+ 00f0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
+ 0100 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
+ 0110 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
+ 0120 ff ff ff ff ff ff 2f 00 07 00 0d 00 1a 24 3c 31 ....../. .....$&lt;1
+ 0130 3e 00 1b 3d 25 70 31 25 7b 33 32 7d 25 2b 25 63 &gt;..=%p1% {32}%+%c
+ 0140 25 70 32 25 7b 33 32 7d 25 2b 25 63 00 0a 00 1e %p2%{32} %+%c....
+ 0150 00 08 00 0c 00 0b 00 0a 00 ........ .
</PRE><H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
Thomas E. Dickey
- extended terminfo format for ncurses 5.0
- hashed database support for ncurses 5.6
- extended number support for ncurses 6.1
+ extended terminfo format for <EM>ncurses</EM> 5.0
+ hashed database support for <EM>ncurses</EM> 5.6
+ extended number support for <EM>ncurses</EM> 6.1
Eric S. Raymond
- documented legacy terminfo format, e.g., from pcurses.
+ documented legacy terminfo format, e.g., from <EM>pcurses</EM>.
+
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>, <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>
- <STRONG><A HREF="term.5.html">term(5)</A></STRONG>
+
+ncurses 6.5 2024-04-20 <STRONG><A HREF="term.5.html">term(5)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -388,26 +407,25 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
<ul>
-<li><a href="#h3-STORAGE-LOCATION">STORAGE LOCATION</a></li>
-<li><a href="#h3-LEGACY-STORAGE-FORMAT">LEGACY STORAGE FORMAT</a></li>
-<li><a href="#h3-EXTENDED-STORAGE-FORMAT">EXTENDED STORAGE FORMAT</a></li>
-<li><a href="#h3-EXTENDED-NUMBER-FORMAT">EXTENDED NUMBER FORMAT</a></li>
+<li><a href="#h3-Storage-Location">Storage Location</a></li>
+<li><a href="#h3-Legacy-Storage-Format">Legacy Storage Format</a></li>
+<li><a href="#h3-Extended-Storage-Format">Extended Storage Format</a></li>
+<li><a href="#h3-Extended-Number-Format">Extended Number Format</a></li>
</ul>
</li>
+<li><a href="#h2-FILES">FILES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a>
<ul>
<li><a href="#h3-setupterm">setupterm</a></li>
-<li><a href="#h3-Binary-format">Binary format</a></li>
-<li><a href="#h3-Magic-codes">Magic codes</a></li>
-<li><a href="#h3-The-TERMTYPE-structure">The TERMTYPE structure</a></li>
-<li><a href="#h3-Mixed-case-terminal-names">Mixed-case terminal names</a></li>
+<li><a href="#h3-Binary-Format">Binary Format</a></li>
+<li><a href="#h3-Magic-Codes">Magic Codes</a></li>
+<li><a href="#h3-Mixed-case-Terminal-Names">Mixed-case Terminal Names</a></li>
+<li><a href="#h3-Limits">Limits</a></li>
</ul>
</li>
-<li><a href="#h2-EXAMPLE">EXAMPLE</a></li>
-<li><a href="#h2-LIMITS">LIMITS</a></li>
-<li><a href="#h2-FILES">FILES</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
+<li><a href="#h2-EXAMPLES">EXAMPLES</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/term.7.html b/doc/html/man/term.7.html
index 7a6a2965524d..9a8858878771 100644
--- a/doc/html/man/term.7.html
+++ b/doc/html/man/term.7.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2011,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,21 +27,21 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: term.7,v 1.28 2020/02/02 23:34:34 tom Exp @
+ * @Id: term.7,v 1.48 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>term 7</TITLE>
+<TITLE>term 7 2024-03-16 ncurses 6.5 Miscellaneous</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">term 7</H1>
+<H1 class="no-header">term 7 2024-03-16 ncurses 6.5 Miscellaneous</H1>
<PRE>
-<STRONG><A HREF="term.7.html">term(7)</A></STRONG> Miscellaneous Information Manual <STRONG><A HREF="term.7.html">term(7)</A></STRONG>
+<STRONG><A HREF="term.7.html">term(7)</A></STRONG> Miscellaneous <STRONG><A HREF="term.7.html">term(7)</A></STRONG>
@@ -51,35 +51,35 @@
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- The environment variable <STRONG>TERM</STRONG> should normally contain the type name of
+ The environment variable <EM>TERM</EM> should normally contain the type name of
the terminal, console or display-device type you are using. This
information is critical for all screen-oriented programs, including
your editor and mailer.
- A default <STRONG>TERM</STRONG> value will be set on a per-line basis by either
- <STRONG>/etc/inittab</STRONG> (e.g., System-V-like UNIXes) or <STRONG>/etc/ttys</STRONG> (BSD UNIXes).
+ A default <EM>TERM</EM> value will be set on a per-line basis by either
+ <STRONG>/etc/inittab</STRONG> (e.g., System-V-like Unices) or <STRONG>/etc/ttys</STRONG> (BSD Unices).
This will nearly always suffice for workstation and microcomputer
consoles.
If you use a dialup line, the type of device attached to it may vary.
- Older UNIX systems pre-set a very dumb terminal type like "dumb" or
+ Older Unix systems pre-set a very dumb terminal type like "dumb" or
"dialup" on dialup lines. Newer ones may pre-set "vt100", reflecting
the prevalence of DEC VT100-compatible terminals and personal-computer
emulators.
- Modern telnets pass your <STRONG>TERM</STRONG> environment variable from the local side
+ Modern telnets pass your <EM>TERM</EM> environment variable from the local side
to the remote one. There can be problems if the remote terminfo or
termcap entry for your type is not compatible with yours, but this
situation is rare and can almost always be avoided by explicitly
exporting "vt100" (assuming you are in fact using a VT100-superset
- console, terminal, or terminal emulator.)
+ console, terminal, or terminal emulator).
- In any case, you are free to override the system <STRONG>TERM</STRONG> setting to your
+ In any case, you are free to override the system <EM>TERM</EM> setting to your
taste in your shell profile. The <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG> utility may be of assistance;
you can give it a set of rules for deducing or requesting a terminal
type based on the tty device and baud rate.
- Setting your own <STRONG>TERM</STRONG> value may also be useful if you have created a
+ Setting your own <EM>TERM</EM> value may also be useful if you have created a
custom entry incorporating options (such as visual bell or reverse-
video) which you wish to override the system default type for your
line.
@@ -88,14 +88,14 @@
underneath /usr/share/terminfo. To browse a list of all terminal names
recognized by the system, do
- toe | more
+ toe | more
from your shell. These capability files are in a binary format
optimized for retrieval speed (unlike the old text-based <STRONG>termcap</STRONG> format
they replace); to examine an entry, you must use the <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>
command. Invoke it as follows:
- infocmp <EM>entry</EM><STRONG>_</STRONG><EM>name</EM>
+ infocmp <EM>entry</EM><STRONG>_</STRONG><EM>name</EM>
where <EM>entry</EM><STRONG>_</STRONG><EM>name</EM> is the name of the type you wish to examine (and the
name of its capability file the subdirectory of /usr/share/terminfo
@@ -105,7 +105,7 @@
The first line of a <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> description gives the names by which
terminfo knows a terminal, separated by "|" (pipe-bar) characters with
the last name field terminated by a comma. The first name field is the
- type's <EM>primary</EM> <EM>name</EM>, and is the one to use when setting <STRONG>TERM</STRONG>. The last
+ type's <EM>primary</EM> <EM>name</EM>, and is the one to use when setting <EM>TERM</EM>. The last
name field (if distinct from the first) is actually a description of
the terminal type (it may contain blanks; the others must be single
words). Name fields between the first and last (if present) are
@@ -191,39 +191,39 @@
Commands which use a terminal type to control display often accept a -T
option that accepts a terminal name argument. Such programs should
- fall back on the <STRONG>TERM</STRONG> environment variable when no -T option is
+ fall back on the <EM>TERM</EM> environment variable when no -T option is
specified.
-</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- For maximum compatibility with older System V UNIXes, names and aliases
- should be unique within the first 14 characters.
+</PRE><H2><a name="h2-FILES">FILES</a></H2><PRE>
+ <EM>/usr/share/terminfo</EM>
+ compiled terminal description database
+ <EM>/etc/inittab</EM>
+ tty line initialization (AT&amp;T-like Unices)
-</PRE><H2><a name="h2-FILES">FILES</a></H2><PRE>
- /usr/share/terminfo/?/*
- compiled terminal capability data base
+ <EM>/etc/ttys</EM>
+ tty line initialization (BSD-like Unices)
- /etc/inittab
- tty line initialization (AT&amp;T-like UNIXes)
- /etc/ttys
- tty line initialization (BSD-like UNIXes)
+</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
+ For maximum compatibility with older System V Unices, names and aliases
+ should be unique within the first 14 characters.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>, <STRONG><A HREF="term.5.html">term(5)</A></STRONG>.
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="term.5.html">term(5)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
- <STRONG><A HREF="term.7.html">term(7)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="term.7.html">term(7)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<li><a href="#h2-NAME">NAME</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
-<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-FILES">FILES</a></li>
+<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
diff --git a/doc/html/man/term_variables.3x.html b/doc/html/man/term_variables.3x.html
index 8db839940a52..99b6786bca48 100644
--- a/doc/html/man/term_variables.3x.html
+++ b/doc/html/man/term_variables.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2023,2024 Thomas E. Dickey *
* Copyright 2010-2015,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,29 +27,29 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: term_variables.3x,v 1.12 2020/02/02 23:34:34 tom Exp @
+ * @Id: term_variables.3x,v 1.36 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>term_variables 3x</TITLE>
+<TITLE>term_variables 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">term_variables 3x</H1>
+<H1 class="no-header">term_variables 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG> <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>
+<STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG> Library calls <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>SP</STRONG>, <STRONG>acs_map</STRONG>, <STRONG>boolcodes</STRONG>, <STRONG>boolfnames</STRONG>, <STRONG>boolnames</STRONG>, <STRONG>cur_term</STRONG>, <STRONG>numcodes</STRONG>,
- <STRONG>numfnames</STRONG>, <STRONG>numnames</STRONG>, <STRONG>strcodes</STRONG>, <STRONG>strfnames</STRONG>, <STRONG>strnames</STRONG>, <STRONG>ttytype</STRONG> - <STRONG>curses</STRONG>
- terminfo global variables
+ <STRONG>SP</STRONG>, <STRONG>acs_map</STRONG>, <STRONG>boolcodes</STRONG>, <STRONG>boolfnames</STRONG>, <STRONG>boolnames</STRONG>, <STRONG>cur_term</STRONG>, <STRONG>numcodes</STRONG>,
+ <STRONG>numfnames</STRONG>, <STRONG>numnames</STRONG>, <STRONG>strcodes</STRONG>, <STRONG>strfnames</STRONG>, <STRONG>strnames</STRONG>, <STRONG>ttytype</STRONG> - <EM>terminfo</EM>
+ global variables
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -83,9 +83,9 @@
<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> manual page.
Depending on the configuration, these may be actual variables, or
- macros (see <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>) which provide read-only access to <EM>curs-</EM>
- <EM>es</EM>'s state. In either case, applications should treat them as read-on-
- ly to avoid confusing the library.
+ macros (see <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>) which provide read-only access to
+ <EM>curses</EM>'s state. In either case, applications should treat them as
+ read-only to avoid confusing the library.
</PRE><H3><a name="h3-Alternate-Character-Set-Mapping">Alternate Character Set Mapping</a></H3><PRE>
@@ -97,54 +97,54 @@
Application developers need only know that it is used for the "ACS_"
constants in &lt;curses.h&gt;.
- The comparable data for the wide-character library is a private vari-
- able.
+ The comparable data for the wide-character library is a private
+ variable.
</PRE><H3><a name="h3-Current-Terminal-Data">Current Terminal Data</a></H3><PRE>
- After initializing the curses or terminfo interfaces, the <STRONG>cur_term</STRONG> con-
- tains data describing the current terminal. This variable is also set
- as a side-effect of <STRONG><A HREF="curs_initscr.3x.html">set_term(3x)</A></STRONG> and <STRONG><A HREF="curs_initscr.3x.html">delscreen(3x)</A></STRONG>.
+ After initializing the curses or terminfo interfaces, the <STRONG>cur_term</STRONG>
+ contains data describing the current terminal. This variable is also
+ set as a side-effect of <STRONG><A HREF="curs_initscr.3x.html">set_term(3x)</A></STRONG> and <STRONG><A HREF="curs_initscr.3x.html">delscreen(3x)</A></STRONG>.
- It is possible to save a value of <STRONG>cur_term</STRONG> for subsequent use as a pa-
- rameter to <STRONG>set_term</STRONG>, for switching between screens. Alternatively, one
- can save the return value from <STRONG>newterm</STRONG> or <STRONG><A HREF="curs_terminfo.3x.html">setupterm(3x)</A></STRONG> to reuse in
+ It is possible to save a value of <STRONG>cur_term</STRONG> for subsequent use as a
+ parameter to <STRONG>set_term</STRONG>, for switching between screens. Alternatively,
+ one can save the return value from <STRONG>newterm</STRONG> or <STRONG><A HREF="curs_terminfo.3x.html">setupterm(3x)</A></STRONG> to reuse in
<STRONG>set_term</STRONG>.
-</PRE><H3><a name="h3-Terminfo-Names">Terminfo Names</a></H3><PRE>
+</PRE><H3><a name="h3-terminfo-Lookup-Tables"><EM>terminfo</EM> Lookup Tables</a></H3><PRE>
The <STRONG><A HREF="tic.1m.html">tic(1)</A></STRONG> and <STRONG><A HREF="infocmp.1m.html">infocmp(1)</A></STRONG> programs use lookup tables for the long and
short names of terminfo capabilities, as well as the corresponding
- names for termcap capabilities. These are available to other applica-
- tions, although the hash-tables used by the terminfo and termcap func-
- tions are not available.
+ names for termcap capabilities. These are available to other
+ applications, although the hash-tables used by the terminfo and termcap
+ functions are not available.
- The long terminfo capability names use a "l" (ell) in their names:
+ The long terminfo capability names use a "f" (eff) in their names:
<STRONG>boolfnames</STRONG>, <STRONG>numfnames</STRONG>, and <STRONG>strfnames</STRONG>.
- These are the short names for terminfo capabilities: <STRONG>boolnames</STRONG>, <STRONG>num-</STRONG>
- <STRONG>names</STRONG>, and <STRONG>strnames</STRONG>.
+ These are the short names for terminfo capabilities: <STRONG>boolnames</STRONG>,
+ <STRONG>numnames</STRONG>, and <STRONG>strnames</STRONG>.
- These are the corresponding names used for termcap descriptions: <STRONG>bool-</STRONG>
- <STRONG>codes</STRONG>, <STRONG>numcodes</STRONG>, and <STRONG>strcodes</STRONG>.
+ These are the corresponding names used for termcap descriptions:
+ <STRONG>boolcodes</STRONG>, <STRONG>numcodes</STRONG>, and <STRONG>strcodes</STRONG>.
</PRE><H3><a name="h3-Terminal-Type">Terminal Type</a></H3><PRE>
A terminal description begins with one or more terminal names separated
by "|" (vertical bars). On initialization of the curses or terminfo
- interfaces, <STRONG><A HREF="curs_terminfo.3x.html">setupterm(3x)</A></STRONG> copies the terminal names to the array <STRONG>tty-</STRONG>
- <STRONG>type</STRONG>.
+ interfaces, <STRONG><A HREF="curs_terminfo.3x.html">setupterm(3x)</A></STRONG> copies the terminal names to the array
+ <STRONG>ttytype</STRONG>.
-</PRE><H3><a name="h3-Terminfo-Names">Terminfo Names</a></H3><PRE>
+</PRE><H3><a name="h3-terminfo-Names"><EM>terminfo</EM> Names</a></H3><PRE>
In addition to the variables, <STRONG>&lt;term.h&gt;</STRONG> also defines a symbol for each
terminfo capability <EM>long</EM> <EM>name</EM>. These are in terms of the symbol <STRONG>CUR</STRONG>,
which is defined
#define CUR ((TERMTYPE *)(cur_term))-&gt;
- These symbols provide a faster method of accessing terminfo capabili-
- ties than using <STRONG><A HREF="curs_terminfo.3x.html">tigetstr(3x)</A></STRONG>, etc.
+ These symbols provide a faster method of accessing terminfo
+ capabilities than using <STRONG><A HREF="curs_terminfo.3x.html">tigetstr(3x)</A></STRONG>, etc.
The actual definition of <STRONG>CUR</STRONG> depends upon the implementation, but each
terminfo library provides these long names defined to point into the
@@ -159,12 +159,12 @@
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
X/Open Curses does not describe any of these except for <STRONG>cur_term</STRONG>. (The
- inclusion of <STRONG>cur_term</STRONG> appears to be an oversight, since other compara-
- ble low-level information is omitted by X/Open).
+ inclusion of <STRONG>cur_term</STRONG> appears to be an oversight, since other
+ comparable low-level information is omitted by X/Open).
- Other implementations may have comparable variables. Some implementa-
- tions provide the variables in their libraries, but omit them from the
- header files.
+ Other implementations may have comparable variables. Some
+ implementations provide the variables in their libraries, but omit them
+ from the header files.
All implementations which provide terminfo interfaces add definitions
as described in the <STRONG>Terminfo</STRONG> <STRONG>Names</STRONG> section. Most, but not all, base
@@ -172,11 +172,11 @@
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>, <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>, <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
- <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -186,9 +186,9 @@
<ul>
<li><a href="#h3-Alternate-Character-Set-Mapping">Alternate Character Set Mapping</a></li>
<li><a href="#h3-Current-Terminal-Data">Current Terminal Data</a></li>
-<li><a href="#h3-Terminfo-Names">Terminfo Names</a></li>
+<li><a href="#h3-terminfo-Lookup-Tables">terminfo Lookup Tables</a></li>
<li><a href="#h3-Terminal-Type">Terminal Type</a></li>
-<li><a href="#h3-Terminfo-Names">Terminfo Names</a></li>
+<li><a href="#h3-terminfo-Names">terminfo Names</a></li>
</ul>
</li>
<li><a href="#h2-NOTES">NOTES</a></li>
diff --git a/doc/html/man/terminfo.5.html b/doc/html/man/terminfo.5.html
index 0e5deb267a7a..67061141faca 100644
--- a/doc/html/man/terminfo.5.html
+++ b/doc/html/man/terminfo.5.html
@@ -1,11 +1,11 @@
-<!--
+<!--
* t
* DO NOT EDIT THIS FILE BY HAND!
* It is generated from terminfo.head, ./../include/Caps ./../include/Caps-ncurses, and terminfo.tail.
* Note: this must be run through tbl before nroff.
* The magic cookie on the first line triggers this under some man programs.
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -32,62 +32,27 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: terminfo.head,v 1.39 2020/02/02 23:34:34 tom Exp @
- * Head of terminfo man page ends here
- ****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
- * Copyright 1998-2016,2017 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: terminfo.tail,v 1.100 2020/12/19 21:51:22 tom Exp @
- *.in -2
- *.in +2
- *.in -2
- *.in +2
- *.TH
+ * @Id: terminfo.head,v 1.65 2024/04/20 21:14:00 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>terminfo 5 File Formats</TITLE>
+<TITLE>terminfo 5 2024-04-20 ncurses 6.5 File formats</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">terminfo 5 File Formats</H1>
+<H1 class="no-header">terminfo 5 2024-04-20 ncurses 6.5 File formats</H1>
<PRE>
-<STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> File Formats <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
+<STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> File formats <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- terminfo - terminal capability data base
+ <STRONG>terminfo</STRONG> - terminal capability database
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -95,7 +60,7 @@
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- <EM>Terminfo</EM> is a data base describing terminals, used by screen-oriented
+ <EM>Terminfo</EM> is a database describing terminals, used by screen-oriented
programs such as <STRONG>nvi(1)</STRONG>, <STRONG>lynx(1)</STRONG>, <STRONG>mutt(1)</STRONG>, and other curses
applications, using high-level calls to libraries such as <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>.
It is also used via low-level calls by non-curses applications which
@@ -106,10 +71,10 @@
have, by specifying how to perform screen operations, and by specifying
padding requirements and initialization sequences.
- This manual describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210109).
+ This document describes <EM>ncurses</EM> version 6.5 (patch 20240427).
-</PRE><H3><a name="h3-Terminfo-Entry-Syntax">Terminfo Entry Syntax</a></H3><PRE>
+</PRE><H3><a name="h3-terminfo-Entry-Syntax"><EM>terminfo</EM> Entry Syntax</a></H3><PRE>
Entries in <EM>terminfo</EM> consist of a sequence of fields:
<STRONG>o</STRONG> Each field ends with a comma "," (embedded commas may be escaped
@@ -148,7 +113,7 @@
<STRONG>o</STRONG> Lines beginning with a "#" in the first column are treated as
comments.
- While comment lines are legal at any point, the output of <STRONG>captoinfo</STRONG>
+ While comment lines are valid at any point, the output of <STRONG>captoinfo</STRONG>
and <STRONG>infotocap</STRONG> (aliases for <STRONG>tic</STRONG>) will move comments so they occur
only between entries.
@@ -160,35 +125,36 @@
suffix. Thus, a vt100 in 132-column mode would be vt100-w. The
following suffixes should be used where possible:
- <STRONG>Suffix</STRONG> <STRONG>Meaning</STRONG> <STRONG>Example</STRONG>
- -<EM>nn</EM> Number of lines on the screen aaa-60
- -<EM>n</EM>p Number of pages of memory c100-4p
- -am With automargins (usually the default) vt100-am
- -m Mono mode; suppress color ansi-m
- -mc Magic cookie; spaces when highlighting wy30-mc
- -na No arrow keys (leave them in local) c100-na
- -nam Without automatic margins vt100-nam
- -nl No status line att4415-nl
- -ns No status line hp2626-ns
- -rv Reverse video c100-rv
- -s Enable status line vt100-s
- -vb Use visible bell instead of beep wy370-vb
- -w Wide mode (&gt; 80 columns, usually 132) vt100-w
+ <STRONG>Suffix</STRONG> <STRONG>Example</STRONG> <STRONG>Meaning</STRONG>
+ ------------------------------------------------------------------------
+ -<EM>nn</EM> aaa-60 Number of lines on the screen
+ -<EM>n</EM>p c100-4p Number of pages of memory
+ -am vt100-am With automargins (usually the default)
+ -m ansi-m Mono mode; suppress color
+ -mc wy30-mc Magic cookie; spaces when highlighting
+ -na c100-na No arrow keys (leave them in local)
+ -nam vt100-nam Without automatic margins
+ -nl hp2621-nl No status line
+ -ns hp2626-ns No status line
+ -rv c100-rv Reverse video
+ -s vt100-s Enable status line
+ -vb wy370-vb Use visible bell instead of beep
+ -w vt100-w Wide mode (&gt; 80 columns, usually 132)
For more on terminal naming conventions, see the <STRONG><A HREF="term.7.html">term(7)</A></STRONG> manual page.
-</PRE><H3><a name="h3-Terminfo-Capabilities-Syntax">Terminfo Capabilities Syntax</a></H3><PRE>
+</PRE><H3><a name="h3-terminfo-Capabilities-Syntax"><EM>terminfo</EM> Capabilities Syntax</a></H3><PRE>
The terminfo entry consists of several <EM>capabilities</EM>, i.e., features
that the terminal has, or methods for exercising the terminal's
features.
After the first field (giving the name(s) of the terminal entry), there
- should be one or more <EM>capability</EM> fields. These are boolean, numeric or
+ should be one or more <EM>capability</EM> fields. These are Boolean, numeric or
string names with corresponding values:
<STRONG>o</STRONG> Boolean capabilities are true when present, false when absent.
- There is no explicit value for boolean capabilities.
+ There is no explicit value for Boolean capabilities.
<STRONG>o</STRONG> Numeric capabilities have a "#" following the name, then an
unsigned decimal integer value.
@@ -239,941 +205,770 @@
</PRE><H3><a name="h3-Predefined-Capabilities">Predefined Capabilities</a></H3><PRE>
- The following is a complete table of the capabilities included in a
- terminfo description block and available to terminfo-using code. In
- each line of the table,
-
- The <STRONG>variable</STRONG> is the name by which the programmer (at the terminfo
- level) accesses the capability.
-
- The <STRONG>capname</STRONG> is the short name used in the text of the database, and is
- used by a person updating the database. Whenever possible, capnames
- are chosen to be the same as or similar to the ANSI X3.64-1979 standard
- (now superseded by ECMA-48, which uses identical or very similar
- names). Semantics are also intended to match those of the
- specification.
-
- The termcap code is the old <STRONG>termcap</STRONG> capability name (some capabilities
- are new, and have names which termcap did not originate).
-
- Capability names have no hard length limit, but an informal limit of 5
- characters has been adopted to keep them short and to allow the tabs in
- the source file <STRONG>Caps</STRONG> to line up nicely.
-
- Finally, the description field attempts to convey the semantics of the
- capability. You may find some codes in the description field:
-
- (P) indicates that padding may be specified
-
- #[1-9] in the description field indicates that the string is passed
- through <STRONG><A HREF="curs_terminfo.3x.html">tparm(3x)</A></STRONG> with parameters as given (#<EM>i</EM>).
-
- If no parameters are listed in the description, passing the
- string through <STRONG><A HREF="curs_terminfo.3x.html">tparm(3x)</A></STRONG> may give unexpected results, e.g., if
- it contains percent (%%) signs.
-
- (P*) indicates that padding may vary in proportion to the number of
- lines affected
-
- (#<EM>i</EM>) indicates the <EM>i</EM>th parameter.
-
-
- These are the boolean capabilities:
-
-
- <STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG>
- <STRONG>Booleans</STRONG> <STRONG>name</STRONG> <STRONG>Code</STRONG>
-
-
-
- auto_left_margin bw bw cub1 wraps from
- column 0 to last
- column
- auto_right_margin am am terminal has
- automatic margins
- back_color_erase bce ut screen erased with
- background color
- can_change ccc cc terminal can re-
- define existing
- colors
- ceol_standout_glitch xhp xs standout not erased
- by overwriting (hp)
- col_addr_glitch xhpa YA only positive motion
- for hpa/mhpa caps
- cpi_changes_res cpix YF changing character
- pitch changes
- resolution
- cr_cancels_micro_mode crxm YB using cr turns off
- micro mode
- dest_tabs_magic_smso xt xt tabs destructive,
- magic so char
- (t1061)
- eat_newline_glitch xenl xn newline ignored
- after 80 cols
- (concept)
- erase_overstrike eo eo can erase
- overstrikes with a
- blank
- generic_type gn gn generic line type
- hard_copy hc hc hardcopy terminal
- hard_cursor chts HC cursor is hard to
- see
- has_meta_key km km Has a meta key
- (i.e., sets 8th-bit)
- has_print_wheel daisy YC printer needs
- operator to change
- character set
- has_status_line hs hs has extra status
- line
- hue_lightness_saturation hls hl terminal uses only
- HLS color notation
- (Tektronix)
- insert_null_glitch in in insert mode
- distinguishes nulls
- lpi_changes_res lpix YG changing line pitch
- changes resolution
- memory_above da da display may be
- retained above the
- screen
- memory_below db db display may be
- retained below the
- screen
- move_insert_mode mir mi safe to move while
- in insert mode
- move_standout_mode msgr ms safe to move while
- in standout mode
- needs_xon_xoff nxon nx padding will not
- work, xon/xoff
- required
- no_esc_ctlc xsb xb beehive (f1=escape,
- f2=ctrl C)
- no_pad_char npc NP pad character does
- not exist
- non_dest_scroll_region ndscr ND scrolling region is
- non-destructive
-
- non_rev_rmcup nrrmc NR smcup does not
- reverse rmcup
- over_strike os os terminal can
- overstrike
- prtr_silent mc5i 5i printer will not
- echo on screen
- row_addr_glitch xvpa YD only positive motion
- for vpa/mvpa caps
- semi_auto_right_margin sam YE printing in last
- column causes cr
- status_line_esc_ok eslok es escape can be used
- on the status line
- tilde_glitch hz hz cannot print ~'s
- (Hazeltine)
- transparent_underline ul ul underline character
- overstrikes
- xon_xoff xon xo terminal uses
- xon/xoff handshaking
-
- These are the numeric capabilities:
-
-
- <STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG>
- <STRONG>Numeric</STRONG> <STRONG>name</STRONG> <STRONG>Code</STRONG>
- columns cols co number of columns in
- a line
- init_tabs it it tabs initially every
- # spaces
- label_height lh lh rows in each label
- label_width lw lw columns in each
- label
- lines lines li number of lines on
- screen or page
- lines_of_memory lm lm lines of memory if &gt;
- line. 0 means varies
- magic_cookie_glitch xmc sg number of blank
- characters left by
- smso or rmso
- max_attributes ma ma maximum combined
- attributes terminal
- can handle
- max_colors colors Co maximum number of
- colors on screen
- max_pairs pairs pa maximum number of
- color-pairs on the
- screen
- maximum_windows wnum MW maximum number of
- definable windows
- no_color_video ncv NC video attributes
- that cannot be used
- with colors
- num_labels nlab Nl number of labels on
- screen
- padding_baud_rate pb pb lowest baud rate
- where padding needed
- virtual_terminal vt vt virtual terminal
- number (CB/unix)
- width_status_line wsl ws number of columns in
- status line
-
- The following numeric capabilities are present in the SVr4.0 term
- structure, but are not yet documented in the man page. They came in
+ Tables of capabilities <EM>ncurses</EM> recognizes in a <EM>terminfo</EM> terminal type
+ description and available to <EM>terminfo</EM>-using code follow.
+
+ <STRONG>o</STRONG> The capability name identifies the symbol by which the programmer
+ using the <EM>terminfo</EM> API accesses the capability.
+
+ <STRONG>o</STRONG> The TI (<EM>terminfo</EM>) code is the short name used by a person composing
+ or updating a terminal type entry.
+
+ Whenever possible, these codes are the same as or similar to those
+ of the ANSI X3.64-1979 standard (now superseded by ECMA-48, which
+ uses identical or very similar names). Semantics are also intended
+ to match those of the specification.
+
+ <EM>terminfo</EM> codes have no hard length limit, but <EM>ncurses</EM> maintains an
+ informal one of 5 characters to keep them short and to allow the
+ tabs in the source file <EM>Caps</EM> to line up nicely. (Some standard
+ codes exceed this limit regardless.)
+
+ <STRONG>o</STRONG> The TC (<EM>termcap</EM>) code is that used by the corresponding API of
+ <EM>ncurses</EM>. (Some capabilities are new, and have names that BSD
+ <EM>termcap</EM> did not originate.)
+
+ <STRONG>o</STRONG> The description field attempts to convey the capability's
+ semantics.
+
+ The description field employs a handful of notations.
+
+ <STRONG>(P)</STRONG> indicates that padding may be specified.
+
+ <STRONG>(P*)</STRONG> indicates that padding may vary in proportion to the number of
+ output lines affected.
+
+ <STRONG>#</STRONG><EM>i</EM> indicates the <EM>i</EM>th parameter of a string capability; the
+ programmer should pass the string to <STRONG><A HREF="curs_terminfo.3x.html">tparm(3x)</A></STRONG> with the
+ parameters listed.
+
+ If the description lists no parameters, passing the string to
+ <STRONG><A HREF="curs_terminfo.3x.html">tparm(3x)</A></STRONG> may produce unexpected behavior, for instance if the
+ string contains percent signs.
+
+ <STRONG>Code</STRONG>
+ <STRONG>Boolean</STRONG> <STRONG>Capability</STRONG> <STRONG>Name</STRONG> <STRONG>TI</STRONG> <STRONG>TC</STRONG> <STRONG>Description</STRONG>
+ ------------------------------------------------------------------------
+
+
+ <STRONG>auto_left_margin</STRONG> <STRONG>bw</STRONG> <STRONG>bw</STRONG> cub1 wraps from column 0 to
+ last column
+ <STRONG>auto_right_margin</STRONG> <STRONG>am</STRONG> <STRONG>am</STRONG> terminal has automatic margins
+ <STRONG>no_esc_ctlc</STRONG> <STRONG>xsb</STRONG> <STRONG>xb</STRONG> beehive (f1=escape, f2=ctrl C)
+ <STRONG>ceol_standout_glitch</STRONG> <STRONG>xhp</STRONG> <STRONG>xs</STRONG> standout not erased by
+ overwriting (hp)
+ <STRONG>eat_newline_glitch</STRONG> <STRONG>xenl</STRONG> <STRONG>xn</STRONG> newline ignored after 80 cols
+ (concept)
+ <STRONG>erase_overstrike</STRONG> <STRONG>eo</STRONG> <STRONG>eo</STRONG> can erase overstrikes with a
+ blank
+ <STRONG>generic_type</STRONG> <STRONG>gn</STRONG> <STRONG>gn</STRONG> generic line type
+ <STRONG>hard_copy</STRONG> <STRONG>hc</STRONG> <STRONG>hc</STRONG> hardcopy terminal
+ <STRONG>has_meta_key</STRONG> <STRONG>km</STRONG> <STRONG>km</STRONG> Has a meta key (i.e., sets
+ 8th-bit)
+ <STRONG>has_status_line</STRONG> <STRONG>hs</STRONG> <STRONG>hs</STRONG> has extra status line
+ <STRONG>insert_null_glitch</STRONG> <STRONG>in</STRONG> <STRONG>in</STRONG> insert mode distinguishes
+ nulls
+ <STRONG>memory_above</STRONG> <STRONG>da</STRONG> <STRONG>da</STRONG> display may be retained above
+ the screen
+ <STRONG>memory_below</STRONG> <STRONG>db</STRONG> <STRONG>db</STRONG> display may be retained below
+ the screen
+ <STRONG>move_insert_mode</STRONG> <STRONG>mir</STRONG> <STRONG>mi</STRONG> safe to move while in insert
+ mode
+ <STRONG>move_standout_mode</STRONG> <STRONG>msgr</STRONG> <STRONG>ms</STRONG> safe to move while in standout
+ mode
+ <STRONG>over_strike</STRONG> <STRONG>os</STRONG> <STRONG>os</STRONG> terminal can overstrike
+ <STRONG>status_line_esc_ok</STRONG> <STRONG>eslok</STRONG> <STRONG>es</STRONG> escape can be used on the
+ status line
+ <STRONG>dest_tabs_magic_smso</STRONG> <STRONG>xt</STRONG> <STRONG>xt</STRONG> tabs destructive, magic so
+ char (t1061)
+ <STRONG>tilde_glitch</STRONG> <STRONG>hz</STRONG> <STRONG>hz</STRONG> cannot print ~'s (Hazeltine)
+ <STRONG>transparent_underline</STRONG> <STRONG>ul</STRONG> <STRONG>ul</STRONG> underline character
+ overstrikes
+ <STRONG>xon_xoff</STRONG> <STRONG>xon</STRONG> <STRONG>xo</STRONG> terminal uses xon/xoff
+ handshaking
+ <STRONG>needs_xon_xoff</STRONG> <STRONG>nxon</STRONG> <STRONG>nx</STRONG> padding will not work,
+ xon/xoff required
+ <STRONG>prtr_silent</STRONG> <STRONG>mc5i</STRONG> <STRONG>5i</STRONG> printer will not echo on
+ screen
+ <STRONG>hard_cursor</STRONG> <STRONG>chts</STRONG> <STRONG>HC</STRONG> cursor is hard to see
+ <STRONG>non_rev_rmcup</STRONG> <STRONG>nrrmc</STRONG> <STRONG>NR</STRONG> smcup does not reverse rmcup
+ <STRONG>no_pad_char</STRONG> <STRONG>npc</STRONG> <STRONG>NP</STRONG> pad character does not exist
+ <STRONG>non_dest_scroll_region</STRONG> <STRONG>ndscr</STRONG> <STRONG>ND</STRONG> scrolling region is non-
+ destructive
+ <STRONG>can_change</STRONG> <STRONG>ccc</STRONG> <STRONG>cc</STRONG> terminal can re-define
+ existing colors
+ <STRONG>back_color_erase</STRONG> <STRONG>bce</STRONG> <STRONG>ut</STRONG> screen erased with background
+ color
+ <STRONG>hue_lightness_saturation</STRONG> <STRONG>hls</STRONG> <STRONG>hl</STRONG> terminal uses only HLS color
+ notation (Tektronix)
+ <STRONG>col_addr_glitch</STRONG> <STRONG>xhpa</STRONG> <STRONG>YA</STRONG> only positive motion for
+ hpa/mhpa caps
+ <STRONG>cr_cancels_micro_mode</STRONG> <STRONG>crxm</STRONG> <STRONG>YB</STRONG> using cr turns off micro mode
+ <STRONG>has_print_wheel</STRONG> <STRONG>daisy</STRONG> <STRONG>YC</STRONG> printer needs operator to
+ change character set
+ <STRONG>row_addr_glitch</STRONG> <STRONG>xvpa</STRONG> <STRONG>YD</STRONG> only positive motion for
+ vpa/mvpa caps
+ <STRONG>semi_auto_right_margin</STRONG> <STRONG>sam</STRONG> <STRONG>YE</STRONG> printing in last column causes
+ cr
+ <STRONG>cpi_changes_res</STRONG> <STRONG>cpix</STRONG> <STRONG>YF</STRONG> changing character pitch
+ changes resolution
+ <STRONG>lpi_changes_res</STRONG> <STRONG>lpix</STRONG> <STRONG>YG</STRONG> changing line pitch changes
+ resolution
+
+ <STRONG>Code</STRONG>
+
+ <STRONG>Numeric</STRONG> <STRONG>Capability</STRONG> <STRONG>Name</STRONG> <STRONG>TI</STRONG> <STRONG>TC</STRONG> <STRONG>Description</STRONG>
+ ------------------------------------------------------------------------
+ <STRONG>columns</STRONG> <STRONG>cols</STRONG> <STRONG>co</STRONG> number of columns in a line
+ <STRONG>init_tabs</STRONG> <STRONG>it</STRONG> <STRONG>it</STRONG> tabs initially every # spaces
+ <STRONG>lines</STRONG> <STRONG>lines</STRONG> <STRONG>li</STRONG> number of lines on screen or
+ page
+ <STRONG>lines_of_memory</STRONG> <STRONG>lm</STRONG> <STRONG>lm</STRONG> lines of memory if &gt; line. 0
+ means varies
+ <STRONG>magic_cookie_glitch</STRONG> <STRONG>xmc</STRONG> <STRONG>sg</STRONG> number of blank characters
+ left by smso or rmso
+ <STRONG>padding_baud_rate</STRONG> <STRONG>pb</STRONG> <STRONG>pb</STRONG> lowest baud rate where padding
+ needed
+ <STRONG>virtual_terminal</STRONG> <STRONG>vt</STRONG> <STRONG>vt</STRONG> virtual terminal number
+ (CB/unix)
+ <STRONG>width_status_line</STRONG> <STRONG>wsl</STRONG> <STRONG>ws</STRONG> number of columns in status
+ line
+ <STRONG>num_labels</STRONG> <STRONG>nlab</STRONG> <STRONG>Nl</STRONG> number of labels on screen
+ <STRONG>label_height</STRONG> <STRONG>lh</STRONG> <STRONG>lh</STRONG> rows in each label
+ <STRONG>label_width</STRONG> <STRONG>lw</STRONG> <STRONG>lw</STRONG> columns in each label
+ <STRONG>max_attributes</STRONG> <STRONG>ma</STRONG> <STRONG>ma</STRONG> maximum combined attributes
+ terminal can handle
+ <STRONG>maximum_windows</STRONG> <STRONG>wnum</STRONG> <STRONG>MW</STRONG> maximum number of definable
+ windows
+ <STRONG>max_colors</STRONG> <STRONG>colors</STRONG> <STRONG>Co</STRONG> maximum number of colors on
+ screen
+ <STRONG>max_pairs</STRONG> <STRONG>pairs</STRONG> <STRONG>pa</STRONG> maximum number of color-pairs
+ on the screen
+ <STRONG>no_color_video</STRONG> <STRONG>ncv</STRONG> <STRONG>NC</STRONG> video attributes that cannot
+ be used with colors
+
+ The following numeric capabilities are present in the SVr4.0 term
+ structure, but are not yet documented in the man page. They came in
with SVr4's printer support.
-
-
- <STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG>
- <STRONG>Numeric</STRONG> <STRONG>name</STRONG> <STRONG>Code</STRONG>
- bit_image_entwining bitwin Yo number of passes for
- each bit-image row
- bit_image_type bitype Yp type of bit-image
- device
- buffer_capacity bufsz Ya numbers of bytes
- buffered before
- printing
- buttons btns BT number of buttons on
- mouse
- dot_horz_spacing spinh Yc spacing of dots
- horizontally in dots
- per inch
- dot_vert_spacing spinv Yb spacing of pins
- vertically in pins
- per inch
- max_micro_address maddr Yd maximum value in
- micro_..._address
- max_micro_jump mjump Ye maximum value in
- parm_..._micro
- micro_col_size mcs Yf character step size
- when in micro mode
- micro_line_size mls Yg line step size when
- in micro mode
- number_of_pins npins Yh numbers of pins in
- print-head
- output_res_char orc Yi horizontal
- resolution in units
- per line
- output_res_horz_inch orhi Yk horizontal
- resolution in units
- per inch
- output_res_line orl Yj vertical resolution
- in units per line
- output_res_vert_inch orvi Yl vertical resolution
- in units per inch
- print_rate cps Ym print rate in
- characters per
- second
- wide_char_size widcs Yn character step size
- when in double wide
- mode
-
- These are the string capabilities:
-
-
- <STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG>
- <STRONG>String</STRONG> <STRONG>name</STRONG> <STRONG>Code</STRONG>
- acs_chars acsc ac graphics charset
- pairs, based on
- vt100
- back_tab cbt bt back tab (P)
- bell bel bl audible signal
- (bell) (P)
- carriage_return cr cr carriage return (P*)
- (P*)
- change_char_pitch cpi ZA Change number of
- characters per inch
- to #1
- change_line_pitch lpi ZB Change number of
- lines per inch to #1
- change_res_horz chr ZC Change horizontal
- resolution to #1
-
-
- change_res_vert cvr ZD Change vertical
- resolution to #1
- change_scroll_region csr cs change region to
- line #1 to line #2
- (P)
- char_padding rmp rP like ip but when in
- insert mode
- clear_all_tabs tbc ct clear all tab stops
- (P)
- clear_margins mgc MC clear right and left
- soft margins
- clear_screen clear cl clear screen and
- home cursor (P*)
- clr_bol el1 cb Clear to beginning
- of line
- clr_eol el ce clear to end of line
- (P)
- clr_eos ed cd clear to end of
- screen (P*)
- column_address hpa ch horizontal position
- #1, absolute (P)
- command_character cmdch CC terminal settable
- cmd character in
- prototype !?
- create_window cwin CW define a window #1
- from #2,#3 to #4,#5
- cursor_address cup cm move to row #1
- columns #2
- cursor_down cud1 do down one line
- cursor_home home ho home cursor (if no
- cup)
- cursor_invisible civis vi make cursor
- invisible
- cursor_left cub1 le move left one space
- cursor_mem_address mrcup CM memory relative
- cursor addressing,
- move to row #1
- columns #2
- cursor_normal cnorm ve make cursor appear
- normal (undo
- civis/cvvis)
- cursor_right cuf1 nd non-destructive
- space (move right
- one space)
- cursor_to_ll ll ll last line, first
- column (if no cup)
- cursor_up cuu1 up up one line
- cursor_visible cvvis vs make cursor very
- visible
- define_char defc ZE Define a character
- #1, #2 dots wide,
- descender #3
- delete_character dch1 dc delete character
- (P*)
- delete_line dl1 dl delete line (P*)
- dial_phone dial DI dial number #1
- dis_status_line dsl ds disable status line
- display_clock dclk DK display clock
- down_half_line hd hd half a line down
- ena_acs enacs eA enable alternate
- char set
- enter_alt_charset_mode smacs as start alternate
- character set (P)
- enter_am_mode smam SA turn on automatic
- margins
-
- enter_blink_mode blink mb turn on blinking
- enter_bold_mode bold md turn on bold (extra
- bright) mode
- enter_ca_mode smcup ti string to start
- programs using cup
- enter_delete_mode smdc dm enter delete mode
- enter_dim_mode dim mh turn on half-bright
- mode
- enter_doublewide_mode swidm ZF Enter double-wide
- mode
- enter_draft_quality sdrfq ZG Enter draft-quality
- mode
- enter_insert_mode smir im enter insert mode
- enter_italics_mode sitm ZH Enter italic mode
- enter_leftward_mode slm ZI Start leftward
- carriage motion
- enter_micro_mode smicm ZJ Start micro-motion
- mode
- enter_near_letter_quality snlq ZK Enter NLQ mode
- enter_normal_quality snrmq ZL Enter normal-quality
- mode
- enter_protected_mode prot mp turn on protected
- mode
- enter_reverse_mode rev mr turn on reverse
- video mode
- enter_secure_mode invis mk turn on blank mode
- (characters
- invisible)
- enter_shadow_mode sshm ZM Enter shadow-print
- mode
- enter_standout_mode smso so begin standout mode
- enter_subscript_mode ssubm ZN Enter subscript mode
- enter_superscript_mode ssupm ZO Enter superscript
- mode
- enter_underline_mode smul us begin underline mode
- enter_upward_mode sum ZP Start upward
- carriage motion
- enter_xon_mode smxon SX turn on xon/xoff
- handshaking
- erase_chars ech ec erase #1 characters
- (P)
- exit_alt_charset_mode rmacs ae end alternate
- character set (P)
- exit_am_mode rmam RA turn off automatic
- margins
- exit_attribute_mode sgr0 me turn off all
- attributes
- exit_ca_mode rmcup te strings to end
- programs using cup
- exit_delete_mode rmdc ed end delete mode
- exit_doublewide_mode rwidm ZQ End double-wide mode
- exit_insert_mode rmir ei exit insert mode
- exit_italics_mode ritm ZR End italic mode
- exit_leftward_mode rlm ZS End left-motion mode
- exit_micro_mode rmicm ZT End micro-motion
- mode
- exit_shadow_mode rshm ZU End shadow-print
- mode
- exit_standout_mode rmso se exit standout mode
- exit_subscript_mode rsubm ZV End subscript mode
- exit_superscript_mode rsupm ZW End superscript mode
- exit_underline_mode rmul ue exit underline mode
- exit_upward_mode rum ZX End reverse
- character motion
-
-
- exit_xon_mode rmxon RX turn off xon/xoff
- handshaking
- fixed_pause pause PA pause for 2-3
- seconds
- flash_hook hook fh flash switch hook
- flash_screen flash vb visible bell (may
- not move cursor)
- form_feed ff ff hardcopy terminal
- page eject (P*)
- from_status_line fsl fs return from status
- line
- goto_window wingo WG go to window #1
- hangup hup HU hang-up phone
- init_1string is1 i1 initialization
- string
- init_2string is2 is initialization
- string
- init_3string is3 i3 initialization
- string
- init_file if if name of
- initialization file
- init_prog iprog iP path name of program
- for initialization
- initialize_color initc Ic initialize color #1
- to (#2,#3,#4)
- initialize_pair initp Ip Initialize color
- pair #1 to
- fg=(#2,#3,#4),
- bg=(#5,#6,#7)
- insert_character ich1 ic insert character (P)
- insert_line il1 al insert line (P*)
- insert_padding ip ip insert padding after
- inserted character
- key_a1 ka1 K1 upper left of keypad
- key_a3 ka3 K3 upper right of
- keypad
- key_b2 kb2 K2 center of keypad
- key_backspace kbs kb backspace key
- key_beg kbeg @1 begin key
- key_btab kcbt kB back-tab key
- key_c1 kc1 K4 lower left of keypad
- key_c3 kc3 K5 lower right of
- keypad
- key_cancel kcan @2 cancel key
- key_catab ktbc ka clear-all-tabs key
- key_clear kclr kC clear-screen or
- erase key
- key_close kclo @3 close key
- key_command kcmd @4 command key
- key_copy kcpy @5 copy key
- key_create kcrt @6 create key
- key_ctab kctab kt clear-tab key
- key_dc kdch1 kD delete-character key
- key_dl kdl1 kL delete-line key
- key_down kcud1 kd down-arrow key
- key_eic krmir kM sent by rmir or smir
- in insert mode
- key_end kend @7 end key
- key_enter kent @8 enter/send key
- key_eol kel kE clear-to-end-of-line
- key
- key_eos ked kS clear-to-end-of-
- screen key
- key_exit kext @9 exit key
- key_f0 kf0 k0 F0 function key
-
- key_f1 kf1 k1 F1 function key
- key_f10 kf10 k; F10 function key
- key_f11 kf11 F1 F11 function key
- key_f12 kf12 F2 F12 function key
- key_f13 kf13 F3 F13 function key
- key_f14 kf14 F4 F14 function key
- key_f15 kf15 F5 F15 function key
- key_f16 kf16 F6 F16 function key
- key_f17 kf17 F7 F17 function key
- key_f18 kf18 F8 F18 function key
- key_f19 kf19 F9 F19 function key
- key_f2 kf2 k2 F2 function key
- key_f20 kf20 FA F20 function key
- key_f21 kf21 FB F21 function key
- key_f22 kf22 FC F22 function key
- key_f23 kf23 FD F23 function key
- key_f24 kf24 FE F24 function key
- key_f25 kf25 FF F25 function key
- key_f26 kf26 FG F26 function key
- key_f27 kf27 FH F27 function key
- key_f28 kf28 FI F28 function key
- key_f29 kf29 FJ F29 function key
- key_f3 kf3 k3 F3 function key
- key_f30 kf30 FK F30 function key
- key_f31 kf31 FL F31 function key
- key_f32 kf32 FM F32 function key
- key_f33 kf33 FN F33 function key
- key_f34 kf34 FO F34 function key
- key_f35 kf35 FP F35 function key
- key_f36 kf36 FQ F36 function key
- key_f37 kf37 FR F37 function key
- key_f38 kf38 FS F38 function key
- key_f39 kf39 FT F39 function key
- key_f4 kf4 k4 F4 function key
- key_f40 kf40 FU F40 function key
- key_f41 kf41 FV F41 function key
- key_f42 kf42 FW F42 function key
- key_f43 kf43 FX F43 function key
- key_f44 kf44 FY F44 function key
- key_f45 kf45 FZ F45 function key
- key_f46 kf46 Fa F46 function key
- key_f47 kf47 Fb F47 function key
- key_f48 kf48 Fc F48 function key
- key_f49 kf49 Fd F49 function key
- key_f5 kf5 k5 F5 function key
- key_f50 kf50 Fe F50 function key
- key_f51 kf51 Ff F51 function key
- key_f52 kf52 Fg F52 function key
- key_f53 kf53 Fh F53 function key
- key_f54 kf54 Fi F54 function key
- key_f55 kf55 Fj F55 function key
- key_f56 kf56 Fk F56 function key
- key_f57 kf57 Fl F57 function key
- key_f58 kf58 Fm F58 function key
- key_f59 kf59 Fn F59 function key
- key_f6 kf6 k6 F6 function key
- key_f60 kf60 Fo F60 function key
- key_f61 kf61 Fp F61 function key
- key_f62 kf62 Fq F62 function key
- key_f63 kf63 Fr F63 function key
- key_f7 kf7 k7 F7 function key
- key_f8 kf8 k8 F8 function key
- key_f9 kf9 k9 F9 function key
- key_find kfnd @0 find key
- key_help khlp %1 help key
-
- key_home khome kh home key
- key_ic kich1 kI insert-character key
- key_il kil1 kA insert-line key
- key_left kcub1 kl left-arrow key
- key_ll kll kH lower-left key (home
- down)
- key_mark kmrk %2 mark key
- key_message kmsg %3 message key
- key_move kmov %4 move key
- key_next knxt %5 next key
- key_npage knp kN next-page key
- key_open kopn %6 open key
- key_options kopt %7 options key
- key_ppage kpp kP previous-page key
- key_previous kprv %8 previous key
- key_print kprt %9 print key
- key_redo krdo %0 redo key
- key_reference kref &amp;1 reference key
- key_refresh krfr &amp;2 refresh key
- key_replace krpl &amp;3 replace key
- key_restart krst &amp;4 restart key
- key_resume kres &amp;5 resume key
- key_right kcuf1 kr right-arrow key
- key_save ksav &amp;6 save key
- key_sbeg kBEG &amp;9 shifted begin key
- key_scancel kCAN &amp;0 shifted cancel key
- key_scommand kCMD *1 shifted command key
- key_scopy kCPY *2 shifted copy key
- key_screate kCRT *3 shifted create key
- key_sdc kDC *4 shifted delete-
- character key
- key_sdl kDL *5 shifted delete-line
- key
- key_select kslt *6 select key
- key_send kEND *7 shifted end key
- key_seol kEOL *8 shifted clear-to-
- end-of-line key
- key_sexit kEXT *9 shifted exit key
- key_sf kind kF scroll-forward key
- key_sfind kFND *0 shifted find key
- key_shelp kHLP #1 shifted help key
- key_shome kHOM #2 shifted home key
- key_sic kIC #3 shifted insert-
- character key
- key_sleft kLFT #4 shifted left-arrow
- key
- key_smessage kMSG %a shifted message key
- key_smove kMOV %b shifted move key
- key_snext kNXT %c shifted next key
- key_soptions kOPT %d shifted options key
- key_sprevious kPRV %e shifted previous key
- key_sprint kPRT %f shifted print key
- key_sr kri kR scroll-backward key
- key_sredo kRDO %g shifted redo key
- key_sreplace kRPL %h shifted replace key
- key_sright kRIT %i shifted right-arrow
- key
- key_srsume kRES %j shifted resume key
- key_ssave kSAV !1 shifted save key
- key_ssuspend kSPD !2 shifted suspend key
- key_stab khts kT set-tab key
- key_sundo kUND !3 shifted undo key
- key_suspend kspd &amp;7 suspend key
- key_undo kund &amp;8 undo key
- key_up kcuu1 ku up-arrow key
-
- keypad_local rmkx ke leave
- 'keyboard_transmit'
- mode
- keypad_xmit smkx ks enter
- 'keyboard_transmit'
- mode
- lab_f0 lf0 l0 label on function
- key f0 if not f0
- lab_f1 lf1 l1 label on function
- key f1 if not f1
- lab_f10 lf10 la label on function
- key f10 if not f10
- lab_f2 lf2 l2 label on function
- key f2 if not f2
- lab_f3 lf3 l3 label on function
- key f3 if not f3
- lab_f4 lf4 l4 label on function
- key f4 if not f4
- lab_f5 lf5 l5 label on function
- key f5 if not f5
- lab_f6 lf6 l6 label on function
- key f6 if not f6
- lab_f7 lf7 l7 label on function
- key f7 if not f7
- lab_f8 lf8 l8 label on function
- key f8 if not f8
- lab_f9 lf9 l9 label on function
- key f9 if not f9
- label_format fln Lf label format
- label_off rmln LF turn off soft labels
- label_on smln LO turn on soft labels
- meta_off rmm mo turn off meta mode
- meta_on smm mm turn on meta mode
- (8th-bit on)
- micro_column_address mhpa ZY Like column_address
- in micro mode
- micro_down mcud1 ZZ Like cursor_down in
- micro mode
- micro_left mcub1 Za Like cursor_left in
- micro mode
- micro_right mcuf1 Zb Like cursor_right in
- micro mode
- micro_row_address mvpa Zc Like row_address #1
- in micro mode
- micro_up mcuu1 Zd Like cursor_up in
- micro mode
- newline nel nw newline (behave like
- cr followed by lf)
- order_of_pins porder Ze Match software bits
- to print-head pins
- orig_colors oc oc Set all color pairs
- to the original ones
- orig_pair op op Set default pair to
- its original value
- pad_char pad pc padding char
- (instead of null)
- parm_dch dch DC delete #1 characters
- (P*)
- parm_delete_line dl DL delete #1 lines (P*)
- parm_down_cursor cud DO down #1 lines (P*)
- parm_down_micro mcud Zf Like
- parm_down_cursor in
- micro mode
- parm_ich ich IC insert #1 characters
- (P*)
-
- parm_index indn SF scroll forward #1
- lines (P)
- parm_insert_line il AL insert #1 lines (P*)
- parm_left_cursor cub LE move #1 characters
- to the left (P)
- parm_left_micro mcub Zg Like
- parm_left_cursor in
- micro mode
- parm_right_cursor cuf RI move #1 characters
- to the right (P*)
- parm_right_micro mcuf Zh Like
- parm_right_cursor in
- micro mode
- parm_rindex rin SR scroll back #1 lines
- (P)
- parm_up_cursor cuu UP up #1 lines (P*)
- parm_up_micro mcuu Zi Like parm_up_cursor
- in micro mode
- pkey_key pfkey pk program function key
- #1 to type string #2
- pkey_local pfloc pl program function key
- #1 to execute string
- #2
- pkey_xmit pfx px program function key
- #1 to transmit
- string #2
- plab_norm pln pn program label #1 to
- show string #2
- print_screen mc0 ps print contents of
- screen
- prtr_non mc5p pO turn on printer for
- #1 bytes
- prtr_off mc4 pf turn off printer
- prtr_on mc5 po turn on printer
- pulse pulse PU select pulse dialing
- quick_dial qdial QD dial number #1
- without checking
- remove_clock rmclk RC remove clock
- repeat_char rep rp repeat char #1 #2
- times (P*)
- req_for_input rfi RF send next input char
- (for ptys)
- reset_1string rs1 r1 reset string
- reset_2string rs2 r2 reset string
- reset_3string rs3 r3 reset string
- reset_file rf rf name of reset file
- restore_cursor rc rc restore cursor to
- position of last
- save_cursor
- row_address vpa cv vertical position #1
- absolute (P)
- save_cursor sc sc save current cursor
- position (P)
- scroll_forward ind sf scroll text up (P)
- scroll_reverse ri sr scroll text down (P)
- select_char_set scs Zj Select character
- set, #1
- set_attributes sgr sa define video
- attributes #1-#9
- (PG9)
- set_background setb Sb Set background color
- #1
- set_bottom_margin smgb Zk Set bottom margin at
- current line
-
-
- set_bottom_margin_parm smgbp Zl Set bottom margin at
- line #1 or (if smgtp
- is not given) #2
- lines from bottom
- set_clock sclk SC set clock, #1 hrs #2
- mins #3 secs
- set_color_pair scp sp Set current color
- pair to #1
- set_foreground setf Sf Set foreground color
- #1
- set_left_margin smgl ML set left soft margin
- at current
- column. See
- smgl. (ML is not in
- BSD termcap).
- set_left_margin_parm smglp Zm Set left (right)
- margin at column #1
- set_right_margin smgr MR set right soft
- margin at current
- column
- set_right_margin_parm smgrp Zn Set right margin at
- column #1
- set_tab hts st set a tab in every
- row, current columns
- set_top_margin smgt Zo Set top margin at
- current line
- set_top_margin_parm smgtp Zp Set top (bottom)
- margin at row #1
- set_window wind wi current window is
- lines #1-#2 cols
- #3-#4
- start_bit_image sbim Zq Start printing bit
- image graphics
- start_char_set_def scsd Zr Start character set
- definition #1, with
- #2 characters in the
- set
- stop_bit_image rbim Zs Stop printing bit
- image graphics
- stop_char_set_def rcsd Zt End definition of
- character set #1
- subscript_characters subcs Zu List of
- subscriptable
- characters
- superscript_characters supcs Zv List of
- superscriptable
- characters
- tab ht ta tab to next 8-space
- hardware tab stop
- these_cause_cr docr Zw Printing any of
- these characters
- causes CR
- to_status_line tsl ts move to status line,
- column #1
- tone tone TO select touch tone
- dialing
- underline_char uc uc underline char and
- move past it
- up_half_line hu hu half a line up
- user0 u0 u0 User string #0
- user1 u1 u1 User string #1
- user2 u2 u2 User string #2
- user3 u3 u3 User string #3
- user4 u4 u4 User string #4
- user5 u5 u5 User string #5
-
- user6 u6 u6 User string #6
- user7 u7 u7 User string #7
- user8 u8 u8 User string #8
- user9 u9 u9 User string #9
- wait_tone wait WA wait for dial-tone
- xoff_character xoffc XF XOFF character
- xon_character xonc XN XON character
- zero_motion zerom Zx No motion for
- subsequent character
-
- The following string capabilities are present in the SVr4.0 term
+ <STRONG>Code</STRONG>
+ <STRONG>Numeric</STRONG> <STRONG>Capability</STRONG> <STRONG>Name</STRONG> <STRONG>TI</STRONG> <STRONG>TC</STRONG> <STRONG>Description</STRONG>
+ ------------------------------------------------------------------------
+ <STRONG>buffer_capacity</STRONG> <STRONG>bufsz</STRONG> <STRONG>Ya</STRONG> numbers of bytes buffered
+ before printing
+ <STRONG>dot_vert_spacing</STRONG> <STRONG>spinv</STRONG> <STRONG>Yb</STRONG> spacing of pins vertically in
+ pins per inch
+ <STRONG>dot_horz_spacing</STRONG> <STRONG>spinh</STRONG> <STRONG>Yc</STRONG> spacing of dots horizontally
+ in dots per inch
+ <STRONG>max_micro_address</STRONG> <STRONG>maddr</STRONG> <STRONG>Yd</STRONG> maximum value in
+ micro_..._address
+ <STRONG>max_micro_jump</STRONG> <STRONG>mjump</STRONG> <STRONG>Ye</STRONG> maximum value in
+ parm_..._micro
+ <STRONG>micro_col_size</STRONG> <STRONG>mcs</STRONG> <STRONG>Yf</STRONG> character step size when in
+ micro mode
+ <STRONG>micro_line_size</STRONG> <STRONG>mls</STRONG> <STRONG>Yg</STRONG> line step size when in micro
+ mode
+ <STRONG>number_of_pins</STRONG> <STRONG>npins</STRONG> <STRONG>Yh</STRONG> numbers of pins in print-head
+ <STRONG>output_res_char</STRONG> <STRONG>orc</STRONG> <STRONG>Yi</STRONG> horizontal resolution in units
+ per line
+ <STRONG>output_res_line</STRONG> <STRONG>orl</STRONG> <STRONG>Yj</STRONG> vertical resolution in units
+ per line
+ <STRONG>output_res_horz_inch</STRONG> <STRONG>orhi</STRONG> <STRONG>Yk</STRONG> horizontal resolution in units
+ per inch
+ <STRONG>output_res_vert_inch</STRONG> <STRONG>orvi</STRONG> <STRONG>Yl</STRONG> vertical resolution in units
+ per inch
+ <STRONG>print_rate</STRONG> <STRONG>cps</STRONG> <STRONG>Ym</STRONG> print rate in characters per
+ second
+ <STRONG>wide_char_size</STRONG> <STRONG>widcs</STRONG> <STRONG>Yn</STRONG> character step size when in
+ double wide mode
+ <STRONG>buttons</STRONG> <STRONG>btns</STRONG> <STRONG>BT</STRONG> number of buttons on mouse
+
+ <STRONG>bit_image_entwining</STRONG> <STRONG>bitwin</STRONG> <STRONG>Yo</STRONG> number of passes for each bit-
+ image row
+ <STRONG>bit_image_type</STRONG> <STRONG>bitype</STRONG> <STRONG>Yp</STRONG> type of bit-image device
+
+ <STRONG>Code</STRONG>
+ <STRONG>String</STRONG> <STRONG>Capability</STRONG> <STRONG>Name</STRONG> <STRONG>TI</STRONG> <STRONG>TC</STRONG> <STRONG>Description</STRONG>
+ ------------------------------------------------------------------------
+ <STRONG>back_tab</STRONG> <STRONG>cbt</STRONG> <STRONG>bt</STRONG> back tab (P)
+ <STRONG>bell</STRONG> <STRONG>bel</STRONG> <STRONG>bl</STRONG> audible signal (bell) (P)
+ <STRONG>carriage_return</STRONG> <STRONG>cr</STRONG> <STRONG>cr</STRONG> carriage return (P*) (P*)
+ <STRONG>change_scroll_region</STRONG> <STRONG>csr</STRONG> <STRONG>cs</STRONG> change region to line #1 to
+ line #2 (P)
+ <STRONG>clear_all_tabs</STRONG> <STRONG>tbc</STRONG> <STRONG>ct</STRONG> clear all tab stops (P)
+ <STRONG>clear_screen</STRONG> <STRONG>clear</STRONG> <STRONG>cl</STRONG> clear screen and home cursor
+ (P*)
+ <STRONG>clr_eol</STRONG> <STRONG>el</STRONG> <STRONG>ce</STRONG> clear to end of line (P)
+ <STRONG>clr_eos</STRONG> <STRONG>ed</STRONG> <STRONG>cd</STRONG> clear to end of screen (P*)
+ <STRONG>column_address</STRONG> <STRONG>hpa</STRONG> <STRONG>ch</STRONG> horizontal position #1,
+ absolute (P)
+ <STRONG>command_character</STRONG> <STRONG>cmdch</STRONG> <STRONG>CC</STRONG> terminal settable cmd
+ character in prototype !?
+ <STRONG>cursor_address</STRONG> <STRONG>cup</STRONG> <STRONG>cm</STRONG> move to row #1 columns #2
+ <STRONG>cursor_down</STRONG> <STRONG>cud1</STRONG> <STRONG>do</STRONG> down one line
+ <STRONG>cursor_home</STRONG> <STRONG>home</STRONG> <STRONG>ho</STRONG> home cursor (if no cup)
+ <STRONG>cursor_invisible</STRONG> <STRONG>civis</STRONG> <STRONG>vi</STRONG> make cursor invisible
+ <STRONG>cursor_left</STRONG> <STRONG>cub1</STRONG> <STRONG>le</STRONG> move left one space
+ <STRONG>cursor_mem_address</STRONG> <STRONG>mrcup</STRONG> <STRONG>CM</STRONG> memory relative cursor
+ addressing, move to row #1
+ columns #2
+ <STRONG>cursor_normal</STRONG> <STRONG>cnorm</STRONG> <STRONG>ve</STRONG> make cursor appear normal
+ (undo civis/cvvis)
+ <STRONG>cursor_right</STRONG> <STRONG>cuf1</STRONG> <STRONG>nd</STRONG> non-destructive space (move
+ right one space)
+ <STRONG>cursor_to_ll</STRONG> <STRONG>ll</STRONG> <STRONG>ll</STRONG> last line, first column (if no
+ cup)
+ <STRONG>cursor_up</STRONG> <STRONG>cuu1</STRONG> <STRONG>up</STRONG> up one line
+ <STRONG>cursor_visible</STRONG> <STRONG>cvvis</STRONG> <STRONG>vs</STRONG> make cursor very visible
+ <STRONG>delete_character</STRONG> <STRONG>dch1</STRONG> <STRONG>dc</STRONG> delete character (P*)
+ <STRONG>delete_line</STRONG> <STRONG>dl1</STRONG> <STRONG>dl</STRONG> delete line (P*)
+ <STRONG>dis_status_line</STRONG> <STRONG>dsl</STRONG> <STRONG>ds</STRONG> disable status line
+ <STRONG>down_half_line</STRONG> <STRONG>hd</STRONG> <STRONG>hd</STRONG> half a line down
+ <STRONG>enter_alt_charset_mode</STRONG> <STRONG>smacs</STRONG> <STRONG>as</STRONG> start alternate character set
+ (P)
+ <STRONG>enter_blink_mode</STRONG> <STRONG>blink</STRONG> <STRONG>mb</STRONG> turn on blinking
+ <STRONG>enter_bold_mode</STRONG> <STRONG>bold</STRONG> <STRONG>md</STRONG> turn on bold (extra bright)
+ mode
+ <STRONG>enter_ca_mode</STRONG> <STRONG>smcup</STRONG> <STRONG>ti</STRONG> string to start programs using
+ cup
+ <STRONG>enter_delete_mode</STRONG> <STRONG>smdc</STRONG> <STRONG>dm</STRONG> enter delete mode
+ <STRONG>enter_dim_mode</STRONG> <STRONG>dim</STRONG> <STRONG>mh</STRONG> turn on half-bright mode
+ <STRONG>enter_insert_mode</STRONG> <STRONG>smir</STRONG> <STRONG>im</STRONG> enter insert mode
+ <STRONG>enter_secure_mode</STRONG> <STRONG>invis</STRONG> <STRONG>mk</STRONG> turn on blank mode (characters
+ invisible)
+ <STRONG>enter_protected_mode</STRONG> <STRONG>prot</STRONG> <STRONG>mp</STRONG> turn on protected mode
+ <STRONG>enter_reverse_mode</STRONG> <STRONG>rev</STRONG> <STRONG>mr</STRONG> turn on reverse video mode
+ <STRONG>enter_standout_mode</STRONG> <STRONG>smso</STRONG> <STRONG>so</STRONG> begin standout mode
+ <STRONG>enter_underline_mode</STRONG> <STRONG>smul</STRONG> <STRONG>us</STRONG> begin underline mode
+ <STRONG>erase_chars</STRONG> <STRONG>ech</STRONG> <STRONG>ec</STRONG> erase #1 characters (P)
+ <STRONG>exit_alt_charset_mode</STRONG> <STRONG>rmacs</STRONG> <STRONG>ae</STRONG> end alternate character set
+ (P)
+ <STRONG>exit_attribute_mode</STRONG> <STRONG>sgr0</STRONG> <STRONG>me</STRONG> turn off all attributes
+ <STRONG>exit_ca_mode</STRONG> <STRONG>rmcup</STRONG> <STRONG>te</STRONG> strings to end programs using
+ cup
+ <STRONG>exit_delete_mode</STRONG> <STRONG>rmdc</STRONG> <STRONG>ed</STRONG> end delete mode
+ <STRONG>exit_insert_mode</STRONG> <STRONG>rmir</STRONG> <STRONG>ei</STRONG> exit insert mode
+
+ <STRONG>exit_standout_mode</STRONG> <STRONG>rmso</STRONG> <STRONG>se</STRONG> exit standout mode
+ <STRONG>exit_underline_mode</STRONG> <STRONG>rmul</STRONG> <STRONG>ue</STRONG> exit underline mode
+ <STRONG>flash_screen</STRONG> <STRONG>flash</STRONG> <STRONG>vb</STRONG> visible bell (may not move
+ cursor)
+ <STRONG>form_feed</STRONG> <STRONG>ff</STRONG> <STRONG>ff</STRONG> hardcopy terminal page eject
+ (P*)
+ <STRONG>from_status_line</STRONG> <STRONG>fsl</STRONG> <STRONG>fs</STRONG> return from status line
+ <STRONG>init_1string</STRONG> <STRONG>is1</STRONG> <STRONG>i1</STRONG> initialization string
+ <STRONG>init_2string</STRONG> <STRONG>is2</STRONG> <STRONG>is</STRONG> initialization string
+ <STRONG>init_3string</STRONG> <STRONG>is3</STRONG> <STRONG>i3</STRONG> initialization string
+ <STRONG>init_file</STRONG> <STRONG>if</STRONG> <STRONG>if</STRONG> name of initialization file
+ <STRONG>insert_character</STRONG> <STRONG>ich1</STRONG> <STRONG>ic</STRONG> insert character (P)
+ <STRONG>insert_line</STRONG> <STRONG>il1</STRONG> <STRONG>al</STRONG> insert line (P*)
+ <STRONG>insert_padding</STRONG> <STRONG>ip</STRONG> <STRONG>ip</STRONG> insert padding after inserted
+ character
+ <STRONG>key_backspace</STRONG> <STRONG>kbs</STRONG> <STRONG>kb</STRONG> backspace key
+ <STRONG>key_catab</STRONG> <STRONG>ktbc</STRONG> <STRONG>ka</STRONG> clear-all-tabs key
+ <STRONG>key_clear</STRONG> <STRONG>kclr</STRONG> <STRONG>kC</STRONG> clear-screen or erase key
+ <STRONG>key_ctab</STRONG> <STRONG>kctab</STRONG> <STRONG>kt</STRONG> clear-tab key
+ <STRONG>key_dc</STRONG> <STRONG>kdch1</STRONG> <STRONG>kD</STRONG> delete-character key
+ <STRONG>key_dl</STRONG> <STRONG>kdl1</STRONG> <STRONG>kL</STRONG> delete-line key
+ <STRONG>key_down</STRONG> <STRONG>kcud1</STRONG> <STRONG>kd</STRONG> down-arrow key
+
+ <STRONG>key_eic</STRONG> <STRONG>krmir</STRONG> <STRONG>kM</STRONG> sent by rmir or smir in insert
+ mode
+ <STRONG>key_eol</STRONG> <STRONG>kel</STRONG> <STRONG>kE</STRONG> clear-to-end-of-line key
+ <STRONG>key_eos</STRONG> <STRONG>ked</STRONG> <STRONG>kS</STRONG> clear-to-end-of-screen key
+ <STRONG>key_f0</STRONG> <STRONG>kf0</STRONG> <STRONG>k0</STRONG> F0 function key
+ <STRONG>key_f1</STRONG> <STRONG>kf1</STRONG> <STRONG>k1</STRONG> F1 function key
+ <STRONG>key_f10</STRONG> <STRONG>kf10</STRONG> <STRONG>k;</STRONG> F10 function key
+ <STRONG>key_f2</STRONG> <STRONG>kf2</STRONG> <STRONG>k2</STRONG> F2 function key
+ <STRONG>key_f3</STRONG> <STRONG>kf3</STRONG> <STRONG>k3</STRONG> F3 function key
+ <STRONG>key_f4</STRONG> <STRONG>kf4</STRONG> <STRONG>k4</STRONG> F4 function key
+ <STRONG>key_f5</STRONG> <STRONG>kf5</STRONG> <STRONG>k5</STRONG> F5 function key
+ <STRONG>key_f6</STRONG> <STRONG>kf6</STRONG> <STRONG>k6</STRONG> F6 function key
+ <STRONG>key_f7</STRONG> <STRONG>kf7</STRONG> <STRONG>k7</STRONG> F7 function key
+ <STRONG>key_f8</STRONG> <STRONG>kf8</STRONG> <STRONG>k8</STRONG> F8 function key
+ <STRONG>key_f9</STRONG> <STRONG>kf9</STRONG> <STRONG>k9</STRONG> F9 function key
+ <STRONG>key_home</STRONG> <STRONG>khome</STRONG> <STRONG>kh</STRONG> home key
+ <STRONG>key_ic</STRONG> <STRONG>kich1</STRONG> <STRONG>kI</STRONG> insert-character key
+ <STRONG>key_il</STRONG> <STRONG>kil1</STRONG> <STRONG>kA</STRONG> insert-line key
+ <STRONG>key_left</STRONG> <STRONG>kcub1</STRONG> <STRONG>kl</STRONG> left-arrow key
+ <STRONG>key_ll</STRONG> <STRONG>kll</STRONG> <STRONG>kH</STRONG> lower-left key (home down)
+ <STRONG>key_npage</STRONG> <STRONG>knp</STRONG> <STRONG>kN</STRONG> next-page key
+ <STRONG>key_ppage</STRONG> <STRONG>kpp</STRONG> <STRONG>kP</STRONG> previous-page key
+ <STRONG>key_right</STRONG> <STRONG>kcuf1</STRONG> <STRONG>kr</STRONG> right-arrow key
+ <STRONG>key_sf</STRONG> <STRONG>kind</STRONG> <STRONG>kF</STRONG> scroll-forward key
+ <STRONG>key_sr</STRONG> <STRONG>kri</STRONG> <STRONG>kR</STRONG> scroll-backward key
+ <STRONG>key_stab</STRONG> <STRONG>khts</STRONG> <STRONG>kT</STRONG> set-tab key
+ <STRONG>key_up</STRONG> <STRONG>kcuu1</STRONG> <STRONG>ku</STRONG> up-arrow key
+ <STRONG>keypad_local</STRONG> <STRONG>rmkx</STRONG> <STRONG>ke</STRONG> leave keyboard transmit mode
+ <STRONG>keypad_xmit</STRONG> <STRONG>smkx</STRONG> <STRONG>ks</STRONG> enter keyboard transmit mode
+ <STRONG>lab_f0</STRONG> <STRONG>lf0</STRONG> <STRONG>l0</STRONG> label on function key f0 if
+ not f0
+ <STRONG>lab_f1</STRONG> <STRONG>lf1</STRONG> <STRONG>l1</STRONG> label on function key f1 if
+ not f1
+ <STRONG>lab_f10</STRONG> <STRONG>lf10</STRONG> <STRONG>la</STRONG> label on function key f10 if
+ not f10
+ <STRONG>lab_f2</STRONG> <STRONG>lf2</STRONG> <STRONG>l2</STRONG> label on function key f2 if
+ not f2
+ <STRONG>lab_f3</STRONG> <STRONG>lf3</STRONG> <STRONG>l3</STRONG> label on function key f3 if
+ not f3
+ <STRONG>lab_f4</STRONG> <STRONG>lf4</STRONG> <STRONG>l4</STRONG> label on function key f4 if
+ not f4
+
+
+ <STRONG>lab_f5</STRONG> <STRONG>lf5</STRONG> <STRONG>l5</STRONG> label on function key f5 if
+ not f5
+ <STRONG>lab_f6</STRONG> <STRONG>lf6</STRONG> <STRONG>l6</STRONG> label on function key f6 if
+ not f6
+ <STRONG>lab_f7</STRONG> <STRONG>lf7</STRONG> <STRONG>l7</STRONG> label on function key f7 if
+ not f7
+ <STRONG>lab_f8</STRONG> <STRONG>lf8</STRONG> <STRONG>l8</STRONG> label on function key f8 if
+ not f8
+ <STRONG>lab_f9</STRONG> <STRONG>lf9</STRONG> <STRONG>l9</STRONG> label on function key f9 if
+ not f9
+ <STRONG>meta_off</STRONG> <STRONG>rmm</STRONG> <STRONG>mo</STRONG> turn off meta mode
+ <STRONG>meta_on</STRONG> <STRONG>smm</STRONG> <STRONG>mm</STRONG> turn on meta mode (8th-bit on)
+ <STRONG>newline</STRONG> <STRONG>nel</STRONG> <STRONG>nw</STRONG> newline (behave like cr
+ followed by lf)
+ <STRONG>pad_char</STRONG> <STRONG>pad</STRONG> <STRONG>pc</STRONG> padding char (instead of null)
+ <STRONG>parm_dch</STRONG> <STRONG>dch</STRONG> <STRONG>DC</STRONG> delete #1 characters (P*)
+ <STRONG>parm_delete_line</STRONG> <STRONG>dl</STRONG> <STRONG>DL</STRONG> delete #1 lines (P*)
+ <STRONG>parm_down_cursor</STRONG> <STRONG>cud</STRONG> <STRONG>DO</STRONG> down #1 lines (P*)
+ <STRONG>parm_ich</STRONG> <STRONG>ich</STRONG> <STRONG>IC</STRONG> insert #1 characters (P*)
+ <STRONG>parm_index</STRONG> <STRONG>indn</STRONG> <STRONG>SF</STRONG> scroll forward #1 lines (P)
+ <STRONG>parm_insert_line</STRONG> <STRONG>il</STRONG> <STRONG>AL</STRONG> insert #1 lines (P*)
+ <STRONG>parm_left_cursor</STRONG> <STRONG>cub</STRONG> <STRONG>LE</STRONG> move #1 characters to the left
+ (P)
+ <STRONG>parm_right_cursor</STRONG> <STRONG>cuf</STRONG> <STRONG>RI</STRONG> move #1 characters to the
+ right (P*)
+ <STRONG>parm_rindex</STRONG> <STRONG>rin</STRONG> <STRONG>SR</STRONG> scroll back #1 lines (P)
+ <STRONG>parm_up_cursor</STRONG> <STRONG>cuu</STRONG> <STRONG>UP</STRONG> up #1 lines (P*)
+ <STRONG>pkey_key</STRONG> <STRONG>pfkey</STRONG> <STRONG>pk</STRONG> program function key #1 to
+ type string #2
+ <STRONG>pkey_local</STRONG> <STRONG>pfloc</STRONG> <STRONG>pl</STRONG> program function key #1 to
+ execute string #2
+ <STRONG>pkey_xmit</STRONG> <STRONG>pfx</STRONG> <STRONG>px</STRONG> program function key #1 to
+ transmit string #2
+ <STRONG>print_screen</STRONG> <STRONG>mc0</STRONG> <STRONG>ps</STRONG> print contents of screen
+ <STRONG>prtr_off</STRONG> <STRONG>mc4</STRONG> <STRONG>pf</STRONG> turn off printer
+ <STRONG>prtr_on</STRONG> <STRONG>mc5</STRONG> <STRONG>po</STRONG> turn on printer
+ <STRONG>repeat_char</STRONG> <STRONG>rep</STRONG> <STRONG>rp</STRONG> repeat char #1 #2 times (P*)
+ <STRONG>reset_1string</STRONG> <STRONG>rs1</STRONG> <STRONG>r1</STRONG> reset string
+ <STRONG>reset_2string</STRONG> <STRONG>rs2</STRONG> <STRONG>r2</STRONG> reset string
+
+ <STRONG>reset_3string</STRONG> <STRONG>rs3</STRONG> <STRONG>r3</STRONG> reset string
+ <STRONG>reset_file</STRONG> <STRONG>rf</STRONG> <STRONG>rf</STRONG> name of reset file
+ <STRONG>restore_cursor</STRONG> <STRONG>rc</STRONG> <STRONG>rc</STRONG> restore cursor to position of
+ last save_cursor
+ <STRONG>row_address</STRONG> <STRONG>vpa</STRONG> <STRONG>cv</STRONG> vertical position #1 absolute
+ (P)
+ <STRONG>save_cursor</STRONG> <STRONG>sc</STRONG> <STRONG>sc</STRONG> save current cursor position
+ (P)
+ <STRONG>scroll_forward</STRONG> <STRONG>ind</STRONG> <STRONG>sf</STRONG> scroll text up (P)
+ <STRONG>scroll_reverse</STRONG> <STRONG>ri</STRONG> <STRONG>sr</STRONG> scroll text down (P)
+ <STRONG>set_attributes</STRONG> <STRONG>sgr</STRONG> <STRONG>sa</STRONG> define video attributes #1-#9
+ (PG9)
+ <STRONG>set_tab</STRONG> <STRONG>hts</STRONG> <STRONG>st</STRONG> set a tab in every row,
+ current columns
+ <STRONG>set_window</STRONG> <STRONG>wind</STRONG> <STRONG>wi</STRONG> current window is lines #1-#2
+ cols #3-#4
+ <STRONG>tab</STRONG> <STRONG>ht</STRONG> <STRONG>ta</STRONG> tab to next 8-space hardware
+ tab stop
+ <STRONG>to_status_line</STRONG> <STRONG>tsl</STRONG> <STRONG>ts</STRONG> move to status line, column #1
+ <STRONG>underline_char</STRONG> <STRONG>uc</STRONG> <STRONG>uc</STRONG> underline char and move past
+ it
+ <STRONG>up_half_line</STRONG> <STRONG>hu</STRONG> <STRONG>hu</STRONG> half a line up
+ <STRONG>init_prog</STRONG> <STRONG>iprog</STRONG> <STRONG>iP</STRONG> path name of program for
+ initialization
+ <STRONG>key_a1</STRONG> <STRONG>ka1</STRONG> <STRONG>K1</STRONG> upper left of keypad
+
+ <STRONG>key_a3</STRONG> <STRONG>ka3</STRONG> <STRONG>K3</STRONG> upper right of keypad
+ <STRONG>key_b2</STRONG> <STRONG>kb2</STRONG> <STRONG>K2</STRONG> center of keypad
+ <STRONG>key_c1</STRONG> <STRONG>kc1</STRONG> <STRONG>K4</STRONG> lower left of keypad
+ <STRONG>key_c3</STRONG> <STRONG>kc3</STRONG> <STRONG>K5</STRONG> lower right of keypad
+ <STRONG>prtr_non</STRONG> <STRONG>mc5p</STRONG> <STRONG>pO</STRONG> turn on printer for #1 bytes
+ <STRONG>char_padding</STRONG> <STRONG>rmp</STRONG> <STRONG>rP</STRONG> like ip but when in insert
+ mode
+ <STRONG>acs_chars</STRONG> <STRONG>acsc</STRONG> <STRONG>ac</STRONG> graphics charset pairs, based
+ on vt100
+ <STRONG>plab_norm</STRONG> <STRONG>pln</STRONG> <STRONG>pn</STRONG> program label #1 to show
+ string #2
+ <STRONG>key_btab</STRONG> <STRONG>kcbt</STRONG> <STRONG>kB</STRONG> back-tab key
+ <STRONG>enter_xon_mode</STRONG> <STRONG>smxon</STRONG> <STRONG>SX</STRONG> turn on xon/xoff handshaking
+ <STRONG>exit_xon_mode</STRONG> <STRONG>rmxon</STRONG> <STRONG>RX</STRONG> turn off xon/xoff handshaking
+ <STRONG>enter_am_mode</STRONG> <STRONG>smam</STRONG> <STRONG>SA</STRONG> turn on automatic margins
+ <STRONG>exit_am_mode</STRONG> <STRONG>rmam</STRONG> <STRONG>RA</STRONG> turn off automatic margins
+ <STRONG>xon_character</STRONG> <STRONG>xonc</STRONG> <STRONG>XN</STRONG> XON character
+ <STRONG>xoff_character</STRONG> <STRONG>xoffc</STRONG> <STRONG>XF</STRONG> XOFF character
+ <STRONG>ena_acs</STRONG> <STRONG>enacs</STRONG> <STRONG>eA</STRONG> enable alternate char set
+ <STRONG>label_on</STRONG> <STRONG>smln</STRONG> <STRONG>LO</STRONG> turn on soft labels
+ <STRONG>label_off</STRONG> <STRONG>rmln</STRONG> <STRONG>LF</STRONG> turn off soft labels
+ <STRONG>key_beg</STRONG> <STRONG>kbeg</STRONG> <STRONG>@1</STRONG> begin key
+ <STRONG>key_cancel</STRONG> <STRONG>kcan</STRONG> <STRONG>@2</STRONG> cancel key
+ <STRONG>key_close</STRONG> <STRONG>kclo</STRONG> <STRONG>@3</STRONG> close key
+ <STRONG>key_command</STRONG> <STRONG>kcmd</STRONG> <STRONG>@4</STRONG> command key
+ <STRONG>key_copy</STRONG> <STRONG>kcpy</STRONG> <STRONG>@5</STRONG> copy key
+ <STRONG>key_create</STRONG> <STRONG>kcrt</STRONG> <STRONG>@6</STRONG> create key
+ <STRONG>key_end</STRONG> <STRONG>kend</STRONG> <STRONG>@7</STRONG> end key
+ <STRONG>key_enter</STRONG> <STRONG>kent</STRONG> <STRONG>@8</STRONG> enter/send key
+ <STRONG>key_exit</STRONG> <STRONG>kext</STRONG> <STRONG>@9</STRONG> exit key
+ <STRONG>key_find</STRONG> <STRONG>kfnd</STRONG> <STRONG>@0</STRONG> find key
+ <STRONG>key_help</STRONG> <STRONG>khlp</STRONG> <STRONG>%1</STRONG> help key
+ <STRONG>key_mark</STRONG> <STRONG>kmrk</STRONG> <STRONG>%2</STRONG> mark key
+ <STRONG>key_message</STRONG> <STRONG>kmsg</STRONG> <STRONG>%3</STRONG> message key
+ <STRONG>key_move</STRONG> <STRONG>kmov</STRONG> <STRONG>%4</STRONG> move key
+ <STRONG>key_next</STRONG> <STRONG>knxt</STRONG> <STRONG>%5</STRONG> next key
+ <STRONG>key_open</STRONG> <STRONG>kopn</STRONG> <STRONG>%6</STRONG> open key
+ <STRONG>key_options</STRONG> <STRONG>kopt</STRONG> <STRONG>%7</STRONG> options key
+ <STRONG>key_previous</STRONG> <STRONG>kprv</STRONG> <STRONG>%8</STRONG> previous key
+ <STRONG>key_print</STRONG> <STRONG>kprt</STRONG> <STRONG>%9</STRONG> print key
+ <STRONG>key_redo</STRONG> <STRONG>krdo</STRONG> <STRONG>%0</STRONG> redo key
+ <STRONG>key_reference</STRONG> <STRONG>kref</STRONG> <STRONG>&amp;1</STRONG> reference key
+ <STRONG>key_refresh</STRONG> <STRONG>krfr</STRONG> <STRONG>&amp;2</STRONG> refresh key
+ <STRONG>key_replace</STRONG> <STRONG>krpl</STRONG> <STRONG>&amp;3</STRONG> replace key
+ <STRONG>key_restart</STRONG> <STRONG>krst</STRONG> <STRONG>&amp;4</STRONG> restart key
+ <STRONG>key_resume</STRONG> <STRONG>kres</STRONG> <STRONG>&amp;5</STRONG> resume key
+ <STRONG>key_save</STRONG> <STRONG>ksav</STRONG> <STRONG>&amp;6</STRONG> save key
+ <STRONG>key_suspend</STRONG> <STRONG>kspd</STRONG> <STRONG>&amp;7</STRONG> suspend key
+ <STRONG>key_undo</STRONG> <STRONG>kund</STRONG> <STRONG>&amp;8</STRONG> undo key
+
+ <STRONG>key_sbeg</STRONG> <STRONG>kBEG</STRONG> <STRONG>&amp;9</STRONG> shifted begin key
+ <STRONG>key_scancel</STRONG> <STRONG>kCAN</STRONG> <STRONG>&amp;0</STRONG> shifted cancel key
+ <STRONG>key_scommand</STRONG> <STRONG>kCMD</STRONG> <STRONG>*1</STRONG> shifted command key
+ <STRONG>key_scopy</STRONG> <STRONG>kCPY</STRONG> <STRONG>*2</STRONG> shifted copy key
+ <STRONG>key_screate</STRONG> <STRONG>kCRT</STRONG> <STRONG>*3</STRONG> shifted create key
+ <STRONG>key_sdc</STRONG> <STRONG>kDC</STRONG> <STRONG>*4</STRONG> shifted delete-character key
+ <STRONG>key_sdl</STRONG> <STRONG>kDL</STRONG> <STRONG>*5</STRONG> shifted delete-line key
+ <STRONG>key_select</STRONG> <STRONG>kslt</STRONG> <STRONG>*6</STRONG> select key
+ <STRONG>key_send</STRONG> <STRONG>kEND</STRONG> <STRONG>*7</STRONG> shifted end key
+ <STRONG>key_seol</STRONG> <STRONG>kEOL</STRONG> <STRONG>*8</STRONG> shifted clear-to-end-of-line
+ key
+ <STRONG>key_sexit</STRONG> <STRONG>kEXT</STRONG> <STRONG>*9</STRONG> shifted exit key
+ <STRONG>key_sfind</STRONG> <STRONG>kFND</STRONG> <STRONG>*0</STRONG> shifted find key
+ <STRONG>key_shelp</STRONG> <STRONG>kHLP</STRONG> <STRONG>#1</STRONG> shifted help key
+ <STRONG>key_shome</STRONG> <STRONG>kHOM</STRONG> <STRONG>#2</STRONG> shifted home key
+
+ <STRONG>key_sic</STRONG> <STRONG>kIC</STRONG> <STRONG>#3</STRONG> shifted insert-character key
+ <STRONG>key_sleft</STRONG> <STRONG>kLFT</STRONG> <STRONG>#4</STRONG> shifted left-arrow key
+ <STRONG>key_smessage</STRONG> <STRONG>kMSG</STRONG> <STRONG>%a</STRONG> shifted message key
+ <STRONG>key_smove</STRONG> <STRONG>kMOV</STRONG> <STRONG>%b</STRONG> shifted move key
+ <STRONG>key_snext</STRONG> <STRONG>kNXT</STRONG> <STRONG>%c</STRONG> shifted next key
+ <STRONG>key_soptions</STRONG> <STRONG>kOPT</STRONG> <STRONG>%d</STRONG> shifted options key
+ <STRONG>key_sprevious</STRONG> <STRONG>kPRV</STRONG> <STRONG>%e</STRONG> shifted previous key
+ <STRONG>key_sprint</STRONG> <STRONG>kPRT</STRONG> <STRONG>%f</STRONG> shifted print key
+ <STRONG>key_sredo</STRONG> <STRONG>kRDO</STRONG> <STRONG>%g</STRONG> shifted redo key
+ <STRONG>key_sreplace</STRONG> <STRONG>kRPL</STRONG> <STRONG>%h</STRONG> shifted replace key
+ <STRONG>key_sright</STRONG> <STRONG>kRIT</STRONG> <STRONG>%i</STRONG> shifted right-arrow key
+ <STRONG>key_srsume</STRONG> <STRONG>kRES</STRONG> <STRONG>%j</STRONG> shifted resume key
+ <STRONG>key_ssave</STRONG> <STRONG>kSAV</STRONG> <STRONG>!1</STRONG> shifted save key
+ <STRONG>key_ssuspend</STRONG> <STRONG>kSPD</STRONG> <STRONG>!2</STRONG> shifted suspend key
+ <STRONG>key_sundo</STRONG> <STRONG>kUND</STRONG> <STRONG>!3</STRONG> shifted undo key
+ <STRONG>req_for_input</STRONG> <STRONG>rfi</STRONG> <STRONG>RF</STRONG> send next input char (for
+ ptys)
+ <STRONG>key_f11</STRONG> <STRONG>kf11</STRONG> <STRONG>F1</STRONG> F11 function key
+ <STRONG>key_f12</STRONG> <STRONG>kf12</STRONG> <STRONG>F2</STRONG> F12 function key
+ <STRONG>key_f13</STRONG> <STRONG>kf13</STRONG> <STRONG>F3</STRONG> F13 function key
+ <STRONG>key_f14</STRONG> <STRONG>kf14</STRONG> <STRONG>F4</STRONG> F14 function key
+ <STRONG>key_f15</STRONG> <STRONG>kf15</STRONG> <STRONG>F5</STRONG> F15 function key
+ <STRONG>key_f16</STRONG> <STRONG>kf16</STRONG> <STRONG>F6</STRONG> F16 function key
+ <STRONG>key_f17</STRONG> <STRONG>kf17</STRONG> <STRONG>F7</STRONG> F17 function key
+ <STRONG>key_f18</STRONG> <STRONG>kf18</STRONG> <STRONG>F8</STRONG> F18 function key
+ <STRONG>key_f19</STRONG> <STRONG>kf19</STRONG> <STRONG>F9</STRONG> F19 function key
+ <STRONG>key_f20</STRONG> <STRONG>kf20</STRONG> <STRONG>FA</STRONG> F20 function key
+ <STRONG>key_f21</STRONG> <STRONG>kf21</STRONG> <STRONG>FB</STRONG> F21 function key
+ <STRONG>key_f22</STRONG> <STRONG>kf22</STRONG> <STRONG>FC</STRONG> F22 function key
+ <STRONG>key_f23</STRONG> <STRONG>kf23</STRONG> <STRONG>FD</STRONG> F23 function key
+ <STRONG>key_f24</STRONG> <STRONG>kf24</STRONG> <STRONG>FE</STRONG> F24 function key
+ <STRONG>key_f25</STRONG> <STRONG>kf25</STRONG> <STRONG>FF</STRONG> F25 function key
+ <STRONG>key_f26</STRONG> <STRONG>kf26</STRONG> <STRONG>FG</STRONG> F26 function key
+ <STRONG>key_f27</STRONG> <STRONG>kf27</STRONG> <STRONG>FH</STRONG> F27 function key
+ <STRONG>key_f28</STRONG> <STRONG>kf28</STRONG> <STRONG>FI</STRONG> F28 function key
+ <STRONG>key_f29</STRONG> <STRONG>kf29</STRONG> <STRONG>FJ</STRONG> F29 function key
+ <STRONG>key_f30</STRONG> <STRONG>kf30</STRONG> <STRONG>FK</STRONG> F30 function key
+ <STRONG>key_f31</STRONG> <STRONG>kf31</STRONG> <STRONG>FL</STRONG> F31 function key
+ <STRONG>key_f32</STRONG> <STRONG>kf32</STRONG> <STRONG>FM</STRONG> F32 function key
+ <STRONG>key_f33</STRONG> <STRONG>kf33</STRONG> <STRONG>FN</STRONG> F33 function key
+ <STRONG>key_f34</STRONG> <STRONG>kf34</STRONG> <STRONG>FO</STRONG> F34 function key
+ <STRONG>key_f35</STRONG> <STRONG>kf35</STRONG> <STRONG>FP</STRONG> F35 function key
+ <STRONG>key_f36</STRONG> <STRONG>kf36</STRONG> <STRONG>FQ</STRONG> F36 function key
+ <STRONG>key_f37</STRONG> <STRONG>kf37</STRONG> <STRONG>FR</STRONG> F37 function key
+ <STRONG>key_f38</STRONG> <STRONG>kf38</STRONG> <STRONG>FS</STRONG> F38 function key
+ <STRONG>key_f39</STRONG> <STRONG>kf39</STRONG> <STRONG>FT</STRONG> F39 function key
+ <STRONG>key_f40</STRONG> <STRONG>kf40</STRONG> <STRONG>FU</STRONG> F40 function key
+ <STRONG>key_f41</STRONG> <STRONG>kf41</STRONG> <STRONG>FV</STRONG> F41 function key
+ <STRONG>key_f42</STRONG> <STRONG>kf42</STRONG> <STRONG>FW</STRONG> F42 function key
+
+ <STRONG>key_f43</STRONG> <STRONG>kf43</STRONG> <STRONG>FX</STRONG> F43 function key
+ <STRONG>key_f44</STRONG> <STRONG>kf44</STRONG> <STRONG>FY</STRONG> F44 function key
+ <STRONG>key_f45</STRONG> <STRONG>kf45</STRONG> <STRONG>FZ</STRONG> F45 function key
+ <STRONG>key_f46</STRONG> <STRONG>kf46</STRONG> <STRONG>Fa</STRONG> F46 function key
+ <STRONG>key_f47</STRONG> <STRONG>kf47</STRONG> <STRONG>Fb</STRONG> F47 function key
+ <STRONG>key_f48</STRONG> <STRONG>kf48</STRONG> <STRONG>Fc</STRONG> F48 function key
+ <STRONG>key_f49</STRONG> <STRONG>kf49</STRONG> <STRONG>Fd</STRONG> F49 function key
+ <STRONG>key_f50</STRONG> <STRONG>kf50</STRONG> <STRONG>Fe</STRONG> F50 function key
+ <STRONG>key_f51</STRONG> <STRONG>kf51</STRONG> <STRONG>Ff</STRONG> F51 function key
+ <STRONG>key_f52</STRONG> <STRONG>kf52</STRONG> <STRONG>Fg</STRONG> F52 function key
+ <STRONG>key_f53</STRONG> <STRONG>kf53</STRONG> <STRONG>Fh</STRONG> F53 function key
+ <STRONG>key_f54</STRONG> <STRONG>kf54</STRONG> <STRONG>Fi</STRONG> F54 function key
+ <STRONG>key_f55</STRONG> <STRONG>kf55</STRONG> <STRONG>Fj</STRONG> F55 function key
+ <STRONG>key_f56</STRONG> <STRONG>kf56</STRONG> <STRONG>Fk</STRONG> F56 function key
+ <STRONG>key_f57</STRONG> <STRONG>kf57</STRONG> <STRONG>Fl</STRONG> F57 function key
+
+ <STRONG>key_f58</STRONG> <STRONG>kf58</STRONG> <STRONG>Fm</STRONG> F58 function key
+ <STRONG>key_f59</STRONG> <STRONG>kf59</STRONG> <STRONG>Fn</STRONG> F59 function key
+ <STRONG>key_f60</STRONG> <STRONG>kf60</STRONG> <STRONG>Fo</STRONG> F60 function key
+ <STRONG>key_f61</STRONG> <STRONG>kf61</STRONG> <STRONG>Fp</STRONG> F61 function key
+ <STRONG>key_f62</STRONG> <STRONG>kf62</STRONG> <STRONG>Fq</STRONG> F62 function key
+ <STRONG>key_f63</STRONG> <STRONG>kf63</STRONG> <STRONG>Fr</STRONG> F63 function key
+ <STRONG>clr_bol</STRONG> <STRONG>el1</STRONG> <STRONG>cb</STRONG> Clear to beginning of line
+ <STRONG>clear_margins</STRONG> <STRONG>mgc</STRONG> <STRONG>MC</STRONG> clear right and left soft
+ margins
+ <STRONG>set_left_margin</STRONG> <STRONG>smgl</STRONG> <STRONG>ML</STRONG> set left soft margin at
+ current column (not in BSD
+ <EM>termcap</EM>)
+ <STRONG>set_right_margin</STRONG> <STRONG>smgr</STRONG> <STRONG>MR</STRONG> set right soft margin at
+ current column
+ <STRONG>label_format</STRONG> <STRONG>fln</STRONG> <STRONG>Lf</STRONG> label format
+ <STRONG>set_clock</STRONG> <STRONG>sclk</STRONG> <STRONG>SC</STRONG> set clock, #1 hrs #2 mins #3
+ secs
+ <STRONG>display_clock</STRONG> <STRONG>dclk</STRONG> <STRONG>DK</STRONG> display clock
+ <STRONG>remove_clock</STRONG> <STRONG>rmclk</STRONG> <STRONG>RC</STRONG> remove clock
+ <STRONG>create_window</STRONG> <STRONG>cwin</STRONG> <STRONG>CW</STRONG> define a window #1 from #2,#3
+ to #4,#5
+ <STRONG>goto_window</STRONG> <STRONG>wingo</STRONG> <STRONG>WG</STRONG> go to window #1
+ <STRONG>hangup</STRONG> <STRONG>hup</STRONG> <STRONG>HU</STRONG> hang-up phone
+ <STRONG>dial_phone</STRONG> <STRONG>dial</STRONG> <STRONG>DI</STRONG> dial number #1
+ <STRONG>quick_dial</STRONG> <STRONG>qdial</STRONG> <STRONG>QD</STRONG> dial number #1 without
+ checking
+ <STRONG>tone</STRONG> <STRONG>tone</STRONG> <STRONG>TO</STRONG> select touch tone dialing
+ <STRONG>pulse</STRONG> <STRONG>pulse</STRONG> <STRONG>PU</STRONG> select pulse dialing
+ <STRONG>flash_hook</STRONG> <STRONG>hook</STRONG> <STRONG>fh</STRONG> flash switch hook
+ <STRONG>fixed_pause</STRONG> <STRONG>pause</STRONG> <STRONG>PA</STRONG> pause for 2-3 seconds
+ <STRONG>wait_tone</STRONG> <STRONG>wait</STRONG> <STRONG>WA</STRONG> wait for dial-tone
+ <STRONG>user0</STRONG> <STRONG>u0</STRONG> <STRONG>u0</STRONG> User string #0
+ <STRONG>user1</STRONG> <STRONG>u1</STRONG> <STRONG>u1</STRONG> User string #1
+ <STRONG>user2</STRONG> <STRONG>u2</STRONG> <STRONG>u2</STRONG> User string #2
+ <STRONG>user3</STRONG> <STRONG>u3</STRONG> <STRONG>u3</STRONG> User string #3
+ <STRONG>user4</STRONG> <STRONG>u4</STRONG> <STRONG>u4</STRONG> User string #4
+ <STRONG>user5</STRONG> <STRONG>u5</STRONG> <STRONG>u5</STRONG> User string #5
+ <STRONG>user6</STRONG> <STRONG>u6</STRONG> <STRONG>u6</STRONG> User string #6
+ <STRONG>user7</STRONG> <STRONG>u7</STRONG> <STRONG>u7</STRONG> User string #7
+ <STRONG>user8</STRONG> <STRONG>u8</STRONG> <STRONG>u8</STRONG> User string #8
+ <STRONG>user9</STRONG> <STRONG>u9</STRONG> <STRONG>u9</STRONG> User string #9
+ <STRONG>orig_pair</STRONG> <STRONG>op</STRONG> <STRONG>op</STRONG> Set default pair to its
+ original value
+ <STRONG>orig_colors</STRONG> <STRONG>oc</STRONG> <STRONG>oc</STRONG> Set all color pairs to the
+ original ones
+ <STRONG>initialize_color</STRONG> <STRONG>initc</STRONG> <STRONG>Ic</STRONG> initialize color #1 to
+ (#2,#3,#4)
+ <STRONG>initialize_pair</STRONG> <STRONG>initp</STRONG> <STRONG>Ip</STRONG> Initialize color pair #1 to
+ fg=(#2,#3,#4), bg=(#5,#6,#7)
+ <STRONG>set_color_pair</STRONG> <STRONG>scp</STRONG> <STRONG>sp</STRONG> Set current color pair to #1
+ <STRONG>set_foreground</STRONG> <STRONG>setf</STRONG> <STRONG>Sf</STRONG> Set foreground color #1
+ <STRONG>set_background</STRONG> <STRONG>setb</STRONG> <STRONG>Sb</STRONG> Set background color #1
+ <STRONG>change_char_pitch</STRONG> <STRONG>cpi</STRONG> <STRONG>ZA</STRONG> Change number of characters
+ per inch to #1
+ <STRONG>change_line_pitch</STRONG> <STRONG>lpi</STRONG> <STRONG>ZB</STRONG> Change number of lines per
+ inch to #1
+ <STRONG>change_res_horz</STRONG> <STRONG>chr</STRONG> <STRONG>ZC</STRONG> Change horizontal resolution
+ to #1
+ <STRONG>change_res_vert</STRONG> <STRONG>cvr</STRONG> <STRONG>ZD</STRONG> Change vertical resolution to
+ #1
+ <STRONG>define_char</STRONG> <STRONG>defc</STRONG> <STRONG>ZE</STRONG> Define a character #1, #2 dots
+ wide, descender #3
+ <STRONG>enter_doublewide_mode</STRONG> <STRONG>swidm</STRONG> <STRONG>ZF</STRONG> Enter double-wide mode
+
+ <STRONG>enter_draft_quality</STRONG> <STRONG>sdrfq</STRONG> <STRONG>ZG</STRONG> Enter draft-quality mode
+
+ <STRONG>enter_italics_mode</STRONG> <STRONG>sitm</STRONG> <STRONG>ZH</STRONG> Enter italic mode
+ <STRONG>enter_leftward_mode</STRONG> <STRONG>slm</STRONG> <STRONG>ZI</STRONG> Start leftward carriage motion
+ <STRONG>enter_micro_mode</STRONG> <STRONG>smicm</STRONG> <STRONG>ZJ</STRONG> Start micro-motion mode
+ <STRONG>enter_near_letter_quality</STRONG> <STRONG>snlq</STRONG> <STRONG>ZK</STRONG> Enter NLQ mode
+ <STRONG>enter_normal_quality</STRONG> <STRONG>snrmq</STRONG> <STRONG>ZL</STRONG> Enter normal-quality mode
+ <STRONG>enter_shadow_mode</STRONG> <STRONG>sshm</STRONG> <STRONG>ZM</STRONG> Enter shadow-print mode
+ <STRONG>enter_subscript_mode</STRONG> <STRONG>ssubm</STRONG> <STRONG>ZN</STRONG> Enter subscript mode
+ <STRONG>enter_superscript_mode</STRONG> <STRONG>ssupm</STRONG> <STRONG>ZO</STRONG> Enter superscript mode
+ <STRONG>enter_upward_mode</STRONG> <STRONG>sum</STRONG> <STRONG>ZP</STRONG> Start upward carriage motion
+ <STRONG>exit_doublewide_mode</STRONG> <STRONG>rwidm</STRONG> <STRONG>ZQ</STRONG> End double-wide mode
+ <STRONG>exit_italics_mode</STRONG> <STRONG>ritm</STRONG> <STRONG>ZR</STRONG> End italic mode
+ <STRONG>exit_leftward_mode</STRONG> <STRONG>rlm</STRONG> <STRONG>ZS</STRONG> End left-motion mode
+ <STRONG>exit_micro_mode</STRONG> <STRONG>rmicm</STRONG> <STRONG>ZT</STRONG> End micro-motion mode
+ <STRONG>exit_shadow_mode</STRONG> <STRONG>rshm</STRONG> <STRONG>ZU</STRONG> End shadow-print mode
+ <STRONG>exit_subscript_mode</STRONG> <STRONG>rsubm</STRONG> <STRONG>ZV</STRONG> End subscript mode
+ <STRONG>exit_superscript_mode</STRONG> <STRONG>rsupm</STRONG> <STRONG>ZW</STRONG> End superscript mode
+ <STRONG>exit_upward_mode</STRONG> <STRONG>rum</STRONG> <STRONG>ZX</STRONG> End reverse character motion
+ <STRONG>micro_column_address</STRONG> <STRONG>mhpa</STRONG> <STRONG>ZY</STRONG> Like column_address in micro
+ mode
+ <STRONG>micro_down</STRONG> <STRONG>mcud1</STRONG> <STRONG>ZZ</STRONG> Like cursor_down in micro mode
+ <STRONG>micro_left</STRONG> <STRONG>mcub1</STRONG> <STRONG>Za</STRONG> Like cursor_left in micro mode
+ <STRONG>micro_right</STRONG> <STRONG>mcuf1</STRONG> <STRONG>Zb</STRONG> Like cursor_right in micro
+ mode
+ <STRONG>micro_row_address</STRONG> <STRONG>mvpa</STRONG> <STRONG>Zc</STRONG> Like row_address #1 in micro
+ mode
+ <STRONG>micro_up</STRONG> <STRONG>mcuu1</STRONG> <STRONG>Zd</STRONG> Like cursor_up in micro mode
+ <STRONG>order_of_pins</STRONG> <STRONG>porder</STRONG> <STRONG>Ze</STRONG> Match software bits to print-
+ head pins
+ <STRONG>parm_down_micro</STRONG> <STRONG>mcud</STRONG> <STRONG>Zf</STRONG> Like parm_down_cursor in micro
+ mode
+ <STRONG>parm_left_micro</STRONG> <STRONG>mcub</STRONG> <STRONG>Zg</STRONG> Like parm_left_cursor in micro
+ mode
+ <STRONG>parm_right_micro</STRONG> <STRONG>mcuf</STRONG> <STRONG>Zh</STRONG> Like parm_right_cursor in
+ micro mode
+ <STRONG>parm_up_micro</STRONG> <STRONG>mcuu</STRONG> <STRONG>Zi</STRONG> Like parm_up_cursor in micro
+ mode
+ <STRONG>select_char_set</STRONG> <STRONG>scs</STRONG> <STRONG>Zj</STRONG> Select character set, #1
+ <STRONG>set_bottom_margin</STRONG> <STRONG>smgb</STRONG> <STRONG>Zk</STRONG> Set bottom margin at current
+ line
+ <STRONG>set_bottom_margin_parm</STRONG> <STRONG>smgbp</STRONG> <STRONG>Zl</STRONG> Set bottom margin at line #1
+ or (if smgtp is not given) #2
+ lines from bottom
+ <STRONG>set_left_margin_parm</STRONG> <STRONG>smglp</STRONG> <STRONG>Zm</STRONG> Set left (right) margin at
+ column #1
+ <STRONG>set_right_margin_parm</STRONG> <STRONG>smgrp</STRONG> <STRONG>Zn</STRONG> Set right margin at column #1
+ <STRONG>set_top_margin</STRONG> <STRONG>smgt</STRONG> <STRONG>Zo</STRONG> Set top margin at current line
+ <STRONG>set_top_margin_parm</STRONG> <STRONG>smgtp</STRONG> <STRONG>Zp</STRONG> Set top (bottom) margin at row
+ #1
+ <STRONG>start_bit_image</STRONG> <STRONG>sbim</STRONG> <STRONG>Zq</STRONG> Start printing bit image
+ graphics
+ <STRONG>start_char_set_def</STRONG> <STRONG>scsd</STRONG> <STRONG>Zr</STRONG> Start character set definition
+ #1, with #2 characters in the
+ set
+ <STRONG>stop_bit_image</STRONG> <STRONG>rbim</STRONG> <STRONG>Zs</STRONG> Stop printing bit image
+ graphics
+ <STRONG>stop_char_set_def</STRONG> <STRONG>rcsd</STRONG> <STRONG>Zt</STRONG> End definition of character
+ set #1
+ <STRONG>subscript_characters</STRONG> <STRONG>subcs</STRONG> <STRONG>Zu</STRONG> List of subscriptable
+ characters
+ <STRONG>superscript_characters</STRONG> <STRONG>supcs</STRONG> <STRONG>Zv</STRONG> List of superscriptable
+ characters
+ <STRONG>these_cause_cr</STRONG> <STRONG>docr</STRONG> <STRONG>Zw</STRONG> Printing any of these
+ characters causes CR
+ <STRONG>zero_motion</STRONG> <STRONG>zerom</STRONG> <STRONG>Zx</STRONG> No motion for subsequent
+ character
+
+ The following string capabilities are present in the SVr4.0 term
structure, but were originally not documented in the man page.
-
- <STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG>
- <STRONG>String</STRONG> <STRONG>name</STRONG> <STRONG>Code</STRONG>
- alt_scancode_esc scesa S8 Alternate escape
- for scancode
- emulation
- bit_image_carriage_return bicr Yv Move to beginning
- of same row
- bit_image_newline binel Zz Move to next row
- of the bit image
- bit_image_repeat birep Xy Repeat bit image
- cell #1 #2 times
- char_set_names csnm Zy Produce #1'th item
- from list of
- character set
- names
- code_set_init csin ci Init sequence for
- multiple codesets
- color_names colornm Yw Give name for
- color #1
- define_bit_image_region defbi Yx Define rectangular
- bit image region
- device_type devt dv Indicate
- language/codeset
- support
- display_pc_char dispc S1 Display PC
- character #1
- end_bit_image_region endbi Yy End a bit-image
- region
- enter_pc_charset_mode smpch S2 Enter PC character
- display mode
- enter_scancode_mode smsc S4 Enter PC scancode
- mode
- exit_pc_charset_mode rmpch S3 Exit PC character
- display mode
- exit_scancode_mode rmsc S5 Exit PC scancode
- mode
- get_mouse getm Gm Curses should get
- button events,
- parameter #1 not
- documented.
- key_mouse kmous Km Mouse event has
- occurred
- mouse_info minfo Mi Mouse status
- information
- pc_term_options pctrm S6 PC terminal
- options
- pkey_plab pfxl xl Program function
- key #1 to type
- string #2 and show
- string #3
-
-
- req_mouse_pos reqmp RQ Request mouse
- position
- scancode_escape scesc S7 Escape for
- scancode emulation
- set0_des_seq s0ds s0 Shift to codeset 0
- (EUC set 0, ASCII)
- set1_des_seq s1ds s1 Shift to codeset 1
- set2_des_seq s2ds s2 Shift to codeset 2
- set3_des_seq s3ds s3 Shift to codeset 3
- set_a_background setab AB Set background
- color to #1, using
- ANSI escape
- set_a_foreground setaf AF Set foreground
- color to #1, using
- ANSI escape
- set_color_band setcolor Yz Change to ribbon
- color #1
- set_lr_margin smglr ML Set both left and
- right margins to
- #1, #2. (ML is
- not in BSD
- termcap).
- set_page_length slines YZ Set page length to
- #1 lines
- set_tb_margin smgtb MT Sets both top and
- bottom margins to
- #1, #2
-
- The XSI Curses standard added these hardcopy capabilities. They were
- used in some post-4.1 versions of System V curses, e.g., Solaris 2.5
- and IRIX 6.x. Except for <STRONG>YI</STRONG>, the <STRONG>ncurses</STRONG> termcap names for them are
- invented. According to the XSI Curses standard, they have no termcap
- names. If your compiled terminfo entries use these, they may not be
- binary-compatible with System V terminfo entries after SVr4.1; beware!
-
-
- <STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG>
- <STRONG>String</STRONG> <STRONG>name</STRONG> <STRONG>Code</STRONG>
- enter_horizontal_hl_mode ehhlm Xh Enter horizontal
- highlight mode
- enter_left_hl_mode elhlm Xl Enter left highlight
- mode
- enter_low_hl_mode elohlm Xo Enter low highlight
- mode
- enter_right_hl_mode erhlm Xr Enter right
- highlight mode
- enter_top_hl_mode ethlm Xt Enter top highlight
- mode
- enter_vertical_hl_mode evhlm Xv Enter vertical
- highlight mode
- set_a_attributes sgr1 sA Define second set of
- video attributes
- #1-#6
- set_pglen_inch slength YI Set page length to
- #1 hundredth of an
- inch (some
- implementations use
- sL for termcap).
+ <STRONG>Code</STRONG>
+ <STRONG>String</STRONG> <STRONG>Capability</STRONG> <STRONG>Name</STRONG> <STRONG>TI</STRONG> <STRONG>TC</STRONG> <STRONG>Description</STRONG>
+ ------------------------------------------------------------------------
+ <STRONG>char_set_names</STRONG> <STRONG>csnm</STRONG> <STRONG>Zy</STRONG> Produce #1'th item from list
+ of character set names
+ <STRONG>key_mouse</STRONG> <STRONG>kmous</STRONG> <STRONG>Km</STRONG> Mouse event has occurred
+ <STRONG>mouse_info</STRONG> <STRONG>minfo</STRONG> <STRONG>Mi</STRONG> Mouse status information
+ <STRONG>req_mouse_pos</STRONG> <STRONG>reqmp</STRONG> <STRONG>RQ</STRONG> Request mouse position
+ <STRONG>get_mouse</STRONG> <STRONG>getm</STRONG> <STRONG>Gm</STRONG> Curses should get button
+ events, parameter #1 not
+ documented.
+ <STRONG>set_a_foreground</STRONG> <STRONG>setaf</STRONG> <STRONG>AF</STRONG> Set foreground color to #1,
+ using ANSI escape
+ <STRONG>set_a_background</STRONG> <STRONG>setab</STRONG> <STRONG>AB</STRONG> Set background color to #1,
+ using ANSI escape
+ <STRONG>pkey_plab</STRONG> <STRONG>pfxl</STRONG> <STRONG>xl</STRONG> Program function key #1 to
+ type string #2 and show string
+ #3
+ <STRONG>device_type</STRONG> <STRONG>devt</STRONG> <STRONG>dv</STRONG> Indicate language, codeset
+ support
+ <STRONG>code_set_init</STRONG> <STRONG>csin</STRONG> <STRONG>ci</STRONG> Init sequence for multiple
+ codesets
+ <STRONG>set0_des_seq</STRONG> <STRONG>s0ds</STRONG> <STRONG>s0</STRONG> Shift to codeset 0 (EUC set 0,
+ ASCII)
+ <STRONG>set1_des_seq</STRONG> <STRONG>s1ds</STRONG> <STRONG>s1</STRONG> Shift to codeset 1
+ <STRONG>set2_des_seq</STRONG> <STRONG>s2ds</STRONG> <STRONG>s2</STRONG> Shift to codeset 2
+ <STRONG>set3_des_seq</STRONG> <STRONG>s3ds</STRONG> <STRONG>s3</STRONG> Shift to codeset 3
+ <STRONG>set_lr_margin</STRONG> <STRONG>smglr</STRONG> <STRONG>ML</STRONG> Set both left and right
+ margins to #1, #2. (ML is not
+ in BSD termcap).
+ <STRONG>set_tb_margin</STRONG> <STRONG>smgtb</STRONG> <STRONG>MT</STRONG> Sets both top and bottom
+ margins to #1, #2
+ <STRONG>bit_image_repeat</STRONG> <STRONG>birep</STRONG> <STRONG>Xy</STRONG> Repeat bit image cell #1 #2
+ times
+ <STRONG>bit_image_newline</STRONG> <STRONG>binel</STRONG> <STRONG>Zz</STRONG> Move to next row of the bit
+ image
+ <STRONG>bit_image_carriage_return</STRONG> <STRONG>bicr</STRONG> <STRONG>Yv</STRONG> Move to beginning of same row
+ <STRONG>color_names</STRONG> <STRONG>colornm</STRONG> <STRONG>Yw</STRONG> Give name for color #1
+ <STRONG>define_bit_image_region</STRONG> <STRONG>defbi</STRONG> <STRONG>Yx</STRONG> Define rectangular bit image
+ region
+ <STRONG>end_bit_image_region</STRONG> <STRONG>endbi</STRONG> <STRONG>Yy</STRONG> End a bit-image region
+ <STRONG>set_color_band</STRONG> <STRONG>setcolor</STRONG> <STRONG>Yz</STRONG> Change to ribbon color #1
+ <STRONG>set_page_length</STRONG> <STRONG>slines</STRONG> <STRONG>YZ</STRONG> Set page length to #1 lines
+ <STRONG>display_pc_char</STRONG> <STRONG>dispc</STRONG> <STRONG>S1</STRONG> Display PC character #1
+ <STRONG>enter_pc_charset_mode</STRONG> <STRONG>smpch</STRONG> <STRONG>S2</STRONG> Enter PC character display
+ mode
+ <STRONG>exit_pc_charset_mode</STRONG> <STRONG>rmpch</STRONG> <STRONG>S3</STRONG> Exit PC character display mode
+ <STRONG>enter_scancode_mode</STRONG> <STRONG>smsc</STRONG> <STRONG>S4</STRONG> Enter PC scancode mode
+ <STRONG>exit_scancode_mode</STRONG> <STRONG>rmsc</STRONG> <STRONG>S5</STRONG> Exit PC scancode mode
+ <STRONG>pc_term_options</STRONG> <STRONG>pctrm</STRONG> <STRONG>S6</STRONG> PC terminal options
+ <STRONG>scancode_escape</STRONG> <STRONG>scesc</STRONG> <STRONG>S7</STRONG> Escape for scancode emulation
+ <STRONG>alt_scancode_esc</STRONG> <STRONG>scesa</STRONG> <STRONG>S8</STRONG> Alternate escape for scancode
+ emulation
+
+ The XSI Curses standard added these hardcopy capabilities. They were
+ used in some post-4.1 versions of System V curses, e.g., Solaris 2.5
+ and IRIX 6.x. Except for <STRONG>YI</STRONG>, the <STRONG>ncurses</STRONG> termcap names for them are
+ invented. According to the XSI Curses standard, they have no termcap
+ names. If your compiled terminfo entries use these, they may not be
+ binary-compatible with System V terminfo entries after SVr4.1; beware!
+
+ <STRONG>Code</STRONG>
+
+ <STRONG>String</STRONG> <STRONG>Capability</STRONG> <STRONG>Name</STRONG> <STRONG>TI</STRONG> <STRONG>TC</STRONG> <STRONG>Description</STRONG>
+ ------------------------------------------------------------------------
+ <STRONG>enter_horizontal_hl_mode</STRONG> <STRONG>ehhlm</STRONG> <STRONG>Xh</STRONG> Enter horizontal highlight
+ mode
+ <STRONG>enter_left_hl_mode</STRONG> <STRONG>elhlm</STRONG> <STRONG>Xl</STRONG> Enter left highlight mode
+ <STRONG>enter_low_hl_mode</STRONG> <STRONG>elohlm</STRONG> <STRONG>Xo</STRONG> Enter low highlight mode
+ <STRONG>enter_right_hl_mode</STRONG> <STRONG>erhlm</STRONG> <STRONG>Xr</STRONG> Enter right highlight mode
+ <STRONG>enter_top_hl_mode</STRONG> <STRONG>ethlm</STRONG> <STRONG>Xt</STRONG> Enter top highlight mode
+ <STRONG>enter_vertical_hl_mode</STRONG> <STRONG>evhlm</STRONG> <STRONG>Xv</STRONG> Enter vertical highlight mode
+ <STRONG>set_a_attributes</STRONG> <STRONG>sgr1</STRONG> <STRONG>sA</STRONG> Define second set of video
+ attributes #1-#6
+ <STRONG>set_pglen_inch</STRONG> <STRONG>slength</STRONG> <STRONG>YI</STRONG> Set page length to #1
+ hundredth of an inch (some
+ implementations use sL for
+ termcap).
</PRE><H3><a name="h3-User-Defined-Capabilities">User-Defined Capabilities</a></H3><PRE>
- The preceding section listed the <EM>predefined</EM> capabilities. They deal
- with some special features for terminals no longer (or possibly never)
- produced. Occasionally there are special features of newer terminals
- which are awkward or impossible to represent by reusing the predefined
+ The preceding section listed the <EM>predefined</EM> capabilities. They deal
+ with some special features for terminals no longer (or possibly never)
+ produced. Occasionally there are special features of newer terminals
+ which are awkward or impossible to represent by reusing the predefined
capabilities.
- <STRONG>ncurses</STRONG> addresses this limitation by allowing user-defined
- capabilities. The <STRONG>tic</STRONG> and <STRONG>infocmp</STRONG> programs provide the <STRONG>-x</STRONG> option for
+ <EM>ncurses</EM> addresses this limitation by allowing user-defined
+ capabilities. The <STRONG>tic</STRONG> and <STRONG>infocmp</STRONG> programs provide the <STRONG>-x</STRONG> option for
this purpose. When <STRONG>-x</STRONG> is set, <STRONG>tic</STRONG> treats unknown capabilities as user-
- defined. That is, if <STRONG>tic</STRONG> encounters a capability name which it does
- not recognize, it infers its type (boolean, number or string) from the
- syntax and makes an extended table entry for that capability. The
- <STRONG><A HREF="curs_extend.3x.html">use_extended_names(3x)</A></STRONG> function makes this information conditionally
- available to applications. The ncurses library provides the data
+ defined. That is, if <STRONG>tic</STRONG> encounters a capability name which it does
+ not recognize, it infers its type (Boolean, number or string) from the
+ syntax and makes an extended table entry for that capability. The
+ <STRONG><A HREF="curs_extend.3x.html">use_extended_names(3x)</A></STRONG> function makes this information conditionally
+ available to applications. The <EM>ncurses</EM> library provides the data
leaving most of the behavior to applications:
- <STRONG>o</STRONG> User-defined capability strings whose name begins with "k" are
+ <STRONG>o</STRONG> User-defined capability strings whose name begins with "k" are
treated as function keys.
- <STRONG>o</STRONG> The types (boolean, number, string) determined by <STRONG>tic</STRONG> can be
+ <STRONG>o</STRONG> The types (Boolean, number, string) determined by <STRONG>tic</STRONG> can be
inferred by successful calls on <STRONG>tigetflag</STRONG>, etc.
<STRONG>o</STRONG> If the capability name happens to be two characters, the capability
is also available through the termcap interface.
- While termcap is said to be extensible because it does not use a
- predefined set of capabilities, in practice it has been limited to the
- capabilities defined by terminfo implementations. As a rule, user-
+ While termcap is said to be extensible because it does not use a
+ predefined set of capabilities, in practice it has been limited to the
+ capabilities defined by terminfo implementations. As a rule, user-
defined capabilities intended for use by termcap applications should be
- limited to booleans and numbers to avoid running past the 1023 byte
- limit assumed by termcap implementations and their applications. In
- particular, providing extended sets of function keys (past the 60
+ limited to Booleans and numbers to avoid running past the 1023 byte
+ limit assumed by termcap implementations and their applications. In
+ particular, providing extended sets of function keys (past the 60
numbered keys and the handful of special named keys) is best done using
the longer names available using terminfo.
+ The <EM>ncurses</EM> library uses a few of these user-defined capabilities, as
+ described in <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>. Other user-defined capabilities (including
+ function keys) are described in the terminal database, in the section
+ on <EM>NCURSES</EM> <EM>USER-DEFINABLE</EM> <EM>CAPABILITIES</EM>
+
</PRE><H3><a name="h3-A-Sample-Entry">A Sample Entry</a></H3><PRE>
The following entry, describing an ANSI-standard terminal, is
@@ -1233,7 +1028,7 @@
are followed by the character "#" and then a positive value. Thus
<STRONG>cols</STRONG>, which indicates the number of columns the terminal has, gives the
value "80" for ansi. Values for numeric capabilities may be specified
- in decimal, octal or hexadecimal, using the C programming language
+ in decimal, octal, or hexadecimal, using the C programming language
conventions (e.g., 255, 0377 and 0xff or 0xFF).
Finally, string valued capabilities, such as <STRONG>el</STRONG> (clear to end of line
@@ -1245,7 +1040,7 @@
<STRONG>o</STRONG> Both <STRONG>\E</STRONG> and <STRONG>\e</STRONG> map to an ESCAPE character,
- <STRONG>o</STRONG> <STRONG>^x</STRONG> maps to a control-x for any appropriate <EM>x</EM>, and
+ <STRONG>o</STRONG> <STRONG>^</STRONG><STRONG><EM>x</EM></STRONG> maps to a control-<EM>x</EM> for any appropriate <EM>x</EM>, and
<STRONG>o</STRONG> the sequences
@@ -1313,104 +1108,123 @@
</PRE><H3><a name="h3-Fetching-Compiled-Descriptions">Fetching Compiled Descriptions</a></H3><PRE>
- The <STRONG>ncurses</STRONG> library searches for terminal descriptions in several
- places. It uses only the first description found. The library has a
- compiled-in list of places to search which can be overridden by
- environment variables. Before starting to search, <STRONG>ncurses</STRONG> eliminates
- duplicates in its search list.
+ Terminal descriptions in <EM>ncurses</EM> are stored in terminal databases.
+ These databases, which are found by their pathname, may be configured
+ either as directory trees or hashed databases (see <STRONG><A HREF="term.5.html">term(5)</A></STRONG>),
- <STRONG>o</STRONG> If the environment variable TERMINFO is set, it is interpreted as
- the pathname of a directory containing the compiled description you
- are working on. Only that directory is searched.
+ The library uses a compiled-in list of pathnames, which can be
+ overridden by environment variables. Before starting to search,
+ <EM>ncurses</EM> checks the search list, eliminating duplicates and pathnames
+ where no terminal database is found. The <EM>ncurses</EM> library reads the
+ first description which passes its consistency checks.
- <STRONG>o</STRONG> If TERMINFO is not set, <STRONG>ncurses</STRONG> will instead look in the directory
- <STRONG>$HOME/.terminfo</STRONG> for a compiled description.
+ <STRONG>o</STRONG> The environment variable <STRONG>TERMINFO</STRONG> is checked first, for a terminal
+ database containing the terminal description.
- <STRONG>o</STRONG> Next, if the environment variable TERMINFO_DIRS is set, <STRONG>ncurses</STRONG>
- will interpret the contents of that variable as a list of colon-
- separated directories (or database files) to be searched.
+ <STRONG>o</STRONG> Next, <EM>ncurses</EM> looks in <EM>$HOME/.terminfo</EM> for a compiled description.
- An empty directory name (i.e., if the variable begins or ends with
- a colon, or contains adjacent colons) is interpreted as the system
+ This is an optional feature which may be omitted entirely from the
+ library, or limited to prevent accidental use by privileged
+ applications.
+
+ <STRONG>o</STRONG> Next, if the environment variable <EM>TERMINFO</EM><STRONG>_</STRONG><EM>DIRS</EM> is set, <EM>ncurses</EM>
+ interprets the contents of that variable as a list of colon-
+ separated pathnames of terminal databases to be searched.
+
+ An empty pathname (i.e., if the variable begins or ends with a
+ colon, or contains adjacent colons) is interpreted as the system
location <EM>/usr/share/terminfo</EM>.
- <STRONG>o</STRONG> Finally, <STRONG>ncurses</STRONG> searches these compiled-in locations:
+ <STRONG>o</STRONG> Finally, <EM>ncurses</EM> searches these compiled-in locations:
+
+ <STRONG>o</STRONG> a list of directories (/usr/share/terminfo), and
- <STRONG>o</STRONG> a list of directories (no default value), and
+ <STRONG>o</STRONG> the system terminfo directory, <EM>/usr/share/terminfo</EM>
- <STRONG>o</STRONG> the system terminfo directory, <EM>/usr/share/terminfo</EM> (the
- compiled-in default).
+ The <STRONG>TERMINFO</STRONG> variable can contain a terminal description instead of the
+ pathname of a terminal database. If this variable begins with "hex:"
+ or "b64:" then <EM>ncurses</EM> reads a terminal description from hexadecimal-
+ or base64-encoded data, and if that description matches the name
+ sought, will use that. This encoded data can be set using the "-Q"
+ option of <STRONG>tic</STRONG> or <STRONG>infocmp</STRONG>.
+
+ The preceding addresses the usual configuration of <EM>ncurses</EM>, which uses
+ terminal descriptions prepared in <EM>terminfo</EM> format. While <EM>termcap</EM> is
+ less expressive, <EM>ncurses</EM> can also be configured to read <EM>termcap</EM>
+ descriptions. In that configuration, it checks the <EM>TERMCAP</EM> and
+ <EM>TERMPATH</EM> variables (for content and search path, respectively) after
+ the system terminal database.
</PRE><H3><a name="h3-Preparing-Descriptions">Preparing Descriptions</a></H3><PRE>
- We now outline how to prepare descriptions of terminals. The most
- effective way to prepare a terminal description is by imitating the
- description of a similar terminal in <EM>terminfo</EM> and to build up a
+ We now outline how to prepare descriptions of terminals. The most
+ effective way to prepare a terminal description is by imitating the
+ description of a similar terminal in <EM>terminfo</EM> and to build up a
description gradually, using partial descriptions with <EM>vi</EM> or some other
- screen-oriented program to check that they are correct. Be aware that
- a very unusual terminal may expose deficiencies in the ability of the
+ screen-oriented program to check that they are correct. Be aware that
+ a very unusual terminal may expose deficiencies in the ability of the
<EM>terminfo</EM> file to describe it or bugs in the screen-handling code of the
test program.
- To get the padding for insert line right (if the terminal manufacturer
- did not document it) a severe test is to edit a large file at 9600
+ To get the padding for insert line right (if the terminal manufacturer
+ did not document it) a severe test is to edit a large file at 9600
baud, delete 16 or so lines from the middle of the screen, then hit the
"u" key several times quickly. If the terminal messes up, more padding
is usually needed. A similar test can be used for insert character.
</PRE><H3><a name="h3-Basic-Capabilities">Basic Capabilities</a></H3><PRE>
- The number of columns on each line for the terminal is given by the
- <STRONG>cols</STRONG> numeric capability. If the terminal is a CRT, then the number of
- lines on the screen is given by the <STRONG>lines</STRONG> capability. If the terminal
- wraps around to the beginning of the next line when it reaches the
- right margin, then it should have the <STRONG>am</STRONG> capability. If the terminal
- can clear its screen, leaving the cursor in the home position, then
- this is given by the <STRONG>clear</STRONG> string capability. If the terminal
+ The number of columns on each line for the terminal is given by the
+ <STRONG>cols</STRONG> numeric capability. If the terminal is a CRT, then the number of
+ lines on the screen is given by the <STRONG>lines</STRONG> capability. If the terminal
+ wraps around to the beginning of the next line when it reaches the
+ right margin, then it should have the <STRONG>am</STRONG> capability. If the terminal
+ can clear its screen, leaving the cursor in the home position, then
+ this is given by the <STRONG>clear</STRONG> string capability. If the terminal
overstrikes (rather than clearing a position when a character is struck
- over) then it should have the <STRONG>os</STRONG> capability. If the terminal is a
+ over) then it should have the <STRONG>os</STRONG> capability. If the terminal is a
printing terminal, with no soft copy unit, give it both <STRONG>hc</STRONG> and <STRONG>os</STRONG>. (<STRONG>os</STRONG>
- applies to storage scope terminals, such as TEKTRONIX 4010 series, as
- well as hard copy and APL terminals.) If there is a code to move the
+ applies to storage scope terminals, such as TEKTRONIX 4010 series, as
+ well as hard copy and APL terminals.) If there is a code to move the
cursor to the left edge of the current row, give this as <STRONG>cr</STRONG>. (Normally
- this will be carriage return, control/M.) If there is a code to
+ this will be carriage return, control/M.) If there is a code to
produce an audible signal (bell, beep, etc) give this as <STRONG>bel</STRONG>.
If there is a code to move the cursor one position to the left (such as
- backspace) that capability should be given as <STRONG>cub1</STRONG>. Similarly, codes
- to move to the right, up, and down should be given as <STRONG>cuf1</STRONG>, <STRONG>cuu1</STRONG>, and
- <STRONG>cud1</STRONG>. These local cursor motions should not alter the text they pass
- over, for example, you would not normally use "<STRONG>cuf1</STRONG>= " because the
+ backspace) that capability should be given as <STRONG>cub1</STRONG>. Similarly, codes
+ to move to the right, up, and down should be given as <STRONG>cuf1</STRONG>, <STRONG>cuu1</STRONG>, and
+ <STRONG>cud1</STRONG>. These local cursor motions should not alter the text they pass
+ over, for example, you would not normally use "<STRONG>cuf1</STRONG>= " because the
space would erase the character moved over.
A very important point here is that the local cursor motions encoded in
- <EM>terminfo</EM> are undefined at the left and top edges of a CRT terminal.
+ <EM>terminfo</EM> are undefined at the left and top edges of a CRT terminal.
Programs should never attempt to backspace around the left edge, unless
- <STRONG>bw</STRONG> is given, and never attempt to go up locally off the top. In order
- to scroll text up, a program will go to the bottom left corner of the
+ <STRONG>bw</STRONG> is given, and never attempt to go up locally off the top. In order
+ to scroll text up, a program will go to the bottom left corner of the
screen and send the <STRONG>ind</STRONG> (index) string.
- To scroll text down, a program goes to the top left corner of the
+ To scroll text down, a program goes to the top left corner of the
screen and sends the <STRONG>ri</STRONG> (reverse index) string. The strings <STRONG>ind</STRONG> and <STRONG>ri</STRONG>
are undefined when not on their respective corners of the screen.
- Parameterized versions of the scrolling sequences are <STRONG>indn</STRONG> and <STRONG>rin</STRONG>
- which have the same semantics as <STRONG>ind</STRONG> and <STRONG>ri</STRONG> except that they take one
- parameter, and scroll that many lines. They are also undefined except
+ Parameterized versions of the scrolling sequences are <STRONG>indn</STRONG> and <STRONG>rin</STRONG>
+ which have the same semantics as <STRONG>ind</STRONG> and <STRONG>ri</STRONG> except that they take one
+ parameter, and scroll that many lines. They are also undefined except
at the appropriate edge of the screen.
- The <STRONG>am</STRONG> capability tells whether the cursor sticks at the right edge of
- the screen when text is output, but this does not necessarily apply to
- a <STRONG>cuf1</STRONG> from the last column. The only local motion which is defined
- from the left edge is if <STRONG>bw</STRONG> is given, then a <STRONG>cub1</STRONG> from the left edge
- will move to the right edge of the previous row. If <STRONG>bw</STRONG> is not given,
- the effect is undefined. This is useful for drawing a box around the
+ The <STRONG>am</STRONG> capability tells whether the cursor sticks at the right edge of
+ the screen when text is output, but this does not necessarily apply to
+ a <STRONG>cuf1</STRONG> from the last column. The only local motion which is defined
+ from the left edge is if <STRONG>bw</STRONG> is given, then a <STRONG>cub1</STRONG> from the left edge
+ will move to the right edge of the previous row. If <STRONG>bw</STRONG> is not given,
+ the effect is undefined. This is useful for drawing a box around the
edge of the screen, for example. If the terminal has switch selectable
- automatic margins, the <EM>terminfo</EM> file usually assumes that this is on;
- i.e., <STRONG>am</STRONG>. If the terminal has a command which moves to the first
- column of the next line, that command can be given as <STRONG>nel</STRONG> (newline).
- It does not matter if the command clears the remainder of the current
- line, so if the terminal has no <STRONG>cr</STRONG> and <STRONG>lf</STRONG> it may still be possible to
+ automatic margins, the <EM>terminfo</EM> file usually assumes that this is on;
+ i.e., <STRONG>am</STRONG>. If the terminal has a command which moves to the first
+ column of the next line, that command can be given as <STRONG>nel</STRONG> (newline).
+ It does not matter if the command clears the remainder of the current
+ line, so if the terminal has no <STRONG>cr</STRONG> and <STRONG>lf</STRONG> it may still be possible to
craft a working <STRONG>nel</STRONG> out of one or both of them.
These capabilities suffice to describe hard-copy and "glass-tty"
@@ -1428,19 +1242,19 @@
</PRE><H3><a name="h3-Parameterized-Strings">Parameterized Strings</a></H3><PRE>
Cursor addressing and other strings requiring parameters in the
- terminal are described by a parameterized string capability, with
- <EM>printf</EM>-like escapes such as <EM>%x</EM> in it. For example, to address the
- cursor, the <STRONG>cup</STRONG> capability is given, using two parameters: the row and
- column to address to. (Rows and columns are numbered from zero and
- refer to the physical screen visible to the user, not to any unseen
- memory.) If the terminal has memory relative cursor addressing, that
+ terminal are described by a parameterized string capability, with
+ <EM>printf</EM>-like escapes such as <EM>%x</EM> in it. For example, to address the
+ cursor, the <STRONG>cup</STRONG> capability is given, using two parameters: the row and
+ column to address to. (Rows and columns are numbered from zero and
+ refer to the physical screen visible to the user, not to any unseen
+ memory.) If the terminal has memory relative cursor addressing, that
can be indicated by <STRONG>mrcup</STRONG>.
- The parameter mechanism uses a stack and special <STRONG>%</STRONG> codes to manipulate
- it. Typically a sequence will push one of the parameters onto the
- stack and then print it in some format. Print (e.g., "%d") is a
- special case. Other operations, including "%t" pop their operand from
- the stack. It is noted that more complex operations are often
+ The parameter mechanism uses a stack and special <STRONG>%</STRONG> codes to manipulate
+ it. Typically a sequence will push one of the parameters onto the
+ stack and then print it in some format. Print (e.g., "%d") is a
+ special case. Other operations, including "%t" pop their operand from
+ the stack. It is noted that more complex operations are often
necessary, e.g., in the <STRONG>sgr</STRONG> string.
The <STRONG>%</STRONG> encodings have the following meanings:
@@ -1448,11 +1262,11 @@
<STRONG>%%</STRONG> outputs "%"
<STRONG>%</STRONG><EM>[[</EM>:<EM>]flags][width[.precision]][</EM><STRONG>doxXs</STRONG><EM>]</EM>
- as in <STRONG>printf(3)</STRONG>, flags are <EM>[-+#]</EM> and <EM>space</EM>. Use a ":" to allow
+ as in <STRONG>printf(3)</STRONG>, flags are <EM>[-+#]</EM> and <EM>space</EM>. Use a ":" to allow
the next character to be a "-" flag, avoiding interpreting "%-" as
an operator.
- %c print <EM>pop()</EM> like %c in <STRONG>printf</STRONG>
+ <STRONG>%c</STRONG> print <EM>pop()</EM> like %c in <STRONG>printf</STRONG>
<STRONG>%s</STRONG> print <EM>pop()</EM> like %s in <STRONG>printf</STRONG>
@@ -1462,7 +1276,7 @@
<STRONG>%P</STRONG><EM>[a-z]</EM>
set dynamic variable <EM>[a-z]</EM> to <EM>pop()</EM>
- <STRONG>%g</STRONG><EM>[a-z]/</EM>
+ <STRONG>%g</STRONG><EM>[a-z]</EM>
get dynamic variable <EM>[a-z]</EM> and push it
<STRONG>%P</STRONG><EM>[A-Z]</EM>
@@ -1471,11 +1285,41 @@
<STRONG>%g</STRONG><EM>[A-Z]</EM>
get static variable <EM>[a-z]</EM> and push it
- The terms "static" and "dynamic" are misleading. Historically,
+ The terms "static" and "dynamic" are misleading. Historically,
these are simply two different sets of variables, whose values are
- not reset between calls to <STRONG><A HREF="curs_terminfo.3x.html">tparm(3x)</A></STRONG>. However, that fact is not
+ not reset between calls to <STRONG><A HREF="curs_terminfo.3x.html">tparm(3x)</A></STRONG>. However, that fact is not
documented in other implementations. Relying on it will adversely
- impact portability to other implementations.
+ impact portability to other implementations:
+
+ <STRONG>o</STRONG> SVr2 curses supported <EM>dynamic</EM> variables. Those are set only
+ by a <STRONG>%P</STRONG> operator. A <STRONG>%g</STRONG> for a given variable without first
+ setting it with <STRONG>%P</STRONG> will give unpredictable results, because
+ dynamic variables are an uninitialized local array on the
+ stack in the <STRONG>tparm</STRONG> function.
+
+ <STRONG>o</STRONG> SVr3.2 curses supported <EM>static</EM> variables. Those are an array
+ in the <EM>TERMINAL</EM> structure (declared in <STRONG>term.h</STRONG>), and are zeroed
+ automatically when the <STRONG>setupterm</STRONG> function allocates the data.
+
+ <STRONG>o</STRONG> SVr4 curses made no further improvements to the <EM>dynamic/static</EM>
+ variable feature.
+
+ <STRONG>o</STRONG> Solaris XPG4 curses does not distinguish between <EM>dynamic</EM> and
+ <EM>static</EM> variables. They are the same. Like SVr4 curses, XPG4
+ curses does not initialize these explicitly.
+
+ <STRONG>o</STRONG> Before version 6.3, <EM>ncurses</EM> stores both <EM>dynamic</EM> and <EM>static</EM>
+ variables in persistent storage, initialized to zeros.
+
+ <STRONG>o</STRONG> Beginning with version 6.3, <EM>ncurses</EM> stores <EM>static</EM> and <EM>dynamic</EM>
+ variables in the same manner as SVr4.
+
+ <STRONG>o</STRONG> Unlike other implementations, <EM>ncurses</EM> zeros dynamic
+ variables before the first <STRONG>%g</STRONG> or <STRONG>%P</STRONG> operator.
+
+ <STRONG>o</STRONG> Like SVr2, the scope of dynamic variables in <EM>ncurses</EM> is
+ within the current call to <STRONG>tparm</STRONG>. Use static variables if
+ persistent storage is needed.
<STRONG>%'</STRONG><EM>c</EM><STRONG>'</STRONG> char constant <EM>c</EM>
@@ -1503,8 +1347,8 @@
<STRONG>%?</STRONG> <EM>expr</EM> <STRONG>%t</STRONG> <EM>thenpart</EM> <STRONG>%e</STRONG> <EM>elsepart</EM> <STRONG>%;</STRONG>
This forms an if-then-else. The <STRONG>%e</STRONG> <EM>elsepart</EM> is optional. Usually
- the <STRONG>%?</STRONG> <EM>expr</EM> part pushes a value onto the stack, and <STRONG>%t</STRONG> pops it
- from the stack, testing if it is nonzero (true). If it is zero
+ the <STRONG>%?</STRONG> <EM>expr</EM> part pushes a value onto the stack, and <STRONG>%t</STRONG> pops it
+ from the stack, testing if it is nonzero (true). If it is zero
(false), control passes to the <STRONG>%e</STRONG> (else) part.
It is possible to form else-if's a la Algol 68:
@@ -1512,344 +1356,456 @@
where ci are conditions, bi are bodies.
- Use the <STRONG>-f</STRONG> option of <STRONG>tic</STRONG> or <STRONG>infocmp</STRONG> to see the structure of if-
+ Use the <STRONG>-f</STRONG> option of <STRONG>tic</STRONG> or <STRONG>infocmp</STRONG> to see the structure of if-
then-else's. Some strings, e.g., <STRONG>sgr</STRONG> can be very complicated when
- written on one line. The <STRONG>-f</STRONG> option splits the string into lines
+ written on one line. The <STRONG>-f</STRONG> option splits the string into lines
with the parts indented.
- Binary operations are in postfix form with the operands in the usual
- order. That is, to get x-5 one would use "%gx%{5}%-". <STRONG>%P</STRONG> and <STRONG>%g</STRONG>
+ Binary operations are in postfix form with the operands in the usual
+ order. That is, to get x-5 one would use "%gx%{5}%-". <STRONG>%P</STRONG> and <STRONG>%g</STRONG>
variables are persistent across escape-string evaluations.
- Consider the HP2645, which, to get to row 3 and column 12, needs to be
- sent \E&amp;a12c03Y padded for 6 milliseconds. Note that the order of the
- rows and columns is inverted here, and that the row and column are
- printed as two digits. Thus its <STRONG>cup</STRONG> capability is
- "cup=6\E&amp;%p2%2dc%p1%2dY".
+ Consider the HP2645, which, to get to row 3 and column 12, needs to be
+ sent \E&amp;a12c03Y padded for 6 milliseconds. The order of the rows and
+ columns is inverted here, and the row and column are printed as two
+ digits. The corresponding terminal description is expressed thus:
+ cup=\E&amp;a%p2%dc%p1%dY$&lt;6&gt;,
The Microterm ACT-IV needs the current row and column sent preceded by
- a <STRONG>^T</STRONG>, with the row and column simply encoded in binary,
- "cup=^T%p1%c%p2%c". Terminals which use "%c" need to be able to
- backspace the cursor (<STRONG>cub1</STRONG>), and to move the cursor up one line on the
- screen (<STRONG>cuu1</STRONG>). This is necessary because it is not always safe to
- transmit <STRONG>\n</STRONG> <STRONG>^D</STRONG> and <STRONG>\r</STRONG>, as the system may change or discard them. (The
- library routines dealing with terminfo set tty modes so that tabs are
- never expanded, so \t is safe to send. This turns out to be essential
- for the Ann Arbor 4080.)
+ a <STRONG>^T</STRONG>, with the row and column simply encoded in binary,
+ cup=^T%p1%c%p2%c
+
+ Terminals which use "%c" need to be able to backspace the cursor
+ (<STRONG>cub1</STRONG>), and to move the cursor up one line on the screen (<STRONG>cuu1</STRONG>). This
+ is necessary because it is not always safe to transmit <STRONG>\n</STRONG> <STRONG>^D</STRONG> and <STRONG>\r</STRONG>, as
+ the system may change or discard them. (The library routines dealing
+ with terminfo set tty modes so that tabs are never expanded, so \t is
+ safe to send. This turns out to be essential for the Ann Arbor 4080.)
A final example is the LSI ADM-3a, which uses row and column offset by
- a blank character, thus "cup=\E=%p1%' '%+%c%p2%' '%+%c". After sending
- "\E=", this pushes the first parameter, pushes the ASCII value for a
- space (32), adds them (pushing the sum on the stack in place of the two
- previous values) and outputs that value as a character. Then the same
- is done for the second parameter. More complex arithmetic is possible
- using the stack.
+ a blank character, thus
+ cup=\E=%p1%' '%+%c%p2%' '%+%c
+
+ After sending "\E=", this pushes the first parameter, pushes the ASCII
+ value for a space (32), adds them (pushing the sum on the stack in
+ place of the two previous values) and outputs that value as a
+ character. Then the same is done for the second parameter. More
+ complex arithmetic is possible using the stack.
</PRE><H3><a name="h3-Cursor-Motions">Cursor Motions</a></H3><PRE>
- If the terminal has a fast way to home the cursor (to very upper left
- corner of screen) then this can be given as <STRONG>home</STRONG>; similarly a fast way
- of getting to the lower left-hand corner can be given as <STRONG>ll</STRONG>; this may
+ If the terminal has a fast way to home the cursor (to very upper left
+ corner of screen) then this can be given as <STRONG>home</STRONG>; similarly a fast way
+ of getting to the lower left-hand corner can be given as <STRONG>ll</STRONG>; this may
involve going up with <STRONG>cuu1</STRONG> from the home position, but a program should
never do this itself (unless <STRONG>ll</STRONG> does) because it can make no assumption
- about the effect of moving up from the home position. Note that the
- home position is the same as addressing to (0,0): to the top left
- corner of the screen, not of memory. (Thus, the \EH sequence on HP
+ about the effect of moving up from the home position. Note that the
+ home position is the same as addressing to (0,0): to the top left
+ corner of the screen, not of memory. (Thus, the \EH sequence on HP
terminals cannot be used for <STRONG>home</STRONG>.)
If the terminal has row or column absolute cursor addressing, these can
- be given as single parameter capabilities <STRONG>hpa</STRONG> (horizontal position
- absolute) and <STRONG>vpa</STRONG> (vertical position absolute). Sometimes these are
- shorter than the more general two parameter sequence (as with the
- hp2645) and can be used in preference to <STRONG>cup</STRONG>. If there are
- parameterized local motions (e.g., move <EM>n</EM> spaces to the right) these
- can be given as <STRONG>cud</STRONG>, <STRONG>cub</STRONG>, <STRONG>cuf</STRONG>, and <STRONG>cuu</STRONG> with a single parameter
- indicating how many spaces to move. These are primarily useful if the
+ be given as single parameter capabilities <STRONG>hpa</STRONG> (horizontal position
+ absolute) and <STRONG>vpa</STRONG> (vertical position absolute). Sometimes these are
+ shorter than the more general two parameter sequence (as with the
+ hp2645) and can be used in preference to <STRONG>cup</STRONG>. If there are
+ parameterized local motions (e.g., move <EM>n</EM> spaces to the right) these
+ can be given as <STRONG>cud</STRONG>, <STRONG>cub</STRONG>, <STRONG>cuf</STRONG>, and <STRONG>cuu</STRONG> with a single parameter
+ indicating how many spaces to move. These are primarily useful if the
terminal does not have <STRONG>cup</STRONG>, such as the TEKTRONIX 4025.
- If the terminal needs to be in a special mode when running a program
+ If the terminal needs to be in a special mode when running a program
that uses these capabilities, the codes to enter and exit this mode can
- be given as <STRONG>smcup</STRONG> and <STRONG>rmcup</STRONG>. This arises, for example, from terminals
- like the Concept with more than one page of memory. If the terminal
- has only memory relative cursor addressing and not screen relative
- cursor addressing, a one screen-sized window must be fixed into the
+ be given as <STRONG>smcup</STRONG> and <STRONG>rmcup</STRONG>. This arises, for example, from terminals
+ like the Concept with more than one page of memory. If the terminal
+ has only memory relative cursor addressing and not screen relative
+ cursor addressing, a one screen-sized window must be fixed into the
terminal for cursor addressing to work properly. This is also used for
- the TEKTRONIX 4025, where <STRONG>smcup</STRONG> sets the command character to be the
- one used by terminfo. If the <STRONG>smcup</STRONG> sequence will not restore the
- screen after an <STRONG>rmcup</STRONG> sequence is output (to the state prior to
+ the TEKTRONIX 4025, where <STRONG>smcup</STRONG> sets the command character to be the
+ one used by terminfo. If the <STRONG>smcup</STRONG> sequence will not restore the
+ screen after an <STRONG>rmcup</STRONG> sequence is output (to the state prior to
outputting <STRONG>rmcup</STRONG>), specify <STRONG>nrrmc</STRONG>.
+</PRE><H3><a name="h3-Margins">Margins</a></H3><PRE>
+ SVr4 (and X/Open Curses) list several string capabilities for setting
+ margins. Two were intended for use with terminals, and another six
+ were intended for use with printers.
+
+ <STRONG>o</STRONG> The two terminal capabilities assume that the terminal may have the
+ capability of setting the left and/or right margin at the current
+ cursor column position.
+
+ <STRONG>o</STRONG> The printer capabilities assume that the printer may have two types
+ of capability:
+
+ <STRONG>o</STRONG> the ability to set a top and/or bottom margin using the current
+ line position, and
+
+ <STRONG>o</STRONG> parameterized capabilities for setting the top, bottom, left,
+ right margins given the number of rows or columns.
+
+ In practice, the categorization into "terminal" and "printer" is not
+ suitable:
+
+ <STRONG>o</STRONG> The AT&amp;T SVr4 terminal database uses <STRONG>smgl</STRONG> four times, for AT&amp;T
+ hardware.
+
+ Three of the four are printers. They lack the ability to set
+ left/right margins by specifying the column.
+
+ <STRONG>o</STRONG> Other (non-AT&amp;T) terminals may support margins but using different
+ assumptions from AT&amp;T.
+
+ For instance, the DEC VT420 supports left/right margins, but only
+ using a column parameter. As an added complication, the VT420 uses
+ two settings to fully enable left/right margins (left/right margin
+ mode, and origin mode). The former enables the margins, which
+ causes printed text to wrap within margins, but the latter is
+ needed to prevent cursor-addressing outside those margins.
+
+ <STRONG>o</STRONG> Both DEC VT420 left/right margins are set with a single control
+ sequence. If either is omitted, the corresponding margin is set to
+ the left or right edge of the display (rather than leaving the
+ margin unmodified).
+
+ These are the margin-related capabilities:
+
+ <STRONG>Name</STRONG> <STRONG>Description</STRONG>
+ ---------------------------------------------------
+ <STRONG>smgl</STRONG> Set left margin at current column
+ <STRONG>smgr</STRONG> Set right margin at current column
+ <STRONG>smgb</STRONG> Set bottom margin at current line
+ <STRONG>smgt</STRONG> Set top margin at current line
+ <STRONG>smgbp</STRONG> Set bottom margin at line <EM>N</EM>
+ <STRONG>smglp</STRONG> Set left margin at column <EM>N</EM>
+ <STRONG>smgrp</STRONG> Set right margin at column <EM>N</EM>
+ <STRONG>smgtp</STRONG> Set top margin at line <EM>N</EM>
+ <STRONG>smglr</STRONG> Set both left and right margins to <EM>L</EM> and <EM>R</EM>
+ <STRONG>smgtb</STRONG> Set both top and bottom margins to <EM>T</EM> and <EM>B</EM>
+
+ When writing an application that uses these string capabilities, the
+ pairs should be first checked to see if each capability in the pair is
+ set or only one is set:
+
+ <STRONG>o</STRONG> If both <STRONG>smglp</STRONG> and <STRONG>smgrp</STRONG> are set, each is used with a single
+ argument, <EM>N</EM>, that gives the column number of the left and right
+ margin, respectively.
+
+ <STRONG>o</STRONG> If both <STRONG>smgtp</STRONG> and <STRONG>smgbp</STRONG> are set, each is used to set the top and
+ bottom margin, respectively:
+
+ <STRONG>o</STRONG> <STRONG>smgtp</STRONG> is used with a single argument, <EM>N</EM>, the line number of the
+ top margin.
+
+ <STRONG>o</STRONG> <STRONG>smgbp</STRONG> is used with two arguments, <EM>N</EM> and <EM>M</EM>, that give the line
+ number of the bottom margin, the first counting from the top of
+ the page and the second counting from the bottom. This
+ accommodates the two styles of specifying the bottom margin in
+ different manufacturers' printers.
+
+ When designing a terminfo entry for a printer that has a settable
+ bottom margin, only the first or second argument should be used,
+ depending on the printer. When developing an application that uses
+ <STRONG>smgbp</STRONG> to set the bottom margin, both arguments must be given.
+
+ Conversely, when only one capability in the pair is set:
+
+ <STRONG>o</STRONG> If only one of <STRONG>smglp</STRONG> and <STRONG>smgrp</STRONG> is set, then it is used with two
+ arguments, the column number of the left and right margins, in that
+ order.
+
+ <STRONG>o</STRONG> Likewise, if only one of <STRONG>smgtp</STRONG> and <STRONG>smgbp</STRONG> is set, then it is used
+ with two arguments that give the top and bottom margins, in that
+ order, counting from the top of the page.
+
+ When designing a terminfo entry for a printer that requires setting
+ both left and right or top and bottom margins simultaneously, only
+ one capability in the pairs <STRONG>smglp</STRONG> and <STRONG>smgrp</STRONG> or <STRONG>smgtp</STRONG> and <STRONG>smgbp</STRONG>
+ should be defined, leaving the other unset.
+
+ Except for very old terminal descriptions, e.g., those developed for
+ SVr4, the scheme just described should be considered obsolete. An
+ improved set of capabilities was added late in the SVr4 releases (<STRONG>smglr</STRONG>
+ and <STRONG>smgtb</STRONG>), which explicitly use two parameters for setting the
+ left/right or top/bottom margins.
+
+ When setting margins, the line- and column-values are zero-based.
+
+ The <STRONG>mgc</STRONG> string capability should be defined. Applications such as
+ <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG> rely upon this to reset all margins.
+
+
</PRE><H3><a name="h3-Area-Clears">Area Clears</a></H3><PRE>
- If the terminal can clear from the current position to the end of the
- line, leaving the cursor where it is, this should be given as <STRONG>el</STRONG>. If
- the terminal can clear from the beginning of the line to the current
- position inclusive, leaving the cursor where it is, this should be
- given as <STRONG>el1</STRONG>. If the terminal can clear from the current position to
- the end of the display, then this should be given as <STRONG>ed</STRONG>. <STRONG>Ed</STRONG> is only
+ If the terminal can clear from the current position to the end of the
+ line, leaving the cursor where it is, this should be given as <STRONG>el</STRONG>. If
+ the terminal can clear from the beginning of the line to the current
+ position inclusive, leaving the cursor where it is, this should be
+ given as <STRONG>el1</STRONG>. If the terminal can clear from the current position to
+ the end of the display, then this should be given as <STRONG>ed</STRONG>. <STRONG>Ed</STRONG> is only
defined from the first column of a line. (Thus, it can be simulated by
- a request to delete a large number of lines, if a true <STRONG>ed</STRONG> is not
+ a request to delete a large number of lines, if a true <STRONG>ed</STRONG> is not
available.)
-</PRE><H3><a name="h3-Insert_delete-line-and-vertical-motions">Insert/delete line and vertical motions</a></H3><PRE>
- If the terminal can open a new blank line before the line where the
- cursor is, this should be given as <STRONG>il1</STRONG>; this is done only from the
- first position of a line. The cursor must then appear on the newly
- blank line. If the terminal can delete the line which the cursor is
- on, then this should be given as <STRONG>dl1</STRONG>; this is done only from the first
+</PRE><H3><a name="h3-Insert_Delete-Line-and-Vertical-Motions">Insert/Delete Line and Vertical Motions</a></H3><PRE>
+ If the terminal can open a new blank line before the line where the
+ cursor is, this should be given as <STRONG>il1</STRONG>; this is done only from the
+ first position of a line. The cursor must then appear on the newly
+ blank line. If the terminal can delete the line which the cursor is
+ on, then this should be given as <STRONG>dl1</STRONG>; this is done only from the first
position on the line to be deleted. Versions of <STRONG>il1</STRONG> and <STRONG>dl1</STRONG> which take
a single parameter and insert or delete that many lines can be given as
<STRONG>il</STRONG> and <STRONG>dl</STRONG>.
- If the terminal has a settable scrolling region (like the vt100) the
- command to set this can be described with the <STRONG>csr</STRONG> capability, which
+ If the terminal has a settable scrolling region (like the vt100) the
+ command to set this can be described with the <STRONG>csr</STRONG> capability, which
takes two parameters: the top and bottom lines of the scrolling region.
The cursor position is, alas, undefined after using this command.
- It is possible to get the effect of insert or delete line using <STRONG>csr</STRONG> on
- a properly chosen region; the <STRONG>sc</STRONG> and <STRONG>rc</STRONG> (save and restore cursor)
+ It is possible to get the effect of insert or delete line using <STRONG>csr</STRONG> on
+ a properly chosen region; the <STRONG>sc</STRONG> and <STRONG>rc</STRONG> (save and restore cursor)
commands may be useful for ensuring that your synthesized insert/delete
- string does not move the cursor. (Note that the <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> library
- does this synthesis automatically, so you need not compose
+ string does not move the cursor. (Note that the <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> library
+ does this synthesis automatically, so you need not compose
insert/delete strings for an entry with <STRONG>csr</STRONG>).
- Yet another way to construct insert and delete might be to use a
- combination of index with the memory-lock feature found on some
- terminals (like the HP-700/90 series, which however also has
+ Yet another way to construct insert and delete might be to use a
+ combination of index with the memory-lock feature found on some
+ terminals (like the HP-700/90 series, which however also has
insert/delete).
- Inserting lines at the top or bottom of the screen can also be done
- using <STRONG>ri</STRONG> or <STRONG>ind</STRONG> on many terminals without a true insert/delete line,
+ Inserting lines at the top or bottom of the screen can also be done
+ using <STRONG>ri</STRONG> or <STRONG>ind</STRONG> on many terminals without a true insert/delete line,
and is often faster even on terminals with those features.
- The boolean <STRONG>non_dest_scroll_region</STRONG> should be set if each scrolling
- window is effectively a view port on a screen-sized canvas. To test
- for this capability, create a scrolling region in the middle of the
- screen, write something to the bottom line, move the cursor to the top
- of the region, and do <STRONG>ri</STRONG> followed by <STRONG>dl1</STRONG> or <STRONG>ind</STRONG>. If the data scrolled
- off the bottom of the region by the <STRONG>ri</STRONG> re-appears, then scrolling is
- non-destructive. System V and XSI Curses expect that <STRONG>ind</STRONG>, <STRONG>ri</STRONG>, <STRONG>indn</STRONG>,
+ The Boolean <STRONG>non_dest_scroll_region</STRONG> should be set if each scrolling
+ window is effectively a view port on a screen-sized canvas. To test
+ for this capability, create a scrolling region in the middle of the
+ screen, write something to the bottom line, move the cursor to the top
+ of the region, and do <STRONG>ri</STRONG> followed by <STRONG>dl1</STRONG> or <STRONG>ind</STRONG>. If the data scrolled
+ off the bottom of the region by the <STRONG>ri</STRONG> re-appears, then scrolling is
+ non-destructive. System V and X/Open Curses expect that <STRONG>ind</STRONG>, <STRONG>ri</STRONG>, <STRONG>indn</STRONG>,
and <STRONG>rin</STRONG> will simulate destructive scrolling; their documentation
- cautions you not to define <STRONG>csr</STRONG> unless this is true. This <STRONG>curses</STRONG>
- implementation is more liberal and will do explicit erases after
+ cautions you not to define <STRONG>csr</STRONG> unless this is true. This <STRONG>curses</STRONG>
+ implementation is more liberal and will do explicit erases after
scrolling if <STRONG>ndsrc</STRONG> is defined.
- If the terminal has the ability to define a window as part of memory,
- which all commands affect, it should be given as the parameterized
- string <STRONG>wind</STRONG>. The four parameters are the starting and ending lines in
+ If the terminal has the ability to define a window as part of memory,
+ which all commands affect, it should be given as the parameterized
+ string <STRONG>wind</STRONG>. The four parameters are the starting and ending lines in
memory and the starting and ending columns in memory, in that order.
If the terminal can retain display memory above, then the <STRONG>da</STRONG> capability
- should be given; if display memory can be retained below, then <STRONG>db</STRONG>
- should be given. These indicate that deleting a line or scrolling may
- bring non-blank lines up from below or that scrolling back with <STRONG>ri</STRONG> may
+ should be given; if display memory can be retained below, then <STRONG>db</STRONG>
+ should be given. These indicate that deleting a line or scrolling may
+ bring non-blank lines up from below or that scrolling back with <STRONG>ri</STRONG> may
bring down non-blank lines.
</PRE><H3><a name="h3-Insert_Delete-Character">Insert/Delete Character</a></H3><PRE>
- There are two basic kinds of intelligent terminals with respect to
- insert/delete character which can be described using <EM>terminfo.</EM> The
- most common insert/delete character operations affect only the
- characters on the current line and shift characters off the end of the
- line rigidly. Other terminals, such as the Concept 100 and the Perkin
- Elmer Owl, make a distinction between typed and untyped blanks on the
- screen, shifting upon an insert or delete only to an untyped blank on
- the screen which is either eliminated, or expanded to two untyped
+ There are two basic kinds of intelligent terminals with respect to
+ insert/delete character which can be described using <EM>terminfo</EM>. The
+ most common insert/delete character operations affect only the
+ characters on the current line and shift characters off the end of the
+ line rigidly. Other terminals, such as the Concept 100 and the Perkin
+ Elmer Owl, make a distinction between typed and untyped blanks on the
+ screen, shifting upon an insert or delete only to an untyped blank on
+ the screen which is either eliminated, or expanded to two untyped
blanks.
- You can determine the kind of terminal you have by clearing the screen
- and then typing text separated by cursor motions. Type "abc def"
- using local cursor motions (not spaces) between the "abc" and the
- "def". Then position the cursor before the "abc" and put the terminal
- in insert mode. If typing characters causes the rest of the line to
- shift rigidly and characters to fall off the end, then your terminal
- does not distinguish between blanks and untyped positions. If the
- "abc" shifts over to the "def" which then move together around the end
- of the current line and onto the next as you insert, you have the
- second type of terminal, and should give the capability <STRONG>in</STRONG>, which
+ You can determine the kind of terminal you have by clearing the screen
+ and then typing text separated by cursor motions. Type "abc def"
+ using local cursor motions (not spaces) between the "abc" and the
+ "def". Then position the cursor before the "abc" and put the terminal
+ in insert mode. If typing characters causes the rest of the line to
+ shift rigidly and characters to fall off the end, then your terminal
+ does not distinguish between blanks and untyped positions. If the
+ "abc" shifts over to the "def" which then move together around the end
+ of the current line and onto the next as you insert, you have the
+ second type of terminal, and should give the capability <STRONG>in</STRONG>, which
stands for "insert null".
- While these are two logically separate attributes (one line versus
- multi-line insert mode, and special treatment of untyped spaces) we
- have seen no terminals whose insert mode cannot be described with the
+ While these are two logically separate attributes (one line versus
+ multi-line insert mode, and special treatment of untyped spaces) we
+ have seen no terminals whose insert mode cannot be described with the
single attribute.
- Terminfo can describe both terminals which have an insert mode, and
- terminals which send a simple sequence to open a blank position on the
+ Terminfo can describe both terminals which have an insert mode, and
+ terminals which send a simple sequence to open a blank position on the
current line. Give as <STRONG>smir</STRONG> the sequence to get into insert mode. Give
- as <STRONG>rmir</STRONG> the sequence to leave insert mode. Now give as <STRONG>ich1</STRONG> any
- sequence needed to be sent just before sending the character to be
- inserted. Most terminals with a true insert mode will not give <STRONG>ich1</STRONG>;
- terminals which send a sequence to open a screen position should give
+ as <STRONG>rmir</STRONG> the sequence to leave insert mode. Now give as <STRONG>ich1</STRONG> any
+ sequence needed to be sent just before sending the character to be
+ inserted. Most terminals with a true insert mode will not give <STRONG>ich1</STRONG>;
+ terminals which send a sequence to open a screen position should give
it here.
- If your terminal has both, insert mode is usually preferable to <STRONG>ich1</STRONG>.
- Technically, you should not give both unless the terminal actually
- requires both to be used in combination. Accordingly, some non-curses
- applications get confused if both are present; the symptom is doubled
- characters in an update using insert. This requirement is now rare;
- most <STRONG>ich</STRONG> sequences do not require previous smir, and most smir insert
- modes do not require <STRONG>ich1</STRONG> before each character. Therefore, the new
- <STRONG>curses</STRONG> actually assumes this is the case and uses either <STRONG>rmir</STRONG>/<STRONG>smir</STRONG> or
- <STRONG>ich</STRONG>/<STRONG>ich1</STRONG> as appropriate (but not both). If you have to write an entry
- to be used under new curses for a terminal old enough to need both,
+ If your terminal has both, insert mode is usually preferable to <STRONG>ich1</STRONG>.
+ Technically, you should not give both unless the terminal actually
+ requires both to be used in combination. Accordingly, some non-curses
+ applications get confused if both are present; the symptom is doubled
+ characters in an update using insert. This requirement is now rare;
+ most <STRONG>ich</STRONG> sequences do not require previous smir, and most smir insert
+ modes do not require <STRONG>ich1</STRONG> before each character. Therefore, the new
+ <STRONG>curses</STRONG> actually assumes this is the case and uses either <STRONG>rmir</STRONG>/<STRONG>smir</STRONG> or
+ <STRONG>ich</STRONG>/<STRONG>ich1</STRONG> as appropriate (but not both). If you have to write an entry
+ to be used under new curses for a terminal old enough to need both,
include the <STRONG>rmir</STRONG>/<STRONG>smir</STRONG> sequences in <STRONG>ich1</STRONG>.
If post insert padding is needed, give this as a number of milliseconds
- in <STRONG>ip</STRONG> (a string option). Any other sequence which may need to be sent
+ in <STRONG>ip</STRONG> (a string option). Any other sequence which may need to be sent
after an insert of a single character may also be given in <STRONG>ip</STRONG>. If your
- terminal needs both to be placed into an "insert mode" and a special
- code to precede each inserted character, then both <STRONG>smir</STRONG>/<STRONG>rmir</STRONG> and <STRONG>ich1</STRONG>
- can be given, and both will be used. The <STRONG>ich</STRONG> capability, with one
+ terminal needs both to be placed into an "insert mode" and a special
+ code to precede each inserted character, then both <STRONG>smir</STRONG>/<STRONG>rmir</STRONG> and <STRONG>ich1</STRONG>
+ can be given, and both will be used. The <STRONG>ich</STRONG> capability, with one
parameter, <EM>n</EM>, will repeat the effects of <STRONG>ich1</STRONG> <EM>n</EM> times.
- If padding is necessary between characters typed while not in insert
+ If padding is necessary between characters typed while not in insert
mode, give this as a number of milliseconds padding in <STRONG>rmp</STRONG>.
- It is occasionally necessary to move around while in insert mode to
- delete characters on the same line (e.g., if there is a tab after the
- insertion position). If your terminal allows motion while in insert
- mode you can give the capability <STRONG>mir</STRONG> to speed up inserting in this
- case. Omitting <STRONG>mir</STRONG> will affect only speed. Some terminals (notably
- Datamedia's) must not have <STRONG>mir</STRONG> because of the way their insert mode
+ It is occasionally necessary to move around while in insert mode to
+ delete characters on the same line (e.g., if there is a tab after the
+ insertion position). If your terminal allows motion while in insert
+ mode you can give the capability <STRONG>mir</STRONG> to speed up inserting in this
+ case. Omitting <STRONG>mir</STRONG> will affect only speed. Some terminals (notably
+ Datamedia's) must not have <STRONG>mir</STRONG> because of the way their insert mode
works.
- Finally, you can specify <STRONG>dch1</STRONG> to delete a single character, <STRONG>dch</STRONG> with
- one parameter, <EM>n</EM>, to delete <EM>n</EM> <EM>characters,</EM> and delete mode by giving
- <STRONG>smdc</STRONG> and <STRONG>rmdc</STRONG> to enter and exit delete mode (any mode the terminal
- needs to be placed in for <STRONG>dch1</STRONG> to work).
+ Finally, you can specify <STRONG>dch1</STRONG> to delete a single character, <STRONG>dch</STRONG> with
+ one parameter, <EM>n</EM>, to delete <EM>n</EM>characters, and delete mode by giving <STRONG>smdc</STRONG>
+ and <STRONG>rmdc</STRONG> to enter and exit delete mode (any mode the terminal needs to
+ be placed in for <STRONG>dch1</STRONG> to work).
- A command to erase <EM>n</EM> characters (equivalent to outputting <EM>n</EM> blanks
+ A command to erase <EM>n</EM> characters (equivalent to outputting <EM>n</EM> blanks
without moving the cursor) can be given as <STRONG>ech</STRONG> with one parameter.
-</PRE><H3><a name="h3-Highlighting_-Underlining_-and-Visible-Bells">Highlighting, Underlining, and Visible Bells</a></H3><PRE>
+</PRE><H3><a name="h3-Highlighting_Underlining_and-Visible-Bells">Highlighting, Underlining, and Visible Bells</a></H3><PRE>
If your terminal has one or more kinds of display attributes, these can
- be represented in a number of different ways. You should choose one
- display form as <EM>standout</EM> <EM>mode</EM>, representing a good, high contrast,
- easy-on-the-eyes, format for highlighting error messages and other
- attention getters. (If you have a choice, reverse video plus half-
- bright is good, or reverse video alone.) The sequences to enter and
- exit standout mode are given as <STRONG>smso</STRONG> and <STRONG>rmso</STRONG>, respectively. If the
- code to change into or out of standout mode leaves one or even two
- blank spaces on the screen, as the TVI 912 and Teleray 1061 do, then
+ be represented in a number of different ways. You should choose one
+ display form as <EM>standout</EM> <EM>mode</EM>, representing a good, high contrast,
+ easy-on-the-eyes, format for highlighting error messages and other
+ attention getters. (If you have a choice, reverse video plus half-
+ bright is good, or reverse video alone.) The sequences to enter and
+ exit standout mode are given as <STRONG>smso</STRONG> and <STRONG>rmso</STRONG>, respectively. If the
+ code to change into or out of standout mode leaves one or even two
+ blank spaces on the screen, as the TVI 912 and Teleray 1061 do, then
<STRONG>xmc</STRONG> should be given to tell how many spaces are left.
Codes to begin underlining and end underlining can be given as <STRONG>smul</STRONG> and
<STRONG>rmul</STRONG> respectively. If the terminal has a code to underline the current
- character and move the cursor one space to the right, such as the
+ character and move the cursor one space to the right, such as the
Microterm Mime, this can be given as <STRONG>uc</STRONG>.
- Other capabilities to enter various highlighting modes include <STRONG>blink</STRONG>
- (blinking) <STRONG>bold</STRONG> (bold or extra bright) <STRONG>dim</STRONG> (dim or half-bright) <STRONG>invis</STRONG>
- (blanking or invisible text) <STRONG>prot</STRONG> (protected) <STRONG>rev</STRONG> (reverse video) <STRONG>sgr0</STRONG>
- (turn off <EM>all</EM> attribute modes) <STRONG>smacs</STRONG> (enter alternate character set
+ Other capabilities to enter various highlighting modes include <STRONG>blink</STRONG>
+ (blinking) <STRONG>bold</STRONG> (bold or extra bright) <STRONG>dim</STRONG> (dim or half-bright) <STRONG>invis</STRONG>
+ (blanking or invisible text) <STRONG>prot</STRONG> (protected) <STRONG>rev</STRONG> (reverse video) <STRONG>sgr0</STRONG>
+ (turn off <EM>all</EM> attribute modes) <STRONG>smacs</STRONG> (enter alternate character set
mode) and <STRONG>rmacs</STRONG> (exit alternate character set mode). Turning on any of
these modes singly may or may not turn off other modes.
- If there is a sequence to set arbitrary combinations of modes, this
- should be given as <STRONG>sgr</STRONG> (set attributes), taking 9 parameters. Each
- parameter is either 0 or nonzero, as the corresponding attribute is on
- or off. The 9 parameters are, in order: standout, underline, reverse,
- blink, dim, bold, blank, protect, alternate character set. Not all
- modes need be supported by <STRONG>sgr</STRONG>, only those for which corresponding
- separate attribute commands exist.
+ If there is a sequence to set arbitrary combinations of modes, this
+ should be given as <STRONG>sgr</STRONG> (set attributes), taking 9 parameters. Each
+ parameter is either zero (0) or nonzero, as the corresponding attribute
+ is on or off. The 9 parameters are, in order: standout, underline,
+ reverse, blink, dim, bold, blank, protect, alternate character set.
+ Not all modes need be supported by <STRONG>sgr</STRONG>, only those for which
+ corresponding separate attribute commands exist.
For example, the DEC vt220 supports most of the modes:
- <STRONG>tparm</STRONG> <STRONG>parameter</STRONG> <STRONG>attribute</STRONG> <STRONG>escape</STRONG> <STRONG>sequence</STRONG>
-
- none none \E[0m
- p1 standout \E[0;1;7m
- p2 underline \E[0;4m
- p3 reverse \E[0;7m
- p4 blink \E[0;5m
- p5 dim not available
- p6 bold \E[0;1m
- p7 invis \E[0;8m
- p8 protect not used
- p9 altcharset ^O (off) ^N (on)
-
- We begin each escape sequence by turning off any existing modes, since
- there is no quick way to determine whether they are active. Standout
- is set up to be the combination of reverse and bold. The vt220
- terminal has a protect mode, though it is not commonly used in sgr
- because it protects characters on the screen from the host's erasures.
- The altcharset mode also is different in that it is either ^O or ^N,
- depending on whether it is off or on. If all modes are turned on, the
+ <STRONG>tparm</STRONG> <STRONG>Parameter</STRONG> <STRONG>Attribute</STRONG> <STRONG>Escape</STRONG> <STRONG>Sequence</STRONG>
+ ------------------------------------------------
+ none none \E[0m
+ p1 standout \E[0;1;7m
+ p2 underline \E[0;4m
+ p3 reverse \E[0;7m
+ p4 blink \E[0;5m
+ p5 dim not available
+ p6 bold \E[0;1m
+ p7 invis \E[0;8m
+ p8 protect not used
+ p9 altcharset ^O (off) ^N (on)
+
+ We begin each escape sequence by turning off any existing modes, since
+ there is no quick way to determine whether they are active. Standout
+ is set up to be the combination of reverse and bold. The vt220
+ terminal has a protect mode, though it is not commonly used in sgr
+ because it protects characters on the screen from the host's erasures.
+ The altcharset mode also is different in that it is either ^O or ^N,
+ depending on whether it is off or on. If all modes are turned on, the
resulting sequence is \E[0;1;4;5;7;8m^N.
- Some sequences are common to different modes. For example, ;7 is
- output when either p1 or p3 is true, that is, if either standout or
+ Some sequences are common to different modes. For example, ;7 is
+ output when either p1 or p3 is true, that is, if either standout or
reverse modes are turned on.
Writing out the above sequences, along with their dependencies yields
- <STRONG>sequence</STRONG> <STRONG>when</STRONG> <STRONG>to</STRONG> <STRONG>output</STRONG> <STRONG>terminfo</STRONG> <STRONG>translation</STRONG>
-
- \E[0 always \E[0
- ;1 if p1 or p6 %?%p1%p6%|%t;1%;
- ;4 if p2 %?%p2%|%t;4%;
- ;5 if p4 %?%p4%|%t;5%;
- ;7 if p1 or p3 %?%p1%p3%|%t;7%;
- ;8 if p7 %?%p7%|%t;8%;
- m always m
- ^N or ^O if p9 ^N, else ^O %?%p9%t^N%e^O%;
+ <STRONG>Sequence</STRONG> <STRONG>When</STRONG> <STRONG>to</STRONG> <STRONG>Output</STRONG> <STRONG>terminfo</STRONG> <STRONG>Translation</STRONG>
+ ----------------------------------------------------
+ \E[0 always \E[0
+ ;1 if p1 or p6 %?%p1%p6%|%t;1%;
+ ;4 if p2 %?%p2%|%t;4%;
+ ;5 if p4 %?%p4%|%t;5%;
+ ;7 if p1 or p3 %?%p1%p3%|%t;7%;
+ ;8 if p7 %?%p7%|%t;8%;
+ m always m
+ ^N or ^O if p9 ^N, else ^O %?%p9%t^N%e^O%;
Putting this all together into the sgr sequence gives:
sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p4%t;5%;
%?%p1%p3%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- Remember that if you specify sgr, you must also specify sgr0. Also,
- some implementations rely on sgr being given if sgr0 is, Not all
+ Remember that if you specify sgr, you must also specify sgr0. Also,
+ some implementations rely on sgr being given if sgr0 is, Not all
terminfo entries necessarily have an sgr string, however. Many
- terminfo entries are derived from termcap entries which have no sgr
+ terminfo entries are derived from termcap entries which have no sgr
string. The only drawback to adding an sgr string is that termcap also
assumes that sgr0 does not exit alternate character set mode.
- Terminals with the "magic cookie" glitch (<STRONG>xmc</STRONG>) deposit special
- "cookies" when they receive mode-setting sequences, which affect the
- display algorithm rather than having extra bits for each character.
- Some terminals, such as the HP 2621, automatically leave standout mode
- when they move to a new line or the cursor is addressed. Programs
- using standout mode should exit standout mode before moving the cursor
- or sending a newline, unless the <STRONG>msgr</STRONG> capability, asserting that it is
+ Terminals with the "magic cookie" glitch (<STRONG>xmc</STRONG>) deposit special
+ "cookies" when they receive mode-setting sequences, which affect the
+ display algorithm rather than having extra bits for each character.
+ Some terminals, such as the HP 2621, automatically leave standout mode
+ when they move to a new line or the cursor is addressed. Programs
+ using standout mode should exit standout mode before moving the cursor
+ or sending a newline, unless the <STRONG>msgr</STRONG> capability, asserting that it is
safe to move in standout mode, is present.
- If the terminal has a way of flashing the screen to indicate an error
- quietly (a bell replacement) then this can be given as <STRONG>flash</STRONG>; it must
+ If the terminal has a way of flashing the screen to indicate an error
+ quietly (a bell replacement) then this can be given as <STRONG>flash</STRONG>; it must
not move the cursor.
- If the cursor needs to be made more visible than normal when it is not
+ If the cursor needs to be made more visible than normal when it is not
on the bottom line (to make, for example, a non-blinking underline into
- an easier to find block or blinking underline) give this sequence as
+ an easier to find block or blinking underline) give this sequence as
<STRONG>cvvis</STRONG>. If there is a way to make the cursor completely invisible, give
- that as <STRONG>civis</STRONG>. The capability <STRONG>cnorm</STRONG> should be given which undoes the
+ that as <STRONG>civis</STRONG>. The capability <STRONG>cnorm</STRONG> should be given which undoes the
effects of both of these modes.
- If your terminal correctly generates underlined characters (with no
- special codes needed) even though it does not overstrike, then you
- should give the capability <STRONG>ul</STRONG>. If a character overstriking another
- leaves both characters on the screen, specify the capability <STRONG>os</STRONG>. If
+ If your terminal correctly generates underlined characters (with no
+ special codes needed) even though it does not overstrike, then you
+ should give the capability <STRONG>ul</STRONG>. If a character overstriking another
+ leaves both characters on the screen, specify the capability <STRONG>os</STRONG>. If
overstrikes are erasable with a blank, then this should be indicated by
giving <STRONG>eo</STRONG>.
</PRE><H3><a name="h3-Keypad-and-Function-Keys">Keypad and Function Keys</a></H3><PRE>
- If the terminal has a keypad that transmits codes when the keys are
- pressed, this information can be given. Note that it is not possible
+ If the terminal has a keypad that transmits codes when the keys are
+ pressed, this information can be given. Note that it is not possible
to handle terminals where the keypad only works in local (this applies,
- for example, to the unshifted HP 2621 keys). If the keypad can be set
- to transmit or not transmit, give these codes as <STRONG>smkx</STRONG> and <STRONG>rmkx</STRONG>.
+ for example, to the unshifted HP 2621 keys). If the keypad can be set
+ to transmit or not transmit, give these codes as <STRONG>smkx</STRONG> and <STRONG>rmkx</STRONG>.
Otherwise the keypad is assumed to always transmit.
- The codes sent by the left arrow, right arrow, up arrow, down arrow,
- and home keys can be given as <STRONG>kcub1,</STRONG> <STRONG>kcuf1,</STRONG> <STRONG>kcuu1,</STRONG> <STRONG>kcud1,</STRONG> and <STRONG>khome</STRONG>
+ The codes sent by the left arrow, right arrow, up arrow, down arrow,
+ and home keys can be given as <STRONG>kcub1,</STRONG> <STRONG>kcuf1,</STRONG> <STRONG>kcuu1,</STRONG> <STRONG>kcud1,</STRONG> and <STRONG>khome</STRONG>
respectively. If there are function keys such as f0, f1, ..., f10, the
- codes they send can be given as <STRONG>kf0,</STRONG> <STRONG>kf1,</STRONG> <STRONG>...,</STRONG> <STRONG>kf10</STRONG>. If these keys
- have labels other than the default f0 through f10, the labels can be
+ codes they send can be given as <STRONG>kf0,</STRONG> <STRONG>kf1,</STRONG> <STRONG>...,</STRONG> <STRONG>kf10</STRONG>. If these keys
+ have labels other than the default f0 through f10, the labels can be
given as <STRONG>lf0,</STRONG> <STRONG>lf1,</STRONG> <STRONG>...,</STRONG> <STRONG>lf10</STRONG>.
The codes transmitted by certain other special keys can be given:
@@ -1888,64 +1844,64 @@
<STRONG>o</STRONG> <STRONG>khts</STRONG> (set a tab stop in this column).
- In addition, if the keypad has a 3 by 3 array of keys including the
- four arrow keys, the other five keys can be given as <STRONG>ka1</STRONG>, <STRONG>ka3</STRONG>, <STRONG>kb2</STRONG>,
- <STRONG>kc1</STRONG>, and <STRONG>kc3</STRONG>. These keys are useful when the effects of a 3 by 3
+ In addition, if the keypad has a 3 by 3 array of keys including the
+ four arrow keys, the other five keys can be given as <STRONG>ka1</STRONG>, <STRONG>ka3</STRONG>, <STRONG>kb2</STRONG>,
+ <STRONG>kc1</STRONG>, and <STRONG>kc3</STRONG>. These keys are useful when the effects of a 3 by 3
directional pad are needed.
Strings to program function keys can be given as <STRONG>pfkey</STRONG>, <STRONG>pfloc</STRONG>, and <STRONG>pfx</STRONG>.
- A string to program screen labels should be specified as <STRONG>pln</STRONG>. Each of
- these strings takes two parameters: the function key number to program
+ A string to program screen labels should be specified as <STRONG>pln</STRONG>. Each of
+ these strings takes two parameters: the function key number to program
(from 0 to 10) and the string to program it with. Function key numbers
- out of this range may program undefined keys in a terminal dependent
- manner. The difference between the capabilities is that <STRONG>pfkey</STRONG> causes
- pressing the given key to be the same as the user typing the given
- string; <STRONG>pfloc</STRONG> causes the string to be executed by the terminal in
+ out of this range may program undefined keys in a terminal dependent
+ manner. The difference between the capabilities is that <STRONG>pfkey</STRONG> causes
+ pressing the given key to be the same as the user typing the given
+ string; <STRONG>pfloc</STRONG> causes the string to be executed by the terminal in
local; and <STRONG>pfx</STRONG> causes the string to be transmitted to the computer.
- The capabilities <STRONG>nlab</STRONG>, <STRONG>lw</STRONG> and <STRONG>lh</STRONG> define the number of programmable
- screen labels and their width and height. If there are commands to
- turn the labels on and off, give them in <STRONG>smln</STRONG> and <STRONG>rmln</STRONG>. <STRONG>smln</STRONG> is
- normally output after one or more pln sequences to make sure that the
+ The capabilities <STRONG>nlab</STRONG>, <STRONG>lw</STRONG> and <STRONG>lh</STRONG> define the number of programmable
+ screen labels and their width and height. If there are commands to
+ turn the labels on and off, give them in <STRONG>smln</STRONG> and <STRONG>rmln</STRONG>. <STRONG>smln</STRONG> is
+ normally output after one or more pln sequences to make sure that the
change becomes visible.
</PRE><H3><a name="h3-Tabs-and-Initialization">Tabs and Initialization</a></H3><PRE>
A few capabilities are used only for tabs:
- <STRONG>o</STRONG> If the terminal has hardware tabs, the command to advance to the
+ <STRONG>o</STRONG> If the terminal has hardware tabs, the command to advance to the
next tab stop can be given as <STRONG>ht</STRONG> (usually control/I).
<STRONG>o</STRONG> A "back-tab" command which moves leftward to the preceding tab stop
can be given as <STRONG>cbt</STRONG>.
- By convention, if the teletype modes indicate that tabs are being
- expanded by the computer rather than being sent to the terminal,
- programs should not use <STRONG>ht</STRONG> or <STRONG>cbt</STRONG> even if they are present, since
+ By convention, if the teletype modes indicate that tabs are being
+ expanded by the computer rather than being sent to the terminal,
+ programs should not use <STRONG>ht</STRONG> or <STRONG>cbt</STRONG> even if they are present, since
the user may not have the tab stops properly set.
- <STRONG>o</STRONG> If the terminal has hardware tabs which are initially set every <EM>n</EM>
+ <STRONG>o</STRONG> If the terminal has hardware tabs which are initially set every <EM>n</EM>
spaces when the terminal is powered up, the numeric parameter <STRONG>it</STRONG> is
given, showing the number of spaces the tabs are set to.
The <STRONG>it</STRONG> capability is normally used by the <STRONG>tset</STRONG> command to determine
- whether to set the mode for hardware tab expansion, and whether to
+ whether to set the mode for hardware tab expansion, and whether to
set the tab stops. If the terminal has tab stops that can be saved
- in non-volatile memory, the terminfo description can assume that
+ in non-volatile memory, the terminfo description can assume that
they are properly set.
Other capabilities include
<STRONG>o</STRONG> <STRONG>is1</STRONG>, <STRONG>is2</STRONG>, and <STRONG>is3</STRONG>, initialization strings for the terminal,
- <STRONG>o</STRONG> <STRONG>iprog</STRONG>, the path name of a program to be run to initialize the
+ <STRONG>o</STRONG> <STRONG>iprog</STRONG>, the path name of a program to be run to initialize the
terminal,
<STRONG>o</STRONG> and <STRONG>if</STRONG>, the name of a file containing long initialization strings.
- These strings are expected to set the terminal into modes consistent
- with the rest of the terminfo description. They are normally sent to
- the terminal, by the <EM>init</EM> option of the <STRONG>tput</STRONG> program, each time the
+ These strings are expected to set the terminal into modes consistent
+ with the rest of the terminfo description. They are normally sent to
+ the terminal, by the <EM>init</EM> option of the <STRONG>tput</STRONG> program, each time the
user logs in. They will be printed in the following order:
run the program
@@ -1969,34 +1925,34 @@
and finally output
<STRONG>is3</STRONG>.
- Most initialization is done with <STRONG>is2</STRONG>. Special terminal modes can be
- set up without duplicating strings by putting the common sequences in
+ Most initialization is done with <STRONG>is2</STRONG>. Special terminal modes can be
+ set up without duplicating strings by putting the common sequences in
<STRONG>is2</STRONG> and special cases in <STRONG>is1</STRONG> and <STRONG>is3</STRONG>.
- A set of sequences that does a harder reset from a totally unknown
+ A set of sequences that does a harder reset from a totally unknown
state can be given as <STRONG>rs1</STRONG>, <STRONG>rs2</STRONG>, <STRONG>rf</STRONG> and <STRONG>rs3</STRONG>, analogous to <STRONG>is1</STRONG> <STRONG>,</STRONG> <STRONG>is2</STRONG> <STRONG>,</STRONG> <STRONG>if</STRONG>
- and <STRONG>is3</STRONG> respectively. These strings are output by <EM>reset</EM> option of
- <STRONG>tput</STRONG>, or by the <STRONG>reset</STRONG> program (an alias of <STRONG>tset</STRONG>), which is used when
+ and <STRONG>is3</STRONG> respectively. These strings are output by <EM>reset</EM> option of
+ <STRONG>tput</STRONG>, or by the <STRONG>reset</STRONG> program (an alias of <STRONG>tset</STRONG>), which is used when
the terminal gets into a wedged state. Commands are normally placed in
<STRONG>rs1</STRONG>, <STRONG>rs2</STRONG> <STRONG>rs3</STRONG> and <STRONG>rf</STRONG> only if they produce annoying effects on the screen
and are not necessary when logging in. For example, the command to set
- the vt100 into 80-column mode would normally be part of <STRONG>is2</STRONG>, but it
- causes an annoying glitch of the screen and is not normally needed
+ the vt100 into 80-column mode would normally be part of <STRONG>is2</STRONG>, but it
+ causes an annoying glitch of the screen and is not normally needed
since the terminal is usually already in 80-column mode.
- The <STRONG>reset</STRONG> program writes strings including <STRONG>iprog</STRONG>, etc., in the same
- order as the <EM>init</EM> program, using <STRONG>rs1</STRONG>, etc., instead of <STRONG>is1</STRONG>, etc. If
- any of <STRONG>rs1</STRONG>, <STRONG>rs2</STRONG>, <STRONG>rs3</STRONG>, or <STRONG>rf</STRONG> reset capability strings are missing, the
- <STRONG>reset</STRONG> program falls back upon the corresponding initialization
+ The <STRONG>reset</STRONG> program writes strings including <STRONG>iprog</STRONG>, etc., in the same
+ order as the <EM>init</EM> program, using <STRONG>rs1</STRONG>, etc., instead of <STRONG>is1</STRONG>, etc. If
+ any of <STRONG>rs1</STRONG>, <STRONG>rs2</STRONG>, <STRONG>rs3</STRONG>, or <STRONG>rf</STRONG> reset capability strings are missing, the
+ <STRONG>reset</STRONG> program falls back upon the corresponding initialization
capability string.
- If there are commands to set and clear tab stops, they can be given as
+ If there are commands to set and clear tab stops, they can be given as
<STRONG>tbc</STRONG> (clear all tab stops) and <STRONG>hts</STRONG> (set a tab stop in the current column
- of every row). If a more complex sequence is needed to set the tabs
+ of every row). If a more complex sequence is needed to set the tabs
than can be described by this, the sequence can be placed in <STRONG>is2</STRONG> or <STRONG>if</STRONG>.
- The <STRONG>tput</STRONG> <STRONG>reset</STRONG> command uses the same capability strings as the <STRONG>reset</STRONG>
- command, although the two programs (<STRONG>tput</STRONG> and <STRONG>reset</STRONG>) provide different
+ The <STRONG>tput</STRONG> <STRONG>reset</STRONG> command uses the same capability strings as the <STRONG>reset</STRONG>
+ command, although the two programs (<STRONG>tput</STRONG> and <STRONG>reset</STRONG>) provide different
command-line options.
In practice, these terminfo capabilities are not often used in
@@ -2005,393 +1961,402 @@
<STRONG>o</STRONG> Almost all hardware terminals (at least those which supported tabs)
initialized those to every <EM>eight</EM> columns:
- The only exception was the AT&amp;T 2300 series, which set tabs to
+ The only exception was the AT&amp;T 2300 series, which set tabs to
every <EM>five</EM> columns.
- <STRONG>o</STRONG> In particular, developers of the hardware terminals which are
- commonly used as models for modern terminal emulators provided
+ <STRONG>o</STRONG> In particular, developers of the hardware terminals which are
+ commonly used as models for modern terminal emulators provided
documentation demonstrating that <EM>eight</EM> columns were the standard.
<STRONG>o</STRONG> Because of this, the terminal initialization programs <STRONG>tput</STRONG> and <STRONG>tset</STRONG>
- use the <STRONG>tbc</STRONG> (<STRONG>clear_all_tabs</STRONG>) and <STRONG>hts</STRONG> (<STRONG>set_tab</STRONG>) capabilities
- directly only when the <STRONG>it</STRONG> (<STRONG>init_tabs</STRONG>) capability is set to a value
+ use the <STRONG>tbc</STRONG> (<STRONG>clear_all_tabs</STRONG>) and <STRONG>hts</STRONG> (<STRONG>set_tab</STRONG>) capabilities
+ directly only when the <STRONG>it</STRONG> (<STRONG>init_tabs</STRONG>) capability is set to a value
other than <EM>eight</EM>.
</PRE><H3><a name="h3-Delays-and-Padding">Delays and Padding</a></H3><PRE>
- Many older and slower terminals do not support either XON/XOFF or DTR
- handshaking, including hard copy terminals and some very archaic CRTs
- (including, for example, DEC VT100s). These may require padding
+ Many older and slower terminals do not support either XON/XOFF or DTR
+ handshaking, including hard copy terminals and some very archaic CRTs
+ (including, for example, DEC VT100s). These may require padding
characters after certain cursor motions and screen changes.
If the terminal uses xon/xoff handshaking for flow control (that is, it
- automatically emits ^S back to the host when its input buffers are
- close to full), set <STRONG>xon</STRONG>. This capability suppresses the emission of
- padding. You can also set it for memory-mapped console devices
+ automatically emits ^S back to the host when its input buffers are
+ close to full), set <STRONG>xon</STRONG>. This capability suppresses the emission of
+ padding. You can also set it for memory-mapped console devices
effectively that do not have a speed limit. Padding information should
- still be included so that routines can make better decisions about
+ still be included so that routines can make better decisions about
relative costs, but actual pad characters will not be transmitted.
If <STRONG>pb</STRONG> (padding baud rate) is given, padding is suppressed at baud rates
- below the value of <STRONG>pb</STRONG>. If the entry has no padding baud rate, then
+ below the value of <STRONG>pb</STRONG>. If the entry has no padding baud rate, then
whether padding is emitted or not is completely controlled by <STRONG>xon</STRONG>.
- If the terminal requires other than a null (zero) character as a pad,
- then this can be given as <STRONG>pad</STRONG>. Only the first character of the <STRONG>pad</STRONG>
+ If the terminal requires other than a null (zero) character as a pad,
+ then this can be given as <STRONG>pad</STRONG>. Only the first character of the <STRONG>pad</STRONG>
string is used.
</PRE><H3><a name="h3-Status-Lines">Status Lines</a></H3><PRE>
- Some terminals have an extra "status line" which is not normally used
+ Some terminals have an extra "status line" which is not normally used
by software (and thus not counted in the terminal's <STRONG>lines</STRONG> capability).
- The simplest case is a status line which is cursor-addressable but not
+ The simplest case is a status line which is cursor-addressable but not
part of the main scrolling region on the screen; the Heathkit H19 has a
- status line of this kind, as would a 24-line VT100 with a 23-line
+ status line of this kind, as would a 24-line VT100 with a 23-line
scrolling region set up on initialization. This situation is indicated
by the <STRONG>hs</STRONG> capability.
- Some terminals with status lines need special sequences to access the
- status line. These may be expressed as a string with single parameter
- <STRONG>tsl</STRONG> which takes the cursor to a given zero-origin column on the status
- line. The capability <STRONG>fsl</STRONG> must return to the main-screen cursor
+ Some terminals with status lines need special sequences to access the
+ status line. These may be expressed as a string with single parameter
+ <STRONG>tsl</STRONG> which takes the cursor to a given zero-origin column on the status
+ line. The capability <STRONG>fsl</STRONG> must return to the main-screen cursor
positions before the last <STRONG>tsl</STRONG>. You may need to embed the string values
- of <STRONG>sc</STRONG> (save cursor) and <STRONG>rc</STRONG> (restore cursor) in <STRONG>tsl</STRONG> and <STRONG>fsl</STRONG> to
+ of <STRONG>sc</STRONG> (save cursor) and <STRONG>rc</STRONG> (restore cursor) in <STRONG>tsl</STRONG> and <STRONG>fsl</STRONG> to
accomplish this.
- The status line is normally assumed to be the same width as the width
- of the terminal. If this is untrue, you can specify it with the
+ The status line is normally assumed to be the same width as the width
+ of the terminal. If this is untrue, you can specify it with the
numeric capability <STRONG>wsl</STRONG>.
A command to erase or blank the status line may be specified as <STRONG>dsl</STRONG>.
- The boolean capability <STRONG>eslok</STRONG> specifies that escape sequences, tabs,
+ The Boolean capability <STRONG>eslok</STRONG> specifies that escape sequences, tabs,
etc., work ordinarily in the status line.
- The <STRONG>ncurses</STRONG> implementation does not yet use any of these capabilities.
+ The <EM>ncurses</EM> implementation does not yet use any of these capabilities.
They are documented here in case they ever become important.
</PRE><H3><a name="h3-Line-Graphics">Line Graphics</a></H3><PRE>
- Many terminals have alternate character sets useful for forms-drawing.
- Terminfo and <STRONG>curses</STRONG> have built-in support for most of the drawing
- characters supported by the VT100, with some characters from the AT&amp;T
- 4410v1 added. This alternate character set may be specified by the
+ Many terminals have alternate character sets useful for forms-drawing.
+ Terminfo and <STRONG>curses</STRONG> have built-in support for most of the drawing
+ characters supported by the VT100, with some characters from the AT&amp;T
+ 4410v1 added. This alternate character set may be specified by the
<STRONG>acsc</STRONG> capability.
- <STRONG>Glyph</STRONG> <STRONG>ACS</STRONG> <STRONG>Ascii</STRONG> <STRONG>acsc</STRONG> <STRONG>acsc</STRONG>
- <STRONG>Name</STRONG> <STRONG>Name</STRONG> <STRONG>Default</STRONG> <STRONG>Char</STRONG> <STRONG>Value</STRONG>
- --------------------------------------------------------------------
- arrow pointing right ACS_RARROW &gt; + 0x2b
- arrow pointing left ACS_LARROW &lt; , 0x2c
- arrow pointing up ACS_UARROW ^ - 0x2d
- arrow pointing down ACS_DARROW v . 0x2e
- solid square block ACS_BLOCK # 0 0x30
- diamond ACS_DIAMOND + ` 0x60
- checker board (stipple) ACS_CKBOARD : a 0x61
- degree symbol ACS_DEGREE \ f 0x66
- plus/minus ACS_PLMINUS # g 0x67
- board of squares ACS_BOARD # h 0x68
- lantern symbol ACS_LANTERN # i 0x69
- lower right corner ACS_LRCORNER + j 0x6a
-
- upper right corner ACS_URCORNER + k 0x6b
- upper left corner ACS_ULCORNER + l 0x6c
- lower left corner ACS_LLCORNER + m 0x6d
- large plus or crossover ACS_PLUS + n 0x6e
- scan line 1 ACS_S1 ~ o 0x6f
- scan line 3 ACS_S3 - p 0x70
- horizontal line ACS_HLINE - q 0x71
- scan line 7 ACS_S7 - r 0x72
- scan line 9 ACS_S9 _ s 0x73
- tee pointing right ACS_LTEE + t 0x74
- tee pointing left ACS_RTEE + u 0x75
- tee pointing up ACS_BTEE + v 0x76
- tee pointing down ACS_TTEE + w 0x77
- vertical line ACS_VLINE | x 0x78
- less-than-or-equal-to ACS_LEQUAL &lt; y 0x79
- greater-than-or-equal-to ACS_GEQUAL &gt; z 0x7a
- greek pi ACS_PI * { 0x7b
- not-equal ACS_NEQUAL ! | 0x7c
- UK pound sign ACS_STERLING f } 0x7d
- bullet ACS_BULLET o ~ 0x7e
+ <STRONG>acsc</STRONG>
+ <STRONG>ACS</STRONG> <STRONG>Name</STRONG> <STRONG>Value</STRONG> <STRONG>Symbol</STRONG> <STRONG>ASCII</STRONG> <STRONG>Fallback</STRONG> <STRONG>/</STRONG> <STRONG>Glyph</STRONG> <STRONG>Name</STRONG>
+ ------------------------------------------------------------------------
+ <STRONG>ACS_RARROW</STRONG> 0x2b + <STRONG>&gt;</STRONG> arrow pointing right
+ <STRONG>ACS_LARROW</STRONG> 0x2c , <STRONG>&lt;</STRONG> arrow pointing left
+ <STRONG>ACS_UARROW</STRONG> 0x2d - <STRONG>^</STRONG> arrow pointing up
+ <STRONG>ACS_DARROW</STRONG> 0x2e . <STRONG>v</STRONG> arrow pointing down
+ <STRONG>ACS_BLOCK</STRONG> 0x30 0 <STRONG>#</STRONG> solid square block
+ <STRONG>ACS_DIAMOND</STRONG> 0x60 ` <STRONG>+</STRONG> diamond
+ <STRONG>ACS_CKBOARD</STRONG> 0x61 a <STRONG>:</STRONG> checker board (stipple)
+ <STRONG>ACS_DEGREE</STRONG> 0x66 f <STRONG>\</STRONG> degree symbol
+ <STRONG>ACS_PLMINUS</STRONG> 0x67 g <STRONG>#</STRONG> plus/minus
+ <STRONG>ACS_BOARD</STRONG> 0x68 h <STRONG>#</STRONG> board of squares
+ <STRONG>ACS_LANTERN</STRONG> 0x69 i <STRONG>#</STRONG> lantern symbol
+ <STRONG>ACS_LRCORNER</STRONG> 0x6a j <STRONG>+</STRONG> lower right corner
+
+ <STRONG>ACS_URCORNER</STRONG> 0x6b k <STRONG>+</STRONG> upper right corner
+ <STRONG>ACS_ULCORNER</STRONG> 0x6c l <STRONG>+</STRONG> upper left corner
+ <STRONG>ACS_LLCORNER</STRONG> 0x6d m <STRONG>+</STRONG> lower left corner
+ <STRONG>ACS_PLUS</STRONG> 0x6e n <STRONG>+</STRONG> large plus or crossover
+ <STRONG>ACS_S1</STRONG> 0x6f o <STRONG>~</STRONG> scan line 1
+ <STRONG>ACS_S3</STRONG> 0x70 p <STRONG>-</STRONG> scan line 3
+ <STRONG>ACS_HLINE</STRONG> 0x71 q <STRONG>-</STRONG> horizontal line
+ <STRONG>ACS_S7</STRONG> 0x72 r <STRONG>-</STRONG> scan line 7
+ <STRONG>ACS_S9</STRONG> 0x73 s <STRONG>_</STRONG> scan line 9
+ <STRONG>ACS_LTEE</STRONG> 0x74 t <STRONG>+</STRONG> tee pointing right
+ <STRONG>ACS_RTEE</STRONG> 0x75 u <STRONG>+</STRONG> tee pointing left
+ <STRONG>ACS_BTEE</STRONG> 0x76 v <STRONG>+</STRONG> tee pointing up
+ <STRONG>ACS_TTEE</STRONG> 0x77 w <STRONG>+</STRONG> tee pointing down
+ <STRONG>ACS_VLINE</STRONG> 0x78 x <STRONG>|</STRONG> vertical line
+ <STRONG>ACS_LEQUAL</STRONG> 0x79 y <STRONG>&lt;</STRONG> less-than-or-equal-to
+ <STRONG>ACS_GEQUAL</STRONG> 0x7a z <STRONG>&gt;</STRONG> greater-than-or-equal-to
+ <STRONG>ACS_PI</STRONG> 0x7b { <STRONG>*</STRONG> greek pi
+ <STRONG>ACS_NEQUAL</STRONG> 0x7c | <STRONG>!</STRONG> not-equal
+ <STRONG>ACS_STERLING</STRONG> 0x7d } <STRONG>f</STRONG> UK pound sign
+ <STRONG>ACS_BULLET</STRONG> 0x7e ~ <STRONG>o</STRONG> bullet
A few notes apply to the table itself:
- <STRONG>o</STRONG> X/Open Curses incorrectly states that the mapping for <EM>lantern</EM> is
- uppercase "I" although Unix implementations use the lowercase "i"
+ <STRONG>o</STRONG> X/Open Curses incorrectly states that the mapping for <EM>lantern</EM> is
+ uppercase "I" although Unix implementations use the lowercase "i"
mapping.
- <STRONG>o</STRONG> The DEC VT100 implemented graphics using the alternate character
- set feature, temporarily switching <EM>modes</EM> and sending characters in
- the range 0x60 (96) to 0x7e (126) (the <STRONG>acsc</STRONG> <STRONG>Value</STRONG> column in the
+ <STRONG>o</STRONG> The DEC VT100 implemented graphics using the alternate character
+ set feature, temporarily switching <EM>modes</EM> and sending characters in
+ the range 0x60 (96) to 0x7e (126) (the <STRONG>acsc</STRONG> <STRONG>Value</STRONG> column in the
table).
<STRONG>o</STRONG> The AT&amp;T terminal added graphics characters outside that range.
- Some of the characters within the range do not match the VT100;
- presumably they were used in the AT&amp;T terminal: <EM>board</EM> <EM>of</EM> <EM>squares</EM>
- replaces the VT100 <EM>newline</EM> symbol, while <EM>lantern</EM> <EM>symbol</EM> replaces
+ Some of the characters within the range do not match the VT100;
+ presumably they were used in the AT&amp;T terminal: <EM>board</EM> <EM>of</EM> <EM>squares</EM>
+ replaces the VT100 <EM>newline</EM> symbol, while <EM>lantern</EM> <EM>symbol</EM> replaces
the VT100 <EM>vertical</EM> <EM>tab</EM> symbol. The other VT100 symbols for control
- characters (<EM>horizontal</EM> <EM>tab</EM>, <EM>carriage</EM> <EM>return</EM> and <EM>line-feed</EM>) are not
+ characters (<EM>horizontal</EM> <EM>tab</EM>, <EM>carriage</EM> <EM>return</EM> and <EM>line-feed</EM>) are not
(re)used in curses.
- The best way to define a new device's graphics set is to add a column
- to a copy of this table for your terminal, giving the character which
- (when emitted between <STRONG>smacs</STRONG>/<STRONG>rmacs</STRONG> switches) will be rendered as the
+ The best way to define a new device's graphics set is to add a column
+ to a copy of this table for your terminal, giving the character which
+ (when emitted between <STRONG>smacs</STRONG>/<STRONG>rmacs</STRONG> switches) will be rendered as the
corresponding graphic. Then read off the VT100/your terminal character
pairs right to left in sequence; these become the ACSC string.
</PRE><H3><a name="h3-Color-Handling">Color Handling</a></H3><PRE>
- The curses library functions <STRONG>init_pair</STRONG> and <STRONG>init_color</STRONG> manipulate the
- <EM>color</EM> <EM>pairs</EM> and <EM>color</EM> <EM>values</EM> discussed in this section (see
+ The curses library functions <STRONG>init_pair</STRONG> and <STRONG>init_color</STRONG> manipulate the
+ <EM>color</EM> <EM>pairs</EM> and <EM>color</EM> <EM>values</EM> discussed in this section (see
<STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG> for details on these and related functions).
Most color terminals are either "Tektronix-like" or "HP-like":
<STRONG>o</STRONG> Tektronix-like terminals have a predefined set of <EM>N</EM> colors (where <EM>N</EM>
is usually 8), and can set character-cell foreground and background
- characters independently, mixing them into <EM>N</EM> * <EM>N</EM> color-pairs.
+ characters independently, mixing them into <EM>N</EM> * <EM>N</EM> color pairs.
- <STRONG>o</STRONG> On HP-like terminals, the user must set each color pair up
- separately (foreground and background are not independently
- settable). Up to <EM>M</EM> color-pairs may be set up from 2*<EM>M</EM> different
+ <STRONG>o</STRONG> On HP-like terminals, the user must set each color pair up
+ separately (foreground and background are not independently
+ settable). Up to <EM>M</EM> color pairs may be set up from 2*<EM>M</EM> different
colors. ANSI-compatible terminals are Tektronix-like.
Some basic color capabilities are independent of the color method. The
- numeric capabilities <STRONG>colors</STRONG> and <STRONG>pairs</STRONG> specify the maximum numbers of
- colors and color-pairs that can be displayed simultaneously. The <STRONG>op</STRONG>
+ numeric capabilities <STRONG>colors</STRONG> and <STRONG>pairs</STRONG> specify the maximum numbers of
+ colors and color pairs that can be displayed simultaneously. The <STRONG>op</STRONG>
(original pair) string resets foreground and background colors to their
- default values for the terminal. The <STRONG>oc</STRONG> string resets all colors or
- color-pairs to their default values for the terminal. Some terminals
- (including many PC terminal emulators) erase screen areas with the
- current background color rather than the power-up default background;
- these should have the boolean capability <STRONG>bce</STRONG>.
-
- While the curses library works with <EM>color</EM> <EM>pairs</EM> (reflecting the
- inability of some devices to set foreground and background colors
- independently), there are separate capabilities for setting these
+ default values for the terminal. The <STRONG>oc</STRONG> string resets all colors or
+ color pairs to their default values for the terminal. Some terminals
+ (including many PC terminal emulators) erase screen areas with the
+ current background color rather than the power-up default background;
+ these should have the Boolean capability <STRONG>bce</STRONG>.
+
+ While the curses library works with <EM>color</EM> <EM>pairs</EM> (reflecting the
+ inability of some devices to set foreground and background colors
+ independently), there are separate capabilities for setting these
features:
- <STRONG>o</STRONG> To change the current foreground or background color on a
- Tektronix-type terminal, use <STRONG>setaf</STRONG> (set ANSI foreground) and <STRONG>setab</STRONG>
- (set ANSI background) or <STRONG>setf</STRONG> (set foreground) and <STRONG>setb</STRONG> (set
+ <STRONG>o</STRONG> To change the current foreground or background color on a
+ Tektronix-type terminal, use <STRONG>setaf</STRONG> (set ANSI foreground) and <STRONG>setab</STRONG>
+ (set ANSI background) or <STRONG>setf</STRONG> (set foreground) and <STRONG>setb</STRONG> (set
background). These take one parameter, the color number. The SVr4
- documentation describes only <STRONG>setaf</STRONG>/<STRONG>setab</STRONG>; the XPG4 draft says that
- "If the terminal supports ANSI escape sequences to set background
- and foreground, they should be coded as <STRONG>setaf</STRONG> and <STRONG>setab</STRONG>,
+ documentation describes only <STRONG>setaf</STRONG>/<STRONG>setab</STRONG>; the XPG4 draft says that
+ "If the terminal supports ANSI escape sequences to set background
+ and foreground, they should be coded as <STRONG>setaf</STRONG> and <STRONG>setab</STRONG>,
respectively.
- <STRONG>o</STRONG> If the terminal supports other escape sequences to set background
- and foreground, they should be coded as <STRONG>setf</STRONG> and <STRONG>setb</STRONG>,
- respectively. The <STRONG>vidputs</STRONG> and the <STRONG><A HREF="curs_refresh.3x.html">refresh(3x)</A></STRONG> functions use the
+ <STRONG>o</STRONG> If the terminal supports other escape sequences to set background
+ and foreground, they should be coded as <STRONG>setf</STRONG> and <STRONG>setb</STRONG>,
+ respectively. The <STRONG>vidputs</STRONG> and the <STRONG><A HREF="curs_refresh.3x.html">refresh(3x)</A></STRONG> functions use the
<STRONG>setaf</STRONG> and <STRONG>setab</STRONG> capabilities if they are defined.
- The <STRONG>setaf</STRONG>/<STRONG>setab</STRONG> and <STRONG>setf</STRONG>/<STRONG>setb</STRONG> capabilities take a single numeric
+ The <STRONG>setaf</STRONG>/<STRONG>setab</STRONG> and <STRONG>setf</STRONG>/<STRONG>setb</STRONG> capabilities take a single numeric
argument each. Argument values 0-7 of <STRONG>setaf</STRONG>/<STRONG>setab</STRONG> are portably defined
- as follows (the middle column is the symbolic #define available in the
- header for the <STRONG>curses</STRONG> or <STRONG>ncurses</STRONG> libraries). The terminal hardware is
- free to map these as it likes, but the RGB values indicate normal
+ as follows (the middle column is the symbolic #define available in the
+ header for the <STRONG>curses</STRONG> or <EM>ncurses</EM> libraries). The terminal hardware is
+ free to map these as it likes, but the RGB values indicate normal
locations in color space.
- <STRONG>Color</STRONG> <STRONG>#define</STRONG> <STRONG>Value</STRONG> <STRONG>RGB</STRONG>
- black <STRONG>COLOR_BLACK</STRONG> 0 0, 0, 0
- red <STRONG>COLOR_RED</STRONG> 1 max,0,0
- green <STRONG>COLOR_GREEN</STRONG> 2 0,max,0
- yellow <STRONG>COLOR_YELLOW</STRONG> 3 max,max,0
- blue <STRONG>COLOR_BLUE</STRONG> 4 0,0,max
- magenta <STRONG>COLOR_MAGENTA</STRONG> 5 max,0,max
- cyan <STRONG>COLOR_CYAN</STRONG> 6 0,max,max
- white <STRONG>COLOR_WHITE</STRONG> 7 max,max,max
+ <STRONG>Color</STRONG> <STRONG>#define</STRONG> <STRONG>Value</STRONG> <STRONG>RGB</STRONG>
+ ------------------------------------------------
+ black <STRONG>COLOR_BLACK</STRONG> 0 0, 0, 0
+ red <STRONG>COLOR_RED</STRONG> 1 max, 0, 0
+ green <STRONG>COLOR_GREEN</STRONG> 2 0, max, 0
+ yellow <STRONG>COLOR_YELLOW</STRONG> 3 max, max, 0
+ blue <STRONG>COLOR_BLUE</STRONG> 4 0, 0, max
+ magenta <STRONG>COLOR_MAGENTA</STRONG> 5 max, 0, max
+ cyan <STRONG>COLOR_CYAN</STRONG> 6 0, max, max
+ white <STRONG>COLOR_WHITE</STRONG> 7 max, max, max
The argument values of <STRONG>setf</STRONG>/<STRONG>setb</STRONG> historically correspond to a different
mapping, i.e.,
- <STRONG>Color</STRONG> <STRONG>#define</STRONG> <STRONG>Value</STRONG> <STRONG>RGB</STRONG>
- black <STRONG>COLOR_BLACK</STRONG> 0 0, 0, 0
- blue <STRONG>COLOR_BLUE</STRONG> 1 0,0,max
- green <STRONG>COLOR_GREEN</STRONG> 2 0,max,0
- cyan <STRONG>COLOR_CYAN</STRONG> 3 0,max,max
- red <STRONG>COLOR_RED</STRONG> 4 max,0,0
- magenta <STRONG>COLOR_MAGENTA</STRONG> 5 max,0,max
- yellow <STRONG>COLOR_YELLOW</STRONG> 6 max,max,0
- white <STRONG>COLOR_WHITE</STRONG> 7 max,max,max
-
- It is important to not confuse the two sets of color capabilities;
+ <STRONG>Color</STRONG> <STRONG>#define</STRONG> <STRONG>Value</STRONG> <STRONG>RGB</STRONG>
+ ------------------------------------------------
+ black <STRONG>COLOR_BLACK</STRONG> 0 0, 0, 0
+ blue <STRONG>COLOR_BLUE</STRONG> 1 0, 0, max
+ green <STRONG>COLOR_GREEN</STRONG> 2 0, max, 0
+ cyan <STRONG>COLOR_CYAN</STRONG> 3 0, max, max
+ red <STRONG>COLOR_RED</STRONG> 4 max, 0, 0
+ magenta <STRONG>COLOR_MAGENTA</STRONG> 5 max, 0, max
+ yellow <STRONG>COLOR_YELLOW</STRONG> 6 max, max, 0
+ white <STRONG>COLOR_WHITE</STRONG> 7 max, max, max
+
+ It is important to not confuse the two sets of color capabilities;
otherwise red/blue will be interchanged on the display.
- On an HP-like terminal, use <STRONG>scp</STRONG> with a color-pair number parameter to
+ On an HP-like terminal, use <STRONG>scp</STRONG> with a color pair number parameter to
set which color pair is current.
Some terminals allow the <EM>color</EM> <EM>values</EM> to be modified:
- <STRONG>o</STRONG> On a Tektronix-like terminal, the capability <STRONG>ccc</STRONG> may be present to
- indicate that colors can be modified. If so, the <STRONG>initc</STRONG> capability
+ <STRONG>o</STRONG> On a Tektronix-like terminal, the capability <STRONG>ccc</STRONG> may be present to
+ indicate that colors can be modified. If so, the <STRONG>initc</STRONG> capability
will take a color number (0 to <STRONG>colors</STRONG> - 1)and three more parameters
- which describe the color. These three parameters default to being
- interpreted as RGB (Red, Green, Blue) values. If the boolean
+ which describe the color. These three parameters default to being
+ interpreted as RGB (Red, Green, Blue) values. If the Boolean
capability <STRONG>hls</STRONG> is present, they are instead as HLS (Hue, Lightness,
Saturation) indices. The ranges are terminal-dependent.
- <STRONG>o</STRONG> On an HP-like terminal, <STRONG>initp</STRONG> may give a capability for changing a
- color-pair value. It will take seven parameters; a color-pair
- number (0 to <STRONG>max_pairs</STRONG> - 1), and two triples describing first
- background and then foreground colors. These parameters must be
- (Red, Green, Blue) or (Hue, Lightness, Saturation) depending on
+ <STRONG>o</STRONG> On an HP-like terminal, <STRONG>initp</STRONG> may give a capability for changing a
+ color pair value. It will take seven parameters; a color pair
+ number (0 to <STRONG>max_pairs</STRONG> - 1), and two triples describing first
+ background and then foreground colors. These parameters must be
+ (Red, Green, Blue) or (Hue, Lightness, Saturation) depending on
<STRONG>hls</STRONG>.
- On some color terminals, colors collide with highlights. You can
- register these collisions with the <STRONG>ncv</STRONG> capability. This is a bit-mask
- of attributes not to be used when colors are enabled. The
+ On some color terminals, colors collide with highlights. You can
+ register these collisions with the <STRONG>ncv</STRONG> capability. This is a bit mask
+ of attributes not to be used when colors are enabled. The
correspondence with the attributes understood by <STRONG>curses</STRONG> is as follows:
- <STRONG>Attribute</STRONG> <STRONG>Bit</STRONG> <STRONG>Decimal</STRONG> <STRONG>Set</STRONG> <STRONG>by</STRONG>
- A_STANDOUT 0 1 sgr
- A_UNDERLINE 1 2 sgr
- A_REVERSE 2 4 sgr
- A_BLINK 3 8 sgr
- A_DIM 4 16 sgr
- A_BOLD 5 32 sgr
- A_INVIS 6 64 sgr
- A_PROTECT 7 128 sgr
- A_ALTCHARSET 8 256 sgr
- A_HORIZONTAL 9 512 sgr1
- A_LEFT 10 1024 sgr1
- A_LOW 11 2048 sgr1
- A_RIGHT 12 4096 sgr1
- A_TOP 13 8192 sgr1
- A_VERTICAL 14 16384 sgr1
- A_ITALIC 15 32768 sitm
-
- For example, on many IBM PC consoles, the underline attribute collides
- with the foreground color blue and is not available in color mode.
+ <STRONG>Attribute</STRONG> <STRONG>Bit</STRONG> <STRONG>Decimal</STRONG> <STRONG>Set</STRONG> <STRONG>by</STRONG>
+ --------------------------------------
+ <STRONG>A_STANDOUT</STRONG> 0 1 <STRONG>sgr</STRONG>
+ <STRONG>A_UNDERLINE</STRONG> 1 2 <STRONG>sgr</STRONG>
+ <STRONG>A_REVERSE</STRONG> 2 4 <STRONG>sgr</STRONG>
+ <STRONG>A_BLINK</STRONG> 3 8 <STRONG>sgr</STRONG>
+ <STRONG>A_DIM</STRONG> 4 16 <STRONG>sgr</STRONG>
+ <STRONG>A_BOLD</STRONG> 5 32 <STRONG>sgr</STRONG>
+ <STRONG>A_INVIS</STRONG> 6 64 <STRONG>sgr</STRONG>
+ <STRONG>A_PROTECT</STRONG> 7 128 <STRONG>sgr</STRONG>
+ <STRONG>A_ALTCHARSET</STRONG> 8 256 <STRONG>sgr</STRONG>
+ <STRONG>A_HORIZONTAL</STRONG> 9 512 <STRONG>sgr1</STRONG>
+ <STRONG>A_LEFT</STRONG> 10 1024 <STRONG>sgr1</STRONG>
+ <STRONG>A_LOW</STRONG> 11 2048 <STRONG>sgr1</STRONG>
+ <STRONG>A_RIGHT</STRONG> 12 4096 <STRONG>sgr1</STRONG>
+ <STRONG>A_TOP</STRONG> 13 8192 <STRONG>sgr1</STRONG>
+ <STRONG>A_VERTICAL</STRONG> 14 16384 <STRONG>sgr1</STRONG>
+ <STRONG>A_ITALIC</STRONG> 15 32768 <STRONG>sitm</STRONG>
+
+ For example, on many IBM PC consoles, the underline attribute collides
+ with the foreground color blue and is not available in color mode.
These should have an <STRONG>ncv</STRONG> capability of 2.
- SVr4 curses does nothing with <STRONG>ncv</STRONG>, ncurses recognizes it and optimizes
+ SVr4 curses does nothing with <STRONG>ncv</STRONG>, <EM>ncurses</EM> recognizes it and optimizes
the output in favor of colors.
</PRE><H3><a name="h3-Miscellaneous">Miscellaneous</a></H3><PRE>
- If the terminal requires other than a null (zero) character as a pad,
- then this can be given as pad. Only the first character of the pad
+ If the terminal requires other than a null (zero) character as a pad,
+ then this can be given as pad. Only the first character of the pad
string is used. If the terminal does not have a pad character, specify
- npc. Note that ncurses implements the termcap-compatible <STRONG>PC</STRONG> variable;
- though the application may set this value to something other than a
- null, ncurses will test <STRONG>npc</STRONG> first and use napms if the terminal has no
+ npc. Note that <EM>ncurses</EM> implements the termcap-compatible <STRONG>PC</STRONG> variable;
+ though the application may set this value to something other than a
+ null, <EM>ncurses</EM> will test <STRONG>npc</STRONG> first and use napms if the terminal has no
pad character.
- If the terminal can move up or down half a line, this can be indicated
- with <STRONG>hu</STRONG> (half-line up) and <STRONG>hd</STRONG> (half-line down). This is primarily
- useful for superscripts and subscripts on hard-copy terminals. If a
+ If the terminal can move up or down half a line, this can be indicated
+ with <STRONG>hu</STRONG> (half-line up) and <STRONG>hd</STRONG> (half-line down). This is primarily
+ useful for superscripts and subscripts on hard-copy terminals. If a
hard-copy terminal can eject to the next page (form feed), give this as
<STRONG>ff</STRONG> (usually control/L).
- If there is a command to repeat a given character a given number of
- times (to save time transmitting a large number of identical
- characters) this can be indicated with the parameterized string <STRONG>rep</STRONG>.
- The first parameter is the character to be repeated and the second is
+ If there is a command to repeat a given character a given number of
+ times (to save time transmitting a large number of identical
+ characters) this can be indicated with the parameterized string <STRONG>rep</STRONG>.
+ The first parameter is the character to be repeated and the second is
the number of times to repeat it. Thus, tparm(repeat_char, 'x', 10) is
the same as "xxxxxxxxxx".
If the terminal has a settable command character, such as the TEKTRONIX
- 4025, this can be indicated with <STRONG>cmdch</STRONG>. A prototype command character
- is chosen which is used in all capabilities. This character is given
- in the <STRONG>cmdch</STRONG> capability to identify it. The following convention is
- supported on some UNIX systems: The environment is to be searched for a
- <STRONG>CC</STRONG> variable, and if found, all occurrences of the prototype character
+ 4025, this can be indicated with <STRONG>cmdch</STRONG>. A prototype command character
+ is chosen which is used in all capabilities. This character is given
+ in the <STRONG>cmdch</STRONG> capability to identify it. The following convention is
+ supported on some Unix systems: The environment is to be searched for a
+ <STRONG>CC</STRONG> variable, and if found, all occurrences of the prototype character
are replaced with the character in the environment variable.
- Terminal descriptions that do not represent a specific kind of known
- terminal, such as <EM>switch</EM>, <EM>dialup</EM>, <EM>patch</EM>, and <EM>network</EM>, should include
- the <STRONG>gn</STRONG> (generic) capability so that programs can complain that they do
- not know how to talk to the terminal. (This capability does not apply
- to <EM>virtual</EM> terminal descriptions for which the escape sequences are
+ Terminal descriptions that do not represent a specific kind of known
+ terminal, such as <EM>switch</EM>, <EM>dialup</EM>, <EM>patch</EM>, and <EM>network</EM>, should include
+ the <STRONG>gn</STRONG> (generic) capability so that programs can complain that they do
+ not know how to talk to the terminal. (This capability does not apply
+ to <EM>virtual</EM> terminal descriptions for which the escape sequences are
known.)
If the terminal has a "meta key" which acts as a shift key, setting the
- 8th bit of any character transmitted, this fact can be indicated with
- <STRONG>km</STRONG>. Otherwise, software will assume that the 8th bit is parity and it
- will usually be cleared. If strings exist to turn this "meta mode" on
+ 8th bit of any character transmitted, this fact can be indicated with
+ <STRONG>km</STRONG>. Otherwise, software will assume that the 8th bit is parity and it
+ will usually be cleared. If strings exist to turn this "meta mode" on
and off, they can be given as <STRONG>smm</STRONG> and <STRONG>rmm</STRONG>.
If the terminal has more lines of memory than will fit on the screen at
- once, the number of lines of memory can be indicated with <STRONG>lm</STRONG>. A value
+ once, the number of lines of memory can be indicated with <STRONG>lm</STRONG>. A value
of <STRONG>lm</STRONG>#0 indicates that the number of lines is not fixed, but that there
is still more memory than fits on the screen.
- If the terminal is one of those supported by the UNIX virtual terminal
+ If the terminal is one of those supported by the Unix virtual terminal
protocol, the terminal number can be given as <STRONG>vt</STRONG>.
- Media copy strings which control an auxiliary printer connected to the
- terminal can be given as <STRONG>mc0</STRONG>: print the contents of the screen, <STRONG>mc4</STRONG>:
- turn off the printer, and <STRONG>mc5</STRONG>: turn on the printer. When the printer
- is on, all text sent to the terminal will be sent to the printer. It
- is undefined whether the text is also displayed on the terminal screen
- when the printer is on. A variation <STRONG>mc5p</STRONG> takes one parameter, and
- leaves the printer on for as many characters as the value of the
+ Media copy strings which control an auxiliary printer connected to the
+ terminal can be given as <STRONG>mc0</STRONG>: print the contents of the screen, <STRONG>mc4</STRONG>:
+ turn off the printer, and <STRONG>mc5</STRONG>: turn on the printer. When the printer
+ is on, all text sent to the terminal will be sent to the printer. It
+ is undefined whether the text is also displayed on the terminal screen
+ when the printer is on. A variation <STRONG>mc5p</STRONG> takes one parameter, and
+ leaves the printer on for as many characters as the value of the
parameter, then turns the printer off. The parameter should not exceed
- 255. All text, including <STRONG>mc4</STRONG>, is transparently passed to the printer
+ 255. All text, including <STRONG>mc4</STRONG>, is transparently passed to the printer
while an <STRONG>mc5p</STRONG> is in effect.
-</PRE><H3><a name="h3-Glitches-and-Braindamage">Glitches and Braindamage</a></H3><PRE>
- Hazeltine terminals, which do not allow "~" characters to be displayed
+</PRE><H3><a name="h3-Glitches-and-Brain-Damage">Glitches and Brain Damage</a></H3><PRE>
+ Hazeltine terminals, which do not allow "~" characters to be displayed
should indicate <STRONG>hz</STRONG>.
- Terminals which ignore a line-feed immediately after an <STRONG>am</STRONG> wrap, such
+ Terminals which ignore a line-feed immediately after an <STRONG>am</STRONG> wrap, such
as the Concept and vt100, should indicate <STRONG>xenl</STRONG>.
- If <STRONG>el</STRONG> is required to get rid of standout (instead of merely writing
+ If <STRONG>el</STRONG> is required to get rid of standout (instead of merely writing
normal text on top of it), <STRONG>xhp</STRONG> should be given.
Teleray terminals, where tabs turn all characters moved over to blanks,
- should indicate <STRONG>xt</STRONG> (destructive tabs). Note: the variable indicating
- this is now "dest_tabs_magic_smso"; in older versions, it was
- teleray_glitch. This glitch is also taken to mean that it is not
- possible to position the cursor on top of a "magic cookie", that to
- erase standout mode it is instead necessary to use delete and insert
- line. The ncurses implementation ignores this glitch.
-
- The Beehive Superbee, which is unable to correctly transmit the escape
- or control/C characters, has <STRONG>xsb</STRONG>, indicating that the f1 key is used
- for escape and f2 for control/C. (Only certain Superbees have this
- problem, depending on the ROM.) Note that in older terminfo versions,
+ should indicate <STRONG>xt</STRONG> (destructive tabs). Note: the variable indicating
+ this is now "dest_tabs_magic_smso"; in older versions, it was
+ teleray_glitch. This glitch is also taken to mean that it is not
+ possible to position the cursor on top of a "magic cookie", that to
+ erase standout mode it is instead necessary to use delete and insert
+ line. The <EM>ncurses</EM> implementation ignores this glitch.
+
+ The Beehive Superbee, which is unable to correctly transmit the escape
+ or control/C characters, has <STRONG>xsb</STRONG>, indicating that the f1 key is used
+ for escape and f2 for control/C. (Only certain Superbees have this
+ problem, depending on the ROM.) Note that in older terminfo versions,
this capability was called "beehive_glitch"; it is now "no_esc_ctl_c".
- Other specific terminal problems may be corrected by adding more
+ Other specific terminal problems may be corrected by adding more
capabilities of the form <STRONG>x</STRONG><EM>x</EM>.
</PRE><H3><a name="h3-Pitfalls-of-Long-Entries">Pitfalls of Long Entries</a></H3><PRE>
- Long terminfo entries are unlikely to be a problem; to date, no entry
- has even approached terminfo's 4096-byte string-table maximum.
- Unfortunately, the termcap translations are much more strictly limited
+ Long terminfo entries are unlikely to be a problem; to date, no entry
+ has even approached terminfo's 4096-byte string-table maximum.
+ Unfortunately, the termcap translations are much more strictly limited
(to 1023 bytes), thus termcap translations of long terminfo entries can
cause problems.
- The man pages for 4.3BSD and older versions of <STRONG>tgetent</STRONG> instruct the
- user to allocate a 1024-byte buffer for the termcap entry. The entry
- gets null-terminated by the termcap library, so that makes the maximum
- safe length for a termcap entry 1k-1 (1023) bytes. Depending on what
- the application and the termcap library being used does, and where in
- the termcap file the terminal type that <STRONG>tgetent</STRONG> is searching for is,
- several bad things can happen.
-
- Some termcap libraries print a warning message or exit if they find an
- entry that's longer than 1023 bytes; others do not; others truncate the
- entries to 1023 bytes. Some application programs allocate more than
- the recommended 1K for the termcap entry; others do not.
-
- Each termcap entry has two important sizes associated with it: before
- "tc" expansion, and after "tc" expansion. "tc" is the capability that
+ The man pages for 4.3BSD and older versions of <STRONG>tgetent</STRONG> instruct the
+ user to allocate a 1024-byte buffer for the termcap entry. The entry
+ gets null-terminated by the termcap library, so that makes the maximum
+ safe length for a termcap entry 1k-1 (1023) bytes. Depending on what
+ the application and the termcap library being used does, and where in
+ the termcap file the terminal type that <STRONG>tgetent</STRONG> is searching for is,
+ several bad things can happen:
+
+ <STRONG>o</STRONG> some termcap libraries print a warning message,
+
+ <STRONG>o</STRONG> some exit if they find an entry that's longer than 1023 bytes,
+
+ <STRONG>o</STRONG> some neither exit nor warn, doing nothing useful, and
+
+ <STRONG>o</STRONG> some simply truncate the entries to 1023 bytes.
+
+ Some application programs allocate more than the recommended 1K for the
+ termcap entry; others do not.
+
+ Each termcap entry has two important sizes associated with it: before
+ "tc" expansion, and after "tc" expansion. "tc" is the capability that
tacks on another termcap entry to the end of the current one, to add on
its capabilities. If a termcap entry does not use the "tc" capability,
then of course the two lengths are the same.
- The "before tc expansion" length is the most important one, because it
- affects more than just users of that particular terminal. This is the
- length of the entry as it exists in /etc/termcap, minus the backslash-
+ The "before tc expansion" length is the most important one, because it
+ affects more than just users of that particular terminal. This is the
+ length of the entry as it exists in /etc/termcap, minus the backslash-
newline pairs, which <STRONG>tgetent</STRONG> strips out while reading it. Some termcap
libraries strip off the final newline, too (GNU termcap does not). Now
suppose:
@@ -2400,54 +2365,50 @@
<STRONG>o</STRONG> and the application has only allocated a 1k buffer,
- <STRONG>o</STRONG> and the termcap library (like the one in BSD/OS 1.1 and GNU) reads
- the whole entry into the buffer, no matter what its length, to see
+ <STRONG>o</STRONG> and the termcap library (like the one in BSD/OS 1.1 and GNU) reads
+ the whole entry into the buffer, no matter what its length, to see
if it is the entry it wants,
- <STRONG>o</STRONG> and <STRONG>tgetent</STRONG> is searching for a terminal type that either is the
- long entry, appears in the termcap file after the long entry, or
- does not appear in the file at all (so that <STRONG>tgetent</STRONG> has to search
+ <STRONG>o</STRONG> and <STRONG>tgetent</STRONG> is searching for a terminal type that either is the
+ long entry, appears in the termcap file after the long entry, or
+ does not appear in the file at all (so that <STRONG>tgetent</STRONG> has to search
the whole termcap file).
- Then <STRONG>tgetent</STRONG> will overwrite memory, perhaps its stack, and probably
- core dump the program. Programs like telnet are particularly
- vulnerable; modern telnets pass along values like the terminal type
- automatically. The results are almost as undesirable with a termcap
- library, like SunOS 4.1.3 and Ultrix 4.4, that prints warning messages
- when it reads an overly long termcap entry. If a termcap library
- truncates long entries, like OSF/1 3.0, it is immune to dying here but
+ Then <STRONG>tgetent</STRONG> will overwrite memory, perhaps its stack, and probably
+ core dump the program. Programs like telnet are particularly
+ vulnerable; modern telnets pass along values like the terminal type
+ automatically. The results are almost as undesirable with a termcap
+ library, like SunOS 4.1.3 and Ultrix 4.4, that prints warning messages
+ when it reads an overly long termcap entry. If a termcap library
+ truncates long entries, like OSF/1 3.0, it is immune to dying here but
will return incorrect data for the terminal.
- The "after tc expansion" length will have a similar effect to the
- above, but only for people who actually set TERM to that terminal type,
- since <STRONG>tgetent</STRONG> only does "tc" expansion once it is found the terminal
+ The "after tc expansion" length will have a similar effect to the
+ above, but only for people who actually set <EM>TERM</EM> to that terminal type,
+ since <STRONG>tgetent</STRONG> only does "tc" expansion once it is found the terminal
type it was looking for, not while searching.
- In summary, a termcap entry that is longer than 1023 bytes can cause,
- on various combinations of termcap libraries and applications, a core
- dump, warnings, or incorrect operation. If it is too long even before
- "tc" expansion, it will have this effect even for users of some other
- terminal types and users whose TERM variable does not have a termcap
+ In summary, a termcap entry that is longer than 1023 bytes can cause,
+ on various combinations of termcap libraries and applications, a core
+ dump, warnings, or incorrect operation. If it is too long even before
+ "tc" expansion, it will have this effect even for users of some other
+ terminal types and users whose <EM>TERM</EM> variable does not have a termcap
entry.
- When in -C (translate to termcap) mode, the <STRONG>ncurses</STRONG> implementation of
- <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG> issues warning messages when the pre-tc length of a termcap
- translation is too long. The -c (check) option also checks resolved
+ When in -C (translate to termcap) mode, the <EM>ncurses</EM> implementation of
+ <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG> issues warning messages when the pre-tc length of a termcap
+ translation is too long. The -c (check) option also checks resolved
(after tc expansion) lengths.
-</PRE><H3><a name="h3-Binary-Compatibility">Binary Compatibility</a></H3><PRE>
- It is not wise to count on portability of binary terminfo entries
- between commercial UNIX versions. The problem is that there are at
- least two versions of terminfo (under HP-UX and AIX) which diverged
- from System V terminfo after SVr1, and have added extension
- capabilities to the string table that (in the binary format) collide
- with System V and XSI Curses extensions.
+</PRE><H2><a name="h2-FILES">FILES</a></H2><PRE>
+ <EM>/usr/share/terminfo</EM>
+ compiled terminal description database directory
</PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
- Searching for terminal descriptions in <STRONG>$HOME/.terminfo</STRONG> and
- TERMINFO_DIRS is not supported by older implementations.
+ Searching for terminal descriptions in <EM>$HOME/.terminfo</EM> and
+ <EM>TERMINFO</EM><STRONG>_</STRONG><EM>DIRS</EM> is not supported by older implementations.
Some SVr4 <STRONG>curses</STRONG> implementations, and all previous to SVr4, do not
interpret the %A and %O operators in parameter strings.
@@ -2455,72 +2416,78 @@
SVr4/XPG4 do not specify whether <STRONG>msgr</STRONG> licenses movement while in an
alternate-character-set mode (such modes may, among other things, map
CR and NL to characters that do not trigger local motions). The
- <STRONG>ncurses</STRONG> implementation ignores <STRONG>msgr</STRONG> in <STRONG>ALTCHARSET</STRONG> mode. This raises
+ <EM>ncurses</EM> implementation ignores <STRONG>msgr</STRONG> in <STRONG>ALTCHARSET</STRONG> mode. This raises
the possibility that an XPG4 implementation making the opposite
- interpretation may need terminfo entries made for <STRONG>ncurses</STRONG> to have <STRONG>msgr</STRONG>
+ interpretation may need terminfo entries made for <EM>ncurses</EM> to have <STRONG>msgr</STRONG>
turned off.
- The <STRONG>ncurses</STRONG> library handles insert-character and insert-character modes
+ The <EM>ncurses</EM> library handles insert-character and insert-character modes
in a slightly non-standard way to get better update efficiency. See
the <STRONG>Insert/Delete</STRONG> <STRONG>Character</STRONG> subsection above.
The parameter substitutions for <STRONG>set_clock</STRONG> and <STRONG>display_clock</STRONG> are not
- documented in SVr4 or the XSI Curses standard. They are deduced from
- the documentation for the AT&amp;T 505 terminal.
+ documented in SVr4 or X/Open Curses. They are deduced from the
+ documentation for the AT&amp;T 505 terminal.
- Be careful assigning the <STRONG>kmous</STRONG> capability. The <STRONG>ncurses</STRONG> library wants
+ Be careful assigning the <STRONG>kmous</STRONG> capability. The <EM>ncurses</EM> library wants
to interpret it as <STRONG>KEY_MOUSE</STRONG>, for use by terminals and emulators like
xterm that can return mouse-tracking information in the keyboard-input
stream.
X/Open Curses does not mention italics. Portable applications must
assume that numeric capabilities are signed 16-bit values. This
- includes the <EM>no</EM><STRONG>_</STRONG><EM>color</EM><STRONG>_</STRONG><EM>video</EM> (ncv) capability. The 32768 mask value
- used for italics with ncv can be confused with an absent or cancelled
- ncv. If italics should work with colors, then the ncv value must be
+ includes the <EM>no</EM><STRONG>_</STRONG><EM>color</EM><STRONG>_</STRONG><EM>video</EM> (<STRONG>ncv</STRONG>) capability. The 32768 mask value
+ used for italics with <STRONG>ncv</STRONG> can be confused with an absent or cancelled
+ <STRONG>ncv</STRONG>. If italics should work with colors, then the <STRONG>ncv</STRONG> value must be
specified, even if it is zero.
- Different commercial ports of terminfo and curses support different
- subsets of the XSI Curses standard and (in some cases) different
- extension sets. Here is a summary, accurate as of October 1995:
+ Different commercial ports of <EM>terminfo</EM> and <EM>curses</EM> support different
+ subsets of X/Open Curses and (in some cases) different extensions.
+ Here is a summary, accurate as of October 1995, after which the
+ commercial Unix market contracted and lost diversity.
- <STRONG>o</STRONG> <STRONG>SVR4,</STRONG> <STRONG>Solaris,</STRONG> <STRONG>ncurses</STRONG> -- These support all SVr4 capabilities.
+ <STRONG>o</STRONG> SVr4, Solaris, and <EM>ncurses</EM> support all SVr4 capabilities.
- <STRONG>o</STRONG> <STRONG>SGI</STRONG> -- Supports the SVr4 set, adds one undocumented extended string
- capability (<STRONG>set_pglen</STRONG>).
+ <STRONG>o</STRONG> IRIX supports the SVr4 set and adds one undocumented extended
+ string capability (<STRONG>set_pglen</STRONG>).
- <STRONG>o</STRONG> <STRONG>SVr1,</STRONG> <STRONG>Ultrix</STRONG> -- These support a restricted subset of terminfo
- capabilities. The booleans end with <STRONG>xon_xoff</STRONG>; the numerics with
+ <STRONG>o</STRONG> SVr1 and Ultrix support a restricted subset of <EM>terminfo</EM>
+ capabilities. The Booleans end with <STRONG>xon_xoff</STRONG>; the numerics with
<STRONG>width_status_line</STRONG>; and the strings with <STRONG>prtr_non</STRONG>.
- <STRONG>o</STRONG> <STRONG>HP/UX</STRONG> -- Supports the SVr1 subset, plus the SVr[234] numerics
- <STRONG>num_labels</STRONG>, <STRONG>label_height</STRONG>, <STRONG>label_width</STRONG>, plus function keys 11
- through 63, plus <STRONG>plab_norm</STRONG>, <STRONG>label_on</STRONG>, and <STRONG>label_off</STRONG>, plus some
- incompatible extensions in the string table.
+ <STRONG>o</STRONG> HP/UX supports the SVr1 subset, plus the SVr[234] numerics
+ <STRONG>num_labels</STRONG>, <STRONG>label_height</STRONG>, <STRONG>label_width</STRONG>, plus function keys 11
+ through 63, plus <STRONG>plab_norm</STRONG>, <STRONG>label_on</STRONG>, and <STRONG>label_off</STRONG>, plus a number
+ of incompatible string table extensions.
- <STRONG>o</STRONG> <STRONG>AIX</STRONG> -- Supports the SVr1 subset, plus function keys 11 through 63,
+ <STRONG>o</STRONG> AIX supports the SVr1 subset, plus function keys 11 through 63,
plus a number of incompatible string table extensions.
- <STRONG>o</STRONG> <STRONG>OSF</STRONG> -- Supports both the SVr4 set and the AIX extensions.
+ <STRONG>o</STRONG> OSF/1 supports both the SVr4 set and the AIX extensions.
-</PRE><H2><a name="h2-FILES">FILES</a></H2><PRE>
- /usr/share/terminfo/?/* files containing terminal descriptions
-
-
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>, <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>,
- <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, <STRONG>printf(3)</STRONG>, <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>. <STRONG><A HREF="term.5.html">term(5)</A></STRONG>.
- <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>.
+</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
+ Do not count on compiled (binary) <EM>terminfo</EM> entries being portable
+ between commercial Unix systems. At least two implementations of
+ <EM>terminfo</EM> (those of HP-UX and AIX) diverged from those of other System V
+ Unices after SVr1, adding extension capabilities to the string table
+ that (in the binary format) collide with subsequent System V and X/Open
+ Curses extensions.
</PRE><H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
- Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey. Based on pcurses
+ Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey. Based on <EM>pcurses</EM>
by Pavel Curtis.
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>, <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>,
+ <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, <STRONG>printf(3)</STRONG>, <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>,
+ <STRONG><A HREF="term.5.html">term(5)</A></STRONG>, <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>
+
- <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
+
+ncurses 6.5 2024-04-20 <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -2528,8 +2495,8 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
<ul>
-<li><a href="#h3-Terminfo-Entry-Syntax">Terminfo Entry Syntax</a></li>
-<li><a href="#h3-Terminfo-Capabilities-Syntax">Terminfo Capabilities Syntax</a></li>
+<li><a href="#h3-terminfo-Entry-Syntax">terminfo Entry Syntax</a></li>
+<li><a href="#h3-terminfo-Capabilities-Syntax">terminfo Capabilities Syntax</a></li>
<li><a href="#h3-Similar-Terminals">Similar Terminals</a></li>
<li><a href="#h3-Predefined-Capabilities">Predefined Capabilities</a></li>
<li><a href="#h3-User-Defined-Capabilities">User-Defined Capabilities</a></li>
@@ -2540,10 +2507,11 @@
<li><a href="#h3-Basic-Capabilities">Basic Capabilities</a></li>
<li><a href="#h3-Parameterized-Strings">Parameterized Strings</a></li>
<li><a href="#h3-Cursor-Motions">Cursor Motions</a></li>
+<li><a href="#h3-Margins">Margins</a></li>
<li><a href="#h3-Area-Clears">Area Clears</a></li>
-<li><a href="#h3-Insert_delete-line-and-vertical-motions">Insert/delete line and vertical motions</a></li>
+<li><a href="#h3-Insert_Delete-Line-and-Vertical-Motions">Insert/Delete Line and Vertical Motions</a></li>
<li><a href="#h3-Insert_Delete-Character">Insert/Delete Character</a></li>
-<li><a href="#h3-Highlighting_-Underlining_-and-Visible-Bells">Highlighting, Underlining, and Visible Bells</a></li>
+<li><a href="#h3-Highlighting_Underlining_and-Visible-Bells">Highlighting, Underlining, and Visible Bells</a></li>
<li><a href="#h3-Keypad-and-Function-Keys">Keypad and Function Keys</a></li>
<li><a href="#h3-Tabs-and-Initialization">Tabs and Initialization</a></li>
<li><a href="#h3-Delays-and-Padding">Delays and Padding</a></li>
@@ -2551,15 +2519,15 @@
<li><a href="#h3-Line-Graphics">Line Graphics</a></li>
<li><a href="#h3-Color-Handling">Color Handling</a></li>
<li><a href="#h3-Miscellaneous">Miscellaneous</a></li>
-<li><a href="#h3-Glitches-and-Braindamage">Glitches and Braindamage</a></li>
+<li><a href="#h3-Glitches-and-Brain-Damage">Glitches and Brain Damage</a></li>
<li><a href="#h3-Pitfalls-of-Long-Entries">Pitfalls of Long Entries</a></li>
-<li><a href="#h3-Binary-Compatibility">Binary Compatibility</a></li>
</ul>
</li>
-<li><a href="#h2-EXTENSIONS">EXTENSIONS</a></li>
<li><a href="#h2-FILES">FILES</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
+<li><a href="#h2-EXTENSIONS">EXTENSIONS</a></li>
+<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/tic.1m.html b/doc/html/man/tic.1m.html
index cf74b772d248..e5e6107244cf 100644
--- a/doc/html/man/tic.1m.html
+++ b/doc/html/man/tic.1m.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,32 +27,32 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: tic.1m,v 1.78 2020/12/19 21:32:45 tom Exp @
+ * @Id: tic.1m,v 1.110 2024/04/27 17:57:06 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>tic 1m</TITLE>
+<TITLE>tic 1m 2024-04-27 ncurses 6.5 User commands</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">tic 1m</H1>
+<H1 class="no-header">tic 1m 2024-04-27 ncurses 6.5 User commands</H1>
<PRE>
-<STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG> <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>
+<STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG> User commands <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>tic</STRONG> - the <EM>terminfo</EM> entry-description compiler
+ <STRONG>tic</STRONG> - compile terminal descriptions for <EM>terminfo</EM> or <EM>termcap</EM>
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
- <STRONG>tic</STRONG> [<STRONG>-01CDGIKLNTUVWacfgqrstx</STRONG>] [<STRONG>-e</STRONG> <EM>names</EM>] [<STRONG>-o</STRONG> <EM>dir</EM>] [<STRONG>-Q</STRONG>[<EM>n</EM>]] [<STRONG>-R</STRONG> <EM>subset</EM>]
- [<STRONG>-v</STRONG>[<EM>n</EM>]] [<STRONG>-w</STRONG>[<EM>n</EM>]] <EM>file</EM>
+ <STRONG>tic</STRONG> [<STRONG>-01acCDfgGIKLNqrstTUVWx</STRONG>] [<STRONG>-e</STRONG> <EM>terminal-type-list</EM>] [<STRONG>-o</STRONG> <EM>dir</EM>] [<STRONG>-Q</STRONG>[<EM>n</EM>]]
+ [<STRONG>-R</STRONG> <EM>subset</EM>] [<STRONG>-v</STRONG>[<EM>n</EM>]] [<STRONG>-w</STRONG>[<EM>n</EM>]] <EM>file</EM>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
@@ -84,30 +84,33 @@
in a different terminfo database. There are two ways to achieve this:
<STRONG>o</STRONG> First, you may override the system default either by using the <STRONG>-o</STRONG>
- option, or by setting the variable <STRONG>TERMINFO</STRONG> in your shell
+ option, or by setting the variable <EM>TERMINFO</EM> in your shell
environment to a valid database location.
<STRONG>o</STRONG> Secondly, if <STRONG>tic</STRONG> cannot write in <EM>/usr/share/terminfo</EM> or the
- location specified using your TERMINFO variable, it looks for the
+ location specified using your <EM>TERMINFO</EM> variable, it looks for the
directory <EM>$HOME/.terminfo</EM> (or hashed database <EM>$HOME/.terminfo.db)</EM>;
if that location exists, the entry is placed there.
Libraries that read terminfo entries are expected to check in
succession
- <STRONG>o</STRONG> a location specified with the TERMINFO environment variable,
+ <STRONG>o</STRONG> a location specified with the <EM>TERMINFO</EM> environment variable,
<STRONG>o</STRONG> <EM>$HOME/.terminfo</EM>,
- <STRONG>o</STRONG> directories listed in the TERMINFO_DIRS environment variable,
+ <STRONG>o</STRONG> directories listed in the <EM>TERMINFO</EM><STRONG>_</STRONG><EM>DIRS</EM> environment variable,
- <STRONG>o</STRONG> a compiled-in list of directories (no default value), and
+ <STRONG>o</STRONG> a compiled-in list of directories (/usr/share/terminfo), and
<STRONG>o</STRONG> the system terminfo database (<EM>/usr/share/terminfo</EM>).
+ The <EM>Fetching</EM> <EM>Compiled</EM> <EM>Descriptions</EM> section in the <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> manual
+ goes into further detail.
+
-</PRE><H3><a name="h3-ALIASES">ALIASES</a></H3><PRE>
- This is the same program as infotocap and captoinfo; usually those are
+</PRE><H3><a name="h3-Aliases">Aliases</a></H3><PRE>
+ This is the same program as infotocap and captoinfo; usually those are
linked to, or copied from this program:
<STRONG>o</STRONG> When invoked as infotocap, tic sets the <STRONG>-I</STRONG> option.
@@ -115,101 +118,101 @@
<STRONG>o</STRONG> When invoked as captoinfo, tic sets the <STRONG>-C</STRONG> option.
-</PRE><H3><a name="h3-OPTIONS">OPTIONS</a></H3><PRE>
+</PRE><H2><a name="h2-OPTIONS">OPTIONS</a></H2><PRE>
<STRONG>-0</STRONG> restricts the output to a single line
<STRONG>-1</STRONG> restricts the output to a single column
- <STRONG>-a</STRONG> tells <STRONG>tic</STRONG> to retain commented-out capabilities rather than
- discarding them. Capabilities are commented by prefixing them
- with a period. This sets the <STRONG>-x</STRONG> option, because it treats the
- commented-out entries as user-defined names. If the source is
- termcap, accept the 2-character names required by version 6.
+ <STRONG>-a</STRONG> tells <STRONG>tic</STRONG> to retain commented-out capabilities rather than
+ discarding them. Capabilities are commented by prefixing them
+ with a period. This sets the <STRONG>-x</STRONG> option, because it treats the
+ commented-out entries as user-defined names. If the source is
+ termcap, accept the 2-character names required by version 6.
Otherwise these are ignored.
- <STRONG>-C</STRONG> Force source translation to termcap format. Note: this differs
- from the <STRONG>-C</STRONG> option of <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG> in that it does not merely
+ <STRONG>-C</STRONG> Force source translation to termcap format. Note: this differs
+ from the <STRONG>-C</STRONG> option of <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG> in that it does not merely
translate capability names, but also translates terminfo strings
- to termcap format. Capabilities that are not translatable are
- left in the entry under their terminfo names but commented out
- with two preceding dots. The actual format used incorporates
- some improvements for escaped characters from terminfo format.
+ to termcap format. Capabilities that are not translatable are
+ left in the entry under their terminfo names but commented out
+ with two preceding dots. The actual format used incorporates
+ some improvements for escaped characters from terminfo format.
For a stricter BSD-compatible translation, add the <STRONG>-K</STRONG> option.
- If this is combined with <STRONG>-c</STRONG>, <STRONG>tic</STRONG> makes additional checks to
- report cases where the terminfo values do not have an exact
+ If this is combined with <STRONG>-c</STRONG>, <STRONG>tic</STRONG> makes additional checks to
+ report cases where the terminfo values do not have an exact
equivalent in termcap form. For example:
- <STRONG>o</STRONG> <STRONG>sgr</STRONG> usually will not convert, because termcap lacks the
- ability to work with more than two parameters, and because
- termcap lacks many of the arithmetic/logical operators used
+ <STRONG>o</STRONG> <STRONG>sgr</STRONG> usually will not convert, because termcap lacks the
+ ability to work with more than two parameters, and because
+ termcap lacks many of the arithmetic/logical operators used
in terminfo.
- <STRONG>o</STRONG> capabilities with more than one delay or with delays before
+ <STRONG>o</STRONG> capabilities with more than one delay or with delays before
the end of the string will not convert completely.
- <STRONG>-c</STRONG> tells <STRONG>tic</STRONG> to only check <EM>file</EM> for errors, including syntax
- problems and bad use-links. If you specify <STRONG>-C</STRONG> (<STRONG>-I</STRONG>) with this
- option, the code will print warnings about entries which, after
- use resolution, are more than 1023 (4096) bytes long. Due to a
+ <STRONG>-c</STRONG> tells <STRONG>tic</STRONG> to only check <EM>file</EM> for errors, including syntax
+ problems and bad use-links. If you specify <STRONG>-C</STRONG> (<STRONG>-I</STRONG>) with this
+ option, the code will print warnings about entries which, after
+ use resolution, are more than 1023 (4096) bytes long. Due to a
fixed buffer length in older termcap libraries, as well as buggy
- checking for the buffer length (and a documented limit in
+ checking for the buffer length (and a documented limit in
terminfo), these entries may cause core dumps with other
implementations.
<STRONG>tic</STRONG> checks string capabilities to ensure that those with
- parameters will be valid expressions. It does this check only
- for the predefined string capabilities; those which are defined
+ parameters will be valid expressions. It does this check only
+ for the predefined string capabilities; those which are defined
with the <STRONG>-x</STRONG> option are ignored.
- <STRONG>-D</STRONG> tells <STRONG>tic</STRONG> to print the database locations that it knows about,
+ <STRONG>-D</STRONG> tells <STRONG>tic</STRONG> to print the database locations that it knows about,
and exit. The first location shown is the one to which it would
- write compiled terminal descriptions. If <STRONG>tic</STRONG> is not able to
+ write compiled terminal descriptions. If <STRONG>tic</STRONG> is not able to
find a writable database location according to the rules
- summarized above, it will print a diagnostic and exit with an
+ summarized above, it will print a diagnostic and exit with an
error rather than printing a list of database locations.
- <STRONG>-e</STRONG> <EM>names</EM>
- Limit writes and translations to the following comma-separated
- list of terminals. If any name or alias of a terminal matches
- one of the names in the list, the entry will be written or
+ <STRONG>-e</STRONG> <EM>list</EM>
+ Limit writes and translations to the comma-separated <EM>list</EM> of
+ terminal types. If any name or alias of a terminal matches one
+ of the names in the list, the entry will be written or
translated as normal. Otherwise no output will be generated for
- it. The option value is interpreted as a file containing the
- list if it contains a '/'. (Note: depending on how tic was
+ it. The option value is interpreted as a file containing the
+ list if it contains a '/'. (Note: depending on how tic was
compiled, this option may require <STRONG>-I</STRONG> or <STRONG>-C</STRONG>.)
- <STRONG>-f</STRONG> Display complex terminfo strings which contain
+ <STRONG>-f</STRONG> Display complex terminfo strings which contain
if/then/else/endif expressions indented for readability.
- <STRONG>-G</STRONG> Display constant literals in decimal form rather than their
+ <STRONG>-G</STRONG> Display constant literals in decimal form rather than their
character equivalents.
- <STRONG>-g</STRONG> Display constant character literals in quoted form rather than
+ <STRONG>-g</STRONG> Display constant character literals in quoted form rather than
their decimal equivalents.
<STRONG>-I</STRONG> Force source translation to terminfo format.
- <STRONG>-K</STRONG> Suppress some longstanding ncurses extensions to termcap format,
+ <STRONG>-K</STRONG> Suppress some longstanding <EM>ncurses</EM> extensions to termcap format,
e.g., "\s" for space.
- <STRONG>-L</STRONG> Force source translation to terminfo format using the long C
+ <STRONG>-L</STRONG> Force source translation to terminfo format using the long C
variable names listed in &lt;<STRONG>term.h</STRONG>&gt;
<STRONG>-N</STRONG> Disable smart defaults. Normally, when translating from termcap
- to terminfo, the compiler makes a number of assumptions about
- the defaults of string capabilities <STRONG>reset1_string</STRONG>,
- <STRONG>carriage_return</STRONG>, <STRONG>cursor_left</STRONG>, <STRONG>cursor_down</STRONG>, <STRONG>scroll_forward</STRONG>, <STRONG>tab</STRONG>,
+ to terminfo, the compiler makes a number of assumptions about
+ the defaults of string capabilities <STRONG>reset1_string</STRONG>,
+ <STRONG>carriage_return</STRONG>, <STRONG>cursor_left</STRONG>, <STRONG>cursor_down</STRONG>, <STRONG>scroll_forward</STRONG>, <STRONG>tab</STRONG>,
<STRONG>newline</STRONG>, <STRONG>key_backspace</STRONG>, <STRONG>key_left</STRONG>, and <STRONG>key_down</STRONG>, then attempts to
- use obsolete termcap capabilities to deduce correct values. It
+ use obsolete termcap capabilities to deduce correct values. It
also normally suppresses output of obsolete termcap capabilities
- such as <STRONG>bs</STRONG>. This option forces a more literal translation that
+ such as <STRONG>bs</STRONG>. This option forces a more literal translation that
also preserves the obsolete capabilities.
- <STRONG>-o</STRONG><EM>dir</EM> Write compiled entries to given database location. Overrides
- the TERMINFO environment variable.
+ <STRONG>-o</STRONG><EM>dir</EM> Write compiled entries to given database location. Overrides
+ the <EM>TERMINFO</EM> environment variable.
- <STRONG>-Q</STRONG><EM>n</EM> Rather than show source in terminfo (text) format, print the
- compiled (binary) format in hexadecimal or base64 form,
+ <STRONG>-Q</STRONG><EM>n</EM> Rather than show source in terminfo (text) format, print the
+ compiled (binary) format in hexadecimal or base64 form,
depending on the option's value:
1 hexadecimal
@@ -222,194 +225,135 @@
source.
<STRONG>-R</STRONG><EM>subset</EM>
- Restrict output to a given subset. This option is for use with
- archaic versions of terminfo like those on SVr1, Ultrix, or
- HP/UX that do not support the full set of SVR4/XSI Curses
- terminfo; and outright broken ports like AIX 3.x that have their
- own extensions incompatible with SVr4/XSI. Available subsets
- are "SVr1", "Ultrix", "HP", "BSD" and "AIX"; see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> for
- details.
-
- <STRONG>-r</STRONG> Force entry resolution (so there are no remaining tc
- capabilities) even when doing translation to termcap format.
- This may be needed if you are preparing a termcap file for a
- termcap library (such as GNU termcap through version 1.3 or BSD
+ Restrict output to a given subset. This option is for use with
+ archaic versions of terminfo like those on SVr1, Ultrix, or HP-
+ UX that do not support the full set of SVR4/XSI Curses terminfo;
+ and outright broken ports like AIX 3.x that have their own
+ extensions incompatible with SVr4/XSI.
+
+ Available subsets are
+ "SVr1", "Ultrix", "HP", "BSD", and "AIX"
+
+ See <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> for details.
+
+ <STRONG>-r</STRONG> Force entry resolution (so there are no remaining tc
+ capabilities) even when doing translation to termcap format.
+ This may be needed if you are preparing a termcap file for a
+ termcap library (such as GNU termcap through version 1.3 or BSD
termcap through 4.3BSD) that does not handle multiple tc
capabilities per entry.
- <STRONG>-s</STRONG> Summarize the compile by showing the database location into
- which entries are written, and the number of entries which are
+ <STRONG>-s</STRONG> Summarize the compile by showing the database location into
+ which entries are written, and the number of entries which are
compiled.
- <STRONG>-T</STRONG> eliminates size-restrictions on the generated text. This is
- mainly useful for testing and analysis, since the compiled
- descriptions are limited (e.g., 1023 for termcap, 4096 for
+ <STRONG>-T</STRONG> eliminates size-restrictions on the generated text. This is
+ mainly useful for testing and analysis, since the compiled
+ descriptions are limited (e.g., 1023 for termcap, 4096 for
terminfo).
- <STRONG>-t</STRONG> tells <STRONG>tic</STRONG> to discard commented-out capabilities. Normally when
- translating from terminfo to termcap, untranslatable
+ <STRONG>-t</STRONG> tells <STRONG>tic</STRONG> to discard commented-out capabilities. Normally when
+ translating from terminfo to termcap, untranslatable
capabilities are commented-out.
- <STRONG>-U</STRONG> tells <STRONG>tic</STRONG> to not post-process the data after parsing the source
- file. Normally, it infers data which is commonly missing in older
- terminfo data, or in termcaps.
+ <STRONG>-U</STRONG> tells <STRONG>tic</STRONG> to not post-process the data after parsing the source
+ file. Normally, it infers data which is commonly missing in
+ older terminfo data, or in termcaps.
+
+ <STRONG>-V</STRONG> reports the version of <EM>ncurses</EM> which was used in this program,
+ and exits.
- <STRONG>-V</STRONG> reports the version of ncurses which was used in this program, and
- exits.
+ <STRONG>-v</STRONG><EM>n</EM> specifies that (verbose) output be written to standard error
+ trace information showing <STRONG>tic</STRONG>'s progress.
- <STRONG>-v</STRONG><EM>n</EM> specifies that (verbose) output be written to standard error trace
- information showing <STRONG>tic</STRONG>'s progress.
+ The optional parameter <EM>n</EM> is a number from 1 to 9, inclusive,
+ indicating the desired level of detail of information.
- The optional parameter <EM>n</EM> is a number from 1 to 10, inclusive,
- indicating the desired level of detail of information. If ncurses
- is built without tracing support, the optional parameter is
- ignored. If <EM>n</EM> is omitted, the default level is 1. If <EM>n</EM> is
- specified and greater than 1, the level of detail is increased.
+ <STRONG>o</STRONG> If <EM>ncurses</EM> is built without tracing support, the optional
+ parameter is ignored.
- The debug flag levels are as follows:
+ <STRONG>o</STRONG> If <EM>n</EM> is omitted, the default level is 1.
- 1 Names of files created and linked
+ <STRONG>o</STRONG> If <EM>n</EM> is specified and greater than 1, the level of detail is
+ increased, and the output is written (with tracing
+ information) to the "trace" file.
- 2 Information related to the "use" facility
+ The debug flag levels are as follows:
- 3 Statistics from the hashing algorithm
+ 1 Names of files created and linked
- 5 String-table memory allocations
+ 2 Information related to the "use" facility
- 7 Entries into the string-table
+ 3 Statistics from the hashing algorithm
- 8 List of tokens encountered by scanner
+ 4 Details of extended capabilities
- 9 All values computed in construction of the hash table
+ 5 (unused)
- If the debug level <EM>n</EM> is not given, it is taken to be one.
+ 6 (unused)
- <STRONG>-W</STRONG> By itself, the <STRONG>-w</STRONG> option will not force long strings to be
- wrapped. Use the <STRONG>-W</STRONG> option to do this.
+ 7 Entries into the string-table
- If you specify both <STRONG>-f</STRONG> and <STRONG>-W</STRONG> options, the latter is ignored when
- <STRONG>-f</STRONG> has already split the line.
+ 8 List of tokens encountered by scanner
- <STRONG>-w</STRONG><EM>n</EM> specifies the width of the output. The parameter is optional. If
- it is omitted, it defaults to 60.
+ 9 All values computed in construction of the hash table
- <STRONG>-x</STRONG> Treat unknown capabilities as user-defined (see <STRONG>user_caps(5)</STRONG>).
- That is, if you supply a capability name which <STRONG>tic</STRONG> does not
- recognize, it will infer its type (boolean, number or string) from
- the syntax and make an extended table entry for that. User-
- defined capability strings whose name begins with "k" are treated
- as function keys.
+ <STRONG>-W</STRONG> By itself, the <STRONG>-w</STRONG> option will not force long strings to be
+ wrapped. Use the <STRONG>-W</STRONG> option to do this.
+ If you specify both <STRONG>-f</STRONG> and <STRONG>-W</STRONG> options, the latter is ignored
+ when <STRONG>-f</STRONG> has already split the line.
-</PRE><H3><a name="h3-PARAMETERS">PARAMETERS</a></H3><PRE>
- <EM>file</EM> contains one or more <STRONG>terminfo</STRONG> terminal descriptions in source
- format [see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>]. Each description in the file
+ <STRONG>-w</STRONG><EM>n</EM> specifies the width of the output. The parameter is optional.
+ If it is omitted, it defaults to 60.
+
+ <STRONG>-x</STRONG> Treat unknown capabilities as user-defined (see <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>).
+ That is, if you supply a capability name which <STRONG>tic</STRONG> does not
+ recognize, it will infer its type (Boolean, number or string)
+ from the syntax and make an extended table entry for that.
+ User-defined capability strings whose name begins with "k" are
+ treated as function keys.
+
+
+</PRE><H3><a name="h3-Parameters">Parameters</a></H3><PRE>
+ <EM>file</EM> contains one or more <STRONG>terminfo</STRONG> terminal descriptions in source
+ format [see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>]. Each description in the file
describes the capabilities of a particular terminal.
- If <EM>file</EM> is "-", then the data is read from the standard input.
+ If <EM>file</EM> is "-", then the data is read from the standard input.
The <EM>file</EM> parameter may also be the path of a character-device.
-</PRE><H3><a name="h3-PROCESSING">PROCESSING</a></H3><PRE>
- All but one of the capabilities recognized by <STRONG>tic</STRONG> are documented in
+</PRE><H3><a name="h3-Processing">Processing</a></H3><PRE>
+ All but one of the capabilities recognized by <STRONG>tic</STRONG> are documented in
<STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>. The exception is the <STRONG>use</STRONG> capability.
When a <STRONG>use</STRONG>=<EM>entry</EM>-<EM>name</EM> field is discovered in a terminal entry currently
- being compiled, <STRONG>tic</STRONG> reads in the binary from <STRONG>/usr/share/terminfo</STRONG> to
- complete the entry. (Entries created from <EM>file</EM> will be used first.
- <STRONG>tic</STRONG> duplicates the capabilities in <EM>entry</EM>-<EM>name</EM> for the current entry,
+ being compiled, <STRONG>tic</STRONG> reads in the binary from <STRONG>/usr/share/terminfo</STRONG> to
+ complete the entry. (Entries created from <EM>file</EM> will be used first.
+ <STRONG>tic</STRONG> duplicates the capabilities in <EM>entry</EM>-<EM>name</EM> for the current entry,
with the exception of those capabilities that explicitly are defined in
the current entry.
- When an entry, e.g., <STRONG>entry_name_1</STRONG>, contains a <STRONG>use=</STRONG><EM>entry</EM>_<EM>name</EM>_<EM>2</EM> field,
- any canceled capabilities in <EM>entry</EM>_<EM>name</EM>_<EM>2</EM> must also appear in
- <STRONG>entry_name_1</STRONG> before <STRONG>use=</STRONG> for these capabilities to be canceled in
+ When an entry, e.g., <STRONG>entry_name_1</STRONG>, contains a <STRONG>use=</STRONG><EM>entry</EM>_<EM>name</EM>_<EM>2</EM> field,
+ any canceled capabilities in <EM>entry</EM>_<EM>name</EM>_<EM>2</EM> must also appear in
+ <STRONG>entry_name_1</STRONG> before <STRONG>use=</STRONG> for these capabilities to be canceled in
<STRONG>entry_name_1</STRONG>.
- Total compiled entries cannot exceed 4096 bytes. The name field cannot
- exceed 512 bytes. Terminal names exceeding the maximum alias length
- (32 characters on systems with long filenames, 14 characters otherwise)
- will be truncated to the maximum alias length and a warning message
- will be printed.
-
-
-</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
- System V Release 2 provided a <STRONG>tic</STRONG> utility. It accepted a single
- option: <STRONG>-v</STRONG> (optionally followed by a number). According to Ross
- Ridge's comment in <EM>mytinfo</EM>, this version of <STRONG>tic</STRONG> was unable to represent
- cancelled capabilities.
-
- System V Release 3 provided a different <STRONG>tic</STRONG> utility, written by Pavel
- Curtis, (originally named "compile" in <EM>pcurses</EM>). This added an option
- <STRONG>-c</STRONG> to check the file for errors, with the caveat that errors in "use="
- links would not be reported. System V Release 3 documented a few
- warning messages which did not appear in <EM>pcurses</EM>. While the program
- itself was changed little as development continued with System V
- Release 4, the table of capabilities grew from 180 (<EM>pcurses</EM>) to 464
- (Solaris).
-
- In early development of ncurses (1993), Zeyd Ben-Halim used the table
- from <EM>mytinfo</EM> to extend the <EM>pcurses</EM> table to 469 capabilities (456
- matched SVr4, 8 were only in SVr4, 13 were not in SVr4). Of those 13,
- 11 were ultimately discarded (perhaps to match the draft of X/Open
- Curses). The exceptions were <STRONG>memory_lock_above</STRONG> and <STRONG>memory_unlock</STRONG> (see
- <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>).
-
- Eric Raymond incorporated parts of <EM>mytinfo</EM> into ncurses to implement
- the termcap-to-terminfo source conversion, and extended that to begin
- development of the corresponding terminfo-to-termcap source conversion,
- Thomas Dickey completed that development over the course of several
- years.
-
- In 1999, Thomas Dickey added the <STRONG>-x</STRONG> option to support user-defined
- capabilities.
-
- In 2010, Roy Marples provided a <STRONG>tic</STRONG> program and terminfo library for
- NetBSD. That implementation adapts several features from ncurses,
- including <STRONG>tic</STRONG>'s <STRONG>-x</STRONG> option.
-
- The <STRONG>-c</STRONG> option tells <STRONG>tic</STRONG> to check for problems in the terminfo source
- file. Continued development provides additional checks:
-
- <STRONG>o</STRONG> <EM>pcurses</EM> had 8 warnings
-
- <STRONG>o</STRONG> ncurses in 1996 had 16 warnings
-
- <STRONG>o</STRONG> Solaris (SVr4) curses has 28 warnings
-
- <STRONG>o</STRONG> NetBSD tic in 2019 has 19 warnings.
-
- <STRONG>o</STRONG> ncurses in 2019 has 96 warnings
-
- The checking done in ncurses' <STRONG>tic</STRONG> helps with the conversion to termcap,
- as well as pointing out errors and inconsistencies. It is also used to
- ensure consistency with the user-defined capabilities. There are 527
- distinct capabilities in ncurses' terminal database; 128 of those are
- user-defined.
+ Total compiled entries cannot exceed 4096 bytes in the legacy storage
+ format, or 32768 using the extended number format. The name field
+ cannot exceed 512 bytes. Terminal names exceeding the maximum alias
+ length (32 characters on systems with long filenames, 14 characters
+ otherwise) will be truncated to the maximum alias length and a warning
+ message will be printed.
-</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- X/Open Curses, Issue 7 (2009) provides a brief description of <STRONG>tic</STRONG>. It
- lists one option: <STRONG>-c</STRONG>. The omission of <STRONG>-v</STRONG> is unexpected. The change
- history states that the description is derived from True64 UNIX.
- According to its manual pages, that system also supported the <STRONG>-v</STRONG>
- option.
-
- Shortly after Issue 7 was released, Tru64 was discontinued. As of
- 2019, the surviving implementations of <STRONG>tic</STRONG> are SVr4 (AIX, HP-UX and
- Solaris), ncurses and NetBSD curses. The SVr4 <STRONG>tic</STRONG> programs all support
- the <STRONG>-v</STRONG> option. The NetBSD <STRONG>tic</STRONG> program follows X/Open's documentation,
- omitting the <STRONG>-v</STRONG> option.
-
- The X/Open rationale states that some implementations of <STRONG>tic</STRONG> read
- terminal descriptions from the standard input if the <EM>file</EM> parameter is
- omitted. None of these implementations do that. Further, it comments
- that some may choose to read from "./terminfo.src" but that is
- obsolescent behavior from SVr2, and is not (for example) a documented
- feature of SVr3.
+</PRE><H2><a name="h2-FILES">FILES</a></H2><PRE>
+ <EM>/usr/share/terminfo</EM>
+ compiled terminal description database
-</PRE><H3><a name="h3-COMPATIBILITY">COMPATIBILITY</a></H3><PRE>
+</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
There is some evidence that historic <STRONG>tic</STRONG> implementations treated
description fields with no whitespace in them as additional aliases or
short names. This <STRONG>tic</STRONG> does not do that, but it does warn when
@@ -417,7 +361,7 @@
characters.
-</PRE><H3><a name="h3-EXTENSIONS">EXTENSIONS</a></H3><PRE>
+</PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
Unlike the SVr4 <STRONG>tic</STRONG> command, this implementation can actually compile
termcap sources. In fact, entries in terminfo and termcap syntax can
be mixed in a single source file. See <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> for the list of
@@ -426,7 +370,7 @@
The SVr4 manual pages are not clear on the resolution rules for <STRONG>use</STRONG>
capabilities. This implementation of <STRONG>tic</STRONG> will find <STRONG>use</STRONG> targets
anywhere in the source file, or anywhere in the file tree rooted at
- <STRONG>TERMINFO</STRONG> (if <STRONG>TERMINFO</STRONG> is defined), or in the user's <EM>$HOME/.terminfo</EM>
+ <EM>TERMINFO</EM> (if <EM>TERMINFO</EM> is defined), or in the user's <EM>$HOME/.terminfo</EM>
database (if it exists), or (finally) anywhere in the system's file
tree of compiled entries.
@@ -439,7 +383,7 @@
<STRONG>-0</STRONG> <STRONG>-1</STRONG> <STRONG>-C</STRONG> <STRONG>-G</STRONG> <STRONG>-I</STRONG> <STRONG>-N</STRONG> <STRONG>-R</STRONG> <STRONG>-T</STRONG> <STRONG>-V</STRONG> <STRONG>-a</STRONG> <STRONG>-e</STRONG> <STRONG>-f</STRONG> <STRONG>-g</STRONG> <STRONG>-o</STRONG> <STRONG>-r</STRONG> <STRONG>-s</STRONG> <STRONG>-t</STRONG> <STRONG>-x</STRONG>
- <STRONG>o</STRONG> The NetBSD <STRONG>tic</STRONG> supports a few of the ncurses options
+ <STRONG>o</STRONG> The NetBSD <STRONG>tic</STRONG> supports a few of the <EM>ncurses</EM> options
<STRONG>-a</STRONG> <STRONG>-o</STRONG> <STRONG>-x</STRONG>
@@ -449,28 +393,96 @@
The SVr4 <STRONG>-c</STRONG> mode does not report bad "use=" links.
System V does not compile entries to or read entries from your
- <EM>$HOME/.terminfo</EM> database unless TERMINFO is explicitly set to it.
+ <EM>$HOME/.terminfo</EM> database unless <EM>TERMINFO</EM> is explicitly set to it.
-</PRE><H2><a name="h2-FILES">FILES</a></H2><PRE>
- <STRONG>/usr/share/terminfo/?/*</STRONG>
- Compiled terminal description database.
+</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
+ X/Open Curses, Issue 7 (2009) provides a brief description of <STRONG>tic</STRONG>. It
+ lists one option: <STRONG>-c</STRONG>. The omission of <STRONG>-v</STRONG> is unexpected. The change
+ history states that the description is derived from Tru64. According
+ to its manual pages, that system also supported the <STRONG>-v</STRONG> option.
+ Shortly after Issue 7 was released, Tru64 was discontinued. As of
+ 2019, the surviving implementations of <STRONG>tic</STRONG> are SVr4 (AIX, HP-UX and
+ Solaris), <EM>ncurses</EM> and NetBSD curses. The SVr4 <STRONG>tic</STRONG> programs all support
+ the <STRONG>-v</STRONG> option. The NetBSD <STRONG>tic</STRONG> program follows X/Open's documentation,
+ omitting the <STRONG>-v</STRONG> option.
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>, <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,
- <STRONG><A HREF="term.5.html">term(5)</A></STRONG>. <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>. <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>.
+ The X/Open rationale states that some implementations of <STRONG>tic</STRONG> read
+ terminal descriptions from the standard input if the <EM>file</EM> parameter is
+ omitted. None of these implementations do that. Further, it comments
+ that some may choose to read from "./terminfo.src" but that is
+ obsolescent behavior from SVr2, and is not (for example) a documented
+ feature of SVr3.
+
+
+</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
+ System V Release 2 provided a <STRONG>tic</STRONG> utility. It accepted a single
+ option: <STRONG>-v</STRONG> (optionally followed by a number). According to Ross
+ Ridge's comment in <EM>mytinfo</EM>, this version of <STRONG>tic</STRONG> was unable to represent
+ cancelled capabilities.
- This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210109).
+ System V Release 3 provided a different <STRONG>tic</STRONG> utility, written by Pavel
+ Curtis, (originally named "compile" in <EM>pcurses</EM>). This added an option
+ <STRONG>-c</STRONG> to check the file for errors, with the caveat that errors in "use="
+ links would not be reported. System V Release 3 documented a few
+ warning messages which did not appear in <EM>pcurses</EM>. While the program
+ itself was changed little as development continued with System V
+ Release 4, the table of capabilities grew from 180 (<EM>pcurses</EM>) to 464
+ (Solaris).
+ In early development of <EM>ncurses</EM> (1993), Zeyd Ben-Halim used the table
+ from <EM>mytinfo</EM> to extend the <EM>pcurses</EM> table to 469 capabilities (456
+ matched SVr4, 8 were only in SVr4, 13 were not in SVr4). Of those 13,
+ 11 were ultimately discarded (perhaps to match the draft of X/Open
+ Curses). The exceptions were <STRONG>memory_lock_above</STRONG> and <STRONG>memory_unlock</STRONG> (see
+ <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>).
-</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
+ Eric Raymond incorporated parts of <EM>mytinfo</EM> into <EM>ncurses</EM> to implement
+ the termcap-to-terminfo source conversion, and extended that to begin
+ development of the corresponding terminfo-to-termcap source conversion,
+ Thomas Dickey completed that development over the course of several
+ years.
+
+ In 1999, Thomas Dickey added the <STRONG>-x</STRONG> option to support user-defined
+ capabilities.
+
+ In 2010, Roy Marples provided a <STRONG>tic</STRONG> program and terminfo library for
+ NetBSD. That implementation adapts several features from <EM>ncurses</EM>,
+ including <STRONG>tic</STRONG>'s <STRONG>-x</STRONG> option.
+
+ The <STRONG>-c</STRONG> option tells <STRONG>tic</STRONG> to check for problems in the terminfo source
+ file. Continued development provides additional checks:
+
+ <STRONG>o</STRONG> <EM>pcurses</EM> had 8 warnings
+
+ <STRONG>o</STRONG> <EM>ncurses</EM> in 1996 had 16 warnings
+
+ <STRONG>o</STRONG> Solaris (SVr4) curses has 28 warnings
+
+ <STRONG>o</STRONG> NetBSD tic in 2019 has 19 warnings.
+
+ <STRONG>o</STRONG> <EM>ncurses</EM> in 2019 has 96 warnings
+
+ The checking done in <EM>ncurses</EM>' <STRONG>tic</STRONG> helps with the conversion to termcap,
+ as well as pointing out errors and inconsistencies. It is also used to
+ ensure consistency with the user-defined capabilities. There are 527
+ distinct capabilities in <EM>ncurses</EM>' terminal database; 128 of those are
+ user-defined.
+
+
+</PRE><H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
Eric S. Raymond &lt;esr@snark.thyrsus.com&gt; and
Thomas E. Dickey &lt;dickey@invisible-island.net&gt;
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>, <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,
+ <STRONG><A HREF="term.5.html">term(5)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>, <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>
+
+
- <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>
+ncurses 6.5 2024-04-27 <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -478,22 +490,22 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
<ul>
-<li><a href="#h3-ALIASES">ALIASES</a></li>
-<li><a href="#h3-OPTIONS">OPTIONS</a></li>
-<li><a href="#h3-PARAMETERS">PARAMETERS</a></li>
-<li><a href="#h3-PROCESSING">PROCESSING</a></li>
+<li><a href="#h3-Aliases">Aliases</a></li>
</ul>
</li>
-<li><a href="#h2-HISTORY">HISTORY</a></li>
-<li><a href="#h2-PORTABILITY">PORTABILITY</a>
+<li><a href="#h2-OPTIONS">OPTIONS</a>
<ul>
-<li><a href="#h3-COMPATIBILITY">COMPATIBILITY</a></li>
-<li><a href="#h3-EXTENSIONS">EXTENSIONS</a></li>
+<li><a href="#h3-Parameters">Parameters</a></li>
+<li><a href="#h3-Processing">Processing</a></li>
</ul>
</li>
<li><a href="#h2-FILES">FILES</a></li>
+<li><a href="#h2-NOTES">NOTES</a></li>
+<li><a href="#h2-EXTENSIONS">EXTENSIONS</a></li>
+<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
+<li><a href="#h2-HISTORY">HISTORY</a></li>
+<li><a href="#h2-AUTHORS">AUTHORS</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-AUTHOR">AUTHOR</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/toe.1m.html b/doc/html/man/toe.1m.html
index aa8d8b0edb10..c3aca2c592fd 100644
--- a/doc/html/man/toe.1m.html
+++ b/doc/html/man/toe.1m.html
@@ -1,6 +1,7 @@
-<!--
+<!--
+ * t
****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2023,2024 Thomas E. Dickey *
* Copyright 1998-2015,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,132 +28,108 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: toe.1m,v 1.33 2020/12/19 21:52:09 tom Exp @
+ * @Id: toe.1m,v 1.68 2024/04/20 18:59:26 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>toe 1m</TITLE>
+<TITLE>toe 1m 2024-04-20 ncurses 6.5 User commands</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">toe 1m</H1>
+<H1 class="no-header">toe 1m 2024-04-20 ncurses 6.5 User commands</H1>
<PRE>
-<STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG> <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG>
+<STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG> User commands <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>toe</STRONG> - table of (terminfo) entries
+ <STRONG>toe</STRONG> - list table of entries of <EM>terminfo</EM> terminal types
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
- <STRONG>toe</STRONG> [<STRONG>-v</STRONG>[<EM>n</EM>]] [<STRONG>-ahsuUV</STRONG>] <EM>file...</EM>
+ <STRONG>toe</STRONG> [<STRONG>-ahs</STRONG>] [<STRONG>-v</STRONG> [<EM>n</EM>]] [<EM>directory</EM> ...]
+
+ <STRONG>toe</STRONG> [<STRONG>-u</STRONG>|<STRONG>-U</STRONG>] <EM>file</EM>
+
+ <STRONG>toe</STRONG> <STRONG>-V</STRONG>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- With no options, <STRONG>toe</STRONG> lists all available terminal types by primary name
- with descriptions. File arguments specify the directories to be
- scanned; if no such arguments are given, your default terminfo
- directory is scanned. If you also specify the <STRONG>-h</STRONG> option, a directory
- header will be issued as each directory is entered.
+ <STRONG>toe</STRONG> reports to the standard output stream the (primary) names and
+ descriptions of the terminal types available to the <EM>terminfo</EM> library.
+ Each <EM>directory</EM> is scanned; if none are given, <STRONG>toe</STRONG> scans the default
+ <EM>terminfo</EM> directory.
- There are other options intended for use by terminfo file maintainers:
- <STRONG>-a</STRONG> report on all of the terminal databases which ncurses would
- search, rather than only the first one that it finds.
+</PRE><H2><a name="h2-OPTIONS">OPTIONS</a></H2><PRE>
+ The <STRONG>-h</STRONG> option can be helpful to observe where <STRONG>toe</STRONG> is looking for
+ terminal descriptions. Other options support maintainers of <EM>terminfo</EM>
+ terminal descriptions.
- If the <STRONG>-s</STRONG> is also given, <STRONG>toe</STRONG> adds a column to the report,
- showing (like <STRONG>conflict(1)</STRONG>) which entries which belong to a given
- terminal database. An "*" marks entries which differ, and "+"
- marks equivalent entries.
+ <STRONG>-a</STRONG> lists entries from all terminal database directories that
+ <EM>terminfo</EM> would search, instead of only the first that it
+ finds.
- Without the <STRONG>-s</STRONG> option, <STRONG>toe</STRONG> does not attempt to merge duplicates
- in its report
+ If <STRONG>-s</STRONG> is also given, <STRONG>toe</STRONG> additionally reports, like
+ <STRONG>conflict(1)</STRONG>, which entries correspond to a given terminal
+ database. An "*" marks entries that differ, and "+" marks
+ equivalent entries.
- <STRONG>-s</STRONG> sort the output by the entry names.
+ Without the <STRONG>-s</STRONG> option, <STRONG>toe</STRONG> does not attempt to merge
+ duplicates in its report.
- <STRONG>-u</STRONG> <EM>file</EM>
- says to write a report to the standard output, listing
- dependencies in the given terminfo/termcap source file. The
- report condenses the "use" relation: each line consists of the
- primary name of a terminal that has use capabilities, followed
- by a colon, followed by the whitespace-separated primary names
- of all terminals which occur in those use capabilities, followed
- by a newline
+ <STRONG>-h</STRONG> writes a heading naming each each directory as it is accessed.
- <STRONG>-U</STRONG> <EM>file</EM>
- says to write a report to the standard output, listing reverse
- dependencies in the given terminfo/termcap source file. The
- report reverses the "use" relation: each line consists of the
- primary name of a terminal that occurs in use capabilities,
- followed by a colon, followed by the whitespace-separated
- primary names of all terminals which depend on it, followed by a
- newline.
+ <STRONG>-s</STRONG> sorts the output by the entry names.
- <STRONG>-v</STRONG><EM>n</EM> specifies that (verbose) output be written to standard error,
- showing <STRONG>toe</STRONG>'s progress.
+ <STRONG>-u</STRONG> <EM>file</EM> lists terminal type dependencies in <EM>file</EM>, a <EM>terminfo</EM> entry
+ source or <EM>termcap</EM> database file. The report summarizes the
+ "<STRONG>use</STRONG>" (<EM>terminfo</EM>) and <STRONG>tc</STRONG> (<EM>termcap</EM>) relations: each line
+ comprises the primary name of a terminal type employing <STRONG>use</STRONG>/<STRONG>tc</STRONG>
+ capabilities, a colon, a space- and tab-separated list of
+ primary names of terminal types thus named, and a newline.
- The optional parameter <EM>n</EM> is a number from 1 to 10, interpreted
- as for <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>. If ncurses is built without tracing support,
- the optional parameter is ignored.
+ <STRONG>-U</STRONG> <EM>file</EM> lists terminal type reverse dependencies in <EM>file</EM>, a <EM>terminfo</EM>
+ entry source or <EM>termcap</EM> database file. The report summarizes
+ the "<STRONG>use</STRONG>" (<EM>terminfo</EM>) and <STRONG>tc</STRONG> (<EM>termcap</EM>) reverse relations: each
+ line comprises the primary name of a terminal type occurring
+ in <STRONG>use</STRONG>/<STRONG>tc</STRONG> capabilities, a colon, a space- and tab-separated
+ list of primary names of terminal types naming them thus, and
+ a newline.
- <STRONG>-V</STRONG> reports the version of ncurses which was used in this program,
- and exits.
+ <STRONG>-v</STRONG> [<EM>n</EM>] reports verbose status information to the standard error
+ stream, showing <STRONG>toe</STRONG>'s progress.
+ The optional parameter <EM>n</EM> is an integer between 1 and 10
+ inclusive, interpreted as for <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>. If <EM>ncurses</EM> is built
+ without tracing support, <EM>n</EM> is ignored.
-</PRE><H2><a name="h2-EXAMPLES">EXAMPLES</a></H2><PRE>
- Without sorting, the <STRONG>-a</STRONG> option reports all of the names found in all of
- the terminal databases found by the <STRONG>TERMINFO</STRONG> and <STRONG>TERMINFO_DIRS</STRONG>
- environment variables:
-
- MtxOrb162 16x2 Matrix Orbital LCD display
- MtxOrb204 20x4 Matrix Orbital LCD display
- MtxOrb Generic Matrix Orbital LCD display
- qvt101+ qume qvt 101 PLUS product
- qvt119+-25 QVT 119 PLUS with 25 data lines
- qansi-g QNX ANSI
- qvt103 qume qvt 103
- qnxw QNX4 windows
- qansi-w QNX ansi for windows
- qnxm QNX4 with mouse events
- qvt203-25-w QVT 203 PLUS with 25 by 132 columns
- qansi-t QNX ansi without console writes
- . . .
-
- Use the <STRONG>-a</STRONG> and <STRONG>-s</STRONG> options together to show where each terminal
- description was found:
-
- --&gt; /usr/local/ncurses/share/terminfo
- ----&gt; /usr/share/terminfo
- *-+-: 9term Plan9 terminal emulator for X
- *---: Eterm Eterm with xterm-style color support (X Window System)
- *-*-: Eterm-256color Eterm with xterm 256-colors
- *-*-: Eterm-88color Eterm with 88 colors
- *-+-: MtxOrb Generic Matrix Orbital LCD display
- *-+-: MtxOrb162 16x2 Matrix Orbital LCD display
- *-+-: MtxOrb204 20x4 Matrix Orbital LCD display
- *-*-: NCR260VT300WPP NCR 2900_260 vt300 wide mode pc+ kybd
- *-+-: aaa ann arbor ambassador/30 lines
- *-+-: aaa+dec ann arbor ambassador in dec vt100 mode
- *-+-: aaa+rv ann arbor ambassador in reverse video
- . . .
+ <STRONG>-V</STRONG> reports the version of <EM>ncurses</EM> associated with this program
+ and exits with a successful status.
</PRE><H2><a name="h2-FILES">FILES</a></H2><PRE>
- <STRONG>/usr/share/terminfo/?/*</STRONG>
- Compiled terminal description database.
+ <EM>/usr/share/terminfo</EM>
+ compiled terminal description database
+
+
+</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
+ <STRONG>toe</STRONG> is not provided by other implementations. There is no applicable
+ X/Open or POSIX standard for it.
</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
- This utility is not provided by other implementations. There is no
- relevant X/Open or POSIX standard for <STRONG>toe</STRONG>.
+ <STRONG>toe</STRONG> replaces a <STRONG>-T</STRONG> option that was briefly supported by the <EM>ncurses</EM>
+ <STRONG>infocmp</STRONG> utility in 1995.
- The program name refers to a developer's pun:
+ The <STRONG>-a</STRONG> and <STRONG>-s</STRONG> options were added in 2006 and 2011, respectively.
+
+ The program's name originates with a developer's pun:
<STRONG>o</STRONG> <STRONG>tic</STRONG>,
@@ -160,31 +137,66 @@
<STRONG>o</STRONG> <STRONG>toe</STRONG>.
- It replaced a <STRONG>-T</STRONG> option which was briefly supported by the ncurses
- <STRONG>infocmp</STRONG> utility in 1995.
- The <STRONG>-a</STRONG> and <STRONG>-s</STRONG> options were added to <STRONG>toe</STRONG> several years later (2006 and
- 2011, respectively).
+</PRE><H2><a name="h2-EXAMPLES">EXAMPLES</a></H2><PRE>
+ When not sorting with the <STRONG>-s</STRONG> option, the <STRONG>-a</STRONG> option reports all of the
+ names found in all of the terminal database directories named in the
+ <EM>TERMINFO</EM> and <EM>TERMINFO</EM><STRONG>_</STRONG><EM>DIRS</EM> environment variables.
+
+ xterm-color generic color xterm
+ xterm-xfree86 xterm terminal emulator (XFree86)
+ xterm-vt220 xterm emulating vt220
+ xterm-256color xterm with 256 colors
+ xterm-r6 xterm X11R6 version
+ xterm-r5 xterm R5 version
+ xterm-mono monochrome xterm
+ xterm xterm terminal emulator (X Window System)
+ vt220 dec vt220
+ vt102 dec vt102
+ vt100 dec vt100 (w/advanced video)
+ vt52 dec vt52
+ ...
+
+ Use the <STRONG>-a</STRONG> and <STRONG>-s</STRONG> options together to show where each terminal
+ description was found.
+
+ --&gt; /etc/terminfo
+ ----&gt; /lib/terminfo
+ ------&gt; /usr/share/terminfo
+
+ --*---: vt100 dec vt100 (w/advanced video)
+ --*---: vt102 dec vt102
+ --*---: vt220 dec vt220
+ --*---: vt52 dec vt52
+ --*---: xterm xterm terminal emulator (X Window System)
+ --*---: xterm-256color xterm with 256 colors
+ --*---: xterm-color generic color xterm
+ --*---: xterm-mono monochrome xterm
+ --*---: xterm-r5 xterm R5 version
+ --*---: xterm-r6 xterm X11R6 version
+ --*---: xterm-vt220 xterm emulating vt220
+ --*---: xterm-xfree86 xterm terminal emulator (XFree86)
+ ...
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
<STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>, <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,
- <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
+ <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
- This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210109).
-
- <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<li><a href="#h2-NAME">NAME</a></li>
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
-<li><a href="#h2-EXAMPLES">EXAMPLES</a></li>
+<li><a href="#h2-OPTIONS">OPTIONS</a></li>
<li><a href="#h2-FILES">FILES</a></li>
+<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-HISTORY">HISTORY</a></li>
+<li><a href="#h2-EXAMPLES">EXAMPLES</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
diff --git a/doc/html/man/tput.1.html b/doc/html/man/tput.1.html
index ffb131c62ab7..ed8fe3805afb 100644
--- a/doc/html/man/tput.1.html
+++ b/doc/html/man/tput.1.html
@@ -1,7 +1,7 @@
-<!--
+<!--
* t
****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,506 +28,534 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: tput.1,v 1.65 2020/12/19 22:17:47 tom Exp @
+ * @Id: tput.1,v 1.113 2024/04/20 19:58:50 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>tput 1</TITLE>
+<TITLE>tput 1 2024-04-20 ncurses 6.5 User commands</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">tput 1</H1>
+<H1 class="no-header">tput 1 2024-04-20 ncurses 6.5 User commands</H1>
<PRE>
-<STRONG><A HREF="tput.1.html">tput(1)</A></STRONG> General Commands Manual <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG>
+<STRONG><A HREF="tput.1.html">tput(1)</A></STRONG> User commands <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>tput</STRONG>, <STRONG>reset</STRONG> - initialize a terminal or query terminfo database
+ <STRONG>tput</STRONG> - initialize a terminal, exercise its capabilities, or query <EM>term-</EM>
+ <EM>info</EM> database
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
- <STRONG>tput</STRONG> [<STRONG>-T</STRONG><EM>type</EM>] <EM>capname</EM> [<EM>parameters</EM>]
- <STRONG>tput</STRONG> [<STRONG>-T</STRONG><EM>type</EM>] [<STRONG>-x</STRONG>] <STRONG>clear</STRONG>
- <STRONG>tput</STRONG> [<STRONG>-T</STRONG><EM>type</EM>] <STRONG>init</STRONG>
- <STRONG>tput</STRONG> [<STRONG>-T</STRONG><EM>type</EM>] <STRONG>reset</STRONG>
- <STRONG>tput</STRONG> [<STRONG>-T</STRONG><EM>type</EM>] <STRONG>longname</STRONG>
- <STRONG>tput</STRONG> <STRONG>-S</STRONG> <STRONG>&lt;&lt;</STRONG>
- <STRONG>tput</STRONG> <STRONG>-V</STRONG>
+ <STRONG>tput</STRONG> [<STRONG>-T</STRONG> <EM>terminal-type</EM>] {<EM>cap-code</EM> [<EM>parameter</EM> ...]} ...
+ <STRONG>tput</STRONG> [<STRONG>-T</STRONG> <EM>terminal-type</EM>] [<STRONG>-x</STRONG>] <STRONG>clear</STRONG>
-</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- The <STRONG>tput</STRONG> utility uses the <STRONG>terminfo</STRONG> database to make the values of
- terminal-dependent capabilities and information available to the shell
- (see <STRONG>sh(1)</STRONG>), to initialize or reset the terminal, or return the long
- name of the requested terminal type. The result depends upon the
- capability's type:
+ <STRONG>tput</STRONG> [<STRONG>-T</STRONG> <EM>terminal-type</EM>] <STRONG>init</STRONG>
- string
- <STRONG>tput</STRONG> writes the string to the standard output. No trailing
- newline is supplied.
+ <STRONG>tput</STRONG> [<STRONG>-T</STRONG> <EM>terminal-type</EM>] <STRONG>reset</STRONG>
- integer
- <STRONG>tput</STRONG> writes the decimal value to the standard output, with a
- trailing newline.
+ <STRONG>tput</STRONG> [<STRONG>-T</STRONG> <EM>terminal-type</EM>] <STRONG>longname</STRONG>
- boolean
- <STRONG>tput</STRONG> simply sets the exit code (<STRONG>0</STRONG> for TRUE if the terminal has
- the capability, <STRONG>1</STRONG> for FALSE if it does not), and writes nothing
- to the standard output.
+ <STRONG>tput</STRONG> <STRONG>-S</STRONG>
- Before using a value returned on the standard output, the application
- should test the exit code (e.g., <STRONG>$?</STRONG>, see <STRONG>sh(1)</STRONG>) to be sure it is <STRONG>0</STRONG>.
- (See the <STRONG>EXIT</STRONG> <STRONG>CODES</STRONG> and <STRONG>DIAGNOSTICS</STRONG> sections.) For a complete list of
- capabilities and the <EM>capname</EM> associated with each, see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
+ <STRONG>tput</STRONG> <STRONG>-V</STRONG>
-</PRE><H3><a name="h3-Options">Options</a></H3><PRE>
- <STRONG>-S</STRONG> allows more than one capability per invocation of <STRONG>tput</STRONG>. The
- capabilities must be passed to <STRONG>tput</STRONG> from the standard input
- instead of from the command line (see example). Only one
- <EM>capname</EM> is allowed per line. The <STRONG>-S</STRONG> option changes the meaning
- of the <STRONG>0</STRONG> and <STRONG>1</STRONG> boolean and string exit codes (see the EXIT CODES
- section).
+</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
+ <STRONG>tput</STRONG> uses the <EM>terminfo</EM> library and database to make terminal-specific
+ capabilities and information available to the shell, to initialize or
+ reset the terminal, or to report a description of the current (or
+ specified) terminal type. Terminal capabilities are accessed by <EM>cap-</EM>
+ <EM>code</EM>.
- Because some capabilities may use <EM>string</EM> parameters rather than
- <EM>numbers</EM>, <STRONG>tput</STRONG> uses a table and the presence of parameters in its
- input to decide whether to use <STRONG><A HREF="curs_terminfo.3x.html">tparm(3x)</A></STRONG>, and how to interpret
- the parameters.
+ <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> discusses terminal capabilities at length and presents a
+ complete list of <EM>cap-codes</EM>.
- <STRONG>-T</STRONG><EM>type</EM> indicates the <EM>type</EM> of terminal. Normally this option is
- unnecessary, because the default is taken from the environment
- variable <STRONG>TERM</STRONG>. If <STRONG>-T</STRONG> is specified, then the shell variables
- <STRONG>LINES</STRONG> and <STRONG>COLUMNS</STRONG> will also be ignored.
+ When retrieving capability values, the result depends upon the
+ capability's type.
- <STRONG>-V</STRONG> reports the version of ncurses which was used in this program,
- and exits.
+ Boolean <STRONG>tput</STRONG> sets its exit status to <STRONG>0</STRONG> if the terminal possesses <EM>cap-</EM>
+ <EM>code</EM>, and <STRONG>1</STRONG> if it does not.
- <STRONG>-x</STRONG> do not attempt to clear the terminal's scrollback buffer using
- the extended "E3" capability.
+ numeric <STRONG>tput</STRONG> writes <EM>cap-code</EM>'s decimal value to the standard output
+ stream if defined (<STRONG>-1</STRONG> if it is not) followed by a newline.
+ string <STRONG>tput</STRONG> writes <EM>cap-code</EM>'s value to the standard output stream if
+ defined, without a trailing newline.
-</PRE><H3><a name="h3-Commands">Commands</a></H3><PRE>
- A few commands (<STRONG>init</STRONG>, <STRONG>reset</STRONG> and <STRONG>longname</STRONG>) are special; they are defined
- by the <STRONG>tput</STRONG> program. The others are the names of <EM>capabilities</EM> from the
- terminal database (see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> for a list). Although <STRONG>init</STRONG> and
- <STRONG>reset</STRONG> resemble capability names, <STRONG>tput</STRONG> uses several capabilities to
- perform these special functions.
+ Before using a value returned on the standard output, the application
+ should test <STRONG>tput</STRONG>'s exit status to be sure it is 0; see section "EXIT
+ STATUS" below.
- <EM>capname</EM>
- indicates the capability from the terminal database.
- If the capability is a string that takes parameters, the
- arguments following the capability will be used as parameters
- for the string.
+</PRE><H3><a name="h3-Operands">Operands</a></H3><PRE>
+ Generally, an operand is a <EM>cap-code</EM>, a capability code from the
+ terminal database, or a parameter thereto. Three others are specially
+ recognized by <STRONG>tput</STRONG>: <STRONG>init</STRONG>, <STRONG>reset</STRONG>, and <STRONG>longname</STRONG>. Although these resemble
+ capability codes, they in fact receive special handling; we term them
+ "pseudo-capabilities".
- Most parameters are numbers. Only a few terminal capabilities
- require string parameters; <STRONG>tput</STRONG> uses a table to decide which to
- pass as strings. Normally <STRONG>tput</STRONG> uses <STRONG><A HREF="curs_terminfo.3x.html">tparm(3x)</A></STRONG> to perform the
- substitution. If no parameters are given for the capability,
- <STRONG>tput</STRONG> writes the string without performing the substitution.
+ <EM>cap-code</EM> indicates a capability from the terminal database.
- <STRONG>init</STRONG> If the terminal database is present and an entry for the user's
- terminal exists (see <STRONG>-T</STRONG><EM>type</EM>, above), the following will occur:
+ If <EM>cap-code</EM> is of string type and takes parameters, <STRONG>tput</STRONG>
+ interprets arguments following <EM>cap-code</EM> as the parameters,
+ up to the (fixed) quantity the capability requires.
- (1) first, <STRONG>tput</STRONG> retrieves the current terminal mode settings
- for your terminal. It does this by successively testing
+ Most parameters are numeric. Only a few terminal
+ capabilities require string parameters; <STRONG>tput</STRONG> uses a table to
+ decide which to pass as strings. Normally <STRONG>tput</STRONG> uses
+ <STRONG><A HREF="curs_terminfo.3x.html">tparm(3x)</A></STRONG> to perform the substitution. If no parameters are
+ given for the capability, <STRONG>tput</STRONG> writes the string without
+ performing the substitution.
- <STRONG>o</STRONG> the standard error,
+ <STRONG>init</STRONG> initializes the terminal. If the terminal database is
+ present and an entry for the user's terminal type exists,
+ the following occur.
- <STRONG>o</STRONG> standard output,
+ (1) <STRONG>tput</STRONG> retrieves the terminal's mode settings. It
+ successively tests the file descriptors corresponding
+ to
- <STRONG>o</STRONG> standard input and
+ <STRONG>o</STRONG> the standard error stream,
- <STRONG>o</STRONG> ultimately "/dev/tty"
+ <STRONG>o</STRONG> the standard output stream,
- to obtain terminal settings. Having retrieved these
- settings, <STRONG>tput</STRONG> remembers which file descriptor to use when
- updating settings.
+ <STRONG>o</STRONG> the standard input stream, and
- (2) if the window size cannot be obtained from the operating
- system, but the terminal description (or environment, e.g.,
- <STRONG>LINES</STRONG> and <STRONG>COLUMNS</STRONG> variables specify this), update the
- operating system's notion of the window size.
+ <STRONG>o</STRONG> <EM>/dev/tty</EM>
- (3) the terminal modes will be updated:
+ to obtain terminal settings. Having retrieved them,
+ <STRONG>tput</STRONG> remembers which descriptor to use for further
+ updates.
- <STRONG>o</STRONG> any delays (e.g., newline) specified in the entry will
- be set in the tty driver,
+ (2) If the terminal dimensions cannot be obtained from the
+ operating system, but the environment or terminal type
+ database entry describes them, <STRONG>tput</STRONG> updates the
+ operating system's notion of them.
- <STRONG>o</STRONG> tabs expansion will be turned on or off according to
- the specification in the entry, and
+ (3) <STRONG>tput</STRONG> updates the terminal modes.
- <STRONG>o</STRONG> if tabs are not expanded, standard tabs will be set
- (every 8 spaces).
+ <STRONG>o</STRONG> Any delays specified in the entry (for example,
+ when a newline is sent) are set in the terminal
+ driver.
- (4) if present, the terminal's initialization strings will be
- output as detailed in the <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> section on <EM>Tabs</EM> <EM>and</EM>
- <EM>Initialization</EM>,
+ <STRONG>o</STRONG> Tab expansion is turned on or off per the
+ specification in the entry, and
- (5) output is flushed.
+ <STRONG>o</STRONG> if tabs are not expanded, standard tabs (every 8
+ spaces) are set.
- If an entry does not contain the information needed for any of
- these activities, that activity will silently be skipped.
+ (4) If initialization capabilities, detailed in subsection
+ "Tabs and Initialization" of <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>, are present,
+ <STRONG>tput</STRONG> writes them to the standard output stream.
- <STRONG>reset</STRONG> This is similar to <STRONG>init</STRONG>, with two differences:
+ (5) <STRONG>tput</STRONG> flushes the standard output stream.
- (1) before any other initialization, the terminal modes will be
- reset to a "sane" state:
+ If an entry lacks the information needed for an activity
+ above, that activity is silently skipped.
- <STRONG>o</STRONG> set cooked and echo modes,
+ <STRONG>reset</STRONG> re-initializes the terminal. A reset differs from
+ initialization in two ways.
- <STRONG>o</STRONG> turn off cbreak and raw modes,
+ (1) <STRONG>tput</STRONG> sets the the terminal modes to a "sane" state,
- <STRONG>o</STRONG> turn on newline translation and
+ <STRONG>o</STRONG> enabling cooked and echo modes,
- <STRONG>o</STRONG> reset any unset special characters to their default
- values
+ <STRONG>o</STRONG> disabling cbreak and raw modes,
- (2) Instead of putting out <EM>initialization</EM> strings, the
- terminal's <EM>reset</EM> strings will be output if present (<STRONG>rs1</STRONG>,
- <STRONG>rs2</STRONG>, <STRONG>rs3</STRONG>, <STRONG>rf</STRONG>). If the <EM>reset</EM> strings are not present, but
- <EM>initialization</EM> strings are, the <EM>initialization</EM> strings will
- be output.
+ <STRONG>o</STRONG> enabling newline translation, and
- Otherwise, <STRONG>reset</STRONG> acts identically to <STRONG>init</STRONG>.
+ <STRONG>o</STRONG> setting any unset special characters to their
+ default values.
- <STRONG>longname</STRONG>
- If the terminal database is present and an entry for the user's
- terminal exists (see <STRONG>-T</STRONG><EM>type</EM> above), then the long name of the
- terminal will be put out. The long name is the last name in the
- first line of the terminal's description in the <STRONG>terminfo</STRONG>
- database [see <STRONG><A HREF="term.5.html">term(5)</A></STRONG>].
+ (2) If any reset capabilities are defined for the terminal
+ type, <STRONG>tput</STRONG> writes them to the output stream.
+ Otherwise, <STRONG>tput</STRONG> uses any defined initialization
+ capabilities. Reset capabilities are detailed in
+ subsection "Tabs and Initialization" of <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
+ <STRONG>longname</STRONG> A <EM>terminfo</EM> entry begins with one or more names by which an
+ application can refer to the entry, before the list of
+ terminal capabilities. The names are separated by "|"
+ characters. X/Open Curses terms the last name the "long
+ name", and indicates that it may include blanks.
-</PRE><H3><a name="h3-Aliases">Aliases</a></H3><PRE>
- <STRONG>tput</STRONG> handles the <STRONG>clear</STRONG>, <STRONG>init</STRONG> and <STRONG>reset</STRONG> commands specially: it allows
- for the possibility that it is invoked by a link with those names.
+ <STRONG>tic</STRONG> warns if the last name does not include blanks, to
+ accommodate old <EM>terminfo</EM> entries that treated the long name
+ as an optional feature. The long name is often referred to
+ as the description field.
- If <STRONG>tput</STRONG> is invoked by a link named <STRONG>reset</STRONG>, this has the same effect as
- <STRONG>tput</STRONG> <STRONG>reset</STRONG>. The <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG> utility also treats a link named <STRONG>reset</STRONG>
- specially.
+ If the terminal database is present and an entry for the
+ user's terminal type exists, <STRONG>tput</STRONG> reports its description to
+ the standard output stream, without a trailing newline. See
+ <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
- Before ncurses 6.1, the two utilities were different from each other:
+ <EM>Note:</EM> Redirecting the output of "<STRONG>tput</STRONG> <STRONG>init</STRONG>" or "<STRONG>tput</STRONG> <STRONG>reset</STRONG>" to a file
+ will capture only part of their actions. Changes to the terminal modes
+ are not affected by file descriptor redirection, since the terminal
+ modes are altered via <STRONG>ioctl(2)</STRONG>.
- <STRONG>o</STRONG> <STRONG>tset</STRONG> utility reset the terminal modes and special characters (not
- done with <STRONG>tput</STRONG>).
- <STRONG>o</STRONG> On the other hand, <STRONG>tset</STRONG>'s repertoire of terminal capabilities for
- resetting the terminal was more limited, i.e., only <STRONG>reset_1string</STRONG>,
- <STRONG>reset_2string</STRONG> and <STRONG>reset_file</STRONG> in contrast to the tab-stops and
- margins which are set by this utility.
-
- <STRONG>o</STRONG> The <STRONG>reset</STRONG> program is usually an alias for <STRONG>tset</STRONG>, because of this
- difference with resetting terminal modes and special characters.
-
- With the changes made for ncurses 6.1, the <EM>reset</EM> feature of the two
- programs is (mostly) the same. A few differences remain:
+</PRE><H3><a name="h3-Aliases">Aliases</a></H3><PRE>
+ If <STRONG>tput</STRONG> is invoked via link with any of the names <STRONG>clear</STRONG>, <STRONG>init</STRONG>, or
+ <STRONG>reset</STRONG>, it operates as if run with the corresponding (pseudo-)capability
+ operand. For example, executing a link named <STRONG>reset</STRONG> that points to <STRONG>tput</STRONG>
+ has the same effect as "<STRONG>tput</STRONG> <STRONG>reset</STRONG>".
- <STRONG>o</STRONG> The <STRONG>tset</STRONG> program waits one second when resetting, in case it
- happens to be a hardware terminal.
+ This feature was introduced by <EM>ncurses</EM> 5.2 in 2000. It is rarely used:
- <STRONG>o</STRONG> The two programs write the terminal initialization strings to
- different streams (i.e., the standard error for <STRONG>tset</STRONG> and the
- standard output for <STRONG>tput</STRONG>).
+ <STRONG>clear</STRONG> is a separate program, which is both smaller and more frequently
+ executed.
- <STRONG>Note:</STRONG> although these programs write to different streams,
- redirecting their output to a file will capture only part of their
- actions. The changes to the terminal modes are not affected by
- redirecting the output.
+ <STRONG>init</STRONG> has the same name as another program in widespread use.
- If <STRONG>tput</STRONG> is invoked by a link named <STRONG>init</STRONG>, this has the same effect as
- <STRONG>tput</STRONG> <STRONG>init</STRONG>. Again, you are less likely to use that link because another
- program named <STRONG>init</STRONG> has a more well-established use.
+ <STRONG>reset</STRONG> is provided by the <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG> utility (also via a link named
+ <STRONG>reset</STRONG>).
</PRE><H3><a name="h3-Terminal-Size">Terminal Size</a></H3><PRE>
- Besides the special commands (e.g., <STRONG>clear</STRONG>), tput treats certain
- terminfo capabilities specially: <STRONG>lines</STRONG> and <STRONG>cols</STRONG>. tput calls
- <STRONG><A HREF="curs_terminfo.3x.html">setupterm(3x)</A></STRONG> to obtain the terminal size:
+ Besides the pseudo-capabilities (such as <STRONG>init</STRONG>), <STRONG>tput</STRONG> treats the <STRONG>lines</STRONG>
+ and <STRONG>cols</STRONG> <EM>cap-codes</EM> specially: it may call <STRONG><A HREF="curs_terminfo.3x.html">setupterm(3x)</A></STRONG> to obtain the
+ terminal size.
- <STRONG>o</STRONG> first, it gets the size from the terminal database (which generally
- is not provided for terminal emulators which do not have a fixed
- window size)
+ <STRONG>o</STRONG> First, <STRONG>tput</STRONG> attempts to obtain these capabilities from the terminal
+ database. This generally fails for terminal emulators, which lack
+ a fixed window size and thus omit the capabilities.
- <STRONG>o</STRONG> then it asks the operating system for the terminal's size (which
- generally works, unless connecting via a serial line which does not
- support <EM>NAWS</EM>: negotiations about window size).
+ <STRONG>o</STRONG> It then asks the operating system for the terminal's size, which
+ generally works, unless the connection is via a serial line that
+ does not support "NAWS": negotiations about window size.
- <STRONG>o</STRONG> finally, it inspects the environment variables <STRONG>LINES</STRONG> and <STRONG>COLUMNS</STRONG>
+ <STRONG>o</STRONG> Finally, it inspects the environment variables <EM>LINES</EM> and <EM>COLUMNS</EM>,
which may override the terminal size.
- If the <STRONG>-T</STRONG> option is given tput ignores the environment variables by
- calling <STRONG>use_tioctl(TRUE)</STRONG>, relying upon the operating system (or
- finally, the terminal database).
+ If the <STRONG>-T</STRONG> option is given, <STRONG>tput</STRONG> ignores the environment variables by
+ calling <STRONG>use_tioctl(TRUE)</STRONG>, relying upon the operating system (or,
+ ultimately, the terminal database).
-</PRE><H2><a name="h2-EXAMPLES">EXAMPLES</a></H2><PRE>
- <STRONG>tput</STRONG> <STRONG>init</STRONG>
- Initialize the terminal according to the type of terminal in the
- environmental variable <STRONG>TERM</STRONG>. This command should be included in
- everyone's .profile after the environmental variable <STRONG>TERM</STRONG> has been
- exported, as illustrated on the <STRONG>profile(5)</STRONG> manual page.
+</PRE><H2><a name="h2-OPTIONS">OPTIONS</a></H2><PRE>
+ <STRONG>-S</STRONG> retrieves more than one capability per invocation of <STRONG>tput</STRONG>.
+ The capabilities must be passed to <STRONG>tput</STRONG> from the standard
+ input stream instead of from the command line (see section
+ "EXAMPLES" below). Only one <EM>cap-code</EM> is allowed per line.
+ The <STRONG>-S</STRONG> option changes the meanings of the <STRONG>0</STRONG> and <STRONG>1</STRONG> exit
+ statuses (see section "EXIT STATUS" below).
- <STRONG>tput</STRONG> <STRONG>-T5620</STRONG> <STRONG>reset</STRONG>
- Reset an AT&amp;T 5620 terminal, overriding the type of terminal in
- the environmental variable <STRONG>TERM</STRONG>.
+ Some capabilities use string parameters rather than numeric
+ ones. <STRONG>tput</STRONG> employs a built-in table and the presence of
+ parameters in its input to decide how to interpret them, and
+ whether to use <STRONG><A HREF="curs_terminfo.3x.html">tparm(3x)</A></STRONG>.
- <STRONG>tput</STRONG> <STRONG>cup</STRONG> <STRONG>0</STRONG> <STRONG>0</STRONG>
- Send the sequence to move the cursor to row <STRONG>0</STRONG>, column <STRONG>0</STRONG> (the upper
- left corner of the screen, usually known as the "home" cursor
- position).
+ <STRONG>-T</STRONG> <EM>type</EM> indicates the terminal's <EM>type</EM>. Normally this option is
+ unnecessary, because a default is taken from the <EM>TERM</EM>
+ environment variable. If specified, the environment variables
+ <EM>LINES</EM> and <EM>COLUMNS</EM> are also ignored.
- <STRONG>tput</STRONG> <STRONG>clear</STRONG>
- Echo the clear-screen sequence for the current terminal.
+ <STRONG>-V</STRONG> reports the version of <EM>ncurses</EM> associated with <STRONG>tput</STRONG>, and exits
+ with a successful status.
- <STRONG>tput</STRONG> <STRONG>cols</STRONG>
- Print the number of columns for the current terminal.
+ <STRONG>-x</STRONG> prevents "<STRONG>tput</STRONG> <STRONG>clear</STRONG>" from attempting to clear the scrollback
+ buffer.
- <STRONG>tput</STRONG> <STRONG>-T450</STRONG> <STRONG>cols</STRONG>
- Print the number of columns for the 450 terminal.
- <STRONG>bold=`tput</STRONG> <STRONG>smso`</STRONG> <STRONG>offbold=`tput</STRONG> <STRONG>rmso`</STRONG>
- Set the shell variables <STRONG>bold</STRONG>, to begin stand-out mode sequence,
- and <STRONG>offbold</STRONG>, to end standout mode sequence, for the current
- terminal. This might be followed by a prompt: <STRONG>echo</STRONG> <STRONG>"${bold}Please</STRONG>
- <STRONG>type</STRONG> <STRONG>in</STRONG> <STRONG>your</STRONG> <STRONG>name:</STRONG> <STRONG>${offbold}\c"</STRONG>
+</PRE><H2><a name="h2-EXIT-STATUS">EXIT STATUS</a></H2><PRE>
+ Normally, one should interpret <STRONG>tput</STRONG>'s exit statuses as follows.
- <STRONG>tput</STRONG> <STRONG>hc</STRONG>
- Set exit code to indicate if the current terminal is a hard copy
- terminal.
+ <STRONG>Status</STRONG> <STRONG>Meaning</STRONG> <STRONG>When</STRONG> <STRONG>-S</STRONG> <STRONG>Not</STRONG> <STRONG>Specified</STRONG>
+ ------------------------------------------------------------------------
+ <STRONG>0</STRONG> Boolean or string capability present
+ <STRONG>1</STRONG> Boolean or numeric capability absent
+ <STRONG>2</STRONG> usage error or no terminal type specified
+ <STRONG>3</STRONG> unrecognized terminal type
+ <STRONG>4</STRONG> unrecognized capability code
+ <STRONG>&gt;4</STRONG> system error (4 + <STRONG>errno</STRONG>)
- <STRONG>tput</STRONG> <STRONG>cup</STRONG> <STRONG>23</STRONG> <STRONG>4</STRONG>
- Send the sequence to move the cursor to row 23, column 4.
+ When the <STRONG>-S</STRONG> option is used, some statuses change meanings.
- <STRONG>tput</STRONG> <STRONG>cup</STRONG>
- Send the terminfo string for cursor-movement, with no parameters
- substituted.
+ <STRONG>Status</STRONG> <STRONG>Meaning</STRONG> <STRONG>When</STRONG> <STRONG>-S</STRONG> <STRONG>Specified</STRONG>
+ ------------------------------------------------------------------------
+ <STRONG>0</STRONG> all operands interpreted
+ <STRONG>1</STRONG> unused
+ <STRONG>4</STRONG> some operands not interpreted
- <STRONG>tput</STRONG> <STRONG>longname</STRONG>
- Print the long name from the <STRONG>terminfo</STRONG> database for the type of
- terminal specified in the environmental variable <STRONG>TERM</STRONG>.
- <STRONG>tput</STRONG> <STRONG>-S</STRONG> <STRONG>&lt;&lt;!</STRONG>
- <STRONG>&gt;</STRONG> <STRONG>clear</STRONG>
- <STRONG>&gt;</STRONG> <STRONG>cup</STRONG> <STRONG>10</STRONG> <STRONG>10</STRONG>
- <STRONG>&gt;</STRONG> <STRONG>bold</STRONG>
- <STRONG>&gt;</STRONG> <STRONG>!</STRONG>
+</PRE><H2><a name="h2-ENVIRONMENT">ENVIRONMENT</a></H2><PRE>
+ <STRONG>tput</STRONG> reads one environment variable.
- This example shows <STRONG>tput</STRONG> processing several capabilities in one
- invocation. It clears the screen, moves the cursor to position
- 10, 10 and turns on bold (extra bright) mode. The list is
- terminated by an exclamation mark (<STRONG>!</STRONG>) on a line by itself.
+ <EM>TERM</EM> denotes the terminal type. Each terminal type is distinct,
+ though many are similar. The <STRONG>-T</STRONG> option overrides its value.
</PRE><H2><a name="h2-FILES">FILES</a></H2><PRE>
- <STRONG>/usr/share/terminfo</STRONG>
+ <EM>/usr/share/tabset</EM>
+ tab stop initialization database
+
+ <EM>/usr/share/terminfo</EM>
compiled terminal description database
- <STRONG>/usr/share/tabset/*</STRONG>
- tab settings for some terminals, in a format appropriate to be
- output to the terminal (escape sequences that set margins and
- tabs); for more information, see the <EM>Tabs</EM> <EM>and</EM> <EM>Initialization</EM>,
- section of <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
+</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
+ Over time <EM>ncurses</EM> <STRONG>tput</STRONG> has differed from that of System V in two
+ important respects, one now mostly historical.
-</PRE><H2><a name="h2-EXIT-CODES">EXIT CODES</a></H2><PRE>
- If the <STRONG>-S</STRONG> option is used, <STRONG>tput</STRONG> checks for errors from each line, and if
- any errors are found, will set the exit code to 4 plus the number of
- lines with errors. If no errors are found, the exit code is <STRONG>0</STRONG>. No
- indication of which line failed can be given so exit code <STRONG>1</STRONG> will never
- appear. Exit codes <STRONG>2</STRONG>, <STRONG>3</STRONG>, and <STRONG>4</STRONG> retain their usual interpretation. If
- the <STRONG>-S</STRONG> option is not used, the exit code depends on the type of
- <EM>capname</EM>:
+ <STRONG>o</STRONG> "<STRONG>tput</STRONG> <EM>cap-code</EM>" writes to the standard output, which need not be a
+ terminal device. However, the operands that manipulate terminal
+ modes might not use the standard output.
- <EM>boolean</EM>
- a value of <STRONG>0</STRONG> is set for TRUE and <STRONG>1</STRONG> for FALSE.
+ System V <STRONG>tput</STRONG>'s <STRONG>init</STRONG> and <STRONG>reset</STRONG> operands use logic from 4.1cBSD
+ <STRONG>tset</STRONG>, manipulating terminal modes. It checks the same file
+ descriptors (and <EM>/dev/tty</EM>) for association with a terminal device
+ as <EM>ncurses</EM> now does, and if none are, finally assumes a 1200 baud
+ terminal. When updating terminal modes, it ignores errors.
- <EM>string</EM> a value of <STRONG>0</STRONG> is set if the <EM>capname</EM> is defined for this
- terminal <EM>type</EM> (the value of <EM>capname</EM> is returned on standard
- output); a value of <STRONG>1</STRONG> is set if <EM>capname</EM> is not defined for
- this terminal <EM>type</EM> (nothing is written to standard output).
+ Until <EM>ncurses</EM> 6.1 (see section "HISTORY" below), <STRONG>tput</STRONG> did not
+ modify terminal modes. It now employs a scheme similar to
+ System V, using functions shared with <STRONG>tset</STRONG> (and ultimately based on
+ 4.4BSD <STRONG>tset</STRONG>). If it is not able to open a terminal (for instance,
+ when run by <STRONG>cron(1)</STRONG>), <STRONG>tput</STRONG> exits with an error status.
- <EM>integer</EM>
- a value of <STRONG>0</STRONG> is always set, whether or not <EM>capname</EM> is defined
- for this terminal <EM>type</EM>. To determine if <EM>capname</EM> is defined
- for this terminal <EM>type</EM>, the user must test the value written
- to standard output. A value of <STRONG>-1</STRONG> means that <EM>capname</EM> is not
- defined for this terminal <EM>type</EM>.
+ <STRONG>o</STRONG> System V <STRONG>tput</STRONG> assumes that the type of a <EM>cap-code</EM> operand is
+ numeric if all the characters of its value are decimal numbers; if
+ they are not, it treats <EM>cap-code</EM> as a string capability.
- <EM>other</EM> <STRONG>reset</STRONG> or <STRONG>init</STRONG> may fail to find their respective files. In
- that case, the exit code is set to 4 + <STRONG>errno</STRONG>.
+ Most implementations that provide support for <EM>cap-code</EM> operands use
+ the <STRONG><A HREF="curs_terminfo.3x.html">tparm(3x)</A></STRONG> function to expand its parameters. That function
+ expects a mixture of numeric and string parameters, requiring <STRONG>tput</STRONG>
+ to know which type to use.
- Any other exit code indicates an error; see the DIAGNOSTICS section.
+ <EM>ncurses</EM> <STRONG>tput</STRONG> uses a table to determine the parameter types for the
+ standard <EM>cap-code</EM> operands, and an internal function to analyze
+ nonstandard <EM>cap-code</EM> operands.
+
+ While more reliable than System V's utility, a portability problem
+ is introduced by this analysis. An OpenBSD developer adapted the
+ internal library function from <EM>ncurses</EM> to port NetBSD's <EM>termcap</EM>-
+ based <STRONG>tput</STRONG> to <EM>terminfo</EM>, and modified it to interpret multiple <EM>cap-</EM>
+ <EM>codes</EM> (and parameters) on the command line. Portable applications
+ should not rely upon this feature; <EM>ncurses</EM> offers it to support
+ applications written specifically for OpenBSD.
+
+ This implementation, unlike others, accepts both <EM>termcap</EM> and <EM>terminfo</EM>
+ <EM>cap-codes</EM> if <EM>termcap</EM> support is compiled in. In that case, however,
+ the predefined <EM>termcap</EM> and <EM>terminfo</EM> codes have two ambiguities; <EM>ncurses</EM>
+ assumes the <EM>terminfo</EM> code.
+
+ <STRONG>o</STRONG> The <EM>cap-code</EM> <STRONG>dl</STRONG> means <STRONG>delete_line</STRONG> to <EM>termcap</EM> but <STRONG>parm_delete_line</STRONG>
+ to <EM>terminfo</EM>. <EM>termcap</EM> uses the code <STRONG>DL</STRONG> for <STRONG>parm_delete_line</STRONG>. <EM>term-</EM>
+ <EM>info</EM> uses the code <STRONG>dl1</STRONG> for <STRONG>delete_line</STRONG>.
+
+ <STRONG>o</STRONG> The <EM>cap-code</EM> <STRONG>ed</STRONG> means <STRONG>exit_delete_mode</STRONG> to <EM>termcap</EM> but <STRONG>clr_eos</STRONG> to
+ <EM>terminfo</EM>. <EM>termcap</EM> uses the code <STRONG>cd</STRONG> for <STRONG>clr_eos</STRONG>. <EM>terminfo</EM> uses the
+ code <STRONG>rmdc</STRONG> for <STRONG>exit_delete_mode</STRONG>.
+
+ The <STRONG>longname</STRONG> operand, <STRONG>-S</STRONG> option, and the parameter-substitution
+ features used in the <STRONG>cup</STRONG> example below, were not supported in AT&amp;T/USL
+ <EM>curses</EM> before SVr4 (1989). Later, 4.3BSD-Reno (1990) added support for
+ <STRONG>longname</STRONG>, and in 1994, NetBSD added support for the parameter-
+ substitution features.
+
+ IEEE Std 1003.1/The Open Group Base Specifications Issue 7
+ (POSIX.1-2008) documents only the <STRONG>clear</STRONG>, <STRONG>init</STRONG>, and <STRONG>reset</STRONG> operands. A
+ few observations of interest arise from that selection.
+
+ <STRONG>o</STRONG> <EM>ncurses</EM> supports <STRONG>clear</STRONG> as it does any other standard <EM>cap-code</EM>. The
+ others (<STRONG>init</STRONG> and <STRONG>longname</STRONG>) do not correspond to terminal
+ capabilities.
+ <STRONG>o</STRONG> The <STRONG>tput</STRONG> on SVr4-based systems such as Solaris, IRIX64, and HP-UX,
+ as well as others such as AIX and Tru64, also support standard <EM>cap-</EM>
+ <EM>code</EM> operands.
-</PRE><H2><a name="h2-DIAGNOSTICS">DIAGNOSTICS</a></H2><PRE>
- <STRONG>tput</STRONG> prints the following error messages and sets the corresponding
- exit codes.
+ <STRONG>o</STRONG> A few platforms such as FreeBSD recognize <EM>termcap</EM> codes rather than
+ <EM>terminfo</EM> capability codes in their respective <STRONG>tput</STRONG> commands. Since
+ 2010, NetBSD's <STRONG>tput</STRONG> uses <EM>terminfo</EM> codes. Before that, it (like
+ FreeBSD) recognized <EM>termcap</EM> codes.
- exit code error message
- ---------------------------------------------------------------------
- <STRONG>0</STRONG> (<EM>capname</EM> is a numeric variable that is not specified in
- the <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> database for this terminal type, e.g.
- <STRONG>tput</STRONG> <STRONG>-T450</STRONG> <STRONG>lines</STRONG> and <STRONG>tput</STRONG> <STRONG>-T2621</STRONG> <STRONG>xmc</STRONG>)
- <STRONG>1</STRONG> no error message is printed, see the <STRONG>EXIT</STRONG> <STRONG>CODES</STRONG> section.
- <STRONG>2</STRONG> usage error
- <STRONG>3</STRONG> unknown terminal <EM>type</EM> or no <STRONG>terminfo</STRONG> database
- <STRONG>4</STRONG> unknown <STRONG>terminfo</STRONG> capability <EM>capname</EM>
- <STRONG>&gt;4</STRONG> error occurred in -S
- ---------------------------------------------------------------------
+ Beginning in 2021, FreeBSD uses <EM>ncurses</EM> <STRONG>tput</STRONG>, configured for both
+ <EM>terminfo</EM> (tested first) and <EM>termcap</EM> (as a fallback).
+ Because (apparently) all <EM>certified</EM> Unix systems support the full set of
+ capability codes, the reason for documenting only a few may not be
+ apparent.
-</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
- The <STRONG>tput</STRONG> command was begun by Bill Joy in 1980. The initial version
- only cleared the screen.
+ <STRONG>o</STRONG> X/Open Curses Issue 7 documents <STRONG>tput</STRONG> differently, with <EM>cap-code</EM> and
+ the other features used in this implementation.
- AT&amp;T System V provided a different <STRONG>tput</STRONG> command, whose <STRONG>init</STRONG> and <STRONG>reset</STRONG>
- subcommands (more than half the program) were incorporated from the
- <STRONG>reset</STRONG> feature of BSD <STRONG>tset</STRONG> written by Eric Allman.
+ <STRONG>o</STRONG> That is, there are two standards for <STRONG>tput</STRONG>: POSIX (a subset) and
+ X/Open Curses (the full implementation). POSIX documents a subset
+ to avoid the complication of including X/Open Curses and the
+ terminal capability database.
- Keith Bostic replaced the BSD <STRONG>tput</STRONG> command in 1989 with a new
- implementation based on the AT&amp;T System V program <STRONG>tput</STRONG>. Like the AT&amp;T
- program, Bostic's version accepted some parameters named for <EM>terminfo</EM>
- <EM>capabilities</EM> (<STRONG>clear</STRONG>, <STRONG>init</STRONG>, <STRONG>longname</STRONG> and <STRONG>reset</STRONG>). However (because he
- had only termcap available), it accepted <EM>termcap</EM> <EM>names</EM> for other
- capabilities. Also, Bostic's BSD <STRONG>tput</STRONG> did not modify the terminal I/O
- modes as the earlier BSD <STRONG>tset</STRONG> had done.
+ <STRONG>o</STRONG> While it is certainly possible to write a <STRONG>tput</STRONG> program without
+ using <EM>curses</EM>, no system with a <EM>curses</EM> implementation provides a
+ <STRONG>tput</STRONG> utility that does not also support standard <EM>cap-codes</EM>.
- At the same time, Bostic added a shell script named "clear", which used
- <STRONG>tput</STRONG> to clear the screen.
+ X/Open Curses Issue 7 (2009) is the first version to document
+ utilities. However that part of X/Open Curses does not follow existing
+ practice (that is, System V <EM>curses</EM> behavior).
- Both of these appeared in 4.4BSD, becoming the "modern" BSD
- implementation of <STRONG>tput</STRONG>.
+ <STRONG>o</STRONG> It assigns exit status 4 to "invalid operand", which may have the
+ same meaning as "unknown capability". For instance, the source
+ code for Solaris <EM>xcurses</EM> uses the term "invalid" in this case.
- This implementation of <STRONG>tput</STRONG> began from a different source than AT&amp;T or
- BSD: Ross Ridge's <EM>mytinfo</EM> package, published on <EM>comp.sources.unix</EM> in
- December 1992. Ridge's program made more sophisticated use of the
- terminal capabilities than the BSD program. Eric Raymond used that
- <STRONG>tput</STRONG> program (and other parts of <EM>mytinfo</EM>) in ncurses in June 1995.
- Using the portions dealing with terminal capabilities almost without
- change, Raymond made improvements to the way the command-line
- parameters were handled.
+ <STRONG>o</STRONG> It assigns exit status 255 to a numeric variable that is not
+ specified in the <EM>terminfo</EM> database. That likely is a documentation
+ error, mistaking the "-1" written to the standard output to
+ indicate an absent or cancelled numeric capability for an
+ (unsigned) exit status.
+ The various System V implementations (AIX, HP-UX, Solaris) use the same
+ exit statuses as <EM>ncurses</EM>.
-</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- This implementation of <STRONG>tput</STRONG> differs from AT&amp;T <STRONG>tput</STRONG> in two important
- areas:
+ NetBSD <EM>curses</EM> documents exit statuses that correspond to neither
+ <EM>ncurses</EM> nor X/Open Curses.
- <STRONG>o</STRONG> <STRONG>tput</STRONG> <EM>capname</EM> writes to the standard output. That need not be a
- regular terminal. However, the subcommands which manipulate
- terminal modes may not use the standard output.
- The AT&amp;T implementation's <STRONG>init</STRONG> and <STRONG>reset</STRONG> commands use the BSD
- (4.1c) <STRONG>tset</STRONG> source, which manipulates terminal modes. It
- successively tries standard output, standard error, standard input
- before falling back to "/dev/tty" and finally just assumes a 1200Bd
- terminal. When updating terminal modes, it ignores errors.
+</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
+ Bill Joy wrote a <STRONG>tput</STRONG> command during development of 4BSD in October
+ 1980. This initial version only cleared the screen, and did not ship
+ with official distributions.
+
+ System V developed a different <STRONG>tput</STRONG> command.
+
+ <STRONG>o</STRONG> SVr2 (1984) provided a rudimentary <STRONG>tput</STRONG> that checked the parameter
+ against each predefined capability and returned the corresponding
+ value. This version of <STRONG>tput</STRONG> did not use <STRONG><A HREF="curs_terminfo.3x.html">tparm(3x)</A></STRONG> for
+ parameterized capabilities.
+
+ <STRONG>o</STRONG> SVr3 (1987) replaced that with a more extensive program whose
+ support for <STRONG>init</STRONG> and <STRONG>reset</STRONG> operands (more than half the program)
+ incorporated the <STRONG>reset</STRONG> feature of BSD <STRONG>tset</STRONG> written by Eric Allman.
+
+ <STRONG>o</STRONG> SVr4 (1989) added color initialization by using the <STRONG>orig_colors</STRONG>
+ (<STRONG>oc</STRONG>) and <STRONG>orig_pair</STRONG> (<STRONG>op</STRONG>) capabilities in its <STRONG>init</STRONG> logic.
+
+ Keith Bostic refactored BSD <STRONG>tput</STRONG> for shipment in 4.3BSD-Tahoe (1988),
+ then replaced it the next year with a new implementation based on
+ System V <STRONG>tput</STRONG>. Bostic's version similarly accepted some parameters
+ named for <EM>terminfo</EM> (pseudo-)capabilities: <STRONG>clear</STRONG>, <STRONG>init</STRONG>, <STRONG>longname</STRONG>, and
+ <STRONG>reset</STRONG>. However, because he had only <EM>termcap</EM> available, it accepted
+ <EM>termcap</EM> codes for other capabilities. Also, Bostic's BSD <STRONG>tput</STRONG> did not
+ modify the terminal modes as the earlier BSD <STRONG>tset</STRONG> had done.
+
+ At the same time, Bostic added a shell script named "clear" that used
+ <STRONG>tput</STRONG> to clear the screen. Both of these appeared in 4.4BSD, becoming
+ the "modern" BSD implementation of <STRONG>tput</STRONG>.
+
+ The origin of <EM>ncurses</EM> <STRONG>tput</STRONG> lies outside both System V and BSD, in Ross
+ Ridge's <EM>mytinfo</EM> package, published on <EM>comp.sources.unix</EM> in December
+ 1992. Ridge's program made more sophisticated use of the terminal
+ capabilities than the BSD program. Eric Raymond used that <STRONG>tput</STRONG> program
+ (and other parts of <EM>mytinfo</EM>) in <EM>ncurses</EM> in June 1995. Incorporating
+ the portions dealing with terminal capabilities almost without change,
+ Raymond made improvements to the way command-line parameters were
+ handled.
+
+ Before <EM>ncurses</EM> 6.1 (2018), its <STRONG>tset</STRONG> and <STRONG>tput</STRONG> utilities differed.
+
+ <STRONG>o</STRONG> <STRONG>tset</STRONG> was more effective, resetting the terminal modes and special
+ characters.
- Until changes made after ncurses 6.0, <STRONG>tput</STRONG> did not modify terminal
- modes. <STRONG>tput</STRONG> now uses a similar scheme, using functions shared with
- <STRONG>tset</STRONG> (and ultimately based on the 4.4BSD <STRONG>tset</STRONG>). If it is not able
- to open a terminal, e.g., when running in <STRONG>cron</STRONG>, <STRONG>tput</STRONG> will return an
- error.
+ <STRONG>o</STRONG> On the other hand, <STRONG>tset</STRONG>'s repertoire of terminal capabilities for
+ resetting the terminal was more limited; it had only equivalents of
+ <STRONG>reset_1string</STRONG> (<STRONG>rs1</STRONG>), <STRONG>reset_2string</STRONG> (<STRONG>rs2</STRONG>), and <STRONG>reset_file</STRONG> (<STRONG>rf</STRONG>), and
+ not the tab stop and margin update features of <STRONG>tput</STRONG>.
- <STRONG>o</STRONG> AT&amp;T <STRONG>tput</STRONG> guesses the type of its <EM>capname</EM> operands by seeing if all
- of the characters are numeric, or not.
+ The <STRONG>reset</STRONG> program is traditionally an alias for <STRONG>tset</STRONG> due to its ability
+ to reset terminal modes and special characters.
- Most implementations which provide support for <EM>capname</EM> operands use
- the <EM>tparm</EM> function to expand parameters in it. That function
- expects a mixture of numeric and string parameters, requiring <STRONG>tput</STRONG>
- to know which type to use.
+ As of <EM>ncurses</EM> 6.1, the "reset" features of the two programs are
+ (mostly) the same. Two minor differences remain.
- This implementation uses a table to determine the parameter types
- for the standard <EM>capname</EM> operands, and an internal library function
- to analyze nonstandard <EM>capname</EM> operands.
+ <STRONG>o</STRONG> The <STRONG>tset</STRONG> program waits one second when resetting, in case the
+ terminal happens to be a hardware device.
- This implementation (unlike others) can accept both <EM>termcap</EM> and
- <EM>terminfo</EM> names for the <EM>capname</EM> feature, if <EM>termcap</EM> support is compiled
- in. However, the predefined <EM>termcap</EM> and <EM>terminfo</EM> names have two
- ambiguities in this case (and the <EM>terminfo</EM> name is assumed):
+ <STRONG>o</STRONG> The two programs write the terminal initialization strings to
+ different streams; that is, standard error for <STRONG>tset</STRONG> and standard
+ output for <STRONG>tput</STRONG>.
- <STRONG>o</STRONG> The <EM>termcap</EM> name <STRONG>dl</STRONG> corresponds to the <EM>terminfo</EM> name <STRONG>dl1</STRONG> (delete
- one line).
- The <EM>terminfo</EM> name <STRONG>dl</STRONG> corresponds to the <EM>termcap</EM> name <STRONG>DL</STRONG> (delete a
- given number of lines).
- <STRONG>o</STRONG> The <EM>termcap</EM> name <STRONG>ed</STRONG> corresponds to the <EM>terminfo</EM> name <STRONG>rmdc</STRONG> (end
- delete mode).
- The <EM>terminfo</EM> name <STRONG>ed</STRONG> corresponds to the <EM>termcap</EM> name <STRONG>cd</STRONG> (clear to
- end of screen).
+</PRE><H2><a name="h2-EXAMPLES">EXAMPLES</a></H2><PRE>
+ <STRONG>tput</STRONG> <STRONG>init</STRONG>
+ Initialize the terminal according to the type of terminal in the
+ <EM>TERM</EM> environment variable. If the system does not reliably
+ initialize the terminal upon login, this command can be included
+ in <EM>$HOME/.profile</EM> after exporting the <EM>TERM</EM> environment variable.
- The <STRONG>longname</STRONG> and <STRONG>-S</STRONG> options, and the parameter-substitution features
- used in the <STRONG>cup</STRONG> example, were not supported in BSD curses before
- 4.3reno (1989) or in AT&amp;T/USL curses before SVr4 (1988).
+ <STRONG>tput</STRONG> <STRONG>-T5620</STRONG> <STRONG>reset</STRONG>
+ Reset an AT&amp;T 5620 terminal, overriding the terminal type in the
+ <EM>TERM</EM> environment variable.
- IEEE Std 1003.1/The Open Group Base Specifications Issue 7
- (POSIX.1-2008) documents only the operands for <STRONG>clear</STRONG>, <STRONG>init</STRONG> and <STRONG>reset</STRONG>.
- There are a few interesting observations to make regarding that:
+ <STRONG>tput</STRONG> <STRONG>cnorm</STRONG>
+ Set cursor to normal visibility.
- <STRONG>o</STRONG> In this implementation, <STRONG>clear</STRONG> is part of the <EM>capname</EM> support. The
- others (<STRONG>init</STRONG> and <STRONG>longname</STRONG>) do not correspond to terminal
- capabilities.
+ <STRONG>tput</STRONG> <STRONG>home</STRONG>
+ Move the cursor to row 0, column 0: the upper left corner of the
+ screen, usually known as the "home" cursor position.
- <STRONG>o</STRONG> Other implementations of <STRONG>tput</STRONG> on SVr4-based systems such as
- Solaris, IRIX64 and HPUX as well as others such as AIX and Tru64
- provide support for <EM>capname</EM> operands.
+ <STRONG>tput</STRONG> <STRONG>clear</STRONG>
+ Clear the screen: write the <STRONG>clear_screen</STRONG> capability's value to
+ the standard output stream.
- <STRONG>o</STRONG> A few platforms such as FreeBSD recognize termcap names rather than
- terminfo capability names in their respective <STRONG>tput</STRONG> commands. Since
- 2010, NetBSD's <STRONG>tput</STRONG> uses terminfo names. Before that, it (like
- FreeBSD) recognized termcap names.
+ <STRONG>tput</STRONG> <STRONG>cols</STRONG>
+ Report the number of columns used by the current terminal type.
- Because (apparently) <EM>all</EM> of the certified Unix systems support the full
- set of capability names, the reasoning for documenting only a few may
- not be apparent.
+ <STRONG>tput</STRONG> <STRONG>-Tadm3a</STRONG> <STRONG>cols</STRONG>
+ Report the number of columns used by an ADM-3A terminal.
- <STRONG>o</STRONG> X/Open Curses Issue 7 documents <STRONG>tput</STRONG> differently, with <EM>capname</EM> and
- the other features used in this implementation.
+ <STRONG>strong=`tput</STRONG> <STRONG>smso`</STRONG> <STRONG>normal=`tput</STRONG> <STRONG>rmso`</STRONG>
+ Set shell variables to capability values: <STRONG>strong</STRONG> and <STRONG>normal</STRONG>, to
+ begin and end, respectively, stand-out mode for the terminal.
+ One might use these to present a prompt.
- <STRONG>o</STRONG> That is, there are two standards for <STRONG>tput</STRONG>: POSIX (a subset) and
- X/Open Curses (the full implementation). POSIX documents a subset
- to avoid the complication of including X/Open Curses and the
- terminal capabilities database.
+ printf "${strong}Username:${normal} "
- <STRONG>o</STRONG> While it is certainly possible to write a <STRONG>tput</STRONG> program without
- using curses, none of the systems which have a curses
- implementation provide a <STRONG>tput</STRONG> utility which does not provide the
- <EM>capname</EM> feature.
+ <STRONG>tput</STRONG> <STRONG>hc</STRONG>
+ Indicate via exit status whether the terminal is a hard copy
+ device.
- X/Open Curses Issue 7 (2009) is the first version to document
- utilities. However that part of X/Open Curses does not follow existing
- practice (i.e., Unix features documented in SVID 3):
+ <STRONG>tput</STRONG> <STRONG>cup</STRONG> <STRONG>23</STRONG> <STRONG>4</STRONG>
+ Move the cursor to row 23, column 4.
+
+ <STRONG>tput</STRONG> <STRONG>cup</STRONG>
+ Report the value of the <STRONG>cursor_address</STRONG> (<STRONG>cup</STRONG>) capability (used
+ for cursor movement), with no parameters substituted.
+
+ <STRONG>tput</STRONG> <STRONG>longname</STRONG>
+ Report the <EM>terminfo</EM> database's description of the terminal type
+ specified in the <EM>TERM</EM> environment variable.
- <STRONG>o</STRONG> It assigns exit code 4 to "invalid operand", which may be the same
- as <EM>unknown</EM> <EM>capability</EM>. For instance, the source code for Solaris'
- xcurses uses the term "invalid" in this case.
+ <STRONG>tput</STRONG> <STRONG>-S</STRONG>
+ Process multiple capabilities. The <STRONG>-S</STRONG> option can be profitably
+ used with a shell "here document".
- <STRONG>o</STRONG> It assigns exit code 255 to a numeric variable that is not
- specified in the terminfo database. That likely is a documentation
- error, confusing the <STRONG>-1</STRONG> written to the standard output for an
- absent or cancelled numeric value versus an (unsigned) exit code.
+ $ <STRONG>tput</STRONG> <STRONG>-S</STRONG> <STRONG>&lt;&lt;!</STRONG>
+ &gt; <STRONG>clear</STRONG>
+ &gt; <STRONG>cup</STRONG> <STRONG>10</STRONG> <STRONG>10</STRONG>
+ &gt; <STRONG>bold</STRONG>
+ &gt; <STRONG>!</STRONG>
- The various Unix systems (AIX, HPUX, Solaris) use the same exit-codes
- as ncurses.
+ The foregoing clears the screen, moves the cursor to position
+ (10, 10) and turns on bold (extra bright) mode.
- NetBSD curses documents different exit codes which do not correspond to
- either ncurses or X/Open.
+ <STRONG>tput</STRONG> <STRONG>clear</STRONG> <STRONG>cup</STRONG> <STRONG>10</STRONG> <STRONG>10</STRONG> <STRONG>bold</STRONG>
+ Perform the same actions as the foregoing "<STRONG>tput</STRONG> <STRONG>-S</STRONG>" example.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="clear.1.html">clear(1)</A></STRONG>, <STRONG>stty(1)</STRONG>, <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>, <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>, <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
-
- This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210109).
+ <STRONG><A HREF="clear.1.html">clear(1)</A></STRONG>, <STRONG>stty(1)</STRONG>, <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>, <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>, <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
- <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG>
+ncurses 6.5 2024-04-20 <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -535,18 +563,18 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
<ul>
-<li><a href="#h3-Options">Options</a></li>
-<li><a href="#h3-Commands">Commands</a></li>
+<li><a href="#h3-Operands">Operands</a></li>
<li><a href="#h3-Aliases">Aliases</a></li>
<li><a href="#h3-Terminal-Size">Terminal Size</a></li>
</ul>
</li>
-<li><a href="#h2-EXAMPLES">EXAMPLES</a></li>
+<li><a href="#h2-OPTIONS">OPTIONS</a></li>
+<li><a href="#h2-EXIT-STATUS">EXIT STATUS</a></li>
+<li><a href="#h2-ENVIRONMENT">ENVIRONMENT</a></li>
<li><a href="#h2-FILES">FILES</a></li>
-<li><a href="#h2-EXIT-CODES">EXIT CODES</a></li>
-<li><a href="#h2-DIAGNOSTICS">DIAGNOSTICS</a></li>
-<li><a href="#h2-HISTORY">HISTORY</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
+<li><a href="#h2-HISTORY">HISTORY</a></li>
+<li><a href="#h2-EXAMPLES">EXAMPLES</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
diff --git a/doc/html/man/tset.1.html b/doc/html/man/tset.1.html
index 471e05307aaf..a5669568fb27 100644
--- a/doc/html/man/tset.1.html
+++ b/doc/html/man/tset.1.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,37 +27,39 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: tset.1,v 1.55 2020/02/02 23:34:34 tom Exp @
+ * @Id: tset.1,v 1.85 2024/04/27 17:57:47 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>tset 1</TITLE>
+<TITLE>tset 1 2024-04-27 ncurses 6.5 User commands</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">tset 1</H1>
+<H1 class="no-header">tset 1 2024-04-27 ncurses 6.5 User commands</H1>
<PRE>
-<STRONG><A HREF="tset.1.html">tset(1)</A></STRONG> General Commands Manual <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>
+<STRONG><A HREF="tset.1.html">tset(1)</A></STRONG> User commands <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>tset</STRONG>, <STRONG>reset</STRONG> - terminal initialization
+ <STRONG>tset</STRONG>, <STRONG>reset</STRONG> - initialize or reset terminal state
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
- <STRONG>tset</STRONG> [<STRONG>-IQVcqrsw</STRONG>] [<STRONG>-</STRONG>] [<STRONG>-e</STRONG> <EM>ch</EM>] [<STRONG>-i</STRONG> <EM>ch</EM>] [<STRONG>-k</STRONG> <EM>ch</EM>] [<STRONG>-m</STRONG> <EM>mapping</EM>] [<EM>terminal</EM>]
- <STRONG>reset</STRONG> [<STRONG>-IQVcqrsw</STRONG>] [<STRONG>-</STRONG>] [<STRONG>-e</STRONG> <EM>ch</EM>] [<STRONG>-i</STRONG> <EM>ch</EM>] [<STRONG>-k</STRONG> <EM>ch</EM>] [<STRONG>-m</STRONG> <EM>mapping</EM>] [<EM>terminal</EM>]
+ <STRONG>tset</STRONG> [<STRONG>-IQVcqrsw</STRONG>] [<STRONG>-</STRONG>] [<STRONG>-e</STRONG> <EM>ch</EM>] [<STRONG>-i</STRONG> <EM>ch</EM>] [<STRONG>-k</STRONG> <EM>ch</EM>] [<STRONG>-m</STRONG> <EM>mapping</EM>] [<EM>terminal-</EM>
+ <EM>type</EM>]
+ <STRONG>reset</STRONG> [<STRONG>-IQVcqrsw</STRONG>] [<STRONG>-</STRONG>] [<STRONG>-e</STRONG> <EM>ch</EM>] [<STRONG>-i</STRONG> <EM>ch</EM>] [<STRONG>-k</STRONG> <EM>ch</EM>] [<STRONG>-m</STRONG> <EM>mapping</EM>] [<EM>terminal-</EM>
+ <EM>type</EM>]
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
-</PRE><H3><a name="h3-tset---initialization">tset - initialization</a></H3><PRE>
+</PRE><H3><a name="h3-tset----initialization"><EM>tset</EM> -- initialization</a></H3><PRE>
This program initializes terminals.
First, <STRONG>tset</STRONG> retrieves the current terminal mode settings for your
@@ -79,48 +81,49 @@
1. The <STRONG>terminal</STRONG> argument specified on the command line.
- 2. The value of the <STRONG>TERM</STRONG> environmental variable.
+ 2. The value of the <EM>TERM</EM> environment variable.
3. (BSD systems only.) The terminal type associated with the standard
- error output device in the <EM>/etc/ttys</EM> file. (On System-V-like UNIXes
- and systems using that convention, <EM>getty</EM> does this job by setting <STRONG>TERM</STRONG>
+ error output device in the <EM>/etc/ttys</EM> file. (On System V hosts and
+ systems using that convention, <STRONG>getty(8)</STRONG> does this job by setting <EM>TERM</EM>
according to the type passed to it by <EM>/etc/inittab</EM>.)
- 4. The default terminal type, "unknown".
+ 4. The default terminal type, "unknown", is not suitable for curses
+ applications.
- If the terminal type was not specified on the command-line, the <STRONG>-m</STRONG>
- option mappings are then applied (see the section <STRONG>TERMINAL</STRONG> <STRONG>TYPE</STRONG> <STRONG>MAPPING</STRONG>
- for more information). Then, if the terminal type begins with a
- question mark ("?"), the user is prompted for confirmation of the
- terminal type. An empty response confirms the type, or, another type
- can be entered to specify a new type. Once the terminal type has been
- determined, the terminal description for the terminal is retrieved. If
- no terminal description is found for the type, the user is prompted for
- another terminal type.
+ If the terminal type was not specified on the command-line, the <STRONG>-m</STRONG>
+ option mappings are then applied; see subsection "Terminal Type
+ Mapping". Then, if the terminal type begins with a question mark
+ ("?"), the user is prompted for confirmation of the terminal type. An
+ empty response confirms the type, or, another type can be entered to
+ specify a new type. Once the terminal type has been determined, the
+ terminal description for the terminal is retrieved. If no terminal
+ description is found for the type, the user is prompted for another
+ terminal type.
Once the terminal description is retrieved,
- <STRONG>o</STRONG> if the "<STRONG>-w</STRONG>" option is enabled, <STRONG>tset</STRONG> may update the terminal's
+ <STRONG>o</STRONG> if the "<STRONG>-w</STRONG>" option is enabled, <STRONG>tset</STRONG> may update the terminal's
window size.
- If the window size cannot be obtained from the operating system,
- but the terminal description (or environment, e.g., <STRONG>LINES</STRONG> and
- <STRONG>COLUMNS</STRONG> variables specify this), use this to set the operating
+ If the window size cannot be obtained from the operating system,
+ but the terminal description (or environment, e.g., <EM>LINES</EM> and
+ <EM>COLUMNS</EM> variables specify this), use this to set the operating
system's notion of the window size.
- <STRONG>o</STRONG> if the "<STRONG>-c</STRONG>" option is enabled, the backspace, interrupt and line
+ <STRONG>o</STRONG> if the "<STRONG>-c</STRONG>" option is enabled, the backspace, interrupt and line
kill characters (among many other things) are set
- <STRONG>o</STRONG> unless the "<STRONG>-I</STRONG>" option is enabled, the terminal and tab
- <EM>initialization</EM> strings are sent to the standard error output, and
+ <STRONG>o</STRONG> unless the "<STRONG>-I</STRONG>" option is enabled, the terminal and tab
+ <EM>initialization</EM> strings are sent to the standard error output, and
<STRONG>tset</STRONG> waits one second (in case a hardware reset was issued).
- <STRONG>o</STRONG> Finally, if the erase, interrupt and line kill characters have
- changed, or are not set to their default values, their values are
+ <STRONG>o</STRONG> Finally, if the erase, interrupt and line kill characters have
+ changed, or are not set to their default values, their values are
displayed to the standard error output.
-</PRE><H3><a name="h3-reset---reinitialization">reset - reinitialization</a></H3><PRE>
+</PRE><H3><a name="h3-reset----reinitialization"><EM>reset</EM> -- reinitialization</a></H3><PRE>
When invoked as <STRONG>reset</STRONG>, <STRONG>tset</STRONG> sets the terminal modes to "sane" values:
<STRONG>o</STRONG> sets cooked and echo modes,
@@ -132,10 +135,10 @@
<STRONG>o</STRONG> resets any unset special characters to their default values
before doing the terminal initialization described above. Also, rather
- than using the terminal <EM>initialization</EM> strings, it uses the terminal
+ than using the terminal <EM>initialization</EM> strings, it uses the terminal
<EM>reset</EM> strings.
- The <STRONG>reset</STRONG> command is useful after a program dies leaving a terminal in
+ The <STRONG>reset</STRONG> command is useful after a program dies leaving a terminal in
an abnormal state:
<STRONG>o</STRONG> you may have to type
@@ -143,76 +146,31 @@
<EM>&lt;LF&gt;</EM><STRONG>reset</STRONG><EM>&lt;LF&gt;</EM>
(the line-feed character is normally control-J) to get the terminal
- to work, as carriage-return may no longer work in the abnormal
+ to work, as carriage-return may no longer work in the abnormal
state.
<STRONG>o</STRONG> Also, the terminal will often not echo the command.
-</PRE><H2><a name="h2-OPTIONS">OPTIONS</a></H2><PRE>
- The options are as follows:
-
- <STRONG>-c</STRONG> Set control characters and modes.
-
- <STRONG>-e</STRONG> Set the erase character to <EM>ch</EM>.
-
- <STRONG>-I</STRONG> Do not send the terminal or tab initialization strings to the
- terminal.
-
- <STRONG>-i</STRONG> Set the interrupt character to <EM>ch</EM>.
-
- <STRONG>-k</STRONG> Set the line kill character to <EM>ch</EM>.
-
- <STRONG>-m</STRONG> Specify a mapping from a port type to a terminal. See the section
- <STRONG>TERMINAL</STRONG> <STRONG>TYPE</STRONG> <STRONG>MAPPING</STRONG> for more information.
-
- <STRONG>-Q</STRONG> Do not display any values for the erase, interrupt and line kill
- characters. Normally <STRONG>tset</STRONG> displays the values for control
- characters which differ from the system's default values.
-
- <STRONG>-q</STRONG> The terminal type is displayed to the standard output, and the
- terminal is not initialized in any way. The option "-" by itself
- is equivalent but archaic.
-
- <STRONG>-r</STRONG> Print the terminal type to the standard error output.
-
- <STRONG>-s</STRONG> Print the sequence of shell commands to initialize the environment
- variable <STRONG>TERM</STRONG> to the standard output. See the section <STRONG>SETTING</STRONG> <STRONG>THE</STRONG>
- <STRONG>ENVIRONMENT</STRONG> for details.
-
- <STRONG>-V</STRONG> reports the version of ncurses which was used in this program, and
- exits.
-
- <STRONG>-w</STRONG> Resize the window to match the size deduced via <STRONG><A HREF="curs_terminfo.3x.html">setupterm(3x)</A></STRONG>.
- Normally this has no effect, unless <STRONG>setupterm</STRONG> is not able to
- detect the window size.
-
- The arguments for the <STRONG>-e</STRONG>, <STRONG>-i</STRONG>, and <STRONG>-k</STRONG> options may either be entered as
- actual characters or by using the "hat" notation, i.e., control-h may
- be specified as "^H" or "^h".
-
- If neither <STRONG>-c</STRONG> or <STRONG>-w</STRONG> is given, both options are assumed.
-
-
-</PRE><H2><a name="h2-SETTING-THE-ENVIRONMENT">SETTING THE ENVIRONMENT</a></H2><PRE>
+</PRE><H3><a name="h3-Setting-the-Environment">Setting the Environment</a></H3><PRE>
It is often desirable to enter the terminal type and information about
the terminal's capabilities into the shell's environment. This is done
using the <STRONG>-s</STRONG> option.
When the <STRONG>-s</STRONG> option is specified, the commands to enter the information
into the shell's environment are written to the standard output. If
- the <STRONG>SHELL</STRONG> environmental variable ends in "csh", the commands are for
- <STRONG>csh</STRONG>, otherwise, they are for <STRONG>sh</STRONG>. Note, the <STRONG>csh</STRONG> commands set and unset
+ the <EM>SHELL</EM> environment variable ends in "csh", the commands are for
+ <STRONG>csh(1)</STRONG>, otherwise, they are for <STRONG>sh(1)</STRONG>. The <EM>csh</EM> commands set and unset
the shell variable <STRONG>noglob</STRONG>, leaving it unset. The following line in the
<STRONG>.login</STRONG> or <STRONG>.profile</STRONG> files will initialize the environment correctly:
eval `tset -s options ... `
-</PRE><H2><a name="h2-TERMINAL-TYPE-MAPPING">TERMINAL TYPE MAPPING</a></H2><PRE>
+</PRE><H3><a name="h3-Terminal-Type-Mapping">Terminal Type Mapping</a></H3><PRE>
When the terminal is not hardwired into the system (or the current
system information is incorrect) the terminal type derived from the
- <EM>/etc/ttys</EM> file or the <STRONG>TERM</STRONG> environmental variable is often something
+ <EM>/etc/ttys</EM> file or the <EM>TERM</EM> environment variable is often something
generic like <STRONG>network</STRONG>, <STRONG>dialup</STRONG>, or <STRONG>unknown</STRONG>. When <STRONG>tset</STRONG> is used in a
startup script it is often desirable to provide information about the
type of terminal used on such ports.
@@ -254,148 +212,188 @@
No whitespace characters are permitted in the <STRONG>-m</STRONG> option argument.
Also, to avoid problems with meta-characters, it is suggested that the
entire <STRONG>-m</STRONG> option argument be placed within single quote characters, and
- that <STRONG>csh</STRONG> users insert a backslash character ("\") before any
+ that <EM>csh</EM> users insert a backslash character ("\") before any
exclamation marks ("!").
-</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
- A <STRONG>reset</STRONG> command appeared in 2BSD (April 1979), written by Kurt Shoens.
- This program set the <EM>erase</EM> and <EM>kill</EM> characters to <STRONG>^H</STRONG> (backspace) and <STRONG>@</STRONG>
- respectively. Mark Horton improved that in 3BSD (October 1979), adding
- <EM>intr</EM>, <EM>quit</EM>, <EM>start</EM>/<EM>stop</EM> and <EM>eof</EM> characters as well as changing the
- program to avoid modifying any user settings.
+</PRE><H2><a name="h2-OPTIONS">OPTIONS</a></H2><PRE>
+ The options are as follows:
- Later in 4.1BSD (December 1980), Mark Horton added a call to the <STRONG>tset</STRONG>
- program using the <STRONG>-I</STRONG> and <STRONG>-Q</STRONG> options, i.e., using that to improve the
- terminal modes. With those options, that version of <STRONG>reset</STRONG> did not use
- the termcap database.
+ <STRONG>-c</STRONG> Set control characters and modes.
- A separate <STRONG>tset</STRONG> command was provided in 2BSD by Eric Allman. While the
- oldest published source (from 1979) provides both <STRONG>tset</STRONG> and <STRONG>reset</STRONG>,
- Allman's comments in the 2BSD source code indicate that he began work
- in October 1977, continuing development over the next few years.
+ <STRONG>-e</STRONG> <EM>ch</EM>
+ Set the erase character to <EM>ch</EM>.
- In September 1980, Eric Allman modified <STRONG>tset</STRONG>, adding the code from the
- existing "reset" feature when <STRONG>tset</STRONG> was invoked as <STRONG>reset</STRONG>. Rather than
- simply copying the existing program, in this merged version, <STRONG>tset</STRONG> used
- the termcap database to do additional (re)initialization of the
- terminal. This version appeared in 4.1cBSD, late in 1982.
+ <STRONG>-I</STRONG> Do not send the terminal or tab initialization strings to the
+ terminal.
+
+ <STRONG>-i</STRONG> <EM>ch</EM>
+ Set the interrupt character to <EM>ch</EM>.
+
+ <STRONG>-k</STRONG> <EM>ch</EM>
+ Set the line kill character to <EM>ch</EM>.
+
+ <STRONG>-m</STRONG> <EM>mapping</EM>
+ Specify a mapping from a port type to a terminal; see subsection
+ "Terminal Type Mapping".
+
+ <STRONG>-Q</STRONG> Do not display any values for the erase, interrupt and line kill
+ characters. Normally <STRONG>tset</STRONG> displays the values for control
+ characters which differ from the system's default values.
- Other developers (e.g., Keith Bostic and Jim Bloom) continued to modify
- <STRONG>tset</STRONG> until 4.4BSD was released in 1993.
+ <STRONG>-q</STRONG> The terminal type is displayed to the standard output, and the
+ terminal is not initialized in any way. The option "-" by itself
+ is equivalent but archaic.
- The <STRONG>ncurses</STRONG> implementation was lightly adapted from the 4.4BSD sources
- for a terminfo environment by Eric S. Raymond &lt;esr@snark.thyrsus.com&gt;.
+ <STRONG>-r</STRONG> Print the terminal type to the standard error output.
+ <STRONG>-s</STRONG> Print the sequence of shell commands to initialize the environment
+ variable <EM>TERM</EM> to the standard output; see subsection "Setting the
+ Environment".
-</PRE><H2><a name="h2-COMPATIBILITY">COMPATIBILITY</a></H2><PRE>
- Neither IEEE Std 1003.1/The Open Group Base Specifications Issue 7
+ <STRONG>-V</STRONG> reports the version of <EM>ncurses</EM> which was used in this program, and
+ exits.
+
+ <STRONG>-w</STRONG> Resize the window to match the size deduced via <STRONG><A HREF="curs_terminfo.3x.html">setupterm(3x)</A></STRONG>.
+ Normally this has no effect, unless <STRONG>setupterm</STRONG> is not able to
+ detect the window size.
+
+ The arguments for the <STRONG>-e</STRONG>, <STRONG>-i</STRONG>, and <STRONG>-k</STRONG> options may either be entered as
+ actual characters or by using the "hat" notation, i.e., control-h may
+ be specified as "^H" or "^h".
+
+ If neither <STRONG>-c</STRONG> or <STRONG>-w</STRONG> is given, both options are assumed.
+
+
+</PRE><H2><a name="h2-ENVIRONMENT">ENVIRONMENT</a></H2><PRE>
+ The <STRONG>tset</STRONG> command uses these environment variables:
+
+ <EM>SHELL</EM>
+ tells <STRONG>tset</STRONG> whether to initialize <EM>TERM</EM> using <STRONG>sh(1)</STRONG> or <STRONG>csh(1)</STRONG>
+ syntax.
+
+ <EM>TERM</EM> Denotes your terminal type. Each terminal type is distinct,
+ though many are similar.
+
+ <EM>TERMCAP</EM>
+ may denote the location of a termcap database. If it is not an
+ absolute pathname, e.g., begins with a "/", <STRONG>tset</STRONG> removes the
+ variable from the environment before looking for the terminal
+ description.
+
+
+</PRE><H2><a name="h2-FILES">FILES</a></H2><PRE>
+ <EM>/etc/ttys</EM>
+ system port name to terminal type mapping database (BSD versions
+ only).
+
+ <EM>/usr/share/terminfo</EM>
+ compiled terminal description database directory
+
+
+</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
+ Neither IEEE Std 1003.1/The Open Group Base Specifications Issue 7
(POSIX.1-2008) nor X/Open Curses Issue 7 documents <STRONG>tset</STRONG> or <STRONG>reset</STRONG>.
- The AT&amp;T <STRONG>tput</STRONG> utility (AIX, HPUX, Solaris) incorporated the terminal-
- mode manipulation as well as termcap-based features such as resetting
- tabstops from <STRONG>tset</STRONG> in BSD (4.1c), presumably with the intention of
- making <STRONG>tset</STRONG> obsolete. However, each of those systems still provides
- <STRONG>tset</STRONG>. In fact, the commonly-used <STRONG>reset</STRONG> utility is always an alias for
+ The AT&amp;T <STRONG>tput</STRONG> utility (AIX, HP-UX, Solaris) incorporated the terminal-
+ mode manipulation as well as termcap-based features such as resetting
+ tabstops from <STRONG>tset</STRONG> in BSD (4.1c), presumably with the intention of
+ making <STRONG>tset</STRONG> obsolete. However, each of those systems still provides
+ <STRONG>tset</STRONG>. In fact, the commonly-used <STRONG>reset</STRONG> utility is always an alias for
<STRONG>tset</STRONG>.
- The <STRONG>tset</STRONG> utility provides for backward-compatibility with BSD
- environments (under most modern UNIXes, <STRONG>/etc/inittab</STRONG> and <STRONG>getty(1)</STRONG> can
- set <STRONG>TERM</STRONG> appropriately for each dial-up line; this obviates what was
- <STRONG>tset</STRONG>'s most important use). This implementation behaves like 4.4BSD
- <STRONG>tset</STRONG>, with a few exceptions specified here.
+ The <STRONG>tset</STRONG> utility provides backward compatibility with BSD environments;
+ under most modern Unices, <EM>/etc/inittab</EM> and <STRONG>getty(8)</STRONG> can set <EM>TERM</EM>
+ appropriately for each dial-up line, obviating what was <STRONG>tset</STRONG>'s most
+ important use. This implementation behaves like 4.4BSD <STRONG>tset</STRONG>, with a
+ few exceptions we shall consider now.
- A few options are different because the <STRONG>TERMCAP</STRONG> variable is no longer
- supported under terminfo-based <STRONG>ncurses</STRONG>:
+ A few options are different because the <EM>TERMCAP</EM> variable is no longer
+ supported under terminfo-based <EM>ncurses</EM>:
- <STRONG>o</STRONG> The <STRONG>-S</STRONG> option of BSD <STRONG>tset</STRONG> no longer works; it prints an error
+ <STRONG>o</STRONG> The <STRONG>-S</STRONG> option of BSD <STRONG>tset</STRONG> no longer works; it prints an error
message to the standard error and dies.
- <STRONG>o</STRONG> The <STRONG>-s</STRONG> option only sets <STRONG>TERM</STRONG>, not <STRONG>TERMCAP</STRONG>.
+ <STRONG>o</STRONG> The <STRONG>-s</STRONG> option only sets <EM>TERM</EM>, not <EM>TERMCAP</EM>.
- There was an undocumented 4.4BSD feature that invoking <STRONG>tset</STRONG> via a link
- named "TSET" (or via any other name beginning with an upper-case
+ There was an undocumented 4.4BSD feature that invoking <STRONG>tset</STRONG> via a link
+ named "TSET" (or via any other name beginning with an upper-case
letter) set the terminal to use upper-case only. This feature has been
omitted.
The <STRONG>-A</STRONG>, <STRONG>-E</STRONG>, <STRONG>-h</STRONG>, <STRONG>-u</STRONG> and <STRONG>-v</STRONG> options were deleted from the <STRONG>tset</STRONG> utility in
- 4.4BSD. None of them were documented in 4.3BSD and all are of limited
- utility at best. The <STRONG>-a</STRONG>, <STRONG>-d</STRONG>, and <STRONG>-p</STRONG> options are similarly not
- documented or useful, but were retained as they appear to be in
- widespread use. It is strongly recommended that any usage of these
+ 4.4BSD. None of them were documented in 4.3BSD and all are of limited
+ utility at best. The <STRONG>-a</STRONG>, <STRONG>-d</STRONG>, and <STRONG>-p</STRONG> options are similarly not
+ documented or useful, but were retained as they appear to be in
+ widespread use. It is strongly recommended that any usage of these
three options be changed to use the <STRONG>-m</STRONG> option instead. The <STRONG>-a</STRONG>, <STRONG>-d</STRONG>, and
<STRONG>-p</STRONG> options are therefore omitted from the usage summary above.
- Very old systems, e.g., 3BSD, used a different terminal driver which
- was replaced in 4BSD in the early 1980s. To accommodate these older
- systems, the 4BSD <STRONG>tset</STRONG> provided a <STRONG>-n</STRONG> option to specify that the new
- terminal driver should be used. This implementation does not provide
+ Very old systems, e.g., 3BSD, used a different terminal driver which
+ was replaced in 4BSD in the early 1980s. To accommodate these older
+ systems, the 4BSD <STRONG>tset</STRONG> provided a <STRONG>-n</STRONG> option to specify that the new
+ terminal driver should be used. This implementation does not provide
that choice.
- It is still permissible to specify the <STRONG>-e</STRONG>, <STRONG>-i</STRONG>, and <STRONG>-k</STRONG> options without
+ It is still permissible to specify the <STRONG>-e</STRONG>, <STRONG>-i</STRONG>, and <STRONG>-k</STRONG> options without
arguments, although it is strongly recommended that such usage be fixed
to explicitly specify the character.
- As of 4.4BSD, executing <STRONG>tset</STRONG> as <STRONG>reset</STRONG> no longer implies the <STRONG>-Q</STRONG> option.
+ As of 4.4BSD, executing <STRONG>tset</STRONG> as <STRONG>reset</STRONG> no longer implies the <STRONG>-Q</STRONG> option.
Also, the interaction between the - option and the <EM>terminal</EM> argument in
some historic implementations of <STRONG>tset</STRONG> has been removed.
- The <STRONG>-c</STRONG> and <STRONG>-w</STRONG> options are not found in earlier implementations.
+ The <STRONG>-c</STRONG> and <STRONG>-w</STRONG> options are not found in earlier implementations.
However, a different window size-change feature was provided in 4.4BSD.
- <STRONG>o</STRONG> In 4.4BSD, <STRONG>tset</STRONG> uses the window size from the termcap description
- to set the window size if <STRONG>tset</STRONG> is not able to obtain the window
+ <STRONG>o</STRONG> In 4.4BSD, <STRONG>tset</STRONG> uses the window size from the termcap description
+ to set the window size if <STRONG>tset</STRONG> is not able to obtain the window
size from the operating system.
- <STRONG>o</STRONG> In ncurses, <STRONG>tset</STRONG> obtains the window size using <STRONG>setupterm</STRONG>, which may
- be from the operating system, the <STRONG>LINES</STRONG> and <STRONG>COLUMNS</STRONG> environment
+ <STRONG>o</STRONG> In <EM>ncurses</EM>, <STRONG>tset</STRONG> obtains the window size using <STRONG><A HREF="curs_terminfo.3x.html">setupterm(3x)</A></STRONG>, which
+ may be from the operating system, the <EM>LINES</EM> and <EM>COLUMNS</EM> environment
variables or the terminal description.
- Obtaining the window size from the terminal description is common to
- both implementations, but considered obsolescent. Its only practical
- use is for hardware terminals. Generally speaking, a window size would
- be unset only if there were some problem obtaining the value from the
- operating system (and <STRONG>setupterm</STRONG> would still fail). For that reason,
- the <STRONG>LINES</STRONG> and <STRONG>COLUMNS</STRONG> environment variables may be useful for working
- around window-size problems. Those have the drawback that if the
- window is resized, those variables must be recomputed and reassigned.
- To do this more easily, use the <STRONG><A HREF="resize.1.html">resize(1)</A></STRONG> program.
+ Obtaining the window size from a terminal's type description is common
+ to both implementations, but considered obsolescent. Its only
+ practical use is for hardware terminals. Generally, the window size
+ will remain uninitialized only if there were a problem obtaining the
+ value from the operating system (and <STRONG>setupterm</STRONG> would still fail). The
+ <EM>LINES</EM> and <EM>COLUMNS</EM> environment variables may thus be useful for working
+ around window-size problems, but have the drawback that if the window
+ is resized, their values must be recomputed and reassigned. The
+ <STRONG>resize(1)</STRONG> program distributed with <STRONG>xterm(1)</STRONG> assists this activity.
-</PRE><H2><a name="h2-ENVIRONMENT">ENVIRONMENT</a></H2><PRE>
- The <STRONG>tset</STRONG> command uses these environment variables:
-
- SHELL
- tells <STRONG>tset</STRONG> whether to initialize <STRONG>TERM</STRONG> using <STRONG>sh</STRONG> or <STRONG>csh</STRONG> syntax.
-
- TERM Denotes your terminal type. Each terminal type is distinct,
- though many are similar.
-
- TERMCAP
- may denote the location of a termcap database. If it is not an
- absolute pathname, e.g., begins with a "/", <STRONG>tset</STRONG> removes the
- variable from the environment before looking for the terminal
- description.
-
-
-</PRE><H2><a name="h2-FILES">FILES</a></H2><PRE>
- /etc/ttys
- system port name to terminal type mapping database (BSD versions
- only).
-
- /usr/share/terminfo
- terminal capability database
+</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
+ A <STRONG>reset</STRONG> command written by Kurt Shoens appeared in 1BSD (March 1978).
+ It set the <EM>erase</EM> and <EM>kill</EM> characters to <STRONG>^H</STRONG> (backspace) and <STRONG>@</STRONG>
+ respectively. Mark Horton improved this <STRONG>reset</STRONG> in 3BSD (October 1979),
+ adding <EM>intr</EM>, <EM>quit</EM>, <EM>start</EM>/<EM>stop</EM>, and <EM>eof</EM> characters as well as changing
+ the program to avoid modifying any user settings. That version of
+ <STRONG>reset</STRONG> did not use <EM>termcap</EM>.
+
+ Eric Allman wrote a distinct <STRONG>tset</STRONG> command for 1BSD, using a forerunner
+ of <EM>termcap</EM> called <EM>ttycap</EM>. Allman's comments in the source code
+ indicate that he began work in October 1977, continuing development
+ over the next few years. By late 1979, it had migrated to <EM>termcap</EM> and
+ handled the <EM>TERMCAP</EM> variable. Later comments indicate that <STRONG>tset</STRONG> was
+ modified in September 1980 to use logic copied from the 3BSD "reset"
+ program when it was invoked as <STRONG>reset</STRONG>. This version appeared in
+ 4.1cBSD, late in 1982. Other developers such as Keith Bostic and Jim
+ Bloom continued to modify <STRONG>tset</STRONG> until 4.4BSD was released in 1993.
+
+ The <EM>ncurses</EM> implementation was lightly adapted from the 4.4BSD sources
+ to use the <EM>terminfo</EM> API by Eric S. Raymond &lt;esr@snark.thyrsus.com&gt;.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
<STRONG>csh(1)</STRONG>, <STRONG>sh(1)</STRONG>, <STRONG>stty(1)</STRONG>, <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>, <STRONG>tty(4)</STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>,
<STRONG>ttys(5)</STRONG>, <STRONG>environ(7)</STRONG>
- This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210109).
-
- <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>
+ncurses 6.5 2024-04-27 <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -403,17 +401,17 @@
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
<ul>
-<li><a href="#h3-tset---initialization">tset - initialization</a></li>
-<li><a href="#h3-reset---reinitialization">reset - reinitialization</a></li>
+<li><a href="#h3-tset----initialization">tset -- initialization</a></li>
+<li><a href="#h3-reset----reinitialization">reset -- reinitialization</a></li>
+<li><a href="#h3-Setting-the-Environment">Setting the Environment</a></li>
+<li><a href="#h3-Terminal-Type-Mapping">Terminal Type Mapping</a></li>
</ul>
</li>
<li><a href="#h2-OPTIONS">OPTIONS</a></li>
-<li><a href="#h2-SETTING-THE-ENVIRONMENT">SETTING THE ENVIRONMENT</a></li>
-<li><a href="#h2-TERMINAL-TYPE-MAPPING">TERMINAL TYPE MAPPING</a></li>
-<li><a href="#h2-HISTORY">HISTORY</a></li>
-<li><a href="#h2-COMPATIBILITY">COMPATIBILITY</a></li>
<li><a href="#h2-ENVIRONMENT">ENVIRONMENT</a></li>
<li><a href="#h2-FILES">FILES</a></li>
+<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
+<li><a href="#h2-HISTORY">HISTORY</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
diff --git a/doc/html/man/user_caps.5.html b/doc/html/man/user_caps.5.html
index ce284d30f1a8..10b6f77649da 100644
--- a/doc/html/man/user_caps.5.html
+++ b/doc/html/man/user_caps.5.html
@@ -1,6 +1,7 @@
-<!--
+<!--
+ * t
****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,43 +28,45 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: user_caps.5,v 1.16 2020/12/19 21:26:11 tom Exp @
+ * @Id: user_caps.5,v 1.49 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>user_caps 5</TITLE>
+<TITLE>user_caps 5 2024-03-16 ncurses 6.5 File formats</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">user_caps 5</H1>
+<H1 class="no-header">user_caps 5 2024-03-16 ncurses 6.5 File formats</H1>
<PRE>
-<STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG> File Formats Manual <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>
+<STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG> File formats <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- user_caps - user-defined terminfo capabilities
+ user_caps - user-defined <EM>terminfo</EM> capability format
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
- <STRONG>tic</STRONG> <STRONG>-x,</STRONG> <STRONG>infocmp</STRONG> <STRONG>-x</STRONG>
+ <STRONG>infocmp</STRONG> <STRONG>-x</STRONG>
+
+ <STRONG>tic</STRONG> <STRONG>-x</STRONG>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
</PRE><H3><a name="h3-Background">Background</a></H3><PRE>
- Before ncurses 5.0, terminfo databases used a <EM>fixed</EM> <EM>repertoire</EM> of
+ Before <EM>ncurses</EM> 5.0, terminfo databases used a <EM>fixed</EM> <EM>repertoire</EM> of
terminal capabilities designed for the SVr2 terminal database in 1984,
and extended in stages through SVr4 (1989), and standardized in the
Single Unix Specification beginning in 1995.
Most of the <EM>extensions</EM> in this fixed repertoire were additions to the
- tables of boolean, numeric and string capabilities. Rather than change
+ tables of Boolean, numeric and string capabilities. Rather than change
the meaning of an existing capability, a new name was added. The
terminfo database uses a binary format; binary compatibility was
ensured by using a header which gave the number of items in the tables
@@ -89,21 +92,21 @@
needed, while others were added (out of order) to comply with
X/Open Curses.
- While ncurses' repertoire of predefined capabilities is closest to
+ While <EM>ncurses</EM>' repertoire of predefined capabilities is closest to
Solaris, Solaris's terminfo database has a few differences from the
- list published by X/Open Curses. For example, ncurses can be
+ list published by X/Open Curses. For example, <EM>ncurses</EM> can be
configured with tables which match the terminal databases for AIX,
HP-UX or OSF/1, rather than the default Solaris-like configuration.
- <STRONG>o</STRONG> In SVr4 curses and ncurses, the terminal database is defined at
+ <STRONG>o</STRONG> In SVr4 curses and <EM>ncurses</EM>, the terminal database is defined at
compile-time using a text file which lists the different terminal
capabilities.
In principle, the text-file can be extended, but doing this
requires recompiling and reinstalling the library. The text-file
- used in ncurses for terminal capabilities includes details for
+ used in <EM>ncurses</EM> for terminal capabilities includes details for
various systems past the documented X/Open Curses features. For
- example, ncurses supports these capabilities in each configuration:
+ example, <EM>ncurses</EM> supports these capabilities in each configuration:
memory_lock
(meml) lock memory above cursor
@@ -115,7 +118,7 @@
(box1) box characters primary set
The memory lock/unlock capabilities were included because they were
- used in the X11R6 terminal description for <STRONG>xterm</STRONG>. The <EM>box1</EM>
+ used in the X11R6 terminal description for <STRONG>xterm(1)</STRONG>. The <EM>box1</EM>
capability is used in tic to help with terminal descriptions
written for AIX.
@@ -132,13 +135,13 @@
Although termcap's extensibility was rarely used (it was never the
<EM>speaker</EM> who had actually used the feature), the criticism had a point.
- ncurses 5.0 provided a way to detect nonstandard capabilities,
+ <EM>ncurses</EM> 5.0 provided a way to detect nonstandard capabilities,
determine their type and optionally store and retrieve them in a way
which did not interfere with other applications. These are referred to
as <EM>user-defined</EM> <EM>capabilities</EM> because no modifications to the toolset's
predefined capability names are needed.
- The ncurses utilities <STRONG>tic</STRONG> and <STRONG>infocmp</STRONG> have a command-line option "-x"
+ The <EM>ncurses</EM> utilities <STRONG>tic</STRONG> and <STRONG>infocmp</STRONG> have a command-line option "-x"
to control whether the nonstandard capabilities are stored or
retrieved. A library function <STRONG>use_extended_names</STRONG> is provided for the
same purpose.
@@ -147,7 +150,7 @@
user-defined capability if the capability name is not one of the
predefined names.
- Because ncurses provides a termcap library interface, these user-
+ Because <EM>ncurses</EM> provides a termcap library interface, these user-
defined capabilities may be visible to termcap applications:
<STRONG>o</STRONG> The termcap interface (like all implementations of termcap)
@@ -168,7 +171,7 @@
predefined function-key names, to which a series of keys can be
assigned, that is insufficient for more than a dozen keys
multiplied by more than a couple of modifier combinations. The
- ncurses database uses a convention based on <STRONG>xterm</STRONG> to provide
+ <EM>ncurses</EM> database uses a convention based on <STRONG>xterm(1)</STRONG> to provide
extended special-key names.
Fitting that into termcap's limitation of 2-character names would
@@ -176,12 +179,12 @@
terminfo.
-</PRE><H3><a name="h3-Recognized-capabilities">Recognized capabilities</a></H3><PRE>
- The ncurses library uses the user-definable capabilities. While the
- terminfo database may have other extensions, ncurses makes explicit
+</PRE><H3><a name="h3-Recognized-Capabilities">Recognized Capabilities</a></H3><PRE>
+ The <EM>ncurses</EM> library uses the user-definable capabilities. While the
+ terminfo database may have other extensions, <EM>ncurses</EM> makes explicit
checks for these:
- AX <EM>boolean</EM>, asserts that the terminal interprets SGR 39 and SGR 49
+ AX <EM>Boolean</EM>, asserts that the terminal interprets SGR 39 and SGR 49
by resetting the foreground and background color, respectively,
to the default.
@@ -193,18 +196,24 @@
The command "<STRONG>tput</STRONG> <STRONG>clear</STRONG>" does the same thing.
+ NQ <EM>Boolean</EM>, used to suppress a consistency check in tic for the
+ <EM>ncurses</EM> capabilities in user6 through user9 (u6, u7, u8 and u9)
+ which tell how to query the terminal's cursor position and its
+ device attributes.
+
RGB
- <EM>boolean</EM>, <EM>number</EM> <STRONG>or</STRONG> <EM>string</EM>, to assert that the <STRONG>set_a_foreground</STRONG>
- and <STRONG>set_a_background</STRONG> capabilities correspond to <EM>direct</EM> <EM>colors</EM>,
- using an RGB (red/green/blue) convention. This capability allows
- the <STRONG>color_content</STRONG> function to return appropriate values without
- requiring the application to initialize colors using <STRONG>init_color</STRONG>.
+ <EM>Boolean</EM>, <EM>number</EM> <STRONG>or</STRONG> <EM>string</EM>, used to assert that the
+ <STRONG>set_a_foreground</STRONG> and <STRONG>set_a_background</STRONG> capabilities correspond to
+ <EM>direct</EM> <EM>colors</EM>, using an RGB (red/green/blue) convention. This
+ capability allows the <STRONG>color_content</STRONG> function to return
+ appropriate values without requiring the application to
+ initialize colors using <STRONG>init_color</STRONG>.
- The capability type determines the values which ncurses sees:
+ The capability type determines the values which <EM>ncurses</EM> sees:
- <EM>boolean</EM>
+ <EM>Boolean</EM>
implies that the number of bits for red, green and blue are
- the same. Using the maximum number of colors, ncurses adds
+ the same. Using the maximum number of colors, <EM>ncurses</EM> adds
two, divides that sum by three, and assigns the result to red,
green and blue in that order.
@@ -213,9 +222,9 @@
comparison to red.
<EM>number</EM>
- tells ncurses what result to add to red, green and blue. If
- ncurses runs out of bits, blue (and green) lose just as in the
- <EM>boolean</EM> case.
+ tells <EM>ncurses</EM> what result to add to red, green and blue. If
+ <EM>ncurses</EM> runs out of bits, blue (and green) lose just as in the
+ <EM>Boolean</EM> case.
<EM>string</EM>
explicitly list the number of bits used for red, green and
@@ -227,7 +236,7 @@
could define <STRONG>RGB#1</STRONG> to represent the standard eight ANSI colors,
i.e., one bit per color.
- U8 <EM>number</EM>, asserts that ncurses must use Unicode values for line-
+ U8 <EM>number</EM>, asserts that <EM>ncurses</EM> must use Unicode values for line-
drawing characters, and that it should ignore the alternate
character set capabilities when the locale uses UTF-8 encoding.
For more information, see the discussion of <STRONG>NCURSES_NO_UTF8_ACS</STRONG>
@@ -235,16 +244,16 @@
Set this capability to a nonzero value to enable it.
- XM <EM>string</EM>, override ncurses's built-in string which enables/disables
- <STRONG>xterm</STRONG> mouse mode.
+ XM <EM>string</EM>, override <EM>ncurses</EM>'s built-in string which enables/disables
+ <STRONG>xterm(1)</STRONG> mouse mode.
- ncurses sends a character sequence to the terminal to initialize
+ <EM>ncurses</EM> sends a character sequence to the terminal to initialize
mouse mode, and when the user clicks the mouse buttons or (in
certain modes) moves the mouse, handles the characters sent back
by the terminal to tell it what was done with the mouse.
The mouse protocol is enabled when the <EM>mask</EM> passed in the
- <STRONG>mousemask</STRONG> function is nonzero. By default, ncurses handles the
+ <STRONG>mousemask</STRONG> function is nonzero. By default, <EM>ncurses</EM> handles the
responses for the X11 xterm mouse protocol. It also knows about
the <EM>SGR</EM> <EM>1006</EM> xterm mouse protocol, but must to be told to look
for this specifically. It will not be able to guess which mode
@@ -253,7 +262,7 @@
The <STRONG>XM</STRONG> capability has a single parameter. If nonzero, the mouse
protocol should be enabled. If zero, the mouse protocol should
- be disabled. ncurses inspects this capability if it is present,
+ be disabled. <EM>ncurses</EM> inspects this capability if it is present,
to see whether the 1006 protocol is used. If so, it expects the
responses to use the <EM>SGR</EM> <EM>1006</EM> xterm mouse protocol.
@@ -305,36 +314,43 @@
%?%p4%tM%em%;,
-</PRE><H3><a name="h3-Extended-key-definitions">Extended key-definitions</a></H3><PRE>
+</PRE><H3><a name="h3-Extended-Key-Definitions">Extended Key Definitions</a></H3><PRE>
Several terminals provide the ability to send distinct strings for
combinations of modified special keys. There is no standard for what
those keys can send.
- Since 1999, <STRONG>xterm</STRONG> has supported <EM>shift</EM>, <EM>control</EM>, <EM>alt</EM>, and <EM>meta</EM> modifiers
- which produce distinct special-key strings. In a terminal description,
- ncurses has no special knowledge of the modifiers used. Applications
- can use the <EM>naming</EM> <EM>convention</EM> established for <STRONG>xterm</STRONG> to find these
- special keys in the terminal description.
-
- Starting with the curses convention that <EM>key</EM> <EM>names</EM> begin with "k" and
- that shifted special keys are an uppercase name, ncurses' terminal
- database defines these names to which a suffix is added:
-
- <EM>Name</EM> <EM>Description</EM>
- ---------------------------------------------------------------
- kDC special form of kdch1 (delete character)
- kDN special form of kcud1 (cursor down)
- kEND special form of kend (End)
- kHOM special form of khome (Home)
- kLFT special form of kcub1 (cursor-left or cursor-back)
- kNXT special form of knext (Next, or Page-Down)
- kPRV special form of kprev (Prev, or Page-Up)
- kRIT special form of kcuf1 (cursor-right, or cursor-forward)
- kUP special form of kcuu1 (cursor-up)
+ Since 1999, <STRONG>xterm(1)</STRONG> has supported <EM>shift</EM>, <EM>control</EM>, <EM>alt</EM>, and <EM>meta</EM>
+ modifiers which produce distinct special-key strings. In a terminal
+ description, <EM>ncurses</EM> has no special knowledge of the modifiers used.
+ Applications can use the <EM>naming</EM> <EM>convention</EM> established for <STRONG>xterm</STRONG> to
+ find these special keys in the terminal description.
+
+ Starting with the <EM>curses</EM> convention that capability codes describing
+ the input generated by a terminal's key caps begin with "k", and that
+ shifted special keys use uppercase letters in their names, <EM>ncurses</EM>'s
+ terminal database defines the following names and codes to which a
+ suffix is added.
+
+ <STRONG>Code</STRONG> <STRONG>Description</STRONG>
+ -------------------------------------------------------------------
+ <STRONG>kDC</STRONG> shifted kdch1 (delete character)
+ <STRONG>kDN</STRONG> shifted kcud1 (cursor down)
+ <STRONG>kEND</STRONG> shifted kend (end)
+ <STRONG>kHOM</STRONG> shifted khome (home)
+ <STRONG>kLFT</STRONG> shifted kcub1 (cursor back)
+ <STRONG>kNXT</STRONG> shifted knext (next)
+ <STRONG>kPRV</STRONG> shifted kprev (previous)
+ <STRONG>kRIT</STRONG> shifted kcuf1 (cursor forward)
+ <STRONG>kUP</STRONG> shifted kcuu1 (cursor up)
+
+ Keycap nomenclature on the Unix systems for which <EM>curses</EM> was developed
+ differs from today's ubiquitous descendants of the IBM PC/AT keyboard
+ layout. In the foregoing, interpret "backward" as "left", "forward" as
+ "right", "next" as "page down", and "prev(ious)" as "page up".
These are the suffixes used to denote the modifiers:
- <EM>Value</EM> <EM>Description</EM>
+ <STRONG>Value</STRONG> <STRONG>Description</STRONG>
----------------------------------
2 Shift
3 Alt
@@ -352,42 +368,42 @@
15 Meta + Ctrl + Alt
16 Meta + Ctrl + Alt + Shift
- None of these are predefined; terminal descriptions can refer to <EM>names</EM>
- which ncurses will allocate at runtime to <EM>key-codes</EM>. To use these keys
- in an ncurses program, an application could do this:
+ None of these are predefined; terminal descriptions can refer to <EM>names</EM>
+ which <EM>ncurses</EM> will allocate at runtime to <EM>key-codes</EM>. To use these keys
+ in an <EM>ncurses</EM> program, an application could do this:
- <STRONG>o</STRONG> using a list of extended key <EM>names</EM>, ask <STRONG><A HREF="curs_terminfo.3x.html">tigetstr(3x)</A></STRONG> for their
+ <STRONG>o</STRONG> using a list of extended key <EM>names</EM>, ask <STRONG><A HREF="curs_terminfo.3x.html">tigetstr(3x)</A></STRONG> for their
values, and
- <STRONG>o</STRONG> given the list of values, ask <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG> for the <EM>key-code</EM>
+ <STRONG>o</STRONG> given the list of values, ask <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG> for the <EM>key-code</EM>
which would be returned for those keys by <STRONG><A HREF="curs_getch.3x.html">wgetch(3x)</A></STRONG>.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- The "-x" extension feature of <STRONG>tic</STRONG> and <STRONG>infocmp</STRONG> has been adopted in
- NetBSD curses. That implementation stores user-defined capabilities,
+ The "-x" extension feature of <STRONG>tic</STRONG> and <STRONG>infocmp</STRONG> has been adopted in
+ NetBSD curses. That implementation stores user-defined capabilities,
but makes no use of these capabilities itself.
+</PRE><H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
+ Thomas E. Dickey
+ beginning with <EM>ncurses</EM> 5.0 (1999)
+
+
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>.
+ <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>
The terminal database section <EM>NCURSES</EM> <EM>USER-DEFINABLE</EM> <EM>CAPABILITIES</EM>
- summarizes commonly-used user-defined capabilities which are used in
- the terminal descriptions. Some of those features are mentioned in
+ summarizes commonly-used user-defined capabilities which are used in
+ the terminal descriptions. Some of those features are mentioned in
<STRONG>screen(1)</STRONG> or <STRONG>tmux(1)</STRONG>.
- <EM>XTerm</EM> <EM>Control</EM> <EM>Sequences</EM> provides further information on the <STRONG>xterm</STRONG>
- features which are used in these extended capabilities.
+ <EM>XTerm</EM> <EM>Control</EM> <EM>Sequences</EM> provides further information on the <STRONG>xterm(1)</STRONG>
+ features that are used in these extended capabilities.
-</PRE><H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
- Thomas E. Dickey
- beginning with ncurses 5.0 (1999)
-
-
- <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -396,13 +412,13 @@
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
<ul>
<li><a href="#h3-Background">Background</a></li>
-<li><a href="#h3-Recognized-capabilities">Recognized capabilities</a></li>
-<li><a href="#h3-Extended-key-definitions">Extended key-definitions</a></li>
+<li><a href="#h3-Recognized-Capabilities">Recognized Capabilities</a></li>
+<li><a href="#h3-Extended-Key-Definitions">Extended Key Definitions</a></li>
</ul>
</li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
-<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
+<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/man/wresize.3x.html b/doc/html/man/wresize.3x.html
index 8ddc39bb1fd5..b224fd393707 100644
--- a/doc/html/man/wresize.3x.html
+++ b/doc/html/man/wresize.3x.html
@@ -1,6 +1,6 @@
-<!--
+<!--
****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2010,2015 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,27 +28,27 @@
* authorization. *
****************************************************************************
* Author: Thomas E. Dickey 1996
- * @Id: wresize.3x,v 1.17 2020/10/17 23:56:38 tom Exp @
+ * @Id: wresize.3x,v 1.36 2024/03/16 15:35:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>wresize 3x</TITLE>
+<TITLE>wresize 3x 2024-03-16 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
</HEAD>
<BODY>
-<H1 class="no-header">wresize 3x</H1>
+<H1 class="no-header">wresize 3x 2024-03-16 ncurses 6.5 Library calls</H1>
<PRE>
-<STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG> <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>
+<STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG> Library calls <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <STRONG>wresize</STRONG> - resize a curses window
+ <STRONG>wresize</STRONG> - resize a <EM>curses</EM> window
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
@@ -58,44 +58,44 @@
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- This is an extension to the curses library. It reallocates storage for
- an <STRONG>ncurses</STRONG> window to adjust its dimensions to the specified values. If
- either dimension is larger than the current values, the window's data
- is filled with blanks that have the current background rendition (as
- set by <STRONG>wbkgdset</STRONG>) merged into them.
+ This <EM>ncurses</EM> extension to standard <EM>curses</EM> reallocates storage for a
+ <EM>curses</EM> window to adjust its dimensions to the specified values. If
+ either dimension is larger than its current value, the expanded part of
+ the window is filled with blanks merged with current background
+ rendition (as set by <STRONG><A HREF="curs_bkgd.3x.html">wbkgdset(3x)</A></STRONG>).
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- The function returns the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> on success.
- It will fail if either of the dimensions less than or equal to zero, or
- if an error occurs while (re)allocating memory for the window.
+ <STRONG>wresize</STRONG> returns <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> on success. It will fail if
+ either of the dimensions is less than or equal to zero, or if an error
+ occurs while (re)allocating memory for the window.
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
The only restriction placed on the dimensions is that they be greater
- than zero. The dimensions are not compared to <STRONG>curses</STRONG> screen dimensions
- to simplify the logic of <STRONG>resizeterm</STRONG>. The caller must ensure that the
- window's dimensions fit within the actual screen dimensions.
+ than zero. They are <EM>not</EM> compared to the <EM>curses</EM> screen dimensions; this
+ keeps the logic of <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG> simple. The caller must ensure that
+ the window's dimensions fit within the actual screen dimensions.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- It is not possible to resize windows with SVr4 curses.
+ It is not possible to resize windows with SVr4 <EM>curses</EM>.
- This extension of ncurses was introduced in mid-1995. It was adopted
- in NetBSD curses (2001) and PDCurses (2003).
+ <EM>ncurses</EM> introduced this extension in mid-1995. NetBSD <EM>curses</EM> adopted
+ it in 2001, and <EM>PDCurses</EM> in 2003.
-</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>.
+</PRE><H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
+ Thomas Dickey (from an equivalent function written in 1988 for BSD
+ <EM>curses</EM>).
-</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
- Thomas Dickey (from an equivalent function written in 1988 for BSD
- curses).
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>
- <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>
+ncurses 6.5 2024-03-16 <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
@@ -105,8 +105,8 @@
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
+<li><a href="#h2-AUTHORS">AUTHORS</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
-<li><a href="#h2-AUTHOR">AUTHOR</a></li>
</ul>
</div>
</BODY>
diff --git a/doc/html/ncurses-intro.html b/doc/html/ncurses-intro.html
index ebf2e2e03dda..194850246fa6 100644
--- a/doc/html/ncurses-intro.html
+++ b/doc/html/ncurses-intro.html
@@ -1,7 +1,7 @@
<!--
- $Id: ncurses-intro.html,v 1.54 2020/02/02 23:34:34 tom Exp $
+ $Id: ncurses-intro.html,v 1.57 2022/11/26 19:33:46 tom Exp $
****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2020,2022 Thomas E. Dickey *
* Copyright 2000-2013,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -30,288 +30,279 @@
****************************************************************************
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-
<html>
<head>
<meta name="generator" content=
- "HTML Tidy for HTML5 for Linux version 5.2.0">
-
+ "HTML Tidy for HTML5 for Linux version 5.6.0">
<title>Writing Programs with NCURSES</title>
<link rel="author" href="mailto:bugs-ncurses@gnu.org">
<meta http-equiv="Content-Type" content=
"text/html; charset=us-ascii">
</head>
-
<body>
- <h1>Writing Programs with NCURSES</h1>
+ <h1 class="no-header">Writing Programs with NCURSES</h1>
+
+ <h2>Writing Programs with NCURSES</h2>
<blockquote>
by Eric S. Raymond and Zeyd M. Ben-Halim<br>
updates since release 1.9.9e by Thomas Dickey
</blockquote>
- <h1>Contents</h1>
-
- <ul>
- <li>
- <a href="#introduction">Introduction</a>
-
- <ul>
- <li><a href="#history">A Brief History of Curses</a></li>
-
- <li><a href="#scope">Scope of This Document</a></li>
-
- <li><a href="#terminology">Terminology</a></li>
- </ul>
- </li>
-
- <li>
- <a href="#curses">The Curses Library</a>
-
- <ul>
- <li>
- <a href="#overview">An Overview of Curses</a>
-
- <ul>
- <li><a href="#compiling">Compiling Programs using
- Curses</a></li>
-
- <li><a href="#updating">Updating the Screen</a></li>
-
- <li><a href="#stdscr">Standard Windows and Function
- Naming Conventions</a></li>
-
- <li><a href="#variables">Variables</a></li>
- </ul>
- </li>
-
- <li>
- <a href="#using">Using the Library</a>
-
- <ul>
- <li><a href="#starting">Starting up</a></li>
+ <div class="nav">
+ <h2>Contents</h2>
- <li><a href="#output">Output</a></li>
+ <ul>
+ <li>
+ <a href="#introduction">Introduction</a>
+ <ul>
+ <li><a href="#history">A Brief History of Curses</a></li>
- <li><a href="#input">Input</a></li>
+ <li><a href="#scope">Scope of This Document</a></li>
- <li><a href="#formschars">Using Forms Characters</a></li>
+ <li><a href="#terminology">Terminology</a></li>
+ </ul>
+ </li>
- <li><a href="#attributes">Character Attributes and
- Color</a></li>
+ <li>
+ <a href="#curses">The Curses Library</a>
+ <ul>
+ <li>
+ <a href="#overview">An Overview of Curses</a>
+ <ul>
+ <li><a href="#compiling">Compiling Programs using
+ Curses</a></li>
- <li><a href="#mouse">Mouse Interfacing</a></li>
+ <li><a href="#updating">Updating the Screen</a></li>
- <li><a href="#finishing">Finishing Up</a></li>
- </ul>
- </li>
+ <li><a href="#stdscr">Standard Windows and Function
+ Naming Conventions</a></li>
- <li>
- <a href="#functions">Function Descriptions</a>
+ <li><a href="#variables">Variables</a></li>
+ </ul>
+ </li>
- <ul>
- <li><a href="#init">Initialization and Wrapup</a></li>
+ <li>
+ <a href="#using">Using the Library</a>
+ <ul>
+ <li><a href="#starting">Starting up</a></li>
- <li><a href="#flush">Causing Output to the Terminal</a></li>
+ <li><a href="#output">Output</a></li>
- <li><a href="#lowlevel">Low-Level Capability Access</a></li>
+ <li><a href="#input">Input</a></li>
- <li><a href="#debugging">Debugging</a></li>
- </ul>
- </li>
+ <li><a href="#formschars">Using Forms Characters</a></li>
- <li>
- <a href="#hints">Hints, Tips, and Tricks</a>
+ <li><a href="#attributes">Character Attributes and
+ Color</a></li>
- <ul>
- <li><a href="#caution">Some Notes of Caution</a></li>
+ <li><a href="#mouse">Mouse Interfacing</a></li>
- <li><a href="#leaving">Temporarily Leaving ncurses
- Mode</a></li>
+ <li><a href="#finishing">Finishing Up</a></li>
+ </ul>
+ </li>
- <li><a href="#xterm">Using <code>ncurses</code> under
- <code>xterm</code></a></li>
+ <li>
+ <a href="#functions">Function Descriptions</a>
+ <ul>
+ <li><a href="#init">Initialization and Wrapup</a></li>
- <li><a href="#screens">Handling Multiple Terminal
- Screens</a></li>
+ <li><a href="#flush">Causing Output to the
+ Terminal</a></li>
- <li><a href="#testing">Testing for Terminal
- Capabilities</a></li>
+ <li><a href="#lowlevel">Low-Level Capability
+ Access</a></li>
- <li><a href="#tuning">Tuning for Speed</a></li>
+ <li><a href="#debugging">Debugging</a></li>
+ </ul>
+ </li>
- <li><a href="#special">Special Features of
- <code>ncurses</code></a></li>
- </ul>
- </li>
+ <li>
+ <a href="#hints">Hints, Tips, and Tricks</a>
+ <ul>
+ <li><a href="#caution">Some Notes of Caution</a></li>
- <li>
- <a href="#compat">Compatibility with Older Versions</a>
+ <li><a href="#leaving">Temporarily Leaving ncurses
+ Mode</a></li>
- <ul>
- <li><a href="#refbug">Refresh of Overlapping
- Windows</a></li>
+ <li><a href="#xterm">Using <code>ncurses</code> under
+ <code>xterm</code></a></li>
- <li><a href="#backbug">Background Erase</a></li>
- </ul>
- </li>
+ <li><a href="#screens">Handling Multiple Terminal
+ Screens</a></li>
- <li><a href="#xsifuncs">XSI Curses Conformance</a></li>
- </ul>
- </li>
+ <li><a href="#testing">Testing for Terminal
+ Capabilities</a></li>
- <li>
- <a href="#panels">The Panels Library</a>
+ <li><a href="#tuning">Tuning for Speed</a></li>
- <ul>
- <li><a href="#pcompile">Compiling With the Panels
- Library</a></li>
+ <li><a href="#special">Special Features of
+ <code>ncurses</code></a></li>
+ </ul>
+ </li>
- <li><a href="#poverview">Overview of Panels</a></li>
+ <li>
+ <a href="#compat">Compatibility with Older Versions</a>
+ <ul>
+ <li><a href="#refbug">Refresh of Overlapping
+ Windows</a></li>
- <li><a href="#pstdscr">Panels, Input, and the Standard
- Screen</a></li>
+ <li><a href="#backbug">Background Erase</a></li>
+ </ul>
+ </li>
- <li><a href="#hiding">Hiding Panels</a></li>
+ <li><a href="#xsifuncs">XSI Curses Conformance</a></li>
+ </ul>
+ </li>
- <li><a href="#pmisc">Miscellaneous Other Facilities</a></li>
- </ul>
- </li>
+ <li>
+ <a href="#panels">The Panels Library</a>
+ <ul>
+ <li><a href="#pcompile">Compiling With the Panels
+ Library</a></li>
- <li>
- <a href="#menu">The Menu Library</a>
+ <li><a href="#poverview">Overview of Panels</a></li>
- <ul>
- <li><a href="#mcompile">Compiling with the menu Library</a></li>
+ <li><a href="#pstdscr">Panels, Input, and the Standard
+ Screen</a></li>
- <li><a href="#moverview">Overview of Menus</a></li>
+ <li><a href="#hiding">Hiding Panels</a></li>
- <li><a href="#mselect">Selecting items</a></li>
+ <li><a href="#pmisc">Miscellaneous Other Facilities</a></li>
+ </ul>
+ </li>
- <li><a href="#mdisplay">Menu Display</a></li>
+ <li>
+ <a href="#menu">The Menu Library</a>
+ <ul>
+ <li><a href="#mcompile">Compiling with the menu
+ Library</a></li>
- <li><a href="#mwindows">Menu Windows</a></li>
+ <li><a href="#moverview">Overview of Menus</a></li>
- <li><a href="#minput">Processing Menu Input</a></li>
+ <li><a href="#mselect">Selecting items</a></li>
- <li><a href="#mmisc">Miscellaneous Other Features</a></li>
- </ul>
- </li>
+ <li><a href="#mdisplay">Menu Display</a></li>
- <li>
- <a href="#form">The Forms Library</a>
+ <li><a href="#mwindows">Menu Windows</a></li>
- <ul>
- <li><a href="#fcompile">Compiling with the forms
- Library</a></li>
+ <li><a href="#minput">Processing Menu Input</a></li>
- <li><a href="#foverview">Overview of Forms</a></li>
+ <li><a href="#mmisc">Miscellaneous Other Features</a></li>
+ </ul>
+ </li>
- <li><a href="#fcreate">Creating and Freeing Fields and
- Forms</a></li>
+ <li>
+ <a href="#form">The Forms Library</a>
+ <ul>
+ <li><a href="#fcompile">Compiling with the forms
+ Library</a></li>
- <li>
- <a href="#fattributes">Fetching and Changing Field
- Attributes</a>
+ <li><a href="#foverview">Overview of Forms</a></li>
- <ul>
- <li><a href="#fsizes">Fetching Size and Location
- Data</a></li>
+ <li><a href="#fcreate">Creating and Freeing Fields and
+ Forms</a></li>
- <li><a href="#flocation">Changing the Field
- Location</a></li>
+ <li>
+ <a href="#fattributes">Fetching and Changing Field
+ Attributes</a>
+ <ul>
+ <li><a href="#fsizes">Fetching Size and Location
+ Data</a></li>
- <li><a href="#fjust">The Justification Attribute</a></li>
+ <li><a href="#flocation">Changing the Field
+ Location</a></li>
- <li><a href="#fdispatts">Field Display Attributes</a></li>
+ <li><a href="#fjust">The Justification Attribute</a></li>
- <li><a href="#foptions">Field Option Bits</a></li>
+ <li><a href="#fdispatts">Field Display Attributes</a></li>
- <li><a href="#fstatus">Field Status</a></li>
+ <li><a href="#foptions">Field Option Bits</a></li>
- <li><a href="#fuser">Field User Pointer</a></li>
- </ul>
- </li>
+ <li><a href="#fstatus">Field Status</a></li>
- <li><a href="#fdynamic">Variable-Sized Fields</a></li>
+ <li><a href="#fuser">Field User Pointer</a></li>
+ </ul>
+ </li>
- <li>
- <a href="#fvalidation">Field Validation</a>
+ <li><a href="#fdynamic">Variable-Sized Fields</a></li>
- <ul>
- <li><a href="#ftype_alpha">TYPE_ALPHA</a></li>
+ <li>
+ <a href="#fvalidation">Field Validation</a>
+ <ul>
+ <li><a href="#ftype_alpha">TYPE_ALPHA</a></li>
- <li><a href="#ftype_alnum">TYPE_ALNUM</a></li>
+ <li><a href="#ftype_alnum">TYPE_ALNUM</a></li>
- <li><a href="#ftype_enum">TYPE_ENUM</a></li>
+ <li><a href="#ftype_enum">TYPE_ENUM</a></li>
- <li><a href="#ftype_integer">TYPE_INTEGER</a></li>
+ <li><a href="#ftype_integer">TYPE_INTEGER</a></li>
- <li><a href="#ftype_numeric">TYPE_NUMERIC</a></li>
+ <li><a href="#ftype_numeric">TYPE_NUMERIC</a></li>
- <li><a href="#ftype_regexp">TYPE_REGEXP</a></li>
- </ul>
- </li>
+ <li><a href="#ftype_regexp">TYPE_REGEXP</a></li>
+ </ul>
+ </li>
- <li><a href="#fbuffer">Direct Field Buffer Manipulation</a></li>
+ <li><a href="#fbuffer">Direct Field Buffer
+ Manipulation</a></li>
- <li><a href="#formattrs">Attributes of Forms</a></li>
+ <li><a href="#formattrs">Attributes of Forms</a></li>
- <li><a href="#fdisplay">Control of Form Display</a></li>
+ <li><a href="#fdisplay">Control of Form Display</a></li>
- <li>
- <a href="#fdriver">Input Processing in the Forms
- Driver</a>
+ <li>
+ <a href="#fdriver">Input Processing in the Forms
+ Driver</a>
+ <ul>
+ <li><a href="#fpage">Page Navigation Requests</a></li>
- <ul>
- <li><a href="#fpage">Page Navigation Requests</a></li>
+ <li><a href="#ffield">Inter-Field Navigation
+ Requests</a></li>
- <li><a href="#ffield">Inter-Field Navigation
- Requests</a></li>
+ <li><a href="#fifield">Intra-Field Navigation
+ Requests</a></li>
- <li><a href="#fifield">Intra-Field Navigation
- Requests</a></li>
+ <li><a href="#fscroll">Scrolling Requests</a></li>
- <li><a href="#fscroll">Scrolling Requests</a></li>
+ <li><a href="#fedit">Field Editing Requests</a></li>
- <li><a href="#fedit">Field Editing Requests</a></li>
+ <li><a href="#forder">Order Requests</a></li>
- <li><a href="#forder">Order Requests</a></li>
+ <li><a href="#fappcmds">Application Commands</a></li>
+ </ul>
+ </li>
- <li><a href="#fappcmds">Application Commands</a></li>
- </ul>
- </li>
+ <li><a href="#fhooks">Field Change Hooks</a></li>
- <li><a href="#fhooks">Field Change Hooks</a></li>
+ <li><a href="#ffocus">Field Change Commands</a></li>
- <li><a href="#ffocus">Field Change Commands</a></li>
+ <li><a href="#frmoptions">Form Options</a></li>
- <li><a href="#frmoptions">Form Options</a></li>
+ <li>
+ <a href="#fcustom">Custom Validation Types</a>
+ <ul>
+ <li><a href="#flinktypes">Union Types</a></li>
- <li>
- <a href="#fcustom">Custom Validation Types</a>
+ <li><a href="#fnewtypes">New Field Types</a></li>
- <ul>
- <li><a href="#flinktypes">Union Types</a></li>
+ <li><a href="#fcheckargs">Validation Function
+ Arguments</a></li>
- <li><a href="#fnewtypes">New Field Types</a></li>
+ <li><a href="#fcustorder">Order Functions For Custom
+ Types</a></li>
- <li><a href="#fcheckargs">Validation Function
- Arguments</a></li>
-
- <li><a href="#fcustorder">Order Functions For Custom
- Types</a></li>
-
- <li><a href="#fcustprobs">Avoiding Problems</a></li>
- </ul>
- </li>
- </ul>
- </li>
- </ul>
+ <li><a href="#fcustprobs">Avoiding Problems</a></li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </div>
<hr>
- <h1><a name="introduction" id="introduction">Introduction</a></h1>
+ <h2><a name="introduction" id="introduction">Introduction</a></h2>
<p>This document is an introduction to programming with
<code>curses</code>. It is not an exhaustive reference for the
@@ -349,7 +340,7 @@
<code>curses</code> will typically be a great deal simpler and
less expensive than one using an X toolkit.</p>
- <h2><a name="history" id="history">A Brief History of Curses</a></h2>
+ <h3><a name="history" id="history">A Brief History of Curses</a></h3>
<p>Historically, the first ancestor of <code>curses</code> was
the routines written to provide screen-handling for the
@@ -387,7 +378,7 @@
to use more facilities and offer more capabilities, going far
beyond BSD curses in power and flexibility.</p>
- <h2><a name="scope" id="scope">Scope of This Document</a></h2>
+ <h3><a name="scope" id="scope">Scope of This Document</a></h3>
<p>This document describes <code>ncurses</code>, a free
implementation of the System V <code>curses</code> API with some
@@ -448,7 +439,7 @@
libraries, also cloned from System V, which support easy
construction and sequences of menus and fill-in forms.</p>
- <h2><a name="terminology" id="terminology">Terminology</a></h2>
+ <h3><a name="terminology" id="terminology">Terminology</a></h3>
<p>In this document, the following terminology is used with
reasonable consistency:</p>
@@ -476,21 +467,20 @@
screen.</dd>
</dl>
- <h1><a name="curses" id="curses">The Curses Library</a></h1>
+ <h2><a name="curses" id="curses">The Curses Library</a></h2>
- <h2><a name="overview" id="overview">An Overview of Curses</a></h2>
+ <h3><a name="overview" id="overview">An Overview of Curses</a></h3>
- <h3><a name="compiling" id="compiling">Compiling Programs using
- Curses</a></h3>
+ <h4><a name="compiling" id="compiling">Compiling Programs using
+ Curses</a></h4>
<p>In order to use the library, it is necessary to have certain
types and variables defined. Therefore, the programmer must have
a line:</p>
- <pre>
+ <pre class="code-block">
#include &lt;curses.h&gt;
</pre>
-
<p>at the top of the program source. The screen package uses the
Standard I/O library, so <code>&lt;curses.h&gt;</code> includes
<code>&lt;stdio.h&gt;</code>. <code>&lt;curses.h&gt;</code> also
@@ -502,7 +492,7 @@
your LDFLAGS or on the command line. There is no need for any
other libraries.</p>
- <h3><a name="updating" id="updating">Updating the Screen</a></h3>
+ <h4><a name="updating" id="updating">Updating the Screen</a></h4>
<p>In order to update the screen optimally, it is necessary for
the routines to know what the screen currently looks like and
@@ -533,8 +523,8 @@
like this,&rdquo; and let the package implementation determine
the most efficient way to repaint the screen.</p>
- <h3><a name="stdscr" id="stdscr">Standard Windows and Function
- Naming Conventions</a></h3>
+ <h4><a name="stdscr" id="stdscr">Standard Windows and Function
+ Naming Conventions</a></h4>
<p>As hinted above, the routines can use several windows, but two
are automatically given: <code>curscr</code>, which knows what
@@ -563,46 +553,41 @@
&ldquo;mv&rdquo; and the desired (y, x) coordinates prepended to
the arguments to the function. For example, the calls</p>
- <pre>
+ <pre class="code-block">
move(y, x);
addch(ch);
</pre>
-
<p>can be replaced by</p>
- <pre>
+ <pre class="code-block">
mvaddch(y, x, ch);
</pre>
-
<p>and</p>
- <pre>
+ <pre class="code-block">
wmove(win, y, x);
waddch(win, ch);
</pre>
-
<p>can be replaced by</p>
- <pre>
+ <pre class="code-block">
mvwaddch(win, y, x, ch);
</pre>
-
<p>Note that the window description pointer (win) comes before
the added (y, x) coordinates. If a function requires a window
pointer, it is always the first parameter passed.</p>
- <h3><a name="variables" id="variables">Variables</a></h3>
+ <h4><a name="variables" id="variables">Variables</a></h4>
<p>The <code>curses</code> library sets some variables describing
the terminal capabilities.</p>
- <pre>
+ <pre class="code-block">
type name description
------------------------------------------------------------------
int LINES number of lines on the terminal
int COLS number of columns on the terminal
</pre>
-
<p>The <code>curses.h</code> also introduces some
<code>#define</code> constants and types of general
usefulness:</p>
@@ -635,7 +620,7 @@
<dd>error flag returned by routines when things go right.</dd>
</dl>
- <h2><a name="using" id="using">Using the Library</a></h2>
+ <h3><a name="using" id="using">Using the Library</a></h3>
<p>Now we describe how to actually use the screen package. In it,
we assume all updating, reading, etc. is applied to
@@ -645,7 +630,7 @@
<p>Here is a sample program to motivate the discussion:</p>
- <pre>
+ <pre class="code-block">
#include &lt;stdlib.h&gt;
#include &lt;curses.h&gt;
#include &lt;signal.h&gt;
@@ -707,8 +692,7 @@ static void finish(int sig)
exit(0);
}
</pre>
-
- <h3><a name="starting" id="starting">Starting up</a></h3>
+ <h4><a name="starting" id="starting">Starting up</a></h4>
<p>In order to use the screen package, the routines must know
about terminal characteristics, and the space for
@@ -740,7 +724,7 @@ static void finish(int sig)
allow you to get rid of old windows. All the options described
above can be applied to any window.</p>
- <h3><a name="output" id="output">Output</a></h3>
+ <h4><a name="output" id="output">Output</a></h4>
<p>Now that we have set things up, we will want to actually
update the terminal. The basic functions used to change what will
@@ -775,7 +759,7 @@ static void finish(int sig)
implementing a command which would redraw the screen in case it
get messed up.</p>
- <h3><a name="input" id="input">Input</a></h3>
+ <h4><a name="input" id="input">Input</a></h4>
<p>The complementary function to <code>addch()</code> is
<code>getch()</code> which, if echo is set, will call
@@ -804,8 +788,8 @@ static void finish(int sig)
<code>#define</code> values is determined by <code>key_</code>
capabilities in the terminal's terminfo entry.</p>
- <h3><a name="formschars" id="formschars">Using Forms
- Characters</a></h3>
+ <h4><a name="formschars" id="formschars">Using Forms
+ Characters</a></h4>
<p>The <code>addch()</code> function (and some others, including
<code>box()</code> and <code>border()</code>) can accept some
@@ -820,8 +804,8 @@ static void finish(int sig)
<code>curses.h</code> will map them to a recognizable (though
ugly) set of ASCII defaults.</p>
- <h3><a name="attributes" id="attributes">Character Attributes and
- Color</a></h3>
+ <h4><a name="attributes" id="attributes">Character Attributes and
+ Color</a></h4>
<p>The <code>ncurses</code> package supports screen highlights
including standout, reverse-video, underline, and blink. It also
@@ -859,7 +843,7 @@ static void finish(int sig)
that <code>COLOR_PAIR(N)</code>, for constant N, is itself a
compile-time constant and can be used in initializers.</p>
- <h3><a name="mouse" id="mouse">Mouse Interfacing</a></h3>
+ <h4><a name="mouse" id="mouse">Mouse Interfacing</a></h4>
<p>The <code>ncurses</code> library also provides a mouse
interface.</p>
@@ -947,7 +931,7 @@ static void finish(int sig)
<p>See the manual page <code>curs_mouse(3X)</code> for full
details of the mouse-interface functions.</p>
- <h3><a name="finishing" id="finishing">Finishing Up</a></h3>
+ <h4><a name="finishing" id="finishing">Finishing Up</a></h4>
<p>In order to clean up after the <code>ncurses</code> routines,
the routine <code>endwin()</code> is provided. It restores tty
@@ -956,13 +940,13 @@ static void finish(int sig)
anytime after the call to initscr, <code>endwin()</code> should
be called before exiting.</p>
- <h2><a name="functions" id="functions">Function Descriptions</a></h2>
+ <h3><a name="functions" id="functions">Function Descriptions</a></h3>
<p>We describe the detailed behavior of some important curses
functions here, as a supplement to the manual page
descriptions.</p>
- <h3><a name="init" id="init">Initialization and Wrapup</a></h3>
+ <h4><a name="init" id="init">Initialization and Wrapup</a></h4>
<dl>
<dt><code>initscr()</code>
@@ -1025,7 +1009,7 @@ static void finish(int sig)
reference.</dd>
</dl>
- <h3><a name="flush" id="flush">Causing Output to the Terminal</a></h3>
+ <h4><a name="flush" id="flush">Causing Output to the Terminal</a></h4>
<dl>
<dt><code>refresh()</code> and <code>wrefresh(win)</code></dt>
@@ -1064,8 +1048,8 @@ static void finish(int sig)
each update).</dd>
</dl>
- <h3><a name="lowlevel" id="lowlevel">Low-Level Capability
- Access</a></h3>
+ <h4><a name="lowlevel" id="lowlevel">Low-Level Capability
+ Access</a></h4>
<dl>
<dt><code>setupterm(term, filenum, errret)</code>
@@ -1082,7 +1066,6 @@ static void finish(int sig)
indication is returned. The values returned can be 1 (all is
well), 0 (no such terminal), or -1 (some problem locating the
terminfo database).
-
<p>The value of <code>term</code> can be given as NULL, which
will cause the value of <code>TERM</code> in the environment
to be used. The <code>errret</code> pointer can also be given
@@ -1107,7 +1090,7 @@ static void finish(int sig)
</dd>
</dl>
- <h3><a name="debugging" id="debugging">Debugging</a></h3>
+ <h4><a name="debugging" id="debugging">Debugging</a></h4>
<blockquote>
<strong>NOTE:</strong> These functions are not part of the
@@ -1149,14 +1132,14 @@ static void finish(int sig)
be distinguished by the fact that they are named in capital
letters.</p>
- <h2><a name="hints" id="hints">Hints, Tips, and Tricks</a></h2>
+ <h3><a name="hints" id="hints">Hints, Tips, and Tricks</a></h3>
<p>The <code>ncurses</code> manual pages are a complete reference
for this library. In the remainder of this document, we discuss
various useful methods that may not be obvious from the manual
page descriptions.</p>
- <h3><a name="caution" id="caution">Some Notes of Caution</a></h3>
+ <h4><a name="caution" id="caution">Some Notes of Caution</a></h4>
<p>If you find yourself thinking you need to use
<code>noraw()</code> or <code>nocbreak()</code>, think again and
@@ -1196,8 +1179,8 @@ static void finish(int sig)
with window resizes, in which case several screens could be open
with different sizes.</p>
- <h3><a name="leaving" id="leaving">Temporarily Leaving NCURSES
- Mode</a></h3>
+ <h4><a name="leaving" id="leaving">Temporarily Leaving NCURSES
+ Mode</a></h4>
<p>Sometimes you will want to write a program that spends most of
its time in screen mode, but occasionally returns to ordinary
@@ -1220,7 +1203,7 @@ static void finish(int sig)
<p>Here is some sample code for shellout:</p>
- <pre>
+ <pre class="code-block">
addstr("Shelling out...");
def_prog_mode(); /* save current tty modes */
endwin(); /* restore original tty modes */
@@ -1228,8 +1211,7 @@ static void finish(int sig)
addstr("returned.\n"); /* prepare return message */
refresh(); /* restore save modes, repaint screen */
</pre>
-
- <h3><a name="xterm" id="xterm">Using NCURSES under XTERM</a></h3>
+ <h4><a name="xterm" id="xterm">Using NCURSES under XTERM</a></h4>
<p>A resize operation in X sends <code>SIGWINCH</code> to the
application running under xterm. The easiest way to handle
@@ -1258,8 +1240,8 @@ static void finish(int sig)
special-purpose code to handle <code>KEY_RESIZE</code>
yourself.</p>
- <h3><a name="screens" id="screens">Handling Multiple Terminal
- Screens</a></h3>
+ <h4><a name="screens" id="screens">Handling Multiple Terminal
+ Screens</a></h4>
<p>The <code>initscr()</code> function actually calls a function
named <code>newterm()</code> to do most of its work. If you are
@@ -1274,8 +1256,8 @@ static void finish(int sig)
<code>def_shell_mode</code> and <code>def_prog_mode</code> on
each tty yourself.</p>
- <h3><a name="testing" id="testing">Testing for Terminal
- Capabilities</a></h3>
+ <h4><a name="testing" id="testing">Testing for Terminal
+ Capabilities</a></h4>
<p>Sometimes you may want to write programs that test for the
presence of various capabilities before deciding whether to go
@@ -1292,7 +1274,7 @@ static void finish(int sig)
include the <code>term.h</code> file and test the value of the
macro <code>cursor_address</code>.</p>
- <h3><a name="tuning" id="tuning">Tuning for Speed</a></h3>
+ <h4><a name="tuning" id="tuning">Tuning for Speed</a></h4>
<p>Use the <code>addchstr()</code> family of functions for fast
screen-painting of text when you know the text does not contain
@@ -1300,8 +1282,8 @@ static void finish(int sig)
on your screens. Do not use the <code>immedok()</code>
option!</p>
- <h3><a name="special" id="special">Special Features of
- NCURSES</a></h3>
+ <h4><a name="special" id="special">Special Features of
+ NCURSES</a></h4>
<p>The <code>wresize()</code> function allows you to resize a
window in place. The associated <code>resizeterm()</code>
@@ -1325,16 +1307,16 @@ static void finish(int sig)
only 8 colors, about a quarter (including XFree86 xterm) support
16 colors.</p>
- <h2><a name="compat" id="compat">Compatibility with Older
- Versions</a></h2>
+ <h3><a name="compat" id="compat">Compatibility with Older
+ Versions</a></h3>
<p>Despite our best efforts, there are some differences between
<code>ncurses</code> and the (undocumented!) behavior of older
curses implementations. These arise from ambiguities or omissions
in the documentation of the API.</p>
- <h3><a name="refbug" id="refbug">Refresh of Overlapping
- Windows</a></h3>
+ <h4><a name="refbug" id="refbug">Refresh of Overlapping
+ Windows</a></h4>
<p>If you define two windows A and B that overlap, and then
alternately scribble on and refresh them, the changes made to the
@@ -1392,7 +1374,7 @@ static void finish(int sig)
<code>doupdate()</code> and there will be a <em>single</em> burst
of physical I/O that will do all your updates.</p>
- <h3><a name="backbug" id="backbug">Background Erase</a></h3>
+ <h4><a name="backbug" id="backbug">Background Erase</a></h4>
<p>If you have been using a very old versions of
<code>ncurses</code> (1.8.7 or older) you may be surprised by the
@@ -1409,7 +1391,7 @@ static void finish(int sig)
<p>This change in behavior conforms <code>ncurses</code> to
System V Release 4 and the XSI Curses standard.</p>
- <h2><a name="xsifuncs" id="xsifuncs">XSI Curses Conformance</a></h2>
+ <h3><a name="xsifuncs" id="xsifuncs">XSI Curses Conformance</a></h3>
<p>The <code>ncurses</code> library is intended to be base-level
conformant with the XSI Curses standard from X/Open. Many
@@ -1426,7 +1408,7 @@ static void finish(int sig)
be linked (and will be prototype-checked) if the macro definition
is disabled with <code>#undef</code>.</p>
- <h1><a name="panels" id="panels">The Panels Library</a></h1>
+ <h2><a name="panels" id="panels">The Panels Library</a></h2>
<p>The <code>ncurses</code> library by itself provides good
support for screen displays in which the windows are tiled
@@ -1446,16 +1428,15 @@ static void finish(int sig)
System V. The version documented here is the <code>panel</code>
code distributed with <code>ncurses</code>.</p>
- <h2><a name="pcompile" id="pcompile">Compiling With the Panels
- Library</a></h2>
+ <h3><a name="pcompile" id="pcompile">Compiling With the Panels
+ Library</a></h3>
<p>Your panels-using modules must import the panels library
declarations with</p>
- <pre>
+ <pre class="code-block">
#include &lt;panel.h&gt;
</pre>
-
<p>and must be linked explicitly with the panels library using an
<code>-lpanel</code> argument. Note that they must also link the
<code>ncurses</code> library with <code>-lncurses</code>. Many
@@ -1463,7 +1444,7 @@ static void finish(int sig)
still good practice to put <code>-lpanel</code> first and
<code>-lncurses</code> second.</p>
- <h2><a name="poverview" id="poverview">Overview of Panels</a></h2>
+ <h3><a name="poverview" id="poverview">Overview of Panels</a></h3>
<p>A panel object is a window that is implicitly treated as part
of a <dfn>deck</dfn> including all other panel objects. The deck
@@ -1514,8 +1495,8 @@ static void finish(int sig)
you will generate a lot of unnecessary refresh activity and
screen flicker.</p>
- <h2><a name="pstdscr" id="pstdscr">Panels, Input, and the
- Standard Screen</a></h2>
+ <h3><a name="pstdscr" id="pstdscr">Panels, Input, and the
+ Standard Screen</a></h3>
<p>You should not mix <code>wnoutrefresh()</code> or
<code>wrefresh()</code> operations with panels code; this will
@@ -1536,7 +1517,7 @@ static void finish(int sig)
<p>There is presently no way to display changes to one obscured
panel without repainting all panels.</p>
- <h2><a name="hiding" id="hiding">Hiding Panels</a></h2>
+ <h3><a name="hiding" id="hiding">Hiding Panels</a></h3>
<p>It is possible to remove a panel from the deck temporarily;
use <code>hide_panel</code> for this. Use
@@ -1548,7 +1529,7 @@ static void finish(int sig)
cannot do <code>top_panel()</code> or <code>bottom_panel</code>
on a hidden panel(). Other panels operations are applicable.</p>
- <h2><a name="pmisc" id="pmisc">Miscellaneous Other Facilities</a></h2>
+ <h3><a name="pmisc" id="pmisc">Miscellaneous Other Facilities</a></h3>
<p>It is possible to navigate the deck using the functions
<code>panel_above()</code> and <code>panel_below</code>. Handed a
@@ -1561,7 +1542,7 @@ static void finish(int sig)
page documentation of <code>set_panel_userptr()</code> and
<code>panel_userptr</code> for details.</p>
- <h1><a name="menu" id="menu">The Menu Library</a></h1>
+ <h2><a name="menu" id="menu">The Menu Library</a></h2>
<p>A menu is a screen display that assists the user to choose
some subset of a given set of items. The <code>menu</code>
@@ -1572,16 +1553,15 @@ static void finish(int sig)
System V. The version documented here is the <code>menu</code>
code distributed with <code>ncurses</code>.</p>
- <h2><a name="mcompile" id="mcompile">Compiling With the menu
- Library</a></h2>
+ <h3><a name="mcompile" id="mcompile">Compiling With the menu
+ Library</a></h3>
<p>Your menu-using modules must import the menu library
declarations with</p>
- <pre>
+ <pre class="code-block">
#include &lt;menu.h&gt;
</pre>
-
<p>and must be linked explicitly with the menus library using an
<code>-lmenu</code> argument. Note that they must also link the
<code>ncurses</code> library with <code>-lncurses</code>. Many
@@ -1589,7 +1569,7 @@ static void finish(int sig)
still good practice to put <code>-lmenu</code> first and
<code>-lncurses</code> second.</p>
- <h2><a name="moverview" id="moverview">Overview of Menus</a></h2>
+ <h3><a name="moverview" id="moverview">Overview of Menus</a></h3>
<p>The menus created by this library consist of collections of
<dfn>items</dfn> including a name string part and a description
@@ -1633,7 +1613,7 @@ static void finish(int sig)
<li>Terminate <code>curses</code>.</li>
</ol>
- <h2><a name="mselect" id="mselect">Selecting items</a></h2>
+ <h3><a name="mselect" id="mselect">Selecting items</a></h3>
<p>Menus may be multi-valued or (the default) single-valued (see
the manual page <code>menu_opts(3x)</code> to see how to change
@@ -1654,7 +1634,7 @@ static void finish(int sig)
so far defined for menus, but it is good practice to code as
though other option bits might be on.</p>
- <h2><a name="mdisplay" id="mdisplay">Menu Display</a></h2>
+ <h3><a name="mdisplay" id="mdisplay">Menu Display</a></h3>
<p>The menu library calculates a minimum display size for your
window, based on the following variables:</p>
@@ -1710,7 +1690,7 @@ static void finish(int sig)
which the library allows you to change (see the
<code>menu_attribs(3x)</code> manual page.</p>
- <h2><a name="mwindows" id="mwindows">Menu Windows</a></h2>
+ <h3><a name="mwindows" id="mwindows">Menu Windows</a></h3>
<p>Each menu has, as mentioned previously, a pair of associated
windows. Both these windows are painted when the menu is posted
@@ -1732,7 +1712,7 @@ static void finish(int sig)
the screen. To do that, call <code>wrefresh()</code> or some
equivalent.</p>
- <h2><a name="minput" id="minput">Processing Menu Input</a></h2>
+ <h3><a name="minput" id="minput">Processing Menu Input</a></h3>
<p>The main loop of your menu-processing code should call
<code>menu_driver()</code> repeatedly. The first argument of this
@@ -1784,7 +1764,7 @@ static void finish(int sig)
commands. The <code>menu_driver()</code> code ignores them and
returns <code>E_UNKNOWN_COMMAND</code>.</p>
- <h2><a name="mmisc" id="mmisc">Miscellaneous Other Features</a></h2>
+ <h3><a name="mmisc" id="mmisc">Miscellaneous Other Features</a></h3>
<p>Various menu options can affect the processing and visual
appearance and input processing of menus. See <code>menu_opts(3x)
@@ -1807,7 +1787,7 @@ static void finish(int sig)
<code>mitem_userptr(3x)</code> and
<code>menu_userptr(3x)</code>.</p>
- <h1><a name="form" id="form">The Forms Library</a></h1>
+ <h2><a name="form" id="form">The Forms Library</a></h2>
<p>The <code>form</code> library is a curses extension that
supports easy programming of on-screen forms for data entry and
@@ -1817,16 +1797,15 @@ static void finish(int sig)
System V. The version documented here is the <code>form</code>
code distributed with <code>ncurses</code>.</p>
- <h2><a name="fcompile" id="fcompile">Compiling With the form
- Library</a></h2>
+ <h3><a name="fcompile" id="fcompile">Compiling With the form
+ Library</a></h3>
<p>Your form-using modules must import the form library
declarations with</p>
- <pre>
+ <pre class="code-block">
#include &lt;form.h&gt;
</pre>
-
<p>and must be linked explicitly with the forms library using an
<code>-lform</code> argument. Note that they must also link the
<code>ncurses</code> library with <code>-lncurses</code>. Many
@@ -1834,7 +1813,7 @@ static void finish(int sig)
still good practice to put <code>-lform</code> first and
<code>-lncurses</code> second.</p>
- <h2><a name="foverview" id="foverview">Overview of Forms</a></h2>
+ <h3><a name="foverview" id="foverview">Overview of Forms</a></h3>
<p>A form is a collection of fields; each field may be either a
label (explanatory text) or a data-entry location. Long forms may
@@ -1903,19 +1882,18 @@ static void finish(int sig)
Besides menu-like navigation operations, the menu driver loop has
to support field editing and data validation.</p>
- <h2><a name="fcreate" id="fcreate">Creating and Freeing Fields
- and Forms</a></h2>
+ <h3><a name="fcreate" id="fcreate">Creating and Freeing Fields
+ and Forms</a></h3>
<p>The basic function for creating fields is
<code>new_field()</code>:</p>
- <pre>
+ <pre class="code-block">
FIELD *new_field(int height, int width, /* new field size */
int top, int left, /* upper left corner */
int offscreen, /* number of offscreen rows */
int nbuf); /* number of working buffers */
</pre>
-
<p>Menu items always occupy a single row, but forms fields may
have multiple rows. So <code>new_field()</code> requires you to
specify a width and height (the first two arguments, which mist
@@ -1943,21 +1921,19 @@ FIELD *new_field(int height, int width, /* new field size */
buffers to allocate for the field; your application can use them
for its own purposes.</p>
- <pre>
+ <pre class="code-block">
FIELD *dup_field(FIELD *field, /* field to copy */
int top, int left); /* location of new copy */
</pre>
-
<p>The function <code>dup_field()</code> duplicates an existing
field at a new location. Size and buffering information are
copied; some attribute flags and status bits are not (see the
<code>form_field_new(3X)</code> for details).</p>
- <pre>
+ <pre class="code-block">
FIELD *link_field(FIELD *field, /* field to copy */
int top, int left); /* location of new copy */
</pre>
-
<p>The function <code>link_field()</code> also duplicates an
existing field at a new location. The difference from
<code>dup_field()</code> is that it arranges for the new field's
@@ -1978,10 +1954,9 @@ FIELD *link_field(FIELD *field, /* field to copy */
<p>To connect fields to a form, use</p>
- <pre>
+ <pre class="code-block">
FORM *new_form(FIELD **fields);
</pre>
-
<p>This function expects to see a NULL-terminated array of field
pointers. Said fields are connected to a newly-allocated form
object; its address is returned (or else NULL if the allocation
@@ -1999,8 +1974,8 @@ FORM *new_form(FIELD **fields);
form, but not vice-versa; thus, you will generally free your form
objects first.</p>
- <h2><a name="fattributes" id="fattributes">Fetching and Changing
- Field Attributes</a></h2>
+ <h3><a name="fattributes" id="fattributes">Fetching and Changing
+ Field Attributes</a></h3>
<p>Each form field has a number of location and size attributes
associated with it. There are other field attributes used to
@@ -2016,56 +1991,53 @@ FORM *new_form(FIELD **fields);
to it persist as defaults until your forms application
terminates.</p>
- <h3><a name="fsizes" id="fsizes">Fetching Size and Location
- Data</a></h3>
+ <h4><a name="fsizes" id="fsizes">Fetching Size and Location
+ Data</a></h4>
<p>You can retrieve field sizes and locations through:</p>
- <pre>
+ <pre class="code-block">
int field_info(FIELD *field, /* field from which to fetch */
int *height, *int width, /* field size */
int *top, int *left, /* upper left corner */
int *offscreen, /* number of offscreen rows */
int *nbuf); /* number of working buffers */
</pre>
-
<p>This function is a sort of inverse of
<code>new_field()</code>; instead of setting size and location
attributes of a new field, it fetches them from an existing
one.</p>
- <h3><a name="flocation" id="flocation">Changing the Field
- Location</a></h3>
+ <h4><a name="flocation" id="flocation">Changing the Field
+ Location</a></h4>
<p>It is possible to move a field's location on the screen:</p>
- <pre>
+ <pre class="code-block">
int move_field(FIELD *field, /* field to alter */
int top, int left); /* new upper-left corner */
</pre>
-
<p>You can, of course. query the current location through
<code>field_info()</code>.</p>
- <h3><a name="fjust" id="fjust">The Justification Attribute</a></h3>
+ <h4><a name="fjust" id="fjust">The Justification Attribute</a></h4>
<p>One-line fields may be unjustified, justified right, justified
left, or centered. Here is how you manipulate this attribute:</p>
- <pre>
+ <pre class="code-block">
int set_field_just(FIELD *field, /* field to alter */
int justmode); /* mode to set */
int field_just(FIELD *field); /* fetch mode of field */
</pre>
-
<p>The mode values accepted and returned by this functions are
preprocessor macros <code>NO_JUSTIFICATION</code>,
<code>JUSTIFY_RIGHT</code>, <code>JUSTIFY_LEFT</code>, or
<code>JUSTIFY_CENTER</code>.</p>
- <h3><a name="fdispatts" id="fdispatts">Field Display
- Attributes</a></h3>
+ <h4><a name="fdispatts" id="fdispatts">Field Display
+ Attributes</a></h4>
<p>For each field, you can set a foreground attribute for entered
characters, a background attribute for the entire field, and a
@@ -2076,7 +2048,7 @@ int field_just(FIELD *field); /* fetch mode of field */
appearance of the field on the screen, without affecting in any
way the data in the field buffer.</p>
- <pre>
+ <pre class="code-block">
int set_field_fore(FIELD *field, /* field to alter */
chtype attr); /* attribute to set */
@@ -2097,20 +2069,19 @@ int set_new_page(FIELD *field, /* field to alter */
chtype new_page(FIELD *field); /* field to query */
</pre>
-
<p>The attributes set and returned by the first four functions
are normal <code>curses(3x)</code> display attribute values
(<code>A_STANDOUT</code>, <code>A_BOLD</code>,
<code>A_REVERSE</code> etc). The page bit of a field controls
whether it is displayed at the start of a new form screen.</p>
- <h3><a name="foptions" id="foptions">Field Option Bits</a></h3>
+ <h4><a name="foptions" id="foptions">Field Option Bits</a></h4>
<p>There is also a large collection of field option bits you can
set to control various aspects of forms processing. You can
manipulate them with these functions:</p>
- <pre>
+ <pre class="code-block">
int set_field_opts(FIELD *field, /* field to alter */
int attr); /* attribute to set */
@@ -2122,7 +2093,6 @@ int field_opts_off(FIELD *field, /* field to alter */
int field_opts(FIELD *field); /* field to query */
</pre>
-
<p>By default, all options are on. Here are the available option
bits:</p>
@@ -2209,19 +2179,18 @@ int field_opts(FIELD *field); /* field to query */
<p>The option values are bit-masks and can be composed with
logical-or in the obvious way.</p>
- <h2><a name="fstatus" id="fstatus">Field Status</a></h2>
+ <h3><a name="fstatus" id="fstatus">Field Status</a></h3>
<p>Every field has a status flag, which is set to FALSE when the
field is created and TRUE when the value in field buffer 0
changes. This flag can be queried and set directly:</p>
- <pre>
+ <pre class="code-block">
int set_field_status(FIELD *field, /* field to alter */
int status); /* mode to set */
int field_status(FIELD *field); /* fetch mode of field */
</pre>
-
<p>Setting this flag under program control can be useful if you
use the same form repeatedly, looking for modified fields each
time.</p>
@@ -2238,14 +2207,14 @@ int field_status(FIELD *field); /* fetch mode of field */
just after a <code>REQ_VALIDATION</code> request has been
processed by the forms driver.</p>
- <h2><a name="fuser" id="fuser">Field User Pointer</a></h2>
+ <h3><a name="fuser" id="fuser">Field User Pointer</a></h3>
<p>Each field structure contains one character pointer slot that
is not used by the forms library. It is intended to be used by
applications to store private per-field data. You can manipulate
it with:</p>
- <pre>
+ <pre class="code-block">
int set_field_userptr(FIELD *field, /* field to alter */
char *userptr); /* mode to set */
@@ -2253,13 +2222,12 @@ char *field_userptr(FIELD *field); /* fetch mode of field */
</pre>(Properly, this user pointer field ought to have <code>(void
*)</code> type. The <code>(char *)</code> type is retained for
System V compatibility.)
-
<p>It is valid to set the user pointer of the default field (with
a <code>set_field_userptr()</code> call passed a NULL field
pointer.) When a new field is created, the default-field user
pointer is copied to initialize the new field's user pointer.</p>
- <h2><a name="fdynamic" id="fdynamic">Variable-Sized Fields</a></h2>
+ <h3><a name="fdynamic" id="fdynamic">Variable-Sized Fields</a></h3>
<p>Normally, a field is fixed at the size specified for it at
creation time. If, however, you turn off its O_STATIC bit, it
@@ -2279,11 +2247,10 @@ System V compatibility.)
But it is possible to set an upper limit on the size of a dynamic
field. You do it with this function:</p>
- <pre>
+ <pre class="code-block">
int set_max_field(FIELD *field, /* field to alter (may not be NULL) */
int max_size); /* upper limit on field size */
</pre>
-
<p>If the field is one-line, <code>max_size</code> is taken to be
a column size limit; if it is multi-line, it is taken to be a
line size limit. To disable any limit, use an argument of zero.
@@ -2314,7 +2281,7 @@ int set_max_field(FIELD *field, /* field to alter (may not be NULL) */
size.</li>
</ul>
- <h2><a name="fvalidation" id="fvalidation">Field Validation</a></h2>
+ <h3><a name="fvalidation" id="fvalidation">Field Validation</a></h3>
<p>By default, a field will accept any data that will fit in its
input buffer. However, it is possible to attach a validation type
@@ -2332,14 +2299,13 @@ int set_max_field(FIELD *field, /* field to alter (may not be NULL) */
define custom ones of your own. You can examine and change field
validation attributes with the following functions:</p>
- <pre>
+ <pre class="code-block">
int set_field_type(FIELD *field, /* field to alter */
FIELDTYPE *ftype, /* type to associate */
...); /* additional arguments*/
FIELDTYPE *field_type(FIELD *field); /* field to query */
</pre>
-
<p>The validation type of a field is considered an attribute of
the field. As with other field attributes, Also, doing
<code>set_field_type()</code> with a <code>NULL</code> field
@@ -2348,56 +2314,53 @@ FIELDTYPE *field_type(FIELD *field); /* field to query */
<p>Here are the pre-defined validation types:</p>
- <h3><a name="ftype_alpha" id="ftype_alpha">TYPE_ALPHA</a></h3>
+ <h4><a name="ftype_alpha" id="ftype_alpha">TYPE_ALPHA</a></h4>
<p>This field type accepts alphabetic data; no blanks, no digits,
no special characters (this is checked at character-entry time).
It is set up with:</p>
- <pre>
+ <pre class="code-block">
int set_field_type(FIELD *field, /* field to alter */
TYPE_ALPHA, /* type to associate */
int width); /* maximum width of field */
</pre>
-
<p>The <code>width</code> argument sets a minimum width of data.
Typically you will want to set this to the field width; if it is
greater than the field width, the validation check will always
fail. A minimum width of zero makes field completion
optional.</p>
- <h3><a name="ftype_alnum" id="ftype_alnum">TYPE_ALNUM</a></h3>
+ <h4><a name="ftype_alnum" id="ftype_alnum">TYPE_ALNUM</a></h4>
<p>This field type accepts alphabetic data and digits; no blanks,
no special characters (this is checked at character-entry time).
It is set up with:</p>
- <pre>
+ <pre class="code-block">
int set_field_type(FIELD *field, /* field to alter */
TYPE_ALNUM, /* type to associate */
int width); /* maximum width of field */
</pre>
-
<p>The <code>width</code> argument sets a minimum width of data.
As with TYPE_ALPHA, typically you will want to set this to the
field width; if it is greater than the field width, the
validation check will always fail. A minimum width of zero makes
field completion optional.</p>
- <h3><a name="ftype_enum" id="ftype_enum">TYPE_ENUM</a></h3>
+ <h4><a name="ftype_enum" id="ftype_enum">TYPE_ENUM</a></h4>
<p>This type allows you to restrict a field's values to be among
a specified set of string values (for example, the two-letter
postal codes for U.S. states). It is set up with:</p>
- <pre>
+ <pre class="code-block">
int set_field_type(FIELD *field, /* field to alter */
TYPE_ENUM, /* type to associate */
char **valuelist; /* list of possible values */
int checkcase; /* case-sensitive? */
int checkunique); /* must specify uniquely? */
</pre>
-
<p>The <code>valuelist</code> parameter must point at a
NULL-terminated list of valid strings. The <code>checkcase</code>
argument, if true, makes comparison with the string
@@ -2419,18 +2382,17 @@ int set_field_type(FIELD *field, /* field to alter */
<code>REQ_PREV_CHOICE</code> input requests can be particularly
useful with these fields.</p>
- <h3><a name="ftype_integer" id="ftype_integer">TYPE_INTEGER</a></h3>
+ <h4><a name="ftype_integer" id="ftype_integer">TYPE_INTEGER</a></h4>
<p>This field type accepts an integer. It is set up as
follows:</p>
- <pre>
+ <pre class="code-block">
int set_field_type(FIELD *field, /* field to alter */
TYPE_INTEGER, /* type to associate */
int padding, /* # places to zero-pad to */
int vmin, int vmax); /* valid range */
</pre>
-
<p>Valid characters consist of an optional leading minus and
digits. The range check is performed on exit. If the range
maximum is less than or equal to the minimum, the range is
@@ -2443,18 +2405,17 @@ int set_field_type(FIELD *field, /* field to alter */
<p>A <code>TYPE_INTEGER</code> value buffer can conveniently be
interpreted with the C library function <code>atoi(3)</code>.</p>
- <h3><a name="ftype_numeric" id="ftype_numeric">TYPE_NUMERIC</a></h3>
+ <h4><a name="ftype_numeric" id="ftype_numeric">TYPE_NUMERIC</a></h4>
<p>This field type accepts a decimal number. It is set up as
follows:</p>
- <pre>
+ <pre class="code-block">
int set_field_type(FIELD *field, /* field to alter */
TYPE_NUMERIC, /* type to associate */
int padding, /* # places of precision */
double vmin, double vmax); /* valid range */
</pre>
-
<p>Valid characters consist of an optional leading minus and
digits. possibly including a decimal point. If your system
supports locale's, the decimal point character used must be the
@@ -2469,44 +2430,41 @@ int set_field_type(FIELD *field, /* field to alter */
<p>A <code>TYPE_NUMERIC</code> value buffer can conveniently be
interpreted with the C library function <code>atof(3)</code>.</p>
- <h3><a name="ftype_regexp" id="ftype_regexp">TYPE_REGEXP</a></h3>
+ <h4><a name="ftype_regexp" id="ftype_regexp">TYPE_REGEXP</a></h4>
<p>This field type accepts data matching a regular expression. It
is set up as follows:</p>
- <pre>
+ <pre class="code-block">
int set_field_type(FIELD *field, /* field to alter */
TYPE_REGEXP, /* type to associate */
char *regexp); /* expression to match */
</pre>
-
<p>The syntax for regular expressions is that of
<code>regcomp(3)</code>. The check for regular-expression match
is performed on exit.</p>
- <h2><a name="fbuffer" id="fbuffer">Direct Field Buffer
- Manipulation</a></h2>
+ <h3><a name="fbuffer" id="fbuffer">Direct Field Buffer
+ Manipulation</a></h3>
<p>The chief attribute of a field is its buffer contents. When a
form has been completed, your application usually needs to know
the state of each field buffer. You can find this out with:</p>
- <pre>
+ <pre class="code-block">
char *field_buffer(FIELD *field, /* field to query */
int bufindex); /* number of buffer to query */
</pre>
-
<p>Normally, the state of the zero-numbered buffer for each field
is set by the user's editing actions on that field. It is
sometimes useful to be able to set the value of the zero-numbered
(or some other) buffer from your application:</p>
- <pre>
+ <pre class="code-block">
int set_field_buffer(FIELD *field, /* field to alter */
int bufindex, /* number of buffer to alter */
char *value); /* string value to set */
</pre>
-
<p>If the field is not large enough and cannot be resized to a
sufficiently large size to contain the specified value, the value
will be truncated to fit.</p>
@@ -2525,7 +2483,7 @@ int set_field_buffer(FIELD *field, /* field to alter */
<code>REQ_VALIDATION</code> request has been processed by the
forms driver.</p>
- <h2><a name="formattrs" id="formattrs">Attributes of Forms</a></h2>
+ <h3><a name="formattrs" id="formattrs">Attributes of Forms</a></h3>
<p>As with field attributes, form attributes inherit a default
from a system default form structure. These defaults can be
@@ -2535,7 +2493,7 @@ int set_field_buffer(FIELD *field, /* field to alter */
<p>The principal attribute of a form is its field list. You can
query and change this list with:</p>
- <pre>
+ <pre class="code-block">
int set_form_fields(FORM *form, /* form to alter */
FIELD **fields); /* fields to connect */
@@ -2543,7 +2501,6 @@ char *form_fields(FORM *form); /* fetch fields of form */
int field_count(FORM *form); /* count connect fields */
</pre>
-
<p>The second argument of <code>set_form_fields()</code> may be a
NULL-terminated field pointer array like the one required by
<code>new_form()</code>. In that case, the old fields of the form
@@ -2557,7 +2514,7 @@ int field_count(FORM *form); /* count connect fields */
number of fields connected to a given from. It returns -1 if the
form-pointer argument is NULL.</p>
- <h2><a name="fdisplay" id="fdisplay">Control of Form Display</a></h2>
+ <h3><a name="fdisplay" id="fdisplay">Control of Form Display</a></h3>
<p>In the overview section, you saw that to display a form you
normally start by defining its size (and fields), posting it, and
@@ -2589,17 +2546,16 @@ int field_count(FORM *form); /* count connect fields */
need to know the size of the form's bounding rectangle. You can
get this information with:</p>
- <pre>
+ <pre class="code-block">
int scale_form(FORM *form, /* form to query */
int *rows, /* form rows */
int *cols); /* form cols */
</pre>
-
<p>The form dimensions are passed back in the locations pointed
to by the arguments. Once you have this information, you can use
it to declare of windows, then use one of these functions:</p>
- <pre>
+ <pre class="code-block">
int set_form_win(FORM *form, /* form to alter */
WINDOW *win); /* frame window to connect */
@@ -2610,7 +2566,6 @@ int set_form_sub(FORM *form, /* form to alter */
WINDOW *form_sub(FORM *form); /* fetch form subwindow of form */
</pre>
-
<p>Note that curses operations, including <code>refresh()</code>,
on the form, should be done on the frame window, not the form
subwindow.</p>
@@ -2619,12 +2574,11 @@ WINDOW *form_sub(FORM *form); /* fetch form subwindow of form */
scrollable field is actually displayed within the menu subwindow.
Use these functions:</p>
- <pre>
+ <pre class="code-block">
int data_ahead(FORM *form); /* form to be queried */
int data_behind(FORM *form); /* form to be queried */
</pre>
-
<p>The function <code>data_ahead()</code> returns TRUE if (a) the
current field is one-line and has undisplayed data off to the
right, (b) the current field is multi-line and there is data
@@ -2637,27 +2591,25 @@ int data_behind(FORM *form); /* form to be queried */
<p>Finally, there is a function to restore the form window's
cursor to the value expected by the forms driver:</p>
- <pre>
+ <pre class="code-block">
int pos_form_cursor(FORM *) /* form to be queried */
</pre>
-
<p>If your application changes the form window cursor, call this
function before handing control back to the forms driver in order
to re-synchronize it.</p>
- <h2><a name="fdriver" id="fdriver">Input Processing in the Forms
- Driver</a></h2>
+ <h3><a name="fdriver" id="fdriver">Input Processing in the Forms
+ Driver</a></h3>
<p>The function <code>form_driver()</code> handles virtualized
input requests for form navigation, editing, and validation
requests, just as <code>menu_driver</code> does for menus (see
the section on <a href="#minput">menu input handling</a>).</p>
- <pre>
+ <pre class="code-block">
int form_driver(FORM *form, /* form to pass input to */
int request); /* form request code */
</pre>
-
<p>Your input virtualization function needs to take input and
then convert it to either an alphanumeric character (which is
treated as data to be entered in the currently-selected field),
@@ -2668,7 +2620,7 @@ int form_driver(FORM *form, /* form to pass input to */
check that the input taken by the driver matched what was
expected.</p>
- <h3><a name="fpage" id="fpage">Page Navigation Requests</a></h3>
+ <h4><a name="fpage" id="fpage">Page Navigation Requests</a></h4>
<p>These requests cause page-level moves through the form,
triggering display of a new form screen.</p>
@@ -2700,8 +2652,8 @@ int form_driver(FORM *form, /* form to pass input to */
and <code>REQ_PREV_PAGE</code> from the first page goes to the
last.</p>
- <h3><a name="ffield" id="ffield">Inter-Field Navigation
- Requests</a></h3>
+ <h4><a name="ffield" id="ffield">Inter-Field Navigation
+ Requests</a></h4>
<p>These requests handle navigation between fields on the same
page.</p>
@@ -2794,8 +2746,8 @@ int form_driver(FORM *form, /* form to pass input to */
from A will go to B only if A, B, and C <em>all</em> share the
same first line; otherwise it will skip over B to C.</p>
- <h3><a name="fifield" id="fifield">Intra-Field Navigation
- Requests</a></h3>
+ <h4><a name="fifield" id="fifield">Intra-Field Navigation
+ Requests</a></h4>
<p>These requests drive movement of the edit cursor within the
currently selected field.</p>
@@ -2877,7 +2829,7 @@ int form_driver(FORM *form, /* form to pass input to */
end of line or field look for the first or last non-pad character
in their ranges.</p>
- <h3><a name="fscroll" id="fscroll">Scrolling Requests</a></h3>
+ <h4><a name="fscroll" id="fscroll">Scrolling Requests</a></h4>
<p>Fields that are dynamic and have grown and fields explicitly
created with offscreen rows are scrollable. One-line fields
@@ -2952,7 +2904,7 @@ int form_driver(FORM *form, /* form to pass input to */
<p>For scrolling purposes, a <em>page</em> of a field is the
height of its visible part.</p>
- <h3><a name="fedit" id="fedit">Editing Requests</a></h3>
+ <h4><a name="fedit" id="fedit">Editing Requests</a></h4>
<p>When you pass the forms driver an ASCII character, it is
treated as a request to add the character to the field's data
@@ -3068,7 +3020,7 @@ int form_driver(FORM *form, /* form to pass input to */
<p>See <a href="#frmoptions">Form Options</a> for discussion of
how to set and clear the overload options.</p>
- <h3><a name="forder" id="forder">Order Requests</a></h3>
+ <h4><a name="forder" id="forder">Order Requests</a></h4>
<p>If the type of your field is ordered, and has associated
functions for getting the next and previous values of the type
@@ -3094,7 +3046,7 @@ int form_driver(FORM *form, /* form to pass input to */
field type of your own (see <a href="#fcustom">Custom Validation
Types</a>), you can associate our own ordering functions.</p>
- <h3><a name="fappcmds" id="fappcmds">Application Commands</a></h3>
+ <h4><a name="fappcmds" id="fappcmds">Application Commands</a></h4>
<p>Form requests are represented as integers above the
<code>curses</code> value greater than <code>KEY_MAX</code> and
@@ -3102,13 +3054,13 @@ int form_driver(FORM *form, /* form to pass input to */
your input-virtualization routine returns a value above
<code>MAX_COMMAND</code>, the forms driver will ignore it.</p>
- <h2><a name="fhooks" id="fhooks">Field Change Hooks</a></h2>
+ <h3><a name="fhooks" id="fhooks">Field Change Hooks</a></h3>
<p>It is possible to set function hooks to be executed whenever
the current field or form changes. Here are the functions that
support this:</p>
- <pre>
+ <pre class="code-block">
typedef void (*HOOK)(); /* pointer to function returning void */
int set_form_init(FORM *form, /* form to alter */
@@ -3131,7 +3083,6 @@ int set_field_term(FORM *form, /* form to alter */
HOOK field_term(FORM *form); /* form to query */
</pre>
-
<p>These functions allow you to either set or query four
different hooks. In each of the set functions, the second
argument should be the address of a hook function. These
@@ -3182,7 +3133,7 @@ HOOK field_term(FORM *form); /* form to query */
<p>You can disable any of these hooks by (re)setting them to
NULL, the default value.</p>
- <h2><a href="#ffocus">Field Change Commands</a></h2>
+ <h3><a href="#ffocus">Field Change Commands</a></h3>
<p>Normally, navigation through the form will be driven by the
user's input requests. But sometimes it is useful to be able to
@@ -3190,7 +3141,7 @@ HOOK field_term(FORM *form); /* form to query */
application, or ask which field it currently is in. The following
functions help you accomplish this:</p>
- <pre>
+ <pre class="code-block">
int set_current_field(FORM *form, /* form to alter */
FIELD *field); /* field to shift to */
@@ -3199,7 +3150,6 @@ FIELD *current_field(FORM *form); /* form to query */
int field_index(FORM *form, /* form to query */
FIELD *field); /* field to get index of */
</pre>
-
<p>The function <code>field_index()</code> returns the index of
the given field in the given form's field array (the array passed
to <code>new_form()</code> or
@@ -3211,22 +3161,21 @@ int field_index(FORM *form, /* form to query */
<p>It is also possible to move around by pages.</p>
- <pre>
+ <pre class="code-block">
int set_form_page(FORM *form, /* form to alter */
int page); /* page to go to (0-origin) */
int form_page(FORM *form); /* return form's current page */
</pre>
-
<p>The initial page of a newly-created form is 0. The function
<code>set_form_fields()</code> resets this.</p>
- <h2><a name="frmoptions" id="frmoptions">Form Options</a></h2>
+ <h3><a name="frmoptions" id="frmoptions">Form Options</a></h3>
<p>Like fields, forms may have control option bits. They can be
changed or queried with these functions:</p>
- <pre>
+ <pre class="code-block">
int set_form_opts(FORM *form, /* form to alter */
int attr); /* attribute to set */
@@ -3238,7 +3187,6 @@ int form_opts_off(FORM *form, /* form to alter */
int form_opts(FORM *form); /* form to query */
</pre>
-
<p>By default, all options are on. Here are the available option
bits:</p>
@@ -3261,7 +3209,7 @@ int form_opts(FORM *form); /* form to query */
<p>The option values are bit-masks and can be composed with
logical-or in the obvious way.</p>
- <h2><a name="fcustom" id="fcustom">Custom Validation Types</a></h2>
+ <h3><a name="fcustom" id="fcustom">Custom Validation Types</a></h3>
<p>The <code>form</code> library gives you the capability to
define custom validation types of your own. Further, the optional
@@ -3271,16 +3219,15 @@ int form_opts(FORM *form); /* form to query */
the handling of the additional arguments within custom validation
functions.</p>
- <h3><a name="flinktypes" id="flinktypes">Union Types</a></h3>
+ <h4><a name="flinktypes" id="flinktypes">Union Types</a></h4>
<p>The simplest way to create a custom data type is to compose it
from two preexisting ones:</p>
- <pre>
+ <pre class="code-block">
FIELD *link_fieldtype(FIELDTYPE *type1,
FIELDTYPE *type2);
</pre>
-
<p>This function creates a field type that will accept any of the
values legal for either of its argument field types (which may be
either predefined or programmer-defined). If a
@@ -3292,7 +3239,7 @@ FIELD *link_fieldtype(FIELDTYPE *type1,
function for the first type, then for the second, to figure what
type the buffer contents should be treated as.</p>
- <h3><a name="fnewtypes" id="fnewtypes">New Field Types</a></h3>
+ <h4><a name="fnewtypes" id="fnewtypes">New Field Types</a></h4>
<p>To create a field type from scratch, you need to specify one
or both of the following things:</p>
@@ -3307,7 +3254,7 @@ FIELD *link_fieldtype(FIELDTYPE *type1,
<p>Here is how you do that:</p>
- <pre>
+ <pre class="code-block">
typedef int (*HOOK)(); /* pointer to function returning int */
FIELDTYPE *new_fieldtype(HOOK f_validate, /* field validator */
@@ -3315,7 +3262,6 @@ FIELDTYPE *new_fieldtype(HOOK f_validate, /* field validator */
int free_fieldtype(FIELDTYPE *ftype); /* type to free */
</pre>
-
<p>At least one of the arguments of <code>new_fieldtype()</code>
must be non-NULL. The forms driver will automatically call the
new type's validation functions at appropriate points in
@@ -3334,8 +3280,8 @@ int free_fieldtype(FIELDTYPE *ftype); /* type to free */
argument. It too should return TRUE if the character is valid,
FALSE otherwise.</p>
- <h3><a name="fcheckargs" id="fcheckargs">Validation Function
- Arguments</a></h3>
+ <h4><a name="fcheckargs" id="fcheckargs">Validation Function
+ Arguments</a></h4>
<p>Your field- and character- validation functions will be passed
a second argument as well. This second argument is the address of
@@ -3353,7 +3299,7 @@ int free_fieldtype(FIELDTYPE *ftype); /* type to free */
<p>Here is how you make the association:</p>
- <pre>
+ <pre class="code-block">
typedef char *(*PTRHOOK)(); /* pointer to function returning (char *) */
typedef void (*VOIDHOOK)(); /* pointer to function returning void */
@@ -3362,7 +3308,6 @@ int set_fieldtype_arg(FIELDTYPE *type, /* type to alter */
PTRHOOK copy_str, /* make copy of structure */
VOIDHOOK free_str); /* free structure storage */
</pre>
-
<p>Here is how the storage-management hooks are used:</p>
<dl>
@@ -3398,8 +3343,8 @@ int set_fieldtype_arg(FIELDTYPE *type, /* type to alter */
this happens. Thus, your validation functions should never see a
NULL file pointer and need not check specially for it.</p>
- <h3><a name="fcustorder" id="fcustorder">Order Functions For
- Custom Types</a></h3>
+ <h4><a name="fcustorder" id="fcustorder">Order Functions For
+ Custom Types</a></h4>
<p>Some custom field types are simply ordered in the same
well-defined way that <code>TYPE_ENUM</code> is. For such types,
@@ -3407,14 +3352,13 @@ int set_fieldtype_arg(FIELDTYPE *type, /* type to alter */
support the <code>REQ_NEXT_CHOICE</code> and
<code>REQ_PREV_CHOICE</code> requests. Here is how:</p>
- <pre>
+ <pre class="code-block">
typedef int (*INTHOOK)(); /* pointer to function returning int */
int set_fieldtype_arg(FIELDTYPE *type, /* type to alter */
INTHOOK succ, /* get successor value */
INTHOOK pred); /* get predecessor value */
</pre>
-
<p>The successor and predecessor arguments will each be passed
two arguments; a field pointer, and a pile pointer (as for the
validation functions). They are expected to use the function
@@ -3424,7 +3368,7 @@ int set_fieldtype_arg(FIELDTYPE *type, /* type to alter */
(a legal next or previous value was set) or FALSE to indicate
failure.</p>
- <h3><a name="fcustprobs" id="fcustprobs">Avoiding Problems</a></h3>
+ <h4><a name="fcustprobs" id="fcustprobs">Avoiding Problems</a></h4>
<p>The interface for defining custom types is complicated and
tricky. Rather than attempting to create a custom type entirely
diff --git a/doc/ncurses-intro.doc b/doc/ncurses-intro.doc
index 4e752ed0fc54..a20ee1a1d271 100644
--- a/doc/ncurses-intro.doc
+++ b/doc/ncurses-intro.doc
@@ -1,9 +1,11 @@
Writing Programs with NCURSES
+Writing Programs with NCURSES
+
by Eric S. Raymond and Zeyd M. Ben-Halim
updates since release 1.9.9e by Thomas Dickey
- Contents
+Contents
* Introduction
+ A Brief History of Curses
@@ -96,7 +98,7 @@
o Avoiding Problems
_________________________________________________________________
- Introduction
+Introduction
This document is an introduction to programming with curses. It is not
an exhaustive reference for the curses Application Programming
@@ -129,7 +131,7 @@
will typically be a great deal simpler and less expensive than one
using an X toolkit.
-A Brief History of Curses
+ A Brief History of Curses
Historically, the first ancestor of curses was the routines written to
provide screen-handling for the vi editor; these used the termcap
@@ -163,7 +165,7 @@ A Brief History of Curses
releases, curses evolved to use more facilities and offer more
capabilities, going far beyond BSD curses in power and flexibility.
-Scope of This Document
+ Scope of This Document
This document describes ncurses, a free implementation of the System V
curses API with some clearly marked extensions. It includes the
@@ -206,7 +208,7 @@ Scope of This Document
extension libraries, also cloned from System V, which support easy
construction and sequences of menus and fill-in forms.
-Terminology
+ Terminology
In this document, the following terminology is used with reasonable
consistency:
@@ -227,11 +229,11 @@ Terminology
The package's idea of what the terminal display currently looks
like, i.e., what the user sees now. This is a special screen.
- The Curses Library
+The Curses Library
-An Overview of Curses
+ An Overview of Curses
- Compiling Programs using Curses
+ Compiling Programs using Curses
In order to use the library, it is necessary to have certain types and
variables defined. Therefore, the programmer must have a line:
@@ -245,7 +247,7 @@ An Overview of Curses
your LDFLAGS or on the command line. There is no need for any other
libraries.
- Updating the Screen
+ Updating the Screen
In order to update the screen optimally, it is necessary for the
routines to know what the screen currently looks like and what the
@@ -273,7 +275,7 @@ An Overview of Curses
package implementation determine the most efficient way to repaint the
screen.
- Standard Windows and Function Naming Conventions
+ Standard Windows and Function Naming Conventions
As hinted above, the routines can use several windows, but two are
automatically given: curscr, which knows what the terminal looks like,
@@ -313,7 +315,7 @@ An Overview of Curses
(y, x) coordinates. If a function requires a window pointer, it is
always the first parameter passed.
- Variables
+ Variables
The curses library sets some variables describing the terminal
capabilities.
@@ -340,7 +342,7 @@ An Overview of Curses
OK
error flag returned by routines when things go right.
-Using the Library
+ Using the Library
Now we describe how to actually use the screen package. In it, we
assume all updating, reading, etc. is applied to stdscr. These
@@ -409,7 +411,7 @@ static void finish(int sig)
exit(0);
}
- Starting up
+ Starting up
In order to use the screen package, the routines must know about
terminal characteristics, and the space for curscr and stdscr must be
@@ -435,7 +437,7 @@ static void finish(int sig)
of old windows. All the options described above can be applied to any
window.
- Output
+ Output
Now that we have set things up, we will want to actually update the
terminal. The basic functions used to change what will go on a window
@@ -464,7 +466,7 @@ static void finish(int sig)
implementing a command which would redraw the screen in case it get
messed up.
- Input
+ Input
The complementary function to addch() is getch() which, if echo is
set, will call addch() to echo the character. Since the screen package
@@ -488,7 +490,7 @@ static void finish(int sig)
curses.h The mapping from sequences to #define values is determined by
key_ capabilities in the terminal's terminfo entry.
- Using Forms Characters
+ Using Forms Characters
The addch() function (and some others, including box() and border())
can accept some pseudo-character arguments which are specially defined
@@ -500,7 +502,7 @@ static void finish(int sig)
the terminal does not have such characters, curses.h will map them to
a recognizable (though ugly) set of ASCII defaults.
- Character Attributes and Color
+ Character Attributes and Color
The ncurses package supports screen highlights including standout,
reverse-video, underline, and blink. It also supports color, which is
@@ -531,7 +533,7 @@ static void finish(int sig)
combination. Note that COLOR_PAIR(N), for constant N, is itself a
compile-time constant and can be used in initializers.
- Mouse Interfacing
+ Mouse Interfacing
The ncurses library also provides a mouse interface.
@@ -603,7 +605,7 @@ static void finish(int sig)
See the manual page curs_mouse(3X) for full details of the
mouse-interface functions.
- Finishing Up
+ Finishing Up
In order to clean up after the ncurses routines, the routine endwin()
is provided. It restores tty modes to what they were when initscr()
@@ -611,12 +613,12 @@ static void finish(int sig)
Thus, anytime after the call to initscr, endwin() should be called
before exiting.
-Function Descriptions
+ Function Descriptions
We describe the detailed behavior of some important curses functions
here, as a supplement to the manual page descriptions.
- Initialization and Wrapup
+ Initialization and Wrapup
initscr()
The first function called should almost always be initscr().
@@ -660,7 +662,7 @@ Function Descriptions
The inverse of newterm(); deallocates the data structures
associated with a given SCREEN reference.
- Causing Output to the Terminal
+ Causing Output to the Terminal
refresh() and wrefresh(win)
These functions must be called to actually get any output on
@@ -689,7 +691,7 @@ Function Descriptions
with fewer total characters transmitted (this also avoids a
visually annoying flicker at each update).
- Low-Level Capability Access
+ Low-Level Capability Access
setupterm(term, filenum, errret)
This routine is called to initialize a terminal's description,
@@ -719,7 +721,7 @@ Function Descriptions
array ttytype[]. Subsequent calls to setupterm() will overwrite
this array, so you will have to save it yourself if need be.
- Debugging
+ Debugging
NOTE: These functions are not part of the standard curses API!
@@ -747,13 +749,13 @@ Function Descriptions
single-line pseudo-operations. These pseudo-ops can be distinguished
by the fact that they are named in capital letters.
-Hints, Tips, and Tricks
+ Hints, Tips, and Tricks
The ncurses manual pages are a complete reference for this library. In
the remainder of this document, we discuss various useful methods that
may not be obvious from the manual page descriptions.
- Some Notes of Caution
+ Some Notes of Caution
If you find yourself thinking you need to use noraw() or nocbreak(),
think again and move carefully. It is probably better design to use
@@ -787,7 +789,7 @@ Hints, Tips, and Tricks
in an environment with window resizes, in which case several screens
could be open with different sizes.
- Temporarily Leaving NCURSES Mode
+ Temporarily Leaving NCURSES Mode
Sometimes you will want to write a program that spends most of its
time in screen mode, but occasionally returns to ordinary "cooked"
@@ -812,7 +814,7 @@ Hints, Tips, and Tricks
addstr("returned.\n"); /* prepare return message */
refresh(); /* restore save modes, repaint screen */
- Using NCURSES under XTERM
+ Using NCURSES under XTERM
A resize operation in X sends SIGWINCH to the application running
under xterm. The easiest way to handle SIGWINCH is to do an endwin,
@@ -835,7 +837,7 @@ Hints, Tips, and Tricks
it cannot know how you want the screen re-painted. You will usually
have to write special-purpose code to handle KEY_RESIZE yourself.
- Handling Multiple Terminal Screens
+ Handling Multiple Terminal Screens
The initscr() function actually calls a function named newterm() to do
most of its work. If you are writing a program that opens multiple
@@ -847,7 +849,7 @@ Hints, Tips, and Tricks
with the set_term call. Note that you will also have to call
def_shell_mode and def_prog_mode on each tty yourself.
- Testing for Terminal Capabilities
+ Testing for Terminal Capabilities
Sometimes you may want to write programs that test for the presence of
various capabilities before deciding whether to go into ncurses mode.
@@ -861,14 +863,14 @@ Hints, Tips, and Tricks
can include the term.h file and test the value of the macro
cursor_address.
- Tuning for Speed
+ Tuning for Speed
Use the addchstr() family of functions for fast screen-painting of
text when you know the text does not contain any control characters.
Try to make attribute changes infrequent on your screens. Do not use
the immedok() option!
- Special Features of NCURSES
+ Special Features of NCURSES
The wresize() function allows you to resize a window in place. The
associated resizeterm() function simplifies the construction of
@@ -888,14 +890,14 @@ Hints, Tips, and Tricks
8. While most terminals which provide color allow only 8 colors, about
a quarter (including XFree86 xterm) support 16 colors.
-Compatibility with Older Versions
+ Compatibility with Older Versions
Despite our best efforts, there are some differences between ncurses
and the (undocumented!) behavior of older curses implementations.
These arise from ambiguities or omissions in the documentation of the
API.
- Refresh of Overlapping Windows
+ Refresh of Overlapping Windows
If you define two windows A and B that overlap, and then alternately
scribble on and refresh them, the changes made to the overlapping
@@ -947,7 +949,7 @@ Compatibility with Older Versions
you have defined. Then you can do one doupdate() and there will be a
single burst of physical I/O that will do all your updates.
- Background Erase
+ Background Erase
If you have been using a very old versions of ncurses (1.8.7 or older)
you may be surprised by the behavior of the erase functions. In older
@@ -962,7 +964,7 @@ Compatibility with Older Versions
This change in behavior conforms ncurses to System V Release 4 and the
XSI Curses standard.
-XSI Curses Conformance
+ XSI Curses Conformance
The ncurses library is intended to be base-level conformant with the
XSI Curses standard from X/Open. Many extended-level features (in
@@ -976,7 +978,7 @@ XSI Curses Conformance
have a corresponding function which may be linked (and will be
prototype-checked) if the macro definition is disabled with #undef.
- The Panels Library
+The Panels Library
The ncurses library by itself provides good support for screen
displays in which the windows are tiled (non-overlapping). In the more
@@ -993,7 +995,7 @@ XSI Curses Conformance
The panel library first appeared in AT&T System V. The version
documented here is the panel code distributed with ncurses.
-Compiling With the Panels Library
+ Compiling With the Panels Library
Your panels-using modules must import the panels library declarations
with
@@ -1004,7 +1006,7 @@ Compiling With the Panels Library
-lncurses. Many linkers are two-pass and will accept either order, but
it is still good practice to put -lpanel first and -lncurses second.
-Overview of Panels
+ Overview of Panels
A panel object is a window that is implicitly treated as part of a
deck including all other panel objects. The deck has an implicit
@@ -1047,7 +1049,7 @@ Overview of Panels
write, you will generate a lot of unnecessary refresh activity and
screen flicker.
-Panels, Input, and the Standard Screen
+ Panels, Input, and the Standard Screen
You should not mix wnoutrefresh() or wrefresh() operations with panels
code; this will work only if the argument window is either in the top
@@ -1065,7 +1067,7 @@ Panels, Input, and the Standard Screen
There is presently no way to display changes to one obscured panel
without repainting all panels.
-Hiding Panels
+ Hiding Panels
It is possible to remove a panel from the deck temporarily; use
hide_panel for this. Use show_panel() to render it visible again. The
@@ -1076,7 +1078,7 @@ Hiding Panels
or bottom_panel on a hidden panel(). Other panels operations are
applicable.
-Miscellaneous Other Facilities
+ Miscellaneous Other Facilities
It is possible to navigate the deck using the functions panel_above()
and panel_below. Handed a panel pointer, they return the panel above
@@ -1087,7 +1089,7 @@ Miscellaneous Other Facilities
code, to which you can attach application data. See the man page
documentation of set_panel_userptr() and panel_userptr for details.
- The Menu Library
+The Menu Library
A menu is a screen display that assists the user to choose some subset
of a given set of items. The menu library is a curses extension that
@@ -1097,7 +1099,7 @@ Miscellaneous Other Facilities
The menu library first appeared in AT&T System V. The version
documented here is the menu code distributed with ncurses.
-Compiling With the menu Library
+ Compiling With the menu Library
Your menu-using modules must import the menu library declarations with
#include <menu.h>
@@ -1107,7 +1109,7 @@ Compiling With the menu Library
-lncurses. Many linkers are two-pass and will accept either order, but
it is still good practice to put -lmenu first and -lncurses second.
-Overview of Menus
+ Overview of Menus
The menus created by this library consist of collections of items
including a name string part and a description string part. To make
@@ -1137,7 +1139,7 @@ Overview of Menus
9. Free the items using free_item().
10. Terminate curses.
-Selecting items
+ Selecting items
Menus may be multi-valued or (the default) single-valued (see the
manual page menu_opts(3x) to see how to change the default). Both
@@ -1154,7 +1156,7 @@ Selecting items
option so far defined for menus, but it is good practice to code as
though other option bits might be on.
-Menu Display
+ Menu Display
The menu library calculates a minimum display size for your window,
based on the following variables:
@@ -1197,7 +1199,7 @@ Menu Display
have reasonable defaults which the library allows you to change (see
the menu_attribs(3x) manual page.
-Menu Windows
+ Menu Windows
Each menu has, as mentioned previously, a pair of associated windows.
Both these windows are painted when the menu is posted and erased when
@@ -1217,7 +1219,7 @@ Menu Windows
these actually modifies the screen. To do that, call wrefresh() or
some equivalent.
-Processing Menu Input
+ Processing Menu Input
The main loop of your menu-processing code should call menu_driver()
repeatedly. The first argument of this routine is a menu pointer; the
@@ -1261,7 +1263,7 @@ Processing Menu Input
considered application-specific commands. The menu_driver() code
ignores them and returns E_UNKNOWN_COMMAND.
-Miscellaneous Other Features
+ Miscellaneous Other Features
Various menu options can affect the processing and visual appearance
and input processing of menus. See menu_opts(3x) for details.
@@ -1280,7 +1282,7 @@ Miscellaneous Other Features
Each item, and each menu, has an associated user pointer on which you
can hang application data. See mitem_userptr(3x) and menu_userptr(3x).
- The Forms Library
+The Forms Library
The form library is a curses extension that supports easy programming
of on-screen forms for data entry and program control.
@@ -1288,7 +1290,7 @@ Miscellaneous Other Features
The form library first appeared in AT&T System V. The version
documented here is the form code distributed with ncurses.
-Compiling With the form Library
+ Compiling With the form Library
Your form-using modules must import the form library declarations with
#include <form.h>
@@ -1298,7 +1300,7 @@ Compiling With the form Library
-lncurses. Many linkers are two-pass and will accept either order, but
it is still good practice to put -lform first and -lncurses second.
-Overview of Forms
+ Overview of Forms
A form is a collection of fields; each field may be either a label
(explanatory text) or a data-entry location. Long forms may be
@@ -1347,7 +1349,7 @@ Overview of Forms
operations, the menu driver loop has to support field editing and data
validation.
-Creating and Freeing Fields and Forms
+ Creating and Freeing Fields and Forms
The basic function for creating fields is new_field():
FIELD *new_field(int height, int width, /* new field size */
@@ -1423,7 +1425,7 @@ FORM *new_form(FIELD **fields);
to a form, but not vice-versa; thus, you will generally free your form
objects first.
-Fetching and Changing Field Attributes
+ Fetching and Changing Field Attributes
Each form field has a number of location and size attributes
associated with it. There are other field attributes used to control
@@ -1438,7 +1440,7 @@ Fetching and Changing Field Attributes
to mean this field. Changes to it persist as defaults until your forms
application terminates.
- Fetching Size and Location Data
+ Fetching Size and Location Data
You can retrieve field sizes and locations through:
int field_info(FIELD *field, /* field from which to fetch */
@@ -1451,7 +1453,7 @@ int field_info(FIELD *field, /* field from which to fetch */
size and location attributes of a new field, it fetches them from an
existing one.
- Changing the Field Location
+ Changing the Field Location
It is possible to move a field's location on the screen:
int move_field(FIELD *field, /* field to alter */
@@ -1459,7 +1461,7 @@ int move_field(FIELD *field, /* field to alter */
You can, of course. query the current location through field_info().
- The Justification Attribute
+ The Justification Attribute
One-line fields may be unjustified, justified right, justified left,
or centered. Here is how you manipulate this attribute:
@@ -1472,7 +1474,7 @@ int field_just(FIELD *field); /* fetch mode of field */
preprocessor macros NO_JUSTIFICATION, JUSTIFY_RIGHT, JUSTIFY_LEFT, or
JUSTIFY_CENTER.
- Field Display Attributes
+ Field Display Attributes
For each field, you can set a foreground attribute for entered
characters, a background attribute for the entire field, and a pad
@@ -1507,7 +1509,7 @@ chtype new_page(FIELD *field); /* field to query */
etc). The page bit of a field controls whether it is displayed at the
start of a new form screen.
- Field Option Bits
+ Field Option Bits
There is also a large collection of field option bits you can set to
control various aspects of forms processing. You can manipulate them
@@ -1593,7 +1595,7 @@ int field_opts(FIELD *field); /* field to query */
The option values are bit-masks and can be composed with logical-or in
the obvious way.
-Field Status
+ Field Status
Every field has a status flag, which is set to FALSE when the field is
created and TRUE when the value in field buffer 0 changes. This flag
@@ -1616,7 +1618,7 @@ int field_status(FIELD *field); /* fetch mode of field */
initialization or termination hooks, or (3) just after a
REQ_VALIDATION request has been processed by the forms driver.
-Field User Pointer
+ Field User Pointer
Each field structure contains one character pointer slot that is not
used by the forms library. It is intended to be used by applications
@@ -1634,7 +1636,7 @@ char *field_userptr(FIELD *field); /* fetch mode of field */
field is created, the default-field user pointer is copied to
initialize the new field's user pointer.
-Variable-Sized Fields
+ Variable-Sized Fields
Normally, a field is fixed at the size specified for it at creation
time. If, however, you turn off its O_STATIC bit, it becomes dynamic
@@ -1673,7 +1675,7 @@ int set_max_field(FIELD *field, /* field to alter (may not be NULL) */
the field; use dynamic_field_info() to get the actual dynamic
size.
-Field Validation
+ Field Validation
By default, a field will accept any data that will fit in its input
buffer. However, it is possible to attach a validation type to a
@@ -1703,7 +1705,7 @@ FIELDTYPE *field_type(FIELD *field); /* field to query */
Here are the pre-defined validation types:
- TYPE_ALPHA
+ TYPE_ALPHA
This field type accepts alphabetic data; no blanks, no digits, no
special characters (this is checked at character-entry time). It is
@@ -1717,7 +1719,7 @@ int set_field_type(FIELD *field, /* field to alter */
width, the validation check will always fail. A minimum width of zero
makes field completion optional.
- TYPE_ALNUM
+ TYPE_ALNUM
This field type accepts alphabetic data and digits; no blanks, no
special characters (this is checked at character-entry time). It is
@@ -1731,7 +1733,7 @@ int set_field_type(FIELD *field, /* field to alter */
greater than the field width, the validation check will always fail. A
minimum width of zero makes field completion optional.
- TYPE_ENUM
+ TYPE_ENUM
This type allows you to restrict a field's values to be among a
specified set of string values (for example, the two-letter postal
@@ -1760,7 +1762,7 @@ int set_field_type(FIELD *field, /* field to alter */
The REQ_NEXT_CHOICE and REQ_PREV_CHOICE input requests can be
particularly useful with these fields.
- TYPE_INTEGER
+ TYPE_INTEGER
This field type accepts an integer. It is set up as follows:
int set_field_type(FIELD *field, /* field to alter */
@@ -1778,7 +1780,7 @@ int set_field_type(FIELD *field, /* field to alter */
A TYPE_INTEGER value buffer can conveniently be interpreted with the C
library function atoi(3).
- TYPE_NUMERIC
+ TYPE_NUMERIC
This field type accepts a decimal number. It is set up as follows:
int set_field_type(FIELD *field, /* field to alter */
@@ -1798,7 +1800,7 @@ int set_field_type(FIELD *field, /* field to alter */
A TYPE_NUMERIC value buffer can conveniently be interpreted with the C
library function atof(3).
- TYPE_REGEXP
+ TYPE_REGEXP
This field type accepts data matching a regular expression. It is set
up as follows:
@@ -1809,7 +1811,7 @@ int set_field_type(FIELD *field, /* field to alter */
The syntax for regular expressions is that of regcomp(3). The check
for regular-expression match is performed on exit.
-Direct Field Buffer Manipulation
+ Direct Field Buffer Manipulation
The chief attribute of a field is its buffer contents. When a form has
been completed, your application usually needs to know the state of
@@ -1840,7 +1842,7 @@ int set_field_buffer(FIELD *field, /* field to alter */
or form's initialization or termination hooks, or (3) just after a
REQ_VALIDATION request has been processed by the forms driver.
-Attributes of Forms
+ Attributes of Forms
As with field attributes, form attributes inherit a default from a
system default form structure. These defaults can be queried or set by
@@ -1868,7 +1870,7 @@ int field_count(FORM *form); /* count connect fields */
connected to a given from. It returns -1 if the form-pointer argument
is NULL.
-Control of Form Display
+ Control of Form Display
In the overview section, you saw that to display a form you normally
start by defining its size (and fields), posting it, and refreshing
@@ -1938,7 +1940,7 @@ int pos_form_cursor(FORM *) /* form to be queried */
before handing control back to the forms driver in order to
re-synchronize it.
-Input Processing in the Forms Driver
+ Input Processing in the Forms Driver
The function form_driver() handles virtualized input requests for form
navigation, editing, and validation requests, just as menu_driver does
@@ -1955,7 +1957,7 @@ int form_driver(FORM *form, /* form to pass input to */
field-termination functions) with which your application code can
check that the input taken by the driver matched what was expected.
- Page Navigation Requests
+ Page Navigation Requests
These requests cause page-level moves through the form, triggering
display of a new form screen.
@@ -1976,7 +1978,7 @@ int form_driver(FORM *form, /* form to pass input to */
the last page goes to the first, and REQ_PREV_PAGE from the first page
goes to the last.
- Inter-Field Navigation Requests
+ Inter-Field Navigation Requests
These requests handle navigation between fields on the same page.
@@ -2039,7 +2041,7 @@ int form_driver(FORM *form, /* form to pass input to */
only if A, B, and C all share the same first line; otherwise it will
skip over B to C.
- Intra-Field Navigation Requests
+ Intra-Field Navigation Requests
These requests drive movement of the edit cursor within the currently
selected field.
@@ -2090,7 +2092,7 @@ int form_driver(FORM *form, /* form to pass input to */
whitespace. The commands to move to beginning and end of line or field
look for the first or last non-pad character in their ranges.
- Scrolling Requests
+ Scrolling Requests
Fields that are dynamic and have grown and fields explicitly created
with offscreen rows are scrollable. One-line fields scroll
@@ -2138,7 +2140,7 @@ int form_driver(FORM *form, /* form to pass input to */
For scrolling purposes, a page of a field is the height of its visible
part.
- Editing Requests
+ Editing Requests
When you pass the forms driver an ASCII character, it is treated as a
request to add the character to the field's data buffer. Whether this
@@ -2223,7 +2225,7 @@ int form_driver(FORM *form, /* form to pass input to */
See Form Options for discussion of how to set and clear the overload
options.
- Order Requests
+ Order Requests
If the type of your field is ordered, and has associated functions for
getting the next and previous values of the type from a given value,
@@ -2240,14 +2242,14 @@ int form_driver(FORM *form, /* form to pass input to */
Custom Validation Types), you can associate our own ordering
functions.
- Application Commands
+ Application Commands
Form requests are represented as integers above the curses value
greater than KEY_MAX and less than or equal to the constant
MAX_COMMAND. If your input-virtualization routine returns a value
above MAX_COMMAND, the forms driver will ignore it.
-Field Change Hooks
+ Field Change Hooks
It is possible to set function hooks to be executed whenever the
current field or form changes. Here are the functions that support
@@ -2309,7 +2311,7 @@ HOOK field_term(FORM *form); /* form to query */
You can disable any of these hooks by (re)setting them to NULL, the
default value.
-Field Change Commands
+ Field Change Commands
Normally, navigation through the form will be driven by the user's
input requests. But sometimes it is useful to be able to move the
@@ -2340,7 +2342,7 @@ int form_page(FORM *form); /* return form's current page */
The initial page of a newly-created form is 0. The function
set_form_fields() resets this.
-Form Options
+ Form Options
Like fields, forms may have control option bits. They can be changed
or queried with these functions:
@@ -2371,7 +2373,7 @@ int form_opts(FORM *form); /* form to query */
The option values are bit-masks and can be composed with logical-or in
the obvious way.
-Custom Validation Types
+ Custom Validation Types
The form library gives you the capability to define custom validation
types of your own. Further, the optional additional arguments of
@@ -2380,7 +2382,7 @@ Custom Validation Types
with the handling of the additional arguments within custom validation
functions.
- Union Types
+ Union Types
The simplest way to create a custom data type is to compose it from
two preexisting ones:
@@ -2397,7 +2399,7 @@ FIELD *link_fieldtype(FIELDTYPE *type1,
first type, then for the second, to figure what type the buffer
contents should be treated as.
- New Field Types
+ New Field Types
To create a field type from scratch, you need to specify one or both
of the following things:
@@ -2430,7 +2432,7 @@ int free_fieldtype(FIELDTYPE *ftype); /* type to free */
argument. It too should return TRUE if the character is valid, FALSE
otherwise.
- Validation Function Arguments
+ Validation Function Arguments
Your field- and character- validation functions will be passed a
second argument as well. This second argument is the address of a
@@ -2479,7 +2481,7 @@ int set_fieldtype_arg(FIELDTYPE *type, /* type to alter */
functions should never see a NULL file pointer and need not check
specially for it.
- Order Functions For Custom Types
+ Order Functions For Custom Types
Some custom field types are simply ordered in the same well-defined
way that TYPE_ENUM is. For such types, it is possible to define
@@ -2499,7 +2501,7 @@ int set_fieldtype_arg(FIELDTYPE *type, /* type to alter */
success (a legal next or previous value was set) or FALSE to indicate
failure.
- Avoiding Problems
+ Avoiding Problems
The interface for defining custom types is complicated and tricky.
Rather than attempting to create a custom type entirely from scratch,
diff --git a/form/Makefile.in b/form/Makefile.in
index 3d713469fe0c..a950a3e8ae14 100644
--- a/form/Makefile.in
+++ b/form/Makefile.in
@@ -1,4 +1,4 @@
-# $Id: Makefile.in,v 1.71 2021/01/23 20:42:08 tom Exp $
+# $Id: Makefile.in,v 1.72 2021/07/03 15:45:33 tom Exp $
##############################################################################
# Copyright 2020,2021 Thomas E. Dickey #
# Copyright 1998-2015,2018 Free Software Foundation, Inc. #
@@ -134,6 +134,19 @@ AUTO_SRC = \
../include/form.h
################################################################################
+
+@MAKE_PHONY@.PHONY : all
+@MAKE_PHONY@.PHONY : clean
+@MAKE_PHONY@.PHONY : distclean
+@MAKE_PHONY@.PHONY : install
+@MAKE_PHONY@.PHONY : install.libs
+@MAKE_PHONY@.PHONY : libs
+@MAKE_PHONY@.PHONY : mostlyclean
+@MAKE_PHONY@.PHONY : realclean
+@MAKE_PHONY@.PHONY : sources
+@MAKE_PHONY@.PHONY : uninstall
+@MAKE_PHONY@.PHONY : uninstall.libs
+
all \
libs \
install :: $(AUTO_SRC) $(LIBRARIES)
diff --git a/form/READ.ME b/form/READ.ME
index 0cefd57d1965..7c6ad972e576 100644
--- a/form/READ.ME
+++ b/form/READ.ME
@@ -1,5 +1,5 @@
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey --
+-- Copyright 2020,2021 Thomas E. Dickey --
-- Copyright 1998-2003,2006 Free Software Foundation, Inc. --
-- --
-- Permission is hereby granted, free of charge, to any person obtaining a --
@@ -26,18 +26,18 @@
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
--- $Id: READ.ME,v 0.8 2020/02/02 23:34:34 tom Exp $
+-- $Id: READ.ME,v 0.9 2021/06/17 21:20:30 tom Exp $
-------------------------------------------------------------------------------
This is a clone of the form library that is available with typical
System V curses implementations (ETI).
It is modelled after the documentation that comes for this library with
-a 386 based SVR4 implementation (ESIX).
+a 386 based SVR4 implementation (ESIX).
The development environment was and is an ELF based Linux system.
-For things that still need doing, see the TO-DO file in the top-level
+For things that still need doing, see the TO-DO file in the top-level
directory.
Juergen Pfeifer
diff --git a/form/fld_def.c b/form/fld_def.c
index de664eb5f803..51bdc6485800 100644
--- a/form/fld_def.c
+++ b/form/fld_def.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2012,2014 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -33,7 +33,7 @@
#include "form.priv.h"
-MODULE_ID("$Id: fld_def.c,v 1.43 2020/05/24 01:40:20 anonymous.maarten Exp $")
+MODULE_ID("$Id: fld_def.c,v 1.44 2021/03/27 23:49:53 tom Exp $")
/* this can't be readonly */
static FIELD default_field =
@@ -86,14 +86,13 @@ FORM_EXPORT(TypeArgument *)
_nc_Make_Argument(const FIELDTYPE *typ, va_list *ap, int *err)
{
TypeArgument *res = (TypeArgument *)0;
- TypeArgument *p;
if (typ != 0 && (typ->status & _HAS_ARGS) != 0)
{
assert(err != 0 && ap != (va_list *)0);
if ((typ->status & _LINKED_TYPE) != 0)
{
- p = typeMalloc(TypeArgument, 1);
+ TypeArgument *p = typeMalloc(TypeArgument, 1);
if (p != 0)
{
@@ -134,14 +133,13 @@ FORM_EXPORT(TypeArgument *)
_nc_Copy_Argument(const FIELDTYPE *typ, const TypeArgument *argp, int *err)
{
TypeArgument *res = (TypeArgument *)0;
- TypeArgument *p;
if (typ != 0 && (typ->status & _HAS_ARGS) != 0)
{
assert(err != 0 && argp != 0);
if ((typ->status & _LINKED_TYPE) != 0)
{
- p = typeMalloc(TypeArgument, 1);
+ TypeArgument *p = typeMalloc(TypeArgument, 1);
if (p != 0)
{
diff --git a/form/fld_ftchoice.c b/form/fld_ftchoice.c
index 265f94f869c3..dfaca149c087 100644
--- a/form/fld_ftchoice.c
+++ b/form/fld_ftchoice.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2020,2021 Thomas E. Dickey *
* Copyright 1998-2012,2016 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -33,10 +33,10 @@
#include "form.priv.h"
-MODULE_ID("$Id: fld_ftchoice.c,v 1.17 2020/05/24 01:40:20 anonymous.maarten Exp $")
+MODULE_ID("$Id: fld_ftchoice.c,v 1.18 2021/06/17 21:26:02 tom Exp $")
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int set_fieldtype_choice(
| FIELDTYPE *typ,
| bool (* const next_choice)(FIELD *,const void *),
diff --git a/form/fld_ftlink.c b/form/fld_ftlink.c
index 3d8af84de999..ed16920078bb 100644
--- a/form/fld_ftlink.c
+++ b/form/fld_ftlink.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2010,2012 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -33,17 +33,17 @@
#include "form.priv.h"
-MODULE_ID("$Id: fld_ftlink.c,v 1.17 2020/05/24 01:40:20 anonymous.maarten Exp $")
+MODULE_ID("$Id: fld_ftlink.c,v 1.18 2021/06/17 21:20:30 tom Exp $")
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : FIELDTYPE *link_fieldtype(
| FIELDTYPE *type1,
| FIELDTYPE *type2)
-|
+|
| Description : Create a new fieldtype built from the two given types.
| They are connected by an logical 'OR'.
-| If an error occurs, errno is set to
+| If an error occurs, errno is set to
| E_BAD_ARGUMENT - invalid arguments
| E_SYSTEM_ERROR - system error (no memory)
|
diff --git a/form/fld_info.c b/form/fld_info.c
index 188a31563ef2..bc8399dca743 100644
--- a/form/fld_info.c
+++ b/form/fld_info.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2004,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -33,15 +33,15 @@
#include "form.priv.h"
-MODULE_ID("$Id: fld_info.c,v 1.15 2020/12/12 01:05:42 tom Exp $")
+MODULE_ID("$Id: fld_info.c,v 1.16 2021/06/17 21:20:30 tom Exp $")
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int field_info(const FIELD *field,
| int *rows, int *cols,
| int *frow, int *fcol,
| int *nrow, int *nbuf)
-|
+|
| Description : Retrieve information about the field's creation parameters.
|
| Return Values : E_OK - success
@@ -78,11 +78,11 @@ field_info(const FIELD *field,
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int dynamic_field_info(const FIELD *field,
| int *drows, int *dcols,
| int *maxgrow)
-|
+|
| Description : Retrieve information about a dynamic field's current
| dynamic parameters.
|
diff --git a/form/fld_just.c b/form/fld_just.c
index 050e66f5d311..62253bcf77b6 100644
--- a/form/fld_just.c
+++ b/form/fld_just.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2010,2012 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -33,12 +33,12 @@
#include "form.priv.h"
-MODULE_ID("$Id: fld_just.c,v 1.16 2020/12/11 23:16:37 tom Exp $")
+MODULE_ID("$Id: fld_just.c,v 1.17 2021/06/17 21:20:30 tom Exp $")
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int set_field_just(FIELD *field, int just)
-|
+|
| Description : Set the field's type of justification.
|
| Return Values : E_OK - success
@@ -70,9 +70,9 @@ set_field_just(FIELD *field, int just)
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int field_just( const FIELD *field )
-|
+|
| Description : Retrieve the field's type of justification
|
| Return Values : The justification type.
diff --git a/form/fld_link.c b/form/fld_link.c
index dda6c97ee6d1..c0604584179f 100644
--- a/form/fld_link.c
+++ b/form/fld_link.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2010,2012 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -33,17 +33,17 @@
#include "form.priv.h"
-MODULE_ID("$Id: fld_link.c,v 1.16 2020/12/11 23:20:32 tom Exp $")
+MODULE_ID("$Id: fld_link.c,v 1.17 2021/06/17 21:20:30 tom Exp $")
/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : FIELD *link_field(FIELD *field, int frow, int fcol)
-|
+| Facility : libnform
+| Function : FIELD *link_field(FIELD *field, int frow, int fcol)
+|
| Description : Duplicates the field at the specified position. The
| new field shares its buffers with the original one,
| the attributes are independent.
| If an error occurs, errno is set to
-|
+|
| E_BAD_ARGUMENT - invalid argument
| E_SYSTEM_ERROR - system error
|
diff --git a/form/fld_max.c b/form/fld_max.c
index bfeadf9b7fa8..325541a373b5 100644
--- a/form/fld_max.c
+++ b/form/fld_max.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2020,2021 Thomas E. Dickey *
* Copyright 1998-2012,2013 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -33,12 +33,12 @@
#include "form.priv.h"
-MODULE_ID("$Id: fld_max.c,v 1.17 2020/05/24 01:40:20 anonymous.maarten Exp $")
+MODULE_ID("$Id: fld_max.c,v 1.18 2021/06/17 21:26:02 tom Exp $")
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int set_max_field(FIELD *field, int maxgrow)
-|
+|
| Description : Set the maximum growth for a dynamic field. If maxgrow=0
| the field may grow to any possible size.
|
diff --git a/form/fld_move.c b/form/fld_move.c
index c4b8313639d5..0d9ac4aebc9c 100644
--- a/form/fld_move.c
+++ b/form/fld_move.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2010,2012 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -33,12 +33,12 @@
#include "form.priv.h"
-MODULE_ID("$Id: fld_move.c,v 1.15 2020/12/11 23:48:05 tom Exp $")
+MODULE_ID("$Id: fld_move.c,v 1.16 2021/06/17 21:20:30 tom Exp $")
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int move_field(FIELD *field,int frow, int fcol)
-|
+|
| Description : Moves the disconnected field to the new location in
| the form's subwindow.
|
diff --git a/form/fld_opts.c b/form/fld_opts.c
index a0bbbf41cc5d..ab4d55943a07 100644
--- a/form/fld_opts.c
+++ b/form/fld_opts.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2004,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -33,16 +33,16 @@
#include "form.priv.h"
-MODULE_ID("$Id: fld_opts.c,v 1.15 2020/12/11 22:05:24 tom Exp $")
+MODULE_ID("$Id: fld_opts.c,v 1.16 2021/06/17 21:20:30 tom Exp $")
/*----------------------------------------------------------------------------
Field-Options manipulation routines
--------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int set_field_opts(FIELD *field, Field_Options opts)
-|
+|
| Description : Turns on the named options for this field and turns
| off all the remaining options.
|
@@ -65,9 +65,9 @@ set_field_opts(FIELD *field, Field_Options opts)
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : Field_Options field_opts(const FIELD *field)
-|
+|
| Description : Retrieve the field's options.
|
| Return Values : The options.
@@ -81,10 +81,10 @@ field_opts(const FIELD *field)
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int field_opts_on(FIELD *field, Field_Options opts)
-|
-| Description : Turns on the named options for this field and all the
+|
+| Description : Turns on the named options for this field and all the
| remaining options are unchanged.
|
| Return Values : E_OK - success
@@ -109,10 +109,10 @@ field_opts_on(FIELD *field, Field_Options opts)
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int field_opts_off(FIELD *field, Field_Options opts)
-|
-| Description : Turns off the named options for this field and all the
+|
+| Description : Turns off the named options for this field and all the
| remaining options are unchanged.
|
| Return Values : E_OK - success
diff --git a/form/fld_pad.c b/form/fld_pad.c
index 962958f501b6..fdd803fee07e 100644
--- a/form/fld_pad.c
+++ b/form/fld_pad.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2004,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -33,12 +33,12 @@
#include "form.priv.h"
-MODULE_ID("$Id: fld_pad.c,v 1.13 2020/12/11 22:05:24 tom Exp $")
+MODULE_ID("$Id: fld_pad.c,v 1.14 2021/06/17 21:20:30 tom Exp $")
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int set_field_pad(FIELD *field, int ch)
-|
+|
| Description : Set the pad character used to fill the field. This must
| be a printable character.
|
@@ -68,9 +68,9 @@ set_field_pad(FIELD *field, int ch)
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int field_pad(const FIELD *field)
-|
+|
| Description : Retrieve the field's pad character.
|
| Return Values : The pad character.
diff --git a/form/fld_page.c b/form/fld_page.c
index 9029768ce2ba..6972d310396d 100644
--- a/form/fld_page.c
+++ b/form/fld_page.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2010,2012 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -33,13 +33,13 @@
#include "form.priv.h"
-MODULE_ID("$Id: fld_page.c,v 1.15 2020/12/11 23:15:26 tom Exp $")
+MODULE_ID("$Id: fld_page.c,v 1.16 2021/06/17 21:20:30 tom Exp $")
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int set_new_page(FIELD *field, bool new_page_flag)
-|
-| Description : Marks the field as the beginning of a new page of
+|
+| Description : Marks the field as the beginning of a new page of
| the form.
|
| Return Values : E_OK - success
@@ -63,9 +63,9 @@ set_new_page(FIELD *field, bool new_page_flag)
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : bool new_page(const FIELD *field)
-|
+|
| Description : Retrieve the information whether or not the field starts
| a new page on the form.
|
diff --git a/form/fld_stat.c b/form/fld_stat.c
index 7b504bf449fe..62d782edd89d 100644
--- a/form/fld_stat.c
+++ b/form/fld_stat.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2010,2012 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -33,12 +33,12 @@
#include "form.priv.h"
-MODULE_ID("$Id: fld_stat.c,v 1.17 2020/12/11 22:05:24 tom Exp $")
+MODULE_ID("$Id: fld_stat.c,v 1.18 2021/06/17 21:20:30 tom Exp $")
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int set_field_status(FIELD *field, bool status)
-|
+|
| Description : Set or clear the 'changed' indication flag for that
| field's primary buffer.
|
@@ -60,11 +60,11 @@ set_field_status(FIELD *field, bool status)
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : bool field_status(const FIELD *field)
-|
+|
| Description : Retrieve the value of the 'changed' indication flag
-| for that field's primary buffer.
+| for that field's primary buffer.
|
| Return Values : TRUE - buffer has been changed
| FALSE - buffer has not been changed
diff --git a/form/fld_type.c b/form/fld_type.c
index 12c92cf6e268..c557e053c00c 100644
--- a/form/fld_type.c
+++ b/form/fld_type.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2004,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -33,12 +33,12 @@
#include "form.priv.h"
-MODULE_ID("$Id: fld_type.c,v 1.19 2020/12/11 23:20:37 tom Exp $")
+MODULE_ID("$Id: fld_type.c,v 1.20 2021/06/17 21:20:30 tom Exp $")
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int set_field_type(FIELD *field, FIELDTYPE *type,...)
-|
+|
| Description : Associate the specified fieldtype with the field.
| Certain field types take additional arguments. Look
| at the spec of the field types !
@@ -81,9 +81,9 @@ set_field_type(FIELD *field, FIELDTYPE *type, ...)
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : FIELDTYPE *field_type(const FIELD *field)
-|
+|
| Description : Retrieve the associated fieldtype for this field.
|
| Return Values : Pointer to fieldtype of NULL if none is defined.
diff --git a/form/fld_user.c b/form/fld_user.c
index 2f51fa67e3dc..1b13e626506b 100644
--- a/form/fld_user.c
+++ b/form/fld_user.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2004,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -33,12 +33,12 @@
#include "form.priv.h"
-MODULE_ID("$Id: fld_user.c,v 1.19 2020/12/12 01:05:34 tom Exp $")
+MODULE_ID("$Id: fld_user.c,v 1.20 2021/06/17 21:20:30 tom Exp $")
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int set_field_userptr(FIELD *field, void *usrptr)
-|
+|
| Description : Set the pointer that is reserved in any field to store
| application relevant information.
|
@@ -54,9 +54,9 @@ set_field_userptr(FIELD *field, void *usrptr)
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : void *field_userptr(const FIELD *field)
-|
+|
| Description : Return the pointer that is reserved in any field to
| store application relevant information.
|
diff --git a/form/form.h b/form/form.h
index 59a97a3d0691..3b62e3901b8e 100644
--- a/form/form.h
+++ b/form/form.h
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2019-2020,2021 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -31,7 +31,7 @@
* Author: Juergen Pfeifer, 1995,1997 *
****************************************************************************/
-/* $Id: form.h,v 0.31 2020/07/04 20:38:43 tom Exp $ */
+/* $Id: form.h,v 0.32 2021/06/17 21:26:02 tom Exp $ */
#ifndef FORM_H
#define FORM_H
@@ -116,7 +116,7 @@ typedef struct fieldnode
/*
* The wide-character configuration requires extra information. Because
* there are existing applications that manipulate the members of FIELD
- * directly, we cannot make the struct opaque, except by changing the ABI.
+ * directly, we cannot make the struct opaque, except by changing the ABI.
* Offsets of members up to this point are the same in the narrow- and
* wide-character configuration. But note that the type of buf depends on
* the configuration, and is made opaque for that reason.
diff --git a/form/form.priv.h b/form/form.priv.h
index 048d9f84592e..ad5af63ad807 100644
--- a/form/form.priv.h
+++ b/form/form.priv.h
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2021,2024 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -31,7 +31,7 @@
* Author: Juergen Pfeifer, 1995,1997 *
****************************************************************************/
-/* $Id: form.priv.h,v 0.47 2020/12/11 23:20:11 tom Exp $ */
+/* $Id: form.priv.h,v 0.49 2024/02/24 12:17:31 tom Exp $ */
#ifndef FORM_PRIV_H
#define FORM_PRIV_H 1
@@ -47,10 +47,6 @@
#include <wctype.h>
#endif
-#ifndef MB_LEN_MAX
-#define MB_LEN_MAX 8 /* should be >= MB_CUR_MAX, but that may be a function */
-#endif
-
#define FIELD_CELL NCURSES_CH_T
#define NCURSES_FIELD_INTERNALS char** expanded; WINDOW *working;
@@ -202,12 +198,12 @@ extern FORM_EXPORT(FIELDTYPE *) _nc_TYPE_REGEXP(void);
extern FORM_EXPORT(FIELDTYPE *) _nc_TYPE_IPV4(void);
extern FORM_EXPORT(FIELDTYPE *)
-_nc_generic_fieldtype(bool (*const field_check) (FORM*,
- FIELD *,
+_nc_generic_fieldtype(bool (*const field_check) (FORM*,
+ FIELD *,
const void *),
- bool (*const char_check) (int,
- FORM*,
- FIELD*,
+ bool (*const char_check) (int,
+ FORM*,
+ FIELD*,
const void *),
bool (*const next)(FORM*,FIELD*,const void*),
bool (*const prev)(FORM*,FIELD*,const void*),
diff --git a/form/frm_cursor.c b/form/frm_cursor.c
index daa6c5b7775a..a54b4837a7de 100644
--- a/form/frm_cursor.c
+++ b/form/frm_cursor.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2004,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -33,12 +33,12 @@
#include "form.priv.h"
-MODULE_ID("$Id: frm_cursor.c,v 1.12 2020/05/24 01:40:20 anonymous.maarten Exp $")
+MODULE_ID("$Id: frm_cursor.c,v 1.13 2021/06/17 21:20:30 tom Exp $")
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int pos_form_cursor(FORM * form)
-|
+|
| Description : Moves the form window cursor to the location required
| by the form driver to resume form processing. This may
| be needed after the application calls a curses library
diff --git a/form/frm_data.c b/form/frm_data.c
index 0856afb845e2..940c32db99c6 100644
--- a/form/frm_data.c
+++ b/form/frm_data.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2010,2013 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -33,12 +33,12 @@
#include "form.priv.h"
-MODULE_ID("$Id: frm_data.c,v 1.19 2020/12/11 23:20:37 tom Exp $")
+MODULE_ID("$Id: frm_data.c,v 1.21 2021/06/17 21:11:08 tom Exp $")
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : bool data_behind(const FORM *form)
-|
+|
| Description : Check for off-screen data behind. This is nearly trivial
| because the beginning of a field is fixed.
|
@@ -70,12 +70,12 @@ data_behind(const FORM *form)
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static char * Only_Padding(
| WINDOW *w,
| int len,
| int pad)
-|
+|
| Description : Test if 'length' cells starting at the current position
| contain a padding character.
|
@@ -123,11 +123,11 @@ Only_Padding(WINDOW *w, int len, int pad)
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : bool data_ahead(const FORM *form)
-|
+|
| Description : Check for off-screen data ahead. This is more difficult
-| because a dynamic field has a variable end.
+| because a dynamic field has a variable end.
|
| Return Values : TRUE - there are off-screen data ahead
| FALSE - there are no off-screen data ahead
@@ -150,12 +150,11 @@ data_ahead(const FORM *form)
if (Single_Line_Field(field))
{
- int check_len;
-
pos = form->begincol + field->cols;
while (pos < field->dcols)
{
- check_len = field->dcols - pos;
+ int check_len = field->dcols - pos;
+
if (check_len >= field->cols)
check_len = field->cols;
cursor_moved = TRUE;
diff --git a/form/frm_def.c b/form/frm_def.c
index 89ae4ec39c54..a9f21f28a944 100644
--- a/form/frm_def.c
+++ b/form/frm_def.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2010,2012 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -33,7 +33,7 @@
#include "form.priv.h"
-MODULE_ID("$Id: frm_def.c,v 1.29 2020/12/11 23:47:16 tom Exp $")
+MODULE_ID("$Id: frm_def.c,v 1.30 2021/03/27 23:49:58 tom Exp $")
/* this can't be readonly */
static FORM default_form =
@@ -158,7 +158,6 @@ Connect_Fields(FORM *form, FIELD **fields)
{
int field_cnt, j;
int page_nr;
- int maximum_row_in_field, maximum_col_in_field;
_PAGE *pg;
T((T_CALLED("Connect_Fields(%p,%p)"), (void *)form, (void *)fields));
@@ -199,6 +198,9 @@ Connect_Fields(FORM *form, FIELD **fields)
size of the form */
for (j = 0; j < field_cnt; j++)
{
+ int maximum_row_in_field;
+ int maximum_col_in_field;
+
if (j == 0)
pg->pmin = (short)j;
else
diff --git a/form/frm_driver.c b/form/frm_driver.c
index ad82643ed2f7..75656d69ea2a 100644
--- a/form/frm_driver.c
+++ b/form/frm_driver.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2020,2021 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -33,7 +33,7 @@
#include "form.priv.h"
-MODULE_ID("$Id: frm_driver.c,v 1.133 2020/12/12 00:36:42 tom Exp $")
+MODULE_ID("$Id: frm_driver.c,v 1.135 2021/09/01 23:34:01 tom Exp $")
/*----------------------------------------------------------------------------
This is the core module of the form library. It contains the majority
@@ -217,10 +217,10 @@ static FIELD_CELL myZEROS;
static void
check_pos(FORM *form, int lineno)
{
- int y, x;
-
if (form && form->w)
{
+ int y, x;
+
getyx(form->w, y, x);
if (y != form->currow || x != form->curcol)
{
@@ -265,10 +265,11 @@ static int
wide_winsnstr(WINDOW *w, const cchar_t *s, int n)
{
int code = ERR;
- int y, x;
while (n-- > 0)
{
+ int y, x;
+
getyx(w, y, x);
if ((code = wins_wch(w, s++)) != OK)
break;
@@ -511,7 +512,6 @@ Buffer_To_Window(const FIELD *field, WINDOW *win)
{
int width, height;
int y, x;
- int len;
int row;
FIELD_CELL *pBuffer;
@@ -525,6 +525,8 @@ Buffer_To_Window(const FIELD *field, WINDOW *win)
row < height;
row++, pBuffer += width)
{
+ int len;
+
if ((len = (int)(After_End_Of_Data(pBuffer, width) - pBuffer)) > 0)
{
wmove(win, row, 0);
@@ -706,8 +708,6 @@ Field_Grown(FIELD *field, int amount)
* realloc().
*/
int i, j;
- FIELD_CELL *old_bp;
- FIELD_CELL *new_bp;
result = TRUE; /* allow sharing of recovery on failure */
@@ -715,8 +715,9 @@ Field_Grown(FIELD *field, int amount)
field->buf = newbuf;
for (i = 0; i <= field->nbuf; i++)
{
- new_bp = Address_Of_Nth_Buffer(field, i);
- old_bp = oldbuf + i * (1 + old_buflen);
+ FIELD_CELL *new_bp = Address_Of_Nth_Buffer(field, i);
+ FIELD_CELL *old_bp = oldbuf + i * (1 + old_buflen);
+
for (j = 0; j < old_buflen; ++j)
new_bp[j] = old_bp[j];
while (j < new_buflen)
@@ -917,11 +918,12 @@ _nc_Refresh_Current_Field(FORM *form)
else
{
/* A multi-line, i.e. vertical scrolling field */
- int row_after_bottom, first_modified_row, first_unmodified_row;
+ int first_modified_row, first_unmodified_row;
if (field->drows > field->rows)
{
- row_after_bottom = form->toprow + field->rows;
+ int row_after_bottom = form->toprow + field->rows;
+
if (form->currow < form->toprow)
{
form->toprow = form->currow;
@@ -1005,7 +1007,6 @@ Perform_Justification(FIELD *field, WINDOW *win)
{
FIELD_CELL *bp;
int len;
- int col = 0;
bp = (Field_Has_Option(field, O_NO_LEFT_STRIP)
? field->buf
@@ -1014,6 +1015,8 @@ Perform_Justification(FIELD *field, WINDOW *win)
if (len > 0)
{
+ int col = 0;
+
assert(win && (field->drows == 1));
if (field->cols - len >= 0)
@@ -1240,7 +1243,6 @@ Synchronize_Linked_Fields(FIELD *field)
{
FIELD *linked_field;
int res = E_OK;
- int syncres;
if (!field)
return (E_BAD_ARGUMENT);
@@ -1252,6 +1254,8 @@ Synchronize_Linked_Fields(FIELD *field)
(linked_field != field) && (linked_field != 0);
linked_field = linked_field->link)
{
+ int syncres;
+
if (((syncres = Synchronize_Field(linked_field)) != E_OK) &&
(res == E_OK))
res = syncres;
@@ -1276,7 +1280,6 @@ _nc_Synchronize_Attributes(FIELD *field)
{
FORM *form;
int res = E_OK;
- WINDOW *formwin;
T((T_CALLED("_nc_Synchronize_Attributes(%p)"), (void *)field));
@@ -1303,7 +1306,8 @@ _nc_Synchronize_Attributes(FIELD *field)
}
else
{
- formwin = Get_Form_Window(form);
+ WINDOW *formwin = Get_Form_Window(form);
+
copywin(form->w, formwin,
0, 0,
field->frow, field->fcol,
@@ -2422,7 +2426,6 @@ Insert_String(FORM *form, int row, FIELD_CELL *txt, int len)
int datalen = (int)(After_End_Of_Data(bp, field->dcols) - bp);
int freelen = field->dcols - datalen;
int requiredlen = len + 1;
- FIELD_CELL *split;
int result = E_REQUEST_DENIED;
if (freelen >= requiredlen)
@@ -2431,7 +2434,7 @@ Insert_String(FORM *form, int row, FIELD_CELL *txt, int len)
myINSNSTR(form->w, txt, len);
wmove(form->w, row, len);
myINSNSTR(form->w, &myBLANK, 1);
- return E_OK;
+ result = E_OK;
}
else
{
@@ -2447,6 +2450,8 @@ Insert_String(FORM *form, int row, FIELD_CELL *txt, int len)
if (row < (field->drows - 1))
{
+ FIELD_CELL *split;
+
split =
After_Last_Whitespace_Character(bp,
(int)(Get_Start_Of_Data(bp
@@ -2470,8 +2475,8 @@ Insert_String(FORM *form, int row, FIELD_CELL *txt, int len)
return E_OK;
}
}
- return (result);
}
+ return (result);
}
/*---------------------------------------------------------------------------
@@ -3551,7 +3556,7 @@ Upper_Neighbor_Field(FIELD *field)
| Function : static FIELD *Down_Neighbor_Field(FIELD * field)
|
| Description : Because of the row-major nature of sorting the fields,
-| it's more difficult to define what the down neighbor
+| it is more difficult to define what the down neighbor
| field really means. We define that it must be on a
| 'next' line (cyclic order!) and is the leftmost
| field laying on the right side of the given field. If
@@ -4474,14 +4479,13 @@ form_driver(FORM *form, int c)
}
else if (wenclose(sub, event.y, event.x))
{ /* Inside the area we try to find the hit item */
- int i;
-
ry = event.y;
rx = event.x;
if (wmouse_trafo(sub, &ry, &rx, FALSE))
{
int min_field = form->page[form->curpage].pmin;
int max_field = form->page[form->curpage].pmax;
+ int i;
for (i = min_field; i <= max_field; ++i)
{
@@ -4676,14 +4680,13 @@ form_driver_w(FORM *form, int type, wchar_t c)
}
else if (wenclose(sub, event.y, event.x))
{ /* Inside the area we try to find the hit item */
- int i;
-
ry = event.y;
rx = event.x;
if (wmouse_trafo(sub, &ry, &rx, FALSE))
{
int min_field = form->page[form->curpage].pmin;
int max_field = form->page[form->curpage].pmax;
+ int i;
for (i = min_field; i <= max_field; ++i)
{
diff --git a/form/frm_opts.c b/form/frm_opts.c
index cab044598042..62e2bebdc431 100644
--- a/form/frm_opts.c
+++ b/form/frm_opts.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2012,2013 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -33,12 +33,12 @@
#include "form.priv.h"
-MODULE_ID("$Id: frm_opts.c,v 1.20 2020/12/12 00:37:00 tom Exp $")
+MODULE_ID("$Id: frm_opts.c,v 1.21 2021/06/17 21:20:30 tom Exp $")
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int set_form_opts(FORM *form, Form_Options opts)
-|
+|
| Description : Turns on the named options and turns off all the
| remaining options for that form.
|
@@ -61,9 +61,9 @@ set_form_opts(FORM *form, Form_Options opts)
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : Form_Options form_opts(const FORM *)
-|
+|
| Description : Retrieves the current form options.
|
| Return Values : The option flags.
@@ -76,13 +76,13 @@ form_opts(const FORM *form)
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int form_opts_on(FORM *form, Form_Options opts)
-|
-| Description : Turns on the named options; no other options are
+|
+| Description : Turns on the named options; no other options are
| changed.
|
-| Return Values : E_OK - success
+| Return Values : E_OK - success
| E_BAD_ARGUMENT - invalid options
+--------------------------------------------------------------------------*/
FORM_EXPORT(int)
@@ -101,13 +101,13 @@ form_opts_on(FORM *form, Form_Options opts)
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int form_opts_off(FORM *form, Form_Options opts)
-|
-| Description : Turns off the named options; no other options are
+|
+| Description : Turns off the named options; no other options are
| changed.
|
-| Return Values : E_OK - success
+| Return Values : E_OK - success
| E_BAD_ARGUMENT - invalid options
+--------------------------------------------------------------------------*/
FORM_EXPORT(int)
diff --git a/form/frm_page.c b/form/frm_page.c
index a4030a2b5f62..ee8dd3837f6b 100644
--- a/form/frm_page.c
+++ b/form/frm_page.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2010,2012 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -33,12 +33,12 @@
#include "form.priv.h"
-MODULE_ID("$Id: frm_page.c,v 1.14 2020/05/24 01:40:20 anonymous.maarten Exp $")
+MODULE_ID("$Id: frm_page.c,v 1.15 2021/06/17 21:20:30 tom Exp $")
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int set_form_page(FORM * form,int page)
-|
+|
| Description : Set the page number of the form.
|
| Return Values : E_OK - success
@@ -88,9 +88,9 @@ set_form_page(FORM *form, int page)
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int form_page(const FORM * form)
-|
+|
| Description : Return the current page of the form.
|
| Return Values : >= 0 : current page number
diff --git a/form/frm_req_name.c b/form/frm_req_name.c
index 27d4696619f4..8b76a8e4f542 100644
--- a/form/frm_req_name.c
+++ b/form/frm_req_name.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2012,2015 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -38,7 +38,7 @@
#include "form.priv.h"
-MODULE_ID("$Id: frm_req_name.c,v 1.21 2020/05/24 01:40:20 anonymous.maarten Exp $")
+MODULE_ID("$Id: frm_req_name.c,v 1.23 2021/06/17 21:11:08 tom Exp $")
#define DATA(s) { s }
@@ -112,9 +112,9 @@ static const char request_names[MAX_FORM_COMMAND - MIN_FORM_COMMAND + 1][13] =
#define A_SIZE (sizeof(request_names)/sizeof(request_names[0]))
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : const char * form_request_name (int request);
-|
+|
| Description : Get the external name of a form request.
|
| Return Values : Pointer to name - on success
@@ -135,9 +135,9 @@ form_request_name(int request)
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int form_request_by_name (const char *str);
-|
+|
| Description : Search for a request with this name.
|
| Return Values : Request Id - on success
@@ -150,12 +150,13 @@ form_request_by_name(const char *str)
to run sequentially through it.
*/
size_t i = 0;
- char buf[16]; /* longest name is 10 chars */
T((T_CALLED("form_request_by_name(%s)"), _nc_visbuf(str)));
if (str != 0 && (i = strlen(str)) != 0)
{
+ char buf[16]; /* longest name is 10 chars */
+
if (i > sizeof(buf) - 2)
i = sizeof(buf) - 2;
memcpy(buf, str, i);
diff --git a/form/frm_scale.c b/form/frm_scale.c
index 833f74eb97e8..d53798e1bcee 100644
--- a/form/frm_scale.c
+++ b/form/frm_scale.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2004,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -33,12 +33,12 @@
#include "form.priv.h"
-MODULE_ID("$Id: frm_scale.c,v 1.12 2020/05/24 01:40:20 anonymous.maarten Exp $")
+MODULE_ID("$Id: frm_scale.c,v 1.13 2021/06/17 21:20:30 tom Exp $")
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int scale_form( const FORM *form, int *rows, int *cols )
-|
+|
| Description : Retrieve size of form
|
| Return Values : E_OK - no error
diff --git a/form/frm_sub.c b/form/frm_sub.c
index f718ea4679a6..8f1de099cdf6 100644
--- a/form/frm_sub.c
+++ b/form/frm_sub.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2009,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -33,13 +33,13 @@
#include "form.priv.h"
-MODULE_ID("$Id: frm_sub.c,v 1.14 2020/05/24 01:40:20 anonymous.maarten Exp $")
+MODULE_ID("$Id: frm_sub.c,v 1.15 2021/06/17 21:20:30 tom Exp $")
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int set_form_sub(FORM *form, WINDOW *win)
-|
-| Description : Set the subwindow of the form to win.
+|
+| Description : Set the subwindow of the form to win.
|
| Return Values : E_OK - success
| E_POSTED - form is posted
@@ -66,9 +66,9 @@ set_form_sub(FORM *form, WINDOW *win)
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : WINDOW *form_sub(const FORM *)
-|
+|
| Description : Retrieve the window of the form.
|
| Return Values : The pointer to the Subwindow.
diff --git a/form/frm_user.c b/form/frm_user.c
index e4f86bb6ead0..a4a2249780ad 100644
--- a/form/frm_user.c
+++ b/form/frm_user.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2004,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -33,12 +33,12 @@
#include "form.priv.h"
-MODULE_ID("$Id: frm_user.c,v 1.18 2020/12/12 01:05:20 tom Exp $")
+MODULE_ID("$Id: frm_user.c,v 1.19 2021/06/17 21:20:30 tom Exp $")
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int set_form_userptr(FORM *form, void *usrptr)
-|
+|
| Description : Set the pointer that is reserved in any form to store
| application relevant information.
|
@@ -54,9 +54,9 @@ set_form_userptr(FORM *form, void *usrptr)
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : void *form_userptr(const FORM *form)
-|
+|
| Description : Return the pointer that is reserved in any form to
| store application relevant information.
|
diff --git a/form/frm_win.c b/form/frm_win.c
index 5f3bc3c658f7..eeea27d37366 100644
--- a/form/frm_win.c
+++ b/form/frm_win.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2009,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -33,13 +33,13 @@
#include "form.priv.h"
-MODULE_ID("$Id: frm_win.c,v 1.18 2020/05/24 01:40:20 anonymous.maarten Exp $")
+MODULE_ID("$Id: frm_win.c,v 1.19 2021/06/17 21:20:30 tom Exp $")
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int set_form_win(FORM *form,WINDOW *win)
-|
-| Description : Set the window of the form to win.
+|
+| Description : Set the window of the form to win.
|
| Return Values : E_OK - success
| E_POSTED - form is posted
@@ -66,9 +66,9 @@ set_form_win(FORM *form, WINDOW *win)
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : WINDOW *form_win(const FORM *)
-|
+|
| Description : Retrieve the window of the form.
|
| Return Values : The pointer to the Window or stdscr if there is none.
diff --git a/form/fty_enum.c b/form/fty_enum.c
index 62242b56b42f..16ffae11036f 100644
--- a/form/fty_enum.c
+++ b/form/fty_enum.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2009,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -35,7 +35,7 @@
#include "form.priv.h"
-MODULE_ID("$Id: fty_enum.c,v 1.31 2020/12/12 01:15:37 tom Exp $")
+MODULE_ID("$Id: fty_enum.c,v 1.33 2021/06/17 21:11:08 tom Exp $")
typedef struct
{
@@ -55,9 +55,9 @@ typedef struct
enumParams;
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static void *Generic_Enum_Type(void * arg)
-|
+|
| Description : Allocate structure for enumeration type argument.
|
| Return Values : Pointer to argument structure or NULL on error
@@ -77,7 +77,6 @@ Generic_Enum_Type(void *arg)
int cnt = 0;
char **kp = (char **)0;
char **kwds = (char **)0;
- char **kptarget;
int ccase, cunique;
T((T_CREATE("enumARG %p"), (void *)argp));
@@ -96,6 +95,8 @@ Generic_Enum_Type(void *arg)
if (cnt > 0)
{
+ char **kptarget;
+
/* We copy the keywords, because we can't rely on the fact
that the caller doesn't relocate or free the memory used
for the keywords (maybe he has GC)
@@ -118,9 +119,9 @@ Generic_Enum_Type(void *arg)
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static void *Make_Enum_Type( va_list * ap )
-|
+|
| Description : Allocate structure for enumeration type argument.
|
| Return Values : Pointer to argument structure or NULL on error
@@ -138,10 +139,10 @@ Make_Enum_Type(va_list *ap)
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static void *Copy_Enum_Type( const void * argp )
-|
-| Description : Copy structure for enumeration type argument.
+|
+| Description : Copy structure for enumeration type argument.
|
| Return Values : Pointer to argument structure or NULL on error.
+--------------------------------------------------------------------------*/
@@ -182,9 +183,9 @@ Copy_Enum_Type(const void *argp)
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static void Free_Enum_Type( void * argp )
-|
+|
| Description : Free structure for enumeration type argument.
|
| Return Values : -
@@ -219,11 +220,11 @@ Free_Enum_Type(void *argp)
#define EXACT 2
/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int Compare(const unsigned char * s,
+| Facility : libnform
+| Function : static int Compare(const unsigned char * s,
| const unsigned char * buf,
| bool ccase )
-|
+|
| Description : Check whether or not the text in 'buf' matches the
| text in 's', at least partial.
|
@@ -274,11 +275,11 @@ Compare(const unsigned char *s, const unsigned char *buf,
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static bool Check_Enum_Field(
| FIELD * field,
| const void * argp)
-|
+|
| Description : Validate buffer content to be a valid enumeration value
|
| Return Values : TRUE - field is valid
@@ -292,10 +293,11 @@ Check_Enum_Field(FIELD *field, const void *argp)
bool unique = ((const enumARG *)argp)->checkunique;
unsigned char *bp = (unsigned char *)field_buffer(field, 0);
char *s, *t, *p;
- int res;
while (kwds && (s = (*kwds++)))
{
+ int res;
+
if ((res = Compare((unsigned char *)s, bp, ccase)) != NOMATCH)
{
p = t = s; /* t is at least a partial match */
@@ -331,10 +333,10 @@ static const char *dummy[] =
{(char *)0};
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static bool Next_Enum(FIELD * field,
| const void * argp)
-|
+|
| Description : Check for the next enumeration value
|
| Return Values : TRUE - next value found and loaded
@@ -368,11 +370,11 @@ Next_Enum(FIELD *field, const void *argp)
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static bool Previous_Enum(
| FIELD * field,
| const void * argp)
-|
+|
| Description : Check for the previous enumeration value
|
| Return Values : TRUE - previous value found and loaded
diff --git a/form/fty_generic.c b/form/fty_generic.c
index 3672d658cb31..301c80a1f07a 100644
--- a/form/fty_generic.c
+++ b/form/fty_generic.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2020,2021 Thomas E. Dickey *
* Copyright 2008-2012,2016 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -35,7 +35,7 @@
#include "form.priv.h"
-MODULE_ID("$Id: fty_generic.c,v 1.14 2020/12/12 17:27:44 tom Exp $")
+MODULE_ID("$Id: fty_generic.c,v 1.15 2021/03/27 23:49:53 tom Exp $")
/*
* This is not a full implementation of a field type, but adds some
@@ -282,7 +282,7 @@ _nc_form_cursor(const FORM *form, int *pRow, int *pCol)
int code = E_SYSTEM_ERROR;
WINDOW *res = (WINDOW *)0;
- if (!(form == 0 || pRow == 0 || pCol == 0))
+ if (form != 0 && pRow != 0 && pCol != 0)
{
*pRow = form->currow;
*pCol = form->curcol;
diff --git a/form/fty_int.c b/form/fty_int.c
index d06ab8b6f389..c7e3135c882b 100644
--- a/form/fty_int.c
+++ b/form/fty_int.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2010,2012 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -35,7 +35,7 @@
#include "form.priv.h"
-MODULE_ID("$Id: fty_int.c,v 1.31 2020/12/12 01:15:37 tom Exp $")
+MODULE_ID("$Id: fty_int.c,v 1.33 2021/06/17 21:11:08 tom Exp $")
#if USE_WIDEC_SUPPORT
#define isDigit(c) (iswdigit((wint_t)(c)) || isdigit(UChar(c)))
@@ -62,9 +62,9 @@ typedef struct
integerPARM;
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static void *Generic_This_Type( void * arg )
-|
+|
| Description : Allocate structure for integer type argument.
|
| Return Values : Pointer to argument structure or NULL on error
@@ -89,9 +89,9 @@ Generic_This_Type(void *arg)
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static void *Make_This_Type( va_list * ap )
-|
+|
| Description : Allocate structure for integer type argument.
|
| Return Values : Pointer to argument structure or NULL on error
@@ -109,10 +109,10 @@ Make_This_Type(va_list *ap)
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static void *Copy_This_Type(const void * argp)
-|
-| Description : Copy structure for integer type argument.
+|
+| Description : Copy structure for integer type argument.
|
| Return Values : Pointer to argument structure or NULL on error.
+--------------------------------------------------------------------------*/
@@ -136,9 +136,9 @@ Copy_This_Type(const void *argp)
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static void Free_This_Type(void * argp)
-|
+|
| Description : Free structure for integer type argument.
|
| Return Values : -
@@ -151,11 +151,11 @@ Free_This_Type(void *argp)
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static bool Check_This_Field(
| FIELD * field,
| const void * argp)
-|
+|
| Description : Validate buffer content to be a valid integer value
|
| Return Values : TRUE - field is valid
@@ -170,11 +170,9 @@ Check_This_Field(FIELD *field, const void *argp)
int prec = argi->precision;
unsigned char *bp = (unsigned char *)field_buffer(field, 0);
char *s = (char *)bp;
- long val;
- char buf[100];
bool result = FALSE;
- while (*bp && *bp == ' ')
+ while (*bp == ' ')
bp++;
if (*bp)
{
@@ -183,13 +181,14 @@ Check_This_Field(FIELD *field, const void *argp)
#if USE_WIDEC_SUPPORT
if (*bp)
{
- bool blank = FALSE;
int len;
- int n;
wchar_t *list = _nc_Widen_String((char *)bp, &len);
if (list != 0)
{
+ bool blank = FALSE;
+ int n;
+
result = TRUE;
for (n = 0; n < len; ++n)
{
@@ -227,7 +226,8 @@ Check_This_Field(FIELD *field, const void *argp)
#endif
if (result)
{
- val = atol(s);
+ long val = atol(s);
+
if (low < high)
{
if (val < low || val > high)
@@ -235,6 +235,8 @@ Check_This_Field(FIELD *field, const void *argp)
}
if (result)
{
+ char buf[100];
+
_nc_SPRINTF(buf, _nc_SLIMIT(sizeof(buf))
"%.*ld", (prec > 0 ? prec : 0), val);
set_field_buffer(field, 0, buf);
@@ -245,11 +247,11 @@ Check_This_Field(FIELD *field, const void *argp)
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static bool Check_This_Character(
| int c,
| const void * argp)
-|
+|
| Description : Check a character for the integer type.
|
| Return Values : TRUE - character is valid
diff --git a/form/fty_ipv4.c b/form/fty_ipv4.c
index d79683de68d3..108f7b4bb177 100644
--- a/form/fty_ipv4.c
+++ b/form/fty_ipv4.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2006,2009 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -35,14 +35,14 @@
#include "form.priv.h"
-MODULE_ID("$Id: fty_ipv4.c,v 1.14 2020/12/12 01:15:37 tom Exp $")
+MODULE_ID("$Id: fty_ipv4.c,v 1.16 2021/06/17 21:11:08 tom Exp $")
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static bool Check_IPV4_Field(
| FIELD * field,
| const void * argp)
-|
+|
| Description : Validate buffer content to be a valid IP number (Ver. 4)
|
| Return Values : TRUE - field is valid
@@ -53,7 +53,7 @@ Check_IPV4_Field(FIELD *field, const void *argp GCC_UNUSED)
{
char *bp = field_buffer(field, 0);
int num = 0, len;
- unsigned int d1, d2, d3, d4;
+ unsigned int d1 = 0, d2 = 0, d3 = 0, d4 = 0;
if (isdigit(UChar(*bp))) /* Must start with digit */
{
@@ -70,11 +70,11 @@ Check_IPV4_Field(FIELD *field, const void *argp GCC_UNUSED)
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static bool Check_IPV4_Character(
-| int c,
+| int c,
| const void *argp )
-|
+|
| Description : Check a character for unsigned type or period.
|
| Return Values : TRUE - character is valid
diff --git a/form/fty_num.c b/form/fty_num.c
index 9eafaecb726c..34cef6364bdb 100644
--- a/form/fty_num.c
+++ b/form/fty_num.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2020,2021 Thomas E. Dickey *
* Copyright 1998-2010,2012 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -35,7 +35,7 @@
#include "form.priv.h"
-MODULE_ID("$Id: fty_num.c,v 1.36 2020/12/12 01:15:37 tom Exp $")
+MODULE_ID("$Id: fty_num.c,v 1.37 2021/03/27 23:49:58 tom Exp $")
#if HAVE_LOCALE_H
#include <locale.h>
@@ -188,12 +188,10 @@ Check_This_Field(FIELD *field, const void *argp)
int prec = argn->precision;
unsigned char *bp = (unsigned char *)field_buffer(field, 0);
char *s = (char *)bp;
- double val = 0.0;
struct lconv *L = argn->L;
- char buf[64];
bool result = FALSE;
- while (*bp && *bp == ' ')
+ while (*bp == ' ')
bp++;
if (*bp)
{
@@ -202,14 +200,15 @@ Check_This_Field(FIELD *field, const void *argp)
#if USE_WIDEC_SUPPORT
if (*bp)
{
- bool blank = FALSE;
- int state = 0;
int len;
- int n;
wchar_t *list = _nc_Widen_String((char *)bp, &len);
if (list != 0)
{
+ bool blank = FALSE;
+ int state = 0;
+ int n;
+
result = TRUE;
for (n = 0; n < len; ++n)
{
@@ -265,7 +264,8 @@ Check_This_Field(FIELD *field, const void *argp)
#endif
if (result)
{
- val = atof(s);
+ double val = atof(s);
+
if (low < high)
{
if (val < low || val > high)
@@ -273,6 +273,8 @@ Check_This_Field(FIELD *field, const void *argp)
}
if (result)
{
+ char buf[64];
+
_nc_SPRINTF(buf, _nc_SLIMIT(sizeof(buf))
"%.*f", (prec > 0 ? prec : 0), val);
set_field_buffer(field, 0, buf);
diff --git a/form/fty_regex.c b/form/fty_regex.c
index 616b383ad49e..62dcab58c352 100644
--- a/form/fty_regex.c
+++ b/form/fty_regex.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2020,2021 Thomas E. Dickey *
* Copyright 1998-2012,2015 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -35,12 +35,43 @@
#include "form.priv.h"
-MODULE_ID("$Id: fty_regex.c,v 1.32 2020/12/12 01:15:37 tom Exp $")
+MODULE_ID("$Id: fty_regex.c,v 1.33 2021/08/14 15:01:52 tom Exp $")
#if HAVE_REGEX_H_FUNCS || HAVE_LIB_PCRE2 /* We prefer POSIX regex */
#if HAVE_PCRE2POSIX_H
#include <pcre2posix.h>
+
+/* pcre2 used to provide its "POSIX" entrypoints using the same names as the
+ * standard ones in the C runtime, but that never worked because the linker
+ * would use the C runtime. Debian patched the library to fix this symbol
+ * conflict, but overlooked the header file, and Debian's patch was made
+ * obsolete when pcre2 was changed early in 2019 to provide different names.
+ *
+ * Here is a workaround to make the older version of Debian's package work.
+ */
+#if !defined(PCRE2regcomp) && defined(HAVE_PCRE2REGCOMP)
+
+#undef regcomp
+#undef regexec
+#undef regfree
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+ PCRE2POSIX_EXP_DECL int PCRE2regcomp(regex_t *, const char *, int);
+ PCRE2POSIX_EXP_DECL int PCRE2regexec(const regex_t *, const char *, size_t,
+ regmatch_t *, int);
+ PCRE2POSIX_EXP_DECL void PCRE2regfree(regex_t *);
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+#define regcomp(r,s,n) PCRE2regcomp(r,s,n)
+#define regexec(r,s,n,m,x) PCRE2regexec(r,s,n,m,x)
+#define regfree(r) PCRE2regfree(r)
+#endif
+/* end workaround... */
#elif HAVE_PCREPOSIX_H
#include <pcreposix.h>
#else
diff --git a/form/llib-lform b/form/llib-lform
index b7f2acb05332..334f8cb1c819 100644
--- a/form/llib-lform
+++ b/form/llib-lform
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2015,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -65,11 +65,11 @@ Form_Hook _nc_retrace_form_hook(
#undef set_fieldtype_arg
int set_fieldtype_arg(
- FIELDTYPE *typ,
+ FIELDTYPE *typ,
void *(*const make_arg)(
- va_list *p1),
+ va_list *p1),
void *(*const copy_arg)(
- const void *p1),
+ const void *p1),
void (*const free_arg)(
void *p1))
{ return(*(int *)0); }
@@ -83,7 +83,7 @@ void *field_arg(
#undef set_field_fore
int set_field_fore(
- FIELD *field,
+ FIELD *field,
chtype attr)
{ return(*(int *)0); }
@@ -94,7 +94,7 @@ chtype field_fore(
#undef set_field_back
int set_field_back(
- FIELD *field,
+ FIELD *field,
chtype attr)
{ return(*(int *)0); }
@@ -107,7 +107,7 @@ chtype field_back(
#undef set_current_field
int set_current_field(
- FORM *form,
+ FORM *form,
FIELD *field)
{ return(*(int *)0); }
@@ -133,27 +133,27 @@ FIELD *_nc_Default_Field;
#undef _nc_Make_Argument
TypeArgument *_nc_Make_Argument(
- const FIELDTYPE *typ,
- va_list *ap,
+ const FIELDTYPE *typ,
+ va_list *ap,
int *err)
{ return(*(TypeArgument **)0); }
#undef _nc_Copy_Argument
TypeArgument *_nc_Copy_Argument(
- const FIELDTYPE *typ,
- const TypeArgument *argp,
+ const FIELDTYPE *typ,
+ const TypeArgument *argp,
int *err)
{ return(*(TypeArgument **)0); }
#undef _nc_Free_Argument
void _nc_Free_Argument(
- const FIELDTYPE *typ,
+ const FIELDTYPE *typ,
TypeArgument *argp)
{ /* void */ }
#undef _nc_Copy_Type
NCURSES_BOOL _nc_Copy_Type(
- FIELD *dst,
+ FIELD *dst,
FIELD const *src)
{ return(*(NCURSES_BOOL *)0); }
@@ -164,11 +164,11 @@ void _nc_Free_Type(
#undef new_field
FIELD *new_field(
- int rows,
- int cols,
- int frow,
- int fcol,
- int nrow,
+ int rows,
+ int cols,
+ int frow,
+ int fcol,
+ int nrow,
int nbuf)
{ return(*(FIELD **)0); }
@@ -181,8 +181,8 @@ int free_field(
#undef dup_field
FIELD *dup_field(
- FIELD *field,
- int frow,
+ FIELD *field,
+ int frow,
int fcol)
{ return(*(FIELD **)0); }
@@ -190,12 +190,12 @@ FIELD *dup_field(
#undef set_fieldtype_choice
int set_fieldtype_choice(
- FIELDTYPE *typ,
+ FIELDTYPE *typ,
NCURSES_BOOL (*const next_choice)(
- FIELD *p1,
- const void *p2),
+ FIELD *p1,
+ const void *p2),
NCURSES_BOOL (*const prev_choice)(
- FIELD *p1,
+ FIELD *p1,
const void *p2))
{ return(*(int *)0); }
@@ -203,7 +203,7 @@ int set_fieldtype_choice(
#undef link_fieldtype
FIELDTYPE *link_fieldtype(
- FIELDTYPE *type1,
+ FIELDTYPE *type1,
FIELDTYPE *type2)
{ return(*(FIELDTYPE **)0); }
@@ -211,20 +211,20 @@ FIELDTYPE *link_fieldtype(
#undef field_info
int field_info(
- const FIELD *field,
- int *rows,
- int *cols,
- int *frow,
- int *fcol,
- int *nrow,
+ const FIELD *field,
+ int *rows,
+ int *cols,
+ int *frow,
+ int *fcol,
+ int *nrow,
int *nbuf)
{ return(*(int *)0); }
#undef dynamic_field_info
int dynamic_field_info(
- const FIELD *field,
- int *drows,
- int *dcols,
+ const FIELD *field,
+ int *drows,
+ int *dcols,
int *maxgrow)
{ return(*(int *)0); }
@@ -232,7 +232,7 @@ int dynamic_field_info(
#undef set_field_just
int set_field_just(
- FIELD *field,
+ FIELD *field,
int just)
{ return(*(int *)0); }
@@ -245,8 +245,8 @@ int field_just(
#undef link_field
FIELD *link_field(
- FIELD *field,
- int frow,
+ FIELD *field,
+ int frow,
int fcol)
{ return(*(FIELD **)0); }
@@ -254,7 +254,7 @@ FIELD *link_field(
#undef set_max_field
int set_max_field(
- FIELD *field,
+ FIELD *field,
int maxgrow)
{ return(*(int *)0); }
@@ -262,8 +262,8 @@ int set_max_field(
#undef move_field
int move_field(
- FIELD *field,
- int frow,
+ FIELD *field,
+ int frow,
int fcol)
{ return(*(int *)0); }
@@ -275,10 +275,10 @@ FIELDTYPE *_nc_Default_FieldType;
#undef new_fieldtype
FIELDTYPE *new_fieldtype(
NCURSES_BOOL (*const field_check)(
- FIELD *p1,
- const void *p2),
+ FIELD *p1,
+ const void *p2),
NCURSES_BOOL (*const char_check)(
- int p1,
+ int p1,
const void *p2))
{ return(*(FIELDTYPE **)0); }
@@ -291,7 +291,7 @@ int free_fieldtype(
#undef set_field_opts
int set_field_opts(
- FIELD *field,
+ FIELD *field,
Field_Options opts)
{ return(*(int *)0); }
@@ -302,13 +302,13 @@ Field_Options field_opts(
#undef field_opts_on
int field_opts_on(
- FIELD *field,
+ FIELD *field,
Field_Options opts)
{ return(*(int *)0); }
#undef field_opts_off
int field_opts_off(
- FIELD *field,
+ FIELD *field,
Field_Options opts)
{ return(*(int *)0); }
@@ -316,7 +316,7 @@ int field_opts_off(
#undef set_field_pad
int set_field_pad(
- FIELD *field,
+ FIELD *field,
int ch)
{ return(*(int *)0); }
@@ -329,7 +329,7 @@ int field_pad(
#undef set_new_page
int set_new_page(
- FIELD *field,
+ FIELD *field,
NCURSES_BOOL new_page_flag)
{ return(*(int *)0); }
@@ -342,7 +342,7 @@ NCURSES_BOOL new_page(
#undef set_field_status
int set_field_status(
- FIELD *field,
+ FIELD *field,
NCURSES_BOOL status)
{ return(*(int *)0); }
@@ -355,8 +355,8 @@ NCURSES_BOOL field_status(
#undef set_field_type
int set_field_type(
- FIELD *field,
- FIELDTYPE *type,
+ FIELD *field,
+ FIELDTYPE *type,
...)
{ return(*(int *)0); }
@@ -369,7 +369,7 @@ FIELDTYPE *field_type(
#undef set_field_userptr
int set_field_userptr(
- FIELD *field,
+ FIELD *field,
void *usrptr)
{ return(*(int *)0); }
@@ -404,7 +404,7 @@ FORM *_nc_Default_Form;
#undef new_form_sp
FORM *new_form_sp(
- SCREEN *sp,
+ SCREEN *sp,
FIELD **fields)
{ return(*(FORM **)0); }
@@ -420,7 +420,7 @@ int free_form(
#undef set_form_fields
int set_form_fields(
- FORM *form,
+ FORM *form,
FIELD **fields)
{ return(*(int *)0); }
@@ -438,8 +438,8 @@ int field_count(
#undef _nc_get_fieldbuffer
void _nc_get_fieldbuffer(
- FORM *form,
- FIELD *field,
+ FORM *form,
+ FIELD *field,
char *buf)
{ /* void */ }
@@ -460,7 +460,7 @@ int _nc_Synchronize_Attributes(
#undef _nc_Synchronize_Options
int _nc_Synchronize_Options(
- FIELD *field,
+ FIELD *field,
Field_Options newopts)
{ return(*(int *)0); }
@@ -471,7 +471,7 @@ void _nc_Unset_Current_Field(
#undef _nc_Set_Current_Field
int _nc_Set_Current_Field(
- FORM *form,
+ FORM *form,
FIELD *newfield)
{ return(*(int *)0); }
@@ -487,34 +487,34 @@ FIELD *_nc_First_Active_Field(
#undef _nc_Set_Form_Page
int _nc_Set_Form_Page(
- FORM *form,
- int page,
+ FORM *form,
+ int page,
FIELD *field)
{ return(*(int *)0); }
typedef struct
{
- int keycode;
- int (*cmd) (FORM *);
+ int keycode;
+ int (*cmd) (FORM *);
}
Binding_Info;
#undef form_driver
int form_driver(
- FORM *form,
+ FORM *form,
int c)
{ return(*(int *)0); }
#undef set_field_buffer
int set_field_buffer(
- FIELD *field,
- int buffer,
+ FIELD *field,
+ int buffer,
const char *value)
{ return(*(int *)0); }
#undef field_buffer
char *field_buffer(
- const FIELD *field,
+ const FIELD *field,
int buffer)
{ return(*(char **)0); }
@@ -522,7 +522,7 @@ char *field_buffer(
#undef set_field_init
int set_field_init(
- FORM *form,
+ FORM *form,
Form_Hook func)
{ return(*(int *)0); }
@@ -533,7 +533,7 @@ Form_Hook field_init(
#undef set_field_term
int set_field_term(
- FORM *form,
+ FORM *form,
Form_Hook func)
{ return(*(int *)0); }
@@ -544,7 +544,7 @@ Form_Hook field_term(
#undef set_form_init
int set_form_init(
- FORM *form,
+ FORM *form,
Form_Hook func)
{ return(*(int *)0); }
@@ -555,7 +555,7 @@ Form_Hook form_init(
#undef set_form_term
int set_form_term(
- FORM *form,
+ FORM *form,
Form_Hook func)
{ return(*(int *)0); }
@@ -568,7 +568,7 @@ Form_Hook form_term(
#undef set_form_opts
int set_form_opts(
- FORM *form,
+ FORM *form,
Form_Options opts)
{ return(*(int *)0); }
@@ -579,13 +579,13 @@ Form_Options form_opts(
#undef form_opts_on
int form_opts_on(
- FORM *form,
+ FORM *form,
Form_Options opts)
{ return(*(int *)0); }
#undef form_opts_off
int form_opts_off(
- FORM *form,
+ FORM *form,
Form_Options opts)
{ return(*(int *)0); }
@@ -593,7 +593,7 @@ int form_opts_off(
#undef set_form_page
int set_form_page(
- FORM *form,
+ FORM *form,
int page)
{ return(*(int *)0); }
@@ -630,8 +630,8 @@ int form_request_by_name(
#undef scale_form
int scale_form(
- const FORM *form,
- int *rows,
+ const FORM *form,
+ int *rows,
int *cols)
{ return(*(int *)0); }
@@ -639,7 +639,7 @@ int scale_form(
#undef set_form_sub
int set_form_sub(
- FORM *form,
+ FORM *form,
WINDOW *win)
{ return(*(int *)0); }
@@ -652,7 +652,7 @@ WINDOW *form_sub(
#undef set_form_userptr
int set_form_userptr(
- FORM *form,
+ FORM *form,
void *usrptr)
{ return(*(int *)0); }
@@ -665,7 +665,7 @@ void *form_userptr(
#undef set_form_win
int set_form_win(
- FORM *form,
+ FORM *form,
WINDOW *win)
{ return(*(int *)0); }
@@ -735,38 +735,38 @@ FIELDTYPE *_nc_TYPE_ENUM(void)
#undef _nc_generic_fieldtype
FIELDTYPE *_nc_generic_fieldtype(
NCURSES_BOOL (*const field_check)(
- FORM *p1,
- FIELD *p2,
- const void *p3),
+ FORM *p1,
+ FIELD *p2,
+ const void *p3),
NCURSES_BOOL (*const char_check)(
- int p1,
- FORM *p2,
- FIELD *p3,
- const void *p4),
+ int p1,
+ FORM *p2,
+ FIELD *p3,
+ const void *p4),
NCURSES_BOOL (*const next)(
- FORM *p1,
- FIELD *p2,
- const void *p3),
+ FORM *p1,
+ FIELD *p2,
+ const void *p3),
NCURSES_BOOL (*const prev)(
- FORM *p1,
- FIELD *p2,
- const void *p3),
+ FORM *p1,
+ FIELD *p2,
+ const void *p3),
void (*freecallback)(
void *p1))
{ return(*(FIELDTYPE **)0); }
#undef _nc_set_generic_fieldtype
int _nc_set_generic_fieldtype(
- FIELD *field,
- FIELDTYPE *ftyp,
+ FIELD *field,
+ FIELDTYPE *ftyp,
int (*argiterator)(
void **p1))
{ return(*(int *)0); }
#undef _nc_form_cursor
WINDOW *_nc_form_cursor(
- const FORM *form,
- int *pRow,
+ const FORM *form,
+ int *pRow,
int *pCol)
{ return(*(WINDOW **)0); }
diff --git a/form/llib-lformt b/form/llib-lformt
index 6460016175f1..d91b3f079eb0 100644
--- a/form/llib-lformt
+++ b/form/llib-lformt
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 2010-2015,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -65,11 +65,11 @@ Form_Hook _nc_retrace_form_hook(
#undef set_fieldtype_arg
int set_fieldtype_arg(
- FIELDTYPE *typ,
+ FIELDTYPE *typ,
void *(*const make_arg)(
- va_list *p1),
+ va_list *p1),
void *(*const copy_arg)(
- const void *p1),
+ const void *p1),
void (*const free_arg)(
void *p1))
{ return(*(int *)0); }
@@ -83,7 +83,7 @@ void *field_arg(
#undef set_field_fore
int set_field_fore(
- FIELD *field,
+ FIELD *field,
chtype attr)
{ return(*(int *)0); }
@@ -94,7 +94,7 @@ chtype field_fore(
#undef set_field_back
int set_field_back(
- FIELD *field,
+ FIELD *field,
chtype attr)
{ return(*(int *)0); }
@@ -107,7 +107,7 @@ chtype field_back(
#undef set_current_field
int set_current_field(
- FORM *form,
+ FORM *form,
FIELD *field)
{ return(*(int *)0); }
@@ -133,27 +133,27 @@ FIELD *_nc_Default_Field;
#undef _nc_Make_Argument
TypeArgument *_nc_Make_Argument(
- const FIELDTYPE *typ,
- va_list *ap,
+ const FIELDTYPE *typ,
+ va_list *ap,
int *err)
{ return(*(TypeArgument **)0); }
#undef _nc_Copy_Argument
TypeArgument *_nc_Copy_Argument(
- const FIELDTYPE *typ,
- const TypeArgument *argp,
+ const FIELDTYPE *typ,
+ const TypeArgument *argp,
int *err)
{ return(*(TypeArgument **)0); }
#undef _nc_Free_Argument
void _nc_Free_Argument(
- const FIELDTYPE *typ,
+ const FIELDTYPE *typ,
TypeArgument *argp)
{ /* void */ }
#undef _nc_Copy_Type
NCURSES_BOOL _nc_Copy_Type(
- FIELD *dst,
+ FIELD *dst,
FIELD const *src)
{ return(*(NCURSES_BOOL *)0); }
@@ -164,11 +164,11 @@ void _nc_Free_Type(
#undef new_field
FIELD *new_field(
- int rows,
- int cols,
- int frow,
- int fcol,
- int nrow,
+ int rows,
+ int cols,
+ int frow,
+ int fcol,
+ int nrow,
int nbuf)
{ return(*(FIELD **)0); }
@@ -181,8 +181,8 @@ int free_field(
#undef dup_field
FIELD *dup_field(
- FIELD *field,
- int frow,
+ FIELD *field,
+ int frow,
int fcol)
{ return(*(FIELD **)0); }
@@ -190,12 +190,12 @@ FIELD *dup_field(
#undef set_fieldtype_choice
int set_fieldtype_choice(
- FIELDTYPE *typ,
+ FIELDTYPE *typ,
NCURSES_BOOL (*const next_choice)(
- FIELD *p1,
- const void *p2),
+ FIELD *p1,
+ const void *p2),
NCURSES_BOOL (*const prev_choice)(
- FIELD *p1,
+ FIELD *p1,
const void *p2))
{ return(*(int *)0); }
@@ -203,7 +203,7 @@ int set_fieldtype_choice(
#undef link_fieldtype
FIELDTYPE *link_fieldtype(
- FIELDTYPE *type1,
+ FIELDTYPE *type1,
FIELDTYPE *type2)
{ return(*(FIELDTYPE **)0); }
@@ -211,20 +211,20 @@ FIELDTYPE *link_fieldtype(
#undef field_info
int field_info(
- const FIELD *field,
- int *rows,
- int *cols,
- int *frow,
- int *fcol,
- int *nrow,
+ const FIELD *field,
+ int *rows,
+ int *cols,
+ int *frow,
+ int *fcol,
+ int *nrow,
int *nbuf)
{ return(*(int *)0); }
#undef dynamic_field_info
int dynamic_field_info(
- const FIELD *field,
- int *drows,
- int *dcols,
+ const FIELD *field,
+ int *drows,
+ int *dcols,
int *maxgrow)
{ return(*(int *)0); }
@@ -232,7 +232,7 @@ int dynamic_field_info(
#undef set_field_just
int set_field_just(
- FIELD *field,
+ FIELD *field,
int just)
{ return(*(int *)0); }
@@ -245,8 +245,8 @@ int field_just(
#undef link_field
FIELD *link_field(
- FIELD *field,
- int frow,
+ FIELD *field,
+ int frow,
int fcol)
{ return(*(FIELD **)0); }
@@ -254,7 +254,7 @@ FIELD *link_field(
#undef set_max_field
int set_max_field(
- FIELD *field,
+ FIELD *field,
int maxgrow)
{ return(*(int *)0); }
@@ -262,8 +262,8 @@ int set_max_field(
#undef move_field
int move_field(
- FIELD *field,
- int frow,
+ FIELD *field,
+ int frow,
int fcol)
{ return(*(int *)0); }
@@ -275,10 +275,10 @@ FIELDTYPE *_nc_Default_FieldType;
#undef new_fieldtype
FIELDTYPE *new_fieldtype(
NCURSES_BOOL (*const field_check)(
- FIELD *p1,
- const void *p2),
+ FIELD *p1,
+ const void *p2),
NCURSES_BOOL (*const char_check)(
- int p1,
+ int p1,
const void *p2))
{ return(*(FIELDTYPE **)0); }
@@ -291,7 +291,7 @@ int free_fieldtype(
#undef set_field_opts
int set_field_opts(
- FIELD *field,
+ FIELD *field,
Field_Options opts)
{ return(*(int *)0); }
@@ -302,13 +302,13 @@ Field_Options field_opts(
#undef field_opts_on
int field_opts_on(
- FIELD *field,
+ FIELD *field,
Field_Options opts)
{ return(*(int *)0); }
#undef field_opts_off
int field_opts_off(
- FIELD *field,
+ FIELD *field,
Field_Options opts)
{ return(*(int *)0); }
@@ -316,7 +316,7 @@ int field_opts_off(
#undef set_field_pad
int set_field_pad(
- FIELD *field,
+ FIELD *field,
int ch)
{ return(*(int *)0); }
@@ -329,7 +329,7 @@ int field_pad(
#undef set_new_page
int set_new_page(
- FIELD *field,
+ FIELD *field,
NCURSES_BOOL new_page_flag)
{ return(*(int *)0); }
@@ -342,7 +342,7 @@ NCURSES_BOOL new_page(
#undef set_field_status
int set_field_status(
- FIELD *field,
+ FIELD *field,
NCURSES_BOOL status)
{ return(*(int *)0); }
@@ -355,8 +355,8 @@ NCURSES_BOOL field_status(
#undef set_field_type
int set_field_type(
- FIELD *field,
- FIELDTYPE *type,
+ FIELD *field,
+ FIELDTYPE *type,
...)
{ return(*(int *)0); }
@@ -369,7 +369,7 @@ FIELDTYPE *field_type(
#undef set_field_userptr
int set_field_userptr(
- FIELD *field,
+ FIELD *field,
void *usrptr)
{ return(*(int *)0); }
@@ -404,7 +404,7 @@ FORM *_nc_Default_Form;
#undef new_form_sp
FORM *new_form_sp(
- SCREEN *sp,
+ SCREEN *sp,
FIELD **fields)
{ return(*(FORM **)0); }
@@ -420,7 +420,7 @@ int free_form(
#undef set_form_fields
int set_form_fields(
- FORM *form,
+ FORM *form,
FIELD **fields)
{ return(*(int *)0); }
@@ -438,8 +438,8 @@ int field_count(
#undef _nc_get_fieldbuffer
void _nc_get_fieldbuffer(
- FORM *form,
- FIELD *field,
+ FORM *form,
+ FIELD *field,
char *buf)
{ /* void */ }
@@ -460,7 +460,7 @@ int _nc_Synchronize_Attributes(
#undef _nc_Synchronize_Options
int _nc_Synchronize_Options(
- FIELD *field,
+ FIELD *field,
Field_Options newopts)
{ return(*(int *)0); }
@@ -471,7 +471,7 @@ void _nc_Unset_Current_Field(
#undef _nc_Set_Current_Field
int _nc_Set_Current_Field(
- FORM *form,
+ FORM *form,
FIELD *newfield)
{ return(*(int *)0); }
@@ -487,34 +487,34 @@ FIELD *_nc_First_Active_Field(
#undef _nc_Set_Form_Page
int _nc_Set_Form_Page(
- FORM *form,
- int page,
+ FORM *form,
+ int page,
FIELD *field)
{ return(*(int *)0); }
typedef struct
{
- int keycode;
- int (*cmd) (FORM *);
+ int keycode;
+ int (*cmd) (FORM *);
}
Binding_Info;
#undef form_driver
int form_driver(
- FORM *form,
+ FORM *form,
int c)
{ return(*(int *)0); }
#undef set_field_buffer
int set_field_buffer(
- FIELD *field,
- int buffer,
+ FIELD *field,
+ int buffer,
const char *value)
{ return(*(int *)0); }
#undef field_buffer
char *field_buffer(
- const FIELD *field,
+ const FIELD *field,
int buffer)
{ return(*(char **)0); }
@@ -522,7 +522,7 @@ char *field_buffer(
#undef set_field_init
int set_field_init(
- FORM *form,
+ FORM *form,
Form_Hook func)
{ return(*(int *)0); }
@@ -533,7 +533,7 @@ Form_Hook field_init(
#undef set_field_term
int set_field_term(
- FORM *form,
+ FORM *form,
Form_Hook func)
{ return(*(int *)0); }
@@ -544,7 +544,7 @@ Form_Hook field_term(
#undef set_form_init
int set_form_init(
- FORM *form,
+ FORM *form,
Form_Hook func)
{ return(*(int *)0); }
@@ -555,7 +555,7 @@ Form_Hook form_init(
#undef set_form_term
int set_form_term(
- FORM *form,
+ FORM *form,
Form_Hook func)
{ return(*(int *)0); }
@@ -568,7 +568,7 @@ Form_Hook form_term(
#undef set_form_opts
int set_form_opts(
- FORM *form,
+ FORM *form,
Form_Options opts)
{ return(*(int *)0); }
@@ -579,13 +579,13 @@ Form_Options form_opts(
#undef form_opts_on
int form_opts_on(
- FORM *form,
+ FORM *form,
Form_Options opts)
{ return(*(int *)0); }
#undef form_opts_off
int form_opts_off(
- FORM *form,
+ FORM *form,
Form_Options opts)
{ return(*(int *)0); }
@@ -593,7 +593,7 @@ int form_opts_off(
#undef set_form_page
int set_form_page(
- FORM *form,
+ FORM *form,
int page)
{ return(*(int *)0); }
@@ -630,8 +630,8 @@ int form_request_by_name(
#undef scale_form
int scale_form(
- const FORM *form,
- int *rows,
+ const FORM *form,
+ int *rows,
int *cols)
{ return(*(int *)0); }
@@ -639,7 +639,7 @@ int scale_form(
#undef set_form_sub
int set_form_sub(
- FORM *form,
+ FORM *form,
WINDOW *win)
{ return(*(int *)0); }
@@ -652,7 +652,7 @@ WINDOW *form_sub(
#undef set_form_userptr
int set_form_userptr(
- FORM *form,
+ FORM *form,
void *usrptr)
{ return(*(int *)0); }
@@ -665,7 +665,7 @@ void *form_userptr(
#undef set_form_win
int set_form_win(
- FORM *form,
+ FORM *form,
WINDOW *win)
{ return(*(int *)0); }
@@ -735,38 +735,38 @@ FIELDTYPE *_nc_TYPE_ENUM(void)
#undef _nc_generic_fieldtype
FIELDTYPE *_nc_generic_fieldtype(
NCURSES_BOOL (*const field_check)(
- FORM *p1,
- FIELD *p2,
- const void *p3),
+ FORM *p1,
+ FIELD *p2,
+ const void *p3),
NCURSES_BOOL (*const char_check)(
- int p1,
- FORM *p2,
- FIELD *p3,
- const void *p4),
+ int p1,
+ FORM *p2,
+ FIELD *p3,
+ const void *p4),
NCURSES_BOOL (*const next)(
- FORM *p1,
- FIELD *p2,
- const void *p3),
+ FORM *p1,
+ FIELD *p2,
+ const void *p3),
NCURSES_BOOL (*const prev)(
- FORM *p1,
- FIELD *p2,
- const void *p3),
+ FORM *p1,
+ FIELD *p2,
+ const void *p3),
void (*freecallback)(
void *p1))
{ return(*(FIELDTYPE **)0); }
#undef _nc_set_generic_fieldtype
int _nc_set_generic_fieldtype(
- FIELD *field,
- FIELDTYPE *ftyp,
+ FIELD *field,
+ FIELDTYPE *ftyp,
int (*argiterator)(
void **p1))
{ return(*(int *)0); }
#undef _nc_form_cursor
WINDOW *_nc_form_cursor(
- const FORM *form,
- int *pRow,
+ const FORM *form,
+ int *pRow,
int *pCol)
{ return(*(WINDOW **)0); }
diff --git a/form/llib-lformtw b/form/llib-lformtw
index a24dd1a484d8..340bf59cba53 100644
--- a/form/llib-lformtw
+++ b/form/llib-lformtw
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 2010-2015,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -65,11 +65,11 @@ Form_Hook _nc_retrace_form_hook(
#undef set_fieldtype_arg
int set_fieldtype_arg(
- FIELDTYPE *typ,
+ FIELDTYPE *typ,
void *(*const make_arg)(
- va_list *p1),
+ va_list *p1),
void *(*const copy_arg)(
- const void *p1),
+ const void *p1),
void (*const free_arg)(
void *p1))
{ return(*(int *)0); }
@@ -83,7 +83,7 @@ void *field_arg(
#undef set_field_fore
int set_field_fore(
- FIELD *field,
+ FIELD *field,
chtype attr)
{ return(*(int *)0); }
@@ -94,7 +94,7 @@ chtype field_fore(
#undef set_field_back
int set_field_back(
- FIELD *field,
+ FIELD *field,
chtype attr)
{ return(*(int *)0); }
@@ -107,7 +107,7 @@ chtype field_back(
#undef set_current_field
int set_current_field(
- FORM *form,
+ FORM *form,
FIELD *field)
{ return(*(int *)0); }
@@ -133,27 +133,27 @@ FIELD *_nc_Default_Field;
#undef _nc_Make_Argument
TypeArgument *_nc_Make_Argument(
- const FIELDTYPE *typ,
- va_list *ap,
+ const FIELDTYPE *typ,
+ va_list *ap,
int *err)
{ return(*(TypeArgument **)0); }
#undef _nc_Copy_Argument
TypeArgument *_nc_Copy_Argument(
- const FIELDTYPE *typ,
- const TypeArgument *argp,
+ const FIELDTYPE *typ,
+ const TypeArgument *argp,
int *err)
{ return(*(TypeArgument **)0); }
#undef _nc_Free_Argument
void _nc_Free_Argument(
- const FIELDTYPE *typ,
+ const FIELDTYPE *typ,
TypeArgument *argp)
{ /* void */ }
#undef _nc_Copy_Type
NCURSES_BOOL _nc_Copy_Type(
- FIELD *dst,
+ FIELD *dst,
FIELD const *src)
{ return(*(NCURSES_BOOL *)0); }
@@ -164,11 +164,11 @@ void _nc_Free_Type(
#undef new_field
FIELD *new_field(
- int rows,
- int cols,
- int frow,
- int fcol,
- int nrow,
+ int rows,
+ int cols,
+ int frow,
+ int fcol,
+ int nrow,
int nbuf)
{ return(*(FIELD **)0); }
@@ -181,8 +181,8 @@ int free_field(
#undef dup_field
FIELD *dup_field(
- FIELD *field,
- int frow,
+ FIELD *field,
+ int frow,
int fcol)
{ return(*(FIELD **)0); }
@@ -190,12 +190,12 @@ FIELD *dup_field(
#undef set_fieldtype_choice
int set_fieldtype_choice(
- FIELDTYPE *typ,
+ FIELDTYPE *typ,
NCURSES_BOOL (*const next_choice)(
- FIELD *p1,
- const void *p2),
+ FIELD *p1,
+ const void *p2),
NCURSES_BOOL (*const prev_choice)(
- FIELD *p1,
+ FIELD *p1,
const void *p2))
{ return(*(int *)0); }
@@ -203,7 +203,7 @@ int set_fieldtype_choice(
#undef link_fieldtype
FIELDTYPE *link_fieldtype(
- FIELDTYPE *type1,
+ FIELDTYPE *type1,
FIELDTYPE *type2)
{ return(*(FIELDTYPE **)0); }
@@ -211,20 +211,20 @@ FIELDTYPE *link_fieldtype(
#undef field_info
int field_info(
- const FIELD *field,
- int *rows,
- int *cols,
- int *frow,
- int *fcol,
- int *nrow,
+ const FIELD *field,
+ int *rows,
+ int *cols,
+ int *frow,
+ int *fcol,
+ int *nrow,
int *nbuf)
{ return(*(int *)0); }
#undef dynamic_field_info
int dynamic_field_info(
- const FIELD *field,
- int *drows,
- int *dcols,
+ const FIELD *field,
+ int *drows,
+ int *dcols,
int *maxgrow)
{ return(*(int *)0); }
@@ -232,7 +232,7 @@ int dynamic_field_info(
#undef set_field_just
int set_field_just(
- FIELD *field,
+ FIELD *field,
int just)
{ return(*(int *)0); }
@@ -245,8 +245,8 @@ int field_just(
#undef link_field
FIELD *link_field(
- FIELD *field,
- int frow,
+ FIELD *field,
+ int frow,
int fcol)
{ return(*(FIELD **)0); }
@@ -254,7 +254,7 @@ FIELD *link_field(
#undef set_max_field
int set_max_field(
- FIELD *field,
+ FIELD *field,
int maxgrow)
{ return(*(int *)0); }
@@ -262,8 +262,8 @@ int set_max_field(
#undef move_field
int move_field(
- FIELD *field,
- int frow,
+ FIELD *field,
+ int frow,
int fcol)
{ return(*(int *)0); }
@@ -275,10 +275,10 @@ FIELDTYPE *_nc_Default_FieldType;
#undef new_fieldtype
FIELDTYPE *new_fieldtype(
NCURSES_BOOL (*const field_check)(
- FIELD *p1,
- const void *p2),
+ FIELD *p1,
+ const void *p2),
NCURSES_BOOL (*const char_check)(
- int p1,
+ int p1,
const void *p2))
{ return(*(FIELDTYPE **)0); }
@@ -291,7 +291,7 @@ int free_fieldtype(
#undef set_field_opts
int set_field_opts(
- FIELD *field,
+ FIELD *field,
Field_Options opts)
{ return(*(int *)0); }
@@ -302,13 +302,13 @@ Field_Options field_opts(
#undef field_opts_on
int field_opts_on(
- FIELD *field,
+ FIELD *field,
Field_Options opts)
{ return(*(int *)0); }
#undef field_opts_off
int field_opts_off(
- FIELD *field,
+ FIELD *field,
Field_Options opts)
{ return(*(int *)0); }
@@ -316,7 +316,7 @@ int field_opts_off(
#undef set_field_pad
int set_field_pad(
- FIELD *field,
+ FIELD *field,
int ch)
{ return(*(int *)0); }
@@ -329,7 +329,7 @@ int field_pad(
#undef set_new_page
int set_new_page(
- FIELD *field,
+ FIELD *field,
NCURSES_BOOL new_page_flag)
{ return(*(int *)0); }
@@ -342,7 +342,7 @@ NCURSES_BOOL new_page(
#undef set_field_status
int set_field_status(
- FIELD *field,
+ FIELD *field,
NCURSES_BOOL status)
{ return(*(int *)0); }
@@ -355,8 +355,8 @@ NCURSES_BOOL field_status(
#undef set_field_type
int set_field_type(
- FIELD *field,
- FIELDTYPE *type,
+ FIELD *field,
+ FIELDTYPE *type,
...)
{ return(*(int *)0); }
@@ -369,7 +369,7 @@ FIELDTYPE *field_type(
#undef set_field_userptr
int set_field_userptr(
- FIELD *field,
+ FIELD *field,
void *usrptr)
{ return(*(int *)0); }
@@ -404,7 +404,7 @@ FORM *_nc_Default_Form;
#undef new_form_sp
FORM *new_form_sp(
- SCREEN *sp,
+ SCREEN *sp,
FIELD **fields)
{ return(*(FORM **)0); }
@@ -420,7 +420,7 @@ int free_form(
#undef set_form_fields
int set_form_fields(
- FORM *form,
+ FORM *form,
FIELD **fields)
{ return(*(int *)0); }
@@ -438,8 +438,8 @@ int field_count(
#undef _nc_get_fieldbuffer
void _nc_get_fieldbuffer(
- FORM *form,
- FIELD *field,
+ FORM *form,
+ FIELD *field,
cchar_t *buf)
{ /* void */ }
@@ -460,7 +460,7 @@ int _nc_Synchronize_Attributes(
#undef _nc_Synchronize_Options
int _nc_Synchronize_Options(
- FIELD *field,
+ FIELD *field,
Field_Options newopts)
{ return(*(int *)0); }
@@ -471,7 +471,7 @@ void _nc_Unset_Current_Field(
#undef _nc_Set_Current_Field
int _nc_Set_Current_Field(
- FORM *form,
+ FORM *form,
FIELD *newfield)
{ return(*(int *)0); }
@@ -487,47 +487,47 @@ FIELD *_nc_First_Active_Field(
#undef _nc_Set_Form_Page
int _nc_Set_Form_Page(
- FORM *form,
- int page,
+ FORM *form,
+ int page,
FIELD *field)
{ return(*(int *)0); }
typedef struct
{
- int keycode;
- int (*cmd) (FORM *);
+ int keycode;
+ int (*cmd) (FORM *);
}
Binding_Info;
#undef form_driver
int form_driver(
- FORM *form,
+ FORM *form,
int c)
{ return(*(int *)0); }
#undef form_driver_w
int form_driver_w(
- FORM *form,
- int type,
+ FORM *form,
+ int type,
wchar_t c)
{ return(*(int *)0); }
#undef set_field_buffer
int set_field_buffer(
- FIELD *field,
- int buffer,
+ FIELD *field,
+ int buffer,
const char *value)
{ return(*(int *)0); }
#undef field_buffer
char *field_buffer(
- const FIELD *field,
+ const FIELD *field,
int buffer)
{ return(*(char **)0); }
#undef _nc_Widen_String
wchar_t *_nc_Widen_String(
- char *source,
+ char *source,
int *lengthp)
{ return(*(wchar_t **)0); }
@@ -535,7 +535,7 @@ wchar_t *_nc_Widen_String(
#undef set_field_init
int set_field_init(
- FORM *form,
+ FORM *form,
Form_Hook func)
{ return(*(int *)0); }
@@ -546,7 +546,7 @@ Form_Hook field_init(
#undef set_field_term
int set_field_term(
- FORM *form,
+ FORM *form,
Form_Hook func)
{ return(*(int *)0); }
@@ -557,7 +557,7 @@ Form_Hook field_term(
#undef set_form_init
int set_form_init(
- FORM *form,
+ FORM *form,
Form_Hook func)
{ return(*(int *)0); }
@@ -568,7 +568,7 @@ Form_Hook form_init(
#undef set_form_term
int set_form_term(
- FORM *form,
+ FORM *form,
Form_Hook func)
{ return(*(int *)0); }
@@ -581,7 +581,7 @@ Form_Hook form_term(
#undef set_form_opts
int set_form_opts(
- FORM *form,
+ FORM *form,
Form_Options opts)
{ return(*(int *)0); }
@@ -592,13 +592,13 @@ Form_Options form_opts(
#undef form_opts_on
int form_opts_on(
- FORM *form,
+ FORM *form,
Form_Options opts)
{ return(*(int *)0); }
#undef form_opts_off
int form_opts_off(
- FORM *form,
+ FORM *form,
Form_Options opts)
{ return(*(int *)0); }
@@ -606,7 +606,7 @@ int form_opts_off(
#undef set_form_page
int set_form_page(
- FORM *form,
+ FORM *form,
int page)
{ return(*(int *)0); }
@@ -643,8 +643,8 @@ int form_request_by_name(
#undef scale_form
int scale_form(
- const FORM *form,
- int *rows,
+ const FORM *form,
+ int *rows,
int *cols)
{ return(*(int *)0); }
@@ -652,7 +652,7 @@ int scale_form(
#undef set_form_sub
int set_form_sub(
- FORM *form,
+ FORM *form,
WINDOW *win)
{ return(*(int *)0); }
@@ -665,7 +665,7 @@ WINDOW *form_sub(
#undef set_form_userptr
int set_form_userptr(
- FORM *form,
+ FORM *form,
void *usrptr)
{ return(*(int *)0); }
@@ -678,7 +678,7 @@ void *form_userptr(
#undef set_form_win
int set_form_win(
- FORM *form,
+ FORM *form,
WINDOW *win)
{ return(*(int *)0); }
@@ -748,38 +748,38 @@ FIELDTYPE *_nc_TYPE_ENUM(void)
#undef _nc_generic_fieldtype
FIELDTYPE *_nc_generic_fieldtype(
NCURSES_BOOL (*const field_check)(
- FORM *p1,
- FIELD *p2,
- const void *p3),
+ FORM *p1,
+ FIELD *p2,
+ const void *p3),
NCURSES_BOOL (*const char_check)(
- int p1,
- FORM *p2,
- FIELD *p3,
- const void *p4),
+ int p1,
+ FORM *p2,
+ FIELD *p3,
+ const void *p4),
NCURSES_BOOL (*const next)(
- FORM *p1,
- FIELD *p2,
- const void *p3),
+ FORM *p1,
+ FIELD *p2,
+ const void *p3),
NCURSES_BOOL (*const prev)(
- FORM *p1,
- FIELD *p2,
- const void *p3),
+ FORM *p1,
+ FIELD *p2,
+ const void *p3),
void (*freecallback)(
void *p1))
{ return(*(FIELDTYPE **)0); }
#undef _nc_set_generic_fieldtype
int _nc_set_generic_fieldtype(
- FIELD *field,
- FIELDTYPE *ftyp,
+ FIELD *field,
+ FIELDTYPE *ftyp,
int (*argiterator)(
void **p1))
{ return(*(int *)0); }
#undef _nc_form_cursor
WINDOW *_nc_form_cursor(
- const FORM *form,
- int *pRow,
+ const FORM *form,
+ int *pRow,
int *pCol)
{ return(*(WINDOW **)0); }
diff --git a/form/llib-lformw b/form/llib-lformw
index de4900dcff83..199e26c34655 100644
--- a/form/llib-lformw
+++ b/form/llib-lformw
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 2002-2015,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -65,11 +65,11 @@ Form_Hook _nc_retrace_form_hook(
#undef set_fieldtype_arg
int set_fieldtype_arg(
- FIELDTYPE *typ,
+ FIELDTYPE *typ,
void *(*const make_arg)(
- va_list *p1),
+ va_list *p1),
void *(*const copy_arg)(
- const void *p1),
+ const void *p1),
void (*const free_arg)(
void *p1))
{ return(*(int *)0); }
@@ -83,7 +83,7 @@ void *field_arg(
#undef set_field_fore
int set_field_fore(
- FIELD *field,
+ FIELD *field,
chtype attr)
{ return(*(int *)0); }
@@ -94,7 +94,7 @@ chtype field_fore(
#undef set_field_back
int set_field_back(
- FIELD *field,
+ FIELD *field,
chtype attr)
{ return(*(int *)0); }
@@ -107,7 +107,7 @@ chtype field_back(
#undef set_current_field
int set_current_field(
- FORM *form,
+ FORM *form,
FIELD *field)
{ return(*(int *)0); }
@@ -133,27 +133,27 @@ FIELD *_nc_Default_Field;
#undef _nc_Make_Argument
TypeArgument *_nc_Make_Argument(
- const FIELDTYPE *typ,
- va_list *ap,
+ const FIELDTYPE *typ,
+ va_list *ap,
int *err)
{ return(*(TypeArgument **)0); }
#undef _nc_Copy_Argument
TypeArgument *_nc_Copy_Argument(
- const FIELDTYPE *typ,
- const TypeArgument *argp,
+ const FIELDTYPE *typ,
+ const TypeArgument *argp,
int *err)
{ return(*(TypeArgument **)0); }
#undef _nc_Free_Argument
void _nc_Free_Argument(
- const FIELDTYPE *typ,
+ const FIELDTYPE *typ,
TypeArgument *argp)
{ /* void */ }
#undef _nc_Copy_Type
NCURSES_BOOL _nc_Copy_Type(
- FIELD *dst,
+ FIELD *dst,
FIELD const *src)
{ return(*(NCURSES_BOOL *)0); }
@@ -164,11 +164,11 @@ void _nc_Free_Type(
#undef new_field
FIELD *new_field(
- int rows,
- int cols,
- int frow,
- int fcol,
- int nrow,
+ int rows,
+ int cols,
+ int frow,
+ int fcol,
+ int nrow,
int nbuf)
{ return(*(FIELD **)0); }
@@ -181,8 +181,8 @@ int free_field(
#undef dup_field
FIELD *dup_field(
- FIELD *field,
- int frow,
+ FIELD *field,
+ int frow,
int fcol)
{ return(*(FIELD **)0); }
@@ -190,12 +190,12 @@ FIELD *dup_field(
#undef set_fieldtype_choice
int set_fieldtype_choice(
- FIELDTYPE *typ,
+ FIELDTYPE *typ,
NCURSES_BOOL (*const next_choice)(
- FIELD *p1,
- const void *p2),
+ FIELD *p1,
+ const void *p2),
NCURSES_BOOL (*const prev_choice)(
- FIELD *p1,
+ FIELD *p1,
const void *p2))
{ return(*(int *)0); }
@@ -203,7 +203,7 @@ int set_fieldtype_choice(
#undef link_fieldtype
FIELDTYPE *link_fieldtype(
- FIELDTYPE *type1,
+ FIELDTYPE *type1,
FIELDTYPE *type2)
{ return(*(FIELDTYPE **)0); }
@@ -211,20 +211,20 @@ FIELDTYPE *link_fieldtype(
#undef field_info
int field_info(
- const FIELD *field,
- int *rows,
- int *cols,
- int *frow,
- int *fcol,
- int *nrow,
+ const FIELD *field,
+ int *rows,
+ int *cols,
+ int *frow,
+ int *fcol,
+ int *nrow,
int *nbuf)
{ return(*(int *)0); }
#undef dynamic_field_info
int dynamic_field_info(
- const FIELD *field,
- int *drows,
- int *dcols,
+ const FIELD *field,
+ int *drows,
+ int *dcols,
int *maxgrow)
{ return(*(int *)0); }
@@ -232,7 +232,7 @@ int dynamic_field_info(
#undef set_field_just
int set_field_just(
- FIELD *field,
+ FIELD *field,
int just)
{ return(*(int *)0); }
@@ -245,8 +245,8 @@ int field_just(
#undef link_field
FIELD *link_field(
- FIELD *field,
- int frow,
+ FIELD *field,
+ int frow,
int fcol)
{ return(*(FIELD **)0); }
@@ -254,7 +254,7 @@ FIELD *link_field(
#undef set_max_field
int set_max_field(
- FIELD *field,
+ FIELD *field,
int maxgrow)
{ return(*(int *)0); }
@@ -262,8 +262,8 @@ int set_max_field(
#undef move_field
int move_field(
- FIELD *field,
- int frow,
+ FIELD *field,
+ int frow,
int fcol)
{ return(*(int *)0); }
@@ -275,10 +275,10 @@ FIELDTYPE *_nc_Default_FieldType;
#undef new_fieldtype
FIELDTYPE *new_fieldtype(
NCURSES_BOOL (*const field_check)(
- FIELD *p1,
- const void *p2),
+ FIELD *p1,
+ const void *p2),
NCURSES_BOOL (*const char_check)(
- int p1,
+ int p1,
const void *p2))
{ return(*(FIELDTYPE **)0); }
@@ -291,7 +291,7 @@ int free_fieldtype(
#undef set_field_opts
int set_field_opts(
- FIELD *field,
+ FIELD *field,
Field_Options opts)
{ return(*(int *)0); }
@@ -302,13 +302,13 @@ Field_Options field_opts(
#undef field_opts_on
int field_opts_on(
- FIELD *field,
+ FIELD *field,
Field_Options opts)
{ return(*(int *)0); }
#undef field_opts_off
int field_opts_off(
- FIELD *field,
+ FIELD *field,
Field_Options opts)
{ return(*(int *)0); }
@@ -316,7 +316,7 @@ int field_opts_off(
#undef set_field_pad
int set_field_pad(
- FIELD *field,
+ FIELD *field,
int ch)
{ return(*(int *)0); }
@@ -329,7 +329,7 @@ int field_pad(
#undef set_new_page
int set_new_page(
- FIELD *field,
+ FIELD *field,
NCURSES_BOOL new_page_flag)
{ return(*(int *)0); }
@@ -342,7 +342,7 @@ NCURSES_BOOL new_page(
#undef set_field_status
int set_field_status(
- FIELD *field,
+ FIELD *field,
NCURSES_BOOL status)
{ return(*(int *)0); }
@@ -355,8 +355,8 @@ NCURSES_BOOL field_status(
#undef set_field_type
int set_field_type(
- FIELD *field,
- FIELDTYPE *type,
+ FIELD *field,
+ FIELDTYPE *type,
...)
{ return(*(int *)0); }
@@ -369,7 +369,7 @@ FIELDTYPE *field_type(
#undef set_field_userptr
int set_field_userptr(
- FIELD *field,
+ FIELD *field,
void *usrptr)
{ return(*(int *)0); }
@@ -404,7 +404,7 @@ FORM *_nc_Default_Form;
#undef new_form_sp
FORM *new_form_sp(
- SCREEN *sp,
+ SCREEN *sp,
FIELD **fields)
{ return(*(FORM **)0); }
@@ -420,7 +420,7 @@ int free_form(
#undef set_form_fields
int set_form_fields(
- FORM *form,
+ FORM *form,
FIELD **fields)
{ return(*(int *)0); }
@@ -438,8 +438,8 @@ int field_count(
#undef _nc_get_fieldbuffer
void _nc_get_fieldbuffer(
- FORM *form,
- FIELD *field,
+ FORM *form,
+ FIELD *field,
cchar_t *buf)
{ /* void */ }
@@ -460,7 +460,7 @@ int _nc_Synchronize_Attributes(
#undef _nc_Synchronize_Options
int _nc_Synchronize_Options(
- FIELD *field,
+ FIELD *field,
Field_Options newopts)
{ return(*(int *)0); }
@@ -471,7 +471,7 @@ void _nc_Unset_Current_Field(
#undef _nc_Set_Current_Field
int _nc_Set_Current_Field(
- FORM *form,
+ FORM *form,
FIELD *newfield)
{ return(*(int *)0); }
@@ -487,47 +487,47 @@ FIELD *_nc_First_Active_Field(
#undef _nc_Set_Form_Page
int _nc_Set_Form_Page(
- FORM *form,
- int page,
+ FORM *form,
+ int page,
FIELD *field)
{ return(*(int *)0); }
typedef struct
{
- int keycode;
- int (*cmd) (FORM *);
+ int keycode;
+ int (*cmd) (FORM *);
}
Binding_Info;
#undef form_driver
int form_driver(
- FORM *form,
+ FORM *form,
int c)
{ return(*(int *)0); }
#undef form_driver_w
int form_driver_w(
- FORM *form,
- int type,
+ FORM *form,
+ int type,
wchar_t c)
{ return(*(int *)0); }
#undef set_field_buffer
int set_field_buffer(
- FIELD *field,
- int buffer,
+ FIELD *field,
+ int buffer,
const char *value)
{ return(*(int *)0); }
#undef field_buffer
char *field_buffer(
- const FIELD *field,
+ const FIELD *field,
int buffer)
{ return(*(char **)0); }
#undef _nc_Widen_String
wchar_t *_nc_Widen_String(
- char *source,
+ char *source,
int *lengthp)
{ return(*(wchar_t **)0); }
@@ -535,7 +535,7 @@ wchar_t *_nc_Widen_String(
#undef set_field_init
int set_field_init(
- FORM *form,
+ FORM *form,
Form_Hook func)
{ return(*(int *)0); }
@@ -546,7 +546,7 @@ Form_Hook field_init(
#undef set_field_term
int set_field_term(
- FORM *form,
+ FORM *form,
Form_Hook func)
{ return(*(int *)0); }
@@ -557,7 +557,7 @@ Form_Hook field_term(
#undef set_form_init
int set_form_init(
- FORM *form,
+ FORM *form,
Form_Hook func)
{ return(*(int *)0); }
@@ -568,7 +568,7 @@ Form_Hook form_init(
#undef set_form_term
int set_form_term(
- FORM *form,
+ FORM *form,
Form_Hook func)
{ return(*(int *)0); }
@@ -581,7 +581,7 @@ Form_Hook form_term(
#undef set_form_opts
int set_form_opts(
- FORM *form,
+ FORM *form,
Form_Options opts)
{ return(*(int *)0); }
@@ -592,13 +592,13 @@ Form_Options form_opts(
#undef form_opts_on
int form_opts_on(
- FORM *form,
+ FORM *form,
Form_Options opts)
{ return(*(int *)0); }
#undef form_opts_off
int form_opts_off(
- FORM *form,
+ FORM *form,
Form_Options opts)
{ return(*(int *)0); }
@@ -606,7 +606,7 @@ int form_opts_off(
#undef set_form_page
int set_form_page(
- FORM *form,
+ FORM *form,
int page)
{ return(*(int *)0); }
@@ -643,8 +643,8 @@ int form_request_by_name(
#undef scale_form
int scale_form(
- const FORM *form,
- int *rows,
+ const FORM *form,
+ int *rows,
int *cols)
{ return(*(int *)0); }
@@ -652,7 +652,7 @@ int scale_form(
#undef set_form_sub
int set_form_sub(
- FORM *form,
+ FORM *form,
WINDOW *win)
{ return(*(int *)0); }
@@ -665,7 +665,7 @@ WINDOW *form_sub(
#undef set_form_userptr
int set_form_userptr(
- FORM *form,
+ FORM *form,
void *usrptr)
{ return(*(int *)0); }
@@ -678,7 +678,7 @@ void *form_userptr(
#undef set_form_win
int set_form_win(
- FORM *form,
+ FORM *form,
WINDOW *win)
{ return(*(int *)0); }
@@ -748,38 +748,38 @@ FIELDTYPE *_nc_TYPE_ENUM(void)
#undef _nc_generic_fieldtype
FIELDTYPE *_nc_generic_fieldtype(
NCURSES_BOOL (*const field_check)(
- FORM *p1,
- FIELD *p2,
- const void *p3),
+ FORM *p1,
+ FIELD *p2,
+ const void *p3),
NCURSES_BOOL (*const char_check)(
- int p1,
- FORM *p2,
- FIELD *p3,
- const void *p4),
+ int p1,
+ FORM *p2,
+ FIELD *p3,
+ const void *p4),
NCURSES_BOOL (*const next)(
- FORM *p1,
- FIELD *p2,
- const void *p3),
+ FORM *p1,
+ FIELD *p2,
+ const void *p3),
NCURSES_BOOL (*const prev)(
- FORM *p1,
- FIELD *p2,
- const void *p3),
+ FORM *p1,
+ FIELD *p2,
+ const void *p3),
void (*freecallback)(
void *p1))
{ return(*(FIELDTYPE **)0); }
#undef _nc_set_generic_fieldtype
int _nc_set_generic_fieldtype(
- FIELD *field,
- FIELDTYPE *ftyp,
+ FIELD *field,
+ FIELDTYPE *ftyp,
int (*argiterator)(
void **p1))
{ return(*(int *)0); }
#undef _nc_form_cursor
WINDOW *_nc_form_cursor(
- const FORM *form,
- int *pRow,
+ const FORM *form,
+ int *pRow,
int *pCol)
{ return(*(WINDOW **)0); }
diff --git a/include/Caps b/include/Caps
index 4528cffb80ed..cd077b969192 100644
--- a/include/Caps
+++ b/include/Caps
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright 2019,2020 Thomas E. Dickey #
+# Copyright 2019-2023,2024 Thomas E. Dickey #
# Copyright 1998-2015,2016 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -30,7 +30,7 @@
# Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995
# and: Eric S. Raymond <esr@snark.thyrsus.com>
#
-# $Id: Caps,v 1.46 2020/10/17 21:30:19 tom Exp $
+# $Id: Caps,v 1.56 2024/04/20 21:05:02 tom Exp $
#
# This is the master termcap/terminfo capability table.
#
@@ -48,7 +48,7 @@
#
# Column 1: terminfo variable name
# Column 2: terminfo capability name
-# Column 3: capability type (boolean, numeric, or string)
+# Column 3: capability type (Boolean, numeric, or string)
# Column 4: termcap capability name
# Column 5: KEY_xxx name, if any, `-' otherwise
# Column 6: value for KEY_xxx name, if any, `-' otherwise
@@ -58,7 +58,7 @@
#
# The codes following [Y-] in column 7 describe the versions of termcap which
# use the given capability. This information is not used by the curses library
-# proper; rather, it's there to help the terminfo maintainer avoid emitting
+# proper; rather, it is there to help the terminfo maintainer avoid emitting
# termcap entry translations that are more than 1023 bytes long (and tank a
# lot of old termcap-using programs). The codes read as follows:
# B = mentioned in the BSD man page for 4.4BSD curses
@@ -98,8 +98,8 @@
# 3. List it in the standard table. You almost certainly do *not* want
# to do this -- the capabilities in that one, and their order, have been
# carefully chosen to be SVr4-binary-compatible when they're written out
-# as a terminfo object, and breaking this would be bad. It's up to the ncurses
-# library what to do with the terminfo data after it's read in.
+# as a terminfo object, and breaking this would be bad. It is up to the ncurses
+# library what to do with the terminfo data after it is read in.
#
# 4. List it in the aliases table with an IGNORE target field. If you
# do this, the capability will be ignored on input (though the user will
@@ -108,7 +108,7 @@
# 5. List it in the extensions table. If you do this, the compiler will
# silently accept the capability, but the curses library proper will never
# see it (because it won't be written out as part of the terminfo object
-# format). It's up to you what you have the compiler do with it.
+# format). It is up to you what you have the compiler do with it.
#
# There are two opposite reasons to choose option 5. One is when you want
# to eat the capability silently and discard it when doing translations
@@ -153,67 +153,103 @@
# to buy space for non-essentials Emacs is still using. Capabilities high
# on that hit list: rc, sc, uc.
#
+# FORMATTING THE TABLES
+#
+# We manually specify a (minimum) column width for the capability name
+# and terminfo code columns in the tables to achieve a consistent
+# arrangement; as used here, tbl(1) cannot know the width required by
+# one table's data while formatting another's.
+#
+# The longest capability names (C variables) are
+# "enter_near_letter_quality" and "bit_image_carriage_return" (tied at
+# 25n), and the longest terminfo code is "setcolor" (8n).
+#
+# The tables are a tight fit on traditional man(7) implementations that
+# use a line length of 65n, and the "Description" column has little room
+# within which the formatter can make breaking or adjustment decisions.
+# Words like "micro_..._address" and "parm_..._micro" don't break.
+# Reducing the inter-column gaps to 2 ens gives them enough room. --GBR
+#
#############################################################################
#
# STANDARD CAPABILITIES
#
-#%The following is a complete table of the capabilities included in a
-#%terminfo description block and available to terminfo-using code. In each
-#%line of the table,
-#%
-#%The \fBvariable\fR is the name by which the programmer (at the terminfo level)
-#%accesses the capability.
-#%
-#%The \fBcapname\fR is the short name used in the text of the database,
-#%and is used by a person updating the database.
-#%Whenever possible, capnames are chosen to be the same as or similar to
-#%the ANSI X3.64-1979 standard (now superseded by ECMA-48, which uses
-#%identical or very similar names). Semantics are also intended to match
-#%those of the specification.
-#%
-#%The termcap code is the old
-#%.B termcap
-#%capability name (some capabilities are new, and have names which termcap
-#%did not originate).
-#%.P
-#%Capability names have no hard length limit, but an informal limit of 5
-#%characters has been adopted to keep them short and to allow the tabs in
-#%the source file
-#%.B Caps
+#%Tables of capabilities
+#%.I \%ncurses
+#%recognizes in a
+#%.I \%term\%info
+#%terminal type description and available to
+#%.IR \%term\%info -using
+#%code follow.
+#%.bP
+#%The capability name identifies the symbol by which the programmer
+#%using the
+#%.I \%term\%info
+#%API accesses the capability.
+#%.bP
+#%The TI
+#%.RI ( \%term\%info )
+#%code is the short name used by a person composing or updating a
+#%terminal type entry.
+#%.IP
+#%Whenever possible,
+#%these codes are the same as or similar to those of the ANSI X3.64-1979
+#%standard
+#%(now superseded by ECMA-48,
+#%which uses identical or very similar names).
+#%Semantics are also intended to match those of the specification.
+#%.IP
+#%.I \%term\%info
+#%codes have no hard length limit,
+#%but
+#%.I \%ncurses
+#%maintains an informal one of 5 characters to keep them short and to
+#%allow the tabs in the source file
+#%.I Caps
#%to line up nicely.
-#%
-#%Finally, the description field attempts to convey the semantics of the
-#%capability. You may find some codes in the description field:
-#%.TP
-#%(P)
-#%indicates that padding may be specified
+#%(Some standard codes exceed this limit regardless.)
+#%.bP
+#%The TC
+#%.RI ( termcap )
+#%code is that used by the corresponding API of
+#%.IR \%ncurses .
+#%(Some capabilities are new,
+#%and have names that BSD
+#%.I termcap
+#%did not originate.)
+#%.bP
+#%The description field attempts to convey the capability's semantics.
+#%.PP
+#%The description field employs a handful of notations.
#%.TP
-#%#[1-9]
-#%in the description field indicates that the string is passed
-#%through \fBtparm\fP(3X) with parameters as given (#\fIi\fP).
-#%.IP
-#%If no parameters are listed in the description,
-#%passing the string through \fBtparm\fP(3X) may give unexpected results,
-#%e.g., if it contains percent (%%) signs.
+#%.B (P)
+#%indicates that padding may be specified.
#%.TP
-#%(P*)
-#%indicates that padding may vary in proportion to the number of
-#%lines affected
+#%.B (P*)
+#%indicates that padding may vary in proportion to the number of output
+#%lines affected.
#%.TP
-#%(#\d\fIi\fP\u)
-#%indicates the \fIi\fP\uth\d parameter.
-#%
+#%.BI # i
+#%indicates the
+#%.IR i th
+#%parameter of a string capability;
+#%the programmer should pass the string to \fB\%tparm\fP(3X) with the
+#%parameters listed.
+#%.IP
+#%If the description lists no parameters,
+#%passing the string to \fB\%tparm\fP(3X) may produce unexpected
+#%behavior,
+#%for instance if the string contains percent signs.
+#%.
#%.PP
-#% These are the boolean capabilities:
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw20.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBBooleans name Code\fR
+#%.TS
+#%center;
+#%Lb Cb S Lb
+#%Lb Lb Lb Lb
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
+#%\& Code \&
+#%Boolean Capability Name TI TC Description
+#%_
auto_left_margin bw bool bw - - YB-G- cub1 wraps from column 0 to last column
auto_right_margin am bool am - - YBCGE terminal has automatic margins
no_esc_ctlc xsb bool xb - - YBCG- beehive (f1=escape, f2=ctrl C)
@@ -252,18 +288,16 @@ semi_auto_right_margin sam bool YE - - ----- printing in last column causes cr
cpi_changes_res cpix bool YF - - ----- changing character pitch changes resolution
lpi_changes_res lpix bool YG - - ----- changing line pitch changes resolution
#%.TE
-#%.ad
-#%
-#%These are the numeric capabilities:
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw20.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBNumeric name Code\fR
+#%.PP
+#%.
+#%.TS
+#%center;
+#%Lb Cb S Lb
+#%Lb Lb Lb Lb
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
+#%\& Code \&
+#%Numeric Capability Name TI TC Description
+#%_
columns cols num co - - YBCGE number of columns in a line
init_tabs it num it - - YB-G- tabs initially every # spaces
lines lines num li - - YBCGE number of lines on screen or page
@@ -282,20 +316,21 @@ max_colors colors num Co - - ----- maximum number of colors on screen
max_pairs pairs num pa - - ----- maximum number of color-pairs on the screen
no_color_video ncv num NC - - ----- video attributes that cannot be used with colors
#%.TE
-#%.ad
-#%
+#%.PP
+#%.
#%The following numeric capabilities are present in the SVr4.0 term structure,
-#%but are not yet documented in the man page. They came in with SVr4's
-#%printer support.
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw20.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBNumeric name Code\fR
+#%but are not yet documented in the man page.
+#%They came in with SVr4's printer support.
+#%.
+#%.PP
+#%.TS
+#%center;
+#%Lb Cb S Lb
+#%Lb Lb Lb Lb
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
+#%\& Code \&
+#%Numeric Capability Name TI TC Description
+#%_
buffer_capacity bufsz num Ya - - ----- numbers of bytes buffered before printing
dot_vert_spacing spinv num Yb - - ----- spacing of pins vertically in pins per inch
dot_horz_spacing spinh num Yc - - ----- spacing of dots horizontally in dots per inch
@@ -314,18 +349,16 @@ buttons btns num BT - - ----- number of buttons on mouse
bit_image_entwining bitwin num Yo - - ----- number of passes for each bit-image row
bit_image_type bitype num Yp - - ----- type of bit-image device
#%.TE
-#%.ad
-#%
-#%These are the string capabilities:
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw20.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBString name Code\fR
+#%.PP
+#%.
+#%.TS
+#%center;
+#%Lb Cb S Lb
+#%Lb Lb Lb Lb
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
+#%\& Code \&
+#%String Capability Name TI TC Description
+#%_
back_tab cbt str bt - - YBCGE back tab (P)
bell bel str bl - - YB-GE audible signal (bell) (P)
carriage_return cr str cr - - YBCGE carriage return (P*) (P*)
@@ -388,6 +421,10 @@ key_ctab kctab str kt KEY_CTAB 0525 -B-G-* clear-tab key
key_dc kdch1 str kD KEY_DC 0512 YB-G- delete-character key
key_dl kdl1 str kL KEY_DL 0510 -B-G-* delete-line key
key_down kcud1 str kd KEY_DOWN 0402 YBCGE down-arrow key
+#%.TE
+#%.TS
+#%center;
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
key_eic krmir str kM KEY_EIC 0514 -B-G-* sent by rmir or smir in insert mode
key_eol kel str kE KEY_EOL 0517 -B-G-* clear-to-end-of-line key
key_eos ked str kS KEY_EOS 0516 -B-G-* clear-to-end-of-screen key
@@ -414,8 +451,8 @@ key_sf kind str kF KEY_SF 0520 -B-G-* scroll-forward key
key_sr kri str kR KEY_SR 0521 -B-G-* scroll-backward key
key_stab khts str kT KEY_STAB 0524 -B-G-* set-tab key
key_up kcuu1 str ku KEY_UP 0403 YBCGE up-arrow key
-keypad_local rmkx str ke - - YBCGE leave 'keyboard_transmit' mode
-keypad_xmit smkx str ks - - YBCGE enter 'keyboard_transmit' mode
+keypad_local rmkx str ke - - YBCGE leave keyboard transmit mode
+keypad_xmit smkx str ks - - YBCGE enter keyboard transmit mode
lab_f0 lf0 str l0 - - -B-G-* label on function key f0 if not f0
lab_f1 lf1 str l1 - - -B-G-* label on function key f1 if not f1
lab_f10 lf10 str la - - ----- label on function key f10 if not f10
@@ -450,6 +487,10 @@ prtr_on mc5 str po - - -B-G-* turn on printer
repeat_char rep str rp - - YB-GE repeat char #1 #2 times (P*)
reset_1string rs1 str r1 - - -B--- reset string
reset_2string rs2 str r2 - - -B--- reset string
+#%.TE
+#%.TS
+#%center;
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
reset_3string rs3 str r3 - - -B--- reset string
reset_file rf str rf - - -B--- name of reset file
restore_cursor rc str rc - - YBCG- restore cursor to position of last save_cursor
@@ -516,6 +557,10 @@ key_resume kres str &5 KEY_RESUME 0570 ----- resume key
key_save ksav str &6 KEY_SAVE 0571 ----- save key
key_suspend kspd str &7 KEY_SUSPEND 0627 ----- suspend key
key_undo kund str &8 KEY_UNDO 0630 ----- undo key
+#%.TE
+#%.TS
+#%center;
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
key_sbeg kBEG str &9 KEY_SBEG 0572 ----- shifted begin key
key_scancel kCAN str &0 KEY_SCANCEL 0573 ----- shifted cancel key
key_scommand kCMD str *1 KEY_SCOMMAND 0574 ----- shifted command key
@@ -578,6 +623,10 @@ key_f39 kf39 str FT KEY_F(39) - ----E F39 function key
key_f40 kf40 str FU KEY_F(40) - ----E F40 function key
key_f41 kf41 str FV KEY_F(41) - ----E F41 function key
key_f42 kf42 str FW KEY_F(42) - ----E F42 function key
+#%.TE
+#%.TS
+#%center;
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
key_f43 kf43 str FX KEY_F(43) - ----E F43 function key
key_f44 kf44 str FY KEY_F(44) - ----E F44 function key
key_f45 kf45 str FZ KEY_F(45) - ----E F45 function key
@@ -601,7 +650,7 @@ key_f62 kf62 str Fq KEY_F(62) - ----E F62 function key
key_f63 kf63 str Fr KEY_F(63) - ----E F63 function key
clr_bol el1 str cb - - ----- Clear to beginning of line
clear_margins mgc str MC - - ----- clear right and left soft margins
-set_left_margin smgl str ML - - ----- set left soft margin at current column. See smgl. (ML is not in BSD termcap).
+set_left_margin smgl str ML - - ----- set left soft margin at current column (not in BSD \fItermcap\fP)
set_right_margin smgr str MR - - ----- set right soft margin at current column
label_format fln str Lf - - ----- label format
set_clock sclk str SC - - ----- set clock, #1 hrs #2 mins #3 secs
@@ -646,6 +695,10 @@ change_res_horz chr str ZC - - ----- Change horizontal resolution to #1
change_res_vert cvr str ZD - - ----- Change vertical resolution to #1
define_char defc str ZE - - ----- Define a character #1, #2 dots wide, descender #3
enter_doublewide_mode swidm str ZF - - ----- Enter double-wide mode
+#%.TE
+#%.TS
+#%center;
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
enter_draft_quality sdrfq str ZG - - ----- Enter draft-quality mode
enter_italics_mode sitm str ZH - - ----- Enter italic mode
enter_leftward_mode slm str ZI - - ----- Start leftward carriage motion
@@ -691,19 +744,20 @@ superscript_characters supcs str Zv - - ----- List of superscriptable characte
these_cause_cr docr str Zw - - ----- Printing any of these characters causes CR
zero_motion zerom str Zx - - ----- No motion for subsequent character
#%.TE
-#%.ad
-#%
+#%.PP
+#%.
#%The following string capabilities are present in the SVr4.0 term structure,
#%but were originally not documented in the man page.
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw18.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBString name Code\fR
+#%.
+#%.PP
+#%.TS
+#%center;
+#%Lb Cb S Lb
+#%Lb Lb Lb Lb
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
+#%\& Code \&
+#%String Capability Name TI TC Description
+#%_
char_set_names csnm str Zy - - ----- Produce #1'th item from list of character set names
key_mouse kmous str Km KEY_MOUSE 0631 ----- Mouse event has occurred
mouse_info minfo str Mi - - ----- Mouse status information
@@ -712,7 +766,7 @@ get_mouse getm str Gm - - ----- Curses should get button events, parameter #1
set_a_foreground setaf str AF - - ----- Set foreground color to #1, using ANSI escape
set_a_background setab str AB - - ----- Set background color to #1, using ANSI escape
pkey_plab pfxl str xl - - ----- Program function key #1 to type string #2 and show string #3
-device_type devt str dv - - ----- Indicate language/codeset support
+device_type devt str dv - - ----- Indicate language, codeset support
code_set_init csin str ci - - ----- Init sequence for multiple codesets
set0_des_seq s0ds str s0 - - ----- Shift to codeset 0 (EUC set 0, ASCII)
set1_des_seq s1ds str s1 - - ----- Shift to codeset 1
@@ -740,9 +794,8 @@ pc_term_options pctrm str S6 - - ----- PC terminal options
scancode_escape scesc str S7 - - ----- Escape for scancode emulation
alt_scancode_esc scesa str S8 - - ----- Alternate escape for scancode emulation
#%.TE
-#%.ad
-#%
-#%.in .8i
+#%.PP
+#%.
#%The XSI Curses standard added these hardcopy capabilities.
#%They were used in some post-4.1 versions of System V curses,
#%e.g., Solaris 2.5 and IRIX 6.x.
@@ -751,15 +804,16 @@ alt_scancode_esc scesa str S8 - - ----- Alternate escape for scancode emulatio
#%If your compiled terminfo entries use these,
#%they may not be binary-compatible with System V terminfo
#%entries after SVr4.1; beware!
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw20.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBString name Code\fR
+#%.
+#%.PP
+#%.TS
+#%center;
+#%Lb Cb S Lb
+#%Lb Lb Lb Lb
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
+#%\& Code \&
+#%String Capability Name TI TC Description
+#%_
enter_horizontal_hl_mode ehhlm str Xh - - ----- Enter horizontal highlight mode
enter_left_hl_mode elhlm str Xl - - ----- Enter left highlight mode
enter_low_hl_mode elohlm str Xo - - ----- Enter low highlight mode
@@ -769,7 +823,6 @@ enter_vertical_hl_mode evhlm str Xv - - ----- Enter vertical highlight mode
set_a_attributes sgr1 str sA - - ----- Define second set of video attributes #1-#6
set_pglen_inch slength str YI - - ----- Set page length to #1 hundredth of an inch (some implementations use sL for termcap).
#%.TE
-#%.ad
#
# The magic token below tells the tic compiler-generator code that all the caps
# past it should be ignored (not written out) when dumping terminfo objects. It
@@ -883,7 +936,7 @@ has_hardware_tabs OTpt bool pt - - YB--- has 8-char tabs invoked with ^I
return_does_clr_eol OTxr bool xr - - YB--- return clears the line
# tek_4025_insert_line OTxx bool xx - - -BC-- Tektronix 4025 insert-line glitch
#
-# mytinfo described this as a termcap capability, but it's not listed in the
+# mytinfo described this as a termcap capability, but it is not listed in the
# 4.4BSD man pages, and not found in the 4.4BSD termcap file. The ncurses
# package, like System V, behaves as though it is always true.
#
diff --git a/include/Caps-ncurses b/include/Caps-ncurses
index d8c8baca1fb3..f9a5da06911a 100644
--- a/include/Caps-ncurses
+++ b/include/Caps-ncurses
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright 2019,2020 Thomas E. Dickey #
+# Copyright 2019-2022,2023 Thomas E. Dickey #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
# copy of this software and associated documentation files (the "Software"), #
@@ -28,7 +28,7 @@
#
# Author: Thomas E. Dickey
#
-# $Id: Caps-ncurses,v 1.10 2020/09/29 19:05:19 tom Exp $
+# $Id: Caps-ncurses,v 1.15 2023/10/28 21:55:47 tom Exp $
#
#############################################################################
#
@@ -344,6 +344,7 @@ infoalias ksel kslt IBM key_select
used_by ncurses
userdef CO num n number of indexed colors overlaying RGB space
userdef E3 str - clears the terminal's scrollback buffer.
+userdef NQ bool - terminal does not support query/response
userdef RGB bool - use direct colors with 1/3 of color-pair bits per color.
userdef RGB num n use direct colors with given number of bits per color.
userdef RGB str - use direct colors with given bit-layout.
@@ -401,7 +402,21 @@ userdef Ss str n change the cursor style.
userdef rmxx str - reset ECMA-48 strikeout/crossed-out attributes.
userdef smxx str - set ECMA-48 strikeout/crossed-out attributes.
#
+used_by vim
+userdef BD str - disables bracketed paste
+userdef BE str - enables bracketed paste
+userdef PE str - is sent after pasted text
+userdef PS str - is sent before pasted text
+userdef RV str - report terminal secondary device attributes
+userdef XR str - report terminal version as a free-format string.
+userdef XF bool - terminal supports xterm focus in/out
+userdef fd str - disable xterm focus-events
+userdef fe str - enable xterm focus-events
+userdef rv str - response to RV, regular expression
+userdef xr str - response to XR, regular expression
+#
used_by xterm
+userdef csl str - clear status line
userdef kDC3 str - alt delete-character
userdef kDC4 str - shift+alt delete-character
userdef kDC5 str - control delete-character
@@ -458,4 +473,6 @@ userdef ka2 str - vt220-keypad extensions
userdef kb1 str - vt220-keypad extensions
userdef kb3 str - vt220-keypad extensions
userdef kc2 str - vt220-keypad extensions
+userdef kxIN str - mouse response on focus-in
+userdef kxOUT str - mouse response on focus-out
#############################################################################
diff --git a/include/Caps.aix4 b/include/Caps.aix4
index a27f2699582b..1adb848e08b1 100644
--- a/include/Caps.aix4
+++ b/include/Caps.aix4
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright 2019,2020 Thomas E. Dickey #
+# Copyright 2019-2023,2024 Thomas E. Dickey #
# Copyright 2001-2015,2016 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -29,7 +29,7 @@
#
# Author: Thomas Dickey
#
-# $Id: Caps.aix4,v 1.18 2020/10/17 21:30:19 tom Exp $
+# $Id: Caps.aix4,v 1.28 2024/04/20 21:05:02 tom Exp $
#
# This is an adaptation of ncurses' termcap/terminfo capability table, which
# is designed to align with AIX 4.x's terminfo.
@@ -48,7 +48,7 @@
#
# Column 1: terminfo variable name
# Column 2: terminfo capability name
-# Column 3: capability type (boolean, numeric, or string)
+# Column 3: capability type (Boolean, numeric, or string)
# Column 4: termcap capability name
# Column 5: KEY_xxx name, if any, `-' otherwise
# Column 6: value for KEY_xxx name, if any, `-' otherwise
@@ -58,7 +58,7 @@
#
# The codes following [Y-] in column 7 describe the versions of termcap which
# use the given capability. This information is not used by the curses library
-# proper; rather, it's there to help the terminfo maintainer avoid emitting
+# proper; rather, it is there to help the terminfo maintainer avoid emitting
# termcap entry translations that are more than 1023 bytes long (and tank a
# lot of old termcap-using programs). The codes read as follows:
# B = mentioned in the BSD man page for 4.4BSD curses
@@ -98,8 +98,8 @@
# 3. List it in the standard table. You almost certainly do *not* want
# to do this -- the capabilities in that one, and their order, have been
# carefully chosen to be SVr4-binary-compatible when they're written out
-# as a terminfo object, and breaking this would be bad. It's up to the ncurses
-# library what to do with the terminfo data after it's read in.
+# as a terminfo object, and breaking this would be bad. It is up to the ncurses
+# library what to do with the terminfo data after it is read in.
#
# 4. List it in the aliases table with an IGNORE target field. If you
# do this, the capability will be ignored on input (though the user will
@@ -108,7 +108,7 @@
# 5. List it in the extensions table. If you do this, the compiler will
# silently accept the capability, but the curses library proper will never
# see it (because it won't be written out as part of the terminfo object
-# format). It's up to you what you have the compiler do with it.
+# format). It is up to you what you have the compiler do with it.
#
# There are two opposite reasons to choose option 5. One is when you want
# to eat the capability silently and discard it when doing translations
@@ -153,67 +153,103 @@
# to buy space for non-essentials Emacs is still using. Capabilities high
# on that hit list: rc, sc, uc.
#
+# FORMATTING THE TABLES
+#
+# We manually specify a (minimum) column width for the capability name
+# and terminfo code columns in the tables to achieve a consistent
+# arrangement; as used here, tbl(1) cannot know the width required by
+# one table's data while formatting another's.
+#
+# The longest capability names (C variables) are
+# "enter_near_letter_quality" and "bit_image_carriage_return" (tied at
+# 25n), and the longest terminfo code is "setcolor" (8n).
+#
+# The tables are a tight fit on traditional man(7) implementations that
+# use a line length of 65n, and the "Description" column has little room
+# within which the formatter can make breaking or adjustment decisions.
+# Words like "micro_..._address" and "parm_..._micro" don't break.
+# Reducing the inter-column gaps to 2 ens gives them enough room. --GBR
+#
#############################################################################
#
# STANDARD CAPABILITIES
#
-#%The following is a complete table of the capabilities included in a
-#%terminfo description block and available to terminfo-using code. In each
-#%line of the table,
-#%
-#%The \fBvariable\fR is the name by which the programmer (at the terminfo level)
-#%accesses the capability.
-#%
-#%The \fBcapname\fR is the short name used in the text of the database,
-#%and is used by a person updating the database.
-#%Whenever possible, capnames are chosen to be the same as or similar to
-#%the ANSI X3.64-1979 standard (now superseded by ECMA-48, which uses
-#%identical or very similar names). Semantics are also intended to match
-#%those of the specification.
-#%
-#%The termcap code is the old
-#%.B termcap
-#%capability name (some capabilities are new, and have names which termcap
-#%did not originate).
-#%.P
-#%Capability names have no hard length limit, but an informal limit of 5
-#%characters has been adopted to keep them short and to allow the tabs in
-#%the source file
-#%.B Caps
+#%Tables of capabilities
+#%.I \%ncurses
+#%recognizes in a
+#%.I \%term\%info
+#%terminal type description and available to
+#%.IR \%term\%info -using
+#%code follow.
+#%.bP
+#%The capability name identifies the symbol by which the programmer
+#%using the
+#%.I \%term\%info
+#%API accesses the capability.
+#%.bP
+#%The TI
+#%.RI ( \%term\%info )
+#%code is the short name used by a person composing or updating a
+#%terminal type entry.
+#%.IP
+#%Whenever possible,
+#%these codes are the same as or similar to those of the ANSI X3.64-1979
+#%standard
+#%(now superseded by ECMA-48,
+#%which uses identical or very similar names).
+#%Semantics are also intended to match those of the specification.
+#%.IP
+#%.I \%term\%info
+#%codes have no hard length limit,
+#%but
+#%.I \%ncurses
+#%maintains an informal one of 5 characters to keep them short and to
+#%allow the tabs in the source file
+#%.I Caps
#%to line up nicely.
-#%
-#%Finally, the description field attempts to convey the semantics of the
-#%capability. You may find some codes in the description field:
-#%.TP
-#%(P)
-#%indicates that padding may be specified
+#%(Some standard codes exceed this limit regardless.)
+#%.bP
+#%The TC
+#%.RI ( termcap )
+#%code is that used by the corresponding API of
+#%.IR \%ncurses .
+#%(Some capabilities are new,
+#%and have names that BSD
+#%.I termcap
+#%did not originate.)
+#%.bP
+#%The description field attempts to convey the capability's semantics.
+#%.PP
+#%The description field employs a handful of notations.
#%.TP
-#%#[1-9]
-#%in the description field indicates that the string is passed
-#%through \fBtparm\fP(3X) with parameters as given (#\fIi\fP).
-#%.IP
-#%If no parameters are listed in the description,
-#%passing the string through \fBtparm\fP(3X) may give unexpected results,
-#%e.g., if it contains percent (%%) signs.
+#%.B (P)
+#%indicates that padding may be specified.
#%.TP
-#%(P*)
-#%indicates that padding may vary in proportion to the number of
-#%lines affected
+#%.B (P*)
+#%indicates that padding may vary in proportion to the number of output
+#%lines affected.
#%.TP
-#%(#\d\fIi\fP\u)
-#%indicates the \fIi\fP\uth\d parameter.
-#%
+#%.BI # i
+#%indicates the
+#%.IR i th
+#%parameter of a string capability;
+#%the programmer should pass the string to \fB\%tparm\fP(3X) with the
+#%parameters listed.
+#%.IP
+#%If the description lists no parameters,
+#%passing the string to \fB\%tparm\fP(3X) may produce unexpected
+#%behavior,
+#%for instance if the string contains percent signs.
+#%.
#%.PP
-#% These are the boolean capabilities:
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw20.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBBooleans name Code\fR
+#%.TS
+#%center;
+#%Lb Cb S Lb
+#%Lb Lb Lb Lb
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
+#%\& Code \&
+#%Boolean Capability Name TI TC Description
+#%_
auto_left_margin bw bool bw - - YB-G- cub1 wraps from column 0 to last column
auto_right_margin am bool am - - YBCGE terminal has automatic margins
no_esc_ctlc xsb bool xb - - YBCG- beehive (f1=escape, f2=ctrl C)
@@ -252,18 +288,16 @@ semi_auto_right_margin sam bool YE - - ----- printing in last column causes cr
cpi_changes_res cpix bool YF - - ----- changing character pitch changes resolution
lpi_changes_res lpix bool YG - - ----- changing line pitch changes resolution
#%.TE
-#%.ad
-#%
-#%These are the numeric capabilities:
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw20.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBNumeric name Code\fR
+#%.PP
+#%.
+#%.TS
+#%center;
+#%Lb Cb S Lb
+#%Lb Lb Lb Lb
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
+#%\& Code \&
+#%Numeric Capability Name TI TC Description
+#%_
columns cols num co - - YBCGE number of columns in a line
init_tabs it num it - - YB-G- tabs initially every # spaces
lines lines num li - - YBCGE number of lines on screen or page
@@ -282,20 +316,21 @@ max_colors colors num Co - - ----- maximum number of colors on screen
max_pairs pairs num pa - - ----- maximum number of color-pairs on the screen
no_color_video ncv num NC - - ----- video attributes that cannot be used with colors
#%.TE
-#%.ad
-#%
+#%.PP
+#%.
#%The following numeric capabilities are present in the SVr4.0 term structure,
-#%but are not yet documented in the man page. They came in with SVr4's
-#%printer support.
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw20.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBNumeric name Code\fR
+#%but are not yet documented in the man page.
+#%They came in with SVr4's printer support.
+#%.
+#%.PP
+#%.TS
+#%center;
+#%Lb Cb S Lb
+#%Lb Lb Lb Lb
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
+#%\& Code \&
+#%Numeric Capability Name TI TC Description
+#%_
buffer_capacity bufsz num Ya - - ----- numbers of bytes buffered before printing
dot_vert_spacing spinv num Yb - - ----- spacing of pins vertically in pins per inch
dot_horz_spacing spinh num Yc - - ----- spacing of dots horizontally in dots per inch
@@ -314,18 +349,16 @@ buttons btns num BT - - ----- number of buttons on mouse
bit_image_entwining bitwin num Yo - - ----- number of passes for each bit-image row
bit_image_type bitype num Yp - - ----- type of bit-image device
#%.TE
-#%.ad
-#%
-#%These are the string capabilities:
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw20.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBString name Code\fR
+#%.PP
+#%.
+#%.TS
+#%center;
+#%Lb Cb S Lb
+#%Lb Lb Lb Lb
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
+#%\& Code \&
+#%String Capability Name TI TC Description
+#%_
back_tab cbt str bt - - YBCGE back tab (P)
bell bel str bl - - YB-GE audible signal (bell) (P)
carriage_return cr str cr - - YBCGE carriage return (P*) (P*)
@@ -388,6 +421,10 @@ key_ctab kctab str kt KEY_CTAB 0525 -B-G-* clear-tab key
key_dc kdch1 str kD KEY_DC 0512 YB-G- delete-character key
key_dl kdl1 str kL KEY_DL 0510 -B-G-* delete-line key
key_down kcud1 str kd KEY_DOWN 0402 YBCGE down-arrow key
+#%.TE
+#%.TS
+#%center;
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
key_eic krmir str kM KEY_EIC 0514 -B-G-* sent by rmir or smir in insert mode
key_eol kel str kE KEY_EOL 0517 -B-G-* clear-to-end-of-line key
key_eos ked str kS KEY_EOS 0516 -B-G-* clear-to-end-of-screen key
@@ -450,6 +487,10 @@ prtr_on mc5 str po - - -B-G-* turn on printer
repeat_char rep str rp - - YB-GE repeat char #1 #2 times (P*)
reset_1string rs1 str r1 - - -B--- reset string
reset_2string rs2 str r2 - - -B--- reset string
+#%.TE
+#%.TS
+#%center;
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
reset_3string rs3 str r3 - - -B--- reset string
reset_file rf str rf - - -B--- name of reset file
restore_cursor rc str rc - - YBCG- restore cursor to position of last save_cursor
@@ -598,6 +639,10 @@ key_f39 kf39 str FT KEY_F(39) - ----E F39 function key
key_f40 kf40 str FU KEY_F(40) - ----E F40 function key
key_f41 kf41 str FV KEY_F(41) - ----E F41 function key
key_f42 kf42 str FW KEY_F(42) - ----E F42 function key
+#%.TE
+#%.TS
+#%center;
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
key_f43 kf43 str FX KEY_F(43) - ----E F43 function key
key_f44 kf44 str FY KEY_F(44) - ----E F44 function key
key_f45 kf45 str FZ KEY_F(45) - ----E F45 function key
@@ -671,6 +716,10 @@ key_resume kres str &5 KEY_RESUME 0570 ----- resume key
key_save ksav str &6 KEY_SAVE 0571 ----- save key
key_suspend kspd str &7 KEY_SUSPEND 0627 ----- suspend key
key_undo kund str &8 KEY_UNDO 0630 ----- undo key
+#%.TE
+#%.TS
+#%center;
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
key_sbeg kBEG str &9 KEY_SBEG 0572 ----- shifted begin key
key_scancel kCAN str &0 KEY_SCANCEL 0573 ----- shifted cancel key
key_scommand kCMD str *1 KEY_SCOMMAND 0574 ----- shifted command key
@@ -703,7 +752,7 @@ key_sundo kUND str !3 KEY_SUNDO 0626 ----- shifted undo key
req_for_input rfi str RF - - ----- send next input char (for ptys)
clr_bol el1 str cb - - ----- Clear to beginning of line
clear_margins mgc str MC - - ----- clear right and left soft margins
-set_left_margin smgl str ML - - ----- set left soft margin at current column. See smgl. (ML is not in BSD termcap).
+set_left_margin smgl str ML - - ----- set left soft margin at current column (not in BSD \fItermcap\fP)
set_right_margin smgr str MR - - ----- set right soft margin at current column
label_format fln str Lf - - ----- label format
set_clock sclk str SC - - ----- set clock, #1 hrs #2 mins #3 secs
@@ -748,6 +797,10 @@ change_res_horz chr str ZC - - ----- Change horizontal resolution to #1
change_res_vert cvr str ZD - - ----- Change vertical resolution to #1
define_char defc str ZE - - ----- Define a character #1, #2 dots wide, descender #3
enter_doublewide_mode swidm str ZF - - ----- Enter double-wide mode
+#%.TE
+#%.TS
+#%center;
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
enter_draft_quality sdrfq str ZG - - ----- Enter draft-quality mode
enter_italics_mode sitm str ZH - - ----- Enter italic mode
enter_leftward_mode slm str ZI - - ----- Start leftward carriage motion
@@ -793,19 +846,20 @@ superscript_characters supcs str Zv - - ----- List of superscriptable characte
these_cause_cr docr str Zw - - ----- Printing any of these characters causes CR
zero_motion zerom str Zx - - ----- No motion for subsequent character
#%.TE
-#%.ad
-#%
+#%.PP
+#%.
#%The following string capabilities are present in the SVr4.0 term structure,
#%but were originally not documented in the man page.
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw18.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBString name Code\fR
+#%.
+#%.PP
+#%.TS
+#%center;
+#%Lb Cb S Lb
+#%Lb Lb Lb Lb
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
+#%\& Code \&
+#%String Capability Name TI TC Description
+#%_
char_set_names csnm str Zy - - ----- Produce #1'th item from list of character set names
key_mouse kmous str Km KEY_MOUSE 0631 ----- Mouse event has occurred
mouse_info minfo str Mi - - ----- Mouse status information
@@ -842,9 +896,8 @@ pc_term_options pctrm str S6 - - ----- PC terminal options
scancode_escape scesc str S7 - - ----- Escape for scancode emulation
alt_scancode_esc scesa str S8 - - ----- Alternate escape for scancode emulation
#%.TE
-#%.ad
-#%
-#%.in .8i
+#%.PP
+#%.
#%The XSI Curses standard added these hardcopy capabilities.
#%They were used in some post-4.1 versions of System V curses,
#%e.g., Solaris 2.5 and IRIX 6.x.
@@ -853,15 +906,16 @@ alt_scancode_esc scesa str S8 - - ----- Alternate escape for scancode emulatio
#%If your compiled terminfo entries use these,
#%they may not be binary-compatible with System V terminfo
#%entries after SVr4.1; beware!
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw20.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBString name Code\fR
+#%.
+#%.PP
+#%.TS
+#%center;
+#%Lb Cb S Lb
+#%Lb Lb Lb Lb
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
+#%\& Code \&
+#%String Capability Name TI TC Description
+#%_
#enter_horizontal_hl_mode ehhlm str Xh - - ----- Enter horizontal highlight mode
#enter_left_hl_mode elhlm str Xl - - ----- Enter left highlight mode
#enter_low_hl_mode elohlm str Xo - - ----- Enter low highlight mode
@@ -871,7 +925,6 @@ alt_scancode_esc scesa str S8 - - ----- Alternate escape for scancode emulatio
#set_a_attributes sgr1 str sA - - ----- Define second set of video attributes #1-#6
set_pglen_inch slength str YI - - ----- Set page length to #1 hundredth of an inch (some implementations use sL for termcap).
#%.TE
-#%.ad
#
# The magic token below tells the tic compiler-generator code that all the caps
# past it should be ignored (not written out) when dumping terminfo objects. It
@@ -985,7 +1038,7 @@ has_hardware_tabs OTpt bool pt - - YB--- has 8-char tabs invoked with ^I
return_does_clr_eol OTxr bool xr - - YB--- return clears the line
# tek_4025_insert_line OTxx bool xx - - -BC-- Tektronix 4025 insert-line glitch
#
-# mytinfo described this as a termcap capability, but it's not listed in the
+# mytinfo described this as a termcap capability, but it is not listed in the
# 4.4BSD man pages, and not found in the 4.4BSD termcap file. The ncurses
# package, like System V, behaves as though it is always true.
#
diff --git a/include/Caps.hpux11 b/include/Caps.hpux11
index 712a74297f6a..723556fa18f4 100644
--- a/include/Caps.hpux11
+++ b/include/Caps.hpux11
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright 2019,2020 Thomas E. Dickey #
+# Copyright 2019-2023,2024 Thomas E. Dickey #
# Copyright 2002-2015,2016 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -29,7 +29,7 @@
#
# Author: Thomas Dickey
#
-# $Id: Caps.hpux11,v 1.16 2020/10/17 21:30:19 tom Exp $
+# $Id: Caps.hpux11,v 1.26 2024/04/20 21:05:02 tom Exp $
#
# This is an adaptation of ncurses' termcap/terminfo capability table, which
# is designed to align with HPUX 11.x's terminfo.
@@ -48,7 +48,7 @@
#
# Column 1: terminfo variable name
# Column 2: terminfo capability name
-# Column 3: capability type (boolean, numeric, or string)
+# Column 3: capability type (Boolean, numeric, or string)
# Column 4: termcap capability name
# Column 5: KEY_xxx name, if any, `-' otherwise
# Column 6: value for KEY_xxx name, if any, `-' otherwise
@@ -58,7 +58,7 @@
#
# The codes following [Y-] in column 7 describe the versions of termcap which
# use the given capability. This information is not used by the curses library
-# proper; rather, it's there to help the terminfo maintainer avoid emitting
+# proper; rather, it is there to help the terminfo maintainer avoid emitting
# termcap entry translations that are more than 1023 bytes long (and tank a
# lot of old termcap-using programs). The codes read as follows:
# B = mentioned in the BSD man page for 4.4BSD curses
@@ -98,8 +98,8 @@
# 3. List it in the standard table. You almost certainly do *not* want
# to do this -- the capabilities in that one, and their order, have been
# carefully chosen to be SVr4-binary-compatible when they're written out
-# as a terminfo object, and breaking this would be bad. It's up to the ncurses
-# library what to do with the terminfo data after it's read in.
+# as a terminfo object, and breaking this would be bad. It is up to the ncurses
+# library what to do with the terminfo data after it is read in.
#
# 4. List it in the aliases table with an IGNORE target field. If you
# do this, the capability will be ignored on input (though the user will
@@ -108,7 +108,7 @@
# 5. List it in the extensions table. If you do this, the compiler will
# silently accept the capability, but the curses library proper will never
# see it (because it won't be written out as part of the terminfo object
-# format). It's up to you what you have the compiler do with it.
+# format). It is up to you what you have the compiler do with it.
#
# There are two opposite reasons to choose option 5. One is when you want
# to eat the capability silently and discard it when doing translations
@@ -153,67 +153,103 @@
# to buy space for non-essentials Emacs is still using. Capabilities high
# on that hit list: rc, sc, uc.
#
+# FORMATTING THE TABLES
+#
+# We manually specify a (minimum) column width for the capability name
+# and terminfo code columns in the tables to achieve a consistent
+# arrangement; as used here, tbl(1) cannot know the width required by
+# one table's data while formatting another's.
+#
+# The longest capability names (C variables) are
+# "enter_near_letter_quality" and "bit_image_carriage_return" (tied at
+# 25n), and the longest terminfo code is "setcolor" (8n).
+#
+# The tables are a tight fit on traditional man(7) implementations that
+# use a line length of 65n, and the "Description" column has little room
+# within which the formatter can make breaking or adjustment decisions.
+# Words like "micro_..._address" and "parm_..._micro" don't break.
+# Reducing the inter-column gaps to 2 ens gives them enough room. --GBR
+#
#############################################################################
#
# STANDARD CAPABILITIES
#
-#%The following is a complete table of the capabilities included in a
-#%terminfo description block and available to terminfo-using code. In each
-#%line of the table,
-#%
-#%The \fBvariable\fR is the name by which the programmer (at the terminfo level)
-#%accesses the capability.
-#%
-#%The \fBcapname\fR is the short name used in the text of the database,
-#%and is used by a person updating the database.
-#%Whenever possible, capnames are chosen to be the same as or similar to
-#%the ANSI X3.64-1979 standard (now superseded by ECMA-48, which uses
-#%identical or very similar names). Semantics are also intended to match
-#%those of the specification.
-#%
-#%The termcap code is the old
-#%.B termcap
-#%capability name (some capabilities are new, and have names which termcap
-#%did not originate).
-#%.P
-#%Capability names have no hard length limit, but an informal limit of 5
-#%characters has been adopted to keep them short and to allow the tabs in
-#%the source file
-#%.B Caps
+#%Tables of capabilities
+#%.I \%ncurses
+#%recognizes in a
+#%.I \%term\%info
+#%terminal type description and available to
+#%.IR \%term\%info -using
+#%code follow.
+#%.bP
+#%The capability name identifies the symbol by which the programmer
+#%using the
+#%.I \%term\%info
+#%API accesses the capability.
+#%.bP
+#%The TI
+#%.RI ( \%term\%info )
+#%code is the short name used by a person composing or updating a
+#%terminal type entry.
+#%.IP
+#%Whenever possible,
+#%these codes are the same as or similar to those of the ANSI X3.64-1979
+#%standard
+#%(now superseded by ECMA-48,
+#%which uses identical or very similar names).
+#%Semantics are also intended to match those of the specification.
+#%.IP
+#%.I \%term\%info
+#%codes have no hard length limit,
+#%but
+#%.I \%ncurses
+#%maintains an informal one of 5 characters to keep them short and to
+#%allow the tabs in the source file
+#%.I Caps
#%to line up nicely.
-#%
-#%Finally, the description field attempts to convey the semantics of the
-#%capability. You may find some codes in the description field:
-#%.TP
-#%(P)
-#%indicates that padding may be specified
+#%(Some standard codes exceed this limit regardless.)
+#%.bP
+#%The TC
+#%.RI ( termcap )
+#%code is that used by the corresponding API of
+#%.IR \%ncurses .
+#%(Some capabilities are new,
+#%and have names that BSD
+#%.I termcap
+#%did not originate.)
+#%.bP
+#%The description field attempts to convey the capability's semantics.
+#%.PP
+#%The description field employs a handful of notations.
#%.TP
-#%#[1-9]
-#%in the description field indicates that the string is passed
-#%through \fBtparm\fP(3X) with parameters as given (#\fIi\fP).
-#%.IP
-#%If no parameters are listed in the description,
-#%passing the string through \fBtparm\fP(3X) may give unexpected results,
-#%e.g., if it contains percent (%%) signs.
+#%.B (P)
+#%indicates that padding may be specified.
#%.TP
-#%(P*)
-#%indicates that padding may vary in proportion to the number of
-#%lines affected
+#%.B (P*)
+#%indicates that padding may vary in proportion to the number of output
+#%lines affected.
#%.TP
-#%(#\d\fIi\fP\u)
-#%indicates the \fIi\fP\uth\d parameter.
-#%
+#%.BI # i
+#%indicates the
+#%.IR i th
+#%parameter of a string capability;
+#%the programmer should pass the string to \fB\%tparm\fP(3X) with the
+#%parameters listed.
+#%.IP
+#%If the description lists no parameters,
+#%passing the string to \fB\%tparm\fP(3X) may produce unexpected
+#%behavior,
+#%for instance if the string contains percent signs.
+#%.
#%.PP
-#% These are the boolean capabilities:
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw20.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBBooleans name Code\fR
+#%.TS
+#%center;
+#%Lb Cb S Lb
+#%Lb Lb Lb Lb
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
+#%\& Code \&
+#%Boolean Capability Name TI TC Description
+#%_
auto_left_margin bw bool bw - - YB-G- cub1 wraps from column 0 to last column
auto_right_margin am bool am - - YBCGE terminal has automatic margins
no_esc_ctlc xsb bool xb - - YBCG- beehive (f1=escape, f2=ctrl C)
@@ -235,7 +271,7 @@ dest_tabs_magic_smso xt bool xt - - YBCGE tabs destructive, magic so char (t106
tilde_glitch hz bool hz - - YB-GE cannot print ~'s (Hazeltine)
transparent_underline ul bool ul - - YBCGE underline character overstrikes
xon_xoff xon bool xo - - YB--- terminal uses xon/xoff handshaking
-# end booleans for HPUX 9, 10 (non-color curses)
+# end Booleans for HPUX 9, 10 (non-color curses)
needs_xon_xoff nxon bool nx - - ----- padding will not work, xon/xoff required
prtr_silent mc5i bool 5i - - ----- printer will not echo on screen
hard_cursor chts bool HC - - ----- cursor is hard to see
@@ -253,18 +289,16 @@ semi_auto_right_margin sam bool YE - - ----- printing in last column causes cr
cpi_changes_res cpix bool YF - - ----- changing character pitch changes resolution
lpi_changes_res lpix bool YG - - ----- changing line pitch changes resolution
#%.TE
-#%.ad
-#%
-#%These are the numeric capabilities:
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw20.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBNumeric name Code\fR
+#%.PP
+#%.
+#%.TS
+#%center;
+#%Lb Cb S Lb
+#%Lb Lb Lb Lb
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
+#%\& Code \&
+#%Numeric Capability Name TI TC Description
+#%_
columns cols num co - - YBCGE number of columns in a line
init_tabs it num it - - YB-G- tabs initially every # spaces
lines lines num li - - YBCGE number of lines on screen or page
@@ -284,20 +318,21 @@ max_colors colors num Co - - ----- maximum number of colors on screen
max_pairs pairs num pa - - ----- maximum number of color-pairs on the screen
no_color_video ncv num NC - - ----- video attributes that cannot be used with colors
#%.TE
-#%.ad
-#%
+#%.PP
+#%.
#%The following numeric capabilities are present in the SVr4.0 term structure,
-#%but are not yet documented in the man page. They came in with SVr4's
-#%printer support.
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw20.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBNumeric name Code\fR
+#%but are not yet documented in the man page.
+#%They came in with SVr4's printer support.
+#%.
+#%.PP
+#%.TS
+#%center;
+#%Lb Cb S Lb
+#%Lb Lb Lb Lb
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
+#%\& Code \&
+#%Numeric Capability Name TI TC Description
+#%_
buffer_capacity bufsz num Ya - - ----- numbers of bytes buffered before printing
dot_vert_spacing spinv num Yb - - ----- spacing of pins vertically in pins per inch
dot_horz_spacing spinh num Yc - - ----- spacing of dots horizontally in dots per inch
@@ -316,18 +351,16 @@ buttons btns num BT - - ----- number of buttons on mouse
bit_image_entwining bitwin num Yo - - ----- number of passes for each bit-image row
bit_image_type bitype num Yp - - ----- type of bit-image device
#%.TE
-#%.ad
-#%
-#%These are the string capabilities:
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw20.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBString name Code\fR
+#%.PP
+#%.
+#%.TS
+#%center;
+#%Lb Cb S Lb
+#%Lb Lb Lb Lb
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
+#%\& Code \&
+#%String Capability Name TI TC Description
+#%_
back_tab cbt str bt - - YBCGE back tab (P)
bell bel str bl - - YB-GE audible signal (bell) (P)
carriage_return cr str cr - - YBCGE carriage return (P*) (P*)
@@ -390,6 +423,10 @@ key_ctab kctab str kt KEY_CTAB 0525 -B-G-* clear-tab key
key_dc kdch1 str kD KEY_DC 0512 YB-G- delete-character key
key_dl kdl1 str kL KEY_DL 0510 -B-G-* delete-line key
key_down kcud1 str kd KEY_DOWN 0402 YBCGE down-arrow key
+#%.TE
+#%.TS
+#%center;
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
key_eic krmir str kM KEY_EIC 0514 -B-G-* sent by rmir or smir in insert mode
key_eol kel str kE KEY_EOL 0517 -B-G-* clear-to-end-of-line key
key_eos ked str kS KEY_EOS 0516 -B-G-* clear-to-end-of-screen key
@@ -452,6 +489,10 @@ prtr_on mc5 str po - - -B-G-* turn on printer
repeat_char rep str rp - - YB-GE repeat char #1 #2 times (P*)
reset_1string rs1 str r1 - - -B--- reset string
reset_2string rs2 str r2 - - -B--- reset string
+#%.TE
+#%.TS
+#%center;
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
reset_3string rs3 str r3 - - -B--- reset string
reset_file rf str rf - - -B--- name of reset file
restore_cursor rc str rc - - YBCG- restore cursor to position of last save_cursor
@@ -517,6 +558,10 @@ key_f39 kf39 str FT KEY_F(39) - ----E F39 function key
key_f40 kf40 str FU KEY_F(40) - ----E F40 function key
key_f41 kf41 str FV KEY_F(41) - ----E F41 function key
key_f42 kf42 str FW KEY_F(42) - ----E F42 function key
+#%.TE
+#%.TS
+#%center;
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
key_f43 kf43 str FX KEY_F(43) - ----E F43 function key
key_f44 kf44 str FY KEY_F(44) - ----E F44 function key
key_f45 kf45 str FZ KEY_F(45) - ----E F45 function key
@@ -577,6 +622,10 @@ key_resume kres str &5 KEY_RESUME 0570 ----- resume key
key_save ksav str &6 KEY_SAVE 0571 ----- save key
key_suspend kspd str &7 KEY_SUSPEND 0627 ----- suspend key
key_undo kund str &8 KEY_UNDO 0630 ----- undo key
+#%.TE
+#%.TS
+#%center;
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
key_sbeg kBEG str &9 KEY_SBEG 0572 ----- shifted begin key
key_scancel kCAN str &0 KEY_SCANCEL 0573 ----- shifted cancel key
key_scommand kCMD str *1 KEY_SCOMMAND 0574 ----- shifted command key
@@ -609,7 +658,7 @@ key_sundo kUND str !3 KEY_SUNDO 0626 ----- shifted undo key
req_for_input rfi str RF - - ----- send next input char (for ptys)
clr_bol el1 str cb - - ----- Clear to beginning of line
clear_margins mgc str MC - - ----- clear right and left soft margins
-set_left_margin smgl str ML - - ----- set left soft margin at current column. See smgl. (ML is not in BSD termcap).
+set_left_margin smgl str ML - - ----- set left soft margin at current column (not in BSD \fItermcap\fP)
set_right_margin smgr str MR - - ----- set right soft margin at current column
label_format fln str Lf - - ----- label format
set_clock sclk str SC - - ----- set clock, #1 hrs #2 mins #3 secs
@@ -654,6 +703,10 @@ change_res_horz chr str ZC - - ----- Change horizontal resolution to #1
change_res_vert cvr str ZD - - ----- Change vertical resolution to #1
define_char defc str ZE - - ----- Define a character #1, #2 dots wide, descender #3
enter_doublewide_mode swidm str ZF - - ----- Enter double-wide mode
+#%.TE
+#%.TS
+#%center;
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
enter_draft_quality sdrfq str ZG - - ----- Enter draft-quality mode
enter_italics_mode sitm str ZH - - ----- Enter italic mode
enter_leftward_mode slm str ZI - - ----- Start leftward carriage motion
@@ -699,19 +752,20 @@ superscript_characters supcs str Zv - - ----- List of superscriptable characte
these_cause_cr docr str Zw - - ----- Printing any of these characters causes CR
zero_motion zerom str Zx - - ----- No motion for subsequent character
#%.TE
-#%.ad
-#%
+#%.PP
+#%.
#%The following string capabilities are present in the SVr4.0 term structure,
#%but were originally not documented in the man page.
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw18.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBString name Code\fR
+#%.
+#%.PP
+#%.TS
+#%center;
+#%Lb Cb S Lb
+#%Lb Lb Lb Lb
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
+#%\& Code \&
+#%String Capability Name TI TC Description
+#%_
char_set_names csnm str Zy - - ----- Produce #1'th item from list of character set names
key_mouse kmous str Km KEY_MOUSE 0631 ----- Mouse event has occurred
mouse_info minfo str Mi - - ----- Mouse status information
@@ -748,9 +802,8 @@ pc_term_options pctrm str S6 - - ----- PC terminal options
scancode_escape scesc str S7 - - ----- Escape for scancode emulation
alt_scancode_esc scesa str S8 - - ----- Alternate escape for scancode emulation
#%.TE
-#%.ad
-#%
-#%.in .8i
+#%.PP
+#%.
#%The XSI Curses standard added these hardcopy capabilities.
#%They were used in some post-4.1 versions of System V curses,
#%e.g., Solaris 2.5 and IRIX 6.x.
@@ -759,17 +812,18 @@ alt_scancode_esc scesa str S8 - - ----- Alternate escape for scancode emulatio
#%If your compiled terminfo entries use these,
#%they may not be binary-compatible with System V terminfo
#%entries after SVr4.1; beware!
-#%
+#%.
#%AIX and Solaris do not provide termcap names for these; HPUX does.
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw20.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBString name Code\fR
+#%.
+#%.PP
+#%.TS
+#%center;
+#%Lb Cb S Lb
+#%Lb Lb Lb Lb
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
+#%\& Code \&
+#%String Capability Name TI TC Description
+#%_
set_pglen_inch slength str YI - - ----- Set page length to #1 hundredth of an inch (some implementations use sL for termcap).
enter_horizontal_hl_mode ehhlm str Q1 - - ----- Enter horizontal highlight mode
enter_left_hl_mode elhlm str Q2 - - ----- Enter left highlight mode
@@ -785,7 +839,6 @@ exit_right_hl_mode rmrhlm str Qb - - ----K Exit right highlight mode
exit_top_hl_mode rmthlm str Qc - - ----K Exit top highlight mode
exit_vertical_hl_mode rmvhlm str Qd - - ----K Exit vertical highlight mode
#%.TE
-#%.ad
#
# The magic token below tells the tic compiler-generator code that all the caps
# past it should be ignored (not written out) when dumping terminfo objects. It
@@ -899,7 +952,7 @@ has_hardware_tabs OTpt bool pt - - YB--- has 8-char tabs invoked with ^I
return_does_clr_eol OTxr bool xr - - YB--- return clears the line
# tek_4025_insert_line OTxx bool xx - - -BC-- Tektronix 4025 insert-line glitch
#
-# mytinfo described this as a termcap capability, but it's not listed in the
+# mytinfo described this as a termcap capability, but it is not listed in the
# 4.4BSD man pages, and not found in the 4.4BSD termcap file. The ncurses
# package, like System V, behaves as though it is always true.
#
diff --git a/include/Caps.keys b/include/Caps.keys
index 018f68474fda..6f8a84e3455f 100644
--- a/include/Caps.keys
+++ b/include/Caps.keys
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright 2019,2020 Thomas E. Dickey #
+# Copyright 2019-2023,2024 Thomas E. Dickey #
# Copyright 2001-2015,2016 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -30,7 +30,7 @@
# Author: Thomas Dickey
# and: Ilya Zakharevich
#
-# $Id: Caps.keys,v 1.15 2020/10/17 21:30:19 tom Exp $
+# $Id: Caps.keys,v 1.25 2024/04/20 21:05:02 tom Exp $
#
# This is an adaptation of ncurses' termcap/terminfo capability table, which
# is illustrates an experimental extension to describe alt-, shift- and
@@ -50,7 +50,7 @@
#
# Column 1: terminfo variable name
# Column 2: terminfo capability name
-# Column 3: capability type (boolean, numeric, or string)
+# Column 3: capability type (Boolean, numeric, or string)
# Column 4: termcap capability name
# Column 5: KEY_xxx name, if any, `-' otherwise
# Column 6: value for KEY_xxx name, if any, `-' otherwise
@@ -60,7 +60,7 @@
#
# The codes following [Y-] in column 7 describe the versions of termcap which
# use the given capability. This information is not used by the curses library
-# proper; rather, it's there to help the terminfo maintainer avoid emitting
+# proper; rather, it is there to help the terminfo maintainer avoid emitting
# termcap entry translations that are more than 1023 bytes long (and tank a
# lot of old termcap-using programs). The codes read as follows:
# B = mentioned in the BSD man page for 4.4BSD curses
@@ -100,8 +100,8 @@
# 3. List it in the standard table. You almost certainly do *not* want
# to do this -- the capabilities in that one, and their order, have been
# carefully chosen to be SVr4-binary-compatible when they're written out
-# as a terminfo object, and breaking this would be bad. It's up to the ncurses
-# library what to do with the terminfo data after it's read in.
+# as a terminfo object, and breaking this would be bad. It is up to the ncurses
+# library what to do with the terminfo data after it is read in.
#
# 4. List it in the aliases table with an IGNORE target field. If you
# do this, the capability will be ignored on input (though the user will
@@ -110,7 +110,7 @@
# 5. List it in the extensions table. If you do this, the compiler will
# silently accept the capability, but the curses library proper will never
# see it (because it won't be written out as part of the terminfo object
-# format). It's up to you what you have the compiler do with it.
+# format). It is up to you what you have the compiler do with it.
#
# There are two opposite reasons to choose option 5. One is when you want
# to eat the capability silently and discard it when doing translations
@@ -155,67 +155,104 @@
# to buy space for non-essentials Emacs is still using. Capabilities high
# on that hit list: rc, sc, uc.
#
+# FORMATTING THE TABLES
+#
+# We manually specify a (minimum) column width for the capability name
+# and terminfo code columns in the tables to achieve a consistent
+# arrangement; as used here, tbl(1) cannot know the width required by
+# one table's data while formatting another's.
+#
+# The longest capability names (C variables) are
+# "enter_near_letter_quality" and "bit_image_carriage_return" (tied at
+# 25n), and the longest terminfo codes are "setcolor", "kcdelete",
+# "kcinsert", "kadelete", and "kcinsert" (8n).
+#
+# The tables are a tight fit on traditional man(7) implementations that
+# use a line length of 65n, and the "Description" column has little room
+# within which the formatter can make breaking or adjustment decisions.
+# Words like "micro_..._address" and "parm_..._micro" don't break.
+# Reducing the inter-column gaps to 2 ens gives them enough room. --GBR
+#
#############################################################################
#
# STANDARD CAPABILITIES
#
-#%The following is a complete table of the capabilities included in a
-#%terminfo description block and available to terminfo-using code. In each
-#%line of the table,
-#%
-#%The \fBvariable\fR is the name by which the programmer (at the terminfo level)
-#%accesses the capability.
-#%
-#%The \fBcapname\fR is the short name used in the text of the database,
-#%and is used by a person updating the database.
-#%Whenever possible, capnames are chosen to be the same as or similar to
-#%the ANSI X3.64-1979 standard (now superseded by ECMA-48, which uses
-#%identical or very similar names). Semantics are also intended to match
-#%those of the specification.
-#%
-#%The termcap code is the old
-#%.B termcap
-#%capability name (some capabilities are new, and have names which termcap
-#%did not originate).
-#%.P
-#%Capability names have no hard length limit, but an informal limit of 5
-#%characters has been adopted to keep them short and to allow the tabs in
-#%the source file
-#%.B Caps
+#%Tables of capabilities
+#%.I \%ncurses
+#%recognizes in a
+#%.I \%term\%info
+#%terminal type description and available to
+#%.IR \%term\%info -using
+#%code follow.
+#%.bP
+#%The capability name identifies the symbol by which the programmer
+#%using the
+#%.I \%term\%info
+#%API accesses the capability.
+#%.bP
+#%The TI
+#%.RI ( \%term\%info )
+#%code is the short name used by a person composing or updating a
+#%terminal type entry.
+#%.IP
+#%Whenever possible,
+#%these codes are the same as or similar to those of the ANSI X3.64-1979
+#%standard
+#%(now superseded by ECMA-48,
+#%which uses identical or very similar names).
+#%Semantics are also intended to match those of the specification.
+#%.IP
+#%.I \%term\%info
+#%codes have no hard length limit,
+#%but
+#%.I \%ncurses
+#%maintains an informal one of 5 characters to keep them short and to
+#%allow the tabs in the source file
+#%.I Caps
#%to line up nicely.
-#%
-#%Finally, the description field attempts to convey the semantics of the
-#%capability. You may find some codes in the description field:
-#%.TP
-#%(P)
-#%indicates that padding may be specified
+#%(Some standard codes exceed this limit regardless.)
+#%.bP
+#%The TC
+#%.RI ( termcap )
+#%code is that used by the corresponding API of
+#%.IR \%ncurses .
+#%(Some capabilities are new,
+#%and have names that BSD
+#%.I termcap
+#%did not originate.)
+#%.bP
+#%The description field attempts to convey the capability's semantics.
+#%.PP
+#%The description field employs a handful of notations.
#%.TP
-#%#[1-9]
-#%in the description field indicates that the string is passed
-#%through \fBtparm\fP(3X) with parameters as given (#\fIi\fP).
-#%.IP
-#%If no parameters are listed in the description,
-#%passing the string through \fBtparm\fP(3X) may give unexpected results,
-#%e.g., if it contains percent (%%) signs.
+#%.B (P)
+#%indicates that padding may be specified.
#%.TP
-#%(P*)
-#%indicates that padding may vary in proportion to the number of
-#%lines affected
+#%.B (P*)
+#%indicates that padding may vary in proportion to the number of output
+#%lines affected.
#%.TP
-#%(#\d\fIi\fP\u)
-#%indicates the \fIi\fP\uth\d parameter.
-#%
+#%.BI # i
+#%indicates the
+#%.IR i th
+#%parameter of a string capability;
+#%the programmer should pass the string to \fB\%tparm\fP(3X) with the
+#%parameters listed.
+#%.IP
+#%If the description lists no parameters,
+#%passing the string to \fB\%tparm\fP(3X) may produce unexpected
+#%behavior,
+#%for instance if the string contains percent signs.
+#%.
#%.PP
-#% These are the boolean capabilities:
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw20.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBBooleans name Code\fR
+#%.TS
+#%center;
+#%Lb Cb S Lb
+#%Lb Lb Lb Lb
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
+#%\& Code \&
+#%Boolean Capability Name TI TC Description
+#%_
auto_left_margin bw bool bw - - YB-G- cub1 wraps from column 0 to last column
auto_right_margin am bool am - - YBCGE terminal has automatic margins
no_esc_ctlc xsb bool xb - - YBCG- beehive (f1=escape, f2=ctrl C)
@@ -254,18 +291,16 @@ semi_auto_right_margin sam bool YE - - ----- printing in last column causes cr
cpi_changes_res cpix bool YF - - ----- changing character pitch changes resolution
lpi_changes_res lpix bool YG - - ----- changing line pitch changes resolution
#%.TE
-#%.ad
-#%
-#%These are the numeric capabilities:
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw20.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBNumeric name Code\fR
+#%.PP
+#%.
+#%.TS
+#%center;
+#%Lb Cb S Lb
+#%Lb Lb Lb Lb
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
+#%\& Code \&
+#%Numeric Capability Name TI TC Description
+#%_
columns cols num co - - YBCGE number of columns in a line
init_tabs it num it - - YB-G- tabs initially every # spaces
lines lines num li - - YBCGE number of lines on screen or page
@@ -284,20 +319,21 @@ max_colors colors num Co - - ----- maximum number of colors on screen
max_pairs pairs num pa - - ----- maximum number of color-pairs on the screen
no_color_video ncv num NC - - ----- video attributes that cannot be used with colors
#%.TE
-#%.ad
-#%
+#%.PP
+#%.
#%The following numeric capabilities are present in the SVr4.0 term structure,
-#%but are not yet documented in the man page. They came in with SVr4's
-#%printer support.
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw20.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBNumeric name Code\fR
+#%but are not yet documented in the man page.
+#%They came in with SVr4's printer support.
+#%.
+#%.PP
+#%.TS
+#%center;
+#%Lb Cb S Lb
+#%Lb Lb Lb Lb
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
+#%\& Code \&
+#%Numeric Capability Name TI TC Description
+#%_
buffer_capacity bufsz num Ya - - ----- numbers of bytes buffered before printing
dot_vert_spacing spinv num Yb - - ----- spacing of pins vertically in pins per inch
dot_horz_spacing spinh num Yc - - ----- spacing of dots horizontally in dots per inch
@@ -316,18 +352,16 @@ buttons btns num BT - - ----- number of buttons on mouse
bit_image_entwining bitwin num Yo - - ----- number of passes for each bit-image row
bit_image_type bitype num Yp - - ----- type of bit-image device
#%.TE
-#%.ad
-#%
-#%These are the string capabilities:
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw20.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBString name Code\fR
+#%.PP
+#%.
+#%.TS
+#%center;
+#%Lb Cb S Lb
+#%Lb Lb Lb Lb
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
+#%\& Code \&
+#%String Capability Name TI TC Description
+#%_
back_tab cbt str bt - - YBCGE back tab (P)
bell bel str bl - - YB-GE audible signal (bell) (P)
carriage_return cr str cr - - YBCGE carriage return (P*) (P*)
@@ -390,6 +424,10 @@ key_ctab kctab str kt KEY_CTAB 0525 -B-G-* clear-tab key
key_dc kdch1 str kD KEY_DC 0512 YB-G- delete-character key
key_dl kdl1 str kL KEY_DL 0510 -B-G-* delete-line key
key_down kcud1 str kd KEY_DOWN 0402 YBCGE down-arrow key
+#%.TE
+#%.TS
+#%center;
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
key_eic krmir str kM KEY_EIC 0514 -B-G-* sent by rmir or smir in insert mode
key_eol kel str kE KEY_EOL 0517 -B-G-* clear-to-end-of-line key
key_eos ked str kS KEY_EOS 0516 -B-G-* clear-to-end-of-screen key
@@ -452,6 +490,10 @@ prtr_on mc5 str po - - -B-G-* turn on printer
repeat_char rep str rp - - YB-GE repeat char #1 #2 times (P*)
reset_1string rs1 str r1 - - -B--- reset string
reset_2string rs2 str r2 - - -B--- reset string
+#%.TE
+#%.TS
+#%center;
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
reset_3string rs3 str r3 - - -B--- reset string
reset_file rf str rf - - -B--- name of reset file
restore_cursor rc str rc - - YBCG- restore cursor to position of last save_cursor
@@ -518,6 +560,10 @@ key_resume kres str &5 KEY_RESUME 0570 ----- resume key
key_save ksav str &6 KEY_SAVE 0571 ----- save key
key_suspend kspd str &7 KEY_SUSPEND 0627 ----- suspend key
key_undo kund str &8 KEY_UNDO 0630 ----- undo key
+#%.TE
+#%.TS
+#%center;
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
key_sbeg kBEG str &9 KEY_SBEG 0572 ----- shifted begin key
key_scancel kCAN str &0 KEY_SCANCEL 0573 ----- shifted cancel key
key_scommand kCMD str *1 KEY_SCOMMAND 0574 ----- shifted command key
@@ -580,6 +626,10 @@ key_f39 kf39 str FT KEY_F(39) - ----E F39 function key
key_f40 kf40 str FU KEY_F(40) - ----E F40 function key
key_f41 kf41 str FV KEY_F(41) - ----E F41 function key
key_f42 kf42 str FW KEY_F(42) - ----E F42 function key
+#%.TE
+#%.TS
+#%center;
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
key_f43 kf43 str FX KEY_F(43) - ----E F43 function key
key_f44 kf44 str FY KEY_F(44) - ----E F44 function key
key_f45 kf45 str FZ KEY_F(45) - ----E F45 function key
@@ -603,7 +653,7 @@ key_f62 kf62 str Fq KEY_F(62) - ----E F62 function key
key_f63 kf63 str Fr KEY_F(63) - ----E F63 function key
clr_bol el1 str cb - - ----- Clear to beginning of line
clear_margins mgc str MC - - ----- clear right and left soft margins
-set_left_margin smgl str ML - - ----- set left soft margin at current column. See smgl. (ML is not in BSD termcap).
+set_left_margin smgl str ML - - ----- set left soft margin at current column (not in BSD \fItermcap\fP)
set_right_margin smgr str MR - - ----- set right soft margin at current column
label_format fln str Lf - - ----- label format
set_clock sclk str SC - - ----- set clock, #1 hrs #2 mins #3 secs
@@ -736,6 +786,10 @@ change_res_horz chr str ZC - - ----- Change horizontal resolution to #1
change_res_vert cvr str ZD - - ----- Change vertical resolution to #1
define_char defc str ZE - - ----- Define a character #1, #2 dots wide, descender #3
enter_doublewide_mode swidm str ZF - - ----- Enter double-wide mode
+#%.TE
+#%.TS
+#%center;
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
enter_draft_quality sdrfq str ZG - - ----- Enter draft-quality mode
enter_italics_mode sitm str ZH - - ----- Enter italic mode
enter_leftward_mode slm str ZI - - ----- Start leftward carriage motion
@@ -781,19 +835,20 @@ superscript_characters supcs str Zv - - ----- List of superscriptable characte
these_cause_cr docr str Zw - - ----- Printing any of these characters causes CR
zero_motion zerom str Zx - - ----- No motion for subsequent character
#%.TE
-#%.ad
-#%
+#%.PP
+#%.
#%The following string capabilities are present in the SVr4.0 term structure,
#%but were originally not documented in the man page.
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw18.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBString name Code\fR
+#%.
+#%.PP
+#%.TS
+#%center;
+#%Lb Cb S Lb
+#%Lb Lb Lb Lb
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
+#%\& Code \&
+#%String Capability Name TI TC Description
+#%_
char_set_names csnm str Zy - - ----- Produce #1'th item from list of character set names
key_mouse kmous str Km KEY_MOUSE 0631 ----- Mouse event has occurred
mouse_info minfo str Mi - - ----- Mouse status information
@@ -830,9 +885,8 @@ pc_term_options pctrm str S6 - - ----- PC terminal options
scancode_escape scesc str S7 - - ----- Escape for scancode emulation
alt_scancode_esc scesa str S8 - - ----- Alternate escape for scancode emulation
#%.TE
-#%.ad
-#%
-#%.in .8i
+#%.PP
+#%.
#%The XSI Curses standard added these hardcopy capabilities.
#%They were used in some post-4.1 versions of System V curses,
#%e.g., Solaris 2.5 and IRIX 6.x.
@@ -841,15 +895,16 @@ alt_scancode_esc scesa str S8 - - ----- Alternate escape for scancode emulatio
#%If your compiled terminfo entries use these,
#%they may not be binary-compatible with System V terminfo
#%entries after SVr4.1; beware!
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw20.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBString name Code\fR
+#%.
+#%.PP
+#%.TS
+#%center;
+#%Lb Cb S Lb
+#%Lb Lb Lb Lb
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
+#%\& Code \&
+#%String Capability Name TI TC Description
+#%_
enter_horizontal_hl_mode ehhlm str Xh - - ----- Enter horizontal highlight mode
enter_left_hl_mode elhlm str Xl - - ----- Enter left highlight mode
enter_low_hl_mode elohlm str Xo - - ----- Enter low highlight mode
@@ -859,7 +914,6 @@ enter_vertical_hl_mode evhlm str Xv - - ----- Enter vertical highlight mode
set_a_attributes sgr1 str sA - - ----- Define second set of video attributes #1-#6
set_pglen_inch slength str YI - - ----- Set page length to #1 hundredth of an inch (some implementations use sL for termcap).
#%.TE
-#%.ad
#
# The magic token below tells the tic compiler-generator code that all the caps
# past it should be ignored (not written out) when dumping terminfo objects. It
@@ -973,7 +1027,7 @@ has_hardware_tabs OTpt bool pt - - YB--- has 8-char tabs invoked with ^I
return_does_clr_eol OTxr bool xr - - YB--- return clears the line
# tek_4025_insert_line OTxx bool xx - - -BC-- Tektronix 4025 insert-line glitch
#
-# mytinfo described this as a termcap capability, but it's not listed in the
+# mytinfo described this as a termcap capability, but it is not listed in the
# 4.4BSD man pages, and not found in the 4.4BSD termcap file. The ncurses
# package, like System V, behaves as though it is always true.
#
diff --git a/include/Caps.osf1r5 b/include/Caps.osf1r5
index 8a2955486ee9..ece14aef2ea7 100644
--- a/include/Caps.osf1r5
+++ b/include/Caps.osf1r5
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright 2019,2020 Thomas E. Dickey #
+# Copyright 2019-2023,2024 Thomas E. Dickey #
# Copyright 2002-2015,2016 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -29,7 +29,7 @@
#
# Author: Thomas Dickey
#
-# $Id: Caps.osf1r5,v 1.14 2020/10/17 21:30:19 tom Exp $
+# $Id: Caps.osf1r5,v 1.24 2024/04/20 21:05:02 tom Exp $
#
# This is an adaptation of ncurses' termcap/terminfo capability table, which
# is designed to align with OSF/1 version 5 (Tru64) terminfo.
@@ -48,7 +48,7 @@
#
# Column 1: terminfo variable name
# Column 2: terminfo capability name
-# Column 3: capability type (boolean, numeric, or string)
+# Column 3: capability type (Boolean, numeric, or string)
# Column 4: termcap capability name
# Column 5: KEY_xxx name, if any, `-' otherwise
# Column 6: value for KEY_xxx name, if any, `-' otherwise
@@ -58,7 +58,7 @@
#
# The codes following [Y-] in column 7 describe the versions of termcap which
# use the given capability. This information is not used by the curses library
-# proper; rather, it's there to help the terminfo maintainer avoid emitting
+# proper; rather, it is there to help the terminfo maintainer avoid emitting
# termcap entry translations that are more than 1023 bytes long (and tank a
# lot of old termcap-using programs). The codes read as follows:
# B = mentioned in the BSD man page for 4.4BSD curses
@@ -98,8 +98,8 @@
# 3. List it in the standard table. You almost certainly do *not* want
# to do this -- the capabilities in that one, and their order, have been
# carefully chosen to be SVr4-binary-compatible when they're written out
-# as a terminfo object, and breaking this would be bad. It's up to the ncurses
-# library what to do with the terminfo data after it's read in.
+# as a terminfo object, and breaking this would be bad. It is up to the ncurses
+# library what to do with the terminfo data after it is read in.
#
# 4. List it in the aliases table with an IGNORE target field. If you
# do this, the capability will be ignored on input (though the user will
@@ -108,7 +108,7 @@
# 5. List it in the extensions table. If you do this, the compiler will
# silently accept the capability, but the curses library proper will never
# see it (because it won't be written out as part of the terminfo object
-# format). It's up to you what you have the compiler do with it.
+# format). It is up to you what you have the compiler do with it.
#
# There are two opposite reasons to choose option 5. One is when you want
# to eat the capability silently and discard it when doing translations
@@ -153,67 +153,103 @@
# to buy space for non-essentials Emacs is still using. Capabilities high
# on that hit list: rc, sc, uc.
#
+# FORMATTING THE TABLES
+#
+# We manually specify a (minimum) column width for the capability name
+# and terminfo code columns in the tables to achieve a consistent
+# arrangement; as used here, tbl(1) cannot know the width required by
+# one table's data while formatting another's.
+#
+# The longest capability names (C variables) are
+# "enter_near_letter_quality" and "bit_image_carriage_return" (tied at
+# 25n), and the longest terminfo code is "setcolor" (8n).
+#
+# The tables are a tight fit on traditional man(7) implementations that
+# use a line length of 65n, and the "Description" column has little room
+# within which the formatter can make breaking or adjustment decisions.
+# Words like "micro_..._address" and "parm_..._micro" don't break.
+# Reducing the inter-column gaps to 2 ens gives them enough room. --GBR
+#
#############################################################################
#
# STANDARD CAPABILITIES
#
-#%The following is a complete table of the capabilities included in a
-#%terminfo description block and available to terminfo-using code. In each
-#%line of the table,
-#%
-#%The \fBvariable\fR is the name by which the programmer (at the terminfo level)
-#%accesses the capability.
-#%
-#%The \fBcapname\fR is the short name used in the text of the database,
-#%and is used by a person updating the database.
-#%Whenever possible, capnames are chosen to be the same as or similar to
-#%the ANSI X3.64-1979 standard (now superseded by ECMA-48, which uses
-#%identical or very similar names). Semantics are also intended to match
-#%those of the specification.
-#%
-#%The termcap code is the old
-#%.B termcap
-#%capability name (some capabilities are new, and have names which termcap
-#%did not originate).
-#%.P
-#%Capability names have no hard length limit, but an informal limit of 5
-#%characters has been adopted to keep them short and to allow the tabs in
-#%the source file
-#%.B Caps
+#%Tables of capabilities
+#%.I \%ncurses
+#%recognizes in a
+#%.I \%term\%info
+#%terminal type description and available to
+#%.IR \%term\%info -using
+#%code follow.
+#%.bP
+#%The capability name identifies the symbol by which the programmer
+#%using the
+#%.I \%term\%info
+#%API accesses the capability.
+#%.bP
+#%The TI
+#%.RI ( \%term\%info )
+#%code is the short name used by a person composing or updating a
+#%terminal type entry.
+#%.IP
+#%Whenever possible,
+#%these codes are the same as or similar to those of the ANSI X3.64-1979
+#%standard
+#%(now superseded by ECMA-48,
+#%which uses identical or very similar names).
+#%Semantics are also intended to match those of the specification.
+#%.IP
+#%.I \%term\%info
+#%codes have no hard length limit,
+#%but
+#%.I \%ncurses
+#%maintains an informal one of 5 characters to keep them short and to
+#%allow the tabs in the source file
+#%.I Caps
#%to line up nicely.
-#%
-#%Finally, the description field attempts to convey the semantics of the
-#%capability. You may find some codes in the description field:
-#%.TP
-#%(P)
-#%indicates that padding may be specified
+#%(Some standard codes exceed this limit regardless.)
+#%.bP
+#%The TC
+#%.RI ( termcap )
+#%code is that used by the corresponding API of
+#%.IR \%ncurses .
+#%(Some capabilities are new,
+#%and have names that BSD
+#%.I termcap
+#%did not originate.)
+#%.bP
+#%The description field attempts to convey the capability's semantics.
+#%.PP
+#%The description field employs a handful of notations.
#%.TP
-#%#[1-9]
-#%in the description field indicates that the string is passed
-#%through \fBtparm\fP(3X) with parameters as given (#\fIi\fP).
-#%.IP
-#%If no parameters are listed in the description,
-#%passing the string through \fBtparm\fP(3X) may give unexpected results,
-#%e.g., if it contains percent (%%) signs.
+#%.B (P)
+#%indicates that padding may be specified.
#%.TP
-#%(P*)
-#%indicates that padding may vary in proportion to the number of
-#%lines affected
+#%.B (P*)
+#%indicates that padding may vary in proportion to the number of output
+#%lines affected.
#%.TP
-#%(#\d\fIi\fP\u)
-#%indicates the \fIi\fP\uth\d parameter.
-#%
+#%.BI # i
+#%indicates the
+#%.IR i th
+#%parameter of a string capability;
+#%the programmer should pass the string to \fB\%tparm\fP(3X) with the
+#%parameters listed.
+#%.IP
+#%If the description lists no parameters,
+#%passing the string to \fB\%tparm\fP(3X) may produce unexpected
+#%behavior,
+#%for instance if the string contains percent signs.
+#%.
#%.PP
-#% These are the boolean capabilities:
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw20.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBBooleans name Code\fR
+#%.TS
+#%center;
+#%Lb Cb S Lb
+#%Lb Lb Lb Lb
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
+#%\& Code \&
+#%Boolean Capability Name TI TC Description
+#%_
auto_left_margin bw bool bw - - YB-G- cub1 wraps from column 0 to last column
auto_right_margin am bool am - - YBCGE terminal has automatic margins
no_esc_ctlc xsb bool xb - - YBCG- beehive (f1=escape, f2=ctrl C)
@@ -252,18 +288,16 @@ prtr_silent mc5i bool 5i - - ----- printer will not echo on screen
row_addr_glitch xvpa bool YD - - ----- only positive motion for vpa/mvpa caps
semi_auto_right_margin sam bool YE - - ----- printing in last column causes cr
#%.TE
-#%.ad
-#%
-#%These are the numeric capabilities:
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw20.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBNumeric name Code\fR
+#%.PP
+#%.
+#%.TS
+#%center;
+#%Lb Cb S Lb
+#%Lb Lb Lb Lb
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
+#%\& Code \&
+#%Numeric Capability Name TI TC Description
+#%_
columns cols num co - - YBCGE number of columns in a line
init_tabs it num it - - YB-G- tabs initially every # spaces
lines lines num li - - YBCGE number of lines on screen or page
@@ -298,18 +332,16 @@ output_res_vert_inch orvi num Yl - - ----- vertical resolution in units per inc
print_rate cps num Ym - - ----- print rate in characters per second
wide_char_size widcs num Yn - - ----- character step size when in double wide mode
#%.TE
-#%.ad
-#%
-#%These are the string capabilities:
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw20.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBString name Code\fR
+#%.PP
+#%.
+#%.TS
+#%center;
+#%Lb Cb S Lb
+#%Lb Lb Lb Lb
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
+#%\& Code \&
+#%String Capability Name TI TC Description
+#%_
back_tab cbt str bt - - YBCGE back tab (P)
bell bel str bl - - YB-GE audible signal (bell) (P)
carriage_return cr str cr - - YBCGE carriage return (P*) (P*)
@@ -372,6 +404,10 @@ key_ctab kctab str kt KEY_CTAB 0525 -B-G-* clear-tab key
key_dc kdch1 str kD KEY_DC 0512 YB-G- delete-character key
key_dl kdl1 str kL KEY_DL 0510 -B-G-* delete-line key
key_down kcud1 str kd KEY_DOWN 0402 YBCGE down-arrow key
+#%.TE
+#%.TS
+#%center;
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
key_eic krmir str kM KEY_EIC 0514 -B-G-* sent by rmir or smir in insert mode
key_eol kel str kE KEY_EOL 0517 -B-G-* clear-to-end-of-line key
key_eos ked str kS KEY_EOS 0516 -B-G-* clear-to-end-of-screen key
@@ -434,6 +470,10 @@ prtr_on mc5 str po - - -B-G-* turn on printer
repeat_char rep str rp - - YB-GE repeat char #1 #2 times (P*)
reset_1string rs1 str r1 - - -B--- reset string
reset_2string rs2 str r2 - - -B--- reset string
+#%.TE
+#%.TS
+#%center;
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
reset_3string rs3 str r3 - - -B--- reset string
reset_file rf str rf - - -B--- name of reset file
restore_cursor rc str rc - - YBCG- restore cursor to position of last save_cursor
@@ -589,6 +629,10 @@ ena_acs enacs str eA - - ----- enable alternate char set
end_bit_image_region endbi str Yy - - ----- End a bit-image region
enter_am_mode smam str SA - - ----- turn on automatic margins
enter_doublewide_mode swidm str ZF - - ----- Enter double-wide mode
+#%.TE
+#%.TS
+#%center;
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
enter_draft_quality sdrfq str ZG - - ----- Enter draft-quality mode
enter_italics_mode sitm str ZH - - ----- Enter italic mode
enter_leftward_mode slm str ZI - - ----- Start leftward carriage motion
@@ -635,6 +679,10 @@ key_f39 kf39 str FT KEY_F(39) - ----E F39 function key
key_f40 kf40 str FU KEY_F(40) - ----E F40 function key
key_f41 kf41 str FV KEY_F(41) - ----E F41 function key
key_f42 kf42 str FW KEY_F(42) - ----E F42 function key
+#%.TE
+#%.TS
+#%center;
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
key_f43 kf43 str FX KEY_F(43) - ----E F43 function key
key_f44 kf44 str FY KEY_F(44) - ----E F44 function key
key_f45 kf45 str FZ KEY_F(45) - ----E F45 function key
@@ -673,6 +721,10 @@ key_replace krpl str &3 KEY_REPLACE 0566 ----- replace key
key_restart krst str &4 KEY_RESTART 0567 ----- restart key
key_resume kres str &5 KEY_RESUME 0570 ----- resume key
key_save ksav str &6 KEY_SAVE 0571 ----- save key
+#%.TE
+#%.TS
+#%center;
+#%Lbw(25n)2 Lbw(8n)2 Lb2 Lx.
key_sbeg kBEG str &9 KEY_SBEG 0572 ----- shifted begin key
key_scancel kCAN str &0 KEY_SCANCEL 0573 ----- shifted cancel key
key_scommand kCMD str *1 KEY_SCOMMAND 0574 ----- shifted command key
@@ -743,7 +795,7 @@ set_clock sclk str SC - - ----- set clock, #1 hrs #2 mins #3 secs
set_color_band setcolor str Yz - - ----- Change to ribbon color #1
set_color_pair scp str sp - - ----- Set current color pair to #1
set_foreground setf str Sf - - ----- Set foreground color #1
-set_left_margin smgl str ML - - ----- set left soft margin at current column. See smgl. (ML is not in BSD termcap).
+set_left_margin smgl str ML - - ----- set left soft margin at current column (not in BSD \fItermcap\fP)
set_left_margin_parm smglp str Zm - - ----- Set left (right) margin at column #1
set_lr_margin smglr str ML - - ----- Set both left and right margins to #1, #2. (ML is not in BSD termcap).
set_page_length slines str YZ - - ----- Set page length to #1 lines
@@ -891,7 +943,7 @@ has_hardware_tabs OTpt bool pt - - YB--- has 8-char tabs invoked with ^I
return_does_clr_eol OTxr bool xr - - YB--- return clears the line
# tek_4025_insert_line OTxx bool xx - - -BC-- Tektronix 4025 insert-line glitch
#
-# mytinfo described this as a termcap capability, but it's not listed in the
+# mytinfo described this as a termcap capability, but it is not listed in the
# 4.4BSD man pages, and not found in the 4.4BSD termcap file. The ncurses
# package, like System V, behaves as though it is always true.
#
diff --git a/include/Caps.uwin b/include/Caps.uwin
index de0d5b77cae9..a41e9eca7a30 100644
--- a/include/Caps.uwin
+++ b/include/Caps.uwin
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright 2019,2020 Thomas E. Dickey #
+# Copyright 2019-2023,2024 Thomas E. Dickey #
# Copyright 2001-2015,2016 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -29,7 +29,7 @@
#
# Author: Thomas Dickey
#
-# $Id: Caps.uwin,v 1.13 2020/10/17 21:30:19 tom Exp $
+# $Id: Caps.uwin,v 1.23 2024/04/20 21:05:02 tom Exp $
#
# This is an adaptation of ncurses' termcap/terminfo capability table, which
# is designed to align with U/Win's terminfo.
@@ -48,7 +48,7 @@
#
# Column 1: terminfo variable name
# Column 2: terminfo capability name
-# Column 3: capability type (boolean, numeric, or string)
+# Column 3: capability type (Boolean, numeric, or string)
# Column 4: termcap capability name
# Column 5: KEY_xxx name, if any, `-' otherwise
# Column 6: value for KEY_xxx name, if any, `-' otherwise
@@ -58,7 +58,7 @@
#
# The codes following [Y-] in column 7 describe the versions of termcap which
# use the given capability. This information is not used by the curses library
-# proper; rather, it's there to help the terminfo maintainer avoid emitting
+# proper; rather, it is there to help the terminfo maintainer avoid emitting
# termcap entry translations that are more than 1023 bytes long (and tank a
# lot of old termcap-using programs). The codes read as follows:
# B = mentioned in the BSD man page for 4.4BSD curses
@@ -98,8 +98,8 @@
# 3. List it in the standard table. You almost certainly do *not* want
# to do this -- the capabilities in that one, and their order, have been
# carefully chosen to be SVr4-binary-compatible when they're written out
-# as a terminfo object, and breaking this would be bad. It's up to the ncurses
-# library what to do with the terminfo data after it's read in.
+# as a terminfo object, and breaking this would be bad. It is up to the ncurses
+# library what to do with the terminfo data after it is read in.
#
# 4. List it in the aliases table with an IGNORE target field. If you
# do this, the capability will be ignored on input (though the user will
@@ -108,7 +108,7 @@
# 5. List it in the extensions table. If you do this, the compiler will
# silently accept the capability, but the curses library proper will never
# see it (because it won't be written out as part of the terminfo object
-# format). It's up to you what you have the compiler do with it.
+# format). It is up to you what you have the compiler do with it.
#
# There are two opposite reasons to choose option 5. One is when you want
# to eat the capability silently and discard it when doing translations
@@ -153,67 +153,103 @@
# to buy space for non-essentials Emacs is still using. Capabilities high
# on that hit list: rc, sc, uc.
#
+# FORMATTING THE TABLES
+#
+# We manually specify a (minimum) column width for the capability name
+# and terminfo code columns in the tables to achieve a consistent
+# arrangement; as used here, tbl(1) cannot know the width required by
+# one table's data while formatting another's.
+#
+# The longest capability names (C variable) is
+# "hue_lightness_saturation" (24n), and the longest terminfo code is
+# "colornm" (7n).
+#
+# The tables are a tight fit on traditional man(7) implementations that
+# use a line length of 65n, and the "Description" column has little room
+# within which the formatter can make breaking or adjustment decisions.
+# Words like "micro_..._address" and "parm_..._micro" don't break.
+# Reducing the inter-column gaps to 2 ens gives them enough room. --GBR
+#
#############################################################################
#
# STANDARD CAPABILITIES
#
-#%The following is a complete table of the capabilities included in a
-#%terminfo description block and available to terminfo-using code. In each
-#%line of the table,
-#%
-#%The \fBvariable\fR is the name by which the programmer (at the terminfo level)
-#%accesses the capability.
-#%
-#%The \fBcapname\fR is the short name used in the text of the database,
-#%and is used by a person updating the database.
-#%Whenever possible, capnames are chosen to be the same as or similar to
-#%the ANSI X3.64-1979 standard (now superseded by ECMA-48, which uses
-#%identical or very similar names). Semantics are also intended to match
-#%those of the specification.
-#%
-#%The termcap code is the old
-#%.B termcap
-#%capability name (some capabilities are new, and have names which termcap
-#%did not originate).
-#%.P
-#%Capability names have no hard length limit, but an informal limit of 5
-#%characters has been adopted to keep them short and to allow the tabs in
-#%the source file
-#%.B Caps
+#%Tables of capabilities
+#%.I \%ncurses
+#%recognizes in a
+#%.I \%term\%info
+#%terminal type description and available to
+#%.IR \%term\%info -using
+#%code follow.
+#%.bP
+#%The capability name identifies the symbol by which the programmer
+#%using the
+#%.I \%term\%info
+#%API accesses the capability.
+#%.bP
+#%The TI
+#%.RI ( \%term\%info )
+#%code is the short name used by a person composing or updating a
+#%terminal type entry.
+#%.IP
+#%Whenever possible,
+#%these codes are the same as or similar to those of the ANSI X3.64-1979
+#%standard
+#%(now superseded by ECMA-48,
+#%which uses identical or very similar names).
+#%Semantics are also intended to match those of the specification.
+#%.IP
+#%.I \%term\%info
+#%codes have no hard length limit,
+#%but
+#%.I \%ncurses
+#%maintains an informal one of 5 characters to keep them short and to
+#%allow the tabs in the source file
+#%.I Caps
#%to line up nicely.
-#%
-#%Finally, the description field attempts to convey the semantics of the
-#%capability. You may find some codes in the description field:
-#%.TP
-#%(P)
-#%indicates that padding may be specified
+#%(Some standard codes exceed this limit regardless.)
+#%.bP
+#%The TC
+#%.RI ( termcap )
+#%code is that used by the corresponding API of
+#%.IR \%ncurses .
+#%(Some capabilities are new,
+#%and have names that BSD
+#%.I termcap
+#%did not originate.)
+#%.bP
+#%The description field attempts to convey the capability's semantics.
+#%.PP
+#%The description field employs a handful of notations.
#%.TP
-#%#[1-9]
-#%in the description field indicates that the string is passed
-#%through \fBtparm\fP(3X) with parameters as given (#\fIi\fP).
-#%.IP
-#%If no parameters are listed in the description,
-#%passing the string through \fBtparm\fP(3X) may give unexpected results,
-#%e.g., if it contains percent (%%) signs.
+#%.B (P)
+#%indicates that padding may be specified.
#%.TP
-#%(P*)
-#%indicates that padding may vary in proportion to the number of
-#%lines affected
+#%.B (P*)
+#%indicates that padding may vary in proportion to the number of output
+#%lines affected.
#%.TP
-#%(#\d\fIi\fP\u)
-#%indicates the \fIi\fP\uth\d parameter.
-#%
+#%.BI # i
+#%indicates the
+#%.IR i th
+#%parameter of a string capability;
+#%the programmer should pass the string to \fB\%tparm\fP(3X) with the
+#%parameters listed.
+#%.IP
+#%If the description lists no parameters,
+#%passing the string to \fB\%tparm\fP(3X) may produce unexpected
+#%behavior,
+#%for instance if the string contains percent signs.
+#%.
#%.PP
-#% These are the boolean capabilities:
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw20.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBBooleans name Code\fR
+#%.TS
+#%center;
+#%Lb Cb S Lb
+#%Lb Lb Lb Lb
+#%Lbw(24n)2 Lbw(7n)2 Lb2 Lx.
+#%\& Code \&
+#%Boolean Capability Name TI TC Description
+#%_
auto_left_margin bw bool bw - - YB-G- cub1 wraps from column 0 to last column
auto_right_margin am bool am - - YBCGE terminal has automatic margins
no_esc_ctlc xsb bool xb - - YBCG- beehive (f1=escape, f2=ctrl C)
@@ -245,18 +281,16 @@ back_color_erase bce bool ut - - ----- screen erased with background color
can_change ccc bool cc - - ----- terminal can re-define existing colors
hue_lightness_saturation hls bool hl - - ----- terminal uses only HLS color notation (Tektronix)
#%.TE
-#%.ad
-#%
-#%These are the numeric capabilities:
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw20.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBNumeric name Code\fR
+#%.PP
+#%.
+#%.TS
+#%center;
+#%Lb Cb S Lb
+#%Lb Lb Lb Lb
+#%Lbw(24n)2 Lbw(7n)2 Lb2 Lx.
+#%\& Code \&
+#%Numeric Capability Name TI TC Description
+#%_
columns cols num co - - YBCGE number of columns in a line
init_tabs it num it - - YB-G- tabs initially every # spaces
lines lines num li - - YBCGE number of lines on screen or page
@@ -276,24 +310,16 @@ max_colors colors num Co - - ----- maximum number of colors on screen
max_pairs pairs num pa - - ----- maximum number of color-pairs on the screen
no_color_video ncv num NC - - ----- video attributes that cannot be used with colors
#%.TE
-#%.ad
-#%
-#%The following numeric capabilities are present in the SVr4.0 term structure,
-#%but are not yet documented in the man page. They came in with SVr4's
-#%printer support.
-#%
-#%.na
-#%
-#%These are the string capabilities:
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw20.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBString name Code\fR
+#%.PP
+#%.
+#%.TS
+#%center;
+#%Lb Cb S Lb
+#%Lb Lb Lb Lb
+#%Lbw(24n)2 Lbw(7n)2 Lb2 Lx.
+#%\& Code \&
+#%String Capability Name TI TC Description
+#%_
back_tab cbt str bt - - YBCGE back tab (P)
bell bel str bl - - YB-GE audible signal (bell) (P)
carriage_return cr str cr - - YBCGE carriage return (P*) (P*)
@@ -356,6 +382,10 @@ key_ctab kctab str kt KEY_CTAB 0525 -B-G-* clear-tab key
key_dc kdch1 str kD KEY_DC 0512 YB-G- delete-character key
key_dl kdl1 str kL KEY_DL 0510 -B-G-* delete-line key
key_down kcud1 str kd KEY_DOWN 0402 YBCGE down-arrow key
+#%.TE
+#%.TS
+#%center;
+#%Lbw(24n)2 Lbw(7n)2 Lb2 Lx.
key_eic krmir str kM KEY_EIC 0514 -B-G-* sent by rmir or smir in insert mode
key_eol kel str kE KEY_EOL 0517 -B-G-* clear-to-end-of-line key
key_eos ked str kS KEY_EOS 0516 -B-G-* clear-to-end-of-screen key
@@ -418,6 +448,10 @@ prtr_on mc5 str po - - -B-G-* turn on printer
repeat_char rep str rp - - YB-GE repeat char #1 #2 times (P*)
reset_1string rs1 str r1 - - -B--- reset string
reset_2string rs2 str r2 - - -B--- reset string
+#%.TE
+#%.TS
+#%center;
+#%Lbw(24n)2 Lbw(7n)2 Lb2 Lx.
reset_3string rs3 str r3 - - -B--- reset string
reset_file rf str rf - - -B--- name of reset file
restore_cursor rc str rc - - YBCG- restore cursor to position of last save_cursor
@@ -484,6 +518,10 @@ key_resume kres str &5 KEY_RESUME 0570 ----- resume key
key_save ksav str &6 KEY_SAVE 0571 ----- save key
key_suspend kspd str &7 KEY_SUSPEND 0627 ----- suspend key
key_undo kund str &8 KEY_UNDO 0630 ----- undo key
+#%.TE
+#%.TS
+#%center;
+#%Lbw(24n)2 Lbw(7n)2 Lb2 Lx.
key_sbeg kBEG str &9 KEY_SBEG 0572 ----- shifted begin key
key_scancel kCAN str &0 KEY_SCANCEL 0573 ----- shifted cancel key
key_scommand kCMD str *1 KEY_SCOMMAND 0574 ----- shifted command key
@@ -546,6 +584,10 @@ key_f39 kf39 str FT KEY_F(39) - ----E F39 function key
key_f40 kf40 str FU KEY_F(40) - ----E F40 function key
key_f41 kf41 str FV KEY_F(41) - ----E F41 function key
key_f42 kf42 str FW KEY_F(42) - ----E F42 function key
+#%.TE
+#%.TS
+#%center;
+#%Lbw(24n)2 Lbw(7n)2 Lb2 Lx.
key_f43 kf43 str FX KEY_F(43) - ----E F43 function key
key_f44 kf44 str FY KEY_F(44) - ----E F44 function key
key_f45 kf45 str FZ KEY_F(45) - ----E F45 function key
@@ -569,7 +611,7 @@ key_f62 kf62 str Fq KEY_F(62) - ----E F62 function key
key_f63 kf63 str Fr KEY_F(63) - ----E F63 function key
clr_bol el1 str cb - - ----- Clear to beginning of line
clear_margins mgc str MC - - ----- clear right and left soft margins
-set_left_margin smgl str ML - - ----- set left soft margin at current column. See smgl. (ML is not in BSD termcap).
+set_left_margin smgl str ML - - ----- set left soft margin at current column (not in BSD \fItermcap\fP)
set_right_margin smgr str MR - - ----- set right soft margin at current column
device_type devt str dv - - ----- Indicate language/codeset support
code_set_init csin str ci - - ----- Init sequence for multiple codesets
@@ -593,7 +635,6 @@ set_background setb str Sb - - ----- Set background color #1
set_color_pair scp str sp - - ----- Set current color pair to #1
set_foreground setf str Sf - - ----- Set foreground color #1
#%.TE
-#%.ad
#%
# The magic token below tells the tic compiler-generator code that all the caps
# past it should be ignored (not written out) when dumping terminfo objects. It
@@ -707,7 +748,7 @@ has_hardware_tabs OTpt bool pt - - YB--- has 8-char tabs invoked with ^I
return_does_clr_eol OTxr bool xr - - YB--- return clears the line
# tek_4025_insert_line OTxx bool xx - - -BC-- Tektronix 4025 insert-line glitch
#
-# mytinfo described this as a termcap capability, but it's not listed in the
+# mytinfo described this as a termcap capability, but it is not listed in the
# 4.4BSD man pages, and not found in the 4.4BSD termcap file. The ncurses
# package, like System V, behaves as though it is always true.
#
diff --git a/include/MKkey_defs.sh b/include/MKkey_defs.sh
index 86d6891c3693..e58ee2b65d79 100755
--- a/include/MKkey_defs.sh
+++ b/include/MKkey_defs.sh
@@ -1,7 +1,7 @@
#! /bin/sh
-# $Id: MKkey_defs.sh,v 1.21 2020/08/17 10:45:33 tom Exp $
+# $Id: MKkey_defs.sh,v 1.24 2024/01/19 12:26:17 tom Exp $
##############################################################################
-# Copyright 2019,2020 Thomas E. Dickey #
+# Copyright 2019-2022,2024 Thomas E. Dickey #
# Copyright 2001-2013,2017 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -35,7 +35,7 @@
#
# Extract function-key definitions from the Caps file
#
-: ${AWK-awk}
+: "${AWK-awk}"
test $# = 0 && set Caps
@@ -44,7 +44,8 @@ pass1=pass1_$$
pass2=pass2_$$
pass3=pass3_$$
pass4=pass4_$$
-trap 'rm -f $data pass[1234]_$$' EXIT INT QUIT TERM HUP
+trap 'rm -f $data pass[1234]_$$; exit 1' 1 2 3 15
+trap 'rm -f $data pass[1234]_$$' 0
# change repeated tabs (used for readability) to single tabs (needed to make
# awk see the right field alignment of the corresponding columns):
@@ -63,10 +64,10 @@ fi
# add keys that we generate automatically:
cat >>$data <<EOF
-key_resize kr1 str R1 KEY_RESIZE + NCURSES_EXT_FUNCS Terminal resize event
+key_resize kr1 str R1 KEY_RESIZE + NCURSES_SIGWINCH Terminal resize event
EOF
-THIS=./`basename $0`
+THIS=./`basename "$0"`
cat <<EOF
/*
@@ -145,7 +146,7 @@ $5 != "-" && $6 != "-" {
if (index($7,"NCURSES_") == 1) {
ifdef = 1;
printf "\n";
- printf "#ifdef %s\n", $7;
+ printf "#if %s\n", $7;
}
if ($5 == "KEY_F(0)" ) {
printf "#define "
diff --git a/include/MKncurses_def.sh b/include/MKncurses_def.sh
index 81f39d23161e..22d80c2331ae 100755
--- a/include/MKncurses_def.sh
+++ b/include/MKncurses_def.sh
@@ -1,7 +1,7 @@
#! /bin/sh
-# $Id: MKncurses_def.sh,v 1.4 2020/02/02 23:34:34 tom Exp $
+# $Id: MKncurses_def.sh,v 1.5 2022/07/16 17:03:59 tom Exp $
##############################################################################
-# Copyright 2020 Thomas E. Dickey #
+# Copyright 2020,2022 Thomas E. Dickey #
# Copyright 2000,2003 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -56,7 +56,7 @@ cat <<EOF
EOF
-${AWK-awk} <$DEFS '
+"${AWK-awk}" <"$DEFS" '
!/^[@#]/ {
if ( NF == 1 )
{
diff --git a/include/MKterm.h.awk.in b/include/MKterm.h.awk.in
index c93cdeac6971..a93d8e86e9c1 100644
--- a/include/MKterm.h.awk.in
+++ b/include/MKterm.h.awk.in
@@ -26,7 +26,7 @@ BEGIN {
lcurl = "{";
rcurl = "}";
print "/****************************************************************************"
- print " * Copyright 2018-2019,2020 Thomas E. Dickey *"
+ print " * Copyright 2018-2021,2023 Thomas E. Dickey *"
print " * Copyright 1998-2013,2017 Free Software Foundation, Inc. *"
print " * *"
print " * Permission is hereby granted, free of charge, to any person obtaining a *"
@@ -60,7 +60,7 @@ BEGIN {
print "/* and: Thomas E. Dickey 1995-on */"
print "/****************************************************************************/"
print ""
- print "/* $Id: MKterm.h.awk.in,v 1.78 2020/10/31 23:14:24 tom Exp $ */"
+ print "/* $Id: MKterm.h.awk.in,v 1.85 2023/04/23 19:15:36 tom Exp $ */"
print ""
print "/*"
print "** term.h -- Definition of struct term"
@@ -244,28 +244,28 @@ END {
print " * The only reason these structures are visible is for read-only use."
print " * Programs which modify the data are not, never were, portable across"
print " * curses implementations."
+ print " *"
+ print " * The first field in TERMINAL is used in macros."
+ print " * The remaining fields are private."
print " */"
print "#ifdef NCURSES_INTERNALS"
print ""
+ print "#undef TERMINAL"
+ print "#define TERMINAL struct term"
+ print "TERMINAL;"
+ print ""
if (@NCURSES_EXT_COLORS@) {
declare_termtype("int","2");
} else {
- print "typedef TERMTYPE TERMTYPE2;"
+ print "#undef TERMTYPE2"
+ print "#define TERMTYPE2 TERMTYPE"
}
+ print "#else"
print ""
print "typedef struct term { /* describe an actual terminal */"
print " TERMTYPE type; /* terminal type description */"
- print " short Filedes; /* file description being written to */"
- print " TTY Ottyb; /* original state of the terminal */"
- print " TTY Nttyb; /* current state of the terminal */"
- print " int _baudrate; /* used to compute padding */"
- print " char * _termname; /* used for termname() */"
- if (@NCURSES_EXT_COLORS@) {
- print " TERMTYPE2 type2; /* extended terminal type description */"
- }
print "} TERMINAL;"
- print "#else"
- print "typedef struct term TERMINAL;"
+ print ""
print "#endif /* NCURSES_INTERNALS */"
print ""
print ""
@@ -325,16 +325,11 @@ END {
print "extern NCURSES_EXPORT(char *) _nc_first_name (const char *const);"
print "extern NCURSES_EXPORT(int) _nc_name_match (const char *const, const char *const, const char *const);"
print "extern NCURSES_EXPORT(char *) _nc_tiparm(int, const char *, ...);"
- print ""
- print "#endif /* NCURSES_INTERNALS */"
- print ""
- print ""
- print "/*"
- print " * These entrypoints are used by tack 1.07."
- print " */"
print "extern NCURSES_EXPORT(const TERMTYPE *) _nc_fallback (const char *);"
print "extern NCURSES_EXPORT(int) _nc_read_entry (const char * const, char * const, TERMTYPE *const);"
print ""
+ print "#endif /* NCURSES_INTERNALS */"
+ print ""
print "/*"
print " * Normal entry points"
print " */"
@@ -360,6 +355,8 @@ END {
print "#endif"
print ""
print "extern NCURSES_EXPORT(char *) tiparm (const char *, ...); /* special */"
+ print "extern NCURSES_EXPORT(char *) tiparm_s (int, int, const char *, ...); /* special */"
+ print "extern NCURSES_EXPORT(int) tiscan_s (int *, int *, const char *); /* special */"
print ""
print "#endif /* __NCURSES_H */"
print ""
@@ -406,7 +403,7 @@ END {
print "/*"
print " * Debugging features."
print " */"
- print "extern NCURSES_EXPORT(void) exit_terminfo(int) GCC_NORETURN;"
+ print "extern GCC_NORETURN NCURSES_EXPORT(void) exit_terminfo(int);"
print ""
print "#ifdef __cplusplus"
printf "%s\n", rcurl;
diff --git a/include/Makefile.in b/include/Makefile.in
index b911f8eadce1..351383b0ebc9 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -1,6 +1,6 @@
-# $Id: Makefile.in,v 1.51 2020/09/18 22:55:10 tom Exp $
+# $Id: Makefile.in,v 1.53 2021/07/03 18:56:51 tom Exp $
##############################################################################
-# Copyright 2019,2020 Thomas E. Dickey #
+# Copyright 2019-2020,2021 Thomas E. Dickey #
# Copyright 1998-2013,2015 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -92,6 +92,21 @@ AUTO_SRC = \
term.h
################################################################################
+
+@MAKE_PHONY@.PHONY : all
+@MAKE_PHONY@.PHONY : check
+@MAKE_PHONY@.PHONY : clean
+@MAKE_PHONY@.PHONY : depend
+@MAKE_PHONY@.PHONY : distclean
+@MAKE_PHONY@.PHONY : install
+@MAKE_PHONY@.PHONY : install.libs
+@MAKE_PHONY@.PHONY : libs
+@MAKE_PHONY@.PHONY : mostlyclean
+@MAKE_PHONY@.PHONY : realclean
+@MAKE_PHONY@.PHONY : sources
+@MAKE_PHONY@.PHONY : uninstall
+@MAKE_PHONY@.PHONY : uninstall.libs
+
all \
libs \
depend \
diff --git a/include/capdefaults.c b/include/capdefaults.c
index 951a9ca4bb5c..0bdda14dee2d 100644
--- a/include/capdefaults.c
+++ b/include/capdefaults.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2000,2008 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -33,11 +33,11 @@
* and: Thomas E. Dickey 1996-on *
****************************************************************************/
-/* $Id: capdefaults.c,v 1.15 2020/02/02 23:34:34 tom Exp $ */
+/* $Id: capdefaults.c,v 1.16 2021/09/04 10:52:55 tom Exp $ */
/*
* Compute obsolete capabilities. The reason this is an include file is
- * that the two places where it's needed want the macros to generate
+ * that the two places where it is needed require the macros to generate
* offsets to different structures. See the file Caps for explanations of
* these conversions.
*
diff --git a/include/curses.events b/include/curses.events
index 25a2583fc9b5..2509b1bf703a 100644
--- a/include/curses.events
+++ b/include/curses.events
@@ -1,4 +1,4 @@
-/* $Id*/
+/* $Id: curses.events,v 1.4 2024/01/19 09:24:17 tom Exp $ */
/*
* vile:cmode:
* This file is part of ncurses, designed to be appended after curses.h.in
@@ -50,6 +50,6 @@ typedef struct
extern NCURSES_EXPORT(int) wgetch_events (WINDOW *, _nc_eventlist *) GCC_DEPRECATED(experimental option); /* experimental */
extern NCURSES_EXPORT(int) wgetnstr_events (WINDOW *,char *,int,_nc_eventlist *) GCC_DEPRECATED(experimental option); /* experimental */
-#define KEY_EVENT 0633 /* We were interrupted by an event */
+#define KEY_EVENT 0634 /* We were interrupted by an event */
#endif /* NCURSES_WGETCH_EVENTS */
diff --git a/include/curses.h.in b/include/curses.h.in
index c516b22c1fe4..8cfa0b9ff8d6 100644
--- a/include/curses.h.in
+++ b/include/curses.h.in
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -33,11 +33,40 @@
* and: Thomas E. Dickey 1996-on *
****************************************************************************/
-/* $Id: curses.h.in,v 1.269 2020/08/17 14:14:12 tom Exp $ */
+/* $Id: curses.h.in,v 1.282 2024/01/19 11:50:07 tom Exp $ */
#ifndef __NCURSES_H
#define __NCURSES_H
+/*
+ The symbols beginning NCURSES_ or USE_ are configuration choices.
+ A few of the former can be overridden by applications at compile-time.
+ Most of the others correspond to configure-script options (or checks
+ by the configure-script for features of the system on which it is built).
+
+ These symbols can be overridden by applications at compile-time:
+ NCURSES_NOMACROS suppresses macro definitions in favor of functions
+ NCURSES_WATTR_MACROS suppresses wattr_* macro definitions
+ NCURSES_WIDECHAR is an alternative for declaring wide-character functions.
+
+ These symbols are used only when building ncurses:
+ NCURSES_ATTR_T
+ NCURSES_FIELD_INTERNALS
+ NCURSES_INTERNALS
+
+ These symbols are set by the configure script:
+ NCURSES_ENABLE_STDBOOL_H
+ NCURSES_EXPANDED
+ NCURSES_EXT_COLORS
+ NCURSES_EXT_FUNCS
+ NCURSES_EXT_PUTWIN
+ NCURSES_NO_PADDING
+ NCURSES_OSPEED_COMPAT
+ NCURSES_PATHSEP
+ NCURSES_REENTRANT
+ NCURSES_SIGWINCH
+ */
+
#define CURSES 1
#define CURSES_H 1
@@ -60,10 +89,22 @@
*/
#include <ncurses_dll.h>
+/*
+ * Extra headers.
+ */
#if @HAVE_STDINT_H@
#include <stdint.h>
#endif
+#ifdef __cplusplus
+#else
+#if @HAVE_STDNORETURN_H@
+#include <stdnoreturn.h>
+#undef GCC_NORETURN
+#define GCC_NORETURN _Noreturn
+#endif
+#endif
+
/*
* User-definable tweak to disable the include of <stdbool.h>.
*/
@@ -131,6 +172,19 @@
#endif
/*
+ * KEY_RESIZE is an extended feature that relies upon the SIGWINCH handler
+ * in ncurses.
+ */
+#if @NCURSES_EXT_FUNCS@
+#ifndef NCURSES_SIGWINCH
+#define NCURSES_SIGWINCH @cf_cv_enable_sigwinch@
+#endif
+#else
+#undef NCURSES_SIGWINCH
+#define NCURSES_SIGWINCH 0
+#endif
+
+/*
* In certain environments, we must work around linker problems for data
*/
#undef NCURSES_BROKEN_LINKER
@@ -391,7 +445,14 @@ extern NCURSES_EXPORT_VAR(chtype) acs_map[];
*/
#define _NEWINDEX -1
+#ifdef NCURSES_INTERNALS
+#undef SCREEN
+#define SCREEN struct screen
+SCREEN;
+#else
typedef struct screen SCREEN;
+#endif
+
typedef struct _win_st WINDOW;
typedef chtype attr_t; /* ...must be at least as wide as chtype */
@@ -510,14 +571,10 @@ struct _win_st
/*
* We cannot define these in ncurses_cfg.h, since they require parameters to be
- * passed (that is non-portable). If you happen to be using gcc with warnings
- * enabled, define
- * GCC_PRINTF
- * GCC_SCANF
- * to improve checking of calls to printw(), etc.
+ * passed (that is non-portable).
*/
#ifndef GCC_PRINTFLIKE
-#if defined(GCC_PRINTF) && !defined(printf)
+#ifndef printf
#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
#else
#define GCC_PRINTFLIKE(fmt,var) /*nothing*/
@@ -525,7 +582,7 @@ struct _win_st
#endif
#ifndef GCC_SCANFLIKE
-#if defined(GCC_SCANF) && !defined(scanf)
+#ifndef scanf
#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
#else
#define GCC_SCANFLIKE(fmt,var) /*nothing*/
@@ -773,10 +830,14 @@ extern NCURSES_EXPORT(void) use_tioctl (bool); /* implemented */
extern NCURSES_EXPORT(int) vidattr (chtype); /* implemented */
extern NCURSES_EXPORT(int) vidputs (chtype, NCURSES_OUTC); /* implemented */
extern NCURSES_EXPORT(int) vline (chtype, int); /* generated */
-extern NCURSES_EXPORT(int) vwprintw (WINDOW *, const char *,va_list) GCC_DEPRECATED(use vw_printw); /* implemented */
-extern NCURSES_EXPORT(int) vw_printw (WINDOW *, const char *,va_list); /* implemented */
-extern NCURSES_EXPORT(int) vwscanw (WINDOW *, const char *,va_list) GCC_DEPRECATED(use vw_scanw); /* implemented */
-extern NCURSES_EXPORT(int) vw_scanw (WINDOW *, const char *,va_list); /* implemented */
+extern NCURSES_EXPORT(int) vwprintw (WINDOW *, const char *, va_list) GCC_DEPRECATED(use vw_printw) /* implemented */
+ GCC_PRINTFLIKE(2,0);
+extern NCURSES_EXPORT(int) vw_printw (WINDOW *, const char *, va_list) /* implemented */
+ GCC_PRINTFLIKE(2,0);
+extern NCURSES_EXPORT(int) vwscanw (WINDOW *, const char *, va_list) GCC_DEPRECATED(use vw_scanw) /* implemented */
+ GCC_SCANFLIKE(2,0);
+extern NCURSES_EXPORT(int) vw_scanw (WINDOW *, const char *, va_list) /* implemented */
+ GCC_SCANFLIKE(2,0);
extern NCURSES_EXPORT(int) waddch (WINDOW *, const chtype); /* implemented */
extern NCURSES_EXPORT(int) waddchnstr (WINDOW *,const chtype *,int); /* implemented */
extern NCURSES_EXPORT(int) waddchstr (WINDOW *,const chtype *); /* generated */
@@ -849,6 +910,8 @@ extern NCURSES_EXPORT(char *) tparm (const char *, NCURSES_TPARM_ARG,NCURSES_TPA
#endif
extern NCURSES_EXPORT(char *) tiparm (const char *, ...); /* special */
+extern NCURSES_EXPORT(char *) tiparm_s (int, int, const char *, ...); /* special */
+extern NCURSES_EXPORT(int) tiscan_s (int *, int *, const char *); /* special */
/*
* These functions are not in X/Open, but we use them in macro definitions:
@@ -878,11 +941,9 @@ extern NCURSES_EXPORT(int) getpary (const WINDOW *); /* generated */
#define NCURSES_EXT_FUNCS @NCURSES_PATCH@
typedef int (*NCURSES_WINDOW_CB)(WINDOW *, void *);
typedef int (*NCURSES_SCREEN_CB)(SCREEN *, void *);
-extern NCURSES_EXPORT(bool) is_term_resized (int, int);
-extern NCURSES_EXPORT(char *) keybound (int, int);
-extern NCURSES_EXPORT(const char *) curses_version (void);
extern NCURSES_EXPORT(int) alloc_pair (int, int);
extern NCURSES_EXPORT(int) assume_default_colors (int, int);
+extern NCURSES_EXPORT(const char *) curses_version (void);
extern NCURSES_EXPORT(int) define_key (const char *, int);
extern NCURSES_EXPORT(int) extended_color_content(int, int *, int *, int *);
extern NCURSES_EXPORT(int) extended_pair_content(int, int *, int *);
@@ -892,20 +953,31 @@ extern NCURSES_EXPORT(int) free_pair (int);
extern NCURSES_EXPORT(int) get_escdelay (void);
extern NCURSES_EXPORT(int) init_extended_color(int, int, int, int);
extern NCURSES_EXPORT(int) init_extended_pair(int, int, int);
+extern NCURSES_EXPORT(int) is_cbreak(void);
+extern NCURSES_EXPORT(int) is_echo(void);
+extern NCURSES_EXPORT(int) is_nl(void);
+extern NCURSES_EXPORT(int) is_raw(void);
+extern NCURSES_EXPORT(bool) is_term_resized (int, int);
extern NCURSES_EXPORT(int) key_defined (const char *);
+extern NCURSES_EXPORT(char *) keybound (int, int);
extern NCURSES_EXPORT(int) keyok (int, bool);
+extern NCURSES_EXPORT(void) nofilter(void);
extern NCURSES_EXPORT(void) reset_color_pairs (void);
extern NCURSES_EXPORT(int) resize_term (int, int);
extern NCURSES_EXPORT(int) resizeterm (int, int);
extern NCURSES_EXPORT(int) set_escdelay (int);
extern NCURSES_EXPORT(int) set_tabsize (int);
extern NCURSES_EXPORT(int) use_default_colors (void);
-extern NCURSES_EXPORT(int) use_extended_names (bool);
extern NCURSES_EXPORT(int) use_legacy_coding (int);
extern NCURSES_EXPORT(int) use_screen (SCREEN *, NCURSES_SCREEN_CB, void *);
extern NCURSES_EXPORT(int) use_window (WINDOW *, NCURSES_WINDOW_CB, void *);
extern NCURSES_EXPORT(int) wresize (WINDOW *, int, int);
-extern NCURSES_EXPORT(void) nofilter(void);
+
+#if @NCURSES_XNAMES@
+#undef NCURSES_XNAMES
+#define NCURSES_XNAMES @NCURSES_XNAMES@
+extern NCURSES_EXPORT(int) use_extended_names (bool);
+#endif
/*
* These extensions provide access to information stored in the WINDOW even
@@ -1020,20 +1092,24 @@ extern NCURSES_EXPORT(void) NCURSES_SP_NAME(use_tioctl) (SCREEN*, bool); /* impl
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vidattr) (SCREEN*, chtype); /* implemented:SP_FUNC */
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vidputs) (SCREEN*, chtype, NCURSES_SP_OUTC); /* implemented:SP_FUNC */
#if @NCURSES_EXT_FUNCS@
-extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(keybound) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(alloc_pair) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(assume_default_colors) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(define_key) (SCREEN*, const char *, int); /* implemented:EXT_SP_FUNC */
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(extended_color_content) (SCREEN*, int, int *, int *, int *); /* implemented:EXT_SP_FUNC */
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(extended_pair_content) (SCREEN*, int, int *, int *); /* implemented:EXT_SP_FUNC */
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(extended_slk_color) (SCREEN*, int); /* implemented:EXT_SP_FUNC */
-extern NCURSES_EXPORT(int) NCURSES_SP_NAME(get_escdelay) (SCREEN*); /* implemented:EXT_SP_FUNC */
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(find_pair) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(free_pair) (SCREEN*, int); /* implemented:EXT_SP_FUNC */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(get_escdelay) (SCREEN*); /* implemented:EXT_SP_FUNC */
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_extended_color) (SCREEN*, int, int, int, int); /* implemented:EXT_SP_FUNC */
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_extended_pair) (SCREEN*, int, int, int); /* implemented:EXT_SP_FUNC */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(is_cbreak) (SCREEN*); /* implemented:EXT_SP_FUNC */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(is_echo) (SCREEN*); /* implemented:EXT_SP_FUNC */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(is_nl) (SCREEN*); /* implemented:EXT_SP_FUNC */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(is_raw) (SCREEN*); /* implemented:EXT_SP_FUNC */
extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(is_term_resized) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(key_defined) (SCREEN*, const char *); /* implemented:EXT_SP_FUNC */
+extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(keybound) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(keyok) (SCREEN*, int, bool); /* implemented:EXT_SP_FUNC */
extern NCURSES_EXPORT(void) NCURSES_SP_NAME(nofilter) (SCREEN*); /* implemented */ /* implemented:EXT_SP_FUNC */
extern NCURSES_EXPORT(void) NCURSES_SP_NAME(reset_color_pairs) (SCREEN*); /* implemented:EXT_SP_FUNC */
diff --git a/include/curses.tail b/include/curses.tail
index 05f7439eff9d..9c9135656048 100644
--- a/include/curses.tail
+++ b/include/curses.tail
@@ -1,4 +1,4 @@
-/* $Id: curses.tail,v 1.25 2019/12/14 22:28:39 tom Exp $ */
+/* $Id: curses.tail,v 1.27 2023/08/05 19:43:46 tom Exp $ */
/*
* vile:cmode:
* This file is part of ncurses, designed to be appended after curses.h.in
@@ -13,12 +13,12 @@
#define NCURSES_MOUSE_MASK(b,m) ((m) << (((b) - 1) * 6))
#endif
-#define NCURSES_BUTTON_RELEASED 001L
-#define NCURSES_BUTTON_PRESSED 002L
-#define NCURSES_BUTTON_CLICKED 004L
-#define NCURSES_DOUBLE_CLICKED 010L
-#define NCURSES_TRIPLE_CLICKED 020L
-#define NCURSES_RESERVED_EVENT 040L
+#define NCURSES_BUTTON_RELEASED 001UL
+#define NCURSES_BUTTON_PRESSED 002UL
+#define NCURSES_BUTTON_CLICKED 004UL
+#define NCURSES_DOUBLE_CLICKED 010UL
+#define NCURSES_TRIPLE_CLICKED 020UL
+#define NCURSES_RESERVED_EVENT 040UL
/* event masks */
#define BUTTON1_RELEASED NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_RELEASED)
@@ -174,7 +174,7 @@ extern NCURSES_EXPORT(const char *) _nc_visbuf (const char *);
#define OPTIMIZE_ALL 0xff /* enable all optimizations (dflt) */
#endif
-extern NCURSES_EXPORT(void) exit_curses (int) GCC_NORETURN;
+extern GCC_NORETURN NCURSES_EXPORT(void) exit_curses (int);
#include <unctrl.h>
diff --git a/include/curses.wide b/include/curses.wide
index 7a8ae7d5fa13..33adb070d7b1 100644
--- a/include/curses.wide
+++ b/include/curses.wide
@@ -1,4 +1,4 @@
-/* $Id: curses.wide,v 1.50 2017/03/26 16:05:21 tom Exp $ */
+/* $Id: curses.wide,v 1.51 2021/05/22 20:28:29 tom Exp $ */
/*
* vile:cmode:
* This file is part of ncurses, designed to be appended after curses.h.in
@@ -219,10 +219,12 @@ extern NCURSES_EXPORT(int) wvline_set (WINDOW *, const cchar_t *, int); /* imple
#if NCURSES_SP_FUNCS
extern NCURSES_EXPORT(attr_t) NCURSES_SP_NAME(term_attrs) (SCREEN*); /* implemented:SP_FUNC */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(erasewchar) (SCREEN*, wchar_t *); /* implemented:SP_FUNC */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(killwchar) (SCREEN*, wchar_t *); /* implemented:SP_FUNC */
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(unget_wch) (SCREEN*, const wchar_t); /* implemented:SP_FUNC */
-extern NCURSES_EXPORT(wchar_t*) NCURSES_SP_NAME(wunctrl) (SCREEN*, cchar_t *); /* implemented:SP_FUNC */
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vid_attr) (SCREEN*, attr_t, NCURSES_PAIRS_T, void *); /* implemented:SP_FUNC */
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vid_puts) (SCREEN*, attr_t, NCURSES_PAIRS_T, void *, NCURSES_SP_OUTC); /* implemented:SP_FUNC */
+extern NCURSES_EXPORT(wchar_t*) NCURSES_SP_NAME(wunctrl) (SCREEN*, cchar_t *); /* implemented:SP_FUNC */
#endif
#ifndef NCURSES_NOMACROS
diff --git a/include/edit_cfg.sh b/include/edit_cfg.sh
index f7f1795654f2..559b1575443f 100755
--- a/include/edit_cfg.sh
+++ b/include/edit_cfg.sh
@@ -1,7 +1,7 @@
#!/bin/sh
-# $Id: edit_cfg.sh,v 1.14 2020/02/02 23:34:34 tom Exp $
+# $Id: edit_cfg.sh,v 1.16 2022/07/16 18:02:32 tom Exp $
##############################################################################
-# Copyright 2020 Thomas E. Dickey #
+# Copyright 2020,2022 Thomas E. Dickey #
# Copyright 1998-2001,2017 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -39,15 +39,16 @@
#
BAK=save$$
TMP=edit$$
-trap "rm -f $BAK $TMP" 0 1 2 3 15
+trap "rm -f $BAK $TMP; exit 1" 1 2 3 15
+trap "rm -f $BAK $TMP" 0
for name in \
HAVE_TCGETATTR \
HAVE_TERMIOS_H \
HAVE_TERMIO_H \
BROKEN_LINKER
do
- mv $2 $BAK
- if ( grep "[ ]$name[ ]" $1 2>&1 >$TMP )
+ mv "$2" "$BAK"
+ if ( grep "[ ]${name}[ ]" "$1" >$TMP 2>&1 )
then
value=1
else
@@ -58,11 +59,11 @@ do
-e "s@#define ${name}.*\$@#define $name $value@" \
-e "s@#if $name\$@#if $value /* $name */@" \
-e "s@#if !$name\$@#if $value /* !$name */@" \
- $BAK >$2
- if (cmp -s $2 $BAK)
+ "$BAK" >"$2"
+ if (cmp -s "$2" "$BAK")
then
- mv $BAK $2
+ mv "$BAK" "$2"
else
- rm -f $BAK
+ rm -f "$BAK"
fi
done
diff --git a/include/headers b/include/headers
index 32e33fdbc734..e1293b28a549 100644
--- a/include/headers
+++ b/include/headers
@@ -1,6 +1,6 @@
-# $Id: headers,v 1.15 2020/08/29 18:51:13 tom Exp $
+# $Id: headers,v 1.16 2023/04/22 12:09:09 tom Exp $
##############################################################################
-# Copyright 2020 Thomas E. Dickey #
+# Copyright 2020,2023 Thomas E. Dickey #
# Copyright 1998-2012,2013 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -39,11 +39,9 @@ ncurses_dll.h
term.h
termcap.h
-# Headers used only for tic, other programs using internal interfaces
+# Header used by tack 1.08
@ ticlib
-$(srcdir)/tic.h
$(srcdir)/term_entry.h
-$(srcdir)/nc_tparm.h
# Porting
@ port_win32con
diff --git a/include/nc_access.h b/include/nc_access.h
new file mode 100644
index 000000000000..1d2fb0a4ec5e
--- /dev/null
+++ b/include/nc_access.h
@@ -0,0 +1,80 @@
+/****************************************************************************
+ * Copyright 2021,2023 Thomas E. Dickey *
+ * *
+ * 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: nc_access.h,v 1.6 2023/05/06 10:54:55 tom Exp $ */
+
+#ifndef NC_ACCESS_included
+#define NC_ACCESS_included 1
+/* *INDENT-OFF* */
+
+#include <ncurses_cfg.h>
+#include <curses.h>
+#include <sys/types.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Turn off the 'use_terminfo_vars()' symbol to limit access to environment
+ * variables when running with privileges.
+ */
+#if defined(USE_ROOT_ENVIRON) && defined(USE_SETUID_ENVIRON)
+#define use_terminfo_vars() 1
+#else
+#define use_terminfo_vars() _nc_env_access()
+#endif
+
+extern NCURSES_EXPORT(int) _nc_env_access (void);
+
+/*
+ * Turn off this symbol to limit access to files when running setuid.
+ */
+#ifdef USE_ROOT_ACCESS
+
+#define safe_fopen(name,mode) fopen(name,mode)
+#define safe_open2(name,flags) open(name,flags)
+#define safe_open3(name,flags,mode) open(name,flags,mode)
+
+#else
+
+#define safe_fopen(name,mode) _nc_safe_fopen(name,mode)
+#define safe_open2(name,flags) _nc_safe_open3(name,flags,0)
+#define safe_open3(name,flags,mode) _nc_safe_open3(name,flags,mode)
+extern NCURSES_EXPORT(FILE *) _nc_safe_fopen (const char *, const char *);
+extern NCURSES_EXPORT(int) _nc_safe_open3 (const char *, int, mode_t);
+
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+/* *INDENT-ON* */
+
+#endif /* NC_ACCESS_included */
diff --git a/include/nc_alloc.h b/include/nc_alloc.h
index 8d19f98e0f67..cfea2beb6daf 100644
--- a/include/nc_alloc.h
+++ b/include/nc_alloc.h
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2020,2021 Thomas E. Dickey *
* Copyright 1998-2013,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -30,7 +30,7 @@
/****************************************************************************
* Author: Thomas E. Dickey 1996-on *
****************************************************************************/
-/* $Id: nc_alloc.h,v 1.27 2020/07/04 20:01:13 tom Exp $ */
+/* $Id: nc_alloc.h,v 1.30 2021/11/20 23:33:38 tom Exp $ */
#ifndef NC_ALLOC_included
#define NC_ALLOC_included 1
@@ -73,27 +73,26 @@ extern "C" {
#if HAVE_LIBDBMALLOC || HAVE_LIBDMALLOC || NO_LEAKS
#define HAVE_NC_FREEALL 1
struct termtype;
-extern NCURSES_EXPORT(void) _nc_free_tinfo(int) GCC_NORETURN GCC_DEPRECATED("use exit_terminfo");
+extern GCC_NORETURN NCURSES_EXPORT(void) _nc_free_tinfo(int) GCC_DEPRECATED("use exit_terminfo");
#ifdef NCURSES_INTERNALS
-extern NCURSES_EXPORT(void) _nc_free_tic(int) GCC_NORETURN;
-extern NCURSES_EXPORT(void) _nc_free_tparm(void);
+extern GCC_NORETURN NCURSES_EXPORT(void) _nc_free_tic(int);
extern void _nc_leaks_dump_entry(void);
extern NCURSES_EXPORT(void) _nc_leaks_tic(void);
#if NCURSES_SP_FUNCS
-extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_free_and_exit)(SCREEN*, int) GCC_NORETURN;
+extern GCC_NORETURN NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_free_and_exit)(SCREEN*, int);
#endif
-extern NCURSES_EXPORT(void) _nc_free_and_exit(int) GCC_NORETURN;
+extern GCC_NORETURN NCURSES_EXPORT(void) _nc_free_and_exit(int);
#else /* !NCURSES_INTERNALS */
-extern NCURSES_EXPORT(void) _nc_free_and_exit(int) GCC_NORETURN GCC_DEPRECATED("use exit_curses");
+extern GCC_NORETURN NCURSES_EXPORT(void) _nc_free_and_exit(int) GCC_DEPRECATED("use exit_curses");
#endif
#define ExitProgram(code) exit_curses(code)
#else
-extern NCURSES_EXPORT(void) _nc_free_and_exit(int) GCC_NORETURN GCC_DEPRECATED("use exit_curses");
+extern GCC_NORETURN NCURSES_EXPORT(void) _nc_free_and_exit(int) GCC_DEPRECATED("use exit_curses");
#endif /* NO_LEAKS, etc */
#ifndef HAVE_NC_FREEALL
diff --git a/include/nc_mingw.h b/include/nc_mingw.h
index 6729b29d3d09..1bfc4b0d37c1 100644
--- a/include/nc_mingw.h
+++ b/include/nc_mingw.h
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2020,2023 Thomas E. Dickey *
* Copyright 2008-2010,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -31,7 +31,7 @@
* Author: Thomas Dickey, 2008-on *
****************************************************************************/
-/* $Id: nc_mingw.h,v 1.9 2020/07/11 22:13:19 tom Exp $ */
+/* $Id: nc_mingw.h,v 1.10 2023/02/25 19:59:24 tom Exp $ */
#ifndef NC_MINGW_H
#define NC_MINGW_H 1
@@ -50,9 +50,6 @@
#undef sleep
#define sleep(n) Sleep((n) * 1000)
-#undef gettimeofday
-#define gettimeofday(tv,tz) _nc_gettimeofday(tv,tz)
-
#if HAVE_SYS_TIME_H
#include <sys/time.h> /* for struct timeval */
#endif
@@ -67,10 +64,12 @@ extern "C" {
#include <ncurses_dll.h>
+#if !HAVE_CLOCK_GETTIME && !HAVE_GETTIMEOFDAY
NCURSES_EXPORT(int) _nc_gettimeofday(struct timeval *, void *);
-
#undef HAVE_GETTIMEOFDAY
-#define HAVE_GETTIMEOFDAY 1
+#define HAVE_GETTIMEOFDAY 2
+#define gettimeofday(tv,tz) _nc_gettimeofday(tv,tz)
+#endif
#define SIGHUP 1
#define SIGKILL 9
diff --git a/include/nc_string.h b/include/nc_string.h
index 93cf201507c7..546aa0695ba0 100644
--- a/include/nc_string.h
+++ b/include/nc_string.h
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 2012-2013,2016 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -41,7 +41,7 @@
#endif
/*
- * $Id: nc_string.h,v 1.8 2020/02/02 23:34:34 tom Exp $
+ * $Id: nc_string.h,v 1.9 2021/04/25 00:10:43 tom Exp $
*
* String-hacks. Use these macros to stifle warnings on (presumably) correct
* uses of strcat, strcpy and sprintf.
@@ -76,7 +76,11 @@
#endif
#if USE_STRING_HACKS && HAVE_SNPRINTF
+#ifdef __cplusplus
#define _nc_SPRINTF NCURSES_VOID snprintf
+#else
+#define _nc_SPRINTF NCURSES_VOID (snprintf)
+#endif
#define _nc_SLIMIT(n) NCURSES_CAST(size_t,n),
#else
#define _nc_SPRINTF NCURSES_VOID sprintf
diff --git a/include/nc_tparm.h b/include/nc_tparm.h
index 943d9476055d..78170993fa17 100644
--- a/include/nc_tparm.h
+++ b/include/nc_tparm.h
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2020,2023 Thomas E. Dickey *
* Copyright 2006-2012,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -31,7 +31,7 @@
* Author: Thomas E. Dickey 2006 *
****************************************************************************/
-/* $Id: nc_tparm.h,v 1.11 2020/05/27 23:33:31 tom Exp $ */
+/* $Id: nc_tparm.h,v 1.12 2023/04/16 17:57:28 tom Exp $ */
#ifndef NC_TPARM_included
#define NC_TPARM_included 1
@@ -78,6 +78,7 @@
#endif
#ifdef NCURSES_INTERNALS
+#define TIPARM_0(s) _nc_tiparm(0,s)
#define TIPARM_1(s,a) _nc_tiparm(1,s,a)
#define TIPARM_2(s,a,b) _nc_tiparm(2,s,a,b)
#define TIPARM_3(s,a,b,c) _nc_tiparm(3,s,a,b,c)
diff --git a/include/nc_win32.h b/include/nc_win32.h
index 790e8dfe9388..e67b8e045506 100644
--- a/include/nc_win32.h
+++ b/include/nc_win32.h
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2020,2023 Thomas E. Dickey *
* Copyright 2008-2010,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -31,7 +31,7 @@
* Author: Thomas Dickey, 2008-on *
****************************************************************************/
-/* $Id: nc_win32.h,v 1.9 2020/09/13 00:17:30 tom Exp $ */
+/* $Id: nc_win32.h,v 1.10 2023/02/25 20:09:23 tom Exp $ */
#ifndef NC_WIN32_H
#define NC_WIN32_H 1
@@ -79,9 +79,11 @@ extern "C" {
#include <ncurses_dll.h>
+#if !HAVE_CLOCK_GETTIME && !HAVE_GETTIMEOFDAY
#undef HAVE_GETTIMEOFDAY
-#define HAVE_GETTIMEOFDAY 1
+#define HAVE_GETTIMEOFDAY 2
extern NCURSES_EXPORT(int) _nc_gettimeofday(struct timeval *, void *);
+#endif
#undef wcwidth
#define wcwidth(ucs) _nc_wcwidth((wchar_t)(ucs))
diff --git a/include/ncurses_defs b/include/ncurses_defs
index b805c8414182..c0da3ad53ecc 100644
--- a/include/ncurses_defs
+++ b/include/ncurses_defs
@@ -1,6 +1,6 @@
-# $Id: ncurses_defs,v 1.95 2020/08/01 19:48:21 tom Exp $
+# $Id: ncurses_defs,v 1.110 2024/03/02 20:38:23 tom Exp $
##############################################################################
-# Copyright 2018-2019,2020 Thomas E. Dickey #
+# Copyright 2018-2023,2024 Thomas E. Dickey #
# Copyright 2000-2016,2017 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -48,16 +48,19 @@ HAVE_BIG_CORE
HAVE_BSD_CGETENT
HAVE_BSD_SIGNAL_H
HAVE_BSD_STRING_H
-HAVE_BTOWC
+HAVE_BTOWC
HAVE_BUILTIN_H
HAVE_CHGAT 1
+HAVE_CLOCK_GETTIME
HAVE_COLOR_CONTENT 1
HAVE_COLOR_SET 1
HAVE_CONSISTENT_GETENV
+HAVE_CONSISTENT_MB_LEN_MAX
HAVE_COPYWIN 1
HAVE_CURSCR 1
HAVE_CURSES_DATA_TABSIZE 1
HAVE_CURSES_DATA_TTYTYPE 1
+HAVE_CURSES_TRACE 1
HAVE_DELSCREEN 1
HAVE_DERWIN 1
HAVE_DIRENT_H
@@ -68,6 +71,8 @@ HAVE_EXIT_TERMINFO 1
HAVE_FCNTL_H
HAVE_FILTER 1
HAVE_FORM_H
+HAVE_FPATHCONF
+HAVE_GETAUXVAL
HAVE_GETBEGX 1
HAVE_GETCURX 1
HAVE_GETCWD
@@ -79,6 +84,7 @@ HAVE_GETOPT_H
HAVE_GETPARX 1
HAVE_GETTIMEOFDAY
HAVE_GETTTYNAM
+HAVE_GETUID
HAVE_GETWIN 1
HAVE_GPM_H
HAVE_GPP_BUILTIN_H
@@ -105,6 +111,7 @@ HAVE_LINK
HAVE_LOCALECONV
HAVE_LOCALE_H
HAVE_LONG_FILE_NAMES
+HAVE_MATH_FUNCS
HAVE_MATH_H
HAVE_MBLEN
HAVE_MBRLEN
@@ -119,16 +126,18 @@ HAVE_MVVLINE 1
HAVE_MVWIN 1
HAVE_MVWVLINE 1
HAVE_NANOSLEEP
+HAVE_NAPMS 1
HAVE_NC_ALLOC_H
HAVE_NEWPAD 1
HAVE_PANEL_H
+HAVE_PATH_TTYS
HAVE_PCRE2POSIX_H
HAVE_PCREPOSIX_H
HAVE_POLL
HAVE_POLL_H
HAVE_PURIFY
HAVE_PUTENV
-HAVE_PUTWC
+HAVE_PUTWC
HAVE_PUTWIN 1
HAVE_REGEXPR_H_FUNCS
HAVE_REGEXP_H_FUNCS
@@ -144,6 +153,7 @@ HAVE_SELECT
HAVE_SETBUF
HAVE_SETBUFFER
HAVE_SETENV
+HAVE_SETFSUID
HAVE_SETUPTERM 1
HAVE_SETVBUF
HAVE_SGTTY_H
@@ -161,6 +171,7 @@ HAVE_STRSTR
HAVE_SYMLINK
HAVE_SYSCONF
HAVE_SYS_BSDTYPES_H
+HAVE_SYS_AUXV_H
HAVE_SYS_IOCTL_H
HAVE_SYS_PARAM_H
HAVE_SYS_POLL_H
@@ -182,20 +193,23 @@ HAVE_TERM_H 1
HAVE_TGETENT 1
HAVE_TIGETNUM 1
HAVE_TIGETSTR 1
+HAVE_TIPARM 1
+HAVE_TIPARM_S 1
+HAVE_TISCAN_S 1
HAVE_TIMES
HAVE_TPUTS_SP
HAVE_TSEARCH
-HAVE_TTYENT_H
HAVE_TYPEAHEAD 1
HAVE_TYPEINFO
HAVE_TYPE_ATTR_T
HAVE_TYPE_SIGACTION
HAVE_UNCTRL_H 1
+HAVE_UNGET_WCH 1
HAVE_UNISTD_H
HAVE_UNLINK
HAVE_USE_DEFAULT_COLORS
HAVE_USE_ENV 1
-HAVE_USE_EXTENDED_NAMES
+HAVE_USE_EXTENDED_NAMES NCURSES_XNAMES
HAVE_USE_SCREEN
HAVE_USE_WINDOW
HAVE_VFSCANF
@@ -207,16 +221,18 @@ HAVE_VW_PRINTW 1
HAVE_WCHGAT 1
HAVE_WCSRTOMBS
HAVE_WCSTOMBS
-HAVE_WCTOB
+HAVE_WCTOB
HAVE_WCTOMB
HAVE_WCTYPE_H
HAVE_WINSDELLN 1
HAVE_WINSSTR 1
+HAVE_WMEMCHR
HAVE_WORKING_POLL
HAVE_WRESIZE
HAVE_WSYNCDOWN 1
HAVE__DOSCAN
HAVE__TRACEF
+HAVE__NC_TPARM_ANALYZE 1
MIXEDCASE_FILENAMES
NCURSES_CHAR_EQ
NCURSES_EXPANDED
diff --git a/include/ncurses_dll.h.in b/include/ncurses_dll.h.in
index 437c54de0271..401d47a81667 100644
--- a/include/ncurses_dll.h.in
+++ b/include/ncurses_dll.h.in
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2020,2023 Thomas E. Dickey *
* Copyright 2009,2014 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -26,7 +26,7 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************/
-/* $Id: ncurses_dll.h.in,v 1.17 2020/09/05 17:58:47 juergen Exp $ */
+/* $Id: ncurses_dll.h.in,v 1.18 2023/05/06 20:12:43 tom Exp $ */
#ifndef NCURSES_DLL_H_incl
#define NCURSES_DLL_H_incl 1
@@ -92,7 +92,11 @@
# define NCURSES_API __cdecl
#else
# define NCURSES_EXPORT_GENERAL_IMPORT
-# define NCURSES_EXPORT_GENERAL_EXPORT
+# if (__GNUC__ >= 4) && !defined(__cplusplus)
+# define NCURSES_EXPORT_GENERAL_EXPORT __attribute__((visibility ("default")))
+# else
+# define NCURSES_EXPORT_GENERAL_EXPORT
+# endif
# define NCURSES_API /* FIXME: __attribute__ ((cdecl)) is only available on x86 */
#endif
diff --git a/include/ncurses_mingw.h b/include/ncurses_mingw.h
index fc77aca8b050..8b11272de64d 100644
--- a/include/ncurses_mingw.h
+++ b/include/ncurses_mingw.h
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2020,2021 Thomas E. Dickey *
* Copyright 2008-2014,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,10 +28,10 @@
****************************************************************************/
/****************************************************************************
- * Author: Juergen Pfeifer, 2008-on *
+ * Author: Juergen Pfeifer, 2008-on *
****************************************************************************/
-/* $Id: ncurses_mingw.h,v 1.6 2020/02/02 23:34:34 tom Exp $ */
+/* $Id: ncurses_mingw.h,v 1.7 2021/06/17 21:26:02 tom Exp $ */
/*
* This is a placeholder up to now and describes what needs to be implemented
@@ -67,14 +67,14 @@ struct termios
};
extern NCURSES_EXPORT(int) _nc_mingw_tcsetattr(
- int fd,
- int optional_actions,
+ int fd,
+ int optional_actions,
const struct termios* arg);
extern NCURSES_EXPORT(int) _nc_mingw_tcgetattr(
- int fd,
+ int fd,
struct termios* arg);
extern NCURSES_EXPORT(int) _nc_mingw_tcflush(
- int fd,
+ int fd,
int queue);
extern NCURSES_EXPORT(void) _nc_set_term_driver(void* term);
diff --git a/include/term_entry.h b/include/term_entry.h
index 18e4b87aab77..24389ad3837e 100644
--- a/include/term_entry.h
+++ b/include/term_entry.h
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2022,2023 Thomas E. Dickey *
* Copyright 1998-2015,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -33,7 +33,7 @@
* and: Thomas E. Dickey 1998-on *
****************************************************************************/
-/* $Id: term_entry.h,v 1.60 2020/02/29 15:46:00 anonymous.maarten Exp $ */
+/* $Id: term_entry.h,v 1.64 2023/04/22 13:37:14 tom Exp $ */
/*
* term_entry.h -- interface to entry-manipulation code
@@ -135,6 +135,7 @@ struct entry {
extern NCURSES_EXPORT_VAR(ENTRY *) _nc_head;
extern NCURSES_EXPORT_VAR(ENTRY *) _nc_tail;
#define for_entry_list(qp) for (qp = _nc_head; qp; qp = qp->next)
+#define for_entry_list2(qp,q0) for (qp = q0; qp; qp = qp->next)
#define MAX_LINE 132
@@ -142,7 +143,7 @@ extern NCURSES_EXPORT_VAR(ENTRY *) _nc_tail;
/*
* Note that WANTED and PRESENT are not simple inverses! If a capability
- * has been explicitly cancelled, it's not considered WANTED.
+ * has been explicitly cancelled, it is not considered WANTED.
*/
#define WANTED(s) ((s) == ABSENT_STRING)
#define PRESENT(s) (((s) != ABSENT_STRING) && ((s) != CANCELLED_STRING))
@@ -176,6 +177,8 @@ extern NCURSES_EXPORT(void) _nc_wrap_entry (ENTRY *const, bool);
extern NCURSES_EXPORT(void) _nc_align_termtype (TERMTYPE2 *, TERMTYPE2 *);
/* free_ttype.c: elementary allocation code */
+extern NCURSES_EXPORT(void) _nc_free_termtype (TERMTYPE *);
+extern NCURSES_EXPORT(void) _nc_free_termtype1 (TERMTYPE *);
extern NCURSES_EXPORT(void) _nc_free_termtype2 (TERMTYPE2 *);
/* lib_termcap.c: trim sgr0 string for termcap users */
@@ -208,26 +211,6 @@ extern NCURSES_EXPORT(void) _nc_trace_xnames (TERMTYPE *);
#endif /* NCURSES_INTERNALS */
-/*
- * These entrypoints were used by tack before 1.08.
- */
-
-#undef NCURSES_TACK_1_08
-#ifdef NCURSES_INTERNALS
-#define NCURSES_TACK_1_08 /* nothing */
-#else
-#define NCURSES_TACK_1_08 GCC_DEPRECATED("upgrade to tack 1.08")
-#endif
-
-/* alloc_ttype.c: elementary allocation code */
-extern NCURSES_EXPORT(void) _nc_copy_termtype (TERMTYPE *, const TERMTYPE *) NCURSES_TACK_1_08;
-
-/* lib_acs.c */
-extern NCURSES_EXPORT(void) _nc_init_acs (void) NCURSES_TACK_1_08; /* corresponds to traditional 'init_acs()' */
-
-/* free_ttype.c: elementary allocation code */
-extern NCURSES_EXPORT(void) _nc_free_termtype (TERMTYPE *) NCURSES_TACK_1_08;
-
#ifdef __cplusplus
}
#endif
diff --git a/include/termcap.h.in b/include/termcap.h.in
index dc8d8fc949a8..7b7c70378153 100644
--- a/include/termcap.h.in
+++ b/include/termcap.h.in
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2020,2021 Thomas E. Dickey *
* Copyright 1998-2000,2001 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -32,7 +32,7 @@
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
****************************************************************************/
-/* $Id: termcap.h.in,v 1.19 2020/02/02 23:34:34 tom Exp $ */
+/* $Id: termcap.h.in,v 1.20 2021/06/17 21:26:02 tom Exp $ */
#ifndef NCURSES_TERMCAP_H_incl
#define NCURSES_TERMCAP_H_incl 1
@@ -49,13 +49,13 @@ extern "C"
#include <sys/types.h>
-#undef NCURSES_OSPEED
-#define NCURSES_OSPEED @NCURSES_OSPEED@
+#undef NCURSES_OSPEED
+#define NCURSES_OSPEED @NCURSES_OSPEED@
extern NCURSES_EXPORT_VAR(char) PC;
extern NCURSES_EXPORT_VAR(char *) UP;
extern NCURSES_EXPORT_VAR(char *) BC;
-extern NCURSES_EXPORT_VAR(NCURSES_OSPEED) ospeed;
+extern NCURSES_EXPORT_VAR(NCURSES_OSPEED) ospeed;
#if !defined(NCURSES_TERM_H_incl)
extern NCURSES_EXPORT(char *) tgetstr (const char *, char **);
diff --git a/include/tic.h b/include/tic.h
index 8210936cc857..7569aae9fb5f 100644
--- a/include/tic.h
+++ b/include/tic.h
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2022,2023 Thomas E. Dickey *
* Copyright 1998-2012,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -34,7 +34,7 @@
****************************************************************************/
/*
- * $Id: tic.h,v 1.81 2020/02/02 23:34:34 tom Exp $
+ * $Id: tic.h,v 1.87 2023/04/22 13:37:21 tom Exp $
* tic.h - Global variables and structures for the terminfo compiler.
*/
@@ -135,8 +135,7 @@ extern "C" {
#define DEBUG_LEVEL(n) ((n) << TRACE_SHIFT)
#define set_trace_level(n) \
- _nc_tracing &= DEBUG_LEVEL(MAX_DEBUG_LEVEL) \
- + DEBUG_LEVEL(MAX_DEBUG_LEVEL) - 1, \
+ _nc_tracing &= TRACE_MAXIMUM, \
_nc_tracing |= DEBUG_LEVEL(n)
#ifdef TRACE
@@ -302,11 +301,11 @@ extern NCURSES_EXPORT_VAR(long) _nc_start_line;
/* comp_error.c: warning & abort messages */
extern NCURSES_EXPORT(const char *) _nc_get_source (void);
-extern NCURSES_EXPORT(void) _nc_err_abort (const char *const,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
+extern GCC_NORETURN NCURSES_EXPORT(void) _nc_err_abort (const char *const,...) GCC_PRINTFLIKE(1,2);
extern NCURSES_EXPORT(void) _nc_get_type (char *name);
extern NCURSES_EXPORT(void) _nc_set_source (const char *const);
extern NCURSES_EXPORT(void) _nc_set_type (const char *const);
-extern NCURSES_EXPORT(void) _nc_syserr_abort (const char *const,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
+extern GCC_NORETURN NCURSES_EXPORT(void) _nc_syserr_abort (const char *const,...) GCC_PRINTFLIKE(1,2);
extern NCURSES_EXPORT(void) _nc_warning (const char *const,...) GCC_PRINTFLIKE(1,2);
extern NCURSES_EXPORT_VAR(bool) _nc_suppress_warnings;
@@ -337,7 +336,8 @@ extern NCURSES_EXPORT_VAR(const struct tinfo_fkeys) _nc_tinfo_fkeys[];
extern NCURSES_EXPORT_VAR(int) _nc_tparm_err;
-extern NCURSES_EXPORT(int) _nc_tparm_analyze(const char *, char **, int *);
+extern NCURSES_EXPORT(int) _nc_tparm_analyze(TERMINAL *, const char *, char **, int *);
+extern NCURSES_EXPORT(void) _nc_reset_tparm(TERMINAL *);
/* lib_trace.c */
extern NCURSES_EXPORT_VAR(unsigned) _nc_tracing;
@@ -347,6 +347,14 @@ extern NCURSES_EXPORT(const char *) _nc_visbuf2 (int, const char *);
/* lib_tputs.c */
extern NCURSES_EXPORT_VAR(int) _nc_nulls_sent; /* Add one for every null sent */
+/* comp_expand.c: expand string into readable form */
+extern NCURSES_EXPORT(char *) _nc_tic_expand (const char *, bool, int);
+
+/* comp_hash.c: name lookup */
+extern NCURSES_EXPORT(struct name_table_entry const *) _nc_find_entry
+ (const char *, const HashValue *);
+extern NCURSES_EXPORT(const HashValue *) _nc_get_hash_table (bool);
+
/* comp_main.c: compiler main */
extern const char * _nc_progname;
@@ -361,31 +369,6 @@ extern NCURSES_EXPORT(int) _nc_tic_written (void);
#endif /* NCURSES_INTERNALS */
-/*
- * These entrypoints were used by tack before 1.08.
- */
-
-#undef NCURSES_TACK_1_08
-#ifdef NCURSES_INTERNALS
-#define NCURSES_TACK_1_08 /* nothing */
-#else
-#define NCURSES_TACK_1_08 GCC_DEPRECATED("upgrade to tack 1.08")
-#endif
-
-/* comp_hash.c: name lookup */
-extern NCURSES_EXPORT(struct name_table_entry const *) _nc_find_entry
- (const char *, const HashValue *) NCURSES_TACK_1_08;
-extern NCURSES_EXPORT(const HashValue *) _nc_get_hash_table (bool) NCURSES_TACK_1_08;
-
-/* comp_scan.c: lexical analysis */
-extern NCURSES_EXPORT(void) _nc_reset_input (FILE *, char *) NCURSES_TACK_1_08;
-
-/* comp_expand.c: expand string into readable form */
-extern NCURSES_EXPORT(char *) _nc_tic_expand (const char *, bool, int) NCURSES_TACK_1_08;
-
-/* comp_scan.c: decode string from readable form */
-extern NCURSES_EXPORT(int) _nc_trans_string (char *, char *) NCURSES_TACK_1_08;
-
#endif /* NCURSES_TERM_ENTRY_H_incl */
#ifdef __cplusplus
diff --git a/include/win32_curses.h b/include/win32_curses.h
index 5babf47d214a..0c807a022b15 100644
--- a/include/win32_curses.h
+++ b/include/win32_curses.h
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2020,2021 Thomas E. Dickey *
* Copyright 2008-2014,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,10 +28,10 @@
****************************************************************************/
/****************************************************************************
- * Author: Juergen Pfeifer, 2008-on *
+ * Author: Juergen Pfeifer, 2008-on *
****************************************************************************/
-/* $Id: win32_curses.h,v 1.2 2020/11/14 23:52:46 tom Exp $ */
+/* $Id: win32_curses.h,v 1.3 2021/06/17 21:26:02 tom Exp $ */
/*
* This is the interface we use on Windows to mimic the control of the settings
diff --git a/install-sh b/install-sh
index 462fa9c3d57b..ec298b537402 100755
--- a/install-sh
+++ b/install-sh
@@ -1,7 +1,8 @@
-#! /bin/sh
-#
+#!/bin/sh
# install - install a program, script, or datafile
-#
+
+scriptversion=2020-11-14.01; # UTC
+
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
# following copyright and license.
@@ -34,261 +35,507 @@
# FSF changes to this file are in the public domain.
#
# Calling this script install-sh is preferred over install.sh, to prevent
-# `make' implicit rules from creating a file called install from it
+# 'make' implicit rules from creating a file called install from it
# when there is no Makefile.
#
# This script is compatible with the BSD install script, but was written
-# from scratch. It can only install one file at a time, a restriction
-# shared with many OS's install programs.
+# from scratch.
+
+tab=' '
+nl='
+'
+IFS=" $tab$nl"
+
+# Set DOITPROG to "echo" to test this script.
+doit=${DOITPROG-}
+doit_exec=${doit:-exec}
-# set DOITPROG to echo to test this script
+# Put in absolute file names if you don't have them in your path;
+# or use environment vars.
-# Don't use :- since 4.3BSD and earlier shells don't like it.
-doit="${DOITPROG-}"
+chgrpprog=${CHGRPPROG-chgrp}
+chmodprog=${CHMODPROG-chmod}
+chownprog=${CHOWNPROG-chown}
+cmpprog=${CMPPROG-cmp}
+cpprog=${CPPROG-cp}
+mkdirprog=${MKDIRPROG-mkdir}
+mvprog=${MVPROG-mv}
+rmprog=${RMPROG-rm}
+stripprog=${STRIPPROG-strip}
+posix_mkdir=
-# put in absolute paths if you don't have them in your path; or use env. vars.
+# Desired mode of installed file.
+mode=0755
-mvprog="${MVPROG-mv}"
-cpprog="${CPPROG-cp}"
-chmodprog="${CHMODPROG-chmod}"
-chownprog="${CHOWNPROG-chown}"
-chgrpprog="${CHGRPPROG-chgrp}"
-stripprog="${STRIPPROG-strip}"
-rmprog="${RMPROG-rm}"
-mkdirprog="${MKDIRPROG-mkdir}"
+# Create dirs (including intermediate dirs) using mode 755.
+# This is like GNU 'install' as of coreutils 8.32 (2020).
+mkdir_umask=22
-transformbasename=""
-transform_arg=""
-instcmd="$mvprog"
-chmodcmd="$chmodprog 0755"
-chowncmd=""
-chgrpcmd=""
-stripcmd=""
+backupsuffix=
+chgrpcmd=
+chmodcmd=$chmodprog
+chowncmd=
+mvcmd=$mvprog
rmcmd="$rmprog -f"
-mvcmd="$mvprog"
-src=""
-dst=""
-dir_arg=""
-
-while [ x"$1" != x ]; do
- case $1 in
- -c) instcmd=$cpprog
- shift
- continue;;
-
- -d) dir_arg=true
- shift
- continue;;
-
- -m) chmodcmd="$chmodprog $2"
- shift
- shift
- continue;;
-
- -o) chowncmd="$chownprog $2"
- shift
- shift
- continue;;
-
- -g) chgrpcmd="$chgrpprog $2"
- shift
- shift
- continue;;
-
- -s) stripcmd=$stripprog
- shift
- continue;;
-
- -t=*) transformarg=`echo $1 | sed 's/-t=//'`
- shift
- continue;;
-
- -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
- shift
- continue;;
-
- *) if [ x"$src" = x ]
- then
- src=$1
- else
- # this colon is to work around a 386BSD /bin/sh bug
- :
- dst=$1
- fi
- shift
- continue;;
- esac
-done
+stripcmd=
-if [ x"$src" = x ]
-then
- echo "$0: no input file specified" >&2
- exit 1
-else
- :
-fi
+src=
+dst=
+dir_arg=
+dst_arg=
-if [ x"$dir_arg" != x ]; then
- dst=$src
- src=""
+copy_on_change=false
+is_target_a_directory=possibly
- if [ -d "$dst" ]; then
- instcmd=:
- chmodcmd=""
- else
- instcmd=$mkdirprog
- fi
-else
+usage="\
+Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
+ or: $0 [OPTION]... SRCFILES... DIRECTORY
+ or: $0 [OPTION]... -t DIRECTORY SRCFILES...
+ or: $0 [OPTION]... -d DIRECTORIES...
-# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
-# might cause directories to be created, which would be especially bad
-# if $src (and thus $dsttmp) contains '*'.
+In the 1st form, copy SRCFILE to DSTFILE.
+In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
+In the 4th, create DIRECTORIES.
- if [ -f "$src" ] || [ -d "$src" ]
- then
- :
- else
- echo "$0: $src does not exist" >&2
- exit 1
- fi
+Options:
+ --help display this help and exit.
+ --version display version info and exit.
- if [ x"$dst" = x ]
- then
- echo "$0: no destination specified" >&2
- exit 1
- else
- :
- fi
+ -c (ignored)
+ -C install only if different (preserve data modification time)
+ -d create directories instead of installing files.
+ -g GROUP $chgrpprog installed files to GROUP.
+ -m MODE $chmodprog installed files to MODE.
+ -o USER $chownprog installed files to USER.
+ -p pass -p to $cpprog.
+ -s $stripprog installed files.
+ -S SUFFIX attempt to back up existing files, with suffix SUFFIX.
+ -t DIRECTORY install into DIRECTORY.
+ -T report an error if DSTFILE is a directory.
-# If destination is a directory, append the input filename; if your system
-# does not like double slashes in filenames, you may need to add some logic
+Environment variables override the default commands:
+ CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
+ RMPROG STRIPPROG
- if [ -d "$dst" ]
- then
- dst=$dst/`basename "$src"`
- else
- :
- fi
-fi
+By default, rm is invoked with -f; when overridden with RMPROG,
+it's up to you to specify -f if you want it.
-## this sed command emulates the dirname command
-dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
+If -S is not specified, no backups are attempted.
-# Make sure that the destination directory exists.
-# this part is taken from Noah Friedman's mkinstalldirs script
+Email bug reports to bug-automake@gnu.org.
+Automake home page: https://www.gnu.org/software/automake/
+"
-# Skip lots of stat calls in the usual case.
-if [ ! -d "$dstdir" ]; then
-defaultIFS='
- '
-IFS="${IFS-$defaultIFS}"
+while test $# -ne 0; do
+ case $1 in
+ -c) ;;
-oIFS=$IFS
-# Some sh's can't handle IFS=/ for some reason.
-IFS='%'
-set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
-IFS=$oIFS
+ -C) copy_on_change=true;;
-pathcomp=''
+ -d) dir_arg=true;;
-while [ $# -ne 0 ] ; do
- pathcomp=$pathcomp$1
- shift
+ -g) chgrpcmd="$chgrpprog $2"
+ shift;;
- if [ ! -d "$pathcomp" ] ;
- then
- $mkdirprog "$pathcomp"
- else
- :
- fi
+ --help) echo "$usage"; exit $?;;
- pathcomp=$pathcomp/
-done
-fi
+ -m) mode=$2
+ case $mode in
+ *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
+ echo "$0: invalid mode: $mode" >&2
+ exit 1;;
+ esac
+ shift;;
-if [ x"$dir_arg" != x ]
-then
- $doit $instcmd "$dst" &&
+ -o) chowncmd="$chownprog $2"
+ shift;;
- if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dst"; else : ; fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dst"; else : ; fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dst"; else : ; fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dst"; else : ; fi
-else
+ -p) cpprog="$cpprog -p";;
-# If we're going to rename the final executable, determine the name now.
+ -s) stripcmd=$stripprog;;
- if [ x"$transformarg" = x ]
- then
- dstfile=`basename "$dst"`
- else
- dstfile=`basename "$dst" $transformbasename |
- sed $transformarg`$transformbasename
- fi
+ -S) backupsuffix="$2"
+ shift;;
-# don't allow the sed command to completely eliminate the filename
+ -t)
+ is_target_a_directory=always
+ dst_arg=$2
+ # Protect names problematic for 'test' and other utilities.
+ case $dst_arg in
+ -* | [=\(\)!]) dst_arg=./$dst_arg;;
+ esac
+ shift;;
- if [ x"$dstfile" = x ]
- then
- dstfile=`basename "$dst"`
- else
- :
- fi
+ -T) is_target_a_directory=never;;
-# Make a couple of temp file names in the proper directory.
+ --version) echo "$0 $scriptversion"; exit $?;;
- dsttmp=$dstdir/#inst.$$#
- rmtmp=$dstdir/#rm.$$#
+ --) shift
+ break;;
-# Trap to clean up temp files at exit.
+ -*) echo "$0: invalid option: $1" >&2
+ exit 1;;
- trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0
- trap '(exit $?); exit' 1 2 13 15
+ *) break;;
+ esac
+ shift
+done
-# Move or copy the file name to the temp name
+# We allow the use of options -d and -T together, by making -d
+# take the precedence; this is for compatibility with GNU install.
- $doit $instcmd "$src" "$dsttmp" &&
+if test -n "$dir_arg"; then
+ if test -n "$dst_arg"; then
+ echo "$0: target directory not allowed when installing a directory." >&2
+ exit 1
+ fi
+fi
-# and set any options; do chmod last to preserve setuid bits
+if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
+ # When -d is used, all remaining arguments are directories to create.
+ # When -t is used, the destination is already specified.
+ # Otherwise, the last argument is the destination. Remove it from $@.
+ for arg
+ do
+ if test -n "$dst_arg"; then
+ # $@ is not empty: it contains at least $arg.
+ set fnord "$@" "$dst_arg"
+ shift # fnord
+ fi
+ shift # arg
+ dst_arg=$arg
+ # Protect names problematic for 'test' and other utilities.
+ case $dst_arg in
+ -* | [=\(\)!]) dst_arg=./$dst_arg;;
+ esac
+ done
+fi
-# If any of these fail, we abort the whole thing. If we want to
-# ignore errors from any of these, just make sure not to ignore
-# errors from the above "$doit $instcmd $src $dsttmp" command.
+if test $# -eq 0; then
+ if test -z "$dir_arg"; then
+ echo "$0: no input file specified." >&2
+ exit 1
+ fi
+ # It's OK to call 'install-sh -d' without argument.
+ # This can happen when creating conditional directories.
+ exit 0
+fi
- if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dsttmp"; else :;fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dsttmp"; else :;fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dsttmp"; else :;fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dsttmp"; else :;fi &&
+if test -z "$dir_arg"; then
+ if test $# -gt 1 || test "$is_target_a_directory" = always; then
+ if test ! -d "$dst_arg"; then
+ echo "$0: $dst_arg: Is not a directory." >&2
+ exit 1
+ fi
+ fi
+fi
-# Now remove or move aside any old file at destination location. We try this
-# two ways since rm can't unlink itself on some systems and the destination
-# file might be busy for other reasons. In this case, the final cleanup
-# might fail but the new file should still install successfully.
+if test -z "$dir_arg"; then
+ do_exit='(exit $ret); exit $ret'
+ trap "ret=129; $do_exit" 1
+ trap "ret=130; $do_exit" 2
+ trap "ret=141; $do_exit" 13
+ trap "ret=143; $do_exit" 15
+
+ # Set umask so as not to create temps with too-generous modes.
+ # However, 'strip' requires both read and write access to temps.
+ case $mode in
+ # Optimize common cases.
+ *644) cp_umask=133;;
+ *755) cp_umask=22;;
+
+ *[0-7])
+ if test -z "$stripcmd"; then
+ u_plus_rw=
+ else
+ u_plus_rw='% 200'
+ fi
+ cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
+ *)
+ if test -z "$stripcmd"; then
+ u_plus_rw=
+ else
+ u_plus_rw=,u+rw
+ fi
+ cp_umask=$mode$u_plus_rw;;
+ esac
+fi
-{
- if [ -f "$dstdir/$dstfile" ]
+for src
+do
+ # Protect names problematic for 'test' and other utilities.
+ case $src in
+ -* | [=\(\)!]) src=./$src;;
+ esac
+
+ if test -n "$dir_arg"; then
+ dst=$src
+ dstdir=$dst
+ test -d "$dstdir"
+ dstdir_status=$?
+ # Don't chown directories that already exist.
+ if test $dstdir_status = 0; then
+ chowncmd=""
+ fi
+ else
+
+ # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
+ # might cause directories to be created, which would be especially bad
+ # if $src (and thus $dsttmp) contains '*'.
+ if test ! -f "$src" && test ! -d "$src"; then
+ echo "$0: $src does not exist." >&2
+ exit 1
+ fi
+
+ if test -z "$dst_arg"; then
+ echo "$0: no destination specified." >&2
+ exit 1
+ fi
+ dst=$dst_arg
+
+ # If destination is a directory, append the input filename.
+ if test -d "$dst"; then
+ if test "$is_target_a_directory" = never; then
+ echo "$0: $dst_arg: Is a directory" >&2
+ exit 1
+ fi
+ dstdir=$dst
+ dstbase=`basename "$src"`
+ case $dst in
+ */) dst=$dst$dstbase;;
+ *) dst=$dst/$dstbase;;
+ esac
+ dstdir_status=0
+ else
+ dstdir=`dirname "$dst"`
+ test -d "$dstdir"
+ dstdir_status=$?
+ fi
+ fi
+
+ case $dstdir in
+ */) dstdirslash=$dstdir;;
+ *) dstdirslash=$dstdir/;;
+ esac
+
+ obsolete_mkdir_used=false
+
+ if test $dstdir_status != 0; then
+ case $posix_mkdir in
+ '')
+ # With -d, create the new directory with the user-specified mode.
+ # Otherwise, rely on $mkdir_umask.
+ if test -n "$dir_arg"; then
+ mkdir_mode=-m$mode
+ else
+ mkdir_mode=
+ fi
+
+ posix_mkdir=false
+ # The $RANDOM variable is not portable (e.g., dash). Use it
+ # here however when possible just to lower collision chance.
+ tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+
+ trap '
+ ret=$?
+ rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null
+ exit $ret
+ ' 0
+
+ # Because "mkdir -p" follows existing symlinks and we likely work
+ # directly in world-writeable /tmp, make sure that the '$tmpdir'
+ # directory is successfully created first before we actually test
+ # 'mkdir -p'.
+ if (umask $mkdir_umask &&
+ $mkdirprog $mkdir_mode "$tmpdir" &&
+ exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
then
- $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null ||
- $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null ||
- {
- echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
- (exit 1); exit
- }
+ if test -z "$dir_arg" || {
+ # Check for POSIX incompatibilities with -m.
+ # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+ # other-writable bit of parent directory when it shouldn't.
+ # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+ test_tmpdir="$tmpdir/a"
+ ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
+ case $ls_ld_tmpdir in
+ d????-?r-*) different_mode=700;;
+ d????-?--*) different_mode=755;;
+ *) false;;
+ esac &&
+ $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
+ ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
+ test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+ }
+ }
+ then posix_mkdir=:
+ fi
+ rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
else
- :
+ # Remove any dirs left behind by ancient mkdir implementations.
+ rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
fi
-} &&
-
-# Now rename the file to the real destination.
-
- $doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
-
-fi &&
+ trap '' 0;;
+ esac
-# The final little trick to "correctly" pass the exit status to the exit trap.
+ if
+ $posix_mkdir && (
+ umask $mkdir_umask &&
+ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
+ )
+ then :
+ else
+
+ # mkdir does not conform to POSIX,
+ # or it failed possibly due to a race condition. Create the
+ # directory the slow way, step by step, checking for races as we go.
+
+ case $dstdir in
+ /*) prefix='/';;
+ [-=\(\)!]*) prefix='./';;
+ *) prefix='';;
+ esac
+
+ oIFS=$IFS
+ IFS=/
+ set -f
+ set fnord $dstdir
+ shift
+ set +f
+ IFS=$oIFS
+
+ prefixes=
+
+ for d
+ do
+ test X"$d" = X && continue
+
+ prefix=$prefix$d
+ if test -d "$prefix"; then
+ prefixes=
+ else
+ if $posix_mkdir; then
+ (umask $mkdir_umask &&
+ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
+ # Don't fail if two instances are running concurrently.
+ test -d "$prefix" || exit 1
+ else
+ case $prefix in
+ *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
+ *) qprefix=$prefix;;
+ esac
+ prefixes="$prefixes '$qprefix'"
+ fi
+ fi
+ prefix=$prefix/
+ done
+
+ if test -n "$prefixes"; then
+ # Don't fail if two instances are running concurrently.
+ (umask $mkdir_umask &&
+ eval "\$doit_exec \$mkdirprog $prefixes") ||
+ test -d "$dstdir" || exit 1
+ obsolete_mkdir_used=true
+ fi
+ fi
+ fi
+
+ if test -n "$dir_arg"; then
+ { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
+ { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
+ { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
+ test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
+ else
+
+ # Make a couple of temp file names in the proper directory.
+ dsttmp=${dstdirslash}_inst.$$_
+ rmtmp=${dstdirslash}_rm.$$_
+
+ # Trap to clean up those temp files at exit.
+ trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
+
+ # Copy the file name to the temp name.
+ (umask $cp_umask &&
+ { test -z "$stripcmd" || {
+ # Create $dsttmp read-write so that cp doesn't create it read-only,
+ # which would cause strip to fail.
+ if test -z "$doit"; then
+ : >"$dsttmp" # No need to fork-exec 'touch'.
+ else
+ $doit touch "$dsttmp"
+ fi
+ }
+ } &&
+ $doit_exec $cpprog "$src" "$dsttmp") &&
+
+ # and set any options; do chmod last to preserve setuid bits.
+ #
+ # If any of these fail, we abort the whole thing. If we want to
+ # ignore errors from any of these, just make sure not to ignore
+ # errors from the above "$doit $cpprog $src $dsttmp" command.
+ #
+ { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
+ { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
+ { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
+ { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
+
+ # If -C, don't bother to copy if it wouldn't change the file.
+ if $copy_on_change &&
+ old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
+ new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
+ set -f &&
+ set X $old && old=:$2:$4:$5:$6 &&
+ set X $new && new=:$2:$4:$5:$6 &&
+ set +f &&
+ test "$old" = "$new" &&
+ $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
+ then
+ rm -f "$dsttmp"
+ else
+ # If $backupsuffix is set, and the file being installed
+ # already exists, attempt a backup. Don't worry if it fails,
+ # e.g., if mv doesn't support -f.
+ if test -n "$backupsuffix" && test -f "$dst"; then
+ $doit $mvcmd -f "$dst" "$dst$backupsuffix" 2>/dev/null
+ fi
+
+ # Rename the file to the real destination.
+ $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
+
+ # The rename failed, perhaps because mv can't rename something else
+ # to itself, or perhaps because mv is so ancient that it does not
+ # support -f.
+ {
+ # Now remove or move aside any old file at destination location.
+ # We try this two ways since rm can't unlink itself on some
+ # systems and the destination file might be busy for other
+ # reasons. In this case, the final cleanup might fail but the new
+ # file should still install successfully.
+ {
+ test ! -f "$dst" ||
+ $doit $rmcmd "$dst" 2>/dev/null ||
+ { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
+ { $doit $rmcmd "$rmtmp" 2>/dev/null; :; }
+ } ||
+ { echo "$0: cannot unlink or rename $dst" >&2
+ (exit 1); exit 1
+ }
+ } &&
+
+ # Now rename the file to the real destination.
+ $doit $mvcmd "$dsttmp" "$dst"
+ }
+ fi || exit 1
+
+ trap '' 0
+ fi
+done
-{
- (exit 0); exit
-}
+# Local variables:
+# eval: (add-hook 'before-save-hook 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC0"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/man/MKada_config.in b/man/MKada_config.in
index 5f34cff4124b..ee037ff4fdc0 100644
--- a/man/MKada_config.in
+++ b/man/MKada_config.in
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2019,2020 Thomas E. Dickey *
+.\" Copyright 2019-2023,2024 Thomas E. Dickey *
.\" Copyright 2010-2014,2016 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,98 +27,123 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: MKada_config.in,v 1.12 2020/02/02 23:34:34 tom Exp $
+.\" $Id: MKada_config.in,v 1.35 2024/04/20 21:13:27 tom Exp $
+.TH adacurses@USE_CFG_SUFFIX@\-config 1 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "User commands"
.ds C adacurses@USE_CFG_SUFFIX@\-config
-.TH ADACURSES "1" "" "" "User Commands"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.ds ' \(aq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.ie t .ds ' \(aq
+.el .ds ' '
+.\}
+.
+.\" Fix broken EX/EE macros on DWB troff.
+.\" Detect it: only DWB sets up a `)Y` register.
+.if !\n(.g .if \n()Y \{\
+.\" Revert the undesired changes to indentation.
+.am EX
+.in -5n
+..
+.am EE
+.in +5n
+..
+.\}
+.
.SH NAME
-adacurses@USE_CFG_SUFFIX@\-config \- helper script for @ADA_LIBNAME@ libraries
+\fB\%adacurses@USE_CFG_SUFFIX@\-config\fP \-
+configuration helper for \fI@ADA_LIBNAME@\fP libraries
.SH SYNOPSIS
.B \*C
-[\fIoptions\fR]
+.RB [ \-\-cflags ]
+.RB [ \-\-libs ]
+.PP
+.B \*C \-\-version
+.PP
+.B \*C \-\-help
.SH DESCRIPTION
-This is a shell script which simplifies configuring an application to use
-the @ADA_LIBNAME@ library binding to ncurses.
+This program development aid simplifies the process of configuring
+applications to use the \fI@ADA_LIBNAME@\fP library binding to
+\fI\%ncurses\fP.
.SH OPTIONS
+.TP 11 \" "--version" + 2n
+\fB\-\-cflags\fP
+reports the GNAT (Ada compiler) flags needed to compile with
+\fI@ADA_LIBNAME@\fP.
.TP
-\fB\-\-cflags\fR
-echos the gnat (Ada compiler) flags needed to compile with @ADA_LIBNAME@.
+\fB\-\-libs\fP
+reports the GNAT libraries needed to link with \fI@ADA_LIBNAME@\fP.
.TP
-\fB\-\-libs\fR
-echos the gnat libraries needed to link with @ADA_LIBNAME@.
+\fB\-\-version\fP
+reports the release and patch date information of the \fI\%ncurses\fP
+libraries used to configure and build \fI@ADA_LIBNAME@\fP and exits
+successfully.
.TP
-\fB\-\-version\fR
-echos the release+patchdate version of the ncurses libraries used
-to configure and build @ADA_LIBNAME@.
-.TP
-\fB\-\-help\fR
-prints a list of the \fB\*C\fP script's options.
+\fB\-\-help\fP
+issues a usage message and exits successfully.
.PP
-If no options are given, \fB\*C\fP prints the combination
-of
-\fB\-\-cflags\fR and
-\fB\-\-libs\fR
-that \fBgnatmake\fP expects (see example).
-.SH EXAMPLE
+Omitting options implies \*(``\fB\-\-cflags \-\-libs\fP\*(''.
+.SH EXAMPLES
+Consider a program using \fI@ADA_LIBNAME@\fP to write the message
+\*(``Hello, world!\*('' in the center of the screen and wait for the
+user to press the \*(``q\*('' key before exiting.
+Populate a file \fIhello.adb\fP with the following.
.PP
-For example, supposing that you want to compile the "Hello World!"
-program for @ADA_LIBNAME@.
-Make a file named "hello.adb":
-.RS
-.nf
-.ft CW
+.if \n(LL>67n .RS 4
+.EX
with Terminal_Interface.Curses; use Terminal_Interface.Curses;
procedure Hello is
-
Visibility : Cursor_Visibility := Invisible;
+ Message : constant String := "Hello, World!";
done : Boolean := False;
c : Key_Code;
-
begin
-
Init_Screen;
Set_Echo_Mode (False);
-
Set_Cursor_Visibility (Visibility);
Set_Timeout_Mode (Standard_Window, Non_Blocking, 0);
- Move_Cursor (Line => Lines / 2, Column => (Columns - 12) / 2);
- Add (Str => "Hello World!");
+ Move_Cursor (Line => Lines / 2,
+ Column => (Columns \- Message\*'Length) / 2);
+ Add (Str => Message);
while not done loop
-
c := Get_Keystroke (Standard_Window);
+
case c is
- when Character'Pos ('q') => done := True;
- when others => null;
+ when Character\*'Pos (\*'q\*') => done := True;
+ when others => null;
end case;
Nap_Milli_Seconds (50);
end loop;
End_Windows;
-
end Hello;
-.fi
-.RE
+.EE
+.if \n(LL>67n .RE
+.ne 2
.PP
Then, using
-.RS
-.ft CW
-gnatmake `adacurses-config --cflags` hello -largs `adacurses-config --libs`
-.ft
+.RS 4
+.EX
+gnatmake \(gaadacurses@USE_CFG_SUFFIX@\-config \-\-cflags\(ga hello \e
+ \-largs \(gaadacurses@USE_CFG_SUFFIX@\-config \-\-libs\(ga
+.EE
.RE
-.PP
-or (simpler):
-.RS
-.ft CW
-gnatmake hello `adacurses-config`
-.ft
+or, more simply,
+.RS 4
+.EX
+gnatmake hello \(gaadacurses@USE_CFG_SUFFIX@\-config\(ga
+.EE
.RE
-.PP
-you will compile and link the program.
+you can compile and link the program.
.SH "SEE ALSO"
-\fBcurses\fR(3X)
-.PP
-This describes \fBncurses\fR
-version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
+\fB\%curses\fP(3X)
diff --git a/man/MKncu_config.in b/man/MKncu_config.in
index 15d5190bd350..14690a544c5e 100644
--- a/man/MKncu_config.in
+++ b/man/MKncu_config.in
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2020 Thomas E. Dickey *
+.\" Copyright 2020-2023,2024 Thomas E. Dickey *
.\" Copyright 2010 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,73 +27,78 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: MKncu_config.in,v 1.4 2020/02/02 23:34:34 tom Exp $
-.TH @LIB_NAME@@DFT_ARG_SUFFIX@@cf_cv_abi_version@-config 1 ""
+.\" $Id: MKncu_config.in,v 1.24 2024/04/20 21:13:38 tom Exp $
+.TH @LIB_NAME@@DFT_ARG_SUFFIX@@cf_cv_abi_version@-config 1 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "User commands"
.SH NAME
-@LIB_NAME@@DFT_ARG_SUFFIX@@cf_cv_abi_version@-config \- helper script for ncurses libraries
+\fB\%@LIB_NAME@@DFT_ARG_SUFFIX@@cf_cv_abi_version@-config\fP \-
+configuration helper for \fI\%ncurses\fP libraries
.SH SYNOPSIS
-.B @LIB_NAME@@DFT_ARG_SUFFIX@@cf_cv_abi_version@-config
-[\fIoptions\fR]
+.B @LIB_NAME@@DFT_ARG_SUFFIX@@cf_cv_abi_version@-config
+.I option
+\&.\|.\|.
+.PP
+.B "@LIB_NAME@@DFT_ARG_SUFFIX@@cf_cv_abi_version@-config \-\-version"
+.PP
+.B "@LIB_NAME@@DFT_ARG_SUFFIX@@cf_cv_abi_version@-config \-\-help"
.SH DESCRIPTION
-This is a shell script which simplifies configuring applications against
-a particular set of ncurses libraries.
+This program development aid simplifies the process of configuring
+applications against a particular set of \fI\%ncurses\fP libraries.
.SH OPTIONS
+.TP 18 \" "--mouse-version" + 2n + adjustment for PDF
+\fB\-\-prefix\fP
+reports the package prefix of \fI\%ncurses\fP.
.TP
-\fB\-\-prefix\fR
-echos the package\-prefix of ncurses
-.TP
-\fB\-\-exec\-prefix\fR
-echos the executable\-prefix of ncurses
-.TP
-\fB\-\-cflags\fR
-echos the C compiler flags needed to compile with ncurses
+\fB\-\-exec\-prefix\fP
+reports the executable prefix of \fI\%ncurses\fP.
.TP
-\fB\-\-libs\fR
-echos the libraries needed to link with ncurses
+\fB\-\-cflags\fP
+reports the C compiler flags needed to compile with \fI\%ncurses\fP.
.TP
-\fB\-\-version\fR
-echos the release+patchdate version of ncurses
+\fB\-\-libs\fP
+reports the libraries needed to link with \fI\%ncurses\fP.
.TP
-\fB\-\-abi\-version\fR
-echos the ABI version of ncurses
+\fB\-\-abi\-version\fP
+reports the ABI version of \fI\%ncurses\fP.
.TP
-\fB\-\-mouse\-version\fR
-echos the mouse\-interface version of ncurses
+\fB\-\-mouse\-version\fP
+reports the mouse\-interface version of \fI\%ncurses\fP.
.TP
-\fB\-\-bindir\fR
-echos the directory containing ncurses programs
+\fB\-\-bindir\fP
+reports the directory containing \fI\%ncurses\fP programs.
.TP
-\fB\-\-datadir\fR
-echos the directory containing ncurses data
+\fB\-\-datadir\fP
+reports the directory containing \fI\%ncurses\fP data.
.TP
-\fB\-\-includedir\fR
-echos the directory containing ncurses header files
+\fB\-\-includedir\fP
+reports the directory containing \fI\%ncurses\fP header files.
.TP
-\fB\-\-libdir\fR
-echos the directory containing ncurses libraries
+\fB\-\-libdir\fP
+reports the directory containing \fI\%ncurses\fP libraries.
.TP
-\fB\-\-mandir\fR
-echos the directory containing ncurses manpages
+\fB\-\-mandir\fP
+reports the directory containing \fI\%ncurses\fP man pages.
.TP
-\fB\-\-terminfo\fR
-echos the $TERMINFO terminfo database path, e.g.,
-.RS
-@TERMINFO@
-.RE
+\fB\-\-terminfo\fP
+reports the \fI\%TERMINFO\fP \fIterminfo\fP database path,
+for example \fI\%@TERMINFO@\fP.
.TP
-\fB\-\-terminfo\-dirs\fR
-echos the $TERMINFO_DIRS directory list, e.g.,
-.RS
-@TERMINFO_DIRS@
-.RE
+\fB\-\-terminfo\-dirs\fP
+reports the \fI\%TERMINFO_DIRS\fP supplemental search path for the
+\fIterminfo\fP database,
+for example \fI\%@TERMINFO_DIRS@\fP.
.TP
-\fB\-\-termpath\fR
-echos the $TERMPATH termcap list, if support for termcap is configured.
-.TP
-\fB\-\-help\fR
-prints this message
-.SH "SEE ALSO"
-\fBcurses\fR(3X)
+\fB\-\-termpath\fP
+reports the \fI\%TERMPATH\fP supplemental search path for the
+\fItermcap\fP database,
+if support for \fItermcap\fP is configured.
.PP
-This describes \fBncurses\fR
-version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
+The following options cause all others to be ignored.
+.TP 11 .\" "--version" + 2n
+\fB\-\-help\fP
+issues a usage message and exits successfully.
+.TP
+\fB\-\-version\fP
+issues the release and patch date information of \fI\%ncurses\fP and
+exits successfully.
+.SH "SEE ALSO"
+\fB\%curses\fP(3X)
diff --git a/man/MKterminfo.sh b/man/MKterminfo.sh
index c79dbd8ff946..882ef2ad093b 100755
--- a/man/MKterminfo.sh
+++ b/man/MKterminfo.sh
@@ -1,10 +1,10 @@
#!/bin/sh
-# $Id: MKterminfo.sh,v 1.18 2020/02/02 23:34:34 tom Exp $
+# $Id: MKterminfo.sh,v 1.20 2024/01/13 20:37:40 tom Exp $
#
# MKterminfo.sh -- generate terminfo.5 from Caps tabular data
#
#***************************************************************************
-# Copyright 2018-2019,2020 Thomas E. Dickey *
+# Copyright 2018-2020,2022 Thomas E. Dickey *
# Copyright 1998-2003,2017 Free Software Foundation, Inc. *
# *
# Permission is hereby granted, free of charge, to any person obtaining a *
@@ -50,7 +50,7 @@ if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
if test "${LC_COLLATE+set}" = set; then LC_COLLATE=C; export LC_COLLATE; fi
#
-head=$1
+head="$1"
shift 1
caps=
while test $# -gt 1
@@ -58,7 +58,7 @@ do
caps="$caps $1"
shift 1
done
-tail=$1
+tail="$1"
cat <<EOF
'\\" t
.\\" DO NOT EDIT THIS FILE BY HAND!
@@ -67,12 +67,12 @@ cat <<EOF
.\\" Note: this must be run through tbl before nroff.
.\\" The magic cookie on the first line triggers this under some man programs.
EOF
-cat $head
+cat "$head"
temp=temp$$
sorted=sorted$$
unsorted=unsorted$$
-trap "code=\$?; rm -f $sorted $temp $unsorted; exit \$code" EXIT HUP INT QUIT TERM
+trap 'code=$?; rm -f $sorted $temp $unsorted; exit $code' EXIT HUP INT QUIT TERM
rm -f $sorted $temp $unsorted
cat $caps | sed -n "\
@@ -83,7 +83,9 @@ cat $caps | sed -n "\
/^#/d
s/[ ][ ]*/ /g
s/$/T}/
-s/ [A-Z0-9_()\-][A-Z0-9_()\-]* [0-9\-][0-9\-]* [Y\-][B\-][C\-][G\-][EK\-]\** / T{/
+s/ [A-Z0-9_()\-][A-Z0-9_()\-]* [0-9\-][0-9\-]* [Y\-][B\-][C\-][G\-][EK\-]\** / T{\\
+.ad l\
+/
s/ bool / /p
s/ num / /p
s/ str / /p
@@ -118,4 +120,4 @@ sed -e 's/^\.\.$//' $sorted | tr "\005\006" "\012\134"
sed -e '/^center expand;/s, expand,,' \
-e '/^\.TS/,/^\\/s, lw[1-9][0-9]*\., l.,' \
- $tail
+ "$tail"
diff --git a/man/Makefile.in b/man/Makefile.in
index f379db1224ed..9d08a7eed8ba 100644
--- a/man/Makefile.in
+++ b/man/Makefile.in
@@ -1,6 +1,6 @@
-# $Id: Makefile.in,v 1.50 2020/02/02 23:34:34 tom Exp $
+# $Id: Makefile.in,v 1.54 2022/10/22 16:36:40 tom Exp $
##############################################################################
-# Copyright 2019,2020 Thomas E. Dickey #
+# Copyright 2019-2021,2022 Thomas E. Dickey #
# Copyright 1998-2013,2015 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -52,6 +52,21 @@ INCLUDEDIR = $(DESTDIR)$(includedir)$(includesubdir)
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
+################################################################################
+
+@MAKE_PHONY@.PHONY : all
+@MAKE_PHONY@.PHONY : clean
+@MAKE_PHONY@.PHONY : depend
+@MAKE_PHONY@.PHONY : distclean
+@MAKE_PHONY@.PHONY : install
+@MAKE_PHONY@.PHONY : install.man
+@MAKE_PHONY@.PHONY : libs
+@MAKE_PHONY@.PHONY : mostlyclean
+@MAKE_PHONY@.PHONY : realclean
+@MAKE_PHONY@.PHONY : sources
+@MAKE_PHONY@.PHONY : uninstall
+@MAKE_PHONY@.PHONY : uninstall.man
+
all \
sources : terminfo.5
depend :
@@ -84,8 +99,8 @@ mostlyclean :
clean: mostlyclean
rm -f terminfo.5
-../edit_man.sed : make_sed.sh @MANPAGE_RENAMES@
+../edit_man.sed : make_sed.sh
$(SHELL) $(srcdir)/make_sed.sh @MANPAGE_RENAMES@ >../edit_man.sed
distclean realclean: clean
- rm -f Makefile *-config.1 ../edit_man.* ../man_alias.*
+ -rm -f Makefile *-config.1 ../edit_man.* ../man_alias.* man_db.renames
diff --git a/man/captoinfo.1m b/man/captoinfo.1m
index 4c46da67b348..4693b06b36e8 100644
--- a/man/captoinfo.1m
+++ b/man/captoinfo.1m
@@ -1,6 +1,6 @@
'\" t
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2010,2016 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,64 +28,76 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: captoinfo.1m,v 1.30 2020/02/02 23:34:34 tom Exp $
-.TH @CAPTOINFO@ 1M ""
-.ds n 5
-.ds d @TERMINFO@
+.\" $Id: captoinfo.1m,v 1.63 2024/03/23 20:37:25 tom Exp $
+.TH @CAPTOINFO@ 1M 2024-03-23 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "User commands"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
.SH NAME
-\fB@CAPTOINFO@\fR \- convert a \fItermcap\fR description into a \fIterminfo\fR description
+\fB\%@CAPTOINFO@\fP \-
+convert a \fItermcap\fP description into a \fI\%term\%info\fP description
.SH SYNOPSIS
-\fB@CAPTOINFO@\fR [\fB\-v\fR\fIn\fR \fIwidth\fR] [\fB\-V\fR] [\fB\-1\fR] [\fB\-w\fR \fIwidth\fR] \fIfile\fR ...
+.B @CAPTOINFO@
+.RI [ tic-option ]
+.RI [ file
+\&.\|.\|.]
+.P
+.B "@CAPTOINFO@ \-V"
.SH DESCRIPTION
-\fB@CAPTOINFO@\fR looks in each given text
-\fIfile\fR for \fBtermcap\fR descriptions.
-For each
-one found, an equivalent \fBterminfo\fR description is written to standard
-output.
-Termcap \fBtc\fR capabilities are translated directly to terminfo
-\fBuse\fR capabilities.
+\fB\%@CAPTOINFO@\fP translates terminal descriptions.
+It looks in each given text \fIfile\fP for \fI\%termcap\fP entries and,
+for each one found,
+writes an equivalent \fI\%\%term\%info\fP description to the standard
+output stream.
+\fI\%termcap\fP \fBtc\fP capabilities translate to \fI\%\%term\%info\fP
+\*(``\fBuse\fP\*('' capabilities.
.PP
-If no \fIfile\fR is given, then the environment variable \fBTERMCAP\fR is used
-for the filename or entry.
-If \fBTERMCAP\fR is a full pathname to a file, only
-the terminal whose name is specified in the environment variable \fBTERM\fR is
-extracted from that file.
-If the environment variable \fBTERMCAP\fR is not
-set, then the file \fB\*d\fR is read.
-.TP 5
-\fB\-v\fR
-print out tracing information on standard error as the program runs.
-.TP 5
-\fB\-V\fR
-print out the version of the program in use on standard error and exit.
-.TP 5
-\fB\-1\fR
-cause the fields to print out one to a line.
-Otherwise, the fields
-will be printed several to a line to a maximum width of 60
-characters.
-.TP 5
-\fB\-w\fR
-change the output to \fIwidth\fR characters.
-.SH FILES
-.TP 20
-\*d
-Compiled terminal description database.
-.SH TRANSLATIONS FROM NONSTANDARD CAPABILITIES
+If no \fIfile\fPs are specified,
+\fB\%@CAPTOINFO@\fP interprets the content of the environment variable
+\fI\%TERMCAP\fP as a file name,
+and extracts only the entry for the terminal named in the environment
+variable \fITERM\fP from it.
+If the environment variable \fI\%TERMCAP\fP is not set,
+\fB\%@CAPTOINFO@\fP reads
+.IR \%/etc/termcap .
.PP
-Some obsolete nonstandard capabilities will automatically be translated
-into standard (SVr4/XSI Curses) terminfo capabilities by \fB@CAPTOINFO@\fR.
-Whenever one of these automatic translations is done, the program
-will issue an notification to stderr, inviting the user to check that
-it has not mistakenly translated a completely unknown and random
-capability and/or syntax error.
+This utility is implemented as a link to \fB\%@TIC@\fP(1M),
+with the latter's
+.B \-I
+option implied.
+You can use other \fB\%@TIC@\fP options such as
+.BR \-1 ,
+.BR \-f ,
+.BR \-v ,
+.BR \-w ,
+and
+.BR \-x .
+The \fB\-V\fP option reports the version of \fI\%ncurses\fP associated
+with this program and exits with a successful status.
+.SS "Translations from Nonstandard Capabilities"
+\fB\%@CAPTOINFO@\fP translates some obsolete,
+nonstandard capabilities into standard
+(SVr4/XSI Curses)
+\fI\%\%term\%info\fP capabilities.
+It issues a diagnostic to the standard error stream for each,
+inviting the user to check that it has not mistakenly translated an
+unknown or mistyped capability name.
.PP
-.TS H
-c c c c
-c c c c
-l l l l.
-Nonstd Std From Terminfo
-name name capability
+.\" DWB 3.3 tbl requires the two junk "L" specifiers in the first row.
+.TS
+center;
+Cb S L L
+Cb Cb Cb Cb
+Cb Cb C Lb.
+Name
+Obsolete Standard Origin \f(BIterminfo\fP capability
_
BO mr AT&T enter_reverse_mode
CI vi AT&T cursor_invisible
@@ -106,64 +118,72 @@ PS pf XENIX prtr_on
PU kP XENIX key_ppage
RT @8 XENIX kent
UP ku XENIX kcuu1
-KA k; Tek key_f10
-KB F1 Tek key_f11
-KC F2 Tek key_f12
-KD F3 Tek key_f13
-KE F4 Tek key_f14
-KF F5 Tek key_f15
-BC Sb Tek set_background
-FC Sf Tek set_foreground
-HS mh Iris enter_dim_mode
+KA k; Tektronix key_f10
+KB F1 Tektronix key_f11
+KC F2 Tektronix key_f12
+KD F3 Tektronix key_f13
+KE F4 Tektronix key_f14
+KF F5 Tektronix key_f15
+BC Sb Tektronix set_background
+FC Sf Tektronix set_foreground
+HS mh IRIX enter_dim_mode
.TE
.PP
-XENIX termcap also used to have a set of extension capabilities
-for forms drawing, designed to take advantage of the IBM PC
-high-half graphics.
-They were as follows:
+XENIX \fI\%termcap\fP had a set of extension capabilities,
+corresponding to box drawing characters of CCSID
+(\*(``code page\*('') 437,
+as follows.
.PP
-.TS H
-c c
-l l.
-Cap Graphic
+.TS
+center;
+cb cb
+cb l .
+\f(BItermcap\fP Name Graphic
_
-G2 upper left
-G3 lower left
-G1 upper right
-G4 lower right
-GR pointing right
-GL pointing left
-GU pointing up
-GD pointing down
+G2 upper left corner
+G3 lower left corner
+G1 upper right corner
+G4 lower right corner
+GR tee pointing right
+GL tee pointing left
+GU tee pointing up
+GD tee pointing down
GH horizontal line
GV vertical line
GC intersection
-G6 upper left
-G7 lower left
-G5 upper right
-G8 lower right
-Gr tee pointing right
-Gr tee pointing left
-Gu tee pointing up
-Gd tee pointing down
-Gh horizontal line
-Gv vertical line
-Gc intersection
-GG acs magic cookie count
+G6 double upper left corner
+G7 double lower left corner
+G5 double upper right corner
+G8 double lower right corner
+Gr double tee pointing right
+Gr double tee pointing left
+Gu double tee pointing up
+Gd double tee pointing down
+Gh double horizontal line
+Gv double vertical line
+Gc double intersection
+.\" TODO: There are about 40 box drawing code points in CCSID 437;
+.\" were there no XENIX capabilities for the mixed single- and double-
+.\" line intersections?
+.\"
+.\" TODO: GG doesn't seem to fit with the others; explain it.
+GG ACS magic cookie count
.TE
.PP
-If the single-line capabilities occur in an entry, they will automatically
-be composed into an \fBacsc\fR string.
-The double-line capabilities and
-\fBGG\fR are discarded with a warning message.
+\fB\%@CAPTOINFO@\fP composes single-line capabilities into an \fBacsc\fP
+string,
+and discards \fBGG\fP and double-line capabilities with a warning
+diagnostic.
+.PP
+IBM's AIX has a \fI\%\%term\%info\fP facility descended from SVr1
+\fI\%\%term\%info\fP,
+but which is incompatible with the SVr4 format.
+\fB\%@CAPTOINFO@\fP translates the following AIX extensions.
.PP
-IBM's AIX has a terminfo facility descended from SVr1 terminfo but incompatible
-with the SVr4 format.
-The following AIX extensions are automatically
-translated:
.TS
-c c
-l l.
+center;
+cb cb
+l l .
IBM XSI
_
ksel kslt
@@ -174,34 +194,42 @@ font2 s2ds
font3 s3ds
.TE
.PP
-Additionally, the AIX \fIbox1\fR capability will be automatically translated to
-an \fBacsc\fR string.
+Additionally,
+this program translates the AIX \fBbox1\fP capability to an \fBacsc\fP
+string.
.PP
-Hewlett-Packard's terminfo library supports two nonstandard terminfo
-capabilities \fBmeml\fR (memory lock) and \fBmemu\fR (memory unlock).
-These will be discarded with a warning message.
-.SH NOTES
-This utility is actually a link to \fB@TIC@\fR(1M), running in \fI\-I\fR mode.
-You can use other \fB@TIC@\fR options such as \fB\-f\fR and \fB\-x\fR.
-.PP
-The verbose option is not identical to SVr4's.
-Under SVr4, instead of following
-the \fB\-v\fR with a trace level n, you repeat it n times.
+The HP-UX \fI\%\%term\%info\fP library supports two nonstandard
+\fI\%\%term\%info\fP capabilities,
+\fBmeml\fP (memory lock) and \fBmemu\fP (memory unlock).
+\fB\%@CAPTOINFO@\fP discards these with a warning message.
+.SH FILES
+.TP
+.I /etc/termcap
+default \fI\%termcap\fP terminal capability database
.SH PORTABILITY
-X/Open Curses, Issue 7 (2009) describes \fBtic\fP briefly,
+X/Open Curses,
+Issue 7 (2009) describes \fBtic\fP briefly,
but omits this program.
-SVr4 systems provide \fBcaptoinfo\fP as a separate application from \fBtic\fP.
.PP
-NetBSD does not provide this application.
-.SH SEE ALSO
-\fB@INFOCMP@\fR(1M),
-\fBcurses\fR(3X),
-\fBterminfo\fR(\*n)
+SVr4 systems provide \fB\%captoinfo\fP as a separate application from
+\fBtic\fP.
+Its
+.B \-v
+option does not accept a trace level argument
+.IR n ;
+repeat
+.B \-v
+.I n
+times instead.
.PP
-This describes \fBncurses\fR
-version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
-.SH AUTHOR
+NetBSD does not provide this application.
+.SH AUTHORS
Eric S. Raymond <esr@snark.thyrsus.com>
and
.br
-Thomas E. Dickey <dickey@invisible-island.net>
+Thomas E. Dickey <dickey@invisible\-island.net>
+.SH SEE ALSO
+\fB\%@INFOCMP@\fP(1M),
+\fB\%@TIC@\fP(1M),
+\fB\%curses\fP(3X),
+\fB\%terminfo\fP(5)
diff --git a/man/clear.1 b/man/clear.1
index a79bdf15bc1b..a1034db7cb1a 100644
--- a/man/clear.1
+++ b/man/clear.1
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2016,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,137 +27,160 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: clear.1,v 1.23 2020/02/02 23:34:34 tom Exp $
-.TH @CLEAR@ 1 ""
-.\" these would be fallbacks for DS/DE,
-.\" but groff changed the meaning of the macros.
-.de NS
-.ie n .sp
-.el .sp .5
-.ie n .in +4
-.el .in +2
-.nf
-.ft C \" Courier
-..
-.de NE
-.fi
-.ft R
-.ie n .in -4
-.el .in -2
-..
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: clear.1,v 1.48 2024/03/16 15:35:01 tom Exp $
+.TH @CLEAR@ 1 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "User commands"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.ds ' \(aq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.ie t .ds ' \(aq
+.el .ds ' '
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
-.ds n 5
+.
.SH NAME
-\fB@CLEAR@\fR \- clear the terminal screen
+\fB\%@CLEAR@\fP \-
+clear the terminal screen
.SH SYNOPSIS
-\fB@CLEAR@\fR [\fB\-T\fR\fItype\fR] [\fB\-V\fP] [\fB\-x\fP]
-.br
+.B @CLEAR@
+.RB [ \-x ]
+.RB [ \-T\ \c
+.IR terminal-type ]
+.PP
+.B "@CLEAR@ \-V"
.SH DESCRIPTION
-\fB@CLEAR@\fR clears your screen if this is possible,
-including its scrollback buffer
-(if the extended \*(``E3\*('' capability is defined).
-\fB@CLEAR@\fR looks in the environment for the terminal type
-given by the environment variable \fBTERM\fP,
-and then in the
-\fBterminfo\fR database to determine how to clear the screen.
+\fB\%@CLEAR@\fP clears your terminal's screen and its scrollback buffer,
+if any.
+\fB\%@CLEAR@\fP retrieves the terminal type from the environment
+variable \fITERM\fP,
+then consults the \fIterminfo\fP terminal capability database entry for
+that type to determine how to perform these actions.
.PP
-\fB@CLEAR@\fR writes to the standard output.
-You can redirect the standard output to a file (which prevents
-\fB@CLEAR@\fR from actually clearing the screen),
-and later \fBcat\fP the file to the screen, clearing it at that point.
+The capabilities to clear the screen and scrollback buffer are named
+\*(``clear\*('' and \*(``E3\*('', respectively.
+The latter is a \fIuser-defined capability\fP,
+applying an extension mechanism introduced in \fI\%ncurses\fP 5.0
+(1999).
.SH OPTIONS
-.PP
-.TP 5
+\fB\%@CLEAR@\fP recognizes the following options.
+.TP 9 \" "-T type" + 2n
.B \-T \fItype\fP
-indicates the \fItype\fR of terminal.
-Normally this option is
-unnecessary, because the default is taken from the environment
-variable \fBTERM\fR.
-If \fB\-T\fR is specified, then the shell
-variables \fBLINES\fR and \fBCOLUMNS\fR will also be ignored.
+produces instructions suitable for the terminal \fItype\fP.
+Normally,
+this option is unnecessary,
+because the terminal type is inferred from the environment variable
+\fITERM\fP.
+If this option is specified,
+\fB\%@CLEAR@\fP ignores the environment variables \fILINES\fP and
+\fI\%COLUMNS\fP as well.
.TP
.B \-V
-reports the version of ncurses which was used in this program, and exits.
-The options are as follows:
+reports the version of \fI\%ncurses\fP associated with this program and
+exits with a successful status.
.TP
.B \-x
-do not attempt to clear the terminal's scrollback buffer
-using the extended \*(``E3\*('' capability.
+prevents \fB\%@CLEAR@\fP from attempting to clear the scrollback buffer.
+.SH PORTABILITY
+Neither IEEE Std 1003.1/The Open Group Base Specifications Issue 7
+(POSIX.1-2008) nor X/Open Curses Issue 7 documents \fB\%@CLEAR@\fP.
+.PP
+The latter documents \fBtput\fP,
+which could be used to replace this utility either via a shell script or
+by an alias
+(such as a symbolic link)
+to run \fB\%@TPUT@\fP as \fB\%@CLEAR@\fP.
.SH HISTORY
-A \fBclear\fP command appeared in 2.79BSD dated February 24, 1979.
-Later that was provided in Unix 8th edition (1985).
+A \fBclear\fP command using the \fItermcap\fP database and library
+appeared in 2BSD (1979).
+.\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=2BSD/src/clear.c
+Eighth Edition Unix (1985) later included it.
+.PP
+The commercial Unix arm of AT&T adapted a different BSD program
+(\fBtset\fP) to make a new command,
+\fBtput\fP,
+and replaced the \fBclear\fP program with a shell script that called
+\*(``\fBtput clear\fP\*(''.
.PP
-AT&T adapted a different BSD program (\fBtset\fP) to make
-a new command (\fBtput\fP),
-and used this to replace the \fBclear\fP command with a shell script
-which calls \fBtput clear\fP, e.g.,
-.NS
-/usr/bin/tput ${1:+-T$1} clear 2> /dev/null
+.RS 4
+.EX
+/usr/bin/tput ${1:+\-T$1} clear 2> /dev/null
exit
-.NE
+.EE
+.RE
.PP
In 1989, when Keith Bostic revised the BSD \fBtput\fP command
-to make it similar to the AT&T \fBtput\fP,
-he added a shell script for the \fBclear\fP command:
-.NS
+to make it similar to AT&T's \fBtput\fP,
+he added a \fBclear\fP shell script as well.
+.\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=Net2/usr/src/usr.bin/\
+.\" tput/clear.sh
+.PP
+.RS 4
+.EX
exec tput clear
-.NE
+.EE
+.RE
.PP
The remainder of the script in each case is a copyright notice.
.PP
-The ncurses \fBclear\fP command began in 1995 by adapting the original
-BSD \fBclear\fP command (with terminfo, of course).
-.PP
-The \fBE3\fP extension came later:
+In 1995,
+\fI\%ncurses\fP's \fBclear\fP began by adapting BSD's original
+\fBclear\fP command to use \fIterminfo\fP.
+The \fBE3\fP extension came later.
.bP
-In June 1999, xterm provided an extension to the standard control
+In June 1999, \fIxterm\fP provided an extension to the standard control
sequence for clearing the screen.
Rather than clearing just the visible part of the screen using
-.NS
-printf '\\033[2J'
-.NE
+.RS 8
+.PP
+.EX
+printf \*'\e033[2J\*'
+.EE
+.RE
.IP
-one could clear the \fIscrollback\fP using
-.NS
-printf '\\033[\fB3\fPJ'
-.NE
+one could clear the scrollback buffer as well by using
+.RS 8
+.PP
+.EX
+printf \*'\e033[\fB3\fPJ\*'
+.EE
+.RE
.IP
-This is documented in \fIXTerm Control Sequences\fP as a feature originating
-with xterm.
+instead.
+\*(``XTerm Control Sequences\fP\*('' documents this feature as
+originating with \fIxterm\fP.
.bP
-A few other terminal developers adopted the feature, e.g., PuTTY in 2006.
+A few other terminal emulators adopted it,
+such as PuTTY in 2006.
.bP
In April 2011, a Red Hat developer submitted a patch to the Linux
kernel, modifying its console driver to do the same thing.
-The Linux change, part of the 3.0 release, did not mention xterm,
-although it was cited in the Red Hat bug report (#683733)
-which led to the change.
+Documentation of this change,
+appearing in Linux 3.0,
+did not mention \fIxterm\fP,
+although that program was cited in the Red Hat bug report (#683733)
+motivating the feature.
.bP
-Again, a few other terminal developers adopted the feature.
-But the
-next relevant step was a change to the \fBclear\fP program in 2013
-to incorporate this extension.
+Subsequently,
+more terminal developers adopted the feature.
+The next relevant step was to change the \fI\%ncurses\fP \fBclear\fP
+program in 2013 to incorporate this extension.
.bP
-In 2013, the \fBE3\fP extension was overlooked in \fB@TPUT@\fP with
-the \*(``clear\*('' parameter.
-That was addressed in 2016 by reorganizing \fB@TPUT@\fP to share
-its logic with \fB@CLEAR@\fP and \fB@TSET@\fP.
-.SH PORTABILITY
-Neither IEEE Std 1003.1/The Open Group Base Specifications Issue 7
-(POSIX.1-2008) nor X/Open Curses Issue 7 documents @TSET@ or @RESET@.
-.PP
-The latter documents \fBtput\fP, which could be used to replace this utility
-either via a shell script or by an alias (such as a symbolic link) to
-run \fB@TPUT@\fP as \fB@CLEAR@\fP.
+In 2013,
+the \fBE3\fP capability was not exercised by
+\*(``\fB\%@TPUT@ clear\fP\*(''.
+That oversight was addressed in 2016 by reorganizing \fB\%@TPUT@\fP to
+share its logic with \fB\%@CLEAR@\fP and \fB\%@TSET@\fP.
.SH SEE ALSO
-\fB@TPUT@\fR(1), \fBterminfo\fR(\*n)
-.PP
-This describes \fBncurses\fR
-version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
+\fB\%@TPUT@\fP(1),
+\fB\%xterm\fP(1),
+\fB\%terminfo\fP(5)
diff --git a/man/curs_add_wch.3x b/man/curs_add_wch.3x
index 446020839cd1..d1eb9a311fc8 100644
--- a/man/curs_add_wch.3x
+++ b/man/curs_add_wch.3x
@@ -1,5 +1,6 @@
+'\" t
.\"***************************************************************************
-.\" Copyright 2019,2020 Thomas E. Dickey *
+.\" Copyright 2019-2023,2024 Thomas E. Dickey *
.\" Copyright 2001-2015,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,42 +28,45 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_add_wch.3x,v 1.28 2020/10/17 23:10:38 tom Exp $
-.TH curs_add_wch 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: curs_add_wch.3x,v 1.62 2024/04/20 21:20:07 tom Exp $
+.TH curs_add_wch 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
.SH NAME
-\fBadd_wch\fP,
-\fBwadd_wch\fP,
-\fBmvadd_wch\fP,
-\fBmvwadd_wch\fP,
-\fBecho_wchar\fP,
-\fBwecho_wchar\fP \- add a complex character and rendition to a \fBcurses\fR window, then advance the cursor
+\fB\%add_wch\fP,
+\fB\%wadd_wch\fP,
+\fB\%mvadd_wch\fP,
+\fB\%mvwadd_wch\fP,
+\fB\%echo_wchar\fP,
+\fB\%wecho_wchar\fP \-
+add a \fIcurses\fR complex character to a window and advance the cursor
.SH SYNOPSIS
+.nf
+\fB#include <curses.h>
.PP
-\fB#include <curses.h>\fP
-.sp
-.B "int add_wch( const cchar_t *\fIwch\fB );"
-.br
-.B "int wadd_wch( WINDOW *\fIwin\fP, const cchar_t *\fIwch\fB );"
-.br
-.B "int mvadd_wch( int \fIy\fP, int \fIx\fP, const cchar_t *\fIwch\fB );"
-.br
-.B "int mvwadd_wch( WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, const cchar_t *\fIwch\fB );"
-.sp
-.B "int echo_wchar( const cchar_t *\fIwch\fB );"
-.br
-.B "int wecho_wchar( WINDOW *\fIwin\fP, const cchar_t *\fIwch\fB );"
-.br
+\fBint add_wch(const cchar_t *\fIwch\fP);
+\fBint wadd_wch(WINDOW *\fIwin\fP, const cchar_t *\fIwch\fP);
+\fBint mvadd_wch(int \fIy\fP, int \fIx\fP, const cchar_t *\fIwch\fP);
+\fBint mvwadd_wch(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, const cchar_t *\fIwch\fP);
+.PP
+\fBint echo_wchar(const cchar_t *\fIwch\fP);
+\fBint wecho_wchar(WINDOW *\fIwin\fP, const cchar_t *\fIwch\fP);
+.fi
.SH DESCRIPTION
.SS add_wch
-.PP
The
\fBadd_wch\fP,
\fBwadd_wch\fP,
@@ -78,25 +82,31 @@ If \fIwch\fP refers to a spacing character,
then any previous character at that location is removed.
A new character specified by \fIwch\fP is
placed at that location with rendition specified by \fIwch\fP.
-The cursor then advances to
-the next spacing character on the screen.
+The cursor then advances after this spacing character,
+to prepare for writing the next character on the screen.
+.IP
+The newly added spacing character is the base of the active complex character.
+Subsequent non-spacing characters can be combined with this base
+until another spacing character is written to the screen,
+or the cursor is moved, e.g., using \fBwmove\fP.
.bP
If \fIwch\fP refers to a non-spacing character,
-all previous characters at that location are preserved.
-The non-spacing characters of \fIwch\fP
-are added to the spacing complex character,
-and the rendition specified by \fIwch\fP is ignored.
+it is appended to the active complex character,
+retaining the previous characters at that location.
+The rendition specified by \fIwch\fP is ignored.
+.IP
+The cursor is not advanced after adding a non-spacing character.
+Subsequent calls to add non-spacing characters will update the same position.
.bP
If the character part of \fIwch\fP is
a tab, newline, backspace or other control character,
-the window is updated and the cursor moves as if \fBaddch\fR were called.
+the window is updated and the cursor moves as if \fBaddch\fP were called.
.SS echo_wchar
-.PP
The \fBecho_wchar\fP
function is functionally equivalent to a call to
\fBadd_wch\fP
followed by a call to
-\fBrefresh\fP(3X).
+\fB\%refresh\fP(3X).
Similarly, the
\fBwecho_wchar\fP
is functionally equivalent to a call to
@@ -107,99 +117,171 @@ The knowledge
that only a single character is being output is taken into consideration and,
for non-control characters, a considerable performance gain might be seen
by using the *\fBecho\fP* functions instead of their equivalents.
-.SS Line Graphics
-Like \fBaddch\fP(3X),
+.SS "Line Graphics"
+Like \fB\%addch\fP(3X),
\fBaddch_wch\fP accepts symbols which make it simple to draw lines and other
frequently used special characters.
These symbols correspond to the same VT100 line-drawing set as
-\fBaddch\fP(3X).
+\fB\%addch\fP(3X).
.PP
.TS
-l l l l l
-l l l l l
-_ _ _ _ _
-lw(1.5i) lw5 lw5 lw5 lw20.
-\fBACS\fR \fBUnicode\fP \fBASCII\fR \fBacsc\fP \fBGlyph\fR
-\fBName\fR \fBDefault\fP \fBDefault\fR \fBchar\fP \fBName\fR
-WACS_BLOCK 0x25ae # 0 solid square block
-WACS_BOARD 0x2592 # h board of squares
-WACS_BTEE 0x2534 + v bottom tee
-WACS_BULLET 0x00b7 o ~ bullet
-WACS_CKBOARD 0x2592 : a checker board (stipple)
-WACS_DARROW 0x2193 v . arrow pointing down
-WACS_DEGREE 0x00b0 ' f degree symbol
-WACS_DIAMOND 0x25c6 + ` diamond
-WACS_GEQUAL 0x2265 > > greater-than-or-equal-to
-WACS_HLINE 0x2500 \- q horizontal line
-WACS_LANTERN 0x2603 # i lantern symbol
-WACS_LARROW 0x2190 < , arrow pointing left
-WACS_LEQUAL 0x2264 < y less-than-or-equal-to
-WACS_LLCORNER 0x2514 + m lower left-hand corner
-WACS_LRCORNER 0x2518 + j lower right-hand corner
-WACS_LTEE 0x2524 + t left tee
-WACS_NEQUAL 0x2260 ! | not-equal
-WACS_PI 0x03c0 * { greek pi
-WACS_PLMINUS 0x00b1 # g plus/minus
-WACS_PLUS 0x253c + n plus
-WACS_RARROW 0x2192 > + arrow pointing right
-WACS_RTEE 0x251c + u right tee
-WACS_S1 0x23ba \- o scan line 1
-WACS_S3 0x23bb \- p scan line 3
-WACS_S7 0x23bc \- r scan line 7
-WACS_S9 0x23bd \&_ s scan line 9
-WACS_STERLING 0x00a3 f } pound-sterling symbol
-WACS_TTEE 0x252c + w top tee
-WACS_UARROW 0x2191 ^ \- arrow pointing up
-WACS_ULCORNER 0x250c + l upper left-hand corner
-WACS_URCORNER 0x2510 + k upper right-hand corner
-WACS_VLINE 0x2502 | x vertical line
+Lb Lb Lb Lb Lb
+Lb Lb Lb Lb Lb
+Lb L L L Lx.
+\& Unicode ASCII acsc \&
+ACS Name Default Default Char Glyph Name
+_
+WACS_BLOCK 0x25ae # 0 T{
+solid square block
+T}
+WACS_BOARD 0x2592 # h board of squares
+WACS_BTEE 0x2534 + v bottom tee
+WACS_BULLET 0x00b7 o ~ bullet
+WACS_CKBOARD 0x2592 : a T{
+checker board (stipple)
+T}
+WACS_DARROW 0x2193 v . T{
+arrow pointing down
+T}
+WACS_DEGREE 0x00b0 ' f degree symbol
+WACS_DIAMOND 0x25c6 + \(ga diamond
+WACS_GEQUAL 0x2265 > > T{
+greater-than-or-equal-to
+T}
+WACS_HLINE 0x2500 \- q horizontal line
+WACS_LANTERN 0x2603 # i lantern symbol
+WACS_LARROW 0x2190 < , T{
+arrow pointing left
+T}
+WACS_LEQUAL 0x2264 < y T{
+less-than-or-equal-to
+T}
+WACS_LLCORNER 0x2514 + m T{
+lower left-hand corner
+T}
+WACS_LRCORNER 0x2518 + j T{
+lower right-hand corner
+T}
+WACS_LTEE 0x2524 + t left tee
+WACS_NEQUAL 0x2260 ! | not-equal
+WACS_PI 0x03c0 * { greek pi
+WACS_PLMINUS 0x00b1 # g plus/minus
+WACS_PLUS 0x253c + n plus
+WACS_RARROW 0x2192 > + T{
+arrow pointing right
+T}
+WACS_RTEE 0x251c + u right tee
+WACS_S1 0x23ba \- o scan line 1
+WACS_S3 0x23bb \- p scan line 3
+WACS_S7 0x23bc \- r scan line 7
+WACS_S9 0x23bd \&_ s scan line 9
+WACS_STERLING 0x00a3 f } T{
+pound-sterling symbol
+T}
+WACS_TTEE 0x252c + w top tee
+WACS_UARROW 0x2191 ^ \- T{
+arrow pointing up
+T}
+WACS_ULCORNER 0x250c + l T{
+upper left-hand corner
+T}
+WACS_URCORNER 0x2510 + k T{
+upper right-hand corner
+T}
+WACS_VLINE 0x2502 | x vertical line
.TE
.PP
-The wide-character configuration of ncurses also defines symbols
+The wide-character configuration of \fI\%ncurses\fP also defines symbols
for thick lines (\fBacsc\fP \*(``J\*('' to \*(``V\*(''):
+.PP
.TS
-l l l l l
-l l l l l
-_ _ _ _ _
-lw(1.5i) lw5 lw5 lw5 lw20.
-\fBACS\fR \fBUnicode\fP \fBASCII\fR \fBacsc\fP \fBGlyph\fR
-\fBName\fR \fBDefault\fP \fBDefault\fR \fBchar\fP \fBName\fR
-WACS_T_BTEE 0x253b + V thick tee pointing up
-WACS_T_HLINE 0x2501 - Q thick horizontal line
-WACS_T_LLCORNER 0x2517 + M thick lower left corner
-WACS_T_LRCORNER 0x251b + J thick lower right corner
-WACS_T_LTEE 0x252b + T thick tee pointing right
-WACS_T_PLUS 0x254b + N thick large plus
-WACS_T_RTEE 0x2523 + U thick tee pointing left
-WACS_T_TTEE 0x2533 + W thick tee pointing down
-WACS_T_ULCORNER 0x250f + L thick upper left corner
-WACS_T_URCORNER 0x2513 + K thick upper right corner
-WACS_T_VLINE 0x2503 | X thick vertical line
+Lb Lb Lb Lb Lb
+Lb Lb Lb Lb Lb
+Lb L L L Lx.
+\& Unicode ASCII acsc \&
+ACS Name Default Default Char Glyph Name
+_
+WACS_T_BTEE 0x253b + V T{
+thick tee pointing up
+T}
+WACS_T_HLINE 0x2501 - Q T{
+thick horizontal line
+T}
+WACS_T_LLCORNER 0x2517 + M T{
+thick lower left corner
+T}
+WACS_T_LRCORNER 0x251b + J T{
+thick lower right corner
+T}
+WACS_T_LTEE 0x252b + T T{
+thick tee pointing right
+T}
+WACS_T_PLUS 0x254b + N T{
+thick large plus
+T}
+WACS_T_RTEE 0x2523 + U T{
+thick tee pointing left
+T}
+WACS_T_TTEE 0x2533 + W T{
+thick tee pointing down
+T}
+WACS_T_ULCORNER 0x250f + L T{
+thick upper left corner
+T}
+WACS_T_URCORNER 0x2513 + K T{
+thick upper right corner
+T}
+WACS_T_VLINE 0x2503 | X T{
+thick vertical line
+T}
.TE
.PP
and for double-lines (\fBacsc\fP \*(``A\*('' to \*(``I\*(''):
.PP
.TS
-l l l l l
-l l l l l
-_ _ _ _ _
-lw(1.5i) lw5 lw5 lw5 lw20.
-\fBACS\fR \fBUnicode\fP \fBASCII\fR \fBacsc\fP \fBGlyph\fR
-\fBName\fR \fBDefault\fP \fBDefault\fR \fBchar\fP \fBName\fR
-WACS_D_BTEE 0x2569 + H double tee pointing up
-WACS_D_HLINE 0x2550 - R double horizontal line
-WACS_D_LLCORNER 0x255a + D double lower left corner
-WACS_D_LRCORNER 0x255d + A double lower right corner
-WACS_D_LTEE 0x2560 + F double tee pointing right
-WACS_D_PLUS 0x256c + E double large plus
-WACS_D_RTEE 0x2563 + G double tee pointing left
-WACS_D_TTEE 0x2566 + I double tee pointing down
-WACS_D_ULCORNER 0x2554 + C double upper left corner
-WACS_D_URCORNER 0x2557 + B double upper right corner
-WACS_D_VLINE 0x2551 | Y double vertical line
+Lb Lb Lb Lb Lb
+Lb Lb Lb Lb Lb
+Lb L L L Lx.
+\& Unicode ASCII acsc \&
+ACS Name Default Default Char Glyph Name
+_
+WACS_D_BTEE 0x2569 + H T{
+double tee pointing up
+T}
+WACS_D_HLINE 0x2550 - R T{
+double horizontal line
+T}
+WACS_D_LLCORNER 0x255a + D T{
+double lower left corner
+T}
+WACS_D_LRCORNER 0x255d + A T{
+double lower right corner
+T}
+WACS_D_LTEE 0x2560 + F T{
+double tee pointing right
+T}
+WACS_D_PLUS 0x256c + E T{
+double large plus
+T}
+WACS_D_RTEE 0x2563 + G T{
+double tee pointing left
+T}
+WACS_D_TTEE 0x2566 + I T{
+double tee pointing down
+T}
+WACS_D_ULCORNER 0x2554 + C T{
+double upper left corner
+T}
+WACS_D_URCORNER 0x2557 + B T{
+double upper right corner
+T}
+WACS_D_VLINE 0x2551 | Y T{
+double vertical line
+T}
.TE
.PP
-Unicode's descriptions for these characters differs slightly from ncurses,
+Unicode's descriptions for these characters differs slightly from
+\fI\%ncurses\fP,
by introducing the term \*(``light\*('' (along with less important details).
Here are its descriptions for the normal, thick, and double horizontal lines:
.bP
@@ -209,10 +291,9 @@ U+2501 BOX DRAWINGS HEAVY HORIZONTAL
.bP
U+2550 BOX DRAWINGS DOUBLE HORIZONTAL
.SH RETURN VALUE
+All routines return the integer \fBERR\fP upon failure and \fBOK\fP on success.
.PP
-All routines return the integer \fBERR\fR upon failure and \fBOK\fR on success.
-.PP
-X/Open does not define any error conditions.
+X/Open Curses does not specify any error conditions.
This implementation returns an error
.bP
if the window pointer is null or
@@ -221,21 +302,22 @@ if it is not possible to add a complete character in the window.
.PP
The latter may be due to different causes:
.bP
-If \fBscrollok\fR is not enabled,
+If \fB\%scrollok\fP(3X) is not enabled,
writing a character at the lower right margin succeeds.
-However, an error is returned because
-it is not possible to wrap to a new line
+However,
+an error is returned because it is not possible to wrap to a new line.
.bP
If an error is detected when converting a multibyte character to a sequence
of bytes,
or if it is not possible to add all of the resulting bytes in the window,
an error is returned.
.PP
-Functions with a \*(``mv\*('' prefix first perform a cursor movement using
-\fBwmove\fP, and return an error if the position is outside the window,
-or if the window pointer is null.
+Functions prefixed with \*(``mv\*('' first perform cursor movement and
+fail if the position
+.RI ( y ,
+.IR x )
+is outside the window boundaries.
.SH NOTES
-.PP
Note that
\fBadd_wch\fP,
\fBmvadd_wch\fP,
@@ -243,23 +325,22 @@ Note that
\fBecho_wchar\fP
may be macros.
.SH PORTABILITY
-.PP
-All of these functions are described in the XSI Curses standard, Issue 4.
+These functions are described in X/Open Curses, Issue 4.
The defaults specified for line-drawing characters apply in the POSIX locale.
-.PP
+.SS "WACS Symbols"
X/Open Curses makes it clear that the WACS_ symbols should be defined as
-a pointer to \fBcchar_t\fP data, e.g., in the discussion of \fBborder_set\fR.
+a pointer to \fBcchar_t\fP data, e.g., in the discussion of \fBborder_set\fP.
A few implementations are problematic:
.bP
NetBSD curses defines the symbols as a \fBwchar_t\fP within a \fBcchar_t\fP.
.bP
-HPUX curses equates some of the \fIACS_\fP symbols
-to the analogous \fIWACS_\fP symbols as if the \fIACS_\fP symbols were
+HP-UX curses equates some of the \fBACS_\fP symbols
+to the analogous \fBWACS_\fP symbols as if the \fBACS_\fP symbols were
wide characters.
The misdefined symbols are the arrows
and other symbols which are not used for line-drawing.
.PP
-X/Open Curses does not define symbols for thick- or double-lines.
+X/Open Curses does not specify symbols for thick- or double-lines.
SVr4 curses implementations defined their line-drawing symbols in
terms of intermediate symbols.
This implementation extends those symbols, providing new definitions
@@ -270,18 +351,20 @@ alternate character sets (i.e., the \fBacsc\fP capability),
with their corresponding line-drawing characters.
X/Open Curses did not address the aspect of integrating Unicode with
line-drawing characters.
-Existing implementations of Unix curses (AIX, HPUX, Solaris)
+Existing implementations of Unix curses (AIX, HP-UX, Solaris)
use only the \fBacsc\fP character-mapping to provide this feature.
As a result, those implementations can only use single-byte line-drawing
characters.
-Ncurses 5.3 (2002) provided a table of Unicode values to solve these problems.
+\fI\%ncurses\fP 5.3 (2002) provided a table of Unicode values to solve
+these problems.
NetBSD curses incorporated that table in 2010.
.PP
In this implementation, the Unicode values are used instead of the
-terminal description's \fBacsc\fP mapping as discussed in ncurses(3X)
-for the environment variable \fBNCURSES_NO_UTF8_ACS\fP.
+terminal description's \fBacsc\fP mapping as discussed in
+\fB\%ncurses\fP(3X) for the environment variable
+\fINCURSES_NO_UTF8_ACS\fP.
In contrast, for the same cases, the line-drawing characters
-described in \fBcurs_addch\fP(3X) will use only the ASCII default values.
+described in \fB\%addch\fP(3X) will use only the ASCII default values.
.PP
Having Unicode available does not solve all of the problems with
line-drawing for curses:
@@ -322,13 +405,45 @@ Others have suggested these alternatives:
\[u2327] U+2327 (x in a rectangle),
\[u256C] U+256C (forms double vertical and horizontal), and
\[u2612] U+2612 (ballot box with x).
+.SS "Complex Characters"
+The complex character type \fBcchar_t\fR
+can store more than one wide character (\fBwchar_t\fR).
+The X/Open Curses description does not mention this possibility,
+describing only the cases where \fIwch\fP is a spacing character
+or a non-spacing character.
+.PP
+This implementation assumes that \fIwch\fP is constructed using
+\fB\%setcchar\fP(3X), and in turn that the result
+.bP
+contains at most one spacing character in the beginning of its list of wide
+characters,
+and zero or more non-spacing characters
+or
+.bP
+may hold one non-spacing character.
+.PP
+In the latter case,
+\fI\%ncurses\fP adds the non-spacing character to the active
+(base) spacing character.
+.SS TABSIZE
+The
+.B TABSIZE
+variable is implemented in SVr4 and other versions of
+.IR curses ,
+but is not specified by X/Open Curses
+(see \fBcurs_variables\fP(3X)).
.SH SEE ALSO
-.na
+\fB\%curs_addch\fP(3X) describes comparable functions of the
+.I \%ncurses
+library in its non-wide-character configuration.
.PP
-\fBcurses\fR(3X),
-\fBcurs_addch\fR(3X),
-\fBcurs_attr\fR(3X),
-\fBcurs_clear\fR(3X),
-\fBcurs_outopts\fR(3X),
-\fBcurs_refresh\fR(3X),
-\fBputwc\fR(3)
+\fB\%curses\fP(3X),
+\fB\%curs_addwstr\fP(3X),
+\fB\%curs_add_wchstr\fP(3X),
+\fB\%curs_attr\fP(3X),
+\fB\%curs_clear\fP(3X),
+\fB\%curs_getcchar\fP(3X),
+\fB\%curs_outopts\fP(3X),
+\fB\%curs_refresh\fP(3X),
+\fB\%curs_variables\fP(3X),
+\fB\%putwc\fP(3)
diff --git a/man/curs_add_wchstr.3x b/man/curs_add_wchstr.3x
index c037be632ebe..5dd3e8f4e131 100644
--- a/man/curs_add_wchstr.3x
+++ b/man/curs_add_wchstr.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2019,2020 Thomas E. Dickey *
+.\" Copyright 2019-2023,2024 Thomas E. Dickey *
.\" Copyright 2002-2012,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,62 +27,61 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_add_wchstr.3x,v 1.15 2020/12/19 21:39:06 tom Exp $
-.TH curs_add_wchstr 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: curs_add_wchstr.3x,v 1.39 2024/04/20 21:20:07 tom Exp $
+.TH curs_add_wchstr 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
-.na
-.hy 0
.SH NAME
-\fBadd_wchstr\fR,
-\fBadd_wchnstr\fR,
-\fBwadd_wchstr\fR,
-\fBwadd_wchnstr\fR,
-\fBmvadd_wchstr\fR,
-\fBmvadd_wchnstr\fR,
-\fBmvwadd_wchstr\fR,
-\fBmvwadd_wchnstr\fR \- add an array of complex characters (and attributes) to a curses window
-.ad
-.hy
+\fB\%add_wchstr\fP,
+\fB\%add_wchnstr\fP,
+\fB\%wadd_wchstr\fP,
+\fB\%wadd_wchnstr\fP,
+\fB\%mvadd_wchstr\fP,
+\fB\%mvadd_wchnstr\fP,
+\fB\%mvwadd_wchstr\fP,
+\fB\%mvwadd_wchnstr\fP \-
+add a \fIcurses\fR complex character string to a window
.SH SYNOPSIS
.nf
-\fB#include <curses.h>\fR
+\fB#include <curses.h>
.PP
-\fBint add_wchstr(const cchar_t *\fR\fIwchstr\fR\fB);\fR
-.br
-\fBint add_wchnstr(const cchar_t *\fR\fIwchstr\fR\fB, int \fR\fIn\fR\fB);\fR
-.br
-\fBint wadd_wchstr(WINDOW *\fR \fIwin\fR\fB, const cchar_t *\fR\fIwchstr\fR\fB);\fR
-.br
-\fBint wadd_wchnstr(WINDOW *\fR \fIwin\fR\fB, const cchar_t *\fR\fIwchstr\fR\fB, int \fR\fIn\fR\fB);\fR
-.sp
-\fBint mvadd_wchstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const cchar_t *\fR\fIwchstr\fR\fB);\fR
-.br
-\fBint mvadd_wchnstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const cchar_t *\fR\fIwchstr\fR\fB, int \fR\fIn\fR\fB);\fR
-.br
-\fBint mvwadd_wchstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const cchar_t *\fR\fIwchstr\fR\fB);\fR
-.br
-\fBint mvwadd_wchnstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const cchar_t *\fR\fIwchstr\fR\fB, int \fR\fIn\fR\fB);\fR
+\fBint add_wchstr(const cchar_t *\fIwchstr\fP);
+\fBint wadd_wchstr(WINDOW * \fIwin\fP, const cchar_t *\fIwchstr\fP);
+\fBint mvadd_wchstr(int \fIy\fP, int \fIx\fP, const cchar_t *\fIwchstr\fP);
+\fBint mvwadd_wchstr(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, const cchar_t *\fIwchstr\fP);
+.PP
+\fBint add_wchnstr(const cchar_t *\fIwchstr\fP, int \fIn\fP);
+\fBint wadd_wchnstr(WINDOW * \fIwin\fP, const cchar_t *\fIwchstr\fP, int \fIn\fP);
+\fBint mvadd_wchnstr(int \fIy\fP, int \fIx\fP, const cchar_t *\fIwchstr\fP, int \fIn\fP);
+\fBint mvwadd_wchnstr(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, const cchar_t *\fIwchstr\fP, int \fIn\fP);
.fi
.SH DESCRIPTION
These functions copy the (null-terminated)
-array of complex characters \fIwchstr\fR
+array of complex characters \fIwchstr\fP
into the window image structure
starting at the current cursor position.
-The four functions with \fIn\fR as the last
-argument copy at most \fIn\fR elements,
+.PP
+The four functions with \fIn\fP as the last
+argument copy at most \fIn\fP elements,
but no more than will fit on the line.
-If \fBn\fR=\fB\-1\fR then the whole array is copied,
+If \fBn\fP=\fB\-1\fP then the whole array is copied,
to the maximum number of characters that will fit on the line.
.PP
-The window cursor is \fInot\fR advanced.
-These functions work faster than \fBwaddnstr\fR.
+The window cursor is \fInot\fP advanced.
+These functions are faster than \fBwaddnstr\fP.
On the other hand:
.bP
they do not perform checking
@@ -96,28 +95,34 @@ they truncate the string if it crosses the right margin,
rather than wrapping it around to the new line.
.PP
These functions end successfully
-on encountering a null \fIcchar_t\fR, or
+on encountering a null \fBcchar_t\fP, or
when they have filled the current line.
If a complex character cannot completely fit at the end of the current line,
the remaining columns are filled with the background character and rendition.
.SH RETURN VALUE
-All functions return the integer \fBERR\fR upon failure and \fBOK\fR on success.
+All functions return the integer \fBERR\fP upon failure and \fBOK\fP on success.
.PP
-X/Open does not define any error conditions.
+X/Open Curses does not specify any error conditions.
This implementation returns an error
-if the window pointer is null.
+.bP
+if the \fIwin\fP parameter is null or
+.bP
+if the \fIwchstr\fP parameter is null.
.PP
-Functions with a \*(``mv\*('' prefix first perform a cursor movement using
-\fBwmove\fP, and return an error if the position is outside the window,
-or if the window pointer is null.
+Functions prefixed with \*(``mv\*('' first perform cursor movement and
+fail if the position
+.RI ( y ,
+.IR x )
+is outside the window boundaries.
.SH NOTES
-All functions except \fBwadd_wchnstr\fR may be macros.
+All functions except \fBwadd_wchnstr\fP may be macros.
.SH PORTABILITY
-These entry points are described in the XSI Curses standard, Issue 4.
+These functions are described in X/Open Curses, Issue 4.
.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBcurs_addwstr\fR(3X).
+\fB\%curs_addchstr\fP(3X) describes comparable functions of the
+.I \%ncurses
+library in its non-wide-character configuration.
.PP
-Comparable functions in the narrow-character (ncurses) library are
-described in
-\fBcurs_addchstr\fR(3X).
+\fB\%curses\fP(3X),
+\fB\%curs_addwstr\fP(3X),
+\fB\%curs_add_wch\fP(3X)
diff --git a/man/curs_addch.3x b/man/curs_addch.3x
index 338a6e27855f..ad548520ce84 100644
--- a/man/curs_addch.3x
+++ b/man/curs_addch.3x
@@ -1,6 +1,6 @@
'\" t
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2015,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,120 +28,176 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_addch.3x,v 1.55 2020/10/24 09:12:31 tom Exp $
-.TH curs_addch 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: curs_addch.3x,v 1.85 2024/04/20 19:03:47 tom Exp $
+.TH curs_addch 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.ds ' \(aq
+.ds ^ \(ha
+.ds ~ \(ti
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.ds ' '
+.ds ^ ^
+.ds ~ ~
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
.SH NAME
-\fBaddch\fR,
-\fBwaddch\fR,
-\fBmvaddch\fR,
-\fBmvwaddch\fR,
-\fBechochar\fR,
-\fBwechochar\fR \- add a character (with attributes) to a \fBcurses\fR window, then advance the cursor
+\fB\%addch\fP,
+\fB\%waddch\fP,
+\fB\%mvaddch\fP,
+\fB\%mvwaddch\fP,
+\fB\%echochar\fP,
+\fB\%wechochar\fP \-
+add a \fIcurses\fP character to a window and advance the cursor
.SH SYNOPSIS
-\fB#include <curses.h>\fR
+.nf
+\fB#include <curses.h>
.PP
-\fBint addch(const chtype \fP\fIch\fP\fB);\fR
-.br
-\fBint waddch(WINDOW *\fP\fIwin\fP\fB, const chtype \fP\fIch\fP\fB);\fR
-.br
-\fBint mvaddch(int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, const chtype \fP\fIch\fP\fB);\fR
-.br
-\fBint mvwaddch(WINDOW *\fP\fIwin\fP\fB, int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, const chtype \fP\fIch\fP\fB);\fR
-.sp
-\fBint echochar(const chtype \fP\fIch\fP\fB);\fR
-.br
-\fBint wechochar(WINDOW *\fP\fIwin\fP\fB, const chtype \fP\fIch\fP\fB);\fR
-.br
+\fBint addch(const chtype \fIch\fP);
+\fBint waddch(WINDOW *\fIwin\fP, const chtype \fIch\fP);
+\fBint mvaddch(int \fIy\fP, int \fIx\fP, const chtype \fIch\fP);
+\fBint mvwaddch(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, const chtype \fIch\fP);
+.PP
+\fBint echochar(const chtype \fIch\fP);
+\fBint wechochar(WINDOW *\fIwin\fP, const chtype \fIch\fP);
+.fi
.SH DESCRIPTION
-.SS Adding characters
-The \fBaddch\fR, \fBwaddch\fR, \fBmvaddch\fR and \fBmvwaddch\fR routines put
-the character \fIch\fR into the given window at its current window position,
-which is then advanced.
-They are analogous to \fBputchar\fR(3) in \fBstdio\fR(3).
-If the advance is at the right margin:
-.bP
-The cursor automatically wraps to the beginning of the next line.
+.SS "Adding Characters"
+.B \%waddch
+puts the character
+.I ch
+at the cursor position of window
+.IR win ,
+then advances the cursor position,
+analogously to the standard C library's \fI\%putchar\fP(3).
+\fB\%ncurses\fP(3X) describes the variants of this function.
+.PP
+If advancement occurs at the right margin,
.bP
-At the bottom of the current scrolling region,
-and if \fBscrollok\fR is enabled,
-the scrolling region is scrolled up one line.
+the cursor automatically wraps to the beginning of the next line;
+and
.bP
-If \fBscrollok\fR is not enabled,
-writing a character at the lower right margin succeeds.
-However, an error is returned because
-it is not possible to wrap to a new line
+at the bottom of the current scrolling region,
+and if \fB\%scrollok\fP(3X) is enabled for
+.IR win ,
+the scrolling region scrolls up one line.
.PP
-If \fIch\fR is a tab, newline, carriage return or backspace,
-the cursor is moved appropriately within the window:
+If
+.I ch
+is a
+backspace,
+carriage return,
+line feed,
+or
+tab,
+the cursor moves appropriately within the window.
.bP
-Backspace moves the cursor one character left; at the left
-edge of a window it does nothing.
+Backspace moves the cursor one character left;
+at the left margin of a window,
+it does nothing.
.bP
-Carriage return moves the cursor to the window left margin on the current line.
+Carriage return moves the cursor to the left margin on the current line
+of the window.
.bP
-Newline does a \fBclrtoeol\fR,
-then moves the cursor to the window left margin on the next line,
-scrolling the window if on the last line.
+Line feed does a \fB\%clrtoeol\fP(3X),
+then moves the cursor to the left margin on the next line of the window,
+and if \fB\%scrollok\fP(3X) is enabled for
+.IR win ,
+scrolls the window if the cursor was already on the last line.
.bP
-Tabs are considered to be at every eighth column.
-The tab interval may be altered by setting the \fBTABSIZE\fR variable.
+Tab advances the cursor to the next tab stop
+(possibly on the next line);
+these are placed at every eighth column by default.
+Alter the tab interval with the
+.B \%TABSIZE
+extension;
+see \fB\%curs_variables\fP(3X).
.PP
-If \fIch\fR is any other nonprintable character,
+If
+.I ch
+is any other nonprintable character,
it is drawn in printable form,
-i.e., the \fB^\fR\fIX\fR notation used by \fBunctrl\fR(3X).
-Calling \fBwinch\fR after adding a
-nonprintable character does not return the character itself,
-but instead returns the printable representation of the character.
-.PP
-Video attributes can be combined with a character argument passed to
-\fBaddch\fR or related functions by logical-ORing them into the character.
-(Thus, text, including attributes, can be copied from one place to another
-using \fBinch\fR(3X) and \fBaddch\fR.) See the \fBcurs_attr\fR(3X) page for
-values of predefined video attribute constants that can be usefully OR'ed
-into characters.
-.SS Echoing characters
+using the same convention as \fB\%unctrl\fP(3X).
.PP
-The \fBechochar\fR and \fBwechochar\fR routines are equivalent to a call to
-\fBaddch\fR followed by a call to \fBrefresh\fR(3X), or a call to \fBwaddch\fR
-followed by a call to \fBwrefresh\fR.
-The knowledge that only a single
-character is being output is used and, for non-control characters, a
-considerable performance gain may be seen by using these routines instead of
-their equivalents.
-.SS Line Graphics
-The following variables may be used to add line drawing characters to the
-screen with routines of the \fBaddch\fR family.
-The default character listed
-below is used if the \fBacsc\fR capability does not define a terminal-specific
-replacement for it,
-or if the terminal and locale configuration requires Unicode but the
-library is unable to use Unicode.
+Calling \fB\%winch\fP(3X) on the location of a nonprintable character
+does not return the character itself,
+but its \fB\%unctrl\fP(3X) representation.
.PP
-The names are taken from VT100 nomenclature.
+.I ch
+may contain rendering and/or color attributes,
+and others can be combined with the parameter
+by logically \*(``or\*(''ing with it.
+(A character with its attributes can be copied from place to place
+using \fB\%winch\fP(3X) and
+.BR \%waddch .)
+See \fB\%curs_attr\fP(3X) for values of predefined video attribute
+constants that can be usefully \*(``or\*(''ed with characters.
+.SS "Echoing Characters"
+.B \%echochar
+and
+.B \%wechochar
+are equivalent to calling
+.RB \%( w ) addch
+followed by
+.RB \%( w ) refresh .
+.I curses
+interprets these functions as a hint that only a single character is
+being output;
+for non-control characters,
+a considerable performance gain may be enjoyed by employing them.
+.\" TODO: Combine the following with the "Line Drawing" subsection of
+.\" terminfo(5) and replace this with a cross reference there.
+.SS "Forms-Drawing Characters"
+.I curses
+defines macros starting with
+.B \%ACS_
+that can be used with
+.B \%waddch
+to write line-drawing and other special characters to the screen.
+.I \%ncurses
+terms these
+.I "forms-drawing characters."
+The ACS default listed below is used if the
+.B \%acs_chars
+.RB ( \%acsc )
+.I \%term\%info
+capability does not define a terminal-specific replacement for it,
+or if the terminal and locale configuration requires Unicode to access
+these characters but the library is unable to use Unicode.
+The \*(``acsc char\*('' column corresponds to how the characters are
+specified in the
+.B \%acs_chars
+string capability,
+and the characters in it may appear on the screen if the terminal's
+database entry incorrectly advertises ACS support.
+The name \*(``ACS\*('' originates in the Alternate Character Set feature
+of the DEC VT100 terminal.
.PP
.TS
-l l l l
-l l l l
-_ _ _ _
-l l l l.
-\fBACS\fR \fBACS\fR \fBacsc\fP \fBGlyph\fR
-\fBName\fR \fBDefault\fR \fBchar\fP \fBName\fR
+Lb Lb Lb Lb
+Lb Lb Lb Lb
+Lb L L Lx.
+\& ACS acsc \&
+Symbol Default char Glyph Name
+_
ACS_BLOCK # 0 solid square block
ACS_BOARD # h board of squares
ACS_BTEE + v bottom tee
-ACS_BULLET o ~ bullet
+ACS_BULLET o \*~ bullet
ACS_CKBOARD : a checker board (stipple)
ACS_DARROW v . arrow pointing down
-ACS_DEGREE ' f degree symbol
-ACS_DIAMOND + ` diamond
+ACS_DEGREE \*' f degree symbol
+ACS_DIAMOND + \(ga diamond
ACS_GEQUAL > > greater-than-or-equal-to
ACS_HLINE \- q horizontal line
ACS_LANTERN # i lantern symbol
@@ -162,153 +218,260 @@ ACS_S7 \- r scan line 7
ACS_S9 \&_ s scan line 9
ACS_STERLING f } pound-sterling symbol
ACS_TTEE + w top tee
-ACS_UARROW ^ \- arrow pointing up
+ACS_UARROW \*^ \- arrow pointing up
ACS_ULCORNER + l upper left-hand corner
ACS_URCORNER + k upper right-hand corner
ACS_VLINE | x vertical line
.TE
.SH RETURN VALUE
-All routines return the integer \fBERR\fR upon failure and \fBOK\fR on success
-(the SVr4 manuals specify only
-\*(``an integer value other than \fBERR\fR\*('') upon successful completion,
-unless otherwise noted in the preceding routine descriptions.
+These functions return
+.B OK
+on success and
+.B ERR
+on failure.
.PP
-Functions with a \*(``mv\*('' prefix first perform a cursor movement using
-\fBwmove\fP, and return an error if the position is outside the window,
-or if the window pointer is null.
+In
+.IR \%ncurses ,
+.B \%waddch
+returns
+.B ERR
+if it is not possible to add a complete character at the cursor
+position,
+as when conversion of a multibyte character to a byte sequence fails,
+or at least one of the resulting bytes cannot be added to the window.
+See section \*(``PORTABILITY\*('' below regarding the use of
+.B \%waddch
+with multibyte characters.
.PP
-If it is not possible to add a complete character,
-an error is returned:
-.bP
-If \fBscrollok\fR is not enabled,
-writing a character at the lower right margin succeeds.
-However, an error is returned because
-it is not possible to wrap to a new line
-.bP
-If an error is detected when converting a multibyte character to a sequence
-of bytes,
-or if it is not possible to add all of the resulting bytes in the window,
-an error is returned.
+.B \%waddch
+can successfully write a character at the bottom right location of the
+window.
+However,
+.I \%ncurses
+returns
+.B ERR
+if \fB\%scrollok\fP(3X) is not enabled in that event,
+because it is not possible to wrap to a new line.
+.PP
+Functions prefixed with \*(``mv\*('' first perform cursor movement and
+fail if the position
+.RI ( y ,
+.IR x )
+is outside the window boundaries.
.SH NOTES
-Note that \fBaddch\fR, \fBmvaddch\fR, \fBmvwaddch\fR, and
-\fBechochar\fR may be macros.
+.BR \%addch ,
+.BR \%mvaddch ,
+.BR \%mvwaddch ,
+and
+.B \%echochar
+may be implemented as macros.
.SH PORTABILITY
-All these functions are described in the XSI Curses standard, Issue 4.
-The defaults specified for forms-drawing characters apply in the POSIX locale.
-.SS ACS Symbols
-.LP
-X/Open Curses states that the \fIACS_\fP definitions are \fBchar\fP constants.
-For the wide-character implementation (see \fBcurs_add_wch\fP),
-there are analogous \fIWACS_\fP definitions which are \fBcchar_t\fP constants.
-Some implementations are problematic:
+X/Open Curses,
+Issue 4 describes these functions.
+It specifies no error conditions for them.
+.PP
+SVr4
+.I curses
+describes a successful return value only as
+\*(``an integer value other than
+.BR ERR \*(''.
+.PP
+The defaults specified for forms-drawing characters apply in the POSIX
+locale.
+.SS "ACS Symbols"
+X/Open Curses states that the
+.B \%ACS_
+definitions are
+.I char
+constants.
+.PP
+Some implementations are problematic.
.bP
-Some implementations define the ACS symbols to a constant
-(such as Solaris), while others define those to entries in an array.
+Solaris
+.IR curses ,
+for example,
+define the ACS symbols as constants;
+others define them as elements of an array.
.IP
-This implementation uses an array \fBacs_map\fP, as done in SVr4 curses.
-NetBSD also uses an array, actually named \fB_acs_char\fP, with a \fB#define\fP
+This implementation uses an array,
+.BR \%acs_map ,
+as did SVr4
+.IR curses .
+NetBSD also uses an array,
+actually named
+.BR \%_acs_char ,
+with a
+.B \%#define
for compatibility.
.bP
-HPUX curses equates some of the \fIACS_\fP symbols
-to the analogous \fIWACS_\fP symbols as if the \fIACS_\fP symbols were
-wide characters.
-The misdefined symbols are the arrows
-and other symbols which are not used for line-drawing.
+HP-UX
+.I curses
+equates some of the
+.B \%ACS_
+symbols to the analogous
+.B \%WACS_
+symbols as if the
+.B \%ACS_
+symbols were wide characters
+(see \fB\%curs_add_wch\fP(3X)).
+The misdefined symbols are the arrows and others that are not used for
+line drawing.
.bP
-X/Open Curses (issues 2 through 7) has a typographical error
-for the ACS_LANTERN symbol, equating its \*(``VT100+ Character\*(''
-to \fBI\fP (capital I), while the header files for SVr4 curses
-and the various implementations use \fBi\fP (lowercase).
+X/Open Curses
+(Issues 2 through 7)
+has a typographical error
+for the
+.B \%ACS_LANTERN
+symbol, equating its \*(``VT100+ Character\*('' to \*(``I\*(''
+(capital I),
+while the header files for SVr4
+.I curses
+and other implementations use \*(``i\*(''
+(small i).
.IP
-None of the terminal descriptions on Unix platforms use uppercase-I,
-except for Solaris (i.e., \fIscreen\fP's terminal description,
+None of the terminal descriptions on Unix platforms use uppercase I,
+except for Solaris
+(in its
+.I \%term\%info
+entry for \fI\%screen\fP(1),
apparently based on the X/Open documentation around 1995).
-On the other hand, the terminal description \fIgs6300\fP
-(AT&T PC6300 with EMOTS Terminal Emulator) uses lowercase-i.
-.LP
+On the other hand,
+its
+.B \%gs6300
+(AT&T PC6300 with EMOTS Terminal Emulator)
+description uses lowercase i.
+.PP
Some ACS symbols
-(ACS_S3,
-ACS_S7,
-ACS_LEQUAL,
-ACS_GEQUAL,
-ACS_PI,
-ACS_NEQUAL,
-ACS_STERLING)
-were not documented in
-any publicly released System V.
-However, many publicly available terminfos
-include \fBacsc\fR strings in which their key characters (pryz{|}) are
-embedded, and a second-hand list of their character descriptions has come
-to light.
-The ACS-prefixed names for them were invented for \fBncurses\fR(3X).
-.LP
-The \fIdisplayed\fP values for the \fIACS_\fP and \fIWACS_\fP constants
-depend on
+.RB ( \%ACS_S3 ,
+.BR \%ACS_S7 ,
+.BR \%ACS_LEQUAL ,
+.BR \%ACS_GEQUAL ,
+.BR \%ACS_PI ,
+.BR \%ACS_NEQUAL ,
+and
+.BR \%ACS_STERLING )
+were not documented in any publicly released System\ V.
+However,
+many publicly available
+.I \%term\%info
+entries include
+.B \%acsc
+strings in which their key characters
+.BR ( pryz{|} )
+are embedded,
+and a second-hand list of their character descriptions has come to
+light.
+The
+.I \%ncurses
+developers invented ACS-prefixed names for them.
+.PP
+The
+.I displayed
+values of
+.B \%ACS_
+constants depend on
.bP
-the library configuration, i.e., \fBncurses\fP versus \fBncursesw\fP,
-where the latter is capable of displaying Unicode while the former is not, and
+the
+.I \%ncurses
+ABI\(emfor example,
+wide-character versus non-wide-character configurations
+(the former is capable of displaying Unicode while the latter is not),
+and
.bP
-whether the \fIlocale\fP uses UTF-8 encoding.
-.LP
-In certain cases, the terminal is unable to display line-drawing characters
-except by using UTF-8 (see the discussion of \fBNCURSES_NO_UTF8_ACS\fP in
-ncurses(3X)).
-.SS Character Set
-X/Open Curses assumes that the parameter passed to \fBwaddch\fP contains
-a single character.
-As discussed in \fBcurs_attr\fP(3X), that character may have been
-more than eight bits in an SVr3 or SVr4 implementation,
-but in the X/Open Curses model, the details are not given.
-The important distinction between SVr4 curses and X/Open Curses is
-that the non-character information (attributes and color) was
-separated from the character information which is packed in a \fBchtype\fP
-to pass to \fBwaddch\fP.
+whether the locale uses UTF-8 encoding.
+.PP
+In certain cases,
+the terminal is unable to display forms-drawing characters
+.I except
+by using UTF-8;
+see the discussion of the
+.I \%NCURSES_NO_UTF8_ACS
+environment variable in \fB\%ncurses\fP(3X)).
+.SS "Character Set"
+X/Open Curses assumes that the parameter passed to
+.B \%waddch
+contains a single character.
+As discussed in \fB\%curs_attr\fP(3X),
+that character may have been more than eight bits wide in an SVr3 or
+SVr4 implementation,
+but in the X/Open Curses model,
+the details are not given.
+The important distinction between SVr4
+.I curses
+and X/Open Curses is that the latter separates non-character information
+(attributes and color)
+from the character code,
+which SVr4 packs into a
+.I \%chtype
+for passage to
+.BR \%waddch .
.PP
-In this implementation, \fBchtype\fP holds an eight-bit character.
-But ncurses allows multibyte characters to be passed in a succession
-of calls to \fBwaddch\fP.
-The other implementations do not do this;
-a call to \fBwaddch\fP passes exactly one character
-which may be rendered as one or more cells on the screen
-depending on whether it is printable.
+In
+.IR \%ncurses ,
+.I \%chtype
+holds an eight-bit character.
+But the library allows a multibyte character to be passed in a
+succession of calls to
+.BR \%waddch .
+Other implementations do not;
+a
+.B \%waddch
+call transmits exactly one character,
+which may be rendered in one or more screen locations depending on
+whether it is printable.
.PP
Depending on the locale settings,
-ncurses will inspect the byte passed in each call to \fBwaddch\fP,
-and check if the latest call will continue a multibyte sequence.
-When a character is \fIcomplete\fP,
-ncurses displays the character and moves to the next position in the screen.
+.I \%ncurses
+inspects the byte passed in each
+.B \%waddch
+call,
+and checks whether the latest call continues a multibyte sequence.
+When a character is
+.IR complete ,
+.I \%ncurses
+displays the character and advances the cursor.
.PP
If the calling application interrupts the succession of bytes in
-a multibyte character by moving the current location (e.g., using \fBwmove\fP),
-ncurses discards the partially built character,
-starting over again.
+a multibyte character sequence by changing the current location\(emfor
+example,
+with \fB\%wmove\fP(3X)\(em\c
+.I \%ncurses
+discards the incomplete character.
.PP
For portability to other implementations,
-do not rely upon this behavior:
+do not rely upon this behavior.
+Check whether a character can be represented as a single byte in the
+current locale.
.bP
-check if a character can be represented as a single byte in the current locale
-before attempting call \fBwaddch\fP, and
+If it can,
+call either
+.B \%waddch
+or \fB\%wadd_wch\fP(3X).
.bP
-call \fBwadd_wch\fP for characters which cannot be handled by \fBwaddch\fP.
+If it cannot,
+use only
+\fB\%wadd_wch\fP(3X).
.SS TABSIZE
-.LP
-The \fBTABSIZE\fR variable is implemented in SVr4 and other versions of curses,
-but is not part of X/Open curses
-(see \fBcurs_variables\fR(3X) for more details).
-.LP
-If \fIch\fR is a carriage return,
-the cursor is moved to the beginning of the current row of the window.
-This is true of other implementations, but is not documented.
+SVr4 and other versions of
+.I curses
+implement the
+.B \%TABSIZE
+variable,
+but X/Open Curses does not specify it
+(see \fB\%curs_variables\fP(3X)).
.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBcurs_attr\fR(3X),
-\fBcurs_clear\fR(3X),
-\fBcurs_inch\fR(3X),
-\fBcurs_outopts\fR(3X),
-\fBcurs_refresh\fR(3X),
-\fBcurs_variables\fR(3X),
-\fBputc\fR(3).
+\fB\%curs_add_wch\fP(3X) describes comparable functions of the
+.I \%ncurses
+library in its wide-character configuration
+.RI ( \%ncursesw ).
.PP
-Comparable functions in the wide-character (ncursesw) library are
-described in
-\fBcurs_add_wch\fR(3X).
+\fB\%curses\fP(3X),
+\fB\%curs_addchstr\fP(3X),
+\fB\%curs_addstr\fP(3X),
+\fB\%curs_attr\fP(3X),
+\fB\%curs_clear\fP(3X),
+\fB\%curs_inch\fP(3X),
+\fB\%curs_outopts\fP(3X),
+\fB\%curs_refresh\fP(3X),
+\fB\%curs_variables\fP(3X),
+\fB\%putchar\fP(3)
diff --git a/man/curs_addchstr.3x b/man/curs_addchstr.3x
index 09d70d6e8e1f..25d322aff0be 100644
--- a/man/curs_addchstr.3x
+++ b/man/curs_addchstr.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2019,2020 Thomas E. Dickey *
+.\" Copyright 2019-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2012,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,62 +27,61 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_addchstr.3x,v 1.22 2020/12/19 21:39:20 tom Exp $
-.TH curs_addchstr 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: curs_addchstr.3x,v 1.45 2024/04/20 21:20:07 tom Exp $
+.TH curs_addchstr 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
-.na
-.hy 0
.SH NAME
-\fBaddchstr\fR,
-\fBaddchnstr\fR,
-\fBwaddchstr\fR,
-\fBwaddchnstr\fR,
-\fBmvaddchstr\fR,
-\fBmvaddchnstr\fR,
-\fBmvwaddchstr\fR,
-\fBmvwaddchnstr\fR \- add a string of characters (and attributes) to a \fBcurses\fR window
-.ad
-.hy
+\fB\%addchstr\fP,
+\fB\%addchnstr\fP,
+\fB\%waddchstr\fP,
+\fB\%waddchnstr\fP,
+\fB\%mvaddchstr\fP,
+\fB\%mvaddchnstr\fP,
+\fB\%mvwaddchstr\fP,
+\fB\%mvwaddchnstr\fP \-
+add a \fIcurses\fR character string to a window
.SH SYNOPSIS
.nf
-\fB#include <curses.h>\fR
+\fB#include <curses.h>
.PP
-\fBint addchstr(const chtype *\fP\fIchstr\fP\fB);\fR
-.br
-\fBint addchnstr(const chtype *\fP\fIchstr\fP\fB, int \fP\fIn\fP\fB);\fR
-.br
-\fBint waddchstr(WINDOW *\fP\fIwin\fP\fB, const chtype *\fP\fIchstr\fP\fB);\fR
-.br
-\fBint waddchnstr(WINDOW *\fP\fIwin\fP\fB, const chtype *\fP\fIchstr\fP\fB, int \fP\fIn\fP\fB);\fR
-.sp
-\fBint mvaddchstr(int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, const chtype *\fP\fIchstr\fP\fB);\fR
-.br
-\fBint mvaddchnstr(int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, const chtype *\fP\fIchstr\fP\fB, int \fP\fIn\fP\fB);\fR
-.br
-\fBint mvwaddchstr(WINDOW *\fP\fIwin\fP\fB, int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, const chtype *\fP\fIchstr\fP\fB);\fR
-.br
-\fBint mvwaddchnstr(WINDOW *\fP\fIwin\fP\fB, int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, const chtype *\fP\fIchstr\fP\fB, int \fP\fIn\fP\fB);\fR
+\fBint addchstr(const chtype *\fIchstr\fP);
+\fBint waddchstr(WINDOW *\fIwin\fP, const chtype *\fIchstr\fP);
+\fBint mvaddchstr(int \fIy\fP, int \fIx\fP, const chtype *\fIchstr\fP);
+\fBint mvwaddchstr(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, const chtype *\fIchstr\fP);
+.PP
+\fBint addchnstr(const chtype *\fIchstr\fP, int \fIn\fP);
+\fBint waddchnstr(WINDOW *\fIwin\fP, const chtype *\fIchstr\fP, int \fIn\fP);
+\fBint mvaddchnstr(int \fIy\fP, int \fIx\fP, const chtype *\fIchstr\fP, int \fIn\fP);
+\fBint mvwaddchnstr(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, const chtype *\fIchstr\fP, int \fIn\fP);
.fi
.SH DESCRIPTION
These functions copy the (null-terminated)
-\fIchstr\fR array
+\fIchstr\fP array
into the window image structure
starting at the current cursor position.
-The four functions with \fIn\fR as the last
-argument copy at most \fIn\fR elements,
+.PP
+The four functions with \fIn\fP as the last
+argument copy at most \fIn\fP elements,
but no more than will fit on the line.
-If \fBn\fR=\fB\-1\fR then the whole array is copied,
+If \fBn\fP=\fB\-1\fP then the whole array is copied,
to the maximum number of characters that will fit on the line.
.PP
-The window cursor is \fInot\fR advanced.
-These functions work faster than \fBwaddnstr\fR.
+The window cursor is \fInot\fP advanced.
+These functions are faster than \fBwaddnstr\fP.
On the other hand:
.bP
they do not perform checking
@@ -95,23 +94,30 @@ they do not expand other control characters to ^-escapes, and
they truncate the string if it crosses the right margin,
rather than wrapping it around to the new line.
.SH RETURN VALUE
-All functions return the integer \fBERR\fR upon failure and \fBOK\fR on success.
+All functions return the integer \fBERR\fP upon failure and \fBOK\fP on success.
.PP
-X/Open does not define any error conditions.
+X/Open Curses does not specify any error conditions.
This implementation returns an error
-if the window pointer is null.
+.bP
+if the \fIwin\fP parameter is null or
+.bP
+if the \fIwchstr\fP parameter is null.
.PP
-Functions with a \*(``mv\*('' prefix first perform a cursor movement using
-\fBwmove\fP, and return an error if the position is outside the window,
-or if the window pointer is null.
+Functions prefixed with \*(``mv\*('' first perform cursor movement and
+fail if the position
+.RI ( y ,
+.IR x )
+is outside the window boundaries.
.SH NOTES
-All functions except \fBwaddchnstr\fR may be macros.
+All functions except \fBwaddchnstr\fP may be macros.
.SH PORTABILITY
-These entry points are described in the XSI Curses standard, Issue 4.
+These functions are described in X/Open Curses, Issue 4.
.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBcurs_addstr\fR(3X).
+\fB\%curs_add_wchstr\fP(3X) describes comparable functions of the
+.I \%ncurses
+library in its wide-character configuration
+.RI ( \%ncursesw ).
.PP
-Comparable functions in the wide-character (ncursesw) library are
-described in
-\fBcurs_add_wchstr\fR(3X).
+\fB\%curses\fP(3X),
+\fB\%curs_addch\fP(3X),
+\fB\%curs_addstr\fP(3X)
diff --git a/man/curs_addstr.3x b/man/curs_addstr.3x
index 6f280e64ee1b..1244001dbd95 100644
--- a/man/curs_addstr.3x
+++ b/man/curs_addstr.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2019,2020 Thomas E. Dickey *
+.\" Copyright 2019-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2012,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,93 +27,109 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_addstr.3x,v 1.23 2020/10/17 23:11:02 tom Exp $
-.TH curs_addstr 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: curs_addstr.3x,v 1.45 2024/04/20 19:18:18 tom Exp $
+.TH curs_addstr 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
-.na
-.hy 0
.SH NAME
-\fBaddstr\fR,
-\fBaddnstr\fR,
-\fBwaddstr\fR,
-\fBwaddnstr\fR,
-\fBmvaddstr\fR,
-\fBmvaddnstr\fR,
-\fBmvwaddstr\fR,
-\fBmvwaddnstr\fR \- add a string of characters to a \fBcurses\fR window and advance cursor
-.ad
-.hy
+\fB\%addstr\fP,
+\fB\%addnstr\fP,
+\fB\%waddstr\fP,
+\fB\%waddnstr\fP,
+\fB\%mvaddstr\fP,
+\fB\%mvaddnstr\fP,
+\fB\%mvwaddstr\fP,
+\fB\%mvwaddnstr\fP \-
+add a string to a \fIcurses\fR window and advance the cursor
.SH SYNOPSIS
.nf
-\fB#include <curses.h>\fR
+\fB#include <curses.h>
.PP
-\fBint addstr(const char *\fR\fIstr\fR\fB);\fR
-.br
-\fBint addnstr(const char *\fR\fIstr\fR\fB, int \fR\fIn\fR\fB);\fR
-.br
-\fBint waddstr(WINDOW *\fR\fIwin\fR\fB, const char *\fR\fIstr\fR\fB);\fR
-.br
-\fBint waddnstr(WINDOW *\fR\fIwin\fR\fB, const char *\fR\fIstr\fR\fB, int \fR\fIn\fR\fB);\fR
-.sp
-\fBint mvaddstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const char *\fR\fIstr\fR\fB);\fR
-.br
-\fBint mvaddnstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const char *\fR\fIstr\fR\fB, int \fR\fIn\fR\fB);\fR
-.br
-\fBint mvwaddstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const char *\fR\fIstr\fR\fB);\fR
-.br
-\fBint mvwaddnstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const char *\fR\fIstr, int \fR\fIn\fR\fB);\fR
+\fBint addstr(const char *\fIstr\fP);
+\fBint mvaddstr(int \fIy\fP, int \fIx\fP, const char *\fIstr\fP);
+\fBint mvwaddstr(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, const char *\fIstr\fP);
+\fBint waddstr(WINDOW *\fIwin\fP, const char *\fIstr\fP);
+.PP
+\fBint addnstr(const char *\fIstr\fP, int \fIn\fP);
+\fBint mvaddnstr(int \fIy\fP, int \fIx\fP, const char *\fIstr\fP, int \fIn\fP);
+\fBint mvwaddnstr(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, const char *\fIstr\fP, int \fIn\fP);
+\fBint waddnstr(WINDOW *\fIwin\fP, const char *\fIstr\fP, int \fIn\fP);
.fi
.SH DESCRIPTION
-These functions write the (null-terminated) character string
-\fIstr\fR on the given window.
-It is similar to calling \fBwaddch\fR once for each byte in the string.
+.B waddstr
+writes the characters of the (null-terminated) string
+.I str
+to the window
+.IR win .
+Its process is similar to calling \fB\%waddch\fP(3X) for each
+.I char
+in
+.IR str .
+Control characters are processed as in \fB\%waddch\fP(3X).
.PP
-The \fImv\fR functions perform cursor movement once, before writing any
-characters.
-Thereafter, the cursor is advanced as a side-effect of writing to the window.
+.B waddnstr
+writes at most
+.I n
+characters,
+or until a terminating null character occurs in
+.IR str .
+If
+.I n
+is \-1,
+.B
+.B waddnstr
+writes the entire string.
.PP
-The four functions with \fIn\fR as the last argument
-write at most \fIn\fR bytes,
-or until a terminating null is reached.
-If \fIn\fR is \-1, then the entire string will be added.
+\fB\%ncurses\fP(3X) describes the variants of these functions.
.SH RETURN VALUE
-All functions return the integer \fBERR\fR upon failure and \fBOK\fR on success.
+These functions return
+.B OK
+on success and
+.B ERR
+on failure.
.PP
-X/Open does not define any error conditions.
-This implementation returns an error
+X/Open Curses does not specify any error conditions.
+.I \%ncurses
+returns an error
.bP
-if the window pointer is null or
+if the window pointer is
+.BR NULL ,
.bP
-if the string pointer is null or
+if the string pointer is
+.BR NULL ,
+or
.bP
-if the corresponding calls to \fBwaddch\fP return an error.
-.PP
-Functions with a \*(``mv\*('' prefix first perform a cursor movement using
-\fBwmove\fP, and return an error if the position is outside the window,
-or if the window pointer is null.
-If an error is returned by the \fBwmove\fP,
-no characters are added to the window.
+if an internal \fB\%waddch\fP(3X) call returns an error.
.PP
-If an error is returned by \fBwaddch\fP
-(e.g.,
-because the window is not large enough,
-or an illegal byte sequence was detected)
-only part of the string may be added.
-Aside from that,
-there is a special case in \fBwaddch\fP where an error may be
-returned after successfully writing a character to the lower-right corner
-of a window when \fBscrollok\fP is disabled.
+Functions prefixed with \*(``mv\*('' first perform cursor movement and
+fail if the position
+.RI ( y ,
+.IR x )
+is outside the window boundaries.
.SH NOTES
-All of these functions except \fBwaddnstr\fR may be macros.
+All of these functions except \fBwaddnstr\fP may be macros.
.SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4.
+X/Open Curses,
+Issue 4 describes these functions.
.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBcurs_addch\fR(3X).
+\fB\%curs_addwstr\fP(3X) describes comparable functions of the
+.I \%ncurses
+library in its wide-character configuration
+.RI ( \%ncursesw ).
+.PP
+\fB\%curses\fP(3X),
+\fB\%curs_addch\fP(3X),
+\fB\%curs_addchstr\fP(3X)
diff --git a/man/curs_addwstr.3x b/man/curs_addwstr.3x
index 6f7c3dbe17f7..78d5788ebc22 100644
--- a/man/curs_addwstr.3x
+++ b/man/curs_addwstr.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2019,2020 Thomas E. Dickey *
+.\" Copyright 2019-2023,2024 Thomas E. Dickey *
.\" Copyright 2002-2012,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,83 +27,120 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_addwstr.3x,v 1.15 2020/10/17 23:12:22 tom Exp $
-.TH curs_addwstr 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: curs_addwstr.3x,v 1.37 2024/04/20 19:18:18 tom Exp $
+.TH curs_addwstr 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
-.na
-.hy 0
.SH NAME
-\fBaddwstr\fR,
-\fBaddnwstr\fR,
-\fBwaddwstr\fR,
-\fBwaddnwstr\fR,
-\fBmvaddwstr\fR,
-\fBmvaddnwstr\fR,
-\fBmvwaddwstr\fR,
-\fBmvwaddnwstr\fR \- add a string of wide characters to a \fBcurses\fR window and advance cursor
-.ad
-.hy
+\fB\%addwstr\fP,
+\fB\%addnwstr\fP,
+\fB\%waddwstr\fP,
+\fB\%waddnwstr\fP,
+\fB\%mvaddwstr\fP,
+\fB\%mvaddnwstr\fP,
+\fB\%mvwaddwstr\fP,
+\fB\%mvwaddnwstr\fP \-
+add a wide-character string to a \fIcurses\fR window and advance the cursor
.SH SYNOPSIS
.nf
-\fB#include <curses.h>\fR
+\fB#include <curses.h>
.PP
-\fBint addwstr(const wchar_t *\fR\fIwstr\fR\fB);\fR
-.br
-\fBint addnwstr(const wchar_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR
-.br
-\fBint waddwstr(WINDOW *\fR\fIwin\fR\fB, const wchar_t *\fR\fIwstr\fR\fB);\fR
-.br
-\fBint waddnwstr(WINDOW *\fR\fIwin\fR\fB, const wchar_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR
-.sp
-\fBint mvaddwstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const wchar_t *\fR\fIwstr\fR\fB);\fR
-.br
-\fBint mvaddnwstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const wchar_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR
-.br
-\fBint mvwaddwstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const wchar_t *\fR\fIwstr\fR\fB);\fR
-.br
-\fBint mvwaddnwstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const wchar_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR
+\fBint addwstr(const wchar_t *\fIwstr\fP);
+\fBint mvaddwstr(int \fIy\fP, int \fIx\fP, const wchar_t *\fIwstr\fP);
+\fBint mvwaddwstr(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, const wchar_t *\fIwstr\fP);
+\fBint waddwstr(WINDOW *\fIwin\fP, const wchar_t *\fIwstr\fP);
+.PP
+\fBint addnwstr(const wchar_t *\fIwstr\fP, int \fIn\fP);
+\fBint mvaddnwstr(int \fIy\fP, int \fIx\fP, const wchar_t *\fIwstr\fP, int \fIn\fP);
+\fBint mvwaddnwstr(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, const wchar_t *\fIwstr\fP, int \fIn\fP);
+\fBint waddnwstr(WINDOW *\fIwin\fP, const wchar_t *\fIwstr\fP, int \fIn\fP);
.fi
.SH DESCRIPTION
-These functions write the characters of the
-(null-terminated) \fBwchar_t\fR character string
-\fIwstr\fR on the given window.
-It is similar to constructing a \fBcchar_t\fR for each wchar_t in the string,
-then calling \fBwadd_wch\fR for the resulting \fBcchar_t\fR.
+.B waddwstr
+writes the characters of the (wide-null-terminated) wide-character
+string
+.I wstr
+to the window
+.IR win .
+Its process is similar to constructing a
+.I cchar_t
+for each
+.I wchar_t
+in
+.IR wstr ,
+then calling \fB\%wadd_wch\fP(3X) with the resulting
+.IR cchar_t .
+.bP
+Spacing and non-spacing characters in the string
+are processed one at a time,
+and
+.bP
+control characters are processed as in \fB\%wadd_wch\fP(3X).
.PP
-The \fImv\fR functions perform cursor movement once, before writing any
-characters.
-Thereafter, the cursor is advanced as a side-effect of writing to the window.
+.B waddnwstr
+writes at most
+.I n
+wide characters,
+or until a terminating wide null character occurs in
+.IR wstr .
+If
+.I n
+is \-1,
+.B
+.B waddnwstr
+writes the entire wide string.
.PP
-The four functions with \fIn\fR as the last argument
-write at most \fIn\fR \fBwchar_t\fR characters,
-or until a terminating null is reached.
-If \fIn\fR is \-1, then the entire string will be added.
+\fB\%ncurses\fP(3X) describes the variants of these functions.
.SH RETURN VALUE
-All functions return the integer \fBERR\fR upon failure and \fBOK\fR on success.
+These functions return
+.B OK
+on success and
+.B ERR
+on failure.
.PP
-X/Open does not define any error conditions.
-This implementation returns an error
+X/Open Curses does not specify any error conditions.
+.I \%ncurses
+returns an error
.bP
-if the window pointer is null or
+if the window pointer is
+.BR NULL ,
.bP
-if the string pointer is null or
+if the string pointer is
+.BR NULL ,
+or
.bP
-if the corresponding calls to \fBwadd_wch\fP return an error.
+if an internal \fB\%wadd_wch\fP(3X) call returns an error.
.PP
-Functions with a \*(``mv\*('' prefix first perform a cursor movement using
-\fBwmove\fP, and return an error if the position is outside the window,
-or if the window pointer is null.
+Functions prefixed with \*(``mv\*('' first perform cursor movement and
+fail if the position
+.RI ( y ,
+.IR x )
+is outside the window boundaries.
.SH NOTES
-All of these functions except \fBwaddnwstr\fR may be macros.
+All of these functions except
+.B waddnwstr
+may be implemented as macros.
.SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4.
+X/Open Curses,
+Issue 4 describes these functions.
.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBcurs_add_wch\fR(3X)
+\fB\%curs_addstr\fP(3X) describes comparable functions of the
+.I \%ncurses
+library in its non-wide-character configuration.
+.PP
+\fB\%curses\fP(3X),
+\fB\%curs_add_wch\fP(3X),
+\fB\%curs_add_wchstr\fP(3X)
diff --git a/man/curs_attr.3x b/man/curs_attr.3x
index 8199977ab690..37774602be8c 100644
--- a/man/curs_attr.3x
+++ b/man/curs_attr.3x
@@ -1,6 +1,6 @@
'\" t
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2016,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,126 +28,93 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_attr.3x,v 1.66 2020/02/02 23:34:34 tom Exp $
-.TH curs_attr 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
-.de NS
-.ie n .sp
-.el .sp .5
-.ie n .in +4
-.el .in +2
-.nf
-.ft C \" Courier
-..
-.de NE
-.fi
-.ft R
-.ie n .in -4
-.el .in -2
-..
+.\" $Id: curs_attr.3x,v 1.105 2024/04/27 17:54:42 tom Exp $
+.TH curs_attr 3X 2024-04-27 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
-.na
-.hy 0
.\" ---------------------------------------------------------------------------
.SH NAME
-.\" attr_get
-\fBattr_get\fR,
-\fBwattr_get\fR,
-\fBattr_set\fR,
-\fBwattr_set\fR,
-.\" .br
-\fBattr_off\fR,
-\fBwattr_off\fR,
-\fBattr_on\fR,
-\fBwattr_on\fR,
-.\" .br
-\fBattroff\fR,
-\fBwattroff\fR,
-\fBattron\fR,
-\fBwattron\fR,
-\fBattrset\fR,
-\fBwattrset\fR,
-.\" .br
-\fBchgat\fR,
-\fBwchgat\fR,
-\fBmvchgat\fR,
-\fBmvwchgat\fR,
-.\" .br
-\fBcolor_set\fR,
-\fBwcolor_set\fR,
-.\" .br
-\fBstandend\fR,
-\fBwstandend\fR,
-\fBstandout\fR,
-\fBwstandout\fR \- \fBcurses\fR character and window attribute control routines
-.ad
-.hy
+\fB\%attr_get\fP,
+\fB\%wattr_get\fP,
+\fB\%attr_set\fP,
+\fB\%wattr_set\fP,
+\fB\%attr_off\fP,
+\fB\%wattr_off\fP,
+\fB\%attr_on\fP,
+\fB\%wattr_on\fP,
+\fB\%attroff\fP,
+\fB\%wattroff\fP,
+\fB\%attron\fP,
+\fB\%wattron\fP,
+\fB\%attrset\fP,
+\fB\%wattrset\fP,
+\fB\%chgat\fP,
+\fB\%wchgat\fP,
+\fB\%mvchgat\fP,
+\fB\%mvwchgat\fP,
+\fB\%color_set\fP,
+\fB\%wcolor_set\fP,
+\fB\%standend\fP,
+\fB\%wstandend\fP,
+\fB\%standout\fP,
+\fB\%wstandout\fP \-
+manipulate attributes of character cells in \fIcurses\fR windows
.\" ---------------------------------------------------------------------------
.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\fBint attr_get(attr_t *\fP\fIattrs\fP\fB, short *\fP\fIpair\fP\fB, void *\fP\fIopts\fP\fB);\fR
-.br
-\fBint wattr_get(WINDOW *\fP\fIwin\fP\fB, attr_t *\fP\fIattrs\fP\fB, short *\fP\fIpair\fP\fB,\fR \fBvoid *\fP\fIopts\fP\fB);\fR
-.br
-\fBint attr_set(attr_t \fP\fIattrs\fP\fB, short \fP\fIpair\fP\fB, void *\fP\fIopts\fP\fB);\fR
-.br
-\fBint wattr_set(WINDOW *\fP\fIwin\fP\fB, attr_t \fP\fIattrs\fP\fB, short \fP\fIpair\fP\fB, void *\fP\fIopts\fP\fB);\fR
-.sp
-\fBint attr_off(attr_t \fP\fIattrs\fP\fB, void *\fP\fIopts\fP\fB);\fR
-.br
-\fBint wattr_off(WINDOW *\fP\fIwin\fP\fB, attr_t \fP\fIattrs\fP\fB, void *\fP\fIopts\fP\fB);\fR
-.br
-\fBint attr_on(attr_t \fP\fIattrs\fP\fB, void *\fP\fIopts\fP\fB);\fR
-.br
-\fBint wattr_on(WINDOW *\fP\fIwin\fP\fB, attr_t \fP\fIattrs\fP\fB, void *\fP\fIopts\fP\fB);\fR
-.sp
-\fBint attroff(int \fP\fIattrs);\fR
-.br
-\fBint wattroff(WINDOW *\fP\fIwin\fP\fB, int \fP\fIattrs\fP\fB);\fR
-.br
-\fBint attron(int \fP\fIattrs\fP\fB);\fR
-.br
-\fBint wattron(WINDOW *\fP\fIwin\fP\fB, int \fP\fIattrs\fP\fB);\fR
-.br
-\fBint attrset(int \fP\fIattrs\fP\fB);\fR
-.br
-\fBint wattrset(WINDOW *\fP\fIwin\fP\fB, int \fP\fIattrs\fP\fB);\fR
-.sp
-\fBint chgat(int \fP\fIn\fP\fB, attr_t \fP\fIattr\fP\fB, short \fP\fIpair\fP\fB,\fR \fBconst void *\fP\fIopts\fP\fB);\fR
-.br
-\fBint wchgat(WINDOW *\fP\fIwin\fP\fB,\fP
- \fBint \fP\fIn\fP\fB, attr_t \fP\fIattr\fP\fB,\fR \fBshort \fP\fIpair\fP\fB, const void *\fP\fIopts\fP\fB);\fR
-.br
-\fBint mvchgat(int \fP\fIy\fP\fB, int \fP\fIx\fP\fB,\fP
- \fBint \fP\fIn\fP\fB, attr_t \fP\fIattr\fP\fB,\fR \fBshort \fP\fIpair\fP\fB, const void *\fP\fIopts\fP\fB);\fR
-.br
-\fBint mvwchgat(WINDOW *\fP\fIwin, int \fP\fIy, int \fP\fIx\fP\fB,\fP
- \fBint \fP\fIn,\fR \fBattr_t \fP\fIattr\fP\fB, short \fP\fIpair\fP\fB, const void *\fP\fIopts\fP\fB);\fR
-.sp
-\fBint color_set(short \fP\fIpair\fP\fB, void* \fP\fIopts\fP\fB);\fR
-.br
-\fBint wcolor_set(WINDOW *\fP\fIwin\fP\fB, short \fP\fIpair\fP\fB,\fR \fBvoid* \fP\fIopts);\fR
-.sp
-\fBint standend(void);\fR
-.br
-\fBint wstandend(WINDOW *\fP\fIwin\fP\fB);\fR
-.br
-\fBint standout(void);\fR
-.br
-\fBint wstandout(WINDOW *\fP\fIwin\fP\fB);\fR
+.nf
+\fB#include <curses.h>
+.PP
+\fBint attr_get(attr_t *\fIattrs\fP, short *\fIpair\fP, void *\fIopts\fP);
+\fBint wattr_get(WINDOW *\fIwin\fP, attr_t *\fIattrs\fP, short *\fIpair\fP,\fR \fPvoid *\fIopts\fP);
+\fBint attr_set(attr_t \fIattrs\fP, short \fIpair\fP, void *\fIopts\fP);
+\fBint wattr_set(WINDOW *\fIwin\fP, attr_t \fIattrs\fP, short \fIpair\fP, void *\fIopts\fP);
+.PP
+\fBint attr_off(attr_t \fIattrs\fP, void *\fIopts\fP);
+\fBint wattr_off(WINDOW *\fIwin\fP, attr_t \fIattrs\fP, void *\fIopts\fP);
+\fBint attr_on(attr_t \fIattrs\fP, void *\fIopts\fP);
+\fBint wattr_on(WINDOW *\fIwin\fP, attr_t \fIattrs\fP, void *\fIopts\fP);
+.PP
+\fBint attroff(int \fIattrs\fP);
+\fBint wattroff(WINDOW *\fIwin\fP, int \fIattrs\fP);
+\fBint attron(int \fIattrs\fP);
+\fBint wattron(WINDOW *\fIwin\fP, int \fIattrs\fP);
+\fBint attrset(int \fIattrs\fP);
+\fBint wattrset(WINDOW *\fIwin\fP, int \fIattrs\fP);
+.PP
+\fBint chgat(int \fIn\fP, attr_t \fIattr\fP, short \fIpair\fP,\fR \fPconst void *\fIopts\fP);
+\fBint wchgat(WINDOW *\fIwin\fP,
+ \fBint \fIn\fB, attr_t \fIattr\fB,\fR \fBshort \fIpair\fB, const void *\fIopts\fB);\fR
+\fBint mvchgat(int \fIy\fB, int \fIx\fB,\fR
+ \fBint \fIn\fB, attr_t \fIattr\fB, short \fIpair\fB, const void *\fIopts\fB);\fR
+\fBint mvwchgat(WINDOW *\fIwin\fB, int \fIy\fB, int \fIx\fB,\fR
+ \fBint \fIn\fB, attr_t \fIattr\fB, short \fIpair\fB, const void *\fIopts\fB);\fR
+.PP
+\fBint color_set(short \fIpair\fB, void* \fIopts\fB);\fR
+\fBint wcolor_set(WINDOW *\fIwin\fB, short \fIpair\fB,\fR \fBvoid* \fIopts\fP);\fR
+.PP
+\fBint standend(void);\fP
+\fBint wstandend(WINDOW *\fIwin\fB);\fR
+\fBint standout(void);\fP
+\fBint wstandout(WINDOW *\fIwin\fB);\fR
+.fi
.\" ---------------------------------------------------------------------------
.SH DESCRIPTION
-.PP
These routines manipulate the current attributes of the named window,
which then apply to all characters that are written into
-the window with \fBwaddch\fR, \fBwaddstr\fR and \fBwprintw\fR.
+the window with \fBwaddch\fP, \fBwaddstr\fP and \fBwprintw\fP.
Attributes are
a property of the character, and move with the character through any scrolling
and insert/delete line/character operations.
@@ -157,15 +124,10 @@ put on the screen.
.PP
These routines do not affect the attributes used
when erasing portions of the window.
-See \fBcurs_bkgd\fR(3X) for functions which modify the attributes used for
+See \fBcurs_bkgd\fP(3X) for functions which modify the attributes used for
erasing and clearing.
-.PP
-Routines which do not have a \fBWINDOW*\fP parameter apply to \fBstdscr\fP.
-For example,
-\fBattr_set\fP is the \fBstdscr\fP variant of \fBwattr_set\fP.
.\" ---------------------------------------------------------------------------
-.SS Window attributes
-.PP
+.SS "Window Attributes"
There are two sets of functions:
.bP
functions for manipulating the window attributes and color:
@@ -186,7 +148,7 @@ Use \fBattr_off\fP and \fBwattr_off\fP to turn off window attributes,
again values OR'd together in \fIattr\fP,
without affecting other attributes.
.\" ---------------------------------------------------------------------------
-.SS Legacy window attributes
+.SS "Legacy Window Attributes"
The X/Open window attribute routines which \fIset\fP or \fIget\fP,
turn \fIon\fP or \fIoff\fP
are extensions of older routines
@@ -204,135 +166,293 @@ the attribute parameter.
For example,
as long as that value fits into the \fBA_COLOR\fP mask,
then these calls produce similar results:
-.NS
+.PP
+.RS 4
+.EX
attrset(A_BOLD | COLOR_PAIR(\fIpair\fP));
attr_set(A_BOLD, \fIpair\fP, NULL);
-.NE
+.EE
+.RE
.PP
However, if the value does not fit, then the \fBCOLOR_PAIR\fP macro
uses only the bits that fit.
-For example, because in ncurses \fBA_COLOR\fP has eight (8) bits,
-then \fBCOLOR_PAIR(\fP\fI259\fP\fB)\fP is 4
+For example,
+because in \fI\%ncurses\fP \fBA_COLOR\fP has eight (8) bits,
+then \fBCOLOR_PAIR(\fI259\fB)\fR is 4
(i.e., 259 is 4 more than the limit 255).
.PP
The \fBPAIR_NUMBER\fP macro extracts a pair number from an \fBint\fP
(or \fBchtype\fP).
For example, the \fIinput\fP and \fIoutput\fP values in these statements
would be the same:
-.NS
+.PP
+.RS 4
+.EX
int value = A_BOLD | COLOR_PAIR(\fIinput\fP);
int \fIoutput\fP = PAIR_NUMBER(value);
-.NE
+.EE
+.RE
.PP
The \fBattrset\fP routine is a legacy feature predating SVr4 curses
but kept in X/Open Curses for the same reason that SVr4 curses kept it:
compatibility.
.PP
-The remaining \fBattr\fR* functions operate exactly like the corresponding
-\fBattr_\fR* functions, except that they take arguments of type \fBint\fR
-rather than \fBattr_t\fR.
+The remaining \fBattr\fP* functions operate exactly like the corresponding
+\fBattr_\fP* functions, except that they take arguments of type \fBint\fP
+rather than \fBattr_t\fP.
.PP
-There is no corresponding \fBattrget\fP function as such in X/Open Curses,
-although ncurses provides \fBgetattrs\fP (see curs_legacy(3X)).
+There is no corresponding \fB\%attrget\fP function as such
+in X/Open Curses,
+although \fI\%ncurses\fP provides \fB\%getattrs\fP
+(see \fB\%curs_legacy\fP(3X)).
.\" ---------------------------------------------------------------------------
-.SS Change character rendition
-.PP
-The routine \fBchgat\fR changes the attributes of a given number of characters
-starting at the current cursor location of \fBstdscr\fR.
+.SS "Change Character Rendition"
+The routine \fBchgat\fP changes the attributes of a given number of characters
+starting at the current cursor location of \fBstdscr\fP.
It does not update
the cursor and does not perform wrapping.
A character count of \-1 or greater
than the remaining window width means to change attributes all the way to the
end of the current line.
-The \fBwchgat\fR function generalizes this to any window;
-the \fBmvwchgat\fR function does a cursor move before acting.
+The \fBwchgat\fP function generalizes this to any window;
+the \fBmvwchgat\fP function does a cursor move before acting.
.PP
In these functions,
-the color \fIpair\fP argument is a color-pair index
-(as in the first argument of \fBinit_pair\fR, see \fBcurs_color\fR(3X)).
+the color \fIpair\fP argument is a color pair index
+(as in the first argument of \fBinit_pair\fP, see \fBcurs_color\fP(3X)).
.\" ---------------------------------------------------------------------------
-.SS Change window color
-The routine \fBcolor_set\fR sets the current color of the given window to the
+.SS "Change Window Color"
+The routine \fBcolor_set\fP sets the current color of the given window to the
foreground/background combination described by the color \fIpair\fP parameter.
.\" ---------------------------------------------------------------------------
.SS Standout
-.PP
-The routine \fBstandout\fR is
-the same as \fBattron(A_STANDOUT)\fR.
-The routine \fBstandend\fR is the same
-as \fBattrset(A_NORMAL)\fR or \fBattrset(0)\fR, that is, it turns off all
+The routine \fBstandout\fP is
+the same as \fBattron(A_STANDOUT)\fP.
+The routine \fBstandend\fP is the same
+as \fBattrset(A_NORMAL)\fP or \fBattrset(0)\fP, that is, it turns off all
attributes.
.PP
-X/Open does not mark these \*(``restricted\*('', because
+X/Open Curses does not mark these \*(``restricted\*('', because
.bP
they have well established legacy use, and
.bP
there is no ambiguity about the way the attributes
might be combined with a color pair.
.\" ---------------------------------------------------------------------------
-.SH VIDEO ATTRIBUTES
-The following video attributes, defined in \fB<curses.h>\fR, can be passed to
-the routines \fBattron\fR, \fBattroff\fR, and \fBattrset\fR, or OR'd with the
-characters passed to \fBaddch\fR (see \fBcurs_addch\fR(3X)).
+.SS "Video Attributes"
+The following video attributes, defined in \fB<curses.h>\fP, can be passed to
+the routines \fBattron\fP, \fBattroff\fP, and \fBattrset\fP, or OR'd with the
+characters passed to \fBaddch\fP (see \fBcurs_addch\fP(3X)).
.PP
+.ne 15
.RS
.TS
-l l
-_ _ _
-l l .
-\fIName\fR \fIDescription\fR
-\fBA_NORMAL\fR Normal display (no highlight)
-\fBA_STANDOUT\fR Best highlighting mode of the terminal.
-\fBA_UNDERLINE\fR Underlining
-\fBA_REVERSE\fR Reverse video
-\fBA_BLINK\fR Blinking
-\fBA_DIM\fR Half bright
-\fBA_BOLD\fR Extra bright or bold
-\fBA_PROTECT\fR Protected mode
-\fBA_INVIS\fR Invisible or blank mode
-\fBA_ALTCHARSET\fR Alternate character set
-\fBA_ITALIC\fR Italics (non-X/Open extension)
-\fBA_CHARTEXT\fR Bit-mask to extract a character
-\fBA_COLOR\fR Bit-mask to extract a color (legacy routines)
+Lb Lb
+Lb Lx.
+Name Description
+_
+A_NORMAL Normal display (no highlight)
+A_STANDOUT T{
+Best highlighting mode of the terminal
+T}
+A_UNDERLINE Underlining
+A_REVERSE Reverse video
+A_BLINK Blinking
+A_DIM Half bright
+A_BOLD Extra bright or bold
+A_PROTECT Protected mode
+A_INVIS Invisible or blank mode
+A_ALTCHARSET Alternate character set
+A_ITALIC Italics (non-X/Open extension)
+A_CHARTEXT Bit-mask to extract a character
+A_COLOR T{
+Bit-mask to extract a color (legacy routines)
+T}
.TE
.RE
.PP
These video attributes are supported by \fBattr_on\fP and related functions
(which also support the attributes recognized by \fBattron\fP, etc.):
+.PP
.RS
.TS
-l l
-_ _ _
-l l .
-\fIName\fR \fIDescription\fR
-\fBWA_HORIZONTAL\fR Horizontal highlight
-\fBWA_LEFT\fR Left highlight
-\fBWA_LOW\fR Low highlight
-\fBWA_RIGHT\fR Right highlight
-\fBWA_TOP\fR Top highlight
-\fBWA_VERTICAL\fR Vertical highlight
+Lb Lb
+Lb Lx.
+Name Description
+_
+WA_HORIZONTAL Horizontal highlight
+WA_LEFT Left highlight
+WA_LOW Low highlight
+WA_RIGHT Right highlight
+WA_TOP Top highlight
+WA_VERTICAL Vertical highlight
.TE
.RE
.PP
The return values of many of these routines are not meaningful (they are
implemented as macro-expanded assignments and simply return their argument).
-The SVr4 manual page claims (falsely) that these routines always return \fB1\fR.
+The SVr4 manual page claims (falsely) that these routines always return \fB1\fP.
+.\" ---------------------------------------------------------------------------
+.SH RETURN VALUE
+All routines return the integer \fBOK\fP on success, or \fBERR\fP on failure.
+.PP
+X/Open Curses does not specify any error conditions.
+.PP
+This implementation
+.bP
+returns an error if the window pointer is null.
+.bP
+returns an error if the color pair parameter
+for \fBwcolor_set\fP is outside the range 0..COLOR_PAIRS\-1.
+.bP
+does not return an error if either of the parameters of \fBwattr_get\fP
+used for retrieving attribute or color pair values is \fBNULL\fP.
+.PP
+Functions prefixed with \*(``mv\*('' first perform cursor movement and
+fail if the position
+.RI ( y ,
+.IR x )
+is outside the window boundaries.
.\" ---------------------------------------------------------------------------
.SH NOTES
These functions may be macros:
.sp
.RS
-\fBattroff\fR, \fBwattroff\fR, \fBattron\fR, \fBwattron\fR,
-\fBattrset\fR, \fBwattrset\fR, \fBstandend\fR and \fBstandout\fR.
+\fBattroff\fP, \fBwattroff\fP, \fBattron\fP, \fBwattron\fP,
+\fBattrset\fP, \fBwattrset\fP, \fBstandend\fP and \fBstandout\fP.
.RE
.PP
Color pair values can only be OR'd with attributes if the pair
number is less than 256.
The alternate functions such as \fBcolor_set\fP can pass a color pair
value directly.
-However, ncurses ABI 4 and 5 simply OR this value
+However, \fI\%ncurses\fP ABI 4 and 5 simply OR this value
within the alternate functions.
-You must use ncurses ABI 6 to support more than 256 color pairs.
+You must use \fI\%ncurses\fP ABI 6 to support more than 256 color pairs.
+.\" ---------------------------------------------------------------------------
+.SH EXTENSIONS
+This implementation provides the \fBA_ITALIC\fP attribute for terminals
+which have the \fBenter_italics_mode\fP (\fBsitm\fP)
+and \fBexit_italics_mode\fP (\fBritm\fP) capabilities.
+Italics are not mentioned in X/Open Curses.
+Unlike the other video attributes, \fBA_ITALIC\fP is unrelated
+to the \fBset_attributes\fP capabilities.
+This implementation makes the assumption that
+\fBexit_attribute_mode\fP may also reset italics.
+.PP
+Each of the functions added by XSI Curses has a parameter \fIopts\fP,
+which X/Open Curses still (after more than twenty years) documents
+as reserved for future use, saying that it should be \fBNULL\fP.
+This implementation uses that parameter in ABI 6 for the functions which
+have a color pair parameter to support \fIextended color pairs\fP:
+.bP
+For functions which modify the color, e.g.,
+\fBwattr_set\fP and \fBwattr_on\fP,
+if \fIopts\fP is set it is treated as a pointer to \fBint\fP,
+and used to set the color pair instead of the \fBshort\fP \fIpair\fP parameter.
+.bP
+For functions which retrieve the color, e.g.,
+\fBwattr_get\fP,
+if \fIopts\fP is set it is treated as a pointer to \fBint\fP,
+and used to retrieve the color pair as an \fBint\fP value,
+in addition to
+retrieving it via the standard pointer to \fBshort\fP parameter.
+.bP
+For functions which turn attributes off, e.g.,
+\fBwattr_off\fP,
+the \fIopts\fP parameter is ignored except
+except to check that it is \fBNULL\fP.
+.\" ---------------------------------------------------------------------------
+.SH PORTABILITY
+These functions are described in X/Open Curses, Issue 4.
+The standard defined the dedicated type for highlights,
+\fBattr_t\fP, which was not defined in SVr4 curses.
+The functions taking \fBattr_t\fP arguments were not supported under SVr4.
+.PP
+Very old versions of this library did not force an update of the screen
+when changing the attributes.
+Use \fBtouchwin\fP to force the screen to match the updated attributes.
+.PP
+X/Open Curses states that whether the traditional functions
+\fBattron\fP/\fBattroff\fP/\fBattrset\fP can manipulate attributes other than
+\fBA_BLINK\fP, \fBA_BOLD\fP, \fBA_DIM\fP, \fBA_REVERSE\fP, \fBA_STANDOUT\fP, or
+\fBA_UNDERLINE\fP is \*(``unspecified\*(''.
+Under this implementation as well as
+SVr4 curses, these functions correctly manipulate all other highlights
+(specifically, \fBA_ALTCHARSET\fP, \fBA_PROTECT\fP, and \fBA_INVIS\fP).
+.PP
+X/Open Curses added these entry points:
+.sp
+.RS
+\fBattr_get\fP, \fBattr_on\fP,
+\fBattr_off\fP, \fBattr_set\fP, \fBwattr_on\fP, \fBwattr_off\fP,
+\fBwattr_get\fP, \fBwattr_set\fP
+.RE
+.PP
+The new functions are intended to work with
+a new series of highlight macros prefixed with \fBWA_\fP.
+The older macros have direct counterparts in the newer set of names:
+.PP
+.RS
+.ne 9
+.TS
+Lb Lb
+Lb Lx.
+Name Description
+_
+WA_NORMAL Normal display (no highlight)
+WA_STANDOUT T{
+Best highlighting mode of the terminal
+T}
+WA_UNDERLINE Underlining
+WA_REVERSE Reverse video
+WA_BLINK Blinking
+WA_DIM Half bright
+WA_BOLD Extra bright or bold
+WA_ALTCHARSET Alternate character set
+.TE
+.RE
+.PP
+X/Open Curses does not assign values to these symbols,
+nor does it state whether or not they are related to the
+similarly-named A_NORMAL, etc.:
+.bP
+X/Open Curses specifies that each pair of corresponding \fBA_\fP
+and \fBWA_\fP-using functions operates on the same current-highlight
+information.
+.bP
+However, in some implementations, those symbols have unrelated values.
+.IP
+For example, the Solaris \fIxpg4\fP (X/Open) curses declares
+\fBattr_t\fP to be an unsigned short integer (16-bits),
+while \fBchtype\fP is a unsigned integer (32-bits).
+The \fBWA_\fP symbols in this case are different from the \fBA_\fP symbols
+because they are used for a smaller datatype which does not
+represent \fBA_CHARTEXT\fP or \fBA_COLOR\fP.
+.IP
+In this implementation (as in many others), the values happen to be
+the same because it simplifies copying information between
+\fBchtype\fP and \fBcchar_t\fP variables.
+.bP
+Because \fI\%ncurses\fP's \fBattr_t\fP can hold a color pair
+(in the \fBA_COLOR\fP field),
+a call to
+\fBwattr_on\fP,
+\fBwattr_off\fP, or
+\fBwattr_set\fP
+may alter the window's color.
+If the color pair information in the attribute parameter is zero,
+no change is made to the window's color.
+.IP
+This is consistent with SVr4 curses;
+X/Open Curses does not specify this.
+.PP
+The X/Open Curses extended conformance level adds new highlights
+\fBA_HORIZONTAL\fP, \fBA_LEFT\fP, \fBA_LOW\fP, \fBA_RIGHT\fP, \fBA_TOP\fP,
+\fBA_VERTICAL\fP (and corresponding \fBWA_\fP macros for each).
+As of August 2013,
+no known terminal provides these highlights
+(i.e., via the \fBsgr1\fP capability).
.\" ---------------------------------------------------------------------------
.SH HISTORY
X/Open Curses is largely based on SVr4 curses,
@@ -391,25 +511,26 @@ the format and size of the defined constants
as well as clues such as the alternate character set implementation.
A 32-bit library can be used on a 64-bit system,
but not necessarily the reverse.
-.RS
+.PP
.TS
-l l l l l l
-_ _ _ _ _ _
-l l l l l l .
-\fIYear\fR \fISystem\fR \fIArch\fP \fIColor\fR \fIChar\fR \fINotes\fR
-1992 Solaris 5.2 32 6 17 SVr4 curses
-1992 HPUX 9 32 no 8 SVr2 curses
-1992 AIX 3.2 32 no 23 SVr2 curses
-1994 OSF/1 r3 32 no 23 SVr2 curses
-1995 HP-UX 10.00 32 6 16 SVr3 \*(``curses_colr\*(''
-1995 HP-UX 10.00 32 6 8 SVr4, X/Open curses
-1995 Solaris 5.4 32/64 7 16 X/Open curses
-1996 AIX 4.2 32 7 16 X/Open curses
-1996 OSF/1 r4 32 6 16 X/Open curses
-1997 HP-UX 11.00 32 6 8 X/Open curses
-2000 U/Win 32/64 7/31 16 uses \fBchtype\fP
+Lb Lb Lb Cb S Lb
+Lb2 Lb Lb2 Lb2 Lb2 Lb
+L L L L L Lx.
+\& \& \& Bits \&
+Year System Arch Color Char Notes
+_
+1992 Solaris 5.2 32 6 17 SVr4 \fIcurses\fP
+1992 HP-UX 9 32 no 8 SVr2 \fIcurses\fP
+1992 AIX 3.2 32 no 23 SVr2 \fIcurses\fP
+1994 OSF/1 r3 32 no 23 SVr2 \fIcurses\fP
+1995 HP-UX 10.00 32 6 16 SVr3 \fIcurses_colr\fP
+1995 HP-UX 10.00 32 6 8 SVr4, X/Open \fIcurses\fP
+1995 Solaris 5.4 32/64 7 16 X/Open \fIcurses\fP
+1996 AIX 4.2 32 7 16 X/Open \fIcurses\fP
+1996 OSF/1 r4 32 6 16 X/Open \fIcurses\fP
+1997 HP-UX 11.00 32 6 8 X/Open \fIcurses\fP
+2000 U/Win 32/64 7/31 16 uses \fIchtype\fP
.TE
-.RE
.PP
Notes:
.RS 3
@@ -424,8 +545,9 @@ That version of curses was dropped with HP-UX 11.30 in 2006.
Regarding OSF/1 (and Tru64),
.bP
These used 64-bit hardware.
-Like ncurses, the OSF/1 curses interface is not customized for 32-bit
-and 64-bit versions.
+Like \fI\%ncurses\fP,
+the OSF/1 curses interface is not customized for 32-bit and 64-bit
+versions.
.bP
Unlike other systems which evolved from AT&T code,
OSF/1 provided a new implementation for X/Open curses.
@@ -459,147 +581,18 @@ members are not specified in X/Open Curses) could be extended as needed.
Other interfaces are rarely used now:
.bP
BSD curses was improved slightly in 1993/1994 using Keith Bostic's
-modification to make the library 8-bit clean for \fBnvi\fP.
+modification to make the library 8-bit clean for \fBnvi\fP(1).
He moved \fIstandout\fP attribute to a structure member.
.IP
-The resulting 4.4BSD curses was replaced by ncurses over the next ten years.
+The resulting 4.4BSD curses was replaced by \fI\%ncurses\fP over the
+next ten years.
.bP
U/Win is rarely used now.
.\" ---------------------------------------------------------------------------
-.SH EXTENSIONS
-.PP
-This implementation provides the \fBA_ITALIC\fP attribute for terminals
-which have the \fBenter_italics_mode\fP (\fBsitm\fP)
-and \fBexit_italics_mode\fP (\fBritm\fP) capabilities.
-Italics are not mentioned in X/Open Curses.
-Unlike the other video attributes, \fBA_ITALIC\fP is unrelated
-to the \fBset_attributes\fP capabilities.
-This implementation makes the assumption that
-\fBexit_attribute_mode\fP may also reset italics.
-.PP
-Each of the functions added by XSI Curses has a parameter \fIopts\fP,
-which X/Open Curses still (after more than twenty years) documents
-as reserved for future use, saying that it should be \fBNULL\fP.
-This implementation uses that parameter in ABI 6 for the functions which
-have a color-pair parameter to support \fIextended color pairs\fP:
-.bP
-For functions which modify the color, e.g.,
-\fBwattr_set\fP,
-if \fIopts\fP is set it is treated as a pointer to \fBint\fP,
-and used to set the color pair instead of the \fBshort\fP \fIpair\fP parameter.
-.bP
-For functions which retrieve the color, e.g.,
-\fBwattr_get\fP,
-if \fIopts\fP is set it is treated as a pointer to \fBint\fP,
-and used to retrieve the color pair as an \fBint\fP value,
-in addition
-retrieving it via the standard pointer to \fBshort\fP parameter.
-.PP
-The remaining functions which have \fIopts\fP,
-but do not manipulate color,
-e.g., \fBwattr_on\fP and \fBwattr_off\fP
-are not used by this implementation except to check that they are \fBNULL\fP.
-.\" ---------------------------------------------------------------------------
-.SH PORTABILITY
-These functions are supported in the XSI Curses standard, Issue 4.
-The standard defined the dedicated type for highlights,
-\fBattr_t\fR, which was not defined in SVr4 curses.
-The functions taking \fBattr_t\fR arguments were not supported under SVr4.
-.PP
-Very old versions of this library did not force an update of the screen
-when changing the attributes.
-Use \fBtouchwin\fR to force the screen to match the updated attributes.
-.PP
-The XSI Curses standard states that whether the traditional functions
-\fBattron\fR/\fBattroff\fR/\fBattrset\fR can manipulate attributes other than
-\fBA_BLINK\fR, \fBA_BOLD\fR, \fBA_DIM\fR, \fBA_REVERSE\fR, \fBA_STANDOUT\fR, or
-\fBA_UNDERLINE\fR is \*(``unspecified\*(''.
-Under this implementation as well as
-SVr4 curses, these functions correctly manipulate all other highlights
-(specifically, \fBA_ALTCHARSET\fR, \fBA_PROTECT\fR, and \fBA_INVIS\fR).
-.PP
-XSI Curses added these entry points:
-.sp
-.RS
-\fBattr_get\fR, \fBattr_on\fR,
-\fBattr_off\fR, \fBattr_set\fR, \fBwattr_on\fR, \fBwattr_off\fR,
-\fBwattr_get\fR, \fBwattr_set\fR
-.RE
-.PP
-The new functions are intended to work with
-a new series of highlight macros prefixed with \fBWA_\fR.
-The older macros have direct counterparts in the newer set of names:
-.PP
-.RS
-.ne 9
-.TS
-l l
-_ _ _
-l l .
-\fIName\fR \fIDescription\fR
-\fBWA_NORMAL\fR Normal display (no highlight)
-\fBWA_STANDOUT\fR Best highlighting mode of the terminal.
-\fBWA_UNDERLINE\fR Underlining
-\fBWA_REVERSE\fR Reverse video
-\fBWA_BLINK\fR Blinking
-\fBWA_DIM\fR Half bright
-\fBWA_BOLD\fR Extra bright or bold
-\fBWA_ALTCHARSET\fR Alternate character set
-.TE
-.RE
-.PP
-XSI curses does not assign values to these symbols,
-nor does it state whether or not they are related to the
-similarly-named A_NORMAL, etc.:
-.bP
-The XSI curses standard specifies that each pair of corresponding \fBA_\fR
-and \fBWA_\fR-using functions operates on the same current-highlight
-information.
-.bP
-However, in some implementations, those symbols have unrelated values.
-.IP
-For example, the Solaris \fIxpg4\fP (X/Open) curses declares
-\fBattr_t\fP to be an unsigned short integer (16-bits),
-while \fBchtype\fP is a unsigned integer (32-bits).
-The \fBWA_\fP symbols in this case are different from the \fBA_\fP symbols
-because they are used for a smaller datatype which does not
-represent \fBA_CHARTEXT\fP or \fBA_COLOR\fP.
-.IP
-In this implementation (as in many others), the values happen to be
-the same because it simplifies copying information between
-\fBchtype\fP and \fBcchar_t\fP variables.
-.PP
-The XSI standard extended conformance level adds new highlights
-\fBA_HORIZONTAL\fR, \fBA_LEFT\fR, \fBA_LOW\fR, \fBA_RIGHT\fR, \fBA_TOP\fR,
-\fBA_VERTICAL\fR (and corresponding \fBWA_\fR macros for each).
-As of August 2013,
-no known terminal provides these highlights
-(i.e., via the \fBsgr1\fP capability).
-.\" ---------------------------------------------------------------------------
-.SH RETURN VALUE
-All routines return the integer \fBOK\fR on success, or \fBERR\fP on failure.
-.PP
-X/Open does not define any error conditions.
-.PP
-This implementation
-.bP
-returns an error if the window pointer is null.
-.bP
-returns an error if the color pair parameter
-for \fBwcolor_set\fP is outside the range 0..COLOR_PAIRS\-1.
-.bP
-does not return an error if either of the parameters of \fBwattr_get\fP
-used for retrieving attribute or color-pair values is \fBNULL\fP.
-.PP
-Functions with a \*(``mv\*('' prefix first perform a cursor movement using
-\fBwmove\fP, and return an error if the position is outside the window,
-or if the window pointer is null.
-.\" ---------------------------------------------------------------------------
.SH SEE ALSO
-.na
-\fBcurses\fR(3X),
-\fBcurs_addch\fR(3X),
-\fBcurs_addstr\fR(3X),
-\fBcurs_bkgd\fR(3X),
-\fBcurs_printw\fR(3X),
-\fBcurs_variables\fR(3X)
+\fB\%curses\fP(3X),
+\fB\%curs_addch\fP(3X),
+\fB\%curs_addstr\fP(3X),
+\fB\%curs_bkgd\fP(3X),
+\fB\%curs_printw\fP(3X),
+\fB\%curs_variables\fP(3X)
diff --git a/man/curs_beep.3x b/man/curs_beep.3x
index bea861bc9ce0..9806f42b3ad8 100644
--- a/man/curs_beep.3x
+++ b/man/curs_beep.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2005,2010 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,35 +27,37 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_beep.3x,v 1.14 2020/02/02 23:34:34 tom Exp $
-.TH curs_beep 3X ""
+.\" $Id: curs_beep.3x,v 1.29 2024/04/20 21:20:07 tom Exp $
+.TH curs_beep 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
-\fBbeep\fR, \fBflash\fR \- \fBcurses\fR bell and screen flash routines
+\fB\%beep\fP,
+\fB\%flash\fP \-
+ring the (visual) bell of the terminal with \fIcurses\fR
.SH SYNOPSIS
-\fB#include <curses.h>\fR
+.nf
+\fB#include <curses.h>
.PP
-\fBint beep(void);\fR
-.br
-\fBint flash(void);\fR
-.br
+\fBint beep(void);
+\fBint flash(void);
+.fi
.SH DESCRIPTION
-The \fBbeep\fR and \fBflash\fR routines are used to alert the terminal user.
-The routine \fBbeep\fR sounds an audible alarm on the terminal, if possible;
+The \fBbeep\fP and \fBflash\fP routines are used to alert the terminal user.
+The routine \fBbeep\fP sounds an audible alarm on the terminal, if possible;
otherwise it flashes the screen (visible bell).
-The routine \fBflash\fR
+The routine \fBflash\fP
flashes the screen, and if that is not possible, sounds the alert.
If neither
alert is possible, nothing happens.
Nearly all terminals have an audible alert
(bell or beep), but only some can flash the screen.
.SH RETURN VALUE
-These routines return \fBOK\fR if they succeed in beeping or flashing,
-\fBERR\fR otherwise.
+These routines return \fBOK\fP if they succeed in beeping or flashing,
+\fBERR\fP otherwise.
.SH EXTENSIONS
-SVr4's beep and flash routines always returned \fBOK\fR, so it was not
+SVr4's beep and flash routines always returned \fBOK\fP, so it was not
possible to tell when the beep or flash failed.
.SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4.
-Like SVr4, it specifies that they always return \fBOK\fR.
+These functions are described in X/Open Curses, Issue 4.
+Like SVr4, it specifies that they always return \fBOK\fP.
.SH SEE ALSO
-\fBcurses\fR(3X)
+\fB\%curses\fP(3X)
diff --git a/man/curs_bkgd.3x b/man/curs_bkgd.3x
index 051d5fda0683..25ba1f9f72c8 100644
--- a/man/curs_bkgd.3x
+++ b/man/curs_bkgd.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2015,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,135 +27,200 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_bkgd.3x,v 1.31 2020/10/17 23:12:52 tom Exp $
+.\" $Id: curs_bkgd.3x,v 1.61 2024/04/20 18:54:36 tom Exp $
+.TH curs_bkgd 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
-.TH curs_bkgd 3X ""
.SH NAME
-\fBbkgdset\fR, \fBwbkgdset\fR,
-\fBbkgd\fR, \fBwbkgd\fR,
-\fBgetbkgd\fR \- \fBcurses\fR window background manipulation routines
+\fB\%bkgdset\fP,
+\fB\%wbkgdset\fP,
+\fB\%bkgd\fP,
+\fB\%wbkgd\fP,
+\fB\%getbkgd\fP \-
+manipulate background of a \fIcurses\fR window of characters
.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.PP
-\fBvoid bkgdset(chtype \fP\fIch\fP\fB);\fR
-.br
-\fBvoid wbkgdset(WINDOW *\fP\fIwin, chtype \fP\fIch\fP\fB);\fR
-.sp
-\fBint bkgd(chtype \fP\fIch\fP\fB);\fR
-.br
-\fBint wbkgd(WINDOW *\fP\fIwin\fP\fB, chtype \fP\fIch\fP\fB);\fR
-.sp
-\fBchtype getbkgd(WINDOW *\fP\fIwin\fP\fB);\fR
-.br
-.SH DESCRIPTION
-.SS bkgdset
-The \fBbkgdset\fR and \fBwbkgdset\fR routines manipulate the
-background of the named window.
-The window background is a \fBchtype\fR consisting of
-any combination of attributes (i.e., rendition) and a character.
-The attribute part of the background is combined (OR'ed) with all non-blank
-characters that are written into the window with \fBwaddch\fR.
-Both the character and attribute parts of the background are combined with
-the blank characters.
-The background becomes a property of the
-character and moves with the character through any scrolling and
-insert/delete line/character operations.
-.PP
-To the extent possible on a particular terminal,
-the attribute part of the background is displayed
-as the graphic rendition of the character put on the screen.
-.SS bkgd
-.PP
-The \fBbkgd\fR and \fBwbkgd\fR functions
-set the background property of the current or specified window
-and then apply this setting to every character position in that window.
-According to X/Open Curses, it should do this:
+.nf
+\fB#include <curses.h>
+.PP
+\fBint bkgd(chtype \fIch\fP);
+\fBint wbkgd(WINDOW *\fIwin\fP, chtype \fIch\fP);
+.PP
+\fBvoid bkgdset(chtype \fIch\fP);
+\fBvoid wbkgdset(WINDOW *\fIwin\fP, chtype \fIch\fP);
.PP
+\fBchtype getbkgd(WINDOW *\fIwin\fP);
+.fi
+.SH DESCRIPTION
+The
+.I background
+of a
+.I curses
+window
+(in the library's non-\*(``wide\*('' configuration)
+is a
+.I \%chtype
+combining a set of attributes
+(see \fB\%curs_attr\fP(3X))
+with a character called the
+.I "blank character."
+.PP
+The blank character is a spacing character that populates a window's
+character cells when their contents are erased without replacement.
+The background's attributes are combined with all non-blank characters
+written to the window,
+as with the \fB\%waddch\fP(3X) and \fB\%winsch\fP(3X) families of
+functions.
+.PP
+The blank character and attributes of the background combine with
+characters written to the window as described below.
+The background becomes a property of the character and moves with it
+through any scrolling and insert/delete line/character operations.
+.PP
+To the extent possible on a given terminal,
+the attribute part of the background is displayed as the graphic
+rendition of the character put on the screen.
+.SS "bkgd, wbkgd"
+\fB\%bkgd\fP and \fB\%wbkgd\fP set the background property of
+\fB\%stdscr\fP or the specified window and then apply this setting to
+every character cell in that window.
.bP
-The rendition of every character on the screen is changed to
-the new background rendition.
+The rendition of every character in the window changes to the new
+background rendition.
.bP
-Wherever the former background character
-appears, it is changed to the new background character.
-.PP
-Neither X/Open Curses nor the SVr4 manual pages give details about
-the way the rendition of characters on the screen is updated when
-\fBbkgd\fP or \fBwbkgd\fP is used to change the background character.
-.PP
-This implementation, like SVr4 curses, does not store the background
-and window attribute contributions to each cell separately.
-It updates the rendition by comparing the character, non-color attributes and
-colors contained in the background.
-For each cell in the window, whether or not it is blank:
+Wherever the former background character appears,
+it changes to the new background character.
+.PP
+.I \%ncurses
+updates the rendition of each character cell by comparing the character,
+non-color attributes,
+and colors.
+The library applies to following procedure to each cell in the window,
+whether or not it is blank.
.bP
-The library first compares the \fIcharacter\fP,
-and if it matches the current character part of the background,
-it replaces that with the new background character.
+.I \%ncurses
+first compares the cell's character to the previously specified blank
+character;
+if they match,
+.I \%ncurses
+writes the new blank character to the cell.
.bP
-The library then checks if the cell uses color,
-i.e., its color pair value is nonzero.
-If not, it simply replaces the attributes and color pair in the
-cell with those from the new background character.
+.I \%ncurses
+then checks if the cell uses color,
+that is,
+its color pair value is nonzero.
+If not,
+it simply replaces the attributes and color pair in the cell with those
+from the new background character.
.bP
If the cell uses color,
-and that matches the color in the current background,
-the library removes attributes
-which may have come from the current background
-and adds attributes from the new background.
-It finishes by setting the cell
-to use the color from the new background.
+and its background color matches that of the current window background,
+.I \%ncurses
+removes attributes that may have come from the current background and
+adds those from the new background.
+It finishes by setting the cell's background to use the new window
+background color.
.bP
If the cell uses color,
-and that does not match the color in the current background,
-the library updates only the non-color attributes,
-first removing those which may have come from the current background,
+and its background color does not match that of the current window
+background,
+.I \%ncurses
+updates only the non-color attributes,
+first removing those that may have come from the current background,
and then adding attributes from the new background.
.PP
-If the background's character value is zero, a space is assumed.
+.I \%ncurses
+treats a background character value of zero (0) as a blank character.
.PP
If the terminal does not support color,
-or if color has not been started with \fBstart_color\fP,
-the new background character's color attribute will be ignored.
+or if color has not been initialized with \fB\%start_color\fP(3X),
+.I \%ncurses
+ignores the new background character's color attribute.
+.SS "bkgdset, wbkgdset"
+\fB\%bkgdset\fP and \fB\%wbkgdset\fP manipulate the background of
+the applicable window,
+without updating the character cells as \fB\%bkgd\fP and
+\fB\%wbkgd\fP do;
+only future writes reflect the updated background.
.SS getbkgd
-.PP
-The \fBgetbkgd\fR function returns the given window's current background
-character/attribute pair.
+\fB\%getbkgd\fP obtains the given window's background character and
+attribute combination.
.SH RETURN VALUE
+Functions returning an \fIint\fP return \fBOK\fP on success.
+\fB\%bkgd\fP returns \fBERR\fP if the library has not been initialized.
+\fB\%wbkgd\fP and \fB\%getbkgd\fP return \fBERR\fP if a \fI\%WINDOW\fP
+pointer argument is null.
.PP
-These functions are described in the XSI Curses standard, Issue 4.
-It specifies that \fBbkgd\fR and \fBwbkgd\fR return \fBERR\fR on failure,
-but gives no failure conditions.
+\fB\%bkgdset\fP and \fBwbkgdset\fP do not return a value.
.PP
-The routines \fBbkgd\fR and \fBwbkgd\fR return the integer \fBOK\fR,
-unless the library has not been initialized.
-.PP
-In contrast,
-the SVr4.0 manual says \fBbkgd\fR and \fBwbkgd\fR may return \fBOK\fP
-"or a non-negative integer if \fBimmedok\fR is set",
-which refers to the return value from \fBwrefresh\fP
-(used to implement the immediate repainting).
-The SVr4 curses \fBwrefresh\fP returns the number of characters
-written to the screen during the refresh.
-This implementation does not do that.
+\fB\%getbkgd\fP returns a window's background character and attribute
+combination.
.SH NOTES
+Unusually,
+there is no \fB\%wgetbkgd\fP function;
+\fB\%getbkgd\fP behaves as one would expect \fB\%wgetbkgd\fP to,
+accepting a \fI\%WINDOW\fP pointer argument.
.PP
-Note that \fBbkgdset\fR and \fBbkgd\fR may be macros.
+\fB\%bkgd\fP and
+\fB\%bkgdset\fP
+may be implemented as macros.
.PP
X/Open Curses mentions that the character part of the background must
be a single-byte value.
-This implementation, like SVr4, checks to ensure that,
+\fI\%ncurses\fP,
+like SVr4 \fIcurses\fP,
+checks to ensure that,
and will reuse the old background character if the check fails.
.SH PORTABILITY
-.PP
-These functions are described in the XSI Curses standard, Issue 4
-(X/Open Curses).
+X/Open Curses,
+Issue 4 describes these functions.
+It specifies that
+\fB\%bkgd\fP,
+\fB\%wbkgd\fP,
+and
+\fB\%getbkgd\fP
+return \fBERR\fP on failure
+(in the case of the last,
+this value is cast to
+.IR \%chtype ),
+but describes no failure conditions.
+.PP
+The SVr4.0 manual says that \fB\%bkgd\fP and \fB\%wbkgd\fP may return
+\fBOK\fP
+\*(``or a non-negative integer if \fB\%immedok\fP is set\*('',
+which refers to the return value from \fB\%wrefresh\fP(3X),
+used to implement the immediate repainting.
+SVr4 \fIcurses\fP's \fB\%wrefresh\fP returns the number of characters
+written to the screen during the refresh.
+\fI\%ncurses\fP does not do that.
+.PP
+Neither X/Open Curses nor the SVr4 manual pages detail how the rendition
+of characters on the screen updates when \fB\%bkgd\fP or \fB\%wbkgd\fP
+changes the background character.
+.IR \%ncurses ,
+like SVr4
+.IR curses ,
+does not
+(in its non-\*(``wide\*('' configuration)
+store the background and window attribute contributions to each
+character cell separately.
.SH SEE ALSO
-.na
+\fB\%curs_bkgrnd\fP(3X) describes the corresponding functions in the
+\*(``wide\*('' configuration of
+.IR \%ncurses .
.PP
-\fBcurses\fR(3X),
-\fBcurs_addch\fR(3X),
-\fBcurs_attr\fR(3X),
-\fBcurs_outopts\fR(3X)
+\fB\%curses\fP(3X),
+\fB\%curs_addch\fP(3X),
+\fB\%curs_attr\fP(3X)
diff --git a/man/curs_bkgrnd.3x b/man/curs_bkgrnd.3x
index 84a2984bc0ec..2551924c11a3 100644
--- a/man/curs_bkgrnd.3x
+++ b/man/curs_bkgrnd.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 2002-2015,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,95 +27,190 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_bkgrnd.3x,v 1.12 2020/10/17 23:13:15 tom Exp $
+.\" $Id: curs_bkgrnd.3x,v 1.42 2024/04/20 18:54:36 tom Exp $
+.TH curs_bkgrnd 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
-.TH curs_bkgrnd 3X ""
.SH NAME
-\fBbkgrnd\fR,
-\fBwbkgrnd\fR,
-\fBbkgrndset\fR,
-\fBwbkgrndset\fR,
-\fBgetbkgrnd\fR,
-\fBwgetbkgrnd\fR \- \fBcurses\fR window complex background manipulation routines
+\fB\%bkgrnd\fP,
+\fB\%wbkgrnd\fP,
+\fB\%bkgrndset\fP,
+\fB\%wbkgrndset\fP,
+\fB\%getbkgrnd\fP,
+\fB\%wgetbkgrnd\fP \-
+manipulate background of a \fIcurses\fP window of wide characters
.SH SYNOPSIS
+.nf
+\fB#include <curses.h>
.PP
-.B #include <curses.h>
-.sp
-\fBint bkgrnd(\fR\fB const cchar_t *\fR\fIwch\fR\fB);\fR
-.br
-\fBint wbkgrnd(\fR\fB WINDOW *\fR\fIwin\fR\fB, const cchar_t *\fR\fIwch\fR\fB);\fR
-.sp
-\fBvoid bkgrndset(const cchar_t *\fR\fIwch\fR \fB);\fR
-.br
-\fBvoid wbkgrndset(WINDOW *\fR\fIwin\fR\fB, const cchar_t *\fR\fIwch\fR\fB);\fR
-.sp
-\fBint getbkgrnd(cchar_t *\fR\fIwch\fR\fB);\fR
-.br
-\fBint wgetbkgrnd(WINDOW *\fR\fIwin\fR\fB, cchar_t *\fR\fIwch\fR\fB);\fR
-.br
+\fBint bkgrnd(const cchar_t *\fIwch\fP);
+\fBint wbkgrnd(WINDOW *\fIwin\fP, const cchar_t *\fIwch\fP);
+.PP
+\fBvoid bkgrndset(const cchar_t *\fIwch\fP);
+\fBvoid wbkgrndset(WINDOW *\fIwin\fP, const cchar_t *\fIwch\fP);
+.PP
+\fBint getbkgrnd(cchar_t *\fIwch\fP);
+\fBint wgetbkgrnd(WINDOW *\fIwin\fP, cchar_t *\fIwch\fP);
+.fi
.SH DESCRIPTION
-.SS bkgrndset
+The
+.I background
+of a
+.I curses
+window
+(in the library's \*(``wide\*('' configuration)
+is a
+.I \%cchar_t
+combining a set of attributes
+(see \fB\%curs_attr\fP(3X))
+with a complex character called the
+.I "blank character."
.PP
-The \fBbkgrndset\fR and \fBwbkgrndset\fR routines manipulate the
-background of the named window.
-The window background is a \fBcchar_t\fR consisting of
-any combination of attributes (i.e., rendition) and a complex character.
-The attribute part of the background is combined (OR'ed) with all non-blank
-characters that are written into the window with \fBwaddch\fR.
-Both
-the character and attribute parts of the background are combined with
-the blank characters.
-The background becomes a property of the
-character and moves with the character through any scrolling and
-insert/delete line/character operations.
+The blank character is a spacing character that populates a window's
+character cells when their contents are erased without replacement.
+The background's attributes are combined with all non-blank characters
+written to the window,
+as with the \fB\%wadd_wch\fP(3X) and \fB\%wins_wch\fP(3X) families of
+functions.
.PP
-To the extent possible on a
-particular terminal, the attribute part of the background is displayed
-as the graphic rendition of the character put on the screen.
-.SS bkgrnd
+The blank character and attributes of the background combine with
+characters written to the window as described below.
+The background becomes a property of the character and moves with it
+through any scrolling and insert/delete line/character operations.
.PP
-The \fBbkgrnd\fR and \fBwbkgrnd\fR functions
-set the background property of the current or specified window
-and then apply this setting to every character position in that window:
+To the extent possible on a given terminal,
+the attribute part of the background is displayed as the graphic
+rendition of the character put on the screen.
+.SS "bkgrnd, wbkgrnd"
+\fB\%bkgrnd\fP and \fB\%wbkgrnd\fP set the background property of
+\fB\%stdscr\fP or the specified window and then apply this setting to
+every character cell in that window.
.bP
-The rendition of every character on the screen is changed to
-the new background rendition.
+The rendition of every character in the window changes to the new
+background rendition.
.bP
-Wherever the former background character
-appears, it is changed to the new background character.
-.SS getbkgrnd
+Wherever the former background character appears,
+it changes to the new background character.
.PP
-The \fBgetbkgrnd\fR function returns the given window's current background
-character/attribute pair via the \fBwch\fR pointer.
-If the given window pointer is null,
-the character is not updated (but no error returned).
-.SH NOTES
-Note that
-\fBbkgrnd\fR,
-\fBbkgrndset\fR, and
-\fBgetbkgrnd\fR
-may be macros.
+.I \%ncurses
+updates the rendition of each character cell by comparing the character,
+non-color attributes,
+and colors.
+The library applies to following procedure to each cell in the window,
+whether or not it is blank.
+.bP
+.I \%ncurses
+first compares the cell's character to the previously specified blank
+character;
+if they match,
+.I \%ncurses
+writes the new blank character to the cell.
+.bP
+.I \%ncurses
+then checks if the cell uses color,
+that is,
+its color pair value is nonzero.
+If not,
+it simply replaces the attributes and color pair in the cell with those
+from the new background character.
+.bP
+If the cell uses color,
+and its background color matches that of the current window background,
+.I \%ncurses
+removes attributes that may have come from the current background and
+adds those from the new background.
+It finishes by setting the cell's background to use the new window
+background color.
+.bP
+If the cell uses color,
+and its background color does not match that of the current window
+background,
+.I \%ncurses
+updates only the non-color attributes,
+first removing those that may have come from the current background,
+and then adding attributes from the new background.
.PP
-X/Open Curses does not provide details on how the rendition is changed.
-This implementation follows the approach used in SVr4 curses,
-which is explained in the manual page for \fBwbkgd\fP.
-.SH RETURN VALUE
+.I \%ncurses
+treats a background character value of zero (0) as a blank character.
.PP
-The \fBbkgrndset\fR and \fBwbkgrndset\fR routines do not return a value.
+If the terminal does not support color,
+or if color has not been initialized with \fB\%start_color\fP(3X),
+.I \%ncurses
+ignores the new background character's color attribute.
+.SS "bkgrndset, wbkgrndset"
+\fB\%bkgrndset\fP and \fB\%wbkgrndset\fP manipulate the background of
+the applicable window,
+without updating the character cells as \fB\%bkgrnd\fP and
+\fB\%wbkgrnd\fP do;
+only future writes reflect the updated background.
+.SS "getbkgrnd, wgetbkgrnd"
+The \fB\%getbkgrnd\fP and \fB\%wgetbkgrnd\fP functions obtain the
+background character and attribute pair of \fB\%stdscr\fP or the
+specified window and store it via the
+.I wch
+pointer.
+.SH RETURN VALUE
+\fBbkgrndset\fP and \fBwbkgrndset\fP do not return a value.
.PP
-Upon successful completion, the other functions return \fBOK\fR.
-Otherwise, they return \fBERR\fR:
+The other functions return
+.B ERR
+upon failure and
+.B OK
+upon success.
+In
+.IR \%ncurses ,
+failure occurs if
.bP
-A null window pointer is treated as an error.
+a
+.I \%WINDOW
+pointer
+.I win
+is null, or
.bP
-A null character pointer is treated as an error.
+a
+.I \%cchar_t
+pointer
+.I wch
+is null.
+.SH NOTES
+\fB\%bkgrnd\fP,
+\fB\%bkgrndset\fP, and
+\fB\%getbkgrnd\fP
+may be implemented as macros.
+.PP
+Unlike their counterparts in the non-\*(``wide\*('' configuration of
+.IR \%ncurses ,
+\fB\%getbkgrnd\fP and \fB\%wgetbkgrnd\fP supply the background character
+and attribute in a modifiable
+.I \%cchar_t
+parameter,
+not as the return value.
.SH PORTABILITY
+X/Open Curses,
+Issue 4 describes these functions.
+It specifies no error conditions for them.
.PP
-These functions are described in the XSI Curses standard, Issue 4
-(X/Open Curses).
+X/Open Curses does not provide details of how the rendition is updated.
+This implementation follows the approach used in SVr4
+.IR curses .
.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBcurs_bkgd\fR(3X)
+\fB\%curs_bkgd\fP(3X) describes the corresponding functions in the
+non-\*(``wide\*('' configuration of
+.IR \%ncurses .
+.PP
+\fB\%curses\fP(3X),
+\fB\%curs_add_wch\fP(3X),
+\fB\%curs_attr\fP(3X)
diff --git a/man/curs_border.3x b/man/curs_border.3x
index 7b41da530445..2a5e72c141e2 100644
--- a/man/curs_border.3x
+++ b/man/curs_border.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2007,2010 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,137 +27,136 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_border.3x,v 1.27 2020/10/18 00:33:06 tom Exp $
-.TH curs_border 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
-.na
-.hy 0
+.\" $Id: curs_border.3x,v 1.49 2024/04/20 21:20:07 tom Exp $
+.TH curs_border 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
.SH NAME
-\fBborder\fR,
-\fBwborder\fR,
-\fBbox\fR,
-\fBhline\fR,
-\fBwhline\fR,
-\fBvline\fR,
-\fBwvline\fR,
-\fBmvhline\fR,
-\fBmvwhline\fR,
-\fBmvvline\fR,
-\fBmvwvline\fR \- create \fBcurses\fR borders, horizontal and vertical lines
-.ad
-.hy
+\fB\%border\fP,
+\fB\%wborder\fP,
+\fB\%box\fP,
+\fB\%hline\fP,
+\fB\%whline\fP,
+\fB\%vline\fP,
+\fB\%wvline\fP,
+\fB\%mvhline\fP,
+\fB\%mvwhline\fP,
+\fB\%mvvline\fP,
+\fB\%mvwvline\fP \-
+draw borders and lines in a \fIcurses\fR window of characters
.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\fBint border(chtype \fP\fIls\fP\fB, chtype \fP\fIrs\fP\fB, chtype \fP\fIts\fP\fB, chtype \fP\fIbs\fP\fB,\fR
- \fBchtype \fP\fItl\fP\fB, chtype \fP\fItr\fP\fB, chtype \fP\fIbl\fP\fB, chtype \fP\fIbr\fP\fB);\fR
-.br
-\fBint wborder(WINDOW *\fP\fIwin\fP\fB, chtype \fP\fIls\fP\fB, chtype \fP\fIrs\fP\fB,\fR
- \fBchtype \fP\fIts\fP\fB, chtype \fP\fIbs\fP\fB, chtype \fP\fItl\fP\fB, chtype \fP\fItr\fP\fB,\fR
- \fBchtype \fP\fIbl\fP\fB, chtype \fP\fIbr\fP\fB);\fR
-.sp
-\fBint box(WINDOW *\fP\fIwin\fP\fB, chtype \fP\fIverch\fP\fB, chtype \fP\fIhorch\fP\fB);\fR
-.sp
-\fBint hline(chtype \fP\fIch\fP\fB, int \fP\fIn\fP\fB);\fR
-.br
-\fBint whline(WINDOW *\fP\fIwin\fP\fB, chtype \fP\fIch\fP\fB, int \fP\fIn\fP\fB);\fR
-.br
-\fBint vline(chtype \fP\fIch\fP\fB, int \fP\fIn\fP\fB);\fR
-.br
-\fBint wvline(WINDOW *\fP\fIwin\fP\fB, chtype \fP\fIch\fP\fB, int \fP\fIn\fP\fB);\fR
-.sp
-\fBint mvhline(int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, chtype \fP\fIch\fP\fB, int \fP\fIn\fP\fB);\fR
-.br
-\fBint mvwhline(WINDOW *\fP\fIwin\fP\fB, int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, chtype \fP\fIch\fP\fB, int \fP\fIn\fP\fB);\fR
-.br
-\fBint mvvline(int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, chtype \fP\fIch\fP\fB, int \fP\fIn\fP\fB);\fR
-.br
-\fBint mvwvline(WINDOW *\fP\fIwin\fP\fB, int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, chtype \fP\fIch\fP\fB, int \fP\fIn\fP\fB);\fR
-.br
+.nf
+\fB#include <curses.h>
+.PP
+\fBint border(chtype \fIls\fP, chtype \fIrs\fP, chtype \fIts\fP, chtype \fIbs\fP,
+ \fBchtype \fItl\fB, chtype \fItr\fB, chtype \fIbl\fB, chtype \fIbr\fB);\fR
+\fBint wborder(WINDOW *\fIwin\fB, chtype \fIls\fB, chtype \fIrs\fB,\fR
+ \fBchtype \fIts\fB, chtype \fIbs\fB, chtype \fItl\fB, chtype \fItr\fB,\fR
+ \fBchtype \fIbl\fB, chtype \fIbr\fB);\fR
+.PP
+\fBint box(WINDOW *\fIwin\fB, chtype \fIverch\fB, chtype \fIhorch\fB);\fR
+.PP
+\fBint hline(chtype \fIch\fB, int \fIn\fB);\fR
+\fBint whline(WINDOW *\fIwin\fB, chtype \fIch\fB, int \fIn\fB);\fR
+\fBint vline(chtype \fIch\fB, int \fIn\fB);\fR
+\fBint wvline(WINDOW *\fIwin\fB, chtype \fIch\fB, int \fIn\fB);\fR
+.PP
+\fBint mvhline(int \fIy\fB, int \fIx\fB, chtype \fIch\fB, int \fIn\fB);\fR
+\fBint mvwhline(WINDOW *\fIwin\fB, int \fIy\fB, int \fIx\fB, chtype \fIch\fB, int \fIn\fB);\fR
+\fBint mvvline(int \fIy\fB, int \fIx\fB, chtype \fIch\fB, int \fIn\fB);\fR
+\fBint mvwvline(WINDOW *\fIwin\fB, int \fIy\fB, int \fIx\fB, chtype \fIch\fB, int \fIn\fB);\fR
+.fi
.SH DESCRIPTION
-The \fBborder\fR, \fBwborder\fR and \fBbox\fR routines
+The \fBborder\fP, \fBwborder\fP and \fBbox\fP routines
draw a box around the edges of a window.
Other than the window, each argument is a character with attributes:
.sp
.RS
-\fIls\fR \- left side,
+\fIls\fP \- left side,
.br
-\fIrs\fR \- right side,
+\fIrs\fP \- right side,
.br
-\fIts\fR \- top side,
+\fIts\fP \- top side,
.br
-\fIbs\fR \- bottom side,
+\fIbs\fP \- bottom side,
.br
-\fItl\fR \- top left-hand corner,
+\fItl\fP \- top left-hand corner,
.br
-\fItr\fR \- top right-hand corner,
+\fItr\fP \- top right-hand corner,
.br
-\fIbl\fR \- bottom left-hand corner, and
+\fIbl\fP \- bottom left-hand corner, and
.br
-\fIbr\fR \- bottom right-hand corner.
+\fIbr\fP \- bottom right-hand corner.
.RE
.PP
If any of these arguments is zero, then the corresponding
-default values (defined in \fBcurses.h\fR) are used instead:
+default values (defined in \fBcurses.h\fP) are used instead:
.sp
.RS
-\fBACS_VLINE\fR,
+\fBACS_VLINE\fP,
.br
-\fBACS_VLINE\fR,
+\fBACS_VLINE\fP,
.br
-\fBACS_HLINE\fR,
+\fBACS_HLINE\fP,
.br
-\fBACS_HLINE\fR,
+\fBACS_HLINE\fP,
.br
-\fBACS_ULCORNER\fR,
+\fBACS_ULCORNER\fP,
.br
-\fBACS_URCORNER\fR,
+\fBACS_URCORNER\fP,
.br
-\fBACS_LLCORNER\fR,
+\fBACS_LLCORNER\fP,
.br
-\fBACS_LRCORNER\fR.
+\fBACS_LRCORNER\fP.
.RE
.PP
-\fBbox(\fR\fIwin\fR\fB, \fR\fIverch\fR\fB, \fR\fIhorch\fR\fB)\fR is a shorthand
-for the following call: \fBwborder(\fR\fIwin\fR\fB,\fR \fIverch\fR\fB,\fR
-\fIverch\fR\fB,\fR \fIhorch\fR\fB,\fR \fIhorch\fR\fB, 0, 0, 0, 0)\fR.
+\fBbox(\fIwin\fB, \fIverch\fB, \fIhorch\fB)\fR is a shorthand
+for the following call: \fBwborder(\fIwin\fB,\fR \fIverch\fB,\fR
+\fIverch\fB,\fR \fIhorch\fB,\fR \fIhorch\fB, 0, 0, 0, 0)\fR.
.PP
-The \fBhline\fR and \fBwhline\fR functions draw a horizontal (left to right)
-line using \fIch\fR starting at the current cursor position in the window.
+The \fBhline\fP and \fBwhline\fP functions draw a horizontal (left to right)
+line using \fIch\fP starting at the current cursor position in the window.
The
current cursor position is not changed.
-The line is at most \fIn\fR characters
+The line is at most \fIn\fP characters
long, or as many as fit into the window.
.PP
-The \fBvline\fR and \fBwvline\fR functions draw a vertical (top to bottom) line
-using \fIch\fR starting at the current cursor position in the window.
+The \fBvline\fP and \fBwvline\fP functions draw a vertical (top to bottom) line
+using \fIch\fP starting at the current cursor position in the window.
The
current cursor position is not changed.
-The line is at most \fIn\fR characters
+The line is at most \fIn\fP characters
long, or as many as fit into the window.
.SH RETURN VALUE
-All routines return the integer \fBOK\fR.
-The SVr4.0 manual says "or a
-non-negative integer if \fBimmedok\fR is set", but this appears to be an error.
+All routines return the integer \fBOK\fP.
+The SVr4.0 manual says
+\*(``or a non-negative integer if \fB\%immedok\fP is set\*('',
+but this appears to be an error.
.PP
-X/Open does not define any error conditions.
+X/Open Curses does not specify any error conditions.
This implementation returns an error
if the window pointer is null.
.PP
-Functions with a \*(``mv\*('' prefix first perform a cursor movement using
-\fBwmove\fP, and return an error if the position is outside the window,
-or if the window pointer is null.
+Functions prefixed with \*(``mv\*('' first perform cursor movement and
+fail if the position
+.RI ( y ,
+.IR x )
+is outside the window boundaries.
.SH NOTES
-The borders generated by these functions are \fIinside\fR borders (this
+The borders generated by these functions are \fIinside\fP borders (this
is also true of SVr4 curses, though the fact is not documented).
.PP
-Note that \fBborder\fR and \fBbox\fR may be macros.
+Note that \fBborder\fP and \fBbox\fP may be macros.
.SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4.
-The standard specifies that they return \fBERR\fR on failure,
-but specifies no error conditions.
+These functions are described in X/Open Curses, Issue 4.
.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_outopts\fR(3X).
+\fB\%curses\fP(3X),
+\fB\%curs_outopts\fP(3X)
diff --git a/man/curs_border_set.3x b/man/curs_border_set.3x
index b156b77dab95..3077da6b49f7 100644
--- a/man/curs_border_set.3x
+++ b/man/curs_border_set.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2019,2020 Thomas E. Dickey *
+.\" Copyright 2019-2023,2024 Thomas E. Dickey *
.\" Copyright 2002-2011,2012 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,185 +27,177 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_border_set.3x,v 1.13 2020/02/02 23:34:34 tom Exp $
-.TH curs_border_set 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
-.na
-.hy 0
+.\" $Id: curs_border_set.3x,v 1.36 2024/04/20 21:20:07 tom Exp $
+.TH curs_border_set 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
.SH NAME
-\fBborder_set\fR,
-\fBwborder_set\fR,
-\fBbox_set\fR,
-\fBhline_set\fR,
-\fBwhline_set\fR,
-\fBmvhline_set\fR,
-\fBmvwhline_set\fR,
-\fBvline_set\fR,
-\fBwvline_set\fR,
-\fBmvvline_set\fR,
-\fBmvwvline_set\fR \- create \fBcurses\fR borders or lines using complex characters and renditions
-.ad
-.hy
+\fB\%border_set\fP,
+\fB\%wborder_set\fP,
+\fB\%box_set\fP,
+\fB\%hline_set\fP,
+\fB\%whline_set\fP,
+\fB\%mvhline_set\fP,
+\fB\%mvwhline_set\fP,
+\fB\%vline_set\fP,
+\fB\%wvline_set\fP,
+\fB\%mvvline_set\fP,
+\fB\%mvwvline_set\fP \-
+draw borders and lines in a \fIcurses\fR window of wide characters
.SH SYNOPSIS
+.nf
+\fB#include <curses.h>
.PP
-\fB#include <curses.h>\fR
-.sp
-\fBint border_set(\fR
- \fBconst cchar_t *\fR\fIls\fR, \fBconst cchar_t *\fR\fIrs\fR,
- \fBconst cchar_t *\fR\fIts\fR, \fBconst cchar_t *\fR\fIbs\fR,
- \fBconst cchar_t *\fR\fItl\fR, \fBconst cchar_t *\fR\fItr\fR,
- \fBconst cchar_t *\fR\fIbl\fR, \fBconst cchar_t *\fR\fIbr\fR
-\fB);\fR
-.br
-\fBint wborder_set(\fR
- \fBWINDOW *win\fR,
- \fBconst cchar_t *\fR\fIls\fR, \fBconst cchar_t *\fR\fIrs\fR,
- \fBconst cchar_t *\fR\fIts\fR, \fBconst cchar_t *\fR\fIbs\fR,
- \fBconst cchar_t *\fR\fItl\fR, \fBconst cchar_t *\fR\fItr\fR,
- \fBconst cchar_t *\fR\fIbl\fR, \fBconst cchar_t *\fR\fIbr\fR\fB);\fR
-.br
-\fBint box_set(\fR
- \fBWINDOW *win\fR,
- \fBconst cchar_t *\fR\fIverch\fR,
- \fBconst cchar_t *\fR\fIhorch\fR\fB);\fR
-.br
-\fBint hline_set(\fR
- \fBconst cchar_t *\fR\fIwch\fR, \fBint \fR\fIn\fR\fB);\fR
-.br
-\fBint whline_set(\fR
- \fBWINDOW *\fR\fIwin\fR,
- \fBconst cchar_t *\fR\fIwch\fR, \fBint \fR\fIn\fR\fB);\fR
-.br
-\fBint mvhline_set(\fR
- \fBint \fR\fIy\fR, \fBint \fR\fIx\fR,
- \fBconst cchar_t *\fR\fIwch\fR, \fBint \fR\fIn\fR\fB);\fR
-.br
-\fBint mvwhline_set(\fR
- \fBWINDOW *\fR\fIwin\fR,
- \fBint \fR\fIy\fR, \fBint \fR\fIx\fR,
- \fBconst cchar_t *\fR\fIwch\fR, \fBint \fR\fIn\fR\fB);\fR
-.br
-\fBint vline_set(\fR
- \fBconst cchar_t *\fR\fIwch\fR, \fBint \fR\fIn\fR\fB);\fR
-.br
-\fBint wvline_set(\fR
- \fBWINDOW *\fR\fIwin\fR,
- \fBconst cchar_t *\fR\fIwch\fR, \fBint \fR\fIn\fR\fB);\fR
-.br
-\fBint mvvline_set(\fR
- \fBint \fR\fIy\fR, \fBint \fR\fIx\fR,
- \fBconst cchar_t *\fR\fIwch\fR, \fBint \fR\fIn\fR\fB);\fR
-.br
-\fBint mvwvline_set(\fR
- \fBWINDOW *\fR\fIwin\fR,
- \fBint \fR\fIy\fR, \fBint \fR\fIx\fR,
- \fBconst cchar_t *\fR\fIwch\fR, \fBint \fR\fIn\fR\fB);\fR
-.br
+\fBint border_set(
+ \fBconst cchar_t *\fIls\fB, const cchar_t *\fIrs\fP,
+ \fBconst cchar_t *\fIts\fB, const cchar_t *\fIbs\fP,
+ \fBconst cchar_t *\fItl\fB, const cchar_t *\fItr\fP,
+ \fBconst cchar_t *\fIbl\fB, const cchar_t *\fIbr\fB);\fR
+.br
+\fBint wborder_set(\fP
+ \fBWINDOW *\fIwin\fP,
+ \fBconst cchar_t *\fIls\fB, const cchar_t *\fIrs\fP,
+ \fBconst cchar_t *\fIts\fB, const cchar_t *\fIbs\fP,
+ \fBconst cchar_t *\fItl\fB, const cchar_t *\fItr\fP,
+ \fBconst cchar_t *\fIbl\fB, const cchar_t *\fIbr\fB);\fR
+\fBint box_set(\fP
+ \fBWINDOW *\fIwin\fP,
+ \fBconst cchar_t *\fIverch\fP,
+ \fBconst cchar_t *\fIhorch\fB);\fR
+\fBint hline_set(\fP
+ \fBconst cchar_t *\fIwch\fB, int \fIn\fB);\fR
+\fBint whline_set(\fP
+ \fBWINDOW *\fIwin\fP,
+ \fBconst cchar_t *\fIwch\fB, int \fIn\fB);\fR
+\fBint mvhline_set(\fP
+ \fBint \fIy\fB, int \fIx\fP,
+ \fBconst cchar_t *\fIwch\fB, int \fIn\fB);\fR
+\fBint mvwhline_set(\fP
+ \fBWINDOW *\fIwin\fP,
+ \fBint \fIy\fB, int \fIx\fP,
+ \fBconst cchar_t *\fIwch\fB, int \fIn\fB);\fR
+\fBint vline_set(\fP
+ \fBconst cchar_t *\fIwch\fB, int \fIn\fB);\fR
+\fBint wvline_set(\fP
+ \fBWINDOW *\fIwin\fP,
+ \fBconst cchar_t *\fIwch\fB, int \fIn\fB);\fR
+\fBint mvvline_set(\fP
+ \fBint \fIy\fB, int \fIx\fP,
+ \fBconst cchar_t *\fIwch\fB, int \fIn\fB);\fR
+\fBint mvwvline_set(\fP
+ \fBWINDOW *\fIwin\fP,
+ \fBint \fIy\fB, int \fIx\fP,
+ \fBconst cchar_t *\fIwch\fB, int \fIn\fB);\fR
+.fi
.SH DESCRIPTION
-.PP
The
-\fBborder_set\fR
+\fBborder_set\fP
and
-\fBwborder_set\fR
+\fBwborder_set\fP
functions draw a border around the edges of the current or specified window.
These functions do not change the cursor position, and do not wrap.
.PP
Other than the window, each argument is a complex character with attributes:
.RS
-\fIls\fR \- left side,
+\fIls\fP \- left side,
.br
-\fIrs\fR \- right side,
+\fIrs\fP \- right side,
.br
-\fIts\fR \- top side,
+\fIts\fP \- top side,
.br
-\fIbs\fR \- bottom side,
+\fIbs\fP \- bottom side,
.br
-\fItl\fR \- top left-hand corner,
+\fItl\fP \- top left-hand corner,
.br
-\fItr\fR \- top right-hand corner,
+\fItr\fP \- top right-hand corner,
.br
-\fIbl\fR \- bottom left-hand corner, and
+\fIbl\fP \- bottom left-hand corner, and
.br
-\fIbr\fR \- bottom right-hand corner.
+\fIbr\fP \- bottom right-hand corner.
.RE
.PP
If any of these arguments is zero, then the corresponding
-default values (defined in \fBcurses.h\fR) are used instead:
+default values (defined in \fBcurses.h\fP) are used instead:
.RS
-\fBWACS_VLINE\fR,
+\fBWACS_VLINE\fP,
.br
-\fBWACS_VLINE\fR,
+\fBWACS_VLINE\fP,
.br
-\fBWACS_HLINE\fR,
+\fBWACS_HLINE\fP,
.br
-\fBWACS_HLINE\fR,
+\fBWACS_HLINE\fP,
.br
-\fBWACS_ULCORNER\fR,
+\fBWACS_ULCORNER\fP,
.br
-\fBWACS_URCORNER\fR,
+\fBWACS_URCORNER\fP,
.br
-\fBWACS_LLCORNER\fR, and
+\fBWACS_LLCORNER\fP, and
.br
-\fBWACS_LRCORNER\fR.
+\fBWACS_LRCORNER\fP.
.RE
.PP
-\fBbox_set(\fR\fIwin\fR, \fIverch\fR\fB, \fR\fIhorch\fR\fB);\fR
+\fBbox_set(\fIwin\fR, \fIverch\fB, \fIhorch\fB);\fR
is a shorthand for the following call:
.PP
-\fBwborder_set(\fR\fIwin\fR\fB, \fR\fIverch\fR\fB, \fR\fIverch\fR\fB,\fR
- \fIhorch\fR\fB, \fR\fIhorch\fR\fB, NULL, NULL, NULL, NULL);\fR
+\fBwborder_set(\fIwin\fB, \fIverch\fB, \fIverch\fB,\fR
+ \fIhorch\fB, \fIhorch\fB, NULL, NULL, NULL, NULL);\fR
.PP
The
-\fB*line_set\fR
+\fB*line_set\fP
functions use
-\fIwch\fR
+\fIwch\fP
to draw a line starting at the current cursor position in the window.
-The line is at most \fIn\fR characters long or as many as fit into the window.
+The line is at most \fIn\fP characters long or as many as fit into the window.
The current cursor position is not changed.
.PP
The
-\fBhline_set\fR,
-\fBmvhline_set\fR,
-\fBmvwhline_set\fR, and
-\fBwhline_set\fR
+\fBhline_set\fP,
+\fBmvhline_set\fP,
+\fBmvwhline_set\fP, and
+\fBwhline_set\fP
functions draw a line proceeding toward the last column of the same line.
.PP
The
-\fBvline_set\fR,
-\fBmvvline_set\fR,
-\fBmvwvline_set\fR, and
-\fBwvline_set\fR
+\fBvline_set\fP,
+\fBmvvline_set\fP,
+\fBmvwvline_set\fP, and
+\fBwvline_set\fP
functions draw a line proceeding toward the last line of the window.
-.br
-.SH NOTES
-.PP
-Note that
-\fBborder_set\fR,
-\fBhline_set\fR,
-\fBmvhline_set\fR,
-\fBmvvline_set\fR,
-\fBmvwhline_set\fR,
-\fBmvwvline_set\fR, and
-\fBvline_set\fR
-may be macros.
-.br
.SH RETURN VALUE
-.PP
Upon successful completion, these functions return
-\fBOK\fR.
+\fBOK\fP.
Otherwise, they return
-\fBERR\fR.
+\fBERR\fP.
.PP
Functions using a window parameter return an error if it is null.
.PP
-Functions with a \*(``mv\*('' prefix first perform a cursor movement using
-\fBwmove\fP, and return an error if the position is outside the window,
-or if the window pointer is null.
+Functions prefixed with \*(``mv\*('' first perform cursor movement and
+fail if the position
+.RI ( y ,
+.IR x )
+is outside the window boundaries.
+.SH NOTES
+Note that
+\fBborder_set\fP,
+\fBhline_set\fP,
+\fBmvhline_set\fP,
+\fBmvvline_set\fP,
+\fBmvwhline_set\fP,
+\fBmvwvline_set\fP, and
+\fBvline_set\fP
+may be macros.
+.SH PORTABILITY
+These functions are described in X/Open Curses, Issue 4.
.SH SEE ALSO
-\fBncurses\fR(3X),
-\fBcurs_add_wch\fR(3X),
-\fBcurs_border\fR(3X),
-\fBcurs_outopts\fR(3X)
+\fB\%curses\fP(3X),
+\fB\%curs_add_wch\fP(3X),
+\fB\%curs_border\fP(3X),
+\fB\%curs_outopts\fP(3X)
diff --git a/man/curs_clear.3x b/man/curs_clear.3x
index d86acbde6b00..0ab00645197a 100644
--- a/man/curs_clear.3x
+++ b/man/curs_clear.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2010,2016 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,65 +27,71 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_clear.3x,v 1.20 2020/10/24 09:19:37 tom Exp $
-.TH curs_clear 3X ""
-.na
-.hy 0
+.\" $Id: curs_clear.3x,v 1.48 2024/04/20 21:20:07 tom Exp $
+.TH curs_clear 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
.SH NAME
-\fBerase\fR,
-\fBwerase\fR,
-\fBclear\fR,
-\fBwclear\fR,
-\fBclrtobot\fR,
-\fBwclrtobot\fR,
-\fBclrtoeol\fR,
-\fBwclrtoeol\fR \- clear all or part of a \fBcurses\fR window
-.ad
-.hy
+\fB\%erase\fP,
+\fB\%werase\fP,
+\fB\%clear\fP,
+\fB\%wclear\fP,
+\fB\%clrtobot\fP,
+\fB\%wclrtobot\fP,
+\fB\%clrtoeol\fP,
+\fB\%wclrtoeol\fP \-
+clear all or part of a \fIcurses\fR window
.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\fBint erase(void);\fR
-.br
-\fBint werase(WINDOW *\fP\fIwin\fP\fB);\fR
-.sp
-\fBint clear(void);\fR
-.br
-\fBint wclear(WINDOW *\fP\fIwin\fP\fB);\fR
-.sp
-\fBint clrtobot(void);\fR
-.br
-\fBint wclrtobot(WINDOW *\fP\fIwin\fP\fB);\fR
-.sp
-\fBint clrtoeol(void);\fR
-.br
-\fBint wclrtoeol(WINDOW *\fP\fIwin\fP\fB);\fR
-.br
+.nf
+\fB#include <curses.h>
+.PP
+\fBint erase(void);
+\fBint werase(WINDOW *\fIwin\fP);
+.PP
+\fBint clear(void);
+\fBint wclear(WINDOW *\fIwin\fP);
+.PP
+\fBint clrtobot(void);
+\fBint wclrtobot(WINDOW *\fIwin\fP);
+.PP
+\fBint clrtoeol(void);
+\fBint wclrtoeol(WINDOW *\fIwin\fP);
+.fi
.SH DESCRIPTION
-The \fBerase\fR and \fBwerase\fR routines copy blanks to every
+.SS "erase, werase"
+The \fBerase\fP and \fBwerase\fP routines copy blanks to every
position in the window, clearing the screen.
.PP
-The \fBclear\fR and \fBwclear\fR routines are like \fBerase\fR and
-\fBwerase\fR, but they also call \fBclearok\fR, so that the screen is
-cleared completely on the next call to \fBwrefresh\fR for that window
+Blanks created by erasure have the current background rendition (as set
+by \fBwbkgdset\fP(3X)) merged into them.
+.SS "clear, wclear"
+The \fBclear\fP and \fBwclear\fP routines are like \fBerase\fP and
+\fBwerase\fP, but they also call \fBclearok\fP(3X), so that the screen is
+cleared completely on the next call to \fBwrefresh\fP for that window
and repainted from scratch.
-.PP
-The \fBclrtobot\fR and \fBwclrtobot\fR routines erase from the cursor to the
+.SS "clrtobot, wclrtobot"
+The \fBclrtobot\fP and \fBwclrtobot\fP routines erase from the cursor to the
end of screen.
That is, they erase all lines below the cursor in the window.
Also, the current line to the right of the cursor, inclusive, is erased.
-.PP
-The \fBclrtoeol\fR and \fBwclrtoeol\fR routines erase the current line
+.SS "clrtoeol, wclrtoeol"
+The \fBclrtoeol\fP and \fBwclrtoeol\fP routines erase the current line
to the right of the cursor, inclusive, to the end of the current line.
-.PP
-Blanks created by erasure have the current background rendition (as set
-by \fBwbkgdset\fR) merged into them.
.SH RETURN VALUE
-All routines return the integer \fBOK\fR on success and \fBERR\fP on failure.
+All routines return the integer \fBOK\fP on success and \fBERR\fP on failure.
.PP
X/Open defines no error conditions.
In this implementation,
@@ -95,25 +101,22 @@ functions using a window pointer parameter return an error if it is null
\fBwclrtoeol\fP returns an error
if the cursor position is about to wrap.
.SH NOTES
-Note that \fBerase\fR, \fBwerase\fR, \fBclear\fR, \fBwclear\fR,
-\fBclrtobot\fR, and \fBclrtoeol\fR may be macros.
+Note that \fBerase\fP, \fBwerase\fP, \fBclear\fP, \fBwclear\fP,
+\fBclrtobot\fP, and \fBclrtoeol\fP may be macros.
.SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4.
-The
-standard specifies that they return \fBERR\fR on failure, but specifies no
-error conditions.
+These functions are described in X/Open Curses, Issue 4.
.PP
-The SVr4.0 manual says that these functions could
-return "a non-negative integer if \fBimmedok\fR is set",
+The SVr4.0 manual says that these functions could return
+\*(``or a non-negative integer if \fB\%immedok\fP is set\*('',
referring to the return-value of \fBwrefresh\fP.
In that implementation, \fBwrefresh\fP would return a count of
the number of characters written to the terminal.
.PP
Some historic curses implementations had, as an undocumented feature, the
-ability to do the equivalent of \fBclearok(..., 1)\fR by saying
-\fBtouchwin(stdscr)\fR or \fBclear(stdscr)\fR.
+ability to do the equivalent of \fBclearok(..., 1)\fP by saying
+\fBtouchwin(stdscr)\fP or \fBclear(stdscr)\fP.
This will not work under
-ncurses.
+\fI\%ncurses\fP.
.PP
This implementation, and others such as Solaris,
sets the current position to 0,0 after erasing
@@ -128,7 +131,7 @@ even for a subwindow or derived window.
If you do not want to clear the screen during the next \fBwrefresh\fP,
use \fBwerase\fP instead.
.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBcurs_outopts\fR(3X),
-\fBcurs_refresh\fR(3X),
-\fBcurs_variables\fR(3X)
+\fB\%curses\fP(3X),
+\fB\%curs_outopts\fP(3X),
+\fB\%curs_refresh\fP(3X),
+\fB\%curs_variables\fP(3X)
diff --git a/man/curs_color.3x b/man/curs_color.3x
index 02defb6a793c..7a5a02f27de3 100644
--- a/man/curs_color.3x
+++ b/man/curs_color.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2016,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,194 +27,226 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_color.3x,v 1.63 2020/10/24 09:35:23 tom Exp $
-.TH curs_color 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: curs_color.3x,v 1.100 2024/04/20 21:24:19 tom Exp $
+.TH curs_color 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
-.ds n 5
-.na
-.hy 0
+.
.SH NAME
-\fBstart_color\fR,
-\fBhas_colors\fR,
-\fBcan_change_color\fR,
-\fBinit_pair\fR,
-\fBinit_color\fR,
-\fBinit_extended_pair\fR,
-\fBinit_extended_color\fR,
-\fBcolor_content\fR,
-\fBpair_content\fR,
-\fBextended_color_content\fR,
-\fBextended_pair_content\fR,
-\fBreset_color_pairs\fR,
-\fBCOLOR_PAIR\fR,
-\fBPAIR_NUMBER\fR \- \fBcurses\fR color manipulation routines
-.ad
-.hy
+\fB\%start_color\fP,
+\fB\%has_colors\fP,
+\fB\%can_change_color\fP,
+\fB\%init_pair\fP,
+\fB\%init_color\fP,
+\fB\%init_extended_pair\fP,
+\fB\%init_extended_color\fP,
+\fB\%color_content\fP,
+\fB\%pair_content\fP,
+\fB\%extended_color_content\fP,
+\fB\%extended_pair_content\fP,
+\fB\%reset_color_pairs\fP,
+\fB\%COLOR_PAIR\fP,
+\fB\%PAIR_NUMBER\fP,
+\fB\%COLORS\fP,
+\fB\%COLOR_PAIRS\fP,
+\fB\%COLOR_BLACK\fP,
+\fB\%COLOR_RED\fP,
+\fB\%COLOR_GREEN\fP,
+\fB\%COLOR_YELLOW\fP,
+\fB\%COLOR_BLUE\fP,
+\fB\%COLOR_MAGENTA\fP,
+\fB\%COLOR_CYAN\fP,
+\fB\%COLOR_WHITE\fP \-
+manipulate terminal colors with \fIcurses\fR
.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\fBint start_color(void);\fR
-.sp
-\fBbool has_colors(void);\fR
-.br
-\fBbool can_change_color(void);\fR
-.sp
-\fBint init_pair(short \fP\fIpair\fP\fB, short \fP\fIf\fP\fB, short \fP\fIb\fP\fB);\fR
-.br
-\fBint init_color(short \fP\fIcolor\fP\fB, short \fP\fIr\fP\fB, short \fP\fIg\fP\fB, short \fP\fIb\fP\fB);\fR
-.br
-/* extensions */
-.br
-\fBint init_extended_pair(int \fP\fIpair\fP\fB, int \fP\fIf\fP\fB, int \fP\fIb\fP\fB);\fR
-.br
-\fBint init_extended_color(int \fP\fIcolor\fP\fB, int \fP\fIr\fP\fB, int \fP\fIg\fP\fB, int \fP\fIb\fP\fB);\fR
-.sp
-\fBint color_content(short \fP\fIcolor\fP\fB, short *\fP\fIr\fP\fB, short *\fP\fIg\fP\fB, short *\fP\fIb\fP\fB);\fR
-.br
-\fBint pair_content(short \fP\fIpair\fP\fB, short *\fP\fIf\fP\fB, short *\fP\fIb\fP\fB);\fR
-.br
-/* extensions */
-.br
-\fBint extended_color_content(int \fP\fIcolor\fP\fB, int *\fP\fIr\fP\fB, int *\fP\fIg\fP\fB, int *\fP\fIb\fP\fB);\fR
-.br
-\fBint extended_pair_content(int \fP\fIpair\fP\fB, int *\fP\fIf\fP\fB, int *\fP\fIb\fP\fB);\fR
-.sp
-/* extensions */
-.br
-\fBvoid reset_color_pairs(void);\fR
-.sp
-\fBint COLOR_PAIR(int \fP\fIn\fP\fB);\fR
-.br
-\fBPAIR_NUMBER(\fR\fIattrs\fR\fB);\fP
-.br
+.nf
+\fB#include <curses.h>
+.PP
+\fI/* variables */
+\fBint COLOR_PAIRS;
+\fBint COLORS;
+.PP
+\fBint start_color(void);
+.PP
+\fBbool has_colors(void);
+\fBbool can_change_color(void);
+.PP
+\fBint init_pair(short \fIpair\fP, short \fIf\fP, short \fIb\fP);
+\fBint init_color(short \fIcolor\fP, short \fIr\fP, short \fIg\fP, short \fIb\fP);
+\fI/* extensions */
+\fBint init_extended_pair(int \fIpair\fP, int \fIf\fP, int \fIb\fP);
+\fBint init_extended_color(int \fIcolor\fP, int \fIr\fP, int \fIg\fP, int \fIb\fP);
+.PP
+\fBint color_content(short \fIcolor\fP, short *\fIr\fP, short *\fIg\fP, short *\fIb\fP);
+\fBint pair_content(short \fIpair\fP, short *\fIf\fP, short *\fIb\fP);
+\fI/* extensions */
+\fBint extended_color_content(int \fIcolor\fP, int *\fIr\fP, int *\fIg\fP, int *\fIb\fP);
+\fBint extended_pair_content(int \fIpair\fP, int *\fIf\fP, int *\fIb\fP);
+.PP
+\fI/* extension */
+\fBvoid reset_color_pairs(void);
+.PP
+\fBint COLOR_PAIR(int \fIn\fP);
+\fBPAIR_NUMBER(int \fIattr\fP);
+.fi
.SH DESCRIPTION
.SS Overview
-\fBcurses\fR supports color attributes on terminals with that capability.
-To use these routines \fBstart_color\fR must be called, usually right after
-\fBinitscr\fR.
-Colors are always used in pairs (referred to as color-pairs).
-A color-pair consists of a foreground color (for characters) and a background
-color (for the blank field on which the characters are displayed).
-A programmer initializes a color-pair with the routine \fBinit_pair\fR.
-After it has been initialized, \fBCOLOR_PAIR\fR(\fIn\fR)
-can be used to convert the pair to a video attribute.
-.PP
-If a terminal is capable of redefining colors, the programmer can use the
-routine \fBinit_color\fR to change the definition of a color.
-The routines \fBhas_colors\fR and \fBcan_change_color\fR
-return \fBTRUE\fR or \fBFALSE\fR,
-depending on whether the terminal has color capabilities and whether the
+\fIcurses\fP supports color attributes on terminals with that
+capability.
+Call \fB\%start_color\fP
+(typically right after \fB\%initscr\fP(3X))
+to enable this feature.
+Colors are always used in pairs.
+A
+.I "color pair"
+couples a foreground color for characters with a background color for
+the blank field on which characters are rendered.
+\fB\%init_pair\fP initializes a color pair.
+The macro \fB\%COLOR_PAIR\fP(\fIn\fP) can then convert the pair to a
+video attribute.
+.PP
+If a terminal has the relevant capability,
+\fB\%init_color\fP permits (re)definition of a color.
+\fB\%has_colors\fP and \fB\%can_change_color\fP
+return \fBTRUE\fP or \fBFALSE\fP,
+depending on whether the terminal has color capability and whether the
programmer can change the colors.
-The routine \fBcolor_content\fR allows a
-programmer to extract the amounts of red, green, and blue components in an
-initialized color.
-The routine \fBpair_content\fR allows a programmer to find
-out how a given color-pair is currently defined.
-.SS Color Rendering
-The \fBcurses\fP library combines these inputs to produce the
-actual foreground and background colors shown on the screen:
+\fB\%color_content\fP permits extraction of the
+red,
+green,
+and blue components of an initialized color.
+\fB\%pair_content\fP permits discovery of a color pair's current
+definition.
+.SS Rendering
+.I curses
+combines the following data to render a character cell.
+Any of them can include color information.
.bP
-per-character video attributes (e.g., via \fBwaddch\fP),
+.I curses
+character attributes,
+as from \fB\%waddch\fP(3X) or \fB\%wadd_wch\fP(3X)
.bP
-the window attribute (e.g., by \fBwattrset\fP), and
+window attributes,
+as from \fB\%wattrset\fP(3X) or \fB\%wattr_set\fP(3X)
.bP
-the background character (e.g., \fBwbkgdset\fP).
+window background character attributes,
+as from \fB\%wbkgdset\fP(3X) or \fB\%wbkgrndset\fP(3X)
.PP
-Per-character and window attributes are usually set by a parameter containing
-video attributes including a color pair value.
-Some functions such as \fBwattr_set\fP use a separate parameter which
-is the color pair number.
+Per-character and window attributes are usually set through a function
+parameter containing attributes including a color pair value.
+Some functions,
+such as \fB\%wattr_set\fP,
+use a separate color pair number parameter.
.PP
-The background character is a special case: it includes a character value,
-just as if it were passed to \fBwaddch\fP.
+The background character is a special case:
+it includes a character code,
+just as if it were passed to \fB\%waddch\fP.
.PP
-The \fBcurses\fP library does the actual work of combining these color
-pairs in an internal function called from \fBwaddch\fP:
+The \fIcurses\fP library does the actual work of combining these color
+pairs in an internal function called from \fB\%waddch\fP:
.bP
-If the parameter passed to \fBwaddch\fP is \fIblank\fP,
+If the parameter passed to \fB\%waddch\fP is \fIblank\fP,
and it uses the special color pair 0,
.RS
.bP
-\fBcurses\fP next checks the window attribute.
+\fIcurses\fP next checks the window attribute.
.bP
If the window attribute does not use color pair 0,
-\fBcurses\fP uses the color pair from the window attribute.
+\fIcurses\fP uses the color pair from the window attribute.
.bP
-Otherwise, \fBcurses\fP uses the background character.
+Otherwise, \fIcurses\fP uses the background character.
.RE
.bP
-If the parameter passed to \fBwaddch\fP is \fInot blank\fP,
+If the parameter passed to \fB\%waddch\fP is \fInot blank\fP,
or it does not use the special color pair 0,
-\fBcurses\fP prefers the color pair from the parameter,
+\fIcurses\fP prefers the color pair from the parameter,
if it is nonzero.
Otherwise, it tries the window attribute next, and finally the
background character.
.PP
-Some \fBcurses\fP functions such as \fBwprintw\fP call \fBwaddch\fP.
+Some \fIcurses\fP functions such as \fB\%wprintw\fP call \fB\%waddch\fP.
Those do not combine its parameter with a color pair.
Consequently those calls use only the window attribute or
the background character.
.SH CONSTANTS
-.PP
-In \fB<curses.h>\fR the following macros are defined.
+In \fB\%<curses.h>\fP the following macros are defined.
These are the standard colors (ISO-6429).
-\fBcurses\fR also assumes that \fBCOLOR_BLACK\fR is the default
+\fIcurses\fP also assumes that \fB\%COLOR_BLACK\fP is the default
background color for all terminals.
.PP
.nf
- \fBCOLOR_BLACK\fR
- \fBCOLOR_RED\fR
- \fBCOLOR_GREEN\fR
- \fBCOLOR_YELLOW\fR
- \fBCOLOR_BLUE\fR
- \fBCOLOR_MAGENTA\fR
- \fBCOLOR_CYAN\fR
- \fBCOLOR_WHITE\fR
+ \fBCOLOR_BLACK\fP
+ \fBCOLOR_RED\fP
+ \fBCOLOR_GREEN\fP
+ \fBCOLOR_YELLOW\fP
+ \fBCOLOR_BLUE\fP
+ \fBCOLOR_MAGENTA\fP
+ \fBCOLOR_CYAN\fP
+ \fBCOLOR_WHITE\fP
.fi
.PP
Some terminals support more than the eight (8) \*(``ANSI\*('' colors.
There are no standard names for those additional colors.
.SH VARIABLES
.SS COLORS
-is initialized by \fBstart_color\fP to the maximum number of colors
+is initialized by \fB\%start_color\fP to the maximum number of colors
the terminal can support.
.SS COLOR_PAIRS
-is initialized by \fBstart_color\fP to the maximum number of color pairs
-the terminal can support.
+is initialized by \fB\%start_color\fP to the maximum number of color
+pairs the terminal can support.
+Often,
+its value is the product \fB\%COLORS\fP \(mu \fB\%COLORS\fP,
+but this is not always true.
+.bP
+A few terminals use the HLS color space
+(see \fB\%start_color\fP below),
+ignoring this rule;
+and
+.bP
+terminals supporting a large number of colors are limited to the number
+of color pairs that a
+.I "signed short"
+value can represent.
.SH FUNCTIONS
.SS start_color
-The \fBstart_color\fR routine requires no arguments.
+The \fB\%start_color\fP routine requires no arguments.
It must be called if the programmer wants to use colors, and before any other
color manipulation routine is called.
-It is good practice to call this routine right after \fBinitscr\fR.
-\fBstart_color\fR does this:
+It is good practice to call this routine right after \fB\%initscr\fP.
+\fB\%start_color\fP does this:
.bP
-It initializes two global variables, \fBCOLORS\fR and
-\fBCOLOR_PAIRS\fR (respectively defining the maximum number of colors
-and color-pairs the terminal can support).
+It initializes two global variables, \fB\%COLORS\fP and
+\fB\%COLOR_PAIRS\fP (respectively defining the maximum number of colors
+and color pairs the terminal can support).
.bP
-It initializes the special color pair \fB0\fP to the default foreground
+It initializes the special color pair \fB\%0\fP to the default foreground
and background colors.
No other color pairs are initialized.
.bP
It restores the colors on the terminal to the values
they had when the terminal was just turned on.
.bP
-If the terminal supports the \fBinitc\fP (\fBinitialize_color\fP) capability,
-\fBstart_color\fP
+If the terminal supports the \fBinitc\fP \%(\fBinitialize_color\fP) capability,
+\fB\%start_color\fP
initializes its internal table representing the
red, green, and blue components of the color palette.
.IP
The components depend on whether the terminal uses
CGA (aka \*(``ANSI\*('') or
-HLS (i.e., the \fBhls\fP (\fBhue_lightness_saturation\fP) capability is set).
+HLS (i.e., the \fBhls\fP \%(\fBhue_lightness_saturation\fP) capability is set).
The table is initialized first for eight basic colors
(black, red, green, yellow, blue, magenta, cyan, and white),
using weights that depend upon the CGA/HLS choice.
@@ -229,28 +261,28 @@ but with weights of \fB1000\fP.
SVr4 uses a similar scheme, but uses \fB1000\fP
for the components of the initial eight colors.
.IP
-\fBstart_color\fP does not attempt to set the terminal's color palette
+\fB\%start_color\fP does not attempt to set the terminal's color palette
to match its built-in table.
-An application may use \fBinit_color\fP to alter the internal table
+An application may use \fB\%init_color\fP to alter the internal table
along with the terminal's color.
.PP
These limits apply to color values and color pairs.
-Values outside these limits are not legal, and may result in a runtime error:
+Values outside these limits are not valid, and may result in a runtime error:
.bP
-\fBCOLORS\fP corresponds to the terminal database's \fBmax_colors\fR capability,
-(see \fBterminfo\fR(\*n)).
+\fBCOLORS\fP corresponds to the terminal database's \fB\%max_colors\fP capability,
+(see \fB\%terminfo\fP(5)).
.bP
-color values are expected to be in the range \fB0\fP to \fBCOLORS\-1\fP,
-inclusive (including \fB0\fP and \fBCOLORS\-1\fP).
+color values are expected to be in the range \fB0\fP to \fB\%COLORS\-1\fP,
+inclusive (including \fB0\fP and \fB\%COLORS\-1\fP).
.bP
a special color value \fB\-1\fP is used in certain extended functions
-to denote the \fIdefault color\fP (see \fBuse_default_colors\fP(3X)).
+to denote the \fIdefault color\fP (see \fB\%use_default_colors\fP(3X)).
.bP
-\fBCOLOR_PAIRS\fP corresponds to
-the terminal database's \fBmax_pairs\fP capability,
-(see \fBterminfo\fR(\*n)).
+\fB\%COLOR_PAIRS\fP corresponds to
+the terminal database's \fB\%max_pairs\fP capability,
+(see \fB\%terminfo\fP(5)).
.bP
-legal color pair values are in the range \fB1\fP to \fBCOLOR_PAIRS\-1\fP,
+valid color pair values are in the range \fB1\fP to \fB\%COLOR_PAIRS\-1\fP,
inclusive.
.bP
color pair \fB0\fP is special; it denotes \*(``no color\*(''.
@@ -259,171 +291,162 @@ Color pair \fB0\fP is assumed to be white on black,
but is actually whatever the terminal implements before color is initialized.
It cannot be modified by the application.
.SS has_colors
-.PP
-The \fBhas_colors\fR routine requires no arguments.
-It returns \fBTRUE\fR if
-the terminal can manipulate colors; otherwise, it returns \fBFALSE\fR.
+The \fB\%has_colors\fP routine requires no arguments.
+It returns \fBTRUE\fP if
+the terminal can manipulate colors; otherwise, it returns \fBFALSE\fP.
This routine facilitates writing terminal-independent programs.
For example, a programmer can use it to decide
whether to use color or some other video attribute.
.SS can_change_color
-.PP
-The \fBcan_change_color\fR routine requires no arguments.
-It returns \fBTRUE\fR if the terminal supports colors
+The \fB\%can_change_color\fP routine requires no arguments.
+It returns \fBTRUE\fP if the terminal supports colors
and can change their definitions;
-other, it returns \fBFALSE\fR.
+other, it returns \fBFALSE\fP.
This routine facilitates writing terminal-independent programs.
.SS init_pair
-.PP
-The \fBinit_pair\fR routine changes the definition of a color-pair.
+The \fB\%init_pair\fP routine changes the definition of a color pair.
It takes three arguments:
-the number of the color-pair to be changed, the foreground
+the number of the color pair to be changed, the foreground
color number, and the background color number.
For portable applications:
.bP
-The first argument must be a legal color pair value.
-If default colors are used (see \fBuse_default_colors\fP(3X))
+The first argument must be a valid color pair value.
+If default colors are used (see \fB\%use_default_colors\fP(3X))
the upper limit is adjusted to allow for extra pairs which use
a default color in foreground and/or background.
.bP
-The second and third arguments must be legal color values.
+The second and third arguments must be valid color values.
.PP
-If the color-pair was previously initialized,
-the screen is refreshed and all occurrences of that color-pair
+If the color pair was previously initialized,
+the screen is refreshed and all occurrences of that color pair
are changed to the new definition.
.PP
-As an extension, ncurses allows you to set color pair \fB0\fP via
-the \fBassume_default_colors\fR(3X) routine, or to specify the use of
-default colors (color number \fB\-1\fR) if you first invoke the
-\fBuse_default_colors\fR(3X) routine.
+As an extension,
+\fI\%ncurses\fP allows you to set color pair \fB0\fP via the
+\fB\%assume_default_colors\fP(3X) routine, or to specify the use of
+default colors (color number \fB\-1\fP) if you first invoke the
+\fB\%use_default_colors\fP(3X) routine.
.SS init_extended_pair
-.PP
-Because \fBinit_pair\fP uses signed \fBshort\fPs for its parameters,
-that limits color-pairs and color-values
+Because \fB\%init_pair\fP uses signed \fBshort\fPs for its parameters,
+that limits color pairs and color-values
to 32767 on modern hardware.
-The extension \fBinit_extended_pair\fP uses \fBint\fPs
-for the color-pair and color-value,
+The extension \fB\%init_extended_pair\fP uses \fBint\fPs
+for the color pair and color-value,
allowing a larger number of colors to be supported.
.SS init_color
-.PP
-The \fBinit_color\fR routine changes the definition of a color.
+The \fB\%init_color\fP routine changes the definition of a color.
It takes four arguments:
the number of the color to be changed followed by three RGB values
(for the amounts of red, green, and blue components).
.bP
-The first argument must be a legal color value;
+The first argument must be a valid color value;
default colors are not allowed here.
-(See the section \fBColors\fR for the default color index.)
+(See the section \fB\%Colors\fP for the default color index.)
.bP
Each of the last three arguments
must be a value in the range \fB0\fP through \fB1000\fP.
.PP
-When \fBinit_color\fR is used, all
+When \fB\%init_color\fP is used, all
occurrences of that color on the screen immediately change to the new
definition.
.SS init_extended_color
-.PP
-Because \fBinit_color\fP uses signed \fBshort\fPs for its parameters,
+Because \fB\%init_color\fP uses signed \fBshort\fPs for its parameters,
that limits color-values and their red, green, and blue components
to 32767 on modern hardware.
-The extension \fBinit_extended_color\fP uses \fBint\fPs
+The extension \fB\%init_extended_color\fP uses \fBint\fPs
for the color value and
for setting the red, green, and blue components,
allowing a larger number of colors to be supported.
.SS color_content
-.PP
-The \fBcolor_content\fR routine gives programmers a way to find the intensity
+The \fB\%color_content\fP routine gives programmers a way to find the intensity
of the red, green, and blue (RGB) components in a color.
It requires four arguments: the color number, and three addresses
of \fBshort\fRs for storing
the information about the amounts of red, green, and blue components in the
given color.
.bP
-The first argument must be a legal color value, i.e.,
-\fB0\fP through \fBCOLORS\-1\fP, inclusive.
+The first argument must be a valid color value, i.e.,
+\fB0\fP through \fB\%COLORS\-1\fP, inclusive.
.bP
The values that are stored at the addresses pointed to by the
last three arguments are in the range
\fB0\fP (no component) through \fB1000\fP
(maximum amount of component), inclusive.
.SS extended_color_content
-.PP
-Because \fBcolor_content\fP uses signed \fBshort\fPs for its parameters,
+Because \fB\%color_content\fP uses signed \fBshort\fPs for its parameters,
that limits color-values and their red, green, and blue components
to 32767 on modern hardware.
-The extension \fBextended_color_content\fP uses \fBint\fPs
+The extension \fB\%extended_color_content\fP uses \fBint\fPs
for the color value and
for returning the red, green, and blue components,
allowing a larger number of colors to be supported.
.SS pair_content
-.PP
-The \fBpair_content\fR routine allows programmers to find out what colors a
-given color-pair consists of.
-It requires three arguments: the color-pair
+The \fB\%pair_content\fP routine allows programmers to find out what colors a
+given color pair consists of.
+It requires three arguments: the color pair
number, and two addresses of \fBshort\fRs for storing the foreground and the
background color numbers.
.bP
-The first argument must be a legal color value,
-i.e., in the range \fB1\fP through \fBCOLOR_PAIRS\-1\fR, inclusive.
+The first argument must be a valid color value,
+i.e., in the range \fB1\fP through \fB\%COLOR_PAIRS\-1\fP, inclusive.
.bP
The values that are stored at the addresses pointed
to by the second and third arguments are in the
-range \fB0\fP through \fBCOLORS\fR, inclusive.
+range \fB0\fP through \fB\%COLORS\fP, inclusive.
.SS extended_pair_content
-.PP
-Because \fBpair_content\fP uses signed \fBshort\fPs for its parameters,
-that limits color-pair and color-values to 32767 on modern hardware.
-The extension \fBextended_pair_content\fP uses \fBint\fPs
+Because \fB\%pair_content\fP uses signed \fBshort\fPs for its parameters,
+that limits color pair and color-values to 32767 on modern hardware.
+The extension \fB\%extended_pair_content\fP uses \fBint\fPs
for the color pair and
for returning the foreground and background colors,
allowing a larger number of colors to be supported.
.SS reset_color_pairs
-.PP
-The extension \fBreset_color_pairs\fP tells ncurses to discard all
-of the color-pair information which was set with \fBinit_pair\fP.
+The extension \fB\%reset_color_pairs\fP tells \fI\%ncurses\fP to discard
+all of the color pair information which was set with \fB\%init_pair\fP.
It also touches the current- and standard-screens, allowing an application to
switch color palettes rapidly.
-.SS PAIR_NUMBER
-.PP
-\fBPAIR_NUMBER(\fR\fIattrs\fR) extracts the color
-value from its \fIattrs\fP parameter and returns it as a color pair number.
.SS COLOR_PAIR
-Its inverse \fBCOLOR_PAIR(\fR\fIn\fR\fB)\fR converts a color pair number
-to an attribute.
+\fB\%COLOR_PAIR(\fIn\fB)\fR converts a color pair number to an
+attribute.
Attributes can hold color pairs in the range 0 to 255.
-If you need a color pair larger than that, you must use functions
-such as \fBattr_set\fP (which pass the color pair as a separate parameter)
-rather than the legacy functions such as \fBattrset\fP.
+If you need a color pair larger than that,
+you must use functions such as \fB\%attr_set\fP
+(which pass the color pair as a separate parameter)
+rather than the legacy functions such as \fB\%attrset\fP.
+.SS PAIR_NUMBER
+\fB\%PAIR_NUMBER(\fIattr\fR) extracts the color information from its
+\fIattr\fP parameter and returns it as a color pair number;
+it is the inverse operation of \fB\%COLOR_PAIR\fP.
.SH RETURN VALUE
-The routines \fBcan_change_color\fR and \fBhas_colors\fR return \fBTRUE\fR
-or \fBFALSE\fR.
+The routines \fB\%can_change_color\fP and \fB\%has_colors\fP return \fBTRUE\fP
+or \fBFALSE\fP.
.PP
-All other routines return the integer \fBERR\fR upon failure and an \fBOK\fR
+All other routines return the integer \fBERR\fP upon failure and an \fBOK\fP
(SVr4 specifies only \*(``an integer value
-other than \fBERR\fR\*('') upon successful completion.
+other than \fBERR\fP\*('') upon successful completion.
.PP
X/Open defines no error conditions.
SVr4 does document some error conditions which apply in general:
.bP
-This implementation will return \fBERR\fR on attempts to
-use color values outside the range \fB0\fP to \fBCOLORS\fP\-1
+This implementation will return \fBERR\fP on attempts to
+use color values outside the range \fB0\fP to \fB\%COLORS\fP\-1
(except for the default colors extension),
-or use color pairs outside the range \fB0\fP to \fBCOLOR_PAIRS\-1\fP.
+or use color pairs outside the range \fB0\fP to \fB\%COLOR_PAIRS\-1\fP.
.IP
-Color values used in \fBinit_color\fP must be
+Color values used in \fB\%init_color\fP must be
in the range \fB0\fP to \fB1000\fP.
.IP
An error is returned from all functions
if the terminal has not been initialized.
.IP
-An error is returned from secondary functions such as \fBinit_pair\fP
-if \fBstart_color\fP was not called.
+An error is returned from secondary functions such as \fB\%init_pair\fP
+if \fB\%start_color\fP was not called.
.bP
SVr4 does much the same, except that
-it returns \fBERR\fP from \fBpair_content\fP if the pair was not initialized
-using \fBinit_pairs\fP
-and
-it returns \fBERR\fP from \fBcolor_content\fP
+it returns \fBERR\fP from \fB\%pair_content\fP if the pair was not initialized
+using \fB\%init_pairs\fP
+and
+it returns \fBERR\fP from \fB\%color_content\fP
if the terminal does not support changing colors.
.IP
This implementation does not return \fBERR\fP for either case.
@@ -431,19 +454,20 @@ This implementation does not return \fBERR\fP for either case.
Specific functions make additional checks:
.RS 3
.TP 5
-\fBinit_color\fP
+\fB\%init_color\fP
returns an error if the terminal does not support
-this feature, e.g., if the \fBinitialize_color\fP capability is absent
+this feature, e.g., if the \fB\%initialize_color\fP capability is absent
from the terminal description.
.TP 5
-\fBstart_color\fP
+\fB\%start_color\fP
returns an error if the color table cannot be allocated.
.RE
.SH NOTES
-In the \fBncurses\fR implementation, there is a separate color activation flag,
+In the \fI\%ncurses\fP implementation,
+there is a separate color activation flag,
color palette, color pairs table,
-and associated \fBCOLORS\fP and \fBCOLOR_PAIRS\fP counts
-for each screen; the \fBstart_color\fR function only affects the current
+and associated \fB\%COLORS\fP and \fB\%COLOR_PAIRS\fP counts
+for each screen; the \fB\%start_color\fP function only affects the current
screen.
The SVr4/XSI interface is not really designed with this in mind, and
historical implementations may use a single shared color palette.
@@ -452,13 +476,13 @@ Setting an implicit background color via a color pair affects only
character cells that a character write operation explicitly touches.
To change
the background color used when parts of a window are blanked by erasing or
-scrolling operations, see \fBcurs_bkgd\fR(3X).
+scrolling operations, see \fB\%curs_bkgd\fP(3X).
.PP
Several caveats apply on older x86 machines
(e.g., i386, i486) with VGA-compatible graphics:
.bP
COLOR_YELLOW is actually brown.
-To get yellow, use COLOR_YELLOW combined with the \fBA_BOLD\fR attribute.
+To get yellow, use COLOR_YELLOW combined with the \fBA_BOLD\fP attribute.
.bP
The A_BLINK attribute should in theory cause the background to go bright.
This often fails to work, and even some cards for which it mostly works
@@ -467,21 +491,35 @@ Paradise and compatibles) do the wrong thing when you try to set a bright
\*(``yellow\*('' background (you get a blinking yellow foreground instead).
.bP
Color RGB values are not settable.
+.SH EXTENSIONS
+The functions marked as extensions were designed for
+\fB\%ncurses\fP(3X),
+and are not found in SVr4
+.IR curses ,
+4.4BSD
+.IR curses ,
+or any other previous curses implementation.
.SH PORTABILITY
-This implementation satisfies XSI Curses's minimum maximums
-for \fBCOLORS\fR and \fBCOLOR_PAIRS\fR.
+Applications employing
+.I \%ncurses
+extensions should condition their use on the visibility of the
+.B \%NCURSES_VERSION
+preprocessor macro.
.PP
-The \fBinit_pair\fP routine accepts negative values of foreground
-and background color to support the \fBuse_default_colors\fR(3X) extension,
+This implementation satisfies X/Open Curses's minimum maximums
+for \fB\%COLORS\fP and \fB\%COLOR_PAIRS\fP.
+.PP
+The \fB\%init_pair\fP routine accepts negative values of foreground
+and background color to support the \fB\%use_default_colors\fP(3X) extension,
but only if that routine has been first invoked.
.PP
-The assumption that \fBCOLOR_BLACK\fR is the default
+The assumption that \fB\%COLOR_BLACK\fP is the default
background color for all terminals can be modified using the
-\fBassume_default_colors\fR(3X) extension.
+\fB\%assume_default_colors\fP(3X) extension.
.PP
This implementation checks the pointers,
e.g., for the values returned by
-\fBcolor_content\fP and \fBpair_content\fP,
+\fB\%color_content\fP and \fB\%pair_content\fP,
and will treat those as optional parameters when null.
.PP
X/Open Curses does not specify a limit for the number of colors and
@@ -493,10 +531,59 @@ This implementation provides extended versions of those functions
which use \fBshort\fP parameters,
allowing applications to use larger color- and pair-numbers.
.PP
-The \fBreset_color_pairs\fP function is an extension of ncurses.
+The \fB\%reset_color_pairs\fP function is an extension of
+\fI\%ncurses\fP.
+.SH HISTORY
+SVr3.2 introduced color support to curses in 1987.
+.PP
+SVr4 made internal changes,
+e.g., moving the storage for the color state
+from \fBSP\fP (the \fISCREEN\fP structure)
+to \fB\%cur_term\fP (the \fI\%TERMINAL\fP structure),
+but provided the same set of library functions.
+.PP
+SVr4 curses limits the number of color pairs to 64,
+reserving color pair zero (0) as the terminal's initial uncolored state.
+This limit arises because the color pair information is a bitfield
+in the \fB\%chtype\fP data type (denoted by \fB\%A_COLOR\fP).
+.PP
+Other implementations of curses had different limits:
+.bP
+PCCurses (1987-1990) provided for only eight (8) colors.
+.bP
+PDCurses (1992-present) inherited the 8-color limitation from PCCurses,
+but changed this to 256 in version 2.5 (2001),
+along with changing \fB\%chtype\fP from 16-bits to 32-bits.
+.bP
+X/Open Curses (1992-present)
+added a new structure \fB\%cchar_t\fP to store the character,
+attributes and color pair values, allowing increased range of color pairs.
+Both color pairs and color-values used a signed \fBshort\fP,
+limiting values to 15 bits.
+.bP
+\fI\%ncurses\fP (1992-present) uses eight bits
+for \fB\%A_COLOR\fP in \fB\%chtype\fP values.
+.IP
+Version 5.3 provided a wide-character interface (2002),
+but left color pairs as part of the attributes-field.
+.IP
+Since version 6 (2015),
+ncurses uses a separate \fBint\fP for color pairs in the \fB\%cchar_t\fP values.
+When those color pair values fit in 8 bits,
+ncurses allows color pairs to be manipulated
+via the functions using \fB\%chtype\fP values.
+.bP
+NetBSD curses used 6 bits from
+2000 (when colors were first supported) until 2004.
+At that point, NetBSD changed to use 10 bits.
+As of 2021, that size is unchanged.
+Like \fI\%ncurses\fP before version 6,
+the NetBSD color pair information is stored in
+the attributes field of \fB\%cchar_t\fP, limiting the number of color pairs
+by the size of the bitfield.
.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBcurs_initscr\fR(3X),
-\fBcurs_attr\fR(3X),
-\fBcurs_variables\fR(3X),
-\fBdefault_colors\fR(3X)
+\fB\%curses\fP(3X),
+\fB\%curs_attr\fP(3X),
+\fB\%curs_initscr\fP(3X),
+\fB\%curs_variables\fP(3X),
+\fB\%default_colors\fP(3X)
diff --git a/man/curs_delch.3x b/man/curs_delch.3x
index 86f0984cdbe8..e62ecc130de1 100644
--- a/man/curs_delch.3x
+++ b/man/curs_delch.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2006,2010 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,50 +27,87 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_delch.3x,v 1.15 2020/10/24 09:36:43 tom Exp $
-.TH curs_delch 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: curs_delch.3x,v 1.34 2024/04/20 19:24:14 tom Exp $
+.TH curs_delch 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
.SH NAME
-\fBdelch\fR,
-\fBwdelch\fR,
-\fBmvdelch\fR,
-\fBmvwdelch\fR \- delete character under the cursor in a \fBcurses\fR window
+\fB\%delch\fP,
+\fB\%wdelch\fP,
+\fB\%mvdelch\fP,
+\fB\%mvwdelch\fP \-
+delete a character from a \fIcurses\fR window
.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\fBint delch(void);\fR
-.br
-\fBint wdelch(WINDOW *\fP\fIwin\fP\fB);\fR
-.br
-\fBint mvdelch(int \fP\fIy\fP\fB, int \fP\fIx\fP\fB);\fR
-.br
-\fBint mvwdelch(WINDOW *\fP\fIwin\fP\fB, int \fP\fIy\fP\fB, int \fP\fIx\fP\fB);\fR
-.br
+.nf
+\fB#include <curses.h>
+.PP
+\fBint delch(void);
+\fBint wdelch(WINDOW *\fIwin\fP);
+\fBint mvdelch(int \fIy\fP, int \fIx\fP);
+\fBint mvwdelch(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP);
+.fi
.SH DESCRIPTION
-These routines delete the character under the cursor; all characters to the
-right of the cursor on the same line are moved to the left one position and the
-last character on the line is filled with a blank.
-The cursor position does
-not change (after moving to \fIy\fR, \fIx\fR, if specified).
-(This does not
-imply use of the hardware delete character feature.)
+.B \%wdelch
+deletes the character at the cursor position in
+.IR win .
+\fB\%ncurses\fP(3X) describes the variants of this function.
+.PP
+.B \%wdelch
+moves all characters to the right of the cursor on the same line to the
+left one position and replaces the contents of the rightmost position on
+the line with the window's blank character;
+see \fB\%bkgd\fP(3X)
+(wide-character API users may consult \fB\%bkgrnd\fP(3X) instead).
+The cursor position does not change
+(after moving to
+.RI ( y ,
+.IR x ),
+if specified).
.SH RETURN VALUE
-All routines return the integer \fBERR\fR upon failure and an \fBOK\fR (SVr4
-specifies only "an integer value other than \fBERR\fR") upon successful
-completion.
+These functions return
+.B OK
+on success and
+.B ERR
+on failure.
+.PP
+Functions taking a
+.I \%WINDOW
+pointer argument fail if the pointer is
+.BR NULL .
.PP
-Functions with a \*(``mv\*('' prefix first perform a cursor movement using
-\fBwmove\fP, and return an error if the position is outside the window,
-or if the window pointer is null.
+Functions prefixed with \*(``mv\*('' first perform cursor movement and
+fail if the position
+.RI ( y ,
+.IR x )
+is outside the window boundaries.
.SH NOTES
-Note that \fBdelch\fR, \fBmvdelch\fR, and \fBmvwdelch\fR may be macros.
+.BR \%delch ,
+.BR \%mvdelch ,
+and
+.B \%mvwdelch
+may be implemented as macros.
+.PP
+A terminal's
+.B \%delete_character
+.RB ( dch1 )
+capability
+is not necessarily employed.
.SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4.
-The
-standard specifies that they return \fBERR\fR on failure, but specifies no
-error conditions.
+X/Open Curses,
+Issue 4 describes these functions.
+.PP
+SVr4
+.I curses
+describes a successful return value only as
+\*(``an integer value other than
+.BR ERR \*(''.
.SH SEE ALSO
-\fBcurses\fR(3X)
+\fB\%curses\fP(3X)
diff --git a/man/curs_deleteln.3x b/man/curs_deleteln.3x
index 391c80094192..6d70a4358c4f 100644
--- a/man/curs_deleteln.3x
+++ b/man/curs_deleteln.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2007,2010 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,67 +27,78 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_deleteln.3x,v 1.17 2020/10/18 00:28:51 tom Exp $
-.TH curs_deleteln 3X ""
+.\" $Id: curs_deleteln.3x,v 1.38 2024/04/20 21:20:07 tom Exp $
+.TH curs_deleteln 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.SH NAME
-\fBdeleteln\fR,
-\fBwdeleteln\fR,
-\fBinsdelln\fR,
-\fBwinsdelln\fR,
-\fBinsertln\fR,
-\fBwinsertln\fR \- delete and insert lines in a \fBcurses\fR window
+\fB\%deleteln\fP,
+\fB\%wdeleteln\fP,
+\fB\%insdelln\fP,
+\fB\%winsdelln\fP,
+\fB\%insertln\fP,
+\fB\%winsertln\fP \-
+delete or insert lines in a \fIcurses\fR window
.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\fBint deleteln(void);\fR
-.br
-\fBint wdeleteln(WINDOW *\fP\fIwin\fP\fB);\fR
-.sp
-\fBint insdelln(int \fP\fIn\fP\fB);\fR
-.br
-\fBint winsdelln(WINDOW *\fP\fIwin\fP\fB, int \fP\fIn\fP\fB);\fR
-.sp
-\fBint insertln(void);\fR
-.br
-\fBint winsertln(WINDOW *\fP\fIwin\fP\fB);\fR
-.br
+.nf
+\fB#include <curses.h>
+.PP
+\fBint deleteln(void);
+\fBint wdeleteln(WINDOW *\fIwin\fP);
+.PP
+\fBint insdelln(int \fIn\fP);
+\fBint winsdelln(WINDOW *\fIwin\fP, int \fIn\fP);
+.PP
+\fBint insertln(void);
+\fBint winsertln(WINDOW *\fIwin\fP);
+.fi
.SH DESCRIPTION
-The \fBdeleteln\fR and \fBwdeleteln\fR routines delete the line under the
+The \fBdeleteln\fP and \fBwdeleteln\fP routines delete the line under the
cursor in the window; all lines below the current line are moved up one line.
The bottom line of the window is cleared.
The cursor position does not change.
.PP
-The \fBinsdelln\fR and \fBwinsdelln\fR routines, for positive \fIn\fR, insert
-\fIn\fR lines into the specified window above the current line.
-The \fIn\fR
+The \fBinsdelln\fP and \fBwinsdelln\fP routines, for positive \fIn\fP, insert
+\fIn\fP lines into the specified window above the current line.
+The \fIn\fP
bottom lines are lost.
-For negative \fIn\fR, delete \fIn\fR lines (starting
+For negative \fIn\fP, delete \fIn\fP lines (starting
with the one under the cursor), and move the remaining lines up.
The bottom
-\fIn\fR lines are cleared.
+\fIn\fP lines are cleared.
The current cursor position remains the same.
.PP
-The \fBinsertln\fR and \fBwinsertln\fR routines insert a blank line above the
+The \fBinsertln\fP and \fBwinsertln\fP routines insert a blank line above the
current line and the bottom line is lost.
.SH RETURN VALUE
-All routines return the integer \fBERR\fR upon failure and an \fBOK\fR (SVr4
-specifies only "an integer value other than \fBERR\fR") upon successful
-completion.
+These routines return the integer \fBERR\fP upon failure and an \fBOK\fP
+(SVr4 specifies only
+\*(``an integer value other than \fBERR\fP\*('')
+upon successful completion.
.PP
X/Open defines no error conditions.
In this implementation,
if the window parameter is null, an error is returned.
-.SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4.
-The
-standard specifies that they return \fBERR\fR on failure, but specifies no
-error conditions.
.SH NOTES
-Note that all but \fBwinsdelln\fR may be macros.
+Note that all but \fBwinsdelln\fP may be macros.
.PP
These routines do not require a hardware line delete or insert feature in the
terminal.
In fact, they will not use hardware line delete/insert unless
-\fBidlok(..., TRUE)\fR has been set on the current window.
+\fBidlok(..., TRUE)\fP has been set on the current window.
+.SH PORTABILITY
+These functions are described in X/Open Curses, Issue 4.
+The
+standard specifies that they return \fBERR\fP on failure, but specifies no
+error conditions.
.SH SEE ALSO
-\fBcurses\fR(3X)
+\fB\%curses\fP(3X)
diff --git a/man/curs_extend.3x b/man/curs_extend.3x
index 52ba27d07fb3..01cf9d2ece71 100644
--- a/man/curs_extend.3x
+++ b/man/curs_extend.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1999-2010,2016 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -29,28 +29,41 @@
.\"
.\" Author: Thomas E. Dickey 1999-on
.\"
-.\" $Id: curs_extend.3x,v 1.24 2020/10/24 09:37:07 tom Exp $
-.TH curs_extend 3X ""
+.\" $Id: curs_extend.3x,v 1.46 2024/03/16 15:35:01 tom Exp $
+.TH curs_extend 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
.SH NAME
-\fBcurses_version\fP,
-\fBuse_extended_names\fP \- miscellaneous curses extensions
-.
+\fB\%curses_version\fP,
+\fB\%use_extended_names\fP \-
+miscellaneous \fIcurses\fR extensions
.SH SYNOPSIS
-\fB#include <curses.h>\fP
-.sp
-\fBconst char * curses_version(void);\fP
-.br
-\fBint use_extended_names(bool \fP\fIenable\fP\fB);\fP
+.nf
+\fB#include <curses.h>
+.PP
+\fBconst char * curses_version(void);
+\fBint use_extended_names(bool \fIenable\fP);
+.fi
.SH DESCRIPTION
These functions are extensions to the curses library
which do not fit easily into other categories.
.SS curses_version
-.PP
Use \fBcurses_version\fP
-to get the version number, including patch level of the library, e.g.,
-.B 5.0.19991023
+to get the version number, including patch level of the library,
+prefixed by \*(``ncurses\*('', e.g.,
+.RS
+.sp
+.B ncurses 5.0.19991023
+.RE
.SS use_extended_names
-.PP
The \fBuse_extended_names\fP
function controls whether the calling application
is able to use user-defined or nonstandard names
@@ -62,28 +75,34 @@ extended terminal definitions.
However you can disable this feature
to ensure compatibility with other implementations of curses.
.SH RETURN VALUE
-.PP
\fBcurses_version\fP returns a pointer to static memory; you should not free
this in your application.
.PP
\fBuse_extended_names\fP returns the previous state, allowing you to
save this and restore it.
+.SH EXTENSIONS
+These functions are \fB\%ncurses\fP(3X) extensions,
+and are not found in SVr4
+.IR curses ,
+4.4BSD
+.IR curses ,
+or any other previous curses implementation.
.SH PORTABILITY
-These routines are specific to ncurses.
-They were not supported on
-Version 7, BSD or System V implementations.
-It is recommended that
-any code depending on them be conditioned using NCURSES_VERSION.
-.SH SEE ALSO
-\fBcurs_getch\fR(3X),
-\fBcurs_mouse\fR(3X),
-\fBcurs_print\fR(3X),
-\fBcurs_util\fR(3X),
-\fBdefault_colors\fR(3X),
-\fBdefine_key\fR(3X),
-\fBkeybound\fR(3X),
-\fBkeyok\fR(3X),
-\fBresizeterm\fR(3X),
-\fBwresize\fR(3X).
-.SH AUTHOR
+Applications employing
+.I \%ncurses
+extensions should condition their use on the visibility of the
+.B \%NCURSES_VERSION
+preprocessor macro.
+.SH AUTHORS
Thomas Dickey.
+.SH SEE ALSO
+\fB\%curs_getch\fP(3X),
+\fB\%curs_mouse\fP(3X),
+\fB\%curs_print\fP(3X),
+\fB\%curs_util\fP(3X),
+\fB\%default_colors\fP(3X),
+\fB\%define_key\fP(3X),
+\fB\%keybound\fP(3X),
+\fB\%keyok\fP(3X),
+\fB\%resizeterm\fP(3X),
+\fB\%wresize\fP(3X)
diff --git a/man/curs_get_wch.3x b/man/curs_get_wch.3x
index dfa5c7e914de..02932b91a6e4 100644
--- a/man/curs_get_wch.3x
+++ b/man/curs_get_wch.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 2002-2016,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,159 +27,233 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_get_wch.3x,v 1.14 2020/10/17 23:17:05 tom Exp $
-.TH curs_get_wch 3X ""
-.na
-.hy 0
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: curs_get_wch.3x,v 1.40 2024/04/20 19:23:03 tom Exp $
+.TH curs_get_wch 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
.SH NAME
-\fBget_wch\fR,
-\fBwget_wch\fR,
-\fBmvget_wch\fR,
-\fBmvwget_wch\fR,
-\fBunget_wch\fR \- get (or push back) a wide character from curses terminal keyboard
-.ad
-.hy
+\fB\%get_wch\fP,
+\fB\%wget_wch\fP,
+\fB\%mvget_wch\fP,
+\fB\%mvwget_wch\fP,
+\fB\%unget_wch\fP \-
+get (or push back) a wide character from \fIcurses\fR terminal keyboard
.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\fBint get_wch(wint_t *\fR\fIwch\fR\fB);\fR
-.br
-\fBint wget_wch(WINDOW *\fR\fIwin\fR\fB, wint_t *\fR\fIwch\fR\fB);\fR
-.br
-\fBint mvget_wch(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wint_t *\fR\fIwch\fR\fB);\fR
-.br
-\fBint mvwget_wch(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wint_t *\fR\fIwch\fR\fB);\fR
-.sp
-\fBint unget_wch(const wchar_t \fR\fIwch\fR\fB);\fR
+.nf
+\fB#include <curses.h>
+.PP
+\fBint get_wch(wint_t *\fIwch\fP);
+\fBint wget_wch(WINDOW *\fIwin\fP, wint_t *\fIwch\fP);
+\fBint mvget_wch(int \fIy\fP, int \fIx\fP, wint_t *\fIwch\fP);
+\fBint mvwget_wch(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, wint_t *\fIwch\fP);
+.PP
+\fBint unget_wch(const wchar_t \fIwc\fP);
+.fi
.SH DESCRIPTION
-The
-\fBget_wch\fR,
-\fBwget_wch\fR,
-\fBmvget_wch\fR, and
-\fBmvwget_wch\fR
-functions read a character
-from the terminal associated with the current or specified window.
-In no-delay mode,
-if no input is waiting, the value \fBERR\fR is returned.
-In delay mode,
-the program waits until the system passes text through to the program.
-Depending on the setting of \fBcbreak\fR,
-this is after one character (cbreak mode),
-or after the first newline (nocbreak mode).
-In half-delay mode,
-the program waits until the user types a character or the specified
-timeout interval has elapsed.
+.SS "Reading Characters"
+.B \%wget_wch
+gathers a key stroke
+.I wch
+from the terminal keyboard associated with a
+.I curses
+window
+.IR win ,
+returning
+.B OK
+if a wide character is read,
+.B \%KEY_CODE_YES
+if a function key is read,
+and
+.B ERR
+if no key event is available.
+\fB\%ncurses\fP(3X) describes the variants of this function.
.PP
-Unless \fBnoecho\fR has been set,
-these routines echo the character into the designated window.
+When input is pending,
+.B \%wget_wch
+stores an integer
+identifying the key stroke in
+.IR wch ;
+for alphanumeric and punctuation keys,
+this value corresponds to the character encoding used by the terminal.
+Use of the control key as a modifier often results in a distinct code.
+The behavior of other keys depends on whether
+.I win
+is in keypad mode;
+see subsections \*(``Keypad Mode\*('' and \*(``Predefined Key Codes\*(''
+in \fB\%getch\fP(3X).
.PP
-If the window is not a pad and has been moved or modified since the
-last call to \fBwrefresh\fR,
-\fBwrefresh\fR will be called before another character is read.
+If no input is pending,
+then if the no-delay flag is set in the window
+(see \fB\%nodelay\fP(3X)),
+the function returns
+.BR ERR ;
+otherwise,
+.I curses
+waits until the terminal has input.
+If \fB\%cbreak\fP(3X)
+has been called,
+this happens after one character is read.
+If \fB\%nocbreak\fP(3X)
+has been called,
+it occurs when the next newline is read.
+If \fB\%halfdelay\fP(3X)
+has been called,
+.I curses
+waits until a character is typed or the specified delay elapses.
.PP
-If \fBkeypad\fR is enabled,
-these functions respond to
-the pressing of a function key by setting the object pointed to by
-\fIwch\fR
-to the keycode assigned to the function key,
-and returning \fBKEY_CODE_YES\fR.
-If a character (such as escape) that could be the
-beginning of a function key is received, curses sets a timer.
-If the remainder
-of the sequence does arrive within the designated time, curses passes through
-the character; otherwise, curses returns the function key value.
-For this
-reason, many terminals experience a delay between the time a user presses
-the escape key and the time the escape is returned to the program.
+If \fB\%echo\fP(3X) has been called,
+and the window is not a pad,
+.I curses
+writes
+.I wch
+to the window
+(at the cursor position)
+per the following rules.
+.bP
+If
+.I wch
+matches the terminal's erase character,
+the cursor moves leftward one position
+and the new position is erased
+as if \fB\%wmove\fP(3X) and then \fB\%wdelch\fP(3X) were called.
+When the window's keypad mode is enabled
+(see below),
+.B \%KEY_LEFT
+and
+.B \%KEY_BACKSPACE
+are handled the same way.
+.bP
+.I curses
+writes any other
+.I wch
+to the window,
+as with \fB\%wecho_wchar\fP(3X).
+.bP
+If the window has been moved or modified since the last call to
+\fB\%wrefresh\fP(3X),
+.I curses
+calls
+.BR \%wrefresh .
.PP
-The keycodes returned by these functions are the same as those
-returned by \fBwgetch\fP:
+If
+.I wch
+is a carriage return and \fBnl\fP(3X) has been called,
+.B \%wgetch
+stores the the character code for newline
+(line feed)
+in
+.I wch
+instead.
+.SS "Ungetting Characters"
+.B \%unget_wch
+places
+.I wch
+into the input queue to be returned by the next call to
+.BR \%wget_wch .
+A single input queue serves all windows.
+.SH RETURN VALUE
+.B \%wget_wch
+returns
+.B OK
+when it reads a wide character and
+.B \%KEY_CODE_YES
+when it reads a function key code.
+It returns
+.B ERR
+if
.bP
-The predefined function
-keys are listed in \fB<curses.h>\fR as macros with values outside the range
-of 8-bit characters.
-Their names begin with \fBKEY_\fR.
+the
+.I \%WINDOW
+pointer is
+.BR NULL ,
+or
.bP
-Other (user-defined) function keys
-which may be defined using \fBdefine_key\fP(3X) have no names,
-but also are expected to have values outside the range of 8-bit characters.
+its timeout expires without any data arriving,
+or
+.bP
+execution was interrupted by a signal,
+in which case
+.B \%errno
+is set to
+.BR \%EINTR .
+.PP
+Functions prefixed with \*(``mv\*('' first perform cursor movement and
+fail if the position
+.RI ( y ,
+.IR x )
+is outside the window boundaries.
.PP
-The
-\fBunget_wch\fR
-function pushes the wide character
-\fIwch\fR
-back onto the head of the input queue, so the wide character
-is returned by the next call to
-\fBget_wch\fR.
-The pushback of
-one character is guaranteed.
-If the program calls
-\fBunget_wch\fR
-too many times without an intervening call to
-\fBget_wch\fR,
-the operation may fail.
+.B \%unget_wch
+returns
+.B OK
+on success and
+.B ERR
+if there is no more room in the input queue.
.SH NOTES
-The header file
-\fB<curses.h>\fR
-automatically
-includes the header file
-\fB<stdio.h>\fR.
+See the \*(``NOTES\*('' section of \fB\%wgetch\fP(3X).
.PP
-Applications should not define the escape key by itself as a single-character
-function.
+All of these functions except
+.B \%wget_wch
+and
+.B \%unget_wch
+may be implemented as macros.
.PP
-When using
-\fBget_wch\fR,
-\fBwget_wch\fR,
-\fBmvget_wch\fR, or
-\fBmvwget_wch\fR, applications should
-not use
-\fBnocbreak\fR
-mode and
-\fBecho\fR
-mode
-at the same time.
-Depending on the state of the tty driver when each character
-is typed, the program may produce undesirable results.
+Unlike \fB\%wgetch\fP(3X),
+.B \%wget_wch
+and its variants store the value of the input character in an additional
+.I wch
+parameter instead of the return value.
.PP
-All functions except \fBwget_wch\fR and \fBunget_wch\fR
-may be macros.
-.SH RETURN VALUE
-When
-\fBget_wch\fR,
-\fBwget_wch\fR,
-\fBmvget_wch\fR, and
-\fBmvwget_wch\fR
-functions successfully
-report the pressing of a function key, they return
-\fBKEY_CODE_YES\fR.
-When they successfully report a wide character, they return
-\fBOK\fR.
-Otherwise, they return
-\fBERR\fR.
+Unlike
+.BR \%ungetch ,
+.B \%unget_wch
+cannot distinguish function key codes
+.B \%wget_wch
+from conventional character codes.
+An application can overcome this limitation by pushing function key
+codes with
+.B \%ungetch
+and subsequently checking the return value of
+.B \%wget_wch
+for a match with
+.BR \%KEY_CODE_YES .
+.SH EXTENSIONS
+See the \*(``EXTENSIONS\*('' section of \fB\%wgetch\fP(3X).
+.SH PORTABILITY
+Applications employing
+.I \%ncurses
+extensions should condition their use on the visibility of the
+.B \%NCURSES_VERSION
+preprocessor macro.
.PP
-Upon successful completion,
-\fBunget_wch\fR
-returns
-\fBOK\fR.
-Otherwise, the function returns
-\fBERR\fR.
+X/Open Curses,
+Issue 4 describes these functions.
+It specifies no error conditions for them.
.PP
-Functions with a \*(``mv\*('' prefix first perform a cursor movement using
-\fBwmove\fP, and return an error if the position is outside the window,
-or if the window pointer is null.
+See the \*(``PORTABILITY\*('' section of \fB\%wgetch\fP(3X) regarding
+the interaction of
+.B \%wget_wch
+with signal handlers.
.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBcurs_getch\fR(3X),
-\fBcurs_ins_wch\fR(3X),
-\fBcurs_inopts\fR(3X),
-\fBcurs_move\fR(3X),
-\fBcurs_refresh\fR(3X)
+\fB\%curs_getch\fP(3X) describes comparable functions of the
+.I \%ncurses
+library in its non-wide-character configuration.
+.PP
+\fB\%curses\fP(3X),
+\fB\%curs_add_wch\fP(3X),
+\fB\%curs_inopts\fP(3X),
+\fB\%curs_move\fP(3X),
+\fB\%curs_refresh\fP(3X)
diff --git a/man/curs_get_wstr.3x b/man/curs_get_wstr.3x
index 112208ae918e..32ae541abaf9 100644
--- a/man/curs_get_wstr.3x
+++ b/man/curs_get_wstr.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 2002-2012,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,175 +27,180 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_get_wstr.3x,v 1.21 2020/10/17 23:17:24 tom Exp $
-.TH curs_get_wstr 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: curs_get_wstr.3x,v 1.48 2024/04/20 19:18:18 tom Exp $
+.TH curs_get_wstr 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
-.na
-.hy 0
.SH NAME
-\fBget_wstr\fR,
-\fBgetn_wstr\fR,
-\fBwget_wstr\fR,
-\fBwgetn_wstr\fR,
-\fBmvget_wstr\fR,
-\fBmvgetn_wstr\fR,
-\fBmvwget_wstr\fR,
-\fBmvwgetn_wstr\fR \- get an array of wide characters from a curses terminal keyboard
-.ad
-.hy
+\fB\%get_wstr\fP,
+\fB\%getn_wstr\fP,
+\fB\%wget_wstr\fP,
+\fB\%wgetn_wstr\fP,
+\fB\%mvget_wstr\fP,
+\fB\%mvgetn_wstr\fP,
+\fB\%mvwget_wstr\fP,
+\fB\%mvwgetn_wstr\fP \-
+get a wide-character string from a \fIcurses\fR terminal keyboard
.SH SYNOPSIS
.nf
-\fB#include <curses.h>\fR
-.sp
-\fBint get_wstr(wint_t *\fR\fIwstr\fR\fB);\fR
-.br
-\fBint getn_wstr(wint_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR
-.br
-\fBint wget_wstr(WINDOW *\fR\fIwin\fR\fB, wint_t *\fR\fIwstr\fR\fB);\fR
-.br
-\fBint wgetn_wstr(WINDOW *\fR\fIwin\fR\fB, wint_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR
-.sp
-\fBint mvget_wstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wint_t *\fR\fIwstr\fR\fB);\fR
-.br
-\fBint mvgetn_wstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wint_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR
-.br
-\fBint mvwget_wstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wint_t *\fR\fIwstr\fR\fB);\fR
-.br
-\fBint mvwgetn_wstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wint_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR
+\fB#include <curses.h>
+.PP
+\fBint get_wstr(wint_t *\fIwstr\fP);
+\fBint getn_wstr(wint_t *\fIwstr\fP, int \fIn\fP);
+\fBint wget_wstr(WINDOW *\fIwin\fP, wint_t *\fIwstr\fP);
+\fBint wgetn_wstr(WINDOW *\fIwin\fP, wint_t *\fIwstr\fP, int \fIn\fP);
+.PP
+\fBint mvget_wstr(int \fIy\fP, int \fIx\fP, wint_t *\fIwstr\fP);
+\fBint mvgetn_wstr(int \fIy\fP, int \fIx\fP, wint_t *\fIwstr\fP, int \fIn\fP);
+\fBint mvwget_wstr(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, wint_t *\fIwstr\fP);
+\fBint mvwgetn_wstr(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, wint_t *\fIwstr\fP, int \fIn\fP);
.fi
.SH DESCRIPTION
-The effect of
-\fBget_wstr\fR
-is as though a series of calls
-to
-\fBget_wch\fR(3X)
-were made, until a newline, other end-of-line,
-or end-of-file condition is processed.
-An end-of-file condition is represented by \fBWEOF\fR,
-as defined in \fB<wchar.h>\fR.
-The newline and end-of-line conditions are represented
-by the \fB\\n\fR \fBwchar_t\fR value.
-In all instances, the end of the string is terminated by a null \fBwchar_t\fR.
-The routine places resulting values in the area pointed to by \fIwstr\fR.
-.PP
-The user's erase and kill characters are interpreted.
-If keypad
-mode is on for the window, \fBKEY_LEFT\fR and \fBKEY_BACKSPACE\fR
-are both considered equivalent to the user's kill character.
-.PP
-Characters input are echoed only if \fBecho\fR is currently on.
+The function
+\fBwgetn_wstr\fP
+is equivalent to a series of calls to
+\fBwget_wch\fP(3X)
+until a newline or carriage return terminates the series:
+.bP
+The terminating character is not included in the returned string.
+.bP
+An end-of-file condition is represented by \fBWEOF\fP,
+as defined in \fB<wchar.h>\fP.
+.bP
+In all instances, the end of the string is terminated
+by a null \fBwchar_t\fP.
+.bP
+The function stores the result in the area pointed to
+by the \fIwstr\fP parameter.
+.bP
+The function reads at most \fIn\fP characters,
+thus preventing a possible overflow of the input buffer.
+.IP
+Any attempt to enter more characters
+(other than the terminating newline or carriage return)
+causes a beep.
+.IP
+Function keys also cause a beep and are ignored.
+.PP
+The user's \fIerase\fP and \fIkill\fP characters are interpreted:
+.bP
+The \fIerase\fP character (e.g., \fB^H\fP) erases the character
+at the end of the buffer, moving the cursor to the left.
+.IP
+If \fIkeypad\fP mode is on for the window,
+\fBKEY_LEFT\fP and \fBKEY_BACKSPACE\fP
+are both considered equivalent to the user's \fIerase\fP character.
+.bP
+The \fIkill\fP character (e.g., \fB^U\fP) erases the entire buffer,
+leaving the cursor at the beginning of the buffer.
+.PP
+Characters input are echoed only if \fBecho\fP is currently on.
In that case,
-backspace is echoed as deletion of the previous character (typically a left
-motion).
-.PP
-The effect of
-\fBwget_wstr\fR
-is as though a series of
-calls to
-\fBwget_wch\fR
-were made.
-.PP
-The effect of
-\fBmvget_wstr\fR
-is as though a call to
-\fBmove\fR
-and then a series of calls to
-\fBget_wch\fR
-were
-made.
-.PP
-The effect of
-\fBmvwget_wstr\fR
-is as though a call to
-\fBwmove\fR
-and then a series of calls to
-\fBwget_wch\fR
-were made.
+backspace is echoed as deletion of the previous character
+(typically a left motion).
.PP
The
-\fBgetn_wstr\fR,
-\fBmvgetn_wstr\fR,
-\fBmvwgetn_wstr\fR, and
-\fBwgetn_wstr\fR
+\fBgetn_wstr\fP,
+\fBmvgetn_wstr\fP,
+\fBmvwgetn_wstr\fP, and
+\fBwgetn_wstr\fP
functions are identical
to the
-\fBget_wstr\fR,
-\fBmvget_wstr\fR,
-\fBmvwget_wstr\fR, and
-\fBwget_wstr\fR
+\fBget_wstr\fP,
+\fBmvget_wstr\fP,
+\fBmvwget_wstr\fP, and
+\fBwget_wstr\fP
functions, respectively,
except that the
-\fB*n_*\fR
+\fB*n_*\fP
versions read at most
-\fIn\fR
+\fIn\fP
characters, letting the application prevent overflow of the
input buffer.
+.SH RETURN VALUE
+All of these functions return the integer \fBOK\fP upon successful completion.
+If unsuccessful, they return \fBERR\fP.
+.PP
+X/Open defines no error conditions.
+.PP
+In this implementation,
+these functions return an error
+.bP
+if the window pointer is null,
+.bP
+if its timeout expires without having any data, or
+.bP
+if the associated call to
+\fBwget_wch\fP
+failed.
+.PP
+Functions prefixed with \*(``mv\*('' first perform cursor movement and
+fail if the position
+.RI ( y ,
+.IR x )
+is outside the window boundaries.
.SH NOTES
+Any of these functions other than
+\fBwgetn_wstr\fP
+may be macros.
+.PP
Using
-\fBget_wstr\fR,
-\fBmvget_wstr\fR,
-\fBmvwget_wstr\fR, or
-\fBwget_wstr\fR
+\fBget_wstr\fP,
+\fBmvget_wstr\fP,
+\fBmvwget_wstr\fP, or
+\fBwget_wstr\fP
to read a line that
overflows the array pointed to by
-\fBwstr\fR
+\fBwstr\fP
causes undefined
results.
The use of
-\fBgetn_wstr\fR,
-\fBmvgetn_wstr\fR,
-\fBmvwgetn_wstr\fR, or
-\fBwgetn_wstr\fR, respectively, is recommended.
+\fBgetn_wstr\fP,
+\fBmvgetn_wstr\fP,
+\fBmvwgetn_wstr\fP, or
+\fBwgetn_wstr\fP,
+respectively, is recommended.
.PP
-These functions cannot return \fBKEY_\fR values because there
-is no way to distinguish a \fBKEY_\fR value from a valid \fBwchar_t\fR value.
-.PP
-All of these routines except \fBwgetn_wstr\fR may be macros.
-.SH RETURN VALUE
-All of these functions return \fBOK\fR upon successful completion.
-Otherwise, they return \fBERR\fR.
-.PP
-Functions using a window parameter return an error if it is null.
-.RS
-.TP 5
-\fBwgetn_wstr\fP
-returns an error if the associated call to \fBwget_wch\fP failed.
-.RE
-.PP
-Functions with a \*(``mv\*('' prefix first perform a cursor movement using
-\fBwmove\fP, and return an error if the position is outside the window,
-or if the window pointer is null.
+These functions cannot return \fBKEY_\fP values because there
+is no way to distinguish a \fBKEY_\fP value from a valid \fBwchar_t\fP value.
.SH PORTABILITY
These functions are described in The Single Unix Specification, Version 2.
No error conditions are defined.
+.PP
This implementation returns \fBERR\fP if the window pointer is null,
-or if the lower-level \fBwget_wch\fR call returns an \fBERR\fP.
+or if the lower-level \fBwget_wch\fP call returns an \fBERR\fP.
In the latter case,
an \fBERR\fP return without other data is treated as an end-of-file condition,
-and the returned array contains a \fBWEOF\fR followed by a null \fBwchar_t\fR.
+and the returned array contains a \fBWEOF\fP followed by a null \fBwchar_t\fP.
.PP
-X/Open curses documented these functions to pass an array of \fBwchar_t\fR
+X/Open curses documented these functions to pass an array of \fBwchar_t\fP
in 1997, but that was an error because of this part of the description:
.RS
.PP
-The effect of \fIget_wstr()\fP is as though a series of calls to
-\fIget_wch()\fP were made, until a newline character, end-of-line character, or
+The effect of \fBget_wstr\fP is as though a series of calls to
+\fBget_wch\fP were made, until a newline character, end-of-line character, or
end-of-file character is processed.
.RE
.PP
-The latter function \fIget_wch()\fP can return a negative value,
+The latter function \fIget_wch\fP can return a negative value,
while \fBwchar_t\fP is a unsigned type.
-All of the vendors implement this using \fBwint_t\fR, following the standard.
+All of the vendors implement this using \fBwint_t\fP, following the standard.
.PP
X/Open Curses, Issue 7 (2009) is unclear regarding whether
-the terminating \fInull \fP\fBwchar_t\fP
+the terminating \fInull \fBwchar_t\fR
value is counted in the length parameter \fIn\fP.
X/Open Curses, Issue 7 revised the corresponding description
of \fBwgetnstr\fP to address this issue.
@@ -205,15 +210,17 @@ This implementation counts the terminator in the length.
X/Open Curses does not specify what happens if the length \fIn\fP is negative.
.bP
For analogy with \fBwgetnstr\fP,
-ncurses 6.2 uses a limit (based on \fBLINE_MAX\fP).
+\fI\%ncurses\fP 6.2 uses a limit (based on \fBLINE_MAX\fP).
.bP
Some other implementations (such as Solaris xcurses) do the same,
while others (PDCurses) do not allow this.
.bP
-NetBSD 7 curses imitates ncurses 6.1 in this regard,
+NetBSD 7 curses imitates \fI\%ncurses\fP 6.1 in this regard,
treating a \fB\-1\fP as an indefinite number of characters.
.SH SEE ALSO
-Functions:
-\fBcurses\fR(3X),
-\fBcurs_get_wch\fR(3X),
-\fBcurs_getstr\fR(3X).
+\fB\%curs_getstr\fP(3X) describes comparable functions of the
+.I \%ncurses
+library in its non-wide-character configuration.
+.PP
+\fB\%curses\fP(3X),
+\fB\%curs_get_wch\fP(3X)
diff --git a/man/curs_getcchar.3x b/man/curs_getcchar.3x
index fafe78251461..523cc99df92c 100644
--- a/man/curs_getcchar.3x
+++ b/man/curs_getcchar.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2019,2020 Thomas E. Dickey *
+.\" Copyright 2019-2023,2024 Thomas E. Dickey *
.\" Copyright 2001-2015,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,73 +27,64 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_getcchar.3x,v 1.24 2020/02/02 23:34:34 tom Exp $
-.TH curs_getcchar 3X ""
+.\" $Id: curs_getcchar.3x,v 1.49 2024/04/20 18:55:09 tom Exp $
+.TH curs_getcchar 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
.SH NAME
-\fBgetcchar\fP,
-\fBsetcchar\fP \- Get a wide character string and rendition from a \fBcchar_t\fP or set a \fBcchar_t\fP from a wide-character string
+\fB\%getcchar\fP,
+\fB\%setcchar\fP \-
+convert between a wide-character string and a \fIcurses\fR complex character
.SH SYNOPSIS
-\fB#include <curses.h>\fP
-.sp
-\fBint getcchar(\fP
-.br
-.B " const cchar_t *\fIwcval\fP,"
-.br
-.B " wchar_t *\fIwch\fP,"
-.br
+.nf
+\fB#include <curses.h>
+.PP
+\fBint getcchar(
+.B " const cchar_t *\fIwch\fP,"
+.B " wchar_t *\fIwc\fP,"
.B " attr_t *\fIattrs\fP,"
-.br
.B " short *\fIcolor_pair\fP,"
-.br
.B " void *\fIopts\fP );"
-.sp
+.PP
.B "int setcchar("
-.br
-.B " cchar_t *\fIwcval\fP,"
-.br
-.B " const wchar_t *\fIwch\fP,"
-.br
+.B " cchar_t *\fIwch\fP,"
+.B " const wchar_t *\fIwc\fP,"
.B " const attr_t \fIattrs\fP,"
-.br
.B " short \fIcolor_pair\fP,"
-.br
.B " const void *\fIopts\fP );"
+.fi
.SH DESCRIPTION
.SS getcchar
-.PP
The \fBgetcchar\fP function gets a wide-character string
and rendition from a \fBcchar_t\fP argument.
-When \fIwch\fP is not a null pointer,
+When \fIwc\fP is not a null pointer,
the \fBgetcchar\fP function does the following:
.bP
-Extracts information from a \fBcchar_t\fP value \fIwcval\fP
+Extracts information from a \fBcchar_t\fP value \fIwch\fP
.bP
Stores the character attributes in the location pointed to by \fIattrs\fP
.bP
-Stores the color-pair in the location pointed to by \fIcolor_pair\fP
+Stores the color pair in the location pointed to by \fIcolor_pair\fP
.bP
Stores the wide-character string,
-characters referenced by \fIwcval\fP, into the array pointed to by \fIwch\fP.
+characters referenced by \fIwch\fP, into the array pointed to by \fIwc\fP.
.PP
When
-\fIwch\fP
+\fIwc\fP
is a null pointer, the
\fBgetcchar\fP
function does the following:
.bP
-Obtains the number of wide characters pointed to by \fIwcval\fP
+Obtains the number of wide characters pointed to by \fIwch\fP
.bP
Does not change the data referenced by
\fIattrs\fP
or
\fIcolor_pair\fP
.SS setcchar
-.PP
-The \fBsetcchar\fP function initializes the location pointed to by \fIwcval\fP
+The \fBsetcchar\fP function initializes the location pointed to by \fIwch\fP
by using:
.bP
The character attributes in
@@ -102,22 +93,37 @@ The character attributes in
The color pair in
\fIcolor_pair\fP
.bP
-The wide-character string pointed to by \fIwch\fP.
-The string must be L'\\0' terminated,
+The wide-character string pointed to by \fIwc\fP.
+The string must be L'\e0' terminated,
contain at most one spacing character,
which must be the first.
.IP
-Up to \fBCCHARW_MAX\fP\-1 nonspacing characters may follow.
-Additional nonspacing characters are ignored.
+Up to \fBCCHARW_MAX\fP\-1 non-spacing characters may follow.
+Additional non-spacing characters are ignored.
.IP
The string may contain a single control character instead.
-In that case, no nonspacing characters are allowed.
-.SH EXTENSIONS
+In that case, no non-spacing characters are allowed.
+.SH RETURN VALUE
+When \fIwc\fP is a null pointer,
+\fBgetcchar\fP returns the number of wide characters referenced by
+\fIwch\fP,
+including one for a trailing null.
.PP
+When \fIwc\fP is not a null pointer,
+\fBgetcchar\fP returns \fBOK\fP upon successful completion,
+and \fBERR\fP otherwise.
+.PP
+Upon successful completion, \fBsetcchar\fP returns \fBOK\fP.
+Otherwise, it returns \fBERR\fP.
+.SH NOTES
+The \fIwch\fP argument may be a value generated by a call to
+\fBsetcchar\fP or by a function that has a \fBcchar_t\fP output argument.
+If \fIwch\fP is constructed by any other means, the effect is unspecified.
+.SH EXTENSIONS
X/Open Curses documents the \fIopts\fP argument as reserved for future use,
saying that it must be null.
-This implementation
-uses that parameter in ABI 6 for the functions which have a color-pair
+This implementation
+uses that parameter in ABI 6 for the functions which have a color pair
parameter to support extended color pairs:
.bP
For functions which modify the color, e.g., \fBsetcchar\fP,
@@ -128,26 +134,8 @@ For functions which retrieve the color, e.g., \fBgetcchar\fP,
if \fIopts\fP is set it is treated as a pointer to \fBint\fP,
and used to retrieve the color pair as an \fBint\fP value,
in addition retrieving it via the standard pointer to \fBshort\fP parameter.
-.SH NOTES
-.PP
-The \fIwcval\fP argument may be a value generated by a call to
-\fBsetcchar\fP or by a function that has a \fBcchar_t\fP output argument.
-If \fIwcval\fP is constructed by any other means, the effect is unspecified.
-.SH RETURN VALUE
-.PP
-When \fIwch\fP is a null pointer,
-\fBgetcchar\fP returns the number of wide characters referenced by
-\fIwcval\fP,
-including one for a trailing null.
-.PP
-When \fIwch\fP is not a null pointer,
-\fBgetcchar\fP returns \fBOK\fP upon successful completion,
-and \fBERR\fP otherwise.
-.PP
-Upon successful completion, \fBsetcchar\fP returns \fBOK\fP.
-Otherwise, it returns \fBERR\fP.
.SH PORTABILITY
-The \fBCCHARW_MAX\fP symbol is specific to ncurses.
+The \fBCCHARW_MAX\fP symbol is specific to \fI\%ncurses\fP.
X/Open Curses does not provide details for the layout of the \fBcchar_t\fP
structure.
It tells what data are stored in it:
@@ -177,7 +165,7 @@ characters \fIz\fP and a single spacing character \fIc\fP.
HP-UX\ 10 uses an opaque structure with 28 bytes,
which is large enough for the 6 \fBwchar_t\fP values.
.bP
-Solaris xpg4 curses uses a single array of 6 \fBwchar_t\fP values.
+Solaris \fIxpg4\fP curses uses a single array of 6 \fBwchar_t\fP values.
.PP
This implementation's \fBcchar_t\fP was defined in 1995
using \fB5\fP for the total of spacing and non-spacing characters
@@ -194,9 +182,7 @@ including using them for ligatures between characters
Unicode does not limit the (analogous) number of combining characters,
so some applications may be affected.
.SH SEE ALSO
-.PP
-Functions:
-\fBcurs_attr\fR(3X),
-\fBcurs_color\fR(3X),
-\fBcurses\fR(3X),
-\fBwcwidth\fR(3).
+\fB\%curses\fP(3X),
+\fB\%curs_attr\fP(3X),
+\fB\%curs_color\fP(3X),
+\fB\%wcwidth\fP(3)
diff --git a/man/curs_getch.3x b/man/curs_getch.3x
index a8c4bc1f080b..9433c6148583 100644
--- a/man/curs_getch.3x
+++ b/man/curs_getch.3x
@@ -1,6 +1,6 @@
'\" t
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2016,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,391 +28,670 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_getch.3x,v 1.57 2020/12/19 21:38:20 tom Exp $
-.TH curs_getch 3X ""
-.na
-.hy 0
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: curs_getch.3x,v 1.87 2024/04/20 19:18:18 tom Exp $
+.TH curs_getch 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.ds ^ \(ha
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.ds ^ ^
+.\}
+.
+.ie \n(.g .ds : \:
+.el .ds : \" empty
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
.SH NAME
-\fBgetch\fR,
-\fBwgetch\fR,
-\fBmvgetch\fR,
-\fBmvwgetch\fR,
-\fBungetch\fR,
-\fBhas_key\fR \- get (or push back) characters from \fBcurses\fR terminal keyboard
-.ad
-.hy
+\fB\%getch\fP,
+\fB\%wgetch\fP,
+\fB\%mvgetch\fP,
+\fB\%mvwgetch\fP,
+\fB\%ungetch\fP,
+\fB\%has_key\fP \-
+get (or push back) characters from \fIcurses\fR terminal keyboard
.SH SYNOPSIS
-\fB#include <curses.h>\fR
+.nf
+.B #include <curses.h>
.PP
-\fBint getch(void);\fR
-.br
-\fBint wgetch(WINDOW *\fP\fIwin);\fR
-.sp
-\fBint mvgetch(int \fP\fIy\fP\fB, int \fP\fIx\fP\fB);\fR
-.br
-\fBint mvwgetch(WINDOW *\fP\fIwin\fP\fB, int \fP\fIy\fP\fB, int \fP\fIx\fP\fB);\fR
-.sp
-\fBint ungetch(int \fP\fIch\fP\fB);\fR
-.sp
-/* extension */
-.br
-\fBint has_key(int \fP\fIch\fP\fB);\fR
-.br
+.B int getch(void);
+.B int wgetch(WINDOW *\fIwin\fP);
+.B int mvgetch(int \fIy\fP, int \fIx\fP);
+.B int mvwgetch(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP);
+.PP
+.B int ungetch(int \fIc\fP);
+.PP
+.\" XXX: Move has_key into its own page like define_key and key_defined?
+\fI/* extension */\fP
+.B int has_key(int \fIc\fP);
+.fi
.SH DESCRIPTION
-.SS Reading characters
-The \fBgetch\fR, \fBwgetch\fR, \fBmvgetch\fR and \fBmvwgetch\fR, routines read
-a character from the window.
-In no-delay mode, if no input is waiting, the value \fBERR\fR is returned.
-In delay mode, the program waits until the system
-passes text through to the program.
-Depending on the setting of \fBcbreak\fR,
-this is after one character (cbreak mode),
-or after the first newline (nocbreak mode).
-In half-delay mode,
-the program waits until a character is typed or the
-specified timeout has been reached.
-.PP
-If \fBecho\fR is enabled, and the window is not a pad,
-then the character will also be echoed into the
-designated window according to the following rules:
-.bP
-If the character is the current erase character, left arrow, or backspace,
-the cursor is moved one space to the left and that screen position is erased
-as if \fBdelch\fR had been called.
+.SS "Reading Characters"
+.B \%wgetch
+gathers a key stroke from the terminal keyboard associated with a
+.I curses
+window
+.IR win .
+\fB\%ncurses\fP(3X) describes the variants of this function.
+.PP
+When input is pending,
+.B \%wgetch
+returns an integer identifying the key stroke;
+for alphanumeric and punctuation keys,
+this value corresponds to the character encoding used by the terminal.
+Use of the control key as a modifier often results in a distinct code.
+The behavior of other keys depends on whether
+.I win
+is in keypad mode;
+see subsection \*(``Keypad Mode\*('' below.
+.PP
+If no input is pending,
+then if the no-delay flag is set in the window
+(see \fB\%nodelay\fP(3X)),
+the function returns
+.BR ERR ;
+otherwise,
+.I curses
+waits until the terminal has input.
+If \fB\%cbreak\fP(3X)
+has been called,
+this happens after one character is read.
+If \fB\%nocbreak\fP(3X)
+has been called,
+it occurs when the next newline is read.
+If \fB\%halfdelay\fP(3X)
+has been called,
+.I curses
+waits until a character is typed or the specified delay elapses.
+.PP
+If \fB\%echo\fP(3X) has been called,
+and the window is not a pad,
+.I curses
+writes the returned character
+.I c
+to the window
+(at the cursor position)
+per the following rules.
.bP
-If the character value is any other \fBKEY_\fR define, the user is alerted
-with a \fBbeep\fR call.
+If
+.I c
+matches the terminal's erase character,
+the cursor moves leftward one position
+and the new position is erased
+as if \fB\%wmove\fP(3X) and then \fB\%wdelch\fP(3X) were called.
+When the window's keypad mode is enabled
+(see below),
+.B \%KEY_LEFT
+and
+.B \%KEY_BACKSPACE
+are handled the same way.
.bP
-If the character is a carriage-return,
-and if \fBnl\fP is enabled,
-it is translated to a line-feed after echoing.
+.I curses
+writes any other
+.I c
+to the window,
+as with \fB\%wechochar\fP(3X).
.bP
-Otherwise the character is simply output to the screen.
+If the window has been moved or modified since the last call to
+\fB\%wrefresh\fP(3X),
+.I curses
+calls
+.BR \%wrefresh .
.PP
-If the window is not a pad, and it has been moved or modified since the last
-call to \fBwrefresh\fR, \fBwrefresh\fR will be called before another character
-is read.
-.SS Keypad mode
-.PP
-If \fBkeypad\fR is \fBTRUE\fR, and a function key is pressed, the token for
-that function key is returned instead of the raw characters:
+If
+.I c
+is a carriage return and \fBnl\fP(3X) has been called,
+.B \%wgetch
+returns the character code for line feed instead.
+.SS "Keypad Mode"
+To
+.IR curses ,
+key strokes not from the alphabetic section of the keyboard
+(those corresponding to the ECMA-6 character set\(emsee
+\fIascii\fP(7)\(emoptionally modified by either the control or shift
+keys)
+are treated as
+.I function
+keys.
+(In
+.IR curses ,
+the term \*(``function key\*('' includes but is not limited to keycaps
+engraved with \*(``F1\*('',
+\*(``PF1\*('',
+and so on.)
+If the window is in keypad mode,
+these produce a numeric code corresponding to the
+.B KEY_
+symbols listed in subsection \*(``Predefined Key Codes\*('' below;
+otherwise,
+they transmit a sequence of codes typically starting with the escape
+character,
+and which must be collected with multiple
+.B \%wgetch
+calls.
.bP
-The predefined function
-keys are listed in \fB<curses.h>\fR as macros with values outside the range
-of 8-bit characters.
-Their names begin with \fBKEY_\fR.
+The
+.I \%curses.h
+header file declares many
+.I "predefined function keys"
+whose names begin with
+.BR KEY_ ;
+these object-like macros have values outside the range of eight-bit
+character codes.
.bP
-Other (user-defined) function keys which may be defined
-using \fBdefine_key\fP(3X)
-have no names, but also are expected to have values outside the range of
-8-bit characters.
-.PP
-Thus, a variable
-intended to hold the return value of a function key must be of short size or
-larger.
-.PP
-When a character that could be the beginning of a function key is received
-(which, on modern terminals, means an escape character),
-\fBcurses\fR sets a timer.
-If the remainder of the sequence does not come in within the designated
-time, the character is passed through;
-otherwise, the function key value is returned.
-For this reason, many terminals experience a delay between the time
-a user presses the escape key and the escape is returned to the program.
-.PP
-In \fBncurses\fP, the timer normally expires after
-the value in \fBESCDELAY\fP (see \fBcurs_variables\fP(3X)).
-If \fBnotimeout\fP is \fBTRUE\fP, the timer does not expire;
-it is an infinite (or very large) value.
-Because function keys usually begin with an escape character,
-the terminal may appear to hang in notimeout mode after pressing the escape key
-until another key is pressed.
-.SS Ungetting characters
-.PP
-The \fBungetch\fR routine places \fIch\fR back onto the input queue to be
-returned by the next call to \fBwgetch\fR.
-There is just one input queue for all windows.
-.PP
-.SS Predefined key-codes
-The following special keys are defined in \fB<curses.h>\fR.
+In
+.IR \%ncurses ,
+.I "user-defined function keys"
+are configured with \fB\%define_key\fP(3X);
+they have no names,
+but are also expected to have values outside the range of eight-bit
+codes.
+.PP
+A variable intended to hold a function key code must thus be of type
+.I short
+or larger.
+.PP
+Most terminals one encounters follow the ECMA-48 standard insofar as
+their function keys produce character sequences prefixed with the
+escape character ESC.
+This fact implies that
+.I curses
+cannot know whether the terminal has sent an ESC key stroke or the
+beginning of a function key's character sequence without waiting to see
+if,
+and how soon,
+further input arrives.
+When
+.I curses
+reads such an ambiguous character,
+it sets a timer.
+If the remainder of the sequence does not arrive within the designated
+time,
+.B \%wgetch
+returns the prefix character;
+otherwise,
+it returns the function key code corresponding to the unique sequence
+defined by the terminal.
+Consequently,
+a user of a
+.I curses
+application may experience a delay after pressing ESC while
+.I curses
+disambiguates the input;
+see section \*(``EXTENSIONS\*('' below.
+If the window is in \*(``no time-out\*('' mode,
+the timer does not expire;
+it is an infinite
+(or very large)
+value.
+See \fB\%notimeout\fP(3X).
+Because function key sequences usually begin with an escape character,
+the terminal may appear to hang in no time-out mode after the user has
+pressed ESC.
+Generally,
+further typing \*(``awakens\*(''
+.IR curses .
+.SS "Ungetting Characters"
+.B \%ungetch
+places
+.I c
+into the input queue to be returned by the next call to
+.BR \%wgetch .
+A single input queue serves all windows.
+.SS "Predefined Key Codes"
+The header file
+.I \%curses.h
+defines the following function key codes.
.bP
-Except for the special case \fBKEY_RESIZE\fP,
-it is necessary to enable \fBkeypad\fR for \fBgetch\fP to return these codes.
+Except for the special case of
+.BR \%KEY_RESIZE ,
+a window's keypad mode must be enabled for
+.B \%wgetch
+to read these codes from it.
.bP
Not all of these are necessarily supported on any particular terminal.
.bP
-The naming convention may seem obscure, with some apparent
-misspellings (such as \*(``RSUME\*('' for \*(``resume\*('').
-The names correspond to the long terminfo capability names for the keys,
-and were defined long ago, in the 1980s.
+The naming convention may seem obscure,
+with some apparent misspellings
+(such as \*(``RSUME\*('' for \*(``resume\*('');
+the names correspond to the
+.I \%term\%info
+capability names for the keys,
+and were standardized before the IBM PC/AT keyboard layout achieved a
+dominant position in industry.
.PP
+.RS
+.\" XXX: Move this list into ncurses(3X), rather than duplicating it in
+.\" get_wch(3X) or having that page cross reference this one?
.TS
-center tab(/) ;
-l l .
-\fIName\fR/\fIKey\fR \fIname\fR
-_
-KEY_BREAK/Break key
-KEY_DOWN/The four arrow keys ...
-KEY_UP
-KEY_LEFT
-KEY_RIGHT
-KEY_HOME/Home key (upward+left arrow)
-KEY_BACKSPACE/Backspace
-KEY_F0/T{
-Function keys; space for 64 keys is reserved.
+Lb Lb
+Lb Lx.
+Symbol Key name
+=
+KEY_BREAK Break key
+KEY_DOWN Arrow keys
+KEY_UP \^
+KEY_LEFT \^
+KEY_RIGHT \^
+KEY_HOME Home key (upward+left arrow)
+KEY_BACKSPACE Backspace
+KEY_F0 T{
+Function keys; space for 64 keys is reserved
T}
-KEY_F(\fIn\fR)/T{
-For 0 \(<= \fIn\fR \(<= 63
+KEY_F(\fIn\fP) T{
+Function key \fIn\fP where 0 \(<= \fIn\fP \(<= 63
T}
-KEY_DL/Delete line
-KEY_IL/Insert line
-KEY_DC/Delete character
-KEY_IC/Insert char or enter insert mode
-KEY_EIC/Exit insert char mode
-KEY_CLEAR/Clear screen
-KEY_EOS/Clear to end of screen
-KEY_EOL/Clear to end of line
-KEY_SF/Scroll 1 line forward
-KEY_SR/Scroll 1 line backward (reverse)
-KEY_NPAGE/Next page
-KEY_PPAGE/Previous page
-KEY_STAB/Set tab
-KEY_CTAB/Clear tab
-KEY_CATAB/Clear all tabs
-KEY_ENTER/Enter or send
-KEY_SRESET/Soft (partial) reset
-KEY_RESET/Reset or hard reset
-KEY_PRINT/Print or copy
-KEY_LL/Home down or bottom (lower left)
-KEY_A1/Upper left of keypad
-KEY_A3/Upper right of keypad
-KEY_B2/Center of keypad
-KEY_C1/Lower left of keypad
-KEY_C3/Lower right of keypad
-KEY_BTAB/Back tab key
-KEY_BEG/Beg(inning) key
-KEY_CANCEL/Cancel key
-KEY_CLOSE/Close key
-KEY_COMMAND/Cmd (command) key
-KEY_COPY/Copy key
-KEY_CREATE/Create key
-KEY_END/End key
-KEY_EXIT/Exit key
-KEY_FIND/Find key
-KEY_HELP/Help key
-KEY_MARK/Mark key
-KEY_MESSAGE/Message key
-KEY_MOUSE/Mouse event read
-KEY_MOVE/Move key
-KEY_NEXT/Next object key
-KEY_OPEN/Open key
-KEY_OPTIONS/Options key
-KEY_PREVIOUS/Previous object key
-KEY_REDO/Redo key
-KEY_REFERENCE/Ref(erence) key
-KEY_REFRESH/Refresh key
-KEY_REPLACE/Replace key
-KEY_RESIZE/Screen resized
-KEY_RESTART/Restart key
-KEY_RESUME/Resume key
-KEY_SAVE/Save key
-KEY_SBEG/Shifted beginning key
-KEY_SCANCEL/Shifted cancel key
-KEY_SCOMMAND/Shifted command key
-KEY_SCOPY/Shifted copy key
-KEY_SCREATE/Shifted create key
-KEY_SDC/Shifted delete char key
-KEY_SDL/Shifted delete line key
-KEY_SELECT/Select key
-KEY_SEND/Shifted end key
-KEY_SEOL/Shifted clear line key
-KEY_SEXIT/Shifted exit key
-KEY_SFIND/Shifted find key
-KEY_SHELP/Shifted help key
-KEY_SHOME/Shifted home key
-KEY_SIC/Shifted input key
-KEY_SLEFT/Shifted left arrow key
-KEY_SMESSAGE/Shifted message key
-KEY_SMOVE/Shifted move key
-KEY_SNEXT/Shifted next key
-KEY_SOPTIONS/Shifted options key
-KEY_SPREVIOUS/Shifted prev key
-KEY_SPRINT/Shifted print key
-KEY_SREDO/Shifted redo key
-KEY_SREPLACE/Shifted replace key
-KEY_SRIGHT/Shifted right arrow
-KEY_SRSUME/Shifted resume key
-KEY_SSAVE/Shifted save key
-KEY_SSUSPEND/Shifted suspend key
-KEY_SUNDO/Shifted undo key
-KEY_SUSPEND/Suspend key
-KEY_UNDO/Undo key
+KEY_DL Delete line
+KEY_IL Insert line
+KEY_DC Delete character
+KEY_IC Insert character/Enter insert mode
+KEY_EIC Exit insert character mode
+KEY_CLEAR Clear screen
+KEY_EOS Clear to end of screen
+KEY_EOL Clear to end of line
+KEY_SF Scroll one line forward
+KEY_SR Scroll one line backward (reverse)
+KEY_NPAGE Next page/Page up
+KEY_PPAGE Previous page/Page down
+KEY_STAB Set tab
+KEY_CTAB Clear tab
+KEY_CATAB Clear all tabs
+KEY_ENTER Enter/Send
+KEY_SRESET Soft (partial) reset
+KEY_RESET (Hard) reset
+KEY_PRINT Print/Copy
+KEY_LL Home down/Bottom (lower left)
+KEY_A1 Upper left of keypad
+KEY_A3 Upper right of keypad
+KEY_B2 Center of keypad
+KEY_C1 Lower left of keypad
+KEY_C3 Lower right of keypad
+KEY_BTAB Back tab key
+KEY_BEG Beg(inning) key
+KEY_CANCEL Cancel key
+KEY_CLOSE Close key
+KEY_COMMAND Cmd (command) key
+KEY_COPY Copy key
+KEY_CREATE Create key
+KEY_END End key
+KEY_EXIT Exit key
+KEY_FIND Find key
+KEY_HELP Help key
+KEY_MARK Mark key
+KEY_MESSAGE Message key
+KEY_MOUSE Mouse event occurred
+KEY_MOVE Move key
+KEY_NEXT Next object key
+KEY_OPEN Open key
+KEY_OPTIONS Options key
+KEY_PREVIOUS Previous object key
+KEY_REDO Redo key
+KEY_REFERENCE Ref(erence) key
+KEY_REFRESH Refresh key
+KEY_REPLACE Replace key
+KEY_RESIZE Screen resized
+KEY_RESTART Restart key
+KEY_RESUME Resume key
+KEY_SAVE Save key
+KEY_SELECT Select key
+KEY_SUSPEND Suspend key
+KEY_UNDO Undo key
+_
+KEY_SBEG Shifted beginning key
+KEY_SCANCEL Shifted cancel key
+KEY_SCOMMAND Shifted command key
+KEY_SCOPY Shifted copy key
+KEY_SCREATE Shifted create key
+KEY_SDC Shifted delete character key
+KEY_SDL Shifted delete line key
+KEY_SEND Shifted end key
+KEY_SEOL Shifted clear line key
+KEY_SEXIT Shifted exit key
+KEY_SFIND Shifted find key
+KEY_SHELP Shifted help key
+KEY_SHOME Shifted home key
+KEY_SIC Shifted insert key
+KEY_SLEFT Shifted left arrow key
+KEY_SMESSAGE Shifted message key
+KEY_SMOVE Shifted move key
+KEY_SNEXT Shifted next object key
+KEY_SOPTIONS Shifted options key
+KEY_SPREVIOUS Shifted previous object key
+KEY_SPRINT Shifted print key
+KEY_SREDO Shifted redo key
+KEY_SREPLACE Shifted replace key
+KEY_SRIGHT Shifted right arrow key
+KEY_SRSUME Shifted resume key
+KEY_SSAVE Shifted save key
+KEY_SSUSPEND Shifted suspend key
+KEY_SUNDO Shifted undo key
.TE
+.RE
+.PP
+Many keyboards feature a nine-key directional pad.
.PP
-Keypad is arranged like this:
-.br
+.RS
.TS
-center allbox tab(/) ;
-c c c .
-\fBA1\fR/\fBup\fR/\fBA3\fR
-\fBleft\fR/\fBB2\fR/\fBright\fR
-\fBC1\fR/\fBdown\fR/\fBC3\fR
+allbox center;
+C C C.
+A1 up A3
+left B2 right
+C1 down C3
.TE
+.RE
.sp
-A few of these predefined values do \fInot\fP correspond to a real key:
+Two of the symbols in the list above do
+.I not
+correspond to a physical key.
.bP
-.B KEY_RESIZE
-is returned when the \fBSIGWINCH\fP signal has been detected
-(see \fBinitscr\fP(3X) and \fBresizeterm\fR(3X)).
-This code is returned whether or not \fBkeypad\fP has been enabled.
+.B \%wgetch
+returns
+.BR \%KEY_RESIZE ,
+even if the window's keypad mode is disabled,
+when
+.I \%ncurses
+handles a
+.B \%SIGWINCH
+signal;
+see \fB\%initscr\fP(3X) and \fB\%resizeterm\fP(3X).
.bP
-.B KEY_MOUSE
-is returned for mouse-events (see \fBcurs_mouse\fR(3X)).
-This code relies upon whether or not \fBkeypad\fP(3X) has been enabled,
-because (e.g., with \fIxterm\fP mouse prototocol) ncurses must
-read escape sequences,
-just like a function key.
-.SS Testing key-codes
-.PP
-The \fBhas_key\fR routine takes a key-code value from the above list, and
-returns \fBTRUE\fP or \fBFALSE\fP according to whether
-the current terminal type recognizes a key with that value.
-.PP
-The library also supports these extensions:
-.RS 3
-.TP 5
-.B define_key
-defines a key-code for a given string (see \fBdefine_key\fP(3X)).
-.TP 5
-.B key_defined
-checks if there is a key-code defined for a given
-string (see \fBkey_defined\fP(3X)).
-.RE
-.PP
+.B \%wgetch
+returns
+.B \%KEY_MOUSE
+to indicate that a mouse event is pending collection;
+see \fB\%curs_mouse\fP(3X).
+Receipt of this code requires a window's keypad mode to be enabled,
+because to interpret mouse input
+(as with with \fI\%xterm\fP(1)'s mouse prototocol),
+.I \%ncurses
+must read an escape sequence,
+as with a function key.
+.SS "Testing Key Codes"
+In
+.IR \%ncurses ,
+.B \%has_key
+returns a Boolean value indicating whether the terminal type recognizes
+its parameter as a key code value.
+See also
+\fB\%define_key\fP(3X) and \fB\%key_defined\fP(3X).
.SH RETURN VALUE
-All routines return the integer \fBERR\fR upon failure and an integer value
-other than \fBERR\fR (\fBOK\fR in the case of \fBungetch\fP) upon successful
-completion.
-.RS 3
-.TP 5
-\fBungetch\fP
-returns \fBERR\fP
-if there is no more room in the FIFO.
-.TP
-\fBwgetch\fP
-returns \fBERR\fP
-if the window pointer is null, or
-if its timeout expires without having any data, or
-if the execution was interrupted by a signal (\fBerrno\fR will be set to
-\fBEINTR\fR).
-.RE
+Except for
+.BR \%has_key ,
+these functions return
+.B OK
+on success and
+.B ERR
+on failure.
+.PP
+Functions taking a
+.I \%WINDOW
+pointer argument fail if the pointer is
+.BR NULL .
.PP
-Functions with a \*(``mv\*('' prefix first perform a cursor movement using
-\fBwmove\fP, and return an error if the position is outside the window,
-or if the window pointer is null.
+Functions prefixed with \*(``mv\*('' first perform cursor movement and
+fail if the position
+.RI ( y ,
+.IR x )
+is outside the window boundaries.
+.PP
+.B \%wgetch
+also fails if
+.bP
+its timeout expires without any data arriving,
+or
+.bP
+execution was interrupted by a signal,
+in which case
+.B \%errno
+is set to
+.BR \%EINTR .
+.PP
+.B \%ungetch
+fails if there is no more room in the input queue.
+.PP
+.B \%has_key
+returns
+.B TRUE
+or
+.BR FALSE .
.SH NOTES
-Use of the escape key by a programmer for a single character function is
-discouraged, as it will cause a delay of up to one second while the
-keypad code looks for a following function-key sequence.
-.PP
-Some keys may be the same as commonly used control
-keys, e.g.,
-\fBKEY_ENTER\fP versus control/M,
-\fBKEY_BACKSPACE\fP versus control/H.
-Some curses implementations may differ according to whether they
-treat these control keys specially (and ignore the terminfo), or
-use the terminfo definitions.
-\fBNcurses\fR uses the terminfo definition.
-If it says that \fBKEY_ENTER\fP is control/M,
-\fBgetch\fR will return \fBKEY_ENTER\fP
-when you press control/M.
-.PP
-Generally, \fBKEY_ENTER\fP denotes the character(s) sent by the \fIEnter\fP
-key on the numeric keypad:
+.I curses
+discourages assignment of the ESC key to a discrete function by the
+programmer because the library requires a delay while it awaits the
+potential remainder of a terminal escape sequence.
+.PP
+Some key strokes are indistinguishable from control characters;
+for example,
+.B \%KEY_ENTER
+may be the same as
+.BR \*^M ,
+.\" as with att630 or pccon+keys
+and
+.B \%KEY_BACKSPACE
+may be the same as
+.B \*^H
+.\" as with att505 or vt52-basic
+or
+.BR \*^? .
+.\" as with pccon+keys or vt320
+Consult the terminal's
+.I \%term\%info
+entry to determine whether this is the case;
+see \fB\%infocmp\fP(1).
+Some
+.I curses
+implementations,
+including
+.IR \%ncurses ,
+honor the
+.I \%term\%info
+key definitions;
+others treat such control characters specially.
+.PP
+.I curses
+distinguishes the Enter keys in the alphabetic and numeric keypad
+sections of a keyboard because (most) terminals do.
+.B \%KEY_ENTER
+refers to the key on the numeric keypad and,
+like other function keys,
+and is reliably recognized only if the window's keypad mode is enabled.
.bP
-the terminal description lists the most useful keys,
+The
+.I \%term\%info
+.B \%key_enter
+.RB ( kent )
+capability describes the character (sequence) sent by the Enter key of
+a terminal's numeric
+(or similar)
+keypad.
.bP
-the \fIEnter\fP key on the regular keyboard is already handled by
-the standard ASCII characters for carriage-return and line-feed,
+\*(``Enter or send\*('' is X/Open Curses's description of this key.
+.PP
+.I curses
+treats the Enter or Return key in the
+.I alphabetic
+section of the keyboard differently.
.bP
-depending on whether \fBnl\fP or \fBnonl\fP was called,
-pressing \*(``Enter\*('' on the regular keyboard
-may return either a carriage-return or line-feed, and finally
+It usually produces a control code for carriage return
+.RB ( \*^M )
+or line feed
+.RB ( \*^J ).
.bP
-\*(``Enter or send\*('' is the standard description for this key.
-.PP
-When using \fBgetch\fR, \fBwgetch\fR, \fBmvgetch\fR, or
-\fBmvwgetch\fR, nocbreak mode (\fBnocbreak\fR) and echo mode
-(\fBecho\fR) should not be used at the same time.
-Depending on the
-state of the tty driver when each character is typed, the program may
-produce undesirable results.
-.PP
-Note that \fBgetch\fR, \fBmvgetch\fR, and \fBmvwgetch\fR may be macros.
-.PP
-Historically, the set of keypad macros was largely defined by the extremely
-function-key-rich keyboard of the AT&T 7300, aka 3B1, aka Safari 4.
-Modern
-personal computers usually have only a small subset of these.
-IBM PC-style
-consoles typically support little more than \fBKEY_UP\fR, \fBKEY_DOWN\fR,
-\fBKEY_LEFT\fR, \fBKEY_RIGHT\fR, \fBKEY_HOME\fR, \fBKEY_END\fR,
-\fBKEY_NPAGE\fR, \fBKEY_PPAGE\fR, and function keys 1 through 12.
-The Ins key
-is usually mapped to \fBKEY_IC\fR.
+Depending on the terminal mode
+(raw,
+cbreak,
+or
+\*(``cooked\*(''),
+and whether \fB\%nl\fP(3X) or \fB\%nonl\fP(3X) has been called,
+.B \%wgetch
+may return either a carriage return or line feed upon an Enter or Return
+key stroke.
+.PP
+Use of
+.B \%wgetch
+with \fB\%echo\fP(3X) and neither \fB\%cbreak\fP(3X) nor \fB\%raw\fP(3X)
+is not well-defined.
+.PP
+Historically,
+the list of key code macros above was influenced by the
+function-key-rich keyboard of the AT&T 7300
+(also known variously as the \*(``3B1\*('', \*(``Safari 4\*('', and
+\*(``UNIX PC\*(''),
+a 1985 machine.
+Today's computer keyboards are based that of the IBM PC/AT and tend to
+have fewer.
+A
+.I curses
+application can expect such a keyboard to transmit key codes
+.BR \%KEY_UP ,
+.BR \%KEY_DOWN ,
+.BR \%KEY_LEFT ,
+.BR \%KEY_RIGHT ,
+.BR \%KEY_HOME ,
+.BR \%KEY_END ,
+.B \%KEY_PPAGE
+(Page Up),
+.B \%KEY_NPAGE
+(Page Down),
+.B \%KEY_IC
+(Insert),
+.B \%KEY_DC
+(Delete),
+and
+.BI \%KEY_F( n )
+for 1 \(<=
+.I n
+\(<= 12.
+.PP
+.BR \%getch ,
+.BR \%mvgetch ,
+and
+.B \%mvwgetch
+may be implemented as macros.
+.SH EXTENSIONS
+In
+.IR \%ncurses ,
+when a window's \*(``no time-out\*('' mode is
+.I not
+set,
+the
+.B \%ESCDELAY
+variable configures the duration of the timer used to disambiguate a
+function key character sequence from a series of key strokes beginning
+with ESC typed by the user;
+see
+\fB\%curs_variables\fP(3X).
+.PP
+\fB\%has_key\fP was designed for \fB\%ncurses\fP(3X),
+and is not found in SVr4
+.IR curses ,
+4.4BSD
+.IR curses ,
+or any other previous curses implementation.
.SH PORTABILITY
-The *get* functions are described in the XSI Curses standard, Issue 4.
-They
-read single-byte characters only.
-The standard specifies that they return
-\fBERR\fR on failure, but specifies no error conditions.
-.PP
-The echo behavior of these functions on input of \fBKEY_\fR or backspace
-characters was not specified in the SVr4 documentation.
-This description is
-adopted from the XSI Curses standard.
-.PP
-The behavior of \fBgetch\fR and friends in the presence of handled signals is
-unspecified in the SVr4 and XSI Curses documentation.
-Under historical curses
-implementations, it varied depending on whether the operating system's
-implementation of handled signal receipt interrupts a \fBread\fR(2) call in
-progress or not, and also (in some implementations) depending on whether an
-input timeout or non-blocking mode has been set.
-.PP
-\fBKEY_MOUSE\fP is mentioned in XSI Curses, along with a few related
-terminfo capabilities, but no higher-level functions use the feature.
-The implementation in ncurses is an extension.
-.PP
-\fBKEY_RESIZE\fP is an extension first implemented for ncurses.
-NetBSD curses later added this extension.
-.PP
-Programmers concerned about portability should be prepared for either of two
-cases: (a) signal receipt does not interrupt \fBgetch\fR; (b) signal receipt
-interrupts \fBgetch\fR and causes it to return \fBERR\fP with \fBerrno\fR set to
-\fBEINTR\fR.
-.PP
-The \fBhas_key\fR function is unique to \fBncurses\fR.
-We recommend that
-any code using it be conditionalized on the \fBNCURSES_VERSION\fR feature macro.
+Applications employing
+.I \%ncurses
+extensions should condition their use on the visibility of the
+.B \%NCURSES_VERSION
+preprocessor macro.
+.PP
+X/Open Curses,
+Issue 4 describes
+\fB\%getch\fP,
+\fB\%wgetch\fP,
+\fB\%mvgetch\fP,
+\fB\%mvwgetch\fP,
+and
+\fB\%ungetch\fP.
+It specifies no error conditions for them.
+.PP
+.B \%wgetch
+reads only single-byte characters.
+.PP
+The echo behavior of these functions on input of
+.B KEY_
+or backspace characters was not specified in the SVr4 documentation.
+This description is adapted from X/Open Curses.
+.PP
+The behavior of
+.B \%wgetch
+in the presence of signal handlers is unspecified in the SVr4
+documentation and X/Open Curses.
+In historical
+.I curses
+implementations,
+it varied depending on whether the operating system's dispatch of a
+signal to a handler interrupting a \fIread\fP(2) call in progress,
+and also
+(in some implementations)
+whether an input timeout or non-blocking mode has been set.
+Programmers concerned about portability should be prepared for either of
+two cases:
+(a) signal receipt does not interrupt
+.BR \%wgetch ;
+or
+(b) signal receipt interrupts
+.B \%wgetch
+and causes it to return
+.B ERR
+with
+.B \%errno
+set to
+.BR \%EINTR .
+.PP
+.B \%KEY_MOUSE
+is mentioned in X/Open Curses,
+along with a few related
+.I \%term\%info
+capabilities,
+but no higher-level functions use the feature.
+The implementation in
+.I \%ncurses
+is an extension.
+.PP
+.B \%KEY_RESIZE
+and
+.B \%has_key
+are extensions first implemented for
+.IR \%ncurses .
+By 2022,
+.I \%PDCurses
+.\" https://web.archive.org/web/20220117232009/https://pdcurses.org/docs/MANUAL.html
+and
+NetBSD
+.I curses
+.\" https://web.archive.org/web/20200923185647/https://man.netbsd.org/curses_input.3
+had added them along with
+.BR \%KEY_MOUSE .
.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBcurs_inopts\fR(3X),
-\fBcurs_mouse\fR(3X),
-\fBcurs_move\fR(3X),
-\fBcurs_outopts\fR(3X),
-\fBcurs_refresh\fR(3X),
-\fBcurs_variables\fR(3X),
-\fBresizeterm\fR(3X).
-.PP
-Comparable functions in the wide-character (ncursesw) library are
-described in
-\fBcurs_get_wch\fR(3X).
+\fB\%curs_get_wch\fP(3X) describes comparable functions of the
+.I \%ncurses
+library in its wide-character configuration
+.RI ( \%ncursesw ).
+.PP
+\fB\%curses\fP(3X),
+\fB\%curs_addch\fP(3X),
+\fB\%curs_inopts\fP(3X),
+\fB\%curs_mouse\fP(3X),
+\fB\%curs_move\fP(3X),
+\fB\%curs_outopts\fP(3X),
+\fB\%curs_refresh\fP(3X),
+\fB\%curs_variables\fP(3X),
+\fB\%resizeterm\fP(3X),
+\fB\%ascii\fP(7)
+.PP
+ECMA-6 \*(``7-bit coded Character Set\*(''
+\%<https://\*:ecma\-international\*:.org/\
+\*:publications\-and\-standards/\*:standards/\*:ecma\-6/>
+.PP
+ECMA-48 \*(``Control Functions for Coded Character Sets\*(''
+\%<https://\*:ecma\-international\*:.org/\
+\*:publications\-and\-standards/\*:standards/\*:ecma\-48/>
diff --git a/man/curs_getstr.3x b/man/curs_getstr.3x
index baf56967263e..4a49352a146c 100644
--- a/man/curs_getstr.3x
+++ b/man/curs_getstr.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2010,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,118 +27,174 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_getstr.3x,v 1.31 2020/10/18 00:27:44 tom Exp $
-.TH curs_getstr 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: curs_getstr.3x,v 1.58 2024/04/20 19:18:18 tom Exp $
+.TH curs_getstr 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
-.na
-.hy 0
.SH NAME
-\fBgetstr\fR,
-\fBgetnstr\fR,
-\fBwgetstr\fR,
-\fBwgetnstr\fR,
-\fBmvgetstr\fR,
-\fBmvgetnstr\fR,
-\fBmvwgetstr\fR,
-\fBmvwgetnstr\fR \- accept character strings from \fBcurses\fR terminal keyboard
-.ad
-.hy
+\fB\%getstr\fP,
+\fB\%getnstr\fP,
+\fB\%wgetstr\fP,
+\fB\%wgetnstr\fP,
+\fB\%mvgetstr\fP,
+\fB\%mvgetnstr\fP,
+\fB\%mvwgetstr\fP,
+\fB\%mvwgetnstr\fP \-
+accept character strings from \fIcurses\fR terminal keyboard
.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\fBint getstr(char *\fP\fIstr\fP\fB);\fR
-.br
-\fBint getnstr(char *\fP\fIstr\fP\fB, int \fP\fIn\fP\fB);\fR
-.br
-\fBint wgetstr(WINDOW *\fP\fIwin\fP\fB, char *\fP\fIstr\fP\fB);\fR
-.br
-\fBint wgetnstr(WINDOW *\fP\fIwin\fP\fB, char *\fP\fIstr\fP\fB, int \fP\fIn\fP\fB);\fR
-.sp
-\fBint mvgetstr(int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, char *\fP\fIstr\fP\fB);\fR
-.br
-\fBint mvwgetstr(WINDOW *\fP\fIwin\fP\fB, int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, char *\fP\fIstr\fP\fB);\fR
-.br
-\fBint mvgetnstr(int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, char *\fP\fIstr\fP\fB, int \fP\fIn\fP\fB);\fR
-.br
-\fBint mvwgetnstr(WINDOW *\fP\fIwin\fP\fB, int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, char *\fP\fIstr\fP\fB, int \fP\fIn\fP\fB);\fR
-.br
+.nf
+\fB#include <curses.h>
+.PP
+\fBint getstr(char *\fIstr\fP);
+\fBint getnstr(char *\fIstr\fP, int \fIn\fP);
+\fBint wgetstr(WINDOW *\fIwin\fP, char *\fIstr\fP);
+\fBint wgetnstr(WINDOW *\fIwin\fP, char *\fIstr\fP, int \fIn\fP);
+.PP
+\fBint mvgetstr(int \fIy\fP, int \fIx\fP, char *\fIstr\fP);
+\fBint mvwgetstr(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, char *\fIstr\fP);
+\fBint mvgetnstr(int \fIy\fP, int \fIx\fP, char *\fIstr\fP, int \fIn\fP);
+\fBint mvwgetnstr(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, char *\fIstr\fP, int \fIn\fP);
+.fi
.SH DESCRIPTION
-The function \fBgetstr\fR is equivalent to a series of calls to \fBgetch\fR,
-until a newline or carriage return is received (the terminating character is
-not included in the returned string).
-.\" X/Open says also until EOf
-.\" X/Open says then an EOS is added to the result
-.\" X/Open doesn't mention n<0
-The resulting value is placed in the
-area pointed to by the character pointer \fIstr\fR,
-followed by a NUL.
-.PP
-\fBwgetnstr\fR reads at most \fIn\fR characters, thus preventing a possible
-overflow of the input buffer.
-Any attempt to enter more characters (other
-than the terminating newline or carriage return) causes a beep.
-Function
-keys also cause a beep and are ignored.
-The \fBgetnstr\fR function reads
-from the \fIstdscr\fR default window.
-.PP
-The user's erase and kill characters are interpreted.
-If keypad
-mode is on for the window, \fBKEY_LEFT\fR and \fBKEY_BACKSPACE\fR
-are both considered equivalent to the user's kill character.
-.PP
-Characters input are echoed only if \fBecho\fR is currently on.
+The function
+\fBwgetnstr\fP
+is equivalent to a series of calls to
+\fBwgetch\fP(3X),
+until a newline or carriage return terminates the series:
+.bP
+The terminating character is not included in the returned string.
+.bP
+In all instances, the end of the string is terminated
+by a NUL.
+.bP
+The function stores the result in the area pointed to
+by the \fIstr\fP parameter.
+.bP
+The function reads at most \fIn\fP characters,
+thus preventing a possible overflow of the input buffer.
+.IP
+Any attempt to enter more characters
+(other than the terminating newline or carriage return)
+causes a beep.
+.IP
+Function keys also cause a beep and are ignored.
+.PP
+The user's \fIerase\fP and \fIkill\fP characters are interpreted:
+.bP
+The \fIerase\fP character (e.g., \fB^H\fP) erases the character
+at the end of the buffer, moving the cursor to the left.
+.IP
+If \fIkeypad\fP mode is on for the window,
+\fBKEY_LEFT\fP and \fBKEY_BACKSPACE\fP
+are both considered equivalent to the user's \fIerase\fP character.
+.bP
+The \fIkill\fP character (e.g., \fB^U\fP) erases the entire buffer,
+leaving the cursor at the beginning of the buffer.
+.PP
+Characters input are echoed only if \fBecho\fP is currently on.
In that case,
-backspace is echoed as deletion of the previous character (typically a left
-motion).
+backspace is echoed as deletion of the previous character
+(typically a left motion).
+.PP
+The
+\fBgetnstr\fP,
+\fBmvgetnstr\fP,
+\fBmvwgetnstr\fP, and
+\fBwgetnstr\fP
+functions are identical
+to the
+\fBgetstr\fP,
+\fBmvgetstr\fP,
+\fBmvwgetstr\fP, and
+\fBwgetstr\fP
+functions, respectively,
+except that the
+\fB*n*\fP
+versions read at most
+\fIn\fP
+characters, letting the application prevent overflow of the
+input buffer.
.SH RETURN VALUE
-All routines return the integer \fBERR\fR upon failure and an \fBOK\fR (SVr4
-specifies only \*(``an integer value other than \fBERR\fR\*('') upon successful
-completion.
+All of these functions return the integer \fBOK\fP upon successful completion.
+(SVr4 specifies only \*(``an integer value other than \fBERR\fP\*('')
+If unsuccessful, they return \fBERR\fP.
.PP
X/Open defines no error conditions.
.PP
In this implementation,
these functions return an error
-if the window pointer is null, or
-if its timeout expires without having any data.
+.bP
+if the window pointer is null,
+.bP
+if its timeout expires without having any data, or
+.bP
+if the associated call to
+\fBwgetch\fP
+failed.
.PP
This implementation provides an extension as well.
If a \fBSIGWINCH\fP interrupts the function, it will return \fBKEY_RESIZE\fP
rather than \fBOK\fP or \fBERR\fP.
.PP
-Functions with a \*(``mv\*('' prefix first perform a cursor movement using
-\fBwmove\fP, and return an error if the position is outside the window,
-or if the window pointer is null.
+Functions prefixed with \*(``mv\*('' first perform cursor movement and
+fail if the position
+.RI ( y ,
+.IR x )
+is outside the window boundaries.
.SH NOTES
-Note that \fBgetstr\fR, \fBmvgetstr\fR, and \fBmvwgetstr\fR may be macros.
+Any of these functions other than
+\fBwgetnstr\fP
+may be macros.
+.PP
+Using
+\fBgetstr\fP,
+\fBmvgetstr\fP,
+\fBmvwgetstr\fP, or
+\fBwgetstr\fP
+to read a line that
+overflows the array pointed to by
+\fBstr\fP
+causes undefined
+results.
+The use of
+\fBgetnstr\fP,
+\fBmvgetnstr\fP,
+\fBmvwgetnstr\fP, or
+\fBwgetnstr\fP,
+respectively, is recommended.
.SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4.
-They read single-byte characters only.
-The standard does not define any error conditions.
+These functions are described in The Single Unix Specification, Version 2.
+No error conditions are defined.
+.PP
This implementation returns \fBERR\fP if the window pointer is null,
-or if the lower-level \fBwgetch\fR(3X) call returns an \fBERR\fP.
+or if the lower-level \fBwgetch\fP(3X) call returns an \fBERR\fP.
.PP
SVr3 and early SVr4 curses implementations did not reject function keys;
the SVr4.0 documentation claimed that \*(``special keys\*(''
(such as function keys,
\*(``home\*('' key,
\*(``clear\*('' key,
-\fIetc\fR.) are \*(``interpreted\*('',
+\fIetc\fP.) are \*(``interpreted\*('',
without giving details.
It lied.
In fact, the \*(``character\*('' value appended to the
string by those implementations was predictable but not useful
(being, in fact, the low-order eight bits of the key's KEY_ value).
.PP
-The functions \fBgetnstr\fR, \fBmvgetnstr\fR, and \fBmvwgetnstr\fR were
+The functions \fBgetnstr\fP, \fBmvgetnstr\fP, and \fBmvwgetnstr\fP were
present but not documented in SVr4.
.PP
X/Open Curses, Issue 5 (2007) stated that these functions
@@ -147,9 +203,9 @@ but did not state whether the terminating NUL is counted in that limit.
X/Open Curses, Issue 7 (2009) changed that to say they
\*(``read at most \fIn\fP\-1 bytes\*(''
to allow for the terminating NUL.
-As of 2018, some implementations do, some do not count it:
+As of 2018, some implementations count it, some do not:
.bP
-ncurses 6.1 and PDCurses do not count the NUL in the given limit, while
+\fI\%ncurses\fP 6.1 and PDCurses do not count the NUL in the given limit, while
.bP
Solaris SVr4 and NetBSD curses count the NUL as part of the limit.
.bP
@@ -177,17 +233,69 @@ that it is greater than zero.
.IP
A comment in NetBSD's source code states that this is specified in SUSv2.
.bP
-ncurses (before 6.2) assumes no particular limit for the result
+\fI\%ncurses\fP (before 6.2) assumes no particular limit for the result
from \fBwgetstr\fP, and treats the \fIn\fP parameter of \fBwgetnstr\fP
like SVr4 curses.
.bP
-ncurses 6.2 uses \fBLINE_MAX\fP,
+\fI\%ncurses\fP 6.2 uses \fBLINE_MAX\fP,
or a larger (system-dependent) value
which the \fBsysconf\fP function may provide.
If neither \fBLINE_MAX\fP or \fBsysconf\fP is available,
-ncurses uses the POSIX value for \fBLINE_MAX\fP (a 2048 byte limit).
+\fI\%ncurses\fP uses the POSIX value for \fBLINE_MAX\fP (a 2048 byte limit).
In either case, it reserves a byte for the terminating NUL.
+.PP
+Although \fBgetnstr\fP is equivalent to a series of calls to \fBgetch\fP,
+it also makes changes to the curses modes to allow simple editing of
+the input buffer:
+.bP
+\fBgetnstr\fP saves the current value of the \fBnl\fP, \fBecho\fP,
+\fBraw\fP and \fBcbreak\fP modes, and sets
+\fBnl\fP,
+\fBnoecho\fP,
+\fBnoraw\fP, and
+\fBcbreak\fP.
+.IP
+\fBgetnstr\fP handles the echoing of characters,
+rather than relying on the caller to set an appropriate mode.
+.bP
+It also obtains the \fIerase\fP and \fIkill\fP characters
+from \fBerasechar\fP and \fBkillchar\fP, respectively.
+.bP
+On return, \fBgetnstr\fP restores the modes to their previous values.
+.PP
+Other implementations differ in their treatment of special characters:
+.bP
+While they may set the \fIecho\fP mode,
+other implementations do not modify the \fIraw\fP mode,
+They may take the \fIcbreak\fP
+mode set by the caller into account when deciding whether to handle
+echoing within \fBgetnstr\fP or as a side-effect of the \fBgetch\fP calls.
+.bP
+The original \fI\%ncurses\fP
+(as \fIpcurses\fP in 1986)
+set \fBnoraw\fP and \fBcbreak\fP when accepting input for \fBgetnstr\fP.
+That may have been done to make function- and cursor-keys work;
+it is not necessary with \fI\%ncurses\fP.
+.IP
+Since 1995,
+\fI\%ncurses\fP has provided signal handlers for INTR and QUIT
+(e.g., \fB^C\fP or \fB^\e\fP).
+With the \fBnoraw\fP and \fBcbreak\fP settings,
+those may catch a signal and stop the program,
+where other implementations allow one to enter those characters in the buffer.
+.bP
+Starting in 2021
+(\fI\%ncurses\fP 6.3),
+\fBgetnstr\fP sets \fBraw\fP,
+rather than \fBnoraw\fP and \fBcbreak\fP for better compatibility with
+SVr4-curses, e.g., allowing one to enter a \fB^C\fP into the buffer.
.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBcurs_getch\fR(3X),
-\fBcurs_variables\fR(3X).
+\fB\%curs_get_wstr\fP(3X) describes comparable functions of the
+.I \%ncurses
+library in its wide-character configuration
+.RI ( \%ncursesw ).
+.PP
+\fB\%curses\fP(3X),
+\fB\%curs_getch\fP(3X),
+\fB\%curs_termattrs\fP(3X),
+\fB\%curs_variables\fP(3X)
diff --git a/man/curs_getyx.3x b/man/curs_getyx.3x
index e6ff67014864..eadcecef2cad 100644
--- a/man/curs_getyx.3x
+++ b/man/curs_getyx.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2020 Thomas E. Dickey *
+.\" Copyright 2020-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2007,2010 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,75 +27,87 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_getyx.3x,v 1.20 2020/10/24 09:38:43 tom Exp $
-.TH curs_getyx 3X ""
+.\" $Id: curs_getyx.3x,v 1.44 2024/04/20 21:20:07 tom Exp $
+.TH curs_getyx 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.SH NAME
-\fBgetyx\fR,
-\fBgetparyx\fR,
-\fBgetbegyx\fR,
-\fBgetmaxyx\fR \- get \fBcurses\fR cursor and window coordinates
+\fB\%getyx\fP,
+\fB\%getparyx\fP,
+\fB\%getbegyx\fP,
+\fB\%getmaxyx\fP \-
+get \fIcurses\fR cursor and window coordinates
.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\fBvoid getyx(WINDOW *\fP\fIwin\fP\fB, int \fP\fIy\fP\fB, int \fP\fIx\fP\fB);\fR
-.br
-\fBvoid getparyx(WINDOW *\fP\fIwin\fP\fB, int \fP\fIy\fP\fB, int \fP\fIx\fP\fB);\fR
-.br
-\fBvoid getbegyx(WINDOW *\fP\fIwin\fP\fB, int \fP\fIy\fP\fB, int \fP\fIx\fP\fB);\fR
-.br
-\fBvoid getmaxyx(WINDOW *\fP\fIwin\fP\fB, int \fP\fIy\fP\fB, int \fP\fIx\fP\fB);\fR
-.br
+.nf
+\fB#include <curses.h>
+.PP
+\fBvoid getyx(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP);
+\fBvoid getparyx(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP);
+\fBvoid getbegyx(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP);
+\fBvoid getmaxyx(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP);
+.fi
.SH DESCRIPTION
-The \fBgetyx\fR macro places the current cursor position of the given window in
-the two integer variables \fIy\fR and \fIx\fR.
+The \fB\%getyx\fP macro places the current cursor position
+of the given window in the two integer variables \fIy\fP and \fIx\fP.
.PP
-If \fIwin\fR is a subwindow, the \fBgetparyx\fR macro places the beginning
+If \fIwin\fP is a subwindow, the \fB\%getparyx\fP macro places the beginning
coordinates of the subwindow relative to the parent window into two integer
-variables \fIy\fR and \fIx\fR.
-Otherwise, \fB\-1\fR is placed into \fIy\fR and \fIx\fR.
+variables \fIy\fP and \fIx\fP.
+Otherwise, \fB\-1\fP is placed into \fIy\fP and \fIx\fP.
.PP
-Like \fBgetyx\fR, the \fBgetbegyx\fR and \fBgetmaxyx\fR macros store
+Like \fB\%getyx\fP, the \fB\%getbegyx\fP and \fB\%getmaxyx\fP macros store
the current beginning coordinates and size of the specified window.
.SH RETURN VALUE
The return values of these macros are undefined (i.e.,
they should not be used as the right-hand side of assignment statements).
.SH NOTES
All of these interfaces are macros.
-A "\fB&\fR" is not necessary before the variables \fIy\fR and \fIx\fR.
+A \*(``&\*('' is not necessary before the variables \fIy\fP and \fIx\fP.
.SH PORTABILITY
The
-\fBgetyx\fR,
-\fBgetparyx\fR,
-\fBgetbegyx\fR and
-\fBgetmaxyx\fR
-macros are described in the XSI Curses standard, Issue 4.
+\fB\%getyx\fP,
+\fB\%getparyx\fP,
+\fB\%getbegyx\fP and
+\fB\%getmaxyx\fP
+macros are described in X/Open Curses, Issue 4.
.PP
This implementation also provides functions
-\fBgetbegx\fR,
-\fBgetbegy\fR,
-\fBgetcurx\fR,
-\fBgetcury\fR,
-\fBgetmaxx\fR,
-\fBgetmaxy\fR,
-\fBgetparx\fR and
-\fBgetpary\fR
-for compatibility with older versions of curses.
+\fB\%getbegx\fP,
+\fB\%getbegy\fP,
+\fB\%getcurx\fP,
+\fB\%getcury\fP,
+\fB\%getmaxx\fP,
+\fB\%getmaxy\fP,
+\fB\%getparx\fP and
+\fB\%getpary\fP
+for compatibility with older versions of \fIcurses\fP;
+see \fB\%curs_legacy\fP(3X).
.PP
Although X/Open Curses does not address this,
-many implementations provide members of the WINDOW structure
+many implementations provide members of the \fB\%WINDOW\fP structure
containing values corresponding to these macros.
-For best portability, do not rely on using the data in WINDOW,
-since some implementations make WINDOW opaque (do not allow
+For best portability, do not rely on using the data in \fB\%WINDOW\fP,
+since some implementations make \fB\%WINDOW\fP opaque (do not allow
direct use of its members).
.PP
Besides the problem of opaque structures,
the data stored in like-named members may not have like-values in
different implementations.
-For example, the WINDOW._maxx and WINDOW._maxy values in ncurses
-have (at least since release 1.8.1) differed by one from some
-other implementations.
-The difference is hidden by means of the macro \fBgetmaxyx\fP.
+For example, the \fB\%WINDOW._maxx\fP and \fB\%WINDOW._maxy\fP values
+in \fI\%ncurses\fP have
+(at least since release 1.8.1)
+differed by one from some other implementations.
+The difference is hidden by means of the macro \fB\%getmaxyx\fP.
.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBcurs_legacy\fR(3X),
-\fBcurs_opaque\fR(3X)
+\fB\%curses\fP(3X),
+\fB\%curs_legacy\fP(3X),
+\fB\%curs_opaque\fP(3X)
diff --git a/man/curs_in_wch.3x b/man/curs_in_wch.3x
index e2678997b4c6..8512e6d3b51e 100644
--- a/man/curs_in_wch.3x
+++ b/man/curs_in_wch.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 2002-2010,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,45 +27,58 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_in_wch.3x,v 1.10 2020/10/17 23:19:29 tom Exp $
-.TH curs_in_wch 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: curs_in_wch.3x,v 1.31 2024/04/20 21:20:07 tom Exp $
+.TH curs_in_wch 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
.SH NAME
-\fBin_wch\fR,
-\fBmvin_wch\fR,
-\fBmvwin_wch\fR,
-\fBwin_wch\fR \- extract a complex character and rendition from a window
+\fB\%in_wch\fP,
+\fB\%mvin_wch\fP,
+\fB\%mvwin_wch\fP,
+\fB\%win_wch\fP \-
+get a \fIcurses\fR complex character from a window
.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\fBint in_wch(cchar_t *\fR\fIwcval\fR\fB);\fR
-.br
-\fBint win_wch(WINDOW *\fR\fIwin\fR\fB, cchar_t *\fR\fIwcval\fR\fB);\fR
-.sp
-\fBint mvin_wch(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, cchar_t *\fR\fIwcval\fR\fB);\fR
-.br
-\fBint mvwin_wch(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, cchar_t *\fR\fIwcval\fR\fB);\fR
+.nf
+\fB#include <curses.h>
+.PP
+\fBint in_wch(cchar_t *\fIwch\fP);
+\fBint win_wch(WINDOW *\fIwin\fP, cchar_t *\fIwch\fP);
+.PP
+\fBint mvin_wch(int \fIy\fP, int \fIx\fP, cchar_t *\fIwch\fP);
+\fBint mvwin_wch(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, cchar_t *\fIwch\fP);
+.fi
.SH DESCRIPTION
These functions extract the complex character and rendition from
-the current position in the named window into the \fBcchar_t\fR object
-referenced by wcval.
+the current position in the named window into the \fBcchar_t\fP object
+referenced by wch.
.SH RETURN VALUE
-No errors are defined in the XSI Curses standard.
+No errors are defined in X/Open Curses.
This implementation checks for null pointers, returns \fBERR\fP in that case.
-Also, the \fImv\fR routines check for error moving the cursor,
+Also, the \fImv\fP routines check for error moving the cursor,
returning \fBERR\fP in that case.
Otherwise they return \fBOK\fP.
.PP
-Functions with a \*(``mv\*('' prefix first perform a cursor movement using
-\fBwmove\fP, and return an error if the position is outside the window,
-or if the window pointer is null.
+Functions prefixed with \*(``mv\*('' first perform cursor movement and
+fail if the position
+.RI ( y ,
+.IR x )
+is outside the window boundaries.
.SH NOTES
Note that all of these routines may be macros.
.SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4.
+These functions are described in X/Open Curses, Issue 4.
.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBcurs_inch\fR(3X).
+\fB\%curs_inch\fP(3X) describes comparable functions of the
+.I \%ncurses
+library in its non-wide-character configuration.
+.PP
+\fB\%curses\fP(3X),
+\fB\%curs_inwstr\fP(3X)
diff --git a/man/curs_in_wchstr.3x b/man/curs_in_wchstr.3x
index 4feae48098ca..53c984647507 100644
--- a/man/curs_in_wchstr.3x
+++ b/man/curs_in_wchstr.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 2002-2012,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,100 +27,106 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_in_wchstr.3x,v 1.14 2020/10/17 23:19:44 tom Exp $
-.TH curs_in_wchstr 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
-.na
-.hy 0
+.\" $Id: curs_in_wchstr.3x,v 1.39 2024/04/20 21:24:19 tom Exp $
+.TH curs_in_wchstr 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
+.de bP
+.ie n .IP \(bu 4
+.el .IP \(bu 2
+..
.SH NAME
-\fBin_wchstr\fR,
-\fBin_wchnstr\fR,
-\fBwin_wchstr\fR,
-\fBwin_wchnstr\fR,
-\fBmvin_wchstr\fR,
-\fBmvin_wchnstr\fR,
-\fBmvwin_wchstr\fR,
-\fBmvwin_wchnstr\fR \- get an array of complex characters and renditions from a curses window
-.ad
-.hy
+\fB\%in_wchstr\fP,
+\fB\%in_wchnstr\fP,
+\fB\%win_wchstr\fP,
+\fB\%win_wchnstr\fP,
+\fB\%mvin_wchstr\fP,
+\fB\%mvin_wchnstr\fP,
+\fB\%mvwin_wchstr\fP,
+\fB\%mvwin_wchnstr\fP \-
+get a \fIcurses\fR complex character string from a window
.SH SYNOPSIS
.nf
-\fB#include <curses.h>\fR
-.sp
-\fBint in_wchstr(cchar_t *\fR\fIwchstr\fR\fB);\fR
-.br
-\fBint in_wchnstr(cchar_t *\fR\fIwchstr\fR\fB, int \fR\fIn\fR\fB);\fR
-.br
-\fBint win_wchstr(WINDOW *\fR\fIwin\fR\fB, cchar_t *\fR\fIwchstr\fR\fB);\fR
-.br
-\fBint win_wchnstr(WINDOW *\fR\fIwin\fR\fB, cchar_t *\fR\fIwchstr\fR\fB, int \fR\fIn\fR\fB);\fR
-.sp
-\fBint mvin_wchstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, cchar_t *\fR\fIwchstr\fR\fB);\fR
-.br
-\fBint mvin_wchnstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, cchar_t *\fR\fIwchstr\fR\fB, int \fR\fIn\fR\fB);\fR
-.br
-\fBint mvwin_wchstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, cchar_t *\fR\fIwchstr\fR\fB);\fR
-.br
-\fBint mvwin_wchnstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, cchar_t *\fR\fIwchstr\fR, int \fIn\fR\fB);\fR
+\fB#include <curses.h>
+.PP
+\fBint in_wchstr(cchar_t *\fIwchstr\fP);
+\fBint win_wchstr(WINDOW *\fIwin\fP, cchar_t *\fIwchstr\fP);
+\fBint mvin_wchstr(int \fIy\fP, int \fIx\fP, cchar_t *\fIwchstr\fP);
+\fBint mvwin_wchstr(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, cchar_t *\fIwchstr\fP);
+.PP
+\fBint in_wchnstr(cchar_t *\fIwchstr\fP, int \fIn\fP);
+\fBint win_wchnstr(WINDOW *\fIwin\fP, cchar_t *\fIwchstr\fP, int \fIn\fP);
+\fBint mvin_wchnstr(int \fIy\fP, int \fIx\fP, cchar_t *\fIwchstr\fP, int \fIn\fP);
+\fBint mvwin_wchnstr(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, cchar_t *\fIwchstr\fP, int \fIn\fP);
.fi
.SH DESCRIPTION
-These functions return an array of complex characters in \fIwchstr\fR,
+These functions return an array of complex characters in \fIwchstr\fP,
starting at the current cursor position in the named window.
Attributes (rendition) are stored with the characters.
.PP
-The
-\fBin_wchnstr\fR,
-\fBmvin_wchnstr\fR,
-\fBmvwin_wchnstr\fR
-and
-\fBwin_wchnstr\fR
-fill the array
-with at most
-\fIn\fR
-\fBcchar_t\fR
-elements.
-.br
+The four functions with \fIn\fP as the last argument return
+a leading substring at most \fIn\fP characters long
+(exclusive of the trailing zeroed \fBcchar_t\fR.
+Transfer stops at the end of the current line, or when \fIn\fP characters have
+been stored at the location referenced by \fIwchstr\fP.
+.PP
+Constants defined in \fB<curses.h>\fP can be used with the \fB&\fP (logical
+AND) operator to extract the character or the attribute alone from any position
+in the \fIwchstr\fP [see \fBgetcchar\fP(3X)].
+.SH RETURN VALUE
+Upon successful completion, these functions return
+\fBOK\fP.
+Otherwise, they return
+\fBERR\fP.
+.PP
+X/Open Curses defines no error conditions.
+This implementation returns an error
+.bP
+if the \fIwin\fP parameter is null or
+.bP
+if the \fIwchstr\fP parameter is null.
+.PP
+Functions prefixed with \*(``mv\*('' first perform cursor movement and
+fail if the position
+.RI ( y ,
+.IR x )
+is outside the window boundaries.
.SH NOTES
-Note that all routines except
-\fBwin_wchnstr\fR
-may be
-macros.
+All routines except \fBwin_wchnstr\fP may be macros.
.PP
Reading a line that overflows the array pointed to by
-\fIwchstr\fR
+\fIwchstr\fP
with
-\fBin_wchstr\fR,
-\fBmvin_wchstr\fR,
-\fBmvwin_wchstr\fR
+\fBin_wchstr\fP,
+\fBmvin_wchstr\fP,
+\fBmvwin_wchstr\fP
or
-\fBwin_wchstr\fR
+\fBwin_wchstr\fP
causes undefined results.
Therefore, the use of
-\fBin_wchnstr\fR,
-\fBmvin_wchnstr\fR,
-\fBmvwin_wchnstr\fR, or
-\fBwin_wchnstr\fR
+\fBin_wchnstr\fP,
+\fBmvin_wchnstr\fP,
+\fBmvwin_wchnstr\fP, or
+\fBwin_wchnstr\fP
is recommended.
-.SH RETURN VALUE
-Upon successful completion, these functions return
-\fBOK\fR.
-Otherwise, they return
-\fBERR\fR.
-.PP
-Functions with a \*(``mv\*('' prefix first perform a cursor movement using
-\fBwmove\fP, and return an error if the position is outside the window,
-or if the window pointer is null.
.SH PORTABILITY
-The XSI Curses defines no error conditions.
+X/Open Curses defines no error conditions.
This implementation checks for null pointers,
returning \fBERR\fP in that case.
.SH SEE ALSO
-Functions:
-\fBcurses\fR(3X),
-\fBcurs_in_wch\fR(3X),
-\fBcurs_instr\fR(3X),
-\fBcurs_inwstr\fR(3X)
-\fBcurs_inchstr\fR(3X)
+\fB\%curs_inchstr\fP(3X) describes comparable functions of the
+.I \%ncurses
+library in its non-wide-character configuration.
+.PP
+\fB\%curses\fP(3X),
+\fB\%curs_inwstr\fP(3X),
+\fB\%curs_in_wch\fP(3X)
diff --git a/man/curs_inch.3x b/man/curs_inch.3x
index ab38cbb9dd06..962e9dc868d4 100644
--- a/man/curs_inch.3x
+++ b/man/curs_inch.3x
@@ -1,6 +1,6 @@
'\" t
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2010,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,54 +28,66 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_inch.3x,v 1.25 2020/10/18 00:25:23 tom Exp $
-.TH curs_inch 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: curs_inch.3x,v 1.51 2024/04/20 21:20:07 tom Exp $
+.TH curs_inch 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
.SH NAME
-\fBinch\fR,
-\fBwinch\fR,
-\fBmvinch\fR,
-\fBmvwinch\fR \- get a character and attributes from a \fBcurses\fR window
+\fB\%inch\fP,
+\fB\%winch\fP,
+\fB\%mvinch\fP,
+\fB\%mvwinch\fP \-
+get a \fIcurses\fR character from a window
.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\fBchtype inch(void);\fR
-.br
-\fBchtype winch(WINDOW *\fP\fIwin\fP\fB);\fR
-.sp
-\fBchtype mvinch(int \fP\fIy\fP\fB, int \fP\fIx\fP\fB);\fR
-.br
-\fBchtype mvwinch(WINDOW *\fP\fIwin\fP\fB, int \fP\fIy\fP\fB, int \fP\fIx\fP\fB);\fR
-.br
+.nf
+\fB#include <curses.h>
+.PP
+\fBchtype inch(void);
+\fBchtype winch(WINDOW *\fIwin\fP);
+.PP
+\fBchtype mvinch(int \fIy\fP, int \fIx\fP);
+\fBchtype mvwinch(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP);
+.fi
.SH DESCRIPTION
-These routines return the character, of type \fBchtype\fR, at the current
+These routines return the character, of type \fBchtype\fP, at the current
position in the named window.
If any attributes are set for that position,
their values are OR'ed into the value returned.
Constants defined in
-\fB<curses.h>\fR can be used with the \fB&\fR (logical AND) operator to
+\fB<curses.h>\fP can be used with the \fB&\fP (logical AND) operator to
extract the character or attributes alone.
.
.SS Attributes
-The following bit-masks may be AND-ed with characters returned by \fBwinch\fR.
-.
+The following bit masks may be AND-ed with characters returned by \fBwinch\fP.
+.PP
.TS
-l l .
-\fBA_CHARTEXT\fR Bit-mask to extract character
-\fBA_ATTRIBUTES\fR Bit-mask to extract attributes
-\fBA_COLOR\fR Bit-mask to extract color-pair field information
+Lb Lb
+Lb Lx.
+Name Description
+_
+A_CHARTEXT Extract character
+A_ATTRIBUTES Extract attributes
+A_COLOR Extract color pair information
.TE
.SH RETURN VALUE
-Functions with a \*(``mv\*('' prefix first perform a cursor movement using
-\fBwmove\fP, and return an error if the position is outside the window,
-or if the window pointer is null.
+Functions prefixed with \*(``mv\*('' first perform cursor movement and
+fail if the position
+.RI ( y ,
+.IR x )
+is outside the window boundaries.
.PP
The \fBwinch\fP function does not return an error if the window contains
characters larger than 8-bits (255).
@@ -83,7 +95,7 @@ Only the low-order 8 bits of the character are used by \fBwinch\fP.
.SH NOTES
Note that all of these routines may be macros.
.SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4.
+These functions are described in X/Open Curses, Issue 4.
.PP
Very old systems (before standardization) provide a different function
with the same name:
@@ -100,20 +112,17 @@ could be combined with characters in the window.
Reflecting this improvement, the function was altered to return the
character combined with all video attributes in a \fBchtype\fP value.
.PP
-X/Open Curses does not specify
+X/Open Curses does not specify
the size and layout of attributes, color and character values in
\fBchtype\fP; it is implementation-dependent.
This implementation uses 8 bits for character values.
An application using more bits, e.g., a Unicode value,
should use the wide-character equivalents to these functions.
.SH SEE ALSO
-.TP 5
-\fBcurses\fR(3X)
-gives an overview of the WINDOW and \fBchtype\fP data types.
-.TP 5
-\fBcurs_attr\fR(3X)
-goes into more detail, pointing out portability problems and
-constraints on the use of \fBchtype\fP for returning window information.
-.TP 5
-\fBcurs_in_wch\fR(3X)
-describes comparable functions for the wide-character (ncursesw) library.
+\fB\%curs_in_wch\fP(3X) describes comparable functions of the
+.I \%ncurses
+library in its wide-character configuration
+.RI ( \%ncursesw ).
+.PP
+\fB\%curses\fP(3X),
+\fB\%curs_instr\fP(3X)
diff --git a/man/curs_inchstr.3x b/man/curs_inchstr.3x
index 332604e78996..bcd5d6855e1f 100644
--- a/man/curs_inchstr.3x
+++ b/man/curs_inchstr.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2010,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,88 +27,109 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_inchstr.3x,v 1.21 2020/10/18 00:24:36 tom Exp $
-.TH curs_inchstr 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: curs_inchstr.3x,v 1.45 2024/04/20 21:20:07 tom Exp $
+.TH curs_inchstr 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
-.na
-.hy 0
.SH NAME
-\fBinchstr\fR,
-\fBinchnstr\fR,
-\fBwinchstr\fR,
-\fBwinchnstr\fR,
-\fBmvinchstr\fR,
-\fBmvinchnstr\fR,
-\fBmvwinchstr\fR,
-\fBmvwinchnstr\fR \- get a string of characters (and attributes) from a \fBcurses\fR window
-.ad
-.hy
+\fB\%inchstr\fP,
+\fB\%inchnstr\fP,
+\fB\%winchstr\fP,
+\fB\%winchnstr\fP,
+\fB\%mvinchstr\fP,
+\fB\%mvinchnstr\fP,
+\fB\%mvwinchstr\fP,
+\fB\%mvwinchnstr\fP \-
+get a \fIcurses\fR character string from a window
.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\fBint inchstr(chtype *\fP\fIchstr\fP\fB);\fR
-.br
-\fBint inchnstr(chtype *\fP\fIchstr\fP\fB, int \fP\fIn\fP\fB);\fR
-.br
-\fBint winchstr(WINDOW *\fP\fIwin\fP\fB, chtype *\fP\fIchstr\fP\fB);\fR
-.br
-\fBint winchnstr(WINDOW *\fP\fIwin\fP\fB, chtype *\fP\fIchstr\fP\fB, int \fP\fIn\fP\fB);\fR
-.sp
-\fBint mvinchstr(int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, chtype *\fP\fIchstr\fP\fB);\fR
-.br
-\fBint mvinchnstr(int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, chtype *\fP\fIchstr\fP\fB, int \fP\fIn\fP\fB);\fR
-.br
-\fBint mvwinchstr(WINDOW *\fP\fIwin\fP\fB, int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, chtype *\fP\fIchstr\fP\fB);\fR
-.br
-\fBint mvwinchnstr(WINDOW *\fP\fIwin\fP\fB, int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, chtype *\fP\fIchstr\fP\fB, int \fP\fIn\fP\fB);\fR
-.br
+.nf
+\fB#include <curses.h>
+.PP
+\fBint inchstr(chtype *\fIchstr\fP);
+\fBint inchnstr(chtype *\fIchstr\fP, int \fIn\fP);
+\fBint winchstr(WINDOW *\fIwin\fP, chtype *\fIchstr\fP);
+\fBint winchnstr(WINDOW *\fIwin\fP, chtype *\fIchstr\fP, int \fIn\fP);
+.PP
+\fBint mvinchstr(int \fIy\fP, int \fIx\fP, chtype *\fIchstr\fP);
+\fBint mvinchnstr(int \fIy\fP, int \fIx\fP, chtype *\fIchstr\fP, int \fIn\fP);
+\fBint mvwinchstr(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, chtype *\fIchstr\fP);
+\fBint mvwinchnstr(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, chtype *\fIchstr\fP, int \fIn\fP);
+.fi
.SH DESCRIPTION
-These routines return a NULL-terminated array of \fBchtype\fR quantities,
+These routines return a NULL-terminated array of \fBchtype\fP quantities,
starting at the current cursor position in the named window and ending at the
right margin of the window.
-The four functions with \fIn\fR as
-the last argument, return a leading substring at most \fIn\fR characters long
+.PP
+The four functions with \fIn\fP as the last argument, return
+a leading substring at most \fIn\fP characters long
(exclusive of the trailing (chtype)0).
-Constants defined in \fB<curses.h>\fR can be used with the \fB&\fR (logical
+Transfer stops at the end of the current line, or when \fIn\fP characters have
+been stored at the location referenced by \fIchstr\fP.
+.PP
+Constants defined in \fB<curses.h>\fP can be used with the \fB&\fP (logical
AND) operator to extract the character or the attribute alone from any position
-in the \fIchstr\fR [see \fBcurs_inch\fR(3X)].
+in the \fIchstr\fP [see \fBcurs_inch\fP(3X)].
.SH RETURN VALUE
-All routines return the integer \fBERR\fR upon failure and an integer value
-other than \fBERR\fR upon successful completion (the number of characters
+All routines return the integer \fBERR\fP upon failure and an integer value
+other than \fBERR\fP upon successful completion (the number of characters
retrieved, exclusive of the trailing 0).
.PP
X/Open Curses defines no error conditions.
-In this implementation:
+This implementation returns an error
.bP
-If the \fIwin\fP parameter is null, an error is returned,
+if the \fIwin\fP parameter is null or
.bP
-If the \fIchstr\fP parameter is null, an error is returned,
+if the \fIchstr\fP parameter is null.
.PP
-Functions with a \*(``mv\*('' prefix first perform a cursor movement using
-\fBwmove\fP, and return an error if the position is outside the window,
-or if the window pointer is null.
+Functions prefixed with \*(``mv\*('' first perform cursor movement and
+fail if the position
+.RI ( y ,
+.IR x )
+is outside the window boundaries.
.SH NOTES
-Note that all routines except \fBwinchnstr\fR may be macros.
+All routines except \fBwinchnstr\fP may be macros.
+.PP
SVr4 does not
document whether the result string is zero-terminated; it does not document
whether a length limit argument includes any trailing 0; and it does not
document the meaning of the return value.
+.PP
+Reading a line that overflows the array pointed to by
+\fIchstr\fP
+with
+\fBinchstr\fP,
+\fBmvinchstr\fP,
+\fBmvwinchstr\fP
+or
+\fBwinchstr\fP
+causes undefined results.
+Therefore, the use of
+\fBinchnstr\fP,
+\fBmvinchnstr\fP,
+\fBmvwinchnstr\fP, or
+\fBwinchnstr\fP
+is recommended.
.SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4.
+These functions are described in X/Open Curses, Issue 4.
It is no
more specific than the SVr4 documentation on the trailing 0.
It does specify
-that the successful return of the functions is \fBOK\fR.
+that the successful return of the functions is \fBOK\fP.
.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_inch\fR(3X).
-.PP
-Comparable functions in the wide-character (ncursesw) library are
-described in
-\fBcurs_in_wchstr\fR(3X).
+\fB\%curses\fP(3X),
+\fB\%curs_inch\fP(3X),
+\fB\%curs_inwstr\fP(3X),
+\fB\%curs_in_wchstr\fP(3X)
diff --git a/man/curs_initscr.3x b/man/curs_initscr.3x
index 235a5aa715bb..0f460af14eee 100644
--- a/man/curs_initscr.3x
+++ b/man/curs_initscr.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2016,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,88 +27,93 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_initscr.3x,v 1.33 2020/10/17 23:20:48 tom Exp $
-.TH curs_initscr 3X ""
+.\" $Id: curs_initscr.3x,v 1.69 2024/04/20 21:24:19 tom Exp $
+.TH curs_initscr 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
-.na
-.hy 0
.SH NAME
-\fBinitscr\fR,
-\fBnewterm\fR,
-\fBendwin\fR,
-\fBisendwin\fR,
-\fBset_term\fR,
-\fBdelscreen\fR \- \fBcurses\fR screen initialization and manipulation routines
-.ad
-.hy
+\fB\%initscr\fP,
+\fB\%newterm\fP,
+\fB\%endwin\fP,
+\fB\%isendwin\fP,
+\fB\%set_term\fP,
+\fB\%delscreen\fP \-
+initialize, manipulate, or tear down \fIcurses\fR terminal interface
.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\fBWINDOW *initscr(void);\fR
-.br
-\fBint endwin(void);\fR
-.sp
-\fBbool isendwin(void);\fR
-.sp
-\fBSCREEN *newterm(const char *\fP\fItype\fP\fB, FILE *\fP\fIoutfd\fP\fB, FILE *\fP\fIinfd\fP\fB);\fR
-.br
-\fBSCREEN *set_term(SCREEN *\fP\fInew\fP\fB);\fR
-.br
-\fBvoid delscreen(SCREEN* \fP\fIsp\fP\fB);\fR
-.br
+.nf
+\fB#include <curses.h>
+.PP
+\fBWINDOW *initscr(void);
+\fBint endwin(void);
+.PP
+\fBbool isendwin(void);
+.PP
+\fBSCREEN *newterm(const char *\fItype\fP, FILE *\fIoutf\fP, FILE *\fIinf\fP);
+\fBSCREEN *set_term(SCREEN *\fInew\fP);
+\fBvoid delscreen(SCREEN* \fIsp\fP);
+.fi
.SH DESCRIPTION
.SS initscr
-\fBinitscr\fR is normally the first \fBcurses\fR routine to call when
+\fBinitscr\fP is normally the first \fBcurses\fP routine to call when
initializing a program.
A few special routines sometimes need to be called before it;
-these are \fBslk_init\fR(3X), \fBfilter\fR, \fBripoffline\fR,
-\fBuse_env\fR.
+these are \fBslk_init\fP(3X), \fBfilter\fP, \fBripoffline\fP,
+\fBuse_env\fP.
For multiple-terminal applications,
-\fBnewterm\fR may be called before \fBinitscr\fR.
+\fBnewterm\fP may be called before \fBinitscr\fP.
.PP
-The initscr code determines the terminal type and initializes all \fBcurses\fR
+The initscr code determines the terminal type and initializes all \fBcurses\fP
data structures.
-\fBinitscr\fR also causes the first call to \fBrefresh\fR(3X)
+\fBinitscr\fP also causes the first call to \fBrefresh\fP(3X)
to clear the screen.
-If errors occur, \fBinitscr\fR writes an appropriate error
+If errors occur, \fBinitscr\fP writes an appropriate error
message to standard error and exits;
-otherwise, a pointer is returned to \fBstdscr\fR.
+otherwise, a pointer is returned to \fBstdscr\fP.
.SS newterm
-.PP
-A program that outputs to more than one terminal should use the \fBnewterm\fR
-routine for each terminal instead of \fBinitscr\fR.
+A program that outputs to more than one terminal should use the \fBnewterm\fP
+routine for each terminal instead of \fBinitscr\fP.
A program that needs to inspect capabilities,
so it can continue to run in a line-oriented mode if the
terminal cannot support a screen-oriented program, would also use
-\fBnewterm\fR.
-The routine \fBnewterm\fR should be called once for each terminal.
-It returns a variable of type \fBSCREEN *\fR which should be saved
+\fBnewterm\fP.
+.PP
+The routine \fBnewterm\fP should be called once for each terminal.
+It returns a variable of type \fISCREEN *\fP which should be saved
as a reference to that terminal.
\fBnewterm\fP's arguments are
.bP
-the \fItype\fR of the terminal to be used in place of \fB$TERM\fR,
+the \fItype\fP of the terminal to be used in place of \fB$TERM\fP,
.bP
-a file pointer for output to the terminal, and
+an output stream connected to the terminal, and
.bP
-another file pointer for input from the terminal
+an input stream connected to the terminal
.PP
-If the \fItype\fR parameter is \fBNULL\fR, \fB$TERM\fR will be used.
-.SS endwin
+If the \fItype\fP parameter is \fBNULL\fP, \fB$TERM\fP will be used.
.PP
+The file descriptor of the output stream is passed to \fBsetupterm\fP(3X),
+which returns a pointer to a \fI\%TERMINAL\fP structure.
+\fBnewterm\fP's return value holds a pointer to the \fI\%TERMINAL\fP structure.
+.SS endwin
The program must also call
-\fBendwin\fR for each terminal being used before exiting from \fBcurses\fR.
-If \fBnewterm\fR is called more than once for the same terminal, the first
-terminal referred to must be the last one for which \fBendwin\fR is called.
+\fBendwin\fP for each terminal being used before exiting from \fBcurses\fP.
+If \fBnewterm\fP is called more than once for the same terminal, the first
+terminal referred to must be the last one for which \fBendwin\fP is called.
.PP
-A program should always call \fBendwin\fR before exiting or escaping from
-\fBcurses\fR mode temporarily.
+A program should always call \fBendwin\fP before exiting or escaping from
+\fBcurses\fP mode temporarily.
This routine
.bP
resets colors to correspond with the default color pair 0,
@@ -123,37 +128,42 @@ stops cursor-addressing mode using the \fIexit_ca_mode\fP terminal capability,
.bP
restores tty modes (see \fBreset_shell_mode\fP(3X)).
.PP
-Calling \fBrefresh\fR(3X) or \fBdoupdate\fR(3X) after a
+Calling \fBrefresh\fP(3X) or \fBdoupdate\fP(3X) after a
temporary escape causes the program to resume visual mode.
.SS isendwin
-.PP
-The \fBisendwin\fR routine returns \fBTRUE\fR if \fBendwin\fR has been
-called without any subsequent calls to \fBwrefresh\fR,
-and \fBFALSE\fR otherwise.
+The \fBisendwin\fP routine returns \fBTRUE\fP if \fBendwin\fP has been
+called without any subsequent calls to \fBwrefresh\fP,
+and \fBFALSE\fP otherwise.
.SS set_term
-.PP
-The \fBset_term\fR routine is used to switch between different terminals.
-The screen reference \fBnew\fR becomes the new current terminal.
+The \fBset_term\fP routine is used to switch between different terminals.
+The screen reference \fInew\fP becomes the new current terminal.
The previous terminal is returned by the routine.
-This is the only routine which manipulates \fBSCREEN\fR pointers;
+This is the only routine which manipulates \fISCREEN\fP pointers;
all other routines affect only the current terminal.
.SS delscreen
-.PP
-The \fBdelscreen\fR routine frees storage associated with the
-\fBSCREEN\fR data structure.
-The \fBendwin\fR routine does not do
-this, so \fBdelscreen\fR should be called after \fBendwin\fR if a
-particular \fBSCREEN\fR is no longer needed.
+The \fBdelscreen\fP routine frees storage associated with the
+\fISCREEN\fP data structure.
+The \fBendwin\fP routine does not do
+this, so \fBdelscreen\fP should be called after \fBendwin\fP if a
+particular \fISCREEN\fP is no longer needed.
.SH RETURN VALUE
-\fBendwin\fR returns the integer \fBERR\fR upon failure and \fBOK\fR
+\fBendwin\fP returns the integer \fBERR\fP upon failure and \fBOK\fP
upon successful completion.
.PP
-Routines that return pointers always return \fBNULL\fR on error.
+Routines that return pointers always return \fBNULL\fP on error.
.PP
X/Open defines no error conditions.
In this implementation
.bP
-\fBendwin\fP returns an error if the terminal was not initialized.
+\fBendwin\fP returns an error if
+.RS
+.bP
+the terminal was not initialized, or
+.bP
+\fBendwin\fP is called more than once without updating the screen, or
+.bP
+\fBreset_shell_mode\fP(3X) returns an error.
+.RE
.bP
\fBnewterm\fP
returns an error if it cannot allocate the data structures for the screen,
@@ -164,47 +174,95 @@ i.e.,
\fBset_term\fP
returns no error.
.SH PORTABILITY
-These functions were described in the XSI Curses standard, Issue 4.
+These functions were described in X/Open Curses, Issue 4.
As of 2015, the current document is X/Open Curses, Issue 7.
.SS Differences
-X/Open specifies that portable applications must not
-call \fBinitscr\fR more than once:
+X/Open Curses specifies that portable applications must not
+call \fBinitscr\fP more than once:
.bP
The portable way to use \fBinitscr\fP is once only,
-using \fBrefresh\fP (see curs_refresh(3X))
+using \fB\%refresh\fP(3X)
to restore the screen after \fBendwin\fP.
.bP
This implementation allows using \fBinitscr\fP after \fBendwin\fP.
.PP
-Old versions of curses, e.g., BSD 4.4, may have returned a null pointer
-from \fBinitscr\fR when an error is detected, rather than exiting.
-It is safe but redundant to check the return value of \fBinitscr\fR
-in XSI Curses.
-.SS Unset TERM Variable
+Old versions of curses, e.g., BSD 4.4, would return a null pointer
+from \fBinitscr\fP when an error is detected, rather than exiting.
+It is safe but redundant to check the return value of \fBinitscr\fP
+in X/Open Curses.
.PP
-If the TERM variable is missing or empty, \fBinitscr\fP uses the
+Calling \fBendwin\fP does not dispose of the memory allocated in \fBinitscr\fP
+or \fBnewterm\fP.
+Deleting a \fISCREEN\fP provides a way to do this:
+.bP
+X/Open Curses does not say what happens to \fI\%WINDOW\fPs when \fBdelscreen\fP
+\*(``frees storage associated with the \fISCREEN\fP\*(''
+nor does the SVr4 documentation help,
+adding that it should be called after \fBendwin\fP if a \fISCREEN\fP
+is no longer needed.
+.bP
+However, \fI\%WINDOW\fPs are implicitly associated with a \fISCREEN\fP.
+so that it is reasonable to expect \fBdelscreen\fP to deal with these.
+.bP
+SVr4 curses deletes the standard \fI\%WINDOW\fP structures
+\fBstdscr\fP and \fBcurscr\fP as well as a work area \fBnewscr\fP.
+SVr4 curses ignores other windows.
+.bP
+Since version 4.0 (1996),
+\fI\%ncurses\fP has maintained a list of all windows for each screen,
+using that information to delete those windows when \fBdelscreen\fP is called.
+.bP
+NetBSD copied this feature of \fI\%ncurses\fP in 2001.
+PDCurses follows the SVr4 model,
+deleting only the standard \fI\%WINDOW\fP structures.
+.SS "High-level versus Low-level"
+Different implementations may disagree regarding the level of some functions.
+For example, \fISCREEN\fP (returned by \fBnewterm\fP) and
+\fI\%TERMINAL\fP (returned by \fBsetupterm\fP(3X)) hold file descriptors for
+the output stream.
+If an application switches screens using \fBset_term\fR,
+or switches terminals using \fBset_curterm\fP(3X),
+applications which use the output file descriptor can have different
+behavior depending on which structure holds the corresponding descriptor.
+.PP
+For example
+.bP
+NetBSD's \fBbaudrate\fP(3X) function uses the descriptor in \fI\%TERMINAL\fP.
+\fI\%ncurses\fP and SVr4 use the descriptor in \fISCREEN\fP.
+.bP
+NetBSD and \fI\%ncurses\fP use the descriptor
+in \fI\%TERMINAL\fP
+for terminal I/O modes,
+e.g.,
+\fBdef_shell_mode\fP(3X),
+\fBdef_prog_mode\fP(3X).
+SVr4 curses uses the descriptor in \fISCREEN\fP.
+.SS "Unset \fITERM\fP Variable"
+If the \fITERM\fP variable is missing or empty, \fBinitscr\fP uses the
value \*(``unknown\*('',
which normally corresponds to a terminal entry with the \fIgeneric\fP
(\fIgn\fP) capability.
-Generic entries are detected by \fBsetupterm\fP
-(see curs_terminfo(3X)) and cannot be used for full-screen operation.
-Other implementations may handle a missing/empty TERM variable differently.
-.SS Signal Handlers
-.PP
-Quoting from X/Open Curses, section 3.1.1:
+Generic entries are detected by \fBsetupterm\fP(3X)
+and cannot be used for full-screen operation.
+Other implementations may handle
+a missing/empty \fITERM\fP variable differently.
+.SS "Signal Handlers"
+Quoting from X/Open Curses Issue 7, section 3.1.1:
.RS 5
.PP
-\fICurses implementations may provide for special handling of the \fBSIGINT\fP,
-\fBSIGQUIT\fP and \fBSIGTSTP\fP signals
-if their disposition is \fBSIG_DFL\fP at the time
-\fBinitscr\fP is called \fP...
+Curses implementations may provide for special handling of the
+\%SIGINT,
+\%SIGQUIT,
+and \%SIGTSTP signals if their disposition is \%SIG_DFL at the time
+.I \%initscr
+is called.\|.\|.
.PP
-\fIAny special handling for these signals may remain in effect for the
+Any special handling for these signals may remain in effect for the
life of the process or until the process changes the disposition of
-the signal.\fP
+the signal.
.PP
-\fINone of the Curses functions are required to be safe
-with respect to signals \fP...
+None of the Curses functions are required to be safe
+with respect to signals.\|.\|.
.RE
.PP
This implementation establishes signal handlers during initialization,
@@ -213,18 +271,19 @@ Applications which must handle these signals should set up the corresponding
handlers \fIafter\fP initializing the library:
.TP 5
.B SIGINT
-The handler \fIattempts\fP to cleanup the screen on exit.
+The handler \fIattempts\fP to clean up the screen on exit.
Although it \fIusually\fP works as expected, there are limitations:
.RS 5
.bP
-Walking the \fBSCREEN\fP list is unsafe, since all list management
+Walking the \fISCREEN\fP list is unsafe, since all list management
is done without any signal blocking.
.bP
On systems which have \fBREENTRANT\fP turned on, \fBset_term\fP uses
functions which could deadlock or misbehave in other ways.
.bP
-\fBendwin\fP calls other functions, many of which use stdio or
-other library functions which are clearly unsafe.
+\fBendwin\fP calls other functions,
+many of which use \fI\%stdio\fP(3) or other library functions which are
+clearly unsafe.
.RE
.TP 5
.B SIGTERM
@@ -235,26 +294,26 @@ purpose than \fBSIGQUIT\fP (which is used in debugging).
.B SIGTSTP
This handles the \fIstop\fP signal, used in job control.
When resuming the process, this implementation discards pending
-input with \fBflushinput\fP (see curs_util(3X)), and repaints the screen
+input with \fB\%flushinp\fP(3X), and repaints the screen
assuming that it has been completely altered.
-It also updates the saved terminal modes with \fBdef_shell_mode\fP
-(see \fBcurs_kernel\fR(3X)).
+It also updates the saved terminal modes with
+\fB\%def_shell_mode\fP(3X).
.TP 5
.B SIGWINCH
This handles the window-size changes which were ignored in
the standardization efforts.
The handler sets a (signal-safe) variable
-which is later tested in \fBwgetch\fP (see curs_getch(3X)).
+which is later tested in \fB\%wgetch\fP(3X).
If \fBkeypad\fP has been enabled for the corresponding window,
\fBwgetch\fP returns the key symbol \fBKEY_RESIZE\fP.
At the same time, \fBwgetch\fP calls \fBresizeterm\fP to adjust the
standard screen \fBstdscr\fP,
and update other data such as \fBLINES\fP and \fBCOLS\fP.
.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBcurs_kernel\fR(3X),
-\fBcurs_refresh\fR(3X),
-\fBcurs_slk\fR(3X),
-\fBcurs_terminfo\fR(3X),
-\fBcurs_util\fR(3X),
-\fBcurs_variables\fR(3X).
+\fB\%curses\fP(3X),
+\fB\%curs_kernel\fP(3X),
+\fB\%curs_refresh\fP(3X),
+\fB\%curs_slk\fP(3X),
+\fB\%curs_terminfo\fP(3X),
+\fB\%curs_util\fP(3X),
+\fB\%curs_variables\fP(3X)
diff --git a/man/curs_inopts.3x b/man/curs_inopts.3x
index d346017ba0ea..63db4967eebc 100644
--- a/man/curs_inopts.3x
+++ b/man/curs_inopts.3x
@@ -1,5 +1,6 @@
+'\" t
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2016,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,354 +28,527 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_inopts.3x,v 1.33 2020/12/05 19:38:18 Benno.Schulenberg Exp $
-.TH curs_inopts 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
-.na
-.hy 0
+.\" $Id: curs_inopts.3x,v 1.66 2024/04/13 22:20:29 tom Exp $
+.TH curs_inopts 3X 2024-04-13 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
.SH NAME
-\fBcbreak\fR,
-\fBnocbreak\fR,
-\fBecho\fR,
-\fBnoecho\fR,
-\fBhalfdelay\fR,
-\fBintrflush\fR,
-\fBkeypad\fR,
-\fBmeta\fR,
-\fBnl\fR,
-\fBnonl\fR,
-\fBnodelay\fR,
-\fBnotimeout\fR,
-\fBraw\fR,
-\fBnoraw\fR,
-\fBqiflush\fR,
-\fBnoqiflush\fR,
-\fBtimeout\fR,
-\fBwtimeout\fR,
-\fBtypeahead\fR \- \fBcurses\fR input options
-.ad
-.hy
+\fB\%cbreak\fP,
+\fB\%echo\fP,
+\fB\%halfdelay\fP,
+\fB\%intrflush\fP,
+\fB\%is_cbreak\fP,
+\fB\%is_echo\fP,
+\fB\%is_nl\fP,
+\fB\%is_raw\fP,
+\fB\%keypad\fP,
+\fB\%meta\fP,
+\fB\%nl\fP,
+\fB\%nocbreak\fP,
+\fB\%nodelay\fP,
+\fB\%noecho\fP,
+\fB\%nonl\fP,
+\fB\%noqiflush\fP,
+\fB\%noraw\fP,
+\fB\%notimeout\fP,
+\fB\%qiflush\fP,
+\fB\%raw\fP,
+\fB\%timeout\fP,
+\fB\%wtimeout\fP,
+\fB\%typeahead\fP \-
+get and set \fIcurses\fR terminal input options
.SH SYNOPSIS
-\fB#include <curses.h>\fR
+.nf
+\fB#include <curses.h>
.PP
-\fBint cbreak(void);\fR
-.br
-\fBint nocbreak(void);\fR
-.sp
-\fBint echo(void);\fR
-.br
-\fBint noecho(void);\fR
-.sp
-\fBint intrflush(WINDOW *\fP\fIwin\fP\fB, bool \fP\fIbf\fP\fB);\fR
-.br
-\fBint keypad(WINDOW *\fP\fIwin\fP\fB, bool \fP\fIbf\fP\fB);\fR
-.br
-\fBint meta(WINDOW *\fP\fIwin\fP\fB, bool \fP\fIbf\fP\fB);\fR
-.br
-\fBint nodelay(WINDOW *\fP\fIwin\fP\fB, bool \fP\fIbf\fP\fB);\fR
-.br
-\fBint notimeout(WINDOW *\fP\fIwin\fP\fB, bool \fP\fIbf\fP\fB);\fR
-.sp
-\fBint nl(void);\fR
-.br
-\fBint nonl(void);\fR
-.sp
-\fBint raw(void);\fR
-.br
-\fBint noraw(void);\fR
-.sp
-\fBvoid qiflush(void);\fR
-.br
-\fBvoid noqiflush(void);\fR
-.sp
-\fBint halfdelay(int \fP\fItenths\fP\fB);\fR
-.br
-\fBvoid timeout(int \fP\fIdelay\fP\fB);\fR
-.br
-\fBvoid wtimeout(WINDOW *\fP\fIwin\fP\fB, int \fP\fIdelay\fP\fB);\fR
-.sp
-\fBint typeahead(int \fP\fIfd\fP\fB);\fR
-.br
+\fBint cbreak(void);
+\fBint nocbreak(void);
+.PP
+\fBint echo(void);
+\fBint noecho(void);
+.PP
+\fBint intrflush(WINDOW *\fIwin\fP, bool \fIbf\fP);
+\fBint keypad(WINDOW *\fIwin\fP, bool \fIbf\fP);
+\fBint meta(WINDOW *\fIwin\fP, bool \fIbf\fP);
+\fBint nodelay(WINDOW *\fIwin\fP, bool \fIbf\fP);
+\fBint notimeout(WINDOW *\fIwin\fP, bool \fIbf\fP);
+.PP
+\fBint nl(void);
+\fBint nonl(void);
+.PP
+\fBint raw(void);
+\fBint noraw(void);
+.PP
+\fBvoid qiflush(void);
+\fBvoid noqiflush(void);
+.PP
+\fBint halfdelay(int \fItenths\fP);
+\fBvoid timeout(int \fIdelay\fP);
+\fBvoid wtimeout(WINDOW *\fIwin\fP, int \fIdelay\fP);
+.PP
+\fBint typeahead(int \fIfd\fP);
+.PP
+\fI/* extensions */
+\fBint is_cbreak(void);
+\fBint is_echo(void);
+\fBint is_nl(void);
+\fBint is_raw(void);
+.fi
.SH DESCRIPTION
-The \fBncurses\fP library provides several functions which let an application
-change the way input from the terminal is handled.
-Some are global, applying to all windows.
+.I \%ncurses
+provides several functions that let an application change the way input
+from the terminal is handled.
+Some are global,
+applying to all windows.
Others apply only to a specific window.
Window-specific settings are not automatically applied to new or derived
windows.
-An application must apply these to each window, if the same behavior
-is needed.
+An application must apply these to each window if the same behavior is
+desired.
.\"
-.SS cbreak/nocbreak
-Normally, the tty driver buffers typed characters until a newline or carriage
+.SS "cbreak, nocbreak"
+Normally,
+the terminal driver buffers typed characters until a newline or carriage
return is typed.
-The \fBcbreak\fR routine disables line buffering and
-erase/kill character-processing (interrupt and flow control characters are
-unaffected), making characters typed by the user immediately available to the
+The \fB\%cbreak\fP routine disables line buffering and
+erase/kill character-processing
+(interrupt and flow control characters are unaffected),
+making characters typed by the user immediately available to the
program.
-The \fBnocbreak\fR routine returns the terminal to normal (cooked)
+The \fB\%nocbreak\fP routine returns the terminal to normal (cooked)
mode.
.PP
-Initially the terminal may or may not be in \fBcbreak\fR mode, as the mode is
-inherited; therefore, a program should call \fBcbreak\fR or \fBnocbreak\fR
-explicitly.
-Most interactive programs using \fBcurses\fR set the \fBcbreak\fR
-mode.
-Note that \fBcbreak\fR overrides \fBraw\fR.
-[See \fBcurs_getch\fR(3X) for a
-discussion of how these routines interact with \fBecho\fR and \fBnoecho\fR.]
+Initially the terminal may or may not be in \fB\%cbreak\fP mode,
+as the mode is inherited;
+therefore,
+a program should call \fB\%cbreak\fP or \fB\%nocbreak\fP explicitly.
+Most interactive programs using
+.I curses
+set the \fB\%cbreak\fP mode.
+Note that \fB\%cbreak\fP overrides \fBraw\fP.
+[See \fB\%curs_getch\fP(3X) for a discussion of how these routines
+interact with \fBecho\fP and \fB\%noecho\fP.]
.\"
-.SS echo/noecho
-.PP
-The \fBecho\fR and \fBnoecho\fR routines control whether characters typed by
-the user are echoed by \fBgetch\fR(3X) as they are typed.
-Echoing by the tty
-driver is always disabled, but initially \fBgetch\fR is in echo mode, so
-characters typed are echoed.
+.SS "echo, noecho"
+The \fBecho\fP and \fB\%noecho\fP routines control whether characters
+typed by the user are echoed by \fB\%getch\fP(3X) as they are typed.
+Echoing by the terminal driver is always disabled,
+but initially \fB\%getch\fP is in echo mode,
+so characters typed are echoed.
Authors of most interactive programs prefer to do
-their own echoing in a controlled area of the screen, or not to echo at all, so
-they disable echoing by calling \fBnoecho\fR.
-[See \fBcurs_getch\fR(3X) for a
-discussion of how these routines interact with \fBcbreak\fR and
-\fBnocbreak\fR.]
+their own echoing in a controlled area of the screen,
+or not to echo at all,
+so they disable echoing by calling \fB\%noecho\fP.
+[See \fB\%curs_getch\fP(3X) for a
+discussion of how these routines interact with \fB\%cbreak\fP and
+\fB\%nocbreak\fP.]
.\"
.SS halfdelay
-.PP
-The \fBhalfdelay\fR routine is used for half-delay mode, which is similar to
-\fBcbreak\fR mode in that characters typed by the user are immediately
-available to the program.
-However, after blocking for \fItenths\fR tenths of
-seconds, \fBERR\fP is returned if nothing has been typed.
-The value of \fItenths\fR
-must be a number between 1 and 255.
-Use \fBnocbreak\fR to leave half-delay
-mode.
+The \fB\%halfdelay\fP routine is used for half-delay mode,
+which is similar to \fB\%cbreak\fP mode in that characters typed by the
+user are immediately available to the program.
+However,
+after blocking for \fItenths\fP tenths of seconds,
+\fBERR\fP is returned if nothing has been typed.
+The value of \fItenths\fP must be a number between 1 and 255.
+Use \fB\%nocbreak\fP to leave half-delay mode.
.\"
.SS intrflush
-.PP
-If the \fBintrflush\fR option is enabled (\fIbf\fR is \fBTRUE\fR), and an
-interrupt key is pressed on the keyboard (interrupt, break, quit), all output in
-the tty driver queue will be flushed, giving the effect of faster response to
-the interrupt, but causing \fBcurses\fR to have the wrong idea of what is on
-the screen.
-Disabling the option (\fIbf\fR is \fBFALSE\fR) prevents the
-flush.
-The default for the option is inherited from the tty driver settings.
-The window argument is ignored.
+If the \fB\%intrflush\fP option is enabled
+.RI ( bf
+is
+.BR TRUE ),
+and an interrupt key is pressed on the keyboard
+(interrupt,
+break,
+quit),
+all output in the terminal driver queue is flushed,
+giving the effect of faster response to the interrupt,
+but causing
+.I curses
+to have the wrong idea of what is on the screen.
+Disabling the option
+.RI ( bf
+is
+.BR FALSE ),
+prevents the flush.
+The default for the option is inherited from the terminal driver
+settings.
+The
+.I win
+argument is ignored.
.\"
.SS keypad
-.PP
-The \fBkeypad\fR option enables the keypad of the user's terminal.
+The \fB\%keypad\fP option enables the keypad of the user's terminal.
If
-enabled (\fIbf\fR is \fBTRUE\fR), the user can press a function key
-(such as an arrow key) and \fBwgetch\fR(3X) returns a single value
-representing the function key, as in \fBKEY_LEFT\fR.
+enabled
+.RI ( bf
+is
+.BR TRUE ),
+the user can press a function key
+(such as an arrow key)
+and \fB\%wgetch\fP(3X) returns a single value representing the function
+key,
+as in \fB\%KEY_LEFT\fP.
If disabled
-(\fIbf\fR is \fBFALSE\fR), \fBcurses\fR does not treat function keys
-specially and the program has to interpret the escape sequences
-itself.
-If the keypad in the terminal can be turned on (made to
-transmit) and off (made to work locally), turning on this option
-causes the terminal keypad to be turned on when \fBwgetch\fR(3X) is
-called.
+(\fIbf\fP is \fBFALSE\fP),
+.I curses
+does not treat function keys specially and the program has to interpret
+the escape sequences itself.
+If the keypad in the terminal can be turned on
+(made to transmit)
+and off
+(made to work locally),
+turning on this option causes the terminal keypad to be turned on when
+\fB\%wgetch\fP(3X) is called.
The default value for keypad is \fBFALSE\fP.
.\"
.SS meta
-.PP
-Initially, whether the terminal returns 7 or 8 significant bits on
-input depends on the control mode of the tty driver [see \fBtermios\fP(3)].
-To force 8 bits to be returned, invoke \fBmeta\fR(\fIwin\fR,
-\fBTRUE\fR); this is equivalent, under POSIX, to setting the CS8 flag
-on the terminal.
-To force 7 bits to be returned, invoke
-\fBmeta\fR(\fIwin\fR, \fBFALSE\fR); this is equivalent, under POSIX,
+Initially,
+whether the terminal returns 7 or 8 significant bits on input depends on
+the control mode of the terminal driver [see \fI\%termios\fP(3)].
+To force 8 bits to be returned,
+invoke
+\fBmeta\fP(\fIwin\fP, \fBTRUE\fP);
+this is equivalent,
+under POSIX,
+to setting the CS8 flag on the terminal.
+To force 7 bits to be returned,
+invoke
+\fBmeta\fP(\fIwin\fP, \fBFALSE\fP);
+this is equivalent,
+under POSIX,
to setting the CS7 flag on the terminal.
The window argument,
-\fIwin\fR, is always ignored.
-If the terminfo capabilities \fBsmm\fR
-(meta_on) and \fBrmm\fR (meta_off) are defined for the terminal,
-\fBsmm\fR is sent to the terminal when \fBmeta\fR(\fIwin\fR,
-\fBTRUE\fR) is called and \fBrmm\fR is sent when \fBmeta\fR(\fIwin\fR,
-\fBFALSE\fR) is called.
+.IR win ,
+is always ignored.
+If the terminfo capabilities
+\fBsmm\fP (meta_on) and
+\fBrmm\fP (meta_off) are defined for the terminal,
+\fBsmm\fP is sent to the terminal when
+\fBmeta\fP(\fIwin\fP, \fBTRUE\fP)
+is called and \fBrmm\fP is sent when
+\fBmeta\fP(\fIwin\fP, \fBFALSE\fP) is called.
.\"
-.SS nl/nonl
-.PP
-The \fBnl\fR and \fBnonl\fR routines control whether the underlying display
-device translates the return key into newline on input.
+.SS "nl, nonl"
+The \fBnl\fP and \fBnonl\fP routines control whether the underlying
+display device translates the return key into newline on input.
.\"
.SS nodelay
-.PP
-The \fBnodelay\fR option causes \fBgetch\fR to be a non-blocking call.
-If no input is ready, \fBgetch\fR returns \fBERR\fR.
+The \fB\%nodelay\fP option causes \fB\%getch\fP to be a non-blocking
+call.
+If no input is ready,
+\fB\%getch\fP returns \fBERR\fP.
If disabled
-(\fIbf\fR is \fBFALSE\fR), \fBgetch\fR waits until a key is pressed.
+.RI ( bf
+is
+.BR FALSE ),
+\fB\%getch\fP waits until a key is pressed.
.SS notimeout
-.PP
-When interpreting an escape sequence, \fBwgetch\fR(3X) sets a timer
+When interpreting an escape sequence,
+\fB\%wgetch\fP(3X) sets a timer
while waiting for the next character.
-If \fBnotimeout(\fR\fIwin\fR,
-\fBTRUE\fR) is called, then \fBwgetch\fR does not set a timer.
-The
-purpose of the timeout is to differentiate between sequences received
-from a function key and those typed by a user.
+If
+\fB\%notimeout(\fIwin\fR, \fBTRUE\fP)
+is called,
+then \fB\%wgetch\fP does not set a timer.
+The purpose of the timeout is to distinguish sequences produced by a
+function key from those typed by a user.
.\"
-.SS raw/noraw
-.PP
-The \fBraw\fR and \fBnoraw\fR routines place the terminal into or out of raw
-mode.
-Raw mode is similar to \fBcbreak\fR mode, in that characters typed are
-immediately passed through to the user program.
-The differences are that in
-raw mode, the interrupt, quit, suspend, and flow control characters are all
-passed through uninterpreted, instead of generating a signal.
-The behavior of
-the BREAK key depends on other bits in the tty driver that are not set by
-\fBcurses\fR.
+.SS "raw, noraw"
+The \fBraw\fP and \fB\%noraw\fP routines place the terminal into or out
+of raw mode.
+Raw mode is similar to \fB\%cbreak\fP mode,
+in that characters typed are immediately passed through to the user
+program.
+The differences are that in raw mode,
+the interrupt,
+quit,
+suspend,
+and flow control characters are all
+passed through uninterpreted,
+instead of generating a signal.
+The behavior of the BREAK key depends on other bits in the terminal
+driver that are not set by
+.IR curses .
.\"
-.SS qiflush/noqiflush
-.PP
-When the \fBnoqiflush\fR routine is used, normal flush of input and
-output queues associated with the \fBINTR\fR, \fBQUIT\fR and
-\fBSUSP\fR characters will not be done [see \fBtermios\fP(3)].
+.SS "qiflush, nqiflush"
+When the \fB\%noqiflush\fP routine is used,
+normal flush of input and output queues associated with the \fBINTR\fP,
+\fBQUIT\fP and \fBSUSP\fP characters will not be done
+[see \fB\%termios\fP(3)].
When
-\fBqiflush\fR is called, the queues will be flushed when these control
-characters are read.
-You may want to call \fBnoqiflush\fR in a signal
-handler if you want output to continue as though the interrupt
-had not occurred, after the handler exits.
+\fB\%qiflush\fP is called,
+the queues will be flushed when these control characters are read.
+You may want to call \fB\%noqiflush\fP in a signal handler if you want
+output to continue as though the interrupt had not occurred,
+after the handler exits.
.\"
-.SS timeout/wtimeout
-.PP
-The \fBtimeout\fR and \fBwtimeout\fR routines set blocking or
+.SS "timeout, wtimeout"
+The \fB\%timeout\fP and \fB\%wtimeout\fP routines set blocking or
non-blocking read for a given window.
-If \fIdelay\fR is negative,
-blocking read is used (i.e., waits indefinitely for
-input).
-If \fIdelay\fR is zero, then non-blocking read is used
-(i.e., read returns \fBERR\fR if no input is waiting).
+If \fIdelay\fP is negative,
+a blocking read is used
+(i.e.,
+waits indefinitely for input).
+If \fIdelay\fP is zero,
+then a non-blocking read is used
+(i.e.,
+.I read
+returns \fBERR\fP if no input is waiting).
If
-\fIdelay\fR is positive, then read blocks for \fIdelay\fR
-milliseconds, and returns \fBERR\fR if there is still no input.
-Hence, these routines provide the same functionality as \fBnodelay\fR,
+\fIdelay\fP is positive,
+then
+.I read
+blocks for \fIdelay\fP milliseconds,
+and returns \fBERR\fP if there is still no input.
+Hence,
+these routines provide the same functionality as \fB\%nodelay\fP,
plus the additional capability of being able to block for only
-\fIdelay\fR milliseconds (where \fIdelay\fR is positive).
+\fIdelay\fP milliseconds
+(where \fIdelay\fP is positive).
.\"
.SS typeahead
-.PP
-The \fBcurses\fR library does \*(``line-breakout optimization\*(''
-by looking for typeahead periodically while updating the screen.
-If input is found, and it is coming from a tty,
+.I curses
+does \*(``line-breakout optimization\*('' by looking for typeahead
+periodically while updating the screen.
+If input is found,
+and it is coming from a terminal,
the current update is postponed until
-\fBrefresh\fR(3X) or \fBdoupdate\fR is called again.
+\fB\%refresh\fP(3X) or \fB\%doupdate\fP is called again.
This allows faster response to commands typed in advance.
-Normally, the input FILE
-pointer passed to \fBnewterm\fR, or \fBstdin\fR in the case that
-\fBinitscr\fR was used, will be used to do this typeahead checking.
-The \fBtypeahead\fR routine specifies that the file descriptor
-\fIfd\fR is to be used to check for typeahead instead.
-If \fIfd\fR is
-\-1, then no typeahead checking is done.
+Normally,
+the input
+.I FILE
+pointer passed to \fB\%newterm\fP,
+or \fBstdin\fP in the case that \fB\%initscr\fP was used,
+will be used to do this typeahead checking.
+The \fB\%typeahead\fP routine specifies that the file descriptor
+\fIfd\fP is to be used to check for typeahead instead.
+If \fIfd\fP is
+\-1,
+then no typeahead checking is done.
.\"
.SH RETURN VALUE
-All routines that return an integer return \fBERR\fR upon failure and \fBOK\fP
-(SVr4 specifies only \*(``an integer value other than \fBERR\fR\*('')
+All routines that return an integer return \fBERR\fP upon failure and
+\fBOK\fP
+(SVr4 specifies only \*(``an integer value other than \fBERR\fP\*('')
upon successful completion,
unless otherwise noted in the preceding routine descriptions.
.PP
-X/Open does not define any error conditions.
+X/Open Curses does not specify any error conditions.
In this implementation,
functions with a window parameter will return an error if it is null.
-Any function will also return an error if the terminal was not initialized.
+Any function will also return an error if the terminal was not
+initialized.
Also,
-.RS
+.RS 3
.TP 5
-\fBhalfdelay\fP
+\fB\%halfdelay\fP
returns an error
if its parameter is outside the range 1..255.
.RE
+.SH NOTES
+\fBecho\fP,
+\fB\%noecho\fP,
+\fB\%halfdelay\fP,
+\fB\%intrflush\fP,
+\fBmeta\fP,
+\fBnl\fP,
+\fBnonl\fP,
+\fB\%nodelay\fP,
+\fB\%notimeout\fP,
+\fB\%noqiflush\fP,
+\fB\%qiflush\fP,
+\fB\%timeout\fP,
+and
+\fB\%wtimeout\fP
+may be implemented as macros.
+.PP
+\fB\%noraw\fP and \fB\%nocbreak\fP follow historical practice in that
+they attempt to restore normal (\*(``cooked\*('') mode
+from raw and cbreak modes respectively.
+Mixing \fBraw\fP/\fB\%noraw\fP and \fB\%cbreak\fP/\fB\%nocbreak\fP calls
+leads to terminal driver control states that are hard to predict or
+understand;
+doing so is not recommended.
+.SH EXTENSIONS
+.I \%ncurses
+provides four \*(``is_\*('' functions that may be used to detect if the
+corresponding flags were set or reset.
+.PP
+.TS
+center;
+Lb Lb Lb
+L L L .
+Query Set Reset
+_
+is_cbreak cbreak nocbreak
+is_echo echo noecho
+is_nl nl nonl
+is_raw raw noraw
+.TE
+.PP
+In each case,
+the function returns
+.TP 4 \" "-1" + 2n
+1
+if the flag is set,
+.TP
+0
+if the flag is reset,
+or
+.TP
+\-1
+if the library is not initialized.
+.PP
+They were designed for
+\fB\%ncurses\fP(3X),
+and are not found in SVr4
+.IR curses ,
+4.4BSD
+.IR curses ,
+or any other previous
+.I curses
+implementation.
.SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4.
+Applications employing
+.I \%ncurses
+extensions should condition their use on the visibility of the
+.B \%NCURSES_VERSION
+preprocessor macro.
.PP
-The ncurses library obeys the XPG4 standard and the historical practice of the
-AT&T curses implementations, in that the echo bit is cleared when curses
+Except as noted in section \*(``EXTENSIONS\*('' above,
+X/Open Curses, Issue 4, Version 2 describes these functions.
+.PP
+.I \%ncurses
+follows X/Open Curses
+and the historical practice of AT&T
+.I curses
+implementations,
+in that the echo bit is cleared when
+.I curses
initializes the terminal state.
-BSD curses differed from this slightly; it
-left the echo bit on at initialization, but the BSD \fBraw\fR call turned it
-off as a side-effect.
-For best portability, set \fBecho \fPor \fBnoecho\fP explicitly
-just after initialization, even if your program remains in cooked mode.
+BSD
+.I curses
+differed from this slightly;
+it left the echo bit on at initialization,
+but the BSD \fBraw\fP call turned it off as a side effect.
+For best portability,
+set \fBecho\fP or \fB\%noecho\fP explicitly just after initialization,
+even if your program remains in cooked mode.
.PP
-The XSI Curses standard is ambiguous on the question of whether \fBraw\fR
-should disable the CRLF translations controlled by \fBnl\fR and \fBnonl\fR.
-BSD curses did turn off these translations; AT&T curses (at least as late as
-SVr1) did not.
-We chose to do so, on the theory that a programmer requesting
-raw input wants a clean (ideally 8-bit clean) connection that the operating
-system will not alter.
+X/Open Curses is ambiguous regarding whether \fBraw\fP should disable
+the CR/LF translations controlled by \fBnl\fP and \fBnonl\fP.
+BSD
+.I curses
+did turn off these translations;
+AT&T
+.I curses
+(at least as late as SVr1)
+did not.
+.I \%ncurses
+does so,
+on the assumption that a programmer requesting raw input wants a clean
+(ideally,
+8-bit clean)
+connection that the operating system will not alter.
.PP
-When \fBkeypad\fP is first enabled,
-ncurses loads the key-definitions for the current terminal description.
+When \fB\%keypad\fP is first enabled,
+.I \%ncurses
+loads the key definitions for the current terminal description.
If the terminal description includes extended string capabilities,
-e.g., from using the \fB\-x\fP option of \fB@TIC@\fP,
-then ncurses also defines keys for the capabilities whose names
-begin with \*(``k\*(''.
-The corresponding keycodes are generated and (depending on previous
-loads of terminal descriptions) may differ from one execution of a
-program to the next.
-The generated keycodes are recognized by the \fBkeyname\fP function
+e.g.,
+from using the
+.B \-x
+option of \fB\%@TIC@\fP,
+then
+.I \%ncurses
+also defines keys for the capabilities whose names begin with
+\*(``k\*(''.
+The corresponding keycodes are generated and
+(depending on previous loads of terminal descriptions)
+may differ from one execution of a program to the next.
+The generated keycodes are recognized by the \fB\%keyname\fP(3X)
+function
(which will then return a name beginning with \*(``k\*('' denoting the
-terminfo capability name rather than \*(``K\*('', used for curses key-names).
-On the other hand, an application can use \fBdefine_key\fP to establish
+terminfo capability name rather than \*(``K\*('',
+used for
+.I curses
+key names).
+On the other hand,
+an application can use \fB\%define_key\fP(3X) to establish
a specific keycode for a given string.
This makes it possible for an application to check for an extended
-capability's presence with \fBtigetstr\fP,
+capability's presence with \fB\%tigetstr\fP,
and reassign the keycode to match its own needs.
.PP
-Low-level applications can use \fBtigetstr\fP to obtain the definition
+Low-level applications can use \fB\%tigetstr\fP to obtain the definition
of any particular string capability.
-Higher-level applications which use the curses \fBwgetch\fP
-and similar functions to return keycodes rely upon the order in which
-the strings are loaded.
+Higher-level applications which use the
+.I curses
+\fB\%wgetch\fP and similar functions to return keycodes rely upon the
+order in which the strings are loaded.
If more than one key definition has the same string value,
-then \fBwgetch\fP can return only one keycode.
-Most curses implementations (including ncurses)
+then \fB\%wgetch\fP can return only one keycode.
+Most
+.I curses
+implementations
+(including
+.IR \%ncurses )
load key definitions in the order
defined by the array of string capability names.
The last key to be loaded determines the keycode which will be returned.
-In ncurses, you may also have extended capabilities interpreted as
-key definitions.
+In
+.IR \%ncurses ,
+you may also have extended capabilities interpreted as key definitions.
These are loaded after the predefined keys,
and if a capability's value is the same as a previously-loaded
key definition,
the later definition is the one used.
-.SH NOTES
-Note that
-\fBecho\fR,
-\fBnoecho\fR,
-\fBhalfdelay\fR,
-\fBintrflush\fR,
-\fBmeta\fR,
-\fBnl\fR,
-\fBnonl\fR,
-\fBnodelay\fR,
-\fBnotimeout\fR,
-\fBnoqiflush\fR,
-\fBqiflush\fR,
-\fBtimeout\fR, and
-\fBwtimeout\fR may be macros.
-.PP
-The \fBnoraw\fR and \fBnocbreak\fR calls follow historical practice in that
-they attempt to restore to normal (\*(``cooked\*('') mode
-from raw and cbreak modes respectively.
-Mixing raw/noraw and cbreak/nocbreak calls leads to tty driver
-control states that are hard to predict or understand; it is not recommended.
+.SH HISTORY
+Formerly,
+.I \%ncurses
+used
+.B \%nl
+and
+.B \%nonl
+to control the conversion of newlines to carriage return/line feed
+on output as well as input.
+X/Open Curses documents the use of these functions only for input.
+This difference arose from converting the
+.I \%pcurses
+source (1986),
+which used
+\fI\%ioctl\fP(2) calls and the
+.I \%sgttyb
+structure,
+to
+.I \%termios
+(the POSIX terminal API).
+In the former,
+both input and output were controlled via a single option
+.BR \%CRMOD ,
+while the latter separates these features.
+Because that conversion interferes with output optimization,
+.I \%ncurses
+6.2 (2020) amended
+.B \%nl
+and
+.B \%nonl
+to eliminate their effect on output.
.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBcurs_getch\fR(3X),
-\fBcurs_initscr\fR(3X),
-\fBcurs_util\fR(3X),
-\fBdefine_key\fR(3X),
-\fBtermios\fR(3)
+\fB\%curses\fP(3X),
+\fB\%curs_getch\fP(3X),
+\fB\%curs_initscr\fP(3X),
+\fB\%curs_util\fP(3X),
+\fB\%define_key\fP(3X),
+\fB\%termios\fP(3)
diff --git a/man/curs_ins_wch.3x b/man/curs_ins_wch.3x
index 9b19a2825c41..90b03f64f4d1 100644
--- a/man/curs_ins_wch.3x
+++ b/man/curs_ins_wch.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2019,2020 Thomas E. Dickey *
+.\" Copyright 2019-2023,2024 Thomas E. Dickey *
.\" Copyright 2002-2010,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,42 +27,89 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_ins_wch.3x,v 1.10 2020/10/18 00:22:21 tom Exp $
-.TH curs_ins_wch 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: curs_ins_wch.3x,v 1.30 2024/04/20 19:18:18 tom Exp $
+.TH curs_ins_wch 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
.SH NAME
-\fBins_wch\fR,
-\fBmvins_wch\fR,
-\fBmvwins_wch\fR,
-\fBwins_wch\fR \- insert a complex character and rendition into a window
+\fB\%ins_wch\fP,
+\fB\%mvins_wch\fP,
+\fB\%mvwins_wch\fP,
+\fB\%wins_wch\fP \-
+insert a \fIcurses\fR complex character in a window
.SH SYNOPSIS
-#include <curses.h>
-.sp
-\fBint ins_wch(const cchar_t *\fR\fIwch\fR\fB);\fR
-.br
-\fBint wins_wch(WINDOW *\fR\fIwin\fP\fB, const cchar_t *\fR\fIwch\fR\fB);\fR
-.sp
-\fBint mvins_wch(int \fR\fIy\fP\fB, int \fR\fIx\fP\fB, const cchar_t *\fR\fIwch\fR\fB);\fR
-.br
-\fBint mvwins_wch(WINDOW *\fR\fIwin\fP\fB, int \fR\fIy\fP\fB, int \fR\fIx\fP\fB, const cchar_t *\fR\fIwch\fR\fB);\fR
+.nf
+\fB#include <curses.h>\fP
+.PP
+\fBint ins_wch(const cchar_t *\fIwch\fP);
+\fBint wins_wch(WINDOW *\fIwin\fP, const cchar_t *\fIwch\fP);
+\fBint mvins_wch(int \fIy\fP, int \fIx\fP, const cchar_t *\fIwch\fP);
+\fBint mvwins_wch(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, const cchar_t *\fIwch\fP);
+.fi
.SH DESCRIPTION
-These routines, insert the complex character \fIwch\fR with rendition
-before the character under the cursor.
-All characters to the right of the cursor are moved one space to the right,
-with the possibility of the rightmost character on the line being lost.
-The insertion operation does not change the cursor position.
-.SH RETURN VALUE
-If successful, these functions return \fBOK\fP.
-If not, they return \fBERR\fP.
+These functions insert the
+.I curses
+complex character
+.I wch
+at the cursor in the specified window
+.I win
+(or
+.BR \%stdscr ).
+The character previously at the cursor and any to its right move one
+cell to the right;
+the rightmost character on the line is discarded.
+The cursor does not advance.
+.SH "RETURN VALUE"
+These functions return \fBOK\fP on success and \fBERR\fP on failure.
+.PP
+Functions taking a
+.I \%WINDOW
+pointer argument fail if the pointer is
+.BR NULL .
+.PP
+Functions prefixed with \*(``mv\*('' first perform cursor movement and
+fail if the position
+.RI ( y ,
+.IR x )
+is outside the window boundaries.
+.SH NOTES
+A terminal's
+.B \%insert_character
+.RB ( ich1 )
+capability
+is not necessarily employed.
+.PP
+\fB\%ins_wch\fP,
+\fB\%mvins_wch\fP,
+and
+\fB\%mvwins_wch\fP
+may be implemented as macros.
+.SH PORTABILITY
+X/Open Curses,
+Issue 4 describes these functions.
+.PP
+SVr4 describes successful return values only as
+\*(``an integer value other than \fBERR\fP\*(''.
+.SH HISTORY
+SVr4 (1989) implemented these functions under the names
+.BR inswch ,
+.BR winswch ,
+.BR mvinswch ,
+and
+.BR mvwinswch .
+.SH "SEE ALSO"
+\fB\%curs_insch\fP(3X) describes comparable functions in the
+non-wide-character
+.I curses
+configuration.
.PP
-Functions with a \*(``mv\*('' prefix first perform a cursor movement using
-\fBwmove\fP, and return an error if the position is outside the window,
-or if the window pointer is null.
-.SH ERRORS
-No errors are defined.
-.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBcurs_insch\fR(3X).
+\fB\%curses\fP(3X),
+\fB\%terminfo\fP(5)
diff --git a/man/curs_ins_wstr.3x b/man/curs_ins_wstr.3x
index 76c44fb65cfd..4ebd3ace2c5a 100644
--- a/man/curs_ins_wstr.3x
+++ b/man/curs_ins_wstr.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2019,2020 Thomas E. Dickey *
+.\" Copyright 2019-2023,2024 Thomas E. Dickey *
.\" Copyright 2002-2012,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,85 +27,102 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_ins_wstr.3x,v 1.11 2020/10/17 23:21:25 tom Exp $
-.TH curs_ins_wstr 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
-.na
-.hy 0
+.\" $Id: curs_ins_wstr.3x,v 1.38 2024/04/20 21:23:08 tom Exp $
+.TH curs_ins_wstr 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
+.de bP
+.ie n .IP \(bu 4
+.el .IP \(bu 2
+..
.SH NAME
-\fBins_wstr\fR,
-\fBins_nwstr\fR,
-\fBwins_wstr\fR,
-\fBwins_nwstr\fR,
-\fBmvins_wstr\fR,
-\fBmvins_nwstr\fR,
-\fBmvwins_wstr\fR,
-\fBmvwins_nwstr\fR \- insert a wide-character string into a curses window
-.ad
-.hy
+\fB\%ins_wstr\fP,
+\fB\%ins_nwstr\fP,
+\fB\%wins_wstr\fP,
+\fB\%wins_nwstr\fP,
+\fB\%mvins_wstr\fP,
+\fB\%mvins_nwstr\fP,
+\fB\%mvwins_wstr\fP,
+\fB\%mvwins_nwstr\fP \-
+insert a wide-character string in a \fIcurses\fR window
.SH SYNOPSIS
.nf
-\fB#include <curses.h>\fR
-.sp
-\fBint ins_wstr(const wchar_t *\fR\fIwstr);\fR
-.br
-\fBint ins_nwstr(const wchar_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR
-.br
-\fBint wins_wstr(WINDOW *\fR\fIwin\fR\fB, const wchar_t *\fR\fIwstr\fR\fB);\fR
-.br
-\fBint wins_nwstr(WINDOW *\fR\fIwin\fR\fB, const wchar_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR
-.sp
-\fBint mvins_wstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const wchar_t *\fR\fIwstr\fR\fB);\fR
-.br
-\fBint mvins_nwstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const wchar_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR
-.br
-\fBint mvwins_wstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const wchar_t *\fR\fIwstr\fR\fB);\fR
-.br
-\fBint mvwins_nwstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const wchar_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR
+\fB#include <curses.h>
+.PP
+\fBint ins_wstr(const wchar_t *\fIwstr\fP);
+\fBint ins_nwstr(const wchar_t *\fIwstr\fP, int \fIn\fP);
+\fBint wins_wstr(WINDOW *\fIwin\fP, const wchar_t *\fIwstr\fP);
+\fBint wins_nwstr(WINDOW *\fIwin\fP, const wchar_t *\fIwstr\fP, int \fIn\fP);
+.PP
+\fBint mvins_wstr(int \fIy\fP, int \fIx\fP, const wchar_t *\fIwstr\fP);
+\fBint mvins_nwstr(int \fIy\fP, int \fIx\fP, const wchar_t *\fIwstr\fP, int \fIn\fP);
+\fBint mvwins_wstr(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, const wchar_t *\fIwstr\fP);
+\fBint mvwins_nwstr(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, const wchar_t *\fIwstr\fP, int \fIn\fP);
.fi
.SH DESCRIPTION
-These routines insert a \fBwchar_t\fR character string
+These routines insert a \fBwchar_t\fP character string
(as many characters as will fit on the line)
-before the character under the cursor.
+before the character under the cursor,
+as if calling \fBwins_wch\fP(3X).
All characters to the right of the cursor are shifted right,
with the possibility of the rightmost characters on the line being lost.
No wrapping is performed.
+.PP
The cursor position does not change
-(after moving to \fIy\fR, \fIx\fR, if specified).
-The four routines with \fIn\fR as the last argument
-insert a leading substring of at most \fIn\fR \fBwchar_t\fR characters.
-If \fIn\fR is less than 1, the entire string is inserted.
+(after moving to \fIy\fP, \fIx\fP, if specified).
.PP
-If a character in \fIwstr\fR is a tab, newline, carriage return or
-backspace, the cursor is moved appropriately within the window.
-A newline also does a \fBclrtoeol\fR before moving.
-Tabs are considered to be at every eighth column.
-If a character in \fIwstr\fR is another control character,
-it is drawn in the \fB^\fR\fIX\fR notation.
-Calling \fBwin_wch\fR after adding a control character
-(and moving to it, if necessary)
-does not return the control character,
-but instead returns a character in the ^-representation
-of the control character.
+The functions with \fIn\fP as the last argument
+insert a leading substring of at most \fIn\fP \fBwchar_t\fP characters.
+If \fIn\fP is less than zero, the entire string is inserted
+(stopping on a L'\e0' character).
+.PP
+Special characters are handled as in \fBwadd_wch\fP(3X).
+.SH RETURN VALUE
+All functions return the integer \fBERR\fP upon failure and \fBOK\fP on success.
+.PP
+X/Open Curses does not specify any error conditions.
+This implementation returns an error
+.bP
+if the \fIwin\fP parameter is null or
+.bP
+if the \fIwstr\fP parameter is null or
+.bP
+if the \fBwins_wch\fP function returns an error.
+.PP
+Functions prefixed with \*(``mv\*('' first perform cursor movement and
+fail if the position
+.RI ( y ,
+.IR x )
+is outside the window boundaries.
.SH NOTES
-Note that all but wins_nwstr may be macros.
+All but \fBwins_nwstr\fP may be macros.
.PP
-If the first character in the string is a nonspacing character, these
+If the first character in the string is a non-spacing character, these
functions will fail.
-XSI does not define what will happen if a nonspacing character follows
-a control character.
-.SH RETURN VALUE
-Upon successful completion, these functions return \fBOK\fP.
-Otherwise, they return \fBERR\fP.
+X/Open Curses does not define what will happen
+if a non-spacing character follows a control character.
+.SH PORTABILITY
+These functions are described in X/Open Curses, Issue 4,
+which adds \fI\%const\fP qualifiers to the arguments.
.PP
-Functions with a \*(``mv\*('' prefix first perform a cursor movement using
-\fBwmove\fP, and return an error if the position is outside the window,
-or if the window pointer is null.
+X/Open states that the entire string is inserted if \fIn\fP is less than 1.
+This is probably an error,
+because it is inconsistent with other functions,
+and differs from the X/Open implementation on Solaris.
.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBcurs_insstr\fR(3X),
-\fBcurs_in_wch\fR(3X),
-\fBcurs_ins_wch\fR(3X).
+\fB\%curs_insstr\fP(3X) describes comparable functions of the
+.I \%ncurses
+library in its non-wide-character configuration.
+.PP
+\fB\%curses\fP(3X),
+\fB\%curs_ins_wch\fP(3X),
+\fB\%curs_in_wch\fP(3X)
diff --git a/man/curs_insch.3x b/man/curs_insch.3x
index 1b4e3ee4c52e..baf2f6cc1bbb 100644
--- a/man/curs_insch.3x
+++ b/man/curs_insch.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2010,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,53 +27,89 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_insch.3x,v 1.19 2020/10/18 00:21:39 tom Exp $
-.TH curs_insch 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: curs_insch.3x,v 1.40 2024/04/20 19:03:47 tom Exp $
+.TH curs_insch 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
.SH NAME
-\fBinsch\fR,
-\fBwinsch\fR,
-\fBmvinsch\fR,
-\fBmvwinsch\fR \- insert a character before cursor in a \fBcurses\fR window
+\fB\%insch\fP,
+\fB\%winsch\fP,
+\fB\%mvinsch\fP,
+\fB\%mvwinsch\fP \-
+insert a \fIcurses\fP character in a window
.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\fBint insch(chtype \fP\fIch\fP\fB);\fR
-.br
-\fBint winsch(WINDOW *\fP\fIwin\fP\fB, chtype \fP\fIch\fP\fB);\fR
-.sp
-\fBint mvinsch(int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, chtype \fP\fIch\fP\fB);\fR
-.br
-\fBint mvwinsch(WINDOW *\fP\fIwin\fP\fB, int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, chtype \fP\fIch\fP\fB);\fR
-.br
+.nf
+\fB#include <curses.h>\fP
+.PP
+\fBint insch(chtype \fIch\fP);
+\fBint winsch(WINDOW *\fIwin\fP, chtype \fIch\fP);
+\fBint mvinsch(int \fIy\fP, int \fIx\fP, chtype \fIch\fP);
+\fBint mvwinsch(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, chtype \fIch\fP);
+.fi
.SH DESCRIPTION
-These routines insert the character \fIch\fR before the character under the
-cursor.
-All characters to the right of the cursor are moved one space to the
-right, with the possibility of the rightmost character on the line being lost.
-The insertion operation does not change the cursor position.
-.SH RETURN VALUE
-All routines that return an integer return \fBERR\fR upon failure and \fBOK\fP
-(SVr4 specifies only "an integer value other than \fBERR\fR")
-upon successful completion,
-unless otherwise noted in the preceding routine descriptions.
+These functions insert the
+.I curses
+character
+.I ch
+at the cursor in the specified window
+.I win
+(or
+.BR \%stdscr ).
+The character previously at the cursor and any to its right move one
+cell to the right;
+the rightmost character on the line is discarded.
+The cursor does not advance.
+.SH "RETURN VALUE"
+These functions return
+.B OK
+on success and
+.B ERR
+on failure.
+.PP
+Functions taking a
+.I \%WINDOW
+pointer argument fail if the pointer is
+.BR NULL .
.PP
-Functions with a \*(``mv\*('' prefix first perform a cursor movement using
-\fBwmove\fP, and return an error if the position is outside the window,
-or if the window pointer is null.
+Functions prefixed with \*(``mv\*('' first perform cursor movement and
+fail if the position
+.RI ( y ,
+.IR x )
+is outside the window boundaries.
.SH NOTES
-These routines do not necessarily imply use of a hardware insert character
-feature.
+.BR \%insch ,
+.BR \%mvinsch ,
+and
+.B \%mvwinsch
+may be implemented as macros.
.PP
-Note that \fBinsch\fR, \fBmvinsch\fR, and \fBmvwinsch\fR may be macros.
+A terminal's
+.B \%insert_character
+.RB ( ich1 )
+capability
+is not necessarily employed.
.SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4.
-.SH SEE ALSO
-\fBcurses\fR(3X).
+X/Open Curses,
+Issue 4 describes these functions.
+.PP
+SVr4
+.I curses
+describes a successful return value only as
+\*(``an integer value other than
+.BR ERR \*(''.
+.SH "SEE ALSO"
+\fB\%curs_ins_wch\fP(3X) describes comparable functions in the
+wide-character
+.I curses
+configuration.
.PP
-Comparable functions in the wide-character (ncursesw) library are
-described in
-\fBcurs_ins_wch\fR(3X).
+\fB\%curses\fP(3X),
+\fB\%terminfo\fP(5)
diff --git a/man/curs_insstr.3x b/man/curs_insstr.3x
index 4d5f123e928b..888d4250091f 100644
--- a/man/curs_insstr.3x
+++ b/man/curs_insstr.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2019,2020 Thomas E. Dickey *
+.\" Copyright 2019-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2010,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,79 +27,98 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_insstr.3x,v 1.26 2020/10/18 00:20:36 tom Exp $
-.TH curs_insstr 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: curs_insstr.3x,v 1.51 2024/04/20 21:20:07 tom Exp $
+.TH curs_insstr 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
+.de bP
+.ie n .IP \(bu 4
+.el .IP \(bu 2
+..
.SH NAME
-\fBinsstr\fR,
-\fBinsnstr\fR,
-\fBwinsstr\fR,
-\fBwinsnstr\fR,
-\fBmvinsstr\fR,
-\fBmvinsnstr\fR,
-\fBmvwinsstr\fR,
-\fBmvwinsnstr\fR \- insert string before cursor in a \fBcurses\fR window
+\fB\%insstr\fP,
+\fB\%insnstr\fP,
+\fB\%winsstr\fP,
+\fB\%winsnstr\fP,
+\fB\%mvinsstr\fP,
+\fB\%mvinsnstr\fP,
+\fB\%mvwinsstr\fP,
+\fB\%mvwinsnstr\fP \-
+insert a string in a \fIcurses\fR window
.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.br
-\fBint insstr(const char *\fP\fIstr\fP\fB);\fR
-.br
-\fBint insnstr(const char *\fP\fIstr\fP\fB, int \fP\fIn\fP\fB);\fR
-.br
-\fBint winsstr(WINDOW *\fP\fIwin\fP\fB, const char *\fP\fIstr\fP\fB);\fR
-.br
-\fBint winsnstr(WINDOW *\fP\fIwin\fP\fB, const char *\fP\fIstr\fP\fB, int \fP\fIn\fP\fB);\fR
-.sp
-\fBint mvinsstr(int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, const char *\fP\fIstr\fP\fB);\fR
-.br
-\fBint mvinsnstr(int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, const char *\fP\fIstr\fP\fB, int \fP\fIn\fP\fB);\fR
-.br
-\fBint mvwinsstr(WINDOW *\fP\fIwin\fP\fB, int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, const char *\fP\fIstr\fP\fB);\fR
-.br
-\fBint mvwinsnstr(WINDOW *\fP\fIwin\fP\fB, int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, const char *\fP\fIstr\fP\fB, int \fP\fIn\fP\fB);\fR
-.br
+.nf
+\fB#include <curses.h>
+\fBint insstr(const char *\fIstr\fP);
+\fBint insnstr(const char *\fIstr\fP, int \fIn\fP);
+\fBint winsstr(WINDOW *\fIwin\fP, const char *\fIstr\fP);
+\fBint winsnstr(WINDOW *\fIwin\fP, const char *\fIstr\fP, int \fIn\fP);
+.PP
+\fBint mvinsstr(int \fIy\fP, int \fIx\fP, const char *\fIstr\fP);
+\fBint mvinsnstr(int \fIy\fP, int \fIx\fP, const char *\fIstr\fP, int \fIn\fP);
+\fBint mvwinsstr(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, const char *\fIstr\fP);
+\fBint mvwinsnstr(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, const char *\fIstr\fP, int \fIn\fP);
+.fi
.SH DESCRIPTION
These routines insert a character string
(as many characters as will fit on the line)
-before the character under the cursor.
-All characters to the right of the cursor are shifted right
+before the character under the cursor,
+as if calling \fBwinsch\fP(3X).
+All characters to the right of the cursor are shifted right,
with the possibility of the rightmost characters on the line being lost.
+No wrapping is performed.
+.PP
The cursor position does not change
-(after moving to \fIy\fR, \fIx\fR, if specified).
-The functions with \fIn\fR as the last argument
-insert a leading substring of at most \fIn\fR characters.
-If \fIn\fR<=0, then the entire string is inserted.
+(after moving to \fIy\fP, \fIx\fP, if specified).
+.PP
+The functions with \fIn\fP as the last argument
+insert a leading substring of at most \fIn\fP characters.
+If \fIn\fP is less than zero, the entire string is inserted
+(stopping on a NUL character).
.PP
-Special characters are handled as in \fBaddch\fP.
+Special characters are handled as in \fBwaddch\fP(3X).
.SH RETURN VALUE
-All routines that return an integer return \fBERR\fR upon failure and \fBOK\fP
-(SVr4 specifies only "an integer value other than \fBERR\fR")
-upon successful completion,
-unless otherwise noted in the preceding routine descriptions.
+All functions return the integer \fBERR\fP upon failure and \fBOK\fP on success.
.PP
-X/Open defines no error conditions.
-In this implementation,
-if the window parameter is null or the str parameter is null,
-an error is returned.
+X/Open Curses does not specify any error conditions.
+This implementation returns an error
+.bP
+if the \fIwin\fP parameter is null or
+.bP
+if the \fIstr\fP parameter is null or
+.bP
+the \fBwinsch\fP(3X) function returns an error.
.PP
-Functions with a \*(``mv\*('' prefix first perform a cursor movement using
-\fBwmove\fP, and return an error if the position is outside the window,
-or if the window pointer is null.
+Functions prefixed with \*(``mv\*('' first perform cursor movement and
+fail if the position
+.RI ( y ,
+.IR x )
+is outside the window boundaries.
.SH NOTES
-Note that all but \fBwinsnstr\fR may be macros.
+All but \fBwinsnstr\fP may be macros.
.SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4, which adds
-const qualifiers to the arguments.
-.LP
-The Single Unix Specification, Version 2 states that
+These functions are described in X/Open Curses, Issue 4,
+which adds \fI\%const\fP qualifiers to the arguments.
+.PP
+The Single Unix Specification, Version 2 states that
\fBinsnstr\fP and \fBwinsnstr\fP perform wrapping.
This is probably an error, since it makes this group of functions inconsistent.
Also, no implementation of curses documents this inconsistency.
+.PP
+X/Open states that the entire string is inserted if \fIn\fP is less than 1.
+This is probably an error,
+because it is inconsistent with other functions,
+and differs from the SVr4 and X/Open implementations on Solaris.
.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBcurs_util\fR(3X),
-\fBcurs_clear\fR(3X),
-\fBcurs_inch\fR(3X).
+\fB\%curses\fP(3X),
+\fB\%curs_inch\fP(3X),
+\fB\%curs_ins_wstr\fP(3X),
+\fB\%curs_util\fP(3X)
diff --git a/man/curs_instr.3x b/man/curs_instr.3x
index 7cc4b4bc1a1c..5b6e4b760301 100644
--- a/man/curs_instr.3x
+++ b/man/curs_instr.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2010,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,73 +27,104 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_instr.3x,v 1.22 2020/10/18 00:18:27 tom Exp $
-.TH curs_instr 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: curs_instr.3x,v 1.51 2024/04/20 21:24:19 tom Exp $
+.TH curs_instr 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
.SH NAME
-\fBinstr\fR,
-\fBinnstr\fR,
-\fBwinstr\fR,
-\fBwinnstr\fR,
-\fBmvinstr\fR,
-\fBmvinnstr\fR,
-\fBmvwinstr\fR,
-\fBmvwinnstr\fR \- get a string of characters from a \fBcurses\fR window
+\fB\%instr\fP,
+\fB\%innstr\fP,
+\fB\%winstr\fP,
+\fB\%winnstr\fP,
+\fB\%mvinstr\fP,
+\fB\%mvinnstr\fP,
+\fB\%mvwinstr\fP,
+\fB\%mvwinnstr\fP \-
+get a string from a \fIcurses\fR window
.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\fBint instr(char *\fP\fIstr\fP\fB);\fR
-.br
-\fBint innstr(char *\fP\fIstr\fP\fB, int \fP\fIn\fP\fB);\fR
-.br
-\fBint winstr(WINDOW *\fP\fIwin\fP\fB, char *\fP\fIstr\fP\fB);\fR
-.br
-\fBint winnstr(WINDOW *\fP\fIwin\fP\fB, char *\fP\fIstr\fP\fB, int \fP\fIn\fP\fB);\fR
-.sp
-\fBint mvinstr(int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, char *\fP\fIstr\fP\fB);\fR
-.br
-\fBint mvinnstr(int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, char *\fP\fIstr\fP\fB, int \fP\fIn\fP\fB);\fR
-.br
-\fBint mvwinstr(WINDOW *\fP\fIwin\fP\fB, int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, char *\fP\fIstr\fP\fB);\fR
-.br
-\fBint mvwinnstr(WINDOW *\fP\fIwin\fP\fB, int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, char *\fP\fIstr\fP\fB, int \fP\fIn\fP\fB);\fR
-.br
+.nf
+\fB#include <curses.h>
+.PP
+\fBint instr(char *\fIstr\fP);
+\fBint innstr(char *\fIstr\fP, int \fIn\fP);
+\fBint winstr(WINDOW *\fIwin\fP, char *\fIstr\fP);
+\fBint winnstr(WINDOW *\fIwin\fP, char *\fIstr\fP, int \fIn\fP);
+.PP
+\fBint mvinstr(int \fIy\fP, int \fIx\fP, char *\fIstr\fP);
+\fBint mvinnstr(int \fIy\fP, int \fIx\fP, char *\fIstr\fP, int \fIn\fP);
+\fBint mvwinstr(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, char *\fIstr\fP);
+\fBint mvwinnstr(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, char *\fIstr\fP, int \fIn\fP);
+.fi
.SH DESCRIPTION
-These routines return a string of characters in \fIstr\fR, extracted starting
-at the current cursor position in the named window.
+These routines return a string of characters in \fIstr\fP,
+starting at the current cursor position in the named window.
Attributes are stripped from the characters.
-The four
-functions with \fIn\fR as the last argument return a leading substring at most
-\fIn\fR characters long (exclusive of the trailing NUL).
+.PP
+The four functions with \fIn\fP as the last argument return
+a leading substring at most \fIn\fP characters long
+(exclusive of the trailing NUL).
+Transfer stops at the end of the current line, or when \fIn\fP characters have
+been stored at the location referenced by \fIstr\fP.
.SH RETURN VALUE
-All of the functions return \fBERR\fR upon failure,
+All of the functions return \fBERR\fP upon failure,
or the number of characters actually read into the string.
.PP
X/Open Curses defines no error conditions.
-In this implementation:
+This implementation returns an error
.bP
-If the \fIwin\fP parameter is null, an error is returned,
+if the \fIwin\fP parameter is null or
.bP
-If the \fIchstr\fP parameter is null, an error is returned,
+if the \fIchstr\fP parameter is null.
.PP
-Functions with a \*(``mv\*('' prefix first perform a cursor movement using
-\fBwmove\fP, and return an error if the position is outside the window,
-or if the window pointer is null.
+Functions prefixed with \*(``mv\*('' first perform cursor movement and
+fail if the position
+.RI ( y ,
+.IR x )
+is outside the window boundaries.
.SH NOTES
-Note that all routines except \fBwinnstr\fR may be macros.
+All routines except \fBwinnstr\fP may be macros.
+.PP
+Reading a line that overflows the array pointed to by
+\fIstr\fP
+with
+\fBinstr\fP,
+\fBmvinstr\fP,
+\fBmvwinstr\fP
+or
+\fBwinstr\fP
+causes undefined results.
+Therefore, the use of
+\fBinnstr\fP,
+\fBmvinnstr\fP,
+\fBmvwinnstr\fP, or
+\fBwinnstr\fP
+is recommended.
.SH PORTABILITY
SVr4 does not
document whether a length limit includes or excludes the trailing NUL.
.PP
-The ncurses library extends the XSI description by allowing a negative
-value for \fIn\fR.
+The \fI\%ncurses\fP library extends the X/Open Curses description by allowing a
+negative value for \fIn\fP.
In this case, the functions return the string ending at the right margin.
.SH SEE ALSO
-\fBcurses\fR(3X).
+\fB\%curs_ins_wstr\fP(3X) describes comparable functions of the
+.I \%ncurses
+library in its wide-character configuration
+.RI ( \%ncursesw ).
+.PP
+\fB\%curses\fP(3X),
+\fB\%curs_inch\fP(3X),
+\fB\%curs_inchstr\fP(3X)
diff --git a/man/curs_inwstr.3x b/man/curs_inwstr.3x
index b3899c4b94f2..eec361d77af9 100644
--- a/man/curs_inwstr.3x
+++ b/man/curs_inwstr.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 2002-2012,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,80 +27,115 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_inwstr.3x,v 1.14 2020/10/17 23:22:11 tom Exp $
-.TH curs_inwstr 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: curs_inwstr.3x,v 1.41 2024/04/20 21:20:07 tom Exp $
+.TH curs_inwstr 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.de bP
+.ie n .IP \(bu 4
+.el .IP \(bu 2
+..
.SH NAME
-\fBinwstr\fR,
-\fBinnwstr\fR,
-\fBwinwstr\fR,
-\fBwinnwstr\fR,
-\fBmvinwstr\fR,
-\fBmvinnwstr\fR,
-\fBmvwinwstr\fR,
-\fBmvwinnwstr\fR \- get a string of \fBwchar_t\fR characters from a curses window
+\fB\%inwstr\fP,
+\fB\%innwstr\fP,
+\fB\%winwstr\fP,
+\fB\%winnwstr\fP,
+\fB\%mvinwstr\fP,
+\fB\%mvinnwstr\fP,
+\fB\%mvwinwstr\fP,
+\fB\%mvwinnwstr\fP \-
+get a wide-character string from a \fIcurses\fR window
.SH SYNOPSIS
.nf
-\fB#include <curses.h> \fR
-.sp
-\fBint inwstr(\fR\fBwchar_t *\fR\fIwstr\fR\fB);\fR
-.br
-\fBint innwstr(\fR\fBwchar_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR
-.br
-\fBint winwstr(\fR\fBWINDOW *\fR\fIwin\fR\fB, wchar_t *\fR\fIwstr\fR\fB);\fR
-.br
-\fBint winnwstr(\fR\fBWINDOW *\fR\fIwin\fR\fB, wchar_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR
-.sp
-\fBint mvinwstr(\fR\fBint \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wchar_t *\fR\fIwstr\fR\fB);\fR
-.br
-\fBint mvinnwstr(\fR\fBint \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wchar_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR
-.br
-\fBint mvwinwstr(\fR\fBWINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wchar_t *\fR\fIwstr\fR\fB);\fR
-.br
-\fBint mvwinnwstr(\fR\fBWINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wchar_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR
+\fB#include <curses.h>
+.PP
+\fBint inwstr(wchar_t *\fIwstr\fP);
+\fBint innwstr(wchar_t *\fIwstr\fP, int \fIn\fP);
+\fBint winwstr(WINDOW *\fIwin\fP, wchar_t *\fIwstr\fP);
+\fBint winnwstr(WINDOW *\fIwin\fP, wchar_t *\fIwstr\fP, int \fIn\fP);
+.PP
+\fBint mvinwstr(int \fIy\fP, int \fIx\fP, wchar_t *\fIwstr\fP);
+\fBint mvinnwstr(int \fIy\fP, int \fIx\fP, wchar_t *\fIwstr\fP, int \fIn\fP);
+\fBint mvwinwstr(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, wchar_t *\fIwstr\fP);
+\fBint mvwinnwstr(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, wchar_t *\fIwstr\fP, int \fIn\fP);
.fi
.SH DESCRIPTION
+These routines return a string of \fBwchar_t\fP wide characters in \fIwstr\fP,
+starting at the current cursor position in the named window.
.PP
-These routines return a string of \fBwchar_t\fR wide characters in \fIwstr\fR,
-extracted starting at the current cursor position in the named window.
-.PP
-The four functions with \fIn\fR as the last argument return
-a leading substring at most \fIn\fR characters long
+The four functions with \fIn\fP as the last argument return
+a leading substring at most \fIn\fP characters long
(exclusive of the trailing NUL).
-Transfer stops at the end of the current line, or when \fIn\fR characters have
-been stored at the location referenced by \fIwstr\fR.
+Transfer stops at the end of the current line, or when \fIn\fP characters have
+been stored at the location referenced by \fIwstr\fP.
.PP
-If the size \fIn\fR is not large enough to store a complete complex character,
+If the size \fIn\fP is not large enough to store a complete complex character,
an error is generated.
-.SH NOTES
-.PP
-All routines except
-\fBwinnwstr\fR
-may be macros.
-.PP
-Each cell in the window holds a complex character (i.e., base-
-and combining-characters) together with attributes and color.
-These functions store only the wide characters,
-ignoring attributes and color.
-Use \fBin_wchstr\fP to return the complex characters from a window.
.SH RETURN VALUE
All routines return
-\fBERR\fR
+\fBERR\fP
upon failure.
Upon
-successful completion, the *\fBinwstr\fR
+successful completion, the *\fBinwstr\fP
routines return
-\fBOK\fR, and the *\fBinnwstr\fR
+\fBOK\fP, and the *\fBinnwstr\fP
routines return the
number of characters read into the string.
.PP
-Functions with a \*(``mv\*('' prefix first perform a cursor movement using
-\fBwmove\fP, and return an error if the position is outside the window,
-or if the window pointer is null.
+X/Open defines no error conditions.
+This implementation returns an error
+.bP
+if the \fIwin\fP parameter is null or
+.bP
+if the \fIwstr\fP parameter is null, or
+.bP
+if no characters could be read.
+.PP
+Functions prefixed with \*(``mv\*('' first perform cursor movement and
+fail if the position
+.RI ( y ,
+.IR x )
+is outside the window boundaries.
+.SH NOTES
+All routines except
+\fBwinnwstr\fP
+may be macros.
+.PP
+Each cell in the window holds a complex character
+(a spacing character and zero or more non-spacing characters)
+together with attributes and color.
+These functions store only the wide characters,
+ignoring attributes and color.
+Use \fBin_wchstr\fP to return the complex characters from a window.
+.PP
+Reading a line that overflows the array pointed to by
+\fIwstr\fP
+with
+\fBinwstr\fP,
+\fBmvinwstr\fP,
+\fBmvwinwstr\fP
+or
+\fBwinwstr\fP
+causes undefined results.
+Therefore, the use of
+\fBinnwstr\fP,
+\fBmvinnwstr\fP,
+\fBmvwinnwstr\fP, or
+\fBwinnwstr\fP
+is recommended.
+.SH PORTABILITY
+These functions are described in X/Open Curses, Issue 4.
.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBcurs_instr\fR(3X),
-\fBcurs_in_wchstr\fR(3X)
+\fB\%curses\fP(3X),
+\fB\%curs_inch\fP(3X),
+\fB\%curs_inchstr\fP(3X),
+\fB\%curs_instr\fP(3X),
+\fB\%curs_in_wchstr\fP(3X)
diff --git a/man/curs_kernel.3x b/man/curs_kernel.3x
index a4e6c808b08e..e85c132768a3 100644
--- a/man/curs_kernel.3x
+++ b/man/curs_kernel.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2016,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,129 +27,123 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_kernel.3x,v 1.29 2020/10/17 23:22:35 tom Exp $
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: curs_kernel.3x,v 1.61 2024/04/20 21:24:19 tom Exp $
+.TH curs_kernel 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
-.TH curs_kernel 3X ""
-.na
-.hy 0
.SH NAME
-\fBdef_prog_mode\fR,
-\fBdef_shell_mode\fR,
-\fBreset_prog_mode\fR,
-\fBreset_shell_mode\fR,
-\fBresetty\fR,
-\fBsavetty\fR,
-\fBgetsyx\fR,
-\fBsetsyx\fR,
-\fBripoffline\fR,
-\fBcurs_set\fR,
-\fBnapms\fR \- low-level \fBcurses\fR routines
-.ad
-.hy
+\fB\%def_prog_mode\fP,
+\fB\%def_shell_mode\fP,
+\fB\%reset_prog_mode\fP,
+\fB\%reset_shell_mode\fP,
+\fB\%resetty\fP,
+\fB\%savetty\fP,
+\fB\%getsyx\fP,
+\fB\%setsyx\fP,
+\fB\%ripoffline\fP,
+\fB\%curs_set\fP,
+\fB\%napms\fP \-
+low-level \fIcurses\fR routines
.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\fBint def_prog_mode(void);\fR
-.br
-\fBint def_shell_mode(void);\fR
-.sp
-\fBint reset_prog_mode(void);\fR
-.br
-\fBint reset_shell_mode(void);\fR
-.sp
-\fBint resetty(void);\fR
-.br
-\fBint savetty(void);\fR
-.sp
-\fBvoid getsyx(int \fP\fIy\fP\fB, int \fP\fIx\fP\fB);\fR
-.br
-\fBvoid setsyx(int \fP\fIy\fP\fB, int \fP\fIx\fP\fB);\fR
-.sp
-\fBint ripoffline(int \fP\fIline\fP\fB, int (*\fP\fIinit\fP\fB)(WINDOW *, int));\fR
-.br
-\fBint curs_set(int \fP\fIvisibility\fP\fB);\fR
-.br
-\fBint napms(int \fP\fIms\fP\fB);\fR
-.br
+.nf
+\fB#include <curses.h>
+.PP
+\fBint def_prog_mode(void);
+\fBint def_shell_mode(void);
+.PP
+\fBint reset_prog_mode(void);
+\fBint reset_shell_mode(void);
+.PP
+\fBint resetty(void);
+\fBint savetty(void);
+.PP
+\fBvoid getsyx(int \fIy\fP, int \fIx\fP);
+\fBvoid setsyx(int \fIy\fP, int \fIx\fP);
+.PP
+\fBint ripoffline(int \fIline\fP, int (*\fIinit\fP)(WINDOW *, int));
+\fBint curs_set(int \fIvisibility\fP);
+\fBint napms(int \fIms\fP);
+.fi
.SH DESCRIPTION
The following routines give low-level access
-to various \fBcurses\fR capabilities.
+to various \fBcurses\fP capabilities.
These routines typically are used inside library routines.
-.SS def_prog_mode, def_shell_mode
-.PP
-The \fBdef_prog_mode\fR and \fBdef_shell_mode\fR routines save the
-current terminal modes as the \*(``program\*('' (in \fBcurses\fR) or \*(``shell\*(''
-(not in \fBcurses\fR) state for use by the \fBreset_prog_mode\fR and
-\fBreset_shell_mode\fR routines.
-This is done automatically by \fBinitscr\fR.
+.SS "def_prog_mode, def_shell_mode"
+The \fBdef_prog_mode\fP and \fBdef_shell_mode\fP routines save the
+current terminal modes as the \*(``program\*(''
+(in \fBcurses\fP) or \*(``shell\*(''
+(not in \fBcurses\fP) state for use by the \fBreset_prog_mode\fP and
+\fBreset_shell_mode\fP routines.
+This is done automatically by \fBinitscr\fP.
There is one such save area for each screen context
-allocated by \fBnewterm\fR.
-.SS reset_prog_mode, reset_shell_mode
-.PP
-The \fBreset_prog_mode\fR and \fBreset_shell_mode\fR routines restore
-the terminal to \*(``program\*('' (in \fBcurses\fR) or \*(``shell\*('' (out of
-\fBcurses\fR) state.
-These are done automatically by \fBendwin\fR(3X) and,
-after an \fBendwin\fR, by \fBdoupdate\fR,
+allocated by \fBnewterm\fP.
+.SS "reset_prog_mode, reset_shell_mode"
+The \fBreset_prog_mode\fP and \fBreset_shell_mode\fP routines restore
+the terminal to \*(``program\*('' (in \fBcurses\fP) or \*(``shell\*('' (out of
+\fBcurses\fP) state.
+These are done automatically by \fBendwin\fP(3X) and,
+after an \fBendwin\fP, by \fBdoupdate\fP,
so they normally are not called.
-.SS resetty, savetty
-.PP
-The \fBresetty\fR and \fBsavetty\fR routines save and restore the
+.SS "resetty, savetty"
+The \fBresetty\fP and \fBsavetty\fP routines save and restore the
state of the terminal modes.
-\fBsavetty\fR saves the current state in
-a buffer and \fBresetty\fR restores the state to what it was at the
-last call to \fBsavetty\fR.
+\fBsavetty\fP saves the current state in
+a buffer and \fBresetty\fP restores the state to what it was at the
+last call to \fBsavetty\fP.
.SS getsyx
-.PP
-The \fBgetsyx\fR routine returns the current coordinates
-of the \fIvirtual screen\fP cursor in \fIy\fR and \fIx\fR.
-If \fBleaveok\fR is currently \fBTRUE\fR, then
-\fB\-1\fR,\fB\-1\fR is returned.
+The \fBgetsyx\fP routine returns the current coordinates
+of the \fIvirtual screen\fP cursor in \fIy\fP and \fIx\fP.
+If \fBleaveok\fP is currently \fBTRUE\fP, then
+\fB\-1\fP,\fB\-1\fP is returned.
If lines have been removed from the top of the
-screen, using \fBripoffline\fR, \fIy\fR and \fIx\fR include these lines;
-therefore, \fIy\fR and \fIx\fR should be used only as arguments for
-\fBsetsyx\fR.
+screen, using \fBripoffline\fP, \fIy\fP and \fIx\fP include these lines;
+therefore, \fIy\fP and \fIx\fP should be used only as arguments for
+\fBsetsyx\fP.
.PP
Few applications will use this feature,
most use \fBgetyx\fP instead.
.SS setsyx
-.PP
-The \fBsetsyx\fR routine sets
-the \fIvirtual screen\fP cursor to \fIy\fR, \fIx\fR.
-If \fIy\fR and \fIx\fR are both \fB\-1\fR, then
-\fBleaveok\fR is set.
-The two routines \fBgetsyx\fR and \fBsetsyx\fR
+The \fBsetsyx\fP routine sets
+the \fIvirtual screen\fP cursor to \fIy\fP, \fIx\fP.
+If \fIy\fP and \fIx\fP are both \fB\-1\fP, then
+\fBleaveok\fP is set.
+The two routines \fBgetsyx\fP and \fBsetsyx\fP
are designed to be used by a library routine, which manipulates
-\fBcurses\fR windows but does not want to change the current position
+\fBcurses\fP windows but does not want to change the current position
of the program's cursor.
-The library routine would call \fBgetsyx\fR
+The library routine would call \fBgetsyx\fP
at the beginning, do its manipulation of its own windows, do a
-\fBwnoutrefresh\fR on its windows, call \fBsetsyx\fR, and then call
-\fBdoupdate\fR.
+\fBwnoutrefresh\fP on its windows, call \fBsetsyx\fP, and then call
+\fBdoupdate\fP.
.PP
Few applications will use this feature,
most use \fBwmove\fP instead.
.SS ripoffline
-.PP
-The \fBripoffline\fR routine provides access to the same facility that
-\fBslk_init\fR [see \fBcurs_slk\fR(3X)] uses to reduce the size of the
-screen.
-\fBripoffline\fR must be called before \fBinitscr\fR or
-\fBnewterm\fR is called, to prepare these initial actions:
+.B \%ripoffline
+provides access to the same facility that \fB\%slk_init\fP(3X) uses to
+reduce the size of the screen.
+\fB\%ripoffline\fP must be called before \fBinitscr\fP or
+\fBnewterm\fP is called, to prepare these initial actions:
.bP
-If \fIline\fR is positive, a line is removed from the top of \fBstdscr\fR.
+If \fIline\fP is positive, a line is removed from the top of \fBstdscr\fP.
.bP
-if \fIline\fR is negative, a line is removed from the bottom.
+if \fIline\fP is negative, a line is removed from the bottom.
.PP
-When the resulting initialization is done inside \fBinitscr\fR, the
-routine \fBinit\fR (supplied by the user) is called with two
+When the resulting initialization is done inside \fBinitscr\fP, the
+routine \fBinit\fP (supplied by the user) is called with two
arguments:
.bP
a window pointer to the one-line window that has been
@@ -157,75 +151,81 @@ allocated and
.bP
an integer with the number of columns in the window.
.PP
-Inside this initialization routine, the integer variables \fBLINES\fR
-and \fBCOLS\fR (defined in \fB<curses.h>\fR) are not guaranteed to be
-accurate and \fBwrefresh\fR or \fBdoupdate\fR must not be called.
-It is allowable to call \fBwnoutrefresh\fR during the initialization routine.
+Inside this initialization routine, the integer variables \fBLINES\fP
+and \fBCOLS\fP (defined in \fB<curses.h>\fP) are not guaranteed to be
+accurate and \fBwrefresh\fP or \fBdoupdate\fP must not be called.
+It is allowable to call \fBwnoutrefresh\fP during the initialization routine.
.PP
-\fBripoffline\fR can be called up to five times before calling \fBinitscr\fR or
-\fBnewterm\fR.
+\fBripoffline\fP can be called up to five times before calling \fBinitscr\fP or
+\fBnewterm\fP.
.SS curs_set
-.PP
-The \fBcurs_set\fR routine sets the cursor state to invisible,
-normal, or very visible for \fBvisibility\fR equal to \fB0\fR,
-\fB1\fR, or \fB2\fR respectively.
-If the terminal supports the \fIvisibility\fR requested,
-the previous \fIcursor\fR state is returned;
-otherwise, \fBERR\fR is returned.
+The \fBcurs_set\fP routine sets the cursor state to invisible,
+normal, or very visible for \fBvisibility\fP equal to \fB0\fP,
+\fB1\fP, or \fB2\fP respectively.
+If the terminal supports the \fIvisibility\fP requested,
+the previous \fIcursor\fP state is returned;
+otherwise, \fBERR\fP is returned.
.SS napms
-.PP
-The \fBnapms\fR routine is used to sleep for \fIms\fR milliseconds.
+.B \%napms
+sleeps for
+.I ms
+milliseconds.
+If
+.I ms
+exceeds 30,000
+(thirty seconds),
+it is capped at that value.
.SH RETURN VALUE
-Except for \fBcurs_set\fR, these routines always return \fBOK\fR.
+Except for \fBcurs_set\fP, these routines always return \fBOK\fP.
.PP
-\fBcurs_set\fR
-returns the previous cursor state, or \fBERR\fR if the
-requested \fIvisibility\fR is not supported.
+\fBcurs_set\fP
+returns the previous cursor state, or \fBERR\fP if the
+requested \fIvisibility\fP is not supported.
.PP
X/Open defines no error conditions.
In this implementation
.TP 5
-.na
-.hy 0
-\fBdef_prog_mode\fR, \fBdef_shell_mode\fR, \fBreset_prog_mode\fR, \fBreset_shell_mode\fR
-.hy
-.ad
+\fBdef_prog_mode\fP, \fBdef_shell_mode\fP, \fBreset_prog_mode\fP, \fBreset_shell_mode\fP
return an error
if the terminal was not initialized, or
if the I/O call to obtain the terminal settings fails.
.TP 5
\fBripoffline\fP
returns an error if the maximum number of ripped-off lines
-exceeds the maximum (NRIPS = 5).
+exceeds the maximum (5).
.SH NOTES
-Note that \fBgetsyx\fR is a macro, so \fB&\fR is not necessary before
-the variables \fIy\fR and \fIx\fR.
+Note that \fBgetsyx\fP is a macro, so \fB&\fP is not necessary before
+the variables \fIy\fP and \fIx\fP.
.PP
Older SVr4 man pages warn that the return value
-of \fBcurs_set\fR \*(``is currently incorrect\*(''.
+of \fBcurs_set\fP \*(``is currently incorrect\*(''.
This implementation gets it right, but it may be unwise to count
on the correctness of the return value anywhere else.
.PP
-Both ncurses and SVr4 will call \fBcurs_set\fR in \fBendwin\fR
-if \fBcurs_set\fR
+Both \fI\%ncurses\fP and SVr4 will call \fBcurs_set\fP in \fBendwin\fP
+if \fBcurs_set\fP
has been called to make the cursor other than normal, i.e., either
invisible or very visible.
-There is no way for ncurses to determine the initial cursor state to
-restore that.
+There is no way for \fI\%ncurses\fP to determine the initial cursor
+state to restore that.
.SH PORTABILITY
-The \fIvirtual screen\fP functions \fBsetsyx\fR and \fBgetsyx\fR
-are not described in the XSI Curses standard, Issue 4.
-All other functions are as described in XSI Curses.
+The \fIvirtual screen\fP functions \fBsetsyx\fP and \fBgetsyx\fP
+are not described in X/Open Curses, Issue 4.
+All other functions are as described in X/Open Curses.
.PP
-The SVr4 documentation describes \fBsetsyx\fR and \fBgetsyx\fR
+The SVr4 documentation describes \fBsetsyx\fP and \fBgetsyx\fP
as having return type int.
This is misleading, as they are macros with no documented semantics
for the return value.
+.PP
+If interrupted, \fI\%ncurses\fP restarts \fBnapms\fP.
+That, and the limitation to 30 seconds,
+are different from other implementations.
.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBcurs_initscr\fR(3X),
-\fBcurs_outopts\fR(3X),
-\fBcurs_refresh\fR(3X),
-\fBcurs_scr_dump\fR(3X),
-\fBcurs_slk\fR(3X),
-\fBcurs_variables\fR(3X).
+\fB\%curses\fP(3X),
+\fB\%curs_initscr\fP(3X),
+\fB\%curs_outopts\fP(3X),
+\fB\%curs_refresh\fP(3X),
+\fB\%curs_scr_dump\fP(3X),
+\fB\%curs_slk\fP(3X),
+\fB\%curs_variables\fP(3X)
diff --git a/man/curs_legacy.3x b/man/curs_legacy.3x
index c2eb86b8834c..24be01b85269 100644
--- a/man/curs_legacy.3x
+++ b/man/curs_legacy.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2019,2020 Thomas E. Dickey *
+.\" Copyright 2019-2023,2024 Thomas E. Dickey *
.\" Copyright 2007-2015,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,82 +27,112 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_legacy.3x,v 1.12 2020/10/18 00:16:04 tom Exp $
+.\" $Id: curs_legacy.3x,v 1.32 2024/03/16 15:35:01 tom Exp $
+.TH curs_legacy 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
-.TH curs_legacy 3X ""
.SH NAME
-curs_legacy \- get \fBcurses\fP cursor and window coordinates, attributes
+\fB\%getattrs\fP,
+\fB\%getbegx\fP,
+\fB\%getbegy\fP,
+\fB\%getcurx\fP,
+\fB\%getcury\fP,
+\fB\%getmaxx\fP,
+\fB\%getmaxy\fP,
+\fB\%getparx\fP,
+\fB\%getpary\fP \-
+get \fIcurses\fR cursor and window coordinates or attributes (legacy)
.SH SYNOPSIS
-\fB#include <curses.h>\fP
-.sp
-\fBint getattrs(const WINDOW *\fP\fIwin\fP\fB);\fP
-.sp
-\fBint getbegx(const WINDOW *\fP\fIwin\fP\fB);\fP
-.br
-\fBint getbegy(const WINDOW *\fP\fIwin\fP\fB);\fP
-.sp
-\fBint getcurx(const WINDOW *\fP\fIwin\fP\fB);\fP
-.br
-\fBint getcury(const WINDOW *\fP\fIwin\fP\fB);\fP
-.sp
-\fBint getmaxx(const WINDOW *\fP\fIwin\fP\fB);\fP
-.br
-\fBint getmaxy(const WINDOW *\fP\fIwin\fP\fB);\fP
-.sp
-\fBint getparx(const WINDOW *\fP\fIwin\fP\fB);\fP
-.br
-\fBint getpary(const WINDOW *\fP\fIwin\fP\fB);\fP
-.br
+.nf
+\fB#include <curses.h>
+.PP
+\fBint getattrs(const WINDOW *\fIwin\fP);
+.PP
+\fBint getbegx(const WINDOW *\fIwin\fP);
+\fBint getbegy(const WINDOW *\fIwin\fP);
+.PP
+\fBint getcurx(const WINDOW *\fIwin\fP);
+\fBint getcury(const WINDOW *\fIwin\fP);
+.PP
+\fBint getmaxx(const WINDOW *\fIwin\fP);
+\fBint getmaxy(const WINDOW *\fIwin\fP);
+.PP
+\fBint getparx(const WINDOW *\fIwin\fP);
+\fBint getpary(const WINDOW *\fIwin\fP);
+.fi
.SH DESCRIPTION
-These legacy functions are simpler to use than the X/Open Curses functions:
+These legacy functions are simpler to use
+than the X/Open \fIcurses\fP functions:
.bP
-The \fBgetattrs\fP function returns the same attribute data as \fBwattr_get\fP.
+The \fB\%getattrs\fP function returns the same attribute data
+as \fB\%wattr_get\fP.
.IP
-However, \fBgetattrs\fP returns an integer (actually a \fBchtype\fP),
-while \fBwattr_get\fP returns the current color pair in a separate parameter.
+However, \fB\%getattrs\fP returns an integer (actually a \fB\%chtype\fP),
+while \fB\%wattr_get\fP returns the current color pair in a separate parameter.
In the wide-character library configuration,
-color pairs may not fit into a \fBchtype\fP,
-so \fBwattr_get\fP is the only way to obtain the color information.
+color pairs may not fit into a \fB\%chtype\fP,
+so \fB\%wattr_get\fP is the only way to obtain the color information.
.IP
-Because \fBgetattrs\fP returns the attributes in a single parameter,
+Because \fB\%getattrs\fP returns the attributes in a single parameter,
it would not be possible for an application to distinguish that from
\fBERR\fP (a \fI-1\fP).
-If the window parameter is null, \fBgetattrs\fP returns \fBA_NORMAL\fP (zero).
+If the window parameter is null, \fB\%getattrs\fP
+returns \fB\%A_NORMAL\fP (zero).
.bP
-The \fBgetbegy\fP and \fBgetbegx\fP functions return the same
-data as \fBgetbegyx\fP.
+The \fB\%getbegy\fP and \fB\%getbegx\fP functions return the same
+data as \fB\%getbegyx\fP.
.bP
-The \fBgetcury\fP and \fBgetcurx\fP functions return the same
-data as \fBgetyx\fP.
+The \fB\%getcury\fP and \fB\%getcurx\fP functions return the same
+data as \fB\%getyx\fP.
.bP
-The \fBgetmaxy\fP and \fBgetmaxx\fP functions return the same
-data as \fBgetmaxyx\fP.
+The \fB\%getmaxy\fP and \fB\%getmaxx\fP functions return the same
+data as \fB\%getmaxyx\fP.
.bP
-The \fBgetpary\fP and \fBgetparx\fP functions return the same
-data as \fBgetparyx\fP.
+The \fB\%getpary\fP and \fB\%getparx\fP functions return the same
+data as \fB\%getparyx\fP.
.SH RETURN VALUE
Except as noted,
these functions return an integer,
or \fBERR\fP if the window parameter is null.
.SH NOTES
-All of these interfaces are provided as macros and functions.
-The macros are suppressed (and only the functions provided)
-when \fBNCURSES_OPAQUE\fP is defined.
-The standard forms such as \fBgetyx\fP must be implemented as macros,
-and (in this implementation) are defined in terms of the functions
-described here,
-to avoid reliance on internal details of the WINDOW structure.
+All of these interfaces are implemented as macros and functions.
+The macros are suppressed
+(and only the functions provided)
+in an \*(``opaque\*(''
+.I \%ncurses
+build,
+which defines the preprocessor symbol
+.BR \%NCURSES_OPAQUE .
+See section \*(``ALTERNATE CONFIGURATIONS\*('' in \fB\%ncurses\fP(3X).
+.PP
+The standard forms such as \fB\%getyx\fP
+.I must
+be implemented as macros,
+and
+(in this implementation)
+are defined in terms of the functions described here,
+to avoid reliance on internal details of the \fI\%WINDOW\fP structure.
.SH PORTABILITY
These functions were supported on Version 7, BSD or System V implementations.
None of those implementations checked the window parameter.
.PP
-The \fBgetattrs\fP function and macro are defined to return a (signed) integer
+The \fB\%getattrs\fP function and macro are defined to return a (signed) integer
for compatibility with those implementations
although an unsigned type would have been more appropriate.
.SH SEE ALSO
-\fBcurses\fP(3X),
-\fBcurs_getyx\fP(3X),
-\fBcurs_opaque\fP(3X)
+\fB\%curses\fP(3X),
+\fB\%curs_getyx\fP(3X),
+\fB\%curs_opaque\fP(3X)
diff --git a/man/curs_memleaks.3x b/man/curs_memleaks.3x
index 59bd3e851f92..0626d774097b 100644
--- a/man/curs_memleaks.3x
+++ b/man/curs_memleaks.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2019-2020,2021 Thomas E. Dickey *
+.\" Copyright 2019-2023,2024 Thomas E. Dickey *
.\" Copyright 2008-2010,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,73 +27,80 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_memleaks.3x,v 1.11 2021/01/02 23:47:51 tom Exp $
-.TH curs_memleaks 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
-.na
-.hy 0
+.\" $Id: curs_memleaks.3x,v 1.35 2024/03/16 15:35:01 tom Exp $
+.TH curs_memleaks 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
+.de bP
+.ie n .IP \(bu 4
+.el .IP \(bu 2
+..
.SH NAME
-\fBexit_curses\fP,
-\fBexit_terminfo\fP \- \fBcurses\fR memory-leak checking
-.ad
-.hy
+\fB\%exit_curses\fP,
+\fB\%exit_terminfo\fP \-
+check for memory leaks in \fIcurses\fR
.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.br
-\fBvoid exit_curses(int \fP\fIcode\fP\fB);\fR
-.sp
-\fB#include <term.h>\fR
-.br
-\fBvoid exit_terminfo(int \fP\fIcode\fP\fB);\fR
-.sp
-/* deprecated (intentionally not declared in curses.h or term.h) */
-.br
-\fBvoid _nc_freeall(void);\fR
-.br
-\fBvoid _nc_free_and_exit(int \fP\fIcode\fP\fB);\fR
-.br
-\fBvoid _nc_free_tinfo(int \fP\fIcode\fP\fB);\fR
+.nf
+\fB#include <curses.h>
+\fBvoid exit_curses(int \fIcode\fP);
+.PP
+\fB#include <term.h>
+\fBvoid exit_terminfo(int \fIcode\fP);
+.PP
+\fI/* deprecated (intentionally not declared in curses.h or term.h) */
+\fBvoid _nc_freeall(void);
+\fBvoid _nc_free_and_exit(int \fIcode\fP);
+\fBvoid _nc_free_tinfo(int \fIcode\fP);
+.fi
.SH DESCRIPTION
-These functions are used to simplify analysis of memory leaks in the ncurses
-library.
+These functions are used to simplify analysis of memory leaks in the
+\fI\%ncurses\fP library.
.PP
Any implementation of curses must not free the memory associated with
-a screen, since (even after calling \fBendwin\fP(3X)), it must be available
-for use in the next call to \fBrefresh\fP(3X).
+a screen, since (even after calling \fB\%endwin\fP(3X)), it must be available
+for use in the next call to \fB\%refresh\fP(3X).
There are also chunks of memory held for performance reasons.
That makes it hard to analyze curses applications for memory leaks.
-When using the specially configured debugging version of the ncurses library,
+When using the specially configured debugging version of the
+\fI\%ncurses\fP library,
applications can call functions which free those chunks of memory,
simplifying the process of memory-leak checking.
.PP
Some of the functions are named with a \*(``_nc_\*('' prefix
because they are not intended for use in the non-debugging library:
.TP 5
-\fB_nc_freeall\fP
-This frees (almost) all of the memory allocated by ncurses.
+\fB\%_nc_freeall\fP
+This frees (almost) all of the memory allocated by \fI\%ncurses\fP.
.TP 5
-\fB_nc_free_and_exit\fP
-This frees the memory allocated by ncurses (like \fB_nc_freeall\fP),
+\fB\%_nc_free_and_exit\fP
+This frees the memory allocated by \fI\%ncurses\fP
+(like \fB\%_nc_freeall\fP),
and exits the program.
-It is preferred over \fB_nc_freeall\fP since some of that memory
+It is preferred over \fB\%_nc_freeall\fP since some of that memory
may be required to keep the application running.
Simply exiting (with the given exit-code) is safer.
.TP 5
-\fB_nc_free_tinfo\fP
+\fB\%_nc_free_tinfo\fP
Use this function if only the low-level terminfo functions (and
corresponding library) are used.
-Like \fB_nc_free_and_exit\fP, it exits the program after freeing memory.
+Like \fB\%_nc_free_and_exit\fP, it exits the program after freeing memory.
.PP
The functions prefixed \*(``_nc\*('' are normally not available;
they must be configured into the library
-at build time using the \fB\-\-disable-leaks\fP option.
+at build time using the \fB\%\-\-disable-leaks\fP option.
That compiles-in code that frees memory that normally would not be freed.
.PP
-The \fBexit_curses\fP and \fBexit_terminfo\fP functions
-call \fB_nc_free_and_exit\fP and \fB_nc_free_tinfo\fP if
+The \fB\%exit_curses\fP and \fB\%exit_terminfo\fP functions
+call \fB\%_nc_free_and_exit\fP and \fB\%_nc_free_tinfo\fP if
the library is configured to support memory-leak checking.
If the library is not configured to support memory-leak checking,
they simply call \fBexit\fP.
@@ -102,5 +109,23 @@ These functions do not return a value.
.SH PORTABILITY
These functions are not part of X/Open Curses;
nor do other implementations of curses provide a similar feature.
+.PP
+In any implementation of X/Open Curses, an application can free part
+of the memory allocated by curses:
+.bP
+The portable part of \fB\%exit_curses\fP can be freed using \fB\%delscreen\fP,
+passing the \fISCREEN\fP pointer returned by \fB\%newterm\fP.
+.IP
+In some implementations, there is a global variable \fBsp\fP
+which could be used, e.g., if the screen were only initialized
+using \fB\%initscr\fP.
+.bP
+The portable part of \fB\%exit_terminfo\fP can be freed
+using \fB\%del_curterm\fP.
+.IP
+In this case, there is a global variable \fB\%cur_term\fP which can be
+used as parameter.
.SH SEE ALSO
-\fBcurses\fR(3X).
+\fB\%curses\fP(3X),
+\fB\%curs_initscr\fP(3X),
+\fB\%curs_terminfo\fP(3X)
diff --git a/man/curs_mouse.3x b/man/curs_mouse.3x
index c18be3fa3378..8e5c70181345 100644
--- a/man/curs_mouse.3x
+++ b/man/curs_mouse.3x
@@ -1,6 +1,6 @@
'\" t
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2015,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,99 +28,102 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_mouse.3x,v 1.53 2020/10/17 23:25:08 tom Exp $
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
-.de NS
-.ie n .sp
-.el .sp .5
-.ie n .in +4
-.el .in +2
-.nf
-.ft C \" Courier
-..
-.de NE
-.fi
-.ft R
-.ie n .in -4
-.el .in -2
-..
+.\" $Id: curs_mouse.3x,v 1.98 2024/04/20 19:02:07 tom Exp $
+.TH curs_mouse 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
-.TH curs_mouse 3X ""
-.na
-.hy 0
.SH NAME
-\fBhas_mouse\fR,
-\fBgetmouse\fR, \fBungetmouse\fR,
-\fBmousemask\fR, \fBwenclose\fR,
-\fBmouse_trafo\fR, \fBwmouse_trafo\fR,
-\fBmouseinterval\fR \- mouse interface through curses
-.ad
-.hy
+\fB\%has_mouse\fP,
+\fB\%getmouse\fP,
+\fB\%ungetmouse\fP,
+\fB\%mousemask\fP,
+\fB\%wenclose\fP,
+\fB\%mouse_trafo\fP,
+\fB\%wmouse_trafo\fP,
+\fB\%mouseinterval\fP \-
+get mouse events in \fIcurses\fR
.SH SYNOPSIS
-\fB#include <curses.h>\fR
+.nf
+\fB#include <curses.h>
.PP
-\fBtypedef unsigned long mmask_t;\fR
+\fBtypedef unsigned long mmask_t;
.PP
-.nf
-\fBtypedef struct {\fR
-\fB short id; \fR\fI/* ID to distinguish multiple devices */\fR
-\fB int x, y, z; \fR\fI/* event coordinates */\fR
-\fB mmask_t bstate; \fR\fI/* button state bits */\fR
-\fB} MEVENT;\fR
-.fi
+\fBtypedef struct {
+\fB short id; \fI/* ID to distinguish multiple devices */
+\fB int x, y, z; \fI/* event coordinates */
+\fB mmask_t bstate; \fI/* button state bits */
+\fB} MEVENT;
+.PP
+\fBbool has_mouse(void);
.PP
-\fBbool has_mouse(void);\fR
-.sp
-\fBint getmouse(MEVENT *\fP\fIevent\fP\fB);\fR
-.br
-\fBint ungetmouse(MEVENT *\fP\fIevent\fP\fB);\fR
-.sp
-\fBmmask_t mousemask(mmask_t \fP\fInewmask\fP\fB, mmask_t *\fP\fIoldmask\fP\fB);\fR
-.sp
-\fBbool wenclose(const WINDOW *\fP\fIwin\fP\fB, int \fP\fIy\fP\fB, int \fP\fIx\fP\fB);\fR
-.sp
-\fBbool mouse_trafo(int* \fP\fIpY\fP\fB, int* \fP\fIpX\fP\fB, bool \fP\fIto_screen\fP\fB);\fR
-.br
-\fBbool wmouse_trafo(const WINDOW* \fP\fIwin\fP\fB,\fR
- \fBint* \fP\fIpY\fP\fB, int* \fP\fIpX\fP\fB, bool \fP\fIto_screen\fP\fB);\fR
-.sp
-\fBint mouseinterval(int \fP\fIerval\fP\fB);\fR
-.br
+\fBmmask_t mousemask(mmask_t \fInewmask\fP, mmask_t *\fIoldmask\fP);
+.PP
+\fBint getmouse(MEVENT *\fIevent\fP);
+\fBint ungetmouse(MEVENT *\fIevent\fP);
+.PP
+\fBbool wenclose(const WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP);
+.PP
+\fBbool mouse_trafo(int* \fIpY\fP, int* \fIpX\fP, bool \fIto_screen\fP);
+\fBbool wmouse_trafo(const WINDOW* \fIwin\fP,
+.ti +18n \" "bool wmouse_trafo("
+\fBint* \fIpY\fB, int* \fIpX\fB, bool \fIto_screen\fB);
+.PP
+\fBint mouseinterval(int \fIerval\fB);\fR
+.fi
.SH DESCRIPTION
These functions provide an interface to mouse events from
-\fBncurses\fR(3X).
-Mouse events are represented by \fBKEY_MOUSE\fR
-pseudo-key values in the \fBwgetch\fR(3X) input stream.
-.SS mousemask
+\fB\%ncurses\fP(3X).
+Mouse events are represented by \fB\%KEY_MOUSE\fP
+pseudo-key values in the \fB\%wgetch\fP(3X) input stream.
+.SS has_mouse
+The \fB\%has_mouse\fP function returns \fBTRUE\fP if the mouse driver
+has been successfully initialized,
+and \fBFALSE\fP otherwise.
.PP
-To make mouse events visible, use the \fBmousemask\fR function.
-This will set
-the mouse events to be reported.
+Mouse events are ignored when input is in cooked mode, and
+cause an error beep when cooked mode is being simulated in a window by a
+function such as \fB\%getstr\fP that expects a linefeed for input-loop
+termination.
+.SS mousemask
+To make mouse events visible, use the \fB\%mousemask\fP function.
+This sets the mouse events to be reported.
By default, no mouse events are reported.
-The function will return a mask to indicate which of the specified mouse events
-can be reported; on complete failure it returns 0.
-If oldmask is non-NULL,
-this function fills the indicated location with the previous value of the given
-window's mouse event mask.
+.bP
+The function returns an updated copy of \fInewmask\fP
+to indicate which of the specified mouse events can be reported.
+.IP
+If the screen has not been initialized,
+or if the terminal does not support mouse-events,
+this function returns 0.
+.bP
+If \fIoldmask\fP is non-\fBNULL\fP,
+this function fills the indicated location with the previous value of the
+current screen's mouse event mask.
.PP
-As a side effect, setting a zero mousemask may turn off the mouse pointer;
+As a side effect, setting a zero mouse mask may turn off the mouse pointer;
setting a nonzero mask may turn it on.
Whether this happens is device-dependent.
-.SS Mouse events
-.PP
+.SS "Mouse Events"
Here are the mouse event type masks which may be defined:
.PP
.TS
-l l
-_ _
-l l.
-\fIName\fR \fIDescription\fR
+Lb Lb
+Lb Lx.
+Name Description
+=
BUTTON1_PRESSED mouse button 1 down
BUTTON1_RELEASED mouse button 1 up
BUTTON1_CLICKED mouse button 1 clicked
@@ -151,200 +154,156 @@ BUTTON5_CLICKED mouse button 5 clicked
BUTTON5_DOUBLE_CLICKED mouse button 5 double clicked
BUTTON5_TRIPLE_CLICKED mouse button 5 triple clicked
_
-BUTTON_SHIFT shift was down during button state change
-BUTTON_CTRL control was down during button state change
-BUTTON_ALT alt was down during button state change
+BUTTON_SHIFT T{
+shift was down during button state change
+T}
+BUTTON_CTRL T{
+control was down during button state change
+T}
+BUTTON_ALT T{
+alt was down during button state change
+T}
ALL_MOUSE_EVENTS report all button state changes
REPORT_MOUSE_POSITION report mouse movement
_
.TE
.SS getmouse
-.PP
Once a class of mouse events has been made visible in a window,
-calling the \fBwgetch\fR function on that window may return
-\fBKEY_MOUSE\fR as an indicator that a mouse event has been queued.
+calling the \fB\%wgetch\fP function on that window may return
+\fB\%KEY_MOUSE\fP as an indicator that a mouse event has been queued.
To read the event data and pop the event off the queue, call
-\fBgetmouse\fR.
-This function will return \fBOK\fR if a mouse event
-is actually visible in the given window, \fBERR\fR otherwise.
-When \fBgetmouse\fR returns \fBOK\fR, the data deposited as y and
+\fB\%getmouse\fP.
+This function will return \fBOK\fP if a mouse event
+is actually visible in the given window, \fBERR\fP otherwise.
+When \fB\%getmouse\fP returns \fBOK\fP, the data deposited as y and
x in the event structure coordinates will be screen-relative character-cell
coordinates.
The returned state mask will have exactly one bit set to
indicate the event type.
The corresponding data in the queue is marked invalid.
-A subsequent call to \fBgetmouse\fP will retrieve the next older
+A subsequent call to \fB\%getmouse\fP will retrieve the next older
item from the queue.
.SS ungetmouse
-.PP
-The \fBungetmouse\fR function behaves analogously to \fBungetch\fR.
+The \fB\%ungetmouse\fP function behaves analogously to \fB\%ungetch\fP.
It pushes
-a \fBKEY_MOUSE\fR event onto the input queue, and associates with that event
+a \fB\%KEY_MOUSE\fP event onto the input queue, and associates with that event
the given state data and screen-relative character-cell coordinates.
.SS wenclose
-.PP
-The \fBwenclose\fR function tests whether a given pair of screen-relative
+The \fB\%wenclose\fP function tests whether a given pair of screen-relative
character-cell coordinates is enclosed by a given window, returning \fBTRUE\fP
if it is and \fBFALSE\fP otherwise.
It is useful for determining what subset of
the screen windows enclose the location of a mouse event.
-.SS wmouse_trafo
.PP
-The \fBwmouse_trafo\fR function transforms a given pair of coordinates
-from stdscr-relative coordinates
+If the parameter is a pad,
+\fB\%wenclose\fP uses the most recent screen coordinates used for
+this pad in
+\fB\%prefresh\fP(3X) or
+\fB\%pnoutrefresh\fP(3X).
+.SS wmouse_trafo
+The \fB\%wmouse_trafo\fP function transforms a given pair of coordinates
+from \fB\%stdscr\fP-relative coordinates
to coordinates relative to the given window or vice versa.
-The resulting stdscr-relative coordinates are not always identical
-to window-relative coordinates due to the mechanism to reserve lines on top
-or bottom of the screen for other purposes
-(see the \fBripoffline\fP and \fBslk_init\fR(3X) calls, for example).
+The resulting \fB\%stdscr\fP-relative coordinates are not always
+identical to screen coordinates due to the mechanism to reserve
+lines on top or bottom of the screen for other purposes
+(see the \fB\%ripoffline\fP(3X) and \fB\%slk_init\fP(3X) calls, for example).
.bP
-If the parameter \fBto_screen\fR is \fBTRUE\fR, the pointers
-\fBpY, pX\fR must reference the coordinates of a location
-inside the window \fBwin\fR.
-They are converted to window-relative coordinates and returned
+If the parameter \fIto_screen\fP is \fBTRUE\fP, the pointers
+\fIpY, pX\fP must reference the coordinates of a location
+inside the window \fIwin\fP.
+They are converted to \fB\%stdscr\fP-relative coordinates and returned
through the pointers.
-If the conversion was successful, the function returns \fBTRUE\fR.
-.bP
-If one of the parameters was NULL or the location is
-not inside the window, \fBFALSE\fR is returned.
-.bP
-If \fBto_screen\fR is
-\fBFALSE\fR, the pointers \fBpY, pX\fR must reference window-relative
-coordinates.
-They are converted to stdscr-relative coordinates if the
-window \fBwin\fR encloses this point.
-In this case the function returns \fBTRUE\fR.
+If the conversion was successful, the function returns \fBTRUE\fP.
+.IP
+If one of the parameters was \fBNULL\fP or the location is
+not inside the window, \fBFALSE\fP is returned.
.bP
-If one of the parameters is NULL or the point is not inside the
-window, \fBFALSE\fR is returned.
+If \fIto_screen\fP is
+\fBFALSE\fP, the pointers \fIpY, pX\fP must reference
+\fB\%stdscr\fP-relative coordinates.
+They are converted to window-relative coordinates if the
+window \fIwin\fP encloses this point.
+In this case the function returns \fBTRUE\fP.
+.IP
+If one of the parameters is \fBNULL\fP or the point is not inside the
+window, \fBFALSE\fP is returned.
+.PP
The referenced coordinates
are only replaced by the converted coordinates if the transformation was
successful.
.SS mouse_trafo
-.PP
-The \fBmouse_trafo\fR function performs the same translation
-as \fBwmouse_trafo\fR,
-using stdscr for \fBwin\fR.
+The \fB\%mouse_trafo\fP function performs the same translation
+as \fB\%wmouse_trafo\fP,
+using \fB\%stdscr\fP for \fIwin\fP.
.SS mouseinterval
+The \fB\%mouseinterval\fP function sets the maximum time
+(in thousands of a second)
+that can elapse between press and release events for them to
+be resolved as a
+.IR click .
+An application might interpret button press and release events separated
+by more than the mouse interval as a \*(``long press\*('',
+or,
+with motion,
+as a \*(``drag\*(''.
+.PP
+Calling \fB\%mouseinterval(0)\fP disables click resolution.
+When
+.I \%ncurses
+detects a mouse event,
+it awaits further input activity up to this interval,
+and then checks for a subsequent mouse event which can be combined
+with the first event.
+If the timeout expires without input activity
+(which would happen with a zero interval),
+then no click resolution will occur.
.PP
-The \fBmouseinterval\fR function sets the maximum time (in thousands of a
-second) that can elapse between press and release events for them to
-be recognized as a click.
-Use \fBmouseinterval(0)\fR to disable click resolution.
This function returns the previous interval value.
-Use \fBmouseinterval(\-1)\fR to obtain the interval without altering it.
-The default is one sixth of a second.
-.SS has_mouse
-.PP
-The \fBhas_mouse\fP function returns \fBTRUE\fP if the mouse driver has been
-successfully initialized.
+Use \fB\%mouseinterval(\-1)\fP to obtain the interval without altering it.
.PP
-Note that mouse events will be ignored when input is in cooked mode, and will
-cause an error beep when cooked mode is being simulated in a window by a
-function such as \fBgetstr\fR that expects a linefeed for input-loop
-termination.
+The mouse interval is set to one sixth of a second
+when the corresponding screen is initialized,
+e.g., in \fBinitscr\fP(3X) or \fBsetupterm\fP(3X).
.SH RETURN VALUE
-\fBgetmouse\fR and \fBungetmouse\fR
-return the integer \fBERR\fR upon failure or \fBOK\fR
-upon successful completion:
-.RS 3
-.TP 5
-\fBgetmouse\fP
-returns an error.
-.bP
-If no mouse driver was initialized, or
-if the mask parameter is zero,
-.bP
-It also returns an error if no more events remain in the queue.
-.TP 5
-\fBungetmouse\fP
-returns an error if the FIFO is full.
-.RE
+\fB\%has_mouse\fP,
+\fB\%wenclose\fP,
+\fB\%mouse_trafo\fP,
+and
+\fB\%wmouse_trafo\fP
+return \fBTRUE\fP or \fBFALSE\fP as noted above.
.PP
-\fBmousemask\fR
-returns the mask of reportable events.
+\fB\%getmouse\fP and \fB\%ungetmouse\fP
+return \fBERR\fP upon failure and \fBOK\fP upon success.
.PP
-\fBmouseinterval\fR
-returns the previous interval value, unless
-the terminal was not initialized.
-In that case, it returns the maximum interval value (166).
-.PP
-\fBwenclose\fR and \fBwmouse_trafo\fR
-are boolean functions returning \fBTRUE\fR or \fBFALSE\fR depending
-on their test result.
-.SH PORTABILITY
-These calls were designed for \fBncurses\fR(3X), and are not found in SVr4
-curses, 4.4BSD curses, or any other previous version of curses.
-.PP
-SVr4 curses had support for the mouse in a variant of \fBxterm\fP.
-It is mentioned in a few places, but with no supporting documentation:
+\fB\%getmouse\fP fails if:
.bP
-the \*(``libcurses\*('' manual page lists functions for this feature
-which are prototyped in \fBcurses.h\fP:
-.NS
-extern int mouse_set(long int);
-extern int mouse_on(long int);
-extern int mouse_off(long int);
-extern int request_mouse_pos(void);
-extern int map_button(unsigned long);
-extern void wmouse_position(WINDOW *, int *, int *);
-extern unsigned long getmouse(void), getbmap(void);
-.NE
+no mouse driver was initialized,
.bP
-the \*(``terminfo\*('' manual page lists capabilities for the feature
-.NS
-buttons btns BT Number of buttons on the mouse
-get_mouse getm Gm Curses should get button events
-key_mouse kmous Km 0631, Mouse event has occurred
-mouse_info minfo Mi Mouse status information
-req_mouse_pos reqmp RQ Request mouse position report
-.NE
+the mask of reportable events is zero,
.bP
-the interface made assumptions (as does ncurses) about the escape sequences
-sent to and received from the terminal.
-.IP
-For instance
-the SVr4 curses library used the \fBget_mouse\fP capability to tell the
-terminal which mouse button events it should send,
-passing the mouse-button bit-mask to the terminal.
-Also, it could ask the terminal
-where the mouse was using the \fBreq_mouse_pos\fP capability.
-.IP
-Those features required a terminal which had been modified to work with curses.
-They were not part of the X Consortium's xterm.
+a mouse event was detected that does not match the mask,
+.bP
+or if no more events remain in the queue.
.PP
-When developing the xterm mouse support for ncurses in September 1995,
-Eric Raymond was uninterested in using the same interface due to its
-lack of documentation.
-Later, in 1998, Mark Hesseling provided support in
-PDCurses 2.3 using the SVr4 interface.
-PDCurses, however, does not use video terminals,
-making it unnecessary to be concerned about compatibility with the
-escape sequences.
+\fB\%ungetmouse\fP returns an error if the event queue is full.
.PP
-The feature macro \fBNCURSES_MOUSE_VERSION\fR is provided so the preprocessor
-can be used to test whether these features are present.
-If the interface is changed, the value of \fBNCURSES_MOUSE_VERSION\fR will be
-incremented.
-These values for \fBNCURSES_MOUSE_VERSION\fR may be
-specified when configuring ncurses:
-.RS 3
-.TP 3
-1
-has definitions for reserved events.
-The mask uses 28 bits.
-.TP 3
-2
-adds definitions for button 5,
-removes the definitions for reserved events.
-The mask uses 29 bits.
-.RE
+\fB\%mousemask\fP
+returns the mask of reportable events.
.PP
-The order of the \fBMEVENT\fR structure members is not guaranteed.
+\fB\%mouseinterval\fP
+returns the previous interval value, unless
+the terminal was not initialized.
+In that case, it returns the maximum interval value (166).
+.SH NOTES
+The order of the \fB\%MEVENT\fP structure members is not guaranteed.
Additional fields may be added to the structure in the future.
.PP
-Under \fBncurses\fR(3X), these calls are implemented using either
-xterm's built-in mouse-tracking API or
+Under
+.IR \%ncurses ,
+these calls are implemented using either
+.IR \%xterm 's
+built-in mouse-tracking API or
platform-specific drivers including
.RS 3
.bP
@@ -357,23 +316,31 @@ OS/2 EMX
.PP
If you are using an unsupported configuration,
mouse events will not be visible to
-\fBncurses\fR(3X) (and the \fBmousemask\fR function will always
-return \fB0\fR).
-.PP
-If the terminfo entry contains a \fBXM\fR string,
-this is used in the xterm mouse driver to control the
+\fI\%ncurses\fP (and the \fB\%mousemask\fP function will always
+return \fB0\fP).
+.PP
+If the
+.I \%term\%info
+entry contains a \fBXM\fP string,
+this is used in the
+.I \%xterm
+mouse driver to control the
way the terminal is initialized for mouse operation.
-The default, if \fBXM\fR is not found,
-corresponds to private mode 1000 of xterm:
+The default, if \fBXM\fP is not found,
+corresponds to private mode 1000 of
+.I \%xterm:
.PP
.RS 3
-\\E[?1000%?%p1%{1}%=%th%el%;
+\eE[?1000%?%p1%{1}%=%th%el%;
.RE
.PP
-The mouse driver also recognizes a newer xterm private mode 1006, e.g.,
+The mouse driver also recognizes a newer
+.I \%xterm
+private mode 1006,
+e.g.,
.PP
.RS 3
-\\E[?1006;1000%?%p1%{1}%=%th%el%;
+\eE[?1006;1000%?%p1%{1}%=%th%el%;
.RE
.PP
The \fIz\fP member in the event structure is not presently used.
@@ -381,36 +348,178 @@ It is intended
for use with touch screens (which may be pressure-sensitive) or with
3D-mice/trackballs/power gloves.
.PP
-The \fBALL_MOUSE_EVENTS\fP class does not include \fBREPORT_MOUSE_POSITION\fP.
+The \fB\%ALL_MOUSE_EVENTS\fP class does not
+include \fB\%REPORT_MOUSE_POSITION\fP.
They are distinct.
-For example, in xterm,
+For example,
+in
+.IR \%xterm ,
wheel/scrolling mice send position reports as a sequence of
presses of buttons 4 or 5 without matching button-releases.
+.SH EXTENSIONS
+These functions were designed for
+\fB\%ncurses\fP(3X),
+and are not found in SVr4
+.IR curses ,
+4.4BSD
+.IR curses ,
+or any other previous curses implementation.
+(SVr4
+.I curses
+did have a
+.I \%getmouse
+function,
+which took no argument and returned a different type.)
+.SH PORTABILITY
+Applications employing the
+.I \%ncurses
+mouse extension should condition its use on the visibility of the
+.B \%NCURSES_MOUSE_VERSION
+preprocessor macro.
+When the interface changes,
+the macro's value increments.
+Multiple versions are available when
+.I \%ncurses
+is configured;
+see section \*(``ALTERNATE CONFIGURATIONS\*('' of \fB\%ncurses\fP(3X).
+The following values may be specified.
+.RS 3
+.TP 3
+1
+has definitions for reserved events.
+The mask uses 28 bits.
+.TP 3
+2
+adds definitions for button 5,
+removes the definitions for reserved events.
+The mask uses 29 bits.
+.RE
+.PP
+SVr4
+.I curses
+had support for the mouse in a variant of \fI\%xterm\fP(1).
+It is mentioned in a few places,
+with little supporting documentation.
+.bP
+Its \*(``libcurses\*('' manual page lists functions for this feature
+prototyped in \fI\%curses.h\fP.
+.PP
+.RS 8
+.EX
+extern int mouse_set(long int);
+extern int mouse_on(long int);
+extern int mouse_off(long int);
+extern int request_mouse_pos(void);
+extern int map_button(unsigned long);
+extern void wmouse_position(WINDOW *, int *, int *);
+extern unsigned long getmouse(void), getbmap(void);
+.EE
+.RE
+.bP
+Its \*(``terminfo\*('' manual page lists capabilities for the feature.
+.\" These don't appear in in the SVID 4th edition, Volume 3,
+.\" terminfo(TI_ENV) man page. They can be found in, e.g., the "z/OS
+.\" V1R1.0 C Curses" book, Chapter 17, pp. 179-186 (PDF 213-220).
+.RS 8
+.TS
+Lb Lb Lb Lx.
+buttons btns BT T{
+Number of buttons on the mouse
+T}
+get_mouse getm Gm T{
+Curses should get button events
+T}
+key_mouse kmous Km T{
+0631, Mouse event has occurred
+T}
+mouse_info minfo Mi T{
+Mouse status information
+T}
+req_mouse_pos reqmp RQ T{
+Request mouse position report
+T}
+.TE
+.RE
+.bP
+The interface made assumptions
+(as does
+.IR \%ncurses )
+about the escape sequences sent to and received from the terminal.
+.IP
+For instance,
+the SVr4
+.I curses
+library used the \fB\%get_mouse\fP capability to tell the terminal which
+mouse button events it should send,
+passing the mouse-button bit mask to the terminal.
+Also, it could ask the terminal
+where the mouse was using the \fB\%req_mouse_pos\fP capability.
+.IP
+Those features required a terminal program that had been modified
+to work with SVr4
+.IR curses .
+They were not part of the X Consortium's
+.IR \%xterm .
+.PP
+When developing the
+.I \%xterm
+mouse support for
+.I \%ncurses
+in September 1995,
+Eric Raymond was uninterested in using the same interface due to its
+lack of documentation.
+Later, in 1998, Mark Hesseling provided support in
+.I \%PDCurses
+2.3 using the SVr4 interface.
+.IR \%PDCurses ,
+however,
+does not use video terminals,
+making it unnecessary to be concerned about compatibility with the
+escape sequences.
.SH BUGS
-Mouse events under xterm will not in fact be ignored during cooked mode,
-if they have been enabled by \fBmousemask\fR.
-Instead, the xterm mouse
-report sequence will appear in the string read.
-.PP
-Mouse events under xterm will not be detected correctly in a window with
-its keypad bit off, since they are interpreted as a variety of function key.
-Your terminfo description should have \fBkmous\fR set to \*(``\\E[M\*(''
-(the beginning of the response from xterm for mouse clicks).
-Other values for \fBkmous\fR are permitted,
-but under the same assumption,
-i.e., it is the beginning of the response.
-.PP
-Because there are no standard terminal responses that would serve to identify
-terminals which support the xterm mouse protocol, \fBncurses\fR assumes that
-if \fBkmous\fR is defined in the terminal description,
-or if the terminal description's primary name or aliases
-contain the string \*(``xterm\*('',
+Mouse events from
+.I \%xterm
+are
+.I not
+ignored in cooked mode if they have been enabled by \fB\%mousemask\fP.
+Instead,
+the
+.I \%xterm
+mouse report sequence appears in the string read.
+.PP
+Mouse event reports from
+.I \%xterm
+are not detected correctly in a window with keypad application mode
+disabled,
+since they are interpreted as a variety of function key.
+Set the terminal's
+.I \%term\%info
+capability \fB\%kmous\fP to \*(``\eE[M\*(''
+(the beginning of the response from
+.I \%xterm
+for mouse clicks).
+Other values of \fB\%kmous\fP are permitted under the same assumption,
+that is,
+the report begins with that sequence.
+.PP
+Because there are no standard response sequences that serve to identify
+terminals supporting the
+.I \%xterm
+mouse protocol,
+.I \%ncurses
+assumes that if \fB\%kmous\fP is defined in the terminal description,
+or if the terminal type's primary name or aliases contain the string
+\%\*(``xterm\*('',
then the terminal may send mouse events.
-The \fBkmous\fP capability is checked first,
-allowing the use of newer xterm mouse protocols
-such as xterm's private mode 1006.
+The \fB\%kmous\fP capability is checked first,
+allowing use of newer
+.I \%xterm
+mouse protocols,
+such as its private mode 1006.
.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBcurs_kernel\fR(3X),
-\fBcurs_slk\fR(3X),
-\fBcurs_variables\fR(3X).
+\fB\%curses\fP(3X),
+\fB\%curs_inopts\fP(3X),
+\fB\%curs_kernel\fP(3X),
+\fB\%curs_pad\fP(3X),
+\fB\%curs_slk\fP(3X),
+\fB\%curs_variables\fP(3X)
diff --git a/man/curs_move.3x b/man/curs_move.3x
index e0c1bf5e0284..c3b68e813d1c 100644
--- a/man/curs_move.3x
+++ b/man/curs_move.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2010,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,40 +27,62 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_move.3x,v 1.19 2020/10/24 09:39:41 tom Exp $
-.TH curs_move 3X ""
-.na
-.hy 0
+.\" $Id: curs_move.3x,v 1.40 2024/04/27 17:56:05 tom Exp $
+.TH curs_move 3X 2024-04-27 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
-\fBmove\fR,
-\fBwmove\fR \- move \fBcurses\fR window cursor
-.ad
-.hy
+\fB\%move\fP,
+\fB\%wmove\fP \-
+move cursor in a \fIcurses\fR window
.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\fBint move(int \fP\fIy\fP\fB, int \fP\fIx\fP\fB);\fR
-.br
-\fBint wmove(WINDOW *\fP\fIwin\fP\fB, int \fP\fIy\fP\fB, int \fP\fIx\fP\fB);\fR
-.br
+.nf
+\fB#include <curses.h>
+.PP
+\fBint move(int \fIy\fP, int \fIx\fP);
+\fBint wmove(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP);
+.fi
.SH DESCRIPTION
-These routines move the cursor associated with the window to line \fIy\fR and
-column \fIx\fR.
-This routine does not move the physical cursor of the terminal
-until \fBrefresh\fR(3X) is called.
-The position specified is relative to the upper
-left-hand corner of the window, which is (0,0).
+.B \%wmove
+relocates the cursor associated with the
+.I curses
+window
+.I win
+to line
+.I y
+and column
+.IR x .
+The terminal's cursor does not move until \fB\%refresh\fP(3X) is called.
+The position
+.RI ( y ,
+.IR x )
+is relative to the upper left-hand corner of the window,
+which has coordinates
+(0,\ 0).
+\fB\%ncurses\fP(3X) describes the
+.B \%move
+variant of this function.
.SH RETURN VALUE
-These routines return \fBERR\fR upon failure and \fBOK\fP (SVr4
-specifies only "an integer value other than \fBERR\fR") upon successful
-completion.
+These functions return
+.B OK
+on success and
+.B ERR
+on failure.
+.PP
+They fail if the position
+.RI ( y ,
+.IR x )
+is outside the window boundaries.
.PP
-Specifically, they return an error
-if the window pointer is null, or
-if the position is outside the window.
+.B \%wmove
+fails if its
+.I \%WINDOW
+pointer argument is
+.BR NULL .
.SH NOTES
-Note that \fBmove\fR may be a macro.
+.B \%move
+may be implemented as a macro.
.SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4.
+X/Open Curses,
+Issue 4 describes these functions.
.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_refresh\fR(3X)
+\fB\%curses\fP(3X),
+\fB\%curs_refresh\fP(3X)
diff --git a/man/curs_opaque.3x b/man/curs_opaque.3x
index 1d0cb55f2bb2..fa623eea1e96 100644
--- a/man/curs_opaque.3x
+++ b/man/curs_opaque.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2020 Thomas E. Dickey *
+.\" Copyright 2020-2023,2024 Thomas E. Dickey *
.\" Copyright 2007-2014,2015 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,129 +27,135 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_opaque.3x,v 1.15 2020/10/24 09:41:22 tom Exp $
-.TH curs_opaque 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
-.na
-.hy 0
+.\" $Id: curs_opaque.3x,v 1.43 2024/03/16 15:35:01 tom Exp $
+.TH curs_opaque 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
.SH NAME
-\fBis_cleared\fR,
-\fBis_idlok\fR,
-\fBis_idcok\fR,
-\fBis_immedok\fR,
-\fBis_keypad\fR,
-\fBis_leaveok\fR,
-\fBis_nodelay\fR,
-\fBis_notimeout\fR,
-\fBis_pad\fR,
-\fBis_scrollok\fR,
-\fBis_subwin\fR,
-\fBis_syncok\fR,
-\fBwgetdelay\fR,
-\fBwgetparent\fR,
-\fBwgetscrreg\fR \- \fBcurses\fR window properties
-.ad
-.hy
+\fB\%is_cleared\fP,
+\fB\%is_idlok\fP,
+\fB\%is_idcok\fP,
+\fB\%is_immedok\fP,
+\fB\%is_keypad\fP,
+\fB\%is_leaveok\fP,
+\fB\%is_nodelay\fP,
+\fB\%is_notimeout\fP,
+\fB\%is_pad\fP,
+\fB\%is_scrollok\fP,
+\fB\%is_subwin\fP,
+\fB\%is_syncok\fP,
+\fB\%wgetdelay\fP,
+\fB\%wgetparent\fP,
+\fB\%wgetscrreg\fP \-
+obtain \fIcurses\fR window properties
.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\fBbool is_cleared(const WINDOW *\fP\fIwin\fP\fB);\fR
-.br
-\fBbool is_idcok(const WINDOW *\fP\fIwin\fP\fB);\fR
-.br
-\fBbool is_idlok(const WINDOW *\fP\fIwin\fP\fB);\fR
-.br
-\fBbool is_immedok(const WINDOW *\fP\fIwin\fP\fB);\fR
-.br
-\fBbool is_keypad(const WINDOW *\fP\fIwin\fP\fB);\fR
-.br
-\fBbool is_leaveok(const WINDOW *\fP\fIwin\fP\fB);\fR
-.br
-\fBbool is_nodelay(const WINDOW *\fP\fIwin\fP\fB);\fR
-.br
-\fBbool is_notimeout(const WINDOW *\fP\fIwin\fP\fB);\fR
-.br
-\fBbool is_pad(const WINDOW *\fP\fIwin\fP\fB);\fR
-.br
-\fBbool is_scrollok(const WINDOW *\fP\fIwin\fP\fB);\fR
-.br
-\fBbool is_subwin(const WINDOW *\fP\fIwin\fP\fB);\fR
-.br
-\fBbool is_syncok(const WINDOW *\fP\fIwin\fP\fB);\fR
-.br
-\fBWINDOW * wgetparent(const WINDOW *\fP\fIwin\fP\fB);\fR
-.br
-\fBint wgetdelay(const WINDOW *\fP\fIwin\fP\fB);\fR
-.br
-\fBint wgetscrreg(const WINDOW *\fP\fIwin\fP\fB, int *\fP\fItop\fP\fB, int *\fP\fIbottom\fP\fB);\fR
-.br
+.nf
+\fB#include <curses.h>
+.PP
+\fBbool is_cleared(const WINDOW *\fIwin\fP);
+\fBbool is_idcok(const WINDOW *\fIwin\fP);
+\fBbool is_idlok(const WINDOW *\fIwin\fP);
+\fBbool is_immedok(const WINDOW *\fIwin\fP);
+\fBbool is_keypad(const WINDOW *\fIwin\fP);
+\fBbool is_leaveok(const WINDOW *\fIwin\fP);
+\fBbool is_nodelay(const WINDOW *\fIwin\fP);
+\fBbool is_notimeout(const WINDOW *\fIwin\fP);
+\fBbool is_pad(const WINDOW *\fIwin\fP);
+\fBbool is_scrollok(const WINDOW *\fIwin\fP);
+\fBbool is_subwin(const WINDOW *\fIwin\fP);
+\fBbool is_syncok(const WINDOW *\fIwin\fP);
+.PP
+\fBWINDOW * wgetparent(const WINDOW *\fIwin\fP);
+\fBint wgetdelay(const WINDOW *\fIwin\fP);
+\fBint wgetscrreg(const WINDOW *\fIwin\fP, int *\fItop\fP, int *\fIbottom\fP);
+.fi
.SH DESCRIPTION
-This implementation provides functions which return properties
-set in the WINDOW structure, allowing it to be \*(``opaque\*('' if
-the symbol \fBNCURSES_OPAQUE\fR is defined:
-.TP 5
-\fBis_cleared\fR
-returns the value set in \fBclearok\fR
-.TP 5
-\fBis_idcok\fR
-returns the value set in \fBidcok\fR
-.TP 5
-\fBis_idlok\fR
-returns the value set in \fBidlok\fR
-.TP 5
-\fBis_immedok\fR
-returns the value set in \fBimmedok\fR
-.TP 5
-\fBis_keypad\fR
-returns the value set in \fBkeypad\fR
-.TP 5
-\fBis_leaveok\fR
-returns the value set in \fBleaveok\fR
-.TP 5
-\fBis_nodelay\fR
-returns the value set in \fBnodelay\fR
-.TP 5
-\fBis_notimeout\fR
-returns the value set in \fBnotimeout\fR
-.TP 5
-\fBis_pad\fR
-returns \fBTRUE\fP if the window is a pad
-i.e., created by \fBnewpad\fP
-.TP 5
-\fBis_scrollok\fR
-returns the value set in \fBscrollok\fR
-.TP 5
-\fBis_subwin\fR
+\fI\%ncurses\fP provides functions returning properties of a
+\fI\%WINDOW\fP structure,
+allowing it to be \*(``opaque\*('' if
+the application defines the \fB\%NCURSES_OPAQUE\fP preprocessor symbol.
+\fIOpacity\fP in this sense means that the members of \fIstruct\fP data
+types are not directly accessible
+(for instance,
+through \*(``.\*('' or \*(``\->\*('' operators),
+but instead must be queried and/or set via library functions.
+Advantages of opacity include greater abstraction and improved
+management of concurrent accesses to data structures,
+keeping object states coherent.
+.TP
+\fBis_cleared\fP
+returns the value set by \fB\%clearok\fP(3X).
+.TP
+\fBis_idcok\fP
+returns the value set by \fB\%idcok\fP(3X).
+.TP
+\fBis_idlok\fP
+returns the value set by \fB\%idlok\fP(3X).
+.TP
+\fBis_immedok\fP
+returns the value set by \fB\%immedok\fP(3X).
+.TP
+\fBis_keypad\fP
+returns the value set by \fB\%keypad\fP(3X).
+.TP
+\fBis_leaveok\fP
+returns the value set by \fB\%leaveok\fP(3X).
+.TP
+\fBis_nodelay\fP
+returns the value set by \fB\%nodelay\fP(3X).
+.TP
+\fBis_notimeout\fP
+returns the value set by \fB\%notimeout\fP(3X).
+.TP
+\fBis_pad\fP
+returns \fBTRUE\fP if the window is a pad;
+that is,
+it was created by \fB\%newpad\fP(3X).
+.TP
+\fBis_scrollok\fP
+returns the value set by \fB\%scrollok\fP(3X).
+.TP
+\fBis_subwin\fP
returns \fBTRUE\fP if the window is a subwindow,
-i.e., created by \fBsubwin\fP or \fBderwin\fP
-.TP 5
-\fBis_syncok\fR
-returns the value set in \fBsyncok\fR
-.TP 5
-\fBwgetdelay\fR
-returns the delay timeout as set in \fBwtimeout\fP.
-.TP 5
-\fBwgetparent\fR
-returns the parent WINDOW pointer for subwindows,
-or NULL for windows having no parent.
-.TP 5
-\fBwgetscrreg\fR
-returns the top and bottom rows for the scrolling margin
-as set in \fBwsetscrreg\fP.
+that is,
+it was created by \fB\%subwin\fP(3X) or \fB\%derwin\fP(3X).
+.TP
+\fBis_syncok\fP
+returns the value set by \fB\%syncok\fP(3X).
+.TP
+\fBwgetdelay\fP
+returns the delay timeout set by \fB\%wtimeout\fP(3X).
+.TP
+\fBwgetparent\fP
+returns the parent \fI\%WINDOW\fP pointer for subwindows,
+or \fBNULL\fP for windows having no parent.
+.TP
+\fBwgetscrreg\fP
+stores the the top and bottom rows for the scrolling margin set by
+\fB\%wsetscrreg\fP(3X) in the corresponding arguments,
+returning \fBERR\fP upon failure and \fBOK\fP upon successful
+completion.
.SH RETURN VALUE
-These functions all return \fBTRUE\fP or \fBFALSE\fP, except as noted.
+These functions return \fBTRUE\fP or \fBFALSE\fP except as noted.
.SH NOTES
-Both a macro and a function are provided for each name.
+\fI\%ncurses\fP provides both a C function and a preprocessor macro for
+each function documented in this page.
.SH PORTABILITY
-These routines are specific to ncurses.
+These routines are specific to \fI\%ncurses\fP.
They were not supported on Version 7, BSD or System V implementations.
-It is recommended that any code depending on ncurses extensions
-be conditioned using NCURSES_VERSION.
+It is recommended that any code depending on \fI\%ncurses\fP extensions
+be conditioned using \fB\%NCURSES_VERSION\fP.
.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBcurs_inopts\fR(3X),
-\fBcurs_outopts\fR(3X),
-\fBcurs_window\fR(3X)
+\fB\%curses\fP(3X),
+\fB\%curs_inopts\fP(3X),
+\fB\%curs_outopts\fP(3X),
+\fB\%curs_threads\fP(3X),
+\fB\%curs_window\fP(3X)
diff --git a/man/curs_outopts.3x b/man/curs_outopts.3x
index e4e742132744..df263f2c1a81 100644
--- a/man/curs_outopts.3x
+++ b/man/curs_outopts.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2016,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,67 +27,56 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_outopts.3x,v 1.33 2020/10/03 22:04:09 tom Exp $
-.TH curs_outopts 3X ""
-.na
-.hy 0
+.\" $Id: curs_outopts.3x,v 1.64 2024/04/20 21:24:19 tom Exp $
+.TH curs_outopts 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
.SH NAME
-\fBclearok\fR,
-\fBidlok\fR,
-\fBidcok\fR,
-\fBimmedok\fR,
-\fBleaveok\fR,
-\fBsetscrreg\fR,
-\fBwsetscrreg\fR,
-\fBscrollok\fR \- \fBcurses\fR output options
-.ad
-.hy
+\fB\%clearok\fP,
+\fB\%idlok\fP,
+\fB\%idcok\fP,
+\fB\%immedok\fP,
+\fB\%leaveok\fP,
+\fB\%setscrreg\fP,
+\fB\%wsetscrreg\fP,
+\fB\%scrollok\fP \-
+set \fIcurses\fR output options
.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\fBint clearok(WINDOW *\fP\fIwin\fP\fB, bool \fP\fIbf\fP\fB);\fR
-.br
-\fBint idlok(WINDOW *\fP\fIwin\fP\fB, bool \fP\fIbf\fP\fB);\fR
-.br
-\fBvoid idcok(WINDOW *\fP\fIwin\fP\fB, bool \fP\fIbf\fP\fB);\fR
-.br
-\fBvoid immedok(WINDOW *\fP\fIwin\fP\fB, bool \fP\fIbf\fP\fB);\fR
-.br
-\fBint leaveok(WINDOW *\fP\fIwin\fP\fB, bool \fP\fIbf\fP\fB);\fR
-.br
-\fBint scrollok(WINDOW *\fP\fIwin\fP\fB, bool \fP\fIbf\fP\fB);\fR
-.sp
-\fBint setscrreg(int \fP\fItop\fP\fB, int \fP\fIbot\fP\fB);\fR
-.br
-\fBint wsetscrreg(WINDOW *\fP\fIwin\fP\fB, int \fP\fItop\fP\fB, int \fP\fIbot\fP\fB);\fR
-.br
+.nf
+\fB#include <curses.h>
+.PP
+\fBint clearok(WINDOW *\fIwin\fP, bool \fIbf\fP);
+\fBint idlok(WINDOW *\fIwin\fP, bool \fIbf\fP);
+\fBvoid idcok(WINDOW *\fIwin\fP, bool \fIbf\fP);
+\fBvoid immedok(WINDOW *\fIwin\fP, bool \fIbf\fP);
+\fBint leaveok(WINDOW *\fIwin\fP, bool \fIbf\fP);
+\fBint scrollok(WINDOW *\fIwin\fP, bool \fIbf\fP);
+.PP
+\fBint setscrreg(int \fItop\fP, int \fIbot\fP);
+\fBint wsetscrreg(WINDOW *\fIwin\fP, int \fItop\fP, int \fIbot\fP);
+.fi
.SH DESCRIPTION
-.PP
These routines set options that change the style of output within
-\fBcurses\fR.
-All options are initially \fBFALSE\fR, unless otherwise stated.
-It is not necessary to turn these options off before calling \fBendwin\fR(3X).
+\fBcurses\fP.
+All options are initially \fBFALSE\fP, unless otherwise stated.
+It is not necessary to turn these options off before calling \fBendwin\fP(3X).
.SS clearok
-.PP
-If \fBclearok\fR is called with \fBTRUE\fR as argument, the next
-call to \fBwrefresh\fR with this window will clear the screen completely and
+If \fBclearok\fP is called with \fBTRUE\fP as argument, the next
+call to \fBwrefresh\fP with this window will clear the screen completely and
redraw the entire screen from scratch.
This is useful when the contents of the
screen are uncertain, or in some cases for a more pleasing visual effect.
If
-the \fIwin\fR argument to \fBclearok\fR is the global variable \fBcurscr\fR,
-the next call to \fBwrefresh\fR with any window causes the screen to be cleared
+the \fIwin\fP argument to \fBclearok\fP is the global variable \fBcurscr\fP,
+the next call to \fBwrefresh\fP with any window causes the screen to be cleared
and repainted from scratch.
.SS idlok
-.PP
-If \fBidlok\fR is called with \fBTRUE\fR as second argument, \fBcurses\fR
+If \fBidlok\fP is called with \fBTRUE\fP as second argument, \fBcurses\fP
considers using the hardware insert/delete line feature of terminals so
equipped.
-Calling \fBidlok\fR with \fBFALSE\fR as second argument disables use
+Calling \fBidlok\fP with \fBFALSE\fP as second argument disables use
of line insertion and deletion.
This option should be enabled only if the
application needs insert/delete line, for example, for a screen editor.
@@ -95,68 +84,66 @@ It is
disabled by default because insert/delete line tends to be visually annoying
when used in applications where it is not really needed.
If insert/delete line
-cannot be used, \fBcurses\fR redraws the changed portions of all lines.
+cannot be used, \fBcurses\fP redraws the changed portions of all lines.
.SS idcok
-.PP
-If \fBidcok\fR is called with \fBFALSE\fR as second argument, \fBcurses\fR
+If \fBidcok\fP is called with \fBFALSE\fP as second argument, \fBcurses\fP
no longer considers using the hardware insert/delete character feature of
terminals so equipped.
Use of character insert/delete is enabled by default.
-Calling \fBidcok\fR with \fBTRUE\fR as second argument re-enables use
+Calling \fBidcok\fP with \fBTRUE\fP as second argument re-enables use
of character insertion and deletion.
.SS immedok
-.PP
-If \fBimmedok\fR is called with \fBTRUE as argument\fR, any change
-in the window image, such as the ones caused by \fBwaddch, wclrtobot, wscrl\fR,
-etc., automatically cause a call to \fBwrefresh\fR.
-However, it may
-degrade performance considerably, due to repeated calls to \fBwrefresh\fR.
-It is disabled by default.
+If \fBimmedok\fP is called with \fBTRUE\fP as second argument,
+any change in the window image,
+such as the ones caused by \fBwaddch, wclrtobot, wscrl\fP,
+etc., automatically causes a call to \fBwrefresh\fP.
+However, it may degrade performance considerably,
+due to repeated calls to \fBwrefresh\fP.
+Calling \fBimmedok\fP with \fBFALSE\fP as second argument
+restores the default behavior,
+i.e., deferring screen updates until a refresh is needed.
.SS leaveok
-.PP
Normally, the hardware cursor is left at the location of the window cursor
being refreshed.
-The \fBleaveok\fR option allows the cursor to be left
+The \fBleaveok\fP option allows the cursor to be left
wherever the update happens to leave it.
It is useful for applications where
the cursor is not used, since it reduces the need for cursor motions.
.SS scrollok
-.PP
-The \fBscrollok\fR option controls what happens when the cursor of a window is
+The \fBscrollok\fP option controls what happens when the cursor of a window is
moved off the edge of the window or scrolling region, either as a result of a
newline action on the bottom line, or typing the last character of the last
line.
-If disabled, (\fIbf\fR is \fBFALSE\fR), the cursor is left on the bottom
+If disabled, (\fIbf\fP is \fBFALSE\fP), the cursor is left on the bottom
line.
-If enabled, (\fIbf\fR is \fBTRUE\fR), the window is scrolled up one line
+If enabled, (\fIbf\fP is \fBTRUE\fP), the window is scrolled up one line
(Note that to get the physical scrolling effect on the terminal, it is
-also necessary to call \fBidlok\fR).
-.SS setscrreg/wsetscrreg
-.PP
-The \fBsetscrreg\fR and \fBwsetscrreg\fR routines allow the application
+also necessary to call \fBidlok\fP).
+.SS "setscrreg, wsetscrreg"
+The \fBsetscrreg\fP and \fBwsetscrreg\fP routines allow the application
programmer to set a software scrolling region in a window.
-The \fItop\fR and
-\fIbot\fR parameters
+The \fItop\fP and
+\fIbot\fP parameters
are the line numbers of the top and bottom margin of the scrolling
region.
(Line 0 is the top line of the window.) If this option and
-\fBscrollok\fR are enabled, an attempt to move off the bottom margin line
+\fBscrollok\fP are enabled, an attempt to move off the bottom margin line
causes all lines in the scrolling region to scroll one line in the direction
of the first line.
Only the text of the window is scrolled.
(Note that this
has nothing to do with the use of a physical scrolling region capability in the
terminal, like that in the VT100.
-If \fBidlok\fR is enabled and the terminal
+If \fBidlok\fP is enabled and the terminal
has either a scrolling region or insert/delete line capability, they will
probably be used by the output routines.)
.SH RETURN VALUE
-The functions \fBsetscrreg\fR and \fBwsetscrreg\fR return \fBOK\fR upon success
-and \fBERR\fR upon failure.
+The functions \fBsetscrreg\fP and \fBwsetscrreg\fP return \fBOK\fP upon success
+and \fBERR\fP upon failure.
All other routines that return an integer always
-return \fBOK\fR.
+return \fBOK\fP.
.PP
-X/Open Curses does not define any error conditions.
+X/Open Curses does not specify any error conditions.
.PP
In this implementation,
.bP
@@ -164,60 +151,49 @@ those functions that have a window pointer
will return an error if the window pointer is null
.bP
\fBwsetscrreg\fP
-returns an error if the scrolling region limits extend outside the window.
-.RE
+returns an error if the scrolling region limits extend outside the
+window boundaries.
+.SH NOTES
+Note that
+\fBclearok\fP,
+\fBleaveok\fP,
+\fBscrollok\fP,
+\fBidcok\fP, and
+\fBsetscrreg\fP may be macros.
.PP
-X/Open does not define any error conditions.
-This implementation returns an error
-if the window pointer is null.
+The \fBimmedok\fP routine is useful for windows that are used as terminal
+emulators.
.SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4.
-.PP
-From the outset, ncurses used \fBnl\fP/\fBnonl\fP to control the conversion
-of newlines to carriage return/line-feed on output as well as input.
-XSI Curses documents only the use of these functions for input.
-This difference arose from converting the \fIpcurses\fP source
-(which used \fBioctl\fP calls with the \fBsgttyb\fP structure)
-to termios (i.e., the POSIX terminal interface).
-In the former, both input and output were controlled via a single
-option \fBCRMOD\fP,
-while the latter separates these features.
-Because that conversion interferes with output optimization,
-\fBnl\fP/\fBnonl\fP were amended after ncurses 6.2
-to eliminate their effect on output.
+These functions are described in X/Open Curses, Issue 4.
.PP
Some historic curses implementations had, as an undocumented feature, the
-ability to do the equivalent of \fBclearok(..., 1)\fR by saying
-\fBtouchwin(stdscr)\fR or \fBclear(stdscr)\fR.
-This will not work under ncurses.
+ability to do the equivalent of \fBclearok(..., 1)\fP by saying
+\fBtouchwin(stdscr)\fP or \fBclear(stdscr)\fP.
+This will not work under \fI\%ncurses\fP.
.PP
-Earlier System V curses implementations specified that with \fBscrollok\fR
+Earlier System V curses implementations specified that with \fBscrollok\fP
enabled, any window modification triggering a scroll also forced a physical
refresh.
-XSI Curses does not require this, and \fBncurses\fR avoids doing
-it to perform better vertical-motion optimization at \fBwrefresh\fR
+X/Open Curses does not require this, and \fI\%ncurses\fP avoids doing
+it to perform better vertical-motion optimization at \fBwrefresh\fP
time.
.PP
-The XSI Curses standard does not mention that the cursor should be
-made invisible as a side-effect of \fBleaveok\fR.
+X/Open Curses does not mention that the cursor should be
+made invisible as a side-effect of \fBleaveok\fP.
SVr4 curses documentation does this, but the code does not.
-Use \fBcurs_set\fR to make the cursor invisible.
-.SH NOTES
-Note that
-\fBclearok\fR,
-\fBleaveok\fR,
-\fBscrollok\fR,
-\fBidcok\fR, and
-\fBsetscrreg\fR may be macros.
-.PP
-The \fBimmedok\fR routine is useful for windows that are used as terminal
-emulators.
+Use \fBcurs_set\fP to make the cursor invisible.
+.SH HISTORY
+.I \%ncurses
+formerly treated \fBnl\fP(3X) and \fBnonl\fP(3X) as both input
+.I and
+output options,
+but no longer;
+see \fB\%curs_inopts\fP(3X).
.SH SEE ALSO
-.na
-\fBcurses\fR(3X),
-\fBcurs_addch\fR(3X),
-\fBcurs_clear\fR(3X),
-\fBcurs_initscr\fR(3X),
-\fBcurs_scroll\fR(3X),
-\fBcurs_refresh\fR(3X),
-\fBcurs_variables\fR(3X).
+\fB\%curses\fP(3X),
+\fB\%curs_addch\fP(3X),
+\fB\%curs_clear\fP(3X),
+\fB\%curs_initscr\fP(3X),
+\fB\%curs_refresh\fP(3X),
+\fB\%curs_scroll\fP(3X),
+\fB\%curs_variables\fP(3X)
diff --git a/man/curs_overlay.3x b/man/curs_overlay.3x
index f80477f27ff5..2d4eb729bc22 100644
--- a/man/curs_overlay.3x
+++ b/man/curs_overlay.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2020 Thomas E. Dickey *
+.\" Copyright 2020-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2013,2015 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,49 +27,57 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_overlay.3x,v 1.19 2020/02/02 23:34:34 tom Exp $
-.TH curs_overlay 3X ""
-.na
-.hy 0
+.\" $Id: curs_overlay.3x,v 1.43 2024/04/20 21:20:07 tom Exp $
+.TH curs_overlay 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.SH NAME
-\fBoverlay\fR,
-\fBoverwrite\fR,
-\fBcopywin\fR \- overlay and manipulate overlapped \fBcurses\fR windows
-.ad
-.hy
+\fB\%overlay\fP,
+\fB\%overwrite\fP,
+\fB\%copywin\fP \-
+overlay \fIcurses\fR windows and manipulate them
.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\fBint overlay(const WINDOW *\fP\fIsrcwin\fP\fB, WINDOW *\fP\fIdstwin\fP\fB);\fR
-.br
-\fBint overwrite(const WINDOW *\fP\fIsrcwin\fP\fB, WINDOW *\fP\fIdstwin\fP\fB);\fR
-.br
-\fBint copywin(const WINDOW *\fP\fIsrcwin\fP\fB, WINDOW *\fP\fIdstwin\fP\fB, int \fP\fIsminrow\fP\fB,\fR
- \fBint \fP\fIsmincol\fP\fB, int \fP\fIdminrow\fP\fB, int \fP\fIdmincol\fP\fB, int \fP\fIdmaxrow\fP\fB,\fR
- \fBint \fP\fIdmaxcol\fP\fB, int \fP\fIoverlay\fP\fB);\fR
+.nf
+\fB#include <curses.h>
+.PP
+\fBint overlay(const WINDOW *\fIsrcwin\fP, WINDOW *\fIdstwin\fP);
+\fBint overwrite(const WINDOW *\fIsrcwin\fP, WINDOW *\fIdstwin\fP);
+\fBint copywin(const WINDOW *\fIsrcwin\fP, WINDOW *\fIdstwin\fP, int \fIsminrow\fP,
+ \fBint \fIsmincol\fB, int \fIdminrow\fB, int \fIdmincol\fB, int \fIdmaxrow\fB,\fR
+ \fBint \fIdmaxcol\fB, int \fIoverlay\fB);\fR
+.fi
.SH DESCRIPTION
-.SS overlay, overwrite
-The \fBoverlay\fR and \fBoverwrite\fR routines overlay \fIsrcwin\fR on
-top of \fIdstwin\fR.
-\fIscrwin\fR and \fIdstwin\fR are not required
+.SS "overlay, overwrite"
+The \fBoverlay\fP and \fBoverwrite\fP routines overlay \fIsrcwin\fP on
+top of \fIdstwin\fP.
+\fIscrwin\fP and \fIdstwin\fP are not required
to be the same size; only text where the two windows overlap is copied.
-The difference is that \fBoverlay\fR is non-destructive
-(blanks are not copied) whereas \fBoverwrite\fR is destructive.
+The difference is that \fBoverlay\fP is non-destructive
+(blanks are not copied) whereas \fBoverwrite\fP is destructive.
.SS copywin
-.PP
-The \fBcopywin\fR routine provides a finer granularity of control over the
-\fBoverlay\fR and \fBoverwrite\fR routines.
-As in the \fBprefresh\fR routine,
-a rectangle is specified in the destination window, (\fIdminrow\fR,
-\fIdmincol\fR) and (\fIdmaxrow\fR, \fIdmaxcol\fR), and the upper-left-corner
-coordinates of the source window, (\fIsminrow\fR, \fIsmincol\fR).
-If the argument \fIoverlay\fR is \fBtrue\fR,
+The \fBcopywin\fP routine provides a finer granularity of control over the
+\fBoverlay\fP and \fBoverwrite\fP routines.
+As in the \fBprefresh\fP routine,
+a rectangle is specified in the destination window, (\fIdminrow\fP,
+\fIdmincol\fP) and (\fIdmaxrow\fP, \fIdmaxcol\fP), and the upper-left-corner
+coordinates of the source window, (\fIsminrow\fP, \fIsmincol\fP).
+If the argument \fIoverlay\fP is \fBtrue\fP,
then copying is non-destructive,
-as in \fBoverlay\fR.
+as in \fBoverlay\fP.
.SH RETURN VALUE
-Routines that return an integer return \fBERR\fR upon failure, and \fBOK\fR
-(SVr4 only specifies "an integer value other than \fBERR\fR") upon successful
-completion.
+These routines return the integer \fBERR\fP upon failure and an \fBOK\fP
+(SVr4 specifies only
+\*(``an integer value other than \fBERR\fP\*('')
+upon successful completion.
.PP
X/Open defines no error conditions.
In this implementation,
@@ -78,11 +86,13 @@ In this implementation,
if either of the window pointers are null, or
if some part of the window would be placed off-screen.
.SH NOTES
-Note that \fBoverlay\fR and \fBoverwrite\fR may be macros.
+Note that \fBoverlay\fP and \fBoverwrite\fP may be macros.
.SH PORTABILITY
-The XSI Curses standard, Issue 4 describes these functions (adding the const
-qualifiers).
+These functions are described in X/Open Curses, Issue 4,
+which adds \fI\%const\fP qualifiers to the arguments.
It further specifies their behavior in the presence of characters
with multibyte renditions (not yet supported in this implementation).
.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_pad\fR(3X), \fBcurs_refresh\fR(3X)
+\fB\%curses\fP(3X),
+\fB\%curs_pad\fP(3X),
+\fB\%curs_refresh\fP(3X)
diff --git a/man/curs_pad.3x b/man/curs_pad.3x
index 36fca52ffbd9..21cc405c731b 100644
--- a/man/curs_pad.3x
+++ b/man/curs_pad.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2015,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,127 +27,161 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_pad.3x,v 1.26 2020/02/02 23:34:34 tom Exp $
+.\" $Id: curs_pad.3x,v 1.61 2024/04/27 17:55:43 tom Exp $
+.TH curs_pad 3X 2024-04-27 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
-.TH curs_pad 3X ""
-.na
-.hy 0
.SH NAME
-\fBnewpad\fR,
-\fBsubpad\fR,
-\fBprefresh\fR,
-\fBpnoutrefresh\fR,
-\fBpechochar\fR,
-\fBpecho_wchar\fR \- create and display \fBcurses\fR pads
-.ad
-.hy
+\fB\%newpad\fP,
+\fB\%subpad\fP,
+\fB\%prefresh\fP,
+\fB\%pnoutrefresh\fP,
+\fB\%pechochar\fP,
+\fB\%pecho_wchar\fP \-
+create and display \fIcurses\fR pads
.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\fBWINDOW *newpad(int \fP\fInlines\fP\fB, int \fP\fIncols\fP\fB);\fR
-.br
-\fBWINDOW *subpad(WINDOW *\fP\fIorig\fP\fB, int \fP\fInlines\fP\fB, int \fP\fIncols\fP\fB,\fR
- \fBint \fP\fIbegin_y\fP\fB, int \fP\fIbegin_x\fP\fB);\fR
-.br
-\fBint prefresh(WINDOW *\fP\fIpad\fP\fB, int \fP\fIpminrow\fP\fB, int \fP\fIpmincol\fP\fB,\fR
- \fBint \fP\fIsminrow\fP\fB, int \fP\fIsmincol\fP\fB, int \fP\fIsmaxrow\fP\fB, int \fP\fIsmaxcol\fP\fB);\fR
-.br
-\fBint pnoutrefresh(WINDOW *\fP\fIpad\fP\fB, int \fP\fIpminrow\fP\fB, int \fP\fIpmincol\fP\fB,\fR
- \fBint \fP\fIsminrow\fP\fB, int \fP\fIsmincol\fP\fB, int \fP\fIsmaxrow\fP\fB, int \fP\fIsmaxcol\fP\fB);\fR
-.br
-\fBint pechochar(WINDOW *\fP\fIpad\fP\fB, chtype \fP\fIch\fP\fB);\fR
-.br
-\fBint pecho_wchar(WINDOW *\fP\fIpad\fP\fB, const cchar_t *\fP\fIwch\fP\fB);\fR
-.SH DESCRIPTION
-.SS newpad
-The \fBnewpad\fR routine creates and returns a pointer to a new pad data
-structure with the given number of lines, \fInlines\fR, and columns,
-\fIncols\fR.
-A pad is like a window, except that it is not restricted by the
-screen size, and is not necessarily associated with a particular part of the
-screen.
-Pads can be used when a large window is needed, and only a part of the
-window will be on the screen at one time.
-Automatic refreshes of pads
-(e.g., from scrolling or echoing of input) do not occur.
+.nf
+\fB#include <curses.h>
.PP
-It is not
-legal to call \fBwrefresh\fR with a \fIpad\fR as an argument; the routines
-\fBprefresh\fR or \fBpnoutrefresh\fR should be called instead.
-Note that these
-routines require additional parameters to specify the part of the pad to be
-displayed and the location on the screen to be used for the display.
-.SS subpad
+\fBWINDOW *newpad(int \fInlines\fP, int \fIncols\fP);
+\fBWINDOW *subpad(WINDOW *\fIparent\fP, int \fInlines\fP, int \fIncols\fP,
+ \fBint \fIbegin_y\fB, int \fIbegin_x\fB);\fR
.PP
-The \fBsubpad\fR routine creates and returns a pointer to a subwindow within a
-pad with the given number of lines, \fInlines\fR, and columns, \fIncols\fR.
-Unlike \fBsubwin\fR, which uses screen coordinates, the window is at position
-(\fIbegin\fR_\fIx\fR\fB,\fR \fIbegin\fR_\fIy\fR) on the pad.
-The window is
-made in the middle of the window \fIorig\fR, so that changes made to one window
-affect both windows.
-During the use of this routine, it will often be
-necessary to call \fBtouchwin\fR or \fBtouchline\fR on \fIorig\fR before
-calling \fBprefresh\fR.
-.SS prefresh, pnoutrefresh
+\fBint prefresh(WINDOW *\fIpad\fB, int \fIpminrow\fB, int \fIpmincol\fB,\fR
+ \fBint \fIsminrow\fB, int \fIsmincol\fB, int \fIsmaxrow\fB, int \fIsmaxcol\fB);\fR
+\fBint pnoutrefresh(WINDOW *\fIpad\fB, int \fIpminrow\fB, int \fIpmincol\fB,\fR
+ \fBint \fIsminrow\fB, int \fIsmincol\fB, int \fIsmaxrow\fB, int \fIsmaxcol\fB);\fR
+.PP
+\fBint pechochar(WINDOW *\fIpad\fB, chtype \fIch\fB);\fR
+\fBint pecho_wchar(WINDOW *\fIpad\fB, const cchar_t *\fIwch\fB);\fR
+.fi
+.SH DESCRIPTION
+A
+.I curses
+.I pad
+is like a window,
+except that it is not restricted by the screen size,
+and is not necessarily associated with a particular part of the screen.
+Pads can be used when a large window is needed,
+only part of which is to be visible on the screen.
+Pads are not automatically refreshed by scrolling or input-echoing
+operations.
.PP
-The \fBprefresh\fR and \fBpnoutrefresh\fR routines are analogous to
-\fBwrefresh\fR and \fBwnoutrefresh\fR except that they relate to pads instead
-of windows.
-The additional parameters are needed to indicate what part of the
-pad and screen are involved.
+Pads cannot be refreshed with \fB\%wrefresh\fP(3X);
+use
+.B \%prefresh
+or
+.B \%pnoutrefresh
+instead.
+.SS newpad
+\fB\%newpad\fP creates and returns a pointer to a new pad data structure
+with the given number of lines,
+.IR nlines ,
+and columns,
+.IR ncols .
+.SS subpad
+.B \%subpad
+creates and returns a pointer to a subwindow within a pad
+with the given number of lines,
+.IR nlines ,
+and columns,
+.IR ncols .
+Unlike \fB\%subwin\fP(3X),
+which uses screen coordinates,
+the new pad is placed at position
+.RI ( begin_y ,
+.IR begin_x )
+relative to its parent.
+Thus,
+changes made to one pad can affect both.
+When operating on a subpad,
+it is often necessary to call \fB\%touchwin\fP(3X) or
+\fB\%touchline\fP(3X) on
+.I parent
+before calling
+.BR \%prefresh .
+.SS "prefresh, pnoutrefresh"
+.B \%prefresh\fP
+and
+.B \%pnoutrefresh
+are analogous to \fB\%wrefresh\fP(3X) and \fB\%wnoutrefresh\fP(3X)
+except that they operate on pads rather than windows.
+They require additional parameters are needed to indicate what portions
+of the pad and screen are involved.
.bP
-The \fIpminrow\fR and \fIpmincol\fR parameters specify the upper
-left-hand corner of the rectangle to be displayed in the pad.
+.I pminrow
+and
+.I pmincol
+specify the upper left-hand corner of a rectangular view of the pad.
.bP
-The \fIsminrow\fR,
-\fIsmincol\fR, \fIsmaxrow\fR, and \fIsmaxcol\fR
-parameters specify the edges of the
-rectangle to be displayed on the screen.
+.IR sminrow ,
+.IR smincol ,
+.IR smaxrow ,
+and
+.I smaxcol
+specify the vertices of the rectangle to be displayed on the screen.
.PP
-The lower right-hand corner of the
-rectangle to be displayed in the pad is calculated from the screen coordinates,
+The lower right-hand corner
+of the rectangle to be displayed in the pad
+is calculated from the screen coordinates,
since the rectangles must be the same size.
-Both rectangles must be entirely
-contained within their respective structures.
-Negative values of
-\fIpminrow\fR, \fIpmincol\fR, \fIsminrow\fR, or \fIsmincol\fR are treated as if
-they were zero.
+Both rectangles must be entirely contained
+within their respective structures.
+.I curses
+treats
+negative values of any of these parameters as zero.
.SS pechochar
-.PP
-The \fBpechochar\fR routine is functionally equivalent to a call to \fBaddch\fR
-followed by a call to \fBrefresh\fR(3X),
-a call to \fBwaddch\fR followed by a call
-to \fBwrefresh\fR, or a call to \fBwaddch\fR followed by a call to
-\fBprefresh\fR.
-The knowledge that only a single character is being output is
-taken into consideration and, for non-control characters, a considerable
-performance gain might be seen by using these routines instead of their
-equivalents.
-In the case of \fBpechochar\fR, the last location of the pad on
-the screen is reused for the arguments to \fBprefresh\fR.
+.B \%pechochar
+is functionally equivalent to calling \fB\%waddch\fP(3X) followed by
+.BR \%prefresh .
+It suggests to the
+.I curses
+optimizer that only a single character is being output;
+a considerable performance benefit may be thus enjoyed.
+The location of the character
+.I ch
+written to the pad is used to populate the arguments to
+.BR \%prefresh .
.SS pecho_wchar
-.PP
-The \fBpecho_wchar\fR function is the analogous wide-character
-form of \fBpechochar\fR.
-It outputs one character to a pad and immediately refreshes the pad.
-It does this by a call to \fBwadd_wch\fR followed by a call to \fBprefresh\fR.
+.B \%pecho_wchar\fP
+is functionally equivalent to calling \fB\%wadd_wch\fP(3X) followed by
+.BR \%prefresh .
+It suggests to the
+.I curses
+optimizer that only a single wide character is being output;
+a considerable performance benefit may be thus enjoyed.
+The location of the character
+.I wch
+written to the pad is used to populate the arguments to
+.BR \%prefresh .
.SH RETURN VALUE
-Routines that return an integer return \fBERR\fR upon failure and \fBOK\fR
-(SVr4 only specifies "an integer value other than \fBERR\fR") upon successful
-completion.
+Functions that return an integer return \fBERR\fP upon failure and
+\fBOK\fP
+(SVr4 specifies only
+\*(``an integer value other than \fBERR\fP\*('')
+upon successful completion.
.PP
-Routines that return pointers return \fBNULL\fR on error, and set \fBerrno\fR
-to \fBENOMEM\fR.
+Functions that return pointers return \fBNULL\fP on error,
+and set \fB\%errno\fP to \fB\%ENOMEM\fP.
.PP
-X/Open does not define any error conditions.
+X/Open Curses does not specify any error conditions.
In this implementation
.RS 3
.TP 5
-\fBprefresh\fP and \fBpnoutrefresh\fP
+\fB\%prefresh\fP and \fB\%pnoutrefresh\fP
return an error
if the window pointer is null, or
if the window is not really a pad or
@@ -157,19 +191,19 @@ if the minimum coordinates are greater than the maximum.
\fBpechochar\fP
returns an error
if the window is not really a pad, and the associated call
-to \fBwechochar\fP returns an error.
+to \fB\%wechochar\fP returns an error.
.TP 5
\fBpecho_wchar\fP
returns an error
if the window is not really a pad, and the associated call
-to \fBwecho_wchar\fP returns an error.
+to \fB\%wecho_wchar\fP returns an error.
.RE
.SH NOTES
-Note that \fBpechochar\fR may be a macro.
+\fB\%pechochar\fP may be a macro.
.SH PORTABILITY
-BSD curses has no \fIpad\fP feature.
+BSD \fIcurses\fP has no \fIpad\fP feature.
.PP
-SVr2 curses (1986) provided the \fBnewpad\fP and related functions,
+SVr2 \fIcurses\fP (1986) provided the \fB\%newpad\fP and related functions,
documenting them in a single line each.
SVr3 (1987) provided more extensive documentation.
.PP
@@ -184,59 +218,63 @@ and select text from the pad.
.PP
The two uses may be related.
.PP
-The XSI Curses standard, Issue 4 describes these functions,
+X/Open Curses, Issue 4 describes these functions,
without significant change from the SVr3 documentation.
It describes no error conditions.
-The behavior of \fBsubpad\fP if the parent window is not
+The behavior of \fB\%subpad\fP if the parent window is not
a pad is undocumented,
and is not checked by the vendor Unix implementations:
.bP
-SVr4 curses sets a flag in the \fBWINDOW\fP structure in \fBnewpad\fP
-which tells if the window is a \fIpad\fP.
+SVr4 \fIcurses\fP sets a flag in the \fI\%WINDOW\fP structure in
+\fB\%newpad\fP which tells if the window is a \fIpad\fP.
.IP
However, it uses this information only in
-\fBwaddch\fP (to decide if it should call \fBwrefresh\fP) and
-\fBwscrl\fP (to avoid scrolling a pad),
-and does not check in \fBwrefresh\fP to ensure that the pad
+\fB\%waddch\fP (to decide if it should call \fB\%wrefresh\fP) and
+\fB\%wscrl\fP (to avoid scrolling a pad),
+and does not check in \fB\%wrefresh\fP to ensure that the pad
is refreshed properly.
.bP
-Solaris X/Open Curses checks if a window is a pad in \fBwnoutrefresh\fP,
+Solaris \fI\%xcurses\fP checks whether a window is a pad in
+\fB\%wnoutrefresh\fP,
returning \fBERR\fP in that case.
.IP
-However, it only sets the flag for subwindows if the parent window is a pad.
-Its \fBnewpad\fP function does not set this information.
+However,
+it only sets the flag for subwindows if the parent window is a pad.
+Its \fB\%newpad\fP function does not set this information.
Consequently, the check will never fail.
.IP
-It makes no comparable check in \fBpnoutrefresh\fP,
+It makes no comparable check in \fB\%pnoutrefresh\fP,
though interestingly enough, a comment in the source code
states that the lack of a check was an MKS extension.
.bP
-NetBSD 7 curses
-sets a flag in the \fBWINDOW\fP structure for \fBnewpad\fP and \fBsubpad\fP,
-using this to help with the distinction between \fBwnoutrefresh\fP
-and \fBpnoutrefresh\fP.
+NetBSD 7 \fIcurses\fP
+sets a flag in the \fI\%WINDOW\fP structure
+for \fB\%newpad\fP and \fB\%subpad\fP,
+using this to help with the distinction between \fB\%wnoutrefresh\fP
+and \fB\%pnoutrefresh\fP.
.IP
It does not check for the case where a subwindow is created in
-a pad using \fBsubwin\fP or \fBderwin\fP.
+a pad using \fB\%subwin\fP or \fB\%derwin\fP.
.IP
-The \fBdupwin\fP function returns a regular window when duplicating a pad.
-Likewise, \fBgetwin\fP always returns a window, even if the saved
+The \fB\%dupwin\fP function returns a regular window when duplicating a pad.
+Likewise, \fB\%getwin\fP always returns a window, even if the saved
data was from a pad.
.PP
This implementation
.bP
-sets a flag in the \fBWINDOW\fP structure for \fBnewpad\fP and \fBsubpad\fP,
+sets a flag in the \fI\%WINDOW\fP structure
+for \fB\%newpad\fP and \fB\%subpad\fP,
.bP
-allows a \fBsubwin\fP or \fBderwin\fP call to succeed having a pad parent by
+allows a \fB\%subwin\fP or \fB\%derwin\fP call to succeed having a pad parent by
forcing the subwindow to be a pad,
.bP
-checks in both \fBwnoutrefresh\fP and \fBpnoutrefresh\fP to ensure
+checks in both \fB\%wnoutrefresh\fP and \fB\%pnoutrefresh\fP to ensure
that pads and windows are handled distinctly, and
.bP
-ensures that \fBdupwin\fP and \fBgetwin\fP treat
+ensures that \fB\%dupwin\fP and \fB\%getwin\fP treat
pads versus windows consistently.
.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBcurs_refresh\fR(3X),
-\fBcurs_touch\fR(3X),
-\fBcurs_addch\fR(3X).
+\fB\%curses\fP(3X),
+\fB\%curs_addch\fP(3X),
+\fB\%curs_refresh\fP(3X),
+\fB\%curs_touch\fP(3X)
diff --git a/man/curs_print.3x b/man/curs_print.3x
index 8bde817d92f0..3694beffcca1 100644
--- a/man/curs_print.3x
+++ b/man/curs_print.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2010,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,19 +27,23 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_print.3x,v 1.16 2020/10/24 09:25:14 tom Exp $
-.TH curs_print 3X ""
+.\" $Id: curs_print.3x,v 1.38 2024/03/16 15:35:01 tom Exp $
+.TH curs_print 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
-\fBmcprint\fR \- ship binary data to printer
+\fB\%mcprint\fP \-
+write binary data to printer using \fIterminfo\fR capabilities
.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\fBint mcprint(char *\fP\fIdata\fP\fB, int \fP\fIlen\fP\fB);\fR
+.nf
+\fB#include <curses.h>
+.PP
+\fBint mcprint(char *\fIdata\fP, int \fIlen\fP);
+.fi
.SH DESCRIPTION
-This function uses the \fBmc5p\fR or \fBmc4\fR and \fBmc5\fR capabilities,
+This function uses the \fBmc5p\fP or \fBmc4\fP and \fBmc5\fP capabilities,
if they are present, to ship given data to a printer attached to the terminal.
.PP
-Note that the \fBmcprint\fR code has no way to do flow control with the printer
+Note that the \fB\%mcprint\fP code has no way
+to do flow control with the printer
or to know how much buffering it has.
Your application is responsible for
keeping the rate of writes to the printer below its continuous throughput rate
@@ -49,24 +53,37 @@ Dot-matrix printers and
rule of thumb is to sleep for a second after shipping each 80-character line.
.
.SH RETURN VALUE
-The \fBmcprint\fR function returns \fBERR\fR if the write operation aborted
+The \fB\%mcprint\fP function returns \fBERR\fP if the write operation aborted
for some reason.
-In this case, \fBerrno\fP will contain either an error associated
+In this case, \fB\%errno\fP will contain either an error associated
with \fBwrite\fP(2) or one of the following:
.TP 5
-ENODEV
+\fBENODEV\fP
Capabilities for printer redirection do not exist.
.TP 5
-ENOMEM
+\fBENOMEM\fP
Couldn't allocate sufficient memory to buffer the printer write.
.PP
-When \fBmcprint\fR succeeds, it returns the number of characters actually
+When \fB\%mcprint\fP succeeds, it returns the number of characters actually
sent to the printer.
+.SH EXTENSIONS
+\fB\%mcprint\fP was designed for
+\fB\%ncurses\fP(3X),
+and was not found in SVr4
+.IR curses ,
+4.4BSD
+.IR curses ,
+or any other previous curses implementation.
.SH PORTABILITY
-The \fBmcprint\fR call was designed for \fBncurses\fR(3X), and is not found
-in SVr4 curses, 4.4BSD curses, or any other previous version of curses.
+Applications employing this
+.I \%ncurses
+extension should condition its use on the visibility of the
+.B \%NCURSES_VERSION
+preprocessor macro.
.SH BUGS
-Padding in the \fBmc5p\fR, \fBmc4\fR and \fBmc5\fR capabilities will not be
-interpreted.
+Padding in the
+\fBmc5p\fP,
+\fBmc4\fP, and
+\fBmc5\fP capabilities is not interpreted.
.SH SEE ALSO
-\fBcurses\fR(3X)
+\fB\%curses\fP(3X)
diff --git a/man/curs_printw.3x b/man/curs_printw.3x
index 4980517275d5..282536b363e0 100644
--- a/man/curs_printw.3x
+++ b/man/curs_printw.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2010,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,128 +27,179 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_printw.3x,v 1.28 2020/10/24 09:22:45 tom Exp $
-.TH curs_printw 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: curs_printw.3x,v 1.53 2024/04/20 19:18:18 tom Exp $
+.TH curs_printw 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
-.na
-.hy 0
.SH NAME
-\fBprintw\fR,
-\fBwprintw\fR,
-\fBmvprintw\fR,
-\fBmvwprintw\fR,
-\fBvwprintw\fR, \fBvw_printw\fR \- print formatted output in \fBcurses\fR windows
-.ad
-.hy
+\fB\%printw\fP,
+\fB\%wprintw\fP,
+\fB\%mvprintw\fP,
+\fB\%mvwprintw\fP,
+\fB\%vwprintw\fP,
+\fB\%vw_printw\fP \-
+write formatted output to a \fIcurses\fR window
.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\fBint printw(const char *\fP\fIfmt\fP\fB, ...);\fR
-.br
-\fBint wprintw(WINDOW *\fP\fIwin\fP\fB, const char *\fP\fIfmt\fP\fB, ...);\fR
-.br
-\fBint mvprintw(int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, const char *\fP\fIfmt\fP\fB, ...);\fR
-.br
-\fBint mvwprintw(WINDOW *\fP\fIwin\fP\fB, int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, const char *\fP\fIfmt\fP\fB, ...);\fR
-.br
-\fBint vw_printw(WINDOW *\fP\fIwin\fP\fB, const char *\fP\fIfmt\fP\fB, va_list \fP\fIvarglist\fP\fB);\fR
-.sp
-/* obsolete */
-.br
-\fBint vwprintw(WINDOW *\fP\fIwin\fP\fB, const char *\fP\fIfmt\fP\fB, va_list \fP\fIvarglist\fP\fB);\fR
+.nf
+\fB#include <curses.h>
+.PP
+\fBint printw(const char *\fIfmt\fP, ...);
+\fBint wprintw(WINDOW *\fIwin\fP, const char *\fIfmt\fP, ...);
+\fBint mvprintw(int \fIy\fP, int \fIx\fP, const char *\fIfmt\fP, ...);
+\fBint mvwprintw(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, const char *\fIfmt\fP, ...);
+.PP
+\fBint vw_printw(WINDOW *\fIwin\fP, const char *\fIfmt\fP, va_list \fIvarglist\fP);
+.PP
+\fI/* obsolete */\fP
+\fBint vwprintw(WINDOW *\fIwin\fP, const char *\fIfmt\fP, va_list \fIvarglist\fP);
+.fi
.SH DESCRIPTION
-The \fBprintw\fR, \fBwprintw\fR, \fBmvprintw\fR and \fBmvwprintw\fR
-routines are analogous to \fBprintf\fR [see \fBprintf\fR(3)].
-In
-effect, the string that would be output by \fBprintf\fR is output
-instead as though \fBwaddstr\fR were used on the given window.
+\fB\%printw\fP,
+\fB\%wprintw\fP,
+\fB\%mvprintw\fP,
+and
+\fB\%mvwprintw\fP
+are analogous to \fI\%printf\fP(3).
+In effect,
+the string that would be output by \fI\%printf\fP(3) is instead output
+as though \fB\%waddstr\fP(3X) were used with
+.I win
+(or
+.BR \%stdscr )
+as its first argument.
.PP
-The \fBvwprintw\fR and \fBvw_printw\fR routines are analogous
-to \fBvprintf\fR [see \fBprintf\fR(3)]
-and perform a \fBwprintw\fR using a variable argument list.
-The third argument is a \fBva_list\fR, a pointer to a
-list of arguments, as defined in \fB<stdarg.h>\fR.
+\fB\%vwprintw\fP
+and
+\fB\%vw_printw\fP are analogous to \fI\%vprintf\fP(3),
+and perform a \fB\%wprintw\fP using a variable argument list.
+The third argument is a \fI\%va_list\fP,
+a pointer to a list of arguments,
+as defined in \fI\%stdarg.h\fP.
.SH RETURN VALUE
-Routines that return an integer return \fBERR\fR upon failure and \fBOK\fR
-(SVr4 only specifies "an integer value other than \fBERR\fR") upon successful
-completion.
+These functions return
+.B ERR
+upon failure and
+.B OK
+upon success.
.PP
-X/Open defines no error conditions.
-In this implementation,
-an error may be returned if it cannot allocate enough memory for the
-buffer used to format the results.
-It will return an error if the window pointer is null.
+In
+.IR \%ncurses ,
+failure occurs if the library cannot allocate enough memory for the
+buffer into which the output is formatted,
+or if the window pointer
+.I win
+is null.
+.PP
+Functions prefixed with \*(``mv\*('' first perform cursor movement and
+fail if the position
+.RI ( y ,
+.IR x )
+is outside the window boundaries.
+.SH NOTES
+No wide character counterpart functions are defined by the
+\*(``wide\*(''
+.I \%ncurses
+configuration nor by any standard.
+To format and write a wide-character string to a
+.I curses
+window,
+consider using \fI\%swprintf\fP(3) and \fB\%waddwstr\fP(3X) or similar.
+.SH PORTABILITY
+X/Open Curses,
+Issue 4 describes these functions.
+It specifies no error conditions for them.
.PP
-Functions with a \*(``mv\*('' prefix first perform a cursor movement using
-\fBwmove\fP, and return an error if the position is outside the window,
-or if the window pointer is null.
+.I \%ncurses
+defines \fB\%vw_printw\fP and \fB\%vwprintw\fP identically to support
+legacy applications.
+However,
+the latter is obsolete.
+.bP
+X/Open Curses,
+Issue 4 Version 2 (1996),
+marked \fB\%vwprintw\fP as requiring \fI\%varargs.h\fP and
+\*(``TO BE WITHDRAWN\*('',
+and specified \fB\%vw_printw\fP using the \fI\%stdarg.h\fP interface.
+.bP
+X/Open Curses, Issue 5, Draft 2
+(December 2007) marked \fBvwprintw\fP (along with
+\fBvwscanw\fP and the \fItermcap\fP interface) as withdrawn.
+After incorporating review comments,
+this became
+X/Open Curses, Issue 7 (2009).
+.bP
+.I \%ncurses
+provides \fB\%vwprintw\fP,
+but marks it as deprecated.
.SH HISTORY
-While \fBprintw\fP was implemented in 4BSD,
-it was unused until 4.2BSD (which used it in games).
-That early version of curses was before the ANSI C standard.
-It did not use <varargs.h>, though that was available.
-In 1991 (a couple of years after SVr4 was generally available,
+While \fB\%printw\fP was implemented in 4BSD
+(November 1980),
+.\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=4BSD/usr/src/lib/\
+.\" libcurses/printw.c
+it was unused until 4.2BSD
+(August 1983),
+which employed it for games.
+That early version of
+.I curses
+preceded the ANSI C standard of 1989.
+It did not use \fI\%varargs.h\fP,
+though that had been available since Seventh Edition Unix (1979).
+.\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=V7/usr/include/\
+.\" varargs.h
+In 1991
+(a couple of years after SVr4 was generally available,
and after the C standard was published),
other developers updated the library,
-using <stdarg.h> internally in 4.4BSD curses.
+using \fI\%stdarg.h\fP internally in 4.4BSD
+.IR curses .
Even with this improvement,
-BSD curses did not use function prototypes (or even declare
-functions) in the <curses.h> header until 1992.
+BSD
+.I curses
+did not use function prototypes
+(nor even declare functions)
+in \fI\%curses.h\fP until 1992.
.PP
-SVr2 documented
-\fBprintw\fP,
-\fBwprintw\fP
-tersely as \*(``printf on \fIstdscr\fP\*('' and
-tersely as \*(``printf on \fIwin\fP\*('', respectively.
+SVr2 (1984) documented \fB\%printw\fP and \fB\%wprintw\fP tersely as
+\*(``printf on \fB\%stdscr\fP\*('' and
+\*(``printf on \fIwin\fP\*('',
+respectively.
.PP
-SVr3 added
-\fBmvprintw\fP, and
-\fBmvwprintw\fP, with a three-line summary saying that they were analogous
-to \fBprintf\fP(3),
-explaining that the string which would be output from \fBprintf\fP(3) would
-instead be output using \fBwaddstr\fP on the given window.
-SVr3 also added \fBvwprintw\fP, saying that the third parameter
-is a \fBva_list\fP, defined in <varargs.h>,
-and referring the reader to the manual pages for \fIvarargs\fP and
-\fIvprintf\fP for detailed descriptions.
+SVr3 (1987) added \fB\%mvprintw\fP and \fB\%mvwprintw\fP,
+with a three-line summary asserting that they were analogous to
+\fI\%printf\fP(3),
+explaining that the string that \fI\%printf\fP(3) would write to the
+standard output stream would instead be output using \fB\%waddstr\fP to
+the given window.
+SVr3 also implemented \fB\%vwprintw\fP,
+describing its third parameter as a \fI\%va_list\fP,
+defined in \fI\%varargs.h\fP,
+and referred the reader to the manual pages for \fI\%varargs\fP and
+\fI\%vprintf\fP for detailed descriptions.
.PP
-SVr4 added no new variations of \fBprintw\fP,
-but provided for using <varargs.h> or <stdarg.h> to define the \fBva_list\fP
-type.
+SVr4 (1989) introduced no new variations of \fI\%printw\fP,
+but provided for using either \fI\%varargs.h\fP or \fI\%stdarg.h\fP to
+define the \fI\%va_list\fP type.
+.\" either header declares "va_list", but only one can be used
.PP
-X/Open Curses added \fBvw_printw\fP to replace \fBvwprintw\fP,
-stating that its \fBva_list\fP definition requires <stdarg.h>.
-.SH PORTABILITY
-In this implementation, \fBvw_printw\fP and \fBvwprintw\fP are equivalent,
-to support legacy applications.
-However, the latter (\fBvwprintw\fP) is obsolete:
-.bP
-The XSI Curses standard, Issue 4 described these functions.
-The function
-\fBvwprintw\fR is marked TO BE WITHDRAWN, and is to be replaced by a function
-\fBvw_printw\fR using the \fB<stdarg.h>\fR interface.
-.bP
-The Single Unix Specification, Version 2 states that
-\fBvw_printw\fR is preferred to \fBvwprintw\fR since the latter requires
-including \fB<varargs.h>\fR, which
-cannot be used in the same file as \fB<stdarg.h>\fR.
-This implementation uses \fB<stdarg.h>\fR for both,
-because that header is included in \fB<curses.h\fR>.
-.bP
-X/Open Curses, Issue 5 (December 2007) marked \fBvwprintw\fP (along with
-\fBvwscanw\fP and the termcap interface) as withdrawn.
+X/Open Curses, Issue 4 (1995),
+defined \fB\%vw_printw\fP to replace \fB\%vwprintw\fP,
+stating that its \fI\%va_list\fP type is defined in \fI\%stdarg.h\fP.
.SH SEE ALSO
-.na
-\fBcurses\fR(3X),
-\fBcurs_addstr\fR(3X),
-\fBcurs_scanw\fR(3X),
-\fBcurs_termcap\fP(3X),
-\fBprintf\fR(3),
-\fBvprintf\fR(3).
+\fB\%curses\fP(3X),
+\fB\%curs_addstr\fP(3X),
+\fB\%curs_scanw\fP(3X),
+\fB\%printf\fP(3),
+\fB\%vprintf\fP(3)
diff --git a/man/curs_refresh.3x b/man/curs_refresh.3x
index 4c4b8e7f28d0..ac81d1e6393e 100644
--- a/man/curs_refresh.3x
+++ b/man/curs_refresh.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2010,2016 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,111 +27,113 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_refresh.3x,v 1.22 2020/10/24 09:43:49 tom Exp $
-.TH curs_refresh 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: curs_refresh.3x,v 1.46 2024/04/20 21:20:07 tom Exp $
+.TH curs_refresh 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
-.na
-.hy 0
.SH NAME
-\fBdoupdate\fR,
-\fBredrawwin\fR,
-\fBrefresh\fR,
-\fBwnoutrefresh\fR,
-\fBwredrawln\fR,
-\fBwrefresh\fR \- refresh \fBcurses\fR windows and lines
-.ad
-.hy
+\fB\%doupdate\fP,
+\fB\%redrawwin\fP,
+\fB\%refresh\fP,
+\fB\%wnoutrefresh\fP,
+\fB\%wredrawln\fP,
+\fB\%wrefresh\fP \-
+refresh \fIcurses\fR windows or lines thereupon
.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\fBint refresh(void);\fR
-.br
-\fBint wrefresh(WINDOW *\fP\fIwin\fP\fB);\fR
-.br
-\fBint wnoutrefresh(WINDOW *\fP\fIwin\fP\fB);\fR
-.br
-\fBint doupdate(void);\fR
-.sp
-\fBint redrawwin(WINDOW *\fP\fIwin\fP\fB);\fR
-.br
-\fBint wredrawln(WINDOW *\fP\fIwin\fP\fB, int \fP\fIbeg_line\fP\fB, int \fP\fInum_lines\fP\fB);\fR
-.br
+.nf
+\fB#include <curses.h>
+.PP
+\fBint refresh(void);
+\fBint wrefresh(WINDOW *\fIwin\fP);
+\fBint wnoutrefresh(WINDOW *\fIwin\fP);
+\fBint doupdate(void);
+.PP
+\fBint redrawwin(WINDOW *\fIwin\fP);
+\fBint wredrawln(WINDOW *\fIwin\fP, int \fIbeg_line\fP, int \fInum_lines\fP);
+.fi
.SH DESCRIPTION
-.SS refresh/wrefresh
-The \fBrefresh\fR and \fBwrefresh\fR routines (or \fBwnoutrefresh\fR and
-\fBdoupdate\fR) must be called to get actual output to the terminal,
+.SS "refresh, wrefresh"
+The \fBrefresh\fP and \fBwrefresh\fP routines (or \fBwnoutrefresh\fP and
+\fBdoupdate\fP) must be called to get actual output to the terminal,
as other routines merely manipulate data structures.
-The routine \fBwrefresh\fR copies
+The routine \fBwrefresh\fP copies
the named window to the \fIphysical screen\fP,
taking into account what is already there to do optimizations.
-The \fBrefresh\fR routine is the
-same, using \fBstdscr\fR as the default window.
-Unless \fBleaveok\fR has been
+The \fBrefresh\fP routine is the
+same, using \fBstdscr\fP as the default window.
+Unless \fBleaveok\fP(3X) has been
enabled, the physical cursor of the terminal is left at the location of the
cursor for that window.
-.SS wnoutrefresh/doupdate
-.PP
-The \fBwnoutrefresh\fR and \fBdoupdate\fR routines allow multiple updates with
-more efficiency than \fBwrefresh\fR alone.
+.SS "wnoutrefresh, doupdate"
+The \fBwnoutrefresh\fP and \fBdoupdate\fP routines allow multiple updates with
+more efficiency than \fBwrefresh\fP alone.
In addition to all the window
-structures, \fBcurses\fR keeps two data structures representing the terminal
+structures, \fBcurses\fP keeps two data structures representing the terminal
screen:
.bP
-a \fIphysical screen\fP, describing what is actually on the screen, and
+a \fIphysical screen\fP,
+describing what is actually on the screen, and
.bP
-a \fIvirtual screen\fP, describing what the programmer wants to have on the screen.
+a \fIvirtual screen\fP,
+describing what the programmer wants to have on the screen.
.PP
-The routine \fBwrefresh\fR works by
+The routine \fBwrefresh\fP works by
.bP
-first calling \fBwnoutrefresh\fR,
+first calling \fBwnoutrefresh\fP,
which copies the named window to the \fIvirtual screen\fP, and
.bP
-then calling \fBdoupdate\fR, which compares
+then calling \fBdoupdate\fP, which compares
the \fIvirtual screen\fP to the \fIphysical screen\fP
and does the actual update.
.PP
If the programmer wishes to output several windows at once, a series
-of calls to \fBwrefresh\fR results in alternating calls to \fBwnoutrefresh\fR
-and \fBdoupdate\fR, causing several bursts of output to the screen.
+of calls to \fBwrefresh\fP results in alternating calls to \fBwnoutrefresh\fP
+and \fBdoupdate\fP, causing several bursts of output to the screen.
By first
-calling \fBwnoutrefresh\fR for each window, it is then possible to call
-\fBdoupdate\fR once, resulting in only one burst of output, with fewer total
+calling \fBwnoutrefresh\fP for each window, it is then possible to call
+\fBdoupdate\fP once, resulting in only one burst of output, with fewer total
characters transmitted and less CPU time used.
.PP
-If the \fIwin\fR argument to
-\fBwrefresh\fR is the \fIphysical screen\fP
-(i.e., the global variable \fBcurscr\fR),
+If the \fIwin\fP argument to
+\fBwrefresh\fP is the \fIphysical screen\fP
+(i.e., the global variable \fBcurscr\fP),
the screen is immediately cleared and repainted from scratch.
.PP
The phrase \*(``copies the named window
to the virtual screen\*('' above is ambiguous.
-What actually happens is that all \fItouched\fR (changed) lines in the window
+What actually happens is that all \fItouched\fP (changed) lines in the window
are copied to the virtual screen.
This affects programs that use overlapping
windows; it means that if two windows overlap, you can refresh them in either
order and the overlap region will be modified only when it is explicitly
changed.
-(But see the section on \fBPORTABILITY\fR below for a warning about
+(But see the section on \fBPORTABILITY\fP below for a warning about
exploiting this behavior.)
-.SS wredrawln/redrawwin
-.PP
-The \fBwredrawln\fR routine indicates to \fBcurses\fR that some screen lines
+.SS "wredrawln, redrawwin"
+The \fBwredrawln\fP routine indicates to \fBcurses\fP that some screen lines
are corrupted and should be thrown away before anything is written over them.
It touches the indicated lines (marking them changed).
-The routine \fBredrawwin\fR touches the entire window.
+The routine \fBredrawwin\fP touches the entire window.
.SH RETURN VALUE
-Routines that return an integer return \fBERR\fR upon failure, and \fBOK\fR
-(SVr4 only specifies "an integer value other than \fBERR\fR") upon successful
-completion.
+These routines return the integer \fBERR\fP upon failure and \fBOK\fP
+(SVr4 specifies only
+\*(``an integer value other than \fBERR\fP\*('')
+upon successful completion.
.PP
-X/Open does not define any error conditions.
+X/Open Curses does not specify any error conditions.
In this implementation
.RS 3
.TP 5
@@ -145,19 +147,19 @@ returns an error
if the associated call to \fBtouchln\fP returns an error.
.RE
.SH NOTES
-Note that \fBrefresh\fR and \fBredrawwin\fR may be macros.
+Note that \fBrefresh\fP and \fBredrawwin\fP may be macros.
.SH PORTABILITY
-The XSI Curses standard, Issue 4 describes these functions.
+X/Open Curses, Issue 4 describes these functions.
.PP
-Whether \fBwnoutrefresh\fR copies to the virtual screen the entire contents
+Whether \fBwnoutrefresh\fP copies to the virtual screen the entire contents
of a window or just its changed portions has never been well-documented in
historic curses versions (including SVr4).
It might be unwise to rely on
either behavior in programs that might have to be linked with other curses
implementations.
-Instead, you can do an explicit \fBtouchwin\fR before the
-\fBwnoutrefresh\fR call to guarantee an entire-contents copy anywhere.
+Instead, you can do an explicit \fBtouchwin\fP before the
+\fBwnoutrefresh\fP call to guarantee an entire-contents copy anywhere.
.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBcurs_outopts\fR(3X)
-\fBcurs_variables\fR(3X).
+\fB\%curses\fP(3X),
+\fB\%curs_outopts\fP(3X)
+\fB\%curs_variables\fP(3X)
diff --git a/man/curs_scanw.3x b/man/curs_scanw.3x
index 1de9ad866839..409c297fb233 100644
--- a/man/curs_scanw.3x
+++ b/man/curs_scanw.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2010,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,143 +27,229 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_scanw.3x,v 1.28 2020/10/24 09:29:26 tom Exp $
-.TH curs_scanw 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: curs_scanw.3x,v 1.53 2024/04/20 19:18:18 tom Exp $
+.TH curs_scanw 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
.SH NAME
-\fBscanw\fR,
-\fBwscanw\fR,
-\fBmvscanw\fR,
-\fBmvwscanw\fR,
-\fBvwscanw\fR, \fBvw_scanw\fR \- convert formatted input from a \fBcurses\fR window
+\fB\%scanw\fP,
+\fB\%wscanw\fP,
+\fB\%mvscanw\fP,
+\fB\%mvwscanw\fP,
+\fB\%vwscanw\fP,
+\fB\%vw_scanw\fP \-
+read formatted input from a \fIcurses\fR window
.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\fBint scanw(const char *\fP\fIfmt\fP\fB, ...);\fR
-.br
-\fBint wscanw(WINDOW *\fP\fIwin\fP\fB, const char *\fP\fIfmt\fP\fB, ...);\fR
-.br
-\fBint mvscanw(int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, const char *\fP\fIfmt\fP\fB, ...);\fR
-.br
-\fBint mvwscanw(WINDOW *\fP\fIwin\fP\fB, int \fP\fIy\fP\fB, int \fP\fIx\fP\fB, const char *\fP\fIfmt\fP\fB, ...);\fR
-.sp
-\fBint vw_scanw(WINDOW *\fP\fIwin\fP\fB, const char *\fP\fIfmt\fP\fB, va_list \fP\fIvarglist\fP\fB);\fR
-.sp
-/* obsolete */
-.br
-\fBint vwscanw(WINDOW *\fP\fIwin\fP\fB, const char *\fP\fIfmt\fP\fB, va_list \fP\fIvarglist\fP\fB);\fR
-.SH DESCRIPTION
-The \fBscanw\fR, \fBwscanw\fR and \fBmvscanw\fR routines are analogous to
-\fBscanf\fR [see \fBscanf\fR(3)].
-The effect of these routines is as though
-\fBwgetstr\fR were called on the window, and the resulting line used as input
-for \fBsscanf\fR(3).
-Fields which do not map to a variable in the \fIfmt\fR
-field are lost.
+.nf
+\fB#include <curses.h>
.PP
-The \fBvwscanw\fR and \fBvw_scanw\fR routines are analogous to \fBvscanf\fR(3).
-They perform a \fBwscanw\fR using a variable argument list.
-The third argument is a \fIva_list\fR,
-a pointer to a list of arguments, as defined in \fB<stdarg.h>\fR.
-.SH RETURN VALUE
-\fBvwscanw\fR returns \fBERR\fR on failure and an integer equal to the
-number of fields scanned on success.
+\fBint scanw(const char *\fIfmt\fP, ...);
+\fBint wscanw(WINDOW *\fIwin\fP, const char *\fIfmt\fP, ...);
+\fBint mvscanw(int \fIy\fP, int \fIx\fP, const char *\fIfmt\fP, ...);
+\fBint mvwscanw(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, const char *\fIfmt\fP, ...);
.PP
-Applications may use the return value from the \fBscanw\fR, \fBwscanw\fR,
-\fBmvscanw\fR and \fBmvwscanw\fR routines to determine the number of fields
-which were mapped in the call.
+\fBint vw_scanw(WINDOW *\fIwin\fP, const char *\fIfmt\fP, va_list \fIvarglist\fP);
.PP
-Functions with a \*(``mv\*('' prefix first perform a cursor movement using
-\fBwmove\fP, and return an error if the position is outside the window,
-or if the window pointer is null.
-.SH HISTORY
-While \fBscanw\fP was implemented in 4BSD,
-none of the BSD releases used it until 4.4BSD (in a game).
-That early version of curses was before the ANSI C standard.
-It did not use <varargs.h>, though that was available.
-In 1991 (a couple of years after SVr4 was generally available,
-and after the C standard was published),
-other developers updated the library,
-using <stdarg.h> internally in 4.4BSD curses.
-Even with this improvement,
-BSD curses did not use function prototypes (or even declare
-functions) in the <curses.h> header until 1992.
+\fI/* obsolete */\fP
+\fBint vwscanw(WINDOW *\fIwin\fP, const char *\fIfmt\fP, va_list \fIvarglist\fP);
+.fi
+.SH DESCRIPTION
+\fB\%scanw\fP,
+\fB\%wscanw\fP,
+\fB\%mvscanw\fP,
+and
+\fB\%mvwscanw\fP
+are analogous to \fI\%scanf\fP(3).
+In effect,
+they call \fB\%wgetstr\fP(3X) with
+.I win
+(or
+.BR \%stdscr )
+as its first argument,
+then attempt conversion of the resulting string with \fI\%vsscanf\fP(3).
+Fields in the string that do not map to a variable in the \fIfmt\fP
+parameter are discarded.
.PP
-SVr2 documented
-\fBscanw\fP,
-\fBwscanw\fP
-tersely as \*(``scanf through \fIstdscr\fP\*('' and
-tersely as \*(``scanf through \fIwin\fP\*('', respectively.
+\fB\%vwscanw\fP
+and
+\fB\%vw_scanw\fP are analogous to \fI\%vscanf\fP(3),
+and perform a \fB\%wscanw\fP using a variable argument list.
+The third argument is a \fI\%va_list\fP,
+a pointer to a list of arguments,
+as defined in \fI\%stdarg.h\fP.
+.SH RETURN VALUE
+These functions return
+.B ERR
+upon failure and otherwise a count of successful conversions;
+this quantity may be zero.
.PP
-SVr3 added
-\fBmvscanw\fP, and
-\fBmvwscanw\fP, with a three-line summary saying that they were analogous
-to \fBscanf\fP(3),
-explaining that the string which would be output from \fBscanf\fP(3) would
-instead be output using \fBwaddstr\fP on the given window.
-SVr3 also added \fBvwscanw\fP, saying that the third parameter
-is a \fBva_list\fP, defined in <varargs.h>,
-and referring the reader to the manual pages for \fIvarargs\fP and
-\fIvprintf\fP for detailed descriptions.
-(Because the SVr3 documentation does not mention \fIvscanf\fP,
-that reference to \fIvprintf\fP may not be an error).
+In
+.IR \%ncurses ,
+failure occurs if \fI\%vsscanf\fP(3) returns
+\fBEOF\fP,
+or if the window pointer
+.I win
+is null.
.PP
-SVr4 added no new variations of \fBscanw\fP,
-but provided for using <varargs.h> or <stdarg.h> to define the \fBva_list\fP
-type.
+Functions prefixed with \*(``mv\*('' first perform cursor movement and
+fail if the position
+.RI ( y ,
+.IR x )
+is outside the window boundaries.
+.SH NOTES
+No wide character counterpart functions are defined by the
+\*(``wide\*(''
+.I \%ncurses
+configuration nor by any standard.
+They are unnecessary:
+to retrieve and convert a wide-character string from a
+.I curses
+terminal keyboard,
+use these functions with the \fI\%scanf\fP(3) conversions \*(``%lc\*(''
+and \*(``%ls\*('' for wide characters and strings,
+respectively.
.PP
-X/Open Curses added \fBvw_scanw\fP to replace \fBvwscanw\fP,
-stating that its \fBva_list\fP definition requires <stdarg.h>.
+.I \%ncurses
+implements \fI\%vsscanf\fP(3) internally if it is unavailable when the
+library is configured.
.SH PORTABILITY
-In this implementation, \fBvw_scanw\fP and \fBvwscanw\fP are equivalent,
-to support legacy applications.
-However, the latter (\fBvwscanw\fP) is obsolete:
+X/Open Curses,
+Issue 4 describes these functions.
+It specifies no error conditions for them.
+.PP
+.I \%ncurses
+defines \fB\%vw_scanw\fP and \fB\%vwscanw\fP identically to support
+legacy applications.
+However,
+the latter is obsolete.
.bP
-The XSI Curses standard, Issue 4 described these functions,
-noting that the function
-\fBvwscanw\fR is marked TO BE WITHDRAWN, and is to be replaced by a function
-\fBvw_scanw\fR using the \fB<stdarg.h>\fR interface.
+X/Open Curses,
+Issue 4 Version 2 (1996),
+marked \fB\%vwscanw\fP as requiring \fI\%varargs.h\fP and
+\*(``TO BE WITHDRAWN\*('',
+and specified \fB\%vw_scanw\fP using the \fI\%stdarg.h\fP interface.
.bP
-The Single Unix Specification, Version 2 states that
-\fBvw_scanw\fR is preferred to \fBvwscanw\fR since the latter requires
-including \fB<varargs.h>\fR, which
-cannot be used in the same file as \fB<stdarg.h>\fR.
-This implementation uses \fB<stdarg.h>\fR for both, because that header
-is included in \fB<curses.h\fR>.
+X/Open Curses,
+Issue 5,
+Draft 2 (December 2007) marked \fB\%vwscanw\fP (along with
+\fB\%vwscanw\fP and the \fItermcap\fP interface) as withdrawn.
+After incorporating review comments,
+this became
+X/Open Curses, Issue 7 (2009).
.bP
-X/Open Curses, Issue 5 (December 2007) marked \fBvwscanw\fP (along with
-\fBvwprintw\fP and the termcap interface) as withdrawn.
-.LP
-Both XSI and The Single Unix Specification, Version 2 state that these
-functions return \fBERR\fP or \fBOK\fP.
+.I \%ncurses
+provides \fB\%vwscanw\fP,
+but marks it as deprecated.
+.PP
+X/Open Curses Issues 4 and 7 both state that these functions return
+\fBERR\fP or \fBOK\fP.
+This is likely an erratum.
.bP
-Since the underlying \fBscanf\fR(3) can return the number of items scanned,
-and the SVr4 code was documented to use this feature,
-this is probably an editing error which was introduced in XSI,
-rather than being done intentionally.
+Since the underlying \fI\%scanf\fP(3) returns the number of successful
+conversions,
+and SVr4
+.I curses
+was documented to use this feature,
+this may have been an editorial solecism introduced by X/Open,
+rather than an intentional change.
.bP
-This implementation returns the number of items scanned,
-for compatibility with SVr4 curses.
-As of 2018, NetBSD curses also returns the number of items scanned.
-Both ncurses and NetBSD curses call \fBvsscanf\fP to scan the string,
+This implementation retains compatibility with SVr4
+.IR curses .
+As of 2018,
+NetBSD
+.I curses
+also returns the number of successful conversions.
+Both
+.I \%ncurses\fP
+and NetBSD
+.I curses
+call \fI\%vsscanf\fP(3) to scan the string,
which returns \fBEOF\fP on error.
.bP
-Portable applications should only test if the return value is \fBERR\fP,
-since the \fBOK\fP value (zero) is likely to be misleading.
+Portable applications should test only if the return value is \fBERR\fP,
+and not compare it to \fBOK\fP,
+since that value (zero) might be misleading.
.IP
-One possible way to get useful results would be to use a "%n" conversion
-at the end of the format string to ensure that something was processed.
+One portable way to get useful results would be to use a \*(``%n\*(''
+conversion at the end of the format string,
+and check the value of the corresponding variable to determine how many
+conversions succeeded.
+.SH HISTORY
+\fB\%scanw\fP was implemented in 4BSD
+(November 1980);
+.\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=4BSD/usr/src/lib/\
+.\" libcurses/scanw.c
+that early version of
+.I curses
+preceded the ANSI C standard of 1989.
+The function was unused in Berkeley distributions for over ten years,
+until 4.4BSD,
+which employed it in a game.
+The 4BSD \fB\%scanw\fP did not use \fI\%varargs.h\fP,
+though that had been available since Seventh Edition Unix (1979).
+.\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=V7/usr/include/\
+.\" varargs.h
+In 1991
+(a couple of years after SVr4 was generally available,
+and after the C standard was published),
+other developers updated the library,
+using \fI\%stdarg.h\fP internally in 4.4BSD
+.IR curses .
+Even with this improvement,
+BSD
+.I curses
+did not use function prototypes
+(nor even declare functions)
+in \fI\%curses.h\fP until 1992.
+.PP
+SVr2 (1984) documented \fB\%scanw\fP and \fB\%wscanw\fP tersely as
+\*(``scanf through \fB\%stdscr\fP\*('' and
+\*(``scanf through \fIwin\fP\*('',
+respectively.
+.PP
+SVr3 (1987) added
+\fB\%mvscanw\fP, and
+\fB\%mvwscanw\fP, stating
+.RS
+.PP
+\*(``[t]hese routines correspond to \fIscanf\fP(3S),
+as do their arguments and return values.
+\fB\%wgetstr\fP() is called on the window,
+and the resulting line is used as input for the scan.\*(''
+.RE
+.PP
+SVr3 also implemented \fB\%vwscanw\fP,
+describing its third parameter as a \fI\%va_list\fP,
+defined in \fI\%varargs.h\fP,
+and referred the reader to the manual pages for \fI\%varargs\fP and
+\fI\%vprintf\fP for detailed descriptions.
+(Because the SVr3 documentation does not mention \fI\%vscanf\fP,
+the reference to \fI\%vprintf\fP might not be an error).
+.PP
+SVr4 (1989) introduced no new variations of \fI\%scanw\fP,
+but provided for using either \fI\%varargs.h\fP or \fI\%stdarg.h\fP to
+define the \fI\%va_list\fP type.
+.\" either header declares "va_list", but only one can be used
+.PP
+X/Open Curses, Issue 4 (1995),
+defined \fI\%vw_scanw\fP to replace \fI\%vwscanw\fP,
+stating that its \fI\%va_list\fP type is defined in \fI\%stdarg.h\fP.
.SH SEE ALSO
-.na
-\fBcurses\fR(3X),
-\fBcurs_getstr\fR(3X),
-\fBcurs_printw\fR(3X),
-\fBcurs_termcap\fP(3X),
-\fBscanf\fR(3).
+\fB\%curses\fP(3X),
+\fB\%curs_getstr\fP(3X),
+\fB\%curs_printw\fP(3X),
+\fB\%scanf\fP(3),
+\fB\%vscanf\fP(3)
diff --git a/man/curs_scr_dump.3x b/man/curs_scr_dump.3x
index 229acefd39d9..5f14a2287268 100644
--- a/man/curs_scr_dump.3x
+++ b/man/curs_scr_dump.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2010,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,89 +27,126 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_scr_dump.3x,v 1.16 2020/10/24 09:44:43 tom Exp $
-.TH curs_scr_dump 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: curs_scr_dump.3x,v 1.43 2024/04/20 18:54:36 tom Exp $
+.TH curs_scr_dump 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
-.na
-.hy 0
.SH NAME
-\fBscr_dump\fR,
-\fBscr_restore\fR,
-\fBscr_init\fR,
-\fBscr_set\fR \- read (write) a \fBcurses\fR screen from (to) a file
-.ad
-.hy
+\fB\%scr_dump\fP,
+\fB\%scr_restore\fP,
+\fB\%scr_init\fP,
+\fB\%scr_set\fP \-
+read/write a \fIcurses\fR screen from/to a file
.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\fBint scr_dump(const char *\fP\fIfilename\fP\fB);\fR
-.br
-\fBint scr_restore(const char *\fP\fIfilename\fP\fB);\fR
-.br
-\fBint scr_init(const char *\fP\fIfilename\fP\fB);\fR
-.br
-\fBint scr_set(const char *\fP\fIfilename\fP\fB);\fR
-.br
-.SH DESCRIPTION
-The \fBscr_dump\fR routine dumps the current contents
-of the \fIvirtual screen\fP
-to the file \fIfilename\fR.
+.nf
+\fB#include <curses.h>
.PP
-The \fBscr_restore\fR routine sets the \fIvirtual screen\fP to the contents
-of \fIfilename\fR, which must have been written using \fBscr_dump\fR.
-The next call to \fBdoupdate\fR restores
-the \fIphysical screen\fP to the way it looked in the dump file.
+\fBint scr_dump(const char *\fIfilename\fP);
+\fBint scr_restore(const char *\fIfilename\fP);
+\fBint scr_init(const char *\fIfilename\fP);
+\fBint scr_set(const char *\fIfilename\fP);
+.fi
+.SH DESCRIPTION
+.I curses
+provides applications the ability to write the contents of the screen
+to a file and read them back.
+To read/write a window
+(rather than the whole screen)
+from/to a file,
+use \fB\%getwin\fP(3X) and
+\fB\%putwin\fP(3X),
+respectively.
+.SS scr_dump
+\fB\%scr_dump\fP writes to
+.I filename
+the contents of the virtual screen;
+see \fB\%curscr\fP(3X).
+.SS scr_restore
+\fB\%scr_restore\fP updates the virtual screen to contain the contents
+of
+.I filename
+(if it was validly written with \fB\%scr_dump\fP).
+No refresh is performed;
+after performing any further desired updates,
+call \fB\%doupdate\fP(3X) or similar.
+.SS scr_init
+\fB\%scr_init\fP reads
+.IR filename ,
+using it to initialize
+.I curses
+data structures describing the state of the terminal screen.
+If these data are valid,
+.I curses
+bases its next update of the screen on this information rather than
+clearing it and starting from scratch.
.PP
-The \fBscr_init\fR routine reads in the contents of \fIfilename\fR and uses
-them to initialize the \fBcurses\fR data structures about what the terminal
-currently has on its screen.
-If the data is determined to be valid,
-\fBcurses\fR bases its next update of the screen on this information rather
-than clearing the screen and starting from scratch.
-\fBscr_init\fR is used
-after \fBinitscr\fR or a \fBsystem\fR call to share
-the screen with another process which has done a \fBscr_dump\fR after its
-\fBendwin\fR(3X) call.
-The data is declared invalid
+The data fail the validity check
.bP
-if the terminfo capabilities \fBrmcup\fR and \fBnrrmc\fR exist, also
+if the terminal employs
+.I \%term\%info
+capabilities
+.B \%exit_ca_mode
+.RB ( \%rmcup )
+or
+.B \%non_rev_rmcup
+.RB ( \%nrrmc )
+are defined,
+or
.bP
-if the terminal has been written to since the preceding \fBscr_dump\fR call.
+if
+.I curses
+knows that the terminal has been written to since the preceding
+\fB\%scr_dump\fP call.
.PP
-The \fBscr_set\fR routine is a combination of \fBscr_restore\fR and
-\fBscr_init\fR. It tells the program that the information in \fIfilename\fR is
+\fB\%scr_init\fP could be used after \fB\%initscr\fP(3X) or
+\fB\%system\fP(3) to share the screen with another process that has
+done a \fBscr_dump\fP after \fB\%endwin\fP(3X).
+.SS scr_set
+The \fBscr_set\fP routine is a combination of \fBscr_restore\fP and
+\fBscr_init\fP. It tells the program that the information in \fIfilename\fP is
what is currently on the screen, and also what the program wants on the screen.
This can be thought of as a screen inheritance function.
-.PP
-To read (write) a window from (to) a file, use the \fBgetwin\fR and
-\fBputwin\fR routines [see \fBcurs_util\fR(3X)].
.SH RETURN VALUE
-All routines return the integer \fBERR\fR upon failure and \fBOK\fR
-upon success.
+These functions return \fBOK\fP on success and \fBERR\fP on failure.
.PP
-X/Open defines no error conditions.
+X/Open defines no failure conditions.
In this implementation,
-each will return an error if the file cannot be opened.
+each function fails if it cannot open
+.IR filename .
.SH NOTES
-Note that \fBscr_init\fR, \fBscr_set\fR, and \fBscr_restore\fR may be macros.
+\fB\%scr_init\fP,
+\fB\%scr_set\fP,
+and
+\fB\%scr_restore\fP may be macros.
.SH PORTABILITY
-The XSI Curses standard, Issue 4, describes these functions (adding the const
-qualifiers).
+X/Open Curses,
+Issue 4 describes these functions.
+.PP
+.\" SVID 4, p. 529
+SVr4 omitted the
+.I \%const
+qualifiers.
.PP
-The SVr4 docs merely say under \fBscr_init\fR that the dump data is also
-considered invalid "if the time-stamp of the tty is old" but do not define
-\*(``old\*(''.
+SVr4 documentation describes \fB\%scr_init\fP such that the dump data is
+also considered invalid \*(``if the time-stamp of the tty is old\*(''
+but does not define \*(``old\*(''.
.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBcurs_initscr\fR(3X),
-\fBcurs_refresh\fR(3X),
-\fBcurs_util\fR(3X),
-\fBscr_dump\fR(5),
-\fBsystem\fR(3)
+\fB\%curses\fP(3X),
+\fB\%curs_initscr\fP(3X),
+\fB\%curs_refresh\fP(3X),
+\fB\%curs_util\fP(3X),
+\fB\%system\fP(3),
+\fB\%scr_dump\fP(5)
diff --git a/man/curs_scroll.3x b/man/curs_scroll.3x
index d9e45f2d5bec..16d5a501094f 100644
--- a/man/curs_scroll.3x
+++ b/man/curs_scroll.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2006,2010 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,69 +27,111 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_scroll.3x,v 1.19 2020/10/24 09:45:48 tom Exp $
-.TH curs_scroll 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
-.na
-.hy 0
+.\" $Id: curs_scroll.3x,v 1.43 2024/04/20 18:54:36 tom Exp $
+.TH curs_scroll 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
+.de bP
+.ie n .IP \(bu 4
+.el .IP \(bu 2
+..
.SH NAME
-\fBscroll\fR,
-\fBscrl\fR,
-\fBwscrl\fR \- scroll a \fBcurses\fR window
-.ad
-.hy
+\fB\%scroll\fP,
+\fB\%scrl\fP,
+\fB\%wscrl\fP \-
+scroll a \fIcurses\fR window
.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\fBint scroll(WINDOW *\fP\fIwin\fP\fB);\fR
-.sp
-\fBint scrl(int \fP\fIn\fP\fB);\fR
-.br
-\fBint wscrl(WINDOW *\fP\fIwin\fP\fB, int \fP\fIn\fP\fB);\fR
-.br
-.SH DESCRIPTION
-The \fBscroll\fR routine scrolls the window up one line.
-This involves moving
-the lines in the window data structure.
-As an optimization, if the scrolling
-region of the window is the entire screen,
-the \fIphysical screen\fP may be scrolled at the same time.
+.nf
+\fB#include <curses.h>
+.PP
+\fBint scroll(WINDOW *\fIwin\fP);
.PP
-For positive \fIn\fR, the \fBscrl\fR and \fBwscrl\fR routines scroll the
-window up \fIn\fR lines (line \fIi\fR+\fIn\fR becomes \fIi\fR); otherwise
-scroll the window down \fIn\fR lines.
-This involves moving the lines in the
-window character image structure.
-The current cursor position is not changed.
+\fBint scrl(int \fIn\fP);
+\fBint wscrl(WINDOW *\fIwin\fP, int \fIn\fP);
+.fi
+.SH DESCRIPTION
+\fBscroll\fP scrolls the given window up one line.
+That is,
+every visible line we might number
+.I i
+becomes line
+.IR i "\-1."
+The text of the top line in the window disappears and the bottom line
+is populated with blank characters;
+see \fB\%bkgd\fP(3X) or \fB\%bkgrnd\fP(3X).
+As an optimization,
+if the scrolling region of the window is the entire screen,
+the physical screen may be scrolled at the same time;
+see \fB\%curscr\fP(3X).
.PP
-For these functions to work, scrolling must be enabled via \fBscrollok\fR.
-.SH RETURN VALUE
-These routines return \fBERR\fR upon failure, and \fBOK\fR (SVr4 only specifies
-"an integer value other than \fBERR\fR") upon successful completion.
+\fB\%scrl\fP and \fB\%wscrl\fP scroll
+.B \%stdscr
+or the specified window up or down depending on the sign of
+.IR n .
+.bP
+For positive
+.IR n ,
+line \fIi\fP+\fIn\fP becomes \fIi\fP (scrolling up);
+.bP
+for negative
+.IR n ,
+line \fIi\fP-\fIn\fP becomes \fIi\fP (scrolling down).
.PP
-X/Open defines no error conditions.
+The cursor does not move.
+These functions perform no operation unless scrolling is enabled for the
+window via \fB\%scrollok\fP(3X).
+.SH "RETURN VALUE"
+These functions return
+.B ERR
+upon failure and
+.B OK
+upon success.
.PP
-This implementation returns an error
-if the window pointer is null, or
-if scrolling is not enabled in the window, e.g., with \fBscrollok\fP.
+.I \%ncurses
+returns \fBERR\fP if scrolling is not enabled in the window,
+for example with \fB\%scrollok\fP(3X),
+or if the
+.I \%WINDOW
+pointer is null.
.SH NOTES
-Note that \fBscrl\fR and \fBscroll\fR may be macros.
-.PP
-The SVr4 documentation says that the optimization of physically scrolling
-immediately if the scroll region is the entire screen \*(``is\*('' performed, not
-\*(``may be\*('' performed.
-This implementation deliberately does not guarantee
-that this will occur, to leave open the possibility of smarter
-optimization of multiple scroll actions on the next update.
+Unusually,
+there is no \fB\%wscroll\fP function;
+\fBscroll\fP behaves as one would expect \fB\%wscroll\fP to,
+accepting a \fI\%WINDOW\fP pointer argument.
.PP
-Neither the SVr4 nor the XSI documentation specify whether the current
-attribute or
-current color-pair of blanks generated by the scroll function is zeroed.
-Under this implementation it is.
+\fB\%scrl\fP and \fB\%scroll\fP may be implemented as macros.
.SH PORTABILITY
-The XSI Curses standard, Issue 4 describes these functions.
+X/Open Curses,
+Issue 4 describes these functions.
+It defines no error conditions.
+.PP
+SVr4 specifies only
+\*(``an integer value other than \fBERR\fP\*('' as a successful return
+value.
+.PP
+SVr4 indicates that the optimization of physically scrolling immediately
+if the scroll region is the entire screen \*(``is\*('' performed,
+not \*(``may be\*('' performed.
+.I \%ncurses
+deliberately does not guarantee that this will occur,
+to leave open the possibility of smarter optimization of multiple scroll
+actions on the next update.
+.PP
+Neither SVr4
+.I curses
+nor X/Open Curses specify whether the current attribute or current color
+pair of blanks generated by the scroll function are zeroed.
+.I \%ncurses
+does so.
.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_outopts\fR(3X)
+\fB\%curses\fP(3X),
+\fB\%curs_outopts\fP(3X)
diff --git a/man/curs_slk.3x b/man/curs_slk.3x
index a99be8f7c188..fbc718115434 100644
--- a/man/curs_slk.3x
+++ b/man/curs_slk.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2016,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,101 +27,96 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_slk.3x,v 1.37 2020/12/30 18:37:43 tom Exp $
-.TH curs_slk 3X ""
+.\" $Id: curs_slk.3x,v 1.71 2024/04/20 18:54:36 tom Exp $
+.TH curs_slk 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
-.na
-.hy 0
.SH NAME
-\fBslk_init\fR,
-\fBslk_set\fR,
-\fBslk_wset\fR,
-\fBslk_refresh\fR,
-\fBslk_noutrefresh\fR,
-\fBslk_label\fR,
-\fBslk_clear\fR,
-\fBslk_restore\fR,
-\fBslk_touch\fR,
-\fBslk_attron\fR,
-\fBslk_attrset\fR,
-\fBslk_attroff\fR,
-\fBslk_attr_on\fR,
-\fBslk_attr_set\fR,
-\fBslk_attr_off\fR,
-\fBslk_attr\fR,
-\fBslk_color\fR,
-\fBextended_slk_color\fR \- \fBcurses\fR soft label routines
-.ad
-.hy
+\fB\%slk_init\fP,
+\fB\%slk_set\fP,
+\fB\%slk_wset\fP,
+\fB\%slk_refresh\fP,
+\fB\%slk_noutrefresh\fP,
+\fB\%slk_label\fP,
+\fB\%slk_clear\fP,
+\fB\%slk_restore\fP,
+\fB\%slk_touch\fP,
+\fB\%slk_attron\fP,
+\fB\%slk_attrset\fP,
+\fB\%slk_attroff\fP,
+\fB\%slk_attr_on\fP,
+\fB\%slk_attr_set\fP,
+\fB\%slk_attr_off\fP,
+\fB\%slk_attr\fP,
+\fB\%slk_color\fP,
+\fB\%extended_slk_color\fP \-
+\fIcurses\fR soft label key routines
.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\fBint slk_init(int \fP\fIfmt\fP\fB);\fR
-.sp
-\fBint slk_set(int \fP\fIlabnum\fP\fB, const char *\fP\fIlabel\fP\fB, int \fP\fIfmt\fP\fB);\fR
-.br
-/* extension */
-.br
-\fBint slk_wset(int \fP\fIlabnum\fP\fB, const wchar_t *\fP\fIlabel\fP\fB, int \fP\fIfmt\fP\fB);\fR
-.sp
-\fBchar *slk_label(int \fP\fIlabnum\fP\fB);\fR
-.sp
-\fBint slk_refresh(void);\fR
-.br
-\fBint slk_noutrefresh(void);\fR
-.br
-\fBint slk_clear(void);\fR
-.br
-\fBint slk_restore(void);\fR
-.br
-\fBint slk_touch(void);\fR
-.sp
-\fBint slk_attron(const chtype \fP\fIattrs\fP\fB);\fR
-.br
-\fBint slk_attroff(const chtype \fP\fIattrs\fP\fB);\fR
-.br
-\fBint slk_attrset(const chtype \fP\fIattrs\fP\fB);\fR
-.br
-\fBint slk_attr_on(attr_t \fP\fIattrs\fP\fB, void* \fP\fIopts\fP\fB);\fR
-.br
-\fBint slk_attr_off(const attr_t \fP\fIattrs\fP\fB, void * \fP\fIopts\fP\fB);\fR
-.br
-\fBint slk_attr_set(const attr_t \fP\fIattrs\fP\fB, short \fP\fIpair\fP\fB, void* \fP\fIopts\fP\fB);\fR
-.sp
-\fBattr_t slk_attr(void);\fR
-.sp
-\fBint slk_color(short \fP\fIpair\fP\fB);\fR
-.br
-/* extension */
-.br
-\fBint extended_slk_color(int \fP\fIpair\fP\fB);\fR
+.nf
+\fB#include <curses.h>
+.PP
+\fBint slk_init(int \fIfmt\fP);
+.PP
+\fBint slk_set(int \fIlabnum\fP, const char *\fIlabel\fP, int \fIalign\fP);
+\fBint slk_wset(int \fIlabnum\fP, const wchar_t *\fIlabel\fP, int \fIalign\fP);
+.PP
+\fBchar *slk_label(int \fIlabnum\fP);
+.PP
+\fBint slk_refresh(void);
+\fBint slk_noutrefresh(void);
+\fBint slk_clear(void);
+\fBint slk_restore(void);
+\fBint slk_touch(void);
+.PP
+\fBint slk_attron(const chtype \fIattrs\fP);
+\fBint slk_attroff(const chtype \fIattrs\fP);
+\fBint slk_attrset(const chtype \fIattrs\fP);
+\fBint slk_attr_on(attr_t \fIattrs\fP, void *\fIopts\fP);
+\fBint slk_attr_off(const attr_t \fIattrs\fP, void *\fIopts\fP);
+\fBint slk_attr_set(const attr_t \fIattrs\fP, short \fIpair\fP, void*\fIopts\fP);
+\fI/* extension */
+\fBattr_t slk_attr(void);
+.PP
+\fBint slk_color(short \fIpair\fP);
+\fI/* extension */
+\fBint extended_slk_color(int \fIpair\fP);
+.fi
.SH DESCRIPTION
-The slk* functions manipulate the set of soft function-key labels that exist on
-many terminals.
+These functions manipulate the soft function key labels that some
+hardware terminals support.
For those terminals that do not have soft labels,
-\fBcurses\fR takes over the bottom line of \fBstdscr\fR, reducing the size of
-\fBstdscr\fR and the variable \fBLINES\fR.
-\fBcurses\fR standardizes on eight
-labels of up to eight characters each.
-In addition to this, the ncurses
-implementation supports a mode where it simulates 12 labels of up to five
-characters each.
-This is useful for PC-like enduser devices.
-ncurses simulates this mode by taking over up to two lines at
+\fIcurses\fP takes over the bottom line of \fB\%stdscr\fP,
+reducing its vertical size and the value of \fBLINES\fP by one.
+By default,
+\fIcurses\fP uses eight labels of up to eight characters each.
+.PP
+\fI\%ncurses\fP
+furthermore supports a mode comprising twelve labels of up to five
+characters each,
+following a convention associated with the IBM PC/AT keyboard.
+\fI\%ncurses\fP simulates this mode by taking over up to two lines at
the bottom of the screen;
it does not try to use any hardware support for this
mode.
.SS Initialization
-.PP
-The \fBslk_init\fR routine must be called before \fBinitscr\fR or \fBnewterm\fR
-is called.
-If \fBinitscr\fR eventually uses a line from \fBstdscr\fR to
+\fB\%slk_init\fP must be called before \fB\%initscr\fP or
+\fB\%newterm\fP.
+If \fB\%initscr\fP eventually uses a line from \fB\%stdscr\fP to
emulate the soft labels,
-then \fIfmt\fR determines how the labels are arranged on the screen:
-.RS 3
+then \fIfmt\fP determines how the labels are arranged on the screen.
.TP 3
.B 0
indicates a 3\-2\-3 arrangement of
@@ -135,85 +130,104 @@ indicates the PC-like 4\-4\-4 mode.
.TP 3
.B 3
is again the PC-like 4\-4\-4 mode,
-but in addition an index line is generated, helping the user to
-identify the key numbers easily.
-.RE
+but in addition an index line is generated,
+helping the user to associate each label with its numbered function key.
+\fBLINES\fP and the vertical size of \fB\%stdscr\fP are further reduced.
.SS Labels
-.PP
-The \fBslk_set\fR routine
-(and the \fBslk_wset\fR routine for the wide-character library)
-has three parameters:
-.RS 3
-.TP 5
+Populate the labels with normal strings
+(\fB\%slk_set\fP)
+or wide-character strings
+(\fB\%slk_wset\fP).
+Each function takes three parameters.
+.TP 8 \" "labnum" + 2n
.I labnum
-is the label number, from \fB1\fR to \fB8\fR
-(12 for \fIfmt\fP in \fBslk_init\fP is \fB2\fP or \fB3\fP);
+is the label number, from \fB1\fP to \fB8\fP
+(12 if \fIfmt\fP in \fB\%slk_init\fP is \fB2\fP or \fB3\fP);
.TP
.I label
is be the string to put on the label,
up to eight
-(five for \fIfmt\fP in \fBslk_init\fP is \fB2\fP or \fB3\fP)
+(five if \fIfmt\fP in \fB\%slk_init\fP is \fB2\fP or \fB3\fP)
characters in length.
-A null string or a null pointer sets up a blank label.
+A empty string or a null pointer sets up a blank label.
.TP
-.I fmt
-is either
-\fB0\fR, \fB1\fR, or \fB2\fR, indicating whether the label is to be
-left-justified, centered, or right-justified, respectively, within the
-label.
-.RE
-.PP
-The \fBslk_label\fR routine returns the current label for label number
-\fIlabnum\fR, with leading and trailing blanks stripped.
-.SS Screen updates
-.PP
-The \fBslk_refresh\fR and \fBslk_noutrefresh\fR routines correspond to
-the \fBwrefresh\fR and \fBwnoutrefresh\fR routines.
+.I align
+is
+.BR 0 ,
+.BR 1 ,
+or
+.BR 2 ,
+aligning
+.I label
+to the left,
+center,
+or right,
+respectively,
+within the 8 (5) character cells housing it.
.PP
-The \fBslk_clear\fR routine clears the soft labels from the screen.
+\fB\%slk_label\fP obtains the string assigned to label number
+\fIlabnum\fP,
+with any leading and trailing blanks stripped.
+.SS "Screen Updates"
+\fB\%slk_refresh\fP and \fB\%slk_noutrefresh\fP affect the soft key
+label lines as \fB\%wrefresh\fP and \fB\%wnoutrefresh\fP do the
+.I curses
+window.
.PP
-The \fBslk_restore\fR routine restores the soft labels to the screen
-after a \fBslk_clear\fR has been performed.
+The \fB\%slk_clear\fP routine clears the soft labels from the screen.
.PP
-The \fBslk_touch\fR routine forces all the soft labels to be output
-the next time a \fBslk_noutrefresh\fR is performed.
-.SS Video attributes
+The \fB\%slk_restore\fP routine restores the soft labels to the screen
+after a \fB\%slk_clear\fP has been performed.
.PP
+The \fB\%slk_touch\fP routine forces all the soft labels to be output
+the next time a \fB\%slk_noutrefresh\fP is performed.
+.SS "Video Attributes"
The
-\fBslk_attron\fR, \fBslk_attrset\fR, \fBslk_attroff\fR and \fBslk_attr\fR
+\fB\%slk_attron\fP,
+\fB\%slk_attrset\fP,
+\fB\%slk_attroff\fP,
+and
+\fB\%slk_attr\fP
routines correspond to
-\fBattron\fR, \fBattrset\fR, \fBattroff\fR and \fBattr_get\fR, respectively.
-They have an effect only if soft labels are simulated on the bottom line of
-the screen.
-The default highlight for soft keys is A_STANDOUT (as in
-System V curses, which does not document this fact).
+\fB\%attron\fP,
+\fB\%attrset\fP,
+\fB\%attroff\fP,
+and
+\fB\%attr_get\fP,
+respectively.
+They have an effect only if soft labels are simulated on the bottom line
+of the screen.
+The default highlight for soft key labels is \fB\%A_STANDOUT\fP
+(as in System\ V \fIcurses\fP,
+which does not document this fact).
.SS Colors
-.PP
-The \fBslk_color\fR routine corresponds to \fBcolor_set\fR.
+The \fB\%slk_color\fP routine corresponds to \fB\%color_set\fP.
It has an effect only
if soft labels are simulated on the bottom line of the screen.
.PP
-Because \fBslk_color\fR accepts only \fBshort\fP (signed 16-bit integer) values,
-this implementation provides
-\fBextended_slk_color\fR which accepts an integer value, e.g., 32-bits.
-.
+Because \fB\%slk_color\fP accepts
+only \fIshort\fP
+(signed 16-bit integer)
+values,
+this implementation provides
+\fB\%extended_slk_color\fP,
+which accepts an \fIint\fP value of at least 32 bits.
.SH RETURN VALUE
-These routines return \fBERR\fR upon failure
-and \fBOK\fP (SVr4 specifies only "an integer value other than \fBERR\fR")
+Routines that return an integer return \fBERR\fP upon failure and
+\fBOK\fP
+(SVr4 specifies only
+\*(``an integer value other than \fBERR\fP\*('')
upon successful completion.
.PP
-X/Open defines no error conditions.
+X/Open Curses defines no error conditions.
+.PP
In this implementation
.RS 3
.TP 5
-\fBslk_attr\fR
+\fBslk_attr\fP
returns the attribute used for the soft keys.
.TP 5
-.na
-.hy 0
\fBslk_attroff\fP, \fBslk_attron\fP, \fBslk_clear\fP, \fBslk_noutrefresh\fP, \fBslk_refresh\fP, \fBslk_touch\fP
-.ad
-.hy
return an error
if the terminal or the softkeys were not initialized.
.TP 5
@@ -224,19 +238,19 @@ if the terminal or the softkeys were not initialized.
\fBslk_attr_set\fP
returns an error
if the terminal or the softkeys were not initialized, or
-the color pair is outside the range 0..COLOR_PAIRS\-1.
+the color pair is outside the range 0..\fBCOLOR_PAIRS\fP\-1.
.TP 5
\fBslk_color\fP
returns an error
if the terminal or the softkeys were not initialized, or
-the color pair is outside the range 0..COLOR_PAIRS\-1.
+the color pair is outside the range 0..\fBCOLOR_PAIRS\fP\-1.
.TP 5
-\fBslk_init\fR
+\fBslk_init\fP
returns an error
if the format parameter is outside the range 0..3.
.TP 5
-\fBslk_label\fR
-returns \fBNULL\fR on error.
+\fBslk_label\fP
+returns \fBNULL\fP on error.
.TP 5
\fBslk_set\fP
returns an error
@@ -245,76 +259,121 @@ the \fIlabnum\fP parameter is outside the range of label counts, or
if the format parameter is outside the range 0..2, or if
memory for the labels cannot be allocated.
.RE
-.SH HISTORY
-SVr3 introduced these functions:
- slk_clear
- slk_init
- slk_label
- slk_noutrefresh
- slk_refresh
- slk_restore
- slk_set
- slk_touch
-.PP
-SVr4 added these functions:
- slk_attroff
- slk_attron
- slk_attrset
- slk_start
-.PP
-X/Open Curses added these:
- slk_attr_off
- slk_attr_on
- slk_attr_set
- slk_color
- slk_wset
+.SH NOTES
+Most applications would use \fB\%slk_noutrefresh\fP because a
+\fB\%wrefresh\fP is likely to follow soon.
.SH EXTENSIONS
-.PP
-X/Open Curses documents the \fIopts\fP argument as reserved for future use,
+X/Open Curses documents the \fIopts\fP argument
+as reserved for future use,
saying that it must be null.
-This implementation
-uses that parameter in ABI 6 for the functions which have a color-pair
+This implementation
+uses that parameter in ABI 6 for the functions which have a color pair
parameter to support extended color pairs.
.PP
-For functions which modify the color, e.g., \fBslk_attr_set\fP,
-if \fIopts\fP is set it is treated as a pointer to \fBint\fP,
-and used to set the color pair instead of the \fBshort\fP pair parameter.
-.SH NOTES
-Most applications would use \fBslk_noutrefresh\fR because a
-\fBwrefresh\fR is likely to follow soon.
+For functions which modify the color,
+e.g.,
+\fB\%slk_attr_set\fP,
+if \fIopts\fP is set it is treated as a pointer to \fIint\fP,
+and used to set the color pair instead of the \fIshort\fP pair
+parameter.
.SH PORTABILITY
-The XSI Curses standard, Issue 4, described the soft-key functions,
-with some differences from SVr4 curses:
+X/Open Curses,
+Issue 4 describes these functions,
+with some differences from SVr4 \fIcurses\fP:
.bP
-It added functions like the SVr4
-attribute-manipulation functions \fBslk_attron\fR,
-\fBslk_attroff\fR, \fBslk_attrset\fR,
-but which use \fBattr_t\fR parameters (rather than \fBchtype\fP),
+X/Open added functions like the SVr4 attribute-manipulation functions
+\fB\%slk_attron\fP,
+\fB\%slk_attroff\fP,
+and
+\fB\%slk_attrset\fP,
+but which use \fI\%attr_t\fP parameters
+(rather than \fI\%chtype\fP),
along with a reserved \fIopts\fP parameter.
.IP
-Two of these new functions (unlike the SVr4 functions) have no provision
-for color: \fBslk_attr_on\fP and \fBslk_attr_off\fP.
+Two of these new functions
+(unlike the SVr4 functions)
+have no provision for color:
+\fB\%slk_attr_on\fP and \fB\%slk_attr_off\fP.
+.IP
+The third function \%(\fBslk_attr_set\fP) has a color pair parameter.
+.bP
+It added \fIconst\fP qualifiers to parameters (unnecessarily),
+and
+.bP
+It added \fB\%slk_color\fP.
+.PP
+Although \fB\%slk_start\fP is declared in the \fIcurses\fP header file,
+it was not documented by SVr4 other than its presence in a list
+of libtermlib.so.1 symbols.
+Reading the source code (i.e., Illumos):
+.bP
+\fB\%slk_start\fP has two parameters:
+.RS
+.bP
+\fIng\fP (number of groups) and
+.bP
+\fIgp\fP (group pointer).
+.RE
+.bP
+Soft-key groups are an array of \fIng\fP integers.
+.bP
+In SVr4, \fB\%slk_init\fP calls \fB\%slk_start\fP passing a null for \fIgp\fP.
+For this case, \fB\%slk_start\fP uses the number of groups \fIng\fP
+(3 for the 3-2-3 layout, 2 for the 4-4 layout) which \fB\%slk_init\fP provided.
+.IP
+If \fIng\fP is neither 2 or 3,
+\fB\%slk_start\fP checks the terminfo \fBfln\fP (label_format) capability,
+interpreting that as a comma-separated list of numbers,
+e.g., \*(``3,2,3\*('' for the 3-2-3 layout.
.IP
-The third function (\fBslk_attr_set\fP) has a color-pair parameter.
+Finally, if there is no \fBfln\fP capability,
+\fB\%slk_start\fP returns \fBERR\fP.
.bP
-It added \fBconst\fR qualifiers to parameters (unnecessarily), and
+If \fB\%slk_start\fP is given a non-null \fIgp\fP,
+it copies the \fIng\fP elements of the group of soft-keys, up to 16.
+.IP
+If there are more than 16 elements, \fB\%slk_start\fP returns an error.
.bP
-It added \fBslk_color\fP.
+The format codes \fB2\fP and \fB3\fP for \fB\%slk_init\fP
+were added by \fI\%ncurses\fP in 1996.
+PDCurses 2.4 added this feature in 2001.
.PP
-The format codes \fB2\fR and \fB3\fR for \fBslk_init\fR and the
-function \fBslk_attr\fR are specific to ncurses.
+The function \fB\%slk_attr\fP was added by \fI\%ncurses\fP in 1996.
.PP
X/Open Curses does not specify a limit for the number of colors and
color pairs which a terminal can support.
-However, in its use of \fBshort\fP for the parameters,
+However, in its use of \fIshort\fP for the parameters,
it carries over SVr4's implementation detail for the compiled
terminfo database, which uses signed 16-bit numbers.
This implementation provides extended versions of those functions
-which use \fBshort\fP parameters,
+which use \fIint\fP parameters,
allowing applications to use larger color- and pair-numbers.
+.SH HISTORY
+SVr3 introduced these functions:
+ \fBslk_clear\fP
+ \fBslk_init\fP
+ \fBslk_label\fP
+ \fBslk_noutrefresh\fP
+ \fBslk_refresh\fP
+ \fBslk_restore\fP
+ \fBslk_set\fP
+ \fBslk_touch\fP
+.PP
+SVr4 added these functions:
+ \fBslk_attroff\fP
+ \fBslk_attron\fP
+ \fBslk_attrset\fP
+ \fBslk_start\fP
+.PP
+X/Open Curses added these:
+ \fBslk_attr_off\fP
+ \fBslk_attr_on\fP
+ \fBslk_attr_set\fP
+ \fBslk_color\fP
+ \fBslk_wset\fP
.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBcurs_attr\fR(3X),
-\fBcurs_initscr\fR(3X),
-\fBcurs_refresh\fR(3X),
-\fBcurs_variables\fR(3X).
+\fB\%curses\fP(3X),
+\fB\%curs_attr\fP(3X),
+\fB\%curs_initscr\fP(3X),
+\fB\%curs_refresh\fP(3X),
+\fB\%curs_variables\fP(3X)
diff --git a/man/curs_sp_funcs.3x b/man/curs_sp_funcs.3x
index fd1c9b46bd31..e58a48e3caea 100644
--- a/man/curs_sp_funcs.3x
+++ b/man/curs_sp_funcs.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018-2020,2021 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 2010-2015,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,305 +27,201 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_sp_funcs.3x,v 1.24 2021/01/02 23:53:22 tom Exp $
-.TH curs_sp_funcs 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
-.na
-.hy 0
+.\" $Id: curs_sp_funcs.3x,v 1.50 2024/04/20 18:56:31 tom Exp $
+.TH curs_sp_funcs 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
.SH NAME
-curs_sp_funcs \- \fBcurses\fR screen-pointer extension
-.ad
-.hy
+\fB\%curs_sp_funcs\fP \-
+\fIcurses\fR screen-pointer extension
.SH SYNOPSIS
-\fB#include <curses.h>\fR
.nf
-.sp
-\fBint alloc_pair_sp(SCREEN* \fP\fIsp\fP\fB, int \fP\fIfg\fP\fB, int \fP\fIbg\fP\fB);\fR
-.br
-\fBint assume_default_colors_sp(SCREEN* \fP\fIsp\fP\fB, int \fP\fIfg\fP\fB, int \fP\fIbg\fP\fB);\fR
-.br
-\fBint baudrate_sp(SCREEN* \fP\fIsp\fP\fB);\fR
-.br
-\fBint beep_sp(SCREEN* \fP\fIsp\fP\fB);\fR
-.br
-\fBbool can_change_color_sp(SCREEN* \fP\fIsp\fP\fB);\fR
-.br
-\fBint cbreak_sp(SCREEN* \fP\fIsp\fP\fB);\fR
-.br
-\fBint color_content_sp(SCREEN* \fP\fIsp\fP\fB, short \fP\fIcolor\fP\fB, short* \fP\fIr\fP\fB, short* \fP\fIg\fP\fB, short* \fP\fIb\fP\fB);\fR
-.br
-\fBint curs_set_sp(SCREEN* \fP\fIsp\fP\fB, int \fP\fIvisibility\fP);\fR
-.br
-\fBint def_prog_mode_sp(SCREEN* \fP\fIsp\fP\fB);\fR
-.br
-\fBint def_shell_mode_sp(SCREEN* \fP\fIsp\fP\fB);\fR
-.sp
-\fBint define_key_sp(SCREEN* \fP\fIsp\fP\fB, const char * \fP\fIdefinition\fP\fB, int \fP\fIkeycode\fP\fB);\fR
-.br
-\fBint delay_output_sp(SCREEN* \fP\fIsp\fP\fB, int \fP\fIms\fP\fB);\fR
-.br
-\fBint doupdate_sp(SCREEN* \fP\fIsp\fP\fB);\fR
-.br
-\fBint echo_sp(SCREEN* \fP\fIsp\fP\fB);\fR
-.br
-\fBint endwin_sp(SCREEN* \fP\fIsp\fP\fB);\fR
-.br
-\fBchar erasechar_sp(SCREEN* \fP\fIsp\fP\fB);\fR
-.br
-\fBint extended_color_content_sp(SCREEN * \fP\fIsp\fP\fB, int \fP\fIcolor\fP\fB, int * \fP\fIr\fP\fB, int * \fP\fIg\fP\fB, int * \fP\fIb\fP\fB);\fR
-.br
-\fBint extended_pair_content_sp(SCREEN* \fP\fIsp\fP\fB, int \fP\fIpair\fP\fB, int * \fP\fIfg\fP\fB, int * \fP\fIbg\fP\fB);\fR
-.br
-\fBint extended_slk_color_sp(SCREEN* \fP\fIsp\fP\fB, int \fP\fIpair\fP\fB);\fR
-.br
-\fBvoid filter_sp(SCREEN* \fP\fIsp\fP\fB);\fR
-.sp
-\fBint find_pair_sp(SCREEN* \fP\fIsp\fP\fB, int \fP\fIfg\fP\fB, int \fP\fIbg\fP\fB);\fR
-.br
-\fBint flash_sp(SCREEN* \fP\fIsp\fP\fB);\fR
-.br
-\fBint flushinp_sp(SCREEN* \fP\fIsp\fP\fB);\fR
-.br
-\fBint free_pair_sp(SCREEN* \fP\fIsp\fP\fB, int \fP\fIpair\fP\fB);\fR
-.br
-\fBint get_escdelay_sp(SCREEN* \fP\fIsp\fP\fB);\fR
-.br
-\fBint getmouse_sp(SCREEN* \fP\fIsp\fP\fB, MEVENT* \fP\fBevent\fP\fB);\fR
-.br
-\fBWINDOW* getwin_sp(SCREEN* \fP\fIsp\fP\fB, FILE* \fP\fIfilep\fP\fB);\fR
-.br
-\fBint halfdelay_sp(SCREEN* \fP\fIsp\fP\fB, int \fP\fItenths\fP\fB);\fR
-.br
-\fBbool has_colors_sp(SCREEN* \fP\fIsp\fP\fB);\fR
-.br
-\fBbool has_ic_sp(SCREEN* \fP\fIsp\fP\fB);\fR
-.sp
-\fBbool has_il_sp(SCREEN* \fP\fIsp\fP\fB);\fR
-.br
-\fBint has_key_sp(SCREEN* \fP\fIsp\fP\fB, int \fP\fIch\fP\fB);\fR
-.br
-\fBbool has_mouse_sp(SCREEN* \fP\fIsp\fP\fB);\fR
-.br
-\fBint init_color_sp(SCREEN* \fP\fIsp\fP\fB, short \fP\fIcolor\fP\fB, short \fP\fIr\fP\fB, short \fP\fIg\fP\fB, short \fP\fIb\fP\fB);\fR
-.br
-\fBint init_extended_color_sp(SCREEN* \fP\fIsp\fP\fB, int \fP\fIcolor\fP\fB, int \fP\fIr\fP\fB, int \fP\fIg\fP\fB, int \fP\fIb\fP\fB);\fR
-.br
-\fBint init_extended_pair_sp(SCREEN* \fP\fIsp\fP\fB, int \fP\fIpair\fP\fB, int \fP\fIfg\fP\fB, int \fP\fIbg\fP\fB);\fR
-.br
-\fBint init_pair_sp(SCREEN* \fP\fIsp\fP\fB, short \fP\fIpair\fP\fB, short \fP\fIfg\fP\fB, short \fP\fIbg\fP\fB);\fR
-.br
-\fBint intrflush_sp(SCREEN* \fP\fIsp\fP\fB, WINDOW* \fP\fIwin\fP\fB, bool \fP\fIbf\fP\fB);\fR
-.br
-\fBbool is_term_resized_sp(SCREEN* \fP\fIsp\fP\fB, int \fP\fIlines\fP\fB, int \fP\fIcolumns\fP\fB);\fR
-.br
-\fBbool isendwin_sp(SCREEN* \fP\fIsp\fP\fB);\fR
-.sp
-\fBint key_defined_sp(SCREEN* \fP\fIsp\fP\fB, const char *\fP\fIdefinition\fP\fB);\fR
-.br
-\fBchar* keybound_sp(SCREEN* \fP\fIsp\fP\fB, int \fP\fIkeycode\fP\fB, int \fP\fIcount\fP\fB);\fR
-.br
-\fBNCURSES_CONST char * keyname_sp(SCREEN* \fP\fIsp\fP\fB, int \fP\fIc\fP\fB);\fR
-.br
-\fBint keyok_sp(SCREEN* \fP\fIsp\fP\fB, int \fP\fIkeycode\fP\fB, bool \fP\fIenable\fP\fB);\fR
-.br
-\fBchar killchar_sp(SCREEN* \fP\fIsp\fP\fB);\fR
-.br
-\fBchar* longname_sp(SCREEN* \fP\fIsp\fP\fB);\fR
-.br
-\fBint mcprint_sp(SCREEN* \fP\fIsp\fP\fB, char *\fP\fIdata\fP\fB, int \fP\fIlen\fP\fB);\fR
-.br
-\fBint mouseinterval_sp(SCREEN* \fP\fIsp\fP\fB, int \fP\fIerval\fP\fB);\fR
-.br
-\fBmmask_t mousemask_sp(SCREEN* \fP\fIsp\fP\fB, mmask_t \fP\fInewmask\fP\fB, mmask_t *\fP\fIoldmask\fP\fB);\fR
-.br
-\fBint mvcur_sp(SCREEN* \fP\fIsp\fP\fB, int \fP\fIoldrow\fP\fB, int \fP\fIoldcol\fP\fB, int \fP\fInewrow\fP\fB, int \fP\fInewcol\fP\fB);\fR
-.sp
-\fBint napms_sp(SCREEN* \fP\fIsp\fP\fB, int \fP\fIms\fP\fB);\fR
-.br
-\fBWINDOW* newpad_sp(SCREEN* \fP\fIsp\fP\fB, int \fP\fInrows\fP\fB, int \fP\fIncols\fP\fB);\fR
-.br
-\fBSCREEN* new_prescr(void);\fR
-.br
-\fBSCREEN* newterm_sp(SCREEN* \fP\fIsp\fP\fB, const char *\fP\fItype\fP\fB, FILE *\fP\fIoutfd\fP\fB, FILE *\fP\fIinfd\fP\fB);\fR
-.br
-\fBWINDOW* newwin_sp(SCREEN* \fP\fIsp\fP\fB, int \fP\fInlines\fP\fB, int \fP\fIncols\fP\fB, int \fP\fIbegin_y\fP\fB, int \fP\fIbegin_x\fP\fB);\fR
-.br
-\fBint nl_sp(SCREEN* \fP\fIsp\fP\fB);\fR
-.br
-\fBint nocbreak_sp(SCREEN* \fP\fIsp\fP\fB);\fR
-.br
-\fBint noecho_sp(SCREEN* \fP\fIsp\fP\fB);\fR
-.br
-\fBvoid nofilter_sp(SCREEN* \fP\fIsp\fP\fB);\fR
-.br
-\fBint nonl_sp(SCREEN* \fP\fIsp\fP\fB);\fR
-.sp
-\fBvoid noqiflush_sp(SCREEN* \fP\fIsp\fP\fB);\fR
-.br
-\fBint noraw_sp(SCREEN* \fP\fIsp\fP\fB);\fR
-.br
-\fBint pair_content_sp(SCREEN* \fP\fIsp\fP\fB, short \fP\fIpair\fP\fB, short* \fP\fIfg\fP\fB, short* \fP\fIbg\fP\fB);\fR
-.br
-\fBvoid qiflush_sp(SCREEN* \fP\fIsp\fP\fB);\fR
-.br
-\fBint raw_sp(SCREEN* \fP\fIsp\fP\fB);\fR
-.br
-\fBint reset_prog_mode_sp(SCREEN* \fP\fIsp\fP\fB);\fR
-.br
-\fBvoid reset_color_pairs_sp(SCREEN* \fP\fIsp\fP\fB);\fR
-.br
-\fBint reset_shell_mode_sp(SCREEN* \fP\fIsp\fP\fB);\fR
-.br
-\fBint resetty_sp(SCREEN* \fP\fIsp\fP\fB);\fR
-.br
-\fBint resize_term_sp(SCREEN* \fP\fIsp\fP\fB, int \fP\fIlines\fP\fB, int \fP\fIcolumns\fP\fB);\fR
-.sp
-\fBint resizeterm_sp(SCREEN* \fP\fIsp\fP\fB, int \fP\fIlines\fP\fB, int \fP\fIcolumns\fP\fB);\fR
-.br
-\fBint ripoffline_sp(SCREEN* \fP\fIsp\fP\fB, int \fP\fIline\fP\fB, int (*\fP\fIinit\fP\fB)(WINDOW* \fP\fIwin\fP\fB, int \fP\fIfmt\fP\fB));\fR
-.br
-\fBint savetty_sp(SCREEN* \fP\fIsp\fP\fB);\fR
-.br
-\fBint scr_init_sp(SCREEN* \fP\fIsp\fP\fB, const char *\fP\fIfilename\fP\fB);\fR
-.br
-\fBint scr_restore_sp(SCREEN* \fP\fIsp\fP\fB, const char *\fP\fIfilename\fP\fB);\fR
-.br
-\fBint scr_set_sp(SCREEN* \fP\fIsp\fP\fB, const char *\fP\fIfilename\fP\fB);\fR
-.br
-\fBint set_escdelay_sp(SCREEN* \fP\fIsp\fP\fB, int \fP\fIms\fP\fB);\fR
-.br
-\fBint set_tabsize_sp(SCREEN* \fP\fIsp\fP\fB, int \fP\fIcols\fP\fB);\fR
-.br
-\fBint slk_attr_set_sp(SCREEN* \fP\fIsp\fP\fB, const attr_t \fP\fIattrs\fP\fB, short \fP\fIpair\fP\fB, void*\fP\fIopts\fP\fB);\fR
-.sp
-\fBint slk_attrset_sp(SCREEN* \fP\fIsp\fP\fB, const chtype \fP\fIa\fP\fB);\fR
-.br
-\fBint slk_attroff_sp(SCREEN* \fP\fIsp\fP\fB, const chtype \fP\fIa\fP\fB);\fR
-.br
-\fBint slk_attron_sp(SCREEN* \fP\fIsp\fP\fB, const chtype \fP\fIa\fP\fB);\fR
-.br
-\fBattr_t slk_attr_sp(SCREEN* \fP\fIsp\fP\fB);\fR
-.br
-\fBint slk_clear_sp(SCREEN* \fP\fIsp\fP\fB);\fR
-.br
-\fBint slk_color_sp(SCREEN* \fP\fIsp\fP\fB, short \fP\fIpair\fP\fB);\fR
-.br
-\fBint slk_init_sp(SCREEN* \fP\fIsp\fP\fB, int \fP\fIfmt\fP\fB);\fR
-.br
-\fBchar* slk_label_sp(SCREEN* \fP\fIsp\fP\fB, int \fP\fIlabnum\fP\fB);\fR
-.br
-\fBint slk_noutrefresh_sp(SCREEN* \fP\fIsp\fP\fB);\fR
-.br
-\fBint slk_refresh_sp(SCREEN* \fP\fIsp\fP\fB);\fR
-.sp
-\fBint slk_restore_sp(SCREEN* \fP\fIsp\fP\fB);\fR
-.br
-\fBint slk_set_sp(SCREEN* \fP\fIsp\fP\fB, int \fP\fIlabnum\fP\fB, const char * \fP\fIlabel\fP\fB, int \fP\fIfmt\fP\fB);\fR
-.br
-\fBint slk_touch_sp(SCREEN* \fP\fIsp\fP\fB);\fR
-.br
-\fBint start_color_sp(SCREEN* \fP\fIsp\fP\fB);\fR
-.br
-\fBattr_t term_attrs_sp(SCREEN* \fP\fIsp\fP\fB);\fR
-.br
-\fBchtype termattrs_sp(SCREEN* \fP\fIsp\fP\fB);\fR
-.br
-\fBchar* termname_sp(SCREEN* \fP\fIsp\fP\fB);\fR
-.br
-\fBint typeahead_sp(SCREEN* \fP\fIsp\fP\fB, int \fP\fIfd\fP\fB);\fR
-.br
-\fBint unget_wch_sp(SCREEN* \fP\fIsp\fP\fB, const wchar_t \fP\fIwch\fP\fB);\fR
-.br
-\fBint ungetch_sp(SCREEN* \fP\fIsp\fP\fB, int \fP\fIch\fP\fB);\fR
-.sp
-\fBint ungetmouse_sp(SCREEN* \fP\fIsp\fP\fB,MEVENT * \fP\fBevent\fP\fB);\fR
-.br
-\fBint use_default_colors_sp(SCREEN* \fP\fIsp\fP\fB);\fR
-.br
-\fBvoid use_env_sp(SCREEN* \fP\fIsp\fP\fB, bool \fP\fIbf\fP\fB);\fR
-.br
-\fBint use_legacy_coding_sp(SCREEN* \fP\fIsp\fP\fB, int \fP\fIlevel\fP\fB);\fR
-.br
-\fBvoid use_tioctl_sp(SCREEN *\fP\fIsp\fP\fB, bool \fP\fIbf\fP\fB);\fR
-.br
-\fBint vid_attr_sp(SCREEN* \fP\fIsp\fP\fB, attr_t \fP\fIattrs\fP\fB, short \fP\fIpair\fP\fB, void * \fP\fIopts\fP\fB);\fR
-.br
-\fBint vid_puts_sp(SCREEN* \fP\fIsp\fP\fB, attr_t \fP\fIattrs\fP\fB, short \fP\fIpair\fP\fB, void * \fP\fIopts\fP\fB, NCURSES_SP_OUTC \fP\fIputc\fP\fB);\fR
-.br
-\fBint vidattr_sp(SCREEN* \fP\fIsp\fP\fB, chtype \fP\fIattrs\fP\fB);\fR
-.br
-\fBint vidputs_sp(SCREEN* \fP\fIsp\fP\fB, chtype \fP\fIattrs\fP\fB, NCURSES_SP_OUTC \fP\fIputc\fP\fB);\fR
-.br
-\fBwchar_t* wunctrl_sp(SCREEN* \fP\fIsp\fP\fB, cchar_t *\fP\fIch\fP\fB);\fR
-.sp
-\fB#include <form.h>\fR
-.sp
-\fBFORM* new_form_sp(SCREEN* \fP\fIsp\fP\fB, FIELD **\fP\fIfields\fP\fB);\fR
-.sp
-\fB#include <menu.h>\fR
-.sp
-\fBMENU* new_menu_sp(SCREEN* \fP\fIsp\fP\fB, ITEM **\fP\fIitems\fP\fB);\fR
-.sp
-\fB#include <panel.h>\fR
-.sp
-\fBPANEL* ceiling_panel(SCREEN* \fP\fIsp\fP\fB);\fR
-.br
-\fBPANEL* ground_panel(SCREEN* \fP\fIsp\fP\fB);\fR
-.br
-\fBvoid update_panels_sp(SCREEN* \fP\fIsp\fP\fB);\fR
-.sp
-\fB#include <term.h>\fR
-.sp
-\fBint del_curterm_sp(SCREEN* \fP\fIsp\fP\fB, TERMINAL *\fP\fIoterm\fP\fB);\fR
-.br
-\fBint putp_sp(SCREEN* \fP\fIsp\fP\fB, const char *\fP\fIstr\fP\fB);\fR
-.br
-\fBint restartterm_sp(SCREEN* \fP\fIsp\fP\fB, NCURSES_CONST char*\fP\fIterm\fP\fB, int \fP\fIfiledes\fP\fB, int *\fP\fIerrret\fP\fB);\fR
-.br
-\fBTERMINAL* set_curterm_sp(SCREEN* \fP\fIsp\fP\fB, TERMINAL*\fP\fInterm\fP\fB);\fR
-.br
-\fBint tgetent_sp(SCREEN* \fP\fIsp\fP\fB, char *\fP\fIbp\fP\fB, const char *\fP\fIname\fP\fB);\fR
-.br
-\fBint tgetflag_sp(SCREEN* \fP\fIsp\fP\fB, const char *\fP\fIcapname\fP\fB);\fR
-.br
-\fBint tgetnum_sp(SCREEN* \fP\fIsp\fP\fB, const char *\fP\fIcapname\fP\fB);\fR
-.br
-\fBchar* tgetstr_sp(SCREEN* \fP\fIsp\fP\fB, const char *\fP\fIcapname\fP\fB, char **\fP\fIarea\fP\fB);\fR
-.br
-\fBchar* tgoto_sp(SCREEN* \fP\fIsp\fP\fB, const char *\fP\fIcapname\fP\fB, int \fP\fIcol\fP\fB, int \fP\fIrow\fP\fB);\fR
-.br
-\fBint tigetflag_sp(SCREEN* \fP\fIsp\fP\fB, const char *\fP\fIcapname\fP\fB);\fR
-.br
-\fBint tigetnum_sp(SCREEN* \fP\fIsp\fP\fB, const char *\fP\fIcapname\fP\fB);\fR
-.br
-\fBchar* tigetstr_sp(SCREEN* \fP\fIsp\fP\fB, const char *\fP\fIcapname\fP\fB);\fR
-.br
-/* may instead use 9 long parameters */
-.br
-\fBchar* tparm_sp(SCREEN* \fP\fIsp\fP\fB, const char *\fP\fIstr\fP\fB, ...);\fR
-.br
-\fBint tputs_sp(SCREEN* \fP\fIsp\fP\fB, const char *\fP\fIstr\fP\fB, int \fP\fIaffcnt\fP\fB, NCURSES_SP_OUTC \fP\fIputc\fP\fB);\fR
-.sp
-\fB#include <unctrl.h>\fR
-.sp
-\fBNCURSES_CONST char* unctrl_sp(SCREEN* \fP\fIsp\fP\fB, chtype \fP\fIc\fP\fB);\fR
-.ad
-.br
+\fB#include <curses.h>
+.PP
+\fBint alloc_pair_sp(SCREEN* \fIsp\fP, int \fIfg\fP, int \fIbg\fP);
+\fBint assume_default_colors_sp(SCREEN* \fIsp\fP, int \fIfg\fP, int \fIbg\fP);
+\fBint baudrate_sp(SCREEN* \fIsp\fP);
+\fBint beep_sp(SCREEN* \fIsp\fP);
+\fBbool can_change_color_sp(SCREEN* \fIsp\fP);
+\fBint cbreak_sp(SCREEN* \fIsp\fP);
+\fBint color_content_sp(SCREEN* \fIsp\fP, short \fIcolor\fP, short* \fIr\fP, short* \fIg\fP, short* \fIb\fP);
+\fBint curs_set_sp(SCREEN* \fIsp\fP, int \fIvisibility\fP);
+\fBint def_prog_mode_sp(SCREEN* \fIsp\fP);
+\fBint def_shell_mode_sp(SCREEN* \fIsp\fP);
+.PP
+\fBint define_key_sp(SCREEN* \fIsp\fP, const char * \fIdefinition\fP, int \fIkeycode\fP);
+\fBint delay_output_sp(SCREEN* \fIsp\fP, int \fIms\fP);
+\fBint doupdate_sp(SCREEN* \fIsp\fP);
+\fBint echo_sp(SCREEN* \fIsp\fP);
+\fBint endwin_sp(SCREEN* \fIsp\fP);
+\fBchar erasechar_sp(SCREEN* \fIsp\fP);
+\fBint erasewchar_sp(SCREEN* \fIsp\fP, wchar_t *\fIwc\fP);
+\fBint extended_color_content_sp(SCREEN * \fIsp\fP, int \fIcolor\fP, int * \fIr\fP, int * \fIg\fP, int * \fIb\fP);
+\fBint extended_pair_content_sp(SCREEN* \fIsp\fP, int \fIpair\fP, int * \fIfg\fP, int * \fIbg\fP);
+\fBint extended_slk_color_sp(SCREEN* \fIsp\fP, int \fIpair\fP);
+.PP
+\fBvoid filter_sp(SCREEN* \fIsp\fP);
+\fBint find_pair_sp(SCREEN* \fIsp\fP, int \fIfg\fP, int \fIbg\fP);
+\fBint flash_sp(SCREEN* \fIsp\fP);
+\fBint flushinp_sp(SCREEN* \fIsp\fP);
+\fBint free_pair_sp(SCREEN* \fIsp\fP, int \fIpair\fP);
+\fBint get_escdelay_sp(SCREEN* \fIsp\fP);
+\fBint getmouse_sp(SCREEN* \fIsp\fP, MEVENT* \fIevent\fP);
+\fBWINDOW* getwin_sp(SCREEN* \fIsp\fP, FILE* \fIfilep\fP);
+\fBint halfdelay_sp(SCREEN* \fIsp\fP, int \fItenths\fP);
+\fBbool has_colors_sp(SCREEN* \fIsp\fP);
+.PP
+\fBbool has_ic_sp(SCREEN* \fIsp\fP);
+\fBbool has_il_sp(SCREEN* \fIsp\fP);
+\fBint has_key_sp(SCREEN* \fIsp\fP, int \fIc\fP);
+\fBbool has_mouse_sp(SCREEN* \fIsp\fP);
+\fBint init_color_sp(SCREEN* \fIsp\fP, short \fIcolor\fP, short \fIr\fP, short \fIg\fP, short \fIb\fP);
+\fBint init_extended_color_sp(SCREEN* \fIsp\fP, int \fIcolor\fP, int \fIr\fP, int \fIg\fP, int \fIb\fP);
+\fBint init_extended_pair_sp(SCREEN* \fIsp\fP, int \fIpair\fP, int \fIfg\fP, int \fIbg\fP);
+\fBint init_pair_sp(SCREEN* \fIsp\fP, short \fIpair\fP, short \fIfg\fP, short \fIbg\fP);
+\fBint intrflush_sp(SCREEN* \fIsp\fP, WINDOW* \fIwin\fP, bool \fIbf\fP);
+\fBint is_cbreak_sp(SCREEN* \fIsp\fP);
+.PP
+\fBint is_echo_sp(SCREEN* \fIsp\fP);
+\fBint is_nl_sp(SCREEN* \fIsp\fP);
+\fBint is_raw_sp(SCREEN* \fIsp\fP);
+\fBbool is_term_resized_sp(SCREEN* \fIsp\fP, int \fIlines\fP, int \fIcolumns\fP);
+\fBbool isendwin_sp(SCREEN* \fIsp\fP);
+\fBint key_defined_sp(SCREEN* \fIsp\fP, const char *\fIdefinition\fP);
+\fBchar* keybound_sp(SCREEN* \fIsp\fP, int \fIkeycode\fP, int \fIcount\fP);
+\fBNCURSES_CONST char* keyname_sp(SCREEN* \fIsp\fP, int \fIc\fP);
+\fBint keyok_sp(SCREEN* \fIsp\fP, int \fIkeycode\fP, bool \fIenable\fP);
+\fBchar killchar_sp(SCREEN* \fIsp\fP);
+.PP
+\fBint killwchar_sp(SCREEN* \fIsp\fP, wchar_t *\fIwc\fP);
+\fBchar* longname_sp(SCREEN* \fIsp\fP);
+\fBint mcprint_sp(SCREEN* \fIsp\fP, char *\fIdata\fP, int \fIlen\fP);
+\fBint mouseinterval_sp(SCREEN* \fIsp\fP, int \fIerval\fP);
+\fBmmask_t mousemask_sp(SCREEN* \fIsp\fP, mmask_t \fInewmask\fP, mmask_t *\fIoldmask\fP);
+\fBint mvcur_sp(SCREEN* \fIsp\fP, int \fIoldrow\fP, int \fIoldcol\fP, int \fInewrow\fP, int \fInewcol\fP);
+\fBint napms_sp(SCREEN* \fIsp\fP, int \fIms\fP);
+\fBWINDOW* newpad_sp(SCREEN* \fIsp\fP, int \fInrows\fP, int \fIncols\fP);
+\fBSCREEN* new_prescr(void);
+\fBSCREEN* newterm_sp(SCREEN* \fIsp\fP, const char *\fItype\fP, FILE *\fIoutfd\fP, FILE *\fIinfd\fP);
+.PP
+\fBWINDOW* newwin_sp(SCREEN* \fIsp\fP, int \fInlines\fP, int \fIncols\fP, int \fIbegin_y\fP, int \fIbegin_x\fP);
+\fBint nl_sp(SCREEN* \fIsp\fP);
+\fBint nocbreak_sp(SCREEN* \fIsp\fP);
+\fBint noecho_sp(SCREEN* \fIsp\fP);
+\fBvoid nofilter_sp(SCREEN* \fIsp\fP);
+\fBint nonl_sp(SCREEN* \fIsp\fP);
+\fBvoid noqiflush_sp(SCREEN* \fIsp\fP);
+\fBint noraw_sp(SCREEN* \fIsp\fP);
+\fBint pair_content_sp(SCREEN* \fIsp\fP, short \fIpair\fP, short* \fIfg\fP, short* \fIbg\fP);
+\fBvoid qiflush_sp(SCREEN* \fIsp\fP);
+.PP
+\fBint raw_sp(SCREEN* \fIsp\fP);
+\fBvoid reset_color_pairs_sp(SCREEN* \fIsp\fP);
+\fBint reset_prog_mode_sp(SCREEN* \fIsp\fP);
+\fBint reset_shell_mode_sp(SCREEN* \fIsp\fP);
+\fBint resetty_sp(SCREEN* \fIsp\fP);
+\fBint resize_term_sp(SCREEN* \fIsp\fP, int \fIlines\fP, int \fIcolumns\fP);
+\fBint resizeterm_sp(SCREEN* \fIsp\fP, int \fIlines\fP, int \fIcolumns\fP);
+\fBint ripoffline_sp(SCREEN* \fIsp\fP, int \fIline\fP, int (*\fIinit\fP)(WINDOW* \fIwin\fP, int \fIfmt\fP));
+\fBint savetty_sp(SCREEN* \fIsp\fP);
+\fBint scr_init_sp(SCREEN* \fIsp\fP, const char *\fIfilename\fP);
+.PP
+\fBint scr_restore_sp(SCREEN* \fIsp\fP, const char *\fIfilename\fP);
+\fBint scr_set_sp(SCREEN* \fIsp\fP, const char *\fIfilename\fP);
+\fBint set_escdelay_sp(SCREEN* \fIsp\fP, int \fIms\fP);
+\fBint set_tabsize_sp(SCREEN* \fIsp\fP, int \fIcols\fP);
+\fBint slk_attrset_sp(SCREEN* \fIsp\fP, const chtype \fIa\fP);
+\fBint slk_attr_set_sp(SCREEN* \fIsp\fP, const attr_t \fIattrs\fP, short \fIpair\fP, void*\fIopts\fP);
+\fBint slk_attroff_sp(SCREEN* \fIsp\fP, const chtype \fIa\fP);
+\fBint slk_attron_sp(SCREEN* \fIsp\fP, const chtype \fIa\fP);
+\fBattr_t slk_attr_sp(SCREEN* \fIsp\fP);
+\fBint slk_clear_sp(SCREEN* \fIsp\fP);
+.PP
+\fBint slk_color_sp(SCREEN* \fIsp\fP, short \fIpair\fP);
+\fBint slk_init_sp(SCREEN* \fIsp\fP, int \fIfmt\fP);
+\fBchar* slk_label_sp(SCREEN* \fIsp\fP, int \fIlabnum\fP);
+\fBint slk_noutrefresh_sp(SCREEN* \fIsp\fP);
+\fBint slk_refresh_sp(SCREEN* \fIsp\fP);
+\fBint slk_restore_sp(SCREEN* \fIsp\fP);
+\fBint slk_set_sp(SCREEN* \fIsp\fP, int \fIlabnum\fP, const char * \fIlabel\fP, int \fIfmt\fP);
+\fBint slk_touch_sp(SCREEN* \fIsp\fP);
+\fBint start_color_sp(SCREEN* \fIsp\fP);
+\fBattr_t term_attrs_sp(SCREEN* \fIsp\fP);
+.PP
+\fBchtype termattrs_sp(SCREEN* \fIsp\fP);
+\fBchar* termname_sp(SCREEN* \fIsp\fP);
+\fBint typeahead_sp(SCREEN* \fIsp\fP, int \fIfd\fP);
+\fBint unget_wch_sp(SCREEN* \fIsp\fP, const wchar_t \fIwc\fP);
+\fBint ungetch_sp(SCREEN* \fIsp\fP, int \fIc\fP);
+\fBint ungetmouse_sp(SCREEN* \fIsp\fP, MEVENT* \fIevent\fP);
+\fBint use_default_colors_sp(SCREEN* \fIsp\fP);
+\fBvoid use_env_sp(SCREEN* \fIsp\fP, bool \fIbf\fP);
+\fBint use_legacy_coding_sp(SCREEN* \fIsp\fP, int \fIlevel\fP);
+\fBvoid use_tioctl_sp(SCREEN *\fIsp\fP, bool \fIbf\fP);
+.PP
+\fBint vid_attr_sp(SCREEN* \fIsp\fP, attr_t \fIattrs\fP, short \fIpair\fP, void * \fIopts\fP);
+\fBint vid_puts_sp(SCREEN* \fIsp\fP, attr_t \fIattrs\fP, short \fIpair\fP, void * \fIopts\fP, NCURSES_SP_OUTC \fIputc\fP);
+\fBint vidattr_sp(SCREEN* \fIsp\fP, chtype \fIattrs\fP);
+\fBint vidputs_sp(SCREEN* \fIsp\fP, chtype \fIattrs\fP, NCURSES_SP_OUTC \fIputc\fP);
+\fBwchar_t* wunctrl_sp(SCREEN* \fIsp\fP, cchar_t *\fIwch\fP);
+.PP
+\fB#include <form.h>
+.PP
+\fBFORM* new_form_sp(SCREEN* \fIsp\fP, FIELD **\fIfields\fP);
+.PP
+\fB#include <menu.h>
+.PP
+\fBMENU* new_menu_sp(SCREEN* \fIsp\fP, ITEM **\fIitems\fP);
+.PP
+\fB#include <panel.h>
+.PP
+\fBPANEL* ceiling_panel(SCREEN* \fIsp\fP);
+\fBPANEL* ground_panel(SCREEN* \fIsp\fP);
+\fBvoid update_panels_sp(SCREEN* \fIsp\fP);
+.PP
+\fB#include <term.h>
+.PP
+\fBint del_curterm_sp(SCREEN* \fIsp\fP, TERMINAL *\fIoterm\fP);
+\fBint putp_sp(SCREEN* \fIsp\fP, const char *\fIstr\fP);
+\fBint restartterm_sp(SCREEN* \fIsp\fP, NCURSES_CONST char*\fIterm\fP, int \fIfiledes\fP, int *\fIerrret\fP);
+\fBTERMINAL* set_curterm_sp(SCREEN* \fIsp\fP, TERMINAL*\fInterm\fP);
+\fBint tgetent_sp(SCREEN* \fIsp\fP, char *\fIbp\fP, const char *\fIname\fP);
+\fBint tgetflag_sp(SCREEN* \fIsp\fP, const char *\fIcapname\fP);
+\fBint tgetnum_sp(SCREEN* \fIsp\fP, const char *\fIcapname\fP);
+\fBchar* tgetstr_sp(SCREEN* \fIsp\fP, const char *\fIcapname\fP, char **\fIarea\fP);
+\fBchar* tgoto_sp(SCREEN* \fIsp\fP, const char *\fIcapname\fP, int \fIcol\fP, int \fIrow\fP);
+\fBint tigetflag_sp(SCREEN* \fIsp\fP, const char *\fIcapname\fP);
+.PP
+\fBint tigetnum_sp(SCREEN* \fIsp\fP, const char *\fIcapname\fP);
+\fBchar* tigetstr_sp(SCREEN* \fIsp\fP, const char *\fIcapname\fP);
+\fI/* tparm_sp may use 9 long parameters rather than being variadic */
+\fBchar* tparm_sp(SCREEN* \fIsp\fP, const char *\fIstr\fP, ...);
+\fBint tputs_sp(SCREEN* \fIsp\fP, const char *\fIstr\fP, int \fIaffcnt\fP, NCURSES_SP_OUTC \fIputc\fP);
+.PP
+\fB#include <unctrl.h>
+.PP
+\fBNCURSES_CONST char* unctrl_sp(SCREEN* \fIsp\fP, chtype \fIch\fP);
+.fi
.SH DESCRIPTION
This implementation can be configured to provide a set of functions which
improve the ability to manage multiple screens.
-This feature can be added to any of the configurations supported by ncurses;
-it adds new entrypoints
+This feature can be added to any of the configurations supported by
+\fI\%ncurses\fP;
+it adds new symbols
without changing the meaning of any of the existing ones.
-.PP
.\" ***************************************************************************
-.SS IMPROVED FUNCTIONS
+.SS "Improved Functions"
Most of the functions are new versions of existing functions.
A parameter is added at the front of the parameter list.
-It is a SCREEN pointer.
+It is a \fISCREEN\fP pointer.
.PP
The existing functions all use the current screen,
which is a static variable.
@@ -333,7 +229,7 @@ The extended functions use the specified screen,
thereby reducing the number of variables which must be modified
to update multiple screens.
.\" ***************************************************************************
-.SS NEW FUNCTIONS
+.SS "New Functions"
Here are the new functions:
.TP 5
ceiling_panel
@@ -349,8 +245,8 @@ With the screen-pointer extension,
there are situations where it must create a current screen before
the unextended library does.
The \fBnew_prescr\fP function is used internally to handle these cases.
-It is also provided as an entrypoint to allow applications to customize
-the library initialization.
+It is also provided to allow applications to customize library
+initialization.
.\" ***************************************************************************
.SH NOTES
This extension introduces some new names:
@@ -363,7 +259,8 @@ to make it useful for checking if the extension is provided.
NCURSES_SP_NAME
The new functions are named using the macro \fINCURSES_SP_NAME\fP,
which hides the actual implementation.
-Currently this adds a \*(``_sp\*('' suffix to the name of the unextended function.
+Currently this adds a \*(``_sp\*('' suffix
+to the name of the unextended function.
This manual page indexes the extensions showing the full name.
However the proper usage of these functions uses the macro,
to provide for the possibility of changing the naming convention
@@ -376,13 +273,12 @@ where an \fINCURSES_OUTC\fP is used in the unextended library.
NCURSES_OUTC
This is a function-pointer type used for the cases where a function passes
characters to the output stream, e.g., \fBvidputs\fP(3X).
-.PP
.SH PORTABILITY
-These routines are specific to ncurses.
+These routines are specific to \fI\%ncurses\fP.
They were not supported on Version 7, BSD or System V implementations.
-It is recommended that any code depending on ncurses extensions
+It is recommended that any code depending on \fI\%ncurses\fP extensions
be conditioned using \fINCURSES_SP_FUNCS\fP.
.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBcurs_opaque\fR(3X),
-\fBcurs_threads\fR(3X).
+\fB\%curses\fP(3X),
+\fB\%curs_opaque\fP(3X),
+\fB\%curs_threads\fP(3X)
diff --git a/man/curs_termattrs.3x b/man/curs_termattrs.3x
index ec5ec38499e0..dacd3b0f4d84 100644
--- a/man/curs_termattrs.3x
+++ b/man/curs_termattrs.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2010,2015 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,115 +27,103 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_termattrs.3x,v 1.15 2020/02/02 23:34:34 tom Exp $
-.TH curs_termattrs 3X ""
+.\" $Id: curs_termattrs.3x,v 1.41 2024/04/20 21:20:07 tom Exp $
+.TH curs_termattrs 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
-\fBbaudrate\fR,
-\fBerasechar\fR,
-\fBerasewchar\fR,
-\fBhas_ic\fR,
-\fBhas_il\fR,
-\fBkillchar\fR,
-\fBkillwchar\fR,
-\fBlongname\fR,
-\fBterm_attrs\fR,
-\fBtermattrs\fR,
-\fBtermname\fR \- \fBcurses\fR environment query routines
+\fB\%baudrate\fP,
+\fB\%erasechar\fP,
+\fB\%erasewchar\fP,
+\fB\%has_ic\fP,
+\fB\%has_il\fP,
+\fB\%killchar\fP,
+\fB\%killwchar\fP,
+\fB\%longname\fP,
+\fB\%term_attrs\fP,
+\fB\%termattrs\fP,
+\fB\%termname\fP \-
+\fIcurses\fR environment query routines
.SH SYNOPSIS
-\fB#include <curses.h>\fR
+.nf
+\fB#include <curses.h>
.PP
-\fBint baudrate(void);\fR
-.br
-\fBchar erasechar(void);\fR
-.br
-\fBint erasewchar(wchar_t *\fR\fIch\fR\fB);\fR
-.br
-\fBbool has_ic(void);\fR
-.br
-\fBbool has_il(void);\fR
-.br
-\fBchar killchar(void);\fR
-.br
-\fBint killwchar(wchar_t *\fR\fIch\fR\fB);\fR
-.br
-\fBchar *longname(void);\fR
-.br
-\fBattr_t term_attrs(void);\fR
-.br
-\fBchtype termattrs(void);\fR
-.br
-\fBchar *termname(void);\fR
-.br
+\fBint baudrate(void);
+\fBchar erasechar(void);
+\fBint erasewchar(wchar_t *\fIwc\fP);
+\fBbool has_ic(void);
+\fBbool has_il(void);
+\fBchar killchar(void);
+\fBint killwchar(wchar_t *\fIwc\fP);
+\fBchar *longname(void);
+\fBattr_t term_attrs(void);
+\fBchtype termattrs(void);
+\fBchar *termname(void);
+.fi
.SH DESCRIPTION
.SS baudrate
-The \fBbaudrate\fR routine returns the output speed of the terminal.
+The \fBbaudrate\fP routine returns the output speed of the terminal.
The
-number returned is in bits per second, for example \fB9600\fR, and is an
+number returned is in bits per second, for example \fB9600\fP, and is an
integer.
-.SS erasechar, erasewchar
+.SS "erasechar, erasewchar"
+The \fBerasechar\fP routine returns the user's current erase character.
.PP
-The \fBerasechar\fR routine returns the user's current erase character.
-.PP
-The \fBerasewchar\fR routine stores the current erase character
-in the location referenced by \fIch\fR.
+The \fBerasewchar\fP routine stores the current erase character
+in the location referenced by \fIwc\fP.
If no erase character has been defined, the routine fails
-and the location referenced by \fIch\fR is not changed.
-.SS has_is, has_il
-.PP
-The \fBhas_ic\fR routine is true if the terminal has insert- and delete-
+and the location referenced by \fIwc\fP is not changed.
+.SS "has_ic, has_il"
+The \fBhas_ic\fP routine is true if the terminal has insert- and delete-
character capabilities.
.PP
-The \fBhas_il\fR routine is true if the terminal has insert- and delete-line
+The \fBhas_il\fP routine is true if the terminal has insert- and delete-line
capabilities, or can simulate them using scrolling regions.
This might
be used to determine if it would be appropriate to turn on physical
-scrolling using \fBscrollok\fR.
-.SS killchar, killwchar
-.PP
-The \fBkillchar\fR routine returns the user's current line kill character.
+scrolling using \fBscrollok\fP(3X).
+.SS "killchar, killwchar"
+The \fBkillchar\fP routine returns the user's current line kill character.
.PP
-The \fBkillwchar\fR routine stores the current line-kill character
-in the location referenced by \fIch\fR.
+The \fBkillwchar\fP routine stores the current line-kill character
+in the location referenced by \fIwc\fP.
If no line-kill character has been defined,
-the routine fails and the location referenced by \fIch\fR is not changed.
+the routine fails and the location referenced by \fIwc\fP is not changed.
.SS longname
-.PP
-The \fBlongname\fR routine returns a pointer to a static area
+The \fBlongname\fP routine returns a pointer to a static area
containing a verbose description of the current terminal.
The maximum
length of a verbose description is 128 characters.
It is defined only
-after the call to \fBinitscr\fR or \fBnewterm\fR. The area is
-overwritten by each call to \fBnewterm\fR and is not restored by
-\fBset_term\fR, so the value should be saved between calls to
-\fBnewterm\fR if \fBlongname\fR is going to be used with multiple
+after the call to \fBinitscr\fP or \fBnewterm\fP. The area is
+overwritten by each call to \fBnewterm\fP and is not restored by
+\fBset_term\fP, so the value should be saved between calls to
+\fBnewterm\fP if \fBlongname\fP is going to be used with multiple
terminals.
-.SS termattrs, term_attrs
-.PP
+.SS "termattrs, term_attrs"
If a given terminal does not support a video attribute that an
-application program is trying to use, \fBcurses\fR may substitute a
+application program is trying to use, \fBcurses\fP may substitute a
different video attribute for it.
-The \fBtermattrs\fR and \fBterm_attrs\fR functions
-return a logical \fBOR\fR of all video attributes supported by the
-terminal using \fIA_\fR and \fIWA_\fR constants respectively.
-This information is useful when a \fBcurses\fR program
+The \fBtermattrs\fP and \fBterm_attrs\fP functions
+return a logical \fBOR\fP of all video attributes supported by the
+terminal using \fBA_\fP and \fBWA_\fP constants respectively.
+This information is useful when a \fBcurses\fP program
needs complete control over the appearance of the screen.
.SS termname
-.PP
-The \fBtermname\fR routine returns the terminal name used by \fBsetupterm\fR.
+The \fBtermname\fP routine returns the terminal name used by \fBsetupterm\fP.
.SH RETURN VALUE
-\fBlongname\fR and \fBtermname\fR return \fBNULL\fR on error.
+\fBlongname\fP and \fBtermname\fP return \fBNULL\fP on error.
.PP
-Routines that return an integer return \fBERR\fR upon failure and \fBOK\fR
-(SVr4 only specifies "an integer value other than \fBERR\fR") upon successful
+Routines that return an integer return \fBERR\fP upon failure and \fBOK\fP
+(SVr4 only specifies "an integer value other than \fBERR\fP") upon successful
completion.
.SH NOTES
-Note that \fBtermattrs\fR may be a macro.
+Note that \fBtermattrs\fP may be a macro.
.SH PORTABILITY
-The XSI Curses standard, Issue 4 describes these functions.
+X/Open Curses, Issue 4 describes these functions.
It changes the
-return type of \fBtermattrs\fR to the new type \fBattr_t\fR.
-Most versions of curses truncate the result returned by \fBtermname\fR to
+return type of \fBtermattrs\fP to the new type \fBattr_t\fP.
+Most versions of curses truncate the result returned by \fBtermname\fP to
14 characters.
.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_initscr\fR(3X), \fBcurs_outopts\fR(3X)
+\fB\%curses\fP(3X),
+\fB\%curs_initscr\fP(3X),
+\fB\%curs_outopts\fP(3X)
diff --git a/man/curs_termcap.3x b/man/curs_termcap.3x
index 35a8b4442f60..6bd2a66a0b55 100644
--- a/man/curs_termcap.3x
+++ b/man/curs_termcap.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018-2020,2021 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2017,2018 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,312 +27,521 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_termcap.3x,v 1.48 2021/01/09 11:07:15 tom Exp $
-.TH curs_termcap 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: curs_termcap.3x,v 1.85 2024/04/20 19:13:12 tom Exp $
+.TH curs_termcap 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
-.na
-.hy 0
-.ds n 5
+.
.SH NAME
-\fBPC\fR,
-\fBUP\fR,
-\fBBC\fR,
-\fBospeed\fR,
-\fBtgetent\fR,
-\fBtgetflag\fR,
-\fBtgetnum\fR,
-\fBtgetstr\fR,
-\fBtgoto\fR,
-\fBtputs\fR \- \fBcurses\fR emulation of termcap
-.ad
-.hy
+\fB\%PC\fP,
+\fB\%UP\fP,
+\fB\%BC\fP,
+\fB\%ospeed\fP,
+\fB\%tgetent\fP,
+\fB\%tgetflag\fP,
+\fB\%tgetnum\fP,
+\fB\%tgetstr\fP,
+\fB\%tgoto\fP,
+\fB\%tputs\fP \-
+\fIcurses\fR emulation of \fItermcap\fR
.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.br
-\fB#include <term.h>\fR
-.sp
-\fBextern char PC;\fR
-.br
-\fBextern char * UP;\fR
-.br
-\fBextern char * BC;\fR
-.br
-\fBextern @NCURSES_OSPEED@ ospeed;\fR
-.sp
-\fBint tgetent(char *\fP\fIbp\fP\fB, const char *\fP\fIname\fP\fB);\fR
-.br
-\fBint tgetflag(const char *\fP\fIid\fP\fB);\fR
-.br
-\fBint tgetnum(const char *\fP\fIid\fP\fB);\fR
-.br
-\fBchar *tgetstr(const char *\fP\fIid\fP\fB, char **\fP\fIarea\fP\fB);\fR
-.br
-\fBchar *tgoto(const char *\fP\fIcap\fP\fB, int \fP\fIcol\fP\fB, int \fP\fIrow\fP\fB);\fR
-.br
-\fBint tputs(const char *\fP\fIstr\fP\fB, int \fP\fIaffcnt\fP\fB, int (*\fP\fIputc\fP\fB)(int));\fR
-.br
-.SH DESCRIPTION
-These routines are included as a conversion aid for programs that use
-the \fItermcap\fR library.
-Their parameters are the same, but the
-routines are emulated using the \fIterminfo\fR database.
-Thus, they
-can only be used to query the capabilities of entries for which a
-terminfo entry has been compiled.
-.SS INITIALIZATION
+.nf
+\fB#include <curses.h>
+\fB#include <term.h>
.PP
-The \fBtgetent\fR routine loads the entry for \fIname\fR.
-It returns:
+\fBchar PC;
+\fBchar * UP;
+\fBchar * BC;
+\fB@NCURSES_OSPEED@ ospeed;
+.PP
+\fBint tgetent(char *\fIbp\fP, const char *\fIname\fP);
+\fBint tgetflag(const char *\fIid\fP);
+\fBint tgetnum(const char *\fIid\fP);
+\fBchar *tgetstr(const char *\fIid\fP, char **\fIarea\fP);
+\fBchar *tgoto(const char *\fIcap\fP, int \fIcol\fP, int \fIrow\fP);
+\fBint tputs(const char *\fIstr\fP, int \fIaffcnt\fP, int (*\fIputc\fP)(int));
+.fi
+.SH DESCRIPTION
+.I \%ncurses
+provides the foregoing variables and functions as a compatibility layer
+for programs that use the \fItermcap\fP library.
+The API is the same,
+but behavior is emulated using the \fI\%term\%info\fP database.
+Thus,
+it can be used only to query the capabilities of terminal database
+entries for which a \fI\%term\%info\fP entry has been compiled.
+.SS Initialization
+\fB\%tgetent\fP loads the terminal database entry for \fIname\fP;
+see \fBterm\fP(7).
+This must be done before calling any of the other functions.
+It returns
.RS 3
-.TP 3
+.TP 5 \" "-1" + 2n + adjust for PDF
1
on success,
-.TP 3
+.TP
0
if there is no such entry
-(or that it is a generic type, having too little information for curses
-applications to run), and
-.TP 3
+(or if the matching entry describes a generic terminal,
+having too little information for
+.I curses
+applications to run),
+and
+.TP
\-1
-if the terminfo database could not be found.
+if the \fI\%term\%info\fP database could not be found.
.RE
.PP
-This differs from the \fItermcap\fP library in two ways:
+This implementation differs from those of historical \fItermcap\fP
+libraries.
.RS 3
.bP
-The emulation ignores the buffer pointer \fIbp\fR.
-The \fItermcap\fP library would store a copy of the terminal
+.I \%ncurses
+ignores the buffer pointer \fIbp\fP,
+as do other \fItermcap\fP implementations conforming to portions of
+X/Open Curses now withdrawn.
+The BSD \fItermcap\fP library would store a copy of the terminal type
description in the area referenced by this pointer.
-However, ncurses stores its terminal descriptions in compiled
-binary form, which is not the same thing.
+\fI\%term\%info\fP stores terminal type descriptions in compiled form,
+which is not the same thing.
.bP
-There is a difference in return codes.
-The \fItermcap\fP library does not check if the terminal
-description is marked with the \fIgeneric\fP capability,
-or if the terminal description has cursor-addressing.
+The meanings of the return values differ.
+The BSD \fItermcap\fP library does not check whether the terminal type
+description includes the
+.B \%generic
+.RB ( gn )
+capability,
+nor whether the terminal type description supports an addressable
+cursor,
+a property essential for any \fIcurses\fP implementation to operate.
.RE
-.SS CAPABILITY VALUES
-.PP
-The \fBtgetflag\fR routine gets the boolean entry for \fIid\fR,
+.SS "Retrieving Capability Values"
+\fB\%tgetflag\fP reports the Boolean entry for \fIid\fP,
or zero if it is not available.
.PP
-The \fBtgetnum\fR routine gets the numeric entry for \fIid\fR,
+\fB\%tgetnum\fP obtains the numeric entry for \fIid\fP,
or \-1 if it is not available.
.PP
-The \fBtgetstr\fR routine returns the string entry for \fIid\fR,
-or zero if it is not available.
-Use \fBtputs\fR to output the returned string.
-The \fIarea\fP parameter is used as follows:
+\fB\%tgetstr\fP returns the string entry for \fIid\fP,
+or
+.B NULL
+if it is not available.
+Use \fB\%tputs\fP to output the string returned.
+The
+.I area
+parameter is used as follows.
.RS 3
.bP
It is assumed to be the address of a pointer to a buffer managed by the
calling application.
.bP
-However, ncurses checks to ensure that \fBarea\fP is not NULL,
-and also that the resulting buffer pointer is not NULL.
-If either check fails, the \fIarea\fP parameter is ignored.
+However,
+\fI\%ncurses\fP checks to ensure that
+.I area
+is not
+.BR NULL ,
+and also that the resulting buffer pointer is not
+.BR NULL .
+If either check fails,
+.I area
+is ignored.
.bP
-If the checks succeed, ncurses also copies the return value to
-the buffer pointed to by \fIarea\fR,
-and the \fIarea\fR value will be updated to point past the null ending
-this value.
+If the checks succeed,
+\fI\%ncurses\fP also copies the return value to the buffer pointed to by
+\fIarea\fP,
+and the library updates
+.I area
+to point past the null character terminating this value.
.bP
-The return value itself is an address in the terminal description which
-is loaded into memory.
+The return value itself is an address in the terminal type description
+loaded into memory.
.RE
-.PP
-Only the first two characters of the \fBid\fR parameter of
-\fBtgetflag\fR,
-\fBtgetnum\fR and
-\fBtgetstr\fR are compared in lookups.
-.SS FORMATTING CAPABILITIES
-.PP
-The \fBtgoto\fR routine expands the given capability using the parameters.
+.SS "Applying String Capabilities"
+String capabilities can be parameterized;
+see subsection \*(``Parameterized Strings\*('' in \fB\%terminfo\fP(5).
+\fB\%tgoto\fP applies its second and third arguments to the parametric
+placeholders in the capability stored in the first argument.
.bP
-Because the capability may have padding characters,
-the output of \fBtgoto\fP should be passed to \fBtputs\fR
-rather than some other output function such as \fBprintf\fP.
+The capability may contain padding specifications;
+see subsection \*(``Delays and Padding\*('' of \fB\%terminfo\fP(5).
+The output of \fB\%tgoto\fP should thus be passed to \fB\%tputs\fP
+rather than some other output function such as \fI\%printf\fP(3).
.bP
-While \fBtgoto\fP is assumed to be used for the two-parameter
+While \fB\%tgoto\fP is assumed to be used for the two-parameter
cursor positioning capability,
-termcap applications also use it for single-parameter capabilities.
+\fItermcap\fP applications also use it for single-parameter
+capabilities.
.IP
-Doing this shows a quirk in \fBtgoto\fP: most hardware
-terminals use cursor addressing with \fIrow\fP first,
-but the original developers of the termcap interface chose to
-put the \fIcolumn\fP parameter first.
-The \fBtgoto\fP function swaps the order of parameters.
-It does this also for calls requiring only a single parameter.
-In that case, the first parameter is merely a placeholder.
+Doing so reveals a quirk in \fB\%tgoto\fP:
+most hardware terminals use cursor addressing with \fIrow\fP first,
+but the original developers of the \fItermcap\fP interface chose to
+put the \fIcol\fP (column) parameter first.
+The \fB\%tgoto\fP function swaps the order of its parameters.
+It does this even for calls requiring only a single parameter.
+In that case,
+the first parameter is merely a placeholder.
.bP
-Normally the ncurses library is compiled with terminfo support.
-In that case, \fBtgoto\fP uses \fBtparm\fP(3X) (a more capable formatter).
+Normally the \fI\%ncurses\fP library is compiled without
+full \fI\%termcap\fP support.
+In that case,
+\fB\%tgoto\fP uses an internal version of \fB\%tparm\fP(3X)
+(a more capable function).
.IP
-However, \fBtparm\fP is not a \fItermcap\fP feature,
-and portable \fItermcap\fP applications should not rely upon its availability.
-.PP
-The \fBtputs\fR routine is described on the \fBcurs_terminfo\fR(3X) manual
-page.
-It can retrieve capabilities by either termcap or terminfo name.
-.SS GLOBAL VARIABLES
+Because it uses \fB\%tparm\fP internally,
+\fB\%tgoto\fP is able to use some \fI\%term\%info\fP features,
+but not all.
+In particular,
+it allows only numeric parameters;
+\fB\%tparm\fP supports string parameters.
+.IP
+However,
+\fB\%tparm\fP is not a \fItermcap\fP feature,
+and portable \fItermcap\fP applications should not rely upon its
+availability.
.PP
+\fB\%tputs\fP is described in \fB\%curs_terminfo\fP(3X).
+It can retrieve capabilities by either \fItermcap\fP or
+\fI\%term\%info\fP code.
+.SS "Global Variables"
The variables
-\fBPC\fR,
-\fBUP\fR and
-\fBBC\fR
-are set by \fBtgetent\fR to the terminfo entry's data for
-\fBpad_char\fR,
-\fBcursor_up\fR and
-\fBbackspace_if_not_bs\fR,
+\fBPC\fP,
+\fBUP\fP and
+\fBBC\fP
+are set by \fB\%tgetent\fP to the \fI\%term\%info\fP entry's data for
+\fB\%pad_char\fP,
+\fB\%cursor_up\fP and
+\fB\%backspace_if_not_bs\fP,
respectively.
-\fBUP\fR is not used by ncurses.
-\fBPC\fR is used in the \fBtdelay_output\fR function.
-\fBBC\fR is used in the \fBtgoto\fR emulation.
-The variable \fBospeed\fR is set by ncurses in a system-specific coding
-to reflect the terminal speed.
-.
-.SH RETURN VALUE
-Except where explicitly noted,
-routines that return an integer return \fBERR\fR upon failure and \fBOK\fR
-(SVr4 only specifies "an integer value other than \fBERR\fR") upon successful
-completion.
+\fBUP\fP is not used by \fI\%ncurses\fP.
+\fBPC\fP is used by \fB\%delay_output\fP(3X).
+\fBBC\fP is used by \fB\%tgoto\fP emulation.
+The variable \fB\%ospeed\fP is set by \fI\%ncurses\fP using a
+system-specific encoding to indicate the terminal's data rate.
+.SS "Releasing Memory"
+The \fItermcap\fP functions provide no means of freeing memory,
+because legacy \fItermcap\fP implementations used only the buffer
+areas provided by the caller via \fB\%tgetent\fP and \fB\%tgetstr\fP.
+Those buffers are unused in \fI\%term\%info\fP.
.PP
-Routines that return pointers return \fBNULL\fR on error.
-.SH BUGS
-If you call \fBtgetstr\fR to fetch \fBca\fR or any other parameterized string,
-be aware that it will be returned in terminfo notation, not the older and
-not-quite-compatible termcap notation.
-This will not cause problems if all
-you do with it is call \fBtgoto\fR or \fBtparm\fR, which both expand
-terminfo-style strings as terminfo.
-(The \fBtgoto\fR function, if configured to support termcap, will check
-if the string is indeed terminfo-style by looking for "%p" parameters or
-"$<..>" delays, and invoke a termcap-style parser if the string does not
-appear to be terminfo).
+By contrast,
+\fI\%term\%info\fP allocates memory.
+It uses \fB\%setupterm\fP(3X) to obtain the data used by \fB\%tgetent\fP
+and the functions that retrieve capability values.
+One could use
+.RS
+.EX
+del_curterm(cur_term);
+.EE
+.RE
+to free this memory,
+but there is an additional complication with \fI\%ncurses\fP.
+It uses a fixed-size pool of storage locations,
+one per value of the terminal name parameter given to \fB\%tgetent\fP.
+The \fIscreen\fP(1) program relies upon this arrangement to improve its
+performance.
.PP
-Because terminfo conventions for representing padding in string capabilities
-differ from termcap's, \fBtputs("50");\fR will put out a literal \*(``50\*('' rather
-than busy-waiting for 50 milliseconds.
-Cope with it.
+An application that uses only the \fItermcap\fP functions,
+not the higher level
+.I \%curses
+API,
+could release the memory using \fB\%del_curterm\fP(3X),
+because the pool is freed using other functions;
+see \fB\%curs_memleaks\fP(3X).
+.SH "RETURN VALUE"
+The return values of
+\fB\%tgetent\fP,
+\fB\%tgetflag\fP,
+\fB\%tgetname\fP,
+and
+\fB\%tgetstr\fP
+are documented above.
.PP
-Note that termcap has nothing analogous to terminfo's \fBsgr\fR string.
-One consequence of this is that termcap applications assume \fRme\fR
-(terminfo \fBsgr0\fR) does not reset the alternate character set.
-This implementation checks for, and modifies the data shown to the
-termcap interface to accommodate termcap's limitation in this respect.
+\fB\%tgoto\fP returns
+.B NULL
+on error.
+Error conditions include:
+.bP
+uninitialized state
+(\fB\%tgetent\fP was not called successfully),
+.bP
+.I cap
+being a null pointer,
+.bP
+.I cap
+referring to a canceled capability,
+.bP
+.I cap
+being a capability with string-valued parameters
+(a \fI\%term\%info\fP-only feature),
+and
+.bP
+.I cap
+being a capability with more than two parameters.
+.PP
+See \fB\%curs_terminfo\fP(3X) regarding \fB\%tputs\fP.
+.SH NOTES
+\fI\%ncurses\fP compares only the first two characters of the \fIid\fP
+parameter of
+\fB\%tgetflag\fP,
+\fB\%tgetnum\fP,
+and
+\fB\%tgetstr\fP to the capability names in the database.
.SH PORTABILITY
+These functions are no longer standardized
+(and the variables never were);
+\fI\%ncurses\fP provides them to support legacy applications.
+They should not be used in new programs.
.SS Standards
-These functions are provided for supporting legacy applications,
-and should not be used in new programs:
.bP
-The XSI Curses standard, Issue 4 describes these functions.
-However, they
-are marked TO BE WITHDRAWN and may be removed in future versions.
+X/Open Curses, Issue 4, Version 2 (1996),
+describes these functions,
+marking them as
+\*(``TO BE WITHDRAWN\*(''.
.bP
-X/Open Curses, Issue 5 (December 2007) marked the termcap interface
-(along with \fBvwprintw\fP and \fBvwscanw\fP) as withdrawn.
+X/Open Curses, Issue 7 (2009) marks the \fItermcap\fP interface
+(along with \fB\%vwprintw\fP and \fB\%vwscanw\fP) as withdrawn.
.PP
-Neither the XSI Curses standard nor the SVr4 man pages documented the return
-values of \fBtgetent\fR correctly, though all three were in fact returned ever
-since SVr1.
-In particular, an omission in the XSI Curses documentation has been
-misinterpreted to mean that \fBtgetent\fR returns \fBOK\fR or \fBERR\fR.
+Neither X/Open Curses nor the SVr4 man pages documented the return
+values of \fB\%tgetent\fP correctly,
+though all three shown here were in fact returned ever since SVr1.
+In particular,
+an omission in the X/Open Curses specification has been misinterpreted
+to mean that \fB\%tgetent\fP returns \fBOK\fP or \fBERR\fP.
Because the purpose of these functions is to provide compatibility with
-the \fItermcap\fR library, that is a defect in XCurses, Issue 4, Version 2
-rather than in ncurses.
-.SS Compatibility with BSD Termcap
-.PP
-External variables are provided for support of certain termcap applications.
-However, termcap applications' use of those variables is poorly documented,
-e.g., not distinguishing between input and output.
-In particular, some applications are reported to declare and/or
-modify \fBospeed\fR.
+the \fItermcap\fP library,
+that is a defect in X/Open Curses, Issue 4, Version 2
+rather than in \fI\%ncurses\fP.
+.SS "Compatibility with BSD \fItermcap\fP"
+Externally visible variables are provided for support of certain
+\fItermcap\fP applications.
+However,
+their correct usage is poorly documented;
+for example,
+it is unclear when reading and writing them is meaningful.
+In particular,
+some applications are reported to declare and/or modify \fB\%ospeed\fP.
.PP
-The comment that only the first two characters of the \fBid\fR parameter
-are used escapes many application developers.
-The original BSD 4.2 termcap library (and historical relics thereof)
-did not require a trailing null NUL on the parameter name passed
-to \fBtgetstr\fP, \fBtgetnum\fP and \fBtgetflag\fP.
-Some applications assume that the termcap interface does not require
-the trailing NUL for the parameter name.
-Taking into account these issues:
+The constraint that only the first two characters of the \fIid\fP
+parameter are used escapes many application developers.
+The BSD \fItermcap\fP library did not require a trailing null character
+on the capability identifier passed to \fB\%tgetstr\fP,
+\fB\%tgetnum\fP,
+and
+\fB\%tgetflag\fP.
+.\" See <https://minnie.tuhs.org/cgi-bin/utree.pl?file=2BSD/src/\
+.\" termlib/termcap.c>.
+Some applications thus assume that the \fItermcap\fP interface does not
+require the trailing null character for the capability identifier.
.bP
-As a special case,
-\fBtgetflag\fP matched against a single-character identifier
-provided that was at the end of the terminal description.
-You should not rely upon this behavior in portable programs.
-This implementation disallows matches against single-character capability names.
-.bP
-This implementation disallows matches by the termcap interface against
-extended capability names which are longer than two characters.
+.I \%ncurses
+disallows matches by the \fItermcap\fP interface against extended
+capability names that are longer than two characters;
+see \fB\%user_caps\fP(5).
.PP
-The BSD termcap function \fBtgetent\fP returns the text of a termcap
-entry in the buffer passed as an argument.
-This library (like other terminfo implementations) does not store
-terminal descriptions as text.
+The BSD \fItermcap\fP function \fB\%tgetent\fP returns the text of a
+\fItermcap\fP entry in the buffer passed as an argument.
+This library,
+like other \fI\%term\%info\fP implementations,
+does not store terminal type descriptions as text.
It sets the buffer contents to a null-terminated string.
-.SS Other Compatibility
-This library includes a termcap.h header,
-for compatibility with other implementations.
-But the header is rarely used because the other implementations
-are not strictly compatible.
+.SS "Header File"
+This library includes a \fI\%termcap.h\fP header for compatibility with
+other implementations,
+but the header is rarely used because the other implementations are not
+strictly compatible.
+.SH HISTORY
+.\" See https://www.oreilly.com/openbook/opensources/book/kirkmck.html
+.\" for much BSD release history.
+Bill Joy originated a forerunner of \fItermcap\fP called
+\*(``ttycap\*('',
+dated September 1977,
+and released in 1BSD
+(March 1978).
+.\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=1BSD/s7/ttycap.c
+.\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=1BSD/man7/ttycap.7
+It used many of the same function names as the later \fItermcap\fP,
+such as
+\fB\%tgetent\fP,
+\fB\%tgetflag\fP,
+\fB\%tgetnum\fP,
+and
+\fB\%tgetstr\fP.
+.PP
+A clear descendant,
+the \fItermlib\fP library,
+.\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=2BSD/src/termlib/
+followed in 2BSD
+(May 1979),
+adding \fB\%tgoto\fP and \fB\%tputs\fP.
+The former applied at that time only to cursor positioning capabilities,
+.\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=2BSD/bin/etc/termcap
+thus the overly specific name.
+Little changed in 3BSD
+(late 1979)
+except the addition of test programs and a \fI\%termlib\fP man page,
+which documented the API shown in section \*(``SYNOPSIS\*('' above.
+.\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=3BSD/usr/src/lib/\
+.\" libtermlib/
+.\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=3BSD/usr/man/man3/\
+.\" termlib.3
.PP
-The original BSD termcap (through 4.3BSD) had no header file which
-gave function prototypes, because that was a feature of ANSI C.
-BSD termcap was written several years before C was standardized.
-However, there were two different termcap.h header files in the BSD
-sources:
+4BSD
+(November 1980)
+renamed \fItermlib\fP to \fItermcap\fP
+.\" ...except in the source tree...
+.\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=4BSD/usr/src/lib/\
+.\" libtermlib/makefile
+and added another test program.
+The library remained much the same though 4.3BSD
+(June 1986).
+4.4BSD-Lite
+(June 1994)
+refactored it,
+.\" Observe the `tncktc()`, `tnamatch()`, `tskip()`, and `tdecode()`
+.\" entry points disappearing from termcap.c.
+leaving the API unchanged.
+.PP
+Function prototypes were a feature of ANSI C (1989).
+The library long antedated the standard and thus provided no header file
+declaring them.
+Nevertheless,
+the BSD sources included two different \fI\%termcap.h\fP header files
+over time.
.bP
-One was used internally by the \fIjove\fP editor in 2BSD through 4.4BSD.
-It defined global symbols for the termcap variables which it used.
+One was used internally by \fBjove\fP(1) from 4.3BSD onward.
+.\" 2BSD became a branch retaining support for non-virtual memory
+.\" systems (such as the PDP-11) whereas most BSD development focused on
+.\" the VAX and other VM-enabled systems starting with 3BSD.
+.\"
+.\" This man page previously located a termcap.h in 2BSD, but that may
+.\" be confusion arising from its backport to 2.9BSD (and still present
+.\" in surviving sources for 2.11BSD, the "end of the line" for that
+.\" branch's development).
+.\"
+.\" Observe the copyright notice in
+.\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=4.3BSD/usr/contrib/\
+.\" jove/Makefile
+.\" --much too late for 2BSD (1979).
+It declared global symbols for the \fItermcap\fP variables that it used.
.bP
-The other appeared in 4.4BSD Lite Release 2 (mid-1993)
-as part of \fIlibedit\fP (also known as the \fIeditline\fP library).
-The CSRG source history shows that this was added in mid-1992.
-The \fIlibedit\fP header file was used internally,
-as a convenience for compiling the \fIeditline\fP library.
-It declared function prototypes, but no global variables.
-.PP
-The header file from \fIlibedit\fP was added to NetBSD's termcap
-library in mid-1994.
+The other appeared in 4.4BSD-Lite Release 2
+(June 1995)
+as part of \fIlibedit\fP
+(also known as the \fI\%edit\%line\fP library).
+CSRG source history shows that this was added in mid-1992.
+The \fIlibedit\fP header file was used internally as a convenience for
+compiling the \fI\%edit\%line\fP library.
+It declared function prototypes,
+but no global variables.
+This header file was added to NetBSD's \fItermcap\fP library in
+mid-1994.
.PP
-Meanwhile, GNU termcap was under development, starting in 1990.
-The first release (termcap 1.0) in 1991 included a termcap.h header.
-The second release (termcap 1.1) in September 1992 modified the
-header to use \fBconst\fP for the function prototypes in the header
-where one would expect the parameters to be read-only.
-This was a difference versus the original BSD termcap.
-The prototype for \fBtputs\fP also differed,
-but in that instance, it was \fIlibedit\fP which differed from BSD termcap.
+Meanwhile,
+GNU \fItermcap\fP began development in 1990.
+Its first release (1.0) in 1991 included a \fI\%termcap.h\fP header.
+Its second (1.1) in September 1992 modified the header to use
+\fIconst\fP for the function prototypes in the header where one would
+expect the parameters to be read-only.
+BSD \fItermcap\fP did not.
+The prototype for \fB\%tputs\fP also differed,
+but in that instance,
+it was \fIlibedit\fP that differed from BSD \fItermcap\fP.
.PP
-A copy of GNU termcap 1.3 was bundled with \fIbash\fP in mid-1993,
-to support the \fIreadline\fP library.
+GNU \fItermcap\fP 1.3 was bundled with \fIbash\fP(1) in mid-1993 to
+support the \fI\%readline\fP(3) library.
.PP
-A termcap.h file was provided in ncurses 1.8.1 (November 1993).
-That reflected influence by \fIemacs\fP (rather than \fIjove\fP)
-and GNU termcap:
+\fI\%ncurses\fP 1.8.1
+(November 1993)
+provided a \fI\%termcap.h\fP file.
+It reflected influence from GNU \fItermcap\fP and \fBemacs\fP(1)
+(rather than \fBjove\fP(1)),
+providing the following interface:
.bP
-it provided declarations for a few global symbols used by \fIemacs\fP
+global symbols used by \fIemacs\fP,
.bP
-it provided function prototypes (using \fBconst\fP).
+\fIconst\fP-qualified function prototypes,
+and
.bP
-a prototype for \fBtparam\fP (a GNU termcap feature) was provided.
+a prototype for \fBtparam\fP,
+a GNU \fItermcap\fP feature.
+.PP
+Later
+(in mid-1996)
+the \fB\%tparam\fP function was removed from \fI\%ncurses\fP.
+Any two of the four implementations thus differ,
+and programs that intend to work with all \fItermcap\fP library
+interfaces must account for that fact.
+.SH BUGS
+If you call \fB\%tgetstr\fP to fetch
+.B \%column_address
+.RB ( ch )
+or any other parameterized string capability,
+be aware that it is returned in \fI\%term\%info\fP notation,
+not the older and not-quite-compatible \fItermcap\fP notation.
+This does not cause problems if all you do with it is call \fB\%tgoto\fP
+or \fB\%tparm\fP,
+which both parametrically expand \fI\%term\%info\fP-style string
+capabilities as \fI\%term\%info\fP does.
+(If
+.I \%ncurses
+is configured to support \fItermcap,\fP
+\fB\%tgoto\fP checks whether the string is \fI\%term\%info\fP-style by
+looking for \*(``\fB%p\fP\*('' parameters or
+\*(``\fB<\fP.\|.\|.\fB>\fP\*('' delays,
+and invokes a \fItermcap\fP-style parser if the string appears not to
+use \fI\%term\%info\fP syntax.)
+.PP
+Because \fI\%term\%info\fP's syntax for padding in string capabilities
+differs from \fItermcap\fP's,
+users can be surprised.
+.IP \(bu 4
+\fB\%tputs("50")\fP in a \fI\%term\%info\fP system transmits
+\*(``50\*('' rather than busy-waiting for 50 milliseconds.
+.IP \(bu 4
+However,
+if \fI\%ncurses\fP is configured to support \fItermcap\fP,
+it may also have been configured to support BSD-style padding.
+.IP
+In that case,
+\fB\%tputs\fP inspects strings passed to it,
+looking for digits at the beginning of the string.
+.IP
+\fB\%tputs("50")\fP in a \fItermcap\fP system may busy-wait for 50
+milliseconds rather than transmitting \*(``50\*(''.
+.PP
+\fItermcap\fP has nothing analogous to \fI\%term\%info\fP's
+.B \%set_attributes
+.RB ( sgr )
+capability.
+One consequence is that \fItermcap\fP applications assume that
+.RB \*(`` me \*(''
+(equivalent to \fI\%term\%info\fP's
+.B \%exit_attribute_mode
+.RB ( sgr0 )
+capability)
+does not reset the alternate character set.
+\fI\%ncurses\fP checks for,
+and modifies the data shared with,
+the \fItermcap\fP interface to accommodate the latter's limitation in
+this respect.
+.SH "SEE ALSO"
+\fB\%curses\fP(3X),
+\fB\%curs_terminfo\fP(3X),
+\fB\%putc\fP(3),
+\fB\%term_variables\fP(3X),
+\fB\%terminfo\fP(5)
.PP
-Later (in mid-1996) the \fBtparam\fP function was removed from ncurses.
-As a result, there are differences between any of the four implementations,
-which must be taken into account by programs which can work with all
-termcap library interfaces.
-.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBputc\fR(3),
-\fBterm_variables\fR(3X),
-\fBterminfo\fR(\*n).
-.sp
-https://invisible-island.net/ncurses/tctest.html
+https://invisible\-island.net/ncurses/tctest.html
diff --git a/man/curs_terminfo.3x b/man/curs_terminfo.3x
index 9120a04b9a98..10d1fa78b6b4 100644
--- a/man/curs_terminfo.3x
+++ b/man/curs_terminfo.3x
@@ -1,5 +1,6 @@
+'\" t
.\"***************************************************************************
-.\" Copyright 2018-2020,2021 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2016,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,641 +28,1115 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_terminfo.3x,v 1.72 2021/01/02 23:50:04 tom Exp $
-.TH curs_terminfo 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: curs_terminfo.3x,v 1.136 2024/04/14 00:14:40 tom Exp $
+.TH curs_terminfo 3X 2024-04-13 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
-.ds n 5
-.na
-.hy 0
+.
.SH NAME
-\fBdel_curterm\fR,
-\fBmvcur\fR,
-\fBputp\fR,
-\fBrestartterm\fR,
-\fBset_curterm\fR,
-\fBsetupterm\fR,
-\fBtigetflag\fR,
-\fBtigetnum\fR,
-\fBtigetstr\fR,
-\fBtiparm\fR,
-\fBtparm\fR,
-\fBtputs\fR,
-\fBvid_attr\fR,
-\fBvid_puts\fR,
-\fBvidattr\fR,
-\fBvidputs\fR \- \fBcurses\fR interfaces to terminfo database
-.ad
-.hy
+\fB\%del_curterm\fP,
+\fB\%mvcur\fP,
+\fB\%putp\fP,
+\fB\%restartterm\fP,
+\fB\%set_curterm\fP,
+\fB\%setupterm\fP,
+\fB\%tigetflag\fP,
+\fB\%tigetnum\fP,
+\fB\%tigetstr\fP,
+\fB\%tiparm\fP,
+\fB\%tiparm_s\fP,
+\fB\%tiscan_s\fP,
+\fB\%tparm\fP,
+\fB\%tputs\fP,
+\fB\%vid_attr\fP,
+\fB\%vid_puts\fP,
+\fB\%vidattr\fP,
+\fB\%vidputs\fP \-
+\fIcurses\fR interfaces to \fI\%term\%info\fR database
.SH SYNOPSIS
.nf
-\fB#include <curses.h>\fR
-\fB#include <term.h>\fR
-.sp
-\fBTERMINAL *cur_term;\fR
-.sp
-\fBconst char * const boolnames[];\fP
-\fBconst char * const boolcodes[];\fP
-\fBconst char * const boolfnames[];\fP
-\fBconst char * const numnames[];\fP
-\fBconst char * const numcodes[];\fP
-\fBconst char * const numfnames[];\fP
-\fBconst char * const strnames[];\fP
-\fBconst char * const strcodes[];\fP
-\fBconst char * const strfnames[];\fP
-.sp
-\fBint setupterm(const char *\fR\fIterm\fR\fB, int \fR\fIfiledes\fR\fB, int *\fR\fIerrret\fR\fB);\fR
-.br
-\fBTERMINAL *set_curterm(TERMINAL *\fR\fInterm\fR\fB);\fR
-.br
-\fBint del_curterm(TERMINAL *\fR\fIoterm\fR\fB);\fR
-.br
-\fBint restartterm(const char *\fR\fIterm\fR\fB, int \fR\fIfiledes\fR\fB, int *\fR\fIerrret\fR\fB);\fR
-.sp
-\fBchar *tparm(const char *\fR\fIstr\fR\fB, ...);\fR
-.br
-\fBint tputs(const char *\fR\fIstr\fR\fB, int \fR\fIaffcnt\fR\fB, int (*\fR\fIputc\fR\fB)(int));\fR
-.br
-\fBint putp(const char *\fR\fIstr\fR\fB);\fR
-.sp
-\fBint vidputs(chtype \fR\fIattrs\fR\fB, int (*\fR\fIputc\fR\fB)(int));\fR
-.br
-\fBint vidattr(chtype \fR\fIattrs\fR\fB);\fR
-.br
-\fBint vid_puts(attr_t \fR\fIattrs\fR\fB, short \fR\fIpair\fR\fB, void *\fR\fIopts\fR\fB, int (*\fR\fIputc\fR\fB)(int));\fR
-.br
-\fBint vid_attr(attr_t \fR\fIattrs\fR\fB, short \fR\fIpair\fR\fB, void *\fR\fIopts\fR\fB);\fR
-.sp
-\fBint mvcur(int \fR\fIoldrow\fR\fB, int \fR\fIoldcol\fR\fB, int \fR\fInewrow\fR, int \fR\fInewcol\fR\fB);\fR
-.sp
-\fBint tigetflag(const char *\fR\fIcapname\fR\fB);\fR
-.br
-\fBint tigetnum(const char *\fR\fIcapname\fR\fB);\fR
-.br
-\fBchar *tigetstr(const char *\fR\fIcapname\fR\fB);\fR
-.sp
-\fBchar *tiparm(const char *\fR\fIstr\fR\fB, ...);\fR
-.br
+\fB#include <curses.h>
+\fB#include <term.h>
+.PP
+\fBTERMINAL *cur_term;
+.PP
+\fBconst char * const boolnames[];
+\fBconst char * const boolcodes[];
+\fBconst char * const boolfnames[];
+\fBconst char * const numnames[];
+\fBconst char * const numcodes[];
+\fBconst char * const numfnames[];
+\fBconst char * const strnames[];
+\fBconst char * const strcodes[];
+\fBconst char * const strfnames[];
+.PP
+\fBint setupterm(const char *\fIterm\fP, int \fIfiledes\fP, int *\fIerrret\fP);
+\fBTERMINAL *set_curterm(TERMINAL *\fInterm\fP);
+\fBint del_curterm(TERMINAL *\fIoterm\fP);
+\fBint restartterm(const char *\fIterm\fP, int \fIfiledes\fP, int *\fIerrret\fP);
+.PP
+\fBchar *tparm(const char *\fIstr\fP, \fR.\|.\|.\fP);
+ \fI/* or */
+\fBchar *tparm(const char *\fIstr\fP, long \fIp1\fP \fR.\|.\|.\fP \fBlong\fP \fIp9\fP);
+.PP
+\fBint tputs(const char *\fIstr\fP, int \fIaffcnt\fP, int (*\fIputc\fP)(int));
+\fBint putp(const char *\fIstr\fP);
+.PP
+\fBint vidputs(chtype \fIattrs\fP, int (*\fIputc\fP)(int));
+\fBint vidattr(chtype \fIattrs\fP);
+\fBint vid_puts(attr_t \fIattrs\fP, short \fIpair\fP, void *\fIopts\fP, int (*\fIputc\fP)(int));
+\fBint vid_attr(attr_t \fIattrs\fP, short \fIpair\fP, void *\fIopts\fP);
+.PP
+\fBint mvcur(int \fIoldrow\fP, int \fIoldcol\fP, int \fInewrow\fP, int \fInewcol\fP);
+.PP
+\fBint tigetflag(const char *\fIcap-code\fP);
+\fBint tigetnum(const char *\fIcap-code\fP);
+\fBchar *tigetstr(const char *\fIcap-code\fP);
+.PP
+\fBchar *tiparm(const char *\fIstr\fP, \fR.\|.\|.\fP);
+.PP
+\fI/* extensions */
+\fBchar *tiparm_s(int \fIexpected\fP, int \fImask\fP, const char *\fIstr\fP, ...);
+\fBint tiscan_s(int *\fIexpected\fP, int *\fImask\fP, const char *\fIstr\fP);
+.PP
+\fI/* deprecated */
+\fBint setterm(const char *\fIterm\fP);
.fi
.SH DESCRIPTION
-These low-level routines must be called by programs that have to deal
-directly with the \fBterminfo\fR database to handle certain terminal
-capabilities, such as programming function keys.
-For all other
-functionality, \fBcurses\fR routines are more suitable and their use is
-recommended.
+These low-level functions must be called by programs that deal directly
+with the
+.I \%term\%info
+database to handle certain terminal capabilities,
+such as programming function keys.
+For all other functionality,
+.I curses
+functions are more suitable and their use is recommended.
.PP
-None of these functions use (or are aware of) multibyte character strings
-such as UTF-8:
+None of these functions use
+(or are aware of)
+multibyte character strings such as UTF-8.
.bP
-capability names use the POSIX portable character set
+Capability names and codes use the POSIX portable character set.
.bP
-capability string values have no associated encoding;
+Capability string values have no associated encoding;
they are strings of 8-bit characters.
.SS Initialization
+Initially,
+\fB\%setupterm\fP should be called.
+The high-level
+.I curses
+functions \fB\%initscr\fP and \fB\%newterm\fP call \fB\%setupterm\fP to
+initialize the low-level set of terminal-dependent variables listed in
+\fB\%term_variables\fP(3X).
.PP
-Initially, \fBsetupterm\fR should be called.
-The high-level curses functions \fBinitscr\fR and
-\fBnewterm\fR call \fBsetupterm\fP to initialize the
-low-level set of terminal-dependent variables
-[listed in \fBterminfo\fR(\*n)].
-.PP
-Applications can use the
-terminal capabilities either directly (via header definitions),
+Applications can use the terminal capabilities either directly
+(via header definitions),
or by special functions.
-The header files \fBcurses.h\fR and \fBterm.h\fR should be included (in this
-order) to get the definitions for these strings, numbers, and flags.
+The header files
+.I \%curses.h
+and
+.I \%term.h
+should be included
+(in that order)
+to get the definitions for these strings,
+numbers,
+and flags.
.PP
-The \fBterminfo\fR variables
-\fBlines\fR and \fBcolumns\fR are initialized by \fBsetupterm\fR as
-follows:
+The
+.I \%term\%info
+variables
+.B \%lines
+and
+.B \%columns
+are initialized by \fB\%setupterm\fP as follows.
.bP
-If \fBuse_env(FALSE)\fR has been called, values for
-\fBlines\fR and \fBcolumns\fR specified in \fBterminfo\fR are used.
+If \fB\%use_env(FALSE)\fP has been called,
+values for
+.B \%lines
+and
+.B \%columns
+specified in
+.I \%term\%info
+are used.
.bP
-Otherwise, if the environment variables \fBLINES\fR and \fBCOLUMNS\fR
-exist, their values are used.
-If these environment variables do not
-exist and the program is running in a window, the current window size
+Otherwise,
+if the environment variables
+.I LINES
+and
+.I \%COLUMNS
+exist,
+their values are used.
+If these environment variables do not exist and the program is running
+in a window,
+the current window size
is used.
-Otherwise, if the environment variables do not exist, the
-values for \fBlines\fR and \fBcolumns\fR specified in the
-\fBterminfo\fR database are used.
-.PP
-Parameterized strings should be passed through \fBtparm\fR to instantiate them.
-All \fBterminfo\fR strings
-(including the output of \fBtparm\fR)
-should be printed
-with \fBtputs\fR or \fBputp\fR.
-Call \fBreset_shell_mode\fR to restore the
-tty modes before exiting [see \fBcurs_kernel\fR(3X)].
-.PP
-Programs which use
+Otherwise,
+if the environment variables do not exist,
+the values for
+.B \%lines
+and
+.B \%columns
+specified in the
+.I \%term\%info
+database are used.
+.PP
+Parameterized strings should be passed through \fB\%tparm\fP to
+instantiate them.
+All
+.I \%term\%info
+strings
+(including the output of \fB\%tparm\fP)
+should be sent to the terminal device with \fB\%tputs\fP or
+\fB\%putp\fP.
+Call \fB\%reset_shell_mode\fP to restore the terminal modes before
+exiting;
+see \fB\%curs_kernel\fP(3X).
+.PP
+Programs that use
cursor addressing should
.bP
-output \fBenter_ca_mode\fR upon startup and
+output \fB\%enter_ca_mode\fP upon startup and
.bP
-output \fBexit_ca_mode\fR before exiting.
+output \fB\%exit_ca_mode\fP before exiting.
.PP
-Programs which execute shell subprocesses should
+Programs that execute shell subprocesses should
.bP
-call \fBreset_shell_mode\fR and
-output \fBexit_ca_mode\fR before the shell
+call \fB\%reset_shell_mode\fP and
+output \fB\%exit_ca_mode\fP before the shell
is called and
.bP
-output \fBenter_ca_mode\fR and
-call \fBreset_prog_mode\fR after returning from the shell.
+output \fB\%enter_ca_mode\fP and
+call \fB\%reset_prog_mode\fP after returning from the shell.
.PP
-The \fBsetupterm\fR routine reads in the \fBterminfo\fR database,
-initializing the \fBterminfo\fR structures, but does not set up the
-output virtualization structures used by \fBcurses\fR.
-These are its parameters:
+\fB\%setupterm\fP reads in the
+.I \%term\%info
+database,
+initializing the
+.I \%term\%info
+structures,
+but does not set up the output virtualization structures used by
+.IR curses .
+Its parameters follow.
.RS 3
.TP 5
-\fIterm\fP
-is the terminal type, a character string.
-If \fIterm\fR is null, the environment variable \fBTERM\fR is used.
+.I term
+is the terminal type,
+a character string.
+If
+.I term
+is null,
+the environment variable
+.I TERM
+is read.
.TP 5
-\fIfiledes\fP
-is the file descriptor used for all output.
+.I filedes
+is the file descriptor used for getting and setting terminal I/O modes.
+.IP
+Higher-level applications use \fB\%newterm\fP(3X) to initialize the
+terminal,
+passing an output
+.I stream
+rather than a
+.IR descriptor .
+In
+.IR curses ,
+the two are the same because \fB\%newterm\fP calls \fB\%setupterm\fP,
+passing the file descriptor derived from its output stream parameter.
.TP 5
-\fIerrret\fP
+.I errret
points to an optional location where an error status can be returned to
the caller.
-If \fIerrret\fR is not null,
-then \fBsetupterm\fR returns \fBOK\fR or
-\fBERR\fR and stores a status value in the integer pointed to by
-\fIerrret\fR.
-A return value of \fBOK\fR combined with status of \fB1\fR in \fIerrret\fR
+If
+.I errret
+is not null,
+then \fB\%setupterm\fP returns
+.B OK
+or
+.B ERR
+and stores a status value in the integer pointed to by
+.IR errret .
+A return value of
+.B OK
+combined with status of
+.B 1
+in
+.I errret
is normal.
.IP
-If \fBERR\fR is returned, examine \fIerrret\fR:
+If
+.B ERR
+is returned,
+examine
+.I errret:
.RS
.TP 5
.B 1
-means that the terminal is hardcopy, cannot be used for curses applications.
+means that the terminal is hardcopy,
+and cannot be used for
+.I curses
+applications.
.IP
-\fBsetupterm\fP determines if the entry is a hardcopy type by
-checking the \fBhc\fP (\fBhardcopy\fP) capability.
+\fB\%setupterm\fP determines if the entry is a hardcopy type by
+checking the
+.B \%hardcopy
+.RB ( hc )
+capability.
.TP 5
.B 0
means that the terminal could not be found,
or that it is a generic type,
-having too little information for curses applications to run.
+having too little information for
+.I curses
+applications to run.
.IP
-\fBsetupterm\fP determines if the entry is a generic type by
-checking the \fBgn\fP (\fBgeneric\fP) capability.
+\fB\%setupterm\fP determines if the entry is a generic type by
+checking the
+.B \%generic_type
+.RB ( gn )
+capability.
.TP 5
.B \-1
-means that the \fBterminfo\fR database could not be found.
+means that the
+.I \%term\%info
+database could not be found.
.RE
.IP
-If \fIerrret\fR is
-null, \fBsetupterm\fR prints an error message upon finding an error
-and exits.
-Thus, the simplest call is:
-.sp
- \fBsetupterm((char *)0, 1, (int *)0);\fR,
-.sp
-which uses all the defaults and sends the output to \fBstdout\fR.
+If
+.I errret
+is null,
+\fB\%setupterm\fP reports an error message upon finding an error and
+exits.
+Thus,
+the simplest call is:
+.RS
+.IP
+.EX
+setupterm((char *)0, 1, (int *)0);
+.EE
.RE
-.\" ***************************************************************************
-.SS The Terminal State
-.PP
-The \fBsetupterm\fR routine stores its information about the terminal
-in a \fBTERMINAL\fP structure pointed to by the global variable \fBcur_term\fP.
+.IP
+which uses all the defaults and sends the output to
+.BR stdout .
+.RE
+.\" ********************************************************************
+.SS "The Terminal State"
+\fB\%setupterm\fP stores its information about the terminal in a
+.I \%TERMINAL
+structure pointed to by the global variable \fB\%cur_term\fP.
If it detects an error,
-or decides that the terminal is unsuitable (hardcopy or generic),
+or decides that the terminal is unsuitable
+(hardcopy or generic),
it discards this information,
making it not available to applications.
.PP
-If \fBsetupterm\fP is called repeatedly for the same terminal type,
+If \fB\%setupterm\fP is called repeatedly for the same terminal type,
it will reuse the information.
It maintains only one copy of a given terminal's capabilities in memory.
If it is called for different terminal types,
-\fBsetupterm\fP allocates new storage for each set of terminal capabilities.
-.PP
-The \fBset_curterm\fR routine sets \fBcur_term\fR to
-\fInterm\fR, and makes all of the \fBterminfo\fR boolean, numeric, and
-string variables use the values from \fInterm\fR.
-It returns the old value of \fBcur_term\fR.
-.PP
-The \fBdel_curterm\fR routine frees the space pointed to by
-\fIoterm\fR and makes it available for further use.
-If \fIoterm\fR is
-the same as \fBcur_term\fR, references to any of the \fBterminfo\fR
-boolean, numeric, and string variables thereafter may refer to invalid
-memory locations until another \fBsetupterm\fR has been called.
-.PP
-The \fBrestartterm\fR routine is similar to \fBsetupterm\fR and \fBinitscr\fR,
-except that it is called after restoring memory to a previous state (for
-example, when reloading a game saved as a core image dump).
-\fBrestartterm\fP assumes that the windows and the input and output options
-are the same as when memory was saved,
-but the terminal type and baud rate may be different.
-Accordingly, \fBrestartterm\fP saves various tty state bits,
-calls \fBsetupterm\fP, and then restores the bits.
-.\" ***************************************************************************
-.SS Formatting Output
+\fB\%setupterm\fP allocates new storage for each set of terminal
+capabilities.
.PP
-The \fBtparm\fR routine instantiates the string \fIstr\fR with
-parameters \fIpi\fR. A pointer is returned to the result of \fIstr\fR
+\fB\%set_curterm\fP sets \fB\%cur_term\fP to
+.IR \%nterm ,
+and makes all of the
+.I \%term\%info
+Boolean,
+numeric,
+and string variables use the values from
+.IR \%nterm .
+It returns the old value of \fB\%cur_term\fP.
+.PP
+\fB\%del_curterm\fP frees the space pointed to by
+.I \%oterm
+and makes it available for further use.
+If
+.I \%oterm
+is
+the same as \fB\%cur_term\fP,
+references to any of the
+.I \%term\%info
+Boolean,
+numeric,
+and string variables thereafter may refer to invalid memory locations
+until another \fB\%setupterm\fP has been called.
+.PP
+\fB\%restartterm\fP is similar to \fB\%setupterm\fP and \fB\%initscr\fP,
+except that it is called after restoring memory to a previous state
+(for example,
+when reloading a game saved as a core image dump).
+\fB\%restartterm\fP assumes that the windows and the input and output
+options are the same as when memory was saved,
+but the terminal type and baud rate may be different.
+Accordingly,
+\fB\%restartterm\fP saves various terminal state bits,
+calls \fB\%setupterm\fP,
+and then restores the bits.
+.\" ********************************************************************
+.SS "Formatting Output"
+\fB\%tparm\fP instantiates the string
+.I str
+with parameters
+.IR pi .
+A pointer is returned to the result of
+.I str
with the parameters applied.
-Application developers should keep in mind these quirks of the interface:
+Application developers should keep in mind these quirks of the
+interface:
.bP
-Although \fBtparm\fP's actual parameters may be integers or strings,
-the prototype expects \fBlong\fP (integer) values.
+Although \fB\%tparm\fP's actual parameters may be integers or strings,
+the prototype expects
+.I long
+(integer) values.
.bP
-Aside from the \fBset_attributes\fP (\fBsgr\fP) capability,
+Aside from the
+.B \%set_attributes\fP
+.RB ( sgr )
+capability,
most terminal capabilities require no more than one or two parameters.
+.bP
+Padding information is ignored by \fB\%tparm\fP;
+it is interpreted by \fB\%tputs\fP.
+.bP
+The capability string is null-terminated.
+Use \*(``\e200\*('' where an ASCII NUL is needed in the output.
.PP
-\fBtiparm\fP is a newer form of \fBtparm\fP which uses \fI<stdarg.h>\fP
+\fB\%tiparm\fP is a newer form of \fB\%tparm\fP which uses
+.I \%stdarg.h
rather than a fixed-parameter list.
-Its numeric parameters are integers (int) rather than longs.
-.\" ***************************************************************************
-.SS Output Functions
+Its numeric parameters are
+.IR int s
+rather than
+.IR long "s."
+.PP
+Both \fB\%tparm\fP and \fB\%tiparm\fP assume that the application passes
+parameters consistent with the terminal description.
+Two extensions are provided as alternatives to deal with untrusted data.
+.bP
+\fB\%tiparm_s\fP is an extension which is a safer formatting function
+than \fB\%tparm\fR or \fB\%tiparm\fR,
+because it allows the developer to tell the
+.I curses
+library how many parameters to expect in the parameter list,
+and which may be string parameters.
+.IP
+The \fImask\fP parameter has one bit set for each of the parameters
+(up to 9)
+passed as
+.I char
+pointers rather than numbers.
+.bP
+The extension \fB\%tiscan_s\fP allows the application to inspect a
+formatting capability to see what the
+.I curses
+library would assume.
+.\" ********************************************************************
+.SS "Output Functions"
+String capabilities can contain padding information,
+a time delay
+(accommodating performance limitations of hardware terminals)
+expressed as \fB$<\fIn\fB>\fR,
+where \fIn\fP is a nonnegative integral count of milliseconds.
+If \fIn\fP exceeds 30,000
+(thirty seconds),
+it is capped at that value.
.PP
-The \fBtputs\fR routine applies padding information to the string
-\fIstr\fR and outputs it:
+\fB\%tputs\fP interprets time-delay information in the string
+.I str
+and outputs it,
+executing the delays:
.bP
-The \fIstr\fR parameter must be a terminfo string
-variable or the return value from
-\fBtparm\fR, \fBtiparm\fP, \fBtgetstr\fR, or \fBtgoto\fR.
+The
+.I str
+parameter must be a
+.I \%term\%info
+string variable or the return value of
+\fB\%tparm\fP,
+\fB\%tiparm\fP,
+\fB\%tgetstr\fP,
+or \fB\%tgoto\fP.
.IP
-The \fBtgetstr\fP and \fBtgoto\fP functions are part of the \fItermcap\fP
+The \fB\%tgetstr\fP and \fB\%tgoto\fP functions are part of the
+.I termcap
interface,
-which happens to share this function name with the \fIterminfo\fP interface.
+which happens to share these function names with the
+.I \%term\%info
+API.
.bP
-\fIaffcnt\fR is the number of lines affected, or 1 if
-not applicable.
+.I affcnt
+is the number of lines affected,
+or
+.B 1
+if not applicable.
.bP
-\fIputc\fR is a \fBputchar\fR-like routine to which
-the characters are passed, one at a time.
+.I putc
+is a
+.IR \%putchar -like
+function to which the characters are passed,
+one at a time.
+.IP
+If \fB\%tputs\fP processes a time-delay,
+it uses the \fB\%delay_output\fP(3X) function,
+routing any resulting padding characters through this function.
.PP
-The \fBputp\fR routine calls \fBtputs(\fR\fIstr\fR\fB, 1, putchar)\fR.
-The output of \fBputp\fR always goes to \fBstdout\fR, rather than
-the \fIfiledes\fR specified in \fBsetupterm\fR.
+\fB\%putp\fR calls
+.RB \%\*(`` tputs(\c
+.IB str ", 1, putchar)\c"
+\*(''.
+The output of \fB\%putp\fP always goes to
+.BR stdout ,
+rather than the
+.I \%file\%des
+specified in \fB\%setupterm\fP.
.PP
-The \fBvidputs\fR routine displays the string on the terminal in the
-video attribute mode \fIattrs\fR, which is any combination of the
-attributes listed in \fBcurses\fR(3X).
-The characters are passed to
-the \fBputchar\fR-like routine \fIputc\fR.
+\fB\%vidputs\fP displays the string on the terminal in the video
+attribute mode
+.IR attrs ,
+which is any combination of the attributes listed in \fB\%curses\fP(3X).
+The characters are passed to the
+.IR \%putchar -like
+function
+.IR putc .
.PP
-The \fBvidattr\fR routine is like the \fBvidputs\fR routine, except
-that it outputs through \fBputchar\fR.
+\fB\%vidattr\fP is like \fB\%vidputs\fP,
+except that it outputs through \fI\%putchar\fP(3).
.PP
-The \fBvid_attr\fR and \fBvid_puts\fR routines correspond
-to vidattr and vidputs, respectively.
-They use a set of arguments for representing the video attributes plus color,
-i.e.,
+.B \%vid_attr
+and
+.B \%vid_puts
+correspond to
+.B \%vidattr
+and
+.BR \%vidputs ,
+respectively.
+They use multiple parameters to represent the character attributes and
+color;
+namely,
.bP
-\fIattrs\fP of type \fBattr_t\fP for the attributes and
+.IR \%attrs ,
+of type
+.IR \%attr_t ,
+for the attributes and
.bP
-\fIpair\fP of type \fBshort\fP for the color-pair number.
+.IR pair ,
+of type
+.IR short ,
+for the color pair number.
.PP
-The \fBvid_attr\fR and \fBvid_puts\fR routines
-are designed to use the attribute constants with the \fIWA_\fR prefix.
+Use the attribute constants prefixed with
+.RB \*(`` WA_ \*(''
+with
+.B \%vid_attr
+and
+.BR \%vid_puts .
.PP
-X/Open Curses reserves the \fIopts\fP argument for future use,
-saying that applications must provide a null pointer for that argument.
-As an extension,
-this implementation allows \fIopts\fP to be used as a pointer to \fBint\fP,
-which overrides the \fIpair\fP (\fBshort\fP) argument.
-.PP
-The \fBmvcur\fR routine provides low-level cursor motion.
-It takes effect immediately (rather than at the next refresh).
+X/Open Curses reserves the
+.I opts
+argument for future use,
+saying that applications must provide a null pointer for that argument;
+but see section \*(``EXTENSIONS\*('' below.
.PP
-While \fBputp\fR and \fBmvcur\fP are low-level functions which
-do not use the high-level curses state,
-they are declared in \fB<curses.h>\fP because SystemV did this
-(see \fBHISTORY\fP).
-.\" ***************************************************************************
-.SS Terminal Capability Functions
+\fB\%mvcur\fP provides low-level cursor motion.
+It takes effect immediately
+(rather than at the next refresh).
+Unlike the other low-level output functions,
+which either write to the standard output or pass an output function
+parameter,
+\fB\%mvcur\fP uses an output file descriptor derived from
+the output stream parameter of \fB\%newterm\fP(3X).
.PP
-The \fBtigetflag\fR, \fBtigetnum\fR and \fBtigetstr\fR routines return
-the value of the capability corresponding to the \fBterminfo\fR
-\fIcapname\fR passed to them, such as \fBxenl\fR.
-The \fIcapname\fR for each capability is given in the table column entitled
-\fIcapname\fR code in the capabilities section of \fBterminfo\fR(\*n).
+While \fB\%putp\fP and \fB\%mvcur\fP are low-level functions that do not
+use high-level
+.I curses
+state,
+.I \%ncurses
+declares them in
+.I \%curses.h
+because System\ V did this
+(see section \*(``HISTORY\*('' below).
+.\" ********************************************************************
+.SS "Terminal Capability Functions"
+\fB\%tigetflag\fP,
+\fB\%tigetnum\fP,
+and \fB\%tigetstr\fP return the value of the capability corresponding to
+the
+.I \%term\%info
+.IR cap-code ,
+such as
+.BR xenl ,
+passed to them.
+The
+.I cap-code
+for each capability is given in the table column entitled
+.I cap-code
+code in the capabilities section of \fB\%terminfo\fP(5).
.PP
-These routines return special values to denote errors.
+These functions return special values to denote errors.
.PP
-The \fBtigetflag\fR routine returns
+\fB\%tigetflag\fP returns
.TP
-\fB\-1\fR
-if \fIcapname\fR is not a boolean capability,
+.B \-1
+if
+.I cap-code
+is not a Boolean capability,
or
.TP
-\fB0\fR
+.B 0
if it is canceled or absent from the terminal description.
.PP
-The \fBtigetnum\fR routine returns
+\fB\%tigetnum\fP returns
.TP
-\fB\-2\fR
-if \fIcapname\fR is not a numeric capability, or
+.B \-2
+if
+.I cap-code
+is not a numeric capability,
+or
.TP
-\fB\-1\fR
+.B \-1
if it is canceled or absent from the terminal description.
.PP
-The \fBtigetstr\fR routine returns
+\fB\%tigetstr\fP returns
.TP
-\fB(char *)\-1\fR
-if \fIcapname\fR is not a string capability,
+.B "(char *)\-1"
+if
+.I cap-code
+is not a string capability,
or
.TP
-\fB0\fR
+.B 0
if it is canceled or absent from the terminal description.
-.\" ***************************************************************************
-.SS Terminal Capability Names
-.PP
+.\" ********************************************************************
+.SS "Terminal Capability Names"
These null-terminated arrays contain
.bP
-the short terminfo names (\*(``codes\*(''),
+the short \fI\%term\%info\fP names (\*(``codes\*(''),
.bP
-the \fBtermcap\fR names (\*(``names\*(''), and
+the \fItermcap\fP names (\*(``names\*(''),
+and
.bP
-the long terminfo names (\*(``fnames\*('')
+the long \fI\%term\%info\fP names (\*(``fnames\*('')
+.PP
+for each of the predefined
+.I \%term\%info
+variables:
.PP
-for each of the predefined \fBterminfo\fR variables:
-.sp
.RS
-\fBconst char *boolnames[]\fR, \fB*boolcodes[]\fR, \fB*boolfnames[]\fR
-.br
-\fBconst char *numnames[]\fR, \fB*numcodes[]\fR, \fB*numfnames[]\fR
-.br
-\fBconst char *strnames[]\fR, \fB*strcodes[]\fR, \fB*strfnames[]\fR
+.nf
+\fBconst char *boolnames[]\fP, \fB*boolcodes[]\fP, \fB*boolfnames[]\fP
+\fBconst char *numnames[]\fP, \fB*numcodes[]\fP, \fB*numfnames[]\fP
+\fBconst char *strnames[]\fP, \fB*strcodes[]\fP, \fB*strfnames[]\fP
+.fi
.RE
-.SH RETURN VALUE
-Routines that return an integer return \fBERR\fR upon failure and \fBOK\fR
-(SVr4 only specifies \*(``an integer value other than \fBERR\fR\*('')
-upon successful completion,
-unless otherwise noted in the preceding routine descriptions.
+.\" ********************************************************************
+.SS "Releasing Memory"
+Each successful call to \fB\%setupterm\fP allocates memory to hold the
+terminal description.
+As a side effect,
+it sets \fB\%cur_term\fP to point to this memory.
+If an application calls
+.IP
+.EX
+del_curterm(cur_term);
+.EE
.PP
-Routines that return pointers always return \fBNULL\fR on error.
+the memory will be freed.
.PP
-X/Open defines no error conditions.
-In this implementation
-.RS 3
+The formatting functions \fB\%tparm\fP and \fB\%tiparm\fP extend the
+storage allocated by \fB\%setupterm\fP as follows.
+.bP
+They add the \*(``static\*(''
+.I \%term\%info
+variables [a-z].
+Before
+.I \%ncurses
+6.3,
+those were shared by all screens.
+With
+.I \%ncurses
+6.3,
+those are allocated per screen.
+See \fB\%terminfo\fP(5).
+.bP
+To improve performance,
+.I \%ncurses
+6.3 caches the result of analyzing
+.I \%term\%info
+strings for their parameter types.
+That is stored as a binary tree referenced from the
+.I \%TERMINAL
+structure.
+.PP
+The higher-level \fB\%initscr\fP and \fB\%newterm\fP functions use
+\fB\%setupterm\fP.
+Normally they do not free this memory,
+but it is possible to do that using the \fB\%delscreen\fP(3X) function.
+.\" ********************************************************************
+.SH RETURN VALUE
+X/Open Curses defines no failure conditions.
+In
+.IR \%ncurses ,
.TP 5
-\fBdel_curterm\fP
-returns an error
-if its terminal parameter is null.
+.B del_curtem
+fails if its terminal parameter is null.
.TP 5
-\fBputp\fP
-calls \fBtputs\fP, returning the same error-codes.
+.B putp
+calls \fB\%tputs\fP,
+returning the same error codes.
.TP 5
-\fBrestartterm\fP
-returns an error
-if the associated call to \fBsetupterm\fP returns an error.
+.B restartterm
+fails if the associated call to \fB\%setupterm\fP returns an error.
.TP 5
-\fBsetupterm\fP
-returns an error
-if it cannot allocate enough memory, or
-create the initial windows (stdscr, curscr, newscr).
+.B setupterm
+fails if it cannot allocate enough memory,
+or create the initial windows
+.RB ( \%stdscr ,
+.BR \%curscr ,
+and
+.BR \%newscr )
Other error conditions are documented above.
.TP 5
-\fBtputs\fP
-returns an error if the string parameter is null.
+.B tparm
+returns a null pointer if the capability would require unexpected
+parameters;
+that is,
+too many,
+too few,
+or incorrect types
+(strings where integers are expected,
+or vice versa).
+.TP 5
+.B tputs
+fails if the string parameter is null.
It does not detect I/O errors:
-X/Open states that \fBtputs\fP ignores the return value
-of the output function \fIputc\fP.
-.RE
-.\" ***************************************************************************
-.SS Compatibility macros
+X/Open Curses states that \fB\%tputs\fP ignores the return value
+of the output function \fI\%putc\fP.
+.\" ********************************************************************
+.SH NOTES
+The
+.B \%vid_attr
+function in
+.I \%ncurses
+is a special case.
+It was originally implemented based on a draft of X/Open Curses,
+as a macro,
+before other parts of the
+.I \%ncurses
+wide-character API were developed,
+and unlike the other wide-character functions,
+is also provided in the non-wide-character configuration.
+.\" ********************************************************************
+.SH EXTENSIONS
+The functions marked as extensions were designed for
+.IR \%ncurses ,
+and are not found in SVr4
+.IR curses ,
+4.4BSD
+.IR curses ,
+or any other previous
+.I curses
+implementation.
+.PP
+.I \%ncurses
+allows
+.I opts
+to be a pointer to
+.IR int ,
+which overrides the
+.I pair
+.RI ( short )
+argument.
+.\" ********************************************************************
+.SH PORTABILITY
+\fB\%setterm\fP is not described by X/Open and must be considered
+non-portable.
+All other functions are as described by X/Open.
+.SS "Compatibility Macros"
This implementation provides a few macros for compatibility with systems
-before SVr4 (see \fBHISTORY\fP).
-Those include
-\fBcrmode\fP,
-\fBfixterm\fP,
-\fBgettmode\fP,
-\fBnocrmode\fP,
-\fBresetterm\fP,
-\fBsaveterm\fP, and
-\fBsetterm\fP.
-.PP
-In SVr4, those are found in \fB<curses.h>\fP,
-but except for \fBsetterm\fR, are likewise macros.
-The one function, \fBsetterm\fR, is mentioned in the manual page.
-The manual page notes that the \fBsetterm\fR routine
-was replaced by \fBsetupterm\fR, stating that the call:
-.sp
- \fBsetupterm(\fR\fIterm\fR\fB, 1, (int *)0)\fR
-.sp
-provides the same functionality as \fBsetterm(\fR\fIterm\fR\fB)\fR,
-and is not recommended for new programs.
-This implementation provides each of those symbols
-as macros for BSD compatibility,
-.\" ***************************************************************************
+before SVr4
+(see section \*(``HISTORY\*('' below).
+They include
+\fB\%Bcrmode\fP,
+\fB\%Bfixterm\fP,
+\fB\%Bgettmode\fP,
+\fB\%Bnocrmode\fP,
+\fB\%Bresetterm\fP,
+\fB\%Bsaveterm\fP,
+and
+\fB\%Bsetterm\fP.
+.PP
+In SVr4,
+these are found in
+.IR \%curses.h ,
+but except for \fB\%setterm\fP,
+are likewise macros.
+The one function,
+\fB\%setterm\fP,
+is mentioned in the manual page.
+It further notes that \fB\%setterm\fP was replaced by \fB\%setupterm\fP,
+stating that the call
+.RS
+.EX
+setupterm(\fIterm\fP, 1, (int *)0)
+.EE
+.RE
+provides the same functionality as \fB\%setterm(\fIterm\fB)\fR,
+discouraging the latter for new programs.
+.I \%ncurses
+implements each of these symbols as macros for BSD
+.I curses
+compatibility.
+.SS "Legacy Data"
+\fB\%setupterm\fP copies the terminal name to the array \fB\%ttytype\fP.
+This is not part of X/Open Curses,
+but is assumed by some applications.
+.PP
+Other implementions may not declare the capability name arrays.
+Some provide them without declaring them.
+X/Open Curses does not specify them.
+.PP
+Extended terminal capability names,
+as defined by
+.RB \%\*(`` "@TIC@ \-x" \*('',
+are not stored in the arrays described here.
+.SS "Output Buffering"
+Older versions of \fI\%ncurses\fP assumed that the file descriptor
+passed to \fB\%setupterm\fP from \fB\%initscr\fP or \fB\%newterm\fP uses
+buffered I/O,
+and would write to the corresponding stream.
+In addition to the limitation that the terminal was left in
+block-buffered mode on exit
+(like System\ V
+.IR curses ),
+it was problematic because
+.I \%ncurses
+did not allow a reliable way to clean up on receiving
+.BR SIGTSTP .
+.PP
+The current version (ncurses6)
+uses output buffers managed directly by
+.IR \%ncurses .
+Some of the low-level functions described in this manual page write
+to the standard output.
+They are not signal-safe.
+The high-level functions in
+.I \%ncurses
+employ alternate versions of these functions using the more reliable
+buffering scheme.
+.SS "Function Prototypes"
+The X/Open Curses prototypes are based on the SVr4
+.I curses
+header declarations,
+which were defined at the same time the C language was first
+standardized in the late 1980s.
+.bP
+X/Open Curses uses
+.I \%const
+less effectively than a later design might,
+sometimes applying it needlessly to values that are already constant,
+and in most cases overlooking parameters that normally would use
+.IR \%const .
+Passing
+.IR \%const -qualified
+parameters to functions that do not declare them
+.I \%const
+may prevent the program from compiling.
+On the other hand,
+\*(``writable strings\*('' are an obsolescent feature.
+.IP
+As an extension,
+this implementation can be configured to change the function prototypes
+to use the
+.I \%const
+keyword.
+The
+.I \%ncurses
+ABI 6 enables this feature by default.
+.bP
+X/Open Curses prototypes \fB\%tparm\fP with a fixed number of
+parameters,
+rather than a variable argument list.
+.IP
+This implementation uses a variable argument list,
+but can be configured to use the fixed-parameter list.
+Portable applications should provide nine parameters after the format;
+zeroes are fine for this purpose.
+.IP
+In response to review comments by Thomas E. Dickey,
+X/Open Curses Issue 7 proposed the \fB\%tiparm\fP function in mid-2009.
+.IP
+While \fB\%tiparm\fP is always provided in \fI\%ncurses\fP,
+the older form is only available as a build-time configuration option.
+If not specially configured,
+\fB\%tparm\fP is the same as \fB\%tiparm\fP.
+.PP
+Both forms of \fB\%tparm\fP have drawbacks:
+.bP
+Most of the calls to \fB\%tparm\fP use only one or two parameters.
+Passing nine on each call is awkward.
+.IP
+Using
+.I long
+for the numeric parameter type is a workaround to make the parameter use
+the same amount of stack as a pointer.
+That approach dates back to the mid-1980s,
+before C was standardized.
+Since then,
+there is a standard
+(and pointers are not required to fit in a
+.IR long ).
+.bP
+Providing the right number of parameters for a variadic function
+such as \fB\%tiparm\fP can be a problem,
+in particular for string parameters.
+However,
+only a few
+.I \%term\%info
+capabilities use string parameters
+(for instance,
+the ones used for programmable function keys).
+.IP
+The \fI\%ncurses\fP library checks usage of these capabilities,
+and returns an error if the capability mishandles string parameters.
+But it cannot check if a calling program provides strings in the right
+places for the \fB\%tparm\fP calls.
+.IP
+The \fB\%@TPUT@\fR(1) program checks its use of these capabilities with
+a table,
+so that it calls \fB\%tparm\fP correctly.
+.SS "Special \fITERM\fP treatment"
+If configured to use the terminal driver,
+.\" XXX: as opposed to the Unix terminal driver, termio(s)?
+as with the MinGW port,
+.bP
+\fB\%setupterm\fP interprets a missing/empty \fITERM\fP variable as the
+special value \*(``unknown\*(''.
+.IP
+SVr4
+.I curses
+uses the special value \*(``dumb\*(''.
+.IP
+The difference between the two is that the former uses the
+.B \%generic_type
+.RB ( gn )
+.I \%term\%info
+capability,
+while the latter does not.
+A generic terminal is unsuitable for full-screen applications.
+.bP
+\fB\%setupterm\fP allows explicit use of the
+the windows console driver by checking if \fB$TERM\fP is set to
+\*(``#win32con\*('' or an abbreviation of that string.
+.SS "Other Portability Issues"
+In SVr4,
+\fB\%set_curterm\fP returns an
+.IR int ,
+.B OK
+or
+.BR ERR .
+We have chosen to implement the X/Open Curses semantics.
+.PP
+In SVr4,
+the third argument of \fB\%tputs\fP has the type
+.RB \*(`` "int (*putc)(char)" \*(''.
+.PP
+At least one implementation of X/Open Curses (Solaris) returns a value
+other than
+.B OK
+or
+.B ERR
+from \fB\%tputs\fP.
+It instead returns the length of the string,
+and does no error checking.
+.PP
+X/Open Curses notes that after calling \fB\%mvcur\fP,
+the
+.I curses
+state may not match the actual terminal state,
+and that an application should touch and refresh the window before
+resuming normal
+.I curses
+calls.
+Both
+.I \%ncurses
+and SVr4
+.I curses
+implement \fB\%mvcur\fP using the
+.I SCREEN
+data allocated in either \fB\%initscr\fP or \fB\%newterm\fP.
+So though it is documented as a
+.I \%term\%info
+function,
+\fB\%mvcur\fP is really a
+.I curses
+function that is not well specified.
+.PP
+X/Open Curses states that the old location must be given for
+\fB\%mvcur\fP to accommodate terminals that lack absolute cursor
+positioning.
+.\" X/Open Curses Issue 7, p. 161
+.I \%ncurses
+allows the caller to use \-1 for either or both old coordinates.
+The \-1 tells
+.I \%ncurses
+that the old location is unknown,
+and that it must use only absolute motion,
+as with the
+.B \%cursor_address
+.RB ( cup )
+capability,
+rather than the least costly combination of absolute and relative
+motion.
+.\" ********************************************************************
.SH HISTORY
+SVr2 (1984) introduced the
+.I \%term\%info
+feature.
+Its programming manual mentioned the following low-level functions.
.PP
-SVr2 introduced the terminfo feature.
-Its programming manual mentioned these low-level functions:
.TS
-l l
-_ _
-l l.
-\fBFunction\fR \fBDescription\fR
-fixterm restore tty to \*(``in curses\*('' state
-gettmode establish current tty modes
+lB lB
+lB lx.
+Function Description
+_
+fixterm restore terminal to \*(``in \fIcurses\fP\*('' state
+gettmode establish current terminal modes
mvcur low level cursor motion
-putp T{
-utility function that uses \fBtputs\fP to send characters via \fBputchar\fP.
-T}
-resetterm set tty modes to \*(``out of curses\*('' state
-resetty reset tty flags to stored value
-saveterm save current modes as \*(``in curses\*('' state
-savetty store current tty flags
+putp use \fBtputs\fP to send characters via \fIputchar\fP
+resetterm set terminal modes to \*(``out of \fIcurses\fP\*(''\
+ state
+resetty reset terminal flags to stored value
+saveterm save current modes as \*(``in \fIcurses\fP\*('' state
+savetty store current terminal flags
setterm establish terminal with given type
setupterm establish terminal with given type
-tparm instantiate a string expression with parameters
+tparm interpolate parameters into string capability
tputs apply padding information to a string
-vidattr like \fBvidputs\fP, but outputs through \fBputchar\fP
+vidattr like \fBvidputs\fP, but output through \fIputchar\fP
vidputs T{
-output a string to put terminal in a specified video attribute mode
+write string to terminal, applying specified attributes
T}
.TE
.PP
The programming manual also mentioned
-functions provided for termcap compatibility
-(commenting that they \*(``may go away at a later date\*(''):
+functions provided for
+.I termcap
+compatibility
+(commenting that they \*(``may go away at a later date\*('').
+.PP
.TS
-l l
-_ _
-l l.
-\fBFunction\fR \fBDescription\fR
-tgetent look up termcap entry for given \fIname\fP
-tgetflag get boolean entry for given \fIid\fP
+lB lB
+lB lx.
+Function Description
+_
+tgetent look up \fItermcap\fP entry for given \fIname\fP
+tgetflag get Boolean entry for given \fIid\fP
tgetnum get numeric entry for given \fIid\fP
tgetstr get string entry for given \fIid\fP
tgoto apply parameters to given capability
tputs T{
-apply padding to capability, calling a function to put characters
+write characters via a function parameter, applying padding
T}
.TE
.PP
-Early terminfo programs obtained capability values from the
-\fBTERMINAL\fP structure initialized by \fBsetupterm\fR.
+Early
+.I \%term\%info
+programs obtained capability values from the
+.I \%TERMINAL
+structure initialized by \fB\%setupterm\fP.
+.PP
+SVr3 (1987) extended
+.I \%term\%info
+by adding functions to retrieve capability values
+(like the
+.I termcap
+interface),
+and reusing \fB\%tgoto\fP and \fB\%tputs\fP.
.PP
-SVr3 extended terminfo by adding functions to retrieve capability values
-(like the termcap interface),
-and reusing tgoto and tputs:
.TS
-l l
-_ _
-l l.
-\fBFunction\fR \fBDescription\fR
-tigetflag get boolean entry for given \fIid\fP
+lB lB
+lB lx.
+Function Description
+_
+tigetflag get Boolean entry for given \fIid\fP
tigetnum get numeric entry for given \fIid\fP
tigetstr get string entry for given \fIid\fP
.TE
.PP
-SVr3 also replaced several of the SVr2 terminfo functions
-which had no counterpart in the termcap interface,
-documenting them as obsolete:
+SVr3 also replaced several of the SVr2
+.I \%term\%info
+functions that had no counterpart in the
+.I termcap
+interface,
+documenting them as obsolete.
+.PP
.TS
-l l
-_ _
-l l.
-\fBFunction\fR \fBReplaced by\fP
-crmode cbreak
-fixterm reset_prog_mode
-gettmode N/A
-nocrmode nocbreak
-resetterm reset_shell_mode
-saveterm def_prog_mode
-setterm setupterm
+lB lB
+l lx.
+Function Replaced by
+_
+crmode cbreak
+fixterm reset_prog_mode
+gettmode \fIn/a\fP
+nocrmode nocbreak
+resetterm reset_shell_mode
+saveterm def_prog_mode
+setterm setupterm
.TE
.PP
-SVr3 kept the \fBmvcur\fP, \fBvidattr\fP and \fBvidputs\fP functions,
-along with \fBputp\fP, \fBtparm\fP and \fBtputs\fP.
+SVr3 kept the \fB\%mvcur\fP,
+\fB\%vidattr\fP,
+and \fB\%vidputs\fP functions,
+along with \fB\%putp\fP,
+\fB\%tparm\fP,
+and \fB\%tputs\fP.
The latter were needed to support padding,
-and handling functions such as \fBvidattr\fP
-(which used more than the two parameters supported by \fBtgoto\fP).
+and to handle capabilities accessed by functions such as \fB\%vidattr\fP
+(which used more than the two parameters supported by \fB\%tgoto\fP).
.PP
SVr3 introduced the functions for switching between terminal
-descriptions, e.g., \fBset_curterm\fP.
-The various global variables such as \fBboolnames\fP were mentioned
-in the programming manual at this point.
-.PP
-SVr4 added the \fBvid_attr\fP and \fBvid_puts\fP functions.
-.PP
-There are other low-level functions declared in the curses header files
-on Unix systems,
-but none were documented.
-The functions marked \*(``obsolete\*('' remained in use
-by the Unix \fBvi\fP editor.
-.SH PORTABILITY
-.SS Legacy functions
-.PP
-X/Open notes that \fBvidattr\fR and \fBvidputs\fR may be macros.
-.PP
-The function \fBsetterm\fR is not described by X/Open and must
-be considered non-portable.
-All other functions are as described by X/Open.
-.SS Legacy data
-.PP
-\fBsetupterm\fP copies the terminal name to the array \fBttytype\fP.
-This is not part of X/Open Curses, but is assumed by some applications.
-.PP
-Other implementions may not declare the capability name arrays.
-Some provide them without declaring them.
-X/Open does not specify them.
-.PP
-Extended terminal capability names, e.g., as defined by \fB@TIC@\ \-x\fP,
-are not stored in the arrays described here.
-.SS Output buffering
-.PP
-Older versions of \fBncurses\fP assumed that the file descriptor passed to
-\fBsetupterm\fP from \fBinitscr\fP or \fBnewterm\fP uses buffered I/O,
-and would write to the corresponding stream.
-In addition to the limitation that the terminal was left in block-buffered
-mode on exit (like System V curses),
-it was problematic because \fBncurses\fP
-did not allow a reliable way to cleanup on receiving SIGTSTP.
-.PP
-The current version (ncurses6)
-uses output buffers managed directly by \fBncurses\fP.
-Some of the low-level functions described in this manual page write
-to the standard output.
-They are not signal-safe.
-The high-level functions in \fBncurses\fP use
-alternate versions of these functions
-using the more reliable buffering scheme.
-.SS Function prototypes
-.PP
-The X/Open Curses prototypes are based on the SVr4 curses header declarations,
-which were defined at the same time the C language was first standardized in
-the late 1980s.
-.bP
-X/Open Curses uses \fBconst\fP less effectively than a later design might,
-in some cases applying it needlessly to values are already constant,
-and in most cases overlooking parameters which normally would use \fBconst\fP.
-Using constant parameters for functions which do not use \fBconst\fP
-may prevent the program from compiling.
-On the other hand, \fIwritable strings\fP are an obsolescent feature.
-.IP
-As an extension, this implementation can be configured to change the
-function prototypes to use the \fBconst\fP keyword.
-The ncurses ABI 6 enables this feature by default.
+descriptions;
+for example,
+\fB\%set_curterm\fP.
+Some changes reflected incremental improvements to the SVr2 library.
.bP
-X/Open Curses prototypes \fBtparm\fR with a fixed number of parameters,
-rather than a variable argument list.
-.IP
-This implementation uses a variable argument list, but can be
-configured to use the fixed-parameter list.
-Portable applications should provide 9 parameters after the format;
-zeroes are fine for this purpose.
-.IP
-In response to review comments by Thomas E. Dickey,
-X/Open Curses Issue 7 proposed the \fBtiparm\fP function in mid-2009.
-.SS Special TERM treatment
-.PP
-If configured to use the terminal-driver,
-e.g., for the MinGW port,
-.bP
-\fBsetupterm\fP interprets a missing/empty TERM variable as the
-special value \*(``unknown\*(''.
+The
+.I \%TERMINAL
+type definition was introduced in SVr3.01,
+for the
+.I term
+structure provided in SVr2.
.bP
-\fBsetupterm\fP allows explicit use of the
-the windows console driver by checking if $TERM is set to
-\*(``#win32con\*('' or an abbreviation of that string.
-.SS Other portability issues
+Various global variables such as \fB\%boolnames\fP were mentioned
+in the programming manual at this point,
+though the variables had been provided in SVr2.
.PP
-In System V Release 4, \fBset_curterm\fR has an \fBint\fR return type and
-returns \fBOK\fR or \fBERR\fR. We have chosen to implement the X/Open Curses
-semantics.
+SVr4 (1989) added the \fB\%vid_attr\fP and \fB\%vid_puts\fP functions.
.PP
-In System V Release 4, the third argument of \fBtputs\fR has the type
-\fBint (*putc)(char)\fR.
-.PP
-At least one implementation of X/Open Curses (Solaris) returns a value
-other than \fBOK\fP/\fBERR\fP from \fBtputs\fP.
-That returns the length of the string, and does no error-checking.
-.PP
-X/Open notes that after calling \fBmvcur\fR, the curses state may not match the
-actual terminal state, and that an application should touch and refresh
-the window before resuming normal curses calls.
-Both \fBncurses\fP and System V Release 4 curses implement \fBmvcur\fR using
-the SCREEN data allocated in either \fBinitscr\fR or \fBnewterm\fR.
-So though it is documented as a terminfo function,
-\fBmvcur\fR is really a curses function which is not well specified.
-.PP
-X/Open states that the old location must be given for \fBmvcur\fP.
-This implementation allows the caller to use \-1's for the old ordinates.
-In that case, the old location is unknown.
+Other low-level functions are declared in the
+.I curses
+header files of Unix systems,
+but none are documented.
+Those noted as \*(``obsolete\*('' by SVr3 remained in use by System\ V's
+\fIvi\fP(1) editor.
.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBcurs_initscr\fR(3X),
-\fBcurs_kernel\fR(3X),
-\fBcurs_termcap\fR(3X),
-\fBcurs_variables\fR(3X),
-\fBterm_variables\fR(3X),
-\fBputc\fR(3),
-\fBterminfo\fR(\*n)
+\fB\%curses\fP(3X),
+\fB\%curs_initscr\fP(3X),
+\fB\%curs_kernel\fP(3X),
+\fB\%curs_memleaks\fP(3X),
+\fB\%curs_termcap\fP(3X),
+\fB\%curs_variables\fP(3X),
+\fB\%putc\fP(3),
+\fB\%term_variables\fP(3X),
+\fB\%terminfo\fP(5)
diff --git a/man/curs_threads.3x b/man/curs_threads.3x
index cb2da61a55df..d49c16e71f09 100644
--- a/man/curs_threads.3x
+++ b/man/curs_threads.3x
@@ -1,5 +1,6 @@
+'\" t
.\"***************************************************************************
-.\" Copyright 2020 Thomas E. Dickey *
+.\" Copyright 2021-2023,2024 Thomas E. Dickey *
.\" Copyright 2008-2015,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,577 +28,611 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_threads.3x,v 1.27 2020/12/30 18:28:51 tom Exp $
-.TH curs_threads 3X ""
+.\" $Id: curs_threads.3x,v 1.56 2024/03/16 15:35:01 tom Exp $
+.TH curs_threads 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
-.na
-.hy 0
.SH NAME
-\fBcurs_threads\fR \- \fBcurses\fR thread support
-.ad
-.hy
+\fI\%NCURSES_WINDOW_CB\fP,
+\fI\%NCURSES_SCREEN_CB\fP,
+\fB\%get_escdelay\fP,
+\fB\%set_escdelay\fP,
+\fB\%set_tabsize\fP,
+\fB\%use_screen\fP,
+\fB\%use_window\fP \-
+\fIcurses\fR support for multi-threaded applications
.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\fBtypedef int (*NCURSES_WINDOW_CB)(WINDOW *, void *);\fR
-.br
-\fBtypedef int (*NCURSES_SCREEN_CB)(SCREEN *, void *);\fR
-.sp
-\fBint get_escdelay(void);\fR
-.br
-\fBint set_escdelay(int \fP\fIms\fP\fB);\fR
-.br
-\fBint set_tabsize(int \fP\fIcols\fP\fB);\fR
-.sp
-\fBint use_screen(SCREEN *\fP\fIscr\fP\fB, NCURSES_SCREEN_CB \fP\fIfunc\fP\fB, void *\fP\fIdata\fP\fB);\fR
-.br
-\fBint use_window(WINDOW *\fP\fIwin\fP\fB, NCURSES_WINDOW_CB \fP\fIfunc\fP\fB, void *\fP\fIdata\fP\fB);\fR
-.br
+.nf
+\fB#include <curses.h>
+.PP
+\fI/* data types */
+\fBtypedef int (*NCURSES_WINDOW_CB)(WINDOW *, void *);
+\fBtypedef int (*NCURSES_SCREEN_CB)(SCREEN *, void *);
+.PP
+\fBint get_escdelay(void);
+\fBint set_escdelay(int \fIms\fP);
+\fBint set_tabsize(int \fIcols\fP);
+.PP
+\fBint use_screen(SCREEN *\fIscr\fP, NCURSES_SCREEN_CB \fIfunc\fP, void *\fIdata\fP);
+\fBint use_window(WINDOW *\fIwin\fP, NCURSES_WINDOW_CB \fIfunc\fP, void *\fIdata\fP);
+.fi
.SH DESCRIPTION
-This implementation can be configured to provide rudimentary support
-for multi-threaded applications.
-This makes a different set of libraries, e.g., \fIlibncursest\fP since
-the binary interfaces are different.
+The \fI\%ncurses\fP library can be configured to support multi-threaded
+applications in a rudimentary way.
+Such configuration produces a different set of libraries,
+named \fIlibncursest\fP,
+for example,
+since doing so alters \fI\%ncurses\fP's application binary interface
+(ABI).
.PP
-Rather than modify the interfaces to pass a thread specifier to
-each function, it adds a few functions which can be used in any
-configuration which hide the mutex's needed to prevent concurrent
-use of the global variables when configured for threading.
+Instead of modifying the programming interface (API) to make
+\fI\%ncurses\fP functions expect an additional argument specifying a
+thread,
+the library adds functions,
+usable in any configuration,
+that hide the \fImutexes\fP
+(mutual exclusion locks)
+needed to prevent concurrent access to variables shared by multiple
+threads of execution.
.PP
-In addition to forcing access to members of the \fBWINDOW\fP structure
-to be via functions (see \fBcurs_opaque\fP(3X)),
-it makes functions of the common global variables,
-e.g.,
-COLORS,
-COLOR_PAIRS,
-COLS,
-ESCDELAY,
-LINES,
-TABSIZE
-curscr,
-newscr and
-ttytype.
-Those variables are maintained as read-only values, stored in the \fBSCREEN\fP
-structure.
+\fI\%ncurses\fP threading support requires the use of functions to
+access members of the \fI\%WINDOW\fP structure (see
+\fBcurs_opaque\fP(3X)).
+It further makes functions of the common global variables
+\fB\%COLORS\fP,
+\fB\%COLOR_PAIRS\fP,
+\fB\%COLS\fP,
+\fB\%ESCDELAY\fP,
+\fB\%LINES\fP,
+\fB\%TABSIZE\fP,
+\fB\%curscr\fP,
+\fB\%newscr\fP,
+and
+\fB\%ttytype\fP,
+maintaining them as as read-only values in the \fISCREEN\fP structure.
.PP
-Even this is not enough to make a thread-safe application using curses.
-A multi-threaded application would be expected to have threads updating
-separate windows (within the same device),
-or updating on separate screens (on different devices).
-Also, a few of the global variables are considered writable by some
-applications.
+Even this is not enough to make an application using \fIcurses\fP
+thread-safe.
+We would expect a multi-threaded application to have threads updating
+separate windows (on the same device),
+and separate screens (on different devices).
+Further,
+applications expect a few of the global variables to be writable.
The functions described here address these special situations.
.PP
-The ESCDELAY and TABSIZE global variables are modified by some applications.
+The \fB\%ESCDELAY\fP and \fB\%TABSIZE\fP global variables are modified
+by some applications.
To modify them in any configuration,
-use the \fBset_escdelay\fP or \fBset_tabsize\fP functions.
+use the \fB\%set_escdelay\fP or \fB\%set_tabsize\fP functions.
Other global variables are not modifiable.
+\fBget_escdelay\fP retrieves \fB\%ESCDELAY\fP's value.
.PP
-The \fBget_escdelay\fP function returns the value for ESCDELAY.
-.PP
-The \fBuse_window\fP and \fBuse_screen\fP functions provide coarse
-granularity mutexes for their respective \fBWINDOW\fP and \fBSCREEN\fP
-parameters, and call a user-supplied function,
-passing it a \fIdata\fP parameter,
-and returning the value from the user-supplied function to the application.
+The \fBuse_window\fP and \fBuse_screen\fP functions provide
+coarse-grained mutexes for their respective \fI\%WINDOW\fP and
+\fISCREEN\fP parameters;
+they call a user-supplied function,
+pass it a \fIdata\fP parameter,
+and return the value from the user-supplied function to the application.
.\" ***************************************************************************
-.SS USAGE
-All of the ncurses library functions assume that the locale is not
+.SS Usage
+All \fI\%ncurses\fP library functions assume that the locale is not
altered during operation.
In addition,
-they use data which is maintained within a hierarchy of scopes.
-.RS 3
+they use data that is maintained within a hierarchy of scopes.
.bP
-global data, e.g., used in the low-level terminfo or termcap interfaces.
+global data used in the low-level \fIterminfo\fP or \fItermcap\fP
+interfaces
.bP
-terminal data, e.g., associated with a call to \fIset_curterm\fP.
-The terminal data are initialized when screens are created.
+terminal data associated with a call to \fBset_curterm\fP(3X)
+.IP
+Terminal data are initialized when screens are created.
.bP
-screen data, e.g., associated with a call to \fInewterm\fP or \fIinitscr\fP.
+screen data associated with a call to \fBnewterm\fP(3X) or
+\fBinitscr\fP(3X)
.bP
-window data, e.g., associated with a call to \fInewwin\fP or \fIsubwin\fP.
+window data associated with a call to \fBnewwin\fP(3X) or
+\fBsubwin\fP(3X)
+.IP
Windows are associated with screens.
-Pads are not necessarily associated with a particular screen.
+Pads are not necessarily associated with any particular screen.
.IP
-Most curses applications operate on one or more windows within a single screen.
+Most \fIcurses\fP applications operate on one or more windows within a
+single screen.
.bP
-reentrant, i.e., it uses only the data passed as parameters.
-.RE
+reentrant data associated with \*(``pure\*('' functions that alter no
+shared variables
+.PP
+The following table lists the scope of each symbol in the
+\fI\%ncurses\fP library when configured to support multi-threaded
+applications.
.PP
-This table lists the scope of data used for each symbol in the
-ncurses library when it is configured to support threading:
.TS
-center tab(/);
-l l
-l l .
-Symbol/Scope
-=
-BC/global
-COLORS/screen (readonly)
-COLOR_PAIR/reentrant
-COLOR_PAIRS/screen (readonly)
-COLS/screen (readonly)
-ESCDELAY/screen (readonly, see \fIset_escdelay\fP)
-LINES/screen (readonly)
-PAIR_NUMBER/reentrant
-PC/global
-SP/global
-TABSIZE/screen (readonly)
-UP/global
-acs_map/screen (readonly)
-add_wch/window (stdscr)
-add_wchnstr/window (stdscr)
-add_wchstr/window (stdscr)
-addch/window (stdscr)
-addchnstr/window (stdscr)
-addchstr/window (stdscr)
-addnstr/window (stdscr)
-addnwstr/window (stdscr)
-addstr/window (stdscr)
-addwstr/window (stdscr)
-assume_default_colors/screen
-attr_get/window (stdscr)
-attr_off/window (stdscr)
-attr_on/window (stdscr)
-attr_set/window (stdscr)
-attroff/window (stdscr)
-attron/window (stdscr)
-attrset/window (stdscr)
-baudrate/screen
-beep/screen
-bkgd/window (stdscr)
-bkgdset/window (stdscr)
-bkgrnd/window (stdscr)
-bkgrndset/window (stdscr)
-boolcodes/global (readonly)
-boolfnames/global (readonly)
-boolnames/global (readonly)
-border/window (stdscr)
-border_set/window (stdscr)
-box/window (stdscr)
-box_set/window (stdscr)
-can_change_color/terminal
-cbreak/screen
-chgat/window (stdscr)
-clear/window (stdscr)
-clearok/window
-clrtobot/window (stdscr)
-clrtoeol/window (stdscr)
-color_content/screen
-color_set/window (stdscr)
-copywin/window locks(source, target)
-cur_term/terminal
-curs_set/screen
-curscr/screen (readonly)
-curses_version/global (readonly)
-def_prog_mode/terminal
-def_shell_mode/terminal
-define_key/screen
-del_curterm/screen
-delay_output/screen
-delch/window (stdscr)
-deleteln/window (stdscr)
-delscreen/global locks(screenlist, screen)
-delwin/global locks(windowlist)
-derwin/screen
-doupdate/screen
-dupwin/screen locks(window)
-echo/screen
-echo_wchar/window (stdscr)
-echochar/window (stdscr)
-endwin/screen
-erase/window (stdscr)
-erasechar/window (stdscr)
-erasewchar/window (stdscr)
-filter/global
-flash/terminal
-flushinp/screen
-get_wch/screen (input-operation)
-get_wstr/screen (input-operation)
-getattrs/window
-getbegx/window
-getbegy/window
-getbkgd/window
-getbkgrnd/window
-getcchar/reentrant
-getch/screen (input-operation)
-getcurx/window
-getcury/window
-getmaxx/window
-getmaxy/window
-getmouse/screen (input-operation)
-getn_wstr/screen (input-operation)
-getnstr/screen (input-operation)
-getparx/window
-getpary/window
-getstr/screen (input-operation)
-getwin/screen (input-operation)
-halfdelay/screen
-has_colors/terminal
-has_ic/terminal
-has_il/terminal
-has_key/screen
-hline/window (stdscr)
-hline_set/window (stdscr)
-idcok/window
-idlok/window
-immedok/window
-in_wch/window (stdscr)
-in_wchnstr/window (stdscr)
-in_wchstr/window (stdscr)
-inch/window (stdscr)
-inchnstr/window (stdscr)
-inchstr/window (stdscr)
-init_color/screen
-init_pair/screen
-initscr/global locks(screenlist)
-innstr/window (stdscr)
-innwstr/window (stdscr)
-ins_nwstr/window (stdscr)
-ins_wch/window (stdscr)
-ins_wstr/window (stdscr)
-insch/window (stdscr)
-insdelln/window (stdscr)
-insertln/window (stdscr)
-insnstr/window (stdscr)
-insstr/window (stdscr)
-instr/window (stdscr)
-intrflush/terminal
-inwstr/window (stdscr)
-is_cleared/window
-is_idcok/window
-is_idlok/window
-is_immedok/window
-is_keypad/window
-is_leaveok/window
-is_linetouched/window
-is_nodelay/window
-is_notimeout/window
-is_scrollok/window
-is_syncok/window
-is_term_resized/terminal
-is_wintouched/window
-isendwin/screen
-key_defined/screen
-key_name/global (static data)
-keybound/screen
-keyname/global (static data)
-keyok/screen
-keypad/window
-killchar/terminal
-killwchar/terminal
-leaveok/window
-longname/screen
-mcprint/terminal
-meta/screen
-mouse_trafo/window (stdscr)
-mouseinterval/screen
-mousemask/screen
-move/window (stdscr)
-mvadd_wch/window (stdscr)
-mvadd_wchnstr/window (stdscr)
-mvadd_wchstr/window (stdscr)
-mvaddch/window (stdscr)
-mvaddchnstr/window (stdscr)
-mvaddchstr/window (stdscr)
-mvaddnstr/window (stdscr)
-mvaddnwstr/window (stdscr)
-mvaddstr/window (stdscr)
-mvaddwstr/window (stdscr)
-mvchgat/window (stdscr)
-mvcur/screen
-mvdelch/window (stdscr)
-mvderwin/window (stdscr)
-mvget_wch/screen (input-operation)
-mvget_wstr/screen (input-operation)
-mvgetch/screen (input-operation)
-mvgetn_wstr/screen (input-operation)
-mvgetnstr/screen (input-operation)
-mvgetstr/screen (input-operation)
-mvhline/window (stdscr)
-mvhline_set/window (stdscr)
-mvin_wch/window (stdscr)
-mvin_wchnstr/window (stdscr)
-mvin_wchstr/window (stdscr)
-mvinch/window (stdscr)
-mvinchnstr/window (stdscr)
-mvinchstr/window (stdscr)
-mvinnstr/window (stdscr)
-mvinnwstr/window (stdscr)
-mvins_nwstr/window (stdscr)
-mvins_wch/window (stdscr)
-mvins_wstr/window (stdscr)
-mvinsch/window (stdscr)
-mvinsnstr/window (stdscr)
-mvinsstr/window (stdscr)
-mvinstr/window (stdscr)
-mvinwstr/window (stdscr)
-mvprintw/window (stdscr)
-mvscanw/screen
-mvvline/window (stdscr)
-mvvline_set/window (stdscr)
-mvwadd_wch/window
-mvwadd_wchnstr/window
-mvwadd_wchstr/window
-mvwaddch/window
-mvwaddchnstr/window
-mvwaddchstr/window
-mvwaddnstr/window
-mvwaddnwstr/window
-mvwaddstr/window
-mvwaddwstr/window
-mvwchgat/window
-mvwdelch/window
-mvwget_wch/screen (input-operation)
-mvwget_wstr/screen (input-operation)
-mvwgetch/screen (input-operation)
-mvwgetn_wstr/screen (input-operation)
-mvwgetnstr/screen (input-operation)
-mvwgetstr/screen (input-operation)
-mvwhline/window
-mvwhline_set/window
-mvwin/window
-mvwin_wch/window
-mvwin_wchnstr/window
-mvwin_wchstr/window
-mvwinch/window
-mvwinchnstr/window
-mvwinchstr/window
-mvwinnstr/window
-mvwinnwstr/window
-mvwins_nwstr/window
-mvwins_wch/window
-mvwins_wstr/window
-mvwinsch/window
-mvwinsnstr/window
-mvwinsstr/window
-mvwinstr/window
-mvwinwstr/window
-mvwprintw/window
-mvwscanw/screen
-mvwvline/window
-mvwvline_set/window
-napms/reentrant
-newpad/global locks(windowlist)
-newscr/screen (readonly)
-newterm/global locks(screenlist)
-newwin/global locks(windowlist)
-nl/screen
-nocbreak/screen
-nodelay/window
-noecho/screen
-nofilter/global
-nonl/screen
-noqiflush/terminal
-noraw/screen
-notimeout/window
-numcodes/global (readonly)
-numfnames/global (readonly)
-numnames/global (readonly)
-ospeed/global
-overlay/window locks(source, target)
-overwrite/window locks(source, target)
-pair_content/screen
-pecho_wchar/screen
-pechochar/screen
-pnoutrefresh/screen
-prefresh/screen
-printw/window
-putp/global
-putwin/window
-qiflush/terminal
-raw/screen
-redrawwin/window
-refresh/screen
-reset_prog_mode/screen
-reset_shell_mode/screen
-resetty/terminal
-resize_term/screen locks(windowlist)
-resizeterm/screen
-restartterm/screen
-ripoffline/global (static data)
-savetty/terminal
-scanw/screen
-scr_dump/screen
-scr_init/screen
-scr_restore/screen
-scr_set/screen
-scrl/window (stdscr)
-scroll/window
-scrollok/window
-set_curterm/screen
-set_escdelay/screen
-set_tabsize/screen
-set_term/global locks(screenlist, screen)
-setcchar/reentrant
-setscrreg/window (stdscr)
-setupterm/global
-slk_attr/screen
-slk_attr_off/screen
-slk_attr_on/screen
-slk_attr_set/screen
-slk_attroff/screen
-slk_attron/screen
-slk_attrset/screen
-slk_clear/screen
-slk_color/screen
-slk_init/screen
-slk_label/screen
-slk_noutrefresh/screen
-slk_refresh/screen
-slk_restore/screen
-slk_set/screen
-slk_touch/screen
-slk_wset/screen
-standend/window
-standout/window
-start_color/screen
-stdscr/screen (readonly)
-strcodes/global (readonly)
-strfnames/global (readonly)
-strnames/global (readonly)
-subpad/window
-subwin/window
-syncok/window
-term_attrs/screen
-termattrs/screen
-termname/terminal
-tgetent/global
-tgetflag/global
-tgetnum/global
-tgetstr/global
-tgoto/global
-tigetflag/terminal
-tigetnum/terminal
-tigetstr/terminal
-timeout/window (stdscr)
-touchline/window
-touchwin/window
-tparm/global (static data)
-tputs/screen
-trace/global (static data)
-ttytype/screen (readonly)
-typeahead/screen
-unctrl/screen
-unget_wch/screen (input-operation)
-ungetch/screen (input-operation)
-ungetmouse/screen (input-operation)
-untouchwin/window
-use_default_colors/screen
-use_env/global (static data)
-use_extended_names/global (static data)
-use_legacy_coding/screen
-use_screen/global locks(screenlist, screen)
-use_window/global locks(windowlist, window)
-vid_attr/screen
-vid_puts/screen
-vidattr/screen
-vidputs/screen
-vline/window (stdscr)
-vline_set/window (stdscr)
-vw_printw/window
-vw_scanw/screen
-vwprintw/window
-vwscanw/screen
-wadd_wch/window
-wadd_wchnstr/window
-wadd_wchstr/window
-waddch/window
-waddchnstr/window
-waddchstr/window
-waddnstr/window
-waddnwstr/window
-waddstr/window
-waddwstr/window
-wattr_get/window
-wattr_off/window
-wattr_on/window
-wattr_set/window
-wattroff/window
-wattron/window
-wattrset/window
-wbkgd/window
-wbkgdset/window
-wbkgrnd/window
-wbkgrndset/window
-wborder/window
-wborder_set/window
-wchgat/window
-wclear/window
-wclrtobot/window
-wclrtoeol/window
-wcolor_set/window
-wcursyncup/screen (affects window plus parents)
-wdelch/window
-wdeleteln/window
-wecho_wchar/window
-wechochar/window
-wenclose/window
-werase/window
-wget_wch/screen (input-operation)
-wget_wstr/screen (input-operation)
-wgetbkgrnd/window
-wgetch/screen (input-operation)
-wgetdelay/window
-wgetn_wstr/screen (input-operation)
-wgetnstr/screen (input-operation)
-wgetparent/window
-wgetscrreg/window
-wgetstr/screen (input-operation)
-whline/window
-whline_set/window
-win_wch/window
-win_wchnstr/window
-win_wchstr/window
-winch/window
-winchnstr/window
-winchstr/window
-winnstr/window
-winnwstr/window
-wins_nwstr/window
-wins_wch/window
-wins_wstr/window
-winsch/window
-winsdelln/window
-winsertln/window
-winsnstr/window
-winsstr/window
-winstr/window
-winwstr/window
-wmouse_trafo/window
-wmove/window
-wnoutrefresh/screen
-wprintw/window
-wredrawln/window
-wrefresh/screen
-wresize/window locks(windowlist)
-wscanw/screen
-wscrl/window
-wsetscrreg/window
-wstandend/window
-wstandout/window
-wsyncdown/screen (affects window plus parents)
-wsyncup/screen (affects window plus parents)
-wtimeout/window
-wtouchln/window
-wunctrl/global (static data)
-wvline/window
-wvline_set/window
+center;
+Lb2 Lb
+Lb2 Lx.
+Symbol Scope
+_
+BC global
+COLORS screen (read-only)
+COLOR_PAIR reentrant
+COLOR_PAIRS screen (read-only)
+COLS screen (read-only)
+ESCDELAY screen (read-only; see \fBset_escdelay\fP)
+LINES screen (read-only)
+PAIR_NUMBER reentrant
+PC global
+SP global
+TABSIZE screen (read-only; see \fBset_tabsize\fP)
+UP global
+acs_map screen (read-only)
+add_wch window (\fBstdscr\fP)
+add_wchnstr window (\fBstdscr\fP)
+add_wchstr window (\fBstdscr\fP)
+addch window (\fBstdscr\fP)
+addchnstr window (\fBstdscr\fP)
+addchstr window (\fBstdscr\fP)
+addnstr window (\fBstdscr\fP)
+addnwstr window (\fBstdscr\fP)
+addstr window (\fBstdscr\fP)
+addwstr window (\fBstdscr\fP)
+assume_default_colors screen
+attr_get window (\fBstdscr\fP)
+attr_off window (\fBstdscr\fP)
+attr_on window (\fBstdscr\fP)
+attr_set window (\fBstdscr\fP)
+attroff window (\fBstdscr\fP)
+attron window (\fBstdscr\fP)
+attrset window (\fBstdscr\fP)
+baudrate screen
+beep screen
+bkgd window (\fBstdscr\fP)
+bkgdset window (\fBstdscr\fP)
+bkgrnd window (\fBstdscr\fP)
+bkgrndset window (\fBstdscr\fP)
+boolcodes global (read-only)
+boolfnames global (read-only)
+boolnames global (read-only)
+border window (\fBstdscr\fP)
+border_set window (\fBstdscr\fP)
+box window (\fBstdscr\fP)
+box_set window (\fBstdscr\fP)
+can_change_color terminal
+cbreak screen
+chgat window (\fBstdscr\fP)
+clear window (\fBstdscr\fP)
+clearok window
+clrtobot window (\fBstdscr\fP)
+clrtoeol window (\fBstdscr\fP)
+color_content screen
+color_set window (\fBstdscr\fP)
+copywin window (locks source, target)
+cur_term terminal
+curs_set screen
+curscr screen (read-only)
+curses_version global (read-only)
+def_prog_mode terminal
+def_shell_mode terminal
+define_key screen
+del_curterm screen
+delay_output screen
+delch window (\fBstdscr\fP)
+deleteln window (\fBstdscr\fP)
+delscreen global (locks screen list, screen)
+delwin global (locks window list)
+derwin screen
+doupdate screen
+dupwin screen (locks window)
+echo screen
+echo_wchar window (\fBstdscr\fP)
+echochar window (\fBstdscr\fP)
+endwin screen
+erase window (\fBstdscr\fP)
+erasechar window (\fBstdscr\fP)
+erasewchar window (\fBstdscr\fP)
+filter global
+flash terminal
+flushinp screen
+get_wch screen (input operation)
+get_wstr screen (input operation)
+getattrs window
+getbegx window
+getbegy window
+getbkgd window
+getbkgrnd window
+getcchar reentrant
+getch screen (input operation)
+getcurx window
+getcury window
+getmaxx window
+getmaxy window
+getmouse screen (input operation)
+getn_wstr screen (input operation)
+getnstr screen (input operation)
+getparx window
+getpary window
+getstr screen (input operation)
+getwin screen (input operation)
+halfdelay screen
+has_colors terminal
+has_ic terminal
+has_il terminal
+has_key screen
+hline window (\fBstdscr\fP)
+hline_set window (\fBstdscr\fP)
+idcok window
+idlok window
+immedok window
+in_wch window (\fBstdscr\fP)
+in_wchnstr window (\fBstdscr\fP)
+in_wchstr window (\fBstdscr\fP)
+inch window (\fBstdscr\fP)
+inchnstr window (\fBstdscr\fP)
+inchstr window (\fBstdscr\fP)
+init_color screen
+init_pair screen
+initscr global (locks screen list)
+innstr window (\fBstdscr\fP)
+innwstr window (\fBstdscr\fP)
+ins_nwstr window (\fBstdscr\fP)
+ins_wch window (\fBstdscr\fP)
+ins_wstr window (\fBstdscr\fP)
+insch window (\fBstdscr\fP)
+insdelln window (\fBstdscr\fP)
+insertln window (\fBstdscr\fP)
+insnstr window (\fBstdscr\fP)
+insstr window (\fBstdscr\fP)
+instr window (\fBstdscr\fP)
+intrflush terminal
+inwstr window (\fBstdscr\fP)
+is_cleared window
+is_idcok window
+is_idlok window
+is_immedok window
+is_keypad window
+is_leaveok window
+is_linetouched window
+is_nodelay window
+is_notimeout window
+is_scrollok window
+is_syncok window
+is_term_resized terminal
+is_wintouched window
+isendwin screen
+key_defined screen
+key_name global (static data)
+keybound screen
+keyname global (static data)
+keyok screen
+keypad window
+killchar terminal
+killwchar terminal
+leaveok window
+longname screen
+mcprint terminal
+meta screen
+mouse_trafo window (\fBstdscr\fP)
+mouseinterval screen
+mousemask screen
+move window (\fBstdscr\fP)
+mvadd_wch window (\fBstdscr\fP)
+mvadd_wchnstr window (\fBstdscr\fP)
+mvadd_wchstr window (\fBstdscr\fP)
+mvaddch window (\fBstdscr\fP)
+mvaddchnstr window (\fBstdscr\fP)
+mvaddchstr window (\fBstdscr\fP)
+mvaddnstr window (\fBstdscr\fP)
+mvaddnwstr window (\fBstdscr\fP)
+mvaddstr window (\fBstdscr\fP)
+mvaddwstr window (\fBstdscr\fP)
+mvchgat window (\fBstdscr\fP)
+mvcur screen
+mvdelch window (\fBstdscr\fP)
+mvderwin window (\fBstdscr\fP)
+mvget_wch screen (input operation)
+mvget_wstr screen (input operation)
+mvgetch screen (input operation)
+mvgetn_wstr screen (input operation)
+mvgetnstr screen (input operation)
+mvgetstr screen (input operation)
+mvhline window (\fBstdscr\fP)
+mvhline_set window (\fBstdscr\fP)
+mvin_wch window (\fBstdscr\fP)
+mvin_wchnstr window (\fBstdscr\fP)
+mvin_wchstr window (\fBstdscr\fP)
+mvinch window (\fBstdscr\fP)
+mvinchnstr window (\fBstdscr\fP)
+mvinchstr window (\fBstdscr\fP)
+mvinnstr window (\fBstdscr\fP)
+mvinnwstr window (\fBstdscr\fP)
+mvins_nwstr window (\fBstdscr\fP)
+mvins_wch window (\fBstdscr\fP)
+mvins_wstr window (\fBstdscr\fP)
+mvinsch window (\fBstdscr\fP)
+mvinsnstr window (\fBstdscr\fP)
+mvinsstr window (\fBstdscr\fP)
+mvinstr window (\fBstdscr\fP)
+mvinwstr window (\fBstdscr\fP)
+mvprintw window (\fBstdscr\fP)
+mvscanw screen
+mvvline window (\fBstdscr\fP)
+mvvline_set window (\fBstdscr\fP)
+mvwadd_wch window
+mvwadd_wchnstr window
+mvwadd_wchstr window
+mvwaddch window
+mvwaddchnstr window
+mvwaddchstr window
+mvwaddnstr window
+mvwaddnwstr window
+mvwaddstr window
+mvwaddwstr window
+mvwchgat window
+mvwdelch window
+mvwget_wch screen (input operation)
+mvwget_wstr screen (input operation)
+mvwgetch screen (input operation)
+mvwgetn_wstr screen (input operation)
+mvwgetnstr screen (input operation)
+mvwgetstr screen (input operation)
+mvwhline window
+mvwhline_set window
+mvwin window
+mvwin_wch window
+mvwin_wchnstr window
+mvwin_wchstr window
+mvwinch window
+mvwinchnstr window
+mvwinchstr window
+mvwinnstr window
+mvwinnwstr window
+mvwins_nwstr window
+mvwins_wch window
+mvwins_wstr window
+mvwinsch window
+mvwinsnstr window
+mvwinsstr window
+mvwinstr window
+mvwinwstr window
+mvwprintw window
+mvwscanw screen
+mvwvline window
+mvwvline_set window
+napms reentrant
+newpad global (locks window list)
+newscr screen (read-only)
+newterm global (locks screen list)
+newwin global (locks window list)
+nl screen
+nocbreak screen
+nodelay window
+noecho screen
+nofilter global
+nonl screen
+noqiflush terminal
+noraw screen
+notimeout window
+numcodes global (read-only)
+numfnames global (read-only)
+numnames global (read-only)
+ospeed global
+overlay window (locks source, target)
+overwrite window (locks source, target)
+pair_content screen
+pecho_wchar screen
+pechochar screen
+pnoutrefresh screen
+prefresh screen
+printw window
+putp global
+putwin window
+qiflush terminal
+raw screen
+redrawwin window
+refresh screen
+reset_prog_mode screen
+reset_shell_mode screen
+resetty terminal
+resize_term screen (locks window list)
+resizeterm screen
+restartterm screen
+ripoffline global (static data)
+savetty terminal
+scanw screen
+scr_dump screen
+scr_init screen
+scr_restore screen
+scr_set screen
+scrl window (\fBstdscr\fP)
+scroll window
+scrollok window
+set_curterm screen
+set_escdelay screen
+set_tabsize screen
+set_term global (locks screen list, screen)
+setcchar reentrant
+setscrreg window (\fBstdscr\fP)
+setupterm global
+slk_attr screen
+slk_attr_off screen
+slk_attr_on screen
+slk_attr_set screen
+slk_attroff screen
+slk_attron screen
+slk_attrset screen
+slk_clear screen
+slk_color screen
+slk_init screen
+slk_label screen
+slk_noutrefresh screen
+slk_refresh screen
+slk_restore screen
+slk_set screen
+slk_touch screen
+slk_wset screen
+standend window
+standout window
+start_color screen
+\fBstdscr\fP screen (read-only)
+strcodes global (read-only)
+strfnames global (read-only)
+strnames global (read-only)
+subpad window
+subwin window
+syncok window
+term_attrs screen
+termattrs screen
+termname terminal
+tgetent global
+tgetflag global
+tgetnum global
+tgetstr global
+tgoto global
+tigetflag terminal
+tigetnum terminal
+tigetstr terminal
+timeout window (\fBstdscr\fP)
+touchline window
+touchwin window
+tparm global (static data)
+tputs screen
+trace global (static data)
+ttytype screen (read-only)
+typeahead screen
+unctrl screen
+unget_wch screen (input operation)
+ungetch screen (input operation)
+ungetmouse screen (input operation)
+untouchwin window
+use_default_colors screen
+use_env global (static data)
+use_extended_names global (static data)
+use_legacy_coding screen
+use_screen global (locks screen list, screen)
+use_window global (locks window list, window)
+vid_attr screen
+vid_puts screen
+vidattr screen
+vidputs screen
+vline window (\fBstdscr\fP)
+vline_set window (\fBstdscr\fP)
+vw_printw window
+vw_scanw screen
+vwprintw window
+vwscanw screen
+wadd_wch window
+wadd_wchnstr window
+wadd_wchstr window
+waddch window
+waddchnstr window
+waddchstr window
+waddnstr window
+waddnwstr window
+waddstr window
+waddwstr window
+wattr_get window
+wattr_off window
+wattr_on window
+wattr_set window
+wattroff window
+wattron window
+wattrset window
+wbkgd window
+wbkgdset window
+wbkgrnd window
+wbkgrndset window
+wborder window
+wborder_set window
+wchgat window
+wclear window
+wclrtobot window
+wclrtoeol window
+wcolor_set window
+wcursyncup screen (affects window plus parents)
+wdelch window
+wdeleteln window
+wecho_wchar window
+wechochar window
+wenclose window
+werase window
+wget_wch screen (input operation)
+wget_wstr screen (input operation)
+wgetbkgrnd window
+wgetch screen (input operation)
+wgetdelay window
+wgetn_wstr screen (input operation)
+wgetnstr screen (input operation)
+wgetparent window
+wgetscrreg window
+wgetstr screen (input operation)
+whline window
+whline_set window
+win_wch window
+win_wchnstr window
+win_wchstr window
+winch window
+winchnstr window
+winchstr window
+winnstr window
+winnwstr window
+wins_nwstr window
+wins_wch window
+wins_wstr window
+winsch window
+winsdelln window
+winsertln window
+winsnstr window
+winsstr window
+winstr window
+winwstr window
+wmouse_trafo window
+wmove window
+wnoutrefresh screen
+wprintw window
+wredrawln window
+wrefresh screen
+wresize window (locks window list)
+wscanw screen
+wscrl window
+wsetscrreg window
+wstandend window
+wstandout window
+wsyncdown screen (affects window plus parents)
+wsyncup screen (affects window plus parents)
+wtimeout window
+wtouchln window
+wunctrl global (static data)
+wvline window
+wvline_set window
.TE
.\" ***************************************************************************
.SH RETURN VALUE
-These functions all return \fBTRUE\fP or \fBFALSE\fP, except as noted.
+\fB\%get_escdelay\fP returns the value of \fB\%ESCDELAY\fP.
+\fB\%set_escdelay\fP and \fB\%set_tabsize\fP return \fBERR\fP upon
+failure and \fBOK\fP upon successful completion.
+\fB\%use_screen\fP and \fB\%use_window\fP return the \fIint\fP returned
+by the user-supplied function they are called with.
.SH NOTES
-Both a macro and a function are provided for each name.
+\fI\%ncurses\fP provides both a C function and a preprocessor macro for
+each function documented in this page.
.SH PORTABILITY
-These routines are specific to ncurses.
+These routines are specific to \fI\%ncurses\fP.
They were not supported on Version 7, BSD or System V implementations.
-It is recommended that any code depending on ncurses extensions
-be conditioned using NCURSES_VERSION.
+It is recommended that any code depending on \fI\%ncurses\fP extensions
+be conditioned using \fB\%NCURSES_VERSION\fP.
.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBcurs_opaque\fR(3X),
-\fBcurs_variables\fR(3X).
+\fB\%curses\fP(3X),
+\fB\%curs_opaque\fP(3X),
+\fB\%curs_variables\fP(3X)
diff --git a/man/curs_touch.3x b/man/curs_touch.3x
index b5ea35b3fa3f..613b6958268d 100644
--- a/man/curs_touch.3x
+++ b/man/curs_touch.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2015,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,36 +27,32 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_touch.3x,v 1.23 2020/10/24 09:51:21 tom Exp $
-.TH curs_touch 3X ""
-.na
-.hy 0
+.\" $Id: curs_touch.3x,v 1.47 2024/04/20 21:20:07 tom Exp $
+.TH curs_touch 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
-\fBtouchwin\fR,
-\fBtouchline\fR,
-\fBuntouchwin\fR,
-\fBwtouchln\fR,
-\fBis_linetouched\fR,
-\fBis_wintouched\fR \- \fBcurses\fR refresh control routines
-.ad
-.hy
+\fB\%touchwin\fP,
+\fB\%touchline\fP,
+\fB\%untouchwin\fP,
+\fB\%wtouchln\fP,
+\fB\%is_linetouched\fP,
+\fB\%is_wintouched\fP \-
+control terminal output refresh in a \fIcurses\fR window
.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\fBint touchline(WINDOW *\fP\fIwin\fP\fB, int \fP\fIstart\fP\fB, int \fP\fIcount\fP\fB);\fR
-.sp
-\fBint touchwin(WINDOW *\fP\fIwin\fP\fB);\fR
-.br
-\fBint wtouchln(WINDOW *\fP\fIwin\fP\fB, int \fP\fIy\fP\fB, int \fP\fIn\fP\fB, int \fP\fIchanged\fP\fB);\fR
-.sp
-\fBint untouchwin(WINDOW *\fP\fIwin\fP\fB);\fR
-.sp
-\fBbool is_linetouched(WINDOW *\fP\fIwin\fP\fB, int \fP\fIline\fP\fB);\fR
-.br
-\fBbool is_wintouched(WINDOW *\fP\fIwin\fP\fB);\fR
-.br
+.nf
+\fB#include <curses.h>
+.PP
+\fBint touchline(WINDOW *\fIwin\fP, int \fIstart\fP, int \fIcount\fP);
+.PP
+\fBint touchwin(WINDOW *\fIwin\fP);
+\fBint wtouchln(WINDOW *\fIwin\fP, int \fIy\fP, int \fIn\fP, int \fIchanged\fP);
+.PP
+\fBint untouchwin(WINDOW *\fIwin\fP);
+.PP
+\fBbool is_linetouched(WINDOW *\fIwin\fP, int \fIline\fP);
+\fBbool is_wintouched(WINDOW *\fIwin\fP);
+.fi
.SH DESCRIPTION
-The \fBtouchwin\fR and \fBtouchline\fR routines throw away all
+The \fB\%touchwin\fP and \fB\%touchline\fP routines throw away all
optimization information about which parts of the window have been
touched, by pretending that the entire window has been drawn on.
This
@@ -64,35 +60,35 @@ is sometimes necessary when using overlapping windows, since a change
to one window affects the other window, but the records of which lines
have been changed in the other window do not reflect the change.
The
-routine \fBtouchline\fR only pretends that \fIcount\fR lines have been
-changed, beginning with line \fIstart\fR.
+routine \fB\%touchline\fP only pretends that \fIcount\fP lines have been
+changed, beginning with line \fIstart\fP.
.PP
-The \fBuntouchwin\fR routine marks all lines in the window as unchanged since
-the last call to \fBwrefresh\fR.
+The \fB\%untouchwin\fP routine marks all lines in the window as unchanged since
+the last call to \fB\%wrefresh\fP.
.PP
-The \fBwtouchln\fR routine makes \fIn\fR lines in the window, starting
-at line \fIy\fR, look as if they have (\fIchanged\fR\fB=1\fR) or have
-not (\fIchanged\fR\fB=0\fR) been changed since the last call to
-\fBwrefresh\fR.
+The \fB\%wtouchln\fP routine makes \fIn\fP lines in the window, starting
+at line \fIy\fR, look as if they have (\fIchanged\fB=1\fR) or have
+not (\fIchanged\fB=0\fR) been changed since the last call to
+\fB\%wrefresh\fP.
.PP
-The \fBis_linetouched\fR and \fBis_wintouched\fR routines return
-\fBTRUE\fR if the specified line/window was modified since the last
-call to \fBwrefresh\fR; otherwise they return \fBFALSE\fR. In
-addition, \fBis_linetouched\fR returns \fBERR\fR if \fIline\fR is not
+The \fB\%is_linetouched\fP and \fB\%is_wintouched\fP routines return
+\fBTRUE\fP if the specified line/window was modified since the last
+call to \fB\%wrefresh\fP; otherwise they return \fBFALSE\fP. In
+addition, \fB\%is_linetouched\fP returns \fBERR\fP if \fIline\fP is not
valid for the given window.
.SH RETURN VALUE
-All routines return the integer \fBERR\fR upon failure and an integer value
-other than \fBERR\fR upon successful completion, unless otherwise noted in the
+All routines return the integer \fBERR\fP upon failure and an integer value
+other than \fBERR\fP upon successful completion, unless otherwise noted in the
preceding routine descriptions.
.PP
-X/Open does not define any error conditions.
+X/Open Curses does not specify any error conditions.
In this implementation
.RS 3
.TP 5
\fBis_linetouched\fP
-returns an error
+returns an error
if the window pointer is null, or
-if the line number is outside the window.
+if the line number is outside the window boundaries.
.IP
The constant \fBERR\fP is distinct from \fBTRUE\fP and \fBFALSE\fP,
which are the normal return values of this function.
@@ -101,29 +97,28 @@ returning \fBERR\fP (which is neither \fBTRUE\fP nor \fBFALSE\fP)
may not be supported by the compiler.
.IP
To provide error-checking and also match the X/Open function prototype,
-the \fBERR\fP is provided by a macro named \fBis_linetouched\fP.
+the \fBERR\fP is provided by a macro named \fB\%is_linetouched\fP.
The actual function returns \fBFALSE\fP when it detects an error.
.TP 5
\fBwtouchln\fP
-returns an error
+returns an error
if the window pointer is null, or
-if the line number is outside the window.
+if the line number is outside the window boundaries.
.RE
+.SH NOTES
+All of these routines except \fB\%wtouchln\fP may be macros.
.SH PORTABILITY
-.PP
These functions were introduced by SVr4.
-The Solaris curses header file,
+The Solaris \fIcurses\fP header file,
for instance, defines both an actual function and macro for each.
The macros give the same result as the actual functions.
-SVr4 curses does not check the window parameter \fIwin\fP to ensure
+SVr4 \fIcurses\fP does not check the window parameter \fIwin\fP to ensure
that it is not \fBNULL\fP;
otherwise this implementation behaves the same as SVr4.
.PP
-The XSI Curses standard, Issue 4 describes these functions,
+X/Open Curses, Issue 4 describes these functions,
but defines no error conditions.
-.SH NOTES
-All of these routines except \fBwtouchln\fR may be macros.
.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBcurs_refresh\fR(3X),
-\fBcurs_variables\fR(3X).
+\fB\%curses\fP(3X),
+\fB\%curs_refresh\fP(3X),
+\fB\%curs_variables\fP(3X)
diff --git a/man/curs_trace.3x b/man/curs_trace.3x
index 513340a362f4..ddae79112541 100644
--- a/man/curs_trace.3x
+++ b/man/curs_trace.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2019,2020 Thomas E. Dickey *
+.\" Copyright 2019-2023,2024 Thomas E. Dickey *
.\" Copyright 2000-2016,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,84 +27,93 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_trace.3x,v 1.21 2020/02/02 23:34:34 tom Exp $
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: curs_trace.3x,v 1.50 2024/04/20 21:24:19 tom Exp $
+.TH curs_trace 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
-.TH curs_trace 3X ""
+.
+.de dS \" Start unfilled display.
+.nr aD \n(.j
.na
-.hy 0
+..
+.
+.de dE \" End unfilled display.
+.ad \n(.j
+.rr aD
+..
+.
.SH NAME
-\fBcurses_trace\fR,
-\fBtrace\fR,
-\fB_tracef\fR,
-\fB_traceattr\fR,
-\fB_traceattr2\fR,
-\fB_tracecchar_t\fR,
-\fB_tracecchar_t2\fR,
-\fB_tracechar\fR,
-\fB_tracechtype\fR,
-\fB_tracechtype2\fR,
-\fB_nc_tracebits\fR,
-\fB_tracedump\fR,
-\fB_tracemouse\fR \- \fBcurses\fR debugging routines
-.ad
-.hy
+\fB\%curses_trace\fP,
+\fB\%trace\fP,
+\fB\%_tracef\fP,
+\fB\%_traceattr\fP,
+\fB\%_traceattr2\fP,
+\fB\%_tracecchar_t\fP,
+\fB\%_tracecchar_t2\fP,
+\fB\%_tracechar\fP,
+\fB\%_tracechtype\fP,
+\fB\%_tracechtype2\fP,
+\fB\%_nc_tracebits\fP,
+\fB\%_tracedump\fP,
+\fB\%_tracemouse\fP \-
+\fIcurses\fR debugging routines
.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\fBunsigned curses_trace(const unsigned \fP\fIparam\fP\fB);\fR
-.sp
-\fBvoid _tracef(const char *\fP\fIformat\fP\fB, ...);\fR
-.sp
-\fBchar *_traceattr(attr_t \fP\fIattr\fP\fB);\fR
-.br
-\fBchar *_traceattr2(int \fP\fIbuffer\fP\fB, chtype \fP\fIch\fP\fB);\fR
-.br
-\fBchar *_tracecchar_t(const cchar_t *\fP\fIstring\fP\fB);\fR
-.br
-\fBchar *_tracecchar_t2(int \fP\fIbuffer\fP\fB, const cchar_t *\fP\fIstring\fP\fB);\fR
-.br
-\fBchar *_tracechar(int \fP\fIch\fP\fB);\fR
-.br
-\fBchar *_tracechtype(chtype \fP\fIch\fP\fB);\fR
-.br
-\fBchar *_tracechtype2(int \fP\fIbuffer\fP\fB, chtype \fP\fIch\fP\fB);\fR
-.sp
-\fBvoid _tracedump(const char *\fP\fIlabel\fP\fB, WINDOW *\fP\fIwin\fP\fB);\fR
-.br
-\fBchar *_nc_tracebits(void);\fR
-.br
-\fBchar *_tracemouse(const MEVENT *\fP\fIevent\fP\fB);\fR
-.sp
-/* deprecated */
-.br
-\fBvoid trace(const unsigned int \fP\fIparam\fP\fB);\fR
+.nf
+\fB#include <curses.h>
+.PP
+\fBunsigned curses_trace(const unsigned \fItrace-mask\fP);
+.PP
+\fBvoid _tracef(const char *\fIformat\fP, ...);
+.PP
+\fBchar *_traceattr(attr_t \fIattr\fP);
+\fBchar *_traceattr2(int \fIbuffer\fP, chtype \fIch\fP);
+\fBchar *_tracecchar_t(const cchar_t *\fIstring\fP);
+\fBchar *_tracecchar_t2(int \fIbuffer\fP, const cchar_t *\fIstring\fP);
+\fBchar *_tracechar(int \fIc\fP);
+\fBchar *_tracechtype(chtype \fIch\fP);
+\fBchar *_tracechtype2(int \fIbuffer\fP, chtype \fIch\fP);
+.PP
+\fBvoid _tracedump(const char *\fIlabel\fP, WINDOW *\fIwin\fP);
+\fBchar *_nc_tracebits(void);
+\fBchar *_tracemouse(const MEVENT *\fIevent\fP);
+.PP
+\fI/* deprecated */\fP
+\fBvoid trace(const unsigned int \fItrace-mask\fP);
+.fi
.SH DESCRIPTION
-The \fIcurses trace\fR routines are used for debugging the ncurses libraries,
-as well as applications which use the ncurses libraries.
+The \fIcurses trace\fP routines are used for debugging the
+\fI\%ncurses\fP libraries,
+as well as applications which use the \fI\%ncurses\fP libraries.
Some limitations apply:
.bP
Aside from \fBcurses_trace\fP,
the other functions are normally available only with the debugging library
-e.g., \fIlibncurses_g.a\fR.
+e.g., \fBlibncurses_g.a\fP.
.IP
All of the trace functions may be compiled into any model (shared, static,
-profile) by defining the symbol \fBTRACE\fR.
+profile) by defining the symbol \fBTRACE\fP.
.bP
Additionally, the functions which use \fBcchar_t\fP
are only available with the wide-character configuration of the libraries.
.SS Functions
The principal parts of this interface are
.bP
-\fBcurses_trace\fR, which selectively enables different tracing features, and
+\fBcurses_trace\fP, which selectively enables different tracing features, and
.bP
-\fB_tracef\fR, which writes formatted data to the \fItrace\fR file.
+\fB_tracef\fP, which writes formatted data to the \fItrace\fP file.
.IP
The other functions either return a pointer to a string-area
(allocated by the corresponding function), or return no value
@@ -116,22 +125,22 @@ To work around the problem of a single string-area per function,
some use a buffer-number parameter, telling the library to allocate
additional string-areas.
.PP
-The \fBcurses_trace\fR function is always available,
+The \fBcurses_trace\fP function is always available,
whether or not the other trace functions are available:
.bP
If tracing is available,
-calling \fBcurses_trace\fR with a nonzero parameter
+calling \fBcurses_trace\fP with a nonzero parameter
updates the trace mask,
and returns the previous trace mask.
.IP
When the trace mask is nonzero,
-ncurses creates the file \*(``trace\*('' in the current directory for output.
+\fI\%ncurses\fP creates the file \*(``trace\*('' in the current directory for output.
If the file already exists, no tracing is done.
.bP
If tracing is not available, \fBcurses_trace\fP returns zero (0).
-.SS Trace Parameter
+.SS "Trace Parameter"
The trace parameter is formed by OR'ing
-values from the list of \fBTRACE_\fP\fIxxx\fR definitions in \fB<curses.h>\fR.
+values from the list of \fBTRACE_\fIxxx\fR definitions in \fB<curses.h>\fR.
These include:
.TP 5
.B TRACE_DISABLE
@@ -167,7 +176,7 @@ trace all curses calls.
The parameters for each call are traced, as well as return values.
.TP 5
.B TRACE_VIRTPUT
-trace virtual character puts, i.e., calls to \fBaddch\fR.
+trace virtual character puts, i.e., calls to \fBaddch\fP.
.TP 5
.B TRACE_IEVENT
trace low-level input processing, including timeouts.
@@ -190,35 +199,11 @@ trace changes to video attributes and colors.
.B TRACE_MAXIMUM
maximum trace level, enables all of the separate trace features.
.PP
-Some tracing features are enabled whenever the \fBcurses_trace\fR parameter
+Some tracing features are enabled whenever the \fBcurses_trace\fP parameter
is nonzero.
Some features overlap.
The specific names are used as a guideline.
-.SS Initialization
-These functions check the \fBNCURSES_TRACE\fP environment variable,
-to set the tracing feature as if \fBcurses_trace\fP was called:
-.RS 4
-.PP
-.na
-.hy 0
-filter,
-initscr,
-new_prescr,
-newterm,
-nofilter,
-restartterm,
-ripoffline,
-setupterm,
-slk_init,
-tgetent,
-use_env,
-use_extended_names,
-use_tioctl
-.hy
-.ad
-.RE
-.SS Command-line Utilities
-.PP
+.SS "Command-line Utilities"
The command-line utilities such as \fBtic\fP(1) provide a verbose option
which extends the set of messages written using the \fBcurses_trace\fP function.
Both of these (\fB\-v\fP and \fBcurses_trace\fP)
@@ -228,22 +213,47 @@ which determines the messages which are written.
Because the command-line utilities may call initialization functions
such as \fBsetupterm\fP, \fBtgetent\fP or \fBuse_extended_names\fP,
some of their debugging output may be directed to the \fItrace\fP file
-if the \fBNCURSES_TRACE\fP environment variable is set:
+if the \fI\%NCURSES_TRACE\fP environment variable is set:
.bP
messages produced in the utility are written to the standard error.
.bP
messages produced by the underlying library are written to \fItrace\fP.
.PP
-If ncurses is built without tracing, none of the latter are produced,
+If \fI\%ncurses\fP is built without tracing,
+none of the latter are produced,
and fewer diagnostics are provided by the command-line utilities.
.SH RETURN VALUE
Routines which return a value are designed to be used as parameters
-to the \fB_tracef\fR routine.
+to the \fB_tracef\fP routine.
+.SH ENVIRONMENT
+.SS NCURSES_TRACE
+A positive integral value stored in this variable causes the following
+functions to enable the tracing feature as if
+.B \%curses_trace
+were called.
+.PP
+.dS
+.RS 4
+\fB\%filter\fP,
+\fB\%initscr\fP,
+\fB\%new_prescr\fP,
+\fB\%newterm\fP,
+\fB\%nofilter\fP,
+\fB\%restartterm\fP,
+\fB\%ripoffline\fP,
+\fB\%setupterm\fP,
+\fB\%slk_init\fP,
+\fB\%tgetent\fP,
+\fB\%use_env\fP,
+\fB\%use_extended_names\fP,
+\fB\%use_tioctl\fP
+.RE
+.dE
.SH PORTABILITY
-These functions are not part of the XSI interface.
+These functions are not part of the X/Open Curses interface.
Some other curses implementations are known to
have similar features,
-but they are not compatible with ncurses:
+but they are not compatible with \fI\%ncurses\fP:
.bP
SVr4 provided \fBtraceon\fP and \fBtraceoff\fP,
to control whether debugging information was written
@@ -262,21 +272,22 @@ only when a debug-library is built.
.IP
PDCurses has a short description of these functions,
with a note that they are not present in X/Open Curses,
-ncurses or NetBSD.
+\fI\%ncurses\fP or NetBSD.
It does not mention SVr4,
but the functions' inclusion in a header file section
labeled \*(``Quasi-standard\*('' hints at the origin.
.bP
NetBSD does not provide functions for enabling/disabling traces.
It uses environment variables
-\fBCURSES_TRACE_MASK\fP and
-\fBCURSES_TRACE_FILE\fP to determine what is traced,
+\fI\%CURSES_TRACE_MASK\fP and
+\fI\%CURSES_TRACE_FILE\fP to determine what is traced,
and where the results are written.
This is available only when a debug-library is built.
.IP
The NetBSD tracing feature is undocumented.
.PP
-A few ncurses functions are not provided when symbol versioning is used:
+A few \fI\%ncurses\fP functions are not provided when symbol versioning
+is used:
.RS 4
.PP
_nc_tracebits,
@@ -287,4 +298,4 @@ _tracemouse
The original \fBtrace\fP routine was deprecated because
it often conflicted with application names.
.SH SEE ALSO
-\fBcurses\fR(3X).
+\fB\%curses\fP(3X)
diff --git a/man/curs_util.3x b/man/curs_util.3x
index f833803a412d..1df0a1d3f394 100644
--- a/man/curs_util.3x
+++ b/man/curs_util.3x
@@ -1,6 +1,6 @@
'\" t
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2015,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,121 +28,133 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_util.3x,v 1.60 2020/12/19 22:44:46 tom Exp $
-.TH curs_util 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: curs_util.3x,v 1.101 2024/04/20 21:20:07 tom Exp $
+.TH curs_util 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
-.na
-.hy 0
.SH NAME
-\fBdelay_output\fR,
-\fBfilter\fR,
-\fBflushinp\fR,
-\fBgetwin\fR,
-\fBkey_name\fR,
-\fBkeyname\fR,
-\fBnofilter\fR,
-\fBputwin\fR,
-\fBunctrl\fR,
-\fBuse_env\fR,
-\fBuse_tioctl\fR,
-\fBwunctrl\fR \- miscellaneous \fBcurses\fR utility routines
-.ad
-.hy
+\fB\%delay_output\fP,
+\fB\%filter\fP,
+\fB\%flushinp\fP,
+\fB\%getwin\fP,
+\fB\%key_name\fP,
+\fB\%keyname\fP,
+\fB\%nofilter\fP,
+\fB\%putwin\fP,
+\fB\%unctrl\fP,
+\fB\%use_env\fP,
+\fB\%use_tioctl\fP,
+\fB\%wunctrl\fP \-
+miscellaneous \fIcurses\fR utility routines
.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\fBconst char *unctrl(chtype \fP\fIc\fP\fB);\fR
-.br
-\fBwchar_t *wunctrl(cchar_t *\fP\fIc\fP\fB);\fR
-.sp
-\fBconst char *keyname(int \fP\fIc\fP\fB);\fR
-.br
-\fBconst char *key_name(wchar_t \fP\fIw\fP\fB);\fR
-.sp
-\fBvoid filter(void);\fR
-.br
-\fBvoid nofilter(void);\fR
-.sp
-\fBvoid use_env(bool \fP\fIf\fP\fB);\fR
-.br
-\fBvoid use_tioctl(bool \fP\fIf\fP\fB);\fR
-.sp
-\fBint putwin(WINDOW *\fP\fIwin\fP\fB, FILE *\fP\fIfilep\fP\fB);\fR
-.br
-\fBWINDOW *getwin(FILE *\fP\fIfilep\fP\fB);\fR
-.sp
-\fBint delay_output(int \fP\fIms\fP\fB);\fR
-.br
-\fBint flushinp(void);\fR
-.br
-.SH DESCRIPTION
-.SS unctrl
+.nf
+\fB#include <curses.h>
.PP
-The \fBunctrl\fR routine returns a character string which is a printable
-representation of the character \fIc\fR, ignoring attributes.
-Control characters are displayed in the \fB^\fR\fIX\fR notation.
-Printing characters are displayed as is.
-The corresponding \fBwunctrl\fR returns a printable representation of
-a wide character.
-.SS keyname/key_name
+\fBconst char *unctrl(chtype \fIch\fP);
+\fBwchar_t *wunctrl(cchar_t *\fIwch\fP);
+.PP
+\fBconst char *keyname(int \fIc\fP);
+\fBconst char *key_name(wchar_t \fIwc\fP);
+.PP
+\fBvoid filter(void);
.PP
-The \fBkeyname\fR routine returns a character string
-corresponding to the key \fIc\fR:
+\fBvoid use_env(bool \fIf\fP);
+.PP
+\fBint putwin(WINDOW *\fIwin\fP, FILE *\fIfilep\fP);
+\fBWINDOW *getwin(FILE *\fIfilep\fP);
+.PP
+\fBint delay_output(int \fIms\fP);
+\fBint flushinp(void);
+.PP
+\fI/* extensions */
+\fBvoid nofilter(void);
+\fBvoid use_tioctl(bool \fIf\fP);
+.fi
+.SH DESCRIPTION
+.SS unctrl
+The \fBunctrl\fP routine returns a character string which is a printable
+representation of the character \fIch\fP:
.bP
Printable characters are displayed as themselves,
e.g., a one-character string containing the key.
.bP
-Control characters are displayed in the \fB^\fR\fIX\fR notation.
+Control characters are displayed in the \fB^\fIX\fR notation.
+.bP
+Printing characters are displayed as is.
.bP
DEL (character 127) is displayed as \fB^?\fP.
.bP
Values above 128 are either meta characters
(if the screen has not been initialized,
or if \fBmeta\fP(3X) has been called with a \fBTRUE\fP parameter),
-shown in the \fBM\-\fR\fIX\fR notation,
+shown in the \fBM\-\fIX\fR notation,
or are displayed as themselves.
In the latter case, the values may not be printable;
this follows the X/Open specification.
+.PP
+The corresponding \fBwunctrl\fP returns a printable representation of
+a complex character \fIwch\fP.
+.PP
+In both \fBunctrl\fP and \fBwunctrl\fP the attributes and color associated
+with the character parameter are ignored.
+.SS "keyname, key_name"
+The \fBkeyname\fP routine returns a character string
+corresponding to the key \fIc\fP.
+Key codes are different from character codes.
+.bP
+Key codes below 256 are characters.
+They are displayed using \fBunctrl\fP.
.bP
-Values above 256 may be the names of the names of function keys.
+Values above 256 may be the codes for function keys.
+The function key name is displayed.
.bP
-Otherwise (if there is no corresponding name) the function returns null,
-to denote an error.
+Otherwise (if there is no corresponding name and the key is not a character)
+the function returns null, to denote an error.
X/Open also lists an \*(``UNKNOWN KEY\*('' return value,
which some implementations return rather than null.
.LP
-The corresponding \fBkey_name\fR returns a character string corresponding
-to the wide-character value \fIw\fR.
-The two functions do not return the same set of strings;
-the latter returns null where the former would display a meta character.
-.SS filter/nofilter
-.PP
-The \fBfilter\fR routine, if used, must be called before \fBinitscr\fR or
-\fBnewterm\fR are called.
+The corresponding \fBkey_name\fP returns
+a multibyte character string corresponding
+to the wide-character value \fIw\fP.
+The two functions (\fBkeyname\fP and \fBkey_name\fP)
+do not return the same set of strings:
+.bP
+\fBkeyname\fP returns null where \fBkey_name\fP would display a meta character.
+.bP
+\fBkey_name\fP does not return the name of a function key.
+.SS "filter, nofilter"
+The \fBfilter\fP routine, if used, must be called before \fBinitscr\fP or
+\fBnewterm\fP are called.
Calling \fBfilter\fP causes these changes in initialization:
.bP
-\fBLINES\fR is set to 1;
+\fBLINES\fP is set to 1;
.bP
the capabilities
-\fBclear\fR,
-\fBcud1\fR,
-\fBcud\fR,
-\fBcup\fR,
-\fBcuu1\fR,
-\fBcuu\fR,
-\fBvpa\fR
+\fBclear\fP,
+\fBcud1\fP,
+\fBcud\fP,
+\fBcup\fP,
+\fBcuu1\fP,
+\fBcuu\fP,
+\fBvpa\fP
are disabled;
.bP
the capability \fBed\fP is disabled if \fBbce\fP is set;
.bP
-and the \fBhome\fR string is set to the value of \fBcr\fR.
+and the \fBhome\fP string is set to the value of \fBcr\fP.
.PP
The \fBnofilter\fP routine cancels the effect of a preceding \fBfilter\fP
call.
@@ -151,15 +163,15 @@ using a different value of \fB$TERM\fP.
The limitation arises because the \fBfilter\fP routine modifies the
in-memory copy of the terminal information.
.SS use_env
-.PP
-The \fBuse_env\fR routine, if used,
-should be called before \fBinitscr\fR or
-\fBnewterm\fR are called
+The \fBuse_env\fP routine, if used,
+should be called before \fBinitscr\fP or
+\fBnewterm\fP are called
(because those compute the screen size).
-It modifies the way \fBncurses\fP treats environment variables
+It modifies the way \fI\%ncurses\fP treats environment variables
when determining the screen size.
.bP
-Normally \fBncurses\fP looks first at the terminal database for the screen size.
+Normally \fI\%ncurses\fP looks first at the terminal database for the
+screen size.
.IP
If \fBuse_env\fP was called with \fBFALSE\fP for parameter,
it stops here unless
@@ -170,74 +182,74 @@ If successful,
it overrides the values from the terminal database.
.bP
Finally (unless \fBuse_env\fP was called with \fBFALSE\fP parameter),
-\fBncurses\fP examines the \fBLINES\fR or \fBCOLUMNS\fR environment variables,
+\fI\%ncurses\fP examines the \fILINES\fP or \fI\%COLUMNS\fP environment
+variables,
using a value in those to override the results
from the operating system or terminal database.
.IP
-\fBNcurses\fP also updates the screen size in response to \fBSIGWINCH\fP,
-unless overridden by the \fBLINES\fR or \fBCOLUMNS\fR environment variables,
+\fI\%curses\fP also updates the screen size in response to
+\fBSIGWINCH\fP,
+unless overridden by the \fILINES\fP or \fI\%COLUMNS\fP environment
+variables,
.SS use_tioctl
-.PP
-The \fBuse_tioctl\fR routine, if used,
-should be called before \fBinitscr\fR or \fBnewterm\fR are called
+The \fBuse_tioctl\fP routine, if used,
+should be called before \fBinitscr\fP or \fBnewterm\fP are called
(because those compute the screen size).
-After \fBuse_tioctl\fR is called with \fBTRUE\fR as an argument,
-\fBncurses\fP modifies the last step in its computation
+After \fBuse_tioctl\fP is called with \fBTRUE\fP as an argument,
+\fI\%ncurses\fP modifies the last step in its computation
of screen size as follows:
.bP
-checks if the \fBLINES\fR and \fBCOLUMNS\fR environment variables
+checks if the \fILINES\fP and \fI\%COLUMNS\fP environment variables
are set to a number greater than zero.
.bP
-for each, \fBncurses\fP updates the corresponding environment variable
+for each, \fI\%ncurses\fP updates the corresponding environment variable
with the value that it has obtained via operating system call
or from the terminal database.
.bP
-\fBncurses\fP re-fetches the value of the environment variables so that
-it is still the environment variables which set the screen size.
+\fI\%ncurses\fP re-fetches the value of the environment variables so
+that it is still the environment variables which set the screen size.
.PP
-The \fBuse_env\fP and \fBuse_tioctl\fP routines combine as
-summarized here:
+The \fB\%use_env\fP and \fB\%use_tioctl\fP routines combine as follows.
+.IP
.TS
-center tab(/);
-l l l
-_ _ _
-lw7 lw7 lw40.
-\fIuse_env\fR/\fIuse_tioctl\fR/\fISummary\fR
-TRUE/FALSE/T{
+lB lB lB
+lB lB lx.
+use_env use_tioctl Summary
+_
+TRUE FALSE T{
This is the default behavior.
-\fBncurses\fP uses operating system calls
-unless overridden by $LINES or $COLUMNS environment variables.
-T}
-TRUE/TRUE/T{
-\fBncurses\fP updates $LINES and $COLUMNS based on operating system calls.
+\fI\%ncurses\fP uses operating system calls
+unless overridden by \fILINES\fP or \fI\%COLUMNS\fP environment
+variables;
+default.
T}
-FALSE/TRUE/T{
-\fBncurses\fP ignores $LINES and $COLUMNS,
-uses operating system calls to obtain size.
+TRUE TRUE T{
+\fI\%ncurses\fP updates \fILINES\fP and \fI\%COLUMNS\fP based on
+operating system calls.
T}
-FALSE/FALSE/T{
-\fBncurses\fP relies on the terminal database to determine size.
+FALSE TRUE T{
+\fI\%ncurses\fP ignores \fILINES\fP and \fI\%COLUMNS\fP,
+using operating system calls to obtain size.
T}
.TE
-.SS putwin/getwin
-.PP
-The \fBputwin\fR routine writes all data associated
-with window (or pad) \fIwin\fR into
-the file to which \fIfilep\fR points.
+.SS "putwin, getwin"
+The \fBputwin\fP routine writes all data associated
+with window (or pad) \fIwin\fP into
+the file to which \fIfilep\fP points.
This information can be later retrieved
-using the \fBgetwin\fR function.
+using the \fBgetwin\fP function.
.PP
-The \fBgetwin\fR routine reads window related data stored in the file by
-\fBputwin\fR.
+The \fBgetwin\fP routine reads window related data stored in the file by
+\fBputwin\fP.
The routine then creates and initializes a new window using that
data.
It returns a pointer to the new window.
There are a few caveats:
.bP
-the data written is a copy of the \fBWINDOW\fP structure,
+the data written is a copy of the \fI\%WINDOW\fP structure,
and its associated character cells.
-The format differs between the wide-character (\fBncursesw\fP) and
-non-wide (\fBncurses\fP) libraries.
+The format differs between the wide-character (\fI\%ncursesw\fP) and
+non-wide (\fI\%ncurses\fP) libraries.
You can transfer data between the two, however.
.bP
the retrieved window is always created as a top-level window (or pad),
@@ -249,29 +261,38 @@ If cells in the retrieved window use color pairs which have not been
created in the application using \fBinit_pair\fP,
they will not be colored when the window is refreshed.
.SS delay_output
-.PP
-The \fBdelay_output\fR routine inserts an \fIms\fR millisecond pause
+The \fBdelay_output\fP routine inserts an \fIms\fP millisecond pause
in output.
-This routine should not be used extensively because
-padding characters are used rather than a CPU pause.
-If no padding character is specified,
-this uses \fBnapms\fR to perform the delay.
-.SS flushinp
+Employ this function judiciously when terminal output uses padding,
+because \fI\%ncurses\fP transmits null characters
+(consuming CPU and I/O resources)
+instead of sleeping and requesting resumption from the operating system.
+Padding is used unless:
+.bP
+the terminal description has \fBnpc\fP (\fBno_pad_char\fP) capability, or
+.bP
+the environment variable \fB\%NCURSES_NO_PADDING\fP is set.
.PP
-The \fBflushinp\fR routine throws away any typeahead that has been typed by the
+If padding is not in use,
+\fI\%ncurses\fP uses \fBnapms\fP to perform the delay.
+If the value of \fIms\fP exceeds 30,000
+(thirty seconds),
+it is capped at that value.
+.SS flushinp
+The \fBflushinp\fP routine throws away any typeahead that has been typed by the
user and has not yet been read by the program.
.SH RETURN VALUE
-Except for \fBflushinp\fR, routines that return an integer return \fBERR\fR
-upon failure and \fBOK\fR (SVr4 specifies only "an integer value other than
-\fBERR\fR") upon successful completion.
+Except for \fBflushinp\fP, routines that return an integer return \fBERR\fP
+upon failure and \fBOK\fP (SVr4 specifies only "an integer value other than
+\fBERR\fP") upon successful completion.
.PP
-Routines that return pointers return \fBNULL\fR on error.
+Routines that return pointers return \fBNULL\fP on error.
.PP
-X/Open does not define any error conditions.
+X/Open Curses does not specify any error conditions.
In this implementation
.RS 3
.TP 5
-\fBflushinp\fR
+\fBflushinp\fP
returns an error if the terminal was not initialized.
.TP 5
\fBputwin\fP
@@ -279,13 +300,22 @@ returns an error if the associated \fBfwrite\fP calls return an error.
.RE
.SH PORTABILITY
.SS filter
-.PP
-The SVr4 documentation describes the action of \fBfilter\fR only in the vaguest
+The SVr4 documentation describes the action of \fBfilter\fP only in the vaguest
terms.
-The description here is adapted from the XSI Curses standard (which
-erroneously fails to describe the disabling of \fBcuu\fR).
-.SS keyname
+The description here is adapted from X/Open Curses (which
+erroneously fails to describe the disabling of \fBcuu\fP).
+.SS "delay_output padding"
+The limitation to 30 seconds
+and the use of \fBnapms\fP
+differ from other implementations.
+.bP
+SVr4 curses does not delay if no padding character is available.
+.bP
+NetBSD curses uses \fBnapms\fP when no padding character is available,
+but does not take timing into account when using the padding character.
.PP
+Neither limits the delay.
+.SS keyname
The \fBkeyname\fP function may return the names of user-defined
string capabilities which are defined in the terminfo entry via the \fB\-x\fP
option of \fB@TIC@\fP.
@@ -296,14 +326,13 @@ the same value for different runs because user-defined codes are
merged from all terminal descriptions which have been loaded.
The \fBuse_extended_names\fP(3X) function controls whether this data is
loaded when the terminal description is read by the library.
-.SS nofilter/use_tioctl
-.PP
-The \fBnofilter\fP and \fBuse_tioctl\fP routines are specific to \fBncurses\fP.
+.SS "nofilter, use_tioctl"
+The \fBnofilter\fP and \fBuse_tioctl\fP routines are specific to
+\fI\%ncurses\fP.
They were not supported on Version 7, BSD or System V implementations.
-It is recommended that any code depending on \fBncurses\fP extensions
-be conditioned using NCURSES_VERSION.
-.SS putwin/getwin
-.PP
+It is recommended that any code depending on \fI\%ncurses\fP extensions
+be conditioned using \fBNCURSES_VERSION\fP.
+.SS "putwin/getwin file-format"
The \fBputwin\fP and \fBgetwin\fP functions have several issues with
portability:
.bP
@@ -318,9 +347,10 @@ the University of California, Berkeley (in 1982)
and were later (in 1988) incorporated into SVr4.
Oddly, there are no such functions in the 4.3BSD curses sources.
.bP
-Most implementations simply dump the binary \fBWINDOW\fP structure to the file.
+Most implementations simply dump the binary \fI\%WINDOW\fP structure
+to the file.
These include SVr4 curses, NetBSD and PDCurses,
-as well as older \fBncurses\fP versions.
+as well as older \fI\%ncurses\fP versions.
This implementation
(as well as the X/Open variant of Solaris curses, dated 1995)
uses textual dumps.
@@ -333,10 +363,9 @@ these functions.
Doing that can run into problems mixing block- and buffered-I/O.
This implementation reduces the problem on writes by flushing the output.
However, reading from a file written using mixed schemes may not be successful.
-.SS unctrl/wunctrl
-.PP
-The XSI Curses standard, Issue 4 describes these functions.
-It states that \fBunctrl\fR and \fBwunctrl\fR will return a null pointer if
+.SS "unctrl, wunctrl"
+X/Open Curses, Issue 4 describes these functions.
+It states that \fBunctrl\fP and \fBwunctrl\fP will return a null pointer if
unsuccessful, but does not define any error conditions.
This implementation checks for three cases:
.bP
@@ -358,7 +387,7 @@ and returns the \*(``~@\*('', etc., values in that case.
parameter values outside the 0 to 255 range.
\fBunctrl\fP returns a null pointer.
.PP
-The strings returned by \fBunctrl\fR in this implementation are determined
+The strings returned by \fBunctrl\fP in this implementation are determined
at compile time,
showing C1 controls from the upper-128 codes
with a \*(``~\*('' prefix rather than \*(``^\*(''.
@@ -384,24 +413,23 @@ When treating them as \*(``meta\*('' keys
this implementation returns strings \*(``M\-^@\*('', \*(``M\-^A\*('', etc.
.PP
X/Open Curses documents \fBunctrl\fP as declared in \fB<unctrl.h>\fP,
-which \fBncurses\fP does.
-However, \fBncurses\fP' \fB<curses.h>\fP includes \fB<unctrl.h>\fP,
+which \fI\%ncurses\fP does.
+However, \fI\%ncurses\fP' \fB<curses.h>\fP includes \fB<unctrl.h>\fP,
matching the behavior of SVr4 curses.
Other implementations may not do that.
-.SS use_env/use_tioctl
-.PP
-If \fBncurses\fP is configured to provide the sp-functions extension,
+.SS "use_env, use_tioctl"
+If \fI\%ncurses\fP is configured to provide the sp-functions extension,
the state of \fBuse_env\fP and \fBuse_tioctl\fP may be updated before
creating each \fIscreen\fP rather than once only
-(\fBcurs_sp_funcs\fR(3X)).
+(\fBcurs_sp_funcs\fP(3X)).
This feature of \fBuse_env\fP
-is not provided by other implementation of curses.
+is not provided by other implementations of curses.
.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBcurs_initscr\fR(3X),
-\fBcurs_inopts\fR(3X),
-\fBcurs_kernel\fR(3X),
-\fBcurs_scr_dump\fR(3X),
-\fBcurs_sp_funcs\fR(3X),
-\fBcurs_variables\fR(3X),
-\fBlegacy_coding\fR(3X).
+\fB\%curses\fP(3X),
+\fB\%curs_initscr\fP(3X),
+\fB\%curs_inopts\fP(3X),
+\fB\%curs_kernel\fP(3X),
+\fB\%curs_scr_dump\fP(3X),
+\fB\%curs_sp_funcs\fP(3X),
+\fB\%curs_variables\fP(3X),
+\fB\%legacy_coding\fP(3X)
diff --git a/man/curs_variables.3x b/man/curs_variables.3x
index 25294dfeabf5..467b69444565 100644
--- a/man/curs_variables.3x
+++ b/man/curs_variables.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 2010-2015,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,162 +27,303 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_variables.3x,v 1.15 2020/04/18 14:29:07 tom Exp $
-.TH curs_variables 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: curs_variables.3x,v 1.47 2024/04/13 22:37:35 tom Exp $
+.TH curs_variables 3X 2024-04-13 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
+.ie \n(.g .ds : \:
+.el .ds : \" empty
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
-.ds n 5
-.na
-.hy 0
+.
.SH NAME
-\fBCOLORS\fR,
-\fBCOLOR_PAIRS\fR,
-\fBCOLS\fR,
-\fBESCDELAY\fR,
-\fBLINES\fR,
-\fBTABSIZE\fR,
-\fBcurscr\fR,
-\fBnewscr\fR,
-\fBstdscr\fR
-\- \fBcurses\fR global variables
-.ad
-.hy
+\fI\%bool\fP,
+\fI\%chtype\fP,
+\fI\%cchar_t\fP,
+\fI\%attr_t\fP,
+\fI\%SCREEN\fP,
+\fI\%WINDOW\fP,
+\fB\%TRUE\fP,
+\fB\%FALSE\fP,
+\fB\%ERR\fP,
+\fB\%OK\fP,
+\fB\%curscr\fP,
+\fB\%newscr\fP,
+\fB\%stdscr\fP,
+\fB\%COLORS\fP,
+\fB\%COLOR_PAIRS\fP,
+\fB\%COLS\fP,
+\fB\%LINES\fP,
+\fB\%ESCDELAY\fP,
+\fB\%TABSIZE\fP \-
+\fIcurses\fR data types, constants, and global variables
.SH SYNOPSIS
.nf
-\fB#include <curses.h>\fR
-.PP
-\fBint COLOR_PAIRS;\fR
-.br
-\fBint COLORS;\fR
-.br
-\fBint COLS;\fR
-.br
-\fBint ESCDELAY;\fR
-.br
-\fBint LINES;\fR
-.br
-\fBint TABSIZE;\fR
-.br
-\fBWINDOW * curscr;\fR
-.br
-\fBWINDOW * newscr;\fR
-.br
-\fBWINDOW * stdscr;\fR
+\fB#include <curses.h>
+.PP
+\fI/* data types */
+\fBtypedef \fI/*\fP .\|.\|. \fI*/\fP bool;
+\fBtypedef \fI/*\fP .\|.\|. \fI*/\fP chtype;
+\fBtypedef \fI/*\fP .\|.\|. \fI*/\fP cchar_t;
+\fBtypedef \fI/*\fP .\|.\|. \fI*/\fP attr_t;
+\fBtypedef \fI/*\fP .\|.\|. \fI*/\fP SCREEN;
+\fBtypedef \fI/*\fP .\|.\|. \fI*/\fP WINDOW;
+.PP
+\fI/* constants */
+\fBconst bool TRUE;
+\fBconst bool FALSE;
+.PP
+\fBconst \fI/*\fP .\|.\|. \fI*/\fP ERR;
+\fBconst \fI/*\fP .\|.\|. \fI*/\fP OK;
+.PP
+\fI/* variables */
+\fBint COLORS;
+\fBint COLOR_PAIRS;
+\fBint COLS;
+\fBint LINES;
+\fBWINDOW * curscr;
+\fBWINDOW * stdscr;
+.PP
+\fI/* extensions */
+\fBint ESCDELAY;
+\fBint TABSIZE;
+\fBWINDOW * newscr;
.fi
.SH DESCRIPTION
-This page summarizes variables provided by the \fBcurses\fP library.
-A more complete description is given in the \fBcurses\fP(3X) manual page.
+This page summarizes data types,
+constants,
+and variables provided by the \fIcurses\fP library.
+Locate further discussion in \fB\%curses\fP(3X).
.PP
-Depending on the configuration, these may be actual variables,
-or macros (see \fBcurs_threads\fR(3X) and \fBcurs_opaque\fR(3X))
-which provide read-only access to \fIcurses\fP's state.
-In either case, applications should treat them as read-only to avoid
+Depending on \fI\%ncurses\fP's build-time configuration,
+the variables may instead be
+macros (see \fB\%curs_threads\fP(3X) and \fB\%curs_opaque\fP(3X))
+that provide read-only access to the library's state.
+In either case,
+applications should treat them as read-only to avoid
confusing the library.
-.SS COLOR_PAIRS
-After initializing curses, this variable contains the number of color pairs
-which the terminal can support.
-Usually the number of color pairs will be the product \fBCOLORS\fP*\fBCOLORS\fP,
-however this is not always true:
-.bP
-a few terminals use HLS colors, which do not follow this rule
-.bP
-terminals supporting a large number of colors are limited by the number
-of color pairs that can be represented in a \fIsigned short\fP value.
+.SH "CONSTANTS"
+.SS "TRUE, FALSE"
+The \fIcurses\fP library defines \fBTRUE\fP and \fBFALSE\fP
+to represent the values of the Boolean data type.
+.SS "ERR, OK"
+\fIcurses\fP and \fIterminfo\fP routines frequently return these
+constant integral values indicating failure and success,
+respectively.
+.SH "PREDEFINED TYPES"
+.SS "\fIbool\fP"
+X/Open Issue 4 \fIcurses\fP (1996) preceded the ISO C99 and ISO C++98
+standards,
+each of which also defined a Boolean data type.
+The \fIcurses\fP library requires an integral type \fIbool\fP.
+.PP
+\fB\%ncurses\fP' configure script attempts to discover the
+data type used by the system's C and C++ compilers,
+to reuse for the \fIcurses\fP \fIbool\fP.
+.SS "\fIchtype\fP"
+The \fI\%chtype\fP integral type combines a
+(\*(``narrow\*('',
+8-bit)
+character with attributes encoding the character's \fIrendition\fP,
+such as the styling of its typeface and/or foreground and background
+colors.
+See,
+for example,
+\fB\%addch\fP(3X),
+\fB\%attron\fP(3X),
+and
+\fB\%inch\fP(3X).
+.SS "\fIcchar_t\fP, \fIattr_t\fP"
+\fI\%chtype\fP is too small for the standard C library's wide-character
+type,
+\fIwchar_t\fP.
+\fI\%cchar_t\fP is a type that can accommodate an \fI\%attr_t\fP and
+enough wide characters to store what Unicode terms a \fIgrapheme cluster\fP
+(a \*(``user-perceived character\*('' [UAX #29],
+which may nevertheless require several character encoding units to
+represent).
+\fI\%attr_t\fP is an integral type storing \*(``wide\*('' attributes that
+apply to \fI\%cchar_t\fPs.
+See,
+for example,
+\fB\%add_wch\fP(3X),
+\fB\%attr_on\fP(3X),
+and
+\fB\%in_wch\fP(3X).
+.SS "\fISCREEN\fP"
+.I curses
+manages a terminal device with this structure type;
+see \fB\%initscr\fP(3X).
+.SS "\fIWINDOW\fP"
+.I curses
+represents rectangular portions of the terminal screen with the
+.I \%WINDOW
+structure type;
+see subsection \*(``Overview\*('' of \fB\%ncurses\fP(3X).
+.SH "VARIABLES"
+.SS "curscr, stdscr, newscr"
+The library records updates to the terminal screen in a window named
+\fB\%curscr\fP.
+This object is referred to as the \*(``physical screen\*('' in
+\fB\%curs_refresh\fP(3X) and
+\fB\%curs_outopts\fP(3X).
+.PP
+\fI\%ncurses\fP collects pending updates to the terminal screen in a
+window named \fB\%newscr\fP.
+This object is referred to as the \*(``virtual screen\*('' in the
+\fB\%curs_kernel\fP(3X),
+\fB\%curs_refresh\fP(3X),
+and
+\fB\%curs_outopts\fP(3X).
+When the screen is refreshed,
+\fIcurses\fP determines a minimal set of updates using the terminal's
+capabilities to make \fB\%curscr\fP look like \fB\%newscr\fP.
+.PP
+Once \fIcurses\fP is initialized,
+it creates a window named \fB\%stdscr\fP.
+It is the same size as the terminal screen and is the default window
+used by routines that do not take a parameter identifying one.
+Many \fIcurses\fP functions use this window.
.SS COLORS
-After initializing curses, this variable contains the number of colors
-which the terminal can support.
-.SS COLS
-After initializing curses, this variable contains the width of the screen,
-i.e., the number of columns.
+Once \fIcurses\fP is initialized,
+\fB\%COLORS\fP
+contains the number of colors supported by the terminal;
+see \fB\%curs_color\fP(3X).
+.SS COLOR_PAIRS
+Once \fIcurses\fP is initialized,
+\fB\%COLOR_PAIRS\fP
+contains the number of color pairs supported by the terminal;
+see \fB\%curs_color\fP(3X).
+.SS "COLS, LINES"
+Once \fIcurses\fP is initialized,
+.B \%COLS
+and
+.B LINES
+contain the screen's width and height in character cells,
+respectively;
+that is,
+the number of columns and lines.
.SS ESCDELAY
-This variable holds the number of milliseconds to wait after reading an
-escape character,
-to distinguish between an individual escape character entered on the
-keyboard from escape sequences sent by cursor- and function-keys
-(see curses(3X)).
-.SS LINES
-After initializing curses, this variable contains the height of the screen,
-i.e., the number of lines.
+For
+.I curses
+to distinguish the ESC character resulting from a user's press of the
+\*(``Escape\*('' key on the input device from one beginning an
+.I "escape sequence"
+(as commonly produced by function keys),
+it waits after the escape character to see if further characters are
+available on the input stream within a short interval.
+.B \%ESCDELAY
+stores this interval in milliseconds.
+.PP
+If \fB\%keypad\fP(3X) is disabled for the
+.I curses
+window receiving input,
+a program must disambiguate escape sequences itself.
.SS TABSIZE
-This variable holds the number of columns used by the \fIcurses\fP library
-when converting a tab character to spaces as it adds the tab to a window
-(see \fBcurs_addch\fP(3X).
-.SS The Current Screen
-This implementation of curses uses a special window \fBcurscr\fP to
-record its updates to the terminal screen.
-.PP
-This is referred to as the \*(``physical screen\*('' in the
-\fBcurs_refresh\fR(3X) and
-\fBcurs_outopts\fR(3X) manual pages.
-.SS The New Screen
-This implementation of curses uses a special window \fBnewscr\fP to
-hold updates to the terminal screen before applying them to \fBcurscr\fP.
-.PP
-This is referred to as the \*(``virtual screen\*('' in the
-\fBcurs_kernel\fR(3X),
-\fBcurs_refresh\fR(3X) and
-\fBcurs_outopts\fR(3X) manual pages.
-.SS The Standard Screen
-Upon initializing curses,
-a default window called \fBstdscr\fP,
-which is the size of the terminal screen, is created.
-Many curses functions use this window.
+The \fIcurses\fP library converts a tab character to this number of
+spaces as it adds a tab to a window;
+see \fB\%curs_addch\fP(3X).
.SH NOTES
-The curses library is initialized using either \fBinitscr\fR(3X),
-or \fBnewterm\fR(3X).
+Either \fB\%initscr\fP(3X) or \fB\%newterm\fP(3X) initializes
+\fIcurses\fP.
.PP
-If \fBcurses\fP is configured to use separate curses/terminfo libraries,
-most of these variables reside in the curses library.
+If
+.I \%ncurses
+is configured to provide separate
+.I curses
+and
+.I \%tinfo
+libraries,
+most of these variables reside in the former.
.SH PORTABILITY
-\fBTABSIZE\fP is a feature of SVr4 curses
-which is not documented by X/Open curses.
+The X/Open Curses standard documents all of the foregoing types and
+symbols except for \fB\%newscr\fP,
+\fB\%TABSIZE\fP,
+and \fB\%ESCDELAY\fP.
+.PP
+X/Open Curses describes \fB\%curscr\fP only as \*(``an internal data
+structure\*('';
+SVr4 gave more details,
+noting its use \*(``for certain low-level operations like clearing and
+redrawing a screen containing garbage\*(''.
+.\" SVID 4, Volume 3, p. 408
+Neither specified its interaction with the rest of the interface beyond
+use as an argument to \fB\%clearok\fP(3X) and \fB\%wrefresh\fP(3X).
+.PP
+\fB\%newscr\fP is a feature of SVr4 \fIcurses\fP.
+When refreshing the screen,
+it is used as a working area for combining the standard window
+\fB\%stdscr\fP with any others the application may have created with
+\fB\%newwin\fP(3X).
+When the update of \fB\%newscr\fP is complete,
+\fIcurses\fP modifies \fB\%curscr\fP to match \fB\%newscr\fP.
+.PP
+\fB\%TABSIZE\fP is a feature of SVr4 \fIcurses\fP.
.bP
-In SVr4 curses, \fBTABSIZE\fP is initially set from the terminal description's
-\fBinit_tabs\fP capability.
-After that, it can be altered by the applications using SVr4 curses.
-.IP
-SVr4 curses uses the current value of \fBTABSIZE\fP to
-compute the position of tabstops for updating both
-the virtual screen with \fBaddch\fP(3X) as well as
-the physical screen with \fBmvcur\fP(3X).
+SVr4 initially sets \fB\%TABSIZE\fP from the terminal description's
+\fB\%init_tabs\fP capability.
+After that,
+it can be altered by applications using SVr4 \fIcurses\fP.
.bP
-This implementation uses the current value of \fBTABSIZE\fP only for
-updating the virtual screen.
-It uses the terminal description's \fBit\fP (\fBinit_tabs\fP) capability for
-computing hardware tabs (i.e., tab stops on the physical screen).
+SVr4 \fIcurses\fP uses the value of \fB\%TABSIZE\fP to compute the
+position of tab stops when updating both
+the virtual screen with \fB\%addch\fP(3X) and
+the physical screen with \fB\%mvcur\fP(3X).
+.bP
+\fI\%ncurses\fP uses the value of \fB\%TABSIZE\fP only to update the
+virtual screen.
+It uses the terminal description's \*(``\fBit\fP\*(''
+(\fB\%init_tabs\fP) capability for computing hardware tabs
+(that is,
+tab stops on the physical screen).
.bP
Other implementations differ.
-For instance, NetBSD curses allows \fBTABSIZE\fP to be set through
-an environment variable.
-This implementation does not.
+For instance,
+NetBSD \fIcurses\fP allows \fB\%TABSIZE\fP to be set through an
+environment variable.
+\fI\%ncurses\fP does not.
.IP
-NetBSD curses does not support hardware tabs;
-it uses the \fBinit_tabs\fP capability and the \fBTABSIZE\fP variable
-only for updating the virtual screen.
+NetBSD \fIcurses\fP does not support hardware tabs;
+it uses the \fB\%init_tabs\fP capability and the \fB\%TABSIZE\fP
+variable only for updating the virtual screen.
.PP
-\fBESCDELAY\fP is an extension in AIX curses:
+\fB\%ESCDELAY\fP is a feature of AIX \fIcurses\fP.
.bP
-In AIX, the units for \fBESCDELAY\fP are \fIfifths\fP of a millisecond.
+In AIX,
+the units for \fB\%ESCDELAY\fP are \fIfifths\fP of milliseconds.
.bP
-The default value for AIX's \fBESCDELAY\fP is 0.1 seconds.
+The default value for AIX's \fB\%ESCDELAY\fP equals 0.1 seconds.
.bP
-AIX also enforces a limit of 10,000 seconds for \fBESCDELAY\fP;
-this implementation currently has no upper limit.
+AIX also enforces a limit of 10,000 seconds for \fB\%ESCDELAY\fP;
+\fI\%ncurses\fP does not enforce any upper limit.
.PP
-This implementation has long used \fBESCDELAY\fP with units of milliseconds,
+\fI\%ncurses\fP has long used \fB\%ESCDELAY\fP with units of
+milliseconds,
making it impossible to be completely compatible with AIX.
-Likewise, most users have either decided to override the value,
-or rely upon its default value.
+Consequently,
+most users have decided either to override the value,
+or to rely upon its default.
.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBcurs_opaque\fR(3X),
-\fBcurs_terminfo\fR(3X),
-\fBcurs_threads\fR(3X),
-\fBterm_variables\fR(3X),
-\fBterminfo\fR(\*n).
+\fB\%curses\fP(3X),
+\fB\%curs_color\fP(3X),
+\fB\%curs_opaque\fP(3X),
+\fB\%curs_terminfo\fP(3X),
+\fB\%curs_threads\fP(3X),
+\fB\%term_variables\fP(3X),
+\fB\%terminfo\fP(5)
+.PP
+[UAX #29] \*(``Unicode Standard Annex #29: Unicode Text
+Segmentation\*('';
+\%<https://\*:unicode\*:.org/\*:reports/\*:tr29/>
diff --git a/man/curs_window.3x b/man/curs_window.3x
index 77cbffa723e6..d3d55c751444 100644
--- a/man/curs_window.3x
+++ b/man/curs_window.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2020 Thomas E. Dickey *
+.\" Copyright 2020-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2015,2016 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,146 +27,152 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_window.3x,v 1.21 2020/02/02 23:34:34 tom Exp $
-.TH curs_window 3X ""
-.na
-.hy 0
+.\" $Id: curs_window.3x,v 1.48 2024/04/20 21:20:07 tom Exp $
+.TH curs_window 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.de bP
+.ie n .IP \(bu 4
+.el .IP \(bu 2
+..
.SH NAME
-\fBnewwin\fR,
-\fBdelwin\fR,
-\fBmvwin\fR,
-\fBsubwin\fR,
-\fBderwin\fR,
-\fBmvderwin\fR,
-\fBdupwin\fR,
-\fBwsyncup\fR,
-\fBsyncok\fR,
-\fBwcursyncup\fR,
-\fBwsyncdown\fR \- create \fBcurses\fR windows
-.ad
-.hy
+\fB\%newwin\fP,
+\fB\%delwin\fP,
+\fB\%mvwin\fP,
+\fB\%subwin\fP,
+\fB\%derwin\fP,
+\fB\%mvderwin\fP,
+\fB\%dupwin\fP,
+\fB\%wsyncup\fP,
+\fB\%syncok\fP,
+\fB\%wcursyncup\fP,
+\fB\%wsyncdown\fP \-
+create and manipulate \fIcurses\fR windows
.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\fBWINDOW *newwin(\fR
- \fBint \fP\fInlines\fP\fB, int \fP\fIncols\fP\fB,\fR
- \fBint \fP\fIbegin_y\fP\fB, int \fP\fIbegin_x\fP\fB);\fR
-.br
-\fBint delwin(WINDOW *\fP\fIwin\fP\fB);\fR
-.br
-\fBint mvwin(WINDOW *\fP\fIwin\fP\fB, int \fP\fIy\fP\fB, int \fP\fIx\fP\fB);\fR
-.br
-\fBWINDOW *subwin(WINDOW *\fP\fIorig\fP\fB,\fR
- \fBint \fP\fInlines\fP\fB, int \fP\fIncols\fP\fB,\fR
- \fBint \fP\fIbegin_y\fP\fB, int \fP\fIbegin_x\fP\fB);\fR
-.br
-\fBWINDOW *derwin(WINDOW *\fP\fIorig\fP\fB,\fR
- \fBint \fP\fInlines\fP\fB, int \fP\fIncols\fP\fB,\fR
- \fBint \fP\fIbegin_y\fP\fB, int \fP\fIbegin_x\fP\fB);\fR
-.br
-\fBint mvderwin(WINDOW *\fP\fIwin\fP\fB, int \fP\fIpar_y\fP\fB, int \fP\fIpar_x\fP\fB);\fR
-.br
-\fBWINDOW *dupwin(WINDOW *\fP\fIwin\fP\fB);\fR
-.br
-\fBvoid wsyncup(WINDOW *\fP\fIwin\fP\fB);\fR
-.br
-\fBint syncok(WINDOW *\fP\fIwin\fP\fB, bool \fP\fIbf\fP\fB);\fR
-.br
-\fBvoid wcursyncup(WINDOW *\fP\fIwin\fP\fB);\fR
-.br
-\fBvoid wsyncdown(WINDOW *\fP\fIwin\fP\fB);\fR
-.br
+.nf
+\fB#include <curses.h>
+.PP
+\fBWINDOW *newwin(
+ \fBint \fInlines\fB, int \fIncols\fB,\fR
+ \fBint \fIbegin_y\fB, int \fIbegin_x\fB);\fR
+\fBint delwin(WINDOW *\fIwin\fB);\fR
+\fBint mvwin(WINDOW *\fIwin\fB, int \fIy\fB, int \fIx\fB);\fR
+\fBWINDOW *subwin(WINDOW *\fIorig\fB,\fR
+ \fBint \fInlines\fB, int \fIncols\fB,\fR
+ \fBint \fIbegin_y\fB, int \fIbegin_x\fB);\fR
+\fBWINDOW *derwin(WINDOW *\fIorig\fB,\fR
+ \fBint \fInlines\fB, int \fIncols\fB,\fR
+ \fBint \fIbegin_y\fB, int \fIbegin_x\fB);\fR
+\fBint mvderwin(WINDOW *\fIwin\fB, int \fIpar_y\fB, int \fIpar_x\fB);\fR
+\fBWINDOW *dupwin(WINDOW *\fIwin\fB);\fR
+\fBvoid wsyncup(WINDOW *\fIwin\fB);\fR
+\fBint syncok(WINDOW *\fIwin\fB, bool \fIbf\fB);\fR
+\fBvoid wcursyncup(WINDOW *\fIwin\fB);\fR
+\fBvoid wsyncdown(WINDOW *\fIwin\fB);\fR
+.fi
.SH DESCRIPTION
.SS newwin
-Calling \fBnewwin\fR creates and returns a pointer to a new window with the
+Calling \fBnewwin\fP creates and returns a pointer to a new window with the
given number of lines and columns.
The upper left-hand corner of the window is
at
.RS
-line \fIbegin\fR_\fIy\fR,
+line \fIbegin\fR_\fIy\fP,
.br
-column \fIbegin\fR_\fIx\fR
+column \fIbegin\fR_\fIx\fP
.RE
.PP
If either
-\fInlines\fR or \fIncols\fR is zero, they default to
+\fInlines\fP or \fIncols\fP is zero, they default to
.RS
-\fBLINES \-\fR \fIbegin\fR_\fIy\fR and
+\fBLINES \-\fP \fIbegin\fR_\fIy\fP and
.br
-\fBCOLS \-\fR \fIbegin\fR_\fIx\fR.
+\fBCOLS \-\fP \fIbegin\fR_\fIx\fP.
.RE
.PP
-A new full-screen window is created by calling \fBnewwin(0,0,0,0)\fR.
-.SS delwin
+A new full-screen window is created by calling \fBnewwin(0,0,0,0)\fP.
+.PP
+Regardless of the function used for creating a new window
+(e.g., \fBnewwin\fP, \fBsubwin\fP, \fBderwin\fP, \fBnewpad\fP),
+rather than a duplicate (with \fBdupwin\fP),
+all of the window modes are initialized to the default values.
+These functions set window modes after a window is created:
+.RS
.PP
-Calling \fBdelwin\fR deletes the named window, freeing all memory
+\fB\%idcok\fP
+\fB\%idlok\fP
+\fB\%immedok\fP
+\fB\%keypad\fP
+\fB\%leaveok\fP
+\fB\%nodelay\fP
+\fB\%scrollok\fP
+\fB\%setscrreg\fP
+\fB\%syncok\fP
+\fB\%wbkgdset\fP
+\fB\%wbkgrndset\fP and
+\fB\%wtimeout\fP.
+.RE
+.SS delwin
+Calling \fBdelwin\fP deletes the named window, freeing all memory
associated with it (it does not actually erase the window's screen
image).
Subwindows must be deleted before the main window can be deleted.
.SS mvwin
-.PP
-Calling \fBmvwin\fR moves the window so that the upper left-hand
-corner is at position (\fIx\fR, \fIy\fR).
+Calling \fBmvwin\fP moves the window so that the upper left-hand
+corner is at position (\fIx\fP, \fIy\fP).
If the move would cause the window to be off the screen,
it is an error and the window is not moved.
Moving subwindows is allowed, but should be avoided.
.SS subwin
-.PP
-Calling \fBsubwin\fR creates and returns a pointer to a new window
-with the given number of lines, \fInlines\fR, and columns, \fIncols\fR.
-The window is at position (\fIbegin\fR_\fIy\fR,
-\fIbegin\fR_\fIx\fR) on the screen.
-The subwindow shares memory with the window \fIorig\fR,
+Calling \fBsubwin\fP creates and returns a pointer to a new window
+with the given number of lines, \fInlines\fP, and columns, \fIncols\fP.
+The window is at position (\fIbegin\fR_\fIy\fP,
+\fIbegin\fR_\fIx\fP) on the screen.
+The subwindow shares memory with the window \fIorig\fP,
+its \fIancestor\fP,
so that changes made to one window
will affect both windows.
When using this routine, it is necessary to call
-\fBtouchwin\fR or \fBtouchline\fR on \fIorig\fR before calling
-\fBwrefresh\fR on the subwindow.
+\fBtouchwin\fP or \fBtouchline\fP on \fIorig\fP before calling
+\fBwrefresh\fP on the subwindow.
.SS derwin
-.PP
-Calling \fBderwin\fR is the same as calling \fBsubwin,\fR except that
-\fIbegin\fR_\fIy\fR and \fIbegin\fR_\fIx\fR are relative to the origin
-of the window \fIorig\fR rather than the screen.
+Calling \fBderwin\fP is the same as calling \fBsubwin,\fP except that
+\fIbegin\fR_\fIy\fP and \fIbegin\fR_\fIx\fP are relative to the origin
+of the window \fIorig\fP rather than the screen.
There is no difference between the subwindows and the derived windows.
-.PP
-Calling \fBmvderwin\fR moves a derived window (or subwindow)
+.SS mvderwin
+Calling \fBmvderwin\fP moves a derived window (or subwindow)
inside its parent window.
The screen-relative parameters of the window are not changed.
This routine is used to display different
parts of the parent window at the same physical position on the
screen.
.SS dupwin
-.PP
-Calling \fBdupwin\fR creates an exact duplicate of the window \fIwin\fR.
+Calling \fBdupwin\fP creates an exact duplicate of the window \fIwin\fP.
.SS wsyncup
-.PP
-Calling \fBwsyncup\fR touches all locations in ancestors of \fIwin\fR that are
-changed in \fIwin\fR.
-If \fBsyncok\fR is called with second argument
-\fBTRUE\fR then \fBwsyncup\fR is called automatically whenever there is a
+Calling \fBwsyncup\fP touches all locations in ancestors of \fIwin\fP that are
+changed in \fIwin\fP.
+If \fBsyncok\fP is called with second argument
+\fBTRUE\fP then \fBwsyncup\fP is called automatically whenever there is a
change in the window.
.SS wsyncdown
-.PP
-The \fBwsyncdown\fR routine touches each location in \fIwin\fR that has been
+The \fBwsyncdown\fP routine touches each location in \fIwin\fP that has been
touched in any of its ancestor windows.
This routine is called by
-\fBwrefresh\fR, so it should almost never be necessary to call it manually.
+\fBwrefresh\fP, so it should almost never be necessary to call it manually.
.SS wcursyncup
-.PP
-The routine \fBwcursyncup\fR updates the current cursor position of all the
+The routine \fBwcursyncup\fP updates the current cursor position of all the
ancestors of the window to reflect the current cursor position of the
window.
.SH RETURN VALUE
-Routines that return an integer return the integer \fBERR\fR upon failure and
-\fBOK\fR (SVr4 only specifies "an integer value other than \fBERR\fR") upon
+Routines that return an integer return the integer \fBERR\fP upon failure and
+\fBOK\fP (SVr4 only specifies "an integer value other than \fBERR\fP") upon
successful completion.
.PP
-Routines that return pointers return \fBNULL\fR on error.
+Routines that return pointers return \fBNULL\fP on error.
.PP
X/Open defines no error conditions.
In this implementation
.TP 5
-\fBdelwin\fR
+\fBdelwin\fP
returns an error if the window pointer is null, or
if the window is the parent of another window.
.TP 5
@@ -211,26 +217,56 @@ may also fail if there is insufficient memory for its data structures.
Any of these functions will fail if the screen has not been initialized,
i.e., with \fBinitscr\fP or \fBnewterm\fP.
.SH NOTES
-If many small changes are made to the window, the \fBwsyncup\fR option could
+If many small changes are made to the window, the \fBwsyncup\fP option could
degrade performance.
.PP
-Note that \fBsyncok\fR may be a macro.
+Note that \fBsyncok\fP may be a macro.
+.SH PORTABILITY
+X/Open Curses, Issue 4 describes these functions.
+.PP
+X/Open Curses states regarding \fBdelwin\fP:
+.bP
+It must delete subwindows before deleting their parent.
+.bP
+If \fBdelwin\fP is asked to delete a parent window,
+it can only succeed if the curses library keeps a list of the subwindows.
+SVr4 curses kept a count of the number of subwindows rather than a list.
+It simply returned \fBERR\fP when asked to delete a subwindow.
+Solaris X/Open curses does not even make that check,
+and will delete a parent window which still has subwindows.
+.bP
+Since release 4.0 (1996),
+\fI\%ncurses\fP maintains a list of windows for each screen,
+to ensure that a window has no subwindows before allowing deletion.
+.bP
+NetBSD copied this feature of \fI\%ncurses\fP in 2003.
+.br
+PDCurses follows the scheme used in Solaris X/Open curses.
.SH BUGS
-The subwindow functions (\fBsubwin\fR, \fBderwin\fR, \fBmvderwin\fR,
-\fBwsyncup\fR, \fBwsyncdown\fR, \fBwcursyncup\fR, \fBsyncok\fR) are flaky,
-incompletely implemented, and not well tested.
+The subwindow functions
+\fB\%subwin\fP,
+\fB\%derwin\fP,
+\fB\%mvderwin\fP,
+\fB\%wsyncup\fP,
+\fB\%wsyncdown\fP,
+\fB\%wcursyncup\fP,
+and
+\fB\%syncok\fP
+are flaky,
+incompletely implemented,
+and not well tested.
.PP
-The System V curses documentation is very unclear about what \fBwsyncup\fR
-and \fBwsyncdown\fR actually do.
-It seems to imply that they are only
-supposed to touch exactly those lines that are affected by ancestor changes.
-The language here, and the behavior of the \fBcurses\fR implementation,
-is patterned on the XPG4 curses standard.
-The weaker XPG4 spec may result in slower updates.
-.SH PORTABILITY
-The XSI Curses standard, Issue 4 describes these functions.
+System\ V's \fIcurses\fP documentation is unclear about what
+\fB\%wsyncup\fP and \fB\%wsyncdown\fP actually do.
+It seems to imply that they are supposed to touch only those lines that
+are affected by changes to a window's ancestors.
+The language here,
+and behavior of \fI\%ncurses\fP,
+is patterned on the X/Open Curses standard;
+this approach may result in slower updates.
.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBcurs_refresh\fR(3X),
-\fBcurs_touch\fR(3X),
-\fBcurs_variables\fR(3X)
+\fB\%curses\fP(3X),
+\fB\%curs_initscr\fP(3X),
+\fB\%curs_refresh\fP(3X),
+\fB\%curs_touch\fP(3X),
+\fB\%curs_variables\fP(3X)
diff --git a/man/default_colors.3x b/man/default_colors.3x
index c1d1bf706724..96124147cc68 100644
--- a/man/default_colors.3x
+++ b/man/default_colors.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 2000-2011,2016 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -29,21 +29,29 @@
.\"
.\" Author: Thomas E. Dickey 1997,1999,2000,2005
.\"
-.\" $Id: default_colors.3x,v 1.31 2020/12/19 21:38:37 tom Exp $
-.TH default_colors 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: default_colors.3x,v 1.52 2024/04/13 22:17:22 tom Exp $
+.TH default_colors 3X 2024-04-13 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
.SH NAME
-\fBuse_default_colors\fR,
-\fBassume_default_colors\fR \- use terminal's default colors
+\fB\%use_default_colors\fP,
+\fB\%assume_default_colors\fP \-
+use terminal's default colors in \fIcurses\fP
.SH SYNOPSIS
-\fB#include <curses.h>\fP
-.sp
-\fBint use_default_colors(void);\fP
-.br
-\fBint assume_default_colors(int \fP\fIfg\fP\fB, int \fP\fIbg\fP\fB);\fP
+.nf
+\fB#include <curses.h>
+.PP
+\fBint use_default_colors(void);
+\fBint assume_default_colors(int \fIfg\fP, int \fIbg\fP);
+.fi
.SH DESCRIPTION
The \fBuse_default_colors\fP and \fBassume_default_colors\fP
functions are extensions to the curses library.
@@ -57,7 +65,8 @@ Some applications are designed to work with the default background,
using colors only for text.
For example, there are several implementations of the \fBls\fP program
which use colors to denote different file types or permissions.
-These \*(``color ls\*('' programs do not necessarily modify the background color,
+These \*(``color ls\*('' programs do not necessarily
+modify the background color,
typically using only the \fBsetaf\fP terminfo capability to set the
foreground color.
Full-screen applications that use default colors can achieve similar
@@ -84,9 +93,9 @@ The following are equivalent:
.I assume_default_colors(\-1,\-1);
.RE
.PP
-These are ncurses extensions.
+These are \fI\%ncurses\fP extensions.
For other curses implementations, color
-number \-1 does not mean anything, just as for ncurses before a
+number \-1 does not mean anything, just as for \fI\%ncurses\fP before a
successful call of \fBuse_default_colors\fP or \fBassume_default_colors\fP.
.PP
Other curses implementations do not allow an application to modify color pair 0.
@@ -97,7 +106,7 @@ If your application does not use either
.B use_default_colors
or
.B assume_default_colors
-ncurses will paint a white foreground (text) with black background
+\fI\%ncurses\fP will paint a white foreground (text) with black background
for color pair 0.
.SH RETURN VALUE
These functions return the integer \fBERR\fP upon failure
@@ -107,10 +116,10 @@ the \fBorig_pair\fP or \fBorig_colors\fP capability.
If the \fBinitialize_pair\fP capability is not found, this causes an
error as well.
.SH NOTES
-Associated with this extension, the \fBinit_pair\fR function accepts
+Associated with this extension, the \fBinit_pair\fP function accepts
negative arguments to specify default foreground or background colors.
.PP
-The \fBuse_default_colors\fP function was added to support \fIded\fP.
+The \fBuse_default_colors\fP function was added to support \fBded\fP.
This is a full-screen application which uses curses to manage only part
of the screen.
The bottom portion of the screen, which is of adjustable
@@ -131,14 +140,14 @@ a different problem: support for applications which would use
environment variables and other configuration to bypass curses'
notion of the terminal's default colors, setting specific values.
.SH PORTABILITY
-These routines are specific to ncurses.
+These routines are specific to \fI\%ncurses\fP.
They were not supported on
Version 7, BSD or System V implementations.
It is recommended that
any code depending on them be conditioned using NCURSES_VERSION.
-.SH SEE ALSO
-\fBded\fP(1),
-\fBcurs_color\fR(3X).
-.SH AUTHOR
+.SH AUTHORS
Thomas Dickey (from an analysis of the requirements for color xterm
for XFree86 3.1.2C, February 1996).
+.SH SEE ALSO
+\fB\%ded\fP(1),
+\fB\%curs_color\fP(3X)
diff --git a/man/define_key.3x b/man/define_key.3x
index d0dbe7fccaa9..667d8cd312fe 100644
--- a/man/define_key.3x
+++ b/man/define_key.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2010,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -29,38 +29,43 @@
.\"
.\" Author: Thomas E. Dickey 1997
.\"
-.\" $Id: define_key.3x,v 1.18 2020/10/24 09:52:54 tom Exp $
-.TH define_key 3X ""
+.\" $Id: define_key.3x,v 1.42 2024/03/16 15:35:01 tom Exp $
+.TH define_key 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
-\fBdefine_key\fP \- define a keycode
+\fB\%define_key\fP \-
+define a \fIcurses\fR keycode
.SH SYNOPSIS
-\fB#include <curses.h>\fP
-.sp
-\fBint define_key(const char *\fP\fIdefinition\fP\fB, int \fP\fIkeycode\fP\fB);\fP
+.nf
+\fB#include <curses.h>
+.PP
+\fBint define_key(const char *\fIdefinition\fP, int \fIkeycode\fP);
+.fi
.SH DESCRIPTION
-This is an extension to the curses library.
+This is an extension to the \fIcurses\fP library.
It permits an application to define keycodes with their corresponding control
-strings, so that the ncurses library will interpret them just as it would
+strings,
+so that the \fI\%ncurses\fP library will interpret them just as it would
the predefined codes in the terminfo database.
.PP
-If the given string is null, any existing definition for the keycode is
-removed.
+If \fIdefinition\fP is \fBNULL\fP,
+any existing one for the keycode is removed.
Similarly, if the given keycode is negative or zero, any existing string
for the given definition is removed.
.SH RETURN VALUE
-The keycode must be greater than zero, and the string non-null,
+Either \fIkeycode\fP must be greater than zero,
+or \fIdefinition\fP must be non-\fBNULL\fP,
otherwise \fBERR\fP is returned.
\fBERR\fP may also be returned if there is insufficient memory to allocate the
data to store the definition.
If no error is detected, \fBOK\fP is returned.
.SH PORTABILITY
-These routines are specific to ncurses.
+These routines are specific to \fI\%ncurses\fP.
They were not supported on
Version 7, BSD or System V implementations.
It is recommended that
-any code depending on them be conditioned using NCURSES_VERSION.
+any code depending on them be conditioned using \fB\%NCURSES_VERSION\fP.
+.SH AUTHORS
+Thomas Dickey
.SH SEE ALSO
-\fBkeyok\fR(3X),
-\fBkey_defined\fR(3X).
-.SH AUTHOR
-Thomas Dickey.
+\fB\%keyok\fP(3X),
+\fB\%key_defined\fP(3X)
diff --git a/man/form.3x b/man/form.3x
index 685ad71f1047..2f8f884861fa 100644
--- a/man/form.3x
+++ b/man/form.3x
@@ -1,6 +1,6 @@
'\" t
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2016,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,32 +28,41 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: form.3x,v 1.36 2020/12/12 16:34:33 tom Exp $
-.TH form 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: form.3x,v 1.54 2024/03/16 15:35:01 tom Exp $
+.TH form 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
.SH NAME
-\fBform\fR \- curses extension for programming forms
+\fBform\fP \-
+curses extension for programming forms
.SH SYNOPSIS
-\fB#include <form.h>\fR
-.br
+.nf
+\fB#include <form.h>
+.fi
.SH DESCRIPTION
-The \fBform\fR library provides terminal-independent facilities for composing
+The \fBform\fP library provides terminal-independent facilities for composing
form screens on character-cell terminals.
The library includes: field
routines, which create and modify form fields; and form routines, which group
fields into forms, display forms on the screen, and handle interaction with the
user.
.PP
-The \fBform\fR library uses the \fBcurses\fR libraries.
-To use the \fBform\fR library, link with the options
-\fB\-lform \-lcurses\fR.
+The \fBform\fP library uses the \fBcurses\fP libraries.
+To use the \fBform\fP library, link with the options
+\fB\-lform \-lcurses\fP.
.PP
Your program should set up the locale, e.g.,
.sp
@@ -61,110 +70,110 @@ Your program should set up the locale, e.g.,
.sp
so that input/output processing will work.
.PP
-A curses initialization routine such as \fBinitscr\fR must be called
+A curses initialization routine such as \fBinitscr\fP must be called
before using any of these functions.
.
-.SS Current Default Values for Field Attributes
+.SS "Current Default Values for Field Attributes"
.
-The \fBform\fR library maintains a default value for field attributes.
+The \fBform\fP library maintains a default value for field attributes.
You
-can get or set this default by calling the appropriate \fBset_\fR
+can get or set this default by calling the appropriate \fBset_\fP
or retrieval
-routine with a \fBNULL\fR field pointer.
+routine with a \fBNULL\fP field pointer.
Changing this default with a
-\fBset_\fR function affects future field creations, but does not change the
+\fBset_\fP function affects future field creations, but does not change the
rendering of fields already created.
.
-.SS Routine Name Index
+.SS "Routine Name Index"
.
-The following table lists each \fBform\fR routine and the name of
+The following table lists each \fBform\fP routine and the name of
the manual page on which it is described.
Routines flagged with \*(``*\*(''
-are ncurses-specific, not present in SVr4.
-.
+are \fI\%ncurses\fP-specific, not present in SVr4.
+.PP
.TS
l l
l l .
-\fBcurses\fR Routine Name Manual Page Name
+\fBcurses\fP Routine Name Manual Page Name
=
-current_field \fBform_page\fR(3X)
-data_ahead \fBform_data\fR(3X)
-data_behind \fBform_data\fR(3X)
-dup_field \fBform_field_new\fR(3X)
-dynamic_field_info \fBform_field_info\fR(3X)
-field_arg \fBform_field_validation\fR(3X)
-field_back \fBform_field_attributes\fR(3X)
-field_buffer \fBform_field_buffer\fR(3X)
-field_count \fBform_field\fR(3X)
-field_fore \fBform_field_attributes\fR(3X)
-field_index \fBform_page\fR(3X)
-field_info \fBform_field_info\fR(3X)
-field_init \fBform_hook\fR(3X)
-field_just \fBform_field_just\fR(3X)
-field_opts \fBform_field_opts\fR(3X)
-field_opts_off \fBform_field_opts\fR(3X)
-field_opts_on \fBform_field_opts\fR(3X)
-field_pad \fBform_field_attributes\fR(3X)
-field_status \fBform_field_buffer\fR(3X)
-field_term \fBform_hook\fR(3X)
-field_type \fBform_field_validation\fR(3X)
-field_userptr \fBform_field_userptr\fR(3X)
-form_driver \fBform_driver\fR(3X)
-form_driver_w \fBform_driver\fR(3X)*
-form_fields \fBform_field\fR(3X)
-form_init \fBform_hook\fR(3X)
-form_opts \fBform_opts\fR(3X)
-form_opts_off \fBform_opts\fR(3X)
-form_opts_on \fBform_opts\fR(3X)
-form_page \fBform_page\fR(3X)
-form_request_by_name \fBform_requestname\fR(3X)*
-form_request_name \fBform_requestname\fR(3X)*
-form_sub \fBform_win\fR(3X)
-form_term \fBform_hook\fR(3X)
-form_userptr \fBform_userptr\fR(3X)
-form_win \fBform_win\fR(3X)
-free_field \fBform_field_new\fR(3X)
-free_fieldtype \fBform_fieldtype\fR(3X)
-free_form \fBform_new\fR(3X)
-link_field \fBform_field_new\fR(3X)
-link_fieldtype \fBform_fieldtype\fR(3X)
-move_field \fBform_field\fR(3X)
-new_field \fBform_field_new\fR(3X)
-new_fieldtype \fBform_fieldtype\fR(3X)
-new_form \fBform_new\fR(3X)
-new_page \fBform_new_page\fR(3X)
-pos_form_cursor \fBform_cursor\fR(3X)
-post_form \fBform_post\fR(3X)
-scale_form \fBform_win\fR(3X)
-set_current_field \fBform_page\fR(3X)
-set_field_back \fBform_field_attributes\fR(3X)
-set_field_buffer \fBform_field_buffer\fR(3X)
-set_field_fore \fBform_field_attributes\fR(3X)
-set_field_init \fBform_hook\fR(3X)
-set_field_just \fBform_field_just\fR(3X)
-set_field_opts \fBform_field_opts\fR(3X)
-set_field_pad \fBform_field_attributes\fR(3X)
-set_field_status \fBform_field_buffer\fR(3X)
-set_field_term \fBform_hook\fR(3X)
-set_field_type \fBform_field_validation\fR(3X)
-set_field_userptr \fBform_field_userptr\fR(3X)
-set_fieldtype_arg \fBform_fieldtype\fR(3X)
-set_fieldtype_choice \fBform_fieldtype\fR(3X)
-set_form_fields \fBform_field\fR(3X)
-set_form_init \fBform_hook\fR(3X)
-set_form_opts \fBform_field_opts\fR(3X)
-set_form_page \fBform_page\fR(3X)
-set_form_sub \fBform_win\fR(3X)
-set_form_term \fBform_hook\fR(3X)
-set_form_userptr \fBform_userptr\fR(3X)
-set_form_win \fBform_win\fR(3X)
-set_max_field \fBform_field_buffer\fR(3X)
-set_new_page \fBform_new_page\fR(3X)
-unfocus_current_field \fBform_page\fR(3X)*
-unpost_form \fBform_post\fR(3X)
+current_field \fBform_page\fP(3X)
+data_ahead \fBform_data\fP(3X)
+data_behind \fBform_data\fP(3X)
+dup_field \fBform_field_new\fP(3X)
+dynamic_field_info \fBform_field_info\fP(3X)
+field_arg \fBform_field_validation\fP(3X)
+field_back \fBform_field_attributes\fP(3X)
+field_buffer \fBform_field_buffer\fP(3X)
+field_count \fBform_field\fP(3X)
+field_fore \fBform_field_attributes\fP(3X)
+field_index \fBform_page\fP(3X)
+field_info \fBform_field_info\fP(3X)
+field_init \fBform_hook\fP(3X)
+field_just \fBform_field_just\fP(3X)
+field_opts \fBform_field_opts\fP(3X)
+field_opts_off \fBform_field_opts\fP(3X)
+field_opts_on \fBform_field_opts\fP(3X)
+field_pad \fBform_field_attributes\fP(3X)
+field_status \fBform_field_buffer\fP(3X)
+field_term \fBform_hook\fP(3X)
+field_type \fBform_field_validation\fP(3X)
+field_userptr \fBform_field_userptr\fP(3X)
+form_driver \fBform_driver\fP(3X)
+form_driver_w \fBform_driver\fP(3X)*
+form_fields \fBform_field\fP(3X)
+form_init \fBform_hook\fP(3X)
+form_opts \fBform_opts\fP(3X)
+form_opts_off \fBform_opts\fP(3X)
+form_opts_on \fBform_opts\fP(3X)
+form_page \fBform_page\fP(3X)
+form_request_by_name \fBform_requestname\fP(3X)*
+form_request_name \fBform_requestname\fP(3X)*
+form_sub \fBform_win\fP(3X)
+form_term \fBform_hook\fP(3X)
+form_userptr \fBform_userptr\fP(3X)
+form_win \fBform_win\fP(3X)
+free_field \fBform_field_new\fP(3X)
+free_fieldtype \fBform_fieldtype\fP(3X)
+free_form \fBform_new\fP(3X)
+link_field \fBform_field_new\fP(3X)
+link_fieldtype \fBform_fieldtype\fP(3X)
+move_field \fBform_field\fP(3X)
+new_field \fBform_field_new\fP(3X)
+new_fieldtype \fBform_fieldtype\fP(3X)
+new_form \fBform_new\fP(3X)
+new_page \fBform_new_page\fP(3X)
+pos_form_cursor \fBform_cursor\fP(3X)
+post_form \fBform_post\fP(3X)
+scale_form \fBform_win\fP(3X)
+set_current_field \fBform_page\fP(3X)
+set_field_back \fBform_field_attributes\fP(3X)
+set_field_buffer \fBform_field_buffer\fP(3X)
+set_field_fore \fBform_field_attributes\fP(3X)
+set_field_init \fBform_hook\fP(3X)
+set_field_just \fBform_field_just\fP(3X)
+set_field_opts \fBform_field_opts\fP(3X)
+set_field_pad \fBform_field_attributes\fP(3X)
+set_field_status \fBform_field_buffer\fP(3X)
+set_field_term \fBform_hook\fP(3X)
+set_field_type \fBform_field_validation\fP(3X)
+set_field_userptr \fBform_field_userptr\fP(3X)
+set_fieldtype_arg \fBform_fieldtype\fP(3X)
+set_fieldtype_choice \fBform_fieldtype\fP(3X)
+set_form_fields \fBform_field\fP(3X)
+set_form_init \fBform_hook\fP(3X)
+set_form_opts \fBform_field_opts\fP(3X)
+set_form_page \fBform_page\fP(3X)
+set_form_sub \fBform_win\fP(3X)
+set_form_term \fBform_hook\fP(3X)
+set_form_userptr \fBform_userptr\fP(3X)
+set_form_win \fBform_win\fP(3X)
+set_max_field \fBform_field_buffer\fP(3X)
+set_new_page \fBform_new_page\fP(3X)
+unfocus_current_field \fBform_page\fP(3X)*
+unpost_form \fBform_post\fP(3X)
.TE
.SH RETURN VALUE
-Routines that return pointers return \fBNULL\fR on error,
+Routines that return pointers return \fBNULL\fP on error,
and set \fBerrno\fP to the corresponding error-code returned by functions
returning an integer.
Routines that return
@@ -201,44 +210,37 @@ The form is already posted.
The form driver could not process the request.
.TP 5
.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR(3)).
+System error occurred (see \fBerrno\fP(3)).
.TP 5
.B E_UNKNOWN_COMMAND
The form driver code saw an unknown request code.
.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header files
-\fB<curses.h>\fR and \fB<eti.h>\fR.
-.PP
-In your library list, libform.a should be before libncurses.a; that is,
-you want to say \*(``\-lform \-lncurses\*('', not the other way around
-(which would give you a link error when using static libraries).
+The header file \fI\%form.h\fP itself includes \fI\%curses.h\fP.
.SH PORTABILITY
These routines emulate the System V forms library.
They were not supported on
Version 7 or BSD versions.
.PP
-The menu facility was documented in SVr4.2 in
-\fICharacter User Interface Programming (UNIX SVR4.2)\fP.
+A form facility was documented in SVr4.2's
+\fICharacter User Interface Programming\fP document.
.PP
It is not part of X/Open Curses.
.PP
-Aside from ncurses, there are few implementations:
+Aside from \fI\%ncurses\fP, there are few implementations:
.bP
systems based on SVr4 source code, e.g., Solaris.
.bP
NetBSD curses.
.PP
-A few functions in this implementation are extensions added for ncurses,
+A few functions in this implementation are extensions added for
+\fI\%ncurses\fP,
but not provided by other implementations, e.g.,
\fBform_driver_w\fP,
\fBunfocus_current_field\fP.
.SH AUTHORS
Juergen Pfeifer.
-Manual pages and adaptation for ncurses by Eric
+Manual pages and adaptation for \fI\%ncurses\fP by Eric
S. Raymond.
.SH SEE ALSO
-\fBcurses\fR(3X) and related pages whose names begin \*(``form_\*('' for detailed
-descriptions of the entry points.
-.PP
-This describes \fBncurses\fR
-version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
+\fBcurses\fP(3X) and related pages whose names begin \*(``form_\*('' for
+detailed descriptions of the entry points.
diff --git a/man/form_cursor.3x b/man/form_cursor.3x
index cb9d1cd1cc33..ed8bab15f2ce 100644
--- a/man/form_cursor.3x
+++ b/man/form_cursor.3x
@@ -1,6 +1,6 @@
'\" t
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2010,2015 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,20 +28,22 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: form_cursor.3x,v 1.14 2020/10/18 00:15:29 tom Exp $
-.TH form_cursor 3X ""
+.\" $Id: form_cursor.3x,v 1.31 2024/03/16 15:35:01 tom Exp $
+.TH form_cursor 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
-\fBpos_form_cursor\fR \- position a form window cursor
+\fBpos_form_cursor\fP \-
+position a form window cursor
.SH SYNOPSIS
-\fB#include <form.h>\fR
-.sp
-\fBint pos_form_cursor(FORM *\fP\fIform\fP\fB);\fP
-.br
+.nf
+\fB#include <form.h>
+.PP
+\fBint pos_form_cursor(FORM *\fIform\fP);
+.fi
.SH DESCRIPTION
-The function \fBpos_form_cursor\fR restores the cursor to the position required
+The function \fBpos_form_cursor\fP restores the cursor to the position required
for the forms driver to continue processing requests.
This is useful after
-\fBcurses\fR routines have been called to do screen-painting in response to a
+\fBcurses\fP routines have been called to do screen-painting in response to a
form operation.
.SH RETURN VALUE
This routine returns one of the following:
@@ -56,13 +58,7 @@ Routine detected an incorrect or out-of-range argument.
The form has not been posted.
.TP 5
.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR(3)).
-.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBform\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
+System error occurred (see \fBerrno\fP(3)).
.SH PORTABILITY
These routines emulate the System V forms library.
They were not supported on
@@ -70,3 +66,6 @@ Version 7 or BSD versions.
.SH AUTHORS
Juergen Pfeifer.
Manual pages and adaptation for new curses by Eric S. Raymond.
+.SH SEE ALSO
+\fB\%curses\fP(3X),
+\fB\%form\fP(3X)
diff --git a/man/form_data.3x b/man/form_data.3x
index 8a5669209a5e..ded82eba19a2 100644
--- a/man/form_data.3x
+++ b/man/form_data.3x
@@ -1,6 +1,6 @@
'\" t
.\"***************************************************************************
-.\" Copyright 2018,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2010,2015 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,31 +28,27 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: form_data.3x,v 1.15 2020/10/18 00:15:00 tom Exp $
-.TH form_data 3X ""
+.\" $Id: form_data.3x,v 1.32 2024/03/16 15:35:01 tom Exp $
+.TH form_data 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
\fBdata_ahead\fP,
-\fBdata_behind\fR \- test for off-screen data in given forms
+\fBdata_behind\fP \-
+test for off-screen data in given forms
.SH SYNOPSIS
-\fB#include <form.h>\fR
-.sp
-\fBbool data_ahead(const FORM *\fP\fIform\fP\fB);\fP
-.br
-\fBbool data_behind(const FORM *\fP\fIform\fP\fB);\fP
-.br
+.nf
+\fB#include <form.h>
+.PP
+\fBbool data_ahead(const FORM *\fIform\fP);
+\fBbool data_behind(const FORM *\fIform\fP);
+.fi
.SH DESCRIPTION
-The function \fBdata_ahead\fR tests whether there is off-screen data
+The function \fBdata_ahead\fP tests whether there is off-screen data
ahead in the given form.
It returns TRUE (1) or FALSE (0).
.PP
-The function \fBdata_behind\fR tests whether there is off-screen data
+The function \fBdata_behind\fP tests whether there is off-screen data
behind in the given form.
It returns TRUE (1) or FALSE (0).
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBform\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
.SH PORTABILITY
These routines emulate the System V forms library.
They were not supported on
@@ -60,3 +56,6 @@ Version 7 or BSD versions.
.SH AUTHORS
Juergen Pfeifer.
Manual pages and adaptation for new curses by Eric S. Raymond.
+.SH SEE ALSO
+\fB\%curses\fP(3X),
+\fB\%form\fP(3X)
diff --git a/man/form_driver.3x b/man/form_driver.3x
index 9c096f90d4c5..882a49dd4634 100644
--- a/man/form_driver.3x
+++ b/man/form_driver.3x
@@ -1,5 +1,6 @@
+'\" t
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2016,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,26 +28,27 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: form_driver.3x,v 1.35 2020/12/19 21:34:15 tom Exp $
-.TH form_driver 3X ""
+.\" $Id: form_driver.3x,v 1.61 2024/04/20 18:55:09 tom Exp $
+.TH form_driver 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
.SH NAME
-\fBform_driver\fR,
-\fBform_driver_w\fR \- command-processing loop of the form system
+\fBform_driver\fP,
+\fBform_driver_w\fP \-
+command-processing loop of the form system
.SH SYNOPSIS
-\fB#include <form.h>\fR
-.sp
-\fBint form_driver(FORM *\fP\fIform\fP\fB, int \fP\fIc\fP\fB);\fP
-.br
-\fBint form_driver_w(FORM *\fP\fIform\fP\fB, int \fP\fIc\fP\fB, wchar_t \fP\fIwch\fP\fB);\fP
-.br
+.nf
+\fB#include <form.h>
+.PP
+\fBint form_driver(FORM *\fIform\fP, int \fIc\fP);
+\fBint form_driver_w(FORM *\fIform\fP, int \fIc\fP, wchar_t \fIwc\fP);
+.fi
.SH DESCRIPTION
.SS form_driver
Once a form has been posted (displayed), you should funnel input events to it
-through \fBform_driver\fR. This routine has three major input cases:
+through \fBform_driver\fP. This routine has three major input cases:
.bP
The input is a form navigation request.
Navigation request codes are constants defined in \fB<form.h>\fP,
@@ -59,33 +61,32 @@ checked according to the program's locale settings.
.bP
The input is the KEY_MOUSE special key associated with an mouse event.
.SS form_driver_w
-.PP
This extension simplifies the use of the forms library using wide characters.
The input is either a key code (a request) or a wide character
returned by \fBget_wch\fP(3X).
The type must be passed as well,
to enable the library to determine whether the parameter
is a wide character or a request.
-.SS Form-driver requests
-.PP
+.SS "Form Driver Requests"
The form driver requests are as follows:
+.PP
.TS
-l l
-_ _
-l l.
-\fIName\fR \fIDescription\fR
-REQ_BEG_FIELD Move to the beginning of the field.
-REQ_BEG_LINE Move to the beginning of the line.
+Lb Lb
+Lb Lx.
+Name Description
+_
+REQ_BEG_FIELD Move to beginning of field.
+REQ_BEG_LINE Move to beginning of the line.
REQ_CLR_EOF Clear to end of field from cursor.
REQ_CLR_EOL Clear to end of line from cursor.
REQ_CLR_FIELD Clear the entire field.
REQ_DEL_CHAR Delete character at the cursor.
REQ_DEL_LINE Delete line at the cursor.
REQ_DEL_PREV Delete character before the cursor.
-REQ_DEL_WORD Delete blank-delimited word at the cursor.
-REQ_DOWN_CHAR Move down in the field.
+REQ_DEL_WORD Delete blank-delimited word at cursor.
+REQ_DOWN_CHAR Move down in field.
REQ_DOWN_FIELD Move down to a field.
-REQ_END_FIELD Move to the end of the field.
+REQ_END_FIELD Move to the end of field.
REQ_END_LINE Move to the end of the line.
REQ_FIRST_FIELD Move to the first field.
REQ_FIRST_PAGE Move to the first page.
@@ -94,7 +95,7 @@ REQ_INS_LINE Insert a blank line at the cursor.
REQ_INS_MODE Enter insert mode.
REQ_LAST_FIELD Move to the last field.
REQ_LAST_PAGE Move to the last field.
-REQ_LEFT_CHAR Move left in the field.
+REQ_LEFT_CHAR Move left in field.
REQ_LEFT_FIELD Move left to a field.
REQ_NEW_LINE Insert or overlay a new line.
REQ_NEXT_CHAR Move to the next char.
@@ -111,25 +112,25 @@ REQ_PREV_FIELD Move to the previous field.
REQ_PREV_LINE Move to the previous line.
REQ_PREV_PAGE Move to the previous page.
REQ_PREV_WORD Move to the previous word.
-REQ_RIGHT_CHAR Move right in the field.
+REQ_RIGHT_CHAR Move right in field.
REQ_RIGHT_FIELD Move right to a field.
-REQ_SCR_BCHAR Scroll the field backward a character.
-REQ_SCR_BHPAGE Scroll the field backward half a page.
-REQ_SCR_BLINE Scroll the field backward a line.
-REQ_SCR_BPAGE Scroll the field backward a page.
-REQ_SCR_FCHAR Scroll the field forward a character.
-REQ_SCR_FHPAGE Scroll the field forward half a page.
-REQ_SCR_FLINE Scroll the field forward a line.
-REQ_SCR_FPAGE Scroll the field forward a page.
-REQ_SCR_HBHALF Horizontal scroll the field backward half a line.
-REQ_SCR_HBLINE Horizontal scroll the field backward a line.
-REQ_SCR_HFHALF Horizontal scroll the field forward half a line.
-REQ_SCR_HFLINE Horizontal scroll the field forward a line.
+REQ_SCR_BCHAR Scroll field backward 1 character.
+REQ_SCR_BHPAGE Scroll field backward \(12 page.
+REQ_SCR_BLINE Scroll field backward 1 line.
+REQ_SCR_BPAGE Scroll field backward 1 page.
+REQ_SCR_FCHAR Scroll field forward 1 character.
+REQ_SCR_FHPAGE Scroll field forward \(12 page.
+REQ_SCR_FLINE Scroll field forward 1 line.
+REQ_SCR_FPAGE Scroll field forward 1 page.
+REQ_SCR_HBHALF Horizontal scroll field backward \(12 line.
+REQ_SCR_HBLINE Horizontal scroll field backward 1 line.
+REQ_SCR_HFHALF Horizontal scroll field forward \(12 line.
+REQ_SCR_HFLINE Horizontal scroll field forward 1 line.
REQ_SFIRST_FIELD Move to the sorted first field.
REQ_SLAST_FIELD Move to the sorted last field.
REQ_SNEXT_FIELD Move to the sorted next field.
REQ_SPREV_FIELD Move to the sorted previous field.
-REQ_UP_CHAR Move up in the field.
+REQ_UP_CHAR Move up in field.
REQ_UP_FIELD Move up to a field.
REQ_VALIDATION Validate field.
.TE
@@ -138,7 +139,7 @@ If the second argument is a printable character, the driver places it
in the current position in the current field.
If it is one of the forms
requests listed above, that request is executed.
-.SS Field validation
+.SS "Field Validation"
The form library makes updates to the window associated
with form fields rather than directly to the field buffers.
.PP
@@ -147,7 +148,6 @@ The form driver also provides for validating modified fields
to ensure that the contents
meet whatever constraints an application may attach using \fBset_field_type\fP.
.PP
-.PP
You can validate a field without making any changes to it using
\fBREQ_VALIDATION\fP.
The form driver also validates a field in these cases:
@@ -166,8 +166,7 @@ In each case, the move fails if the field is invalid.
If the modified field is valid, the form driver copies the modified
data from the window associated with the field
to the field buffer.
-.SS Mouse handling
-.PP
+.SS "Mouse Handling"
If the second argument is the KEY_MOUSE special key, the associated
mouse event is translated into one of the above pre-defined requests.
Currently only clicks in the user window (e.g., inside the form display
@@ -200,7 +199,7 @@ the form cursor is positioned to that field.
.bP
If you double-click a field,
the form cursor is positioned to that field
-and \fBE_UNKNOWN_COMMAND\fR is returned.
+and \fBE_UNKNOWN_COMMAND\fP is returned.
This return value makes sense,
because a double click usually means that an field-specific action should
be returned.
@@ -208,21 +207,20 @@ It is exactly the purpose of this return value to signal that an
application specific command should be executed.
.bP
If a translation
-into a request was done, \fBform_driver\fR returns the result of this request.
+into a request was done, \fBform_driver\fP returns the result of this request.
.RE
.PP
If you clicked outside the user window
or the mouse event could not be translated
-into a form request an \fBE_REQUEST_DENIED\fR is returned.
-.SS Application-defined commands
-.PP
+into a form request an \fBE_REQUEST_DENIED\fP is returned.
+.SS "Application-defined Commands"
If the second argument is neither printable nor one of the above
pre-defined form requests, the driver assumes it is an application-specific
-command and returns \fBE_UNKNOWN_COMMAND\fR. Application-defined commands
-should be defined relative to \fBMAX_COMMAND\fR, the maximum value of these
+command and returns \fBE_UNKNOWN_COMMAND\fP. Application-defined commands
+should be defined relative to \fBMAX_COMMAND\fP, the maximum value of these
pre-defined requests.
.SH RETURN VALUE
-\fBform_driver\fR returns one of the following error codes:
+\fBform_driver\fP returns one of the following error codes:
.TP 5
.B E_OK
The routine succeeded.
@@ -246,22 +244,10 @@ No fields are connected to the form.
The form driver could not process the request.
.TP 5
.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR(3)).
+System error occurred (see \fBerrno\fP(3)).
.TP 5
.B E_UNKNOWN_COMMAND
The form driver code saw an unknown request code.
-.
-.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBform\fR(3X),
-\fBform_fieldtype\fR(3X),
-\fBform_field_buffer\fR(3X),
-\fBform_field_validation\fR(3X),
-\fBform_variables\fR(3X),
-\fBgetch\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header files
-\fB<curses.h>\fR.
.SH PORTABILITY
These routines emulate the System V forms library.
They were not supported on
@@ -269,3 +255,11 @@ Version 7 or BSD versions.
.SH AUTHORS
Juergen Pfeifer.
Manual pages and adaptation for new curses by Eric S. Raymond.
+.SH SEE ALSO
+\fB\%curses\fP(3X),
+\fB\%form\fP(3X),
+\fB\%form_fieldtype\fP(3X),
+\fB\%form_field_buffer\fP(3X),
+\fB\%form_field_validation\fP(3X),
+\fB\%form_variables\fP(3X),
+\fB\%getch\fP(3X)
diff --git a/man/form_field.3x b/man/form_field.3x
index 01ff576af173..9799d0c0cfda 100644
--- a/man/form_field.3x
+++ b/man/form_field.3x
@@ -1,6 +1,6 @@
'\" t
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2010,2012 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,39 +28,38 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: form_field.3x,v 1.17 2020/10/24 09:10:45 tom Exp $
-.TH form_field 3X ""
+.\" $Id: form_field.3x,v 1.34 2024/03/16 15:35:01 tom Exp $
+.TH form_field 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
-\fBform_field\fR \- make and break connections between fields and forms
+\fBform_field\fP \-
+make and break connections between fields and forms
.SH SYNOPSIS
-\fB#include <form.h>\fR
-.sp
-\fBint set_form_fields(FORM *\fP\fIform\fP\fB, FIELD **\fP\fIfields\fP\fB);\fP
-.br
-\fBFIELD **form_fields(const FORM *\fP\fIform\fP\fB);\fP
-.br
-\fBint field_count(const FORM *\fP\fIform\fP\fB);\fP
-.br
-\fBint move_field(FIELD *\fP\fIfield\fP\fB, int \fP\fIfrow\fP\fB, int \fP\fIfcol\fP\fB);\fP
-.br
+.nf
+\fB#include <form.h>
+.PP
+\fBint set_form_fields(FORM *\fIform\fP, FIELD **\fIfields\fP);
+\fBFIELD **form_fields(const FORM *\fIform\fP);
+\fBint field_count(const FORM *\fIform\fP);
+\fBint move_field(FIELD *\fIfield\fP, int \fIfrow\fP, int \fIfcol\fP);
+.fi
.SH DESCRIPTION
-The function \fBset_form_fields\fR changes the field pointer array of
-the given \fIform\fR. The array must be terminated by a \fBNULL\fR.
+The function \fBset_form_fields\fP changes the field pointer array of
+the given \fIform\fP. The array must be terminated by a \fBNULL\fP.
.PP
-The function \fBform_fields\fR returns the field array of the given form.
+The function \fBform_fields\fP returns the field array of the given form.
.PP
-The function \fBfield_count\fR returns the count of fields in \fIform\fR.
+The function \fBfield_count\fP returns the count of fields in \fIform\fP.
.PP
-The function \fBmove_field\fR moves the given field (which must be disconnected)
+The function \fBmove_field\fP moves the given field (which must be disconnected)
to a specified location on the screen.
.SH RETURN VALUE
-The function \fBform_fields\fR returns a pointer (which may be \fBNULL\fR).
+The function \fBform_fields\fP returns a pointer (which may be \fBNULL\fP).
It does not set \fBerrno\fP.
.PP
-The function \fBfield_count\fR returns \fBERR\fR if the \fIform\fP parameter
+The function \fBfield_count\fP returns \fBERR\fP if the \fIform\fP parameter
is \fBNULL\fP.
.PP
-The functions \fBset_form_fields\fR and \fBmove_field\fR return one of
+The functions \fBset_form_fields\fP and \fBmove_field\fP return one of
the following codes on error:
.TP 5
.B E_OK
@@ -76,19 +75,17 @@ The field is already connected to a form.
The form is already posted.
.TP 5
.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR(3)).
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBform\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
+System error occurred (see \fBerrno\fP(3)).
.SH PORTABILITY
These routines emulate the System V forms library.
They were not supported on
Version 7 or BSD versions.
.PP
-The SVr4 forms library documentation specifies the \fBfield_count\fR error value
-as \-1 (which is the value of \fBERR\fR).
+The SVr4 forms library documentation specifies the \fBfield_count\fP error value
+as \-1 (which is the value of \fBERR\fP).
.SH AUTHORS
Juergen Pfeifer.
Manual pages and adaptation for new curses by Eric S. Raymond.
+.SH SEE ALSO
+\fB\%curses\fP(3X),
+\fB\%form\fP(3X)
diff --git a/man/form_field_attributes.3x b/man/form_field_attributes.3x
index 88778b1bc9a5..687e909e59be 100644
--- a/man/form_field_attributes.3x
+++ b/man/form_field_attributes.3x
@@ -1,6 +1,6 @@
'\" t
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2006,2010 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,45 +28,50 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: form_field_attributes.3x,v 1.18 2020/10/18 00:14:20 tom Exp $
-.TH form_field_attributes 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: form_field_attributes.3x,v 1.35 2024/03/16 15:35:01 tom Exp $
+.TH form_field_attributes 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
.SH NAME
-\fBform_field_attributes\fR \- color and attribute control for form fields
+\fBform_field_attributes\fP \-
+color and attribute control for form fields
.SH SYNOPSIS
-\fB#include <form.h>\fR
-.sp
-\fBint set_field_fore(FIELD *\fP\fIfield\fP\fB, chtype \fP\fIattr\fP\fB);\fP
-.br
-\fBchtype field_fore(const FIELD *\fP\fIfield\fP\fB);\fP
-.sp
-\fBint set_field_back(FIELD *\fP\fIfield\fP\fB, chtype \fP\fIattr\fP\fB);\fP
-.br
-\fBchtype field_back(const FIELD *\fP\fIfield\fP\fB);\fP
-.sp
-\fBint set_field_pad(FIELD *\fP\fIfield\fP\fB, int \fP\fIpad\fP\fB);\fP
-.br
-\fBint field_pad(const FIELD *\fP\fIfield\fP\fB);\fP
-.br
+.nf
+\fB#include <form.h>
+.PP
+\fBint set_field_fore(FIELD *\fIfield\fP, chtype \fIattr\fP);
+\fBchtype field_fore(const FIELD *\fIfield\fP);
+.PP
+\fBint set_field_back(FIELD *\fIfield\fP, chtype \fIattr\fP);
+\fBchtype field_back(const FIELD *\fIfield\fP);
+.PP
+\fBint set_field_pad(FIELD *\fIfield\fP, int \fIpad\fP);
+\fBint field_pad(const FIELD *\fIfield\fP);
+.fi
.SH DESCRIPTION
-The function \fBset_field_fore\fR sets the foreground attribute of
-\fIfield\fR. This is the highlight used to display the field contents. The
-function \fBfield_fore\fR returns the foreground attribute.
+The function \fBset_field_fore\fP sets the foreground attribute of
+\fIfield\fP. This is the highlight used to display the field contents. The
+function \fBfield_fore\fP returns the foreground attribute.
The default is
-\fBA_STANDOUT\fR.
+\fBA_STANDOUT\fP.
.PP
-The function \fBset_field_back\fR sets the background attribute of
-\fIform\fR. This is the highlight used to display the extent fields in the
+The function \fBset_field_back\fP sets the background attribute of
+\fIform\fP. This is the highlight used to display the extent fields in the
form.
-The function \fBfield_back\fR returns the background attribute.
+The function \fBfield_back\fP returns the background attribute.
The
-default is \fBA_NORMAL\fR.
+default is \fBA_NORMAL\fP.
.PP
-The function \fBset_field_pad\fR sets the character used to fill the field.
-The function \fBfield_pad\fR returns the given form's pad character.
+The function \fBset_field_pad\fP sets the character used to fill the field.
+The function \fBfield_pad\fP returns the given form's pad character.
The
default is a blank.
.SH RETURN VALUE
@@ -79,14 +84,7 @@ The routine succeeded.
Routine detected an incorrect or out-of-range argument.
.TP 5
.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR(3)).
-.
-.SH SEE ALSO
-\fBcurses\fR(3X) and related pages whose names begin \*(``form_\*('' for detailed
-descriptions of the entry points.
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
+System error occurred (see \fBerrno\fP(3)).
.SH PORTABILITY
These routines emulate the System V forms library.
They were not supported on
@@ -94,3 +92,6 @@ Version 7 or BSD versions.
.SH AUTHORS
Juergen Pfeifer.
Manual pages and adaptation for new curses by Eric S. Raymond.
+.SH SEE ALSO
+\fB\%curses\fP(3X) and related pages whose names begin \*(``form_\*(''
+for detailed descriptions of the entry points.
diff --git a/man/form_field_buffer.3x b/man/form_field_buffer.3x
index 98b2e42dc831..ba176d3e122b 100644
--- a/man/form_field_buffer.3x
+++ b/man/form_field_buffer.3x
@@ -1,6 +1,5 @@
-'\" t
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2010,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,44 +27,51 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: form_field_buffer.3x,v 1.27 2020/10/24 09:27:17 tom Exp $
-.TH form_field_buffer 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: form_field_buffer.3x,v 1.45 2024/03/16 15:35:01 tom Exp $
+.TH form_field_buffer 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
.SH NAME
-\fBform_field_buffer\fR \- field buffer control
+\fBform_field_buffer\fP \-
+field buffer control
.SH SYNOPSIS
-\fB#include <form.h>\fR
-.sp
-\fBint set_field_buffer(FIELD *\fP\fIfield\fP\fB, int \fP\fIbuf\fP\fB, const char *\fP\fIvalue\fP\fB);\fP
-.br
-\fBchar *field_buffer(const FIELD *\fP\fIfield\fP\fB, int \fP\fIbuffer\fP\fB);\fP
-.sp
-\fBint set_field_status(FIELD *\fP\fIfield\fP\fB, bool \fP\fIstatus\fP\fB);\fP
-.br
-\fBbool field_status(const FIELD *\fP\fIfield\fP\fB);\fP
-.sp
-\fBint set_max_field(FIELD *\fP\fIfield\fP\fB, int \fP\fImax\fP\fB);\fP
-.br
+.nf
+\fB#include <form.h>
+.PP
+\fBint set_field_buffer(FIELD *\fIfield\fP, int \fIbuf\fP, const char *\fIvalue\fP);
+\fBchar *field_buffer(const FIELD *\fIfield\fP, int \fIbuffer\fP);
+.PP
+\fBint set_field_status(FIELD *\fIfield\fP, bool \fIstatus\fP);
+\fBbool field_status(const FIELD *\fIfield\fP);
+.PP
+\fBint set_max_field(FIELD *\fIfield\fP, int \fImax\fP);
+.fi
.SH DESCRIPTION
-The function \fBset_field_buffer\fR sets the numbered buffer of the given field
+The function \fBset_field_buffer\fP sets the numbered buffer of the given field
to contain a given string:
.RS 3
.bP
Buffer 0 is the displayed value of the field.
.bP
-Other numbered buffers may be allocated by applications through the \fBnbuf\fR
-argument of (see \fBform_field_new\fR(3X))
+Other numbered buffers may be allocated by applications through the \fBnbuf\fP
+argument of (see \fBform_field_new\fP(3X))
but are not manipulated by the forms library.
.RE
.PP
-The function \fBfield_buffer\fR returns a pointer to
+The function \fBfield_buffer\fP returns a pointer to
the contents of the given numbered buffer:
.RS 3
.bP
@@ -90,15 +96,15 @@ correspond to the window, you should not rely on using buffers
for long-term storage of form data.
.RE
.PP
-The function \fBset_field_status\fR sets the associated status flag of
-\fIfield\fR; \fBfield_status\fR gets the current value.
+The function \fBset_field_status\fP sets the associated status flag of
+\fIfield\fP; \fBfield_status\fP gets the current value.
The status flag
is set to a nonzero value whenever the field changes.
.PP
-The function \fBset_max_field\fR sets the maximum size for a dynamic field.
+The function \fBset_max_field\fP sets the maximum size for a dynamic field.
An argument of 0 turns off any maximum size threshold for that field.
.SH RETURN VALUE
-The \fBfield_buffer\fR function returns NULL on error.
+The \fBfield_buffer\fP function returns NULL on error.
It sets \fBerrno\fP according to their success:
.TP 5
.B E_OK
@@ -107,7 +113,7 @@ The routine succeeded.
.B E_BAD_ARGUMENT
Routine detected an incorrect or out-of-range argument.
.PP
-The \fBfield_status\fR function returns \fBTRUE\fR or \fBFALSE\fR.
+The \fBfield_status\fP function returns \fBTRUE\fP or \fBFALSE\fP.
.PP
The remaining routines return one of the following:
.TP 5
@@ -115,30 +121,27 @@ The remaining routines return one of the following:
The routine succeeded.
.TP 5
.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR(3)).
+System error occurred (see \fBerrno\fP(3)).
.TP 5
.B E_BAD_ARGUMENT
Routine detected an incorrect or out-of-range argument.
-.SH SEE ALSO
-\fBcurses\fR(3X) and related pages whose names begin \*(``form_\*('' for detailed
-descriptions of the entry points.
.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-.PP
When configured for wide characters, \fBfield_buffer\fP returns a pointer
to temporary storage (allocated and freed by the library).
The application should not attempt to modify the data.
It will be freed on the next call to \fBfield_buffer\fP to return the
same buffer.
-\fB<curses.h>\fR.
.SH PORTABILITY
These routines emulate the System V forms library.
They were not supported on
Version 7 or BSD versions.
.PP
-The \fBset_max_field\fP function checks for an ncurses extension
+The \fBset_max_field\fP function checks for an \fI\%ncurses\fP extension
\fBO_INPUT_FIELD\fP which allows a dynamic field to shrink if the new
limit is smaller than the current field size.
.SH AUTHORS
Juergen Pfeifer.
Manual pages and adaptation for new curses by Eric S. Raymond.
+.SH SEE ALSO
+\fB\%curses\fP(3X) and related pages whose names begin \*(``form_\*(''
+for detailed descriptions of the entry points.
diff --git a/man/form_field_info.3x b/man/form_field_info.3x
index 556c45ba22d5..84b10d96d4b8 100644
--- a/man/form_field_info.3x
+++ b/man/form_field_info.3x
@@ -1,6 +1,5 @@
-'\" t
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2010,2015 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,40 +27,47 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: form_field_info.3x,v 1.18 2020/10/17 23:35:05 tom Exp $
-.TH form_field_info 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: form_field_info.3x,v 1.32 2024/03/16 15:35:01 tom Exp $
+.TH form_field_info 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
.SH NAME
\fBdynamic_field_info\fP,
-\fBfield_info\fR \- retrieve field characteristics
+\fBfield_info\fP \-
+retrieve field characteristics
.SH SYNOPSIS
.nf
-\fB#include <form.h>\fR
-.sp
-\fBint field_info(const FIELD *\fP\fIfield\fP\fB,\fP
- \fBint *\fP\fIrows\fP\fB, int *\fP\fIcols\fP\fB,\fP
- \fBint *\fP\fIfrow\fP\fB, int *\fP\fIfcol\fP\fB,\fP
- \fBint *\fP\fInrow\fP\fB, int *\fP\fInbuf\fB);\fP
-.sp
-\fBint dynamic_field_info(const FIELD *\fP\fIfield\fP\fB,\fP
- \fBint *\fP\fIrows\fP\fB, int *\fP\fIcols\fP\fB, int *\fImax\fB);\fP
+\fB#include <form.h>
+.PP
+\fBint field_info(const FIELD *\fIfield\fP,
+ \fBint *\fIrows\fB, int *\fIcols\fB,\fR
+ \fBint *\fIfrow\fB, int *\fIfcol\fB,\fR
+ \fBint *\fInrow\fB, int *\fInbuf\fB);\fR
+.PP
+\fBint dynamic_field_info(const FIELD *\fIfield\fB,\fR
+ \fBint *\fIrows\fB, int *\fIcols\fB, int *\fImax\fB);\fR
.fi
.SH DESCRIPTION
-The function \fBfield_info\fR returns the sizes and other attributes passed in
+The function \fBfield_info\fP returns the sizes and other attributes passed in
to the field at its creation time.
The attributes are: height, width, row of
upper-left corner, column of upper-left corner, number off-screen rows, and
number of working buffers.
.PP
-The function \fBdynamic_field_info\fR returns the actual size of the field, and
+The function \fBdynamic_field_info\fP returns the actual size of the field, and
its maximum possible size.
If the field has no size limit, the location
addressed by the third argument will be set to 0.
A field can be made dynamic
-by turning off the \fBO_STATIC\fR option with \fBfield_opts_off\fR.
+by turning off the \fBO_STATIC\fP option with \fBfield_opts_off\fP.
.SH RETURN VALUE
These routines return one of the following:
.TP 5
@@ -69,16 +75,10 @@ These routines return one of the following:
The routine succeeded.
.TP 5
.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR(3)).
+System error occurred (see \fBerrno\fP(3)).
.TP 5
.B E_BAD_ARGUMENT
Routine detected an incorrect or out-of-range argument.
-.SH SEE ALSO
-\fBcurses\fR(3X) and related pages whose names begin \*(``form_\*('' for detailed
-descriptions of the entry points.
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
.SH PORTABILITY
These routines emulate the System V forms library.
They were not supported on
@@ -90,3 +90,6 @@ Not all implementations allow this, e.g., Solaris 2.7 does not.
.SH AUTHORS
Juergen Pfeifer.
Manual pages and adaptation for new curses by Eric S. Raymond.
+.SH SEE ALSO
+\fB\%curses\fP(3X) and related pages whose names begin \*(``form_\*(''
+for detailed descriptions of the entry points.
diff --git a/man/form_field_just.3x b/man/form_field_just.3x
index d8fef7656542..c1fd5545eb8a 100644
--- a/man/form_field_just.3x
+++ b/man/form_field_just.3x
@@ -1,6 +1,5 @@
-'\" t
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2010,2015 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,48 +27,49 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: form_field_just.3x,v 1.18 2020/10/18 00:12:55 tom Exp $
-.TH form_field_just 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: form_field_just.3x,v 1.35 2024/03/16 15:35:01 tom Exp $
+.TH form_field_just 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
.SH NAME
-\fBset_field_just\fR,
-\fBfield_just\fP \- retrieve field characteristics
+\fBset_field_just\fP,
+\fBfield_just\fP \-
+retrieve field characteristics
.SH SYNOPSIS
-\fB#include <form.h>\fR
-.sp
-\fBint set_field_just(FIELD *\fP\fIfield\fP\fB, int \fP\fIjustification\fP\fB);\fP
-.br
-\fBint field_just(const FIELD *\fP\fIfield\fP\fB);\fP
-.br
+.nf
+\fB#include <form.h>
+.PP
+\fBint set_field_just(FIELD *\fIfield\fP, int \fIjustification\fP);
+\fBint field_just(const FIELD *\fIfield\fP);
+.fi
.SH DESCRIPTION
-The function \fBset_field_just\fR sets the justification attribute of
-a field; \fBfield_just\fR returns a field's justification attribute.
+The function \fBset_field_just\fP sets the justification attribute of
+a field; \fBfield_just\fP returns a field's justification attribute.
The attribute may be one of NO_JUSTIFICATION, JUSTIFY_RIGHT,
JUSTIFY_LEFT, or JUSTIFY_CENTER.
.
.SH RETURN VALUE
-The function \fBfield_just\fR returns one of: NO_JUSTIFICATION,
+The function \fBfield_just\fP returns one of: NO_JUSTIFICATION,
JUSTIFY_RIGHT, JUSTIFY_LEFT, or JUSTIFY_CENTER.
.PP
-The function \fBset_field_just\fR returns one of the following:
+The function \fBset_field_just\fP returns one of the following:
.TP 5
.B E_OK
The routine succeeded.
.TP 5
.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR(3)).
+System error occurred (see \fBerrno\fP(3)).
.TP 5
.B E_BAD_ARGUMENT
Routine detected an incorrect or out-of-range argument.
-.SH SEE ALSO
-\fBcurses\fR(3X) and related pages whose names begin \*(``form_\*('' for detailed
-descriptions of the entry points.
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
.SH PORTABILITY
These routines emulate the System V forms library.
They were not supported on
@@ -77,3 +77,6 @@ Version 7 or BSD versions.
.SH AUTHORS
Juergen Pfeifer.
Manual pages and adaptation for new curses by Eric S. Raymond.
+.SH SEE ALSO
+\fB\%curses\fP(3X) and related pages whose names begin \*(``form_\*(''
+for detailed descriptions of the entry points.
diff --git a/man/form_field_new.3x b/man/form_field_new.3x
index 1a240d0a7fc3..9cf08adb521c 100644
--- a/man/form_field_new.3x
+++ b/man/form_field_new.3x
@@ -1,6 +1,5 @@
-'\" t
.\"***************************************************************************
-.\" Copyright 2018,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2010,2015 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,32 +27,31 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: form_field_new.3x,v 1.24 2020/10/24 09:09:18 tom Exp $
-.TH form_field_new 3X ""
+.\" $Id: form_field_new.3x,v 1.41 2024/03/16 15:35:01 tom Exp $
+.TH form_field_new 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
-\fBnew_field\fR,
-\fBdup_field\fR,
-\fBlink_field\fR,
-\fBfree_field\fR \- create and destroy form fields
+\fBnew_field\fP,
+\fBdup_field\fP,
+\fBlink_field\fP,
+\fBfree_field\fP \-
+create and destroy form fields
.SH SYNOPSIS
-\fB#include <form.h>\fR
-.sp
-\fBFIELD *new_field(int \fP\fIheight\fP\fB, int \fP\fIwidth\fP\fB,\fP
- \fBint \fP\fItoprow\fP\fB, int \fP\fIleftcol\fP\fB,\fP
- \fBint \fP\fIoffscreen\fP\fB, int \fP\fInbuffers\fP\fB);\fP
-.br
-\fBFIELD *dup_field(FIELD *\fP\fIfield\fP\fB, int \fP\fItoprow\fP\fB, int \fP\fIleftcol\fP\fB);\fP
-.br
-\fBFIELD *link_field(FIELD *\fP\fIfield\fP\fB, int \fP\fItoprow\fP\fB, int \fP\fIleftcol\fP\fB);\fP
-.br
-\fBint free_field(FIELD *\fP\fIfield\fP\fB);\fP
-.br
+.nf
+\fB#include <form.h>
+.PP
+\fBFIELD *new_field(int \fIheight\fP, int \fIwidth\fP,
+ \fBint \fItoprow\fB, int \fIleftcol\fB,\fR
+ \fBint \fIoffscreen\fB, int \fInbuffers\fB);\fR
+\fBFIELD *dup_field(FIELD *\fIfield\fB, int \fItoprow\fB, int \fIleftcol\fB);\fR
+\fBFIELD *link_field(FIELD *\fIfield\fB, int \fItoprow\fB, int \fIleftcol\fB);\fR
+\fBint free_field(FIELD *\fIfield\fB);\fR
+.fi
.SH DESCRIPTION
-The function \fBnew_field\fR allocates a new field and initializes it from the
+The function \fBnew_field\fP allocates a new field and initializes it from the
parameters given: height, width, row of upper-left corner, column of upper-left
corner, number off-screen rows, and number of additional working buffers.
.PP
-The function \fBdup_field\fR duplicates a field at a new location.
+The function \fBdup_field\fP duplicates a field at a new location.
Most
attributes (including current contents, size, validation type, buffer count,
growth threshold, justification, foreground, background, pad character,
@@ -61,14 +59,14 @@ options, and user pointer) are copied.
Field status and the field page bit are
not copied.
.PP
-The function \fBlink_field\fR acts like \fBdup_field\fR, but the new field
+The function \fBlink_field\fP acts like \fBdup_field\fP, but the new field
shares buffers with its parent.
Attribute data is separate.
.PP
-The function \fBfree_field\fR de-allocates storage associated with a field.
+The function \fBfree_field\fP de-allocates storage associated with a field.
.SH RETURN VALUE
-The functions \fBnew_field\fR, \fBdup_field\fR, \fBlink_field\fR return
-\fBNULL\fR on error.
+The functions \fBnew_field\fP, \fBdup_field\fP, \fBlink_field\fP return
+\fBNULL\fP on error.
They set \fBerrno\fP according to their success:
.TP 5
.B E_OK
@@ -80,7 +78,7 @@ Routine detected an incorrect or out-of-range argument.
.B E_SYSTEM_ERROR
System error occurred, e.g., malloc failure.
.PP
-The function \fBfree_field\fR returns one of the following:
+The function \fBfree_field\fP returns one of the following:
.TP 5
.B E_OK
The routine succeeded.
@@ -90,19 +88,17 @@ Routine detected an incorrect or out-of-range argument.
.TP 5
.B E_CONNECTED
field is connected.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBform\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
.SH PORTABILITY
These routines emulate the System V forms library.
They were not supported on
Version 7 or BSD versions.
.PP
It may be unwise to count on the set of attributes copied by
-\fBdup_field\fR being portable; the System V forms library documents are
+\fBdup_field\fP being portable; the System V forms library documents are
not very explicit about what gets copied and what does not.
.SH AUTHORS
Juergen Pfeifer.
Manual pages and adaptation for new curses by Eric S. Raymond.
+.SH SEE ALSO
+\fB\%curses\fP(3X),
+\fB\%form\fP(3X)
diff --git a/man/form_field_opts.3x b/man/form_field_opts.3x
index 96338e295eef..9ab3ad0cb32a 100644
--- a/man/form_field_opts.3x
+++ b/man/form_field_opts.3x
@@ -1,6 +1,5 @@
-'\" t
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2014,2015 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,35 +27,35 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: form_field_opts.3x,v 1.27 2020/10/18 00:11:45 tom Exp $
-.TH form_field_opts 3X ""
+.\" $Id: form_field_opts.3x,v 1.44 2024/03/16 15:35:01 tom Exp $
+.TH form_field_opts 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
\fBset_field_opts\fP,
\fBfield_opts_on\fP,
\fBfield_opts_off\fP,
-\fBfield_opts\fP \- set and get field options
+\fBfield_opts\fP \-
+set and get field options
.SH SYNOPSIS
-\fB#include <form.h>\fR
-.sp
-\fBint set_field_opts(FIELD *\fP\fIfield\fP\fB, Field_Options \fP\fIopts\fP\fB);\fP
-.br
-\fBField_Options field_opts(const FIELD *\fP\fIfield\fP\fB);\fP
-.sp
-\fBint field_opts_on(FIELD *\fP\fIfield\fP\fB, Field_Options \fP\fIopts\fP\fB);\fP
-.br
-\fBint field_opts_off(FIELD *\fP\fIfield\fP\fB, Field_Options \fP\fIopts\fP\fB);\fP
-.br
+.nf
+\fB#include <form.h>
+.PP
+\fBint set_field_opts(FIELD *\fIfield\fP, Field_Options \fIopts\fP);
+\fBField_Options field_opts(const FIELD *\fIfield\fP);
+.PP
+\fBint field_opts_on(FIELD *\fIfield\fP, Field_Options \fIopts\fP);
+\fBint field_opts_off(FIELD *\fIfield\fP, Field_Options \fIopts\fP);
+.fi
.SH DESCRIPTION
-The function \fBset_field_opts\fR sets all the given field's option bits (field
+The function \fBset_field_opts\fP sets all the given field's option bits (field
option bits may be logically-OR'ed together).
.PP
-The function \fBfield_opts_on\fR turns on the given option bits, and leaves
+The function \fBfield_opts_on\fP turns on the given option bits, and leaves
others alone.
.PP
-The function \fBfield_opts_off\fR turns off the given option bits, and leaves
+The function \fBfield_opts_off\fP turns off the given option bits, and leaves
others alone.
.PP
-The function \fBfield_opts\fR returns the field's current option bits.
+The function \fBfield_opts\fP returns the field's current option bits.
.PP
The following standard options are defined (all are on by default):
.TP 5
@@ -121,7 +120,7 @@ The \fBset_max_field\fP function checks for this extension,
which allows a dynamic field to shrink if the new
limit is smaller than the current field size.
.SH RETURN VALUE
-Except for \fBfield_opts\fR, each routine returns one of the following:
+Except for \fBfield_opts\fP, each routine returns one of the following:
.TP 5
.B E_OK
The routine succeeded.
@@ -133,14 +132,7 @@ Routine detected an incorrect or out-of-range argument.
The field is the current field.
.TP 5
.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR(3)).
-.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBform\fR(3X).
-\fBform_field_just\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
+System error occurred (see \fBerrno\fP(3)).
.SH PORTABILITY
These routines emulate the System V forms library.
They were not supported on
@@ -148,3 +140,7 @@ Version 7 or BSD versions.
.SH AUTHORS
Juergen Pfeifer.
Manual pages and adaptation for new curses by Eric S. Raymond.
+.SH SEE ALSO
+\fB\%curses\fP(3X),
+\fB\%form\fP(3X),
+\fB\%form_field_just\fP(3X)
diff --git a/man/form_field_userptr.3x b/man/form_field_userptr.3x
index 5d3ab1444c35..6eea09201e76 100644
--- a/man/form_field_userptr.3x
+++ b/man/form_field_userptr.3x
@@ -1,6 +1,5 @@
-'\" t
.\"***************************************************************************
-.\" Copyright 2018,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2010,2015 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,32 +27,29 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: form_field_userptr.3x,v 1.16 2020/10/24 09:06:33 tom Exp $
-.TH form_field_userptr 3X ""
+.\" $Id: form_field_userptr.3x,v 1.30 2024/03/16 15:35:01 tom Exp $
+.TH form_field_userptr 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
-\fBset_field_userptr\fR,
-\fBfield_userptr\fR \- associate application data with a form field
+\fBset_field_userptr\fP,
+\fBfield_userptr\fP \-
+associate application data with a form field
.SH SYNOPSIS
-\fB#include <form.h>\fR
-.sp
-\fBint set_field_userptr(FIELD *\fP\fIfield\fP\fB, void *\fP\fIuserptr\fP\fB);\fP
-.br
-\fBvoid *field_userptr(const FIELD *\fP\fIfield\fP\fB);\fP
+.nf
+\fB#include <form.h>
+.PP
+\fBint set_field_userptr(FIELD *\fIfield\fP, void *\fIuserptr\fP);
+\fBvoid *field_userptr(const FIELD *\fIfield\fP);
+.fi
.SH DESCRIPTION
Every form field has a field that can be used to hold application-specific data
(that is, the form-driver code leaves it alone).
These functions get and set
that field.
.SH RETURN VALUE
-The function \fBfield_userptr\fR returns a pointer (which may be \fBNULL\fR).
+The function \fBfield_userptr\fP returns a pointer (which may be \fBNULL\fP).
It does not set \fBerrno\fP.
.PP
-The function \fBset_field_userptr\fR returns \fBE_OK\fP (success).
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBform\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
+The function \fBset_field_userptr\fP returns \fBE_OK\fP (success).
.SH PORTABILITY
These routines emulate the System V forms library.
They were not supported on
@@ -64,3 +60,6 @@ We chose not to leave it as a char pointer for SVr4 compatibility.
.SH AUTHORS
Juergen Pfeifer.
Manual pages and adaptation for new curses by Eric S. Raymond.
+.SH SEE ALSO
+\fB\%curses\fP(3X),
+\fB\%form\fP(3X)
diff --git a/man/form_field_validation.3x b/man/form_field_validation.3x
index 8ce9132c13c7..54fa2a72a4b4 100644
--- a/man/form_field_validation.3x
+++ b/man/form_field_validation.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2010,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,43 +27,43 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: form_field_validation.3x,v 1.33 2020/12/12 19:57:55 tom Exp $
-.TH form_field_validation 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: form_field_validation.3x,v 1.53 2024/03/16 15:35:01 tom Exp $
+.TH form_field_validation 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
.SH NAME
-\fBform_field_validation\fR \- data type validation for fields
+\fBform_field_validation\fP \-
+data type validation for fields
.SH SYNOPSIS
-\fB#include <form.h>\fR
-.sp
-\fBvoid *field_arg(const FIELD *\fP\fIfield\fP\fB);\fP
-.br
-\fBFIELDTYPE *field_type(const FIELD *\fP\fIfield\fP\fB);\fP
-.br
-\fBint set_field_type(FIELD *\fP\fIfield\fP\fB, FIELDTYPE *\fP\fItype\fP\fB, ...);\fP
-.sp
-/* predefined field types */
-.br
-\fBFIELDTYPE *TYPE_ALNUM;\fP
-.br
-\fBFIELDTYPE *TYPE_ALPHA;\fP
-.br
-\fBFIELDTYPE *TYPE_ENUM;\fP
-.br
-\fBFIELDTYPE *TYPE_INTEGER;\fP
-.br
-\fBFIELDTYPE *TYPE_NUMERIC;\fP
-.br
-\fBFIELDTYPE *TYPE_REGEXP;\fP
-.br
-\fBFIELDTYPE *TYPE_IPV4;\fP
-.br
+.nf
+\fB#include <form.h>
+.PP
+\fBvoid *field_arg(const FIELD *\fIfield\fP);
+\fBFIELDTYPE *field_type(const FIELD *\fIfield\fP);
+\fBint set_field_type(FIELD *\fIfield\fP, FIELDTYPE *\fItype\fP, ...);
+.PP
+\fI/* predefined field types */\fP
+\fBFIELDTYPE *TYPE_ALNUM;
+\fBFIELDTYPE *TYPE_ALPHA;
+\fBFIELDTYPE *TYPE_ENUM;
+\fBFIELDTYPE *TYPE_INTEGER;
+\fBFIELDTYPE *TYPE_NUMERIC;
+\fBFIELDTYPE *TYPE_REGEXP;
+\fBFIELDTYPE *TYPE_IPV4;
+.fi
.SH DESCRIPTION
By default, no validation is done on form fields.
You can associate a form with with a \fIfield type\fP,
@@ -76,113 +76,94 @@ a copy of the arguments provided in a \fBset_field_type\fP call.
Returns a pointer to the \fIfield type\fP associated with the form field,
i.e., by calling \fBset_field_type\fP.
.SS set_field_type
-The function \fBset_field_type\fR associates
+The function \fBset_field_type\fP associates
a field type with a given form field.
This is the type checked by validation functions.
Most field types are configurable,
via arguments which the caller provides when calling \fBset_field_type\fP.
.PP
Several field types are predefined by the form library.
-.SS Predefined types
-.PP
+.SH PREDEFINED TYPES
It is possible to set up new programmer-defined field types.
Field types are implemented via the \fBFIELDTYPE\fP data
structure, which contains several pointers to functions.
.PP
-See the \fBform_fieldtype\fR(3X) manual page,
+See the \fBform_fieldtype\fP(3X) manual page,
which describes functions which can be used to construct
a field-type dynamically.
.PP
The predefined types are as follows:
-.TP 5
-TYPE_ALNUM
+.SS TYPE_ALNUM
Alphanumeric data.
Required parameter:
-.RS
.bP
-a third \fBint\fR argument, a minimum field width.
-.RE
-.TP 5
-TYPE_ALPHA
+a third \fBint\fP argument, a minimum field width.
+.SS TYPE_ALPHA
Character data.
Required parameter:
-.RS
.bP
-a third \fBint\fR argument, a minimum field width.
-.RE
-.TP 5
-TYPE_ENUM
+a third \fBint\fP argument, a minimum field width.
+.SS TYPE_ENUM
Accept one of a specified set of strings.
Required parameters:
-.RS
.bP
-a third \fB(char **)\fR argument pointing to a string list;
+a third \fB(char **)\fP argument pointing to a string list;
.bP
-a fourth \fBint\fR flag argument to enable case-sensitivity;
+a fourth \fBint\fP flag argument to enable case-sensitivity;
.bP
-a fifth \fBint\fR flag argument specifying whether a partial
+a fifth \fBint\fP flag argument specifying whether a partial
match must be a unique one.
If this flag is off, a prefix matches the first
of any set of more than one list elements with that prefix.
-.RE
-.IP
+.PP
The library copies the string list,
so you may use a list that lives in automatic variables on the stack.
-.TP 5
-TYPE_INTEGER
+.SS TYPE_INTEGER
Integer data, parsable to an integer by \fBatoi\fP(3).
Required parameters:
-.RS
.bP
-a third \fBint\fR argument controlling the precision,
+a third \fBint\fP argument controlling the precision,
.bP
-a fourth \fBlong\fR argument constraining minimum value,
+a fourth \fBlong\fP argument constraining minimum value,
.bP
-a fifth \fBlong\fR constraining maximum value.
+a fifth \fBlong\fP constraining maximum value.
If the maximum value is less than or equal to the minimum value, the range is
simply ignored.
-.RE
-.IP
+.PP
On return, the field buffer is formatted according to the
-\fBprintf\fR format specification \*(``.*ld\*('',
+\fBprintf\fP format specification \*(``.*ld\*('',
where the \*(``*\*('' is replaced by the precision argument.
-.IP
-For details of the precision handling see \fBprintf\fR(3).
-.TP 5
-TYPE_NUMERIC
+.PP
+For details of the precision handling see \fBprintf\fP(3).
+.SS TYPE_NUMERIC
Numeric data (may have a decimal-point part).
Required parameters:
-.RS
.bP
-a third \fBint\fR argument controlling the precision,
+a third \fBint\fP argument controlling the precision,
.bP
-a fourth \fBdouble\fR argument constraining minimum value,
+a fourth \fBdouble\fP argument constraining minimum value,
.bP
-and a fifth \fBdouble\fR constraining maximum value.
+and a fifth \fBdouble\fP constraining maximum value.
If your system supports locales,
the decimal point character must be the one specified by your locale.
If the maximum value is less than or equal to the minimum value,
the range is simply ignored.
-.RE
-.IP
+.PP
On return, the field buffer is formatted according to the
-\fBprintf\fR format specification \*(``.*f\*('',
+\fBprintf\fP format specification \*(``.*f\*('',
where the \*(``*\*('' is replaced by the precision argument.
-.IP
-For details of the precision handling see \fBprintf\fR(3).
-.TP 5
-TYPE_REGEXP
+.PP
+For details of the precision handling see \fBprintf\fP(3).
+.SS TYPE_REGEXP
Regular expression data.
Required parameter:
-.RS
.bP
-a third argument, a regular expression \fB(char *)\fR string.
+a third argument, a regular expression \fB(char *)\fP string.
The data is valid if the regular expression matches it.
-.RE
-.IP
+.PP
Regular expressions
-are in the format of \fBregcomp\fR and \fBregexec\fR.
-.IP
+are in the format of \fBregcomp\fP and \fBregexec\fP.
+.PP
The regular expression must match the whole field.
If you have for example, an eight character wide field,
a regular expression "^[0\-9]*$" always
@@ -192,39 +173,28 @@ you may use for example "^[0\-9]* *$" which is good for
trailing spaces (up to an empty field),
or "^ *[0\-9]* *$" which is good for
leading and trailing spaces around the digits.
-.TP 5
-TYPE_IPV4
+.SS TYPE_IPV4
An Internet Protocol Version 4 address.
Required parameter:
-.RS
.bP
none
-.RE
-.IP
+.PP
The form library checks whether or not the buffer has the form \fIa.b.c.d\fP,
where \fIa\fP, \fIb\fP, \fIc\fP, and \fId\fP are numbers in the range 0 to 255.
Trailing blanks in the buffer are ignored.
The address itself is not validated.
-.IP
-This is an ncurses extension;
+.PP
+This is an \fI\%ncurses\fP extension;
this field type may not be available in other curses implementations.
.SH RETURN VALUE
-The functions \fBfield_type\fR and \fBfield_arg\fR return \fBNULL\fR on error.
-The function \fBset_field_type\fR returns one of the following:
+The functions \fBfield_type\fP and \fBfield_arg\fP return \fBNULL\fP on error.
+The function \fBset_field_type\fP returns one of the following:
.TP 5
.B E_OK
The routine succeeded.
.TP 5
.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR(3)).
-.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBform\fR(3X),
-\fBform_fieldtype\fR(3X),
-\fBform_variables\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
+System error occurred (see \fBerrno\fP(3)).
.SH PORTABILITY
These routines emulate the System V forms library.
They were not supported on
@@ -232,3 +202,8 @@ Version 7 or BSD versions.
.SH AUTHORS
Juergen Pfeifer.
Manual pages and adaptation for new curses by Eric S. Raymond.
+.SH SEE ALSO
+\fB\%curses\fP(3X),
+\fB\%form\fP(3X),
+\fB\%form_fieldtype\fP(3X),
+\fB\%form_variables\fP(3X)
diff --git a/man/form_fieldtype.3x b/man/form_fieldtype.3x
index 767c3fcfafcd..81a58b1d8e48 100644
--- a/man/form_fieldtype.3x
+++ b/man/form_fieldtype.3x
@@ -1,6 +1,5 @@
-'\" t
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2006,2010 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,43 +27,44 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: form_fieldtype.3x,v 1.28 2020/12/12 17:11:21 tom Exp $
+.\" $Id: form_fieldtype.3x,v 1.46 2024/03/16 15:35:01 tom Exp $
+.TH form_fieldtype 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
-.TH form_fieldtype 3X ""
.SH NAME
-\fBform_fieldtype\fR \- define validation-field types
+\fBform_fieldtype\fP \-
+define validation-field types
.SH SYNOPSIS
-\fB#include <form.h>\fR
-.sp
-\fBFIELDTYPE *new_fieldtype(\fP
- \fBbool (* const \fP\fIfield_check\fP\fB)(FIELD *, const void *),\fP
- \fBbool (* const \fP\fIchar_check\fP\fB)(int, const void *));\fP
-.br
-\fBint free_fieldtype(FIELDTYPE *\fP\fIfieldtype\fP\fB);\fP
-.sp
+.nf
+\fB#include <form.h>
+.PP
+\fBFIELDTYPE *new_fieldtype(
+ \fBbool (* const \fIfield_check\fB)(FIELD *, const void *),\fR
+ \fBbool (* const \fIchar_check\fB)(int, const void *));\fR
+\fBint free_fieldtype(FIELDTYPE *\fIfieldtype\fB);\fR
+.PP
\fBint set_fieldtype_arg(\fP
- \fBFIELDTYPE *\fP\fIfieldtype\fP\fB,\fP
- \fBvoid *(* const \fP\fImake_arg\fP\fB)(va_list *),\fP
- \fBvoid *(* const \fP\fIcopy_arg\fP\fB)(const void *),\fP
- \fBvoid (* const \fP\fIfree_arg\fP\fB)(void *));\fP
-.br
+ \fBFIELDTYPE *\fIfieldtype\fB,\fR
+ \fBvoid *(* const \fImake_arg\fB)(va_list *),\fR
+ \fBvoid *(* const \fIcopy_arg\fB)(const void *),\fR
+ \fBvoid (* const \fIfree_arg\fB)(void *));\fR
\fBint set_fieldtype_choice(\fP
- \fBFIELDTYPE *\fP\fIfieldtype\fP\fB,\fP
- \fBbool (* const \fP\fInext_choice\fP\fB)(FIELD *, const void *),\fP
- \fBbool (* const \fP\fIprev_choice\fP\fB)(FIELD *, const void *));\fP
-.sp
-\fBFIELDTYPE *link_fieldtype(FIELDTYPE *\fP\fItype1\fP\fB,\fP
- \fBFIELDTYPE *\fP\fItype2\fP\fB);\fP
+ \fBFIELDTYPE *\fIfieldtype\fB,\fR
+ \fBbool (* const \fInext_choice\fB)(FIELD *, const void *),\fR
+ \fBbool (* const \fIprev_choice\fB)(FIELD *, const void *));\fR
+.PP
+\fBFIELDTYPE *link_fieldtype(FIELDTYPE *\fItype1\fB,\fR
+ \fBFIELDTYPE *\fItype2\fB);\fR
+.fi
.SH DESCRIPTION
.SS new_fieldtype
-The function \fBnew_fieldtype\fR creates a new field type usable for data
+The function \fBnew_fieldtype\fP creates a new field type usable for data
validation.
Its parameters are function pointers:
.TP 5
-\fIfield_check\fR
+\fIfield_check\fP
This function checks the
validity of an entered data string whenever the user attempts to leave a field.
It has two arguments:
@@ -77,51 +77,47 @@ The second argument is an
argument-block structure, about which more below.
.RE
.TP 5
-\fIchar_check\fR
+\fIchar_check\fP
This function validates input characters as they are entered.
The form library passes it the character to be checked
and a pointer to an argument-block structure.
.SS free_fieldtype
-.PP
-The \fBfree_fieldtype\fR function
+The \fBfree_fieldtype\fP function
frees the space allocated for a given validation type by \fBnew_fieldtype\fP.
.SS set_fieldtype_arg
-.PP
-The function \fBset_fieldtype_arg\fR associates
+The function \fBset_fieldtype_arg\fP associates
three storage-management functions with a field type:
.TP 5
-\fImake_arg\fR
+\fImake_arg\fP
This function is automatically applied to the
-list of arguments you give \fBset_field_type\fR when attaching validation
+list of arguments you give \fBset_field_type\fP when attaching validation
to a field.
It stores the arguments in an allocated argument-block
object which is used when validating input.
.TP 5
-\fIcopy_arg\fR
+\fIcopy_arg\fP
This function may be used by applications to copy argument-blocks.
.TP 5
-\fIfree_arg\fR
+\fIfree_arg\fP
Frees an argument-block structure.
.PP
-You must supply the \fImake_arg\fR function.
+You must supply the \fImake_arg\fP function.
The other two are optional: you may supply NULL for them.
In this case, the form library assumes
-that \fImake_arg\fR does not allocate memory but simply loads the
+that \fImake_arg\fP does not allocate memory but simply loads the
argument into a single scalar value.
.SS set_fieldtype_choice
-.PP
-The form driver requests \fBREQ_NEXT_CHOICE\fR and \fBREQ_PREV_CHOICE\fR assume
+The form driver requests \fBREQ_NEXT_CHOICE\fP and \fBREQ_PREV_CHOICE\fP assume
that the possible values of a field form an ordered set, and provide the forms
user with a way to move through the set.
.PP
-The \fBset_fieldtype_choice\fR
+The \fBset_fieldtype_choice\fP
function allows forms programmers to define successor and predecessor functions
for the field type.
These functions take the field pointer and an
argument-block structure as arguments.
.SS link_fieldtype
-.PP
-The function \fBlink_fieldtype\fR creates
+The function \fBlink_fieldtype\fP creates
a new field type from the two given types.
They are connected by an logical 'OR'.
.SH RETURN VALUE
@@ -153,14 +149,7 @@ The field is already connected to a form.
The field is the current field.
.TP 5
.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR(3)).
-.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBform\fR(3X),
-\fBform_field_validation\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
+System error occurred (see \fBerrno\fP(3)).
.SH PORTABILITY
These routines emulate the System V forms library.
They were not supported on
@@ -168,3 +157,7 @@ Version 7 or BSD versions.
.SH AUTHORS
Juergen Pfeifer.
Manual pages and adaptation for new curses by Eric S. Raymond.
+.SH SEE ALSO
+\fB\%curses\fP(3X),
+\fB\%form\fP(3X),
+\fB\%form_field_validation\fP(3X)
diff --git a/man/form_hook.3x b/man/form_hook.3x
index e84aa972f4c2..d93d8d875cb0 100644
--- a/man/form_hook.3x
+++ b/man/form_hook.3x
@@ -1,6 +1,5 @@
-'\" t
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2007,2010 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,57 +27,56 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: form_hook.3x,v 1.16 2020/10/18 00:06:29 tom Exp $
-.TH form_hook 3X ""
+.\" $Id: form_hook.3x,v 1.37 2024/03/16 15:35:01 tom Exp $
+.TH form_hook 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
-\fBform_hook\fR \- set hooks for automatic invocation by applications
+\fBform_hook\fP \-
+set hooks for automatic invocation by applications
.SH SYNOPSIS
-\fB#include <form.h>\fR
-.sp
-\fBint set_field_init(FORM *\fP\fIform\fP\fB, Form_Hook \fP\fIfunc\fP\fB);\fP
-.br
-\fBForm_Hook field_init(const FORM *\fP\fIform\fP\fB);\fP
-.sp
-\fBint set_field_term(FORM *\fP\fIform\fP\fB, Form_Hook \fP\fIfunc\fP\fB);\fP
-.br
-\fBForm_Hook field_term(const FORM *\fP\fIform\fP\fB);\fP
-.sp
-\fBint set_form_init(FORM *\fP\fIform\fP\fB, Form_Hook \fP\fIfunc\fP\fB);\fP
-.br
-\fBForm_Hook form_init(const FORM *\fP\fIform\fP\fB);\fP
-.sp
-\fBint set_form_term(FORM *\fP\fIform\fP\fB, Form_Hook \fP\fIfunc\fP\fB);\fP
-.br
-\fBForm_Hook form_term(const FORM *\fP\fIform\fP\fB);\fP
-.br
+.nf
+\fB#include <form.h>
+.PP
+\fBint set_field_init(FORM *\fIform\fP, Form_Hook \fIfunc\fP);
+\fBForm_Hook field_init(const FORM *\fIform\fP);
+.PP
+\fBint set_field_term(FORM *\fIform\fP, Form_Hook \fIfunc\fP);
+\fBForm_Hook field_term(const FORM *\fIform\fP);
+.PP
+\fBint set_form_init(FORM *\fIform\fP, Form_Hook \fIfunc\fP);
+\fBForm_Hook form_init(const FORM *\fIform\fP);
+.PP
+\fBint set_form_term(FORM *\fIform\fP, Form_Hook \fIfunc\fP);
+\fBForm_Hook form_term(const FORM *\fIform\fP);
+.fi
.SH DESCRIPTION
These functions make it possible to set hook functions to be called at various
-points in the automatic processing of input event codes by \fBform_driver\fR.
-.PP
-The function \fBset_field_init\fR sets a hook to be called at form-post time
+points in the automatic processing of input event codes by \fBform_driver\fP.
+.SS set_field_init
+sets a hook to be called at form-post time
and each time the selected field changes (after the change).
-\fBfield_init\fR
-returns the current field init hook, if any (\fBNULL\fR if there is no such
+.SS field_init
+returns the current field init hook, if any (\fBNULL\fP if there is no such
hook).
-.PP
-The function \fBset_field_term\fR sets a hook to be called at form-unpost time
+.SS set_field_term
+sets a hook to be called at form-unpost time
and each time the selected field changes (before the change).
-\fBfield_term\fR
-returns the current field term hook, if any (\fBNULL\fR if there is no such
+.SS field_term
+returns the current field term hook, if any (\fBNULL\fP if there is no such
hook).
-.PP
-The function \fBset_form_init\fR sets a hook to be called at form-post time and
+.SS set_form_init
+sets a hook to be called at form-post time and
just after a page change once it is posted.
-\fBform_init\fR returns the
-current form init hook, if any (\fBNULL\fR if there is no such hook).
-.PP
-The function \fBset_form_term\fR sets a hook to be called at form-unpost time
+.SS form_init
+returns the current form init hook,
+if any (\fBNULL\fP if there is no such hook).
+.SS set_form_term
+sets a hook to be called at form-unpost time
and just before a page change once it is posted.
-\fBform_init\fR
-returns the current form term hook, if any (\fBNULL\fR if there is no such
+.SS form_term
+returns the current form term hook, if any (\fBNULL\fP if there is no such
hook).
.SH RETURN VALUE
-Routines that return pointers return \fBNULL\fR on error.
+Routines that return pointers return \fBNULL\fP on error.
Other routines
return one of the following:
.TP 5
@@ -86,12 +84,7 @@ return one of the following:
The routine succeeded.
.TP 5
.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR(3)).
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBform\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
+System error occurred (see \fBerrno\fP(3)).
.SH PORTABILITY
These routines emulate the System V forms library.
They were not supported on
@@ -99,3 +92,6 @@ Version 7 or BSD versions.
.SH AUTHORS
Juergen Pfeifer.
Manual pages and adaptation for new curses by Eric S. Raymond.
+.SH SEE ALSO
+\fB\%curses\fP(3X),
+\fB\%form\fP(3X)
diff --git a/man/form_new.3x b/man/form_new.3x
index 47398174fad8..dc45e183f8aa 100644
--- a/man/form_new.3x
+++ b/man/form_new.3x
@@ -1,6 +1,5 @@
-'\" t
.\"***************************************************************************
-.\" Copyright 2018,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2010,2015 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,26 +27,27 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: form_new.3x,v 1.15 2020/10/24 09:02:26 tom Exp $
-.TH form_new 3X ""
+.\" $Id: form_new.3x,v 1.32 2024/03/16 15:35:01 tom Exp $
+.TH form_new 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
-\fBnew_form\fR,
-\fBfree_form\fP \- create and destroy forms
+\fBnew_form\fP,
+\fBfree_form\fP \-
+create and destroy forms
.SH SYNOPSIS
-\fB#include <form.h>\fR
-.sp
-\fBFORM *new_form(FIELD **\fP\fIfields\fP\fB);\fP
-.br
-\fBint free_form(FORM *\fP\fIform\fP\fB);\fP
-.br
+.nf
+\fB#include <form.h>
+.PP
+\fBFORM *new_form(FIELD **\fIfields\fP);
+\fBint free_form(FORM *\fIform\fP);
+.fi
.SH DESCRIPTION
-The function \fBnew_form\fR creates a new form connected to a specified field
-pointer array (which must be \fBNULL\fR-terminated).
+The function \fBnew_form\fP creates a new form connected to a specified field
+pointer array (which must be \fBNULL\fP-terminated).
.PP
-The function \fBfree_form\fR disconnects \fIform\fR from its field array
+The function \fBfree_form\fP disconnects \fIform\fP from its field array
and frees the storage allocated for the form.
.SH RETURN VALUE
-The function \fBnew_form\fR returns \fBNULL\fR on error.
+The function \fBnew_form\fP returns \fBNULL\fP on error.
It sets \fBerrno\fP according to the function's success:
.TP 5
.B E_OK
@@ -62,7 +62,7 @@ The field is already connected to a form.
.B E_SYSTEM_ERROR
System error occurred, e.g., malloc failure.
.PP
-The function \fBfree_form\fR returns one of the following:
+The function \fBfree_form\fP returns one of the following:
.TP 5
.B E_OK
The routine succeeded.
@@ -72,11 +72,6 @@ Routine detected an incorrect or out-of-range argument.
.TP 5
.B E_POSTED
The form has already been posted.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBform\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
.SH PORTABILITY
These routines emulate the System V forms library.
They were not supported on
@@ -84,3 +79,6 @@ Version 7 or BSD versions.
.SH AUTHORS
Juergen Pfeifer.
Manual pages and adaptation for new curses by Eric S. Raymond.
+.SH SEE ALSO
+\fB\%curses\fP(3X),
+\fB\%form\fP(3X)
diff --git a/man/form_new_page.3x b/man/form_new_page.3x
index 478688faffbe..c47a959d3b5a 100644
--- a/man/form_new_page.3x
+++ b/man/form_new_page.3x
@@ -1,6 +1,5 @@
-'\" t
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2010,2015 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,44 +27,45 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: form_new_page.3x,v 1.17 2020/10/18 00:04:36 tom Exp $
-.TH form_new_page 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: form_new_page.3x,v 1.34 2024/03/16 15:35:01 tom Exp $
+.TH form_new_page 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
.SH NAME
-\fBset_new_page\fR,
-\fBnew_page\fR \- form pagination functions
+\fBset_new_page\fP,
+\fBnew_page\fP \-
+form pagination functions
.SH SYNOPSIS
-\fB#include <form.h>\fR
-.sp
-\fBint set_new_page(FIELD *\fP\fIfield\fP\fB, bool \fP\fInew_page_flag\fP\fB);\fP
-.br
-\fBbool new_page(const FIELD *\fP\fIfield\fP\fB);\fP
-.br
+.nf
+\fB#include <form.h>
+.PP
+\fBint set_new_page(FIELD *\fIfield\fP, bool \fInew_page_flag\fP);
+\fBbool new_page(const FIELD *\fIfield\fP);
+.fi
.SH DESCRIPTION
-The function \fBset_new_page\fR sets or resets a flag marking the given field
+The function \fBset_new_page\fP sets or resets a flag marking the given field
as the beginning of a new page on its form.
.PP
-The function \fBnew_page\fR is a predicate which tests if a given field marks
+The function \fBnew_page\fP is a predicate which tests if a given field marks
a page beginning on its form.
.SH RETURN VALUE
-The function \fBnew_page\fR returns \fBTRUE\fR or \fBFALSE\fR.
+The function \fBnew_page\fP returns \fBTRUE\fP or \fBFALSE\fP.
.PP
-The function \fBset_new_page\fR returns one of the following:
+The function \fBset_new_page\fP returns one of the following:
.TP 5
.B E_OK
The routine succeeded.
.TP 5
.B E_CONNECTED
The given field is already connected to a form.
-.SH SEE ALSO
-\fBcurses\fR(3X) and related pages whose names begin \*(``form_\*('' for detailed
-descriptions of the entry points.
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
.SH PORTABILITY
These routines emulate the System V forms library.
They were not supported on
@@ -73,3 +73,6 @@ Version 7 or BSD versions.
.SH AUTHORS
Juergen Pfeifer.
Manual pages and adaptation for new curses by Eric S. Raymond.
+.SH SEE ALSO
+\fB\%curses\fP(3X) and related pages whose names begin \*(``form_\*(''
+for detailed descriptions of the entry points.
diff --git a/man/form_opts.3x b/man/form_opts.3x
index db6c491eed73..74a36d2b3d8e 100644
--- a/man/form_opts.3x
+++ b/man/form_opts.3x
@@ -1,6 +1,5 @@
-'\" t
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2010,2015 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,58 +27,53 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: form_opts.3x,v 1.17 2020/10/18 00:03:49 tom Exp $
-.TH form_opts 3X ""
+.\" $Id: form_opts.3x,v 1.34 2024/03/16 15:35:01 tom Exp $
+.TH form_opts 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
\fBset_form_opts\fP,
\fBform_opts_on\fP,
\fBform_opts_off\fP,
-\fBform_opts\fR \- set and get form options
+\fBform_opts\fP \-
+set and get form options
.SH SYNOPSIS
-\fB#include <form.h>\fR
-.sp
-\fBint set_form_opts(FORM *\fP\fIform\fP\fB, Field_Options \fP\fIopts\fP\fB);\fP
-.br
-\fBField_Options form_opts(const FORM *\fP\fIform\fP\fB);\fP
-.sp
-\fBint form_opts_on(FORM *\fP\fIform\fP\fB, Field_Options \fP\fIopts\fP\fB);\fP
-.br
-\fBint form_opts_off(FORM *\fP\fIform\fP\fB, Field_Options \fP\fIopts\fP\fB);\fP
-.br
+.nf
+\fB#include <form.h>
+.PP
+\fBint set_form_opts(FORM *\fIform\fP, Field_Options \fIopts\fP);
+\fBField_Options form_opts(const FORM *\fIform\fP);
+.PP
+\fBint form_opts_on(FORM *\fIform\fP, Field_Options \fIopts\fP);
+\fBint form_opts_off(FORM *\fIform\fP, Field_Options \fIopts\fP);
+.fi
.SH DESCRIPTION
-The function \fBset_form_opts\fR sets all the given form's option bits (form
+The function \fBset_form_opts\fP sets all the given form's option bits (form
option bits may be logically-OR'ed together).
.PP
-The function \fBform_opts_on\fR turns on the given option bits, and leaves
+The function \fBform_opts_on\fP turns on the given option bits, and leaves
others alone.
.PP
-The function \fBform_opts_off\fR turns off the given option bits, and leaves
+The function \fBform_opts_off\fP turns off the given option bits, and leaves
others alone.
.PP
-The function \fBform_opts\fR returns the form's current option bits.
+The function \fBform_opts\fP returns the form's current option bits.
.PP
The following options are defined (all are on by default):
.TP 5
O_NL_OVERLOAD
-Overload the \fBREQ_NEW_LINE\fR forms driver request so that calling it at the
+Overload the \fBREQ_NEW_LINE\fP forms driver request so that calling it at the
end of a field goes to the next field.
.TP 5
O_BS_OVERLOAD
-Overload the \fBREQ_DEL_PREV\fR forms driver request so that calling it at the
+Overload the \fBREQ_DEL_PREV\fP forms driver request so that calling it at the
beginning of a field goes to the previous field.
.SH RETURN VALUE
-Except for \fBform_opts\fR, each routine returns one of the following:
+Except for \fBform_opts\fP, each routine returns one of the following:
.TP 5
.B E_OK
The routine succeeded.
.TP 5
.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR(3)).
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBform\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
+System error occurred (see \fBerrno\fP(3)).
.SH PORTABILITY
These routines emulate the System V forms library.
They were not supported on
@@ -87,3 +81,6 @@ Version 7 or BSD versions.
.SH AUTHORS
Juergen Pfeifer.
Manual pages and adaptation for new curses by Eric S. Raymond.
+.SH SEE ALSO
+\fB\%curses\fP(3X),
+\fB\%form\fP(3X)
diff --git a/man/form_page.3x b/man/form_page.3x
index da1c7254b646..fa538c620143 100644
--- a/man/form_page.3x
+++ b/man/form_page.3x
@@ -1,6 +1,5 @@
-'\" t
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2010,2016 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,44 +27,44 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: form_page.3x,v 1.19 2020/10/18 00:02:44 tom Exp $
-.TH form_page 3X ""
+.\" $Id: form_page.3x,v 1.37 2024/03/16 15:35:01 tom Exp $
+.TH form_page 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
-\fBform_page\fR \- set and get form page number
+\fBform_page\fP \-
+set and get form page number
.SH SYNOPSIS
-\fB#include <form.h>\fR
-.sp
-\fBint set_current_field(FORM *\fP\fIform\fP\fB, FIELD *\fP\fIfield\fP\fB);\fP
-.br
-\fBFIELD *current_field(const FORM *\fP\fIform\fP\fB);\fP
-.sp
-\fBint unfocus_current_field(FORM *\fP\fIform\fP\fB);\fP
-.sp
-\fBint set_form_page(FORM *\fP\fIform\fP\fB, int \fP\fIn\fP\fB);\fP
-.br
-\fBint form_page(const FORM *\fP\fIform\fP\fB);\fP
-.sp
-\fBint field_index(const FIELD *\fP\fIfield\fP\fB);\fP
-.br
+.nf
+\fB#include <form.h>
+.PP
+\fBint set_current_field(FORM *\fIform\fP, FIELD *\fIfield\fP);
+\fBFIELD *current_field(const FORM *\fIform\fP);
+.PP
+\fBint unfocus_current_field(FORM *\fIform\fP);
+.PP
+\fBint set_form_page(FORM *\fIform\fP, int \fIn\fP);
+\fBint form_page(const FORM *\fIform\fP);
+.PP
+\fBint field_index(const FIELD *\fIfield\fP);
+.fi
.SH DESCRIPTION
-The function \fBset_current_field\fR sets the current field of the given
-form; \fBcurrent_field\fR returns the current field of the given form.
+The function \fBset_current_field\fP sets the current field of the given
+form; \fBcurrent_field\fP returns the current field of the given form.
.PP
-The function \fBunfocus_current_field\fR removes the focus from the current
+The function \fBunfocus_current_field\fP removes the focus from the current
field of the form.
-In such state, inquiries via \fBcurrent_field\fR shall return a NULL pointer.
+In such state, inquiries via \fBcurrent_field\fP shall return a NULL pointer.
.PP
-The function \fBset_form_page\fR sets the form's page number (goes to page
-\fIn\fR of the form).
+The function \fBset_form_page\fP sets the form's page number (goes to page
+\fIn\fP of the form).
.PP
-The function \fBform_page\fR returns the form's current page number.
+The function \fBform_page\fP returns the form's current page number.
.PP
-The function \fBfield_index\fR returns the index of the field in the
+The function \fBfield_index\fP returns the index of the field in the
field array of the form it is connected to.
-It returns \fBERR\fR if
+It returns \fBERR\fP if
the argument is the null pointer or the field is not connected.
.SH RETURN VALUE
-Except for \fBform_page\fR, each routine returns one of the following:
+Except for \fBform_page\fP, each routine returns one of the following:
.TP 5
.B E_OK
The routine succeeded.
@@ -83,19 +82,17 @@ Contents of a field are not valid.
The form driver could not process the request.
.TP 5
.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR(3)).
-.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBform\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
+System error occurred (see \fBerrno\fP(3)).
.SH PORTABILITY
These routines emulate the System V forms library.
They were not supported on
Version 7 or BSD versions.
.PP
-The \fBunfocus_current_field\fP function is an ncurses extension.
+The \fBunfocus_current_field\fP function is an \fI\%ncurses\fP
+extension.
.SH AUTHORS
Juergen Pfeifer.
Manual pages and adaptation for new curses by Eric S. Raymond.
+.SH SEE ALSO
+\fB\%curses\fP(3X),
+\fB\%form\fP(3X)
diff --git a/man/form_post.3x b/man/form_post.3x
index c0e5baa5af28..77e086e4559d 100644
--- a/man/form_post.3x
+++ b/man/form_post.3x
@@ -1,6 +1,5 @@
-'\" t
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2015,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,26 +27,27 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: form_post.3x,v 1.16 2020/10/18 00:01:05 tom Exp $
-.TH form_post 3X ""
+.\" $Id: form_post.3x,v 1.33 2024/03/16 15:35:01 tom Exp $
+.TH form_post 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
-\fBpost_form\fR,
-\fBunpost_form\fR \- write or erase forms from associated subwindows
+\fBpost_form\fP,
+\fBunpost_form\fP \-
+write or erase forms from associated subwindows
.SH SYNOPSIS
-\fB#include <form.h>\fR
-.sp
-\fBint post_form(FORM *\fP\fIform\fP\fB);\fP
-.br
-\fBint unpost_form(FORM *\fP\fIform\fP\fB);\fP
-.br
+.nf
+\fB#include <form.h>
+.PP
+\fBint post_form(FORM *\fIform\fP);
+\fBint unpost_form(FORM *\fIform\fP);
+.fi
.SH DESCRIPTION
-The function \fBpost_form\fR displays a form to its associated subwindow.
+The function \fBpost_form\fP displays a form to its associated subwindow.
To trigger physical display of the subwindow,
-use \fBrefresh\fR(3X) or some equivalent
-\fBcurses\fR routine (the implicit \fBdoupdate\fR triggered by an \fBcurses\fR
+use \fBrefresh\fP(3X) or some equivalent
+\fBcurses\fP routine (the implicit \fBdoupdate\fP triggered by an \fBcurses\fP
input request will do).
.PP
-The function \fBunpost_form\fR erases form from its associated subwindow.
+The function \fBunpost_form\fP erases form from its associated subwindow.
.SH RETURN VALUE
These routines return one of the following:
.TP 5
@@ -73,13 +73,7 @@ Form is too large for its window.
The form has already been posted.
.TP 5
.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR(3)).
-.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBform\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
+System error occurred (see \fBerrno\fP(3)).
.SH PORTABILITY
These routines emulate the System V forms library.
They were not supported on
@@ -87,3 +81,6 @@ Version 7 or BSD versions.
.SH AUTHORS
Juergen Pfeifer.
Manual pages and adaptation for new curses by Eric S. Raymond.
+.SH SEE ALSO
+\fB\%curses\fP(3X),
+\fB\%form\fP(3X)
diff --git a/man/form_requestname.3x b/man/form_requestname.3x
index 11e5c0fb54f1..4075ea73c756 100644
--- a/man/form_requestname.3x
+++ b/man/form_requestname.3x
@@ -1,6 +1,5 @@
-'\" t
.\"***************************************************************************
-.\" Copyright 2018,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2010,2015 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,39 +27,33 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: form_requestname.3x,v 1.16 2020/12/12 16:37:14 tom Exp $
-.TH form_requestname 3X ""
+.\" $Id: form_requestname.3x,v 1.35 2024/03/16 15:35:01 tom Exp $
+.TH form_requestname 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
\fBform_request_by_name\fP,
-\fBform_request_name\fR \- handle printable form request names
+\fBform_request_name\fP \-
+handle printable form request names
.SH SYNOPSIS
-\fB#include <form.h>\fR
-.sp
-\fBconst char *form_request_name(int \fP\fIrequest\fP\fB);\fP
-.br
-\fBint form_request_by_name(const char *\fP\fIname\fP\fB);\fP
-.br
+.nf
+\fB#include <form.h>
+.PP
+\fBconst char *form_request_name(int \fIrequest\fP);
+\fBint form_request_by_name(const char *\fIname\fP);
+.fi
.SH DESCRIPTION
-.SS form_request_name
-The function \fBform_request_name\fR returns the printable name of a form
+The function \fBform_request_name\fP returns the printable name of a form
request code.
-.SS form_request_name_by_name
-The function \fBform_request_by_name\fR searches in the name-table for a request
+The function \fBform_request_by_name\fP searches in the name-table for a request
with the given name and returns its request code.
Otherwise E_NO_MATCH is returned.
.SH RETURN VALUE
-\fBform_request_name\fR returns \fBNULL\fR on error and sets \fBerrno\fP
-to \fBE_BAD_ARGUMENT\fR.
+\fBform_request_name\fP returns \fBNULL\fP on error and sets \fBerrno\fP
+to \fBE_BAD_ARGUMENT\fP.
.PP
-\fBform_request_by_name\fR returns \fBE_NO_MATCH\fR on error.
+\fBform_request_by_name\fP returns \fBE_NO_MATCH\fP on error.
It does not set \fBerrno\fP.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBform\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
.SH PORTABILITY
-These routines are specific to ncurses.
+These routines are specific to \fI\%ncurses\fP.
They were not supported on
Version 7, BSD or System V implementations.
It is recommended that
@@ -68,3 +61,6 @@ any code depending on them be conditioned using NCURSES_VERSION.
.SH AUTHORS
Juergen Pfeifer.
Manual pages and adaptation for new curses by Eric S. Raymond.
+.SH SEE ALSO
+\fB\%curses\fP(3X),
+\fB\%form\fP(3X)
diff --git a/man/form_userptr.3x b/man/form_userptr.3x
index 5651a95f57e1..11c990c0030b 100644
--- a/man/form_userptr.3x
+++ b/man/form_userptr.3x
@@ -1,6 +1,5 @@
-'\" t
.\"***************************************************************************
-.\" Copyright 2018,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2010,2015 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,32 +27,28 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: form_userptr.3x,v 1.19 2020/10/24 09:00:52 tom Exp $
-.TH form_userptr 3X ""
+.\" $Id: form_userptr.3x,v 1.36 2024/03/16 15:35:01 tom Exp $
+.TH form_userptr 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
\fBset_form_userptr\fP,
-\fBform_userptr\fR \- associate application data with a form item
+\fBform_userptr\fP \-
+associate application data with a form item
.SH SYNOPSIS
-\fB#include <form.h>\fR
-.sp
-\fBint set_form_userptr(FORM *\fP\fIform\fP\fB, void *\fP\fIuserptr\fP\fB);\fP
-.br
-\fBvoid* form_userptr(const FORM *\fP\fIform\fP\fB);\fP
-.br
+.nf
+\fB#include <form.h>
+.PP
+\fBint set_form_userptr(FORM *\fIform\fP, void *\fIuserptr\fP);
+\fBvoid* form_userptr(const FORM *\fIform\fP);
+.fi
.SH DESCRIPTION
Every form and every form item has a field that can be used to hold
application-specific data (that is, the form-driver code leaves it alone).
These functions get and set the form user pointer field.
.SH RETURN VALUE
-The function \fBform_userptr\fR returns a pointer (which may be \fBNULL\fR).
+The function \fBform_userptr\fP returns a pointer (which may be \fBNULL\fP).
It does not set \fBerrno\fP.
.PP
-The function \fBset_form_userptr\fR returns \fBE_OK\fP (success).
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBform\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
+The function \fBset_form_userptr\fP returns \fBE_OK\fP (success).
.SH PORTABILITY
These routines emulate the System V forms library.
They were not supported on
@@ -64,3 +59,6 @@ We chose not to leave it as a char pointer for SVr4 compatibility.
.SH AUTHORS
Juergen Pfeifer.
Manual pages and adaptation for new curses by Eric S. Raymond.
+.SH SEE ALSO
+\fB\%curses\fP(3X),
+\fB\%form\fP(3X)
diff --git a/man/form_variables.3x b/man/form_variables.3x
index 0419cb745c93..7b11a1ab77e8 100644
--- a/man/form_variables.3x
+++ b/man/form_variables.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2020 Thomas E. Dickey *
+.\" Copyright 2020-2023,2024 Thomas E. Dickey *
.\" Copyright 2010-2013,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,32 +27,28 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: form_variables.3x,v 1.7 2020/12/12 14:45:16 tom Exp $
-.TH form_variables 3X ""
-.na
-.hy 0
+.\" $Id: form_variables.3x,v 1.18 2024/03/16 15:35:01 tom Exp $
+.TH form_variables 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
-\fBTYPE_ALNUM\fR,
-\fBTYPE_ALPHA\fR,
-\fBTYPE_ENUM\fR,
-\fBTYPE_INTEGER\fR,
-\fBTYPE_IPV4\fR,
-\fBTYPE_NUMERIC\fR,
-\fBTYPE_REGEXP\fR
-\- form system global variables
-.ad
-.hy
+\fB\%TYPE_ALNUM\fP,
+\fB\%TYPE_ALPHA\fP,
+\fB\%TYPE_ENUM\fP,
+\fB\%TYPE_INTEGER\fP,
+\fB\%TYPE_IPV4\fP,
+\fB\%TYPE_NUMERIC\fP,
+\fB\%TYPE_REGEXP\fP \-
+form system global variables
.SH SYNOPSIS
.nf
-\fB#include <form.h>\fR
+\fB#include <form.h>
.PP
-\fBFIELDTYPE * TYPE_ALNUM;\fR
-\fBFIELDTYPE * TYPE_ALPHA;\fR
-\fBFIELDTYPE * TYPE_ENUM;\fR
-\fBFIELDTYPE * TYPE_INTEGER;\fR
-\fBFIELDTYPE * TYPE_IPV4;\fR
-\fBFIELDTYPE * TYPE_NUMERIC;\fR
-\fBFIELDTYPE * TYPE_REGEXP;\fR
+\fBFIELDTYPE * TYPE_ALNUM;
+\fBFIELDTYPE * TYPE_ALPHA;
+\fBFIELDTYPE * TYPE_ENUM;
+\fBFIELDTYPE * TYPE_INTEGER;
+\fBFIELDTYPE * TYPE_IPV4;
+\fBFIELDTYPE * TYPE_NUMERIC;
+\fBFIELDTYPE * TYPE_REGEXP;
.fi
.SH DESCRIPTION
These are building blocks for the form library,
@@ -78,4 +74,4 @@ This holds a regular expression.
The \fBTYPE_IPV4\fP variable is an extension not provided by older
implementations of the form library.
.SH SEE ALSO
-\fBform\fR(3X).
+\fB\%form\fP(3X)
diff --git a/man/form_win.3x b/man/form_win.3x
index 8d4a46da3559..4a75b294ce01 100644
--- a/man/form_win.3x
+++ b/man/form_win.3x
@@ -1,6 +1,5 @@
-'\" t
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2006,2010 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,41 +27,41 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: form_win.3x,v 1.18 2020/10/18 00:00:32 tom Exp $
-.TH form_win 3X ""
+.\" $Id: form_win.3x,v 1.35 2024/03/16 15:35:01 tom Exp $
+.TH form_win 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
-\fBform_win\fR \- make and break form window and subwindow associations
+\fBform_win\fP \-
+make and break form window and subwindow associations
.SH SYNOPSIS
-\fB#include <form.h>\fR
-.sp
-\fBint set_form_win(FORM *\fP\fIform\fP\fB, WINDOW *\fP\fIwin\fP\fB);\fP
-.br
-\fBWINDOW *form_win(const FORM *\fP\fIform\fP\fB);\fP
-.sp
-\fBint set_form_sub(FORM *\fP\fIform\fP\fB, WINDOW *\fP\fIsub\fP\fB);\fP
-.br
-\fBWINDOW *form_sub(const FORM *\fP\fIform\fP\fB);\fP
-.sp
-\fBint scale_form(const FORM *\fP\fIform\fP\fB, int *\fP\fIrows\fP\fB, int *\fP\fIcolumns\fP\fB);\fP
-.br
+.nf
+\fB#include <form.h>
+.PP
+\fBint set_form_win(FORM *\fIform\fP, WINDOW *\fIwin\fP);
+\fBWINDOW *form_win(const FORM *\fIform\fP);
+.PP
+\fBint set_form_sub(FORM *\fIform\fP, WINDOW *\fIsub\fP);
+\fBWINDOW *form_sub(const FORM *\fIform\fP);
+.PP
+\fBint scale_form(const FORM *\fIform\fP, int *\fIrows\fP, int *\fIcolumns\fP);
+.fi
.SH DESCRIPTION
-Every form has an associated pair of \fBcurses\fR windows.
+Every form has an associated pair of \fBcurses\fP windows.
The form window
displays any title and border associated with the window; the form subwindow
displays the items of the form that are currently available for selection.
.PP
The first four functions get and set those windows.
It is not necessary to set
-either window; by default, the driver code uses \fBstdscr\fR for both.
+either window; by default, the driver code uses \fBstdscr\fP for both.
.PP
-In the \fBset_\fR functions, window argument of \fBNULL\fR is treated as though
-it were \fBstsdcr\fR. A form argument of \fBNULL\fR is treated as a request
+In the \fBset_\fP functions, window argument of \fBNULL\fP is treated as though
+it were \fBstsdcr\fP. A form argument of \fBNULL\fP is treated as a request
to change the system default form window or subwindow.
.PP
-The function \fBscale_form\fR returns the minimum size required for the
-subwindow of \fIform\fR.
+The function \fBscale_form\fP returns the minimum size required for the
+subwindow of \fIform\fP.
.SH RETURN VALUE
-Routines that return pointers return \fBNULL\fR on error.
+Routines that return pointers return \fBNULL\fP on error.
Routines that return
an integer return one of the following error codes:
.TP 5
@@ -70,7 +69,7 @@ an integer return one of the following error codes:
The routine succeeded.
.TP 5
.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR(3)).
+System error occurred (see \fBerrno\fP(3)).
.TP 5
.B E_BAD_ARGUMENT
Routine detected an incorrect or out-of-range argument.
@@ -80,13 +79,6 @@ The form has already been posted.
.TP 5
.B E_NOT_CONNECTED
No items are connected to the form.
-.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBcurs_variables\fR(3X),
-\fBform\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
.SH PORTABILITY
These routines emulate the System V forms library.
They were not supported on
@@ -94,3 +86,7 @@ Version 7 or BSD versions.
.SH AUTHORS
Juergen Pfeifer.
Manual pages and adaptation for new curses by Eric S. Raymond.
+.SH SEE ALSO
+\fB\%curses\fP(3X),
+\fB\%curs_variables\fP(3X),
+\fB\%form\fP(3X)
diff --git a/man/infocmp.1m b/man/infocmp.1m
index 41a50a0c33fc..5f92c96dd63b 100644
--- a/man/infocmp.1m
+++ b/man/infocmp.1m
@@ -1,6 +1,6 @@
'\" t
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2017,2018 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,92 +28,88 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: infocmp.1m,v 1.77 2020/07/25 20:37:39 tom Exp $
-.TH @INFOCMP@ 1M ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
-.ds n 5
+.\" $Id: infocmp.1m,v 1.109 2024/03/16 15:35:01 tom Exp $
+.TH @INFOCMP@ 1M 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "User commands"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.ds ' \(aq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.ie t .ds ' \(aq
+.el .ds ' '
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
-.de NS
-.ie n .sp
-.el .sp .5
-.ie n .in +4
-.el .in +2
-.nf
-.ft C \" Courier
-..
-.de NE
-.fi
-.ft R
-.ie n .in -4
-.el .in -2
-..
+.
.ds d @TERMINFO@
.SH NAME
-\fB@INFOCMP@\fR \- compare or print out \fIterminfo\fR descriptions
+\fB@INFOCMP@\fP \-
+compare or print out \fIterminfo\fP descriptions
.SH SYNOPSIS
-\fB@INFOCMP@\fR [\fB\-\
+\fB@INFOCMP@\fP [\fB\-\
1\
+c\
C\
+d\
D\
+e\
E\
F\
+g\
G\
+i\
I\
K\
-L\
-T\
-U\
-V\
-W\
-c\
-d\
-e\
-g\
-i\
l\
+L\
n\
p\
q\
r\
t\
+T\
u\
+U\
+V\
+W\
x\
-\fR]
-.br
- [\fB\-v\fR \fIn\fR] [\fB\-s d\fR| \fBi\fR| \fBl\fR| \fBc\fR] [\fB\-Q\fR \fIn\fR] [\fB\-R \fR\fBsubset\fR]
-.br
- [\fB\-w\fR\ \fIwidth\fR] [\fB\-A\fR\ \fIdirectory\fR] [\fB\-B\fR\ \fIdirectory\fR]
-.br
- [\fItermname\fR...]
+\fP]
+ [\fB\-v\fR \fIn\fR] [\fB\-s d\fR| \fBi\fR| \fBl\fR| \fBc\fR] [\fB\-Q\fR \fIn\fR] [\fB\-R \fBsubset\fR]
+ [\fB\-w\fP\ \fIwidth\fP] [\fB\-A\fP\ \fIdirectory\fP] [\fB\-B\fP\ \fIdirectory\fP]
+ [\fIterminal-type\fP ...]
.SH DESCRIPTION
-\fB@INFOCMP@\fR can be used to compare a binary \fBterminfo\fR entry with other
-terminfo entries, rewrite a \fBterminfo\fR description to take advantage of the
-\fBuse=\fR terminfo field, or print out a \fBterminfo\fR description from the
-binary file (\fBterm\fR) in a variety of formats.
-In all cases, the boolean
+\fB@INFOCMP@\fP can be used to compare a binary \fBterminfo\fP entry with other
+terminfo entries, rewrite a \fBterminfo\fP description to take advantage of the
+\fBuse=\fP terminfo field, or print out a \fBterminfo\fP description from the
+binary file (\fBterm\fP) in a variety of formats.
+In all cases, the Boolean
fields will be printed first, followed by the numeric fields, followed by the
string fields.
-.SS Default Options
-If no options are specified and zero or one \fItermnames\fR are specified, the
-\fB\-I\fR option will be assumed.
-If more than one \fItermname\fR is specified,
-the \fB\-d\fR option will be assumed.
-.SS Comparison Options [\-d] [\-c] [\-n]
-\fB@INFOCMP@\fR compares the \fBterminfo\fR description of the first terminal
-\fItermname\fR with each of the descriptions given by the entries for the other
-terminal's \fItermnames\fR.
+.SS "Default Options"
+If no options are specified and zero or one \fIterminal-types\fP are
+specified,
+the
+\fB\-I\fP option will be assumed.
+If more than one \fIterminal-type\fP is specified,
+the \fB\-d\fP option will be assumed.
+.SS "Comparison Options [\-d] [\-c] [\-n]"
+\fB@INFOCMP@\fP compares the \fBterminfo\fP description of the first terminal
+\fIterminal-type\fP with each of the descriptions given by the entries
+for the other terminal's \fIterminal-types\fP.
If a capability is defined for only one of the
terminals, the value returned depends on the type of the capability:
.bP
-\fBF\fR for missing boolean variables
+\fBF\fP for missing Boolean variables
.bP
-\fBNULL\fR for missing integer or string variables
+\fBNULL\fP for missing integer or string variables
.PP
Use the \fB\-q\fP option to show the distinction between
\fIabsent\fP and \fIcancelled\fP capabilities.
@@ -121,24 +117,24 @@ Use the \fB\-q\fP option to show the distinction between
These options produce a list which you can use to compare two
or more terminal descriptions:
.TP 5
-\fB\-d\fR
+\fB\-d\fP
produces a list of each capability that is \fIdifferent\fP
between two entries.
Each item in the list shows \*(``:\*('' after the capability name,
followed by the capability values, separated by a comma.
.TP
-\fB\-c\fR
+\fB\-c\fP
produces a list of each capability that is \fIcommon\fP between
two or more entries.
Missing capabilities are ignored.
Each item in the list shows \*(``=\*('' after the capability name,
followed by the capability value.
.IP
-The \fB\-u\fR option provides a related output,
+The \fB\-u\fP option provides a related output,
showing the first terminal description rewritten to use the second
as a building block via the \*(``use=\*('' clause.
.TP
-\fB\-n\fR
+\fB\-n\fP
produces a list of each capability that is in \fInone\fP of the given entries.
Each item in the list shows \*(``!\*('' before the capability name.
.IP
@@ -146,30 +142,30 @@ Normally only the conventional capabilities are shown.
Use the \fB\-x\fP option to add the BSD-compatibility
capabilities (names prefixed with \*(``OT\*('').
.IP
-If no \fItermnames\fR are given,
-\fB@INFOCMP@\fR uses the environment variable \fBTERM\fR
-for each of the \fItermnames\fR.
-.SS Source Listing Options [\-I] [\-L] [\-C] [\-r]
-The \fB\-I\fR, \fB\-L\fR, and \fB\-C\fR options will produce
+If no \fIterminal-types\fP are given,
+\fB@INFOCMP@\fP uses the environment variable \fITERM\fP
+for each of the \fIterminal-types\fP.
+.SS "Source Listing Options [\-I] [\-L] [\-C] [\-r]"
+The \fB\-I\fP, \fB\-L\fP, and \fB\-C\fP options will produce
a source listing for each terminal named.
-.
+.PP
.TS
-center tab(/) ;
-l l .
-\fB\-I\fR/use the \fBterminfo\fR names
-\fB\-L\fR/use the long C variable name listed in <\fBterm.h\fR>
-\fB\-C\fR/use the \fBtermcap\fR names
-\fB\-r\fR/when using \fB\-C\fR, put out all capabilities in \fBtermcap\fR form
-\fB\-K\fR/modifies the \fB\-C\fP option, improving BSD-compatibility.
+center;
+Lb L.
+\-I use \fIterminfo\fP capability codes
+\-L use \*(``long\*('' capability names
+\-C use \fItermcap\fP capability codes
+\-r with \fB\-C\fP, include nonstandard capabilities
+\-K with \fB\-C\fP, improve BSD compatibility
.TE
.PP
-If no \fItermnames\fR are given, the environment variable \fBTERM\fR will be
-used for the terminal name.
+If no \fIterminal-types\fP are given,
+the environment variable \fITERM\fP will be used for the terminal name.
.PP
-The source produced by the \fB\-C\fR option may be used directly as a
-\fBtermcap\fR entry, but not all parameterized strings can be changed to
-the \fBtermcap\fR format.
-\fB@INFOCMP@\fR will attempt to convert most of the
+The source produced by the \fB\-C\fP option may be used directly as a
+\fBtermcap\fP entry, but not all parameterized strings can be changed to
+the \fBtermcap\fP format.
+\fB@INFOCMP@\fP will attempt to convert most of the
parameterized information, and anything not converted will be plainly marked in
the output and commented out.
These should be edited by hand.
@@ -185,108 +181,119 @@ More often however, you must help the termcap implementation,
and trim excess whitespace (use the \fB\-0\fP option for that).
.PP
All padding information for strings will be collected together and placed
-at the beginning of the string where \fBtermcap\fR expects it.
+at the beginning of the string where \fBtermcap\fP expects it.
Mandatory
padding (padding information with a trailing \*(``/\*('') will become optional.
.PP
-All \fBtermcap\fR variables no longer supported by \fBterminfo\fR, but which
-are derivable from other \fBterminfo\fR variables, will be output.
+All \fBtermcap\fP variables no longer supported by \fBterminfo\fP, but which
+are derivable from other \fBterminfo\fP variables, will be output.
Not all
-\fBterminfo\fR capabilities will be translated; only those variables which were
-part of \fBtermcap\fR will normally be output.
-Specifying the \fB\-r\fR option
+\fBterminfo\fP capabilities will be translated; only those variables which were
+part of \fBtermcap\fP will normally be output.
+Specifying the \fB\-r\fP option
will take off this restriction, allowing all capabilities to be output in
-\fItermcap\fR form.
+\fItermcap\fP form.
Normally you would use both the \fB\-C\fP and \fB\-r\fP options.
The actual format used incorporates some improvements for escaped characters
from terminfo format.
-For a stricter BSD-compatible translation, use the \fB\-K\fR option
+For a stricter BSD-compatible translation, use the \fB\-K\fP option
rather than \fB\-C\fP.
.PP
Note that because padding is collected to the beginning of the capability, not
all capabilities are output.
Mandatory padding is not supported.
Because
-\fBtermcap\fR strings are not as flexible, it is not always possible to convert
-a \fBterminfo\fR string capability into an equivalent \fBtermcap\fR format.
-A subsequent conversion of the \fBtermcap\fR file
-back into \fBterminfo\fR format
-will not necessarily reproduce the original \fBterminfo\fR source.
+\fBtermcap\fP strings are not as flexible, it is not always possible to convert
+a \fBterminfo\fP string capability into an equivalent \fBtermcap\fP format.
+A subsequent conversion of the \fBtermcap\fP file
+back into \fBterminfo\fP format
+will not necessarily reproduce the original \fBterminfo\fP source.
.PP
-Some common \fBterminfo\fR parameter sequences, their \fBtermcap\fR
+Some common \fBterminfo\fP parameter sequences, their \fBtermcap\fP
equivalents, and some terminal types which commonly have such sequences, are:
-.
+.PP
.TS
-center tab(/) ;
-l c l
-l l l.
-\fBterminfo/termcap\fR/Representative Terminals
-=
-\fB%p1%c/%.\fR/adm
-\fB%p1%d/%d\fR/hp, ANSI standard, vt100
-\fB%p1%'x'%+%c/%+x\fR/concept
-\fB%i/%i\fRq/ANSI standard, vt100
-\fB%p1%?%'x'%>%t%p1%'y'%+%;/%>xy\fR/concept
-\fB%p2\fR is printed before \fB%p1/%r\fR/hp
+center;
+Lf(BI) Lf(BI) L
+Lb Lb L.
+terminfo termcap Terminal Types
+_
+.\" ansi-m cup (adm3a has other stuff in between, more like concept)
+%p1%c %. ansi\-m
+.\" ansi cub, vt100 cub
+%p1%d %d ansi, vt100
+.\" vt52 cup (via vt52-basic)
+%p1%\*' \*'%+%c %+x vt52
+.\" ansi cup, vt100 cup
+%i %iq ansi, vt100
+.\" annarbor4080 cup
+%p1%?%\*'x\*'%>%t%p1%\*'y\*'%+%; %>xy annarbor4080
+.\" hpgeneric cup
+%p2\fR\|.\|.\|.\|\fP%p1 %r hpgeneric
.TE
-.SS Use= Option [\-u]
-The \fB\-u\fR option produces a \fBterminfo\fR source description of the first
-terminal \fItermname\fR which is relative to the sum of the descriptions given
-by the entries for the other terminals \fItermnames\fR.
+.SS "Use= Option [\-u]"
+The \fB\-u\fP option produces a \fBterminfo\fP source description of the first
+terminal \fIterminal-type\fP which is relative to the sum of the
+descriptions given by the entries for the other \fIterminal-types\fP.
It does this by
-analyzing the differences between the first \fItermname\fR and the other
-\fItermnames\fR and producing a description with \fBuse=\fR fields for the
-other terminals.
+analyzing the differences between the first \fIterminal-types\fP and the
+other \fIterminal-types\fP and producing a description with \fBuse=\fP
+fields for the other terminals.
In this manner, it is possible to retrofit generic terminfo
entries into a terminal's description.
Or, if two similar terminals exist, but
were coded at different times or by different people so that each description
-is a full description, using \fB@INFOCMP@\fR
+is a full description, using \fB@INFOCMP@\fP
will show what can be done to change
one description to be relative to the other.
.PP
A capability will be printed with an at-sign (@) if it no longer exists in the
-first \fItermname\fR, but one of the other \fItermname\fR entries contains a
-value for it.
+first \fIterminal-type\fP,
+but one of the other \fIterminal-type\fP entries contains a value for
+it.
A capability's value will be printed if the value in the first
-\fItermname\fR is not found in any of the other \fItermname\fR entries, or if
-the first of the other \fItermname\fR entries that has this capability gives a
-different value for the capability than that in the first \fItermname\fR.
+\fIterminal-type\fP is not found in any of the other \fIterminal-type\fP
+entries,
+or if the first of the other \fIterminal-type\fP entries that has this
+capability gives a different value for the capability than that in the
+first \fIterminal-type\fP.
.PP
-The order of the other \fItermname\fR entries is significant.
+The order of the other \fIterminal-type\fP entries is significant.
Since the
-terminfo compiler \fB@TIC@\fR does a left-to-right scan of the capabilities,
-specifying two \fBuse=\fR entries that contain differing entries for the same
+terminfo compiler \fB@TIC@\fP does a left-to-right scan of the capabilities,
+specifying two \fBuse=\fP entries that contain differing entries for the same
capabilities will produce different results depending on the order that the
entries are given in.
-\fB@INFOCMP@\fR will flag any such inconsistencies between
-the other \fItermname\fR entries as they are found.
+\fB@INFOCMP@\fP will flag any such inconsistencies between
+the other \fIterminal-type\fP entries as they are found.
.PP
-Alternatively, specifying a capability \fIafter\fR a \fBuse=\fR entry that
+Alternatively, specifying a capability \fIafter\fP a \fBuse=\fP entry that
contains that capability will cause the second specification to be ignored.
-Using \fB@INFOCMP@\fR to recreate a description can be a useful check to make
+Using \fB@INFOCMP@\fP to recreate a description can be a useful check to make
sure that everything was specified correctly in the original source
description.
.PP
Another error that does not cause incorrect compiled files, but will slow down
-the compilation time, is specifying extra \fBuse=\fR fields that are
+the compilation time, is specifying extra \fBuse=\fP fields that are
superfluous.
-\fB@INFOCMP@\fR will flag any other \fItermname use=\fR fields that
+\fB@INFOCMP@\fP will flag any other \fIterminal-type use=\fP fields that
were not needed.
-.SS Changing Databases [\-A \fIdirectory\fR] [\-B \fIdirectory\fR]
-Like other \fBncurses\fP utilities,
+.SS "Changing Databases [\-A \fIdirectory\fR] [\-B \fIdirectory\fR]"
+Like other \fI\%ncurses\fP utilities,
\fB@INFOCMP@\fP looks for the terminal descriptions in several places.
-You can use the \fBTERMINFO\fP and \fBTERMINFO_DIRS\fP environment variables
-to override the compiled-in default list of places to search
-(see \fBcurses\fP(3X) for details).
+You can use the \fI\%TERMINFO\fP and \fI\%TERMINFO_DIRS\fP environment
+variables to override the compiled-in default list of places to search.
+See \fBcurses\fP(3X), as well as
+the \fIFetching Compiled Descriptions\fP section in \fBterminfo\fR(5).
.PP
-You can also use the options \fB\-A\fR
-and \fB\-B\fR to override the list of places to search
+You can also use the options \fB\-A\fP
+and \fB\-B\fP to override the list of places to search
when comparing terminal descriptions:
.bP
-The \fB\-A\fR option sets the location for the first \fItermname\fR
+The \fB\-A\fP option sets the location for the first \fIterminal-type\fP
.bP
-The \fB\-B\fR option sets the location for the other \fItermnames\fR.
+The \fB\-B\fP option sets the location for the other
+\fIterminal-types\fP.
.PP
Using these options, it is possible to
compare descriptions for a terminal with the same name located in two different
@@ -294,46 +301,47 @@ databases.
For instance,
you can use this feature for comparing descriptions for the same terminal
created by different people.
-.SS Other Options
+.SS "Other Options"
.TP 5
-\fB\-0\fR
+\fB\-0\fP
causes the fields to be printed on one line, without wrapping.
.TP 5
-\fB\-1\fR
+\fB\-1\fP
causes the fields to be printed out one to a line.
Otherwise,
the fields will be printed several to a line to a maximum width
of 60 characters.
.TP
-\fB\-a\fR
+\fB\-a\fP
tells \fB@INFOCMP@\fP to retain commented-out capabilities
rather than discarding them.
Capabilities are commented by prefixing them with a period.
.TP
-\fB\-D\fR
+\fB\-D\fP
tells \fB@INFOCMP@\fP to print the database locations that it knows about,
and exit.
.TP 5
-\fB\-E\fR
+\fB\-E\fP
Dump the capabilities of the given terminal as tables, needed in
the C initializer for a
-TERMTYPE structure (the terminal capability structure in the \fB<term.h>\fR).
+TERMTYPE structure (the terminal capability structure in the \fB<term.h>\fP).
This option is useful for preparing versions of the curses library hardwired
for a given terminal type.
The tables are all declared static, and are named according to the type
and the name of the corresponding terminal entry.
.sp
-Before ncurses 5.0, the split between the \fB\-e\fP and \fB\-E\fP
-options was not needed; but support for extended names required making
-the arrays of terminal capabilities separate from the TERMTYPE structure.
+Before \fI\%ncurses\fP 5.0,
+the split between the \fB\-e\fP and \fB\-E\fP options was not needed;
+but support for extended names required making the arrays of terminal
+capabilities separate from the TERMTYPE structure.
.TP 5
-\fB\-e\fR
+\fB\-e\fP
Dump the capabilities of the given terminal as a C initializer for a
-TERMTYPE structure (the terminal capability structure in the \fB<term.h>\fR).
+TERMTYPE structure (the terminal capability structure in the \fB<term.h>\fP).
This option is useful for preparing versions of the curses library hardwired
for a given terminal type.
.TP 5
-\fB\-F\fR
+\fB\-F\fP
compare terminfo files.
This assumes that two following arguments are filenames.
The files are searched for pairwise matches between
@@ -345,23 +353,23 @@ with exactly one match it includes a difference report.
Normally,
to reduce the volume of the report, use references are
not resolved before looking for differences, but resolution can be forced
-by also specifying \fB\-r\fR.
+by also specifying \fB\-r\fP.
.TP 5
-\fB\-f\fR
+\fB\-f\fP
Display complex terminfo strings which contain if/then/else/endif expressions
indented for readability.
.TP 5
-\fB\-G\fR
+\fB\-G\fP
Display constant literals in decimal form
rather than their character equivalents.
.TP 5
-\fB\-g\fR
+\fB\-g\fP
Display constant character literals in quoted form
rather than their decimal equivalents.
.TP 5
-\fB\-i\fR
-Analyze the initialization (\fBis1\fR, \fBis2\fR, \fBis3\fR), and reset
-(\fBrs1\fR, \fBrs2\fR, \fBrs3\fR), strings in the entry,
+\fB\-i\fP
+Analyze the initialization (\fBis1\fP, \fBis2\fP, \fBis3\fP), and reset
+(\fBrs1\fP, \fBrs2\fP, \fBrs3\fP), strings in the entry,
as well as those used for starting/stopping cursor-positioning mode
(\fBsmcup\fP, \fBrmcup\fP) as well as starting/stopping keymap mode
(\fBsmkx\fP, \fBrmkx\fP).
@@ -378,45 +386,45 @@ translated into {}-bracketed descriptions.
.IP
Here is a list of the DEC/ANSI
special sequences recognized:
+.PP
.TS
-center tab(/) ;
-l l
-l l.
-Action/Meaning
-=
-RIS/full reset
-SC/save cursor
-RC/restore cursor
-LL/home-down
-RSR/reset scroll region
-=
-DECSTR/soft reset (VT320)
-S7C1T/7-bit controls (VT220)
-=
-ISO DEC G0/enable DEC graphics for G0
-ISO UK G0/enable UK chars for G0
-ISO US G0/enable US chars for G0
-ISO DEC G1/enable DEC graphics for G1
-ISO UK G1/enable UK chars for G1
-ISO US G1/enable US chars for G1
-=
-DECPAM/application keypad mode
-DECPNM/normal keypad mode
-DECANSI/enter ANSI mode
-=
-ECMA[+\-]AM/keyboard action mode
-ECMA[+\-]IRM/insert replace mode
-ECMA[+\-]SRM/send receive mode
-ECMA[+\-]LNM/linefeed mode
-=
-DEC[+\-]CKM/application cursor keys
-DEC[+\-]ANM/set VT52 mode
-DEC[+\-]COLM/132-column mode
-DEC[+\-]SCLM/smooth scroll
-DEC[+\-]SCNM/reverse video mode
-DEC[+\-]OM/origin mode
-DEC[+\-]AWM/wraparound mode
-DEC[+\-]ARM/auto-repeat mode
+center;
+L L.
+Action Meaning
+_
+RIS full reset
+SC save cursor
+RC restore cursor
+LL home-down
+RSR reset scroll region
+_
+DECSTR soft reset (VT320)
+S7C1T 7-bit controls (VT220)
+_
+ISO DEC G0 enable DEC graphics for G0
+ISO UK G0 enable UK chars for G0
+ISO US G0 enable US chars for G0
+ISO DEC G1 enable DEC graphics for G1
+ISO UK G1 enable UK chars for G1
+ISO US G1 enable US chars for G1
+_
+DECPAM application keypad mode
+DECPNM normal keypad mode
+DECANSI enter ANSI mode
+_
+ECMA[+\-]AM keyboard action mode
+ECMA[+\-]IRM insert replace mode
+ECMA[+\-]SRM send receive mode
+ECMA[+\-]LNM linefeed mode
+_
+DEC[+\-]CKM application cursor keys
+DEC[+\-]ANM set VT52 mode
+DEC[+\-]COLM 132-column mode
+DEC[+\-]SCLM smooth scroll
+DEC[+\-]SCNM reverse video mode
+DEC[+\-]OM origin mode
+DEC[+\-]AWM wraparound mode
+DEC[+\-]ARM auto-repeat mode
.TE
.sp
It also recognizes a SGR action corresponding to ANSI/ISO 6429/ECMA Set
@@ -432,13 +440,13 @@ All but NORMAL may be prefixed with
.IP
An SGR0 designates an empty highlight sequence (equivalent to {SGR:NORMAL}).
.TP 5
-\fB\-l\fR
+\fB\-l\fP
Set output format to terminfo.
.TP 5
-\fB\-p\fR
+\fB\-p\fP
Ignore padding specifications when comparing strings.
.TP 5
-\fB\-Q\fR \fIn\fR
+\fB\-Q\fP \fIn\fP
Rather than show source in terminfo (text) format,
print the compiled (binary) format in hexadecimal or base64 form,
depending on the option's value:
@@ -455,12 +463,15 @@ hexadecimal and base64
.RE
.IP
For example, this prints the compiled terminfo value as a string
-which could be assigned to the \fBTERMINFO\fP environment variable:
-.NS
-@INFOCMP@ -0 -q -Q2
-.NE
+which could be assigned to the \fI\%TERMINFO\fP environment variable:
+.PP
+.RS 9
+.EX
+@INFOCMP@ \-0 \-q \-Q2
+.EE
+.RE
.TP 5
-\fB\-q\fR
+\fB\-q\fP
This makes the output a little shorter:
.RS
.bP
@@ -473,94 +484,144 @@ However, show differences between absent and cancelled capabilities.
Omit the \*(``Reconstructed from\*('' comment for source listings.
.RE
.TP 5
-\fB\-R\fR\fIsubset\fR
+\fB\-R\fIsubset\fR
Restrict output to a given subset.
This option is for use with archaic
-versions of terminfo like those on SVr1, Ultrix, or HP/UX that do not support
+versions of terminfo like those on SVr1, Ultrix, or HP-UX that do not support
the full set of SVR4/XSI Curses terminfo; and variants such as AIX
that have their own extensions incompatible with SVr4/XSI.
.RS
.bP
Available terminfo
subsets are \*(``SVr1\*('', \*(``Ultrix\*('', \*(``HP\*('', and \*(``AIX\*('';
-see \fBterminfo\fR(\*n) for details.
+see \fBterminfo\fP(5) for details.
.bP
You can also choose the subset \*(``BSD\*('' which selects only capabilities
with termcap equivalents recognized by 4.4BSD.
-The \fB\-C\fP option sets the \*(``BSD\*('' subset as a side-effect.
.bP
If you select any other value for \fB\-R\fP,
it is the same as no subset, i.e., all capabilities are used.
-The \fB\-I\fP option likewise selects no subset as a side-effect.
+.RE
+.IP
+A few options override the subset selected with \fB\-R\fP,
+if they are processed later in the command parameters:
+.RS
+.TP 5
+\fB\-C\fP
+sets the \*(``BSD\*('' subset as a side-effect.
+.TP 5
+\fB\-I\fP
+sets the subset to all capabilities.
+.TP 5
+\fB\-r\fP
+sets the subset to all capabilities.
.RE
.TP
-\fB\-s \fR\fI[d|i|l|c]\fR
-The \fB\-s\fR option sorts the fields within each type according to the argument
+\fB\-s \fI[d|i|l|c]\fR
+The \fB\-s\fP option sorts the fields within each type according to the argument
below:
.br
.RS 5
.TP 5
-\fBd\fR
-leave fields in the order that they are stored in the \fIterminfo\fR database.
+\fBd\fP
+leave fields in the order that they are stored in the \fIterminfo\fP database.
.TP 5
-\fBi\fR
-sort by \fIterminfo\fR name.
+\fBi\fP
+sort by \fIterminfo\fP name.
.TP 5
-\fBl\fR
+\fBl\fP
sort by the long C variable name.
.TP 5
-\fBc\fR
-sort by the \fItermcap\fR name.
+\fBc\fP
+sort by the \fItermcap\fP name.
.RE
.IP
-If the \fB\-s\fR option is not given, the fields printed out will be
-sorted alphabetically by the \fBterminfo\fR name within each type,
-except in the case of the \fB\-C\fR or the \fB\-L\fR options, which cause the
-sorting to be done by the \fBtermcap\fR name or the long C variable
+If the \fB\-s\fP option is not given, the fields printed out will be
+sorted alphabetically by the \fBterminfo\fP name within each type,
+except in the case of the \fB\-C\fP or the \fB\-L\fP options, which cause the
+sorting to be done by the \fBtermcap\fP name or the long C variable
name, respectively.
.TP 5
-\fB\-T\fR
+\fB\-T\fP
eliminates size-restrictions on the generated text.
This is mainly useful for testing and analysis, since the compiled
descriptions are limited (e.g., 1023 for termcap, 4096 for terminfo).
.TP
-\fB\-t\fR
+\fB\-t\fP
tells \fB@TIC@\fP to discard commented-out capabilities.
Normally when translating from terminfo to termcap,
untranslatable capabilities are commented-out.
.TP 5
-\fB\-U\fR
+\fB\-U\fP
tells \fB@INFOCMP@\fP to not post-process the data
after parsing the source file.
This feature helps when comparing the actual contents of two source files,
since it excludes the inferences that \fB@INFOCMP@\fP makes to fill in missing
data.
.TP 5
-\fB\-V\fR
-reports the version of ncurses which was used in this program, and exits.
+\fB\-V\fP
+reports the version of \fI\%ncurses\fP which was used in this program,
+and exits.
.TP 5
-\fB\-v\fR \fIn\fR
+\fB\-v\fP \fIn\fP
prints out tracing information on standard error as the program runs.
.IP
-The optional parameter \fIn\fR is a number from 1 to 10, inclusive,
+The optional parameter \fIn\fP is a number from 1 to 10, inclusive,
indicating the desired level of detail of information.
-If ncurses is built without tracing support, the optional parameter is ignored.
+If \fI\%ncurses\fP is built without tracing support,
+the optional parameter is ignored.
.TP
-\fB\-W\fR
+\fB\-W\fP
By itself, the \fB\-w\fP option will not force long strings to be wrapped.
Use the \fB\-W\fP option to do this.
.TP 5
-\fB\-w\fR \fIwidth\fR
-changes the output to \fIwidth\fR characters.
+\fB\-w\fP \fIwidth\fP
+changes the output to \fIwidth\fP characters.
.TP
-\fB\-x\fR
-print information for user-defined capabilities (see \fBuser_caps(\*n)\fP.
+\fB\-x\fP
+print information for user-defined capabilities (see \fBuser_caps\fP(5).
These are extensions to the terminfo repertoire which can be loaded
-using the \fB\-x\fR option of \fB@TIC@\fP.
+using the \fB\-x\fP option of \fB@TIC@\fP.
.SH FILES
-.TP 20
-\*d
-Compiled terminal description database.
+.TP
+.I \*d
+compiled terminal description database
+.SH EXTENSIONS
+The
+\fB\-0\fP,
+\fB\-1\fP,
+\fB\-E\fP,
+\fB\-F\fP,
+\fB\-G\fP,
+\fB\-Q\fP,
+\fB\-R\fP,
+\fB\-T\fP,
+\fB\-V\fP,
+\fB\-a\fP,
+\fB\-e\fP,
+\fB\-f\fP,
+\fB\-g\fP,
+\fB\-i\fP,
+\fB\-l\fP,
+\fB\-p\fP,
+\fB\-q\fP and
+\fB\-t\fP
+options are not supported in SVr4 curses.
+.PP
+SVr4 infocmp does not distinguish between absent and cancelled capabilities.
+Also, it shows missing integer capabilities as \fB\-1\fP
+(the internal value used to represent missing integers).
+This implementation shows those as \*(``NULL\*('',
+for consistency with missing strings.
+.PP
+The \fB\-r\fP option's notion of \*(``termcap\*('' capabilities
+is System V Release 4's.
+Actual BSD curses versions will have a more restricted set.
+To see only the
+4.4BSD set, use \fB\-r\fP \fB\-RBSD\fP.
+.SH PORTABILITY
+X/Open Curses, Issue 7 (2009) provides a description of \fBinfocmp\fP.
+It does not mention the options used for converting to termcap format.
.SH HISTORY
Although System V Release 2 provided a terminfo library,
it had no documented tool for decompiling the terminal descriptions.
@@ -568,13 +629,13 @@ Tony Hansen (AT&T) wrote the first \fBinfocmp\fP in early 1984,
for System V Release 3.
.PP
Eric Raymond used the AT&T documentation in 1995 to provide an equivalent
-\fB@INFOCMP@\fP for ncurses.
+\fB@INFOCMP@\fP for \fI\%ncurses\fP.
In addition, he added a few new features such as:
.bP
the \fB\-e\fP option, to support \fIfallback\fP
(compiled-in) terminal descriptions
.bP
-the \fB\-i\fP option, to help with analysis
+the \fB\-i\fP option, to help with analysis
.PP
Later, Thomas Dickey added the \fB\-x\fP (user-defined capabilities)
option, and the \fB\-E\fP option to support fallback entries with
@@ -583,62 +644,24 @@ user-defined capabilities.
For a complete list, see the \fIEXTENSIONS\fP section.
.PP
In 2010, Roy Marples provided an \fBinfocmp\fP program for NetBSD.
-It is less capable than the SVr4 or ncurses versions
+It is less capable than the SVr4 or \fI\%ncurses\fP versions
(e.g., it lacks the sorting options documented in X/Open),
-but does include the \fB\-x\fP option adapted from ncurses.
-.SH PORTABILITY
-X/Open Curses, Issue 7 (2009) provides a description of \fBinfocmp\fP.
-It does not mention the options used for converting to termcap format.
-.SH EXTENSIONS
-The
-\fB\-0\fR,
-\fB\-1\fR,
-\fB\-E\fR,
-\fB\-F\fR,
-\fB\-G\fR,
-\fB\-Q\fR,
-\fB\-R\fR,
-\fB\-T\fR,
-\fB\-V\fR,
-\fB\-a\fR,
-\fB\-e\fR,
-\fB\-f\fR,
-\fB\-g\fR,
-\fB\-i\fR,
-\fB\-l\fR,
-\fB\-p\fR,
-\fB\-q\fR and
-\fB\-t\fR
-options are not supported in SVr4 curses.
-.PP
-SVr4 infocmp does not distinguish between absent and cancelled capabilities.
-Also, it shows missing integer capabilities as \fB\-1\fP
-(the internal value used to represent missing integers).
-This implementation shows those as \*(``NULL\*('',
-for consistency with missing strings.
-.PP
-The \fB\-r\fR option's notion of \*(``termcap\*('' capabilities
-is System V Release 4's.
-Actual BSD curses versions will have a more restricted set.
-To see only the
-4.4BSD set, use \fB\-r\fR \fB\-RBSD\fR.
+but does include the \fB\-x\fP option adapted from \fI\%ncurses\fP.
.SH BUGS
-The \fB\-F\fR option of \fB@INFOCMP@\fR(1M) should be a \fB@TOE@\fR(1M) mode.
-.SH SEE ALSO
-\fB@CAPTOINFO@\fR(1M),
-\fB@INFOTOCAP@\fR(1M),
-\fB@TIC@\fR(1M),
-\fB@TOE@\fR(1M),
-\fBcurses\fR(3X),
-\fBterminfo\fR(\*n).
-\fBuser_caps\fR(\*n).
-.sp
-https://invisible-island.net/ncurses/tctest.html
-.PP
-This describes \fBncurses\fR
-version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
-.SH AUTHOR
+The \fB\-F\fP option of \fB\%@INFOCMP@\fP(1M) should be a
+\fB\%@TOE@\fP(1M) mode.
+.SH AUTHORS
Eric S. Raymond <esr@snark.thyrsus.com>
and
.br
-Thomas E. Dickey <dickey@invisible-island.net>
+Thomas E. Dickey <dickey@invisible\-island.net>
+.SH SEE ALSO
+\fB\%@CAPTOINFO@\fP(1M),
+\fB\%@INFOTOCAP@\fP(1M),
+\fB\%@TIC@\fP(1M),
+\fB\%@TOE@\fP(1M),
+\fB\%curses\fP(3X),
+\fB\%terminfo\fP(5),
+\fB\%user_caps\fP(5)
+.PP
+https://invisible\-island.net/ncurses/tctest.html
diff --git a/man/infotocap.1m b/man/infotocap.1m
index 2740b5598d18..0f0335d44603 100644
--- a/man/infotocap.1m
+++ b/man/infotocap.1m
@@ -1,6 +1,5 @@
-'\" t
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1999-2010,2016 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,54 +27,71 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: infotocap.1m,v 1.17 2020/12/19 21:49:52 tom Exp $
-.TH @INFOTOCAP@ 1M ""
-.ds n 5
+.\" $Id: infotocap.1m,v 1.41 2024/03/16 15:35:01 tom Exp $
+.TH @INFOTOCAP@ 1M 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "User commands"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.ds d @TERMINFO@
.SH NAME
-\fB@INFOTOCAP@\fR \- convert a \fIterminfo\fR description into a \fItermcap\fR description
+\fB\%@INFOTOCAP@\fP \-
+convert a \fI\%terminfo\fR description into a \fI\%termcap\fR description
.SH SYNOPSIS
-\fB@INFOTOCAP@\fR [\fB\-v\fR\fIn\fR \fIwidth\fR] [\fB\-V\fR] [\fB\-1\fR] [\fB\-w\fR \fIwidth\fR] \fIfile\fR ...
+.B @INFOTOCAP@
+.RI [ tic-option ]
+.I file
+\&.\|.\|.
+.P
+.B "@INFOTOCAP@ \-V"
.SH DESCRIPTION
-\fB@INFOTOCAP@\fR looks in each given text
-\fIfile\fR for \fBterminfo\fR descriptions.
-For each terminfo description found,
-an equivalent \fBtermcap\fR description is written to standard output.
-Terminfo \fBuse\fR capabilities are translated directly to termcap
-\fBtc\fR capabilities.
-.TP 5
-\fB\-v\fR
-print out tracing information on standard error as the program runs.
-.TP 5
-\fB\-V\fR
-print out the version of the program in use on standard error and exit.
-.TP 5
-\fB\-1\fR
-cause the fields to print out one to a line.
-Otherwise, the fields
-will be printed several to a line to a maximum width of 60 characters.
-.TP 5
-\fB\-w\fR
-change the output to \fIwidth\fR characters.
+\fB\%@INFOTOCAP@\fP translates terminal descriptions.
+It looks in each given text \fIfile\fP for \fI\%terminfo\fP entries and,
+For each one found,
+it writes an analogous \fI\%termcap\fP description to the standard
+output stream.
+\fI\%terminfo\fP \*(``\fBuse\fP\*('' capabilities translate to
+\fI\%termcap\fP \fBtc\fP capabilities.
+Because \fI\%termcap\fP is a less expressive format than
+\fI\%terminfo\fP,
+some capabilities cannot be translated.
+.PP
+This utility is implemented as a link to \fB\%@TIC@\fP(1M),
+with the latter's
+.B \-C
+option implied.
+You can use other \fB\%@TIC@\fP options such as
+.BR \-1 ,
+.BR \-f ,
+.BR \-v ,
+.BR \-w ,
+and
+.BR \-x .
+The \fB\-V\fP option reports the version of \fI\%ncurses\fP associated
+with this program and exits with a successful status.
.SH FILES
-.TP 20
-\*d
-Compiled terminal description database.
-.SH NOTES
-This utility is actually a link to \fB@TIC@\fR, running in \fI\-C\fR mode.
-You can use other \fB@TIC@\fR options such as \fB\-f\fR and \fB\-x\fR.
+.TP
+.I \*d
+compiled terminal description database
.SH PORTABILITY
-None of X/Open Curses, Issue 7 (2009), SVr4 or NetBSD document this application.
-.SH SEE ALSO
-\fB@INFOCMP@\fR(1M),
-\fB@TIC@\fR(1M),
-\fBcurses\fR(3X),
-\fBterminfo\fR(\*n)
-.PP
-This describes \fBncurses\fR
-version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
-.SH AUTHOR
+None of X/Open Curses,
+Issue 7 (2009),
+SVr4,
+or NetBSD document this application.
+.SH AUTHORS
Eric S. Raymond <esr@snark.thyrsus.com>
and
.br
-Thomas E. Dickey <dickey@invisible-island.net>
+Thomas E. Dickey <dickey@invisible\-island.net>
+.SH SEE ALSO
+\fB\%@INFOCMP@\fP(1M),
+\fB\%@TIC@\fP(1M),
+\fB\%curses\fP(3X),
+\fB\%terminfo\fP(5)
diff --git a/man/key_defined.3x b/man/key_defined.3x
index c66c54c22464..f0184aa77df1 100644
--- a/man/key_defined.3x
+++ b/man/key_defined.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 2003-2006,2010 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -29,16 +29,19 @@
.\"
.\" Author: Thomas E. Dickey 2003
.\"
-.\" $Id: key_defined.3x,v 1.10 2020/10/17 23:39:03 tom Exp $
-.TH key_defined 3X ""
+.\" $Id: key_defined.3x,v 1.34 2024/03/16 15:35:01 tom Exp $
+.TH key_defined 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
-\fBkey_defined\fP \- check if a keycode is defined
+\fB\%key_defined\fP \-
+test whether a \fIcurses\fR keycode is defined
.SH SYNOPSIS
-\fB#include <curses.h>\fP
-.sp
-\fBint key_defined(const char *\fP\fIdefinition\fP\fB);\fP
+.nf
+\fB#include <curses.h>
+.PP
+\fBint key_defined(const char *\fIdefinition\fP);
+.fi
.SH DESCRIPTION
-This is an extension to the curses library.
+This is an extension to the \fIcurses\fP library.
It permits an application to determine if a string is currently bound
to any keycode.
.SH RETURN VALUE
@@ -47,12 +50,12 @@ If no keycode is bound, zero is returned.
If the string conflicts with longer strings
which are bound to keys, \-1 is returned.
.SH PORTABILITY
-These routines are specific to ncurses.
-They were not supported on
+This routine is specific to \fI\%ncurses\fP.
+It was not supported on
Version 7, BSD or System V implementations.
It is recommended that
-any code depending on them be conditioned using NCURSES_VERSION.
+any code depending on them be conditioned using \fB\%NCURSES_VERSION\fP.
+.SH AUTHORS
+Thomas Dickey
.SH SEE ALSO
-\fBdefine_key\fR(3X).
-.SH AUTHOR
-Thomas Dickey.
+\fB\%define_key\fP(3X)
diff --git a/man/keybound.3x b/man/keybound.3x
index d9a069e80df2..bd8bb80f3c44 100644
--- a/man/keybound.3x
+++ b/man/keybound.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1999-2008,2010 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -29,33 +29,37 @@
.\"
.\" Author: Thomas E. Dickey 1999
.\"
-.\" $Id: keybound.3x,v 1.11 2020/10/17 23:39:30 tom Exp $
-.TH keybound 3X ""
+.\" $Id: keybound.3x,v 1.36 2024/03/16 15:35:01 tom Exp $
+.TH keybound 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
-\fBkeybound\fP \- return definition of keycode
+\fB\%keybound\fP \-
+get definition of \fIcurses\fR keycode
.SH SYNOPSIS
-\fB#include <curses.h>\fP
-.sp
-\fBchar * keybound(int \fP\fIkeycode\fP\fB, int \fP\fIcount);\fP
+.nf
+\fB#include <curses.h>
+.PP
+\fBchar * keybound(int \fIkeycode\fP, int \fIcount\fP);
+.fi
.SH DESCRIPTION
-This is an extension to the curses library.
+This is an extension to the \fIcurses\fP library.
It permits an application to determine the string which is defined
in the terminfo for specific keycodes.
.SH RETURN VALUE
-The \fIkeycode\fP parameter must be greater than zero, else NULL is returned.
-If it does not correspond to a defined key, then NULL is returned.
+The \fIkeycode\fP parameter must be greater than zero,
+else \fBNULL\fP is returned.
+If it does not correspond to a defined key, then \fBNULL\fP is returned.
The \fIcount\fP parameter is used to allow the application to iterate
through multiple definitions, counting from zero.
When successful,
the function returns a string which must be freed by the caller.
.SH PORTABILITY
-These routines are specific to ncurses.
-They were not supported on
+This routine is specific to \fI\%ncurses\fP.
+It was not supported on
Version 7, BSD or System V implementations.
It is recommended that
-any code depending on them be conditioned using NCURSES_VERSION.
+any code depending on them be conditioned using \fB\%NCURSES_VERSION\fP.
+.SH AUTHORS
+Thomas Dickey
.SH SEE ALSO
-\fBdefine_key\fR(3X),
-\fBkeyok\fR(3X).
-.SH AUTHOR
-Thomas Dickey.
+\fB\%define_key\fP(3X),
+\fB\%keyok\fP(3X)
diff --git a/man/keyok.3x b/man/keyok.3x
index 937450e57cfb..b4c7de2b4948 100644
--- a/man/keyok.3x
+++ b/man/keyok.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2010,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -29,18 +29,21 @@
.\"
.\" Author: Thomas E. Dickey 1997
.\"
-.\" $Id: keyok.3x,v 1.15 2020/10/17 23:39:59 tom Exp $
-.TH keyok 3X ""
+.\" $Id: keyok.3x,v 1.40 2024/03/16 15:35:01 tom Exp $
+.TH keyok 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
-\fBkeyok\fP \- enable or disable a keycode
+\fB\%keyok\fP \-
+enable or disable a \fIcurses\fR keycode
.SH SYNOPSIS
-\fB#include <curses.h>\fP
-.sp
-\fBint keyok(int \fP\fIkeycode\fP\fB, bool \fP\fIenable\fP\fB);\fP
+.nf
+\fB#include <curses.h>
+.PP
+\fBint keyok(int \fIkeycode\fP, bool \fIenable\fP);
+.fi
.SH DESCRIPTION
-This is an extension to the curses library.
+This is an extension to the \fIcurses\fP library.
It permits an application to disable specific keycodes, rather than
-use the \fIkeypad\fP function to disable all keycodes.
+use the \fB\%keypad\fP function to disable all keycodes.
Keys that have been disabled can be re-enabled.
.SH RETURN VALUE
The keycode must be greater than zero, else \fBERR\fP is returned.
@@ -49,12 +52,12 @@ If the \fIenable\fP parameter is true, then the key must have been disabled,
and vice versa.
Otherwise, the function returns \fBOK\fP.
.SH PORTABILITY
-These routines are specific to ncurses.
-They were not supported on
+This routine is specific to \fI\%ncurses\fP.
+It was not supported on
Version 7, BSD or System V implementations.
It is recommended that
-any code depending on them be conditioned using NCURSES_VERSION.
+any code depending on them be conditioned using \fB\%NCURSES_VERSION\fP.
+.SH AUTHORS
+Thomas Dickey
.SH SEE ALSO
-\fBdefine_key\fR(3X).
-.SH AUTHOR
-Thomas Dickey.
+\fB\%define_key\fP(3X)
diff --git a/man/legacy_coding.3x b/man/legacy_coding.3x
index fa3181a88515..ccfdd5564bb9 100644
--- a/man/legacy_coding.3x
+++ b/man/legacy_coding.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2020 Thomas E. Dickey *
+.\" Copyright 2020-2023,2024 Thomas E. Dickey *
.\" Copyright 2005-2016,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -29,47 +29,75 @@
.\"
.\" Author: Thomas E. Dickey
.\"
-.\" $Id: legacy_coding.3x,v 1.8 2020/10/17 23:40:23 tom Exp $
-.TH legacy_coding 3X ""
+.\" $Id: legacy_coding.3x,v 1.28 2024/04/20 19:13:50 tom Exp $
+.TH legacy_coding 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
-\fBuse_legacy_coding\fR \- override locale-encoding checks
+\fB\%use_legacy_coding\fP \-
+override \fIcurses\fR locale encoding checks
.SH SYNOPSIS
-\fB#include <curses.h>\fP
-.sp
-\fBint use_legacy_coding(int \fP\fIlevel\fP\fB);\fP
+.nf
+\fB#include <curses.h>
+.PP
+\fBint use_legacy_coding(int \fIlevel\fP);
+.fi
.SH DESCRIPTION
-The \fBuse_legacy_coding\fP function is an extension to the curses library.
-It allows the caller to change the result of \fBunctrl\fP,
-and suppress related checks within the library that would normally
-cause nonprinting characters to be rendered in visible form.
-This affects only 8-bit characters.
+.B \%use_legacy_coding
+is an extension to the
+.I curses
+library.
+It allows the caller to change the result of \fB\%unctrl\fP(3X),
+suppressing \fI\%isprint\fP(3)-based checks within the library that
+would normally cause nonprinting characters to be rendered in visible
+form.
+The alteration affects only eight-bit characters.
.PP
-The \fIlevel\fP parameter controls the result:
+The
+.I level
+parameter controls the result.
.RS
.TP 5
-0
-the library functions normally,
-rendering nonprinting characters as described in \fBunctrl\fP.
+.B 0
+The library functions normally,
+rendering nonprinting characters as described in \fB\%unctrl\fP(3X),
.TP
-1
-the library ignores \fBisprintf\fP for codes in the range 160-255.
+.B 1
+the library ignores
+.I \%isprint
+for codes in the range 160-255.
.TP
-2
-the library ignores \fBisprintf\fP for codes in the range 128-255.
-It also modifies the output of \fBunctrl\fP, showing codes in the
-range 128-159 as is.
+.B 2
+the library ignores
+.I \%isprint
+for codes in the range 128-255.
+It also modifies the output of \fB\%unctrl\fP(3X),
+showing codes in the range 128-159 as is.
.RE
.SH RETURN VALUE
If the screen has not been initialized,
-or the \fIlevel\fP parameter is out of range,
-the function returns \fBERR\fP.
-Otherwise, it returns the previous level: \fB0\fP, \fB1\fP or \fB2\fP.
+or the
+.I level
+parameter is out of range,
+.B \%use_legacy_coding
+returns
+.BR ERR .
+Otherwise,
+it returns the previous level:
+.BR 0 ,
+.BR 1 ,
+or
+.BR 2 .
.SH PORTABILITY
-This routine is specific to ncurses.
+.B \%use_legacy_coding
+is specific to
+.IR \%ncurses .
It was not supported on Version 7, BSD or System V implementations.
-It is recommended that any code depending on ncurses extensions
-be conditioned using NCURSES_VERSION.
+Applications employing
+.I \%ncurses
+extensions should condition their use on the visibility of the
+.B \%NCURSES_VERSION
+preprocessor macro.
+.SH AUTHORS
+Thomas Dickey
+(to support \fI\%lynx\fP(1)'s font-switching feature).
.SH SEE ALSO
-\fBunctrl\fR.
-.SH AUTHOR
-Thomas Dickey (to support lynx's font-switching feature).
+\fB\%unctrl\fP(3X)
diff --git a/man/make_sed.sh b/man/make_sed.sh
index 92e35eb27e60..ee7df41775e0 100755
--- a/man/make_sed.sh
+++ b/man/make_sed.sh
@@ -1,7 +1,7 @@
#!/bin/sh
-# $Id: make_sed.sh,v 1.11 2020/02/02 23:34:34 tom Exp $
+# $Id: make_sed.sh,v 1.19 2023/12/07 01:16:43 tom Exp $
##############################################################################
-# Copyright 2020 Thomas E. Dickey #
+# Copyright 2020-2022,2023 Thomas E. Dickey #
# Copyright 1998-2005,2017 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -29,7 +29,7 @@
# authorization. #
##############################################################################
#
-# Author: Thomas E. Dickey 1997-2005
+# Author: Thomas E. Dickey 1997
#
# Construct a sed-script to perform renaming within man-pages. Originally
# written in much simpler form, this one accounts for the common cases of
@@ -46,8 +46,9 @@ UPPER=upper$$
SCRIPT=script$$
RESULT=result$$
rm -f $UPPER $SCRIPT $RESULT
-trap "rm -f $COL.* $INPUT $UPPER $SCRIPT $RESULT" 0 1 2 3 15
-fgrep -v \# $1 | \
+trap "rm -f $COL.* $INPUT $UPPER $SCRIPT $RESULT; exit 1" 1 2 3 15
+trap "rm -f $COL.* $INPUT $UPPER $SCRIPT $RESULT" 0
+${FGREP-grep -F} -v \# "$1" | \
sed -e 's/[ ][ ]*/ /g' >$INPUT
for F in 1 2 3 4
@@ -58,33 +59,37 @@ done
for F in 2 4
do
tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ <$COL.$F >$UPPER
- mv $UPPER $COL.$F
+ mv $UPPER $COL.$F
done
paste $COL.* | \
sed -e 's/^/s\/\\</' \
-e 's/$/\//' >$UPPER
-echo "# Do the TH lines" >>$RESULT
+{
+echo "# This script was generated from '$1' by man/make_sed.sh."
+echo "# Do the TH lines"
sed -e 's/\//\/TH /' \
-e 's/ / /' \
- -e 's/ / ""\/TH /' \
+ -e 's/ / \/TH /' \
-e 's/ / /' \
- -e 's/\/$/ ""\//' \
- $UPPER >>$RESULT
+ -e 's/\/$/ \//' \
+ $UPPER
-echo "# Do the embedded references" >>$RESULT
-sed -e 's/</<fB/' \
- -e 's/ /\\\\fR(/' \
- -e 's/ /)\/fB/' \
- -e 's/ /\\\\fR(/' \
+echo "# Do the embedded references"
+sed -e 's/</<fB\\(\\\\%\\)\\?/' \
+ -e 's/\\%</\\%/' \
+ -e 's/ /\\\\fP(/' \
+ -e 's/ /)\/fB\\\\%/' \
+ -e 's/ /\\\\fP(/' \
-e 's/\/$/)\//' \
- $UPPER >>$RESULT
+ $UPPER
-echo "# Do the \fBxxx\fR references in the .NAME section" >>$RESULT
+echo '# Do the \\fBxxx\\fP references in the .NAME section'
sed -e 's/\\</^\\\\fB/' \
-e 's/ [^ ]* /\\\\f[RP] -\/\\\\fB/' \
- -e 's/ .*$/\\\\fR -\//' \
- $UPPER >>$RESULT
+ -e 's/ .*$/\\\\fP -\//' \
+ $UPPER
+} >>$RESULT
# Finally, send the result to standard output
cat $RESULT
diff --git a/man/man_db.renames b/man/man_db.renames.in
index fd4468312c7f..2b18a016eafc 100644
--- a/man/man_db.renames
+++ b/man/man_db.renames.in
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright 2019,2020 Thomas E. Dickey #
+# Copyright 2019-2023,2024 Thomas E. Dickey #
# Copyright 1998-2015,2017 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -26,7 +26,7 @@
# use or other dealings in this Software without prior written #
# authorization. #
##############################################################################
-# $Id: man_db.renames,v 1.56 2020/02/02 23:34:34 tom Exp $
+# $Id: man_db.renames.in,v 1.73 2024/04/13 23:39:11 tom Exp $
# Manual-page renamings for the man_db program
#
# Files:
@@ -151,7 +151,7 @@ mitem_value.3x menu_value.3menu
mitem_visible.3x menu_visible.3menu
ncurses.3x ncurses.3ncurses
new_pair.3x new_pair.3ncurses
-panel.3x panel.3curses
+panel.3x panel.3ncurses
printf.3s printf.3
putc.3s putc.3
resizeterm.3x resizeterm.3ncurses
@@ -163,7 +163,6 @@ term.5 term.5
term.7 term.7
term_variables.3x terminfo_variables.3ncurses
terminfo.5 terminfo.5
-terminfo.\\\*n terminfo.5
tic.1m tic.1
toe.1m toe.1
tput.1 tput.1
@@ -171,10 +170,125 @@ tset.1 tset.1
user_caps.5 user_caps.5
wresize.3x wresize.3ncurses
#
-# Other:
-tack.1m tack.1
+# Supplementary topics in the foregoing pages:
+add_wch.3x add_wch.3ncurses
+addch.3x addch.3ncurses
+assume_default_colors.3x assume_default_colors.3ncurses
+attr_get.3x attr_get.3ncurses
+attr_on.3x attr_on.3ncurses
+attron.3x attron.3ncurses
+baudrate.3x baudrate.3ncurses
+bkgd.3x bkgd.3ncurses
+bkgrnd.3x bkgrnd.3ncurses
+cbreak.3x cbreak.3ncurses
+clearok.3x clearok.3ncurses
+clrtoeol.3x clrtoeol.3ncurses
+curs_set.3x curs_set.3ncurses
+curscr.3x curscr.3ncurses
+curses_trace.3x curses_trace.3ncurses
+def_prog_mode.3x def_prog_mode.3ncurses
+def_shell_mode.3x def_shell_mode.3ncurses
+del_curterm.3x del_curterm.3ncurses
+delay_output.3x delay_output.3ncurses
+delscreen.3x delscreen.3ncurses
+derwin.3x derwin.3ncurses
+doupdate.3x doupdate.3ncurses
+echo.3x echo.3ncurses
+endwin.3x endwin.3ncurses
+extended_slk_color.3x extended_slk_color.3ncurses
+filter.3x filter.3ncurses
+flushinp.3x flushinp.3ncurses
+get_wch.3x get_wch.3ncurses
+getattr.3x getattr.3ncurses
+getcchar.3x getcchar.3ncurses
+getch.3x getch.3ncurses
+getwin.3x getwin.3ncurses
+halfdelay.3x halfdelay.3ncurses
+has_key.3x has_key.3ncurses
+idcok.3x idcok.3ncurses
+idlok.3x idlok.3ncurses
+immedok.3x immedok.3ncurses
+in_wch.3x in_wch.3ncurses
+inch.3x inch.3ncurses
+initscr.3x initscr.3ncurses
+is_scrollok.3x is_scrollok.3ncurses
+keyname.3x keyname.3ncurses
+keypad.3x keypad.3ncurses
+leaveok.3x leaveok.3ncurses
+longname.3x longname.3ncurses
+meta.3x meta.3ncurses
+move.3x move.3ncurses
+mvcur.3x mvcur.3ncurses
+mvwin.3x mvwin.3ncurses
+newpad.3x newpad.3ncurses
+newterm.3x newterm.3ncurses
+newwin.3x newwin.3ncurses
+nl.3x nl.3ncurses
+nocbreak.3x nocbreak.3ncurses
+nodelay.3x nodelay.3ncurses
+nonl.3x nonl.3ncurses
+notimeout.3x notimeout.3ncurses
+pnoutrefresh.3x pnoutrefresh.3ncurses
+prefresh.3x prefresh.3ncurses
+printw.3x printw.3ncurses
+putp.3x putp.3ncurses
+putwin.3x putwin.3ncurses
+raw.3x raw.3ncurses
+refresh.3x refresh.3ncurses
+reset_shell_mode.3x reset_shell_mode.3ncurses
+restartterm.3x restartterm.3ncurses
+ripoffline.3x ripoffline.3ncurses
+scrollok.3x scrollok.3ncurses
+set_curterm.3x set_curterm.3ncurses
+set_term.3x set_term.3nses
+setcchar.3x setcchar.3ncurses
+setupterm.3x setupterm.3ncurses
+slk_attr.3x slk_attr.3ncurses
+slk_color.3x slk_color.3ncurses
+slk_init.3x slk_init.3ncurses
+slk_touch.3x slk_touch.3ncurses
+start_color.3x start_color.3ncurses
+subwin.3x subwin.3ncurses
+syncok.3x syncok.3ncurses
+terminfo.3x terminfo.3ncurses
+tigetstr.3x tigetstr.3ncurses
+touchline.3x touchline.3ncurses
+touchwin.3x touchwin.3ncurses
+tparm.3x tparm.3ncurses
+tputs.3x tputs.3ncurses
+trace.3x trace.3ncurses
+unctrl.3x unctrl.3ncurses
+use_default_colors.3x use_default_colors.3ncurses
+use_env.3x use_env.3ncurses
+use_extended_names.3x use_extended_names.3ncurses
+use_legacy_coding.3x use_legacy_coding.3ncurses
+use_tioctl.3x use_tioctl.3ncurses
+vidputs.3x vidputs.3ncurses
+wadd_wch.3x wadd_wch.3ncurses
+waddch.3x waddch.3ncurses
+waddstr.3x waddstr.3ncurses
+waddwstr.3x waddwstr.3ncurses
+wattr_set.3x wattr_set.3ncurses
+wattrset.3x wattrset.3ncurses
+wbkgdset.3x wbkgdset.3ncurses
+wbkgrndset.3x wbkgrndset.3ncurses
+wdelch.3x wdelch.3ncurses
+wecho_wchar.3x wecho_wchar.3ncurses
+wechochar.3x wechochar.3ncurses
+wget_wch.3x wget_wch.3ncurses
+wgetch.3x wgetch.3ncurses
+wgetstr.3x wgetstr.3ncurses
+winch.3x winch.3ncurses
+wins_wch.3x wins_wch.3ncurses
+winsch.3x winsch.3ncurses
+wmove.3x wmove.3ncurses
+wnoutrefresh.3x wnoutrefresh.3ncurses
+wrefresh.3x wrefresh.3ncurses
+wsetscrreg.3x wsetscrreg.3ncurses
+wtimeout.3x wtimeout.3ncurses
#
-getty.1 getty.8
+# Other:
+getty.8 getty.8
scanf.3 scanf.3
ttys.5 ttys.4
system.3 system.3
@@ -183,18 +297,7 @@ regexec.3x regexec.3
vprintf.3 vprintf.3
#
# The following are pages which may be generated depending on configuration:
-adacurses-config.1 adacurses-config.1
-adacurses5-config.1 adacurses5-config.1
-adacurses6-config.1 adacurses6-config.1
-#
-ncurses5-config.1 ncurses5-config.1
-ncursesw5-config.1 ncursesw5-config.1
-ncursest5-config.1 ncursest5-config.1
-ncursestw5-config.1 ncursestw5-config.1
-#
-ncurses6-config.1 ncurses6-config.1
-ncursesw6-config.1 ncursesw6-config.1
-ncursest6-config.1 ncursest6-config.1
-ncursestw6-config.1 ncursestw6-config.1
+adacurses@USE_CFG_SUFFIX@-config.1 adacurses@USE_CFG_SUFFIX@-config.1
+ncurses@USE_CFG_SUFFIX@-config.1 ncurses@USE_CFG_SUFFIX@-config.1
#
# vile:cfgmode
diff --git a/man/manhtml.aliases b/man/manhtml.aliases
index a9f18ca70693..7599c74a8a27 100644
--- a/man/manhtml.aliases
+++ b/man/manhtml.aliases
@@ -1,6 +1,6 @@
-# $Id: manhtml.aliases,v 1.19 2020/12/12 14:45:55 tom Exp $
+# $Id: manhtml.aliases,v 1.35 2024/04/14 00:36:21 tom Exp $
#***************************************************************************
-# Copyright 2019,2020 Thomas E. Dickey *
+# Copyright 2019-2023,2024 Thomas E. Dickey *
# Copyright 2013,2017 Free Software Foundation, Inc. *
# *
# Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,42 +28,106 @@
# authorization. *
#***************************************************************************
# Items in this list will be linked to the corresponding manpages by man2html
+add_wch(3X) curs_add_wch(3X)
addch(3X) curs_addch(3X)
assume_default_colors(3X) default_colors(3X)
+attr_get(3X) curs_attr(3X)
+attr_on(3X) curs_attr(3X)
+attron(3X) curs_attr(3X)
+baudrate(3X) curs_termattrs(3X)
+bkgd(3X) curs_bkgd(3X)
+bkgrnd(3X) curs_bkgrnd(3X)
+cbreak(3X) curs_inopts(3X)
+clearok(3X) curs_outopts(3X)
+clrtoeol(3X) curs_clear(3X)
curs_set(3X) curs_kernel(3X)
+curscr(3X) curs_variables(3X)
+curses_trace(3X) curs_trace(3X)
+def_prog_mode(3X) curs_kernel(3X)
+def_shell_mode(3X) curs_kernel(3X)
+del_curterm(3X) curs_terminfo(3X)
+delay_output(3X) curs_util(3X)
delscreen(3X) curs_initscr(3X)
doupdate(3X) curs_refresh(3X)
+echo(3X) curs_inopts(3X)
endwin(3X) curs_initscr(3X)
+extended_slk_color(3X) curs_slk(3X)
filter(3X) curs_util(3X)
+flushinp(3X) curs_util(3X)
get_wch(3X) curs_get_wch(3X)
getcchar(3X) curs_getcchar(3X)
getch(3X) curs_getch(3X)
+getwin(3X) curs_util(3X)
+halfdelay(3X) curs_inopts(3X)
+has_key(3X) curs_getch(3X)
+immedok(3X) curs_outopts(3X)
+in_wch(3X) curs_in_wch(3X)
inch(3X) curs_inch(3X)
infocmp(1) infocmp(1M)
initscr(3X) curs_initscr(3X)
is_scrollok(3X) curs_opaque(3X)
+keyname(3X) curs_util(3X)
keypad(3X) curs_inopts(3X)
longname(3X) curs_termattrs(3X)
meta(3X) curs_inopts(3X)
+move(3X) curs_move(3X)
mvcur(3X) curs_terminfo(3X)
mvwin(3X) curs_window(3X)
newterm(3X) curs_initscr(3X)
+newwin(3X) curs_window(3X)
+nl(3X) curs_inopts(3X)
+nocbreak(3X) curs_inopts(3X)
+nonl(3X) curs_inopts(3X)
+pnoutrefresh(3X) curs_pad(3X)
+prefresh(3X) curs_pad(3X)
+printw(3X) curs_printw(3X)
+putp(3X) curs_terminfo(3X)
+putwin(3X) curs_util(3X)
+raw(3X) curs_inopts(3X)
refresh(3X) curs_refresh(3X)
reset_shell_mode(3X) curs_kernel(3X)
+restartterm(3X) curs_terminfo(3X)
+ripoffline(3X) curs_kernel(3X)
+set_curterm(3X) curs_terminfo(3X)
set_term(3X) curs_initscr(3X)
setcchar(3X) curs_getcchar(3X)
setupterm(3X) curs_terminfo(3X)
+slk_attr(3X) curs_slk(3X)
+slk_color(3X) curs_slk(3X)
slk_init(3X) curs_slk(3X)
slk_touch(3X) curs_slk(3X)
+start_color(3X) curs_color(3X)
+terminfo(3X) curs_terminfo(3X)
tic(1) tic(1M)
tigetstr(3X) curs_terminfo(3X)
+touchline(3X) curs_touch(3X)
+touchwin(3X) curs_touch(3X)
tparm(3X) curs_terminfo(3X)
tputs(3X) curs_terminfo(3X)
use_default_colors(3X) default_colors(3X)
use_env(3X) curs_util(3X)
use_extended_names(3X) curs_extend(3X)
use_legacy_coding(3X) legacy_coding(3X)
+use_tioctl(3X) curs_util(3X)
vidputs(3X) curs_terminfo(3X)
+wadd_wch(3X) curs_add_wch(3X)
+waddch(3X) curs_addch(3X)
+waddstr(3X) curs_addstr(3X)
+waddwstr(3X) curs_addwstr(3X)
+wattr_set(3X) curs_attr(3X)
+wattrset(3X) curs_attr(3X)
+wbkgdset(3X) curs_bkgd(3X)
+wbkgrndset(3X) curs_bkgrnd(3X)
+wdelch(3X) curs_delch(3X)
+wecho_wchar(3X) curs_add_wch(3X)
+wechochar(3X) curs_addch(3X)
+wget_wch(3X) curs_get_wch(3X)
wgetch(3X) curs_getch(3X)
+wgetstr(3X) curs_getstr(3X)
+winch(3X) curs_inch(3X)
+wins_wch(3X) curs_ins_wch(3X)
+winsch(3X) curs_insch(3X)
+wmove(3X) curs_move(3X)
wnoutrefresh(3X) curs_refresh(3X)
wrefresh(3X) curs_refresh(3X)
+wsetscrreg(3X) curs_outopts(3X)
diff --git a/man/manhtml.externs b/man/manhtml.externs
index 8787b2ce1778..41aa6359df10 100644
--- a/man/manhtml.externs
+++ b/man/manhtml.externs
@@ -1,7 +1,7 @@
-# $Id: manhtml.externs,v 1.14 2020/04/18 09:48:50 tom Exp $
+# $Id: manhtml.externs,v 1.25 2024/04/20 19:26:05 tom Exp $
# Items in this list will not be linked by man2html
#***************************************************************************
-# Copyright 2019,2020 Thomas E. Dickey *
+# Copyright 2019-2023,2024 Thomas E. Dickey *
# Copyright 2013,2017 Free Software Foundation, Inc. *
# *
# Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,40 +28,56 @@
# sale, use or other dealings in this Software without prior written *
# authorization. *
#***************************************************************************
-ADACURSES(1)
COLOR_PAIR(1)
COLOR_PAIR(2)
-COLOR_PAIR(3)
+ascii(7)
atoi(3)
+bash(1)
conflict(1)
+cron(1)
csh(1)
ded(1)
+emacs(1)
environ(7)
errno(3)
file(1)
-getty(1)
+getty(8)
+jove(1)
lynx(1)
-nvi(1)
mutt(1)
+nvi(1)
od(1)
+ioctl(2)
+isprint(3)
printf(3)
profile(5)
putc(3)
putchar(3)
putwc(3)
read(2)
+readline(3)
+resize(1)
scanf(3)
+scanf(3S)
screen(1)
+setbuf(3)
+setgid(2)
+setlocale(3)
+setuid(2)
sh(1)
sscanf(3)
stdio(3)
stty(1)
+swprintf(3)
system(3)
termios(3)
tmux(1)
tty(4)
ttys(5)
+vi(1)
vprintf(3)
vscanf(3)
+vsscanf(3)
wcwidth(3)
write(2)
+xterm(1)
diff --git a/man/manlinks.sed b/man/manlinks.sed
index 09b055f2fa04..6e2d2b869970 100644
--- a/man/manlinks.sed
+++ b/man/manlinks.sed
@@ -1,6 +1,6 @@
-# $Id: manlinks.sed,v 1.15 2021/01/05 20:30:00 tom Exp $
+# $Id: manlinks.sed,v 1.21 2024/04/20 22:25:36 tom Exp $
##############################################################################
-# Copyright 2020,2021 Thomas E. Dickey #
+# Copyright 2020-2023,2024 Thomas E. Dickey #
# Copyright 2000-2003,2008 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -31,6 +31,9 @@
# listed in the "NAME" section, i.e., the names that we would like to use
# as aliases for the manpage -T.Dickey
#
+# workaround for manpages without a SYNOPSIS
+s/^\.\\"SH/.SH/
+#
# eliminate formatting controls that get in the way
/^'\\"/d
/\.\\"/d
@@ -39,12 +42,13 @@
/typedef/d
s/^\.IX//
s/\\f.//g
+s/\\%//g
s/[:,]/ /g
#
# ignore C-style comments
s%/\*.*\*/%%
#
-# eliminate unnecessary whitespace, convert multiple blanks to single space
+# Eliminate unnecessary whitespace, convert multiple blanks to single space.
s/^[ ][ ]*//
s/[ ][ ]*$//
s/[ ][ ]*/ /g
@@ -54,16 +58,16 @@ s/[ ][ ]*/ /g
s/\.SH[ ][ ]*/.SH_(/
#
# in ".SH NAME"
-# change "\-" to "-", eliminate text after "-", and split the remaining lines
-# at each space, making a list of names:
-/^\.SH_(NAME/,/^\.SH_(SYNOPSIS/{
-s/\\-.*/ -/
-/ -/{
-s/ -.*//
-s/ /\
-/g
-}
-/^-/{
+# Convert a list of names separated from their description by " \-" to a list
+# of names on separate lines. Normally the list is also comma-separated, but
+# we ignore that detail here. The description is on a separate line to make
+# the nroff source more pleasing to some eyes.
+/^\.SH_(NAME/,/ \\-$/{
+s/\\-/-/g
+s/ / /g
+/ -$/{
+s/ -$//
+n
d
}
s/ /\
@@ -71,10 +75,16 @@ s/ /\
}
#
# in ".SH SYNOPSIS"
-# remove any line that does not contain a '(', since we only want functions.
+# For readability, the NAME section may not contain all function names, but we
+# still want to make aliases for those. Do this by extracting names from the
+# list of function prototypes in the synopsis.
+#
+# Remove any line that does not contain a '(', since we only want functions.
# then strip off return-type of each function.
-# finally, remove the parameter list, which begins with a '('.
+#
+# Finally, remove the parameter list, which begins with a '('.
/^\.SH_(SYNOPSIS/,/^\.SH_(DESCRIPTION/{
+/^\.ti/d
/^[^(]*$/d
# reduce
# .B "int add_wch( const cchar_t *\fIwch\fB );"
diff --git a/man/menu.3x b/man/menu.3x
index 68117bc05054..a833c3b55123 100644
--- a/man/menu.3x
+++ b/man/menu.3x
@@ -1,6 +1,6 @@
'\" t
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2014,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,120 +28,129 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: menu.3x,v 1.27 2020/02/02 23:34:34 tom Exp $
-.TH menu 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: menu.3x,v 1.45 2024/03/16 15:35:01 tom Exp $
+.TH menu 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
.SH NAME
-\fBmenu\fR \- curses extension for programming menus
+\fBmenu\fP \-
+curses extension for programming menus
.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.br
+.nf
+\fB#include <menu.h>
+.fi
.SH DESCRIPTION
-The \fBmenu\fR library provides terminal-independent facilities for composing
+The \fBmenu\fP library provides terminal-independent facilities for composing
menu systems on character-cell terminals.
The library includes: item routines,
which create and modify menu items; and menu routines, which group items into
menus, display menus on the screen, and handle interaction with the user.
.PP
-The \fBmenu\fR library uses the \fBcurses\fR libraries, and a curses
-initialization routine such as \fBinitscr\fR must be called before using any of
+The \fBmenu\fP library uses the \fBcurses\fP libraries, and a curses
+initialization routine such as \fBinitscr\fP must be called before using any of
these functions.
-To use the \fBmenu\fR library, link with the options
-\fB\-lmenu \-lcurses\fR.
+To use the \fBmenu\fP library, link with the options
+\fB\-lmenu \-lcurses\fP.
.
-.SS Current Default Values for Item Attributes
+.SS "Current Default Values for Item Attributes"
.
-The \fBmenu\fR library maintains a default value for item attributes.
+The \fBmenu\fP library maintains a default value for item attributes.
You can
-get or set this default by calling the appropriate \fBget_\fR or \fBset_\fR
-routine with a \fBNULL\fR item pointer.
+get or set this default by calling the appropriate \fBget_\fP or \fBset_\fP
+routine with a \fBNULL\fP item pointer.
Changing this default with a
-\fBset_\fR function affects future item creations, but does not change the
+\fBset_\fP function affects future item creations, but does not change the
rendering of items already created.
.
-.SS Routine Name Index
+.SS "Routine Name Index"
.
-The following table lists each \fBmenu\fR routine and the name of
+The following table lists each \fBmenu\fP routine and the name of
the manual page on which it is described.
-.
+.PP
.TS
l l .
-\fBcurses\fR Routine Name Manual Page Name
+\fBcurses\fP Routine Name Manual Page Name
=
-current_item \fBmitem_current\fR(3X)
-free_item \fBmitem_new\fR(3X)
-free_menu \fBmenu_new\fR(3X)
-item_count \fBmenu_items\fR(3X)
-item_description \fBmitem_name\fR(3X)
-item_index \fBmitem_current\fR(3X)
-item_init \fBmenu_hook\fR(3X)
-item_name \fBmitem_name\fR(3X)
-item_opts \fBmitem_opts\fR(3X)
-item_opts_off \fBmitem_opts\fR(3X)
-item_opts_on \fBmitem_opts\fR(3X)
-item_term \fBmenu_hook\fR(3X)
-item_userptr \fBmitem_userptr\fR(3X)
-item_value \fBmitem_value\fR(3X)
-item_visible \fBmitem_visible\fR(3X)
-menu_back \fBmenu_attributes\fR(3X)
-menu_driver \fBmenu_driver\fR(3X)
-menu_fore \fBmenu_attributes\fR(3X)
-menu_format \fBmenu_format\fR(3X)
-menu_grey \fBmenu_attributes\fR(3X)
-menu_init \fBmenu_hook\fR(3X)
-menu_items \fBmenu_items\fR(3X)
-menu_mark \fBmenu_mark\fR(3X)
-menu_opts \fBmenu_opts\fR(3X)
-menu_opts_off \fBmenu_opts\fR(3X)
-menu_opts_on \fBmenu_opts\fR(3X)
-menu_pad \fBmenu_attributes\fR(3X)
-menu_pattern \fBmenu_pattern\fR(3X)
-menu_request_by_name \fBmenu_requestname\fR(3X)
-menu_request_name \fBmenu_requestname\fR(3X)
-menu_spacing \fBmenu_spacing\fR(3X)
-menu_sub \fBmenu_win\fR(3X)
-menu_term \fBmenu_hook\fR(3X)
-menu_userptr \fBmenu_userptr\fR(3X)
-menu_win \fBmenu_win\fR(3X)
-new_item \fBmitem_new\fR(3X)
-new_menu \fBmenu_new\fR(3X)
-pos_menu_cursor \fBmenu_cursor\fR(3X)
-post_menu \fBmenu_post\fR(3X)
-scale_menu \fBmenu_win\fR(3X)
-set_current_item \fBmitem_current\fR(3X)
-set_item_init \fBmenu_hook\fR(3X)
-set_item_opts \fBmitem_opts\fR(3X)
-set_item_term \fBmenu_hook\fR(3X)
-set_item_userptr \fBmitem_userptr\fR(3X)
-set_item_value \fBmitem_value\fR(3X)
-set_menu_back \fBmenu_attributes\fR(3X)
-set_menu_fore \fBmenu_attributes\fR(3X)
-set_menu_format \fBmenu_format\fR(3X)
-set_menu_grey \fBmenu_attributes\fR(3X)
-set_menu_init \fBmenu_hook\fR(3X)
-set_menu_items \fBmenu_items\fR(3X)
-set_menu_mark \fBmenu_mark\fR(3X)
-set_menu_opts \fBmitem_opts\fR(3X)
-set_menu_pad \fBmenu_attributes\fR(3X)
-set_menu_pattern \fBmenu_pattern\fR(3X)
-set_menu_spacing \fBmenu_spacing\fR(3X)
-set_menu_sub \fBmenu_win\fR(3X)
-set_menu_term \fBmenu_hook\fR(3X)
-set_menu_userptr \fBmenu_userptr\fR(3X)
-set_menu_win \fBmenu_win\fR(3X)
-set_top_row \fBmitem_current\fR(3X)
-top_row \fBmitem_current\fR(3X)
-unpost_menu \fBmenu_post\fR(3X)
+current_item \fBmitem_current\fP(3X)
+free_item \fBmitem_new\fP(3X)
+free_menu \fBmenu_new\fP(3X)
+item_count \fBmenu_items\fP(3X)
+item_description \fBmitem_name\fP(3X)
+item_index \fBmitem_current\fP(3X)
+item_init \fBmenu_hook\fP(3X)
+item_name \fBmitem_name\fP(3X)
+item_opts \fBmitem_opts\fP(3X)
+item_opts_off \fBmitem_opts\fP(3X)
+item_opts_on \fBmitem_opts\fP(3X)
+item_term \fBmenu_hook\fP(3X)
+item_userptr \fBmitem_userptr\fP(3X)
+item_value \fBmitem_value\fP(3X)
+item_visible \fBmitem_visible\fP(3X)
+menu_back \fBmenu_attributes\fP(3X)
+menu_driver \fBmenu_driver\fP(3X)
+menu_fore \fBmenu_attributes\fP(3X)
+menu_format \fBmenu_format\fP(3X)
+menu_grey \fBmenu_attributes\fP(3X)
+menu_init \fBmenu_hook\fP(3X)
+menu_items \fBmenu_items\fP(3X)
+menu_mark \fBmenu_mark\fP(3X)
+menu_opts \fBmenu_opts\fP(3X)
+menu_opts_off \fBmenu_opts\fP(3X)
+menu_opts_on \fBmenu_opts\fP(3X)
+menu_pad \fBmenu_attributes\fP(3X)
+menu_pattern \fBmenu_pattern\fP(3X)
+menu_request_by_name \fBmenu_requestname\fP(3X)
+menu_request_name \fBmenu_requestname\fP(3X)
+menu_spacing \fBmenu_spacing\fP(3X)
+menu_sub \fBmenu_win\fP(3X)
+menu_term \fBmenu_hook\fP(3X)
+menu_userptr \fBmenu_userptr\fP(3X)
+menu_win \fBmenu_win\fP(3X)
+new_item \fBmitem_new\fP(3X)
+new_menu \fBmenu_new\fP(3X)
+pos_menu_cursor \fBmenu_cursor\fP(3X)
+post_menu \fBmenu_post\fP(3X)
+scale_menu \fBmenu_win\fP(3X)
+set_current_item \fBmitem_current\fP(3X)
+set_item_init \fBmenu_hook\fP(3X)
+set_item_opts \fBmitem_opts\fP(3X)
+set_item_term \fBmenu_hook\fP(3X)
+set_item_userptr \fBmitem_userptr\fP(3X)
+set_item_value \fBmitem_value\fP(3X)
+set_menu_back \fBmenu_attributes\fP(3X)
+set_menu_fore \fBmenu_attributes\fP(3X)
+set_menu_format \fBmenu_format\fP(3X)
+set_menu_grey \fBmenu_attributes\fP(3X)
+set_menu_init \fBmenu_hook\fP(3X)
+set_menu_items \fBmenu_items\fP(3X)
+set_menu_mark \fBmenu_mark\fP(3X)
+set_menu_opts \fBmitem_opts\fP(3X)
+set_menu_pad \fBmenu_attributes\fP(3X)
+set_menu_pattern \fBmenu_pattern\fP(3X)
+set_menu_spacing \fBmenu_spacing\fP(3X)
+set_menu_sub \fBmenu_win\fP(3X)
+set_menu_term \fBmenu_hook\fP(3X)
+set_menu_userptr \fBmenu_userptr\fP(3X)
+set_menu_win \fBmenu_win\fP(3X)
+set_top_row \fBmitem_current\fP(3X)
+top_row \fBmitem_current\fP(3X)
+unpost_menu \fBmenu_post\fP(3X)
.TE
.SH RETURN VALUE
-Routines that return pointers return \fBNULL\fR on error.
+Routines that return pointers return \fBNULL\fP on error.
Routines that return
an integer return one of the following error codes:
.TP 5
@@ -176,38 +185,31 @@ The menu is already posted.
The menu driver could not process the request.
.TP 5
.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR(3)).
+System error occurred (see \fBerrno\fP(3)).
.TP 5
.B E_UNKNOWN_COMMAND
The menu driver code saw an unknown request code.
.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header files
-\fB<curses.h>\fR and \fB<eti.h>\fR.
-.PP
-In your library list, libmenu.a should be before libncurses.a; that is,
-you should say \*(``\-lmenu \-lncurses\*('', not the other way around
-(which would give a link-error when using static libraries).
+The header file \fI\%menu.h\fP itself includes the header file
+\fI\%curses.h\fP.
.SH PORTABILITY
These routines emulate the System V menu library.
They were not supported on
Version 7 or BSD versions.
.PP
-The menu facility was documented in SVr4.2 in
-\fICharacter User Interface Programming (UNIX SVR4.2)\fP.
+A menu facility was documented in SVr4.2's
+\fICharacter User Interface Programming\fP document.
.PP
It is not part of X/Open Curses.
.PP
-Aside from ncurses, there are few implementations:
+Aside from \fI\%ncurses\fP, there are few implementations:
.bP
systems based on SVr4 source code, e.g., Solaris.
.bP
NetBSD curses.
.SH AUTHORS
Juergen Pfeifer.
-Manual pages and adaptation for ncurses by Eric S. Raymond.
+Manual pages and adaptation for \fI\%ncurses\fP by Eric S. Raymond.
.SH SEE ALSO
-\fBcurses\fR(3X) and related pages whose names begin \*(``menu_\*(''
+\fB\%curses\fP(3X) and related pages whose names begin \*(``menu_\*(''
for detailed descriptions of the entry points.
-.PP
-This describes \fBncurses\fR
-version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
diff --git a/man/menu_attributes.3x b/man/menu_attributes.3x
index 903e303c8dac..7bce42d24be2 100644
--- a/man/menu_attributes.3x
+++ b/man/menu_attributes.3x
@@ -1,6 +1,5 @@
-'\" t
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2010,2015 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,63 +27,67 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: menu_attributes.3x,v 1.19 2020/10/17 23:58:58 tom Exp $
-.TH menu_attributes 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: menu_attributes.3x,v 1.36 2024/03/16 15:35:01 tom Exp $
+.TH menu_attributes 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
.SH NAME
-\fBmenu_back\fR,
-\fBmenu_fore\fR,
-\fBmenu_grey\fR,
-\fBmenu_pad\fR,
-\fBset_menu_back\fR,
-\fBset_menu_fore\fR,
-\fBset_menu_grey\fR,
-\fBset_menu_pad\fR \- color and attribute control for menus
+\fBmenu_back\fP,
+\fBmenu_fore\fP,
+\fBmenu_grey\fP,
+\fBmenu_pad\fP,
+\fBset_menu_back\fP,
+\fBset_menu_fore\fP,
+\fBset_menu_grey\fP,
+\fBset_menu_pad\fP \-
+color and attribute control for menus
.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.sp
-\fBint set_menu_fore(MENU *\fP\fImenu\fP\fB, chtype \fP\fIattr\fP\fB);\fP
-.br
-\fBchtype menu_fore(const MENU *\fP\fImenu\fP\fB);\fP
-.sp
-\fBint set_menu_back(MENU *\fP\fImenu\fP\fB, chtype \fP\fIattr\fP\fB);\fP
-.br
-\fBchtype menu_back(const MENU *\fP\fImenu\fP\fB);\fP
-.sp
-\fBint set_menu_grey(MENU *\fP\fImenu\fP\fB, chtype \fP\fIattr\fP\fB);\fP
-.br
-\fBchtype menu_grey(const MENU *\fP\fImenu\fP\fB);\fP
-.sp
-\fBint set_menu_pad(MENU *\fP\fImenu\fP\fB, int \fP\fIpad\fP\fB);\fP
-.br
-\fBint menu_pad(const MENU *\fP\fImenu\fP\fB);\fP
-.br
+.nf
+\fB#include <menu.h>
+.PP
+\fBint set_menu_fore(MENU *\fImenu\fP, chtype \fIattr\fP);
+\fBchtype menu_fore(const MENU *\fImenu\fP);
+.PP
+\fBint set_menu_back(MENU *\fImenu\fP, chtype \fIattr\fP);
+\fBchtype menu_back(const MENU *\fImenu\fP);
+.PP
+\fBint set_menu_grey(MENU *\fImenu\fP, chtype \fIattr\fP);
+\fBchtype menu_grey(const MENU *\fImenu\fP);
+.PP
+\fBint set_menu_pad(MENU *\fImenu\fP, int \fIpad\fP);
+\fBint menu_pad(const MENU *\fImenu\fP);
+.fi
.SH DESCRIPTION
-The function \fBset_menu_fore\fR sets the foreground attribute of
-\fImenu\fR. This is the highlight used for selected menu items.
-\fBmenu_fore\fR returns the foreground attribute.
+The function \fBset_menu_fore\fP sets the foreground attribute of
+\fImenu\fP. This is the highlight used for selected menu items.
+\fBmenu_fore\fP returns the foreground attribute.
The default
-is \fBA_REVERSE\fR.
+is \fBA_REVERSE\fP.
.PP
-The function \fBset_menu_back\fR sets the background attribute of
-\fImenu\fR. This is the highlight used for selectable (but not currently
+The function \fBset_menu_back\fP sets the background attribute of
+\fImenu\fP. This is the highlight used for selectable (but not currently
selected) menu items.
-The function \fBmenu_back\fR returns the background
+The function \fBmenu_back\fP returns the background
attribute.
-The default is \fBA_NORMAL\fR.
+The default is \fBA_NORMAL\fP.
.PP
-The function \fBset_menu_grey\fR sets the grey attribute of \fImenu\fR. This is
+The function \fBset_menu_grey\fP sets the grey attribute of \fImenu\fP. This is
the highlight used for un-selectable menu items in menus that permit more than
one selection.
-The function \fBmenu_grey\fR returns the grey attribute.
-The default is \fBA_UNDERLINE\fR.
+The function \fBmenu_grey\fP returns the grey attribute.
+The default is \fBA_UNDERLINE\fP.
.PP
-The function \fBset_menu_pad\fR sets the character used to fill the space
+The function \fBset_menu_pad\fP sets the character used to fill the space
between the name and description parts of a menu item.
-\fBmenu_pad\fR returns
+\fBmenu_pad\fP returns
the given menu's pad character.
The default is a blank.
.SH RETURN VALUE
@@ -94,16 +97,10 @@ These routines return one of the following:
The routine succeeded.
.TP 5
.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR(3)).
+System error occurred (see \fBerrno\fP(3)).
.TP 5
.B E_BAD_ARGUMENT
Routine detected an incorrect or out-of-range argument.
-.SH SEE ALSO
-\fBcurses\fR(3X) and related pages whose names begin \*(``menu_\*('' for detailed
-descriptions of the entry points.
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
.SH PORTABILITY
These routines emulate the System V menu library.
They were not supported on
@@ -111,3 +108,6 @@ Version 7 or BSD versions.
.SH AUTHORS
Juergen Pfeifer.
Manual pages and adaptation for new curses by Eric S. Raymond.
+.SH SEE ALSO
+\fB\%curses\fP(3X) and related pages whose names begin \*(``menu_\*(''
+for detailed descriptions of the entry points.
diff --git a/man/menu_cursor.3x b/man/menu_cursor.3x
index 7a364eb5aba0..d92d8c3ad4e0 100644
--- a/man/menu_cursor.3x
+++ b/man/menu_cursor.3x
@@ -1,6 +1,5 @@
-'\" t
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2010,2015 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,19 +27,21 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: menu_cursor.3x,v 1.13 2020/10/17 23:41:31 tom Exp $
-.TH menu_cursor 3X ""
+.\" $Id: menu_cursor.3x,v 1.30 2024/03/16 15:35:01 tom Exp $
+.TH menu_cursor 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
-\fBpos_menu_cursor\fR \- position a menu's cursor
+\fBpos_menu_cursor\fP \-
+position a menu's cursor
.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.sp
-\fBint pos_menu_cursor(const MENU *\fP\fImenu\fP\fB);\fP
-.br
+.nf
+\fB#include <menu.h>
+.PP
+\fBint pos_menu_cursor(const MENU *\fImenu\fP);
+.fi
.SH DESCRIPTION
-The function \fBpos_menu_cursor\fR restores the cursor to the current position
+The function \fBpos_menu_cursor\fP restores the cursor to the current position
associated with the menu's selected item.
-This is useful after \fBcurses\fR
+This is useful after \fBcurses\fP
routines have been called to do screen-painting in response to a menu select.
.SH RETURN VALUE
This routine returns one of the following:
@@ -49,18 +50,13 @@ This routine returns one of the following:
The routine succeeded.
.TP 5
.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR(3)).
+System error occurred (see \fBerrno\fP(3)).
.TP 5
.B E_BAD_ARGUMENT
Routine detected an incorrect or out-of-range argument.
.TP 5
.B E_NOT_POSTED
The menu has not been posted.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
.SH PORTABILITY
These routines emulate the System V menu library.
They were not supported on
@@ -68,3 +64,6 @@ Version 7 or BSD versions.
.SH AUTHORS
Juergen Pfeifer.
Manual pages and adaptation for new curses by Eric S. Raymond.
+.SH SEE ALSO
+\fB\%curses\fP(3X),
+\fB\%menu\fP(3X)
diff --git a/man/menu_driver.3x b/man/menu_driver.3x
index e395358296c4..6a117283705f 100644
--- a/man/menu_driver.3x
+++ b/man/menu_driver.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2010,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,22 +27,24 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: menu_driver.3x,v 1.28 2020/12/19 21:33:37 tom Exp $
-.TH menu_driver 3X ""
+.\" $Id: menu_driver.3x,v 1.47 2024/03/16 15:35:01 tom Exp $
+.TH menu_driver 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
.SH NAME
-\fBmenu_driver\fR \- command-processing loop of the menu system
+\fBmenu_driver\fP \-
+command-processing loop of the menu system
.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.sp
-\fBint menu_driver(MENU *\fP\fImenu\fP\fB, int \fP\fIc\fP\fB);\fP
-.br
+.nf
+\fB#include <menu.h>
+.PP
+\fBint menu_driver(MENU *\fImenu\fP, int \fIc\fP);
+.fi
.SH DESCRIPTION
Once a menu has been posted (displayed), you should funnel input events to it
-through \fBmenu_driver\fR. This routine has three major input cases:
+through \fBmenu_driver\fP. This routine has three major input cases:
.bP
The input is a form navigation request.
Navigation request codes are constants defined in \fB<form.h>\fP,
@@ -111,13 +113,12 @@ Move to the previous item matching the pattern match.
If the second argument is a printable character, the code appends
it to the pattern buffer and attempts to move to the next item matching
the new pattern.
-If there is no such match, \fBmenu_driver\fR returns
-\fBE_NO_MATCH\fR and deletes the appended character from the buffer.
+If there is no such match, \fBmenu_driver\fP returns
+\fBE_NO_MATCH\fP and deletes the appended character from the buffer.
.PP
If the second argument is one of the above pre-defined requests, the
corresponding action is performed.
-.SS MOUSE HANDLING
-.PP
+.SS "Mouse Handling"
If the second argument is the KEY_MOUSE special key, the associated
mouse event is translated into one of the above pre-defined requests.
Currently only clicks in the user window (e.g., inside the menu display
@@ -144,7 +145,7 @@ If you click at an item inside the display area of the menu:
the menu cursor is positioned to that item.
.bP
If you double-click an item a REQ_TOGGLE_ITEM
-is generated and \fBE_UNKNOWN_COMMAND\fR is returned.
+is generated and \fBE_UNKNOWN_COMMAND\fP is returned.
This return value makes sense,
because a double click usually means that an item-specific action should
be returned.
@@ -152,27 +153,26 @@ It is exactly the purpose of this return value to signal that an
application specific command should be executed.
.bP
If a translation
-into a request was done, \fBmenu_driver\fR returns the result of this request.
+into a request was done, \fBmenu_driver\fP returns the result of this request.
.PP
If you clicked outside the user window
or the mouse event could not be translated
-into a menu request an \fBE_REQUEST_DENIED\fR is returned.
-.SS APPLICATION-DEFINED COMMANDS
-.PP
+into a menu request an \fBE_REQUEST_DENIED\fP is returned.
+.SS "Application-defined Commands"
If the second argument is neither printable nor one of the above
pre-defined menu requests or KEY_MOUSE,
the drive assumes it is an application-specific
-command and returns \fBE_UNKNOWN_COMMAND\fR. Application-defined commands
-should be defined relative to \fBMAX_COMMAND\fR, the maximum value of these
+command and returns \fBE_UNKNOWN_COMMAND\fP. Application-defined commands
+should be defined relative to \fBMAX_COMMAND\fP, the maximum value of these
pre-defined requests.
.SH RETURN VALUE
-\fBmenu_driver\fR return one of the following error codes:
+\fBmenu_driver\fP return one of the following error codes:
.TP 5
.B E_OK
The routine succeeded.
.TP 5
.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR(3)).
+System error occurred (see \fBerrno\fP(3)).
.TP 5
.B E_BAD_ARGUMENT
Routine detected an incorrect or out-of-range argument.
@@ -191,18 +191,15 @@ Character failed to match.
.TP 5
.B E_REQUEST_DENIED
The menu driver could not process the request.
-.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBgetch\fR(3X),
-\fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header files
-\fB<curses.h>\fR.
.SH PORTABILITY
These routines emulate the System V menu library.
They were not supported on
Version 7 or BSD versions.
-The support for mouse events is ncurses specific.
+The support for mouse events is \fI\%ncurses\fP specific.
.SH AUTHORS
Juergen Pfeifer.
Manual pages and adaptation for new curses by Eric S. Raymond.
+.SH SEE ALSO
+\fB\%curses\fP(3X),
+\fB\%getch\fP(3X),
+\fB\%menu\fP(3X)
diff --git a/man/menu_format.3x b/man/menu_format.3x
index d01f27ea26f8..9781878f7aab 100644
--- a/man/menu_format.3x
+++ b/man/menu_format.3x
@@ -1,6 +1,5 @@
-'\" t
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2015,2016 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,35 +27,36 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: menu_format.3x,v 1.18 2020/10/17 23:43:11 tom Exp $
-.TH menu_format 3X ""
+.\" $Id: menu_format.3x,v 1.35 2024/03/16 15:35:01 tom Exp $
+.TH menu_format 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
\fBset_menu_format\fP,
-\fBmenu_format\fP \- set and get menu sizes
+\fBmenu_format\fP \-
+set and get menu sizes
.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.sp
-\fBint set_menu_format(MENU *\fP\fImenu\fP\fB, int \fP\fIrows\fP\fB, int \fP\fIcols\fP\fB);\fP
-.br
-\fBvoid menu_format(const MENU *\fP\fImenu\fP\fB, int *\fP\fIrows\fP\fB, int *\fP\fIcols\fP\fB);\fP
-.br
+.nf
+\fB#include <menu.h>
+.PP
+\fBint set_menu_format(MENU *\fImenu\fP, int \fIrows\fP, int \fIcols\fP);
+\fBvoid menu_format(const MENU *\fImenu\fP, int *\fIrows\fP, int *\fIcols\fP);
+.fi
.SH DESCRIPTION
-The function \fBset_menu_format\fR sets the maximum display size of the given
+The function \fBset_menu_format\fP sets the maximum display size of the given
menu.
If this size is too small to display all menu items, the menu will be
made scrollable.
If this size is larger than the menus subwindow and the
-subwindow is too small to display all menu items, \fBpost_menu\fR will fail.
+subwindow is too small to display all menu items, \fBpost_menu\fP will fail.
.PP
The default format is 16 rows, 1 column.
-Calling \fBset_menu_format\fR with a
+Calling \fBset_menu_format\fP with a
null menu pointer will change this default.
A zero row or column argument to
-\fBset_menu_format\fR is interpreted as a request not to change the current
+\fBset_menu_format\fP is interpreted as a request not to change the current
value.
.PP
-The function \fBmenu_format\fR returns the maximum-size constraints for the
-given menu into the storage addressed by \fBrows\fR and \fBcols\fR.
+The function \fBmenu_format\fP returns the maximum-size constraints for the
+given menu into the storage addressed by \fBrows\fP and \fBcols\fP.
.SH RETURN VALUE
These routines returns one of the following:
.TP 5
@@ -64,7 +64,7 @@ These routines returns one of the following:
The routine succeeded.
.TP 5
.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR(3)).
+System error occurred (see \fBerrno\fP(3)).
.TP 5
.B E_BAD_ARGUMENT
Routine detected an incorrect or out-of-range argument.
@@ -74,11 +74,6 @@ The menu is already posted.
.TP 5
.B E_NOT_CONNECTED
No items are connected to the menu.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
.SH PORTABILITY
These routines emulate the System V menu library.
They were not supported on
@@ -86,3 +81,6 @@ Version 7 or BSD versions.
.SH AUTHORS
Juergen Pfeifer.
Manual pages and adaptation for new curses by Eric S. Raymond.
+.SH SEE ALSO
+\fB\%curses\fP(3X),
+\fB\%menu\fP(3X)
diff --git a/man/menu_hook.3x b/man/menu_hook.3x
index 17a1036fabbe..839e199b8c4f 100644
--- a/man/menu_hook.3x
+++ b/man/menu_hook.3x
@@ -1,6 +1,5 @@
-'\" t
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2007,2010 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,57 +27,55 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: menu_hook.3x,v 1.15 2020/10/17 23:44:57 tom Exp $
-.TH menu_hook 3X ""
+.\" $Id: menu_hook.3x,v 1.32 2024/03/16 15:35:01 tom Exp $
+.TH menu_hook 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
-\fBmenu_hook\fR \- set hooks for automatic invocation by applications
+\fBmenu_hook\fP \-
+set hooks for automatic invocation by applications
.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.sp
-\fBint set_item_init(MENU *\fP\fImenu\fP\fB, Menu_Hook \fP\fIfunc);\fP
-.br
-\fBMenu_Hook item_init(const MENU *\fP\fImenu);\fP
-.sp
-\fBint set_item_term(MENU *\fP\fImenu\fP\fB, Menu_Hook \fP\fIfunc);\fP
-.br
-\fBMenu_Hook item_term(const MENU *\fP\fImenu);\fP
-.sp
-\fBint set_menu_init(MENU *\fP\fImenu\fP\fB, Menu_Hook \fP\fIfunc);\fP
-.br
-\fBMenu_Hook menu_init(const MENU *\fP\fImenu);\fP
-.sp
-\fBint set_menu_term(MENU *\fP\fImenu\fP\fB, Menu_Hook \fP\fIfunc);\fP
-.br
-\fBMenu_Hook menu_term(const MENU *\fP\fImenu);\fP
-.br
+.nf
+\fB#include <menu.h>
+.PP
+\fBint set_item_init(MENU *\fImenu\fP, Menu_Hook \fIfunc\fP);
+\fBMenu_Hook item_init(const MENU *\fImenu\fP);
+.PP
+\fBint set_item_term(MENU *\fImenu\fP, Menu_Hook \fIfunc\fP);
+\fBMenu_Hook item_term(const MENU *\fImenu\fP);
+.PP
+\fBint set_menu_init(MENU *\fImenu\fP, Menu_Hook \fIfunc\fP);
+\fBMenu_Hook menu_init(const MENU *\fImenu\fP);
+.PP
+\fBint set_menu_term(MENU *\fImenu\fP, Menu_Hook \fIfunc\fP);
+\fBMenu_Hook menu_term(const MENU *\fImenu\fP);
+.fi
.SH DESCRIPTION
These functions make it possible to set hook functions to be called at various
-points in the automatic processing of input event codes by \fBmenu_driver\fR.
+points in the automatic processing of input event codes by \fBmenu_driver\fP.
.PP
-The function \fBset_item_init\fR sets a hook to be called at menu-post time and
+The function \fBset_item_init\fP sets a hook to be called at menu-post time and
each time the selected item changes (after the change).
-\fBitem_init\fR
-returns the current item init hook, if any (\fBNULL\fR if there is no such
+\fBitem_init\fP
+returns the current item init hook, if any (\fBNULL\fP if there is no such
hook).
.PP
-The function \fBset_item_term\fR sets a hook to be called at menu-unpost time
+The function \fBset_item_term\fP sets a hook to be called at menu-unpost time
and each time the selected item changes (before the change).
-\fBitem_term\fR
-returns the current item term hook, if any (\fBNULL\fR if there is no such
+\fBitem_term\fP
+returns the current item term hook, if any (\fBNULL\fP if there is no such
hook).
.PP
-The function \fBset_menu_init\fR sets a hook to be called at menu-post time and
+The function \fBset_menu_init\fP sets a hook to be called at menu-post time and
just after the top row on the menu changes once it is posted.
-\fBmenu_init\fR
-returns the current menu init hook, if any (\fBNULL\fR if there is no such
+\fBmenu_init\fP
+returns the current menu init hook, if any (\fBNULL\fP if there is no such
hook).
.PP
-The function \fBset_menu_term\fR sets a hook to be called at menu-unpost time
+The function \fBset_menu_term\fP sets a hook to be called at menu-unpost time
and just before the top row on the menu changes once it is posted.
-\fBmenu_term\fR returns the current menu term hook, if any (\fBNULL\fR if there
+\fBmenu_term\fP returns the current menu term hook, if any (\fBNULL\fP if there
is no such hook).
.SH RETURN VALUE
-Routines that return pointers return \fBNULL\fR on error.
+Routines that return pointers return \fBNULL\fP on error.
Other routines
return one of the following:
.TP 5
@@ -86,12 +83,7 @@ return one of the following:
The routine succeeded.
.TP 5
.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR(3)).
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
+System error occurred (see \fBerrno\fP(3)).
.SH PORTABILITY
These routines emulate the System V menu library.
They were not supported on
@@ -100,3 +92,6 @@ Version 7 or BSD versions.
Juergen Pfeifer.
Manual pages and adaptation for new curses by Eric
S. Raymond.
+.SH SEE ALSO
+\fB\%curses\fP(3X),
+\fB\%menu\fP(3X)
diff --git a/man/menu_items.3x b/man/menu_items.3x
index 7c042435cfc7..43409fef812b 100644
--- a/man/menu_items.3x
+++ b/man/menu_items.3x
@@ -1,6 +1,5 @@
-'\" t
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2012,2015 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,36 +27,36 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: menu_items.3x,v 1.17 2020/10/24 09:00:06 tom Exp $
-.TH menu_items 3X ""
+.\" $Id: menu_items.3x,v 1.34 2024/03/16 15:35:01 tom Exp $
+.TH menu_items 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
-\fBset_menu_items\fR,
-\fBmenu_items\fR,
-\fBitem_count\fP \- make and break connections between items and menus
+\fBset_menu_items\fP,
+\fBmenu_items\fP,
+\fBitem_count\fP \-
+make and break connections between items and menus
.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.sp
-\fBint set_menu_items(MENU *\fP\fImenu\fP\fB, ITEM **\fP\fIitems\fP\fB);\fP
-.br
-\fBITEM **menu_items(const MENU *\fP\fImenu\fP\fB);\fP
-.br
-\fBint item_count(const MENU *\fP\fImenu\fP\fB);\fP
-.br
+.nf
+\fB#include <menu.h>
+.PP
+\fBint set_menu_items(MENU *\fImenu\fP, ITEM **\fIitems\fP);
+\fBITEM **menu_items(const MENU *\fImenu\fP);
+\fBint item_count(const MENU *\fImenu\fP);
+.fi
.SH DESCRIPTION
-The function \fBset_menu_items\fR changes the item pointer array of the given
-\fImenu\fR. The array must be terminated by a \fBNULL\fR.
+The function \fBset_menu_items\fP changes the item pointer array of the given
+\fImenu\fP. The array must be terminated by a \fBNULL\fP.
.PP
-The function \fBmenu_items\fR returns the item array of the given menu.
+The function \fBmenu_items\fP returns the item array of the given menu.
.PP
-The function \fBitem_count\fR returns the count of items in \fImenu\fR.
+The function \fBitem_count\fP returns the count of items in \fImenu\fP.
.SH RETURN VALUE
-The function \fBmenu_items\fR returns a pointer (which may be \fBNULL\fR).
+The function \fBmenu_items\fP returns a pointer (which may be \fBNULL\fP).
It does not set \fBerrno\fP.
.PP
-The function \fBitem_count\fR returns \fBERR\fR (the general \fBcurses\fR error
+The function \fBitem_count\fP returns \fBERR\fP (the general \fBcurses\fP error
return value) if its \fImenu\fP parameter is \fBNULL\fP.
.PP
-The function \fBset_menu_items\fR returns one of the following codes on error:
+The function \fBset_menu_items\fP returns one of the following codes on error:
.TP 5
.B E_OK
The routine succeeded.
@@ -72,20 +71,17 @@ No items are connected to the menu.
The menu is already posted.
.TP 5
.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR(3)).
-.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
+System error occurred (see \fBerrno\fP(3)).
.SH PORTABILITY
These routines emulate the System V menu library.
They were not supported on
Version 7 or BSD versions.
.PP
-The SVr4 menu library documentation specifies the \fBitem_count\fR error value
-as \-1 (which is the value of \fBERR\fR).
+The SVr4 menu library documentation specifies the \fBitem_count\fP error value
+as \-1 (which is the value of \fBERR\fP).
.SH AUTHORS
Juergen Pfeifer.
Manual pages and adaptation for new curses by Eric S. Raymond.
+.SH SEE ALSO
+\fB\%curses\fP(3X),
+\fB\%menu\fP(3X)
diff --git a/man/menu_mark.3x b/man/menu_mark.3x
index 960113578f48..e3f3a92869d3 100644
--- a/man/menu_mark.3x
+++ b/man/menu_mark.3x
@@ -1,6 +1,5 @@
-'\" t
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2010,2015 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,39 +27,40 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: menu_mark.3x,v 1.18 2020/10/24 08:59:04 tom Exp $
-.TH menu_mark 3X ""
+.\" $Id: menu_mark.3x,v 1.35 2024/03/16 15:35:01 tom Exp $
+.TH menu_mark 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
\fBset_menu_mark\fP,
-\fBmenu_mark\fR \- get and set the menu mark string
+\fBmenu_mark\fP \-
+get and set the menu mark string
.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.sp
-\fBint set_menu_mark(MENU *\fP\fImenu\fP\fB, const char *\fP\fImark\fP\fB);\fP
-.br
-\fBconst char *menu_mark(const MENU *\fP\fImenu\fP\fB);\fP
-.br
+.nf
+\fB#include <menu.h>
+.PP
+\fBint set_menu_mark(MENU *\fImenu\fP, const char *\fImark\fP);
+\fBconst char *menu_mark(const MENU *\fImenu\fP);
+.fi
.SH DESCRIPTION
In order to make menu selections visible on older terminals without
highlighting or color capability, the menu library marks selected items
in a menu with a prefix string.
.PP
-The function \fBset_menu_mark\fR sets the mark string for the given menu.
-Calling \fBset_menu_mark\fR with a null menu item will abolish the mark string.
+The function \fBset_menu_mark\fP sets the mark string for the given menu.
+Calling \fBset_menu_mark\fP with a null menu item will abolish the mark string.
Note that changing the length of the mark string for a menu while the
menu is posted is likely to produce unhelpful behavior.
.PP
The default string is "\-" (a dash).
-Calling \fBset_menu_mark\fR with
-a non-\fBNULL\fR menu argument will change this default.
+Calling \fBset_menu_mark\fP with
+a non-\fBNULL\fP menu argument will change this default.
.PP
-The function \fBmenu_mark\fR returns the menu's mark string (or \fBNULL\fR if
+The function \fBmenu_mark\fP returns the menu's mark string (or \fBNULL\fP if
there is none).
.SH RETURN VALUE
-The function \fBmenu_mark\fR returns a pointer (which may be \fBNULL\fR).
+The function \fBmenu_mark\fP returns a pointer (which may be \fBNULL\fP).
It does not set \fBerrno\fP.
.PP
-The function \fBset_menu_mark\fR may return the following error codes:
+The function \fBset_menu_mark\fP may return the following error codes:
.TP 5
.B E_OK
The routine succeeded.
@@ -69,12 +69,7 @@ The routine succeeded.
Routine detected an incorrect or out-of-range argument.
.TP 5
.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR(3)).
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
+System error occurred (see \fBerrno\fP(3)).
.SH PORTABILITY
These routines emulate the System V menu library.
They were not supported on
@@ -82,3 +77,6 @@ Version 7 or BSD versions.
.SH AUTHORS
Juergen Pfeifer.
Manual pages and adaptation for new curses by Eric S. Raymond.
+.SH SEE ALSO
+\fB\%curses\fP(3X),
+\fB\%menu\fP(3X)
diff --git a/man/menu_new.3x b/man/menu_new.3x
index 3b04f93bb162..1a133745a9b7 100644
--- a/man/menu_new.3x
+++ b/man/menu_new.3x
@@ -1,6 +1,5 @@
-'\" t
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2010,2015 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,26 +27,27 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: menu_new.3x,v 1.18 2020/10/24 08:57:51 tom Exp $
-.TH menu_new 3X ""
+.\" $Id: menu_new.3x,v 1.35 2024/03/16 15:35:01 tom Exp $
+.TH menu_new 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
\fBnew_menu\fP,
-\fBfree_menu\fR \- create and destroy menus
+\fBfree_menu\fP \-
+create and destroy menus
.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.sp
-\fBMENU *new_menu(ITEM **\fP\fIitems\fP\fB);\fP
-.br
-\fBint free_menu(MENU *\fP\fImenu\fP\fB);\fP
-.br
+.nf
+\fB#include <menu.h>
+.PP
+\fBMENU *new_menu(ITEM **\fIitems\fP);
+\fBint free_menu(MENU *\fImenu\fP);
+.fi
.SH DESCRIPTION
-The function \fBnew_menu\fR creates a new menu connected to a specified item
-pointer array (which must be \fBNULL\fR-terminated).
+The function \fBnew_menu\fP creates a new menu connected to a specified item
+pointer array (which must be \fBNULL\fP-terminated).
.PP
-The function \fBfree_menu\fR disconnects \fImenu\fR from its item array
+The function \fBfree_menu\fP disconnects \fImenu\fP from its item array
and frees the storage allocated for the menu.
.SH RETURN VALUE
-The function \fBnew_menu\fR returns \fBNULL\fR on error.
+The function \fBnew_menu\fP returns \fBNULL\fP on error.
It sets \fBerrno\fP according to the function's failure:
.TP 5
.B E_NOT_CONNECTED
@@ -56,24 +56,19 @@ No items are connected to the menu.
.B E_SYSTEM_ERROR
System error occurred, e.g., malloc failure.
.PP
-The function \fBfree_menu\fR returns one of the following:
+The function \fBfree_menu\fP returns one of the following:
.TP 5
.B E_OK
The routine succeeded.
.TP 5
.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR(3)).
+System error occurred (see \fBerrno\fP(3)).
.TP 5
.B E_BAD_ARGUMENT
Routine detected an incorrect or out-of-range argument.
.TP 5
.B E_POSTED
The menu has already been posted.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
.SH PORTABILITY
These routines emulate the System V menu library.
They were not supported on
@@ -81,3 +76,6 @@ Version 7 or BSD versions.
.SH AUTHORS
Juergen Pfeifer.
Manual pages and adaptation for new curses by Eric S. Raymond.
+.SH SEE ALSO
+\fB\%curses\fP(3X),
+\fB\%menu\fP(3X)
diff --git a/man/menu_opts.3x b/man/menu_opts.3x
index 99e950e5b8d4..ad7fe97f348f 100644
--- a/man/menu_opts.3x
+++ b/man/menu_opts.3x
@@ -1,6 +1,5 @@
-'\" t
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2015,2016 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,35 +27,35 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: menu_opts.3x,v 1.18 2020/10/17 23:46:35 tom Exp $
-.TH menu_opts 3X ""
+.\" $Id: menu_opts.3x,v 1.35 2024/03/16 15:35:01 tom Exp $
+.TH menu_opts 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
\fBset_menu_opts\fP,
\fBmenu_opts_on\fP,
\fBmenu_opts_off\fP,
-\fBmenu_opts\fR \- set and get menu options
+\fBmenu_opts\fP \-
+set and get menu options
.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.sp
-\fBint set_menu_opts(MENU *\fP\fImenu\fP\fB, Menu_Options \fP\fIopts\fP\fB);\fP
-.br
-\fBMenu_Options menu_opts(const MENU *\fP\fImenu\fP\fB);\fP
-.sp
-\fBint menu_opts_on(MENU *\fP\fImenu\fP\fB, Menu_Options \fP\fIopts\fP\fB);\fP
-.br
-\fBint menu_opts_off(MENU *\fP\fImenu\fP\fB, Menu_Options \fP\fIopts\fP\fB);\fP
-.br
+.nf
+\fB#include <menu.h>
+.PP
+\fBint set_menu_opts(MENU *\fImenu\fP, Menu_Options \fIopts\fP);
+\fBMenu_Options menu_opts(const MENU *\fImenu\fP);
+.PP
+\fBint menu_opts_on(MENU *\fImenu\fP, Menu_Options \fIopts\fP);
+\fBint menu_opts_off(MENU *\fImenu\fP, Menu_Options \fIopts\fP);
+.fi
.SH DESCRIPTION
-The function \fBset_menu_opts\fR sets all the given menu's option bits (menu
+The function \fBset_menu_opts\fP sets all the given menu's option bits (menu
option bits may be logically-OR'ed together).
.PP
-The function \fBmenu_opts_on\fR turns on the given option bits, and leaves
+The function \fBmenu_opts_on\fP turns on the given option bits, and leaves
others alone.
.PP
-The function \fBmenu_opts_off\fR turns off the given option bits, and leaves
+The function \fBmenu_opts_off\fP turns off the given option bits, and leaves
others alone.
.PP
-The function \fBmenu_opts\fR returns the menu's current option bits.
+The function \fBmenu_opts\fP returns the menu's current option bits.
.PP
The following options are defined (all are on by default):
.TP 5
@@ -85,21 +84,16 @@ and it does not fall on the currently active menu,
push \fBKEY_MOUSE\fP and the \fBMEVENT\fP data
back on the queue to allow processing in another part of the calling program.
.SH RETURN VALUE
-Except for \fBmenu_opts\fR, each routine returns one of the following:
+Except for \fBmenu_opts\fP, each routine returns one of the following:
.TP 5
.B E_OK
The routine succeeded.
.TP 5
.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR(3)).
+System error occurred (see \fBerrno\fP(3)).
.TP 5
.B E_POSTED
The menu is already posted.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
.SH PORTABILITY
These routines emulate the System V menu library.
They were not supported on
@@ -107,3 +101,6 @@ Version 7 or BSD versions.
.SH AUTHORS
Juergen Pfeifer.
Manual pages and adaptation for new curses by Eric S. Raymond.
+.SH SEE ALSO
+\fB\%curses\fP(3X),
+\fB\%menu\fP(3X)
diff --git a/man/menu_pattern.3x b/man/menu_pattern.3x
index a24ffa0818c5..a66a368dd0c9 100644
--- a/man/menu_pattern.3x
+++ b/man/menu_pattern.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2010,2015 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,39 +27,40 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: menu_pattern.3x,v 1.21 2020/10/18 00:41:14 tom Exp $
-.TH menu_pattern 3X ""
+.\" $Id: menu_pattern.3x,v 1.38 2024/03/16 15:35:01 tom Exp $
+.TH menu_pattern 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
\fBset_menu_pattern\fP,
-\fBmenu_pattern\fR \- set and get a menu's pattern buffer
+\fBmenu_pattern\fP \-
+set and get a menu's pattern buffer
.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.sp
-\fBint set_menu_pattern(MENU *\fP\fImenu\fP\fB, const char *\fP\fIpattern\fP\fB);\fP
-.br
-\fBchar *menu_pattern(const MENU *\fP\fImenu\fP\fB);\fP
-.br
+.nf
+\fB#include <menu.h>
+.PP
+\fBint set_menu_pattern(MENU *\fImenu\fP, const char *\fIpattern\fP);
+\fBchar *menu_pattern(const MENU *\fImenu\fP);
+.fi
.SH DESCRIPTION
Every menu has an associated pattern match buffer.
As input events that are
printable characters come in, they are appended to this match buffer
-and tested for a match, as described in \fBmenu_driver\fR(3X).
+and tested for a match, as described in \fBmenu_driver\fP(3X).
.PP
-The function \fBset_menu_pattern\fR sets the pattern buffer for the given menu
+The function \fBset_menu_pattern\fP sets the pattern buffer for the given menu
and tries to find the first matching item.
If it succeeds, that item becomes
current; if not, the current item does not change.
.PP
-The function \fBmenu_pattern\fR returns the pattern buffer of the given
-\fImenu\fR.
+The function \fBmenu_pattern\fP returns the pattern buffer of the given
+\fImenu\fP.
.SH RETURN VALUE
-The function \fBmenu_pattern\fR returns a pointer,
-which is \fBNULL\fR if the \fImenu\fP parameter is \fBNULL\fP.
+The function \fBmenu_pattern\fP returns a pointer,
+which is \fBNULL\fP if the \fImenu\fP parameter is \fBNULL\fP.
Otherwise, it is a pointer to a string which is empty
if no pattern has been set.
It does not set \fBerrno\fP.
.PP
-The function \fBset_menu_pattern\fR may return the following error codes:
+The function \fBset_menu_pattern\fP may return the following error codes:
.TP 5
.B E_OK
The routine succeeded.
@@ -77,12 +78,7 @@ No items are connected to menu.
Character failed to match.
.TP 5
.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR(3)).
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
+System error occurred (see \fBerrno\fP(3)).
.SH PORTABILITY
These routines emulate the System V menu library.
They were not supported on
@@ -90,3 +86,6 @@ Version 7 or BSD versions.
.SH AUTHORS
Juergen Pfeifer.
Manual pages and adaptation for new curses by Eric S. Raymond.
+.SH SEE ALSO
+\fB\%curses\fP(3X),
+\fB\%menu\fP(3X)
diff --git a/man/menu_post.3x b/man/menu_post.3x
index 6f14a45a77c6..4a0827a16cf7 100644
--- a/man/menu_post.3x
+++ b/man/menu_post.3x
@@ -1,6 +1,5 @@
-'\" t
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2016,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,28 +27,29 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: menu_post.3x,v 1.19 2020/10/17 23:47:21 tom Exp $
-.TH menu_post 3X ""
+.\" $Id: menu_post.3x,v 1.36 2024/03/16 15:35:01 tom Exp $
+.TH menu_post 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
-\fBpost_menu\fR,
-\fBunpost_menu\fR \- write or erase menus from associated subwindows
+\fBpost_menu\fP,
+\fBunpost_menu\fP \-
+write or erase menus from associated subwindows
.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.sp
-\fBint post_menu(MENU *\fP\fImenu\fP\fB);\fP
-.br
-\fBint unpost_menu(MENU *\fP\fImenu\fP\fB);\fP
-.br
+.nf
+\fB#include <menu.h>
+.PP
+\fBint post_menu(MENU *\fImenu\fP);
+\fBint unpost_menu(MENU *\fImenu\fP);
+.fi
.SH DESCRIPTION
-The function \fBpost_menu\fR displays a menu to its associated subwindow.
+The function \fBpost_menu\fP displays a menu to its associated subwindow.
To
trigger physical display of the subwindow,
-use \fBrefresh\fR(3X) or some equivalent
-\fBcurses\fR routine (the implicit \fBdoupdate\fR triggered by an \fBcurses\fR
+use \fBrefresh\fP(3X) or some equivalent
+\fBcurses\fP routine (the implicit \fBdoupdate\fP triggered by an \fBcurses\fP
input request will do).
-\fBpost_menu\fR resets the selection status of all items.
+\fBpost_menu\fP resets the selection status of all items.
.PP
-The function \fBunpost_menu\fR erases menu from its associated subwindow.
+The function \fBunpost_menu\fP erases menu from its associated subwindow.
.SH RETURN VALUE
These routines return one of the following:
.TP 5
@@ -57,7 +57,7 @@ These routines return one of the following:
The routine succeeded.
.TP 5
.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR(3)).
+System error occurred (see \fBerrno\fP(3)).
.TP 5
.B E_BAD_ARGUMENT
Routine detected an incorrect or out-of-range argument.
@@ -70,18 +70,13 @@ Routine was called from an initialization or termination function.
.TP 5
.B E_NO_ROOM
Menu is too large for its window.
-You should consider using \fBset_menu_format\fR to solve the problem.
+You should consider using \fBset_menu_format\fP to solve the problem.
.TP 5
.B E_NOT_POSTED
The menu has not been posted.
.TP 5
.B E_NOT_CONNECTED
No items are connected to the menu.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
.SH PORTABILITY
These routines emulate the System V menu library.
They were not supported on
@@ -89,3 +84,6 @@ Version 7 or BSD versions.
.SH AUTHORS
Juergen Pfeifer.
Manual pages and adaptation for new curses by Eric S. Raymond.
+.SH SEE ALSO
+\fB\%curses\fP(3X),
+\fB\%menu\fP(3X)
diff --git a/man/menu_requestname.3x b/man/menu_requestname.3x
index d10874cc4bcf..a0363fb28585 100644
--- a/man/menu_requestname.3x
+++ b/man/menu_requestname.3x
@@ -1,6 +1,5 @@
-'\" t
.\"***************************************************************************
-.\" Copyright 2018,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2010,2015 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,38 +27,34 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: menu_requestname.3x,v 1.15 2020/10/18 00:40:34 tom Exp $
-.TH menu_requestname 3X ""
+.\" $Id: menu_requestname.3x,v 1.33 2024/03/16 15:35:01 tom Exp $
+.TH menu_requestname 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
\fBmenu_request_by_name\fP,
-\fBmenu_request_name\fR \- handle printable menu request names
+\fBmenu_request_name\fP \-
+handle printable menu request names
.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.sp
-\fBconst char *menu_request_name(int \fP\fIrequest\fP\fB);\fP
-.br
-\fBint menu_request_by_name(const char *\fP\fIname\fP\fB);\fP
-.br
+.nf
+\fB#include <menu.h>
+.PP
+\fBconst char *menu_request_name(int \fIrequest\fP);
+\fBint menu_request_by_name(const char *\fIname\fP);
+.fi
.SH DESCRIPTION
-The function \fBmenu_request_name\fR returns the printable name of a menu
+The function \fBmenu_request_name\fP returns the printable name of a menu
request code.
.br
-The function \fBmenu_request_by_name\fR searches in the name-table for a request
+The function \fBmenu_request_by_name\fP searches in the name-table for a request
with the given name and returns its request code.
Otherwise E_NO_MATCH is returned.
.SH RETURN VALUE
-\fBmenu_request_name\fR returns \fBNULL\fR on error
-and sets \fBerrno\fP to \fBE_BAD_ARGUMENT\fR.
+\fBmenu_request_name\fP returns \fBNULL\fP on error
+and sets \fBerrno\fP to \fBE_BAD_ARGUMENT\fP.
.br
-\fBmenu_request_by_name\fR returns \fBE_NO_MATCH\fR on error.
+\fBmenu_request_by_name\fP returns \fBE_NO_MATCH\fP on error.
It does not set \fBerrno\fP.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
.SH PORTABILITY
-These routines are specific to ncurses.
+These routines are specific to \fI\%ncurses\fP.
They were not supported on
Version 7, BSD or System V implementations.
It is recommended that
@@ -67,3 +62,6 @@ any code depending on them be conditioned using NCURSES_VERSION.
.SH AUTHORS
Juergen Pfeifer.
Manual pages and adaptation for new curses by Eric S. Raymond.
+.SH SEE ALSO
+\fB\%curses\fP(3X),
+\fB\%menu\fP(3X)
diff --git a/man/menu_spacing.3x b/man/menu_spacing.3x
index 7d67f0b6aa2f..d15e77d542a5 100644
--- a/man/menu_spacing.3x
+++ b/man/menu_spacing.3x
@@ -1,6 +1,5 @@
-'\" t
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2010,2015 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,61 +27,60 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: menu_spacing.3x,v 1.17 2020/10/17 23:48:53 tom Exp $
-.TH menu_spacing 3X ""
+.\" $Id: menu_spacing.3x,v 1.37 2024/03/16 15:35:01 tom Exp $
+.TH menu_spacing 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
\fBset_menu_spacing\fP,
-\fBmenu_spacing\fR \- set and get spacing between menu items.
+\fBmenu_spacing\fP \-
+set and get spacing between menu items.
.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.sp
-\fBint set_menu_spacing(MENU *\fP\fImenu\fP\fB,\fP
- \fBint \fP\fIspc_description\fP\fB,\fP
- \fBint \fP\fIspc_rows\fP\fB,\fP
- \fBint \fP\fIspc_columns\fP\fB);\fP
-.br
-\fBint menu_spacing(const MENU *\fP\fImenu\fP\fB,\fP
- \fBint* \fP\fIspc_description\fP\fB,\fP
- \fBint* \fP\fIspc_rows\fP\fB,\fP
- \fBint* \fP\fIspc_columns\fP\fB);\fP
-.br
+.nf
+\fB#include <menu.h>
+.PP
+\fBint set_menu_spacing(MENU *\fImenu\fP,
+ \fBint \fIspc_description\fB,\fR
+ \fBint \fIspc_rows\fB,\fR
+ \fBint \fIspc_columns\fB);\fR
+\fBint menu_spacing(const MENU *\fImenu\fB,\fR
+ \fBint* \fIspc_description\fB,\fR
+ \fBint* \fIspc_rows\fB,\fR
+ \fBint* \fIspc_columns\fB);\fR
+.fi
.SH DESCRIPTION
-The function \fBset_menu_spacing\fR sets the spacing information for the menu.
-Its parameter \fBspc_description\fR controls the number of spaces
+The function \fBset_menu_spacing\fP sets the spacing information for the menu.
+Its parameters provide the description and the size (in rows and columns).
+.TP
+\fIspc_description\fP
+controls the number of spaces
between an item name and an item description.
-It must not be larger than \fBTABSIZE\fR.
+It must not be larger than \fBTABSIZE\fP.
The menu system puts in the
middle of this spacing area the pad character.
The remaining parts are filled with
spaces.
-The \fBspc_rows\fR parameter controls the number of rows
+.TP
+\fIspc_rows\fP
+controls the number of rows
that are used for an item.
It must not be larger than 3.
The menu system inserts the blank lines between item rows, these lines
will contain the pad character in the appropriate positions.
-The \fBspc_columns\fR parameter controls
-the number of blanks between columns of items.
+.TP
+\fIspc_columns\fP
+controls the number of blanks between columns of items.
It must not be larger than \fBTABSIZE\fP.
A value of 0 for all the spacing values resets them to the default,
which is 1 for all of them.
-.br
-The function \fBmenu_spacing\fR passes back the spacing info for the menu.
-If a
-pointer is NULL, this specific info is simply not returned.
+.PP
+The function \fBmenu_spacing\fP returns the spacing information for the menu.
+If a pointer is NULL, the corresponding information is simply not returned.
.SH RETURN VALUE
-Both routines return \fBE_OK\fR on success.
-\fBset_menu_spacing\fR may return
-\fBE_POSTED\fR if the menu is posted, or \fBE_BAD_ARGUMENT\fR if one of the
+Both routines return \fBE_OK\fP on success.
+\fBset_menu_spacing\fP may return
+\fBE_POSTED\fP if the menu is posted, or \fBE_BAD_ARGUMENT\fP if one of the
spacing values is out of range.
-.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBcurs_variables\fR(3X),
-\fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
.SH PORTABILITY
-These routines are specific to ncurses.
+These routines are specific to \fI\%ncurses\fP.
They were not supported on
Version 7, BSD or System V implementations.
It is recommended that
@@ -90,3 +88,7 @@ any code depending on them be conditioned using NCURSES_VERSION.
.SH AUTHORS
Juergen Pfeifer.
Manual pages and adaptation for new curses by Eric S. Raymond.
+.SH SEE ALSO
+\fB\%curses\fP(3X),
+\fB\%curs_variables\fP(3X),
+\fB\%menu\fP(3X)
diff --git a/man/menu_userptr.3x b/man/menu_userptr.3x
index afc393e08040..292bbd6b85e8 100644
--- a/man/menu_userptr.3x
+++ b/man/menu_userptr.3x
@@ -1,6 +1,5 @@
-'\" t
.\"***************************************************************************
-.\" Copyright 2018,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2010,2015 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,32 +27,28 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: menu_userptr.3x,v 1.16 2020/10/18 00:39:49 tom Exp $
-.TH menu_userptr 3X ""
+.\" $Id: menu_userptr.3x,v 1.33 2024/03/16 15:35:01 tom Exp $
+.TH menu_userptr 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
\fBset_menu_userptr\fP,
-\fBmenu_userptr\fR \- associate application data with a menu item
+\fBmenu_userptr\fP \-
+associate application data with a menu item
.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.sp
-\fBint set_menu_userptr(MENU *\fP\fImenu\fP\fB, void *\fP\fIuserptr\fP\fB);\fP
-.br
-\fBvoid *menu_userptr(const MENU *\fP\fImenu\fP\fB);\fP
-.br
+.nf
+\fB#include <menu.h>
+.PP
+\fBint set_menu_userptr(MENU *\fImenu\fP, void *\fIuserptr\fP);
+\fBvoid *menu_userptr(const MENU *\fImenu\fP);
+.fi
.SH DESCRIPTION
Every menu and every menu item has a field that can be used to hold
application-specific data (that is, the menu-driver code leaves it alone).
These functions get and set the menu user pointer field.
.SH RETURN VALUE
-\fBmenu_userptr\fR returns a pointer (which may be \fBNULL\fR).
+\fBmenu_userptr\fP returns a pointer (which may be \fBNULL\fP).
It does not set \fBerrno\fP.
.PP
\fBset_menu_userptr\fP returns \fBE_OK\fP (success).
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
.SH PORTABILITY
These routines emulate the System V menu library.
They were not supported on
@@ -64,3 +59,6 @@ We chose not to leave it as a char pointer for SVr4 compatibility.
.SH AUTHORS
Juergen Pfeifer.
Manual pages and adaptation for new curses by Eric S. Raymond.
+.SH SEE ALSO
+\fB\%curses\fP(3X),
+\fB\%menu\fP(3X)
diff --git a/man/menu_win.3x b/man/menu_win.3x
index ae764ec9a126..36f6129dc2a8 100644
--- a/man/menu_win.3x
+++ b/man/menu_win.3x
@@ -1,6 +1,5 @@
-'\" t
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2006,2010 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,41 +27,41 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: menu_win.3x,v 1.15 2020/10/17 23:50:51 tom Exp $
-.TH menu_win 3X ""
+.\" $Id: menu_win.3x,v 1.32 2024/03/16 15:35:01 tom Exp $
+.TH menu_win 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
-\fBmenu_win\fR \- make and break menu window and subwindow associations
+\fBmenu_win\fP \-
+make and break menu window and subwindow associations
.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.sp
-\fBint set_menu_win(MENU *\fP\fImenu\fP\fB, WINDOW *\fP\fIwin\fP\fB);\fP
-.br
-\fBWINDOW *menu_win(const MENU *\fP\fImenu\fP\fB);\fP
-.sp
-\fBint set_menu_sub(MENU *\fP\fImenu\fP\fB, WINDOW *\fP\fIsub\fP\fB);\fP
-.br
-\fBWINDOW *menu_sub(const MENU *\fP\fImenu\fP\fB);\fP
-.sp
-\fBint scale_menu(const MENU *\fP\fImenu, int *\fP\fIrows\fP\fB, int *\fP\fIcolumns);\fP
-.br
+.nf
+\fB#include <menu.h>
+.PP
+\fBint set_menu_win(MENU *\fImenu\fP, WINDOW *\fIwin\fP);
+\fBWINDOW *menu_win(const MENU *\fImenu\fP);
+.PP
+\fBint set_menu_sub(MENU *\fImenu\fP, WINDOW *\fIsub\fP);
+\fBWINDOW *menu_sub(const MENU *\fImenu\fP);
+.PP
+\fBint scale_menu(const MENU *\fImenu\fP, int *\fIrows\fP, int *\fIcolumns\fP);
+.fi
.SH DESCRIPTION
-Every menu has an associated pair of \fBcurses\fR windows.
+Every menu has an associated pair of \fBcurses\fP windows.
The menu window
displays any title and border associated with the window; the menu subwindow
displays the items of the menu that are currently available for selection.
.PP
The first four functions get and set those windows.
It is not necessary to set
-either window; by default, the driver code uses \fBstdscr\fR for both.
+either window; by default, the driver code uses \fBstdscr\fP for both.
.PP
-In the \fBset_\fR functions, window argument of \fBNULL\fR is treated as though
-it were \fBstsdcr\fR. A menu argument of \fBNULL\fR is treated as a request
+In the \fBset_\fP functions, window argument of \fBNULL\fP is treated as though
+it were \fBstsdcr\fP. A menu argument of \fBNULL\fP is treated as a request
to change the system default menu window or subwindow.
.PP
-The function \fBscale_menu\fR returns the minimum size required for the
-subwindow of \fImenu\fR.
+The function \fBscale_menu\fP returns the minimum size required for the
+subwindow of \fImenu\fP.
.SH RETURN VALUE
-Routines that return pointers return \fBNULL\fR on error.
+Routines that return pointers return \fBNULL\fP on error.
Routines that return
an integer return one of the following error codes:
.TP 5
@@ -70,7 +69,7 @@ an integer return one of the following error codes:
The routine succeeded.
.TP 5
.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR(3)).
+System error occurred (see \fBerrno\fP(3)).
.TP 5
.B E_BAD_ARGUMENT
Routine detected an incorrect or out-of-range argument.
@@ -80,13 +79,6 @@ The menu has already been posted.
.TP 5
.B E_NOT_CONNECTED
No items are connected to the menu.
-.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBcurs_variables\fR(3X),
-\fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
.SH PORTABILITY
These routines emulate the System V menu library.
They were not supported on
@@ -94,3 +86,7 @@ Version 7 or BSD versions.
.SH AUTHORS
Juergen Pfeifer.
Manual pages and adaptation for new curses by Eric S. Raymond.
+.SH SEE ALSO
+\fB\%curses\fP(3X),
+\fB\%curs_variables\fP(3X),
+\fB\%menu\fP(3X)
diff --git a/man/mitem_current.3x b/man/mitem_current.3x
index 4cd37b6033e2..42d36c39754b 100644
--- a/man/mitem_current.3x
+++ b/man/mitem_current.3x
@@ -1,6 +1,5 @@
-'\" t
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2006,2010 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,47 +27,47 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: mitem_current.3x,v 1.20 2020/10/18 00:39:06 tom Exp $
-.TH mitem_current 3X ""
+.\" $Id: mitem_current.3x,v 1.37 2024/03/16 15:35:01 tom Exp $
+.TH mitem_current 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
-\fBmitem_current\fR \- set and get current_menu_item
+\fBmitem_current\fP \-
+set and get current_menu_item
.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.sp
-\fBint set_current_item(MENU *\fP\fImenu\fP\fB, ITEM *\fP\fIitem\fP\fB);\fP
-.br
-\fBITEM *current_item(const MENU *\fP\fImenu\fP\fB);\fP
-.sp
-\fBint set_top_row(MENU *\fP\fImenu\fP\fB, int \fP\fIrow\fP\fB);\fP
-.br
-\fBint top_row(const MENU *\fP\fImenu\fP\fB);\fP
-.sp
-\fBint item_index(const ITEM *\fP\fIitem\fP\fB);\fP
-.br
+.nf
+\fB#include <menu.h>
+.PP
+\fBint set_current_item(MENU *\fImenu\fP, ITEM *\fIitem\fP);
+\fBITEM *current_item(const MENU *\fImenu\fP);
+.PP
+\fBint set_top_row(MENU *\fImenu\fP, int \fIrow\fP);
+\fBint top_row(const MENU *\fImenu\fP);
+.PP
+\fBint item_index(const ITEM *\fIitem\fP);
+.fi
.SH DESCRIPTION
-The function \fBset_current_item\fR sets the current item (the item on which
+The function \fBset_current_item\fP sets the current item (the item on which
the menu cursor is positioned).
-\fBcurrent_item\fR returns a pointer to the
+\fBcurrent_item\fP returns a pointer to the
current item in the given menu.
.PP
-The function \fBset_top_row\fR sets the top row of the menu to show the given
+The function \fBset_top_row\fP sets the top row of the menu to show the given
row (the top row is initially 0, and is reset to this value whenever the
-\fBO_ROWMAJOR\fR option is toggled).
+\fBO_ROWMAJOR\fP option is toggled).
The item leftmost on the given row
becomes current.
-The function \fBtop_row\fR returns the number of the top menu
+The function \fBtop_row\fP returns the number of the top menu
row being displayed.
.PP
-The function \fBitem_index\fR returns the (zero-origin) index of \fIitem\fR in
+The function \fBitem_index\fP returns the (zero-origin) index of \fIitem\fP in
the menu's item pointer list.
.SH RETURN VALUE
-\fBcurrent_item\fR returns a pointer (which may be \fBNULL\fR).
+\fBcurrent_item\fP returns a pointer (which may be \fBNULL\fP).
It does not set \fBerrno\fP.
.PP
-\fBtop_row\fR and \fBitem_index\fR return \fBERR\fR (the general \fBcurses\fR
+\fBtop_row\fP and \fBitem_index\fP return \fBERR\fP (the general \fBcurses\fP
error value) if their \fImenu\fP parameter is \fBNULL\fP.
.PP
-\fBset_current_item\fR and \fBset_top_row\fR return one of the following:
+\fBset_current_item\fP and \fBset_top_row\fP return one of the following:
.TP 5
.B E_OK
The routine succeeded.
@@ -83,19 +82,17 @@ Routine was called from an initialization or termination function.
No items are connected to the menu.
.TP 5
.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR(3)).
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
+System error occurred (see \fBerrno\fP(3)).
.SH PORTABILITY
These routines emulate the System V menu library.
They were not supported on
Version 7 or BSD versions.
.PP
-The SVr4 menu library documentation specifies the \fBtop_row\fR and
-\fBindex_item\fR error value as \-1 (which is the value of \fBERR\fR).
+The SVr4 menu library documentation specifies the \fBtop_row\fP and
+\fBindex_item\fP error value as \-1 (which is the value of \fBERR\fP).
.SH AUTHORS
Juergen Pfeifer.
Manual pages and adaptation for new curses by Eric S. Raymond.
+.SH SEE ALSO
+\fB\%curses\fP(3X),
+\fB\%menu\fP(3X)
diff --git a/man/mitem_name.3x b/man/mitem_name.3x
index bf50cfd8f424..3606bb5d2455 100644
--- a/man/mitem_name.3x
+++ b/man/mitem_name.3x
@@ -1,6 +1,5 @@
-'\" t
.\"***************************************************************************
-.\" Copyright 2018,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2010,2015 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,34 +27,33 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: mitem_name.3x,v 1.14 2020/10/18 00:37:48 tom Exp $
-.TH mitem_name 3X ""
+.\" $Id: mitem_name.3x,v 1.31 2024/03/16 15:35:01 tom Exp $
+.TH mitem_name 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
-\fBitem_name\fR,
-\fBitem_description\fR \- get menu item name and description fields
+\fBitem_name\fP,
+\fBitem_description\fP \-
+get menu item name and description fields
.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.sp
-\fBconst char *item_name(const ITEM *\fP\fIitem\fP\fB);\fP
-.br
-\fBconst char *item_description(const ITEM *\fP\fIitem\fP\fB);\fP
-.br
+.nf
+\fB#include <menu.h>
+.PP
+\fBconst char *item_name(const ITEM *\fIitem\fP);
+\fBconst char *item_description(const ITEM *\fIitem\fP);
+.fi
.SH DESCRIPTION
-The function \fBitem_name\fR returns the name part of the given item.
+The function \fBitem_name\fP returns the name part of the given item.
.br
-The function \fBitem_description\fR returns the description part of the given
+The function \fBitem_description\fP returns the description part of the given
item.
.SH RETURN VALUE
-These routines return a pointer (which may be \fBNULL\fR).
+These routines return a pointer (which may be \fBNULL\fP).
They do not set \fBerrno\fP.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
.SH PORTABILITY
These routines emulate the System V menu library.
They were not supported on Version 7 or BSD versions.
.SH AUTHORS
Juergen Pfeifer.
Manual pages and adaptation for new curses by Eric S. Raymond.
+.SH SEE ALSO
+\fB\%curses\fP(3X),
+\fB\%menu\fP(3X)
diff --git a/man/mitem_new.3x b/man/mitem_new.3x
index ce52044f1280..66bd29bce3a8 100644
--- a/man/mitem_new.3x
+++ b/man/mitem_new.3x
@@ -1,6 +1,5 @@
-'\" t
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2010,2015 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,21 +27,22 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: mitem_new.3x,v 1.19 2020/10/18 00:37:03 tom Exp $
-.TH mitem_new 3X ""
+.\" $Id: mitem_new.3x,v 1.36 2024/03/16 15:35:01 tom Exp $
+.TH mitem_new 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
\fBnew_item\fP,
-\fBfree_item\fR \- create and destroy menu items
+\fBfree_item\fP \-
+create and destroy menu items
.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.sp
-\fBITEM *new_item(const char *\fP\fIname\fP\fB, const char *\fP\fIdescription\fP\fB);\fP
-.br
-\fBint free_item(ITEM *\fP\fIitem\fP\fB);\fP
-.br
+.nf
+\fB#include <menu.h>
+.PP
+\fBITEM *new_item(const char *\fIname\fP, const char *\fIdescription\fP);
+\fBint free_item(ITEM *\fIitem\fP);
+.fi
.SH DESCRIPTION
-The function \fBnew_item\fR allocates a new item and initializes it from the
-\fBname\fR and \fBdescription\fR pointers.
+The function \fBnew_item\fP allocates a new item and initializes it from the
+\fBname\fP and \fBdescription\fP pointers.
Please notice that the item stores
only the pointers to the name and description.
Those pointers must be valid
@@ -50,12 +50,12 @@ during the lifetime of the item.
So you should be very careful with names
or descriptions allocated on the stack of some routines.
.br
-The function \fBfree_item\fR de-allocates an item.
+The function \fBfree_item\fP de-allocates an item.
Please notice that it
is the responsibility of the application to release the memory for the
name or the description of the item.
.SH RETURN VALUE
-The function \fBnew_item\fR returns \fBNULL\fR on error.
+The function \fBnew_item\fP returns \fBNULL\fP on error.
It sets \fBerrno\fP according to the function's failure:
.TP 5
.B E_BAD_ARGUMENT
@@ -64,7 +64,7 @@ Routine detected an incorrect or out-of-range argument.
.B E_SYSTEM_ERROR
System error occurred, e.g., malloc failure.
.PP
-The function \fBfree_item\fR returns one of the following:
+The function \fBfree_item\fP returns one of the following:
.TP 5
.B E_OK
The routine succeeded.
@@ -76,12 +76,7 @@ Routine detected an incorrect or out-of-range argument.
Item is connected to a menu.
.TP 5
.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR(3)).
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
+System error occurred (see \fBerrno\fP(3)).
.SH PORTABILITY
These routines emulate the System V menu library.
They were not supported on
@@ -89,3 +84,6 @@ Version 7 or BSD versions.
.SH AUTHORS
Juergen Pfeifer.
Manual pages and adaptation for new curses by Eric S. Raymond.
+.SH SEE ALSO
+\fB\%curses\fP(3X),
+\fB\%menu\fP(3X)
diff --git a/man/mitem_opts.3x b/man/mitem_opts.3x
index 105f9de97a42..5a86516f5a24 100644
--- a/man/mitem_opts.3x
+++ b/man/mitem_opts.3x
@@ -1,6 +1,5 @@
-'\" t
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2010,2015 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,53 +27,48 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: mitem_opts.3x,v 1.16 2020/10/17 23:52:26 tom Exp $
-.TH mitem_opts 3X ""
+.\" $Id: mitem_opts.3x,v 1.33 2024/03/16 15:35:01 tom Exp $
+.TH mitem_opts 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
\fBset_item_opts\fP,
\fBitem_opts_on\fP,
\fBitem_opts_off\fP,
-\fBitem_opts\fR \- set and get menu item options
+\fBitem_opts\fP \-
+set and get menu item options
.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.sp
-\fBint set_item_opts(ITEM *\fP\fIitem\fP\fB, Item_Options \fP\fIopts\fP\fB);\fP
-.br
-\fBItem_Options item_opts(const ITEM *\fP\fIitem\fP\fB);\fP
-.sp
-\fBint item_opts_on(ITEM *\fP\fIitem\fP\fB, Item_Options \fP\fIopts\fP\fB);\fP
-.br
-\fBint item_opts_off(ITEM *\fP\fIitem\fP\fB, Item_Options \fP\fIopts\fP\fB);\fP
-.br
+.nf
+\fB#include <menu.h>
+.PP
+\fBint set_item_opts(ITEM *\fIitem\fP, Item_Options \fIopts\fP);
+\fBItem_Options item_opts(const ITEM *\fIitem\fP);
+.PP
+\fBint item_opts_on(ITEM *\fIitem\fP, Item_Options \fIopts\fP);
+\fBint item_opts_off(ITEM *\fIitem\fP, Item_Options \fIopts\fP);
+.fi
.SH DESCRIPTION
-The function \fBset_item_opts\fR sets all the given item's option bits (menu
+The function \fBset_item_opts\fP sets all the given item's option bits (menu
option bits may be logically-OR'ed together).
.PP
-The function \fBitem_opts_on\fR turns on the given option bits, and leaves
+The function \fBitem_opts_on\fP turns on the given option bits, and leaves
others alone.
.PP
-The function \fBitem_opts_off\fR turns off the given option bits, and leaves
+The function \fBitem_opts_off\fP turns off the given option bits, and leaves
others alone.
.PP
-The function \fBitem_opts\fR returns the item's current option bits.
+The function \fBitem_opts\fP returns the item's current option bits.
.PP
-There is only one defined option bit mask, \fBO_SELECTABLE\fR. When this is
+There is only one defined option bit mask, \fBO_SELECTABLE\fP. When this is
on, the item may be selected during menu processing.
This option defaults
to on.
.SH RETURN VALUE
-Except for \fBitem_opts\fR, each routine returns one of the following:
+Except for \fBitem_opts\fP, each routine returns one of the following:
.TP 5
.B E_OK
The routine succeeded.
.TP 5
.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR(3)).
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
+System error occurred (see \fBerrno\fP(3)).
.SH PORTABILITY
These routines emulate the System V menu library.
They were not supported on
@@ -82,3 +76,6 @@ Version 7 or BSD versions.
.SH AUTHORS
Juergen Pfeifer.
Manual pages and adaptation for new curses by Eric S. Raymond.
+.SH SEE ALSO
+\fB\%curses\fP(3X),
+\fB\%menu\fP(3X)
diff --git a/man/mitem_userptr.3x b/man/mitem_userptr.3x
index 3c3feb26883a..f0eab8bd8058 100644
--- a/man/mitem_userptr.3x
+++ b/man/mitem_userptr.3x
@@ -1,6 +1,5 @@
-'\" t
.\"***************************************************************************
-.\" Copyright 2018,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2010,2015 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,34 +27,29 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: mitem_userptr.3x,v 1.17 2020/10/18 00:36:16 tom Exp $
-.TH mitem_userptr 3X ""
+.\" $Id: mitem_userptr.3x,v 1.34 2024/03/16 15:35:01 tom Exp $
+.TH mitem_userptr 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
\fBset_item_userptr\fP,
-\fBitem_userptr\fR \- associate application data with a menu item
+\fBitem_userptr\fP \-
+associate application data with a menu item
.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.sp
-\fBint set_item_userptr(ITEM *\fP\fIitem\fP\fB, void *\fP\fIuserptr\fP\fB);\fP
-.br
-\fBvoid *item_userptr(const ITEM *\fP\fIitem\fP\fB);\fP
-.br
+.nf
+\fB#include <menu.h>
+.PP
+\fBint set_item_userptr(ITEM *\fIitem\fP, void *\fIuserptr\fP);
+\fBvoid *item_userptr(const ITEM *\fIitem\fP);
+.fi
.SH DESCRIPTION
Every menu item has a field that can be used to hold application-specific data
(that is, the menu-driver code leaves it alone).
These functions get and set
that field.
.SH RETURN VALUE
-The function \fBitem_userptr\fR returns a pointer (possibly \fBNULL\fR).
+The function \fBitem_userptr\fP returns a pointer (possibly \fBNULL\fP).
It does not set \fBerrno\fP.
.PP
The \fBset_item_userptr\fP always returns \fBE_OK\fP (success).
-.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
.SH PORTABILITY
These routines emulate the System V menu library.
They were not supported on
@@ -66,3 +60,6 @@ We chose not to leave it as a char pointer for SVr4 compatibility.
.SH AUTHORS
Juergen Pfeifer.
Manual pages and adaptation for new curses by Eric S. Raymond.
+.SH SEE ALSO
+\fB\%curses\fP(3X),
+\fB\%menu\fP(3X)
diff --git a/man/mitem_value.3x b/man/mitem_value.3x
index 3dc20f1a3c4f..daa383dae6bd 100644
--- a/man/mitem_value.3x
+++ b/man/mitem_value.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2010,2015 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,43 +27,39 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: mitem_value.3x,v 1.15 2020/10/17 23:53:24 tom Exp $
-.TH mitem_value 3X ""
+.\" $Id: mitem_value.3x,v 1.32 2024/03/16 15:35:01 tom Exp $
+.TH mitem_value 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
\fBset_item_value\fP,
-\fBitem_value\fP \- set and get menu item values
+\fBitem_value\fP \-
+set and get menu item values
.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.sp
-\fBint set_item_value(ITEM *\fP\fIitem\fP\fB, bool \fP\fIvalue\fP\fB);\fP
-.br
-\fBbool item_value(const ITEM *\fP\fIitem\fP\fB);\fP
-.br
+.nf
+\fB#include <menu.h>
+.PP
+\fBint set_item_value(ITEM *\fIitem\fP, bool \fIvalue\fP);
+\fBbool item_value(const ITEM *\fIitem\fP);
+.fi
.SH DESCRIPTION
-If you turn off the menu option \fBO_ONEVALUE\fR (e.g., with
-\fBset_menu_opts\fR or \fBmenu_opts_off\fR; see \fBmenu_opts\fR(3X)), the menu
+If you turn off the menu option \fBO_ONEVALUE\fP (e.g., with
+\fBset_menu_opts\fP or \fBmenu_opts_off\fP; see \fBmenu_opts\fP(3X)), the menu
becomes multi-valued; that is, more than one item may simultaneously be
selected.
.PP
-In a multi_valued menu, you can used \fBset_item_value\fR to select the
-given menu item (second argument \fBTRUE\fR) or deselect it (second argument
-\fBFALSE\fR).
+In a multi_valued menu, you can used \fBset_item_value\fP to select the
+given menu item (second argument \fBTRUE\fP) or deselect it (second argument
+\fBFALSE\fP).
.SH RETURN VALUE
-The function \fBset_item_value\fR returns one of the following:
+The function \fBset_item_value\fP returns one of the following:
.TP 5
.B E_OK
The routine succeeded.
.TP 5
.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR(3)).
+System error occurred (see \fBerrno\fP(3)).
.TP 5
.B E_REQUEST_DENIED
The menu driver could not process the request.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
.SH PORTABILITY
These routines emulate the System V menu library.
They were not supported on
@@ -71,3 +67,6 @@ Version 7 or BSD versions.
.SH AUTHORS
Juergen Pfeifer.
Manual pages and adaptation for new curses by Eric S. Raymond.
+.SH SEE ALSO
+\fB\%curses\fP(3X),
+\fB\%menu\fP(3X)
diff --git a/man/mitem_visible.3x b/man/mitem_visible.3x
index 5e6d1682dd0e..c28c603faeb0 100644
--- a/man/mitem_visible.3x
+++ b/man/mitem_visible.3x
@@ -1,6 +1,5 @@
-'\" t
.\"***************************************************************************
-.\" Copyright 2018,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998,2010 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,24 +27,21 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: mitem_visible.3x,v 1.10 2020/10/17 23:53:55 tom Exp $
-.TH mitem_visible 3X ""
+.\" $Id: mitem_visible.3x,v 1.27 2024/03/16 15:35:01 tom Exp $
+.TH mitem_visible 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
-\fBmitem_visible\fR \- check visibility of a menu item
+\fBitem_visible\fP \-
+check visibility of a menu item
.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.sp
-\fBbool item_visible(const ITEM *\fP\fIitem\fP\fB);\fP
-.br
+.nf
+\fB#include <menu.h>
+.PP
+\fBbool item_visible(const ITEM *\fIitem\fP);
+.fi
.SH DESCRIPTION
A menu item is visible when it is in the portion of a posted menu that
is mapped onto the screen (if the menu is scrollable, in particular, this
portion will be smaller than the whole menu).
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
.SH PORTABILITY
These routines emulate the System V menu library.
They were not supported on
@@ -53,3 +49,6 @@ Version 7 or BSD versions.
.SH AUTHORS
Juergen Pfeifer.
Manual pages and adaptation for new curses by Eric S. Raymond.
+.SH SEE ALSO
+\fB\%curses\fP(3X),
+\fB\%menu\fP(3X)
diff --git a/man/ncurses.3x b/man/ncurses.3x
index 77083c796f47..9aaa7adf54bf 100644
--- a/man/ncurses.3x
+++ b/man/ncurses.3x
@@ -1,6 +1,6 @@
'\" t
.\"***************************************************************************
-.\" Copyright 2018-2020,2021 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2015,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,1232 +28,1691 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: ncurses.3x,v 1.152 2021/01/09 11:07:55 tom Exp $
-.hy 0
-.TH ncurses 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: ncurses.3x,v 1.214 2024/04/27 17:55:43 tom Exp $
+.TH ncurses 3X 2024-04-27 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
-.de NS
-.ie n .sp
-.el .sp .5
-.ie n .in +4
-.el .in +2
-.nf
-.ft C \" Courier
-..
-.de NE
-.fi
-.ft R
-.ie n .in -4
-.el .in -2
+.
+.\" Add supplementary paragraph tag on its own line after TP.
+.\" Adapted from TQ (which would produce mandoc warnings).
+.de tQ
+. br
+. ns
+. TP
..
-.ds n 5
+.
.ds d @TERMINFO@
.SH NAME
-\fBncurses\fR \- CRT screen handling and optimization package
+\fB\%ncurses\fP \-
+character-cell terminal interface with optimized output
.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.br
+.nf
+\fB#include <curses.h>
+.fi
.SH DESCRIPTION
-The \fBncurses\fR library routines give the user a terminal-independent method
-of updating character screens with reasonable optimization.
-This implementation is \*(``new curses\*('' (ncurses) and
-is the approved replacement for
-4.4BSD classic curses, which has been discontinued.
-This describes \fBncurses\fR
-version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
-.PP
-The \fBncurses\fR library emulates the curses library of
-System V Release 4 UNIX,
-and XPG4 (X/Open Portability Guide) curses (also known as XSI curses).
-XSI stands for X/Open System Interfaces Extension.
-The \fBncurses\fR library is freely redistributable in source form.
-Differences from the SVr4
-curses are summarized under the
-\fBEXTENSIONS\fP and \fBPORTABILITY\fP sections below and
-described in detail in the respective
-\fBEXTENSIONS\fP, \fBPORTABILITY\fP and \fBBUGS\fP sections
-of individual man pages.
-.PP
-The \fBncurses\fR library also provides many useful extensions,
-i.e., features which cannot be implemented by a simple add-on library
-but which require access to the internals of the library.
-.PP
-A program using these routines must be linked with the \fB\-lncurses\fR option,
-or (if it has been generated) with the debugging library \fB\-lncurses_g\fR.
-(Your system integrator may also have installed these libraries under
-the names \fB\-lcurses\fR and \fB\-lcurses_g\fR.)
-The ncurses_g library generates trace logs (in a file called 'trace' in the
-current directory) that describe curses actions.
-See also the section on \fBALTERNATE CONFIGURATIONS\fP.
-.PP
-The \fBncurses\fR package supports: overall screen, window and pad
-manipulation; output to windows and pads; reading terminal input; control over
-terminal and \fBcurses\fR input and output options; environment query
-routines; color manipulation; use of soft label keys; terminfo capabilities;
-and access to low-level terminal-manipulation routines.
-.SS Initialization
-.PP
-The library uses the locale which the calling program has initialized.
-That is normally done with \fBsetlocale\fP:
-.NS
-\fBsetlocale(LC_ALL, "");\fP
-.NE
-.PP
-If the locale is not initialized,
-the library assumes that characters are printable as in ISO\-8859\-1,
+The \*(``new curses\*('' library offers the programmer a
+terminal-independent means of reading keyboard and mouse input and
+updating character-cell terminals with output optimized to minimize
+screen updates.
+.I \%ncurses
+replaces the
+.I curses
+libraries from
+System V Release 4 Unix (\*(``SVr4\*('')
+and
+4.4BSD Unix,
+the development of which ceased in the 1990s.
+This document describes
+.I \%ncurses
+version @NCURSES_MAJOR@.@NCURSES_MINOR@
+(patch @NCURSES_PATCH@).
+.PP
+.I \%ncurses
+permits control of the terminal screen's contents;
+abstraction and subdivision thereof with
+.I windows
+and
+.IR pads ;
+the reading of terminal input;
+control of terminal input and output options;
+environment query routines;
+color manipulation;
+the definition and use of
+.I "soft label"
+keys;
+.I \%term\%info
+capability access;
+a
+.I termcap
+compatibility interface;
+and an abstraction of the system's API for manipulating the terminal
+(such as \fI\%termios\fP(3)).
+.PP
+.I \%ncurses
+implements the standard interface described by
+X/Open Curses Issue\ 7.
+In many behavioral details not standardized by X/Open,
+.I \%ncurses
+emulates the
+.I curses
+library of SVr4 and provides numerous useful extensions.
+.PP
+.I \%ncurses
+man pages employ several sections to clarify matters of usage and
+interoperability with other
+.I curses
+implementations.
+.bP
+\*(``NOTES\*('' describes issues and caveats of which any user of the
+.I \%ncurses
+API should be aware,
+such as limitations on the size of an underlying integral type or the
+availability of a preprocessor macro exclusive of a function definition
+(which prevents its address from being taken).
+This section also describes implementation details that will be
+significant to the programmer but which are not standardized.
+.bP
+\*(``EXTENSIONS\*('' presents
+.I \%ncurses
+innovations beyond the X/Open Curses standard and/or the SVr4
+.I curses
+implementation.
+They are termed
+.I extensions
+to indicate that they cannot be implemented solely by using the library
+API,
+but require access to the library's internal state.
+.bP
+\*(``PORTABILITY\*('' discusses matters
+(beyond the exercise of extensions)
+that should be considered when writing to a
+.I curses
+standard,
+or for multiple implementations.
+.bP
+\*(``HISTORY\*('' examines points of detail in
+.I \%ncurses
+and other
+.I curses
+implementations over the decades of their development,
+particularly where precedent or inertia have frustrated better design
+(and,
+in a few cases,
+where such inertia has been overcome).
+.PP
+A
+.I curses
+application must be linked with the library;
+use the
+.B \-lncurses
+option to your compiler or linker.
+A debugging version of the library may be available;
+if so,
+link with it using
+.BR \-lncurses_g .
+(Your system integrator may have installed these libraries such that you
+can use the options
+.B \-lcurses
+and
+.BR \-lcurses_g ,
+respectively.)
+The
+.I \%ncurses_g
+library generates trace logs
+(in a file called
+.I \%trace
+in the current directory)
+that describe
+.I \%ncurses
+actions.
+See section \*(``ALTERNATE CONFIGURATIONS\*('' below.
+.SS "Application Structure"
+A
+.I curses
+application uses information from the system locale;
+\fI\%setlocale\fP(3) prepares it for
+.I curses
+library calls.
+.PP
+.RS 4
+.EX
+setlocale(LC_ALL, "");
+.EE
+.RE
+.PP
+If the locale is not thus initialized,
+the library assumes that characters are printable as in ISO\ 8859-1,
to work with certain legacy programs.
-You should initialize the locale and not rely on specific details of
-the library when the locale has not been setup.
-.PP
-The function \fBinitscr\fR or \fBnewterm\fR
-must be called to initialize the library
-before any of the other routines that deal with windows
-and screens are used.
-The routine \fBendwin\fR(3X) must be called before exiting.
-.PP
-To get character-at-a-time input without echoing (most
-interactive, screen oriented programs want this), the following
-sequence should be used:
-.NS
-\fBinitscr(); cbreak(); noecho();\fR
-.NE
-.PP
-Most programs would additionally use the sequence:
-.NS
-\fBintrflush(stdscr, FALSE);\fR
-\fBkeypad(stdscr, TRUE);\fR
-.NE
-.PP
-Before a \fBcurses\fR program is run, the tab stops of the terminal
-should be set and its initialization strings, if defined, must be output.
-This can be done by executing the \fB@TPUT@ init\fR command
-after the shell environment variable \fBTERM\fR has been exported.
-\fB@TSET@(1)\fR is usually responsible for doing this.
-[See \fBterminfo\fR(\*n) for further details.]
-.SS Datatypes
-.PP
-The \fBncurses\fR library permits manipulation of data structures,
-called \fIwindows\fR, which can be thought of as two-dimensional
-arrays of characters representing all or part of a CRT screen.
-A default window called \fBstdscr\fR, which is the size of the terminal
-screen, is supplied.
-Others may be created with \fBnewwin\fR.
-.PP
-Note that \fBcurses\fR does not handle overlapping windows, that's done by
-the \fBpanel\fR(3X) library.
-This means that you can either use
-\fBstdscr\fR or divide the screen into tiled windows and not using
-\fBstdscr\fR at all.
-Mixing the two will result in unpredictable, and undesired, effects.
-.PP
-Windows are referred to by variables declared as \fBWINDOW *\fR.
-These data structures are manipulated with routines described here and
-elsewhere in the \fBncurses\fR manual pages.
-Among those, the most basic
-routines are \fBmove\fR and \fBaddch\fR.
-More general versions of
-these routines are included with names beginning with \fBw\fR,
-allowing the user to specify a window.
-The routines not beginning
-with \fBw\fR affect \fBstdscr\fR.
-.PP
-After using routines to manipulate a window, \fBrefresh\fR(3X) is called,
-telling \fBcurses\fR to make the user's CRT screen look like
-\fBstdscr\fR.
-The characters in a window are actually of type
-\fBchtype\fR, (character and attribute data) so that other information
-about the character may also be stored with each character.
-.PP
-Special windows called \fIpads\fR may also be manipulated.
-These are windows
-which are not constrained to the size of the screen and whose contents need not
-be completely displayed.
-See \fBcurs_pad\fR(3X) for more information.
-.PP
-In addition to drawing characters on the screen, video attributes and colors
-may be supported, causing the characters to show up in such modes as
-underlined, in reverse video, or in color on terminals that support such
-display enhancements.
-Line drawing characters may be specified to be output.
-On input, \fBcurses\fR is also able to translate arrow and function keys that
-transmit escape sequences into single values.
-The video attributes, line
-drawing characters, and input values use names, defined in \fB<curses.h>\fR,
-such as \fBA_REVERSE\fR, \fBACS_HLINE\fR, and \fBKEY_LEFT\fR.
-.SS Environment variables
-.PP
-If the environment variables \fBLINES\fR and \fBCOLUMNS\fR are set, or if the
-program is executing in a window environment, line and column information in
-the environment will override information read by \fIterminfo\fR.
-This would affect a program running in an AT&T 630 layer,
-for example, where the size of a
-screen is changeable (see \fBENVIRONMENT\fR).
-.PP
-If the environment variable \fBTERMINFO\fR is defined, any program using
-\fBcurses\fR checks for a local terminal definition before checking in the
-standard place.
-For example, if \fBTERM\fR is set to \fBatt4424\fR, then the
-compiled terminal definition is found in
-.NS
-\fB\*d/a/att4424\fR.
-.NE
-.PP
-(The \fBa\fR is copied from the first letter of \fBatt4424\fR to avoid
-creation of huge directories.) However, if \fBTERMINFO\fR is set to
-\fB$HOME/myterms\fR, \fBcurses\fR first checks
-.NS
-\fB$HOME/myterms/a/att4424\fR,
-.NE
-.PP
-and if that fails, it then checks
-.NS
-\fB\*d/a/att4424\fR.
-.NE
-.PP
-This is useful for developing experimental definitions or when write
-permission in \fB\*d\fR is not available.
-.PP
-The integer variables \fBLINES\fR and \fBCOLS\fR are defined in
-\fB<curses.h>\fR and will be filled in by \fBinitscr\fR with the size of the
-screen.
-The constants \fBTRUE\fR and \fBFALSE\fR have the values \fB1\fR and
-\fB0\fR, respectively.
-.PP
-The \fBcurses\fR routines also define the \fBWINDOW *\fR variable \fBcurscr\fR
-which is used for certain low-level operations like clearing and redrawing a
-screen containing garbage.
-The \fBcurscr\fR can be used in only a few routines.
-.\"
-.SS Routine and Argument Names
-Many \fBcurses\fR routines have two or more versions.
-The routines prefixed with \fBw\fR require a window argument.
-The routines prefixed with \fBp\fR require a pad argument.
-Those without a prefix generally use \fBstdscr\fR.
-.PP
-The routines prefixed with \fBmv\fR require a \fIy\fR and \fIx\fR
-coordinate to move to before performing the appropriate action.
-The \fBmv\fR routines imply a call to \fBmove\fR before the call to the
-other routine.
-The coordinate \fIy\fR always refers to the row (of
-the window), and \fIx\fR always refers to the column.
-The upper left-hand corner is always (0,0), not (1,1).
-.PP
-The routines prefixed with \fBmvw\fR take both a window argument and
-\fIx\fR and \fIy\fR coordinates.
-The window argument is always specified before the coordinates.
-.PP
-In each case, \fIwin\fR is the window affected, and \fIpad\fR is the
-pad affected; \fIwin\fR and \fIpad\fR are always pointers to type
-\fBWINDOW\fR.
-.PP
-Option setting routines require a Boolean flag \fIbf\fR with the value
-\fBTRUE\fR or \fBFALSE\fR; \fIbf\fR is always of type \fBbool\fR.
-Most of the data types used in the library routines,
-such as \fBWINDOW\fR, \fBSCREEN\fR, \fBbool\fR, and \fBchtype\fR
-are defined in \fB<curses.h>\fR.
-Types used for the terminfo routines such as
-\fBTERMINAL\fR are defined in \fB<term.h>\fR.
-.PP
-This manual page describes functions which may appear in any configuration
+You should initialize the locale;
+do not expect consistent behavior from the library when the locale has
+not been set up.
+.PP
+\fB\%initscr\fP(3X) or \fB\%newterm\fP(3X)
+must be called to initialize
+.I curses
+before use of any functions that deal with windows and screens.
+.PP
+To get character-at-a-time input without echoing\(emmost interactive,
+screen-oriented programs want this\(emuse the following sequence.
+.PP
+.RS 4
+.EX
+initscr(); cbreak(); noecho();
+.EE
+.RE
+.PP
+Most applications perform further setup as follows.
+.PP
+.RS 4
+.EX
+intrflush(stdscr, FALSE);
+keypad(stdscr, TRUE);
+.EE
+.RE
+.PP
+A
+.I curses
+program then often enters an event loop of some sort.
+Call \fB\%endwin\fP(3X) before exiting.
+.SS Overview
+A
+.I curses
+library abstracts the terminal screen by representing all or part of it
+as a
+.I \%WINDOW
+data structure.
+A
+.I window
+is a rectangular grid of character cells,
+addressed by row and column coordinates
+.RI ( y ,
+.IR x ),
+with the upper left corner as (0, 0).
+A window called
+.BR \%stdscr ,
+the same size as the terminal screen,
+is always available.
+Create others with \fB\%newwin\fP(3X).
+.PP
+A
+.I curses
+library does not manage overlapping windows
+(but see below).
+You can either use
+.B \%stdscr
+to manage one screen-filling window,
+or tile the screen into non-overlapping windows and not use
+.B \%stdscr
+at all.
+Mixing the two approaches will result in unpredictable and undesired
+effects.
+.PP
+Functions permit manipulation of a window and the
+.I cursor
+identifying the cell within it at which the next output operation will
+occur.
+Among those,
+the most basic are \fB\%move\fP(3X) and \fB\%addch\fP(3X):
+these place the cursor and write a character to
+.BR \%stdscr ,
+respectively.
+.PP
+Frequent changes to the terminal screen can cause unpleasant flicker or
+inefficient use of the communication channel to the device,
+so the library does not generally update it automatically.
+Therefore,
+after using
+.I curses
+functions to accumulate a set of desired updates that make sense to
+present together,
+call \fB\%refresh\fP(3X) to tell the library to make the user's screen
+look like \fBstdscr\fP.
+The library
+.\" X/Open Curses Issue 7 assumes some optimization will be done, but
+.\" does not mandate it in any way.
+.I optimizes
+its output by computing a minimal number of operations to mutate the
+screen from its state at the previous refresh to the new one.
+Effective optimization demands accurate information about the terminal
+device:
+the management of such information is the province of the
+\fB\%terminfo\fP(3X) API,
+a feature of every standard
+.I curses
+implementation.
+.PP
+Special windows called
+.I pads
+may also be manipulated.
+These are windows that are not constrained to the size of the terminal
+screen and whose contents need not be completely displayed.
+See \fB\%curs_pad\fP(3X).
+.PP
+In addition to drawing characters on the screen,
+rendering attributes and colors may be supported,
+causing the characters to show up in such modes as underlined,
+in reverse video,
+or in color on terminals that support such display enhancements.
+See \fB\%curs_attr\fP(3X).
+.PP
+.I curses
+predefines constants for a small set of forms-drawing graphics
+corresponding to the DEC Alternate Character Set (ACS),
+a feature of VT100 and other terminals.
+See \fB\%waddch\fP(3X).
+.PP
+.I curses
+is implemented using the operating system's terminal driver;
+keystroke events are received not as scan codes but as byte sequences.
+Graphical keycaps
+(alphanumeric and punctuation keys,
+and the space)
+appear as-is.
+Everything else,
+including the tab,
+enter/return,
+keypad,
+arrow,
+and function keys,
+appears as a control character or a multibyte
+.I "escape sequence."
+.I curses
+translates these into unique
+.I "key codes."
+See \fB\%getch\fP(3X).
+.PP
+.I \%ncurses
+provides reimplementations of the SVr4 \fBpanel\fP(3X), \fBform\fP(3X),
+and \fBmenu\fP(3X) libraries to ease construction of user interfaces
+with
+.IR curses .
+.SS "Initialization"
+The selection of an appropriate value of
+.I TERM
+in the process environment is essential to correct
+.I curses
+and
+.I \%term\%info
+library operation.
+A well-configured system selects a correct
+.I TERM
+value automatically;
+\fB\%tset\fP(1) may assist with troubleshooting exotic situations.
+.PP
+If you change the terminal type,
+export the
+.I TERM
+environment variable in the shell,
+then run \fB\%tset\fP(1) or the
+.RB \*(`` "@TPUT@ init" \*(''
+command.
+See subsection \*(``Tabs and Initialization\*('' of \fB\%terminfo\fP(5).
+.PP
+If the environment variables
+.I \%LINES
+and
+.I \%COLUMNS
+are set,
+or if the
+.I curses
+program is executing in a graphical windowing environment,
+the information obtained thence overrides that obtained by
+.IR \%term\%info .
+An
+.I \%ncurses
+extension supports resizable terminals;
+see \fB\%wresize\fP(3X).
+.PP
+If the environment variable
+.I \%TERMINFO
+is defined,
+a
+.I curses
+program checks first for a terminal type description in the location it
+identifies.
+.I \%TERMINFO
+is useful for developing experimental type descriptions or when write
+permission to
+.I \%\*d
+is not available.
+.PP
+See section \*(``ENVIRONMENT\*('' below.
+.SS "Naming Conventions"
+.I curses
+offers many functions in variant forms using a regular set of
+alternatives to the name of an elemental one.
+Those prefixed with \*(``w\*('' require a
+.I \%WINDOW
+pointer argument;
+those with a \*(``mv\*('' prefix first perform cursor movement using
+\fB\%wmove\fP(3X);
+a \*(``mvw\*('' prefix indicates both.
+The \*(``w\*('' function is typically the elemental one;
+the removal of this prefix usually indicates operation on
+.BR \%stdscr .
+.PP
+Four functions prefixed with \*(``p\*('' require a pad argument.
+.PP
+In function synopses,
+.I \%ncurses
+man pages apply the following names to parameters.
+.PP
+.TS
+center;
+Li L.
+bf \fIbool\fP (\fBTRUE\fP or \fBFALSE\fP)
+c a \fIchar\fP or \fIint\fP
+ch a \fIchtype\fP
+wc a \fIwchar_t\fP or \fIwint_t\fP
+wch a \fIcchar_t\fP
+win pointer to a \fIWINDOW\fP
+pad pointer to a \fIWINDOW\fP that is a pad
+.TE
+.SS "Wide and Non-wide Character Configurations"
+This manual page describes functions that appear in any configuration
of the library.
-There are two common configurations of the library:
-.RS 3
-.TP 5
-.I ncurses
-the \*(``normal\*('' library, which handles 8-bit characters.
-The normal (8-bit) library stores characters combined with attributes
-in \fBchtype\fP data.
-.IP
-Attributes alone (no corresponding character) may be stored in \fBchtype\fP
-or the equivalent \fBattr_t\fP data.
-In either case, the data is stored in something like an integer.
+There are two common configurations;
+see section \*(``ALTERNATE CONFIGURATIONS\*('' below.
+.TP 10 \" "ncursesw" + 2n
+.I \%ncurses
+is the library in its \*(``non-wide\*('' configuration,
+handling only eight-bit characters.
+It stores a character combined with attributes in a
+.I \%chtype
+datum,
+which is often an alias of
+.IR int .
.IP
-Each cell (row and column) in a \fBWINDOW\fP is stored as a \fBchtype\fP.
-.TP 5
-.I ncursesw
-the so-called \*(``wide\*('' library, which handles multibyte characters
-(see the section on \fBALTERNATE CONFIGURATIONS\fP).
-The \*(``wide\*('' library includes all of the calls
-from the \*(``normal\*('' library.
-It adds about one third more calls using data types which store
-multibyte characters:
-.RS 5
-.TP 5
-.B cchar_t
-corresponds to \fBchtype\fP.
-However it is a structure, because more data is stored than can fit into
-an integer.
-The characters are large enough to require a full integer value \- and there
-may be more than one character per cell.
-The video attributes and color are stored in separate fields of the structure.
+Attributes alone
+(with no corresponding character)
+can be stored in variables of
+.I \%chtype
+or
+.I \%attr_t
+type.
+In either case,
+they are represented as an integral bit mask.
.IP
-Each cell (row and column) in a \fBWINDOW\fP is stored as a \fBcchar_t\fP.
-.IP
-The \fBsetcchar\fP(3X) and \fBgetcchar\fP(3X)
-functions store and retrieve the data from
-a \fBcchar_t\fP structure.
-.TP 5
-.B wchar_t
-stores a \*(``wide\*('' character.
-Like \fBchtype\fP, this may be an integer.
-.TP 5
-.B wint_t
-stores a \fBwchar_t\fP or \fBWEOF\fP \- not the same, though both may have
-the same size.
+Each cell of a
+.I \%WINDOW
+is stored as a
+.IR \%chtype .
+.TP 10
+.I \%ncursesw
+is the library in its \*(``wide\*('' configuration,
+which handles character encodings requiring a larger data type than
+.I \%char
+(a byte-sized type)
+can represent.
+It adds about one third more calls using additional data types that
+can store such
+.I multibyte
+characters.
+.RS 10 \" same as foregoing tag width
+.TP 9 \" "cchar_t" + 2n
+.I \%cchar_t
+corresponds to the non-wide configuration's
+.IR \%chtype .
+It always a structure type,
+because it stores more data than fit into a standard scalar type.
+A character code may not be representable as a
+.IR \%char ,
+and moreover more than one character may occupy a cell
+(as with accent marks and other diacritics).
+Each character is of type
+.IR \%wchar_t ;
+a complex character contains one spacing character and zero or more
+non-spacing characters
+(see below).
+Attributes and color data are stored in separate fields of the
+structure,
+not combined as in
+.IR \%chtype .
+.PP
+Each cell of a
+.I \%WINDOW
+is stored as a
+.IR \%cchar_t .
+.PP
+\fB\%setcchar\fP(3X) and \fB\%getcchar\fP(3X)
+store and retrieve
+.I \%cchar_t
+data.
+The wide library API of
+.I \%ncurses
+depends on two data types standardized by ISO C95.
+.TP 9
+.I \%wchar_t
+stores a wide character.
+Like
+.IR \%chtype ,
+it may be an alias of
+.IR int .
+Depending on the character encoding,
+a wide character may be
+.IR spacing ,
+meaning that it occupies a character cell by itself and typically
+accompanies cursor advancement,
+or
+.IR non-spacing ,
+meaning that it occupies the same cell as a spacing character,
+is often regarded as a \*(``modifier\*('' of the base glyph with which
+it combines,
+and typically does not advance the cursor.
+.TP 9
+.I \%wint_t
+can store a
+.I \%wchar_t
+or the constant
+.BR \%WEOF ,
+analogously to the
+.IR int -sized
+character manipulation functions of ISO C and its constant
+.BR \%EOF .
.RE
.IP
-The \*(``wide\*('' library provides new functions which are analogous to
-functions in the \*(``normal\*('' library.
-There is a naming convention which relates many of the normal/wide variants:
-a \*(``_w\*('' is inserted into the name.
-For example, \fBwaddch\fP becomes \fBwadd_wch\fP.
-.RE
-.PP
+The wide library provides additional functions that complement those in
+the non-wide library where the size of the underlying character type is
+significant.
+A somewhat regular naming convention relates many of the wide variants
+to their non-wide counterparts;
+where a non-wide function name contains \*(``ch\*('' or \*(``str\*('',
+prefix it with \*(``_w\*('' to obtain the wide counterpart.
+For example,
+\fB\%waddch\fP becomes \fB\%wadd_wch\fP.
+(Exceptions that add only \*(``w\*('' comprise
+.BR \%addwstr ,
+.BR \%inwstr ,
+and their variants.)
+.IP
+This convention is inapplicable to some non-wide function names,
+so other transformations are used for the wide configuration:
+the window background management function \*(``bkgd\*('' becomes
+\*(``bkgrnd\*('';
+the window border-drawing and -clearing functions are suffixed with
+\*(``_set\*('';
+and character attribute manipulation functions like
+\*(``attron\*('' become \*(``attr_on\*(''.
.\"
-.SS Routine Name Index
-The following table lists the \fBcurses\fR routines provided in
-the \*(``normal\*('' and \*(``wide\*('' libraries and the names of
-the manual pages on which they are described.
-Routines flagged with \*(``*\*(''
-are ncurses-specific, not described by XPG4 or present in SVr4.
+.SS "Function Name Index"
+The following table lists the
+.I curses
+functions provided in the non-wide and wide APIs and the corresponding
+man pages that describe them.
+Those flagged with \*(``*\*(''
+are
+.IR \%ncurses "-specific,"
+neither described by X/Open Curses nor present in SVr4.
.PP
.TS
center tab(/);
-l l
l l .
-\fBcurses\fR Routine Name/Manual Page Name
-=
-COLOR_PAIR/\fBcurs_color\fR(3X)
-PAIR_NUMBER/\fBcurs_attr\fR(3X)
-add_wch/\fBcurs_add_wch\fR(3X)
-add_wchnstr/\fBcurs_add_wchstr\fR(3X)
-add_wchstr/\fBcurs_add_wchstr\fR(3X)
-addch/\fBcurs_addch\fR(3X)
-addchnstr/\fBcurs_addchstr\fR(3X)
-addchstr/\fBcurs_addchstr\fR(3X)
-addnstr/\fBcurs_addstr\fR(3X)
-addnwstr/\fBcurs_addwstr\fR(3X)
-addstr/\fBcurs_addstr\fR(3X)
-addwstr/\fBcurs_addwstr\fR(3X)
-alloc_pair/\fBnew_pair\fR(3X)*
-assume_default_colors/\fBdefault_colors\fR(3X)*
-attr_get/\fBcurs_attr\fR(3X)
-attr_off/\fBcurs_attr\fR(3X)
-attr_on/\fBcurs_attr\fR(3X)
-attr_set/\fBcurs_attr\fR(3X)
-attroff/\fBcurs_attr\fR(3X)
-attron/\fBcurs_attr\fR(3X)
-attrset/\fBcurs_attr\fR(3X)
-baudrate/\fBcurs_termattrs\fR(3X)
-beep/\fBcurs_beep\fR(3X)
-bkgd/\fBcurs_bkgd\fR(3X)
-bkgdset/\fBcurs_bkgd\fR(3X)
-bkgrnd/\fBcurs_bkgrnd\fR(3X)
-bkgrndset/\fBcurs_bkgrnd\fR(3X)
-border/\fBcurs_border\fR(3X)
-border_set/\fBcurs_border_set\fR(3X)
-box/\fBcurs_border\fR(3X)
-box_set/\fBcurs_border_set\fR(3X)
-can_change_color/\fBcurs_color\fR(3X)
-cbreak/\fBcurs_inopts\fR(3X)
-chgat/\fBcurs_attr\fR(3X)
-clear/\fBcurs_clear\fR(3X)
-clearok/\fBcurs_outopts\fR(3X)
-clrtobot/\fBcurs_clear\fR(3X)
-clrtoeol/\fBcurs_clear\fR(3X)
-color_content/\fBcurs_color\fR(3X)
-color_set/\fBcurs_attr\fR(3X)
-copywin/\fBcurs_overlay\fR(3X)
-curs_set/\fBcurs_kernel\fR(3X)
-curses_trace/\fBcurs_trace\fR(3X)*
-curses_version/\fBcurs_extend\fR(3X)*
-def_prog_mode/\fBcurs_kernel\fR(3X)
-def_shell_mode/\fBcurs_kernel\fR(3X)
-define_key/\fBdefine_key\fR(3X)*
-del_curterm/\fBcurs_terminfo\fR(3X)
-delay_output/\fBcurs_util\fR(3X)
-delch/\fBcurs_delch\fR(3X)
-deleteln/\fBcurs_deleteln\fR(3X)
-delscreen/\fBcurs_initscr\fR(3X)
-delwin/\fBcurs_window\fR(3X)
-derwin/\fBcurs_window\fR(3X)
-doupdate/\fBcurs_refresh\fR(3X)
-dupwin/\fBcurs_window\fR(3X)
-echo/\fBcurs_inopts\fR(3X)
-echo_wchar/\fBcurs_add_wch\fR(3X)
-echochar/\fBcurs_addch\fR(3X)
-endwin/\fBcurs_initscr\fR(3X)
-erase/\fBcurs_clear\fR(3X)
-erasechar/\fBcurs_termattrs\fR(3X)
-erasewchar/\fBcurs_termattrs\fR(3X)
-exit_curses/\fBcurs_memleaks\fR(3X)*
-exit_terminfo/\fBcurs_memleaks\fR(3X)*
-extended_color_content/\fBcurs_color\fR(3X)*
-extended_pair_content/\fBcurs_color\fR(3X)*
-extended_slk_color/\fBcurs_slk\fR(3X)*
-filter/\fBcurs_util\fR(3X)
-find_pair/\fBnew_pair\fR(3X)*
-flash/\fBcurs_beep\fR(3X)
-flushinp/\fBcurs_util\fR(3X)
-free_pair/\fBnew_pair\fR(3X)*
-get_wch/\fBcurs_get_wch\fR(3X)
-get_wstr/\fBcurs_get_wstr\fR(3X)
-getattrs/\fBcurs_attr\fR(3X)
-getbegx/\fBcurs_legacy\fR(3X)*
-getbegy/\fBcurs_legacy\fR(3X)*
-getbegyx/\fBcurs_getyx\fR(3X)
-getbkgd/\fBcurs_bkgd\fR(3X)
-getbkgrnd/\fBcurs_bkgrnd\fR(3X)
-getcchar/\fBcurs_getcchar\fR(3X)
-getch/\fBcurs_getch\fR(3X)
-getcurx/\fBcurs_legacy\fR(3X)*
-getcury/\fBcurs_legacy\fR(3X)*
-getmaxx/\fBcurs_legacy\fR(3X)*
-getmaxy/\fBcurs_legacy\fR(3X)*
-getmaxyx/\fBcurs_getyx\fR(3X)
-getmouse/\fBcurs_mouse\fR(3X)*
-getn_wstr/\fBcurs_get_wstr\fR(3X)
-getnstr/\fBcurs_getstr\fR(3X)
-getparx/\fBcurs_legacy\fR(3X)*
-getpary/\fBcurs_legacy\fR(3X)*
-getparyx/\fBcurs_getyx\fR(3X)
-getstr/\fBcurs_getstr\fR(3X)
-getsyx/\fBcurs_kernel\fR(3X)
-getwin/\fBcurs_util\fR(3X)
-getyx/\fBcurs_getyx\fR(3X)
-halfdelay/\fBcurs_inopts\fR(3X)
-has_colors/\fBcurs_color\fR(3X)
-has_ic/\fBcurs_termattrs\fR(3X)
-has_il/\fBcurs_termattrs\fR(3X)
-has_key/\fBcurs_getch\fR(3X)*
-has_mouse/\fBcurs_mouse\fR(3X)*
-hline/\fBcurs_border\fR(3X)
-hline_set/\fBcurs_border_set\fR(3X)
-idcok/\fBcurs_outopts\fR(3X)
-idlok/\fBcurs_outopts\fR(3X)
-immedok/\fBcurs_outopts\fR(3X)
-in_wch/\fBcurs_in_wch\fR(3X)
-in_wchnstr/\fBcurs_in_wchstr\fR(3X)
-in_wchstr/\fBcurs_in_wchstr\fR(3X)
-inch/\fBcurs_inch\fR(3X)
-inchnstr/\fBcurs_inchstr\fR(3X)
-inchstr/\fBcurs_inchstr\fR(3X)
-init_color/\fBcurs_color\fR(3X)
-init_extended_color/\fBcurs_color\fR(3X)*
-init_extended_pair/\fBcurs_color\fR(3X)*
-init_pair/\fBcurs_color\fR(3X)
-initscr/\fBcurs_initscr\fR(3X)
-innstr/\fBcurs_instr\fR(3X)
-innwstr/\fBcurs_inwstr\fR(3X)
-ins_nwstr/\fBcurs_ins_wstr\fR(3X)
-ins_wch/\fBcurs_ins_wch\fR(3X)
-ins_wstr/\fBcurs_ins_wstr\fR(3X)
-insch/\fBcurs_insch\fR(3X)
-insdelln/\fBcurs_deleteln\fR(3X)
-insertln/\fBcurs_deleteln\fR(3X)
-insnstr/\fBcurs_insstr\fR(3X)
-insstr/\fBcurs_insstr\fR(3X)
-instr/\fBcurs_instr\fR(3X)
-intrflush/\fBcurs_inopts\fR(3X)
-inwstr/\fBcurs_inwstr\fR(3X)
-is_cleared/\fBcurs_opaque\fR(3X)*
-is_idcok/\fBcurs_opaque\fR(3X)*
-is_idlok/\fBcurs_opaque\fR(3X)*
-is_immedok/\fBcurs_opaque\fR(3X)*
-is_keypad/\fBcurs_opaque\fR(3X)*
-is_leaveok/\fBcurs_opaque\fR(3X)*
-is_linetouched/\fBcurs_touch\fR(3X)
-is_nodelay/\fBcurs_opaque\fR(3X)*
-is_notimeout/\fBcurs_opaque\fR(3X)*
-is_pad/\fBcurs_opaque\fR(3X)*
-is_scrollok/\fBcurs_opaque\fR(3X)*
-is_subwin/\fBcurs_opaque\fR(3X)*
-is_syncok/\fBcurs_opaque\fR(3X)*
-is_term_resized/\fBresizeterm\fR(3X)*
-is_wintouched/\fBcurs_touch\fR(3X)
-isendwin/\fBcurs_initscr\fR(3X)
-key_defined/\fBkey_defined\fR(3X)*
-key_name/\fBcurs_util\fR(3X)
-keybound/\fBkeybound\fR(3X)*
-keyname/\fBcurs_util\fR(3X)
-keyok/\fBkeyok\fR(3X)*
-keypad/\fBcurs_inopts\fR(3X)
-killchar/\fBcurs_termattrs\fR(3X)
-killwchar/\fBcurs_termattrs\fR(3X)
-leaveok/\fBcurs_outopts\fR(3X)
-longname/\fBcurs_termattrs\fR(3X)
-mcprint/\fBcurs_print\fR(3X)*
-meta/\fBcurs_inopts\fR(3X)
-mouse_trafo/\fBcurs_mouse\fR(3X)*
-mouseinterval/\fBcurs_mouse\fR(3X)*
-mousemask/\fBcurs_mouse\fR(3X)*
-move/\fBcurs_move\fR(3X)
-mvadd_wch/\fBcurs_add_wch\fR(3X)
-mvadd_wchnstr/\fBcurs_add_wchstr\fR(3X)
-mvadd_wchstr/\fBcurs_add_wchstr\fR(3X)
-mvaddch/\fBcurs_addch\fR(3X)
-mvaddchnstr/\fBcurs_addchstr\fR(3X)
-mvaddchstr/\fBcurs_addchstr\fR(3X)
-mvaddnstr/\fBcurs_addstr\fR(3X)
-mvaddnwstr/\fBcurs_addwstr\fR(3X)
-mvaddstr/\fBcurs_addstr\fR(3X)
-mvaddwstr/\fBcurs_addwstr\fR(3X)
-mvchgat/\fBcurs_attr\fR(3X)
-mvcur/\fBcurs_terminfo\fR(3X)
-mvdelch/\fBcurs_delch\fR(3X)
-mvderwin/\fBcurs_window\fR(3X)
-mvget_wch/\fBcurs_get_wch\fR(3X)
-mvget_wstr/\fBcurs_get_wstr\fR(3X)
-mvgetch/\fBcurs_getch\fR(3X)
-mvgetn_wstr/\fBcurs_get_wstr\fR(3X)
-mvgetnstr/\fBcurs_getstr\fR(3X)
-mvgetstr/\fBcurs_getstr\fR(3X)
-mvhline/\fBcurs_border\fR(3X)
-mvhline_set/\fBcurs_border_set\fR(3X)
-mvin_wch/\fBcurs_in_wch\fR(3X)
-mvin_wchnstr/\fBcurs_in_wchstr\fR(3X)
-mvin_wchstr/\fBcurs_in_wchstr\fR(3X)
-mvinch/\fBcurs_inch\fR(3X)
-mvinchnstr/\fBcurs_inchstr\fR(3X)
-mvinchstr/\fBcurs_inchstr\fR(3X)
-mvinnstr/\fBcurs_instr\fR(3X)
-mvinnwstr/\fBcurs_inwstr\fR(3X)
-mvins_nwstr/\fBcurs_ins_wstr\fR(3X)
-mvins_wch/\fBcurs_ins_wch\fR(3X)
-mvins_wstr/\fBcurs_ins_wstr\fR(3X)
-mvinsch/\fBcurs_insch\fR(3X)
-mvinsnstr/\fBcurs_insstr\fR(3X)
-mvinsstr/\fBcurs_insstr\fR(3X)
-mvinstr/\fBcurs_instr\fR(3X)
-mvinwstr/\fBcurs_inwstr\fR(3X)
-mvprintw/\fBcurs_printw\fR(3X)
-mvscanw/\fBcurs_scanw\fR(3X)
-mvvline/\fBcurs_border\fR(3X)
-mvvline_set/\fBcurs_border_set\fR(3X)
-mvwadd_wch/\fBcurs_add_wch\fR(3X)
-mvwadd_wchnstr/\fBcurs_add_wchstr\fR(3X)
-mvwadd_wchstr/\fBcurs_add_wchstr\fR(3X)
-mvwaddch/\fBcurs_addch\fR(3X)
-mvwaddchnstr/\fBcurs_addchstr\fR(3X)
-mvwaddchstr/\fBcurs_addchstr\fR(3X)
-mvwaddnstr/\fBcurs_addstr\fR(3X)
-mvwaddnwstr/\fBcurs_addwstr\fR(3X)
-mvwaddstr/\fBcurs_addstr\fR(3X)
-mvwaddwstr/\fBcurs_addwstr\fR(3X)
-mvwchgat/\fBcurs_attr\fR(3X)
-mvwdelch/\fBcurs_delch\fR(3X)
-mvwget_wch/\fBcurs_get_wch\fR(3X)
-mvwget_wstr/\fBcurs_get_wstr\fR(3X)
-mvwgetch/\fBcurs_getch\fR(3X)
-mvwgetn_wstr/\fBcurs_get_wstr\fR(3X)
-mvwgetnstr/\fBcurs_getstr\fR(3X)
-mvwgetstr/\fBcurs_getstr\fR(3X)
-mvwhline/\fBcurs_border\fR(3X)
-mvwhline_set/\fBcurs_border_set\fR(3X)
-mvwin/\fBcurs_window\fR(3X)
-mvwin_wch/\fBcurs_in_wch\fR(3X)
-mvwin_wchnstr/\fBcurs_in_wchstr\fR(3X)
-mvwin_wchstr/\fBcurs_in_wchstr\fR(3X)
-mvwinch/\fBcurs_inch\fR(3X)
-mvwinchnstr/\fBcurs_inchstr\fR(3X)
-mvwinchstr/\fBcurs_inchstr\fR(3X)
-mvwinnstr/\fBcurs_instr\fR(3X)
-mvwinnwstr/\fBcurs_inwstr\fR(3X)
-mvwins_nwstr/\fBcurs_ins_wstr\fR(3X)
-mvwins_wch/\fBcurs_ins_wch\fR(3X)
-mvwins_wstr/\fBcurs_ins_wstr\fR(3X)
-mvwinsch/\fBcurs_insch\fR(3X)
-mvwinsnstr/\fBcurs_insstr\fR(3X)
-mvwinsstr/\fBcurs_insstr\fR(3X)
-mvwinstr/\fBcurs_instr\fR(3X)
-mvwinwstr/\fBcurs_inwstr\fR(3X)
-mvwprintw/\fBcurs_printw\fR(3X)
-mvwscanw/\fBcurs_scanw\fR(3X)
-mvwvline/\fBcurs_border\fR(3X)
-mvwvline_set/\fBcurs_border_set\fR(3X)
-napms/\fBcurs_kernel\fR(3X)
-newpad/\fBcurs_pad\fR(3X)
-newterm/\fBcurs_initscr\fR(3X)
-newwin/\fBcurs_window\fR(3X)
-nl/\fBcurs_inopts\fR(3X)
-nocbreak/\fBcurs_inopts\fR(3X)
-nodelay/\fBcurs_inopts\fR(3X)
-noecho/\fBcurs_inopts\fR(3X)
-nofilter/\fBcurs_util\fR(3X)*
-nonl/\fBcurs_inopts\fR(3X)
-noqiflush/\fBcurs_inopts\fR(3X)
-noraw/\fBcurs_inopts\fR(3X)
-notimeout/\fBcurs_inopts\fR(3X)
-overlay/\fBcurs_overlay\fR(3X)
-overwrite/\fBcurs_overlay\fR(3X)
-pair_content/\fBcurs_color\fR(3X)
-pecho_wchar/\fBcurs_pad\fR(3X)*
-pechochar/\fBcurs_pad\fR(3X)
-pnoutrefresh/\fBcurs_pad\fR(3X)
-prefresh/\fBcurs_pad\fR(3X)
-printw/\fBcurs_printw\fR(3X)
-putp/\fBcurs_terminfo\fR(3X)
-putwin/\fBcurs_util\fR(3X)
-qiflush/\fBcurs_inopts\fR(3X)
-raw/\fBcurs_inopts\fR(3X)
-redrawwin/\fBcurs_refresh\fR(3X)
-refresh/\fBcurs_refresh\fR(3X)
-reset_color_pairs/\fBcurs_color\fR(3X)*
-reset_prog_mode/\fBcurs_kernel\fR(3X)
-reset_shell_mode/\fBcurs_kernel\fR(3X)
-resetty/\fBcurs_kernel\fR(3X)
-resize_term/\fBresizeterm\fR(3X)*
-resizeterm/\fBresizeterm\fR(3X)*
-restartterm/\fBcurs_terminfo\fR(3X)
-ripoffline/\fBcurs_kernel\fR(3X)
-savetty/\fBcurs_kernel\fR(3X)
-scanw/\fBcurs_scanw\fR(3X)
-scr_dump/\fBcurs_scr_dump\fR(3X)
-scr_init/\fBcurs_scr_dump\fR(3X)
-scr_restore/\fBcurs_scr_dump\fR(3X)
-scr_set/\fBcurs_scr_dump\fR(3X)
-scrl/\fBcurs_scroll\fR(3X)
-scroll/\fBcurs_scroll\fR(3X)
-scrollok/\fBcurs_outopts\fR(3X)
-set_curterm/\fBcurs_terminfo\fR(3X)
-set_term/\fBcurs_initscr\fR(3X)
-setcchar/\fBcurs_getcchar\fR(3X)
-setscrreg/\fBcurs_outopts\fR(3X)
-setsyx/\fBcurs_kernel\fR(3X)
-setupterm/\fBcurs_terminfo\fR(3X)
-slk_attr/\fBcurs_slk\fR(3X)*
-slk_attr_off/\fBcurs_slk\fR(3X)
-slk_attr_on/\fBcurs_slk\fR(3X)
-slk_attr_set/\fBcurs_slk\fR(3X)
-slk_attroff/\fBcurs_slk\fR(3X)
-slk_attron/\fBcurs_slk\fR(3X)
-slk_attrset/\fBcurs_slk\fR(3X)
-slk_clear/\fBcurs_slk\fR(3X)
-slk_color/\fBcurs_slk\fR(3X)
-slk_init/\fBcurs_slk\fR(3X)
-slk_label/\fBcurs_slk\fR(3X)
-slk_noutrefresh/\fBcurs_slk\fR(3X)
-slk_refresh/\fBcurs_slk\fR(3X)
-slk_restore/\fBcurs_slk\fR(3X)
-slk_set/\fBcurs_slk\fR(3X)
-slk_touch/\fBcurs_slk\fR(3X)
-slk_wset/\fBcurs_slk\fR(3X)*
-standend/\fBcurs_attr\fR(3X)
-standout/\fBcurs_attr\fR(3X)
-start_color/\fBcurs_color\fR(3X)
-subpad/\fBcurs_pad\fR(3X)
-subwin/\fBcurs_window\fR(3X)
-syncok/\fBcurs_window\fR(3X)
-term_attrs/\fBcurs_termattrs\fR(3X)
-termattrs/\fBcurs_termattrs\fR(3X)
-termname/\fBcurs_termattrs\fR(3X)
-tgetent/\fBcurs_termcap\fR(3X)
-tgetflag/\fBcurs_termcap\fR(3X)
-tgetnum/\fBcurs_termcap\fR(3X)
-tgetstr/\fBcurs_termcap\fR(3X)
-tgoto/\fBcurs_termcap\fR(3X)
-tigetflag/\fBcurs_terminfo\fR(3X)
-tigetnum/\fBcurs_terminfo\fR(3X)
-tigetstr/\fBcurs_terminfo\fR(3X)
-timeout/\fBcurs_inopts\fR(3X)
-tiparm/\fBcurs_terminfo\fR(3X)*
-touchline/\fBcurs_touch\fR(3X)
-touchwin/\fBcurs_touch\fR(3X)
-tparm/\fBcurs_terminfo\fR(3X)
-tputs/\fBcurs_termcap\fR(3X)
-tputs/\fBcurs_terminfo\fR(3X)
-trace/\fBcurs_trace\fR(3X)*
-typeahead/\fBcurs_inopts\fR(3X)
-unctrl/\fBcurs_util\fR(3X)
-unget_wch/\fBcurs_get_wch\fR(3X)
-ungetch/\fBcurs_getch\fR(3X)
-ungetmouse/\fBcurs_mouse\fR(3X)*
-untouchwin/\fBcurs_touch\fR(3X)
-use_default_colors/\fBdefault_colors\fR(3X)*
-use_env/\fBcurs_util\fR(3X)
-use_extended_names/\fBcurs_extend\fR(3X)*
-use_legacy_coding/\fBlegacy_coding\fR(3X)*
-use_tioctl/\fBcurs_util\fR(3X)*
-vid_attr/\fBcurs_terminfo\fR(3X)
-vid_puts/\fBcurs_terminfo\fR(3X)
-vidattr/\fBcurs_terminfo\fR(3X)
-vidputs/\fBcurs_terminfo\fR(3X)
-vline/\fBcurs_border\fR(3X)
-vline_set/\fBcurs_border_set\fR(3X)
-vw_printw/\fBcurs_printw\fR(3X)
-vw_scanw/\fBcurs_scanw\fR(3X)
-vwprintw/\fBcurs_printw\fR(3X)
-vwscanw/\fBcurs_scanw\fR(3X)
-wadd_wch/\fBcurs_add_wch\fR(3X)
-wadd_wchnstr/\fBcurs_add_wchstr\fR(3X)
-wadd_wchstr/\fBcurs_add_wchstr\fR(3X)
-waddch/\fBcurs_addch\fR(3X)
-waddchnstr/\fBcurs_addchstr\fR(3X)
-waddchstr/\fBcurs_addchstr\fR(3X)
-waddnstr/\fBcurs_addstr\fR(3X)
-waddnwstr/\fBcurs_addwstr\fR(3X)
-waddstr/\fBcurs_addstr\fR(3X)
-waddwstr/\fBcurs_addwstr\fR(3X)
-wattr_get/\fBcurs_attr\fR(3X)
-wattr_off/\fBcurs_attr\fR(3X)
-wattr_on/\fBcurs_attr\fR(3X)
-wattr_set/\fBcurs_attr\fR(3X)
-wattroff/\fBcurs_attr\fR(3X)
-wattron/\fBcurs_attr\fR(3X)
-wattrset/\fBcurs_attr\fR(3X)
-wbkgd/\fBcurs_bkgd\fR(3X)
-wbkgdset/\fBcurs_bkgd\fR(3X)
-wbkgrnd/\fBcurs_bkgrnd\fR(3X)
-wbkgrndset/\fBcurs_bkgrnd\fR(3X)
-wborder/\fBcurs_border\fR(3X)
-wborder_set/\fBcurs_border_set\fR(3X)
-wchgat/\fBcurs_attr\fR(3X)
-wclear/\fBcurs_clear\fR(3X)
-wclrtobot/\fBcurs_clear\fR(3X)
-wclrtoeol/\fBcurs_clear\fR(3X)
-wcolor_set/\fBcurs_attr\fR(3X)
-wcursyncup/\fBcurs_window\fR(3X)
-wdelch/\fBcurs_delch\fR(3X)
-wdeleteln/\fBcurs_deleteln\fR(3X)
-wecho_wchar/\fBcurs_add_wch\fR(3X)
-wechochar/\fBcurs_addch\fR(3X)
-wenclose/\fBcurs_mouse\fR(3X)*
-werase/\fBcurs_clear\fR(3X)
-wget_wch/\fBcurs_get_wch\fR(3X)
-wget_wstr/\fBcurs_get_wstr\fR(3X)
-wgetbkgrnd/\fBcurs_bkgrnd\fR(3X)
-wgetch/\fBcurs_getch\fR(3X)
-wgetdelay/\fBcurs_opaque\fR(3X)*
-wgetn_wstr/\fBcurs_get_wstr\fR(3X)
-wgetnstr/\fBcurs_getstr\fR(3X)
-wgetparent/\fBcurs_opaque\fR(3X)*
-wgetscrreg/\fBcurs_opaque\fR(3X)*
-wgetstr/\fBcurs_getstr\fR(3X)
-whline/\fBcurs_border\fR(3X)
-whline_set/\fBcurs_border_set\fR(3X)
-win_wch/\fBcurs_in_wch\fR(3X)
-win_wchnstr/\fBcurs_in_wchstr\fR(3X)
-win_wchstr/\fBcurs_in_wchstr\fR(3X)
-winch/\fBcurs_inch\fR(3X)
-winchnstr/\fBcurs_inchstr\fR(3X)
-winchstr/\fBcurs_inchstr\fR(3X)
-winnstr/\fBcurs_instr\fR(3X)
-winnwstr/\fBcurs_inwstr\fR(3X)
-wins_nwstr/\fBcurs_ins_wstr\fR(3X)
-wins_wch/\fBcurs_ins_wch\fR(3X)
-wins_wstr/\fBcurs_ins_wstr\fR(3X)
-winsch/\fBcurs_insch\fR(3X)
-winsdelln/\fBcurs_deleteln\fR(3X)
-winsertln/\fBcurs_deleteln\fR(3X)
-winsnstr/\fBcurs_insstr\fR(3X)
-winsstr/\fBcurs_insstr\fR(3X)
-winstr/\fBcurs_instr\fR(3X)
-winwstr/\fBcurs_inwstr\fR(3X)
-wmouse_trafo/\fBcurs_mouse\fR(3X)*
-wmove/\fBcurs_move\fR(3X)
-wnoutrefresh/\fBcurs_refresh\fR(3X)
-wprintw/\fBcurs_printw\fR(3X)
-wredrawln/\fBcurs_refresh\fR(3X)
-wrefresh/\fBcurs_refresh\fR(3X)
-wresize/\fBwresize\fR(3X)*
-wscanw/\fBcurs_scanw\fR(3X)
-wscrl/\fBcurs_scroll\fR(3X)
-wsetscrreg/\fBcurs_outopts\fR(3X)
-wstandend/\fBcurs_attr\fR(3X)
-wstandout/\fBcurs_attr\fR(3X)
-wsyncdown/\fBcurs_window\fR(3X)
-wsyncup/\fBcurs_window\fR(3X)
-wtimeout/\fBcurs_inopts\fR(3X)
-wtouchln/\fBcurs_touch\fR(3X)
-wunctrl/\fBcurs_util\fR(3X)
-wvline/\fBcurs_border\fR(3X)
-wvline_set/\fBcurs_border_set\fR(3X)
+\f(BIcurses\fP Function Name/Man Page
+_
+COLOR_PAIR/\fBcurs_color\fP(3X)
+PAIR_NUMBER/\fBcurs_color\fP(3X)
+add_wch/\fBcurs_add_wch\fP(3X)
+add_wchnstr/\fBcurs_add_wchstr\fP(3X)
+add_wchstr/\fBcurs_add_wchstr\fP(3X)
+addch/\fBcurs_addch\fP(3X)
+addchnstr/\fBcurs_addchstr\fP(3X)
+addchstr/\fBcurs_addchstr\fP(3X)
+addnstr/\fBcurs_addstr\fP(3X)
+addnwstr/\fBcurs_addwstr\fP(3X)
+addstr/\fBcurs_addstr\fP(3X)
+addwstr/\fBcurs_addwstr\fP(3X)
+alloc_pair/\fBnew_pair\fP(3X)*
+assume_default_colors/\fBdefault_colors\fP(3X)*
+attr_get/\fBcurs_attr\fP(3X)
+attr_off/\fBcurs_attr\fP(3X)
+attr_on/\fBcurs_attr\fP(3X)
+attr_set/\fBcurs_attr\fP(3X)
+attroff/\fBcurs_attr\fP(3X)
+attron/\fBcurs_attr\fP(3X)
+attrset/\fBcurs_attr\fP(3X)
+baudrate/\fBcurs_termattrs\fP(3X)
+beep/\fBcurs_beep\fP(3X)
+bkgd/\fBcurs_bkgd\fP(3X)
+bkgdset/\fBcurs_bkgd\fP(3X)
+bkgrnd/\fBcurs_bkgrnd\fP(3X)
+bkgrndset/\fBcurs_bkgrnd\fP(3X)
+border/\fBcurs_border\fP(3X)
+border_set/\fBcurs_border_set\fP(3X)
+box/\fBcurs_border\fP(3X)
+box_set/\fBcurs_border_set\fP(3X)
+can_change_color/\fBcurs_color\fP(3X)
+cbreak/\fBcurs_inopts\fP(3X)
+chgat/\fBcurs_attr\fP(3X)
+clear/\fBcurs_clear\fP(3X)
+clearok/\fBcurs_outopts\fP(3X)
+clrtobot/\fBcurs_clear\fP(3X)
+clrtoeol/\fBcurs_clear\fP(3X)
+color_content/\fBcurs_color\fP(3X)
+color_set/\fBcurs_attr\fP(3X)
+copywin/\fBcurs_overlay\fP(3X)
+curs_set/\fBcurs_kernel\fP(3X)
+curses_trace/\fBcurs_trace\fP(3X)*
+curses_version/\fBcurs_extend\fP(3X)*
+def_prog_mode/\fBcurs_kernel\fP(3X)
+def_shell_mode/\fBcurs_kernel\fP(3X)
+define_key/\fBdefine_key\fP(3X)*
+del_curterm/\fBcurs_terminfo\fP(3X)
+delay_output/\fBcurs_util\fP(3X)
+delch/\fBcurs_delch\fP(3X)
+deleteln/\fBcurs_deleteln\fP(3X)
+delscreen/\fBcurs_initscr\fP(3X)
+delwin/\fBcurs_window\fP(3X)
+derwin/\fBcurs_window\fP(3X)
+doupdate/\fBcurs_refresh\fP(3X)
+dupwin/\fBcurs_window\fP(3X)
+echo/\fBcurs_inopts\fP(3X)
+echo_wchar/\fBcurs_add_wch\fP(3X)
+echochar/\fBcurs_addch\fP(3X)
+endwin/\fBcurs_initscr\fP(3X)
+erase/\fBcurs_clear\fP(3X)
+erasechar/\fBcurs_termattrs\fP(3X)
+erasewchar/\fBcurs_termattrs\fP(3X)
+exit_curses/\fBcurs_memleaks\fP(3X)*
+exit_terminfo/\fBcurs_memleaks\fP(3X)*
+extended_color_content/\fBcurs_color\fP(3X)*
+extended_pair_content/\fBcurs_color\fP(3X)*
+extended_slk_color/\fBcurs_slk\fP(3X)*
+filter/\fBcurs_util\fP(3X)
+find_pair/\fBnew_pair\fP(3X)*
+flash/\fBcurs_beep\fP(3X)
+flushinp/\fBcurs_util\fP(3X)
+free_pair/\fBnew_pair\fP(3X)*
+get_escdelay/\fBcurs_threads\fP(3X)*
+get_wch/\fBcurs_get_wch\fP(3X)
+get_wstr/\fBcurs_get_wstr\fP(3X)
+getattrs/\fBcurs_attr\fP(3X)
+getbegx/\fBcurs_legacy\fP(3X)*
+getbegy/\fBcurs_legacy\fP(3X)*
+getbegyx/\fBcurs_getyx\fP(3X)
+getbkgd/\fBcurs_bkgd\fP(3X)
+getbkgrnd/\fBcurs_bkgrnd\fP(3X)
+getcchar/\fBcurs_getcchar\fP(3X)
+getch/\fBcurs_getch\fP(3X)
+getcurx/\fBcurs_legacy\fP(3X)*
+getcury/\fBcurs_legacy\fP(3X)*
+getmaxx/\fBcurs_legacy\fP(3X)*
+getmaxy/\fBcurs_legacy\fP(3X)*
+getmaxyx/\fBcurs_getyx\fP(3X)
+getmouse/\fBcurs_mouse\fP(3X)*
+getn_wstr/\fBcurs_get_wstr\fP(3X)
+getnstr/\fBcurs_getstr\fP(3X)
+getparx/\fBcurs_legacy\fP(3X)*
+getpary/\fBcurs_legacy\fP(3X)*
+getparyx/\fBcurs_getyx\fP(3X)
+getstr/\fBcurs_getstr\fP(3X)
+getsyx/\fBcurs_kernel\fP(3X)
+getwin/\fBcurs_util\fP(3X)
+getyx/\fBcurs_getyx\fP(3X)
+halfdelay/\fBcurs_inopts\fP(3X)
+has_colors/\fBcurs_color\fP(3X)
+has_ic/\fBcurs_termattrs\fP(3X)
+has_il/\fBcurs_termattrs\fP(3X)
+has_key/\fBcurs_getch\fP(3X)*
+has_mouse/\fBcurs_mouse\fP(3X)*
+hline/\fBcurs_border\fP(3X)
+hline_set/\fBcurs_border_set\fP(3X)
+idcok/\fBcurs_outopts\fP(3X)
+idlok/\fBcurs_outopts\fP(3X)
+immedok/\fBcurs_outopts\fP(3X)
+in_wch/\fBcurs_in_wch\fP(3X)
+in_wchnstr/\fBcurs_in_wchstr\fP(3X)
+in_wchstr/\fBcurs_in_wchstr\fP(3X)
+inch/\fBcurs_inch\fP(3X)
+inchnstr/\fBcurs_inchstr\fP(3X)
+inchstr/\fBcurs_inchstr\fP(3X)
+init_color/\fBcurs_color\fP(3X)
+init_extended_color/\fBcurs_color\fP(3X)*
+init_extended_pair/\fBcurs_color\fP(3X)*
+init_pair/\fBcurs_color\fP(3X)
+initscr/\fBcurs_initscr\fP(3X)
+innstr/\fBcurs_instr\fP(3X)
+innwstr/\fBcurs_inwstr\fP(3X)
+ins_nwstr/\fBcurs_ins_wstr\fP(3X)
+ins_wch/\fBcurs_ins_wch\fP(3X)
+ins_wstr/\fBcurs_ins_wstr\fP(3X)
+insch/\fBcurs_insch\fP(3X)
+insdelln/\fBcurs_deleteln\fP(3X)
+insertln/\fBcurs_deleteln\fP(3X)
+insnstr/\fBcurs_insstr\fP(3X)
+insstr/\fBcurs_insstr\fP(3X)
+instr/\fBcurs_instr\fP(3X)
+intrflush/\fBcurs_inopts\fP(3X)
+inwstr/\fBcurs_inwstr\fP(3X)
+is_cbreak/\fBcurs_inopts\fP(3X)*
+is_cleared/\fBcurs_opaque\fP(3X)*
+is_echo/\fBcurs_inopts\fP(3X)*
+is_idcok/\fBcurs_opaque\fP(3X)*
+is_idlok/\fBcurs_opaque\fP(3X)*
+is_immedok/\fBcurs_opaque\fP(3X)*
+is_keypad/\fBcurs_opaque\fP(3X)*
+is_leaveok/\fBcurs_opaque\fP(3X)*
+is_linetouched/\fBcurs_touch\fP(3X)
+is_nl/\fBcurs_inopts\fP(3X)*
+is_nodelay/\fBcurs_opaque\fP(3X)*
+is_notimeout/\fBcurs_opaque\fP(3X)*
+is_pad/\fBcurs_opaque\fP(3X)*
+is_raw/\fBcurs_inopts\fP(3X)*
+is_scrollok/\fBcurs_opaque\fP(3X)*
+is_subwin/\fBcurs_opaque\fP(3X)*
+is_syncok/\fBcurs_opaque\fP(3X)*
+is_term_resized/\fBresizeterm\fP(3X)*
+is_wintouched/\fBcurs_touch\fP(3X)
+isendwin/\fBcurs_initscr\fP(3X)
+key_defined/\fBkey_defined\fP(3X)*
+key_name/\fBcurs_util\fP(3X)
+keybound/\fBkeybound\fP(3X)*
+keyname/\fBcurs_util\fP(3X)
+keyok/\fBkeyok\fP(3X)*
+keypad/\fBcurs_inopts\fP(3X)
+killchar/\fBcurs_termattrs\fP(3X)
+killwchar/\fBcurs_termattrs\fP(3X)
+leaveok/\fBcurs_outopts\fP(3X)
+longname/\fBcurs_termattrs\fP(3X)
+mcprint/\fBcurs_print\fP(3X)*
+meta/\fBcurs_inopts\fP(3X)
+mouse_trafo/\fBcurs_mouse\fP(3X)*
+mouseinterval/\fBcurs_mouse\fP(3X)*
+mousemask/\fBcurs_mouse\fP(3X)*
+move/\fBcurs_move\fP(3X)
+mvadd_wch/\fBcurs_add_wch\fP(3X)
+mvadd_wchnstr/\fBcurs_add_wchstr\fP(3X)
+mvadd_wchstr/\fBcurs_add_wchstr\fP(3X)
+mvaddch/\fBcurs_addch\fP(3X)
+mvaddchnstr/\fBcurs_addchstr\fP(3X)
+mvaddchstr/\fBcurs_addchstr\fP(3X)
+mvaddnstr/\fBcurs_addstr\fP(3X)
+mvaddnwstr/\fBcurs_addwstr\fP(3X)
+mvaddstr/\fBcurs_addstr\fP(3X)
+mvaddwstr/\fBcurs_addwstr\fP(3X)
+mvchgat/\fBcurs_attr\fP(3X)
+mvcur/\fBcurs_terminfo\fP(3X)
+mvdelch/\fBcurs_delch\fP(3X)
+mvderwin/\fBcurs_window\fP(3X)
+mvget_wch/\fBcurs_get_wch\fP(3X)
+mvget_wstr/\fBcurs_get_wstr\fP(3X)
+mvgetch/\fBcurs_getch\fP(3X)
+mvgetn_wstr/\fBcurs_get_wstr\fP(3X)
+mvgetnstr/\fBcurs_getstr\fP(3X)
+mvgetstr/\fBcurs_getstr\fP(3X)
+mvhline/\fBcurs_border\fP(3X)
+mvhline_set/\fBcurs_border_set\fP(3X)
+mvin_wch/\fBcurs_in_wch\fP(3X)
+mvin_wchnstr/\fBcurs_in_wchstr\fP(3X)
+mvin_wchstr/\fBcurs_in_wchstr\fP(3X)
+mvinch/\fBcurs_inch\fP(3X)
+mvinchnstr/\fBcurs_inchstr\fP(3X)
+mvinchstr/\fBcurs_inchstr\fP(3X)
+mvinnstr/\fBcurs_instr\fP(3X)
+mvinnwstr/\fBcurs_inwstr\fP(3X)
+mvins_nwstr/\fBcurs_ins_wstr\fP(3X)
+mvins_wch/\fBcurs_ins_wch\fP(3X)
+mvins_wstr/\fBcurs_ins_wstr\fP(3X)
+mvinsch/\fBcurs_insch\fP(3X)
+mvinsnstr/\fBcurs_insstr\fP(3X)
+mvinsstr/\fBcurs_insstr\fP(3X)
+mvinstr/\fBcurs_instr\fP(3X)
+mvinwstr/\fBcurs_inwstr\fP(3X)
+mvprintw/\fBcurs_printw\fP(3X)
+mvscanw/\fBcurs_scanw\fP(3X)
+mvvline/\fBcurs_border\fP(3X)
+mvvline_set/\fBcurs_border_set\fP(3X)
+mvwadd_wch/\fBcurs_add_wch\fP(3X)
+mvwadd_wchnstr/\fBcurs_add_wchstr\fP(3X)
+mvwadd_wchstr/\fBcurs_add_wchstr\fP(3X)
+mvwaddch/\fBcurs_addch\fP(3X)
+mvwaddchnstr/\fBcurs_addchstr\fP(3X)
+mvwaddchstr/\fBcurs_addchstr\fP(3X)
+mvwaddnstr/\fBcurs_addstr\fP(3X)
+mvwaddnwstr/\fBcurs_addwstr\fP(3X)
+mvwaddstr/\fBcurs_addstr\fP(3X)
+mvwaddwstr/\fBcurs_addwstr\fP(3X)
+mvwchgat/\fBcurs_attr\fP(3X)
+mvwdelch/\fBcurs_delch\fP(3X)
+mvwget_wch/\fBcurs_get_wch\fP(3X)
+mvwget_wstr/\fBcurs_get_wstr\fP(3X)
+mvwgetch/\fBcurs_getch\fP(3X)
+mvwgetn_wstr/\fBcurs_get_wstr\fP(3X)
+mvwgetnstr/\fBcurs_getstr\fP(3X)
+mvwgetstr/\fBcurs_getstr\fP(3X)
+mvwhline/\fBcurs_border\fP(3X)
+mvwhline_set/\fBcurs_border_set\fP(3X)
+mvwin/\fBcurs_window\fP(3X)
+mvwin_wch/\fBcurs_in_wch\fP(3X)
+mvwin_wchnstr/\fBcurs_in_wchstr\fP(3X)
+mvwin_wchstr/\fBcurs_in_wchstr\fP(3X)
+mvwinch/\fBcurs_inch\fP(3X)
+mvwinchnstr/\fBcurs_inchstr\fP(3X)
+mvwinchstr/\fBcurs_inchstr\fP(3X)
+mvwinnstr/\fBcurs_instr\fP(3X)
+mvwinnwstr/\fBcurs_inwstr\fP(3X)
+mvwins_nwstr/\fBcurs_ins_wstr\fP(3X)
+mvwins_wch/\fBcurs_ins_wch\fP(3X)
+mvwins_wstr/\fBcurs_ins_wstr\fP(3X)
+mvwinsch/\fBcurs_insch\fP(3X)
+mvwinsnstr/\fBcurs_insstr\fP(3X)
+mvwinsstr/\fBcurs_insstr\fP(3X)
+mvwinstr/\fBcurs_instr\fP(3X)
+mvwinwstr/\fBcurs_inwstr\fP(3X)
+mvwprintw/\fBcurs_printw\fP(3X)
+mvwscanw/\fBcurs_scanw\fP(3X)
+mvwvline/\fBcurs_border\fP(3X)
+mvwvline_set/\fBcurs_border_set\fP(3X)
+napms/\fBcurs_kernel\fP(3X)
+newpad/\fBcurs_pad\fP(3X)
+newterm/\fBcurs_initscr\fP(3X)
+newwin/\fBcurs_window\fP(3X)
+nl/\fBcurs_inopts\fP(3X)
+nocbreak/\fBcurs_inopts\fP(3X)
+nodelay/\fBcurs_inopts\fP(3X)
+noecho/\fBcurs_inopts\fP(3X)
+nofilter/\fBcurs_util\fP(3X)*
+nonl/\fBcurs_inopts\fP(3X)
+noqiflush/\fBcurs_inopts\fP(3X)
+noraw/\fBcurs_inopts\fP(3X)
+notimeout/\fBcurs_inopts\fP(3X)
+overlay/\fBcurs_overlay\fP(3X)
+overwrite/\fBcurs_overlay\fP(3X)
+pair_content/\fBcurs_color\fP(3X)
+pecho_wchar/\fBcurs_pad\fP(3X)
+pechochar/\fBcurs_pad\fP(3X)
+pnoutrefresh/\fBcurs_pad\fP(3X)
+prefresh/\fBcurs_pad\fP(3X)
+printw/\fBcurs_printw\fP(3X)
+putp/\fBcurs_terminfo\fP(3X)
+putwin/\fBcurs_util\fP(3X)
+qiflush/\fBcurs_inopts\fP(3X)
+raw/\fBcurs_inopts\fP(3X)
+redrawwin/\fBcurs_refresh\fP(3X)
+refresh/\fBcurs_refresh\fP(3X)
+reset_color_pairs/\fBcurs_color\fP(3X)*
+reset_prog_mode/\fBcurs_kernel\fP(3X)
+reset_shell_mode/\fBcurs_kernel\fP(3X)
+resetty/\fBcurs_kernel\fP(3X)
+resize_term/\fBresizeterm\fP(3X)*
+resizeterm/\fBresizeterm\fP(3X)*
+restartterm/\fBcurs_terminfo\fP(3X)
+ripoffline/\fBcurs_kernel\fP(3X)
+savetty/\fBcurs_kernel\fP(3X)
+scanw/\fBcurs_scanw\fP(3X)
+scr_dump/\fBcurs_scr_dump\fP(3X)
+scr_init/\fBcurs_scr_dump\fP(3X)
+scr_restore/\fBcurs_scr_dump\fP(3X)
+scr_set/\fBcurs_scr_dump\fP(3X)
+scrl/\fBcurs_scroll\fP(3X)
+scroll/\fBcurs_scroll\fP(3X)
+scrollok/\fBcurs_outopts\fP(3X)
+set_curterm/\fBcurs_terminfo\fP(3X)
+set_escdelay/\fBcurs_threads\fP(3X)*
+set_tabsize/\fBcurs_threads\fP(3X)*
+set_term/\fBcurs_initscr\fP(3X)
+setcchar/\fBcurs_getcchar\fP(3X)
+setscrreg/\fBcurs_outopts\fP(3X)
+setsyx/\fBcurs_kernel\fP(3X)
+setupterm/\fBcurs_terminfo\fP(3X)
+slk_attr/\fBcurs_slk\fP(3X)*
+slk_attr_off/\fBcurs_slk\fP(3X)
+slk_attr_on/\fBcurs_slk\fP(3X)
+slk_attr_set/\fBcurs_slk\fP(3X)
+slk_attroff/\fBcurs_slk\fP(3X)
+slk_attron/\fBcurs_slk\fP(3X)
+slk_attrset/\fBcurs_slk\fP(3X)
+slk_clear/\fBcurs_slk\fP(3X)
+slk_color/\fBcurs_slk\fP(3X)
+slk_init/\fBcurs_slk\fP(3X)
+slk_label/\fBcurs_slk\fP(3X)
+slk_noutrefresh/\fBcurs_slk\fP(3X)
+slk_refresh/\fBcurs_slk\fP(3X)
+slk_restore/\fBcurs_slk\fP(3X)
+slk_set/\fBcurs_slk\fP(3X)
+slk_touch/\fBcurs_slk\fP(3X)
+slk_wset/\fBcurs_slk\fP(3X)
+standend/\fBcurs_attr\fP(3X)
+standout/\fBcurs_attr\fP(3X)
+start_color/\fBcurs_color\fP(3X)
+subpad/\fBcurs_pad\fP(3X)
+subwin/\fBcurs_window\fP(3X)
+syncok/\fBcurs_window\fP(3X)
+term_attrs/\fBcurs_termattrs\fP(3X)
+termattrs/\fBcurs_termattrs\fP(3X)
+termname/\fBcurs_termattrs\fP(3X)
+tgetent/\fBcurs_termcap\fP(3X)
+tgetflag/\fBcurs_termcap\fP(3X)
+tgetnum/\fBcurs_termcap\fP(3X)
+tgetstr/\fBcurs_termcap\fP(3X)
+tgoto/\fBcurs_termcap\fP(3X)
+tigetflag/\fBcurs_terminfo\fP(3X)
+tigetnum/\fBcurs_terminfo\fP(3X)
+tigetstr/\fBcurs_terminfo\fP(3X)
+timeout/\fBcurs_inopts\fP(3X)
+tiparm/\fBcurs_terminfo\fP(3X)
+tiparm_s/\fBcurs_terminfo\fP(3X)*
+tiscan_s/\fBcurs_terminfo\fP(3X)*
+touchline/\fBcurs_touch\fP(3X)
+touchwin/\fBcurs_touch\fP(3X)
+tparm/\fBcurs_terminfo\fP(3X)
+tputs/\fBcurs_termcap\fP(3X)
+tputs/\fBcurs_terminfo\fP(3X)
+trace/\fBcurs_trace\fP(3X)*
+typeahead/\fBcurs_inopts\fP(3X)
+unctrl/\fBcurs_util\fP(3X)
+unget_wch/\fBcurs_get_wch\fP(3X)
+ungetch/\fBcurs_getch\fP(3X)
+ungetmouse/\fBcurs_mouse\fP(3X)*
+untouchwin/\fBcurs_touch\fP(3X)
+use_default_colors/\fBdefault_colors\fP(3X)*
+use_env/\fBcurs_util\fP(3X)
+use_extended_names/\fBcurs_extend\fP(3X)*
+use_legacy_coding/\fBlegacy_coding\fP(3X)*
+use_screen/\fBcurs_threads\fP(3X)*
+use_tioctl/\fBcurs_util\fP(3X)*
+use_window/\fBcurs_threads\fP(3X)*
+vid_attr/\fBcurs_terminfo\fP(3X)
+vid_puts/\fBcurs_terminfo\fP(3X)
+vidattr/\fBcurs_terminfo\fP(3X)
+vidputs/\fBcurs_terminfo\fP(3X)
+vline/\fBcurs_border\fP(3X)
+vline_set/\fBcurs_border_set\fP(3X)
+vw_printw/\fBcurs_printw\fP(3X)
+vw_scanw/\fBcurs_scanw\fP(3X)
+vwprintw/\fBcurs_printw\fP(3X)
+vwscanw/\fBcurs_scanw\fP(3X)
+wadd_wch/\fBcurs_add_wch\fP(3X)
+wadd_wchnstr/\fBcurs_add_wchstr\fP(3X)
+wadd_wchstr/\fBcurs_add_wchstr\fP(3X)
+waddch/\fBcurs_addch\fP(3X)
+waddchnstr/\fBcurs_addchstr\fP(3X)
+waddchstr/\fBcurs_addchstr\fP(3X)
+waddnstr/\fBcurs_addstr\fP(3X)
+waddnwstr/\fBcurs_addwstr\fP(3X)
+waddstr/\fBcurs_addstr\fP(3X)
+waddwstr/\fBcurs_addwstr\fP(3X)
+wattr_get/\fBcurs_attr\fP(3X)
+wattr_off/\fBcurs_attr\fP(3X)
+wattr_on/\fBcurs_attr\fP(3X)
+wattr_set/\fBcurs_attr\fP(3X)
+wattroff/\fBcurs_attr\fP(3X)
+wattron/\fBcurs_attr\fP(3X)
+wattrset/\fBcurs_attr\fP(3X)
+wbkgd/\fBcurs_bkgd\fP(3X)
+wbkgdset/\fBcurs_bkgd\fP(3X)
+wbkgrnd/\fBcurs_bkgrnd\fP(3X)
+wbkgrndset/\fBcurs_bkgrnd\fP(3X)
+wborder/\fBcurs_border\fP(3X)
+wborder_set/\fBcurs_border_set\fP(3X)
+wchgat/\fBcurs_attr\fP(3X)
+wclear/\fBcurs_clear\fP(3X)
+wclrtobot/\fBcurs_clear\fP(3X)
+wclrtoeol/\fBcurs_clear\fP(3X)
+wcolor_set/\fBcurs_attr\fP(3X)
+wcursyncup/\fBcurs_window\fP(3X)
+wdelch/\fBcurs_delch\fP(3X)
+wdeleteln/\fBcurs_deleteln\fP(3X)
+wecho_wchar/\fBcurs_add_wch\fP(3X)
+wechochar/\fBcurs_addch\fP(3X)
+wenclose/\fBcurs_mouse\fP(3X)*
+werase/\fBcurs_clear\fP(3X)
+wget_wch/\fBcurs_get_wch\fP(3X)
+wget_wstr/\fBcurs_get_wstr\fP(3X)
+wgetbkgrnd/\fBcurs_bkgrnd\fP(3X)
+wgetch/\fBcurs_getch\fP(3X)
+wgetdelay/\fBcurs_opaque\fP(3X)*
+wgetn_wstr/\fBcurs_get_wstr\fP(3X)
+wgetnstr/\fBcurs_getstr\fP(3X)
+wgetparent/\fBcurs_opaque\fP(3X)*
+wgetscrreg/\fBcurs_opaque\fP(3X)*
+wgetstr/\fBcurs_getstr\fP(3X)
+whline/\fBcurs_border\fP(3X)
+whline_set/\fBcurs_border_set\fP(3X)
+win_wch/\fBcurs_in_wch\fP(3X)
+win_wchnstr/\fBcurs_in_wchstr\fP(3X)
+win_wchstr/\fBcurs_in_wchstr\fP(3X)
+winch/\fBcurs_inch\fP(3X)
+winchnstr/\fBcurs_inchstr\fP(3X)
+winchstr/\fBcurs_inchstr\fP(3X)
+winnstr/\fBcurs_instr\fP(3X)
+winnwstr/\fBcurs_inwstr\fP(3X)
+wins_nwstr/\fBcurs_ins_wstr\fP(3X)
+wins_wch/\fBcurs_ins_wch\fP(3X)
+wins_wstr/\fBcurs_ins_wstr\fP(3X)
+winsch/\fBcurs_insch\fP(3X)
+winsdelln/\fBcurs_deleteln\fP(3X)
+winsertln/\fBcurs_deleteln\fP(3X)
+winsnstr/\fBcurs_insstr\fP(3X)
+winsstr/\fBcurs_insstr\fP(3X)
+winstr/\fBcurs_instr\fP(3X)
+winwstr/\fBcurs_inwstr\fP(3X)
+wmouse_trafo/\fBcurs_mouse\fP(3X)*
+wmove/\fBcurs_move\fP(3X)
+wnoutrefresh/\fBcurs_refresh\fP(3X)
+wprintw/\fBcurs_printw\fP(3X)
+wredrawln/\fBcurs_refresh\fP(3X)
+wrefresh/\fBcurs_refresh\fP(3X)
+wresize/\fBwresize\fP(3X)*
+wscanw/\fBcurs_scanw\fP(3X)
+wscrl/\fBcurs_scroll\fP(3X)
+wsetscrreg/\fBcurs_outopts\fP(3X)
+wstandend/\fBcurs_attr\fP(3X)
+wstandout/\fBcurs_attr\fP(3X)
+wsyncdown/\fBcurs_window\fP(3X)
+wsyncup/\fBcurs_window\fP(3X)
+wtimeout/\fBcurs_inopts\fP(3X)
+wtouchln/\fBcurs_touch\fP(3X)
+wunctrl/\fBcurs_util\fP(3X)
+wvline/\fBcurs_border\fP(3X)
+wvline_set/\fBcurs_border_set\fP(3X)
.TE
.PP
-Depending on the configuration,
-additional sets of functions may be available:
-.RS 3
-.TP 5
-\fBcurs_memleaks\fP(3X) - curses memory-leak checking
-.TP 5
-\fBcurs_sp_funcs\fP(3X) - curses screen-pointer extension
-.TP 5
-\fBcurs_threads\fP(3X) - curses thread support
-.TP 5
-\fBcurs_trace\fP(3X) - curses debugging routines
-.RE
+.IR \%ncurses 's
+.I "screen-pointer extension"
+adds additional functions corresponding to many of the above,
+each with an \*(``_sp\*('' suffix;
+see \fBcurs_sp_funcs\fP(3X).
+.PP
+The availability of some extensions is configurable when
+.I \%ncurses
+is compiled;
+see sections \*(``ALTERNATE CONFIGURATIONS\*('' and \*(``EXTENSIONS\*(''
+below.
.SH RETURN VALUE
-Routines that return an integer return \fBERR\fR upon failure and an
-integer value other than \fBERR\fR upon successful completion, unless
-otherwise noted in the routine descriptions.
-.PP
-As a general rule, routines check for null pointers passed as parameters,
-and handle this as an error.
-.PP
-All macros return the value of the \fBw\fR version, except \fBsetscrreg\fR,
-\fBwsetscrreg\fR, \fBgetyx\fR, \fBgetbegyx\fR, and \fBgetmaxyx\fR.
-The return values of
-\fBsetscrreg\fR,
-\fBwsetscrreg\fR,
-\fBgetyx\fR,
-\fBgetbegyx\fR, and
-\fBgetmaxyx\fR are undefined (i.e., these should not be used as the
-right-hand side of assignment statements).
-.PP
-Functions with a \*(``mv\*('' prefix first perform a cursor movement using
-\fBwmove\fP, and return an error if the position is outside the window,
-or if the window pointer is null.
-Most \*(``mv\*(''-prefixed functions
-(except variadic functions such as \fBmvprintw\fP)
-are provided both as macros and functions.
-.PP
-Routines that return pointers return \fBNULL\fR on error.
+Unless otherwise noted,
+functions that return an integer return
+.B OK
+on success and
+.B ERR
+on failure.
+Functions that return pointers return
+.B NULL
+on failure.
+Typically,
+.I \%ncurses
+treats a null pointer passed as a function parameter as a failure.
+Functions prefixed with \*(``mv\*('' first perform cursor movement and
+fail if the position
+.RI ( y ,
+.IR x )
+is outside the window boundaries.
.SH ENVIRONMENT
-.PP
-The following environment symbols are useful for customizing the
-runtime behavior of the \fBncurses\fR library.
-The most important ones have been already discussed in detail.
-.SS CC command-character
-.PP
-When set, change occurrences of the command_character
-(i.e., the \fBcmdch\fP capability)
-of the loaded terminfo entries to the value of this variable.
-Very few terminfo entries provide this feature.
+The following symbols from the process environment customize the
+runtime behavior of
+.I \%ncurses
+applications.
+The library may be configured to disregard the variables
+.IR \%TERMINFO ,
+.IR \%TERMINFO_DIRS ,
+.IR \%TERMPATH ,
+and
+.IR HOME ,
+if the user is the superuser (root),
+or the application uses \fI\%setuid\fP(2) or \fI\%setgid\fP(2).
+.SS "\fIBAUDRATE\fP"
+The debugging library checks this variable when the application has
+redirected output to a file.
+Its integral value is used for the baud rate.
+If that value is absent or invalid,
+.I \%ncurses
+uses 9600.
+This feature allows testers to construct repeatable test cases
+that take into account optimization decisions that depend on baud rate.
+.SS "\fICC\fP (command character)"
+When set,
+the
+.B \%command_character
+.RB ( \%cmdch )
+capability value of loaded
+.I \%term\%info
+entries changes to the value of this variable.
+Very few
+.I \%term\%info
+entries provide this feature.
.PP
Because this name is also used in development environments to represent
-the C compiler's name, \fBncurses\fR ignores it if it does not happen to
-be a single character.
-.SS BAUDRATE
-.PP
-The debugging library checks this environment variable when the application
-has redirected output to a file.
-The variable's numeric value is used for the baudrate.
-If no value is found, \fBncurses\fR uses 9600.
-This allows testers to construct repeatable test-cases
-that take into account costs that depend on baudrate.
-.SS COLUMNS
-.PP
-Specify the width of the screen in characters.
+the C compiler's name,
+.I \%ncurses
+ignores its value if it is not one character in length.
+.SS "\fICOLUMNS\fP"
+This variable specifies the width of the screen in characters.
Applications running in a windowing environment usually are able to
obtain the width of the window in which they are executing.
-If neither the \fBCOLUMNS\fP value nor the terminal's screen size is available,
-\fBncurses\fR uses the size which may be specified in the terminfo database
-(i.e., the \fBcols\fR capability).
-.PP
-It is important that your application use a correct size for the screen.
-This is not always possible because your application may be
-running on a host which does not honor NAWS (Negotiations About Window
-Size), or because you are temporarily running as another user.
-However, setting \fBCOLUMNS\fP and/or \fBLINES\fP overrides the library's
-use of the screen size obtained from the operating system.
-.PP
-Either \fBCOLUMNS\fP or \fBLINES\fP symbols may be specified independently.
-This is mainly useful to circumvent legacy misfeatures of terminal descriptions,
-e.g., xterm which commonly specifies a 65 line screen.
-For best results, \fBlines\fR and \fBcols\fR should not be specified in
-a terminal description for terminals which are run as emulations.
-.PP
-Use the \fBuse_env\fR function to disable all use of external environment
-(but not including system calls) to determine the screen size.
-Use the \fBuse_tioctl\fR function to update \fBCOLUMNS\fP or \fBLINES\fP
-to match the screen size obtained from system calls or the terminal database.
-.SS ESCDELAY
-.PP
-Specifies the total time, in milliseconds, for which ncurses will
-await a character sequence, e.g., a function key.
-The default value, 1000 milliseconds, is enough for most uses.
-However, it is made a variable to accommodate unusual applications.
+If
+.I \%COLUMNS
+is not defined and the terminal's screen size is not available from the
+terminal driver,
+.I \%ncurses
+uses the size specified by the
+.B \%columns
+.RB ( \%cols )
+capability of the terminal type's entry in the
+.I \%term\%info
+database,
+if any.
+.PP
+It is important that your application use the correct screen size.
+Automatic detection thereof is not always possible because an
+application may be running on a host that does not honor NAWS
+(Negotiations About Window Size)
+or as a different user ID than the owner of the terminal device file.
+Setting
+.I \%COLUMNS
+and/or
+.I \%LINES
+overrides the library's use of the screen size obtained from the
+operating system.
+.PP
+The
+.I \%COLUMNS
+and
+.I \%LINES
+variables may be specified independently.
+This property is useful to circumvent misfeatures of legacy terminal
+type descriptions;
+\fI\%xterm\fP(1) descriptions specifying 65 lines were once notorious.
+For best results,
+avoid specifying
+.B cols
+and
+.B lines
+capability codes in
+.I \%term\%info
+descriptions of terminal emulators.
+.PP
+\fBuse_env\fP(3X) can disable use of the process environment
+in determining the screen size.
+\fBuse_tioctl\fP(3X) can update
+.I \%COLUMNS
+and
+.I \%LINES
+to match the screen size obtained from system calls or the terminal
+database.
+.SS "\fIESCDELAY\fP"
+For
+.I curses
+to distinguish the ESC character resulting from a user's press of the
+\*(``Escape\*('' key on the input device from one beginning an
+.I "escape sequence"
+(as commonly produced by function keys),
+it waits after receiving the escape character to see if further
+characters are available on the input stream within a short interval.
+A global variable
+.B \%ESCDELAY
+stores this interval in milliseconds.
+The default value of 1000
+(one second)
+is adequate for most uses.
+This environment variable overrides it.
.PP
The most common instance where you may wish to change this value
-is to work with slow hosts, e.g., running on a network.
-If the host cannot read characters rapidly enough, it will have the same
-effect as if the terminal did not send characters rapidly enough.
-The library will still see a timeout.
-.PP
-Note that xterm mouse events are built up from character sequences
-received from the xterm.
-If your application makes heavy use of multiple-clicking, you may
-wish to lengthen this default value because the timeout applies
-to the composed multi-click event as well as the individual clicks.
-.PP
-In addition to the environment variable,
-this implementation provides a global variable with the same name.
-Portable applications should not rely upon the presence of ESCDELAY
+is to work with a remote host over a slow communication channel.
+If the host running a
+.I curses
+application does not receive the characters of an escape sequence in a
+timely manner,
+the library can interpret them as multiple key stroke events.
+.PP
+\fI\%xterm\fP(1) mouse events are a form of escape sequence;
+therefore,
+if your application makes heavy use of multiple-clicking,
+you may wish to lengthen the default value because the delay applies
+to the composite multi-click event as well as the individual clicks.
+.PP
+Portable applications should not rely upon the presence of
+.B \%ESCDELAY
in either form,
but setting the environment variable rather than the global variable
does not create problems when compiling an application.
-.SS HOME
-Tells \fBncurses\fR where your home directory is.
-That is where it may read and write auxiliary terminal descriptions:
-.NS
-$HOME/.termcap
-$HOME/.terminfo
-.NE
-.SS LINES
-.PP
-Like COLUMNS, specify the height of the screen in characters.
-See COLUMNS for a detailed description.
-.SS MOUSE_BUTTONS_123
-.PP
-This applies only to the OS/2 EMX port.
-It specifies the order of buttons on the mouse.
-OS/2 numbers a 3-button mouse inconsistently from other
-platforms:
-.NS
-1 = left
-.br
-2 = right
-.br
-3 = middle.
-.NE
-.PP
-This variable lets you customize the mouse.
-The variable must be three numeric digits 1\-3 in any order, e.g., 123 or 321.
-If it is not specified, \fBncurses\fR uses 132.
-.SS NCURSES_ASSUMED_COLORS
-.PP
-Override the compiled-in assumption that the
-terminal's default colors are white-on-black
-(see \fBdefault_colors\fR(3X)).
-You may set the foreground and background color values with this environment
-variable by proving a 2-element list: foreground,background.
-For example, to tell ncurses to not assume anything
-about the colors, set this to "\-1,\-1".
-To make it green-on-black, set it to "2,0".
-Any positive value from zero to the terminfo \fBmax_colors\fR value is allowed.
-.SS NCURSES_CONSOLE2
-This applies only to the MinGW port of ncurses.
-.PP
-The \fBConsole2\fP program's handling of the Microsoft Console API call
-\fBCreateConsoleScreenBuffer\fP is defective.
-Applications which use this will hang.
-However, it is possible to simulate the action of this call by
-mapping coordinates,
-explicitly saving and restoring the original screen contents.
-Setting the environment variable \fBNCGDB\fP has the same effect.
-.SS NCURSES_GPM_TERMS
-.PP
-This applies only to ncurses configured to use the GPM interface.
-.PP
-If present,
-the environment variable is a list of one or more terminal names
-against which the \fBTERM\fP environment variable is matched.
-Setting it to an empty value disables the GPM interface;
-using the built-in support for xterm, etc.
.PP
-If the environment variable is absent,
-ncurses will attempt to open GPM if \fBTERM\fP contains \*(``linux\*(''.
-.SS NCURSES_NO_HARD_TABS
-.PP
-\fBNcurses\fP may use tabs as part of the cursor movement optimization.
+If \fB\%keypad\fP(3X) is disabled for the
+.I curses
+window receiving input,
+a program must disambiguate escape sequences itself.
+.SS "\fIHOME\fP"
+.I \%ncurses
+may read and write auxiliary terminal descriptions in
+.I \%.termcap
+and
+.I \%.terminfo
+files in the user's home directory.
+.SS "\fILINES\fP"
+This counterpart to
+.I \%COLUMNS
+specifies the height of the screen in characters.
+The corresponding
+.I \%term\%info
+capability and code is
+.BR \%lines .
+See the description of the
+.I \%COLUMNS
+variable above.
+.SS "\fIMOUSE_BUTTONS_123\fP"
+(OS/2 EMX port only)
+OS/2 numbers a three-button mouse inconsistently with other platforms,
+such that 1 is the left button,
+2 the right,
+and 3 the middle.
+This variable customizes the mouse button numbering.
+Its value must be three digits 1\-3 in any order.
+By default,
+.I \%ncurses
+assumes a numbering of \*(``132\*(''.
+.SS "\fINCURSES_ASSUMED_COLORS\fP"
+If set,
+this variable overrides the
+.I \%ncurses
+library's compiled-in assumption that the terminal's default colors are
+white on black;
+see \fB\%default_colors\fP(3X).
+Set the foreground and background color values with this environment
+variable by assigning it two integer values separated by a comma,
+indicating foregound and background color numbers,
+respectively.
+.PP
+For example,
+to tell
+.I \%ncurses
+not to assume anything about the colors,
+use a value of \*(``\-1,\-1\*(''.
+To make the default color scheme green on black,
+use \*(``2,0\*(''.
+.I \%ncurses
+accepts integral values from \-1 up to the value of the
+.I \%term\%info
+.B \%max_colors
+.RB ( colors )
+capability.
+.SS "\fINCURSES_CONSOLE2\fP"
+(MinGW port only)
+The
+.I \%Console2
+.\" https://www.hanselman.com/blog/console2-a-better-windows-command-prompt
+program defectively handles the Microsoft Console API call
+.IR \%Create\%Console\%Screen\%Buffer .
+Applications that use it will hang.
+However,
+it is possible to simulate the action of this call by mapping
+coordinates,
+explicitly saving and restoring the original screen contents.
+Setting the environment variable
+.I \%NCGDB
+has the same effect.
+.SS "\fINCURSES_GPM_TERMS\fP"
+(Linux only)
+When
+.I \%ncurses
+is configured to use the GPM interface,
+this variable may list one or more terminal names
+against which the
+.I TERM
+variable
+(see below)
+is matched.
+An empty value disables the GPM interface,
+using
+.IR \%ncurses 's
+built-in support for \fIxterm\fP(1) mouse protocols instead.
+If the variable is absent,
+.I \%ncurses
+attempts to open GPM if
+.I TERM
+contains \*(``linux\*(''.
+.SS "\fINCURSES_NO_HARD_TABS\fP"
+.I \%ncurses
+may use tab characters in cursor movement optimization.
In some cases,
-your terminal driver may not handle these properly.
-Set this environment variable to disable the feature.
-You can also adjust your \fBstty\fP settings to avoid the problem.
-.SS NCURSES_NO_MAGIC_COOKIE
-.PP
-Some terminals use a magic-cookie feature which requires special handling
-to make highlighting and other video attributes display properly.
-You can suppress the highlighting entirely for these terminals by
-setting this environment variable.
-.SS NCURSES_NO_PADDING
-.PP
-Most of the terminal descriptions in the terminfo database are written
-for real \*(``hardware\*('' terminals.
-Many people use terminal emulators
-which run in a windowing environment and use curses-based applications.
-Terminal emulators can duplicate
-all of the important aspects of a hardware terminal, but they do not
-have the same limitations.
-The chief limitation of a hardware terminal from the standpoint
-of your application is the management of dataflow, i.e., timing.
+your terminal driver may not handle them properly.
+Set this environment variable to any value to disable the feature.
+You can also adjust your \fI\%stty\fP(1) settings to avoid the problem.
+.SS "\fINCURSES_NO_MAGIC_COOKIE\fP"
+Many terminals store video attributes as a property of a character cell,
+as
+.I curses
+does.
+Historically,
+some recorded changes in video attributes as data that logically
+.I occupies
+character cells on the display,
+switching attributes on or off,
+similarly to tags in a markup language;
+these are termed \*(``magic cookies\*('',
+and must be subsequently overprinted.
+If the
+.I \%term\%info
+entry for your terminal type does not adequately describe its handling
+of magic cookies,
+set this variable to any value to instruct
+.I \%ncurses
+to disable attributes entirely.
+.SS "\fINCURSES_NO_PADDING\fP"
+Most terminal type descriptions in the
+.I \%term\%info
+database detail hardware devices.
+Many people use
+.IR curses -based
+applications in terminal emulator programs that run in a windowing
+environment.
+These programs can duplicate all of the important features of a hardware
+terminal,
+but often lack their limitations.
+Chief among these absent drawbacks is the problem of data flow
+management;
+that is,
+limiting the speed of communication to what the hardware could handle.
Unless a hardware terminal is interfaced into a terminal concentrator
(which does flow control),
-it (or your application) must manage dataflow, preventing overruns.
-The cheapest solution (no hardware cost)
-is for your program to do this by pausing after
-operations that the terminal does slowly, such as clearing the display.
-.PP
-As a result, many terminal descriptions (including the vt100)
-have delay times embedded.
-You may wish to use these descriptions,
-but not want to pay the performance penalty.
-.PP
-Set the NCURSES_NO_PADDING environment variable to disable all but mandatory
-padding.
-Mandatory padding is used as a part of special control
-sequences such as \fIflash\fR.
-.SS NCURSES_NO_SETBUF
-This setting is obsolete.
-Before changes
-.RS 3
-.bP
-started with 5.9 patch 20120825
-and
-.bP
-continued
-though 5.9 patch 20130126
-.RE
-.PP
-\fBncurses\fR enabled buffered output during terminal initialization.
-This was done (as in SVr4 curses) for performance reasons.
-For testing purposes, both of \fBncurses\fR and certain applications,
+an application must manage flow control itself to prevent overruns and
+data loss.
+.PP
+A solution that comes at no hardware cost is for an application to pause
+after directing a terminal to execute an operation that it performs
+slowly,
+such as clearing the display.
+Many terminal type descriptions,
+including that for the VT100,
+embed delay specifications in capabilities.
+You may wish to use these terminal descriptions without paying the
+performance penalty.
+Set
+.I \%NCURSES_NO_PADDING
+to any value to disable all but mandatory padding.
+Mandatory padding is used by such terminal capabilities as
+.B \%flash_screen
+.RB ( flash ).
+.SS "\fINCURSES_NO_SETBUF\fP"
+(Obsolete)
+Prior to internal changes developed in
+.I \%ncurses
+5.9
+(patches 20120825 through 20130126),
+the library used \fI\%setbuf\fP(3) to enable fully buffered output when
+initializing the terminal.
+This was done,
+as in SVr4
+.IR curses ,
+to increase performance.
+For testing purposes,
+both of
+.I \%ncurses
+and of certain applications,
this feature was made optional.
-Setting the NCURSES_NO_SETBUF variable
-disabled output buffering, leaving the output in the original (usually
-line buffered) mode.
-.PP
-In the current implementation,
-ncurses performs its own buffering and does not require this workaround.
-It does not modify the buffering of the standard output.
-.PP
-The reason for the change was to make the behavior for interrupts and
-other signals more robust.
-One drawback is that certain nonconventional programs would mix
-ordinary stdio calls with ncurses calls and (usually) work.
-This is no longer possible since ncurses is not using
-the buffered standard output but its own output (to the same file descriptor).
-As a special case, the low-level calls such as \fBputp\fP still use the
-standard output.
-But high-level curses calls do not.
-.SS NCURSES_NO_UTF8_ACS
-.PP
-During initialization, the \fBncurses\fR library
-checks for special cases where VT100 line-drawing (and the corresponding
-alternate character set capabilities) described in the terminfo are known
-to be missing.
-Specifically, when running in a UTF\-8 locale,
-the Linux console emulator and the GNU screen program ignore these.
-Ncurses checks the \fBTERM\fP environment variable for these.
-For other special cases, you should set this environment variable.
-Doing this tells ncurses to use Unicode values which correspond to
-the VT100 line-drawing glyphs.
-That works for the special cases cited,
-and is likely to work for terminal emulators.
-.PP
-When setting this variable, you should set it to a nonzero value.
-Setting it to zero (or to a nonnumber)
-disables the special check for \*(``linux\*('' and \*(``screen\*(''.
-.PP
-As an alternative to the environment variable,
-ncurses checks for an extended terminfo capability \fBU8\fP.
-This is a numeric capability which can be compiled using \fB@TIC@\ \-x\fP.
-For example
+Setting this variable disabled output buffering,
+leaving the output stream in the original
+(usually line-buffered)
+mode.
+.PP
+Nowadays,
+.I \%ncurses
+performs its own buffering and does not require this workaround;
+it does not modify the buffering of the standard output stream.
+This approach makes signal handling,
+as for interrupts,
+more robust.
+A drawback is that certain unconventional programs mixed
+\fI\%stdio\fP(3) calls with
+.I \%ncurses
+calls and (usually)
+got the behavior they expected.
+This is no longer the case;
+.I \%ncurses
+does not write to the standard output file descriptor through a
+.IR stdio -buffered
+stream.
+.PP
+As a special case,
+low-level API calls such as \fB\%putp\fP(3X) still use the
+standard output stream.
+High-level
+.I curses
+calls such as \fB\%printw\fP(3X) do not.
+.SS "\fINCURSES_NO_UTF8_ACS\fP"
+At initialization,
+.I \%ncurses
+inspects the
+.I TERM
+environment variable for special cases where VT100 forms-drawing
+characters
+(and the corresponding alternate character set
+.I \%term\%info
+capabilities)
+are known to be unsupported by terminal types that otherwise claim VT100
+compatibility.
+Specifically,
+when running in a UTF-8 locale,
+the Linux virtual console device and the GNU \fI\%screen\fP(1)
+program ignore them.
+Set this variable to a nonzero value to instruct
+.I \%ncurses
+that the terminal's ACS support is broken;
+the library then outputs Unicode code points that correspond to the
+forms-drawing
+characters.
+Set it to zero
+(or a non-integer)
+to disable the special check for terminal type names matching
+\*(``linux\*('' or \*(``screen\*('',
+directing
+.I \%ncurses
+to assume that the ACS feature works if the terminal type description
+advertises it.
+.PP
+As an alternative to use of this variable,
+.I \%ncurses
+checks for an extended
+.I \%term\%info
+numeric capability \fBU8\fP
+that can be compiled using
+.RB \*(`` "@TIC@ \-x" \*(''.
+Examples follow.
+.PP
.RS 3
-.ft CW
-.sp
-.nf
+.EX
# linux console, if patched to provide working
-# VT100 shift-in/shift-out, with corresponding font.
-linux-vt100|linux console with VT100 line-graphics,
+# VT100 shift\-in/shift\-out, with corresponding font.
+linux\-vt100|linux console with VT100 line\-graphics,
U8#0, use=linux,
-.sp
+\&
# uxterm with vt100Graphics resource set to false
-xterm-utf8|xterm relying on UTF-8 line-graphics,
+xterm\-utf8|xterm relying on UTF\-8 line\-graphics,
U8#1, use=xterm,
-.fi
-.ft
+.EE
.RE
.PP
-The name \*(``U8\*('' is chosen to be two characters,
-to permit it to be used by applications that use ncurses'
-termcap interface.
-.SS NCURSES_TRACE
-.PP
-During initialization, the \fBncurses\fR debugging library
-checks the NCURSES_TRACE environment variable.
-If it is defined, to a numeric value, \fBncurses\fR calls the \fBtrace\fR
-function, using that value as the argument.
-.PP
-The argument values, which are defined in \fBcurses.h\fR, provide several
-types of information.
-When running with traces enabled, your application will write the
-file \fBtrace\fR to the current directory.
-.PP
-See \fBcurs_trace\fP(3X) for more information.
-.SS TERM
-.PP
-Denotes your terminal type.
-Each terminal type is distinct, though many are similar.
-.PP
-\fBTERM\fP is commonly set by terminal emulators to help
-applications find a workable terminal description.
-Some of those choose a popular approximation, e.g.,
-\*(``ansi\*('', \*(``vt100\*('', \*(``xterm\*('' rather than an exact fit.
-Not infrequently, your application will have problems with that approach,
-e.g., incorrect function-key definitions.
-.PP
-If you set \fBTERM\fP in your environment,
-it has no effect on the operation of the terminal emulator.
-It only affects the way applications work within the terminal.
-Likewise, as a general rule (\fBxterm\fP being a rare exception),
-terminal emulators which allow you to
-specify \fBTERM\fP as a parameter or configuration value do
-not change their behavior to match that setting.
-.SS TERMCAP
-If the \fBncurses\fR library has been configured with \fItermcap\fR
-support, \fBncurses\fR will check for a terminal's description in
-termcap form if it is not available in the terminfo database.
-.PP
-The \fBTERMCAP\fP environment variable contains
-either a terminal description (with newlines stripped out),
-or a file name telling where the information denoted by
-the \fBTERM\fP environment variable exists.
-In either case, setting it directs \fBncurses\fR to ignore
-the usual place for this information, e.g., /etc/termcap.
-.SS TERMINFO
-.PP
-\fBncurses\fP can be configured to read from multiple terminal databases.
-The \fBTERMINFO\fP variable overrides the location for
-the default terminal database.
-Terminal descriptions (in terminal format) are stored in terminal databases:
+The two-character name \*(``U8\*('' was chosen to permit its use via
+.IR \%ncurses 's
+.I termcap
+interface.
+.SS "\fINCURSES_TRACE\fP"
+At initialization,
+.I \%ncurses
+(in its debugging configuration)
+checks for this variable's presence.
+If defined with an integral value,
+the library calls \fB\%curses_trace\fP(3X) with that value as the
+argument.
+.SS "\fITERM\fP"
+The
+.I TERM
+variable denotes the terminal type.
+Each is distinct,
+though many are similar.
+It is commonly set by terminal emulators to help applications find a
+workable terminal description.
+Some choose a popular approximation such as \*(``ansi\*('',
+\*(``vt100\*('', or \*(``xterm\*('' rather than an exact fit to their
+capabilities.
+Not infrequently,
+an application will have problems with that approach;
+for example,
+a key stroke may not operate correctly,
+or produce no effect but seeming garbage characters on the screen.
+.PP
+Setting
+.I TERM
+has no effect on hardware operation;
+it affects the way applications communicate with the terminal.
+Likewise,
+as a general rule
+(\fIxterm\fP(1) being a rare exception),
+terminal emulators that allow you to specify
+.I TERM
+as a parameter or configuration value do not change their behavior to
+match that setting.
+.SS "\fITERMCAP\fP"
+If
+.I \%ncurses
+is configured with
+.I termcap
+support,
+it checks for a terminal type description in
+.I termcap
+format if one in
+.I \%term\%info
+format is not available.
+Setting this variable directs
+.I \%ncurses
+to ignore the usual
+.I termcap
+database location,
+.IR \%/etc/termcap ;
+see
+.I \%TERMPATH
+below.
+.I \%TERMCAP
+should contain either a terminal description
+(with newlines stripped out),
+or a file name indicating where the information required by the
+.I TERM
+environment variable is stored.
+.SS "\fITERMINFO\fP"
+.I \%ncurses
+can be configured to read terminal type description databases in various
+locations using different formats.
+This variable overrides the default location.
.bP
-Normally these are stored in a directory tree,
-using subdirectories named by the first letter of the terminal names therein.
-.IP
-This is the scheme used in System V, which legacy Unix systems use,
-and the \fBTERMINFO\fP variable is used by \fIcurses\fP applications on those
-systems to override the default location of the terminal database.
+Descriptions in
+.I \%term\%info
+format are normally stored in a directory tree using subdirectories
+named by the common first letters of the terminal types named therein.
+This is the scheme used in System\ V.
.bP
-If \fBncurses\fP is built to use hashed databases,
-then each entry in this list may be the path of a hashed database file, e.g.,
-.NS
-/usr/share/terminfo.db
-.NE
-.IP
+If
+.I \%ncurses
+is configured to use hashed databases,
+then
+.I \%TERM\%INFO
+may name its location,
+such as
+.IR \%/usr/share/terminfo.db ,
rather than
-.NS
-/usr/share/terminfo/
-.NE
-.IP
-The hashed database uses less disk-space and is a little faster than the
+.IR \%/usr/share/terminfo/ .
+.PP
+The hashed database uses less disk space and is a little faster than the
directory tree.
However,
some applications assume the existence of the directory tree,
-reading it directly
-rather than using the terminfo library calls.
+and read it directly
+rather than using the
+.I \%term\%info
+API.
.bP
-If \fBncurses\fP is built with a support for reading termcap files
-directly, then an entry in this list may be the path of a termcap file.
+If
+.I \%ncurses
+is configured with
+.I termcap
+support,
+this variable may contain the location of a
+.I \%termcap
+file.
.bP
-If the \fBTERMINFO\fP variable begins with
-\*(``hex:\*('' or \*(``b64:\*('',
-\fBncurses\fP uses the remainder of that variable as a compiled terminal
+If the value of
+.I \%TERM\%INFO
+begins with \*(``hex:\*('' or \*(``b64:\*('',
+.I \%ncurses
+uses the remainder of the value as a compiled
+.I \%term\%info
description.
-You might produce the base64 format using \fBinfocmp\fP(1M):
-.NS
-TERMINFO="$(infocmp -0 -Q2 -q)"
+You might produce the base64 format using \fB\%infocmp\fP(1M).
+.RS 4
+.IP
+.EX
+TERMINFO=$(infocmp \-0 \-Q2 \-q)
export TERMINFO
-.NE
+.EE
+.RE
.IP
-The compiled description is used if it corresponds to the terminal identified
-by the \fBTERM\fP variable.
-.PP
-Setting \fBTERMINFO\fP is the simplest,
-but not the only way to set location of the default terminal database.
-The complete list of database locations in order follows:
-.RS 3
+The compiled description is used only if it corresponds to the terminal
+type identified by
+.IR TERM .
+.PP
+Setting
+.I \%TERM\%INFO
+is the simplest,
+but not the only,
+way to direct
+.I \%ncurses
+to a terminal database.
+The search path is as follows.
.bP
-the last terminal database to which \fBncurses\fR wrote,
-if any, is searched first
+the last terminal database to which the running
+.I \%ncurses
+application wrote,
+if any
.bP
-the location specified by the TERMINFO environment variable
+the location specified by the
+.I \%TERM\%INFO
+environment variable
.bP
-$HOME/.terminfo
+.I $HOME/.terminfo
.bP
-locations listed in the TERMINFO_DIRS environment variable
+locations listed in the
+.I \%TERMINFO_DIRS
+environment variable
+.ds td \" empty
+.if !'@TERMINFO_DIRS@'no default value' .as td @TERMINFO_DIRS@
+.if !'@TERMINFO@\*(td'' \{\
.bP
-one or more locations whose names are configured and compiled into the
-ncurses library, i.e.,
+location(s) configured and compiled into
+.I \%ncurses
.RS 3
+.if !'\*(td'' \{\
.bP
-@TERMINFO_DIRS@ (corresponding to the TERMINFO_DIRS variable)
+.I \%@TERMINFO_DIRS@
+.\}
+.if !'@TERMINFO'' .if !'\*(td'@TERMINFO@' \{\
.bP
-@TERMINFO@ (corresponding to the TERMINFO variable)
+.I \%@TERMINFO@
+.\}
+.\}
.RE
-.RE
-.PP
-.SS TERMINFO_DIRS
-.PP
-Specifies a list of locations to search for terminal descriptions.
-Each location in the list is a terminal database as described in
-the section on the \fBTERMINFO\fP variable.
-The list is separated by colons (i.e., ":") on Unix, semicolons on OS/2 EMX.
-.PP
-There is no corresponding feature in System V terminfo;
-it is an extension developed for \fBncurses\fP.
-.SS TERMPATH
+.SS "\fITERMINFO_DIRS\fP"
+This variable specifies a list of locations,
+akin to
+.IR PATH ,
+in which
+.I \%ncurses
+searches for the terminal type descriptions described by
+.I \%TERMINFO
+above.
+The list items are separated by colons on Unix
+and semicolons on OS/2 EMX.
+System\ V
+.I \%term\%info
+lacks a corresponding feature;
+.I \%TERMINFO_DIRS
+is an
+.I \%ncurses
+extension.
+.SS "\fITERMPATH\fP"
+If
+.I \%TERMCAP
+does not hold a terminal type description or file name,
+then
+.I \%ncurses
+checks the contents of
+.IR \%TERMPATH ,
+a list of locations,
+akin to
+.IR PATH ,
+in which it searches for
+.I termcap
+terminal type descriptions.
+The list items are separated by colons on Unix
+and semicolons on OS/2 EMX.
+.PP
+If both
+.I \%TERMCAP
+and
+.I \%TERMPATH
+are unset or invalid,
+.I \%ncurses
+searches for the files
+.IR \%/etc/termcap ,
+.IR \%/usr/share/misc/termcap ,
+and
+.IR \%$HOME/.termcap ,
+in that order.
+.SH "ALTERNATE CONFIGURATIONS"
+Many different
+.I \%ncurses
+configurations are possible,
+determined by the options given to the
+.I \%configure
+script when building the library.
+Run the script with the
+.B \-\-help
+option to peruse them all.
+A few are of particular significance to the application developer
+employing
+.IR \%ncurses .
+.TP 5
+.B \-\-disable\-overwrite
+The standard include for \fI\%ncurses\fP is as noted in \fBSYNOPSIS\fP:
+.RS 5
.PP
-If \fBTERMCAP\fP does not hold a file name then \fBncurses\fR checks
-the \fBTERMPATH\fP environment variable.
-This is a list of filenames separated by spaces or colons (i.e., ":") on Unix,
-semicolons on OS/2 EMX.
+.RS 4
+.EX
+\fB#include <curses.h>\fP
+.EE
+.RE
.PP
-If the \fBTERMPATH\fP environment variable is not set,
-\fBncurses\fR looks in the files
-.NS
-/etc/termcap, /usr/share/misc/termcap and $HOME/.termcap,
-.NE
+This option is used to avoid filename conflicts when \fI\%ncurses\fP
+is not the main implementation of curses of the computer.
+If \fI\%ncurses\fP is installed disabling overwrite,
+it puts its headers in a subdirectory,
+e.g.,
.PP
-in that order.
+.RS 4
+.EX
+\fB#include <ncurses/curses.h>\fP
+.EE
+.RE
.PP
-The library may be configured to disregard the following variables when the
-current user is the superuser (root), or if the application uses setuid or
-setgid permissions:
-.NS
-$TERMINFO, $TERMINFO_DIRS, $TERMPATH, as well as $HOME.
-.NE
-.SH ALTERNATE CONFIGURATIONS
-.PP
-Several different configurations are possible,
-depending on the configure script options used when building \fBncurses\fP.
-There are a few main options whose effects are visible to the applications
-developer using \fBncurses\fP:
-.TP 5
-\-\-disable\-overwrite
-The standard include for \fBncurses\fP is as noted in \fBSYNOPSIS\fP:
-.NS
-\fB#include <curses.h>\fR
-.NE
-.IP
-This option is used to avoid filename conflicts when \fBncurses\fP
-is not the main implementation of curses of the computer.
-If \fBncurses\fP is installed disabling overwrite, it puts its headers in
-a subdirectory, e.g.,
-.NS
-\fB#include <ncurses/curses.h>\fR
-.NE
-.IP
It also omits a symbolic link which would allow you to use \fB\-lcurses\fP
to build executables.
+.RE
.TP 5
-\-\-enable\-widec
+.B \-\-enable\-widec
The configure script renames the library and
(if the \fB\-\-disable\-overwrite\fP option is used)
puts the header files in a different subdirectory.
All of the library names have a \*(``w\*('' appended to them,
i.e., instead of
-.NS
-\fB\-lncurses\fR
-.NE
-.IP
+.RS 5
+.PP
+.RS 4
+.EX
+\fB\-lncurses\fP
+.EE
+.RE
+.PP
you link with
-.NS
-\fB\-lncursesw\fR
-.NE
-.IP
+.PP
+.RS 4
+.EX
+\fB\-lncursesw\fP
+.EE
+.RE
+.PP
You must also enable the wide-character features in the header file
when compiling for the wide-character library
to use the extended (wide-character) functions.
-The symbol which enables these features has changed since XSI Curses, Issue 4:
-.RS
+The symbol which enables these features has changed
+since X/Open Curses, Issue 4:
.bP
Originally, the wide-character feature required the symbol
\fB_XOPEN_SOURCE_EXTENDED\fP
@@ -1270,19 +1729,19 @@ Alternatively, you can enable the feature by defining \fBNCURSES_WIDECHAR\fP
with the caveat that some other header file than \fBcurses.h\fP
may require a specific value for \fB_XOPEN_SOURCE\fP
(or a system-specific symbol).
-.RE
-.IP
-The \fBcurses.h\fP file which is installed for the wide-character
-library is designed to be compatible with the normal library's header.
-Only the size of the \fBWINDOW\fP structure differs, and very few
-applications require more than a pointer to \fBWINDOW\fPs.
-.IP
+.PP
+The \fI\%curses.h\fP header file installed for the wide-character
+library is designed to be compatible with the non-wide library's header.
+Only the size of the \fI\%WINDOW\fP structure differs;
+few applications require more than pointers to \fI\%WINDOW\fPs.
+.PP
If the headers are installed allowing overwrite,
the wide-character library's headers should be installed last,
to allow applications to be built using either library
from the same set of headers.
+.RE
.TP 5
-\-\-with\-pthread
+.B \-\-with\-pthread
The configure script renames the library.
All of the library names have a \*(``t\*('' appended to them
(before any \*(``w\*('' added by \fB\-\-enable\-widec\fP).
@@ -1292,20 +1751,20 @@ allow read-only access.
At the same time, setter-functions are provided to set these values.
Some applications (very few) may require changes to work with this convention.
.TP 5
-\-\-with\-shared
-.TP
-\-\-with\-normal
-.TP
-\-\-with\-debug
-.TP
-\-\-with\-profile
+.B \-\-with\-shared
+.tQ
+.B \-\-with\-normal
+.tQ
+.B \-\-with\-debug
+.tQ
+.B \-\-with\-profile
The shared and normal (static) library names differ by their suffixes,
e.g., \fBlibncurses.so\fP and \fBlibncurses.a\fP.
The debug and profiling libraries add a \*(``_g\*(''
and a \*(``_p\*('' to the root names respectively,
e.g., \fBlibncurses_g.a\fP and \fBlibncurses_p.a\fP.
.TP 5
-\-\-with\-termlib
+.B \-\-with\-termlib
Low-level functions which do not depend upon whether the library
supports wide-characters, are provided in the tinfo library.
.IP
@@ -1316,242 +1775,487 @@ when only low-level functions are needed.
Those functions are described in these pages:
.RS
.bP
-\fBcurs_extend\fP(3X) \- miscellaneous curses extensions
+\fB\%curs_extend\fP(3X) \- miscellaneous \fIcurses\fP extensions
.bP
-\fBcurs_inopts\fR(3X) \- \fBcurses\fR input options
+\fB\%curs_inopts\fP(3X) \- \fIcurses\fP input options
.bP
-\fBcurs_kernel\fR(3X) \- low-level \fBcurses\fR routines
+\fB\%curs_kernel\fP(3X) \- low-level \fIcurses\fP routines
.bP
-\fBcurs_termattrs\fR(3X) \- \fBcurses\fR environment query routines
+\fB\%curs_termattrs\fP(3X) \- \fIcurses\fP environment query routines
.bP
-\fBcurs_termcap\fR(3X) \- \fBcurses\fR emulation of termcap
+\fB\%curs_termcap\fP(3X) \- \fIcurses\fP emulation of \fItermcap\fP
.bP
-\fBcurs_terminfo\fR(3X) \- \fBcurses\fR interfaces to terminfo database
+\fB\%curs_terminfo\fP(3X) \- \fIcurses\fP interface to \fIterminfo\fP
+database
.bP
-\fBcurs_util\fR(3X) \- miscellaneous \fBcurses\fR utility routines
+\fB\%curs_util\fP(3X) \- miscellaneous \fIcurses\fP utility routines
.RE
.TP 5
-\-\-with\-trace
+.B \-\-with\-trace
The \fBtrace\fP function normally resides in the debug library,
but it is sometimes useful to configure this in the shared library.
Configure scripts should check for the function's existence rather
than assuming it is always in the debug library.
.SH FILES
-.TP 5
-@DATADIR@/tabset
-directory containing initialization files for the terminal capability database
-@TERMINFO@
-terminal capability database
-.SH SEE ALSO
-\fBterminfo\fR(\*n) and related pages whose names begin
-\*(``curs_\*('' for detailed routine descriptions.
-.br
-\fBcurs_variables\fR(3X)
-.br
-\fBuser_caps\fP(5) for user-defined capabilities
-.SH EXTENSIONS
-The \fBncurses\fR library can be compiled with an option (\fB\-DUSE_GETCAP\fR)
-that falls back to the old-style /etc/termcap file if the terminal setup code
-cannot find a terminfo entry corresponding to \fBTERM\fR.
-Use of this feature
-is not recommended, as it essentially includes an entire termcap compiler in
-the \fBncurses\fR startup code, at significant cost in core and startup cycles.
-.PP
-The \fBncurses\fR library includes facilities for capturing mouse events on
-certain terminals (including xterm).
-See the \fBcurs_mouse\fR(3X)
-manual page for details.
-.PP
-The \fBncurses\fR library includes facilities for responding to window
-resizing events, e.g., when running in an xterm.
-See the \fBresizeterm\fR(3X)
-and \fBwresize\fR(3X) manual pages for details.
-In addition, the library may be configured with a \fBSIGWINCH\fP handler.
-.PP
-The \fBncurses\fR library extends the fixed set of function key capabilities
-of terminals by allowing the application designer to define additional
-key sequences at runtime.
-See the \fBdefine_key\fR(3X)
-\fBkey_defined\fR(3X),
-and \fBkeyok\fR(3X) manual pages for details.
-.PP
-The \fBncurses\fR library can exploit the capabilities of terminals which
-implement the ISO\-6429 SGR 39 and SGR 49 controls, which allow an application
-to reset the terminal to its original foreground and background colors.
-From the users' perspective, the application is able to draw colored
-text on a background whose color is set independently, providing better
-control over color contrasts.
-See the \fBdefault_colors\fR(3X) manual page for details.
-.PP
-The \fBncurses\fR library includes a function for directing application output
-to a printer attached to the terminal device.
-See the \fBcurs_print\fR(3X) manual page for details.
-.SH PORTABILITY
-The \fBncurses\fR library is intended to be BASE-level conformant with XSI
-Curses.
-The EXTENDED XSI Curses functionality
-(including color support) is supported.
-.PP
-A small number of local differences (that is, individual differences between
-the XSI Curses and \fBncurses\fR calls) are described in \fBPORTABILITY\fR
-sections of the library man pages.
-.SS Error checking
-.PP
-In many cases, X/Open Curses is vague about error conditions,
-omitting some of the SVr4 documentation.
-.PP
-Unlike other implementations, this one checks parameters such as pointers
-to WINDOW structures to ensure they are not null.
-The main reason for providing this behavior is to guard against programmer
-error.
-The standard interface does not provide a way for the library
-to tell an application which of several possible errors were detected.
-Relying on this (or some other) extension will adversely affect the
-portability of curses applications.
-.SS Extensions versus portability
-.PP
-Most of the extensions provided by ncurses have not been standardized.
-Some have been incorporated into other implementations, such as
-PDCurses or NetBSD curses.
-Here are a few to consider:
+.TP
+.I @DATADIR@/tabset
+tab stop initialization database
+.TP
+.I \*d
+compiled terminal capability database
+.SH NOTES
+X/Open Curses permits most functions it specifies to be made available
+as macros as well.
+.\" See X/Open Curses Issue 4, Version 2, pp. 227-234.
+.\" See X/Open Curses Issue 7, pp. 311-318.
+\fI\%ncurses\fP does so
.bP
-The routine \fBhas_key\fR is not part of XPG4, nor is it present in SVr4.
-See the \fBcurs_getch\fR(3X) manual page for details.
+for functions that return values via their parameters,
.bP
-The routine \fBslk_attr\fR is not part of XPG4, nor is it present in SVr4.
-See the \fBcurs_slk\fR(3X) manual page for details.
+to support obsolete features,
+.bP
+to reuse functions
+(for example,
+those that move the cursor before another operation),
+and
.bP
-The routines \fBgetmouse\fR, \fBmousemask\fR, \fBungetmouse\fR,
-\fBmouseinterval\fR, and \fBwenclose\fR relating to mouse interfacing are not
-part of XPG4, nor are they present in SVr4.
-See the \fBcurs_mouse\fR(3X) manual page for details.
+a few special cases.
+.PP
+If the standard output file descriptor of an
+.I \%ncurses
+program is redirected to something that is not a terminal device,
+the library writes screen updates to the standard error file descriptor.
+This was an undocumented feature of SVr3
+.IR curses .
+.PP
+See subsection \*(``Header Files\*('' below regarding symbols exposed by
+inclusion of \fI\%curses.h\fP.
+.SH EXTENSIONS
+.I \%ncurses
+enables an application to capture mouse events on certain terminals,
+including \fI\%xterm\fP(1);
+see \fB\%curs_mouse\fP(3X).
+.PP
+.I \%ncurses
+provides a means of responding to window resizing events,
+as when running in a GUI terminal emulator application such as
+.IR \%xterm ;
+see \fB\%resizeterm\fP(3X) and \fB\%wresize\fP(3X).
+.PP
+.I \%ncurses
+allows an application to query the terminal for the presence of a wide
+variety of special keys;
+see \fB\%has_key\fP(3X).
+.PP
+.I \%ncurses
+extends the fixed set of function key capabilities specified by X/Open
+Curses by allowing the application programmer to define additional key
+events at runtime;
+see
+\fB\%define_key\fP(3X),
+\fB\%key_defined\fP(3X),
+\fB\%keybound\fP(3X),
+and
+\fB\%keyok\fP(3X).
+.PP
+.I \%ncurses
+can exploit the capabilities of terminals implementing ISO\ 6429/ECMA-48
+SGR\ 39 and SGR\ 49 sequences,
+which allow an application to reset the terminal to its original
+foreground and background colors.
+From a user's perspective,
+the application is able to draw colored text on a background whose color
+is set independently,
+providing better control over color contrasts.
+See \fB\%default_colors\fP(3X).
+.PP
+An
+.I \%ncurses
+application can eschew knowledge of
+.I \%WINDOW
+structure internals,
+instead using accessor functions such as
+\fB\%is_scrollok\fP(3X).
+.PP
+.I \%ncurses
+enables an application to direct application output to a printer
+attached to the terminal device;
+see \fB\%curs_print\fP(3X).
+.PP
+.I \%ncurses
+offers \fB\%slk_attr\fP(3X) as a counterpart of \fB\%attr_get\fP(3X) for
+soft-label key lines,
+and \fB\%extended_slk_color\fP(3X) as a form of \fB\%slk_color\fP(3X)
+that can gather color information from them when many colors are
+supported.
+.PP
+Some extensions are available only if
+.I \%ncurses
+permits modification of \fB\%unctrl\fP(3X)'s behavior;
+see \fB\%use_legacy_coding\fP(3X).
+.I \%ncurses
+is compiled to support them;
+section \*(``ALTERNATE CONFIGURATIONS\*('' describes how.
.bP
-The routine \fBmcprint\fR was not present in any previous curses implementation.
-See the \fBcurs_print\fR(3X) manual page for details.
+Rudimentary support for multi-threaded applications may be available;
+see \fBcurs_threads\fP(3X).
.bP
-The routine \fBwresize\fR is not part of XPG4, nor is it present in SVr4.
-See the \fBwresize\fR(3X) manual page for details.
+Functions that ease the management of multiple screens can be exposed;
+see \fBcurs_sp_funcs\fP(3X).
.bP
-The WINDOW structure's internal details can be hidden from application
-programs.
-See \fBcurs_opaque\fR(3X) for the discussion of \fBis_scrollok\fR, etc.
+To aid applications to debug their memory usage,
+.I ncurses
+optionally offers functions to more aggressively free memory it
+dynamically allocates itself;
+see \fBcurs_memleaks\fP(3X).
.bP
-This implementation can be configured to provide rudimentary support
-for multi-threaded applications.
-See \fBcurs_threads\fR(3X) for details.
+The library facilitates auditing and troubleshooting of its behavior;
+see \fBcurs_trace\fP(3X).
.bP
-This implementation can also be configured to provide a set of functions which
-improve the ability to manage multiple screens.
-See \fBcurs_sp_funcs\fR(3X) for details.
-.SS Padding differences
-.PP
-In historic curses versions, delays embedded in the capabilities \fBcr\fR,
-\fBind\fR, \fBcub1\fR, \fBff\fR and \fBtab\fR activated corresponding delay
-bits in the UNIX tty driver.
-In this implementation, all padding is done by sending NUL bytes.
-This method is slightly more expensive, but narrows the interface
-to the UNIX kernel significantly and increases the package's portability
-correspondingly.
-.SS Header files
-The header file \fB<curses.h>\fR automatically includes the header files
-\fB<stdio.h>\fR and \fB<unctrl.h>\fR.
+The compiler option
+.B \%\-DUSE_GETCAP
+causes the library to fall back to reading
+.I \%/etc/termcap
+if the terminal setup code cannot find a
+.I \%term\%info
+entry corresponding to
+.IR TERM .
+Use of this feature is not recommended,
+as it essentially includes an entire
+.I termcap
+compiler in the
+.I \%ncurses
+startup code,
+at a cost in memory usage and application launch latency.
+.PP
+.I \%PDCurses
+and NetBSD
+.I curses
+incorporate some
+.I \%ncurses
+extensions.
+Individual man pages indicate where this is the case.
+.SH PORTABILITY
+X/Open Curses defines two levels of conformance,
+\*(``base\*('' and \*(``enhanced\*(''.
+The latter includes several additional features,
+such as wide-character and color support.
+.I \%ncurses
+intends base-level conformance with X/Open Curses,
+and supports all features of its enhanced level
+except the \fB\%untic\fP utility.
+.PP
+Differences between X/Open Curses and
+.I \%ncurses
+are documented in the \*(``PORTABILITY\*('' sections of applicable man
+pages.
+.SS "Error Checking"
+In many cases, X/Open Curses is vague about error conditions,
+omitting some of the SVr4 documentation.
+.PP
+Unlike other implementations,
+.I \%ncurses
+checks pointer parameters,
+such as those to
+.I \%WINDOW
+structures,
+to ensure that they are not null.
+This is done primarily to guard against programmer error.
+The standard interface does not provide a way for the library
+to tell an application which of several possible errors occurred.
+Relying on this
+(or some other)
+extension adversely affects the portability of
+.I curses
+applications.
+.SS "Padding Differences"
+In historical
+.I curses
+implementations,
+delays embedded in the
+.I \%term\%info
+capabilities
+.B \%carriage_return
+.RB ( cr ),
+.B \%scroll_forward
+.RB ( ind ),
+.B \%cursor_left
+.RB ( cub1 ),
+.B \%form_feed
+.RB ( ff ),
+and
+.B \%tab
+.RB ( ht )
+activated corresponding delay bits in the Unix terminal driver.
+.I \%ncurses
+performs all padding by sending NUL bytes to the device.
+This method is slightly more expensive,
+but narrows the interface to the Unix kernel significantly and
+correspondingly increases the package's portability.
+.SS "Header Files"
+The header file
+.I \%curses.h
+itself includes the header files
+.I \%stdio.h
+and
+.IR \%unctrl.h .
.PP
X/Open Curses has more to say,
-but does not finish the story:
.RS 4
.PP
-The inclusion of <curses.h> may make visible all symbols
-from the headers <stdio.h>, <term.h>, <termios.h>, and <wchar.h>.
+The inclusion of
+.I \%curses.h
+may make visible all symbols from the headers
+.IR \%stdio.h ,
+.IR \%term.h ,
+.IR \%termios.h ,
+and
+.IR \%wchar.h .
.RE
.PP
-Here is a more complete story:
+but does not finish the story.
+A more complete account follows.
.bP
-Starting with BSD curses, all implementations have included <stdio.h>.
+Starting with 4BSD
+.I curses
+(1980)
+all implementations have provided a
+.I \%curses.h
+file.
.IP
-BSD curses included <curses.h> and <unctrl.h> from an internal header
-"curses.ext" ("ext" was a short name for \fIexterns\fP).
+BSD
+.I curses
+code included
+.I \%curses.h
+and
+.I \%unctrl.h
+from an internal header file
+.IR \%curses.ext ,
+where
+\*(``ext\*('' abbreviated \*(``externs\*(''.
.IP
-BSD curses used <stdio.h> internally (for \fBprintw\fP and \fBscanw\fP),
-but nothing in <curses.h> itself relied upon <stdio.h>.
+The implementations of
+.I \%printw
+and
+.I \%scanw
+used undocumented internal functions of the standard I/O library
+.RI ( _doprnt
+and
+.IR _doscan ),
+but nothing in
+.I \%curses.h
+itself relied upon
+.IR \%stdio.h .
.bP
-SVr2 curses added \fBnewterm\fP(3X), which relies upon <stdio.h>.
-That is, the function prototype uses \fBFILE\fP.
+SVr2
+.I curses
+added
+.IR \%newterm ,
+which relies upon
+.I \%stdio.h
+because its function prototype employs the
+.I FILE
+type.
.IP
-SVr4 curses added \fBputwin\fP and \fBgetwin\fP, which also use <stdio.h>.
+SVr4
+.I curses
+added
+.I \%putwin
+and
+.IR \%getwin ,
+which also use
+.IR \%stdio.h .
.IP
-X/Open Curses documents all three of these functions.
+X/Open Curses specifies all three of these functions.
.IP
-SVr4 curses and X/Open Curses do not require the developer to
-include <stdio.h> before including <curses.h>.
-Both document curses showing <curses.h> as the only required header.
+SVr4
+.I curses
+and X/Open Curses do not require the developer to include
+.I \%stdio.h
+before
+.IR \%curses.h .
+Both document use of
+.I curses
+as requiring only
+.IR \%curses.h .
.IP
-As a result, standard <curses.h> will always include <stdio.h>.
+As a result,
+standard
+.I \%curses.h
+always includes
+.IR \%stdio.h .
.bP
-X/Open Curses is inconsistent with respect to SVr4 regarding <unctrl.h>.
+X/Open Curses and SVr4
+.I curses
+are inconsistent with respect to
+.IR \%unctrl.h .
.IP
-As noted in \fBcurs_util\fP(3X), ncurses includes <unctrl.h> from
-<curses.h> (like SVr4).
+As noted in \fBcurs_util\fP(3X),
+.I \%ncurses
+includes
+.I \%unctrl.h
+from
+.I \%curses.h
+(as SVr4 does).
.bP
-X/Open's comments about <term.h> and <termios.h> may refer to HP-UX and AIX:
+X/Open Curses's comments about
+.I \%term.h
+and
+.I \%termios.h
+may refer to HP-UX and AIX.
.IP
-HP-UX curses includes <term.h> from <curses.h>
-to declare \fBsetupterm\fP in curses.h,
-but ncurses (and Solaris curses) do not.
+HP-UX
+.I curses
+includes
+.I \%term.h
+from
+.I \%curses.h
+to declare
+.I \%setupterm
+in
+.IR \%curses.h ,
+but
+.I \%ncurses
+and Solaris
+.I curses
+do not.
.IP
-AIX curses includes <term.h> and <termios.h>.
-Again, ncurses (and Solaris curses) do not.
+AIX
+.I curses
+includes
+.I \%term.h
+and
+.IR \% termios.h .
+Again,
+.I \%ncurses
+and Solaris
+.I curses
+do not.
.bP
-X/Open says that <curses.h> \fImay\fP include <term.h>,
-but there is no requirement that it do that.
+X/Open Curses says that
+.I \%curses.h
+.B may
+include
+.IR \%term.h ,
+but does not require it to do so.
.IP
-Some programs use functions declared in both <curses.h> and <term.h>,
-and must include both headers in the same module.
-Very old versions of AIX curses required including <curses.h>
-before including <term.h>.
+Some programs use functions declared in both
+.I \%curses.h
+and
+.IR \%term.h ,
+and must include both header files in the same module.
+Very old versions of AIX
+.I curses
+required inclusion of
+.I \%curses.h
+before
+.IR \%term.h .
.IP
-Because ncurses header files include the headers needed to
-define datatypes used in the headers,
-ncurses header files can be included in any order.
-But for portability, you should include <curses.h> before <term.h>.
+The header files supplied by
+.I \%ncurses
+include the standard library headers required for its declarations,
+so
+.IR \%ncurses 's
+own header files can be included in any order.
+But for portability,
+you should include
+.I \%curses.h
+before
+.IR \%term.h .
.bP
-X/Open Curses says \fI"may make visible"\fP
-because including a header file does not necessarily make all symbols
-in it visible (there are ifdef's to consider).
+X/Open Curses says \*(``may make visible\*('' because including a header
+file does not necessarily make visible all of the symbols in it
+(consider
+.B \%#ifdef
+and similar).
.IP
-For instance, in ncurses <wchar.h> \fImay\fP be included if
-the proper symbol is defined, and if ncurses is configured for
-wide-character support.
-If the header is included, its symbols may be made visible.
-That depends on the value used for \fB_XOPEN_SOURCE\fP
+For instance,
+.IR \%ncurses 's
+.I \%curses.h
+.B may \" bold to contrast with preceding italic
+include
+.I \%wchar.h
+if the proper symbol is defined,
+and if
+.I \%ncurses
+is configured for wide-character support.
+If
+.I \%wchar.h
+is included,
+its symbols
+.B may \" bold for consistency in this paragraph
+be made visible depending on the value of the
+.B _XOPEN_SOURCE
feature test macro.
.bP
-X/Open Curses documents one required header,
-in a special case: <stdarg.h> before <curses.h> to prototype
-the \fBvw_printw\fP and \fBvw_scanw\fP functions
+X/Open Curses mandates an application's inclusion of one standard C
+library header in a special case:
+.I \%stdarg.h
+before
+.I \%curses.h
+to prototype the functions
+.I \%vw_printw
+and
+.I \%vw_scanw
(as well as the obsolete
-the \fBvwprintw\fP and \fBvwscanw\fP functions).
-Each of those uses a \fBva_list\fP parameter.
+.I \%vwprintw
+and
+.IR \%vwscanw ).
+Each of these takes a variadic argument list,
+a
+.I \%va_list
+parameter,
+like that of \fI\%printf\fP(3).
.IP
-The two obsolete functions were introduced in SVr3.
-The other functions were introduced in X/Open Curses.
-In between, SVr4 curses provided for the possibility that
-an application might include either <varargs.h> or <stdarg.h>.
-Initially, that was done by using \fBvoid*\fP for the \fBva_list\fP
+SVr3
+.I curses
+introduced
+the two obsolete functions,
+and X/Open Curses the others.
+In between,
+SVr4
+.I curses
+provided for the possibility that an application might include either
+.I \%varargs.h
+or
+.IR \%stdarg.h .
+These represented contrasting approaches to handling variadic
+argument lists.
+The older interface,
+.IR \%varargs.h ,
+used a pointer to
+.I char \" V7, 32V, System III, 3BSD
+for variadic functions'
+.I \%va_list
parameter.
-Later, a special type (defined in <stdio.h>) was introduced,
-to allow for compiler type-checking.
-That special type is always available,
-because <stdio.h> is always included by <curses.h>.
+Later,
+the list acquired its own standard data type,
+.IR \%va_list ,
+defined in
+.IR \%stdarg.h ,
+empowering the compiler to check the types of a function call's actual
+parameters against the formal ones declared in its prototype.
.IP
-None of the X/Open Curses implementations require an application
-to include <stdarg.h> before <curses.h> because they either
-have allowed for a special type, or (like ncurses) include <stdarg.h>
-directly to provide a portable interface.
-.SH NOTES
-.PP
-If standard output from a \fBncurses\fR program is re-directed to something
-which is not a tty, screen updates will be directed to standard error.
-This was an undocumented feature of AT&T System V Release 3 curses.
+No conforming implementations of X/Open Curses require an application
+to include
+.I \%stdarg.h
+before
+.I \%curses.h
+because they either have allowed for a special type,
+or,
+like
+.IR \%ncurses ,
+they include
+.I \%stdarg.h
+themselves to provide a portable interface.
.SH AUTHORS
-Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey.
-Based on pcurses by Pavel Curtis.
+Zeyd M. Ben-Halim,
+Eric S. Raymond,
+Thomas E. Dickey.
+Based on
+.I \%pcurses
+by Pavel Curtis.
+.SH SEE ALSO
+\fB\%curs_variables\fP(3X),
+\fB\%terminfo\fP(5),
+\fB\%user_caps\fP(5)
diff --git a/man/new_pair.3x b/man/new_pair.3x
index c22523887ac6..5e844bf8fc25 100644
--- a/man/new_pair.3x
+++ b/man/new_pair.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -29,44 +29,38 @@
.\"
.\" Author: Thomas E. Dickey
.\"
-.\" $Id: new_pair.3x,v 1.15 2020/10/17 23:54:50 tom Exp $
-.TH new_pair 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: new_pair.3x,v 1.46 2024/03/16 15:35:01 tom Exp $
+.TH new_pair 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
-.de NS
-.ie n .sp
-.el .sp .5
-.ie n .in +4
-.el .in +2
-.nf
-.ft C \" Courier
-..
-.de NE
-.fi
-.ft R
-.ie n .in -4
-.el .in -2
-..
.SH NAME
-\fBalloc_pair\fP,
-\fBfind_pair\fP,
-\fBfree_pair\fP \- new curses color-pair functions
+\fB\%alloc_pair\fP,
+\fB\%find_pair\fP,
+\fB\%free_pair\fP \-
+dynamically allocate \fIcurses\fR color pairs
.SH SYNOPSIS
-\fB#include <curses.h>\fP
-.sp
-\fBint alloc_pair(int \fP\fIfg\fP\fB, int \fP\fIbg\fP\fB);\fP
-.br
-\fBint find_pair(int \fP\fIfg\fP\fB, int \fP\fIbg\fP\fB);\fP
-.br
-\fBint free_pair(int \fP\fIpair\fP\fB);\fP
+.nf
+\fB#include <curses.h>
+.PP
+\fBint alloc_pair(int \fIfg\fP, int \fIbg\fP);
+\fBint find_pair(int \fIfg\fP, int \fIbg\fP);
+\fBint free_pair(int \fIpair\fP);
+.fi
.SH DESCRIPTION
-These functions are an extension to the curses library.
+These functions are an extension to the \fIcurses\fP library.
They permit an application to dynamically allocate a color pair using
the foreground/background colors rather than assign a fixed color pair number,
and return an unused pair to the pool.
@@ -80,31 +74,37 @@ it is unlikely that your terminal allows you to modify the attributes
of a given character cell without rewriting it.
That is, the foreground and background colors are applied as a pair.
.bP
-Color pairs are the curses library's way of managing a color palette
+Color pairs are the \fIcurses\fP library's way of managing a color palette
on a terminal.
-If the library does not keep track of the \fIcombinations\fP of
+If the library does not keep track of the \fIcombinations\fP of
colors which are displayed, it will be inefficient.
-.bP
+.IP \(bu 4
For simple terminal emulators
with only a few dozen color combinations,
it is convenient to use the maximum number of combinations
as the limit on color pairs:
-.NS
-\fBCOLORS\fP\fI * \fP\fBCOLORS\fP
-.NE
-.bP
+.PP
+.RS 8
+.EX
+\fBCOLORS\fI * \fBCOLORS\fR
+.EE
+.RE
+.IP \(bu 4
Terminals which support \fIdefault colors\fP distinct
-from \*(``ANSI colors\*(''
+from \*(``ANSI colors\*(''
add to the possible combinations, producing this total:
-.NS
-\fI( \fP\fBCOLORS\fP\fI + 1 ) * ( \fP\fBCOLORS\fP\fI + 1 )\fP
-.NE
+.PP
+.RS 8
+.EX
+\fI( \fBCOLORS\fI + 1 ) * ( \fBCOLORS\fI + 1 )\fR
+.EE
+.RE
.bP
An application might use up to a few dozen color pairs to
implement a predefined color scheme.
.IP
Beyond that lies in the realm of programs using the foreground
-and background colors for \*(``ASCII art\*(''
+and background colors for \*(``ASCII art\*(''
(or some other non-textual application).
.IP
Also beyond those few dozen pairs, the required size for a table
@@ -127,10 +127,11 @@ If the table fills up, \fBalloc_pair\fP discards the least-recently
allocated entry using \fBfree_pair\fP and allocates a new color pair.
.PP
All of the color pairs are allocated from a table of possible color pairs.
-The size of the table is determined by the terminfo \fIpairs\fP capability.
+The size of the table is determined by the terminfo \fBpairs\fP capability.
The table is shared with \fBinit_pair\fP;
in fact \fBalloc_pair\fP calls \fBinit_pair\fP after
-updating the ncurses library's fast index to the colors versus color pairs.
+updating the \fI\%ncurses\fP library's fast index
+to the colors versus color pairs.
.SS find_pair
The \fBfind_pair\fP function accepts parameters for
foreground and background color, and
@@ -141,7 +142,6 @@ Otherwise it returns \-1.
Marks the given color pair as unused,
i.e., like color pair 0.
.SH RETURN VALUE
-.PP
The \fBalloc_pair\fP function returns a color pair number in the range
1 through \fBCOLOR_PAIRS\fP\-1, unless it encounters an error updating
its fast index to the color pair values, preventing it from allocating
@@ -155,12 +155,12 @@ or \-1 if not.
Likewise, \fBfree_pair\fP returns \fBOK\fP unless it encounters an
error updating the fast index or if no such color pair is in use.
.SH PORTABILITY
-These routines are specific to ncurses.
+These routines are specific to \fI\%ncurses\fP.
They were not supported on
Version 7, BSD or System V implementations.
It is recommended that
-any code depending on them be conditioned using NCURSES_VERSION.
+any code depending on them be conditioned using \fB\%NCURSES_VERSION\fP.
+.SH AUTHORS
+Thomas Dickey
.SH SEE ALSO
-\fBcurs_color\fR(3X).
-.SH AUTHOR
-Thomas Dickey.
+\fB\%curs_color\fP(3X)
diff --git a/man/panel.3x b/man/panel.3x
index 932ef48eef7d..c63b4315699b 100644
--- a/man/panel.3x
+++ b/man/panel.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2016,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,253 +27,264 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: panel.3x,v 1.39 2020/02/15 21:06:40 tom Exp $
-.TH panel 3X ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: panel.3x,v 1.63 2024/03/16 15:35:01 tom Exp $
+.TH panel 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
.SH NAME
-panel \- panel stack extension for curses
+panel \-
+panel stack extension for \fIcurses\fP
.SH SYNOPSIS
-\fB#include <panel.h>\fR
-.P
-\fBcc [flags] sourcefiles \-lpanel \-lncurses\fR
-.P
-\fBPANEL *new_panel(WINDOW *\fIwin\fB);\fR
-.sp
-\fBint bottom_panel(PANEL *\fIpan\fB);\fR
-.br
-\fBint top_panel(PANEL *\fIpan\fB);\fR
-.br
-\fBint show_panel(PANEL *\fIpan\fB);\fR
-.br
-\fBvoid update_panels(void);\fR
-.br
-\fBint hide_panel(PANEL *\fIpan\fB);\fR
-.sp
-\fBWINDOW *panel_window(const PANEL *\fIpan\fB);\fR
-.br
-\fBint replace_panel(PANEL *\fIpan\fB, WINDOW *\fIwindow\fB);\fR
-.br
-\fBint move_panel(PANEL *\fIpan\fB, int \fIstarty\fB, int \fIstartx\fB);\fR
-.br
-\fBint panel_hidden(const PANEL *\fIpan\fB);\fR
-.sp
-\fBPANEL *panel_above(const PANEL *\fIpan\fB);\fR
-.br
-\fBPANEL *panel_below(const PANEL *\fIpan\fB);\fR
-.sp
-\fBint set_panel_userptr(PANEL *\fIpan\fB, const void *\fIptr\fB);\fR
-.br
-\fBconst void *panel_userptr(const PANEL *\fIpan\fB);\fR
-.sp
-\fBint del_panel(PANEL *\fIpan\fB);\fR
-.sp
-/* ncurses-extensions */
-.br
-\fBPANEL *ground_panel(SCREEN *\fIsp\fB);\fR
-.br
-\fBPANEL *ceiling_panel(SCREEN *\fIsp\fB);\fR
-.br
+.nf
+\fB#include <panel.h>
+.PP
+\fBPANEL *new_panel(WINDOW *\fIwin\fP);
+.PP
+\fBint bottom_panel(PANEL *\fIpan\fP);
+\fBint top_panel(PANEL *\fIpan\fP);
+\fBint show_panel(PANEL *\fIpan\fP);
+\fBvoid update_panels(void);
+\fBint hide_panel(PANEL *\fIpan\fP);
+.PP
+\fBWINDOW *panel_window(const PANEL *\fIpan\fP);
+\fBint replace_panel(PANEL *\fIpan\fP, WINDOW *\fIwindow\fP);
+\fBint move_panel(PANEL *\fIpan\fP, int \fIstarty\fP, int \fIstartx\fP);
+\fBint panel_hidden(const PANEL *\fIpan\fP);
+.PP
+\fBPANEL *panel_above(const PANEL *\fIpan\fP);
+\fBPANEL *panel_below(const PANEL *\fIpan\fP);
+.PP
+\fBint set_panel_userptr(PANEL *\fIpan\fP, const void *\fIptr\fP);
+\fBconst void *panel_userptr(const PANEL *\fIpan\fP);
+.PP
+\fBint del_panel(PANEL *\fIpan\fP);
+.PP
+\fI/* ncurses extensions */\fP
+\fBPANEL *ground_panel(SCREEN *\fIsp\fP);
+\fBPANEL *ceiling_panel(SCREEN *\fIsp\fP);
+.fi
.SH DESCRIPTION
-Panels are \fBcurses\fR(3X) windows with the added feature of
+Panels are \fBcurses\fP(3X) windows with the added property of
depth.
-Panel functions allow the use of stacked windows and ensure
-the proper portions of each window and the curses \fBstdscr\fR window are
-hidden or displayed when panels are added, moved, modified or removed.
+Panel functions allow the use of stacked windows and ensure that the
+proper portions of each window and the \fIcurses\fP \fB\%stdscr\fP
+window are hidden or displayed when panels are added,
+moved,
+modified,
+or removed.
The set of currently visible panels is the stack of panels.
The
-\fBstdscr\fR window is beneath all panels, and is not considered part
-of the stack.
-.P
-A window is associated with every panel.
-The panel routines enable
-you to create, move, hide, and show panels, as well as position a
-panel at any desired location in the stack.
-.P
-Panel routines are a functional layer added to \fBcurses\fR(3X), make only
-high-level curses calls, and work anywhere terminfo curses does.
+\fB\%stdscr\fP window is beneath all panels,
+and is not considered part of the stack.
+.PP
+A window is associated with each panel.
+The panel routines enable you to create,
+move,
+hide,
+and show panels.
+You can relocate a panel to any desired position in the stack.
+.PP
+Panel routines are a functional layer added to \fIcurses\fP,
+make only high-level \fIcurses\fP calls,
+and work anywhere \fIcurses\fP does.
.SH FUNCTIONS
.\" ---------
.SS bottom_panel
-\fBbottom_panel(\fIpan\fB)\fR
+\fB\%bottom_panel(\fIpan\fB)\fR
puts panel \fIpan\fP at the bottom of all panels.
.\" ---------
.SS ceiling_panel
-\fBceiling_panel(\fIsp\fB)\fR
-acts like \fBpanel_below(NULL)\fP, for the given \fBSCREEN\fP \fIsp\fP.
+\fB\%ceiling_panel(\fIsp\fB)\fR
+acts like \fB\%panel_below(NULL)\fP
+for the given \fISCREEN\fP \fIsp\fP.
.\" ---------
.SS del_panel
-\fBdel_panel(\fIpan\fB)\fR
-removes the given panel \fIpan\fP from the stack and deallocates the
-\fBPANEL\fR structure (but not its associated window).
+\fB\%del_panel(\fIpan\fB)\fR
+removes the given panel \fIpan\fP from the stack and deallocates the
+\fI\%PANEL\fP structure (but not its associated window).
.\" ---------
.SS ground_panel
-\fBground_panel(\fIsp\fB)\fR
-acts like \fBpanel_above(NULL)\fP, for the given \fBSCREEN\fP \fIsp\fP.
+\fB\%ground_panel(\fIsp\fB)\fR
+acts like \fB\%panel_above(NULL)\fP
+for the given \fISCREEN\fP \fIsp\fP.
.\" ---------
.SS hide_panel
-\fBhide_panel(\fIpan\fB)\fR
+\fB\%hide_panel(\fIpan\fB)\fR
removes the given panel \fIpan\fP from the panel stack
and thus hides it from view.
-The \fBPANEL\fR structure is not lost, merely removed from the stack.
+The \fI\%PANEL\fP structure is not lost,
+merely removed from the stack.
.\" ---------
.SS move_panel
-\fBmove_panel(\fIpan\fB,\fIstarty\fB,\fIstartx\fB)\fR
-moves the given panel \fIpan\fP's window so that its upper-left corner is at
-\fIstarty\fR, \fIstartx\fR.
+\fB\%move_panel(\fIpan\fB, \fIstarty\fB, \fIstartx\fB)\fR
+moves the given panel \fIpan\fP's window so that its upper-left corner
+is at
+\fIstarty\fP,
+\fIstartx\fP.
It does not change the position of the panel in the stack.
-Be sure to use this function, not \fBmvwin\fR(3X), to move a panel window.
+Be sure to use this function,
+not \fB\%mvwin\fP(3X),
+to move a panel window.
.\" ---------
.SS new_panel
-\fBnew_panel(\fIwin\fB)\fR allocates a \fBPANEL\fR structure,
-associates it with \fIwin\fR, places the panel on the top of the stack
-(causes it to be displayed above any other panel) and returns a
-pointer to the new panel.
+\fB\%new_panel(\fIwin\fB)\fR allocates a \fI\%PANEL\fR structure,
+associates it with \fIwin\fP,
+places the panel on the top of the stack
+(causes it to be displayed above any other panel)
+and returns a pointer to the new panel.
.\" ---------
.SS panel_above
-\fBpanel_above(\fIpan\fB)\fR
+\fB\%panel_above(\fIpan\fB)\fR
returns a pointer to the panel above \fIpan\fP.
If the panel argument is
-\fB(PANEL *)0\fR, it returns a pointer to the bottom panel in the stack.
+\*(``\fB(PANEL *)0\fP\*('',
+it returns a pointer to the bottom panel in the stack.
.\" ---------
.SS panel_below
-\fBpanel_below(\fIpan\fB)\fR
+\fB\%panel_below(\fIpan\fB)\fR
returns a pointer to the panel just below \fIpan\fP.
-If the panel argument
-is \fB(PANEL *)0\fR, it returns a pointer to the top panel in the stack.
+If the panel argument is
+\*(``\fB(PANEL *)0\fP\*('',
+it returns a pointer to the top panel in the stack.
.\" ---------
.SS panel_hidden
-\fBpanel_hidden(\fIpan\fB)\fR
-returns \fBTRUE\fP if the panel \fIpan\fP is in the panel stack,
-\fBFALSE\fP if it is not.
-If the panel is a null pointer, return \fBERR\fP.
+\fB\%panel_hidden(\fIpan\fB)\fR
+returns \fBFALSE\fP if the panel \fIpan\fP is in the panel stack,
+and \fBTRUE\fP if it is not.
+If the panel is a null pointer,
+it returns \fBERR\fP.
.\" ---------
.SS panel_userptr
-\fBpanel_userptr(\fIpan\fB)\fR
+\fB\%panel_userptr(\fIpan\fB)\fR
returns the user pointer for a given panel \fIpan\fP.
.\" ---------
.SS panel_window
-\fBpanel_window(\fIpan\fB)\fR
+\fB\%panel_window(\fIpan\fB)\fR
returns a pointer to the window of the given panel \fIpan\fP.
.\" ---------
.SS replace_panel
-\fBreplace_panel(\fIpan\fB,\fIwindow\fB)\fR
-replaces the current window of panel \fIpan\fP with \fIwindow\fR
-This is useful, for example if you want to resize a panel.
-In \fBncurses\fR, you can call \fBreplace_panel\fR
-to resize a panel using a window resized with \fBwresize\fR(3X).
+\fB\%replace_panel(\fIpan\fB, \fIwindow\fB)\fR
+replaces the current window of panel \fIpan\fP with \fIwindow\fP
+This is useful if,
+for example,
+you want to resize a panel.
+In \fI\%ncurses\fP,
+you can call \fB\%replace_panel\fP
+to resize a panel using a window resized with \fB\%wresize\fP(3X).
It does not change the position of the panel in the stack.
.\" ---------
.SS set_panel_userptr
-\fBset_panel_userptr(\fIpan\fB,\fIptr\fB)\fR
+\fB\%set_panel_userptr(\fIpan\fB, \fIptr\fB)\fR
sets the panel's user pointer.
.\" ---------
.SS show_panel
-\fBshow_panel(\fIpan\fB)\fR
+\fB\%show_panel(\fIpan\fB)\fR
makes a hidden panel visible by placing it on top of the panels in the
panel stack.
-See \fBCOMPATIBILITY\fP below.
+See \*(``PORTABILITY\*('' below.
.\" ---------
.SS top_panel
-\fBtop_panel(\fIpan\fB)\fR
-puts the given visible panel \fIpan\fP on top of all panels in the stack.
-See \fBCOMPATIBILITY\fP below.
+\fB\%top_panel(\fIpan\fB)\fR
+puts the given visible panel \fIpan\fP on top of all panels in the
+stack.
+See \*(``PORTABILITY\*('' below.
.\" ---------
.SS update_panels
-\fBupdate_panels()\fR
-refreshes the \fIvirtual screen\fP to reflect the relations between the
-panels in the stack, but does not call \fBdoupdate\fP(3X) to refresh the
-\fIphysical screen\fP.
-Use this function and not \fBwrefresh\fP(3X) or \fBwnoutrefresh\fP(3X).
+\fB\%update_panels()\fR
+refreshes the virtual screen to reflect the relations between the panels
+in the stack,
+but does not call \fB\%doupdate\fP(3X) to refresh the physical screen.
+Use this function and not \fB\%wrefresh\fP(3X) or
+\fB\%wnoutrefresh\fP(3X).
.PP
-\fBupdate_panels\fP may be called more than once before a call to
-\fBdoupdate\fP, but \fBdoupdate\fP is the function responsible for updating
-the \fIphysical screen\fP.
-.SH DIAGNOSTICS
-Each routine that returns a pointer returns \fBNULL\fR if an error
+\fB\%update_panels\fP may be called more than once before a call to
+\fB\%doupdate\fP,
+but \fB\%doupdate\fP is the function responsible for updating
+the physical screen.
+.SH "RETURN VALUE"
+Each routine that returns a pointer returns \fBNULL\fP if an error
occurs.
-Each routine that returns an int value returns \fBOK\fR if it
-executes successfully and \fBERR\fR if not.
+Each routine that returns an int value returns \fBOK\fP if it
+executes successfully and \fBERR\fP if not.
.PP
-Except as noted, the \fIpan\fP and \fIwindow\fP parameters must be non-null.
-If those are null, an error is returned.
+Except as noted,
+the \fIpan\fP and \fIwindow\fP parameters must be non-null.
+If either is null,
+an error is returned.
.PP
-The \fBmove_panel\fP function uses \fBmvwin\fP(3X),
-and will return an error if \fBmvwin\fP returns an error.
-.SH COMPATIBILITY
-Reasonable care has been taken to ensure compatibility
-with the native panel facility introduced in System V (inspection of
-the SVr4 manual pages suggests the programming interface is unchanged).
-The \fBPANEL\fR data structures are merely similar.
-The programmer
-is cautioned not to directly use \fBPANEL\fR fields.
-.P
-The functions \fBshow_panel\fR and \fBtop_panel\fR are identical
-in this implementation, and work equally well with displayed or hidden
-panels.
-In the native System V implementation, \fBshow_panel\fR is
-intended for making a hidden panel visible (at the top of the stack)
-and \fBtop_panel\fR is intended for making an already-visible panel
-move to the top of the stack.
-You are cautioned to use the correct
-function to ensure compatibility with native panel libraries.
-.SH NOTE
-In your library list, libpanel.a should be before libncurses.a; that is,
-you should say \*(``\-lpanel \-lncurses\*('', not the other way around
-(which would give a link-error with static libraries).
+The \fB\%move_panel\fP function uses \fBmvwin\fP(3X),
+and returns an error if \fB\%mvwin\fP returns an error.
+.SH NOTES
+The header file \fI\%panel.h\fP itself includes the header file
+\fI\%curses.h\fP.
.SH PORTABILITY
+Reasonable care has been taken to ensure compatibility
+with the native panel facility introduced in System\ V;
+inspection of the SVr4 manual pages suggests the programming interface
+never changed.
+The \fI\%PANEL\fP data structures are merely similar.
+The programmer is cautioned not to directly use \fI\%PANEL\fP fields.
.PP
-The panel facility was documented in SVr4.2 in
-\fICharacter User Interface Programming (UNIX SVR4.2)\fP.
+The functions \fB\%show_panel\fP and \fB\%top_panel\fP are identical
+in this implementation,
+and work equally well with displayed or hidden panels.
+In the System\ V implementation,
+\fB\%show_panel\fP is intended for making a hidden panel visible
+(at the top of the stack)
+and \fB\%top_panel\fP is intended for making an already-visible panel
+move to the top of the stack.
+You are cautioned to use the correct
+function to ensure compatibility with System\ V panel libraries.
+.SH HISTORY
+A panel facility was documented in SVr4.2's
+\fICharacter User Interface Programming\fP document.
.PP
It is not part of X/Open Curses.
.PP
A few implementations exist:
.bP
Systems based on SVr4 source code,
-e.g., Solaris, provide this library.
+such as Solaris,
+provide this library.
.bP
-\fBncurses\fP (since version 0.6 in 1993)
-and \fBPDCurses\fP (since version 2.2 in 1995)
+\fI\%ncurses\fP (since version 0.6 in 1993)
+and \fIPDCurses\fP (since version 2.2 in 1995)
provide a panel library whose common ancestor
-was a public domain implementation by Warren Tucker
+is a public domain implementation by Warren Tucker
published in \fIu386mon\fP 2.20 (1990).
.IP
-According to Tucker, the SystemV panel library
-was first released in SVr3.2 (1988),
+According to Tucker,
+the System\ V panel library was first released in SVr3.2 (1988),
and his implementation helped with a port to SVr3.1 (1987).
.IP
Several developers have improved each of these;
they are no longer the same as Tucker's implementation.
.bP
NetBSD 8 (2018)
-has a panel library begun by Valery Ushakov in 2015.
-This is based on the AT&T documentation.
-.SH FILES
-.P
-panel.h
-interface for the panels library
-.P
-libpanel.a
-the panels library itself
-.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBcurs_variables\fR(3X),
-.PP
-This describes \fBncurses\fR
-version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
-.SH AUTHOR
+has a panel library begun by Valery Ushakov in 2015,
+based on the System\ V documentation.
+.SH AUTHORS
+Warren Tucker <wht@n4hgf.mt\-park.ga.us> originally wrote this
+implementation,
+primarily to assist in porting \fI\%u386mon\fP to systems without a
+native panel library.
.PP
-Originally written by Warren Tucker <wht@n4hgf.mt-park.ga.us>,
-primarily to assist in porting \fIu386mon\fP to systems without a native
-panels library.
+Zeyd ben-Halim repackaged it for \fI\%ncurses\fP.
.PP
-Repackaged for ncurses by Zeyd ben-Halim.
-.PP
-Juergen Pfeifer and Thomas E. Dickey revised/improved the library.
+Juergen Pfeifer and Thomas E. Dickey revised and improved the library.
+.SH SEE ALSO
+\fB\%curses\fP(3X),
+\fB\%curs_variables\fP(3X)
diff --git a/man/resizeterm.3x b/man/resizeterm.3x
index ae5106e1d0b0..5e23d9fb37bb 100644
--- a/man/resizeterm.3x
+++ b/man/resizeterm.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2015,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -29,115 +29,152 @@
.\"
.\" Author: Thomas E. Dickey 1996-on
.\"
-.\" $Id: resizeterm.3x,v 1.28 2020/10/17 23:55:41 tom Exp $
-.TH resizeterm 3X ""
+.\" $Id: resizeterm.3x,v 1.56 2024/03/16 15:35:01 tom Exp $
+.TH resizeterm 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
.SH NAME
-\fBis_term_resized\fR,
-\fBresize_term\fR,
-\fBresizeterm\fR \- change the curses terminal size
+\fB\%is_term_resized\fP,
+\fB\%resize_term\fP,
+\fB\%resizeterm\fP \-
+manage the terminal dimensions understood by \fIcurses\fR
.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\fBbool is_term_resized(int \fP\fIlines\fP\fB, int \fP\fIcolumns\fP\fB);\fR
-.br
-\fBint resize_term(int \fP\fIlines\fP\fB, int \fP\fIcolumns\fP\fB);\fR
-.br
-\fBint resizeterm(int \fP\fIlines\fP\fB, int \fP\fIcolumns\fP\fB);\fR
+.nf
+\fB#include <curses.h>
+.PP
+\fBbool is_term_resized(int \fIlines\fP, int \fIcolumns\fP);
+\fBint resize_term(int \fIlines\fP, int \fIcolumns\fP);
+\fBint resizeterm(int \fIlines\fP, int \fIcolumns\fP);
+.fi
.SH DESCRIPTION
+This is an extension to the \fIcurses\fP library.
+It provides callers with a hook into the \fI\%ncurses\fP data to resize
+windows,
+primarily for use by programs running in an X Window terminal (e.g., xterm)
+when the terminal's screen size is changed by the user:
+.bP
+\fIcurses\fP windows cannot extend outside the screen.
+If the terminal is shrunk, \fIcurses\fP windows must be shrunk to fit.
+.bP
+If the terminal is stretched,
+rows and/or columns can be added to existing windows.
+The added cells should match the current attributes of the windows.
.PP
-This is an extension to the curses library.
-It provides callers with a hook into the \fBncurses\fR data to resize windows,
-primarily for use by programs running in an X Window terminal (e.g., xterm).
-.SS resizeterm
+If the calling program has not set up a handler for \fB\%SIGWINCH\fP
+when it initializes \fI\%ncurses\fP
+(e.g., using \fB\%initscr\fP(3X) or \fB\%newterm\fP(3X)),
+then \fI\%ncurses\fP sets a handler for \fB\%SIGWINCH\fP which notifies
+the library when a window-size event has occurred.
+The library checks for this notification
+.bP
+when reading input data,
+.bP
+when implicitly resuming program mode
+(e.g., between \fB\%endwin\fP(3X) and \fB\%wrefresh\fP(3X)),
+and
+.bP
+when explicitly resuming program mode in \fB\%restartterm\fP(3X).
+.PP
+When the library has found that the terminal's window-size has
+changed, it calls \fB\%resizeterm\fP to update its data structures.
.PP
-The function \fBresizeterm\fR resizes the standard and current windows
+An application which establishes its own \fB\%SIGWINCH\fP handler
+can call \fB\%resizeterm\fP, but in that case, the library will not
+see \fB\%SIGWINCH\fP, and proper layout will rely upon the application.
+.SH FUNCTIONS
+.SS resizeterm
+The function \fB\%resizeterm\fP resizes the standard and current windows
+(i.e., \fB\%stdscr\fP and \fB\%curscr\fP)
to the specified dimensions, and adjusts other bookkeeping data used by
-the \fBncurses\fR library that record the window dimensions
-such as the \fBLINES\fP and \fBCOLS\fP variables.
+the \fI\%ncurses\fP library that record the window dimensions
+such as the \fB\%LINES\fP and \fB\%COLS\fP variables.
.SS resize_term
+Most of the work for \fB\%resizeterm\fP is
+done by the inner function \fB\%resize_term\fP.
+The outer function \fB\%resizeterm\fP adds bookkeeping
+for the \fB\%SIGWINCH\fP handler,
+as well as repainting the soft-key area (see \fB\%slk_touch\fP(3X)).
.PP
-Most of the work is done by the inner function \fBresize_term\fR.
-The outer function \fBresizeterm\fR adds bookkeeping
-for the \fBSIGWINCH\fP handler,
-as well as repainting the soft-key area (see \fBslk_touch\fP(3X)).
-.PP
-When resizing the windows,
-\fBresize_term\fR blank-fills the areas that are extended.
-The calling application should fill in these areas with appropriate data.
-.PP
-The \fBresize_term\fR function attempts to resize all windows.
-However, due to the calling convention of pads,
-it is not possible to resize these
-without additional interaction with the application.
+The \fB\%resize_term\fP function attempts to resize all windows.
+This helps with simple applications.
+However:
+.bP
+It is not possible to automatically resize pads.
+.bP
+Applications which have complicated layouts should check for
+\fB\%KEY_RESIZE\fP returned from \fB\%wgetch\fP,
+and adjust their layout, e.g., using \fB\%wresize\fP and \fB\%mvwin\fP,
+or by recreating the windows.
.PP
-When resizing windows, \fBresize_term\fR recursively adjusts subwindows,
+When resizing windows, \fB\%resize_term\fP recursively adjusts subwindows,
keeping them within the updated parent window's limits.
If a top-level window happens to extend to the screen's limits,
-then on resizing the window, \fBresize_term\fR will keep the window
+then on resizing the window, \fB\%resize_term\fP will keep the window
extending to the corresponding limit, regardless of whether the
screen has shrunk or grown.
.SS is_term_resized
-.PP
-A support function \fBis_term_resized\fR is provided so that applications
-can check if the \fBresize_term\fR function would modify the window structures.
+A support function \fB\%is_term_resized\fP is provided so that applications
+can check if the \fB\%resize_term\fP function would modify
+the window structures.
It returns \fBTRUE\fP if the windows would be modified,
and \fBFALSE\fP otherwise.
.SH RETURN VALUE
Except as noted, these functions return
-the integer \fBERR\fR upon failure and \fBOK\fR on success.
+the integer \fBERR\fP upon failure and \fBOK\fP on success.
They will fail if either of the dimensions are less than or equal to zero,
or if an error occurs while (re)allocating memory for the windows.
.SH NOTES
While these functions are intended to be used to support a signal handler
-(i.e., for \fBSIGWINCH\fP), care should be taken to avoid invoking them in a
-context where \fBmalloc\fR or \fBrealloc\fR may have been interrupted,
+(i.e., for \fB\%SIGWINCH\fP), care should be taken to avoid invoking them in a
+context where \fB\%malloc\fP or \fB\%realloc\fP may have been interrupted,
since it uses those functions.
.PP
-If ncurses is configured to supply its own \fBSIGWINCH\fP handler,
+If \fI\%ncurses\fP is configured to supply its own \fB\%SIGWINCH\fP
+handler,
.bP
-on receipt of a \fBSIGWINCH\fP, the handler sets a flag
+on receipt of a \fB\%SIGWINCH\fP, the handler sets a flag
.bP
-which is tested in \fBwgetch\fP(3X) and \fBdoupdate\fP,
+which is tested in
+\fB\%wgetch\fP(3X),
+\fB\%doupdate\fP(3X) and
+\fB\%restartterm\fP(3X),
.bP
-in turn, calling the \fBresizeterm\fR function,
+in turn, calling the \fB\%resizeterm\fP function,
.bP
-which \fBungetch\fP's a \fBKEY_RESIZE\fR which
-will be read on the next call to \fBwgetch\fR.
+which \fB\%ungetch\fP's a \fB\%KEY_RESIZE\fP which
+will be read on the next call to \fB\%wgetch\fP.
.IP
-The \fBKEY_RESIZE\fP alerts an application that the screen size has changed,
+The \fB\%KEY_RESIZE\fP alerts an application that the screen size has changed,
and that it should repaint special features such as pads that cannot
be done automatically.
.IP
-Calling \fBresizeterm\fP or \fBresize_term\fP
+Calling \fB\%resizeterm\fP or \fB\%resize_term\fP
directly from a signal handler is unsafe.
-This indirect method is used to provide a safe way to resize the ncurses
-data structures.
+This indirect method is used to provide a safe way to resize the
+\fI\%ncurses\fP data structures.
.PP
-If the environment variables \fBLINES\fP or \fBCOLUMNS\fP are set,
+If the environment variables \fILINES\fP or \fI\%COLUMNS\fP are set,
this overrides the library's use of the window size obtained from
the operating system.
-Thus, even if a \fBSIGWINCH\fP is received,
+Thus, even if a \fB\%SIGWINCH\fP is received,
no screen size change may be recorded.
.SH PORTABILITY
-.PP
-It is possible to resize the screen with SVr4 curses,
+It is possible to resize the screen with SVr4 \fIcurses\fP,
by
.bP
-exiting curses with \fBendwin\fP(3X) and
+exiting \fIcurses\fP with \fB\%endwin\fP(3X) and
.bP
-resuming using \fBrefresh\fP(3X).
+resuming using \fB\%refresh\fP(3X).
.PP
Doing that clears the screen and is visually distracting.
.PP
-This extension of ncurses was introduced in mid-1995.
-It was adopted in NetBSD curses (2001) and PDCurses (2003).
+This extension of \fI\%ncurses\fP was introduced in mid-1995.
+It was adopted in NetBSD \fIcurses\fP (2001) and PDCurses (2003).
+.SH AUTHORS
+Thomas Dickey (from an equivalent function written in 1988 for BSD \fIcurses\fP)
.SH SEE ALSO
-\fBcurs_getch\fR(3X),
-\fBcurs_variables\fR(3X),
-\fBwresize\fR(3X).
-.SH AUTHOR
-Thomas Dickey (from an equivalent function written in 1988 for BSD curses).
+\fB\%curs_getch\fP(3X),
+\fB\%curs_variables\fP(3X),
+\fB\%wresize\fP(3X)
diff --git a/man/scr_dump.5 b/man/scr_dump.5
index 7ef68cdeb083..95b2142ee6af 100644
--- a/man/scr_dump.5
+++ b/man/scr_dump.5
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,36 +27,28 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: scr_dump.5,v 1.16 2020/02/02 23:34:34 tom Exp $
-.TH scr_dump 5
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
-.de NS
-.ie n .sp
-.el .sp .5
-.ie n .in +4
-.el .in +2
-.nf
-.ft C \" Courier
-..
-.de NE
-.fi
-.ft R
-.ie n .in -4
-.el .in -2
-..
+.\" $Id: scr_dump.5,v 1.46 2024/03/23 20:42:29 tom Exp $
+.TH scr_dump 5 2024-03-23 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "File formats"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
.SH NAME
-scr_dump \- format of curses screen-dumps.
-.SH SYNOPSIS
-.B scr_dump
+scr_dump \-
+\fIcurses\fR screen dump
+.\"SH SYNOPSIS
.SH DESCRIPTION
-.PP
The curses library provides applications with the ability to write the
contents of a window to an external file using \fBscr_dump\fP or \fBputwin\fP,
and read it back using \fBscr_restore\fP or \fBgetwin\fP.
@@ -65,10 +57,9 @@ The \fBputwin\fP and \fBgetwin\fP functions do the work;
while \fBscr_dump\fP and \fBscr_restore\fP conveniently save and restore
the whole screen, i.e., \fBstdscr\fP.
.SS ncurses6
-.PP
A longstanding implementation of screen-dump was
revised with ncurses6 to remedy problems with the earlier approach:
-.bP
+.IP \(bu 4
A \*(``magic number\*('' is written to the beginning of the dump file,
allowing applications (such as \fBfile\fP(1)) to recognize curses dump files.
.IP
@@ -76,25 +67,36 @@ Because ncurses6 uses a new format,
that requires a new magic number
was unused by other applications.
This 16-bit number was unused:
-.NS
-0x8888 (octal \*(``\\210\\210\*('')
-.NE
-.IP
+.RS 4
+.PP
+.RS 4
+.EX
+0x8888 (octal \*(``\e210\e210\*('')
+.EE
+.RE
+.PP
but to be more certain, this 32-bit number was chosen:
-.NS
-0x88888888 (octal \*(``\\210\\210\\210\\210\*('')
-.NE
-.IP
+.PP
+.RS 4
+.EX
+0x88888888 (octal \*(``\e210\e210\e210\e210\*('')
+.EE
+.RE
+.PP
This is the pattern submitted to the maintainers of the \fBfile\fP program:
-.NS
+.PP
+.RS 4
+.EX
#
# ncurses5 (and before) did not use a magic number,
# making screen dumps "data".
#
# ncurses6 (2015) uses this format, ignoring byte-order
-0 string \\210\\210\\210\\210ncurses ncurses6 screen image
+0 string \e210\e210\e210\e210ncurses ncurses6 screen image
#
-.NE
+.EE
+.RE
+.RE
.bP
The screen dumps are written in textual form,
so that internal data sizes are not directly related to the dump-format, and
@@ -111,171 +113,208 @@ screen-size,
because the library truncates or fills the screen as necessary.
.bP
The ncurses6 \fBgetwin\fP reads the legacy screen dumps from ncurses5.
-.SS ncurses5 (legacy)
-.PP
-The screen-dump feature was added to ncurses in June 1995.
+.SS "ncurses5 (Legacy)"
+The screen-dump feature was added to \fI\%ncurses\fP in June 1995.
While there were fixes and improvements in succeeding years,
the basic scheme was unchanged:
.bP
-The \fBWINDOW\fP structure was written in binary form.
+The \fI\%WINDOW\fP structure was written in binary form.
.bP
-The \fBWINDOW\fP structure refers to lines of data,
-which were written as an array of binary data following the \fBWINDOW\fP.
+The \fI\%WINDOW\fP structure refers to lines of data,
+which were written as an array of binary data following the \fI\%WINDOW\fP.
.bP
When \fBgetwin\fP restored the window,
it would keep track of offsets into the array of line-data
-and adjust the \fBWINDOW\fP structure which was read back into memory.
+and adjust the \fI\%WINDOW\fP structure which was read back into memory.
.PP
-This is similar to Unix SystemV,
+This is similar to Unix System\ V,
but does not write a \*(``magic number\*('' to identify the file format.
.SH PORTABILITY
-.PP
-There is no standard format for \fBputwin\fP.
-This section gives a brief description of the existing formats.
-.SS X/Open Curses
-.PP
-Refer to \fIX/Open Curses, Issue 7\fP (2009).
-.PP
-X/Open's documentation for \fIenhanced curses\fP says only:
+There is no standard format for
+.I curses
+screen dumps.
+A brief survey of the existing implementations follows.
+.SS "X/Open Curses"
+X/Open Curses, Issue 7 specifies little.
+It says
+(boldface emphasis added)
.RS 3
.PP
-The \fIgetwin(\ ) \fPfunction reads window-related data
-stored in the file by \fIputwin(\ )\fP.
-The function
-then creates and initializes a new window using that data.
+\*(``[t]he \fI\%getwin()\fP function reads window-related data stored in
+the file by \fI\%putwin()\fP.
+The function then creates and initializes a new window using that data.
.PP
-The \fIputwin(\ )\fP function writes all data associated
-with \fIwin\fP into the \fIstdio\fP stream to which \fIfilep\fP
-points, using an \fBunspecified format\fP.
-This information can be retrieved later using \fIgetwin(\ )\fP.
+The \fI\%putwin()\fP function writes all data associated with \fIwin\fP
+into the \fI\%stdio\fP stream to which \fIfilep\fP points,
+using an \fBunspecified format\fP.
+This information can be retrieved later using \fI\%getwin()\fP.\*(''
.RE
.PP
In the mid-1990s when the X/Open Curses document was written,
-there were still systems using older, less capable curses libraries
-(aside from the BSD curses library which was not relevant to X/Open
-because it did not meet the criteria for \fIbase curses\fP).
-The document explained the term \*(``enhanced\*('' as follows:
-.RS 3
-.bP
-Shading is used to identify \fIX/Open Enhanced Curses\fP material,
-relating to interfaces included to provide enhanced capabilities
-for applications originally written to be compiled on systems
-based on the UNIX operating system.
-Therefore, the features described may not be present on systems
-that conform to \fBXPG4 or to earlier XPG releases\fP.
-The relevant reference pages may provide additional
-or more specific portability warnings about use of the material.
-.RE
-.PP
-In the foregoing, emphasis was added to \fBunspecified format\fP
-and to \fBXPG4 or to earlier XPG releases\fP,
-for clarity.
-.SS Unix SystemV
+there were still System\ V systems using older,
+less capable
+.I curses
+libraries.
+BSD
+.I curses
+was not relevant to X/Open because it did not meet the criteria
+for base-level conformance;
+see \fB\%ncurses\fP(3X).
+.SS "System V"
+System\ V
+.I curses
+identified the file format by writing a \*(``magic number\*('' at the
+beginning of the dump.
+The \fI\%WINDOW\fP data and the lines of text follow, all in binary form.
.PP
-Unix SystemV curses identified the file format by writing a
-\*(``magic number\*('' at the beginning of the dump.
-The \fBWINDOW\fP data and the lines of text follow, all in binary form.
+Solaris
+.I curses
+has the following definitions.
.PP
-The Solaris curses source has these definitions:
-.NS
+.RS 4
+.EX
/* terminfo magic number */
#define MAGNUM 0432
/* curses screen dump magic number */
#define SVR2_DUMP_MAGIC_NUMBER 0433
#define SVR3_DUMP_MAGIC_NUMBER 0434
-.NE
+.EE
+.RE
.PP
That is, the feature was likely introduced in SVr2 (1984),
and improved in SVr3 (1987).
-The Solaris curses source has no magic number for SVr4 (1989).
-Other operating systems (AIX and HPUX) use a magic number which would
-correspond to this definition:
-.NS
+Solaris
+.I curses
+has no magic number for SVr4 (1989).
+Other System\ V operating systems
+(AIX and HP-UX)
+use a magic number that would correspond to the following.
+.PP
+.RS 4
+.EX
/* curses screen dump magic number */
#define SVR4_DUMP_MAGIC_NUMBER 0435
-.NE
+.EE
+.RE
.PP
That octal number in bytes is 001, 035.
-Because most Unix vendors use big-endian hardware,
-the magic number is written with the high-order byte first, e.g.,
-.NS
-\001\035
-.NE
+Because most Unix vendors at the time used big-endian hardware,
+the magic number is written with the high-order byte first.
.PP
-After the magic number, the \fBWINDOW\fP structure and line-data are
-written in binary format.
-While the magic number used by the Unix systems can be seen using \fBod\fP(1),
-none of the Unix systems documents the format used for screen-dumps.
+.RS 4
+.EX
+\e001\e035
+.EE
+.RE
+.PP
+After the magic number,
+the \fI\%WINDOW\fP structure and line data are written in binary format.
+While the magic number used by these systems can be observed with
+\fIod\fP(1),
+none of them documents the format used for screen dumps.
.PP
-The Unix systems do not use identical formats.
-While collecting information for for this manual page,
-the \fIsavescreen\fP test-program
-produced dumps of different size
-(all on 64-bit hardware, on 40x80 screens):
+Nor do they use an identical format,
+even with the System\ V family.
+The
+.I \%ncurses
+.I \%savescreen
+test program was used to collect information for this manual page.
+It produced dumps of different size
+(all on 64-bit hardware,
+on 40x80 screens):
.bP
AIX (51817 bytes)
.bP
-HPUX (90093 bytes)
+HP-UX (90093 bytes)
.bP
Solaris 10 (13273 bytes)
.bP
-ncurses5 (12888 bytes)
+\fI\%ncurses\fP5 (12888 bytes)
.SS Solaris
-.PP
-As noted above, Solaris curses has no magic number corresponding
-to SVr4 curses.
-This is odd since Solaris was the first operating system
-to pass the SVr4 guidelines.
-Solaris has two versions of curses:
+As noted above,
+Solaris
+.I curses
+has no magic number corresponding to SVr4
+.IR curses .
+This is odd,
+since Solaris was the first operating system to meet the SVr4
+guidelines.
+Solaris furthermore supplies two versions of
+.IR curses .
.bP
-The default curses library uses the SVr3 magic number.
+The default
+.I curses
+library uses the SVr3 magic number.
.bP
-There is an alternate curses library in \fB/usr/xpg4\fP.
-This uses a textual format with no magic number.
+An alternate
+.I curses
+library
+(which we term
+.I \%xcurses),
+available in
+.IR /usr/xpg4 ,
+uses a textual format with no magic number.
.IP
-According to the copyright notice, the \fIxpg4\fP Solaris curses library was
-developed by MKS (Mortice Kern Systems) from 1990 to 1995.
+According to its copyright notice,
+this
+.I \%xcurses
+library was developed by MKS
+(Mortice Kern Systems) from 1990 to 1995.
.IP
-Like ncurses6, there is a file-header with parameters.
-Unlike ncurses6, the contents of the window are written piecemeal,
-with coordinates and attributes for each chunk of text rather
-than writing the whole window from top to bottom.
+Like ncurses6,
+it includes a header with parameters.
+Unlike ncurses6,
+the contents of the window are written piecemeal,
+with coordinates and attributes for each chunk of text rather than
+writing the whole window from top to bottom.
.SS PDCurses
-.PP
-PDCurses added support for screen dumps in version 2.7 (2005).
-Like Unix SystemV and ncurses5,
-it writes the \fBWINDOW\fP structure in binary,
+.I \%PDCurses
+added support for screen dumps in version 2.7 (2005).
+Like System\ V and ncurses5,
+it writes the \fI\%WINDOW\fP structure in binary,
but begins the file with its three-byte identifier \*(``PDC\*('',
-followed by a one-byte version,
-e.g.,
-.NS
- \*(``PDC\\001\*(''
-.NE
-.SS NetBSD
+followed by a single-byte version number.
.PP
-As of April 2017, NetBSD curses does
-not support \fBscr_dump\fP and \fBscr_restore\fP
-(or \fBscr_init\fP, \fBscr_set\fP),
-although it has \fBputwin\fP and \fBgetwin\fP.
+.RS 4
+.EX
+ \*(``PDC\e001\*(''
+.EE
+.RE
+.SS NetBSD
+As of April 2017,
+NetBSD
+.I curses
+does not support \fB\%scr_dump\fP and \fB\%scr_restore\fP
+(or \fB\%scr_init\fP,
+\fB\%scr_set\fP),
+although it has \fB\%putwin\fP and \fB\%getwin\fP.
.PP
-Like ncurses5, NetBSD \fBputwin\fP does not identify its dumps with a
-useful magic number.
+Like ncurses5,
+NetBSD \fB\%putwin\fP does not identify its dumps with a useful magic
+number.
It writes
.bP
-the curses shared library major and minor versions
-as the first two bytes (e.g., 7 and 1),
+the
+.I curses
+shared library major and minor versions as the first two bytes
+(for example,
+7 and 1),
.bP
-followed by a binary dump of the \fBWINDOW\fP,
+followed by a binary dump of the \fI\%WINDOW\fP,
.bP
-some data for wide-characters referenced by the \fBWINDOW\fP structure, and
+some data for wide characters referenced by the \fI\%WINDOW\fP
+structure,
+and
.bP
-finally, lines as done by other implementations.
-.SH EXAMPLE
-.PP
+finally,
+lines as done by other implementations.
+.SH EXAMPLES
Given a simple program which writes text to the screen
(and for the sake of example, limiting the screen-size to 10x20):
-.NS
+.PP
+.RS 4
+.EX
#include <curses.h>
int
@@ -300,33 +339,37 @@ main(void)
endwin();
return 0;
}
-.NE
+.EE
+.RE
.PP
When run using ncurses6, the output looks like this:
-.NS
-\\210\\210\\210\\210ncurses 6.0.20170415
+.PP
+.RS 4
+.EX
+\e210\e210\e210\e210ncurses 6.0.20170415
_cury=5
_curx=11
_maxy=9
_maxx=19
_flags=14
-_attrs=\\{REVERSE|C2}
+_attrs=\e{REVERSE|C2}
flag=_idcok
_delay=-1
_regbottom=9
-_bkgrnd=\\{NORMAL|C1}\\s
+_bkgrnd=\e{NORMAL|C1}\es
rows:
-1:\\{NORMAL|C1}\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s
-2:\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s
-3:\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s
-4:\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s
-5:\\s\\s\\s\\s\\s\\{BOLD}Hello\\{NORMAL}\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s
-6:\\s\\s\\s\\s\\s\\{REVERSE|C2}World!\\{NORMAL|C1}\\s\\s\\s\\s\\s\\s\\s\\s\\s
-7:\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s
-8:\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s
-9:\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s
-10:\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s\\s
-.NE
+1:\e{NORMAL|C1}\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es
+2:\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es
+3:\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es
+4:\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es
+5:\es\es\es\es\es\e{BOLD}Hello\e{NORMAL}\es\es\es\es\es\es\es\es\es\es
+6:\es\es\es\es\es\e{REVERSE|C2}World!\e{NORMAL|C1}\es\es\es\es\es\es\es\es\es
+7:\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es
+8:\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es
+9:\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es
+10:\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es
+.EE
+.RE
.PP
The first four octal escapes are actually nonprinting characters,
while the remainder of the file is printable text.
@@ -334,18 +377,20 @@ You may notice:
.bP
The actual color pair values are not written to the file.
.bP
-All characters are shown in printable form; spaces are \*(``\\s\*('' to
+All characters are shown in printable form; spaces are \*(``\es\*('' to
ensure they are not overlooked.
.bP
-Attributes are written in escaped curly braces, e.g., \*(``\\{BOLD}\*('',
-and may include a color-pair (C1 or C2 in this example).
+Attributes are written in escaped curly braces, e.g., \*(``\e{BOLD}\*('',
+and may include a color pair (C1 or C2 in this example).
.bP
The parameters in the header are written out only if they are nonzero.
When reading back, order does not matter.
.ne 10
.PP
Running the same program with Solaris \fIxpg4\fP curses gives this dump:
-.NS
+.PP
+.RS 4
+.EX
MAX=10,20
BEG=0,0
SCROLL=0,10
@@ -353,33 +398,34 @@ VMIN=1
VTIME=0
FLAGS=0x1000
FG=0,0
-BG=0,0,
+BG=0,0,
0,0,0,1,
-0,19,0,0,
+0,19,0,0,
1,0,0,1,
-1,19,0,0,
+1,19,0,0,
2,0,0,1,
-2,19,0,0,
+2,19,0,0,
3,0,0,1,
-3,19,0,0,
+3,19,0,0,
4,0,0,1,
4,5,0x20,0,Hello
4,10,0,1,
-4,19,0,0,
+4,19,0,0,
5,0,0,1,
5,5,0x4,2,World!
5,11,0,1,
-5,19,0,0,
+5,19,0,0,
6,0,0,1,
-6,19,0,0,
+6,19,0,0,
7,0,0,1,
-7,19,0,0,
+7,19,0,0,
8,0,0,1,
-8,19,0,0,
+8,19,0,0,
9,0,0,1,
-9,19,0,0,
+9,19,0,0,
CUR=11,5
-.NE
+.EE
+.RE
.PP
Solaris \fBgetwin\fP requires that all parameters are present, and
in the same order.
@@ -389,8 +435,10 @@ The \fIxpg4\fP curses library does not know about the \fBbce\fP
.PP
On the other hand, the SVr4 curses library does know about the background color.
However, its screen dumps are in binary.
-Here is the corresponding dump (using \*(``od -t x1\*(''):
-.NS
+Here is the corresponding dump (using \*(``od \-t x1\*(''):
+.PP
+.RS 4
+.EX
0000000 1c 01 c3 d6 f3 58 05 00 0b 00 0a 00 14 00 00 00
0000020 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00
0000040 00 00 b8 1a 06 08 cc 1a 06 08 00 00 09 00 10 00
@@ -413,17 +461,16 @@ Here is the corresponding dump (using \*(``od -t x1\*(''):
0001620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
0002371
-.NE
-.SH SEE ALSO
-.PP
-\fBcurs_scr_dump\fR(3X),
-\fBcurs_util\fR(3X).
+.EE
+.RE
.SH AUTHORS
-.PP
Thomas E. Dickey
.br
-extended screen-dump format for ncurses 6.0 (2015)
+extended screen-dump format for \fI\%ncurses\fP 6.0 (2015)
.sp
Eric S. Raymond
.br
-screen dump feature in ncurses 1.9.2d (1995)
+screen dump feature in \fI\%ncurses\fP 1.9.2d (1995)
+.SH SEE ALSO
+\fB\%curs_scr_dump\fP(3X),
+\fB\%curs_util\fP(3X)
diff --git a/man/tabs.1 b/man/tabs.1
index eb7e659746dd..059bc1ec66fc 100644
--- a/man/tabs.1
+++ b/man/tabs.1
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 2008-2016,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,48 +27,44 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: tabs.1,v 1.28 2020/12/19 21:50:22 tom Exp $
-.TH @TABS@ 1 ""
-.ds n 5
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: tabs.1,v 1.59 2024/04/20 19:08:15 tom Exp $
+.TH @TABS@ 1 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "User commands"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
-.de NS
-.ie n .sp
-.el .sp .5
-.ie n .in +4
-.el .in +2
-.nf
-.ft C \" Courier
-..
-.de NE
-.fi
-.ft R
-.ie n .in -4
-.el .in -2
-..
+.
.SH NAME
-\fB@TABS@\fR \- set tabs on a terminal
+\fB\%@TABS@\fP \-
+set terminal tab stops
.SH SYNOPSIS
-\fB@TABS@\fR [\fIoptions\fR]] \fI[tabstop-list]\fR
+\fB@TABS@\fP [\fIoptions\fP] [\fItabstop-list\fP]
.SH DESCRIPTION
-.PP
The \fB@TABS@\fP program clears and sets tab-stops on the terminal.
-This uses the terminfo \fIclear_all_tabs\fP and \fIset_tab\fP capabilities.
+This uses the terminfo \fBclear_all_tabs\fP and \fBset_tab\fP capabilities.
If either is absent, \fB@TABS@\fP is unable to clear/set tab-stops.
The terminal should be configured to use hard tabs, e.g.,
-.NS
+.PP
+.RS 4
+.EX
stty tab0
-.NE
+.EE
+.RE
.PP
-Like \fB@CLEAR@\fR(1), \fB@TABS@\fR writes to the standard output.
+Like \fB@CLEAR@\fP(1), \fB@TABS@\fP writes to the standard output.
You can redirect the standard output to a file (which prevents
-\fB@TABS@\fR from actually changing the tabstops),
+\fB@TABS@\fP from actually changing the tabstops),
and later \fBcat\fP the file to the screen, setting tabstops at that point.
.PP
These are hardware tabs, which cannot be queried rapidly by applications
@@ -79,15 +75,18 @@ If the hardware tabstops differ from the information in the terminal
database, the result is unpredictable.
Before running curses programs,
you should either reset tab-stops to the standard interval
-.NS
-tabs -8
-.NE
+.PP
+.RS 4
+.EX
+tabs \-8
+.EE
+.RE
.PP
or use the \fB@RESET@\fP program,
since the normal initialization sequences do not ensure that tab-stops
are reset.
.SH OPTIONS
-.SS General Options
+.SS "General Options"
.TP 5
.BI \-T "name"
Tell \fB@TABS@\fP which terminal type to use.
@@ -104,13 +103,14 @@ The second data line shows the actual tab-stops, marked with asterisks.
This option tells \fB@TABS@\fP to check the options and run any debugging
option, but not to modify the terminal settings.
.TP
-\fB\-V\fR
-reports the version of ncurses which was used in this program, and exits.
+\fB\-V\fP
+reports the version of \fI\%ncurses\fP which was used in this program,
+and exits.
.PP
The \fB@TABS@\fP program processes a single list of tab stops.
The last option to be processed which defines a list is the one that
determines the list to be processed.
-.SS Implicit Lists
+.SS "Implicit Lists"
Use a single number as an option,
e.g., \*(``\fB\-5\fP\*('' to set tabs at the given
interval (in this case 1, 6, 11, 16, 21, etc.).
@@ -119,120 +119,239 @@ Tabs are repeated up to the right margin of the screen.
Use \*(``\fB\-0\fP\*('' to clear all tabs.
.PP
Use \*(``\fB\-8\fP\*('' to set tabs to the standard interval.
-.SS Explicit Lists
+.SS "Explicit Lists"
An explicit list can be defined after the options
(this does not use a \*(``\-\*('').
The values in the list must be in increasing numeric order,
and greater than zero.
They are separated by a comma or a blank, for example,
-.NS
+.PP
+.RS 4
+.EX
tabs 1,6,11,16,21
-.br
tabs 1 6 11 16 21
-.NE
+.EE
+.RE
.PP
Use a \*(``+\*('' to treat a number
as an increment relative to the previous value,
e.g.,
-.NS
+.PP
+.RS 4
+.EX
tabs 1,+5,+5,+5,+5
-.NE
+.EE
+.RE
.PP
which is equivalent to the 1,6,11,16,21 example.
-.SS Predefined Tab-Stops
-X/Open defines several predefined lists of tab stops.
+.SS "Predefined Tab Stops"
+POSIX defines several predefined lists of tab stops.
.TP 5
.B \-a
Assembler, IBM S/370, first format
+.br
+1,10,16,36,72
.TP 5
.B \-a2
Assembler, IBM S/370, second format
+.br
+1,10,16,40,72
.TP 5
.B \-c
COBOL, normal format
+.br
+1,8,12,16,20,55
.TP 5
.B \-c2
COBOL compact format
+.br
+1,6,10,14,49
.TP 5
.B \-c3
COBOL compact format extended
+.br
+1,6,10,14,18,22,26,30,34,38,42,46,50,54,58,62,67
.TP 5
.B \-f
FORTRAN
+.br
+1,7,11,15,19,23
.TP 5
.B \-p
PL/I
+.br
+1,5,9,13,17,21,25,29,33,37,41,45,49,53,57,61
.TP 5
.B \-s
SNOBOL
+.br
+1,10,55
.TP 5
.B \-u
UNIVAC 1100 Assembler
-.SH PORTABILITY
+.br
+1,12,20,44
+.SS Margins
+A few terminals expose a means of changing their left and right margins.
+\fB@TABS@\fP supports this feature with an option.
+.TP 5
+.BI +m \ margin
+The effect depends on whether the terminal has the margin capabilities:
+.RS
+.bP
+If the terminal provides the capability for setting the left margin,
+\fB@TABS@\fP uses this,
+and adjusts the available tab stop widths.
+.bP
+If the terminal does not provide the margin capabilities,
+\fB@TABS@\fP imitates their effect,
+putting tab stops at appropriate places on each line.
+The terminal's left margin is not modified.
+.RE
+.IP
+If the
+.I margin
+parameter is omitted,
+the default is 10.
+Use
+.B +m0
+to reset the left margin,
+that is,
+to make it the left edge of the terminal's display.
+Before setting a left margin,
+\fB@TABS@\fP resets the margin to reduce problems that might arise
+from moving the cursor to the left of the current left margin.
.PP
-\fIIEEE Std 1003.1/The Open Group Base Specifications Issue 7\fP (POSIX.1-2008)
-describes a \fBtabs\fP utility.
-However
+When setting or resetting the left margin,
+\fB@TABS@\fP may also reset the right margin.
+.SH FILES
+.TP
+.I @DATADIR@/tabset
+tab stop initialization database
+.SH PORTABILITY
+IEEE Std 1003.1/The Open Group Base Specifications Issue 7
+(POSIX.1-2008)
+describes a
+.B tabs
+utility.
+However,
.bP
-This standard describes a \fB+m\fP option, to set a terminal's left-margin.
+this standard describes a
+.B +m
+option to set a terminal's left margin.
Very few of the entries in the terminal database provide the
-\fBsmgl\fP (\fBset_left_margin\fP) or
-\fBsmglp\fP (\fBset_left_margin_parm\fP)
-capability needed to support the feature.
+.B \%set_left_margin
+.RB ( smgl )
+or
+.B \%set_left_margin_parm
+.RB \%( smglp )
+capabilities needed to support the feature.
.bP
There is no counterpart in X/Open Curses Issue 7 for this utility,
-unlike \fB@TPUT@(1)\fP.
-.PP
-The \fB\-d\fP (debug) and \fB\-n\fP (no-op) options are extensions not provided
-by other implementations.
-.PP
-A \fBtabs\fP utility appeared in PWB/Unix 1.0 (1977).
-There was a reduced version of the \fBtabs\fP utility
-in Unix 7th edition and in 3BSD (1979).
-The latter supported a single \*(``\-n\*('' option
-(to cause the first tab stop to be set on the left margin).
-That option is not documented by POSIX.
-.PP
-The PWB/Unix \fBtabs\fP utility, which was included in System III (1980),
-used built-in tables rather than the terminal database,
-to support a half-dozen terminal types.
-It also had built-in logic to support the left-margin,
+unlike \fB@TPUT@\fP(1).
+.PP
+The
+.B \-d
+(debug) and
+.B \-n
+(no-op) options are
+.I \%ncurses
+extensions not provided by other implementations.
+.SH HISTORY
+A
+.B tabs
+utility appeared in PWB/Unix 1.0 (1977).
+.\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=PWB1/sys/source/s2/\
+.\" tabs.c
+A reduced version shipped in Seventh Edition Unix
+(early 1979)
+.\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=V7/usr/src/cmd/tabs.c
+and in 3BSD
+.\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=3BSD/usr/src/cmd/\
+.\" tabs.c
+(later the same year);
+it supported a \*(``\-n\*('' option to set the first tab stop at the
+left margin.
+That option is not specified by POSIX.
+.PP
+The PWB/Unix
+.B tabs
+utility returned in System III (1980),
+and used built-in tables
+to support a half-dozen hardcopy terminal (printer) types.
+It also had logic to support setting the left margin,
as well as a feature for copying the tab settings from a file.
.PP
-Later versions of Unix, e.g., SVr4,
+Versions of the program in later releases of AT&T Unix,
+such as SVr4,
+.\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=SysVR4/cmd/tabs/tabs.c
added support for the terminal database,
-but kept the tables, as a fallback.
-In an earlier development effort,
-the tab-stop initialization provided by \fBtset\fP (1982)
-and incorporated into \fBtput\fP uses the terminal database,
-.PP
-POSIX documents no limits on the number of tab stops.
-Documentation for other implementations states that there is a limit on the
-number of tab stops
-(e.g., 20 in PWB/Unix's \fBtabs\fP utility).
-While some terminals may not accept an arbitrary number
-of tab stops, this implementation will attempt to set tab stops up to the
-right margin of the screen, if the given list happens to be that long.
-.PP
-The \fIRationale\fP section of the POSIX documentation goes into some
-detail about the ways the committee considered redesigning the
-\fBtabs\fP and \fBtput\fP utilities,
-without proposing an improved solution.
-It comments that
-.RS 5
-.PP
-no known historical version of tabs supports the capability of setting
-arbitrary tab stops.
+but retained the tables to support the printers.
+By this time,
+System\ V
+.B tput
+had incorporated the tab stop initialization feature of BSD's
+.B tset
+from 1982,
+but employed the
+.I \%term\%info
+database to do so.
+.PP
+The
+.B +m
+option was documented in the POSIX Base Specifications Issue 5
+(Unix98, 1997),
+then omitted in Issue 6
+(Unix03, 2004)
+without express motivation,
+though an introductory comment
+\*(``and optionally adjusts the margin\*('' remains,
+overlooked in the removal.
+The
+.B tabs
+utility documented in Issues 6 and later has no mechanism for setting
+margins.
+The
+.B +m
+option in
+.I \%ncurses
+\fB\%@TABS@\fP differs from the SVr4 feature by using terminal
+capabilities rather than built-in tables.
+.PP
+POSIX documents no limit on the number of tab stops.
+Other implementations impose one;
+the limit is 20 in PWB/Unix's
+.B tabs
+utility.
+While some terminals may not accept an arbitrary number of tab stops,
+.I \%ncurses
+\fB\%@TABS@\fP attempts to set tab stops up to the right margin if the
+list thereof is sufficiently long.
+.PP
+The \*(``Rationale\*('' section of the Issue 6
+.B tabs
+reference page
+.\" https://pubs.opengroup.org/onlinepubs/009604499/utilities/tabs.html
+details how the committee considered redesigning the
+.B tabs
+and
+.B tput
+utilities,
+without settling on an improved solution.
+It claims that
+.PP
+.RS 4
+\*(``no known historical version of
+.I tabs
+supports the capability of setting arbitrary tab stops.\*(''
.RE
.PP
-However, the \fIExplicit Lists\fP described in this manual page
-were implemented in PWB/Unix.
-Those provide the capability of setting abitrary tab stops.
+The feature described in subsection \*(``Explicit Lists\*('' above was
+implemented in PWB/Unix,
+.\" see URL above
+and permitted the setting of abitrary tab stops nevertheless.
.SH SEE ALSO
-\fB@INFOCMP@\fR(1M),
-\fB@TSET@\fR(1),
-\fBcurses\fR(3X),
-\fBterminfo\fR(\*n).
-.PP
-This describes \fBncurses\fR
-version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
+\fB\%@INFOCMP@\fP(1M),
+\fB\%@TSET@\fP(1),
+\fB\%curses\fP(3X),
+\fB\%terminfo\fP(5)
diff --git a/man/term.5 b/man/term.5
index e9ae5bd0b908..cec231f551a3 100644
--- a/man/term.5
+++ b/man/term.5
@@ -1,5 +1,6 @@
+'\" t
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2016,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,44 +28,48 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: term.5,v 1.38 2020/07/25 21:56:02 tom Exp $
-.TH term 5
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
-.de NS
-.ie n .sp
-.el .sp .5
-.ie n .in +4
-.el .in +2
-.nf
-.ft C \" Courier
-..
-.de NE
-.fi
-.ft R
-.ie n .in -4
-.el .in -2
-..
+.\" $Id: term.5,v 1.77 2024/04/20 21:24:19 tom Exp $
+.TH term 5 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "File formats"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.ds ' \(aq
+.ds ^ \(ha
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.ds ' '
+.ds ^ ^
+.\}
+.ie n .ds CW R
+.el \{
+.ie \n(.g .ds CW CR
+.el .ds CW CW
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
-.ds n 5
+.
.ds d @TERMINFO@
.SH NAME
-term \- format of compiled term file.
+term \-
+compiled \fIterminfo\fR terminal description
.SH SYNOPSIS
.B term
.SH DESCRIPTION
-.SS STORAGE LOCATION
+.SS "Storage Location"
Compiled terminfo descriptions are placed under the directory \fB\*d\fP.
-Two configurations are supported (when building the \fBncurses\fP libraries):
+Two configurations are supported
+(when building the \fI\%ncurses\fP libraries):
.TP 5
.B directory tree
A two-level scheme is used to avoid a linear search
-of a huge \s-1UNIX\s+1 system directory: \fB\*d/c/name\fP where
+of a huge Unix system directory: \fB\*d/c/name\fP where
.I name
is the name of the terminal, and
.I c
@@ -83,15 +88,16 @@ the terminfo's primary name as a key,
and records containing only aliases pointing to the primary name.
.IP
If built to write hashed databases,
-\fBncurses\fP can still read terminfo databases organized as a directory tree,
+\fI\%ncurses\fP can still read terminfo databases organized as a
+directory tree,
but cannot write entries into the directory tree.
It can write (or rewrite) entries in the hashed database.
.IP
-\fBncurses\fP distinguishes the two cases in the TERMINFO and TERMINFO_DIRS
-environment variable by assuming a directory tree for entries that
-correspond to an existing directory,
+\fI\%ncurses\fP distinguishes the two cases in the \fI\%TERMINFO\fP and
+\fI\%TERMINFO_DIRS\fP environment variable by assuming a directory tree
+for entries that correspond to an existing directory,
and hashed database otherwise.
-.SS LEGACY STORAGE FORMAT
+.SS "Legacy Storage Format"
The format has been chosen so that it will be the same on all hardware.
An 8 or more bit byte is assumed, but no assumptions about byte ordering
or sign extension are made.
@@ -105,7 +111,7 @@ a) \fIheader\fP,
.TP 3
b) \fIterminal names\fP,
.TP 3
-c) \fIboolean flags\fP,
+c) \fIBoolean flags\fP,
.TP 3
d) \fInumbers\fP,
.TP 3
@@ -124,7 +130,7 @@ These integers are
.TP 5
(2) the size, in bytes, of the \fIterminal names\fP section;
.TP 5
-(3) the number of bytes in the \fIboolean flags\fP section;
+(3) the number of bytes in the \fIBoolean flags\fP section;
.TP 5
(4) the number of short integers in the \fInumbers\fP section;
.TP 5
@@ -134,7 +140,7 @@ These integers are
.RE
.PP
The capabilities in the
-\fIboolean flags\fP,
+\fIBoolean flags\fP,
\fInumbers\fP, and
\fIstrings\fP
sections are in the same order as the file <term.h>.
@@ -162,14 +168,14 @@ If a capability is absent from this terminal,
.IP
The integer value \-1 is represented by two bytes 0377, 0377.
.br
-Absent boolean values are represented by the byte 0 (false).
+Absent Boolean values are represented by the byte 0 (false).
.bP
If a capability has been canceled from this terminal,
@TIC@ stores a \-2 in the corresponding table.
.IP
The integer value \-2 is represented by two bytes 0377, 0376.
.br
-The boolean value \-2 is represented by the byte 0376.
+The Boolean value \-2 is represented by the byte 0376.
.br
.bP
Other negative values are illegal.
@@ -181,11 +187,11 @@ separated by the \*(``|\*('' character.
The \fIterminal names\fP section is terminated
with an \s-1ASCII NUL\s+1 character.
.PP
-The \fIboolean flags\fP section has one byte for each flag.
+The \fIBoolean flags\fP section has one byte for each flag.
Boolean capabilities are either 1 or 0 (true or false)
according to whether the terminal supports the given capability or not.
.PP
-Between the \fIboolean flags\fP section and the \fInumber\fP section,
+Between the \fIBoolean flags\fP section and the \fInumber\fP section,
a null byte will be inserted, if necessary,
to ensure that the \fInumber\fP section begins on an even byte
This is a relic of the PDP\-11's word-addressed architecture,
@@ -193,7 +199,7 @@ originally designed to avoid traps induced
by addressing a word on an odd byte boundary.
All short integers are aligned on a short word boundary.
.PP
-The \fInumbers\fP section is similar to the \fIboolean flags\fP section.
+The \fInumbers\fP section is similar to the \fIBoolean flags\fP section.
Each capability takes up two bytes,
and is stored as a little-endian short integer.
.PP
@@ -205,24 +211,24 @@ The \fIstring table\fP is the last section.
It contains all of the values of string capabilities referenced in
the \fIstrings\fP section.
Each string is null-terminated.
-Special characters in ^X or \ec notation are stored in their
+Special characters in \*^X or \ec notation are stored in their
interpreted form, not the printing representation.
Padding information $<nn> and parameter information %x are
stored intact in uninterpreted form.
-.SS EXTENDED STORAGE FORMAT
+.SS "Extended Storage Format"
The previous section describes the conventional terminfo binary format.
With some minor variations of the offsets (see PORTABILITY),
-the same binary format is used in all modern UNIX systems.
-Each system uses a predefined set of boolean, number or string capabilities.
+the same binary format is used in all modern Unix systems.
+Each system uses a predefined set of Boolean, number or string capabilities.
.PP
-The \fBncurses\fP libraries and applications support
+The \fI\%ncurses\fP libraries and applications support
extended terminfo binary format,
allowing users to define capabilities which are loaded at runtime.
This
extension is made possible by using the fact that the other implementations
stop reading the terminfo data when they have reached the end of the size given
in the header.
-\fBncurses\fP checks the size,
+\fI\%ncurses\fP checks the size,
and if it exceeds that due to the predefined data,
continues to parse according to its own scheme.
.PP
@@ -230,7 +236,7 @@ First, it reads the extended header (5 short integers):
.RS 5
.TP 5
(1)
-count of extended boolean capabilities
+count of extended Boolean capabilities
.TP 5
(2)
count of extended numeric capabilities
@@ -249,22 +255,31 @@ The count- and size-values for the extended string table
include the extended capability \fInames\fP as well as
extended capability \fIvalues\fP.
.PP
-Using the counts and sizes, \fBncurses\fP allocates arrays and reads data
-for the extended capabilities in the same order as the header information.
+Using the counts and sizes,
+\fI\%ncurses\fP allocates arrays and reads data for the extended
+capabilities in the same order as the header information.
.PP
The extended string table contains values for string capabilities.
After the end of these values, it contains the names for each of
-the extended capabilities in order, e.g., booleans, then numbers and
+the extended capabilities in order, e.g., Booleans, then numbers and
finally strings.
.PP
+By storing terminal descriptions in this way,
+\fI\%ncurses\fP is able to provide a database useful with legacy
+applications,
+as well as providing data for applications which need more than the
+predefined capabilities.
+See \fBuser_caps\fP(5) for an overview
+of the way \fI\%ncurses\fP uses this extended information.
+.PP
Applications which manipulate terminal data can use the definitions
described in \fBterm_variables\fP(3X) which associate the long capability
names with members of a \fBTERMTYPE\fP structure.
.
-.SS EXTENDED NUMBER FORMAT
-.PP
+.SS "Extended Number Format"
On occasion, 16-bit signed integers are not large enough.
-With \fBncurses\fP 6.1, a new format was introduced by making a few changes
+With \fI\%ncurses\fP 6.1,
+a new format was introduced by making a few changes
to the legacy format:
.bP
a different magic number (octal 01036)
@@ -277,16 +292,19 @@ to direct users of the \fBTERMTYPE\fP structure as in previous formats.
However, that cannot provide callers with the extended numbers.
The library uses a similar but hidden data structure \fBTERMTYPE2\fP
to provide data for the terminfo functions.
+.SH FILES
+.TP
+.I \*d
+compiled terminal description database
.SH PORTABILITY
.SS setupterm
-.PP
Note that it is possible for
.B setupterm
to expect a different set of capabilities
than are actually present in the file.
Either the database may have been updated since
.B setupterm
-has been recompiled
+was recompiled
(resulting in extra unrecognized entries in the file)
or the program may have been recompiled more recently
than the database was updated
@@ -296,22 +314,21 @@ The routine
must be prepared for both possibilities \-
this is why the numbers and sizes are included.
Also, new capabilities must always be added at the end of the lists
-of boolean, number, and string capabilities.
-.SS Binary format
-.PP
+of Boolean, number, and string capabilities.
+.SS "Binary Format"
X/Open Curses does not specify a format for the terminfo database.
-UNIX System V curses used a directory-tree of binary files,
+System V curses used a directory-tree of binary files,
one per terminal description.
.PP
Despite the consistent use of little-endian for numbers and the otherwise
self-describing format, it is not wise to count on portability of binary
-terminfo entries between commercial UNIX versions.
+terminfo entries between commercial Unix versions.
The problem is that there
are at least three versions of terminfo (under HP\-UX, AIX, and OSF/1) which
diverged from System V terminfo after SVr1, and have added extension
capabilities to the string table that (in the binary format) collide with
-System V and XSI Curses extensions.
-See \fBterminfo\fR(\*n) for detailed
+System V and X/Open Curses extensions.
+See \fBterminfo\fP(5) for detailed
discussion of terminfo source compatibility issues.
.PP
This implementation is by default compatible with the binary
@@ -319,53 +336,83 @@ terminfo format used by Solaris curses,
except in a few less-used details
where it was found that the latter did not match X/Open Curses.
The format used by the other Unix versions
-can be matched by building ncurses
+can be matched by building \fI\%ncurses\fP
with different configuration options.
-.SS Magic codes
-.PP
+.SS "Magic Codes"
The magic number in a binary terminfo file is the first 16-bits (two bytes).
Besides making it more reliable for the library to check that a file
is terminfo,
-utilities such as \fBfile\fP also use that to tell what the file-format is.
+utilities such as \fBfile\fP(1) also use that to tell what the file-format is.
System V defined more than one magic number,
with 0433, 0435 as screen-dumps (see \fBscr_dump\fP(5)).
This implementation uses 01036 as a continuation of that sequence,
but with a different high-order byte to avoid confusion.
-.SS The TERMTYPE structure
-.PP
+.SS "The \fITERMTYPE\fP Structure"
Direct access to the \fBTERMTYPE\fP structure is provided for legacy
applications.
Portable applications should use the \fBtigetflag\fP and related functions
described in \fBcurs_terminfo\fP(3X) for reading terminal capabilities.
-.SS Mixed-case terminal names
-.PP
+.SS "Mixed-case Terminal Names"
A small number of terminal descriptions use uppercase characters in
their names.
If the underlying filesystem ignores the difference between
uppercase and lowercase,
-\fBncurses\fP represents the \*(``first character\*(''
+\fI\%ncurses\fP represents the \*(``first character\*(''
of the terminal name used as
the intermediate level of a directory tree in (two-character) hexadecimal form.
-.SH EXAMPLE
+.SS Limits
+\fI\%ncurses\fP stores compiled terminal descriptions
+in three related formats,
+described in the sections
+.bP
+\fBLEGACY STORAGE FORMAT\fP, and
+.bP
+\fBEXTENDED STORAGE FORMAT\fP, and
+.bP
+\fBEXTENDED NUMBER FORMAT\fP.
+.PP
+The legacy storage format and the extended number format differ by
+the types of numeric capability which they can store
+(i.e., 16-bit versus 32-bit integers).
+The extended storage format introduced by \fI\%ncurses\fP 5.0 adds data
+to either of these formats.
+.PP
+Some limitations apply:
+.bP
+total compiled entries cannot exceed 4096 bytes in the legacy format.
+.bP
+total compiled entries cannot exceed 32768 bytes in the extended format.
+.bP
+the name field cannot exceed 128 bytes.
+.PP
+Compiled entries are limited to 32768 bytes because offsets into the
+\fIstrings table\fP use two-byte integers.
+The legacy format could have supported 32768-byte entries,
+but was limited to a virtual memory page's 4096 bytes.
+.SH EXAMPLES
As an example, here is a description for the Lear-Siegler
ADM\-3, a popular though rather stupid early terminal:
-.NS
+.PP
+.EX
adm3a|lsi adm3a,
am,
cols#80, lines#24,
- bel=^G, clear=\032$<1>, cr=^M, cub1=^H, cud1=^J,
- cuf1=^L, cup=\\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
- home=^^, ind=^J,
-.NS
+ bel=\*^G, clear=\e032$<1>, cr=\*^M, cub1=\*^H, cud1=\*^J,
+ cuf1=\*^L, cup=\eE=%p1%{32}%+%c%p2%{32}%+%c, cuu1=\*^K,
+ home=\*^\*^, ind=\*^J,
+.EE
.PP
and a hexadecimal dump of the compiled terminal description:
-.NS
-.ft CW
-\s-20000 1a 01 10 00 02 00 03 00 82 00 31 00 61 64 6d 33 ........ ..1.adm3
+.PP
+.if t .in +4n
+.ft \*(CW
+.TS
+Lp-1.
+0000 1a 01 10 00 02 00 03 00 82 00 31 00 61 64 6d 33 ........ ..1.adm3
0010 61 7c 6c 73 69 20 61 64 6d 33 61 00 00 01 50 00 a|lsi ad m3a...P.
0020 ff ff 18 00 ff ff 00 00 02 00 ff ff ff ff 04 00 ........ ........
-0030 ff ff ff ff ff ff ff ff 0a 00 25 00 27 00 ff ff ........ ..%.'...
-0040 29 00 ff ff ff ff 2b 00 ff ff 2d 00 ff ff ff ff ).....+. ..-.....
+0030 ff ff ff ff ff ff ff ff 0a 00 25 00 27 00 ff ff ........ ..%.\*'...
+0040 29 00 ff ff ff ff 2b 00 ff ff 2d 00 ff ff ff ff ).....+. ..\-.....
0050 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
0060 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
0070 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
@@ -382,36 +429,24 @@ and a hexadecimal dump of the compiled terminal description:
0120 ff ff ff ff ff ff 2f 00 07 00 0d 00 1a 24 3c 31 ....../. .....$<1
0130 3e 00 1b 3d 25 70 31 25 7b 33 32 7d 25 2b 25 63 >..=%p1% {32}%+%c
0140 25 70 32 25 7b 33 32 7d 25 2b 25 63 00 0a 00 1e %p2%{32} %+%c....
-0150 00 08 00 0c 00 0b 00 0a 00 ........ .\s+2
-.ft R
-.NE
-.sp
-.SH LIMITS
-Some limitations:
-.bP
-total compiled entries cannot exceed 4096 bytes in the legacy format.
-.bP
-total compiled entries cannot exceed 32768 bytes in the extended format.
-.bP
-the name field cannot exceed 128 bytes.
-.PP
-Compiled entries are limited to 32768 bytes because offsets into the
-\fIstrings table\fP use two-byte integers.
-The legacy format could have supported 32768-byte entries,
-but was limited a virtual memory page's 4096 bytes.
-.SH FILES
-\*d/*/* compiled terminal capability data base
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBterminfo\fR(\*n).
+0150 00 08 00 0c 00 0b 00 0a 00 ........ .
+.TE
+.ft
+.in
.SH AUTHORS
Thomas E. Dickey
.br
-extended terminfo format for ncurses 5.0
+extended terminfo format for \fI\%ncurses\fP 5.0
.br
-hashed database support for ncurses 5.6
+hashed database support for \fI\%ncurses\fP 5.6
.br
-extended number support for ncurses 6.1
+extended number support for \fI\%ncurses\fP 6.1
.sp
Eric S. Raymond
.br
-documented legacy terminfo format, e.g., from pcurses.
+documented legacy terminfo format, e.g., from \fIpcurses\fP.
+.SH SEE ALSO
+\fB\%curses\fP(3X),
+\fB\%curs_terminfo\fP(3X),
+\fB\%terminfo\fP(5),
+\fB\%user_caps\fP(5)
diff --git a/man/term.7 b/man/term.7
index fc46b8a6f914..84d100d840ca 100644
--- a/man/term.7
+++ b/man/term.7
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2011,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,79 +27,91 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: term.7,v 1.28 2020/02/02 23:34:34 tom Exp $
-.TH term 7
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
-.ds n 5
+.\" $Id: term.7,v 1.48 2024/03/16 15:35:01 tom Exp $
+.TH term 7 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" Miscellaneous
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.ds d @TERMINFO@
.SH NAME
-term \- conventions for naming terminal types
+term \-
+conventions for naming terminal types
+.\"SH SYNOPSIS
.SH DESCRIPTION
-.PP
-The environment variable \fBTERM\fR should normally contain the type name of
-the terminal, console or display-device type you are using.
+The environment variable \fITERM\fP should normally contain the type
+name of the terminal,
+console or display-device type you are using.
This information
is critical for all screen-oriented programs, including your editor and mailer.
.PP
-A default \fBTERM\fR value will be set on a per-line basis by either
-\fB/etc/inittab\fR (e.g., System\-V-like UNIXes)
-or \fB/etc/ttys\fR (BSD UNIXes).
+A default \fITERM\fP value will be set on a per-line basis by either
+\fB/etc/inittab\fP (e.g., System\-V-like Unices)
+or \fB/etc/ttys\fP (BSD Unices).
This will nearly always suffice for workstation and microcomputer consoles.
.PP
If you use a dialup line, the type of device attached to it may vary.
-Older UNIX systems pre-set a very dumb terminal type
+Older Unix systems pre-set a very dumb terminal type
like \*(``dumb\*('' or \*(``dialup\*('' on dialup lines.
Newer ones may pre-set \*(``vt100\*('', reflecting the prevalence of DEC
VT100-compatible terminals and personal-computer emulators.
.PP
-Modern telnets pass your \fBTERM\fR environment variable from the local side to
-the remote one.
+Modern telnets pass your \fITERM\fP environment variable from the local
+side to the remote one.
There can be problems if the remote terminfo or termcap entry
for your type is not compatible with yours, but this situation is rare and
can almost always be avoided by explicitly exporting \*(``vt100\*(''
(assuming you are in fact using a VT100-superset console,
-terminal, or terminal emulator.)
+terminal, or terminal emulator).
.PP
-In any case, you are free to override the system \fBTERM\fR setting to your
-taste in your shell profile.
+In any case, you are free to override the system \fITERM\fP setting to
+your taste in your shell profile.
The \fB@TSET@\fP(1) utility may be of assistance;
you can give it a set of rules for deducing or requesting a terminal type based
on the tty device and baud rate.
.PP
-Setting your own \fBTERM\fR value may also be useful if you have created a
-custom entry incorporating options (such as visual bell or reverse-video)
+Setting your own \fITERM\fP value may also be useful if you have created
+a custom entry incorporating options
+(such as visual bell or reverse-video)
which you wish to override the system default type for your line.
.PP
Terminal type descriptions are stored as files of capability data underneath
\*d.
To browse a list of all terminal names recognized by the system, do
.sp
- @TOE@ | more
+ @TOE@ | more
.sp
from your shell.
These capability files are in a binary format optimized for
-retrieval speed (unlike the old text-based \fBtermcap\fR format they replace);
-to examine an entry, you must use the \fB@INFOCMP@\fR(1M) command.
+retrieval speed (unlike the old text-based \fBtermcap\fP format they replace);
+to examine an entry, you must use the \fB@INFOCMP@\fP(1M) command.
Invoke it as follows:
.sp
- @INFOCMP@ \fIentry_name\fR
+ @INFOCMP@ \fIentry_name\fP
.sp
-where \fIentry_name\fR is the name of the type you wish to examine (and the
+where \fIentry_name\fP is the name of the type you wish to examine (and the
name of its capability file the subdirectory of \*d named for its first
letter).
This command dumps a capability file in the text format described by
-\fBterminfo\fR(\*n).
+\fBterminfo\fP(5).
.PP
-The first line of a \fBterminfo\fR(\*n) description gives the names by which
+The first line of a \fBterminfo\fP(5) description gives the names by which
terminfo knows a terminal,
separated by \*(``|\*('' (pipe-bar) characters with the last
name field terminated by a comma.
The first name field is the type's
-\fIprimary name\fR, and is the one to use when setting \fBTERM\fR. The last
-name field (if distinct from the first) is actually a description of the
+\fIprimary name\fP,
+and is the one to use when setting \fITERM\fP.
+The last name field
+(if distinct from the first)
+is actually a description of the
terminal type (it may contain blanks; the others must be single words).
Name
fields between the first and last (if present) are aliases for the terminal,
@@ -126,23 +138,23 @@ dot (.) character is relatively safe as long as there is at most one per root
name; some historical terminfo names use it.
.PP
The root name for a terminal or workstation console type should almost always
-begin with a vendor prefix (such as \fBhp\fR for Hewlett-Packard, \fBwy\fR for
-Wyse, or \fBatt\fR for AT&T terminals), or a common name of the terminal line
-(\fBvt\fR for the VT series of terminals from DEC, or \fBsun\fR for Sun
-Microsystems workstation consoles, or \fBregent\fR for the ADDS Regent series.
+begin with a vendor prefix (such as \fBhp\fP for Hewlett-Packard, \fBwy\fP for
+Wyse, or \fBatt\fP for AT&T terminals), or a common name of the terminal line
+(\fBvt\fP for the VT series of terminals from DEC, or \fBsun\fP for Sun
+Microsystems workstation consoles, or \fBregent\fP for the ADDS Regent series.
You can list the terminfo tree to see what prefixes are already in common use.
The root name prefix should be followed when appropriate by a model number;
-thus \fBvt100\fR, \fBhp2621\fR, \fBwy50\fR.
+thus \fBvt100\fP, \fBhp2621\fP, \fBwy50\fP.
.PP
The root name for a PC-Unix console type should be the OS name,
-i.e., \fBlinux\fR, \fBbsdos\fR, \fBfreebsd\fR, \fBnetbsd\fR. It should
-\fInot\fR be \fBconsole\fR or any other generic that might cause confusion in a
+i.e., \fBlinux\fP, \fBbsdos\fP, \fBfreebsd\fP, \fBnetbsd\fP. It should
+\fInot\fP be \fBconsole\fP or any other generic that might cause confusion in a
multi-platform environment! If a model number follows, it should indicate
either the OS release level or the console driver release level.
.PP
The root name for a terminal emulator (assuming it does not fit one of the
standard ANSI or vt100 types) should be the program name or a readily
-recognizable abbreviation of it (i.e., \fBversaterm\fR, \fBctrm\fR).
+recognizable abbreviation of it (i.e., \fBversaterm\fP, \fBctrm\fP).
.PP
Following the root name, you may add any reasonable number of hyphen-separated
feature suffixes.
@@ -197,7 +209,7 @@ Conventionally, if your terminal type is a variant intended to specify a
line height, that suffix should go first.
So, for a hypothetical FuBarCo
model 2317 terminal in 30-line mode with reverse video, best form would be
-\fBfubar\-30\-rv\fR (rather than, say, \*(``fubar\-rv\-30\*('').
+\fBfubar\-30\-rv\fP (rather than, say, \*(``fubar\-rv\-30\*('').
.PP
Terminal types that are written not as standalone entries, but rather as
components to be plugged into other entries via \fBuse\fP capabilities,
@@ -206,19 +218,21 @@ are distinguished by using embedded plus signs rather than dashes.
Commands which use a terminal type to control display often accept a \-T
option that accepts a terminal name argument.
Such programs should fall back
-on the \fBTERM\fR environment variable when no \-T option is specified.
+on the \fITERM\fP environment variable when no \-T option is specified.
+.SH FILES
+.TP
+.I \*d
+compiled terminal description database
+.TP
+.I /etc/inittab
+tty line initialization (AT&T-like Unices)
+.TP
+.I /etc/ttys
+tty line initialization (BSD-like Unices)
.SH PORTABILITY
-For maximum compatibility with older System V UNIXes, names and aliases
+For maximum compatibility with older System V Unices, names and aliases
should be unique within the first 14 characters.
-.SH FILES
-.TP 5
-\*d/?/*
-compiled terminal capability data base
-.TP 5
-/etc/inittab
-tty line initialization (AT&T-like UNIXes)
-.TP 5
-/etc/ttys
-tty line initialization (BSD-like UNIXes)
.SH SEE ALSO
-\fBcurses\fR(3X), \fBterminfo\fR(\*n), \fBterm\fR(\*n).
+\fB\%curses\fP(3X),
+\fB\%term\fP(5),
+\fB\%terminfo\fP(5)
diff --git a/man/term_variables.3x b/man/term_variables.3x
index 0abaf0968bde..6aee63f487ed 100644
--- a/man/term_variables.3x
+++ b/man/term_variables.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2019,2020 Thomas E. Dickey *
+.\" Copyright 2019-2023,2024 Thomas E. Dickey *
.\" Copyright 2010-2015,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,64 +27,58 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: term_variables.3x,v 1.12 2020/02/02 23:34:34 tom Exp $
-.TH term_variables 3X ""
-.ds n 5
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
-.na
-.hy 0
+.\" $Id: term_variables.3x,v 1.36 2024/03/16 15:35:01 tom Exp $
+.TH term_variables 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.SH NAME
-\fBSP\fP,
-\fBacs_map\fP,
-\fBboolcodes\fP,
-\fBboolfnames\fP,
-\fBboolnames\fP,
-\fBcur_term\fP,
-\fBnumcodes\fP,
-\fBnumfnames\fP,
-\fBnumnames\fP,
-\fBstrcodes\fP,
-\fBstrfnames\fP,
-\fBstrnames\fP,
-\fBttytype\fP
-\- \fBcurses\fR terminfo global variables
-.ad
-.hy
+\fB\%SP\fP,
+\fB\%acs_map\fP,
+\fB\%boolcodes\fP,
+\fB\%boolfnames\fP,
+\fB\%boolnames\fP,
+\fB\%cur_term\fP,
+\fB\%numcodes\fP,
+\fB\%numfnames\fP,
+\fB\%numnames\fP,
+\fB\%strcodes\fP,
+\fB\%strfnames\fP,
+\fB\%strnames\fP,
+\fB\%ttytype\fP \-
+\fIterminfo\fR global variables
.SH SYNOPSIS
.nf
-\fB#include <curses.h>\fR
-.br
-\fB#include <term.h>\fR
-.PP
-\fBchtype acs_map[];\fR
-.sp
-\fBSCREEN * SP;\fR
-.sp
-\fBTERMINAL * cur_term;\fR
-.sp
-\fBchar ttytype[];\fR
-.sp
-\fBNCURSES_CONST char * const boolcodes[];\fR
-.br
-\fBNCURSES_CONST char * const boolfnames[];\fR
-.br
-\fBNCURSES_CONST char * const boolnames[];\fR
-.sp
-\fBNCURSES_CONST char * const numcodes[];\fR
-.br
-\fBNCURSES_CONST char * const numfnames[];\fR
-.br
-\fBNCURSES_CONST char * const numnames[];\fR
-.sp
-\fBNCURSES_CONST char * const strcodes[];\fR
-.br
-\fBNCURSES_CONST char * const strfnames[];\fR
-.br
-\fBNCURSES_CONST char * const strnames[];\fR
-.br
+\fB#include <curses.h>
+\fB#include <term.h>
+.PP
+\fBchtype acs_map[];
+.PP
+\fBSCREEN * SP;
+.PP
+\fBTERMINAL * cur_term;
+.PP
+\fBchar ttytype[];
+.PP
+\fBNCURSES_CONST char * const boolcodes[];
+\fBNCURSES_CONST char * const boolfnames[];
+\fBNCURSES_CONST char * const boolnames[];
+.PP
+\fBNCURSES_CONST char * const numcodes[];
+\fBNCURSES_CONST char * const numfnames[];
+\fBNCURSES_CONST char * const numnames[];
+.PP
+\fBNCURSES_CONST char * const strcodes[];
+\fBNCURSES_CONST char * const strfnames[];
+\fBNCURSES_CONST char * const strnames[];
.fi
.SH DESCRIPTION
This page summarizes variables provided by the \fBcurses\fP library's
@@ -92,11 +86,11 @@ low-level terminfo interface.
A more complete description is given in the \fBcurs_terminfo\fP(3X) manual page.
.PP
Depending on the configuration, these may be actual variables,
-or macros (see \fBcurs_threads\fR(3X))
+or macros (see \fBcurs_threads\fP(3X))
which provide read-only access to \fIcurses\fP's state.
In either case, applications should treat them as read-only to avoid
confusing the library.
-.SS Alternate Character Set Mapping
+.SS "Alternate Character Set Mapping"
After initializing the curses or terminfo interfaces,
the \fBacs_map\fP array holds information used to translate cells
with the \fBA_ALTCHARSET\fP video attribute into line-drawing characters.
@@ -106,7 +100,7 @@ Application developers need only know that it is used for the \*(``ACS_\*(''
constants in <curses.h>.
.PP
The comparable data for the wide-character library is a private variable.
-.SS Current Terminal Data
+.SS "Current Terminal Data"
After initializing the curses or terminfo interfaces,
the \fBcur_term\fP contains data describing the current terminal.
This variable is also set as a side-effect of \fBset_term\fP(3X)
@@ -116,7 +110,7 @@ It is possible to save a value of \fBcur_term\fP for subsequent
use as a parameter to \fBset_term\fP, for switching between screens.
Alternatively, one can save the return value from \fBnewterm\fP
or \fBsetupterm\fP(3X) to reuse in \fBset_term\fP.
-.SS Terminfo Names
+.SS "\fIterminfo\fP Lookup Tables"
The \fB@TIC@\fP(1) and \fB@INFOCMP@\fP(1) programs use lookup tables for
the long and short names of terminfo capabilities,
as well as the corresponding names for termcap capabilities.
@@ -124,7 +118,7 @@ These are available to other applications,
although the hash-tables used by
the terminfo and termcap functions are not available.
.PP
-The long terminfo capability names use a \*(``l\*('' (ell) in their names:
+The long terminfo capability names use a \*(``f\*('' (eff) in their names:
\fBboolfnames\fP,
\fBnumfnames\fP, and
\fBstrfnames\fP.
@@ -139,27 +133,24 @@ These are the corresponding names used for termcap descriptions:
\fBnumcodes\fP, and
\fBstrcodes\fP.
.\"
-.SS Terminal Type
+.SS "Terminal Type"
A terminal description begins with one or more terminal names
separated by \*(``|\*('' (vertical bars).
On initialization of the curses or terminfo interfaces,
\fBsetupterm\fP(3X) copies the terminal names to the array \fBttytype\fP.
.\"
-.SS Terminfo Names
-.PP
+.SS "\fIterminfo\fP Names"
In addition to the variables, \fB<term.h>\fP also defines a symbol for each
terminfo capability \fIlong name\fP.
These are in terms of the symbol \fBCUR\fP,
which is defined
.PP
-.nf
-.ft CW
-#define CUR ((TERMTYPE *)(cur_term))->
-.fi
-.ft R
+.EX
+#define CUR ((TERMTYPE *)(cur_term))\->
+.EE
.PP
These symbols provide a faster method of accessing terminfo capabilities
-than using \fBtigetstr\fR(3X), etc.
+than using \fBtigetstr\fP(3X), etc.
.PP
The actual definition of \fBCUR\fP depends upon the implementation,
but each terminfo library provides these long names defined to point
@@ -167,9 +158,7 @@ into the current terminal description loaded into memory.
.\"
.SH NOTES
The low-level terminfo interface is initialized using
-.hy 0
-\fBsetupterm\fR(3X).
-.hy
+\fB\%setupterm\fP(3X).
The upper-level curses interface uses the low-level terminfo interface,
internally.
.\"
@@ -186,9 +175,7 @@ All implementations which provide terminfo interfaces add definitions
as described in the \fBTerminfo Names\fP section.
Most, but not all, base the definition upon the \fBcur_term\fP variable.
.SH SEE ALSO
-.hy 0
-\fBcurses\fR(3X),
-\fBcurs_terminfo\fR(3X),
-\fBcurs_threads\fR(3X),
-\fBterminfo\fR(\*n).
-.hy
+\fB\%curses\fP(3X),
+\fB\%curs_terminfo\fP(3X),
+\fB\%curs_threads\fP(3X),
+\fB\%terminfo\fP(5)
diff --git a/man/terminfo.head b/man/terminfo.head
index f6a31c8055dc..717f849e25fb 100644
--- a/man/terminfo.head
+++ b/man/terminfo.head
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2016,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,45 +27,45 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: terminfo.head,v 1.39 2020/02/02 23:34:34 tom Exp $
-.TH terminfo 5 "" "" "File Formats"
-.ds n 5
-.ds d @TERMINFO@
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: terminfo.head,v 1.65 2024/04/20 21:14:00 tom Exp $
+.TH terminfo 5 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "File formats"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.ds ' \(aq
+.ds ^ \(ha
+.ds ~ \(ti
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.ds ' '
+.ds ^ ^
+.ds ~ ~
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
-.de NS
-.ie n .sp
-.el .sp .5
-.ie n .in +4
-.el .in +2
-.nf
-.ft C \" Courier
-..
-.de NE
-.fi
-.ft R
-.ie n .in -4
-.el .in -2
-..
+.
+.ds d @TERMINFO@
.SH NAME
-terminfo \- terminal capability data base
+\fB\%terminfo\fP \-
+terminal capability database
.SH SYNOPSIS
\*d/*/*
.SH DESCRIPTION
.I Terminfo
-is a data base describing terminals,
+is a database describing terminals,
used by screen-oriented programs such as
-\fBnvi\fR(1),
-\fBlynx\fR(1),
-\fBmutt\fR(1),
+\fBnvi\fP(1),
+\fBlynx\fP(1),
+\fBmutt\fP(1),
and other curses applications,
-using high-level calls to libraries such as \fBcurses\fR(3X).
+using high-level calls to libraries such as \fBcurses\fP(3X).
It is also used via low-level calls by non-curses applications
which may be screen-oriented (such as \fB@CLEAR@\fP(1))
or non-screen (such as \fB@TABS@\fP(1)).
@@ -75,17 +75,18 @@ describes terminals by giving a set of capabilities which they
have, by specifying how to perform screen operations, and by
specifying padding requirements and initialization sequences.
.PP
-This manual describes \fBncurses\fR
-version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
-.SS Terminfo Entry Syntax
-.PP
+This document describes
+.I \%ncurses
+version @NCURSES_MAJOR@.@NCURSES_MINOR@
+(patch @NCURSES_PATCH@).
+.SS "\fIterminfo\fP Entry Syntax"
Entries in
.I terminfo
consist of a sequence of fields:
.bP
-Each field ends with a comma \*(``,\*(''
+Each field ends with a comma \*(``,\*(''
(embedded commas may be
-escaped with a backslash or written as \*(``\\054\*('').
+escaped with a backslash or written as \*(``\e054\*('').
.bP
White space between fields is ignored.
.bP
@@ -121,7 +122,7 @@ it allows that to be both an alias and a verbose name
.bP
Lines beginning with a \*(``#\*('' in the first column are treated as comments.
.IP
-While comment lines are legal at any point, the output of \fB@CAPTOINFO@\fP
+While comment lines are valid at any point, the output of \fB@CAPTOINFO@\fP
and \fB@INFOTOCAP@\fP (aliases for \fB@TIC@\fP)
will move comments so they occur only between entries.
.PP
@@ -136,38 +137,38 @@ Thus, a vt100 in 132-column mode would be vt100\-w.
The following suffixes should be used where possible:
.PP
.TS
-center ;
-l c l
-l l l.
-\fBSuffix Meaning Example\fP
-\-\fInn\fP Number of lines on the screen aaa\-60
-\-\fIn\fPp Number of pages of memory c100\-4p
-\-am With automargins (usually the default) vt100\-am
-\-m Mono mode; suppress color ansi\-m
-\-mc Magic cookie; spaces when highlighting wy30\-mc
-\-na No arrow keys (leave them in local) c100\-na
-\-nam Without automatic margins vt100\-nam
-\-nl No status line att4415\-nl
-\-ns No status line hp2626\-ns
-\-rv Reverse video c100\-rv
-\-s Enable status line vt100\-s
-\-vb Use visible bell instead of beep wy370\-vb
-\-w Wide mode (> 80 columns, usually 132) vt100\-w
+center;
+Lb Lb Lb
+L L Lx.
+Suffix Example Meaning
+_
+\-\fInn\fP aaa\-60 Number of lines on the screen
+\-\fIn\fPp c100\-4p Number of pages of memory
+\-am vt100\-am With automargins (usually the default)
+\-m ansi\-m Mono mode; suppress color
+\-mc wy30\-mc Magic cookie; spaces when highlighting
+\-na c100\-na No arrow keys (leave them in local)
+\-nam vt100\-nam Without automatic margins
+\-nl hp2621\-nl No status line
+\-ns hp2626\-ns No status line
+\-rv c100\-rv Reverse video
+\-s vt100\-s Enable status line
+\-vb wy370\-vb Use visible bell instead of beep
+\-w vt100\-w Wide mode (> 80 columns, usually 132)
.TE
.PP
For more on terminal naming conventions, see the \fBterm\fP(7) manual page.
-.SS Terminfo Capabilities Syntax
-.PP
+.SS "\fIterminfo\fP Capabilities Syntax"
The terminfo entry consists of several \fIcapabilities\fP,
i.e., features that the terminal has,
or methods for exercising the terminal's features.
.PP
After the first field (giving the name(s) of the terminal entry),
there should be one or more \fIcapability\fP fields.
-These are boolean, numeric or string names with corresponding values:
+These are Boolean, numeric or string names with corresponding values:
.bP
Boolean capabilities are true when present, false when absent.
-There is no explicit value for boolean capabilities.
+There is no explicit value for Boolean capabilities.
.bP
Numeric capabilities have a \*(``#\*('' following the name,
then an unsigned decimal integer value.
@@ -186,12 +187,11 @@ Any capability can be \fIcanceled\fP,
i.e., suppressed from the terminal entry,
by following its name with \*(``@\*(''
rather than a capability value.
-.SS Similar Terminals
-.PP
+.SS "Similar Terminals"
If there are two very similar terminals, one (the variant) can be defined as
being just like the other (the base) with certain exceptions.
In the
-definition of the variant, the string capability \fBuse\fR can be given with
+definition of the variant, the string capability \fBuse\fP can be given with
the name of the base terminal:
.bP
The capabilities given before
@@ -199,14 +199,14 @@ The capabilities given before
override those in the base type named by
.BR use .
.bP
-If there are multiple \fBuse\fR capabilities, they are merged in reverse order.
-That is, the rightmost \fBuse\fR reference is processed first, then the one to
+If there are multiple \fBuse\fP capabilities, they are merged in reverse order.
+That is, the rightmost \fBuse\fP reference is processed first, then the one to
its left, and so forth.
.bP
Capabilities given explicitly in the entry override
-those brought in by \fBuse\fR references.
+those brought in by \fBuse\fP references.
.PP
-A capability can be canceled by placing \fBxx@\fR to the left of the
+A capability can be canceled by placing \fBxx@\fP to the left of the
use reference that imports it, where \fIxx\fP is the capability.
For example, the entry
.RS
@@ -214,7 +214,7 @@ For example, the entry
2621\-nl, smkx@, rmkx@, use=2621,
.RE
.PP
-defines a 2621\-nl that does not have the \fBsmkx\fR or \fBrmkx\fR capabilities,
+defines a 2621\-nl that does not have the \fBsmkx\fP or \fBrmkx\fP capabilities,
and hence does not turn on the function key labels when in visual mode.
This is useful for different modes for a terminal, or for different
user preferences.
@@ -222,6 +222,6 @@ user preferences.
An entry included via \fBuse\fP can contain canceled capabilities,
which have the same effect as if those cancels were inline in the
using terminal entry.
-.SS Predefined Capabilities
+.SS "Predefined Capabilities"
.\" Head of terminfo man page ends here
.ps -1
diff --git a/man/terminfo.tail b/man/terminfo.tail
index da154ecf96fc..4d6daa38b692 100644
--- a/man/terminfo.tail
+++ b/man/terminfo.tail
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2016,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,9 +27,9 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: terminfo.tail,v 1.100 2020/12/19 21:51:22 tom Exp $
+.\" $Id: terminfo.tail,v 1.148 2024/04/20 21:24:19 tom Exp $
.ps +1
-.SS User-Defined Capabilities
+.SS "User-Defined Capabilities"
.
The preceding section listed the \fIpredefined\fP capabilities.
They deal with some special features for terminals no longer
@@ -38,24 +38,25 @@ Occasionally there are special features of newer terminals which
are awkward or impossible to represent by reusing the predefined
capabilities.
.PP
-\fBncurses\fP addresses this limitation by allowing user-defined capabilities.
+\fI\%ncurses\fP addresses this limitation by allowing user-defined
+capabilities.
The \fB@TIC@\fP and \fB@INFOCMP@\fP programs provide
the \fB\-x\fP option for this purpose.
When \fB\-x\fP is set,
\fB@TIC@\fP treats unknown capabilities as user-defined.
That is, if \fB@TIC@\fP encounters a capability name
which it does not recognize,
-it infers its type (boolean, number or string) from the syntax
+it infers its type (Boolean, number or string) from the syntax
and makes an extended table entry for that capability.
The \fBuse_extended_names\fP(3X) function makes this information
conditionally available to applications.
-The ncurses library provides the data leaving most of the behavior
-to applications:
+The \fI\%ncurses\fP library provides the data leaving most of the
+behavior to applications:
.bP
User-defined capability strings whose name begins
with \*(``k\*('' are treated as function keys.
.bP
-The types (boolean, number, string) determined by \fB@TIC@\fP
+The types (Boolean, number, string) determined by \fB@TIC@\fP
can be inferred by successful calls on \fBtigetflag\fP, etc.
.bP
If the capability name happens to be two characters,
@@ -67,51 +68,56 @@ in practice it has been limited to the capabilities defined by
terminfo implementations.
As a rule,
user-defined capabilities intended for use by termcap applications should
-be limited to booleans and numbers to avoid running past the 1023 byte
+be limited to Booleans and numbers to avoid running past the 1023 byte
limit assumed by termcap implementations and their applications.
In particular, providing extended sets of function keys (past the 60
numbered keys and the handful of special named keys) is best done using
the longer names available using terminfo.
+.PP
+The \fI\%ncurses\fP library uses a few of these user-defined
+capabilities,
+as described in \fBuser_caps\fR(5).
+Other user-defined capabilities (including function keys) are
+described in the terminal database, in the section on
+.I "NCURSES USER-DEFINABLE CAPABILITIES"
.
-.SS A Sample Entry
+.SS "A Sample Entry"
.
The following entry, describing an ANSI-standard terminal, is representative
-of what a \fBterminfo\fR entry for a modern terminal typically looks like.
+of what a \fBterminfo\fP entry for a modern terminal typically looks like.
.PP
-.nf
-.ft CW
-\s-2ansi|ansi/pc-term compatible with color,
+.EX
+\s-2ansi|ansi/pc\-term compatible with color,
am, mc5i, mir, msgr,
colors#8, cols#80, it#8, lines#24, ncv#3, pairs#64,
- acsc=+\\020\\,\\021-\\030.^Y0\\333`\\004a\\261f\\370g\\361h\\260
- j\\331k\\277l\\332m\\300n\\305o~p\\304q\\304r\\304s_t\\303
- u\\264v\\301w\\302x\\263y\\363z\\362{\\343|\\330}\\234~\\376,
- bel=^G, blink=\\E[5m, bold=\\E[1m, cbt=\\E[Z, clear=\\E[H\\E[J,
- cr=^M, cub=\\E[%p1%dD, cub1=\\E[D, cud=\\E[%p1%dB, cud1=\\E[B,
- cuf=\\E[%p1%dC, cuf1=\\E[C, cup=\\E[%i%p1%d;%p2%dH,
- cuu=\\E[%p1%dA, cuu1=\\E[A, dch=\\E[%p1%dP, dch1=\\E[P,
- dl=\\E[%p1%dM, dl1=\\E[M, ech=\\E[%p1%dX, ed=\\E[J, el=\\E[K,
- el1=\\E[1K, home=\\E[H, hpa=\\E[%i%p1%dG, ht=\\E[I, hts=\\EH,
- ich=\\E[%p1%d@, il=\\E[%p1%dL, il1=\\E[L, ind=^J,
- indn=\\E[%p1%dS, invis=\\E[8m, kbs=^H, kcbt=\\E[Z, kcub1=\\E[D,
- kcud1=\\E[B, kcuf1=\\E[C, kcuu1=\\E[A, khome=\\E[H, kich1=\\E[L,
- mc4=\\E[4i, mc5=\\E[5i, nel=\\r\\E[S, op=\\E[39;49m,
- rep=%p1%c\\E[%p2%{1}%-%db, rev=\\E[7m, rin=\\E[%p1%dT,
- rmacs=\\E[10m, rmpch=\\E[10m, rmso=\\E[m, rmul=\\E[m,
- s0ds=\\E(B, s1ds=\\E)B, s2ds=\\E*B, s3ds=\\E+B,
- setab=\\E[4%p1%dm, setaf=\\E[3%p1%dm,
- sgr=\\E[0;10%?%p1%t;7%;
+ acsc=+\e020\e,\e021\-\e030.\*^Y0\e333\(ga\e004a\e261f\e370g\e361h\e260
+ j\e331k\e277l\e332m\e300n\e305o\*~p\e304q\e304r\e304s_t\e303
+ u\e264v\e301w\e302x\e263y\e363z\e362{\e343|\e330}\e234\*~\e376,
+ bel=\*^G, blink=\eE[5m, bold=\eE[1m, cbt=\eE[Z, clear=\eE[H\eE[J,
+ cr=\*^M, cub=\eE[%p1%dD, cub1=\eE[D, cud=\eE[%p1%dB, cud1=\eE[B,
+ cuf=\eE[%p1%dC, cuf1=\eE[C, cup=\eE[%i%p1%d;%p2%dH,
+ cuu=\eE[%p1%dA, cuu1=\eE[A, dch=\eE[%p1%dP, dch1=\eE[P,
+ dl=\eE[%p1%dM, dl1=\eE[M, ech=\eE[%p1%dX, ed=\eE[J, el=\eE[K,
+ el1=\eE[1K, home=\eE[H, hpa=\eE[%i%p1%dG, ht=\eE[I, hts=\eEH,
+ ich=\eE[%p1%d@, il=\eE[%p1%dL, il1=\eE[L, ind=\*^J,
+ indn=\eE[%p1%dS, invis=\eE[8m, kbs=\*^H, kcbt=\eE[Z, kcub1=\eE[D,
+ kcud1=\eE[B, kcuf1=\eE[C, kcuu1=\eE[A, khome=\eE[H, kich1=\eE[L,
+ mc4=\eE[4i, mc5=\eE[5i, nel=\er\eE[S, op=\eE[39;49m,
+ rep=%p1%c\eE[%p2%{1}%\-%db, rev=\eE[7m, rin=\eE[%p1%dT,
+ rmacs=\eE[10m, rmpch=\eE[10m, rmso=\eE[m, rmul=\eE[m,
+ s0ds=\eE(B, s1ds=\eE)B, s2ds=\eE*B, s3ds=\eE+B,
+ setab=\eE[4%p1%dm, setaf=\eE[3%p1%dm,
+ sgr=\eE[0;10%?%p1%t;7%;
%?%p2%t;4%;
%?%p3%t;7%;
%?%p4%t;5%;
%?%p6%t;1%;
%?%p7%t;8%;
%?%p9%t;11%;m,
- sgr0=\\E[0;10m, smacs=\\E[11m, smpch=\\E[11m, smso=\\E[7m,
- smul=\\E[4m, tbc=\\E[3g, u6=\\E[%i%d;%dR, u7=\\E[6n,
- u8=\\E[?%[;0123456789]c, u9=\\E[c, vpa=\\E[%i%p1%dd,
-.fi
-.ft R
+ sgr0=\eE[0;10m, smacs=\eE[11m, smpch=\eE[11m, smso=\eE[7m,
+ smul=\eE[4m, tbc=\eE[3g, u6=\eE[%i%d;%dR, u7=\eE[6n,
+ u8=\eE[?%[;0123456789]c, u9=\eE[c, vpa=\eE[%i%p1%dd,
+.EE
.PP
Entries may continue onto multiple lines by placing white space at
the beginning of each line except the first.
@@ -129,38 +135,44 @@ or the size of particular delays, and
string
capabilities, which give a sequence which can be used to perform particular
terminal operations.
-.PP
-.SS Types of Capabilities
-.PP
+.SS "Types of Capabilities"
All capabilities have names.
For instance, the fact that
ANSI-standard terminals have
.I "automatic margins"
(i.e., an automatic return and line-feed
-when the end of a line is reached) is indicated by the capability \fBam\fR.
-Hence the description of ansi includes \fBam\fR.
-Numeric capabilities are followed by the character \*(``#\*('' and then a positive value.
-Thus \fBcols\fR, which indicates the number of columns the terminal has,
+when the end of a line is reached) is indicated by the capability \fBam\fP.
+Hence the description of ansi includes \fBam\fP.
+Numeric capabilities are followed by the character \*(``#\*(''
+and then a positive value.
+Thus \fBcols\fP, which indicates the number of columns the terminal has,
gives the value \*(``80\*('' for ansi.
-Values for numeric capabilities may be specified in decimal, octal or hexadecimal,
-using the C programming language conventions (e.g., 255, 0377 and 0xff or 0xFF).
-.PP
-Finally, string valued capabilities, such as \fBel\fR (clear to end of line
-sequence) are given by the two-character code, an \*(``=\*('', and then a string
-ending at the next following \*(``,\*(''.
+Values for numeric capabilities may be specified in
+decimal,
+octal, or
+hexadecimal,
+using the C programming language conventions
+(e.g., 255, 0377 and 0xff or 0xFF).
+.PP
+Finally, string valued capabilities,
+such as \fBel\fP (clear to end of line sequence)
+are given by the two-character code,
+an \*(``=\*('', and then
+a string ending at the next following \*(``,\*(''.
.PP
A number of escape sequences are provided in the string valued capabilities
for easy encoding of characters there:
.bP
-Both \fB\eE\fR and \fB\ee\fR
+Both \fB\eE\fP and \fB\ee\fP
map to an \s-1ESCAPE\s0 character,
.bP
-\fB^x\fR maps to a control-x for any appropriate \fIx\fP, and
+\fB\*^\f(BIx\fR maps to a control-\fIx\fP for any appropriate \fIx\fP,
+and
.bP
the sequences
.RS 6
.PP
-\fB\en\fP, \fB\el\fP, \fB\er\fP, \fB\et\fP, \fB\eb\fP, \fB\ef\fP, and \fB\es\fR
+\fB\en\fP, \fB\el\fP, \fB\er\fP, \fB\et\fP, \fB\eb\fP, \fB\ef\fP, and \fB\es\fP
.RE
.IP
produce
@@ -173,23 +185,23 @@ respectively.
.PP
X/Open Curses does not say what \*(``appropriate \fIx\fP\*('' might be.
In practice, that is a printable ASCII graphic character.
-The special case \*(``^?\*('' is interpreted as DEL (127).
+The special case \*(``\*^?\*('' is interpreted as DEL (127).
In all other cases, the character value is AND'd with 0x1f,
mapping to ASCII control codes in the range 0 through 31.
.PP
Other escapes include
.bP
-\fB\e^\fR for \fB^\fR,
+\fB\e\*^\fP for \fB\*^\fP,
.bP
-\fB\e\e\fR for \fB\e\fR,
+\fB\e\e\fP for \fB\e\fP,
.bP
-\fB\e\fR, for comma,
+\fB\e\fP, for comma,
.bP
-\fB\e:\fR for \fB:\fR,
+\fB\e:\fP for \fB:\fP,
.bP
-and \fB\e0\fR for null.
+and \fB\e0\fP for null.
.IP
-\fB\e0\fR will produce \e200, which does not terminate a string but behaves
+\fB\e0\fP will produce \e200, which does not terminate a string but behaves
as a null character on most terminals, providing CS7 is specified.
See \fBstty\fP(1).
.IP
@@ -197,10 +209,10 @@ The reason for this quirk is to maintain binary compatibility of the
compiled terminfo files with other implementations,
e.g., the SVr4 systems, which document this.
Compiled terminfo files use null-terminated strings, with no lengths.
-Modifying this would require a new binary format,
+Modifying this would require a new binary format,
which would not work with other implementations.
.PP
-Finally, characters may be given as three octal digits after a \fB\e\fR.
+Finally, characters may be given as three octal digits after a \fB\e\fP.
.PP
A delay in milliseconds may appear anywhere in a string capability, enclosed in
$<..> brackets, as in \fBel\fP=\eEK$<5>,
@@ -208,7 +220,8 @@ and padding characters are supplied by \fBtputs\fP(3X)
to provide this delay.
.bP
The delay must be a number with at most one decimal
-place of precision; it may be followed by suffixes \*(``*\*('' or \*(``/\*('' or both.
+place of precision;
+it may be followed by suffixes \*(``*\*('' or \*(``/\*('' or both.
.bP
A \*(``*\*(''
indicates that the padding required is proportional to the number of lines
@@ -217,12 +230,12 @@ padding required.
(In the case of insert character, the factor is still the
number of \fIlines\fP affected.)
.IP
-Normally, padding is advisory if the device has the \fBxon\fR
+Normally, padding is advisory if the device has the \fBxon\fP
capability; it is used for cost computation but does not trigger delays.
.bP
A \*(``/\*(''
suffix indicates that the padding is mandatory and forces a delay of the given
-number of milliseconds even on devices for which \fBxon\fR is present to
+number of milliseconds even on devices for which \fBxon\fP is present to
indicate flow control.
.PP
Sometimes individual capabilities must be commented out.
@@ -232,41 +245,68 @@ For example, see the second
in the example above.
.br
.ne 5
-.PP
-.SS Fetching Compiled Descriptions
-.PP
-The \fBncurses\fP library searches for terminal descriptions in several places.
-It uses only the first description found.
-The library has a compiled-in list of places to search
+.SS "Fetching Compiled Descriptions"
+Terminal descriptions in \fI\%ncurses\fP are stored in terminal
+databases.
+These databases, which are found by their pathname,
+may be configured either as directory trees or hashed databases
+(see \fBterm\fR(5)),
+.PP
+The library uses a compiled-in list of pathnames,
which can be overridden by environment variables.
Before starting to search,
-\fBncurses\fP eliminates duplicates in its search list.
+\fI\%ncurses\fP checks the search list,
+eliminating duplicates and pathnames where no terminal database is found.
+The \fI\%ncurses\fP library reads the first description
+which passes its consistency checks.
.bP
-If the environment variable TERMINFO is set, it is interpreted as the pathname
-of a directory containing the compiled description you are working on.
-Only that directory is searched.
+The environment variable \fBTERMINFO\fR is checked first, for
+a terminal database containing the terminal description.
.bP
-If TERMINFO is not set,
-\fBncurses\fR will instead look in the directory \fB$HOME/.terminfo\fR
+Next,
+\fI\%ncurses\fP looks in \fI$HOME/.terminfo\fP
for a compiled description.
+.IP
+This is an optional feature which may be omitted entirely from
+the library, or limited to prevent accidental use by privileged applications.
.bP
-Next, if the environment variable TERMINFO_DIRS is set,
-\fBncurses\fR will interpret the contents of that variable
-as a list of colon-separated directories (or database files) to be searched.
+Next,
+if the environment variable \fI\%TERMINFO_DIRS\fP is set,
+\fI\%ncurses\fP interprets the contents of that variable
+as a list of colon-separated pathnames of terminal databases to be searched.
.IP
-An empty directory name (i.e., if the variable begins or ends
+An empty pathname (i.e., if the variable begins or ends
with a colon, or contains adjacent colons)
-is interpreted as the system location \fI\*d\fR.
+is interpreted as the system location \fI\*d\fP.
.bP
-Finally, \fBncurses\fP searches these compiled-in locations:
+Finally, \fI\%ncurses\fP searches these compiled-in locations:
.RS
.bP
a list of directories (@TERMINFO_DIRS@), and
.bP
-the system terminfo directory, \fI\*d\fR (the compiled-in default).
+the system terminfo directory, \fI\*d\fP
.RE
-.SS Preparing Descriptions
.PP
+The \fBTERMINFO\fP variable can contain a terminal description instead
+of the pathname of a terminal database.
+If this variable begins with \*(``hex:\*('' or \*(``b64:\*(''
+then \fI\%ncurses\fP reads a terminal description from
+hexadecimal- or base64-encoded data,
+and if that description matches the name sought, will use that.
+This encoded data can be set using the \*(``\-Q\*('' option of
+\fB@TIC@\fR or \fB@INFOCMP@\fR.
+.PP
+The preceding addresses the usual configuration of \fI\%ncurses\fP,
+which uses terminal descriptions prepared in \fIterminfo\fP format.
+While \fItermcap\fP is less expressive,
+\fI\%ncurses\fP can also be configured to read \fItermcap\fP
+descriptions.
+In that configuration,
+it checks the \fI\%TERMCAP\fP and \fI\%TERMPATH\fP variables
+(for content and search path,
+respectively)
+after the system terminal database.
+.SS "Preparing Descriptions"
We now outline how to prepare descriptions of terminals.
The most effective way to prepare a terminal description is by imitating
the description of a similar terminal in
@@ -287,20 +327,18 @@ delete 16 or so lines from the middle of the screen, then hit the \*(``u\*(''
key several times quickly.
If the terminal messes up, more padding is usually needed.
A similar test can be used for insert character.
-.PP
-.SS Basic Capabilities
-.PP
+.SS "Basic Capabilities"
The number of columns on each line for the terminal is given by the
-\fBcols\fR numeric capability.
+\fBcols\fP numeric capability.
If the terminal is a \s-1CRT\s0, then the
-number of lines on the screen is given by the \fBlines\fR capability.
+number of lines on the screen is given by the \fBlines\fP capability.
If the terminal wraps around to the beginning of the next line when
-it reaches the right margin, then it should have the \fBam\fR capability.
+it reaches the right margin, then it should have the \fBam\fP capability.
If the terminal can clear its screen, leaving the cursor in the home
-position, then this is given by the \fBclear\fR string capability.
+position, then this is given by the \fBclear\fP string capability.
If the terminal overstrikes
(rather than clearing a position when a character is struck over)
-then it should have the \fBos\fR capability.
+then it should have the \fBos\fP capability.
If the terminal is a printing terminal, with no soft copy unit,
give it both
.B hc
@@ -365,7 +403,7 @@ and
except that they take one parameter, and scroll that many lines.
They are also undefined except at the appropriate edge of the screen.
.PP
-The \fBam\fR capability tells whether the cursor sticks at the right
+The \fBam\fP capability tells whether the cursor sticks at the right
edge of the screen when text is output, but this does not necessarily
apply to a
.B cuf1
@@ -382,7 +420,7 @@ This is useful for drawing a box around the edge of the screen, for example.
If the terminal has switch selectable automatic margins,
the
.I terminfo
-file usually assumes that this is on; i.e., \fBam\fR.
+file usually assumes that this is on; i.e., \fBam\fP.
If the terminal has a command which moves to the first column of the next
line, that command can be given as
.B nel
@@ -396,38 +434,31 @@ it may still be possible to craft a working
.B nel
out of one or both of them.
.PP
-These capabilities suffice to describe hard-copy and \*(``glass-tty\*('' terminals.
+These capabilities suffice to describe
+hard-copy and \*(``glass-tty\*('' terminals.
Thus the model 33 teletype is described as
.PP
-.DT
-.nf
-.ft CW
+.EX
.\".in -2
\s-133\||\|tty33\||\|tty\||\|model 33 teletype,
- bel=^G, cols#72, cr=^M, cud1=^J, hc, ind=^J, os,\s+1
+ bel=\*^G, cols#72, cr=\*^M, cud1=\*^J, hc, ind=\*^J, os,\s+1
.\".in +2
-.ft R
-.fi
+.EE
.PP
while the Lear Siegler \s-1ADM-3\s0 is described as
.PP
-.DT
-.nf
-.ft CW
+.EX
.\".in -2
\s-1adm3\||\|3\||\|lsi adm3,
- am, bel=^G, clear=^Z, cols#80, cr=^M, cub1=^H, cud1=^J,
- ind=^J, lines#24,\s+1
+ am, bel=\*^G, clear=\*^Z, cols#80, cr=\*^M, cub1=\*^H, cud1=\*^J,
+ ind=\*^J, lines#24,\s+1
.\".in +2
-.ft R
-.fi
-.PP
-.SS Parameterized Strings
-.PP
+.EE
+.SS "Parameterized Strings"
Cursor addressing and other strings requiring parameters
in the terminal are described by a
parameterized string capability,
-with \fIprintf\fP-like escapes such as \fI%x\fR in it.
+with \fIprintf\fP-like escapes such as \fI%x\fP in it.
For example, to address the cursor, the
.B cup
capability is given, using two parameters:
@@ -442,53 +473,93 @@ The parameter mechanism uses a stack and special \fB%\fP codes
to manipulate it.
Typically a sequence will push one of the
parameters onto the stack and then print it in some format.
-Print (e.g., "%d") is a special case.
-Other operations, including "%t" pop their operand from the stack.
+Print (e.g., \*(``%d\*('') is a special case.
+Other operations, including \*(``%t\*('' pop their operand from the stack.
It is noted that more complex operations are often necessary,
e.g., in the \fBsgr\fP string.
.PP
-The \fB%\fR encodings have the following meanings:
-.PP
+The \fB%\fP encodings have the following meanings:
.TP 5
\fB%%\fP
outputs \*(``%\*(''
.TP
-\fB%\fP\fI[[\fP:\fI]flags][width[.precision]][\fP\fBdoxXs\fP\fI]\fP
+\fB%\fI[[\fR:\fI]flags][width[.precision]][\fBdoxXs\fI]\fR
as in \fBprintf\fP(3), flags are \fI[\-+#]\fP and \fIspace\fP.
Use a \*(``:\*('' to allow the next character to be a \*(``\-\*('' flag,
avoiding interpreting \*(``%\-\*('' as an operator.
.TP
-\f(CW%c\fP
+\fB%c\fP
print \fIpop()\fP like %c in \fBprintf\fP
.TP
\fB%s\fP
print \fIpop()\fP like %s in \fBprintf\fP
.TP
-\fB%p\fP\fI[1\-9]\fP
+\fB%p\fI[1\-9]\fR
push \fIi\fP'th parameter
.TP
-\fB%P\fP\fI[a\-z]\fP
+\fB%P\fI[a\-z]\fR
set dynamic variable \fI[a\-z]\fP to \fIpop()\fP
.TP
-\fB%g\fP\fI[a\-z]/\fP
+\fB%g\fI[a\-z]\fR
get dynamic variable \fI[a\-z]\fP and push it
.TP
-\fB%P\fP\fI[A\-Z]\fP
+\fB%P\fI[A\-Z]\fR
set static variable \fI[a\-z]\fP to \fIpop()\fP
.TP
-\fB%g\fP\fI[A\-Z]\fP
+\fB%g\fI[A\-Z]\fR
get static variable \fI[a\-z]\fP and push it
.IP
The terms \*(``static\*('' and \*(``dynamic\*('' are misleading.
Historically, these are simply two different sets of variables,
whose values are not reset between calls to \fBtparm\fP(3X).
However, that fact is not documented in other implementations.
-Relying on it will adversely impact portability to other implementations.
+Relying on it will adversely impact portability to other implementations:
+.RS
+.bP
+SVr2 curses supported \fIdynamic\fP variables.
+Those are set only by a \fB%P\fP operator.
+A \fB%g\fP for a given variable without first setting it with \fB%P\fP
+will give unpredictable results, because dynamic variables are
+an uninitialized local array on the stack in the \fBtparm\fP function.
+.bP
+SVr3.2 curses supported \fIstatic\fP variables.
+Those are an array in the \fI\%TERMINAL\fP
+structure (declared in \fBterm.h\fP),
+and are zeroed automatically when the \fBsetupterm\fP function
+allocates the data.
+.bP
+SVr4 curses made no further improvements
+to the \fIdynamic/static\fP variable feature.
+.bP
+Solaris XPG4 curses does not distinguish between \fIdynamic\fP and
+\fIstatic\fP variables.
+They are the same.
+Like SVr4 curses, XPG4 curses does not initialize these explicitly.
+.bP
+Before version 6.3,
+\fI\%ncurses\fP stores both \fIdynamic\fP and \fIstatic\fP
+variables in persistent storage, initialized to zeros.
+.bP
+Beginning with version 6.3,
+\fI\%ncurses\fP stores \fIstatic\fP and \fIdynamic\fP
+variables in the same manner as SVr4.
+.RS
+.bP
+Unlike other implementations, \fI\%ncurses\fP zeros dynamic variables
+before the first \fB%g\fP or \fB%P\fP operator.
+.bP
+Like SVr2,
+the scope of dynamic variables in \fI\%ncurses\fP
+is within the current call to
+\fBtparm\fP.
+Use static variables if persistent storage is needed.
+.RE
+.RE
.TP
-\fB%'\fP\fIc\fP\fB'\fP
+\fB%\*'\fIc\fB\*'\fR
char constant \fIc\fP
.TP
-\fB%{\fP\fInn\fP\fB}\fP
+\fB%{\fInn\fB}\fR
integer constant \fInn\fP
.TP
\fB%l\fP
@@ -497,7 +568,7 @@ push strlen(pop)
\fB%+\fP, \fB%\-\fP, \fB%*\fP, \fB%/\fP, \fB%m\fP
arithmetic (%m is \fImod\fP): \fIpush(pop() op pop())\fP
.TP
-\fB%&\fP, \fB%|\fP, \fB%^\fP
+\fB%&\fP, \fB%|\fP, \fB%\*^\fP
bit operations (AND, OR and exclusive-OR): \fIpush(pop() op pop())\fP
.TP
\fB%=\fP, \fB%>\fP, \fB%<\fP
@@ -506,7 +577,7 @@ logical operations: \fIpush(pop() op pop())\fP
\fB%A\fP, \fB%O\fP
logical AND and OR operations (for conditionals)
.TP
-\fB%!\fP, \fB%~\fP
+\fB%!\fP, \fB%\*~\fP
unary operations (logical and bit complement): \fIpush(op pop())\fP
.TP
\fB%i\fP
@@ -533,45 +604,52 @@ on one line.
The \fB\-f\fP option splits the string into lines with the parts indented.
.PP
Binary operations are in postfix form with the operands in the usual order.
-That is, to get x\-5 one would use "%gx%{5}%-".
+That is, to get x\-5 one would use \*(``%gx%{5}%\-\*(''.
\fB%P\fP and \fB%g\fP variables are
persistent across escape-string evaluations.
.PP
Consider the HP2645, which, to get to row 3 and column 12, needs
to be sent \eE&a12c03Y padded for 6 milliseconds.
-Note that the order
-of the rows and columns is inverted here, and that the row and column
-are printed as two digits.
-Thus its \fBcup\fR capability is \*(``cup=6\eE&%p2%2dc%p1%2dY\*(''.
+The order of the rows and columns is inverted here,
+and the row and column are printed as two digits.
+The corresponding terminal description is expressed thus:
+.RS
+cup=\eE&a%p2%dc%p1%dY$<6>,
+.RE
.PP
The Microterm \s-1ACT-IV\s0 needs the current row and column sent
-preceded by a \fB^T\fR, with the row and column simply encoded in binary,
-\*(``cup=^T%p1%c%p2%c\*(''.
+preceded by a \fB\*^T\fP, with the row and column simply encoded in binary,
+.RS
+cup=\*^T%p1%c%p2%c
+.RE
+.PP
Terminals which use \*(``%c\*('' need to be able to
-backspace the cursor (\fBcub1\fR),
-and to move the cursor up one line on the screen (\fBcuu1\fR).
-This is necessary because it is not always safe to transmit \fB\en\fR
-\fB^D\fR and \fB\er\fR, as the system may change or discard them.
+backspace the cursor (\fBcub1\fP),
+and to move the cursor up one line on the screen (\fBcuu1\fP).
+This is necessary because it is not always safe to transmit \fB\en\fP
+\fB\*^D\fP and \fB\er\fP, as the system may change or discard them.
(The library routines dealing with terminfo set tty modes so that
tabs are never expanded, so \et is safe to send.
This turns out to be essential for the Ann Arbor 4080.)
.PP
A final example is the \s-1LSI ADM\s0-3a, which uses row and column
-offset by a blank character, thus \*(``cup=\eE=%p1%' '%+%c%p2%' '%+%c\*(''.
+offset by a blank character, thus
+.RS
+cup=\eE=%p1%\*' \*'%+%c%p2%\*' \*'%+%c
+.RE
+.PP
After sending \*(``\eE=\*('', this pushes the first parameter, pushes the
ASCII value for a space (32), adds them (pushing the sum on the stack
in place of the two previous values) and outputs that value as a character.
Then the same is done for the second parameter.
More complex arithmetic is possible using the stack.
-.PP
-.SS Cursor Motions
-.PP
+.SS "Cursor Motions"
If the terminal has a fast way to home the cursor
(to very upper left corner of screen) then this can be given as
-\fBhome\fR; similarly a fast way of getting to the lower left-hand corner
-can be given as \fBll\fR; this may involve going up with \fBcuu1\fR
+\fBhome\fP; similarly a fast way of getting to the lower left-hand corner
+can be given as \fBll\fP; this may involve going up with \fBcuu1\fP
from the home position,
-but a program should never do this itself (unless \fBll\fR does) because it
+but a program should never do this itself (unless \fBll\fP does) because it
can make no assumption about the effect of moving up from the home position.
Note that the home position is the same as addressing to (0,0):
to the top left corner of the screen, not of memory.
@@ -603,7 +681,8 @@ such as the \s-1TEKTRONIX\s+1 4025.
.PP
If the terminal needs to be in a special mode when running
a program that uses these capabilities,
-the codes to enter and exit this mode can be given as \fBsmcup\fR and \fBrmcup\fR.
+the codes to enter and exit this mode can be given
+as \fBsmcup\fP and \fBrmcup\fP.
This arises, for example, from terminals like the Concept with more than
one page of memory.
If the terminal has only memory relative cursor addressing and not screen
@@ -616,30 +695,152 @@ sets the command character to be the one used by terminfo.
If the \fBsmcup\fP sequence will not restore the screen after an
\fBrmcup\fP sequence is output (to the state prior to outputting
\fBrmcup\fP), specify \fBnrrmc\fP.
+.SS Margins
+SVr4 (and X/Open Curses)
+list several string capabilities for setting margins.
+Two were intended for use with terminals,
+and another six were intended for use with printers.
+.bP
+The two terminal capabilities assume that the terminal may have
+the capability of setting the left and/or right margin at the current
+cursor column position.
+.bP
+The printer capabilities assume that the printer may have
+two types of capability:
+.RS
+.bP
+the ability to set a top and/or bottom margin using the current
+line position, and
+.bP
+parameterized capabilities for setting the top, bottom, left, right margins
+given the number of rows or columns.
+.RE
+.PP
+In practice, the categorization into \*(``terminal\*('' and \*(``printer\*(''
+is not suitable:
+.bP
+The AT&T SVr4 terminal database uses \fBsmgl\fP four times,
+for AT&T hardware.
+.IP
+Three of the four are printers.
+They lack the ability to set left/right margins by specifying the column.
+.bP
+Other (non-AT&T) terminals may support margins
+but using different assumptions from AT&T.
+.IP
+For instance, the DEC VT420 supports left/right margins,
+but only using a column parameter.
+As an added complication, the VT420 uses two settings to fully enable
+left/right margins (left/right margin mode, and origin mode).
+The former enables the margins, which causes printed text
+to wrap within margins, but the latter is needed to prevent
+cursor-addressing outside those margins.
+.bP
+Both DEC VT420 left/right margins are set with a single control sequence.
+If either is omitted, the corresponding margin is set to the left or
+right edge of the display (rather than leaving the margin unmodified).
.PP
-.SS Area Clears
+These are the margin-related capabilities:
.PP
+.TS
+center;
+lb lb
+lb l .
+Name Description
+_
+smgl Set left margin at current column
+smgr Set right margin at current column
+smgb Set bottom margin at current line
+smgt Set top margin at current line
+smgbp Set bottom margin at line \fIN\fP
+smglp Set left margin at column \fIN\fP
+smgrp Set right margin at column \fIN\fP
+smgtp Set top margin at line \fIN\fP
+smglr Set both left and right margins to \fIL\fP and \fIR\fP
+smgtb Set both top and bottom margins to \fIT\fP and \fIB\fP
+.TE
+.PP
+When writing an application that
+uses these string capabilities,
+the pairs should be first checked to see
+if each capability in the pair is set or only one is set:
+.bP
+If both \fBsmglp\fP and \fBsmgrp\fP are set,
+each is used with a single argument, \fIN\fP,
+that gives the column number of the left and right margin, respectively.
+.bP
+If both \fBsmgtp\fP and \fBsmgbp\fP are set,
+each is used to set the top and bottom margin,
+respectively:
+.RS 4
+.bP
+\fBsmgtp\fP is used with a single argument, \fIN\fP,
+the line number of the top margin.
+.bP
+\fBsmgbp\fP is used with two arguments, \fIN\fP and \fIM\fP,
+that give the line number of the bottom margin,
+the first counting from the top of the
+page and the second counting from the bottom.
+This accommodates the two styles of specifying
+the bottom margin in different manufacturers' printers.
+.RE
+.IP
+When designing a terminfo entry for a
+printer that has a settable bottom margin,
+only the first or second argument should be used, depending on the printer.
+When developing an application that uses \fBsmgbp\fP to set the bottom margin,
+both arguments must be given.
+.PP
+Conversely, when only one capability in the pair is set:
+.bP
+If only one of \fBsmglp\fP and \fBsmgrp\fP is set,
+then it is used with two arguments,
+the column number of the left and right margins, in that order.
+.bP
+Likewise, if only one of \fBsmgtp\fP and \fBsmgbp\fP is set, then it
+is used with two arguments that give the top and bottom margins,
+in that order, counting from the top of the page.
+.IP
+When designing a terminfo entry for a printer that requires setting both
+left and right or top and bottom margins simultaneously,
+only one capability in the pairs
+\fBsmglp\fP and \fBsmgrp\fP or
+\fBsmgtp\fP and \fBsmgbp\fP should be defined,
+leaving the other unset.
+.PP
+Except for very old terminal descriptions, e.g., those developed for SVr4,
+the scheme just described should be considered obsolete.
+An improved set of capabilities was added late in the SVr4 releases
+(\fBsmglr\fP and \fBsmgtb\fP),
+which explicitly use two parameters for setting the left/right or top/bottom
+margins.
+.PP
+When setting margins, the line- and column-values are zero-based.
+.PP
+The \fBmgc\fP string capability should be defined.
+Applications such as \fBtabs\fP(1) rely upon this to reset all margins.
+.\"
+.SS "Area Clears"
If the terminal can clear from the current position to the end of the
-line, leaving the cursor where it is, this should be given as \fBel\fR.
+line, leaving the cursor where it is, this should be given as \fBel\fP.
If the terminal can clear from the beginning of the line to the current
position inclusive, leaving
the cursor where it is, this should be given as \fBel1\fP.
If the terminal can clear from the current position to the end of the
-display, then this should be given as \fBed\fR.
-\fBEd\fR is only defined from the first column of a line.
+display, then this should be given as \fBed\fP.
+\fBEd\fP is only defined from the first column of a line.
(Thus, it can be simulated by a request to delete a large number of lines,
if a true
.B ed
is not available.)
-.PP
-.SS Insert/delete line and vertical motions
-.PP
+.\"
+.SS "Insert/Delete Line and Vertical Motions"
If the terminal can open a new blank line before the line where the cursor
-is, this should be given as \fBil1\fR; this is done only from the first
+is, this should be given as \fBil1\fP; this is done only from the first
position of a line.
The cursor must then appear on the newly blank line.
If the terminal can delete the line which the cursor is on, then this
-should be given as \fBdl1\fR; this is done only from the first position on
+should be given as \fBdl1\fP; this is done only from the first position on
the line to be deleted.
Versions of
.B il1
@@ -666,12 +867,12 @@ and
.B rc
(save and restore cursor) commands may be useful for ensuring that
your synthesized insert/delete string does not move the cursor.
-(Note that the \fBncurses\fR(3X) library does this synthesis
+(Note that the \fB\%ncurses\fP(3X) library does this synthesis
automatically, so you need not compose insert/delete strings for
-an entry with \fBcsr\fR).
+an entry with \fBcsr\fP).
.PP
Yet another way to construct insert and delete might be to use a combination of
-index with the memory-lock feature found on some terminals (like the HP\-700/90
+index with the memory-lock feature found on some terminals (like the HP-700/90
series, which however also has insert/delete).
.PP
Inserting lines at the top or bottom of the screen can also be
@@ -682,20 +883,20 @@ or
on many terminals without a true insert/delete line,
and is often faster even on terminals with those features.
.PP
-The boolean \fBnon_dest_scroll_region\fR should be set if each scrolling
+The Boolean \fBnon_dest_scroll_region\fP should be set if each scrolling
window is effectively a view port on a screen-sized canvas.
To test for
this capability, create a scrolling region in the middle of the screen,
write something to the bottom line, move the cursor to the top of the region,
-and do \fBri\fR followed by \fBdl1\fR or \fBind\fR.
+and do \fBri\fP followed by \fBdl1\fP or \fBind\fP.
If the data scrolled
-off the bottom of the region by the \fBri\fR re-appears, then scrolling
+off the bottom of the region by the \fBri\fP re-appears, then scrolling
is non-destructive.
-System V and XSI Curses expect that \fBind\fR, \fBri\fR,
-\fBindn\fR, and \fBrin\fR will simulate destructive scrolling; their
-documentation cautions you not to define \fBcsr\fR unless this is true.
-This \fBcurses\fR implementation is more liberal and will do explicit erases
-after scrolling if \fBndsrc\fR is defined.
+System V and X/Open Curses expect that \fBind\fP, \fBri\fP,
+\fBindn\fP, and \fBrin\fP will simulate destructive scrolling; their
+documentation cautions you not to define \fBcsr\fP unless this is true.
+This \fBcurses\fP implementation is more liberal and will do explicit erases
+after scrolling if \fBndsrc\fP is defined.
.PP
If the terminal has the ability to define a window as part of
memory, which all commands affect,
@@ -705,17 +906,15 @@ The four parameters are the starting and ending lines in memory
and the starting and ending columns in memory, in that order.
.PP
If the terminal can retain display memory above, then the
-\fBda\fR capability should be given; if display memory can be retained
-below, then \fBdb\fR should be given.
+\fBda\fP capability should be given; if display memory can be retained
+below, then \fBdb\fP should be given.
These indicate
that deleting a line or scrolling may bring non-blank lines up from below
-or that scrolling back with \fBri\fR may bring down non-blank lines.
-.PP
-.SS Insert/Delete Character
-.PP
+or that scrolling back with \fBri\fP may bring down non-blank lines.
+.SS "Insert/Delete Character"
There are two basic kinds of intelligent terminals with respect to
insert/delete character which can be described using
-.I terminfo.
+.IR terminfo .
The most common insert/delete character operations affect only the characters
on the current line and shift characters off the end of the line rigidly.
Other terminals, such as the Concept 100 and the Perkin Elmer Owl, make
@@ -736,7 +935,7 @@ not distinguish between blanks and untyped positions.
If the \*(``abc\*(''
shifts over to the \*(``def\*('' which then move together around the end of the
current line and onto the next as you insert, you have the second type of
-terminal, and should give the capability \fBin\fR, which stands for
+terminal, and should give the capability \fBin\fP, which stands for
\*(``insert null\*(''.
.PP
While these are two logically separate attributes (one line versus multi-line
@@ -745,34 +944,34 @@ terminals whose insert mode cannot be described with the single attribute.
.PP
Terminfo can describe both terminals which have an insert mode, and terminals
which send a simple sequence to open a blank position on the current line.
-Give as \fBsmir\fR the sequence to get into insert mode.
-Give as \fBrmir\fR the sequence to leave insert mode.
-Now give as \fBich1\fR any sequence needed to be sent just before sending
+Give as \fBsmir\fP the sequence to get into insert mode.
+Give as \fBrmir\fP the sequence to leave insert mode.
+Now give as \fBich1\fP any sequence needed to be sent just before sending
the character to be inserted.
Most terminals with a true insert mode
-will not give \fBich1\fR; terminals which send a sequence to open a screen
+will not give \fBich1\fP; terminals which send a sequence to open a screen
position should give it here.
.PP
-If your terminal has both, insert mode is usually preferable to \fBich1\fR.
+If your terminal has both, insert mode is usually preferable to \fBich1\fP.
Technically, you should not give both unless the terminal actually requires
both to be used in combination.
Accordingly, some non-curses applications get
confused if both are present; the symptom is doubled characters in an update
using insert.
-This requirement is now rare; most \fBich\fR sequences do not
-require previous smir, and most smir insert modes do not require \fBich1\fR
+This requirement is now rare; most \fBich\fP sequences do not
+require previous smir, and most smir insert modes do not require \fBich1\fP
before each character.
-Therefore, the new \fBcurses\fR actually assumes this
-is the case and uses either \fBrmir\fR/\fBsmir\fR or \fBich\fR/\fBich1\fR as
+Therefore, the new \fBcurses\fP actually assumes this
+is the case and uses either \fBrmir\fP/\fBsmir\fP or \fBich\fP/\fBich1\fP as
appropriate (but not both).
If you have to write an entry to be used under
new curses for a terminal old enough to need both, include the
-\fBrmir\fR/\fBsmir\fR sequences in \fBich1\fR.
+\fBrmir\fP/\fBsmir\fP sequences in \fBich1\fP.
.PP
If post insert padding is needed, give this as a number of milliseconds
-in \fBip\fR (a string option).
+in \fBip\fP (a string option).
Any other sequence which may need to be
-sent after an insert of a single character may also be given in \fBip\fR.
+sent after an insert of a single character may also be given in \fBip\fP.
If your terminal needs both to be placed into an \*(``insert mode\*('' and
a special code to precede each inserted character, then both
.BR smir / rmir
@@ -795,11 +994,11 @@ It is occasionally necessary to move around while in insert mode
to delete characters on the same line (e.g., if there is a tab after
the insertion position).
If your terminal allows motion while in
-insert mode you can give the capability \fBmir\fR to speed up inserting
+insert mode you can give the capability \fBmir\fP to speed up inserting
in this case.
-Omitting \fBmir\fR will affect only speed.
+Omitting \fBmir\fP will affect only speed.
Some terminals
-(notably Datamedia's) must not have \fBmir\fR because of the way their
+(notably Datamedia's) must not have \fBmir\fP because of the way their
insert mode works.
.PP
Finally, you can specify
@@ -809,8 +1008,8 @@ to delete a single character,
with one parameter,
.IR n ,
to delete
-.I n characters,
-and delete mode by giving \fBsmdc\fR and \fBrmdc\fR
+.IR n "characters,"
+and delete mode by giving \fBsmdc\fP and \fBrmdc\fP
to enter and exit delete mode (any mode the terminal needs to be placed
in for
.B dch1
@@ -824,30 +1023,28 @@ blanks without moving the cursor)
can be given as
.B ech
with one parameter.
-.PP
.SS "Highlighting, Underlining, and Visible Bells"
-.PP
If your terminal has one or more kinds of display attributes,
these can be represented in a number of different ways.
You should choose one display form as
-\f2standout mode\fR,
+\f2standout mode\fP,
representing a good, high contrast, easy-on-the-eyes,
format for highlighting error messages and other attention getters.
(If you have a choice, reverse video plus half-bright is good,
or reverse video alone.)
The sequences to enter and exit standout mode
-are given as \fBsmso\fR and \fBrmso\fR, respectively.
+are given as \fBsmso\fP and \fBrmso\fP, respectively.
If the code to change into or out of standout
mode leaves one or even two blank spaces on the screen,
as the TVI 912 and Teleray 1061 do,
-then \fBxmc\fR should be given to tell how many spaces are left.
+then \fBxmc\fP should be given to tell how many spaces are left.
.PP
-Codes to begin underlining and end underlining can be given as \fBsmul\fR
-and \fBrmul\fR respectively.
+Codes to begin underlining and end underlining can be given as \fBsmul\fP
+and \fBrmul\fP respectively.
If the terminal has a code to underline the current character and move
the cursor one space to the right,
such as the Microterm Mime,
-this can be given as \fBuc\fR.
+this can be given as \fBuc\fP.
.PP
Other capabilities to enter various highlighting modes include
.B blink
@@ -878,7 +1075,8 @@ this should be given as
.B sgr
(set attributes),
taking 9 parameters.
-Each parameter is either 0 or nonzero, as the corresponding attribute is on or off.
+Each parameter is either zero (0) or nonzero,
+as the corresponding attribute is on or off.
The 9 parameters are, in order:
standout, underline, reverse, blink, dim, bold, blank, protect, alternate
character set.
@@ -890,21 +1088,20 @@ For example, the DEC vt220 supports most of the modes:
.PP
.TS
center;
-l l l
-l l l
-lw18 lw14 lw18.
-\fBtparm parameter attribute escape sequence\fP
-
-none none \\E[0m
-p1 standout \\E[0;1;7m
-p2 underline \\E[0;4m
-p3 reverse \\E[0;7m
-p4 blink \\E[0;5m
+lb lb lb
+l l l .
+tparm Parameter Attribute Escape Sequence
+_
+none none \eE[0m
+p1 standout \eE[0;1;7m
+p2 underline \eE[0;4m
+p3 reverse \eE[0;7m
+p4 blink \eE[0;5m
p5 dim not available
-p6 bold \\E[0;1m
-p7 invis \\E[0;8m
+p6 bold \eE[0;1m
+p7 invis \eE[0;8m
p8 protect not used
-p9 altcharset ^O (off) ^N (on)
+p9 altcharset \*^O (off) \*^N (on)
.TE
.PP
We begin each escape sequence by turning off any existing modes, since
@@ -913,9 +1110,9 @@ Standout is set up to be the combination of reverse and bold.
The vt220 terminal has a protect mode,
though it is not commonly used in sgr
because it protects characters on the screen from the host's erasures.
-The altcharset mode also is different in that it is either ^O or ^N,
+The altcharset mode also is different in that it is either \*^O or \*^N,
depending on whether it is off or on.
-If all modes are turned on, the resulting sequence is \\E[0;1;4;5;7;8m^N.
+If all modes are turned on, the resulting sequence is \eE[0;1;4;5;7;8m\*^N.
.PP
Some sequences are common to different modes.
For example, ;7 is output when either p1 or p3 is true, that is, if
@@ -926,31 +1123,26 @@ Writing out the above sequences, along with their dependencies yields
.ne 11
.TS
center;
-l l l
-l l l
-lw18 lw14 lw18.
-\fBsequence when to output terminfo translation\fP
-
-.ft CW
-\\E[0 always \\E[0
+lb lb lb
+l l l .
+Sequence When to Output terminfo Translation
+_
+\eE[0 always \eE[0
;1 if p1 or p6 %?%p1%p6%|%t;1%;
;4 if p2 %?%p2%|%t;4%;
;5 if p4 %?%p4%|%t;5%;
;7 if p1 or p3 %?%p1%p3%|%t;7%;
;8 if p7 %?%p7%|%t;8%;
m always m
-^N or ^O if p9 ^N, else ^O %?%p9%t^N%e^O%;
-.ft R
+\*^N or \*^O if p9 \*^N, else \*^O %?%p9%t\*^N%e\*^O%;
.TE
.PP
Putting this all together into the sgr sequence gives:
.PP
-.ft CW
-.nf
- sgr=\\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p4%t;5%;
- %?%p1%p3%|%t;7%;%?%p7%t;8%;m%?%p9%t\\016%e\\017%;,
-.fi
-.ft R
+.EX
+ sgr=\eE[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p4%t;5%;
+ %?%p1%p3%|%t;7%;%?%p7%t;8%;m%?%p9%t\e016%e\e017%;,
+.EE
.PP
Remember that if you specify sgr, you must also specify sgr0.
Also, some implementations rely on sgr being given if sgr0 is,
@@ -975,7 +1167,7 @@ capability, asserting that it is safe to move in standout mode, is present.
.PP
If the terminal has
a way of flashing the screen to indicate an error quietly (a bell replacement)
-then this can be given as \fBflash\fR; it must not move the cursor.
+then this can be given as \fBflash\fP; it must not move the cursor.
.PP
If the cursor needs to be made more visible than normal when it is
not on the bottom line (to make, for example, a non-blinking underline into an
@@ -991,30 +1183,28 @@ should be given which undoes the effects of both of these modes.
If your terminal correctly generates underlined characters
(with no special codes needed)
even though it does not overstrike,
-then you should give the capability \fBul\fR.
+then you should give the capability \fBul\fP.
If a character overstriking another leaves both characters on the screen,
specify the capability \fBos\fP.
If overstrikes are erasable with a blank,
-then this should be indicated by giving \fBeo\fR.
-.PP
-.SS Keypad and Function Keys
-.PP
+then this should be indicated by giving \fBeo\fP.
+.SS "Keypad and Function Keys"
If the terminal has a keypad that transmits codes when the keys are pressed,
this information can be given.
Note that it is not possible to handle
terminals where the keypad only works in local (this applies, for example,
to the unshifted HP 2621 keys).
If the keypad can be set to transmit or not transmit,
-give these codes as \fBsmkx\fR and \fBrmkx\fR.
+give these codes as \fBsmkx\fP and \fBrmkx\fP.
Otherwise the keypad is assumed to always transmit.
.PP
The codes sent by the left arrow, right arrow, up arrow, down arrow,
and home keys can be given as
-\fBkcub1, kcuf1, kcuu1, kcud1, \fRand\fB khome\fR respectively.
+\fBkcub1, kcuf1, kcuu1, kcud1, \fRand\fB khome\fP respectively.
If there are function keys such as f0, f1, ..., f10, the codes they send
-can be given as \fBkf0, kf1, ..., kf10\fR.
+can be given as \fBkf0, kf1, ..., kf10\fP.
If these keys have labels other than the default f0 through f10, the labels
-can be given as \fBlf0, lf1, ..., lf10\fR.
+can be given as \fBlf0, lf1, ..., lf10\fP.
.PP
The codes transmitted by certain other special keys can be given:
.bP
@@ -1105,9 +1295,7 @@ If there are commands to turn the labels on and off,
give them in \fBsmln\fP and \fBrmln\fP.
\fBsmln\fP is normally output after one or more pln
sequences to make sure that the change becomes visible.
-.PP
-.SS Tabs and Initialization
-.PP
+.SS "Tabs and Initialization"
A few capabilities are used only for tabs:
.bP
If the terminal has hardware tabs, the command to advance to the next
@@ -1153,7 +1341,7 @@ initialization strings for the terminal,
.BR iprog ,
the path name of a program to be run to initialize the terminal,
.bP
-and \fBif\fR, the name of a file containing long initialization strings.
+and \fBif\fP, the name of a file containing long initialization strings.
.PP
These strings are expected to set the terminal into modes consistent
with the rest of the terminfo description.
@@ -1238,7 +1426,7 @@ The \fB@RESET@\fP program writes strings including
.BR iprog ,
etc., in the same order as the
.I init
-program, using
+program, using
.BR rs1 ,
etc., instead of
.BR is1 ,
@@ -1291,8 +1479,7 @@ use the
\fBhts\fP (\fBset_tab\fP) capabilities directly
only when the \fBit\fP (\fBinit_tabs\fP) capability
is set to a value other than \fIeight\fP.
-.SS Delays and Padding
-.PP
+.SS "Delays and Padding"
Many older and slower terminals do not support either XON/XOFF or DTR
handshaking, including hard copy terminals and some very archaic CRTs
(including, for example, DEC VT100s).
@@ -1300,7 +1487,7 @@ These may require padding characters
after certain cursor motions and screen changes.
.PP
If the terminal uses xon/xoff handshaking for flow control (that is,
-it automatically emits ^S back to the host when its input buffers are
+it automatically emits \*^S back to the host when its input buffers are
close to full), set
.BR xon .
This capability suppresses the emission of padding.
@@ -1310,101 +1497,98 @@ Padding information should still be included so that routines can
make better decisions about relative costs, but actual pad characters will
not be transmitted.
.PP
-If \fBpb\fR (padding baud rate) is given, padding is suppressed at baud rates
-below the value of \fBpb\fR.
+If \fBpb\fP (padding baud rate) is given, padding is suppressed at baud rates
+below the value of \fBpb\fP.
If the entry has no padding baud rate, then
-whether padding is emitted or not is completely controlled by \fBxon\fR.
+whether padding is emitted or not is completely controlled by \fBxon\fP.
.PP
If the terminal requires other than a null (zero) character as a pad,
-then this can be given as \fBpad\fR.
+then this can be given as \fBpad\fP.
Only the first character of the
.B pad
string is used.
-.PP
-.SS Status Lines
+.SS "Status Lines"
Some terminals have an extra \*(``status line\*('' which is not normally used by
-software (and thus not counted in the terminal's \fBlines\fR capability).
+software (and thus not counted in the terminal's \fBlines\fP capability).
.PP
The simplest case is a status line which is cursor-addressable but not
part of the main scrolling region on the screen; the Heathkit H19 has
a status line of this kind, as would a 24-line VT100 with a 23-line
scrolling region set up on initialization.
This situation is indicated
-by the \fBhs\fR capability.
+by the \fBhs\fP capability.
.PP
Some terminals with status lines need special sequences to access the
status line.
These may be expressed as a string with single parameter
-\fBtsl\fR which takes the cursor to a given zero-origin column on the
+\fBtsl\fP which takes the cursor to a given zero-origin column on the
status line.
-The capability \fBfsl\fR must return to the main-screen
-cursor positions before the last \fBtsl\fR.
+The capability \fBfsl\fP must return to the main-screen
+cursor positions before the last \fBtsl\fP.
You may need to embed the
-string values of \fBsc\fR (save cursor) and \fBrc\fR (restore cursor)
-in \fBtsl\fR and \fBfsl\fR to accomplish this.
+string values of \fBsc\fP (save cursor) and \fBrc\fP (restore cursor)
+in \fBtsl\fP and \fBfsl\fP to accomplish this.
.PP
The status line is normally assumed to be the same width as the width
of the terminal.
If this is untrue, you can specify it with the numeric
-capability \fBwsl\fR.
+capability \fBwsl\fP.
.PP
-A command to erase or blank the status line may be specified as \fBdsl\fR.
+A command to erase or blank the status line may be specified as \fBdsl\fP.
.PP
-The boolean capability \fBeslok\fR specifies that escape sequences, tabs,
+The Boolean capability \fBeslok\fP specifies that escape sequences, tabs,
etc., work ordinarily in the status line.
.PP
-The \fBncurses\fR implementation does not yet use any of these capabilities.
+The \fI\%ncurses\fP implementation does not yet use any of these
+capabilities.
They are documented here in case they ever become important.
-.PP
-.SS Line Graphics
-.PP
+.SS "Line Graphics"
Many terminals have alternate character sets useful for forms-drawing.
-Terminfo and \fBcurses\fR have built-in support
+Terminfo and \fBcurses\fP have built-in support
for most of the drawing characters
supported by the VT100, with some characters from the AT&T 4410v1 added.
-This alternate character set may be specified by the \fBacsc\fR capability.
-.PP
-.TS H
-center expand;
-l l l l l
-l l l l l
-_ _ _ _ _
-lw25 lw10 lw6 lw6 lw6.
-.\".TH
-\fBGlyph ACS Ascii acsc acsc\fR
-\fBName Name Default Char Value\fR
-arrow pointing right ACS_RARROW > + 0x2b
-arrow pointing left ACS_LARROW < , 0x2c
-arrow pointing up ACS_UARROW ^ \- 0x2d
-arrow pointing down ACS_DARROW v . 0x2e
-solid square block ACS_BLOCK # 0 0x30
-diamond ACS_DIAMOND + ` 0x60
-checker board (stipple) ACS_CKBOARD : a 0x61
-degree symbol ACS_DEGREE \e f 0x66
-plus/minus ACS_PLMINUS # g 0x67
-board of squares ACS_BOARD # h 0x68
-lantern symbol ACS_LANTERN # i 0x69
-lower right corner ACS_LRCORNER + j 0x6a
-upper right corner ACS_URCORNER + k 0x6b
-upper left corner ACS_ULCORNER + l 0x6c
-lower left corner ACS_LLCORNER + m 0x6d
-large plus or crossover ACS_PLUS + n 0x6e
-scan line 1 ACS_S1 ~ o 0x6f
-scan line 3 ACS_S3 \- p 0x70
-horizontal line ACS_HLINE \- q 0x71
-scan line 7 ACS_S7 \- r 0x72
-scan line 9 ACS_S9 \&_ s 0x73
-tee pointing right ACS_LTEE + t 0x74
-tee pointing left ACS_RTEE + u 0x75
-tee pointing up ACS_BTEE + v 0x76
-tee pointing down ACS_TTEE + w 0x77
-vertical line ACS_VLINE | x 0x78
-less-than-or-equal-to ACS_LEQUAL < y 0x79
-greater-than-or-equal-to ACS_GEQUAL > z 0x7a
-greek pi ACS_PI * { 0x7b
-not-equal ACS_NEQUAL ! | 0x7c
-UK pound sign ACS_STERLING f } 0x7d
-bullet ACS_BULLET o ~ 0x7e
+This alternate character set may be specified by the \fBacsc\fP capability.
+.PP
+.TS
+center;
+Lb Cb S L Lb
+Lb2 Lb2 Lb Lb1 S
+Lb L C Lb Lx.
+\& acsc \& \&
+ACS Name Value Symbol ASCII Fallback / Glyph Name
+_
+ACS_RARROW 0x2b + > arrow pointing right
+ACS_LARROW 0x2c , < arrow pointing left
+ACS_UARROW 0x2d \- \*^ arrow pointing up
+ACS_DARROW 0x2e . v arrow pointing down
+ACS_BLOCK 0x30 0 # solid square block
+ACS_DIAMOND 0x60 \(ga + diamond
+ACS_CKBOARD 0x61 a : checker board (stipple)
+ACS_DEGREE 0x66 f \e degree symbol
+ACS_PLMINUS 0x67 g # plus/minus
+ACS_BOARD 0x68 h # board of squares
+ACS_LANTERN 0x69 i # lantern symbol
+ACS_LRCORNER 0x6a j + lower right corner
+ACS_URCORNER 0x6b k + upper right corner
+ACS_ULCORNER 0x6c l + upper left corner
+ACS_LLCORNER 0x6d m + lower left corner
+ACS_PLUS 0x6e n + large plus or crossover
+ACS_S1 0x6f o \*~ scan line 1
+ACS_S3 0x70 p \- scan line 3
+ACS_HLINE 0x71 q \- horizontal line
+ACS_S7 0x72 r \- scan line 7
+ACS_S9 0x73 s \&_ scan line 9
+ACS_LTEE 0x74 t + tee pointing right
+ACS_RTEE 0x75 u + tee pointing left
+ACS_BTEE 0x76 v + tee pointing up
+ACS_TTEE 0x77 w + tee pointing down
+ACS_VLINE 0x78 x | vertical line
+ACS_LEQUAL 0x79 y < less-than-or-equal-to
+ACS_GEQUAL 0x7a z > greater-than-or-equal-to
+ACS_PI 0x7b { * greek pi
+ACS_NEQUAL 0x7c | ! not-equal
+ACS_STERLING 0x7d } f UK pound sign
+ACS_BULLET 0x7e \*~ o bullet
.TE
.PP
A few notes apply to the table itself:
@@ -1429,13 +1613,11 @@ The other VT100 symbols for control characters (\fIhorizontal tab\fP,
.PP
The best way to define a new device's graphics set is to add a column
to a copy of this table for your terminal, giving the character which
-(when emitted between \fBsmacs\fR/\fBrmacs\fR switches) will be rendered
+(when emitted between \fBsmacs\fP/\fBrmacs\fP switches) will be rendered
as the corresponding graphic.
Then read off the VT100/your terminal
character pairs right to left in sequence; these become the ACSC string.
-.PP
-.SS Color Handling
-.PP
+.SS "Color Handling"
The curses library functions \fBinit_pair\fP and \fBinit_color\fP
manipulate the \fIcolor pairs\fP and \fIcolor values\fP discussed in this
section
@@ -1448,26 +1630,26 @@ terminals have a predefined set of \fIN\fP colors
(where \fIN\fP is usually 8),
and can set
character-cell foreground and background characters independently, mixing them
-into \fIN\fP\ *\ \fIN\fP color-pairs.
+into \fIN\fP\ *\ \fIN\fP color pairs.
.bP
On HP-like terminals, the user must set each color
pair up separately (foreground and background are not independently settable).
-Up to \fIM\fP color-pairs may be set up from 2*\fIM\fP different colors.
+Up to \fIM\fP color pairs may be set up from 2*\fIM\fP different colors.
ANSI-compatible terminals are Tektronix-like.
.PP
Some basic color capabilities are independent of the color method.
The numeric
-capabilities \fBcolors\fR and \fBpairs\fR specify the maximum numbers of colors
-and color-pairs that can be displayed simultaneously.
-The \fBop\fR (original
+capabilities \fBcolors\fP and \fBpairs\fP specify the maximum numbers of colors
+and color pairs that can be displayed simultaneously.
+The \fBop\fP (original
pair) string resets foreground and background colors to their default values
for the terminal.
-The \fBoc\fR string resets all colors or color-pairs to
+The \fBoc\fP string resets all colors or color pairs to
their default values for the terminal.
Some terminals (including many PC
terminal emulators) erase screen areas with the current background color rather
-than the power-up default background; these should have the boolean capability
-\fBbce\fR.
+than the power-up default background; these should have the Boolean capability
+\fBbce\fP.
.PP
While the curses library works with \fIcolor pairs\fP
(reflecting the inability of some devices to set foreground
@@ -1475,109 +1657,115 @@ and background colors independently),
there are separate capabilities for setting these features:
.bP
To change the current foreground or background color on a Tektronix-type
-terminal, use \fBsetaf\fR (set ANSI foreground) and \fBsetab\fR (set ANSI
-background) or \fBsetf\fR (set foreground) and \fBsetb\fR (set background).
+terminal, use \fBsetaf\fP (set ANSI foreground) and \fBsetab\fP (set ANSI
+background) or \fBsetf\fP (set foreground) and \fBsetb\fP (set background).
These take one parameter, the color number.
The SVr4 documentation describes
-only \fBsetaf\fR/\fBsetab\fR; the XPG4 draft says that "If the terminal
+only \fBsetaf\fP/\fBsetab\fP; the XPG4 draft says that "If the terminal
supports ANSI escape sequences to set background and foreground, they should
-be coded as \fBsetaf\fR and \fBsetab\fR, respectively.
+be coded as \fBsetaf\fP and \fBsetab\fP, respectively.
.bP
If the terminal
supports other escape sequences to set background and foreground, they should
-be coded as \fBsetf\fR and \fBsetb\fR, respectively.
-The \fBvidputs\fR and the \fBrefresh\fP(3X) functions
-use the \fBsetaf\fR and \fBsetab\fR capabilities if they are defined.
+be coded as \fBsetf\fP and \fBsetb\fP, respectively.
+The \fBvidputs\fP and the \fBrefresh\fP(3X) functions
+use the \fBsetaf\fP and \fBsetab\fP capabilities if they are defined.
.PP
-The \fBsetaf\fR/\fBsetab\fR and \fBsetf\fR/\fBsetb\fR capabilities take a
+The \fBsetaf\fP/\fBsetab\fP and \fBsetf\fP/\fBsetb\fP capabilities take a
single numeric argument each.
-Argument values 0-7 of \fBsetaf\fR/\fBsetab\fR are portably defined as
+Argument values 0-7 of \fBsetaf\fP/\fBsetab\fP are portably defined as
follows (the middle column is the symbolic #define available in the header for
-the \fBcurses\fR or \fBncurses\fR libraries).
+the \fBcurses\fP or \fI\%ncurses\fP libraries).
The terminal hardware is free to
map these as it likes, but the RGB values indicate normal locations in color
space.
.PP
-.TS H
+.TS
center;
-l c c c
-l l n l.
-\fBColor #define Value RGB\fR
-black \fBCOLOR_BLACK\fR 0 0, 0, 0
-red \fBCOLOR_RED\ \fR 1 max,0,0
-green \fBCOLOR_GREEN\fR 2 0,max,0
-yellow \fBCOLOR_YELLOW\fR 3 max,max,0
-blue \fBCOLOR_BLUE\fR 4 0,0,max
-magenta \fBCOLOR_MAGENTA\fR 5 max,0,max
-cyan \fBCOLOR_CYAN\fR 6 0,max,max
-white \fBCOLOR_WHITE\fR 7 max,max,max
+cb cb cb cb s s
+l lb c l1 l1 l .
+Color #define Value RGB
+_
+black COLOR_BLACK 0 0, 0, 0
+red COLOR_RED 1 max, 0, 0
+green COLOR_GREEN 2 0, max, 0
+yellow COLOR_YELLOW 3 max, max, 0
+blue COLOR_BLUE 4 0, 0, max
+magenta COLOR_MAGENTA 5 max, 0, max
+cyan COLOR_CYAN 6 0, max, max
+white COLOR_WHITE 7 max, max, max
.TE
+.br
+.if t .ne 6v
.PP
-The argument values of \fBsetf\fR/\fBsetb\fR historically correspond to
+The argument values of \fBsetf\fP/\fBsetb\fP historically correspond to
a different mapping, i.e.,
-.TS H
+.PP
+.TS
center;
-l c c c
-l l n l.
-\fBColor #define Value RGB\fR
-black \fBCOLOR_BLACK\fR 0 0, 0, 0
-blue \fBCOLOR_BLUE\fR 1 0,0,max
-green \fBCOLOR_GREEN\fR 2 0,max,0
-cyan \fBCOLOR_CYAN\fR 3 0,max,max
-red \fBCOLOR_RED\ \fR 4 max,0,0
-magenta \fBCOLOR_MAGENTA\fR 5 max,0,max
-yellow \fBCOLOR_YELLOW\fR 6 max,max,0
-white \fBCOLOR_WHITE\fR 7 max,max,max
+cb cb cb cb s s
+l lb c l1 l1 l .
+Color #define Value RGB
+_
+black COLOR_BLACK 0 0, 0, 0
+blue COLOR_BLUE 1 0, 0, max
+green COLOR_GREEN 2 0, max, 0
+cyan COLOR_CYAN 3 0, max, max
+red COLOR_RED 4 max, 0, 0
+magenta COLOR_MAGENTA 5 max, 0, max
+yellow COLOR_YELLOW 6 max, max, 0
+white COLOR_WHITE 7 max, max, max
.TE
.PP
It is important to not confuse the two sets of color capabilities;
otherwise red/blue will be interchanged on the display.
.PP
-On an HP-like terminal, use \fBscp\fR with a color-pair number parameter to set
+On an HP-like terminal, use \fBscp\fP with a color pair number parameter to set
which color pair is current.
.PP
Some terminals allow the \fIcolor values\fP to be modified:
.bP
-On a Tektronix-like terminal, the capability \fBccc\fR may be present to
+On a Tektronix-like terminal, the capability \fBccc\fP may be present to
indicate that colors can be modified.
-If so, the \fBinitc\fR capability will
-take a color number (0 to \fBcolors\fR \- 1)and three more parameters which
+If so, the \fBinitc\fP capability will
+take a color number (0 to \fBcolors\fP \- 1)and three more parameters which
describe the color.
These three parameters default to being interpreted as RGB
(Red, Green, Blue) values.
-If the boolean capability \fBhls\fR is present,
+If the Boolean capability \fBhls\fP is present,
they are instead as HLS (Hue, Lightness, Saturation) indices.
The ranges are
terminal-dependent.
.bP
-On an HP-like terminal, \fBinitp\fR may give a capability for changing a
-color-pair value.
-It will take seven parameters; a color-pair number (0 to
-\fBmax_pairs\fR \- 1), and two triples describing first background and then
+On an HP-like terminal, \fBinitp\fP may give a capability for changing a
+color pair value.
+It will take seven parameters; a color pair number (0 to
+\fBmax_pairs\fP \- 1), and two triples describing first background and then
foreground colors.
These parameters must be (Red, Green, Blue) or
-(Hue, Lightness, Saturation) depending on \fBhls\fR.
+(Hue, Lightness, Saturation) depending on \fBhls\fP.
.PP
On some color terminals, colors collide with highlights.
You can register
-these collisions with the \fBncv\fR capability.
-This is a bit-mask of
+these collisions with the \fBncv\fP capability.
+This is a bit mask of
attributes not to be used when colors are enabled.
The correspondence with the
-attributes understood by \fBcurses\fR is as follows:
+attributes understood by \fBcurses\fP is as follows:
.PP
.TS
center;
-l l l l
-lw20 lw2 lw10 lw10.
-\fBAttribute Bit Decimal Set by\fR
+cb cb cb cb
+lb n n lb.
+Attribute Bit Decimal Set by
+_
A_STANDOUT 0 1 sgr
A_UNDERLINE 1 2 sgr
A_REVERSE 2 4 sgr
-A_BLINK 3 8 sgr
-A_DIM 4 16 sgr
-A_BOLD 5 32 sgr
-A_INVIS 6 64 sgr
+A_BLINK 3 8 sgr
+A_DIM 4 16 sgr
+A_BOLD 5 32 sgr
+A_INVIS 6 64 sgr
A_PROTECT 7 128 sgr
A_ALTCHARSET 8 256 sgr
A_HORIZONTAL 9 512 sgr1
@@ -1592,19 +1780,21 @@ A_ITALIC 15 32768 sitm
For example, on many IBM PC consoles, the underline attribute collides with the
foreground color blue and is not available in color mode.
These should have
-an \fBncv\fR capability of 2.
+an \fBncv\fP capability of 2.
.PP
-SVr4 curses does nothing with \fBncv\fR, ncurses recognizes it and optimizes
+SVr4 curses does nothing with \fBncv\fP,
+\fI\%ncurses\fP recognizes it and optimizes
the output in favor of colors.
-.PP
.SS Miscellaneous
If the terminal requires other than a null (zero) character as a pad, then this
can be given as pad.
Only the first character of the pad string is used.
If the terminal does not have a pad character, specify npc.
-Note that ncurses implements the termcap-compatible \fBPC\fR variable;
+Note that \fI\%ncurses\fP implements the termcap-compatible \fBPC\fP
+variable;
though the application may set this value to something other than
-a null, ncurses will test \fBnpc\fR first and use napms if the terminal
+a null,
+\fI\%ncurses\fP will test \fBnpc\fP first and use napms if the terminal
has no pad character.
.PP
If the terminal can move up or down half a line,
@@ -1625,16 +1815,17 @@ this can be indicated with the parameterized string
.BR rep .
The first parameter is the character to be repeated and the second
is the number of times to repeat it.
-Thus, tparm(repeat_char, 'x', 10) is the same as \*(``xxxxxxxxxx\*(''.
+Thus, tparm(repeat_char, \*'x\*', 10) is the same as \*(``xxxxxxxxxx\*(''.
.PP
-If the terminal has a settable command character, such as the \s-1TEKTRONIX\s+1 4025,
+If the terminal has a settable command character,
+such as the \s-1TEKTRONIX\s+1 4025,
this can be indicated with
.BR cmdch .
A prototype command character is chosen which is used in all capabilities.
This character is given in the
.B cmdch
capability to identify it.
-The following convention is supported on some UNIX systems:
+The following convention is supported on some Unix systems:
The environment is to be searched for a
.B CC
variable, and if found, all
@@ -1676,7 +1867,7 @@ A value of
indicates that the number of lines is not fixed,
but that there is still more memory than fits on the screen.
.PP
-If the terminal is one of those supported by the \s-1UNIX\s+1 virtual
+If the terminal is one of those supported by the Unix virtual
terminal protocol, the terminal number can be given as
.BR vt .
.PP
@@ -1703,15 +1894,14 @@ All text, including
is transparently passed to the printer while an
.B mc5p
is in effect.
+.SS "Glitches and Brain Damage"
+Hazeltine terminals,
+which do not allow \*(``\*~\*('' characters to be displayed should
+indicate \fBhz\fP.
.PP
-.SS Glitches and Braindamage
-.PP
-Hazeltine terminals, which do not allow \*(``~\*('' characters to be displayed should
-indicate \fBhz\fR.
-.PP
-Terminals which ignore a line-feed immediately after an \fBam\fR wrap,
+Terminals which ignore a line-feed immediately after an \fBam\fP wrap,
such as the Concept and vt100,
-should indicate \fBxenl\fR.
+should indicate \fBxenl\fP.
.PP
If
.B el
@@ -1720,14 +1910,14 @@ is required to get rid of standout
\fBxhp\fP should be given.
.PP
Teleray terminals, where tabs turn all characters moved over to blanks,
-should indicate \fBxt\fR (destructive tabs).
+should indicate \fBxt\fP (destructive tabs).
Note: the variable indicating this is now \*(``dest_tabs_magic_smso\*(''; in
older versions, it was teleray_glitch.
This glitch is also taken to mean that it is not possible to position
the cursor on top of a \*(``magic cookie\*('',
that to erase standout mode it is instead necessary to use
delete and insert line.
-The ncurses implementation ignores this glitch.
+The \fI\%ncurses\fP implementation ignores this glitch.
.PP
The Beehive Superbee, which is unable to correctly transmit the escape
or control/C characters, has
@@ -1738,28 +1928,32 @@ Note that in older terminfo versions, this capability was called
\*(``beehive_glitch\*(''; it is now \*(``no_esc_ctl_c\*(''.
.PP
Other specific terminal problems may be corrected by adding more
-capabilities of the form \fBx\fR\fIx\fR.
-.PP
-.SS Pitfalls of Long Entries
-.PP
+capabilities of the form \fBx\fIx\fR.
+.SS "Pitfalls of Long Entries"
Long terminfo entries are unlikely to be a problem; to date, no entry has even
approached terminfo's 4096-byte string-table maximum.
Unfortunately, the termcap
-translations are much more strictly limited (to 1023 bytes), thus termcap translations
-of long terminfo entries can cause problems.
+translations are much more strictly limited (to 1023 bytes),
+thus termcap translations of long terminfo entries can cause problems.
.PP
-The man pages for 4.3BSD and older versions of \fBtgetent\fP instruct the user to
+The man pages for 4.3BSD
+and older versions of \fBtgetent\fP instruct the user to
allocate a 1024-byte buffer for the termcap entry.
The entry gets null-terminated by
the termcap library, so that makes the maximum safe length for a termcap entry
1k\-1 (1023) bytes.
-Depending on what the application and the termcap library
-being used does, and where in the termcap file the terminal type that \fBtgetent\fP
-is searching for is, several bad things can happen.
+Depending on what the application and the termcap library being used does,
+and where in the termcap file the terminal type that \fBtgetent\fP
+is searching for is, several bad things can happen:
+.bP
+some termcap libraries print a warning message,
+.bP
+some exit if they find an entry that's longer than 1023 bytes,
+.bP
+some neither exit nor warn, doing nothing useful, and
+.bP
+some simply truncate the entries to 1023 bytes.
.PP
-Some termcap libraries print a warning message or exit if they find an
-entry that's longer than 1023 bytes; others do not; others truncate the
-entries to 1023 bytes.
Some application programs allocate more than
the recommended 1K for the termcap entry; others do not.
.PP
@@ -1792,8 +1986,9 @@ long entry, appears in the termcap file after the long entry, or
does not appear in the file at all (so that \fBtgetent\fP has to search
the whole termcap file).
.PP
-Then \fBtgetent\fP will overwrite memory, perhaps its stack, and probably core dump
-the program.
+Then \fBtgetent\fP will overwrite memory,
+perhaps its stack,
+and probably core dump the program.
Programs like telnet are particularly vulnerable; modern telnets
pass along values like the terminal type automatically.
The results are almost
@@ -1804,7 +1999,7 @@ termcap library truncates long entries, like OSF/1 3.0, it is immune to dying
here but will return incorrect data for the terminal.
.PP
The \*(``after tc expansion\*('' length will have a similar effect to the
-above, but only for people who actually set TERM to that terminal
+above, but only for people who actually set \fITERM\fP to that terminal
type, since \fBtgetent\fP only does \*(``tc\*('' expansion once it is found the
terminal type it was looking for, not while searching.
.PP
@@ -1813,108 +2008,121 @@ on various combinations of termcap libraries and applications, a core
dump, warnings, or incorrect operation.
If it is too long even before
\*(``tc\*('' expansion, it will have this effect even for users of some other
-terminal types and users whose TERM variable does not have a termcap
+terminal types and users whose \fITERM\fP variable does not have a termcap
entry.
.PP
-When in \-C (translate to termcap) mode, the \fBncurses\fR implementation of
-\fB@TIC@\fR(1M) issues warning messages when the pre-tc length of a termcap
+When in \-C (translate to termcap) mode,
+the \fI\%ncurses\fP implementation of
+\fB@TIC@\fP(1M) issues warning messages when the pre-tc length of a termcap
translation is too long.
The \-c (check) option also checks resolved (after tc
expansion) lengths.
-.SS Binary Compatibility
-It is not wise to count on portability of binary terminfo entries between
-commercial UNIX versions.
-The problem is that there are at least two versions
-of terminfo (under HP\-UX and AIX) which diverged from System V terminfo after
-SVr1, and have added extension capabilities to the string table that (in the
-binary format) collide with System V and XSI Curses extensions.
+.SH FILES
+.TP
+.I \*d
+compiled terminal description database directory
.SH EXTENSIONS
-.PP
Searching for terminal descriptions in
-\fB$HOME/.terminfo\fR and TERMINFO_DIRS
+\fI$HOME/.terminfo\fP and \fI\%TERMINFO_DIRS\fP
is not supported by older implementations.
.PP
-Some SVr4 \fBcurses\fR implementations, and all previous to SVr4, do not
+Some SVr4 \fBcurses\fP implementations, and all previous to SVr4, do not
interpret the %A and %O operators in parameter strings.
.PP
-SVr4/XPG4 do not specify whether \fBmsgr\fR licenses movement while in
+SVr4/XPG4 do not specify whether \fBmsgr\fP licenses movement while in
an alternate-character-set mode (such modes may, among other things, map
CR and NL to characters that do not trigger local motions).
-The \fBncurses\fR implementation ignores \fBmsgr\fR in \fBALTCHARSET\fR
-mode.
+The \fI\%ncurses\fP implementation ignores \fBmsgr\fP in
+\fBALTCHARSET\fP mode.
This raises the possibility that an XPG4
implementation making the opposite interpretation may need terminfo
-entries made for \fBncurses\fR to have \fBmsgr\fR turned off.
+entries made for \fI\%ncurses\fP to have \fBmsgr\fP turned off.
.PP
-The \fBncurses\fR library handles insert-character and insert-character modes
-in a slightly non-standard way to get better update efficiency.
+The \fI\%ncurses\fP library handles insert-character and
+insert-character modes in a slightly non-standard way to get better
+update efficiency.
See
-the \fBInsert/Delete Character\fR subsection above.
+the \fBInsert/Delete Character\fP subsection above.
.PP
-The parameter substitutions for \fBset_clock\fR and \fBdisplay_clock\fR are
-not documented in SVr4 or the XSI Curses standard.
+The parameter substitutions for \fBset_clock\fP and \fBdisplay_clock\fP are
+not documented in SVr4 or X/Open Curses.
They are deduced from the
documentation for the AT&T 505 terminal.
.PP
-Be careful assigning the \fBkmous\fR capability.
-The \fBncurses\fR library wants to interpret it as \fBKEY_MOUSE\fR,
+Be careful assigning the \fBkmous\fP capability.
+The \fI\%ncurses\fP library wants to interpret it as \fBKEY_MOUSE\fP,
for use by terminals and emulators like xterm
that can return mouse-tracking information in the keyboard-input stream.
.PP
X/Open Curses does not mention italics.
Portable applications must assume that numeric capabilities are
signed 16-bit values.
-This includes the \fIno_color_video\fP (ncv) capability.
-The 32768 mask value used for italics with ncv can be confused with
-an absent or cancelled ncv.
+This includes the \fIno_color_video\fP (\fBncv\fP) capability.
+The 32768 mask value used for italics with \fBncv\fP can be confused with
+an absent or cancelled \fBncv\fP.
If italics should work with colors,
-then the ncv value must be specified, even if it is zero.
-.PP
-Different commercial ports of terminfo and curses support different subsets of
-the XSI Curses standard and (in some cases) different extension sets.
-Here
-is a summary, accurate as of October 1995:
-.bP
-\fBSVR4, Solaris, ncurses\fR \-\-
-These support all SVr4 capabilities.
-.bP
-\fBSGI\fR \-\-
-Supports the SVr4 set, adds one undocumented extended string
-capability (\fBset_pglen\fR).
-.bP
-\fBSVr1, Ultrix\fR \-\-
-These support a restricted subset of terminfo capabilities.
-The booleans end with \fBxon_xoff\fR;
-the numerics with \fBwidth_status_line\fR;
-and the strings with \fBprtr_non\fR.
-.bP
-\fBHP/UX\fR \-\-
-Supports the SVr1 subset, plus the SVr[234] numerics \fBnum_labels\fR,
-\fBlabel_height\fR, \fBlabel_width\fR, plus function keys 11 through 63, plus
-\fBplab_norm\fR, \fBlabel_on\fR, and \fBlabel_off\fR, plus some incompatible
-extensions in the string table.
-.bP
-\fBAIX\fR \-\-
-Supports the SVr1 subset, plus function keys 11 through 63, plus a number
-of incompatible string table extensions.
-.bP
-\fBOSF\fR \-\-
-Supports both the SVr4 set and the AIX extensions.
-.SH FILES
-.TP 25
-\*d/?/*
-files containing terminal descriptions
-.SH SEE ALSO
-\fB@INFOCMP@\fR(1M),
-\fB@TABS@\fR(1),
-\fB@TIC@\fR(1M),
-\fBcurses\fR(3X),
-\fBcurs_color\fR(3X),
-\fBcurs_variables\fR(3X),
-\fBprintf\fR(3),
-\fBterm_variables\fR(3X).
-\fBterm\fR(\*n).
-\fBuser_caps\fR(5).
+then the \fBncv\fP value must be specified, even if it is zero.
+.PP
+Different commercial ports of \fI\%terminfo\fP and \fIcurses\fP support
+different subsets of X/Open Curses and
+(in some cases)
+different extensions.
+Here is a summary,
+accurate as of October 1995,
+after which the commercial Unix market contracted and lost diversity.
+.bP
+SVr4,
+Solaris,
+and \fI\%ncurses\fP support all SVr4 capabilities.
+.bP
+IRIX supports the SVr4 set and adds one undocumented extended string
+capability (\fB\%set_pglen\fP).
+.bP
+SVr1 and Ultrix support a restricted subset of \fI\%terminfo\fP
+capabilities.
+The Booleans end with \fB\%xon_xoff\fP;
+the numerics with \fB\%width_status_line\fP;
+and the strings with \fB\%prtr_non\fP.
+.bP
+HP/UX supports the SVr1 subset,
+plus the SVr[234] numerics
+\fB\%num_labels\fP,
+\fB\%label_height\fP,
+\fB\%label_width\fP,
+plus function keys 11 through 63,
+plus
+\fB\%plab_norm\fP,
+\fB\%label_on\fP,
+and
+\fB\%label_off\fP,
+plus a number of incompatible string table extensions.
+.bP
+AIX supports the SVr1 subset,
+plus function keys 11 through 63,
+plus a number of incompatible string table extensions.
+.bP
+OSF/1 supports both the SVr4 set and the AIX extensions.
+.SH PORTABILITY
+Do not count on compiled (binary) \fI\%terminfo\fP entries being
+portable between commercial Unix systems.
+At least two implementations of \fI\%terminfo\fP
+(those of HP-UX and AIX)
+diverged from those of other System V Unices after SVr1,
+adding extension capabilities to the string table that
+(in the binary format)
+collide with subsequent System V and X/Open Curses extensions.
.SH AUTHORS
Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey.
-Based on pcurses by Pavel Curtis.
+Based on \fIpcurses\fP by Pavel Curtis.
+.SH SEE ALSO
+\fB\%@INFOCMP@\fP(1M),
+\fB\%@TABS@\fP(1),
+\fB\%@TIC@\fP(1M),
+\fB\%curses\fP(3X),
+\fB\%curs_color\fP(3X),
+\fB\%curs_terminfo\fP(3X),
+\fB\%curs_variables\fP(3X),
+\fB\%printf\fP(3),
+\fB\%term_variables\fP(3X),
+\fB\%term\fP(5),
+\fB\%user_caps\fP(5)
diff --git a/man/tic.1m b/man/tic.1m
index f0a627d96af8..9c3181ed5c7d 100644
--- a/man/tic.1m
+++ b/man/tic.1m
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2016,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,63 +27,70 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: tic.1m,v 1.78 2020/12/19 21:32:45 tom Exp $
-.TH @TIC@ 1M ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
-.ds n 5
-.ds d @TERMINFO@
+.\" $Id: tic.1m,v 1.110 2024/04/27 17:57:06 tom Exp $
+.TH @TIC@ 1M 2024-04-27 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "User commands"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
+.
+.ds d @TERMINFO@
.SH NAME
-\fB@TIC@\fR \- the \fIterminfo\fR entry-description compiler
+\fB\%@TIC@\fP \-
+compile terminal descriptions for \fIterminfo\fR or \fItermcap\fR
.SH SYNOPSIS
-\fB@TIC@\fR
+\fB@TIC@\fP
[\fB\-\
0\
1\
+a\
+c\
C\
D\
+f\
+g\
G\
I\
K\
L\
N\
-T\
-U\
-V\
-W\
-a\
-c\
-f\
-g\
q\
r\
s\
t\
+T\
+U\
+V\
+W\
x\
-\fR]
-[\fB\-e\fR \fInames\fR]
-[\fB\-o\fR \fIdir\fR]
-[\fB\-Q\fR[\fIn\fR]]
-[\fB\-R\fR \fIsubset\fR]
-[\fB\-v\fR[\fIn\fR]]
-[\fB\-w\fR[\fIn\fR]]
-\fIfile\fR
-.br
+\fP]
+[\fB\-e\fP \fIterminal-type-list\fP]
+[\fB\-o\fP \fIdir\fP]
+[\fB\-Q\fP[\fIn\fP]]
+[\fB\-R\fP \fIsubset\fP]
+[\fB\-v\fP[\fIn\fP]]
+[\fB\-w\fP[\fIn\fP]]
+\fIfile\fP
.SH DESCRIPTION
-The \fB@TIC@\fR command translates a \fBterminfo\fR file from source
+The \fB@TIC@\fP command translates a \fBterminfo\fP file from source
format into compiled format.
The compiled format is necessary for use with
-the library routines in \fBncurses\fR(3X).
+the library routines in \fB\%ncurses\fP(3X).
.PP
-As described in \fBterm\fR(\*n), the database may be either a directory
+As described in \fBterm\fP(5), the database may be either a directory
tree (one file per terminal entry) or a hashed database (one record per entry).
-The \fB@TIC@\fR command writes only one type of entry,
+The \fB@TIC@\fP command writes only one type of entry,
depending on how it was built:
.bP
For directory trees, the top-level directory, e.g., /usr/share/terminfo,
@@ -102,71 +109,73 @@ In either case (directory or hashed database),
For a directory, this would be the \*(``terminfo\*('' leaf,
versus a "terminfo.db" file.
.PP
-The results are normally placed in the system terminfo database \fB\*d\fR.
+The results are normally placed in the system terminfo database \fB\*d\fP.
The compiled terminal description can be placed
in a different terminfo database.
There are two ways to achieve this:
.bP
First, you may override the system default either by
using the \fB\-o\fP option,
-or by setting the variable \fBTERMINFO\fR
+or by setting the variable \fI\%TERMINFO\fP
in your shell environment to a valid database location.
.bP
-Secondly, if \fB@TIC@\fR cannot write in \fI\*d\fR
-or the location specified using your TERMINFO variable,
-it looks for the directory \fI$HOME/.terminfo\fR
-(or hashed database \fI$HOME/.terminfo.db)\fR;
+Secondly, if \fB@TIC@\fP cannot write in \fI\*d\fP
+or the location specified using your \fI\%TERMINFO\fP variable,
+it looks for the directory \fI$HOME/.terminfo\fP
+(or hashed database \fI$HOME/.terminfo.db)\fP;
if that location exists, the entry is placed there.
.PP
Libraries that read terminfo entries are expected to check in succession
.bP
-a location specified with the TERMINFO environment variable,
+a location specified with the \fI\%TERMINFO\fP environment variable,
.bP
-\fI$HOME/.terminfo\fR,
+\fI$HOME/.terminfo\fP,
.bP
-directories listed in the TERMINFO_DIRS environment variable,
+directories listed in the \fI\%TERMINFO_DIRS\fP environment variable,
.bP
a compiled-in list of directories (@TERMINFO_DIRS@), and
.bP
-the system terminfo database (\fI\*d\fR).
-.SS ALIASES
+the system terminfo database (\fI\*d\fP).
.PP
+The \fIFetching Compiled Descriptions\fP section in the \fBterminfo\fR(5)
+manual goes into further detail.
+.SS Aliases
This is the same program as @INFOTOCAP@ and @CAPTOINFO@;
usually those are linked to, or copied from this program:
.bP
When invoked as @INFOTOCAP@, @TIC@ sets the \fB\-I\fP option.
.bP
When invoked as @CAPTOINFO@, @TIC@ sets the \fB\-C\fP option.
-.SS OPTIONS
+.SH OPTIONS
.TP
-\fB\-0\fR
+\fB\-0\fP
restricts the output to a single line
.TP
-\fB\-1\fR
+\fB\-1\fP
restricts the output to a single column
.TP
-\fB\-a\fR
+\fB\-a\fP
tells \fB@TIC@\fP to retain commented-out capabilities rather than discarding
them.
Capabilities are commented by prefixing them with a period.
-This sets the \fB\-x\fR option, because it treats the commented-out
+This sets the \fB\-x\fP option, because it treats the commented-out
entries as user-defined names.
If the source is termcap, accept the 2-character names required by version 6.
Otherwise these are ignored.
.TP
-\fB\-C\fR
+\fB\-C\fP
Force source translation to termcap format.
-Note: this differs from the \fB\-C\fR
-option of \fB@INFOCMP@\fR(1M) in that it does not merely translate capability
+Note: this differs from the \fB\-C\fP
+option of \fB@INFOCMP@\fP(1M) in that it does not merely translate capability
names, but also translates terminfo strings to termcap format.
Capabilities
that are not translatable are left in the entry under their terminfo names
but commented out with two preceding dots.
The actual format used incorporates some improvements for escaped characters
from terminfo format.
-For a stricter BSD-compatible translation, add the \fB\-K\fR option.
+For a stricter BSD-compatible translation, add the \fB\-K\fP option.
.IP
-If this is combined with \fB\-c\fR, \fB@TIC@\fR makes additional checks
+If this is combined with \fB\-c\fP, \fB@TIC@\fP makes additional checks
to report cases where the terminfo values do not have an exact equivalent
in termcap form.
For example:
@@ -180,10 +189,10 @@ capabilities with more than one delay or with delays before the end of
the string will not convert completely.
.RE
.TP
-\fB\-c\fR
-tells \fB@TIC@\fP to only check \fIfile\fR for errors,
+\fB\-c\fP
+tells \fB@TIC@\fP to only check \fIfile\fP for errors,
including syntax problems and bad use-links.
-If you specify \fB\-C\fR (\fB\-I\fR) with this option, the code
+If you specify \fB\-C\fP (\fB\-I\fP) with this option, the code
will print warnings about entries which, after use resolution, are more than
1023 (4096) bytes long.
Due to a fixed buffer length in older termcap libraries,
@@ -197,7 +206,7 @@ will be valid expressions.
It does this check only for the predefined string capabilities;
those which are defined with the \fB\-x\fP option are ignored.
.TP
-\fB\-D\fR
+\fB\-D\fP
tells \fB@TIC@\fP to print the database locations that it knows about, and exit.
The first location shown is the one to which it would write compiled
terminal descriptions.
@@ -206,58 +215,58 @@ according to the rules summarized above,
it will print a diagnostic and exit with an error rather than
printing a list of database locations.
.TP
-\fB\-e \fR\fInames\fR
-Limit writes and translations to the following comma-separated list of
-terminals.
+\fB\-e \fIlist\fR
+Limit writes and translations to the comma-separated \fIlist\fP of
+terminal types.
If any name or alias of a terminal matches one of the names in
the list, the entry will be written or translated as normal.
Otherwise no output will be generated for it.
The option value is interpreted as a file containing the list if it
contains a '/'.
(Note: depending on how @TIC@ was compiled,
-this option may require \fB\-I\fR or \fB\-C\fR.)
+this option may require \fB\-I\fP or \fB\-C\fP.)
.TP
-\fB\-f\fR
+\fB\-f\fP
Display complex terminfo strings which contain if/then/else/endif expressions
indented for readability.
.TP
-\fB\-G\fR
+\fB\-G\fP
Display constant literals in decimal form
rather than their character equivalents.
.TP
-\fB\-g\fR
+\fB\-g\fP
Display constant character literals in quoted form
rather than their decimal equivalents.
.TP
-\fB\-I\fR
+\fB\-I\fP
Force source translation to terminfo format.
.TP
-\fB\-K\fR
-Suppress some longstanding ncurses extensions to termcap format,
-e.g., "\\s" for space.
+\fB\-K\fP
+Suppress some longstanding \fI\%ncurses\fP extensions to termcap format,
+e.g., "\es" for space.
.TP
-\fB\-L\fR
+\fB\-L\fP
Force source translation to terminfo format
-using the long C variable names listed in <\fBterm.h\fR>
+using the long C variable names listed in <\fBterm.h\fP>
.TP
-\fB\-N\fR
+\fB\-N\fP
Disable smart defaults.
Normally, when translating from termcap to terminfo, the compiler makes
a number of assumptions about the defaults of string capabilities
-\fBreset1_string\fR, \fBcarriage_return\fR, \fBcursor_left\fR,
-\fBcursor_down\fR, \fBscroll_forward\fR, \fBtab\fR, \fBnewline\fR,
-\fBkey_backspace\fR, \fBkey_left\fR, and \fBkey_down\fR, then attempts
+\fBreset1_string\fP, \fBcarriage_return\fP, \fBcursor_left\fP,
+\fBcursor_down\fP, \fBscroll_forward\fP, \fBtab\fP, \fBnewline\fP,
+\fBkey_backspace\fP, \fBkey_left\fP, and \fBkey_down\fP, then attempts
to use obsolete termcap capabilities to deduce correct values.
It also
-normally suppresses output of obsolete termcap capabilities such as \fBbs\fR.
+normally suppresses output of obsolete termcap capabilities such as \fBbs\fP.
This option forces a more literal translation that also preserves the
obsolete capabilities.
.TP
-\fB\-o\fR\fIdir\fR
+\fB\-o\fIdir\fR
Write compiled entries to given database location.
-Overrides the TERMINFO environment variable.
+Overrides the \fI\%TERMINFO\fP environment variable.
.TP
-\fB\-Q\fR\fIn\fR
+\fB\-Q\fIn\fR
Rather than show source in terminfo (text) format,
print the compiled (binary) format in hexadecimal or base64 form,
depending on the option's value:
@@ -273,20 +282,28 @@ base64
hexadecimal and base64
.RE
.TP
-\fB\-q\fR
+\fB\-q\fP
Suppress comments and blank lines when showing translated source.
.TP
-\fB\-R\fR\fIsubset\fR
+\fB\-R\fIsubset\fR
Restrict output to a given subset.
This option is for use with archaic
-versions of terminfo like those on SVr1, Ultrix, or HP/UX that do not support
+versions of terminfo like those on SVr1, Ultrix, or HP-UX that do not support
the full set of SVR4/XSI Curses terminfo; and outright broken ports like AIX 3.x
that have their own extensions incompatible with SVr4/XSI.
-Available subsets
-are \*(``SVr1\*('', \*(``Ultrix\*('', \*(``HP\*('', \*(``BSD\*('' and \*(``AIX\*('';
-see \fBterminfo\fR(\*n) for details.
+.IP
+Available subsets are
+.RS
+\*(``SVr1\*('',
+\*(``Ultrix\*('',
+\*(``HP\*('',
+\*(``BSD\*('', and
+\*(``AIX\*(''
+.RE
+.IP
+See \fBterminfo\fP(5) for details.
.TP
-\fB\-r\fR
+\fB\-r\fP
Force entry resolution (so there are no remaining tc capabilities) even
when doing translation to termcap format.
This may be needed if you are
@@ -294,42 +311,50 @@ preparing a termcap file for a termcap library (such as GNU termcap through
version 1.3 or BSD termcap through 4.3BSD) that does not handle multiple
tc capabilities per entry.
.TP
-\fB\-s\fR
+\fB\-s\fP
Summarize the compile by showing the database location into which entries
are written, and the number of entries which are compiled.
.TP
-\fB\-T\fR
+\fB\-T\fP
eliminates size-restrictions on the generated text.
This is mainly useful for testing and analysis, since the compiled
descriptions are limited (e.g., 1023 for termcap, 4096 for terminfo).
.TP
-\fB\-t\fR
+\fB\-t\fP
tells \fB@TIC@\fP to discard commented-out capabilities.
Normally when translating from terminfo to termcap,
untranslatable capabilities are commented-out.
-.TP 5
-\fB\-U\fR
+.TP
+\fB\-U\fP
tells \fB@TIC@\fP to not post-process the data after parsing the source file.
Normally, it infers data which is commonly missing in older terminfo data,
or in termcaps.
.TP
-\fB\-V\fR
-reports the version of ncurses which was used in this program, and exits.
+\fB\-V\fP
+reports the version of \fI\%ncurses\fP which was used in this program,
+and exits.
.TP
-\fB\-v\fR\fIn\fR
+\fB\-v\fIn\fR
specifies that (verbose) output be written to standard error trace
-information showing \fB@TIC@\fR's progress.
+information showing \fB@TIC@\fP's progress.
.IP
-The optional parameter \fIn\fR is a number from 1 to 10, inclusive,
+The optional parameter \fIn\fP is a number from 1 to 9, inclusive,
indicating the desired level of detail of information.
-If ncurses is built without tracing support, the optional parameter is ignored.
-If \fIn\fR is omitted, the default level is 1.
-If \fIn\fR is specified and greater than 1, the level of
-detail is increased.
+.RS
+.bP
+If \fI\%ncurses\fP is built without tracing support,
+the optional parameter is ignored.
+.bP
+If \fIn\fP is omitted, the default level is 1.
+.bP
+If \fIn\fP is specified and greater than 1, the level of
+detail is increased, and the output is written (with tracing information)
+to the \*(``trace\*('' file.
+.RE
.RS
.PP
The debug flag levels are as follows:
-.TP
+.TP 4
1
Names of files created and linked
.TP
@@ -339,8 +364,14 @@ Information related to the \*(``use\*('' facility
3
Statistics from the hashing algorithm
.TP
+4
+Details of extended capabilities
+.TP
5
-String-table memory allocations
+(unused)
+.TP
+6
+(unused)
.TP
7
Entries into the string-table
@@ -350,69 +381,168 @@ List of tokens encountered by scanner
.TP
9
All values computed in construction of the hash table
-.LP
-If the debug level \fIn\fR is not given, it is taken to be one.
.RE
.TP
-\fB\-W\fR
+\fB\-W\fP
By itself, the \fB\-w\fP option will not force long strings to be wrapped.
Use the \fB\-W\fP option to do this.
.IP
If you specify both \fB\-f\fP and \fB\-W\fP options,
the latter is ignored when \fB\-f\fP has already split the line.
.TP
-\fB\-w\fR\fIn\fR
+\fB\-w\fIn\fR
specifies the width of the output.
The parameter is optional.
If it is omitted, it defaults to 60.
.TP
-\fB\-x\fR
-Treat unknown capabilities as user-defined (see \fBuser_caps(\*n)\fP).
+\fB\-x\fP
+Treat unknown capabilities as user-defined (see \fBuser_caps\fP(5)).
That is, if you supply a capability name which \fB@TIC@\fP does not recognize,
-it will infer its type (boolean, number or string) from the syntax and
+it will infer its type (Boolean, number or string) from the syntax and
make an extended table entry for that.
User-defined capability strings
whose name begins with \*(``k\*('' are treated as function keys.
-.SS PARAMETERS
+.SS Parameters
.TP
-\fIfile\fR
-contains one or more \fBterminfo\fR terminal descriptions in source
-format [see \fBterminfo\fR(\*n)].
+\fIfile\fP
+contains one or more \fBterminfo\fP terminal descriptions in source
+format [see \fBterminfo\fP(5)].
Each description in the file
describes the capabilities of a particular terminal.
.IP
-If \fIfile\fR is \*(``-\*('', then the data is read from the standard input.
-The \fIfile\fR parameter may also be the path of a character-device.
-.SS PROCESSING
-.PP
-All but one of the capabilities recognized by \fB@TIC@\fR are documented
-in \fBterminfo\fR(\*n).
-The exception is the \fBuse\fR capability.
+If \fIfile\fP is \*(``-\*('', then the data is read from the standard input.
+The \fIfile\fP parameter may also be the path of a character-device.
+.SS Processing
+All but one of the capabilities recognized by \fB@TIC@\fP are documented
+in \fBterminfo\fP(5).
+The exception is the \fBuse\fP capability.
.PP
-When a \fBuse\fR=\fIentry\fR\-\fIname\fR field is discovered in a
-terminal entry currently being compiled, \fB@TIC@\fR reads in the binary
-from \fB\*d\fR to complete the entry.
+When a \fBuse\fP=\fIentry\fP\-\fIname\fP field is discovered in a
+terminal entry currently being compiled, \fB@TIC@\fP reads in the binary
+from \fB\*d\fP to complete the entry.
(Entries created from
-\fIfile\fR will be used first.
-\fB@TIC@\fR duplicates the capabilities in
-\fIentry\fR\-\fIname\fR for the current entry, with the exception of
+\fIfile\fP will be used first.
+\fB@TIC@\fP duplicates the capabilities in
+\fIentry\fP\-\fIname\fP for the current entry, with the exception of
those capabilities that explicitly are defined in the current entry.
.PP
-When an entry, e.g., \fBentry_name_1\fR, contains a
-\fBuse=\fR\fIentry\fR_\fIname\fR_\fI2\fR field, any canceled
-capabilities in \fIentry\fR_\fIname\fR_\fI2\fR must also appear in
-\fBentry_name_1\fR before \fBuse=\fR for these capabilities to be
-canceled in \fBentry_name_1\fR.
+When an entry, e.g., \fBentry_name_1\fP, contains a
+\fBuse=\fIentry\fR_\fIname\fR_\fI2\fR field, any canceled
+capabilities in \fIentry\fR_\fIname\fR_\fI2\fP must also appear in
+\fBentry_name_1\fP before \fBuse=\fP for these capabilities to be
+canceled in \fBentry_name_1\fP.
.PP
-Total compiled entries cannot exceed 4096 bytes.
+Total compiled entries cannot exceed
+4096 bytes in the legacy storage format, or
+32768 using the extended number format.
The name field cannot
exceed 512 bytes.
Terminal names exceeding the maximum alias length
(32 characters on systems with long filenames, 14 characters otherwise)
will be truncated to the maximum alias length
and a warning message will be printed.
-.SH HISTORY
+.SH FILES
+.TP
+.I \*d
+compiled terminal description database
+.SH NOTES
+There is some evidence that historic \fB@TIC@\fP implementations treated
+description fields with no whitespace in them as additional aliases or
+short names.
+This \fB@TIC@\fP does not do that, but it does warn when
+description fields may be treated that way and check them for dangerous
+characters.
+.SH EXTENSIONS
+Unlike the SVr4 \fB@TIC@\fP command, this implementation can actually
+compile termcap sources.
+In fact, entries in terminfo and termcap syntax can
+be mixed in a single source file.
+See \fBterminfo\fP(5) for the list of
+termcap names taken to be equivalent to terminfo names.
+.PP
+The SVr4 manual pages are not clear on the resolution rules for \fBuse\fP
+capabilities.
+This implementation of \fB@TIC@\fP will find \fBuse\fP targets anywhere
+in the source file,
+or anywhere in the file tree rooted at
+\fI\%TERMINFO\fP
+(if
+\fI\%TERMINFO\fP is defined),
+or in the user's \fI$HOME/.terminfo\fP database
+(if it exists),
+or (finally) anywhere in the system's file tree of
+compiled entries.
+.PP
+The error messages from this \fB@TIC@\fP have the same format as GNU C
+error messages, and can be parsed by GNU Emacs's compile facility.
+.PP
+Aside from \fB\-c\fP and \fB\-v\fP, options are not portable:
+.bP
+Most of @TIC@'s options
+are not supported by SVr4 \fBtic\fP:
+.sp
+.RS
+\fB\-0\fP
+\fB\-1\fP
+\fB\-C\fP
+\fB\-G\fP
+\fB\-I\fP
+\fB\-N\fP
+\fB\-R\fP
+\fB\-T\fP
+\fB\-V\fP
+\fB\-a\fP
+\fB\-e\fP
+\fB\-f\fP
+\fB\-g\fP
+\fB\-o\fP
+\fB\-r\fP
+\fB\-s\fP
+\fB\-t\fP
+\fB\-x\fP
+.RE
+.bP
+The NetBSD \fBtic\fP supports a few of the \fI\%ncurses\fP options
+.sp
+.RS
+\fB\-a\fP
+\fB\-o\fP
+\fB\-x\fP
+.RE
+.IP
+and adds \fB\-S\fP
+(a feature which does the same thing
+as @INFOCMP@'s \fB\-e\fP and \fB\-E\fP options).
+.PP
+The SVr4 \fB\-c\fP mode does not report bad \*(``use=\*('' links.
+.PP
+System V does not compile entries to or read entries from your
+\fI$HOME/.terminfo\fP database unless \fI\%TERMINFO\fP is explicitly set
+to it.
+.SH PORTABILITY
+X/Open Curses, Issue 7 (2009) provides a brief description of \fBtic\fP.
+It lists one option: \fB\-c\fP.
+The omission of \fB\-v\fP is unexpected.
+The change history states that the description is derived from Tru64.
+According to its manual pages, that system also supported the \fB\-v\fP option.
+.PP
+Shortly after Issue 7 was released, Tru64 was discontinued.
+As of 2019, the surviving implementations of \fBtic\fP
+are SVr4 (AIX, HP-UX and Solaris),
+\fI\%ncurses\fP
+and NetBSD curses.
+The SVr4 \fBtic\fP programs all support the \fB\-v\fP option.
+The NetBSD \fBtic\fP program follows X/Open's documentation,
+omitting the \fB\-v\fP option.
.PP
+The X/Open rationale states that some implementations of \fBtic\fP
+read terminal descriptions from the standard input if the \fIfile\fP
+parameter is omitted.
+None of these implementations do that.
+Further, it comments that some may choose to read from \*(''./terminfo.src\*(''
+but that is obsolescent behavior from SVr2,
+and is not (for example) a documented feature of SVr3.
+.SH HISTORY
System V Release 2 provided a \fBtic\fP utility.
It accepted a single option: \fB\-v\fP (optionally followed by a number).
According to Ross Ridge's comment in \fImytinfo\fP,
@@ -431,19 +561,19 @@ While the program itself was changed little as development
continued with System V Release 4,
the table of capabilities grew from 180 (\fIpcurses\fP) to 464 (Solaris).
.PP
-In early development of ncurses (1993),
+In early development of \fI\%ncurses\fP (1993),
Zeyd Ben-Halim used the table from \fImytinfo\fP to
extend the \fIpcurses\fP table to 469 capabilities
(456 matched SVr4, 8 were only in SVr4, 13 were not in SVr4).
Of those 13, 11 were ultimately discarded
(perhaps to match the draft of X/Open Curses).
The exceptions were
-\fBmemory_lock_above\fP and
-\fBmemory_unlock\fP (see \fBuser_caps\fP(5)).
+\fB\%memory_lock_above\fP and
+\fB\%memory_unlock\fP (see \fB\%user_caps\fP(5)).
.PP
-Eric Raymond incorporated parts of \fImytinfo\fP into ncurses
+Eric Raymond incorporated parts of \fImytinfo\fP into \fI\%ncurses\fP
to implement the termcap-to-terminfo source conversion,
-and extended that to begin development of
+and extended that to begin development of
the corresponding terminfo-to-termcap source conversion,
Thomas Dickey completed that development over the course of several years.
.PP
@@ -452,7 +582,7 @@ to support user-defined capabilities.
.PP
In 2010, Roy Marples provided a \fBtic\fP program
and terminfo library for NetBSD.
-That implementation adapts several features from ncurses,
+That implementation adapts several features from \fI\%ncurses\fP,
including \fB@TIC@\fP's \fB\-x\fP option.
.PP
The \fB\-c\fP option tells \fB@TIC@\fP to check for problems in the
@@ -461,131 +591,32 @@ Continued development provides additional checks:
.bP
\fIpcurses\fP had 8 warnings
.bP
-ncurses in 1996 had 16 warnings
+\fI\%ncurses\fP in 1996 had 16 warnings
.bP
Solaris (SVr4) curses has 28 warnings
.bP
NetBSD tic in 2019 has 19 warnings.
.bP
-ncurses in 2019 has 96 warnings
+\fI\%ncurses\fP in 2019 has 96 warnings
.PP
-The checking done in ncurses' \fB@TIC@\fP helps with the conversion to
-termcap, as well as pointing out errors and inconsistencies.
+The checking done in \fI\%ncurses\fP' \fB@TIC@\fP helps with the
+conversion to termcap,
+as well as pointing out errors and inconsistencies.
It is also used to ensure consistency with the user-defined capabilities.
-There are 527 distinct capabilities in ncurses' terminal database;
+There are 527 distinct capabilities in \fI\%ncurses\fP' terminal
+database;
128 of those are user-defined.
-.SH PORTABILITY
-.PP
-X/Open Curses, Issue 7 (2009) provides a brief description of \fBtic\fP.
-It lists one option: \fB\-c\fP.
-The omission of \fB\-v\fP is unexpected.
-The change history states that the description is derived from True64 UNIX.
-According to its manual pages, that system also supported the \fB\-v\fP option.
-.PP
-Shortly after Issue 7 was released, Tru64 was discontinued.
-As of 2019, the surviving implementations of \fBtic\fP
-are SVr4 (AIX, HP-UX and Solaris),
-ncurses
-and NetBSD curses.
-The SVr4 \fBtic\fP programs all support the \fB\-v\fP option.
-The NetBSD \fBtic\fP program follows X/Open's documentation,
-omitting the \fB\-v\fP option.
-.PP
-The X/Open rationale states that some implementations of \fBtic\fP
-read terminal descriptions from the standard input if the \fIfile\fP
-parameter is omitted.
-None of these implementations do that.
-Further, it comments that some may choose to read from \*(''./terminfo.src\*(''
-but that is obsolescent behavior from SVr2,
-and is not (for example) a documented feature of SVr3.
-.SS COMPATIBILITY
-There is some evidence that historic \fB@TIC@\fR implementations treated
-description fields with no whitespace in them as additional aliases or
-short names.
-This \fB@TIC@\fR does not do that, but it does warn when
-description fields may be treated that way and check them for dangerous
-characters.
-.SS EXTENSIONS
-Unlike the SVr4 \fB@TIC@\fR command, this implementation can actually
-compile termcap sources.
-In fact, entries in terminfo and termcap syntax can
-be mixed in a single source file.
-See \fBterminfo\fR(\*n) for the list of
-termcap names taken to be equivalent to terminfo names.
-.PP
-The SVr4 manual pages are not clear on the resolution rules for \fBuse\fR
-capabilities.
-This implementation of \fB@TIC@\fR will find \fBuse\fR targets anywhere
-in the source file, or anywhere in the file tree rooted at \fBTERMINFO\fR (if
-\fBTERMINFO\fR is defined),
-or in the user's \fI$HOME/.terminfo\fR database
-(if it exists),
-or (finally) anywhere in the system's file tree of
-compiled entries.
-.PP
-The error messages from this \fB@TIC@\fR have the same format as GNU C
-error messages, and can be parsed by GNU Emacs's compile facility.
-.PP
-Aside from \fB\-c\fP and \fB\-v\fP, options are not portable:
-.bP
-Most of @TIC@'s options
-are not supported by SVr4 \fBtic\fP:
-.sp
-.RS
-\fB\-0\fR
-\fB\-1\fR
-\fB\-C\fR
-\fB\-G\fR
-\fB\-I\fR
-\fB\-N\fR
-\fB\-R\fR
-\fB\-T\fR
-\fB\-V\fR
-\fB\-a\fR
-\fB\-e\fR
-\fB\-f\fR
-\fB\-g\fR
-\fB\-o\fR
-\fB\-r\fR
-\fB\-s\fR
-\fB\-t\fR
-\fB\-x\fR
-.RE
-.bP
-The NetBSD \fBtic\fP supports a few of the ncurses options
-.sp
-.RS
-\fB\-a\fP
-\fB\-o\fP
-\fB\-x\fP
-.RE
-.IP
-and adds \fB\-S\fP
-(a feature which does the same thing
-as @INFOCMP@'s \fB\-e\fP and \fB\-E\fP options).
-.PP
-The SVr4 \fB\-c\fR mode does not report bad \*(``use=\*('' links.
-.PP
-System V does not compile entries to or read entries from your
-\fI$HOME/.terminfo\fR database unless TERMINFO is explicitly set to it.
-.SH FILES
-.TP 5
-\fB\*d/?/*\fR
-Compiled terminal description database.
-.SH SEE ALSO
-\fB@CAPTOINFO@\fR(1M),
-\fB@INFOCMP@\fR(1M),
-\fB@INFOTOCAP@\fR(1M),
-\fB@TOE@\fR(1M),
-\fBcurses\fR(3X),
-\fBterm\fR(\*n).
-\fBterminfo\fR(\*n).
-\fBuser_caps\fR(\*n).
-.PP
-This describes \fBncurses\fR
-version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
-.SH AUTHOR
+.SH AUTHORS
Eric S. Raymond <esr@snark.thyrsus.com>
and
.br
-Thomas E. Dickey <dickey@invisible-island.net>
+Thomas E. Dickey <dickey@invisible\-island.net>
+.SH SEE ALSO
+\fB\%@CAPTOINFO@\fP(1M),
+\fB\%@INFOCMP@\fP(1M),
+\fB\%@INFOTOCAP@\fP(1M),
+\fB\%@TOE@\fP(1M),
+\fB\%curses\fP(3X),
+\fB\%term\fP(5),
+\fB\%terminfo\fP(5),
+\fB\%user_caps\fP(5)
diff --git a/man/toe.1m b/man/toe.1m
index 9a83821babc5..c4eba848e06b 100644
--- a/man/toe.1m
+++ b/man/toe.1m
@@ -1,5 +1,6 @@
+'\" t
.\"***************************************************************************
-.\" Copyright 2019,2020 Thomas E. Dickey *
+.\" Copyright 2019-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2015,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,168 +28,215 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: toe.1m,v 1.33 2020/12/19 21:52:09 tom Exp $
-.TH @TOE@ 1M ""
+.\" $Id: toe.1m,v 1.68 2024/04/20 18:59:26 tom Exp $
+.TH @TOE@ 1M 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "User commands"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.ie n .ds CW R
+.el \{
+.ie \n(.g .ds CW CR
+.el .ds CW CW
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
-.de NS
-.ie n .sp
-.el .sp .5
-.ie n .in +4
-.el .in +2
-.nf
-.ft C \" Courier
-..
-.de NE
-.fi
-.ft R
-.ie n .in -4
-.el .in -2
-..
-.ds n 5
.ds d @TERMINFO@
.SH NAME
-\fB@TOE@\fR \- table of (terminfo) entries
+\fB\%@TOE@\fP \-
+list table of entries of \fIterminfo\fR terminal types
.SH SYNOPSIS
-\fB@TOE@\fR [\fB\-v\fR[\fIn\fR]] [\fB\-ahsuUV\fR] \fIfile...\fR
-.br
-.SH DESCRIPTION
+.B @TOE@
+.RB [ \-ahs ]
+.RB [ \-v\ \c
+.RI [ n ]]
+.RI [ directory
+\&.\|.\|.]
.PP
-With no options,
-\fB@TOE@\fR lists all available terminal types by primary name
-with descriptions.
-File arguments specify the directories to be scanned; if no
-such arguments are given,
-your default terminfo directory is scanned.
-If you also specify the \fB\-h\fR option,
-a directory header will be issued as each
-directory is entered.
+.B @TOE@
+.RB [ \-u | \-U ]
+.I file
.PP
-There are other options intended for use by terminfo file maintainers:
-.TP
-\fB\-a\fR
-report on all of the terminal databases which ncurses would search,
-rather than only the first one that it finds.
+.B "@TOE@ \-V"
+.SH DESCRIPTION
+\fB\%@TOE@\fP reports to the standard output stream the (primary) names
+and descriptions of the terminal types available to the \fIterminfo\fP
+library.
+Each \fIdirectory\fP is scanned;
+if none are given,
+\fB\%@TOE@\fP scans the default \fIterminfo\fP directory.
+.SH OPTIONS
+The \fB\-h\fP option can be helpful to observe where \fB\%@TOE@\fP is
+looking for terminal descriptions.
+Other options support maintainers of \fIterminfo\fP terminal
+descriptions.
+.TP 9 \" "-u file" + 2n
+.B \-a
+lists entries from all terminal database directories that \fIterminfo\fP
+would search,
+instead of only the first that it finds.
.IP
-If the \fB\-s\fR is also given, \fB@TOE@\fR
-adds a column to the report,
-showing (like \fBconflict\fP(1)) which entries which
-belong to a given terminal database.
-An "*" marks entries which differ, and "+" marks equivalent entries.
+If
+.B \-s
+is also given,
+\fB\%@TOE@\fP
+additionally reports,
+like \fI\%conflict\fP(1),
+which entries correspond to a given terminal database.
+An \*(``*\*('' marks entries that differ,
+and \*(``+\*('' marks equivalent entries.
.IP
-Without the \fB\-s\fP option, \fB@TOE@\fR does not attempt to merge
-duplicates in its report
+Without the \fB\-s\fP option,
+\fB\%@TOE@\fP does not attempt to merge duplicates in its report.
+.TP
+.B \-h
+writes a heading naming each each directory as it is accessed.
.TP
-\fB\-s\fR
-sort the output by the entry names.
+.B \-s
+sorts the output by the entry names.
.TP
-\fB\-u\fR \fIfile\fR
-says to write a report to the standard output,
-listing dependencies in the given terminfo/termcap source file.
-The report condenses the \*(``use\*('' relation:
-each line consists of the primary name of a terminal that
-has use capabilities,
-followed by a colon,
-followed by the
-whitespace-separated primary names of all terminals which occur in those use
-capabilities,
-followed by a newline
+.BI \-u\ file
+lists terminal type dependencies in \fIfile\fP,
+a \fIterminfo\fP entry source or \fItermcap\fP database file.
+The report summarizes the \*(``\fBuse\fP\*('' (\fIterminfo\fP) and
+\fBtc\fP (\fItermcap\fP) relations:
+each line comprises the primary name of a terminal type employing
+\fBuse\fP/\fBtc\fP capabilities,
+a colon,
+a space- and tab-separated list of primary names of terminal types thus
+named,
+and a newline.
.TP
-\fB\-U\fR \fIfile\fR
-says to write a report to the standard output,
-listing reverse dependencies in the given terminfo/termcap source file.
-The report reverses the \*(``use\*('' relation:
-each line consists of the primary name of a
-terminal that occurs in use capabilities,
-followed by a colon,
-followed by the
-whitespace-separated primary names of all terminals which depend on it,
-followed by a newline.
+.BI \-U\ file
+lists terminal type reverse dependencies in \fIfile\fP,
+a \fIterminfo\fP entry source or \fItermcap\fP database file.
+The report summarizes the \*(``\fBuse\fP\*('' (\fIterminfo\fP) and
+\fBtc\fP (\fItermcap\fP) reverse relations:
+each line comprises the primary name of a terminal type occurring in
+\fBuse\fP/\fBtc\fP capabilities,
+a colon,
+a space- and tab-separated list of primary names of terminal types
+naming them thus,
+and a newline.
.TP
-\fB\-v\fR\fIn\fR
-specifies that (verbose) output be written to standard error,
-showing \fB@TOE@\fR's progress.
+.BR \-v\ [\c
+.IR n ]
+reports verbose status information to the standard error stream,
+showing \fB\%@TOE@\fP's progress.
.IP
-The optional parameter \fIn\fR is a number from 1 to 10,
-interpreted as for \fB@TIC@\fR(1M).
-If ncurses is built without tracing support, the optional parameter is ignored.
+The optional parameter \fIn\fP is an integer between 1 and 10 inclusive,
+interpreted as for \fB\%@TIC@\fP(1M).
+If \fI\%ncurses\fP is built without tracing support,
+\fIn\fP is ignored.
.TP
-\fB\-V\fR
-reports the version of ncurses which was used in this program,
-and exits.
-.SH EXAMPLES
-.PP
-Without sorting, the \fB\-a\fP option reports all of the names found
-in all of the terminal databases found by the \fBTERMINFO\fP and
-\fBTERMINFO_DIRS\fP environment variables:
-.NS
-MtxOrb162 16x2 Matrix Orbital LCD display
-MtxOrb204 20x4 Matrix Orbital LCD display
-MtxOrb Generic Matrix Orbital LCD display
-qvt101+ qume qvt 101 PLUS product
-qvt119+-25 QVT 119 PLUS with 25 data lines
-qansi-g QNX ANSI
-qvt103 qume qvt 103
-qnxw QNX4 windows
-qansi-w QNX ansi for windows
-qnxm QNX4 with mouse events
-qvt203-25-w QVT 203 PLUS with 25 by 132 columns
-qansi-t QNX ansi without console writes
-\&.\ .\ .
-.NE
-.PP
-Use the \fB\-a\fP and \fB\-s\fP options together to show where each terminal
-description was found:
-.NS
---> /usr/local/ncurses/share/terminfo
-----> /usr/share/terminfo
-*-+-: 9term Plan9 terminal emulator for X
-*---: Eterm Eterm with xterm-style color support (X Window System)
-*-*-: Eterm-256color Eterm with xterm 256-colors
-*-*-: Eterm-88color Eterm with 88 colors
-*-+-: MtxOrb Generic Matrix Orbital LCD display
-*-+-: MtxOrb162 16x2 Matrix Orbital LCD display
-*-+-: MtxOrb204 20x4 Matrix Orbital LCD display
-*-*-: NCR260VT300WPP NCR 2900_260 vt300 wide mode pc+ kybd
-*-+-: aaa ann arbor ambassador/30 lines
-*-+-: aaa+dec ann arbor ambassador in dec vt100 mode
-*-+-: aaa+rv ann arbor ambassador in reverse video
-\&.\ .\ .
-.NE
+\fB\-V\fP
+reports the version of \fI\%ncurses\fP associated
+with this program and exits with a successful status.
.SH FILES
-.TP 5
-\fB\*d/?/*\fR
-Compiled terminal description database.
+.TP
+.I \*d
+compiled terminal description database
+.SH PORTABILITY
+\fB\%@TOE@\fP is not provided by other implementations.
+There is no applicable X/Open or POSIX standard for it.
.SH HISTORY
-This utility is not provided by other implementations.
-There is no relevant X/Open or POSIX standard for \fB@TOE@\fP.
-.PP
-The program name refers to a developer's pun:
+\fB\%@TOE@\fP replaces a \fB\-T\fP option that was briefly supported by
+the \fI\%ncurses\fP \fB\%infocmp\fP utility in 1995.
+.PP
+The \fB\-a\fP and \fB\-s\fP options were added in 2006 and 2011,
+respectively.
+.PP
+The program's name originates with a developer's pun:
.bP
\fBtic\fP,
.bP
\fBtac\fP (now \fBtack\fP),
.bP
\fBtoe\fP.
+.SH EXAMPLES
+When not sorting with the \fB\-s\fP option,
+the \fB\-a\fP option reports all of the names found in all of the
+terminal database directories named in the \fI\%TERMINFO\fP and
+\fI\%TERMINFO_DIRS\fP environment variables.
+.RS 4
.PP
-It replaced a \fB\-T\fP option which was briefly supported by
-the ncurses \fBinfocmp\fP utility in 1995.
+.\" toe -a | grep -E '^(xterm|vt)'
+.ft \*(CW
+.TS
+L2 Lx.
+xterm\-color generic color xterm
+xterm\-xfree86 xterm terminal emulator (XFree86)
+xterm\-vt220 xterm emulating vt220
+xterm\-256color xterm with 256 colors
+xterm\-r6 xterm X11R6 version
+xterm\-r5 xterm R5 version
+xterm\-mono monochrome xterm
+xterm T{
+.ad l
+xterm terminal emulator (X Window System)
+T}
+vt220 dec vt220
+vt102 dec vt102
+vt100 dec vt100 (w/advanced video)
+vt52 dec vt52
+.T&
+L.
+\&.\|.\|.
+.TE
+.ft
+.RE
.PP
-The \fB\-a\fP and \fB\-s\fP options were added to
-\fB@TOE@\fR several years later (2006 and 2011, respectively).
-.SH SEE ALSO
-\fB@CAPTOINFO@\fR(1M),
-\fB@INFOCMP@\fR(1M),
-\fB@INFOTOCAP@\fR(1M),
-\fB@TIC@\fR(1M),
-\fBcurses\fR(3X),
-\fBterminfo\fR(\*n).
+Use the \fB\-a\fP and \fB\-s\fP options together to show where each
+terminal description was found.
+.RS 4
.PP
-This describes \fBncurses\fR
-version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
+.\" toe -as | grep -E '(^-+>|:.(xterm|vt))'
+.ft \*(CW
+.TS
+Lx.
+\-\-> /etc/terminfo
+\-\-\-\-> /lib/terminfo
+\-\-\-\-\-\-> /usr/share/terminfo
+.TE
+.TS
+L1 L2 Lx.
+\-\-*\-\-\-: vt100 dec vt100 (w/advanced video)
+\-\-*\-\-\-: vt102 dec vt102
+\-\-*\-\-\-: vt220 dec vt220
+\-\-*\-\-\-: vt52 dec vt52
+\-\-*\-\-\-: xterm T{
+.ad l
+xterm terminal emulator (X Window System)
+T}
+\-\-*\-\-\-: xterm\-256color xterm with 256 colors
+\-\-*\-\-\-: xterm\-color generic color xterm
+\-\-*\-\-\-: xterm\-mono monochrome xterm
+\-\-*\-\-\-: xterm\-r5 xterm R5 version
+\-\-*\-\-\-: xterm\-r6 xterm X11R6 version
+\-\-*\-\-\-: xterm\-vt220 xterm emulating vt220
+\-\-*\-\-\-: xterm\-xfree86 T{
+.ad l
+xterm terminal emulator (XFree86)
+T}
+.T&
+L.
+\&.\|.\|.
+.TE
+.ft
+.RE
+.SH SEE ALSO
+\fB\%@CAPTOINFO@\fP(1M),
+\fB\%@INFOCMP@\fP(1M),
+\fB\%@INFOTOCAP@\fP(1M),
+\fB\%@TIC@\fP(1M),
+\fB\%curses\fP(3X),
+\fB\%terminfo\fP(5)
diff --git a/man/tput.1 b/man/tput.1
index 64fb453016eb..eba073390df5 100644
--- a/man/tput.1
+++ b/man/tput.1
@@ -1,6 +1,6 @@
'\" t
.\"***************************************************************************
-.\" Copyright 2018,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2016,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,570 +28,977 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: tput.1,v 1.65 2020/12/19 22:17:47 tom Exp $
-.TH @TPUT@ 1 ""
-.ds d @TERMINFO@
-.ds n 1
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: tput.1,v 1.113 2024/04/20 19:58:50 tom Exp $
+.TH @TPUT@ 1 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "User commands"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
+.ds d @TERMINFO@
.SH NAME
-\fB@TPUT@\fR, \fBreset\fR \- initialize a terminal or query terminfo database
+\fB\%@TPUT@\fP \-
+initialize a terminal, exercise its capabilities, or query \fI\%term\%info\fP database
.SH SYNOPSIS
-\fB@TPUT@\fR [\fB\-T\fR\fItype\fR] \fIcapname\fR [\fIparameters\fR]
-.br
-\fB@TPUT@\fR [\fB\-T\fR\fItype\fR] [\fB\-x\fP] \fBclear\fR
-.br
-\fB@TPUT@\fR [\fB\-T\fR\fItype\fR] \fBinit\fR
-.br
-\fB@TPUT@\fR [\fB\-T\fR\fItype\fR] \fBreset\fR
-.br
-\fB@TPUT@\fR [\fB\-T\fR\fItype\fR] \fBlongname\fR
-.br
-\fB@TPUT@ \-S\fR \fB<<\fR
-.br
-\fB@TPUT@ \-V\fR
-.br
+\fB@TPUT@\fP [\fB\-T\fP \fIterminal-type\fP]
+{\fIcap-code\fP [\fIparameter\fP .\|.\|.\&]} .\|.\|.
+.PP
+\fB@TPUT@\fP [\fB\-T\fP \fIterminal-type\fP] [\fB\-x\fP] \fBclear\fP
+.PP
+\fB@TPUT@\fP [\fB\-T\fP \fIterminal-type\fP] \fBinit\fP
+.PP
+\fB@TPUT@\fP [\fB\-T\fP \fIterminal-type\fP] \fB\%reset\fP
+.PP
+\fB@TPUT@\fP [\fB\-T\fP \fIterminal-type\fP] \fB\%longname\fP
+.PP
+\fB@TPUT@ \-S\fP
+.PP
+\fB@TPUT@ \-V\fP
.SH DESCRIPTION
-The \fB@TPUT@\fR utility uses the \fBterminfo\fR database to make the
-values of terminal-dependent capabilities and information available to
-the shell (see \fBsh\fR(1)), to initialize or reset the terminal, or
-return the long name of the requested terminal type.
-The result depends upon the capability's type:
-.RS 3
-.TP 5
-string
-\fB@TPUT@\fR writes the string to the standard output.
-No trailing newline is supplied.
+\fB\%@TPUT@\fP uses the
+.I \%term\%info
+library and database to make terminal-specific capabilities and
+information available to the shell,
+to initialize or reset the terminal,
+or
+to report a description of the current
+(or specified)
+terminal type.
+Terminal capabilities are accessed by
+.IR cap-code .
+.PP
+\fB\%terminfo\fP(5) discusses terminal capabilities at length
+and presents a complete list of
+.IR cap-codes .
+.PP
+When retrieving capability values,
+the result depends upon the capability's type.
+.TP 9 \" "Boolean" + 2n
+Boolean
+\fB\%@TPUT@\fP sets its exit status to
+.B 0
+if the terminal possesses
+.IR cap-code ,
+and
+.B 1
+if it does not.
.TP
-integer
-\fB@TPUT@\fR writes the decimal value to the standard output,
-with a trailing newline.
+numeric
+\fB\%@TPUT@\fP writes
+.IR cap-code 's
+decimal value to the standard output stream if defined
+.RB ( \-1
+if it is not)
+followed by a newline.
.TP
-boolean
-\fB@TPUT@\fR simply sets the exit code
-(\fB0\fR for TRUE if the terminal has the capability,
-\fB1\fR for FALSE if it does not),
-and writes nothing to the standard output.
-.RE
+string
+\fB\%@TPUT@\fP writes
+.IR cap-code 's
+value to the standard output stream if defined,
+without a trailing newline.
.PP
Before using a value returned on the standard output,
-the application should test the exit code
-(e.g., \fB$?\fR, see \fBsh\fR(1)) to be sure it is \fB0\fR.
-(See the \fBEXIT CODES\fR and \fBDIAGNOSTICS\fR sections.)
-For a complete list of capabilities
-and the \fIcapname\fR associated with each, see \fBterminfo\fR(5).
-.SS Options
-.TP
-\fB\-S\fR
-allows more than one capability per invocation of \fB@TPUT@\fR. The
-capabilities must be passed to \fB@TPUT@\fR from the standard input
-instead of from the command line (see example).
-Only one \fIcapname\fR is allowed per line.
-The \fB\-S\fR option changes the
-meaning of the \fB0\fR and \fB1\fR boolean and string exit codes (see the
-EXIT CODES section).
+the application should test \fB\%@TPUT@\fP's exit status
+to be sure it is 0;
+see section \*(``EXIT STATUS\*('' below.
+.SS Operands
+Generally,
+an operand is a
+.IR cap-code ,
+a capability code from the terminal database,
+or a parameter thereto.
+Three others are specially recognized by \fB\%@TPUT@\fP:
+.BR init ,
+.BR \%reset ,
+and
+.BR \%longname .
+Although these resemble capability codes,
+they in fact receive special handling;
+we term them \*(``pseudo-capabilities\*(''.
+.TP 11n \" "longname" + 2n + adjustment for PDF
+.I cap-code
+indicates a capability from the terminal database.
.IP
-Because some capabilities may use
-\fIstring\fP parameters rather than \fInumbers\fP,
-\fB@TPUT@\fR uses a table and the presence of parameters in its input
-to decide whether to use \fBtparm\fR(3X),
-and how to interpret the parameters.
-.TP
-\fB\-T\fR\fItype\fR
-indicates the \fItype\fR of terminal.
-Normally this option is
-unnecessary, because the default is taken from the environment
-variable \fBTERM\fR.
-If \fB\-T\fR is specified, then the shell
-variables \fBLINES\fR and \fBCOLUMNS\fR will also be ignored.
-.TP
-\fB\-V\fR
-reports the version of ncurses which was used in this program, and exits.
-.TP
-.B \-x
-do not attempt to clear the terminal's scrollback buffer
-using the extended \*(``E3\*('' capability.
-.SS Commands
-A few commands (\fBinit\fP, \fBreset\fP and \fBlongname\fP) are
-special; they are defined by the \fB@TPUT@\fP program.
-The others are the names of \fIcapabilities\fP from the terminal database
-(see \fBterminfo\fR(5) for a list).
-Although \fBinit\fP and \fBreset\fP resemble capability names,
-\fB@TPUT@\fP uses several capabilities to perform these special functions.
-.TP
-\fIcapname\fR
-indicates the capability from the terminal database.
-.IP
-If the capability is a string that takes parameters, the arguments
-following the capability will be used as parameters for the string.
+If
+.I cap-code
+is of string type and takes parameters,
+\fB\%@TPUT@\fP interprets arguments following
+.I cap-code
+as the parameters,
+up to the (fixed) quantity the capability requires.
.IP
-Most parameters are numbers.
+Most parameters are numeric.
Only a few terminal capabilities require string parameters;
-\fB@TPUT@\fR uses a table to decide which to pass as strings.
-Normally \fB@TPUT@\fR uses \fBtparm\fR(3X) to perform the substitution.
+\fB\%@TPUT@\fP uses a table to decide which to pass as strings.
+Normally \fB\%@TPUT@\fP uses \fB\%tparm\fP(3X) to perform the
+substitution.
If no parameters are given for the capability,
-\fB@TPUT@\fR writes the string without performing the substitution.
+\fB\%@TPUT@\fP writes the string without performing the substitution.
.TP
-\fBinit\fR
-If the terminal database is present and an entry for the user's
-terminal exists (see \fB\-T\fR\fItype\fR, above), the following will
-occur:
+.B init
+initializes the terminal.
+If the terminal database is present
+and an entry for the user's terminal type exists,
+the following occur.
.RS
.TP 5
(1)
-first, \fB@TPUT@\fR retrieves the current terminal mode settings
-for your terminal.
-It does this by successively testing
+\fB\%@TPUT@\fP retrieves the terminal's mode settings.
+It successively tests the file descriptors corresponding to
.RS
.bP
-the standard error,
+the standard error stream,
.bP
-standard output,
+the standard output stream,
.bP
-standard input and
+the standard input stream,
+and
.bP
-ultimately \*(``/dev/tty\*(''
+.I \%/dev/tty
.RE
.IP
to obtain terminal settings.
-Having retrieved these settings, \fB@TPUT@\fP remembers which
-file descriptor to use when updating settings.
+Having retrieved them,
+\fB\%@TPUT@\fP remembers which descriptor to use for further updates.
.TP
(2)
-if the window size cannot be obtained from the operating system,
-but the terminal description (or environment, e.g., \fBLINES\fP
-and \fBCOLUMNS\fP variables specify this),
-update the operating system's notion of the window size.
+If the terminal dimensions cannot be obtained from the operating system,
+but the environment or terminal type database entry describes them,
+\fB\%@TPUT@\fP updates the operating system's notion of them.
.TP
(3)
-the terminal modes will be updated:
+\fB\%@TPUT@\fP updates the terminal modes.
.RS
.bP
-any delays (e.g., newline) specified in the entry will
-be set in the tty driver,
+Any delays specified in the entry
+(for example,
+when a newline is sent)
+are set in the terminal driver.
.bP
-tabs expansion will be turned on or off according to
-the specification in the entry, and
+Tab expansion is turned on or off per the specification in the entry,
+and
.bP
if tabs are not expanded,
-standard tabs will be set (every 8 spaces).
+standard tabs
+(every 8 spaces)
+are set.
.RE
.TP
(4)
-if present, the terminal's initialization strings will be
-output as detailed in the \fBterminfo\fR(5) section on
-.IR "Tabs and Initialization" ,
+If initialization capabilities,
+detailed in subsection \*(``Tabs and Initialization\*('' of
+\fB\%terminfo\fP(5),
+are present,
+\fB\%@TPUT@\fP writes them to the standard output stream.
.TP
(5)
-output is flushed.
+\fB\%@TPUT@\fP flushes the standard output stream.
.RE
.IP
-If an entry does not
-contain the information needed for any of these activities,
-that activity will silently be skipped.
+If an entry lacks the information needed for an activity above,
+that activity is silently skipped.
.TP
-\fBreset\fR
-This is similar to \fBinit\fP, with two differences:
+.B reset
+re-initializes the terminal.
+A reset differs from initialization in two ways.
.RS
.TP 5
(1)
-before any other initialization,
-the terminal modes will be reset to a \*(``sane\*('' state:
+\fB\%@TPUT@\fP sets the the terminal modes to a \*(``sane\*('' state,
.RS
.bP
-set cooked and echo modes,
+enabling cooked and echo modes,
.bP
-turn off cbreak and raw modes,
+disabling cbreak and raw modes,
.bP
-turn on newline translation and
+enabling newline translation,
+and
.bP
-reset any unset special characters to their default values
+setting any unset special characters to their default values.
.RE
.TP 5
(2)
-Instead of putting out \fIinitialization\fP strings, the terminal's
-\fIreset\fP strings will be output if present
-(\fBrs1\fR, \fBrs2\fR, \fBrs3\fR, \fBrf\fR).
-If the \fIreset\fP strings are not present, but \fIinitialization\fP
-strings are, the \fIinitialization\fP strings will be output.
+If any reset capabilities are defined for the terminal type,
+\fB\%@TPUT@\fP writes them to the output stream.
+Otherwise,
+\fB\%@TPUT@\fP uses any defined initialization capabilities.
+Reset capabilities are detailed in subsection
+\*(``Tabs and Initialization\*('' of \fB\%terminfo\fP(5).
.RE
-.IP
-Otherwise, \fBreset\fR acts identically to \fBinit\fR.
.TP
-\fBlongname\fR
-If the terminal database is present and an entry for the
-user's terminal exists (see \fB\-T\fR\fItype\fR above), then the long name
-of the terminal will be put out.
-The long name is the last
-name in the first line of the terminal's description in the
-\fBterminfo\fR database [see \fBterm\fR(5)].
-.SS Aliases
-\fB@TPUT@\fR handles the \fBclear\fP, \fBinit\fP and \fBreset\fP
-commands specially:
-it allows for the possibility that it is invoked by a link with those names.
-.PP
-If \fB@TPUT@\fR is invoked by a link named \fBreset\fR, this has the
-same effect as \fB@TPUT@ reset\fR.
-The \fB@TSET@\fR(\*n) utility also treats a link named \fBreset\fP specially.
-.PP
-Before ncurses 6.1, the two utilities were different from each other:
-.bP
-\fB@TSET@\fP utility reset the terminal modes and special characters
-(not done with \fB@TPUT@\fP).
-.bP
-On the other hand, \fB@TSET@\fP's repertoire of terminal capabilities for
-resetting the terminal was more limited,
-i.e., only \fBreset_1string\fP, \fBreset_2string\fP and \fBreset_file\fP
-in contrast to the tab-stops and margins which are set by this utility.
-.bP
-The \fBreset\fP program is usually an alias for \fB@TSET@\fP,
-because of this difference with resetting terminal modes and special characters.
-.PP
-With the changes made for ncurses 6.1, the \fIreset\fP feature of the
-two programs is (mostly) the same.
-A few differences remain:
-.bP
-The \fB@TSET@\fP program waits one second when resetting,
-in case it happens to be a hardware terminal.
-.bP
-The two programs write the terminal initialization strings
-to different streams (i.e., the standard error for \fB@TSET@\fP and the
-standard output for \fB@TPUT@\fP).
+.B longname
+A
+.I \%term\%info
+entry begins with one or more names by which an application
+can refer to the entry,
+before the list of terminal capabilities.
+The names are separated by \*(``|\*('' characters.
+X/Open Curses terms the last name the \*(``long name\*('',
+and indicates that it may include blanks.
+.IP
+\fB\%@TIC@\fP warns if the last name does not include blanks,
+to accommodate old
+.I \%term\%info
+entries that treated the long name as an optional feature.
+The long name is often referred to as the description field.
.IP
-\fBNote:\fP although these programs write to different streams,
-redirecting their output to a file will capture only part of their actions.
-The changes to the terminal modes are not affected by redirecting the output.
+If the terminal database is present and an entry for the user's terminal
+type exists,
+\fB\%@TPUT@\fP reports its description to the standard output stream,
+without a trailing newline.
+See \fB\%terminfo\fP(5).
.PP
-If \fB@TPUT@\fR is invoked by a link named \fBinit\fR, this has the
-same effect as \fB@TPUT@ init\fR.
-Again, you are less likely to use that link because another program
-named \fBinit\fP has a more well-established use.
-.SS Terminal Size
+.I Note:
+Redirecting the output of
+.RB \%\*(`` "@TPUT@ init" \*(''
+or
+.RB \%\*(`` "@TPUT@ reset" \*(''
+to a file will capture only part of their actions.
+Changes to the terminal modes are not affected by file descriptor
+redirection,
+since the terminal modes are altered via \fB\%ioctl\fP(2).
+.SS Aliases
+If \fB\%@TPUT@\fP is invoked via link with any of the names
+.BR clear ,
+.BR init ,
+or
+.BR \%reset ,
+it operates as if run with the corresponding (pseudo-)capability
+operand.
+For example,
+executing a link named
+.B \%reset
+that points to \fB\%@TPUT@\fP has the same effect as
+.RB \%\*(`` "@TPUT@ \%reset" \*(''.
.PP
-Besides the special commands (e.g., \fBclear\fP),
-@TPUT@ treats certain terminfo capabilities specially:
-\fBlines\fP and \fBcols\fP.
-@TPUT@ calls \fBsetupterm\fP(3X) to obtain the terminal size:
+This feature was introduced by
+.I \%ncurses
+5.2 in 2000.
+It is rarely used:
+.TP
+.B \%clear
+is a separate program,
+which is both smaller and more frequently executed.
+.TP
+.B init
+has the same name as another program in widespread use.
+.TP
+.B \%reset
+is provided
+by the \fB\%@TSET@\fP(1) utility (also via a link named
+.BR \%reset ")."
+.SS "Terminal Size"
+Besides the pseudo-capabilities
+(such as
+.BR init ),
+\fB\%@TPUT@\fP treats the
+.B lines
+and
+.B cols
+.I cap-codes
+specially:
+it may call \fB\%setupterm\fP(3X) to obtain the terminal size.
.bP
-first, it gets the size from the terminal database
-(which generally is not provided for terminal emulators
-which do not have a fixed window size)
+First,
+\fB\%@TPUT@\fP attempts to obtain these capabilities from the terminal
+database.
+This generally fails for terminal emulators,
+which lack a fixed window size and thus omit the capabilities.
.bP
-then it asks the operating system for the terminal's size
-(which generally works, unless connecting via a serial line which
-does not support \fINAWS\fP: negotiations about window size).
+It then asks the operating system for the terminal's size,
+which generally works,
+unless the connection is via a serial line that
+does not support \*(``NAWS\*('': negotiations about window size.
.bP
-finally, it inspects the environment variables \fBLINES\fP and \fBCOLUMNS\fP
+Finally,
+it inspects the environment variables
+.I LINES
+and
+.IR \%COLUMNS ,
which may override the terminal size.
.PP
-If the \fB\-T\fP option is given
-@TPUT@ ignores the environment variables by calling \fBuse_tioctl(TRUE)\fP,
-relying upon the operating system (or finally, the terminal database).
-.SH EXAMPLES
-.TP 5
-\fB@TPUT@ init\fR
-Initialize the terminal according to the type of
-terminal in the environmental variable \fBTERM\fR. This
-command should be included in everyone's .profile after
-the environmental variable \fBTERM\fR has been exported, as
-illustrated on the \fBprofile\fR(5) manual page.
-.TP 5
-\fB@TPUT@ \-T5620 reset\fR
-Reset an AT&T 5620 terminal, overriding the type of
-terminal in the environmental variable \fBTERM\fR.
-.TP 5
-\fB@TPUT@ cup 0 0\fR
-Send the sequence to move the cursor to row \fB0\fR, column \fB0\fR
-(the upper left corner of the screen, usually known as the \*(``home\*(''
-cursor position).
-.TP 5
-\fB@TPUT@ clear\fR
-Echo the clear-screen sequence for the current terminal.
-.TP 5
-\fB@TPUT@ cols\fR
-Print the number of columns for the current terminal.
-.TP 5
-\fB@TPUT@ \-T450 cols\fR
-Print the number of columns for the 450 terminal.
-.TP 5
-\fBbold=`@TPUT@ smso` offbold=`@TPUT@ rmso`\fR
-Set the shell variables \fBbold\fR, to begin stand-out mode
-sequence, and \fBoffbold\fR, to end standout mode sequence,
-for the current terminal.
-This might be followed by a
-prompt: \fBecho "${bold}Please type in your name: ${offbold}\\c"\fR
-.TP 5
-\fB@TPUT@ hc\fR
-Set exit code to indicate if the current terminal is a hard copy terminal.
-.TP 5
-\fB@TPUT@ cup 23 4\fR
-Send the sequence to move the cursor to row 23, column 4.
-.TP 5
-\fB@TPUT@ cup\fR
-Send the terminfo string for cursor-movement, with no parameters substituted.
-.TP 5
-\fB@TPUT@ longname\fR
-Print the long name from the \fBterminfo\fR database for the
-type of terminal specified in the environmental
-variable \fBTERM\fR.
-.PP
-.RS 5
-\fB@TPUT@ \-S <<!\fR
-.br
-\fB> clear\fR
-.br
-\fB> cup 10 10\fR
-.br
-\fB> bold\fR
-.br
-\fB> !\fR
-.RE
-.TP 5
-\&
-This example shows \fB@TPUT@\fR processing several capabilities
-in one invocation.
-It clears the screen,
-moves the cursor to position 10, 10
-and turns on bold (extra bright) mode.
-The list is terminated by an exclamation mark (\fB!\fR) on a line by itself.
-.SH FILES
-.TP
-\fB\*d\fR
-compiled terminal description database
-.TP
-\fB@DATADIR@/tabset/*\fR
-tab settings for some terminals, in a format
-appropriate to be output to the terminal (escape
-sequences that set margins and tabs); for more
-information, see the
-.IR "Tabs and Initialization" ,
-section of \fBterminfo\fR(5)
-.SH EXIT CODES
-If the \fB\-S\fR option is used,
-\fB@TPUT@\fR checks for errors from each line,
-and if any errors are found, will set the exit code to 4 plus the
-number of lines with errors.
-If no errors are found, the exit code is \fB0\fR.
-No indication of which line failed can be given so
-exit code \fB1\fR will never appear.
-Exit codes \fB2\fR, \fB3\fR, and
-\fB4\fR retain their usual interpretation.
-If the \fB\-S\fR option is not used,
-the exit code depends on the type of \fIcapname\fR:
-.RS 3
-.TP
-.I boolean
-a value of \fB0\fR is set for TRUE and \fB1\fR for FALSE.
+If the
+.B \-T
+option is given,
+\fB\%@TPUT@\fP ignores the environment variables by calling
+.BR \%use_tioctl(TRUE) ,
+relying upon the operating system
+(or,
+ultimately,
+the terminal database).
+.SH OPTIONS
+.TP 9n \" "-T type" + 2n
+.B \-S
+retrieves more than one capability per invocation of \fB\%@TPUT@\fP.
+The capabilities must be passed to \fB\%@TPUT@\fP from the standard
+input stream instead of from the command line
+(see section \*(``EXAMPLES\*('' below).
+Only one
+.I cap-code
+is allowed per line.
+The
+.B \-S
+option changes the meanings of the
+.B 0
+and
+.B 1
+exit statuses
+(see section \*(``EXIT STATUS\*('' below).
+.IP
+Some capabilities use string parameters rather than numeric ones.
+\fB\%@TPUT@\fP employs a built-in table and the presence of parameters
+in its input to decide how to interpret them,
+and whether to use \fB\%tparm\fP(3X).
.TP
-.I string
-a value of \fB0\fR is set if the
-\fIcapname\fR is defined for this terminal \fItype\fR (the value of
-\fIcapname\fR is returned on standard output);
-a value of \fB1\fR is set if \fIcapname\fR
-is not defined for this terminal \fItype\fR
-(nothing is written to standard output).
+.BI \-T\ type
+indicates the terminal's
+.IR type .
+Normally this option is unnecessary,
+because a default is taken from the
+.I TERM
+environment variable.
+If specified,
+the environment variables
+.I LINES
+and
+.I \%COLUMNS
+are also ignored.
.TP
-.I integer
-a value of \fB0\fR is always set,
-whether or not \fIcapname\fR is defined for this terminal \fItype\fR.
-To determine if \fIcapname\fR is defined for this terminal \fItype\fR,
-the user must test the value written to standard output.
-A value of \fB\-1\fR
-means that \fIcapname\fR is not defined for this terminal \fItype\fR.
+.B \-V
+reports the version of
+.I \%ncurses
+associated with \fB\%@TPUT@\fP,
+and exits with a successful status.
.TP
-.I other
-\fBreset\fR or \fBinit\fR may fail to find their respective files.
-In that case, the exit code is set to 4 + \fBerrno\fR.
-.RE
-.PP
-Any other exit code indicates an error; see the DIAGNOSTICS section.
-.SH DIAGNOSTICS
-\fB@TPUT@\fR prints the following error messages and sets the corresponding exit
-codes.
+.B \-x
+prevents
+.RB \%\*(`` "@TPUT@ clear" \*(''
+from attempting to clear the scrollback buffer.
+.SH EXIT STATUS
+Normally,
+one should interpret \fB\%@TPUT@\fP's exit statuses as follows.
.PP
-.ne 15
+.if n .ne 3
+.if t .ne 2
.TS
-l l.
-exit code error message
-=
-\fB0\fR T{
-(\fIcapname\fR is a numeric variable that is not specified in the
-\fBterminfo\fR(5) database for this terminal type, e.g.
-\fB@TPUT@ \-T450 lines\fR and \fB@TPUT@ \-T2621 xmc\fR)
-T}
-\fB1\fR no error message is printed, see the \fBEXIT CODES\fR section.
-\fB2\fR usage error
-\fB3\fR unknown terminal \fItype\fR or no \fBterminfo\fR database
-\fB4\fR unknown \fBterminfo\fR capability \fIcapname\fR
-\fB>4\fR error occurred in \-S
-=
+Lb Lb
+Lb Lx.
+Status Meaning When \-S Not Specified
+_
+0 Boolean or string capability present
+1 Boolean or numeric capability absent
+2 usage error or no terminal type specified
+3 unrecognized terminal type
+4 unrecognized capability code
+>4 system error (4 + \fBerrno\fP)
.TE
-.SH HISTORY
-The \fBtput\fP command was begun by Bill Joy in 1980.
-The initial version only cleared the screen.
-.PP
-AT&T System V provided a different \fBtput\fP command,
-whose \fBinit\fP and \fBreset\fP subcommands
-(more than half the program) were incorporated from
-the \fBreset\fP feature of BSD \fBtset\fP written by Eric Allman.
-.PP
-Keith Bostic replaced the BSD \fBtput\fP command in 1989
-with a new implementation
-based on the AT&T System V program \fBtput\fP.
-Like the AT&T program, Bostic's version
-accepted some parameters named for \fIterminfo capabilities\fP
-(\fBclear\fP, \fBinit\fP, \fBlongname\fP and \fBreset\fP).
-However (because he had only termcap available),
-it accepted \fItermcap names\fP for other capabilities.
-Also, Bostic's BSD \fBtput\fP did not modify the terminal I/O modes
-as the earlier BSD \fBtset\fP had done.
.PP
-At the same time, Bostic added a shell script named \*(``clear\*('',
-which used \fBtput\fP to clear the screen.
+When the
+.B \-S
+option is used,
+some statuses change meanings.
.PP
-Both of these appeared in 4.4BSD,
-becoming the \*(``modern\*('' BSD implementation of \fBtput\fP.
-.PP
-This implementation of \fBtput\fP began from a different source than
-AT&T or BSD: Ross Ridge's \fImytinfo\fP package, published on
-\fIcomp.sources.unix\fP in December 1992.
-Ridge's program made more sophisticated use of the terminal capabilities
-than the BSD program.
-Eric Raymond used that \fBtput\fP program
-(and other parts of \fImytinfo\fP) in ncurses in June 1995.
-Using the portions dealing with terminal capabilities
-almost without change,
-Raymond made improvements to the way the command-line parameters
-were handled.
+.if n .ne 4
+.if t .ne 3
+.TS
+Lb Lb
+Lb Lx.
+Status Meaning When \-S Specified
+_
+0 all operands interpreted
+1 unused
+4 some operands not interpreted
+.TE
+.SH ENVIRONMENT
+\fB@TPUT@\fP reads one environment variable.
+.TP 8n \" "TERM" + 2n + adjustment for PDF
+.I TERM
+denotes the terminal type.
+Each terminal type is distinct,
+though many are similar.
+The
+.B \-T
+option overrides its value.
+.SH FILES
+.TP
+.I @DATADIR@/tabset
+tab stop initialization database
+.TP
+.I \*d
+compiled terminal description database
.SH PORTABILITY
-.PP
-This implementation of \fBtput\fP differs from AT&T \fBtput\fP in
-two important areas:
+Over time
+.I \%ncurses
+\fB\%@TPUT@\fP
+has differed from that of System\ V in two important respects,
+one now mostly historical.
.bP
-\fB@TPUT@\fP \fIcapname\fP writes to the standard output.
-That need not be a regular terminal.
-However, the subcommands which manipulate terminal modes
-may not use the standard output.
+\%\*(``\fB@TPUT@\fP
+.IR cap-code \*(''
+writes to the standard output,
+which need not be a terminal device.
+However,
+the operands that manipulate terminal modes might not use the standard
+output.
.IP
-The AT&T implementation's \fBinit\fP and \fBreset\fP commands
-use the BSD (4.1c) \fBtset\fP source, which manipulates terminal modes.
-It successively tries standard output, standard error, standard input
-before falling back to \*(``/dev/tty\*('' and finally just assumes
-a 1200Bd terminal.
-When updating terminal modes, it ignores errors.
+System\ V
+.BR tput 's
+.B init
+and
+.B \%reset
+operands use logic from 4.1cBSD
+.BR tset ,
+manipulating terminal modes.
+It checks the same file descriptors
+(and
+.IR \%/dev/tty )
+for association with a terminal device as
+.I \%ncurses
+now does,
+and if none are,
+finally assumes a 1200 baud terminal.
+When updating terminal modes,
+it ignores errors.
.IP
-Until changes made after ncurses 6.0,
-\fB@TPUT@\fP did not modify terminal modes.
-\fB@TPUT@\fP now uses a similar scheme,
-using functions shared with \fB@TSET@\fP
-(and ultimately based on the 4.4BSD \fBtset\fP).
-If it is not able to open a terminal, e.g., when running in \fBcron\fP,
-\fB@TPUT@\fP will return an error.
-.bP
-AT&T \fBtput\fP guesses the type of its \fIcapname\fP operands by seeing if
-all of the characters are numeric, or not.
+Until
+.I \%ncurses
+6.1
+(see section \*(``HISTORY\*('' below),
+\fB\%@TPUT@\fP did not modify terminal modes.
+It now employs a scheme similar to System\ V,
+using functions shared with \fB\%@TSET@\fP
+(and ultimately based on 4.4BSD
+.BR tset ).
+If it is not able to open a terminal
+(for instance,
+when run by \fIcron\fP(1)),
+\fB\%@TPUT@\fP exits with an error status.
+.bP
+System\ V
+.B tput
+assumes that the type of a
+.I cap-code
+operand is numeric if all the characters of its value are decimal
+numbers;
+if they are not,
+it treats
+.I cap-code
+as a string capability.
.IP
-Most implementations which provide support for \fIcapname\fR operands
-use the \fItparm\fP function to expand parameters in it.
+Most implementations that provide support for
+.I cap-code
+operands use the \fB\%tparm\fP(3X) function to expand its parameters.
That function expects a mixture of numeric and string parameters,
-requiring \fB@TPUT@\fP to know which type to use.
+requiring \fB\%@TPUT@\fP to know which type to use.
+.IP
+.I \%ncurses
+\fB\%@TPUT@\fP
+uses a table to determine the parameter types for
+the standard
+.I cap-code
+operands,
+and an internal function to analyze nonstandard
+.I cap-code
+operands.
.IP
-This implementation uses a table to determine the parameter types for
-the standard \fIcapname\fR operands, and an internal library
-function to analyze nonstandard \fIcapname\fR operands.
+While more reliable than System\ V's utility,
+a portability problem is introduced by this analysis.
+An OpenBSD developer adapted the internal library function from
+.I \%ncurses
+to port NetBSD's
+.IR termcap -based
+.B tput
+to
+.IR \%term\%info ,
+and modified it to interpret multiple
+.I cap-codes
+(and parameters)
+on the command line.
+Portable applications should not rely upon this feature;
+.I \%ncurses
+offers it to support applications written specifically for OpenBSD.
.PP
-This implementation (unlike others) can accept both \fItermcap\fP
-and \fIterminfo\fP names for the \fIcapname\fP feature,
+This implementation,
+unlike others,
+accepts both
+.I termcap
+and
+.I \%term\%info
+.I cap-codes
if
-\fItermcap\fR support is compiled in.
-However, the predefined \fItermcap\fP and \fIterminfo\fP names have two
-ambiguities in this case (and the \fIterminfo\fP name is assumed):
-.bP
-The \fItermcap\fP name \fBdl\fP corresponds to
-the \fIterminfo\fP name \fBdl1\fP (delete one line).
-.br
-The \fIterminfo\fP name \fBdl\fP corresponds to
-the \fItermcap\fP name \fBDL\fP (delete a given number of lines).
-.bP
-The \fItermcap\fP name \fBed\fP corresponds to
-the \fIterminfo\fP name \fBrmdc\fP (end delete mode).
-.br
-The \fIterminfo\fP name \fBed\fP corresponds to
-the \fItermcap\fP name \fBcd\fP (clear to end of screen).
+.I termcap
+support is compiled in.
+In that case,
+however,
+the predefined
+.I termcap
+and
+.I \%term\%info
+codes have two
+ambiguities;
+.I \%ncurses
+assumes the
+.I \%term\%info
+code.
+.bP
+The
+.I cap-code
+.B dl
+means
+.B \%delete_line
+to
+.I termcap
+but
+.B \%parm_delete_line
+to
+.IR \%term\%info .
+.I termcap
+uses the code
+.B DL
+for
+.BR \%parm_delete_line .
+.I \%term\%info
+uses the code
+.B dl1
+for
+.BR \%delete_line .
+.bP
+The
+.I cap-code
+.B ed
+means
+.B \%exit_delete_mode
+to
+.I termcap
+but
+.B \%clr_eos
+to
+.IR \%term\%info .
+.I termcap
+uses the code
+.B cd
+for
+.BR \%clr_eos .
+.I \%term\%info
+uses the code
+.B rmdc
+for
+.BR \%exit_delete_mode .
.PP
-The \fBlongname\fR and \fB\-S\fR options, and the parameter-substitution
-features used in the \fBcup\fR example,
-were not supported in BSD curses before 4.3reno (1989) or in
-AT&T/USL curses before SVr4 (1988).
+The
+.B \%longname
+operand,
+.B \-S
+option,
+and the parameter-substitution features used in the
+.B cup
+example below,
+were not supported in
+AT&T/USL
+.I curses
+before SVr4 (1989).
+Later,
+4.3BSD-Reno (1990) added support for
+.BR \%longname ,
+.\" longname was added in October 1989.
+and in 1994,
+NetBSD added support for the parameter-substitution features.
.PP
-IEEE Std 1003.1/The Open Group Base Specifications Issue 7 (POSIX.1-2008)
-documents only the operands for \fBclear\fP, \fBinit\fP and \fBreset\fP.
-There are a few interesting observations to make regarding that:
-.bP
-In this implementation, \fBclear\fP is part of the \fIcapname\fR support.
-The others (\fBinit\fP and \fBlongname\fP) do not correspond to terminal
-capabilities.
-.bP
-Other implementations of \fBtput\fP on
-SVr4-based systems such as Solaris, IRIX64 and HPUX
-as well as others such as AIX and Tru64
-provide support for \fIcapname\fR operands.
-.bP
-A few platforms such as FreeBSD recognize termcap names rather
-than terminfo capability names in their respective \fBtput\fP commands.
-Since 2010, NetBSD's \fBtput\fP uses terminfo names.
-Before that, it (like FreeBSD) recognized termcap names.
+IEEE Std 1003.1/The Open Group Base Specifications Issue 7
+(POSIX.1-2008)
+documents only the
+.BR clear ,
+.BR init ,
+and
+.B \%reset
+operands.
+A few observations of interest arise from that selection.
+.bP
+.I \%ncurses
+supports
+.B clear
+as it does any other standard
+.IR cap-code .
+The others
+.RB ( init
+and
+.BR \%longname )
+do not correspond to terminal capabilities.
+.bP
+The
+.B tput
+on SVr4-based systems such as Solaris,
+IRIX64,
+and HP-UX,
+as well as others such as AIX and Tru64,
+also support standard
+.I cap-code
+operands.
+.bP
+A few platforms such as FreeBSD recognize
+.I termcap
+codes rather than
+.I \%term\%info
+capability codes in their respective
+.B tput
+commands.
+Since 2010,
+NetBSD's
+.B tput
+uses
+.I \%term\%info
+codes.
+Before that,
+it
+(like FreeBSD)
+recognized
+.I termcap
+codes.
+.IP
+Beginning in 2021,
+FreeBSD uses
+.I \%ncurses
+.BR tput ,
+configured for both
+.I \%term\%info
+(tested first)
+and
+.I termcap
+(as a fallback).
.PP
-Because (apparently) \fIall\fP of the certified Unix systems
-support the full set of capability names, the reasoning for documenting
-only a few may not be apparent.
+Because (apparently) all
+.I certified
+Unix systems support the full set of capability codes,
+the reason for documenting only a few may not be apparent.
.bP
-X/Open Curses Issue 7 documents \fBtput\fP differently, with \fIcapname\fP
+X/Open Curses Issue 7 documents
+.B tput
+differently,
+with
+.I cap-code
and the other features used in this implementation.
.bP
-That is, there are two standards for \fBtput\fP:
+That is,
+there are two standards for
+.BR tput :
POSIX (a subset) and X/Open Curses (the full implementation).
-POSIX documents a subset to avoid the complication of including X/Open Curses
-and the terminal capabilities database.
+POSIX documents a subset to avoid the complication of including
+X/Open Curses and the terminal capability database.
.bP
-While it is certainly possible to write a \fBtput\fP program
-without using curses,
-none of the systems which have a curses implementation provide
-a \fBtput\fP utility which does not provide the \fIcapname\fP feature.
+While it is certainly possible to write a
+.B tput
+program without using
+.IR curses ,
+no system with a
+.I curses
+implementation provides a
+.B tput
+utility that does not also support standard
+.IR cap-codes .
.PP
X/Open Curses Issue 7 (2009) is the first version to document utilities.
However that part of X/Open Curses does not follow existing practice
-(i.e., Unix features documented in SVID 3):
+(that is,
+System\ V
+.I curses
+behavior).
.bP
-It assigns exit code 4 to \*(``invalid operand\*('',
-which may be the same as \fIunknown capability\fP.
-For instance, the source code for Solaris' xcurses uses the term
-\*(``invalid\*('' in this case.
+It assigns exit status 4 to \*(``invalid operand\*('',
+which may have the same meaning as \*(``unknown capability\*(''.
+For instance,
+the source code for
+Solaris
+.I xcurses
+uses the term \*(``invalid\*('' in this case.
.bP
-It assigns exit code 255 to a numeric variable that is not specified in
-the terminfo database.
+It assigns exit status 255 to a numeric variable that is not specified
+in the
+.I \%term\%info
+database.
That likely is a documentation error,
-confusing the \fB\-1\fP written to the standard output for an absent
-or cancelled numeric value versus an (unsigned) exit code.
+mistaking the \*(``\-1\*('' written to the standard output to indicate
+an absent or cancelled numeric capability for an (unsigned) exit status.
.PP
-The various Unix systems (AIX, HPUX, Solaris) use the same exit-codes
-as ncurses.
+The various System\ V implementations
+(AIX,
+HP-UX,
+Solaris)
+use the same exit statuses as
+.IR \%ncurses .
.PP
-NetBSD curses documents different exit codes which do not correspond
-to either ncurses or X/Open.
-.SH SEE ALSO
-\fB@CLEAR@\fR(\*n),
-\fBstty\fR(1),
-\fB@TABS@\fR(\*n),
-\fB@TSET@\fR(\*n),
-\fBcurs_termcap\fR(3X),
-\fBterminfo\fR(5).
+NetBSD
+.I curses
+documents exit statuses that correspond to neither
+.I \%ncurses
+nor X/Open Curses.
+.SH HISTORY
+Bill Joy wrote a
+.B tput
+command during development of 4BSD in October 1980.
+This initial version only cleared the screen,
+and did not ship with official distributions.
+.\" It also exited with backwards exit status (1 on success, 0 on
+.\" failure), and was characterized by Bostic in 1988 as "pretty
+.\" unreasonable".
+.\" See Spinellis's "unix-history-repo" on GitHub.
.PP
-This describes \fBncurses\fR
-version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
+System\ V developed a different
+.B tput
+command.
+.bP
+SVr2 (1984) provided a rudimentary
+.B tput
+that checked the parameter against each
+predefined capability and returned the corresponding value.
+This version of
+.B tput
+did not use \fB\%tparm\fP(3X) for parameterized capabilities.
+.bP
+SVr3 (1987) replaced that
+.\" SVr3 released in 1987, not 1985.
+.\" https://unix.org/what_is_unix/history_timeline.html
+with a more extensive program
+whose support for
+.B init
+and
+.B \%reset
+operands
+(more than half the program)
+incorporated the
+.B \%reset
+feature of BSD
+.B tset
+written by Eric Allman.
+.bP
+SVr4 (1989) added color initialization by using the
+.B \%orig_colors
+.RB ( oc )
+and
+.B \%orig_pair
+.RB ( op )
+capabilities in its
+.B init
+logic.
+.PP
+Keith Bostic refactored BSD
+.B tput
+for shipment in 4.3BSD-Tahoe (1988),
+then replaced it the next year with a new implementation based on
+System\ V
+.BR tput .
+Bostic's version similarly accepted some parameters named for
+.I \%term\%info
+(pseudo-)capabilities:
+.BR clear ,
+.BR init ,
+.BR \%longname ,
+and
+.BR \%reset .
+However,
+because he had only
+.I termcap
+available,
+it accepted
+.I termcap
+codes for other capabilities.
+Also,
+Bostic's BSD
+.B tput
+did not modify the terminal modes as the earlier BSD
+.B tset
+had done.
+.PP
+At the same time,
+Bostic added a shell script named \*(``clear\*('' that used
+.B tput
+to clear the screen.
+Both of these appeared in 4.4BSD,
+becoming the \*(``modern\*('' BSD implementation of
+.BR tput .
+.PP
+The origin of
+.I \%ncurses
+\fB\%@TPUT@\fP lies outside both System\ V and BSD,
+in Ross Ridge's
+.I \%mytinfo
+package,
+published on
+.I comp.sources.unix
+in December 1992.
+Ridge's program made more sophisticated use of the terminal capabilities
+than the BSD program.
+Eric Raymond used that
+.B tput
+program
+(and other parts of
+.IR \%mytinfo )
+in
+.I \%ncurses
+in June 1995.
+Incorporating the portions dealing with terminal capabilities
+almost without change,
+Raymond made improvements to the way command-line parameters
+were handled.
+.PP
+Before
+.I \%ncurses
+6.1 (2018),
+its \fB\%@TSET@\fP and \fB\%@TPUT@\fP utilities differed.
+.bP
+\fB\%@TSET@\fP was more effective,
+resetting the terminal modes and special characters.
+.bP
+On the other hand,
+\fB\%@TSET@\fP's repertoire of terminal capabilities for resetting the
+terminal was more limited;
+it had only equivalents of
+.B \%reset_1string
+.RB ( rs1 ),
+.B \%reset_2string
+.RB ( rs2 ),
+and
+.B \%reset_file
+.RB ( rf ),
+and not the tab stop and margin update features of \fB\%@TPUT@\fP.
+.PP
+The
+.B \%reset
+program is traditionally an alias for \fB\%@TSET@\fP due to its ability
+to reset terminal modes and special characters.
+.PP
+As of
+.I \%ncurses
+6.1,
+the \*(``reset\*('' features of the two programs are (mostly) the same.
+Two minor differences remain.
+.bP
+The \fB\%@TSET@\fP program waits one second when resetting,
+in case the terminal happens to be a hardware device.
+.bP
+The two programs write the terminal initialization strings
+to different streams;
+that is,
+standard error for \fB\%@TSET@\fP and
+standard output for \fB\%@TPUT@\fP.
+.SH EXAMPLES
+.TP
+.B "@TPUT@ init"
+Initialize the terminal according to the type of
+terminal in the
+.I TERM
+environment variable.
+If the system does not reliably initialize the terminal upon login,
+this command can be included in
+.I \%$HOME/.profile
+after exporting the
+.I TERM
+environment variable.
+.TP
+.B "@TPUT@ \-T5620 reset"
+Reset an AT&T 5620 terminal,
+overriding the terminal type in the
+.I TERM
+environment variable.
+.TP
+.B "@TPUT@ cnorm"
+Set cursor to normal visibility.
+.TP
+.B "@TPUT@ home"
+Move the cursor to row 0,
+column 0:
+the upper left corner of the screen,
+usually known as the \*(``home\*('' cursor position.
+.TP
+.B "@TPUT@ clear"
+Clear the screen:
+write the
+.B \%clear_screen
+capability's value to the standard output stream.
+.TP
+.B "@TPUT@ cols"
+Report the number of columns used by the current terminal type.
+.TP
+.B "@TPUT@ \-Tadm3a cols"
+Report the number of columns used by an ADM-3A terminal.
+.TP
+.B "strong=\(ga@TPUT@ smso\(ga normal=\(ga@TPUT@ rmso\(ga"
+Set shell variables to capability values:
+.B strong
+and
+.BR normal ,
+to begin and end,
+respectively,
+stand-out mode for the terminal.
+One might use these to present a prompt.
+.IP
+.EX
+.RS 14
+printf "${strong}Username:${normal} "
+.RE
+.EE
+.TP
+.B "@TPUT@ hc"
+Indicate via exit status whether the terminal is a hard copy device.
+.TP
+.B "@TPUT@ cup 23 4"
+Move the cursor to row 23,
+column 4.
+.TP
+.B "@TPUT@ cup"
+Report the value of the
+.B \%cursor_address
+.RB ( cup )
+capability
+(used for cursor movement),
+with no parameters substituted.
+.TP
+.B "@TPUT@ longname"
+Report the
+.I \%term\%info
+database's description of the terminal type specified in the
+.I TERM
+environment variable.
+.TP
+.B "@TPUT@ \-S"
+Process multiple capabilities.
+The
+.B \-S
+option can be profitably used with a shell \*(``here document\*(''.
+.IP
+.EX
+.RB $\ "@TPUT@ \-S <<!"
+.RB >\ clear
+.RB >\ "cup 10 10"
+.RB >\ bold
+.RB >\ !
+.EE
+.IP
+The foregoing
+clears the screen,
+moves the cursor to position
+(10, 10)
+and turns on bold
+(extra bright)
+mode.
+.TP
+.B "@TPUT@ clear cup 10 10 bold"
+Perform the same actions as the foregoing
+.RB \%\*(`` "@TPUT@ \-S" \*(''
+example.
+.SH SEE ALSO
+\fB\%@CLEAR@\fP(1),
+\fB\%stty\fP(1),
+\fB\%@TABS@\fP(1),
+\fB\%@TSET@\fP(1),
+\fB\%curs_termcap\fP(3X),
+\fB\%terminfo\fP(5)
diff --git a/man/tset.1 b/man/tset.1
index 65b1ef229967..185227dcdb03 100644
--- a/man/tset.1
+++ b/man/tset.1
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2016,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,27 +27,40 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: tset.1,v 1.55 2020/02/02 23:34:34 tom Exp $
-.TH @TSET@ 1 ""
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: tset.1,v 1.85 2024/04/27 17:57:47 tom Exp $
+.TH @TSET@ 1 2024-04-27 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "User commands"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.ds ^ \(ha
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.ds ^ ^
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
+.
+.ds d @TERMINFO@
.SH NAME
-\fB@TSET@\fR, \fB@RESET@\fR \- terminal initialization
+\fB\%@TSET@\fP,
+\fB\%@RESET@\fP \-
+initialize or reset terminal state
.SH SYNOPSIS
-\fB@TSET@\fR [\fB\-IQVcqrsw\fR] [\fB\-\fR] [\fB\-e\fR \fIch\fR] [\fB\-i\fR \fIch\fR] [\fB\-k\fR \fIch\fR] [\fB\-m\fR \fImapping\fR] [\fIterminal\fR]
+\fB@TSET@\fP [\fB\-IQVcqrsw\fP] [\fB\-\fP] [\fB\-e\fP \fIch\fP] [\fB\-i\fP \fIch\fP] [\fB\-k\fP \fIch\fP] [\fB\-m\fP \fImapping\fP] [\fIterminal-type\fP]
.br
-\fB@RESET@\fR [\fB\-IQVcqrsw\fR] [\fB\-\fR] [\fB\-e\fR \fIch\fR] [\fB\-i\fR \fIch\fR] [\fB\-k\fR \fIch\fR] [\fB\-m\fR \fImapping\fR] [\fIterminal\fR]
+\fB@RESET@\fP [\fB\-IQVcqrsw\fP] [\fB\-\fP] [\fB\-e\fP \fIch\fP] [\fB\-i\fP \fIch\fP] [\fB\-k\fP \fIch\fP] [\fB\-m\fP \fImapping\fP] [\fIterminal-type\fP]
.SH DESCRIPTION
-.SS tset - initialization
+.SS "\fItset\fP \(em initialization"
This program initializes terminals.
.PP
-First, \fB@TSET@\fR retrieves the current terminal mode settings
+First, \fB@TSET@\fP retrieves the current terminal mode settings
for your terminal.
It does this by successively testing
.bP
@@ -66,22 +79,22 @@ file descriptor to use when updating settings.
Next, \fB@TSET@\fP determines the type of terminal that you are using.
This determination is done as follows, using the first terminal type found.
.PP
-1. The \fBterminal\fR argument specified on the command line.
+1. The \fBterminal\fP argument specified on the command line.
.PP
-2. The value of the \fBTERM\fR environmental variable.
+2. The value of the \fITERM\fP environment variable.
.PP
3. (BSD systems only.) The terminal type associated with the standard
-error output device in the \fI/etc/ttys\fR file.
-(On System\-V-like UNIXes and systems using that convention,
-\fIgetty\fR does this job by setting
-\fBTERM\fR according to the type passed to it by \fI/etc/inittab\fR.)
+error output device in the \fI/etc/ttys\fP file.
+(On System\ V hosts and systems using that convention,
+\fI\%getty\fP(8) does this job by setting
+\fITERM\fP according to the type passed to it by \fI\%/etc/inittab\fP.)
.PP
-4. The default terminal type, \*(``unknown\*(''.
+4. The default terminal type, \*(``unknown\*('',
+is not suitable for curses applications.
.PP
-If the terminal type was not specified on the command-line, the \fB\-m\fR
-option mappings are then applied (see the section
-.B TERMINAL TYPE MAPPING
-for more information).
+If the terminal type was not specified on the command-line, the \fB\-m\fP
+option mappings are then applied;
+see subsection \*(``Terminal Type Mapping\*(''.
Then, if the terminal type begins with a question mark (\*(``?\*(''), the
user is prompted for confirmation of the terminal type.
An empty
@@ -98,8 +111,10 @@ if the \*(``\fB\-w\fP\*('' option is enabled, \fB@TSET@\fP may update
the terminal's window size.
.IP
If the window size cannot be obtained from the operating system,
-but the terminal description (or environment, e.g., \fBLINES\fP
-and \fBCOLUMNS\fP variables specify this),
+but the terminal description
+(or environment,
+e.g.,
+\fILINES\fP and \fI\%COLUMNS\fP variables specify this),
use this to set the operating system's notion of the window size.
.bP
if the \*(``\fB\-c\fP\*('' option is enabled,
@@ -114,9 +129,8 @@ and \fB@TSET@\fP waits one second (in case a hardware reset was issued).
Finally, if the erase, interrupt and line kill characters have changed,
or are not set to their default values, their values are displayed to the
standard error output.
-.SS reset - reinitialization
-.PP
-When invoked as \fB@RESET@\fR, \fB@TSET@\fR sets the terminal
+.SS "\fIreset\fP \(em reinitialization"
+When invoked as \fB@RESET@\fP, \fB@TSET@\fP sets the terminal
modes to \*(``sane\*('' values:
.bP
sets cooked and echo modes,
@@ -137,104 +151,46 @@ after a program dies leaving a terminal in an abnormal state:
.bP
you may have to type
.sp
- \fI<LF>\fP\fB@RESET@\fP\fI<LF>\fP
+ \fI<LF>\fB@RESET@\fI<LF>\fR
.sp
(the line-feed character is normally control-J) to get the terminal
to work, as carriage-return may no longer work in the abnormal state.
.bP
Also, the terminal will often not echo the command.
-.SH OPTIONS
-.PP
-The options are as follows:
-.TP 5
-.B \-c
-Set control characters and modes.
-.TP 5
-.B \-e
-Set the erase character to \fIch\fR.
-.TP
-.B \-I
-Do not send the terminal or tab initialization strings to the terminal.
-.TP
-.B \-i
-Set the interrupt character to \fIch\fR.
-.TP
-.B \-k
-Set the line kill character to \fIch\fR.
-.TP
-.B \-m
-Specify a mapping from a port type to a terminal.
-See the section
-.B TERMINAL TYPE MAPPING
-for more information.
-.TP
-.B \-Q
-Do not display any values for the erase, interrupt and line kill characters.
-Normally \fB@TSET@\fR displays the values for control characters which
-differ from the system's default values.
-.TP
-.B \-q
-The terminal type is displayed to the standard output, and the terminal is
-not initialized in any way.
-The option \*(``\-\*('' by itself is equivalent but archaic.
-.TP
-.B \-r
-Print the terminal type to the standard error output.
-.TP
-.B \-s
-Print the sequence of shell commands to initialize the environment variable
-\fBTERM\fR to the standard output.
-See the section
-.B SETTING THE ENVIRONMENT
-for details.
-.TP
-.B \-V
-reports the version of ncurses which was used in this program, and exits.
-.TP
-.B \-w
-Resize the window to match the size deduced via \fBsetupterm\fP(3X).
-Normally this has no effect,
-unless \fBsetupterm\fP is not able to detect the window size.
-.PP
-The arguments for the \fB\-e\fR, \fB\-i\fR, and \fB\-k\fR
-options may either be entered as actual characters
-or by using the \*(``hat\*(''
-notation, i.e., control-h may be specified as \*(``^H\*('' or \*(``^h\*(''.
-.PP
-If neither \fB\-c\fP or \fB\-w\fP is given, both options are assumed.
-.
-.SH SETTING THE ENVIRONMENT
+.SS "Setting the Environment"
It is often desirable to enter the terminal type and information about
the terminal's capabilities into the shell's environment.
-This is done using the \fB\-s\fR option.
+This is done using the \fB\-s\fP option.
.PP
-When the \fB\-s\fR option is specified, the commands to enter the information
+When the \fB\-s\fP option is specified, the commands to enter the information
into the shell's environment are written to the standard output.
-If
-the \fBSHELL\fR environmental variable ends in \*(``csh\*('', the commands
-are for \fBcsh\fR, otherwise, they are for \fBsh\fR.
-Note, the \fBcsh\fR commands set and unset the shell variable
-\fBnoglob\fR, leaving it unset.
-The following line in the \fB.login\fR
-or \fB.profile\fR files will initialize the environment correctly:
+If the \fISHELL\fP environment variable ends in \*(``csh\*('',
+the commands
+are for \fIcsh\fP(1),
+otherwise,
+they are for \fIsh\fP(1).
+The \fIcsh\fP commands set and unset the shell variable \fBnoglob\fP,
+leaving it unset.
+The following line in the \fB.login\fP
+or \fB.profile\fP files will initialize the environment correctly:
.sp
- eval \`@TSET@ \-s options ... \`
+ eval \(ga@TSET@ \-s options ... \(ga
.
-.SH TERMINAL TYPE MAPPING
+.SS "Terminal Type Mapping"
When the terminal is not hardwired into the system (or the current
system information is incorrect) the terminal type derived from the
-\fI/etc/ttys\fR file or the \fBTERM\fR environmental variable is often
-something generic like \fBnetwork\fR, \fBdialup\fR, or \fBunknown\fR.
-When \fB@TSET@\fR is used in a startup script it is often desirable to
+\fI/etc/ttys\fP file or the \fITERM\fP environment variable is often
+something generic like \fBnetwork\fP, \fBdialup\fP, or \fBunknown\fP.
+When \fB@TSET@\fP is used in a startup script it is often desirable to
provide information about the type of terminal used on such ports.
.PP
-The \fB\-m\fR options maps
+The \fB\-m\fP options maps
from some set of conditions to a terminal type, that is, to
-tell \fB@TSET@\fR
+tell \fB@TSET@\fP
\*(``If I'm on this port at a particular speed,
guess that I'm on that kind of terminal\*(''.
.PP
-The argument to the \fB\-m\fR option consists of an optional port type, an
+The argument to the \fB\-m\fP option consists of an optional port type, an
optional operator, an optional baud rate specification, an optional
colon (\*(``:\*('') character and a terminal type.
The port type is a
@@ -252,7 +208,7 @@ The baud rate is specified as a number and is compared with the speed
of the standard error output (which should be the control terminal).
The terminal type is a string.
.PP
-If the terminal type is not specified on the command line, the \fB\-m\fR
+If the terminal type is not specified on the command line, the \fB\-m\fP
mappings are applied to the terminal type.
If the port type and baud
rate match the mapping, the terminal type specified in the mapping
@@ -260,72 +216,112 @@ replaces the current type.
If more than one mapping is specified, the
first applicable mapping is used.
.PP
-For example, consider the following mapping: \fBdialup>9600:vt100\fR.
+For example, consider the following mapping: \fBdialup>9600:vt100\fP.
The port type is dialup , the operator is >, the baud rate
specification is 9600, and the terminal type is vt100.
The result of
-this mapping is to specify that if the terminal type is \fBdialup\fR,
+this mapping is to specify that if the terminal type is \fBdialup\fP,
and the baud rate is greater than 9600 baud, a terminal type of
-\fBvt100\fR will be used.
+\fBvt100\fP will be used.
.PP
If no baud rate is specified, the terminal type will match any baud rate.
If no port type is specified, the terminal type will match any port type.
-For example, \fB\-m dialup:vt100 \-m :?xterm\fR
+For example, \fB\-m dialup:vt100 \-m :?xterm\fP
will cause any dialup port, regardless of baud rate, to match the terminal
type vt100, and any non-dialup port type to match the terminal type ?xterm.
Note, because of the leading question mark, the user will be
queried on a default port as to whether they are actually using an xterm
terminal.
.PP
-No whitespace characters are permitted in the \fB\-m\fR option argument.
+No whitespace characters are permitted in the \fB\-m\fP option argument.
Also, to avoid problems with meta-characters, it is suggested that the
-entire \fB\-m\fR option argument be placed within single quote characters,
-and that \fBcsh\fR users insert a backslash character (\*(``\e\*('') before
-any exclamation marks (\*(``!\*('').
-.SH HISTORY
-.PP
-A \fBreset\fP command appeared in 2BSD (April 1979), written by Kurt Shoens.
-This program set the \fIerase\fP and \fIkill\fP characters
-to \fB^H\fP (backspace) and \fB@\fP respectively.
-Mark Horton improved that in 3BSD (October 1979), adding
-\fIintr\fP, \fIquit\fP, \fIstart\fP/\fIstop\fP and \fIeof\fP characters
-as well as changing the program to avoid modifying any user settings.
-.PP
-Later in 4.1BSD (December 1980),
-Mark Horton added a call to the \fBtset\fP program
-using the \fB\-I\fP and \fB\-Q\fP options, i.e.,
-using that to improve the terminal modes.
-With those options,
-that version of \fBreset\fP did not use the termcap database.
-.PP
-A separate \fBtset\fP command was provided in 2BSD by Eric Allman.
-While the oldest published source (from 1979)
-provides both \fBtset\fP and \fBreset\fP,
-Allman's comments in the 2BSD source code indicate
-that he began work in October 1977,
-continuing development over the next few years.
-.PP
-In September 1980, Eric Allman modified \fBtset\fP,
-adding the code from the existing \*(``reset\*(''
-feature when \fBtset\fP was invoked as \fBreset\fP.
-Rather than simply copying the existing program,
-in this merged version, \fBtset\fP used the termcap database
-to do additional (re)initialization of the terminal.
-This version appeared in 4.1cBSD, late in 1982.
-.PP
-Other developers (e.g., Keith Bostic and Jim Bloom)
-continued to modify \fBtset\fP until 4.4BSD was released in 1993.
+entire \fB\-m\fP option argument be placed within single quote characters,
+and that \fIcsh\fP users insert a backslash character (\*(``\e\*('')
+before any exclamation marks (\*(``!\*('').
+.SH OPTIONS
+The options are as follows:
+.TP 5
+.B \-c
+Set control characters and modes.
+.TP 5
+.BI \-e\ ch
+Set the erase character to \fIch\fP.
+.TP
+.B \-I
+Do not send the terminal or tab initialization strings to the terminal.
+.TP
+.BI \-i\ ch
+Set the interrupt character to \fIch\fP.
+.TP
+.BI \-k\ ch
+Set the line kill character to \fIch\fP.
+.TP
+.BI \-m\ mapping
+Specify a mapping from a port type to a terminal;
+see subsection \*(``Terminal Type Mapping\*(''.
+.TP
+.B \-Q
+Do not display any values for the erase, interrupt and line kill characters.
+Normally \fB@TSET@\fP displays the values for control characters which
+differ from the system's default values.
+.TP
+.B \-q
+The terminal type is displayed to the standard output, and the terminal is
+not initialized in any way.
+The option \*(``\-\*('' by itself is equivalent but archaic.
+.TP
+.B \-r
+Print the terminal type to the standard error output.
+.TP
+.B \-s
+Print the sequence of shell commands to initialize the environment variable
+\fITERM\fP to the standard output;
+see subsection \*(``Setting the Environment\*(''.
+.TP
+.B \-V
+reports the version of \fI\%ncurses\fP which was used in this program,
+and exits.
+.TP
+.B \-w
+Resize the window to match the size deduced via \fBsetupterm\fP(3X).
+Normally this has no effect,
+unless \fBsetupterm\fP is not able to detect the window size.
.PP
-The \fBncurses\fR implementation
-was lightly adapted from the 4.4BSD sources for a terminfo environment by Eric
-S. Raymond <esr@snark.thyrsus.com>.
-.SH COMPATIBILITY
+The arguments for the \fB\-e\fP, \fB\-i\fP, and \fB\-k\fP
+options may either be entered as actual characters
+or by using the \*(``hat\*(''
+notation, i.e., control-h may be specified as \*(``\*^H\*('' or \*(``\*^h\*(''.
.PP
+If neither \fB\-c\fP or \fB\-w\fP is given, both options are assumed.
+.SH ENVIRONMENT
+The \fB@TSET@\fP command uses these environment variables:
+.TP 5
+.I SHELL
+tells \fB@TSET@\fP whether to initialize \fITERM\fP using \fIsh\fP(1) or
+\fIcsh\fP(1) syntax.
+.TP 5
+.I TERM
+Denotes your terminal type.
+Each terminal type is distinct, though many are similar.
+.TP 5
+.I TERMCAP
+may denote the location of a termcap database.
+If it is not an absolute pathname, e.g., begins with a \*(``/\*('',
+\fB@TSET@\fP removes the variable from the environment before looking
+for the terminal description.
+.SH FILES
+.TP
+.I /etc/ttys
+system port name to terminal type mapping database (BSD versions only).
+.TP
+.I \*d
+compiled terminal description database directory
+.SH PORTABILITY
Neither IEEE Std 1003.1/The Open Group Base Specifications Issue 7
(POSIX.1-2008) nor
X/Open Curses Issue 7 documents \fB@TSET@\fP or \fB@RESET@\fP.
.PP
-The AT&T \fBtput\fP utility (AIX, HPUX, Solaris)
+The AT&T \fBtput\fP utility (AIX, HP-UX, Solaris)
incorporated the terminal-mode manipulation as well as termcap-based features
such as resetting tabstops from \fBtset\fP in BSD (4.1c),
presumably with the intention of making \fBtset\fP obsolete.
@@ -333,21 +329,24 @@ However, each of those systems still provides \fBtset\fP.
In fact, the commonly-used \fBreset\fP utility
is always an alias for \fBtset\fP.
.PP
-The \fB@TSET@\fR utility provides for backward-compatibility with BSD
-environments (under most modern UNIXes, \fB/etc/inittab\fR and \fBgetty\fR(1)
-can set \fBTERM\fR appropriately for each dial-up line; this obviates what was
-\fB@TSET@\fR's most important use).
-This implementation behaves like 4.4BSD
-\fBtset\fP, with a few exceptions specified here.
+The \fB\%@TSET@\fP utility provides backward compatibility with BSD
+environments;
+under most modern Unices,
+\fI\%/etc/inittab\fP and \fI\%getty\fP(8) can set \fITERM\fP
+appropriately for each dial-up line,
+obviating what was \fB\%@TSET@\fP's most important use.
+This implementation behaves like 4.4BSD \fBtset\fP,
+with a few exceptions we shall consider now.
.PP
A few options are different
-because the \fBTERMCAP\fR variable
-is no longer supported under terminfo-based \fBncurses\fR:
+because the \fI\%TERMCAP\fP variable
+is no longer supported under terminfo-based \fI\%ncurses\fP:
.bP
-The \fB\-S\fR option of BSD \fBtset\fP no longer works;
+The \fB\-S\fP option of BSD \fBtset\fP no longer works;
it prints an error message to the standard error and dies.
.bP
-The \fB\-s\fR option only sets \fBTERM\fR, not \fBTERMCAP\fP.
+The \fB\-s\fP option only sets \fITERM\fP,
+not \fI\%TERMCAP\fP.
.PP
There was an undocumented 4.4BSD feature
that invoking \fBtset\fP via a link named
@@ -355,17 +354,17 @@ that invoking \fBtset\fP via a link named
set the terminal to use upper-case only.
This feature has been omitted.
.PP
-The \fB\-A\fR, \fB\-E\fR, \fB\-h\fR, \fB\-u\fR and \fB\-v\fR
-options were deleted from the \fB@TSET@\fR
+The \fB\-A\fP, \fB\-E\fP, \fB\-h\fP, \fB\-u\fP and \fB\-v\fP
+options were deleted from the \fB@TSET@\fP
utility in 4.4BSD.
None of them were documented in 4.3BSD and all are
of limited utility at best.
-The \fB\-a\fR, \fB\-d\fR, and \fB\-p\fR options are similarly
+The \fB\-a\fP, \fB\-d\fP, and \fB\-p\fP options are similarly
not documented or useful, but were retained as they appear to be in
widespread use.
It is strongly recommended that any usage of these
-three options be changed to use the \fB\-m\fR option instead.
-The \fB\-a\fP, \fB\-d\fP, and \fB\-p\fR options
+three options be changed to use the \fB\-m\fP option instead.
+The \fB\-a\fP, \fB\-d\fP, and \fB\-p\fP options
are therefore omitted from the usage summary above.
.PP
Very old systems, e.g., 3BSD, used a different terminal driver which
@@ -374,15 +373,15 @@ To accommodate these older systems, the 4BSD \fB@TSET@\fP provided a
\fB\-n\fP option to specify that the new terminal driver should be used.
This implementation does not provide that choice.
.PP
-It is still permissible to specify the \fB\-e\fR, \fB\-i\fR,
-and \fB\-k\fR options without arguments,
+It is still permissible to specify the \fB\-e\fP, \fB\-i\fP,
+and \fB\-k\fP options without arguments,
although it is strongly recommended that such usage be fixed to
explicitly specify the character.
.PP
As of 4.4BSD,
-executing \fB@TSET@\fR as \fB@RESET@\fR no longer implies the \fB\-Q\fR option.
-Also, the interaction between the \- option and the \fIterminal\fR
-argument in some historic implementations of \fB@TSET@\fR has been removed.
+executing \fB@TSET@\fP as \fB@RESET@\fP no longer implies the \fB\-Q\fP option.
+Also, the interaction between the \- option and the \fIterminal\fP
+argument in some historic implementations of \fB@TSET@\fP has been removed.
.PP
The \fB\-c\fP and \fB\-w\fP options are not found in earlier implementations.
However, a different window size-change feature was provided in 4.4BSD.
@@ -391,57 +390,75 @@ In 4.4BSD, \fBtset\fP uses the window size from the termcap description
to set the window size if \fBtset\fP is not able to obtain the window
size from the operating system.
.bP
-In ncurses, \fB@TSET@\fR obtains the window size using
-\fBsetupterm\fP, which may be from
+In \fI\%ncurses\fP, \fB@TSET@\fP obtains the window size using
+\fB\%setupterm\fP(3X), which may be from
the operating system,
-the \fBLINES\fP and \fBCOLUMNS\fP environment variables or
+the \fILINES\fP and \fICOLUMNS\fP environment variables or
the terminal description.
.PP
-Obtaining the window size from the terminal description is common to
-both implementations, but considered obsolescent.
+Obtaining the window size from a terminal's type description is common
+to both implementations,
+but considered obsolescent.
Its only practical use is for hardware terminals.
-Generally speaking, a window size would be unset only if there were
-some problem obtaining the value from the operating system
-(and \fBsetupterm\fP would still fail).
-For that reason, the \fBLINES\fP and \fBCOLUMNS\fP environment variables
-may be useful for working around window-size problems.
-Those have the drawback that if the window is resized,
-those variables must be recomputed and reassigned.
-To do this more easily, use the \fBresize\fP(1) program.
-.SH ENVIRONMENT
-The \fB@TSET@\fR command uses these environment variables:
-.TP 5
-SHELL
-tells \fB@TSET@\fP whether to initialize \fBTERM\fP using \fBsh\fP or
-\fBcsh\fP syntax.
-.TP 5
-TERM
-Denotes your terminal type.
-Each terminal type is distinct, though many are similar.
-.TP 5
-TERMCAP
-may denote the location of a termcap database.
-If it is not an absolute pathname, e.g., begins with a \*(``/\*('',
-\fB@TSET@\fP removes the variable from the environment before looking
-for the terminal description.
-.SH FILES
-.TP 5
-/etc/ttys
-system port name to terminal type mapping database (BSD versions only).
-.TP
-@TERMINFO@
-terminal capability database
+Generally,
+the window size will remain uninitialized only if there were a problem
+obtaining the value from the operating system
+(and \fB\%setupterm\fP would still fail).
+The \fILINES\fP and \fI\%COLUMNS\fP environment variables
+may thus be useful for working around window-size problems,
+but have the drawback that if the window is resized,
+their values must be recomputed and reassigned.
+The \fI\%resize\fP(1) program distributed with
+\fI\%xterm\fP(1) assists this activity.
+.SH HISTORY
+A \fB\%reset\fP command written by Kurt Shoens appeared in 1BSD
+(March 1978).
+.\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=1BSD/s6/reset.c
+It set the \fIerase\fP and \fIkill\fP characters
+to \fB\*^H\fP (backspace) and \fB@\fP respectively.
+Mark Horton improved this \fB\%reset\fP in 3BSD
+(October 1979),
+adding \fIintr\fP,
+\fIquit\fP,
+\fIstart\fP/\fIstop\fP,
+and \fIeof\fP
+characters as well as changing the program to avoid modifying any user
+settings.
+.\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=3BSD/usr/src/cmd/\
+.\" reset.c
+That version of \fB\%reset\fP did not use \fI\%termcap\fP.
+.PP
+Eric Allman wrote a distinct \fBtset\fP command for 1BSD,
+using a forerunner of \fI\%termcap\fP called \fI\%ttycap\fP.
+.\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=1BSD/s6/tset.c
+.\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=1BSD/man7/ttycap.7
+Allman's comments in the source code indicate
+that he began work in October 1977,
+continuing development over the next few years.
+By late 1979,
+it had migrated to \fI\%termcap\fP and handled the \fI\%TERMCAP\fP
+variable.
+.\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=3BSD/usr/src/cmd/\
+.\" tset/tset.c
+Later comments indicate that \fBtset\fP was modified in September 1980
+to use logic copied from the 3BSD \*(``reset\*('' program when it was
+invoked as \fB\%reset\fP.
+.\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=2.9BSD/usr/src/ucb/\
+.\" tset/tset.c
+This version appeared in 4.1cBSD, \" and backported to 2.9BSD
+late in 1982.
+Other developers such as Keith Bostic and Jim Bloom continued to modify
+\fBtset\fP until 4.4BSD was released in 1993.
+.PP
+The \fI\%ncurses\fP implementation was lightly adapted from the 4.4BSD
+sources to use the \fI\%terminfo\fP API by Eric S.\& Raymond
+<esr@snark.thyrsus.com>.
.SH SEE ALSO
-.hy 0
-\fBcsh\fP(1),
-\fBsh\fP(1),
-\fBstty\fP(1),
-\fBcurs_terminfo\fP(3X),
-\fBtty\fP(4),
-\fBterminfo\fP(5),
-\fBttys\fP(5),
-\fBenviron\fP(7)
-.hy
-.PP
-This describes \fBncurses\fR
-version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
+\fB\%csh\fP(1),
+\fB\%sh\fP(1),
+\fB\%stty\fP(1),
+\fB\%curs_terminfo\fP(3X),
+\fB\%tty\fP(4),
+\fB\%terminfo\fP(5),
+\fB\%ttys\fP(5),
+\fB\%environ\fP(7)
diff --git a/man/user_caps.5 b/man/user_caps.5
index 43dd000cdc08..219bbf5f9976 100644
--- a/man/user_caps.5
+++ b/man/user_caps.5
@@ -1,5 +1,6 @@
+'\" t
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,45 +28,40 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: user_caps.5,v 1.16 2020/12/19 21:26:11 tom Exp $
-.TH user_caps 5
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
-.de NS
-.ie n .sp
-.el .sp .5
-.ie n .in +4
-.el .in +2
-.nf
-.ft C \" Courier
-..
-.de NE
-.fi
-.ft R
-.ie n .in -4
-.el .in -2
-..
+.\" $Id: user_caps.5,v 1.49 2024/03/16 15:35:01 tom Exp $
+.TH user_caps 5 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "File formats"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
.SH NAME
-user_caps \- user-defined terminfo capabilities
+user_caps \-
+user-defined \fIterminfo\fR capability format
.SH SYNOPSIS
-.B @TIC@ -x, @INFOCMP@ -x
+.B @INFOCMP@ \-x
+.PP
+.B @TIC@ \-x
.SH DESCRIPTION
.SS Background
-.PP
-Before ncurses 5.0,
+Before \fI\%ncurses\fP 5.0,
terminfo databases used a \fIfixed repertoire\fP of terminal
capabilities designed for the SVr2 terminal database in 1984,
and extended in stages through SVr4 (1989),
and standardized in the Single Unix Specification beginning in 1995.
.PP
Most of the \fIextensions\fP in this fixed repertoire were additions
-to the tables of boolean, numeric and string capabilities.
+to the tables of Boolean, numeric and string capabilities.
Rather than change the meaning of an existing capability, a new name was added.
The terminfo database uses a binary format; binary compatibility was
ensured by using a header which gave the number of items in the
@@ -92,22 +88,24 @@ Although they \fImay\fP provide all of the standard capability names,
the position in the tables differs because some features were added as needed,
while others were added (out of order) to comply with X/Open Curses.
.IP
-While ncurses' repertoire of predefined capabilities is closest to Solaris,
+While \fI\%ncurses\fP' repertoire of predefined capabilities is closest
+to Solaris,
Solaris's terminfo database has a few differences from
the list published by X/Open Curses.
-For example, ncurses can be configured with tables which match the
-terminal databases for AIX, HP-UX or OSF/1,
+For example,
+\fI\%ncurses\fP can be configured with tables which match the terminal
+databases for AIX, HP-UX or OSF/1,
rather than the default Solaris-like configuration.
.bP
-In SVr4 curses and ncurses,
+In SVr4 curses and \fI\%ncurses\fP,
the terminal database is defined at compile-time using a text file
which lists the different terminal capabilities.
.IP
In principle, the text-file can be extended,
but doing this requires recompiling and reinstalling the library.
-The text-file used in ncurses for terminal capabilities includes
+The text-file used in \fI\%ncurses\fP for terminal capabilities includes
details for various systems past the documented X/Open Curses features.
-For example, ncurses supports these capabilities in each configuration:
+For example, \fI\%ncurses\fP supports these capabilities in each configuration:
.RS 8
.TP 5
memory_lock
@@ -124,9 +122,9 @@ box characters primary set
.RE
.IP
The memory lock/unlock capabilities were included because they were used
-in the X11R6 terminal description for \fBxterm\fP.
+in the X11R6 terminal description for \fBxterm\fP(1).
The \fIbox1\fP capability is used in @TIC@ to help with terminal descriptions
-written for AIX.
+written for AIX.
.PP
During the 1990s, some users were reluctant to use terminfo
in spite of its performance advantages over termcap:
@@ -142,16 +140,16 @@ it could represent larger numbers.
Although termcap's extensibility was rarely used
(it was never the \fIspeaker\fP who had actually used the feature),
the criticism had a point.
-ncurses 5.0 provided a way to detect nonstandard capabilities,
+\fI\%ncurses\fP 5.0 provided a way to detect nonstandard capabilities,
determine their
type and optionally store and retrieve them in a way which did not interfere
with other applications.
These are referred to as \fIuser-defined capabilities\fP because no
modifications to the toolset's predefined capability names are needed.
.PP
-The ncurses utilities \fB@TIC@\fP and \fB@INFOCMP@\fP have a command-line
-option \*(``\-x\*('' to control whether the nonstandard capabilities
-are stored or retrieved.
+The \fI\%ncurses\fP utilities \fB@TIC@\fP and \fB@INFOCMP@\fP have a
+command-line option \*(``\-x\*('' to control whether the nonstandard
+capabilities are stored or retrieved.
A library function \fBuse_extended_names\fP
is provided for the same purpose.
.PP
@@ -159,7 +157,7 @@ When compiling a terminal database, if \*(``\-x\*('' is set,
\fB@TIC@\fP will store a user-defined capability if the capability name is not
one of the predefined names.
.PP
-Because ncurses provides a termcap library interface,
+Because \fI\%ncurses\fP provides a termcap library interface,
these user-defined capabilities may be visible to termcap applications:
.bP
The termcap interface (like all implementations of termcap)
@@ -181,21 +179,20 @@ While terminfo and termcap have a set of 60 predefined function-key names,
to which a series of keys can be assigned,
that is insufficient for more than a dozen keys multiplied by more than
a couple of modifier combinations.
-The ncurses database uses a convention based on \fBxterm\fP to
-provide extended special-key names.
+The \fI\%ncurses\fP database uses a convention based on \fBxterm\fP(1)
+to provide extended special-key names.
.IP
Fitting that into termcap's limitation of 2-character names
would be pointless.
These extended keys are available only with terminfo.
-.SS Recognized capabilities
-.PP
-The ncurses library uses the user-definable capabilities.
+.SS "Recognized Capabilities"
+The \fI\%ncurses\fP library uses the user-definable capabilities.
While the terminfo database may have other extensions,
-ncurses makes explicit checks for these:
+\fI\%ncurses\fP makes explicit checks for these:
.RS 3
.TP 3
AX
-\fIboolean\fP, asserts that the terminal interprets SGR 39 and SGR 49
+\fIBoolean\fP, asserts that the terminal interprets SGR 39 and SGR 49
by resetting the foreground and background color, respectively, to the default.
.IP
This is a feature recognized by the \fBscreen\fP program as well.
@@ -207,9 +204,17 @@ the terminal.
.IP
The command \*(``\fBtput clear\fP\*('' does the same thing.
.TP 3
+NQ
+\fIBoolean\fP,
+used to suppress a consistency check in @TIC@ for the \fI\%ncurses\fP
+capabilities
+in user6 through user9 (u6, u7, u8 and u9)
+which tell how to query the terminal's cursor position
+and its device attributes.
+.TP 3
RGB
-\fIboolean\fP, \fInumber\fP \fBor\fP \fIstring\fP,
-to assert that the
+\fIBoolean\fP, \fInumber\fP \fBor\fP \fIstring\fP,
+used to assert that the
\fBset_a_foreground\fP and
\fBset_a_background\fP capabilities correspond to \fIdirect colors\fP,
using an RGB (red/green/blue) convention.
@@ -217,22 +222,24 @@ This capability allows the \fBcolor_content\fP function to
return appropriate values without requiring the application
to initialize colors using \fBinit_color\fP.
.IP
-The capability type determines the values which ncurses sees:
+The capability type determines the values which \fI\%ncurses\fP sees:
.RS 3
.TP 3
-\fIboolean\fP
+\fIBoolean\fP
implies that the number of bits for red, green and blue are the same.
Using the maximum number of colors,
-ncurses adds two, divides that sum by three, and assigns the result
-to red, green and blue in that order.
+\fI\%ncurses\fP adds two,
+divides that sum by three,
+and assigns the result to red,
+green and blue in that order.
.IP
If the number of bits needed for the number of colors is not a multiple
of three, the blue (and green) components lose in comparison to red.
.TP 3
\fInumber\fP
-tells ncurses what result to add to red, green and blue.
-If ncurses runs out of bits,
-blue (and green) lose just as in the \fIboolean\fP case.
+tells \fI\%ncurses\fP what result to add to red, green and blue.
+If \fI\%ncurses\fP runs out of bits,
+blue (and green) lose just as in the \fIBoolean\fP case.
.TP 3
\fIstring\fP
explicitly list the number of bits used for red, green and blue components
@@ -247,27 +254,29 @@ to represent the standard eight ANSI colors, i.e., one bit per color.
.TP 3
U8
\fInumber\fP,
-asserts that ncurses must use Unicode values for line-drawing characters,
+asserts that \fI\%ncurses\fP must use Unicode values for line-drawing
+characters,
and that it should ignore the alternate character set capabilities
when the locale uses UTF-8 encoding.
For more information, see the discussion of
-\fBNCURSES_NO_UTF8_ACS\fP in \fBncurses\fP(3X).
+\fBNCURSES_NO_UTF8_ACS\fP in \fB\%ncurses\fP(3X).
.IP
Set this capability to a nonzero value to enable it.
.TP 3
XM
\fIstring\fP,
-override ncurses's built-in string which
-enables/disables \fBxterm\fP mouse mode.
+override \fI\%ncurses\fP's built-in string which
+enables/disables \fBxterm\fP(1) mouse mode.
.IP
-ncurses sends a character sequence to the terminal to initialize mouse mode,
+\fI\%ncurses\fP sends a character sequence to the terminal to initialize mouse mode,
and when the user clicks the mouse buttons or (in certain modes) moves the
mouse, handles the characters sent back by the terminal to tell it what
was done with the mouse.
.IP
The mouse protocol is enabled when
the \fImask\fP passed in the \fBmousemask\fP function is nonzero.
-By default, ncurses handles the responses for the X11 xterm mouse protocol.
+By default,
+\fI\%ncurses\fP handles the responses for the X11 xterm mouse protocol.
It also knows about the \fISGR 1006\fP xterm mouse protocol,
but must to be told to look for this specifically.
It will not be able to guess which mode is used,
@@ -276,7 +285,7 @@ because the responses are enough alike that only confusion would result.
The \fBXM\fP capability has a single parameter.
If nonzero, the mouse protocol should be enabled.
If zero, the mouse protocol should be disabled.
-ncurses inspects this capability if it is present,
+\fI\%ncurses\fP inspects this capability if it is present,
to see whether the 1006 protocol is used.
If so, it expects the responses to use the \fISGR 1006\fP xterm mouse protocol.
.IP
@@ -324,61 +333,79 @@ xterm mouse protocols:
.IP
.nf
xterm+x11mouse|X11 xterm mouse protocol,
- kmous=\\E[M, XM=\\E[?1000%?%p1%{1}%=%th%el%;,
- xm=\\E[M
+ kmous=\eE[M, XM=\eE[?1000%?%p1%{1}%=%th%el%;,
+ xm=\eE[M
%?%p4%t%p3%e%{3}%;%'\ '%+%c
%p2%'!'%+%c
%p1%'!'%+%c,
xterm+sm+1006|xterm SGR-mouse,
- kmous=\\E[<, XM=\\E[?1006;1000%?%p1%{1}%=%th%el%;,
- xm=\\E[<%i%p3%d;
+ kmous=\eE[<, XM=\eE[?1006;1000%?%p1%{1}%=%th%el%;,
+ xm=\eE[<%i%p3%d;
%p1%d;
%p2%d;
%?%p4%tM%em%;,
.fi
.
-.SS Extended key-definitions
-.PP
+.SS "Extended Key Definitions"
Several terminals provide the ability to send distinct strings for
combinations of modified special keys.
There is no standard for what those keys can send.
.PP
-Since 1999, \fBxterm\fP has supported
+Since 1999, \fBxterm\fP(1) has supported
\fIshift\fP, \fIcontrol\fP, \fIalt\fP, and \fImeta\fP modifiers which produce
distinct special-key strings.
-In a terminal description, ncurses has no special knowledge of the
-modifiers used.
+In a terminal description,
+\fI\%ncurses\fP has no special knowledge of the modifiers used.
Applications can use the \fInaming convention\fP established for \fBxterm\fP
to find these special keys in the terminal description.
.PP
-Starting with the curses convention that \fIkey names\fP begin with \*(``k\*(''
-and that shifted special keys are an uppercase name,
-ncurses' terminal database defines these names to which a suffix is added:
+Starting with the
+.I curses
+convention that capability codes describing the input generated by a
+terminal's key caps begin with \*(``k\*('',
+and that shifted special keys use uppercase letters in their names,
+.IR \%ncurses 's
+terminal database defines the following names and codes to which a
+suffix is added.
+.PP
.RS 5
.TS
-tab(/) ;
-l l .
-\fIName\fR/\fIDescription\fR
+Lb Lb
+Lb Lx.
+Code Description
_
-kDC/special form of kdch1 (delete character)
-kDN/special form of kcud1 (cursor down)
-kEND/special form of kend (End)
-kHOM/special form of khome (Home)
-kLFT/special form of kcub1 (cursor-left or cursor-back)
-kNXT/special form of knext (Next, or Page-Down)
-kPRV/special form of kprev (Prev, or Page-Up)
-kRIT/special form of kcuf1 (cursor-right, or cursor-forward)
-kUP/special form of kcuu1 (cursor-up)
+kDC shifted kdch1 (delete character)
+.\" kDC is a standard capability; see X/Open Curses Issue 7, p. 345.
+kDN shifted kcud1 (cursor down)
+kEND shifted kend (end)
+kHOM shifted khome (home)
+kLFT shifted kcub1 (cursor back)
+kNXT shifted knext (next)
+kPRV shifted kprev (previous)
+kRIT shifted kcuf1 (cursor forward)
+kUP shifted kcuu1 (cursor up)
.TE
.RE
.PP
+Keycap nomenclature on the Unix systems for which
+.I curses
+was developed differs from today's ubiquitous descendants of the IBM
+PC/AT keyboard layout.
+In the foregoing,
+interpret \*(``backward\*('' as \*(``left\*('',
+\*(``forward\*('' as \*(``right\*('',
+\*(``next\*('' as \*(``page down\*('',
+and
+\*(``prev(ious)\*('' as \*(``page up\*(''.
+.PP
These are the suffixes used to denote the modifiers:
+.PP
.RS 5
.TS
tab(/) ;
l l .
-\fIValue\fR/\fIDescription\fR
+\fBValue\fP/\fBDescription\fP
_
2/Shift
3/Alt
@@ -399,8 +426,9 @@ _
.RE
.PP
None of these are predefined; terminal descriptions can refer to \fInames\fP
-which ncurses will allocate at runtime to \fIkey-codes\fP.
-To use these keys in an ncurses program, an application could do this:
+which \fI\%ncurses\fP will allocate at runtime to \fIkey-codes\fP.
+To use these keys in an \fI\%ncurses\fP program,
+an application could do this:
.bP
using a list of extended key \fInames\fP,
ask \fBtigetstr\fP(3X) for their values, and
@@ -408,32 +436,29 @@ ask \fBtigetstr\fP(3X) for their values, and
given the list of values,
ask \fBkey_defined\fP(3X) for the \fIkey-code\fP which
would be returned for those keys by \fBwgetch\fP(3X).
-.PP
.\"
.SH PORTABILITY
-.PP
The \*(``\-x\*('' extension feature of \fB@TIC@\fP and \fB@INFOCMP@\fP
has been adopted in NetBSD curses.
That implementation stores user-defined capabilities,
but makes no use of these capabilities itself.
.\"
+.SH AUTHORS
+Thomas E. Dickey
+.br
+beginning with \fI\%ncurses\fP 5.0 (1999)
+.\"
.SH SEE ALSO
-.PP
-\fB@INFOCMP@\fR(1M),
-\fB@TIC@\fR(1M).
+\fB\%@INFOCMP@\fP(1M),
+\fB\%@TIC@\fP(1M)
.PP
The terminal database section
.I "NCURSES USER-DEFINABLE CAPABILITIES"
summarizes commonly-used user-defined capabilities
which are used in the terminal descriptions.
-Some of those features are mentioned in \fBscreen\fR(1) or \fBtmux\fR(1).
+Some of those features are mentioned in \fB\%screen\fP(1) or
+\fBtmux\fP(1).
.PP
.I "XTerm Control Sequences"
-provides further information on the \fBxterm\fP features
-which are used in these extended capabilities.
-.\"
-.SH AUTHORS
-.PP
-Thomas E. Dickey
-.br
-beginning with ncurses 5.0 (1999)
+provides further information on the \fB\%xterm\fP(1) features
+that are used in these extended capabilities.
diff --git a/man/wresize.3x b/man/wresize.3x
index 54c1fc6bccc5..b67feada0dc0 100644
--- a/man/wresize.3x
+++ b/man/wresize.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2018,2020 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2010,2015 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -29,38 +29,44 @@
.\"
.\" Author: Thomas E. Dickey 1996
.\"
-.\" $Id: wresize.3x,v 1.17 2020/10/17 23:56:38 tom Exp $
-.TH wresize 3X ""
+.\" $Id: wresize.3x,v 1.36 2024/03/16 15:35:01 tom Exp $
+.TH wresize 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
-\fBwresize\fR \- resize a curses window
+\fB\%wresize\fP \-
+resize a \fIcurses\fR window
.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\fBint wresize(WINDOW *\fP\fIwin\fP\fB, int \fP\fIlines\fP\fB, int \fP\fIcolumns\fP\fB);\fR
+.nf
+\fB#include <curses.h>
+.PP
+\fBint wresize(WINDOW *\fIwin\fP, int \fIlines\fP, int \fIcolumns\fP);
+.fi
.SH DESCRIPTION
-This is an extension to the curses library.
-It reallocates storage for an \fBncurses\fR
-window to adjust its dimensions to the specified values.
-If either dimension is larger than the current values, the
-window's data is filled with blanks that have the current background rendition
-(as set by \fBwbkgdset\fR) merged into them.
+This \fI\%ncurses\fP extension to standard \fIcurses\fP reallocates
+storage for a \fIcurses\fP window to adjust its dimensions to the
+specified values.
+If either dimension is larger than its current value,
+the expanded part of the window is filled with blanks merged with
+current background rendition
+(as set by \fB\%wbkgdset\fP(3X)).
.SH RETURN VALUE
-The function returns the integer \fBERR\fR upon failure and \fBOK\fR on success.
-It will fail if either of the dimensions less than or equal to zero,
+\fB\%wresize\fP returns \fBERR\fP upon failure and \fBOK\fP on success.
+It will fail if either of the dimensions is less than or equal to zero,
or if an error occurs while (re)allocating memory for the window.
.SH NOTES
-The only restriction placed on the dimensions is that they be greater than zero.
-The dimensions are not compared to \fBcurses\fR screen dimensions to
-simplify the logic of \fBresizeterm\fR.
+The only restriction placed on the dimensions is that they be greater
+than zero.
+They are \fInot\fP compared to the \fIcurses\fP screen dimensions;
+this keeps the logic of \fB\%resizeterm\fP(3X) simple.
The caller must ensure that the window's dimensions fit within the
actual screen dimensions.
.SH PORTABILITY
+It is not possible to resize windows with SVr4 \fIcurses\fP.
.PP
-It is not possible to resize windows with SVr4 curses.
-.PP
-This extension of ncurses was introduced in mid-1995.
-It was adopted in NetBSD curses (2001) and PDCurses (2003).
+\fI\%ncurses\fP introduced this extension in mid-1995.
+NetBSD \fIcurses\fP adopted it in 2001,
+and \fI\%PDCurses\fP in 2003.
+.SH AUTHORS
+Thomas Dickey
+(from an equivalent function written in 1988 for BSD \fIcurses\fP).
.SH SEE ALSO
-\fBresizeterm\fR(3X).
-.SH AUTHOR
-Thomas Dickey (from an equivalent function written in 1988 for BSD curses).
+\fB\%resizeterm\fP(3X)
diff --git a/menu/Makefile.in b/menu/Makefile.in
index fb13eb07c8ef..b623bf0eed82 100644
--- a/menu/Makefile.in
+++ b/menu/Makefile.in
@@ -1,6 +1,6 @@
-# $Id: Makefile.in,v 1.70 2020/08/29 14:50:45 tom Exp $
+# $Id: Makefile.in,v 1.71 2021/07/03 15:45:33 tom Exp $
##############################################################################
-# Copyright 2020 Thomas E. Dickey #
+# Copyright 2020,2021 Thomas E. Dickey #
# Copyright 1998-2015,2018 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -136,6 +136,19 @@ AUTO_SRC = \
../include/mf_common.h
################################################################################
+
+@MAKE_PHONY@.PHONY : all
+@MAKE_PHONY@.PHONY : clean
+@MAKE_PHONY@.PHONY : distclean
+@MAKE_PHONY@.PHONY : install
+@MAKE_PHONY@.PHONY : install.libs
+@MAKE_PHONY@.PHONY : libs
+@MAKE_PHONY@.PHONY : mostlyclean
+@MAKE_PHONY@.PHONY : realclean
+@MAKE_PHONY@.PHONY : sources
+@MAKE_PHONY@.PHONY : uninstall
+@MAKE_PHONY@.PHONY : uninstall.libs
+
all \
libs \
install :: $(AUTO_SRC) $(LIBRARIES)
diff --git a/menu/READ.ME b/menu/READ.ME
index e790f4308624..8c78037764e0 100644
--- a/menu/READ.ME
+++ b/menu/READ.ME
@@ -1,5 +1,5 @@
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey --
+-- Copyright 2020,2021 Thomas E. Dickey --
-- Copyright 1998-2003,2006 Free Software Foundation, Inc. --
-- --
-- Permission is hereby granted, free of charge, to any person obtaining a --
@@ -26,7 +26,7 @@
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
--- $Id: READ.ME,v 1.10 2020/02/02 23:34:34 tom Exp $
+-- $Id: READ.ME,v 1.11 2021/06/17 21:20:30 tom Exp $
-------------------------------------------------------------------------------
This is a clone of the menu library that is available with typical
@@ -37,7 +37,7 @@ a 386 based SVR4 implementation (ESIX).
The development environment was and is an ELF based Linux system.
-For things that still need doing, see the TO-DO file in the top-level
+For things that still need doing, see the TO-DO file in the top-level
directory.
Juergen Pfeifer
diff --git a/menu/llib-lmenu b/menu/llib-lmenu
index 7a5a41b9a72c..67f6822376e6 100644
--- a/menu/llib-lmenu
+++ b/menu/llib-lmenu
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2010,2015 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -38,7 +38,7 @@
#undef set_menu_fore
int set_menu_fore(
- MENU *menu,
+ MENU *menu,
chtype attr)
{ return(*(int *)0); }
@@ -49,7 +49,7 @@ chtype menu_fore(
#undef set_menu_back
int set_menu_back(
- MENU *menu,
+ MENU *menu,
chtype attr)
{ return(*(int *)0); }
@@ -60,7 +60,7 @@ chtype menu_back(
#undef set_menu_grey
int set_menu_grey(
- MENU *menu,
+ MENU *menu,
chtype attr)
{ return(*(int *)0); }
@@ -73,9 +73,9 @@ chtype menu_grey(
#undef _nc_menu_cursor_pos
int _nc_menu_cursor_pos(
- const MENU *menu,
- const ITEM *item,
- int *pY,
+ const MENU *menu,
+ const ITEM *item,
+ int *pY,
int *pX)
{ return(*(int *)0); }
@@ -88,14 +88,14 @@ int pos_menu_cursor(
#undef _nc_Match_Next_Character_In_Item_Name
int _nc_Match_Next_Character_In_Item_Name(
- MENU *menu,
- int ch,
+ MENU *menu,
+ int ch,
ITEM **item)
{ return(*(int *)0); }
#undef menu_driver
int menu_driver(
- MENU *menu,
+ MENU *menu,
int c)
{ return(*(int *)0); }
@@ -103,15 +103,15 @@ int menu_driver(
#undef set_menu_format
int set_menu_format(
- MENU *menu,
- int rows,
+ MENU *menu,
+ int rows,
int cols)
{ return(*(int *)0); }
#undef menu_format
void menu_format(
- const MENU *menu,
- int *rows,
+ const MENU *menu,
+ int *rows,
int *cols)
{ /* void */ }
@@ -124,7 +124,7 @@ ITEM _nc_Default_Item;
#undef _nc_Connect_Items
NCURSES_BOOL _nc_Connect_Items(
- MENU *menu,
+ MENU *menu,
ITEM **items)
{ return(*(NCURSES_BOOL *)0); }
@@ -155,8 +155,8 @@ void _nc_Show_Menu(
#undef _nc_New_TopRow_and_CurrentItem
void _nc_New_TopRow_and_CurrentItem(
- MENU *menu,
- int new_toprow,
+ MENU *menu,
+ int new_toprow,
ITEM *new_current_item)
{ /* void */ }
@@ -164,7 +164,7 @@ void _nc_New_TopRow_and_CurrentItem(
#undef set_menu_init
int set_menu_init(
- MENU *menu,
+ MENU *menu,
Menu_Hook func)
{ return(*(int *)0); }
@@ -175,7 +175,7 @@ Menu_Hook menu_init(
#undef set_menu_term
int set_menu_term(
- MENU *menu,
+ MENU *menu,
Menu_Hook func)
{ return(*(int *)0); }
@@ -186,7 +186,7 @@ Menu_Hook menu_term(
#undef set_item_init
int set_item_init(
- MENU *menu,
+ MENU *menu,
Menu_Hook func)
{ return(*(int *)0); }
@@ -197,7 +197,7 @@ Menu_Hook item_init(
#undef set_item_term
int set_item_term(
- MENU *menu,
+ MENU *menu,
Menu_Hook func)
{ return(*(int *)0); }
@@ -210,7 +210,7 @@ Menu_Hook item_term(
#undef set_current_item
int set_current_item(
- MENU *menu,
+ MENU *menu,
ITEM *item)
{ return(*(int *)0); }
@@ -240,7 +240,7 @@ const char *item_description(
#undef new_item
ITEM *new_item(
- const char *name,
+ const char *name,
const char *description)
{ return(*(ITEM **)0); }
@@ -251,7 +251,7 @@ int free_item(
#undef set_menu_mark
int set_menu_mark(
- MENU *menu,
+ MENU *menu,
const char *mark)
{ return(*(int *)0); }
@@ -264,19 +264,19 @@ const char *menu_mark(
#undef set_item_opts
int set_item_opts(
- ITEM *item,
+ ITEM *item,
Item_Options opts)
{ return(*(int *)0); }
#undef item_opts_off
int item_opts_off(
- ITEM *item,
+ ITEM *item,
Item_Options opts)
{ return(*(int *)0); }
#undef item_opts_on
int item_opts_on(
- ITEM *item,
+ ITEM *item,
Item_Options opts)
{ return(*(int *)0); }
@@ -289,7 +289,7 @@ Item_Options item_opts(
#undef set_top_row
int set_top_row(
- MENU *menu,
+ MENU *menu,
int row)
{ return(*(int *)0); }
@@ -302,7 +302,7 @@ int top_row(
#undef set_item_userptr
int set_item_userptr(
- ITEM *item,
+ ITEM *item,
void *userptr)
{ return(*(int *)0); }
@@ -315,7 +315,7 @@ void *item_userptr(
#undef set_item_value
int set_item_value(
- ITEM *item,
+ ITEM *item,
NCURSES_BOOL value)
{ return(*(int *)0); }
@@ -335,7 +335,7 @@ NCURSES_BOOL item_visible(
#undef set_menu_items
int set_menu_items(
- MENU *menu,
+ MENU *menu,
ITEM **items)
{ return(*(int *)0); }
@@ -353,7 +353,7 @@ int item_count(
#undef new_menu_sp
MENU *new_menu_sp(
- SCREEN *sp,
+ SCREEN *sp,
ITEM **items)
{ return(*(MENU **)0); }
@@ -371,19 +371,19 @@ int free_menu(
#undef set_menu_opts
int set_menu_opts(
- MENU *menu,
+ MENU *menu,
Menu_Options opts)
{ return(*(int *)0); }
#undef menu_opts_off
int menu_opts_off(
- MENU *menu,
+ MENU *menu,
Menu_Options opts)
{ return(*(int *)0); }
#undef menu_opts_on
int menu_opts_on(
- MENU *menu,
+ MENU *menu,
Menu_Options opts)
{ return(*(int *)0); }
@@ -396,7 +396,7 @@ Menu_Options menu_opts(
#undef set_menu_pad
int set_menu_pad(
- MENU *menu,
+ MENU *menu,
int pad)
{ return(*(int *)0); }
@@ -414,7 +414,7 @@ char *menu_pattern(
#undef set_menu_pattern
int set_menu_pattern(
- MENU *menu,
+ MENU *menu,
const char *p)
{ return(*(int *)0); }
@@ -422,7 +422,7 @@ int set_menu_pattern(
#undef _nc_Post_Item
void _nc_Post_Item(
- const MENU *menu,
+ const MENU *menu,
const ITEM *item)
{ /* void */ }
@@ -457,8 +457,8 @@ int menu_request_by_name(
#undef scale_menu
int scale_menu(
- const MENU *menu,
- int *rows,
+ const MENU *menu,
+ int *rows,
int *cols)
{ return(*(int *)0); }
@@ -466,17 +466,17 @@ int scale_menu(
#undef set_menu_spacing
int set_menu_spacing(
- MENU *menu,
- int s_desc,
- int s_row,
+ MENU *menu,
+ int s_desc,
+ int s_row,
int s_col)
{ return(*(int *)0); }
#undef menu_spacing
int menu_spacing(
- const MENU *menu,
- int *s_desc,
- int *s_row,
+ const MENU *menu,
+ int *s_desc,
+ int *s_row,
int *s_col)
{ return(*(int *)0); }
@@ -484,7 +484,7 @@ int menu_spacing(
#undef set_menu_sub
int set_menu_sub(
- MENU *menu,
+ MENU *menu,
WINDOW *win)
{ return(*(int *)0); }
@@ -529,7 +529,7 @@ Menu_Options _nc_retrace_menu_opts(
#undef set_menu_userptr
int set_menu_userptr(
- MENU *menu,
+ MENU *menu,
void *userptr)
{ return(*(int *)0); }
@@ -542,7 +542,7 @@ void *menu_userptr(
#undef set_menu_win
int set_menu_win(
- MENU *menu,
+ MENU *menu,
WINDOW *win)
{ return(*(int *)0); }
diff --git a/menu/llib-lmenut b/menu/llib-lmenut
index 1d348c09d2bb..0a0d05947222 100644
--- a/menu/llib-lmenut
+++ b/menu/llib-lmenut
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 2010,2015 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -38,7 +38,7 @@
#undef set_menu_fore
int set_menu_fore(
- MENU *menu,
+ MENU *menu,
chtype attr)
{ return(*(int *)0); }
@@ -49,7 +49,7 @@ chtype menu_fore(
#undef set_menu_back
int set_menu_back(
- MENU *menu,
+ MENU *menu,
chtype attr)
{ return(*(int *)0); }
@@ -60,7 +60,7 @@ chtype menu_back(
#undef set_menu_grey
int set_menu_grey(
- MENU *menu,
+ MENU *menu,
chtype attr)
{ return(*(int *)0); }
@@ -73,9 +73,9 @@ chtype menu_grey(
#undef _nc_menu_cursor_pos
int _nc_menu_cursor_pos(
- const MENU *menu,
- const ITEM *item,
- int *pY,
+ const MENU *menu,
+ const ITEM *item,
+ int *pY,
int *pX)
{ return(*(int *)0); }
@@ -88,14 +88,14 @@ int pos_menu_cursor(
#undef _nc_Match_Next_Character_In_Item_Name
int _nc_Match_Next_Character_In_Item_Name(
- MENU *menu,
- int ch,
+ MENU *menu,
+ int ch,
ITEM **item)
{ return(*(int *)0); }
#undef menu_driver
int menu_driver(
- MENU *menu,
+ MENU *menu,
int c)
{ return(*(int *)0); }
@@ -103,15 +103,15 @@ int menu_driver(
#undef set_menu_format
int set_menu_format(
- MENU *menu,
- int rows,
+ MENU *menu,
+ int rows,
int cols)
{ return(*(int *)0); }
#undef menu_format
void menu_format(
- const MENU *menu,
- int *rows,
+ const MENU *menu,
+ int *rows,
int *cols)
{ /* void */ }
@@ -124,7 +124,7 @@ ITEM _nc_Default_Item;
#undef _nc_Connect_Items
NCURSES_BOOL _nc_Connect_Items(
- MENU *menu,
+ MENU *menu,
ITEM **items)
{ return(*(NCURSES_BOOL *)0); }
@@ -155,8 +155,8 @@ void _nc_Show_Menu(
#undef _nc_New_TopRow_and_CurrentItem
void _nc_New_TopRow_and_CurrentItem(
- MENU *menu,
- int new_toprow,
+ MENU *menu,
+ int new_toprow,
ITEM *new_current_item)
{ /* void */ }
@@ -164,7 +164,7 @@ void _nc_New_TopRow_and_CurrentItem(
#undef set_menu_init
int set_menu_init(
- MENU *menu,
+ MENU *menu,
Menu_Hook func)
{ return(*(int *)0); }
@@ -175,7 +175,7 @@ Menu_Hook menu_init(
#undef set_menu_term
int set_menu_term(
- MENU *menu,
+ MENU *menu,
Menu_Hook func)
{ return(*(int *)0); }
@@ -186,7 +186,7 @@ Menu_Hook menu_term(
#undef set_item_init
int set_item_init(
- MENU *menu,
+ MENU *menu,
Menu_Hook func)
{ return(*(int *)0); }
@@ -197,7 +197,7 @@ Menu_Hook item_init(
#undef set_item_term
int set_item_term(
- MENU *menu,
+ MENU *menu,
Menu_Hook func)
{ return(*(int *)0); }
@@ -210,7 +210,7 @@ Menu_Hook item_term(
#undef set_current_item
int set_current_item(
- MENU *menu,
+ MENU *menu,
ITEM *item)
{ return(*(int *)0); }
@@ -240,7 +240,7 @@ const char *item_description(
#undef new_item
ITEM *new_item(
- const char *name,
+ const char *name,
const char *description)
{ return(*(ITEM **)0); }
@@ -251,7 +251,7 @@ int free_item(
#undef set_menu_mark
int set_menu_mark(
- MENU *menu,
+ MENU *menu,
const char *mark)
{ return(*(int *)0); }
@@ -264,19 +264,19 @@ const char *menu_mark(
#undef set_item_opts
int set_item_opts(
- ITEM *item,
+ ITEM *item,
Item_Options opts)
{ return(*(int *)0); }
#undef item_opts_off
int item_opts_off(
- ITEM *item,
+ ITEM *item,
Item_Options opts)
{ return(*(int *)0); }
#undef item_opts_on
int item_opts_on(
- ITEM *item,
+ ITEM *item,
Item_Options opts)
{ return(*(int *)0); }
@@ -289,7 +289,7 @@ Item_Options item_opts(
#undef set_top_row
int set_top_row(
- MENU *menu,
+ MENU *menu,
int row)
{ return(*(int *)0); }
@@ -302,7 +302,7 @@ int top_row(
#undef set_item_userptr
int set_item_userptr(
- ITEM *item,
+ ITEM *item,
void *userptr)
{ return(*(int *)0); }
@@ -315,7 +315,7 @@ void *item_userptr(
#undef set_item_value
int set_item_value(
- ITEM *item,
+ ITEM *item,
NCURSES_BOOL value)
{ return(*(int *)0); }
@@ -335,7 +335,7 @@ NCURSES_BOOL item_visible(
#undef set_menu_items
int set_menu_items(
- MENU *menu,
+ MENU *menu,
ITEM **items)
{ return(*(int *)0); }
@@ -353,7 +353,7 @@ int item_count(
#undef new_menu_sp
MENU *new_menu_sp(
- SCREEN *sp,
+ SCREEN *sp,
ITEM **items)
{ return(*(MENU **)0); }
@@ -371,19 +371,19 @@ int free_menu(
#undef set_menu_opts
int set_menu_opts(
- MENU *menu,
+ MENU *menu,
Menu_Options opts)
{ return(*(int *)0); }
#undef menu_opts_off
int menu_opts_off(
- MENU *menu,
+ MENU *menu,
Menu_Options opts)
{ return(*(int *)0); }
#undef menu_opts_on
int menu_opts_on(
- MENU *menu,
+ MENU *menu,
Menu_Options opts)
{ return(*(int *)0); }
@@ -396,7 +396,7 @@ Menu_Options menu_opts(
#undef set_menu_pad
int set_menu_pad(
- MENU *menu,
+ MENU *menu,
int pad)
{ return(*(int *)0); }
@@ -414,7 +414,7 @@ char *menu_pattern(
#undef set_menu_pattern
int set_menu_pattern(
- MENU *menu,
+ MENU *menu,
const char *p)
{ return(*(int *)0); }
@@ -422,7 +422,7 @@ int set_menu_pattern(
#undef _nc_Post_Item
void _nc_Post_Item(
- const MENU *menu,
+ const MENU *menu,
const ITEM *item)
{ /* void */ }
@@ -457,8 +457,8 @@ int menu_request_by_name(
#undef scale_menu
int scale_menu(
- const MENU *menu,
- int *rows,
+ const MENU *menu,
+ int *rows,
int *cols)
{ return(*(int *)0); }
@@ -466,17 +466,17 @@ int scale_menu(
#undef set_menu_spacing
int set_menu_spacing(
- MENU *menu,
- int s_desc,
- int s_row,
+ MENU *menu,
+ int s_desc,
+ int s_row,
int s_col)
{ return(*(int *)0); }
#undef menu_spacing
int menu_spacing(
- const MENU *menu,
- int *s_desc,
- int *s_row,
+ const MENU *menu,
+ int *s_desc,
+ int *s_row,
int *s_col)
{ return(*(int *)0); }
@@ -484,7 +484,7 @@ int menu_spacing(
#undef set_menu_sub
int set_menu_sub(
- MENU *menu,
+ MENU *menu,
WINDOW *win)
{ return(*(int *)0); }
@@ -529,7 +529,7 @@ Menu_Options _nc_retrace_menu_opts(
#undef set_menu_userptr
int set_menu_userptr(
- MENU *menu,
+ MENU *menu,
void *userptr)
{ return(*(int *)0); }
@@ -542,7 +542,7 @@ void *menu_userptr(
#undef set_menu_win
int set_menu_win(
- MENU *menu,
+ MENU *menu,
WINDOW *win)
{ return(*(int *)0); }
diff --git a/menu/llib-lmenutw b/menu/llib-lmenutw
index 1d348c09d2bb..0a0d05947222 100644
--- a/menu/llib-lmenutw
+++ b/menu/llib-lmenutw
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 2010,2015 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -38,7 +38,7 @@
#undef set_menu_fore
int set_menu_fore(
- MENU *menu,
+ MENU *menu,
chtype attr)
{ return(*(int *)0); }
@@ -49,7 +49,7 @@ chtype menu_fore(
#undef set_menu_back
int set_menu_back(
- MENU *menu,
+ MENU *menu,
chtype attr)
{ return(*(int *)0); }
@@ -60,7 +60,7 @@ chtype menu_back(
#undef set_menu_grey
int set_menu_grey(
- MENU *menu,
+ MENU *menu,
chtype attr)
{ return(*(int *)0); }
@@ -73,9 +73,9 @@ chtype menu_grey(
#undef _nc_menu_cursor_pos
int _nc_menu_cursor_pos(
- const MENU *menu,
- const ITEM *item,
- int *pY,
+ const MENU *menu,
+ const ITEM *item,
+ int *pY,
int *pX)
{ return(*(int *)0); }
@@ -88,14 +88,14 @@ int pos_menu_cursor(
#undef _nc_Match_Next_Character_In_Item_Name
int _nc_Match_Next_Character_In_Item_Name(
- MENU *menu,
- int ch,
+ MENU *menu,
+ int ch,
ITEM **item)
{ return(*(int *)0); }
#undef menu_driver
int menu_driver(
- MENU *menu,
+ MENU *menu,
int c)
{ return(*(int *)0); }
@@ -103,15 +103,15 @@ int menu_driver(
#undef set_menu_format
int set_menu_format(
- MENU *menu,
- int rows,
+ MENU *menu,
+ int rows,
int cols)
{ return(*(int *)0); }
#undef menu_format
void menu_format(
- const MENU *menu,
- int *rows,
+ const MENU *menu,
+ int *rows,
int *cols)
{ /* void */ }
@@ -124,7 +124,7 @@ ITEM _nc_Default_Item;
#undef _nc_Connect_Items
NCURSES_BOOL _nc_Connect_Items(
- MENU *menu,
+ MENU *menu,
ITEM **items)
{ return(*(NCURSES_BOOL *)0); }
@@ -155,8 +155,8 @@ void _nc_Show_Menu(
#undef _nc_New_TopRow_and_CurrentItem
void _nc_New_TopRow_and_CurrentItem(
- MENU *menu,
- int new_toprow,
+ MENU *menu,
+ int new_toprow,
ITEM *new_current_item)
{ /* void */ }
@@ -164,7 +164,7 @@ void _nc_New_TopRow_and_CurrentItem(
#undef set_menu_init
int set_menu_init(
- MENU *menu,
+ MENU *menu,
Menu_Hook func)
{ return(*(int *)0); }
@@ -175,7 +175,7 @@ Menu_Hook menu_init(
#undef set_menu_term
int set_menu_term(
- MENU *menu,
+ MENU *menu,
Menu_Hook func)
{ return(*(int *)0); }
@@ -186,7 +186,7 @@ Menu_Hook menu_term(
#undef set_item_init
int set_item_init(
- MENU *menu,
+ MENU *menu,
Menu_Hook func)
{ return(*(int *)0); }
@@ -197,7 +197,7 @@ Menu_Hook item_init(
#undef set_item_term
int set_item_term(
- MENU *menu,
+ MENU *menu,
Menu_Hook func)
{ return(*(int *)0); }
@@ -210,7 +210,7 @@ Menu_Hook item_term(
#undef set_current_item
int set_current_item(
- MENU *menu,
+ MENU *menu,
ITEM *item)
{ return(*(int *)0); }
@@ -240,7 +240,7 @@ const char *item_description(
#undef new_item
ITEM *new_item(
- const char *name,
+ const char *name,
const char *description)
{ return(*(ITEM **)0); }
@@ -251,7 +251,7 @@ int free_item(
#undef set_menu_mark
int set_menu_mark(
- MENU *menu,
+ MENU *menu,
const char *mark)
{ return(*(int *)0); }
@@ -264,19 +264,19 @@ const char *menu_mark(
#undef set_item_opts
int set_item_opts(
- ITEM *item,
+ ITEM *item,
Item_Options opts)
{ return(*(int *)0); }
#undef item_opts_off
int item_opts_off(
- ITEM *item,
+ ITEM *item,
Item_Options opts)
{ return(*(int *)0); }
#undef item_opts_on
int item_opts_on(
- ITEM *item,
+ ITEM *item,
Item_Options opts)
{ return(*(int *)0); }
@@ -289,7 +289,7 @@ Item_Options item_opts(
#undef set_top_row
int set_top_row(
- MENU *menu,
+ MENU *menu,
int row)
{ return(*(int *)0); }
@@ -302,7 +302,7 @@ int top_row(
#undef set_item_userptr
int set_item_userptr(
- ITEM *item,
+ ITEM *item,
void *userptr)
{ return(*(int *)0); }
@@ -315,7 +315,7 @@ void *item_userptr(
#undef set_item_value
int set_item_value(
- ITEM *item,
+ ITEM *item,
NCURSES_BOOL value)
{ return(*(int *)0); }
@@ -335,7 +335,7 @@ NCURSES_BOOL item_visible(
#undef set_menu_items
int set_menu_items(
- MENU *menu,
+ MENU *menu,
ITEM **items)
{ return(*(int *)0); }
@@ -353,7 +353,7 @@ int item_count(
#undef new_menu_sp
MENU *new_menu_sp(
- SCREEN *sp,
+ SCREEN *sp,
ITEM **items)
{ return(*(MENU **)0); }
@@ -371,19 +371,19 @@ int free_menu(
#undef set_menu_opts
int set_menu_opts(
- MENU *menu,
+ MENU *menu,
Menu_Options opts)
{ return(*(int *)0); }
#undef menu_opts_off
int menu_opts_off(
- MENU *menu,
+ MENU *menu,
Menu_Options opts)
{ return(*(int *)0); }
#undef menu_opts_on
int menu_opts_on(
- MENU *menu,
+ MENU *menu,
Menu_Options opts)
{ return(*(int *)0); }
@@ -396,7 +396,7 @@ Menu_Options menu_opts(
#undef set_menu_pad
int set_menu_pad(
- MENU *menu,
+ MENU *menu,
int pad)
{ return(*(int *)0); }
@@ -414,7 +414,7 @@ char *menu_pattern(
#undef set_menu_pattern
int set_menu_pattern(
- MENU *menu,
+ MENU *menu,
const char *p)
{ return(*(int *)0); }
@@ -422,7 +422,7 @@ int set_menu_pattern(
#undef _nc_Post_Item
void _nc_Post_Item(
- const MENU *menu,
+ const MENU *menu,
const ITEM *item)
{ /* void */ }
@@ -457,8 +457,8 @@ int menu_request_by_name(
#undef scale_menu
int scale_menu(
- const MENU *menu,
- int *rows,
+ const MENU *menu,
+ int *rows,
int *cols)
{ return(*(int *)0); }
@@ -466,17 +466,17 @@ int scale_menu(
#undef set_menu_spacing
int set_menu_spacing(
- MENU *menu,
- int s_desc,
- int s_row,
+ MENU *menu,
+ int s_desc,
+ int s_row,
int s_col)
{ return(*(int *)0); }
#undef menu_spacing
int menu_spacing(
- const MENU *menu,
- int *s_desc,
- int *s_row,
+ const MENU *menu,
+ int *s_desc,
+ int *s_row,
int *s_col)
{ return(*(int *)0); }
@@ -484,7 +484,7 @@ int menu_spacing(
#undef set_menu_sub
int set_menu_sub(
- MENU *menu,
+ MENU *menu,
WINDOW *win)
{ return(*(int *)0); }
@@ -529,7 +529,7 @@ Menu_Options _nc_retrace_menu_opts(
#undef set_menu_userptr
int set_menu_userptr(
- MENU *menu,
+ MENU *menu,
void *userptr)
{ return(*(int *)0); }
@@ -542,7 +542,7 @@ void *menu_userptr(
#undef set_menu_win
int set_menu_win(
- MENU *menu,
+ MENU *menu,
WINDOW *win)
{ return(*(int *)0); }
diff --git a/menu/llib-lmenuw b/menu/llib-lmenuw
index 6ad96140a5b0..d5566d489696 100644
--- a/menu/llib-lmenuw
+++ b/menu/llib-lmenuw
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 2002-2010,2015 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -38,7 +38,7 @@
#undef set_menu_fore
int set_menu_fore(
- MENU *menu,
+ MENU *menu,
chtype attr)
{ return(*(int *)0); }
@@ -49,7 +49,7 @@ chtype menu_fore(
#undef set_menu_back
int set_menu_back(
- MENU *menu,
+ MENU *menu,
chtype attr)
{ return(*(int *)0); }
@@ -60,7 +60,7 @@ chtype menu_back(
#undef set_menu_grey
int set_menu_grey(
- MENU *menu,
+ MENU *menu,
chtype attr)
{ return(*(int *)0); }
@@ -73,9 +73,9 @@ chtype menu_grey(
#undef _nc_menu_cursor_pos
int _nc_menu_cursor_pos(
- const MENU *menu,
- const ITEM *item,
- int *pY,
+ const MENU *menu,
+ const ITEM *item,
+ int *pY,
int *pX)
{ return(*(int *)0); }
@@ -88,14 +88,14 @@ int pos_menu_cursor(
#undef _nc_Match_Next_Character_In_Item_Name
int _nc_Match_Next_Character_In_Item_Name(
- MENU *menu,
- int ch,
+ MENU *menu,
+ int ch,
ITEM **item)
{ return(*(int *)0); }
#undef menu_driver
int menu_driver(
- MENU *menu,
+ MENU *menu,
int c)
{ return(*(int *)0); }
@@ -103,15 +103,15 @@ int menu_driver(
#undef set_menu_format
int set_menu_format(
- MENU *menu,
- int rows,
+ MENU *menu,
+ int rows,
int cols)
{ return(*(int *)0); }
#undef menu_format
void menu_format(
- const MENU *menu,
- int *rows,
+ const MENU *menu,
+ int *rows,
int *cols)
{ /* void */ }
@@ -124,7 +124,7 @@ ITEM _nc_Default_Item;
#undef _nc_Connect_Items
NCURSES_BOOL _nc_Connect_Items(
- MENU *menu,
+ MENU *menu,
ITEM **items)
{ return(*(NCURSES_BOOL *)0); }
@@ -155,8 +155,8 @@ void _nc_Show_Menu(
#undef _nc_New_TopRow_and_CurrentItem
void _nc_New_TopRow_and_CurrentItem(
- MENU *menu,
- int new_toprow,
+ MENU *menu,
+ int new_toprow,
ITEM *new_current_item)
{ /* void */ }
@@ -164,7 +164,7 @@ void _nc_New_TopRow_and_CurrentItem(
#undef set_menu_init
int set_menu_init(
- MENU *menu,
+ MENU *menu,
Menu_Hook func)
{ return(*(int *)0); }
@@ -175,7 +175,7 @@ Menu_Hook menu_init(
#undef set_menu_term
int set_menu_term(
- MENU *menu,
+ MENU *menu,
Menu_Hook func)
{ return(*(int *)0); }
@@ -186,7 +186,7 @@ Menu_Hook menu_term(
#undef set_item_init
int set_item_init(
- MENU *menu,
+ MENU *menu,
Menu_Hook func)
{ return(*(int *)0); }
@@ -197,7 +197,7 @@ Menu_Hook item_init(
#undef set_item_term
int set_item_term(
- MENU *menu,
+ MENU *menu,
Menu_Hook func)
{ return(*(int *)0); }
@@ -210,7 +210,7 @@ Menu_Hook item_term(
#undef set_current_item
int set_current_item(
- MENU *menu,
+ MENU *menu,
ITEM *item)
{ return(*(int *)0); }
@@ -240,7 +240,7 @@ const char *item_description(
#undef new_item
ITEM *new_item(
- const char *name,
+ const char *name,
const char *description)
{ return(*(ITEM **)0); }
@@ -251,7 +251,7 @@ int free_item(
#undef set_menu_mark
int set_menu_mark(
- MENU *menu,
+ MENU *menu,
const char *mark)
{ return(*(int *)0); }
@@ -264,19 +264,19 @@ const char *menu_mark(
#undef set_item_opts
int set_item_opts(
- ITEM *item,
+ ITEM *item,
Item_Options opts)
{ return(*(int *)0); }
#undef item_opts_off
int item_opts_off(
- ITEM *item,
+ ITEM *item,
Item_Options opts)
{ return(*(int *)0); }
#undef item_opts_on
int item_opts_on(
- ITEM *item,
+ ITEM *item,
Item_Options opts)
{ return(*(int *)0); }
@@ -289,7 +289,7 @@ Item_Options item_opts(
#undef set_top_row
int set_top_row(
- MENU *menu,
+ MENU *menu,
int row)
{ return(*(int *)0); }
@@ -302,7 +302,7 @@ int top_row(
#undef set_item_userptr
int set_item_userptr(
- ITEM *item,
+ ITEM *item,
void *userptr)
{ return(*(int *)0); }
@@ -315,7 +315,7 @@ void *item_userptr(
#undef set_item_value
int set_item_value(
- ITEM *item,
+ ITEM *item,
NCURSES_BOOL value)
{ return(*(int *)0); }
@@ -335,7 +335,7 @@ NCURSES_BOOL item_visible(
#undef set_menu_items
int set_menu_items(
- MENU *menu,
+ MENU *menu,
ITEM **items)
{ return(*(int *)0); }
@@ -353,7 +353,7 @@ int item_count(
#undef new_menu_sp
MENU *new_menu_sp(
- SCREEN *sp,
+ SCREEN *sp,
ITEM **items)
{ return(*(MENU **)0); }
@@ -371,19 +371,19 @@ int free_menu(
#undef set_menu_opts
int set_menu_opts(
- MENU *menu,
+ MENU *menu,
Menu_Options opts)
{ return(*(int *)0); }
#undef menu_opts_off
int menu_opts_off(
- MENU *menu,
+ MENU *menu,
Menu_Options opts)
{ return(*(int *)0); }
#undef menu_opts_on
int menu_opts_on(
- MENU *menu,
+ MENU *menu,
Menu_Options opts)
{ return(*(int *)0); }
@@ -396,7 +396,7 @@ Menu_Options menu_opts(
#undef set_menu_pad
int set_menu_pad(
- MENU *menu,
+ MENU *menu,
int pad)
{ return(*(int *)0); }
@@ -414,7 +414,7 @@ char *menu_pattern(
#undef set_menu_pattern
int set_menu_pattern(
- MENU *menu,
+ MENU *menu,
const char *p)
{ return(*(int *)0); }
@@ -422,7 +422,7 @@ int set_menu_pattern(
#undef _nc_Post_Item
void _nc_Post_Item(
- const MENU *menu,
+ const MENU *menu,
const ITEM *item)
{ /* void */ }
@@ -457,8 +457,8 @@ int menu_request_by_name(
#undef scale_menu
int scale_menu(
- const MENU *menu,
- int *rows,
+ const MENU *menu,
+ int *rows,
int *cols)
{ return(*(int *)0); }
@@ -466,17 +466,17 @@ int scale_menu(
#undef set_menu_spacing
int set_menu_spacing(
- MENU *menu,
- int s_desc,
- int s_row,
+ MENU *menu,
+ int s_desc,
+ int s_row,
int s_col)
{ return(*(int *)0); }
#undef menu_spacing
int menu_spacing(
- const MENU *menu,
- int *s_desc,
- int *s_row,
+ const MENU *menu,
+ int *s_desc,
+ int *s_row,
int *s_col)
{ return(*(int *)0); }
@@ -484,7 +484,7 @@ int menu_spacing(
#undef set_menu_sub
int set_menu_sub(
- MENU *menu,
+ MENU *menu,
WINDOW *win)
{ return(*(int *)0); }
@@ -529,7 +529,7 @@ Menu_Options _nc_retrace_menu_opts(
#undef set_menu_userptr
int set_menu_userptr(
- MENU *menu,
+ MENU *menu,
void *userptr)
{ return(*(int *)0); }
@@ -542,7 +542,7 @@ void *menu_userptr(
#undef set_menu_win
int set_menu_win(
- MENU *menu,
+ MENU *menu,
WINDOW *win)
{ return(*(int *)0); }
diff --git a/menu/m_attribs.c b/menu/m_attribs.c
index 5cd94d342475..a9275d08049e 100644
--- a/menu/m_attribs.c
+++ b/menu/m_attribs.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2010,2012 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -38,7 +38,7 @@
#include "menu.priv.h"
-MODULE_ID("$Id: m_attribs.c,v 1.19 2020/07/04 19:44:58 tom Exp $")
+MODULE_ID("$Id: m_attribs.c,v 1.20 2021/06/17 21:20:30 tom Exp $")
/* Macro to redraw menu if it is posted and changed */
#define Refresh_Menu(menu) \
@@ -73,69 +73,69 @@ MENU_EXPORT(chtype) NCURSES_API menu_ ## name (const MENU * menu)\
}
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : int set_menu_fore(MENU *menu, chtype attr)
-|
+|
| Description : Set the attribute for selectable items. In single-
| valued menus this is used to highlight the current
| item ((i.e. where the cursor is), in multi-valued
| menus this is used to highlight the selected items.
|
| Return Values : E_OK - success
-| E_BAD_ARGUMENT - an invalid value has been passed
+| E_BAD_ARGUMENT - an invalid value has been passed
+--------------------------------------------------------------------------*/
GEN_MENU_ATTR_SET_FCT(fore)
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : chtype menu_fore(const MENU* menu)
-|
+|
| Description : Return the attribute used for selectable items that
| are current (single-valued menu) or selected (multi-
-| valued menu).
+| valued menu).
|
| Return Values : Attribute value
+--------------------------------------------------------------------------*/
GEN_MENU_ATTR_GET_FCT(fore)
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : int set_menu_back(MENU *menu, chtype attr)
-|
+|
| Description : Set the attribute for selectable but not yet selected
| items.
|
-| Return Values : E_OK - success
+| Return Values : E_OK - success
| E_BAD_ARGUMENT - an invalid value has been passed
+--------------------------------------------------------------------------*/
GEN_MENU_ATTR_SET_FCT(back)
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : chtype menu_back(const MENU *menu)
-|
+|
| Description : Return the attribute used for selectable but not yet
-| selected items.
+| selected items.
|
| Return Values : Attribute value
+--------------------------------------------------------------------------*/
GEN_MENU_ATTR_GET_FCT(back)
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : int set_menu_grey(MENU *menu, chtype attr)
-|
+|
| Description : Set the attribute for unselectable items.
|
| Return Values : E_OK - success
-| E_BAD_ARGUMENT - an invalid value has been passed
+| E_BAD_ARGUMENT - an invalid value has been passed
+--------------------------------------------------------------------------*/
GEN_MENU_ATTR_SET_FCT(grey)
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : chtype menu_grey(const MENU *menu)
-|
+|
| Description : Return the attribute used for non-selectable items
|
| Return Values : Attribute value
diff --git a/menu/m_cursor.c b/menu/m_cursor.c
index 8cf15ce51335..b9b301d3eb90 100644
--- a/menu/m_cursor.c
+++ b/menu/m_cursor.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2009,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -38,7 +38,7 @@
#include "menu.priv.h"
-MODULE_ID("$Id: m_cursor.c,v 1.25 2020/12/12 00:38:02 tom Exp $")
+MODULE_ID("$Id: m_cursor.c,v 1.26 2021/03/27 23:46:29 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnmenu
@@ -83,7 +83,6 @@ _nc_menu_cursor_pos(const MENU *menu, const ITEM *item, int *pY, int *pX)
MENU_EXPORT(int)
pos_menu_cursor(const MENU *menu)
{
- WINDOW *win, *sub;
int x = 0, y = 0;
int err = _nc_menu_cursor_pos(menu, (ITEM *)0, &y, &x);
@@ -91,8 +90,9 @@ pos_menu_cursor(const MENU *menu)
if (E_OK == err)
{
- win = Get_Menu_UserWin(menu);
- sub = menu->usersub ? menu->usersub : win;
+ WINDOW *win = Get_Menu_UserWin(menu);
+ WINDOW *sub = menu->usersub ? menu->usersub : win;
+
assert(win && sub);
if ((menu->opt & O_SHOWMATCH) && (menu->pindex > 0))
diff --git a/menu/m_driver.c b/menu/m_driver.c
index b1d7c3541b53..cf2ef2fe05c6 100644
--- a/menu/m_driver.c
+++ b/menu/m_driver.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2012,2016 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -38,7 +38,7 @@
#include "menu.priv.h"
-MODULE_ID("$Id: m_driver.c,v 1.36 2020/12/12 00:38:02 tom Exp $")
+MODULE_ID("$Id: m_driver.c,v 1.37 2021/03/27 23:46:29 tom Exp $")
/* Macros */
@@ -220,7 +220,7 @@ menu_driver(MENU *menu, int c)
int result = E_OK;
ITEM *item;
- int my_top_row, rdiff;
+ int my_top_row;
T((T_CALLED("menu_driver(%p,%d)"), (void *)menu, c));
@@ -239,6 +239,8 @@ menu_driver(MENU *menu, int c)
if ((c > KEY_MAX) && (c <= MAX_MENU_COMMAND))
{
+ int rdiff;
+
if (!((c == REQ_BACK_PATTERN)
|| (c == REQ_NEXT_MATCH) || (c == REQ_PREV_MATCH)))
{
@@ -489,16 +491,20 @@ menu_driver(MENU *menu, int c)
}
else if (wenclose(sub, event.y, event.x))
{ /* Inside the area we try to find the hit item */
- int i, x, y, err;
+ int x, y;
ry = event.y;
rx = event.x;
if (wmouse_trafo(sub, &ry, &rx, FALSE))
{
+ int i;
+
for (i = 0; i < menu->nitems; i++)
{
- err = _nc_menu_cursor_pos(menu, menu->items[i],
- &y, &x);
+ int err = _nc_menu_cursor_pos(menu,
+ menu->items[i],
+ &y, &x);
+
if (E_OK == err)
{
if ((ry == y) &&
diff --git a/menu/m_format.c b/menu/m_format.c
index 848de0b21118..65adfc6bfcb0 100644
--- a/menu/m_format.c
+++ b/menu/m_format.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2010,2012 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -38,7 +38,7 @@
#include "menu.priv.h"
-MODULE_ID("$Id: m_format.c,v 1.21 2020/12/12 00:38:02 tom Exp $")
+MODULE_ID("$Id: m_format.c,v 1.22 2021/03/27 23:46:29 tom Exp $")
#define minimum(a,b) ((a)<(b) ? (a): (b))
@@ -59,7 +59,6 @@ MODULE_ID("$Id: m_format.c,v 1.21 2020/12/12 00:38:02 tom Exp $")
MENU_EXPORT(int)
set_menu_format(MENU *menu, int rows, int cols)
{
- int total_rows, total_cols;
T((T_CALLED("set_menu_format(%p,%d,%d)"), (void *)menu, rows, cols));
@@ -68,6 +67,8 @@ set_menu_format(MENU *menu, int rows, int cols)
if (menu)
{
+ int total_rows, total_cols;
+
if (menu->status & _POSTED)
RETURN(E_POSTED);
diff --git a/menu/m_global.c b/menu/m_global.c
index 2e5211468a86..4bc8ef8fc8c1 100644
--- a/menu/m_global.c
+++ b/menu/m_global.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020-2021,2023 Thomas E. Dickey *
* Copyright 1998-2012,2014 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -38,7 +38,7 @@
#include "menu.priv.h"
-MODULE_ID("$Id: m_global.c,v 1.32 2020/12/12 00:38:02 tom Exp $")
+MODULE_ID("$Id: m_global.c,v 1.34 2023/09/16 16:39:26 tom Exp $")
static char mark[] = "-";
/* *INDENT-OFF* */
@@ -113,12 +113,12 @@ ComputeMaximum_NameDesc_Lengths(MENU *menu)
unsigned MaximumNameLength = 0;
unsigned MaximumDescriptionLength = 0;
ITEM **items;
- unsigned check;
assert(menu && menu->items);
for (items = menu->items; *items; items++)
{
- check = (unsigned)_nc_Calculate_Text_Width(&((*items)->name));
+ unsigned check = (unsigned)_nc_Calculate_Text_Width(&((*items)->name));
+
if (check > MaximumNameLength)
MaximumNameLength = check;
@@ -174,11 +174,12 @@ ResetConnectionInfo(MENU *menu, ITEM **items)
MENU_EXPORT(bool)
_nc_Connect_Items(MENU *menu, ITEM **items)
{
- ITEM **item;
unsigned int ItemCount = 0;
if (menu && items)
{
+ ITEM **item;
+
for (item = items; *item; item++)
{
if ((*item)->imenu)
@@ -292,23 +293,19 @@ static int
calculate_actual_width(MENU *menu, bool name)
{
int width = 0;
- int check = 0;
- ITEM **items;
assert(menu && menu->items);
if (menu->items != 0)
{
+ ITEM **items;
+
for (items = menu->items; *items; items++)
{
- if (name)
- {
- check = _nc_Calculate_Text_Width(&((*items)->name));
- }
- else
- {
- check = _nc_Calculate_Text_Width(&((*items)->description));
- }
+ int check = (name
+ ? _nc_Calculate_Text_Width(&((*items)->name))
+ : _nc_Calculate_Text_Width(&((*items)->description)));
+
if (check > width)
width = check;
}
@@ -381,7 +378,7 @@ _nc_Link_Items(MENU *menu)
{
if (menu && menu->items && *(menu->items))
{
- int i, j;
+ int i;
ITEM *item;
int Number_Of_Items = menu->nitems;
int col = 0, row = 0;
@@ -444,6 +441,7 @@ _nc_Link_Items(MENU *menu)
else
{
int Number_Of_Rows = menu->rows;
+ int j;
for (j = 0; j < Number_Of_Items; j++)
{
@@ -506,12 +504,12 @@ _nc_Link_Items(MENU *menu)
MENU_EXPORT(void)
_nc_Show_Menu(const MENU *menu)
{
- WINDOW *win;
- int maxy, maxx;
-
assert(menu);
if ((menu->status & _POSTED) && !(menu->status & _IN_DRIVER))
{
+ WINDOW *win;
+ int maxy, maxx;
+
/* adjust the internal subwindow to start on the current top */
assert(menu->sub);
mvderwin(menu->sub, menu->spc_rows * menu->toprow, 0);
@@ -549,13 +547,13 @@ _nc_New_TopRow_and_CurrentItem(
int new_toprow,
ITEM *new_current_item)
{
- ITEM *cur_item;
- bool mterm_called = FALSE;
- bool iterm_called = FALSE;
-
assert(menu);
if (menu->status & _POSTED)
{
+ ITEM *cur_item;
+ bool mterm_called = FALSE;
+ bool iterm_called = FALSE;
+
if (new_current_item != menu->curitem)
{
Call_Hook(menu, itemterm);
@@ -570,7 +568,7 @@ _nc_New_TopRow_and_CurrentItem(
cur_item = menu->curitem;
assert(cur_item);
menu->toprow = (short)(((menu->rows - menu->frows) >= 0)
- ? min(menu->rows - menu->frows, new_toprow)
+ ? Min(menu->rows - menu->frows, new_toprow)
: 0);
menu->curitem = new_current_item;
@@ -594,7 +592,7 @@ _nc_New_TopRow_and_CurrentItem(
else
{ /* if we are not posted, this is quite simple */
menu->toprow = (short)(((menu->rows - menu->frows) >= 0)
- ? min(menu->rows - menu->frows, new_toprow)
+ ? Min(menu->rows - menu->frows, new_toprow)
: 0);
menu->curitem = new_current_item;
}
diff --git a/menu/m_hook.c b/menu/m_hook.c
index 916b9fc7ce7d..c7d9fe91af7f 100644
--- a/menu/m_hook.c
+++ b/menu/m_hook.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2020,2021 Thomas E. Dickey *
* Copyright 1998-2012,2016 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -38,7 +38,7 @@
#include "menu.priv.h"
-MODULE_ID("$Id: m_hook.c,v 1.20 2020/07/04 19:45:16 tom Exp $")
+MODULE_ID("$Id: m_hook.c,v 1.21 2021/06/17 21:26:02 tom Exp $")
/* "Template" macro to generate function to set application specific hook */
#define GEN_HOOK_SET_FUNCTION( typ, name ) \
@@ -59,9 +59,9 @@ MENU_EXPORT(Menu_Hook) NCURSES_API typ ## _ ## name ( const MENU *menu )\
}
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : int set_menu_init(MENU *menu, void (*f)(MENU *))
-|
+|
| Description : Set user-exit which is called when menu is posted
| or just after the top row changes.
|
@@ -70,11 +70,11 @@ MENU_EXPORT(Menu_Hook) NCURSES_API typ ## _ ## name ( const MENU *menu )\
GEN_HOOK_SET_FUNCTION(menu, init)
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : void (*)(MENU *) menu_init(const MENU *menu)
-|
+|
| Description : Return address of user-exit function which is called
-| when a menu is posted or just after the top row
+| when a menu is posted or just after the top row
| changes.
|
| Return Values : Menu init function address or NULL
@@ -82,9 +82,9 @@ GEN_HOOK_SET_FUNCTION(menu, init)
GEN_HOOK_GET_FUNCTION(menu, init)
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : int set_menu_term (MENU *menu, void (*f)(MENU *))
-|
+|
| Description : Set user-exit which is called when menu is unposted
| or just before the top row changes.
|
@@ -93,11 +93,11 @@ GEN_HOOK_GET_FUNCTION(menu, init)
GEN_HOOK_SET_FUNCTION(menu, term)
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : void (*)(MENU *) menu_term(const MENU *menu)
-|
+|
| Description : Return address of user-exit function which is called
-| when a menu is unposted or just before the top row
+| when a menu is unposted or just before the top row
| changes.
|
| Return Values : Menu finalization function address or NULL
@@ -105,9 +105,9 @@ GEN_HOOK_SET_FUNCTION(menu, term)
GEN_HOOK_GET_FUNCTION(menu, term)
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : int set_item_init (MENU *menu, void (*f)(MENU *))
-|
+|
| Description : Set user-exit which is called when menu is posted
| or just after the current item changes.
|
@@ -116,11 +116,11 @@ GEN_HOOK_GET_FUNCTION(menu, term)
GEN_HOOK_SET_FUNCTION(item, init)
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : void (*)(MENU *) item_init (const MENU *menu)
-|
+|
| Description : Return address of user-exit function which is called
-| when a menu is posted or just after the current item
+| when a menu is posted or just after the current item
| changes.
|
| Return Values : Item init function address or NULL
@@ -128,9 +128,9 @@ GEN_HOOK_SET_FUNCTION(item, init)
GEN_HOOK_GET_FUNCTION(item, init)
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : int set_item_term (MENU *menu, void (*f)(MENU *))
-|
+|
| Description : Set user-exit which is called when menu is unposted
| or just before the current item changes.
|
@@ -139,11 +139,11 @@ GEN_HOOK_GET_FUNCTION(item, init)
GEN_HOOK_SET_FUNCTION(item, term)
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : void (*)(MENU *) item_init (const MENU *menu)
-|
+|
| Description : Return address of user-exit function which is called
-| when a menu is unposted or just before the current item
+| when a menu is unposted or just before the current item
| changes.
|
| Return Values : Item finalization function address or NULL
diff --git a/menu/m_item_cur.c b/menu/m_item_cur.c
index dcb0be156ac5..ed76518211d8 100644
--- a/menu/m_item_cur.c
+++ b/menu/m_item_cur.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2004,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -38,12 +38,12 @@
#include "menu.priv.h"
-MODULE_ID("$Id: m_item_cur.c,v 1.21 2020/12/12 00:38:02 tom Exp $")
+MODULE_ID("$Id: m_item_cur.c,v 1.22 2021/06/17 21:20:30 tom Exp $")
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : int set_current_item(MENU *menu, const ITEM *item)
-|
+|
| Description : Make the item the current item
|
| Return Values : E_OK - success
@@ -82,9 +82,9 @@ set_current_item(MENU *menu, ITEM *item)
}
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : ITEM *current_item(const MENU *menu)
-|
+|
| Description : Return the menus current item
|
| Return Values : Item pointer or NULL if failure
@@ -97,9 +97,9 @@ current_item(const MENU *menu)
}
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : int item_index(const ITEM *)
-|
+|
| Description : Return the logical index of this item.
|
| Return Values : The index or ERR if this is an invalid item pointer
diff --git a/menu/m_item_nam.c b/menu/m_item_nam.c
index 92966270454d..ce74531f0f4c 100644
--- a/menu/m_item_nam.c
+++ b/menu/m_item_nam.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2004,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -38,12 +38,12 @@
#include "menu.priv.h"
-MODULE_ID("$Id: m_item_nam.c,v 1.18 2020/12/12 00:38:08 tom Exp $")
+MODULE_ID("$Id: m_item_nam.c,v 1.19 2021/06/17 21:20:30 tom Exp $")
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : char *item_name(const ITEM *item)
-|
+|
| Description : Return name of menu item
|
| Return Values : See above; returns NULL if item is invalid
@@ -56,9 +56,9 @@ item_name(const ITEM *item)
}
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : char *item_description(const ITEM *item)
-|
+|
| Description : Returns description of item
|
| Return Values : See above; Returns NULL if item is invalid
diff --git a/menu/m_item_new.c b/menu/m_item_new.c
index 4e3f67bacdd0..28b71caf5b07 100644
--- a/menu/m_item_new.c
+++ b/menu/m_item_new.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020,2021 Thomas E. Dickey *
+ * Copyright 2020-2021 Thomas E. Dickey *
* Copyright 1998-2010,2012 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -45,12 +45,12 @@
#endif
#endif
-MODULE_ID("$Id: m_item_new.c,v 1.37 2021/02/13 19:40:51 tom Exp $")
+MODULE_ID("$Id: m_item_new.c,v 1.38 2021/06/17 21:26:02 tom Exp $")
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : bool Is_Printable_String(const char *s)
-|
+|
| Description : Checks whether or not the string contains only printable
| characters.
|
@@ -98,9 +98,9 @@ Is_Printable_String(const char *s)
}
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : ITEM *new_item(char *name, char *description)
-|
+|
| Description : Create a new item with name and description. Return
| a pointer to this new item.
| N.B.: an item must(!) have a name.
@@ -152,15 +152,15 @@ new_item(const char *name, const char *description)
}
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : int free_item(ITEM *item)
-|
-| Description : Free the allocated storage for this item.
+|
+| Description : Free the allocated storage for this item.
| N.B.: a connected item can't be freed.
|
| Return Values : E_OK - success
| E_BAD_ARGUMENT - invalid value has been passed
-| E_CONNECTED - item is still connected to a menu
+| E_CONNECTED - item is still connected to a menu
+--------------------------------------------------------------------------*/
MENU_EXPORT(int)
free_item(ITEM *item)
@@ -179,16 +179,16 @@ free_item(ITEM *item)
}
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : int set_menu_mark( MENU *menu, const char *mark )
-|
+|
| Description : Set the mark string used to indicate the current
| item (single-valued menu) or the selected items
| (multi-valued menu).
-| The mark argument may be NULL, in which case no
+| The mark argument may be NULL, in which case no
| marker is used.
-| This might be a little bit tricky, because this may
-| affect the geometry of the menu, which we don't allow
+| This might be a little bit tricky, because this may
+| affect the geometry of the menu, which we don't allow
| if it is already posted.
|
| Return Values : E_OK - success
@@ -260,9 +260,9 @@ set_menu_mark(MENU *menu, const char *mark)
}
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : char *menu_mark(const MENU *menu)
-|
+|
| Description : Return a pointer to the marker string
|
| Return Values : The marker string pointer or NULL if no marker defined
diff --git a/menu/m_item_opt.c b/menu/m_item_opt.c
index 985fd2988c37..495e409b601b 100644
--- a/menu/m_item_opt.c
+++ b/menu/m_item_opt.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2004,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -38,12 +38,12 @@
#include "menu.priv.h"
-MODULE_ID("$Id: m_item_opt.c,v 1.21 2020/12/12 00:38:08 tom Exp $")
+MODULE_ID("$Id: m_item_opt.c,v 1.22 2021/06/17 21:20:30 tom Exp $")
/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int set_item_opts(ITEM *item, Item_Options opts)
-|
+| Facility : libnmenu
+| Function : int set_item_opts(ITEM *item, Item_Options opts)
+|
| Description : Set the options of the item. If there are relevant
| changes, the item is connected and the menu is posted,
| the menu will be redisplayed.
@@ -86,9 +86,9 @@ set_item_opts(ITEM *item, Item_Options opts)
}
/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int item_opts_off(ITEM *item, Item_Options opts)
-|
+| Facility : libnmenu
+| Function : int item_opts_off(ITEM *item, Item_Options opts)
+|
| Description : Switch of the options for this item.
|
| Return Values : E_OK - success
@@ -114,9 +114,9 @@ item_opts_off(ITEM *item, Item_Options opts)
}
/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int item_opts_on(ITEM *item, Item_Options opts)
-|
+| Facility : libnmenu
+| Function : int item_opts_on(ITEM *item, Item_Options opts)
+|
| Description : Switch on the options for this item.
|
| Return Values : E_OK - success
@@ -143,9 +143,9 @@ item_opts_on(ITEM *item, Item_Options opts)
}
/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : Item_Options item_opts(const ITEM *item)
-|
+| Facility : libnmenu
+| Function : Item_Options item_opts(const ITEM *item)
+|
| Description : Switch of the options for this item.
|
| Return Values : Items options
diff --git a/menu/m_item_top.c b/menu/m_item_top.c
index ee0d17b43dd5..68303c7676b5 100644
--- a/menu/m_item_top.c
+++ b/menu/m_item_top.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2004,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -38,12 +38,12 @@
#include "menu.priv.h"
-MODULE_ID("$Id: m_item_top.c,v 1.14 2020/12/12 00:38:08 tom Exp $")
+MODULE_ID("$Id: m_item_top.c,v 1.16 2021/06/17 21:11:08 tom Exp $")
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : int set_top_row(MENU *menu, int row)
-|
+|
| Description : Makes the specified row the top row in the menu
|
| Return Values : E_OK - success
@@ -53,8 +53,6 @@ MODULE_ID("$Id: m_item_top.c,v 1.14 2020/12/12 00:38:08 tom Exp $")
MENU_EXPORT(int)
set_top_row(MENU *menu, int row)
{
- ITEM *item;
-
T((T_CALLED("set_top_row(%p,%d)"), (void *)menu, row));
if (menu)
@@ -72,6 +70,8 @@ set_top_row(MENU *menu, int row)
if (row != menu->toprow)
{
+ ITEM *item;
+
if (menu->status & _LINK_NEEDED)
_nc_Link_Items(menu);
@@ -85,9 +85,9 @@ set_top_row(MENU *menu, int row)
}
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : int top_row(const MENU *)
-|
+|
| Description : Return the top row of the menu
|
| Return Values : The row number or ERR if there is no row
diff --git a/menu/m_item_val.c b/menu/m_item_val.c
index a5c38e2716dc..3163f4b7216e 100644
--- a/menu/m_item_val.c
+++ b/menu/m_item_val.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2004,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -38,17 +38,17 @@
#include "menu.priv.h"
-MODULE_ID("$Id: m_item_val.c,v 1.18 2020/12/12 00:38:08 tom Exp $")
+MODULE_ID("$Id: m_item_val.c,v 1.20 2021/06/17 21:11:08 tom Exp $")
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : int set_item_value(ITEM *item, int value)
-|
+|
| Description : Programmatically set the item's selection value. This is
| only allowed if the item is selectable at all and if
| it is not connected to a single-valued menu.
| If the item is connected to a posted menu, the menu
-| will be redisplayed.
+| will be redisplayed.
|
| Return Values : E_OK - success
| E_REQUEST_DENIED - not selectable or single valued menu
@@ -56,12 +56,10 @@ MODULE_ID("$Id: m_item_val.c,v 1.18 2020/12/12 00:38:08 tom Exp $")
MENU_EXPORT(int)
set_item_value(ITEM *item, bool value)
{
- MENU *menu;
-
T((T_CALLED("set_item_value(%p,%d)"), (void *)item, value));
if (item)
{
- menu = item->imenu;
+ MENU *menu = item->imenu;
if ((!(item->opt & O_SELECTABLE)) ||
(menu && (menu->opt & O_ONEVALUE)))
@@ -87,9 +85,9 @@ set_item_value(ITEM *item, bool value)
}
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : bool item_value(const ITEM *item)
-|
+|
| Description : Return the selection value of the item
|
| Return Values : TRUE - if item is selected
diff --git a/menu/m_item_vis.c b/menu/m_item_vis.c
index 8e409cb864ad..9ae4fdb0a689 100644
--- a/menu/m_item_vis.c
+++ b/menu/m_item_vis.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2004,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -38,12 +38,12 @@
#include "menu.priv.h"
-MODULE_ID("$Id: m_item_vis.c,v 1.19 2020/12/12 00:38:08 tom Exp $")
+MODULE_ID("$Id: m_item_vis.c,v 1.20 2021/06/17 21:20:30 tom Exp $")
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : bool item_visible(const ITEM *item)
-|
+|
| Description : A item is visible if it currently appears in the
| subwindow of a posted menu.
|
diff --git a/menu/m_items.c b/menu/m_items.c
index 5b24cb76a01d..ecc5e2f05be0 100644
--- a/menu/m_items.c
+++ b/menu/m_items.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2005,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -38,12 +38,12 @@
#include "menu.priv.h"
-MODULE_ID("$Id: m_items.c,v 1.20 2020/12/12 00:38:08 tom Exp $")
+MODULE_ID("$Id: m_items.c,v 1.21 2021/06/17 21:20:30 tom Exp $")
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : int set_menu_items(MENU *menu, ITEM **items)
-|
+|
| Description : Sets the item pointer array connected to menu.
|
| Return Values : E_OK - success
@@ -78,9 +78,9 @@ set_menu_items(MENU *menu, ITEM **items)
}
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : ITEM **menu_items(const MENU *menu)
-|
+|
| Description : Returns a pointer to the item pointer array of the menu
|
| Return Values : NULL on error
@@ -93,11 +93,11 @@ menu_items(const MENU *menu)
}
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : int item_count(const MENU *menu)
-|
+|
| Description : Get the number of items connected to the menu. If the
-| menu pointer is NULL we return -1.
+| menu pointer is NULL we return -1.
|
| Return Values : Number of items or -1 to indicate error.
+--------------------------------------------------------------------------*/
diff --git a/menu/m_new.c b/menu/m_new.c
index 82c410c6a96a..be175581ba19 100644
--- a/menu/m_new.c
+++ b/menu/m_new.c
@@ -38,12 +38,12 @@
#include "menu.priv.h"
-MODULE_ID("$Id: m_new.c,v 1.26 2021/02/13 19:43:10 tom Exp $")
+MODULE_ID("$Id: m_new.c,v 1.27 2021/06/17 21:26:02 tom Exp $")
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : MENU* _nc_new_menu(SCREEN*, ITEM **items)
-|
+|
| Description : Creates a new menu connected to the item pointer
| array items and returns a pointer to the new menu.
| The new menu is initialized with the values from the
@@ -92,9 +92,9 @@ NCURSES_SP_NAME(new_menu) (NCURSES_SP_DCLx ITEM **items)
}
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : MENU *new_menu(ITEM **items)
-|
+|
| Description : Creates a new menu connected to the item pointer
| array items and returns a pointer to the new menu.
| The new menu is initialized with the values from the
@@ -111,10 +111,10 @@ new_menu(ITEM **items)
#endif
/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int free_menu(MENU *menu)
-|
-| Description : Disconnects menu from its associated item pointer
+| Facility : libnmenu
+| Function : int free_menu(MENU *menu)
+|
+| Description : Disconnects menu from its associated item pointer
| array and frees the storage allocated for the menu.
|
| Return Values : E_OK - success
diff --git a/menu/m_pad.c b/menu/m_pad.c
index 88dad151d6ff..008e19a79cdd 100644
--- a/menu/m_pad.c
+++ b/menu/m_pad.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2010,2012 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -38,7 +38,7 @@
#include "menu.priv.h"
-MODULE_ID("$Id: m_pad.c,v 1.16 2020/12/12 00:38:14 tom Exp $")
+MODULE_ID("$Id: m_pad.c,v 1.17 2021/06/17 21:20:30 tom Exp $")
/* Macro to redraw menu if it is posted and changed */
#define Refresh_Menu(menu) \
@@ -49,11 +49,11 @@ MODULE_ID("$Id: m_pad.c,v 1.16 2020/12/12 00:38:14 tom Exp $")
}
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : int set_menu_pad(MENU* menu, int pad)
-|
+|
| Description : Set the character to be used to separate the item name
-| from its description. This must be a printable
+| from its description. This must be a printable
| character.
|
| Return Values : E_OK - success
@@ -79,9 +79,9 @@ set_menu_pad(MENU *menu, int pad)
}
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : int menu_pad(const MENU *menu)
-|
+|
| Description : Return the value of the padding character
|
| Return Values : The pad character
diff --git a/menu/m_pattern.c b/menu/m_pattern.c
index 58047df218d4..6fbef236f2e6 100644
--- a/menu/m_pattern.c
+++ b/menu/m_pattern.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2006,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -38,12 +38,12 @@
#include "menu.priv.h"
-MODULE_ID("$Id: m_pattern.c,v 1.19 2020/12/12 00:38:14 tom Exp $")
+MODULE_ID("$Id: m_pattern.c,v 1.20 2021/06/17 21:20:30 tom Exp $")
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : char *menu_pattern(const MENU *menu)
-|
+|
| Description : Return the value of the pattern buffer.
|
| Return Values : NULL - if there is no pattern buffer allocated
@@ -61,9 +61,9 @@ menu_pattern(const MENU *menu)
}
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : int set_menu_pattern(MENU *menu, const char *p)
-|
+|
| Description : Set the match pattern for a menu and position to the
| first item that matches.
|
diff --git a/menu/m_post.c b/menu/m_post.c
index bfc633164b49..cb80230433d5 100644
--- a/menu/m_post.c
+++ b/menu/m_post.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020-2021,2022 Thomas E. Dickey *
* Copyright 1998-2010,2012 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -38,7 +38,7 @@
#include "menu.priv.h"
-MODULE_ID("$Id: m_post.c,v 1.34 2020/12/12 00:38:14 tom Exp $")
+MODULE_ID("$Id: m_post.c,v 1.38 2022/09/24 09:38:44 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnmenu
@@ -58,7 +58,6 @@ _nc_Post_Item(const MENU *menu, const ITEM *item)
int count = 0;
bool isfore = FALSE, isback = FALSE, isgrey = FALSE;
int name_len;
- int desc_len;
assert(menu->win);
@@ -132,6 +131,7 @@ _nc_Post_Item(const MENU *menu, const ITEM *item)
{
int m = menu->spc_desc / 2;
int cy = -1, cx = -1;
+ int desc_len;
for (ch = ' ', i = 0; i < menu->spc_desc; i++)
{
@@ -201,9 +201,8 @@ MENU_EXPORT(void)
_nc_Draw_Menu(const MENU *menu)
{
ITEM *item = menu->items[0];
- ITEM *lasthor, *lastvert;
+ ITEM *lastvert;
ITEM *hitem;
- int y = 0;
chtype s_bkgd;
assert(item && menu->win);
@@ -215,43 +214,50 @@ _nc_Draw_Menu(const MENU *menu)
lastvert = (menu->opt & O_NONCYCLIC) ? (ITEM *)0 : item;
- do
+ if (item != NULL)
{
- wmove(menu->win, y, 0);
-
- hitem = item;
- lasthor = (menu->opt & O_NONCYCLIC) ? (ITEM *)0 : hitem;
+ int y = 0;
do
{
- _nc_Post_Item(menu, hitem);
+ ITEM *lasthor;
- wattron(menu->win, (int)menu->back);
- if (((hitem = hitem->right) != lasthor) && hitem)
+ wmove(menu->win, y, 0);
+
+ hitem = item;
+ lasthor = (menu->opt & O_NONCYCLIC) ? (ITEM *)0 : hitem;
+
+ do
{
- int i, j, cy, cx;
- chtype ch = ' ';
+ _nc_Post_Item(menu, hitem);
- getyx(menu->win, cy, cx);
- for (j = 0; j < menu->spc_rows; j++)
+ wattron(menu->win, (int)menu->back);
+ if (((hitem = hitem->right) != lasthor) && hitem)
{
- wmove(menu->win, cy + j, cx);
- for (i = 0; i < menu->spc_cols; i++)
+ int i, j, cy, cx;
+ chtype ch = ' ';
+
+ getyx(menu->win, cy, cx);
+ for (j = 0; j < menu->spc_rows; j++)
{
- waddch(menu->win, ch);
+ wmove(menu->win, cy + j, cx);
+ for (i = 0; i < menu->spc_cols; i++)
+ {
+ waddch(menu->win, ch);
+ }
}
+ wmove(menu->win, cy, cx + menu->spc_cols);
}
- wmove(menu->win, cy, cx + menu->spc_cols);
}
- }
- while (hitem && (hitem != lasthor));
- wattroff(menu->win, (int)menu->back);
+ while (hitem && (hitem != lasthor));
+ wattroff(menu->win, (int)menu->back);
- item = item->down;
- y += menu->spc_rows;
+ item = item->down;
+ y += menu->spc_rows;
+ }
+ while (item && (item != lastvert));
}
- while (item && (item != lastvert));
}
/*---------------------------------------------------------------------------
@@ -283,7 +289,6 @@ post_menu(MENU *menu)
if (menu->items && *(menu->items))
{
- int y;
int h = 1 + menu->spc_rows * (menu->rows - 1);
WINDOW *win = Get_Menu_Window(menu);
@@ -291,7 +296,8 @@ post_menu(MENU *menu)
if ((menu->win = newpad(h, menu->width)))
{
- y = (maxy >= h) ? h : maxy;
+ int y = (maxy >= h) ? h : maxy;
+
if (y >= menu->height)
y = menu->height;
if (!(menu->sub = subpad(menu->win, y, menu->width, 0, 0)))
diff --git a/menu/m_req_name.c b/menu/m_req_name.c
index 7d1e7bf5d106..c72116fa4aff 100644
--- a/menu/m_req_name.c
+++ b/menu/m_req_name.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2012,2015 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -38,7 +38,7 @@
#include "menu.priv.h"
-MODULE_ID("$Id: m_req_name.c,v 1.25 2020/05/24 01:40:20 anonymous.maarten Exp $")
+MODULE_ID("$Id: m_req_name.c,v 1.27 2021/06/17 21:11:08 tom Exp $")
#define DATA(s) { s }
@@ -66,9 +66,9 @@ static const char request_names[MAX_MENU_COMMAND - MIN_MENU_COMMAND + 1][14] =
#define A_SIZE (sizeof(request_names)/sizeof(request_names[0]))
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : const char * menu_request_name (int request);
-|
+|
| Description : Get the external name of a menu request.
|
| Return Values : Pointer to name - on success
@@ -88,9 +88,9 @@ menu_request_name(int request)
}
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : int menu_request_by_name (const char *str);
-|
+|
| Description : Search for a request with this name.
|
| Return Values : Request Id - on success
@@ -103,12 +103,13 @@ menu_request_by_name(const char *str)
to run sequentially through it.
*/
size_t i = 0;
- char buf[16];
T((T_CALLED("menu_request_by_name(%s)"), _nc_visbuf(str)));
if (str != 0 && (i = strlen(str)) != 0)
{
+ char buf[16];
+
if (i > sizeof(buf) - 2)
i = sizeof(buf) - 2;
memcpy(buf, str, i);
diff --git a/menu/m_scale.c b/menu/m_scale.c
index 0067ae76a1c9..9e7f81d515ee 100644
--- a/menu/m_scale.c
+++ b/menu/m_scale.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2004,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -38,14 +38,14 @@
#include "menu.priv.h"
-MODULE_ID("$Id: m_scale.c,v 1.13 2020/12/12 00:38:14 tom Exp $")
+MODULE_ID("$Id: m_scale.c,v 1.14 2021/06/17 21:20:30 tom Exp $")
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : int scale_menu(const MENU *menu)
-|
+|
| Description : Returns the minimum window size necessary for the
-| subwindow of menu.
+| subwindow of menu.
|
| Return Values : E_OK - success
| E_BAD_ARGUMENT - invalid menu pointer
diff --git a/menu/m_sub.c b/menu/m_sub.c
index 5f898b0f7766..a055245bf49c 100644
--- a/menu/m_sub.c
+++ b/menu/m_sub.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2009,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -38,12 +38,12 @@
#include "menu.priv.h"
-MODULE_ID("$Id: m_sub.c,v 1.15 2020/12/12 00:38:14 tom Exp $")
+MODULE_ID("$Id: m_sub.c,v 1.16 2021/06/17 21:20:30 tom Exp $")
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : int set_menu_sub(MENU *menu, WINDOW *win)
-|
+|
| Description : Sets the subwindow of the menu.
|
| Return Values : E_OK - success
@@ -82,9 +82,9 @@ set_menu_sub(MENU *menu, WINDOW *win)
}
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : WINDOW* menu_sub(const MENU *menu)
-|
+|
| Description : Returns a pointer to the subwindow of the menu
|
| Return Values : NULL on error, otherwise a pointer to the window
diff --git a/menu/m_win.c b/menu/m_win.c
index 72f72ad0cc90..4bb64e6a6daa 100644
--- a/menu/m_win.c
+++ b/menu/m_win.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2009,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -38,12 +38,12 @@
#include "menu.priv.h"
-MODULE_ID("$Id: m_win.c,v 1.20 2020/12/12 00:38:14 tom Exp $")
+MODULE_ID("$Id: m_win.c,v 1.21 2021/06/17 21:20:30 tom Exp $")
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : int set_menu_win(MENU *menu, WINDOW *win)
-|
+|
| Description : Sets the window of the menu.
|
| Return Values : E_OK - success
@@ -82,9 +82,9 @@ set_menu_win(MENU *menu, WINDOW *win)
}
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : WINDOW* menu_win(const MENU*)
-|
+|
| Description : Returns pointer to the window of the menu
|
| Return Values : NULL on error, otherwise pointer to window
diff --git a/misc/Makefile.in b/misc/Makefile.in
index 3999a4e9bd1b..1539973fef07 100644
--- a/misc/Makefile.in
+++ b/misc/Makefile.in
@@ -1,4 +1,4 @@
-# $Id: Makefile.in,v 1.74 2021/01/23 20:42:08 tom Exp $
+# $Id: Makefile.in,v 1.79 2021/11/06 23:36:12 tom Exp $
##############################################################################
# Copyright 2018-2020,2021 Thomas E. Dickey #
# Copyright 1998-2016,2017 Free Software Foundation, Inc. #
@@ -76,13 +76,29 @@ INSTALL_DATA = @INSTALL_DATA@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
################################################################################
+
+@MAKE_PHONY@.PHONY : all
+@MAKE_PHONY@.PHONY : check
+@MAKE_PHONY@.PHONY : clean
+@MAKE_PHONY@.PHONY : depend
+@MAKE_PHONY@.PHONY : distclean
+@MAKE_PHONY@.PHONY : install
+@MAKE_PHONY@.PHONY : install.data
+@MAKE_PHONY@.PHONY : install.libs
+@MAKE_PHONY@.PHONY : libs
+@MAKE_PHONY@.PHONY : mostlyclean
+@MAKE_PHONY@.PHONY : realclean
+@MAKE_PHONY@.PHONY : sources
+@MAKE_PHONY@.PHONY : uninstall
+@MAKE_PHONY@.PHONY : uninstall.data
+@MAKE_PHONY@.PHONY : uninstall.libs
+
all \
+depend \
sources ::
@MAKE_DATABASE@all \
-@MAKE_DATABASE@sources :: terminfo.tmp
-
-depend :
+@MAKE_DATABASE@sources :: terminfo.tmp
@MAKE_DATABASE@install :: @MISC_INSTALL_DATA@
@@ -131,8 +147,8 @@ install.libs :: $(DESTDIR)$(bindir) ncurses-config
# directory during this rule:
@MAKE_PC_FILES@install \
@MAKE_PC_FILES@install.libs :: pc-files
-@MAKE_PC_FILES@ @$(SHELL) -c 'case "x$(DESTDIR)$(PKG_CONFIG_LIBDIR)" in \
-@MAKE_PC_FILES@ (x/*) \
+@MAKE_PC_FILES@ @$(SHELL) -c 'case "x$(PKG_CONFIG_LIBDIR)" in \
+@MAKE_PC_FILES@ x/*) \
@MAKE_PC_FILES@ mkdir -p $(DESTDIR)$(PKG_CONFIG_LIBDIR); \
@MAKE_PC_FILES@ for name in $(PC_FILES); do \
@MAKE_PC_FILES@ test -f $$name || continue; \
@@ -140,7 +156,7 @@ install.libs :: $(DESTDIR)$(bindir) ncurses-config
@MAKE_PC_FILES@ $(INSTALL_DATA) $$name $(DESTDIR)$(PKG_CONFIG_LIBDIR)/$$name; \
@MAKE_PC_FILES@ done \
@MAKE_PC_FILES@ ;; \
-@MAKE_PC_FILES@ (*) \
+@MAKE_PC_FILES@ *) \
@MAKE_PC_FILES@ echo "...skip actual install: no destination was given" ; \
@MAKE_PC_FILES@ ;; \
@MAKE_PC_FILES@ esac'
@@ -177,7 +193,7 @@ uninstall.data :
uninstall.libs :
-rm -f $(DESTDIR)$(bindir)/$(NCURSES_CONFIG)
@MAKE_PC_FILES@ @$(SHELL) -c 'case x$(DESTDIR)$(PKG_CONFIG_LIBDIR) in \
-@MAKE_PC_FILES@ (x/*) \
+@MAKE_PC_FILES@ x/*) \
@MAKE_PC_FILES@ for name in $(PC_FILES); do \
@MAKE_PC_FILES@ test -f $$name || continue; \
@MAKE_PC_FILES@ echo uninstalling $$name; \
diff --git a/misc/csort b/misc/csort
index 24554196a04d..c39c2951e745 100755
--- a/misc/csort
+++ b/misc/csort
@@ -1,7 +1,7 @@
#!/bin/sh
-# $Id: csort,v 1.3 2020/02/02 23:34:34 tom Exp $
+# $Id: csort,v 1.4 2021/09/04 15:55:29 tom Exp $
##############################################################################
-# Copyright 2020 Thomas E. Dickey #
+# Copyright 2020,2021 Thomas E. Dickey #
# Copyright 2002 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -34,4 +34,4 @@ LANG=C; export LANG
LANGUAGE=C; export LANGUAGE
LC_ALL=C; export LC_ALL
LC_CTYPE=C; export LC_CTYPE
-sort $*
+sort "$@"
diff --git a/misc/gen-pkgconfig.in b/misc/gen-pkgconfig.in
index 5a71ab0203c6..89a5cd4a3180 100644
--- a/misc/gen-pkgconfig.in
+++ b/misc/gen-pkgconfig.in
@@ -1,7 +1,7 @@
#!@SHELL@
-# $Id: gen-pkgconfig.in,v 1.49 2021/01/24 00:35:28 tom Exp $
+# $Id: gen-pkgconfig.in,v 1.56 2022/10/08 16:45:20 tom Exp $
##############################################################################
-# Copyright 2018-2020,2021 Thomas E. Dickey #
+# Copyright 2018-2021,2022 Thomas E. Dickey #
# Copyright 2009-2015,2018 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -83,7 +83,7 @@ if [ "$includedir" != "/usr/include" ]; then
fi
lib_flags=
-for opt in -L$libdir @LDFLAGS@ @EXTRA_PKG_LDFLAGS@ @LIBS@
+for opt in -L$libdir @EXTRA_PKG_LDFLAGS@ @LIBS@
do
case $opt in
-l*) # LIBS is handled specially below
@@ -95,9 +95,19 @@ do
-Wl,-z,*) # ignore flags used to manipulate shared image
continue
;;
+ -Wl,--dynamic-linker*) # ignore ELF interpreter
+ continue
+ ;;
+ -Wl,--as-needed|-Wl,--build-id=*|-Wl,-dT,*|-Wl,-T,*)
+ continue
+ ;;
-L*)
- lib_check=${opt##-L}
- [ -d "$lib_check" ] || continue
+ lib_check=`echo "x$opt" | sed -e 's/^.-L//'`
+ # on a new/nonstandard install, $libdir may not yet exist at this point
+ if [ "$libdir" != "$lib_check" ]
+ then
+ [ -d "$lib_check" ] || continue
+ fi
case "$lib_check" in
@LD_SEARCHPATH@) # skip standard libdir
if [ "$lib_check" = "$libdir" ]
@@ -164,7 +174,7 @@ fi
# The "URL" feature came in pkg-config 0.17
USEURL=""
-CFGVER=`pkg-config --version 2>/dev/null |head -n 1 | awk -F. '/0.[0-9][0-9]/{print $2;}'`
+CFGVER=`${PKG_CONFIG:-pkg-config} --version 2>/dev/null |head -n 1 | awk -F. '/0.[0-9][0-9]/{print $2;}'`
# A missing version should simply fail, but some packagers insist on building
# packages on machines which do not actually have the tools they depend on at
# runtime.
@@ -216,7 +226,7 @@ do
echo "** creating ${name}${suffix}.pc"
cat >${name}${suffix}.pc <<EOF
-# pkg-config file generated by `basename $0`
+# pkg-config file generated by `basename "$0"`
# vile:makemode
prefix=$show_prefix
diff --git a/misc/gen_edit.sh b/misc/gen_edit.sh
index dadf00357114..0c41611d7c57 100755
--- a/misc/gen_edit.sh
+++ b/misc/gen_edit.sh
@@ -1,6 +1,6 @@
#!/bin/sh
##############################################################################
-# Copyright 2020 Thomas E. Dickey #
+# Copyright 2020,2021 Thomas E. Dickey #
# Copyright 2004-2011,2012 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -30,7 +30,7 @@
#
# Author: Thomas E. Dickey
#
-# $Id: gen_edit.sh,v 1.6 2020/02/02 23:34:34 tom Exp $
+# $Id: gen_edit.sh,v 1.7 2021/09/04 15:55:29 tom Exp $
# Generate a sed-script for converting the terminfo.src to the form which will
# be installed.
#
@@ -40,10 +40,10 @@
linux_dft=linux2.2
-: ${datadir=/usr/share}
-: ${WHICH_LINUX=$linux_dft}
-: ${WHICH_XTERM=xterm-new}
-: ${XTERM_KBS=BS}
+: "${datadir=/usr/share}"
+: "${WHICH_LINUX=$linux_dft}"
+: "${WHICH_XTERM=xterm-new}"
+: "${XTERM_KBS=BS}"
# If we're not installing into /usr/share/, we'll have to adjust the location
# of the tabset files in terminfo.src (which are in a parallel directory).
diff --git a/misc/magic b/misc/magic
index 0fab0049a4f0..ee1a1c4d456c 100644
--- a/misc/magic
+++ b/misc/magic
@@ -1,6 +1,6 @@
-# $Id: magic,v 1.3 2020/02/02 23:34:34 tom Exp $
+# $Id: magic,v 1.5 2023/09/23 23:37:26 tom Exp $
##############################################################################
-# Copyright 2020 Thomas E. Dickey #
+# Copyright 2020,2023 Thomas E. Dickey #
# Copyright 2015,2018 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -60,7 +60,7 @@
!:mime application/x-terminfo2
#
# While the compiled terminfo uses little-endian format irregardless of
-# platform, SystemV screen dumps do not. They came later, and that detail was
+# platform, System V screen dumps do not. They came later, and that detail was
# overlooked.
#
# AIX and HPUX use the SVr4 big-endian format
diff --git a/misc/makedef.cmd b/misc/makedef.cmd
index 12baeca86861..129ca83b5e48 100644
--- a/misc/makedef.cmd
+++ b/misc/makedef.cmd
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998,2006 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,7 +28,7 @@
****************************************************************************/
/*
- * $Id: makedef.cmd,v 1.6 2020/02/02 23:34:34 tom Exp $
+ * $Id: makedef.cmd,v 1.7 2021/09/04 10:52:55 tom Exp $
*
* Author: Juan Jose Garcia Ripoll <worm@arrakis.es>.
* Webpage: http://www.arrakis.es/~worm/
@@ -119,12 +119,12 @@ do while queued() > 0
* it has a valid code that we store
* we mark that code as used
* ELIF (it has no number) THEN
- * (it's a new symbol)
+ * (it is a new symbol)
* we increase the counter of defined symbols
* we assign it the special number 0
* (later on it'll be assigned an unused export code)
* ELSE
- * this symbol was in the old DLL and it's no longer
+ * this symbol was in the old DLL and it is no longer
* here, so we skip it.
*/
select
diff --git a/misc/makellib b/misc/makellib
index 06e50f253d9f..fb3d3b7a92fd 100755
--- a/misc/makellib
+++ b/misc/makellib
@@ -1,6 +1,6 @@
#!/bin/sh
##############################################################################
-# Copyright 2020 Thomas E. Dickey #
+# Copyright 2020,2021 Thomas E. Dickey #
# Copyright 1998,2000 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -30,7 +30,7 @@
#
# Author: Thomas E. Dickey 1996,1997,2000
#
-# $Id: makellib,v 1.9 2020/02/02 23:34:34 tom Exp $
+# $Id: makellib,v 1.11 2021/09/04 15:49:38 tom Exp $
# System-dependent wrapper for 'lint' that creates a lint-library via the
# following method (XXX is the name of the library):
# a. If the file llib-lXXX doesn't exist, create it using the make-rule
@@ -45,7 +45,7 @@
# a. On a few systems, you'll have to manually-edit the llib-lXXX file
# to get a usable lint-library (not all C-preprocessors work well).
# b. The system's lint utility won't recognize -lXXX as a lint-library
-# (Use tdlint as a wrapper; it's designed for this).
+# (Use tdlint as a wrapper; it is designed for this).
#
# Parameters:
# $1 = library name
@@ -68,7 +68,7 @@ while test $# != 0
do
case $1 in
-L*)
- DST="$DST `echo $1|sed -e 's/^-L//'`"
+ DST="$DST `echo "$1"|sed -e 's/^-L//'`"
;;
-*)
OPT="$OPT $1"
@@ -94,8 +94,8 @@ then
llib="llib-l$LLIB"
fi
-if test ! -f $llib ; then
- if ( make $llib )
+if test ! -f "$llib" ; then
+ if ( make "$llib" )
then
:
else
@@ -103,39 +103,39 @@ if test ! -f $llib ; then
fi
fi
-rm -f $llib.ln $llib.c
+rm -f "$llib.ln" "$llib.c"
TARGET=$LLIB
case "$ARCH" in
AIX)
CREATE="-uvxo$LLIB -Nn4000"
TARGET=$llib.c
- ln $llib $TARGET
+ ln "$llib" "$TARGET"
;;
Solaris)
CREATE="-C$llib"
TARGET=$llib.c
- ln $llib $TARGET
+ ln "$llib" "$TARGET"
;;
FreeBSD)
CREATE="-g -z -C$LLIB"
TARGET=$llib.c
- ln $llib $TARGET
+ ln "$llib" "$TARGET"
;;
CLIX)
CREATE="-DLINTLIBRARY -vxo$LLIB"
TARGET=$llib.c
- ln $llib $TARGET
+ ln "$llib" "$TARGET"
;;
IRIX*)
CREATE="-DLINTLIBRARY -vxyo$LLIB"
TARGET=$llib.c
- ln $llib $TARGET
+ ln "$llib" "$TARGET"
;;
UNIX_SV)
CREATE="-DLINTLIBRARY -vxyo$LLIB"
TARGET=$llib.c
- ln $llib $TARGET
+ ln "$llib" "$TARGET"
;;
*)
echo "Sorry. I do not know how to build a lint-library for $ARCH"
@@ -145,24 +145,24 @@ esac
echo OPT "$OPT"
echo TARGET "$TARGET"
echo LIBNAME "$llib"
-if ( lint $CREATE $OPT $TARGET )
+if ( lint "$CREATE" "$OPT" "$TARGET" )
then
- if test -f $llib.ln
+ if test -f "$llib.ln"
then
for p in $HOME/lib $HOME/lib/$ARCH $HOME/lib/$ARCH/lint
do
- if test ! -d $p
+ if test ! -d "$p"
then
- mkdir $p
+ mkdir "$p"
fi
done
for p in $DST
do
- cp $llib.ln $p/
+ cp "$llib.ln" "$p/"
done
- rm -f $llib.ln
+ rm -f "$llib.ln"
fi
fi
if test "x$TARGET" = "x$llib.c" ; then
- rm -f $TARGET
+ rm -f "$TARGET"
fi
diff --git a/misc/ncu2openbsd b/misc/ncu2openbsd
new file mode 100755
index 000000000000..0c3365d76fdb
--- /dev/null
+++ b/misc/ncu2openbsd
@@ -0,0 +1,1288 @@
+#!/usr/bin/env perl
+# $Id: ncu2openbsd,v 1.67 2023/09/09 15:59:17 tom Exp $
+# -----------------------------------------------------------------------------
+# Copyright 2021,2023 by Thomas E. Dickey
+#
+# All Rights Reserved
+#
+# 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, 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 LISTED COPYRIGHT HOLDER(S) 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.
+# -----------------------------------------------------------------------------
+# https://invisible-island.net/ncurses/ncurses-openbsd.html
+#
+# Update the OpenBSD source-tree given an ncurses tarball or build-tree.
+
+use strict;
+use warnings;
+
+use Getopt::Std;
+use Cwd;
+use Cwd 'abs_path';
+use File::Path qw/ remove_tree /;
+use File::Temp qw/ tempdir /;
+
+$| = 1;
+
+our ( $opt_d, $opt_n, $opt_r, $opt_t, $opt_v, $opt_x, $opt_6 );
+our $source_dir;
+our $target_dir;
+our $update_dir;
+our $backup_dir;
+
+our $tempdir = tempdir( CLEANUP => 1 );
+my $current = getcwd;
+my $working = $current;
+
+our $generated_by = "generated by: ncu2openbsd";
+
+our %setup_dir = qw(
+ lib/libcurses ncurses
+ lib/libform form
+ lib/libmenu menu
+ lib/libpanel panel
+ usr.bin/infocmp progs
+ usr.bin/tabs progs
+ usr.bin/tic progs
+ usr.bin/toe progs
+ usr.bin/tput progs
+ usr.bin/tset progs
+ share/termtypes misc
+);
+
+our %generated = qw(
+ codes.c 1
+ comp_captab.c 1
+ comp_userdefs.c 1
+ expanded.c 1
+ fallback.c 1
+ init_keytry.h 1
+ keys.list 1
+ lib_gen.c 1
+ lib_keyname.c 1
+ make_hash 1
+ make_keys 1
+ names.c 1
+ termsort.c 1
+ unctrl.c 1
+);
+
+our %definitions = qw(
+ CAPTOINFO captoinfo
+ DATADIR /usr/share
+ INFOCMP infocmp
+ INFOTOCAP infotocap
+ NCURSES_MAJOR 5
+ NCURSES_MINOR 7
+ NCURSES_OSPEED int
+ NCURSES_PATCH 20081102
+ TERMINFO /usr/share/terminfo
+ TIC tic
+ TOE toe
+ TPUT tput
+ TSET tset
+);
+
+sub patchdate() {
+ return $definitions{"NCURSES_PATCH"};
+}
+
+sub failed($) {
+ chdir $current;
+ printf STDERR "? %s\n", $_[0];
+ exit;
+}
+
+sub verbose($) {
+ my $text = shift;
+ printf "%s\n", $text if ($opt_v);
+}
+
+sub read_file($) {
+ my $name = shift;
+ open( my $fp, $name ) || &failed("cannot open $name");
+ my (@input) = <$fp>;
+ chomp @input;
+ close($fp);
+ return @input;
+}
+
+sub read_dir($) {
+ my $path = shift;
+ my @result;
+ if ( opendir( my $dh, $path ) ) {
+ my @data = sort readdir($dh);
+ closedir $dh;
+ for my $d ( 0 .. $#data ) {
+ next if ( $data[$d] =~ /^\.(\.)?$/ );
+ next if ( -l $path . "/" . $data[$d] );
+ $result[ $#result + 1 ] = $data[$d];
+ }
+ }
+ return @result;
+}
+
+sub rename_dir($$) {
+ my $src = shift;
+ my $dst = shift;
+ printf "%% mv %s -> %s\n", $src, $dst if ($opt_v);
+ rename $src, $dst unless ($opt_n);
+}
+
+sub check_sourcedir($) {
+ my $path = shift;
+ &failed("not a directory: $path") unless ( -d $path );
+ my $full = abs_path($path);
+ chdir $full;
+ &failed("not an ncurses source-tree: $path")
+ unless ( -f "NEWS" and -f "dist.mk" );
+ $source_dir = $full;
+}
+
+sub unpack($) {
+ my $path = shift;
+ my $full = abs_path($path);
+ my $command = "";
+ if ( $path =~ /\.tgz$/ or $path =~ /\.tar\.gz$/ ) {
+ $command = "tar xzf %s";
+ }
+ elsif ( $path =~ /\.zip$/ ) {
+ $command = "unzip -q %s";
+ }
+ else {
+ &failed("not a gzip'd tarball or zip-file: $path");
+ }
+ chdir $tempdir;
+ system( sprintf( $command, $full ) );
+
+ # there should be exactly one subdirectory -- the source-tree
+ my @data = &read_dir(".");
+ &failed("found no subdirectories of $path") if ( $#data < 0 );
+ &failed( "too many subdirectories: " . $data[0] . " vs " . $data[1] )
+ if ( $#data > 0 );
+ &check_sourcedir( $data[0] );
+}
+
+sub remove_dir($) {
+ my $tree = shift;
+ if ( -d $tree ) {
+ printf "%% rm -rf %s\n", $tree if ($opt_v);
+ remove_tree( $tree, $opt_v ? 1 : 0, 1 ) unless ($opt_n);
+ }
+}
+
+sub copy_CVS($) {
+ my $leaf = shift;
+ my $src = $target_dir . $leaf . "/CVS";
+ my $dst = $update_dir . $leaf . "/CVS";
+ my $verbose = $opt_v ? "v" : "";
+ if ( -d $src and !-d $dst ) {
+ my $mid = $update_dir . $leaf;
+ mkdir $mid unless ( -d $mid );
+ mkdir $dst unless ( -d $dst );
+ system("cp -a$verbose $src/* $dst/");
+ }
+}
+
+sub is_tic_code($) {
+ my $item = shift;
+ my $result = 0;
+ $result = 1
+ if (
+ $item =~ /^(capconvert
+ |tic
+ |dump
+ |progs
+ |termsort
+ |transform
+ |MKtermsort)/x
+ );
+ return $result;
+}
+
+sub is_ident($$) {
+ my $name = shift;
+ my $text = shift;
+ my $code = 0;
+ $code = 1 if ( $text =~ /\$$name:.*\$/ );
+ return $code;
+}
+
+# We "could", filter out differences with ident's using the diff -I option,
+# but in practice, that is cumbersome.
+sub munge_ident($) {
+ my $target = shift;
+ my $source = $target;
+ $source =~ s/\.update\b//;
+ &failed("bug at $source") if ( $source eq $target );
+ return unless ( -f $source );
+ my @source = &read_file($source);
+ my @target = &read_file($target);
+ my $old_id = "";
+ my $gap_id = 0;
+ my $new_id = "";
+ my $skipit = -1;
+
+ for my $n ( 0 .. $#source ) {
+ if ( &is_ident( "OpenBSD", $source[$n] ) ) {
+ $old_id = $source[$n];
+ $skipit = $n + 1;
+ }
+ elsif ( &is_ident( "Id", $source[$n] ) ) {
+ $new_id = $source[$n];
+ last;
+ }
+ elsif ( $n == $skipit ) {
+ $source[$n] =~ s/\s+$//;
+ if ( $source[$n] eq "" ) {
+ $gap_id = $source[$n];
+ }
+ elsif ( $source[$n] eq '.\"' ) {
+ $gap_id = $source[$n];
+ }
+ }
+ }
+ if ( $old_id ne "" ) {
+ my @update;
+ my $tables = &uses_tables($target);
+ $update[ $#update + 1 ] = $target[0] if ($tables);
+ $update[ $#update + 1 ] = $old_id;
+ $update[ $#update + 1 ] = $gap_id unless ( $gap_id eq 0 );
+ for my $n ( $tables .. $#target ) {
+ if ( &is_ident( "Id", $target[$n] ) ) {
+ $update[ $#update + 1 ] = $new_id;
+ }
+ else {
+ $update[ $#update + 1 ] = $target[$n];
+ }
+ }
+ system("chmod u+w $target");
+ if ( open my $fp, ">", $target ) {
+ for my $n ( 0 .. $#update ) {
+ printf $fp "%s\n", $update[$n];
+ }
+ close $fp;
+ system("chmod u-w $target");
+ }
+ }
+}
+
+# ncurses manual pages provide for renaming the utilities, normally as part of
+# the scripts provided in its sources. OpenBSD developers do not use those.
+sub munge_docs($) {
+ my $path = shift;
+ my @data = &read_file($path);
+ my $done = 0;
+ for my $n ( 0 .. $#data ) {
+ my $text = $data[$n];
+ $text =~ s/\b1M\b/1/g;
+ $text =~ s/\b3X\b/3/g;
+ $text =~ s/\bcurs_(term(info|cap)\s*3\b)/$1/g;
+ $text =~ s/(\\fB)curs_(term(info|cap)\\f[RP]\(3\))/$1$2/g;
+ my $left = "";
+ while ( $text =~ /@[[:alnum:]_]+@/ ) {
+ my $next = index( $text, "@" );
+ last if ( $next < 0 );
+ $left .= substr( $text, 0, $next++ );
+ $text = substr( $text, $next );
+ $next = index( $text, "@" );
+ last if ( $next < 0 );
+ my $word = substr( $text, 0, $next );
+ if ( $word =~ /^[[:alnum:]_]+/ ) {
+
+ if ( $definitions{$word} ) {
+ $word = $definitions{$word};
+ }
+ else {
+ $word = "?";
+ }
+ $left .= $word;
+ $text = substr( $text, $next + 1 );
+ }
+ else {
+ &failed("unexpected definition @$word@");
+ }
+ }
+ $text = $left . $text;
+ if ( $text ne $data[$n] ) {
+ $done++;
+ $data[$n] = $text;
+ }
+ }
+ if ($done) {
+ system("chmod u+w $path");
+ if ( open my $fp, ">", $path ) {
+ for my $n ( 0 .. $#data ) {
+ printf $fp "%s\n", $data[$n];
+ }
+ close $fp;
+ system("chmod u-w $path");
+ }
+ }
+}
+
+sub copy_file($$) {
+ my $src = shift;
+ my $dst = shift;
+ my $verbose = $opt_v ? "v" : "";
+ if ( -d $dst ) {
+ my $leaf = $src;
+ $leaf =~ s,^.*/,,;
+ $dst .= "/" . $leaf;
+ }
+ system("chmod u+w $dst") if ( -f $dst );
+ system("cp -a$verbose $src $dst");
+ &munge_ident($dst);
+}
+
+sub copy_code($) {
+ my $src = shift;
+ my $dst = shift;
+ &copy_CVS( substr( $dst, length($update_dir) ) );
+ printf ".. copying files for $dst\n";
+ my @data = &read_dir($src);
+ printf ".. %d entries\n", $#data + 1;
+ my $verbose = $opt_v ? "v" : "";
+ for my $d ( 0 .. $#data ) {
+ my $item = $data[$d];
+ my $src_item = $src . "/" . $item;
+ next if ( -d $src_item );
+ next if ( -l $src_item );
+ next if ( $item =~ /^\.(\.)?$/ );
+ next if ( $item =~ /\.(bak|in|log|status)$/ );
+ next if ( $item =~ /^llib-/ );
+ next if ( $item =~ /^modules/ );
+ next if ( $item =~ /^[fm]_trace\.c/ and not $opt_t );
+ next
+ if ( $item =~ /^Makefile/ and index( $update_dir, "/share/" ) < 0 );
+ next if ( $item =~ /^README/ );
+ next if ( $item eq "headers" );
+ next if ( $generated{$item} );
+ next if ( $item eq "link_test.c" );
+
+ if ( index( $dst, "/usr.bin/" ) >= 0 ) {
+ next if ( $item =~ /^(clear)/ ); # OpenBSD uses "tput clear"
+ my $prog = $dst;
+ $prog =~ s%^.*/%%;
+ $prog =~ s/(update|backup)//;
+ $prog .= "c";
+ if ( $dst =~ /infocmp/ ) {
+ next if ( $item ne $prog );
+ }
+ elsif ( $dst =~ /tabs/ ) {
+ next if ( $item ne $prog );
+ }
+ elsif ( $dst =~ /tic/ ) {
+ next if ( &is_tic_code($item) == 0 );
+ }
+ elsif ( $dst =~ /toe/ ) {
+ next if ( $item ne $prog );
+ }
+ elsif ( $dst =~ /tput/ ) {
+ next if ( $item ne $prog );
+ }
+ elsif ( $dst =~ /tset/ ) {
+ next if ( $item ne $prog );
+ }
+ else {
+ next;
+ }
+ }
+ system( sprintf( "cp -a$verbose %s %s/%s", $src_item, $dst, $item ) );
+ &munge_ident("$dst/$item");
+ }
+}
+
+# Checking if nroff supports tables is a long-obsolete issue, and is not really
+# necessary, except to match OpenBSD's source-tree.
+sub uses_tables($) {
+ my $docs = shift;
+ my @docs = &read_file($docs);
+ my $code = 0;
+ for my $n ( 0 .. $#docs ) {
+ if ( $docs[$n] =~ /^[.']\\"\s+t\b.*/ ) {
+ $code = 1;
+ last;
+ }
+ elsif ( $docs[$n] =~ /^\./ ) {
+ last;
+ }
+ }
+ return $code;
+}
+
+sub copy_1doc($$) {
+ my $docs = shift;
+ my $src = "$source_dir/man/$docs";
+ my $dst = "$update_dir/$docs";
+ $src .= "m" if ( -f "${src}m" );
+ $dst =~ s/x$//;
+ if ( $dst =~ /\.3/ ) {
+ $dst =~ s/\bncurses/curses/ if ( $dst =~ /ncurses\./ );
+ $dst =~ s/\bcurs_// if ( $dst =~ /_term(cap|info)\./ );
+ }
+ &copy_file( $src, $dst );
+ &munge_docs($dst);
+}
+
+sub copy_docs($) {
+ my $docs = shift;
+ if ( index( $update_dir, "/usr.bin/" ) >= 0 ) {
+ &copy_1doc( $docs . ".1" );
+ if ( $docs eq "tic" ) {
+ &copy_1doc("captoinfo.1");
+ &copy_1doc("infotocap.1");
+ }
+ }
+ else {
+ my @docs = &read_dir("$source_dir/man");
+ if ( $docs eq "curses" ) {
+ for my $n ( 0 .. $#docs ) {
+ next if ( $docs[$n] eq "Makefile" );
+ next if ( $docs[$n] eq "make_sed.sh" );
+ next if ( $docs[$n] eq "man_db.renames" );
+ next if ( $docs[$n] eq "manlinks.sed" );
+ next if ( $docs[$n] =~ /\.(1|head|tail|in)/ );
+ next if ( $docs[$n] =~ /^(form|menu|mitem|panel)/ );
+ &copy_1doc( $docs[$n] );
+ }
+ }
+ elsif ( $docs eq "form" ) {
+ for my $n ( 0 .. $#docs ) {
+ next unless ( $docs[$n] =~ /^form/ );
+ &copy_1doc( $docs[$n] );
+ }
+ }
+ elsif ( $docs eq "menu" ) {
+ for my $n ( 0 .. $#docs ) {
+ next unless ( $docs[$n] =~ /^(menu|mitem)/ );
+ &copy_1doc( $docs[$n] );
+ }
+ }
+ elsif ( $docs eq "panel" ) {
+ for my $n ( 0 .. $#docs ) {
+ next unless ( $docs[$n] =~ /^panel/ );
+ &copy_1doc( $docs[$n] );
+ }
+ }
+ }
+}
+
+sub setup_dir($) {
+ my $dst = shift;
+ &failed("no definition for $dst")
+ unless ( defined $setup_dir{$dst} or $opt_r );
+ $target_dir = sprintf( "%s/%s", $opt_d, $dst );
+ $update_dir = $target_dir . ".update";
+ $backup_dir = $target_dir . ".backup";
+ my $result = 0;
+ if ($opt_r) {
+ &remove_dir($update_dir);
+ if ( $target_dir =~ /\/(tabs|toe)$/ ) {
+ &remove_dir($target_dir);
+ }
+ elsif ( -d $backup_dir ) {
+ &remove_dir($target_dir);
+ &rename_dir( $backup_dir, $target_dir );
+ }
+ }
+ else {
+ &remove_dir($update_dir);
+ mkdir $update_dir;
+
+ # reuse the shared-library version, assuming ABI=5 would involve at
+ # most a minor-version bump.
+ &copy_file( "$target_dir/shlib_version", $update_dir )
+ if ( $dst =~ /^lib\// );
+ &copy_code( $source_dir . "/" . $setup_dir{$dst}, $update_dir )
+ unless ( $setup_dir{$dst} eq "misc" );
+ $result = 1;
+ }
+ return $result;
+}
+
+sub do_build($) {
+ my $command = shift;
+ printf "%% %s\n", $command if ($opt_v);
+ system($command);
+}
+
+sub finish_dir() {
+ printf "** $target_dir\n";
+ system("diff -Naurb $target_dir $update_dir | diffstat -n 30")
+ if ( -d $target_dir );
+ if ($opt_n) {
+ &do_build("cd $update_dir && make -n") if ($opt_x);
+ }
+ else {
+ if ( -d $backup_dir ) {
+ printf STDERR "? backup directory exists: %s\n", $backup_dir;
+ }
+ else {
+ &rename_dir( $target_dir, $backup_dir );
+ &rename_dir( $update_dir, $target_dir );
+ }
+ &do_build("cd $target_dir && make") if ($opt_x);
+ }
+}
+
+################################################################################
+
+sub only_c_files($) {
+ my @data = @{ $_[0] };
+ my %data;
+ for my $n ( 0 .. $#data ) {
+ my $text = $data[$n];
+ $data{$text}++ if ( $text =~ /\.c$/ );
+ }
+ return sort keys %data;
+}
+
+sub makefile_list($$$) {
+ my @data = @{ $_[0] };
+ my $name = $_[1];
+ my $skip = $_[2];
+ my %data;
+ my $state = 0;
+ for my $n ( 0 .. $#data ) {
+ my $text = $data[$n];
+ $text =~ s/^\s+//;
+ next if ( index( $text, $skip ) == 0 );
+ $text =~ s/\s+=/=/;
+ $text =~ s/=\s+/=/;
+ $text =~ s/\s*\\//;
+ $state = 1 if ( $text =~ /^${name}=/ );
+ next unless ( $state == 1 );
+
+ if ( index( $text, "(trace)" ) >= 0 and not $opt_t ) {
+ next unless ( $text =~ /\b(lib_trace|visbuf)\.c$/ );
+ }
+ if ( not $opt_t ) {
+ next if ( $text =~ /\b[fm]_trace\.c$/ );
+ }
+ $text =~ s/^.*=//;
+ $text =~ s/\$o/.o/g;
+ $text =~ s/^.*\///;
+ next if ( $text eq "link_test.c" );
+ next if ( $text eq "mf_common.h" );
+ next if ( $text eq "transform.h" );
+ $data{$text}++ if ( $text ne "" );
+ last if ( $data[$n] !~ /\\$/ );
+ }
+ return sort keys %data;
+}
+
+sub manpage_list($) {
+ my $path = shift;
+ my @data = &read_dir($path);
+ my %data;
+ for my $n ( 0 .. $#data ) {
+ my $text = $data[$n];
+ $data{$text}++ if ( $text =~ /\.\d$/ );
+ }
+ return sort keys %data;
+}
+
+sub columns_of($) {
+ my $string = shift;
+ my $result = 0;
+ for my $n ( 0 .. length($string) - 1 ) {
+ my $c = substr( $string, $n, 1 );
+ if ( $c eq "\t" ) {
+ $result |= 7;
+ $result++;
+ }
+ elsif ( $c eq "\n" ) {
+ $result = 0;
+ }
+ else {
+ ++$result;
+ }
+ }
+ return $result;
+}
+
+sub format_list($$) {
+ my $name = $_[0];
+ my @data = @{ $_[1] };
+ my $keep = ( defined $_[2] ) ? 1 : 0;
+ my $base;
+ my $fill;
+ if ( length($name) >= 9 ) {
+ $fill = " ";
+ $base = length($name) + 1;
+ }
+ else {
+ $base = 9;
+ $fill = "\t";
+ }
+ my $result = sprintf( "%s%s", $name, $fill );
+ if ( $keep == 0 ) {
+ my %data;
+ for my $n ( 0 .. $#data ) {
+ $data{ $data[$n] } = 1 if ( defined $data[$n] );
+ }
+ @data = sort keys %data;
+ }
+ for my $n ( 0 .. $#data ) {
+ my $data = $data[$n];
+ my $col = &columns_of($result);
+ my $add = 1 + length($data);
+ if ( ( $col + $add ) > 76 ) {
+ $result .= " " if ( $col > $base );
+ $base = 9;
+ $fill = "\t";
+ $result .= "\\\n" . $fill . $data;
+ }
+ else {
+ $result .= " " if ( $col > $base );
+ $result .= $data;
+ }
+ }
+ return $result;
+}
+
+################################################################################
+
+sub compare_makefiles($) {
+ if ($opt_v) {
+ my $newfile = shift;
+ my $bakfile =
+ ( -d $backup_dir ? $backup_dir : $target_dir ) . "/Makefile";
+ system("diff -u $bakfile $newfile") if ( -f $bakfile );
+ }
+}
+
+# The curses makefile has to build build-time utilities and generate source.
+sub gen_1st_makefile() {
+ my $libname = "curses";
+ my $oldfile = "$source_dir/n$libname/Makefile";
+ my @oldfile = &read_file($oldfile);
+
+ my $newfile = "$update_dir/Makefile";
+ open( my $fp, ">", $newfile ) || &failed("cannot open $newfile");
+ my @subdirs = (
+ '${.CURDIR}/base', '${.CURDIR}/tinfo',
+ '${.CURDIR}/tty', '${.CURDIR}/widechar'
+ );
+ $subdirs[ $#subdirs + 1 ] = '${.CURDIR}/trace' if ($opt_t);
+ printf $fp <<EOF;
+# $generated_by
+
+LIB= $libname
+
+# Uncomment this to enable tracing in libcurses
+#CURSESTRACE=-DTRACE
+
+# This is used to compile terminal info directly into the library
+FALLBACK_LIST=
+
+# XXX - should be defined elsewhere
+AWK?= /usr/bin/awk
+
+# Search in subdirs
+EOF
+ printf $fp "%s\n", &format_list( ".PATH:", \@subdirs );
+
+ my @autosrc = &makefile_list( \@oldfile, "AUTO_SRC", "?" );
+ my @auto_cc = &only_c_files( \@autosrc );
+ printf $fp "%s\n", &format_list( "SRCS=", \@auto_cc );
+
+ my @sources = &makefile_list( \@oldfile, "C_SRC", "./" );
+ printf $fp "%s\n", &format_list( "SRCS+=", \@sources );
+
+ printf $fp <<EOF;
+
+HOSTCFLAGS?= \${CFLAGS}
+HOSTLDFLAGS?= \${LDFLAGS}
+HOSTCFLAGS+= -I. -I\${.CURDIR} \${CURSESTRACE}
+CFLAGS+= -I. -I\${.CURDIR} \${CURSESTRACE} -D_XOPEN_SOURCE_EXTENDED -DNDEBUG
+
+EOF
+ my @manpages = &manpage_list($update_dir);
+ printf $fp "%s\n", &format_list( "MAN=", \@manpages );
+
+ $autosrc[ $#autosrc++ ] = "make_hash";
+ $autosrc[ $#autosrc++ ] = "make_keys";
+ printf $fp "%s\n", &format_list( "GENERATED=", \@autosrc );
+ printf $fp <<EOF;
+
+CAPLIST = \${.CURDIR}/Caps
+USE_BIG_STRINGS = 1
+
+CLEANFILES+= \${GENERATED}
+
+BUILDFIRST = \${GENERATED}
+
+includes:
+ \@cmp -s \${DESTDIR}/usr/include/ncurses.h \${.CURDIR}/curses.h || \\
+ \${INSTALL} \${INSTALL_COPY} -m 444 -o \$(BINOWN) -g \$(BINGRP) \\
+ \${.CURDIR}/curses.h \${DESTDIR}/usr/include/ncurses.h
+ \@cd \${.CURDIR}; for i in ncurses_dll.h unctrl.h term.h termcap.h; do \\
+ cmp -s \$\$i \${DESTDIR}/usr/include/\$\$i || \\
+ \${INSTALL} \${INSTALL_COPY} -m 444 -o \$(BINOWN) -g \$(BINGRP) \$\$i \\
+ \${DESTDIR}/usr/include; done
+
+keys.list: \${.CURDIR}/tinfo/MKkeys_list.sh
+ sh \${.CURDIR}/tinfo/MKkeys_list.sh \${.CURDIR}/Caps | sort > \${.TARGET}
+
+fallback.c: \${.CURDIR}/tinfo/MKfallback.sh
+ sh \${.CURDIR}/tinfo/MKfallback.sh /usr/share/terminfo \${.CURDIR}/../../share/termtypes/termtypes.master \$(FALLBACK_LIST) > \${.TARGET}
+
+lib_gen.c: \${.CURDIR}/base/MKlib_gen.sh
+ sh \${.CURDIR}/base/MKlib_gen.sh "\${CC} -E -P -I\${.CURDIR}" \\
+ "\${AWK}" generated < \${.CURDIR}/curses.h > lib_gen.c
+
+init_keytry.h: make_keys keys.list
+ ./make_keys keys.list > \${.TARGET}
+
+make_keys: \${.CURDIR}/tinfo/make_keys.c \${.CURDIR}/curses.priv.h names.c
+ \${HOSTCC} \${LDSTATIC} \${HOSTCFLAGS} \${HOSTLDFLAGS} \\
+ -o \${.TARGET} \${.CURDIR}/tinfo/make_keys.c \${LDADD}
+EOF
+
+ if ( &patchdate >= 20090808 ) {
+ printf $fp <<EOF;
+make_hash: \${.CURDIR}/tinfo/make_hash.c \\
+ \${.CURDIR}/curses.priv.h \\
+ \${.CURDIR}/hashsize.h
+ \${HOSTCC} \${LDSTATIC} \${HOSTCFLAGS} -DMAIN_PROGRAM \${HOSTLDFLAGS} \\
+ -o \${.TARGET} \${.CURDIR}/tinfo/make_hash.c \${LDADD}
+EOF
+ }
+ else {
+ printf $fp <<EOF;
+make_hash: \${.CURDIR}/tinfo/comp_hash.c \\
+ \${.CURDIR}/curses.priv.h \\
+ \${.CURDIR}/hashsize.h
+ \${HOSTCC} \${LDSTATIC} \${HOSTCFLAGS} -DMAIN_PROGRAM \${HOSTLDFLAGS} \\
+ -o \${.TARGET} \${.CURDIR}/tinfo/comp_hash.c \${LDADD}
+EOF
+ }
+
+ if ( &patchdate >= 20190309 ) {
+ printf $fp <<EOF;
+CAPLIST += \${.CURDIR}/Caps-ncurses
+
+comp_userdefs.c: make_hash \\
+ \${.CURDIR}/hashsize.h \\
+ \${.CURDIR}/tinfo/MKuserdefs.sh
+ sh \${.CURDIR}/tinfo/MKuserdefs.sh \${AWK} \${USE_BIG_STRINGS} \${CAPLIST} > \${.TARGET}
+EOF
+ }
+ printf $fp <<EOF;
+
+expanded.c: \${.CURDIR}/term.h \${.CURDIR}/curses.priv.h \\
+ \${.CURDIR}/ncurses_cfg.h \${.CURDIR}/tty/MKexpanded.sh
+ sh \${.CURDIR}/tty/MKexpanded.sh "\${CC} -E -P" \${CPPFLAGS} > \${.TARGET}
+
+comp_captab.c: make_hash
+ sh \${.CURDIR}/tinfo/MKcaptab.sh \${AWK} \${USE_BIG_STRINGS} \\
+ \${.CURDIR}/tinfo/MKcaptab.awk \${CAPLIST} > \${.TARGET}
+
+lib_keyname.c: keys.list \${.CURDIR}/base/MKkeyname.awk
+ \${AWK} -f \${.CURDIR}/base/MKkeyname.awk \\
+ bigstrings=\${USE_BIG_STRINGS} \\
+ keys.list > \${.TARGET}
+
+names.c: \${.CURDIR}/tinfo/MKnames.awk
+ \${AWK} -f \${.CURDIR}/tinfo/MKnames.awk \\
+ bigstrings=\${USE_BIG_STRINGS} \\
+ \${CAPLIST} > \${.TARGET}
+codes.c: \${.CURDIR}/tinfo/MKcodes.awk
+ \${AWK} -f \${.CURDIR}/tinfo/MKcodes.awk \\
+ bigstrings=\${USE_BIG_STRINGS} \\
+ \${CAPLIST} > \${.TARGET}
+
+unctrl.c: \${.CURDIR}/base/MKunctrl.awk
+ echo | \${AWK} -f \${.CURDIR}/base/MKunctrl.awk bigstrings=1 > \${.TARGET}
+
+.include <bsd.own.mk>
+
+# Link libtermlib, libtermcap to libcurses so we don't break people's Makefiles
+afterinstall:
+ -cd \${DESTDIR}\${LIBDIR}; \\
+ for i in \${_LIBS}; do \\
+ ln -f \$\$i `echo \$\$i | sed 's/curses/termlib/'`; \\
+ ln -f \$\$i `echo \$\$i | sed 's/curses/termcap/'`; \\
+ ln -f \$\$i `echo \$\$i | sed 's/curses/ncurses/'`; \\
+ ln -f \$\$i `echo \$\$i | sed 's/curses/ncursesw/'`; \\
+ done
+
+.include <bsd.lib.mk>
+EOF
+ close $fp;
+ &compare_makefiles($newfile);
+}
+
+sub gen_lib_makefile($) {
+ my $libname = shift;
+ my $oldfile = "$source_dir/$libname/Makefile";
+ my @oldfile = &read_file($oldfile);
+
+ # in ncurses, header-files are quasi-generated, because the original
+ # header file for form/menu/panel lives in the source-directory, but is
+ # copied to the include-directory with "make sources".
+ my @headers = &makefile_list( \@oldfile, "AUTO_SRC", "?" );
+
+ # The C source is more straightforward.
+ my @sources = &makefile_list( \@oldfile, "C_SRC", "?" );
+ my $newfile = "$update_dir/Makefile";
+ open( my $fp, ">", $newfile ) || &failed("cannot open $newfile");
+ printf $fp <<EOF;
+# $generated_by
+
+LIB= $libname
+EOF
+
+ printf $fp "%s\n", &format_list( "SRCS=", \@sources );
+ printf $fp "%s\n", &format_list( "HDRS=", \@headers );
+ my $includes = '-I${.CURDIR}/../libcurses';
+ $includes .= ' -I${.CURDIR}/../libmenu' if ( $libname eq "form" );
+ printf $fp <<EOF;
+CFLAGS+=$includes -D_XOPEN_SOURCE_EXTENDED -DNDEBUG
+EOF
+ my @manpages = &manpage_list($update_dir);
+ printf $fp "%s\n", &format_list( "MAN=", \@manpages );
+ printf $fp <<EOF;
+
+includes:
+ \@cd \$\{.CURDIR}; for i in \$\{HDRS}; do \\
+ cmp -s \$\$i \${DESTDIR}/usr/include/\$\$i || \\
+ \${INSTALL} \${INSTALL_COPY} -m 444 -o \$(BINOWN) -g \$(BINGRP) \$\$i \\
+ \${DESTDIR}/usr/include; done
+
+.include <bsd.own.mk>
+
+afterinstall:
+ -cd \${DESTDIR}\${LIBDIR}; \\
+ for i in \${_LIBS}; do \\
+ ln -f \$\$i `echo \$\$i | sed 's/${libname}/${libname}w/'`; \\
+ done
+
+.include <bsd.lib.mk>
+EOF
+ close $fp;
+ &compare_makefiles($newfile);
+}
+
+sub gen_bin_makefile($) {
+ my $binname = shift;
+ my $oldfile = "$source_dir/progs/Makefile";
+ my @oldfile = &read_file($oldfile);
+ my $newfile = "$update_dir/Makefile";
+
+ open( my $fp, ">", $newfile ) || &failed("cannot open $newfile");
+ my @sources = ("$binname.c");
+ my @links = ();
+ my @autosrc = &makefile_list( \@oldfile, "AUTO_SRC", "?" );
+
+ my $tput_ver = 0;
+ my $use_dump_entry = 0;
+ my $use_termsort = 0;
+ my $use_tparm_type = 0;
+ my $use_transform = 0;
+
+ $use_dump_entry = 1 if ( $binname eq "infocmp" or $binname eq "tic" );
+ $use_termsort = 1 if ( $use_dump_entry or $binname eq "tput" );
+
+ if ( &patchdate >= 20090314 ) {
+ $use_transform = 1 if ( $binname =~ /^(tic|tput|tset)/ );
+ }
+ if ( &patchdate >= 20140521 ) {
+ $use_tparm_type = 1 if ( $binname =~ /^(tic|tput)$/ );
+ }
+ if ( &patchdate >= 20160806 ) {
+ $tput_ver = &patchdate;
+ }
+
+ $sources[ ++$#sources ] = "dump_entry.c" if ($use_dump_entry);
+ $sources[ ++$#sources ] = "tparm_type.c" if ($use_tparm_type);
+ $sources[ ++$#sources ] = "transform.c" if ($use_transform);
+
+ $autosrc[ ++$#autosrc ] = "termsort.c" if ($use_termsort);
+
+ # transform.h also is generated, but OpenBSD checked-in a copy
+
+ if ( $binname eq "tic" ) {
+ $links[ ++$#links ] = "captoinfo";
+ $links[ ++$#links ] = "infotocap";
+ }
+ elsif ( $binname eq "tabs" ) {
+ $sources[ ++$#sources ] = "tty_settings.c" if ( $tput_ver >= 20161224 );
+ }
+ elsif ( $binname eq "tput" ) {
+ $sources[ ++$#sources ] = "clear_cmd.c" if ( $tput_ver >= 20161022 );
+ $sources[ ++$#sources ] = "reset_cmd.c" if ( $tput_ver >= 20160806 );
+ $sources[ ++$#sources ] = "tty_settings.c" if ( $tput_ver >= 20161224 );
+ $links[ ++$#links ] = "clear";
+ }
+ elsif ( $binname eq "tset" ) {
+ $sources[ ++$#sources ] = "reset_cmd.c" if ( $tput_ver >= 20160806 );
+ $sources[ ++$#sources ] = "tty_settings.c" if ( $tput_ver >= 20161224 );
+ $links[ ++$#links ] = "reset";
+ }
+
+ printf $fp <<EOF;
+# $generated_by
+
+PROG= $binname
+EOF
+ printf $fp "%s\n", &format_list( "SRCS=", \@sources );
+ printf $fp <<EOF;
+CURSES= \${.CURDIR}/../../lib/libcurses
+DPADD= \${LIBCURSES}
+LDADD= -L\${CURSES} -lcurses\t# in-tree link to add _nc_strict_bsd, etc
+EOF
+ if ( $#links >= 0 ) {
+ my @bin_links;
+ for my $n ( 0 .. $#links ) {
+ $bin_links[ ++$#bin_links ] = '${BINDIR}/' . $binname;
+ $bin_links[ ++$#bin_links ] = '${BINDIR}/' . $links[$n];
+ }
+ printf $fp "%s\n", &format_list( "LINKS=", \@bin_links, 1 );
+ }
+ my $ticfix = '${.CURDIR}/';
+ if ( $binname eq "tic" ) {
+ printf $fp <<EOF;
+CFLAGS+= -I\${CURSES} -I\${.CURDIR} -I.
+EOF
+ }
+ else {
+ $ticfix = '${TIC}/';
+ printf $fp <<EOF;
+TIC= \${.CURDIR}/../tic
+CFLAGS+= -I\${CURSES} -I\${TIC} -I\${.CURDIR} -I.
+.PATH: \${TIC}
+EOF
+ }
+ printf $fp "%s\n", &format_list( "CLEANFILES+=", \@autosrc );
+ if ($use_dump_entry) {
+ printf $fp <<EOF;
+
+dump_entry.o: termsort.c
+EOF
+ }
+ if ($use_termsort) {
+ printf $fp <<EOF;
+
+termsort.c: ${ticfix}MKtermsort.sh
+ sh ${ticfix}MKtermsort.sh awk \${CURSES}/Caps > \${.TARGET}
+EOF
+ }
+ printf $fp <<EOF;
+
+.include <bsd.prog.mk>
+EOF
+ close $fp;
+
+ &compare_makefiles($newfile);
+}
+
+################################################################################
+
+sub setup_lib_libcurses() {
+ if ( &setup_dir("lib/libcurses") ) {
+ &copy_code( "$source_dir/ncurses/base", "$update_dir/base" );
+ &copy_code( "$source_dir/ncurses/tinfo", "$update_dir/tinfo" );
+ &copy_code( "$source_dir/ncurses/tty", "$update_dir/tty" );
+ &copy_code( "$source_dir/ncurses/widechar", "$update_dir/widechar" );
+ &copy_file( "$source_dir/include/Caps", $update_dir );
+ &copy_file( "$source_dir/include/capdefaults.c", $update_dir );
+ &copy_file( "$source_dir/include/curses.h", $update_dir );
+ &copy_file( "$source_dir/include/hashed_db.h", $update_dir );
+ &copy_file( "$source_dir/include/hashsize.h", $update_dir );
+ &copy_file( "$source_dir/include/nc_alloc.h", $update_dir );
+ &copy_file( "$source_dir/include/nc_panel.h", $update_dir );
+ &copy_file( "$source_dir/include/nc_tparm.h", $update_dir );
+ &copy_file( "$source_dir/include/ncurses_cfg.h", $update_dir );
+ &copy_file( "$source_dir/include/ncurses_def.h", $update_dir );
+ &copy_file( "$source_dir/include/ncurses_dll.h", $update_dir );
+ &copy_file( "$source_dir/include/parametrized.h", $update_dir );
+ &copy_file( "$source_dir/include/term.h", $update_dir );
+ &copy_file( "$source_dir/include/termcap.h", $update_dir );
+ &copy_file( "$source_dir/include/term_entry.h", $update_dir );
+ &copy_file( "$source_dir/include/tic.h", $update_dir );
+ &copy_file( "$source_dir/include/unctrl.h", $update_dir );
+ &copy_file( "$source_dir/man/terminfo.5", $update_dir );
+ &copy_docs("curses");
+
+ &verbose(".. work around a bug in /bin/sh in OpenBSD");
+ system( "sed -i"
+ . " -e 's,^shift,test \$# != 0 \\&\\& shift,'"
+ . " $update_dir/tinfo/MKfallback.sh" );
+
+ # OpenBSD dropped support for sys/ttydev.h, without mentioning the
+ # system version. Just trim it.
+ &verbose(".. work around mishandled sys/ttydef.h");
+ system( "sed -i"
+ . " -e '/__FreeBSD_version/s,|| defined(__OpenBSD__),,'"
+ . " $update_dir/tinfo/lib_baudrate.c" );
+
+ if ($opt_t) {
+ &copy_code( "$source_dir/ncurses/trace", "$update_dir/trace" );
+ }
+ else {
+ &copy_file( "$source_dir/ncurses/trace/lib_trace.c", $update_dir );
+ &copy_file( "$source_dir/ncurses/trace/visbuf.c", $update_dir );
+ }
+ &copy_file( "$source_dir/include/nc_termios.h", $update_dir )
+ if ( &patchdate >= 20110625 );
+ &copy_file( "$source_dir/include/nc_string.h", $update_dir )
+ if ( &patchdate >= 20120222 );
+ &copy_file( "$source_dir/include/nc_access.h", $update_dir )
+ if ( &patchdate >= 20210626 );
+ &copy_file( "$source_dir/include/Caps-ncurses", $update_dir )
+ if ( &patchdate >= 20190302 );
+ &gen_1st_makefile;
+ &finish_dir;
+ }
+}
+
+sub setup_lib_libform() {
+ if ( &setup_dir("lib/libform") ) {
+ &copy_docs("form");
+ &gen_lib_makefile("form");
+ &finish_dir;
+ }
+}
+
+sub setup_lib_libmenu() {
+ if ( &setup_dir("lib/libmenu") ) {
+ &copy_docs("menu");
+ &gen_lib_makefile("menu");
+ &finish_dir;
+ }
+}
+
+sub setup_lib_libpanel() {
+ if ( &setup_dir("lib/libpanel") ) {
+ &copy_docs("panel");
+ &gen_lib_makefile("panel");
+ &finish_dir;
+ }
+}
+
+sub setup_bin_infocmp() {
+ if ( &setup_dir("usr.bin/infocmp") ) {
+ &copy_docs("infocmp");
+ &gen_bin_makefile("infocmp");
+ &finish_dir;
+ }
+}
+
+sub setup_bin_tabs() {
+ if ( &setup_dir("usr.bin/tabs") ) {
+ &copy_docs("tabs");
+ &gen_bin_makefile("tabs");
+ &finish_dir;
+ }
+}
+
+sub setup_bin_tic() {
+ if ( &setup_dir("usr.bin/tic") ) {
+ if ( &patchdate >= 20140521 ) {
+ &copy_file( "$source_dir/progs/tparm_type.c", $update_dir );
+ &copy_file( "$source_dir/progs/tparm_type.h", $update_dir );
+ }
+
+ # shared files for tput/tset
+ if ( &patchdate >= 20160806 ) {
+ &copy_file( "$source_dir/progs/reset_cmd.c", $update_dir );
+ &copy_file( "$source_dir/progs/reset_cmd.h", $update_dir );
+ }
+ if ( &patchdate >= 20161022 ) {
+ &copy_file( "$source_dir/progs/clear_cmd.c", $update_dir );
+ &copy_file( "$source_dir/progs/clear_cmd.h", $update_dir );
+ }
+ if ( &patchdate >= 20161224 ) {
+ &copy_file( "$source_dir/progs/tty_settings.c", $update_dir );
+ &copy_file( "$source_dir/progs/tty_settings.h", $update_dir );
+ }
+ &copy_docs("tic");
+ &gen_bin_makefile("tic");
+ &finish_dir;
+ }
+}
+
+sub setup_bin_toe() {
+ if ( &setup_dir("usr.bin/toe") ) {
+ &copy_docs("toe");
+ &gen_bin_makefile("toe");
+ &finish_dir;
+ }
+}
+
+sub setup_bin_tput() {
+ if ( &setup_dir("usr.bin/tput") ) {
+ &copy_docs("tput");
+ &gen_bin_makefile("tput");
+ &finish_dir;
+ }
+}
+
+sub setup_bin_tset() {
+ if ( &setup_dir("usr.bin/tset") ) {
+ &copy_docs("tset");
+ &gen_bin_makefile("tset");
+ &finish_dir;
+ }
+}
+
+sub setup_terminfo() {
+ if ( &setup_dir("share/termtypes") ) {
+ &copy_code( $target_dir, $update_dir );
+ &copy_file( "$source_dir/misc/terminfo.src",
+ "$update_dir/termtypes.master" );
+
+ # build the terminfo database using the in-tree tic.
+ # This is always best practice, but for ncurses 6.2 in particular is
+ # required.
+ my $prog = abs_path("$target_dir/../../usr.bin/tic");
+ my $libs = abs_path("$target_dir/../../lib/libcurses");
+ if ( defined $prog and defined $libs ) {
+ $prog .= "/tic";
+ &verbose(".. changing makefile to use in-tree tic");
+ system( "sed -i -E "
+ . "-e 's,(TIC=).*,\\1\t$prog,' "
+ . "-e 's,(\\\${TIC}),LD_LIBRARY_PATH=$libs \\1,' "
+ . "$update_dir/Makefile" );
+ }
+ &finish_dir;
+ }
+}
+
+sub configure_tree() {
+ return if ( -f "ncurses/Makefile" );
+ my @search = ( "/usr/share/terminfo", "/usr/local/share/terminfo" );
+ my @prefix = ("./configure");
+ $prefix[ ++$#prefix ] = "--with-abi-version=5"
+ if ( &patchdate >= 20150502 && !$opt_6 );
+ my @options = (
+ "--with-ospeed=int", #
+ "--with-shared", #
+ "--without-normal", #
+ "--without-debug", #
+ "--with-terminfo-dirs=" . join( ':', @search ), #
+ "--without-ada", #
+ "--disable-hard-tabs", #
+ "--enable-const", #
+ "--enable-getcap", #
+ "--enable-bsdpad", #
+ "--enable-signed-char", #
+ "--enable-termcap", #
+ "--enable-widec", #
+ "--disable-setuid-environ"
+ );
+ $options[ ++$#options ] = "--with-trace" if ($opt_t);
+ $options[ ++$#options ] = "--enable-string-hacks"
+ if ( &patchdate >= 20120225 );
+ system( join( ' ', @prefix ) . ' ' . join( ' ', @options ) );
+ &failed("problem with configuring") unless ( -f "ncurses/Makefile" );
+
+ system("make sources");
+
+ # OpenBSD developers edit the generated file and do not regen it when
+ # doing upgrades. This script reflects those edits.
+ system( "sed -i" . " -E"
+ . " -e '/TYPEOF_CHTYPE/s,int,long,'"
+ . " -e '/USE_TERMCAP/d'"
+ . " -e '/HAVE_LIB(FORM|MENU|PANEL)/s,^(.*)\$,/* \\1 */,'"
+ . " -e 's/TERMPATH.*/PURE_TERMINFO 0/'"
+ . " -e '/SYSTEM_NAME/s,\[0-9.\]+,,'"
+ . " include/ncurses_cfg.h" );
+}
+
+sub get_definitions() {
+ my @data = &read_file("dist.mk");
+ for my $n ( 0 .. $#data ) {
+ my $text = $data[$n];
+ $text =~ s/^\s*//;
+ next unless ( $text =~ /^NCURSES.*=/ );
+ $text =~ s/\s*=\s+/=/;
+ my $name = $text;
+ $name =~ s/=.*//;
+ my $value = $text;
+ $value =~ s/^[^=]*=//;
+ $value =~ s/\s.*//;
+ $definitions{$name} = $value;
+ }
+}
+
+sub setup_all_dirs() {
+ printf "** %s all build-directories\n", $opt_r ? "removing" : "setting up";
+ &get_definitions;
+ &configure_tree unless ($opt_r);
+ &setup_lib_libcurses;
+ &setup_lib_libmenu;
+ &setup_lib_libform; # build after libmenu, for mf_common.h
+ &setup_lib_libpanel;
+ &setup_bin_tic; # do this first, for shared headers
+ &setup_bin_infocmp;
+ &setup_bin_tabs if ( -f "$source_dir/progs/tabs.c" );
+ &setup_bin_toe;
+ &setup_bin_tput;
+ &setup_bin_tset;
+ &setup_terminfo;
+}
+
+sub usage() {
+ print <<EOF;
+Usage: ncu2openbsd [options] [sourcetree]
+
+Options:
+ -6 use ABI 6 rather than 5 if available
+ -d DST specify destination (default: /usr/src)
+ -n no-op, do not update destination
+ -r remove update, restore sources from ".orig"
+ -t enable ncurses trace
+ -v verbose
+ -x build each directory after setting up
+EOF
+ exit;
+}
+
+$Getopt::Std::STANDARD_HELP_VERSION = 1;
+&getopts('6d:nrtvx') || &usage();
+$opt_d = "/usr/src" unless ($opt_d);
+&usage() unless ( $#ARGV <= 0 );
+
+if ( $#ARGV == 0 ) {
+ if ( -f $ARGV[0] ) {
+ printf "** unpacking sources: %s\n", $ARGV[0];
+ &unpack( $ARGV[0] );
+ }
+ else {
+ &check_sourcedir( $ARGV[0] );
+ }
+}
+else {
+ &check_sourcedir(".");
+}
+
+&setup_all_dirs;
+
+# move out of temp-directory to allow cleanup.
+chdir $current;
+
+1;
diff --git a/misc/ncurses-config.in b/misc/ncurses-config.in
index eae39a516ff3..c9f1cf809843 100644
--- a/misc/ncurses-config.in
+++ b/misc/ncurses-config.in
@@ -1,7 +1,7 @@
#!@SHELL@
-# $Id: ncurses-config.in,v 1.46 2021/01/23 23:47:46 tom Exp $
+# $Id: ncurses-config.in,v 1.52 2022/07/26 21:36:28 tom Exp $
##############################################################################
-# Copyright 2018-2020,2021 Thomas E. Dickey #
+# Copyright 2018-2021,2022 Thomas E. Dickey #
# Copyright 2006-2015,2017 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -98,10 +98,10 @@ fi
# are standard library directories (i.e., the linker is supposed to search
# those directories).
#
-# There is no portable way to find the list of standard library directories.
+# There is no portable way to find the list of standard library directories.
# Require a POSIX shell anyway, to keep this simple.
lib_flags=
-for opt in -L$libdir @LDFLAGS@ @EXTRA_PKG_LDFLAGS@ $LIBS
+for opt in -L$libdir @EXTRA_PKG_LDFLAGS@ $LIBS
do
case $opt in
-specs*) # ignore linker specs-files which were used to build library
@@ -110,8 +110,14 @@ do
-Wl,-z,*) # ignore flags used to manipulate shared image
continue
;;
+ -Wl,--dynamic-linker*) # ignore ELF interpreter
+ continue
+ ;;
+ -Wl,--as-needed|-Wl,--build-id=*|-Wl,-dT,*|-Wl,-T,*)
+ continue
+ ;;
-L*)
- lib_check=${opt##-L}
+ lib_check=`echo "x$opt" | sed -e 's/^.-L//'`
[ -d "$lib_check" ] || continue
case "$lib_check" in
@LD_SEARCHPATH@) # skip standard libdir
@@ -167,7 +173,7 @@ do
lib_flags="$lib_flags $opt"
done
-[ $# = 0 ] && exec @SHELL@ $0 --error
+[ $# = 0 ] && exec @SHELL@ "$0" --error
while [ $# -gt 0 ]; do
case "$1" in
@@ -198,7 +204,7 @@ ENDECHO
[ -n "$OPTS" ] && OPTS="$OPTS "
OPTS="${OPTS}${opt}"
done
- printf "%s\n" "$OPTS"
+ printf '%s\n' "$OPTS"
;;
--libs-only-L)
OPTS=
@@ -211,7 +217,7 @@ ENDECHO
;;
esac
done
- printf "%s\n" "$OPTS"
+ printf '%s\n' "$OPTS"
;;
--libs-only-l)
OPTS=
@@ -224,7 +230,7 @@ ENDECHO
;;
esac
done
- printf "%s\n" "$OPTS"
+ printf '%s\n' "$OPTS"
;;
--libs-only-other)
OPTS=
@@ -239,7 +245,7 @@ ENDECHO
;;
esac
done
- printf "%s\n" "$OPTS"
+ printf '%s\n' "$OPTS"
;;
# identification
--version)
@@ -265,7 +271,7 @@ ENDECHO
elif [ "${includedir}" != /usr/include ]; then
INCS="${includedir}"
fi
- echo $INCS
+ echo "$INCS"
;;
--libdir)
echo "${libdir}"
@@ -285,7 +291,7 @@ ENDECHO
# general info
--help)
cat <<ENDHELP
-Usage: `basename $0` [options]
+Usage: `basename "$0"` [options]
Options:
--prefix echos the package-prefix of ${THIS}
@@ -315,7 +321,7 @@ Options:
ENDHELP
;;
--error|*)
- @SHELL@ $0 --help 1>&2
+ @SHELL@ "$0" --help 1>&2
exit 1
;;
esac
diff --git a/misc/run_tic.in b/misc/run_tic.in
index b335b48e2a0d..bd11c4c80d4c 100644
--- a/misc/run_tic.in
+++ b/misc/run_tic.in
@@ -1,7 +1,7 @@
#!@SHELL@
-# $Id: run_tic.in,v 1.38 2020/02/15 15:30:53 tom Exp $
+# $Id: run_tic.in,v 1.40 2022/07/16 19:37:03 tom Exp $
##############################################################################
-# Copyright 2019,2020 Thomas E. Dickey #
+# Copyright 2019-2020,2022 Thomas E. Dickey #
# Copyright 2000-2012,2017 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -42,21 +42,20 @@ echo "** Building terminfo database, please wait..."
# The script is designed to be run from the misc/Makefile as
# make install.data
-: ${suffix:=@EXEEXT@}
-: ${DESTDIR:=@DESTDIR@}
-: ${prefix:=@prefix@}
-: ${exec_prefix:=@exec_prefix@}
-: ${bindir:=@bindir@}
-: ${top_srcdir:=@top_srcdir@}
-: ${srcdir:=@srcdir@}
-: ${datarootdir:=@datarootdir@}
-: ${datadir:=@datadir@}
-: ${TIC_PATH:=@TIC@}
-: ${ticdir:=@TERMINFO@}
-: ${source:=@TERMINFO_SRC@}
-: ${LN_S:="@LN_S@"}
-: ${cross_compiling:=no}
-: ${ext_funcs:=@NCURSES_EXT_FUNCS@}
+: "${suffix:=@EXEEXT@}"
+: "${DESTDIR:=@DESTDIR@}"
+: "${prefix:=@prefix@}"
+: "${exec_prefix:=@exec_prefix@}"
+: "${bindir:=@bindir@}"
+: "${top_srcdir:=@top_srcdir@}"
+: "${srcdir:=@srcdir@}"
+: "${datarootdir:=@datarootdir@}"
+: "${datadir:=@datadir@}"
+: "${TIC_PATH:=@TIC@}"
+: "${ticdir:=@TERMINFO@}"
+: "${source:=@TERMINFO_SRC@}"
+: "${cross_compiling:=no}"
+: "${ext_funcs:=@NCURSES_EXT_FUNCS@}"
test -z "${DESTDIR}" && DESTDIR=
@@ -118,7 +117,7 @@ TICDIR=`echo "$TERMINFO" | sed -e 's%/share/\([^/]*\)$%/lib/\1%'`
PARENT=`echo "$TERMINFO" | sed -e 's%/[^/]*$%%'`
if test -n "$PARENT"
then
- test -d $PARENT || mkdir -p $PARENT
+ mkdir -p "$PARENT"
fi
# Remove the old terminfo stuff; we don't care if it existed before, and it
@@ -127,7 +126,7 @@ fi
# the directory is actually a symbolic link.
if test -d "$TERMINFO"
then
- ( cd "$TERMINFO" && rm -fr ? 2>/dev/null )
+ ( cd "$TERMINFO" && rm -fr ./? 2>/dev/null )
elif test -f "$TERMINFO.db"
then
( rm -f "$TERMINFO.db" 2>/dev/null )
@@ -183,9 +182,9 @@ if test "$TICDIR" != "$TERMINFO" ; then
( rm -f "$TICDIR" 2>/dev/null )
if ( cd "$TICDIR" 2>/dev/null )
then
- cd "$TICDIR"
+ cd "$TICDIR" || exit
TICDIR=`pwd`
- if test "$TICDIR "!= "$TERMINFO "; then
+ if test "$TICDIR " != "$TERMINFO "; then
# Well, we tried. Some systems lie to us, so the
# installer will have to double-check.
echo "Verify if $TICDIR and $TERMINFO are the same."
@@ -193,7 +192,7 @@ if test "$TICDIR" != "$TERMINFO" ; then
echo "Otherwise, remove $TICDIR and link it to $TERMINFO."
fi
else
- cd ${DESTDIR}$prefix
+ cd ${DESTDIR}$prefix || exit
# Construct a symbolic link that only assumes $ticdir has the
# same $prefix as the other installed directories.
RELATIVE=`echo $ticdir|sed -e 's%^'$prefix'/%%'`
diff --git a/misc/shlib b/misc/shlib
index 8772d4f4a9e0..7b93d170e821 100755
--- a/misc/shlib
+++ b/misc/shlib
@@ -1,6 +1,6 @@
#!/bin/sh
##############################################################################
-# Copyright 2020 Thomas E. Dickey #
+# Copyright 2020,2021 Thomas E. Dickey #
# Copyright 1998-2005,2007 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -30,7 +30,7 @@
#
# Author: Thomas E. Dickey <dickey@clark.net> 1996
#
-# $Id: shlib,v 1.13 2020/02/02 23:34:34 tom Exp $
+# $Id: shlib,v 1.14 2021/09/04 15:55:29 tom Exp $
# Use this script as a wrapper when running executables linked to shared
# libraries on systems that use the $LD_LIBRARY_PATH variable and don't embed
# the soname's path within the linked executable (such as IRIX), e.g,
@@ -81,7 +81,7 @@ q=""
for p in lib ../lib ../../lib ../../../lib
do
if test -d $p; then
- q=`cd $p; pwd`
+ q=`cd $p || exit; pwd`
break
elif test -f configure && test ! -d ../$p ; then
break
@@ -102,7 +102,7 @@ if test -n "$q" ; then
elif test -n "$LD_LIBRARY_PATH"; then
system=unix
else
- for r in $q/*.*
+ for r in "$q"/*.*
do
if test -f "$r"
then
diff --git a/misc/tdlint b/misc/tdlint
index 71b0d89b6d4d..8ff5a40bffee 100755
--- a/misc/tdlint
+++ b/misc/tdlint
@@ -1,6 +1,6 @@
#!/bin/sh
##############################################################################
-# Copyright 2020 Thomas E. Dickey #
+# Copyright 2020,2021 Thomas E. Dickey #
# Copyright 1998,2000 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -30,7 +30,7 @@
#
# Author: Thomas E. Dickey <dickey@clark.net> 1996
#
-# $Id: tdlint,v 1.7 2020/02/02 23:34:34 tom Exp $
+# $Id: tdlint,v 1.8 2021/09/04 15:55:29 tom Exp $
#
# Lint-script that allows user's own lint libraries, in addition to the ones
# installed in the system.
@@ -45,16 +45,16 @@ if test -z "$ARCH" ; then
exit 1
else
case $ARCH in
- AIX) set - $* -Nn4000
+ AIX) set - "$@" -Nn4000
;;
- IRIX) set - $* -n -lc
+ IRIX) set - "$@" -n -lc
;;
- FreeBSD) set - $* -g -p -u -v -z
+ FreeBSD) set - "$@" -g -p -u -v -z
;;
SunOS)
case `uname -r` in
5.*) ARCH=Solaris
- set - $* -n -lc
+ set - "$@" -n -lc
;;
esac
;;
@@ -63,7 +63,7 @@ fi
# LIBDIR=$HOME/lib/$ARCH/lint ;export LIBDIR
for p in $HOME/lib/$ARCH/lint /usr/lib/lint /usr/lib
do
- if [ -d $p ]
+ if [ -d "$p" ]
then
DIRS="$DIRS $p"
fi
@@ -74,15 +74,15 @@ do
case $1 in
-D*\"*) ;;
-L*)
- DIRS="`echo $1|sed -e 's/^-L//'` $DIRS"
+ DIRS="`echo "$1"|sed -e 's/^-L//'` $DIRS"
;;
-l*)
- lib="llib-l`echo $1 | sed -e 's/^-l//'`.ln"
+ lib="llib-l`echo "$1" | sed -e 's/^-l//'`.ln"
found=no
for p in $DIRS
do
- echo -n testing $p/$lib
- if [ -f $p/$lib ]
+ printf "testing %s" "$p/$lib"
+ if [ -f "$p/$lib" ]
then
LIBS="$LIBS $p/$lib"
echo " (ok)"
@@ -111,4 +111,4 @@ do
shift
done
#
-eval lint $OPT $FILES $LIBS
+exec lint $OPT $FILES $LIBS
diff --git a/misc/terminfo.src b/misc/terminfo.src
index c1fdeb8a875d..5d575b8eb454 100644
--- a/misc/terminfo.src
+++ b/misc/terminfo.src
@@ -6,8 +6,8 @@
# Report bugs and new terminal descriptions to
# bug-ncurses@gnu.org
#
-# $Revision: 1.866 $
-# $Date: 2021/02/20 23:39:21 $
+# $Revision: 1.1143 $
+# $Date: 2024/03/09 20:01:40 $
#
# The original header is preserved below for reference. It is noted that there
# is a "newer" version which differs in some cosmetic details (but actually
@@ -349,8 +349,10 @@ ansi+inittabs|ANSI initial tab-stops,
it#8, use=ansi+tabs,
ansi+erase|ANSI clear screen/line,
clear=\E[H\E[J, ed=\E[J, el=\E[K,
-ansi+rca|ANSI relative cursor-addressing,
+ansi+rca|ANSI relative cursor-addressing (1-based),
hpa=\E[%p1%{1}%+%dG, vpa=\E[%p1%{1}%+%dd,
+ansi+rca2|ANSI relative cursor-addressing,
+ hpa=\E[%i%p1%dG, vpa=\E[%i%p1%dd,
ansi+cup|ANSI absolute cursor-addressing,
cup=\E[%i%p1%d;%p2%dH, home=\E[H,
ansi+rep|ANSI repeat-character,
@@ -363,9 +365,12 @@ ansi+idc1|ANSI insert/delete one character,
dch1=\E[P, ich1=\E[@, rmir=\E[4l, smir=\E[4h,
ansi+idc|ANSI insert/delete characters,
dch=\E[%p1%dP, ich=\E[%p1%d@, use=ansi+idc1,
-ansi+arrows|ANSI normal-mode cursor-keys,
+ansi+arrows|ANSI normal-mode home and cursor-keys,
kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
khome=\E[H,
+ansi+apparrows|ANSI application-mode home and cursor-keys,
+ kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, khome=\EOH,
+ use=ansi+arrows,
ansi+sgr|ANSI graphic renditions,
blink=\E[5m, invis=\E[8m, rev=\E[7m,
sgr=\E[0%?%p3%t;7%;%?%p4%t;5%;%?%p7%t;8%;m,
@@ -425,7 +430,7 @@ klone+sgr|attribute control for ansi.sys displays,
use=klone+acs,
# Most Intel boxes do not treat "invis" (invisible) text.
-klone+sgr8|attribute control for ansi.sys displays,
+klone+sgr8|attribute control for ansi.sys displays with invis,
invis=\E[8m,
sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6
%t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
@@ -436,11 +441,9 @@ klone+sgr8|attribute control for ansi.sys displays,
# work; uses \E[12m instead, which is pretty bulletproof but loses you the ACS
# diamond and arrow characters under curses.
klone+sgr-dumb|attribute control for ansi.sys displays (no ESC [ 11 m),
- blink=\E[5m, bold=\E[1m, invis=\E[8m, rev=\E[7m, rmso=\E[m,
- rmul=\E[m,
sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6
%t;1%;%?%p7%t;8%;%?%p9%t;12%;m,
- sgr0=\E[0;10m, smacs=\E[12m, smso=\E[7m, smul=\E[4m,
+ sgr0=\E[0;10m, smacs=\E[12m, use=ansi+sgrbold,
use=klone+acs,
# KOI8-R (RFC1489) acs (alternate character set)
@@ -467,8 +470,7 @@ klone+color|color control for ansi.sys and ISO6429-compatible displays,
# default color pair, but many `ANSI' terminals don't grok the <op> cap.
ecma+color|color control for ECMA-48-compatible terminals,
AX,
- colors#8, ncv#3, pairs#64,
- op=\E[39;49m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+ op=\E[39;49m, use=klone+color,
ecma+italics|ECMA-48 italics,
ritm=\E[23m, sitm=\E[3m,
@@ -490,13 +492,12 @@ ecma+index|ECMA-48 scroll up/down,
# For more detail on this rather pathetic standard, see the comments
# near the end of this file.
ibcs2|Intel Binary Compatibility Standard prescriptions,
- cbt=\E[Z, clear=\Ec, cub=\E[%p1%dD, cub1=\E[1D,
- cud=\E[%p1%dB, cud1=\E[1B, cuf=\E[%p1%dC, cuf1=\E[1C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[1A,
- dch=\E[%p1%dP, dispc=\E=%p1%dg, ech=\E[%p1%dX,
- hpa=\E[%i%p1%dG, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
- il=\E[%p1%dL, rc=\E7, rmam=\E[?7l, sc=\E7, smam=\E[?7h,
- tbc=\E[g, vpa=\E[%i%p1%dd, use=ecma+index,
+ cbt=\E[Z, clear=\Ec, cub1=\E[1D, cud1=\E[1B, cuf1=\E[1C,
+ cup=\E[%i%p1%d;%p2%dH, cuu1=\E[1A, dch=\E[%p1%dP,
+ dispc=\E=%p1%dg, ech=\E[%p1%dX, hpa=\E[%i%p1%dG, hts=\EH,
+ ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, rc=\E7,
+ rmam=\E[?7l, sc=\E7, smam=\E[?7h, tbc=\E[g,
+ vpa=\E[%i%p1%dd, use=ansi+local, use=ecma+index,
#### ANSI/ECMA-48 terminals and terminal emulators
#
@@ -511,20 +512,20 @@ ibcs2|Intel Binary Compatibility Standard prescriptions,
# and more than one page of memory. It uses local motions instead of
# direct cursor addressing, and makes almost no assumptions. It does
# assume auto margins, no padding and/or xon/xoff, and a 24x80 screen.
-ansi-mr|mem rel cup ansi,
+ansi-mr|mem rel cup ANSI,
am, xon,
cols#80, lines#24, use=vanilla, use=ansi+erase,
use=ansi+local1,
# ansi-mini is a bare minimum ANSI terminal. This should work on anything, but
# beware of screen size problems and memory relative cursor addressing.
-ansi-mini|any ansi terminal with pessimistic assumptions,
+ansi-mini|any ANSI terminal with pessimistic assumptions,
am, xon,
cols#80, lines#24, use=vanilla, use=ansi+cup,
use=ansi+erase,
# ansi-mtabs adds relative addressing and minimal tab support
-ansi-mtabs|any ansi terminal with pessimistic assumptions,
+ansi-mtabs|any ANSI terminal with pessimistic assumptions (relative addressing),
it#8,
ht=^I, use=ansi-mini, use=ansi+local1,
@@ -558,14 +559,12 @@ ansi-mtabs|any ansi terminal with pessimistic assumptions,
ansi77|ANSI 3.64 standard 1977 version,
OTbs, am, mir,
cols#80, it#8, lines#24,
- bel=^G, clear=\E[;H\E[2J, cr=\r, csr=\E[%i%p1%d;%p2%dr,
- cub1=^H, cud1=\E[B, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu1=\E[A, dch1=\E[P, dl1=\E[M$<5*/>, ed=\E[J, el=\E[K,
- home=\E[H, ht=^I, il1=\E[L$<5*/>, ind=\ED, kbs=^H,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP,
- kf2=\EOR, kf4=\EOS, khome=\E[H, nel=\r\ED, rc=\E8, ri=\EM,
- rmir=\E[4l, rmso=\E[m, rmul=\E[m, sc=\E7, smir=\E[4h,
- smso=\E[7m, smul=\E[4m,
+ bel=^G, clear=\E[;H\E[2J, cr=\r, cub1=^H,
+ cup=\E[%i%p1%d;%p2%dH, dch1=\E[P, dl1=\E[M$<5*/>,
+ ed=\E[J, el=\E[K, home=\E[H, ht=^I, il1=\E[L$<5*/>, ind=\ED,
+ kf1=\EOP, kf2=\EOR, kf4=\EOS, nel=\r\ED, ri=\EM, rmir=\E[4l,
+ rmso=\E[m, rmul=\E[m, smir=\E[4h, smso=\E[7m, smul=\E[4m,
+ use=ansi+arrows, use=ansi+csr, use=ansi+local1,
# Procomm and some other ANSI emulations don't recognize all of the ANSI-
# standard capabilities. This entry deletes <cuu>, <cuf>, <cud>, <cub>, and
@@ -577,15 +576,14 @@ ansi77|ANSI 3.64 standard 1977 version,
# <invis=\E[9m>, but <invis=\E[8m> now seems to be more common under
# ANSI.SYS influence.
# From: Eric S. Raymond <esr@snark.thyrsus.com> Oct 30 1995
-pcansi-m|pcansi-mono|ibm-pc terminal programs claiming to be ansi (mono mode),
+pcansi-m|pcansi-mono|ibm-pc terminal programs claiming to be ANSI (mono mode),
OTbs, am, mir, msgr,
- cols#80, it#8, lines#24,
- bel=^G, cbt=\E[Z, clear=\E[H\E[J, cr=\r, cub1=\E[D,
- cud1=\E[B, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
- dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
- hts=\EH, il1=\E[L, ind=\n, kbs=^H, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, tbc=\E[3g,
+ cols#80, lines#24,
+ bel=^G, cr=\r, cup=\E[%i%p1%d;%p2%dH, dch1=\E[P, dl1=\E[M,
+ home=\E[H, ht=^I, il1=\E[L, ind=\n, use=ansi+arrows,
+ use=ansi+erase, use=ansi+inittabs, use=ansi+local1,
use=klone+sgr-dumb,
+
pcansi-25-m|pcansi25m|ibm-pc terminal programs with 25 lines (mono mode),
lines#25, use=pcansi-m,
pcansi-33-m|pcansi33m|ibm-pc terminal programs with 33 lines (mono mode),
@@ -593,7 +591,7 @@ pcansi-33-m|pcansi33m|ibm-pc terminal programs with 33 lines (mono mode),
pcansi-43-m|ansi43m|ibm-pc terminal programs with 43 lines (mono mode),
lines#43, use=pcansi-m,
# The color versions. All PC emulators do color...
-pcansi|ibm-pc terminal programs claiming to be ansi,
+pcansi|ibm-pc terminal programs claiming to be ANSI,
use=klone+color, use=pcansi-m,
pcansi-25|pcansi25|ibm-pc terminal programs with 25 lines,
lines#25, use=pcansi,
@@ -608,18 +606,52 @@ pcansi-43|pcansi43|ibm-pc terminal programs with 43 lines,
# From: Eric S. Raymond <esr@snark.thyrsus.com> Nov 6 1995
ansi-m|ansi-mono|ANSI X3.64-1979 terminal with ANSI.SYS compatible attributes,
mc5i,
- cub=\E[%p1%dD, cud=\E[%p1%dB, cuf=\E[%p1%dC,
- cuu=\E[%p1%dA, dch=\E[%p1%dP, dl=\E[%p1%dM,
- ech=\E[%p1%dX, el1=\E[1K, hpa=\E[%i%p1%dG, ht=\E[I,
- ich=\E[%p1%d@, il=\E[%p1%dL, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kich1=\E[L, mc4=\E[4i,
- mc5=\E[5i, nel=\r\E[S, rep=%p1%c\E[%p2%{1}%-%db,
- s0ds=\E(B, s1ds=\E)B, s2ds=\E*B, s3ds=\E+B, tbc=\E[3g,
- vpa=\E[%i%p1%dd, use=ecma+index, use=pcansi-m,
-
+ dch=\E[%p1%dP, dl=\E[%p1%dM, ech=\E[%p1%dX, el1=\E[1K,
+ hpa=\E[%i%p1%dG, ht=\E[I, ich=\E[%p1%d@, il=\E[%p1%dL,
+ kcbt=\E[Z, kich1=\E[L, mc4=\E[4i, mc5=\E[5i, nel=\r\E[S,
+ rep=%p1%c\E[%p2%{1}%-%db, s0ds=\E(B, s1ds=\E)B,
+ s2ds=\E*B, s3ds=\E+B, vpa=\E[%i%p1%dd, use=ansi+local,
+ use=ecma+index, use=pcansi-m,
+
+# ECMA-48 addresses three of the four capabilities here:
+#
+# u6 -
+# 8.3.14 CPR - ACTIVE POSITION REPORT
+# Notation: (Pn1;Pn2) Representation: CSI Pn1;Pn2 05/02
+# Parameter default values: Pn1 = 1; Pn2 = 1
+#
+# u7
+# 8.3.35 DSR - DEVICE ST A TUS REPORT
+# Notation: (Ps) Representation: CSI Ps 06/14
+# Parameter default value: Ps = 0
+# DSR is used either to report the status of the sending device or to
+# request a status report from the receiving device, depending on the
+# parameter values:
+# 6 a report of the active presentation position or of the active data
+# position in the form of ACTIVE POSITION REPORT (CPR) is requested
+#
+# u9 -
+# 8.3.24 DA - DEVICE ATTRIBUTES
+# Notation: (Ps) Representation: CSI Ps 06/03
+# Parameter default value: Ps = 0
+# With a parameter value not equal to 0, DA is used to identify the
+# device which sends the DA. The parameter value is a device type
+# identification code according to a register which is to be established.
+# If the parameter value is 0, DA is used to request an identifying DA
+# from a device.
+#
+# DEC (and most "ANSI") terminals reply with a private-mode ("?") sequence,
+# but that register "which is to be" in ECMA-48 was never established.
+# For terminals that support DA1, a more specific u8 capability is preferred,
+# except for those (such as xterm) which can be configured to return different
+# responses.
+ansi+cpr|ncurses extension for ANSI CPR,
+ u6=\E[%i%d;%dR, u7=\E[6n,
ansi+enq|ncurses extension for ANSI ENQ,
- u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?%[;0123456789]c,
- u9=\E[c,
+ u8=\E[?%[;0123456789]c, u9=\E[c, use=ansi+cpr,
+# DEC terminals provided DECID, subsumed into DA1:
+decid+cpr|ncurses extension for DECID,
+ u8=\E[?%[;0123456789]c, u9=\EZ, use=ansi+cpr,
# ansi -- this terminfo expresses the largest subset of X3.64 that will fit in
# standard terminfo. Assumes ANSI.SYS-compatible attributes and color.
@@ -630,11 +662,11 @@ ansi|ansi/pc-term compatible with color,
# ansi-generic is a vanilla ANSI terminal. This is assumed to implement
# all the normal ANSI stuff with no extensions. It assumes
# insert/delete line/char is there, so it won't work with
-# vt100 clones. It assumes video attributes for bold, blink,
+# VT100 clones. It assumes video attributes for bold, blink,
# underline, and reverse, which won't matter much if the terminal
# can't do some of those. Padding is assumed to be zero, which
# shouldn't hurt since xon/xoff is assumed.
-ansi-generic|ansiterm|generic ansi standard terminal,
+ansi-generic|ansiterm|generic ANSI standard terminal,
am, xon,
cols#80, lines#24, use=vanilla, use=ansi+csr, use=ansi+cup,
use=ansi+rca, use=ansi+erase, use=ansi+tabs,
@@ -649,15 +681,17 @@ ansi-generic|ansiterm|generic ansi standard terminal,
# though undocumented. The <pfkey> capability is untested but should work for
# keys F1-F10 (%p1 values outside this range will yield unpredictable results).
# From: Eric S. Raymond <esr@snark.thyrsus.com> Nov 7 1995
-ansi.sys-old|ANSI.SYS under PC-DOS 2.1,
+#
+# DOS 2.0 (January 1983) documented these features in
+# Chapter 13, "Using Extended Screen and Keyboard Control" -TD
+ansi.sys-old|ANSI.SYS under PC-DOS 2.0,
OTbs, am, mir, msgr, xon,
cols#80, lines#25,
- clear=\E[2J, cub1=^H, cud1=\E[B, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, el=\E[k, home=\E[H,
- is2=\E[m\E[?7h, kcub1=^H, kcud1=\n, kcuf1=^L, kcuu1=^K,
- khome=^^, pfkey=\E[0;%p1%{58}%+%d;%p2"%s"p, rc=\E[u,
- rmam=\E[?7l, sc=\E[s, smam=\E[?7h, u6=\E[%i%d;%dR,
- u7=\E[6n, use=klone+color, use=klone+sgr8,
+ clear=\E[2J, cub1=^H, cup=\E[%i%p1%d;%p2%dH, el=\E[k,
+ home=\E[H, is2=\E[m\E[?7h, kcub1=^H, kcud1=\n, kcuf1=^L,
+ kcuu1=^K, khome=^^, pfkey=\E[0;%p1%{58}%+%d;%p2"%s"p,
+ rc=\E[u, rmam=\E[?7l, sc=\E[s, smam=\E[?7h, use=ansi+cpr,
+ use=ansi+local1, use=klone+color, use=klone+sgr8,
# Keypad: Home=\0G Up=\0H PrPag=\0I
# ka1,kh kcuu1 kpp,ka3
@@ -680,7 +714,7 @@ ansi.sys-old|ANSI.SYS under PC-DOS 2.1,
#
# <pfkey> capability for F1-F48 -TD
ansi.sys|ANSI.SYS 3.1 and later versions,
- el=\E[K, ka1=\0G, ka3=\0I, kb2=\0L, kbs=^H, kc1=\0O, kc3=\0Q,
+ el=\E[K, ka1=\0G, ka3=\0I, kb2=\0L, kc1=\0O, kc3=\0Q,
kcbt=\0^O, kcub1=\0K, kcud1=\0P, kcuf1=\0M, kcuu1=\0H,
kdch1=\0S, kend=\0O, kf1=\0;, kf10=\0D, kf11=\0\205,
kf12=\0\206, kf13=\0T, kf14=\0U, kf15=\0V, kf16=\0W,
@@ -692,10 +726,10 @@ ansi.sys|ANSI.SYS 3.1 and later versions,
kf42=\0m, kf43=\0n, kf44=\0o, kf45=\0p, kf46=\0q,
kf47=\0\213, kf48=\0\214, kf5=\0?, kf6=\0@, kf7=\0A, kf8=\0B,
kf9=\0C, khome=\0G, kich1=\0R, knp=\0Q, kpp=\0I,
- pfkey=\E[0;%?%p1%{11}%<%t%'\:'%e%p1%{13}%<%t%'z'%e%p1%{23}%<
+ pfkey=\E[0;%?%p1%{11}%<%t%':'%e%p1%{13}%<%t%'z'%e%p1%{23}%<
%t%'G'%e%p1%{25}%<%t%'p'%e%p1%'#'%<%t%'E'%e%p1%'%'%<%t
%'f'%e%p1%'/'%<%t%'C'%e%{92}%;%p1%+%d;%p2"%s"p,
- use=ansi.sys-old,
+ use=ansi+arrows, use=ansi.sys-old,
#
# Define IBM PC keypad keys for vi as per MS-Kermit while using ANSI.SYS.
@@ -764,62 +798,54 @@ st52-color|at-color|atari-color|atari_st-color|Atari ST with color,
is2=\Ev\Eq\Ee\Eb1\Ec0, rs2=\Ev\Eq\Ee\Eb1\Ec0,
setab=\Ec%?%p1%{0}%=%t1%e%p1%{1}%=%t2%e%p1%{2}%=%t3%e%p1%{3}
%=%t>%e%p1%{4}%=%t4%e%p1%{5}%=%t7%e%p1%{6}%=%t5%e%p1
- %{7}%=%t0%e%p1%{8}%=%t8%e%p1%{9}%=%t9%e%p1%{10}%=%t\:
- %e%p1%{11}%=%t;%e%p1%{12}%=%t<%e%p1%{13}%=%t=%e%p1
- %{14}%=%t6%e?,
+ %{7}%=%t0%e%p1%{8}%=%t8%e%p1%{9}%=%t9%e%p1%{10}%=%t:%e
+ %p1%{11}%=%t;%e%p1%{12}%=%t<%e%p1%{13}%=%t=%e%p1%{14}
+ %=%t6%e?,
setaf=\Eb%?%p1%{0}%=%t1%e%p1%{1}%=%t2%e%p1%{2}%=%t3%e%p1%{3}
%=%t>%e%p1%{4}%=%t4%e%p1%{5}%=%t7%e%p1%{6}%=%t5%e%p1
- %{7}%=%t0%e%p1%{8}%=%t8%e%p1%{9}%=%t9%e%p1%{10}%=%t\:
- %e%p1%{11}%=%t;%e%p1%{12}%=%t<%e%p1%{13}%=%t=%e%p1
- %{14}%=%t6%e?,
+ %{7}%=%t0%e%p1%{8}%=%t8%e%p1%{9}%=%t9%e%p1%{10}%=%t:%e
+ %p1%{11}%=%t;%e%p1%{12}%=%t<%e%p1%{13}%=%t=%e%p1%{14}
+ %=%t6%e?,
setb=\Ec%?%p1%{0}%=%t1%e%p1%{1}%=%t2%e%p1%{2}%=%t3%e%p1%{3}
%=%t>%e%p1%{4}%=%t4%e%p1%{5}%=%t7%e%p1%{6}%=%t5%e%p1
- %{7}%=%t0%e%p1%{8}%=%t8%e%p1%{9}%=%t9%e%p1%{10}%=%t\:%e
+ %{7}%=%t0%e%p1%{8}%=%t8%e%p1%{9}%=%t9%e%p1%{10}%=%t:%e
%p1%{11}%=%t;%e%p1%{12}%=%t<%e%p1%{13}%=%t=%e%p1%{14}%=
%t6%e?,
setf=\Eb%?%p1%{0}%=%t1%e%p1%{1}%=%t2%e%p1%{2}%=%t3%e%p1%{3}
%=%t>%e%p1%{4}%=%t4%e%p1%{5}%=%t7%e%p1%{6}%=%t5%e%p1
- %{7}%=%t0%e%p1%{8}%=%t8%e%p1%{9}%=%t9%e%p1%{10}%=%t\:%e
+ %{7}%=%t0%e%p1%{8}%=%t8%e%p1%{9}%=%t9%e%p1%{10}%=%t:%e
%p1%{11}%=%t;%e%p1%{12}%=%t<%e%p1%{13}%=%t=%e%p1%{14}%=
%t6%e?,
use=st52,
st52|st52-m|at|at-m|atari|atari-m|atari_st|atarist-m|Atari ST,
am, eo, mir, npc,
- cols#80, it#8, lines#24,
- bel=^G, civis=\Ef, clear=\EE, cnorm=\Ee, cr=\r, cub1=\ED,
- cud1=\EB, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
- cuu1=\EA, dl1=\EM, ed=\EJ, el=\EK, el1=\Eo, home=\EH, ht=^I,
- il1=\EL, ind=\n, is2=\Ev\Eq\Ee, kLFT=\Ed, kRIT=\Ec, kbs=^H,
- kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=^?,
- kf1=\EP, kf10=\EY, kf11=\Ep, kf12=\Eq, kf13=\Er, kf14=\Es,
- kf15=\Et, kf16=\Eu, kf17=\Ev, kf18=\Ew, kf19=\Ex, kf2=\EQ,
- kf20=\Ey, kf3=\ER, kf4=\ES, kf5=\ET, kf6=\EU, kf7=\EV, kf8=\EW,
- kf9=\EX, khlp=\EH, khome=\EE, kich1=\EI, knp=\Eb, kpp=\Ea,
- kund=\EK, nel=\r\n, rc=\Ek, rev=\Ep, ri=\EI, rmso=\Eq,
- rs2=\Ev\Eq\Ee, sc=\Ej, sgr0=\Eq, smso=\Ep,
-tw100|toswin vt100 window mgr,
+ civis=\Ef, clear=\EE, cnorm=\Ee, dl1=\EM, el1=\Eo, il1=\EL,
+ is2=\Ev\Eq\Ee, kLFT=\Ed, kRIT=\Ec, kdch1=^?, kf1=\EP,
+ kf10=\EY, kf11=\Ep, kf12=\Eq, kf13=\Er, kf14=\Es, kf15=\Et,
+ kf16=\Eu, kf17=\Ev, kf18=\Ew, kf19=\Ex, kf2=\EQ, kf20=\Ey,
+ kf3=\ER, kf4=\ES, kf5=\ET, kf6=\EU, kf7=\EV, kf8=\EW, kf9=\EX,
+ khlp=\EH, khome=\EE, kich1=\EI, knp=\Eb, kpp=\Ea, kund=\EK,
+ rc=\Ek, rev=\Ep, rmso=\Eq, rs2=\Ev\Eq\Ee, sc=\Ej, sgr0=\Eq,
+ smso=\Ep, use=vt52-basic,
+tw100|Toswin VT100 window manager,
eo, mir, msgr, xon,
colors#8, cols#80, it#8, lines#24, pairs#64, vt#3,
acsc=++\,\,--..00II``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxy
yzz{{||}}~~,
bel=^G, blink=\E[5m, bold=\E[1m, civis=\Ef,
- clear=\E[2J\E[H, cnorm=\Ee, cr=\r, csr=\E[%i%p1%d;%p2%dr,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\EB,
- cuf=\E[%p1%dC, cuf1=\EC, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\EA, dch1=\Ea, dim=\E[2m, dl=\E[%p1%dM,
- dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, home=\E[H, ht=^I,
- hts=\EH, ich=\E[%p1%d@, il1=\EL, ind=\n, is2=\E<\E)0, kbs=^H,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kdch1=^?,
- kf1=\EOP, kf10=\EOY, kf11=\Ep, kf12=\Eq, kf13=\Er, kf14=\Es,
- kf15=\Et, kf16=\Eu, kf17=\Ev, kf18=\Ew, kf19=\Ex, kf2=\EOQ,
- kf20=\Ey, kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV,
- kf8=\EOW, kf9=\EOX, khlp=\EH, khome=\E\EE, kich1=\EI,
- knp=\Eb, kpp=\E\Ea, kund=\EK, ll=\E[24H, nel=\EE,
- oc=\E[30;47m, op=\E[30;47m, rc=\E8, rev=\E[7m, ri=\EM,
- rmacs=^O, rmcup=\E[?7h, rmir=\Ei, rmkx=\E[?1l\E>,
+ clear=\E[2J\E[H, cnorm=\Ee, cr=\r, cub1=^H, cud1=\EB,
+ cuf1=\EC, cup=\E[%i%p1%d;%p2%dH, cuu1=\EA, dch1=\Ea,
+ dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K,
+ el1=\E[1K, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, il1=\EL,
+ ind=\n, is2=\E<\E)0, kdch1=^?, kf1=\EOP, kf10=\EOY, kf11=\Ep,
+ kf12=\Eq, kf13=\Er, kf14=\Es, kf15=\Et, kf16=\Eu, kf17=\Ev,
+ kf18=\Ew, kf19=\Ex, kf2=\EOQ, kf20=\Ey, kf3=\EOR, kf4=\EOS,
+ kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW, kf9=\EOX, khlp=\EH,
+ khome=\E\EE, kich1=\EI, knp=\Eb, kpp=\E\Ea, kund=\EK,
+ ll=\E[24H, nel=\EE, oc=\E[30;47m, op=\E[30;47m, rev=\E[7m,
+ ri=\EM, rmacs=^O, rmcup=\E[?7h, rmir=\Ei, rmkx=\E[?1l\E>,
rmso=\E[m, rmul=\E[m,
rs1=\E<\E[20l\E[?3;6;9l\E[r\Eq\E(B\017\E)0\E>,
- sc=\E7,
setb=\E[4%p1%'0'%+%Pa%?%ga%'0'%=%t0%e%ga%'1'%=%t4%e%ga%'2'%=
%t2%e%ga%'3'%=%t6%e%ga%'4'%=%t1%e%ga%'5'%=%t5%e%ga%'6'
%=%t3%e7%;m,
@@ -828,51 +854,47 @@ tw100|toswin vt100 window mgr,
%=%t3%e7%;m,
sgr0=\E[m, smacs=^N, smcup=\E[?7l, smir=\Eh,
smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+ use=ansi+apparrows, use=ansi+csr, use=ansi+local,
+
# The entries for stv52 and stv52pc probably need a revision.
stv52|MiNT virtual console,
am, msgr,
- cols#80, it#8, lines#30,
- bel=^G, blink=\Er, bold=\EyA, civis=\Ef, clear=\EE,
- cnorm=\E. \Ee, cr=\r, cub1=^H, cud1=\EB, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, cvvis=\E.",
- dim=\Em, dl1=\EM, ed=\EJ, el=\EK, home=\EH, ht=^I, il1=\EL,
- ind=\n$<2*/>, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
- kcuu1=\EA, kdch1=^?, kf1=\EP, kf10=\EY, kf11=\Ep, kf12=\Eq,
- kf13=\Er, kf14=\Es, kf15=\Et, kf16=\Eu, kf17=\Ev, kf18=\Ew,
- kf19=\Ex, kf2=\EQ, kf20=\Ey, kf3=\ER, kf4=\ES, kf5=\ET,
- kf6=\EU, kf7=\EV, kf8=\EW, kf9=\EX, khlp=\EH, khome=\EE,
- kich1=\EI, knp=\Eb, kpp=\Ea, kund=\EK, nel=\r\n$<2*/>,
- op=\Eb@\EcO, rev=\Ep, ri=\EI$<2*/>, rmcup=\Ev\E. \Ee\Ez_,
- rmso=\Eq, rmul=\EzH, rs1=\Ez_\Eb@\EcA, sgr0=\Ez_,
- smcup=\Ev\Ee\Ez_, smso=\Ep, smul=\EyH,
+ lines#30,
+ blink=\Er, bold=\EyA, civis=\Ef, clear=\EE, cnorm=\E. \Ee,
+ cub1=^H, cvvis=\E.", dim=\Em, dl1=\EM, il1=\EL, ind=\n$<2*/>,
+ kdch1=^?, kf1=\EP, kf10=\EY, kf11=\Ep, kf12=\Eq, kf13=\Er,
+ kf14=\Es, kf15=\Et, kf16=\Eu, kf17=\Ev, kf18=\Ew, kf19=\Ex,
+ kf2=\EQ, kf20=\Ey, kf3=\ER, kf4=\ES, kf5=\ET, kf6=\EU, kf7=\EV,
+ kf8=\EW, kf9=\EX, khlp=\EH, khome=\EE, kich1=\EI, knp=\Eb,
+ kpp=\Ea, kund=\EK, nel=\r\n$<2*/>, op=\Eb@\EcO, rev=\Ep,
+ ri=\EI$<2*/>, rmcup=\Ev\E. \Ee\Ez_, rmso=\Eq, rmul=\EzH,
+ rs1=\Ez_\Eb@\EcA, sgr0=\Ez_, smcup=\Ev\Ee\Ez_, smso=\Ep,
+ smul=\EyH, use=vt52-basic,
stv52pc|MiNT virtual console with PC charset,
am, msgr,
- cols#80, it#8, lines#30,
+ lines#30,
acsc=+\257\,\256-\^.v0\333I\374`\177a\260f\370g\361h\261j
\331k\277l\332m\300n\305o\377p-q\304r-s_t+u+v+w+x\263y
\363z\362{\343|\366}\234~\371,
- bel=^G, blink=\Er, bold=\EyA, civis=\Ef, clear=\EE,
- cnorm=\E. \Ee, cr=\r, cub1=^H, cud1=\EB, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, cvvis=\E.",
- dim=\Em, dl1=\EM, ed=\EJ, el=\EK, home=\EH, ht=^I, il1=\EL,
- ind=\n$<2*/>, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
- kcuu1=\EA, kdch1=^?, kf1=\EP, kf10=\EY, kf11=\Ep, kf12=\Eq,
- kf13=\Er, kf14=\Es, kf15=\Et, kf16=\Eu, kf17=\Ev, kf18=\Ew,
- kf19=\Ex, kf2=\EQ, kf20=\Ey, kf3=\ER, kf4=\ES, kf5=\ET,
- kf6=\EU, kf7=\EV, kf8=\EW, kf9=\EX, khlp=\EH, khome=\EE,
- kich1=\EI, knp=\Eb, kpp=\Ea, kund=\EK, nel=\r\n$<2*/>,
- rev=\Ep, ri=\EI$<2*/>, rmcup=\Ev\E. \Ee\Ez_, rmso=\Eq,
- rmul=\EzH, rs1=\Ez_\Eb@\EcA, sgr0=\Ez_, smcup=\Ev\Ee\Ez_,
- smso=\Ep, smul=\EyH,
+ blink=\Er, bold=\EyA, civis=\Ef, clear=\EE, cnorm=\E. \Ee,
+ cub1=^H, cvvis=\E.", dim=\Em, dl1=\EM, il1=\EL, ind=\n$<2*/>,
+ kdch1=^?, kf1=\EP, kf10=\EY, kf11=\Ep, kf12=\Eq, kf13=\Er,
+ kf14=\Es, kf15=\Et, kf16=\Eu, kf17=\Ev, kf18=\Ew, kf19=\Ex,
+ kf2=\EQ, kf20=\Ey, kf3=\ER, kf4=\ES, kf5=\ET, kf6=\EU, kf7=\EV,
+ kf8=\EW, kf9=\EX, khlp=\EH, khome=\EE, kich1=\EI, knp=\Eb,
+ kpp=\Ea, kund=\EK, nel=\r\n$<2*/>, rev=\Ep, ri=\EI$<2*/>,
+ rmcup=\Ev\E. \Ee\Ez_, rmso=\Eq, rmul=\EzH,
+ rs1=\Ez_\Eb@\EcA, sgr0=\Ez_, smcup=\Ev\Ee\Ez_, smso=\Ep,
+ smul=\EyH, use=vt52-basic,
# From: Simson L. Garfinkel <simsong@media-lab.mit.edu>
-atari-old|atari st,
+atari-old|Atari st,
OTbs, am,
cols#80, it#8, lines#25,
clear=\EH\EJ, cub1=\ED, cud1=\EB, cuf1=\EC,
cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dl1=\EM,
- ed=\EJ, el=\EK, ht=^I, il1=\EL, kcub1=\ED, kcud1=\EB,
- kcuf1=\EC, kcuu1=\EA, ri=\EI, rmso=\Eq, sgr0=\Eq, smso=\Ep,
+ ed=\EJ, el=\EK, ht=^I, il1=\EL, ri=\EI, rmso=\Eq, sgr0=\Eq,
+ smso=\Ep, use=vt52+arrows,
# UniTerm terminal program for the Atari ST: 49-line VT220 emulation mode
# From: Paul M. Aoki <aoki@ucbvax.berkeley.edu>
uniterm|uniterm49|UniTerm VT220 emulator with 49 lines,
@@ -902,30 +924,26 @@ st52-old|Atari ST with VT52 emulation,
# BeOS entry for Terminal program Seems to be almost ANSI
beterm|BeOS Terminal,
am, eo, mir, msgr, xenl, xon,
- colors#8, cols#80, it#8, lines#25, ncv#5, pairs#64,
- bel=^G, bold=\E[1m, clear=\E[H\E[J, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, home=\E[H,
- hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
- il=\E[%p1%dL, il1=\E[L, ind=\n, kbs=^H, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\E[11~,
- kf10=\E[20~, kf11=\E[21~, kf12=\E[22~, kf2=\E[12~,
- kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[16~, kf7=\E[17~,
- kf8=\E[18~, kf9=\E[19~, kspd=^Z, nel=\r\n, op=\E[m, rc=\E8,
- rev=\E[7m, ri=\EM, rmir=\E[4l, rmkx=\E[?4l, rmso=\E[m,
- rmul=\E[24m, rs1=\Ec, sc=\E7, setab=\E[4%p1%dm,
- setaf=\E[3%p1%dm, setb=\E[%p1%{40}%+%cm,
- setf=\E[%p1%{30}%+%cm, sgr0=\E[0;10m, smir=\E[4h,
- smkx=\E[?4h, smso=\E[7m, smul=\E[4m,
- u6=\E[%i%p1%d;%p2%dR, u7=\E[6n, vpa=\E[%i%p1%dd,
- use=vt220+pcedit,
+ cols#80, it#8, lines#25, ncv#5,
+ bel=^G, bold=\E[1m, cr=\r, cub1=^H, cud1=\n,
+ cup=\E[%i%p1%d;%p2%dH, ech=\E[%p1%dX, el1=\E[1K,
+ home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ind=\n,
+ kf1=\E[11~, kf10=\E[20~, kf11=\E[21~, kf12=\E[22~,
+ kf2=\E[12~, kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[16~,
+ kf7=\E[17~, kf8=\E[18~, kf9=\E[19~, khome=\E[1~, kspd=^Z,
+ nel=\r\n, op=\E[m, rev=\E[7m, ri=\EM, rmkx=\E[?4l, rmso=\E[m,
+ rmul=\E[24m, rs1=\Ec, setb=\E[%p1%{40}%+%cm,
+ setf=\E[%p1%{30}%+%cm, sgr0=\E[0;10m, smkx=\E[?4h,
+ smso=\E[7m, smul=\E[4m, u6=\E[%i%p1%d;%p2%dR, u7=\E[6n,
+ vpa=\E[%i%p1%dd, use=ansi+arrows, use=ansi+csr,
+ use=ansi+erase, use=ansi+idc, use=ansi+idl,
+ use=ansi+local, use=klone+color, use=vt220+pcedit,
#### Linux consoles
#
+# release 1.2.13: 1995/03
+#
# This entry is good for the 1.2.13 or later version of the Linux console.
#
# ***************************************************************************
@@ -949,34 +967,30 @@ beterm|BeOS Terminal,
# All linux kernels since 1.2.13 (at least) set the screen size
# themselves; this entry assumes that capability.
#
-linux-basic|linux console,
+linux-basic|Linux console (basic),
am, bce, eo, mir, msgr, xenl, xon,
it#8, ncv#18, U8#1,
acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i
\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u
\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
- bel=^G, clear=\E[H\E[J, cr=\r, csr=\E[%i%p1%d;%p2%dr,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\n,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
- dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J,
- el=\E[K, el1=\E[1K, flash=\E[?5h$<200/>\E[?5l, home=\E[H,
- hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
- il=\E[%p1%dL, il1=\E[L, ind=\n, kb2=\E[G, kbs=^?, kcbt=\E[Z,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\E[[A,
+ bel=^G, cr=\r, cub1=^H, cud1=\n, cup=\E[%i%p1%d;%p2%dH,
+ dim=\E[2m, ech=\E[%p1%dX, el1=\E[1K,
+ flash=\E[?5h$<200/>\E[?5l, home=\E[H, hpa=\E[%i%p1%dG,
+ ht=^I, hts=\EH, ind=\n, kb2=\E[G, kbs=^?, kcbt=\E[Z, kf1=\E[[A,
kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf2=\E[[B,
kf3=\E[[C, kf4=\E[[D, kf5=\E[[E, kf6=\E[17~, kf7=\E[18~,
- kf8=\E[19~, kf9=\E[20~, kmous=\E[M, kspd=^Z, nel=\r\n,
- rc=\E8, rev=\E[7m, ri=\EM, rmam=\E[?7l, rmir=\E[4l,
- rmso=\E[27m, rmul=\E[24m, rs1=\Ec\E]R, sc=\E7,
+ kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kmous=\E[M, kspd=^Z,
+ nel=\r\n, ri=\EM, rmam=\E[?7l, rmso=\E[27m, rmul=\E[24m,
+ rs1=\Ec\E]R,
sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5
%t;2%;%?%p6%t;1%;%?%p9%t;11%;m,
- smam=\E[?7h, smir=\E[4h, smul=\E[4m, tbc=\E[3g,
- vpa=\E[%i%p1%dd, use=vt220+pcedit, use=vt102+enq,
+ smam=\E[?7h, tbc=\E[3g, vpa=\E[%i%p1%dd, use=ansi+arrows,
+ use=ansi+csr, use=ansi+erase, use=ansi+idc, use=ansi+idl,
+ use=ansi+local, use=vt220+pcedit, use=vt102+enq,
use=klone+sgr, use=ecma+color, use=linux+sfkeys,
linux+decid|ncurses extension for Linux console DECID,
- u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?6c, u9=\EZ,
+ u8=\E[?6c, use=decid+cpr,
linux+sfkeys|shifted function-keys for Linux console,
kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
@@ -986,18 +1000,20 @@ linux-m|Linux console no color,
colors@, pairs@,
setab@, setaf@, setb@, setf@, use=linux,
+# release 1.3: 1995/06
+#
# The 1.3.x kernels add color-change capabilities; if yours doesn't have this
# and it matters, turn off <ccc>. The %02x escape used to implement this is
# not supposedly back-portable to older SV curses (although it has worked fine
# on Solaris for several years) and not supported in ncurses versions before
# 1.9.9.
-linux-c-nc|linux console with color-change,
+linux-c-nc|Linux console with color-change,
ccc,
initc=\E]P%p1%x%p2%{255}%*%{1000}%/%02x%p3%{255}%*%{1000}%/
%02x%p4%{255}%*%{1000}%/%02x,
oc=\E]R, use=linux-basic,
# From: Dennis Henriksen <opus@osrl.dk>, 9 July 1996
-linux-c|linux console 1.3.6+ for older ncurses,
+linux-c|Linux console 1.3.6+ for older ncurses,
ccc,
initc=\E]P%?%p1%{9}%>%t%p1%{10}%-%'a'%+%c%e%p1%d%;%p2%{255}
%*%{1000}%/%Pr%gr%{16}%/%Px%?%gx%{9}%>%t%gx%{10}%-%'a'
@@ -1010,13 +1026,17 @@ linux-c|linux console 1.3.6+ for older ncurses,
%d%;,
oc=\E]R, use=linux-basic,
+# release 2.2: 1999/01
+#
# The 2.2.x kernels add a private mode that sets the cursor type; use that to
# get a block cursor for cvvis.
# reported by Frank Heckenbach <frank@g-n-u.de>.
-linux2.2|linux 2.2.x console,
+linux2.2|Linux 2.2.x console,
civis=\E[?25l\E[?1c, cnorm=\E[?25h\E[?0c,
cvvis=\E[?25h\E[?8c, use=linux-c-nc,
+# release 2.6: 2003/12 - 2004/12
+#
# Linux 2.6.x has a fix for SI/SO to work with UTF-8 encoding added here:
# http://lkml.iu.edu/hypermail/linux/kernel/0602.2/0738.html
# Although the kernel has mappings for these, they were not in the default
@@ -1044,7 +1064,7 @@ linux2.2|linux 2.2.x console,
#
# https://lwn.net/Articles/284767/
# "An interview with the new embedded maintainers"
-linux2.6|linux 2.6.x console,
+linux2.6|Linux 2.6.x console,
acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxy
yzz{{||}}~~,
enacs=\E)0, rmacs=^O,
@@ -1054,11 +1074,22 @@ linux2.6|linux 2.6.x console,
# The 3.0 kernel adds support for clearing scrollback buffer (capability E3).
# It is the same as xterm's erase-saved-lines feature.
-linux3.0|linux 3.0 kernels,
- E3=\E[3J, use=linux2.6,
+#
+# Linux 3.0 was released in July 2011. The keyboard utilities (kbd) are
+# used for configuring its keyboard mappings.
+#
+# kbd 1.14 was released before that (January 2008), but due to its placement
+# late in the Linux 2.6.x series had no immediate effect for most users. That
+# provided a default mapping for shift-tab to the (misnamed) Meta_Tab, i.e.,
+# the same as Alt-Tab.
+#
+# The suggested mapping for the conventional \E[Z is provided in this entry as
+# an extended key to lessen user surprise -TD
+linux3.0|Linux 3.0 kernels,
+ kcbt=\E^I, E3=\E[3J, kcbt2=\E[Z, use=linux2.6,
# This is Linux console for ncurses.
-linux|linux console,
+linux|Linux console,
use=linux3.0,
# Subject: linux 2.6.26 vt back_color_erase
@@ -1067,16 +1098,16 @@ linux|linux console,
# apparently from
# http://lkml.org/lkml/2008/4/26/305
# http://lkml.org/lkml/2008/10/3/66
-linux2.6.26|linux console w/o bce,
+linux2.6.26|Linux console w/o bce,
bce@, use=linux2.6,
# See the note on ICH/ICH1 VERSUS RMIR/SMIR near the end of file
-linux-nic|linux with ich/ich1 suppressed for non-curses programs,
+linux-nic|Linux with ich/ich1 suppressed for non-curses programs,
ich@, ich1@, use=linux,
# This assumes you have used setfont(8) to load one of the Linux koi8-r fonts.
# acsc entry from Pavel Roskin" <pavel@absolute.spb.su>, 29 Sep 1997.
-linux-koi8|linux with koi8 alternate character set,
+linux-koi8|Linux with koi8 alternate character set,
acsc=+\020\,\021-\030.^Y0\215`\004a\221f\234g\237h\220i
\276j\205k\203l\202m\204n\212o~p\0q\0r\0s_t\206u\207v
\211w\210x\201y\230z\231{\267|\274~\224,
@@ -1084,11 +1115,11 @@ linux-koi8|linux with koi8 alternate character set,
# Another entry for KOI8-r with Qing Long's acsc.
# (which one better complies with the standard?)
-linux-koi8r|linux with koi8-r alternate character set,
+linux-koi8r|Linux with koi8-r alternate character set,
use=linux, use=klone+koi8acs,
# Entry for the latin1 and latin2 fonts
-linux-lat|linux with latin1 or latin2 alternate character set,
+linux-lat|Linux with latin1 or latin2 alternate character set,
acsc=+\020\,\021-\030.^Y0\333`\004a\013f\370g\361h\260i
\316j\211k\214l\206m\203n\305o~p\304q\212r\304s_t\207u
\215v\301w\302x\205y\363z\362{\343|\330}\234~\376,
@@ -1097,12 +1128,14 @@ linux-lat|linux with latin1 or latin2 alternate character set,
# This uses graphics from VT codeset instead of from cp437.
# reason: cp437 (aka "straight to font") is not functional under luit.
# from: Andrey V Lukyanov <land@long.yar.ru>.
-linux-vt|linux console using VT codes for graphics,
+linux-vt|Linux console using VT codes for graphics,
acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxy
yzz~~,
rmacs=\E(K, rmpch@, sgr@, sgr0=\E[0m\E(K\017, smacs=\E(0,
smpch@, use=linux,
+# release: 0.3.9b 1997/01 to 2000/05
+#
# This is based on the Linux console (relies on the console to perform some
# of the functionality), but does not recognize as many control sequences.
# The program comes bundled with an old (circa 1998) copy of the Linux
@@ -1113,11 +1146,35 @@ linux-vt|linux console using VT codes for graphics,
# \E[y,xf same as \E[y,xH
#
# Note: The status-line support is buggy (dsl does not work).
-kon|kon2|jfbterm|Kanji ON Linux console,
- ccc@, hs,
- civis@, cnorm@, cvvis@, dsl=\E[?H, flash@, fsl=\E[?F, initc@,
- initp@, kcbt@, oc@, op=\E[37;40m, rs1=\Ec, tsl=\E[?T,
- use=linux,
+kon|kon2|Kanji ON Linux console,
+ am, bce, ccc, eo, eslok, hs, mir, msgr, xenl, xon,
+ it#8, ncv#18,
+ bel=^G, civis=\E[?25l, cnorm=\E[?25h, cr=\r, cub1=^H,
+ cud1=\n, cup=\E[%i%p1%d;%p2%dH, dim=\E[2m,
+ dsl=\E[?H\E[?E, el1=\E[1K, fsl=\E[?F, home=\E[H,
+ hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ind=\n,
+ initc=\E]P%p1%x%p2%02x%p3%02x%p4%02x, kb2=\E[G, kbs=^?,
+ kf1=\E[[A, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
+ kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
+ kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\E[[B,
+ kf20=\E[34~, kf3=\E[[C, kf4=\E[[D, kf5=\E[[E, kf6=\E[17~,
+ kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kspd=^Z,
+ nel=\r\n, op=\E[37;40m, ri=\EM, rmso=\E[27m, rmul=\E[24m,
+ rs1=\Ec,
+ sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5
+ %t;2%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
+ sgr0=\E[0;10m, tbc=\E[3g, tsl=\E[?T, u8=\E[?6c,
+ vpa=\E[%i%p1%dd, use=ansi+arrows, use=ansi+csr,
+ use=ansi+enq, use=ansi+erase, use=ansi+idc, use=ansi+idl,
+ use=ansi+local, use=ansi+sgrbold, use=ecma+sgr,
+ use=klone+color, use=vt220+pcedit,
+
+# release: 0.4.7 2005/05
+#
+jfbterm|japanese framebuffer terminal,
+ acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxy
+ yzz{{||}}~~,
+ sgr0=\E[0m, use=kon,
# FbTerm
# Another variant. There are two parts (src, src/lib) with the latter
@@ -1163,7 +1220,7 @@ fbterm|FbTerm for Linux with framebuffer,
# For background, refer to the report on bug-ncurses:
#
# https://lists.gnu.org/archive/html/bug-ncurses/2019-10/msg00059.html
-linux-16color|linux console with 16 colors,
+linux-16color|Linux console with 16 colors,
colors#16, ncv#42, pairs#0x100,
setab=\E[4%p1%{8}%m%d%?%p1%{7}%>%t;5%e;25%;m,
setaf=\E[3%p1%{8}%m%d%?%p1%{7}%>%t;1%e;22%;m,
@@ -1182,38 +1239,36 @@ bterm|bogl virtual terminal,
acsc=aajjkkllmmqqttuuxx, bold=\E[1m, clear=\E[H\E[2J,
cr=\r, cub1=^H, cud1=\n, cup=\E[%i%p1%d;%p2%dH, ed=\E[J,
el=\E[K, home=\E[H, ind=\n, kb2=\E[G, kbs=^?, kcbt=\E[Z,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\E[[A,
- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
- kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
- kf18=\E[32~, kf19=\E[33~, kf2=\E[[B, kf20=\E[34~,
- kf3=\E[[C, kf4=\E[[D, kf5=\E[[E, kf6=\E[17~, kf7=\E[18~,
- kf8=\E[19~, kf9=\E[20~, kmous=\E[M, kspd=^Z, nel=\r\n,
- op=\E[49m\E[39m, rev=\E[7m, ri=\EM, rmacs=^O, rmso=\E[27m,
- rmul=\E[24m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
- sgr0=\E[0m, smacs=^N, smso=\E[7m, smul=\E[4m,
+ kf1=\E[[A, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
+ kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
+ kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\E[[B,
+ kf20=\E[34~, kf3=\E[[C, kf4=\E[[D, kf5=\E[[E, kf6=\E[17~,
+ kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, khome=\E[1~,
+ kmous=\E[M, kspd=^Z, nel=\r\n, op=\E[49m\E[39m, rev=\E[7m,
+ ri=\EM, rmacs=^O, rmso=\E[27m, rmul=\E[24m,
+ setab=\E[4%p1%dm, setaf=\E[3%p1%dm, sgr0=\E[0m, smacs=^N,
+ smso=\E[7m, smul=\E[4m, use=ansi+arrows,
use=vt220+pcedit, use=vt220+cvis,
#### Mach
#
# From: Matthew Vernon <mcv21@pick.sel.cam.ac.uk>
-mach|Mach Console,
- am, km,
+mach|Mach console,
+ am, km, NQ,
cols#80, it#8, lines#25,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\Ec, cr=\r,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\n,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
- el=\E[K, home=\E[H, ht=^I, il=\E[%p1%dL, il1=\E[L, ind=\n,
- kbs=^?, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=\E[9, kend=\E[Y, kf1=\EOP, kf10=\EOY, kf2=\EOQ,
- kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW,
- kf9=\EOX, khome=\E[H, kich1=\E[@, kll=\E[F, knp=\E[U,
- kpp=\E[V, rev=\E[7m, rmso=\E[0m, rmul=\E[24m, sgr0=\E[0m,
- smso=\E[7m, smul=\E[4m,
-mach-bold|Mach Console with bold instead of underline,
+ bel=^G, blink=\E[5m, bold=\E[1m, clear=\Ec, cr=\r, cub1=^H,
+ cud1=\n, cup=\E[%i%p1%d;%p2%dH, ed=\E[J, el=\E[K,
+ home=\E[H, ht=^I, ind=\n, kbs=^?, kdch1=\E[9, kend=\E[Y,
+ kf1=\EOP, kf10=\EOY, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT,
+ kf6=\EOU, kf7=\EOV, kf8=\EOW, kf9=\EOX, kich1=\E[@, kll=\E[F,
+ knp=\E[U, kpp=\E[V, rev=\E[7m, rmso=\E[0m, rmul=\E[24m,
+ sgr0=\E[0m, smso=\E[7m, smul=\E[4m, use=ansi+arrows,
+ use=ansi+idl, use=ansi+local,
+
+mach-bold|Mach console with bold instead of underline,
rmul=\E[0m, smul=\E[1m, use=mach,
-mach-color|Mach Console with ANSI color,
+mach-color|Mach console with ANSI color,
colors#8, pairs#64,
dim=\E[2m, invis=\E[8m, op=\E[37;40m, rmso=\E[27m,
setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=mach,
@@ -1234,7 +1289,7 @@ mach-gnu|GNU Mach,
2%;%?%p6%t;1%;%?%p7%t;8%;m,
use=ecma+index, use=mach,
-mach-gnu-color|Mach Console with ANSI color,
+mach-gnu-color|GNU Mach console with ANSI color,
colors#8, pairs#64,
op=\E[37;40m, rmso=\E[27m, setab=\E[4%p1%dm,
setaf=\E[3%p1%dm, use=mach-gnu,
@@ -1267,34 +1322,29 @@ mach-gnu-color|Mach Console with ANSI color,
#
# Reading the source, RIS resets cnorm, but not xmous.
hurd|The GNU Hurd console server,
- am, bce, bw, eo, km, mir, msgr, xenl, xon,
- colors#8, it#8, ncv#18, pairs#64,
+ am, bce, bw, eo, km, mir, msgr, xenl, xon, NQ,
+ it#8, ncv#18,
acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxy
yzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\Ec, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[34l, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
- dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
- el1=\E[1K, flash=\Eg, home=\E[H, hpa=\E[%i%p1%dG, ht=^I,
- ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\E[S,
- invis=\E[8m, kb2=\E[G, kbs=^?, kcbt=\E[Z, kcub1=\EOD,
- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP, kf10=\E[21~,
+ bel=^G, cbt=\E[Z, clear=\Ec, cr=\r, cub1=^H, cvvis=\E[34l,
+ dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, ech=\E[%p1%dX,
+ el1=\E[1K, flash=\Eg, ht=^I, ich=\E[%p1%d@, ind=\E[S,
+ kb2=\E[G, kbs=^?, kcbt=\E[Z, kf1=\EOP, kf10=\E[21~,
kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
kf19=\E[33~, kf2=\EOQ, kf20=\E[34~, kf3=\EOR, kf4=\EOS,
kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- kich1=\E[2~, kmous=\E[M, kspd=^Z, nel=\r\n, op=\E[39;49m,
- rc=\E8, rev=\E[7m, ri=\E[T, rmacs=\E[10m, rmir=\E[4l,
- rmso=\E[27m, rmul=\E[24m, rs1=\EM\E[?1000l, sc=\E7,
- setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+ khome=\E[1~, kmous=\E[M, kspd=^Z, nel=\r\n, op=\E[39;49m,
+ ri=\E[T, rmir=\E[4l, rmso=\E[27m, rmul=\E[24m,
+ rs1=\EM\E[?1000l,
sgr=\E[0%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;
2%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
- sgr0=\E[0m, smacs=\E[11m, smir=\E[4h, smso=\E[7m,
- smul=\E[4m, vpa=\E[%i%p1%dd, grbom=\E[>1l, gsbom=\E[>1h,
- use=vt220+pcedit, use=ecma+index, use=ecma+italics,
- use=vt220+cvis,
+ smir=\E[4h, grbom=\E[>1l, gsbom=\E[>1h,
+ use=ansi+apparrows, use=ansi+csr, use=ansi+cup,
+ use=ansi+erase, use=ansi+idl, use=ansi+local,
+ use=ansi+rca2, use=ansi+sgrbold, use=vt220+pcedit,
+ use=ecma+index, use=ecma+italics, use=klone+acs,
+ use=klone+color, use=vt220+cvis,
#### QNX
#
@@ -1307,7 +1357,7 @@ hurd|The GNU Hurd console server,
# optimization. Bug: The <op> capability resets attributes.
# From: Michael Hunter <mphunter@qnx.com> 30 Jul 1996
# (removed: <sgr=%?%p1%t\E<%;%p2%t\E[%;%p3%t\E(%;%p4%t\E{%;%p6%t\E<%;,>)
-qnx|qnx4|qnx console,
+qnx|qnx4|QNX console,
daisy, km, mir, msgr, xhpa, xt,
colors#8, cols#80, it#4, lines#25, ncv#3, pairs#8,
acsc=O\333a\261j\331k\277l\332m\300n\305o\337q\304s\334t
@@ -1389,7 +1439,7 @@ qnxtmono|Monochrome QNX4 terminal or console,
# From: Federico Bianchi <bianchi@pc-arte2.arte.unipi.it>, 1 Jul 1998
# (esr: commented out <scp> and <rmcup> to avoid warnings.)
# (TD: derive from original qnx4 entry)
-qnxt2|qnx 2.15 serial terminal,
+qnxt2|QNX 2.15 serial terminal,
am,
civis@, cnorm@, cvvis@, dch1@, ich1@, kRES@, kRPL@, kUND@, kspd@,
rep@, rmcup@, rmso=\E>, setb@, setf@, smcup@, smso=\E<, use=qnx4,
@@ -1397,25 +1447,21 @@ qnxt2|qnx 2.15 serial terminal,
# QNX ANSI terminal definition
qansi-g|QNX ANSI,
am, eslok, hs, xon,
- colors#8, cols#80, it#8, lines#25, ncv#19, pairs#64, wsl#80,
+ colors#8, cols#80, lines#25, ncv#19, pairs#64, wsl#80,
acsc=Oa``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[2J\E[H,
- cr=\r, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
- dl=\E[%p1%dM, dl1=\E[1M, dsl=\E[r, ech=\E[%p1%dX, ed=\E[J,
- el=\E[K, el1=\E[1K\E[X, flash=\E[?5h$<200>\E[?5l,
- fsl=\E[?6h\E8, home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH,
- ich=\E[%p1%d@, ich1=\E[1@, il=\E[%p1%dL, il1=\E[1L,
- ind=\E[S, invis=\E[9m,
+ bel=^G, clear=\E[2J\E[H, cr=\r, csr=\E[%i%p1%d;%p2%dr,
+ cup=\E[%i%p1%d;%p2%dH$<5>, cvvis=\E[?12;25h,
+ dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM,
+ dl1=\E[1M, dsl=\E[r, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
+ el1=\E[1K\E[X, flash=\E[?5h$<200>\E[?5l, fsl=\E[?6h\E8,
+ home=\E[H, hpa=\E[%i%p1%dG, ich=\E[%p1%d@, ich1=\E[1@,
+ il=\E[%p1%dL, il1=\E[1L, ind=\E[S, invis=\E[9m,
is2=\E>\E[?1l\E[?7h\E[0;10;39;49m, is3=\E(B\E)0,
kBEG=\ENn, kCAN=\E[s, kCMD=\E[t, kCPY=\ENs, kCRT=\ENt,
kDL=\ENv, kEXT=\ENw, kFND=\ENx, kHLP=\ENy, kHOM=\E[h,
kLFT=\E[d, kNXT=\E[u, kOPT=\ENz, kPRV=\E[v, kRIT=\E[c,
- kbs=^H, kcan=\E[S, kcbt=\E[Z, kclo=\ENc, kclr=\ENa,
- kcmd=\E[G, kcpy=\E[g, kctab=\E[z, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kdl1=\E[p, kend=\E[Y,
+ kcan=\E[S, kcbt=\E[Z, kclo=\ENc, kclr=\ENa, kcmd=\E[G,
+ kcpy=\E[g, kctab=\E[z, kdch1=\E[P, kdl1=\E[p, kend=\E[Y,
kext=\E[y, kf1=\EOP, kf10=\EOY, kf11=\EOZ, kf12=\EOA,
kf13=\EOp, kf14=\EOq, kf15=\EOr, kf16=\EOs, kf17=\EOt,
kf18=\EOu, kf19=\EOv, kf2=\EOQ, kf20=\EOw, kf21=\EOx,
@@ -1427,13 +1473,13 @@ qansi-g|QNX ANSI,
kf42=\E[22~, kf43=\E[23~, kf44=\E[24~, kf45=\E[25~,
kf46=\E[26~, kf47=\E[27~, kf48=\E[28~, kf5=\EOT, kf6=\EOU,
kf7=\EOV, kf8=\EOW, kf9=\EOX, kfnd=\ENf, khlp=\ENh,
- khome=\E[H, khts=\ENb, kich1=\E[@, kil1=\E[`, kind=\E[a,
- kmov=\ENi, kmrk=\ENm, kmsg=\ENe, knp=\E[U, kopn=\ENo,
- kopt=\ENk, kpp=\E[V, kref=\ENl, kres=\ENp, krfr=\ENg,
- kri=\E[b, krpl=\ENr, krst=\ENj, ksav=\ENq, kslt=\E[T,
- ktbc=\ENd, kund=\ENu, ll=\E[99H, nel=\EE, op=\E[39;49m,
- rev=\E[7m, ri=\E[T, rmacs=^O, rmam=\E[?7l, rmso=\E[27m,
- rmul=\E[24m, rs1=\017\E[?7h\E[0;39;49m$<2>\E>\E[?1l,
+ khts=\ENb, kich1=\E[@, kil1=\E[`, kind=\E[a, kmov=\ENi,
+ kmrk=\ENm, kmsg=\ENe, knp=\E[U, kopn=\ENo, kopt=\ENk,
+ kpp=\E[V, kref=\ENl, kres=\ENp, krfr=\ENg, kri=\E[b,
+ krpl=\ENr, krst=\ENj, ksav=\ENq, kslt=\E[T, ktbc=\ENd,
+ kund=\ENu, ll=\E[99H, nel=\EE, op=\E[39;49m, ri=\E[T,
+ rmacs=^O, rmam=\E[?7l, rmso=\E[27m, rmul=\E[24m,
+ rs1=\017\E[?7h\E[0;39;49m$<2>\E>\E[?1l,
rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}
%=%t3%e%p1%d%;m,
@@ -1441,25 +1487,26 @@ qansi-g|QNX ANSI,
%=%t3%e%p1%d%;m,
sgr=\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1
%|%t;7%;%?%p7%t;9%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g,
- tsl=\E7\E1;24r\E[?6l\E[25;%i%p1%dH, use=ansi+rep,
- use=att610+cvis0, use=ecma+index,
+ sgr0=\E[m\017, smacs=^N, smam=\E[?7h,
+ tsl=\E7\E1;24r\E[?6l\E[25;%i%p1%dH, use=ansi+arrows,
+ use=ansi+local, use=ansi+rep, use=ansi+inittabs,
+ use=ansi+sgrbold, use=att610+cvis0, use=decid+cpr,
+ use=ecma+index,
#
-qansi|QNX ansi with console writes,
+qansi|QNX ANSI with console writes,
daisy, xhpa, use=qansi-g,
#
-qansi-t|QNX ansi without console writes,
+qansi-t|QNX ANSI without console writes,
crxm, use=qansi,
#
-qansi-m|QNX ansi with mouse,
+qansi-m|QNX ANSI with mouse,
maddr#1,
chr=\E[, cvr=\E], is1=\E[0t, mcub=\E[>1h, mcub1=\E[>7h,
mcud=\E[>1h, mcud1=\E[>1l\E[>9h, mcuf=\E[>1h\E[>9l,
mcuf1=\E[>7l, mcuu=\E[>6h, mcuu1=\E[>6l, rmicm=\E[>2l,
smicm=\E[>2h, use=qansi,
#
-qansi-w|QNX ansi for windows,
+qansi-w|QNX ANSI for windows,
xvpa, use=qansi-m,
#### SCO consoles
@@ -1493,36 +1540,34 @@ qansi-w|QNX ansi for windows,
#
# Console documents only 3 attributes can be set with SGR (so we don't use sgr).
scoansi-old|SCO Extended ANSI standard crt (5.0.5),
- OTbs, am, bce, eo, xon,
+ OTbs, am, bce, eo, xon, NQ,
colors#8, cols#80, it#8, lines#25, pairs#64,
- acsc=+/\,.-\230.\2310[5566778899\:\:;;<<==>>FFGGHHIIJJKKLLMM
- NNOOPPQQRRSSTTUUVVWWXX`\204a0fxgqh2jYk?lZm@nEqDtCu4vAwB
- x3yszr{c}\034~\207,
+ acsc=+/\,.-\230.\2310[5566778899::;;<<==>>FFGGHHIIJJKKLLMMNN
+ OOPPQQRRSSTTUUVVWWXX`\204a0fxgqh2jYk?lZm@nEqDtCu4vAwBx3
+ yszr{c}\034~\207,
bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
civis=\E[=14;12C, clear=\E[H\E[2J, cnorm=\E[=10;12C,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, cvvis=\E[=0;12C, dch=\E[%p1%dP,
- dch1=\E[P, dispc=\E[=%p1%dg, dl=\E[%p1%dM, dl1=\E[M,
- ed=\E[m\E[J, el=\E[m\E[K, el1=\E[1K, home=\E[H, ht=^I,
- hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L,
- ind=\E[S, invis=\E[8m, kbeg=\E[E, kbs=^H, kcbt=\E[Z,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=^?,
- kend=\E[F, kf1=\E[M, kf10=\E[V, kf11=\E[W, kf12=\E[X,
- kf13=\E[Y, kf15=\E[a, kf16=\E[b, kf17=\E[c, kf18=\E[d,
- kf19=\E[e, kf2=\E[N, kf20=\E[f, kf21=\E[g, kf22=\E[h,
- kf23=\E[i, kf24=\E[j, kf25=\E[k, kf26=\E[l, kf27=\E[m,
- kf28=\E[n, kf29=\E[o, kf3=\E[O, kf30=\E[p, kf31=\E[q,
- kf32=\E[r, kf33=\E[s, kf34=\E[t, kf35=\E[u, kf36=\E[v,
- kf37=\E[w, kf38=\E[x, kf39=\E[y, kf4=\E[P, kf40=\E[z,
- kf41=\E[@, kf42=\E[[, kf43=\E[\\, kf44=\E[], kf45=\E[\^,
- kf46=\E[_, kf47=\E[`, kf48=\E[{, kf5=\E[Q, kf6=\E[R,
- kf7=\E[S, kf8=\E[T, kf9=\E[U, khome=\E[H, kich1=\E[L,
+ cub1=^H, cup=\E[%i%p1%d;%p2%dH, cvvis=\E[=0;12C,
+ dch=\E[%p1%dP, dch1=\E[P, dispc=\E[=%p1%dg, ed=\E[m\E[J,
+ el=\E[m\E[K, el1=\E[1K, home=\E[H, ht=^I, hts=\EH,
+ ich=\E[%p1%d@, ich1=\E[@, ind=\E[S, invis=\E[8m, kbeg=\E[E,
+ kcbt=\E[Z, kdch1=^?, kend=\E[F, kf1=\E[M, kf10=\E[V,
+ kf11=\E[W, kf12=\E[X, kf13=\E[Y, kf15=\E[a, kf16=\E[b,
+ kf17=\E[c, kf18=\E[d, kf19=\E[e, kf2=\E[N, kf20=\E[f,
+ kf21=\E[g, kf22=\E[h, kf23=\E[i, kf24=\E[j, kf25=\E[k,
+ kf26=\E[l, kf27=\E[m, kf28=\E[n, kf29=\E[o, kf3=\E[O,
+ kf30=\E[p, kf31=\E[q, kf32=\E[r, kf33=\E[s, kf34=\E[t,
+ kf35=\E[u, kf36=\E[v, kf37=\E[w, kf38=\E[x, kf39=\E[y,
+ kf4=\E[P, kf40=\E[z, kf41=\E[@, kf42=\E[[, kf43=\E[\\,
+ kf44=\E[], kf45=\E[\^, kf46=\E[_, kf47=\E[`, kf48=\E[{,
+ kf5=\E[Q, kf6=\E[R, kf7=\E[S, kf8=\E[T, kf9=\E[U, kich1=\E[L,
knp=\E[G, kpp=\E[I, op=\E[0;37;40m, rc=\E8, rev=\E[7m,
ri=\E[T, rmacs=\E[10m, rmam=\E[?7l, rmso=\E[m, rmul=\E[m,
sc=\E7, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
sgr0=\E[0;10m, smacs=\E[12m, smam=\E[?7h, smso=\E[7m,
- smul=\E[4m, use=ecma+index,
+ smul=\E[4m, use=ansi+arrows, use=ansi+idl,
+ use=ansi+local, use=ecma+index,
+
scoansi-new|SCO Extended ANSI standard crt (5.0.6),
km,
civis=\E[=0c, cnorm=\E[=1c, csr=\E[%i%p1%d;%p2%dr,
@@ -1579,36 +1624,33 @@ iris-ansi|iris-ansi-net|IRIS emulating 40 line ANSI terminal (almost VT100),
am,
cols#80, it#8, lines#40,
bel=^G, bold=\E[1m, clear=\E[H\E[2J,
- cnorm=\E[9/y\E[12/y\E[=6l, cr=\r, cub=\E[%p1%dD,
- cub1=\E[D, cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
- cuu1=\E[A, cvvis=\E[10/y\E[=1h\E[=2l\E[=6h,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
- home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=\ED,
+ cnorm=\E[9/y\E[12/y\E[=6l, cr=\r, cud1=\n,
+ cup=\E[%i%p1%d;%p2%dH,
+ cvvis=\E[10/y\E[=1h\E[=2l\E[=6h, ed=\E[J, el=\E[K,
+ el1=\E[1K, home=\E[H, ht=^I, hts=\EH, ind=\ED,
is2=\E[?1l\E>\E[?7h\E[100g\E[0m\E7\E[r\E8, kDC=\E[P,
kEND=\E[147q, kHOM=\E[143q, kLFT=\E[158q, kPRT=\E[210q,
- kRIT=\E[167q, kSPD=\E[218q, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=^?, kend=\E[146q,
- kent=\r, kf1=\E[001q, kf10=\E[010q, kf11=\E[011q,
- kf12=\E[012q, kf2=\E[002q, kf3=\E[003q, kf4=\E[004q,
- kf5=\E[005q, kf6=\E[006q, kf7=\E[007q, kf8=\E[008q,
- kf9=\E[009q, khome=\E[H, kich1=\E[139q, knp=\E[154q,
+ kRIT=\E[167q, kSPD=\E[218q, kcbt=\E[Z, kdch1=^?,
+ kend=\E[146q, kent=\r, kf1=\E[001q, kf10=\E[010q,
+ kf11=\E[011q, kf12=\E[012q, kf2=\E[002q, kf3=\E[003q,
+ kf4=\E[004q, kf5=\E[005q, kf6=\E[006q, kf7=\E[007q,
+ kf8=\E[008q, kf9=\E[009q, kich1=\E[139q, knp=\E[154q,
kpp=\E[150q, kprt=\E[209q, krmir=\E[146q, kspd=\E[217q,
nel=\EE, pfkey=\EP101;%p1%d.y%p2%s\E\\, rc=\E8,
rev=\E[7m, ri=\EM, rmam=\E[?7l, rmso=\E[m, rmul=\E[m, sc=\E7,
sgr0=\E[m, smam=\E[?7h, smso=\E[1;7m, smul=\E[4m,
- tbc=\E[3g,
+ tbc=\E[3g, use=ansi+arrows, use=ansi+idl, use=ansi+local,
+
iris-ansi-ap|IRIS ANSI in application-keypad mode,
- is2=\E[?1l\E=\E[?7h, kent=\EOM, kf10=\E[010q,
- kf11=\E[011q, kf12=\E[012q, kf9=\E[009q, use=iris-ansi,
+ is2=\E[?1l\E=\E[?7h, kent=\EOM, use=iris-ansi,
# From the man-page, this is a quasi-vt100 emulator that runs on SGI's IRIX
# (T.Dickey 98/1/24)
iris-color|xwsh|IRIX ANSI with color,
ncv#33,
csr=\E[%i%p1%d;%p2%dr, dch=\E[%p1%dP, dim=\E[2m,
- ech=\E[%p1%dX, ich=\E[%p1%d@, rc=\E8, rmul=\E[24m, rs1=\Ec,
- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
+ ech=\E[%p1%dX, ich=\E[%p1%d@, rmul=\E[24m, rs1=\Ec,
+ rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
use=ecma+italics, use=vt100+enq, use=klone+color,
use=iris-ansi-ap,
@@ -1634,49 +1676,52 @@ iris-color|xwsh|IRIX ANSI with color,
# CSI ? 5 h Reverse Video (DECSCNM).
#
pccon+keys|OpenBSD PC keyboard keys,
- kbs=^?, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=\E[3~, kend=\E[8~, kent=\r, kf1=\E[11~, kf10=\E[21~,
+ kbs=^?, kend=\E[8~, kent=\r, kf1=\E[11~, kf10=\E[21~,
kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
kf19=\E[33~, kf2=\E[12~, kf20=\E[34~, kf21=\E[35~,
kf22=\E[36~, kf23=\E[37~, kf24=\E[38~, kf3=\E[13~,
kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
- kf9=\E[20~, khome=\E[7~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
- krfr=^R,
+ kf9=\E[20~, khome=\E[7~, krfr=^R, use=ansi+arrows,
+ use=vt220+pcedit,
pccon+sgr+acs0|sgr and simple ASCII pseudographics for OpenBSD PC console,
- acsc=+>\,<-\^.v0#`+a\:f\\h#i#j+k+l+m+n+o~p-q-r-s_t+u+v+w+x|y
- #z#{*|!}#~o,
+ acsc=+>\,<-\^.v0#`+a:f\\h#i#j+k+l+m+n+o~p-q-r-s_t+u+v+w+x|y#
+ z#{*|!}#~o,
+ bold=\E[1m, rev=\E[7m, rmso=\E[27m,
sgr=\E[0%?%p1%p3%|%t;7%;%?%p6%t;1%;%?%p2%t;4%;m,
- sgr0=\E[m,
+ sgr0=\E[m, smso=\E[7m,
pccon+sgr+acs|sgr and default ASCII pseudographics for OpenBSD PC console,
- acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxy
- yzz{{||}}~~,
- enacs=\E)0$<5>, rmacs=\E(B$<5>,
+ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+ bold=\E[1m, enacs=\E)0, rev=\E[7m, rmacs=\E(B, rmso=\E[27m,
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e
- \E(B%;$<2>,
- sgr0=\E[m\E(B$<5>, smacs=\E(0$<5>,
+ \E(B%;,
+ sgr0=\E[m\E(B, smacs=\E(0, smso=\E[7m,
# underline renders as color
pccon+colors|ANSI colors for OpenBSD PC console,
bce,
- colors#8, ncv#2, pairs#64,
- op=\E[47;30m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+ ncv#2,
+ op=\E[49;39m, use=klone+color,
+# OpenBSD uses wscons,
+# + which does not implement DECSCNM or anything comparable, so it does not
+# support flash.
+# + it renders underline using color.
pccon+base|base capabilities for OpenBSD PC console,
am, km, mc5i, msgr, npc, nxon, xenl, xon,
cols#80, it#8, lines#24,
- bel=^G, bold=\E[1m, clear=\E[H\E[J, cr=\r, cub1=^H, cud1=\n,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J,
- el=\E[K, el1=\E[1K, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
- il1=\E[L, ind=\ED, nel=\EE, rev=\E[7m, ri=\EM, rmam=\E[?7l,
- rmso=\E[27m, rmul=\E[24m, rs2=\Ec$<50>, smam=\E[?7h,
- smso=\E[7m, smul=\E[4m, tbc=\E[3g, u6=\E[%i%d;%dR,
- u7=\E[6n,
+ bel=^G, cr=\r, cub1=^H, cud1=\n, cup=\E[%i%p1%d;%p2%dH,
+ dch=\E[%p1%dP, dch1=\E[P, ech=\E[%p1%dX, el1=\E[1K,
+ home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ind=\ED, nel=\EE,
+ ri=\EM, rmam=\E[?7l, rmul=\E[24m, rs2=\Ec, smam=\E[?7h,
+ smul=\E[4m, tbc=\E[3g, use=ansi+cpr, use=ansi+csr,
+ use=ansi+erase, use=ansi+idl, use=ansi+local,
+
pccon0-m|OpenBSD PC console without colors & with simple ASCII pseudographics,
use=pccon+sgr+acs0, use=pccon+base, use=pccon+keys,
pccon0|OpenBSD PC console with simple ASCII pseudographics,
use=pccon0-m, use=pccon+colors,
pccon-m|OpenBSD PC console without colors,
use=pccon+base, use=pccon+sgr+acs, use=pccon+keys,
+ use=ansi+enq, use=vt220+cvis,
pccon|OpenBSD PC console,
use=pccon-m, use=pccon+colors,
@@ -1693,77 +1738,74 @@ pccon|OpenBSD PC console,
# NOTE: <ich1> has been taken out of this entry. for reference, it should
# be <ich1=\E[@>. For discussion, see ICH/ICH1 VERSUS RMIR/SMIR below.
# (esr: added <civis> and <cnorm> to resolve NetBSD Problem Report #4583)
-pcvtXX|pcvt vt200 emulator (DEC VT220),
+pcvtXX|pcvt VT200 emulator (DEC VT220),
am, km, mir, msgr, xenl,
it#8, vt#3,
acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxy
yzz~~,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
- el=\E[K, el1=\E[1K, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
- il=\E[%p1%dL, il1=\E[L, ind=\ED,
+ bel=^G, blink=\E[5m, bold=\E[1m, cr=\r, cub1=^H,
+ cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\E[P,
+ el1=\E[1K, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ind=\ED,
is1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, kbs=^?,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
kdch1=\E[3~, kf1=\E[17~, kf2=\E[18~, kf3=\E[19~,
kf4=\E[20~, kf5=\E[21~, kf6=\E[23~, kf7=\E[24~, kf8=\E[25~,
khome=\E[1~, kich1=\E[2~, kll=\E[4~, knp=\E[6~, kpp=\E[5~,
- nel=\EE, rc=\E8, rev=\E[7m, rf=/usr/share/tabset/vt100,
- ri=\EM, rmacs=\E(B, rmam=\E[?7l, rmir=\E[4l,
- rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m,
- rs1=\Ec\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
- sgr0=\E[m, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
- use=ecma+index, use=vt220+cvis,
+ nel=\EE, rev=\E[7m, rf=/usr/share/tabset/vt100, ri=\EM,
+ rmacs=\E(B, rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>,
+ rmso=\E[27m, rmul=\E[24m,
+ rs1=\Ec\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sgr0=\E[m,
+ smacs=\E(0, smam=\E[?7h, smir=\E[4h, smkx=\E[?1h\E=,
+ smso=\E[7m, smul=\E[4m, tbc=\E[3g, use=ansi+apparrows,
+ use=ansi+csr, use=ansi+erase, use=ansi+idl,
+ use=ansi+local, use=decid+cpr, use=ecma+index,
+ use=vt220+cvis,
-# NetBSD/FreeBSD vt220 terminal emulator console (pc keyboard & monitor)
+# NetBSD/FreeBSD VT220 terminal emulator console (pc keyboard & monitor)
# termcap entries for pure VT220-Emulation and 25, 28, 35, 40, 43 and
# 50 lines entries; 80 columns
-pcvt25|dec vt220 emulation with 25 lines,
+pcvt25|DEC VT220 emulation with 25 lines,
cols#80, lines#25,
is2=\E[1;25r\E[25;1H, use=pcvtXX,
-pcvt28|dec vt220 emulation with 28 lines,
+pcvt28|DEC VT220 emulation with 28 lines,
cols#80, lines#28,
is2=\E[1;28r\E[28;1H, use=pcvtXX,
-pcvt35|dec vt220 emulation with 35 lines,
+pcvt35|DEC VT220 emulation with 35 lines,
cols#80, lines#35,
is2=\E[1;35r\E[35;1H, use=pcvtXX,
-pcvt40|dec vt220 emulation with 40 lines,
+pcvt40|DEC VT220 emulation with 40 lines,
cols#80, lines#40,
is2=\E[1;40r\E[40;1H, use=pcvtXX,
-pcvt43|dec vt220 emulation with 43 lines,
+pcvt43|DEC VT220 emulation with 43 lines,
cols#80, lines#43,
is2=\E[1;43r\E[43;1H, use=pcvtXX,
-pcvt50|dec vt220 emulation with 50 lines,
+pcvt50|DEC VT220 emulation with 50 lines,
cols#80, lines#50,
is2=\E[1;50r\E[50;1H, use=pcvtXX,
-# NetBSD/FreeBSD vt220 terminal emulator console (pc keyboard & monitor)
+# NetBSD/FreeBSD VT220 terminal emulator console (pc keyboard & monitor)
# termcap entries for pure VT220-Emulation and 25, 28, 35, 40, 43 and
# 50 lines entries; 132 columns
-pcvt25w|dec vt220 emulation with 25 lines and 132 cols,
+pcvt25w|DEC VT220 emulation with 25 lines and 132 cols,
cols#132, lines#25,
is2=\E[1;25r\E[25;1H, use=pcvtXX,
-pcvt28w|dec vt220 emulation with 28 lines and 132 cols,
+pcvt28w|DEC VT220 emulation with 28 lines and 132 cols,
cols#132, lines#28,
is2=\E[1;28r\E[28;1H, use=pcvtXX,
-pcvt35w|dec vt220 emulation with 35 lines and 132 cols,
+pcvt35w|DEC VT220 emulation with 35 lines and 132 cols,
cols#132, lines#35,
is2=\E[1;35r\E[35;1H, use=pcvtXX,
-pcvt40w|dec vt220 emulation with 40 lines and 132 cols,
+pcvt40w|DEC VT220 emulation with 40 lines and 132 cols,
cols#132, lines#40,
is2=\E[1;40r\E[40;1H, use=pcvtXX,
-pcvt43w|dec vt220 emulation with 43 lines and 132 cols,
+pcvt43w|DEC VT220 emulation with 43 lines and 132 cols,
cols#132, lines#43,
is2=\E[1;43r\E[43;1H, use=pcvtXX,
-pcvt50w|dec vt220 emulation with 50 lines and 132 cols,
+pcvt50w|DEC VT220 emulation with 50 lines and 132 cols,
cols#132, lines#50,
is2=\E[1;50r\E[50;1H, use=pcvtXX,
# OpenBSD implements a color variation
-pcvt25-color|dec vt220 emulation with 25 lines and color,
+pcvt25-color|DEC VT220 emulation with 25 lines and color,
cols#80, lines#25,
is2=\E[1;25r\E[25;1H, kf1=\EOP, kf10=\E[29~, kf11=\E[23~,
kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
@@ -1778,39 +1820,32 @@ pcvt25-color|dec vt220 emulation with 25 lines and color,
# modified codes for setf/setb to setaf/setab, then to klone+color, corrected
# typo in invis - TD
arm100|arm100-am|Arm(RiscPC) ncurses compatible (for 640x480),
- am, bce, msgr, xenl, xon,
- cols#80, it#8, lines#30,
+ bce, xenl, xon,
+ lines#30,
acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
- clear=\E[H\E[J$<50>, cr=\r, csr=\E[%i%p1%d;%p2%dr,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\n,
- cuf=\E[%p1%dC, cuf1=\E[C$<2>,
- cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA,
- cuu1=\E[A$<2>, ed=\E[J$<50>, el=\E[K$<3>, el1=\E[1K$<3>,
- enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH, ind=\n,
- invis=\E[8m$<2>, ka1=\E[q, ka3=\E[s, kb2=\E[r, kbs=^H,
- kc1=\E[p, kc3=\E[n, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kent=\E[M, kf0=\E[y, kf1=\E[P, kf10=\E[x,
- kf2=\E[Q, kf3=\E[R, kf4=\E[S, kf5=\E[t, kf6=\E[u, kf7=\E[v,
- kf8=\E[l, kf9=\E[w, rc=\E8, rev=\E[7m$<2>, ri=\EM$<5>,
+ blink=\E[5m$<2>, bold=\E[1m$<2>, cub1=^H, cud1=\n,
+ cuf1=\E[C$<2>, cuu1=\E[A$<2>, invis=\E[8m$<2>, ka1=\E[q,
+ ka3=\E[s, kb2=\E[r, kc1=\E[p, kc3=\E[n, kent=\E[M, kf0=\E[y,
+ kf1=\E[P, kf10=\E[x, kf2=\E[Q, kf3=\E[R, kf4=\E[S, kf5=\E[t,
+ kf6=\E[u, kf7=\E[v, kf8=\E[l, kf9=\E[w, rev=\E[7m$<2>,
rmacs=^O, rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m$<2>,
- rmul=\E[m$<2>, rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
- sc=\E7,
+ rmul=\E[m$<2>,
sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5
%;%?%p7%t;8%;m%?%p9%t\016%e\017%;$<2>,
sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=,
- smso=\E[7m$<2>, smul=\E[4m$<2>, tbc=\E[3g, use=ecma+sgr,
+ smso=\E[7m$<2>, smul=\E[4m$<2>, use=ansi+csr,
+ use=ansi+local, use=ecma+sgr, use=vt100+4bsd,
use=klone+color,
arm100-w|arm100-wam|Arm(RiscPC) ncurses compatible (for 1024x768),
cols#132, lines#50, use=arm100,
-# NetBSD/x68k console vt200 emulator. This port runs on a 68K machine
+# NetBSD/x68k console VT200 emulator. This port runs on a 68K machine
# manufactured by Sharp for the Japanese market.
# From Minoura Makoto <minoura@netlaputa.or.jp>, 12 May 1996
x68k|x68k-ite|NetBSD/x68k ITE,
cols#96, lines#32,
- kclr=\E[9~, khlp=\E[28~, use=vt220-base,
+ kbs=^?, kclr=\E[9~, khlp=\E[28~, use=vt220-base,
# <tv@pobox.com>:
# Entry for the DNARD OpenFirmware console, close to ANSI but not quite.
@@ -1835,26 +1870,26 @@ ofcons|DNARD OpenFirmware console,
%;%?%p1%p3%|%t;7%;m,
sgr0=\2330m, smso=\2337m, smul=\2334m,
-# NetBSD "wscons" emulator in vt220 mode.
-# This entry is based on the NetBSD termcap entry, correcting the ncv value.
-# The emulator renders underlined text in red. Colors are otherwise usable.
+# NetBSD "wscons" emulator in VT220 mode.
+# This entry is based on the NetBSD termcap entry. The emulator renders
+# underlined text in red. Colors are otherwise usable. NetBSD developers
+# prefer to not specify the corresponding ncv value.
#
# Testing the emulator and reading the source code (NetBSD 2.0), it appears
-# that "vt220" is inaccurate. There are a few vt220-features, but most of the
-# vt220 screens in vttest do not work with this emulator. For instance, it
-# identifies itself (primary DA response) as a vt220 with selective erase. But
+# that "vt220" is inaccurate. There are a few VT220-features, but most of the
+# VT220 screens in vttest do not work with this emulator. For instance, it
+# identifies itself (primary DA response) as a VT220 with selective erase. But
# the selective erase feature does not work. The secondary response is copied
-# from Kermit's emulation of vt220, does not correspond to actual vt220. At
+# from Kermit's emulation of VT220, does not correspond to actual VT220. At
# the level of detail in a termcap, it is a passable emulator, since ECH does
# work. Don't use it on a VMS system -TD
wsvt25|NetBSD wscons in 25 line DEC VT220 mode,
- bce, msgr,
- colors#8, cols#80, it#8, lines#25, ncv#2, pairs#64,
+ bce,
+ colors#8, lines#25, pairs#64,
is2=\E[r\E[25;1H, kdch1=\E[3~, kend=\E[8~, kf1=\E[11~,
- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf2=\E[12~,
- kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
- kf8=\E[19~, kf9=\E[20~, khome=\E[7~, op=\E[m, rs1=\Ec,
- setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=vt220,
+ kf2=\E[12~, kf3=\E[13~, kf4=\E[14~, kf5=\E[15~,
+ khome=\E[7~, op=\E[m, rs1=\Ec, setab=\E[4%p1%dm,
+ setaf=\E[3%p1%dm, use=vt220,
wsvt25m|NetBSD wscons in 25 line DEC VT220 mode with Meta,
km, use=wsvt25,
@@ -1879,9 +1914,9 @@ wsvt25m|NetBSD wscons in 25 line DEC VT220 mode with Meta,
#
# Testing with vttest:
# -------------------
-# Identifies as vt220 with selective erase
+# Identifies as VT220 with selective erase
# (however, selective erase refers to DECSCA, SPA)
-# Does not implement vt52
+# Does not implement VT52
# Uses spaces to simulate double-size characters
# Does not support 8-bit controls
# Does not support VT220 reports
@@ -1913,24 +1948,22 @@ rcons-color|BSD rasterconsole with ANSI color,
mgterm|MGL/MGL2 MobileGear Graphic Library,
OTbs, OTpt, am, bce, bw, eo, km, msgr, npc,
colors#8, cols#80, it#8, lines#18, pairs#64,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
- cr=\r, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dim=\E[30;1m, dl=\E[%p1%dM,
- dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
- home=\E[H, hpa=\E[%i%p1%d`, ht=^I, ich=\E[%p1%d@,
- ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\E[S, kb2=\E[E,
- kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kdch1=^?, kend=\E[F, kf1=\E[M, kf10=\E[V,
- kf11=\E[W, kf12=\E[X, kf2=\E[N, kf3=\E[O, kf4=\E[P, kf5=\E[Q,
- kf6=\E[R, kf7=\E[S, kf8=\E[T, kf9=\E[U, khome=\E[H,
- kich1=\E[L, knp=\E[G, kpp=\E[I, nel=\E[E, op=\E[x, rc=\E8,
- rev=\E[7m, ri=\E[T, rmso=\E[m, rs2=\E[x\E[m\Ec, sc=\E7,
- setb=\E[4%p1%dm, setf=\E[3%p1%dm, sgr0=\E[m, smso=\E[7m,
- vpa=\E[%i%p1%dd, use=ecma+index,
+ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, cr=\r, cub1=^H,
+ cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\E[P,
+ dim=\E[30;1m, ech=\E[%p1%dX, el1=\E[1K, home=\E[H,
+ hpa=\E[%i%p1%d`, ht=^I, ich=\E[%p1%d@, ich1=\E[@, ind=\E[S,
+ kb2=\E[E, kcbt=\E[Z, kdch1=^?, kend=\E[F, kf1=\E[M,
+ kf10=\E[V, kf11=\E[W, kf12=\E[X, kf2=\E[N, kf3=\E[O,
+ kf4=\E[P, kf5=\E[Q, kf6=\E[R, kf7=\E[S, kf8=\E[T, kf9=\E[U,
+ kich1=\E[L, knp=\E[G, kpp=\E[I, nel=\E[E, op=\E[x, rev=\E[7m,
+ ri=\E[T, rmso=\E[m, rs2=\E[x\E[m\Ec, setb=\E[4%p1%dm,
+ setf=\E[3%p1%dm, sgr0=\E[m, smso=\E[7m, vpa=\E[%i%p1%dd,
+ use=ansi+arrows, use=ansi+csr, use=ansi+erase,
+ use=ansi+idl, use=ansi+local, use=ecma+index,
#### FreeBSD console entries
+
+# Originally from termcap:
#
# From: Andrey Chernov <ache@astral.msk.su> 29 Mar 1996
# Andrey Chernov maintains the FreeBSD termcap distributions.
@@ -1942,8 +1975,9 @@ mgterm|MGL/MGL2 MobileGear Graphic Library,
# I have seen FreeBSD-2.1.5R... The old el1 bug changed, but it is still there.
# Now el1 clears not only to the line beginning, but also a large chunk
# of previous line. But there is another bug - ech does not work at all.
-#
+# syscons, sc - the console driver
+#
# for syscons
# common entry without semigraphics
# Bug: The <op> capability resets attributes.
@@ -1954,112 +1988,164 @@ mgterm|MGL/MGL2 MobileGear Graphic Library,
# Setting colors turns off reverse; we cannot guarantee order, so use ncv.
# Note that this disables standout with color.
#
-# The emulator sends difference strings based on shift- and control-keys,
+# The emulator sends different strings based on shift- and control-keys,
# like scoansi:
# F13-F24 are shifted F1-F12
# F25-F36 are control F1-F12
# F37-F48 are shift+control F1-F12
-cons25w|ansiw|ansi80x25-raw|freebsd console (25-line raw mode),
+cons25w|ansiw|ansi80x25-raw|FreeBSD console (25-line raw mode),
am, bce, bw, eo, msgr, npc,
- colors#8, cols#80, it#8, lines#25, ncv#21, pairs#64,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
- cnorm=\E[=0C, cr=\r, cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB,
- cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[=1C, dch=\E[%p1%dP, dch1=\E[P, dim=\E[30;1m,
- dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
+ cols#80, it#8, lines#25, ncv#21,
+ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, cnorm=\E[=0C,
+ cr=\r, cub1=^H, cup=\E[%i%p1%d;%p2%dH, cvvis=\E[=1C,
+ dch=\E[%p1%dP, dch1=\E[P, dim=\E[30;1m, ech=\E[%p1%dX,
home=\E[H, hpa=\E[%i%p1%d`, ht=^I, ich=\E[%p1%d@,
- ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\E[S, kb2=\E[E,
- kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kdch1=^?, kend=\E[F, kf1=\E[M, kf10=\E[V,
- kf11=\E[W, kf12=\E[X, kf13=\E[Y, kf14=\E[Z, kf15=\E[a,
- kf16=\E[b, kf17=\E[c, kf18=\E[d, kf19=\E[e, kf2=\E[N,
- kf20=\E[f, kf21=\E[g, kf22=\E[h, kf23=\E[i, kf24=\E[j,
- kf25=\E[k, kf26=\E[l, kf27=\E[m, kf28=\E[n, kf29=\E[o,
- kf3=\E[O, kf30=\E[p, kf31=\E[q, kf32=\E[r, kf33=\E[s,
- kf34=\E[t, kf35=\E[u, kf36=\E[v, kf37=\E[w, kf38=\E[x,
- kf39=\E[y, kf4=\E[P, kf40=\E[z, kf41=\E[@, kf42=\E[[,
- kf43=\E[\\, kf44=\E[], kf45=\E[\^, kf46=\E[_, kf47=\E[`,
- kf48=\E[{, kf5=\E[Q, kf6=\E[R, kf7=\E[S, kf8=\E[T, kf9=\E[U,
- khome=\E[H, kich1=\E[L, knp=\E[G, kpp=\E[I, nel=\E[E,
- op=\E[x, rc=\E8, rev=\E[7m, ri=\E[T, rmso=\E[m,
- rs2=\E[x\E[m\Ec, sc=\E7, setab=\E[4%p1%dm,
- setaf=\E[3%p1%dm,
+ ich1=\E[@, ind=\E[S, kb2=\E[E, kcbt=\E[Z, kdch1=^?,
+ kend=\E[F, kf1=\E[M, kf10=\E[V, kf11=\E[W, kf12=\E[X,
+ kf13=\E[Y, kf14=\E[Z, kf15=\E[a, kf16=\E[b, kf17=\E[c,
+ kf18=\E[d, kf19=\E[e, kf2=\E[N, kf20=\E[f, kf21=\E[g,
+ kf22=\E[h, kf23=\E[i, kf24=\E[j, kf25=\E[k, kf26=\E[l,
+ kf27=\E[m, kf28=\E[n, kf29=\E[o, kf3=\E[O, kf30=\E[p,
+ kf31=\E[q, kf32=\E[r, kf33=\E[s, kf34=\E[t, kf35=\E[u,
+ kf36=\E[v, kf37=\E[w, kf38=\E[x, kf39=\E[y, kf4=\E[P,
+ kf40=\E[z, kf41=\E[@, kf42=\E[[, kf43=\E[\\, kf44=\E[],
+ kf45=\E[\^, kf46=\E[_, kf47=\E[`, kf48=\E[{, kf5=\E[Q,
+ kf6=\E[R, kf7=\E[S, kf8=\E[T, kf9=\E[U, kich1=\E[L, knp=\E[G,
+ kpp=\E[I, nel=\E[E, op=\E[x, rc=\E8, rev=\E[7m, ri=\E[T,
+ rmso=\E[m, rs2=\E[x\E[m\Ec, sc=\E7,
sgr=\E[0%?%p1%t;2;7%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;30;1%;%?
%p6%t;1%;m,
- sgr0=\E[m, smso=\E[7m, vpa=\E[%i%p1%dd, use=ecma+index,
-cons25|ansis|ansi80x25|freebsd console (25-line ansi mode),
+ sgr0=\E[m, smso=\E[7m, vpa=\E[%i%p1%dd, use=ansi+arrows,
+ use=ansi+erase, use=ansi+idl, use=ansi+local,
+ use=ecma+index, use=klone+color,
+
+cons25|ansis|ansi80x25|FreeBSD console (25-line ANSI mode),
acsc=-\030.^Y0\333`\004a\260f\370g\361h\261i\025j\331k\277l
\332m\300n\305q\304t\303u\264v\301w\302x\263y\363z\362~
\371,
use=cons25w,
-cons25-debian|freebsd console with debian backspace (25-line ansi mode),
+cons25-debian|FreeBSD console with debian backspace (25-line ANSI mode),
kbs=^?, kdch1=\E[3~, use=cons25,
-cons25-m|ansis-mono|ansi80x25-mono|freebsd console (25-line mono ansi mode),
+cons25-m|ansis-mono|ansi80x25-mono|FreeBSD console (25-line mono ANSI mode),
colors@, pairs@,
bold@, dim@, op@, rmul=\E[m, setab@, setaf@,
sgr=\E[0%?%p1%t;2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;m,
smul=\E[4m, use=cons25,
-cons30|ansi80x30|freebsd console (30-line ansi mode),
+cons30|ansi80x30|FreeBSD console (30-line ANSI mode),
lines#30, use=cons25,
-cons30-m|ansi80x30-mono|freebsd console (30-line mono ansi mode),
+cons30-m|ansi80x30-mono|FreeBSD console (30-line mono ANSI mode),
lines#30, use=cons25-m,
-cons43|ansi80x43|freebsd console (43-line ansi mode),
+cons43|ansi80x43|FreeBSD console (43-line ANSI mode),
lines#43, use=cons25,
-cons43-m|ansi80x43-mono|freebsd console (43-line mono ansi mode),
+cons43-m|ansi80x43-mono|FreeBSD console (43-line mono ANSI mode),
lines#43, use=cons25-m,
-cons50|ansil|ansi80x50|freebsd console (50-line ansi mode),
+cons50|ansil|ansi80x50|FreeBSD console (50-line ANSI mode),
lines#50, use=cons25,
-cons50-m|ansil-mono|ansi80x50-mono|freebsd console (50-line mono ansi mode),
+cons50-m|ansil-mono|ansi80x50-mono|FreeBSD console (50-line mono ANSI mode),
lines#50, use=cons25-m,
-cons60|ansi80x60|freebsd console (60-line ansi mode),
+cons60|ansi80x60|FreeBSD console (60-line ANSI mode),
lines#60, use=cons25,
-cons60-m|ansi80x60-mono|freebsd console (60-line mono ansi mode),
+cons60-m|ansi80x60-mono|FreeBSD console (60-line mono ANSI mode),
lines#60, use=cons25-m,
-cons25r|pc3r|ibmpc3r|cons25-koi8-r|freebsd console w/koi8-r cyrillic,
+cons25r|pc3r|ibmpc3r|cons25-koi8-r|FreeBSD console w/koi8-r cyrillic,
acsc=-\030.^Y0\215`\004a\220f\234h\221i\025j\205k\203l\202m
\204n\212q\0t\206u\207v\211w\210x\201y\230z\231~
\225,
use=cons25w,
-cons25r-m|pc3r-m|ibmpc3r-mono|cons25-koi8r-m|freebsd console w/koi8-r cyrillic (mono),
+cons25r-m|pc3r-m|ibmpc3r-mono|cons25-koi8r-m|FreeBSD console w/koi8-r cyrillic (mono),
colors@, pairs@,
op@, rmul=\E[m, setab@, setaf@,
sgr=\E[0%?%p1%t;2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5
%t;30;1%;%?%p6%t;1%;m,
smul=\E[4m, use=cons25r,
-cons50r|cons50-koi8r|freebsd console w/koi8-r cyrillic (50 lines),
+cons50r|cons50-koi8r|FreeBSD console w/koi8-r cyrillic (50 lines),
lines#50, use=cons25r,
-cons50r-m|cons50-koi8r-m|freebsd console w/koi8-r cyrillic (50-line mono),
+cons50r-m|cons50-koi8r-m|FreeBSD console w/koi8-r cyrillic (50-line mono),
lines#50, use=cons25r-m,
-cons60r|cons60-koi8r|freebsd console w/koi8-r cyrillic (60 lines),
+cons60r|cons60-koi8r|FreeBSD console w/koi8-r cyrillic (60 lines),
lines#60, use=cons25r,
-cons60r-m|cons60-koi8r-m|freebsd console w/koi8-r cyrillic (60-line mono),
+cons60r-m|cons60-koi8r-m|FreeBSD console w/koi8-r cyrillic (60-line mono),
lines#60, use=cons25r-m,
# ISO 8859-1 FreeBSD console
-cons25l1|cons25-iso8859|freebsd console w/iso 8859-1 chars,
+cons25l1|cons25-iso8859|FreeBSD console w/iso 8859-1 chars,
acsc=+\253\,\273-\030.\031`\201a\202f\207g\210i\247j\213k
\214l\215m\216n\217o\220p\221q\222r\223s\224t\225u
\226v\227w\230x\231y\232z\233~\237,
use=cons25w,
-cons25l1-m|cons25-iso-m|freebsd console w/iso 8859-1 chars (mono),
+cons25l1-m|cons25-iso-m|FreeBSD console w/iso 8859-1 chars (mono),
colors@, pairs@,
bold@, dim@, op@, rmul=\E[m, setab@, setaf@,
sgr=\E[0%?%p1%t;2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;m,
smul=\E[4m, use=cons25l1,
-cons50l1|cons50-iso8859|freebsd console w/iso 8859-1 chars (50 lines),
+cons50l1|cons50-iso8859|FreeBSD console w/iso 8859-1 chars (50 lines),
lines#50, use=cons25l1,
-cons50l1-m|cons50-iso-m|freebsd console w/iso 8859-1 chars (50-line mono),
+cons50l1-m|cons50-iso-m|FreeBSD console w/iso 8859-1 chars (50-line mono),
lines#50, use=cons25l1-m,
-cons60l1|cons60-iso|freebsd console w/iso 8859-1 chars (60 lines),
+cons60l1|cons60-iso|FreeBSD console w/iso 8859-1 chars (60 lines),
lines#60, use=cons25l1,
-cons60l1-m|cons60-iso-m|freebsd console w/iso 8859-1 chars (60-line mono),
+cons60l1-m|cons60-iso-m|FreeBSD console w/iso 8859-1 chars (60-line mono),
lines#60, use=cons25l1-m,
+# vt - virtual terminal console driver
+#
# Starting with FreeBSD 8, an alternative configuration for syscons is provided,
# which is intended to be xterm-compatible. See for example
# http://svnweb.freebsd.org/base/stable/8/sys/dev/syscons/
# in particular scterm-teken.c
#
+# Some of the documentation refers to this as "vt"; its proper name is "teken".
+#
+# The sc(4) manual page states that it is possible to switch between the two
+# by editing /boot/loader.conf, adding
+# kern.vty=sc
+# Doing that does not change the default TERM variable. That is hard-coded in
+# /etc/ttys, rather than deriving it from the kernel state.
+#
+# For FreeBSD 12 and 13:
+# ---------------------
+# In newer releases, it is no longer possible to boot into a configuration that
+# works with syscons. According to efi(4),
+# "The vt(4) system console is automatically selected when booting via UEFI."
+# See FreeBSD #264226.
+#
+# FreeBSD 13 supports 64-bit machines which boot with UEFI:
+# https://www.freebsd.org/platforms/
+# The i386 platform does not use UEFI (and modifying the loader configuration
+# does load sysconf); however because no updates (fixes) are available, most
+# developers will regard that as unsupported.
+#
+# With FreeBSD 13, even when syscons is loaded (e.g., with the i386 platform),
+# its function-keys are not configured. Using
+# vidcontrol -T cons25
+# repairs this.
+#
+# When teken is loaded, vidcontrol can switch at runtime between the
+# teken/cons25 function keys:
+# vidcontrol -T cons25
+# vidcontrol -T xterm
+# However due to a limitation in the implementation, only the first 12 function
+# keys are available. The real syscons supports 48 function keys (using the
+# shift and control modifiers), while xterm supports more than twice as many.
+#
+# vidcontrol does not change the emulation. As a result, the quarter (17/73) of
+# non-function key capabilities which differ between syscons and teken are
+# unsupported in the UEFI-based configurations.
+#
+# tack:
+# VT100 line-drawing does not work (UTF-8 equivalents do).
+# Shift/control modifiers have no effect on special keys.
+# Meta does not work.
+# vttest:
+# supports REP (repeat).
+# still does not support left/right margins
+# SU/SD work, but not SL/SR
+# alternate screen does not work
+# ENQ/DA1 is unimplemented (the terminal does not identify itself)
+# CPR, XCPR are unimplemented (i.e., vttest and resize are broken)
+# implements X11 (original) xterm-mouse.
+# ncurses:
+# UTF-8 line-drawing works, including some double/thick lines
+#
# For FreeBSD 9 and 10:
# --------------------
# The /etc/ttys entries for console and other ttys are all configured to set
@@ -2089,18 +2175,51 @@ cons60l1-m|cons60-iso-m|freebsd console w/iso 8859-1 chars (60-line mono),
#
# Those are removed from this entry's acsc string to avoid confusion.
# The resulting description provides correct line-drawing and function-keys -TD
-teken|syscons with teken,
- bw@, mir, xenl,
+teken-2018|teken as of 2018,
+ bw@, mir, xenl, NQ,
acsc=0\333a\260f\370g\361h\261j\331k\277l\332m\300n\305q
\304t\303u\264v\301w\302x\263y\363z\362~\371,
- cvvis@, hpa=\E[%i%p1%dG, hts=\EH, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kend=\E[F, kent=\r,
+ cvvis@, hpa=\E[%i%p1%dG, hts=\EH, kdch1=\E[3~, kent=\r,
kf1=\EOP, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf2=\EOQ,
kf3=\EOR, kf4=\EOS, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
- kf8=\E[19~, kf9=\E[20~, khome=\E[H, kich1=\E[2~, knp=\E[6~,
- kpp=\E[5~, rmir=\E[4l, smir=\E[4h, tbc=\E[3g,
- u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?1;2c, u9=\E[c,
- vpa=\E[%i%p1%dd, use=vt220+cvis, use=cons25,
+ kf8=\E[19~, kf9=\E[20~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
+ rmir=\E[4l, smir=\E[4h, tbc=\E[3g, use=vt220+cvis,
+ use=cons25,
+
+teken-2022|teken as of 2022,
+ am, bce, eo, mir, msgr, npc, NQ,
+ cols#80, it#8, lines#25, ncv#21, U8#1,
+ bold=\E[1m, cr=\r, cub1=^H, dim=\E[30;1m, ech=\E[%p1%dX,
+ ind=\E[S, kent=\r, nel=\E[E, op=\E[x, rev=\E[7m, ri=\E[T,
+ rmso=\E[27m, rs2=\E[x\E[m\Ec,
+ sgr=\E[0%?%p1%t;2;7%;%?%p3%t;7%;%?%p5%t;30;1%;%?%p6%t;1%;m,
+ sgr0=\E[m, use=vt220+cvis, use=ecma+index,
+ use=ansi+arrows, use=ansi+csr, use=ansi+cup,
+ use=ansi+erase, use=ansi+idc, use=ansi+idl,
+ use=ansi+local, use=ansi+rca2, use=ansi+sgrso,
+ use=ansi+tabs, use=klone+color,
+
+teken-vt+fkeys|teken's xterm special keys,
+ kend=\E[F, kf1=\EOP, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
+ kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\E[15~, kf6=\E[17~,
+ kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, khome=\E[H,
+ use=vt220+pcedit,
+
+teken-sc+fkeys|teken's syscons special keys,
+ kdch1=^?, kend=\E[F, kf1=\E[M, kf10=\E[V, kf11=\E[W,
+ kf12=\E[X, kf2=\E[N, kf3=\E[O, kf4=\E[P, kf5=\E[Q, kf6=\E[R,
+ kf7=\E[S, kf8=\E[T, kf9=\E[U, khome=\E[H, kich1=\E[L,
+ knp=\E[G, kpp=\E[I,
+
+teken-sc|teken imitating syscons,
+ use=teken-sc+fkeys, use=teken-2022,
+
+teken|teken-vt|teken imitating xterm,
+ xenl, use=teken-vt+fkeys, use=xterm+x11mouse,
+ use=teken-2022,
+
+teken-16color|teken using 16 colors,
+ use=ibm+16color, use=teken,
#### 386BSD and BSD/OS Consoles
#
@@ -2108,26 +2227,25 @@ teken|syscons with teken,
# This was the original 386BSD console entry (I think).
# Some places it's named oldpc3|oldibmpc3.
# From: Alex R.N. Wetmore <aw2t@andrew.cmu.edu>
-origpc3|origibmpc3|IBM PC 386BSD Console,
+origpc3|origibmpc3|IBM PC 386BSD console,
OTbs, am, bw, eo, xon,
cols#80, lines#25,
acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x
\263,
- bold=\E[7m, clear=\Ec, cub1=^H, cud1=\E[B, cuf1=\E[C,
- cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, ed=\E[J, el=\E[K,
- home=\E[H, ind=\E[S, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, khome=\E[Y, ri=\E[T, rmso=\E[1;0x\E[2;7x,
- rmul=\E[1;0x\E[2;7x, sgr0=\E[m\E[1;0x\E[2;7x,
- smso=\E[1;7x\E[2;0x, smul=\E[1;7x\E[2;0x,
+ bold=\E[7m, clear=\Ec, cub1=^H, cup=\E[%i%p1%2d;%p2%2dH,
+ ed=\E[J, el=\E[K, home=\E[H, ind=\E[S, kcub1=\E[D,
+ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[Y, ri=\E[T,
+ rmso=\E[1;0x\E[2;7x, rmul=\E[1;0x\E[2;7x,
+ sgr0=\E[m\E[1;0x\E[2;7x, smso=\E[1;7x\E[2;0x,
+ smul=\E[1;7x\E[2;0x, use=ansi+local1,
# description of BSD/386 console emulator in version 1.0 (supplied by BSDI)
-oldpc3|oldibmpc3|old IBM PC BSD/386 Console,
+oldpc3|oldibmpc3|old IBM PC BSD/386 console,
OTbs, km,
lines#25,
bel=^G, bold=\E[=15F, cr=\r, cud1=\n, dim=\E[=8F, dl1=\E[M,
- ht=^I, il1=\E[L, ind=\n, kbs=^H, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, kich1=\E[L, kll=\E[F,
- knp=\E[G, kpp=\E[I, nel=\r\n, sgr0=\E[=R,
+ ht=^I, il1=\E[L, ind=\n, kich1=\E[L, kll=\E[F, knp=\E[G,
+ kpp=\E[I, nel=\r\n, sgr0=\E[=R, use=ansi+arrows,
# Description of BSD/OS console emulator in version 1.1, 2.0, 2.1
# Note, the emulator supports many of the additional console features
@@ -2137,7 +2255,7 @@ oldpc3|oldibmpc3|old IBM PC BSD/386 Console,
# "stty rows NN", e.g. to use 24 lines.
# (Color support from Kevin Rosenberg <kevin@cyberport.com>, 2 May 1996)
# Bug: The <op> capability resets attributes.
-bsdos-pc|IBM PC BSD/OS Console,
+bsdos-pc|IBM PC BSD/OS console,
sgr=\E[0;10%?%p1%t;7%;%?%p2%t;1%;%?%p3%t;7%;%?%p4%t;5%;%?%p6
%t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
use=bsdos-pc-nobold,
@@ -2148,29 +2266,27 @@ bsdos-pc-nobold|BSD/OS PC console w/o bold,
bsdos-pc-m|bsdos-pc-mono|BSD/OS PC console mono,
OTbs, am, eo, km, xon,
cols#80, it#8, lines#25,
- bel=^G, clear=\Ec, cr=\r, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
- il=\E[%p1%dL, il1=\E[L, ind=\n, kbs=^H, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, kich1=\E[L,
- kll=\E[F, knp=\E[G, kpp=\E[I, nel=\r\n, rc=\E8, sc=\E7,
+ bel=^G, clear=\Ec, cr=\r, cub1=^H, cud1=\n,
+ cup=\E[%i%p1%d;%p2%dH, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
+ ind=\n, kich1=\E[L, kll=\E[F, knp=\E[G, kpp=\E[I, nel=\r\n,
+ rc=\E8, sc=\E7,
sgr=\E[0;10%?%p1%t;7%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7
%t;8%;%?%p9%t;11%;m%?%p5%t\E[=8F%;,
+ use=ansi+arrows, use=ansi+idl, use=ansi+local,
use=klone+sgr8,
# Old names for BSD/OS PC console used in releases before 4.1.
-pc3|BSD/OS on the PC Console,
+pc3|BSD/OS on the PC console,
use=bsdos-pc-nobold,
-ibmpc3|pc3-bold|BSD/OS on the PC Console with bold instead of underline,
+ibmpc3|pc3-bold|BSD/OS on the PC console with bold instead of underline,
use=bsdos-pc,
# BSD/OS on the SPARC
-bsdos-sparc|Sun SPARC BSD/OS Console,
+bsdos-sparc|Sun SPARC BSD/OS console,
use=sun,
# BSD/OS on the PowerPC
-bsdos-ppc|PowerPC BSD/OS Console,
+bsdos-ppc|PowerPC BSD/OS console,
use=bsdos-pc,
@@ -2178,8 +2294,8 @@ bsdos-ppc|PowerPC BSD/OS Console,
# (<acsc>/<rmacs>/<smacs> capabilities aren't in DEC's official entry -- esr)
#
# Actually (TD pointed this out at the time the acsc string was added):
-# vt52 shouldn't define full acsc since most of the cells don't match.
-# see vt100 manual page A-31. This is the list that does match:
+# VT52 shouldn't define full acsc since most of the cells don't match.
+# see VT100 manual page A-31. This is the list that does match:
# f degree
# g plus/minus
# h right-arrow
@@ -2189,28 +2305,29 @@ bsdos-ppc|PowerPC BSD/OS Console,
# q scan-5
# s scan-7
# The line-drawing happens to work in several terminal emulators, but should
-# not be used as a guide to the capabilities of the vt52. Note in particular
-# that vt52 does not support line-drawing characters (the scan-X values refer
+# not be used as a guide to the capabilities of the VT52. Note in particular
+# that VT52 does not support line-drawing characters (the scan-X values refer
# to a crude plotting feature) -TD
-vt52|dec vt52,
- OTbs,
- it#8, lines#24,
- acsc=+h.k0affggolpnqprrss, home=\EH, kbs=^H, nel=\r\n,
- ri=\EI, rmacs=\EG, rmkx=\E>, smacs=\EF, smkx=\E=, u8=\E/[KL],
- use=vt50h,
+vt52|DEC VT52,
+ lines#24,
+ acsc=+h.k0affggolpnqprrss, rmacs=\EG, rmkx=\E>,
+ smacs=\EF, smkx=\E=, u8=\E/[KL], use=vt50h, use=vt52-basic,
# This is more likely the "vt52" that you would see in emulation, i.e., no
# keypad, no graphics.
-vt52-basic|vt52 for emulators,
+vt52-basic|VT52 for emulators,
cols#80, it#8, lines#24,
bel=^G, clear=\EH\EJ, cr=\r, cub1=\ED, cud1=\EB, cuf1=\EC,
cup=\EY%p1%' '%+%c%p2%' '%+%c, cuu1=\EA, ed=\EJ, el=\EK,
- home=\EH, ht=^I, ind=\n, kbs=^H, kcub1=\ED, kcud1=\EB,
- kcuf1=\EC, kcuu1=\EA, nel=\r\n, ri=\EI,
+ home=\EH, ht=^I, ind=\n, kbs=^H, nel=\r\n, ri=\EI,
+ use=vt52+arrows,
+
+vt52+arrows|cursor keys for VT52,
+ kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
#### DEC VT100 and compatibles
#
-# DEC terminals from the vt100 forward are collected here. Older DEC terminals
+# DEC terminals from the VT100 forward are collected here. Older DEC terminals
# and micro consoles can be found in the `obsolete' section. More details on
# the relationship between the VT100 and ANSI X3.64/ISO 6429/ECMA-48 may be
# found near the end of this file.
@@ -2319,12 +2436,12 @@ vt52-basic|vt52 for emulators,
# terminfo guidelines. That is a compromise used to assign the remaining
# keys on the keypad to kf5-kf0, used on older systems with legacy termcap
# support:
-vt100+keypad|dec vt100 numeric keypad no fkeys,
+vt100+keypad|DEC VT100 numeric keypad no fkeys,
ka1=\EOq, ka3=\EOs, kb2=\EOr, kc1=\EOp, kc3=\EOn,
-vt100+pfkeys|dec vt100 numeric keypad,
+vt100+pfkeys|DEC VT100 numeric keypad (kf1-kf4),
kent=\EOM, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
use=vt100+keypad,
-vt100+fnkeys|dec vt100 numeric keypad,
+vt100+fnkeys|DEC VT100 numeric keypad (kf0-kf10),
kf0=\EOy, kf10=\EOx, kf5=\EOt, kf6=\EOu, kf7=\EOv, kf8=\EOl,
kf9=\EOw, use=vt100+pfkeys,
#
@@ -2349,14 +2466,13 @@ vt100+fnkeys|dec vt100 numeric keypad,
# | $Op | $On | |
# |___________________|_________|_kent_@8_|
#
-vt220+keypad|dec vt220 numeric keypad,
- ka1=\EOw, ka3=\EOy, kb2=\EOu, kc1=\EOq, kc3=\EOs, kent=\EOM,
- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, ka2=\EOx, kb1=\EOt,
- kb3=\EOv, kc2=\EOr,
+vt220+keypad|DEC VT220 numeric keypad,
+ ka1=\EOw, ka3=\EOy, kb2=\EOu, kc1=\EOq, kc3=\EOs, ka2=\EOx,
+ kb1=\EOt, kb3=\EOv, kc2=\EOr, use=vt100+pfkeys,
#
-vt100+enq|ncurses extension for vt100-style ENQ,
+vt100+enq|ncurses extension for VT100-style ENQ,
u8=\E[?1;2c, use=ansi+enq,
-vt102+enq|ncurses extension for vt102-style ENQ,
+vt102+enq|ncurses extension for VT102-style ENQ,
u8=\E[?6c, use=ansi+enq,
#
# And here, for those of you with orphaned VT100s lacking documentation, is
@@ -2393,26 +2509,25 @@ vt102+enq|ncurses extension for vt102-style ENQ,
# INTERLACE_OFF
#
# (vt100: I added <rmam>/<smam> based on the init string, also <OTbs>. -- esr)
-vt100|vt100-am|dec vt100 (w/advanced video),
- OTbs, mc5i, xenl, xon,
+vt100|vt100-am|DEC VT100 (w/advanced video),
+ OTbs, xenl, xon,
vt#3,
- csr=\E[%i%p1%d;%p2%dr, kcub1=\EOD, kcud1=\EOB,
- kcuf1=\EOC, kcuu1=\EOA, lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4,
- mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, rc=\E8, rmam=\E[?7l,
+ kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, lf1=pf1,
+ lf2=pf2, lf3=pf3, lf4=pf4, mc0=\E[0i, rmam=\E[?7l,
rmkx=\E[?1l\E>, rs2=\E<\E>\E[?3;4;5l\E[?7;8h\E[r,
- sc=\E7,
sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5
%;m%?%p9%t\016%e\017%;$<2>,
smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m$<2>,
- use=vt100+4bsd, use=vt100+fnkeys,
-vt100+4bsd|dec vt100 from 4.0BSD,
+ use=ansi+csr, use=ansi+pp, use=decid+cpr, use=vt100+4bsd,
+ use=vt100+fnkeys,
+
+vt100+4bsd|DEC VT100 from 4.0BSD,
am, msgr,
cols#80, it#8, lines#24,
acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
- clear=\E[H\E[J$<50>, cr=\r, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C$<2>,
- cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA,
+ clear=\E[H\E[J$<50>, cr=\r, cub1=^H, cud1=\n,
+ cuf1=\E[C$<2>, cup=\E[%i%p1%d;%p2%dH$<5>,
cuu1=\E[A$<2>, ed=\E[J$<50>, el=\E[K$<3>, el1=\E[1K$<3>,
enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH, ind=\n, kbs=^H,
kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
@@ -2421,32 +2536,33 @@ vt100+4bsd|dec vt100 from 4.0BSD,
sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5
%;m%?%p9%t\016%e\017%;$<2>,
sgr0=\E[m\017$<2>, smacs=^N, smso=\E[1;7m$<2>,
- smul=\E[4m$<2>, tbc=\E[3g,
-vt100nam|vt100-nam|vt100 no automargins,
+ smul=\E[4m$<2>, tbc=\E[3g, use=ansi+local,
+
+vt100nam|vt100-nam|VT100 no automargins,
am@, xenl@,
rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h, use=vt100-am,
-vt100-vb|dec vt100 (w/advanced video) & no beep,
+vt100-vb|DEC VT100 (w/advanced video) & no beep,
bel@, flash=\E[?5h$<100/>\E[?5l, use=vt100,
-# Ordinary vt100 in 132 column ("wide") mode.
-vt100-w|vt100-w-am|dec vt100 132 cols (w/advanced video),
+# Ordinary VT100 in 132 column ("wide") mode.
+vt100-w|vt100-w-am|DEC VT100 132 cols (w/advanced video),
cols#132, lines#24,
rs2=\E>\E[?3h\E[?4l\E[?5l\E[?8h, use=vt100-am,
-vt100-w-nam|vt100-nam-w|dec vt100 132 cols (w/advanced video no automargin),
+vt100-w-nam|vt100-nam-w|DEC VT100 132 cols (w/advanced video no automargin),
cols#132, lines#14, vt@,
rs2=\E>\E[?3h\E[?4l\E[?5l\E[?8h, use=vt100-nam,
-# vt100 with no advanced video.
-vt100-nav|vt100 without advanced video option,
+# VT100 with no advanced video.
+vt100-nav|VT100 without advanced video option,
xmc#1,
blink@, bold@, rev@, rmso=\E[m, rmul@, sgr@, sgr0@, smso=\E[7m,
smul@, use=vt100,
-vt100-nav-w|vt100-w-nav|dec vt100 132 cols 14 lines (no advanced video option),
+vt100-nav-w|vt100-w-nav|DEC VT100 132 cols 14 lines (no advanced video option),
cols#132, lines#14, use=vt100-nav,
-# vt100 with one of the 24 lines used as a status line.
+# VT100 with one of the 24 lines used as a status line.
# We put the status line on the top.
-vt100-s|vt100-s-top|vt100-top-s|vt100 for use with top sysline,
+vt100-s|vt100-s-top|vt100-top-s|VT100 for use with top sysline,
eslok, hs,
lines#23,
clear=\E[2;1H\E[J$<50>, csr=\E[%i%i%p1%d;%p2%dr,
@@ -2456,19 +2572,19 @@ vt100-s|vt100-s-top|vt100-top-s|vt100 for use with top sysline,
# Status line at bottom.
# Clearing the screen will clobber status line.
-vt100-s-bot|vt100-bot-s|vt100 for use with bottom sysline,
+vt100-s-bot|vt100-bot-s|VT100 for use with bottom sysline,
eslok, hs,
lines#23,
dsl=\E7\E[1;24r\E8, fsl=\E8, is2=\E[1;23r\E[23;1H,
tsl=\E7\E[24;%p1%dH\E[1K, use=vt100-am,
-# Most of the `vt100' emulators out there actually emulate a vt102
+# Most of the `vt100' emulators out there actually emulate a VT102
# This entry (or vt102-nsgr) is probably the right thing to use for
# these.
-vt102|dec vt102,
+vt102|DEC VT102,
dch1=\E[P, dl1=\E[M, il1=\E[L, rmir=\E[4l, smir=\E[4h,
use=vt100,
-vt102-w|dec vt102 in wide mode,
+vt102-w|DEC VT102 in wide mode,
cols#132,
rs3=\E[?3h, use=vt102,
@@ -2480,33 +2596,32 @@ vt102-w|dec vt102 in wide mode,
# ACS support working, at the cost of making multiple-highlight changes
# slightly more expensive.
# From: Eric S. Raymond <esr@snark.thyrsus.com> July 22 1995
-vt102-nsgr|vt102 no sgr (use if you see snowflakes after highlight changes),
+vt102-nsgr|VT102 no sgr (use if you see snowflakes after highlight changes),
sgr@, sgr0=\E[m, use=vt102,
# VT125 Graphics CRT. Clear screen also erases graphics
-# Some vt125's came configured with vt102 support.
-vt125|vt125 graphics terminal,
+# Some VT125's came configured with VT102 support.
+vt125|VT125 graphics terminal,
mir,
clear=\E[H\E[2J\EPpS(E)\E\\$<50>, use=vt100,
# This isn't a DEC entry, it came from University of Wisconsin.
# (vt131: I added <rmam>/<smam> based on the init string, also <OTbs> -- esr)
-vt131|dec vt131,
+vt131|DEC VT131,
OTbs, am, xenl,
cols#80, it#8, lines#24, vt#3,
bel=^G, blink=\E[5m$<2/>, bold=\E[1m$<2/>,
- clear=\E[;H\E[2J$<50/>, cr=\r, csr=\E[%i%p1%d;%p2%dr,
- cub1=^H, cud1=\n, cuf1=\E[C$<2/>,
- cup=\E[%i%p1%d;%p2%dH$<5/>, cuu1=\E[A$<2/>,
- ed=\E[J$<50/>, el=\E[K$<3/>, home=\E[H, ht=^I,
- is2=\E[1;24r\E[24;1H, kbs=^H, kcub1=\EOD, kcud1=\EOB,
- kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP, kf2=\EOQ, kf3=\EOR,
- kf4=\EOS, nel=\r\n, rc=\E8, rev=\E[7m$<2/>, ri=\EM$<5/>,
+ clear=\E[;H\E[2J$<50/>, cr=\r, cub1=^H, cud1=\n,
+ cuf1=\E[C$<2/>, cup=\E[%i%p1%d;%p2%dH$<5/>,
+ cuu1=\E[A$<2/>, ed=\E[J$<50/>, el=\E[K$<3/>, home=\E[H,
+ ht=^I, is2=\E[1;24r\E[24;1H, kbs=^H, kcub1=\EOD,
+ kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP, kf2=\EOQ,
+ kf3=\EOR, kf4=\EOS, nel=\r\n, rev=\E[7m$<2/>, ri=\EM$<5/>,
rmam=\E[?7h, rmkx=\E[?1l\E>, rmso=\E[m$<2/>,
rmul=\E[m$<2/>,
- rs1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
+ rs1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
sgr0=\E[m$<2/>, smam=\E[?7h, smkx=\E[?1h\E=,
- smso=\E[7m$<2/>, smul=\E[4m$<2/>,
+ smso=\E[7m$<2/>, smul=\E[4m$<2/>, use=ansi+csr,
# vt132 - like vt100 but slower and has ins/del line and such.
# I'm told that <smir>/<rmir> are backwards in the terminal from the
@@ -2514,7 +2629,7 @@ vt131|dec vt131,
# terminal. I've never actually used a vt132 myself, so this
# is untested.
#
-vt132|DEC vt132,
+vt132|DEC VT132,
xenl,
dch1=\E[P$<7>, dl1=\E[M$<99>, il1=\E[L$<99>, ind=\n$<30>,
ip=$<7>, rmir=\E[4h, smir=\E[4l, use=vt100,
@@ -2525,29 +2640,29 @@ vt132|DEC vt132,
# PF1--PF4 are used as F1--F4.
#
# added msgr -TD
-vt220-old|vt200-old|DEC VT220 in vt100 emulation mode,
+vt220-old|vt200-old|DEC VT220 in VT100 emulation mode,
OTbs, OTpt, am, mir, msgr, xenl, xon,
cols#80, lines#24, vt#3,
OTnl=\n,
acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
- clear=\E[H\E[2J$<50>, cr=\r, csr=\E[%i%p1%d;%p2%dr,
- cub1=^H, cud1=\E[B, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH$<10>, cuu1=\E[A, dch1=\E[P,
- dl1=\E[M, ed=\E[J$<50>, el=\E[K$<3>, home=\E[H, ht=^I,
- if=/usr/share/tabset/vt100, il1=\E[L, ind=\ED$<20/>,
- is2=\E[1;24r\E[24;1H, kbs=^H, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, kf10=\E[29~, kf2=\EOQ,
+ clear=\E[H\E[2J$<50>, cr=\r, cub1=^H,
+ cup=\E[%i%p1%d;%p2%dH$<10>, dch1=\E[P, ed=\E[J$<50>,
+ el=\E[K$<3>, home=\E[H, ht=^I,
+ if=/usr/share/tabset/vt100, ind=\ED$<20/>,
+ is2=\E[1;24r\E[24;1H, kf1=\EOP, kf10=\E[29~, kf2=\EOQ,
kf3=\EOR, kf4=\EOS, kf5=\E[17~, kf6=\E[18~, kf7=\E[19~,
- kf8=\E[20~, kf9=\E[21~, kich1=\E[2~, rc=\E8, rev=\E[7m$<2>,
- rf=/usr/share/tabset/vt100, ri=\EM$<14/>,
- rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l, rmso=\E[27m,
- rmul=\E[24m, rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
- sc=\E7,
+ kf8=\E[20~, kf9=\E[21~, khome=\E[1~, kich1=\E[2~,
+ rev=\E[7m$<2>, rf=/usr/share/tabset/vt100,
+ ri=\EM$<14/>, rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l,
+ rmso=\E[27m, rmul=\E[24m,
+ rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?
%p9%t\E(0%e\E(B%;$<2>,
sgr0=\E[m$<2>, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h,
- smso=\E[7m, smul=\E[4m, use=vt220+pcedit, use=vt220+cvis,
+ smso=\E[7m, smul=\E[4m, use=ansi+arrows, use=ansi+csr,
+ use=ansi+idl1, use=ansi+local1, use=vt220+pcedit,
+ use=vt220+cvis,
# Here's a picture of the Sun/PC editing keypad:
# +--------+--------+--------+
@@ -2566,10 +2681,10 @@ vt220-old|vt200-old|DEC VT220 in vt100 emulation mode,
# Remove Delete
# Find Home
# Select End
-vt220+pcedit|editing-keypad for vt220 using PC keyboard,
+vt220+pcedit|editing-keypad for VT220 using PC keyboard,
kdch1=\E[3~, kend=\E[4~, khome=\E[1~, kich1=\E[2~,
knp=\E[6~, kpp=\E[5~,
-vt220+vtedit|editing-keypad for vt220 using DEC keyboard,
+vt220+vtedit|editing-keypad for VT220 using DEC keyboard,
kdch1=\E[3~, kfnd=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
kslt=\E[4~,
@@ -2590,35 +2705,32 @@ vt220-base|DEC VT220 as emulated,
OTbs, am, mir, msgr, xenl, xon,
cols#80, it#8, lines#24, vt#3,
acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)0,
- flash=\E[?5h$<200/>\E[?5l, home=\E[H, ht=^I, hts=\EH,
- ich=\E[%p1%d@, if=/usr/share/tabset/vt100,
- il=\E[%p1%dL, il1=\E[L, ind=\ED,
+ bel=^G, blink=\E[5m, bold=\E[1m, cr=\r, cub1=^H, cud1=\n,
+ dch=\E[%p1%dP, dch1=\E[P, ech=\E[%p1%dX, el1=\E[1K,
+ enacs=\E)0, flash=\E[?5h$<200/>\E[?5l, ht=^I, hts=\EH,
+ ich=\E[%p1%d@, if=/usr/share/tabset/vt100, ind=\ED,
is2=\E[?7h\E[>\E[?1l\E F\E[?4l, kbs=^H, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kf1=\EOP,
- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
- kf14=\E[26~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
- kf2=\EOQ, kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf6=\E[17~,
- kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, khlp=\E[28~,
- krdo=\E[29~, lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, nel=\EE,
- rc=\E8, rev=\E[7m, ri=\EM, rmacs=\E(B$<4>, rmam=\E[?7l,
- rmir=\E[4l, rmso=\E[27m, rmul=\E[24m, rs1=\E[?3l, sc=\E7,
+ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, kf10=\E[21~,
+ kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
+ kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\EOQ,
+ kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf6=\E[17~, kf7=\E[18~,
+ kf8=\E[19~, kf9=\E[20~, khlp=\E[28~, krdo=\E[29~, lf1=pf1,
+ lf2=pf2, lf3=pf3, lf4=pf4, nel=\EE, rev=\E[7m, ri=\EM,
+ rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l, rmso=\E[27m,
+ rmul=\E[24m, rs1=\E[?3l,
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?
%p9%t\E(0%e\E(B%;$<2>,
sgr0=\E[m\E(B, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h,
- smso=\E[7m, smul=\E[4m, tbc=\E[3g, use=vt220+vtedit,
- use=ansi+pp, use=ansi+enq,
-vt220|vt200|dec vt220,
+ smso=\E[7m, smul=\E[4m, tbc=\E[3g, use=ansi+csr,
+ use=ansi+cup, use=ansi+pp, use=ansi+enq, use=ansi+erase,
+ use=ansi+idl, use=ansi+local, use=vt220+vtedit,
+
+vt220|vt200|DEC VT220,
use=vt220+cvis, use=vt220-base,
-vt220-w|vt200-w|DEC vt220 in wide mode,
+vt220-w|vt200-w|DEC VT220 in wide mode,
cols#132,
rs3=\E[?3h, use=vt220,
-vt220-8bit|vt220-8|vt200-8bit|vt200-8|dec vt220/200 in 8-bit mode,
+vt220-8bit|vt220-8|vt200-8bit|vt200-8|DEC VT220/200 in 8-bit mode,
OTbs, am, mc5i, mir, msgr, xenl, xon,
cols#80, it#8, lines#24, vt#3,
acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
@@ -2649,62 +2761,61 @@ vt220-8bit|vt220-8|vt200-8bit|vt200-8|dec vt220/200 in 8-bit mode,
smso=\2337m, smul=\2334m, tbc=\2333g, use=vt220+cvis8,
# vt220d:
-# This vt220 description regards F6--F10 as the second block of function keys
+# This VT220 description regards F6--F10 as the second block of function keys
# at the top of the keyboard. This mapping follows the description given
# in the VT220 Programmer Reference Manual and agrees with the labeling
-# on some terminals that emulate the vt220. There is no support for an F5.
+# on some terminals that emulate the VT220. There is no support for an F5.
# See vt220 for an alternate mapping.
#
-vt220d|DEC VT220 in vt100 mode with DEC function key labeling,
+vt220d|DEC VT220 in VT100 mode with DEC function key labeling,
kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
kf18=\E[32~, kf19=\E[33~, kf20=\E[34~, kf5@, kf6=\E[17~,
kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, use=vt220-old,
-vt220-nam|v200-nam|VT220 in vt100 mode with no auto margins,
+vt220-nam|v200-nam|VT220 in VT100 mode with no auto margins,
am@,
rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h, use=vt220,
# vt220 termcap written Tue Oct 25 20:41:10 1988 by Alex Latzko
# (not an official DEC entry!)
-# The problem with real vt220 terminals is they don't send escapes when in
-# in vt220 mode. This can be gotten around two ways. 1> don't send
-# escapes or 2> put the vt220 into vt100 mode and use all the nifty
-# features of vt100 advanced video which it then has.
+# The problem with real VT220 terminals is they don't send escapes when in
+# in VT220 mode. This can be gotten around two ways. 1> don't send
+# escapes or 2> put the VT220 into VT100 mode and use all the nifty
+# features of VT100 advanced video which it then has.
#
-# This entry takes the view of putting a vt220 into vt100 mode so
+# This entry takes the view of putting a VT220 into VT100 mode so
# you can use the escape key in emacs and everything else which needs it.
#
# You probably don't want to use this on a VMS machine since VMS will think
-# it has a vt220 and will get fouled up coming out of emacs
+# it has a VT220 and will get fouled up coming out of emacs
#
# From: Alexander Latzko <latzko@marsenius.rutgers.edu>, 30 Dec 1996
# (Added vt100 <rc>,<sc> to quiet a tic warning -- esr)
# added msgr -TD
-vt200-js|vt220-js|dec vt200 series with jump scroll,
+vt200-js|vt220-js|DEC VT200 series with jump scroll,
am, msgr,
cols#80,
- bel=^G, clear=\E[H\E[J, cr=\r, csr=\E[%i%p1%d;%p2%dr,
- cub1=^H, cud1=\n, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu1=\E[A, dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H,
- ht=^I, il1=\E[L, ind=\ED,
+ bel=^G, cr=\r, cub1=^H, cud1=\n, cuf1=\E[C,
+ cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
+ home=\E[H, ht=^I, il1=\E[L, ind=\ED,
is2=\E[61"p\E[H\E[?3l\E[?4l\E[?1h\E[?5l\E[?6l\E[?7h\E[?8h\E[
?25h\E>\E[m,
kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, nel=\r\ED, rc=\E8,
+ kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, nel=\r\ED,
rf=/usr/share/tabset/vt100, ri=\EM, rmdc=, rmir=\E[4l,
rmkx=\E[?1l\E>, rmso=\E[27m$<5/>, rmul=\E[24m,
- rs1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7, smdc=,
+ rs1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, smdc=,
smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m$<5/>, smul=\E[4m,
- use=vt220+cvis,
+ use=ansi+csr, use=ansi+erase, use=vt220+cvis,
-# This was DEC's vt320. Use the purpose-built one below instead
-#vt320|DEC VT320 in vt100 emulation mode,
+# This was DEC's VT320. Use the purpose-built one below instead
+#vt320|DEC VT320 in VT100 emulation mode,
# use=vt220,
# Use v320n for SCO's LYRIX. Otherwise, use Adam Thompson's vt320-nam.
#
-vt320nam|v320n|DEC VT320 in vt100 emul. mode with NO AUTO WRAP mode,
+vt320nam|v320n|DEC VT320 in VT100 emul. mode with NO AUTO WRAP mode,
am@,
rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h,
use=vt220-base,
@@ -2722,46 +2833,43 @@ vt320nam|v320n|DEC VT320 in vt100 emul. mode with NO AUTO WRAP mode,
# to SMASH the 1k-barrier...
# From: Adam Thompson <athompso@pangea.ca> Sept 10 1995
# (vt320: uncommented <fsl> --esr)
-vt320|vt300|dec vt320 7 bit terminal,
- am, hs, mir, msgr, xenl,
+vt320|vt300|DEC VT320 7 bit terminal,
+ am, mir, msgr, xenl,
cols#80, lines#24, wsl#80,
acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, home=\E[H, ht=^I,
- hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED,
+ cub1=^H, cud1=\n, cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP,
+ dch1=\E[P, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
+ home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ind=\ED,
is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
- kbs=^?, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kdch1=\E[3~, kel=\E[4~, kf10=\E[21~, kf11=\E[23~,
+ kbs=^?, kdch1=\E[3~, kel=\E[4~, kf10=\E[21~, kf11=\E[23~,
kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
kf20=\E[34~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
kf9=\E[20~, khome=\E[1~, kich1=\E[2~, knp=\E[6~, knxt=^I,
- kpp=\E[5~, kprv=\E[Z, kslt=\E[4~, nel=\EE, rc=\E8, rev=\E[7m,
+ kpp=\E[5~, kprv=\E[Z, kslt=\E[4~, nel=\EE, rev=\E[7m,
rf=/usr/share/tabset/vt300, ri=\EM, rmacs=\E(B,
rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m,
rmul=\E[m,
rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
- sc=\E7,
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?
%p9%t\E(0%e\E(B%;$<2>,
sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
- use=dec+pp, use=vt220+cvis, use=vt220+keypad, use=dec+sl,
- use=ansi+enq,
-vt320-nam|vt300-nam|dec vt320 7 bit terminal with no am to make SAS happy,
+ use=ansi+apparrows, use=ansi+csr, use=ansi+enq,
+ use=ansi+idl, use=ansi+local, use=dec+pp, use=vt220+cvis,
+ use=vt220+keypad, use=dec+sl,
+
+vt320-nam|vt300-nam|DEC VT320 7 bit terminal with no am to make SAS happy,
am@,
is2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h\E[1;24r\E[24;1H,
rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h\E[1;24r\E[24;1H, use=vt320,
# We have to init 132-col mode, not 80-col mode.
-vt320-w|vt300-w|dec vt320 wide 7 bit terminal,
+vt320-w|vt300-w|DEC VT320 wide 7 bit terminal,
cols#132, wsl#132,
is2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
rs2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H, use=vt320,
-vt320-w-nam|vt300-w-nam|dec vt320 wide 7 bit terminal with no am,
+vt320-w-nam|vt300-w-nam|DEC VT320 wide 7 bit terminal with no am,
am@,
is2=\E>\E[?3h\E[?4l\E[?5l\E[?7l\E[?8h\E[1;24r\E[24;1H,
rs2=\E>\E[?3h\E[?4l\E[?5l\E[?7l\E[?8h\E[1;24r\E[24;1H, use=vt320-w,
@@ -2771,7 +2879,7 @@ vt320-w-nam|vt300-w-nam|dec vt320 wide 7 bit terminal with no am,
# host writable status line, yet another different DRCS matrix size,
# and such, but they add the DEC Technical character set, Multiple text
# pages, selectable length pages, and the like. The difference between
-# the vt330 and vt340 is that the former has only 2 planes and a monochrome
+# the VT330 and VT340 is that the former has only 2 planes and a monochrome
# monitor, the latter has 4 planes and a color monitor. These terminals
# support VT131 and ANSI block mode, but as with much of these things,
# termcap/terminfo doesn't deal with these features.
@@ -2786,42 +2894,42 @@ vt320-w-nam|vt300-w-nam|dec vt320 wide 7 bit terminal with no am,
# From: Daniel Glasser <dag@persoft.persoft.com>, 13 Oct 1993
# (vt340: string capability "sb=\E[M" corrected to "sr";
# also, added <rmam>/<smam> based on the init string -- esr)
-vt340|dec-vt340|vt330|dec-vt330|dec vt340 graphics terminal with 24 line page,
+vt340|dec-vt340|vt330|dec-vt330|DEC VT340 graphics terminal with 24 line page,
am, eslok, hs, mir, msgr, xenl, xon,
cols#80, it#8, lines#24, vt#3,
acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- dsl=\E[2$~\r\E[1$}\E[K\E[$}, ed=\E[J, el=\E[K,
+ blink=\E[5m, bold=\E[1m, cr=\r, cub1=^H, cud1=\n,
+ cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\E[P,
+ dsl=\E[2$~\r\E[1$}\E[K\E[$},
flash=\E[?5h$<200/>\E[?5l, fsl=\E[$}, home=\E[H, ht=^I,
- hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED,
+ hts=\EH, ich=\E[%p1%d@, ind=\ED,
is2=\E<\E\sF\E>\E[?1h\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r
\E[24;1H,
kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf6=\E[17~,
kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, lf1=pf1, lf2=pf2,
- lf3=pf3, lf4=pf4, nel=\r\ED, rc=\E8, rev=\E[7m,
+ lf3=pf3, lf4=pf4, nel=\r\ED, rev=\E[7m,
rf=/usr/share/tabset/vt300, ri=\EM, rmacs=\E(B,
rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m,
- rmul=\E[24m, rs1=\E[?3l, sc=\E7,
+ rmul=\E[24m, rs1=\E[?3l,
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?
%p9%t\E(0%e\E(B%;$<2>,
sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
- tsl=\E[2$~\E[1$}\E[1;%dH, use=vt220+cvis,
+ tsl=\E[2$~\E[1$}\E[1;%dH, use=ansi+csr, use=ansi+erase,
+ use=ansi+idl, use=ansi+local, use=vt220+cvis,
# Left/right margins are supported in xterm since patch #279 (2012/05/10)
vt420+lrmm|VT420 left/right margins,
- mgc=\E[?69l, smglr=\E[?69h\E[%i%p1%d;%p2%ds,
+ mgc=\E[?69l, smglp=\E[?69h\E[%i%p1%ds,
+ smglr=\E[?69h\E[%i%p1%d;%p2%ds,
+ smgrp=\E[?69h\E[%i;%p1%ds,
-# DEC doesn't supply a vt400 description, so we add Daniel Glasser's
-# (originally written with vt420 as its primary name, and usable for it).
+# DEC doesn't supply a VT400 description, so we add Daniel Glasser's
+# (originally written with VT420 as its primary name, and usable for it).
#
-# VT400/420 -- This terminal is a superset of the vt320. It adds the multiple
-# text pages and long text pages with selectable length of the vt340, along
+# VT400/420 -- This terminal is a superset of the VT320. It adds the multiple
+# text pages and long text pages with selectable length of the VT340, along
# with left and right margins, rectangular area text copy, fill, and erase
# operations, selected region character attribute change operations,
# page memory and rectangle checksums, insert/delete column, reception
@@ -2838,33 +2946,30 @@ vt420+lrmm|VT420 left/right margins,
# From: Daniel Glasser <dag@persoft.persoft.com>, 13 Oct 1993
# (vt400: string capability ":sb=\E[M:" corrected to ":sr=\E[M:";
# also, added <rmam>/<smam> based on the init string -- esr)
-vt400|vt400-24|dec-vt400|dec vt400 24x80 column autowrap,
- am, eslok, hs, mir, msgr, xenl, xon,
+vt400|vt400-24|dec-vt400|DEC VT400 24x80 column autowrap,
+ am, eslok, mir, msgr, xenl, xon,
cols#80, it#8, lines#24, vt#3,
acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
blink=\E[5m, bold=\E[1m, clear=\E[H\E[J$<10/>, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- dsl=\E[2$~\r\E[1$}\E[K\E[$}, ed=\E[J$<10/>,
- el=\E[K$<4/>, flash=\E[?5h$<200/>\E[?5l, fsl=\E[$},
- home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
- il=\E[%p1%dL, il1=\E[L, ind=\ED,
+ cub1=^H, cud1=\n, dsl=\E[2$~\r\E[1$}\E[K\E[$},
+ ed=\E[J$<10/>, el=\E[K$<4/>, flash=\E[?5h$<200/>\E[?5l,
+ fsl=\E[$}, ht=^I, hts=\EH, ind=\ED,
is2=\E<\E\sF\E>\E[?1h\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r
\E[24;1H,
kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf6=\E[17~,
kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, lf1=pf1, lf2=pf2,
- lf3=pf3, lf4=pf4, nel=\r\ED, rc=\E8, rev=\E[7m,
+ lf3=pf3, lf4=pf4, nel=\r\ED, rev=\E[7m,
rf=/usr/share/tabset/vt300, ri=\EM, rmacs=\E(B,
- rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m,
- rmul=\E[24m, rs1=\E<\E[?3l\E[!p\E[?7h, sc=\E7,
+ rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m,
+ rs1=\E<\E[?3l\E[!p\E[?7h,
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?
%p9%t\E(0%e\E(B%;$<2>,
- sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
- tsl=\E[2$~\E[1$}\E[1;%dH, use=dec+sl, use=vt220+cvis,
+ sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smkx=\E[?1h\E=,
+ smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+ tsl=\E[2$~\E[1$}\E[1;%dH, use=ansi+csr, use=ansi+cup,
+ use=ansi+idc, use=ansi+idl, use=ansi+local, use=dec+sl,
+ use=vt220+cvis,
# (vt420: I removed <kf0>, it collided with <kf10>. I also restored
# a missing <sc> -- esr)
@@ -2874,29 +2979,26 @@ vt420|DEC VT420,
cols#80, it#8, lines#24, vt#3,
acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
- clear=\E[H\E[2J$<50>, cr=\r, csr=\E[%i%p1%d;%p2%dr,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\n,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH$<10>,
- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
- dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J$<50>,
- el=\E[K$<3>, el1=\E[1K, enacs=\E)0,
- flash=\E[?5h$<200/>\E[?5l, home=\E[H, ht=^I, hts=\EH,
- ich=\E[%p1%d@, if=/usr/share/tabset/vt300,
- il=\E[%p1%dL, il1=\E[L, ind=\ED, is2=\E[1;24r\E[24;1H,
- is3=\E[?67h\E[64;1"p, kbs=^H, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, kf10=\E[29~, kf2=\EOQ,
- kf3=\EOR, kf4=\EOS, kf5=\E[17~, kf6=\E[18~, kf7=\E[19~,
- kf8=\E[20~, kf9=\E[21~, nel=\EE, rc=\E8, rev=\E[7m$<2>,
- rf=/usr/share/tabset/vt300, ri=\EM, rmacs=\E(B$<4>,
- rmam=\E[?7l, rmir=\E[4l, rmkx=\E>,
+ clear=\E[H\E[2J$<50>, cr=\r, cub1=^H, cud1=\n,
+ cup=\E[%i%p1%d;%p2%dH$<10>, dch=\E[%p1%dP, dch1=\E[P,
+ ech=\E[%p1%dX, ed=\E[J$<50>, el=\E[K$<3>, el1=\E[1K,
+ enacs=\E)0, flash=\E[?5h$<200/>\E[?5l, home=\E[H, ht=^I,
+ hts=\EH, ich=\E[%p1%d@, if=/usr/share/tabset/vt300,
+ ind=\ED, is2=\E[1;24r\E[24;1H, is3=\E[?67h\E[64;1"p,
+ kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+ kf1=\EOP, kf10=\E[29~, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
+ kf5=\E[17~, kf6=\E[18~, kf7=\E[19~, kf8=\E[20~, kf9=\E[21~,
+ nel=\EE, rev=\E[7m$<2>, rf=/usr/share/tabset/vt300,
+ ri=\EM, rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l, rmkx=\E>,
rmsc=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
- rmso=\E[27m, rmul=\E[24m, rs3=\E[?67h\E[64;1"p, sc=\E7,
+ rmso=\E[27m, rmul=\E[24m, rs3=\E[?67h\E[64;1"p,
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?
%p9%t\E(0%e\E(B%;$<2>,
sgr0=\E[m\E(B$<2>, smacs=\E(0$<2>, smam=\E[?7h,
smir=\E[4h, smkx=\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
- use=vt220+vtedit, use=ansi+pp, use=dec+sl, use=ansi+enq,
- use=vt220+cvis,
+ use=ansi+csr, use=ansi+enq, use=ansi+idl, use=ansi+pp,
+ use=ansi+local, use=dec+sl, use=vt220+cvis,
+ use=vt420+lrmm, use=vt220+vtedit,
# DEC VT220 and up support DECUDK (user-defined keys). DECUDK (i.e., pfx)
# takes two parameters, the key and the string. Translating the key is
@@ -2928,7 +3030,7 @@ vt420pc|DEC VT420 w/PC keyboard,
kf43=\E[31;2~, kf44=\E[32;2~, kf45=\E[33;2~,
kf46=\E[34;2~, kf47=\E[35;2~, kf48=\E[36;2~, kf5=\E[15~,
kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, khome=\E[H,
- pctrm=USR_TERM\:vt420pcdos\:,
+ pctrm=USR_TERM:vt420pcdos:,
pfx=\EP1;1|%?%{16}%p1%>%t%{0}%e%{21}%p1%>%t%{1}%e%{25}%p1%>
%t%{2}%e%{27}%p1%>%t%{3}%e%{30}%p1%>%t%{4}%e%{5}%;%p1%+
%d/%p2%s\E\\,
@@ -3008,17 +3110,17 @@ dec-vt220|DOS tnvt200 terminal emulator,
# I can send the address if requested.
# (z340: changed garbled \E[5?l to \E[?5l, DEC smooth scroll off -- esr)
# From: Adam Thompson <athompso@pangea.ca> Sept 10 1995
-z340|zstem vt340 terminal emulator 132col 42line,
+z340|ZSTEM VT340 terminal emulator 132col 42line,
lines#42,
is2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h\E[1;42r\E[42;1H,
rs2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h\E[1;42r\E[42;1H, use=vt320-w,
-z340-nam|zstem vt340 terminal emulator 132col 42line (no automatic margins),
+z340-nam|ZSTEM VT340 terminal emulator 132col 42line (no automatic margins),
am@,
is2=\E>\E[?3h\E[?4l\E[?5l\E[?7l\E[?8h\E[1;42r\E[42;1H,
rs2=\E>\E[?3h\E[?4l\E[?5l\E[?7l\E[?8h\E[1;42r\E[42;1H, use=z340,
# expect-5.44.1.15/example/tkterm
-# a minimal subset of a vt100 (compare with "news-unk).
+# a minimal subset of a VT100 (compare with "news-unk).
#
# The missing "=" in smkx is not a typo (here), but an error in tkterm.
tt|tkterm|Don Libes' tk text widget terminal emulator,
@@ -3241,36 +3343,29 @@ tt|tkterm|Don Libes' tk text widget terminal emulator,
nsterm+7|AppKit Terminal.app v41+ basic capabilities w/ASCII charset,
am, bw, msgr, xenl, xon,
cols#80, it#8, lines#24,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K,
- el1=\E[1K, home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L,
- ind=\n, invis=\E[8m, kbs=^?, kcub1=\EOD, kcud1=\EOB,
- kcuf1=\EOC, kcuu1=\EOA, kent=\EOM, rc=\E8, rev=\E[7m, ri=\EM,
- rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
+ bel=^G, cr=\r, cub1=^H, cud1=\n, dim=\E[2m, el1=\E[1K, ht=^I,
+ hts=\EH, ind=\n, kbs=^?, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
+ kcuu1=\EOA, kent=\EOM, ri=\EM, rmam=\E[?7l, rmkx=\E[?1l\E>,
+ rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?
%p5%t;2%;%?%p7%t;8%;m,
- sgr0=\E[m, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g, use=vt100+enq, use=vt100+pfkeys,
+ sgr0=\E[m, smam=\E[?7h, smkx=\E[?1h\E=, tbc=\E[3g,
+ use=ansi+csr, use=ansi+cup, use=ansi+erase, use=ansi+idl,
+ use=ansi+local, use=ansi+sgrbold, use=vt100+enq,
+ use=vt100+pfkeys,
nsterm+acs|AppKit Terminal.app v41+ basic capabilities w/VT100 alternate-charset,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- enacs=\E(B\E)0, rmacs=^O,
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?
%p5%t;2%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, use=nsterm+7,
+ sgr0=\E[m\017, use=nsterm+7, use=vt100+4bsd,
nsterm+mac|AppKit Terminal.app v41+ basic capabilities w/MacRoman alternate-charset,
- acsc=+\335\,\334-\366.\3770#`\327a\:f\241g\261h#i
+ acsc=+\335\,\334-\366.\3770#`\327a:f\241g\261h#i
\360jjkkllmmnno\370p\370q\321rrssttuuvvwwxxy\262z\263{
\271|\255}\243~\245,
- enacs=\E(B\E)0, rmacs=^O,
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?
%p5%t;2%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, use=nsterm+7,
+ sgr0=\E[m\017, use=nsterm+7, use=vt100+4bsd,
# compare with xterm+sl-twm
nsterm+s|AppKit Terminal.app v41+ status-line (window titlebar) support,
@@ -3280,8 +3375,8 @@ nsterm+c|AppKit Terminal.app v51+ full color support (including 16 colors),
op=\E[0m, use=ibm+16color,
nsterm+c41|AppKit Terminal.app v41 color support,
- colors#8, ncv#37, pairs#64,
- op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+ ncv#37,
+ op=\E[0m, use=klone+color,
# These are different combinations of the building blocks
@@ -3362,16 +3457,14 @@ nsterm-c-s|AppKit Terminal.app v51+ w/MacRoman charset (full color w/statusline)
# vt52, vt100, vt102 and xterm.
nsterm-16color|AppKit Terminal.app v240.2+ with Mac OS X version 10.5,
bw@, mir, npc,
- dch=\E[%p1%dP, dch1=\E[P, flash=\E[?5h$<200/>\E[?5l,
- hpa=\E[%i%p1%dG, ich=\E[%p1%d@, ich1=\E[@, kdch1=\E[3~,
- kend=\E[F, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
- kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
- kf17=\E[31~, kf18=\E[22~, kf19=\E[33~, kf20=\E[34~,
- kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- khome=\E[H, knp=\E[6~, kpp=\E[5~, rmcup=\E[2J\E[?47l\E8,
- rmir=\E[4l, smcup=\E7\E[?47h, smir=\E[4h,
- vpa=\E[%i%p1%dd, kLFT5=\E[5D, kRIT5=\E[5C,
- use=nsterm-c-s-acs, use=vt220+cvis,
+ flash=\E[?5h$<200/>\E[?5l, hpa=\E[%i%p1%dG,
+ kdch1=\E[3~, kend=\E[F, kf10=\E[21~, kf11=\E[23~,
+ kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
+ kf16=\E[29~, kf17=\E[31~, kf18=\E[22~, kf19=\E[33~,
+ kf20=\E[34~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
+ kf8=\E[19~, kf9=\E[20~, khome=\E[H, knp=\E[6~, kpp=\E[5~,
+ vpa=\E[%i%p1%dd, kLFT5=\E[5D, kRIT5=\E[5C, use=ansi+idc,
+ use=xterm+alt47, use=nsterm-c-s-acs, use=vt220+cvis,
# The versions of Terminal.app in Mac OS X version 10.3.x seem to have
# the background color erase feature. The newer version 240.2 in Mac OS X
@@ -3418,7 +3511,7 @@ nsterm-16color|AppKit Terminal.app v240.2+ with Mac OS X version 10.5,
# ansi or dtterm).
# + the shift/control/meta key modifiers from rxvt and xterm variants are not
# recognised except for a few special cases, i.e., kRIT5 and kLFT5.
-# + the vt52 emulation does not give a usable shell because screen-clearing
+# + the VT52 emulation does not give a usable shell because screen-clearing
# does not work as expected.
# + selecting "xterm" or "xterm-16color" sets TERM to "xterm-256color".
# + OSX 10.9 (Yosemite) added more extended keys in the default configuration
@@ -3446,10 +3539,10 @@ nsterm-build343|Terminal.app in OS X 10.10,
# reviewed Terminal.app in El Capitan (version 2.6 build 361) -TD
# Using vttest:
-# + no vt52 mode for cursor keys, though vt52 screen works in vttest
+# + no VT52 mode for cursor keys, though VT52 screen works in vttest
# + f1-f4 map to pf1-pf4
-# + no vt220 support aside from DECTCEM and ECH
-# + there are no protected areas. Forget about anything above vt220.
+# + no VT220 support aside from DECTCEM and ECH
+# + there are no protected areas. Forget about anything above VT220.
# + in ECMA-48 cursor movement, VPR and HPR fail. Others work.
# + vttest color 11.6.4 and 11.6.5 (bce for ED/EL and ECH/indexing) are bce
# + but bce fails for 11.6.7.2 (test repeat).
@@ -3495,9 +3588,12 @@ nsterm-build400|Terminal.app in OS X 10.13,
rmso=\E[27m, rmul=\E[24m, use=xterm+sm+1006,
use=ecma+italics, use=nsterm-build361,
+nsterm-build440|Terminal.app in MacOS 11.6.8,
+ use=xterm+alt1049, use=nsterm-build400,
+
# This is an alias which should always point to the "current" version
nsterm|nsterm-256color|Apple_Terminal|AppKit Terminal.app,
- use=nsterm-build400,
+ use=nsterm-build440,
#### iTerm, iTerm2
@@ -3536,38 +3632,29 @@ nsterm|nsterm-256color|Apple_Terminal|AppKit Terminal.app,
# can display/alter xterm-256color cube
# can display/alter xterm-88color cube
iTerm.app|iterm|iTerm.app terminal emulator for Mac OS X,
- am, bce, hs, mir, msgr, npc, xenl, xon,
- cols#80, it#8, lines#24, wsl#50,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
- el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
- flash=\E[?5h$<200/>\E[?5l, home=\E[H, hpa=\E[%i%p1%dG,
- ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL,
- il1=\E[L, ind=\n, kLFT=\E[1;2D, kRIT=\E[1;2C, kbs=^?,
- kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kdch1=\E[3~, kend=\EOF, kent=\EOM, kf1=\EOP, kf10=\E[21~,
- kf11=\E[23~, kf12=\E[24~, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
+ bce, mir, npc, xenl, xon,
+ wsl#50,
+ blink=\E[5m, bold=\E[1m, cub1=^H, cud1=\n,
+ cup=\E[%i%p1%d;%p2%dH, el1=\E[1K,
+ flash=\E[?5h$<200/>\E[?5l, hpa=\E[%i%p1%dG,
+ kLFT=\E[1;2D, kRIT=\E[1;2C, kbs=^?, kcbt=\E[Z, kdch1=\E[3~,
+ kend=\EOF, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- khome=\EOH, knp=\E[6~, kpp=\E[5~, op=\E[0m, rc=\E8,
- rev=\E[7m, ri=\EM, rmacs=^O, rmam=\E[?7l,
- rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmkx=\E[?1l\E>,
- rmso=\E[m, rmul=\E[m,
- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
+ knp=\E[6~, kpp=\E[5~, op=\E[0m, rev=\E[7m, ri=\EM,
+ rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?
%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E7\E[?47h,
- smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
- tbc=\E[3g, vpa=\E[%i%p1%dd, kEND5=\E[1;5F, kHOM5=\E[1;5H,
- use=ansi+enq, use=xterm+sl-twm, use=vt100+keypad,
+ sgr0=\E[m\017, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m,
+ smul=\E[4m, vpa=\E[%i%p1%dd, kEND5=\E[1;5F,
+ kHOM5=\E[1;5H, use=ansi+apparrows, use=ansi+csr,
+ use=ansi+enq, use=ansi+erase, use=ansi+idc, use=ansi+idl,
+ use=ansi+local, use=vt100+4bsd, use=vt100+keypad,
+ use=vt100+pfkeys, use=xterm+alt47, use=xterm+sl-twm,
use=xterm+x11mouse, use=xterm+256setaf, use=vt220+cvis,
# iTerm2 3.0.15
#
-# https://www.iterm2.com/
+# https://iterm2.com/
# https://github.com/gnachman/iTerm2
# ~/Library/Preferences/com.googlecode.iterm2.plist
# "iTerm" stalled in 2009. A different set of developers began "iTerm2".
@@ -3599,13 +3686,13 @@ iTerm.app|iterm|iTerm.app terminal emulator for Mac OS X,
# 2018/01/21: found xterm+sm+1006 did not work with version 3.1.5
# 2018/05/19: xterm+sm+1006 seems to work with 3.1.6beta -TD
iTerm2.app|iterm2|terminal emulator for Mac OS X,
- blink=\E[5m, cbt=\E[Z, dim=\E[2m, kEND=\E[1;2F,
- kHOM=\E[1;2H, ka1@, ka3@, kb2@, kc1@, kc3@, kent@, kf13=\E[1;2P,
- kf14=\E[1;2Q, kf15=\E[1;2R, kf16=\E[1;2S, kf17=\E[15;2~,
- kf18=\E[17;2~, kf19=\E[18;2~, kf2=\EOQ, kf20=\E[19;2~,
- kf21=\E[20;2~, kf22=\E[21;2~, kf23=\E[23;2~,
- kf24=\E[24;2~, kind=\E[1;2B, kri=\E[1;2A, nel=\EE,
- op=\E[39;49m, rmso=\E[27m, rmul=\E[24m,
+ cbt=\E[Z, dim=\E[2m, kEND=\E[1;2F, kHOM=\E[1;2H, ka1@, ka3@,
+ kb2@, kc1@, kc3@, kent@, kf13=\E[1;2P, kf14=\E[1;2Q,
+ kf15=\E[1;2R, kf16=\E[1;2S, kf17=\E[15;2~, kf18=\E[17;2~,
+ kf19=\E[18;2~, kf20=\E[19;2~, kf21=\E[20;2~,
+ kf22=\E[21;2~, kf23=\E[23;2~, kf24=\E[24;2~,
+ kind=\E[1;2B, kri=\E[1;2A, nel=\EE, op=\E[39;49m,
+ rmso=\E[27m, rmul=\E[24m,
rs2=\E[!p\E[?3;4l\E[4l\E>\E[?1000l,
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?
%p5%t;2%;m%?%p9%t\016%e\017%;,
@@ -3619,6 +3706,7 @@ iTerm2.app|iterm2|terminal emulator for Mac OS X,
kRIT5=\E[1;5C, kRIT6=\E[1;6C, kUP3=\E\E[A, kUP4=\E[1;10A,
kUP5=\E[1;5A, kUP6=\E[1;6A, use=ecma+index,
use=xterm+alt+title, use=ecma+italics, use=iterm,
+ use=bracketed+paste,
# xnuppc - Darwin PowerPC Console (a.k.a. "darwin")
#
@@ -3715,186 +3803,181 @@ iTerm2.app|iterm2|terminal emulator for Mac OS X,
# color-bold entries do not include size information.
# The '+' entries are building blocks
-xnuppc+basic|Darwin PowerPC Console basic capabilities,
- am, bce, mir, xenl,
+xnuppc+basic|Darwin PowerPC console basic capabilities,
+ am, bce, mir, xenl, NQ,
it#8,
- bold=\E[1m, clear=\E[H\E[J, cr=\r, csr=\E[%i%p1%d;%p2%dr,
- cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, dsl=\E]2;\007, ed=\E[J, el=\E[K,
- el1=\E[1K, home=\E[H, ht=^I, hts=\EH, ind=\n, kbs=^?,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, rc=\E8,
- rev=\E[7m, ri=\EM, rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m,
- rmul=\E[m, rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
- sc=\E7,
+ bold=\E[1m, cr=\r, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+ dsl=\E]2;\007, el1=\E[1K, home=\E[H, ht=^I, hts=\EH, ind=\n,
+ kbs=^?, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+ rev=\E[7m, ri=\EM, rmam=\E[?7l, rmkx=\E[?1l\E>,
+ rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m,
- sgr0=\E[m, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g, use=vt100+keypad,
+ sgr0=\E[m, smam=\E[?7h, smkx=\E[?1h\E=, tbc=\E[3g,
+ use=ansi+csr, use=ansi+erase, use=ansi+local,
+ use=ansi+sgrso, use=ansi+sgrul, use=vt100+keypad,
-xnuppc+c|Darwin PowerPC Console ANSI color support,
- colors#8, ncv#32, pairs#64,
- op=\E[37;40m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+xnuppc+c|Darwin PowerPC console ANSI color support,
+ ncv#32, use=klone+color,
-xnuppc+b|Darwin PowerPC Console color-bold support,
+xnuppc+b|Darwin PowerPC console color-bold support,
ncv#32,
bold=\E[35m,
sgr=\E[0%?%p6%t;35%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m,
use=xnuppc+basic,
-xnuppc+f|Darwin PowerPC Console fancy color support,
+xnuppc+f|Darwin PowerPC console fancy color support,
ncv#35,
sgr=\E[0%?%p6%t;35%;%?%p2%t;36;4%;%?%p1%t;33;44%;%?%p3%t;7%;
m,
smso=\E[33;44m, smul=\E[36;4m, use=xnuppc+b,
-xnuppc+f2|Darwin PowerPC Console alternate fancy color support,
+xnuppc+f2|Darwin PowerPC console alternate fancy color support,
ncv#35,
bold=\E[33m,
sgr=\E[0%?%p6%t;33%;%?%p2%t;34%;%?%p1%t;31;47%;%?%p3%t;7%;m,
smso=\E[31;47m, smul=\E[34m, use=xnuppc+basic,
# Building blocks for specific screen sizes
-xnuppc+80x25|Darwin PowerPC Console 80x25 support (640x400 pixels),
+xnuppc+80x25|Darwin PowerPC console 80x25 support (640x400 pixels),
cols#80, lines#25,
-xnuppc+80x30|Darwin PowerPC Console 80x30 support (640x480 pixels),
+xnuppc+80x30|Darwin PowerPC console 80x30 support (640x480 pixels),
cols#80, lines#30,
-xnuppc+90x30|Darwin PowerPC Console 90x30 support (720x480 pixels),
+xnuppc+90x30|Darwin PowerPC console 90x30 support (720x480 pixels),
cols#90, lines#30,
-xnuppc+100x37|Darwin PowerPC Console 100x37 support (800x600 pixels),
+xnuppc+100x37|Darwin PowerPC console 100x37 support (800x600 pixels),
cols#100, lines#37,
-xnuppc+112x37|Darwin PowerPC Console 112x37 support (896x600 pixels),
+xnuppc+112x37|Darwin PowerPC console 112x37 support (896x600 pixels),
cols#112, lines#37,
-xnuppc+128x40|Darwin PowerPC Console 128x40 support (1024x640 pixels),
+xnuppc+128x40|Darwin PowerPC console 128x40 support (1024x640 pixels),
cols#128, lines#40,
-xnuppc+128x48|Darwin PowerPC Console 128x48 support (1024x768 pixels),
+xnuppc+128x48|Darwin PowerPC console 128x48 support (1024x768 pixels),
cols#128, lines#48,
-xnuppc+144x48|Darwin PowerPC Console 144x48 support (1152x768 pixels),
+xnuppc+144x48|Darwin PowerPC console 144x48 support (1152x768 pixels),
cols#144, lines#48,
-xnuppc+160x64|Darwin PowerPC Console 160x64 support (1280x1024 pixels),
+xnuppc+160x64|Darwin PowerPC console 160x64 support (1280x1024 pixels),
cols#160, lines#64,
-xnuppc+200x64|Darwin PowerPC Console 200x64 support (1600x1024 pixels),
+xnuppc+200x64|Darwin PowerPC console 200x64 support (1600x1024 pixels),
cols#200, lines#64,
-xnuppc+200x75|Darwin PowerPC Console 200x75 support (1600x1200 pixels),
+xnuppc+200x75|Darwin PowerPC console 200x75 support (1600x1200 pixels),
cols#200, lines#75,
-xnuppc+256x96|Darwin PowerPC Console 256x96 support (2048x1536 pixels),
+xnuppc+256x96|Darwin PowerPC console 256x96 support (2048x1536 pixels),
cols#0x100, lines#96,
# These are different combinations of the building blocks
-xnuppc-m|darwin-m|Darwin PowerPC Console (monochrome),
+xnuppc-m|darwin-m|Darwin PowerPC console (monochrome),
use=xnuppc+basic,
-xnuppc|darwin|Darwin PowerPC Console (color),
+xnuppc|darwin|Darwin PowerPC console (color),
use=xnuppc+c, use=xnuppc+basic,
-xnuppc-m-b|darwin-m-b|Darwin PowerPC Console (monochrome w/color-bold),
+xnuppc-m-b|darwin-m-b|Darwin PowerPC console (monochrome w/color-bold),
use=xnuppc+b,
-xnuppc-b|darwin-b|Darwin PowerPC Console (color w/color-bold),
+xnuppc-b|darwin-b|Darwin PowerPC console (color w/color-bold),
use=xnuppc+b, use=xnuppc+c,
-xnuppc-m-f|darwin-m-f|Darwin PowerPC Console (fancy monochrome),
+xnuppc-m-f|darwin-m-f|Darwin PowerPC console (fancy monochrome),
use=xnuppc+f,
-xnuppc-f|darwin-f|Darwin PowerPC Console (fancy color),
+xnuppc-f|darwin-f|Darwin PowerPC console (fancy color),
use=xnuppc+f, use=xnuppc+c,
-xnuppc-m-f2|darwin-m-f2|Darwin PowerPC Console (alternate fancy monochrome),
+xnuppc-m-f2|darwin-m-f2|Darwin PowerPC console (alternate fancy monochrome),
use=xnuppc+f2,
-xnuppc-f2|darwin-f2|Darwin PowerPC Console (alternate fancy color),
+xnuppc-f2|darwin-f2|Darwin PowerPC console (alternate fancy color),
use=xnuppc+f2, use=xnuppc+c,
# Combinations for specific screen sizes
-xnuppc-80x25-m|darwin-80x25-m|Darwin PowerPC Console (monochrome) 80x25,
+xnuppc-80x25-m|darwin-80x25-m|Darwin PowerPC console (monochrome) 80x25,
use=xnuppc+80x25, use=xnuppc+basic,
-xnuppc-80x25|darwin-80x25|Darwin PowerPC Console (color) 80x25,
+xnuppc-80x25|darwin-80x25|Darwin PowerPC console (color) 80x25,
use=xnuppc+c, use=xnuppc+80x25, use=xnuppc+basic,
-xnuppc-80x30-m|darwin-80x30-m|Darwin PowerPC Console (monochrome) 80x30,
+xnuppc-80x30-m|darwin-80x30-m|Darwin PowerPC console (monochrome) 80x30,
use=xnuppc+80x30, use=xnuppc+basic,
-xnuppc-80x30|darwin-80x30|Darwin PowerPC Console (color) 80x30,
+xnuppc-80x30|darwin-80x30|Darwin PowerPC console (color) 80x30,
use=xnuppc+c, use=xnuppc+80x30, use=xnuppc+basic,
-xnuppc-90x30-m|darwin-90x30-m|Darwin PowerPC Console (monochrome) 90x30,
+xnuppc-90x30-m|darwin-90x30-m|Darwin PowerPC console (monochrome) 90x30,
use=xnuppc+90x30, use=xnuppc+basic,
-xnuppc-90x30|darwin-90x30|Darwin PowerPC Console (color) 90x30,
+xnuppc-90x30|darwin-90x30|Darwin PowerPC console (color) 90x30,
use=xnuppc+c, use=xnuppc+90x30, use=xnuppc+basic,
-xnuppc-100x37-m|darwin-100x37-m|Darwin PowerPC Console (monochrome) 100x37,
+xnuppc-100x37-m|darwin-100x37-m|Darwin PowerPC console (monochrome) 100x37,
use=xnuppc+100x37, use=xnuppc+basic,
-xnuppc-100x37|darwin-100x37|Darwin PowerPC Console (color) 100x37,
+xnuppc-100x37|darwin-100x37|Darwin PowerPC console (color) 100x37,
use=xnuppc+c, use=xnuppc+100x37, use=xnuppc+basic,
-xnuppc-112x37-m|darwin-112x37-m|Darwin PowerPC Console (monochrome) 112x37,
+xnuppc-112x37-m|darwin-112x37-m|Darwin PowerPC console (monochrome) 112x37,
use=xnuppc+112x37, use=xnuppc+basic,
-xnuppc-112x37|darwin-112x37|Darwin PowerPC Console (color) 112x37,
+xnuppc-112x37|darwin-112x37|Darwin PowerPC console (color) 112x37,
use=xnuppc+c, use=xnuppc+112x37, use=xnuppc+basic,
-xnuppc-128x40-m|darwin-128x40-m|Darwin PowerPC Console (monochrome) 128x40,
+xnuppc-128x40-m|darwin-128x40-m|Darwin PowerPC console (monochrome) 128x40,
use=xnuppc+128x40, use=xnuppc+basic,
-xnuppc-128x40|darwin-128x40|Darwin PowerPC Console (color) 128x40,
+xnuppc-128x40|darwin-128x40|Darwin PowerPC console (color) 128x40,
use=xnuppc+c, use=xnuppc+128x40, use=xnuppc+basic,
-xnuppc-128x48-m|darwin-128x48-m|Darwin PowerPC Console (monochrome) 128x48,
+xnuppc-128x48-m|darwin-128x48-m|Darwin PowerPC console (monochrome) 128x48,
use=xnuppc+128x48, use=xnuppc+basic,
-xnuppc-128x48|darwin-128x48|Darwin PowerPC Console (color) 128x48,
+xnuppc-128x48|darwin-128x48|Darwin PowerPC console (color) 128x48,
use=xnuppc+c, use=xnuppc+128x48, use=xnuppc+basic,
-xnuppc-144x48-m|darwin-144x48-m|Darwin PowerPC Console (monochrome) 144x48,
+xnuppc-144x48-m|darwin-144x48-m|Darwin PowerPC console (monochrome) 144x48,
use=xnuppc+144x48, use=xnuppc+basic,
-xnuppc-144x48|darwin-144x48|Darwin PowerPC Console (color) 144x48,
+xnuppc-144x48|darwin-144x48|Darwin PowerPC console (color) 144x48,
use=xnuppc+c, use=xnuppc+144x48, use=xnuppc+basic,
-xnuppc-160x64-m|darwin-160x64-m|Darwin PowerPC Console (monochrome) 160x64,
+xnuppc-160x64-m|darwin-160x64-m|Darwin PowerPC console (monochrome) 160x64,
use=xnuppc+160x64, use=xnuppc+basic,
-xnuppc-160x64|darwin-160x64|Darwin PowerPC Console (color) 160x64,
+xnuppc-160x64|darwin-160x64|Darwin PowerPC console (color) 160x64,
use=xnuppc+c, use=xnuppc+160x64, use=xnuppc+basic,
-xnuppc-200x64-m|darwin-200x64-m|Darwin PowerPC Console (monochrome) 200x64,
+xnuppc-200x64-m|darwin-200x64-m|Darwin PowerPC console (monochrome) 200x64,
use=xnuppc+200x64, use=xnuppc+basic,
-xnuppc-200x64|darwin-200x64|Darwin PowerPC Console (color) 200x64,
+xnuppc-200x64|darwin-200x64|Darwin PowerPC console (color) 200x64,
use=xnuppc+c, use=xnuppc+200x64, use=xnuppc+basic,
-xnuppc-200x75-m|darwin-200x75-m|Darwin PowerPC Console (monochrome) 200x75,
+xnuppc-200x75-m|darwin-200x75-m|Darwin PowerPC console (monochrome) 200x75,
use=xnuppc+200x75, use=xnuppc+basic,
-xnuppc-200x75|darwin-200x75|Darwin PowerPC Console (color) 200x75,
+xnuppc-200x75|darwin-200x75|Darwin PowerPC console (color) 200x75,
use=xnuppc+c, use=xnuppc+200x75, use=xnuppc+basic,
-xnuppc-256x96-m|darwin-256x96-m|Darwin PowerPC Console (monochrome) 256x96,
+xnuppc-256x96-m|darwin-256x96-m|Darwin PowerPC console (monochrome) 256x96,
use=xnuppc+256x96, use=xnuppc+basic,
-xnuppc-256x96|darwin-256x96|Darwin PowerPC Console (color) 256x96,
+xnuppc-256x96|darwin-256x96|Darwin PowerPC console (color) 256x96,
use=xnuppc+c, use=xnuppc+256x96, use=xnuppc+basic,
######## DOS/WINDOWS
# CRT is shareware. It implements some xterm features, including mouse.
crt|crt-vt220|CRT 2.3 emulating VT220,
- bce, msgr,
- ncv@,
- hts=\EH, use=vt100+enq, use=vt220-base, use=ecma+color,
+ bce,
+ ncv@, use=vt100+enq, use=vt220-base, use=ecma+color,
# SecureCRT 8.7.3.2279
# 8.7.3 was released 2020/08/11
@@ -3955,7 +4038,7 @@ crt|crt-vt220|CRT 2.3 emulating VT220,
# resize.pl gets no reply, resize.sh needs fix for no reply.
scrt|securecrt|SecureCRT emulating xterm-256color,
bce@, km@, npc,
- bel@, cvvis@, kcbt=\E[Z, kent=\EOM, use=vt220+pcedit,
+ bel@, cvvis@, kcbt=\E[Z, use=vt220+pcedit,
use=xterm+256setaf, use=ecma+index, use=ansi+rep,
use=xterm+keypad, use=xterm+pcfkeys, use=xterm-basic,
@@ -3969,7 +4052,7 @@ scrt|securecrt|SecureCRT emulating xterm-256color,
# Double-size characters
# Xterm extensions for mouse support
# Emulates VT52, VT100, VT220, VT320, ansi, xterm, qnx, scoansi,
-# ANSIBBS, WYSE60, Televideo 950.
+# ANSIBBS, WYSE60, TeleVideo 950.
#
# Default:
# TERM=xterm
@@ -4005,15 +4088,23 @@ scrt|securecrt|SecureCRT emulating xterm-256color,
# supports 256-colors, including changing palette (ncurses menu d works)
# supports UTF-8, but honors VT100 line-drawing
absolute|Absolute Telnet emulating xterm,
- kcbt=\E[Z, use=ecma+index, use=ansi+rep,
+ kcbt=\E[Z, use=ecma+index, use=linux+kbs, use=ansi+rep,
use=vt220+pcedit, use=xterm+keypad, use=xterm+app,
use=xterm+pcf0, use=xterm+256color, use=xterm+x11mouse,
use=xterm-basic,
#### PuTTY
-# PuTTY 0.74 (27 June 2020)
# http://www.chiark.greenend.org.uk/~sgtatham/putty/
#
+# PuTTY 0.78 (September 2020, tested 12 August 2023)
+# Testing with tack:
+# implements cross-out text (shortly after 0.74)
+# restore kLFT as kLFT5, etc. (mentioned in October 2021)
+# does not support direct-colors (mentioned in July 2021)
+#
+# PuTTY 0.74 (27 June 2020)
+# (unchanged)
+#
# PuTTY 0.73 (September 2019)
# Testing with tack:
# does not implement italics
@@ -4037,7 +4128,7 @@ absolute|Absolute Telnet emulating xterm,
#
# PuTTY 0.51 (14 December 2000)
#
-# This emulates vt100 + vt52 (plus a few vt220 features: ech, SRM, DECTCEM, as
+# This emulates VT100 + VT52 (plus a few VT220 features: ech, SRM, DECTCEM, as
# well as SCO and Atari, color palettes from Linux console). Reading the code,
# it is intended to be VT102 plus selected features. By default, it sets $TERM
# to xterm, which is incorrect, since several features are misimplemented:
@@ -4058,48 +4149,52 @@ absolute|Absolute Telnet emulating xterm,
# http://stackoverflow.com/questions/24613237/terminal-retains-bg-color-after-closing-vim-using-color-scheme-and-putty-256co/37869114#37869114
putty|PuTTY terminal emulator,
am, bce, bw, ccc, mir, msgr, xenl, xon, XT,
- colors#8, it#8, ncv#22, pairs#64, U8#1,
+ it#8, ncv#22, U8#1,
acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\ED, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EM,
- dch=\E[%p1%dP, dch1=\E[P,
+ bel=^G, cr=\r, cub1=^H, cud1=\ED, cup=\E[%i%p1%d;%p2%dH,
+ cuu1=\EM, dch=\E[%p1%dP, dch1=\E[P,
dispc=%?%p1%{8}%=%t\E%%G\342\227\230\E%%@%e%p1%{10}%=%t\E%%G
\342\227\231\E%%@%e%p1%{12}%=%t\E%%G\342\231\0\E%%@%e
%p1%{13}%=%t\E%%G\342\231\252\E%%@%e%p1%{14}%=%t\E%%G
\342\231\253\E%%@%e%p1%{15}%=%t\E%%G\342\230\274\E%%@
%e%p1%{27}%=%t\E%%G\342\206\220\E%%@%e%p1%{155}%=%t\E
%%G\340\202\242\E%%@%e%p1%c%;,
- dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
- el1=\E[1K, enacs=\E(B\E)0, flash=\E[?5h$<100/>\E[?5l,
- home=\E[H, hpa=\E[%i%p1%dG, il=\E[%p1%dL, il1=\E[L, ind=\n,
+ ech=\E[%p1%dX, el1=\E[1K, enacs=\E(B\E)0,
+ flash=\E[?5h$<100/>\E[?5l, home=\E[H, hpa=\E[%i%p1%dG,
+ ind=\n,
initc=\E]P%p1%x%p2%{255}%*%{1000}%/%02x%p3%{255}%*%{1000}%/
%02x%p4%{255}%*%{1000}%/%02x,
is2=\E7\E[r\E[m\E[?7h\E[?1;4;6l\E[4l\E8\E>\E]R,
- kbs=^?, kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
- kcuu1=\EOA, kind=\E[B, kri=\E[A, kspd=^Z, nel=\r\n, oc=\E]R,
- op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
- rmam=\E[?7l, rmcup=\E[2J\E[?47l, rmir=\E[4l,
- rmkx=\E[?1l\E>, rmpch=\E[10m, rmso=\E[27m, rmul=\E[24m,
+ kbs=^?, kcbt=\E[Z, khome=\E[1~, kind=\E[B, kri=\E[A, kspd=^Z,
+ nel=\r\n, oc=\E]R, op=\E[39;49m, ri=\EM, rmacs=^O,
+ rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m,
+ rmul=\E[24m,
rs2=\E<\E["p\E[50;6"p\Ec\E[?3l\E]R\E[?1000l,
- s0ds=\E[10m, s1ds=\E[11m, s2ds=\E[12m, sc=\E7,
- setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+ s0ds=\E[10m, s1ds=\E[11m, s2ds=\E[12m,
sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5
%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E[?47h,
- smir=\E[4h, smkx=\E[?1h\E=, smpch=\E[11m, smso=\E[7m,
- smul=\E[4m, vpa=\E[%i%p1%dd, E3=\E[3J, use=vt220+pcedit,
- use=ansi+tabs, use=ansi+rep, use=ecma+index,
- use=xterm+sm+1006, use=putty+fnkeys, use=vt102+enq,
+ sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
+ smkx=\E[?1h\E=, vpa=\E[%i%p1%dd, E3=\E[3J,
+ use=ansi+apparrows, use=ansi+csr, use=ansi+erase,
+ use=ansi+idl, use=ansi+local, use=ansi+tabs,
+ use=ansi+rep, use=bracketed+paste, use=ecma+index,
+ use=ecma+strikeout, use=klone+color, use=klone+sgr,
+ use=putty+cursor, use=putty+fnkeys, use=vt220+pcedit,
+ use=xterm+alt1049, use=vt102+enq, use=xterm+sm+1006,
use=xterm+sl, use=vt100+fnkeys, use=putty+keypad,
use=vt220+cvis,
+
+# older versions (e.g., before 0.71) of PuTTY used a shift-modifier to toggle
+# between normal- and application-mode for the cursor-keys. That was dropped,
+# and a few years later (after 0.74) restored as the control-modifier.
+putty+cursor|PuTTY modified cursor-keys,
+ kDN5=\E[B, kLFT5=\E[D, kRIT5=\E[C, kUP5=\E[A,
putty+keypad|PuTTY numeric keypad,
kp1=\EOq, kp2=\EOr, kp3=\EOs, kp4=\EOt, kp5=\EOu, kp6=\EOv,
kp7=\EOw, kp8=\EOx, kp9=\EOy, kpADD=\EOl, kpDIV=\EOQ,
kpDOT=\EOn, kpMUL=\EOR, kpNUM=\EOP, kpSUB=\EOS, kpZRO=\EOp,
-vt100-putty|Reset PuTTY to pure vt100,
+vt100-putty|Reset PuTTY to pure VT100,
rs2=\E<\E["p\Ec\E[?3l\E]R\E[40"p\E[61"p\E[50;1;2"p,
use=vt100,
putty-256color|PuTTY 0.58 with xterm 256-colors,
@@ -4209,20 +4304,19 @@ mintty|Cygwin Terminal,
setal=\E[5%p1%dm, use=xterm+256color,
use=mintty+common,
mintty-direct|Cygwin Terminal direct-color,
- setal=\E[%?%p1%{8}%<%t5%p1%d%e58\:2\:\:%p1%{65536}%/%d\:%p1
- %{256}%/%{255}%&%d\:%p1%{255}%&%d%;m,
- use=xterm+direct, use=mintty+common,
+ use=kitty+setal, use=xterm+direct, use=mintty+common,
mintty+common|shared capabilities for mintty,
km@, npc,
kcbt=\E[Z, kent=\EOM, rmm@, rmpch=\E[10m,
rs1=\Ec\E]104\007, rshm=\E[22m, rsubm=\E[75m,
- rsupm=\E[75m, smm@, smpch=\E[11m, sshm=\E[1\:2m,
+ rsupm=\E[75m, smm@, smpch=\E[11m, sshm=\E[1:2m,
ssubm=\E[74m, ssupm=\E[73m, Rmol=\E[55m, Smol=\E[53m,
- Smulx=\E[4\:%p1%dm, blink2=\E[6m, norm=\E[22m,
- opaq=\E[28m, smul2=\E[21m, use=ansi+rep,
+ Smulx=\E[4:%p1%dm, blink2=\E[6m, norm=\E[22m,
+ opaq=\E[28m, smul2=\E[21m, use=linux+kbs, use=ansi+rep,
use=ecma+strikeout, use=ecma+index, use=vt420+lrmm,
- use=xterm+sm+1006, use=xterm+pcfkeys, use=xterm+tmux,
- use=ecma+italics, use=xterm-basic,
+ use=xterm+focus, use=xterm+sm+1006, use=xterm+pcfkeys,
+ use=xterm+tmux, use=ecma+italics, use=xterm-basic,
+ use=bracketed+paste, use=report+version,
# 2019-06-09: These capabilities are commented-out for compatibility with
# existing releases 5.9-6.1, and may be considered for inclusion after the
# release of ncurses 6.2:
@@ -4257,14 +4351,14 @@ mintty+common|shared capabilities for mintty,
# - Japanese and Russian character sets.
#
# The program does not come with terminfo or termcap entries. However, the
-# emulation (testing with vttest and ncurses) is reasonably close to vt100 (no
-# vt52 or doublesize character support; blinking is done with color). Besides
+# emulation (testing with vttest and ncurses) is reasonably close to VT100 (no
+# VT52 or doublesize character support; blinking is done with color). Besides
# the HPA, VPA extensions it also implements CPL and CNL.
#
# All of the function keys can be remapped. This description shows the default
-# mapping, as installed. Both vt100 PF1-PF4 keys and quasi-vt220 F1-F4 keys
+# mapping, as installed. Both VT100 PF1-PF4 keys and quasi-vt220 F1-F4 keys
# are supported. F13-F20 are obtained by shifting F3-F10. The editing keypad
-# is laid out like vt220, rather than the face codes on the PC keyboard, i.e,
+# is laid out like VT220, rather than the face codes on the PC keyboard, i.e,
# kfnd Insert
# kslt Delete
# kich1 Home
@@ -4282,7 +4376,7 @@ mintty+common|shared capabilities for mintty,
# retrieving the window title, and for setting the window size (i.e., using
# "resize -s"), though it does not pass SIGWINCH to the application if the
# user resizes the window with the mouse.
-teraterm2.3|Tera Term Pro,
+teraterm2.3|Tera Term Pro 2.3,
km,
ncv#43, vt@,
acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i
@@ -4290,33 +4384,32 @@ teraterm2.3|Tera Term Pro,
\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cuf1=\E[C,
cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP,
- dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J,
- el=\E[K, el1=\E[1K, flash=\E[?5h$<200/>\E[?5l,
- hpa=\E[%i%p1%dG, il=\E[%p1%dL, il1=\E[L, kf1=\E[11~,
+ dch1=\E[P, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
+ flash=\E[?5h$<200/>\E[?5l, hpa=\E[%i%p1%dG, kf1=\E[11~,
kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
kf18=\E[32~, kf19=\E[33~, kf2=\E[12~, kf20=\E[34~,
kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
kf8=\E[19~, kf9=\E[20~, op=\E[100m, rev=\E[7m, ri=\EM,
rmso=\E[27m, rmul=\E[24m, sgr0=\E[0m\017, smso=\E[7m,
- smul=\E[4m, vpa=\E[%i%p1%dd, use=vt220+vtedit,
- use=vt100+enq, use=klone+color, use=vt100,
- use=vt220+cvis,
+ smul=\E[4m, vpa=\E[%i%p1%dd, use=ansi+idl,
+ use=vt220+vtedit, use=vt100+enq, use=klone+color,
+ use=vt100, use=vt220+cvis,
-# Version 4.59 has regular vt100 line-drawing (so it is no longer necessary
+# Version 4.59 has regular VT100 line-drawing (so it is no longer necessary
# to choose a Windows OEM font).
#
# Testing with tack:
# - it does not have xenl (suppress that)
# - underline seems to work with color (modify ncv).
# Testing with vttest:
-# - wrapping differs from vt100 (menu 1).
+# - wrapping differs from VT100 (menu 1).
# - it recognizes xterm's X10 and normal mouse tracking, but none of the
# other flavors.
# - it recognizes the dtterm window controls for reporting size in
# characters and pixels.
# - it passes SIGWINCH.
-teraterm4.59|Tera Term Pro,
+teraterm4.59|Tera Term Pro 4.59,
bce, xenl@,
ncv#41,
acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
@@ -4346,7 +4439,7 @@ teraterm4.59|Tera Term Pro,
# + recognizes xterm's original direct-colors sequences, but result is
# poor.
# + no UTF-8 apparent when UTF-8 is set, with font Lucida Control
-teraterm4.97|Tera Term Pro,
+teraterm4.97|Tera Term Pro 4.97,
XT, use=ecma+color, use=xterm+sm+1006, use=teraterm4.59,
teraterm-256color|TeraTerm with xterm 256-colors,
use=xterm+256setaf, use=teraterm,
@@ -4362,10 +4455,10 @@ teraterm|Tera Term,
# Other notes:
# a) Fails tack's cup (cursor-addressing) test, though cup works well enough
# for casual (occasional) use. Also fails several of the vttest screens,
-# but that is not unusual for vt100 "emulators".
-# b) Does not implement vt100 keypad
-# c) Recognizes a subset of vt52 controls.
-ms-vt100|MS telnet imitating dec vt100,
+# but that is not unusual for VT100 "emulators".
+# b) Does not implement VT100 keypad
+# c) Recognizes a subset of VT52 controls.
+ms-vt100|MS telnet imitating DEC VT100,
lines#25,
acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i
\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u
@@ -4380,7 +4473,7 @@ ms-vt100|MS telnet imitating dec vt100,
# a) This version has no function keys or numeric keypad. Unlike the older
# version, the numeric keypad is entirely ignored.
# b) The program sets $TERM to "ansi", which of course is inaccurate.
-ms-vt100-color|vtnt|windows 2000 ansi (sic),
+ms-vt100-color|vtnt|windows 2000 ANSI (sic),
bce,
dch=\E[%p1%dP, ich=\E[%p1%d@, use=ecma+color,
use=ms-vt100,
@@ -4400,7 +4493,7 @@ ms-vt100-color|vtnt|windows 2000 ansi (sic),
# Shift \E^S
# Alt \E^A,
# Ctrl \E^C,
-ms-vt100+|vt100+|windows XP vt100+ (sic),
+ms-vt100+|vt100+|windows XP VT100+ (sic),
kdch1=\E-, kend=\Ek, kf1=\E1, kf10=\E0, kf11=\E!, kf12=\E@,
kf13=\E\023\E1, kf14=\E\023\E2, kf15=\E\023\E3,
kf16=\E\023\E4, kf17=\E\023\E5, kf18=\E\023\E6,
@@ -4417,13 +4510,142 @@ ms-vt100+|vt100+|windows XP vt100+ (sic),
kf6=\E6, kf7=\E7, kf8=\E8, kf9=\E9, khome=\Eh, kich1=\E+,
knp=\E/, kpp=\E?, use=ms-vt100-color,
-ms-vt-utf8|vt-utf8|UTF-8 flavor of vt100+,
+ms-vt-utf8|vt-utf8|UTF-8 flavor of VT100+,
use=ms-vt100+,
+# VT-UTF-8 and VT100+ Protocols
+# https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-vuvp/969416c0-ccd6-4a75-a9b3-597d7713845b
+#
+# This Microsoft "protocol" adapted the aixterm 16-color feature from xterm's
+# documentation in 2015, as seen in successive revisions:
+#
+# 2013/07/22 has 8 colors
+# 2015/10/16 has 16 colors using SGR 90-97, 100-107 as well as SGR 24 and 27,
+# adds "informative" reference to xterm's ctlseqs
+#
+# The cnorm/civis definitions added in 2015 are unrelated to any standard.
+ms-vt100-16color|VT-UTF-8 and VT100+,
+ civis=\E[?h, cnorm=\E[?l, rmso=\E[27m, rmul=\E[24m,
+ use=ibm+16color, use=ms-vt100+,
+
+# Based on
+# https://docs.microsoft.com/en-us/windows/console/console-virtual-terminal-sequences
+# We use this scheme to map function keys
+# terminfo modifier code keys
+# kf13-kf24 shift 2 F1 to F12
+# kf25-kf36 alt 3 F1 to F12
+# kf37-kf48 control 4 F1 to F12
+# kf49-kf60 ctrl-alt 7 F1 to F12
+#
+# Unclear: smam and rmam implemented?
+# Unclear: rmkx, smkx, rmir, smir - irrelevant?
+#
+# TD:
+# + According to tack, tbc and cbt fail.
+# + The line-drawing (acsc) does not work in telnet or ssh. I added the
+# U8 extension to tell ncurses to use UTF-8 for line-drawing (when the
+# locale uses UTF-8). That won't work for telnet (which uses ASCII),
+# but seems to work for OpenSSH's ssh. I set the codepage to 65001,
+# of course.
+# + Function keys... do not work consistently in telnet and ssh. With
+# telnet, kf1-kf4 are \EOP to \EOS, and kf5-kf12 match the terminfo.
+# But with ssh, it's entirely different (reminds me of rxvt).
+winconsole|Windows 10 new console,
+ am, km, mir, msgr, xenl,
+ ncv@, U8#1,
+ acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxy
+ yzz~~,
+ bel=^G, blink@, cr=\r, ech=\E[%p1%dX, el1=\E[0K, ich1@, ind=\n,
+ invis@, is1=\E[!p, kf13=\E[11;2~, kf14=\E[12;2~,
+ kf15=\E[13;2~, kf16=\E[14;2~, kf17=\E[15;2~,
+ kf18=\E[17;2~, kf19=\E[18;2~, kf20=\E[19;2~,
+ kf21=\E[20;2~, kf22=\E[21;2~, kf23=\E[24;2~,
+ kf24=\E[25;2~, kf25=\E[11;3~, kf26=\E[12;3~,
+ kf27=\E[13;3~, kf28=\E[14;3~, kf29=\E[15;3~,
+ kf30=\E[17;3~, kf31=\E[18;3~, kf32=\E[19;3~,
+ kf33=\E[20;3~, kf34=\E[21;3~, kf35=\E[24;3~,
+ kf36=\E[25;3~, kf37=\E[11;4~, kf38=\E[12;4~,
+ kf39=\E[13;4~, kf40=\E[14;4~, kf41=\E[15;4~,
+ kf42=\E[17;4~, kf43=\E[18;4~, kf44=\E[19;4~,
+ kf45=\E[20;4~, kf46=\E[21;4~, kf47=\E[24;4~,
+ kf48=\E[25;4~, kf49=\E[11;7~, kf50=\E[12;7~,
+ kf51=\E[13;7~, kf52=\E[14;7~, kf53=\E[15;7~,
+ kf54=\E[17;7~, kf55=\E[18;7~, kf56=\E[19;7~,
+ kf57=\E[20;7~, kf58=\E[21;7~, kf59=\E[24;7~,
+ kf60=\E[25;7~, khome=\E[1~, nel=\r\n, ri=\E[T, rmacs=\E(B,
+ rmir@, rmpch@, rs1=\E[!p,
+ sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m%?%p9%t
+ \E(0%e\E(B%;,
+ sgr0=\E[0m\E(B, smacs=\E(0, smir@, smpch@, use=ansi+arrows,
+ use=ansi+csr, use=ansi+cup, use=ansi+erase, use=ansi+idc,
+ use=ansi+idl, use=ecma+index, use=ansi+inittabs,
+ use=ansi+local, use=ecma+sgr, use=ecma+color,
+ use=vt220+cvis, use=vt220+pcedit, use=xterm+nopcfkeys,
+
# Windows Terminal (Preview)
+# https://github.com/microsoft/terminal
+#
+# Windows 10 22H2 (also Windows 11)
+# Version 1.16.10261.0
+#
+# - Windows Terminal #1553: "Feature Request: Mouse/Touch/Pointer Bindings
+# (like middle-click paste, right-click context menu, etc.)", compare to
+# https://learn.microsoft.com/en-us/windows/console/mouse-event-record-str
+# This appears to be related to a problem with its implementation of the
+# Console API; the mouse does not work in a "Command Window" (e.g., as used
+# in the ncurses MinGW driver), although escape sequences work.
+#
+# Windows 10 21H1
+# Version 1.9.1942.0
+#
+# This has longstanding issues with CR/LF mapping, e.g.,
+# - first reported by Juergen Pfeifer August 13, 2020, with workaround
+# - Windows Terminal #8303 "Updates to ms-terminal terminal type in terminfo to
+# 1.4 from 0.2"
+# - Windows Terminal #6733 "Midnight Commander (mc) output is screwed when
+# using the 'ms-terminal' as $TERM"
+#
+# still seen in testing during May-July 2021. As a workaround, this terminal
+# description sets cud1 to an escape sequence rather than just \r.
+#
+# Using TERM=xterm-256color shows a number of problems.
+# A few are seen only in the WSL2 environment.
+#
+# tack:
+# - flash does not work.
+# - video attribute blink does not work.
+# - video attribute invis does not work in WSL2.
+# - italics sitm/ritm do not work in WSL2.
+# - crossed-out smxx/rmxx do not work in WSL2.
+# - reloading colors via initp interchanges red/blue.
+# - does not implement OSC 104, which is used for resetting colors in xterm.
+# - does not support numeric keypad application mode.
+# - control-modifier (without alt/shift) does not work for special keys.
+# - meta-key sends escape character rather than acting as a meta key.
+#
+# vttest:
+# - identifies itself as a VT100.
+# - cursor movement (menu 1) does not work properly, e.g., for wrapping.
+# - does not support 8-bit controls.
+# - does not support VT420 rectangles.
+# - does not support VT420 left/right margins.
+# - ECMA-48 cursor-movement works.
+# - does not support X10 mouse, or mouse highlight tracking.
+# - SGR mouse mode 1006 works.
+# - any-event mouse mode shows no focus-in/focus-out events.
+# - alternate screen 47/48 modes do not work, nor do 1047/1048.
+# - alternate screen 1049 mode works.
+# - none of the window report/modify operations work.
+# - none of the DECRPM/DECRQM reporting operations work.
+#
+# xterm:
+# - 256colors2.pl -r, -i and -q options work.
+# - dynamic colors do not work.
+# - paste64.pl does not work, i.e., bracketed-paste.
+# - tcapquery.pl does not work.
+#
# Windows 10 1903
# Version 0.2.1831.0
-# https://github.com/microsoft/terminal
#
# The task manager shows this as "OpenConsole.exe", which differs
# from the "Windows Command Processor" used for the command-prompt.
@@ -4462,9 +4684,11 @@ ms-vt-utf8|vt-utf8|UTF-8 flavor of vt100+,
# - does not recognize either xterm+direct or xterm+indirect escapes.
ms-terminal|Windows10 terminal,
npc,
- rmkx=\E[?1l, rmm@, smkx=\E[?1h, smm@, use=xterm+256setaf,
- use=xterm+pcfkeys, use=ansi+rep, use=ecma+index,
- use=ecma+italics, use=xterm-basic,
+ cud1=\E[B, kcbt=\E[Z, rmkx=\E[?1l, rmm@, smkx=\E[?1h, smm@,
+ Cr@, Ms@, use=linux+kbs, use=xterm+256color,
+ use=xterm+pcfkeys, use=ansi+rep, use=xterm+sm+1006,
+ use=ecma+index, use=ecma+italics, use=ecma+strikeout,
+ use=xterm-basic, use=xterm+tmux,
#### Visual Studio
# Visual Studio Code 1.45.0 uses xterm.js 12.8.1 (see https://xtermjs.org/).
@@ -4513,9 +4737,10 @@ ms-terminal|Windows10 terminal,
# - color-palette cannot be changed
vscode|xterm.js|Visual Studio Code terminal using xterm.js,
npc,
- kcbt=\E[Z, rmkx=\E[?1l, smkx=\E[?1h, use=xterm+256setaf,
- use=ecma+index, use=xterm+sm+1006, use=xterm+pcfkeys,
- use=ecma+italics, use=xterm-basic,
+ kcbt=\E[Z, rmkx=\E[?1l, smkx=\E[?1h, use=linux+kbs,
+ use=xterm+256setaf, use=ecma+index, use=xterm+focus,
+ use=xterm+sm+1006, use=xterm+pcfkeys, use=ecma+italics,
+ use=xterm-basic, use=bracketed+paste,
vscode-direct|Visual Studio Code with direct-colors,
use=xterm+indirect, use=vscode,
@@ -4542,14 +4767,19 @@ x10term|vs100-x10|xterm terminal emulator (X10 window system),
cols#80, it#8, lines#65,
bold=\E[1m, clear=\E[H\E[2J, csr=\E[%i%p1%d;%p2%dr,
cub1=^H, cud1=\n, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
- dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, il=\E[%p1%dL,
- il1=\E[L, ind=\n, is2=\E\E[m\E[?7h\E[?1;4l, kbs=^H,
+ cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, ed=\E[J, el=\E[K,
+ home=\E[H, ht=^I, ind=\n, is2=\E\E[m\E[?7h\E[?1;4l, kbs=^H,
kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP,
kf2=\EOQ, kf3=\EOR, kf4=\EOS, rev=\E[7m, ri=\EM, rmam=\E[?7l,
rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
sgr0=\E[m, smam=\E[?7h, smir=\E[4h, smkx=\E[?1h\E=,
- smso=\E[7m, smul=\E[4m,
+ smso=\E[7m, smul=\E[4m, use=ansi+idl,
+
+# csl is extension which clears the status line
+x10term+sl|status-line for X10 xterm,
+ eslok, hs,
+ dsl=\E[?H, fsl=\E[?F, tsl=\E[?E\E[?%i%p1%dT, csl=\E[?E,
+
# Compatible with the R5 xterm
# (from the XFree86 3.2 distribution, <blink=@> removed)
# added khome/kend, rmir/smir, rmul/smul, hts based on the R5 xterm code - TD
@@ -4558,26 +4788,22 @@ x10term|vs100-x10|xterm terminal emulator (X10 window system),
xterm-r5|xterm R5 version,
OTbs, am, km, msgr, xenl,
cols#80, it#8, lines#24,
- bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
- el=\E[K, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
- il=\E[%p1%dL, il1=\E[L, ind=\n, kcub1=\EOD, kcud1=\EOB,
- kcuf1=\EOC, kcuu1=\EOA, kdl1=\E[31~, kel=\E[8~, kf0=\EOq,
+ bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=\r, cub1=^H, cud1=\n,
+ cup=\E[%i%p1%d;%p2%dH, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
+ hts=\EH, ind=\n, kdl1=\E[31~, kel=\E[8~, kf0=\EOq,
kf1=\E[11~, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
kf2=\E[12~, kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[17~,
kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, khome=\E[1~,
- kil1=\E[30~, kmous=\E[M, rc=\E8, rev=\E[7m, ri=\EM,
- rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
+ kil1=\E[30~, kmous=\E[M, rev=\E[7m, ri=\EM, rmkx=\E[?1l\E>,
+ rmso=\E[m, rmul=\E[m,
rs2=\E>\E[?1;3;4;5;6l\E[4l\E[?7h\E[m\E[r\E[2J\E[H,
- sc=\E7,
sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1
%;m,
- sgr0=\E[m, smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g, use=vt220+pcedit, use=vt100+enq,
- use=xterm+kbs,
+ sgr0=\E[m, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
+ tbc=\E[3g, use=xterm+kbs, use=ansi+apparrows,
+ use=ansi+csr, use=ansi+idc, use=ansi+idl, use=ansi+local,
+ use=vt220+pcedit, use=vt100+enq,
+
# Compatible with the R6 xterm
# (from XFree86 3.2 distribution, <acsc> and <it> added, <blink@> removed)
# added khome/kend, hts based on the R6 xterm code - TD
@@ -4587,13 +4813,10 @@ xterm-r6|xterm X11R6 version,
OTbs, am, km, mir, msgr, xenl,
cols#80, it#8, lines#24,
acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
- el=\E[K, enacs=\E)0, home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL,
- il1=\E[L, ind=\n,
+ bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=\r, cub1=^H, cud1=\n,
+ cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP,
+ dch1=\E[P, ed=\E[J, el=\E[K, enacs=\E)0, home=\E[H, ht=^I,
+ hts=\EH, ind=\n,
is2=\E[m\E[?7h\E[4l\E>\E7\E[r\E[?1;3;4;6l\E8,
kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\E[11~,
kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
@@ -4601,12 +4824,13 @@ xterm-r6|xterm X11R6 version,
kf18=\E[32~, kf19=\E[33~, kf2=\E[12~, kf20=\E[34~,
kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
kf8=\E[19~, kf9=\E[20~, kmous=\E[M, meml=\El, memu=\Em,
- rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O, rmcup=\E[2J\E[?47l\E8,
- rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
- rs2=\E[m\E[?7h\E[4l\E>\E7\E[r\E[?1;3;4;6l\E8, sc=\E7,
- sgr0=\E[m, smacs=^N, smcup=\E7\E[?47h, smir=\E[4h,
- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+ rev=\E[7m, ri=\EM, rmacs=^O, rmir=\E[4l, rmkx=\E[?1l\E>,
+ rs2=\E[m\E[?7h\E[4l\E>\E7\E[r\E[?1;3;4;6l\E8,
+ sgr0=\E[m, smacs=^N, smir=\E[4h, smkx=\E[?1h\E=, tbc=\E[3g,
+ use=xterm+alt47, use=ansi+csr, use=ansi+idl,
+ use=ansi+local, use=ansi+sgrso, use=ansi+sgrul,
use=vt220+vtedit, use=xterm+kbs, use=vt100+enq,
+
xterm-old|antique xterm version,
use=xterm-r6,
# The monochrome version began as a copy of "xtermm" (from Solaris), and was
@@ -4622,40 +4846,35 @@ xterm-mono|monochrome xterm,
# The name has been changed and some aliases have been removed.
xterm-xf86-v32|xterm terminal emulator (XFree86 3.2 Window System),
OTbs, am, bce, km, mir, msgr, xenl, XT,
- cols#80, it#8, lines#24, ncv@,
+ cols#80, lines#24, ncv@,
acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[2J, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
- flash=\E[?5h$<100/>\E[?5l, home=\E[H, hpa=\E[%i%p1%dG,
- ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL,
- il1=\E[L, ind=\n,
+ bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=\r, cub1=^H, cud1=\n,
+ cup=\E[%i%p1%d;%p2%dH, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
+ el1=\E[1K, enacs=\E(B\E)0, flash=\E[?5h$<100/>\E[?5l,
+ home=\E[H, hpa=\E[%i%p1%dG, ind=\n,
is2=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>,
- kbeg=\EOE, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kdch1=^?, kend=\EOF, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~,
- kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
- kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
- kf2=\E[12~, kf20=\E[34~, kf3=\E[13~, kf4=\E[14~,
- kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- kfnd=\E[1~, khome=\EOH, kich1=\E[2~, kmous=\E[M, knp=\E[6~,
- kpp=\E[5~, kslt=\E[4~, meml=\El, memu=\Em, rc=\E8, rev=\E[7m,
- ri=\EM, rmacs=^O, rmam=\E[?7l, rmcup=\E[2J\E[?47l\E8,
- rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m,
- rs1=^O, rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>,
- sc=\E7,
+ kbeg=\EOE, kbs=^?, kdch1=^?, kend=\EOF, kf1=\E[11~,
+ kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
+ kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
+ kf18=\E[32~, kf19=\E[33~, kf2=\E[12~, kf20=\E[34~,
+ kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
+ kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, kmous=\E[M, kslt=\E[4~,
+ meml=\El, memu=\Em, rev=\E[7m, ri=\EM, rmacs=^O, rmam=\E[?7l,
+ rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m, rs1=^O,
+ rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>,
setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}
%=%t3%e%p1%d%;m,
setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}
%=%t3%e%p1%d%;m,
sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5
%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E7\E[?47h,
- smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
- tbc=\E[3g, vpa=\E[%i%p1%dd, use=xterm+kbs, use=vt100+enq,
+ sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=,
+ smso=\E[7m, smul=\E[4m, vpa=\E[%i%p1%dd,
+ use=ansi+apparrows, use=ansi+csr, use=ansi+idc,
+ use=ansi+idl, use=ansi+inittabs, use=ansi+local,
+ use=xterm+alt47, use=xterm+kbs, use=vt100+enq,
use=ecma+color, use=vt220+cvis, use=vt220+keypad,
+ use=vt220+pcedit,
# This is the stock xterm entry supplied with XFree86 3.3, which uses VT100
# codes for F1-F4 except while in VT220 mode.
@@ -4681,18 +4900,17 @@ xterm-xf86-v40|xterm terminal emulator (XFree86 4.0 Window System),
npc,
kDC=\E[3;5~, kEND=\EO5F, kHOM=\EO5H, kIC=\E[2;5~,
kLFT=\EO5D, kNXT=\E[6;5~, kPRV=\E[5;5~, kRIT=\EO5C, ka1@,
- ka3@, kb2=\EOE, kc1@, kc3@, kcbt=\E[Z, kdch1=\E[3~, kend=\EOF,
- kf13=\EO2P, kf14=\EO2Q, kf15=\EO2R, kf16=\EO2S,
- kf17=\E[15;2~, kf18=\E[17;2~, kf19=\E[18;2~,
- kf20=\E[19;2~, kf21=\E[20;2~, kf22=\E[21;2~,
- kf23=\E[23;2~, kf24=\E[24;2~, kf25=\EO5P, kf26=\EO5Q,
- kf27=\EO5R, kf28=\EO5S, kf29=\E[15;5~, kf30=\E[17;5~,
- kf31=\E[18;5~, kf32=\E[19;5~, kf33=\E[20;5~,
- kf34=\E[21;5~, kf35=\E[23;5~, kf36=\E[24;5~, kf37=\EO6P,
- kf38=\EO6Q, kf39=\EO6R, kf40=\EO6S, kf41=\E[15;6~,
- kf42=\E[17;6~, kf43=\E[18;6~, kf44=\E[19;6~,
- kf45=\E[20;6~, kf46=\E[21;6~, kf47=\E[23;6~,
- kf48=\E[24;6~, khome=\EOH,
+ ka3@, kb2=\EOE, kc1@, kc3@, kcbt=\E[Z, kf13=\EO2P, kf14=\EO2Q,
+ kf15=\EO2R, kf16=\EO2S, kf17=\E[15;2~, kf18=\E[17;2~,
+ kf19=\E[18;2~, kf20=\E[19;2~, kf21=\E[20;2~,
+ kf22=\E[21;2~, kf23=\E[23;2~, kf24=\E[24;2~, kf25=\EO5P,
+ kf26=\EO5Q, kf27=\EO5R, kf28=\EO5S, kf29=\E[15;5~,
+ kf30=\E[17;5~, kf31=\E[18;5~, kf32=\E[19;5~,
+ kf33=\E[20;5~, kf34=\E[21;5~, kf35=\E[23;5~,
+ kf36=\E[24;5~, kf37=\EO6P, kf38=\EO6Q, kf39=\EO6R,
+ kf40=\EO6S, kf41=\E[15;6~, kf42=\E[17;6~, kf43=\E[18;6~,
+ kf44=\E[19;6~, kf45=\E[20;6~, kf46=\E[21;6~,
+ kf47=\E[23;6~, kf48=\E[24;6~,
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?
%p9%t\016%e\017%;,
use=xterm+alt1049, use=xterm-xf86-v333,
@@ -4711,15 +4929,12 @@ xterm-xf86-v43|xterm terminal emulator (XFree86 4.3 Window System),
# the hardware terminals, or for more recent emulators, e.g., xterm.
vt220+cvis|DECTCEM VT220 cursor-visibility,
civis=\E[?25l, cnorm=\E[?25h,
-vt220+cvis8|8-bit variant,
+vt220+cvis8|8-bit DECTCEM VT220 cursor-visibility,
civis=\233?25l, cnorm=\233?25h,
-# The cvvis capability was unused in the SVr4 terminal descriptions for the
-# AT&T terminals, and there are no available documents as of 2021 which can
-# provide that it would have worked. The first block is used for those 1980s
-# terminals; the second is used for terminals whose behavior can be verified.
-att610+cvis0|ATT 610 cursor-visibility,
- civis=\E[?25l, cnorm=\E[?25h\E[?12l,
-att610+cvis|xterm cursor-visibility in XFree86 4.4,
+# The first block is for terminals which did not support blinking cursor.
+att610+cvis0|AT&T 610 cursor-visibility,
+ civis=\E[?25l, cnorm=\E[?12l\E[?25h,
+att610+cvis|AT&T 610 cursor-visibility with blink,
civis=\E[?25l, cnorm=\E[?12l\E[?25h, cvvis=\E[?12;25h,
# This version was released in XFree86 4.4.
@@ -4731,22 +4946,36 @@ xterm-xfree86|xterm terminal emulator (XFree86),
xterm+nofkeys|building block for xterm fkey-variants,
npc,
- kcbt=\E[Z, kent=\EOM, nel=\EE, use=ecma+index,
- use=ansi+rep, use=ecma+strikeout, use=vt420+lrmm,
+ kcbt=\E[Z, nel=\EE, use=ecma+index, use=ansi+rep,
+ use=ecma+strikeout, use=vt420+lrmm, use=xterm+focus,
use=xterm+sm+1006, use=xterm+tmux, use=ecma+italics,
use=xterm+keypad, use=xterm-basic,
+xterm-p370|xterm patch #370,
+ rv=\E\\[41;[1-6][0-9][0-9];0c,
+ xr=\EP>\\|XTerm\\([1-9][0-9]+\\)\E\\\\,
+ use=ecma+index, use=ansi+rep, use=ecma+strikeout,
+ use=xterm+pcfkeys, use=xterm+nofkeys,
+ use=bracketed+paste, use=report+version,
+ use=xterm+focus,
+
+xterm-p371|xterm patch #371,
+ use=dec+sl, use=xterm-p370,
+
# This version reflects the current xterm features.
xterm-new|modern xterm terminal emulator,
- npc,
- kcbt=\E[Z, kent=\EOM, nel=\EE, use=ecma+index,
- use=ansi+rep, use=ecma+strikeout, use=xterm+pcfkeys,
- use=xterm+nofkeys,
+ use=xterm-p370,
# This fragment is for people who cannot agree on what the backspace key
-# should send.
+# should send. The ncurses configure script option "--with-xterm-kbs" can
+# set it to BS (standard) or DEL (Linux's notion of "vt220"). xterm provides
+# either, depending on how the pseudoterminals are configured.
xterm+kbs|fragment for backspace key,
kbs=^H,
+
+# Use this fragment for terminals that always use DEL for "backspace".
+linux+kbs|fragment for "backspace" key,
+ kbs=^?,
#
# This fragment describes as much of XFree86 xterm's "pc-style" function
# keys as will fit into terminfo's 60 function keys.
@@ -4763,17 +4992,48 @@ xterm+kbs|fragment for backspace key,
# ---------------------------------
# The meta key may also be used as a modifier in this scheme, adding another
# bit to the parameter.
-xterm+pcfkeys|fragment for PC-style fkeys,
+xterm+pcfkeys|xterm fragment for PC-style fkeys,
use=xterm+app, use=xterm+pcf2, use=xterm+pcc2,
use=xterm+pce2,
-#
+
+# The xterm ctrlFKeys resource defaults to 10, so without the "pc-style"
+# feature, e.g., setting the modifyCursorKeys and modifyFunctionKeys resources
+# to -1 to disable them, one gets 42 function-keys on a 12-function-key
+# keyboard, e.g.,
+# kf1 = \E[11~
+# kf11 shift f1 = \E[23~
+# kf21 control f1 = \E[42~
+# kf31 shift control f1 = \E[52~
+xterm+nopcfkeys|fragment without PC-style fkeys,
+ kf1=\E[11~, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
+ kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
+ kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\E[12~,
+ kf20=\E[34~, kf21=\E[42~, kf22=\E[43~, kf23=\E[44~,
+ kf24=\E[45~, kf25=\E[46~, kf26=\E[47~, kf27=\E[48~,
+ kf28=\E[49~, kf29=\E[50~, kf3=\E[13~, kf30=\E[51~,
+ kf31=\E[52~, kf32=\E[53~, kf33=\E[54~, kf34=\E[55~,
+ kf35=\E[56~, kf36=\E[57~, kf37=\E[58~, kf38=\E[59~,
+ kf39=\E[60~, kf4=\E[14~, kf40=\E[61~, kf41=\E[62~,
+ kf42=\E[63~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
+ kf8=\E[19~, kf9=\E[20~,
+
+vt100+noapp|fragment with cursor keys in normal mode,
+ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+ use=vt100+noapp+pc,
+
xterm+noapp|fragment with cursor keys in normal mode,
kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kend=\E[F,
khome=\E[H,
xterm+app|fragment with cursor keys in application mode,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kend=\EOF,
- khome=\EOH,
+ kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+ use=xterm+app+pc,
+
+vt100+noapp+pc|fragment for noapp pc-style home/end,
+ kend=\E[F, khome=\E[H,
+
+xterm+app+pc|fragment for app pc-style home/end,
+ kend=\EOF, khome=\EOH,
#
# The "PC-style" modifier scheme was introduced in xterm patch #94 (1999/3/27)
# and revised in xterm patch #167 (2002/8/24). Some other terminal emulators
@@ -4846,8 +5106,7 @@ xterm+pcc0|fragment with modifyCursorKeys:0,
# Here are corresponding fragments from xterm patch #216:
#
xterm+pcf0|fragment with modifyFunctionKeys:0,
- kf1=\EOP, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
- kf13=\EO2P, kf14=\EO2Q, kf15=\EO2R, kf16=\EO2S,
+ kf1=\EOP, kf13=\EO2P, kf14=\EO2Q, kf15=\EO2R, kf16=\EO2S,
kf17=\E[15;2~, kf18=\E[17;2~, kf19=\E[18;2~, kf2=\EOQ,
kf20=\E[19;2~, kf21=\E[20;2~, kf22=\E[21;2~,
kf23=\E[23;2~, kf24=\E[24;2~, kf25=\EO5P, kf26=\EO5Q,
@@ -4858,55 +5117,56 @@ xterm+pcf0|fragment with modifyFunctionKeys:0,
kf4=\EOS, kf40=\EO6S, kf41=\E[15;6~, kf42=\E[17;6~,
kf43=\E[18;6~, kf44=\E[19;6~, kf45=\E[20;6~,
kf46=\E[21;6~, kf47=\E[23;6~, kf48=\E[24;6~, kf49=\EO3P,
- kf5=\E[15~, kf50=\EO3Q, kf51=\EO3R, kf52=\EO3S,
- kf53=\E[15;3~, kf54=\E[17;3~, kf55=\E[18;3~,
- kf56=\E[19;3~, kf57=\E[20;3~, kf58=\E[21;3~,
- kf59=\E[23;3~, kf6=\E[17~, kf60=\E[24;3~, kf61=\EO4P,
- kf62=\EO4Q, kf63=\EO4R, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+ kf50=\EO3Q, kf51=\EO3R, kf52=\EO3S, kf53=\E[15;3~,
+ kf54=\E[17;3~, kf55=\E[18;3~, kf56=\E[19;3~,
+ kf57=\E[20;3~, kf58=\E[21;3~, kf59=\E[23;3~,
+ kf60=\E[24;3~, kf61=\EO4P, kf62=\EO4Q, kf63=\EO4R,
+ use=xterm+nopcfkeys,
#
xterm+pcf2|fragment with modifyFunctionKeys:2,
- kf1=\EOP, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
- kf13=\E[1;2P, kf14=\E[1;2Q, kf15=\E[1;2R, kf16=\E[1;2S,
- kf17=\E[15;2~, kf18=\E[17;2~, kf19=\E[18;2~, kf2=\EOQ,
- kf20=\E[19;2~, kf21=\E[20;2~, kf22=\E[21;2~,
- kf23=\E[23;2~, kf24=\E[24;2~, kf25=\E[1;5P, kf26=\E[1;5Q,
- kf27=\E[1;5R, kf28=\E[1;5S, kf29=\E[15;5~, kf3=\EOR,
- kf30=\E[17;5~, kf31=\E[18;5~, kf32=\E[19;5~,
- kf33=\E[20;5~, kf34=\E[21;5~, kf35=\E[23;5~,
- kf36=\E[24;5~, kf37=\E[1;6P, kf38=\E[1;6Q, kf39=\E[1;6R,
- kf4=\EOS, kf40=\E[1;6S, kf41=\E[15;6~, kf42=\E[17;6~,
- kf43=\E[18;6~, kf44=\E[19;6~, kf45=\E[20;6~,
- kf46=\E[21;6~, kf47=\E[23;6~, kf48=\E[24;6~,
- kf49=\E[1;3P, kf5=\E[15~, kf50=\E[1;3Q, kf51=\E[1;3R,
+ kf1=\EOP, kf13=\E[1;2P, kf14=\E[1;2Q, kf15=\E[1;2R,
+ kf16=\E[1;2S, kf17=\E[15;2~, kf18=\E[17;2~,
+ kf19=\E[18;2~, kf2=\EOQ, kf20=\E[19;2~, kf21=\E[20;2~,
+ kf22=\E[21;2~, kf23=\E[23;2~, kf24=\E[24;2~,
+ kf25=\E[1;5P, kf26=\E[1;5Q, kf27=\E[1;5R, kf28=\E[1;5S,
+ kf29=\E[15;5~, kf3=\EOR, kf30=\E[17;5~, kf31=\E[18;5~,
+ kf32=\E[19;5~, kf33=\E[20;5~, kf34=\E[21;5~,
+ kf35=\E[23;5~, kf36=\E[24;5~, kf37=\E[1;6P, kf38=\E[1;6Q,
+ kf39=\E[1;6R, kf4=\EOS, kf40=\E[1;6S, kf41=\E[15;6~,
+ kf42=\E[17;6~, kf43=\E[18;6~, kf44=\E[19;6~,
+ kf45=\E[20;6~, kf46=\E[21;6~, kf47=\E[23;6~,
+ kf48=\E[24;6~, kf49=\E[1;3P, kf50=\E[1;3Q, kf51=\E[1;3R,
kf52=\E[1;3S, kf53=\E[15;3~, kf54=\E[17;3~,
kf55=\E[18;3~, kf56=\E[19;3~, kf57=\E[20;3~,
- kf58=\E[21;3~, kf59=\E[23;3~, kf6=\E[17~, kf60=\E[24;3~,
- kf61=\E[1;4P, kf62=\E[1;4Q, kf63=\E[1;4R, kf7=\E[18~,
- kf8=\E[19~, kf9=\E[20~,
+ kf58=\E[21;3~, kf59=\E[23;3~, kf60=\E[24;3~,
+ kf61=\E[1;4P, kf62=\E[1;4Q, kf63=\E[1;4R,
+ use=xterm+nopcfkeys,
#
# Chunks from xterm #230:
-xterm+pce2|fragment with modifyCursorKeys:2,
+xterm+pce2|fragment with modifyCursorKeys:2 editing-keys,
kDC=\E[3;2~, kEND=\E[1;2F, kHOM=\E[1;2H, kIC=\E[2;2~,
- kNXT=\E[6;2~, kPRV=\E[5;2~, kich1=\E[2~, knp=\E[6~,
- kpp=\E[5~, kDC3=\E[3;3~, kDC4=\E[3;4~, kDC5=\E[3;5~,
- kDC6=\E[3;6~, kDC7=\E[3;7~, kEND3=\E[1;3F, kEND4=\E[1;4F,
- kEND5=\E[1;5F, kEND6=\E[1;6F, kEND7=\E[1;7F,
- kHOM3=\E[1;3H, kHOM4=\E[1;4H, kHOM5=\E[1;5H,
- kHOM6=\E[1;6H, kHOM7=\E[1;7H, kIC3=\E[2;3~, kIC4=\E[2;4~,
- kIC5=\E[2;5~, kIC6=\E[2;6~, kIC7=\E[2;7~, kNXT3=\E[6;3~,
- kNXT4=\E[6;4~, kNXT5=\E[6;5~, kNXT6=\E[6;6~,
- kNXT7=\E[6;7~, kPRV3=\E[5;3~, kPRV4=\E[5;4~,
- kPRV5=\E[5;5~, kPRV6=\E[5;6~, kPRV7=\E[5;7~,
- use=xterm+edit,
+ kNXT=\E[6;2~, kPRV=\E[5;2~, kDC3=\E[3;3~, kDC4=\E[3;4~,
+ kDC5=\E[3;5~, kDC6=\E[3;6~, kDC7=\E[3;7~, kEND3=\E[1;3F,
+ kEND4=\E[1;4F, kEND5=\E[1;5F, kEND6=\E[1;6F,
+ kEND7=\E[1;7F, kHOM3=\E[1;3H, kHOM4=\E[1;4H,
+ kHOM5=\E[1;5H, kHOM6=\E[1;6H, kHOM7=\E[1;7H,
+ kIC3=\E[2;3~, kIC4=\E[2;4~, kIC5=\E[2;5~, kIC6=\E[2;6~,
+ kIC7=\E[2;7~, kNXT3=\E[6;3~, kNXT4=\E[6;4~,
+ kNXT5=\E[6;5~, kNXT6=\E[6;6~, kNXT7=\E[6;7~,
+ kPRV3=\E[5;3~, kPRV4=\E[5;4~, kPRV5=\E[5;5~,
+ kPRV6=\E[5;6~, kPRV7=\E[5;7~, use=xterm+edit,
xterm+edit|fragment for 6-key editing-keypad,
+ use=xterm+pc+edit, use=vt220+pcedit,
+
+xterm+decedit|fragment for vt220 6-key editing-keypad,
kdch1=\E[3~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
- use=xterm+pc+edit,
+ use=xterm+vt+edit,
xterm+pc+edit|fragment for pc-style editing keypad,
kend=\E[4~, khome=\E[1~,
-xterm+vt+edit|fragment for vt220-style editing keypad,
+xterm+vt+edit|fragment for VT220-style editing keypad,
kfnd=\E[1~, kslt=\E[4~,
# These variations for alternate-screen and title-stacking were introduced by
@@ -4914,6 +5174,9 @@ xterm+vt+edit|fragment for vt220-style editing keypad,
xterm+noalt|xterm without altscreen,
rmcup@, smcup@,
+xterm+alt47|X11R4 alternate-screen,
+ rmcup=\E[2J\E[?47l\E8, smcup=\E7\E[?47h,
+
xterm+alt1049|xterm 90 feature,
rmcup=\E[?1049l, smcup=\E[?1049h,
@@ -4938,22 +5201,34 @@ xterm+alt+title|xterm 90 and 251 features combined,
# | NumLock | / | * | - |
# | | $Oo | $Oj | $OS |
# |_________|__kpDIV__|__kpMUL__|__kpSUB__|
-# | 7 8 9 | |
-# | $Ow | $Ox | $Oy | + |
-# |_ka1__K1_|_________|_ka3__K3_| $Ok |
-# | 4 | 5 | 6 | kpADD |
+# | 7 8 9 | + |
+# | $Ow | $Ox | $Oy | $Ok |
+# |_ka1__K1_|_________|_ka3__K3_| kpADD |
+# | 4 | 5 | 6 | |
# | $Ot | $Ou | $Ov | |
# |_________|_kb2__K2_|_________|_________|
# | 1 | 2 | 3 | |
# | $Oq | $Or | $Os | |
# |_kc1__K4_|_________|_kc3__K5_| enter |
-# | 0 | . | $OM |
-# | $Op | $On | |
-# |___________________|_________|_kent_@8_|
+# | 0 | . | $OM |
+# | $Op | $On | |
+# |_______kpZRO_______|__kpDOT__|_kent_@8_|
+#
+# ka2, kb1, kb3 and kc2 are extensions, as are the mixed-case names.
+# There are no termcap equivalents for these extensions.
+#
+# kpCMA (comma) is used here for the VT100 keypad, which xterm emulates with
+# shifted-keypad-plus, though normally that invokes a font-size change.
+#
+# Old versions of xterm, e.g., xterm-xfree86, documented \EOE as kb2, which
+# does not fit into this layout. The extension kp5 fits, but is not visible
+# to termcap applications. As an alternative, kbeg (which does have a termcap
+# equivalent) is provided.
#
xterm+keypad|xterm emulating VT100/VT220 numeric keypad,
- kp5=\EOE, kpADD=\EOk, kpCMA=\EOl, kpDIV=\EOo, kpDOT=\EOn,
- kpMUL=\EOj, kpSUB=\EOm, kpZRO=\EOp, use=vt220+keypad,
+ kbeg=\EOE, kp5=\EOE, kpADD=\EOk, kpCMA=\EOl, kpDIV=\EOo,
+ kpDOT=\EOn, kpMUL=\EOj, kpSUB=\EOm, kpZRO=\EOp,
+ use=vt220+keypad,
#
# Those chunks use the new-style (the xterm oldFunctionKeys resource is false).
# Alternatively, the same scheme with old-style function keys as in xterm-r6
@@ -4967,35 +5242,34 @@ xterm+r6f2|xterm with oldFunctionKeys and modifyFunctionKeys:2,
kf52=\E[14;3~, kf61=\E[11;4~, kf62=\E[12;4~,
kf63=\E[13;4~, use=xterm+pcf2,
#
+xterm+acs|ISO-2022 alternate character-switching for xterm,
+ acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+ enacs@, rmacs=\E(B, smacs=\E(0,
+
# This chunk is used for building the VT220/Sun/PC keyboard variants.
xterm-basic|modern xterm terminal emulator - common,
OTbs, am, bce, mir, msgr, xenl, AX, XT,
- colors#8, cols#80, it#8, lines#24, pairs#64,
- acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[2J,
- cr=\r, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM,
- dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
+ colors#8, cols#80, lines#24, pairs#64,
+ bel=^G, clear=\E[H\E[2J, cr=\r, cub1=^H, cud1=\n,
+ cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\E[P,
+ dim=\E[2m, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
flash=\E[?5h$<100/>\E[?5l, home=\E[H, hpa=\E[%i%p1%dG,
- ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L,
- ind=\n, invis=\E[8m, is2=\E[!p\E[?3;4l\E[4l\E>,
- kmous=\E[M, meml=\El, memu=\Em, op=\E[39;49m, rc=\E8,
- rev=\E[7m, ri=\EM, rmacs=\E(B, rmam=\E[?7l, rmir=\E[4l,
- rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m, rs1=\Ec,
- rs2=\E[!p\E[?3;4l\E[4l\E>, sc=\E7, setab=\E[4%p1%dm,
- setaf=\E[3%p1%dm,
+ ich=\E[%p1%d@, ind=\n, is2=\E[!p\E[?3;4l\E[4l\E>,
+ kmous=\E[M, meml=\El, memu=\Em, op=\E[39;49m, ri=\EM,
+ rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m,
+ rmul=\E[24m, rs1=\Ec, rs2=\E[!p\E[?3;4l\E[4l\E>,
+ setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}
%=%t3%e%p1%d%;m,
setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}
%=%t3%e%p1%d%;m,
sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;
%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m,
- sgr0=\E(B\E[m, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
- vpa=\E[%i%p1%dd, E3=\E[3J, use=ansi+pp, use=xterm+kbs,
- use=xterm+alt+title, use=ansi+enq, use=att610+cvis,
+ sgr0=\E(B\E[m, smam=\E[?7h, smir=\E[4h, smkx=\E[?1h\E=,
+ vpa=\E[%i%p1%dd, E3=\E[3J, use=ansi+csr, use=ansi+enq,
+ use=ansi+idl, use=ansi+inittabs, use=ansi+local,
+ use=ansi+pp, use=ansi+sgrbold, use=xterm+kbs,
+ use=xterm+alt+title, use=att610+cvis, use=xterm+acs,
use=xterm+meta,
xterm+meta|meta mode for xterm,
@@ -5016,7 +5290,7 @@ xterm-xi|xterm on XI Graphics Accelerated X under BSD/OS 3.1,
# xterm also recognizes the control sequences for initc -TD
xterm-16color|xterm with 16 colors like aixterm,
ccc,
- initc=\E]4;%p1%d;rgb\:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*
+ initc=\E]4;%p1%d;rgb:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*
%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\\,
use=xterm+osc104, use=ibm+16color, use=xterm-new,
@@ -5025,7 +5299,7 @@ xterm-16color|xterm with 16 colors like aixterm,
xterm+256color|original xterm 256-color feature,
ccc,
colors#0x100, pairs#0x10000,
- initc=\E]4;%p1%d;rgb\:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*
+ initc=\E]4;%p1%d;rgb:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*
%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\\,
oc=\E]104\007,
setab=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;
@@ -5041,10 +5315,10 @@ xterm+256color|original xterm 256-color feature,
# The xterm FAQ gives some of the history:
# https://invisible-island.net/xterm/xterm.faq.html#color_by_number
xterm+256color2|xterm 256-color feature,
- setab=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48
- \:5\:%p1%d%;m,
- setaf=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38\:
- 5\:%p1%d%;m,
+ setab=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48:
+ 5:%p1%d%;m,
+ setaf=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38:5
+ :%p1%d%;m,
use=xterm+256color,
# xterm OSC 104 resets the color palette. Using it as part of xterm+256color
@@ -5101,14 +5375,14 @@ xterm-88color|xterm with 88 colors,
# is of interest only to the numerically illiterate), is compatible with other
# terminal descriptions written for curses. It relies upon the extended range
# for numeric capabilities provided in ncurses 6.1:
-xterm+direct2|xterm with direct-color indexing,
+xterm+direct2|xterm with direct-color indexing (old building-block),
RGB,
colors#0x1000000, pairs#0x10000, CO#8,
initc@, op=\E[39;49m,
- setab=\E[%?%p1%{8}%<%t4%p1%d%e48\:2\:%p1%{65536}%/%d\:%p1
- %{256}%/%{255}%&%d\:%p1%{255}%&%d%;m,
- setaf=\E[%?%p1%{8}%<%t3%p1%d%e38\:2\:%p1%{65536}%/%d\:%p1
- %{256}%/%{255}%&%d\:%p1%{255}%&%d%;m,
+ setab=\E[%?%p1%{8}%<%t4%p1%d%e48:2:%p1%{65536}%/%d:%p1%{256}
+ %/%{255}%&%d:%p1%{255}%&%d%;m,
+ setaf=\E[%?%p1%{8}%<%t3%p1%d%e38:2:%p1%{65536}%/%d:%p1%{256}
+ %/%{255}%&%d:%p1%{255}%&%d%;m,
setb@, setf@,
xterm-direct2|xterm with direct-color indexing (old),
use=xterm+direct2, use=xterm+titlestack, use=xterm,
@@ -5116,14 +5390,14 @@ xterm-direct2|xterm with direct-color indexing (old),
# That in turn had a problem: in the original patch submitted for KDE konsole
# in 2006, the submitter and the developer alike overlooked a "color space
# identifier" parameter. This version provides for that parameter:
-xterm+direct|xterm with direct-color indexing,
+xterm+direct|xterm with direct-color indexing (building-block),
RGB,
colors#0x1000000, pairs#0x10000, CO#8,
initc@, op=\E[39;49m,
- setab=\E[%?%p1%{8}%<%t4%p1%d%e48\:2\:\:%p1%{65536}%/%d\:%p1
- %{256}%/%{255}%&%d\:%p1%{255}%&%d%;m,
- setaf=\E[%?%p1%{8}%<%t3%p1%d%e38\:2\:\:%p1%{65536}%/%d\:%p1
- %{256}%/%{255}%&%d\:%p1%{255}%&%d%;m,
+ setab=\E[%?%p1%{8}%<%t4%p1%d%e48:2::%p1%{65536}%/%d:%p1
+ %{256}%/%{255}%&%d:%p1%{255}%&%d%;m,
+ setaf=\E[%?%p1%{8}%<%t3%p1%d%e38:2::%p1%{65536}%/%d:%p1
+ %{256}%/%{255}%&%d:%p1%{255}%&%d%;m,
setb@, setf@,
xterm-direct|xterm with direct-color indexing,
use=xterm+direct, use=xterm,
@@ -5138,7 +5412,7 @@ mlterm-direct|mlterm with direct-color indexing,
# that xterm's original implementation should have used colons for the
# subparameter separators, but chose not to correct this in konsole. As of
# late 2017, konsole still accepts only the nonstandard semicolon delimiters.
-xterm+indirect|xterm with direct-color indexing (old),
+xterm+indirect|xterm with direct-color indexing (old legacy building-block),
RGB,
colors#0x1000000, pairs#0x10000,
initc@, op=\E[39;49m,
@@ -5149,9 +5423,9 @@ xterm+indirect|xterm with direct-color indexing (old),
setb@, setf@,
konsole-direct|konsole with direct-color indexing,
use=xterm+indirect, use=konsole,
-st-direct|st with direct-color indexing,
+st-direct|simpleterm with direct-color indexing,
use=xterm+indirect, use=st,
-vte-direct|vte with direct-color indexing,
+vte-direct|VTE with direct-color indexing,
use=xterm+indirect, use=vte,
# reportedly in Apple's Mohave (fall 2018), but untested -TD
nsterm-direct|nsterm with direct-color indexing,
@@ -5182,31 +5456,31 @@ nsterm-direct|nsterm with direct-color indexing,
# palette, though the intrusion of indexed colors on the direct-color space
# would be more noticeable.
-xterm+direct16|xterm with direct-color indexing,
+xterm+direct16|xterm with direct-color indexing (16-color building-block),
CO#16,
- setab=\E[%?%p1%{8}%<%t4%p1%d%e%?%p1%{16}%<%t%p1%{92}%+%e48\:
- 2\:\:%p1%{65536}%/%d\:%p1%{256}%/%{255}%&%d\:%p1%{255}
- %&%d%;%;m,
- setaf=\E[%?%p1%{8}%<%t3%p1%d%e%?%p1%{16}%<%t%p1%'R'%+%e38\:2
- \:\:%p1%{65536}%/%d\:%p1%{256}%/%{255}%&%d\:%p1%{255}
- %&%d%;%;m,
+ setab=\E[%?%p1%{8}%<%t4%p1%d%e%?%p1%{16}%<%t%p1%{92}%+%d%e48
+ :2::%p1%{65536}%/%d:%p1%{256}%/%{255}%&%d:%p1%{255}%&
+ %d%;%;m,
+ setaf=\E[%?%p1%{8}%<%t3%p1%d%e%?%p1%{16}%<%t%p1%'R'%+%d%e38:
+ 2::%p1%{65536}%/%d:%p1%{256}%/%{255}%&%d:%p1%{255}%&%d
+ %;%;m,
setb@, setf@, use=xterm+direct,
xterm-direct16|xterm with direct-colors and 16 indexed colors,
- use=xterm, use=xterm+direct16,
+ use=xterm+direct16, use=xterm,
-xterm+direct256|xterm with direct-color indexing,
+xterm+direct256|xterm with direct-color indexing (256-color building-block),
CO#0x100,
setab=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e%?
- %p1%{256}%<%t48;5;%p1%d%e48\:2\:\:%p1%{65536}%/%d\:%p1
- %{256}%/%{255}%&%d\:%p1%{255}%&%d%;%;m,
+ %p1%{256}%<%t48;5;%p1%d%e48:2::%p1%{65536}%/%d:%p1
+ %{256}%/%{255}%&%d:%p1%{255}%&%d%;%;m,
setaf=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e%?
- %p1%{256}%<%t38;5;%p1%d%e38\:2\:\:%p1%{65536}%/%d\:%p1
- %{256}%/%{255}%&%d\:%p1%{255}%&%d%;%;m,
+ %p1%{256}%<%t38;5;%p1%d%e38:2::%p1%{65536}%/%d:%p1
+ %{256}%/%{255}%&%d:%p1%{255}%&%d%;%;m,
setb@, setf@, use=xterm+direct,
xterm-direct256|xterm with direct-colors and 256 indexed colors,
- use=xterm, use=xterm+direct256,
+ use=xterm+direct256, use=xterm,
#### XTERM Features
@@ -5228,12 +5502,15 @@ xterm-direct256|xterm with direct-colors and 256 indexed colors,
# Se resets the cursor style to the terminal power-on default.
#
# Cs and Cr set and reset the cursor colour.
-xterm+tmux|advanced xterm features used in tmux,
+xterm+tmux|advanced xterm features used in tmux (cursor style 2),
Cr=\E]112\007, Cs=\E]12;%p1%s\007,
Ms=\E]52;%p1%s;%p2%s\007, Se=\E[2 q, Ss=\E[%p1%d q,
+xterm+tmux2|advanced xterm features used in tmux,
+ Cr=\E]112\E\\, Cs=\E]12;%p1%s\E\\,
+ Ms=\E]52;%p1%s;%p2%s\E\\, Se=\E[ q, Ss=\E[%p1%d q,
# This is another variant, for XFree86 4.0 xterm (T.Dickey)
-# This is an 8-bit version of xterm, which emulates DEC vt220 with ANSI color.
+# This is an 8-bit version of xterm, which emulates DEC VT220 with ANSI color.
# To use it, your decTerminalID resource must be set to 200 or above.
#
# HTS \E H \210
@@ -5244,7 +5521,6 @@ xterm+tmux|advanced xterm features used in tmux,
xterm-8bit|xterm terminal emulator 8-bit controls (X Window System),
OTbs, am, bce, km, mc5i, mir, msgr, npc, xenl, AX,
colors#8, cols#80, it#8, lines#24, pairs#64,
- acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
bel=^G, blink=\2335m, bold=\2331m, cbt=\233Z,
civis=\233?25l, clear=\233H\2332J,
cnorm=\233?25l\233?25h, cr=\r, csr=\233%i%p1%d;%p2%dr,
@@ -5269,9 +5545,8 @@ xterm-8bit|xterm terminal emulator 8-bit controls (X Window System),
kf9=\23320~, khome=\2331~, kich1=\2332~, kmous=\233M,
knp=\2336~, kpp=\2335~, mc0=\233i, mc4=\2334i, mc5=\2335i,
meml=\El, memu=\Em, op=\23339;49m, rc=\E8, rev=\2337m,
- ri=\215, rmacs=\E(B, rmam=\233?7l, rmcup=\233?1049l,
- rmir=\2334l, rmkx=\233?1l\E>, rmso=\23327m, rmul=\23324m,
- rs1=\Ec,
+ ri=\215, rmam=\233?7l, rmcup=\233?1049l, rmir=\2334l,
+ rmkx=\233?1l\E>, rmso=\23327m, rmul=\23324m, rs1=\Ec,
rs2=\E[62"p\E\sG\233m\233?7h\E>\E7\233?1;3;4;6l\2334l\233r
\E8,
sc=\E7, setab=\2334%p1%dm, setaf=\2333%p1%dm,
@@ -5281,70 +5556,79 @@ xterm-8bit|xterm terminal emulator 8-bit controls (X Window System),
%{6}%=%t3%e%p1%d%;m,
sgr=\2330%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?
%p7%t;8%;m%?%p9%t\E(0%e\E(B%;,
- sgr0=\2330m\E(B, smacs=\E(0, smam=\233?7h,
- smcup=\233?1049h, smir=\2334h, smkx=\233?1h\E=,
- smso=\2337m, smul=\2334m, tbc=\2333g, u6=\233[%i%d;%dR,
- u7=\E[6n, u8=\233[?%[;0123456789]c, u9=\E[c,
- vpa=\233%i%p1%dd, use=xterm+kbs,
+ sgr0=\2330m\E(B, smam=\233?7h, smcup=\233?1049h,
+ smir=\2334h, smkx=\233?1h\E=, smso=\2337m, smul=\2334m,
+ tbc=\2333g, u6=\233[%i%d;%dR, u8=\233[?%[;0123456789]c,
+ vpa=\233%i%p1%dd, use=ansi+enq, use=xterm+acs,
+ use=xterm+kbs,
+# Note: normally xterm supports modified function-keys as described in
+# XTerm - "Other" modified keys
+# https://invisible-island.net/xterm/modified-keys.html
+#
+# However, xterm-hp, xterm-sco and xterm-sun assume no modifiers. Here is
+# a simple script which demonstrates these descriptions:
+# #!/bin/sh
+# export TERM=xterm-$1
+# xterm \
+# -kt $1 \
+# -fs 16 -fa mono \
+# -title $TERM \
+# -tn $TERM \
+# -xrm '*modifyCursorKeys:-1' \
+# -xrm '*modifyFunctionKeys:-1' \
+# -e tack
+# e.g., "foo sun" if the script is named "foo" -TD
xterm-hp|xterm with hpterm function keys,
- kclr=\EJ, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
- kdch1=\EP, kend=\EF, kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es,
- kf5=\Et, kf6=\Eu, kf7=\Ev, kf8=\Ew, khome=\Eh, kich1=\EQ,
- knp=\ES, kpp=\ET, use=xterm+nofkeys,
+ kclr=\EJ, kdch1=\EP, kend=\EF, khome=\Eh, kich1=\EQ, knp=\ES,
+ kpp=\ET, use=hp+pfk-cr, use=vt52+arrows,
+ use=xterm+nofkeys, use=xterm+nopcfkeys,
xterm-sco|xterm with SCO function keys,
- kbeg=\E[E, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=^?, kend=\E[F, kf1=\E[M, kf10=\E[V, kf11=\E[W,
- kf12=\E[X, kf13=\E[Y, kf14=\E[Z, kf15=\E[a, kf16=\E[b,
- kf17=\E[c, kf18=\E[d, kf19=\E[e, kf2=\E[N, kf20=\E[f,
- kf21=\E[g, kf22=\E[h, kf23=\E[i, kf24=\E[j, kf25=\E[k,
- kf26=\E[l, kf27=\E[m, kf28=\E[n, kf29=\E[o, kf3=\E[O,
- kf30=\E[p, kf31=\E[q, kf32=\E[r, kf33=\E[s, kf34=\E[t,
- kf35=\E[u, kf36=\E[v, kf37=\E[w, kf38=\E[x, kf39=\E[y,
- kf4=\E[P, kf40=\E[z, kf41=\E[@, kf42=\E[[, kf43=\E[\\,
- kf44=\E[], kf45=\E[\^, kf46=\E[_, kf47=\E[`, kf48=\E[{,
- kf5=\E[Q, kf6=\E[R, kf7=\E[S, kf8=\E[T, kf9=\E[U, khome=\E[H,
+ kbeg=\E[E, kbs=^?, kdch1=^?, kend=\E[F, kf1=\E[M, kf10=\E[V,
+ kf11=\E[W, kf12=\E[X, kf13=\E[Y, kf14=\E[Z, kf15=\E[a,
+ kf16=\E[b, kf17=\E[c, kf18=\E[d, kf19=\E[e, kf2=\E[N,
+ kf20=\E[f, kf21=\E[g, kf22=\E[h, kf23=\E[i, kf24=\E[j,
+ kf25=\E[k, kf26=\E[l, kf27=\E[m, kf28=\E[n, kf29=\E[o,
+ kf3=\E[O, kf30=\E[p, kf31=\E[q, kf32=\E[r, kf33=\E[s,
+ kf34=\E[t, kf35=\E[u, kf36=\E[v, kf37=\E[w, kf38=\E[x,
+ kf39=\E[y, kf4=\E[P, kf40=\E[z, kf41=\E[@, kf42=\E[[,
+ kf43=\E[\\, kf44=\E[], kf45=\E[\^, kf46=\E[_, kf47=\E[`,
+ kf48=\E[{, kf5=\E[Q, kf6=\E[R, kf7=\E[S, kf8=\E[T, kf9=\E[U,
kich1=\E[L, kmous=\E[>M, knp=\E[G, kpp=\E[I,
- use=xterm+nofkeys,
+ use=ansi+arrows, use=xterm+nofkeys,
# The xterm-new description has all of the features, but is not completely
-# compatible with vt220. If you are using a Sun or PC keyboard, set the
+# compatible with VT220. If you are using a Sun or PC keyboard, set the
# sunKeyboard resource to true:
# + maps the editing keypad
# + interprets control-function-key as a second array of keys, so a
-# 12-fkey keyboard can support vt220's 20-fkeys.
+# 12-fkey keyboard can support VT220's 20-fkeys.
# + maps numeric keypad "+" to ",".
# + uses DEC-style control sequences for the application keypad.
#
-xterm-vt220|xterm emulating vt220,
+xterm-vt220|xterm emulating VT220,
npc,
- kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kend=\E[4~, kent=\EOM, kf10=\E[21~, kf11=\E[23~,
+ kcbt=\E[Z, kend=\E[4~, kf10=\E[21~, kf11=\E[23~,
kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
kf20=\E[34~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
- kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kich1=\E[2~,
- kmous=\E[M, knp=\E[6~, kpp=\E[5~, nel=\EE, use=xterm+app,
- use=xterm+edit, use=vt220+keypad, use=ecma+italics,
- use=ecma+index, use=ansi+rep, use=ecma+strikeout,
- use=xterm+sm+1006, use=xterm+tmux, use=ecma+italics,
- use=xterm+keypad, use=xterm-basic,
+ kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kmous=\E[M, nel=\EE,
+ use=xterm+app, use=xterm+edit, use=vt220+keypad,
+ use=ecma+italics, use=ecma+index, use=ansi+rep,
+ use=ecma+strikeout, use=xterm+focus, use=xterm+sm+1006,
+ use=xterm+tmux, use=xterm+keypad, use=xterm-basic,
-xterm-vt52|xterm emulating dec vt52,
- cols#80, it#8, lines#24,
+xterm-vt52|xterm emulating DEC VT52,
acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, clear=\EH\EJ, cr=\r, cub1=\ED, cud1=\EB, cuf1=\EC,
- cup=\EY%p1%' '%+%c%p2%' '%+%c, cuu1=\EA, ed=\EJ, el=\EK,
- home=\EH, ht=^I, ind=\n, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
- kcuu1=\EA, nel=\r\n, ri=\EI, rmacs=\EG, smacs=\EF,
- use=xterm+kbs, use=vt52+keypad,
+ clear=\EH\EJ, rmacs=\EG, smacs=\EF, use=xterm+kbs,
+ use=vt52+keypad, use=vt52-basic,
xterm-noapp|xterm with cursor keys in normal mode,
rmcup@, rmkx=\E>, smcup@, smkx=\E=, use=xterm+noapp,
use=xterm,
-xterm-24|vs100|xterms|xterm terminal emulator (X Window System),
+xterm-24|vs100|xterms|xterm terminal emulator 24-line (X Window System),
lines#24, use=xterm-old,
# This is xterm for ncurses.
@@ -5365,6 +5649,24 @@ xterm-utf8|xterm with no VT100 line-drawing in UTF-8 mode,
# window managers such as twm (and possibly window managers descended from
# it such as tvtwm, ctwm, and vtwm) track windows by icon-name. Thus, you
# don't want to mess with icon-name when using those window managers.
+# c) fsl ends the escape sequence begun by tsl. Printable characters between
+# those (probably) will appear in the window title. Nonprintable characters
+# may cause the escape sequence to end with an error.
+# d) the BEL (^G or \007) used in the original title-as-statusline came from
+# David J. MacKenzie's "pseudo-color" entry in 20 Apr 1995. At that time
+# xterm used BEL as the string-terminator rather than ST (\E\\). Either
+# BEL or ST has worked since xterm patch #28 in 1996, but most uses of
+# this feature have been embedded in shell scripts.
+#
+# But that issue regarding the parameter for tsl means that applications may
+# not rely on it. The SVr4 documentation says tsl will "move to status line,
+# column #1". At the point in time when ESR added DJM's "pseudo-color" entry
+# with the split-up escape sequence for tsl/fsl, there were 65 entries using
+# tsl:
+# 32 used a parameter, matching the documentation (including x10term).
+# 21 used a parameterless control, exiting from the status line on ^M.
+# 6 used parameterless controls for tsl and fsl
+# 6 used a split-up escape sequence, e.g., the same approach.
#
# The extension "TS" is preferable, because it does not accept a parameter.
# However, if you are using a non-extended terminfo, "TS" is not visible.
@@ -5374,8 +5676,11 @@ xterm+sl|access X title line and icon name,
xterm+sl-twm|access X title line (pacify twm-descended window managers),
hs,
dsl=\E]2;\007, fsl=^G, tsl=\E]2;, TS=\E]2;,
+xterm+sl-alt|alternate access X title line,
+ hs,
+ dsl=\E]2;\E\\, fsl=\E\\, tsl=\E]2;, TS=\E]2;,
-# In contrast, this block can be used for a DEC vt320 and up. There are two
+# In contrast, this block can be used for a DEC VT320 and up. There are two
# controls used.
#
# DECSASD (select active status display)
@@ -5403,7 +5708,7 @@ xterm+sl-twm|access X title line (pacify twm-descended window managers),
#
dec+sl|DEC VTxx status line,
eslok, hs,
- dsl=\E[1$~, fsl=\E[0$}, tsl=\E[2$~\E[1$}\E[%i%p1%d`,
+ dsl=\E[0$~, fsl=\E[0$}, tsl=\E[2$~\E[1$}\E[%i%p1%d`,
#
# The following xterm variants don't depend on your base version
@@ -5421,6 +5726,33 @@ xterm-nic|xterm with ich/ich1 suppressed for non-curses programs,
xterm1|xterm terminal emulator ignoring the alternate screen buffer,
rmcup@, smcup@, use=xterm,
+# https://invisible-island.net/xterm/xterm-paste64.html
+#
+# Bracketed paste was introduced by xterm patch #203 in May 2005, as part of a
+# larger feature for manipulating the clipboard selection. Few terminals aside
+# from xterm fully implement the clipboard feature, but several copy this
+# detail. The names for the extended capabilities here were introduced by vim
+# in January 2017, but used internally. In 2023, vim patch 9.0.1117 is needed
+# to work with this change.
+bracketed+paste|xterm bracketed paste,
+ BD=\E[?2004l, BE=\E[?2004h, PE=\E[201~, PS=\E[200~,
+
+# https://invisible-island.net/xterm/xterm.log.html#xterm_354
+#
+# The response is a DSR sequence identifying the version: DCS > | text ST
+# For example:
+# ^[P>|XTerm(354)^[\
+report+version|Report xterm name and version (XTVERSION),
+ XR=\E[>0q, xr=\EP>\\|[ -~]+\E\\\\, use=report+da2,
+
+# Vim uses RV to denote the secondary device attributes. Xterm documents the
+# - first parameter as the terminal type (extending it to VT100),
+# - the second as the patch number for xterm, and
+# - the third parameter as zero.
+# Other terminals may provide useful responses, though few are documented.
+report+da2|report secondary device attributes (DA2),
+ RV=\E[>c, rv=\E\\[[0-9]+;[0-9]+;[0-9]+c,
+
#### XTERM Mouse
# The xterm mouse protocol is used by other terminal emulators.
# In this section, two extended capabilities are used to illustrate the mouse
@@ -5469,7 +5801,7 @@ xterm-x10mouse|X10 xterm mouse,
# X11R4 (December 1989) added the control sequences document, listing the
# control sequences for the X10/X11 protocols without descriptions. It also
# mentioned the "emacs" ("T") response. Comments in button.c referred to the
-# X11 protocol as "DEC vt200 compatible", although DEC offered no such terminal.
+# X11 protocol as "DEC VT200 compatible", although DEC offered no such terminal.
#
# X11R5 (November 1993) gave a description of the mouse protocol.
#
@@ -5502,17 +5834,32 @@ xterm-x11hilite|X11 mouse with highlight,
# xterm patch #83 (1998/10/7), added Jason Bacon's changes to provide an
# "any-event" mouse mode.
-xterm+sm+1002|xterm any-event mouse,
- kmous=\E[M, XM=\E[?1002%?%p1%{1}%=%th%el%;,
-xterm-1002|xterm any-event mouse,
- use=xterm+sm+1002, use=xterm,
+#
+# These building blocks incorporate later features as well:
+# xterm patch #224 (2007/2/11) added private mode 1004, for enabling/disabling
+# focus in/out event reporting.
+# xterm patch #277 (2012/01/07) added private mode 1006
-xterm+sm+1003|testing xterm-mouse,
- kmous=\E[M, XM=\E[?1003%?%p1%{1}%=%th%el%;,
+xterm+sm+1002|xterm any-button mouse,
+ kmous=\E[<, XM=\E[?1006;1004;1002%?%p1%{1}%=%th%el%;,
+ xm=\E[<%i%p3%d;%p1%d;%p2%d;%?%p4%tM%em%;,
+ use=xterm+focus,
+xterm-1002|example of xterm any-button mouse,
+ use=xterm+sm+1002, use=xterm,
-xterm-1003|testing xterm-mouse,
+xterm+sm+1003|xterm any-event mouse,
+ XM=\E[?1006;1004;1003%?%p1%{1}%=%th%el%;,
+ use=xterm+sm+1002,
+xterm-1003|example of xterm any-event mouse,
use=xterm+sm+1003, use=xterm,
+# Some terminal emulators implement xterm focus in/out, but do it incorrectly,
+# interfering with user applications.
+# https://lists.gnu.org/archive/html/bug-ncurses/2023-10/msg00087.html
+xterm+focus|xterm focus-in/out event "keys",
+ XF,
+ fd=\E[?1004l, fe=\E[?1004h, kxIN=\E[I, kxOUT=\E[O,
+
# xterm patch #116 (1999/9/25) added Stephen P Wall's changes to support DEC
# locator mode.
@@ -5526,7 +5873,7 @@ xterm-1003|testing xterm-mouse,
# where the coordinates in the mouse response would be encoded in UTF-8,
# thereby extending the range of coordinates past 222=(255-33). This is the
# "1005" mouse mode.
-xterm+sm+1005|xterm UTF-8 mouse,
+xterm+sm+1005|xterm UTF-8 mouse (building block),
kmous=\E[M, XM=\E[?1005;1000%?%p1%{1}%=%th%el%;,
xm=\E[M%?%p4%t3%e%p3%'\s'%+%c%;%p2%'!'%+%u%p1%'!'%+%u,
xterm-1005|xterm UTF-8 mouse,
@@ -5543,12 +5890,19 @@ xterm-1005|xterm UTF-8 mouse,
# As an alternative (and fixing the longstanding limitation of X11 mouse
# protocol regarding button-releases), I provided the 1006 mode, referring
# to it as "SGR 1006" since the replies resemble the SGR control string:
-xterm+sm+1006|xterm SGR-mouse,
+xterm+sm+1006|xterm SGR-mouse (building block),
kmous=\E[<, XM=\E[?1006;1000%?%p1%{1}%=%th%el%;,
xm=\E[<%i%p3%d;%p1%d;%p2%d;%?%p4%tM%em%;,
xterm-1006|xterm SGR-mouse,
use=xterm+sm+1006, use=xterm,
+# Some terminal emulators implement xterm focus in/out, but do it incorrectly,
+# interfering with user applications.
+# https://lists.gnu.org/archive/html/bug-ncurses/2023-10/msg00087.html
+oldxterm+sm+1006|xterm SGR-mouse (building block),
+ kmous=\E[<, XM=\E[?1006;1000%?%p1%{1}%=%th%el%;,
+ xm=\E[<%i%p3%d;%p1%d;%p2%d;%?%p4%tM%em%;,
+
#### KTERM
# (kterm: this had extension capabilities ":KJ:TY=ascii:" -- esr)
# (kterm should not invoke DEC Graphics as the alternate character set
@@ -5557,15 +5911,14 @@ xterm-1006|xterm SGR-mouse,
# -- MATSUMOTO Shoji)
# kterm implements acsc via built-in table of X Drawable's
kterm|kterm kanji terminal emulator (X window system),
- eslok, hs, XT,
+ XT,
ncv@,
- acsc=``aajjkkllmmnnooppqqrrssttuuvvwwxx~~,
- csr=\E[%i%p1%d;%p2%dr, dsl=\E[?H, enacs=, fsl=\E[?F,
- kmous=\E[M, rc=\E8, rmacs=\E(B, rmam=\E[?7l, sc=\E7,
+ acsc=``aajjkkllmmnnooppqqrrssttuuvvwwxx~~, enacs=,
+ rmacs=\E(B, rmam=\E[?7l,
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e
\E(B%;,
- sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h,
- tsl=\E[?E\E[?%i%p1%dT, use=xterm-r6, use=ecma+color,
+ sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, use=x10term+sl,
+ use=xterm-r6, use=ecma+color,
kterm-color|kterm-co|kterm with ANSI colors,
ncv@, use=kterm, use=ecma+color,
@@ -5578,34 +5931,31 @@ xtermm|xterm terminal emulator (monochrome),
OTbs, am, km, mir, msgr, xenl,
btns#3, cols#80, it#8, lines#24,
acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink@, bold=\E[1m, clear=\E[H\E[2J, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
- cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
- el=\E[K, el1=\E[1K$<3>, enacs=\E(B\E)0, getm=\E[%p1%dY,
- home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
- il=\E[%p1%dL, il1=\E[L, ind=\n, kbs=^H, kcub1=\EOD,
- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kend=\E[Y, kf0=\EOy,
- kf10=\EOY, kf11=\EOZ, kf12=\EOA, kf5=\EOT, kf6=\EOU,
- kf7=\EOV, kf8=\EOW, kf9=\EOX, khome=\E[H, kmous=\E[^_,
- knp=\E[U, kpp=\E[V, rc=\E8, reqmp=\E[492Z, rev=\E[7m, ri=\EM,
- rmacs=^O, rmcup=\E@0\E[?4r, rmso=\E[m,
+ bel=^G, blink@, bold=\E[1m, clear=\E[H\E[2J, cr=\r, cud1=\n,
+ dch=\E[%p1%dP, dch1=\E[P, el1=\E[1K$<3>, enacs=\E(B\E)0,
+ getm=\E[%p1%dY, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
+ ind=\n, kend=\E[Y, kf0=\EOy, kf10=\EOY, kf11=\EOZ, kf12=\EOA,
+ kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW, kf9=\EOX, khome=\E[H,
+ kmous=\E[^_, knp=\E[U, kpp=\E[V, reqmp=\E[492Z, rev=\E[7m,
+ ri=\EM, rmacs=^O, rmcup=\E@0\E[?4r,
rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H,
- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
+ rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5
%;m%?%p9%t\016%e\017%;,
sgr0=\E[m\017, smacs=^N, smcup=\E@0\E[?4s\E[?4h\E@1,
- smso=\E[7m, tbc=\E[3g, use=vt100+fnkeys,
+ tbc=\E[3g, use=ansi+apparrows, use=ansi+csr,
+ use=ansi+cup, use=ansi+erase, use=ansi+idl,
+ use=ansi+local, use=ansi+sgrso, use=decid+cpr,
+ use=vt100+fnkeys,
xtermc|xterm terminal emulator (color),
- colors#8, ncv#7, pairs#64,
- op=\E[100m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+ ncv#7,
+ op=\E[100m,
setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}
%=%t3%e%p1%d%;m,
setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}
%=%t3%e%p1%d%;m,
- use=xtermm,
+ use=xtermm, use=klone+color,
# From: David J. MacKenzie <djm@va.pubnix.com> 20 Apr 1995
# Here's a termcap entry I've been using for xterm_color, which comes
@@ -5619,8 +5969,25 @@ xterm-pcolor|xterm with color used for highlights and status line,
%t;7;31%;%?%p3%t;7;34%;m,
smso=\E[7;31m, smul=\E[4;42m, use=xterm+sl, use=xterm-r6,
+# This was mentioned
+# http://unix.stackexchange.com/questions/119/colors-in-man-pages
+# pointing to
+# http://nion.modprobe.de/blog/archives/569-colored-manpages.html
+# (blog posting by Nico Golde, June 24 2007)
+# archive:
+# https://web-beta.archive.org/web/20070921042430/http://nion.modprobe.de/mostlike.txt
+# The comment hints where it started, but there are differences:
+# Reconstructed via infocmp from file: /usr/share/terminfo/x/xterm-pcolor
+mostlike|manpages with color looking like most,
+ OTbs@,
+ bold=\E[1m\E[31m,
+ is2=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>, kbs=^H,
+ meml@, memu@, rev=\E[7m\E[34m,
+ rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>, sgr@,
+ smso=\E[1;30m\E[47m, smul=\E[32m, TS@, use=xterm-pcolor,
+
# This describes the capabilities of color_xterm, an xterm variant from
-# before ECMA-64 color support was folded into the main-line xterm release.
+# before ECMA-48 color support was folded into the main-line xterm release.
# This entry is straight from color_xterm's maintainer.
# From: Jacob Mandelson <jlm@ugcs.caltech.edu>, 09 Nov 1996
# The README's with the distribution also say that it supports SGR 21, 24, 25
@@ -5629,28 +5996,52 @@ color_xterm|cx|cx100|color_xterm color terminal emulator for X,
OTbs, am, km, mir, msgr, xenl, XT,
cols#80, it#8, lines#65, ncv@,
acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
+ bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=\r, cub1=^H, cud1=\n,
+ cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\E[P, ed=\E[J,
el=\E[K, el1=\E[1K, enacs=\E(B\E)0, home=\E[H, ht=^I,
- ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\n,
- is1=\E[r\E[m\E[?7h\E[?4;6l\E[4l, kbs=^H, kcub1=\EOD,
- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kend=\E[8~, kf1=\E[11~,
- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf2=\E[12~,
- kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
- kf8=\E[19~, kf9=\E[20~, khome=\E[7~, kich1=\E[2~,
- kmous=\E[M, knp=\E[6~, kpp=\E[5~, rc=\E8, rev=\E[7m, ri=\EM,
- rmacs=^O, rmam=\E[?7l, rmcup=\E>\E[?41;1r, rmir=\E[4l,
- rmso=\E[27m, rmul=\E[24m,
+ ich=\E[%p1%d@, ind=\n, is1=\E[r\E[m\E[?7h\E[?4;6l\E[4l,
+ kend=\E[8~, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~,
+ kf12=\E[24~, kf2=\E[12~, kf3=\E[13~, kf4=\E[14~,
+ kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+ khome=\E[7~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
+ rev=\E[7m, ri=\EM, rmacs=^O, rmam=\E[?7l,
+ rmcup=\E>\E[?41;1r, rmir=\E[4l, rmso=\E[27m, rmul=\E[24m,
rs1=\E(B\017\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E<,
- sc=\E7,
sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5
%;m%?%p9%t\016%e\017%;,
sgr0=\E[0m\017, smacs=^N, smam=\E[?7h,
smcup=\E[?1;41s\E[?1;41h\E=, smir=\E[4h, smso=\E[7m,
- smul=\E[4m, use=ecma+color, use=vt220+keypad,
+ smul=\E[4m, use=ansi+apparrows, use=ansi+csr,
+ use=ansi+idl, use=ansi+local, use=decid+cpr,
+ use=ecma+color, use=vt220+keypad,
+
+# The IRAF source has a terminfo using "xterm-r5", but line-drawing does not
+# work in that case. This entry uses xterm+acs, to work around that problem.
+#
+# Home/end keys do not work, due to a bug in the X Consortium xterm on which
+# this is based:
+#
+# https://invisible-island.net/xterm/xterm.faq.html#bug_xterm_r6
+#
+# Comparing to the X11R5 source, xgterm has dynamic and ANSI colors (probably
+# not bce). It interchanges mouse buttons 2/3 for menus.
+#
+# It also has a few features found in later versions of xterm:
+# - vi-button and dired-button,
+# - i18n stuff like X11R6.
+# - colorBD, colorUL
+# - scrollBarRight
+#
+# Debian provides a package for xgterm (and iraf). Although the source for
+# xgterm implements the control-sequences for ANSI color, the packaged xgterm
+# does nothing with those, even after installing the app-defaults file which
+# was overlooked by the Debian packager.
+xgterm|graphic terminal for IRAF,
+ enacs=\E(B\E)0, rmacs=^O,
+ sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m%?%p9%t
+ \016%e\017%;,
+ sgr0=\E[m\017, smacs=^N, use=xterm+acs, use=xterm-r5,
+ use=xterm+keypad,
# The 'nxterm' distributed with Redhat Linux 5.2 is a slight rehack of
# xterm-sb_right-ansi-3d, which implements ANSI colors, but does not support
@@ -5675,8 +6066,7 @@ xterm-color|nxterm|generic color xterm,
# with their Sun keyboard labels instead.
# From: Simon J. Gerraty <sjg@zen.void.oz.au> 10 Jan 1996
xterm-sun|xterm with sunFunctionKeys true,
- kb2=\E[218z, kcpy=\E[197z, kcub1=\EOD, kcud1=\EOB,
- kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3z, kend=\E[220z,
+ kb2=\E[218z, kcpy=\E[197z, kdch1=\E[3z, kend=\E[220z,
kent=\EOM, kf1=\E[224z, kf10=\E[233z, kf11=\E[192z,
kf12=\E[193z, kf13=\E[194z, kf14=\E[195z, kf15=\E[196z,
kf17=\E[198z, kf18=\E[199z, kf19=\E[200z, kf2=\E[225z,
@@ -5687,25 +6077,27 @@ xterm-sun|xterm with sunFunctionKeys true,
kf5=\E[228z, kf6=\E[229z, kf7=\E[230z, kf8=\E[231z,
kf9=\E[232z, kfnd=\E[200z, khlp=\E[196z, khome=\E[214z,
kich1=\E[2z, knp=\E[222z, kpp=\E[216z, kund=\E[195z,
- use=xterm+nofkeys,
+ use=xterm+kbs, use=ansi+apparrows, use=xterm+nofkeys,
+ use=xterm+nopcfkeys,
+
xterms-sun|small (80x24) xterm with sunFunctionKeys true,
- cols#80, lines#24, use=xterm-sun,
+ use=xterm-sun,
#### GNOME (VTE)
-# this describes the alpha-version of Gnome terminal shipped with Redhat 6.0
-gnome-rh62|Gnome terminal,
+# this describes the alpha-version of GNOME terminal shipped with Redhat 6.0
+gnome-rh62|GNOME terminal,
bce,
kdch1=^?, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
- use=xterm-color,
+ use=linux+kbs, use=xterm-color,
# GNOME Terminal 1.4.0.4 (Redhat 7.2)
#
-# This implements a subset of vt102 with a random selection of features from
+# This implements a subset of VT102 with a random selection of features from
# other terminals such as color and function-keys.
#
# shift-f1 to shift-f10 are f11 to f20
#
-# NumLock changes the application keypad to approximate vt100 keypad, except
+# NumLock changes the application keypad to approximate VT100 keypad, except
# that there is no escape sequence matching comma (,).
#
# Other defects observed:
@@ -5716,20 +6108,19 @@ gnome-rh62|Gnome terminal,
# vt100 TBC (tab reset) is not implemented.
# xterm alternate screen controls do not restore cursor position properly
# it hangs in tack after running function-keys test.
-gnome-rh72|GNOME Terminal,
+gnome-rh72|GNOME Terminal in RedHat 7,
bce, km@,
- kdch1=\E[3~, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
- rmam=\E[?7l,
+ kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, rmam=\E[?7l,
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m%?%p9%t\016%e
\017%;,
sgr0=\E[0m\017, smam=\E[?7h, tbc@, use=vt220+cvis,
- use=xterm-color,
+ use=linux+kbs, use=xterm-color,
# GNOME Terminal 2.0.1 (Redhat 8.0)
#
-# Documentation now claims it implements vt220 (which is demonstrably false).
-# However, it does implement ECH, which is a vt220 feature. And there are
-# workable vt100 LNM, DECALN, DECSNM modes, making it possible to display
+# Documentation now claims it implements VT220 (which is demonstrably false).
+# However, it does implement ECH, which is a VT220 feature. And there are
+# workable VT100 LNM, DECALN, DECSNM modes, making it possible to display
# more of its bugs using vttest.
#
# However, note that bce and msgr are broken in this release. Tabs (tbc and
@@ -5738,24 +6129,23 @@ gnome-rh72|GNOME Terminal,
# kf1 and kf10 are not tested since they're assigned (hardcoded?) to menu
# operations. Shift-tab generates a distinct sequence so it can be argued
# that it implements kcbt.
-gnome-rh80|GNOME Terminal,
+gnome-rh80|GNOME Terminal in RedHat 8,
bce@, msgr@,
- ech=\E[%p1%dX, flash=\E[?5h$<100/>\E[?5l, kbs=^?,
- kcbt=\E^I, op=\E[39;49m, use=gnome-rh72,
+ ech=\E[%p1%dX, flash=\E[?5h$<100/>\E[?5l, kcbt=\E^I,
+ op=\E[39;49m, use=gnome-rh72,
# GNOME Terminal 2.2.1 (Redhat 9.0)
#
# bce and msgr are repaired.
-gnome-rh90|GNOME Terminal,
+gnome-rh90|GNOME Terminal in RedHat 9,
bce, msgr, XT,
- hpa=\E[%i%p1%dG, kDC=\E[3;2~, kLFT=\EO2D, kRIT=\EO2C,
- kb2=\E[E, kcbt=\E[Z, kend=\EOF, khome=\EOH, tbc=\E[3g,
- vpa=\E[%i%p1%dd, use=xterm+pcf0, use=xterm+pcfkeys,
- use=gnome-rh80,
+ hpa=\E[%i%p1%dG, kLFT=\EO2D, kRIT=\EO2C, kb2=\E[E,
+ kcbt=\E[Z, tbc=\E[3g, vpa=\E[%i%p1%dd, use=xterm+pcf0,
+ use=xterm+pcfkeys, use=gnome-rh80,
# GNOME Terminal 2.14.2 (Fedora Core 5)
# Ed Catmur notes that gnome-terminal has recognized soft-reset since May 2002.
-gnome-fc5|GNOME Terminal,
+gnome-fc5|GNOME Terminal in Fedora Core 5,
rs1=\Ec,
rs2=\E7\E[r\E8\E[m\E[?7h\E[!p\E[?1;3;4;6l\E[4l\E>\E[?1000l
\E[?25h,
@@ -5776,9 +6166,9 @@ gnome-2007|GNOME Terminal snapshot 2.18.1,
# GNOME Terminal 2.22.3 (2008 snapshot)
#
-# In vttest, it claims to be a vt220 with national replacement character-sets,
+# In vttest, it claims to be a VT220 with national replacement character-sets,
# but aside from the identifier string, implements only a small fraction of
-# vt220's behavior, which will make it less usable on a VMS system (unclear
+# VT220's behavior, which will make it less usable on a VMS system (unclear
# what the intent of the developer is, since the NRC feature exposed in vttest
# by this change does not work).
vte-2008|VTE in GNOME Terminal snapshot 2.22.3,
@@ -5819,15 +6209,14 @@ gnome-2012|GNOME Terminal 3.6.0,
#
# The parameters with \EO (SS3) are technically an error, since SS3 should have
# no parameters. This appears to be rote copying based on xterm+pcc0.
-vte+pcfkeys|VTE's variation on xterm+pcfkeys,
- kf1=\EOP, kf13=\EO1;2P, kf14=\EO1;2Q, kf15=\EO1;2R,
- kf16=\EO1;2S, kf2=\EOQ, kf25=\EO1;5P, kf26=\EO1;5Q,
- kf27=\EO1;5R, kf28=\EO1;5S, kf3=\EOR, kf37=\EO1;6P,
- kf38=\EO1;6Q, kf39=\EO1;6R, kf4=\EOS, kf40=\EO1;6S,
+vte+pcfkeys|VTE's variation on xterm+pcfkeys (building block),
+ kf13=\EO1;2P, kf14=\EO1;2Q, kf15=\EO1;2R, kf16=\EO1;2S,
+ kf25=\EO1;5P, kf26=\EO1;5Q, kf27=\EO1;5R, kf28=\EO1;5S,
+ kf37=\EO1;6P, kf38=\EO1;6Q, kf39=\EO1;6R, kf40=\EO1;6S,
kf49=\EO1;3P, kf50=\EO1;3Q, kf51=\EO1;3R, kf52=\EO1;3S,
kf61=\EO1;4P, kf62=\EO1;4Q, kf63=\EO1;4R,
use=xterm+pcfkeys,
-gnome+pcfkeys|VTE's variation on xterm+pcfkeys,
+gnome+pcfkeys|GHOME Terminal's variation on xterm+pcfkeys (building block),
use=vte+pcfkeys,
# deprecated - use "vte" for newer versions
@@ -5857,12 +6246,13 @@ vte-2014|VTE 0.35.1,
ncv@,
cbt=\E[Z, el1=\E[1K, flash=\E[?5h$<100/>\E[?5l,
ich=\E[%p1%d@, kent=\EOM, use=ecma+index,
- use=xterm+sm+1006, use=xterm+pcfkeys, use=vte-2012,
+ use=oldxterm+sm+1006, use=xterm+pcfkeys, use=vte-2012,
+ use=bracketed+paste,
# As of January 2018, this was the most recent release,
# e.g., with gnome-terminal 3.26.2
vte-2017|VTE 0.50.2,
- use=ecma+strikeout, use=vte-2014,
+ E3=\E[3J, use=ecma+strikeout, use=vte-2014,
# VTE 0.51.2 and gnome-terminal 3.28.2 copied a feature from KovId's TTY
# late in 2017 for changing the appearance of underlines, which was
@@ -5870,9 +6260,24 @@ vte-2017|VTE 0.50.2,
# 2018, respectively. Overline (Smol/Rmol) has been supported since December
# 2017.
vte-2018|VTE 0.51.2,
- Rmol=\E[55m, Smol=\E[53m, Smulx=\E[4\:%p1%dm,
+ AX,
+ blink=\E[5m, enacs=\E(B\E)0, nel=\EE,
+ rep=%p1%c\E[%p2%{1}%-%db,
+ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;
+ 8%;%?%p1%p3%|%t;7%;m%?%p9%t\016%e\017%;,
+ Rmol=\E[55m, Se=\E[1 q, Smol=\E[53m, Smulx=\E[4:%p1%dm,
+ use=xterm+alt+title, use=xterm+tmux, use=kitty+setal,
use=vte-2017,
+# Summarizing as of March 2022, these terminfo-capabilities of xterm are
+# absent from VTE:
+# - DEC application keypad mode
+# - DEC-compatible status-line
+# - DEC left/right margin support
+# - DEC printer controls
+# - AT&T cursor-blinking
+# - meta mode, as documented in terminfo(5)
+# - xterm's extension to clear scrollback
vte|VTE aka GNOME Terminal,
use=vte-2018,
@@ -5888,6 +6293,29 @@ vte-256color|VTE with xterm 256-colors,
xfce|Xfce Terminal,
use=vte-2008,
+# HTERM
+#
+# https://hterm.org
+#
+# A terminal written in JavaScript, which can provide xterm-like terminal
+# emulation in a browser such as Google Chrome, or in Chome OS.
+#
+# https://chromium.googlesource.com/apps/libapps/+/master/nassh/doc/FAQ.md
+#
+# Tested with Secure Shell App version 0.39 in Chrome 89.0.4389.90, found that
+# the numeric keypad escapes are missing -TD
+hterm|Chromium hterm,
+ npc,
+ U8#1,
+ kcbt=\E[Z, kent=\EOM, nel=\EE, use=linux+kbs,
+ use=xterm+osc104, use=ecma+index, use=ansi+rep,
+ use=ecma+strikeout, use=vt420+lrmm, use=xterm+focus,
+ use=xterm+sm+1006, use=xterm+tmux, use=ecma+italics,
+ use=xterm+pcfkeys, use=xterm-basic,
+ use=bracketed+paste,
+hterm-256color|Chromium hterm with xterm 256-colors,
+ use=xterm+256color2, use=hterm,
+
# TERMITE
#
# https://github.com/thestinger/termite
@@ -5909,32 +6337,30 @@ xfce|Xfce Terminal,
# trimmed to eliminate those. Also, since it is a slightly older version of
# VTE, it lacks a few more features (again, trimmed).
termite|VTE-based terminal,
- am, ccc, km, mir, msgr, npc, xenl,
- cols#80, it#8, lines#24, ncv@,
+ am, km, mir, msgr, npc, xenl,
+ cols#80, lines#24, ncv@,
acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxy
yzz{{||}}~~,
- bel=^G, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[2J, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
- flash=\E[?5h$<100/>\E[?5l, home=\E[H, hpa=\E[%i%p1%dG,
- ht=^I, hts=\EH, ind=\n, invis=\E[8m,
+ bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=\r, cub1=^H, cud1=\n,
+ cup=\E[%i%p1%d;%p2%dH, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
+ el1=\E[1K, flash=\E[?5h$<100/>\E[?5l, home=\E[H,
+ hpa=\E[%i%p1%dG, ind=\n, invis=\E[8m,
is2=\E[!p\E[?3;4l\E[4l\E>, kb2=\EOE, kbs=^?, kcbt=\E[Z,
- kent=\EOM, kmous=\E[M, rc=\E8, rev=\E[7m, ri=\EM, rmacs=\E(B,
+ kent=\EOM, kmous=\E[M, rev=\E[7m, ri=\EM, rmacs=\E(B,
rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m,
- rs1=\Ec, rs2=\E[!p\E[?3;4l\E[4l\E>, sc=\E7,
+ rs1=\Ec, rs2=\E[!p\E[?3;4l\E[4l\E>,
sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|
%t;7%;%?%p7%t;8%;m,
sgr0=\E(B\E[m, smacs=\E(0, smam=\E[?7h, smkx=\E[?1h\E=,
- smso=\E[7m, smul=\E[4m, tbc=\E[3g, vpa=\E[%i%p1%dd,
- use=xterm+alt1049, use=ecma+index, use=ansi+idc,
- use=ansi+idl, use=ansi+enq, use=ecma+italics,
- use=xterm+256color, use=ecma+color, use=vt220+cvis,
- use=xterm+pcfkeys, use=xterm+sl-twm,
+ smso=\E[7m, smul=\E[4m, vpa=\E[%i%p1%dd, use=ansi+csr,
+ use=ansi+enq, use=ansi+idc, use=ansi+idl,
+ use=ansi+inittabs, use=ecma+index, use=ecma+italics,
+ use=ansi+local, use=xterm+alt1049, use=xterm+256color,
+ use=ecma+color, use=vt220+cvis, use=xterm+pcfkeys,
+ use=xterm+sl-twm,
#### Other GNOME
-# Multi-Gnome-Terminal 1.6.2
+# Multi-GNOME-Terminal 1.6.2
#
# This does not use VTE, and does have different behavior (compare xfce and
# gnome).
@@ -5946,7 +6372,8 @@ mgt|Multi GNOME Terminal,
# or not is debatable).
kvt|KDE terminal,
bce, km@,
- kdch1=^?, kend=\E[F, khome=\E[H, use=xterm-color,
+ kdch1=^?, kend=\E[F, khome=\E[H, use=linux+kbs,
+ use=xterm-color,
# Konsole 1.0.1 (2001/11/25)
# (formerly known as kvt)
@@ -5963,18 +6390,18 @@ kvt|KDE terminal,
# konsole. Some features such as the 1049 private mode are recognized but
# incorrectly implemented as a duplicate of the 47 private mode.
# b) even with the "vt100 (historical)" keyboard setting, the numeric keypad
-# sends PC-style escapes rather than vt100.
+# sends PC-style escapes rather than VT100.
# c) fails vttest menu 3 (Test of character sets) because it does not properly
# parse some control sequences. Also fails vttest Primary Device Attributes
# by sending a bogus code (in the source it says it's supposed to be a
-# vt220, which is doubly incorrect because it does not implement vt220
+# VT220, which is doubly incorrect because it does not implement VT220
# control sequences except for a few special cases). Treat it as a
-# mildly-broken vt102.
+# mildly-broken VT102.
#
# Update for konsole 1.3.2:
# The 1049 private mode works (but see the other xterm screens in vttest).
-# Primary Device Attributes now returns the code for a vt100 with advanced
-# video option. Perhaps that's intended to be a "mildly-broken vt102".
+# Primary Device Attributes now returns the code for a VT100 with advanced
+# video option. Perhaps that's intended to be a "mildly-broken Vt102".
#
# Updated for konsole 1.6.4:
# add konsole-solaris
@@ -5984,7 +6411,7 @@ kvt|KDE terminal,
#
# Updated for konsole 2.3 (October 2008):
# vttest menu 1 shows that both konsole and gnome terminal do wrapping
-# different from xterm (and vt100's). They have the same behavior in
+# different from xterm (and VT100's). They have the same behavior in
# this detail, but it is unclear which copies the other.
#
# Deferred update for konsole 2.10 (late 2012):
@@ -6001,22 +6428,23 @@ kvt|KDE terminal,
#
# Re-enable "bel", since it is latent in the source-code even though KDE config
# often hides the feature (2020/5/30)
-konsole-base|KDE console window,
+konsole-base|KDE console window (common),
bce, km@, npc, XT,
ncv@,
- blink=\E[5m, dim=\E[2m, ech=\E[%p1%dX,
- flash=\E[?5h$<100/>\E[?5l, hpa=\E[%i%p1%dG,
- invis=\E[8m, kbs=^?, kdch1=\E[3~, kend=\E[4~, kf1@, kf10@,
- kf11@, kf12@, kf13@, kf14@, kf15@, kf16@, kf17@, kf18@, kf19@, kf2@,
- kf20@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@, kf9@, kfnd@, khome=\E[1~,
- kslt@, rmam=\E[?7l, rmso=\E[27m, rmul=\E[24m, rs1=\Ec,
+ ech=\E[%p1%dX, flash=\E[?5h$<100/>\E[?5l,
+ hpa=\E[%i%p1%dG, kend=\E[4~, kf1@, kf10@, kf11@, kf12@, kf13@,
+ kf14@, kf15@, kf16@, kf17@, kf18@, kf19@, kf2@, kf20@, kf3@, kf4@,
+ kf5@, kf6@, kf7@, kf8@, kf9@, kfnd@, khome=\E[1~, kslt@,
+ rmam=\E[?7l, rmso=\E[27m, rmul=\E[24m, rs1=\Ec,
rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?25h,
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?
%p5%t;2%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
sgr0=\E[0m\017, smam=\E[?7h, vpa=\E[%i%p1%dd,
- use=ecma+index, use=xterm+sm+1006, use=ecma+strikeout,
+ use=ansi+sgrdim, use=ecma+index, use=xterm+focus,
+ use=xterm+sm+1006, use=ecma+strikeout,
use=ecma+italics, use=ecma+color, use=xterm-r6,
- use=vt220+cvis,
+ use=vt220+cvis, use=bracketed+paste,
+ use=report+version,
# The keytab feature was introduced in 0.9.12 (February 2000) with "linux" and
# "vt100" key-table files along with a compiled-in default key-table.
@@ -6073,7 +6501,7 @@ konsole-base|KDE console window,
#
# As of 2018, konsole still provides 3 keyboard profiles ("XFree 4", "linux",
# "solaris").
-konsole-linux|KDE console window with linux keyboard,
+konsole-linux|KDE console window with Linux keyboard,
kf1=\E[[A, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13@,
kf14@, kf15@, kf16@, kf17@, kf18@, kf19@, kf2=\E[[B, kf20@,
kf3=\E[[C, kf4=\E[[D, kf5=\E[[E, kf6=\E[17~, kf7=\E[18~,
@@ -6101,17 +6529,17 @@ konsole+pcfkeys|konsole subset of xterm+pcfkeys,
# KDE's "vt100" keyboard has no relationship to any terminal that DEC made, but
# it is still useful for deriving the other entries, since the developer
# provided function-keys based on xterm.
-konsole-vt100|KDE console window with vt100 (sic) keyboard,
- kbs=^?, kdch1=\E[3~, kend=\E[F, kf1=\E[11~, kf10=\E[21~,
- kf11=\E[23~, kf12=\E[24~, kf13@, kf14@, kf15@, kf16@, kf17@,
- kf18@, kf19@, kf2=\E[12~, kf20@, kf3=\E[13~, kf4=\E[14~,
- kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- khome=\E[H, use=konsole-base,
+konsole-vt100|KDE console window with VT100 (sic) keyboard,
+ kend=\E[F, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~,
+ kf12=\E[24~, kf13@, kf14@, kf15@, kf16@, kf17@, kf18@, kf19@,
+ kf2=\E[12~, kf20@, kf3=\E[13~, kf4=\E[14~, kf5=\E[15~,
+ kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, khome=\E[H,
+ use=konsole-base,
# Obsolete: vt420pc.keytab was added in June 2000, dropped from the install in
# September 2008 and removed in June 2016. The developer who removed it stated
# that it was never installed.
-konsole-vt420pc|KDE console window with vt420 pc keyboard,
+konsole-vt420pc|KDE console window with VT420 PC keyboard,
kbs=^H, kdch1=^?, use=konsole-vt100,
# make a default entry for konsole
@@ -6165,7 +6593,7 @@ mlterm|multi lingual terminal emulator,
# mlterm 3.x made further changes, but they were not reflected in the included
# mlterm.ti (which was dropped in 2015). This entry has been based on testing
# with ncurses, tack and vttest -TD
-mlterm3|multi lingual terminal emulator,
+mlterm3|multi lingual terminal emulator 3.x,
bce, AX,
blink=\E[5m, flash=\E[?5h$<100/>\E[?5l, invis=\E[8m,
is2=\E[!p\E[?3;4l\E>, rs2=\E[!p\E[?3;4l\E>,
@@ -6175,11 +6603,12 @@ mlterm3|multi lingual terminal emulator,
use=ecma+strikeout, use=xterm+app, use=xterm+pcf2,
use=xterm+pcc2, use=xterm+pce2, use=xterm+meta,
use=xterm+alt+title, use=xterm+sm+1006,
- use=vt100+pfkeys, use=mlterm2,
+ use=vt100+pfkeys, use=bracketed+paste, use=mlterm2,
+ use=report+version,
# This is mlterm 2.9.3's mlterm.ti, with some additions/corrections -TD
#
-# It is nominally a vt102 emulator, with features borrowed from rxvt and
+# It is nominally a VT102 emulator, with features borrowed from rxvt and
# xterm.
#
# The function keys are numbered based on shift/control/alt modifiers, except
@@ -6196,39 +6625,35 @@ mlterm3|multi lingual terminal emulator,
# control/alt kf1 to kf12 \E[11;7~ to \E[24;7~
# control/shift/alt kf1 to kf12 \E[11;8~ to \E[24;8~
#
-mlterm2|multi lingual terminal emulator,
+mlterm2|multi lingual terminal emulator 2.x,
am, eslok, km, mc5i, mir, msgr, npc, xenl, XT,
- colors#8, cols#80, it#8, lines#24, pairs#64,
+ colors#8, cols#80, lines#24, pairs#64,
acsc=00``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[2J, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
+ bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=\r, cub1=^H, cud1=\n,
+ cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\E[P,
ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=,
- home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
- il=\E[%p1%dL, il1=\E[L, ind=\n,
+ home=\E[H, hpa=\E[%i%p1%dG, ich=\E[%p1%d@, ind=\n,
is2=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>, kbs=^?,
- kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kend=\EOF, kent=\EOM, khome=\EOH, kind=\EO1;2B, kmous=\E[M,
- kri=\EO1;2A, mc0=\E[i, nel=\EE, op=\E[39;49m, rc=\E8,
- rev=\E[7m, ri=\EM, rmacs=\E(B, rmam=\E[?7l, rmir=\E[4l,
+ kcbt=\E[Z, kend=\EOF, kent=\EOM, kind=\EO1;2B, kmous=\E[M,
+ kri=\EO1;2A, mc0=\E[i, nel=\EE, op=\E[39;49m, rev=\E[7m,
+ ri=\EM, rmacs=\E(B, rmam=\E[?7l, rmir=\E[4l,
rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m, rs1=\Ec,
rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>\E[?1000l,
- sc=\E7, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+ setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e
\E(B%;,
sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
- u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?1;2c, u9=\E[c,
- vpa=\E[%i%p1%dd, use=vt220+vtedit, use=xterm+alt1049,
+ smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, u8=\E[?1;2c,
+ vpa=\E[%i%p1%dd, use=ansi+apparrows, use=ansi+csr,
+ use=ansi+enq, use=ansi+idl, use=ansi+inittabs,
+ use=ansi+local, use=vt220+vtedit, use=xterm+alt1049,
use=ecma+index, use=mlterm+pcfkeys, use=vt220+cvis,
use=xterm+r6f2,
# The insert/delete/home/end keys do not respond to modifiers because mlterm
# looks in its termcap to decide which string to send. If it used terminfo
# (when available), it could use the extended names introduced for xterm.
-mlterm+pcfkeys|fragment for PC-style fkeys,
+mlterm+pcfkeys|mlterm fragment for PC-style fkeys,
kLFT=\EO1;2D, kNXT=\E[6;2~, kPRV=\E[5;2~, kRIT=\EO1;2C,
kDN=\EO1;2B, kDN3=\EO1;3B, kDN4=\EO1;4B, kDN5=\EO1;5B,
kDN6=\EO1;6B, kDN7=\EO1;7B, kIC5=\E[2;5~, kIC6=\E[2;6~,
@@ -6265,30 +6690,25 @@ mlterm-256color|mlterm 3.0 with xterm 256-colors,
# removed dch/dch1 because they are inconsistent with bce/ech -TD
# remove km as per tack test -TD
rxvt-basic|rxvt terminal base (X Window System),
- OTbs, am, bce, eo, mir, msgr, xenl, xon, XT,
- cols#80, it#8, lines#24,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
- enacs=\E(B\E)0, flash=\E[?5h$<100/>\E[?5l, home=\E[H,
- ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L,
- ind=\n, is1=\E[?47l\E=\E[?1l,
- is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l, kbs=^H,
- kcbt=\E[Z, kmous=\E[M, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
- rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmkx=\E>, rmso=\E[27m,
- rmul=\E[24m,
+ OTbs, bce, eo, mir, xenl, xon, XT,
+ blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J, cub1=^H, cud1=\n,
+ cup=\E[%i%p1%d;%p2%dH, ed=\E[J, el=\E[K, el1=\E[1K,
+ flash=\E[?5h$<100/>\E[?5l, ich=\E[%p1%d@,
+ is1=\E[?47l\E=\E[?1l,
+ is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l,
+ kcbt=\E[Z, kmous=\E[M, rev=\E[7m, ri=\EM, rmir=\E[4l,
+ rmkx=\E>, rmso=\E[27m, rmul=\E[24m,
rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H,
rs2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?
25h,
- s0ds=\E(B, s1ds=\E(0, sc=\E7,
+ s0ds=\E(B, s1ds=\E(0,
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?
%p9%t\016%e\017%;,
- sgr0=\E[0m\017, smacs=^N, smcup=\E7\E[?47h, smir=\E[4h,
- smkx=\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g, use=vt100+enq,
+ sgr0=\E[0m\017, smir=\E[4h, smkx=\E=, smso=\E[7m,
+ smul=\E[4m, use=ansi+csr, use=ansi+idl, use=ansi+local,
+ use=xterm+alt47, use=vt100+enq, use=vt100+4bsd,
use=rxvt+pcfkeys, use=vt220+cvis, use=vt220+keypad,
+
# Key Codes from rxvt reference:
#
# Note: Shift + F1-F10 generates F11-F20
@@ -6369,26 +6789,22 @@ rxvt-basic|rxvt terminal base (X Window System),
#
# kDN, kDN5, kDN6, etc are extensions based on the names from xterm+pcfkeys -TD
# Removed kDN6, etc (control+shift) since rxvt does not implement this -TD
-rxvt+pcfkeys|fragment for PC-style fkeys,
+rxvt+pcfkeys|rxvt fragment for PC-style fkeys,
kDC=\E[3$, kEND=\E[8$, kHOM=\E[7$, kIC=\E[2$, kLFT=\E[d,
kNXT=\E[6$, kPRV=\E[5$, kRIT=\E[c, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kel=\E[8\^, kend=\E[8~, kf1=\E[11~,
- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
- kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
- kf18=\E[32~, kf19=\E[33~, kf2=\E[12~, kf20=\E[34~,
+ kcuf1=\E[C, kcuu1=\E[A, kel=\E[8\^, kend=\E[8~,
kf21=\E[23$, kf22=\E[24$, kf23=\E[11\^, kf24=\E[12\^,
kf25=\E[13\^, kf26=\E[14\^, kf27=\E[15\^, kf28=\E[17\^,
- kf29=\E[18\^, kf3=\E[13~, kf30=\E[19\^, kf31=\E[20\^,
- kf32=\E[21\^, kf33=\E[23\^, kf34=\E[24\^, kf35=\E[25\^,
- kf36=\E[26\^, kf37=\E[28\^, kf38=\E[29\^, kf39=\E[31\^,
- kf4=\E[14~, kf40=\E[32\^, kf41=\E[33\^, kf42=\E[34\^,
- kf43=\E[23@, kf44=\E[24@, kf5=\E[15~, kf6=\E[17~,
- kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, khome=\E[7~, kind=\E[a,
- kri=\E[b, kDC5=\E[3\^, kDC6=\E[3@, kDN=\E[b, kDN5=\EOb,
- kEND5=\E[8\^, kEND6=\E[8@, kHOM5=\E[7\^, kHOM6=\E[7@,
- kIC5=\E[2\^, kIC6=\E[2@, kLFT5=\EOd, kNXT5=\E[6\^,
- kNXT6=\E[6@, kPRV5=\E[5\^, kPRV6=\E[5@, kRIT5=\EOc,
- kUP=\E[a, kUP5=\EOa, use=vt220+vtedit,
+ kf29=\E[18\^, kf30=\E[19\^, kf31=\E[20\^, kf32=\E[21\^,
+ kf33=\E[23\^, kf34=\E[24\^, kf35=\E[25\^, kf36=\E[26\^,
+ kf37=\E[28\^, kf38=\E[29\^, kf39=\E[31\^, kf40=\E[32\^,
+ kf41=\E[33\^, kf42=\E[34\^, kf43=\E[23@, kf44=\E[24@,
+ khome=\E[7~, kind=\E[a, kri=\E[b, kDC5=\E[3\^, kDC6=\E[3@,
+ kDN=\E[b, kDN5=\EOb, kEND5=\E[8\^, kEND6=\E[8@,
+ kHOM5=\E[7\^, kHOM6=\E[7@, kIC5=\E[2\^, kIC6=\E[2@,
+ kLFT5=\EOd, kNXT5=\E[6\^, kNXT6=\E[6@, kPRV5=\E[5\^,
+ kPRV6=\E[5@, kRIT5=\EOc, kUP=\E[a, kUP5=\EOa,
+ use=vt220+vtedit, use=xterm+nopcfkeys,
# rxvt was originally "xvt", first announced in April 1993:
# http://www.krsaborio.net/linux-desktops/research/1993/0416.html
@@ -6439,17 +6855,15 @@ rxvt+pcfkeys|fragment for PC-style fkeys,
# Olesen (or possibly Davis) diverged in one respect from Linux's bce color
# behavior: inserting/deleting characters does not fill the newly empty cell
# with the default background color.
-rxvt|rxvt terminal emulator (X Window System),
+rxvt|rxvt-color|rxvt terminal emulator (X Window System),
ncv@,
hpa=\E[%i%p1%dG, kf0=\E[21~, sgr0=\E[m\017,
vpa=\E[%i%p1%dd, use=rxvt-basic, use=ecma+color,
-rxvt-color|rxvt terminal emulator (X Window System),
- use=rxvt,
rxvt-256color|rxvt 2.7.9 with xterm 256-colors,
use=xterm+256color, use=rxvt,
rxvt-88color|rxvt 2.7.9 with xterm 88-colors,
use=xterm+88color, use=rxvt,
-rxvt-xpm|rxvt terminal emulator (X Window System),
+rxvt-xpm|rxvt terminal emulator (X Window System with xpm),
use=rxvt,
rxvt-cygwin|rxvt terminal emulator (X Window System) on cygwin,
acsc=+\257\,\256-\^0\333`\004a\261f\370g\361h\260j\331k
@@ -6481,7 +6895,7 @@ rxvt-16color|rxvt with 16 colors like aixterm,
# window collapses to a single line when running several of the screens
# in vttest, e.g., the tests for cursor movement, screen features,
# double-sized characters.
-# + The vt52 test works properly, but this is an exception. Due to the
+# + The VT52 test works properly, but this is an exception. Due to the
# other bug(s) most of vttest is untestable.
# + the color test using ECH shows a gap in the bce model, like rxvt.
#
@@ -6490,7 +6904,6 @@ rxvt-16color|rxvt with 16 colors like aixterm,
# (not in rxvt, but not documented by mrxvt) but not CSI 19 t.
# + none of the "dynamic colors" (OSC colors) scripts work.
mrxvt|multitabbed rxvt,
- XT,
kEND=\E[8;2~, kHOM=\E[7;2~, kcub1=\E[D, kcud1=\E[B,
kcuf1=\E[C, kcuu1=\E[A, kend=\E[8~, khome=\E[7~,
kEND3=\E[8;3~, kEND4=\E[8;4~, kEND5=\E[8;5~,
@@ -6514,33 +6927,27 @@ mrxvt-256color|multitabbed rxvt with 256 colors,
# remove nonworking flash -TD
# remove km as per tack test -TD
Eterm|Eterm-color|Eterm with xterm-style color support (X Window System),
- am, bce, bw, eo, mc5i, mir, msgr, xenl, xon, XT,
- btns#5, cols#80, it#8, lines#24, lm#0, ncv@,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
+ bce, bw, eo, mc5i, mir, xenl, xon, XT,
+ btns#5, lm#0, ncv@,
+ blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J, cub1=^H,
+ cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\E[P,
ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)0,
- home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
- il=\E[%p1%dL, il1=\E[L, ind=\n, is1=\E[?47l\E>\E[?1l,
+ hpa=\E[%i%p1%dG, ich=\E[%p1%d@, is1=\E[?47l\E>\E[?1l,
is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l, kNXT@,
- kPRV@, ka1=\E[7~, ka3=\E[5~, kb2=\EOu, kbeg=\EOu, kbs=^H,
- kc1=\E[8~, kc3=\E[6~, kent=\EOM, khlp=\E[28~, kmous=\E[M,
- mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
- rmam=\E[?7l, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmkx=,
+ kPRV@, ka1=\E[7~, ka3=\E[5~, kb2=\EOu, kbeg=\EOu, kc1=\E[8~,
+ kc3=\E[6~, kent=\EOM, khlp=\E[28~, kmous=\E[M, mc4=\E[4i,
+ mc5=\E[5i, rev=\E[7m, ri=\EM, rmam=\E[?7l, rmir=\E[4l, rmkx=,
rmso=\E[27m, rmul=\E[24m,
rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H,
rs2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?
25h,
- sc=\E7,
sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5
%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E7\E[?47h,
- smir=\E[4h, smkx=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
- vpa=\E[%i%p1%dd, use=vt100+enq, use=rxvt+pcfkeys,
- use=ecma+color, use=vt220+cvis,
+ sgr0=\E[m\017, smam=\E[?7h, smir=\E[4h, smkx=, smso=\E[7m,
+ smul=\E[4m, vpa=\E[%i%p1%dd, use=ansi+csr, use=ansi+idl,
+ use=ansi+local, use=xterm+alt47, use=vt100+enq,
+ use=rxvt+pcfkeys, use=ecma+color, use=vt100+4bsd,
+ use=vt220+cvis,
Eterm-256color|Eterm with xterm 256-colors,
use=xterm+256color, use=Eterm,
@@ -6560,27 +6967,24 @@ aterm|AfterStep terminal,
# vttest shows several problems with keyboard, cursor-movements.
# see also https://invisible-island.net/xterm/xterm.faq.html#bug_xiterm
xiterm|internationalized terminal emulator for X,
- km@,
- kbs=^?, kdch1=\E[3~, use=klone+color, use=xterm-r6,
+ km@, use=klone+color, use=xterm-r6,
#### HPTERM
# HP ships this (HPUX 9 and 10), except for the pb#9600 which was merged in
# from BSD termcap. (hpterm: added empty <acsc>, we have no idea what ACS
# chars look like --esr)
-hpterm|X-hpterm|hp X11 terminal emulator,
+hpterm|X-hpterm|HP X11 terminal emulator (old),
am, da, db, mir, xhp, xon,
cols#80, lh#2, lines#24, lm#0, lw#8, nlab#8, pb#9600, xmc#0,
acsc=, bel=^G, bold=\E&dB, cbt=\Ei, clear=\E&a0y0C\EJ, cr=\r,
cub1=^H, cud1=\EB, cuf1=\EC, cup=\E&a%p1%dy%p2%dC,
cuu1=\EA, dch1=\EP, dim=\E&dH, dl1=\EM, ed=\EJ$<1>, el=\EK,
hpa=\E&a%p1%dC, ht=^I, hts=\E1, il1=\EL, ind=\n, kbs=^H,
- kclr=\EJ, kctab=\E2, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
- kcuu1=\EA, kdch1=\EP, kdl1=\EM, ked=\EJ, kel=\EK, kf1=\Ep,
- kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et, kf6=\Eu, kf7=\Ev, kf8=\Ew,
- khome=\Eh, khts=\E1, kich1=\EQ, kil1=\EL, kind=\ES, kll=\EF,
- knp=\EU, kpp=\EV, kri=\ET, krmir=\ER, ktbc=\E3, meml=\El,
- memu=\Em, pfkey=\E&f%p1%dk%p2%l%dL%p2%s,
+ kclr=\EJ, kctab=\E2, kdch1=\EP, kdl1=\EM, ked=\EJ, kel=\EK,
+ khts=\E1, kich1=\EQ, kil1=\EL, knp=\EU, kpp=\EV, krmir=\ER,
+ ktbc=\E3, meml=\El, memu=\Em,
+ pfkey=\E&f%p1%dk%p2%l%dL%p2%s,
pfloc=\E&f1a%p1%dk%p2%l%dL%p2%s,
pfx=\E&f2a%p1%dk%p2%l%dL%p2%s,
pln=\E&f%p1%dk%p2%l%dd0L%p2%s, rev=\E&dB, ri=\ET,
@@ -6590,7 +6994,7 @@ hpterm|X-hpterm|hp X11 terminal emulator,
%p5%{8}%*%+%{64}%+%c%?%p9%t%'\016'%c%e%'\017'%c%;,
sgr0=\E&d@\017, smacs=^N, smir=\EQ, smkx=\E&s1A,
smln=\E&jB, smso=\E&dJ, smul=\E&dD, tbc=\E3,
- vpa=\E&a%p1%dY,
+ vpa=\E&a%p1%dY, use=hp+pfk-cr, use=hp+arrows,
# HPUX 11 provides a color version.
hpterm-color|HP X11 terminal emulator with color,
ccc,
@@ -6599,6 +7003,54 @@ hpterm-color|HP X11 terminal emulator with color,
initp=\E&v%p2%da%p3%db%p4%dc%p5%dx%p6%dy%p7%dz%p1%dI,
op=\E&v0S, scp=\E&v%p1%dS, use=hpterm,
+# http://bitsavers.trailing-edge.com/pdf/hp/9000_hpux/1986/97089-90081_198611_Facilities_for_Series_200_300_and_500.pdf
+# http://bitsavers.trailing-edge.com/pdf/hp/9000_hpux/1987/97089-90081_198709_Facilities_for_Series_200_300_and_500_HP-UX_Concepts_and_Tutorials.pdf
+#
+# This article does not cover the HP 46020A keyboard that is used by the Model
+# 217 and 237 computers. For information on this keyboard read the article,
+# "The Series 300 ITE as System Console" found in the manual, HP-UX Concepts
+# and Tutorials, Vol. 7.
+#
+# Possibly:
+# http://bitsavers.trailing-edge.com/pdf/hp/9000_hpux/1986/97089-90042_198608_HP-UX_Concepts_and_Tutorials.pdf
+#
+# HP300_Series_ITE.pdf
+#
+# This version, which came from Martin Trusler, was tested with lynx using
+# ncurses 5.4
+hpterm-color2|X-hpterm-color2|HP X11 terminal emulator with color (new),
+ OTbs, am, ccc, da, db, km, mir, xhp,
+ colors#8, cols#80, it#8, lh#2, lines#24, lm#0, lw#8, nlab#8,
+ pairs#8, xmc#0,
+ acsc=+>\,<-\^.v0\374``a\374f\372g\376h\374j+k+l+m+n+o-q-s-t+
+ u+v+w+x|y<z>{*|!}\273~\362,
+ bel=^G, bold=\E&dD, cbt=\Ei, clear=\EH\EJ, cr=\r, cub1=^H,
+ cud1=\EB, cuf1=\EC, cup=\E&a%p1%dy%p2%dC, cuu1=\EA,
+ dch1=\EP, dim=\E&dH, dl1=\EM, ed=\EJ$<1>, el=\EK,
+ home=\E&a0y0C, hpa=\E&a%p1%dC, ht=^I, hts=\E1, il1=\EL,
+ ind=\ES,
+ initp=\E&v0m%?%p2%{1000}%=%t1%e.%p2%d%;a%?%p3%{1000}%=%t1%e.
+ %p3%d%;b%?%p4%{1000}%=%t1%e.%p4%d%;c%?%p5%{1000}%=%t1
+ %e.%p5%d%;x%?%p6%{1000}%=%t1%e.%p6%d%;y%?%p7%{1000}%=
+ %t1%e.%p7%d%;z%p1%dI,
+ is1=\EH\EJ, kbs=^H, kctab=\E2, kdch1=\EP, kdl1=\EM, ked=\EJ,
+ kel=\EK, khts=\E1, kich1=\EQ, kil1=\EL, knp=\EU, kpp=\EV,
+ krmir=\ER, ktbc=\E3, meml=\El, memu=\Em,
+ oc=\E&v0m1a1b1c0I\E&v1a1I\E&v1b2I\E&v1a1b3I\E&v1c4I\E&v1a1c5
+ I\E&v1b1c6I\E&v1x1y7I,
+ op=\E&v0S, pfkey=\E&f%p1%dk%p2%l%dL%p2%s,
+ pfloc=\E&f1a%p1%dk%p2%l%dL%p2%s,
+ pfx=\E&f2a%p1%dk%p2%l%dL%p2%s,
+ pln=\E&f%p1%dk%p2%l%dd0L%p2%s, rev=\E&dB, ri=\ET,
+ rmacs=^O, rmam=\E&s1C, rmcup=\E&s0A, rmir=\ER, rmkx=\E&s0A,
+ rmln=\E&j@, rmm=\E&k0I, rmso=\E&d@, rmul=\E&d@, rs1=\EE,
+ scp=\E&v%p1%dS,
+ sgr=\E&d%p1%p3%|%{2}%*%p2%p6%|%{4}%*%+%p5%{8}%*%+%{64}%+%c%?
+ %p9%t%'\016'%c%e%'\017'%c%;,
+ sgr0=\E&d@\017, smacs=^N, smam=\E&s0C, smcup=\E&s1A,
+ smir=\EQ, smkx=\E&s1A, smln=\E&jB, smm=\E&k1I, smso=\E&dB,
+ smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY, use=hp+pfk-cr,
+ use=hp+arrows,
#### EMU
# This is for the extensible terminal emulator on the X11R6 contrib tape.
# It corresponds to emu's internal emulation:
@@ -6632,7 +7084,7 @@ emu|emu native mode,
%t\EU%;,
sgr0=\ES, smir=\EY, smso=\ET, smul=\EV, tbc=\Ej,
-# vt220 Terminfo entry for the Emu emulation, corresponds to
+# VT220 terminfo entry for the Emu emulation, corresponds to
# emu -term vt220
# with NumLock set (to make the keypad transmit kf0-kf9).
# fixes: add am, xenl, corrected sgr0 -TD
@@ -6641,28 +7093,27 @@ emu-220|Emu-220 (vt200-7bit mode),
cols#80, it#8, lines#24, vt#200,
acsc=aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G,
blink=\E[0;5m, bold=\E[0;1m, clear=\E[2J\E[H, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[1D,
- cud=\E[%p1%dB, cud1=\E[1B, cuf=\E[%p1%dC, cuf1=\E[1C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[1A,
- dch=\E[%p1%dP, dch1=\E[1P, dl=\E[%p1%dM, dl1=\E[1M,
- ed=\E[0J, el=\E[0K, el1=\E[1K, enacs=\E)0, home=\E[H, ht=^I,
- hts=\EH, if=/usr/share/tabset/vt300, il=\E[%p1%dL,
- il1=\E[1L, ind=\ED, is2=\E>\E[?1l\E[?3l\E[4l\E[?7h,
- kbs=^H, kcmd=\E[29~, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
+ cub1=\E[1D, cud1=\E[1B, cuf1=\E[1C,
+ cup=\E[%i%p1%d;%p2%dH, cuu1=\E[1A, dch=\E[%p1%dP,
+ dch1=\E[1P, dl=\E[%p1%dM, dl1=\E[1M, ed=\E[0J, el=\E[0K,
+ el1=\E[1K, enacs=\E)0, home=\E[H, ht=^I, hts=\EH,
+ if=/usr/share/tabset/vt300, il=\E[%p1%dL, il1=\E[1L,
+ ind=\ED, is2=\E>\E[?1l\E[?3l\E[4l\E[?7h, kbs=^H,
+ kcmd=\E[29~, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
kcuu1=\E[A, kent=\EOM, kf0=\EOp, kf1=\EOq, kf10=\EOl,
kf11=\EOm, kf12=\EOn, kf13=\EOP, kf14=\EOQ, kf15=\EOR,
kf16=\EOS, kf2=\EOr, kf26=\E[17~, kf27=\E[18~, kf28=\E[19~,
kf29=\E[20~, kf3=\EOs, kf30=\E[21~, kf34=\E[26~,
kf37=\E[31~, kf38=\E[32~, kf39=\E[33~, kf4=\EOt,
kf40=\E[34~, kf5=\EOu, kf6=\EOv, kf7=\EOw, kf8=\EOx,
- kf9=\EOy, khlp=\E[28~, rc=\E8, rev=\E[0;7m, ri=\EM, rmacs=^O,
+ kf9=\EOy, khlp=\E[28~, rev=\E[0;7m, ri=\EM, rmacs=^O,
rmcup=\E>, rmkx=\E>, rmso=\E[m, rmul=\E[m,
- rs2=\E[4l\E[34l\E[?1l\E[?3l\E[?5l\E[?7h, sc=\E7,
+ rs2=\E[4l\E[34l\E[?1l\E[?3l\E[?5l\E[?7h,
sgr=\E[0%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;
2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
sgr0=\E[m\017, smacs=^N, smcup=\E[?1l\E=, smkx=\E=,
- smso=\E[0;7m, smul=\E[0;4m, tbc=\E[3g, use=vt220+vtedit,
- use=vt220+cvis,
+ smso=\E[0;7m, smul=\E[0;4m, tbc=\E[3g, use=ansi+csr,
+ use=ansi+local, use=vt220+vtedit, use=vt220+cvis,
#### MVTERM
# A commercial product, Reportedly a version of Xterm with an OPEN LOOK UI,
@@ -6676,29 +7127,21 @@ emu-220|Emu-220 (vt200-7bit mode),
# apparently implements alternate screen like xterm
# does not use padding, of course.
mvterm|vv100|SwitchTerm aka mvTERM,
- am, eslok, hs, km, mir, msgr, xenl, xon,
- colors#8, cols#80, it#8, lines#24, pairs#64,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- dsl=\E[?E, ed=\E[J, el=\E[K, el1=\E[1K$<3>, enacs=\E(B\E)0,
- fsl=\E[?F, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
- ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\n, kbs=^H,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf0=\EOy,
- kf10=\EOx, kf5=\EOt, kf6=\EOu, kf7=\EOv, kf8=\EOl, kf9=\EOw,
- op=\E[100m, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
- rmcup=\E[2J\E[?47l\E8, rmkx=\E[?1l\E>, rmso=\E[m,
- rmul=\E[m,
+ km, mir, xenl, xon,
+ colors#8, pairs#64,
+ blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J, cub1=^H, cud1=\n,
+ cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\E[P, ed=\E[J,
+ el=\E[K, ich=\E[%p1%d@, ich1=\E[@, kcub1=\EOD, kcud1=\EOB,
+ kcuf1=\EOC, kcuu1=\EOA, op=\E[100m, rev=\E[7m, ri=\EM,
+ rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
rs2=\E>\E[1;3;4;5;6l\E[?7h\E[100m\E[m\E[r\E[2J\E[H,
- sc=\E7, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+ setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5
%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smcup=\E7\E[?47h,
- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
- tsl=\E[?E\E[?%i%p1%dT, use=vt100+fnkeys,
+ sgr0=\E[m\017, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
+ use=ansi+csr, use=ansi+idl, use=ansi+local,
+ use=xterm+alt47, use=vt100+fnkeys, use=vt100+4bsd,
+ use=x10term+sl,
#### MTERM
#
@@ -6709,19 +7152,16 @@ mterm-ansi|ANSI emulation,
am, bw, mir, msgr,
it#8,
acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=\r,
- cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
- dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J,
- el=\E[K, home=\E[H, hpa=\E[%i%p1%d`, ht=^I, ich1=,
- il=\E[%p1%dL, il1=\E[L, ind=\E[S, invis=\E[8m,
- is2=\E)0\017, kbs=^H, nel=\EE, rev=\E[7m, ri=\E[T, rmacs=^O,
- rmir=\E[4l, rmso=\E[27m, rmul=\E[24m,
+ bel=^G, cr=\r, cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP,
+ dim=\E[2m, ech=\E[%p1%dX, home=\E[H, hpa=\E[%i%p1%d`,
+ ht=^I, ich1=, ind=\E[S, is2=\E)0\017, kbs=^H, nel=\EE, ri=\E[T,
+ rmacs=^O, rmso=\E[27m, rmul=\E[24m,
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?
%p5%t;2%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smir=\E[4h, smso=\E[7m,
- smul=\E[4m, vpa=\E[%i%p1%dd, use=ecma+index,
+ sgr0=\E[m\017, smacs=^N, vpa=\E[%i%p1%dd, use=ansi+erase,
+ use=ansi+idc1, use=ansi+idl, use=ansi+local,
+ use=ansi+sgrbold, use=ecma+index,
+
# mterm normally sets $TERM to "mterm"
mterm|mouse-sun|Der Mouse term,
am, bw, mir,
@@ -6737,28 +7177,24 @@ decansi|ANSI emulation with DEC compatibility hacks,
am, mir, msgr, xenl,
colors#8, it#8, pairs#64,
acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM,
- dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, enacs=\E(B\E)0,
- home=\E[H, hpa=\E[%i%p1%d`, ht=^I, ich1=, il=\E[%p1%dL,
- il1=\E[L, ind=\E[S, invis=\E[8m, is2=\E)0\E[r\017, kbs=^H,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\E[11~,
- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
- kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
- kf18=\E[32~, kf19=\E[33~, kf2=\E[12~, kf20=\E[34~,
- kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
- kf8=\E[19~, kf9=\E[20~, nel=\EE, op=\E[0m, rc=\E8, rev=\E[7m,
- ri=\E[T, rmacs=^O, rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>,
- rmso=\E[27m, rmul=\E[24m, sc=\E7, setab=\E[4%p1%dm,
+ bel=^G, cr=\r, cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP,
+ dim=\E[2m, ech=\E[%p1%dX, enacs=\E(B\E)0, home=\E[H,
+ hpa=\E[%i%p1%d`, ht=^I, ich1=, ind=\E[S, is2=\E)0\E[r\017,
+ kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+ kf1=\E[11~, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
+ kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
+ kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\E[12~,
+ kf20=\E[34~, kf3=\E[13~, kf4=\E[14~, kf5=\E[15~,
+ kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, nel=\EE,
+ op=\E[0m, ri=\E[T, rmacs=^O, rmam=\E[?7l, rmkx=\E[?1l\E>,
+ rmso=\E[27m, rmul=\E[24m, setab=\E[4%p1%dm,
setaf=\E[3%p1%dm,
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?
%p5%t;2%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, u6=\E[%i%d;%dR,
- u7=\E[6n, vpa=\E[%i%p1%dd, use=vt220+vtedit,
+ sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=,
+ vpa=\E[%i%p1%dd, use=ansi+cpr, use=ansi+csr,
+ use=ansi+erase, use=ansi+idc1, use=ansi+idl,
+ use=ansi+local, use=ansi+sgrbold, use=vt220+vtedit,
use=ecma+index, use=vt220+cvis,
#### VWM
@@ -6767,26 +7203,24 @@ decansi|ANSI emulation with DEC compatibility hacks,
# VWM 2.0.2 (2009-05-01)
# vwmterm is a terminal emulator written for the VWM console window manager.
# This version is obsolete, replaced by libvterm in 2.1.0 (2009-10-23).
-vwmterm|(vwm term),
+vwmterm|VWM terminal,
am, bce, ccc, mir, msgr, npc, xenl, xon,
colors#8, pairs#64,
acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=\r,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, cvvis=\E[?25h, dim=\E[2m,
- ed=\E[J, el=\E[K, home=\E[H, il1=\E[L, ind=\n, invis=\E[8m,
+ bel=^G, bold=\E[1m, cr=\r, cub1=^H, cup=\E[%i%p1%d;%p2%dH,
+ cvvis=\E[?25h, dim=\E[2m, home=\E[H, il1=\E[L, ind=\n,
kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
kdch1=\E[3~, kend=\E[4~, kf1=\E[[A, kf10=\E[21~,
kf11=\E[22~, kf12=\E[23~, kf2=\E[[B, kf3=\E[[C, kf4=\E[[D,
kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- khome=\E[1~, knp=\E[6~, kpp=\E[5~, rev=\E[7m, rmacs=\E[10m,
+ khome=\E[1~, knp=\E[6~, kpp=\E[5~, rmacs=\E[10m,
rmam=\E[?7l, rs1=\E[H\E[J\E[m\Ec, setab=\E[4%p1%dm,
setaf=\E[3%p1%dm,
sgr=\E[0;10%?%p1%t;3%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5
%t;2%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
sgr0=\E[0;10m, smacs=\E[11m, smam=\E[?7h, smso=\E[3m,
- smul=\E[4m, use=vt220+cvis, use=xterm+alt1049,
+ smul=\E[4m, use=ansi+erase, use=ansi+local, use=ansi+sgr,
+ use=vt220+cvis, use=xterm+alt1049,
#### MGR
#
@@ -6825,7 +7259,7 @@ mgr-linux|Mgr window with Linux keyboard,
#### SIMPLETERM
# st.suckless.org
-st|stterm| simpleterm,
+st|stterm|aka simpleterm,
use=st-0.8,
# Reviewed 0.8.2:
@@ -6840,15 +7274,13 @@ st|stterm| simpleterm,
#
# This entry discards the ccc/initc capabilities from st-0.7 because they
# belong in st-256color.
-st-0.8|simpleterm 0.7,
- dim=\E[2m, kcbt@, kent@, oc=\E]104\007,
- sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|
- %t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m,
- Ms=\E]52;%p1%s;%p2%s\007, kDN3=\E[1;3B, kDN5=\E[1;5B,
- kLFT3=\E[1;3D, kLFT5=\E[1;5D, kNXT3=\E[6;3~,
- kNXT5=\E[6;5~, kPRV3=\E[5;3~, kPRV5=\E[5;5~,
- kRIT3=\E[1;3C, kRIT5=\E[1;5C, kUP3=\E[1;3A, kUP5=\E[1;5A,
- use=ecma+strikeout, use=st-0.6,
+st-0.8|simpleterm 0.8,
+ kcbt@, kent@, oc=\E]104\007, Ms=\E]52;%p1%s;%p2%s\007,
+ kDN3=\E[1;3B, kDN5=\E[1;5B, kLFT3=\E[1;3D, kLFT5=\E[1;5D,
+ kNXT3=\E[6;3~, kNXT5=\E[6;5~, kPRV3=\E[5;3~,
+ kPRV5=\E[5;5~, kRIT3=\E[1;3C, kRIT5=\E[1;5C,
+ kUP3=\E[1;3A, kUP5=\E[1;5A, use=ecma+strikeout,
+ use=st-0.6,
# Reviewed 0.7:
# dim is intermittent, sometimes works, sometimes does not
@@ -6860,18 +7292,12 @@ st-0.8|simpleterm 0.7,
# provided with the source is incorrect, since Se/Ss are mis-coded
# as booleans rather than strings.
st-0.7|simpleterm 0.7,
- ccc,
- dim=\E[2m,
- initc=\E]4;%p1%d;rgb\:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*
- %{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\\,
- kcbt@, kent@, oc=\E]104\007,
- sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|
- %t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m,
- Ms=\E]52;%p1%s;%p2%s\007, kDN3=\E[1;3B, kDN5=\E[1;5B,
- kLFT3=\E[1;3D, kLFT5=\E[1;5D, kNXT3=\E[6;3~,
- kNXT5=\E[6;5~, kPRV3=\E[5;3~, kPRV5=\E[5;5~,
- kRIT3=\E[1;3C, kRIT5=\E[1;5C, kUP3=\E[1;3A, kUP5=\E[1;5A,
- use=ecma+strikeout, use=st-0.6,
+ kcbt@, kent@, Ms=\E]52;%p1%s;%p2%s\007, kDN3=\E[1;3B,
+ kDN5=\E[1;5B, kLFT3=\E[1;3D, kLFT5=\E[1;5D,
+ kNXT3=\E[6;3~, kNXT5=\E[6;5~, kPRV3=\E[5;3~,
+ kPRV5=\E[5;5~, kRIT3=\E[1;3C, kRIT5=\E[1;5C,
+ kUP3=\E[1;3A, kUP5=\E[1;5A, use=ecma+strikeout,
+ use=st-0.6, use=xterm+256color,
# st-0.4.1
#
@@ -6902,60 +7328,40 @@ st-0.7|simpleterm 0.7,
# still has no function keys past kf36 (no combinations of modifiers)
# no application keypad mode, e.g, kent.
st-0.6|simpleterm 0.6,
- am, bce, hs, mir, msgr, npc, xenl, XT,
- colors#8, cols#80, it#8, lines#24, pairs#64,
+ bce, mir, npc, xenl, XT,
+ colors#8, pairs#64,
acsc=+C\,D-A.B0E``aaffgghFiGjjkkllmmnnooppqqrrssttuuvvwwxxyy
zz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[2J,
- cr=\r, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)0,
- flash=\E[?5h$<100/>\E[?5l, fsl=^G, home=\E[H,
- hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
- il=\E[%p1%dL, il1=\E[L, ind=\n, invis=\E[8m,
- is2=\E[4l\E>\E[?1034l, kDC=\E[3;2~, kEND=\E[1;2F,
- kHOM=\E[1;2H, kIC=\E[2;2~, kLFT=\E[1;2D, kNXT=\E[6;2~,
- kPRV=\E[5;2~, kRIT=\E[1;2C, ka1=\E[1~, ka3=\E[5~, kb2=\EOu,
- kbs=^?, kc1=\E[4~, kc3=\E[6~, kcbt=\E[Z, kclr=\E[3;5~,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kdl1=\E[3;2~, ked=\E[1;5F, kel=\E[1;2F, kent=\EOM,
- kf1=\EOP, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
- kf13=\E[1;2P, kf14=\E[1;2Q, kf15=\E[1;2R, kf16=\E[1;2S,
- kf17=\E[15;2~, kf18=\E[17;2~, kf19=\E[18;2~, kf2=\EOQ,
- kf20=\E[19;2~, kf21=\E[20;2~, kf22=\E[21;2~,
- kf23=\E[23;2~, kf24=\E[24;2~, kf25=\E[1;5P, kf26=\E[1;5Q,
- kf27=\E[1;5R, kf28=\E[1;5S, kf29=\E[15;5~, kf3=\EOR,
- kf30=\E[17;5~, kf31=\E[18;5~, kf32=\E[19;5~,
- kf33=\E[20;5~, kf34=\E[21;5~, kf35=\E[23;5~,
- kf36=\E[24;5~, kf37=\E[1;6P, kf38=\E[1;6Q, kf39=\E[1;6R,
- kf4=\EOS, kf40=\E[1;6S, kf41=\E[15;6~, kf42=\E[17;6~,
- kf43=\E[18;6~, kf44=\E[19;6~, kf45=\E[20;6~,
- kf46=\E[21;6~, kf47=\E[23;6~, kf48=\E[24;6~,
- kf49=\E[1;3P, kf5=\E[15~, kf50=\E[1;3Q, kf51=\E[1;3R,
- kf52=\E[1;3S, kf53=\E[15;3~, kf54=\E[17;3~,
- kf55=\E[18;3~, kf56=\E[19;3~, kf57=\E[20;3~,
- kf58=\E[21;3~, kf59=\E[23;3~, kf6=\E[17~, kf60=\E[24;3~,
- kf61=\E[1;4P, kf62=\E[1;4Q, kf63=\E[1;4R, kf7=\E[18~,
- kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kil1=\E[2;5~,
- kind=\E[1;2B, kmous=\E[M, kri=\E[1;2A, krmir=\E[2;2~,
- mc0=\E[i, mc4=\E[4i, mc5=\E[5i, op=\E[39;49m, rc=\E8,
- rev=\E[7m, ri=\EM, rmacs=\E(B, rmir=\E[4l, rmkx=\E[?1l\E>,
- rmso=\E[27m, rmul=\E[24m, rs1=\Ec, rs2=\E[4l\E>\E[?1034l,
- sc=\E7, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+ clear=\E[H\E[2J, cub1=^H, cud1=\n, cup=\E[%i%p1%d;%p2%dH,
+ dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, ech=\E[%p1%dX,
+ ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)0,
+ flash=\E[?5h$<100/>\E[?5l, hpa=\E[%i%p1%dG,
+ ich=\E[%p1%d@, is2=\E[4l\E>\E[?1034l, kDC=\E[3;2~,
+ kEND=\E[1;2F, kHOM=\E[1;2H, kIC=\E[2;2~, kLFT=\E[1;2D,
+ kNXT=\E[6;2~, kPRV=\E[5;2~, kRIT=\E[1;2C, ka1=\E[1~,
+ ka3=\E[5~, kb2=\EOu, kbs=^?, kc1=\E[4~, kc3=\E[6~, kcbt=\E[Z,
+ kclr=\E[3;5~, kdl1=\E[3;2~, ked=\E[1;5F, kel=\E[1;2F,
+ khome=\E[1~, kil1=\E[2;5~, kind=\E[1;2B, kmous=\E[M,
+ kri=\E[1;2A, krmir=\E[2;2~, mc0=\E[i, mc4=\E[4i, mc5=\E[5i,
+ op=\E[39;49m, ri=\EM, rmacs=\E(B, rmir=\E[4l,
+ rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m, rs1=\Ec,
+ rs2=\E[4l\E>\E[?1034l, setab=\E[4%p1%dm,
+ setaf=\E[3%p1%dm,
setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}
%=%t3%e%p1%d%;m,
setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}
%=%t3%e%p1%d%;m,
sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|
- %t;7%;%?%p4%t;5%;%?%p7%t;8%;m,
- sgr0=\E[0m, smacs=\E(0, smir=\E[4h, smkx=\E[?1h\E=,
- smso=\E[7m, smul=\E[4m, tbc=\E[3g, u6=\E[%i%d;%dR,
- u7=\E[6n, u8=\E[?1;2c, u9=\E[c, vpa=\E[%i%p1%dd, Se=\E[2 q,
- Ss=\E[%p1%d q, use=vt220+pcedit, use=ecma+index,
- use=xterm+alt1049, use=vt220+cvis, use=xterm+sl,
- use=ecma+italics,
+ %t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m,
+ smacs=\E(0, smir=\E[4h, smkx=\E[?1h\E=, u8=\E[?1;2c,
+ vpa=\E[%i%p1%dd, Se=\E[2 q, Ss=\E[%p1%d q,
+ use=ansi+apparrows, use=ansi+csr, use=ansi+enq,
+ use=ansi+idl, use=ansi+inittabs, use=ansi+local,
+ use=ansi+sgrbold, use=vt100+4bsd, use=vt100+pfkeys,
+ use=vt220+pcedit, use=ecma+index, use=xterm+alt1049,
+ use=vt220+cvis, use=xterm+sl, use=ecma+italics,
+ use=ecma+strikeout, use=bracketed+paste,
+ use=xterm+pcf2,
#
# st-0.1.1
#
@@ -6975,27 +7381,25 @@ st-0.6|simpleterm 0.6,
# - shifted cursor-keys send sequences like rxvt
# - sgr referred to unimplemented "invis" mode.
# Fixes: add eo and xenl per tack, remove nonworking cbt, hts and tbc, invis
-simpleterm|old-st| simpleterm 0.1.1,
+simpleterm|old-st|simpleterm 0.1.1,
am, eo, mir, msgr, ul, xenl,
- colors#8, cols#80, it#8, lines#24, ncv#3, pairs#64,
- acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud=\E[%p1%dB, cud1=\n,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, dch1=\E[P, dl=\E[%p1%dM,
- dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, hpa=\E[%i%p1%dG,
- ht=^I, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\n, kbs=^?,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=\E[3~, kend=\E[4~, kf1=\EOP, kf10=\E[21~,
- kf11=\E[23~, kf12=\E[24~, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
- kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- khome=\E[1~, knp=\E[6~, kpp=\E[5~, op=\E[37;40m, rc=\E8,
- rev=\E[7m, rmacs=\E(B, rmso=\E[m, rmul=\E[m, sc=\E7,
- setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+ cols#80, it#8, lines#24,
+ bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=\r, cub1=^H,
+ cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
+ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+ dch1=\E[P, ed=\E[J, el=\E[K, home=\E[H, hpa=\E[%i%p1%dG,
+ ht=^I, ich=\E[%p1%d@, ind=\n, kbs=^?, kdch1=\E[3~,
+ kend=\E[4~, kf1=\EOP, kf10=\E[21~, kf11=\E[23~,
+ kf12=\E[24~, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\E[15~,
+ kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+ khome=\E[1~, knp=\E[6~, kpp=\E[5~, rev=\E[7m, rmso=\E[m,
+ rmul=\E[m,
sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|
%t;7%;m,
- sgr0=\E[0m, smacs=\E(0, smso=\E[7m, smul=\E[4m,
- use=vt220+cvis, use=ecma+index,
+ sgr0=\E[0m, smso=\E[7m, smul=\E[4m, use=ansi+arrows,
+ use=ansi+csr, use=ansi+idl, use=vt220+cvis,
+ use=ecma+index, use=klone+color, use=xterm+acs,
+
st-16color|stterm-16color|simpleterm with 16-colors,
use=ibm+16color, use=st,
# Tested with st 0.8.2
@@ -7071,7 +7475,7 @@ st-256color|stterm-256color|simpleterm with 256 colors,
# terminal does not respond to 80/132-column switching
# wrapping at the right margin is erratic
# there are several problems in the cursor-movements and screen-features
-# no vt52, no double-sized characters
+# no VT52, no double-sized characters
# Device attributes response says it is a vanilla VT100
# does not respond to xterm mouse controls
# alternate screen tests do not fill the screen, return wrong position
@@ -7085,36 +7489,33 @@ terminator|Terminator no line wrap,
bce, eo, mir, msgr, xenl, xon,
cols#80, it#8, lines#24, lm#0,
acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bold=\E[1m, clear=\E[H\E[2J, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM,
- dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
- flash=^G, home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH,
- il=\E[%p1%dL, il1=\E[L, ind=\n, is1=\E[?47l\E=\E[?1l,
+ bold=\E[1m, clear=\E[H\E[2J, cr=\r, cub1=^H, cud1=\n,
+ cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\E[P,
+ dim=\E[2m, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
+ flash=^G, home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ind=\n,
+ is1=\E[?47l\E=\E[?1l,
is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l, kbs=^?,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP,
- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
- kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf2=\EOQ, kf3=\EOR,
- kf4=\EOS, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
- kf9=\E[20~, rc=\E8, rev=\E[7m, ri=\EM, rmacs=\E(B,
- rmir=\E[4l, rmso=\E[27m, rmul=\E[24m, rs1=\Ec,
- rs2=\E[!p\E[?3;4l\E[4l\E>, s0ds=\E(B, s1ds=\E(0, sc=\E7,
+ kf1=\EOP, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
+ kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
+ kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\E[15~, kf6=\E[17~,
+ kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, khome=\E[1~, rev=\E[7m,
+ ri=\EM, rmacs=\E(B, rmir=\E[4l, rmso=\E[27m, rmul=\E[24m,
+ rs1=\Ec, rs2=\E[!p\E[?3;4l\E[4l\E>, s0ds=\E(B, s1ds=\E(0,
sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p5%t;2%;%?%p1%p3%|%t;7
%;m%?%p9%t\E(0%e\E(B%;,
sgr0=\E[m\E(B, smacs=\E(0, smir=\E[4h, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g, tsl=\E]2;%p1, vpa=\E[%i%p1%dd,
+ smul=\E[4m, tbc=\E[3g, vpa=\E[%i%p1%dd, use=ansi+arrows,
+ use=ansi+csr, use=ansi+enq, use=ansi+idl, use=ansi+local,
use=vt220+pcedit, use=ecma+italics, use=ecma+index,
use=xterm+256setaf, use=xterm+sl-twm,
- use=xterm+alt1049, use=vt220+cvis,
+ use=xterm+alt1049, use=vt220+cvis, use=bracketed+paste,
#### TERMINOLOGY
# https://www.enlightenment.org/about-terminology
# https://github.com/borisfaure/terminology
#
# 2014/10/14:
-# Tested terminology-0.3.0, 0.6.1, using tack and vttest. This is not a vt100
+# Tested terminology-0.3.0, 0.6.1, using tack and vttest. This is not a VT100
# emulator, nor is it compatible with xterm, but it uses a few features from
# both -TD
#
@@ -7123,7 +7524,7 @@ terminator|Terminator no line wrap,
# there are pervasive problems with clearing/erasing parts of the screen
# resizing the window causes it to stop listening to the keyboard
# tack -
-# doesn't understand vt100 CPR needed for resize
+# doesn't understand VT100 CPR needed for resize
# no CBT
# no cvvis
# has invis
@@ -7143,9 +7544,9 @@ terminator|Terminator no line wrap,
# vttest -
# spits lots of messages from termptyesc.c especially in vttest.
# no 132-column mode
-# fails menu 1, 2 (definitely not vt100-compatible)
-# primary (claims vt420 with several options, apparently none work) and
-# secondary report says (perhaps... vt420): \E[>41;285;0c
+# fails menu 1, 2 (definitely not VT100-compatible)
+# primary (claims VT420 with several options, apparently none work) and
+# secondary report says (perhaps... VT420): \E[>41;285;0c
# CHA, HPR, VPA, CNL, CPL work
# BCE with ED/EL - fail
# BCE with ECH/indexing - fail
@@ -7159,12 +7560,10 @@ terminator|Terminator no line wrap,
# This description uses xterm+pcf0, which is misleading because the program
# does not handle combinations of modifiers - but listing them all would
# involve more effort than its developers spent -TD
-terminology-0.6.1|EFL-based terminal emulator,
+terminology-0.6.1|EFL-based terminal emulator (0.6.1),
mc5i@,
blink@, ed@, el@, el1@, invis=\E[8m, kLFT=\E[1;2D,
- kRIT=\E[1;2C, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
- kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- kind=\E[1;2B, kri=\E[1;2A,
+ kRIT=\E[1;2C, kind=\E[1;2B, kri=\E[1;2A,
sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p7%t;8
%;m%?%p9%t\016%e\017%;$<2>,
vpa=\E[%i%p1%dd, kDC3=\E[3;3~, kDC4=\E[3;4~,
@@ -7174,10 +7573,10 @@ terminology-0.6.1|EFL-based terminal emulator,
kLFT3=\E[1;3D, kLFT4=\E[1;4D, kLFT5=\E[1;5D,
kLFT6=\E[1;6D, kLFT7=\E[1;7D, kRIT3=\E[1;3C,
kRIT4=\E[1;4C, kRIT5=\E[1;5C, kRIT6=\E[1;6C,
- kRIT7=\E[1;7C, kUP=\E[1;2A, use=xterm+pcf0, use=vt100,
- use=xterm+256setaf,
+ kRIT7=\E[1;7C, kUP=\E[1;2A, use=ansi+enq, use=xterm+pcf0,
+ use=vt100, use=xterm+256setaf,
-# 2017-11-11
+# 2017-11-11:
# Tested terminology 1.0.0
#
# tack -
@@ -7191,14 +7590,15 @@ terminology-0.6.1|EFL-based terminal emulator,
#
# Aside from the partial fixes for function/cursor/editing keys, no improvement
# in other tests versus 0.6.1
-terminology-1.0.0|EFL-based terminal emulator,
+terminology-1.0.0|EFL-based terminal emulator (1.0.0),
dim=\E[2m, flash=\E[?5h$<100/>\E[?5l, kend=\E[OF,
khome=\E[OH, rmacs=\E(B,
sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;
%?%p1%p3%|%t;7%;%?%p7%t;8%;m$<2>,
sgr0=\E(B\E[m, smacs=\E(0, use=ecma+italics,
use=vt220+cvis, use=xterm+x11mouse, use=xterm+pce2,
- use=xterm+pcf2, use=xterm+pcc2, use=terminology-0.6.1,
+ use=xterm+pcf2, use=xterm+pcc2, use=bracketed+paste,
+ use=terminology-0.6.1,
# 2020/12/26:
# Tested terminology 1.8.1 using tack and vttest.
@@ -7214,13 +7614,14 @@ terminology-1.0.0|EFL-based terminal emulator,
# left/right margins do not work
# most of DECSCUSR works
# most problems with bce are fixed.
-terminology-1.8.1|EFL-based terminal emulator,
+terminology-1.8.1|EFL-based terminal emulator (1.8.1),
km@,
cvvis@, flash@, initc@, kcbt=\E[Z, rmm@, smm@, Ms@,
- use=ecma+index, use=xterm+256setaf, use=ansi+rep,
- use=ecma+strikeout, use=xterm+sm+1006,
- use=xterm+pcfkeys, use=xterm+tmux, use=vt220+cvis,
- use=ecma+italics, use=xterm-basic,
+ use=linux+kbs, use=ecma+index, use=xterm+256setaf,
+ use=ansi+rep, use=ecma+strikeout, use=xterm+focus,
+ use=xterm+sm+1006, use=xterm+pcfkeys, use=xterm+tmux,
+ use=vt220+cvis, use=ecma+italics, use=xterm-basic,
+ use=report+version,
terminology|EFL-based terminal emulator,
use=terminology-1.8.1,
@@ -7242,7 +7643,7 @@ terminology|EFL-based terminal emulator,
# no DECCOLM (does not switch between 80/132 columns)
# otherwise, passes wrapping test
# no DECSCNM
-# identifies as a vt102
+# identifies as a VT102
# numeric keypad does not send expected codes (seen in 0.4.0)
# passes bce test
# vt220:
@@ -7288,12 +7689,19 @@ alacritty-direct|alacritty with direct color indexing,
# added xterm+sl-twm in 0.3.3 -TD
alacritty+common|base fragment for alacritty,
km@, npc,
- kb2=\EOE, kbs=^?, kcbt=\E[Z, kent=\EOM, Se=\E[0 q,
- Smulx=\E[4\:%p1%dm, use=ecma+index, use=xterm+sm+1006,
- use=xterm-basic, use=xterm+app, use=ansi+rep,
- use=xterm+tmux, use=ecma+strikeout, use=xterm+sl-twm,
- use=ecma+italics, use=xterm+pce2, use=xterm+pcc2,
- use=xterm+pcf2,
+ kb2=\EOE, kcbt=\E[Z, kent=\EOM, Se=\E[0 q,
+ Smulx=\E[4:%p1%dm, use=ecma+index, use=xterm+focus,
+ use=xterm+sm+1006, use=xterm-basic, use=xterm+app,
+ use=ansi+rep, use=xterm+tmux, use=ecma+strikeout,
+ use=xterm+sl-twm, use=ecma+italics, use=xterm+pce2,
+ use=xterm+pcc2, use=xterm+pcf2, use=bracketed+paste,
+
+# https://github.com/raphamorim/rio
+# derived from alacritty
+rio|fork of alacritty,
+ use=alacritty,
+rio-direct|fork of alacritty,
+ use=alacritty-direct,
#### Kitty
# https://github.com/kovidgoyal/kitty
@@ -7311,7 +7719,26 @@ alacritty+common|base fragment for alacritty,
# http://lists.gnu.org/archive/html/bug-ncurses/2018-09/msg00005.html
# https://github.com/kovidgoyal/kitty/issues/879
#
-# Version 0.19.1
+# Version 0.21.2 (June 28, 2021)
+# changes since 0.19.1
+# Notes:
+# Repeatable tests with tack and vttest assume a standard screensize --
+# measured in characters. However, kitty uses pixel-measurements and
+# does not readily use characters.
+# Resizing with twm shows only pixel-based hint rather than characters
+# manual page states that it is possible to override initial window size,
+# but configuration file has no effect on initial window size.
+# The same problem with XFCE4, but editing the cached json file works
+# for setting the window size (the "c" suffix for cells does not):
+# {"window-size": [720, 440]}
+# though the values depend upon the font in use.
+# vttest
+# tack
+# flash works
+# invisible text still does not work
+# function/special key modifiers finally work
+#
+# Version 0.19.1 (October 6, 2020)
# changes since 0.13.3:
# vttest
# ISO-6429
@@ -7327,7 +7754,7 @@ alacritty+common|base fragment for alacritty,
# rs1 adds an empty string for resetting title- and other OSC-strings.
# italics work
#
-# Version 0.13.3
+# Version 0.13.3 (January 19, 2019)
# Notes:
# initial screensize 71x22
# does not respond to "resize -s"
@@ -7336,7 +7763,7 @@ alacritty+common|base fragment for alacritty,
# does not switch between 80/132 columns
# fails wrapping test, copying vte/rxvt
# no reverse-background, no blink
-# claims to be vt200:
+# claims to be VT200:
# primary \E[?62;c
# secondary \E[>1;4000;12c
# however -
@@ -7394,41 +7821,88 @@ kitty-direct|KovId's TTY using direct colors,
oc=\E]104\007, use=xterm+direct2, use=kitty+common,
kitty+common|KovId's TTY common properties,
am, mc5i, mir, msgr, npc, xenl,
- cols#80, it#8, lines#24,
+ cols#80, lines#24,
acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxy
yzz{{||}}~~,
- bel=^G, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[2J, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM,
- dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
+ bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=\r, cub1=^H, cud1=\n,
+ cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\E[P,
+ dim=\E[2m, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
flash=\E[?5h$<100/>\E[?5l, home=\E[H, hpa=\E[%i%p1%dG,
- ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L,
- ind=\n, kbs=^?, kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB,
- kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3~, kend=\EOF, kf1=\EOP,
- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[1;2P,
- kf14=\E[1;2Q, kf15=\E[1;2R, kf16=\E[1;2S, kf17=\E[15;2~,
- kf18=\E[17;2~, kf19=\E[18;2~, kf2=\EOQ, kf20=\E[19;2~,
- kf21=\E[20;2~, kf22=\E[21;2~, kf23=\E[23;2~,
- kf24=\E[24;2~, kf25=\E[1;5P, kf26=\E[1;5Q, kf27=\E[1;5R,
- kf28=\E[1;5S, kf29=\E[15;5~, kf3=\EOR, kf30=\E[17;5~,
- kf31=\E[18;5~, kf32=\E[19;5~, kf33=\E[20;5~,
- kf34=\E[21;5~, kf35=\E[23;5~, kf36=\E[24;5~, kf4=\EOS,
- kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- khome=\EOH, kich1=\E[2~, kind=\E[1;2B, knp=\E[6~,
- kpp=\E[5~, kri=\E[1;2A, op=\E[39;49m, rc=\E8, rev=\E[7m,
- ri=\EM, rmacs=\E(B, rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l,
- rmso=\E[27m, rmul=\E[24m, rs1=\E]\E\\\Ec, sc=\E7,
+ ich=\E[%p1%d@, ind=\n, kBEG=\E[1;2E, kbeg=\EOE, kbs=^?,
+ kcbt=\E[Z, op=\E[39;49m, rev=\E[7m, ri=\EM, rmacs=\E(B,
+ rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l, rmso=\E[27m,
+ rmul=\E[24m, rs1=\E]\E\\\Ec,
sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;
%?%p1%p3%|%t;7%;m,
sgr0=\E(B\E[m, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
- smkx=\E[?1h, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
- vpa=\E[%i%p1%dd, use=ansi+enq, use=ansi+rep,
- use=xterm+sm+1006, use=ecma+index, use=xterm+sl-twm,
- use=ecma+strikeout, use=xterm+pce2, use=xterm+pcc2,
- use=ecma+italics, use=xterm+alt1049, use=att610+cvis,
- use=xterm+tmux,
+ smkx=\E[?1h, smso=\E[7m, smul=\E[4m, vpa=\E[%i%p1%dd,
+ Smulx=\E[4:%p1%dm, use=ansi+csr, use=ansi+enq,
+ use=ansi+idl, use=ansi+inittabs, use=ansi+local,
+ use=ansi+rep, use=xterm+focus, use=xterm+sm+1006,
+ use=ecma+index, use=xterm+pcfkeys, use=xterm+sl-twm,
+ use=ecma+strikeout, use=ecma+italics,
+ use=xterm+alt1049, use=att610+cvis, use=xterm+tmux,
+ use=bracketed+paste, use=report+version,
+
+kitty+setal|set underline colors (nonstandard),
+ setal=\E[58:2::%p1%{65536}%/%d:%p1%{256}%/%{255}%&%d:%p1
+ %{255}%&%dm,
+
+######## WAYLAND CLIENTS
+
+#### Foot
+# https://codeberg.org/dnkl/foot/
+# Version 1.8.2
+#
+# This identifies as a VT220 with 4=sixel and 22=color, however:
+# tack:
+# bell does not work
+# status-line does not work because foot does not set the window title
+# sends escape when meta key is used, whether or not smm/rmm enabled
+# vttest:
+# wrap-test fails
+# no application-mode for numeric keypad (unless private mode 1035 is set)
+# no NRCS
+# no VT52
+# no SRM
+# protected areas do not work
+# SU/SD work, SL/SR do not
+# DECRPM responds, but not the corresponding ANSI reports.
+# otherwise few reports, except cursor-position and mouse and some dtterm
+# VT520 cursor-movement works, except for left/right margins
+# supports xterm/DECSCUSR, though default case in vttest does not blink
+# Send: <27> [ 0 <32> q
+# Text: The cursor should be a blinking rectangle
+# partial support for xterm mouse any-event mode and button-event mode:
+# + does not report focus-in/focus-out
+# + does not report buttons 6/7
+# alternate-screen works
+foot|foot terminal emulator,
+ oc=\E]104\E\\, use=xterm+256color2, use=foot+base,
+
+foot-direct|foot with direct color indexing,
+ use=xterm+direct, use=foot+base,
+
+foot+base|foot base fragment,
+ am, bce, bw, mir, msgr, npc, xenl, AX, XT,
+ cols#80, it#8, lines#24,
+ bel=^G, clear=\E[H\E[2J, cr=\r, cub1=^H, cud1=\n, dim=\E[2m,
+ ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
+ flash=\E]555\E\\, ind=\n, is2=\E[!p\E[4l\E>, kbs=^?,
+ kcbt=\E[Z, oc=\E]104\E\\, op=\E[39;49m, ri=\EM,
+ rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m,
+ rs1=\Ec, rs2=\E[!p\E[4l\E>,
+ sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;
+ %?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m,
+ sgr0=\E(B\E[m, smam=\E[?7h, smkx=\E[?1h\E=, E3=\E[3J,
+ use=att610+cvis, use=ansi+csr, use=ansi+cup,
+ use=ansi+enq, use=ansi+local, use=ansi+idc, use=ansi+idl,
+ use=ansi+rca2, use=ansi+rep, use=ansi+tabs,
+ use=ansi+sgrbold, use=ecma+index, use=ecma+italics,
+ use=ecma+strikeout, use=xterm+acs, use=xterm+alt+title,
+ use=xterm+pcfkeys, use=xterm+sm+1006, use=xterm+tmux2,
+ use=xterm+sl-alt, use=bracketed+paste,
+ use=report+version, use=xterm+focus,
######## WEB CLIENTS
@@ -7461,7 +7935,7 @@ kitty+common|KovId's TTY common properties,
# sends utf-8 for meta, like xterm
# vttest
# has problems with menu #1 (wrapping)
-# DA = vt200 with 132 columns, color
+# DA = VT200 with 132 columns, color
# DA2 = 990, 100300 ("\E[>990;100300;0c")
# no VT52, no double-size characters
# vt220 ECH test works, SRM, DECSCA do not
@@ -7482,8 +7956,150 @@ domterm|DomTerm web client,
bel@, blink@, dim@, invis@, kcbt=\E[Z, ritm@, rmkx=\E[?1l,
sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|
%t;7%;m,
- sitm@, smkx=\E[?1h, use=xterm+256setaf, use=ecma+index,
- use=xterm+sm+1006, use=xterm+pcfkeys, use=xterm-basic,
+ sitm@, smkx=\E[?1h, use=linux+kbs, use=xterm+256setaf,
+ use=ecma+index, use=xterm+focus, use=xterm+sm+1006,
+ use=xterm+pcfkeys, use=xterm-basic,
+ use=bracketed+paste,
+
+######## Miscellaneous
+
+#### WezTerm
+# https://wezfurlong.org/wezterm/
+# https://github.com/wez/wezterm
+#
+# which says:
+# "wezterm is a terminal emulator with support for modern features
+# such as fonts with ligatures, hyperlinks, tabs and multiple windows."
+#
+# wezterm-20230712_072601_f4abf8fd-1.fedora38.x86_64
+# tested with MacOS and Fedora 38/39.
+#
+# General:
+# + written in Rust.
+# + initial screensize is odd, i.e., 81x24
+# provides no visual feedback on resize
+# ignores "resize -s"
+# manual resize and then running resize got off-by-one adjustment
+# + leaves debris (unerased cells) when switching between normal/alternate
+# screens.
+# + sets TERM=xterm-256color
+# tack:
+# + misplaced message in "am" screen
+# + fails xenl (should be false)
+# + cvvis is same as cnorm, block
+# + has blink and dim
+# + in bce test, blue isn't really blue but some pale purple
+# + modified keys mostly work, but its tab control interferes with some
+# + rmm/smm don't work (always uses escape-prefix)
+# wraptest:
+# + poor (doesn't copy anyone, most of the results are wrong)
+# vttest:
+# + DA is VT5xx with sixel, selective erase, user windows, color
+# + DA2 is VT220 version 277
+# + only the VT100 character set works, contrary to DA/DA2.
+# + no NRCS, either
+# + double-sized character work, with some debris
+# + doesn't switch between 80/132 columns.
+# + numeric keypad ANSI application mode escapes don't work.
+# + numeric keypad ANSI mode misses "0", ".", ","
+# + uses PC-style editing keypad \E[H and \E[F for Find and Select
+# + no VT52
+# + DECSED selective erase doesn't work
+# + SRM doesn't work
+# + 8-bit controls don't work
+# + DECNCSM doesn't work
+# + most DECRQSS do not work (DECSCL, DECSTBM, DECSLRM respond)
+# + DECRQM/DECRPM don't work (most reply permanently reset)
+# + DECLRMM responds to DECRPM, but VT420 rectangle tests do not work.
+# Some of the left/right margin tests work with the cursor-movement screen,
+# but DECFI/DECBI do not work. The other cursor-movement tests are buggy.
+# + implements ECMA-48 cursor movement, but not SL/SR or protected area
+# + implements xterm normal, any-event and button-event mouse, none of the rest
+# + reports window size, none of the other window reports
+wezterm|Wez's Terminal Emulator,
+ km@, xenl@,
+ cvvis@, rmkx=\E[?1l, rmm@, smkx=\E[?1h, smm@,
+ use=xterm-256color,
+
+#### Contour
+# https://github.com/contour-terminal/contour
+#
+# "Modern C++ Terminal Emulator"
+# Contour is a modern and actually fast, modal, virtual terminal emulator,
+# for everyday use. It is aiming for power users with a modern feature mindset.
+#
+# That is three occurrences of "modern" too many -TD
+#
+# MacOS
+# - cannot run, because the package is not signed.
+#
+# Fedora rawhide
+# contour-terminal-0.3.12.262-6.fc39.x86_64
+# - dumps core, cannot test
+#
+# Fedora 39
+# contour-terminal-0.4.0.6245-1.fc38.x86_64
+# - starts but doesn't display
+#
+# Fedora 38
+# contour-terminal-0.4.0.6245-1.fc38.x86_64
+# - starts but doesn't display
+# contour-terminal-0.3.12.262-1.fc38.x86_64
+# + testable (see below)
+# + initial screensize 62x23, no visual feedback on resize, no "resize -s"
+#
+# Sets TERM=contour (which is preferable to xterm).
+#
+# tack:
+# + cvvis is same as cnorm, "|"
+# + sitm/ritm don't work
+# + rmm/smm don't work (always uses escape, but terminfo defines km)
+# + initp interchanges red/blue (bug in tack?)
+# + modified F1-F4 are wrong, sending SS3 with modifier numbers
+# + shifted editing-keypad doesn't send anything
+# + meta key doesn't work
+# + status-line works (based on xterm, including window-resizing)
+# + dots don't line up for home test
+#
+# wraptest:
+# + poor 7/25 differences from xterm (perhaps copying iTerm2)
+#
+# vttest:
+# + hangs in menu 1, etc., when it tries to resize
+#
+# infocmp vs xterm-256color
+# + missing XM/xm
+# + rmcup/smcup doesn't use title-stack (but is implemented)
+# + doesn't use SGR mouse (but is implemented)
+# + sgr doesn't define dim, but dim capability is in terminfo (implemented)
+#
+# Developer's terminfo (compiled-in) uses some extensions.
+contour|contour-latest|Contour Terminal Emulator,
+ am, bce, eslok, hs, km, mc5i, mir, msgr, npc, xenl, xvpa,
+ cols#80, lines#24, pairs#0x7fff,
+ bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=\r, cub1=^H, cud1=\n,
+ dim=\E[2m, dsl=\E[$~, ech=\E[%p1%dX, el1=\E[1K,
+ flash=\E[?5h$<100/>\E[?5l, fsl=\E[$}, hpa=\E[%i%p1%dG,
+ ind=\n, indn=\E[%p1%dS, invis=\E[8m, ka1=, ka3=, kbs=^?, kc1=,
+ kc3=, kcbt=\E[Z, kend=\EOF, khlp=, kmous=\E[M, kund=,
+ oc=\E]104\E\\, op=\E[39;49m, rev=\E[7m, ri=\EM,
+ rin=\E[%p1%dT, rmam=\E[?7l, rmkx=\E[?1l, rmso=\E[27m,
+ rmul=\E[24m, rs1=\E]\E\\\Ec,
+ sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|
+ %t;7%;%?%p4%t;5%;%?%p7%t;8%;m,
+ sgr0=\E(B\E[m, smam=\E[?7h, smkx=\E[?1h, smso=\E[7m,
+ smul=\E[4m, tsl=\E[2$~\E[1$}\E[H\E[2J, vpa=\E[%i%p1%dd,
+ Cs=\E]12;%p1%s\E\\, E3=\E[3J, Rmol=\E[55m, Se=\E[ q,
+ Smol=\E[53m, Smulx=\E[4:%p1%dm, Ss=\E[%p1%d q,
+ use=ansi+apparrows, use=ansi+cup, use=ansi+csr,
+ use=ansi+erase, use=ansi+idc, use=ansi+idl,
+ use=ansi+inittabs, use=ansi+local, use=ansi+rep,
+ use=att610+cvis, use=ecma+italics, use=ecma+strikeout,
+ use=xterm+256color, use=xterm+acs, use=xterm+alt1049,
+ use=xterm+pcc2, use=xterm+pce2, use=xterm+pcf2,
+
+contour-direct|Contour terminal with direct colors,
+ use=xterm+direct, use=contour,
######## UNIX VIRTUAL TERMINALS, VIRTUAL CONSOLES, AND TELNET CLIENTS
#
@@ -7496,9 +8112,8 @@ cbunix|cb unix virtual terminal,
cols#80, lines#24, lm#0,
bel=^G, clear=\EL, cr=\r, cub1=^H, cud1=\n, cuf1=\EC,
cup=\EG%p2%c%p1%c, cuu1=\EA, dch1=\EM, dl1=\EN, ed=\EL,
- el=\EK, ich1=\EO, il1=\EP, ind=\n, kcub1=\ED, kcud1=\EB,
- kcuf1=\EC, kcuu1=\EA, khome=\EE, rmso=\Eb^D, rmul=\Eb^A,
- smso=\Ea^D, smul=\Ea^A,
+ el=\EK, ich1=\EO, il1=\EP, ind=\n, khome=\EE, rmso=\Eb^D,
+ rmul=\Eb^A, smso=\Ea^D, smul=\Ea^A, use=vt52+arrows,
# (vremote: removed obsolete ":nl@:" -- esr)
vremote|virtual remote terminal,
am@,
@@ -7514,39 +8129,28 @@ pty|4bsd pseudo teletype,
# https://github.com/emacs-mirror/emacs/blob/master/lisp/term.el
#
# The codes supported by the term.el terminal emulation in GNU Emacs 19.30
-eterm|gnu emacs term.el terminal emulation,
+eterm|GNU Emacs term.el terminal emulation,
am, mir, xenl,
cols#80, lines#24,
- bel=^G, bold=\E[1m, clear=\E[H\E[J, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
- el=\E[K, el1=\E[1K, home=\E[H, ht=^I, ich=\E[%p1%d@,
- il=\E[%p1%dL, il1=\E[L, ind=\n, rev=\E[7m,
- rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmso=\E[m, rmul=\E[m,
- sgr0=\E[m, smcup=\E7\E[?47h, smir=\E[4h, smso=\E[7m,
- smul=\E[4m,
+ bel=^G, bold=\E[1m, cr=\r, csr=\E[%i%p1%d;%p2%dr, cub1=^H,
+ cud1=\n, cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\E[P,
+ el1=\E[1K, home=\E[H, ht=^I, ich=\E[%p1%d@, ind=\n,
+ rev=\E[7m, rmir=\E[4l, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
+ smir=\E[4h, smso=\E[7m, smul=\E[4m, use=ansi+cpr,
+ use=ansi+erase, use=ansi+idl, use=ansi+local,
+ use=xterm+alt47,
# The codes supported by the term.el terminal emulation in GNU Emacs 22.2
eterm-color|Emacs term.el terminal emulator term-protocol-version 0.96,
- am, mir, msgr, xenl,
- colors#8, cols#80, lines#24, pairs#64,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
- el=\E[K, el1=\E[1K, home=\E[H, ht=^I, ich=\E[%p1%d@,
- il=\E[%p1%dL, il1=\E[L, ind=\n, invis=\E[8m, kbs=^?,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM, rmir=\E[4l,
- rmso=\E[27m, rmul=\E[24m, rs1=\Ec, sc=\E7,
- setab=\E[%p1%'('%+%dm, setaf=\E[%p1%{30}%+%dm,
+ msgr,
+ colors#8, pairs#64,
+ kbs=^?, khome=\E[1~, op=\E[39;49m, ri=\EM, rmso=\E[27m,
+ rmul=\E[24m, rs1=\Ec, setab=\E[%p1%'('%+%dm,
+ setaf=\E[%p1%{30}%+%dm,
sgr=\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p6%t;1%;%?
%p7%t;8%;m,
- sgr0=\E[m, smir=\E[4h, smso=\E[7m, smul=\E[4m,
- u6=\E[%i%d;%dR, u7=\E[6n, use=vt220+pcedit,
+ sgr0=\E[m, use=ansi+apparrows, use=ansi+csr,
+ use=ansi+sgr, use=vt220+pcedit, use=eterm,
# shell.el can "do" color, though not nearly as well.
#
@@ -7563,10 +8167,10 @@ eterm-color|Emacs term.el terminal emulator term-protocol-version 0.96,
# italics but does not lose the color information -TD 2017/01/28.
dumb-emacs-ansi|Emacs dumb terminal with ANSI color codes,
am, hc,
- colors#8, it#8, ncv#13, pairs#64,
+ it#8, ncv#13,
bold=\E[1m, cud1=\n, ht=^I, ind=\n, op=\E[39;49m,
- rmul=\E[24m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
- sgr0=\E[m, smul=\E[4m, use=ecma+italics,
+ rmul=\E[24m, sgr0=\E[m, smul=\E[4m, use=ecma+italics,
+ use=klone+color,
#### Screen
@@ -7640,40 +8244,44 @@ dumb-emacs-ansi|Emacs dumb terminal with ANSI color codes,
# since 1994 (i.e., screen 3.0.5), stating that it was an obscure code used by
# the (Siemens Nixdorf) 97801 terminal. It was not shown in the termcap or
# terminfo entries (which list about 60% of the control sequences).
-screen|VT 100/ANSI X3.64 virtual terminal,
- OTbs, OTpt, am, km, mir, msgr, xenl, G0,
- colors#8, cols#80, it#8, lines#24, ncv@, pairs#64, U8#1,
+screen-base|VT 100/ANSI X3.64 virtual terminal (base),
+ OTbs, OTpt, km, mir, xenl, G0,
+ ncv@, U8#1,
acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxy
yzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
- clear=\E[H\E[J, cnorm=\E[34h\E[?25h, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EM,
- cvvis=\E[34l, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
- enacs=\E(B\E)0, flash=\Eg, home=\E[H, hpa=\E[%i%p1%dG,
- ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L,
- ind=\n, indn=\E[%p1%dS, is2=\E)0, kbs=^H, kcbt=\E[Z,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP,
- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf2=\EOQ, kf3=\EOR,
- kf4=\EOS, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
- kf9=\E[20~, kmous=\E[M, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM,
- rmacs=^O, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[23m,
- rmul=\E[24m, rs2=\Ec\E[?1000l\E[?25h, sc=\E7,
+ blink=\E[5m, bold=\E[1m, civis=\E[?25l,
+ cnorm=\E[34h\E[?25h, cub1=^H, cud1=\n,
+ cup=\E[%i%p1%d;%p2%dH, cuu1=\EM, cvvis=\E[34l,
+ dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, el1=\E[1K, flash=\Eg,
+ hpa=\E[%i%p1%dG, ich=\E[%p1%d@, indn=\E[%p1%dS, is2=\E)0,
+ kbs=^?, kcbt=\E[Z, kf1=\EOP, kf10=\E[21~, kf11=\E[23~,
+ kf12=\E[24~, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\E[15~,
+ kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+ khome=\E[1~, kmous=\E[M, nel=\EE, rev=\E[7m, ri=\EM,
+ rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[23m, rmul=\E[24m,
+ rs2=\Ec\E[?1000l\E[?25h,
sgr=\E[0%?%p6%t;1%;%?%p1%t;3%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;
5%;%?%p5%t;2%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smir=\E[4h, smkx=\E[?1h\E=,
- smso=\E[3m, smul=\E[4m, tbc=\E[3g, vpa=\E[%i%p1%dd,
- E0=\E(B, S0=\E(%p1%c, use=vt220+pcedit,
- use=xterm+alt1049, use=ecma+color, use=vt100+enq,
+ sgr0=\E[m\017, smir=\E[4h, smkx=\E[?1h\E=, smso=\E[3m,
+ smul=\E[4m, vpa=\E[%i%p1%dd, E0=\E(B, S0=\E(%p1%c,
+ use=ansi+apparrows, use=ansi+csr, use=ansi+erase,
+ use=ansi+idl, use=ansi+inittabs, use=ansi+local,
+ use=xterm+kbs, use=vt220+pcedit, use=xterm+alt1049,
+ use=ecma+color, use=vt100+enq, use=vt100+4bsd,
+
+screen|VT 100/ANSI X3.64 virtual terminal,
+ use=screen4,
+
+no+brackets|cancel bracketed paste,
+ BD@, BE@, PE@, PS@,
+
# The bce and status-line entries are from screen 3.9.13 (and require some
# changes to .screenrc).
screen-bce|VT 100/ANSI X3.64 virtual terminal with bce,
bce,
- ech@, use=screen4,
+ ech@, use=screen,
screen-s|VT 100/ANSI X3.64 virtual terminal with hardstatus line,
- dsl=\E_\E\\, fsl=\E\\, tsl=\E_, use=screen4,
+ dsl=\E_\E\\, fsl=\E\\, tsl=\E_, use=screen,
# ======================================================================
# Entries for GNU Screen with 16 colors.
@@ -7684,7 +8292,7 @@ screen-s|VT 100/ANSI X3.64 virtual terminal with hardstatus line,
# do all support 16 color palette.
screen-16color|GNU Screen with 16 colors,
- use=ibm+16color, use=screen4,
+ use=ibm+16color, use=screen,
screen-16color-s|GNU Screen with 16 colors and status line,
use=ibm+16color, use=screen-s,
@@ -7699,13 +8307,13 @@ screen-16color-bce-s|GNU Screen with 16 colors using BCE and status line,
# Entries for GNU Screen 4.02 with --enable-colors256.
screen-256color|GNU Screen with 256 colors,
- use=xterm+256setaf, use=screen4,
+ use=xterm+256setaf, use=screen,
screen-256color-s|GNU Screen with 256 colors and status line,
use=xterm+256setaf, use=screen-s,
screen-256color-bce|GNU Screen with 256 colors and BCE,
- bce, use=xterm+256setaf, use=screen-bce,
+ use=xterm+256setaf, use=screen-bce,
screen-256color-bce-s|GNU Screen with 256 colors using BCE and status line,
bce, use=xterm+256setaf, use=screen-s,
@@ -7714,7 +8322,7 @@ screen.xterm-256color|GNU Screen with xterm using 256 colors,
use=xterm+256setaf, use=screen.xterm-new,
screen.konsole-256color|GNU Screen with konsole using 256 colors,
- use=xterm+256setaf, use=screen.konsole,
+ XR@, use=xterm+256setaf, use=screen.konsole,
screen.vte-256color|GNU Screen with vte using 256 colors,
use=xterm+256setaf, use=screen.vte,
@@ -7723,7 +8331,7 @@ screen.putty-256color|GNU Screen with putty using 256 colors,
use=xterm+256setaf, use=screen.putty,
screen.mlterm-256color|GNU Screen with mlterm using 256 colors,
- use=xterm+256setaf, use=screen.mlterm,
+ XR@, use=xterm+256setaf, use=screen.mlterm,
# ======================================================================
@@ -7761,6 +8369,7 @@ screen+italics|screen cannot support italics,
# match. Hence, no "screen.xterm" entry is provided, since that would
# create heartburn for people running remote xterm's.
# (f) screen does not support rep.
+# (g) the xterm-new compatibility does not include bracketed paste.
#
# xterm (-xfree86 or -r6) does not normally support kIC, kNXT and kPRV
# since the default translations override the built-in keycode
@@ -7771,9 +8380,14 @@ screen.xterm-xfree86|screen.xterm-new|screen customized for modern xterm,
sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|
%t;7%;%?%p4%t;5%;%?%p5%t;2%;m,
E3@, use=screen+italics, use=screen+fkeys,
- use=xterm+x11mouse, use=xterm-new,
+ use=xterm+x11mouse, use=ecma+index, use=ansi+rep,
+ use=ecma+strikeout, use=xterm+pcfkeys,
+ use=xterm+nofkeys,
+
+# Don't use this, because not everyone has "screen.xterm-new":
#:screen.xterm|screen for modern xterm,
#: use=screen.xterm-new,
+
# xterm-r6 does not really support khome/kend unless it is propped up by
# the translations resource.
screen.xterm-r6|screen customized for X11R6 xterm,
@@ -7785,36 +8399,38 @@ screen.teraterm|disable ncv in teraterm,
acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i
\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u
\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
- use=screen+fkeys, use=xterm+x11mouse, use=screen4,
+ use=screen+fkeys, use=xterm+x11mouse, use=screen,
# Other terminals
screen.rxvt|screen in rxvt,
bw, XT,
cvvis@, flash@, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
kcuu1=\EOA, use=screen+fkeys, use=vt100+enq,
use=rxvt+pcfkeys, use=xterm+x11mouse, use=vt220+keypad,
- use=screen4,
+ use=screen,
screen.Eterm|screen in Eterm,
use=xterm+x11mouse, use=screen+fkeys, use=Eterm,
screen.mrxvt|screen in mrxvt,
use=xterm+x11mouse, use=screen+fkeys, use=mrxvt,
screen.vte|screen in any VTE-based terminal,
use=xterm+x11mouse, use=screen+italics,
- use=screen+fkeys, use=vte,
+ use=screen+fkeys, use=no+brackets, use=vte,
screen.gnome|screen in GNOME Terminal,
use=xterm+x11mouse, use=screen+italics,
- use=screen+fkeys, use=gnome,
+ use=screen+fkeys, use=no+brackets, use=gnome,
screen.konsole|screen in KDE console window,
- use=xterm+x11mouse, use=screen+italics,
- use=screen+fkeys, use=konsole,
+ XR@, use=xterm+x11mouse, use=screen+italics,
+ use=screen+fkeys, use=no+brackets, use=konsole,
# fix the backspace key
-screen.linux|screen.linux-s|screen in linux console,
+screen.linux|screen.linux-s|screen in Linux console,
bw,
- kbs=^?, kcbt@, use=linux+sfkeys, use=xterm+x11mouse,
- use=screen+fkeys, use=screen4,
+ kcbt@, use=linux+sfkeys, use=xterm+x11mouse,
+ use=screen+fkeys, use=screen,
screen.mlterm|screen in mlterm,
- use=xterm+x11mouse, use=screen+fkeys, use=mlterm,
+ XR@, use=xterm+x11mouse, use=screen+fkeys,
+ use=no+brackets, use=mlterm,
screen.putty|screen in putty,
- use=xterm+x11mouse, use=screen+fkeys, use=putty,
+ use=xterm+x11mouse, use=screen+fkeys, use=no+brackets,
+ use=putty,
# The default "screen" entry is reasonably portable, but not optimal for the
# most widely-used terminal emulators. The "bce" capability is supported in
@@ -7842,55 +8458,47 @@ screen-bce.mrxvt|screen optimized for mrxvt,
bce,
ech@, use=screen.mrxvt,
screen-bce.gnome|screen optimized for GNOME-Terminal,
- bce,
ech@, use=screen+italics, use=screen.gnome,
screen-bce.konsole|screen optimized for KDE console window,
- bce,
ech@, use=screen+italics, use=screen.konsole,
-screen-bce.linux|screen optimized for linux console,
+screen-bce.linux|screen optimized for Linux console,
bce,
ech@, use=screen.linux,
screen-w|VT 100/ANSI X3.64 virtual terminal with 132 cols,
- cols#132, use=screen4,
+ cols#132, use=screen,
+
+screen2|VT 100/ANSI X3.64 virtual terminal (old 2.x),
+ cols#80, lines#24,
+ clear=\E[2J\E[H, cr=\r, cub1=^H, cup=\E[%i%p1%d;%p2%dH,
+ ed=\E[J, el=\E[K, ich1=, ind=\n, kbs=^H, kf0=\E~, kf1=\ES,
+ kf2=\ET, kf3=\EU, kf4=\EV, kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER,
+ kf9=\E0I, khome=\EH, nel=\r\n, rc=\E8, ri=\EM, rmso=\E[23m,
+ rmul=\E[24m, rs1=\Ec, sc=\E7, sgr0=\E[m, smso=\E[3m,
+ smul=\E[4m, use=ansi+idc, use=ansi+idl,
+ use=ansi+inittabs, use=ansi+local, use=vt52+arrows,
-screen2|old VT 100/ANSI X3.64 virtual terminal,
- cols#80, it#8, lines#24,
- cbt=\E[Z, clear=\E[2J\E[H, cr=\r, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
- el=\E[K, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=, il=\E[%p1%dL,
- il1=\E[L, ind=\n, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
- kcuu1=\EA, kf0=\E~, kf1=\ES, kf2=\ET, kf3=\EU, kf4=\EV,
- kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER, kf9=\E0I, khome=\EH,
- nel=\r\n, rc=\E8, ri=\EM, rmir=\E[4l, rmso=\E[23m,
- rmul=\E[24m, rs1=\Ec, sc=\E7, sgr0=\E[m, smir=\E[4h,
- smso=\E[3m, smul=\E[4m, tbc=\E[3g,
# (screen3: removed unknown ":xv:LP:G0:" -- esr)
-screen3|older VT 100/ANSI X3.64 virtual terminal,
+screen3|VT 100/ANSI X3.64 virtual terminal (old 3.x),
km, mir, msgr,
- cols#80, it#8, lines#24,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
- cr=\r, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EM,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
- el=\E[K, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
- il=\E[%p1%dL, il1=\E[L, ind=\n, is2=\E)0, kbs=^H, kcub1=\EOD,
- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP, kf2=\EOQ,
- kf3=\EOR, kf4=\EOS, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM,
- rmir=\E[4l, rmkx=\E>, rmso=\E[23m, rmul=\E[24m, rs1=\Ec,
- sc=\E7, sgr0=\E[m, smir=\E[4h, smkx=\E=, smso=\E[3m,
- smul=\E[4m, tbc=\E[3g,
+ cols#80, lines#24,
+ bel=^G, blink=\E[5m, bold=\E[1m, cr=\r, cub1=^H, cud1=\n,
+ cup=\E[%i%p1%d;%p2%dH, cuu1=\EM, dch=\E[%p1%dP,
+ dch1=\E[P, home=\E[H, ich=\E[%p1%d@, ind=\n, is2=\E)0,
+ kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+ kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, nel=\EE, rev=\E[7m,
+ ri=\EM, rmir=\E[4l, rmkx=\E>, rmso=\E[23m, rmul=\E[24m,
+ rs1=\Ec, sgr0=\E[m, smir=\E[4h, smkx=\E=, smso=\E[3m,
+ smul=\E[4m, use=ansi+csr, use=ansi+erase, use=ansi+idl,
+ use=ansi+inittabs, use=ansi+local,
# screen 4.0 was released 2003-07-21, and as of March 2019, its terminfo file
# was last updated in 2009 to include 256-color support. The most recent
# release is 4.6.2 (October 2017).
-screen4|VT 100/ANSI X3.64 virtual terminal,
- use=ecma+index, use=screen,
+screen4|VT 100/ANSI X3.64 virtual terminal (4.x),
+ use=ecma+index, use=screen-base,
-# As of March 2019, screen 5.0 has not been released.
+# As of December 2022, screen 5.0 has not been released.
#
# However,
#
@@ -7906,7 +8514,8 @@ screen5|VT 100/ANSI X3.64 virtual terminal (someday),
rmso=\E[27m,
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?
%p5%t;2%;m%?%p9%t\016%e\017%;,
- smso=\E[7m, use=ecma+italics, use=screen4,
+ smso=\E[7m, use=ecma+italics, use=ecma+index,
+ use=screen-base,
#### Tmux
@@ -7919,21 +8528,67 @@ screen5|VT 100/ANSI X3.64 virtual terminal (someday),
# various entries such as screen.xterm-new provide a way to more closely
# match the terminal.
tmux|tmux terminal multiplexer,
- invis=\E[8m, kbs=^?, rmso=\E[27m,
+ invis=\E[8m, rmso=\E[27m,
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?
%p5%t;2%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- smso=\E[7m, E3=\E[3J, Smulx=\E[4\:%p1%dm,
+ smso=\E[7m, E3=\E[3J, Smulx=\E[4:%p1%dm,
use=ecma+italics, use=ecma+strikeout, use=xterm+edit,
use=xterm+pcfkeys, use=xterm+sl, use=xterm+tmux,
- use=screen,
+ use=screen, use=bracketed+paste, use=report+version,
+ use=xterm+focus,
tmux-256color|tmux with 256 colors,
use=xterm+256setaf, use=tmux,
tmux-direct|tmux with direct-color indexing,
- setal=\E[%?%p1%{8}%<%t5%p1%d%e58\:2\:\:%p1%{65536}%/%d\:%p1
- %{256}%/%{255}%&%d\:%p1%{255}%&%d%;m,
- use=xterm+direct, use=tmux,
+ use=kitty+setal, use=xterm+direct, use=tmux,
+
+#### Mosh
+# https://mosh.org/
+# mosh 1.3.2
+#
+# mosh's DA1 identifies it as a VT220, but sets $TERM to "xterm" or
+# "xterm-256color" (hard-coded), which in its pretense that it is xterm, is
+# several years out of date.
+#
+# There is little documentation; the existing manpages amount to a quarter of
+# the length of mosh.org's heavily promotional website. This entry is based
+# on testing, and reading the source-code. For the latter, analysis is aided
+# by the developer's extensive use of hard-coded strings.
+#
+# The website has an example "Tricky unicode", which shows a shell command
+# with a typo (i.e., assuming that a byte in octal uses 4 digits) and suggests
+# that mosh and OS X Terminal "gets it right".
+#
+# The example as shown would not work. Correcting the typo, xterm gives the
+# result expected by the mosh developer.
+#
+# The other examples follow in a similar vein.
+#
+# It does not support these xterm features:
+# use=ansi+rep (xterm patch #36, 1997)
+# use=ecma+strikeout (xterm patch #305, 2014)
+# use=vt420+lrmm (xterm patch #279, 2012)
+# titlestack in smcup/rmcup has no effect (xterm patch #251, 2009)
+# does not support "dim" (xterm patch #305, 2014)
+# In tack
+# rmkx/smkx has no effect on numeric keypad
+# acs stuff has no effect, is included here for ease of comparison
+#
+# Unlike screen and tmux, mosh has only limited awareness of a terminal
+# description. It assumes that the underlying terminal is xterm, and would
+# not work well with terminals using other key-definitions, such as urxvt.
+mosh|mobile shell,
+ U8#1,
+ sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|
+ %t;7%;%?%p4%t;5%;%?%p7%t;8%;m,
+ sgr0=\E(B\E[m, use=ansi+enq, use=xterm+meta,
+ use=ecma+italics, use=ecma+index, use=xterm+acs,
+ use=xterm+focus, use=xterm+sm+1006, use=xterm+pcfkeys,
+ use=xterm-xfree86, use=bracketed+paste,
+
+mosh-256color|mosh using 256-colors,
+ use=xterm+256color, use=mosh,
#### Dvtm
@@ -7957,41 +8612,35 @@ tmux-direct|tmux with direct-color indexing,
# + Most of the mode-settings in the initialization/reset strings are not
# implemented; dvtm copies its description from rxvt.
dvtm|dynamic virtual terminal manager,
- am, eo, mir, msgr, xenl, AX,
- colors#8, cols#80, it#8, lines#24, ncv@, pairs#64,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
- enacs=\E(B\E)0, home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH,
- ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\n,
+ eo, mir, xenl,
+ ncv@,
+ blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J, cub1=^H, cud1=\n,
+ cup=\E[%i%p1%d;%p2%dH, ed=\E[J, el=\E[K, el1=\E[1K,
+ hpa=\E[%i%p1%dG, ich=\E[%p1%d@, ich1=\E[@,
is1=\E[?47l\E=\E[?1l,
is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l,
kDC=\E[3$, kEND=\E[8$, kHOM=\E[7$, kIC=\E[2$, kLFT=\E[d,
kNXT=\E[6$, kPRV=\E[5$, kRIT=\E[c, ka1=\EOw, ka3=\EOy,
- kb2=\EOu, kbs=^?, kc1=\EOq, kc3=\EOs, kcbt=\E[Z, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kel=\E[8\^, kend=\E[8~,
- kent=\EOM, kf0=\E[21~, kf1=\E[11~, kf10=\E[21~,
+ kb2=\EOu, kbs=^?, kc1=\EOq, kc3=\EOs, kcbt=\E[Z, kel=\E[8\^,
+ kend=\E[8~, kent=\EOM, kf0=\E[21~, kf1=\E[11~, kf10=\E[21~,
kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
kf19=\E[33~, kf2=\E[12~, kf20=\E[34~, kf21=\E[23$,
kf22=\E[24$, kf3=\E[13~, kf4=\E[14~, kf5=\E[15~,
kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- khome=\E[7~, kind=\E[a, kmous=\E[M, kri=\E[b, op=\E[39;49m,
- rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O, rmcup=\E[2J\E[?47l\E8,
- rmir=\E[4l, rmso=\E[27m, rmul=\E[24m,
+ khome=\E[7~, kind=\E[a, kmous=\E[M, kri=\E[b, rev=\E[7m,
+ ri=\EM, rmir=\E[4l, rmso=\E[27m, rmul=\E[24m,
rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H,
rs2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?
25h,
- s0ds=\E(B, s1ds=\E(0, sc=\E7, setab=\E[4%p1%dm,
- setaf=\E[3%p1%dm,
+ s0ds=\E(B, s1ds=\E(0,
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?
%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smcup=\E7\E[?47h, smir=\E[4h,
- smso=\E[7m, smul=\E[4m, tbc=\E[3g, vpa=\E[%i%p1%dd,
- use=vt220+vtedit, use=vt220+cvis, use=ecma+italics,
+ sgr0=\E[m\017, smir=\E[4h, smso=\E[7m, smul=\E[4m,
+ vpa=\E[%i%p1%dd, use=ansi+arrows, use=ansi+csr,
+ use=ansi+idl, use=ansi+local, use=xterm+alt47,
+ use=vt220+vtedit, use=vt220+cvis, use=ecma+color,
+ use=ecma+italics, use=vt100+4bsd,
dvtm-256color|dynamic virtual terminal manager with 256 colors,
colors#0x100, pairs#0x10000,
@@ -8010,7 +8659,7 @@ dvtm-256color|dynamic virtual terminal manager with 256 colors,
# from www.ncsa.edu. This terminfo description file is based on xterm-vt220,
# xterm+sl, and the docs at NCSA. It works well.
#
-# NCSA Telnet 2.6 for Macintosh in vt220 8-bit emulation mode
+# NCSA Telnet 2.6 for Macintosh in VT220 8-bit emulation mode
# The terminal options should be set as follows:
# Xterm sequences ON
# use VT wrap mode ON
@@ -8037,41 +8686,38 @@ dvtm-256color|dynamic virtual terminal manager with 256 colors,
# The status-line manipulation is a mapping of the xterm-compatible control
# sequences for setting the window-title. So you must use tsl and fsl in
# pairs, since the latter ends the string that is loaded to the window-title.
-ncsa-m|ncsa-vt220-8|NCSA Telnet 2.6 for Macintosh in vt220-8 mode,
+ncsa-m|ncsa-vt220-8|NCSA Telnet 2.6 for Macintosh in VT220-8 mode,
am, km, mir, msgr, xenl,
- acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
- el=\E[K, el1=\E[1K, enacs=\E)0,
+ cub1=^H, cud1=\n, cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP,
+ dch1=\E[P, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)0,
flash=\E[?5h$<100/>\E[?5l, home=\E[H, ht=^I, hts=\EH,
ich=\E[%p1%d@, if=/usr/share/tabset/vt100,
- il=\E[%p1%dL, il1=\E[L, ind=\n$<150*>,
- is2=\E7\E[r\E[m\E[?7h\E[?1;4;6l\E[4l\E8\E>, kbs=^H,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+ ind=\n$<150*>,
+ is2=\E7\E[r\E[m\E[?7h\E[?1;4;6l\E[4l\E8\E>,
kdch1=\E[4~, kend=\E[5~, kf1=\E[17~, kf10=\E[28~,
kf11=\E[29~, kf12=\E[31~, kf13=\E[32~, kf14=\E[33~,
kf15=\E[34~, kf2=\E[18, kf3=\E[19~, kf4=\E[20~, kf5=\E[21~,
kf6=\E[23~, kf7=\E[24~, kf8=\E[25~, kf9=\E[26~, khlp=\E[1~,
khome=\E[2~, knp=\E[6~, kpp=\E[3~, mc4=\E[4i, mc5=\E[5i,
- rc=\E8, rev=\E[7m, rf=/usr/share/tabset/vt100, ri=\EM,
- rmacs=\E(B, rmam=\E[?7l, rmcup=\E[2J\E8, rmir=\E[4l,
- rmso=\E[27m, rmul=\E[24m,
- rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;4;6l\E[4l\E>, sc=\E7,
+ rev=\E[7m, rf=/usr/share/tabset/vt100, ri=\EM,
+ rmam=\E[?7l, rmcup=\E[2J\E8, rmir=\E[4l, rmso=\E[27m,
+ rmul=\E[24m,
+ rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;4;6l\E[4l\E>,
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?
%p9%t\E(0%e\E(B%;,
- sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smcup=\E7,
- smir=\E[4h, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
- u8=\E[?62;1;6c, use=vt220+cvis, use=xterm+sl,
- use=ansi+enq,
-ncsa|NCSA Telnet 2.7 for Macintosh in vt220-8 mode,
+ sgr0=\E[m\E(B, smam=\E[?7h, smcup=\E7, smir=\E[4h,
+ smso=\E[7m, smul=\E[4m, tbc=\E[3g, u8=\E[?62;1;6c,
+ use=ansi+arrows, use=ansi+csr, use=ansi+idl,
+ use=ansi+local, use=vt220+cvis, use=xterm+acs,
+ use=xterm+sl, use=ansi+enq,
+
+ncsa|NCSA Telnet 2.7 for Macintosh in VT220-8 mode (color),
use=ncsa-m, use=klone+color,
-ncsa-ns|NCSA Telnet 2.7 for Macintosh in vt220-8 mode,
+ncsa-ns|NCSA Telnet 2.7 for Macintosh in VT220-8 mode (color w/o status line),
hs@,
dsl@, fsl@, tsl@, use=ncsa,
-ncsa-m-ns|NCSA Telnet 2.6 for Macintosh in vt220-8 mode,
+ncsa-m-ns|NCSA Telnet 2.6 for Macintosh in VT220-8 mode (no status line),
hs@,
dsl@, fsl@, tsl@, use=ncsa-m,
# alternate -TD:
@@ -8080,7 +8726,7 @@ ncsa-m-ns|NCSA Telnet 2.6 for Macintosh in vt220-8 mode,
# codes, however, since the numeric keypad (VT100) PF1-PF4 are available on
# some keyboards and many applications require these as F1-F4.
#
-ncsa-vt220|NCSA Telnet using vt220-compatible function keys,
+ncsa-vt220|NCSA Telnet using VT220-compatible function keys,
kf1=\EOP, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\EOQ,
@@ -8116,15 +8762,15 @@ elks-glasstty|ELKS glass-TTY capabilities,
bel=^G, cr=\r, ht=^I, ind=\n, kbs=^H, kcub1=^H, kcud1=\n,
nel=\r\n,
-elks-vt52|ELKS vt52 console,
+elks-vt52|ELKS VT52 console,
clear=\EH\EJ, cub1=\ED, cud1=\EB, cuf1=\EC,
cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, el=\EK,
home=\EH, use=elks-glasstty,
elks-ansi|ELKS ANSI console,
- clear=\E[H\E[2J, cub1=\E[D, cud1=\E[B, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, el=\E[K, home=\E[H,
- rmso=\E[m, smso=\E[7m, use=elks-glasstty,
+ clear=\E[H\E[2J, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
+ el=\E[K, home=\E[H, use=ansi+local1, use=ansi+sgrso,
+ use=elks-glasstty,
# As a matter of fact, ELKS 0.0.83 on PCs defaults to ANSI emulation
# instead of VT52, but the "elks" entry still refers to the latter.
@@ -8150,24 +8796,24 @@ pccons|pcconsole|ANSI (mostly) Alpha PC console terminal emulation,
cols#80, lines#25,
bel=^G, clear=\E[H\E[2J, cr=\r, cub1=^H, cud1=\n, cuf1=\E[C,
cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
- el=\E[K, home=\E[H, ht=^I, ich1=\E[@, il1=\E[L, kbs=^H,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H,
- nel=\r\n, rev=\E[7m, rmso=\E[m, sgr0=\E[m, smso=\E[7m,
+ el=\E[K, home=\E[H, ht=^I, ich1=\E[@, il1=\E[L, nel=\r\n,
+ rev=\E[7m, rmso=\E[m, sgr0=\E[m, smso=\E[7m,
+ use=ansi+arrows,
#### Sun consoles
#
-# :is1: resets scrolling region in case a previous user had used "tset vt100"
+# :is1: resets scrolling region in case a previous user had used "tset VT100"
oldsun|Sun Microsystems Workstation console,
OTbs, am, km, mir, msgr,
cols#80, it#8, lines#34,
- bel=^G, clear=^L, cr=\r, cub1=^H, cud1=\E[B, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP,
- dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, ht=^I,
- ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\n,
- is1=\E[1r, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, khome=\E[H,
- rmso=\E[m, sgr0=\E[m, smso=\E[7m,
+ bel=^G, clear=^L, cr=\r, cub1=^H, cup=\E[%i%p1%d;%p2%dH,
+ dch=\E[%p1%dP, dch1=\E[P, ed=\E[J, el=\E[K, ht=^I,
+ ich=\E[%p1%d@, ich1=\E[@, ind=\n, is1=\E[1r, kcub1=\E[D,
+ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, kf2=\EOQ,
+ kf3=\EOR, kf4=\EOS, khome=\E[H, rmso=\E[m, sgr0=\E[m,
+ smso=\E[7m, use=ansi+idl, use=ansi+local1,
+
# From: Alexander Lukyanov <lav@video.yars.free.net>, 14 Nov 1995
# <lines> capability later corrected by J.T. Conklin <jtc@cygnus.com>
# SGR 1, 4 aren't supported - removed bold/underline (T.Dickey 17 Jan 1998)
@@ -8176,22 +8822,42 @@ sun-il|Sun Microsystems console with working insert-line,
cols#80, lines#34,
bel=^G, clear=^L, cr=\r, cub1=^H, cud1=\n, cuf1=\E[C,
cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP,
- dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, ht=^I,
- ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\n,
- kb2=\E[218z, kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kdch1=^?, kend=\E[220z, kf1=\E[224z,
+ dch1=\E[P, ed=\E[J, el=\E[K, ht=^I, ich=\E[%p1%d@, ich1=\E[@,
+ ind=\n, kb2=\E[218z, kdch1=^?, kend=\E[220z, kf1=\E[224z,
kf10=\E[233z, kf11=\E[234z, kf12=\E[235z, kf2=\E[225z,
kf3=\E[226z, kf4=\E[227z, kf5=\E[228z, kf6=\E[229z,
kf7=\E[230z, kf8=\E[231z, kf9=\E[232z, khome=\E[214z,
kich1=\E[247z, knp=\E[222z, kopt=\E[194z, kpp=\E[216z,
kres=\E[193z, kund=\E[195z, rev=\E[7m, rmso=\E[m, rmul@,
rs2=\E[s, sgr=\E[0%?%p1%p3%|%t;7%;m, sgr0=\E[m,
- smso=\E[7m, u8=\E[1t, u9=\E[11t,
+ smso=\E[7m, u8=\E[1t, u9=\E[11t, use=ansi+arrows,
+ use=ansi+idl,
+
# On some versions of CGSIX framebuffer firmware (SparcStation 5), <il1>/<il>
# flake out on the last line. Unfortunately, without them the terminal has no
# way to scroll.
sun-cgsix|sun-ss5|Sun SparcStation 5 console,
il@, il1@, use=sun-il,
+
+# The Sun console was documented in the wscons manual page (apparently
+# unrelated to the "wscons" used by some of the BSDs).
+#
+# https://illumos.org/man/4D/wscons
+# https://www.bitsavers.org/pdf/sun/sun1/800-0345_Sun-1_System_Reference_Manual_Jul82.pdf
+#
+# The early cmdtool and shelltool programs in Sun's NeWS were based on this.
+# After NeWS was discontinued, XView provided a similar shelltool, with an
+# incomplete manual page. Presumably the intent was to document features of
+# shelltool not in wscons:
+#
+# https://manpages.ubuntu.com/manpages/bionic/en/man1/shelltool.1.html
+# https://manpages.ubuntu.com/manpages/bionic/en/man1/cmdtool.1.html
+#
+# The wscons manual page and the XView source show that it had no feature that
+# could be used in ncurses u6/u7/u8/u9 extensions. Interesting, the XView
+# source shows that its shelltool could tell the host what a particular mode
+# was set to. But neither that nor its CSI..t controls support u6/u7/u8/u9.
+#
# If you are using an SS5, change the sun definition to use sun-ss5.
sun|sun1|sun2|Sun Microsystems Inc. workstation console,
use=sun-il,
@@ -8202,15 +8868,13 @@ sun+sl|Sun Workstation window status line,
# From: <john@ucbrenoir> Tue Sep 24 13:14:44 1985
sun-s|Sun Microsystems Workstation window with status line,
- hs,
- dsl=\E]l\E\\, fsl=\E\\, tsl=\E]l, use=sun,
+ use=sun+sl, use=sun,
sun-e-s|sun-s-e|Sun Microsystems Workstation with status hacked for emacs,
- hs,
- dsl=\E]l\E\\, fsl=\E\\, tsl=\E]l, use=sun-e,
+ use=sun+sl, use=sun-e,
sun-48|Sun 48-line window,
cols#80, lines#48, use=sun,
sun-34|Sun 34-line window,
- cols#80, lines#34, use=sun,
+ use=sun,
sun-24|Sun 24-line window,
cols#80, lines#24, use=sun,
sun-17|Sun 17-line window,
@@ -8252,16 +8916,13 @@ sun-type4|Sun Workstation console with type 4 keyboard,
# blink=\E[5m
# It supports bold, but not underline -TD (2009-09-19)
sun-color|Sun Microsystems Workstation console with color support (IA systems),
- colors#8, ncv#3, pairs#64,
- bold=\E[1m, cub=\E[%p1%dD, cud=\E[%p1%dB, cuf=\E[%p1%dC,
- cuu=\E[%p1%dA, home=\E[H, op=\E[0m, rs2=\E[s,
- setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+ bold=\E[1m, cub1=^H, cud1=\n, home=\E[H, op=\E[0m,
setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}
%=%t3%e%p1%d%;m,
setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}
%=%t3%e%p1%d%;m,
- sgr=\E[0%?%p6%t;1%;%?%p1%p3%|%t;7%;m, sgr0=\E[m,
- smso=\E[7m, use=sun,
+ sgr=\E[0%?%p6%t;1%;%?%p1%p3%|%t;7%;m, use=ansi+local,
+ use=sun, use=klone+color,
#### Iris consoles
#
@@ -8272,18 +8933,17 @@ sun-color|Sun Microsystems Workstation console with color support (IA systems),
# See the note on Iris extensions near the end of this file.
# Finally, removed suboptimal <clear>=\EH\EJ and added <cud1> &
# <flash> from BRL -- esr)
-wsiris|iris40|iris emulating a 40 line visual 50 (approximately),
+wsiris|iris40|IRIS emulating a 40 line Visual 50 (approximately),
OTbs, OTnc, OTpt, am,
OTkn#3, cols#80, it#8, lines#40,
OTnl=\EB, bel=^G, clear=\Ev, cnorm=\E>, cub1=^H, cud1=\EB,
cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA,
cvvis=\E;, dim=\E7F2, dl1=\EM, ed=\EJ, el=\EK,
flash=\E7F4\E7B1\013\E7F7\E7B0, home=\EH, ht=^I, il1=\EL,
- ind=\n, is2=\E7B0\E7F7\E7C2\E7R3, kcub1=\ED, kcud1=\EB,
- kcuf1=\EC, kcuu1=\EA, kf0=\E0, kf1=\E1, kf2=\E2, kf3=\E3,
- kf4=\E4, kf5=\E5, kf6=\E6, kf7=\E7, kf8=\E8, kf9=\E9, ri=\EI,
- rmso=\E0@, rmul=\E7R3\E0@, sgr0=\E7F7, smso=\E9P,
- smul=\E7R2\E9P,
+ ind=\n, is2=\E7B0\E7F7\E7C2\E7R3, kf0=\E0, kf1=\E1,
+ kf2=\E2, kf3=\E3, kf4=\E4, kf5=\E5, kf6=\E6, kf7=\E7, kf8=\E8,
+ kf9=\E9, ri=\EI, rmso=\E0@, rmul=\E7R3\E0@, sgr0=\E7F7,
+ smso=\E9P, smul=\E7R2\E9P, use=vt52+arrows,
#### NeWS consoles
#
@@ -8348,70 +9008,70 @@ nextshell|NeXT Shell application,
#
# (news-unk: this had :KB=news: -- esr)
-news-unk|SONY NEWS vt100 emulator common entry,
+news-unk|Sony NEWS VT100 emulator common entry,
OTbs, OTpt, am, xenl,
cols#80,
OTnl=\n, bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J,
- cr=\r, csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\n, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dl=\E[%p1%dM, dl1=\E[M,
- ed=\E[J, el=\E[K, home=\E[H, ht=^I,
- if=/usr/share/tabset/vt100, il=\E[%p1%dL, il1=\E[L,
+ cr=\r, cub1=^H, cud1=\n, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+ cuu1=\E[A, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
+ if=/usr/share/tabset/vt100,
is2=\E[?7h\E[?1h\E[?3l\E7\E8, kbs=^H, kcub1=\EOD,
kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf0=\EOY, kf1=\EOP,
kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV,
- kf8=\EOW, kf9=\EOX, rc=\E8, rev=\E[7m, ri=\EM,
- rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[r, sc=\E7,
- sgr0=\E[m, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
+ kf8=\EOW, kf9=\EOX, rev=\E[7m, ri=\EM, rmkx=\E[?1l\E>,
+ rmso=\E[m, rmul=\E[m,
+ rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[r, sgr0=\E[m,
+ smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, use=ansi+csr,
+ use=ansi+idl,
#
# (news-29: this had :TY=ascii: --esr)
-news-29|SONY NEWS vt100 emulator with 29 lines,
+news-29|Sony NEWS VT100 emulator with 29 lines,
lines#29, use=news-unk,
# (news-29-euc: this had :TY=euc: --esr)
-news-29-euc|SONY NEWS vt100 emulator with 29 lines and EUC,
+news-29-euc|Sony NEWS VT100 emulator with 29 lines and EUC,
use=news-29,
# (news-29-sjis: this had :TY=sjis: --esr)
-news-29-sjis|SONY NEWS vt100 emulator with 29 lines and SJIS,
+news-29-sjis|Sony NEWS VT100 emulator with 29 lines and SJIS,
use=news-29,
#
# (news-33: this had :TY=ascii: --esr)
-news-33|SONY NEWS vt100 with 33 lines,
+news-33|Sony NEWS VT100 with 33 lines,
lines#33, use=news-unk,
# (news-33-euc: this had :TY=euc: --esr)
-news-33-euc|SONY NEWS vt100 with 33 lines and EUC,
+news-33-euc|Sony NEWS VT100 with 33 lines and EUC,
use=news-33,
# (news-33-sjis: this had :TY=sjis: --esr)
-news-33-sjis|SONY NEWS vt100 with 33 lines and SJIS,
+news-33-sjis|Sony NEWS VT100 with 33 lines and SJIS,
use=news-33,
#
# (news-42: this had :TY=ascii: --esr)
-news-42|SONY NEWS vt100 with 42 lines,
+news-42|Sony NEWS VT100 with 42 lines,
lines#42, use=news-unk,
# (news-42-euc: this had :TY=euc: --esr)
-news-42-euc|SONY NEWS vt100 with 42 lines and EUC,
+news-42-euc|Sony NEWS VT100 with 42 lines and EUC,
use=news-42,
# (news-42-sjis: this had :TY=sjis: --esr)
-news-42-sjis|SONY NEWS vt100 with 42 lines and SJIS,
+news-42-sjis|Sony NEWS VT100 with 42 lines and SJIS,
use=news-42,
#
# NEWS-OS old termcap entry
#
# (news-old-unk: this had :KB=news:TY=sjis: --esr)
-news-old-unk|SONY NEWS vt100 emulator common entry,
+news-old-unk|old Sony NEWS VT100 emulator common entry,
OTbs, OTpt, am, xenl,
cols#80, vt#3,
OTnl=\n, bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[;H\E[2J,
- cr=\r, csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\n, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J, el=\E[K,
- home=\E[H, ht=^I, if=/usr/share/tabset/vt100, kbs=^H,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP,
- kf2=\EOQ, kf3=\EOR, kf4=\EOS, rc=\E8, rev=\E[7m, ri=\EM,
- rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
- sgr0=\E[m, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
+ cr=\r, cub1=^H, cud1=\n, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+ cuu1=\E[A, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
+ if=/usr/share/tabset/vt100, kbs=^H, kcub1=\E[D,
+ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, kf2=\EOQ,
+ kf3=\EOR, kf4=\EOS, rev=\E[7m, ri=\EM, rmkx=\E[?1l\E>,
+ rmso=\E[m, rmul=\E[m,
+ rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sgr0=\E[m,
+ smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, use=ansi+csr,
#
# (nwp512: this had :DE=^H:, which I think means <OTbs> --esr)
-nwp512|news|nwp514|news40|vt100-bm|old sony vt100 emulator 40 lines,
+nwp512|news|nwp514|news40|vt100-bm|nwp512-o|nwp514-o|news-o|news40-o|vt100-bm-o|old Sony VT100 emulator 40 lines,
OTbs,
lines#40,
is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;40
@@ -8419,21 +9079,13 @@ nwp512|news|nwp514|news40|vt100-bm|old sony vt100 emulator 40 lines,
use=news-old-unk,
#
# (nwp512-a: this had :TY=ascii: and the alias vt100-bm --esr)
-nwp512-a|nwp514-a|news-a|news42|news40-a|sony vt100 emulator 42 line,
+nwp512-a|nwp514-a|news-a|news42|news40-a|old Sony VT100 emulator 42 line,
lines#42,
is2=\E[?7h\E[?1l\E[?3l\E7\E[1;42r\E8,
use=news-old-unk,
#
-# (nwp-512-o: this had :KB=nwp410:DE=^H: I interpret the latter as <OTbs>. --esr)
-nwp512-o|nwp514-o|news-o|news40-o|vt100-bm-o|sony vt100 emulator 40 lines,
- OTbs,
- lines#40,
- is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;40
- r\E8,
- use=news-old-unk,
-#
# (nwp513: this had :DE=^H: and the alias vt100-bm --esr)
-nwp513|nwp518|nwe501|newscbm|news31|sony vt100 emulator 33 lines,
+nwp513|nwp518|nwe501|newscbm|news31|nwp513-o|nwp518-o|nwe501-o|nwp251-o|newscbm-o|news31-o|old Sony VT100 emulator 31 lines,
OTbs,
lines#31,
is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;31
@@ -8442,23 +9094,15 @@ nwp513|nwp518|nwe501|newscbm|news31|sony vt100 emulator 33 lines,
#
# (nwp513-a: this had :TY=ascii: and :DE=^H:, which I interpret as <OTbs>; --esr)
# also the alias vt100-bm.
-nwp513-a|nwp518-a|nwe501-a|nwp251-a|newscbm-a|news31-a|newscbm33|news33|old sony vt100 emulator 33 lines,
+nwp513-a|nwp518-a|nwe501-a|nwp251-a|newscbm-a|news31-a|newscbm33|news33|old Sony VT100 emulator 33 lines,
OTbs,
lines#33,
is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;33
r\E8,
use=news-old-unk,
#
-# (nwp513-o: had :DE=^H:, I think that's <OTbs>; also the alias vt100-bm --esr)
-nwp513-o|nwp518-o|nwe501-o|nwp251-o|newscbm-o|news31-o|old sony vt100 emulator 33 lines,
- OTbs,
- lines#31,
- is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;31
- r\E8,
- use=news-old-unk,
-#
# (news28: this had :DE=^H:, I think that's <OTbs>, and :KB=nws1200: --esr)
-news28|sony vt100 emulator 28 lines,
+news28|old Sony VT100 emulator 28 lines,
OTbs,
lines#28,
is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;28
@@ -8466,35 +9110,33 @@ news28|sony vt100 emulator 28 lines,
use=news-old-unk,
#
# (news29: this had :TY=ascii:KB=nws1200:\ --esr)
-news29|news28-a|sony vt100 emulator 29 lines,
+news29|news28-a|old Sony VT100 emulator 29 lines,
lines#29,
is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;29
r\E8,
use=news-old-unk,
#
# (news511: this had :TY=sjis: --esr)
-nwp511|nwp-511|nwp-511 vt100,
+nwp511|nwp-511|nwp-511 VT100,
OTbs, OTpt, am, xenl,
cols#80, lines#24,
- clear=\E[;H\E[2J$<20/>, cub1=\E[D, cud1=\E[B, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A$<2/>, dl1=\E[M,
- ed=\E[J$<30/>, el=\E[K$<3/>,
+ clear=\E[;H\E[2J$<20/>, cup=\E[%i%p1%d;%p2%dH,
+ cuu1=\E[A$<2/>, dl1=\E[M, ed=\E[J$<30/>, el=\E[K$<3/>,
flash=\E[?5h\0\0\0\0\0\0\0\0\0\0\0\0\0\E[?5l,
il1=\E[L, is2=\E[?5l\E[?1l\E>\E[?7h\E[?8h, kcub1=\E[D,
kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, kf2=\EOQ,
kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\E#W, khome=\E[H,
ri=\EM$<5/>, rmso=\E[m$<2/>, rmul=\E[m$<2/>,
rs2=\E7\E[r\E8\E[?5l\E[?1l\E>\E[?7h\E[?8h,
- smso=\E[7m$<2/>, smul=\E[4m$<2/>,
+ smso=\E[7m$<2/>, smul=\E[4m$<2/>, use=ansi+local1,
# (news517: this had :TY=sjis:. --esr)
-nwp517|nwp-517|nwp-517 vt200 80 cols 30 rows,
- eslok, hs,
+nwp517|nwp-517|nwp-517 VT200 80 cols 30 rows,
cols#80, lines#30,
- OTi2=\E[2$~\n, dsl=\E[1$~, fsl=\E[0$},
+ OTi2=\E[2$~\n, dsl=\E[1$~,
is2=\E7\E[r\E8\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
- tsl=\E[1$}\E[;%df, use=vt220-base,
+ tsl=\E[1$}\E[;%df, use=dec+sl, use=vt220-base,
# (news517-w: this had :TY=sjis:. --esr)
-nwp517-w|nwp-517-w|nwp-517 vt200 132 cols 50 rows,
+nwp517-w|nwp-517-w|nwp-517 VT200 132 cols 50 rows,
eslok, hs,
cols#132, lines#50,
OTi2=\E[2$~\n, dsl=\E[1$~, fsl=\E[0$},
@@ -8511,28 +9153,25 @@ dtterm|CDE desktop terminal,
am, mir, msgr, xenl, xon,
cols#80, it#8, lines#24, lm#0, ncv@,
acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM,
- dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
- enacs=\E(B\E)0, flash=\E[?5h$<200>\E[?5l, home=\E[H,
- ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L,
- ind=\ED, invis=\E[8m, is2=\E F\E>\E[?1l\E[?7h\E[?45l,
+ bel=^G, bold=\E[1m, cr=\r, cub1=^H, cud1=\n,
+ cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\E[P,
+ dim=\E[2m, ech=\E[%p1%dX, el1=\E[1K, enacs=\E(B\E)0,
+ flash=\E[?5h$<200>\E[?5l, home=\E[H, ht=^I, hts=\EH,
+ ich=\E[%p1%d@, ind=\ED, is2=\E F\E>\E[?1l\E[?7h\E[?45l,
kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
kf1=\E[11~, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\E[12~,
kf20=\E[34~, kf3=\E[13~, kf4=\E[14~, kf5=\E[15~,
kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- khlp=\E[28~, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
- rmam=\E[?7l, rmir=\E[4l, rmso=\E[22;27m, rmul=\E[24m,
- sc=\E7,
+ khlp=\E[28~, nel=\EE, ri=\EM, rmacs=^O, rmam=\E[?7l,
+ rmir=\E[4l, rmso=\E[22;27m, rmul=\E[24m,
sgr=\E[0%?%p1%t;2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5
%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
- smso=\E[2;7m, smul=\E[4m, tbc=\E[3g, use=vt220+vtedit,
+ smso=\E[2;7m, smul=\E[4m, tbc=\E[3g, use=ansi+csr,
+ use=ansi+erase, use=ansi+idl, use=ansi+local,
+ use=ansi+sgr, use=decid+cpr, use=vt220+vtedit,
use=vt220+cvis, use=ecma+color,
######## Non-Unix Consoles
@@ -8554,43 +9193,34 @@ emx-base|DOS special keys,
#
# Removed: rmacs=\E[10m, smacs=\E[11m, because OS/2 does not implement acs.
ansi-emx|ANSI.SYS color,
- am, bce, eo, mir, msgr, xon,
- colors#8, cols#80, it#8, lines#25, pairs#64,
- bel=^G, blink=\E[5m, bold=\E[1m,
- clear=\E[1;33;44m\E[H\E[J, cr=\r, cub1=^H, cud1=\n,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
- dch=\E[%p1%dp, ed=\E[J, el=\E[K,
- flash=\E[?5h$<100/>\E[?5l, home=\E[H, ht=^I, hts=\EH,
- ich=\E[%p1%d@, ich1=\E[@, ind=\n, kb2=\E[G, kbs=^H, kf0=\0D,
- kll=\0O, kspd=^Z, nel=\r\n, rev=\E[5;37;41m, rmir=\E[4l,
- rmpch=\E[10m, rmso=\E[0;44m\E[1;33m,
- rmul=\E[0;44m\E[1;33m, rs1=\Ec, setab=\E[4%p1%dm,
- setaf=\E[3%p1%dm, sgr0=\E[0m\E[1;33;44m, smir=\E[4h,
- smpch=\E[11m, smso=\E[0;31;47m, smul=\E[1;31;44m,
- tbc=\E[3g, u8=\E[?6c, u9=\E[c, use=vt220+cvis,
- use=emx-base,
+ eo,
+ clear=\E[1;33;44m\E[H\E[J, cr=\r, cud1=\n, dch=\E[%p1%dp,
+ ed=\E[J, flash=\E[?5h$<100/>\E[?5l, ht=^I, hts=\EH,
+ ich=\E[%p1%d@, ich1=\E[@, ind=\n, kb2=\E[G, kf0=\0D, kll=\0O,
+ kspd=^Z, nel=\r\n, rev=\E[5;37;41m, rmir=\E[4l,
+ rmso=\E[0;44m\E[1;33m, rmul=\E[0;44m\E[1;33m, rs1=\Ec,
+ sgr0=\E[0m\E[1;33;44m, smir=\E[4h, smso=\E[0;31;47m,
+ smul=\E[1;31;44m, tbc=\E[3g, u8=\E[?6c, u9=\E[c,
+ use=vt220+cvis, use=emx-base,
# nice colors for Emacs (white on blue, mode line white on cyan)
ansi-color-2-emx|ANSI.SYS color 2,
clear=\E[0;37;44m\E[H\E[J, rev=\E[1;37;46m,
- rmso=\E[0;37;44m, rmul=\E[0;37;44m, rs1=\Ec,
- setaf=\E[3%p1%dm, sgr0=\E[0;37;44m, smso=\E[1;37;46m,
- smul=\E[1;36;44m, use=ansi-emx,
+ rmso=\E[0;37;44m, rmul=\E[0;37;44m, sgr0=\E[0;37;44m,
+ smso=\E[1;37;46m, smul=\E[1;36;44m, use=ansi-emx,
# nice colors for Emacs (white on black, mode line black on cyan)
ansi-color-3-emx|ANSI.SYS color 3,
clear=\E[0;37;40m\E[H\E[J, rev=\E[1;37;46m,
- rmso=\E[0;37;40m, rmul=\E[0;37;40m, rs1=\Ec,
- setaf=\E[3%p1%dm, sgr0=\E[0;10m, smso=\E[1;37;46m,
- smul=\E[0;36;40m, use=ansi-emx,
-mono-emx|stupid monochrome ansi terminal with only one kind of emphasis,
+ rmso=\E[0;37;40m, rmul=\E[0;37;40m, sgr0=\E[0;10m,
+ smso=\E[1;37;46m, smul=\E[0;36;40m, use=ansi-emx,
+mono-emx|stupid monochrome ANSI terminal with only one kind of emphasis,
am,
cols#80, it#8, lines#24,
- clear=\E[H\E[2J$<50>, cub1=\E[D, cud1=\E[B, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, el=\E[K, home=\E[H,
- ht=^I, kb2=\E[G, kbs=^H, kcub1=\0K, kcud1=\0P, kcuf1=\0M,
- kcuu1=\0H, kf0=\0D, kf1=\0;, kf2=\0<, kf3=\0=, kf4=\0>,
- kf5=\0?, kf6=\0@, kf7=\0A, kf8=\0B, kf9=\0C, khome=\0G,
- kich1=\0R, kll=\0O, knp=\0Q, kpp=\0I, nel=\r\n, rev=\E[7m,
- sgr0=\E[0m,
+ clear=\E[H\E[2J$<50>, cup=\E[%i%p1%d;%p2%dH, el=\E[K,
+ home=\E[H, ht=^I, kb2=\E[G, kbs=^H, kcub1=\0K, kcud1=\0P,
+ kcuf1=\0M, kcuu1=\0H, kf0=\0D, kf1=\0;, kf2=\0<, kf3=\0=,
+ kf4=\0>, kf5=\0?, kf6=\0@, kf7=\0A, kf8=\0B, kf9=\0C,
+ khome=\0G, kich1=\0R, kll=\0O, knp=\0Q, kpp=\0I, nel=\r\n,
+ rev=\E[7m, sgr0=\E[0m, use=ansi+local1,
#### Cygwin
@@ -8660,31 +9290,23 @@ cygwinB19|ANSI emulation for cygwin32,
cygwin|ANSI emulation for Cygwin,
am, hs, mir, msgr, xon,
colors#8, it#8, pairs#64,
- acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260j
- \331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v
- \301w\302x\263y\363z\362{\343|\330}\234~\376,
- bel=^G, bold=\E[1m, clear=\E[H\E[J, cr=\r, cub=\E[%p1%dD,
- cub1=^H, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
- cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
- dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, fsl=^G, home=\E[H,
- hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@, ich1=\E[@,
- il=\E[%p1%dL, il1=\E[L, ind=\n, invis=\E[8m, kb2=\E[G,
- kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kf1=\E[[A, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
- kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
- kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\E[[B,
- kf20=\E[34~, kf3=\E[[C, kf4=\E[[D, kf5=\E[[E, kf6=\E[17~,
- kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kspd=^Z, nel=\r\n,
- op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM, rmacs=\E[10m,
- rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmpch=\E[10m,
- rmso=\E[27m, rmul=\E[24m, rs1=\Ec\E]R, sc=\E7,
- setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+ bel=^G, bold=\E[1m, cr=\r, cub=\E[%p1%dD, cub1=^H,
+ cup=\E[%i%p1%d;%p2%dH, el1=\E[1K, fsl=^G, home=\E[H, ht=^I,
+ ind=\n, invis=\E[8m, kb2=\E[G, kf1=\E[[A, kf10=\E[21~,
+ kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
+ kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
+ kf19=\E[33~, kf2=\E[[B, kf20=\E[34~, kf3=\E[[C, kf4=\E[[D,
+ kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+ khome=\E[1~, kspd=^Z, nel=\r\n, op=\E[39;49m, rc=\E8,
+ rev=\E[7m, ri=\EM, rmpch=\E[10m, rmso=\E[27m, rmul=\E[24m,
+ rs1=\Ec\E]R, sc=\E7, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p6%t;1%;%?%p7
%t;8%;%?%p9%t;11%;m,
- sgr0=\E[0;10m, smacs=\E[11m, smcup=\E7\E[?47h,
- smir=\E[4h, smpch=\E[11m, smso=\E[7m, smul=\E[4m, tsl=\E];,
- vpa=\E[%i%p1%dd, use=vt220+pcedit, use=vt102+enq,
+ sgr0=\E[0;10m, smpch=\E[11m, smso=\E[7m, smul=\E[4m,
+ tsl=\E];, use=ansi+arrows, use=ansi+erase, use=ansi+idc,
+ use=ansi+idl, use=ansi+local, use=ansi+rca2,
+ use=vt220+pcedit, use=vt102+enq, use=klone+acs,
+ use=xterm+alt47,
# I've supplied this so that you can help test new values and add other
# features. Cheers, earnie_boyd@yahoo.com.
@@ -8694,31 +9316,22 @@ cygwin|ANSI emulation for Cygwin,
# this list, but DOES cause problems so it has been removed
cygwinDBG|Debug Version for Cygwin,
am, eo, mir, msgr, xon,
- colors#8, cols#80, it#8, lines#24, ncv#3, pairs#64,
- acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260j
- \331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v
- \301w\302x\263y\363z\362{\343|\330}\234~\376,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
- cr=\r, cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
- dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K,
- el1=\E[1K, flash=\E[?5h$<200/>\E[?5l, home=\E[H,
- hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
- il=\E[%p1%dL, il1=\E[L, ind=\n, invis=\E[8m, kNXT=\E[6$,
- kPRV=\E[5$, kb2=\E[G, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\E[[A, kf10=\E[21~,
- kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
- kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
- kf19=\E[33~, kf2=\E[[B, kf20=\E[34~, kf3=\E[[C, kf4=\E[[D,
- kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- kspd=^Z, nel=\r\n, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM,
- rmacs=\E[10m, rmir=\E[4l, rmso=\E[m, rmul=\E[m,
- rs1=\Ec\E]R, sc=\E7, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+ cols#80, lines#24, ncv#3,
+ bel=^G, cr=\r, cup=\E[%i%p1%d;%p2%dH, dim=\E[2m, el1=\E[1K,
+ flash=\E[?5h$<200/>\E[?5l, home=\E[H, hpa=\E[%i%p1%dG,
+ ind=\n, kNXT=\E[6$, kPRV=\E[5$, kb2=\E[G, kcbt=\E[Z,
+ kf1=\E[[A, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
+ kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
+ kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\E[[B,
+ kf20=\E[34~, kf3=\E[[C, kf4=\E[[D, kf5=\E[[E, kf6=\E[17~,
+ kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kspd=^Z,
+ nel=\r\n, op=\E[39;49m, rc=\E8, ri=\EM, rs1=\Ec\E]R, sc=\E7,
sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5
%t;2%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;12%;m,
- sgr0=\E[0;10m, smacs=\E[11m, smir=\E[4h, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g, vpa=\E[%i%p1%dd, use=vt220+pcedit,
+ sgr0=\E[0;10m, vpa=\E[%i%p1%dd, use=ansi+arrows,
+ use=ansi+erase, use=ansi+idc, use=ansi+idl,
+ use=ansi+inittabs, use=ansi+local, use=ansi+sgrbold,
+ use=klone+acs, use=klone+color, use=vt220+pcedit,
use=vt220+cvis, use=vt102+enq,
#### DJGPP
@@ -8847,48 +9460,43 @@ djgpp|ANSI emulation for DJGPP alpha,
acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260j
\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v
\301w\302x\263y\363z\362{\343|\330}\234~\376,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[1v,
- clear=\E[H\E[J, cnorm=\E[v, cr=\r, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[2v, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
- dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
+ bel=^G, bold=\E[1m, cbt=\E[Z, civis=\E[1v, cnorm=\E[v, cr=\r,
+ cub1=^H, cup=\E[%i%p1%d;%p2%dH, cvvis=\E[2v,
+ dch=\E[%p1%dP, dch1=\E[P, ech=\E[%p1%dX, el1=\E[1K,
home=\E[H, hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@,
- ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\E[S, invis=\E[8m,
- kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kf1=\E[[A, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
- kf2=\E[[B, kf3=\E[[C, kf4=\E[[D, kf5=\E[[E, kf6=\E[17~,
- kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, nel=\r\n, op=\E[37;40m,
- rev=\E[7m, ri=\E[T, rmso=\E[m, setab=\E[4%p1%dm,
- setaf=\E[3%p1%dm,
+ ich1=\E[@, ind=\E[S, kf1=\E[[A, kf10=\E[21~, kf11=\E[23~,
+ kf12=\E[24~, kf2=\E[[B, kf3=\E[[C, kf4=\E[[D, kf5=\E[[E,
+ kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+ khome=\E[1~, nel=\r\n, op=\E[37;40m, ri=\E[T, rmso=\E[m,
+ setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
sgr=\E[0%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%e;25%;%?
%p6%t;1%;%?%p7%t;8%;m,
sgr0=\E[m, smso=\E[7m, smul=\E[4m, vpa=\E[%i%p1%dd,
- use=vt220+pcedit, use=ecma+index,
+ use=ansi+arrows, use=ansi+erase, use=ansi+idl,
+ use=ansi+local, use=ansi+sgr, use=vt220+pcedit,
+ use=ecma+index,
-djgpp203|Entry for DJGPP 2.03,
+djgpp203|entry for DJGPP 2.03,
OTbs, am,
cols#80, it#8, lines#25,
bel=^G, cr=\r, cub1=^H, cud1=\n, ht=^I, ind=\n, kbs=^H, kcub1=^H,
kcud1=\n, nel=\r\n,
-djgpp204|Entry for DJGPP 2.04,
+djgpp204|entry for DJGPP 2.04,
OTbs, am, AX,
colors#8, cols#80, it#8, lines#25, ncv#3, pairs#64,
bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[1v,
- clear=\E[H\E[2J, cnorm=\E[v, cr=\r, cub=\E[%p1%dD,
- cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
- cuu1=\E[A, cvvis=\E[2v, dch=\E[%p1%dP, dch1=\E[P,
- dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
- home=\E[H, ht=^I, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL,
- il1=\E[L, ind=\E[S, invis=\E[8m, kbs=^H, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf0=\E[21~, kf1=\E[[A,
- kf10=\E[21~, kf2=\E[[B, kf3=\E[[C, kf4=\E[[D, kf5=\E[[E,
- kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kll=\E[4~,
- nel=\r\n, rev=\E[7m, ri=\E[T, rmso=\E[m, setab=\E[4%p1%dm,
- setaf=\E[3%p1%dm, sgr0=\E[m, smso=\E[7m, smul=\E[4m,
- use=vt220+pcedit, use=ecma+index,
+ clear=\E[H\E[2J, cnorm=\E[v, cr=\r,
+ cup=\E[%i%p1%d;%p2%dH, cvvis=\E[2v, dch=\E[%p1%dP,
+ dch1=\E[P, ech=\E[%p1%dX, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
+ ich=\E[%p1%d@, ich1=\E[@, ind=\E[S, invis=\E[8m,
+ kf0=\E[21~, kf1=\E[[A, kf10=\E[21~, kf2=\E[[B, kf3=\E[[C,
+ kf4=\E[[D, kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
+ kf9=\E[20~, khome=\E[1~, kll=\E[4~, nel=\r\n, rev=\E[7m,
+ ri=\E[T, rmso=\E[m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+ sgr0=\E[m, smso=\E[7m, smul=\E[4m, use=ansi+arrows,
+ use=ansi+idl, use=ansi+local, use=vt220+pcedit,
+ use=ecma+index,
#### U/Win
@@ -8897,24 +9505,21 @@ djgpp204|Entry for DJGPP 2.04,
# set (the emulator spits out error messages). Compare with att6386 -TD
uwin|U/Win 3.2 console,
am, eo, in, msgr, xenl, xon,
- colors#8, it#8, ncv#58, pairs#64,
+ it#8, ncv#58,
acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i
\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u
\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=\r,
- cub1=^H, cud1=\n, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
- ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, home=\E[H, ht=^I,
- hts=\EH, ich=\E[%p1%d@, ich1=\E[@, kbs=^H, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=^?, kend=\E[Y,
- kf1=\EOP, kf10=\EOY, kf11=\EOZ, kf12=\EOA, kf2=\EOQ,
- kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW,
- kf9=\EOX, khome=\E[H, kich1=\E[@, nel=\r\n, op=\E[39;49m,
- rc=\E8, rev=\E[7m, rmacs=\E[10m, rmir=\E[4l, rmpch=\E[10m,
- rmso=\E[27m, rmul=\E[m, rs1=\Ec\E]R, sc=\E7,
- setab=\E[4%p1%dm, setaf=\E[3%p1%dm, sgr0=\E[0;10m,
- smacs=\E[11m, smir=\E[4h, smpch=\E[11m, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n,
+ bel=^G, blink=\E[5m, bold=\E[1m, cr=\r, cub1=^H, cud1=\n,
+ cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dim=\E[2m,
+ ech=\E[%p1%dX, el1=\E[1K, home=\E[H, ht=^I, hts=\EH,
+ kdch1=^?, kend=\E[Y, kf1=\EOP, kf10=\EOY, kf11=\EOZ,
+ kf12=\EOA, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU,
+ kf7=\EOV, kf8=\EOW, kf9=\EOX, kich1=\E[@, nel=\r\n,
+ op=\E[39;49m, rc=\E8, rev=\E[7m, rmacs=\E[10m,
+ rmpch=\E[10m, rmso=\E[27m, rmul=\E[m, rs1=\Ec\E]R, sc=\E7,
+ sgr0=\E[0;10m, smacs=\E[11m, smpch=\E[11m, smso=\E[7m,
+ smul=\E[4m, tbc=\E[3g, use=ansi+arrows, use=ansi+cpr,
+ use=ansi+erase, use=ansi+idc, use=klone+color,
use=vt220+cvis,
#### Microsoft (miscellaneous)
@@ -9006,30 +9611,28 @@ interix|opennt|opennt-25|ntconsole|ntconsole-25|OpenNT-term compatible with colo
acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260j
\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v
\301w\302x\263y\363z\362{\343|\330}\234~\376,
- bel=^G, bold=\E[1m, clear=\E[2J, cr=\r, cub=\E[%p1%dD,
- cub1=\E[D, cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
- cuu1=\E[A, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K,
- home=\E[H, ht=^I, il=\E[%p1%dL, il1=\E[L, ind=\E[S,
- kLFT=\EF\^, kRIT=\EF$, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=^?, kend=\E[U,
- kf0=\EFA, kf1=\EF1, kf10=\EFA, kf11=\EFB, kf12=\EFC,
- kf13=\EFD, kf14=\EFE, kf15=\EFF, kf16=\EFG, kf17=\EFH,
- kf18=\EFI, kf19=\EFJ, kf2=\EF2, kf20=\EFK, kf21=\EFL,
- kf22=\EFM, kf23=\EFN, kf24=\EFO, kf25=\EFP, kf26=\EFQ,
- kf27=\EFR, kf28=\EFS, kf29=\EFT, kf3=\EF3, kf30=\EFU,
- kf31=\EFV, kf32=\EFW, kf33=\EFX, kf34=\EFY, kf35=\EFZ,
- kf36=\EFa, kf37=\EFb, kf38=\EFc, kf39=\EFd, kf4=\EF4,
- kf40=\EFe, kf41=\EFf, kf42=\EFg, kf43=\EFh, kf44=\EFi,
- kf45=\EFj, kf46=\EFk, kf47=\EFm, kf48=\EFn, kf49=\EFo,
- kf5=\EF5, kf50=\EFp, kf51=\EFq, kf52=\EFr, kf53=\EFs,
- kf54=\EFt, kf55=\EFu, kf56=\EFv, kf57=\EFw, kf58=\EFx,
- kf59=\EFy, kf6=\EF6, kf60=\EFz, kf7=\EF7, kf8=\EF8, kf9=\EF9,
- khome=\E[H, kich1=\E[L, kind=\EF+, kll=\E[U, knp=\E[T,
- kpp=\E[S, kri=\EF-, ll=\E[U, nel=\r\n, op=\E[m, rc=\E[u,
- rev=\E[7m, ri=\E[T, rmcup=\E[2b\E[u\r\E[K, rmso=\E[m,
- rmul=\E[m, rs1=\Ec, sc=\E[s, sgr0=\E[0m, smcup=\E[s\E[1b,
- smso=\E[7m, smul=\E[4m, use=ecma+index, use=klone+color,
+ bel=^G, bold=\E[1m, clear=\E[2J, cr=\r, cud1=\n,
+ cup=\E[%i%p1%d;%p2%dH, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
+ ind=\E[S, kLFT=\EF\^, kRIT=\EF$, kcbt=\E[Z, kdch1=^?,
+ kend=\E[U, kf0=\EFA, kf1=\EF1, kf10=\EFA, kf11=\EFB,
+ kf12=\EFC, kf13=\EFD, kf14=\EFE, kf15=\EFF, kf16=\EFG,
+ kf17=\EFH, kf18=\EFI, kf19=\EFJ, kf2=\EF2, kf20=\EFK,
+ kf21=\EFL, kf22=\EFM, kf23=\EFN, kf24=\EFO, kf25=\EFP,
+ kf26=\EFQ, kf27=\EFR, kf28=\EFS, kf29=\EFT, kf3=\EF3,
+ kf30=\EFU, kf31=\EFV, kf32=\EFW, kf33=\EFX, kf34=\EFY,
+ kf35=\EFZ, kf36=\EFa, kf37=\EFb, kf38=\EFc, kf39=\EFd,
+ kf4=\EF4, kf40=\EFe, kf41=\EFf, kf42=\EFg, kf43=\EFh,
+ kf44=\EFi, kf45=\EFj, kf46=\EFk, kf47=\EFm, kf48=\EFn,
+ kf49=\EFo, kf5=\EF5, kf50=\EFp, kf51=\EFq, kf52=\EFr,
+ kf53=\EFs, kf54=\EFt, kf55=\EFu, kf56=\EFv, kf57=\EFw,
+ kf58=\EFx, kf59=\EFy, kf6=\EF6, kf60=\EFz, kf7=\EF7,
+ kf8=\EF8, kf9=\EF9, kich1=\E[L, kind=\EF+, kll=\E[U,
+ knp=\E[T, kpp=\E[S, kri=\EF-, ll=\E[U, nel=\r\n, op=\E[m,
+ rc=\E[u, rev=\E[7m, ri=\E[T, rmcup=\E[2b\E[u\r\E[K,
+ rmso=\E[m, rmul=\E[m, rs1=\Ec, sc=\E[s, sgr0=\E[0m,
+ smcup=\E[s\E[1b, smso=\E[7m, smul=\E[4m, use=ansi+arrows,
+ use=ansi+idl, use=ansi+local, use=ecma+index,
+ use=klone+color,
opennt-35|ntconsole-35|OpenNT-term35 compatible with color,
lines#35, use=opennt,
@@ -9104,22 +9707,22 @@ opennt-100-nti|ntconsole-100-nti|OpenNT-term100-nti compatible with color,
# Comparison with the k* capabilities makes it obvious that the c* things are
# shift keys. I have renamed them to keys 32 and up accordingly. Also,
# :sr: was given as a boolean-- esr)
-altos2|alt2|altos-2|altos II,
+altos2|alt2|altos-2|Altos II,
cols#80, it#8, lines#24, xmc#0,
clear=\E[H\E[2J, cr=\r, cub1=^H, cud1=\E[1B, cuf1=\E[1C,
cup=\E[%i%p1%d;%p2%dH, cuu1=\E[1A, dch1=\E[P, dl1=\E[M,
ed=\E[J, el=\E[K, home=\E[H, ht=^I, ich1=\E[@,
if=/usr/share/tabset/vt100, il1=\E[L, ind=\n,
is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, kDL=^Am\r,
- kEOL=^An\r, kbs=^H, kcbt=^AK\r, kclr=^AL\r, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=^AM\r, kel=^AN\r,
+ kEOL=^An\r, kcbt=^AK\r, kclr=^AL\r, kdch1=^AM\r, kel=^AN\r,
kf0=^AI\r, kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf32=^A`\r,
kf33=^Aa\r, kf34=^Ab\r, kf35=^Ac\r, kf36=^Ad\r, kf37=^Ae\r,
kf38=^Af\r, kf39=^Ag\r, kf4=^AC\r, kf40=^Ah\r, kf41=^Ai\r,
kf42=^Aj\r, kf43=^Ak\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
kf8=^AG\r, kf9=^AH\r, khome=\E[f, kil1=^AJ\r, kind=^AO\r,
nel=\r\n, rmam=\E[?7l, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
- smam=\E[?7h, smso=\E[7m, smul=\E[4m,
+ smam=\E[?7h, smso=\E[7m, smul=\E[4m, use=ansi+arrows,
+
# (altos3: had extension capabilities
# :c0=^A`\r:c1=^Aa\r:c2=^Ab\r:c3=^Ac\r:\
# :c4=^Ad\r:c5=^Ae\r:c6=^Af\r:c7=^Ag\r:\
@@ -9128,9 +9731,9 @@ altos2|alt2|altos-2|altos II,
# :XU=^Aq\r:XD=^Ar\r:XR=^As\r:XL=^At\r:\
# :HL=^AP\r:SP=\E[i:\
# :IS=\E[@:DE=\E[P:IL=\E[L:NS=\E[S:PS=\E[T:
-altos3|altos5|alt3|alt5|altos-3|altos-5|altos III or V,
+altos3|altos5|alt3|alt5|altos-3|altos-5|Altos III or V,
blink=\E[5p, ri=\EM, sgr0=\E[p, use=altos2,
-altos4|alt4|altos-4|altos IV,
+altos4|alt4|altos-4|Altos IV,
use=wy50,
# (altos7: had extension capabilities:
# :GG#0:GI=\EH8:GF=\EH7:\
@@ -9142,15 +9745,15 @@ altos4|alt4|altos-4|altos IV,
# shift keys. I have renamed them to keys 32 and up accordingly. I have
# also made this entry relative to adm12 in order to give it an <sgr>. The
# <invis> imported by use=adm+sgr may work, let me know. -- esr)
-altos7|alt7|altos VII,
+altos7|alt7|Altos VII,
am, mir,
cols#80, lines#24, xmc#0,
- acsc=j5k3l2m1n8q\:t4u9v=w0x6, blink=\EG2, bold=\EGt,
+ acsc=j5k3l2m1n8q:t4u9v=w0x6, blink=\EG2, bold=\EGt,
clear=\E+^^, cr=\r, cub1=^H, cud1=\n, cuf1=^L,
cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
dim=\EGp, dl1=\ER, ed=\EY, el=\ET, home=^^, ht=^I, il1=\EE,
ind=\n, invis=\EG1,
- is2=\E`\:\Ee(\EO\Ee6\Ec41\E~4\Ec21\Eu\E~2, kDL=^Am\r,
+ is2=\E`:\Ee(\EO\Ee6\Ec41\E~4\Ec21\Eu\E~2, kDL=^Am\r,
kEOL=^An\r, kbs=^H, kcbt=^AK\r, kclr=^AL\r, kcub1=^H,
kcud1=\n, kcuf1=^L, kcuu1=^K, kdch1=^AM\r, kel=^AN\r,
kf0=^AI\r, kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf32=^A`\r,
@@ -9160,7 +9763,7 @@ altos7|alt7|altos VII,
kf8=^AG\r, kf9=^AH\r, khome=^^, kil1=^AJ\r, kind=^AO\r,
knp=\EK, kpp=\EJ, mc4=\EJ, mc5=\Ed#, nel=\r\n, ri=\Ej,
rmir=\Er, smir=\Eq, use=adm+sgr,
-altos7pc|alt7pc|altos PC VII,
+altos7pc|alt7pc|Altos PC VII,
kend=\ET, use=altos7,
#### Hewlett-Packard (hp)
@@ -9179,7 +9782,7 @@ altos7pc|alt7pc|altos PC VII,
#
# Generic HP terminal - this should (hopefully) work on any HP terminal.
-hpgeneric|hp|hewlett-packard generic terminal,
+hpgeneric|hp|Hewlett-Packard generic terminal,
OTbs, OTpt, am, da, db, mir, xhp,
cols#80, lines#24, lm#0, vt#6,
bel=^G, clear=\EH\EJ, cr=\r, cub1=^H, cud1=\n, cuf1=\EC,
@@ -9189,14 +9792,14 @@ hpgeneric|hp|hewlett-packard generic terminal,
sgr0=\E&d@, smir=\EQ, smso=\E&dJ, smul=\E&dD, tbc=\E3,
vpa=\E&a%p1%dY,
-hp110|hewlett-packard model 110 portable,
+hp110|Hewlett-Packard model 110 portable,
lines#16, use=hpgeneric,
-hp+pfk+cr|hp function keys with CR,
+hp+pfk+cr|HP function keys with CR,
kf1=\Ep\r, kf2=\Eq\r, kf3=\Er\r, kf4=\Es\r, kf5=\Et\r,
kf6=\Eu\r, kf7=\Ev\r, kf8=\Ew\r,
-hp+pfk-cr|hp function keys w/o CR,
+hp+pfk-cr|HP function keys w/o CR,
kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et, kf6=\Eu, kf7=\Ev,
kf8=\Ew,
@@ -9204,27 +9807,27 @@ hp+pfk-cr|hp function keys w/o CR,
# but not separate escape sequences. These definitions allow the
# user to use those keys as arrow keys rather than as function
# keys.
-hp+pfk+arrows|hp alternate arrow definitions,
+hp+pfk+arrows|HP alternate arrow definitions,
kcub1=\Eu\r, kcud1=\Ew\r, kcuf1=\Ev\r, kcuu1=\Et\r, kf1@,
kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@, khome=\Ep\r, kind=\Er\r,
kll=\Eq\r, kri=\Es\r,
-hp+arrows|hp arrow definitions,
- kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome=\Eh,
- kind=\ES, kll=\EF, kri=\ET,
+hp+arrows|HP arrow definitions,
+ khome=\Eh, kind=\ES, kll=\EF, kri=\ET, use=vt52+arrows,
# Generic stuff from the HP 262x series
#
hp262x|HP 262x terminals,
xhp,
blink=\E&dA, dch1=\EP$<2>, ed=\EJ, ht=\011$<2>, ind=\ES,
- invis=\E&dS, ip=$<2>, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
- kcuu1=\EA, kdch1=\EP, kdl1=\EM, ked=\EJ, kel=\EK, khome=\Eh,
- kich1=\EQ, kil1=\EL, kind=\ES, knp=\EU, kpp=\EV, kri=\ET,
- krmir=\ER, rev=\E&dB, rmkx=\E&s0A, rmso=\E&d@, rmul=\E&d@,
+ invis=\E&dS, ip=$<2>, kdch1=\EP, kdl1=\EM, ked=\EJ, kel=\EK,
+ khome=\Eh, kich1=\EQ, kil1=\EL, kind=\ES, knp=\EU, kpp=\EV,
+ kri=\ET, krmir=\ER, rev=\E&dB, rmkx=\E&s0A, rmso=\E&d@,
+ rmul=\E&d@,
sgr=\E&d%{64}%?%p1%t%{66}%|%;%?%p2%t%{68}%|%;%?%p3%t%{66}%|
%;%?%p4%t%{65}%|%;%c,
sgr0=\E&d@, smkx=\E&s1A, smso=\E&dB, smul=\E&dD,
+ use=vt52+arrows,
# Note: no <home> on HPs since that homes to top of memory, not screen.
# Due to severe 2621 braindamage, the only way to get the arrow keys to
@@ -9242,49 +9845,48 @@ hp262x|HP 262x terminals,
# Since there is no way to set/unset the strap with an escape
# sequence, we don't use it in the default.
# If you like, you can use 2621-ba (brain-damaged arrow keys).
-hp2621-ba|2621 w/new rom and strap A set,
+hp2621-ba|HP 2621 w/new rom and strap A set,
rmkx@, smkx@, use=hp+arrows, use=hp2621,
# hp2621 with function labels. Most of the time they are off,
# but inside vi, the function key labels appear. You have to
# hold down shift to get them to xmit.
-hp2621|hp2621a|hp2621A|2621|2621a|2621A|hp2621-wl|2621-wl|hp 2621 w/labels,
+hp2621|hp2621a|hp2621A|2621|2621a|2621A|hp2621-wl|2621-wl|HP 2621 w/labels,
is2=\E&jA\r, rmkx=\E&jA, use=hp2621-fl,
-hp2621-fl|hp 2621,
+hp2621-fl|HP 2621,
xhp@, xon,
pb#19200,
cbt=\Ei, cup=\E&a%p2%dc%p1%dY, dch1=\EP$<2>, ht=\011$<2>,
- ip=$<2>, is2=\E&j@\r, rmkx=\E&j@, rmso=\E&d@, rmul=\E&d@,
- sgr0=\E&d@, smkx=\E&jB, smso=\E&dD, smul=\E&dD,
+ ip=$<2>, is2=\E&j@\r, rmkx=\E&j@, smkx=\E&jB, smso=\E&dD,
use=hp+pfk+cr, use=hpgeneric,
# To use hp2621p printer, setenv TERM=2621p, PRINTER=2612p
-hp2621p|hp 2621 with printer,
+hp2621p|HP 2621 with printer,
mc4=\E&p13C, mc5=\E&p11C, use=hp2621,
-hp2621p-a|hp2621p with fn as arrows,
+hp2621p-a|HP 2621p with fn as arrows,
use=hp+pfk+arrows, use=hp2621p,
# hp2621 with k45 keyboard
-hp2621-k45|hp2621k45|k45|hp 2621 with 45 keyboard,
- kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
- khome=\Eh, rmkx=\E&s0A, smkx=\E&s1A, use=hp2621,
+hp2621-k45|hp2621k45|k45|HP 2621 with 45 keyboard,
+ kbs=^H, khome=\Eh, rmkx=\E&s0A, smkx=\E&s1A, use=hp2621,
+ use=vt52+arrows,
# 2621 using all 48 lines of memory, only 24 visible at any time.
-hp2621-48|48 line 2621,
+hp2621-48|HP 48 line 2621,
lines#48,
cup=\E&a%p2%dc%p1%dR, home=\EH, vpa=\E&a%p1%dR,
use=hp2621,
# 2621 with no labels ever. Also prevents vi delays on escape.
-hp2621-nl|hp 2621 with no labels,
+hp2621-nl|HP 2621 with no labels,
kcub1@, kcud1@, kcuf1@, kcuu1@, khome@, rmkx@, smkx@,
use=hp2621-fl,
# Needed for UCB ARPAVAX console, since lsi-11 expands tabs
# (wrong).
#
-hp2621-nt|hp 2621 w/no tabs,
+hp2621-nt|HP 2621 w/no tabs,
ht@, use=hp2621,
# Hp 2624 B with 4 or 10 pages of memory.
@@ -9338,7 +9940,7 @@ hp2624|hp2624a|hp2624b|hp2624b-4p|Hewlett Packard 2624 B,
#
# The padding probably should be changed.
#
-hp2626|hp2626a|hp2626p|hp 2626,
+hp2626|hp2626a|hp2626p|HP 2626,
da, db,
lm#0, pb#19200,
ed=\ED\EJ$<500>\EC, indn=\E&r%p1%dD, ip=$<4>,
@@ -9356,7 +9958,7 @@ hp2626|hp2626a|hp2626p|hp 2626,
# Note that this clears the tabs so it must be done by tset before
# it sets the tabs.
#
-hp2626-s|hp 2626 using only 23 lines,
+hp2626-s|HP 2626 using only 23 lines,
eslok, hs,
lines#23,
fsl=\E&d@\E&w7f2p1I\E&w4f1I,
@@ -9364,47 +9966,46 @@ hp2626-s|hp 2626 using only 23 lines,
\s\E&w2f2i0d23u23l0S\s\E&w7f2p1I\s\r,
tsl=\E&w7f2p2I\E&w4f2I\r\EK\E&a%p1%dC, use=hp2626,
# Force terminal back to 24 lines after being 23.
-hp2626-ns|hp 2626 using all 24 lines,
+hp2626-ns|HP 2626 using all 24 lines,
is1=\E&q3t0{0H\s\E&w0f118n1I\s\E&w0f1n2I\s\E&w2f1i0d0u23l0S
\s\E&w3f2I\s\E&w7f2p1I\s\r,
use=hp2626,
# Various entries useful for small windows on 2626.
-hp2626-12|hewlett-packard 2626 12 lines,
+hp2626-12|Hewlett-Packard 2626 12 lines,
lines#12, use=hp2626,
-hp2626-12x40|hewlett-packard 2626 12 lines 40 columns,
+hp2626-12x40|Hewlett-Packard 2626 12 lines 40 columns,
cols#40, lines#12, use=hp2626,
-hp2626-x40|hewlett-packard 2626 40 columns,
+hp2626-x40|Hewlett-Packard 2626 40 columns,
cols#40, use=hp2626,
-hp2626-12-s|hewlett-packard 2626 11 lines plus status,
+hp2626-12-s|Hewlett-Packard 2626 11 lines plus status,
lines#11, use=hp2626-s,
#
# hp2627 color tubes from University of Wisconsin
#
-hp2627a-rev|hp 2627 with reverse video colors,
- cr=\r, cud1=\n, ht=^I, ind=\n,
+hp2627a-rev|HP 2627 with reverse video colors,
+ ht=^I,
is2=\E&v0m1a0b0c1x1y1z1i0a0b1c1x1y1z0i0S\E&j@\r\E3
\r,
- kbs=^H, kcub1=^H, kcud1=\n, nel=\r\n, rmul=\E&v0S\E&d@,
+ kcub1=^H, kcud1=\n, nel=\r\n, rmul=\E&v0S\E&d@,
smul=\E&dD\E&v1S, use=hp2621-nl,
-hp2627a|hp 2627 color terminal with no labels,
- cr=\r, cud1=\n, ht=^I, ind=\n,
+hp2627a|HP 2627 color terminal with no labels,
+ ht=^I,
is2=\E&v0m1a1b0c1i0a1b1c2i1a0b0c0i0S\E&j@\r\E3\r,
- kbs=^H, kcub1=^H, kcud1=\n, nel=\r\n, rmso=\E&v0S,
+ kcub1=^H, kcud1=\n, nel=\r\n, rmso=\E&v0S,
rmul=\E&v0S\E&d@, smso=\E&v2S, smul=\E&dD\E&v1S,
use=hp2621-nl,
-hp2627c|hp 2627 color (cyan) terminal with no labels,
- cr=\r, cud1=\n, ht=^I, ind=\n,
+hp2627c|HP 2627 color (cyan) terminal with no labels,
is2=\E&v0m1a0b0c2i1a1b0c1i0a1b1c0i0S\E&j@\r\E3\r,
- kbs=^H, kcub1=^H, kcud1=\n, nel=\r\n, use=hp2627a,
+ use=hp2627a,
# hp2640a doesn't have the Y cursor addressing feature, and C is
# memory relative instead of screen relative, as we need.
#
-hp2640a|hp 2640a,
+hp2640a|HP 2640a,
cup@, rmkx@, smkx@, use=hp2645,
-hp2640b|hp2644a|hp 264x series,
+hp2640b|hp2644a|HP 264x series,
rmkx@, smkx@, use=hp2645,
# (hp2641a: removed unknown :gu: -- esr)
@@ -9425,14 +10026,13 @@ hp2641a|hp2645a|hp2647a|HP 264?A series BRL entry,
# software to support it.
hp2645|hp45|HP 2645 series,
pb#9600,
- blink=\E&dA, cr=\r$<20>, dim=\E&dH, kctab=\E2, kcub1=\ED,
- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\EP, kdl1=\EM,
- ked=\EJ, kel=\EK, khome=\Eh, khts=\E1, kich1=\EQ, kil1=\EL,
- kind=\ES, knp=\EU, kpp=\EV, kri=\ET, krmir=\ER, rev=\E&dB,
- rmkx=\E&s0A,
+ blink=\E&dA, cr=\r$<20>, dim=\E&dH, kctab=\E2, kdch1=\EP,
+ kdl1=\EM, ked=\EJ, kel=\EK, khome=\Eh, khts=\E1, kich1=\EQ,
+ kil1=\EL, kind=\ES, knp=\EU, kpp=\EV, kri=\ET, krmir=\ER,
+ rev=\E&dB, rmkx=\E&s0A,
sgr=\E&d%{64}%?%p1%t%{66}%|%;%?%p2%t%{68}%|%;%?%p3%t%{66}%|
%;%?%p4%t%{65}%|%;%?%p5%t%{72}%|%;%?%p6%t%{66}%|%;%c,
- sgr0=\E&d@, smkx=\E&s1A, smul=\E&dD, use=hpgeneric,
+ sgr0=\E&d@, smkx=\E&s1A, use=hpgeneric, use=vt52+arrows,
# You should use this terminal at 4800 baud or less.
hp2648|hp2648a|HP 2648a graphics terminal,
clear=\EH\EJ$<50>, cup=\E&a%p2%dc%p1%dY$<20>,
@@ -9441,13 +10041,13 @@ hp2648|hp2648a|HP 2648a graphics terminal,
# The HP 150 terminal is a fairly vanilla HP terminal, with the
# clreol standout problem. It also has graphics capabilities and
# a touch screen, which we don't describe here.
-hp150|hewlett packard Model 150,
+hp150|Hewlett Packard Model 150,
OTbs, use=hp2622,
# HP 2382a terminals, "the little ones." They don't have any
# alternate character set support and sending out ^N/^O will
# leave the screen blank.
-hp2382a|hp2382|hewlett packard 2382a,
+hp2382a|hp2382|Hewlett Packard 2382a,
da, db,
lh#1, lm#48,
acsc@,
@@ -9466,17 +10066,16 @@ hp2621-a|hp2621a-a|hp2621 with fn as arrows,
# newer hewlett packard terminals
newhpkeyboard|generic entry for HP extended keyboard,
- kbs=^H, kcbt=\Ei, kclr=\EJ, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
- kcuu1=\EA, kdch1=\EP, kdl1=\EM, ked=\EJ, kel=\EK, khome=\Eh,
- kich1=\EQ, kil1=\EL, kind=\ET, kll=\EF, knp=\EU, kpp=\EV,
- kri=\ES, krmir=\ER, rmkx=\E&s0A, smkx=\E&s1A,
- use=hp+pfk-cr,
+ kbs=^H, kcbt=\Ei, kclr=\EJ, kdch1=\EP, kdl1=\EM, ked=\EJ,
+ kel=\EK, khome=\Eh, kich1=\EQ, kil1=\EL, kind=\ET, kll=\EF,
+ knp=\EU, kpp=\EV, kri=\ES, krmir=\ER, rmkx=\E&s0A,
+ smkx=\E&s1A, use=hp+pfk-cr, use=vt52+arrows,
-newhp|generic entry for new hewlett packard terminals,
+newhp|generic entry for new Hewlett Packard terminals,
am, bw, mir, xhp, xon,
cols#80, lines#24, pb#4800,
- acsc=2[3@4>5I9(\:'JSKWLQMAO#P$Q;R!S"T1U2V4W3X\:Y+Z*dHjGkTlRm
- Fn/q\,t5u6v8w7x.,
+ acsc=2[3@4>5I9(:'JSKWLQMAO#P$Q;R!S"T1U2V4W3X:Y+Z*dHjGkTlRmFn
+ /q\,t5u6v8w7x.,
bel=^G, blink=\E&dA, bold=\E&dF, cbt=\Ei, cr=\r, cub1=^H,
cud1=\n, cuf1=\EC, cuu1=\EA, dch1=\EP$<2>, dim=\E&dH,
dl1=\EM, ed=\EJ, el=\EK, ht=\011$<2>, hts=\E1, il1=\EL, ind=\n,
@@ -9522,23 +10121,22 @@ hp+printer|"standard" printer info for HP ttys,
# new 262x series of machines. It has dip-switched options.
# The firmware has a bug in it such that if you give it a null
# length label, the following character is eaten!
-hp2621b|hp 2621b with old style keyboard,
+hp2621b|HP 2621b with old style keyboard,
lh#1, lm#48, lw#8, nlab#8,
- kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome=\Eh,
- kind=\ET, kll=\EF, kri=\ES,
+ khome=\Eh, kind=\ET, kll=\EF, kri=\ES,
pln=\E&f0a%p1%dk%p2%l%Pa%?%ga%t%ga%d%e1%;d3L%?%ga%!%t%{32}%c
%;%p2%s\E%{111}%p1%+%c\r,
- smln=\E&jB, use=hp2621,
+ smln=\E&jB, use=hp2621, use=vt52+arrows,
-hp2621b-p|hp 2621b with printer,
+hp2621b-p|HP 2621b with printer,
use=hp+printer, use=hp2621b,
# hp2621b - new 2621b with new extended keyboard
# these are closer to the new 26xx series than the other 2621b
-hp2621b-kx|hp 2621b with extended keyboard,
+hp2621b-kx|HP 2621b with extended keyboard,
use=newhpkeyboard, use=hp2621b,
-hp2621b-kx-p|hp 2621b with new keyboard & printer,
+hp2621b-kx-p|HP 2621b with new keyboard & printer,
use=hp+printer, use=hp2621b-kx,
# Some assumptions are made in the following entries.
@@ -9554,27 +10152,27 @@ hp2621b-kx-p|hp 2621b with new keyboard & printer,
#
# Hp 2622a & hp2623a display and graphics terminals
#
-hp2622|hp2622a|hp 2622,
+hp2622|hp2622a|HP 2622,
da, db,
lm#0, pb#19200,
is2=\E&dj@\r, use=hp+pfk-cr, use=hp+labels, use=scrhp,
# The 2623 is a 2622 with extra graphics hardware.
-hp2623|hp2623a|hp 2623,
+hp2623|hp2623a|HP 2623,
use=hp2622,
-hp2624b-p|hp2624b-4p-p|hewlett packard 2624 B with printer,
+hp2624b-p|hp2624b-4p-p|Hewlett Packard 2624 B with printer,
use=hp+printer, use=hp2624,
# The hewlett packard B can have an optional extra 6 pages of memory.
-hp2624-10p|hp2624a-10p|hp2624b-10p|hewlett packard 2624 B w/ 10 pages of memory,
+hp2624-10p|hp2624a-10p|hp2624b-10p|Hewlett Packard 2624 B w/ 10 pages of memory,
lm#240, use=hp2624,
-hp2624b-10p-p|hewlett packard 2624 B w/ extra memory & printer,
+hp2624b-10p-p|Hewlett Packard 2624 B w/ extra memory & printer,
lm#240, use=hp2624b-p,
# Color manipulations for HP terminals
-hp+color|hp with colors,
+hp+color|HP with colors,
ccc,
colors#16, ncv#17, pairs#7,
initp=\E&v%?%p2%{1000}%=%t1%e.%p2%d%;a%?%p3%{1000}%=%t1%e.
@@ -9586,7 +10184,7 @@ hp+color|hp with colors,
op=\E&v0S, scp=\E&v%p1%dS,
# <is2> sets the screen to be 80 columns wide
-hp2397a|hp2397|hewlett packard 2397A color terminal,
+hp2397a|hp2397|Hewlett Packard 2397A color terminal,
is2=\E&w6f80X, use=memhp, use=hp+labels, use=hp+color,
# HP 700/44 Setup parameters:
@@ -9602,44 +10200,40 @@ hp2397a|hp2397|hewlett packard 2397A color terminal,
# <is2> sets pcterm; autowrap; 25 lines; pc char set; prog DEL key;
# \E\\? does not turn off keycode mode
# <smsc> sets alternate start/stop; keycode on
-hpansi|hp700|hewlett packard 700/44 in HP-PCterm mode,
+hpansi|hp700|Hewlett Packard 700/44 in HP-PCterm mode,
am, eo, xenl, xon,
cols#80, lines#25,
acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x
\263,
- bel=^G, cbt=\E[Z, clear=\E[2J\E[H, cr=\r, cub1=\E[D,
- cud1=\E[B, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
- dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
- ich1=\E[@, il1=\E[L, ind=\n,
+ bel=^G, cbt=\E[Z, clear=\E[2J\E[H, cr=\r,
+ cup=\E[%i%p1%d;%p2%dH, dch1=\E[P, dl1=\E[M, ed=\E[J,
+ el=\E[K, home=\E[H, ht=^I, ich1=\E[@, il1=\E[L, ind=\n,
is2=\E[44"p\E[?7h\E[>10h\E[>12h\EP1;1|3/7F\E\\,
- kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kend=\E[4~, kf1=\E[17~, kf10=\E[28~,
- kf2=\E[18~, kf3=\E[19~, kf4=\E[20~, kf5=\E[21~, kf6=\E[23~,
- kf7=\E[24~, kf8=\E[25~, kf9=\E[26~, khome=\E[1~, knp=\E[6~,
- kpp=\E[5~, rmam=\E[?7l,
- rmsc=\E[>11l\EP1**x0/11;1/13\E[m\E\\, rmso=\E[m,
- rmul=\E[m, sgr0=\E[m, smam=\E[?7h,
+ kcbt=\E[Z, kend=\E[4~, kf1=\E[17~, kf10=\E[28~, kf2=\E[18~,
+ kf3=\E[19~, kf4=\E[20~, kf5=\E[21~, kf6=\E[23~, kf7=\E[24~,
+ kf8=\E[25~, kf9=\E[26~, khome=\E[1~, knp=\E[6~, kpp=\E[5~,
+ rmam=\E[?7l, rmsc=\E[>11l\EP1**x0/11;1/13\E[m\E\\,
+ rmso=\E[m, rmul=\E[m, sgr0=\E[m, smam=\E[?7h,
smsc=\E[>11h\EPO**x0/65;1/67\E\\$<250>, smso=\E[7m,
- smul=\E[4m, xoffc=g, xonc=e, use=vt220+cvis,
+ smul=\E[4m, xoffc=g, xonc=e, use=ansi+arrows,
+ use=ansi+local1, use=vt220+cvis,
#
# (hp2392: copied <rmir> here from hpex -- esr)
hp2392|239x series,
cols#80,
- cbt=\Ei, cup=\E&a%p1%dy%p2%dC, kf1=\Ep\r, kf2=\Eq\r,
- kf3=\Er\r, kf4=\Es\r, kf5=\Et\r, kf6=\Eu\r, kf7=\Ev\r,
- kf8=\Ew\r, khome=\Eh, kind=\EU, knp=\Eu, kpp=\Ev, kri=\EV,
- rmir=\ER, rmul=\E&d@, smir=\EQ, smul=\E&dD, vpa=\E&a%p1%dY,
- use=hpsub,
+ cbt=\Ei, cup=\E&a%p1%dy%p2%dC, khome=\Eh, kind=\EU,
+ knp=\Eu, kpp=\Ev, kri=\EV, rmir=\ER, rmul=\E&d@, smir=\EQ,
+ smul=\E&dD, vpa=\E&a%p1%dY, use=hpsub, use=hp+pfk+cr,
-hpsub|hp terminals -- capability subset,
+hpsub|HP terminals -- capability subset,
am, da, db, mir, xhp, xon,
lines#24,
bel=^G, clear=\EH\EJ, cr=\r, cub1=^H, cud1=\EB, cuf1=\EC,
cuu1=\EA, dch1=\EP, dl1=\EM, ed=\EJ, el=\EK, hpa=\E&a%p1%dC,
ht=^I, if=/usr/share/tabset/stdcrt, il1=\EL, ind=\n,
- is2=\E&s1A\E<\E&k0\\, kbs=^H, kcub1=\ED, kcud1=\EB,
- kcuf1=\EC, kcuu1=\EA, khome=\Eh, rmkx=\E&s0A, rmso=\E&d@,
- sgr0=\E&d@, smkx=\E&s1A, smso=\E&dB,
+ is2=\E&s1A\E<\E&k0\\, kbs=^H, khome=\Eh, rmkx=\E&s0A,
+ rmso=\E&d@, sgr0=\E&d@, smkx=\E&s1A, smso=\E&dB,
+ use=vt52+arrows,
# hpex:
# May be used for most 24 x 80 hp terminals,
@@ -9651,24 +10245,21 @@ hpsub|hp terminals -- capability subset,
#
# (hpex: removed memory-lock capabilities ":ml=\El:mu=\Em:",
# moved <rmir> here from hpsub -- esr)
-hpex|hp extended capabilities,
- cr=\r, cud1=\n, cup=\E&a%p1%dy%p2%dC, ht=^I, ind=\n, kbs=^H,
- kcub1=^H, kcud1=\n, nel=\r\n, rmir=\ER, rmul=\E&d@, smir=\EQ,
- smul=\E&dD, vpa=\E&a%p1%dY, use=hpsub,
+hpex|HP extended capabilities,
+ cud1=\n, cup=\E&a%p1%dy%p2%dC, kcub1=^H, kcud1=\n,
+ nel=\r\n, rmir=\ER, rmul=\E&d@, smir=\EQ, smul=\E&dD,
+ vpa=\E&a%p1%dY, use=hpsub,
# From: Ville Sulko <Ville.Sulko@bip.atk.tpo.fi>, 05 Aug 1996
-hp2|hpex2|hewlett-packard extended capabilities newer version,
+hp2|hpex2|Hewlett-Packard extended capabilities newer version,
am, da, db, mir, xhp,
cols#80, lh#2, lines#24, lm#0, lw#8, nlab#8, xmc#0,
bel=^G, clear=\E&a0y0C\EJ, cr=\r, cub1=^H, cud1=\EB,
cuf1=\EC, cup=\E&a%p1%dy%p2%dC, cuu1=\EA, dch1=\EP,
dl1=\EM, ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=^I, hts=\E1,
- il1=\EL, ind=\n, kbs=^H, kclr=\EJ, kctab=\E2, kcub1=\ED,
- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\EP, kdl1=\EM,
- ked=\EJ, kel=\EK, kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et,
- kf6=\Eu, kf7=\Ev, kf8=\Ew, khome=\Eh, khts=\E1, kich1=\EQ,
- kil1=\EL, kind=\ES, kll=\EF, knp=\EU, kpp=\EV, kri=\ET,
- krmir=\ER, ktbc=\E3, meml=\El, memu=\Em,
+ il1=\EL, ind=\n, kbs=^H, kclr=\EJ, kctab=\E2, kdch1=\EP,
+ kdl1=\EM, ked=\EJ, kel=\EK, khts=\E1, kich1=\EQ, kil1=\EL,
+ knp=\EU, kpp=\EV, krmir=\ER, ktbc=\E3, meml=\El, memu=\Em,
pfkey=\E&f%p1%dk%p2%l%dL%p2%s,
pfloc=\E&f1a%p1%dk%p2%l%dL%p2%s,
pfx=\E&f2a%p1%dk%p2%l%dL%p2%s,
@@ -9678,6 +10269,7 @@ hp2|hpex2|hewlett-packard extended capabilities newer version,
%p5%{8}%*%+%{64}%+%c%?%p9%t%'\016'%c%e%'\017'%c%;,
sgr0=\E&d@\017, smir=\EQ, smkx=\E&s1A, smln=\E&jB,
smso=\E&dB, smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY,
+ use=hp+pfk-cr, use=hp+arrows,
# HP 236 console
# From: <ddavis@ic.berkeley.edu>
@@ -9698,10 +10290,9 @@ hp300h|HP Catseye console,
cuf1=\EC, cup=\E&a%p1%dy%p2%dC, cuu1=\EA, dch1=\EP,
dl1=\EM, ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=^I,
if=/usr/share/tabset/stdcrt, il1=\EL, ind=\n, kbs=^H,
- kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome=\Eh,
- rmir=\ER, rmkx=\E&s0A, rmso=\E&d@, rmul=\E&d@, sgr0=\E&d@,
- smir=\EQ, smkx=\E&s1A, smso=\E&dB, smul=\E&dD, tbc=\E3,
- vpa=\E&a%p1%dY,
+ khome=\Eh, rmir=\ER, rmkx=\E&s0A, rmso=\E&d@, rmul=\E&d@,
+ sgr0=\E&d@, smir=\EQ, smkx=\E&s1A, smso=\E&dB, smul=\E&dD,
+ tbc=\E3, vpa=\E&a%p1%dY, use=vt52+arrows,
# From: Greg Couch <gregc@ernie.berkeley.edu>
hp9837|hp98720|hp98721|HP 9000/300 workstations,
OTbs, am, da, db, mir, xhp,
@@ -9709,12 +10300,11 @@ hp9837|hp98720|hp98721|HP 9000/300 workstations,
bel=^G, cbt=\Ei, clear=\E&a0y0C\EJ, cub1=^H, cud1=\EB,
cuf1=\EC, cup=\E&a%p1%dy%p2%dC, cuu1=\EA, dch1=\EP,
dl1=\EM, ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=^I, hts=\E1,
- il1=\EL, ind=\n, is2=\E&v0m1b0i&j@, kbs=^H, kcub1=\ED,
- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\EP, kdl1=\EM,
- ked=\EJ, kel=\EK, khome=\Eh, kich1=\EQ, kil1=\EL, knp=\EU,
- kpp=\EV, rmir=\ER, rmkx=\E&s0A, rmso=\E&v0S, rmul=\E&d@,
- sgr0=\E&d@, smir=\EQ, smkx=\E&s1A, smso=\E&v5S, smul=\E&dD,
- tbc=\E3, vpa=\E&a%p1%dY,
+ il1=\EL, ind=\n, is2=\E&v0m1b0i&j@, kbs=^H, kdch1=\EP,
+ kdl1=\EM, ked=\EJ, kel=\EK, khome=\Eh, kich1=\EQ, kil1=\EL,
+ knp=\EU, kpp=\EV, rmir=\ER, rmkx=\E&s0A, rmso=\E&v0S,
+ rmul=\E&d@, sgr0=\E&d@, smir=\EQ, smkx=\E&s1A, smso=\E&v5S,
+ smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY, use=vt52+arrows,
# HP 9845 desktop computer from BRL
# (hp9845: removed unknown capability :gu: -- esr)
hp9845|HP 9845,
@@ -9729,24 +10319,59 @@ hp9845|HP 9845,
# added empty <acsc> to avoid warnings re <smacs>/<rmacs> --esr)
hp98550|hp98550a|HP 9000 Series 300 color console,
OTbs, am, da, db, mir, xhp,
- cols#128, it#8, lines#49, lm#0,
+ cols#128, lines#49, lm#0,
acsc=, bel=^G, blink=\E&dA, bold=\E&dJ, cbt=\Ei, civis=\E*dR,
clear=\EH\EJ, cnorm=\E*dQ, cr=\r, cub1=^H, cud1=\n, cuf1=\EC,
cup=\E&a%p1%dy%p2%dC, cuu1=\EA, dch1=\EP, dim=\E&dH,
- dl1=\EM, ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=^I, hts=\E1,
+ dl1=\EM, ed=\EJ, el=\EK, hpa=\E&a%p1%dC, hts=\E1,
if=/usr/share/tabset/std, il1=\EL, ind=\n, invis=\E&ds,
- kbs=^H, kclr=\EJ, kctab=\E2, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
- kcuu1=\EA, kdch1=\EP, kdl1=\EM, ked=\EJ, kel=\EK, kf1=\Ep,
- kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et, kf6=\Eu, kf7=\Ev, kf8=\Ew,
- khome=\Eh, khts=\E1, kich1=\EQ, kil1=\EL, kind=\ES, kll=\EF,
- knp=\EU, kpp=\EV, kri=\ET, krmir=\ER, ktbc=\E3, rev=\E&dJ,
- rmacs=^O, rmir=\ER, rmkx=\E&s0A, rmso=\E&d@, rmul=\E&d@,
- sgr0=\E&d@, smacs=^N, smir=\EQ, smkx=\E&s1A, smso=\E&dJ,
- smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY,
+ kbs=^H, kclr=\EJ, kctab=\E2, kdch1=\EP, kdl1=\EM, ked=\EJ,
+ kel=\EK, khts=\E1, kich1=\EQ, kil1=\EL, kll=\EF, knp=\EU,
+ kpp=\EV, krmir=\ER, ktbc=\E3, rev=\E&dJ, rmacs=^O, rmir=\ER,
+ rmkx=\E&s0A, rmso=\E&d@, rmul=\E&d@, sgr0=\E&d@, smacs=^N,
+ smir=\EQ, smkx=\E&s1A, smso=\E&dJ, smul=\E&dD, tbc=\E3,
+ vpa=\E&a%p1%dY, use=hp+pfk-cr, use=ansi+inittabs,
+ use=hp+arrows,
+
+# From: Martin Trusler
+hp98550-color|hp98550a-color|HP 9000 Series 300 color console (Trusler),
+ OTbs, am, ccc, da, db, km, mir, xhp,
+ colors#8, cols#128, lh#2, lines#49, lm#0, lw#8, nlab#8, pairs#8,
+ xmc#0,
+ acsc=+>\,<-\^.v0\374``a\374f\372g\376h\374j+k+l+m+n+o-q-s-t+
+ u+v+w+x|y<z>{*|!}\273~\362,
+ bel=^G, bold=\E&dD, cbt=\Ei, clear=\EH\EJ, cr=\r, cub1=^H,
+ cud1=\EB, cuf1=\EC, cup=\E&a%p1%dy%p2%dC, cuu1=\EA,
+ dch1=\EP, dl1=\EM, ed=\EJ, el=\EK, home=\E&a0y0C,
+ hpa=\E&a%p1%dC, hts=\E1, il1=\EL, ind=\ES,
+ initp=\E&v0m%?%p2%{1000}%=%t1%e.%p2%d%;a%?%p3%{1000}%=%t1%e.
+ %p3%d%;b%?%p4%{1000}%=%t1%e.%p4%d%;c%?%p5%{1000}%=%t1
+ %e.%p5%d%;x%?%p6%{1000}%=%t1%e.%p6%d%;y%?%p7%{1000}%=
+ %t1%e.%p7%d%;z%p1%dI,
+ is1=\EH\EJ, kbs=^H, kctab=\E2, kdch1=\EP, kdl1=\EM, ked=\EJ,
+ kel=\EK, khts=\E1, kich1=\EQ, kil1=\EL, kll=\EF, knp=\EU,
+ kpp=\EV, krmir=\ER, ktbc=\E3, meml=\El, memu=\Em,
+ oc=\E&v0m1a1b1c0I\E&v1a1I\E&v1b2I\E&v1a1b3I\E&v1c4I\E&v1a1c5
+ I\E&v1b1c6I\E&v1x1y7I,
+ op=\E&v0S, pfkey=\E&f%p1%dk%p2%l%dL%p2%s,
+ pfloc=\E&f1a%p1%dk%p2%l%dL%p2%s,
+ pfx=\E&f2a%p1%dk%p2%l%dL%p2%s,
+ pln=\E&f%p1%dk%p2%l%dd0L%p2%s, rev=\E&dB, ri=\ET,
+ rmacs=^O, rmam=\E&s1C, rmcup=\E&s0A, rmir=\ER, rmkx=\E&s0A,
+ rmln=\E&j@, rmm=\E&k0I, rmso=\E&d@, rmul=\E&d@, rs1=\EE,
+ scp=\E&v%p1%dS,
+ sgr=\E&d%p1%p3%|%{2}%*%p2%p6%|%{4}%*%+%{64}%+%c%?%p9%t%'
+ \016'%c%e%'\017'%c%;,
+ sgr0=\E&d@\017, smacs=^N, smam=\E&s0C, smcup=\E&s1A,
+ smir=\EQ, smkx=\E&s1A, smln=\E&jB, smm=\E&k1I, smso=\E&dB,
+ smul=\E&dD, tbc=\E3, u6=\Ea%dc%dR\r, u7=\Ea,
+ u8=\E%[0123456789/], u9=\E*s1\^, vpa=\E&a%p1%dY,
+ use=hp+pfk-cr, use=ansi+inittabs, use=hp+arrows,
+
# From: Victor Duchovni <vic@fine.princeton.edu>
# (hp700-wy: removed obsolete ":nl=^J:";
# replaced /usr/share/tabset/hp700-wy with std because <it#8>,<hts=\E1> -- esr)
-hp700-wy|HP700/41 emulating wyse30,
+hp700-wy|HP 700/41 emulating Wyse30,
OTbs, am, bw, mir, msgr,
cols#80, it#8, lines#24, xmc#1,
cbt=\EI, clear=^Z, cr=\r, cub1=^H, cud1=^V, cuf1=^L,
@@ -9766,15 +10391,13 @@ hp70092|hp70092a|hp70092A|HP 700/92,
bold=\E&dB, cbt=\Ei, clear=\E&a0y0C\EJ, cr=\r, cub1=^H,
cud1=\EB, cuf1=\EC, cup=\E&a%p1%dy%p2%dC, cuu1=\EA,
dch1=\EP, dim=\E&dH, dl1=\EM, el=\EK, hpa=\E&a%p1%dC, ht=^I,
- hts=\E1, il1=\EL, kbs=^H, kclr=\EJ, kctab=\E2, kcub1=\ED,
- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\EP, kdl1=\EM,
- ked=\EJ, kel=\EK, kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et,
- kf6=\Eu, kf7=\Ev, kf8=\Ew, khome=\Eh, khts=\E1, kich1=\EQ,
- kil1=\EL, kind=\ES, kll=\EF, knp=\EU, kpp=\EV, kri=\ET,
- krmir=\ER, ktbc=\E3, rev=\E&dB, ri=\ET, rmacs=^O, rmir=\ER,
- rmkx=\E&s0A, rmln=\E&j@, rmso=\E&d@, rmul=\E&d@,
- sgr0=\E&d@, smacs=^N, smir=\EQ, smkx=\E&s1A, smln=\E&jB,
- smso=\E&dJ, smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY,
+ hts=\E1, il1=\EL, kbs=^H, kclr=\EJ, kctab=\E2, kdch1=\EP,
+ kdl1=\EM, ked=\EJ, kel=\EK, khts=\E1, kich1=\EQ, kil1=\EL,
+ kll=\EF, knp=\EU, kpp=\EV, krmir=\ER, ktbc=\E3, rev=\E&dB,
+ ri=\ET, rmacs=^O, rmir=\ER, rmkx=\E&s0A, rmln=\E&j@,
+ rmso=\E&d@, rmul=\E&d@, sgr0=\E&d@, smacs=^N, smir=\EQ,
+ smkx=\E&s1A, smln=\E&jB, smso=\E&dJ, smul=\E&dD, tbc=\E3,
+ vpa=\E&a%p1%dY, use=hp+pfk-cr, use=hp+arrows,
bobcat|sbobcat|HP 9000 model 300 console,
am, da, db, mir, xhp,
@@ -9782,23 +10405,24 @@ bobcat|sbobcat|HP 9000 model 300 console,
cbt=\Ei, clear=\EH\EJ, cr=\r, cub1=^H, cud1=\EB, cuf1=\EC,
cup=\E&a%p1%dy%p2%dC$<6/>, cuu1=\EA, dch1=\EP,
dl1=\EM$<10*/>, ed=\EJ, el=\EK, hpa=\E&a%p1%dC$<6/>, ht=^I,
- il1=\EL$<10*/>, ind=\n, kbs=^H, kcub1=\ED, kcud1=\EB,
- kcuf1=\EC, kcuu1=\EA, khome=\Eh, nel=\r\n, rmir=\ER,
- rmkx=\E&s0A, rmso=\E&d@, rmul=\E&d@, sgr0=\E&d@, smir=\EQ,
- smkx=\E&s1A, smso=\E&dB, smul=\E&dD, vpa=\E&a%p1%dY$<6/>,
+ il1=\EL$<10*/>, ind=\n, kbs=^H, khome=\Eh, nel=\r\n,
+ rmir=\ER, rmkx=\E&s0A, rmso=\E&d@, rmul=\E&d@, sgr0=\E&d@,
+ smir=\EQ, smkx=\E&s1A, smso=\E&dB, smul=\E&dD,
+ vpa=\E&a%p1%dY$<6/>, use=vt52+arrows,
gator-t|HP 9000 model 237 emulating extra-tall AAA,
lines#94, use=gator,
gator|HP 9000 model 237 emulating AAA,
bw, km, mir, ul,
cols#128, it#8, lines#47,
- bel=^G, cbt=\E[Z, clear=\E[H\E[J, cr=\r, cub1=^H, cud1=\n,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\EM,
- dch=\E[%p1%dP$<4/>, dch1=\E[P, dl=\E[%p1%dM$<1*/>,
- dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, hpa=\E[%i%p1%d`,
- ht=^I, ich=\E[%p1%d@$<4/>, ich1=\E[@, il=\E[%p1%dL$<1*/>,
- il1=\E[L, kbs=^H, kcub1=^H, kcud1=\n, nel=\r\n,
- rep=%p1%c\E[%p2%db$<1*/>, rev=\E[7m, rmso=\E[m,
+ bel=^G, cbt=\E[Z, cr=\r, cub1=^H, cud1=\n, cuf1=\E[C,
+ cup=\E[%i%p1%d;%p2%dH, cuu1=\EM, dch=\E[%p1%dP$<4/>,
+ dch1=\E[P, dl=\E[%p1%dM$<1*/>, dl1=\E[M, home=\E[H,
+ hpa=\E[%i%p1%d`, ht=^I, ich=\E[%p1%d@$<4/>, ich1=\E[@,
+ il=\E[%p1%dL$<1*/>, il1=\E[L, kbs=^H, kcub1=^H, kcud1=\n,
+ nel=\r\n, rep=%p1%c\E[%p2%db$<1*/>, rev=\E[7m, rmso=\E[m,
rmul=\E[m, sgr0=\E[m, smso=\E[7m, smul=\E[4m,
+ use=ansi+erase,
+
gator-52|HP 9000 model 237 emulating VT52,
cols#128, lines#47, use=vt52-basic,
gator-52t|HP 9000 model 237 emulating extra-tall VT52,
@@ -9826,7 +10450,7 @@ dku7003|Honeywell Bull DKU 7003 all features described,
rmul=\E[m, sgr0=\E[m, smso=\E[7m, smul=\E[4m,
use=dku7003-dumb,
-#### Lear-Siegler (adm)
+#### Lear-Siegler (LSI adm)
#
# These guys are long since out of the terminals business, but
# in 1995 many current terminals still have an adm type as one of their
@@ -9840,13 +10464,13 @@ dku7003|Honeywell Bull DKU 7003 all features described,
# hanging in the air. (Thanks to Eric Fischer, <eric@fudge.uchicago.edu>,
# for clearing up this point.)
-adm1a|adm1|lsi adm1a,
+adm1a|adm1|LSI adm1a,
am,
cols#80, lines#24,
bel=^G, clear=\E;$<1>, cr=\r, cub1=^H, cud1=\n, cuf1=^L,
cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, home=^^,
ind=\n,
-adm2|lsi adm2,
+adm2|LSI adm2,
OTbs, am,
cols#80, lines#24,
bel=^G, clear=\E;, cr=\r, cub1=^H, cud1=\n, cuf1=^L,
@@ -9854,7 +10478,7 @@ adm2|lsi adm2,
dl1=\ER, ed=\EY, el=\ET, home=^^, ich1=\EQ, il1=\EE, ind=\n,
kcub1=^H, kcud1=\n, kcuf1=^L, kcuu1=^K, khome=^^,
# (adm3: removed obsolete ":ma=^K^P:" -- esr)
-adm3|lsi adm3,
+adm3|LSI adm3,
OTbs, am,
cols#80, lines#24,
bel=^G, clear=^Z, cr=\r, cub1=^H, cud1=\n, ind=\n,
@@ -9870,7 +10494,7 @@ adm3|lsi adm3,
# socket, you may be out of luck.
#
# (adm3a: some capabilities merged in from BRl entry -- esr)
-adm3a|lsi adm3a,
+adm3a|LSI adm3a,
OTbs, am,
cols#80, lines#24,
OTma=^K^P, OTnl=\n, bel=^G, clear=\032$<1/>, cr=\r, cub1=^H,
@@ -9880,10 +10504,9 @@ adm3a|lsi adm3a,
adm3a+|adm3a plus,
kbs=^H, use=adm3a,
# (adm5: removed obsolete ":ma=^Hh^Jj^Kk^Ll^^H:" & duplicate ":do=^J:" -- esr)
-adm5|lsi adm5,
+adm5|LSI adm5,
xmc#1,
- bel=^G, cr=\r, cud1=\n, ed=\EY, el=\ET, kbs=^H, khome=^^,
- rmso=\EG, smso=\EG, use=adm3a+,
+ ed=\EY, el=\ET, khome=^^, rmso=\EG, smso=\EG, use=adm3a+,
# A lot of terminals other than adm11s use these. Wherever you see
# use=adm+sgr with some of its capabilities disabled, try the
# disabled ones. They may well work but not have been documented or
@@ -9953,7 +10576,7 @@ adm11|LSI ADM-11,
# 7 - 7
# 20 - 6,8
#
-adm12|lsi adm12,
+adm12|LSI adm12,
OTbs, OTpt, am, mir,
OTug#1, cols#80, it#8, lines#24,
bel=^G, clear=^Z, cr=\r, cub1=^H, cud1=\n, cuf1=^L,
@@ -9967,7 +10590,7 @@ adm12|lsi adm12,
kf7=^A7\r, kf8=^A8\r, kf9=^A9\r, rmir=\Er, smir=\Eq, tbc=\E0,
use=adm+sgr,
# (adm20: removed obsolete ":kn#7:" -- esr)
-adm20|lear siegler adm20,
+adm20|Lear Siegler adm20,
OTbs, am,
cols#80, it#8, lines#24,
bel=^G, cbt=\EI, clear=^Z, cr=\r, cub1=^H, cuf1=^L,
@@ -9975,16 +10598,15 @@ adm20|lear siegler adm20,
dl1=\ER, ed=\EY, el=\ET, home=^^, ht=^I, ich1=\EQ, il1=\EE,
kf1=^A, kf2=^B, kf3=^W, kf4=^D, kf5=^E, kf6=^X, kf7=^Z, rmso=\E(,
sgr0=\E(, smso=\E),
-adm21|lear siegler adm21,
+adm21|Lear Siegler adm21,
xmc#1,
- bel=^G, cr=\r, cud1=\n, dch1=\EW, dl1=\ER$<30*>, ed=\EY,
- el=\ET, ich1=\EQ, il1=\EE$<30*>, ind=\n, invis@, kbs=^H,
- kcub1=^H, kcud1=\n, kcuf1=^L, kcuu1=^K, khome=^^,
- use=adm+sgr, use=adm3a,
+ dch1=\EW, dl1=\ER$<30*>, ed=\EY, el=\ET, ich1=\EQ,
+ il1=\EE$<30*>, invis@, kbs=^H, khome=^^, use=adm+sgr,
+ use=adm3a,
# (adm22: ":em=:" was an obvious typo for ":ei=:"; also,
# removed obsolete ":kn#7:ma=j^Jk^P^K^Pl ^R^L^L :";
# removed bogus-looking \200 from before <cup>. -- esr)
-adm22|lsi adm22,
+adm22|LSI adm22,
OTbs, am,
cols#80, lines#24,
bel=^G, cbt=\EI, clear=\E+, cr=\r, cub1=^H, cud1=\n, cuf1=^L,
@@ -10139,7 +10761,7 @@ adm22|lsi adm22,
# position 6, bank @c11, 25% from back end of the circuit board. Should be
# OFF. If there is no such switch, you have an old adm31 and must use oadm31.
# (adm31: removed obsolete ":ma=j^Jk^P^K^Pl ^R^L^L :" -- esr)
-adm31|lsi adm31 with sw6 set for underline mode,
+adm31|LSI adm31 with sw6 set for underline mode,
OTbs, am, mir,
cols#80, lines#24,
bel=^G, clear=\E*, cr=\r, cub1=^H, cud1=\n, cuf1=^L,
@@ -10158,7 +10780,7 @@ adm36|LSI ADM36,
if=/usr/share/tabset/vt100,
is2=\E<\E>\E[6;?2;?7;?8h\E[4;20;?1;?3;?4;?5;?6;?18;?19l, use=vt100+4bsd,
# (adm42: removed obsolete ":ma=^K^P:" -- esr)
-adm42|lsi adm42,
+adm42|LSI adm42,
OTbs, am,
cols#80, lines#24,
bel=^G, cbt=\EI, clear=\E;, cr=\r, cub1=^H, cud1=\n, cuf1=^L,
@@ -10170,7 +10792,7 @@ adm42|lsi adm42,
# The following termcap for the Lear Siegler ADM-42 leaves the
# "system line" at the bottom of the screen blank (for those who
# find it distracting otherwise)
-adm42-ns|lsi adm-42 with no system line,
+adm42-ns|LSI adm-42 with no system line,
cbt=\EI\EF \011, clear=\E;\EF \011,
cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<6>\EF \011,
dch1=\EW\EF \011, dl1=\ER\EF \011, ed=\EY\EF \011,
@@ -10181,7 +10803,7 @@ adm42-ns|lsi adm-42 with no system line,
# purposes in that it will shift the position of every character on the page,
# not just the cursor line!
# From: Michael Driscoll <fenris@lightspeed.net> 10 July 1996
-adm1178|1178|lsi adm1178,
+adm1178|1178|LSI adm1178,
am,
cols#80, lines#24, xmc#1,
bel=^G, bold=\E(, cbt=\EI, clear=\E+, cr=\r, cub1=^H, cud1=\n,
@@ -10203,22 +10825,21 @@ adm1178|1178|lsi adm1178,
#
# Standout mode is dim reverse-video.
-pt100|pt200|wren|fenix|prime pt100/pt200,
+pt100|pt200|wren|fenix|Prime pt100/pt200,
am, bw, mir, msgr,
cols#80, it#8, lines#24,
- cbt=\E[Z, clear=\E?, cr=\r, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\ED, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E0%p1%{33}%+%c%p2%{33}%+%c, cuu=\E[%p1%dA,
- cuu1=\EM, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl1=\E[M,
- ed=\E[J\E[r, el=\E[K\E[t, flash=\E$$<200/>\E$P,
- home=\E$B, ht=^I, il1=\E[L\E[t, ind=\n, kbs=^H, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E$A, nel=\r\n,
- rmcup=, rmir=\E[4l, rmkx=\E[>13l, rmso=\E[m, rmul=\E[m,
- sgr0=\E[m,
+ cbt=\E[Z, clear=\E?, cr=\r, cub1=^H, cud1=\ED,
+ cup=\E0%p1%{33}%+%c%p2%{33}%+%c, cuu1=\EM,
+ dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl1=\E[M, ed=\E[J\E[r,
+ el=\E[K\E[t, flash=\E$$<200/>\E$P, home=\E$B, ht=^I,
+ il1=\E[L\E[t, ind=\n, khome=\E$A, nel=\r\n, rmcup=,
+ rmir=\E[4l, rmkx=\E[>13l, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
smcup=\E[>1l\E[>2l\E[>16l\E[4l\E[>9l\E[20l\E[>3l\E[>7h\E[>12
l\E[1Q,
smir=\E[4h, smkx=\E[>13h, smso=\E[2;7m, smul=\E[4m,
-pt100w|pt200w|wrenw|fenixw|prime pt100/pt200 in 132-column mode,
+ use=ansi+arrows, use=ansi+local,
+
+pt100w|pt200w|wrenw|fenixw|Prime pt100/pt200 in 132-column mode,
cols#132,
cup=\E[%i%p1%d;%p2%dH, use=pt100,
pt250|Prime PT250,
@@ -10242,7 +10863,7 @@ pt250w|Prime PT250 in 132-column mode,
#
# The qvt101 and qvt102 listed here are long obsolete; so is the qvt101+
# built to replace them, and a qvt119+ which was a 101+ with available wide
-# mode (132 columns). There was a qvt103 which added vt100/vt131 emulations
+# mode (132 columns). There was a qvt103 which added VT100/VT131 emulations
# and an ANSI-compatible qvt203 that replaced it. Qume started producing
# ANSI-compatible terminals with the qvt323 and qvt61.
#
@@ -10253,14 +10874,14 @@ pt250w|Prime PT250 in 132-column mode,
# popular lines such as ADDS, and dual-host capabilities. The qvt82 is
# designed for use as a SCO ANSI terminal. The qvt70 is a color terminal
# with many emulations including Wyse370, Wyse 325, etc. Their newest
-# model is the qvt520, which is vt420-compatible.
+# model is the qvt520, which is VT420-compatible.
#
# There are some ancient printing Qume terminals under `Daisy Wheel Printers'
#
# If you inherit a Qume without docs, try Ctrl-Shift-Setup to enter its
# setup mode. Shift-s should be a configuration save to NVRAM.
-qvt101|qvt108|qume qvt 101 and QVT 108,
+qvt101|qvt108|Qume qvt 101 and QVT 108,
xmc#1, use=qvt101+,
# This used to have <cvvis=\E.2> but no <cnorm> or <civis>. The BSD termcap
@@ -10272,7 +10893,7 @@ qvt101|qvt108|qume qvt 101 and QVT 108,
#
# Added kdch1, kil1, kdl1 based on screenshot -TD:
# http://www.vintagecomputer.net/qume/qvt-108/qume_qvt-108_keyboard.jpg
-qvt101+|qvt101p|qume qvt 101 PLUS product,
+qvt101+|qvt101p|Qume qvt 101 PLUS product,
am, bw, hs, ul,
cols#80, lines#24, xmc#0,
bel=^G, cbt=\EI, clear=^Z, cnorm=\E.4, cr=\r, cub1=^H, cud1=\n,
@@ -10285,31 +10906,31 @@ qvt101+|qvt101p|qume qvt 101 PLUS product,
kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r,
kf9=^AH\r, khome=^^, kich1=\EQ, kil1=\EE, mc4=\EA, mc5=\E@,
rmso=\E(, smso=\E0P\E), tbc=\E3, tsl=\Eg\Ef, use=adm+sgr,
-qvt102|qume qvt 102,
+qvt102|Qume qvt 102,
cnorm=\E., use=qvt101,
# (qvt103: added <rmam>/<smam> based on init string -- esr)
-qvt103|qume qvt 103,
+qvt103|Qume qvt 103,
am, xenl, xon,
cols#80, it#8, lines#24, vt#3,
bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
- clear=\E[H\E[2J$<50>, cr=\r, csr=\E[%i%p1%d;%p2%dr,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\n,
- cuf=\E[%p1%dC, cuf1=\E[C$<2>,
- cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA,
+ clear=\E[H\E[2J$<50>, cr=\r, cub1=^H, cud1=\n,
+ cuf1=\E[C$<2>, cup=\E[%i%p1%d;%p2%dH$<5>,
cuu1=\E[A$<2>, ed=\E[J$<50>, el=\E[K$<3>, home=\E[H, ht=^I,
hts=\EH, ind=\n, kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
- kcuu1=\EOA, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, rc=\E8,
+ kcuu1=\EOA, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
rev=\E[7m$<2>, ri=\EM$<5>, rmam=\E[?7l, rmkx=\E[?1l\E>,
rmso=\E[m$<2>, rmul=\E[m$<2>,
- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
+ rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1
%;m$<2>,
sgr0=\E[m$<2>, smam=\E[?7h, smkx=\E[?1h\E=,
- smso=\E[7m$<2>, smul=\E[4m$<2>, tbc=\E[3g,
-qvt103-w|qume qvt103 132 cols,
+ smso=\E[7m$<2>, smul=\E[4m$<2>, tbc=\E[3g, use=ansi+csr,
+ use=ansi+local,
+
+qvt103-w|Qume qvt103 132 cols,
cols#132, lines#24,
rs2=\E>\E[?3h\E[?4l\E[?5l\E[?8h, use=qvt103,
-qvt119+|qvt119p|qvt119|qume qvt 119 and 119PLUS terminals,
+qvt119+|qvt119p|qvt119|Qume qvt 119 and 119PLUS terminals,
am, hs, mir, msgr,
cols#80, lines#24, xmc#0,
bel=^G, cbt=\EI, clear=\E*1, cnorm=\E.4, cr=\r, cub1=^H,
@@ -10329,12 +10950,12 @@ qvt119+-w|qvt119p-w|qvt119-w|QVT 119 and 119 PLUS in 132 column mode,
is2=\EDF\EC\EG0\Er\E(\E%\EX\En4, use=qvt119+,
qvt119+-25-w|qvt119p-25-w|qvt119-25-w|QVT 119 and 119 PLUS 132 by 25,
lines#25, use=qvt119+,
-qvt203|qvt203+|qume qvt 203 Plus,
+qvt203|qvt203+|Qume qvt 203 Plus,
dch1=\E[P$<7>, dl1=\E[M$<99>, il1=\E[L$<99>, ind=\n$<30>,
ip=$<7>, kf0=\E[29~, kf1=\E[17~, kf2=\E[18~, kf3=\E[19~,
kf4=\E[20~, kf5=\E[21~, kf6=\E[23~, kf7=\E[24~, kf8=\E[25~,
kf9=\E[28~, rmir=\E[4l, smir=\E[4h, use=qvt103,
-qvt203-w|qvt203-w-am|qume qvt 203 PLUS in 132 cols (w/advanced video),
+qvt203-w|qvt203-w-am|Qume qvt 203 PLUS in 132 cols (w/advanced video),
cols#132, lines#24,
rs2=\E>\E[?3h\E[?4l\E[?5l\E[?8h, use=qvt203,
#
@@ -10350,7 +10971,7 @@ qvt203-25-w|QVT 203 PLUS with 25 by 132 columns,
cols#132, lines#25,
rs2=\E[?3h\E[=40h, use=qvt203,
-#### Televideo (tvi)
+#### TeleVideo (tvi)
#
# TeleVideo
# 550 East Brokaw Road
@@ -10363,9 +10984,9 @@ qvt203-25-w|QVT 203 PLUS with 25 by 132 columns,
# These require incredible amounts of padding.
#
# All of these terminals (912 to 970 and the tvipt) are discontinued. Newer
-# Televideo terminals are ANSI and PC-ANSI compatible.
+# TeleVideo terminals are ANSI and PC-ANSI compatible.
-tvi803|televideo 803,
+tvi803|TeleVideo 803,
clear=\E*$<10>, use=tvi950,
# Vanilla tvi910 -- W. Gish <cswarren@violet> 10/29/86
@@ -10450,7 +11071,7 @@ tvi803|televideo 803,
# D duplex
# (tvi910: removed obsolete ":ma=^Kk^Ll^R^L:"; added <khome>, <cub1>, <cud1>,
# <ind>, <hpa>, <vpa>, <am>, <msgr> from SCO entry -- esr)
-tvi910|televideo model 910,
+tvi910|TeleVideo model 910,
OTbs, am, msgr,
cols#80, it#8, lines#24, xmc#1,
bel=^G, cbt=\EI, clear=^Z, cr=\r, cub1=^H, cud1=\n, cuf1=^L,
@@ -10491,7 +11112,7 @@ tvi910|televideo model 910,
# S2 9 DCD status (pin 8) (U = disconnected, D = connected)
# S2 10 DTR status (pin 20) (U = disconnected, D = connected)
#
-tvi910+|televideo 910+,
+tvi910+|TeleVideo 910+,
dch1=\EW, dl1=\ER$<33*>, home=^^, ich1=\EQ, il1=\EE$<33*>,
kf0=^A@\r, kf1=^AA\r, kf2=^AB\r, kf3=^AC\r, kf4=^AD\r,
kf5=^AE\r, kf6=^AF\r, kf7=^AG\r, kf8=^AH\r, kf9=^AI\r,
@@ -10499,7 +11120,7 @@ tvi910+|televideo 910+,
# (tvi912: removed obsolete ":ma=^K^P^L :", added <flash> and
# <khome> from BRL entry -- esr)
-tvi912|tvi914|tvi920|old televideo 912/914/920,
+tvi912|tvi914|tvi920|TeleVideo 912/914/920 (old),
OTbs, OTpt, am, msgr,
cols#80, it#8, lines#24, xmc#1,
bel=^G, clear=^Z, cr=\r, cub1=^H, cud1=\n, cuf1=^L,
@@ -10514,7 +11135,7 @@ tvi912|tvi914|tvi920|old televideo 912/914/920,
# We got some new tvi912c terminals that act really weird on the regular
# termcap, so one of our gurus worked this up. Seems that cursor
# addressing is broken.
-tvi912cc|tvi912 at cowell college,
+tvi912cc|tvi912 at Cowell College,
cup@, use=tvi912c,
# tvi{912,920}[bc] - TeleVideo TVI-912B/TVI-920B and TVI-912C/TVI-920C
@@ -10908,11 +11529,11 @@ tvi920b|tvi920c|TeleVideo TVI-920B or TVI-920C (half-intensity attribute),
tvi920b-mc|tvi920c-mc|TeleVideo TVI-920B or TVI-920C (magic cookies),
use=tvi920b+fn, use=tvi912b+mc, use=tvi912b-unk,
-# Televideo 921 and variants
+# TeleVideo 921 and variants
# From: Tim Theisen <tim@cs.wisc.edu> 22 Sept 1995
# (tvi921: removed :ko=bt: before translation, I see no backtab cap;
# also added empty <acsc> to suppress tic warning -- esr)
-tvi921|televideo model 921 with sysline same as page & real vi function,
+tvi921|TeleVideo model 921 with sysline same as page & real vi function,
OTbs, OTpt, am, hs, xenl, xhp,
cols#80, lines#24, xmc#0,
acsc=, clear=^Z, cnorm=\E.3, cr=\r, cub1=^H, cud1=^V, cuf1=^L,
@@ -10927,7 +11548,7 @@ tvi921|televideo model 921 with sysline same as page & real vi function,
# without the beeper
# (tvi92B: removed :ko=bt: before translation, I see no backtab cap;
# also added empty <acsc> to suppress tic warning -- esr)
-tvi92B|televideo model 921 with sysline same as page & real vi function & no beeper,
+tvi92B|TeleVideo model 921 with sysline same as page & real vi function & no beeper,
am, hs, xenl, xhp,
cols#80, lines#24, xmc#0,
acsc=, clear=^Z, cnorm=\E.3, cr=\r, cub1=^H, cud1=^V, cuf1=^L,
@@ -10948,7 +11569,7 @@ tvi92D|tvi92B with DTR instead of XON/XOFF & better padding,
# (tvi924: This used to have <dsl=\Es0>, <fsl=\031>. I put the new strings
# in from a BSD termcap file because it looks like they do something the
# old ones skip -- esr)
-tvi924|televideo tvi924,
+tvi924|TeleVideo tvi924,
am, bw, hs, in, mir, msgr, xenl, xon,
cols#80, it#8, lines#24, wsl#80, xmc#0,
bel=^G, blink=\EG2, cbt=\EI, civis=\E.0, clear=\E*0,
@@ -11102,7 +11723,7 @@ tvi924|televideo tvi924,
# --------------------------------------------
#
# (tvi925: BSD has <clear=\E*>. I got <is2> and <ri> from there -- esr)
-tvi925|televideo 925,
+tvi925|TeleVideo 925,
OTbs, am, bw, hs, ul,
cols#80, lines#24, xmc#1,
bel=^G, cbt=\EI, clear=^Z, cnorm=\E.4, cr=\r, cub1=^H, cud1=^V,
@@ -11119,7 +11740,7 @@ tvi925|televideo 925,
# to avoid "magic cookie" standout glitch:
tvi925-hi|TeleVideo Model 925 with half intensity standout mode,
xmc@,
- kbs=^H, kcub1=^H, kcud1=\n, rmso=\E(, smso=\E), use=tvi925,
+ kcud1=\n, rmso=\E(, smso=\E), use=tvi925,
# From: Todd Litwin <litwin@litwin.jpl.nasa.gov> 28 May 1993
# Originally Tim Curry, Univ. of Central Fla., <duke!ucf-cs!tim> 5/21/82
@@ -11220,7 +11841,7 @@ tvi925-hi|TeleVideo Model 925 with half intensity standout mode,
# Finally, note that BSD has cud1=^V. -- esr)
#
# TVI 950 has 11 function-keys -TD
-tvi950|televideo 950,
+tvi950|TeleVideo 950,
OTbs, am, hs, mir, msgr, xenl, xon,
cols#80, it#8, lines#24, xmc#1,
acsc=jHkGlFmEnIqKtMuLvOwNxJ, bel=^G, cbt=\EI, clear=\E*,
@@ -11254,7 +11875,7 @@ tvi950|televideo 950,
# set duplex (send) edit keys (\El) when entering vi
# set local (no send) edit keys (\Ek) when exiting vi
#
-tvi950-2p|televideo950 w/2 pages,
+tvi950-2p|TeleVideo 950 w/2 pages,
is2=\EDF\EC\Ed\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee\s\017\011\Ek
\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0
\E\\2\E-07\s\011,
@@ -11270,7 +11891,7 @@ tvi950-2p|televideo950 w/2 pages,
# when exiting ex, reset 96 line page (\E\\3)
# place cursor at 0,24,1 (\E-07 )
#
-tvi950-4p|televideo950 w/4 pages,
+tvi950-4p|TeleVideo 950 w/4 pages,
is2=\EDF\EC\Ed\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee\s\017\011\Ek
\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0
\E\\3\E-07\s\011,
@@ -11282,7 +11903,7 @@ tvi950-4p|televideo950 w/4 pages,
#
# set vb accordingly (\Ed ...delay... \Eb)
#
-tvi950-rv|televideo950 rev video,
+tvi950-rv|TeleVideo 950 rev video,
flash=\Ed$<200/>\Eb,
is2=\EDF\EC\Eb\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee\s\017\011\El
\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r
@@ -11290,7 +11911,7 @@ tvi950-rv|televideo950 rev video,
use=tvi950,
# tvi950-rv-2p uses the appropriate entries from 950-2p and 950-rv
-tvi950-rv-2p|televideo950 rev video w/2 pages,
+tvi950-rv-2p|TeleVideo 950 rev video w/2 pages,
flash=\Ed$<200/>\Eb,
is2=\EDF\EC\Eb\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee\s\017\011\Ek
\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0
@@ -11299,7 +11920,7 @@ tvi950-rv-2p|televideo950 rev video w/2 pages,
smkx=\El, use=tvi950,
# tvi950-rv uses the appropriate entries from 950-4p and 950-rv
-tvi950-rv-4p|televideo950 rev video w/4 pages,
+tvi950-rv-4p|TeleVideo 950 rev video w/4 pages,
flash=\Ed$<200/>\Eb,
is2=\EDF\EC\Eb\EG0\Er\EO\E'\E(\E%\Ew\EX\Ee\s\017\011\Ek
\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0
@@ -11316,9 +11937,9 @@ tvi950-rv-4p|televideo950 rev video w/4 pages,
# ko implies -- esr)
# If the BSD termcap file was right, <cup=\E=%p1%{32}%+%c%p2%{32}%+%c> would
# also work.
-tvi955|televideo 955,
- OTbs, mc5i, msgr@,
- it#8, xmc@,
+tvi955|TeleVideo 955,
+ mc5i, msgr@,
+ xmc@,
acsc=0_`RjHkGlFmEnIoPqKsQtMuLvOwNxJ, blink=\EG2,
civis=\E.0, cnorm=\E.2, cud1=^V, cup=\E[%i%p1%d;%p2%dH,
cvvis=\E.1, dim=\E[=5h, ind@, invis=\EG1,
@@ -11327,13 +11948,12 @@ tvi955|televideo 955,
rmam=\E[=7l, rmxon=^N,
rs1=\EDF\EC\Eg\Er\EO\E'\E(\Ew\EX\Ee\s\017\E0P\E6\0\E0p\E4\0
\Ef\r,
- sgr0=\EG0\E[=5l, smacs=\E$, smam=\E[=7h, smxon=^O,
- use=tvi950,
-tvi955-w|955-w|televideo955 w/132 cols,
+ sgr0=\EG0\E[=5l, smam=\E[=7h, smxon=^O, use=tvi950,
+tvi955-w|955-w|TeleVideo 955 w/132 cols,
cols#132,
is2=\E[=3h\EF1\Ed\EG0\E[=5l\E%\El, use=tvi955,
# use half-intensity as normal mode, full intensity as <bold>
-tvi955-hb|955-hb|televideo955 half-bright,
+tvi955-hb|955-hb|TeleVideo 955 half-bright,
bold=\E[=5l, dim@, is2=\E[=3l\EF1\Ed\EG0\E[=5h\E%\El,
sgr0=\EG0\E[=5h, use=tvi955,
# From: Humberto Appleton <beto@cs.utexas.edu>, 880521 UT Austin
@@ -11342,7 +11962,7 @@ tvi955-hb|955-hb|televideo955 half-bright,
# According to BRL we could have <rmkx>=\E>, <smkx>=\E= but I'm not sure what
# it does to the function keys. I deduced <rmam>/<smam>.
# also added empty <acsc> to suppress tic warning, -- esr)
-tvi970|televideo 970,
+tvi970|TeleVideo 970,
OTbs, OTpt, am, da, db, mir, msgr,
cols#80, it#8, lines#24,
acsc=, cbt=\E[Z, clear=\E[H\E[2J, csr=\E[%i%p1%d;%p2%dr,
@@ -11351,17 +11971,17 @@ tvi970|televideo 970,
ed=\E[J, el=\E[K, flash=\E[5m$<200/>\E[m, home=\E[H,
hpa=\E[%i%p1%dG, ht=^I, il1=\E[L,
is2=\E<\E[?21l\E[19h\E[1Q\E[10l\E[7l\E[H\E[2J,
- kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
kf1=\E?a, kf2=\E?b, kf3=\E?c, kf4=\E?d, kf5=\E?e, kf6=\E?f,
- kf7=\E?g, kf8=\E?h, kf9=\E?i, khome=\E[H, ri=\EM, rmacs=\E(B,
+ kf7=\E?g, kf8=\E?h, kf9=\E?i, ri=\EM, rmacs=\E(B,
rmam=\E[?7h, rmcup=, rmir=\E[4l, rmso=\E[m, rmul=\E[m,
sgr0=\E[m, smacs=\E(B, smam=\E[?7l,
smcup=\E[?20l\E[?7h\E[1Q, smir=\E[4h, smso=\E[7m,
- smul=\E[4m, vpa=\E[%i%p1%dd,
-tvi970-vb|televideo 970 with visual bell,
+ smul=\E[4m, vpa=\E[%i%p1%dd, use=ansi+arrows,
+
+tvi970-vb|TeleVideo 970 with visual bell,
flash=\E[?5h\0\0\0\0\0\0\0\0\0\0\0\0\0\E[?5l,
use=tvi970,
-tvi970-2p|televideo 970 with using 2 pages of memory,
+tvi970-2p|TeleVideo 970 with using 2 pages of memory,
rmcup=\E[H\E[J\E[V, smcup=\E[U\E[?20l\E[?7h\E[1Q,
use=tvi970,
# Works with vi and rogue. NOTE: Esc v sets autowrap on, Esc u sets 80 chars
@@ -11373,7 +11993,7 @@ tvi970-2p|televideo 970 with using 2 pages of memory,
# From: Gene Rochlin <armsis@amber.berkeley.edu> 9/19/84.
# The <ed>/<kf0>/<kf1>/<khome>/<mc4>, and <mc5> caps are from BRL, which says:
# F1 and F2 should be programmed as ^A and ^B; required for UNIFY.
-tvipt|televideo personal terminal,
+tvipt|TeleVideo personal terminal,
OTbs, am,
cols#80, lines#24,
cbt=\EI, clear=^Z, cub1=^H, cuf1=^L,
@@ -11383,16 +12003,15 @@ tvipt|televideo personal terminal,
kcuf1=^L, kcuu1=^K, kf0=^A, kf1=^B, khome=^^, mc4=^T, mc5=^R,
rmso=\EF, rmul=\EF, smso=\EG1@A\EH, smul=\EG1B@\EH,
# From: Nathan Peterson <nathan@sco.com>, 03 Sep 1996
-tvi9065|televideo 9065,
+tvi9065|TeleVideo 9065,
am, bw, chts, hs, mc5i, mir, msgr, xenl, xon,
cols#80, it#8, lh#1, lines#25, lm#0, lw#9, ma#4, nlab#8, vt#0,
wnum#0, wsl#30,
acsc='r0_jhkglfmeniopqksqtmulvownxj, bel=^G,
blink=\EG2, bold=\EG\,, cbt=\EI, civis=\E.0, clear=^Z,
- cnorm=\E.3, cr=\r, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD,
- cub1=^H, cud=\E[%p1%dB, cud1=^V, cuf=\E[%p1%dC, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu=\E[%p1%dA,
- cuu1=^K, cvvis=\E.2, dch=\E[%p1%dP, dch1=\EW, dim=\EGp,
+ cnorm=\E.3, cr=\r, csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^V,
+ cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
+ cvvis=\E.2, dch=\E[%p1%dP, dch1=\EW, dim=\EGp,
dl=\E[%p1%dM, dl1=\ER, dsl=\E_30\r, ech=\E[%p1%d@, ed=\EY,
el=\ET, flash=\Eb$<15>\Ed, fsl=\r, home=^^, ht=^I, hts=\E1,
ich=\E[%p1%d@, if=/usr/share/tabset/stdcrt,
@@ -11424,7 +12043,8 @@ tvi9065|televideo 9065,
%p9%t\E$%e\E%%%;,
sgr0=\EG0\E%, smacs=\E$, smam=\E=7h, smcup=\E.2, smdc=\Er,
smir=\Eq, smln=\E[4;2v, smso=\EGt, smul=\EG8, smxon=^O,
- tbc=\E3, tsl=\E[4;1v\E_30, uc=\EG8\EG0, use=ecma+index,
+ tbc=\E3, tsl=\E[4;1v\E_30, uc=\EG8\EG0, use=ansi+local,
+ use=ecma+index,
#### Visual (vi)
#
@@ -11438,36 +12058,31 @@ tvi9065|televideo 9065,
# Visual 50 from Beau Shekita, BTL-Whippany <whuxlb!ejs>
# Recently I hacked together the following termcap for Visual
# Technology's Visual 50 terminal. It's a slight modification of
-# the vt52 termcap.
-# It's intended to run when the Visual 50 is in vt52 emulation mode
-# (I know what you're thinking; if it's emulating a vt52, then why
+# the VT52 termcap.
+# It's intended to run when the Visual 50 is in VT52 emulation mode
+# (I know what you're thinking; if it's emulating a VT52, then why
# another termcap? Well, it turns out that the Visual 50 can handle
-# <dl1> and db(?) among other things, which the vt52 can't)
+# <dl1> and db(?) among other things, which the VT52 can't)
# The termcap works OK for the most part. The only problem is on
# character inserts. The whole line gets painfully redrawn for each
# character typed. Any suggestions?
# Beau's entry is combined with the vi50 entry from University of Wisconsin.
# Note especially the <il1> function. <kf4>-<kf6> are really l4-l6 in
# disguise; <kf7>-<kf9> are really l1-l3.
-vi50|visual 50,
+vi50|Visual 50,
OTbs, OTpt, am, da, db, msgr,
- cols#80, it#8, lines#24,
- OTnl=\n, bel=^G, cbt=\Ez$<4/>, clear=\EH\EJ, cr=\r, cub1=^H,
- cud1=\EB, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
- cuu1=\EA, dl1=\EM$<3*/>, ed=\EJ, el=\EK$<16/>, home=\EH,
- ht=^I, il1=\EL, ind=\n, kbs=^H, kcub1=\ED, kcud1=\EB,
- kcuf1=\EC, kcuu1=\EA, kf1=\EP, kf2=\EQ, kf3=\ER, kf4=\EV,
+ OTnl=\n, cbt=\Ez$<4/>, cub1=^H, dl1=\EM$<3*/>,
+ el=\EK$<16/>, il1=\EL, kf1=\EP, kf2=\EQ, kf3=\ER, kf4=\EV,
kf5=\EE, kf6=\E], kf7=\EL, kf8=\Ev, kf9=\EM, khome=\EH,
- nel=\r\n, ri=\EI, rmso=\ET, rmul=\EW, smso=\EU, smul=\ES,
+ rmso=\ET, rmul=\EW, smso=\EU, smul=\ES, use=vt52-basic,
# this one was BSD & SCO's vi50
-vi50adm|visual 50 in adm3a mode,
+vi50adm|Visual 50 in adm3a mode,
am, msgr,
cols#80, it#8, lines#24,
bel=^G, clear=^Z, cr=\r, cub1=^H, cud1=\n, cuf1=^L,
cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dl1=\EM,
ed=\Ek, el=\EK, home=\EH, ht=^I, il1=\EL, ind=\n, kbs=^H,
- kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome=\EH,
- rmso=\ET, smso=\EU,
+ khome=\EH, rmso=\ET, smso=\EU, use=vt52+arrows,
# From: Jeff Siegal <jbs@quiotix.com>
vi55|Visual 55,
OTbs, am, mir, msgr,
@@ -11475,9 +12090,8 @@ vi55|Visual 55,
clear=\Ev, csr=\E_%p1%{65}%+%c%p2%{65}%+%c, cub1=^H,
cud1=\n, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
cuu1=\EA, dch1=\Ew, dl1=\EM, ed=\EJ, el=\EK, home=\EH, ht=^I,
- il1=\EL, is2=\Ev\E_AX\Eb\EW\E9P\ET, kbs=^H, kcub1=\ED,
- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, ri=\EI, rmir=\Eb, rmso=\ET,
- smir=\Ea, smso=\EU,
+ il1=\EL, is2=\Ev\E_AX\Eb\EW\E9P\ET, kbs=^H, ri=\EI,
+ rmir=\Eb, rmso=\ET, smir=\Ea, smso=\EU, use=vt52+arrows,
# Visual 200 from BRL
# The following switch settings are assumed for normal operation:
@@ -11489,7 +12103,7 @@ vi55|Visual 55,
# (This cap is commented out because <smir>/<rmir> is more efficient -- esr)
# Supposedly "4*" delays should be used for <il1>, <ed>, <clear>, <dch1>,
# and <dl1> strings, but we seem to get along fine without them.
-vi200|visual 200,
+vi200|Visual 200,
OTbs, OTpt, am, mir, msgr,
OTkn#10, cols#80, it#8, lines#24,
acsc=+h.kffggjmkllsmenbq`tnuovcwdxa}r, bel=^G, cbt=\Ez,
@@ -11497,47 +12111,44 @@ vi200|visual 200,
cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, cvvis=\Ed,
dch1=\EO, dim=\E4, dl1=\EM, ed=\Ey, el=\Ex, home=\EH, ht=^I,
hts=\E1, il1=\EL, ind=\n, invis=\Ea, kbs=^H, kclr=\Ev,
- kctab=\E2, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
- kdch1=\EO, kdl1=\EM, ked=\EJ, kel=\Et, kf0=\E?p, kf1=\E?q,
- kf2=\E?r, kf3=\E?s, kf4=\E?t, kf5=\E?u, kf6=\E?v, kf7=\E?w,
- kf8=\E?x, kf9=\E?y, khome=\EH, khts=\E1, kich1=\Ei, kil1=\EL,
- krmir=\Ej, mc0=\EH\E], mc4=\EX, mc5=\EW, ri=\EI, rmacs=\EG,
- rmkx=\E>, rmso=\E3, rs1=\E3\Eb\Ej\E\El\EG\Ec\Ek\EX,
- sgr0=\E3\Eb, smacs=\EF, smkx=\E=, smso=\E4, tbc=\Eg,
+ kctab=\E2, kdch1=\EO, kdl1=\EM, ked=\EJ, kel=\Et, kf0=\E?p,
+ kf1=\E?q, kf2=\E?r, kf3=\E?s, kf4=\E?t, kf5=\E?u, kf6=\E?v,
+ kf7=\E?w, kf8=\E?x, kf9=\E?y, khome=\EH, khts=\E1, kich1=\Ei,
+ kil1=\EL, krmir=\Ej, mc0=\EH\E], mc4=\EX, mc5=\EW, ri=\EI,
+ rmacs=\EG, rmkx=\E>, rmso=\E3,
+ rs1=\E3\Eb\Ej\E\El\EG\Ec\Ek\EX, sgr0=\E3\Eb, smacs=\EF,
+ smkx=\E=, smso=\E4, tbc=\Eg, use=vt52+arrows,
# The older Visuals didn't come with function keys. This entry uses
# <smkx> and <rmkx> so that the keypad keys can be used as function keys.
# If your version of vi doesn't support function keys you may want
# to use vi200-f.
-vi200-f|visual 200 no function keys,
- is2=\E3\Eb\Ej\E\\\El\EG\Ed\Ek, kf0=\E?p, kf1=\E?q,
- kf2=\E?r, kf3=\E?s, kf4=\E?t, kf5=\E?u, kf6=\E?v, kf7=\E?w,
- kf8=\E?x, kf9=\E?y, rmkx=\E>, rmso@, smkx=\E=, smso@,
- use=vi200,
-vi200-rv|visual 200 reverse video,
- cnorm@, cvvis@, ri@, rmso=\E3, smso=\E4, use=vi200,
+vi200-f|Visual 200 no function keys,
+ is2=\E3\Eb\Ej\E\\\El\EG\Ed\Ek, rmso@, smso@, use=vi200,
+vi200-rv|Visual 200 reverse video,
+ cnorm@, cvvis@, ri@, use=vi200,
# the function keys are programmable but we don't reprogram them to their
# default values with <is2> because programming them is very verbose. maybe
# an initialization file should be made for the 300 and they could be stuck
# in it.
# (vi300: added <rmam>/<smam> based on init string -- esr)
-vi300|visual 300 ansi x3.64,
+vi300|Visual 300 ANSI x3.64,
am, bw, mir, xenl,
cols#80, lines#24,
- bel=^G, cbt=\E[Z, clear=\E[H\E[2J, cr=\r, cub1=^H, cud1=\E[B,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
- dch1=\E[P$<40>, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
- il1=\E[L, ind=\n,
+ bel=^G, cbt=\E[Z, clear=\E[H\E[2J, cr=\r, cub1=^H,
+ cup=\E[%i%p1%d;%p2%dH, dch1=\E[P$<40>, dl1=\E[M, ed=\E[J,
+ el=\E[K, home=\E[H, ht=^I, il1=\E[L, ind=\n,
is2=\E[7s\E[2;3;4;20;?5;?6l\E[12;?7h\E[1Q\E[0;1(D\E[8s,
kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
kf1=\E_A\E\\, kf2=\E_B\E\\, kf3=\E_C\E\\, kf4=\E_D\E\\,
kf5=\E_E\E\\, kf6=\E_F\E\\, kf7=\E_G\E\\, kf8=\E_H\E\\,
kf9=\E_I\E\\, khome=\E[H, ri=\EM, rmam=\E[?7l, rmir=\E[4l,
rmso=\E[m, rmul=\E[m, sgr0=\E[m, smam=\E[?7h, smir=\E[4h,
- smso=\E[1m, smul=\E[4m,
+ smso=\E[1m, smul=\E[4m, use=ansi+local1,
+
# some of the vi300s have older firmware that has the command
# sequence for setting editing extent reversed.
-vi300-old|visual 300 with old firmware (set edit extent reversed),
+vi300-old|Visual 300 with old firmware (set edit extent reversed),
is2=\E[7s\E[2;3;4;20;?5;?6l\E[12;?7h\E[2Q\E[0;1(D\E[8s, use=vi300,
# Visual 500 prototype entry from University of Wisconsin.
@@ -11549,7 +12160,7 @@ vi300-old|visual 300 with old firmware (set edit extent reversed),
# of this slow terminal. :xp: is 10 time the padding factor.
# (vi500: removed unknown :xp#4: termcap;
# also added empty <acsc> to suppress tic warning -- esr)
-vi500|visual 500,
+vi500|Visual 500,
am, mir, msgr,
cols#80, it#8, lines#33,
acsc=, cbt=\Ez$<4/>, clear=\Ev$<6*/>, cr=\r,
@@ -11559,27 +12170,27 @@ vi500|visual 500,
el=\Ex$<16/>, home=\EH, ht=\011$<8/>, il1=\EL\Ex$<3*/>,
ind=\n,
is2=\E3\E\001\E\007\E\003\Ek\EG\Ed\EX\El\E>\Eb\E\\,
- kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
- khome=\EH, nel=\r\n, rmacs=^O, rmir=\Ej, rmso=\E^G,
+ kbs=^H, khome=\EH, nel=\r\n, rmacs=^O, rmir=\Ej, rmso=\E^G,
rmul=\E^C, smacs=^N, smir=\Ei, smso=\E^H, smul=\E^D,
+ use=vt52+arrows,
-# The visual 550 is a visual 300 with tektronix graphics,
+# The visual 550 is a visual 300 with Tektronix graphics,
# and with 33 lines. clear screen is modified here to
# also clear the graphics.
-vi550|visual 550 ansi x3.64,
+vi550|Visual 550 ANSI x3.64,
lines#33,
clear=\030\E[H\E[2J, use=vi300,
-vi603|visual603|visual 603,
+vi603|visual603|Visual 603,
hs, mir,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J,
+ blink=\E[5m, bold=\E[1m, clear=\E[H\E[J,
csr=\E[%i%p1%d;%p2%dr, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
- dsl=\EP2;1~\E\\, ed=\E[J, el=\E[K, fsl=\E\\, il1=\E[L,
- ind=\ED, is1=\E>\E[?3l\E[?4l\E[?7h\E[?8h\E[1;24r,
- rev=\E[7m, ri=\EM, rmir=\E[4l, rmso=\E[27m, rmul=\E[24m,
+ cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P,
+ dsl=\EP2;1~\E\\, ed=\E[J, el=\E[K, fsl=\E\\, ind=\ED,
+ is1=\E>\E[?3l\E[?4l\E[?7h\E[?8h\E[1;24r, rev=\E[7m,
+ ri=\EM, rmir=\E[4l, rmso=\E[27m, rmul=\E[24m,
sgr0=\E[m\017$<2>, smir=\E[4h, smso=\E[7m, smul=\E[4m,
- tsl=\EP2~, use=vt100+4bsd,
+ tsl=\EP2~, use=ansi+idl1, use=decid+cpr, use=vt100+4bsd,
#### Wyse (wy)
#
@@ -11616,32 +12227,32 @@ vi603|visual603|visual 603,
# should be used.
#
wy30|wyse30|Wyse 30,
- am, bw, hs, mc5i, mir, msgr, xon,
- cols#80, lh#1, lines#24, lw#8, ma#1, nlab#8, wsl#45,
+ am, bw, mc5i, mir, msgr, xon,
+ cols#80, lh#1, lines#24, lw#8, ma#1, nlab#8,
acsc=0wa_h[jukslrmqnxqzttuyv]wpxv, bel=^G, cbt=\EI,
civis=\E`0, clear=\E+$<80>, cnorm=\E`1, cr=\r, cub1=^H,
cud1=\n, cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c,
cuu1=^K, dch1=\EW$<10>, dim=\E`7\E), dl1=\ER$<1>,
- dsl=\EF\r, ed=\EY$<80>, el=\ET, flash=\E`8$<100/>\E`9,
- fsl=\r, home=^^, ht=\011$<1>, hts=\E1, il1=\EE$<2>,
- ind=\n$<2>, ip=$<2>, is2=\E'\E(\E\^3\E`9\016\024,
- kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=^H, kcud1=\n, kcuf1=^L,
- kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY, kel=\ET, kent=\E7,
- kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
- kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, khome=^^, kich1=\EQ,
- kil1=\EE, knp=\EK, kpp=\EJ, krpl=\Er, ll=^^^K, mc0=\EP, mc4=^T,
- mc5=^X, nel=\r\n, pfx=\Ez%p1%{63}%+%c%p2%s\177,
+ ed=\EY$<80>, el=\ET, flash=\E`8$<100/>\E`9, home=^^,
+ ht=\011$<1>, hts=\E1, il1=\EE$<2>, ind=\n$<2>, ip=$<2>,
+ is2=\E'\E(\E\^3\E`9\016\024, kHOM=\E{, kbs=^H, kcbt=\EI,
+ kcub1=^H, kcud1=\n, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER,
+ ked=\EY, kel=\ET, kent=\E7, kf1=^A@\r, kf2=^AA\r, kf3=^AB\r,
+ kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r,
+ khome=^^, kich1=\EQ, kil1=\EE, knp=\EK, kpp=\EJ, krpl=\Er,
+ ll=^^^K, mc0=\EP, mc4=^T, mc5=^X, nel=\r\n,
+ pfx=\Ez%p1%{63}%+%c%p2%s\177,
pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E`7\E), ri=\Ej$<3>,
rmacs=\EH^C, rmir=\Er, rmln=\EA11, rmso=\E(,
sgr=%?%p1%p5%p8%|%|%t\E`7\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;,
sgr0=\E(\EH\003, smacs=\EH^B, smir=\Eq, smln=\EA10,
- smso=\E`7\E), tbc=\E0, tsl=\EF,
+ smso=\E`7\E), tbc=\E0, use=wyse+sl,
#
# This terminal description uses the non-hidden attribute mode
# (with magic cookie).
#
# (wy30-mc: added <smcup> to suppress tic warning --esr)
-wy30-mc|wyse30-mc|wyse 30 with magic cookies,
+wy30-mc|wyse30-mc|Wyse 30 with magic cookies,
msgr@,
ma@, xmc#1,
blink=\EG2, dim=\EGp, prot=\EG0\E), rmacs=\EG0\EH\003,
@@ -11655,7 +12266,7 @@ wy30-mc|wyse30-mc|wyse 30 with magic cookies,
# older versions of terminfo. If you see this effect then
# unset xon and delete the / from the delay.
# i.e. change $<100/> to $<100>
-wy30-vb|wyse30-vb|wyse 30 visible bell,
+wy30-vb|wyse30-vb|Wyse 30 visible bell,
bel@, use=wy30,
#
# The Wyse 50 can support one attribute (e.g. Dim, Inverse,
@@ -11668,32 +12279,36 @@ wy30-vb|wyse30-vb|wyse 30 visible bell,
# to correctly handle multiple attributes on a screen.
#
wy50|wyse50|Wyse 50,
- am, bw, hs, mc5i, mir, msgr, xon,
- cols#80, lh#1, lines#24, lw#8, ma#1, nlab#8, wsl#45,
- acsc=a;j5k3l2m1n8q\:t4u9v=w0x6, bel=^G, cbt=\EI,
+ am, bw, mc5i, mir, msgr, xon,
+ cols#80, lh#1, lines#24, lw#8, ma#1, nlab#8,
+ acsc=a;j5k3l2m1n8q:t4u9v=w0x6, bel=^G, cbt=\EI,
civis=\E`0, clear=\E+$<20>, cnorm=\E`1, cr=\r, cub1=^H,
cud1=\n, cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c,
- cuu1=^K, dch1=\EW$<1>, dim=\E`7\E), dl1=\ER, dsl=\EF\r,
- ed=\EY$<20>, el=\ET, flash=\E`8$<100/>\E`9, fsl=\r,
- home=^^, ht=^I, hts=\E1, il1=\EE, ind=\n$<2>, ip=$<1>,
- is1=\E`\:\E`9$<30>, is2=\016\024\E'\E(, kHOM=\E{, kbs=^H,
- kcbt=\EI, kcub1=^H, kcud1=\n, kcuf1=^L, kcuu1=^K, kdch1=\EW,
- kdl1=\ER, ked=\EY, kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r,
- kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r,
- kf16=^AO\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
- kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
- kich1=\EQ, kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er,
- ll=^^^K, mc0=\EP, mc4=^T, mc5=^X, nel=\r\n,
+ cuu1=^K, dch1=\EW$<1>, dim=\E`7\E), dl1=\ER, ed=\EY$<20>,
+ el=\ET, flash=\E`8$<100/>\E`9, home=^^, ht=^I, hts=\E1,
+ il1=\EE, ind=\n$<2>, ip=$<1>, is1=\E`:\E`9$<30>,
+ is2=\016\024\E'\E(, kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=^H,
+ kcud1=\n, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY,
+ kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r,
+ kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, kf16=^AO\r,
+ kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
+ kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\EQ,
+ kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er, ll=^^^K,
+ mc0=\EP, mc4=^T, mc5=^X, nel=\r\n,
pfx=\Ez%p1%{63}%+%c%p2%s\177,
pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E`7\E), rev=\E`6\E),
ri=\Ej, rmacs=\EH^C, rmir=\Er, rmln=\EA11, rmso=\E(,
sgr=%?%p1%p3%|%t\E`6\E)%e%p5%p8%|%t\E`7\E)%e\E(%;%?%p9%t\EH
\002%e\EH\003%;,
sgr0=\E(\EH\003, smacs=\EH^B, smir=\Eq, smln=\EA10,
- smso=\E`6\E), tbc=\E0, tsl=\EF, kF1=^A`\r, kF10=^Ai\r,
- kF11=^Aj\r, kF12=^Ak\r, kF13=^Al\r, kF14=^Am\r, kF15=^An\r,
- kF16=^Ao\r, kF2=^Aa\r, kF3=^Ab\r, kF4=^Ac\r, kF5=^Ad\r,
- kF6=^Ae\r, kF7=^Af\r, kF8=^Ag\r, kF9=^Ah\r,
+ smso=\E`6\E), tbc=\E0, kF1=^A`\r, kF10=^Ai\r, kF11=^Aj\r,
+ kF12=^Ak\r, kF13=^Al\r, kF14=^Am\r, kF15=^An\r, kF16=^Ao\r,
+ kF2=^Aa\r, kF3=^Ab\r, kF4=^Ac\r, kF5=^Ad\r, kF6=^Ae\r,
+ kF7=^Af\r, kF8=^Ag\r, kF9=^Ah\r, use=wyse+sl,
+wyse+sl|status line for Wyse terminals,
+ hs,
+ wsl#45,
+ dsl=\EF\r, fsl=\r, tsl=\EF,
#
# This terminal description uses the non-hidden attribute mode
# (with magic cookie).
@@ -11703,7 +12318,7 @@ wy50|wyse50|Wyse 50,
# unset <xon> and delete the / from the delay.
# i.e. change $<100/> to $<100>
# (wy50-mc: added <smcup> to suppress tic warning --esr)
-wy50-mc|wyse50-mc|wyse 50 with magic cookies,
+wy50-mc|wyse50-mc|Wyse 50 with magic cookies,
msgr@,
ma@, xmc#1,
blink=\EG2, dim=\EGp, prot=\EG0\E), rev=\EG4,
@@ -11713,13 +12328,13 @@ wy50-mc|wyse50-mc|wyse 50 with magic cookies,
%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;,
sgr0=\EG0\E(\EH\003, smacs=\EG0\EH\002, smcup=,
smso=\EGt, use=wy50, use=adm+sgr,
-wy50-vb|wyse50-vb|wyse 50 visible bell,
+wy50-vb|wyse50-vb|Wyse 50 visible bell,
bel@, use=wy50,
-wy50-w|wyse50-w|wyse 50 132-column,
+wy50-w|wyse50-w|Wyse 50 132-column,
cols#132, lw#7, nlab#16, wsl#97,
cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<2>, is1=\E`;\E`9$<30>,
use=wy50,
-wy50-wvb|wyse50-wvb|wyse 50 132-column visible bell,
+wy50-wvb|wyse50-wvb|Wyse 50 132-column visible bell,
bel@, use=wy50-w,
#
@@ -11746,16 +12361,16 @@ wy50-wvb|wyse50-wvb|wyse 50 132-column visible bell,
#
# Bug: The <op> capability resets attributes.
wy350|wyse350|Wyse 350,
- am, bw, hs, mc5i, mir, xon,
+ am, bw, mc5i, mir, xon,
colors#8, cols#80, lh#1, lines#24, lw#8, ncv#55, nlab#8, pairs#8,
- wsl#45, xmc#1,
+ xmc#1,
acsc=0wa_h[jukslrmqnxqzttuyv]wpxv, bel=^G, blink=\EG2,
cbt=\EI, civis=\E`0, clear=\E+$<20>, cnorm=\E`1, cr=\r,
cub1=^H, cud1=\n, cuf1=^L,
cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW$<1>,
- dim=\EGp, dl1=\ER, dsl=\EF\r, ed=\EY$<20>, el=\ET,
- flash=\E`8$<100/>\E`9, fsl=\r, home=^^, ht=^I, hts=\E1,
- il1=\EE, ind=\n$<2>, ip=$<1>, is1=\E`\:\E`9$<30>,
+ dim=\EGp, dl1=\ER, ed=\EY$<20>, el=\ET,
+ flash=\E`8$<100/>\E`9, home=^^, ht=^I, hts=\E1, il1=\EE,
+ ind=\n$<2>, ip=$<1>, is1=\E`:\E`9$<30>,
is2=\016\024\E'\E(, is3=\E%?, kHOM=\E{, kbs=^H, kcbt=\EI,
kcub1=^H, kcud1=\n, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER,
ked=\EY, kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r,
@@ -11776,20 +12391,20 @@ wy350|wyse350|Wyse 350,
%{64}%|%;%;%gA%+%{48}%+%c%?%p8%t\E)%e\E(%;%?%p9%t\EH
\002%e\EH\003%;,
sgr0=\EG0\E(\EH\003%{0}%PA%{0}%PC, smacs=\EG0\EH\002,
- smir=\Eq, smln=\EA10, tbc=\E0, tsl=\EF, use=adm+sgr,
-wy350-vb|wyse350-vb|wyse 350 visible bell,
+ smir=\Eq, smln=\EA10, tbc=\E0, use=adm+sgr, use=wyse+sl,
+wy350-vb|wyse350-vb|Wyse 350 visible bell,
bel@, use=wy350,
-wy350-w|wyse350-w|wyse 350 132-column,
+wy350-w|wyse350-w|Wyse 350 132-column,
cols#132, lw#7, nlab#16, wsl#97,
cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<2>, is1=\E`;\E`9$<30>,
use=wy350,
-wy350-wvb|wyse350-wvb|wyse 350 132-column visible bell,
+wy350-wvb|wyse350-wvb|Wyse 350 132-column visible bell,
bel@, use=wy350-w,
#
# This terminfo description is untested.
# The wyse100 emulates an adm31, so the adm31 entry should work.
#
-wy100|wyse 100,
+wy100|Wyse 100,
hs, mir,
cols#80, lines#24, xmc#1,
bel=^G, clear=\E;, cr=\r, cub1=^H, cud1=\n, cuf1=^L,
@@ -11807,15 +12422,15 @@ wy100|wyse 100,
# then set <msgr>.
#
wy120|wyse120|wy150|wyse150|Wyse 120/150,
- am, bw, hs, km, mc5i, mir, msgr, xon,
- cols#80, it#8, lh#1, lines#24, lw#8, nlab#8, pb#9601, wsl#45,
+ am, bw, km, mc5i, mir, msgr, xon,
+ cols#80, it#8, lh#1, lines#24, lw#8, nlab#8, pb#9601,
acsc=+/\,.0[a2fxgqh1ihjYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<50>,
cnorm=\E`1, cr=\r, cub1=^H, cud1=\n, cuf1=^L,
cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW$<7>,
- dim=\EGp, dl1=\ER$<3>, dsl=\EF\r, ed=\EY$<50>, el=\ET$<4>,
- flash=\E`8$<100/>\E`9, fsl=\r, home=^^, ht=\011$<1>,
- hts=\E1, il1=\EE$<3>, ind=\n$<3>, ip=$<2>, is1=\EcB0\EcC1,
+ dim=\EGp, dl1=\ER$<3>, ed=\EY$<50>, el=\ET$<4>,
+ flash=\E`8$<100/>\E`9, home=^^, ht=\011$<1>, hts=\E1,
+ il1=\EE$<3>, ind=\n$<3>, ip=$<2>, is1=\EcB0\EcC1,
is2=\Ed$\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016
\024\El,
is3=\EwJ\Ew1$<150>, kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=^H,
@@ -11830,25 +12445,25 @@ wy120|wyse120|wy150|wyse150|Wyse 120/150,
pfx=\EZ1%p1%{63}%+%c%p2%s\177,
pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E), ri=\Ej$<2>,
rmacs=\EcD, rmam=\Ed., rmcup=\Ew1, rmir=\Er, rmln=\EA11,
- rmxon=\Ec20, rs1=\E~!\E~4$<30>, rs2=\EeF\E`\:$<70>,
+ rmxon=\Ec20, rs1=\E~!\E~4$<30>, rs2=\EeF\E`:$<70>,
rs3=\EwG\Ee($<100>,
sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EcE%e\EcD%;\EG%{48}%?%p2%t%{8}
%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t
%{64}%|%;%?%p7%t%{1}%|%;%c,
sgr0=\E(\EH\003\EG0\EcD, smacs=\EcE, smam=\Ed/,
smcup=\Ew0, smir=\Eq, smln=\EA10, smso=\EGt, smxon=\Ec21,
- tbc=\E0, tsl=\EF, use=adm+sgr,
+ tbc=\E0, use=adm+sgr, use=wyse+sl,
#
-wy120-w|wyse120-w|wy150-w|wyse150-w|wyse 120/150 132-column,
+wy120-w|wyse120-w|wy150-w|wyse150-w|Wyse 120/150 132-column,
cols#132, lw#7, nlab#16, wsl#97,
cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<12>, ip=$<4>,
rs2=\E`;$<70>, use=wy120,
#
-wy120-25|wyse120-25|wy150-25|wyse150-25|wyse 120/150 80-column 25-lines,
+wy120-25|wyse120-25|wy150-25|wyse150-25|Wyse 120/150 80-column 25-lines,
lh@, lines#25, lw@, nlab@,
pln@, rs3=\EwG\Ee)$<100>, use=wy120,
#
-wy120-25-w|wyse120-25-w|wy150-25-w|wyse150-25-w|wyse 120/150 132-column 25-lines,
+wy120-25-w|wyse120-25-w|wy150-25-w|wyse150-25-w|Wyse 120/150 132-column 25-lines,
lh@, lines#25, lw@, nlab@,
pln@, rs3=\EwG\Ee)$<100>, use=wy120-w,
#
@@ -11870,7 +12485,7 @@ wy120-w-vb|wy120-wvb|wyse120-wvb|wy150-w-vb|wyse150-w-vb|Wyse 120/150 132-column
# <is2> -> do the initialization
# <is3> -> set up display memory (2 pages)
#
-# The Wyse 60's that have vt100 emulation are slower than the
+# The Wyse 60's that have VT100 emulation are slower than the
# older Wyse 60's. This change happened mid-1987.
# The capabilities effected are <dch1> <dl1> <il1> <ind> <ri>
#
@@ -11889,16 +12504,16 @@ wy120-w-vb|wy120-wvb|wyse120-wvb|wy150-w-vb|wyse150-w-vb|Wyse 120/150 132-column
# (wy60: we use \E{ rather than ^^ for home (both are documented) to avoid
# a bug reported by Robert Dunn, <rcdii@inlink.com> -- esr)
wy60|wyse60|Wyse 60,
- am, bw, hs, km, mc5i, mir, msgr,
- cols#80, lh#1, lines#24, lw#8, nlab#8, wsl#45,
+ am, bw, km, mc5i, mir, msgr,
+ cols#80, lh#1, lines#24, lw#8, nlab#8,
acsc=+/\,.0[a2fxgqh1ihjYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<100>,
cnorm=\E`1, cr=\r, cub1=^H, cud1=\n, cuf1=^L,
cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
- dch1=\EW$<11>, dclk=\E`b, dim=\EGp, dl1=\ER$<5>, dsl=\EF\r,
- ed=\EY$<100>, el=\ET, flash=\E`8$<100/>\E`9, fsl=\r,
- home=\E{, ht=\011$<1>, hts=\E1, il1=\EE$<4>, ind=\n$<5>,
- ip=$<3>, is1=\EcB0\EcC1,
+ dch1=\EW$<11>, dclk=\E`b, dim=\EGp, dl1=\ER$<5>,
+ ed=\EY$<100>, el=\ET, flash=\E`8$<100/>\E`9, home=\E{,
+ ht=\011$<1>, hts=\E1, il1=\EE$<4>, ind=\n$<5>, ip=$<3>,
+ is1=\EcB0\EcC1,
is2=\Ed$\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016
\024\El,
is3=\EwJ\Ew1$<150>, kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=^H,
@@ -11920,39 +12535,39 @@ wy60|wyse60|Wyse 60,
%{64}%|%;%?%p7%t%{1}%|%;%c,
sgr0=\E(\EH\003\EG0\EcD, smacs=\EcE, smam=\Ed/,
smcup=\Ew0, smir=\Eq, smln=\EA10, smso=\EGt, smxon=\Ec21,
- tbc=\E0, tsl=\EF, kF1=^A`\r, kF10=^Ai\r, kF11=^Aj\r,
- kF12=^Ak\r, kF13=^Al\r, kF14=^Am\r, kF15=^An\r, kF16=^Ao\r,
- kF2=^Aa\r, kF3=^Ab\r, kF4=^Ac\r, kF5=^Ad\r, kF6=^Ae\r,
- kF7=^Af\r, kF8=^Ag\r, kF9=^Ah\r, use=adm+sgr,
+ tbc=\E0, kF1=^A`\r, kF10=^Ai\r, kF11=^Aj\r, kF12=^Ak\r,
+ kF13=^Al\r, kF14=^Am\r, kF15=^An\r, kF16=^Ao\r, kF2=^Aa\r,
+ kF3=^Ab\r, kF4=^Ac\r, kF5=^Ad\r, kF6=^Ae\r, kF7=^Af\r,
+ kF8=^Ag\r, kF9=^Ah\r, use=adm+sgr, use=wyse+sl,
#
-wy60-w|wyse60-w|wyse 60 132-column,
+wy60-w|wyse60-w|Wyse 60 132-column,
cols#132, lw#7, nlab#16, wsl#97,
cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<16>, ip=$<5>,
rs2=\EeF$<150>\E`;$<150>, use=wy60,
#
-wy60-25|wyse60-25|wyse 60 80-column 25-lines,
+wy60-25|wyse60-25|Wyse 60 80-column 25-lines,
lh@, lines#25, lw@, nlab@,
pln@, rs3=\EwG\Ee)$<200>, use=wy60,
-wy60-25-w|wyse60-25-w|wyse 60 132-column 25-lines,
+wy60-25-w|wyse60-25-w|Wyse 60 132-column 25-lines,
lh@, lines#25, lw@, nlab@,
pln@, rs3=\EwG\Ee)$<200>, use=wy60-w,
#
-wy60-42|wyse60-42|wyse 60 80-column 42-lines,
+wy60-42|wyse60-42|Wyse 60 80-column 42-lines,
lines#42,
clear=\E+$<260>, cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<2>,
dch1=\EW$<16>, dl1=\ER$<11>, ed=\Ey$<260>, il1=\EE$<11>,
ind=\n$<9>, ip=$<5>, is1=\EcB2\EcC3, nel=\r\n$<6>,
ri=\Ej$<10>, rs3=\Ee*$<150>, use=wy60,
-wy60-42-w|wyse60-42-w|wyse 60 132-column 42-lines,
+wy60-42-w|wyse60-42-w|Wyse 60 132-column 42-lines,
cols#132, lw#7, nlab#16, wsl#97,
- clear=\E+$<260>, cup=\Ea%i%p1%dR%p2%dC$<2>,
- dch1=\EW$<19>, ed=\Ey$<260>, home=\036$<2>, ip=$<6>,
- nel=\r\n$<11>, rs2=\EeF$<150>\E`;$<150>, use=wy60-42,
+ cup=\Ea%i%p1%dR%p2%dC$<2>, dch1=\EW$<19>,
+ home=\036$<2>, ip=$<6>, nel=\r\n$<11>,
+ rs2=\EeF$<150>\E`;$<150>, use=wy60-42,
#
-wy60-43|wyse60-43|wyse 60 80-column 43-lines,
+wy60-43|wyse60-43|Wyse 60 80-column 43-lines,
lh@, lines#43, lw@, nlab@,
pln@, rs3=\Ee+$<150>, use=wy60-42,
-wy60-43-w|wyse60-43-w|wyse 60 132-column 43-lines,
+wy60-43-w|wyse60-43-w|Wyse 60 132-column 43-lines,
lh@, lines#43, lw@, nlab@,
pln@, rs3=\Ee+$<150>, use=wy60-42-w,
#
@@ -11979,22 +12594,21 @@ wy60-w-vb|wy60-wvb|wyse60-wvb|Wyse 60 132-column visible bell,
wy99gt|wyse99gt|Wyse 99gt,
msgr@,
clear=\E+$<130>, dch1=\EW$<7>, dl1=\ER$<4>, ed=\Ey$<130>,
- el=\Et$<5>, flash=\E`8$<100/>\E`9, ht=\011$<1>,
- il1=\EE$<4>, ind=\n$<4>, ip=$<2>, is3=\Ew0$<20>, nel@,
- ri=\Ej$<3>, rmcup=\Ew0, rs2=\E`\:$<150>, smcup=\Ew1,
+ el=\Et$<5>, ind=\n$<4>, ip=$<2>, is3=\Ew0$<20>, nel@,
+ ri=\Ej$<3>, rmcup=\Ew0, rs2=\E`:$<150>, smcup=\Ew1,
u0=\E~>\E8, u1=\E[42h, use=wy60,
#
-wy99gt-w|wyse99gt-w|wyse 99gt 132-column,
+wy99gt-w|wyse99gt-w|Wyse 99gt 132-column,
cols#132, lw#7, nlab#16, wsl#97,
clear=\E+$<160>, cup=\Ea%i%p1%dR%p2%dC$<2>,
dch1=\EW$<9>, ed=\Ey$<160>, ip=$<4>, rs2=\E`;$<150>,
use=wy99gt,
#
-wy99gt-25|wyse99gt-25|wyse 99gt 80-column 25-lines,
+wy99gt-25|wyse99gt-25|Wyse 99gt 80-column 25-lines,
lh@, lines#25, lw@, nlab@,
- pln@, rs2=\E`\:$<150>, rs3=\EwG\Ee)$<200>, use=wy99gt,
+ pln@, rs3=\EwG\Ee)$<200>, use=wy99gt,
#
-wy99gt-25-w|wyse99gt-25-w|wyse 99gt 132-column 25-lines,
+wy99gt-25-w|wyse99gt-25-w|Wyse 99gt 132-column 25-lines,
lh@, lines#25, lw@, nlab@,
pln@, rs2=\E`;$<150>, use=wy99gt-w,
#
@@ -12008,7 +12622,7 @@ wy99gt-w-vb|wy99gt-wvb|wyse99gt-wvb|Wyse 99gt 132-column visible bell,
# - can't redefine function keys (anyway, key redefinition in ANSI mode
# is too much complex to be described);
# - meta key can't be described (the terminal forgets it when reset);
-# The xon-xoff handshaking can't be disabled while in ansi personality, so
+# The xon-xoff handshaking can't be disabled while in ANSI personality, so
# emacs can't work at speed greater than 9600 baud. No padding is needed at
# this speed.
# dch1 has been commented out because it causes annoying glittering when
@@ -12018,21 +12632,19 @@ wy99gt-w-vb|wy99gt-wvb|wyse99gt-wvb|Wyse 99gt 132-column visible bell,
# thing is that vi goes crazy if smir-rmir are present and both dch-dch1 are
# not, so smir and rmir are commented out as well.
# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998
-wy99-ansi|Wyse WY-99GT in ansi mode (int'l PC keyboard),
- am, km, mc5i, mir, msgr, xenl,
+wy99-ansi|Wyse WY-99GT in ANSI mode (int'l PC keyboard),
+ am, km, mir, msgr, xenl,
cols#80, it#8, lines#25, vt#3,
acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
- clear=\E[H\E[J$<200>, cnorm=\E[34h\E[?25h, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD$<1>,
+ bel=^G, cbt=\E[Z, civis=\E[?25l, clear=\E[H\E[J$<200>,
+ cnorm=\E[34h\E[?25h, cr=\r, cub=\E[%p1%dD$<1>,
cub1=\010$<1>, cud=\E[%p1%dB, cud1=\ED,
cuf=\E[%p1%dC$<1>, cuf1=\E[C$<1>,
cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EM,
- cvvis=\E[34l\E[?25h, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M,
- ech=\E[%p1%dX, ed=\E[J$<8*>, el=\E[K$<1>, el1=\E[1K$<1>,
- enacs=\E)0, flash=\E[?5h$<30/>\E[?5l, home=\E[H,
- hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@, il=\E[%p1%dL,
- il1=\E[L, ind=\n$<1>, invis=\E[8m,
+ cvvis=\E[34l\E[?25h, dim=\E[2m, ech=\E[%p1%dX,
+ ed=\E[J$<8*>, el=\E[K$<1>, el1=\E[1K$<1>, enacs=\E)0,
+ flash=\E[?5h$<30/>\E[?5l, home=\E[H, hpa=\E[%i%p1%dG,
+ ht=^I, ich=\E[%p1%d@, ind=\n$<1>,
is2=\E7\E[1r\E8\E[2;3;4;13;20;34;39;36l\E[12;16;34h\E[?1;3;4
;5;10;18l\E[?7;8;25h\E>\E[?5W\E(B\017\E[4i,
kbs=^H, kcbt=\E[z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
@@ -12041,21 +12653,20 @@ wy99-ansi|Wyse WY-99GT in ansi mode (int'l PC keyboard),
kf20=\E[33~, kf21=\E[34~, kf22=\E[35~, kf23=\E[1~,
kf24=\E[2~, kf3=\EOR, kf4=\EOS, kf5=\E[M, kf6=\E[17~,
kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, ll=\E[24E, mc0=\E[?19h,
- mc4=\E[4i, mc5=\E[5i, nel=\EE, prot=\E[1"q, rc=\E8,
- rev=\E[7m, ri=\EM, rmacs=^O, rmam=\E[?7l, rmir=\E[4l,
- rmkx=\E[?1l, rmso=\E[27m, rmul=\E[24m,
+ nel=\EE, prot=\E[1"q, ri=\EM, rmacs=^O, rmam=\E[?7l,
+ rmir=\E[4l, rmkx=\E[?1l, rmso=\E[27m, rmul=\E[24m,
rs2=\E[61"p\E[40h\E[?6l\E[1r\E[2;3;4;13;20;34;39;36l\E[12;16
;34h\E[?1;3;4;5;10;18l\E[?7;8;25h\E>\E[?5W\E(B\017\E[24E
\E[4i,
- sc=\E7,
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%O%t;7%;%?%p4%t;5%;%?
%p5%t;2%;%?%p7%t;8%;m\E[%?%p8%t1%;"q%?%p9%t\016%e\017%;,
sgr0=\E[m\017\E["q, smacs=^N, smam=\E[?7h, smir=\E[4h,
- smkx=\E[?1h, smso=\E[7m, smul=\E[4m, vpa=\E[%i%p1%dd,
+ smkx=\E[?1h, vpa=\E[%i%p1%dd, use=ansi+csr, use=ansi+idl,
+ use=ansi+pp, use=ansi+sgrbold,
# This is the american terminal. Here tabs work fine.
# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998
-wy99a-ansi|Wyse WY-99GT in ansi mode (US PC keyboard),
+wy99a-ansi|Wyse WY-99GT in ANSI mode (US PC keyboard),
hts=\EH, is3=\E[?5l, rs3=\E[?5l, tbc=\E[3g, use=wy99-ansi,
# This terminal (firmware version 02) has a lot of bugs:
@@ -12068,19 +12679,19 @@ wy99a-ansi|Wyse WY-99GT in ansi mode (US PC keyboard),
# DTR handshaking, you can use even greater speeds.
# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998
wy99f|wy99fgt|wy-99fgt|Wyse WY-99GT (int'l PC keyboard),
- am, bw, hs, km, mc5i, mir, msgr, xon,
- cols#80, it#8, lines#25, wsl#46,
+ am, bw, km, mc5i, mir, msgr, xon,
+ cols#80, it#8, lines#25,
acsc='x+y.w_vi~j(k'l&m%n)o9q*s8t-u.v\,w+x=, bel=^G,
blink=\EG2, cbt=\EI, civis=\E`0, clear=\E'\E(\032,
cnorm=\E`4\E`1, cr=\r, cub1=^H, cud1=\Ej, cuf1=^L,
cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
- cvvis=\E`2\E`1, dch1=\EW, dim=\EGp, dl1=\ER, dsl=\EF\r,
- ed=\EY$<8*>, el=\ET$<8>, enacs=\Ec@1J$<2000>,
- flash=\E\^1$<30/>\E\^0, fsl=\r, home=^^, ht=^I, il1=\EE,
- ind=\n, invis=\EG3,
+ cvvis=\E`2\E`1, dch1=\EW, dim=\EGp, dl1=\ER, ed=\EY$<8*>,
+ el=\ET$<8>, enacs=\Ec@1J$<2000>,
+ flash=\E\^1$<30/>\E\^0, home=^^, ht=^I, il1=\EE, ind=\n,
+ invis=\EG3,
is2=\Eu\Ee6\EC\EDF\Ec21\Ec31\Ec62\Ec72\Ee;\016\E'\EeL\E`9\E
- \^0\E`1\E`4\Ee.\E`\:\Ee1\EG0\E(\Ed/\Ee4\Ed*\EO\E`I\Er
- \Ee"\EcD\024,
+ \^0\E`1\E`4\Ee.\E`:\Ee1\EG0\E(\Ed/\Ee4\Ed*\EO\E`I\Er\Ee"
+ \EcD\024,
ka1=^^, ka3=\EJ, kbs=^H, kc1=\ET, kc3=\EK, kcbt=\EI, kcub1=^H,
kcud1=\n, kcuf1=^L, kcuu1=^K, kf1=^A@\r, kf10=^AI\r,
kf11=^AJ\r, kf12=^AK\r, kf13=^A`\r, kf14=^Aa\r, kf15=^Ab\r,
@@ -12091,13 +12702,13 @@ wy99f|wy99fgt|wy-99fgt|Wyse WY-99GT (int'l PC keyboard),
nel=^_, prot=\E), rev=\EG4, ri=\Ej, rmacs=\EcD, rmam=\Ed.,
rmcup=\Ec21\Ec31, rmir=\Er, rmso=\EG0, rmxon=\Ec20\Ec30,
rs2=\Eu\E~4\Ee6\EC\EDF\Ec21\Ec31\Ec62\Ec72\Ee;\016\E'\EeL\E`
- 9\E\^0\E`1\E`4\Ee.\E`\:\Ee)\Ew\EwG\Ew0\Ee1\EG0\E(\Ed/
+ 9\E\^0\E`1\E`4\Ee.\E`:\Ee)\Ew\EwG\Ew0\Ee1\EG0\E(\Ed/
\Ee4\Ed*\EO\E`I\Er\Ee"\Ec@0B\EcD\024,
sgr=\E(\EG%{48}%?%p1%p3%O%t%{4}%+%;%?%p2%t%{8}%+%;%?%p4%t
%{2}%+%;%?%p5%t%{64}%+%;%?%p7%t%{1}%+%;%c%?%p8%t\E)%;%?
%p9%t\EcE%e\EcD%;,
sgr0=\E(\EG0, smacs=\EcE, smam=\Ed/, smcup=\Ec20\Ec30,
- smir=\Eq, smso=\EG4, smxon=\Ec21\Ec31, tsl=\EF,
+ smir=\Eq, smso=\EG4, smxon=\Ec21\Ec31, use=wyse+sl,
# This is the american terminal. Here tabs work.
# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998
@@ -12126,15 +12737,15 @@ wy99fa|wy99fgta|wy-99fgta|Wyse WY-99GT (US PC keyboard),
# (wy160: we use \E{ rather than ^^ for home (both are documented) to avoid
# a bug reported by Robert Dunn, <rcdii@inlink.com> -- esr)
wy160|wyse160|Wyse 160,
- am, bw, hs, km, mc5i, mir, msgr,
+ am, bw, km, mc5i, mir, msgr,
cols#80, lh#1, lines#24, lw#8, nlab#8, wsl#38,
acsc=+/\,.0[a2fxgqh1ihjYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<30>,
cnorm=\E`1, cr=\r, cub1=^H, cud1=\n, cuf1=^L,
cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW$<5>,
- dclk=\E`b, dim=\EGp, dl1=\ER$<1>, dsl=\EF\r, ed=\EY$<30>,
- el=\ET$<5>, flash=\E`8$<100/>\E`9, fsl=\r, home=\E{, ht=^I,
- hts=\E1, il1=\EE$<1>, ind=\n$<1>, ip=$<2>, is1=\EcB0\EcC1,
+ dclk=\E`b, dim=\EGp, dl1=\ER$<1>, ed=\EY$<30>, el=\ET$<5>,
+ flash=\E`8$<100/>\E`9, home=\E{, ht=^I, hts=\E1,
+ il1=\EE$<1>, ind=\n$<1>, ip=$<2>, is1=\EcB0\EcC1,
is2=\Ed$\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016
\024\El,
is3=\Ew0$<100>, kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=^H,
@@ -12150,40 +12761,40 @@ wy160|wyse160|Wyse 160,
pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E), ri=\Ej$<1>,
rmacs=\EcD, rmam=\Ed., rmclk=\E`c, rmcup=\Ew0, rmir=\Er,
rmln=\EA11, rmxon=\Ec20, rs1=\E~!\E~4$<70>,
- rs2=\E`\:$<100>, rs3=\EwG\Ee($<140>,
+ rs2=\E`:$<100>, rs3=\EwG\Ee($<140>,
sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EcE%e\EcD%;\EG%{48}%?%p2%t%{8}
%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t
%{64}%|%;%?%p7%t%{1}%|%;%c,
sgr0=\E(\EH\003\EG0\EcD, smacs=\EcE, smam=\Ed/,
smcup=\Ew1, smir=\Eq, smln=\EA10, smso=\EGt, smxon=\Ec21,
- tbc=\E0, tsl=\EF, use=adm+sgr,
+ tbc=\E0, use=adm+sgr, use=wyse+sl,
#
-wy160-w|wyse160-w|wyse 160 132-column,
+wy160-w|wyse160-w|Wyse 160 132-column,
cols#132, lw#7, nlab#16, wsl#90,
cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<9>,
rs2=\EeF$<150>\E`;$<150>, use=wy160,
#
-wy160-25|wyse160-25|wyse 160 80-column 25-lines,
+wy160-25|wyse160-25|Wyse 160 80-column 25-lines,
lh@, lines#25, lw@, nlab@,
pln@, rs3=\EwG\Ee)$<200>, use=wy160,
-wy160-25-w|wyse160-25-w|wyse 160 132-column 25-lines,
+wy160-25-w|wyse160-25-w|Wyse 160 132-column 25-lines,
lh@, lines#25, lw@, nlab@,
pln@, rs3=\EwG\Ee)$<200>, use=wy160-w,
#
-wy160-42|wyse160-42|wyse 160 80-column 42-lines,
+wy160-42|wyse160-42|Wyse 160 80-column 42-lines,
lines#42,
clear=\E+$<50>, dl1=\ER$<2>, ed=\Ey$<50>, il1=\EE$<2>,
ind=\n$<2>, is1=\EcB2\EcC3, nel=\r\n$<2>, ri=\Ej$<2>,
rs3=\Ee*$<150>, use=wy160,
-wy160-42-w|wyse160-42-w|wyse 160 132-column 42-lines,
+wy160-42-w|wyse160-42-w|Wyse 160 132-column 42-lines,
cols#132, lw#7, nlab#16, wsl#90,
cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<8>, ip=$<3>,
rs2=\EeF$<150>\E`;$<150>, use=wy160-42,
#
-wy160-43|wyse160-43|wyse 160 80-column 43-lines,
+wy160-43|wyse160-43|Wyse 160 80-column 43-lines,
lh@, lines#43, lw@, nlab@,
pln@, rs3=\Ee+$<150>, use=wy160-42,
-wy160-43-w|wyse160-43-w|wyse 160 132-column 43-lines,
+wy160-43-w|wyse160-43-w|Wyse 160 132-column 43-lines,
lh@, lines#43, lw@, nlab@,
pln@, rs3=\Ee+$<150>, use=wy160-42-w,
#
@@ -12192,7 +12803,7 @@ wy160-vb|wyse160-vb|Wyse 160 visible bell,
wy160-w-vb|wy160-wvb|wyse160-wvb|Wyse 160 132-column visible bell,
bel@, use=wy160-w,
#
-# The Wyse 75 is a vt100 lookalike without advanced video.
+# The Wyse 75 is a VT100 lookalike without advanced video.
#
# The Wyse 75 can support one attribute (e.g. Dim, Inverse,
# Underline) without magic cookies. The following description
@@ -12203,47 +12814,44 @@ wy160-w-vb|wy160-wvb|wyse160-wvb|Wyse 160 132-column visible bell,
# cookies. The wy75-mc terminal description uses magic cookies
# to correctly handle multiple attributes on a screen.
#
-wy75|wyse75|wyse 75,
- am, hs, mc5i, mir, msgr, xenl, xon,
+wy75|wyse75|Wyse 75,
+ am, hs, mir, msgr, xenl, xon,
cols#80, lines#24, ma#1, pb#1201, wsl#78,
acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, cbt=\E[Z, clear=\E[H\E[J$<30>, cr=\r,
- csr=\E[%i%p1%d;%p2%dr$<2>, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP$<3*>, dch1=\E[P$<3>, dim=\E[0t\E[2m,
- dl=\E[%p1%dM$<1*>, dl1=\E[M,
- dsl=\E[>\,\001\001\E[>-\001\001, ech=\E[%p1%dX,
- ed=\E[J$<30>, el=\E[K$<3>, el1=\E[1K$<3>, enacs=\E)0,
- flash=\E[30h\E\,$<250/>\E[30l, fsl=^A, home=\E[H,
- hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@$<1*>,
+ bel=^G, clear=\E[H\E[J$<30>, cr=\r,
+ csr=\E[%i%p1%d;%p2%dr$<2>, cub1=^H, cud1=\n,
+ cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP$<3*>,
+ dch1=\E[P$<3>, dim=\E[0t\E[2m, dl=\E[%p1%dM$<1*>,
+ dl1=\E[M, dsl=\E[>\,\001\001\E[>-\001\001,
+ ech=\E[%p1%dX, ed=\E[J$<30>, el=\E[K$<3>, el1=\E[1K$<3>,
+ enacs=\E)0, flash=\E[30h\E\,$<250/>\E[30l, fsl=^A,
+ home=\E[H, hpa=\E[%i%p1%dG, ich=\E[%p1%d@$<1*>,
il=\E[%p1%dL$<2*>, il1=\E[L$<2>, ind=\n$<2>, ip=$<1>,
is1=\E[2;4;20;30l\E[?1;10l\E[12h\E[?7;8;25h,
- is2=\E>\E(B\E)0\017, is3=\E[m, kbs=^H, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdl1=\E[M, kel=\E[K,
+ is2=\E>\E(B\E)0\017, is3=\E[m, kdl1=\E[M, kel=\E[K,
kf1=\E[?5i, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\E[?3i,
kf20=\E[34~, kf21=\E[35~, kf3=\E[2i, kf4=\E[@, kf5=\E[M,
kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~,
- khlp=\E[28~, khome=\E[H, kich1=\E[@, kil1=\E[L, knp=\E[6~,
- kpp=\E[5~, kprt=\E[?5i, kslt=\E[4~, mc0=\E[0i, mc4=\E[4i,
- mc5=\E[5i, rc=\E8, rev=\E[1t\E[7m, ri=\EM$<2>, rmacs=^O,
- rmam=\E[?7l, rmir=\E[4l, rmkx=\E>, rmso=\E[m, rmul=\E[m,
- rs1=\E[13l\E[3l\E!p, rs2=\E[35h\E[?3l$<80>, rs3=\E[?5l,
- sc=\E7,
+ khlp=\E[28~, kich1=\E[@, kil1=\E[L, knp=\E[6~, kpp=\E[5~,
+ kprt=\E[?5i, kslt=\E[4~, mc0=\E[0i, rc=\E8, rev=\E[1t\E[7m,
+ ri=\EM$<2>, rmacs=^O, rmam=\E[?7l, rmir=\E[4l, rmkx=\E>,
+ rmso=\E[m, rmul=\E[m, rs1=\E[13l\E[3l\E!p,
+ rs2=\E[35h\E[?3l$<80>, rs3=\E[?5l, sc=\E7,
sgr=%?%p5%t\E[0t%;%?%p3%p1%|%t\E[1t%;%?%p2%t\E[2t%;%?%p4%t
\E[3t%;%?%p1%p2%p3%p4%p5%|%|%|%|%t\E[7m%e\E[m%;%?%p9%t
\016%e\017%;,
sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
smkx=\E[?1l\E[?7h\E=, smso=\E[1t\E[7m, smul=\E[2t\E[4m,
- tbc=\E[3g, tsl=\E[>\,\001, use=vt220+cvis,
- use=vt220+keypad,
+ tsl=\E[>\,\001, use=ansi+arrows, use=ansi+local,
+ use=ansi+pp, use=ansi+tabs, use=decid+cpr,
+ use=vt220+cvis, use=vt220+keypad,
#
# This terminal description uses the non-hidden attribute mode
# (with magic cookie).
#
-wy75-mc|wyse75-mc|wyse 75 with magic cookies,
+wy75-mc|wyse75-mc|Wyse 75 with magic cookies,
msgr@,
ma@, xmc#1,
blink=\E[2p, dim=\E[1p, invis=\E[4p, is3=\E[m\E[p,
@@ -12253,20 +12861,20 @@ wy75-mc|wyse75-mc|wyse 75 with magic cookies,
%t\016%e\017%;,
sgr0=\E[0p\017, smacs=\E[0p\016, smso=\E[17p, smul=\E[8p,
use=wy75,
-wy75-vb|wyse75-vb|wyse 75 with visible bell,
+wy75-vb|wyse75-vb|Wyse 75 with visible bell,
pb@,
bel@, use=wy75,
-wy75-w|wyse75-w|wyse 75 in 132 column mode,
+wy75-w|wyse75-w|Wyse 75 in 132 column mode,
cols#132, wsl#130,
rs2=\E[35h\E[?3h$<80>, use=wy75,
-wy75-wvb|wyse75-wvb|wyse 75 with visible bell 132 columns,
+wy75-wvb|wyse75-wvb|Wyse 75 with visible bell 132 columns,
pb@,
bel@, use=wy75-w,
#
-# Wyse 85 emulating a vt220 7 bit mode.
+# Wyse 85 emulating a VT220 7 bit mode.
# 24 line screen with status line.
#
-# The vt220 mode permits more function keys but it wipes out
+# The VT220 mode permits more function keys but it wipes out
# the escape key. I strongly recommend that <f11> be set to
# escape (esc).
# The terminal may have to be set for 8 data bits and 2 stop
@@ -12275,51 +12883,46 @@ wy75-wvb|wyse75-wvb|wyse 75 with visible bell 132 columns,
# <dch> and <ich> work best when XON/XOFF is set. <ich> and
# <dch> leave trash on the screen when used without XON/XOFF.
#
-wy85|wyse85|wyse 85,
- am, hs, mc5i, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24, wsl#80,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
- clear=\E[H\E[J$<110>, cr=\r, csr=\E[%i%p1%d;%p2%dr,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\n,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH$<1>,
- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP$<3*>,
+wy85|wyse85|Wyse 85,
+ hs, mir, xenl, xon,
+ wsl#80,
+ clear=\E[H\E[J$<110>, cub1=^H, cud1=\n,
+ cup=\E[%i%p1%d;%p2%dH$<1>, dch=\E[%p1%dP$<3*>,
dch1=\E[P$<3>, dim=\E[2m, dl=\E[%p1%dM$<3*>,
dl1=\E[M$<3>, dsl=\E[40l, ech=\E[%p1%dX, ed=\E[J$<110>,
el=\E[K$<1>, el1=\E[1K, enacs=\E)0,
flash=\E[30h\E\,$<300/>\E[30l, fsl=\E[1;24r\E8,
- home=\E[H, ht=\011$<1>, hts=\EH, ich=\E[%p1%d@$<4*>,
- il=\E[%p1%dL$<5*>, il1=\E[L$<5>, ind=\n$<3>, invis=\E[8m,
- ip=$<3>, is1=\E[62;1"p\E[?5W,
+ ht=\011$<1>, ich=\E[%p1%d@$<4*>, il=\E[%p1%dL$<5*>,
+ il1=\E[L$<5>, ind=\n$<3>, ip=$<3>, is1=\E[62;1"p\E[?5W,
is2=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25h$<16>,
- is3=\E>\E(B\E)0\017\E[m, kbs=^H, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kf10=\E[21~, kf11=\E[23~,
+ is3=\E>\E(B\E)0\017\E[m, kf10=\E[21~, kf11=\E[23~,
kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
kf20=\E[34~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
kf9=\E[20~, khlp=\E[28~, khome=\E[26~, lf1=PF1, lf2=PF2,
- lf3=PF3, lf4=PF4, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, rc=\E8,
- rev=\E[7m, ri=\EM$<3>, rmacs=^O, rmam=\E[?7l, rmir=\E[4l,
- rmkx=\E>, rmso=\E[m, rmul=\E[m, rs1=\E[13l\E[3l\E!p,
- rs2=\E[35h\E[?3l$<70>, rs3=\E[?5l, sc=\E7,
+ lf3=PF3, lf4=PF4, mc0=\E[0i, ri=\EM$<3>, rmam=\E[?7l,
+ rmir=\E[4l, rmkx=\E>, rs1=\E[13l\E[3l\E!p,
+ rs2=\E[35h\E[?3l$<70>, rs3=\E[?5l,
sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?
%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
- smkx=\E[?1l\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
- tsl=\E[40h\E7\E[25;%i%p1%dH, use=vt220+vtedit,
- use=vt220+cvis, use=vt220+keypad,
+ sgr0=\E[m\017, smam=\E[?7h, smir=\E[4h, smkx=\E[?1l\E=,
+ tsl=\E[40h\E7\E[25;%i%p1%dH, use=ansi+arrows,
+ use=ansi+csr, use=ansi+inittabs, use=ansi+local,
+ use=ansi+pp, use=ansi+sgrbold, use=decid+cpr,
+ use=vt100+4bsd, use=vt220+vtedit, use=vt220+cvis,
+ use=vt220+keypad,
#
# Wyse 85 with visual bell.
-wy85-vb|wyse85-vb|wyse 85 with visible bell,
+wy85-vb|wyse85-vb|Wyse 85 with visible bell,
bel@, flash=\E[30h\E\,$<300/>\E[30l, use=wy85,
#
# Wyse 85 in 132-column mode.
-wy85-w|wyse85-w|wyse 85 in 132-column mode,
+wy85-w|wyse85-w|Wyse 85 in 132-column mode,
cols#132, wsl#132,
rs2=\E[35h$<70/>\E[?3h, use=wy85,
#
# Wyse 85 in 132-column mode with visual bell.
-wy85-wvb|wyse85-wvb|wyse 85 with visible bell 132-columns,
+wy85-wvb|wyse85-wvb|Wyse 85 with visible bell 132-columns,
bel@, use=wy85-w,
# From: Kevin Turner <kevint@aracnet.com>, 12 Jul 1998
@@ -12332,44 +12935,38 @@ wy85-wvb|wyse85-wvb|wyse 85 with visible bell 132-columns,
# Technical" isn't responding. So there's the question of whether the wy85
# terminfo should reflect the manufacturer's intended behaviour of the terminal
# or the actual."
-wy85-8bit|wyse85-8bit|wyse 85 in 8-bit mode,
- am, hs, mc5i, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24, wsl#80,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
- clear=\E[H\E[J$<110>, cr=\r, csr=\E[%i%p1%d;%p2%dr,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\n,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH$<1>,
- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP$<3*>,
+wy85-8bit|wyse85-8bit|Wyse 85 in 8-bit mode,
+ hs, mir, xenl, xon,
+ wsl#80,
+ clear=\E[H\E[J$<110>, cub1=^H, cud1=\n,
+ cup=\E[%i%p1%d;%p2%dH$<1>, dch=\E[%p1%dP$<3*>,
dch1=\E[P$<3>, dim=\E[2m, dl=\E[%p1%dM$<3*>,
dl1=\E[M$<3>, dsl=\E[40l, ech=\E[%p1%dX, ed=\E[J$<110>,
el=\E[K$<1>, el1=\E[1K, enacs=\E)0,
flash=\E[30h\E\,$<300/>\E[30l, fsl=\E[1;24r\E8,
- home=\E[H, ht=\011$<1>, hts=\EH, ich=\E[%p1%d@$<4*>,
- il=\E[%p1%dL$<5*>, il1=\E[L$<5>, ind=\n$<3>, invis=\E[8m,
- ip=$<3>, is1=\E[62;1"p\E[?5W,
+ ht=\011$<1>, ich=\E[%p1%d@$<4*>, il=\E[%p1%dL$<5*>,
+ il1=\E[L$<5>, ind=\n$<3>, ip=$<3>, is1=\E[62;1"p\E[?5W,
is2=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25h$<16>,
is3=\E>\E(B\E)0\017\E[m, ka1=\EOw, ka3=\EOy, kb2=\EOu,
- kbs=^H, kc1=\EOq, kc3=\EOs, kcub1=\233D, kcud1=\233B,
- kcuf1=\233C, kcuu1=\233A, kdch1=\2333~, kent=\EOM,
- kf1=\EOP, kf10=\23321~, kf11=\23323~, kf12=\23324~,
- kf13=\23325~, kf14=\23326~, kf15=\23328~, kf16=\23329~,
- kf17=\23331~, kf18=\23332~, kf19=\23333~, kf2=\EOQ,
- kf20=\23334~, kf3=\EOR, kf4=\EOS, kf6=\23317~, kf7=\23318~,
- kf8=\23319~, kf9=\23320~, kfnd=\2331~, khlp=\23328~,
- khome=\23326~, kich1=\2332~, knp=\2336~, kpp=\2335~,
- kslt=\2334~, lf1=PF1, lf2=PF2, lf3=PF3, lf4=PF4, mc0=\E[0i,
- mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m, ri=\EM$<3>,
- rmacs=^O, rmam=\E[?7l, rmir=\E[4l, rmkx=\E>, rmso=\E[m,
- rmul=\E[m, rs1=\E[13l\E[3l\E!p, rs2=\E[35h\E[?3l$<70>,
- rs3=\E[?5l, sc=\E7,
+ kc1=\EOq, kc3=\EOs, kcub1=\233D, kcud1=\233B, kcuf1=\233C,
+ kcuu1=\233A, kdch1=\2333~, kf10=\23321~, kf11=\23323~,
+ kf12=\23324~, kf13=\23325~, kf14=\23326~, kf15=\23328~,
+ kf16=\23329~, kf17=\23331~, kf18=\23332~, kf19=\23333~,
+ kf20=\23334~, kf6=\23317~, kf7=\23318~, kf8=\23319~,
+ kf9=\23320~, kfnd=\2331~, khlp=\23328~, khome=\23326~,
+ kich1=\2332~, knp=\2336~, kpp=\2335~, kslt=\2334~, lf1=PF1,
+ lf2=PF2, lf3=PF3, lf4=PF4, mc0=\E[0i, ri=\EM$<3>,
+ rmam=\E[?7l, rmir=\E[4l, rmkx=\E>, rs1=\E[13l\E[3l\E!p,
+ rs2=\E[35h\E[?3l$<70>, rs3=\E[?5l,
sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?
%p6%t;1%;%?%p7%t;8%;+m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
- smkx=\E[?1l\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
- tsl=\E[40h\E7\E[25;%i%p1%dH, use=vt220+cvis,
+ sgr0=\E[m\017, smam=\E[?7h, smir=\E[4h, smkx=\E[?1l\E=,
+ tsl=\E[40h\E7\E[25;%i%p1%dH, use=ansi+csr,
+ use=ansi+inittabs, use=ansi+local, use=ansi+pp,
+ use=ansi+sgrbold, use=decid+cpr, use=vt100+4bsd,
+ use=vt100+pfkeys, use=vt220+cvis,
#
-# Wyse 185 emulating a vt320 7 bit mode.
+# Wyse 185 emulating a VT320 7 bit mode.
#
# This terminal always displays 25 lines. These lines may be used
# as 24 data lines and a terminal status line (top or bottom) or
@@ -12379,61 +12976,56 @@ wy85-8bit|wyse85-8bit|wyse 85 in 8-bit mode,
# The Compose Character key can be used as a meta key if changed
# by set-up.
#
-wy185|wyse185|wyse 185,
- am, hs, km, mc5i, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24, wsl#80,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
- clear=\E[H\E[J$<40>, cnorm=\E[34h\E[?25h, cr=\r,
- csr=\E[%i%p1%d;%p2%dr$<20>, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+wy185|wyse185|Wyse 185,
+ hs, km, mir, xenl, xon,
+ wsl#80,
+ civis=\E[?25l, clear=\E[H\E[J$<40>,
+ cnorm=\E[34h\E[?25h, csr=\E[%i%p1%d;%p2%dr$<20>,
+ cub1=^H, cud1=\n, cup=\E[%i%p1%d;%p2%dH,
cvvis=\E[?25h\E[34l, dch=\E[%p1%dP$<3>, dch1=\E[P$<3>,
dim=\E[2m, dl=\E[%p1%dM$<2*>, dl1=\E[M$<2>,
dsl=\E7\E[99;0H\E[K\E8, ech=\E[%p1%dX, ed=\E[J$<40>,
el=\E[K, el1=\E[1K, enacs=\E)0,
flash=\E[30h\E\,$<100/>\E[30l, fsl=\E[1;24r\E8,
- home=\E[H, hpa=\E[%i%p1%d`, ht=^I, hts=\EH,
- ich=\E[%p1%d@$<2>, il=\E[%p1%dL$<3*>, il1=\E[L$<3>,
- ind=\n$<2>, invis=\E[8m, ip=$<4>, is1=\E[?5W,
+ hpa=\E[%i%p1%d`, ich=\E[%p1%d@$<2>, il=\E[%p1%dL$<3*>,
+ il1=\E[L$<3>, ind=\n$<2>, ip=$<4>, is1=\E[?5W,
is2=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25h,
- is3=\E>\E(B\E)0\017\E[m, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, kf10=\E[21~,
+ is3=\E>\E(B\E)0\017\E[m, kcbt=\E[Z, kf10=\E[21~,
kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
- kf19=\E[33~, kf2=\EOQ, kf20=\E[34~, kf3=\EOR, kf4=\EOS,
- kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- khlp=\E[28~, khome=\E[26~, lf1=PF1, lf2=PF2, lf3=PF3,
- lf4=PF4, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m,
- ri=\EM$<2>, rmacs=^O, rmam=\E[?7l, rmcup=\E[ R, rmir=\E[4l,
- rmkx=\E>, rmso=\E[27m, rmul=\E[24m,
+ kf19=\E[33~, kf20=\E[34~, kf6=\E[17~, kf7=\E[18~,
+ kf8=\E[19~, kf9=\E[20~, khlp=\E[28~, khome=\E[26~, lf1=PF1,
+ lf2=PF2, lf3=PF3, lf4=PF4, mc0=\E[0i, rc=\E8, ri=\EM$<2>,
+ rmam=\E[?7l, rmcup=\E[ R, rmir=\E[4l, rmkx=\E>,
+ rmso=\E[27m, rmul=\E[24m,
rs1=\E[13l\E[3l\E\\\E[63;1"p\E[!p, rs2=\E[35h\E[?3l,
rs3=\E[?5l\E[47h\E[40l\E[r, sc=\E7,
sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?
%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E[ Q,
- smir=\E[4h, smkx=\E[?1l\E=, smso=\E[7m, smul=\E[4m,
- tbc=\E[3g, tsl=\E7\E[99;%i%p1%dH, vpa=\E[%i%p1%dd,
- use=vt220+vtedit, use=vt220+keypad,
+ sgr0=\E[m\017, smam=\E[?7h, smcup=\E[ Q, smir=\E[4h,
+ smkx=\E[?1l\E=, tsl=\E7\E[99;%i%p1%dH, vpa=\E[%i%p1%dd,
+ use=ansi+arrows, use=ansi+inittabs, use=ansi+local,
+ use=ansi+pp, use=ansi+sgrbold, use=decid+cpr,
+ use=vt100+4bsd, use=vt220+vtedit, use=vt220+keypad,
#
# Wyse 185 with 24 data lines and top status (terminal status)
-wy185-24|wyse185-24|wyse 185 with 24 data lines,
+wy185-24|wyse185-24|Wyse 185 with 24 data lines,
hs@,
dsl@, fsl@, rs3=\E[?5l\E[47h\E[40l\E[1;24r, tsl@,
use=wy185,
#
# Wyse 185 with visual bell.
-wy185-vb|wyse185-vb|wyse 185+flash,
+wy185-vb|wyse185-vb|Wyse 185+flash,
bel@, use=wy185,
#
# Wyse 185 in 132-column mode.
-wy185-w|wyse185-w|wyse 185 in 132-column mode,
+wy185-w|wyse185-w|Wyse 185 in 132-column mode,
cols#132, wsl#132,
dch=\E[%p1%dP$<7>, dch1=\E[P$<7>, ich=\E[%p1%d@$<7>,
ip=$<7>, rs2=\E[35h\E[?3h, use=wy185,
#
# Wyse 185 in 132-column mode with visual bell.
-wy185-wvb|wyse185-wvb|wyse 185+flash+132 cols,
+wy185-wvb|wyse185-wvb|Wyse 185+flash+132 cols,
bel@, use=wy185-w,
# wy325 terminfo entries
@@ -12442,14 +13034,14 @@ wy185-wvb|wyse185-wvb|wyse 185+flash+132 cols,
# lines 25 columns 80
#
wy325|wyse325|Wyse epc,
- am, bw, hs, mc5i, mir,
- cols#80, lh#1, lines#24, lw#8, nlab#8, pb#9601, wsl#45,
+ am, bw, mc5i, mir,
+ cols#80, lh#1, lines#24, lw#8, nlab#8, pb#9601,
acsc=+/\,.0[a2fxgqh1ihjYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<50>,
cnorm=\E`1, cr=\r, cub1=^H, cud1=\n, cuf1=^L,
cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW$<7>,
- dim=\EGp, dl1=\ER$<3>, dsl=\EF\r, ed=\EY$<50>, el=\ET$<4>,
- flash=\E`8$<100/>\E`9, fsl=\r, home=^^, ht=^I, hts=\E1,
+ dim=\EGp, dl1=\ER$<3>, ed=\EY$<50>, el=\ET$<4>,
+ flash=\E`8$<100/>\E`9, home=^^, ht=^I, hts=\E1,
il1=\EE$<3>, ind=\n$<3>, ip=$<2>, is1=\EcB0\EcC1,
is2=\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024
\El,
@@ -12465,79 +13057,79 @@ wy325|wyse325|Wyse epc,
pfx=\EZ1%p1%{63}%+%c%p2%s\177,
pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E), ri=\Ej$<2>,
rmacs=\EcD, rmam=\Ed., rmcup=\Ew0, rmir=\Er, rmln=\EA11,
- rs1=\E~!\E~4$<30>, rs2=\EeF\E`\:$<70>,
+ rs1=\E~!\E~4$<30>, rs2=\EeF\E`:$<70>,
rs3=\EwG\Ee($<100>,
sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EcE%e\EcD%;\EG%{48}%?%p2%t%{8}
%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t
%{64}%|%;%?%p7%t%{1}%|%;%c,
sgr0=\E(\EH\003\EG0\EcD, smacs=\EcE, smam=\Ed/,
smcup=\Ew1, smir=\Eq, smln=\EA10, smso=\EGt, tbc=\E0,
- tsl=\EF, use=adm+sgr,
+ use=adm+sgr, use=wyse+sl,
#
# lines 24 columns 80 vb
#
-wy325-vb|wyse325-vb|wyse-325 with visual bell,
+wy325-vb|wyse325-vb|Wyse-325 with visual bell,
bel@, use=wy325,
#
# lines 24 columns 132
#
-wy325-w|wyse325-w|wy325w-24|wyse-325 in wide mode,
+wy325-w|wyse325-w|wy325w-24|Wyse-325 in wide mode,
cols#132, lw#7, nlab#16, wsl#97,
cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<12>, ip=$<4>,
rs2=\E`;$<70>, use=wy325,
#
# lines 25 columns 80
#
-wy325-25|wyse325-25|wy325-80|wyse-325|wyse-325 25 lines,
+wy325-25|wyse325-25|wy325-80|wyse-325|Wyse-325 25 lines,
lh@, lines#25, lw@, nlab@,
pln@, rs3=\EwG\Ee)$<100>, use=wy325,
#
# lines 25 columns 132
#
-wy325-25w|wyse325-25w|wy325 132 columns,
+wy325-25w|wyse325-25w|Wyse-325 132 columns,
lh@, lines#25, lw@, nlab@,
pln@, rs3=\EwG\Ee)$<100>, use=wy325-w,
#
# lines 25 columns 132 vb
#
-wy325-w-vb|wy325-wvb|wyse325-wvb|wyse-325 wide mode reverse video,
+wy325-w-vb|wy325-wvb|wyse325-wvb|Wyse-325 wide mode reverse video,
bel@, use=wy325-w,
#
# lines 42 columns 80
#
-wy325-42|wyse325-42|wyse-325 42 lines,
+wy325-42|wyse325-42|Wyse-325 42 lines,
lh@, lines#42, lw@, nlab@,
pln@, rs3=\EwG\Ee)$<100>, use=wy325,
#
# lines 42 columns 132
#
-wy325-42w|wyse325-42w|wyse-325 42 lines wide mode,
+wy325-42w|wyse325-42w|Wyse-325 42 lines wide mode,
lh@, lines#42, lw@, nlab@,
pln@, rs3=\EwG\Ee)$<100>, use=wy325-w,
#
# lines 42 columns 132 vb
#
-wy325-42w-vb|wy325-42wvb|wyse-325 42 lines wide mode visual bell,
+wy325-42w-vb|wy325-42wvb|Wyse-325 42 lines wide mode visual bell,
bel@, use=wy325-w,
#
# lines 43 columns 80
#
-wy325-43|wyse325-43|wyse-325 43 lines,
+wy325-43|wyse325-43|Wyse-325 43 lines,
lh@, lines#43, lw@, nlab@,
pln@, use=wy325,
#
# lines 43 columns 132
#
-wy325-43w|wyse325-43w|wyse-325 43 lines wide mode,
+wy325-43w|wyse325-43w|Wyse-325 43 lines wide mode,
lh@, lines#43, lw@, nlab@,
pln@, rs3=\EwG\Ee)$<100>, use=wy325-w,
#
# lines 43 columns 132 vb
#
-wy325-43w-vb|wy325-43wvb|wyse-325 43 lines wide mode visual bell,
+wy325-43w-vb|wy325-43wvb|Wyse-325 43 lines wide mode visual bell,
bel@, use=wy325-w,
# Wyse 370 -- 24 line screen with status line.
@@ -12558,21 +13150,19 @@ wy325-43w-vb|wy325-43wvb|wyse-325 43 lines wide mode visual bell,
# <u5> -> exit Tek 4207 mode (goto native ANSI mode)
#
# Bug: The <op> capability resets attributes.
-wy370-nk|wyse 370 without function keys,
- am, ccc, hs, mc5i, mir, msgr, xenl, xon,
- colors#64, cols#80, it#8, lines#24, ncv#48, pairs#64, wsl#80,
+wy370-nk|Wyse 370 without function keys,
+ am, ccc, hs, mir, msgr, xenl, xon,
+ colors#64, cols#80, lines#24, ncv#48, pairs#64, wsl#80,
acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
- clear=\E[H\E[J$<40>, cnorm=\E[34h\E[?25h, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH$<1>, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[?25h\E[34l, dch=\E[%p1%dP$<1*>, dch1=\E[P$<1>,
- dclk=\E[31h, dim=\E[2m, dl=\E[%p1%dM$<2*>, dl1=\E[M$<2>,
- dsl=\E[40l, ech=\E[%p1%dX$<.1*>, ed=\E[J$<40>,
- el=\E[K$<10>, el1=\E[1K$<12>, enacs=\E)0,
+ bel=^G, civis=\E[?25l, clear=\E[H\E[J$<40>,
+ cnorm=\E[34h\E[?25h, cr=\r, cub1=^H, cud1=\n,
+ cup=\E[%i%p1%d;%p2%dH$<1>, cvvis=\E[?25h\E[34l,
+ dch=\E[%p1%dP$<1*>, dch1=\E[P$<1>, dclk=\E[31h,
+ dim=\E[2m, dl=\E[%p1%dM$<2*>, dl1=\E[M$<2>, dsl=\E[40l,
+ ech=\E[%p1%dX$<.1*>, ed=\E[J$<40>, el=\E[K$<10>,
+ el1=\E[1K$<12>, enacs=\E)0,
flash=\E[30h\E\,$<300/>\E[30l, fsl=\E[1;24r\E8,
- home=\E[H, hpa=\E[%i%p1%d`, ht=\011$<1>, hts=\EH,
+ home=\E[H, hpa=\E[%i%p1%d`, ht=\011$<1>,
ich=\E[%p1%d@$<1*>, il=\E[%p1%dL$<2*>, il1=\E[L$<2>,
ind=\n$<2>,
initc=\E[66;%p1%d;%?%p2%{250}%<%t%{0}%e%p2%{500}%<%t%{16}%e
@@ -12580,57 +13170,56 @@ wy370-nk|wyse 370 without function keys,
%{500}%<%t%{4}%e%p3%{750}%<%t%{8}%e%{12}%;%?%p4%{250}
%<%t%{0}%e%p4%{500}%<%t%{1}%e%p4%{750}%<%t%{2}%e%{3}%;
%{1}%+%+%+%dw,
- invis=\E[8m, ip=$<1>, is1=\E[90;1"p\E[?5W$<6>,
+ ip=$<1>, is1=\E[90;1"p\E[?5W$<6>,
is2=\E[2;4;20;30;40l\E[?1;10;16l\E[12h\E[?7;8;25h,
- is3=\E>\017\E)0\E(B\E[63;0w\E[m, mc0=\E[0i, mc4=\E[4i,
- mc5=\E[5i,
+ is3=\E>\017\E)0\E(B\E[63;0w\E[m, mc0=\E[0i,
oc=\E[60w\E[63;0w\E[66;1;4w\E[66;2;13w\E[66;3;16w\E[66;4;49w
\E[66;5;51w\E[66;6;61w\E[66;7;64w,
- op=\E[m, rc=\E8, rev=\E[7m, ri=\EM$<2>, rmacs=^O,
- rmam=\E[?7l, rmclk=\E[31l, rmcup=\E[ R, rmir=\E[4l,
- rmkx=\E>, rmso=\E[27m, rmul=\E[24m,
- rs1=\E[13l\E[3l\E!p\E[?4i, rs2=\E[35h\E[?3l$<8>,
- rs3=\E[?5l, sc=\E7, setb=\E[62;%p1%dw, setf=\E[61;%p1%dw,
+ op=\E[m, ri=\EM$<2>, rmacs=^O, rmam=\E[?7l, rmclk=\E[31l,
+ rmcup=\E[ R, rmir=\E[4l, rmkx=\E>, rmso=\E[27m,
+ rmul=\E[24m, rs1=\E[13l\E[3l\E!p\E[?4i,
+ rs2=\E[35h\E[?3l$<8>, rs3=\E[?5l, setb=\E[62;%p1%dw,
+ setf=\E[61;%p1%dw,
sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?
%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E[ Q,
- smir=\E[4h, smkx=\E[?1l\E=, smso=\E[7m, smul=\E[4m,
- tbc=\E[3g, tsl=\E[40l\E[40h\E7\E[99;%i%p1%dH,
- u0=\E[?38h\E8, u1=\E[?38l\E)0, u2=\E[92;52"p, u3=\E~B,
- u4=\E[92;76"p, u5=\E%!1\E[90;1"p, vpa=\E[%i%p1%dd,
+ smir=\E[4h, smkx=\E[?1l\E=,
+ tsl=\E[40l\E[40h\E7\E[99;%i%p1%dH, u0=\E[?38h\E8,
+ u1=\E[?38l\E)0, u2=\E[92;52"p, u3=\E~B, u4=\E[92;76"p,
+ u5=\E%!1\E[90;1"p, vpa=\E[%i%p1%dd, use=ansi+csr,
+ use=ansi+inittabs, use=ansi+local, use=ansi+pp,
+ use=ansi+sgrbold, use=decid+cpr,
#
# Function key set for the ASCII (wy-50 compatible) keyboard
# This is the default 370.
#
wy370|wyse370|wy370-101k|Wyse 370 with 101 key keyboard,
- kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kdch1=\EOQ, kdl1=\EOQ, kent=\EOM, kf1=\E[?4i,
+ kcbt=\E[Z, kdch1=\EOQ, kdl1=\EOQ, kent=\EOM, kf1=\E[?4i,
kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf2=\E[?3i,
kf3=\E[2i, kf4=\E[@, kf5=\E[M, kf6=\E[17~, kf7=\E[18~,
- kf8=\E[19~, kf9=\E[20~, khome=\E[H, kich1=\EOP, kil1=\EOP,
- knp=\E[U, kpp=\E[V, use=wy370-nk,
+ kf8=\E[19~, kf9=\E[20~, kich1=\EOP, kil1=\EOP, knp=\E[U,
+ kpp=\E[V, use=ansi+arrows, use=wy370-nk,
#
# Function key set for the VT-320 (and wy85) compatible keyboard
#
wy370-105k|Wyse 370 with 105 key keyboard,
- kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
kf18=\E[32~, kf19=\E[33~, kf20=\E[34~, kf6=\E[17~,
kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~,
khlp=\E[28~, khome=\E[26~, lf1=PF1, lf2=PF2, lf3=PF3,
- lf4=PF4, use=vt220+vtedit, use=wy370-nk,
+ lf4=PF4, use=ansi+arrows, use=vt220+vtedit, use=wy370-nk,
use=vt220+keypad,
#
# Function key set for the PC compatible keyboard
#
wy370-EPC|Wyse 370 with 102 key keyboard,
- kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kend=\E[1~, kent=\EOM, kf1=\EOP, kf10=\E[21~,
+ kcbt=\E[Z, kend=\E[1~, kent=\EOM, kf1=\EOP, kf10=\E[21~,
kf11=\E[23~, kf12=\E[24~, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
kf5=\E[M, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- khome=\E[H, kich1=\E[2~, knp=\E[U, kpp=\E[V, use=wy370-nk,
+ kich1=\E[2~, knp=\E[U, kpp=\E[V, use=ansi+arrows,
+ use=wy370-nk,
#
# Wyse 370 with visual bell.
wy370-vb|Wyse 370 with visible bell,
@@ -12707,7 +13296,7 @@ wy370-tek|Wyse 370 Tektronix 4010/4014 emulator,
# is2 -> do the initialization
# is3 -> If this string is empty then rs3 gets sent.
#
-# Wyse 520 emulating a vt420 7 bit mode with default ANSI keyboard
+# Wyse 520 emulating a VT420 7 bit mode with default ANSI keyboard
# - The BS key is programmed to generate BS in smcup since
# is2 doesn't seem to work.
# - Remove and shift/Remove: delete a character
@@ -12721,63 +13310,60 @@ wy370-tek|Wyse 370 Tektronix 4010/4014 emulator,
# keypad in Dec application mode which doesn't seem to work
# with SCO applications.
#
-wy520|wyse520|wyse 520,
- am, hs, km, mc5i, mir, xenl, xon,
+wy520|wyse520|Wyse 520,
+ am, hs, km, mir, xenl, xon,
cols#80, it#8, lines#24, wsl#80,
acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
- clear=\E[H\E[J$<40>, cnorm=\E[34h\E[?25h, cr=\r,
- csr=\E[%i%p1%d;%p2%dr$<20>, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+ bel=^G, civis=\E[?25l, clear=\E[H\E[J$<40>,
+ cnorm=\E[34h\E[?25h, cr=\r, csr=\E[%i%p1%d;%p2%dr$<20>,
+ cub1=^H, cud1=\n, cup=\E[%i%p1%d;%p2%dH,
cvvis=\E[?25h\E[34l, dch=\E[%p1%dP$<3>, dch1=\E[P$<30>,
dim=\E[2m, dl=\E[%p1%dM$<2*>, dl1=\E[M$<2>, dsl=\E[0$~,
ech=\E[%p1%dX, ed=\E[J$<40>, el=\E[K, el1=\E[1K,
- enacs=\E)0, fsl=\E[0$}, home=\E[H, hpa=\E[%i%p1%d`, ht=^I,
- hts=\EH, ich=\E[%p1%d@$<2>, il=\E[%p1%dL$<3*>,
- il1=\E[L$<3>, ind=\n$<2>, invis=\E[8m, ip=$<4>, is1=\E[?5W,
+ enacs=\E)0, fsl=\E[0$}, home=\E[H, hpa=\E[%i%p1%d`,
+ ich=\E[%p1%d@$<2>, il=\E[%p1%dL$<3*>, il1=\E[L$<3>,
+ ind=\n$<2>, ip=$<4>, is1=\E[?5W,
is2=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25;67h,
- is3=\E>\E(B\E)0\017\E[m, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, ked=\E[1~, kel=\E[4~,
- kent=\EOM, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
- kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
- kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf20=\E[34~,
- kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- khlp=\E[28~, khome=\E[26~, lf1=PF1, lf2=PF2, lf3=PF3,
- lf4=PF4, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m,
+ is3=\E>\E(B\E)0\017\E[m, kcbt=\E[Z, ked=\E[1~, kel=\E[4~,
+ kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
+ kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
+ kf18=\E[32~, kf19=\E[33~, kf20=\E[34~, kf6=\E[17~,
+ kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, khlp=\E[28~,
+ khome=\E[26~, lf1=PF1, lf2=PF2, lf3=PF3, lf4=PF4, mc0=\E[0i,
ri=\EM$<2>, rmacs=^O, rmam=\E[?7l, rmcup=\E[ R, rmir=\E[4l,
- rmso=\E[m, rmul=\E[24m,
- rs1=\E[13l\E[3l\E\\\E[63;1"p\E[!p, rs2=\E[35h\E[?3l,
- rs3=\E[?5l\E[47h\E[40l\E[r, sc=\E7,
+ rmul=\E[24m, rs1=\E[13l\E[3l\E\\\E[63;1"p\E[!p,
+ rs2=\E[35h\E[?3l, rs3=\E[?5l\E[47h\E[40l\E[r,
sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?
%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
sgr0=\E[m\017, smacs=^N, smam=\E[?7h,
- smcup=\E[ Q\E[?67;8h, smir=\E[4h, smso=\E[7m, smul=\E[4m,
- tbc=\E[3g, tsl=\E[2$~\E[1$}\E[%i%p1%d`,
- vpa=\E[%i%p1%dd, use=vt220+vtedit, use=vt220+keypad,
+ smcup=\E[ Q\E[?67;8h, smir=\E[4h,
+ tsl=\E[2$~\E[1$}\E[%i%p1%d`, vpa=\E[%i%p1%dd,
+ use=ansi+arrows, use=ansi+csr, use=ansi+local,
+ use=ansi+pp, use=ansi+sgrbold, use=ansi+tabs,
+ use=decid+cpr, use=vt220+vtedit, use=vt220+keypad,
#
# Wyse 520 with 24 data lines and status (terminal status)
-wy520-24|wyse520-24|wyse 520 with 24 data lines,
+wy520-24|wyse520-24|Wyse 520 with 24 data lines,
hs@,
dsl@, fsl@, rs3=\E[?5l\E[47h\E[40l\E[1;24r, tsl@,
use=wy520,
#
# Wyse 520 with visual bell.
-wy520-vb|wyse520-vb|wyse 520 with visible bell,
+wy520-vb|wyse520-vb|Wyse 520 with visible bell,
flash=\E[30h\E\,$<100/>\E[30l, use=wy520,
#
# Wyse 520 in 132-column mode.
-wy520-w|wyse520-w|wyse 520 in 132-column mode,
+wy520-w|wyse520-w|Wyse 520 in 132-column mode,
cols#132, wsl#132,
dch=\E[%p1%dP$<7>, dch1=\E[P$<7>, ich=\E[%p1%d@$<7>,
ip=$<7>, rs2=\E[35h\E[?3h, use=wy520,
#
# Wyse 520 in 132-column mode with visual bell.
-wy520-wvb|wyse520-wvb|wyse 520 with visible bell 132-columns,
+wy520-wvb|wyse520-wvb|Wyse 520 with visible bell 132-columns,
flash=\E[30h\E\,$<100/>\E[30l, use=wy520-w,
#
#
-# Wyse 520 emulating a vt420 7 bit mode.
+# Wyse 520 emulating a VT420 7 bit mode.
# The DEL key is programmed to generate BS in is2.
# With EPC keyboard.
# - 'End' key will clear till end of line on EPC keyboard
@@ -12786,55 +13372,55 @@ wy520-wvb|wyse520-wvb|wyse 520 with visible bell 132-columns,
# - Delete : delete a character (have to change interrupt character
# to CTRL-C: stty intr '^c') for it to work since the
# Delete key sends 7FH.
-wy520-epc|wyse520-epc|wyse 520 with EPC keyboard,
+wy520-epc|wyse520-epc|Wyse 520 with EPC keyboard,
kdch1=^?, kel=\E[4~, kend=\E[4~, kf0=\E[21~, kf1=\E[11~,
kf2=\E[12~, kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, khome=\E[H,
use=wy520,
#
# Wyse 520 with 24 data lines and status (terminal status)
# with EPC keyboard.
-wy520-epc-24|wyse520-pc-24|wyse 520 with 24 data lines and EPC keyboard,
+wy520-epc-24|wyse520-pc-24|Wyse 520 with 24 data lines and EPC keyboard,
hs@,
dsl@, fsl@, rs3=\E[?5l\E[47h\E[40l\E[1;24r, tsl@,
use=wy520-epc,
#
# Wyse 520 with visual bell.
-wy520-epc-vb|wyse520-pc-vb|wyse 520 with visible bell and EPC keyboard,
+wy520-epc-vb|wyse520-pc-vb|Wyse 520 with visible bell and EPC keyboard,
flash=\E[30h\E\,$<100/>\E[30l, use=wy520-epc,
#
# Wyse 520 in 132-column mode.
-wy520-epc-w|wyse520-epc-w|wyse 520 in 132-column mode with EPC keyboard,
+wy520-epc-w|wyse520-epc-w|Wyse 520 in 132-column mode with EPC keyboard,
cols#132, wsl#132,
dch=\E[%p1%dP$<7>, dch1=\E[P$<7>, ich=\E[%p1%d@$<7>,
ip=$<7>, rs2=\E[35h\E[?3h, use=wy520-epc,
#
# Wyse 520 in 132-column mode with visual bell.
-wy520-epc-wvb|wyse520-p-wvb|wyse 520 with visible bell 132-columns and EPC keyboard,
+wy520-epc-wvb|wyse520-p-wvb|Wyse 520 with visible bell 132-columns and EPC keyboard,
flash=\E[30h\E\,$<100/>\E[30l, use=wy520-epc-w,
#
# Wyse 520 in 80-column, 36 lines
-wy520-36|wyse520-36|wyse 520 with 36 data lines,
+wy520-36|wyse520-36|Wyse 520 with 36 data lines,
hs@,
lines#36,
dsl@, fsl@, rs3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r, tsl@,
use=wy520,
#
# Wyse 520 in 80-column, 48 lines
-wy520-48|wyse520-48|wyse 520 with 48 data lines,
+wy520-48|wyse520-48|Wyse 520 with 48 data lines,
hs@,
lines#48,
dsl@, fsl@, rs3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r, tsl@,
use=wy520,
#
# Wyse 520 in 132-column, 36 lines
-wy520-36w|wyse520-36w|wyse 520 with 132 columns and 36 data lines,
+wy520-36w|wyse520-36w|Wyse 520 with 132 columns and 36 data lines,
cols#132, wsl#132,
rs2=\E[?3h,
rs3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r\E[132$|,
use=wy520-36,
#
# Wyse 520 in 132-column, 48 lines
-wy520-48w|wyse520-48w|wyse 520 with 48 data lines,
+wy520-48w|wyse520-48w|Wyse 520 with 48 data lines (132 column),
cols#132, wsl#132,
rs2=\E[?3h,
rs3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r\E[132$|,
@@ -12842,28 +13428,28 @@ wy520-48w|wyse520-48w|wyse 520 with 48 data lines,
#
#
# Wyse 520 in 80-column, 36 lines with EPC keyboard
-wy520-36pc|wyse520-36pc|wyse 520 with 36 data lines and EPC keyboard,
+wy520-36pc|wyse520-36pc|Wyse 520 with 36 data lines and EPC keyboard,
hs@,
lines#36,
dsl@, fsl@, rs3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r, tsl@,
use=wy520-epc,
#
# Wyse 520 in 80-column, 48 lines with EPC keyboard
-wy520-48pc|wyse520-48pc|wyse 520 with 48 data lines and EPC keyboard,
+wy520-48pc|wyse520-48pc|Wyse 520 with 48 data lines and EPC keyboard,
hs@,
lines#48,
dsl@, fsl@, rs3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r, tsl@,
use=wy520-epc,
#
# Wyse 520 in 132-column, 36 lines with EPC keyboard
-wy520-36wpc|wyse520-36wpc|wyse 520 with 36 data lines and EPC keyboard,
+wy520-36wpc|wyse520-36wpc|Wyse 520 with 36 data lines and EPC keyboard (132 column),
cols#132, wsl#132,
rs2=\E[?3h,
rs3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r\E[132$|,
use=wy520-36pc,
#
# Wyse 520 in 132-column, 48 lines with EPC keyboard
-wy520-48wpc|wyse520-48wpc|wyse 520 with 48 data lines and EPC keyboard,
+wy520-48wpc|wyse520-48wpc|Wyse 520 with 48 data lines and EPC keyboard (132 column),
cols#132, wsl#132,
rs2=\E[?3h,
rs3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r\E[132$|,
@@ -12878,9 +13464,9 @@ wyse-vp|Wyse 50 in ADDS Viewpoint emulation mode with "enhance" on,
bel=^G, clear=^L, cr=\r, cub1=^H, cud1=\n, cuf1=^F,
cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z, dch1=\EW,
dl1=\El, ed=\Ek, el=\EK, home=^A, ht=^I, il1=\EM, ind=\n,
- is2=\E`\:\E`9\017\Er, kbs=^H, kcub1=^U, kcud1=\n, kcuf1=^F,
+ is2=\E`:\E`9\017\Er, kbs=^H, kcub1=^U, kcud1=\n, kcuf1=^F,
kcuu1=^Z, khome=^A, ll=^A^Z, nel=\r\n, rmir=\Er, rmso=^O,
- rmul=^O, rs1=\E`\:\E`9\017\Er, sgr0=^O, smir=\Eq, smso=^N,
+ rmul=^O, rs1=\E`:\E`9\017\Er, sgr0=^O, smir=\Eq, smso=^N,
smul=^N,
wy75ap|wyse75ap|wy-75ap|wyse-75ap|Wyse WY-75 Applications and Cursor keypad,
@@ -12896,7 +13482,7 @@ wy100q|Wyse 100 for Quotron,
cbt=\EI, clear=^Z, cub1=^H, cud1=\n, cuf1=^L,
cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
dl1=\ER, ed=\EY, el=\ET, home=^^, il1=\EE, invis@,
- is2=\E`\:\0\EC\EDF\E0\E'\E(\EA21, kcub1=^H, kcud1=\n,
+ is2=\E`:\0\EC\EDF\E0\E'\E(\EA21, kcub1=^H, kcud1=\n,
kcuf1=^L, kcuu1=^K, ri=\Ej, rmir=\Er, smir=\Eq, use=adm+sgr,
#### Kermit terminal emulations
@@ -12931,21 +13517,20 @@ pckermit|pckermit12|UCB IBMPC Kermit 1.2,
clear=\EH\EJ, ed@, el@,
is2=K2 UCB IBMPC Kermit 1.2 8-30-84\n, use=kermit,
# IBMPC Kermit 1.20
-# Cannot use line 25, now acts funny like ansi special scrolling region.
+# Cannot use line 25, now acts funny like ANSI special scrolling region.
# Initialization must escape from that region by cursor position to line 24.
# Cannot use character insert because 1.20 goes crazy if insert at col 80.
# Does not use :am: because autowrap is lost when kermit dropped and restarted.
# From: greg small <gts@populi.berkeley.edu> 12-19-84
pckermit120|UCB IBMPC Kermit 1.20,
- it#8, lines#24,
- cud1=\EB, cvvis=\EO\Eq\EEK3, dch1=\EN, dl1=\EM, ht=^I,
- il1=\EL,
+ it#8,
+ cvvis=\EO\Eq\EEK3, dch1=\EN, dl1=\EM, ht=^I, il1=\EL,
is2=\EO\Eq\EJ\EY7\sK3\sUCB\sIBMPC\sKermit\s1.20\s\s12-19-84
\n,
rmir@, rmso=\Eq, smir@, smso=\Ep, use=kermit,
# MS-DOS Kermit 2.27 for the IBMPC
# Straight ascii keyboard. :sr=\EI: not avail. many versions + bug prone in vi.
-# Cannot use line 25, now acts funny like ansi special scrolling region.
+# Cannot use line 25, now acts funny like ANSI special scrolling region.
# Initialization must escape from that region by cursor position to line 24.
# Does not use am: because autowrap is lost when kermit dropped and restarted.
# Reverse video for standout like H19.
@@ -12987,60 +13572,55 @@ msk22714|mskermit22714|UCB MS-DOS Kermit 2.27 UCB 227.14 IBM PC,
# at support for the VT320 itself.
# Please send changes with explanations to bug-gnu-emacs@prep.ai.mit.edu.
# (vt320-k3: I added <rmam>/<smam> based on the init string -- esr)
-vt320-k3|MS-Kermit 3.00's vt320 emulation,
- am, eslok, hs, km, mir, msgr, xenl,
+vt320-k3|MS-Kermit 3.00's VT320 emulation,
+ am, km, mir, msgr, xenl,
cols#80, it#8, lines#49, pb#9600, vt#3,
acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cmdch=\E,
- cr=\r, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- dsl=\E[0$~, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
+ bel=^G, blink=\E[5m, bold=\E[1m, cmdch=\E, cr=\r, cub1=^H,
+ cud1=\n, cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\E[P,
+ ech=\E[%p1%dX,
flash=\E[?5h$<100/>\E[?5l\E[?5h$<100/>\E[?5l\E[?5h$<100/>\E[
?5l,
- fsl=\E[0$}, home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH,
- ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\n,
- is2=\E>\E F\E[?1h\E[?7h\E[r\E[2$~, kbs=^H, kcub1=\EOD,
- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kdl1=\E[3~, kf0=\E[21~,
- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf6=\E[17~,
- kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kich1=\E[2~, knp=\E[6~,
- kpp=\E[5~, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, nel=\r\n, rc=\E8,
- rev=\E[7m, ri=\EM, rin=\E[%p1%dL, rmacs=\E(B, rmam=\E[?7l,
- rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m,
+ home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
+ ind=\n, is2=\E>\E F\E[?1h\E[?7h\E[r\E[2$~, kbs=^H,
+ kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kdl1=\E[3~,
+ kf0=\E[21~, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
+ kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+ kich1=\E[2~, knp=\E[6~, kpp=\E[5~, mc0=\E[0i, mc4=\E[4i,
+ mc5=\E[5i, nel=\r\n, rev=\E[7m, ri=\EM, rin=\E[%p1%dL,
+ rmacs=\E(B, rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>,
+ rmso=\E[27m, rmul=\E[24m,
rs1=\E(B\E)B\E>\E\sF\E[4;20l\E[12h\E[?1;5;6;38;42l\E[?7;25h
\E[4i\E[?4i\E[m\E[r\E[2$~,
- sc=\E7, sgr0=\E[m, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
+ sgr0=\E[m, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
- tsl=\E[1$}\r\E[K, vpa=\E[%i%p1%dd, use=vt220+cvis,
+ tsl=\E[1$}\r\E[K, vpa=\E[%i%p1%dd, use=ansi+csr,
+ use=ansi+erase, use=ansi+idl, use=ansi+local, use=dec+sl,
+ use=vt220+cvis,
# From: Joseph Gil <yogi@cs.ubc.ca> 13 Dec 1991
# ACS capabilities from Philippe De Muyter <phdm@info.ucl.ac.be> 30 May 1996
# (I removed a bogus boolean :mo: and added <msgr>, <smam>, <rmam> -- esr)
-vt320-k311|dec vt320 series as defined by kermit 3.11,
+vt320-k311|DEC VT320 series as defined by kermit 3.11,
am, eslok, hs, mir, msgr, xenl, xon,
cols#80, it#8, lines#24, vt#3,
acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[;H\E[2J, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- dsl=\E[2$~\r\E[1$}\E[K\E[$}, ed=\E[J, el=\E[K,
+ cub1=^H, cud1=\n, cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP,
+ dch1=\E[P, dsl=\E[2$~\r\E[1$}\E[K\E[$}, ed=\E[J, el=\E[K,
flash=\E[?5h$<100/>\E[?5l, fsl=\E[$}, home=\E[H, ht=^I,
- hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L$<3/>,
- ind=\ED,
+ hts=\EH, ich=\E[%p1%d@, il1=\E[L$<3/>, ind=\ED,
is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf6=\E[17~,
kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, lf1=pf1, lf2=pf2,
- lf3=pf3, lf4=pf4, nel=\r\ED, rc=\E8, rev=\E[7m,
+ lf3=pf3, lf4=pf4, nel=\r\ED, rev=\E[7m,
rf=/usr/share/tabset/vt100, ri=\EM, rmacs=^O,
rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m,
- rmul=\E[24m, rs1=\E[?3l, sc=\E7, sgr0=\E[m, smacs=^N,
- smam=\E[?7h, smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g, tsl=\E[2$~\E[1$}\E[1;%dH,
- use=vt220+cvis,
+ rmul=\E[24m, rs1=\E[?3l, sgr0=\E[m, smacs=^N, smam=\E[?7h,
+ smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
+ tbc=\E[3g, tsl=\E[2$~\E[1$}\E[1;%dH, use=ansi+csr,
+ use=ansi+idl, use=ansi+local, use=vt220+cvis,
######## NON-ANSI TERMINAL EMULATIONS
#
@@ -13135,27 +13715,28 @@ rbcomm|IBM PC with RBcomm and EMACS keybindings,
am, bw, mir, msgr, xenl,
cols#80, it#8, lines#25,
bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=^L, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^C, cuf1=^B,
+ cub1=^H, cud1=^C, cuf1=^B,
cup=\037%p2%{32}%+%c%p1%{32}%+%c, cuu1=^^, dch1=^W,
dl=\E[%p1%dM, dl1=^Z, ech=\E[%p1%dX, ed=^F5, el=^P^P, ht=^I,
il=\E[%p1%dL, il1=^K, ind=\ED, invis=\E[8m,
is2=\017\035\E(B\E)0\E[?7h\E[?3l\E[>8g, kbs=^H,
kcub1=^B, kcud1=^N, kcuf1=^F, kcuu1=^P, khome=^A, nel=\r\ED,
- rc=\E8, rep=\030%p1%c%p2%c, rev=^R, ri=\EM, rmcup=, rmdc=,
- rmir=^], rmkx=\E>, rmso=^U, rmul=^U,
- rs1=\017\E(B\E)0\025\E[?3l\E[>8g, sc=\E7, sgr0=\E[m,
- smcup=, smdc=, smir=^\, smkx=\E=, smso=^R, smul=^T,
+ rep=\030%p1%c%p2%c, rev=^R, ri=\EM, rmcup=, rmdc=, rmir=^],
+ rmkx=\E>, rmso=^U, rmul=^U,
+ rs1=\017\E(B\E)0\025\E[?3l\E[>8g, sgr0=\E[m, smcup=,
+ smdc=, smir=^\, smkx=\E=, smso=^R, smul=^T, use=ansi+csr,
use=vt220+cvis,
+
rbcomm-nam|IBM PC with RBcomm without autowrap,
am@,
- bel=^G, cr=\r, cud1=\n, ht=^I, ind=\n,
- is2=\017\035\E(B\E)0\E[?7l\E[?3l\E[>8g, kbs=^H,
- kcub1=^H, kcud1=\n, nel=\r\n, use=rbcomm,
+ cud1=\n, ind=\n,
+ is2=\017\035\E(B\E)0\E[?7l\E[?3l\E[>8g, kcub1=^H,
+ kcud1=\n, nel=\r\n, use=rbcomm,
rbcomm-w|IBM PC with RBcomm in 132 column mode,
cols#132,
- bel=^G, cr=\r, cud1=\n, ht=^I, ind=\n,
- is2=\017\035\E(B\E)0\E[?7h\E[?3h\E[>8g, kbs=^H,
- kcub1=^H, kcud1=\n, nel=\r\n, use=rbcomm,
+ cud1=\n, ind=\n,
+ is2=\017\035\E(B\E)0\E[?7h\E[?3h\E[>8g, kcub1=^H,
+ kcud1=\n, nel=\r\n, use=rbcomm,
######## LCD DISPLAYS
#
@@ -13184,7 +13765,7 @@ rbcomm-w|IBM PC with RBcomm in 132 column mode,
# NOTE: calling 'beep' turns on the backlight (bell)
# NOTE: calling 'flash' turns it on and back off (visual bell)
#
-MtxOrb|Generic Matrix Orbital LCD display,
+MtxOrb|generic Matrix Orbital LCD display,
bel=\376B\001, clear=\376X\376C\376R\376K\376T,
cnorm=\376K\376T, cub1=\376L, cuf1=\376M,
flash=\376B\001$<200>\376F, home=\376H,
@@ -13214,25 +13795,23 @@ MtxOrb162|16x2 Matrix Orbital LCD display,
att2300|sv80|AT&T 2300 Video Information Terminal 80 column mode,
am, eo, mir, msgr, xon,
cols#80, it#8, lines#24,
- bel=^G, clear=\E[H\E[J, cr=\r, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
- el=\E[K, el1=\E[1K, home=\E[H, ht=^I, ich=\E[%p1%d@,
- il=\E[%p1%dL, il1=\E[L, ind=\n, kbs=^H, kcbt=\E[Z, kclr=\E[J,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P,
+ bel=^G, cr=\r, cub1=^H, cud1=\n, cup=\E[%i%p1%d;%p2%dH,
+ dch=\E[%p1%dP, dch1=\E[P, el1=\E[1K, home=\E[H, ht=^I,
+ ich=\E[%p1%d@, ind=\n, kcbt=\E[Z, kclr=\E[J, kdch1=\E[P,
kdl1=\E[M, kf1=\E[1r, kf10=\E[10r, kf11=\E[11r,
kf12=\E[12r, kf13=\E[13r, kf14=\E[14r, kf15=\E[15r,
kf16=\E[16r, kf2=\E[2r, kf3=\E[3r, kf4=\E[4r, kf5=\E[5r,
- kf6=\E[6r, kf7=\E[7r, kf8=\E[8r, kf9=\E[9r, khome=\E[H,
- kich1=\E[@, kil1=\E[L, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i,
- rev=\E[7m, rmir=\E[4l, rmso=\E[m, sgr0=\E[m, smir=\E[4h,
- smso=\E[7m,
+ kf6=\E[6r, kf7=\E[7r, kf8=\E[8r, kf9=\E[9r, kich1=\E[@,
+ kil1=\E[L, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, rev=\E[7m,
+ rmir=\E[4l, rmso=\E[m, sgr0=\E[m, smir=\E[4h, smso=\E[7m,
+ use=ansi+arrows, use=ansi+cpr, use=ansi+erase,
+ use=ansi+idl, use=ansi+local,
+
att2350|AT&T 2350 Video Information Terminal 80 column mode,
mc0@, mc4@, mc5@, use=att2300,
# Must setup RETURN KEY - CR, REC'VD LF - INDEX.
-# Seems upward compatible with vt100, plus ins/del line/char.
+# Seems upward compatible with VT100, plus ins/del line/char.
# On sgr, the protection parameter is ignored.
# No check is made to make sure that only 3 parameters are output.
# standout= reverse + half-intensity = 3 | 5.
@@ -13247,11 +13826,10 @@ att5410v1|att4410v1|tty5410v1|AT&T 4410/5410 80 columns - version 1,
cols#80, it#8, lh#2, lines#24, lw#8, nlab#8, wsl#80,
acsc=++\,\,--..00``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyz
z{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[2;7m, clear=\E[H\E[J, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\E[B, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dim=\E[2m,
- dl1=\E[M, ed=\E[J, el=\E[K, fsl=\E8, home=\E[H, ht=^I,
- ich1=\E[@, il1=\E[L, ind=\n, invis=\E[8m, is1=\E[?3l\E)0,
+ bel=^G, bold=\E[2;7m, cr=\r, cub1=^H, cuf1=\E[C,
+ cup=\E[%i%p1%d;%p2%dH, dch1=\E[P, dim=\E[2m, dl1=\E[M,
+ fsl=\E8, home=\E[H, ht=^I, ich1=\E[@, il1=\E[L, ind=\n,
+ is1=\E[?3l\E)0,
is3=\E[1;03q\s\s\sf1\s\s\s\s\s\s\s\s\s\s\s\EOP\E[2;03q\s\s
\sf2\s\s\s\s\s\s\s\s\s\s\s\EOQ\E[3;03q\s\s\sf3\s\s\s\s
\s\s\s\s\s\s\s\EOR\E[4;03q\s\s\sf4\s\s\s\s\s\s\s\s\s\s
@@ -13259,19 +13837,18 @@ att5410v1|att4410v1|tty5410v1|AT&T 4410/5410 80 columns - version 1,
\s\s\sf6\s\s\s\s\s\s\s\s\s\s\s\EOU\E[7;03q\s\s\sf7\s\s
\s\s\s\s\s\s\s\s\s\EOV\E[8;03q\s\s\sf8\s\s\s\s\s\s\s\s
\s\s\s\EOW,
- kbs=^H, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT,
- kf6=\EOU, kf7=\EOV, kf8=\EOW, khome=\E[H, kll=\E[24;1H,
- ll=\E[24H, nel=\r\n,
+ kclr=\E[2J, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT,
+ kf6=\EOU, kf7=\EOV, kf8=\EOW, kll=\E[24;1H, ll=\E[24H,
+ nel=\r\n,
pfx=\E[%p1%1d;%p2%l%2.2dq\s\s\sf%p1%1d\s\s\s\s\s\s\s\s\s\s
\s%p2%s,
- pln=\E[%p1%d;00q%p2%:-16s, rc=\E8, rev=\E[7m, ri=\EM,
- rmacs=^O, rmso=\E[m, rmul=\E[m, rs2=\Ec\E[?3l\E[2;0y,
- sc=\E7,
+ pln=\E[%p1%d;00q%p2%:-16s, ri=\EM, rmacs=^O,
+ rs2=\Ec\E[?3l\E[2;0y,
sgr=\E[0%?%p1%p5%|%p6%|%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1
%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smso=\E[7m, smul=\E[4m,
- tsl=\E7\E[25;%p1%{1}%+%dH,
+ sgr0=\E[m\017, smacs=^N, tsl=\E7\E[25;%p1%{1}%+%dH,
+ use=ansi+arrows, use=ansi+csr, use=ansi+erase,
+ use=ansi+local1, use=ansi+sgrbold,
att4410v1-w|att5410v1-w|tty5410v1-w|AT&T 4410/5410 132 columns - version 1,
cols#132, wsl#132,
@@ -13286,28 +13863,27 @@ att5410-w|att4410-w|4410-w|tty5410-w|5410-w|AT&T 4410/5410 in 132 column mode,
cols#132, wsl#132,
is1=\E[?3h\E)0, rs2=\Ec\E[?3h\E[2;0y, use=att4410,
-# 5410 in terms of a vt100
+# 5410 in terms of a VT100
# (v5410: added <rmam>/<smam> based on init string -- esr)
-v5410|att5410 in terms of a vt100,
+v5410|att5410 in terms of a VT100,
am, mir, msgr, xon,
cols#80, it#8, lines#24, vt#3,
acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
- clear=\E[H\E[J$<50>, cr=\r, csr=\E[%i%p1%d;%p2%dr,
- cub1=^H, cud1=\n, cuf1=\E[C$<2>,
- cup=\E[%i%p1%d;%p2%dH$<5>, cuu1=\E[A$<2>, dch1=\E[P,
- dl1=\E[M, ed=\E[J$<50>, el=\E[K$<3>, el1=\E[1K$<3>,
- enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH, ich1=\E[@,
- il1=\E[L, ind=\n, kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
- kcuu1=\EOA, rc=\E8, rev=\E[7m$<2>, ri=\EM$<5>, rmacs=^O,
- rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m$<2>,
- rmul=\E[m$<2>, rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
- sc=\E7,
+ clear=\E[H\E[J$<50>, cr=\r, cub1=^H, cud1=\n,
+ cuf1=\E[C$<2>, cup=\E[%i%p1%d;%p2%dH$<5>,
+ cuu1=\E[A$<2>, dch1=\E[P, dl1=\E[M, ed=\E[J$<50>,
+ el=\E[K$<3>, el1=\E[1K$<3>, enacs=\E(B\E)0, home=\E[H,
+ ht=^I, hts=\EH, ich1=\E[@, il1=\E[L, ind=\n, kbs=^H,
+ kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+ rev=\E[7m$<2>, ri=\EM$<5>, rmacs=^O, rmam=\E[?7l,
+ rmkx=\E[?1l\E>, rmso=\E[m$<2>, rmul=\E[m$<2>,
+ rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5
%;m%?%p9%t\016%e\017%;$<2>,
sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=,
smso=\E[1;7m$<2>, smul=\E[4m$<2>, tbc=\E[3g,
- use=vt100+fnkeys,
+ use=ansi+csr, use=decid+cpr, use=vt100+fnkeys,
#
# Teletype Model 5420 -- A souped up 5410, with multiple windows,
@@ -13347,15 +13923,12 @@ v5410|att5410 in terms of a vt100,
# when pressed in SYS PF mode.
# (att4415: I added <rmam>/<smam> based on the init string -- esr)
att4415|tty5420|att5420|AT&T 4415/5420 80 cols,
- OTbs, db, mir, xon,
- lh#2, lm#78, lw#8, nlab#8, wsl#55,
- cbt=\E[Z, clear=\E[x\E[J, cnorm=\E[11;0j, cub=\E[%p1%dD,
- cud=\E[%p1%dB, cuf=\E[%p1%dC, cup=\E[%i%p1%d;%p2%dx,
- cuu=\E[%p1%dA, cvvis=\E[11;1j, dch=\E[%p1%dP,
- dl=\E[%p1%dM, ech=\E[%p1%ds\E[%p1%dD,
- flash=\E[?5h$<200>\E[?5l, home=\E[x,
- hpa=\E[%p1%{1}%+%dG, hts=\EH, ich=\E[%p1%d@, ich1@,
- il=\E[%p1%dL, indn=\E[%p1%dE, is1=\E[?3l$<100>,
+ db,
+ lm#78, wsl#55,
+ clear=\E[x\E[J, cnorm=\E[11;0j, cub1=^H,
+ cup=\E[%i%p1%d;%p2%dx, cvvis=\E[11;1j,
+ ech=\E[%p1%ds\E[%p1%dD, flash=\E[?5h$<200>\E[?5l,
+ home=\E[x, ich1@, indn=\E[%p1%dE, is1=\E[?3l$<100>,
is2=\E[m\017\E[1;2;3;4;6l\E[12;13;14;20l\E[?6;97;99l\E[?7h
\E[4i\Ex\E[21;1j\212,
is3=\E[?5l, kbeg=\Et, kcbt=\E[Z, kdch1=\E[P, kdl1=\E[M,
@@ -13367,14 +13940,14 @@ att4415|tty5420|att5420|AT&T 4415/5420 80 cols,
mc5=\E[?4i, mrcup=\E[%i%p1%d;%p2%dt,
pfx=\E[%p1%d;%p2%l%02dq F%p1%d %p2%s,
pln=\E[%p1%d;0;0;0q%p2%:-16.16s, prot=\EV,
- rin=\E[%p1%dF, rmam=\E[?7l, rmir=\E[4l,
- rmkx=\E[19;0j\E[21;1j\212, rmln=\E|,
+ rin=\E[%p1%dF, rmam=\E[?7l, rmkx=\E[19;0j\E[21;1j\212,
+ rmln=\E|,
sgr=\E[0%?%p1%p5%|%p6%|%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1
%|%p6%|%t;7%;%?%p7%t;8%;m%?%p8%t\EV%;%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smam=\E[?7h, smir=\E[4h,
- smkx=\E[19;1j\E[21;4j\Eent, smln=\E~, tbc=\E[3g,
- tsl=\E7\E[25;%p1%{8}%+%dH, vpa=\E[%p1%{1}%+%dd,
- use=att4410,
+ sgr0=\E[m\017, smam=\E[?7h, smkx=\E[19;1j\E[21;4j\Eent,
+ smln=\E~, tsl=\E7\E[25;%p1%{8}%+%dH, use=ansi+idc,
+ use=ansi+idl, use=ansi+inittabs, use=ansi+local,
+ use=ansi+rca, use=att4410,
att4415-w|tty5420-w|att5420-w|AT&T 4415/5420 132 cols,
cols#132, lm#54, wsl#97,
@@ -13415,40 +13988,38 @@ att4415-w-rv-n|tty5420-w-rv-n|att5420-w-rv-n|AT&T 4415/5420 132 cols reverse wit
att5420_2|AT&T 5420 model 2 80 cols,
am, db, hs, mir, msgr, xon,
- cols#80, it#8, lh#2, lines#24, lm#78, lw#8, nlab#8, wsl#55,
+ cols#80, lh#2, lines#24, lm#78, lw#8, nlab#8, wsl#55,
acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- blink=\E[5m, cbt=\E[1Z, clear=\EH\EJ, cnorm=\E[11;0j,
- cr=\EG, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\E[1B, cuf=\E[%p1%dC, cuf1=\E[1C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[1A,
- cvvis=\E[11;1j, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
- dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%ds\E[%p1%dD, ed=\E[0J,
- el=\E[0K, el1=\E[1K, flash=\E[?5h$<200>\E[?5l, fsl=\E8,
- home=\E[H, hpa=\E[%p1%{1}%+%dG, ht=^I, hts=\EH,
- ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\n,
- indn=\E[%p1%dE, invis=\E[8m,
+ cbt=\E[1Z, clear=\EH\EJ, cnorm=\E[11;0j, cr=\EG, cub1=^H,
+ cud1=\E[1B, cuf1=\E[1C, cup=\E[%i%p1%d;%p2%dH,
+ cuu1=\E[1A, cvvis=\E[11;1j, dch=\E[%p1%dP, dch1=\E[P,
+ ech=\E[%p1%ds\E[%p1%dD, ed=\E[0J, el=\E[0K, el1=\E[1K,
+ flash=\E[?5h$<200>\E[?5l, fsl=\E8, home=\E[H,
+ hpa=\E[%p1%{1}%+%dG, ich=\E[%p1%d@, ich1=\E[@, ind=\n,
+ indn=\E[%p1%dE,
is1=\E[0;23r\Ex\Ey\E[2;0j\E[3;3j\E[4;0j\E[5;0j\E[6;0j\E[7;0j
\E[8;0j\E[9;1j\E[10;0j\E[15;0j\E[16;1j\E[19;0j\E[20;1j
\E[29;0j\E[1;24r,
- kbeg=\Et, kbs=^H, kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kdl1=\E[M,
+ kbeg=\Et, kcbt=\E[Z, kclr=\E[2J, kdch1=\E[P, kdl1=\E[M,
kel=\E[2K, kend=\Ez, kent=\n, kf1=\EOc, kf2=\EOd, kf3=\EOe,
- kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj, khome=\E[H,
+ kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj,
kich1=\E[4h, kil1=\E[L, kind=\E[T, kll=\Eu, knp=\E[U,
kpp=\E[V, kri=\E[S, lf1=F1, lf2=F2, lf3=F3, lf4=F4, lf5=F5,
lf6=F6, lf7=F7, lf8=F8, ll=\Ew, mc0=\E[?;2i, mc4=\E[4i,
mc5=\E[5i, mrcup=\E[%i%p1%d;%p2%dt, nel=\r\n,
pfx=\E[%p1%d;%p2%l%02dq\s\s\sF%p1%d\s\s\s\s\s\s\s\s\s\s\s%p2
%s\E~,
- pln=\E[%p1%d;0;0;0q%p2%:-16.16s\E~, prot=\EV, rc=\E8,
- rev=\E[7m, ri=\EM, rin=\E[%p1%dF, rmacs=^O, rmkx=\E[19;0j,
- rmln=\E|, rmso=\E[m, rmul=\E[m, rs2=\Ec\E[?3l\E[2;0y,
- sc=\E7,
+ pln=\E[%p1%d;0;0;0q%p2%:-16.16s\E~, prot=\EV, ri=\EM,
+ rin=\E[%p1%dF, rmacs=^O, rmkx=\E[19;0j, rmln=\E|,
+ rs2=\Ec\E[?3l\E[2;0y,
sgr=\E[0%?%p1%p5%|%t;2%;%?%p2%p6%|%t;4%;%?%p4%t;5%;%?%p3%p1
%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;%?%p8%t\EV%;,
sgr0=\E[m\017, smacs=^N, smkx=\E[19;1j, smln=\E~,
- smso=\E[7m, smul=\E[4m, tbc=\E[3g,
tsl=\E7\E[25;%p1%{8}%+%dH, vpa=\E[%p1%{1}%+%dd,
+ use=ansi+arrows, use=ansi+csr, use=ansi+idl,
+ use=ansi+inittabs, use=ansi+local, use=ansi+sgrdim,
+ use=decid+cpr,
+
att5420_2-w|AT&T 5420 model 2 in 132 column mode,
cols#132,
is1=\E[0;23r\Ex\Ey\E[2;0j\E[3;3j\E[4;0j\E[5;1j\E[6;0j\E[7;0j
@@ -13460,35 +14031,34 @@ att4418|att5418|AT&T 5418 80 cols,
am, xon,
cols#80, lines#24,
acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, clear=\E[H\E[2J, cr=\r, cub=\E[%p1%dD,
- cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
- cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[1P, dim=\E[2m,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[0J, el=\E[0K, home=\E[H,
- ich=\E[%p1%d@, ich1=\E[1@, il=\E[%p1%dL, il1=\E[1L, ind=\n,
- is1=\E[?3l, is2=\E)0\E?6l\E?5l, kclr=\E[%%, kcub1=\E@,
- kcud1=\EU, kcuf1=\EA, kcuu1=\ES, kent=\E[, kf1=\E[h,
- kf10=\E[m, kf11=\E[n, kf12=\E[o, kf13=\E[H, kf14=\E[I,
- kf15=\E[J, kf18=\E[K, kf19=\E[L, kf2=\E[i, kf20=\E[E,
- kf21=\E[_, kf22=\E[M, kf23=\E[N, kf24=\E[O, kf3=\E[j,
- kf6=\E[k, kf7=\E[l, kf8=\E[f, kf9=\E[w, khome=\Ec, rc=\E8,
- rev=\E[7m, rmacs=^O, rmso=\E[m, rmul=\E[m, sc=\E7,
- sgr0=\E[m\017, smacs=^N, smso=\E[7m, smul=\E[4m,
+ bel=^G, blink=\E[5m, clear=\E[H\E[2J, cr=\r,
+ cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\E[1P,
+ dim=\E[2m, ed=\E[0J, el=\E[0K, home=\E[H, ich=\E[%p1%d@,
+ ich1=\E[1@, il1=\E[1L, ind=\n, is1=\E[?3l,
+ is2=\E)0\E?6l\E?5l, kclr=\E[%%, kcub1=\E@, kcud1=\EU,
+ kcuf1=\EA, kcuu1=\ES, kent=\E[, kf1=\E[h, kf10=\E[m,
+ kf11=\E[n, kf12=\E[o, kf13=\E[H, kf14=\E[I, kf15=\E[J,
+ kf18=\E[K, kf19=\E[L, kf2=\E[i, kf20=\E[E, kf21=\E[_,
+ kf22=\E[M, kf23=\E[N, kf24=\E[O, kf3=\E[j, kf6=\E[k,
+ kf7=\E[l, kf8=\E[f, kf9=\E[w, khome=\Ec, rc=\E8, rev=\E[7m,
+ rmacs=^O, rmso=\E[m, rmul=\E[m, sc=\E7, sgr0=\E[m\017,
+ smacs=^N, smso=\E[7m, smul=\E[4m, use=ansi+idl,
+ use=ansi+local,
+
att4418-w|att5418-w|AT&T 5418 132 cols,
cols#132,
is1=\E[?3h, use=att5418,
-att4420|tty4420|teletype 4420,
+att4420|tty4420|Teletype 4420,
OTbs, da, db, eo, msgr, ul, xon,
cols#80, lines#24, lm#72,
bel=^G, clear=\EH\EJ, cr=\EG, cub1=\ED, cud1=\EB, cuf1=\EC,
cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EP,
dl1=\EM, ed=\EJ, el=\Ez, home=\EH, il1=\EL, ind=\EH\EM\EY7\s,
- kcbt=\EO, kclr=\EJ, kcub1=^H, kcud1=\EB, kcuf1=\EC,
- kcuu1=\EA, kdch1=\EP, kdl1=\EM, kf0=\EU, kf3=\E@, khome=\EH,
- kich1=\E\^, kil1=\EL, kind=\ES, kri=\ET,
+ kcbt=\EO, kclr=\EJ, kcub1=^H, kdch1=\EP, kdl1=\EM, kf0=\EU,
+ kf3=\E@, khome=\EH, kich1=\E\^, kil1=\EL, kind=\ES, kri=\ET,
lf0=segment advance, lf3=cursor tab, rmdc@, rmso=\E~,
- rmul=\EZ, smdc@, smso=\E}, smul=\E\\,
+ rmul=\EZ, smdc@, smso=\E}, smul=\E\\, use=vt52+arrows,
# The following is a terminfo entry for the Teletype 4424
# asynchronous keyboard-display terminal. It supports
@@ -13505,27 +14075,24 @@ att4420|tty4420|teletype 4420,
# The terminal has either bold or blink, depending on options
#
# (att4424: commented out <smcup>=\E[1m, we don't need bright locked on -- esr)
-att4424|tty4424|teletype 4424,
+att4424|tty4424|Teletype 4424,
OTbs, am, xon,
cols#80, lines#24,
acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
bel=^G, blink=\E3, bold=\E3, cbt=\EO, clear=\E[H\E[2J, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\EB, cuf=\E[%p1%dC, cuf1=\EC,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EA,
- dch=\E[%p1%dP, dch1=\EP, dim=\EW, dl=\E[%p1%dM, dl1=\EM,
- ed=\EJ, el=\Ez, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
- ich1=\E\^, il=\E[%p1%dL, il1=\EL, ind=\n, is2=\E[20l\E[?7h,
- kbs=^H, kclr=\EJ, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
- khome=\E[H, nel=\EE, rev=\E}, ri=\ET, rmacs=\E(B, rmso=\E~,
- rmul=\EZ,
+ csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\EB, cuf1=\EC,
+ cup=\E[%i%p1%d;%p2%dH, cuu1=\EA, dch=\E[%p1%dP, dch1=\EP,
+ dim=\EW, dl=\E[%p1%dM, dl1=\EM, ed=\EJ, el=\Ez, home=\E[H,
+ ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E\^, il=\E[%p1%dL,
+ il1=\EL, ind=\n, is2=\E[20l\E[?7h, kclr=\EJ, kf1=\EOP,
+ kf2=\EOQ, kf3=\EOR, kf4=\EOS, nel=\EE, rev=\E}, ri=\ET,
+ rmacs=\E(B, rmso=\E~, rmul=\EZ,
sgr=\EX\E~\EZ\E4\E(B%?%p1%p3%|%t\E}%;%?%p2%t\E\\%;%?%p4%p6%|
%t\E3%;%?%p5%t\EW%;%?%p9%t\E(0%;,
sgr0=\EX\E~\EZ\E4\E(B, smacs=\E(0, smso=\E}, smul=\E\\,
- tbc=\EF,
+ tbc=\EF, use=ansi+arrows, use=ansi+local,
-att4424-1|tty4424-1|teletype 4424 in display function group I,
+att4424-1|tty4424-1|Teletype 4424 in display function group I,
kclr@, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome@,
use=att4424,
@@ -13535,16 +14102,15 @@ att4424-1|tty4424-1|teletype 4424 in display function group I,
# The following two lines are the comment originally attached to the entry:
# This entry appears to avoid the top line - I have no idea why.
# From: jwb Wed Mar 31 13:25:09 1982 remote from ihuxp
-att4424m|tty4424m|teletype 4424M,
+att4424m|tty4424m|Teletype 4424M,
am, da, db, mir,
cols#80, it#8, lines#23,
bel=^G, clear=\E[2;H\E[J, cr=\r, cub1=^H, cud1=\n, cuf1=\E[C,
cup=\E[%i%p1%2d;%p2%2dH\E[B, cuu1=\E[A, dch1=\EP,
dl1=\EM, el=\E[K, ht=^I, ich1=\E\^, il1=\EL, ind=\n, ip=$<2/>,
- is2=\E[m\E[2;24r, kbs=^H, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, kf2=\EOQ, kf3=\EOR,
- kf4=\EOS, khome=\E[H, nel=\r\n, ri=\ET, rmso=\E[m, rmul=\E[m,
- sgr0=\E[m, smso=\E[7m, smul=\E[4m,
+ is2=\E[m\E[2;24r, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
+ nel=\r\n, ri=\ET, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
+ smso=\E[7m, smul=\E[4m, use=ansi+arrows,
# The Teletype 5425 is really version 2 of the Teletype 5420. It
# is quite similar, except for some minor differences. No page
@@ -13556,70 +14122,59 @@ att4424m|tty4424m|teletype 4424M,
#
# (att5425: added <rmam>/<smam> based on the init string -- esr)
att5425|tty5425|att4425|AT&T 4425/5425,
- am, da, db, hs, mir, msgr, xenl, xon,
- cols#80, it#8, lh#2, lines#24, lm#78, lw#8, nlab#8, wsl#55,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[2;7m, cbt=\E[Z,
- clear=\E[H\E[J, cnorm=\E[12;0j, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[12;1j, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
- dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%ds\E[%p1%dD, ed=\E[J,
- el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
- flash=\E[?5h$<200>\E[?5l, fsl=\E8, home=\E[H,
- hpa=\E[%p1%{1}%+%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
- il=\E[%p1%dL, il1=\E[L, ind=\n, indn=\E[%p1%dE,
- invis=\E[8m, is1=\E<\E[?3l$<100>,
+ da, db, hs, mir, xenl, xon,
+ lh#2, lm#78, lw#8, nlab#8, wsl#55,
+ bold=\E[2;7m, cnorm=\E[12;0j, cub1=^H, cud1=\n,
+ cup=\E[%i%p1%d;%p2%dH, cvvis=\E[12;1j, dch=\E[%p1%dP,
+ dch1=\E[P, dim=\E[2m, ech=\E[%p1%ds\E[%p1%dD, el1=\E[1K,
+ flash=\E[?5h$<200>\E[?5l, fsl=\E8, hpa=\E[%p1%{1}%+%dG,
+ ich=\E[%p1%d@, indn=\E[%p1%dE, is1=\E<\E[?3l$<100>,
is2=\E[m\017\E[1;2;3;4;6l\E[12;13;14;20l\E[?6;97;99l\E[?7h
\E[4i\Ex\E[25;1j\212,
- is3=\E[?5l, kbeg=\Et, kbs=^H, kcbt=\E[Z, kclr=\E[J,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P,
+ is3=\E[?5l, kbeg=\Et, kcbt=\E[Z, kclr=\E[J, kdch1=\E[P,
kdl1=\E[M, kel=\E[2K, kend=\Ez, kent=\Eent, kf1=\EOc,
kf2=\EOd, kf3=\EOe, kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi,
- kf8=\EOj, khome=\E[H, kich1=\E[4h, kil1=\E[L, kind=\E[T,
- kri=\E[S, ll=\E[24H, mc0=\E[?2i, mc4=\E[?9i, mc5=\E[?4i,
- nel=\r\n,
+ kf8=\EOj, kich1=\E[4h, kil1=\E[L, kind=\E[T, kri=\E[S,
+ ll=\E[24H, mc0=\E[?2i, mc4=\E[?9i, mc5=\E[?4i, nel=\r\n,
pfx=\E[%p1%d;%p2%l%02dq F%p1%1d %p2%s,
- pln=\E[%p1%d;0;0;0q%p2%:-16.16s, prot=\EV, rc=\E8,
- rev=\E[7m, ri=\EM, rin=\E[%p1%dF, rmacs=^O, rmam=\E[?7l,
- rmir=\E[4l, rmkx=\E[21;0j\E[25;1j\212, rmln=\E|,
- rmso=\E[m, rmul=\E[m, rs2=\Ec\E[?3l\E[2;0y, sc=\E7,
+ pln=\E[%p1%d;0;0;0q%p2%:-16.16s, prot=\EV, ri=\EM,
+ rin=\E[%p1%dF, rmam=\E[?7l, rmir=\E[4l,
+ rmkx=\E[21;0j\E[25;1j\212, rmln=\E|,
+ rs2=\Ec\E[?3l\E[2;0y,
sgr=\E[0%?%p5%p6%|%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6
%|%t;7%;%?%p7%t;8%;m%?%p8%t\EV%;%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
- smkx=\E[21;1j\E[25;4j\Eent\E~, smln=\E~, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g, tsl=\E7\E[25;%p1%{8}%+%dH,
- vpa=\E[%p1%{1}%+%dd,
+ sgr0=\E[m\017, smam=\E[?7h, smir=\E[4h,
+ smkx=\E[21;1j\E[25;4j\Eent\E~, smln=\E~,
+ tsl=\E7\E[25;%p1%{8}%+%dH, vpa=\E[%p1%{1}%+%dd,
+ use=ansi+arrows, use=ansi+csr, use=ansi+erase,
+ use=ansi+idl, use=ansi+inittabs, use=ansi+local,
+ use=ansi+sgrbold, use=decid+cpr, use=vt100+4bsd,
att5425-nl|tty5425-nl|att4425-nl|AT&T 4425/5425 80 columns no labels,
smkx=\E[21;1j\E[25;4j\Eent, use=att4425,
-att5425-w|att4425-w|tty5425-w|teletype 4425/5425 in 132 column mode,
+att5425-w|att4425-w|tty5425-w|Teletype 4425/5425 in 132 column mode,
cols#132, lm#54, wsl#97,
is1=\E[?3h$<100>, use=tty5425,
# (att4426: his had bogus capabilities: :ri=\EM:, :ri=\E[1U:.
# I also added <rmam>/<smam> -- esr)
-att4426|tty4426|teletype 4426S,
+att4426|tty4426|Teletype 4426S,
am, da, db, xon,
cols#80, lines#24, lm#48,
acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
bel=^G, bold=\E[5m, clear=\E[H\E[2J\E[1U\E[H\E[2J\E[1V,
- cr=\r, cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\EP,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[0K, home=\E[H,
- hpa=\E[%p1%dG, ht=^I, hts=\E1, ich=\E[%p1%d@, ich1=\E\^,
- il=\E[%p1%dL, il1=\EL, ind=\n, is1=\Ec\E[?7h,
- is2=\E[m\E[1;24r, kbs=^H, kcbt=\EO, kclr=\E[2J, kcub1=\ED,
- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kf1=\EOP, kf2=\EOQ,
- kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW,
- khome=\E[H, kll=\E[24;1H, ll=\E[24H, nel=\r\n, rc=\E8,
- rev=\E[7m, ri=\ET, rmacs=\E(B, rmam=\E[?7l, rmso=\E[m,
- rmul=\E[m, rs2=\Ec\E[?3l\E[2;0y, sc=\E7, sgr0=\E[m\E(B,
- smacs=\E(0, smam=\E[?7h, smso=\E[5m, smul=\E[4m, tbc=\E[3g,
- vpa=\E[%p1%dd, use=ecma+index,
+ cr=\r, cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\EP,
+ ed=\E[J, el=\E[0K, home=\E[H, hpa=\E[%p1%dG, ht=^I, hts=\E1,
+ ich=\E[%p1%d@, ich1=\E\^, il1=\EL, ind=\n, is1=\Ec\E[?7h,
+ is2=\E[m\E[1;24r, kbs=^H, kcbt=\EO, kclr=\E[2J, kf1=\EOP,
+ kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV,
+ kf8=\EOW, khome=\E[H, kll=\E[24;1H, ll=\E[24H, nel=\r\n,
+ rc=\E8, rev=\E[7m, ri=\ET, rmacs=\E(B, rmam=\E[?7l,
+ rmso=\E[m, rmul=\E[m, rs2=\Ec\E[?3l\E[2;0y, sc=\E7,
+ sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smso=\E[5m,
+ smul=\E[4m, tbc=\E[3g, vpa=\E[%p1%dd, use=ansi+idl,
+ use=ansi+local, use=ecma+index, use=vt52+arrows,
# Terminfo entry for the AT&T 510 A Personal Terminal
# Function keys 9 - 16 are available only after the
@@ -13633,26 +14188,25 @@ att510a|bct510a|AT&T 510A Personal Terminal,
am, mir, msgr, xenl, xon,
cols#80, lh#2, lines#24, lw#7, nlab#8,
acsc=+g\,h-f.e`bhrisjjkkllmmnnqqttuuvvwwxx{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[2;7m, cbt=\E[Z,
- civis=\E[11;0|, clear=\E[H\E[J, cnorm=\E[11;3|, cr=\r,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, cvvis=\E[11;2|, dch=\E[%p1%dP,
- dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ed=\E[0J,
- el=\E[0K, el1=\E[1K, enacs=\E(B\E)1, ff=^L, home=\E[H, ht=^I,
- hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=\n, is1=\E(B\E)1\E[2l,
- is3=\E[21;1|\212, kLFT=\E[u, kRIT=\E[v, kbs=^H, kcbt=\E[Z,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOm,
- kf10=\EOd, kf11=\EOe, kf12=\EOf, kf13=\EOg, kf14=\EOh,
- kf15=\EOi, kf16=\EOj, kf2=\EOV, kf3=\EOu, kf4=\ENj, kf5=\ENe,
- kf6=\ENf, kf7=\ENh, kf8=\E[H, kf9=\EOc, kind=\E[S, kri=\E[T,
- mc0=\E[0i, mc4=\E[?8i, mc5=\E[?4i, nel=\EE,
- pln=\E[%p1%dp%p2%:-16s, rc=\E8, rev=\E[7m, ri=\EM,
- rmacs=^O, rmkx=\E[19;0|, rmso=\E[m, rmul=\E[m, sc=\E7,
+ bel=^G, blink=\E[5m, bold=\E[2;7m, civis=\E[11;0|,
+ clear=\E[H\E[J, cnorm=\E[11;3|, cr=\r, cub1=^H,
+ cup=\E[%i%p1%d;%p2%dH, cvvis=\E[11;2|, dch=\E[%p1%dP,
+ dch1=\E[P, dim=\E[2m, ed=\E[0J, el=\E[0K, el1=\E[1K,
+ enacs=\E(B\E)1, ff=^L, home=\E[H, ind=\n,
+ is1=\E(B\E)1\E[2l, is3=\E[21;1|\212, kLFT=\E[u,
+ kRIT=\E[v, kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B,
+ kcuf1=\E[C, kcuu1=\E[A, kf1=\EOm, kf10=\EOd, kf11=\EOe,
+ kf12=\EOf, kf13=\EOg, kf14=\EOh, kf15=\EOi, kf16=\EOj,
+ kf2=\EOV, kf3=\EOu, kf4=\ENj, kf5=\ENe, kf6=\ENf, kf7=\ENh,
+ kf8=\E[H, kf9=\EOc, kind=\E[S, kri=\E[T, mc0=\E[0i,
+ mc4=\E[?8i, mc5=\E[?4i, nel=\EE, pln=\E[%p1%dp%p2%:-16s,
+ rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O, rmkx=\E[19;0|,
+ rmso=\E[m, rmul=\E[m, sc=\E7,
sgr=\E[0%?%p5%p6%|%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6
%|%t;7%;m%?%p9%t\016%e\017%;,
sgr0=\E[m\017, smacs=^N, smkx=\E[19;1|, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g,
+ smul=\E[4m, use=ansi+cpr, use=ansi+idl, use=ansi+local,
+ use=ansi+tabs,
# Terminfo entry for the AT&T 510 D Personal Terminal
# Function keys 9 through 16 are accessed by bringing up the
@@ -13667,60 +14221,52 @@ att510d|bct510d|AT&T 510D Personal Terminal,
am, da, db, mir, msgr, xenl, xon,
cols#80, lh#2, lines#24, lm#48, lw#7, nlab#8,
acsc=+g\,h-f.e`bhrisjjkkllmmnnqqttuuvvwwxx{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[2;7m, cbt=\E[Z,
- clear=\E[H\E[J, cnorm=\E[11;3|, cr=\r, cub=\E[%p1%dD,
- cub1=^H, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
- cuu1=\E[A, cvvis=\E[11;2|, dch=\E[%p1%dP, dch1=\E[P,
- dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ed=\E[0J, el=\E[0K,
+ bel=^G, bold=\E[2;7m, clear=\E[H\E[J, cnorm=\E[11;3|,
+ cr=\r, cub1=^H, cup=\E[%i%p1%d;%p2%dH, cvvis=\E[11;2|,
+ dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, ed=\E[0J, el=\E[0K,
el1=\E[1K, enacs=\E(B\E)1, ff=^L, home=\E[H,
- hpa=\E[%p1%{1}%+%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
- il=\E[%p1%dL, il1=\E[L, ind=\n, invis=\E[8m,
+ hpa=\E[%p1%{1}%+%dG, ich=\E[%p1%d@, ind=\n,
is1=\E(B\E)1\E[5;0|, is3=\E[21;1|\212, kLFT=\E[u,
kRIT=\E[v, kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B,
kcuf1=\E[C, kcuu1=\E[A, kf1=\EOm, kf10=\EOd, kf11=\EOe,
kf12=\EOf, kf13=\EOg, kf14=\EOh, kf15=\EOi, kf16=\EOj,
kf2=\EOV, kf3=\EOu, kf4=\ENj, kf5=\ENe, kf6=\ENf, kf7=\ENh,
kf8=\E[H, kf9=\EOc, kind=\E[S, kri=\E[T, ll=\E#2, mc0=\E[0i,
- mc4=\E[?8i, mc5=\E[?4i, mgc=\E\:, nel=\EE,
- pln=\E[%p1%dp%p2%:-16s, rc=\E8, rev=\E[7m, ri=\EM,
- rmacs=^O, rmir=\E[4l, rmkx=\E[19;0|, rmln=\E<, rmso=\E[m,
- rmul=\E[m, rmxon=\E[29;1|, rs2=\E[5;0|, sc=\E7,
+ mc4=\E[?8i, mc5=\E[?4i, mgc=\E:, nel=\EE,
+ pln=\E[%p1%dp%p2%:-16s, rc=\E8, ri=\EM, rmacs=^O,
+ rmir=\E[4l, rmkx=\E[19;0|, rmln=\E<, rmxon=\E[29;1|,
+ rs2=\E[5;0|, sc=\E7,
sgr=\E[0%?%p5%p6%|%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6
%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
sgr0=\E[m\017, smacs=^N, smgl=\E4, smgr=\E5, smir=\E[4h,
- smkx=\E[19;1|, smln=\E?, smso=\E[7m, smul=\E[4m,
- smxon=\E[29;0|, tbc=\E[3g, vpa=\E[%p1%{1}%+%dd,
- use=ansi+rep, use=ecma+index,
+ smkx=\E[19;1|, smln=\E?, smxon=\E[29;0|,
+ vpa=\E[%p1%{1}%+%dd, use=ansi+cpr, use=ansi+idl,
+ use=ansi+local, use=ansi+rep, use=ansi+sgrbold,
+ use=ansi+tabs, use=ecma+index,
# (att500: I merged this with the att513 entry, att500 just used att513 -- esr)
att500|att513|AT&T 513 using page mode,
am, chts, mir, msgr, xenl, xon,
cols#80, lh#2, lines#24, lw#8, nlab#8,
acsc=+g\,h-f.e`bhrisjjkkllmmnnqqttuuvvwwxx{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[2;7m, cbt=\E[Z,
- clear=\E[H\E[J, cnorm=\E[11;0|, cr=\r,
- csr=%i\E[%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[11;1|, dch=\E[%p1%dP, dch1=\E[P$<1>, dim=\E[2m,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
- enacs=\E(B\E)1, home=\E[H, hpa=\E[%p1%{1}%+%dG, ht=^I,
- hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\n,
- indn=\E[%p1%dE, invis=\E[8m,
+ bel=^G, bold=\E[2;7m, cnorm=\E[11;0|, cr=\r,
+ csr=%i\E[%p1%d;%p2%dr, cub1=^H, cud1=\n,
+ cup=\E[%i%p1%d;%p2%dH, cvvis=\E[11;1|, dch=\E[%p1%dP,
+ dch1=\E[P$<1>, dim=\E[2m, el1=\E[1K, enacs=\E(B\E)1,
+ home=\E[H, hpa=\E[%p1%{1}%+%dG, ich=\E[%p1%d@, ind=\n,
+ indn=\E[%p1%dE,
is1=\E?\E[3;3|\E[10;0|\E[21;1|\212\E[6;1|\E[1{\E[?99l,
kBEG=\ENB, kCAN=\EOW, kCMD=\EOU, kCPY=\END, kCRT=\EON,
kDC=\ENF, kDL=\ENE, kEND=\ENN, kEOL=\EOA, kEXT=\EOK,
kFND=\EOX, kHLP=\EOM, kHOM=\ENM, kIC=\ENJ, kLFT=\ENK,
kMOV=\ENC, kMSG=\EOL, kNXT=\ENH, kOPT=\EOR, kPRT=\EOZ,
kPRV=\ENG, kRDO=\EOT, kRES=\EOQ, kRIT=\ENL, kRPL=\EOY,
- kSAV=\EOO, kSPD=\EOP, kUND=\EOS, kbeg=\E9, kbs=^H, kcan=\EOw,
+ kSAV=\EOO, kSPD=\EOP, kUND=\EOS, kbeg=\E9, kcan=\EOw,
kcbt=\E[Z, kclo=\EOV, kclr=\E[J, kcmd=\EOu, kcpy=\ENd,
- kcrt=\EOn, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=\ENf, kdl1=\ENe, kel=\EOa, kend=\E0, kent=\Eent,
- kext=\EOk, kf1=\EOc, kf2=\EOd, kf3=\EOe, kf4=\EOf, kf5=\EOg,
- kf6=\EOh, kf7=\EOi, kf8=\EOj, kfnd=\EOx, khlp=\EOm,
- khome=\E[H, kich1=\ENj, kind=\E[S, kmov=\ENc, kmrk=\ENi,
+ kcrt=\EOn, kdch1=\ENf, kdl1=\ENe, kel=\EOa, kend=\E0,
+ kent=\Eent, kext=\EOk, kf1=\EOc, kf2=\EOd, kf3=\EOe,
+ kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj, kfnd=\EOx,
+ khlp=\EOm, kich1=\ENj, kind=\E[S, kmov=\ENc, kmrk=\ENi,
kmsg=\EOl, knp=\E[U, knxt=\ENh, kopn=\EOv, kopt=\EOr,
kpp=\E[V, kprt=\EOz, kprv=\ENg, krdo=\EOt, kref=\EOb,
kres=\EOq, krfr=\ENa, kri=\E[T, krpl=\EOy, krst=\EOB,
@@ -13732,20 +14278,21 @@ att500|att513|AT&T 513 using page mode,
pfloc=\E[%p1%d;%p2%l%d;2;0p\s\s\sF%p1%d\s\s\s\s\s\s\s\s\s\s
\s%p2%s,
pfx=\E[%p1%d;%p2%l%d;1;0p F%p1%d %p2%s,
- pln=\E[%p1%dp%p2%:-16s, rc=\E8, rev=\E[7m, ri=\EM,
- rin=\E[%p1%dF, rmacs=^O, rmir=\E[4l,
- rmkx=\E[19;0|\E[21;1|\212, rmln=\E<, rmso=\E[m,
- rmul=\E[m,
+ pln=\E[%p1%dp%p2%:-16s, rc=\E8, ri=\EM, rin=\E[%p1%dF,
+ rmacs=^O, rmir=\E[4l, rmkx=\E[19;0|\E[21;1|\212,
+ rmln=\E<,
rs1=\E?\E[3;3|\E[10;0|\E[21;1|\212\E[6;1|\E[1{\E[?99l\E[2;0|
\E[6;1|\E[8;0|\E[19;0|\E[1{\E[?99l,
rs2=\E[5;0|, sc=\E7,
sgr=\E[0%?%p1%p5%|%p6%|%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1
%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
sgr0=\E[m\017, smacs=^N, smir=\E[4h,
- smkx=\E[19;1|\E[21;4|\Eent, smln=\E?, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g, vpa=\E[%p1%{1}%+%dd, use=ansi+rep,
+ smkx=\E[19;1|\E[21;4|\Eent, smln=\E?,
+ vpa=\E[%p1%{1}%+%dd, use=ansi+arrows, use=ansi+erase,
+ use=ansi+idl, use=ansi+local, use=ansi+rep,
+ use=ansi+sgrbold, use=ansi+tabs, use=decid+cpr,
-# 01-07-88
+# 01-07-88:
# printer must be set to EMUL ANSI to accept ESC codes
# <cuu1> stops at top margin
# <is1> sets cpi 10,lpi 6,form 66,left 1,right 132,top 1,bottom 66,font
@@ -13793,13 +14340,12 @@ att5310|att5320|AT&T Model 53210 or 5320 matrix printer,
att5620-1|tty5620-1|dmd1|Teletype 5620 with old ROMs,
am, xon,
cols#88, it#8, lines#70, vt#3,
- bel=^G, clear=\E[H\E[J, cr=\r, cub1=^H, cud1=\n, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP,
- dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K,
- home=\E[H, ht=^I, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL,
- il1=\E[L, ind=\n, kbs=^H, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, kll=\E[70;1H, nel=\r\n,
- rc=\E8, ri=\E[T, rs1=\Ec, sc=\E7, use=ecma+index,
+ bel=^G, cr=\r, cub1=^H, cud1=\n, cup=\E[%i%p1%d;%p2%dH,
+ dch=\E[%p1%dP, dch1=\E[P, home=\E[H, ht=^I, ich=\E[%p1%d@,
+ ich1=\E[@, ind=\n, kclr=\E[2J, kll=\E[70;1H, nel=\r\n,
+ rc=\E8, ri=\E[T, rs1=\Ec, sc=\E7, use=ansi+arrows,
+ use=ansi+erase, use=ansi+idl, use=ansi+local1,
+ use=ecma+index,
# 5620 terminfo (2.0 or later ROMS with char attributes)
# The following SET-UP modes are assumed for normal operation:
@@ -13813,32 +14359,30 @@ att5620-1|tty5620-1|dmd1|Teletype 5620 with old ROMs,
# <msgr> is from an otherwise inferior BRL for this terminal. That entry
# also has <ll>=\E[70H commented out and marked unsafe.
# For more, see the 5620 FAQ maintained by David Breneman <daveb@dgtl.com>.
-att5620|dmd|tty5620|ttydmd|5620|5620 terminal 88 columns,
+att5620|dmd|tty5620|ttydmd|5620|AT&T 5620 terminal 88 columns,
OTbs, am, msgr, npc, xon,
cols#88, it#8, lines#70,
- bel=^G, bold=\E[2m, clear=\E[H\E[J, cr=\r, cub1=^H,
- cud1=\E[B, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM,
- dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, ich=\E[%p1%d@,
- ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\E[S, kbs=^H,
- kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- khome=\E[H, kll=\E[70;1H, nel=\n,
- pfx=\E[%p1%d;%p2%l%dq%p2%s, rc=\E8, rev=\E[7m, ri=\E[T,
- rmso=\E[0m, rmul=\E[0m, rs1=\Ec, sc=\E7, sgr0=\E[0m,
- smso=\E[7m, smul=\E[4m, use=ecma+index,
-att5620-24|tty5620-24|dmd-24|teletype dmd 5620 in a 24x80 layer,
+ bel=^G, bold=\E[2m, cr=\r, cub1=^H, cup=\E[%i%p1%d;%p2%dH,
+ dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, home=\E[H, ht=^I,
+ ich=\E[%p1%d@, ich1=\E[@, ind=\E[S, kclr=\E[2J,
+ kll=\E[70;1H, nel=\n, pfx=\E[%p1%d;%p2%l%dq%p2%s, rc=\E8,
+ rev=\E[7m, ri=\E[T, rmso=\E[0m, rmul=\E[0m, rs1=\Ec, sc=\E7,
+ sgr0=\E[0m, smso=\E[7m, smul=\E[4m, use=ansi+arrows,
+ use=ansi+erase, use=ansi+idl, use=ansi+local1,
+ use=ecma+index,
+
+att5620-24|tty5620-24|dmd-24|Teletype dmd 5620 in a 24x80 layer,
lines#24, use=att5620,
-att5620-34|tty5620-34|dmd-34|teletype dmd 5620 in a 34x80 layer,
+att5620-34|tty5620-34|dmd-34|Teletype dmd 5620 in a 34x80 layer,
lines#34, use=att5620,
# 5620 layer running the "S" system's downloaded graphics handler:
-att5620-s|tty5620-s|layer|vitty|5620 S layer,
+att5620-s|tty5620-s|layer|vitty|AT&T 5620 S layer,
OTbs, OTpt, am,
cols#80, it#8, lines#72,
bel=^G, clear=^L, cr=\r, cub1=^H, cud1=\n,
cup=\EY%p2%{32}%+%c%p1%{32}%+%c, cuu1=^K, dl1=\ED,
- el=\EK, flash=\E^G, ht=^I, il1=\EI, ind=\n, kbs=^H, kclr=\E[2J,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H,
- kll=\E[70;1H,
+ el=\EK, flash=\E^G, ht=^I, il1=\EI, ind=\n, kclr=\E[2J,
+ khome=\E[H, kll=\E[70;1H, use=ansi+arrows,
# Entries for <kf15> thru <kf28> refer to the shifted system pf keys.
#
@@ -13848,15 +14392,11 @@ att605|AT&T 605 80 column 102key keyboard,
am, eo, xon,
cols#80, lines#24, lw#8, nlab#8, wsl#80,
acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
- cr=\r, cub1=^H, cud1=\E[B, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP,
- dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
- el=\E[K, el1=\E[1K, fsl=\E8, ht=^I, ich=\E[%p1%d@, ich1=\E[@,
- il1=\E[L, ind=\n, invis=\E[8m,
+ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, cr=\r, cub1=^H,
+ cup=\E[%i%p1%d;%p2%dH, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M,
+ el1=\E[1K, fsl=\E8, ht=^I, il1=\E[L, ind=\n, invis=\E[8m,
is1=\E[8;0|\E[?\E[13;20l\E[?\E[12h, is2=\E[m\017,
- kLFT=\E[ A, kRIT=\E[ @, kbs=^H, kcbt=\E[Z, kclr=\E[2J,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P,
+ kLFT=\E[ A, kRIT=\E[ @, kcbt=\E[Z, kclr=\E[2J, kdch1=\E[P,
kdl1=\E[M, kend=\E[24;1H, kf1=\EOc, kf10=\ENp, kf11=\ENq,
kf12=\ENr, kf13=\ENs, kf14=\ENt, kf15=\EOC, kf16=\EOD,
kf17=\EOE, kf18=\EOF, kf19=\EOG, kf2=\EOd, kf20=\EOH,
@@ -13866,26 +14406,24 @@ att605|AT&T 605 80 column 102key keyboard,
kf35=\EOy, kf36=\EOm, kf37=\EOt, kf38=\EOu, kf39=\EOv,
kf4=\EOf, kf40=\EOl, kf41=\EOq, kf42=\EOr, kf43=\EOs,
kf44=\EOp, kf45=\EOn, kf46=\EOM, kf5=\EOg, kf6=\EOh,
- kf7=\EOi, kf8=\EOj, kf9=\ENo, khome=\E[H, kich1=\E[@,
- kil1=\E[L, kind=\E[S, knp=\E[U, kpp=\E[V, ll=\E[24H,
- mc4=\E[?4i, mc5=\E[?5i, nel=\EE,
+ kf7=\EOi, kf8=\EOj, kf9=\ENo, kich1=\E[@, kil1=\E[L,
+ kind=\E[S, knp=\E[U, kpp=\E[V, ll=\E[24H, mc4=\E[?4i,
+ mc5=\E[?5i, nel=\EE,
pfx=\E[%p1%d;%p2%l%02dq F%p1%1d %p2%s,
pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8, rev=\E[7m,
- rmacs=^O, rmir=\E[4l, rmln=\E[2p, rmso=\E[m, rmul=\E[m,
- rs2=\Ec\E[?3l, sc=\E7, sgr0=\E[m\017, smacs=\E)0\016,
- smir=\E[4h, smln=\E[p, smso=\E[7m, smul=\E[4m,
- tsl=\E7\E[25;%i%p1%dx,
-att605-pc|ATT 605 in pc term mode,
+ rmacs=^O, rmln=\E[2p, rmso=\E[m, rmul=\E[m, rs2=\Ec\E[?3l,
+ sc=\E7, sgr0=\E[m\017, smacs=\E)0\016, smln=\E[p,
+ smso=\E[7m, smul=\E[4m, tsl=\E7\E[25;%i%p1%dx,
+ use=ansi+arrows, use=ansi+cpr, use=ansi+erase,
+ use=ansi+idc, use=ansi+local1,
+
+att605-pc|AT&T 605 in pc term mode,
acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x
\263,
- cbt=\E[Z, cub1=\E[D, cud1=\E[B, cuf1=\E[C, cuu1=\E[A,
- dch1=\E[P, dl1=\E[M, ich1=\E[@, il1=\E[L, kcbt=\E[Z,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P,
- kdl1=\E[M, kend=\E[F, kf1=\E[M, kf10=\E[V, kf2=\E[N,
+ cub1=\E[D, kend=\E[F, kf1=\E[M, kf10=\E[V, kf2=\E[N,
kf3=\E[O, kf4=\E[P, kf5=\E[Q, kf6=\E[R, kf7=\E[S, kf8=\E[T,
- kf9=\E[U, khome=\E[H, kich1=\E[@, knp=\E[G, kpp=\E[I,
- rmsc=\E[50;0|$<400>, smsc=\E[?11l\E[50;1|$<250>,
- xoffc=g, xonc=e, use=att605,
+ kf9=\E[U, knp=\E[G, kpp=\E[I, rmsc=\E[50;0|$<400>,
+ smsc=\E[?11l\E[50;1|$<250>, xoffc=g, xonc=e, use=att605,
att605-w|AT&T 605-w 132 column 102 key keyboard,
cols#132, wsl#132,
is1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h\E(B\E)0, use=att605,
@@ -13897,32 +14435,28 @@ att610|AT&T 610; 80 column; 98key keyboard,
am, eslok, hs, mir, msgr, xenl, xon,
cols#80, it#8, lh#2, lines#24, lw#8, nlab#8, wsl#80,
acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
- cr=\r, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
- flash=\E[?5h$<200>\E[?5l, fsl=\E8, home=\E[H, ht=^I,
- ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED,
- invis=\E[8m,
+ bel=^G, cbt=\E[Z, cr=\r, cub1=^H, cvvis=\E[?12;25h,
+ dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, el1=\E[1K,
+ flash=\E[?5h$<200>\E[?5l, fsl=\E8, ht=^I, ich=\E[%p1%d@,
+ ind=\ED,
is1=\E[8;0|\E[?3;4;5;13;15l\E[13;20l\E[?7h\E[12h\E(B\E)0,
- is2=\E[m\017, is3=\E(B\E)0, kLFT=\E[ @, kRIT=\E[ A, kbs=^H,
- kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kf1=\EOc, kf10=\ENp, kf11=\ENq, kf12=\ENr,
- kf13=\ENs, kf14=\ENt, kf2=\EOd, kf3=\EOe, kf4=\EOf, kf5=\EOg,
- kf6=\EOh, kf7=\EOi, kf8=\EOj, kf9=\ENo, khome=\E[H,
+ is2=\E[m\017, is3=\E(B\E)0, kLFT=\E[ @, kRIT=\E[ A,
+ kcbt=\E[Z, kclr=\E[2J, kf1=\EOc, kf10=\ENp, kf11=\ENq,
+ kf12=\ENr, kf13=\ENs, kf14=\ENt, kf2=\EOd, kf3=\EOe,
+ kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj, kf9=\ENo,
kind=\E[S, kri=\E[T, ll=\E[24H, mc4=\E[?4i, mc5=\E[?5i,
nel=\EE,
pfx=\E[%p1%d;%p2%l%02dq F%p1%1d %p2%s,
- pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8, rev=\E[7m,
- ri=\EM, rmacs=^O, rmam=\E[?7l, rmir=\E[4l, rmln=\E[2p,
- rmso=\E[m, rmul=\E[m, rs2=\Ec\E[?3l, sc=\E7,
+ pln=\E[%p1%d;0;0;0q%p2%:-16.16s, ri=\EM, rmacs=^O,
+ rmam=\E[?7l, rmir=\E[4l, rmln=\E[2p, rs2=\Ec\E[?3l,
sgr=\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1
%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
- smln=\E[p, smso=\E[7m, smul=\E[4m, tsl=\E7\E[25;%i%p1%dx,
- use=ecma+index, use=att610+cvis0,
+ smln=\E[p, tsl=\E7\E[25;%i%p1%dx, use=ansi+arrows,
+ use=ansi+csr, use=ansi+cup, use=ansi+erase, use=ansi+idl,
+ use=ansi+local, use=ansi+sgrbold, use=decid+cpr,
+ use=ecma+index, use=att610+cvis,
+
att610-w|AT&T 610; 132 column; 98key keyboard,
cols#132, wsl#132,
is1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h,
@@ -13972,39 +14506,36 @@ att620|AT&T 620; 80 column; 98key keyboard,
am, eslok, hs, mir, msgr, xenl, xon,
cols#80, it#8, lh#2, lines#24, lw#8, nlab#8, wsl#80,
acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
- cr=\r, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
- flash=\E[?5h$<200>\E[?5l, fsl=\E8, home=\E[H, ht=^I,
- ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED,
- invis=\E[8m,
+ bel=^G, cbt=\E[Z, cr=\r, cub1=^H, cvvis=\E[?12;25h,
+ dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, el1=\E[1K,
+ flash=\E[?5h$<200>\E[?5l, fsl=\E8, ht=^I, ich=\E[%p1%d@,
+ ind=\ED,
is1=\E[8;0|\E[?3;4;5;13;15l\E[13;20l\E[?7h\E[12h,
- is2=\E[m\017, is3=\E(B\E)0, kLFT=\E[ A, kRIT=\E[ @, kbs=^H,
- kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kf1=\EOc, kf10=\ENp, kf11=\ENq, kf12=\ENr,
- kf13=\ENs, kf14=\ENt, kf15=\EOC, kf16=\EOD, kf17=\EOE,
- kf18=\EOF, kf19=\EOG, kf2=\EOd, kf20=\EOH, kf21=\EOI,
- kf22=\EOJ, kf23=\ENO, kf24=\ENP, kf25=\ENQ, kf26=\ENR,
- kf27=\ENS, kf28=\ENT, kf29=\EOP, kf3=\EOe, kf30=\EOQ,
- kf31=\EOR, kf32=\EOS, kf33=\EOw, kf34=\EOx, kf35=\EOy,
- kf36=\EOm, kf37=\EOt, kf38=\EOu, kf39=\EOv, kf4=\EOf,
- kf40=\EOl, kf41=\EOq, kf42=\EOr, kf43=\EOs, kf44=\EOp,
- kf45=\EOn, kf46=\EOM, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj,
- kf9=\ENo, khome=\E[H, kind=\E[S, kri=\E[T, ll=\E[24H,
+ is2=\E[m\017, is3=\E(B\E)0, kLFT=\E[ A, kRIT=\E[ @,
+ kcbt=\E[Z, kclr=\E[2J, kf1=\EOc, kf10=\ENp, kf11=\ENq,
+ kf12=\ENr, kf13=\ENs, kf14=\ENt, kf15=\EOC, kf16=\EOD,
+ kf17=\EOE, kf18=\EOF, kf19=\EOG, kf2=\EOd, kf20=\EOH,
+ kf21=\EOI, kf22=\EOJ, kf23=\ENO, kf24=\ENP, kf25=\ENQ,
+ kf26=\ENR, kf27=\ENS, kf28=\ENT, kf29=\EOP, kf3=\EOe,
+ kf30=\EOQ, kf31=\EOR, kf32=\EOS, kf33=\EOw, kf34=\EOx,
+ kf35=\EOy, kf36=\EOm, kf37=\EOt, kf38=\EOu, kf39=\EOv,
+ kf4=\EOf, kf40=\EOl, kf41=\EOq, kf42=\EOr, kf43=\EOs,
+ kf44=\EOp, kf45=\EOn, kf46=\EOM, kf5=\EOg, kf6=\EOh,
+ kf7=\EOi, kf8=\EOj, kf9=\ENo, kind=\E[S, kri=\E[T, ll=\E[24H,
mc4=\E[?4i, mc5=\E[?5i, nel=\EE,
pfx=\E[%p1%d;%p2%l%02dq F%p1%1d %p2%s,
- pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8, rev=\E[7m,
- ri=\EM, rmacs=\E(B\017, rmam=\E[?7l, rmir=\E[4l,
- rmln=\E[2p, rmso=\E[m, rmul=\E[m, rs2=\Ec\E[?3l, sc=\E7,
+ pln=\E[%p1%d;0;0;0q%p2%:-16.16s, ri=\EM,
+ rmacs=\E(B\017, rmam=\E[?7l, rmir=\E[4l, rmln=\E[2p,
+ rs2=\Ec\E[?3l,
sgr=\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1
%|%t;7%;%?%p7%t;8%;m%?%p9%t\E)0\016%e\E(B\017%;,
sgr0=\E[m\E(B\017, smacs=\E)0\016, smam=\E[?7h,
- smir=\E[4h, smln=\E[p, smso=\E[7m, smul=\E[4m,
- tsl=\E7\E[25;%i%p1%dx, use=ecma+index,
- use=att610+cvis0,
+ smir=\E[4h, smln=\E[p, tsl=\E7\E[25;%i%p1%dx,
+ use=ansi+arrows, use=ansi+csr, use=ansi+cup,
+ use=ansi+erase, use=ansi+idl, use=ansi+local,
+ use=ansi+sgrbold, use=decid+cpr, use=ecma+index,
+ use=att610+cvis,
+
att620-w|AT&T 620; 132 column; 98key keyboard,
cols#132, wsl#132,
is1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h,
@@ -14045,25 +14576,22 @@ att620-103k-w|AT&T 620; 132 column; 103key keyboard,
att630|AT&T 630 windowing terminal,
OTbs, am, da, db, mir, msgr, npc, xon,
cols#80, it#8, lines#60, lm#0,
- bel=^G, blink=\E[5m, cbt=\E[Z, clear=\E[H\E[J, cr=\r,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
- dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K,
- el1=\E[1K, home=\E[H, ht=^I, ich=\E[%p1%d@, ich1=\E[@,
- il=\E[%p1%dL, il1=\E[L, ind=\ED, is2=\E[m, kbs=^H, kcbt=\E[Z,
- kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=\E[P, kdl1=\E[M, kent=\r, kf10=\ENp, kf11=\ENq,
- kf12=\ENr, kf13=\ENs, kf14=\ENt, kf15=\ENu, kf16=\ENv,
- kf17=\ENw, kf18=\ENx, kf19=\ENy, kf20=\ENz, kf21=\EN{,
- kf22=\EN|, kf23=\EN}, kf24=\EN~, kf9=\ENo, khome=\E[H,
- kich1=\E[@, kil1=\E[L, mc4=\E[?4i, mc5=\E[?5i, nel=\r\n,
+ bel=^G, blink=\E[5m, cbt=\E[Z, cr=\r, cub1=^H,
+ cup=\E[%i%p1%d;%p2%dH, dim=\E[2m, el1=\E[1K, home=\E[H,
+ ht=^I, ind=\ED, is2=\E[m, kcbt=\E[Z, kclr=\E[2J, kdch1=\E[P,
+ kdl1=\E[M, kent=\r, kf10=\ENp, kf11=\ENq, kf12=\ENr,
+ kf13=\ENs, kf14=\ENt, kf15=\ENu, kf16=\ENv, kf17=\ENw,
+ kf18=\ENx, kf19=\ENy, kf20=\ENz, kf21=\EN{, kf22=\EN|,
+ kf23=\EN}, kf24=\EN~, kf9=\ENo, kich1=\E[@, kil1=\E[L,
+ mc4=\E[?4i, mc5=\E[?5i, nel=\r\n,
pfx=\E[%p1%d;%p2%l%dq%p2%s, rc=\E8, rev=\E[7m, ri=\EM,
- rmir=\E[4l, rmso=\E[m, rmul=\E[m, rs2=\Ec, sc=\E7,
+ rmso=\E[m, rmul=\E[m, rs2=\Ec, sc=\E7,
sgr=\E[0%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%p4%|%t;7
%;m,
- sgr0=\E[m, smir=\E[4h, smso=\E[7m, smul=\E[4m,
- use=ecma+index,
+ sgr0=\E[m, smso=\E[7m, smul=\E[4m, use=ansi+arrows,
+ use=ansi+cpr, use=ansi+erase, use=ansi+idc, use=ansi+idl,
+ use=ansi+local, use=ecma+index,
+
att630-24|5630-24|5630DMD-24|630MTG-24|AT&T 630 windowing terminal 24 lines,
lines#24, use=att630,
@@ -14146,44 +14674,39 @@ att630-24|5630-24|5630DMD-24|630MTG-24|AT&T 630 windowing terminal 24 lines,
#
att700|AT&T 700 24x80 column display w/102key keyboard,
am, eslok, hs, mir, msgr, xenl, xon,
- cols#80, it#8, lh#2, lines#24, lw#8, nlab#8, wsl#80,
+ cols#80, lh#2, lines#24, lw#8, nlab#8, wsl#80,
acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
- cr=\r, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+ bel=^G, cr=\r, cub1=^H, cup=\E[%i%p1%d;%p2%dH,
cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
- enacs=\E(B\E)0, flash=\E[?5h$<200>\E[?5l, fln=4\,4,
- fsl=\E8, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
- il=\E[%p1%dL, il1=\E[L, ind=\ED, invis=\E[8m,
+ el1=\E[1K, enacs=\E(B\E)0, flash=\E[?5h$<200>\E[?5l,
+ fln=4\,4, fsl=\E8, home=\E[H, ich=\E[%p1%d@, ind=\ED,
is2=\E[50;4|\E[53;0|\E[8;0|\E[?4;13;15l\E[13;20l\E[?7h\E[12h
\E(B\E)0\E[?31l\E[0m\017,
- is3=\E(B\E)0, kLFT=\E[ A, kRIT=\E[ @, kbs=^H, kcbt=\E[Z,
- kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=\E[P, kdl1=\E[M, kend=\E[24;1H, kf1=\EOc, kf10=\ENp,
- kf11=\ENq, kf12=\ENr, kf13=\ENs, kf14=\ENt, kf15=\EOC,
- kf16=\EOD, kf17=\EOE, kf18=\EOF, kf19=\EOG, kf2=\EOd,
- kf20=\EOH, kf21=\EOI, kf22=\EOJ, kf23=\ENO, kf24=\ENP,
- kf25=\ENQ, kf26=\ENR, kf27=\ENS, kf28=\ENT, kf29=\EOq,
- kf3=\EOe, kf30=\EOr, kf31=\EOs, kf32=\EOt, kf33=\EOu,
- kf34=\EOv, kf35=\EOw, kf36=\EOx, kf37=\EOy, kf38=\EOu,
- kf39=\EOv, kf4=\EOf, kf40=\EOl, kf41=\EOq, kf42=\EOr,
- kf43=\EOs, kf44=\EOp, kf45=\EOn, kf46=\EOM, kf5=\EOg,
- kf6=\EOh, kf7=\EOi, kf8=\EOj, kf9=\ENo, khome=\E[H,
- kich1=\E[@, kil1=\E[L, knp=\E[U, kpp=\E[V, ll=\E[24H,
- mc0=\E[i, mc4=\E[?4i, mc5=\E[?5i, nel=\EE,
+ is3=\E(B\E)0, kLFT=\E[ A, kRIT=\E[ @, kcbt=\E[Z,
+ kclr=\E[2J, kdch1=\E[P, kdl1=\E[M, kend=\E[24;1H, kf1=\EOc,
+ kf10=\ENp, kf11=\ENq, kf12=\ENr, kf13=\ENs, kf14=\ENt,
+ kf15=\EOC, kf16=\EOD, kf17=\EOE, kf18=\EOF, kf19=\EOG,
+ kf2=\EOd, kf20=\EOH, kf21=\EOI, kf22=\EOJ, kf23=\ENO,
+ kf24=\ENP, kf25=\ENQ, kf26=\ENR, kf27=\ENS, kf28=\ENT,
+ kf29=\EOq, kf3=\EOe, kf30=\EOr, kf31=\EOs, kf32=\EOt,
+ kf33=\EOu, kf34=\EOv, kf35=\EOw, kf36=\EOx, kf37=\EOy,
+ kf38=\EOu, kf39=\EOv, kf4=\EOf, kf40=\EOl, kf41=\EOq,
+ kf42=\EOr, kf43=\EOs, kf44=\EOp, kf45=\EOn, kf46=\EOM,
+ kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj, kf9=\ENo, kich1=\E[@,
+ kil1=\E[L, knp=\E[U, kpp=\E[V, ll=\E[24H, nel=\EE,
pfx=\E[%p1%d;%p2%l%02dq%?%p1%{9}%<%t\s\s\sF%p1%1d\s\s\s\s\s
\s\s\s\s\s\s%;%p2%s,
- pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8, rev=\E[7m,
- ri=\EM, rmacs=^O, rmir=\E[4l, rmln=\E[2p, rmso=\E[27m,
- rmul=\E[24m, rmxon=\E[53;3|, rs1=\Ec\E[?3;5l\E[56;0|,
- sc=\E7,
+ pln=\E[%p1%d;0;0;0q%p2%:-16.16s, ri=\EM, rmacs=^O,
+ rmir=\E[4l, rmln=\E[2p, rmso=\E[27m, rmul=\E[24m,
+ rmxon=\E[53;3|, rs1=\Ec\E[?3;5l\E[56;0|,
sgr=\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1
%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smir=\E[4h, smln=\E[p, smso=\E[7m,
- smul=\E[4m, smxon=\E[53;0|, tbc=\E[3g,
- tsl=\E7\E[99;%i%p1%dx, use=ansi+rep, use=att610+cvis0,
+ sgr0=\E[m\017, smacs=^N, smir=\E[4h, smln=\E[p,
+ smxon=\E[53;0|, tsl=\E7\E[99;%i%p1%dx, use=ansi+arrows,
+ use=ansi+csr, use=ansi+erase, use=ansi+idl,
+ use=ansi+inittabs, use=ansi+local, use=ansi+rep,
+ use=ansi+sgrbold, use=decid+cpr, use=dec+pp,
+ use=att610+cvis0,
# This entry was modified 3/13/90 by JWE.
# fixes include additions of <enacs>, correcting <rep>, and modification
@@ -14202,53 +14725,49 @@ att730|AT&T 730 windowing terminal,
am, da, db, eslok, hs, mir, msgr, npc, xenl, xon,
cols#80, it#8, lh#2, lines#60, lm#0, lw#8, nlab#24, wsl#80,
acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
- cr=\r, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
- enacs=\E(B\E)0, flash=\E[?5h$<200>\E[?5l, fsl=\E8,
- home=\E[H, ht=^I, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L,
- ind=\ED, invis=\E[8m,
+ bel=^G, cbt=\E[Z, cr=\r, cub1=^H, dch=\E[%p1%dP, dch1=\E[P,
+ dim=\E[2m, el1=\E[1K, enacs=\E(B\E)0,
+ flash=\E[?5h$<200>\E[?5l, fsl=\E8, ht=^I, ich=\E[%p1%d@,
+ ind=\ED,
is1=\E[8;0|\E[?3;4;5;13;15l\E[13;20l\E[?7h\E[12h\E(B\E)B,
- is2=\E[m\017, is3=\E(B\E)0, kLFT=\E[ @, kRIT=\E[ A, kbs=^H,
- kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kf1=\EOc, kf10=\ENp, kf11=\ENq, kf12=\ENr,
- kf13=\ENs, kf14=\ENt, kf15=\ENu, kf16=\ENv, kf17=\ENw,
- kf18=\ENx, kf19=\ENy, kf2=\EOd, kf20=\ENz, kf21=\EN{,
- kf22=\EN|, kf23=\EN}, kf24=\EN~, kf25=\EOC, kf26=\EOD,
- kf27=\EOE, kf28=\EOF, kf29=\EOG, kf3=\EOe, kf30=\EOH,
- kf31=\EOI, kf32=\EOJ, kf33=\ENO, kf34=\ENP, kf35=\ENQ,
- kf36=\ENR, kf37=\ENS, kf38=\ENT, kf39=\EOU, kf4=\EOf,
- kf40=\EOV, kf41=\EOW, kf42=\EOX, kf43=\EOY, kf44=\EOZ,
- kf45=\EO[, kf46=\EO\s, kf47=\EO], kf48=\EO\^, kf5=\EOg,
- kf6=\EOh, kf7=\EOi, kf8=\EOj, kf9=\ENo, khome=\E[H,
- kich1=\E[@, kil1=\E[L, kind=\E[S, kri=\E[T,
- mc0=\E[?19h\E[0i, mc4=\E[?4i, mc5=\E[?5i, nel=\EE,
+ is2=\E[m\017, is3=\E(B\E)0, kLFT=\E[ @, kRIT=\E[ A,
+ kcbt=\E[Z, kclr=\E[2J, kf1=\EOc, kf10=\ENp, kf11=\ENq,
+ kf12=\ENr, kf13=\ENs, kf14=\ENt, kf15=\ENu, kf16=\ENv,
+ kf17=\ENw, kf18=\ENx, kf19=\ENy, kf2=\EOd, kf20=\ENz,
+ kf21=\EN{, kf22=\EN|, kf23=\EN}, kf24=\EN~, kf25=\EOC,
+ kf26=\EOD, kf27=\EOE, kf28=\EOF, kf29=\EOG, kf3=\EOe,
+ kf30=\EOH, kf31=\EOI, kf32=\EOJ, kf33=\ENO, kf34=\ENP,
+ kf35=\ENQ, kf36=\ENR, kf37=\ENS, kf38=\ENT, kf39=\EOU,
+ kf4=\EOf, kf40=\EOV, kf41=\EOW, kf42=\EOX, kf43=\EOY,
+ kf44=\EOZ, kf45=\EO[, kf46=\EO\s, kf47=\EO], kf48=\EO\^,
+ kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj, kf9=\ENo, kich1=\E[@,
+ kil1=\E[L, kind=\E[S, kri=\E[T, mc0=\E[?19h\E[0i, nel=\EE,
pfx=\E[%?%p1%{25}%<%t%p1%e%p1%{24}%-%;%d;%p2%l%02d%?%p1%{25}
%<%tq\s\s\sSYS\s\s\s\s\sF%p1%:-2d\s\s%e;0;3q%;%p2%s,
pfxl=\E[%p1%d;%p2%l%02d;0;0q%p3%:-16.16s%p2%s,
- pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8, rev=\E[7m,
- ri=\EM, rmacs=^O, rmam=\E[?7l, rmir=\E[4l, rmln=\E[?13h,
- rmso=\E[27m, rmul=\E[24m, rmxon=\E[?21l, rs2=\Ec\E[?3l,
- sc=\E7,
+ pln=\E[%p1%d;0;0;0q%p2%:-16.16s, ri=\EM, rmacs=^O,
+ rmam=\E[?7l, rmir=\E[4l, rmln=\E[?13h, rmso=\E[27m,
+ rmul=\E[24m, rmxon=\E[?21l, rs2=\Ec\E[?3l,
sgr=\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1
%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
- smln=\E[?13l, smso=\E[7m, smul=\E[4m, smxon=\E[?21h,
- swidm=\E#6, tsl=\E7\E[;%i%p1%dx, use=ansi+rep,
- use=att610+cvis0,
-att730-41|730MTG-41|AT&T 730-41 windowing terminal Version,
+ smln=\E[?13l, smxon=\E[?21h, swidm=\E#6,
+ tsl=\E7\E[;%i%p1%dx, use=ansi+arrows, use=ansi+csr,
+ use=ansi+cup, use=ansi+erase, use=ansi+idl,
+ use=ansi+local, use=ansi+rep, use=ansi+sgrbold,
+ use=decid+cpr, use=dec+pp, use=att610+cvis,
+
+# "MGT" is "Multi-Tasking Graphics Terminal"
+att730-41|730MTG-41|AT&T 730-41 windowing terminal,
lines#41, use=att730,
-att730-24|730MTG-24|AT&T 730-24 windowing terminal Version,
+att730-24|730MTG-24|AT&T 730-24 windowing terminal,
lines#24, use=att730,
-att730r|730MTGr|AT&T 730 rev video windowing terminal Version,
+att730r|730MTGr|AT&T 730 rev video windowing terminal,
flash=\E[?5l$<200>\E[?5h,
is1=\E[8;0|\E[?3;4;13;15l\E[?5h\E[13;20l\E[?7h\E[12h\E(B\E)B, use=att730,
-att730r-41|730MTG-41r|AT&T 730r-41 rev video windowing terminal Version,
+att730r-41|730MTG-41r|AT&T 730r-41 rev video windowing terminal,
lines#41, use=att730r,
-att730r-24|730MTGr-24|AT&T 730r-24 rev video windowing terminal Version,
+att730r-24|730MTGr-24|AT&T 730r-24 rev video windowing terminal,
lines#24, use=att730r,
# The following represents the screen layout along with the associated
@@ -14418,12 +14937,9 @@ att505|pt505|att5430|gs5430|AT&T Personal Terminal 505 or 5430 GETSET terminal,
cols#80, it#8, lines#24,
acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[2J\E[H,
- cnorm=\E[>l, cr=\r, cub=\E[%p1%dD, cub1=\E[D,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[>h, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
- dl1=\E[M, ed=\E[0J, el=\E[0K, el1=\E[2K, home=\E[H, ht=^I,
- il=\E[%p1%dL, il1=\E[L, ind=\n,
+ cnorm=\E[>l, cr=\r, cup=\E[%p1%d;%p2%dH, cvvis=\E[>h,
+ dch=\E[%p1%dP, dch1=\E[P, ed=\E[0J, el=\E[0K, el1=\E[2K,
+ home=\E[H, ht=^I, ind=\n,
is1=\EPr\\E[0u\E[2J\E[0;0H\E[m\E[3l\E[<l\E[4l\E[>l\E[=l\E[?l,
kbs=^H, kcmd=\E!, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
kcuu1=\E[A, kf0=\E[00s, kf1=\E[01s, kf18=\E[18s,
@@ -14434,13 +14950,14 @@ att505|pt505|att5430|gs5430|AT&T Personal Terminal 505 or 5430 GETSET terminal,
rmacs=\E[10m, rmam=\E[11;1j, rmir=\E[4l, rmso=\E[m,
rmul=\E[m, rs1=\Ec, sc=\E7, sgr0=\E[m, smacs=\E[11m,
smam=\E[11;0j, smir=\E[4h, smso=\E[1m, smul=\E[4m,
+ use=ansi+cpr, use=ansi+idl, use=ansi+local,
# The following Terminfo entry describes functions which are supported by
# the AT&T 5430/pt505 terminal software version 1.
att505-24|pt505-24|gs5430-24|AT&T PT505 or 5430 GETSET version 1 24 lines,
lines#24,
mc4@, mc5@, rc@, rmam@, sc@, smam@, use=att505,
-tt505-22|pt505-22|gs5430-22|AT&T PT505 or 5430 GETSET version 1 22 lines,
+att505-22|pt505-22|gs5430-22|AT&T PT505 or 5430 GETSET version 1 22 lines,
lines#22, use=att505,
#
#### ------------------ TERMINFO FILE CAN BE SPLIT HERE ---------------------
@@ -14458,7 +14975,7 @@ tt505-22|pt505-22|gs5430-22|AT&T PT505 or 5430 GETSET version 1 22 lines,
# From: <cbosg!ucbvax!SRC:george> Fri Sep 11 22:38:32 1981
# (ampex80: some capabilities merged in from SCO's entry -- esr)
-ampex80|a80|d80|dialogue|dialogue80|ampex dialogue 80,
+ampex80|a80|d80|dialogue|dialogue80|Ampex dialogue 80,
OTbs, am, bw, ul,
cols#80, it#8, lines#24,
bel=^G, cbt=\EI, clear=\E*$<75>, cr=\r, cub1=^H, cud1=\n,
@@ -14467,7 +14984,7 @@ ampex80|a80|d80|dialogue|dialogue80|ampex dialogue 80,
ich1=\EQ, il1=\EE$<5*>, ind=\n, is2=\EA, rmso=\Ek, rmul=\Em,
smso=\Ej, smul=\El, tbc=\E3,
# This entry was from somebody anonymous, Tue Aug 9 20:11:37 1983, who wrote:
-ampex175|ampex d175,
+ampex175|Ampex d175,
am,
cols#80, lines#24,
bel=^G, clear=\E+, cr=\r, cub1=^H, cud1=\n, cuf1=^L,
@@ -14482,11 +14999,11 @@ ampex175|ampex d175,
# mode), this key can be used as the erase key; I find I like this. Because
# some people and some systems may not, there is another termcap ("ampex175")
# that suppresses this little eccentricity by omitting the relevant capability.
-ampex175-b|ampex d175 using left arrow for erase,
+ampex175-b|Ampex d175 using left arrow for erase,
kbs=^_, use=ampex175,
# From: Richard Bascove <atd!dsd!rcb@ucbvax.berkeley.edu>
# (ampex210: removed obsolete ":kn#10:" -- esr)
-ampex210|a210|ampex a210,
+ampex210|a210|Ampex a210,
OTbs, am, hs, xenl,
cols#80, it#8, lines#24, xmc#1,
cbt=\EI, clear=\E*, cub1=^H, cuf1=^L,
@@ -14502,7 +15019,7 @@ ampex210|a210|ampex a210,
# (ampex219: I added <rmam>/<smam> based on the init string, added <cvvis>
# from ampex219w, added <cnorm>=\E[?3l, irresistibly suggested by <cvvis>,
# and moved the padding to be *after* the caps -- esr)
-ampex219|ampex-219|amp219|Ampex with Automargins,
+ampex219|ampex-219|amp219|Ampex with automargins,
hs, xenl,
cols#80, it#8, lines#24,
bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>, cbt=\E[Z,
@@ -14519,9 +15036,9 @@ ampex219|ampex-219|amp219|Ampex with Automargins,
rmso=\E[m$<2>, rmul=\E[m$<2>, sgr0=\E[m$<2>, smam=\E[?7h,
smkx=\E=, smso=\E[7m$<2>, smul=\E[4m$<2>,
ampex219w|ampex-219w|amp219w|Ampex 132 cols,
- cols#132, lines#24,
- bel=^G, cr=\r, cud1=\n, ind=\n,
- is2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h, use=ampex219,
+ cols#132,
+ cud1=\n, is2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h,
+ use=ampex219,
# (ampex232: removed <if=/usr/share/tabset/ampex>, no file and no <hts> --esr)
ampex232|ampex-232|Ampex Model 232,
am,
@@ -14536,7 +15053,7 @@ ampex232|ampex-232|Ampex Model 232,
kf9=^AI\r, khome=^^, use=adm+sgr,
# (ampex: removed <if=/usr/share/tabset/amp-132>, no file and no <hts> -- esr)
ampex232w|Ampex Model 232 / 132 columns,
- cols#132, lines#24,
+ cols#132,
is2=\E\034Eg\El, use=ampex232,
#### Ann Arbor (aa)
@@ -14667,7 +15184,7 @@ ampex232w|Ampex Model 232 / 132 columns,
# unused
#
-annarbor4080|aa4080|ann arbor 4080,
+annarbor4080|aa4080|Ann Arbor 4080,
OTbs, am,
cols#80, lines#40,
bel=^G, clear=\014$<2>, cr=\r, cub1=^H, cud1=\n, cuf1=^_,
@@ -14693,86 +15210,83 @@ aas1901|Ann Arbor K4080 w/S1901 mod,
# 3. Number of lines below (outside of) desired scroll region.
# 4. Total number of lines on the screen, the same as the first parameter.
# The generic Ann Arbor entry is the only one that uses this.
-aaa+unk|aaa-unk|ann arbor ambassador (internal - don't use this directly),
+aaa+unk|aaa-unk|Ann Arbor Ambassador (internal - don't use this directly),
OTbs, am, km, mc5i, mir, xon,
- cols#80, it#8,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
- clear=\E[H\E[J$<156>, cr=\r, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^K, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
- el=\E[K$<5>, home=\E[H, hpa=\E[%p1%{1}%+%dG, ht=^I,
- hts=\EH, ich=\E[%p1%d@$<4*>, ich1=\E[@$<4>, il=\E[%p1%dL,
- il1=\E[L$<3>, ind=^K, invis=\E[8m, is1=\E[m\E7\E[H\E9\E8,
- is3=\E[1Q\E[>20;30l\EP`+x~M\E\\, kbs=^H, kcbt=\E[Z,
- kclr=\E[J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+ cols#80,
+ bel=^G, clear=\E[H\E[J$<156>, cr=\r, cub1=^H, cud1=^K,
+ cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\E[P, ed=\E[J,
+ el=\E[K$<5>, home=\E[H, hpa=\E[%p1%{1}%+%dG,
+ ich=\E[%p1%d@$<4*>, ich1=\E[@$<4>, il1=\E[L$<3>, ind=^K,
+ is1=\E[m\E7\E[H\E9\E8,
+ is3=\E[1Q\E[>20;30l\EP`+x~M\E\\, kcbt=\E[Z, kclr=\E[J,
kdch1=\E[P, kdl1=\E[M, kf1=\EOA, kf10=\EOJ, kf11=\EOK,
kf12=\EOL, kf13=\EOM, kf14=\EON, kf15=\EOO, kf16=\EOP,
kf17=\EOQ, kf18=\EOR, kf19=\EOS, kf2=\EOB, kf20=\EOT,
kf21=\EOU, kf22=\EOV, kf23=\EOW, kf24=\EOX, kf3=\EOC,
kf4=\EOD, kf5=\EOE, kf6=\EOF, kf7=\EOG, kf8=\EOH, kf9=\EOI,
- khome=\E[H, kich1=\E[@, kil1=\E[L, krmir=\E6, mc0=\E[0i,
- mc4=^C, mc5=\E[v, mc5p=\E[%p1%dv, rc=\E8, rev=\E[7m,
+ kich1=\E[@, kil1=\E[L, krmir=\E6, mc0=\E[0i, mc4=^C,
+ mc5=\E[v, mc5p=\E[%p1%dv, rc=\E8,
rmkx=\EP`>y~[[J`8xy~[[A`4xy~[[D`6xy~[[C`2xy~[[B\E
\\,
- rmm=\E[>52l, rmso=\E[m, rmul=\E[m, sc=\E7,
+ rmm=\E[>52l, sc=\E7,
sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;
%;%?%p7%t8;%;m,
sgr0=\E[m,
smkx=\EP`>z~[[J`8xz~[[A`4xz~[[D`6xz~[[C`2xz~[[B\E
\\,
- smm=\E[>52h, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
- vpa=\E[%p1%{1}%+%dd, use=ansi+rep,
+ smm=\E[>52h, vpa=\E[%p1%{1}%+%dd, use=ansi+arrows,
+ use=ansi+idl, use=ansi+inittabs, use=ansi+local,
+ use=ansi+rep, use=ansi+sgrbold,
-aaa+rv|ann arbor ambassador in reverse video,
+aaa+rv|Ann Arbor Ambassador in reverse video,
blink=\E[5;7m, bold=\E[1;7m, invis=\E[7;8m,
is1=\E[7m\E7\E[H\E9\E8, rev=\E[m, rmso=\E[7m, rmul=\E[7m,
rs1=\E[H\E[7m\E[J$<156>,
sgr=\E[%?%p2%t4;%;%?%p4%t5;%;%?%p6%t1;%;%?%p1%p2%|%p3%!%|%t7
;%;%?%p7%t8;%;m\016,
sgr0=\E[7m\016, smso=\E[m, smul=\E[4;7m,
-# Ambassador with the DEC option, for partial vt100 compatibility.
-aaa+dec|ann arbor ambassador in dec vt100 mode,
+# Ambassador with the DEC option, for partial VT100 compatibility.
+aaa+dec|Ann Arbor Ambassador in DEC VT100 mode,
acsc=aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}},
- csr=\E[%i%p1%d;%p2%dr, enacs=\E(0, rmacs=^N,
+ csr=\E[%i%p1%d;%p2%dr, enacs=\E(B\E)0, rmacs=^O,
sgr=\E[%?%p2%t4;%;%?%p4%t5;%;%?%p6%t1;%;%?%p1%p3%|%!%t7;%;%?
- %p7%t8;%;m%?%p9%t\017%e\016%;,
- smacs=^O,
-aaa-18|ann arbor ambassador/18 lines,
+ %p7%t8;%;m%?%p9%t\016%e\017%;,
+ smacs=^N,
+aaa-18|Ann Arbor Ambassador/18 lines,
lines#18,
is2=\E7\E[60;0;0;18p\E8,
rmcup=\E[60;0;0;18p\E[60;1H\E[K, smcup=\E[18;0;0;18p,
use=aaa+unk,
-aaa-18-rv|ann arbor ambassador/18 lines+reverse video,
+aaa-18-rv|Ann Arbor Ambassador/18 lines+reverse video,
use=aaa+rv, use=aaa-18,
-aaa-20|ann arbor ambassador/20 lines,
+aaa-20|Ann Arbor Ambassador/20 lines,
lines#20,
is2=\E7\E[60;0;0;20p\E8,
rmcup=\E[60;0;0;20p\E[60;1H\E[K, smcup=\E[20;0;0;20p,
use=aaa+unk,
-aaa-22|ann arbor ambassador/22 lines,
+aaa-22|Ann Arbor Ambassador/22 lines,
lines#22,
is2=\E7\E[60;0;0;22p\E8,
rmcup=\E[60;0;0;22p\E[60;1H\E[K, smcup=\E[22;0;0;22p,
use=aaa+unk,
-aaa-24|ann arbor ambassador/24 lines,
+aaa-24|Ann Arbor Ambassador/24 lines,
lines#24,
is2=\E7\E[60;0;0;24p\E8,
rmcup=\E[60;0;0;24p\E[60;1H\E[K, smcup=\E[24;0;0;24p,
use=aaa+unk,
-aaa-24-rv|ann arbor ambassador/24 lines+reverse video,
+aaa-24-rv|Ann Arbor Ambassador/24 lines+reverse video,
use=aaa+rv, use=aaa-24,
-aaa-26|ann arbor ambassador/26 lines,
+aaa-26|Ann Arbor Ambassador/26 lines,
lines#26,
is2=\E7\E[60;0;0;26p\E8,
rmcup=\E[60;0;0;26p\E[26;1H\E[K,
smcup=\E[H\E[J$<156>\E[26;0;0;26p, use=aaa+unk,
-aaa-28|ann arbor ambassador/28 lines,
+aaa-28|Ann Arbor Ambassador/28 lines,
lines#28,
is2=\E7\E[60;0;0;28p\E8,
rmcup=\E[60;0;0;28p\E[28;1H\E[K,
smcup=\E[H\E[J$<156>\E[28;0;0;28p, use=aaa+unk,
-aaa-30-s|aaa-s|ann arbor ambassador/30 lines w/status,
+aaa-30-s|aaa-s|Ann Arbor Ambassador/30 lines w/status,
eslok, hs,
lines#29,
dsl=\E7\E[60;0;0;30p\E[1;1H\E[K\E[H\E8\r\n\E[K,
@@ -14780,76 +15294,76 @@ aaa-30-s|aaa-s|ann arbor ambassador/30 lines w/status,
rmcup=\E[60;1;0;30p\E[29;1H\E[K,
smcup=\E[H\E[J$<156>\E[30;1;0;30p\E[30;1H\E[K,
tsl=\E[>51h\E[1;%p1%dH\E[2K, use=aaa+unk,
-aaa-30-s-rv|aaa-s-rv|ann arbor ambassador/30 lines+status+reverse video,
+aaa-30-s-rv|aaa-s-rv|Ann Arbor Ambassador/30 lines+status+reverse video,
use=aaa+rv, use=aaa-30-s,
-aaa-s-ctxt|aaa-30-s-ctxt|ann arbor ambassador/30 lines+status+save context,
+aaa-s-ctxt|aaa-30-s-ctxt|Ann Arbor Ambassador/30 lines+status+save context,
rmcup=\E[60;1;0;30p\E[59;1H\E[K,
smcup=\E[30;1H\E[K\E[30;1;0;30p, use=aaa-30-s,
-aaa-s-rv-ctxt|aaa-30-s-rv-ct|ann arbor ambassador/30 lines+status+save context+reverse video,
+aaa-s-rv-ctxt|aaa-30-s-rv-ct|Ann Arbor Ambassador/30 lines+status+save context+reverse video,
rmcup=\E[60;1;0;30p\E[59;1H\E[K,
smcup=\E[30;1H\E[K\E[30;1;0;30p, use=aaa-30-s-rv,
-aaa|aaa-30|ambas|ambassador|ann arbor ambassador/30 lines,
+aaa|aaa-30|ambas|ambassador|Ann Arbor Ambassador/30 lines,
lines#30,
is2=\E7\E[60;0;0;30p\E8,
rmcup=\E[60;0;0;30p\E[30;1H\E[K,
smcup=\E[H\E[J$<156>\E[30;0;0;30p, use=aaa+unk,
-aaa-30-rv|aaa-rv|ann arbor ambassador/30 lines in reverse video,
+aaa-30-rv|aaa-rv|Ann Arbor Ambassador/30 lines in reverse video,
use=aaa+rv, use=aaa-30,
-aaa-30-ctxt|aaa-ctxt|ann arbor ambassador/30 lines; saving context,
+aaa-30-ctxt|aaa-ctxt|Ann Arbor Ambassador/30 lines; saving context,
rmcup=\E[60;0;0;30p\E[60;1H\E[K, smcup=\E[30;0;0;30p,
use=aaa-30,
-aaa-30-rv-ctxt|aaa-rv-ctxt|ann arbor ambassador/30 lines reverse video; saving context,
+aaa-30-rv-ctxt|aaa-rv-ctxt|Ann Arbor Ambassador/30 lines reverse video; saving context,
rmcup=\E[60;0;0;30p\E[60;1H\E[K, smcup=\E[30;0;0;30p,
use=aaa+rv, use=aaa-30,
-aaa-36|ann arbor ambassador/36 lines,
+aaa-36|Ann Arbor Ambassador/36 lines,
lines#36,
is2=\E7\E[60;0;0;36p\E8,
rmcup=\E[60;0;0;36p\E[36;1H\E[K,
smcup=\E[H\E[J$<156>\E[36;0;0;36p, use=aaa+unk,
-aaa-36-rv|ann arbor ambassador/36 lines+reverse video,
+aaa-36-rv|Ann Arbor Ambassador/36 lines+reverse video,
use=aaa+rv, use=aaa-36,
-aaa-40|ann arbor ambassador/40 lines,
+aaa-40|Ann Arbor Ambassador/40 lines,
lines#40,
is2=\E7\E[60;0;0;40p\E8,
rmcup=\E[60;0;0;40p\E[40;1H\E[K,
smcup=\E[H\E[J$<156>\E[40;0;0;40p, use=aaa+unk,
-aaa-40-rv|ann arbor ambassador/40 lines+reverse video,
+aaa-40-rv|Ann Arbor Ambassador/40 lines+reverse video,
use=aaa+rv, use=aaa-40,
-aaa-48|ann arbor ambassador/48 lines,
+aaa-48|Ann Arbor Ambassador/48 lines,
lines#48,
is2=\E7\E[60;0;0;48p\E8,
rmcup=\E[60;0;0;48p\E[48;1H\E[K,
smcup=\E[H\E[J$<156>\E[48;0;0;48p, use=aaa+unk,
-aaa-48-rv|ann arbor ambassador/48 lines+reverse video,
+aaa-48-rv|Ann Arbor Ambassador/48 lines+reverse video,
use=aaa+rv, use=aaa-48,
-aaa-60-s|ann arbor ambassador/59 lines+status,
+aaa-60-s|Ann Arbor Ambassador/59 lines+status,
eslok, hs,
lines#59,
dsl=\E7\E[60;0;0;60p\E[1;1H\E[K\E[H\E8\r\n\E[K,
fsl=\E[>51l, is2=\r\n\E[A\E7\E[60;1;0;60p\E8,
tsl=\E[>51h\E[1;%p1%dH\E[2K, use=aaa+unk,
-aaa-60-s-rv|ann arbor ambassador/59 lines+status+reverse video,
+aaa-60-s-rv|Ann Arbor Ambassador/59 lines+status+reverse video,
use=aaa+rv, use=aaa-60-s,
-aaa-60-dec-rv|ann arbor ambassador/dec mode+59 lines+status+rev video,
+aaa-60-dec-rv|Ann Arbor Ambassador/DEC mode+59 lines+status+rev video,
use=aaa+dec, use=aaa+rv, use=aaa-60-s,
-aaa-60|ann arbor ambassador/60 lines,
+aaa-60|Ann Arbor Ambassador/60 lines,
lines#60,
is2=\E7\E[60;0;0;60p\E[1Q\E[m\E[>20;30l\E8,
use=aaa+unk,
-aaa-60-rv|ann arbor ambassador/60 lines+reverse video,
+aaa-60-rv|Ann Arbor Ambassador/60 lines+reverse video,
use=aaa+rv, use=aaa-60,
-aaa-db|ann arbor ambassador 30/destructive backspace,
+aaa-db|Ann Arbor Ambassador 30/destructive backspace,
OTbs@,
cub1=\E[D, is3=\E[1Q\E[m\E[>20l\E[>30h, use=aaa-30,
-guru|guru-33|guru+unk|ann arbor guru/33 lines 80 cols,
+guru|guru-33|guru+unk|Ann Arbor guru/33 lines 80 cols,
lines#33,
flash=\E[>59h$<100>\E[>59l,
is2=\E7\E[255;0;0;33;80;80p\E8\E[J, is3=\E[>59l,
rmcup=\E[255p\E[255;1H\E[K, smcup=\E[33p, use=aaa+unk,
guru+rv|guru changes for reverse video,
flash=\E[>59l$<100>\E[>59h, is3=\E[>59h,
-guru-rv|guru-33-rv|ann arbor guru/33 lines+reverse video,
+guru-rv|guru-33-rv|Ann Arbor guru/33 lines+reverse video,
use=guru+rv, use=guru-33,
guru+s|guru status line,
eslok, hs,
@@ -14858,19 +15372,19 @@ guru+s|guru status line,
tsl=\E[>51h\E[1;%p1%dH\E[2K,
guru-nctxt|guru with no saved context,
smcup=\E[H\E[J$<156>\E[33p\E[255;1H\E[K, use=guru,
-guru-s|guru-33-s|ann arbor guru/33 lines+status,
+guru-s|guru-33-s|Ann Arbor guru/33 lines+status,
lines#32,
is2=\r\n\E[A\E7\E[255;1;0;33;80;80p\E8\E[J,
smcup=\E[33;1p\E[255;1H\E[K, use=guru+s, use=guru+unk,
-guru-24|ann arbor guru 24 lines,
+guru-24|Ann Arbor guru 24 lines,
cols#80, lines#24,
is2=\E7\E[255;0;0;24;80;80p\E8\E[J, smcup=\E[24p,
use=guru+unk,
-guru-44|ann arbor guru 44 lines,
+guru-44|Ann Arbor guru 44 lines,
cols#97, lines#44,
is2=\E7\E[255;0;0;44;97;100p\E8\E[J, smcup=\E[44p,
use=guru+unk,
-guru-44-s|ann arbor guru/44 lines+status,
+guru-44-s|Ann Arbor guru/44 lines+status,
lines#43,
is2=\r\n\E[A\E7\E[255;1;0;44;80;80p\E8\E[J,
smcup=\E[44;1p\E[255;1H\E[K, use=guru+s, use=guru+unk,
@@ -14878,7 +15392,7 @@ guru-76|guru with 76 lines by 89 cols,
cols#89, lines#76,
is2=\E7\E[255;0;0;76;89;100p\E8\E[J, smcup=\E[76p,
use=guru+unk,
-guru-76-s|ann arbor guru/76 lines+status,
+guru-76-s|Ann Arbor guru/76 lines+status,
cols#89, lines#75,
is2=\r\n\E[A\E7\E[255;1;0;76;89;100p\E8\E[J,
smcup=\E[76;1p\E[255;1H\E[K, use=guru+s, use=guru+unk,
@@ -14890,7 +15404,7 @@ guru-76-w|guru 76 lines by 178 cols,
cols#178, lines#76,
is2=\E7\E[255;0;0;76;178;178p\E8\E[J, smcup=\E[76p,
use=guru+unk,
-guru-76-w-s|ann arbor guru/76 lines+status+wide,
+guru-76-w-s|Ann Arbor guru/76 lines+status+wide,
cols#178, lines#75,
is2=\r\n\E[A\E7\E[255;1;0;76;178;178p\E8\E[J,
smcup=\E[76;1p\E[255;1H\E[K, use=guru+s, use=guru+unk,
@@ -14898,7 +15412,7 @@ guru-76-wm|guru 76 lines by 178 cols with 255 cols memory,
cols#178, lines#76,
is2=\E7\E[255;0;0;76;178;255p\E8\E[J, smcup=\E[76p,
use=guru+unk,
-aaa-rv-unk|ann arbor unknown type,
+aaa-rv-unk|Ann Arbor unknown type,
lh#0, lw#0, nlab#0,
blink=\E[5;7m, bold=\E[1;7m, home=\E[H, invis=\E[7;8m,
is1=\E[7m\E7\E[H\E9\E8, rev=\E[m, rmso=\E[7m, rmul=\E[7m,
@@ -14929,14 +15443,14 @@ aaa-rv-unk|ann arbor unknown type,
# Regent: lowest common denominator, works on all regents.
# (regent: renamed ":bc:" to ":le:" -- esr)
-regent|Adds Regent Series,
+regent|ADDS Regent Series,
OTbs, am,
cols#80, lines#24,
bel=^G, clear=^L, cr=\r, cub1=^U, cud1=\n, cuf1=^F, cuu1=^Z,
home=\EY\s\s, ind=\n, ll=^A,
# Regent 100 has a bug where if computer sends escape when user is holding
# down shift key it gets confused, so we avoid escape.
-regent100|Adds Regent 100,
+regent100|ADDS Regent 100,
xmc#1,
bel=^G,
cup=\013%p1%'\s'%+%c\020%p2%{10}%/%{16}%*%p2%{10}%m%+%c,
@@ -14944,23 +15458,23 @@ regent100|Adds Regent 100,
kf5=^B6\r, kf6=^B7\r, kf7=^B8\r, lf0=F1, lf1=F2, lf2=F3,
lf3=F4, lf4=F5, lf5=F6, lf6=F7, lf7=F8, rmso=\E0@, rmul=\E0@,
sgr0=\E0@, smso=\E0P, smul=\E0`, use=regent,
-regent20|Adds Regent 20,
+regent20|ADDS Regent 20,
bel=^G, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, ed=\Ek, el=\EK,
use=regent,
-regent25|Adds Regent 25,
+regent25|ADDS Regent 25,
bel=^G, kcub1=^U, kcud1=\n, kcuf1=^F, kcuu1=^Z, khome=^A,
use=regent20,
-regent40|Adds Regent 40,
+regent40|ADDS Regent 40,
xmc#1,
bel=^G, dl1=\El$<2*>, il1=\EM$<2*>, kf1=^B1\r, kf2=^B2\r,
kf3=^B3\r, kf4=^B4\r, kf5=^B5\r, kf6=^B6\r, kf7=^B7\r,
kf8=^B8\r, lf0=F1, lf1=F2, lf2=F3, lf3=F4, lf4=F5, lf5=F6,
lf6=F7, lf7=F8, rmso=\E0@, rmul=\E0@, sgr0=\E0@, smso=\E0P,
smul=\E0`, use=regent25,
-regent40+|Adds Regent 40+,
+regent40+|ADDS Regent 40+,
is2=\EB, use=regent40,
# It uses a different code for mapping acs vs dim/blink.
-regent60|regent200|adds200|Adds Regent 60,
+regent60|regent200|adds200|ADDS Regent 60,
acsc=jLkDl@mHnhq`tXuTv\\wPxd, dch1=\EE, ed=\Ek,
is2=\EV\EB, kbs=^H, kcbt=\EO, kdch1=\EE, kich1=\EF,
krmir=\EF, rmacs=\E2, rmir=\EF, rmso=\ER\E0@\EV, smacs=\E1,
@@ -14969,7 +15483,7 @@ regent60|regent200|adds200|Adds Regent 60,
use=regent40+,
# From: <edward@onyx.berkeley.edu> Thu Jul 9 09:27:33 1981
# (viewpoint: added <kcuf1>, function key, and <dl1> capabilities -- esr)
-viewpoint|addsviewpoint|adds viewpoint,
+viewpoint|addsviewpoint|ADDS Viewpoint,
OTbs, am,
cols#80, lines#24,
bel=^G, clear=^L, cnorm=\017\E0`, cr=\r, cub1=^H, cud1=\n,
@@ -14979,7 +15493,7 @@ viewpoint|addsviewpoint|adds viewpoint,
kf0=^B1, kf2=^B2, kf3=^B!, kf4=^B", kf5=^B#, khome=^A, ll=^A,
rmso=^O, rmul=^O, sgr0=^O, smso=^N, smul=^N,
# Some viewpoints have bad ROMs that foo up on ^O
-screwpoint|adds viewpoint with ^O bug,
+screwpoint|ADDS Viewpoint with ^O bug,
cvvis@, rmso@, rmul@, smso@, smul@, use=viewpoint,
# From: Jay S. Rouman <jsr@dexter.mi.org> 5 Jul 92
@@ -15037,7 +15551,7 @@ screwpoint|adds viewpoint with ^O bug,
# Underlined Half Intensity
# Blinking c 0143
# Video suppress D 0104
-vp3a+|viewpoint3a+|adds viewpoint 3a+,
+vp3a+|viewpoint3a+|ADDS Viewpoint 3a+,
am, bw,
cols#80, it#8, lines#24,
blink=\E0B\E), civis=^W, clear=\E*$<80>, cnorm=^X, cr=\r,
@@ -15050,7 +15564,7 @@ vp3a+|viewpoint3a+|adds viewpoint 3a+,
%?%p2%t%{32}%|%;%?%p3%t%{16}%|%;%?%p4%t%{2}%|%;%?%p5%t
%{1}%|%;%c%?%p7%tD%;\E)%e\E(%;,
sgr0=\E(, smso=\E0Q\E), smul=\E0`\E),
-vp60|viewpoint60|addsvp60|adds viewpoint60,
+vp60|viewpoint60|addsvp60|ADDS Viewpoint60,
use=regent40,
#
# adds viewpoint 90 - from cornell
@@ -15063,7 +15577,7 @@ vp60|viewpoint60|addsvp60|adds viewpoint60,
# - <clear=\EG\Ek>: clears screen and visual attributes without affecting
# the status line
# Function key and label capabilities merged in from SCO.
-vp90|viewpoint90|adds viewpoint 90,
+vp90|viewpoint90|ADDS Viewpoint 90,
OTbs, bw, msgr, xhp,
cols#80, lines#24,
clear=\EG\Ek, cub1=^H, cud1=\n, cuf1=^F,
@@ -15072,13 +15586,13 @@ vp90|viewpoint90|adds viewpoint 90,
ich1=\EF \EF\025, ind=\n, kbs=^H, kcub1=^U, kcud1=\n,
kcuf1=^F, kcuu1=^Z, kf0=^B1\r, kf1=^B2\r, kf10=^B;\r,
kf2=^B3\r, kf3=^B4\r, kf4=^B5\r, kf5=^B6\r, kf6=^B7\r,
- kf7=^B8\r, kf8=^B9\r, kf9=\002\:\r, khome=^A, lf0=F1, lf1=F2,
+ kf7=^B8\r, kf8=^B9\r, kf9=^B:\r, khome=^A, lf0=F1, lf1=F2,
lf10=F11, lf2=F3, lf3=F4, lf4=F5, lf5=F6, lf6=F7, lf7=F8, lf8=F9,
lf9=F10, ll=^A, rmso=\ER\E0@\EV, rmul=\ER\E0@\EV,
sgr0=\ER\E0@\EV, smso=\ER\E0Q\EV, smul=\ER\E0`\EV,
# Note: if return acts weird on a980, check internal switch #2
# on the top chip on the CONTROL pc board.
-adds980|a980|adds consul 980,
+adds980|a980|ADDS Consul 980,
OTbs, am,
cols#80, lines#24,
bel=^G, clear=\014$<1>\013@, cr=\r, cub1=^H, cud1=\n,
@@ -15100,24 +15614,26 @@ adds980|a980|adds consul 980,
cit80|cit-80|citoh 80,
OTbs, am,
cols#80, lines#24,
- clear=\E[H\EJ, cr=\r, cub1=^H, cud1=\E[B, cuf1=\E[C,
- cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, ed=\EJ, el=\EK, ff=^L,
- ind=\n, is2=\E>, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
- kcuu1=\EOA, rmkx=\E[?1l\E>, smkx=\E[?1h\E=,
+ clear=\E[H\EJ, cr=\r, cub1=^H, cup=\E[%i%p1%2d;%p2%2dH,
+ ed=\EJ, el=\EK, ff=^L, ind=\n, is2=\E>, kcub1=\EOD, kcud1=\EOB,
+ kcuf1=\EOC, kcuu1=\EOA, rmkx=\E[?1l\E>, smkx=\E[?1h\E=,
+ use=ansi+local1,
+
# From: Tim Wood <mtxinu!sybase!tim> Fri Sep 27 09:39:12 PDT 1985
# (cit101: added <rmam>/<smam> based on init string, merged this with c101 -- esr)
-cit101|citc|C.itoh fast vt100,
+cit101|citc|C. Itoh fast VT100,
OTbs, am, xenl,
cols#80, lines#24,
- bel=^G, clear=\E[H\E[2J, cnorm=\E[V\E8, cub1=^H, cud1=\E[B,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
- cvvis=\E7\E[U, dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K,
- flash=\E[?5h$<200/>\E[?5l, ich1=\E[@, il1=\E[L,
+ bel=^G, clear=\E[H\E[2J, cnorm=\E[V\E8, cub1=^H,
+ cup=\E[%i%p1%d;%p2%dH, cvvis=\E7\E[U, dch1=\E[P,
+ dl1=\E[M, ed=\E[J, el=\E[K, flash=\E[?5h$<200/>\E[?5l,
+ ich1=\E[@, il1=\E[L,
is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[3g\E[>5g,
kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
sgr0=\E[m, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m,
- smul=\E[4m,
+ smul=\E[4m, use=ansi+local1,
+
# CIE Terminals CIT-101e from Geoff Kuenning <callan!geoff> via BRL
# The following termcap entry was created from the Callan cd100 entry. The
# last two lines (with the capabilities in caps) are used by RM-cobol to allow
@@ -15128,15 +15644,16 @@ cit101|citc|C.itoh fast vt100,
cit101e|C. Itoh CIT-101e,
OTbs, OTpt, am, mir, msgr,
cols#80, it#8, lines#24,
- acsc=, clear=\E[H\E[J, cnorm=, csr=\E[%i%p1%2d;%p2%2dr,
- cub1=\E[D, cud1=\E[B, cuf1=\E[C, cup=\E[%i%p1%2d;%p2%2dH,
- cuu1=\E[A, cvvis=\E[?1l\E[?4l\E[?7h, dch1=\E[P, dl1=\E[M,
- ed=\E[J, el=\E[K, if=/usr/share/tabset/vt100, il1=\E[L,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf0=\EOT,
- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOm, kf6=\EOl,
- kf7=\EOM, kf8=\EOn, rc=\E8, ri=\EM, rmacs=^O, rmir=\E[4l,
- rmkx=\E>, rmso=\E[m, rmul=\E[m, sc=\E7, smacs=^N, smir=\E[4h,
- smkx=\E=, smso=\E[7m, smul=\E[4m,
+ acsc=, cnorm=, csr=\E[%i%p1%2d;%p2%2dr,
+ cup=\E[%i%p1%2d;%p2%2dH, cvvis=\E[?1l\E[?4l\E[?7h,
+ dch1=\E[P, dl1=\E[M, if=/usr/share/tabset/vt100,
+ il1=\E[L, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+ kf0=\EOT, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOm,
+ kf6=\EOl, kf7=\EOM, kf8=\EOn, rc=\E8, ri=\EM, rmacs=^O,
+ rmir=\E[4l, rmkx=\E>, rmso=\E[m, rmul=\E[m, sc=\E7, smacs=^N,
+ smir=\E[4h, smkx=\E=, smso=\E[7m, smul=\E[4m,
+ use=ansi+erase, use=ansi+local1,
+
# From: David S. Lawyer, June 1997:
# The CIT 101-e was made in Japan in 1983-4 and imported by CIE
# Terminals in Irvine, CA. It was part of CITOH Electronics. In the
@@ -15154,27 +15671,24 @@ cit101e|C. Itoh CIT-101e,
# on. I also set up mine for parity (but you may not need it). Then
# save the setup with ^S.
# (cit101e-rv: added empty <rmcup> to suppress a tic warning. --esr)
-cit101e-rv|Citoh CIT-101e (sets reverse video),
+cit101e-rv|C. Itoh CIT-101e (sets reverse video),
am, eo, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24,
- OTnl=\EM, bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
- civis=\E[1v, clear=\E[H\E[J, cnorm=\E[0;3;4v, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[3;5v, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
- dl1=\E[M, ed=\E[J, el=\E[K, flash=\E[?5l$<200/>\E[?5h,
- home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
- ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\n,
+ cols#80, lines#24,
+ OTnl=\EM, bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[1v,
+ cnorm=\E[0;3;4v, cr=\r, cub1=^H, cup=\E[%i%p1%d;%p2%dH,
+ cvvis=\E[3;5v, flash=\E[?5l$<200/>\E[?5h, home=\E[H,
+ hpa=\E[%i%p1%dG, ind=\n,
is2=\E<\E>\E[?1l\E[?3l\E[?4l\E[?5h\E[?7h\E[?8h\E[3g\E[>5g\E(
B\E[m\E[20l\E[1;24r\E[24;1H,
kbs=^?, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, nel=\EE, rc=\E8,
- rev=\E[7m, ri=\EM, rmcup=, rmir=\E[4l, rmso=\E[m, rmul=\E[m,
- rs1=\Ec\E[?7h\E[>5g, sc=\E7, sgr0=\E[m,
- smcup=\E[>5g\E[?7h\E[?5h, smir=\E[4h, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g, u6=\E[%i%p1%d;%p2%dR, u7=\E[6n,
- u8=\E[?6c, u9=\E[c, use=ecma+index,
+ kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, nel=\EE, rev=\E[7m,
+ ri=\EM, rmcup=, rmso=\E[m, rmul=\E[m, rs1=\Ec\E[?7h\E[>5g,
+ sgr0=\E[m, smcup=\E[>5g\E[?7h\E[?5h, smso=\E[7m,
+ smul=\E[4m, u6=\E[%i%p1%d;%p2%dR, u8=\E[?6c,
+ use=ansi+enq, use=ansi+csr, use=ansi+erase, use=ansi+idc,
+ use=ansi+idl, use=ansi+inittabs, use=ansi+local,
+ use=ecma+index,
+
cit101e-n|CIT-101e w/o am,
am@,
cvvis=\E[?1l\E[?4l\E[?7l, kbs=^H, kcub1=^H, kcud1=\n,
@@ -15200,28 +15714,25 @@ cit101e-n132|CIT-101e with 132 cols w/o am,
# (cit500: I added <rmam>/<smam> based on the init string -- esr)
cit500|CIE Terminals CIT-500,
OTbs, OTpt, mir, msgr, xon,
- OTkn#10, cols#80, it#8, lines#64, vt#3,
- acsc=, bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
- clear=\E[H\E[J, cr=\r, csr=\E[%i%p1%d;%p2%dr,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\n,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\EM, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- ed=\EJ, el=\EK, home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL,
- il1=\E[L, ind=\n, is2=\E<\E)0, kbs=^H, kcbt=\E[Z, kcub1=\EOD,
- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[P, kdl1=\E[M,
- ked=\EJ, kel=\EK, kf0=\EOP, kf1=\EOQ, kf2=\EOR, kf3=\EOS,
- kf4=\EOU, kf5=\EOV, kf6=\EOW, kf7=\EOX, kf8=\EOY, kf9=\EOZ,
- khome=\E[H, kich1=\E[4h, kil1=\E[L, krmir=\E[4l, lf0=PF1,
- lf1=PF2, lf2=PF3, lf3=PF4, lf4=F15, lf5=F16, lf6=F17, lf7=F18,
- lf8=F19, lf9=F20, ll=\E[64H, nel=\EE, rc=\E8, rev=\E[7m,
- ri=\EM, rmacs=^O, rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>,
- rmso=\E[m, rmul=\E[m,
+ OTkn#10, cols#80, lines#64, vt#3,
+ acsc=, bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J,
+ cr=\r, cub1=^H, cud1=\n, cup=\E[%i%p1%d;%p2%dH, cuu1=\EM,
+ dch1=\E[P, ed=\EJ, el=\EK, home=\E[H, ind=\n, is2=\E<\E)0,
+ kcbt=\E[Z, kdch1=\E[P, kdl1=\E[M, ked=\EJ, kel=\EK, kf0=\EOP,
+ kf1=\EOQ, kf2=\EOR, kf3=\EOS, kf4=\EOU, kf5=\EOV, kf6=\EOW,
+ kf7=\EOX, kf8=\EOY, kf9=\EOZ, khome=\E[H, kich1=\E[4h,
+ kil1=\E[L, krmir=\E[4l, lf0=PF1, lf1=PF2, lf2=PF3, lf3=PF4,
+ lf4=F15, lf5=F16, lf6=F17, lf7=F18, lf8=F19, lf9=F20,
+ ll=\E[64H, nel=\EE, rev=\E[7m, ri=\EM, rmacs=^O, rmam=\E[?7l,
+ rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
rs1=\E<\E2\E[20l\E[?6l\E[r\E[m\E[q\E(B\017\E)0\E>,
- sc=\E7, sgr0=\E[m, smacs=^N, smam=\E[?7h, smir=\E[4h,
- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+ sgr0=\E[m, smacs=^N, smam=\E[?7h, smir=\E[4h,
+ smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
+ use=ansi+apparrows, use=ansi+csr, use=ansi+idl,
+ use=ansi+inittabs, use=ansi+local,
# C. Itoh printers begin here
-citoh|ci8510|8510|c.itoh 8510a,
+citoh|ci8510|8510|C. Itoh 8510a,
cols#80, it#8,
bold=\E!, cub1@,
is2=\E(009\,017\,025\,033\,041\,049\,057\,065\,073.,
@@ -15254,7 +15765,7 @@ citoh-8lpi|citoh in 8 lines per inch mode,
#### Control Data (cdc)
#
-cdc456|cdc 456 terminal,
+cdc456|CDC 456 terminal,
OTbs, am,
cols#80, lines#24,
bel=^G, clear=^Y^X, cr=\r, cub1=^H, cud1=\n, cuf1=^L,
@@ -15339,43 +15850,40 @@ cdc721-esc|Control Data 721,
# to have been at least two models, the 33 and the 50.
#
-# The 50 seems to be a top end vt220 clone, with the addition of a higher
+# The 50 seems to be a top end VT220 clone, with the addition of a higher
# screen resolution, a larger screen, at least 1 page of memory above and
# below the screen, apparently pages of memory right and left of the screen
# which can be panned, and about 75 function keys (15 function keys x normal,
# shift, control, func A, func B). It also has more setup possibilities than
-# the vt220. The monitor case is dated November 1978 and the keyboard case is
+# the VT220. The monitor case is dated November 1978 and the keyboard case is
# May 1982.
#
-# The vt100 emulation works as is. The entry below describes the rather
+# The VT100 emulation works as is. The entry below describes the rather
# non-conformant (but more featureful) ANSI mode.
#
# From: Stephen Peterson <stv@utrecht.ow.nl>, 27 May 1995
-visa50|geveke visa 50 terminal in ansi 80 character mode,
+visa50|Geveke VISA 50 terminal in ANSI 80 character mode,
bw, mir, msgr,
cols#80, lines#25,
acsc=0_aaffggh jjkkllmmnnooqqssttuuvvwwxx, bel=^G,
blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[2J, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dX, dch1=\E[X, dim=\E[2m, dl=\E[%p1%dM,
- dl1=\E[M, ed=\E[J, el=\E[K, flash=\E[?5h$<100/>\E[?5l,
- home=\E[H, hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@,
- ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\n, invis=\E[8m,
+ csr=\E[%i%p1%d;%p2%dr, cup=\E[%i%p1%d;%p2%dH,
+ dch=\E[%p1%dX, dch1=\E[X, dim=\E[2m, ed=\E[J, el=\E[K,
+ flash=\E[?5h$<100/>\E[?5l, home=\E[H, hpa=\E[%i%p1%dG,
+ ht=^I, ind=\n, invis=\E[8m,
is2=\E0;2m\E[1;25r\E[25;1H\E[?3l\E[?7h\E[?8h,
- ka1=\E[f, ka3=\EOQ, kb2=\EOP, kbs=^H, kc1=\EOR, kc3=\EOS,
- kcub1=\E[D, kcud1=\E[A, kcuf1=\E[C, kcuu1=\E[A, kdch1=^?,
+ ka1=\E[f, ka3=\EOQ, kb2=\EOP, kc1=\EOR, kc3=\EOS, kdch1=^?,
kdl1=\EOS, kf0=\E010, kf1=\E001, kf10=\E011, kf2=\E002,
kf3=\E003, kf4=\E004, kf5=\E005, kf6=\E006, kf7=\E007,
kf8=\E008, kf9=\E009, khome=\E[f, lf2=A delete char,
lf3=A insert line, lf4=A delete line, lf5=A clear,
lf6=A ce of/cf gn, lf7=A print, lf8=A on-line,
lf9=A funcl0=A send, nel=\r\n, rev=\E[7m, rmacs=\E[3l,
- rmam=\E[?7l, rmir=\E[4l, rmkx=\E>, rmso=\E[0;2m,
- rmul=\E[0m, sgr0=\E[0;2m, smacs=\E3h, smam=\E?7h,
- smir=\E[4h, smkx=\E=, smso=\E[2;7m, smul=\E[4m, tbc=\E[3g,
- vpa=\E[%i%p1%dd,
+ rmam=\E[?7l, rmkx=\E>, rmso=\E[0;2m, rmul=\E[0m,
+ sgr0=\E[0;2m, smacs=\E3h, smam=\E?7h, smkx=\E=,
+ smso=\E[2;7m, smul=\E[4m, tbc=\E[3g, vpa=\E[%i%p1%dd,
+ use=ansi+arrows, use=ansi+idc, use=ansi+idl,
+ use=ansi+local,
#### Human Designed Systems (Concept)
#
@@ -15425,29 +15933,29 @@ visa50|geveke visa 50 terminal in ansi 80 character mode,
#
# No delays needed on c108 because of ^S/^Q handshaking
#
-c108|concept108|c108-8p|concept108-8p|concept 108 w/8 pages,
+c108|concept108|c108-8p|concept108-8p|Concept 108 w/8 pages,
is3=\EU\E\sz"\Ev\001\177\s!p\E\s;"\E\sz\s\Ev\s\s\001\177p
\Ep\n,
rmcup=\Ev \001\177p\Ep\r\n, use=c108-4p,
-c108-4p|concept108-4p|concept 108 w/4 pages,
- OTbs, eslok, hs, xon,
+c108-4p|concept108-4p|Concept 108 w/4 pages,
+ eslok, hs, xon,
pb@,
acsc=jEkTl\\mMqLxU, cnorm=\Ew, cr=\r,
cup=\Ea%p1%?%p1%{95}%>%t\001%{96}%-%;%{32}%+%c%p2%?%p2%{95}
%>%t\001%{96}%-%;%{32}%+%c,
cvvis=\EW, dch1=\E 1$<16*>, dsl=\E ;\177, fsl=\Ee\E z\s,
- ind=\n, is1=\EK\E!\E F,
+ is1=\EK\E!\E F,
is3=\EU\E z"\Ev\177 !p\E ;"\E z \Ev \001 p\Ep\n,
rmacs=\Ej\s, rmcup=\Ev \001 p\Ep\r\n, smacs=\Ej!,
smcup=\EU\Ev 8p\Ep\r\E\025,
tsl=\E z"\E?\E\005\EE\Ea %+\s, use=c100,
-c108-rv|c108-rv-8p|concept 108 w/8 pages in reverse video,
+c108-rv|c108-rv-8p|Concept 108 w/8 pages in reverse video,
rmcup=\Ev \002 p\Ep\r\n, smcup=\EU\Ev 8p\Ep\r,
use=c108-rv-4p,
-c108-rv-4p|concept108rv4p|concept 108 w/4 pages in reverse video,
+c108-rv-4p|concept108rv4p|Concept 108 w/4 pages in reverse video,
flash=\EK$<200>\Ek, is1=\Ek, rmso=\Ee, smso=\EE,
use=c108-4p,
-c108-w|c108-w-8p|concept108-w-8|concept108-w8p|concept 108 w/8 pages in wide mode,
+c108-w|c108-w-8p|concept108-w-8|concept108-w8p|Concept 108 w/8 pages in wide mode,
cols#132,
is1=\E F\E", rmcup=\Ev ^A0\001D\Ep\r\n,
smcup=\EU\Ev 8\001D\Ep\r, use=c108-8p,
@@ -15490,7 +15998,7 @@ c108-w|c108-w-8p|concept108-w-8|concept108-w8p|concept 108 w/8 pages in wide mod
# \EQ"\EY(^W (send anything from printer to host, for xon/xoff)
# cannot be # in is2 because it will hang a c100 with no printer
# if sent twice.
-c100|concept100|concept|c104|c100-4p|hds concept 100,
+c100|concept100|concept|c104|c100-4p|HDS Concept 100,
OTbs, am, eo, mir, ul, xenl,
cols#80, lines#24, pb#9600, vt#8,
bel=^G, blink=\EC, clear=\E?\E\005$<2*>, cr=$<9>\r,
@@ -15501,11 +16009,11 @@ c100|concept100|concept|c104|c100-4p|hds concept 100,
ht=\011$<8>, il1=\E\022$<3*>, ind=\n, invis=\EH, ip=$<16*>,
is1=\EK,
is2=\EU\Ef\E7\E5\E8\El\ENH\E\0\Eo&\0\Eo'\E\Eo!\0\E\007!\E
- \010A@\s\E4#\:"\E\:a\E4#;"\E\:b\E4#<"\E\:c,
+ \010A@\s\E4#:"\E:a\E4#;"\E:b\E4#<"\E:c,
is3=\Ev $<6>\Ep\n, kbs=^H, kcbt=\E', kctab=\E_,
kcub1=\E>, kcud1=\E<, kcuf1=\E=, kcuu1=\E;, kdch1=\E^Q,
kdl1=\E^B, ked=\E^C, kel=\E^S, kf1=\E5, kf2=\E6, kf3=\E7,
- kf4=\E8, kf5=\E9, kf6=\E\:a, kf7=\E\:b, kf8=\E\:c, khome=\E?,
+ kf4=\E8, kf5=\E9, kf6=\E:a, kf7=\E:b, kf8=\E:c, khome=\E?,
khts=\E], kich1=\E^P, kil1=\E^R, kind=\E[, knp=\E-, kpp=\E.,
kri=\E\\, krmir=\E\0, mc4=\036o \E\EQ!\EYP\027,
mc5=\EQ"\EY(\027\EYD\Eo \036, prot=\EI,
@@ -15514,10 +16022,10 @@ c100|concept100|concept|c104|c100-4p|hds concept 100,
rmso=\Ed, rmul=\Eg, sgr0=\EN@,
smcup=\EU\Ev 8p\Ep\r\E\025$<16>, smir=\E^P, smkx=\EX,
smso=\ED, smul=\EG,
-c100-rv|c100-rv-4p|concept100-rv|c100 rev video,
+c100-rv|c100-rv-4p|concept100-rv|Concept 100 reverse video,
cnorm@, cvvis@, flash=\EK$<200>\Ek, is1=\Ek, rmso=\Ee,
smso=\EE, use=c100,
-oc100|oconcept|c100-1p|old 1 page concept 100,
+oc100|oconcept|c100-1p|old 1-page Concept 100,
in,
is3@, use=c100,
@@ -15761,27 +16269,20 @@ oc100|oconcept|c100-1p|old 1 page concept 100,
# and mc5= should use the \E[?4i and \E[?5i strings instead).
hds200|Human Designed Systems HDS200,
- am, bw, eslok, hs, km, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24, lm#0,
+ am, bw, eslok, hs, km, mir, msgr, xenl, xon, NQ,
+ cols#80, lines#24, lm#0,
acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G,
- blink=\E[0;5m, bold=\E[0;1m, cbt=\E[Z, civis=\E[6+{,
- clear=\E[H\E[J, cnorm=\E[+{, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- dsl=\E[2!w\r\n\E[!w, ed=\E[J, el=\E[K, el1=\E[1K,
- fsl=\E[!w, home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH,
- ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED,
- invis=\E[0;8m,
+ blink=\E[0;5m, bold=\E[0;1m, civis=\E[6+{, cnorm=\E[+{,
+ cr=\r, cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\E[P,
+ dsl=\E[2!w\r\n\E[!w, el1=\E[1K, fsl=\E[!w, home=\E[H,
+ hpa=\E[%i%p1%dG, ich=\E[%p1%d@, ind=\ED, invis=\E[0;8m,
is2=\E)0\017\E[m\E[=107;207h\E[90;3u\E[92;3u\E[43;1u\177\E$P
\177\E[44;1u\177\E$Q\177\E[45;1u\177\E$R\177\E[46;1u
\177\E$S\177\E[200;1u\177\E$A\177\E[201;1u\177\E$B\177
\E[202;1u\177\E$C\177\E[203;1u\177\E$D\177\E[204;1u\177
\E$H\177\E[212;1u\177\E$I\177\E[213;1u\177\E$\010\177\E[
214;1u"\E$\177"\E[2!w\E[25;25w\E[!w\E[2*w\E[2+x\E[;3+},
- kDC=\E$^?, kHOM=\E$H, kLFT=\E$D, kRIT=\E$C, kbs=^H,
- kcbt=\E$I, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+ kDC=\E$^?, kHOM=\E$H, kLFT=\E$D, kRIT=\E$C, kcbt=\E$I,
kdch1=^?, kent=\r, kf1=^\001\r, kf10=^\010\r, kf11=^\011\r,
kf12=^\012\r, kf13=\EOP, kf14=\EOQ, kf15=\EOR, kf16=\EOS,
kf17=^\017\r, kf18=^\018\r, kf19=^\019\r, kf2=^\002\r,
@@ -15793,56 +16294,55 @@ hds200|Human Designed Systems HDS200,
kf45=\E$R, kf46=\E$S, kf47=^\047\r, kf48=^\048\r,
kf49=^\049\r, kf5=^\005\r, kf50=^\050\r, kf51=^\051\r,
kf52=^\052\r, kf53=^\053\r, kf6=^\006\r, kf7=^\007\r,
- kf8=^\008\r, kf9=^\009\r, khome=\E[H, kind=\E[T, knp=\E[U,
- kpp=\E[V, kri=\E[S, ll=\E[H\E[A, nel=\E[E, rc=\E8,
- rev=\E[0;7m, ri=\EM, rmacs=^O, rmir=\E[4l, rmso=\E[m\017,
- rmul=\E[m\017, sc=\E7,
+ kf8=^\008\r, kf9=^\009\r, kind=\E[T, knp=\E[U, kpp=\E[V,
+ kri=\E[S, ll=\E[H\E[A, nel=\E[E, rev=\E[0;7m, ri=\EM,
+ rmacs=^O, rmir=\E[4l, rmso=\E[m\017, rmul=\E[m\017,
sgr=\E[0%?%p1%p6%O%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%O%t;7
%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
sgr0=\E[m\017, smacs=^N, smir=\E[4h, smso=\E[0;1;7m,
- smul=\E[0;4m, tbc=\E[3g, tsl=\E[2!w\E[%i%p1%dG,
- vpa=\E[%i%p1%dd, use=ansi+pp,
+ smul=\E[0;4m, tsl=\E[2!w\E[%i%p1%dG, vpa=\E[%i%p1%dd,
+ use=ansi+arrows, use=ansi+csr, use=ansi+erase,
+ use=ansi+idl, use=ansi+inittabs, use=ansi+local,
+ use=ansi+pp,
# <ht> through <el> included to specify padding needed in raw mode.
# (avt-ns: added empty <acsc> to suppress a tic warning --esr)
-avt-ns|concept avt no status line,
+avt-ns|Concept AVT no status line,
OTbs, am, eo, mir, ul, xenl, xon,
- cols#80, it#8, lines#24, lm#192,
- acsc=, bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
- clear=\E[H\E[J$<38>, cnorm=\E[=119l, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[=119h, dch1=\E[P, dim=\E[1!{, dl=\E[%p1%dM$<4*>,
- dl1=\E[M$<4>, ed=\E[J$<96>, el=\E[K$<6>, home=\E[H,
- hpa=\E[%p1%{1}%+%dG, ht=\011$<4>, hts=\EH, ich=\E[%p1%d@,
- ich1=\E[@, il=\E[%p1%dL$<4*>, il1=\E[L$<4>, ind=\n$<8>,
- invis=\E[8m, ip=$<4>, is1=\E[=103l\E[=205l,
+ cols#80, lines#24, lm#192,
+ acsc=, bel=^G, clear=\E[H\E[J$<38>, cnorm=\E[=119l, cr=\r,
+ cub1=^H, cud1=\n, cup=\E[%i%p1%d;%p2%dH, cvvis=\E[=119h,
+ dim=\E[1!{, dl=\E[%p1%dM$<4*>, dl1=\E[M$<4>,
+ ed=\E[J$<96>, el=\E[K$<6>, home=\E[H,
+ hpa=\E[%p1%{1}%+%dG, ht=\011$<4>, ich=\E[%p1%d@,
+ il=\E[%p1%dL$<4*>, il1=\E[L$<4>, ind=\n$<8>, ip=$<4>,
+ is1=\E[=103l\E[=205l,
is2=\E[1*q\E[2!t\E[7!t\E[=4;101;119;122l\E[=107;118;207h\E)1
- \E[1Q\EW\E[!y\E[!z\E>\E[0\:0\:32!r\E[0*w\E[w\E2\r\n\E[2;
- 27!t,
- kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+ \E[1Q\EW\E[!y\E[!z\E>\E[0:0:32!r\E[0*w\E[w\E2\r\n\E[2;27
+ !t,
kdch1=\E\002\r, ked=\E\004\r, kf1=\EOP, kf2=\EOQ, kf3=\EOR,
- kf4=\EOS, khome=\E[H, kich1=\E\001\r, kil1=\E\003\r,
- ll=\E[24H, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i,
+ kf4=\EOS, kich1=\E\001\r, kil1=\E\003\r, ll=\E[24H,
+ mc0=\E[0i, mc4=\E[4i, mc5=\E[5i,
pfloc=\E[%p1%d;0u#%p2%s#, pfx=\E[%p1%d;1u#%p2%s#,
- prot=\E[99m, rc=\E8, rev=\E[7m, ri=\EM$<4>, rmacs=\016$<1>,
- rmcup=\E[w\E2\r\n, rmir=\E[4l, rmkx=\E[!z\E[0;2u,
- rmso=\E[7!{, rmul=\E[4!{, sc=\E7,
+ prot=\E[99m, ri=\EM$<4>, rmacs=\016$<1>,
+ rmcup=\E[w\E2\r\n, rmkx=\E[!z\E[0;2u, rmso=\E[7!{,
+ rmul=\E[4!{,
sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;
%;%?%p7%t8;%;%?%p8%t99;%;m%?%p5%t\E[1!{%;%?%p9%t\017%e
\016%;$<1>,
sgr0=\E[m\016$<1>, smacs=\017$<1>,
- smcup=\E[=4l\E[1;24w\E2\r, smir=\E[4h,
- smkx=\E[1!z\E[0;3u, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
- vpa=\E[%p1%{1}%+%dd, use=ansi+rep,
-avt-rv-ns|concept avt in reverse video mode/no status line,
+ smcup=\E[=4l\E[1;24w\E2\r, smkx=\E[1!z\E[0;3u,
+ vpa=\E[%p1%{1}%+%dd, use=ansi+arrows, use=ansi+csr,
+ use=ansi+idc1, use=ansi+inittabs, use=ansi+local,
+ use=ansi+rep, use=ansi+sgrbold,
+
+avt-rv-ns|Concept AVT in reverse video mode/no status line,
flash=\E[=205l$<200>\E[=205h, is1=\E[=103l\E[=205h,
use=avt-ns,
-avt-w-ns|concept avt in 132 column mode/no status line,
+avt-w-ns|Concept AVT in 132 column mode/no status line,
is1=\E[=103h\E[=205l, smcup=\E[H\E[1;24;1;132w,
use=avt-ns,
-avt-w-rv-ns|concept avt in 132 column mode/no status line/reverse video,
+avt-w-rv-ns|Concept AVT in 132 column mode/no status line/reverse video,
flash=\E[=205l$<200>\E[=205h, is1=\E[=103h\E[=205h,
smcup=\E[H\E[1;24;1;132w, use=avt-ns,
@@ -15854,22 +16354,22 @@ avt-w-rv-ns|concept avt in 132 column mode/no status line/reverse video,
# on both 4 and 8 page AVTs. (Note the lm#191 or 192 - this
# assumes an 8 page AVT but lm isn't currently used anywhere.)
#
-avt+s|concept avt status line changes,
+avt+s|Concept AVT status line changes,
eslok, hs,
lm#191,
dsl=\E[0*w, fsl=\E[1;1!w,
is3=\E[2w\E[2!w\E[1;1;1;80w\E[H\E[2*w\E[1!w\E2\r\n,
rmcup=\E[2w\E2\r\n, smcup=\E[2;25w\E2\r,
tsl=\E[2;1!w\E[;%p1%dH\E[2K,
-avt|avt-s|concept-avt|avt w/80 columns,
+avt|avt-s|concept-avt|Concept AVT w/80 columns,
use=avt+s, use=avt-ns,
-avt-rv|avt-rv-s|avt reverse video w/sl,
+avt-rv|avt-rv-s|Concept AVT reverse video w/sl,
flash=\E[=205l$<200>\E[=205h, is1=\E[=103l\E[=205h,
use=avt+s, use=avt-ns,
-avt-w|avt-w-s|concept avt 132 cols+status,
+avt-w|avt-w-s|Concept AVT 132 cols+status,
is1=\E[=103h\E[=205l, smcup=\E[H\E[1;24;1;132w,
use=avt+s, use=avt-ns,
-avt-w-rv|avt-w-rv-s|avt wide+status+rv,
+avt-w-rv|avt-w-rv-s|Concept AVT wide+status+rv,
flash=\E[=205l$<200>\E[=205h, is1=\E[=103h\E[=205h,
smcup=\E[H\E[1;24;1;132w, use=avt+s, use=avt-ns,
@@ -15968,7 +16468,7 @@ dgkeys+11|Private entry describing 11 minimal-subset DG mode special keys,
kf15=^^d, kf16=^^e, kf17=^^f, kf18=^^g, kf19=^^h, kf2=^^r,
kf20=^^i, kf21=^^j, kf22=^^k, kf23=^^1, kf24=^^2, kf25=^^3,
kf26=^^4, kf27=^^5, kf28=^^6, kf29=^^7, kf3=^^s, kf30=^^8,
- kf31=^^9, kf32=^^\:, kf33=^^;, kf34=^^!, kf35=^^", kf36=^^#,
+ kf31=^^9, kf32=^^:, kf33=^^;, kf34=^^!, kf35=^^", kf36=^^#,
kf37=^^$, kf38=^^%%, kf39=^^&, kf4=^^t, kf40=^^', kf41=^^(,
kf42=^^), kf43=^^*, kf44=^^+, kf5=^^u, kf6=^^v, kf7=^^w,
kf8=^^x, kf9=^^y, khome=^H,
@@ -15980,7 +16480,7 @@ dgkeys+15|Private entry describing 15 DG mode special keys,
kf2=^^r, kf20=^^e, kf21=^^f, kf22=^^g, kf23=^^h, kf24=^^i,
kf25=^^j, kf26=^^k, kf27=^^l, kf28=^^m, kf29=^^n, kf3=^^s,
kf30=^^`, kf31=^^1, kf32=^^2, kf33=^^3, kf34=^^4, kf35=^^5,
- kf36=^^6, kf37=^^7, kf38=^^8, kf39=^^9, kf4=^^t, kf40=^^\:,
+ kf36=^^6, kf37=^^7, kf38=^^8, kf39=^^9, kf4=^^t, kf40=^^:,
kf41=^^;, kf42=^^<, kf43=^^=, kf44=^^>, kf45=^^0, kf46=^^!,
kf47=^^", kf48=^^#, kf49=^^$, kf5=^^u, kf50=^^%%, kf51=^^&,
kf52=^^', kf53=^^(, kf54=^^), kf55=^^*, kf56=^^+, kf57=^^\,,
@@ -15998,14 +16498,7 @@ dgkeys+15|Private entry describing 15 DG mode special keys,
# u8=^^F}20^^Fi^^F}21,
#
dgunix+fixed|Fixed color info for DG D430C terminals in DG-UNIX mode,
- bce,
- colors#16, ncv#53, pairs#0x100,
- op=\036Ad\036Bd,
- setab=\036B%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1
- %{4}%&%t%{1}%|%;%;%{48}%+%c,
- setaf=\036A%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1
- %{4}%&%t%{1}%|%;%;%{48}%+%c,
- setb=\036B%p1%{48}%+%c, setf=\036A%p1%{48}%+%c,
+ ncv#53, use=dgmode+color,
dg+fixed|Fixed color info for DG D430C terminals in DG mode,
use=dgunix+fixed,
@@ -16082,16 +16575,16 @@ dg+ccc|Configurable color info for DG D430C terminals in DG mode,
%+%c%ga%{16}%m%{48}%+%c%p6%{255}%*%{1000}%/%Pa%ga%{16}
%/%{48}%+%c%ga%{16}%m%{48}%+%c%p7%{255}%*%{1000}%/%Pa
%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c,
- oc=\036RG01\:00??00000000\036RG01;00000000??00\036RG01<007?0
- 0000000\036RG01=000000007?00,
- op=\036RF4831\:\036RF2>31;\036RF1=31<\036RF3?31=,
+ oc=\036RG01:00??00000000\036RG01;00000000??00\036RG01<007?00
+ 000000\036RG01=000000007?00,
+ op=\036RF4831:\036RF2>31;\036RF1=31<\036RF3?31=,
scp=\036RG2%p1%{16}%/%{48}%+%c%p1%{16}%m%{48}%+%c,
# The generic DG terminal type (an 8-bit-clean subset of the 6053)
# Initialization string 1 sets:
# ^R - vertical scrolling enabled
# ^C - blinking enabled
-dg-generic|Generic Data General terminal in DG mode,
+dg-generic|generic Data General terminal in DG mode,
am, bw, msgr, xon,
cols#80, lines#24,
bel=^G, blink=^N, clear=^L, cr=\r, cub1=^Y, cud1=^Z, cuf1=^X,
@@ -16104,7 +16597,7 @@ dg-generic|Generic Data General terminal in DG mode,
# notation that's "^P%r%+\200%+\200"). Those \200s are suspicious,
# maybe they were originally nuls (which would fit).
-dg200|data general dasher 200,
+dg200|Data General DASHER 200,
OTbs, am, bw,
cols#80, lines#24,
bel=^G, clear=^L, cr=\r, cub1=^Y, cud1=^Z, cuf1=^X,
@@ -16118,11 +16611,11 @@ dg200|data general dasher 200,
dg210|dg-ansi|Data General 210/211,
am,
cols#80, lines#24,
- OTnl=\E[B, clear=\E[2J, cub1=\E[D, cud1=\E[B, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J, el=\E[K,
- home=\E[H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- khome=\E[H, nel=\r\E[H\E[A\n, rmso=\E[0;m, rmul=\E[0;m,
- smso=\E[7;m, smul=\E[4;m,
+ OTnl=\E[B, clear=\E[2J, cup=\E[%i%p1%d;%p2%dH, ed=\E[J,
+ el=\E[K, home=\E[H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
+ kcuu1=\E[A, khome=\E[H, nel=\r\E[H\E[A\n, rmso=\E[0;m,
+ rmul=\E[0;m, smso=\E[7;m, smul=\E[4;m, use=ansi+local1,
+
# From: Peter N. Wan <ihnp4!gatech!gacsr!wan>
# courtesy of Carlos Rucalde of Vantage Software, Inc.
# (dg211: this had <cup=\020%r%.%>., which was an ancient termcap hangover.
@@ -16133,7 +16626,7 @@ dg211|Data General d211,
rmso=\036E$<0/>, smcup=^L^R, smso=\036D$<5/>, use=dg200,
# dg450 from Cornell (not official)
-dg450|dg6134|data general 6134,
+dg450|dg6134|Data General 6134,
cub1@, cuf1=^X, use=dg200,
# Not official...
@@ -16148,20 +16641,19 @@ dg450|dg6134|data general 6134,
dg460-ansi|Data General Dasher 460 in ANSI-mode,
OTbs, am, msgr, ul,
cols#80, it#8, lines#24,
- OTnl=\ED, blink=\E[5m, clear=\E[2J, cub1=^H, cud1=\E[B,
- cuf1=\E[C, cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, dch1=\E[P,
- dim=\E[2m, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
- ich1=\E[@, il1=\E[L, ind=\E[S, is2=^^F@, kbs=\E[D,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kf0=\E[001z, kf1=\E[002z, kf2=\E[003z, kf3=\E[004z,
- kf4=\E[005z, kf5=\E[006z, kf6=\E[007z, kf7=\E[008z,
- kf8=\E[009z, kf9=\E[00\:z, khome=\E[H, lf0=f1, lf1=f2,
- lf2=f3, lf3=f4, lf4=f5, lf5=f6, lf6=f7, lf7=f8, lf9=f10,
+ OTnl=\ED, blink=\E[5m, clear=\E[2J, cub1=^H,
+ cup=\E[%i%p1%2d;%p2%2dH, dch1=\E[P, dim=\E[2m, dl1=\E[M,
+ ed=\E[J, el=\E[K, home=\E[H, ht=^I, ich1=\E[@, il1=\E[L,
+ ind=\E[S, is2=^^F@, kbs=\E[D, kf0=\E[001z, kf1=\E[002z,
+ kf2=\E[003z, kf3=\E[004z, kf4=\E[005z, kf5=\E[006z,
+ kf6=\E[007z, kf7=\E[008z, kf8=\E[009z, kf9=\E[00:z, lf0=f1,
+ lf1=f2, lf2=f3, lf3=f4, lf4=f5, lf5=f6, lf6=f7, lf7=f8, lf9=f10,
mc0=\E[i, rev=\E[7m, ri=\E[T, rmso=\E[m, rmul=\E[05,
sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;
%?%p1%p3%|%t;7%;m,
- sgr0=\E(B\E[m, smso=\E[7m, smul=\E[4m, u6=\E[%d;%dR,
- u7=\E[6n, u8=\E[5n, u9=\E[0n,
+ sgr0=\E(B\E[m, smso=\E[7m, smul=\E[4m, u8=\E[5n, u9=\E[0n,
+ use=ansi+arrows, use=ansi+cpr, use=ansi+local1,
+
# From: Wayne Throop <mcnc!rti-sel!rtp47!throopw> (not official)
# Data General 605x
# Ought to work for a Model 6242, Type D210 as well as a 605x.
@@ -16169,7 +16661,7 @@ dg460-ansi|Data General Dasher 460 in ANSI-mode,
# This also matches a posted description of something called a `Dasher 100'
# so there's a dg100 alias here.
# (dg6053: the 4.4BSD file had <cub1=^H>, <cud1=^J>, <cuf1=^S>. -- esr)
-dg6053-old|dg100|data general 6053,
+dg6053-old|dg100|Data General 6053,
OTbs, am, bw, ul,
cols#80, lines#24,
OTbc=^Y, bel=^G, clear=^L, cnorm=^L, cr=\r, cub1=^Y, cud1=^Z,
@@ -16203,14 +16695,13 @@ d210|d214|Data General DASHER D210 series,
am, bw, msgr, xon,
cols#80, lines#24,
bel=^G, blink=\E[5m, bold=\E[4;7m, clear=\E[2J, cr=\r,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, dim=\E[2m, ed=\E[J, el=\E[K,
- el1=\E[1K, home=\E[H, ind=\n, is1=\E[<0;<1;<4l,
+ cub1=^H, cup=\E[%i%p1%d;%p2%dH, dim=\E[2m, ed=\E[J,
+ el=\E[K, el1=\E[1K, home=\E[H, ind=\n, is1=\E[<0;<1;<4l,
ll=\E[H\E[A, nel=\n, rev=\E[7m, rmso=\E[m, rmul=\E[m,
sgr=\E[%?%p4%t5;%;%?%p2%p6%|%t4;%;%?%p1%p5%|%t2;%;%?%p1%p3%|
%p6%|%t7;%;m,
- sgr0=\E[m, smso=\E[2;7m, smul=\E[4m, use=dgkeys+7b,
+ sgr0=\E[m, smso=\E[2;7m, smul=\E[4m, use=ansi+local,
+ use=dgkeys+7b,
# DASHER D210 series terminals in DG mode.
# Like D200, but adds clear to end-of-screen and needs XON/XOFF.
@@ -16408,17 +16899,17 @@ d400|d400-dg|d450|d450-dg|Data General DASHER D400/D450 series,
# \E)4 - default secondary character set (international)
#
d410|d411|d460|d461|Data General DASHER D410/D460 series,
- mc5i,
acsc=j$k"l!m#n)q+t'u&v(w%x*, civis=\E[3;0v,
- cnorm=\E[3;2v, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
- dl1=\E[M, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L,
+ cnorm=\E[3;2v, dch=\E[%p1%dP, dch1=\E[P, ich=\E[%p1%d@,
+ ich1=\E[@,
is1=\E[<0;<1;<2;<4l\E[5;0v\E[1;1;80w\E[1;6;<2h,
- is2=\E[3;2;2;1;1;1v\E(B\E)4\017, mc4=\E[4i, mc5=\E[5i,
- ri=\EM, rmacs=\E)4\017, rs1=\Ec\E[<2h,
+ is2=\E[3;2;2;1;1;1v\E(B\E)4\017, ri=\EM,
+ rmacs=\E)4\017, rs1=\Ec\E[<2h,
rs2=\E[4;0;2;1;1;1v\E(B\E)4,
sgr=\E[%?%p1%t2;7%;%?%p3%t7;%;%?%p4%t5;%;%?%p2%t4;%;%?%p1%p5
%|%t2;%;%?%p6%t4;7;%;m\E)%?%p9%t6\016%e4\017%;,
sgr0=\E[m\E)4\017, smacs=\E)6\016, use=d211,
+ use=ansi+idl, use=ansi+pp,
# Initialization string 2 sets:
# \E[3;2;2;0;1;0v
@@ -16681,17 +17172,18 @@ d578-7b|Data General DASHER D578 in 7-bit mode,
cs10|colorscan|Datamedia Color Scan 10,
msgr,
cols#80, lines#24,
- bel=^G, clear=\E[H\E[J, cr=\r, cub1=^H, cud1=\n, cuf1=\E[C,
- cup=\E[%i%p1%02d;%p2%02dH, cuu1=\E[A, ed=\E[J, el=\E[K,
- ind=\n, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, rmso=\E[m, rmul=\E[m,
- sgr0=\E[m, smso=\E[7m, smul=\E[4m,
+ bel=^G, cr=\r, cub1=^H, cud1=\n, cuf1=\E[C,
+ cup=\E[%i%p1%02d;%p2%02dH, cuu1=\E[A, ind=\n, kcub1=\E[D,
+ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, kf2=\EOQ,
+ kf3=\EOR, kf4=\EOS, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
+ smso=\E[7m, smul=\E[4m, use=ansi+erase,
+
cs10-w|Datamedia Color Scan 10 with 132 columns,
cols#132,
cup=\E[%i%p1%02d;%p2%03dH, use=cs10,
# (dm1520: removed obsolete ":ma=^\ ^_^P^YH:" -- esr)
-dm1520|dm1521|datamedia 1520,
+dm1520|dm1521|Datamedia 1520,
OTbs, am, xenl,
cols#80, it#8, lines#24,
bel=^G, clear=^L, cr=\r, cub1=^H, cud1=\n, cuf1=^\,
@@ -16700,7 +17192,7 @@ dm1520|dm1521|datamedia 1520,
khome=^Y,
# dm2500: this terminal has both <ich> and <smir>. Applications using
# termcap/terminfo directly (rather than through ncurses) might be confused.
-dm2500|datamedia2500|datamedia 2500,
+dm2500|datamedia2500|Datamedia 2500,
OTbs, OTnc,
cols#80, lines#24,
bel=^G, clear=^^^^^?, cub1=^H, cud1=\n, cuf1=^\,
@@ -16715,12 +17207,12 @@ dm2500|datamedia2500|datamedia 2500,
# also, has a meta-key.
# From: <goldberger@su-csli.arpa>
# (dmchat: ":MT:" changed to ":km:" -- esr)
-dmchat|dmchat version of datamedia 2500,
+dmchat|dmchat version of Datamedia 2500,
km,
dl1=\020\032\030\035$<2/>,
il1=\020\n\030\035\030\035$<1*/>, use=dm2500,
# (dm3025: ":MT:" changed to ":km:" -- esr)
-dm3025|datamedia 3025a,
+dm3025|Datamedia 3025a,
OTbs, km,
cols#80, it#8, lines#24,
bel=^G, clear=\EM$<2>, cr=\r, cub1=^H, cud1=\n, cuf1=\EC,
@@ -16729,13 +17221,11 @@ dm3025|datamedia 3025a,
home=\EH, ht=^I, il1=\EP\n\EQ$<130>, ind=\n, ip=$<6>,
is2=\EQ\EU\EV, rmdc=\EQ, rmir=\EQ, rmso=\EO0, smdc=\EP,
smir=\EP, smso=\EO1,
-dm3045|datamedia 3045a,
- OTbs, am, eo, km@, ul, xenl,
+dm3045|Datamedia 3045a,
+ am, eo, km@, ul, xenl,
dch1=\EB$<6>, dl1@, il1@, is2=\EU\EV, kcuf1=\EC, kcuu1=\EA,
- kf0=\Ey\r, kf1=\Ep\r, kf2=\Eq\r, kf3=\Er\r, kf4=\Es\r,
- kf5=\Et\r, kf6=\Eu\r, kf7=\Ev\r, kf8=\Ew\r, kf9=\Ex\r,
- khome=\EH, pad=^?, rmdc@, rmir=\EP, rmso@, smdc@, smso@,
- use=dm3025,
+ kf0=\Ey\r, kf9=\Ex\r, khome=\EH, pad=^?, rmdc@, rmir=\EP,
+ rmso@, smdc@, smso@, use=dm3025, use=hp+pfk+cr,
# Datamedia DT80 soft switches:
# 1 0=Jump 1=Smooth
# Autorepeat 0=off 1=on
@@ -16766,18 +17256,17 @@ dm3045|datamedia 3045a,
# Aux Parity 0=Off 1=On
# Aux Bits/Char 0=7 1=8
# CRT Saver 0=Off 1=On
-# dm80/1 is a vt100 lookalike, but it doesn't seem to need any padding.
-dm80|dmdt80|dt80|datamedia dt80/1,
- clear=\E[2J\E[H, cud1=\n, cuf1=\E[C,
- cup=%i\E[%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J, el=\E[K,
- home=\E[H, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, ri=\EM,
- rmso=\E[m, rmul=\E[m, sgr0=\E[m\017$<2>, smso=\E[7m,
- smul=\E[4m, use=vt100+4bsd,
+# dm80/1 is a VT100 lookalike, but it doesn't seem to need any padding.
+dm80|dmdt80|dt80|Datamedia dt80/1,
+ clear=\E[2J\E[H, cuf1=\E[C, cup=%i\E[%p1%d;%p2%dH,
+ cuu1=\E[A, ed=\E[J, el=\E[K, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i,
+ ri=\EM, rmso=\E[m, rmul=\E[m, sgr0=\E[m\017$<2>,
+ smso=\E[7m, smul=\E[4m, use=vt100+4bsd,
# except in 132 column mode, where it needs a little padding.
-# This is still less padding than the vt100, and you can always turn on
-# the ^S/^Q handshaking, so you can use vt100 flavors for things like
+# This is still less padding than the VT100, and you can always turn on
+# the ^S/^Q handshaking, so you can use VT100 flavors for things like
# reverse video.
-dm80w|dmdt80w|dt80w|datamedia dt80/1 in 132 char mode,
+dm80w|dmdt80w|dt80w|Datamedia dt80/1 in 132 char mode,
cols#132,
clear=\E[H\E[2J$<50/>, cud1=\n,
cup=\E[%i%p1%d;%p2%dH$<5/>, cuu1=\E[A$<5/>,
@@ -16805,15 +17294,15 @@ dt80-sas|Datamedia DT803/DTX for SAS usage,
# from the other Datamedias in use here, and yet to associate a model of
# the Excel terminals with the regular datamedia terminals that share
# major characteristics.
-excel62|excel64|datamedia Excel 62,
+excel62|excel64|Datamedia Excel 62,
dch1=\E[P, kbs=^H, kcub1=^H, kcud1=\n, kf5=\EOu, kf6=\EOv,
kf7=\EOw, kf8=\EOx, kf9=\EOy, rmir=\E[4l, smir=\E[4h,
use=dt80,
-excel62-w|excel64-w|datamedia Excel 62 in 132 char mode,
+excel62-w|excel64-w|Datamedia Excel 62 in 132 char mode,
dch1=\E[P, kbs=^H, kcub1=^H, kcud1=\n, kf5=\EOu, kf6=\EOv,
kf7=\EOw, kf8=\EOx, kf9=\EOy, rmir=\E[4l, smir=\E[4h,
use=dt80w,
-excel62-rv|excel64-rv|datamedia Excel 62 in reverse video mode,
+excel62-rv|excel64-rv|Datamedia Excel 62 in reverse video mode,
dch1=\E[P, flash=\E[?5l\E[?5h, kbs=^H, kcub1=^H, kcud1=\n,
kf5=\EOu, kf6=\EOv, kf7=\EOw, kf8=\EOx, kf9=\EOy, rmir=\E[4l,
smir=\E[4h, use=dt80,
@@ -16828,13 +17317,13 @@ excel62-rv|excel64-rv|datamedia Excel 62 in reverse video mode,
# Net: techsup@charm.sys.falco.com
#
# Current Falco models as of 1995 are generally ANSI-compatible and support
-# emulations of DEC VT-series, Wyse, and Televideo types.
+# emulations of DEC VT-series, Wyse, and TeleVideo types.
#
# Test version for Falco ts-1. See <arpavax.hickman@ucb> for info
# This terminal was released around 1983 and was discontinued long ago.
# The standout and underline highlights are the same.
-falco|ts1|ts-1|falco ts-1,
+falco|ts1|ts-1|Falco ts-1,
OTbs, am,
cols#80, it#8, lines#24,
bel=^G, clear=\E*, cr=\r, cub1=^H, cud1=\n, cuf1=^L,
@@ -16843,39 +17332,30 @@ falco|ts1|ts-1|falco ts-1,
ind=\n, is2=\Eu\E3, kcub1=^H, kcud1=\n, kcuf1=^L, kcuu1=^K,
kf0=^A0\r, rmir=\Er, rmso=\Eg0, rmul=\Eg0, sgr0=\Eg0,
smir=\Eq, smso=\Eg1, smul=\Eg1,
-falco-p|ts1p|ts-1p|falco ts-1 with paging option,
+falco-p|ts1p|ts-1p|Falco ts-1 with paging option,
OTbs, am, da, db, mir, msgr, ul,
cols#80, it#8, lines#24,
- bel=^G, cbt=\EI, clear=\E*, cr=\r, cub1=^H, cud1=\E[B,
- cuf1=\E[C, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=\E[A,
- dch1=\EW, dl1=\ER, ed=\EY, el=\ET\EG0\010\Eg0, ht=^I,
- il1=\EE, ind=\n, is2=\EZ\E3\E_c, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, rmcup=\E_b, rmir=\Er,
- rmso=\Eg0, rmul=\Eg0, sgr0=\Eg0, smcup=\E_d, smir=\Eq,
- smso=\Eg4, smul=\Eg1,
+ bel=^G, cbt=\EI, clear=\E*, cr=\r, cub1=^H,
+ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, dch1=\EW, dl1=\ER,
+ ed=\EY, el=\ET\EG0\010\Eg0, ht=^I, il1=\EE, ind=\n,
+ is2=\EZ\E3\E_c, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
+ kcuu1=\E[A, khome=\E[H, rmcup=\E_b, rmir=\Er, rmso=\Eg0,
+ rmul=\Eg0, sgr0=\Eg0, smcup=\E_d, smir=\Eq, smso=\Eg4,
+ smul=\Eg1, use=ansi+local1,
+
# (ts100: I added <rmam>/<smam> based on the init string -- esr)
-ts100|ts100-sp|falco ts100-sp,
- am, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24, vt#3,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
- clear=\E[H\E[J$<50>, cr=\r, csr=\E[%i%p1%d;%p2%dr,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\n,
- cuf=\E[%p1%dC, cuf1=\E[C$<2>,
- cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA,
- cuu1=\E[A$<2>, dch1=\E~W, dl1=\E~R, ed=\E[J$<50>,
- el=\E[K$<3>, el1=\E[1K$<3>, enacs=\E(B\E)0, home=\E[H,
- ht=^I, hts=\EH, ich1=\E~Q, il1=\E~E, ind=\n, is1=\E~)\E~ea,
- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- rc=\E8, rev=\E[7m$<2>, ri=\EM$<5>, rmacs=^O, rmam=\E[?7l,
- rmkx=\E[?1l\E>, rmso=\E[m$<2>, rmul=\E[m$<2>,
- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5
- %;m%?%p9%t\016%e\017%;$<2>,
- sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=,
- smso=\E[1;7m$<2>, smul=\E[4m$<2>, tbc=\E[3g,
- use=vt100+fnkeys,
-ts100-ctxt|falco ts-100 saving context,
+ts100|ts100-sp|Falco ts100-sp,
+ mir, xenl, xon,
+ vt#3,
+ cub1=^H, cud1=\n, cuf1=\E[C$<2>, cuu1=\E[A$<2>, dch1=\E~W,
+ dl1=\E~R, ich1=\E~Q, il1=\E~E, is1=\E~)\E~ea, kcub1=\EOD,
+ kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, rmam=\E[?7l,
+ rmkx=\E[?1l\E>,
+ rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, smam=\E[?7h,
+ smkx=\E[?1h\E=, use=ansi+csr, use=ansi+local,
+ use=decid+cpr, use=vt100+4bsd, use=vt100+fnkeys,
+
+ts100-ctxt|Falco ts-100 saving context,
rmcup=\E~_b, smcup=\E~_d\E[2J, use=ts100,
#### Florida Computer Graphics
@@ -16911,11 +17391,11 @@ beacon|FCG Beacon System,
f1720|f1720a|fluke 1720A,
xt,
cols#80, lines#16, xmc#1,
- bel=^G, clear=\E[H\E[2J, cr=\r, cub1=^H, cud1=\E[B,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J,
- el=\E[K, ind=\ED, is2=\E[H\E[2J, kcub1=^_, kcud1=^],
- kcuf1=^^, kcuu1=^\, ri=\EM, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
- smso=\E[7m, smul=\E[4m,
+ bel=^G, clear=\E[H\E[2J, cr=\r, cub1=^H,
+ cup=\E[%i%p1%d;%p2%dH, ed=\E[J, el=\E[K, ind=\ED,
+ is2=\E[H\E[2J, kcub1=^_, kcud1=^], kcuf1=^^, kcuu1=^\,
+ ri=\EM, rmso=\E[m, rmul=\E[m, sgr0=\E[m, smso=\E[7m,
+ smul=\E[4m, use=ansi+local1,
#### Liberty Electronics (Freedom)
#
@@ -16929,7 +17409,7 @@ f1720|f1720a|fluke 1720A,
# (f100: added empty <acsc> to suppress a tic warning;
# made this relative to adm+sgr -- note that <invis> isn't
# known to work for f100 but does on the f110. --esr)
-f100|freedom|freedom100|freedom model 100,
+f100|freedom|freedom100|Liberty Freedom model 100,
OTbs, am, bw, hs, mir, msgr, xon,
cols#80, lines#24,
acsc=, bel=^G, cbt=\EI, clear=^Z, cr=\r, cub1=^H, cud1=\n,
@@ -16943,7 +17423,7 @@ f100|freedom|freedom100|freedom model 100,
kf8=^AG\r, kf9=^AH\r, khome=^^, ri=\Ej, rmacs=\E$, rmir=\Er,
smacs=\E%%, smir=\Eq, tbc=\E3, tsl=\Eg\Ef,
vpa=\E[%p1%{32}%+%c, use=adm+sgr,
-f100-rv|freedom-rv|freedom 100 in reverse video,
+f100-rv|freedom-rv|Liberty Freedom 100 in reverse video,
flash=\Ed$<200>\Eb, is2=\Eg\Ef\r\Eb, use=f100,
# The f110 and f200 have problems with vi(1). They use the ^V
# code for the down cursor key. When kcud1 is defined in terminfo
@@ -17017,8 +17497,8 @@ f200vi-w|Liberty Freedom 200 - 132 cols for vi,
go140|graphon go-140,
OTbs,
cols#80, it#8, lines#24,
- clear=\E[H\E[2J$<10/>, cub1=^H, cud1=\E[B, cuf1=\E[C,
- cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
+ clear=\E[H\E[2J$<10/>, cub1=^H,
+ cup=\E[%i%p1%2d;%p2%2dH, dch1=\E[P, dl1=\E[M,
ed=\E[J$<10/>, el=\E[K, ht=^I,
if=/usr/share/tabset/vt100, il1=\E[L,
is2=\E<\E=\E[?3l\E[?7l\E(B\E[J\E7\E[;r\E8\E[m\E[q,
@@ -17026,7 +17506,8 @@ go140|graphon go-140,
kf2=\EOQ, kf3=\EOR, kf4=\EOS, khome=\E[H, ri=\EM,
rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m,
rmul=\E[m, sgr0=\E[m, smam=\E[?7h, smir=\E[4h,
- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
+ smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, use=ansi+local1,
+
go140w|graphon go-140 in 132 column mode,
am,
cols#132,
@@ -17038,18 +17519,17 @@ go140w|graphon go-140 in 132 column mode,
go225|go-225|Graphon 225,
OTbs, am, mir, xenl,
cols#80, it#8, lines#25, vt#3,
- blink=\E[5m, bold=\E[1m, clear=\E[H\E[J,
- csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\n, cuf1=\E[C,
+ blink=\E[5m, bold=\E[1m, cub1=^H, cud1=\n, cuf1=\E[C,
cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
- ed=\E[J, el=\E[K, home=\E[H, ht=^I, il1=\E[L, ind=\ED,
- is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, kbs=^H,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP,
- kf2=\EOQ, kf3=\EOR, kf4=\EOS, khome=\E[H, rc=\E8, rev=\E[7m,
+ home=\E[H, ht=^I, il1=\E[L, ind=\ED,
+ is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, kf1=\EOP,
+ kf2=\EOQ, kf3=\EOR, kf4=\EOS, rev=\E[7m,
rf=/usr/share/tabset/vt100, ri=\EM, rmam=\E[?7l,
rmcup=\E[!p\E[?7h\E[2;1;1#w, rmir=\E[4l, rmkx=\E>,
rmso=\E[27m, rmul=\E[24m, rs1=\E[!p\E[?7h\E[2;1;1#w,
- sc=\E7, sgr0=\E[m, smam=\E[?7h, smcup=\E[2;0#w\E[1;25r,
+ sgr0=\E[m, smam=\E[?7h, smcup=\E[2;0#w\E[1;25r,
smir=\E[4h, smkx=\E=, smso=\E[7m, smul=\E[4m,
+ use=ansi+arrows, use=ansi+csr, use=ansi+erase,
#### Harris (Beehive)
#
@@ -17116,7 +17596,7 @@ go225|go-225|Graphon 225,
# NOTE WELL that the rear panel switch should be set to CR/LF,
# not AEP!
#
-sb1|beehive superbee,
+sb1|Beehive SuperBee,
OTbs, am, bw, da, db, mir, ul, xsb,
cols#80, lines#25, xmc#1,
bel=^G, cbt=\E`$<650>, clear=\EH$<1>\EJ$<3>, cr=$<1>\r,
@@ -17127,14 +17607,13 @@ sb1|beehive superbee,
\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s
\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s
\s\s\s\s\s\EP$<3>\s\EO\ER\EA$<3>,
- ind=\n, is2=\EE$<3>\EX\EZ\EO\Eb\Eg\ER, kbs=^_, kcub1=\ED,
- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdl1=\EM, ked=\EJ, kel=\EK,
- kf0=\E2, kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et, kf6=\Eu,
- kf7=\Ev, kf8=\Ew, kf9=\E1, khome=\EH, kich1=\EQ\EO,
+ ind=\n, is2=\EE$<3>\EX\EZ\EO\Eb\Eg\ER, kbs=^_, kdl1=\EM,
+ ked=\EJ, kel=\EK, kf0=\E2, kf9=\E1, khome=\EH, kich1=\EQ\EO,
krmir=\ER, lf0=TAB CLEAR, lf9=TAB SET, rmcup=, rmir=\ER,
rmso=\E_3, rmul=\E_3, sgr0=\E_3, smcup=\EO, smir=\EQ\EO,
- smso=\E_1, smul=\E_0, tbc=\E3,
-sbi|superbee|beehive superbee at Indiana U.,
+ smso=\E_1, smul=\E_0, tbc=\E3, use=hp+pfk-cr,
+ use=vt52+arrows,
+sbi|superbee|Beehive SuperBee at Indiana U.,
xsb,
cr=\r$<1>, il1=\EN$<1>\EL$<9>\EQ \EP$<9> \EO\ER\EA,
use=sb1,
@@ -17148,7 +17627,7 @@ sbi|superbee|beehive superbee at Indiana U.,
# the other two if you want to try to hit that tiny escape key.
# This description is tricky: being able to use cup depends on there being
# 2048 bytes of memory and the hairy <nl> string.
-superbee-xsb|beehive super bee,
+superbee-xsb|Beehive SuperBee (improved),
am, da, db, xsb,
cols#80, it#8, lines#25,
clear=\EH\EJ$<3>, cnorm=\n, cr=\r$<1000>, cub1=^H, cud1=\n,
@@ -17156,13 +17635,12 @@ superbee-xsb|beehive super bee,
dch1=\EP$<3>, dl1=\EM$<100>, ed=\EJ$<3>, el=\EK$<3>,
home=\EH, ht=^I, hts=\E1,
ind=\n\0\0\0\n\0\0\0\EA\EK\0\0\0\ET\ET, is2=\EH\EJ,
- kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kf1=\Ep, kf2=\Eq,
- kf3=\Er, kf4=\Es, kf5=\Et, kf6=\Eu, kf7=\Ev, kf8=\Ew,
khome=\EH, rmso=\E_3, sgr0=\E_3, smso=\E_1, tbc=\E3,
+ use=hp+pfk-cr, use=vt52+arrows,
# This loses on lines > 80 chars long, use at your own risk
-superbeeic|super bee with insert char,
+superbeeic|SuperBee with insert char,
ich1=, rmir=\ER, smir=\EQ, use=superbee-xsb,
-sb2|sb3|fixed superbee,
+sb2|sb3|fixed SuperBee,
xsb@, use=superbee,
#### Beehive Medical Electronics
@@ -17172,35 +17650,34 @@ sb2|sb3|fixed superbee,
# They were made by Beehive Medical Electronics in Utah. They went out of
# business in the early '80s.
#
-# (OK, then, I don't know why a couple of these say "harris beehive".)
+# (OK, then, I don't know why a couple of these say "Harris Beehive".)
#
# Reports are that most of these Beehive entries (except superbee) have not
# been tested and do not work right. <rmso> is a trouble spot. Be warned.
# (bee: <ich1> was empty, which is obviously bogus -- esr)
-beehive|bee|harris beehive,
+beehive|bee|Harris Beehive,
OTbs, am, mir,
cols#80, lines#24,
cbt=\E>, clear=\EE, cub1=^H, cud1=\EB, cuf1=\EC,
cup=\EF%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EP,
dl1=\EM, ed=\EJ, el=\EK, home=\EH, il1=\EL, kbs=^H, kcbt=\E>,
- kclr=\EE, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
- kdch1=\EP, kdl1=\EM, kel=\EK, khome=\EH, kich1=\EQ, kil1=\EL,
- krmir=\E@, rmir=\E@, rmso=\Ed@, rmul=\Ed@, sgr0=\Ed@,
- smir=\EQ, smso=\EdP, smul=\Ed`,
+ kclr=\EE, kdch1=\EP, kdl1=\EM, kel=\EK, khome=\EH, kich1=\EQ,
+ kil1=\EL, krmir=\E@, rmir=\E@, rmso=\Ed@, rmul=\Ed@,
+ sgr0=\Ed@, smir=\EQ, smso=\EdP, smul=\Ed`, use=vt52+arrows,
# set tab is ^F, clear (one) tab is ^V, no way to clear all tabs.
# good grief - does this entry make :sg:/:ug: when it doesn't have to?
# look at those spaces in <rmso>/<smso>. Seems strange to me...
# (beehive: <if=/usr/share/tabset/beehive> removed, no such file. If you
# really care, cook up one using ^F -- esr)
-beehive3|bh3m|beehiveIIIm|harris beehive 3m,
+beehive3|bh3m|beehiveIIIm|Harris Beehive 3m,
OTbs, am,
cols#80, it#8, lines#20,
bel=^G, clear=^E^R, cr=\r, cub1=^H, cud1=\n, cuf1=^L, cuu1=^K,
dl1=\021$<350>, ed=^R, el=^P, home=^E, ht=^I, hts=^F,
il1=\023$<160>, ind=\n, ll=^E^K, rmso=\s^_, smso=^]\s,
-beehive4|bh4|beehive 4,
+beehive4|bh4|Beehive 4,
am,
cols#80, lines#24,
bel=^G, clear=\EE, cr=\r, cub1=\ED, cud1=\n, cuf1=\EC,
@@ -17208,26 +17685,25 @@ beehive4|bh4|beehive 4,
# There was an early Australian kit-built computer called a "Microbee".
# It's not clear whether this is for one of those or for a relative
# of the Beehive.
-microb|microbee|micro bee series,
+microb|microbee|Micro Bee series,
OTbs, am,
cols#80, it#8, lines#24,
bel=^G, clear=\EE, cr=\r, cub1=^H, cud1=\n, cuf1=\EC,
cup=\EF%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
- el=\EK, ht=^I, ind=\n, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
- kcuu1=\EA, kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et,
- kf6=\Eu, kf7=\Ev, kf8=\Ew, kf9=\Ex, khome=\EH, rmso=\Ed@,
+ el=\EK, ht=^I, ind=\n, kf9=\Ex, khome=\EH, rmso=\Ed@,
rmul=\Ed@, sgr0=\Ed@, smso=\s\EdP, smul=\Ed`,
+ use=hp+pfk-cr, use=vt52+arrows,
# 8675, 8686, and bee from Cyrus Rahman
# (8675: changed k10, k11...k16 to k;, F1...F6 -- esr)
-ha8675|harris 8675,
+ha8675|Harris 8675,
is2=\ES\E#\E*\Eh\Em\E?\E1\E9\E@\EX\EU, kf1=^F,
kf10=\Ed, kf11=^W, kf12=\ER, kf13=\EE, kf14=\EI, kf15=\Ei,
kf16=\Eg, kf2=^P, kf3=^N, kf4=^V, kf5=\n, kf6=^T, kf7=^H, kf8=^?,
kf9=\Ee, use=bee,
# (8686: changed k10, k11...k16 to k;, F1...F6; fixed broken continuation
# in :is: -- esr)
-ha8686|harris 8686,
+ha8686|Harris 8686,
is2=\ES\E#\E*\Eh\Em\E?\E1\E9\E@\EX\EU\E"*Z01\E"8F35021B7C83#
\E"8F45021B7D83#\E"8F55021B7E83#\E"8F65021B7F83#\E"8F750
21B7383#\E"8F851BD7#\E"8F95021B7083#\E"8FA5021B7183#\E"8
@@ -17266,13 +17742,13 @@ ha8686|harris 8686,
# redraw the screen. h1000 is untested. It doesn't work in
# vi - this terminal is too dumb for even vi. (The code is
# there but it isn't debugged for this case.)
-hz1000|hazeltine 1000,
+hz1000|Hazeltine 1000,
OTbs,
cols#80, lines#12,
bel=^G, clear=^L, cr=\r, cub1=^H, cud1=\n, cuf1=\s, home=^K,
ind=\n,
# From: <cbosg!ucbvax!pur-ee!cincy!chris> Thu Aug 20 09:09:18 1981
-hz1420|hazeltine 1420,
+hz1420|Hazeltine 1420,
OTbs, am,
cols#80, lines#24,
bel=^G, clear=\E^\, cr=\r, cub1=^H, cud1=\n, cuf1=^P,
@@ -17282,7 +17758,7 @@ hz1420|hazeltine 1420,
# New "safe" cursor movement (11/87) from <cgs@umd5.umd.edu>. Prevents
# freakout with out-of-range args and tn3270. No hz since it needs to
# receive tildes.
-hz1500|hazeltine 1500,
+hz1500|Hazeltine 1500,
OTbs, am, hz,
cols#80, lines#24,
bel=^G, clear=~^\, cr=\r, cub1=^H, cud1=~^K, cuf1=^P,
@@ -17294,7 +17770,7 @@ hz1500|hazeltine 1500,
# (h1510: early versions of this entry apparently had "<rmso=\E^_>,
# <smso=\E^Y>, but these caps were commented out in 8.3; also,
# removed incorrect and overridden ":do=^J:" -- esr)
-hz1510|hazeltine 1510,
+hz1510|Hazeltine 1510,
OTbs, am,
cols#80, lines#24,
bel=^G, clear=\E^\, cr=\r, cub1=^H, cud1=\E^K, cuf1=^P,
@@ -17317,7 +17793,7 @@ hz1520|Hazeltine 1520,
rmso=\E^Y, rs1=\E$\E\005\E?\E\031, sgr0=\E^Y, smso=\E^_,
# This version works with the escape switch off
# (h1520: removed incorrect and overridden ":do=^J:" -- esr)
-hz1520-noesc|hazeltine 1520,
+hz1520-noesc|Hazeltine 1520 (no escape),
am, hz,
cols#80, lines#24,
bel=^G, clear=~^\, cr=\r, cub1=^H, cud1=~^K, cuf1=^P,
@@ -17326,14 +17802,14 @@ hz1520-noesc|hazeltine 1520,
# Note: the h1552 appears to be the first Hazeltine terminal which
# is not braindamaged. It has tildes and backprimes and everything!
# Be sure the auto lf/cr switch is set to cr.
-hz1552|hazeltine 1552,
+hz1552|Hazeltine 1552,
OTbs,
cud1=\n, dl1=\EO, il1=\EE, lf1=blue, lf2=red, lf3=green,
use=vt52,
-hz1552-rv|hazeltine 1552 reverse video,
+hz1552-rv|Hazeltine 1552 reverse video,
cud1=\n, rmso=\ET, smso=\ES, use=hz1552,
# Note: h2000 won't work well because of a clash between upper case and ~'s.
-hz2000|hazeltine 2000,
+hz2000|Hazeltine 2000,
OTbs, OTnc, am,
cols#74, lines#27,
bel=^G, clear=~\034$<6>, cub1=^H, cud1=\n,
@@ -17358,7 +17834,7 @@ esprit|Hazeltine Esprit I,
kf6=^B6\n, kf7=^B7\n, kf8=^B8\n, kf9=^B9\n, khome=\E^R,
lf0=0, lf1=1, lf2=2, lf3=3, lf4=4, lf5=5, lf6=6, lf7=7, lf8=8, lf9=9,
rmkx=\E>, rmso=\E^Y, smkx=\E<, smso=\E^_,
-esprit-am|hazeltine esprit auto-margin,
+esprit-am|Hazeltine esprit auto-margin,
am, use=esprit,
# Hazeltine Modular-1 from Cliff Shackelton <ittvax!ittral!shackelt> via BRL
# Vi it seems always wants to send a control J for "do" and it turned out
@@ -17379,18 +17855,17 @@ hazel|exec80|h80|he80|Hazeltine Executive 80,
OTbs, OTpt, am,
cols#80, it#8, lines#24, vt#3,
OTnl=\n, bel=^G, blink=\E[5m$<2/>, bold=\E[1m$<2/>,
- clear=\E[;H\E[2J$<50/>, cr=\r, csr=\E[%i%p1%d;%p2%dr,
- cub1=^H, cud1=\n, cuf1=\E[C$<2/>,
- cup=\E[%i%p1%d;%p2%dH$<5/>, cuu1=\E[A$<2/>,
- ed=\E[J$<50/>, el=\E[K$<3/>, home=\E[H, ht=^I,
- is2=\E[1;24r\E[24;1H, kbs=^H, kcub1=\EOD, kcud1=\EOB,
- kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP, kf2=\EOQ, kf3=\EOR,
- kf4=\EOS, rc=\E8, rev=\E[7m$<2/>,
+ clear=\E[;H\E[2J$<50/>, cr=\r, cub1=^H, cud1=\n,
+ cuf1=\E[C$<2/>, cup=\E[%i%p1%d;%p2%dH$<5/>,
+ cuu1=\E[A$<2/>, ed=\E[J$<50/>, el=\E[K$<3/>, home=\E[H,
+ ht=^I, is2=\E[1;24r\E[24;1H, kbs=^H, kcub1=\EOD,
+ kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP, kf2=\EOQ,
+ kf3=\EOR, kf4=\EOS, rev=\E[7m$<2/>,
rf=/usr/share/tabset/vt100, ri=\EM$<5/>,
rmkx=\E[?1l\E>, rmso=\E[m$<2/>, rmul=\E[m$<2/>,
- rs1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
+ rs1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
sgr0=\E[m$<2/>, smkx=\E[?1h\E=, smso=\E[7m$<2/>,
- smul=\E[4m$<2/>,
+ smul=\E[4m$<2/>, use=ansi+csr,
#### IBM
#
@@ -17404,14 +17879,14 @@ ibm3101|i3101|IBM 3101-10,
cols#80, lines#24,
bel=^G, clear=\EK, cr=\r, cub1=^H, cud1=\n, cuf1=\EC,
cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
- el=\EI, home=\EH, hts=\E0, ind=\n, kcub1=\ED, kcud1=\EB,
- kcuf1=\EC, kcuu1=\EA, nel=\r\n, tbc=\EH,
+ el=\EI, home=\EH, hts=\E0, ind=\n, nel=\r\n, tbc=\EH,
+ use=vt52+arrows,
ibm3151|IBM 3151 display,
- is2=\E S, rmacs=\E>B, rmcup=\E>B, rs2=\E S, s0ds=\E>B,
+ is2=\E S, rmacs=\E>B, rs2=\E S,
sgr=\E4%{64}%?%p1%t%{65}%|%;%?%p2%t%{66}%|%;%?%p3%t%{65}%|%;
%?%p4%t%{68}%|%;%?%p5%t%{64}%|%;%?%p6%t%{72}%|%;%?%p7%t
%{80}%|%;%c%?%p9%t\E>A%e\E>B%;,
- sgr0=\E4@\E>B, smacs=\E>A, smcup=\E>B, use=ibm3162,
+ sgr0=\E4@\E>B, smacs=\E>A, use=ibm3162,
# From: Mark Easter <marke@fsi-ssd.csg.ssd.fsi.com> 29 Oct 1992
# removed kend, knp, kpp -TD
#
@@ -17429,9 +17904,8 @@ ibm3161|ibm3163|wy60-316X|wyse60-316X|IBM 3161/3163 display,
cud1=\EB, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
cuu1=\EA, dch1=\EQ, dl1=\EO, ed=\EJ, el=\EI, home=\EH,
ich1=\EP \010, il1=\EN, ind=\n, invis=\E4P, kbs=^H, kcbt=\E2,
- kclr=\EL\r, kctab=\E1, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
- kcuu1=\EA, kdch1=\EQ, kdl1=\EO, ked=\EJ, kel=\EI, kf1=\Ea\r,
- kf10=\Ej\r, kf11=\Ek\r, kf12=\El\r, kf13=\E!a\r,
+ kclr=\EL\r, kctab=\E1, kdch1=\EQ, kdl1=\EO, ked=\EJ, kel=\EI,
+ kf1=\Ea\r, kf10=\Ej\r, kf11=\Ek\r, kf12=\El\r, kf13=\E!a\r,
kf14=\E!b\r, kf15=\E!c\r, kf16=\E!d\r, kf17=\E!e\r,
kf18=\E!f\r, kf19=\E!g\r, kf2=\Eb\r, kf20=\E!h\r,
kf21=\E!i\r, kf22=\E!j\r, kf23=\E!k\r, kf24=\E!l\r,
@@ -17443,6 +17917,7 @@ ibm3161|ibm3163|wy60-316X|wyse60-316X|IBM 3161/3163 display,
%?%p4%t%{68}%|%;%?%p5%t%{64}%|%;%?%p6%t%{72}%|%;%?%p7%t
%{80}%|%;%c%?%p9%t\E>A%e\E<@%;,
sgr0=\E4@\E<@, smcup=\E>A, smso=\E4A, smul=\E4B,
+ use=vt52+arrows,
ibm3161-C|IBM 3161-C NLS terminal using cartridge,
rmcup=\E>B, s0ds=\E>B, s1ds=\E>A, smcup=\E>B, use=ibm3161,
@@ -17471,14 +17946,9 @@ ibm5151|wy60-AT|wyse60-AT|IBM 5151 Monochrome display,
cols#80, it#8, lines#25,
acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x
\263,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=\r,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\n,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, dch1=\E[P, dl=\E[%p1%dM,
- dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, home=\E[H,
- hpa=\E[%i%p1%dG, il=\E[%p1%dL, il1=\E[L, ind=\E[S,
- invis=\E[8m, is2=\Ec, kbs=^H, kcbt=\E[Z, kclr=\E[144q,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P,
+ bel=^G, cr=\r, cub1=^H, cud1=\n, cup=\E[%i%p1%d;%p2%dH,
+ dch1=\E[P, ech=\E[%p1%dX, home=\E[H, hpa=\E[%i%p1%dG,
+ ind=\E[S, is2=\Ec, kcbt=\E[Z, kclr=\E[144q, kdch1=\E[P,
ked=\E[148q, kel=\E[142q, kend=\E[146q, kf1=\E[001q,
kf10=\E[010q, kf11=\E[011q, kf12=\E[012q, kf13=\E[013q,
kf14=\E[014q, kf15=\E[015q, kf16=\E[016q, kf17=\E[017q,
@@ -17488,13 +17958,13 @@ ibm5151|wy60-AT|wyse60-AT|IBM 5151 Monochrome display,
kf29=\E[029q, kf3=\E[003q, kf30=\E[030q, kf31=\E[031q,
kf32=\E[032q, kf33=\E[033q, kf34=\E[034q, kf35=\E[035q,
kf36=\E[036q, kf4=\E[004q, kf5=\E[005q, kf6=\E[006q,
- kf7=\E[007q, kf8=\E[008q, kf9=\E[009q, khome=\E[H,
- kich1=\E[139q, kil1=\E[140q, kind=\E[151q, knp=\E[154q,
- kpp=\E[150q, kri=\E[155q, krmir=\E[4l, rev=\E[7m, ri=\E[T,
- rmir=\E[4l, rmso=\E[m, rmul=\E[m, rs2=\Ec,
+ kf7=\E[007q, kf8=\E[008q, kf9=\E[009q, kich1=\E[139q,
+ kil1=\E[140q, kind=\E[151q, knp=\E[154q, kpp=\E[150q,
+ kri=\E[155q, krmir=\E[4l, ri=\E[T, rmir=\E[4l, rs2=\Ec,
sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1
%;%?%p7%t;8%;m,
- sgr0=\E[0m, smir=\E[4h, smso=\E[7m, smul=\E[4m,
+ smir=\E[4h, use=ansi+arrows, use=ansi+erase,
+ use=ansi+idl, use=ansi+local, use=ansi+sgrbold,
use=ecma+index,
ibmaed|IBM Experimental display,
@@ -17503,8 +17973,8 @@ ibmaed|IBM Experimental display,
clear=\EH\EK, cub1=^H, cud1=\EB, cuf1=\EC,
cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EQ,
dl1=\EO, ed=\EJ, el=\EI, flash=\EG, home=\EH, ht=^I, ich1=\EP,
- il1=\EN, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
- rmso=\E0, sgr0=\E0, smso=\E0,
+ il1=\EN, kbs=^H, rmso=\E0, sgr0=\E0, smso=\E0,
+ use=vt52+arrows,
ibm-apl|apl|IBM apl terminal simulator,
lines#25, use=dm1520,
# (ibmmono: this had an unknown `sb' boolean, I changed it to `bs'.
@@ -17519,8 +17989,7 @@ ibmmono|IBM workstation monochrome,
sgr0=\Ew\Eq\Ez\EB, smso=\EZ, smul=\EW, tsl=\Ej\EY8%+ \Eo,
use=ibm3101,
ibmega|IBM Enhanced Color Display,
- cr=\r, cud1=\n, ht=^I, ind=\n, kbs=^H, kcub1=^H, kcud1=\n,
- nel=\r\n, use=ibmmono,
+ ht=^I, kcub1=^H, kcud1=\n, use=ibmmono,
# This color scheme is assumed in some recent IBM terminal descriptions
# (green on black, emulated on a 16-color terminal).
ibm+color|IBM color definitions,
@@ -17541,18 +18010,16 @@ ibm+16color|IBM aixterm color definitions,
setf=%p1%{8}%/%{6}%*%{3}%+\E[%d%p1%{8}%m%Pa%?%ga%{1}%=%t4%e
%ga%{3}%=%t6%e%ga%{4}%=%t1%e%ga%{6}%=%t3%e%ga%d%;m,
ibm5154|IBM 5154 Color display,
- colors#8, ncv@, pairs#64,
+ ncv@,
bold@, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=ibm5151,
use=ibm+color,
ibmega-c|ibm5154-c|IBM Enhanced Color Display with standout and underline,
rmso=\EB, rmul=\EB, smso=\EF\Ef3;, smul=\EF\Ef2;,
use=ibmmono,
ibmvga-c|IBM VGA display color termcap,
- cr=\r, cud1=\n, ht=^I, ind=\n, kbs=^H, kcub1=^H, kcud1=\n,
- nel=\r\n, use=ibmega-c,
+ ht=^I, kcub1=^H, kcud1=\n, use=ibmega-c,
ibmvga|IBM VGA display,
- cr=\r, cud1=\n, ht=^I, ind=\n, kbs=^H, kcub1=^H, kcud1=\n,
- nel=\r\n, use=ibmega,
+ use=ibmega,
# ibmapa* and ibmmono entries come from ACIS 4.3 distribution
rtpc|ibmapa16|IBM 6155 Extended Monochrome Graphics Display,
lines#32,
@@ -17577,51 +18044,39 @@ ibm6153|IBM 6153 Black & White display,
sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p7%t;8%;%?%p6%t;1
2%;m,
sgr0=\E[0;10m, use=ibm5151,
-ibm6153-90|IBM 6153 Black & White display,
+ibm6153-90|IBM 6153 Black & White display (36-line),
cols#90, lines#36,
blink@, bold@, use=ibm5151,
-ibm6153-40|IBM 6153 Black & White display,
+ibm6153-40|IBM 6153 Black & White display (12-line),
cols#40, lines#12, use=ibm6153-90,
ibm8512|ibm8513|IBM color VGA Terminal,
- am, mir, msgr,
- cols#80, it#8, lines#25,
- acsc=jjkkllmmnnqqttuuvvwwxx, blink=\E[5m, bold=\E[1m,
- clear=\E[H\E[J, cub1=\E[D, cud1=\n, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dl=\E[%p1%dM, dl1=\E[M,
- ech=\E[%p1%dX, ed=\E[J, el=\E[K, home=\E[H, il=\E[%p1%dL,
- il1=\E[L, is2=\Eb\E[m\017\E[?7h, kcud1=\E[B, kcuu1=\E[A,
- kf0=\E[010q, kf1=\E[001q, kf2=\E[002q, kf3=\E[003q,
- kf4=\E[004q, kf5=\E[005q, kf6=\E[006q, kf7=\E[007q,
- kf8=\E[008q, kf9=\E[009q, khome=\E[H, rc=\E[u, rev=\E[7m,
+ mir,
+ cub1=\E[D, is2=\Eb\E[m\017\E[?7h, kf0=\E[010q, rc=\E[u,
rmacs=^O, rmam=\E[?7l, rmcup=\E[20h, rmdc=\E[4l,
- rmir=\E[4l, rmso=\E[m, rmul=\E[m,
rs1=\Eb\E[m\017\E[?7h\E[H\E[J, sc=\E[s, sgr0=\E[m,
smacs=^N, smam=\E[?7h, smcup=\E[20;4l\E[?7h\Eb,
- smdc=\E[4h, smir=\E[4h, smso=\E[7m, smul=\E[4m,
- use=ibm8503,
+ smdc=\E[4h, use=ibm8503,
hft-c|HFT with Color,
- colors#8, pairs#64,
acsc=jjkkllmmnnqqttuuvvwwxx, s0ds=\E(B, s1ds=\E(0,
setab=\E[4%p1%dm, setaf=\E[3%p1%dm, sgr0=\E[0m\E(B,
use=ibm5151, use=ibm+color,
hft-c-old|HFT with Color PC850,
- colors#8, pairs#64,
setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=ibm5151,
use=ibm+color,
hft-old|AIWS High Function Terminal,
am, xon,
cols#80, lines#25,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=\r,
- cub1=^H, cud1=\n, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu1=\E[A, dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H,
- ht=^I, ich1=\E[@, il1=\E[L, ind=\n, invis=\E[8m, kbs=^H,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kf1=\E[001q, kf2=\E[002q, kf3=\E[003q, kf4=\E[004q,
- kf5=\E[005q, kf6=\E[006q, kf7=\E[007q, kf8=\E[008q,
- kf9=\E[009q, khome=\E[H, knp=\E[153q, kpp=\E[159q,
+ bel=^G, blink=\E[5m, bold=\E[1m, cr=\r, cub1=^H, cud1=\n,
+ cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P,
+ dl1=\E[M, home=\E[H, ht=^I, ich1=\E[@, il1=\E[L, ind=\n,
+ invis=\E[8m, kf1=\E[001q, kf2=\E[002q, kf3=\E[003q,
+ kf4=\E[004q, kf5=\E[005q, kf6=\E[006q, kf7=\E[007q,
+ kf8=\E[008q, kf9=\E[009q, knp=\E[153q, kpp=\E[159q,
ktbc=\E[010q, rev=\E[7m, rmir=\E6, rmso=\E[m, rmul=\E[m,
- sgr0=\E[m, smir=\E6, smso=\E[7m, smul=\E[4m, use=ibm+color,
-ibm-system1|system1|ibm system/1 computer,
+ sgr0=\E[m, smir=\E6, smso=\E[7m, smul=\E[4m,
+ use=ansi+arrows, use=ansi+erase, use=ibm+color,
+
+ibm-system1|system1|IBM system/1 computer,
am, xt,
cols#80, lines#24,
bel=^G, clear=^Z, cub1=^H, cuf1=^\,
@@ -17636,53 +18091,47 @@ lft|lft-pc850|LFT-PC850|IBM LFT PC850 Device,
cols#80, it#8, lines#25,
acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x
\263,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
- cr=\r, cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\n,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
- dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[2J, el=\E[0K,
- home=\E[H, hpa=\E[%i%p1%dG, ich=\E[%p1%d@, il=\E[%p1%dL,
- il1=\E[L, ind=\ED, invis=\E[8m, is2=\Ec, kbs=^H, kcbt=\E[Z,
- kclr=\E[144q, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kdch1=\E[P, ked=\E[148q, kel=\E[142q,
- kend=\E[146q, kf1=\E[001q, kf10=\E[010q, kf11=\E[011q,
- kf12=\E[012q, kf13=\E[013q, kf14=\E[014q, kf15=\E[015q,
- kf16=\E[016q, kf17=\E[017q, kf18=\E[018q, kf19=\E[019q,
- kf2=\E[002q, kf20=\E[020q, kf21=\E[021q, kf22=\E[022q,
- kf23=\E[023q, kf24=\E[024q, kf25=\E[025q, kf26=\E[026q,
- kf27=\E[027q, kf28=\E[028q, kf29=\E[029q, kf3=\E[003q,
- kf30=\E[030q, kf31=\E[031q, kf32=\E[032q, kf33=\E[033q,
- kf34=\E[034q, kf35=\E[035q, kf36=\E[036q, kf4=\E[004q,
- kf5=\E[005q, kf6=\E[006q, kf7=\E[007q, kf8=\E[008q,
- kf9=\E[009q, khome=\E[H, kich1=\E[139q, kil1=\E[140q,
+ bel=^G, cbt=\E[Z, clear=\E[H\E[J, cr=\r, cub1=^H, cud1=\n,
+ cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\E[P,
+ ech=\E[%p1%dX, ed=\E[2J, el=\E[0K, home=\E[H,
+ hpa=\E[%i%p1%dG, ich=\E[%p1%d@, ind=\ED, is2=\Ec,
+ kcbt=\E[Z, kclr=\E[144q, kdch1=\E[P, ked=\E[148q,
+ kel=\E[142q, kend=\E[146q, kf1=\E[001q, kf10=\E[010q,
+ kf11=\E[011q, kf12=\E[012q, kf13=\E[013q, kf14=\E[014q,
+ kf15=\E[015q, kf16=\E[016q, kf17=\E[017q, kf18=\E[018q,
+ kf19=\E[019q, kf2=\E[002q, kf20=\E[020q, kf21=\E[021q,
+ kf22=\E[022q, kf23=\E[023q, kf24=\E[024q, kf25=\E[025q,
+ kf26=\E[026q, kf27=\E[027q, kf28=\E[028q, kf29=\E[029q,
+ kf3=\E[003q, kf30=\E[030q, kf31=\E[031q, kf32=\E[032q,
+ kf33=\E[033q, kf34=\E[034q, kf35=\E[035q, kf36=\E[036q,
+ kf4=\E[004q, kf5=\E[005q, kf6=\E[006q, kf7=\E[007q,
+ kf8=\E[008q, kf9=\E[009q, kich1=\E[139q, kil1=\E[140q,
kind=\E[151q, knp=\E[154q, kpp=\E[150q, kri=\E[155q,
- krmir=\E[4l, rev=\E[7m, ri=\EL, rmacs=\E(B, rmir=\E[4l,
- rmso=\E[0m, rmul=\E[0m, rs2=\Ec,
+ krmir=\E[4l, ri=\EL, rmacs=\E(B, rmir=\E[4l, rmso=\E[0m,
+ rmul=\E[0m, rs2=\Ec,
sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1
%;%?%p7%t;8%;m%?%p9%t\E(0%e\E(B%;,
- sgr0=\E[0m, smacs=\E(0, smir=\E[4h, smso=\E[7m, smul=\E[4m,
- tbc=\E[3g, use=ecma+index,
+ smacs=\E(0, smir=\E[4h, tbc=\E[3g, use=ansi+arrows,
+ use=ansi+idl, use=ansi+local, use=ansi+sgrbold,
+ use=ecma+index,
+
# "Megapel" refers to the display adapter, which was used with the IBM RT
# aka IBM 6150.
ibm5081|hft|IBM Megapel Color display,
acsc=jjkkllmmnnqqttuuvvwwxx, blink@, bold@, s0ds=\E(B,
s1ds=\E(0, sgr0=\E[0m\E(B, use=ibm5154,
ibm5081-c|ibmmpel-c|IBM 5081 1024x1024 256/4096 Megapel enhanced color display,
- eslok, hs,
lines#33,
- dsl=\Ej\EYA \EI\Ek, fsl=\Ek, tsl=\Ej\EYA%+ \Eo,
- use=ibmega-c,
+ dsl=\Ej\EYA \EI\Ek, tsl=\Ej\EYA%+ \Eo, use=ibmega-c,
ibm8503|ibm8507|ibm8604|IBM 8503 B & W VGA display,
use=hft-c,
ibm8514|IBM 8514/a color VGA display,
eslok, hs,
dsl=\Ej\EYI \EI\Ek, fsl=\Ek, tsl=\Ej\EYI%+ \Eo, use=hft,
ibm8514-c|IBM 8514 color display with standout and underline,
- eslok, hs,
lines#41,
- cr=\r, cud1=\n, dsl=\Ej\EYI \EI\Ek, fsl=\Ek, ht=^I, ind=\n,
- kbs=^H, kcub1=^H, kcud1=\n, nel=\r\n, tsl=\Ej\EYI%+ \Eo,
- use=ibmega-c,
+ dsl=\Ej\EYI \EI\Ek, ht=^I, kcub1=^H, kcud1=\n,
+ tsl=\Ej\EYI%+ \Eo, use=ibmega-c,
#
# AIX entries. IBM ships these with AIX 3.2.5.
@@ -17690,27 +18139,27 @@ ibm8514-c|IBM 8514 color display with standout and underline,
# -- added rmacs, smacs based on manpage -TD
# Note that we could use ibm+16color, but that is not how IBM defines this one.
aixterm|IBM Aixterm Terminal Emulator,
- eslok, hs,
- acsc=jjkkllmmnnqqttuuvvwwxx, bold=\E[1m, dsl=\E[?E,
- fsl=\E[?F, rc=\E8, ri@, rmacs=\E(B, s0ds=\E(B, s1ds=\E(0,
- sc=\E7,
+ acsc=jjkkllmmnnqqttuuvvwwxx, bold=\E[1m, rc=\E8, ri@,
+ rmacs=\E(B, s0ds=\E(B, s1ds=\E(0, sc=\E7,
sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p6%t;1%;%?%p7
%t;8%;m%?%p9%t\E(0%e\E(B%;,
- sgr0=\E[0;10m\E(B, smacs=\E(0, tsl=\E[?%p1%dT,
- use=ibm6154,
-aixterm-m|IBM AIXterm Monochrome Terminal Emulator,
+ sgr0=\E[0;10m\E(B, smacs=\E(0, use=ibm6154,
+ use=aixterm+sl,
+aixterm+sl|status line for AIXterm,
eslok, hs,
- acsc=jjkkllmmnnqqttuuvvwwxx, bold=\E[1m, dsl=\E[?E,
- fsl=\E[?F, ri@, s0ds=\E(B, s1ds=\E(0,
+ dsl=\E[?E, fsl=\E[?F, tsl=\E[?%p1%dT,
+
+aixterm-m|IBM AIXterm Monochrome Terminal Emulator,
+ acsc=jjkkllmmnnqqttuuvvwwxx, bold=\E[1m, ri@, s0ds=\E(B,
+ s1ds=\E(0,
sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p6%t;1%;%?%p7
%t;8%;m%?%p9%t\E(0%e\E(B%;,
- sgr0=\E[0;10m\E(B, tsl=\E[?%p1%dT, use=ibm6153,
+ sgr0=\E[0;10m\E(B, use=ibm6153, use=aixterm+sl,
aixterm-m-old|old IBM AIXterm Monochrome Terminal Emulator,
- eslok, hs,
- bold=\E[1m, dsl=\E[?E, fsl=\E[?F, ri@,
+ bold=\E[1m, ri@,
sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p6%t;1%;%?%p7
%t;8%;m,
- tsl=\E[?%p1%dT, use=ibm6153,
+ use=ibm6153, use=aixterm+sl,
jaixterm|IBM Kanji Aixterm Terminal Eemulator,
acsc@, rmacs@,
sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p6%t;1%;%?%p7%t;8
@@ -17737,21 +18186,28 @@ i100|gt100|gt100a|General Terminal 100A (formerly Infoton 100),
cup=\Ef%p2%{32}%+%c%p1%{32}%+%c, cuu1=\EA, dl1=\EM,
ed=\EJ, el=\EK, flash=\Eb$<200/>\Ea, home=\EH, il1=\EL,
ind=\n, rmso=\Ea, smso=\Eb,
-i400|infoton 400,
+
+i400|Infoton 400,
OTbs, am,
cols#80, lines#25,
bel=^G, clear=\E[2J, cr=\r, cub1=^H, cud1=\n, cuf1=\E[C,
cup=\E[%i%p1%3d;%p2%3dH, cuu1=\E[A,
dch1=\E[4h\E[2Q\E[P\E[4l\E[0Q, dl1=\E[M, el=\E[N,
il1=\E[L, ind=\n, rmir=\E[4l\E[0Q, smir=\E[4h\E[2Q,
+
# (addrinfo: removed obsolete ":bc=^Z:" -- esr)
-addrinfo,
- am,
- cols#80, lines#24,
- bel=^G, clear=^L, cr=\r, cub1=^Z, cud1=\n, cuf1=^Y,
- cup=\037%p1%c%p2%c, cuu1=^\, ed=^K, home=^H, ind=\n, ll=^H^\,
+addrinfo|cursor-addressable Infoton,
+ cup=\037%p1%c%p2%c, home=^H, use=infoton,
+
+# "VISTAR II/HZ Technical Users Manual" (May 1975).
+#
+infoton2|cursor-addressable Infoton VISTAR II,
+ cup=~\021%p2%c%p1%c, home=^H, use=infoton,
+
+# "VISTAR Technical User's Manual" (October 1972).
+#
# (infoton: used to have the no-ops <lh#0>, <lw#0>, <nlab#0> -- esr)
-infoton,
+infoton|Infoton VISTAR,
am,
cols#80, lines#24,
bel=^G, clear=^L, cr=\r, cub1=^Z, cud1=\n, cuf1=^Y, cuu1=^\,
@@ -18011,7 +18467,7 @@ infoton,
# Codes and info from Peter Disdale <pete@pdlmail.demon.co.uk> 12 May 1997
#
# Entry is by esr going solely on above information and is UNTESTED.
-# This actually looks a lot like a Televideo 9xx.
+# This actually looks a lot like a TeleVideo 9xx.
# This entry uses page 0 and is monochrome; I'm not brave enough to try
# to make color work without a test terminal. The <am> capability is a guess.
# The initialization string sets conversation mode, blinking underline cursor,
@@ -18056,14 +18512,14 @@ intext|Interactive Systems Corporation modified owl 1200,
kcub1=^_, kcud1=\n, kcuf1=^^, kcuu1=^\, kf0=^VJ\r, kf1=^VA\r,
kf2=^VB\r, kf3=^VC\r, kf4=^VD\r, kf5=^VE\r, kf6=^VF\r,
kf7=^VG\r, kf8=^VH\r, kf9=^VI\r, khome=^Z, rmir=^V<,
- rmkx=^V9, rmso=^V#\s, smir=^V;, smkx=\036\:\264\026%%,
+ rmkx=^V9, rmso=^V#\s, smir=^V;, smkx=\036:\264\026%%,
smso=^V$\,,
intext2|intextii|INTERACTIVE modified owl 1251,
am, bw, ul,
cols#80, lines#24, xmc#0,
- bel=^G, cbt=\E[Z, clear=\E[H\E[2J, cr=\r, cub1=\E[D,
- cud1=\E[B, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
- dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K,
+ bel=^G, cbt=\E[Z, clear=\E[H\E[2J, cr=\r,
+ cup=\E[%i%p1%d;%p2%dH, dch1=\E[P, dl1=\E[M, ed=\E[J,
+ el=\E[K,
flash=\E[;;;;;;;;;2;;u$<200/>\E[;;;;;;;;;1;;u,
hpa=\E[%p1%{1}%+%dG, ht=^I, ich1=\E[@, il1=\E[L, ind=\E[S,
kbs=^H, kcub1=\ED\r, kcud1=\EB\r, kcuf1=\EC\r, kcuu1=\EA\r,
@@ -18072,7 +18528,7 @@ intext2|intextii|INTERACTIVE modified owl 1251,
khome=\ER\r, lf0=REFRSH, lf1=DEL CH, lf2=TABSET, lf3=GOTO,
lf4=+PAGE, lf5=+SRCH, lf6=-PAGE, lf7=-SRCH, lf8=LEFT,
lf9=RIGHT, ri=\E[T, rmso=\E[2 D, rmul=\E[2 D, smso=\E[6 D,
- smul=\E[18 D,
+ smul=\E[18 D, use=ansi+local1,
#### Kimtron (abm, kt)
#
@@ -18174,13 +18630,13 @@ kt7ix|kimtron model kt-7 or 70 in IX mode,
cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
dch1=\EW, dim=\EG@, dl1=\ER, dsl=\Ef\r, ed=\EY, el=\ET, fsl=\r,
home=^^, ht=^I, ich1=\EQ, il1=\EE, ind=\n,
- is2=\EG0\E s\017\E~, kbs=^H, kcbt=\EI, kclr=\E*,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdl1=\ER,
- ked=\EY, kel=\ET, kend=\EY, kf0=^AI\r, kf1=^A@\r, kf2=^AA\r,
+ is2=\EG0\E s\017\E~, kcbt=\EI, kclr=\E*, kdl1=\ER, ked=\EY,
+ kel=\ET, kend=\EY, kf0=^AI\r, kf1=^A@\r, kf2=^AA\r,
kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\EQ, kil1=\EE, knp=\EJ,
nel=\r\n, pulse=\EK, rmacs=\E%%, rmir=, rmso=\EG0, rmul=\EG0,
sgr0=\EG0, smacs=\E$, smir=, smso=\EG4, smul=\EG8, tsl=\Ef,
+ use=ansi+arrows,
#### Microdata/MDIS
#
@@ -18196,7 +18652,7 @@ kt7ix|kimtron model kt-7 or 70 in IX mode,
# =========================================
#
# Prism-1, Prism-2 and P99:
-# Ancient Microdata and CMC terminals, vaguely like Adds Regent 25.
+# Ancient Microdata and CMC terminals, vaguely like ADDS Regent 25.
#
# Prism-4 and Prism-5:
# Slightly less ancient range of Microdata terminals. Follow-on from
@@ -18355,33 +18811,29 @@ prism8-w|p8-w|P8-W|MDC Prism-8 in 132 column mode,
# . Padding values (sets xon)
# (esr: commented out <smacs>/<rmacs> because there's no <acsc>)
#
-prism9|p9|P9|MDC Prism-9 in ANSII mode,
+prism9|p9|P9|MDC Prism-9 in ANSI mode,
am, bw, hs, msgr, xenl, xon,
- cols#80, it#8, lines#24, vt#3, wsl#72,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[<4l,
- clear=^L, cnorm=\E[<4h, cr=\r, csr=\E[%i%p1%d;%p2%d%%v,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\n,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
- dl=\E[%p1%dM, dl1=\E[M, dsl=\E[%}\024, ech=\E[%p1%dX,
- ed=\E[J$<10>, el=\E[K, fsl=^T, home=\E[H, hpa=\E[%i%p1%d`,
- ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=\n,
- is2=\E[&p\E[<12l\E F, kbs=^H, kclr=^L, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\E[11~,
- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
- kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
- kf18=\E[32~, kf2=\E[12~, kf3=\E[13~, kf4=\E[14~,
- kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- khome=\E[H, nel=\r\n, prot=\E[32%{, rc=\E[%z,
- rep=\E[%p2%db%p1%c, rev=\E[7m, ri=\E[L, rmir=\E[4l,
- rmso=\E[27m, rmul=\E[24m,
+ cols#80, lines#24, vt#3, wsl#72,
+ bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[<4l, clear=^L,
+ cnorm=\E[<4h, cr=\r, csr=\E[%i%p1%d;%p2%d%%v, cub1=^H,
+ cud1=\n, cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\E[P,
+ dsl=\E[%}\024, ech=\E[%p1%dX, ed=\E[J$<10>, el=\E[K,
+ fsl=^T, home=\E[H, hpa=\E[%i%p1%d`, ind=\n,
+ is2=\E[&p\E[<12l\E F, kclr=^L, kf1=\E[11~, kf10=\E[21~,
+ kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
+ kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
+ kf2=\E[12~, kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[17~,
+ kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, nel=\r\n, prot=\E[32%{,
+ rc=\E[%z, rep=\E[%p2%db%p1%c, rev=\E[7m, ri=\E[L,
+ rmir=\E[4l, rmso=\E[27m, rmul=\E[24m,
rs2=\E[&p\E[<12l\E\sF\E[3g\E[9;17;25;33;41;49;57;65;73
\sN,
sc=\E[%y,
sgr=\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p6%t;1%;m%?
%p8%t\E[32%%{%;%?%p9%t\016%e\017%;,
sgr0=\E[0m\017, smir=\E[4h, smso=\E[7m, smul=\E[4m,
- tbc=\E[3g, tsl=\E[%i%p1%d%%}, vpa=\E[%i%p1%dd,
+ tsl=\E[%i%p1%d%%}, vpa=\E[%i%p1%dd, use=ansi+arrows,
+ use=ansi+idl, use=ansi+inittabs, use=ansi+local,
use=ansi+pp,
# p9-w: Prism-9 in 132 column mode
@@ -18402,8 +18854,8 @@ prism9-w|p9-w|P9-W|MDC Prism-9 in 132 column mode,
# Insertion and deletion operations possible.
#
prism9-8|p9-8|P9-8|MDC Prism-9 in P8 mode,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, use=p8,
+ dch=\E[%p1%dP, dch1=\E[P, ich=\E[%p1%d@, ich1=\E[@,
+ use=ansi+idl, use=p8,
# p9-8-w: Prism-9 in P8 and 132 column modes
# ------------------------------------------
@@ -18411,8 +18863,8 @@ prism9-8|p9-8|P9-8|MDC Prism-9 in P8 mode,
# P9 terminal in P8 emulation mode and 132 column mode.
#
prism9-8-w|p9-8-w|P9-8-W|MDC Prism-9 in Prism 8 emulation and 132 column mode,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, use=p8-w,
+ dch=\E[%p1%dP, dch1=\E[P, ich=\E[%p1%d@, ich1=\E[@,
+ use=ansi+idl, use=p8-w,
# p12: Prism-12 in ANSI mode
# ---------------------------
@@ -18448,12 +18900,12 @@ prism12-m|p12-m|P12-M|MDC Prism-12 in MDC emulation mode,
prism12-m-w|p12-m-w|P12-M-W|MDC Prism-12 in MDC emulation and 132 column mode,
use=p9-8-w,
-# p14: Prism-14 in ANSII mode
+# p14: Prism-14 in ANSI mode
# ---------------------------
#
# See p9 definition.
#
-prism14|p14|P14|MDC Prism-14 in ANSII mode,
+prism14|p14|P14|MDC Prism-14 in ANSI mode,
use=p9,
# p14-w: Prism-14 in 132 column mode
@@ -18525,8 +18977,7 @@ act4|microterm|microterm act iv,
# The act 5 has hardware tabs, but they are in columns 8, 16, 24, 32, 41 (!)...
# (microterm5: removed obsolete ":ma==^Z^P^Xl^Kj:" -- esr)
act5|microterm5|microterm act v,
- kcub1=^H, kcud1=^K, kcuf1=^X, kcuu1=^Z, ri=\EH$<3>, uc=^H\EA,
- use=act4,
+ ri=\EH$<3>, uc=^H\EA, use=act4,
# Mimes using brightness for standout. Half bright is really dim unless
# you turn up the brightness so far that lines show up on the screen.
mime-fb|full bright mime1,
@@ -18546,7 +18997,7 @@ mime|mime1|mime2|mimei|mimeii|microterm mime1,
kcuf1=^X, kcuu1=^Z, ri=\022$<3>, uc=^U,
# These termcaps (for mime2a) put the terminal in low intensity mode
# since high intensity mode is so obnoxious.
-mime2a-s|microterm mime2a (emulating an enhanced soroc iq120),
+mime2a-s|microterm mime2a (emulating an enhanced Soroc iq120),
OTbs, am,
cols#80, lines#24,
bel=^G, clear=\EL, cr=\r, cub1=^H, cud1=\n, cuf1=^L,
@@ -18554,21 +19005,21 @@ mime2a-s|microterm mime2a (emulating an enhanced soroc iq120),
dl1=\027$<20*>, ed=\EJ$<20*>, el=\EK, home=^^,
il1=\001$<20*>, ind=\n, ip=$<2>, is2=\E), kcub1=^H, kcud1=\n,
kcuf1=^L, kcuu1=^K, ri=\EI, rmir=^Z, rmso=\E;, rmul=\E7,
- smir=\EE, smso=\E\:, smul=\E6,
+ smir=\EE, smso=\E:, smul=\E6,
# This is the preferred mode (but ^X can't be used as a kill character)
-mime2a|mime2a-v|microterm mime2a (emulating an enhanced vt52),
+mime2a|mime2a-v|microterm mime2a (emulating an enhanced VT52),
OTbs,
cols#80, it#8, lines#24,
bel=^G, clear=\EL, cr=\r, cub1=^H, cud1=\n, cuf1=\EC,
cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=^N,
dl1=\027$<20*>, ed=\EQ$<20*>, el=\EP, home=\EH, ht=^I,
- il1=\001$<20*>, ind=\n, ip=$<2>, is2=^Y, kcub1=\ED,
- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, ri=\EA, rmir=^Z, rmso=\E9,
- rmul=\E5, smir=^O, smso=\E8, smul=\E4,
+ il1=\001$<20*>, ind=\n, ip=$<2>, is2=^Y, ri=\EA, rmir=^Z,
+ rmso=\E9, rmul=\E5, smir=^O, smso=\E8, smul=\E4,
+ use=vt52+arrows,
# (mime3a: removed obsolete ":ma=^X ^K^J^Z^P:" -- esr)
mime3a|mime1 emulating 3a,
am@,
- kcub1=^H, kcud1=^K, kcuf1=^X, kcuu1=^Z, use=adm3a,
+ kcud1=^K, kcuf1=^X, kcuu1=^Z, use=adm3a,
mime3ax|mime-3ax|mime1 emulating enhanced 3a,
it#8,
dl1=\027$<80>, ed=^_, el=^X, ht=\011$<3>, il1=\001$<80>,
@@ -18601,23 +19052,19 @@ mm340|mime340|mime 340,
mt4520-rv|micro-term 4520 reverse video,
am, hs, msgr, xenl, xon,
cols#80, it#8, lines#24, wsl#80,
- bel=^G, clear=\E[H\E[J, cnorm=\E[0V\E8, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E7\E[0U, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
- dl1=\E[M, ed=\E[J, el=\E[K, flash=\E[?5l$<200/>\E[?5h,
- fsl=\E[?5l\E[?5h, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
- ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\ED,
+ bel=^G, cnorm=\E[0V\E8, cr=\r, cup=\E[%i%p1%d;%p2%dH,
+ cvvis=\E7\E[0U, dch=\E[%p1%dP, dch1=\E[P,
+ flash=\E[?5l$<200/>\E[?5h, fsl=\E[?5l\E[?5h, home=\E[H,
+ ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, ind=\ED,
is2=\E(B\E[2l\E>\E[20l\E[?3l\E[?5h\E[?7h\E[1;24r\E[24;1H\E[H
\E[J,
- kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, khome=\E[H,
- ll=\E[24;1H, nel=\EE, rc=\E8, rf=/usr/share/tabset/vt100,
- ri=\EM, rmam=\E[?7l, rmso=\E[0m, rmul=\E[24m,
+ kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, ll=\E[24;1H, nel=\EE,
+ rf=/usr/share/tabset/vt100, ri=\EM, rmam=\E[?7l,
+ rmso=\E[0m, rmul=\E[24m,
rs1=\E(B\E[2l\E>\E[20l\E[?3l\E[?5h\E[?7h\E[H\E[J,
- sc=\E7, sgr0=\E[m, smam=\E[?7h, smso=\E[7m, smul=\E[4m,
- tbc=\E[g, tsl=\E[25;1H,
+ sgr0=\E[m, smam=\E[?7h, smso=\E[7m, smul=\E[4m, tbc=\E[g,
+ tsl=\E[25;1H, use=ansi+arrows, use=ansi+csr,
+ use=ansi+erase, use=ansi+idl, use=ansi+local,
# Fri Aug 5 08:11:57 1983
# This entry works for the ergo 4000 with the following setups:
@@ -18631,17 +19078,17 @@ mt4520-rv|micro-term 4520 reverse video,
ergo4000|microterm ergo 4000,
da, db, msgr,
cols#80, lines#66,
- bel=^G, clear=\E[H\E[2J$<80>, cr=\r, cub1=^H, cud1=\E[B,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
- dch1=\E[1P$<80>, dl1=\E[1M$<5*>, ed=\E[0J$<15>,
- el=\E[0K$<13>, ht=^I, il1=\E[1L$<5*>, ind=\ED$<20*>,
+ bel=^G, clear=\E[H\E[2J$<80>, cr=\r, cub1=^H,
+ cup=\E[%i%p1%d;%p2%dH, dch1=\E[1P$<80>, dl1=\E[1M$<5*>,
+ ed=\E[0J$<15>, el=\E[0K$<13>, ht=^I, il1=\E[1L$<5*>,
+ ind=\ED$<20*>,
is2=\E<\E=\E[?1l\E[?4l\E[?5l\E[?7h\E[?8h$<300>,
kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP,
kf2=\EOQ, kf3=\EOR, kf4=\EOS, lf1=pf1, lf2=pf2, lf3=pf3,
lf4=pf4, ri=\EM$<20*>, rmam=\E[?7l, rmir=\E[4l,
rmkx=\E=$<4>, rmso=\E[m$<20>, sgr0=\E[m$<20>,
smam=\E[?7m, smir=\E[4h$<6>, smkx=\E=$<4>,
- smso=\E[7m$<20>,
+ smso=\E[7m$<20>, use=ansi+local1,
#### NCR
#
@@ -18657,26 +19104,26 @@ ergo4000|microterm ergo 4000,
# capabilities.X
#
# The Intecolor emulation of the NCR 2900/260C color terminal is basically a
-# DEC vt200/300 with color capabilities added.
-ncr260intan|NCR Intecolor emulation of the 2900_260C with an ANSI keyboard,
+# DEC VT200/300 with color capabilities added.
+ncr260intan|NCR Intecolor emulation of the 2900/260C with an ANSI keyboard,
colors#8, pairs#64,
op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
- use=ncr260vt300an,
+ use=decid+cpr, use=ncr260vt300an,
# The Intecolor emulation of the NCR 2900/260C color terminal is basically a
-# DEC vt200/300 with color capabilities added.
-ncr260intwan|NCR Intecolor emulation of the 2900_260C with an ANSI keyboard,
+# DEC VT200/300 with color capabilities added.
+ncr260intwan|NCR Intecolor emulation of the 2900/260C with an ANSI keyboard (132 column),
colors#8, pairs#64,
op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
- use=ncr260vt300wan,
+ use=decid+cpr, use=ncr260vt300wan,
# The Intecolor emulation of the NCR 2900/260C color terminal is basically a
-# DEC vt200/300 with color capabilities added.
-ncr260intpp|NCR Intecolor emulation of the 2900_260C with a PC+ keyboard,
+# DEC VT200/300 with color capabilities added.
+ncr260intpp|NCR Intecolor emulation of the 2900/260C with a PC+ keyboard,
colors#8, pairs#64,
op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
use=ncr260vt300pp,
# The Intecolor emulation of the NCR 2900/260C color terminal is basically a
-# DEC vt200/300 with color capabilities added.
-ncr260intwpp|NCR Intecolor emulation of the 2900_260C with a PC+ keyboard in 132 column mode,
+# DEC VT200/300 with color capabilities added.
+ncr260intwpp|NCR Intecolor emulation of the 2900/260C with a PC+ keyboard (132 column),
colors#8, pairs#64,
op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
use=ncr260vt300wpp,
@@ -18688,21 +19135,21 @@ ncr260intwpp|NCR Intecolor emulation of the 2900_260C with a PC+ keyboard in 132
# attributes can be removed.
# Mapping to ASCII character set ('acsc' capability) can also be
# restored if needed.
-ncr260vppp|NCR 2900_260 viewpoint,
- am, bw, hs, km, mc5i, mir, msgr, xon,
+ncr260vppp|NCR 2900/260 viewpoint,
+ am, bw, km, mc5i, mir, msgr, xon,
cols#80, lines#24, nlab#32, xmc#1,
- acsc=07a?h;j5k3l2m1n8q\:t4u9v=w0x6, bel=^G, blink=\EG2,
+ acsc=07a?h;j5k3l2m1n8q:t4u9v=w0x6, bel=^G, blink=\EG2,
cbt=\EI, civis=\E`0, clear=\014$<40>, cnorm=\E`5,
cr=\r$<2>, cub1=\010$<2>, cud1=\n$<2>, cuf1=\006$<2>,
cup=\EY%p1%{32}%+%c%p2%{32}%+%c$<5>, cuu1=\032$<2>,
- dch1=\EW$<2>, dim=\EGp, dl1=\El$<2>, dsl=\E`c, ed=\Ek$<2>,
- el=\EK$<2>, fsl=\r, home=\036$<2>, ht=^I, hts=\E1,
- il1=\EM$<2>, ind=\n$<2>, invis=\EG1,
- is2=\Ee6\E~%$<100>\E+\E`\:\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0
+ dch1=\EW$<2>, dim=\EGp, dl1=\El$<2>, ed=\Ek$<2>,
+ el=\EK$<2>, home=\036$<2>, ht=^I, hts=\E1, il1=\EM$<2>,
+ ind=\n$<2>, invis=\EG1,
+ is2=\Ee6\E~%$<100>\E+\E`:\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0
\EcC1\Ee7$<100>,
kDC=\El, kEND=\Ek, kHOM=^A, kPRT=\E7, kRIT=^F, ka1=^A, ka3=\EJ,
kbs=^H, kc1=\ET, kc3=\EJ, kcub1=^U, kcud1=\n, kcuf1=^F,
- kcuu1=^Z, kdch1=\EW, kend=\EK, kf1=^B1\r, kf10=\002\:\r,
+ kcuu1=^Z, kdch1=\EW, kend=\EK, kf1=^B1\r, kf10=^B:\r,
kf11=^B;\r, kf12=^B<\r, kf13=^B=\r, kf14=^B>\r, kf15=^B?\r,
kf16=^B@\r, kf17=^B!\r, kf18=^B"\r, kf19=^B#\r, kf2=^B2\r,
kf20=^B$\r, kf21=^B%^M, kf22=^B&\r, kf23=^B'\r, kf24=^B(\r,
@@ -18714,11 +19161,16 @@ ncr260vppp|NCR 2900_260 viewpoint,
mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<5>,
nel=\037$<2>, rev=\EG4, ri=\Ej$<2>, rmacs=\EcB0\EH\003,
rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20,
- rs2=\Ee6\E~%$<100>\E+\E`\:\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0
+ rs2=\Ee6\E~%$<100>\E+\E`:\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0
\EcC1\Ee7$<100>,
sgr0=\EG0\EH\003, smacs=\EcB1\EH\002, smir=\Eq,
- smso=\EG4, smul=\EG8, smxon=\Ec21, tsl=\EF,
-ncr260vpwpp|NCR 2900_260 viewpoint wide mode,
+ smso=\EG4, smul=\EG8, smxon=\Ec21, use=ncr260vp+sl,
+
+ncr260vp+sl|NCR 2900/260 viewpoint with status-line,
+ hs,
+ dsl=\E`c, fsl=\r, tsl=\EF,
+
+ncr260vpwpp|NCR 2900/260 viewpoint wide mode,
cols#132,
cup=\Ea%i%p1%dR%p2%dC$<30>,
is2=\Ee6\E~%$<100>\E+\E`;\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0
@@ -18726,38 +19178,41 @@ ncr260vpwpp|NCR 2900_260 viewpoint wide mode,
rs2=\Ee6\E~%$<100>\E+\E`;\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0
\EcC1\Ee7$<100>,
use=ncr260vppp,
-ncr260vt100an|NCR 2900_260 vt100 with ansi kybd,
- am, hs, mir, msgr, xenl, xon,
+
+ncr260vt100an|NCR 2900/260 VT100 with ANSI keyboard,
+ am, mir, msgr, xenl, xon,
cols#80, lines#24, nlab#32,
acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G,
- blink=\E[5m, bold=\E[1m, clear=\E[2J\E[1;1H$<20>,
- cr=\r$<1>, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD$<5>,
+ clear=\E[2J\E[1;1H$<20>, cr=\r$<1>, cub=\E[%p1%dD$<5>,
cub1=\E[D$<5>, cud=\E[%p1%dB$<5>, cud1=\E[B$<5>,
cuf=\E[%p1%dC$<5>, cuf1=\E[C$<5>,
cup=\E[%i%p1%d;%p2%dH$<10>, cuu=\E[%p1%dA$<5>,
cuu1=\E[A$<5>, dch=\E[%p1%dP$<5>, dch1=\E[1P$<5>,
- dl=\E[%p1%dM$<5>, dl1=\E[M$<5>, dsl=\E[0$~\E[1$~,
- ech=\E[%p1%dX, ed=\E[0J$<5>, el=\E[0K$<3>, el1=\E[1K$<3>,
- fsl=\E[0$}, home=\E[H$<1>, hpa=\E[%p1%dG$<40>, ht=^I,
- hts=\EH, ich=\E[%p1%d@$<5>, il=\E[%p1%dL$<5>,
- il1=\E[L$<5>, ind=\ED$<5>, indn=\E[%p1%dE$<5>,
- invis=\E[8m,
+ dl=\E[%p1%dM$<5>, dl1=\E[M$<5>, ech=\E[%p1%dX,
+ ed=\E[0J$<5>, el=\E[0K$<3>, el1=\E[1K$<3>, home=\E[H$<1>,
+ hpa=\E[%p1%dG$<40>, ht=^I, hts=\EH, ich=\E[%p1%d@$<5>,
+ il=\E[%p1%dL$<5>, il1=\E[L$<5>, ind=\ED$<5>,
+ indn=\E[%p1%dE$<5>,
is2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<
200>,
kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- khlp=\E[28~, kich1=\E[2~, krdo=\E[29~, nel=\EE$<5>, rc=\E8,
- rev=\E[7m, ri=\EM$<5>, rmacs=^O, rmir=\E[4l,
- rmkx=\E[?1l\E>, rmso=\E[0m, rmul=\E[0m,
+ khlp=\E[28~, kich1=\E[2~, krdo=\E[29~, nel=\EE$<5>,
+ ri=\EM$<5>, rmacs=^O, rmir=\E[4l, rmkx=\E[?1l\E>,
+ rmso=\E[0m, rmul=\E[0m,
rs2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<
200>,
- sc=\E7,
sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5
%;%?%p7%t;8%;m%?%p9%t\016%e\017%;$<20>,
sgr0=\E[0m\017$<20>, smacs=^N, smir=\E[4h,
- smkx=\E[?1h\E=, smso=\E[1;7m, smul=\E[4m, tbc=\E[3g,
- tsl=\E[2$~\E[1$}, vpa=\E[%p1%dd$<40>, use=vt220+vtedit,
- use=vt220+cvis, use=vt220+keypad,
-ncr260vt100wan|NCR 2900_260 vt100 wide mode ansi kybd,
+ smkx=\E[?1h\E=, smso=\E[1;7m, tbc=\E[3g,
+ vpa=\E[%p1%dd$<40>, use=ansi+csr, use=ansi+sgrbold,
+ use=decid+cpr, use=vt220+vtedit, use=vt220+cvis,
+ use=vt220+keypad, use=ncr260vt+sl,
+
+ncr260vt+sl|NCR 2900/260 VT100 status line,
+ hs,
+ dsl=\E[0$~\E[1$~, fsl=\E[0$}, tsl=\E[2$~\E[1$},
+ncr260vt100wan|NCR 2900/260 VT100 wide mode ANSI keyboard,
cols#132,
cup=\E[%i%p1%d;%p2%dH$<30>,
is2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<
@@ -18765,17 +19220,13 @@ ncr260vt100wan|NCR 2900_260 vt100 wide mode ansi kybd,
rs2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<
200>,
use=ncr260vt100an,
-ncr260vt100pp|NCR 2900_260 vt100 with PC+ kybd,
- is2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<
- 200>,
+ncr260vt100pp|NCR 2900/260 VT100 with PC+ keyboard,
ka1=\E[H, ka3=\EOu, kb2=\E[V, kc3=\E[U, kcub1=\E[D,
kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[4~,
- kend=\E[5~, khome=\E[2~, kich1=\E[1~, knp=\E[6~, kpp=\E[3~,
- lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, rmkx=\E>,
- rs2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<
- 200>,
- smkx=\E=, use=ncr260vt100an,
-ncr260vt100wpp|NCR 2900_260 vt100 wide mode pc+ kybd,
+ kend=\E[5~, khome=\E[2~, kich1=\E[1~, kpp=\E[3~, lf1=pf1,
+ lf2=pf2, lf3=pf3, lf4=pf4, rmkx=\E>, smkx=\E=,
+ use=ncr260vt100an,
+ncr260vt100wpp|NCR 2900/260 VT100 wide mode PC+ keyboard,
cols#132,
cup=\E[%i%p1%d;%p2%dH$<30>,
is2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<
@@ -18783,57 +19234,57 @@ ncr260vt100wpp|NCR 2900_260 vt100 wide mode pc+ kybd,
rs2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<
200>,
use=ncr260vt100pp,
-ncr260vt200an|NCR 2900_260 vt200 with ansi kybd,
- am, hs, mir, msgr, xenl, xon,
+ncr260vt200an|NCR 2900/260 VT200 with ANSI keyboard,
+ am, mir, msgr, xenl, xon,
cols#80, lines#24, nlab#32,
acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G,
- blink=\E[5m, bold=\E[1m, clear=\E[2J\E[1;1H$<20>,
- cr=\r$<1>, csr=\E[%i%p1%d;%p2%dr$<5>,
- cub=\E[%p1%dD$<5>, cub1=\E[D$<5>, cud=\E[%p1%dB$<5>,
- cud1=\E[B$<5>, cuf=\E[%p1%dC$<5>, cuf1=\E[C$<5>,
+ clear=\E[2J\E[1;1H$<20>, cr=\r$<1>,
+ csr=\E[%i%p1%d;%p2%dr$<5>, cub=\E[%p1%dD$<5>,
+ cub1=\E[D$<5>, cud=\E[%p1%dB$<5>, cud1=\E[B$<5>,
+ cuf=\E[%p1%dC$<5>, cuf1=\E[C$<5>,
cup=\E[%i%p1%d;%p2%dH$<10>, cuu=\E[%p1%dA$<5>,
cuu1=\E[A$<5>, dch=\E[%p1%dP$<5>, dch1=\E[1P$<5>,
- dl=\E[%p1%dM$<5>, dl1=\E[M$<5>, dsl=\E[0$~\E[1$~,
- ech=\E[%p1%dX$<5>, ed=\E[0J, el=\E[0K$<5>, el1=\E[1K$<5>,
- fsl=\E[0$}, home=\E[H, hpa=\E[%p1%dG$<40>, ht=^I, hts=\EH,
- ich=\E[%p1%d@$<5>, il=\E[%p1%dL$<5>, il1=\E[L$<5>,
- ind=\ED$<5>, indn=\E[%p1%dE$<5>, invis=\E[8m,
+ dl=\E[%p1%dM$<5>, dl1=\E[M$<5>, ech=\E[%p1%dX$<5>,
+ ed=\E[0J, el=\E[0K$<5>, el1=\E[1K$<5>, home=\E[H,
+ hpa=\E[%p1%dG$<40>, ht=^I, hts=\EH, ich=\E[%p1%d@$<5>,
+ il=\E[%p1%dL$<5>, il1=\E[L$<5>, ind=\ED$<5>,
+ indn=\E[%p1%dE$<5>,
is2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<
200>,
kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
kf0=\EOy, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
- kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\EOQ,
- kf20=\E[34~, kf21=\E[31~, kf22=\E[32~, kf23=\E[33~,
- kf24=\E[34~, kf25=\E[35~, kf26=\E[1~, kf27=\E[2~,
- kf28=\E[3~, kf29=\E[4~, kf3=\EOR, kf30=\E[5~, kf31=\E[6~,
- kf32=\E[7~, kf33=\E[8~, kf34=\E[9~, kf35=\E[10~, kf4=\EOS,
- kf5=\E[M, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- khlp=\E[28~, krdo=\E[29~, mc0=\E[i, mc4=\E[4i, mc5=\E[5i,
- nel=\EE, rc=\E8, rev=\E[7m, ri=\EM$<5>, rmacs=\017$<20>,
- rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m,
- rmul=\E[24m,
+ kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf20=\E[34~,
+ kf21=\E[31~, kf22=\E[32~, kf23=\E[33~, kf24=\E[34~,
+ kf25=\E[35~, kf26=\E[1~, kf27=\E[2~, kf28=\E[3~,
+ kf29=\E[4~, kf30=\E[5~, kf31=\E[6~, kf32=\E[7~, kf33=\E[8~,
+ kf34=\E[9~, kf35=\E[10~, kf5=\E[M, kf6=\E[17~, kf7=\E[18~,
+ kf8=\E[19~, kf9=\E[20~, khlp=\E[28~, krdo=\E[29~, mc0=\E[i,
+ mc4=\E[4i, mc5=\E[5i, nel=\EE, rc=\E8, ri=\EM$<5>,
+ rmacs=\017$<20>, rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>,
+ rmso=\E[27m, rmul=\E[24m,
rs2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<
200>,
sc=\E7,
sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5
%;%?%p7%t;8%;m%?%p9%t\016%e\017%;$<20>,
sgr0=\E[0m\017$<20>, smacs=\016$<20>, smam=\E[?7h,
- smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
- tbc=\E[3g, tsl=\E[2$~\E[1$}, vpa=\E[%p1%dd$<40>,
+ smir=\E[4h, smkx=\E[?1h\E=, tbc=\E[3g,
+ vpa=\E[%p1%dd$<40>, use=ansi+sgrbold, use=decid+cpr,
use=vt220+vtedit, use=vt220+cvis, use=vt220+keypad,
-ncr260vt200wan|NCR 2900_260 vt200 wide mode ansi kybd,
+ use=ncr260vt+sl,
+
+ncr260vt200wan|NCR 2900/260 VT200 wide mode ANSI keyboard,
cols#132,
cup=\E[%i%p1%d;%p2%dH$<30>,
is2=\E[!p\E[?3;7;19;67h\E[?4l\E(B\E)0\017\E[2J\E[1;1H$<200>,
rs2=\E[!p\E[?3;7;19;67h\E[?4l\E(B\E)0\017\E[2J\E[1;1H$<200>, use=ncr260vt200an,
-ncr260vt200pp|NCR 2900_260 vt200 with pc+ kybd,
+ncr260vt200pp|NCR 2900/260 VT200 with PC+ keyboard,
ka1=\E[H, ka3=\EOu, kb2=\E[V, kc3=\E[U, kcub1=\E[D,
kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[4~,
- kend=\E[1~, khome=\E[H, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
- lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, rmkx=\E>, smkx=\E=,
- use=ncr260vt200an,
-ncr260vt200wpp|NCR 2900_260 vt200 wide mode pc+ kybd,
+ kend=\E[1~, khome=\E[H, lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4,
+ rmkx=\E>, smkx=\E=, use=ncr260vt200an,
+ncr260vt200wpp|NCR 2900/260 VT200 wide mode PC+ keyboard,
cols#132,
cup=\E[%i%p1%d;%p2%dH$<30>,
is2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<
@@ -18841,21 +19292,21 @@ ncr260vt200wpp|NCR 2900_260 vt200 wide mode pc+ kybd,
rs2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<
200>,
use=ncr260vt200pp,
-ncr260vt300an|NCR 2900_260 vt300 with ansi kybd,
- am, hs, mir, msgr, xenl, xon,
+ncr260vt300an|NCR 2900/260 VT300 with ANSI keyboard,
+ am, mir, msgr, xenl, xon,
cols#80, lines#24, nlab#32,
acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G,
- blink=\E[5m, bold=\E[1m, clear=\E[2J\E[1;1H$<20>,
- cr=\r$<1>, csr=\E[%i%p1%d;%p2%dr$<5>,
- cub=\E[%p1%dD$<5>, cub1=\E[D$<5>, cud=\E[%p1%dB$<5>,
- cud1=\E[B$<5>, cuf=\E[%p1%dC$<5>, cuf1=\E[C$<5>,
+ clear=\E[2J\E[1;1H$<20>, cr=\r$<1>,
+ csr=\E[%i%p1%d;%p2%dr$<5>, cub=\E[%p1%dD$<5>,
+ cub1=\E[D$<5>, cud=\E[%p1%dB$<5>, cud1=\E[B$<5>,
+ cuf=\E[%p1%dC$<5>, cuf1=\E[C$<5>,
cup=\E[%i%p1%d;%p2%dH$<10>, cuu=\E[%p1%dA$<5>,
cuu1=\E[A$<5>, dch=\E[%p1%dP$<5>, dch1=\E[1P$<5>,
- dl=\E[%p1%dM$<5>, dl1=\E[M$<5>, dsl=\E[0$~\E[1$~,
- ech=\E[%p1%dX$<5>, ed=\E[0J, el=\E[0K$<5>, el1=\E[1K$<5>,
- fsl=\E[0$}, home=\E[H, hpa=\E[%p1%dG$<40>, ht=^I, hts=\EH,
- ich=\E[%p1%d@$<5>, il=\E[%p1%dL$<5>, il1=\E[L$<5>,
- ind=\ED$<5>, indn=\E[%p1%dE$<5>, invis=\E[8m,
+ dl=\E[%p1%dM$<5>, dl1=\E[M$<5>, ech=\E[%p1%dX$<5>,
+ ed=\E[0J, el=\E[0K$<5>, el1=\E[1K$<5>, home=\E[H,
+ hpa=\E[%p1%dG$<40>, ht=^I, hts=\EH, ich=\E[%p1%d@$<5>,
+ il=\E[%p1%dL$<5>, il1=\E[L$<5>, ind=\ED$<5>,
+ indn=\E[%p1%dE$<5>,
is2=\E[!p\E[?7;19;67h\E[?1;3;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1
;1H\E>$<200>,
kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
@@ -18867,7 +19318,7 @@ ncr260vt300an|NCR 2900_260 vt300 with ansi kybd,
kf29=\E[4~, kf30=\E[5~, kf31=\E[6~, kf32=\E[7~, kf33=\E[8~,
kf34=\E[9~, kf35=\E[10~, kf5=\E[M, kf6=\E[17~, kf7=\E[18~,
kf8=\E[19~, kf9=\E[20~, khlp=\E[28~, krdo=\E[29~, mc0=\E[i,
- mc4=\E[4i, mc5=\E[5i, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM$<5>,
+ mc4=\E[4i, mc5=\E[5i, nel=\EE, rc=\E8, ri=\EM$<5>,
rmacs=\017$<20>, rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>,
rmso=\E[27m, rmul=\E[24m,
rs2=\E[!p\E[?7;19;67h\E[?1;3;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1
@@ -18876,10 +19327,12 @@ ncr260vt300an|NCR 2900_260 vt300 with ansi kybd,
sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5
%;%?%p7%t;8%;m%?%p9%t\016%e\017%;$<20>,
sgr0=\E[0m\017$<20>, smacs=\016$<20>, smam=\E[?7h,
- smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
- tbc=\E[3g, tsl=\E[2$~\E[1$}, vpa=\E[%p1%dd$<40>,
+ smir=\E[4h, smkx=\E[?1h\E=, tbc=\E[3g,
+ vpa=\E[%p1%dd$<40>, use=ansi+sgrbold, use=decid+cpr,
use=vt220+vtedit, use=vt220+cvis, use=vt220+keypad,
-ncr260vt300wan|NCR 2900_260 vt300 wide mode ansi kybd,
+ use=ncr260vt+sl,
+
+ncr260vt300wan|NCR 2900/260 VT300 wide mode ANSI keyboard,
cols#132,
cup=\E[%i%p1%d;%p2%dH$<30>,
is2=\E[!p\E[?3;7;19;67h\E[?4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1
@@ -18887,13 +19340,12 @@ ncr260vt300wan|NCR 2900_260 vt300 wide mode ansi kybd,
rs2=\E[!p\E[?3;7;19;67h\E[?4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1
H$<200>,
use=ncr260vt300an,
-ncr260vt300pp|NCR 2900_260 vt300 with pc+ kybd,
+ncr260vt300pp|NCR 2900/260 VT300 with PC+ keyboard,
ka1=\E[H, ka3=\EOu, kb2=\E[V, kc3=\E[U, kcub1=\E[D,
kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[4~,
- kend=\E[1~, khome=\E[H, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
- lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, rmkx=\E>, smkx=\E=,
- use=ncr260vt300an,
-NCR260VT300WPP|ncr260vt300wpp|NCR 2900_260 vt300 wide mode pc+ kybd,
+ kend=\E[1~, khome=\E[H, lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4,
+ rmkx=\E>, smkx=\E=, use=ncr260vt300an,
+ncr260vt300wpp|NCR260VT300WPP|NCR 2900/260 VT300 wide mode PC+ keyboard,
cols#132,
cup=\E[%i%p1%d;%p2%dH$<30>,
is2=\E[!p\E[?3;7;19;67h\E[?1;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1
@@ -18915,17 +19367,17 @@ NCR260VT300WPP|ncr260vt300wpp|NCR 2900_260 vt300 wide mode pc+ kybd,
# if the 'pairs' capability is defined. Un-Comment the 'pairs'
# capability and recompile if you wish to have it included.
#
-ncr260wy325pp|NCR 2900_260 wyse 325,
- am, bw, hs, km, mc5i, mir, msgr, xon,
+ncr260wy325pp|NCR 2900/260 Wyse 325,
+ am, bw, km, mc5i, mir, msgr, xon,
colors#16, cols#80, lines#24, ncv#33, nlab#32,
- acsc=07a?h;j5k3l2m1n8q\:t4u9v=w0x6, bel=^G, blink=\EG2,
+ acsc=07a?h;j5k3l2m1n8q:t4u9v=w0x6, bel=^G, blink=\EG2,
cbt=\EI, civis=\E`0, clear=\E*$<10>, cnorm=\E`1, cr=\r,
cub1=\010$<5>, cud1=\n$<5>, cuf1=\014$<5>,
cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<10>, cuu1=\013$<5>,
- cvvis=\E`5, dch1=\EW$<50>, dl1=\ER$<5>, dsl=\E`c,
- ed=\Ey$<5>, el=\Et$<5>, fsl=\r, home=\036$<5>, ht=^I,
- hts=\E1, il1=\EE$<5>, ind=\n$<5>, invis=\EG1,
- is2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9
+ cvvis=\E`5, dch1=\EW$<50>, dl1=\ER$<5>, ed=\Ey$<5>,
+ el=\Et$<5>, home=\036$<5>, ht=^I, hts=\E1, il1=\EE$<5>,
+ ind=\n$<5>, invis=\EG1,
+ is2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`:\E`@\E~!\E"\Ee4\Ex@\E`9
\Ee7$<100>,
kDC=\ER, kEND=\EY, kHOM=\E{, kNXT=\EK, kPRT=\E7, kPRV=\EJ,
kRIT=^L, ka1=^^, kb2=\EJ, kbs=^H, kc1=\ET, kc3=\EK, kcbt=\EI,
@@ -18941,7 +19393,7 @@ ncr260wy325pp|NCR 2900_260 wyse 325,
mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<10>,
nel=\037$<5>, rev=\EG4, ri=\Ej$<5>, rmacs=\EH\003\EcB0,
rmam=\Ed., rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20,
- rs2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9
+ rs2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`:\E`@\E~!\E"\Ee4\Ex@\E`9
\Ee7$<100>,
setb=\s,
setf=%?%p1%{0}%=%t%{49}%e%p1%{1}%=%t%{50}%e%p1%{2}%=%t%{51}
@@ -18952,8 +19404,8 @@ ncr260wy325pp|NCR 2900_260 wyse 325,
%t%{63}%e%p1%{15}%=%t%{56}%;\Edy%c11$<100>,
sgr0=\EG0\EcB0\EcD$<15>, smacs=\EH\002\EcB1, smam=\Ed/,
smir=\Eq, smso=\EGt, smul=\EG8, smxon=\Ec21, tbc=\E0,
- tsl=\EF,
-ncr260wy325wpp|NCR 2900_260 wyse 325 wide mode,
+ use=ncr260vp+sl,
+ncr260wy325wpp|NCR 2900/260 Wyse 325 wide mode,
cols#132,
cup=\Ea%i%p1%dR%p2%dC$<30>,
is2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9
@@ -18977,33 +19429,16 @@ ncr260wy325wpp|NCR 2900_260 wyse 325 wide mode,
# with the 'pairs' capability defined as below. If you wish to
# have it included, Un-comment it and recompile (using 'tic').
#
-ncr260wy350pp|NCR 2900_260 wyse 350,
- am, bw, hs, km, mc5i, mir, msgr, xon,
- colors#16, cols#80, lines#24, ncv#33, nlab#32, pairs#16, xmc#1,
- acsc=07a?h;j5k3l2m1n8q\:t4u9v=w0x6, bel=^G, blink=\EG2,
- cbt=\EI, civis=\E`0, clear=\E+$<20>, cnorm=\E`1, cr=\r,
- cub1=\010$<5>, cud1=\n$<5>, cuf1=\014$<5>,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<40>, cuu1=\013$<5>,
- cvvis=\E`5, dch1=\EW$<50>, dim=\EGp, dl1=\ER$<5>, dsl=\E`c,
- ed=\Ey$<5>, el=\Et$<5>, fsl=\r, home=\036$<10>, ht=^I,
- hts=\E1, il1=\EE$<5>, ind=\n$<5>, invis=\EG1,
- is2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9
+ncr260wy350pp|NCR 2900/260 Wyse 350,
+ colors#16, ncv#33, pairs#16,
+ acsc=07a?h;j5k3l2m1n8q:t4u9v=w0x6, cbt=\EI,
+ cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<40>, ed=\Ey$<5>,
+ el=\Et$<5>, ht=^I, hts=\E1,
+ is2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`:\E`@\E~!\E"\Ee4\Ex@\E`9
\Ee7$<100>,
- kDC=\ER, kEND=\EY, kHOM=\E{, kPRT=\E7, kRIT=^L, ka1=^^, kbs=^H,
- kc1=\ET, kc3=\EK, kcbt=\EI, kcub1=^H, kcud1=\n, kcuf1=^L,
- kcuu1=^K, kdch1=\EW, kend=\ET, kf1=^A@\r, kf10=^AI\r,
- kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r,
- kf16=^AO\r, kf17=^A`\r, kf18=^Aa\r, kf19=^Ab\r, kf2=^AA\r,
- kf20=^Ac\r, kf21=^Ad\r, kf22=^Ae\r, kf23=^Af\r, kf24=^Ag\r,
- kf25=^Ah\r, kf26=^Ai\r, kf27=^Aj\r, kf28=^Ak\r, kf29=^Al\r,
- kf3=^AB\r, kf30=^Am\r, kf31=^An\r, kf32=^Ao\r, kf4=^AC\r,
- kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r,
- khome=^^, kich1=\Eq, knp=\EK, kpp=\EJ, kprt=\EP,
- mc0=\EP$<10>, mc4=^T, mc5=^R,
mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<20>,
- nel=\037$<5>, rev=\EG4, ri=\Ej$<5>, rmacs=\EH\003\EcB0,
- rmam=\Ed., rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20,
- rs2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9
+ rmacs=\EH\003\EcB0,
+ rs2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`:\E`@\E~!\E"\Ee4\Ex@\E`9
\Ee7$<100>,
setb=\s,
setf=%?%p1%{0}%=%t%{49}%e%p1%{1}%=%t%{50}%e%p1%{2}%=%t%{51}
@@ -19012,10 +19447,9 @@ ncr260wy350pp|NCR 2900_260 wyse 350,
%e%p1%{9}%=%t%{98}%e%p1%{10}%=%t%{99}%e%p1%{11}%=%t
%{101}%e%p1%{12}%=%t%{106}%e%p1%{13}%=%t%{110}%e%p1
%{14}%=%t%{111}%e%p1%{15}%=%t%{56}%;\Em0%c$<100>,
- sgr0=\EG0\EH\003\EcD, smacs=\EH\002\EcB1, smam=\Ed/,
- smir=\Eq, smso=\EGt, smul=\EG8, smxon=\Ec21, tbc=\E0,
- tsl=\EF,
-ncr260wy350wpp|NCR 2900_260 wyse 350 wide mode,
+ sgr0=\EG0\EH\003\EcD, smacs=\EH\002\EcB1, tbc=\E0,
+ use=ncr260vp+sl, use=ncr160wy50+pp,
+ncr260wy350wpp|NCR 2900/260 Wyse 350 wide mode,
cols#132,
cup=\Ea%i%p1%dR%p2%dC$<30>,
is2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9
@@ -19033,18 +19467,17 @@ ncr260wy350wpp|NCR 2900_260 wyse 350 wide mode,
# restored if needed.
# (ncr260wy50+pp: originally contained commented-out
# <acsc=j5k3l2m1n8q:t4u9v=w0x6>, as well as the commented-out one there -- esr)
-ncr260wy50+pp|NCR 2900_260 wyse 50+,
- am, bw, hs, km, mc5i, mir, msgr, xon,
+ncr260wy50+pp|NCR 2900/260 Wyse 50+,
+ am, bw, km, mc5i, mir, msgr, xon,
cols#80, lines#24, nlab#32, xmc#1,
acsc=0wa_h[jukslrmqnxqzttuyv]wpxv, bel=^G, blink=\EG2,
cbt=\EI$<5>, civis=\E`0, clear=\E+$<20>, cnorm=\E`1, cr=\r,
cub1=\010$<5>, cud1=\n$<5>, cuf1=\014$<5>,
cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<30>, cuu1=\013$<5>,
- cvvis=\E`5, dch1=\EW$<50>, dim=\EGp, dl1=\ER$<5>, dsl=\E`c,
- ed=\EY$<5>, el=\ET$<5>, fsl=\r, home=\036$<10>,
- ht=\011$<5>, hts=\E1$<5>, il1=\EE$<5>, ind=\n$<5>,
- invis=\EG1,
- is2=\Ee6\E~"$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"
+ cvvis=\E`5, dch1=\EW$<50>, dim=\EGp, dl1=\ER$<5>,
+ ed=\EY$<5>, el=\ET$<5>, home=\036$<10>, ht=\011$<5>,
+ hts=\E1$<5>, il1=\EE$<5>, ind=\n$<5>, invis=\EG1,
+ is2=\Ee6\E~"$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`:\E`@\E~!\E"
\Ee4\Ex@\E`9\Ee7$<100>,
kDC=\ER, kEND=\EY, kHOM=\E{, kPRT=\E7, kRIT=^L, ka1=^^, kbs=^H,
kc1=\ET, kc3=\EK, kcbt=\EI, kcub1=^H, kcud1=\n, kcuf1=^L,
@@ -19060,11 +19493,12 @@ ncr260wy50+pp|NCR 2900_260 wyse 50+,
mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<10>,
nel=\037$<5>, rev=\EG4, ri=\Ej$<5>, rmacs=\EH^C, rmam=\Ed.,
rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20,
- rs2=\Ee6\E~"$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"
+ rs2=\Ee6\E~"$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`:\E`@\E~!\E"
\Ee4\Ex@\E`9\Ee7$<100>,
sgr0=\EG0\EH\003$<15>, smacs=\EH^B, smam=\Ed/, smir=\Eq,
- smso=\EGt, smul=\EG8, smxon=\Ec21, tbc=\E0$<5>, tsl=\EF,
-ncr260wy50+wpp|NCR 2900_260 wyse 50+ wide mode,
+ smso=\EGt, smul=\EG8, smxon=\Ec21, tbc=\E0$<5>,
+ use=ncr260vp+sl,
+ncr260wy50+wpp|NCR 2900/260 Wyse 50+ wide mode,
cols#132,
cup=\Ea%i%p1%dR%p2%dC$<30>,
is2=\Ee6\E~"$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"
@@ -19072,18 +19506,17 @@ ncr260wy50+wpp|NCR 2900_260 wyse 50+ wide mode,
rs2=\Ee6\E~"$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"
\Ee4\Ex@\E`9\Ee7$<200>,
use=ncr260wy50+pp,
-ncr260wy60pp|NCR 2900_260 wyse 60,
- am, bw, hs, km, mc5i, mir, msgr, xon,
+ncr260wy60pp|NCR 2900/260 Wyse 60,
+ am, bw, km, mc5i, mir, msgr, xon,
cols#80, lines#24, nlab#32,
- acsc=07a?h;j5k3l2m1n8q\:t4u9v=w0x6, bel=^G, blink=\EG2,
+ acsc=07a?h;j5k3l2m1n8q:t4u9v=w0x6, bel=^G, blink=\EG2,
cbt=\EI$<15>, civis=\E`0, clear=\E*$<100>, cnorm=\E`1,
cr=\r, cub1=\010$<5>, cud1=\n$<5>, cuf1=\014$<5>,
cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<10>, cuu1=\013$<5>,
- cvvis=\E`5, dch1=\EW$<50>, dl1=\ER$<5>, dsl=\E`c,
- ed=\Ey$<5>, el=\Et$<5>, fsl=\r, home=\036$<25>,
- ht=\011$<15>, hts=\E1$<15>, il1=\EE$<5>, ind=\n$<5>,
- invis=\EG1,
- is2=\Ee6\E~4$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"
+ cvvis=\E`5, dch1=\EW$<50>, dl1=\ER$<5>, ed=\Ey$<5>,
+ el=\Et$<5>, home=\036$<25>, ht=\011$<15>, hts=\E1$<15>,
+ il1=\EE$<5>, ind=\n$<5>, invis=\EG1,
+ is2=\Ee6\E~4$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`:\E`@\E~!\E"
\Ee4\Ex@\E`9\Ee7$<100>,
kDC=\ER, kEND=\EY, kHOM=\E{, kNXT=\EK, kPRT=\E7, kPRV=\EJ,
kRIT=^L, ka1=^^, kb2=\EJ, kbs=^H, kc1=\ET, kc3=\EK,
@@ -19099,12 +19532,12 @@ ncr260wy60pp|NCR 2900_260 wyse 60,
mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<30>,
nel=\037$<5>, rev=\EG4, ri=\Ej$<5>, rmacs=\EH^C, rmam=\Ed.,
rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20,
- rs2=\Ee6\E~4$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"
+ rs2=\Ee6\E~4$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`:\E`@\E~!\E"
\Ee4\Ex@\E`9\Ee7$<100>,
sgr0=\EG0\EcB0\EcD$<15>, smacs=\EH^B, smam=\Ed/,
smir=\Eq, smso=\EGt, smul=\EG8, smxon=\Ec21, tbc=\E0$<15>,
- tsl=\EF,
-ncr260wy60wpp|NCR 2900_260 wyse 60 wide mode,
+ use=ncr260vp+sl,
+ncr260wy60wpp|NCR 2900/260 Wyse 60 wide mode,
cols#132,
cup=\Ea%i%p1%dR%p2%dC$<30>,
is2=\Ee6\E~4$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"
@@ -19112,63 +19545,61 @@ ncr260wy60wpp|NCR 2900_260 wyse 60 wide mode,
rs2=\Ee6\E~4$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"
\Ee4\Ex@\E`9\Ee7$<100>,
use=ncr260wy60pp,
-ncr160vppp|NCR 2900_160 viewpoint,
+ncr160vppp|NCR 2900/160 viewpoint,
use=ncr260vppp,
-ncr160vpwpp|NCR 2900_160 viewpoint wide mode,
+ncr160vpwpp|NCR 2900/160 viewpoint wide mode,
use=ncr260vpwpp,
-ncr160vt100an|NCR 2900_160 vt100 with ansi kybd,
+ncr160vt100an|NCR 2900/160 VT100 with ANSI keyboard,
use=ncr260vt100an,
-ncr160vt100pp|NCR 2900_160 vt100 with PC+ kybd,
+ncr160vt100pp|NCR 2900/160 VT100 with PC+ keyboard,
use=ncr260vt100pp,
-ncr160vt100wan|NCR 2900_160 vt100 wide mode ansi kybd,
+ncr160vt100wan|NCR 2900/160 VT100 wide mode ANSI keyboard,
use=ncr260vt100wan,
-ncr160vt100wpp|NCR 2900_160 vt100 wide mode pc+ kybd,
+ncr160vt100wpp|NCR 2900/160 VT100 wide mode PC+ keyboard,
use=ncr260vt100wpp,
-ncr160vt200an|NCR 2900_160 vt200 with ansi kybd,
+ncr160vt200an|NCR 2900/160 VT200 with ANSI keyboard,
use=ncr260vt200an,
-ncr160vt200pp|NCR 2900_160 vt200 with pc+ kybd,
+ncr160vt200pp|NCR 2900/160 VT200 with PC+ keyboard,
use=ncr260vt200pp,
-ncr160vt200wan|NCR 2900_160 vt200 wide mode ansi kybd,
+ncr160vt200wan|NCR 2900/160 VT200 wide mode ANSI keyboard,
use=ncr260vt200wan,
-ncr160vt200wpp|NCR 2900_160 vt200 wide mode pc+ kybd,
+ncr160vt200wpp|NCR 2900/160 VT200 wide mode PC+ keyboard,
use=ncr260vt200wpp,
-ncr160vt300an|NCR 2900_160 vt300 with ansi kybd,
+ncr160vt300an|NCR 2900/160 VT300 with ANSI keyboard,
use=ncr260vt300an,
-ncr160vt300pp|NCR 2900_160 vt300 with pc+ kybd,
+ncr160vt300pp|NCR 2900/160 VT300 with PC+ keyboard,
use=ncr260vt300pp,
-ncr160vt300wan|NCR 2900_160 vt300 wide mode ansi kybd,
+ncr160vt300wan|NCR 2900/160 VT300 wide mode ANSI keyboard,
use=ncr260vt300wan,
-ncr160vt300wpp|NCR 2900_160 vt300 wide mode pc+ kybd,
+ncr160vt300wpp|NCR 2900/160 VT300 wide mode PC+ keyboard,
use=ncr260vt300wpp,
-ncr160wy50+pp|NCR 2900_160 wyse 50+,
+ncr160wy50+pp|NCR 2900/160 Wyse 50+,
use=ncr260wy50+pp,
-ncr160wy50+wpp|NCR 2900_160 wyse 50+ wide mode,
+ncr160wy50+wpp|NCR 2900/160 Wyse 50+ wide mode,
use=ncr260wy50+wpp,
-ncr160wy60pp|NCR 2900_160 wyse 60,
+ncr160wy60pp|NCR 2900/160 Wyse 60,
use=ncr260wy60pp,
-ncr160wy60wpp|NCR 2900_160 wyse 60 wide mode,
+ncr160wy60wpp|NCR 2900/160 Wyse 60 wide mode,
use=ncr260wy60wpp,
-ncrvt100an|ncrvt100pp|NCR vt100 for the 2900 terminal,
- am, hs, mc5i, mir, msgr, xon,
- cols#80, it#8, lines#24, nlab#32,
+ncrvt100an|ncrvt100pp|NCR VT100 for the 2900 terminal,
+ hs, mc5i, mir, xon,
+ nlab#32,
acsc=``aaffgghhiijjkkllmmnnqqttuuvvwwxxyyzz~~,
- bel=^G, blink=\E[5m$<30>, bold=\E[1m$<30>,
- clear=\E[2J\E[1;1H$<300>, cr=\r,
+ blink=\E[5m$<30>, bold=\E[1m$<30>,
+ clear=\E[2J\E[1;1H$<300>,
csr=\E[%i%p1%d;%p2%dr$<100>, cub=\E[%p1%dD$<30>,
cub1=\E[D$<2>, cud=\E[%p1%dB$<30>, cud1=\E[B$<2>,
- cuf=\E[%p1%dC$<30>, cuf1=\E[C$<2>,
- cup=\E[%i%p1%d;%p2%dH$<100>, cuu=\E[%p1%dA$<30>,
- cuu1=\E[A$<2>, dch=\E[%p1%dP$<40>, dch1=\E[1P$<10>,
- dl=\E[%p1%dM$<70>, dl1=\E[M$<40>, dsl=\E[31l$<25>,
- ed=\E[0J$<300>, el=\E[0K$<30>, el1=\E[1K$<30>,
- enacs=\E(B\E)0$<40>, fsl=1$<10>, home=\E[H$<2>$<80>,
- ht=^I, hts=\EH, il=\E[%p1%dL$<80>, il1=\E[B\E[L$<80>,
- ind=\ED,
+ cuf=\E[%p1%dC$<30>, cup=\E[%i%p1%d;%p2%dH$<100>,
+ cuu=\E[%p1%dA$<30>, dch=\E[%p1%dP$<40>,
+ dch1=\E[1P$<10>, dl=\E[%p1%dM$<70>, dl1=\E[M$<40>,
+ dsl=\E[31l$<25>, ed=\E[0J$<300>, el=\E[0K$<30>,
+ el1=\E[1K$<30>, enacs=\E(B\E)0$<40>, fsl=1$<10>,
+ home=\E[H$<2>$<80>, il=\E[%p1%dL$<80>,
+ il1=\E[B\E[L$<80>, ind=\ED,
is2=\E[12h\E[?10l\E%/0n\E[P\031\E[?3l\E(B\E)0$<200>,
- kLFT=\E[D, kRIT=\E[C, ka1=\E[H, kbs=^H, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kent=\r, kf1=\EOP,
- kf2=\EOQ, kf3=\EOR, kf4=\EOS, mc0=\E[i$<100>, nel=\EE,
- rc=\E8, rev=\E[7m$<30>, ri=\EM$<50>, rmacs=\017$<90>,
+ kLFT=\E[D, kRIT=\E[C, ka1=\E[H, kent=\r, kf1=\EOP, kf2=\EOQ,
+ kf3=\EOR, kf4=\EOS, mc0=\E[i$<100>, nel=\EE, rc=\E8,
+ rev=\E[7m$<30>, ri=\EM$<50>, rmacs=\017$<90>,
rmir=\E[4l$<80>, rmso=\E[0m$<30>, rmul=\E[0m$<30>,
rs2=\Ec\E[12;31h\E[?3;4;5;10l\E[?6;7;19;25h\E[33;34l\E[0m\E(
B\E)0\E%/0n\E[P\031$<200>,
@@ -19177,7 +19608,7 @@ ncrvt100an|ncrvt100pp|NCR vt100 for the 2900 terminal,
%p3%|%t;7%;%?%p4%t;5%;m$<120>,
sgr0=\017\E[0m$<120>, smacs=\016$<90>, smir=\E[4h$<80>,
smso=\E[7m$<30>, smul=\E[4m$<30>, tbc=\E[3g$<40>,
- tsl=\E[>+1$<70>,
+ tsl=\E[>+1$<70>, use=decid+cpr, use=vt100+4bsd,
ncrvt100wan|NCRVT100WPP|ncrvt100wpp|NCR VT100 emulation of the 2900 terminal,
cols#132,
is2=\E[12h\E[?10l\E%/0n\E[P\031\E[?3h\E(B\E)0$<200>,
@@ -19240,7 +19671,7 @@ ncrvt100wan|NCRVT100WPP|ncrvt100wpp|NCR VT100 emulation of the 2900 terminal,
# P4 <==> Blink attribute parameter
# P5 <==> Dim attribute parameter
# From <root@goliath.un.atlantaga.NCR.COM>, init string hacked by SCO.
-ncr7900i|ncr7900|n7900|ncr 7900 model 1,
+ncr7900i|ncr7900|n7900|NCR 7900 model 1,
am, bw, ul,
cols#80, lines#24, xmc#1,
bel=^G, blink=\E0B, clear=^L, cr=\r, cub1=^H, cud1=\n, cuf1=^F,
@@ -19251,21 +19682,20 @@ ncr7900i|ncr7900|n7900|ncr 7900 model 1,
sgr=\E0%p5%{64}%+%p4%{2}%*%+%p3%{16}%*%+%p2%{32}%*%+%p1%{17}
%*%+%c,
sgr0=\E0@, smso=\E0Q, smul=\E0`,
-ncr7900iv|ncr 7900 model 4,
+ncr7900iv|NCR 7900 model 4,
am, bw, eslok, hs,
cols#80, lines#24,
bel=^G, clear=^L, cr=\r, cub1=^H, cud1=\n,
cup=\013%p1%{64}%+%c\E\005%p2%02d, dl1=\E^O, dsl=\Ey1,
fsl=\Ek\Ey5, home=\013@\E^E00, il1=\E^N, ind=\n, kbs=^H,
- kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kf1=\ES, kf2=\ET,
- kf3=\EU, kf4=\EV, kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER,
- khome=\EH, lf6=blue, lf7=red, lf8=white, nel=\r\n,
- tsl=\Ej\Ex5\Ex1\EY8%p1%{32}%+%c\Eo,
+ kf1=\ES, kf2=\ET, kf3=\EU, kf4=\EV, kf5=\EW, kf6=\EP, kf7=\EQ,
+ kf8=\ER, khome=\EH, lf6=blue, lf7=red, lf8=white, nel=\r\n,
+ tsl=\Ej\Ex5\Ex1\EY8%p1%{32}%+%c\Eo, use=vt52+arrows,
# Warning: This terminal will lock out the keyboard when it receives a CTRL-D.
# The user can enter a CTRL-B to get out of this locked state.
# In <hpa>, we want to output the character given by the formula:
# ((col / 10) * 16) + (col % 10) where "col" is "p1"
-ncr7901|ncr 7901 model,
+ncr7901|NCR 7901 model,
am, bw, ul,
cols#80, lines#24,
bel=^G, blink=\E0B, civis=^W, clear=^L, cnorm=^X, cr=\r,
@@ -19297,7 +19727,7 @@ ncr7901|ncr 7901 model,
# NDR 9500
# Manufactured in the early/mid eighties, behaves almost the same as a
-# Televideo 950. Take a 950, change its cabinet for a more 80s-ish one (but
+# TeleVideo 950. Take a 950, change its cabinet for a more 80s-ish one (but
# keep the same keyboard layout), add an optional 25-line mode, replace the DIP
# switches with a menu and remove the "lock line" feature (ESC ! 1 and ESC !
# 2), here is the NDR 9500. Even the line-lock, albeit disabled, is
@@ -19344,7 +19774,7 @@ ndr9500-mc|NDR 9500 with magic cookies (enables underline inverse video invisibl
blink=\EG2, invis=\EG1, rev=\EG4, rmso=\EG0, rmul=\EG0,
sgr=\E%%\E(%?%p5%p8%|%t\E)%;%?%p9%t\E$%;\EG%{48}%?%p7%t%{1}
%+%;%?%p4%t%{2}%+%;%?%p3%p1%|%t%{4}%+%;%?%p2%t%{8}%+%;%c,
- sgr0=\EG0\E%%\E(, smso=\EG4, smul=\EG8, use=ndr9500,
+ smso=\EG4, smul=\EG8, use=ndr9500,
ndr9500-25-mc|NDR 500 with 25 lines and magic cookies,
lines#25, use=ndr9500-mc,
@@ -19362,20 +19792,20 @@ ndr9500-25-mc-nl|NDR 9500 with 25 lines and magic cookies and no status line,
# These are official terminfo entries from within Perkin-Elmer.
#
-bantam|pe550|pe6100|perkin elmer 550,
+bantam|pe550|pe6100|Perkin Elmer 550,
OTbs,
cols#80, lines#24,
bel=^G, clear=\EK$<20>, cr=\r, cub1=^H, cud1=\n, cuf1=\EC,
cup=\EX%p1%{32}%+%c\EY%p2%{32}%+%c, cuu1=\EA,
el=\EI$<20>, home=\EH, ind=\n, ll=\EH\EA,
-fox|pe1100|perkin elmer 1100,
+fox|pe1100|Perkin Elmer 1100,
OTbs, am,
cols#80, lines#24,
bel=^G, clear=\EH\EJ$<132>, cr=\r, cub1=^H, cud1=\n,
cuf1=\EC, cup=\EX%p1%{32}%+%c\EY%p2%{32}%+%c, cuu1=\EA,
ed=\EJ$<5.5*>, el=\EI, flash=\020\002$<200/>\020\003,
home=\EH, hts=\E1, ind=\n, ll=\EH\EA, tbc=\E3,
-owl|pe1200|perkin elmer 1200,
+owl|pe1200|Perkin Elmer 1200,
OTbs, am, in,
cols#80, lines#24,
bel=^G, clear=\EH\EJ$<132>, cr=\r, cub1=^H, cud1=\n,
@@ -19386,7 +19816,7 @@ owl|pe1200|perkin elmer 1200,
kbs=^H, kf0=\ERJ, kf1=\ERA, kf2=\ERB, kf3=\ERC, kf4=\ERD,
kf5=\ERE, kf6=\ERF, kf7=\ERG, kf8=\ERH, kf9=\ERI, ll=\EH\EA,
rmso=\E!\0, sgr0=\E!\0, smso=\E!^H, tbc=\E3,
-pe1251|pe6300|pe6312|perkin elmer 1251,
+pe1251|pe6300|pe6312|Perkin Elmer 1251,
am,
cols#80, it#8, lines#24, pb#300, vt#8, xmc#1,
bel=^G, clear=\EK$<332>, cr=\r, cub1=\ED, cud1=\EB, cuf1=\EC,
@@ -19397,7 +19827,7 @@ pe1251|pe6300|pe6312|perkin elmer 1251,
# (pe7000m: this had
# rmul=\E!\0, smul=\E!\040,
# which is probably wrong, it collides with kf0
-pe7000m|perkin elmer 7000 series monochrome monitor,
+pe7000m|Perkin Elmer 7000 series monochrome monitor,
am,
cols#80, lines#24,
bel=^G, cbt=\E!Y, clear=\EK, cr=\r, cub1=\ED, cud1=\EB,
@@ -19408,7 +19838,7 @@ pe7000m|perkin elmer 7000 series monochrome monitor,
kf10=\E!\n, kf2=\E!^B, kf3=\E!^C, kf4=\E!^D, kf5=\E!^E,
kf6=\E!^F, kf7=\E!^G, kf8=\E!^H, kf9=\E!^I, khome=\E!S,
ll=\ES7\s, ri=\ER,
-pe7000c|perkin elmer 7000 series colour monitor,
+pe7000c|Perkin Elmer 7000 series colour monitor,
is1=\E!\0\EW 7o\Egf\Eb0\Ec7\ES7\s, rmso=\Eb0,
rmul=\E!\0, smso=\Eb2, smul=\E!\s, use=pe7000m,
@@ -19419,26 +19849,25 @@ pe7000c|perkin elmer 7000 series colour monitor,
# This entry is for the Sperry UTS30 terminal running the TTY
# utility under control of CP/M Plus 1R1. The functionality
-# provided is comparable to the DEC vt100.
+# provided is comparable to the DEC VT100.
# (uts30: I added <rmam>/<smam> based on the init string -- esr)
-uts30|sperry uts30 with cp/m@1R1,
+uts30|Sperry UTS30 with cp/m@1R1,
am, bw, hs,
cols#80, lines#24, wsl#40,
acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
bel=^G, blink=\E[5m, bold=\E[1m, civis=\ER, clear=^L,
cnorm=\ES, cr=\r, csr=\EU%p1%{32}%+%c%p2%{32}%+%c,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\EM,
- dl=\E[%p1%dM, dl1=\EL, ed=\E[J, el=\E[K, fsl=\r, home=\E[H,
- ht=^I, ich=\E[%p1%d@, ich1=\EO, il=\E[%p1%dL, il1=\EN,
- ind=\n, indn=\E[%p1%dB, is2=\E[U 7\E[24;1H, kbs=^H,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, khome=\E[H,
- rc=\EX, rev=\E[7m, rf=/usr/share/tabset/vt100, ri=\EI,
- rin=\E[%p1%dA, rmacs=\Ed, rmam=\E[?7l, rmso=\E[m,
- rmul=\E[m, rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
- sc=\EW, sgr0=\E[m, smacs=\EF, smam=\E[?7m, smso=\E[7m,
- smul=\E[4m, tsl=\E], uc=\EPB,
+ cub1=^H, cud1=\E[B, cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP,
+ dch1=\EM, dl=\E[%p1%dM, dl1=\EL, ed=\E[J, el=\E[K, fsl=\r,
+ home=\E[H, ht=^I, ich=\E[%p1%d@, ich1=\EO, il=\E[%p1%dL,
+ il1=\EN, ind=\n, indn=\E[%p1%dB, is2=\E[U 7\E[24;1H,
+ khome=\E[H, rc=\EX, rev=\E[7m,
+ rf=/usr/share/tabset/vt100, ri=\EI, rin=\E[%p1%dA,
+ rmacs=\Ed, rmam=\E[?7l,
+ rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\EW,
+ sgr0=\E[m, smacs=\EF, smam=\E[?7m, tsl=\E], uc=\EPB,
+ use=ansi+apparrows, use=ansi+local, use=ansi+sgrso,
+ use=ansi+sgrul,
#### Tandem
#
@@ -19475,44 +19904,42 @@ dmterm|deskmate terminal,
bel=^G, civis=\EG5, clear=\Ej, cnorm=\EG6, cr=\r, cub1=^H,
cud1=\EB, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
cuu1=\EA, dch1=\ES, dl1=\ER, ed=\EJ, el=\EK, home=\EH, ht=^I,
- ich1=\EQ, il1=\EP, ind=\EX, invis@, kcub1=\ED, kcud1=\EB,
- kcuf1=\EC, kcuu1=\EA, kf0=\E1, kf1=\E2, kf2=\E3, kf3=\E4,
- kf4=\E5, kf5=\E6, kf6=\E7, kf7=\E8, kf8=\E9, kf9=\E0,
+ ich1=\EQ, il1=\EP, ind=\EX, invis@, kf0=\E1, kf1=\E2, kf2=\E3,
+ kf3=\E4, kf4=\E5, kf5=\E6, kf6=\E7, kf7=\E8, kf8=\E9, kf9=\E0,
khome=\EH, lf0=f1, lf1=f2, lf2=f3, lf3=f4, lf4=f5, lf5=f6,
lf6=f7, lf7=f8, lf8=f9, lf9=f10, ll=\EE, rmul@, smul@,
- use=adm+sgr,
+ use=adm+sgr, use=vt52+arrows,
dt100|dt-100|Tandy DT-100 terminal,
xon,
cols#80, lines#24, xmc#1,
acsc=jjkkllmmnnqqttuuvvwwxx, bel=^G, clear=\E[H\E[2J,
- cr=\r, csr=\E[%p1%2d;%p2%2dr, cub1=^H, cud1=\E[B,
- cuf1=\E[C, cup=\010\E[%i%p1%d;%p2%dH, cuu1=\E[A,
- dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
- ich1=\E[@, il1=\E[L, ind=\n, is2=\E[?3l\E)0\E(B,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\E[?3i,
- kf10=\E[?5i, kf2=\E[2i, kf3=\E[@, kf4=\E[M, kf5=\E[17~,
- kf6=\E[18~, kf7=\E[19~, kf8=\E[20~, kf9=\E[21~, khome=\E[H,
- knp=\E[29~, kpp=\E[28~, lf1=f1, lf2=f2, lf3=f3, lf4=f4, lf5=f5,
- lf6=f6, lf7=f7, lf8=f8, ri=\EM, rmacs=^O, rmso=\E[m, rmul=\E[m,
- sgr0=\E[m, smacs=^N, smso=\E[7m, smul=\E[4m,
- use=vt220+cvis,
+ cr=\r, csr=\E[%p1%2d;%p2%2dr, cub1=^H,
+ cup=\010\E[%i%p1%d;%p2%dH, dch1=\E[P, dl1=\E[M, ed=\E[J,
+ el=\E[K, home=\E[H, ht=^I, ich1=\E[@, il1=\E[L, ind=\n,
+ is2=\E[?3l\E)0\E(B, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
+ kcuu1=\E[A, kf1=\E[?3i, kf10=\E[?5i, kf2=\E[2i, kf3=\E[@,
+ kf4=\E[M, kf5=\E[17~, kf6=\E[18~, kf7=\E[19~, kf8=\E[20~,
+ kf9=\E[21~, khome=\E[H, knp=\E[29~, kpp=\E[28~, lf1=f1,
+ lf2=f2, lf3=f3, lf4=f4, lf5=f5, lf6=f6, lf7=f7, lf8=f8, ri=\EM,
+ rmacs=^O, rmso=\E[m, rmul=\E[m, sgr0=\E[m, smacs=^N,
+ smso=\E[7m, smul=\E[4m, use=ansi+local1, use=vt220+cvis,
dt100w|dt-100w|Tandy DT-100 terminal (wide mode),
cols#132, use=dt100,
-dt110|Tandy DT-110 emulating ansi,
+dt110|Tandy DT-110 emulating ANSI,
xon,
cols#80, lines#24,
acsc=jjkkllmmnnqqttuuvvwwxx, bel=^G, clear=\E[H\E[2J,
- cr=\r, csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\E[B,
- cuf1=\E[C, cup=\010\E[%i%p1%d;%p2%dH, cuu1=\E[A,
- dch1=\E[0P, dl1=\E[0M, ed=\E[0J, el=\E[0K, enacs=\E(B\E)0,
- home=\E[H, ht=^I, ich1=\E[0@, il1=\E[0L, ind=\n,
- is2=\E[?3l\E)0\E(B, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kend=\E[K, kf1=\E[1~, kf10=\E[10~, kf2=\E[2~,
- kf3=\E[3~, kf4=\E[4~, kf5=\E[5~, kf6=\E[6~, kf7=\E[7~,
- kf8=\E[8~, kf9=\E[9~, khome=\E[G, kich1=\E[@, knp=\E[26~,
- kpp=\E[25~, lf0=f1, lf1=f2, lf2=f3, lf3=f4, lf4=f5, lf5=f6,
- lf6=f7, lf7=f8, lf8=f9, lf9=f10, ri=\EM, rmacs=^O, rmso=\E[m,
- rmul=\E[m, sgr0=\E[m, smacs=^N, smso=\E[7m, smul=\E[4m,
+ cr=\r, csr=\E[%i%p1%d;%p2%dr, cub1=^H,
+ cup=\010\E[%i%p1%d;%p2%dH, dch1=\E[0P, dl1=\E[0M,
+ ed=\E[0J, el=\E[0K, enacs=\E(B\E)0, home=\E[H, ht=^I,
+ ich1=\E[0@, il1=\E[0L, ind=\n, is2=\E[?3l\E)0\E(B,
+ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kend=\E[K,
+ kf1=\E[1~, kf10=\E[10~, kf2=\E[2~, kf3=\E[3~, kf4=\E[4~,
+ kf5=\E[5~, kf6=\E[6~, kf7=\E[7~, kf8=\E[8~, kf9=\E[9~,
+ khome=\E[G, kich1=\E[@, knp=\E[26~, kpp=\E[25~, lf0=f1,
+ lf1=f2, lf2=f3, lf3=f4, lf4=f5, lf5=f6, lf6=f7, lf7=f8, lf8=f9,
+ lf9=f10, ri=\EM, rmacs=^O, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
+ smacs=^N, smso=\E[7m, smul=\E[4m, use=ansi+local1,
use=vt220+cvis,
pt210|TRS-80 PT-210 printing terminal,
hc, os,
@@ -19527,25 +19954,25 @@ pt210|TRS-80 PT-210 printing terminal,
# area" for interactive text.
#
-tek|tek4012|tektronix 4012,
+tek|tek4012|Tektronix 4012,
OTbs, os,
cols#75, lines#35,
bel=^G, clear=\E\014$<1000>, cr=\r, cub1=^H, cud1=\n,
ff=\014$<1000>, is2=\E^O,
# (tek4013: added <acsc> to suppress tic warnings re <smacs>/<rmacs> --esr)
-tek4013|tektronix 4013,
+tek4013|Tektronix 4013,
acsc=, rmacs=\E^O, smacs=\E^N, use=tek4012,
-tek4014|tektronix 4014,
+tek4014|Tektronix 4014,
cols#81, lines#38,
is2=\E\017\E9, use=tek4012,
# (tek4015: added <acsc> to suppress tic warnings re <smacs>/<rmacs> --esr)
-tek4015|tektronix 4015,
+tek4015|Tektronix 4015,
acsc=, rmacs=\E^O, smacs=\E^N, use=tek4014,
-tek4014-sm|tektronix 4014 in small font,
+tek4014-sm|Tektronix 4014 in small font,
cols#121, lines#58,
- is2=\E\017\E\:, use=tek4014,
+ is2=\E\017\E:, use=tek4014,
# (tek4015-sm: added <acsc> to suppress tic warnings re <smacs>/<rmacs> --esr)
-tek4015-sm|tektronix 4015 in small font,
+tek4015-sm|Tektronix 4015 in small font,
acsc=, rmacs=\E^O, smacs=\E^N, use=tek4014-sm,
# Tektronix 4023 from Andrew Klossner <orca!andrew.tektronix@csnet-relay>
#
@@ -19556,7 +19983,7 @@ tek4015-sm|tektronix 4015 in small font,
# live with Magic Cookie, remove the :so: and :se: fields and do without
# reverse video. If you like reverse video stand-out mode but don't want
# it to flash, change the letter 'H' to 'P' in the :so: field.
-tek4023|tektronix 4023,
+tek4023|Tektronix 4023,
OTbs, am,
OTdN#4, cols#80, lines#24, vt#4, xmc#1,
OTnl=\n, bel=^G, clear=\E\014$<4/>, cr=\r, cub1=^H, cud1=\n,
@@ -19577,7 +20004,7 @@ tek4023|tektronix 4023,
# <il1> and <il> had 145ms of padding, but that slowed down vi's ^U
# and didn't seem necessary.
#
-tek4024|tek4025|tek4027|tektronix 4024/4025/4027,
+tek4024|tek4025|tek4027|Tektronix 4024/4025/4027,
OTbs, am, da, db,
cols#80, it#8, lines#34, lm#0,
bel=^G, clear=\037era\r\n\n, cmdch=^_, cr=\r,
@@ -19593,14 +20020,14 @@ tek4024|tek4025|tek4027|tektronix 4024/4025/4027,
\037lea\sf5\r,
smkx=\037lea\sp4\s/h/\r\037lea\sp8\s/k/\r\037lea\sp6\s/\s/
\r\037lea\sp2\s/j/\r\037lea\sf5\s/H/\r,
-tek4025-17|tek 4025 17 line window,
+tek4025-17|Tektronix 4025 17 line window,
lines#17, use=tek4025,
-tek4025-17-ws|tek 4025 17 line window in workspace,
+tek4025-17-ws|Tektronix 4025 17 line window in workspace,
is2=!com\s31\r\n\037sto\s9\s17\s25\s33\s41\s49\s57\s65\s73
\r\037wor\s17\r\037mon\s17\r,
rmcup=\037mon h\r, rmso=\037att s\r, smcup=\037wor h\r,
smso=\037att e\r, use=tek4025-17,
-tek4025-ex|tek4027-ex|tek 4025/4027 w/!,
+tek4025-ex|tek4027-ex|Tektronix 4025/4027 w/!,
is2=\037com 33\r\n!sto 9 17 25 33 41 49 57 65 73\r,
rmcup=\037com 33\r, smcup=!com 31\r, use=tek4025,
# Tektronix 4025a
@@ -19644,7 +20071,7 @@ tek4025a|Tektronix 4025A,
# not try to scroll, or cursor addressing won't work. Also, you can't
# see the cursor.)
# (This "learns" the arrow keys for rogue. I have adapted it for termcap - mrh)
-tek4025-cr|tek 4025 for curses and rogue,
+tek4025-cr|Tektronix 4025 for curses and rogue,
OTbs, am,
cols#80, it#8, lines#33,
clear=\037era;, cub1=^H, cud1=^F\n, cuf1=\037rig;,
@@ -19654,11 +20081,11 @@ tek4025-cr|tek 4025 for curses and rogue,
# next two lines commented out since curses only allows 128 chars, sigh.
# :ti=\037lea p1/b/\037lea p2/j/\037lea p3/n/\037lea p4/h/\037lea p5/ /\037lea p6/l/\037lea p7/y/\037lea p8/k/\037lea p9/u/\037lea p./f/\037lea pt/`era w/13\037lea p0/s/\037wor 33h:\
# :te=\037lea p1\037lea p2\037lea p3\037lea p4\037lea pt\037lea p5\037lea p6\037lea p7\037lea p8\037lea p9/la/13\037lea p.\037lea p0\037wor 0:
-tek4025ex|4025ex|4027ex|tek 4025 w/!,
+tek4025ex|4025ex|4027ex|Tektronix 4025 w/!,
is2=\037com\s33\r\n!sto\s9\,17\,25\,33\,41\,49\,57\,65\,73
\r,
rmcup=\037com 33\r, smcup=!com 31\r, use=tek4025,
-tek4105|tektronix 4105,
+tek4105|Tektronix 4105,
OTbs, am, mir, msgr, ul, xenl, xt,
cols#79, it#8, lines#29,
acsc=, bel=^G, blink=\E[=3;<7m, bold=\E[=7;<4m, cbt=\E[Z,
@@ -19674,26 +20101,14 @@ tek4105|tektronix 4105,
smul=\E[=5;<2m, tbc=\E[1g,
# (tek4105-30: I added <rmam>/<smam> based on the init string -- esr)
-tek4105-30|4015 emulating 30 line vt100,
- am, mir, msgr, xenl, xon,
- cols#80, it#8, lines#30, vt#3,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
- clear=\E[H\E[J$<50>, cr=\r, csr=\E[%i%p1%d;%p2%dr,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\n,
- cuf=\E[%p1%dC, cuf1=\E[C$<2>,
- cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA,
- cuu1=\E[A$<2>, ed=\E[J$<50>, el=\E[K$<3>, el1=\E[1K$<3>,
- enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH, ind=\n, kbs=^H,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, rc=\E8,
- rev=\E[7m$<2>, ri=\EM$<5>, rmacs=^O, rmam=\E[?7l,
- rmkx=\E[?1l\E>, rmso=\E[m$<2>, rmul=\E[m$<2>,
- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5
- %;m%?%p9%t\016%e\017%;$<2>,
- sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=,
- smso=\E[1;7m$<2>, smul=\E[4m$<2>, tbc=\E[3g,
- use=vt100+fnkeys,
+tek4105-30|Tektronix 4015 emulating 30 line VT100,
+ mir, xenl, xon,
+ lines#30, vt#3,
+ cub1=^H, cud1=\n, cuf1=\E[C$<2>, cuu1=\E[A$<2>, kcub1=\EOD,
+ kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, rmam=\E[?7l,
+ rmkx=\E[?1l\E>, rmso=\E[m$<2>, smam=\E[?7h,
+ smkx=\E[?1h\E=, use=ansi+csr, use=ansi+local,
+ use=vt100+4bsd, use=vt100+fnkeys,
# Tektronix 4105 from BRL
# The following setup modes are assumed for normal operation:
@@ -19716,32 +20131,28 @@ tek4105-30|4015 emulating 30 line vt100,
# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
# "IC" cannot be used in combination with "im" & "ei".
# "tek4105a" is just a guess:
-tek4105a|Tektronix 4105,
+tek4105a|Tektronix 4105 (BRL),
OTbs, OTpt, msgr, xon,
- OTkn#8, cols#80, it#8, lines#30, vt#3,
- acsc=, bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
- civis=\E%!0\ETD00\E%!1, clear=\E[H\E[J,
- cnorm=\E%!0\ETD10\E%!1, cr=\r, csr=\E[%i%p1%d;%p2%dr,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\n,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\EM, cvvis=\E%!0\ETD70\E%!1,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- ech=\E[%p1%dX, ed=\E[J, el=\E[K, home=\E[H, ht=^I, hts=\EH,
- il=\E[%p1%dL, il1=\E[L, ind=\n, is2=\E%!1, kbs=^H,
+ OTkn#8, cols#80, lines#30, vt#3,
+ acsc=, bel=^G, blink=\E[5m, bold=\E[1m,
+ civis=\E%!0\ETD00\E%!1, cnorm=\E%!0\ETD10\E%!1, cr=\r,
+ cub1=^H, cud1=\n, cup=\E[%i%p1%d;%p2%dH, cuu1=\EM,
+ cvvis=\E%!0\ETD70\E%!1, dch=\E[%p1%dP, dch1=\E[P,
+ ech=\E[%p1%dX, home=\E[H, ind=\n, is2=\E%!1, kbs=^H,
kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf0=\EOA,
kf1=\EOB, kf2=\EOC, kf3=\EOD, kf4=\EOP, kf5=\EOQ, kf6=\EOR,
kf7=\EOS, lf0=F1, lf1=F2, lf2=F3, lf3=F4, lf4=F5, lf5=F6, lf6=F8,
- ll=\E[30;H, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
+ ll=\E[30;H, nel=\EE, rev=\E[7m, ri=\EM, rmacs=^O,
rmcup=\E%!0\ELBH=\E%!1, rmir=\E[4l, rmkx=\E[?1l\E>,
rmso=\E[m, rmul=\E[m,
rs2=\030\E%!0\EKC\E\014\EKR0\EKF0\ENM0\ELBH=\ETF8000010F40
\ELI100\ELLA>\ELM0\EKE0\ENF1\EKS0\END0\E%!1\Ec\E[?3;5l
\E[?7;8h\E[r\E[m\E>,
- sc=\E7, sgr0=\E[m, smacs=^N, smcup=\E[?6l, smir=\E[4h,
- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
- use=ecma+index,
+ sgr0=\E[m, smacs=^N, smcup=\E[?6l, smir=\E[4h,
+ smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, use=ansi+csr,
+ use=ansi+erase, use=ansi+idl, use=ansi+inittabs,
+ use=ansi+local, use=ecma+index,
-#
# Tektronix 4106/4107/4109 from BRL
# The following setup modes are assumed for normal operation:
# CODE ansi COLUMNMODE 80 CRLF no
@@ -19765,28 +20176,25 @@ tek4105a|Tektronix 4105,
# "IC" cannot be used in combination with "im" & "ei".
tek4106brl|tek4107brl|tek4109brl|Tektronix 4106 4107 or 4109,
msgr, xon,
- cols#80, it#8, lines#32, vt#3,
- acsc=, bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
- civis=\E%!0\ETD00\E%!1, clear=\E[H\E[J,
- cnorm=\E%!0\ETD10\E%!1, cr=\r, csr=\E[%i%p1%d;%p2%dr,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\n,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\EM, cvvis=\E%!0\ETD70\E%!1,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- ech=\E[%p1%dX, ed=\E[J, el=\E[K, home=\E[H, ht=^I, hts=\EH,
- il=\E[%p1%dL, il1=\E[L, ind=\n, is2=\E%!1, kbs=^H,
+ cols#80, lines#32, vt#3,
+ acsc=, bel=^G, blink=\E[5m, bold=\E[1m,
+ civis=\E%!0\ETD00\E%!1, cnorm=\E%!0\ETD10\E%!1, cr=\r,
+ cub1=^H, cud1=\n, cup=\E[%i%p1%d;%p2%dH, cuu1=\EM,
+ cvvis=\E%!0\ETD70\E%!1, dch=\E[%p1%dP, dch1=\E[P,
+ ech=\E[%p1%dX, home=\E[H, ind=\n, is2=\E%!1, kbs=^H,
kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf0=\EOA,
kf1=\EOB, kf2=\EOC, kf3=\EOD, kf4=\EOP, kf5=\EOQ, kf6=\EOR,
kf7=\EOS, lf0=F1, lf1=F2, lf2=F3, lf3=F4, lf4=F5, lf5=F6, lf6=F8,
- ll=\E[32;H, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
+ ll=\E[32;H, nel=\EE, rev=\E[7m, ri=\EM, rmacs=^O,
rmcup=\E%!0\ELBH=\E%!1, rmir=\E[4l, rmkx=\E[?1l\E>,
rmso=\E[m, rmul=\E[m,
rs1=\030\E%!0\EKC\E\014\EKR0\EKF0\ENM0\ELBH=\ETF8000010F40
\ELI100\ELLB0\ELM0\EKE0\ENF1\EKS0\END0\ERE0\E%!1\Ec\E[?3
;5l\E[?7;8h\E[r\E[m\E>,
- sc=\E7, sgr0=\E[m, smacs=^N, smcup=\E[?6l, smir=\E[4h,
- smkx=\E[?1h\E=, smso=\E[7;42m, smul=\E[4m, tbc=\E[3g,
- use=ecma+index,
+ sgr0=\E[m, smacs=^N, smcup=\E[?6l, smir=\E[4h,
+ smkx=\E[?1h\E=, smso=\E[7;42m, smul=\E[4m, use=ansi+csr,
+ use=ansi+erase, use=ansi+idl, use=ansi+inittabs,
+ use=ansi+local, use=ecma+index,
# Refer to:
# TEK Programmer's Reference
@@ -19806,7 +20214,7 @@ tek4106brl|tek4107brl|tek4109brl|Tektronix 4106 4107 or 4109,
# VT52's non-CSI versions of ANSI, e.g., \EJ. A possible explanation is that
# the developer used Emacs, which misuses cvvis (this description sets VT52
# mode in that capability).
-tek4107|tek4109|tektronix terminals 4107 4109,
+tek4107|tek4109|Tektronix terminals 4107 4109,
OTbs, am, mir, msgr, ul, xenl, xt,
cols#79, it#8, lines#29,
bel=^G, blink=\E%!1\E[5m$<2>\E%!0,
@@ -19814,13 +20222,12 @@ tek4107|tek4109|tektronix terminals 4107 4109,
cub1=^H, cud1=\n, cuf1=\EC,
cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, cvvis=\E%!3,
dim=\E%!1\E[<0m$<2>\E%!0, ed=\EJ, el=\EK, ht=^I, ind=\n,
- kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
- rev=\E%!1\E[7m$<2>\E%!0, ri=\EI,
+ kbs=^H, rev=\E%!1\E[7m$<2>\E%!0, ri=\EI,
rmso=\E%!1\E[m$<2>\E%!0, rmul=\E%!1\E[m$<2>\E%!0,
sgr=\E%%!1\E[%?%p1%t;7;5%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;
%?%p5%t<0%;%?%p6%t;1%;m$<2>\E%%!0,
sgr0=\E%!1\E[m$<2>\E%!0, smso=\E%!1\E[7;5m$<2>\E%!0,
- smul=\E%!1\E[4m$<2>\E%!0,
+ smul=\E%!1\E[4m$<2>\E%!0, use=vt52+arrows,
# Tektronix 4207 with sysline. In the ancestral termcap file this was 4107-s;
# see the note attached to tek4207.
tek4207-s|Tektronix 4207 with sysline but no memory,
@@ -19837,7 +20244,7 @@ tek4207-s|Tektronix 4207 with sysline but no memory,
# is no way to scroll.
#
# Note that there is a floppy for free from Tek that makes the
-# 4112 emulate the vt52 (use the vt52 termcap). There is also
+# 4112 emulate the VT52 (use the VT52 termcap). There is also
# an expected enhancement that will use ANSI standard sequences.
#
# 4112 in non-dialog area pretending to scroll. It really wraps
@@ -19845,13 +20252,13 @@ tek4207-s|Tektronix 4207 with sysline but no memory,
#
# 'vi' works reasonably well with this entry.
#
-otek4112|o4112-nd|otek4113|otek4114|old tektronix 4110 series,
+otek4112|o4112-nd|otek4113|otek4114|Tektronix 4110 series (old),
am,
cols#80, lines#34,
bel=^G, clear=\E^L, cr=\r, cub1=^H, cud1=\n, cuu1=^K, ind=\n,
rmcup=\EKA1\ELV1, smcup=\EKA0\ELV0\EMG0,
# The 4112 with the ANSI compatibility enhancement
-tek4112|tek4114|tektronix 4110 series,
+tek4112|tek4114|Tektronix 4110 series,
OTbs, am, db,
cols#80, lines#34,
cbt=\E[Z, clear=\E[2J\E[0;0H, cub1=^H, cud1=\E[B,
@@ -19859,30 +20266,30 @@ tek4112|tek4114|tektronix 4110 series,
dl1=\E[M, ed=\E[0J, el=\E[0K, ich1=\E[@, il1=\E[L,
ind=\E7\E[0;0H\E[M\E8, is2=\E3!1, ri=\E7\E[0;0H\E[L\E8,
rmso=\E[m, rmul=\E[m, sgr0=\E[m, smso=\E[7m, smul=\E[4m,
-tek4112-nd|4112 not in dialog area,
+tek4112-nd|Tektronix 4112 not in dialog area,
OTns,
cuu1=^K, use=tek4112,
-tek4112-5|4112 in 5 line dialog area,
+tek4112-5|Tektronix 4112 in 5 line dialog area,
lines#5, use=tek4112,
# (tek4113: this used to have "<cuf1=\LM1\s\LM0>", someone's mistake;
# removed "<smacs=\E^N>, <rmacs=\E^O>", which had been commented out in 8.3.
# Note, the !0 and !1 sequences in <rmcup>/<smcup>/<cnorm>/<civis> were
# previously \0410 and \0411 sequences...I don't *think* they were supposed
# to be 4-digit octal -- esr)
-tek4113|tektronix 4113 color graphics with 5 line dialog area,
+tek4113|Tektronix 4113 color graphics with 5 line dialog area,
OTbs, am, da, eo,
cols#80, lines#5,
clear=\ELZ, cub1=^H, cud1=\n, cuf1=\ELM1 \ELM0,
flash=\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4
\ERBA4\ERBA4\ERB0,
is2=\EKA1\ELL5\ELV0\ELV1, uc=\010\ELM1_\ELM0,
-tek4113-34|tektronix 4113 color graphics with 34 line dialog area,
+tek4113-34|Tektronix 4113 color graphics with 34 line dialog area,
lines#34,
is2=\EKA1\ELLB2\ELV0\ELV1, use=tek4113,
# :ns: left off to allow vi visual mode. APL font (:as=\E^N:/:ae=\E^O:) not
# supported here. :uc: is slow, but looks nice. Suggest setenv MORE -up .
# :vb: needs enough delay to let you see the background color being toggled.
-tek4113-nd|tektronix 4113 color graphics with no dialog area,
+tek4113-nd|Tektronix 4113 color graphics with no dialog area,
OTbs, am, eo,
cols#80, it#8, lines#34,
clear=\E^L, cub1=^H, cud1=\n, cuf1=^I, cuu1=^K,
@@ -19893,47 +20300,40 @@ tek4113-nd|tektronix 4113 color graphics with no dialog area,
ll=\ELF hl @, rmso=\EMT1, smso=\EMT2, uc=\010\EMG1_\EMG0,
# This entry is from Tek. Inc. (Brian Biehl)
# (tek4115: :bc: renamed to :le:, <rmam>/<smam> added based on init string -- esr)
-otek4115|Tektronix 4115,
+otek4115|Tektronix 4115 (old),
OTbs, am, da, db, eo,
cols#80, it#8, lines#34,
cbt=\E[Z, clear=\E[H\E[2J,
- cnorm=\E%!0\ELBG8\E%!1\E[34;1H, cub1=\E[D, cud1=\E[B,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
- cvvis=\E%!0\ELBB2\E%!1, dch1=\E[P, dl1=\E[M, ed=\E[J,
- el=\E[K, home=\E[H, ht=^I, if=/usr/share/tabset/vt100,
- il1=\E[L,
+ cnorm=\E%!0\ELBG8\E%!1\E[34;1H,
+ cup=\E[%i%p1%d;%p2%dH, cvvis=\E%!0\ELBB2\E%!1,
+ dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
+ if=/usr/share/tabset/vt100, il1=\E[L,
is2=\E%!0\E%\014\ELV0\EKA1\ELBB2\ENU@=\ELLB2\ELM0\ELV1\EKYA?
\E%!1\E[<1l\E[?7h\E[?8h\E[34;1H\E[34B\E[m,
kbs=^H, ri=\EM, rmam=\E[?7l,
rmcup=\E%!0\ELBG8\E%!1\E[34;1H\E[J, rmir=\E[4l,
rmkx=\E>, rmso=\E[m, rmul=\E[m, sgr0=\E[m, smam=\E[?7h,
smcup=\E%!0\ELBB2\E%!1, smir=\E[4h, smkx=\E=, smso=\E[7m,
- smul=\E[4m,
-tek4115|newer tektronix 4115 entry with more ANSI capabilities,
+ smul=\E[4m, use=ansi+local1,
+tek4115|Tektronix 4115 entry with more ANSI capabilities (new),
am, xon,
cols#80, lines#34,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
- cr=\r, cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\n,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, dch1=\E[P, dl=\E[%p1%dM,
- dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, hpa=\E[%p1%{1}%+%dG,
- ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL,
- il1=\E[L, ind=\n, invis=\E[8m, kbs=^H, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, rev=\E[7m,
- rmam=\E[?7l, rmso=\E[m, rmul=\E[m,
- sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;
- %;%?%p7%t8;%;m,
- sgr0=\E[m, smam=\E[?7h, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
- vpa=\E[%p1%{1}%+%dd, use=ansi+rep,
-# The tek4125 emulates a vt100 incorrectly - the scrolling region
+ bel=^G, cr=\r, cub1=^H, cud1=\n, dch1=\E[P, ich=\E[%p1%d@,
+ ich1=\E[@, ind=\n, kcuu1=\E[A, rmam=\E[?7l, sgr0=\E[m,
+ smam=\E[?7h, use=ansi+arrows, use=ansi+cup,
+ use=ansi+erase, use=ansi+idl, use=ansi+local,
+ use=ansi+rep, use=ansi+rca, use=ansi+sgrbold,
+ use=ansi+tabs,
+
+# The tek4125 emulates a VT100 incorrectly - the scrolling region
# command is ignored. The following entry replaces <csr> with the needed
# <il>, <il>, and <smir>; removes some cursor pad commands that the tek4125
-# chokes on; and adds a lot of initialization for the tek dialog area.
+# chokes on; and adds a lot of initialization for the Tektronix dialog area.
# Note that this entry uses all 34 lines and sets the cursor color to green.
# Steve Jacobson 8/85
# (tek4125: there were two "\!"s in the is that I replaced with "\E!";
# commented out, <smir>=\E1 because there's no <rmir> -- esr)
-tek4125|tektronix 4125,
+tek4125|Tektronix 4125,
lines#34,
csr@, dl1=\E[1M, il1=\E[1L,
is2=\E%\E!0\EQD1\EUX03\EKA\ELBB2\ELCE0\ELI100\ELJ2\ELLB2
@@ -19965,24 +20365,24 @@ tek4207|Tektronix 4207 graphics terminal with memory,
# From: <carolyn@dali.berkeley.edu> Thu Oct 31 12:54:27 1985
# (tek4404: There was a "\!" in <smcup> that I replaced with "\E!".
# Tab had been given as \E2I,that must be the tab-set capability -- esr)
-tek4404|tektronix 4404,
+tek4404|Tektronix 4404,
OTbs,
cols#80, it#8, lines#32,
- blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J,
- csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\n, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[1M,
- ed=\E[J, el=\E[K, home=\E[H, ht=^I, hts=\E[2I, il1=\E[1L,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, rc=\E8,
+ blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J, cub1=^H, cud1=\n,
+ cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P,
+ dl1=\E[1M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, hts=\E[2I,
+ il1=\E[1L, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
rmcup=\E[1;1H\E[0J\E[?6h\E[?1l, rmir=\E[4l,
- rmkx=\E[?1h, rmso=\E[27m, rmul=\E[m, sc=\E7, sgr0=\E[m,
+ rmkx=\E[?1h, rmso=\E[27m, rmul=\E[m, sgr0=\E[m,
smcup=\E%\E!1\E[1;32r\E[?6l\E>, smir=\E[4h,
- smkx=\E[?1l, smso=\E[7m, smul=\E[4m,
+ smkx=\E[?1l, smso=\E[7m, smul=\E[4m, use=ansi+csr,
+
# Some unknown person wrote:
# I added the is string - straight Unix has ESC ; in the login
# string which sets a ct8500 into monitor mode (aka 4025 snoopy
# mode). The is string here cleans up a few things (but not
# everything).
-ct8500|tektronix ct8500,
+ct8500|Tektronix ct8500,
am, bw, da, db,
cols#80, lines#25,
bel=^G, cbt=\E^I, clear=\E^E, cr=\r, cub1=^H, cud1=\n,
@@ -19995,23 +20395,21 @@ ct8500|tektronix ct8500,
#
# am is not defined because the wrap around occurs not when the char.
# is placed in the 80'th column, but when we are attempting to type
-# the 81'st character on the line. (esr: hmm, this is like the vt100
+# the 81'st character on the line. (esr: hmm, this is like the VT100
# version of xenl, perhaps am + xenl would work!)
#
# Bold, dim, and standout are simulated by colors and thus not allowed
-# with colors. The tektronix color table is mapped into the RGB color
+# with colors. The Tektronix color table is mapped into the RGB color
# table by setf/setb. All colors are reset to factory specifications by oc.
# The <initc> cap uses RGB notation to define colors. for arguments 1-3 the
# interval (0-1000) is broken into 8 smaller sub-intervals (125). Each sub-
# interval then maps into pre-defined value.
-tek4205|tektronix 4205,
+tek4205|Tektronix 4205,
ccc, mir, msgr,
colors#8, cols#80, it#8, lines#30, ncv#49, pairs#63,
acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
bel=^G, blink=\E[5m, bold=\E[=7;<4m, cbt=\E[Z,
- clear=\E[2J\E[H, cr=\r, cub=\E[%p1%dD, cub1=\E[D,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+ clear=\E[2J\E[H, cr=\r, cup=\E[%i%p1%d;%p2%dH,
dch1=\E[1P, dim=\E[=1;<6m, dl=\E[%p1%dM, dl1=\E[1M,
ech=\E%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)0,
home=\E[H, ht=^I, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[1L,
@@ -20020,12 +20418,12 @@ tek4205|tektronix 4205,
%e%p1%{3}%=%t5%e%p1%{4}%=%t2%e%p1%{5}%=%t6%e%p1%{6}%=
%t7%e1%;%?%p2%{125}%<%t0%e%p2%{250}%<%tA2%e%p2%{375}%<
%tA?%e%p2%{500}%<%tC8%e%p2%{625}%<%tD4%e%p2%{750}%<%tE
- 1%e%p2%{875}%<%tE\:%eF4%;%?%p3%{125}%<%t0%e%p3%{250}%<
+ 1%e%p2%{875}%<%tE:%eF4%;%?%p3%{125}%<%t0%e%p3%{250}%<
%tA2%e%p3%{375}%<%tA?%e%p3%{500}%<%tC8%e%p3%{625}%<%tD
- 4%e%p3%{750}%<%tE1%e%p3%{875}%<%tE\:%eF4%;%?%p4%{125}
- %<%t0%e%p4%{250}%<%tA2%e%p4%{375}%<%tA?%e%p4%{500}%<%t
- C8%e%p4%{625}%<%tD4%e%p4%{750}%<%tE1%e%p4%{875}%<%tE\:
- %eF4%;\E%%!1,
+ 4%e%p3%{750}%<%tE1%e%p3%{875}%<%tE:%eF4%;%?%p4%{125}%<
+ %t0%e%p4%{250}%<%tA2%e%p4%{375}%<%tA?%e%p4%{500}%<%tC8
+ %e%p4%{625}%<%tD4%e%p4%{750}%<%tE1%e%p4%{875}%<%tE:%eF
+ 4%;\E%%!1,
invis=\E[=6;<5, is1=\E%!0\ETM1\E%!1\E[m, kbs=^H,
kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf0=\EOA,
kf1=\EOB, kf2=\EOC, kf3=\EOD, kf4=\EP, kf5=\EQ, kf6=\ER,
@@ -20042,7 +20440,7 @@ tek4205|tektronix 4205,
%e1m%;,
sgr0=\E[=0;<1m\E[24;25;27m\017, smacs=^N,
smcup=\E%%!1\E[?6l\E[2J, smir=\E[4h, smso=\E[=2;<3m,
- smul=\E[4m, tbc=\E[1g,
+ smul=\E[4m, tbc=\E[1g, use=ansi+local,
#### Teletype (tty)
#
@@ -20075,7 +20473,7 @@ tty37|model 37 teletype,
# a "newline" style terminal (-crmode) vi figures all it needs is nl
# to get crlf, even if <cr> is not ^M.)
# (tty40: removed obsolete ":nl=\EG\EB:", it's just do+cr -- esr)
-tty40|ds40|ds40-2|dataspeed40|teletype dataspeed 40/2,
+tty40|ds40|ds40-2|dataspeed40|Teletype dataspeed 40/2,
OTbs, xon,
cols#80, lines#24,
clear=\EH$<20>\EJ$<80>, cr=\EG, cub1=^H, cud1=\EB,
@@ -20099,9 +20497,9 @@ scanset|sc410|sc415|Tymshare Scan Set,
cols#80, lines#24,
acsc=j%k4l<m-q\,x5, bel=^G, clear=\EH\EJ, cr=\r, cub1=^H,
cud1=\n, cuf1=^I, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
- cuu1=^K, ed=\EJ, el=\EK, home=\EH, ind=\n, kcub1=\ED,
- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, mc0=\E;3, mc4=\E;0,
+ cuu1=^K, ed=\EJ, el=\EK, home=\EH, ind=\n, mc0=\E;3, mc4=\E;0,
mc5=\E;0, rc=^C, rmacs=^O, rs1=\E>, sc=^B, smacs=^N,
+ use=vt52+arrows,
#### Volker-Craig (vc)
#
@@ -20113,24 +20511,24 @@ scanset|sc410|sc415|Tymshare Scan Set,
# Missing in vc303a and vc303 descriptions: they scroll 2 lines at a time
# every other linefeed.
-vc303|vc103|vc203|volker-craig 303,
+vc303|vc103|vc203|Volker-Craig 303,
OTbs, OTns, am,
cols#80, lines#24,
bel=^G, clear=\014$<40>, cr=\r, cub1=^H, cud1=\n, cuf1=^I,
cuu1=^N, home=\013$<40>, kcub1=^H, kcud1=\n, kcuf1=^I,
kcuu1=^N, ll=\017$<1>W,
-vc303a|vc403a|volker-craig 303a,
+vc303a|vc403a|Volker-Craig 303a,
clear=\030$<40>, cuf1=^U, cuu1=^Z, el=\026$<20>,
home=\031$<40>, kcuf1=^U, kcuu1=^Z, ll=^P, use=vc303,
# (vc404: removed obsolete ":ma=^Z^P^U :" -- esr)
-vc404|volker-craig 404,
+vc404|Volker-Craig 404,
OTbs, am,
cols#80, lines#24,
bel=^G, clear=\030$<40>, cr=\r, cub1=^H, cud1=\n, cuf1=^U,
cup=\020%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z,
ed=\027$<40>, el=\026$<20>, home=\031$<40>, ind=\n,
kcub1=^H, kcud1=\n, kcuf1=^U, kcuu1=^Z,
-vc404-s|volker-craig 404 w/standout mode,
+vc404-s|Volker-Craig 404 w/standout mode,
cud1=\n, rmso=^O, smso=^N, use=vc404,
# From: <wolfgang@cs.sfu.ca>
# (vc414: merged in cup/dl1/home from an old vc414h-noxon)
@@ -20140,12 +20538,12 @@ vc414|vc414h|Volker-Craig 414H in sane escape mode.,
clear=\E\034$<40>, cud1=\E^K, cuf1=^P,
cup=\E\021%p2%c%p1%c$<40>, cuu1=\E^L, dch1=\E3,
dl1=\E\023$<40>, ed=\E^X, el=\E\017$<10/>, home=\E^R,
- ich1=\E\:, il1=\E\032$<40>, kcub1=^H, kcud1=\E^K, kcuf1=^P,
+ ich1=\E:, il1=\E\032$<40>, kcub1=^H, kcud1=\E^K, kcuf1=^P,
kcuu1=\E^L, kf0=\EA, kf1=\EB, kf2=\EC, kf3=\ED, kf4=\EE,
kf5=\EF, kf6=\EG, kf7=\EH, khome=\E^R, lf0=PF1, lf1=PF2,
lf2=PF3, lf3=PF4, lf4=PF5, lf5=PF6, lf6=PF7, lf7=PF8,
rmso=\E^_, smso=\E^Y,
-vc415|volker-craig 415,
+vc415|Volker-Craig 415,
clear=^L, use=vc404,
######## OBSOLETE PERSONAL-MICRO CONSOLES AND EMULATIONS
@@ -20189,21 +20587,18 @@ ibmpc|wy60-PC|wyse60-PC|IBM PC/XT running PC/IX,
cols#80, it#8, lines#24,
acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x
\263,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\Ec, cr=\r,
- cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
- home=\E[H, hpa=\E[%i%p1%dG, ind=\E[S\E[B,
- indn=\E[%p1%dS\E[%p1%dB, invis=\E[30;40m, kbs=^H,
- kcbt=^], kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=^?, kend=\E[Y, kf1=\240, kf10=\251, kf2=\241, kf3=\242,
- kf4=\243, kf5=\244, kf6=\245, kf7=\246, kf8=\247, kf9=\250,
- khome=\E[H, kich1=\E[^H, knp=\E[U, kpp=\E[V, ll=\E[24;1H,
- nel=\r, rev=\E[7m, ri=\E[T\E[A, rin=\E[%p1%dT\E[%p1%dA,
- rmso=\E[m, rmul=\E[m,
+ bel=^G, clear=\Ec, cr=\r, cup=\E[%i%p1%d;%p2%dH,
+ ech=\E[%p1%dX, ed=\E[J, el=\E[K, home=\E[H,
+ hpa=\E[%i%p1%dG, ind=\E[S\E[B, indn=\E[%p1%dS\E[%p1%dB,
+ invis=\E[30;40m, kcbt=^], kdch1=^?, kend=\E[Y, kf1=\240,
+ kf10=\251, kf2=\241, kf3=\242, kf4=\243, kf5=\244, kf6=\245,
+ kf7=\246, kf8=\247, kf9=\250, kich1=\E[^H, knp=\E[U,
+ kpp=\E[V, ll=\E[24;1H, nel=\r, rev=\E[7m, ri=\E[T\E[A,
+ rin=\E[%p1%dT\E[%p1%dA,
sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1
%;%?%p7%t30;40%;m,
- sgr0=\E[m, smso=\E[7m, smul=\E[4m,
+ sgr0=\E[m, use=ansi+arrows, use=ansi+local,
+ use=ansi+sgrbold,
#### Apple II
#
@@ -20244,8 +20639,7 @@ apple2e|Apple //e,
# mcvax!vu44!vu45!wilcke uses the "ap" entry together with Ascii Express Pro
# 4.20, with incoming and outgoing terminals both on 0, emulation On.
apple2e-p|Apple //e via Pascal,
- cup=\036%p2%{32}%+%c%p1%{32}%+%c, kbs=^H, kcub1=^H,
- kcud1=\n, use=apple2e,
+ cup=\036%p2%{32}%+%c%p1%{32}%+%c, use=apple2e,
# (ASCII Express) MouseTalk "Standard Apple //" emulation from BRL
# Enable DC3/DC1 flow control with "stty ixon -ixany".
apple-ae|ASCII Express,
@@ -20256,7 +20650,7 @@ apple-ae|ASCII Express,
home=^Y, ind=^W, is2=^R^N, kclr=^X, kcub1=^H, kcud1=\n,
kcuf1=^U, kcuu1=^K, rev=^O, ri=^V, rmso=^N, rs1=^R^N, sgr0=^N,
smso=^O,
-appleII|apple ii plus,
+appleII|Apple II plus,
OTbs, am,
cols#80, it#8, lines#24,
clear=^L, cnorm=^TC2, cub1=^H, cud1=\n, cuf1=^\,
@@ -20265,13 +20659,13 @@ appleII|apple ii plus,
is2=^TT1^N, kcud1=\n, kcuf1=^U, rmso=^N, sgr0=^N, smso=^O,
# Originally by Gary Ford 21NOV83
# From: <ee178aci%sdcc7@SDCSVAX.ARPA> Fri Oct 11 21:27:00 1985
-apple-80|apple II with smarterm 80 col,
+apple-80|Apple II with smarterm 80 col,
OTbs, am, bw,
cols#80, lines#24,
cbt=^R, clear=\014$<10*/>, cr=\r$<10*/>, cub1=^H, cud1=\n,
cuf1=^\, cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_,
ed=\013$<10*/>, el=\035$<10/>, home=^Y,
-apple-soroc|apple emulating soroc 120,
+apple-soroc|Apple emulating Soroc 120,
am,
cols#80, lines#24,
bel=^G, clear=\E*$<300>, cr=\r, cub1=^H, cud1=\n, cuf1=^L,
@@ -20321,9 +20715,8 @@ apple-uterm|Ultraterm for Apple micros,
apple80p|80-column apple with Pascal card,
am, bw,
cols#80, lines#24,
- clear=^Y^L, cuf1=^\\:,
- cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^],
- home=^Y, kcub1=^H,
+ clear=^Y^L, cuf1=^\:, cup=\036%p2%{32}%+%c%p1%{32}%+%c,
+ cuu1=^_, ed=^K, el=^], home=^Y, kcub1=^H,
#
# Apple II+ equipped with Videx 80 column card
#
@@ -20351,9 +20744,9 @@ apple-videx3|vapple|Apple II with 80 col card,
cols#80, lines#24,
clear=\Ev, cub1=\ED, cud1=\EB, cuf1=\EC,
cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, el=\Ex,
- home=\EH, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
- kf0=\EP, kf1=\EQ, kf2=\ER, kf3=\E\s, kf4=\E!, kf5=\E", kf6=\E#,
- kf7=\E$, kf8=\E%%, kf9=\E&, khome=\EH,
+ home=\EH, kf0=\EP, kf1=\EQ, kf2=\ER, kf3=\E\s, kf4=\E!,
+ kf5=\E", kf6=\E#, kf7=\E$, kf8=\E%%, kf9=\E&, khome=\EH,
+ use=vt52+arrows,
#From: decvax!cbosgd!cbdkc1!mww Mike Warren via BRL
aepro|Apple II+ running ASCII Express Pro--vt52,
OTbs,
@@ -20362,10 +20755,10 @@ aepro|Apple II+ running ASCII Express Pro--vt52,
cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
el=\EK, home=\EH,
# UCSD addition: Yet another termcap from Brian Kantor's Micro Munger Factory
-apple-vm80|ap-vm80|apple with viewmax-80,
+apple-vm80|ap-vm80|Apple with viewmax-80,
OTbs,
cols#80, lines#24,
- clear=\014$<300/>, cuf1=^\\:,
+ clear=\014$<300/>, cuf1=^\:,
cup=\036%p1%{32}%+%c%p2%{32}%+%c$<100/>, cuu1=^_,
ed=\013$<300/>, el=^], home=\031$<200/>,
@@ -20373,17 +20766,17 @@ apple-vm80|ap-vm80|apple with viewmax-80,
#
# (lisa: changed <cvvis> to <cnorm> -- esr)
-lisa|apple lisa console display (black on white),
+lisa|Apple Lisa console display (black on white),
OTbs, am, eo, msgr,
cols#88, it#8, lines#32,
acsc=jdkclfmenbqattuvvuwsx`, civis=\E[5h, clear=^L,
- cnorm=\E[5l, cub1=^H, cud1=\E[B, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
- ed=\E[J, el=\E[K, home=\E[H, ht=^I, ich1=\E[@, il1=\E[L,
- is2=\E>\E[m\014, kbs=^H, kcub1=\E[D, kcud1=\E[B,
+ cnorm=\E[5l, cub1=^H, cup=\E[%i%p1%d;%p2%dH, dch1=\E[P,
+ dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, ich1=\E[@,
+ il1=\E[L, is2=\E>\E[m\014, kbs=^H, kcub1=\E[D, kcud1=\E[B,
kcuf1=\E[C, kcuu1=\E[A, rmacs=\E[10m, rmso=\E[m, rmul=\E[m,
sgr0=\E[m, smacs=\E[11m, smso=\E[7m, smul=\E[4m,
-liswb|apple lisa console display (white on black),
+ use=ansi+local1,
+liswb|Apple Lisa console display (white on black),
is2=\E>\E[0;7m\014, rmso=\E[0;7m, rmul=\E[0;7m,
smso=\E[m, smul=\E[4m, use=lisa,
@@ -20393,25 +20786,24 @@ liswb|apple lisa console display (white on black),
# These entries assume that the 'Auto Wraparound' is enabled.
# Xon-Xoff flow control should also be enabled.
#
-# The vt100 uses :rs2: and :rf: rather than :is2:/:tbc:/:hts: because the tab
+# The VT100 uses :rs2: and :rf: rather than :is2:/:tbc:/:hts: because the tab
# settings are in non-volatile memory and don't need to be reset upon login.
# Also setting the number of columns glitches the screen annoyingly.
# You can type "reset" to get them set.
#
-lisaterm|Apple Lisa or Lisa/2 running LisaTerm vt100 emulation,
+lisaterm|Apple Lisa or Lisa/2 running LisaTerm VT100 emulation,
OTbs, OTpt, am, xenl, xon,
OTkn#4, cols#80, it#8, lines#24, vt#3,
bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, ed=\E[J,
- el=\E[K, home=\E[H, ht=^I, hts=\EH, ind=\n, kbs=^H, kcub1=\EOD,
+ cub1=^H, cud1=\n, cup=\E[%i%p1%d;%p2%dH, ed=\E[J, el=\E[K,
+ home=\E[H, ht=^I, hts=\EH, ind=\n, kbs=^H, kcub1=\EOD,
kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf0=\EOP, kf1=\EOQ,
- kf2=\EOR, kf3=\EOS, lf0=F1, lf1=F2, lf2=F3, lf3=F4, rc=\E8,
- rev=\E[7m, ri=\EM, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
+ kf2=\EOR, kf3=\EOS, lf0=F1, lf1=F2, lf2=F3, lf3=F4, rev=\E[7m,
+ ri=\EM, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
rs1=\E>\E[?1l\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r,
- sc=\E7, sgr0=\E[m, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
- tbc=\E[3g,
+ sgr0=\E[m, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
+ tbc=\E[3g, use=ansi+csr, use=ansi+local,
+
# Lisaterm in 132 column ("wide") mode.
lisaterm-w|Apple Lisa with Lisaterm in 132 column mode,
cols#132,
@@ -20439,12 +20831,12 @@ mac-w|macterminal-w|Apple Macintosh with MacTerminal in 132 column mode,
coco3|os9LII|Tandy CoCo3 24*80 OS9 Level II,
OTbs, am,
cols#80, it#8, lines#24,
- bel=^G, blink=^_", bold=\E\:\001, civis=^E\s,
+ bel=^G, blink=^_", bold=\E:^A, civis=^E\s,
clear=\014$<5*/>, cnorm=^E!, cub1=^H, cud1=\n, cuf1=^F,
cup=\002%p2%{32}%+%c%p1%{32}%+%c$<2/>, cuu1=^I,
dl1=^_1, ed=^K, el=^D, home=^A, il1=^_0, kcub1=^H, kcud1=\n,
kcuf1=^I, kcuu1=^L, rev=^_\s, rmso=^_!, rmul=^_#,
- sgr0=\037!\E\:\0, smso=^_\s, smul=^_",
+ sgr0=\037!\E:\0, smso=^_\s, smul=^_",
# (trs2: removed obsolete ":nl=^_:" -- esr)
trs2|trsII|trs80II|Radio Shack Model II using P&T CP/M,
OTbs, am, msgr,
@@ -20465,11 +20857,11 @@ trs16|trs-80 model 16 console,
cnorm=\ERC, cr=\r, cub1=^H, cud1=\EB, cuf1=\EC,
cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EQ,
dl1=\EM, ed=\EJ, el=\EK, home=\EH, ht=^I, ich1=\EP, il1=\EL,
- ind=\n, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
- kf0=^A, kf1=^B, kf2=^D, kf3=^L, kf4=^U, kf5=^P, kf6=^N, kf7=^S,
- khome=^W, lf0=f1, lf1=f2, lf2=f3, lf3=f4, lf4=f5, lf5=f6, lf6=f7,
- lf7=f8, mc4=\E]+, mc5=\E]=, rmacs=\ERg, rmso=\ER@, sgr0=\ER@,
- smacs=\ERG, smso=\ERD,
+ ind=\n, kbs=^H, kf0=^A, kf1=^B, kf2=^D, kf3=^L, kf4=^U, kf5=^P,
+ kf6=^N, kf7=^S, khome=^W, lf0=f1, lf1=f2, lf2=f3, lf3=f4, lf4=f5,
+ lf5=f6, lf6=f7, lf7=f8, mc4=\E]+, mc5=\E]=, rmacs=\ERg,
+ rmso=\ER@, sgr0=\ER@, smacs=\ERG, smso=\ERD,
+ use=vt52+arrows,
#### Commodore Business Machines
#
@@ -20502,18 +20894,16 @@ amiga|Amiga ANSI,
OTbs, am, bw, xenl,
cols#80, lines#24,
acsc=, bel=^G, blink=\E[7;2m, bold=\E[1m, cbt=\E[Z,
- civis=\E[0 p, clear=\E[H\E[J, cnorm=\E[ p, cub=\E[%p1%dD,
- cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
- cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H,
- ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\E[S,
- invis=\E[8m, is2=\E[20l, kbs=^H, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kf0=\E[9~, kf1=\E[0~, kf2=\E[1~,
- kf3=\E[2~, kf4=\E[3~, kf5=\E[4~, kf6=\E[5~, kf7=\E[6~,
- kf8=\E[7~, kf9=\E[8~, rev=\E[7m, ri=\E[T, rmacs=^O,
- rmso=\E[m, rmul=\E[m, rs1=\Ec, sgr0=\E[m, smacs=^N,
- smso=\E[7m, smul=\E[4m, use=ecma+index,
+ civis=\E[0 p, cnorm=\E[ p, cup=\E[%i%p1%d;%p2%dH,
+ dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, home=\E[H,
+ ich=\E[%p1%d@, ich1=\E[@, ind=\E[S, invis=\E[8m,
+ is2=\E[20l, kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
+ kcuu1=\E[A, kf0=\E[9~, kf1=\E[0~, kf2=\E[1~, kf3=\E[2~,
+ kf4=\E[3~, kf5=\E[4~, kf6=\E[5~, kf7=\E[6~, kf8=\E[7~,
+ kf9=\E[8~, rev=\E[7m, ri=\E[T, rmacs=^O, rmso=\E[m,
+ rmul=\E[m, rs1=\Ec, sgr0=\E[m, smacs=^N, smso=\E[7m,
+ smul=\E[4m, use=ansi+erase, use=ansi+idl, use=ansi+local,
+ use=ecma+index,
# From: Hans Verkuil <hans@wyst.hobby.nl>, 4 Dec 1995
# (amiga: added empty <acsc> to suppress a warning.
@@ -20556,17 +20946,13 @@ amiga-vnc|Amiga using VNC console (black on light gray),
am, da, db, msgr, ndscr,
btns#1, colors#16, cols#80, lines#24, lm#0, ncv#0, pairs#0x100,
bel=^G, blink=\E[7;2m, bold=\E[1m, civis=\E[0p,
- clear=\E[H\E[J, cnorm=\E[p\E[>?6l, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[>?6h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
- dl=\E[%p1%dM, dl1=\E[1M, ed=\E[J, el=\E[K, flash=^G,
+ cnorm=\E[p\E[>?6l, cr=\r, csr=\E[%i%p1%d;%p2%dr,
+ cup=\E[%i%p1%d;%p2%dH, cvvis=\E[>?6h, dch=\E[%p1%dP,
+ dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[1M, flash=^G,
ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[1L, ind=\ED,
invis=\E8m,
is2=\E[>?2;18l\E[>?26;?6;20;>?15;?7;>?22;>?8h,
- kbs=^H, kcbt=\233Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kdch1=^?, kf0=\E[9~, kf1=\E[0~, kf2=\E[1~,
+ kcbt=\233Z, kdch1=^?, kf0=\E[9~, kf1=\E[0~, kf2=\E[1~,
kf3=\E[2~, kf4=\E[3~, kf5=\E[4~, kf6=\E[5~, kf7=\E[6~,
kf8=\E[7~, kf9=\E[8~, khlp=\E[?~, khome=\E[44~, kll=\E[45~,
kmous=\E[M, knp=\E[42~, kpp=\E[41~, nel=\EE, oc=\E[0m,
@@ -20576,7 +20962,8 @@ amiga-vnc|Amiga using VNC console (black on light gray),
setab=\E[%?%p1%{8}%>%t%'F'%p1%+%d%e4%p1%d%;m,
setaf=\E[%?%p1%{8}%>%t%'2'%p1%+%d%e3%p1%d%;m,
sgr0=\E[0m\017\E[30;85;>15m, smcup=\E[?7h, smkx=\E[?1h,
- smso=\E[1m, smul=\E[4m, use=ecma+index,
+ smso=\E[1m, smul=\E[4m, use=ansi+arrows, use=ansi+erase,
+ use=ansi+local, use=ecma+index,
# MorphOS on Genesi Pegasos
# By Pavel Fedin <sonic_amiga@rambler.ru>
@@ -20632,7 +21019,7 @@ northstar|North Star Advantage,
# with most systems.
#
# The tab is destructive on the Ozzie; make sure to 'stty -tabs'.
-osborne-w|osborne1-w|osborne I in 104-column mode,
+osborne-w|osborne1-w|Osborne I in 104-column mode,
msgr, ul, xt,
cols#104, lines#24,
bel=^G, clear=^Z, cr=\r, cub1=^H, cud1=\n, cuf1=^L,
@@ -20640,7 +21027,7 @@ osborne-w|osborne1-w|osborne I in 104-column mode,
dl1=\ER, el=\ET, ich1=\EQ, il1=\EE, ind=\n, kcub1=^H, kcud1=\n,
kcuf1=^L, kcuu1=^K, rmso=\E(, rmul=\Em, smso=\E), smul=\El,
# Osborne I from ptsfa!rhc (Robert Cohen) via BRL
-osborne|osborne1|osborne I in 80-column mode,
+osborne|osborne1|Osborne I in 80-column mode,
OTbs, am, mir, msgr, ul, xhp,
OTdB#4, cols#80, lines#24,
clear=^Z, cub1=\010$<4>, cud1=\n, cuf1=^L,
@@ -20681,6 +21068,7 @@ osexec|Osborne executive,
# See
# https://web.archive.org/web/20120703021949/http://www.minix3.org/manpages/html4/console.html
minix|minix console (v3),
+ NQ,
acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260j
\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v
\301w\302x\263y\363z\362{\343|\330}\234~\376,
@@ -20704,36 +21092,23 @@ minix-3.0|minix console (v3.0),
# See
# https://web.archive.org/web/20030914201935/http://www.minix-vmd.org/pub/Minix-vmd/1.7.0/wwwman/man4/console.4.html
-# This is the entry provided with minix 1.7.4, with bogus :ri: removed.
+# This matches the entry provided with minix 1.7.4, with bogus :ri: removed.
minix-1.7|minix console (v1.7),
- am, xenl,
- cols#80, it#8, lines#25,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[0J, cr=\r,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[0J, el=\E[K, el1=\E[2K,
- home=\E[H, ht=^I, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL,
- il1=\E[L, ind=\n, is2=\E[0m, kbs=^H, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kf0=\E[Y, kf1=\E[V, kf2=\E[U,
- kf3=\E[T, kf4=\E[S, kf5=\E[G, khome=\E[H, lf0=End, lf1=PgUp,
- lf2=PgDn, lf3=Num +, lf4=Num -, lf5=Num 5, nel=\r\n,
- rev=\E[7m, ri=\EM, rmso=\E[0m, rmul=\E[0m, sgr0=\E[0m,
- smso=\E[7m, smul=\E[4m,
+ am, xenl, xon@,
+ el1=\E[2K, is2=\E[0m, lf0=End, lf1=PgUp, lf2=PgDn, lf3=Num +,
+ lf4=Num -, lf5=Num 5, use=minix-1.5,
# Corrected Jan 14, 1997 by Vincent Broman <broman@nosc.mil>
minix-old|minix-1.5|minix console (v1.5),
- xon,
+ xon, NQ,
cols#80, it#8, lines#25,
bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[0J, cr=\r,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[0J, el=\E[K, home=\E[H, ht=^I,
- ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\n,
- kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kf0=\E[Y, kf1=\E[V, kf2=\E[U, kf3=\E[T, kf4=\E[S, kf5=\E[G,
- khome=\E[H, nel=\r\n, rev=\E[7m, ri=\EM, rmso=\E[0m,
+ cub1=^H, cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\E[P,
+ ed=\E[0J, el=\E[K, home=\E[H, ht=^I, ich=\E[%p1%d@,
+ ich1=\E[@, ind=\n, kf0=\E[Y, kf1=\E[V, kf2=\E[U, kf3=\E[T,
+ kf4=\E[S, kf5=\E[G, nel=\r\n, rev=\E[7m, ri=\EM, rmso=\E[0m,
rmul=\E[0m, sgr0=\E[0m, smso=\E[7m, smul=\E[4m,
+ use=ansi+arrows, use=ansi+idl, use=ansi+local,
+
# The linewrap option can be specified by editing /usr/include/minix/config.h
# before recompiling the minix 1.5 kernel.
minix-old-am|minix console with linewrap,
@@ -20751,12 +21126,12 @@ pc-coherent|pcz19|coherent|IBM PC console running Coherent,
cols#80, it#8, lines#25,
bel=^G, clear=\EE, cr=\r, cub1=^H, cud1=\EB, cuf1=\EC,
cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EN,
- ed=\EJ, el=\EK, home=\EH, ht=^I, ind=\n, kbs=^H, kcub1=\ED,
- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome=\EH, ri=\EI, rmir=\EO,
- rmso=\Eq, sgr0=\Eq, smir=\E@, smso=\Ep,
+ ed=\EJ, el=\EK, home=\EH, ht=^I, ind=\n, kbs=^H, khome=\EH,
+ ri=\EI, rmir=\EO, rmso=\Eq, sgr0=\Eq, smir=\E@, smso=\Ep,
+ use=vt52+arrows,
# According to the Venix 1.1 manual, the PC console is similar
-# to a DEC vt52. Differences seem to be (1) arrow keys send
+# to a DEC VT52. Differences seem to be (1) arrow keys send
# different strings, (2) enhanced standout, (3) added insert/delete line.
# Note in particular that it doesn't have automatic margins.
# There are other keys (f1-f10, kpp, knp, kcbt, kich1, kdch1) but they
@@ -20781,20 +21156,21 @@ pc-venix|venix|IBM PC console running Venix,
# wrap mode is reset by <cvvis>. Using <ind>=\E[S caused errors so I
# used \ED instead.
# From: bf347@lafn.org (David Lawyer), 28 Jun 1997
-mai|basic4|MAI Basic Four in ansi mode,
+mai|basic4|MAI Basic Four in ANSI mode,
am, da, db, mir, msgr,
cols#82, it#8, lines#25,
bel=^G, blink=\E[5m, bold=\E[1m, clear=^]^_, cnorm=\E[?7h,
- cr=\r, csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\n, cuf1=^X,
- cup=\E[%i%p1%d;%p2%dH, cuu1=^Z, cvvis=\E[?7l, dch1=\E[1P,
- dl1=\E[M, ed=^_, el=^^, home=^], ht=^I,
- if=/usr/share/tabset/vt100, il1=\E[L, ind=\ED,
+ cr=\r, cub1=^H, cud1=\n, cuf1=^X, cup=\E[%i%p1%d;%p2%dH,
+ cuu1=^Z, cvvis=\E[?7l, dch1=\E[1P, dl1=\E[M, ed=^_, el=^^,
+ home=^], ht=^I, if=/usr/share/tabset/vt100, il1=\E[L,
+ ind=\ED,
is2=\E>\E[?1h\E[?7h\E[?5l\017\E(B\E[m\E[20l\E[1;24r\E[24;1H,
kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU,
- kf7=\EOV, kf8=\EOW, nel=\r\ED, rc=\E8, rev=\E[7m, ri=\E[T,
- rmir=\E[4l, rmso=\E[m, rmul=\E[m, sc=\E7, sgr0=\E[m,
- smir=\E[4h, smso=\E[7m, smul=\E[4m,
+ kf7=\EOV, kf8=\EOW, nel=\r\ED, rev=\E[7m, ri=\E[T,
+ rmir=\E[4l, rmso=\E[m, rmul=\E[m, sgr0=\E[m, smir=\E[4h,
+ smso=\E[7m, smul=\E[4m, use=ansi+csr,
+
# basis from Peter Harrison, Computer Graphics Lab, San Francisco
# ucbvax!ucsfmis!harrison ...uucp / ucbvax!ucsfmis!harrison@BERKELEY ...ARPA
#
@@ -20813,8 +21189,7 @@ mai|basic4|MAI Basic Four in ansi mode,
# (basis: removed obsolete ":ma=^K^P^R^L^L :nl=5000*^J:" -- esr)
basis|BASIS108 computer with terminal translation table active,
clear=\E*$<300/>, cud1=\n$<5000/>, ed=\EY, el=\ET, kbs=^H,
- kcub1=^H, kcud1=\n, kcuf1=^L, kcuu1=^K, rmso=\E), sgr0=\E),
- smso=\E(, use=adm3a,
+ rmso=\E), sgr0=\E), smso=\E(, use=adm3a,
# luna's BMC terminal emulator
luna|luna68k|LUNA68K Bitmap console,
cols#88, lines#46, use=ansi-mini,
@@ -20845,24 +21220,20 @@ m2-nam|minitel|minitel-2|minitel-2-nam|France Telecom Minitel 2 mode te'le'infor
OTbs, eslok, hs, xenl,
cols#80, it#8, lines#24, wsl#72, xmc#0,
acsc=aaffggjjkkllmmnnooqqssttuuvvwwxx, bel=^G,
- blink=\E[5m, bold=\E[1m, civis=\E[<1h, clear=\E[H\E[J,
- cnorm=\E[<1l, cr=\r, csr=\E[%i%p1%d;%p2%dr,
- cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, flash=^G, fsl=\n,
- home=\E[H, ht=^I, il=\E[%p1%dL, il1=\E[L, ind=\n, ip=$<7/>,
- is1=\E\:1}\Ec\E[?4l\E[12h, is2=\Ec\E[12h\E)0,
- is3=\E[?3l, kbs=^H, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kdl1=\E[M, kf0=\EOp,
+ blink=\E[5m, bold=\E[1m, civis=\E[<1h, cnorm=\E[<1l, cr=\r,
+ cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\E[P,
+ flash=^G, fsl=\n, home=\E[H, ht=^I, ind=\n, ip=$<7/>,
+ is1=\E:1}\Ec\E[?4l\E[12h, is2=\Ec\E[12h\E)0,
+ is3=\E[?3l, kclr=\E[2J, kdch1=\E[P, kdl1=\E[M, kf0=\EOp,
kf1=\EOq, kf10=\EOp, kf2=\EOr, kf3=\EOs, kf4=\EOt, kf5=\EOu,
- kf6=\EOv, kf7=\EOw, kf8=\EOx, kf9=\EOy, khome=\E[H,
- kich1=\E[4h, kil1=\E[4l, knp=\EOn, kpp=\EOR, ll=\E[24;80H,
- mc0=\E[i, nel=\r\n, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
- rmir=\E[4l, rmso=\E[27m, rmul=\E[24m,
- rs1=\Ec\E[?4l\E[12h, rs2=\Ec\E)0, sc=\E7, sgr0=\E[m,
- smacs=^N, smir=\E[4h, smso=\E[7m, smul=\E[4m, tsl=^_@A,
- u6=\E[%i%d;%dR, u7=\E[6n,
+ kf6=\EOv, kf7=\EOw, kf8=\EOx, kf9=\EOy, kich1=\E[4h,
+ kil1=\E[4l, knp=\EOn, kpp=\EOR, ll=\E[24;80H, mc0=\E[i,
+ nel=\r\n, rev=\E[7m, ri=\EM, rmacs=^O, rmir=\E[4l,
+ rmso=\E[27m, rmul=\E[24m, rs1=\Ec\E[?4l\E[12h,
+ rs2=\Ec\E)0, sgr0=\E[m, smacs=^N, smir=\E[4h, smso=\E[7m,
+ smul=\E[4m, tsl=^_@A, use=ansi+arrows, use=ansi+cpr,
+ use=ansi+csr, use=ansi+erase, use=ansi+idl,
+ use=ansi+local,
# From: Alexandre Montaron <canal@mygale.org>, 18 Jun 1998, updated 19 Sep 2016
#
@@ -20874,7 +21245,7 @@ minitel1|minitel 1,
cup=\037%p1%'A'%+%c%p2%'A'%+%c, cuu1=^K,
dsl=\037@A\030\n, el=^X,
flash=\037@A\EW \177\022\177\022P\r\030\n, fsl=\n,
- home=^^, ind=\n, is2=\E;`ZQ\E\:iC\E\:iE\021, kbs=^SG,
+ home=^^, ind=\n, is2=\E;`ZQ\E:iC\E:iE\021, kbs=^SG,
kcan=^SE, kend=^SI, kent=^SA, khlp=^SD, knp=^SH, kpp=^SB,
krfr=^SC, nel=\r\n, op=\EG, rep=%p1%c\022%p2%'?'%+%c,
rev=\E], ri=^K, rmso=\E\\,
@@ -20908,27 +21279,26 @@ minitel1|minitel 1,
\177\,--,
minitel1b|minitel 1-bistandard (in 40cols mode),
mir,
- cub=\E[%p1%dD, cud=\E[%p1%dB, cuf=\E[%p1%dC,
- cuu=\E[%p1%dA, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
- dl1=\E[M, ed=\E[J, el1=\E[1K, il=\E[%p1%dL, il1=\E[L,
- is1=\E;iYA\E;jYC, kbs@, kcan@, kclr=\E[2J, kctab=^I,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P,
- kdl1=\E[M, kent@, kf1=^SD, kf10=^Y0, kf11=^Y1, kf12=^Y/,
- kf13=^Y{1, kf14=^Y{2, kf15=^Y{3, kf16=^Y{4, kf17=^Y{5,
- kf18=^Y{6, kf19=^Y{7, kf2=^SC, kf20=^Y{8, kf21=^Y{9,
- kf22=^Y{0, kf23=^Y{*, kf24=^Y{#, kf3=^SF, kf4=^SA, kf5=^SG,
- kf6=^SE, kf7=^Y8, kf8=^Y\,, kf9=^Y., khlp@, khome=\E[H,
- kich1=\E[4h, kil1=\E[L, krfr@, lf1=Guide, lf2=Repetition,
- lf3=Sommaire, lf4=Envoi, lf5=Correction, lf6=Annulation,
- rmir=\E[4l, smir=\E[4h,
- u8=\001%[ABCPtuvwxyz0123456789\:;<=>?]\004,
+ cub1=^H, cud1=\n, cuf1=^I, cuu1=^K, dch=\E[%p1%dP, dch1=\E[P,
+ ed=\E[J, el1=\E[1K, is1=\E;iYA\E;jYC, kbs@, kcan@,
+ kclr=\E[2J, kctab=^I, kdch1=\E[P, kdl1=\E[M, kent@, kf1=^SD,
+ kf10=^Y0, kf11=^Y1, kf12=^Y/, kf13=^Y{1, kf14=^Y{2,
+ kf15=^Y{3, kf16=^Y{4, kf17=^Y{5, kf18=^Y{6, kf19=^Y{7,
+ kf2=^SC, kf20=^Y{8, kf21=^Y{9, kf22=^Y{0, kf23=^Y{*,
+ kf24=^Y{#, kf3=^SF, kf4=^SA, kf5=^SG, kf6=^SE, kf7=^Y8,
+ kf8=^Y\,, kf9=^Y., khlp@, kich1=\E[4h, kil1=\E[L, krfr@,
+ lf1=Guide, lf2=Repetition, lf3=Sommaire, lf4=Envoi,
+ lf5=Correction, lf6=Annulation, rmir=\E[4l, smir=\E[4h,
+ u8=\001%[ABCPtuvwxyz0123456789:;<=>?]\004,
.ich=\E[%p1%d@, .ich1=\E[@, .kLFT=\E[P, .kRIT=\E[4h,
- .kb2=^Y{g, .kcbt=^Y{i, .kel=^X, .mc0=\E\:|k, .rmkx=\E;jYA,
+ .kb2=^Y{g, .kcbt=^Y{i, .kel=^X, .mc0=\E:|k, .rmkx=\E;jYA,
.rs1=\E[4l\E[2l, .smkx=\E;iYA\E;jYC, .u8=^ACu<^D,
+ use=ansi+arrows, use=ansi+idl, use=ansi+local,
use=minitel1,
+
# rmkx posait des problemes (logout en sortant de vi).
minitel1b-80|minitel 1-bistandard (standard teleinformatique),
- am@, bw@, eslok@, hz@, msgr, G0,
+ am@, bw@, eslok@, hz@, msgr,
colors@, cols#80, it#8, pairs@,
acsc@, blink=\E[5m, bold=\E[1m, civis=\037@A\024\n,
clear=\E[H\E[J, cnorm=\037@A\021\n, cuf1=\E[C,
@@ -20959,7 +21329,6 @@ minitel1b-80|minitel 1-bistandard (standard teleinformatique),
.sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1
;%;m,
.smacs=^N, C0=}#f[j+k+l+m+n+o~q=s_t+u+v+w+x!0\032,
- E0=^O, S0=^N,
XC=B\016%\017\,\243#\,\247]\,\260[\,\340@\,\347\\\\\,\351{\,
\350}\,\371|\,\300A\,\301A\,\302A\,\303A\,\304A\,\305A\,
\306E\,\307C\,\310E\,\311E\,\312E\,\313E\,\314I\,\315I\,
@@ -21010,11 +21379,10 @@ minitel1b-nb|minitel 1b (40cols) noir & blanc sans couleurs avec bold et dim ...
#
# Fonctionne par exemple avec Midnight Commander (mc).
-minitel2-80|minitel 2 (80cols) avec filets vt100 (DEC),
- G0,
+minitel2-80|minitel 2 (80cols) avec filets VT100 (DEC),
acsc=ffggjjkkllmmnnooqqssttuuvvwwxxyyzz||}},
enacs=\E)0, rmacs=^O, smacs=^N, u6=\E[%i%d;%dR,
- C0=ffggjjkkllmmnnooqqssttuuvvwwxxyyzz||}}, E0=^O,
+ C0=ffggjjkkllmmnnooqqssttuuvvwwxxyyzz||}},
S0=\E)0\016,
XC=B%\E(B\,\243\E(3}\,\247\E(R[\,\257\E(3v\,\260\E(3f\,\261
\E(3g\,\265\E(3Y\,\267\E(3~\,\274\E(3O\,\275\E(3P\,\276
@@ -21032,7 +21400,6 @@ minitel2-80|minitel 2 (80cols) avec filets vt100 (DEC),
use=minitel12-80,
minitel12-80|minitel 12 (80cols),
- G0,
civis=\E[<1h, cnorm=\E[<1l, is2=\E[12h, u6=\E[%i%d;%dH,
u7=\E[6n,
.acsc=ffggj+k+l+m+n+ovq-swt+u+v+w+xx}}\,m+k.l-j0
@@ -21040,7 +21407,7 @@ minitel12-80|minitel 12 (80cols),
.enacs=\E)3, .rmacs=^O, .rs3=\E[?4l, .scs=\E(%p1%c,
.smacs=^N,
C0=ffggj+k+l+m+n+ovq-swt+u+v+w+xx}}\,m+k.l-j0\177,
- E0=^O, S0=\E)3\016,
+ S0=\E)3\016,
XC=B%\E(B\,\243\E(3}\,\247\E(R[\,\257\E(3v\,\260\E(3f\,\261
\E(3g\,\267\E(3~\,\274\E(3O\,\275\E(3P\,\276\E(3Q\,\300A
\,\301A\,\302A\,\303A\,\304A\,\305A\,\306E\,\307C\,\310E
@@ -21076,8 +21443,8 @@ screen.minitel1|Screen specific for minitel1,
acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxy
yzz||}}~~,
bel=\007\E\^ \E\\, bold@, csr@, flash=\Eg\E\^ \E\\, kmous@,
- rmul@, smul@, u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?1;2c, u9=\EZ,
- use=xterm+x11mouse, use=screen4,
+ rmul@, smul@, u8=\E[?1;2c, use=decid+cpr,
+ use=xterm+x11mouse, use=screen,
screen.minitel1b|Screen specific for minitel1b,
kclr=\E[2J, kdl1=\E[M, kf13=^Y{1, kf14=^Y{2, kf15=^Y{3,
@@ -21094,7 +21461,7 @@ screen.minitel1b-80|screen.minitel2-80|screen.minitel12-80|Screen specific for m
screen.minitel1-nb|Screen specific for minitel1-nb,
colors@, ncv@, pairs@,
- bold=\E[1m, dim=\E[2m, op@, setab@, setaf@, setb@, setf@,
+ bold=\E[1m, op@, setab@, setaf@, setb@, setf@,
use=screen.minitel1,
screen.minitel1b-nb|Screen specific for minitel1b-nb,
@@ -21106,30 +21473,26 @@ screen.minitel1b-nb|Screen specific for minitel1b-nb,
linux-m1|Linux Minitel 1 "like" Couleurs,
am, bw@, ccc, mir, msgr, xenl,
- colors#8, it#8, ncv#16, pairs#64,
+ it#8, ncv#16,
acsc=a\261f\370g\361h\260j\274k\273l\311m\310n\316q\315t
\314u\271v\312w\313x\272y\363z\362{\343|\252~\372,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\n, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP,
- dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M,
- ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)U,
- flash=\E[?5h$<100/>\E[?5l, home=\E[H, hpa=\E[%i%p1%d`,
- ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=\n,
+ bel=^G, blink=\E[5m, bold=\E[1m, cr=\r, cub1=^H, cud1=\n,
+ dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, ech=\E[%p1%dX,
+ el1=\E[1K, enacs=\E)U, flash=\E[?5h$<100/>\E[?5l,
+ hpa=\E[%i%p1%d`, ht=^I, hts=\EH, ind=\n,
initc=\E]P%p1%{15}%&%X%p2%{255}%&%02X%p3%{255}%&%02X%p4
%{255}%&%02X,
is2=\E]R\E]P3FFFF80\E[?8c, ka1=\EOw, ka3=\EOy, kb2=\E[G,
- kbs=^?, kc1=\EOq, kc3=\EOs, kcbt=\E^I, kclr=\E\r, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdl1=\E\E[A, kent=\EOM,
- kf1=\E[[A, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
- kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
- kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\E[[B,
- kf20=\E[34~, kf3=\E[[C, kf4=\E[[D, kf5=\E[[E, kf6=\E[17~,
- kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kil1=\E\E[B,
- kmous=\E[M, nel=\EE, oc=\E]R\E]P3FFFF80, op=\E[39;49m,
- rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O, rmam=\E[?7l, rmir=\E[4l,
- rmpch=\E[10m, rmso=\E[27m, rs1=\Ec, rs3=\E[37;40m\E[8],
- sc=\E7, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, sgr0=\E[m,
+ kbs=^?, kc1=\EOq, kc3=\EOs, kcbt=\E^I, kclr=\E\r,
+ kdl1=\E\E[A, kent=\EOM, kf1=\E[[A, kf10=\E[21~,
+ kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
+ kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
+ kf19=\E[33~, kf2=\E[[B, kf20=\E[34~, kf3=\E[[C, kf4=\E[[D,
+ kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+ khome=\E[1~, kil1=\E\E[B, kmous=\E[M, nel=\EE,
+ oc=\E]R\E]P3FFFF80, op=\E[39;49m, rev=\E[7m, ri=\EM,
+ rmacs=^O, rmam=\E[?7l, rmir=\E[4l, rmpch=\E[10m,
+ rmso=\E[27m, rs1=\Ec, rs3=\E[37;40m\E[8], sgr0=\E[m,
smacs=^N, smam=\E[?7h, smir=\E[4h, smpch=\E[11m,
smso=\E[7m, tbc=\E[3g, vpa=\E[%i%p1%dd, .VN=\E[?5l,
.VR=\E[?5h, .am@, .ich=\E[%p1%d@, .ich1=\E[@, .ll=\E[99H,
@@ -21143,9 +21506,12 @@ linux-m1|Linux Minitel 1 "like" Couleurs,
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\n\n\n\n\n\n\n\n\n\n,
- use=vt220+pcedit, use=vt220+cvis, use=linux+decid,
+ use=ansi+arrows, use=ansi+csr, use=ansi+cup,
+ use=ansi+erase, use=ansi+idl, use=ansi+local1,
+ use=klone+color, use=vt220+pcedit, use=vt220+cvis,
+ use=linux+decid,
-# 1. Using double-shapes for vt100 graphical chars (eg: mc).
+# 1. Using double-shapes for VT100 graphical chars (eg: mc).
# 2. Native brown color corrected to good yellow color.
# 3. Adding "Insert" and "Delete Line" keys as ESC Up and ESC Down arrow keys.
# 4. Suppressed nonexistent underlined mode (normally as bright).
@@ -21178,8 +21544,7 @@ linux-m2|Linux Minitel 2 "like" Couleurs (Vert/Blanc/Noir+Bleu),
900\E]P600A900\E]P700A900\E]P80000FF\E]P9FFFFFF\E]PAFFFF
FF\E]PBFFFFFF\E]PCFFFFFF\E]PDFFFFFF\E]PEFFFFFF\E]PFFFFFF
F\E[;37m,
- oc@, op@, rmacs=^O, setab=^A, setaf=^A, sgr0=\E[;37m, smacs=^N,
- .setab@, .setaf@,
+ oc@, op@, setab=^A, setaf=^A, sgr0=\E[;37m, .setab@, .setaf@,
.smcup=\E]R\E]P100A900\E]P200A900\E]P3FFFFFF\E]P400A900\E]P5
00A900\E]P600A900\E]P700A900\E]P80000FF\E]P9FFFFFF\E]
PAFFFFFF\E]PBFFFFFF\E]PCFFFFFF\E]PDFFFFFF\E]PEFFFFFF
@@ -21187,7 +21552,7 @@ linux-m2|Linux Minitel 2 "like" Couleurs (Vert/Blanc/Noir+Bleu),
use=linux-m1,
# From: Alexandre Montaron, 27 May 2020
-linux-s|Linux Console with added status line at bottom,
+linux-s|Linux console with added status line at bottom,
hs,
clear=\E[255;255H\E[A\E[1J\E[H, csr@,
dsl=\E7\E[255H\E[K\E8, ed@, fsl=\E8,
@@ -21201,10 +21566,10 @@ linux-s|Linux Console with added status line at bottom,
screen.linux-m1|Linux m1 specific for screen,
ncv@,
- dim=\E[2m, kbs=^?, kclr=\E\r, kdl1=\E\E[A, kf13=\E[25~,
- kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
- kf18=\E[32~, kf19=\E[33~, kf20=\E[34~, kil1=\E\E[B, rmul@,
- smul@, u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?1;2c, u9=\EZ,
+ kclr=\E\r, kdl1=\E\E[A, kf13=\E[25~, kf14=\E[26~,
+ kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
+ kf19=\E[33~, kf20=\E[34~, kil1=\E\E[B, rmul@, smul@,
+ u8=\E[?1;2c,
E3=\E[99H\E[2J\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
@@ -21213,7 +21578,7 @@ screen.linux-m1|Linux m1 specific for screen,
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\n\n\n\n\n\n\n\n\n\n,
- use=xterm+x11mouse, use=screen4,
+ use=decid+cpr, use=xterm+x11mouse, use=screen,
screen.linux-m1b|Linux m1b specific for screen,
colors@, pairs@,
@@ -21227,32 +21592,26 @@ screen.linux-m2|Linux m2 specific for screen,
# Putty :
putty-m1|Putty Minitel 1 "like" Couleurs,
- hs,
dim@, kf1=\E[11~, kf2=\E[12~, kf3=\E[13~, kf4=\E[14~,
- kf5=\E[15~, rmcup=\E[2J\E[?47l\E8, rmul=\E[24m,
- smcup=\E7\E[?47h, smul=\E[4m, .E3=\E[300S,
- use=putty+screen, use=xterm+sl-twm, use=ecma+index,
- use=linux-m1,
+ kf5=\E[15~, rmul=\E[24m, smul=\E[4m, .E3=\E[300S,
+ use=xterm+alt47, use=putty+screen, use=xterm+sl-twm,
+ use=ecma+index, use=linux-m1,
putty-m1b|Putty Minitel 1B "like" Monochrome (Gris/Blanc/Noir),
- hs,
dim@, kf1=\E[11~, kf2=\E[12~, kf3=\E[13~, kf4=\E[14~,
- kf5=\E[15~, rmcup=\E[2J\E[?47l\E8, rmul=\E[24m,
- smcup=\E7\E[?47h, smul=\E[4m, .E3=\E[300S,
- use=putty+screen, use=xterm+sl-twm, use=ecma+index,
- use=linux-m1b,
+ kf5=\E[15~, rmul=\E[24m, smul=\E[4m, .E3=\E[300S,
+ use=xterm+alt47, use=putty+screen, use=xterm+sl-twm,
+ use=ecma+index, use=linux-m1b,
putty-m2|Putty Minitel 2 "like" Couleurs (Vert/Blanc/Noir),
- hs,
acsc=``aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{
{||}}~~,
dim@, kf1=\E[11~, kf2=\E[12~, kf3=\E[13~, kf4=\E[14~,
- kf5=\E[15~, rmcup=\E[2J\E[?47l\E8, rmul=\E[24m,
- smcup=\E7\E[?47h, smul=\E[4m, .E3=\E[300S,
- use=putty+screen, use=xterm+sl-twm, use=ecma+index,
- use=linux-m2,
+ kf5=\E[15~, rmul=\E[24m, smul=\E[4m, .E3=\E[300S,
+ use=xterm+alt47, use=putty+screen, use=xterm+sl-twm,
+ use=ecma+index, use=linux-m2,
-putty+screen|PuTTY with screen resizing extensions,
+putty+screen|PuTTY with screen resizing extensions (building-block),
.WS=\E[8;%p1%d;%p2%dt, Z0=\E[?3h, Z1=\E[?3l,
putty-screen|PuTTY with screen resizing extensions,
@@ -21274,7 +21633,7 @@ screen.putty-m2|Putty m2 specific for screen,
# He comments:
# viewdata lacks a true cup capability,
# so I achieved it with home and cud1/cuf1 sequences only !
-viewdata|prestel/viewdata terminals,
+viewdata|Prestel/Viewdata terminals,
am, bw, eslok, hz,
cols#40, lines#24,
bel=^G, civis=^T, clear=^L, cnorm=^Q, cr=\r, cub1=^H, cud1=\n,
@@ -21290,7 +21649,7 @@ viewdata|prestel/viewdata terminals,
cuu1=^K, home=^^, nel=\r\n, rs2=^L, .el=^X, .ind=\n,
.rep=%p1%c\022%p2%'?'%+%c, .ri=^K,
-viewdata-o|optimized version of viewdata prestel/viewdata terminals,
+viewdata-o|optimized version of Viewdata Prestel/Viewdata terminals,
cup=\036%p1%?%p2%{20}%>%t%?%p1%{23}%=%t%Pa%{1}%e%{1}%+%;%;
%Pa%?%ga%{13}%<%t%?%ga%{07}%>%t\n\n\n\n\n\n\n\n%;%?%ga
%{4}%&%t\n\n\n\n%;%?%ga%{2}%&%t\n\n%;%?%ga%{1}%&%t\n%;%e
@@ -21308,7 +21667,7 @@ viewdata-o|optimized version of viewdata prestel/viewdata terminals,
# Samples with TERM=viewdata and TERM=viewdata-rv: http://canal.chez.com/blog/
-viewdata-rv|prestel/viewdata terminals with reverse capabilitie (as green),
+viewdata-rv|Prestel/Viewdata terminals with reverse capabilitie (as green),
xmc#1,
rmso=\EG, smso=\EB, use=viewdata-o,
@@ -21360,8 +21719,8 @@ blit|jerq|blit running teletype rom,
cup=\EY%p2%{32}%+%c%p1%{32}%+%c, cuu1=\EA,
dch=\Ee%p1%{32}%+%c, dch1=\Ee!, dl=\EE%p1%{32}%+%c,
dl1=\EE!, el=\EK, ht=^I, ich=\Ef%p1%{32}%+%c, ich1=\Ef!,
- il=\EF%p1%{32}%+%c, il1=\EF!, ind=\n, kbs=^H, kcub1=\ED,
- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kf1=\Ex, kf2=\Ey, kf3=\Ez,
+ il=\EF%p1%{32}%+%c, il1=\EF!, ind=\n, kbs=^H, kf1=\Ex,
+ kf2=\Ey, kf3=\Ez, use=vt52+arrows,
# (cbblit: here's a BSD termcap that says <cud1=\EG> -- esr)
cbblit|fixterm|blit running columbus code,
@@ -21389,7 +21748,7 @@ oblit|ojerq|first version of blit rom,
# The bitgraph was a large white box that contained a monochrome bitmap
# display, and a 68000 to run it. You could download code and run it on
# the cpu, it had 128kb (I think) of memory. I used one in the late
-# 70's, sure beat a vt100. It had one strange feature tho -- it used
+# 70's, sure beat a VT100. It had one strange feature tho -- it used
# the cpu to bitblt pixels to scroll, it took longer than the refresh
# rate, and looked like a rubber sheet stretching, then snapping
# upwards. It had everything the early mac had, except a floppy drive a
@@ -21409,41 +21768,39 @@ oblit|ojerq|first version of blit rom,
# paints lines in on the bottom line of the screen, so you get
# this big white gap.
-bitgraph|bg2.0nv|bg3.10nv|bbn bitgraph 2.0 or later (normal video),
+bitgraph|bg2.0nv|bg3.10nv|BBN BitGraph 2.0 or later (normal video),
flash=\E[?5h$<200/>\E[?5l, is2=\E>\E[?5l\E[?7h,
use=bg2.0,
-bg2.0rv|bg3.10rv|bbn bitgraph 2.0 (reverse video),
+bg2.0rv|bg3.10rv|BBn BitGraph 2.0 (reverse video),
flash=\E[?5l$<200/>\E[?5h, is2=\E>\E[?5h\E[?7h,
use=bg2.0,
-bg2.0|bg3.10|bbn bitgraph 2.0 or later (no init),
+bg2.0|bg3.10|BBN BitGraph 2.0 or later (no init),
OTbs, xenl,
cols#85, lines#64,
- bel=^G, clear=\E[H\E[J$<150>, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\E[B, cuf1=\E[C,
- cup=%i\E[%p1%d;%p2%dH, cuu1=\E[A, dl1=\E[M$<2*>,
- ed=\E[J$<150>, el=\E[K$<2>, ht=^I, il1=\E[L$<2*>,
- ind=\n$<280>, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, lf1=PF1,
- lf2=PF2, lf3=PF3, lf4=PF4, rc=\E8, rmkx=\E>, rmso=\E[m, sc=\E7,
- sgr0=\E[m, smkx=\E=, smso=\E[7m,
-
-bg1.25rv|bbn bitgraph 1.25 (reverse video),
+ bel=^G, clear=\E[H\E[J$<150>, cr=\r, cub1=^H,
+ cup=%i\E[%p1%d;%p2%dH, dl1=\E[M$<2*>, ed=\E[J$<150>,
+ el=\E[K$<2>, ht=^I, il1=\E[L$<2*>, ind=\n$<280>,
+ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP,
+ kf2=\EOQ, kf3=\EOR, kf4=\EOS, lf1=PF1, lf2=PF2, lf3=PF3,
+ lf4=PF4, rmkx=\E>, rmso=\E[m, sgr0=\E[m, smkx=\E=,
+ smso=\E[7m, use=ansi+csr, use=ansi+local1,
+
+bg1.25rv|BBN BitGraph 1.25 (reverse video),
flash=\E[?5l$<200/>\E[?5h, is2=\E>\E[?5h\E[?7h,
use=bg1.25,
-bg1.25nv|bbn bitgraph 1.25 (normal video),
+bg1.25nv|BBN BitGraph 1.25 (normal video),
flash=\E[?5h$<200/>\E[?5l, is2=\E>\E[?5l\E[?7h,
use=bg1.25,
# (bg1.25: I added <rmam>/<smam> based on the init string -- esr)
-bg1.25|bbn bitgraph 1.25,
+bg1.25|BBN BitGraph 1.25,
cols#85, lines#64,
- bel=^G, clear=\E[H\E[J$<150>, cr=\r, cub1=^H, cud1=\E[B,
- cuf1=\E[C, cup=%i\E[%p1%d;%p2%dH, cuu1=\E[A,
- dl1=\E[M$<2*>, ed=\E[J$<150>, el=\E[K$<2>, ht=^I,
- il1=\E[L$<2*>, ind=\n$<280>, kcub1=\ED, kcud1=\EB,
- kcuf1=\EC, kcuu1=\EA, kf1=\EP, kf2=\EQ, kf3=\ER, kf4=\ES,
- lf1=PF1, lf2=PF2, lf3=PF3, lf4=PF4, ll=\E[64;1H, rmam=\E[?7l,
- rmkx=\E>, rmso=\E[m, sgr0=\E[m, smam=\E[?7h, smkx=\E=,
- smso=\E[7m,
+ bel=^G, clear=\E[H\E[J$<150>, cr=\r, cub1=^H,
+ cup=%i\E[%p1%d;%p2%dH, dl1=\E[M$<2*>, ed=\E[J$<150>,
+ el=\E[K$<2>, ht=^I, il1=\E[L$<2*>, ind=\n$<280>, kf1=\EP,
+ kf2=\EQ, kf3=\ER, kf4=\ES, lf1=PF1, lf2=PF2, lf3=PF3, lf4=PF4,
+ ll=\E[64;1H, rmam=\E[?7l, rmkx=\E>, rmso=\E[m, sgr0=\E[m,
+ smam=\E[?7h, smkx=\E=, smso=\E[7m, use=ansi+local1,
+ use=vt52+arrows,
#### Bull (bq, dku, vip)
#
@@ -21514,45 +21871,44 @@ bg1.25|bbn bitgraph 1.25,
# dku7102, tws2102, and tws models 2105 to 2112
tws-generic|dku7102|Bull Questar tws terminals,
am, eslok, hs, mir, msgr, xenl, xhp@, xon,
- cols#80, it#8, lines#24, wsl#80,
+ cols#80, lines#24, wsl#80,
acsc=``aaffggj)k\,l&m#n/ooppq*rrsst'u-v+w.x%yyzz{{||}}~~,
- bel=^G, blink=\E[0;5m, cbt=\E[Z, civis=\E[1r, clear=\E[2J,
- cnorm=\E[r, cr=\r, cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB,
- cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%df,
- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
- dim=\E[0;2m, dl=\E[%p1%dM, dl1=\E[M,
- dsl=\EPY99\:98\E\\\E[0;98v\E[2J\E[v, ed=\E[J, el=\E[K,
- fsl=\E[v, home=\E[H, ht=\E[I, hts=\EH, il=\E[%p1%dL,
- il1=\E[L, ind=\n, invis=\E[0;8m,
- is1=\E[?=h\Ec\E`\E[?>h\EPY99\:98\E\\,
+ bel=^G, blink=\E[0;5m, civis=\E[1r, clear=\E[2J,
+ cnorm=\E[r, cr=\r, cub1=^H, cud1=\n, cup=\E[%i%p1%d;%p2%df,
+ dch=\E[%p1%dP, dch1=\E[P, dim=\E[0;2m,
+ dsl=\EPY99:98\E\\\E[0;98v\E[2J\E[v, fsl=\E[v,
+ home=\E[H, ht=\E[I, ind=\n, invis=\E[0;8m,
+ is1=\E[?=h\Ec\E`\E[?>h\EPY99:98\E\\,
is2=\E[5;>;12;18;?<l\E[=h\EP1s\E\\\E[\027p,
- is3=\Eb\E[?<h, kbs=^H, kcbt=\E[Z, kctab=\E[g, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kdl1=\E[M,
- ked=\E[J, kel=\E[K, kf1=\E[1u\027, kf2=\E[2u\027,
- kf3=\E[3u\027, kf4=\E[4u\027, kf5=\E[5u\027,
- kf6=\E[6u\027, kf7=\E[7u\027, kf8=\E[8u\027, khome=\E[H,
- khts=\EH, kil1=\E[L, krmir=\E[4l, ll=\E[H\E[A, mc0=\E[0i,
- mc4=\r\E[4i, mc5=\E[5i, rev=\E[0;7m, rmacs=^O,
- rmcup=\E[0;98v\E[2J\E[v, rmir=\E[4l, rmso=\E[m,
- rmul=\E[m, rs2=\E[?=h\Ec, s0ds=^O, s1ds=^N,
+ is3=\Eb\E[?<h, kcbt=\E[Z, kctab=\E[g, kdch1=\E[P,
+ kdl1=\E[M, ked=\E[J, kel=\E[K, kf1=\E[1u\027,
+ kf2=\E[2u\027, kf3=\E[3u\027, kf4=\E[4u\027,
+ kf5=\E[5u\027, kf6=\E[6u\027, kf7=\E[7u\027,
+ kf8=\E[8u\027, khts=\EH, kil1=\E[L, krmir=\E[4l,
+ ll=\E[H\E[A, mc0=\E[0i, mc4=\r\E[4i, mc5=\E[5i,
+ rev=\E[0;7m, rmacs=^O, rmcup=\E[0;98v\E[2J\E[v,
+ rmir=\E[4l, rs2=\E[?=h\Ec, s0ds=^O, s1ds=^N,
sgr=\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p5%t;2%;%?
%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smcup=\E[?>h\EPY99\:98\E\\,
- smir=\E[4h, smso=\E[0;7m, smul=\E[0;4m, tbc=\E[3g,
- tsl=\EPY99\:98\E\\\E[0;98v\E[2;7m,
-tws2102-sna|dku7102-sna|BULL Questar tws2102 for SNA,
+ sgr0=\E[m\017, smacs=^N, smcup=\E[?>h\EPY99:98\E\\,
+ smir=\E[4h, smso=\E[0;7m, smul=\E[0;4m,
+ tsl=\EPY99:98\E\\\E[0;98v\E[2;7m, use=ansi+arrows,
+ use=ansi+erase, use=ansi+idl, use=ansi+inittabs,
+ use=ansi+local, use=ansi+sgrdim,
+
+tws2102-sna|dku7102-sna|Bull Questar tws2102 for SNA,
dsl=\E[0;98v\E[2J\E[v, fsl=\E[v, is3=\Eb, tsl=\E[0;98v,
use=tws-generic,
-tws2103|xdku|BULL Questar tws2103,
+tws2103|xdku|Bull Questar tws2103,
ht=^I, use=tws-generic,
-tws2103-sna|dku7103-sna|BULL Questar tws2103 for SNA,
+tws2103-sna|dku7103-sna|Bull Questar tws2103 for SNA,
ht=^I, use=tws2102-sna,
-dku7102-old|BULL Questar 200 DKU7102 (microcode version < 6),
+dku7102-old|Bull Questar 200 DKU7102 (microcode version < 6),
clear=\E[2J\E[H, cup@, dl@, dl1@,
- dsl=\EPY99\:98\E\\\E[0;98v\E[2J\E[H\E[v, el=\E[K\E[m,
- il@, il1@, tsl=\EPY99\:98\E\\\E[0;98v\E[H\E[2;7m,
+ dsl=\EPY99:98\E\\\E[0;98v\E[2J\E[H\E[v, el=\E[K\E[m,
+ il@, il1@, tsl=\EPY99:98\E\\\E[0;98v\E[H\E[2;7m,
use=tws-generic,
-dku7202|BULL Questar 200 DKU7202 (colour/character attributes),
+dku7202|Bull Questar 200 DKU7202 (colour/character attributes),
blink=\E[0;2;4m, dim=\E[0;5m, ht=^I, is3=\E[?3h\Eb,
sgr=\E[0%?%p1%t;2;4;5;7%;%?%p3%t;7%;%?%p2%t;2%;%?%p4%t;2;4%;
%?%p5%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
@@ -21565,13 +21921,13 @@ dku7202|BULL Questar 200 DKU7202 (colour/character attributes),
# Description written by J. Staerck (BULL SA)
# Copyright (c) 1989 BULL SA
#---------------------------------------------------------------------------
-# This entry is used for terminals with vt320 emulation mode
+# This entry is used for terminals with VT320 emulation mode
# and following set-up :
# 8 bit ISO Latin Character Set (ISO 8859-1),
# 7 bit Control Characters,
# 80 columns screen.
-# Hereafter are some DEC vt terminals' commands. (valid on vt200 and 300)
-# They are used in string capabilities with vt220-320 emulation mode.
+# Hereafter are some DEC vt terminals' commands. (valid on VT200 and 300)
+# They are used in string capabilities with VT220-320 emulation mode.
# In the following DEC definitions, two kinds of terminfo databases are
# provided :
# 1. the first with Command Sequence Introducer starting with escape
@@ -21624,68 +21980,62 @@ dku7202|BULL Questar 200 DKU7202 (colour/character attributes),
# RM DECNKM numeric keypad appl.: esc [ ? 6 6 l
# SM DECKBUM clavier informatique esc [ ? 6 8 h
# RM DECKBUM clavier bureautique: esc [ ? 6 8 l
-# DECSCL vt300 mode 8-bit ctrl: esc [ 6 3 " p
-# or DECSCL vt300 mode 8-bit ctrl: esc [ 6 3 ; 0 " p
-# or DECSCL vt300 mode 8-bit ctrl: esc [ 6 3 ; 2 " p
-# DECSCL vt300 mode 7-bit ctrl: esc [ 6 3 ; 1 " p
+# DECSCL VT300 mode 8-bit ctrl: esc [ 6 3 " p
+# or DECSCL VT300 mode 8-bit ctrl: esc [ 6 3 ; 0 " p
+# or DECSCL VT300 mode 8-bit ctrl: esc [ 6 3 ; 2 " p
+# DECSCL VT300 mode 7-bit ctrl: esc [ 6 3 ; 1 " p
# Char. and Line attributes: esc [ Ps ... Ps m
# with: 0 All off, 1 Bold, 4 Underline, 5 Blinking, 7 Reverse
# and : 22 Bold off, 24 Underline off, 25 Blinking off, 27 Reverse off
#
# This entry covers BQ303, BQ306, BQ310, Q303, Q306, Q310
-bq300|Bull vt320 ISO Latin 1 80 columns terminal,
- am, eo, eslok, hs, km, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24, vt#3, wsl#80,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- dsl=\E[1$}\E[2$~\n\E[0$}, ech=\E[%p1%dX, ed=\E[J,
- el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
- flash=\E[?5h$<50>\E[?5l, fsl=\E[0$}, home=\E[H, ht=^I,
- hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED,
- is1=\E[63;1"p\E[2h,
+bq300|Bull VT320 ISO Latin 1 80 columns terminal,
+ eo, km, mir, xenl, xon,
+ vt#3, wsl#80,
+ blink=\E[5m, bold=\E[1m, cup=\E[%i%p1%d;%p2%dH,
+ dch=\E[%p1%dP, dch1=\E[P, dsl=\E[1$}\E[2$~\n\E[0$},
+ ech=\E[%p1%dX, el1=\E[1K, flash=\E[?5h$<50>\E[?5l,
+ ich=\E[%p1%d@, ind=\ED, is1=\E[63;1"p\E[2h,
is2=\E[?2h\E[?3l\E[?5l\E[?7h\E[?8h\E>\E[?1l\E\sF\E[?42l\E[?4
l,
is3=\E[0$}\E[?25h\E[2l\E[H\E[J, ka1=\EOw, ka3=\EOy,
- kb2=\EOu, kbs=^H, kc1=\EOq, kc3=\EOs, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, kf10=\E[21~, kf11=\E[23~,
- kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
- kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
- kf2=\EOQ, kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf6=\E[17~,
- kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, khlp=\E[28~,
- krdo=\E[29~, lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, nel=\EE,
- rc=\E8, rev=\E[7m, ri=\EM, rmacs=\E(B, rmam=\E[?7l,
+ kb2=\EOu, kc1=\EOq, kc3=\EOs, kf1=\EOP, kf10=\E[21~,
+ kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
+ kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
+ kf19=\E[33~, kf2=\EOQ, kf20=\E[34~, kf3=\EOR, kf4=\EOS,
+ kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+ khlp=\E[28~, krdo=\E[29~, lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4,
+ nel=\EE, rev=\E[7m, ri=\EM, rmacs=\E(B, rmam=\E[?7l,
rmcup=\E[?7h, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m,
rmul=\E[24m, rs1=\E[!p, rs2=\E[?3l, s0ds=\E(B, s1ds=\E(0,
- sc=\E7,
sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1
%;m%?%p9%t\E(0%e\E(B%;,
sgr0=\E[0m\E(B, smacs=\E(0, smam=\E[?7h,
smcup=\E[?7l\E[?1l\E(B, smir=\E[4h, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g, tsl=\E[1$}\E[2$~,
- use=vt220+vtedit, use=ansi+pp, use=vt220+cvis,
-bq300-rv|Bull vt320 reverse 80 columns,
+ smul=\E[4m, tsl=\E[1$}\E[2$~, use=ansi+enq, use=ansi+csr,
+ use=ansi+erase, use=ansi+idl, use=ansi+local,
+ use=ansi+pp, use=dec+sl, use=vt100+4bsd, use=vt220+cvis,
+ use=vt220+vtedit,
+
+bq300-rv|Bull VT320 reverse 80 columns,
flash=\E[?5l$<50>\E[?5h,
is2=\E[?2h\E[?3l\E[?5h\E[?7h\E[?8h\E>\E[?1l\E\sF\E[?42l\E[?4
l,
use=bq300,
-bq300-w|Bull vt320 132 columns,
+bq300-w|Bull VT320 132 columns,
cols#132, wsl#132,
is2=\E[?2h\E[?3h\E[?5l\E[?7h\E[?8h\E>\E[?1l\E\sF\E[?42l\E[?4
l,
rs2=\E[?3h, use=bq300,
-bq300-w-rv|Bull vt320 reverse mode 132 columns,
+bq300-w-rv|Bull VT320 reverse mode 132 columns,
cols#132, wsl#132,
flash=\E[?5l$<50>\E[?5h,
is2=\E[?2h\E[?3h\E[?5h\E[?7h\E[?8h\E>\E[?1l\E\sF\E[?42l\E[?4
l,
rs2=\E[?3h, use=bq300,
-# This entry is used for terminals with vt320 emulation mode
+# This entry is used for terminals with VT320 emulation mode
# and following set-up :
# 8 bit ISO Latin Character Set (ISO 8859-1),
# 8 bit Control Characters, (CSI coded as x9B for ESC [)
@@ -21732,36 +22082,34 @@ bq300-w-rv|Bull vt320 reverse mode 132 columns,
# RM DECTCEM Invisible cursor: csi ? 2 5 l
# SM DECNCRM 7 bits NCR set: csi ? 4 2 h
# RM DECNCRM Multi or ISO latin: csi ? 4 2 l
-# DECSCL vt300 mode 8-bit ctrl: csi 6 3 " p
-# or DECSCL vt300 mode 8-bit ctrl: csi 6 3 ; 0 " p
-# DECSCL vt300 mode 7-bit ctrl: csi 6 3 ; 1 " p
+# DECSCL VT300 mode 8-bit ctrl: csi 6 3 " p
+# or DECSCL VT300 mode 8-bit ctrl: csi 6 3 ; 0 " p
+# DECSCL VT300 mode 7-bit ctrl: csi 6 3 ; 1 " p
# Char. and Line attributes: csi Ps ... Ps m
# with: 0 All off, 1 Bold, 4 Underline, 5 Blinking, 7 Reverse
# and : 22 Bold off, 24 Underline off, 25 Blinking off, 27 Reverse off
# (bq300-8: <cub1>,<cuf1>,<cuu1>,<cud1>,<dl1>,<il1> to get under 1024 --esr)
-bq300-8|Bull vt320 full 8 bits 80 columns,
- am, eo, eslok, hs, km, mc5i, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24, vt#3, wsl#80,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\2335m, bold=\2331m, clear=\233H\233J, cr=\r,
+bq300-8|Bull VT320 full 8 bits 80 columns,
+ eo, eslok, hs, km, mc5i, mir, xenl, xon,
+ vt#3, wsl#80,
+ blink=\2335m, bold=\2331m, clear=\233H\233J,
csr=\233%i%p1%d;%p2%dr, cub=\233%p1%dD, cub1=\2331D,
cud=\233%p1%dB, cud1=\2331B, cuf=\233%p1%dC, cuf1=\2331C,
cup=\233%i%p1%d;%p2%dH, cuu=\233%p1%dA, cuu1=\2331A,
dch=\233%p1%dP, dch1=\233P, dl=\233%p1%dM, dl1=\233M,
dsl=\2331$}\2332$~\n\2330$}, ech=\233%p1%dX, ed=\233J,
- el=\233K, el1=\2331K, enacs=\E(B\E)0,
- flash=\233?5h$<50>\233?5l, fsl=\2330$}, home=\233H,
- ht=^I, hts=\EH, ich=\233%p1%d@, il=\233%p1%dL, il1=\233L,
- ind=\ED, is1=\E[63;2"p\E[2h,
+ el=\233K, el1=\2331K, flash=\233?5h$<50>\233?5l,
+ fsl=\2330$}, home=\233H, ich=\233%p1%d@, il=\233%p1%dL,
+ il1=\233L, ind=\ED, is1=\E[63;2"p\E[2h,
is2=\E[?2h\E[?3l\E[?5l\E[?7h\E[?8h\E>\E[?1l\E\sG\E[?42l\E[?4
l,
is3=\2330$}\233?25h\2332l\233H\233J, ka1=\217w,
- ka3=\217y, kb2=\217u, kbs=^H, kc1=\217q, kc3=\217s,
- kcub1=\233D, kcud1=\233B, kcuf1=\233C, kcuu1=\233A,
- kdch1=\2333~, kf1=\217P, kf10=\23321~, kf11=\23323~,
- kf12=\23324~, kf13=\23325~, kf14=\23326~, kf15=\23328~,
- kf16=\23329~, kf17=\23331~, kf18=\23332~, kf19=\23333~,
- kf2=\217Q, kf20=\23334~, kf3=\217R, kf4=\217S, kf6=\23317~,
+ ka3=\217y, kb2=\217u, kc1=\217q, kc3=\217s, kcub1=\233D,
+ kcud1=\233B, kcuf1=\233C, kcuu1=\233A, kdch1=\2333~,
+ kf1=\217P, kf10=\23321~, kf11=\23323~, kf12=\23324~,
+ kf13=\23325~, kf14=\23326~, kf15=\23328~, kf16=\23329~,
+ kf17=\23331~, kf18=\23332~, kf19=\23333~, kf2=\217Q,
+ kf20=\23334~, kf3=\217R, kf4=\217S, kf6=\23317~,
kf7=\23318~, kf8=\23319~, kf9=\23320~, kfnd=\2331~,
khlp=\23328~, kich1=\2332~, knp=\2336~, kpp=\2335~,
krdo=\23329~, kslt=\2334~, lf1=pf1, lf2=pf2, lf3=pf3,
@@ -21775,25 +22123,25 @@ bq300-8|Bull vt320 full 8 bits 80 columns,
sgr0=\2330m\E(B, smacs=\E(0, smam=\233?7h,
smcup=\233?7l\233?1l\E(B, smir=\2334h, smso=\2337m,
smul=\2334m, tbc=\2333g, tsl=\2331$}\2332$~,
- use=vt220+cvis8,
-bq300-8rv|Bull vt320 8-bit reverse mode 80 columns,
+ use=vt100+4bsd, use=vt220+cvis8,
+bq300-8rv|Bull VT320 8-bit reverse mode 80 columns,
flash=\233?5l$<50>\233?5h,
is2=\E[?2h\E[?3l\E[?5h\E[?7h\E[?8h\E>\E[?1l\E\sG\E[?42l\E[?4
l,
use=bq300-8,
-bq300-8w|Bull vt320 8-bit 132 columns,
+bq300-8w|Bull VT320 8-bit 132 columns,
cols#132, wsl#132,
is2=\E[?2h\E[?3h\E[?5l\E[?7h\E[?8h\E>\E[?1l\E\sG\E[?42l\E[?4
l,
rs2=\233?3h, use=bq300-8,
-bq300-w-8rv|Bull vt320 8-bit reverse mode 132 columns,
+bq300-w-8rv|Bull VT320 8-bit reverse mode 132 columns,
cols#132, wsl#132,
flash=\233?5l$<50>\233?5h,
is2=\E[?2h\E[?3h\E[?5h\E[?7h\E[?8h\E>\E[?1l\E\sG\E[?42l\E[?4
l,
rs2=\233?3h, use=bq300-8,
-# This entry is used for terminals with vt320 emulation mode
+# This entry is used for terminals with VT320 emulation mode
# a 102 keys keyboard (PC scancode !) and following set-up :
# 8 bit ISO Latin Character Set (ISO 8859-1),
# 7 bit Control Characters,
@@ -21824,13 +22172,12 @@ bq300-pc-w-rv|Questar 303 with PC keyboard reverse mode 132 columns,
# 8 bit Control Characters,
# 80 columns screen.
bq300-8-pc|Q306-8-pc|Questar 303 with PC keyboard in full 8 bits 80 columns,
- kbs=^H, kdch1=\2333~, kend=\2334~, kf1=\23317~,
- kf10=\23328~, kf11=\23329~, kf12=\23331~, kf13@, kf14@,
- kf15@, kf16@, kf17@, kf18@, kf19@, kf2=\23318~, kf20@,
- kf3=\23319~, kf4=\23320~, kf5=\23321~, kf6=\23323~,
- kf7=\23324~, kf8=\23325~, kf9=\23326~, kfnd@, khlp@,
- khome=\2331~, kich1=\2332~, knp=\2336~, kpp=\2335~, krdo@,
- kslt@, lf1@, lf2@, lf3@, lf4@, use=bq300-8,
+ kend=\2334~, kf1=\23317~, kf10=\23328~, kf11=\23329~,
+ kf12=\23331~, kf13@, kf14@, kf15@, kf16@, kf17@, kf18@, kf19@,
+ kf2=\23318~, kf20@, kf3=\23319~, kf4=\23320~, kf5=\23321~,
+ kf6=\23323~, kf7=\23324~, kf8=\23325~, kf9=\23326~, kfnd@,
+ khlp@, khome=\2331~, krdo@, kslt@, lf1@, lf2@, lf3@, lf4@,
+ use=bq300-8,
bq300-8-pc-rv|Questar 303 with PC keyboard full 8 bits reverse mode 80 columns,
flash=\E[?5l$<50>\E[?5h,
is2=\E[?2h\E[?3l\E[?5h\E[?7h\E[?8h\E>\E[?1l\E\sG\E[?42l\E[?4
@@ -21853,72 +22200,70 @@ bq300-8-pc-w-rv|Questar 303 with PC keyboard full 8 bits reverse 132 columns,
#======================================================#
# normal mode, 8 bits, 80 columns terminal.
-# RES reset : ^[e
-# RIS reset initial state: ^[c
-# BLE bell enable ^[h
-# BLD bell disable ^[g
-# CAMS char. attr. mode set ^[[D
-# CAMR char. attr. mode reset ^[[G
-# CLR clear ^[`
-# KBU keyboard unlock (set) ^[[W
-# KBL keyboard lock (reset) ^[[X
-# CM character mode (async.) ^[k
-# NEP non echoplex mode (by host) ^[l
-# EP echoplex mode (by host) ^[m
-# IM insert mode set ^[[I
-# IM insert mode reset ^[[J
-# RMS roll mode set ^[r
-# RMR roll mode reset ^[q
-# SM78 set mode vip7800 ^[[1q
-# SD scroll up (72 lines) ^[[0s
-# SD scroll down (72 lines) ^[[1s
-# RBM block mode reset ^[[E
-# SLS status line set ^[w
-# SLR status line reset ^[v
-# SLL status line lock ^[O
-# LGS Line-graphic mode set ^[G
-# LGR Line-graphic mode reset ^[F
-# TBC tab clear (at cursor pos.) ^[[g
-# TBI tab initialize ^[[N
-# TBS tab set (at cursor pos.) ^[p
-# PDS print data space ^[[0p
-# PHD print host data ^[[3p
-# PDT print data terminator ^[[<p
-# PRES print adapter reset ^[[2p
-# SSPR multi-part. reset ^[[<>u
-# SSP0 partition 0 set ^[[00u
-# SSP1 partition n format 1 ^[[PnPnSTRINGu
-# SSP2 partition n format 2 ^[[PnPnSTRINGu
-# SSP3 partition n format 3 ^[[PnPnu
+# BLD bell disable ^[g
+# BLE bell enable ^[h
+# CAMR char. attr. mode reset ^[[G
+# CAMS char. attr. mode set ^[[D
+# CLR clear ^[`
+# CM character mode (async.) ^[k
+# EP echoplex mode (by host) ^[m
+# IM insert mode set ^[[I
+# IMR insert mode reset ^[[J
+# KBL keyboard lock (reset) ^[[X
+# KBU keyboard unlock (set) ^[[W
+# LGR Line-graphic mode reset ^[F
+# LGS Line-graphic mode set ^[G
+# NEP non echoplex mode (by host) ^[l
+# PDS print data space ^[[0p
+# PDT print data terminator ^[[<p
+# PHD print host data ^[[3p
+# PRES print adapter reset ^[[2p
+# RBM block mode reset ^[[E
+# RES reset : ^[e
+# RIS reset initial state: ^[c
+# RMR roll mode reset ^[q
+# RMS roll mode set ^[r
+# SCD scroll down (72 lines) ^[[1s
+# SCU scroll up (72 lines) ^[[0s
+# SLL status line lock ^[O
+# SLR status line reset ^[v
+# SLS status line set ^[w
+# SM78 set mode vip7800 ^[[1q
+# SSP0 partition 0 set ^[[00u
+# SSP1 partition n format 1 ^[[PnPnSTRINGu
+# SSP2 partition n format 2 ^[[PnPnSTRINGu
+# SSP3 partition n format 3 ^[[PnPnu
+# SSPR multi-part. reset ^[[<>u
+# TBC tab clear (at cursor pos.) ^[[g
+# TBI tab initialize ^[[N
+# TBS tab set (at cursor pos.) ^[p
+#
# ATR attribute (visual)
-# blink : ^[sB
-# dim : ^[sL
-# hide (blank) : ^[sH
-# restore : ^[sR
-# inverse video : ^[sI
-# prot. : ^[sP
-# underline : ^[s_
-# reset : ^{
+# blink : ^[sB
+# dim : ^[sL
+# hide (blank) : ^[sH
+# inverse video : ^[sI
+# protected : ^[sP
+# reset : ^[sR
+# underline : ^[s_
#
# This covers the vip7800 and BQ3155-vip7800
vip|Bull Questar 3155-7800,
am, eslok, hs, km, mc5i, msgr, xenl, xon,
- cols#80, it#8, lines#24, vt#3, wsl#80,
- acsc=0pjdkblamcnkqitgufvhwexj, bel=^G, blink=\EsB,
- cbt=\E[Z, clear=\E`, cr=\r, cub1=^H, cud1=\n, cuf1=\EC,
- cup=\E[%i%p1%03d%p2%03df, cuu1=\EA, dch1=\E[P, dim=\EsL,
- dl1=\E[M, dsl=\Ev, ed=\EJ, el=\EK,
- flash=\007$<80>\007$<80>\007, fsl=\EO, home=\EH, ht=^I,
- hts=\Ep, ich1=\E[I, ind=\n, invis=\EsH,
+ vt#3, wsl#80,
+ acsc=0pjdkblamcnkqitgufvhwexj, blink=\EsB, clear=\E`,
+ cub1=^H, cud1=\n, cup=\E[%i%p1%03d%p2%03df, dch1=\E[P,
+ dim=\EsL, dl1=\E[M, dsl=\Ev,
+ flash=\007$<80>\007$<80>\007, fsl=\EO, hts=\Ep,
+ ich1=\E[I, invis=\EsH,
is2=\E[00u\E[<>001001024080024080u\E[01u,
- is3=\Er\E[W\E`, kHOM=\EH, kLFT=\Eo, kRIT=\Eu, kbs=^H,
- kcbt=\E[Z, kclr=\E`, kctab=\E[g, kcub1=\ED, kcud1=\EB,
- kcuf1=\EC, kcuu1=\EA, kdch1=\E[P, kdl1=\E[M, ked=\EJ,
+ is3=\Er\E[W\E`, kHOM=\EH, kLFT=\Eo, kRIT=\Eu, kcbt=\E[Z,
+ kclr=\E`, kctab=\E[g, kdch1=\E[P, kdl1=\E[M, ked=\EJ,
kel=\EK, kf1=\E0, kf10=\ET, kf11=\E\\, kf12=\E\^, kf13@, kf14@,
kf15@, kf16@, kf17@, kf18@, kf19@, kf2=\E2, kf20@, kf21=\E1,
kf22=\E5, kf23=\E7, kf24=\E9, kf25=\E;, kf26=\E=, kf27=\E?,
kf28=\EQ, kf29=\ES, kf3=\E6, kf30=\EV, kf31=\E], kf32=\E_,
- kf4=\E8, kf5=\E\:, kf6=\E<, kf7=\E>, kf8=\EP, kf9=\ER,
+ kf4=\E8, kf5=\E:, kf6=\E<, kf7=\E>, kf8=\EP, kf9=\ER,
khome=\EH, khts=\Ep, kich1=\E[I, kil1=\E[L, kind=\E[0s,
kll=\EH\EA, kri=\E[1s, krmir=\E[J, ktbc=\E[N, lf1=pf1,
lf2=pf2, lf3=pf3, lf4=pf4, ll=\EH\EA, mc0=\E[0p, mc4=\E[<p,
@@ -21926,7 +22271,8 @@ vip|Bull Questar 3155-7800,
ri=\EA\EJ\EH\E[L$<10>, rmacs=\EF, rmir=\E[J, rmso=\EsR,
rmul=\EsR, rs1=\Ec, rs2=\E[G, s0ds=\EF, s1ds=\EG,
sgr0=\EsR\EsU\EF, smacs=\EG, smir=\E[I, smso=\EsI,
- smul=\Es_, tbc=\E[N, tsl=\Ew,
+ smul=\Es_, tbc=\E[N, tsl=\Ew, use=ansi+inittabs,
+ use=vt52-basic,
# normal screen, 8 bits, 132 columns terminal.
vip-w|vip7800-w|Q310-vip-w|Q310-vip-w-am|Questar 3155-vip7800 wide,
cols#132, wsl#132,
@@ -21965,7 +22311,7 @@ cg7900|chromatics|chromatics 7900,
#### Computer Automation
#
-ca22851|computer automation 22851,
+ca22851|Computer Automation 22851,
am,
cols#80, lines#24,
bel=^G, clear=\014$<8>, cr=\r, cub1=^U, cud1=\n, cuf1=^I,
@@ -21976,7 +22322,7 @@ ca22851|computer automation 22851,
#
# This entry has correct padding and the undocumented "ri" capability
-cyb83|xl83|cybernex xl-83,
+cyb83|xl83|Cybernex xl-83,
OTbs, am,
cols#80, lines#24,
bel=^G, clear=\014$<62>, cr=\r, cub1=^H, cud1=\n, cuf1=^I,
@@ -21984,7 +22330,7 @@ cyb83|xl83|cybernex xl-83,
ed=\020$<62>, el=\017$<3>, home=^K, ind=\n, kcub1=^H,
kcud1=\n, kcuf1=^I, kcuu1=^N, ri=^N,
# (mdl110: removed obsolete ":ma=^Z^P:" and overridden ":cd=145^NA^W:" -- esr)
-cyb110|mdl110|cybernex mdl-110,
+cyb110|mdl110|Cybernex mdl-110,
OTbs, am,
cols#80, lines#24,
bel=^G, clear=\030$<70>, cr=\r, cub1=^H, cud1=\n, cuf1=^U,
@@ -22002,7 +22348,7 @@ cyb110|mdl110|cybernex mdl-110,
# side of Datapoint still lives (1995) in the form of Intelogic Trace.
#
-dp3360|datapoint|datapoint 3360,
+dp3360|datapoint|Datapoint 3360,
OTbs, am,
cols#82, lines#25,
bel=^G, clear=^]^_, cr=\r, cub1=^H, cud1=\n, cuf1=^X, cuu1=^Z,
@@ -22035,7 +22381,7 @@ dp3360|datapoint|datapoint 3360,
# ctrl-O vertical line
# Unfortunately this cannot be fitted into the termcap/terminfo
# description scheme.
-dp8242|datapoint 8242,
+dp8242|Datapoint 8242,
msgr,
cols#80, lines#25,
bel=^G, civis=^Y, clear=^U\E^D^W^X, cnorm=^X, cr=\r, cub1=^H,
@@ -22051,7 +22397,7 @@ dp8242|datapoint 8242,
wind=\E\014\E\016%p1%'\0'%+%c%p2%'\0'%+%c%p3%'\0'%+%c%p4%'
\0'%+%c\025,
-#### DEC terminals (Obsolete types: DECwriter and vt40/42/50)
+#### DEC terminals (Obsolete types: DECwriter and VT40/42/50)
#
# These entries came from DEC's official terminfos for its older terminals
# (which happen to be identical to the AT&T/SCO terminal descriptions),
@@ -22063,9 +22409,9 @@ dp8242|datapoint 8242,
#
# DECScope of course had no "function keys", but this building block assigns
# the three blank keys at the top of the auxiliary (numeric) keypad, using
-# the same analogy as vt100 (also lacking function-keys).
+# the same analogy as VT100 (also lacking function-keys).
#
-# These assignments use the same layout for 0-9 as vt100+keypad; the vt52
+# These assignments use the same layout for 0-9 as VT100+keypad; the VT52
# keypad had its cursor-keys on the right-column as shown -TD
# _______________________________________
# | PF1 | PF2 | PF3 | c-up |
@@ -22089,71 +22435,67 @@ vt52+keypad|DECScope auxiliary keypad,
kf1=\EP, kf2=\EQ, kf3=\ER, kf5=\E?t, kf6=\E?u, kf7=\E?v,
kf8=\E?w, kf9=\E?x,
-gt40|dec gt40,
+gt40|DEC gt40,
OTbs, os,
cols#72, lines#30,
bel=^G, cr=\r, cub1=^H, cud1=\n,
-gt42|dec gt42,
+gt42|DEC gt42,
OTbs, os,
cols#72, lines#40,
bel=^G, cr=\r, cub1=^H, cud1=\n,
-vt50|dec vt50,
+vt50|DEC VT50,
OTbs,
cols#80, lines#12,
bel=^G, clear=\EH\EJ, cr=\r, cub1=^H, cud1=\n, cuf1=\EC,
cuu1=\EA, ed=\EJ, el=\EK, ht=^I, ind=\n, u8=\E/A, u9=\EZ,
-vt50h|dec vt50h,
+vt50h|DEC VT50h,
cub1=\ED, cud1=\EB, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
- kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, u8=\E/[HJ],
- use=vt52+keypad, use=vt50,
+ u8=\E/[HJ], use=vt52+keypad, use=vt50, use=vt52+arrows,
# (vt61: there's a BSD termcap that claims <dl1=\EPd>, <il1=\EPf.> <kbs=^H>)
-vt61|vt-61|vt61.5|dec vt61,
+vt61|vt-61|vt61.5|DEC VT61,
cols#80, lines#24,
bel=^G, clear=\EH\EJ$<120>, cr=\r$<20>, cub1=^H, cud1=\n,
cuf1=\EC$<20>, cup=\EY%p1%{32}%+%c%p2%{32}%+%c$<20>,
cuu1=\EA$<20>, ed=\EJ$<120>, el=\EK$<70>, ht=^I,
- ind=\n$<20>, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
- ri=\E$<20>I,
+ ind=\n$<20>, ri=\E$<20>I, use=vt52+arrows,
# The gigi does standout with red!
# (gigi: I added <rmam>/<smam> based on the init string, corrected cub1 -- esr)
-gigi|vk100|dec gigi graphics terminal,
+gigi|vk100|DEC gigi graphics terminal,
OTbs, am, xenl,
cols#84, lines#24,
- bel=^G, clear=\E[H\E[2J, cr=\r, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, ed=\E[J,
- el=\E[K, ht=^I, ind=\n,
+ bel=^G, clear=\E[H\E[2J, cr=\r, cub1=^H, cud1=\n,
+ cup=\E[%i%p1%d;%p2%dH, ed=\E[J, el=\E[K, ht=^I, ind=\n,
is2=\E>\E[?3l\E[?4l\E[?5l\E[?20l\E[?7h\E[?8h,
kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP,
kf2=\EOQ, kf3=\EOR, kf4=\EOS, khome=\E[H, ri=\EM,
rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
sgr0=\E[m, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7;31m,
- smul=\E[4m,
+ smul=\E[4m, use=ansi+local,
# DEC PRO-350 console (VT220-style). The 350 was DEC's attempt to produce
# a PC differentiated from the IBM clones. It was a total, ludicrous,
# grossly-overpriced failure (among other things, DEC's OS didn't include
# a format program, so you had to buy pre-formatted floppies from DEC at
# a hefty premium!).
-pro350|decpro|dec pro console,
+pro350|decpro|DEC pro console,
OTbs,
cols#80, it#8, lines#24,
acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
clear=\EH\EJ, cub1=^H, cud1=\EB, cuf1=\EC,
cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
- el=\EK, home=\EH, ht=^I, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
- kcuu1=\EA, kf0=\EE, kf1=\EF, kf2=\EG, kf3=\EH, kf4=\EI,
- kf5=\EJ, kf6=\Ei, kf7=\Ej, khome=\EH, ri=\EI, rmacs=\EG,
- rmso=\E^N, rmul=\E^C, smacs=\EF, smso=\E^H, smul=\E^D,
+ el=\EK, home=\EH, ht=^I, kf0=\EE, kf1=\EF, kf2=\EG, kf3=\EH,
+ kf4=\EI, kf5=\EJ, kf6=\Ei, kf7=\Ej, khome=\EH, ri=\EI,
+ rmacs=\EG, rmso=\E^N, rmul=\E^C, smacs=\EF, smso=\E^H,
+ smul=\E^D, use=vt52+arrows,
-dw1|decwriter I,
+dw1|DECwriter I,
OTbs, hc, os,
cols#72,
bel=^G, cr=\r, cub1=^H, cud1=\n, ind=\n,
-dw2|decwriter|dw|decwriter II,
+dw2|decwriter|dw|DECwriter II,
OTbs, hc, os,
cols#132,
bel=^G, cr=\r, cub1=^H, cud1=\n, ind=\n, kbs=^H,
@@ -22173,7 +22515,7 @@ dw2|decwriter|dw|decwriter II,
#
# The dw3 does standout with wide characters.
#
-dw3|la120|decwriter III,
+dw3|la120|DECwriter III,
OTbs, hc, os,
cols#132,
bel=^G, cr=\r, cub1=^H, cud1=\n, ht=^I, ind=\n,
@@ -22181,23 +22523,22 @@ dw3|la120|decwriter III,
is2=\E[9;17;25;33;41;49;57;65;73;81;89;97;105;113;121;129u
\r,
kbs=^H, rmso=\E[w, sgr0=\E[w, smso=\E[6w,
-dw4|decwriter IV,
+dw4|DECwriter IV,
OTbs, am, hc, os,
cols#132,
bel=^G, cr=\r, cub1=^H, cud1=\n, ht=^I, ind=\n, is2=\Ec, kbs=^H,
kf0=\EOP, kf1=\EOQ, kf2=\EOR, kf3=\EOS,
# These aren't official
-ln03|dec ln03 laser printer,
+ln03|DEC ln03 laser printer,
hc,
cols#80, lines#66,
bel=^G, cr=\r, cud1=\n, hd=\EK, ht=^I, hu=\EL, ind=\n, nel=\r\n,
rmso=\E[22m, rmul=\E[24m, sgr0=\E[m, smso=\E[1m,
smul=\E[4m,
-ln03-w|dec ln03 laser printer 132 cols,
+ln03-w|DEC ln03 laser printer 132 cols,
cols#132,
- bel=^G, cr=\r, cud1=\n, ht=^I, ind=\n, kbs=^H, kcub1=^H,
- kcud1=\n, nel=\r\n, use=ln03,
+ kbs=^H, kcub1=^H, kcud1=\n, use=ln03,
#### Delta Data (dd)
#
@@ -22218,21 +22559,21 @@ delta|dd5000|delta data 5000,
#
# (ddr: I added <rmam>/<smam> based on the init string -- esr)
-ddr|rebus3180|ddr3180|Rebus/DDR 3180 vt100 emulator,
+ddr|rebus3180|ddr3180|Rebus/DDR 3180 VT100 emulator,
OTbs, am, xenl,
cols#80, it#8, lines#24, vt#3,
blink=\E[5m$<2/>, bold=\E[1m$<2/>,
- clear=\E[H\E[2J$<50/>, csr=\E[%i%p1%d;%p2%dr, cub1=^H,
- cud1=\n, cuf1=\E[C$<2/>, cup=\E[%i%p1%d;%p2%dH$<5/>,
- cuu1=\E[A$<2/>, ed=\E[J$<50/>, el=\E[K$<3/>, home=\E[H,
- ht=^I, ind=\ED$<5/>, is2=\E[1;24r\E[24;1H, kbs=^H,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP,
- kf2=\EOQ, kf3=\EOR, kf4=\EOS, rc=\E8, rev=\E[7m$<2/>,
+ clear=\E[H\E[2J$<50/>, cub1=^H, cud1=\n, cuf1=\E[C$<2/>,
+ cup=\E[%i%p1%d;%p2%dH$<5/>, cuu1=\E[A$<2/>,
+ ed=\E[J$<50/>, el=\E[K$<3/>, home=\E[H, ht=^I,
+ ind=\ED$<5/>, is2=\E[1;24r\E[24;1H, kbs=^H, kcub1=\E[D,
+ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, kf2=\EOQ,
+ kf3=\EOR, kf4=\EOS, rev=\E[7m$<2/>,
rf=/usr/share/tabset/vt100, ri=\EM$<5/>, rmam=\E[7l,
rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m$<2/>,
- rs1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
+ rs1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
sgr0=\E[m$<2/>, smam=\E[7l, smkx=\E[?1h\E=, smso=\E[7m,
- smul=\E[4m$<2/>,
+ smul=\E[4m$<2/>, use=ansi+csr,
#### Evans & Sutherland
#
@@ -22299,7 +22640,7 @@ terminet1200|terminet300|tn1200|tn300|terminet|GE terminet 1200,
# S402 0 0 0 0 0 0 0 0
# (h19: I added <rmam>/<smam> based on the init string;
# also added empty <acsc> to suppress a tic warning -- esr)
-h19-a|h19a|heath-ansi|heathkit-a|heathkit h19 ansi mode,
+h19-a|h19a|heath-ansi|heathkit-a|Heathkit h19 ANSI mode,
OTbs, am, mir, msgr,
cols#80, it#8, lines#24,
acsc=, bel=^G, clear=\E[2J, cnorm=\E[>4l, cr=\r, cub1=^H,
@@ -22312,9 +22653,9 @@ h19-a|h19a|heath-ansi|heathkit-a|heathkit h19 ansi mode,
kf7=\EOQ, kf8=\EOR, khome=\E[H, lf6=blue, lf7=red, lf8=white,
ri=\EM, rmacs=\E[11m, rmam=\E[?7l, rmir=\E[4l, rmso=\E[m,
smacs=\E[10m, smam=\E[?7h, smir=\E[4h, smso=\E[7m,
-h19-bs|heathkit w/keypad shifted,
+h19-bs|Heathkit w/keypad shifted,
rmkx=\Eu, smkx=\Et, use=h19-b,
-h19-us|h19us|h19-smul|heathkit w/keypad shifted/underscore cursor,
+h19-us|h19us|h19-smul|Heathkit w/keypad shifted/underscore cursor,
rmkx=\Eu, smkx=\Et, use=h19-u,
# (h19: merged in <ip> from BSDI hp19-e entry>;
# also added empty <acsc> to suppress a tic warning --esr)
@@ -22331,23 +22672,23 @@ h19-us|h19us|h19-smul|heathkit w/keypad shifted/underscore cursor,
# help (I have tried up to 20000). Removing <il1=\EL$> and <dl1=\EM$>
# makes Emacs a little slower, but it remains in the land of the living.
# Big win.
-h19|heath|h19-b|heathkit|heath-19|z19|zenith|heathkit h19,
+h19|heath|h19-b|heathkit|heath-19|z19|zenith|Heathkit h19,
OTbs, am, eslok, hs, mir, msgr,
cols#80, it#8, lines#24,
acsc=+h.kaiggjdkclfmenbozqas{tvutvuwsx`~\^, bel=^G,
clear=\EE, cnorm=\Ey4, cr=\r, cub1=^H, cud1=\EB, cuf1=\EC,
cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, cvvis=\Ex4,
dch1=\EN, ed=\EJ, el=\EK, fsl=\Ek\Ey5, home=\EH, ht=^I, ind=\n,
- ip=$<1.5/>, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
- kcuu1=\EA, kf1=\ES, kf2=\ET, kf3=\EU, kf4=\EV, kf5=\EW,
- kf6=\EP, kf7=\EQ, kf8=\ER, khome=\EH, lf6=blue, lf7=red,
- lf8=white, ri=\EI, rmacs=\EG, rmir=\EO, rmso=\Eq, smacs=\EF,
- smir=\E@, smso=\Ep, tsl=\Ej\Ex5\EY8%p1%{32}%+%c\Eo\Eo,
-h19-u|heathkit with underscore cursor,
+ ip=$<1.5/>, kbs=^H, kf1=\ES, kf2=\ET, kf3=\EU, kf4=\EV,
+ kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER, khome=\EH, lf6=blue,
+ lf7=red, lf8=white, ri=\EI, rmacs=\EG, rmir=\EO, rmso=\Eq,
+ smacs=\EF, smir=\E@, smso=\Ep,
+ tsl=\Ej\Ex5\EY8%p1%{32}%+%c\Eo\Eo, use=vt52+arrows,
+h19-u|Heathkit with underscore cursor,
cnorm@, cvvis@, use=h19-b,
-h19-g|h19g|heathkit w/block cursor,
+h19-g|h19g|Heathkit w/block cursor,
cnorm=\Ex4, cvvis@, use=h19-b,
-alto-h19|altoh19|altoheath|alto-heath|alto emulating heathkit h19,
+alto-h19|altoh19|altoheath|alto-heath|alto emulating Heathkit h19,
lines#60,
dl1=\EM, il1=\EL, use=h19,
@@ -22382,7 +22723,7 @@ alto-h19|altoh19|altoheath|alto-heath|alto emulating heathkit h19,
# line will be really slow", you say. Well there is a sort of a
# solution to that too. There is an insert character option on
# the Z29 that will insert one character. Unfortunately, it
-# involves putting the terminal into ansi mode, inserting the
+# involves putting the terminal into ANSI mode, inserting the
# character, and changing it back to H19 mode. All this takes 12
# characters. Pretty expensive to insert one character, but it
# works. Either Emacs doesn't try to use its inserting hack when
@@ -22391,7 +22732,7 @@ alto-h19|altoh19|altoheath|alto-heath|alto emulating heathkit h19,
# but I haven't checked it out).
# (z29: added empty <acsc> to suppress a tic warning, merged in
# status line capabilities from BRL entry --esr)
-z29|zenith29|z29b|zenith z29b,
+z29|zenith29|z29b|Zenith z29b,
OTbs, OTpt, am, eslok, hs, mir, msgr,
OTkn#10, cols#80, lines#24,
OTbc=\ED, acsc=, bel=^G, cbt=\E-, clear=\EE$<14>, cnorm=\Ey4,
@@ -22400,106 +22741,98 @@ z29|zenith29|z29b|zenith z29b,
cvvis=\Ex4, dch1=\EN$<0.1*>, dl1=\EM$<1/>, dsl=\Ey1,
ed=\EJ$<14>, el=\EK$<1>, fsl=\Ek\Ey5, home=\EH, ht=^I,
ich1=\E<\E[1@\E[?2h$<1>, il1=\EL$<1/>, ind=\n$<2>,
- is2=\E<\E[?2h\Ev, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
- kcuu1=\EA, kf0=\E~, kf1=\ES, kf2=\ET, kf3=\EU, kf4=\EV,
- kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER, kf9=\E0I, khome=\EH,
- lf0=home, ri=\EI$<2/>, rmacs=\EF, rmir=\EO, rmso=\Eq,
- rmul=\Es0, smacs=\EG, smir=\E@, smso=\Ep, smul=\Es8,
- tsl=\Ej\Ex5\Ex1\EY8%+ \Eo,
-# z29 in ansi mode. Assumes that the cursor is in the correct state, and that
+ is2=\E<\E[?2h\Ev, kbs=^H, kf0=\E~, kf1=\ES, kf2=\ET, kf3=\EU,
+ kf4=\EV, kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER, kf9=\E0I,
+ khome=\EH, lf0=home, ri=\EI$<2/>, rmacs=\EF, rmir=\EO,
+ rmso=\Eq, rmul=\Es0, smacs=\EG, smir=\E@, smso=\Ep,
+ smul=\Es8, tsl=\Ej\Ex5\Ex1\EY8%+ \Eo, use=vt52+arrows,
+# z29 in ANSI mode. Assumes that the cursor is in the correct state, and that
# the world is stable. <rs1> causes the terminal to be reset to the state
# indicated by the name. kc -> key click, nkc -> no key click, uc -> underscore
# cursor, bc -> block cursor.
# From: Mike Meyers
# (z29a: replaced nonexistent <if=/usr/share/tabset/zenith29> because <hts>
-# looks vt100-compatible -- esr)
-z29a|z29a-kc-bc|h29a-kc-bc|heath/zenith 29 in ansi mode,
+# looks VT100-compatible -- esr)
+z29a|z29a-kc-bc|h29a-kc-bc|Heath/Zenith 29 in ANSI mode,
OTbs, OTpt, am, eslok, hs, mir, msgr,
OTkn#10, cols#80, it#8, lines#24,
OTbc=\ED, bel=^G, blink=\E[5m, bold=\E[2m, clear=\E[2J,
- cr=\r, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[1P, dim=\E[2m, dl=\E[%p1%dM,
- dl1=\E[M, dsl=\E[>1l, ed=\E[J, el=\E[K, fsl=\E[u\E[>5l,
+ cr=\r, csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\n,
+ cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\E[1P,
+ dim=\E[2m, dsl=\E[>1l, ed=\E[J, el=\E[K, fsl=\E[u\E[>5l,
home=\E[H, ht=^I, hts=\EH, if=/usr/share/tabset/vt100,
- il=\E[%p1%dL, il1=\E[L, ind=\ED, kbs=^H, kclr=\E[J,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, ked=\E[J,
- kf0=\E[~, kf1=\EOS, kf2=\EOT, kf3=\EOU, kf4=\EOV, kf5=\EOW,
- kf6=\EOP, kf7=\EOQ, kf8=\EOR, kf9=\EOX, khome=\E[H, lf0=help,
- mc0=\E#7, nel=\r\ED, rc=\E[r, rev=\E[7m, ri=\EM,
- rmcup=\E[?7h, rmso=\E[m, rmul=\E[m,
+ ind=\ED, kclr=\E[J, ked=\E[J, kf0=\E[~, kf1=\EOS, kf2=\EOT,
+ kf3=\EOU, kf4=\EOV, kf5=\EOW, kf6=\EOP, kf7=\EOQ, kf8=\EOR,
+ kf9=\EOX, khome=\E[H, lf0=help, mc0=\E#7, nel=\r\ED, rc=\E[r,
+ rev=\E[7m, ri=\EM, rmcup=\E[?7h, rmso=\E[m, rmul=\E[m,
rs1=\E<\E[1;24r\E[24;1H\E[?7h\E[>4h\E[>1;2;3;5;6;7;8;9l\E[m
\E[11m,
sc=\E[s, sgr0=\E[m, smcup=\E[?7l, smso=\E[7;2m, smul=\E[4m,
tbc=\E[3g, tsl=\E[s\E[>5;1h\E[25;%i%dH\E[1K,
-z29a-kc-uc|h29a-kc-uc|z29 ansi mode with keyclick and underscore cursor,
+ use=ansi+apparrows, use=ansi+idl, use=ansi+local,
+
+z29a-kc-uc|h29a-kc-uc|Zenith z29 ANSI mode with keyclick and underscore cursor,
rs1=\E<\E[1;24r\E[24;1H\E[?7h\E[>1;2;3;4;5;6;7;8;9l\E[m\E[11
m,
use=z29a,
-z29a-nkc-bc|h29a-nkc-bc|z29 ansi mode with block cursor and no keyclick,
+z29a-nkc-bc|h29a-nkc-bc|Zenith z29 ANSI mode with block cursor and no keyclick,
rs1=\E<\E[1;24r\E[24;1H\E[?7h\E[>2;4h\E[>1;3;5;6;7;8;9l\E[m
\E[11m,
use=z29a,
-z29a-nkc-uc|h29a-nkc-uc|z29 ansi mode with underscore cursor and no keyclick,
+z29a-nkc-uc|h29a-nkc-uc|Zenith z29 ANSI mode with underscore cursor and no keyclick,
rs1=\E<\E[1;24r\E[24;1H\E[?7h\E[>2h\E[>1;3;4;5;6;7;8;9l\E[m
\E[11m,
use=z29a,
# From: Jeff Bartig <jeffb@dont.doit.wisc.edu> 31 Mar 1995
z39-a|z39a|zenith39-a|zenith39-ansi|Zenith 39 in ANSI mode,
- am, eslok, hs, mc5i, mir, msgr, xon,
+ am, eslok, hs, mir, msgr, xon,
cols#80, lines#24,
acsc=0a``aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G,
blink=\E[5m, bold=\E[1m, cbt=\E[1Z, civis=\E[>5h,
clear=\E[2J\E[H, cnorm=\E[>5l, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+ csr=\E[%i%p1%d;%p2%dr, cub1=^H, cup=\E[%i%p1%d;%p2%dH,
dch=\E[%p1%dP, dch1=\E[1P, dim=\E[2m, dl=\E[%p1%dM,
dl1=\E[1M, dsl=\E[>1l, ed=\E[0J, el=\E[0K, el1=\E[1K,
- fsl=\E[u, home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[1L,
- ind=\n, is2=\E<\E[>1;3;5;6;7l\E[0m\E[2J, ka1=\EOw,
- ka3=\EOu, kb2=\EOy, kbs=^H, kc1=\EOq, kc3=\EOs, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, ked=\E[J, kf1=\EOS,
- kf2=\EOT, kf3=\EOU, kf4=\EOV, kf5=\EOW, kf6=\EOP, kf7=\EOQ,
- kf8=\EOR, kf9=\EOX, khlp=\E[~, khome=\E[H, ll=\E[24;1H,
- mc0=\E[?19h\E[i, mc4=\E[4i, mc5=\E[5i, rc=\E[u, rev=\E[7m,
- rmacs=\E(B, rmir=\E[4l, rmkx=\E[>7l, rmso=\E[0m,
+ fsl=\E[u, home=\E[H, il=\E[%p1%dL, il1=\E[1L, ind=\n,
+ is2=\E<\E[>1;3;5;6;7l\E[0m\E[2J, ka1=\EOw, ka3=\EOu,
+ kb2=\EOy, kc1=\EOq, kc3=\EOs, ked=\E[J, kf1=\EOS, kf2=\EOT,
+ kf3=\EOU, kf4=\EOV, kf5=\EOW, kf6=\EOP, kf7=\EOQ, kf8=\EOR,
+ kf9=\EOX, khlp=\E[~, ll=\E[24;1H, mc0=\E[?19h\E[i, rc=\E[u,
+ rev=\E[7m, rmacs=\E(B, rmir=\E[4l, rmkx=\E[>7l, rmso=\E[0m,
rmul=\E[0m, rs2=\E<\Ec\0, sc=\E[s, sgr0=\E[0m, smacs=\E(0,
- smir=\E[4h, smkx=\E[>7h, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
- tsl=\E[s\E[>1h\E[25;%i%p1%dH,
+ smir=\E[4h, smkx=\E[>7h, smso=\E[7m, smul=\E[4m,
+ tsl=\E[s\E[>1h\E[25;%i%p1%dH, use=ansi+arrows,
+ use=ansi+local, use=ansi+pp, use=ansi+tabs,
# From: Brad Brahms <Brahms@USC-ECLC>
-z100|h100|z110|z-100|h-100|heath/zenith z-100 pc with color monitor,
+z100|h100|z110|z-100|h-100|Heath/Zenith z-100 pc with color monitor,
cnorm=\Ey4\Em70, cvvis=\Ex4\Em71, use=z100bw,
# (z100bw: removed obsolete ":kn#10:", added empty <acsc> -- esr)
-z100bw|h100bw|z110bw|z-100bw|h-100bw|heath/zenith z-100 pc,
+z100bw|h100bw|z110bw|z-100bw|h-100bw|Heath/Zenith z-100 pc,
OTbs, OTpt, mir, msgr,
OTkn#10, cols#80, it#8, lines#24,
acsc=+h.kaiggjdkclfmenbozqas{tvutvuwsx`~\^,
clear=\EE$<5*/>, cnorm=\Ey4, cub1=^H, cud1=\EB, cuf1=\EC,
cup=\EY%p1%{32}%+%c%p2%{32}%+%c$<1*/>, cuu1=\EA,
cvvis=\Ex4, dch1=\EN$<1*/>, dl1=\EM$<5*/>, ed=\EJ, el=\EK,
- home=\EH, ht=^I, il1=\EL$<5*/>, kbs=^H, kcub1=\ED, kcud1=\EB,
- kcuf1=\EC, kcuu1=\EA, kf0=\EJ, kf1=\ES, kf2=\ET, kf3=\EU,
- kf4=\EV, kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER, kf9=\EOI,
- khome=\EH, ri=\EI, rmacs=\EG, rmir=\EO, rmso=\Eq, smacs=\EF,
- smir=\E@, smso=\Ep,
+ home=\EH, ht=^I, il1=\EL$<5*/>, kbs=^H, kf0=\EJ, kf1=\ES,
+ kf2=\ET, kf3=\EU, kf4=\EV, kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER,
+ kf9=\EOI, khome=\EH, ri=\EI, rmacs=\EG, rmir=\EO, rmso=\Eq,
+ smacs=\EF, smir=\E@, smso=\Ep, use=vt52+arrows,
p19|h19-b with il1/dl1,
dl1=\EM$<2*/>, il1=\EL$<2*/>, use=h19-b,
# From: <ucscc!B.fiatlux@ucbvax.berkeley.edu>
# (ztx: removed duplicate :sr: -- esr)
-ztx|ztx11|zt-1|htx11|ztx-1-a|ztx-10 or 11,
+ztx|ztx11|zt-1|htx11|ztx-1-a|Heath/Zenith ztx-10 or 11,
OTbs, am, eslok, hs,
cols#80, it#8, lines#24,
clear=\EE, cub1=^H, cud1=\n, cuf1=\EC,
cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dl1=\EM,
dsl=\Ey1, ed=\EJ, el=\EK, fsl=\Ek\Ey5, home=\EH, ht=^I,
il1=\EL, is2=\Ej\EH\Eq\Ek\Ev\Ey1\Ey5\EG\Ey8\Ey9\Ey>,
- kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kf0=\ES,
- kf1=\EB, kf2=\EU, kf3=\EV, kf4=\EW, kf5=\EP, kf6=\EQ, kf7=\ER,
- ri=\EI, rmso=\Eq, rmul=\Eq, smso=\Es5, smul=\Es2,
- tsl=\Ej\Ex5\Ex1\EY8%+ \Eo,
+ kbs=^H, kf0=\ES, kf1=\EB, kf2=\EU, kf3=\EV, kf4=\EW, kf5=\EP,
+ kf6=\EQ, kf7=\ER, ri=\EI, rmso=\Eq, rmul=\Eq, smso=\Es5,
+ smul=\Es2, tsl=\Ej\Ex5\Ex1\EY8%+ \Eo, use=vt52+arrows,
#### IMS International (ims)
#
@@ -22512,12 +22845,12 @@ ztx|ztx11|zt-1|htx11|ztx-1-a|ztx-10 or 11,
ims950-b|bare ims950 no init string,
is2@, use=ims950,
# (ims950: removed obsolete ":ko@:" -- esr)
-ims950|ims televideo 950 emulation,
+ims950|IMS TeleVideo 950 emulation,
xenl@,
flash@, kbs@, kcub1@, kcud1@, kcuf1@, kcuu1@, kf0@, kf1@, kf2@, kf3@,
kf4@, kf5@, kf6@, kf7@, kf8@, kf9@, khome@, use=tvi950,
# (ims950-rv: removed obsolete ":ko@:" -- esr)
-ims950-rv|ims tvi950 rev video,
+ims950-rv|IMS tvi950 rev video,
xenl@,
flash@, kbs@, kcub1@, kcud1@, kcuf1@, kcuu1@, kf0@, kf1@, kf2@, kf3@,
kf4@, kf5@, kf6@, kf7@, kf8@, kf9@, khome@, use=tvi950-rv,
@@ -22539,7 +22872,7 @@ ims-ansi|ultima2|ultimaII|IMS Ultima II,
# then sank out of sight.
#
-superbrain|intertec superbrain,
+superbrain|Intertec Superbrain,
OTbs, am, bw,
cols#80, lines#24,
OTbc=^U, bel=^G, clear=\014$<5*>, cr=\r, cub1=^H, cud1=\n,
@@ -22555,10 +22888,10 @@ intertube|intertec|Intertec InterTube,
bel=^G, clear=^L, cr=\r, cub1=^H, cud1=\n, cuf1=^F,
cup=\EY%p1%{32}%+%c%p2%{32}%+%c$<50>, cuu1=^Z, home=^A,
ind=\n, rmso=\E0@, smso=\E0P,
-# The intertube 2 has the "full duplex" problem like the tek 4025: if you
+# The intertube 2 has the "full duplex" problem like the Tektronix 4025: if you
# are typing and a command comes in, the keystrokes you type get interspersed
# with the command and it messes up
-intertube2|intertec data systems intertube 2,
+intertube2|Intertec data systems InterTube 2,
OTbs,
cup=\016%p1%c\020%p2%{10}%/%{16}%*%p2%{10}%m%+%c,
el=\EK, hpa=\020%p1%{10}%/%{16}%*%p1%{10}%m%+%c,
@@ -22588,16 +22921,14 @@ graphos|graphos III,
am, mir,
cols#80, it#8, lines#24,
clear=\E[H\E[2J, cnorm=\Ez56;2;0;0z\Ez73z\Ez4;1;1z,
- cr=\r, cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\Ez4;2;1z\Ez56;2;80;24z, dch1=\E[P, dl=\E[%p1%dM,
- dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, il=\E[%p1%dL,
- il1=\E[L, ind=\ED, kbs=^H, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, kf2=\EOQ, kf3=\EOR,
- kf4=\EOS, khome=\E[H, nel=\r\ED, rc=\E8, ri=\EM, rmdc=\E[4l,
- rmir=\E[4l, rmso=\E[m, sc=\E7, sgr0=\E[m, smdc=\E[4h,
- smir=\E[4h, smso=\E[7m,
+ cr=\r, cub1=^H, cud=\E[%p1%dB, cup=\E[%i%p1%d;%p2%dH,
+ cvvis=\Ez4;2;1z\Ez56;2;80;24z, dch1=\E[P, ed=\E[J,
+ el=\E[K, home=\E[H, ht=^I, ind=\ED, kf1=\EOP, kf2=\EOQ,
+ kf3=\EOR, kf4=\EOS, nel=\r\ED, rc=\E8, ri=\EM, rmdc=\E[4l,
+ rmir=\E[4l, sc=\E7, sgr0=\E[m, smdc=\E[4h, smir=\E[4h,
+ use=ansi+arrows, use=ansi+idl, use=ansi+local,
+ use=ansi+sgrso,
+
graphos-30|graphos III with 30 lines,
lines#30,
cvvis=\Ez4;2;1z\Ez56;2;80;30z, use=graphos,
@@ -22625,9 +22956,8 @@ graphos-30|graphos III with 30 lines,
# graphics and DEC VT100/VT52 + ADM-3A emulation with a VT220-style keyboard.
#
-modgraph|mod24|modgraph terminal emulating vt100,
+modgraph|mod24|modgraph terminal emulating VT100,
xenl@,
- cols#80, lines#24,
cvvis=\E\^9;0s\E\^7;1s,
is2=\E\^9;0s\E\^7;1s\E[3g\E\^11;9s\E\^11;17s\E\^11;25s\E\^11
;33s\E\^11;41s\E\^11;49s\E\^11;57s\E\^11;65s\E\^11;73s
@@ -22662,15 +22992,15 @@ modgraph48|mod|Modgraph w/48 lines,
OTbs, OTpt, am, xenl,
cols#80, it#8, lines#48, vt#3,
OTnl=\n, bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[;H\E[2J,
- cr=\r, csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\n, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J, el=\E[K,
+ cr=\r, cub1=^H, cud1=\n, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+ cuu1=\E[A, ed=\E[J, el=\E[K,
flash=\E[?5h\E[0q\E[1;2q\E[?5l\E[0q\E[4;3q,
home=\E[H, ht=^I, is2=\E<\E[1;48r\E[0q\E[3;4q\E=\E[?1h,
kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, rc=\E8, rev=\E[7m,
- ri=\EM, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
- rs1=\E=\E[0q\E>, sc=\E7, sgr0=\E[m, smkx=\E[?1h\E=,
- smso=\E[7m, smul=\E[4m,
+ kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, rev=\E[7m, ri=\EM,
+ rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m, rs1=\E=\E[0q\E>,
+ sgr0=\E[m, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
+ use=ansi+csr,
#### Morrow Designs
#
@@ -22751,21 +23081,20 @@ rt6221|Ramtek 6221 80x24,
OTbs, OTpt, msgr, xon,
OTkn#4, cols#80, it#8, lines#24, vt#3,
acsc=, bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[>5l,
- clear=\E[1;1H\E[J, cnorm=\E[>5h\E[>9h, cr=\r,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^K, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EM,
+ clear=\E[1;1H\E[J, cnorm=\E[>5h\E[>9h, cr=\r, cub1=^H,
+ cud1=^K, cup=\E[%i%p1%d;%p2%dH, cuu1=\EM,
cvvis=\E[>7h\E[>9l, ed=\E[J, el=\E[K, home=\E[1;1H, ht=^I,
hts=\EH, ind=\n, is2=\E)0, kbs=^H, kcub1=\E[D, kcud1=\E[B,
kcuf1=\E[C, kcuu1=\E[A, kf0=\EOP, kf1=\EOQ, kf2=\EOR,
kf3=\EOS, lf0=PF1, lf1=PF2, lf2=PF3, lf3=PF4, ll=\E[24;1H,
- nel=\EE, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O, rmkx=\E>,
- rmso=\E[m, rmul=\E[m,
+ nel=\EE, rev=\E[7m, ri=\EM, rmacs=^O, rmkx=\E>, rmso=\E[m,
+ rmul=\E[m,
rs1=\E[1w\E[>37m\E[>39m\E[1v\E[20l\E[?3l\E[?6l\E[>5h\E[>6h
\E[>7h\E[>8l\E[>9h\E[>10l\E[1;24r\E[m\E[q\E(B\017\E)0\E#
5\E>,
- sc=\E7, sgr0=\E[m, smacs=^N, smkx=\E=, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g,
+ sgr0=\E[m, smacs=^N, smkx=\E=, smso=\E[7m, smul=\E[4m,
+ tbc=\E[3g, use=ansi+csr, use=ansi+local,
+
# [TO DO: Check out: short forms of ho/cl and ll; reset (\Ec)].
rt6221-w|Ramtek 6221 160x48,
cols#160, lines#48,
@@ -22775,7 +23104,7 @@ rt6221-w|Ramtek 6221 160x48,
#
# RCA VP3301 or VP3501
-rca|rca vp3301/vp3501,
+rca|RCA vp3301/vp3501,
OTbs,
cols#40, lines#24,
clear=^L, cuf1=^U, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
@@ -22800,21 +23129,20 @@ rca|rca vp3301/vp3501,
hirez100|Selanar HiREZ-100,
OTbs, OTpt, mir, msgr, xon,
OTkn#4, cols#80, it#8, lines#48, vt#3,
- acsc=, bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J,
- cr=\r, cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\n,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\EM, dch=\E[%p1%dP, dch1=\E[P,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
- hts=\EH, il=\E[%p1%dL, il1=\E[L, is2=\E<\E)0, kbs=^H,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf0=\EOP,
- kf1=\EOQ, kf2=\EOR, kf3=\EOS, lf0=PF1, lf1=PF2, lf2=PF3,
- lf3=PF4, ll=\E[48H, mc0=\E[i, mc4=\E[4i\E[?4i,
- mc5=\E[?5i\E[5i, nel=\EE, rc=\E8, rev=\E[7m, rmacs=^O,
- rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
+ acsc=, bel=^G, blink=\E[5m, bold=\E[1m, cr=\r, cub=\E[%p1%dD,
+ cub1=^H, cud1=\n, cup=\E[%i%p1%d;%p2%dH, cuu1=\EM,
+ dch=\E[%p1%dP, dch1=\E[P, home=\E[H, ht=^I, hts=\EH,
+ is2=\E<\E)0, kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
+ kcuu1=\EOA, kf0=\EOP, kf1=\EOQ, kf2=\EOR, kf3=\EOS, lf0=PF1,
+ lf1=PF2, lf2=PF3, lf3=PF4, ll=\E[48H, mc0=\E[i,
+ mc4=\E[4i\E[?4i, mc5=\E[?5i\E[5i, nel=\EE, rc=\E8,
+ rev=\E[7m, rmacs=^O, rmkx=\E[?1l\E>,
rs1=\030\E2\E<\E[4i\E[?4i\E[12h\E[2;4;20l\E[?0;7h\E[?1;3;6;1
9l\E[r\E[m\E(B\017\E)0\E>,
- sc=\E7, sgr0=\E[m, smacs=^N, smkx=\E[?1h\E=, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g,
+ sc=\E7, sgr0=\E[m, smacs=^N, smkx=\E[?1h\E=, tbc=\E[3g,
+ use=ansi+erase, use=ansi+idl, use=ansi+local,
+ use=ansi+sgrso, use=ansi+sgrul,
+
hirez100-w|Selanar HiREZ-100 in 132-column mode,
cols#132, use=hirez100,
@@ -22852,10 +23180,9 @@ vsc|Signetics Vsc Video driver by RMC,
#
# (soroc120: removed obsolete ":ma=^K^P^R^L^L :" -- esr)
-soroc120|iq120|soroc|soroc iq120,
- clear=\E*$<2>, cud1=\n, ed=\EY, el=\ET, kcub1=^H, kcud1=\n,
- kcuf1=^L, kcuu1=^K, use=adm3a,
-soroc140|iq140|soroc iq140,
+soroc120|iq120|soroc|Soroc iq120,
+ clear=\E*$<2>, ed=\EY, el=\ET, use=adm3a,
+soroc140|iq140|Soroc iq140,
OTbs, am, mir,
cols#80, lines#24,
bel=^G, cbt=\EI, clear=\E+, cr=\r, cub1=^H, cud1=\n, cuf1=^L,
@@ -22873,7 +23200,7 @@ soroc140|iq140|soroc iq140,
#
# (swtp: removed obsolete ":bc=^D:" -- esr)
-swtp|ct82|southwest technical products ct82,
+swtp|ct82|Southwest Technical Products ct82,
am,
cols#82, lines#20,
bel=^G, clear=^L, cr=\r, cub1=^D, cud1=\n, cuf1=^S,
@@ -22925,7 +23252,7 @@ swtp|ct82|southwest technical products ct82,
#
# Tested, seems to work fine with vi.
-synertek|ktm|synertek380|synertek ktm 3/80 tubeless terminal,
+synertek|ktm|synertek380|Synertek KTM 3/80 tubeless terminal,
am,
cols#80, lines#24,
clear=^Z, cub1=^H, cuf1=^L,
@@ -22945,14 +23272,20 @@ synertek|ktm|synertek380|synertek ktm 3/80 tubeless terminal,
# <is2> sets 80 col mode, normal video, autowrap on (for <am>).
# Seems to be no way to get rid of status line.
# The manual for this puppy was dated June 1981. It claims to be VT52-
-# compatible but looks more vt100-like.
+# compatible but looks more VT100-like -esr
+#
+# According to
+# https://ub.fnwi.uva.nl/computermuseum/tab13215g.html
+# This monochrome graphics terminal of TAB Products, California, is a DEC
+# VT52/VT100/VT132 compatible alphanumeric terminal (TAB 132/15),
+# factory-fitted with additional hardware for Tektronix 4010 emulation.
+# Also the terminal understands a selection of Tektronix 4027 commands.
tab132|tab|tab132-15|tab 132/15,
da, db,
- OTdN@, cols#80, lines#24, lm#96,
- cud1=\n, cup=\E[%i%p1%d;%p2%dH, dch1=\E[P, dl1=\E[M,
- il1=\E[L, is2=\E[?7h\E[?3l\E[?5l, kcub1=\E[D, kcud1=\E[B,
- kcuu1=\E[A, rmir=\E[4l, rmkx@, smir=\E[4h, smkx@,
- use=vt100+4bsd,
+ OTdN@, lm#96,
+ cup=\E[%i%p1%d;%p2%dH, dch1=\E[P, dl1=\E[M, il1=\E[L,
+ is2=\E[?7h\E[?3l\E[?5l, rmir=\E[4l, rmkx@, smir=\E[4h,
+ smkx@, use=decid+cpr, use=vt100+4bsd,
tab132-w|tab132 in wide mode,
cols#132,
is2=\E[?7h\E[?3h\E[?5l, use=tab132,
@@ -22976,21 +23309,21 @@ tab132-w-rv|tab132 in reverse-video/wide mode,
# Model 100) that were ANSI-compatible.
#
# Note two things called "teleray". Reorder should move the common one
-# to the front if you have either. A dumb teleray with the cursor stuck
+# to the front if you have either. A dumb Teleray with the cursor stuck
# on the bottom and no obvious model number is probably a 3700.
#
-t3700|dumb teleray 3700,
+t3700|dumb Teleray 3700,
OTbs,
cols#80, lines#24,
bel=^G, clear=^L, cr=\r, cub1=^H, cud1=\n, ind=\n,
-t3800|teleray 3800 series,
+t3800|Teleray 3800 series,
OTbs,
cols#80, it#8, lines#24,
bel=^G, clear=^L, cr=\r, cub1=^H, cud1=\n, cuf1=\EC,
cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ed=\EJ, el=\EK,
home=\EH, ht=^I, ind=\n, ll=\EY7\s,
-t1061|teleray|teleray 1061,
+t1061|teleray|Teleray 1061,
OTbs, am, km, xhp, xt,
cols#80, it#8, lines#24, xmc#1,
bel=^G, clear=\014$<1>, cr=\r, cub1=^H, cud1=\n, cuf1=\EC,
@@ -23002,7 +23335,7 @@ t1061|teleray|teleray 1061,
kf1=^Z1, kf2=^Z2, kf3=^Z3, kf4=^Z4, kf5=^Z5, kf6=^Z6, kf7=^Z7,
kf8=^Z8, rmso=\ER@, rmul=\ER@, smso=\s\ERD, smul=\ERH,
tbc=\EG,
-t1061f|teleray 1061 with fast PROMs,
+t1061f|Teleray 1061 with fast PROMs,
dl1=\EM, il1=\EL, ip@, use=t1061,
# "Teleray Arpa Special", officially designated as
# "Teleray Arpa network model 10" with "Special feature 720".
@@ -23014,7 +23347,7 @@ t1061f|teleray 1061 with fast PROMs,
# Note: this is NOT the old termcap's "t1061f with fast proms."
# From: J. Lepreau <lepreau@utah-cs> Tue Feb 1 06:39:37 1983, Univ of Utah
# (t10: removed overridden ":so@:se@:us@:ue@:" -- esr)
-t10|teleray 10 special,
+t10|Teleray 10 special,
OTbs, km, xhp, xt,
cols#80, it#8, lines#24, xmc#2,
clear=\Ej$<30/>, cub1=^H, cud1=\EB, cuf1=\EC,
@@ -23022,22 +23355,22 @@ t10|teleray 10 special,
dl1=\EM, ed=\EJ, el=\EK, home=\EH, ht=^I, ich1=\EP, il1=\EL,
ind=\Eq, pad=\0, ri=\Ep, rmso=\ER@, rmul=\ER@, smso=\ERD,
smul=\ERH,
-# teleray 16 - map the arrow keys for vi/rogue, shifted to up/down page, and
+# Teleray 16 - map the arrow keys for vi/rogue, shifted to up/down page, and
# back/forth words. Put the function keys (f1-f10) where they can be
# found, and turn off the other magic keys along the top row, except
# for line/local. Do the magic appropriate to make the page shifts work.
# Also toggle ^S/^Q for those of us who use Emacs.
-t16|teleray 16,
+t16|Teleray 16,
am, da, db, mir, xhp, xt,
cols#80, lines#24,
- bel=^G, clear=\E[H\E[2J, cr=\r, cub1=^H, cud1=\E[B,
- cuf1=\E[C, cup=%i\E[%p1%d;%p2%df, cuu1=\E[A, dch1=\E[P,
- dl1=\E[M, ed=\E[0J, el=\E[0K, home=\E[H, ht=^I, il1=\E[L,
- ind=\n, kf1=^Z1, kf10=^Z0, kf2=^Z2, kf3=^Z3, kf4=^Z4, kf5=^Z5,
- kf6=^Z6, kf7=^Z7, kf8=^Z8, kf9=^Z9, ri=\E[T,
- rmcup=\E[V\E[24;1f\E[?38h, rmir=\E[4l, rmso=\E[m,
- rmul=\E[m, sgr0=\E[m, smcup=\E[U\E[?38l, smir=\E[4h,
- smso=\E[7m, smul=\E[4m,
+ bel=^G, clear=\E[H\E[2J, cr=\r, cub1=^H,
+ cup=%i\E[%p1%d;%p2%df, dch1=\E[P, dl1=\E[M, ed=\E[0J,
+ el=\E[0K, home=\E[H, ht=^I, il1=\E[L, ind=\n, kf1=^Z1,
+ kf10=^Z0, kf2=^Z2, kf3=^Z3, kf4=^Z4, kf5=^Z5, kf6=^Z6, kf7=^Z7,
+ kf8=^Z8, kf9=^Z9, ri=\E[T, rmcup=\E[V\E[24;1f\E[?38h,
+ rmir=\E[4l, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
+ smcup=\E[U\E[?38l, smir=\E[4h, smso=\E[7m, smul=\E[4m,
+ use=ansi+local1,
#### Texas Instruments (ti)
#
@@ -23045,7 +23378,7 @@ t16|teleray 16,
# The Silent 700 was so called because it was built around a quiet thermal
# printer. It was portable, equipped with an acoustic coupler, and pretty
# neat for its day.
-ti700|ti733|ti735|ti745|ti800|ti silent 700/733/735/745 or omni 800,
+ti700|ti733|ti735|ti745|ti800|Texas Instruments Silent 700/733/735/745 or OMNI 800,
OTbs, hc, os,
cols#80,
bel=^G, cr=\r$<162>, cub1=^H, cud1=\n, ind=\n,
@@ -23056,30 +23389,28 @@ ti700|ti733|ti735|ti745|ti800|ti silent 700/733/735/745 or omni 800,
# http://www.bitsavers.org/pdf/ti/terminal/silent_700/
# Refer to:
# Model 707 Data Terminal User's Manual
+# http://www.bitsavers.org/pdf/ti/terminal/silent_700/2310451-0001_Silent_700_Model_707_Users_Manual_Nov1983.pdf
#
# pages 2-7 and 2-8 say that the model 707 prints 10.2 characters per inch
# (cpi) (80 characters per line) by default, and can be switched to/from 17.0
# cpi using an escape sequence. There is no 80/132-column capability in
# terminfo (only the more general cpi which allows any value).
ti703|ti707|Texas Instruments Silent 703/707,
- am, hc, os, xenl,
- cols#80, it#8,
- bel=^G, cr=\r$<162>, cub1=^H, cud1=\n, cuf1=\s, ind=\n,
- is2=\EPC\\, nel=\r\n,
-ti703-w|ti707-w|Texas Instruments Silent 703/707,
+ am, xenl,
+ it#8,
+ cuf1=\s, is2=\EPC\\, nel=\r\n, use=ti700,
+ti703-w|ti707-w|Texas Instruments Silent 703/707 (132 column),
cols#132,
is2=\EPD\\, use=ti703,
#
# Texas Instruments 916 VDT 7 bit control mode
#
-ti916|ti916-220-7|Texas Instruments 916 VDT 8859/1 vt220 mode 7 bit CTRL,
- da, db, in, msgr,
- cbt=\E[Z, clear=\E[H\E[2J$<6>, cub=\E[%p1%dD,
- cud=\E[%p1%dB, cuf=\E[%p1%dC, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, dch=\E[%p1%dP$<250>, dch1=\E[P,
- dl=\E[%p1%dM, ech=\E[%p1%dX$<20>, ed=\E[J$<6>, el=\E[0K,
- el1=\E[1K, enacs=\E(B\E)0, ff=^L, flash=\E[?5h\E[?5l$<6>,
+ti916|ti916-220-7|Texas Instruments 916 VDT 8859/1 VT220 mode 7 bit CTRL,
+ da, db, in,
+ cbt=\E[Z, clear=\E[H\E[2J$<6>, dch=\E[%p1%dP$<250>,
+ ech=\E[%p1%dX$<20>, ed=\E[J$<6>, el=\E[0K,
+ enacs=\E(B\E)0, ff=^L, flash=\E[?5h\E[?5l$<6>,
hpa=\E[%p1%{1}%+%dG, hts=\E[0W, ich=\E[%p1%d@$<250>,
il=\E[%p1%dL$<36>, ip=$<10>, is2=\E[1;24r\E[24;1H,
kcmd=\E[29~, kdch1=\E[P, kent=\n, kf1=\E[17~, kf10=\E[28~,
@@ -23087,54 +23418,52 @@ ti916|ti916-220-7|Texas Instruments 916 VDT 8859/1 vt220 mode 7 bit CTRL,
kf4=\E[20~, kf5=\E[21~, kf6=\E[23~, kf7=\E[24~, kf8=\E[25~,
kf9=\E[26~, khome=\E[H, kich1=\E[@, knp=\E[S, kpp=\E[T,
kprt=^X, prot=\E&, rmacs=\017$<2>, rs2=\E[!p, sgr@,
- smacs=\016$<2>, tbc=\E[3g, vpa=\E[%p1%{1}%+%dd,
- use=vt220,
+ smacs=\016$<2>, vpa=\E[%p1%{1}%+%dd, use=vt220,
#
# Texas Instruments 916 VDT 8 bit control mode
#
-ti916-8|ti916-220-8|Texas Instruments 916 VDT 8859/1 8 vt220 mode bit CTRL,
+ti916-8|ti916-220-8|Texas Instruments 916 VDT 8859/1 8 VT220 mode bit CTRL,
kcmd=\23329~, kcub1=\233D, kcud1=\233B, kcuf1=\233C,
- kcuu1=\233A, kdch1=\233P, kent=\n, kf1=\23317~,
- kf10=\23328~, kf11=\23329~, kf12=\23331~, kf2=\23318~,
- kf3=\23319~, kf4=\23320~, kf5=\23321~, kf6=\23323~,
- kf7=\23324~, kf8=\23325~, kf9=\23326~, khome=\233H,
- kich1=\233@, knp=\233S, kpp=\233T, kprt=^X, use=ti916,
+ kcuu1=\233A, kdch1=\233P, kf1=\23317~, kf10=\23328~,
+ kf11=\23329~, kf12=\23331~, kf2=\23318~, kf3=\23319~,
+ kf4=\23320~, kf5=\23321~, kf6=\23323~, kf7=\23324~,
+ kf8=\23325~, kf9=\23326~, khome=\233H, kich1=\233@,
+ knp=\233S, kpp=\233T, use=ti916,
#
# Texas Instruments 916 VDT 8859/1 7 bit control 132 column mode
#
-ti916-132|Texas Instruments 916 VDT vt220 132 column,
+ti916-132|Texas Instruments 916 VDT VT220 132 column,
cols#132, use=ti916,
#
# Texas Instruments 916 VDT 8859/1 8 bit control 132 column mode
#
-ti916-8-132|Texas Instruments 916 VDT 8-bit vt220 132 column,
+ti916-8-132|Texas Instruments 916 VDT 8-bit VT220 132 column,
cols#132, use=ti916-8,
ti924|Texas Instruments 924 VDT 8859/1 7 bit CTRL,
OTbs, am, xon,
cols#80, it#8, lines#24,
bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[2J\E[H, cr=\r,
- csr=%i\E[%p1%d;%p2%dr, cub1=\E[D, cud1=\E[B, cuf1=\E[C,
- cup=%i\E[%p1%d;%p2%dH, cuu1=\E[A, cvvis=\E[?31h,
- dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, hts=\EH,
- il1=\E[L, ind=\ED, kbs=^H, kcub1=\E[D, kcud1=\E[B,
+ csr=%i\E[%p1%d;%p2%dr, cup=%i\E[%p1%d;%p2%dH,
+ cvvis=\E[?31h, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
+ hts=\EH, il1=\E[L, ind=\ED, kbs=^H, kcub1=\E[D, kcud1=\E[B,
kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kf1=\EOP, kf2=\EOQ,
kf3=\EOR, kf4=\EOS, kf5=\E[16~, kf6=\E[17~, kf7=\E[18~,
kf8=\E[19~, kf9=\E[20~, kich1=\E[@, rc=\E8, rev=\E[7m,
ri=\EM, rmso=\E[m, rmul=\E[m, sc=\E7, sgr0=\E[m, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g, use=vt220+cvis,
+ smul=\E[4m, tbc=\E[3g, use=ansi+local1, use=vt220+cvis,
ti924-8|Texas Instruments 924 VDT 8859/1 8 bit CTRL,
am, xon,
cols#80, it#8, lines#24,
bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[2J\E[H, cr=\r,
- csr=%i\E[%p1%d;%p2%dr, cub1=\E[D, cud1=\E[B, cuf1=\E[C,
- cup=%i\E[%p1%d;%p2%dH, cuu1=\E[A, cvvis=\E[?31h,
- dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, hts=\EH,
- il1=\E[L, ind=\ED, kbs=^H, kcub1=\E[D, kcud1=\E[B,
+ csr=%i\E[%p1%d;%p2%dr, cup=%i\E[%p1%d;%p2%dH,
+ cvvis=\E[?31h, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
+ hts=\EH, il1=\E[L, ind=\ED, kbs=^H, kcub1=\E[D, kcud1=\E[B,
kcuf1=\E[C, kcuu1=\E[A, kdch1=\233P, kf1=\217P, kf2=\217Q,
kf3=\217R, kf4=\217S, kf5=\23316~, kf6=\23317~,
kf7=\23318~, kf8=\23319~, kf9=\23320~, kich1=\233@, rc=\E8,
rev=\E[7m, ri=\EM, rmso=\E[m, rmul=\E[m, sc=\E7, sgr0=\E[m,
- smso=\E[7m, smul=\E[4m, tbc=\E[3g, use=vt220+cvis,
+ smso=\E[7m, smul=\E[4m, tbc=\E[3g, use=ansi+local1,
+ use=vt220+cvis,
ti924w|Texas Instruments 924 VDT 7 bit - 132 column mode,
cols#132, use=ti924,
ti924-8w|Texas Instruments 924 VDT 8 bit - 132 column mode,
@@ -23146,11 +23475,11 @@ ti931|Texas Instruments 931 VDT,
cud1=\EB, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
cuu1=\EA, dch1=\EQ, dl1=\EO, ed=\EJ, el=\EI, home=\EH,
ich1=\ER\EP\EM, il1=\EN, ind=\Ea, invis=\E4H,
- is2=\EGB\E(@B@@\E), kcub1=\ED, kcud1=\EB, kcuf1=\EC,
- kcuu1=\EA, kdch1=\EQ, kdl1=\EO, kf1=\Ei1, kf2=\Ei2, kf3=\Ei3,
- kf4=\Ei4, kf5=\Ei5, kf6=\Ei6, kf7=\Ei7, kf8=\Ei8, kf9=\Ei9,
- kich1=\EP, kil1=\EN, rev=\E4B, ri=\Eb, rmso=\E4@, rmul=\E4@,
- sgr0=\E4@, smso=\E4A, smul=\E4D,
+ is2=\EGB\E(@B@@\E), kdch1=\EQ, kdl1=\EO, kf1=\Ei1,
+ kf2=\Ei2, kf3=\Ei3, kf4=\Ei4, kf5=\Ei5, kf6=\Ei6, kf7=\Ei7,
+ kf8=\Ei8, kf9=\Ei9, kich1=\EP, kil1=\EN, rev=\E4B, ri=\Eb,
+ rmso=\E4@, rmul=\E4@, sgr0=\E4@, smso=\E4A, smul=\E4D,
+ use=vt52+arrows,
ti926|Texas Instruments 926 VDT 8859/1 7 bit CTRL,
csr@, ind=\E[1S, ri=\E[1T, use=ti924,
# (ti926-8: I corrected this from the broken SCO entry -- esr)
@@ -23160,16 +23489,14 @@ ti_ansi|basic entry for ti928,
am, bce, eo, xenl, xon,
colors#8, cols#80, it#8, lines#25, pairs#64,
bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[2J\E[H,
- cr=\r, csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\E[B,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P,
- dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, ich1=\E[@,
- il1=\E[L, ind=\E[S, kbs=^H, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kend=\E[F, kf0=\E[V, kf1=\E[M,
- kf2=\E[N, kf3=\E[O, kf4=\E[P, kf5=\E[Q, kf6=\E[R, kf7=\E[S,
- kf8=\E[T, kf9=\E[U, khome=\E[H, knp=\E[G, kpp=\E[I,
- op=\E[37;40m, ri=\E[T, rmso=\E[m, rmul=\E[m,
+ cr=\r, csr=\E[%i%p1%d;%p2%dr, cub1=^H,
+ cup=\E[%i%p1%d;%p2%dH, dch1=\E[P, dl1=\E[M, ed=\E[J,
+ el=\E[K, home=\E[H, ht=^I, ich1=\E[@, il1=\E[L, ind=\E[S,
+ kend=\E[F, kf0=\E[V, kf1=\E[M, kf2=\E[N, kf3=\E[O, kf4=\E[P,
+ kf5=\E[Q, kf6=\E[R, kf7=\E[S, kf8=\E[T, kf9=\E[U, knp=\E[G,
+ kpp=\E[I, op=\E[37;40m, ri=\E[T, rmso=\E[m, rmul=\E[m,
setab=\E[4%p1%dm, setaf=\E[3%p1%dm, sgr0=\E[m,
- smso=\E[7m, smul=\E[4m,
+ smso=\E[7m, smul=\E[4m, use=ansi+arrows, use=ansi+local1,
#
# 928 VDT 7 bit control mode
#
@@ -23197,7 +23524,7 @@ ti928-8|Texas Instruments 928 VDT 8859/1 8 bit CTRL,
# had just <smso>=\EG6 which I think means standout was supposed to be
# dim-reverse using ADM12-style attributes. ADM12 <smul>/<rmul> and
# <invis> might work-- esr)
-zen30|z30|zentec 30,
+zen30|z30|Zentec 30,
OTbs, am, mir, ul,
cols#80, lines#24,
bel=^G, clear=\E*, cr=\r, cub1=^H, cud1=\n, cuf1=^L,
@@ -23210,7 +23537,7 @@ zen30|z30|zentec 30,
# UK/DK/RK/LK/HM were someone's aliases for ku/kd/kl/kr/kh,
# which were also in the original entry -- esr)
# (zen50: removed obsolete ":ma=^Hh^Ll^Jj^Kk:" -- esr)
-zen50|z50|zentec zephyr,
+zen50|z50|Zentec Zephyr,
OTbs, am,
cols#80, lines#24, xmc#1,
clear=\E+, cub1=^H, cup=\E=%p1%{32}%+%c%p2%{32}%+%c,
@@ -23226,10 +23553,9 @@ cci|cci1|z8001|zen8001|CCI Custom Zentec 8001,
csr=\ER%p1%{32}%+%c%p2%{32}%+%c, cub1=^H, cud1=\n,
cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA,
cvvis=\EF\EQ\EM \ER 7, dim=\EM!, ed=\EJ, el=\EK, home=\EH,
- invis=\EM(, is2=\EM \EF\ET\EP\ER 7, kbs=^H, kcub1=\ED,
- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome=\EH, mc4=^T, mc5=^R,
- rev=\EM$, ri=\EI, rmso=\EM\s, rmul=\EM\s, sgr0=\EM\s,
- smso=\EM$, smul=\EM0,
+ invis=\EM(, is2=\EM \EF\ET\EP\ER 7, kbs=^H, khome=\EH,
+ mc4=^T, mc5=^R, rev=\EM$, ri=\EI, rmso=\EM\s, rmul=\EM\s,
+ sgr0=\EM\s, smso=\EM$, smul=\EM0, use=vt52+arrows,
######## OBSOLETE UNIX CONSOLES
#
@@ -23241,7 +23567,7 @@ cci|cci1|z8001|zen8001|CCI Custom Zentec 8001,
#
# From: Gary Darland <goodmanc@garnet.berkeley.edu>
-apollo|apollo console,
+apollo|Apollo console,
OTbs, am, mir,
cols#88, lines#53,
clear=^L, cub1=^H, cud1=\EB, cuf1=\EC,
@@ -23253,13 +23579,16 @@ apollo|apollo console,
# We don't know whether or not the apollo guys replicated DEC's firmware bug
# in the VT132 that reversed <rmir>/<smir>. To be on the safe side, disable
# both these capabilities.
-apollo_15P|apollo 15 inch display,
- rmir@, smir@, use=vt132,
-apollo_19L|apollo 19 inch display,
- rmir@, smir@, use=vt132,
-apollo_color|apollo color display,
+apollo+vt132|Apollo console emulating VT132,
rmir@, smir@, use=vt132,
+apollo_15P|Apollo 15 inch display,
+ use=apollo+vt132,
+apollo_19L|Apollo 19 inch display,
+ use=apollo+vt132,
+apollo_color|Apollo color display,
+ use=apollo+vt132,
+
#### AT&T consoles
# This actually describes the generic SVr4 display driver for Intel boxes.
@@ -23267,42 +23596,38 @@ apollo_color|apollo color display,
# From: Eric Raymond <esr@snark.thyrsus.com> Mon Nov 27 19:00:53 EST 1995
att6386|at386|386at|AT&T WGS 6386 console,
am, bw, eo, xon,
- cols#80, it#8, lines#25,
+ cols#80, lines#25,
acsc=``a1fxgqh0jYk?lZm@nEooppqDrrsstCu4vAwBx3yyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[=C,
- clear=\E[2J\E[H, cnorm=\E[=1C, cr=\r, cub=\E[%p1%dD,
- cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
- cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
- dl=\E[%p1%dM, dl1=\E[1M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
- home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
+ bel=^G, civis=\E[=C, clear=\E[2J\E[H, cnorm=\E[=1C, cr=\r,
+ cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\E[P,
+ dim=\E[2m, dl=\E[%p1%dM, dl1=\E[1M, ech=\E[%p1%dX, ed=\E[J,
+ el=\E[K, home=\E[H, hpa=\E[%i%p1%dG, ich=\E[%p1%d@,
ich1=\E[1@, il=\E[%p1%dL, il1=\E[1L, ind=\E[S, invis=\E[9m,
- is2=\E[0;10;39m, kbs=^H, kcbt=^], kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kend=\E[Y, kf1=\EOP,
+ is2=\E[0;10;39m, kcbt=^], kdch1=\E[P, kend=\E[Y, kf1=\EOP,
kf10=\EOY, kf11=\EOZ, kf12=\EOA, kf2=\EOQ, kf3=\EOR,
kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW, kf9=\EOX,
- khome=\E[H, kich1=\E[@, knp=\E[U, kpp=\E[V, krmir=\E0,
- nel=\r\E[S, rc=\E8, rev=\E[7m, ri=\E[T, rmacs=\E[10m,
- rmso=\E[m, rmul=\E[m, sc=\E7,
+ kich1=\E[@, knp=\E[U, kpp=\E[V, krmir=\E0, nel=\r\E[S,
+ rc=\E8, ri=\E[T, rmacs=\E[10m, sc=\E7,
sgr=\E[10m\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p5%t;
2%;%?%p6%t;1%;%?%p9%t;12%e;10%;%?%p7%t;9%;m,
- sgr0=\E[0;10m, smacs=\E[12m, smso=\E[7m, smul=\E[4m,
- tbc=\E[3g, vpa=\E[%i%p1%dd, use=ecma+index,
- use=klone+color,
+ sgr0=\E[0;10m, smacs=\E[12m, vpa=\E[%i%p1%dd,
+ use=ansi+arrows, use=ansi+inittabs, use=ansi+local,
+ use=ansi+sgrbold, use=ecma+index, use=klone+color,
+
# (pc6300plus: removed ":KM=/usr/lib/ua/kmap.s5:"; renamed BO/EE/CI/CV -- esr)
pc6300plus|AT&T 6300 plus,
OTbs, am, xon,
cols#80, lines#24,
bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[=C,
- clear=\E[2J\E[H, cnorm=\E[=1C, cr=\r, cub1=^H, cud1=\E[B,
- cuf1=\E[C, cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A,
- dch1=\E[1P, dim=\E[2m, dl1=\E[1M, ed=\E[0J, el=\E[0K,
- home=\E[H, hts=\EH, ich1=\E[1@, il1=\E[1L, ind=\n,
- invis=\E[9m, kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kf1=\EOc, kf10=\EOu, kf2=\EOd, kf3=\EOe,
- kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj, kf9=\EOk,
- nel=\r\n, rev=\E[7m, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
- smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+ clear=\E[2J\E[H, cnorm=\E[=1C, cr=\r, cub1=^H,
+ cup=\E[%i%p1%2d;%p2%2dH, dch1=\E[1P, dim=\E[2m,
+ dl1=\E[1M, ed=\E[0J, el=\E[0K, home=\E[H, hts=\EH,
+ ich1=\E[1@, il1=\E[1L, ind=\n, invis=\E[9m, kbs=^H,
+ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOc,
+ kf10=\EOu, kf2=\EOd, kf3=\EOe, kf4=\EOf, kf5=\EOg, kf6=\EOh,
+ kf7=\EOi, kf8=\EOj, kf9=\EOk, nel=\r\n, rev=\E[7m, rmso=\E[m,
+ rmul=\E[m, sgr0=\E[m, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+ use=ansi+local1,
# From: Benjamin C. W. Sittler <bsittler@nmt.edu>
#
@@ -23425,28 +23750,25 @@ att7300|unixpc|pc7300|3b1|s4|AT&T UNIX PC Model 7300,
am, xon,
cols#80, it#8, lines#24,
bel=^G, blink=\E[9m, bold=\E[1m, cbt=\E^I, civis=\E[=1C,
- clear=\E[2J\E[H, cnorm=\E[=0C, cr=\r, cub=\E[%p1%dD,
- cub1=^H, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
- cuu1=\E[A, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M,
- ed=\E[0J, el=\E[0K, home=\E[H, ich1=\E[@, il=\E[%p1%dL,
- il1=\E[L, ind=\n, invis=\E[9m, is1=\017\E[=1w, kBEG=\ENB,
- kCAN=\EOW, kCPY=\END, kCRT=\EON, kDC=\ENF, kDL=\ENE,
- kEND=\ENN, kEOL=\EOA, kFND=\EOX, kHLP=\EOM, kHOM=\ENM,
- kIC=\ENJ, kLFT=\ENK, kMOV=\ENC, kNXT=\ENH, kOPT=\EOR,
- kPRV=\ENG, kRDO=\EOT, kRIT=\ENL, kRPL=\EOY, kSAV=\EOO,
- kUND=\EOS, kbeg=\ENb, kbs=^H, kcan=\EOw, kcbt=\E[Z,
- kclo=\EOV, kclr=\E[J, kcmd=\EOu, kcpy=\ENd, kcrt=\EOn,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\ENf,
- ked=\E[J, kel=\EOa, kend=\E0, kext=\EOk, kf1=\EOc, kf2=\EOd,
- kf3=\EOe, kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj,
- kfnd=\EOx, khlp=\EOm, khome=\E[H, kich1=\ENj, kind=\E[B,
- kmov=\ENc, kmrk=\ENi, knp=\E[U, knxt=\ENh, kopn=\EOv,
- kopt=\EOr, kpp=\E[V, kprt=\EOz, kprv=\ENg, krdo=\EOt,
- kref=\EOb, krfr=\ENa, kri=\E[A, krpl=\EOy, krst=\EOB,
- ksav=\EOo, kslt=\ENI, kund=\EOs, nel=\EE, rev=\E[7m, ri=\EM,
- rmso=\E[m, rmul=\E[m, sgr0=\E[0;10m, smso=\E[7m,
- smul=\E[4m,
+ clear=\E[2J\E[H, cnorm=\E[=0C, cr=\r, cub1=^H,
+ cup=\E[%i%p1%d;%p2%dH, dch1=\E[P, dim=\E[2m, ed=\E[0J,
+ el=\E[0K, home=\E[H, ich1=\E[@, ind=\n, invis=\E[9m,
+ is1=\017\E[=1w, kBEG=\ENB, kCAN=\EOW, kCPY=\END, kCRT=\EON,
+ kDC=\ENF, kDL=\ENE, kEND=\ENN, kEOL=\EOA, kFND=\EOX,
+ kHLP=\EOM, kHOM=\ENM, kIC=\ENJ, kLFT=\ENK, kMOV=\ENC,
+ kNXT=\ENH, kOPT=\EOR, kPRV=\ENG, kRDO=\EOT, kRIT=\ENL,
+ kRPL=\EOY, kSAV=\EOO, kUND=\EOS, kbeg=\ENb, kcan=\EOw,
+ kcbt=\E[Z, kclo=\EOV, kclr=\E[J, kcmd=\EOu, kcpy=\ENd,
+ kcrt=\EOn, kdch1=\ENf, ked=\E[J, kel=\EOa, kend=\E0,
+ kext=\EOk, kf1=\EOc, kf2=\EOd, kf3=\EOe, kf4=\EOf, kf5=\EOg,
+ kf6=\EOh, kf7=\EOi, kf8=\EOj, kfnd=\EOx, khlp=\EOm,
+ kich1=\ENj, kind=\E[B, kmov=\ENc, kmrk=\ENi, knp=\E[U,
+ knxt=\ENh, kopn=\EOv, kopt=\EOr, kpp=\E[V, kprt=\EOz,
+ kprv=\ENg, krdo=\EOt, kref=\EOb, krfr=\ENa, kri=\E[A,
+ krpl=\EOy, krst=\EOB, ksav=\EOo, kslt=\ENI, kund=\EOs,
+ nel=\EE, rev=\E[7m, ri=\EM, rmso=\E[m, rmul=\E[m,
+ sgr0=\E[0;10m, smso=\E[7m, smul=\E[4m, use=ansi+arrows,
+ use=ansi+idl, use=ansi+local,
#### Convergent Technology
#
@@ -23522,15 +23844,14 @@ fos|fortune|Fortune system,
acsc=j*k(l m"q&v%w#x-, bel=^G, blink=\EN, civis=\E],
clear=\014$<20>, cnorm=\E\\, cr=\r, cub1=^H, cud1=\n$<3>,
cup=\034C%p1%{32}%+%c%p2%{32}%+%c, cuu1=\013$<3>,
- cvvis=\E\:, dch1=\034W$<5>, dl1=\034R$<15>,
- ed=\034Y$<3*>, el=^\Z, home=\036$<10>, ht=^Z,
- ich1=\034Q$<5>, il1=\034E$<15>, ind=\n, is2=^_.., kbs=^H,
- kcub1=^Aw\r, kcud1=^Ay\r, kcuf1=^Az\r, kcuu1=^Ax\r,
- kend=^Ak\r, kent=^Aq, kf1=^Aa\r, kf2=^Ab\r, kf3=^Ac\r,
- kf4=^Ad\r, kf5=^Ae\r, kf6=^Af\r, kf7=^Ag\r, kf8=^Ah\r,
- khome=^A?\r, knp=^Ao\r, kpp=^An\r, nel=\r\n, rev=\EH,
- rmacs=^O, rmso=^\I`, rmul=^\IP, sgr0=\EI, smacs=\Eo,
- smso=^\H`, smul=^\HP,
+ cvvis=\E:, dch1=\034W$<5>, dl1=\034R$<15>, ed=\034Y$<3*>,
+ el=^\Z, home=\036$<10>, ht=^Z, ich1=\034Q$<5>,
+ il1=\034E$<15>, ind=\n, is2=^_.., kbs=^H, kcub1=^Aw\r,
+ kcud1=^Ay\r, kcuf1=^Az\r, kcuu1=^Ax\r, kend=^Ak\r,
+ kent=^Aq, kf1=^Aa\r, kf2=^Ab\r, kf3=^Ac\r, kf4=^Ad\r,
+ kf5=^Ae\r, kf6=^Af\r, kf7=^Ag\r, kf8=^Ah\r, khome=^A?\r,
+ knp=^Ao\r, kpp=^An\r, nel=\r\n, rev=\EH, rmacs=^O, rmso=^\I`,
+ rmul=^\IP, sgr0=\EI, smacs=\Eo, smso=^\H`, smul=^\HP,
#### Masscomp consoles
#
@@ -23543,11 +23864,11 @@ fos|fortune|Fortune system,
masscomp|masscomp workstation console,
OTbs, km, mir,
cols#80, it#8, lines#24,
- clear=\E[2J, cub1=^H, cud1=\E[B, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
- ed=\E[J, el=\E[K, ht=^I, il1=\E[L, is2=\EGc\EGb\EGw, kbs=^H,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, rmir=\E[4l,
- rmso=\E[m, rmul=\EGau, smir=\E[4h, smso=\E[7m, smul=\EGu,
+ clear=\E[2J, cub1=^H, cup=\E[%i%p1%d;%p2%dH, dch1=\E[P,
+ dl1=\E[M, ed=\E[J, el=\E[K, ht=^I, il1=\E[L,
+ is2=\EGc\EGb\EGw, kbs=^H, kcub1=\EOD, kcud1=\EOB,
+ kcuf1=\EOC, kcuu1=\EOA, rmir=\E[4l, rmso=\E[m, rmul=\EGau,
+ smir=\E[4h, smso=\E[7m, smul=\EGu, use=ansi+local1,
masscomp1|masscomp large screen version 1,
cols#104, lines#36, use=masscomp,
masscomp2|masscomp large screen version 2,
@@ -23575,10 +23896,9 @@ pmcons|pmconsole|PMAX console,
pcix|PC/IX console,
am, bw, eo,
cols#80, lines#24,
- clear=\Ec, cub1=^H, cud1=\E[B, cuf1=\E[C,
- cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, ed=\E[J, el=\E[K,
- home=\E[H, rmso=\E[m, rmul=\E[m, sgr0=\E[m, smso=\E[7m,
- smul=\E[4m,
+ clear=\Ec, cub1=^H, cup=\E[%i%p1%2d;%p2%2dH, ed=\E[J,
+ el=\E[K, home=\E[H, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
+ smso=\E[7m, smul=\E[4m, use=ansi+local1,
# (ibmpcx: this entry used to be known as ibmx.
# It formerly included the following extension capabilities:
@@ -23594,12 +23914,11 @@ pcix|PC/IX console,
ibmpcx|xenix|ibmx|IBM PC xenix console display,
OTbs, am, msgr,
cols#80, lines#25,
- clear=^L, cub1=^H, cud1=\E[B, cuf1=\E[C,
- cup=\E[%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
- ed=\E[J, el=\E[K, home=\E[H, ich1=\E[@, il1=\E[L, kbs=^H,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kend=\E[d,
- kf1=\E[K, kf2=\E[L, kf3=\E[M, kf4=\E[N, khome=\E[Y, knp=\E[e,
- kpp=\E[Z, use=klone+acs, use=klone+sgr8,
+ clear=^L, cub1=^H, cup=\E[%p1%d;%p2%dH, dch1=\E[P,
+ dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ich1=\E[@, il1=\E[L,
+ kend=\E[d, kf1=\E[K, kf2=\E[L, kf3=\E[M, kf4=\E[N,
+ khome=\E[Y, knp=\E[e, kpp=\E[Z, use=ansi+arrows,
+ use=ansi+local1, use=klone+acs, use=klone+sgr8,
######## OTHER OBSOLETE TYPES
#
@@ -23647,9 +23966,7 @@ ctrm|C terminal emulator,
cup=\E&a%p2%dc%p1%dY, cuu1=\EA, dch1=\EP$<2>, dl1=\EM,
ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=\011$<2>, hts=\E1,
il1=\EL, ind=\n, ip=$<2>, is2=\E&jA\r, kbs=^H, kcub1=\Eu\r,
- kcud1=\Ew\r, kcuf1=\Ev\r, kcuu1=\Et\r, kf1=\Ep\r,
- kf2=\Eq\r, kf3=\Er\r, kf4=\Es\r, kf5=\Et\r, kf6=\Eu\r,
- kf7=\Ev\r, kf8=\Ew\r, khome=\Ep\r,
+ kcud1=\Ew\r, kcuf1=\Ev\r, kcuu1=\Et\r, khome=\Ep\r,
op=\E&bn\E&bB\E&bG\E&bR%{0}%PX%{0}%PY%{0}%PZ%{1}%PW%{1}%PV
%{1}%PU,
rev=%?%gB%{0}%=%t\E&dB%{1}%PB%;, rmir=\ER, rmkx=\E&jA,
@@ -23666,6 +23983,7 @@ ctrm|C terminal emulator,
%t\E&dD%;,
sgr0=\E&d@%{0}%PA%{0}%PB%{0}%PH, smir=\EQ, smkx=\E&jB,
smso=\E&dD, smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY,
+ use=hp+pfk+cr,
# gs6300 - can't use blue foreground, it clashes with underline;
# it's simulated with cyan
@@ -23676,48 +23994,45 @@ gs6300|emots|AT&T PC6300 with EMOTS terminal emulator,
colors#8, cols#80, it#8, lines#24, pairs#63,
acsc=++\,\,--..``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyz
z{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=\r,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\n,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
- ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\n,
- is2=\E[m, kbs=^H, kcbt=^R^I, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kf1=\E[0s, kf2=\E[24s, kf3=\E[1s,
- kf4=\E[23s, kf5=\E[2s, kf6=\E[22s, kf7=\E[3s, kf8=\E[21s,
- khome=\E[H, mc4=\E[4i, mc5=\E[5i, op=\E[?;m, rev=\E[7m,
- ri=\E[L, rmacs=\E[10m, rs1=\Ec, setb=\E[?;%p1%dm,
+ bel=^G, blink=\E[5m, bold=\E[1m, cr=\r, cub1=^H, cud1=\n,
+ cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\E[P,
+ home=\E[H, ht=^I, ich=\E[%p1%d@, ich1=\E[@, ind=\n, is2=\E[m,
+ kcbt=^R^I, kf1=\E[0s, kf2=\E[24s, kf3=\E[1s, kf4=\E[23s,
+ kf5=\E[2s, kf6=\E[22s, kf7=\E[3s, kf8=\E[21s, mc4=\E[4i,
+ mc5=\E[5i, op=\E[?;m, rev=\E[7m, ri=\E[L, rmacs=\E[10m,
+ rs1=\Ec, setb=\E[?;%p1%dm,
setf=\E[?%?%p1%{0}%=%t0%e%p1%{1}%=%t2%e%p1%{1}%-%d%;m,
sgr0=\E[m\E[10m, smacs=\E[11m, smso=\E[1m, smul=\E[4m,
+ use=ansi+arrows, use=ansi+erase, use=ansi+idl,
+ use=ansi+local,
# From: <earle@smeagol.UUCP> 29 Oct 85 05:40:18 GMT
# MS-Kermit with Heath-19 emulation mode enabled
# (h19k: changed ":pt@:" to ":it@"
-h19k|h19kermit|heathkit emulation provided by Kermit (no auto margin),
+h19k|h19kermit|Heathkit emulation provided by Kermit (no auto margin),
am@, da, db, xt,
it@,
ht@, use=h19-u,
-# Apple Macintosh with Versaterm, a terminal emulator distributed by Synergy
+# Apple Macintosh with VersaTerm, a terminal emulator distributed by Synergy
# Software (formerly Peripherals Computers & Supplies, Inc) of
# 2457 Perkiomen Ave., Reading, PA 19606, 1-800-876-8376. They can
# also be reached at support@synergy.com.
-versaterm|versaterm vt100 emulator for the Macintosh,
+versaterm|VersaTerm VT100 emulator for the Macintosh,
am, xenl,
cols#80, it#8, lines#24,
bel=^G, blink=\E[5m$<2/>, bold=\E[1m$<2/>,
- clear=\E[;H\E[2J$<50/>, cr=\r, csr=\E[%i%p1%d;%p2%dr,
- cub1=^H, cud1=\n, cuf1=\E[C$<2/>,
- cup=\E[%i%p1%d;%p2%dH$<5/>, cuu1=\E[A$<2/>,
- dch1=\E[1P$<7/>, dl1=\E[1M$<9/>, ed=\E[J$<50/>,
- el=\E[K$<3/>, home=\E[H, ht=^I, ich1=\E[1@$<7/>,
- il1=\E[1L$<9/>, is2=\E[1;24r\E[24;1H, kbs=^H, kcub1=\EOD,
- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP, kf2=\EOQ,
- kf3=\EOR, kf4=\EOS, nel=\r\n, rc=\E8, rev=\E[7m$<2/>,
- rf=/usr/share/tabset/vt100, ri=\EM$<5/>,
- rmkx=\E>\E[?1l, rmso=\E[m$<2/>, rmul=\E[m$<2/>, rs1=\E>,
- sc=\E7, sgr0=\E[m$<2/>, smkx=\E=\E[?1h, smso=\E[7m$<2/>,
- smul=\E[4m$<2/>,
+ clear=\E[;H\E[2J$<50/>, cr=\r, cub1=^H, cud1=\n,
+ cuf1=\E[C$<2/>, cup=\E[%i%p1%d;%p2%dH$<5/>,
+ cuu1=\E[A$<2/>, dch1=\E[1P$<7/>, dl1=\E[1M$<9/>,
+ ed=\E[J$<50/>, el=\E[K$<3/>, home=\E[H, ht=^I,
+ ich1=\E[1@$<7/>, il1=\E[1L$<9/>, is2=\E[1;24r\E[24;1H,
+ kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+ kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, nel=\r\n,
+ rev=\E[7m$<2/>, rf=/usr/share/tabset/vt100,
+ ri=\EM$<5/>, rmkx=\E>\E[?1l, rmso=\E[m$<2/>,
+ rmul=\E[m$<2/>, rs1=\E>, sgr0=\E[m$<2/>, smkx=\E=\E[?1h,
+ smso=\E[7m$<2/>, smul=\E[4m$<2/>, use=ansi+csr,
# From: Rick Thomas <ihnp4!btlunix!rbt>
# (xtalk: I added <rmam>/<smam> based on the init string.
@@ -23725,9 +24040,8 @@ xtalk|IBM PC with xtalk communication program (versions up to 3.4),
am, mir, msgr, xon,
cols#80, it#8, lines#24, vt#3, xmc#1,
acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, clear=\E[H\E[J$<50>, cr=\r, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C$<2>,
- cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA,
+ bel=^G, clear=\E[H\E[J$<50>, cr=\r, cub1=^H, cud1=\n,
+ cuf1=\E[C$<2>, cup=\E[%i%p1%d;%p2%dH$<5>,
cuu1=\E[A$<2>, dl1=\E[M$<99>, ed=\E[J$<50>, el=\E[K$<3>,
el1=\E[1K$<3>, enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH,
il1=\E[L$<99>, ind=\n, kbs=^H, kcub1=\EOD, kcud1=\EOB,
@@ -23735,7 +24049,7 @@ xtalk|IBM PC with xtalk communication program (versions up to 3.4),
rmkx=\E[?1l\E>, rmso=\E[m\s,
rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sgr0=\E[m,
smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m\s,
- tbc=\E[3g, use=vt100+fnkeys,
+ tbc=\E[3g, use=ansi+local, use=vt100+fnkeys,
# The official PC terminal emulator program of the AT&T Product Centers.
# Note - insert mode commented out - doesn't seem to work on AT&T PC.
@@ -23754,24 +24068,24 @@ simterm|attpc running simterm,
#
# (diablo1620: removed <if=/usr/share/tabset/xerox1720>, no such file -- esr)
-diablo1620|diablo1720|diablo450|ipsi|diablo 1620,
+diablo1620|diablo1720|diablo450|ipsi|Diablo 1620,
hc, os,
cols#132, it#8,
cub1=^H, cud1=\n, cuu1=\E\n, hd=\ED, hpa=\E\011%i%p1%c,
ht=^I, hts=\E1, hu=\EU, kbs=^H, tbc=\E2,
-diablo1620-m8|diablo1640-m8|diablo 1620 w/8 column left margin,
+diablo1620-m8|diablo1640-m8|Diablo 1620 w/8 column left margin,
cols#124,
is2=\r \E9, use=diablo1620,
# (diablo1640: removed <if=/usr/share/tabset/xerox1730>, no such file -- esr)
-diablo1640|diablo1730|diablo1740|diablo630|x1700|diablo|xerox|diablo 1640,
+diablo1640|diablo1730|diablo1740|diablo630|x1700|diablo|xerox|Diablo 1640,
bel=^G, rmso=\E&, rmul=\ER, smso=\EW, smul=\EE,
use=diablo1620,
# (diablo1640-lm: removed <if=/usr/share/tabset/xerox1730-lm>, no such
# file -- esr)
-diablo1640-lm|diablo-lm|xerox-lm|diablo 1640 with indented left margin,
+diablo1640-lm|diablo-lm|xerox-lm|Diablo 1640 with indented left margin,
cols#124,
rmso=\E&, rmul=\ER, smso=\EW, smul=\EE, use=diablo1620,
-diablo1740-lm|630-lm|1730-lm|x1700-lm|diablo 1740 printer,
+diablo1740-lm|630-lm|1730-lm|x1700-lm|Diablo 1740 printer,
use=diablo1640-lm,
# DTC 382 with VDU. Has no <ed> so we fake it with <el>. Standout
# <smso=^P\s\002^PF> works but won't go away without dynamite <rmso=^P\s\0>.
@@ -23804,7 +24118,7 @@ gsi|mystery gsi terminal,
cols#132,
bel=^G, cr=\r, cub1=^H, cud1=\n, cuu1=^Z, hd=\Eh, ht=^I, hu=\EH,
ind=\n,
-aj830|aj832|aj|anderson jacobson,
+aj830|aj832|aj|Anderson Jacobson,
hc, os,
bel=^G, cr=\r, cub1=^H, cud1=\n, cuu1=\E7, hd=\E9, hu=\E8,
ind=\n,
@@ -23821,7 +24135,7 @@ aj510|Anderson-Jacobson model 510,
smul=\E"U,
# From: <cbosg!ucbvax!pur-ee!cincy!chris> Thu Aug 20 09:09:18 1981
# This is incomplete, but it's a start.
-nec5520|nec|spinwriter|nec 5520,
+nec5520|nec|spinwriter|NEC 5520,
hc, os,
cols#132, it#8,
bel=^G, cr=\r, cub1=^H, cud1=\n, cuu1=\E9, ff=^L,
@@ -23832,8 +24146,8 @@ qume5|qume|Qume Sprint 5,
cols#80, it#8,
bel=^G, cr=\r, cub1=^H, cud1=\n, cuu1=^Z, ff=^L, hd=\Eh, ht=^I,
hts=\E1, hu=\EH, ind=\n, kbs=^H, tbc=\E3,
-# I suspect the xerox 1720 is the same as the diablo 1620.
-xerox1720|x1720|x1750|xerox 1720,
+# I suspect the Xerox 1720 is the same as the Diablo 1620.
+xerox1720|x1720|x1750|Xerox 1720,
hc, os,
cols#132, it#8,
bel=^G, cr=\r, cub1=^H, cud1=\n, ff=^L, ht=^I, hts=\E1, ind=\n,
@@ -23861,9 +24175,16 @@ cops10|cops|cops-10|cops 10,
cup=\020%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ed=^W, el=^V,
ind=\n, kbs=^H, kcub1=^H, kcud1=\n, kcuf1=^L, kcuu1=^K,
khome=^Y,
+
+# http://www.bitsavers.org/pdf/datapro/alphanumeric_terminals/Datapro_C25_Datagraphix.pdf
+#
+# DatagraphiX, Inc.
+# (a subsidiary of General Dynamics),
+# P.O. Box 82449, San Diego, California 92138.
+#
# (d132: removed duplicate :ic=\E5:,
# merged in capabilities from a BRL entry -- esr)
-d132|datagraphix|datagraphix 132a,
+d132|datagraphix|DatagraphiX 132a,
da, db, in,
cols#80, lines#30,
bel=^G, clear=^L, cnorm=\Em\En, cr=\r, cub1=^H, cud1=\n,
@@ -23871,7 +24192,7 @@ d132|datagraphix|datagraphix 132a,
dch1=\E6, home=\ET, ht=^I, ich1=\E5, il1=\E3, ind=\n, kbs=^H,
kcub1=^H, kcud1=\n, nel=\r\n, ri=\Ew,
# The d800 was an early portable terminal from c.1984-85 that looked a lot
-# like the original Compaq `lunchbox' portable (but no handle). It had a vt220
+# like the original Compaq `lunchbox' portable (but no handle). It had a VT220
# mode (which is what this entry looks like) and several other lesser-known
# emulations.
d800|Direct 800/A,
@@ -23893,17 +24214,13 @@ digilog|digilog 333,
# The DWK was a terminal manufactured in the Soviet Union c.1986
dwk|dwk-vt|dwk terminal,
am,
- cols#80, it#8, lines#24,
- acsc=+\^\,Q-S.M0\177`+a\:f'g#h#i#jXkClJmFnNo~qUs_tEuPv
- \\wKxW~_,
- bel=^G, clear=\EH\EJ, cr=\r, cub1=^H, cud1=\n, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EP,
- ed=\EJ, el=\EK, home=\EH, ht=^I, ich1=\EQ, ind=\n, kbs=^?,
- kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\Ee,
- kf1=\Ef1, kf10=\Ef0, kf2=\Ef2, kf3=\Ef3, kf4=\Ef4, kf5=\Ef5,
- kf6=\Ef6, kf7=\Ef7, kf8=\Ef8, kf9=\Ef9, kich1=\Ed, knp=\Eh,
- kpp=\Eg, nel=\r\n, rev=\ET, ri=\ES, rmacs=\EG, rmso=\EX,
- sgr0=\EX, smacs=\EF, smso=\ET,
+ acsc=+\^\,Q-S.M0\177`+a:f'g#h#i#jXkClJmFnNo~qUs_tEuPv\\wKxW~
+ _,
+ clear=\EH\EJ, cub1=^H, cud1=\n, dch1=\EP, ich1=\EQ, kbs=^?,
+ kdch1=\Ee, kf1=\Ef1, kf10=\Ef0, kf2=\Ef2, kf3=\Ef3, kf4=\Ef4,
+ kf5=\Ef5, kf6=\Ef6, kf7=\Ef7, kf8=\Ef8, kf9=\Ef9, kich1=\Ed,
+ knp=\Eh, kpp=\Eg, rev=\ET, ri=\ES, rmacs=\EG, rmso=\EX,
+ sgr0=\EX, smacs=\EF, smso=\ET, use=vt52-basic,
env230|envision230|envision 230 graphics terminal,
xenl@,
enacs@, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, rmacs@,
@@ -23949,17 +24266,16 @@ opus3n1+|Esprit Opus3n1+ in wy60 mode with ANSI arrow keys,
ed=\EY$<100>, el=\ET, fsl=\r, home=\036$<2>, ht=\011$<5>,
hts=\E1, if=/usr/share/tabset/std, il1=\EE$<4>, ind=\n,
ip=$<3>,
- is2=\E`\:\Ee(\EO\Ee6\Ec41\E~4\Ec21\Ed/\Ezz&\E[A\177\Ezz'\E[B
+ is2=\E`:\Ee(\EO\Ee6\Ec41\E~4\Ec21\Ed/\Ezz&\E[A\177\Ezz'\E[B
\177\Ezz(\E[D\177\Ezz)\E[C\177\Ezz<\E[Q\177\Ezz`\E[F
\177\EA1*\EZH12,
- kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kdch1=\EW, kdl1=\ER, ked=\EY,
- kel=\ET, kend=\E[F, kent=\E7, kf1=^A@\r, kf10=^AI\r,
- kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r,
- kf16=^AO\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
- kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
- kich1=\EQ, kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er,
- mc0=\EP, mc4=^T, mc5=^R, nel=\r\n$<3>,
+ kHOM=\E{, kcbt=\EI, kdch1=\EW, kdl1=\ER, ked=\EY, kel=\ET,
+ kend=\E[F, kent=\E7, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r,
+ kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, kf16=^AO\r,
+ kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
+ kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\EQ,
+ kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er, mc0=\EP,
+ mc4=^T, mc5=^R, nel=\r\n$<3>,
pfloc=\EZ2%p1%{63}%+%c%p2%s\177,
pfx=\EZ1%p1%{63}%+%c%p2%s\177,
pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E), ri=\Ej$<7>,
@@ -23973,7 +24289,8 @@ opus3n1+|Esprit Opus3n1+ in wy60 mode with ANSI arrow keys,
smcup=\Ezz&\E[A\177\Ezz'\E[B\177\Ezz(\E[D\177\Ezz)\E[C\177
\Ezz<\E[Q\177,
smir=\Eq, smln=\EA10, smxon=\Ec21, tbc=\E0, tsl=\Ez(,
- uc=\EG8\EG0, use=adm+sgr,
+ uc=\EG8\EG0, use=ansi+arrows, use=adm+sgr,
+
teletec|Teletec Datascreen,
OTbs, am,
cols#80, lines#24,
@@ -24008,15 +24325,14 @@ teletec|Teletec Datascreen,
v3220|LANPAR Vision II model 3220/3221/3222,
OTbs, am, mir, xenl,
cols#80, it#8, lines#24,
- clear=\E[H\E[J, cub1=^H, cud1=\E[B, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
- ed=\E[J, el=\E[K, ht=^I, il1=\E[L,
- is2=\E>\E[?3l\E[?7h\E[?8h\E[p, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kf0=\E[1~, kf1=\E[2~, kf2=\E[3~,
- kf3=\E[4~, kf4=\E[5~, kf5=\E[6~, kf6=\E[OP, kf7=\E[OQ,
- kf8=\E[OR, kf9=\E[OS, khome=\E[H, ri=\EM, rmam=\E[?7l,
- rmir=\E[4l, rmkx=\E>, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
- smam=\E[?7h, smir=\E[4h, smkx=\E=, smso=\E[7m, smul=\E[4m,
+ cub1=^H, cup=\E[%i%p1%d;%p2%dH, dch1=\E[P, dl1=\E[M, ht=^I,
+ il1=\E[L, is2=\E>\E[?3l\E[?7h\E[?8h\E[p, kcub1=\E[D,
+ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf0=\E[1~, kf1=\E[2~,
+ kf2=\E[3~, kf3=\E[4~, kf4=\E[5~, kf5=\E[6~, kf6=\E[OP,
+ kf7=\E[OQ, kf8=\E[OR, kf9=\E[OS, khome=\E[H, ri=\EM,
+ rmam=\E[?7l, rmir=\E[4l, rmkx=\E>, rmso=\E[m, rmul=\E[m,
+ sgr0=\E[m, smam=\E[?7h, smir=\E[4h, smkx=\E=, smso=\E[7m,
+ smul=\E[4m, use=ansi+erase, use=ansi+local1,
######## ICH/ICH1 VERSUS RMIR/SMIR
#
# Some non-curses applications get confused if both ich/ich1 and rmir/smir
@@ -24785,7 +25101,7 @@ v3220|LANPAR Vision II model 3220/3221/3222,
# differences, noted in
# https://invisible-island.net/ncurses/ncurses-netbsd.html
#
-# ncurses makes explicit checks for a few user-definable capabilities: AX,
+# ncurses makes explicit checks for a few user-definable capabilities: AX, E3,
# RGB, U8, XM, which are documented in the user_caps(5) manual page.
#
#### SCREEN Extensions:
@@ -24838,6 +25154,19 @@ v3220|LANPAR Vision II model 3220/3221/3222,
#
#### XTERM Extensions:
#
+# For a discussion of "xterm", "xterm-256color" as values for TERM, see
+# https://invisible-island.net/ncurses/ncurses.faq.html#xterm_generic
+# https://invisible-island.net/ncurses/ncurses.faq.html#xterm_256color
+#
+# For xterm control sequences, see
+# https://invisible-island.net/xterm/ctlseqs/ctlseqs.html
+#
+# For function-keys with modifiers, see
+# https://invisible-island.net/ncurses/ncurses.faq.html#modified_keys
+#
+# For a discussion of "bracketed paste", see
+# https://invisible-island.net/xterm/xterm-paste64.html
+#
# Most of the xterm extensions are for function-keys. Since xterm patch #94 (in
# 1999), xterm has supported shift/control/alt/meta modifiers which produce
# additional function-key strings. Some other developers copied the feature,
@@ -24852,7 +25181,20 @@ v3220|LANPAR Vision II model 3220/3221/3222,
# kDC3 kDC4 kDC5 kDC6 kDC7 kDN kDN3 kDN4 kDN5 kDN6 kDN7 kEND3 kEND4 kEND5 kEND6
# kEND7 kHOM3 kHOM4 kHOM5 kHOM6 kHOM7 kIC3 kIC4 kIC5 kIC6 kIC7 kLFT3 kLFT4
# kLFT5 kLFT6 kLFT7 kNXT3 kNXT4 kNXT5 kNXT6 kNXT7 kPRV3 kPRV4 kPRV5 kPRV6 kPRV7
-# kRIT3 kRIT4 kRIT5 kRIT6 kRIT7 kUP kUP3 kUP4 kUP5 kUP6 kUP7 ka2 kb1 kb3 kc2
+# kRIT3 kRIT4 kRIT5 kRIT6 kRIT7 kUP kUP3 kUP4 kUP5 kUP6 kUP7 kxIN kxOUT ka2 kb1
+# kb3 kc2
+#
+# Bracketed paste is described with these capabilities in vim:
+#
+# BE enables bracketed paste
+# BD disables bracketed paste
+# PS is sent before the pasted text
+# PE is sent after the pasted text
+#
+# vim also uses these names for xterm focus:
+#
+# fe enables focus events
+# fd disables focus events
#
# Here are the other xterm-related extensions which are used in this file:
#
@@ -24863,12 +25205,21 @@ v3220|LANPAR Vision II model 3220/3221/3222,
# Ms modifies the selection/clipboard. Its parameters are
# p1 = the storage unit (clipboard, selection or cut buffer)
# p2 = the base64-encoded clipboard content.
+# RV requests the terminal to report secondary device attributes (i.e, version).
+# rv shows the format of the terminal responses, as a regular expression.
# Se resets the cursor style to the terminal power-on default.
# Ss is a string capability with one numeric parameter. It is used to set the
# cursor style as described by the DECSCUSR function to a block or
# underline.
# TS is a string capability which acts like "tsl", but uses no parameter and
# goes to the first column of the "status line".
+# XF is set/true for terminals which support the xterm focus-in/focus-out
+# escape sequences sent from the terminal to the host when private mode
+# 1004 is set. Those are defined as kxIN and kxOUT, to take advantage of
+# ncurses keypad mode to interpret them like a function key. Because the
+# 1004 mode is usually combined with other flags to set the mouse protocol,
+# this flag provides an application with the information that the focus
+# mode is assumed to be set, e.g., in XM.
# XM is a string capability which overrides ncurses's built-in string which
# enables/disables xterm mouse mode.
# xm shows the format of the mouse responses. Parameters:
@@ -24882,9 +25233,12 @@ v3220|LANPAR Vision II model 3220/3221/3222,
# p8 = x-ordinate ending region
# Other extensions, used in xm:
# %u = UTF-8
+# XR requests the terminal to report its version as a free-format string.
+# xr shows the format of the terminal responses, as a regular expression.
#
#### Miscellaneous extensions:
#
+# csr clears the status line
# gsbom/grbom are used to enable/disable real bold (not intensity bright) mode.
# This was implemented for the Hurd.
# rmxx/smxx describes the ECMA-48 strikeout/crossed-out attributes, as an
@@ -24894,6 +25248,8 @@ v3220|LANPAR Vision II model 3220/3221/3222,
# E3 clears the terminal's scrollback buffer. This was implemented in the
# Linux 3.0 kernel as a security feature. It matches a feature which was
# added in xterm patch #107.
+# NQ denotes a terminal which does not support the standard query/response used
+# in u6/u7 (cursor position) and u8/u9 (device attributes).
# U8 is a numeric capability which denotes a terminal emulator which does not
# support VT100 SI/SO when processing UTF-8 encoding. Set this to a nonzero
# value to enable it.
@@ -24974,7 +25330,7 @@ v3220|LANPAR Vision II model 3220/3221/3222,
# * Replaced the translated BBN BitGraph entries with purpose-built
# ones from AT&T's SVr3.
# * Replaced the AT&T entries with AT&T's official terminfos.
-# * Added teleray 16, vc415, cops10.
+# * Added Teleray 16, vc415, cops10.
# * Merged in many individual capabilities from SCO terminfo files.
# 9.4.3 (Mon Mar 13 02:37:53 EST 1995):
# * Typo fixes.
@@ -24987,7 +25343,7 @@ v3220|LANPAR Vision II model 3220/3221/3222,
# * Replaced Qume QVT and Freedom-series entries with purpose-built
# terminfo entries.
# * Enhanced vt220, tvi910, tvi924, hpterm, hp2645, adm42, tek
-# and dg200 entries using caps from from SCO.
+# and dg200 entries using caps from SCO.
# * Added the usual set of function-key mappings to ANSI entry.
# * Corrected xterm's function-key capabilities.
# 9.4.5 (Tue Mar 28 14:27:49 EST 1995):
@@ -25010,7 +25366,7 @@ v3220|LANPAR Vision II model 3220/3221/3222,
# * Added synertek, apple-soroc, ibmpc, pc-venix, pc-coherent, xtalk,
# adm42-nl, pc52, gs6300, xerox820, uts30.
# * Pull SCO's padding into vi200 entry.
-# * Improved capabilities for tvi4107 and other Televideo and Viewpoint
+# * Improved capabilities for tvi4107 and other TeleVideo and Viewpoint
# entries merged in from SCO's descriptions.
# * Fixed old-style prefix padding on zen50, h1500.
# * Moved old superbee entry to superbee-xsb, pulled in new superbee
@@ -26738,7 +27094,7 @@ v3220|LANPAR Vision II model 3220/3221/3222,
# 2018-09-29
# + corrected acsc for tvi950 -TD
# + remove bogus kf0 from tvi950 -TD
-# + added function-key definitions to agree with Televideo 950 manual -TD
+# + added function-key definitions to agree with TeleVideo 950 manual -TD
# + add bel to tvi950 -TD
# + add shifted function-keys to regent60 -TD
# + renumber regent40 function-keys to match manual -TD
@@ -26772,7 +27128,7 @@ v3220|LANPAR Vision II model 3220/3221/3222,
# + add/use xterm+keypad in xterm-new (report by Alain D D Williams) -TD
# + update terminator entry -TD
# + remove hard-tabs from ti703 (report by Robert Clausecker)
-# + add Smol/Rmol for tmux, vte-2018 -Nicholas Marriott
+# + add Smol/Rmol for mintty, vte-2018 -Nicholas Marriott
#
# 2019-06-01
# + add rs1 to konsole, mlterm -TD
@@ -26920,4 +27276,238 @@ v3220|LANPAR Vision II model 3220/3221/3222,
# + add/use xterm+nofkeys -TD
# + move use of ecma+italics from xterm-basic to xterm+nofkeys -TD
#
+# 2021-02-27
+# + remove a duplicate "use" in xterm-vt220 -TD
+#
+# 2021-03-14
+# + correct use-ordering in some xterm-direct flavors -TD
+#
+# 2021-03-20
+# + add hterm, hterm-256color (Mike Frysinger)
+#
+# 2021-06-26
+# + use default colors in pccon "op" -TD
+# + correct rmacs/smacs in aaa+dec, aaa+rv -TD
+# + add hpterm-color2 and hp98550-color (Martin Trusler)
+#
+# 2021-07-17
+# + correct typo in "vip" comments (report by Nick Black), reviewed this
+# against Glink manual -TD
+# + fill in some missing pieces for pccon, to make it comparable to the
+# vt220 entry -TD
+#
+# 2021-07-24
+# + trim "flash" from pccon+base -TD
+# + revert change for aaa+rv -TD
+# + add workaround for Windows Terminal's problems with CR/LF mapping to
+# ms-terminal (patch by Juergen Pfeifer).
+# + review/update current Windows Terminal vs ms-terminal -TD
+#
+# 2021-07-31
+# + add extensions in xterm+tmux and ecma+strikeout to ms-terminal,
+# but cancel the non-working Cr and Ms capabilities -TD
+# + add foot and foot-direct -TD
+#
+# 2021-08-15
+# + fix missing "%d" for setaf/setab code 8-15 in xterm+direct16 (report
+# by Florian Weimer) -TD
+#
+# 2021-08-16
+# + corrected tsl capability for terminator -TD
+#
+# 2021-09-04
+# + modify linux3.0 entry to reflect default mapping of shift-tab by
+# kbd 1.14 (report by Jan Engelhardt) -TD
+#
+# 2021-09-11
+# + add testing note for xterm-{hp|sco|sun} -TD
+# + corrected description for ansi.sys-old -TD
+# + add xterm+nopcfkeys, to fill in keys for xterm-hp, xterm-sun -TD
+# + use hp+arrows in a few places -TD
+# + use hp+pfk-cr in a few places -TD
+#
+# 2021-09-21
+# + add kbeg to xterm+keypad to accommodate termcap applications -TD
+# + add smglp and smgrp to vt420+lrmm, to provide useful data for the
+# "tabs" +m option -TD
+#
+# 2021-10-09
+# + fill in some details for infoton -TD
+# + fix spelling/consistency in several descriptions -TD
+# + use vt420+lrmm in vt420 -TD
+#
+# 2021-10-13
+# + trim some redundant definitions -TD
+#
+# 2021-11-13
+# + add xterm+sl-alt, use that in foot+base (report by Jonas Grosse
+# Sundrup) -TD
+#
+# 2021-11-20
+# + add dim, ecma+strikeout to st-0.6 -TD
+#
+# 2021-11-27
+# + fix errata in description fields (report by Eric Lindblad) -TD
+# + add x10term+sl, aixterm+sl, ncr260vp+sl, ncr260vp+vt, wyse+sl -TD
+#
+# 2022-01-23
+# + update kitty -TD
+#
+# 2022-03-12
+# + add xterm+acs building-block -TD
+# + add xterm-p370, for use in older terminals -TD
+# + add dec+sl to xterm-new, per patch #371 -TD
+# + add mosh and mosh-256color -TD
+#
+# 2022-03-19
+# + add xgterm -TD
+# + correct setal in mintty/tmux entries, add to vte-2018 (report by
+# Robert Lange)
+# + add blink to vte-2018 (report by Robert Lange)
+#
+# 2022-03-26
+# + update teken -TD
+# + add teken-16color, teken-vt and teken-sc -TD
+# + add a few missing details for vte-2018 (report by Robert Lange) -TD
+#
+# 2022-03-27
+# + make description-fields distinct -TD
+#
+# 2022-04-30
+# + modify samples for xterm mouse 1002/1003 modes to use 1006 mode, and
+# also provide for focus in/out responses -TD
+#
+# 2022-05-28
+# + expanded notes for teken/syscons -TD
+#
+# 2022-06-04
+# + remove u6-u9 from teken-2018 -TD
+# + set "xterm-new" to "xterm-p370", add "xterm-p371" -TD
+#
+# 2022-06-18
+# + revise kon/kon2/jfbterm to undo "linux2.6" change to
+# smacs/rmacs/enacs (Debian #1012800) -TD
+# + amended note for att610+cvis0, as per documentation for att610,
+# att620, att730 -TD
+#
+# 2022-06-25
+# + correct dsl in dec+sl (report by Rajeev Pillai) -TD
+# + add/use ansi+cpr, decid+cpr -TD
+#
+# 2022-07-03
+# + use NQ to flag entries where the terminal does not support query and
+# response -TD
+# + use ansi+enq and decid+cpr in cases where the terminal probably
+# supported the u6-u9 extension -TD
+# + add/use apollo+vt132, xterm+alt47 -TD
+#
+# 2022-08-27
+# + modify nsterm to use xterm+alt1049 (report by Paul Handly) -TD
+# + modify putty to use xterm+alt1049 -TD
+#
+# 2022-12-24
+# + add/use bracketed+paste to help identify terminals supporting this
+# xterm feature (prompted by discussion with Bram Moolenaar) -TD
+#
+# 2022-12-29
+# + correct PS vs PE names in bracketed+paste (report by Bram Moolenaar)
+# -TD
+#
+# 2023-01-07
+# + add comment to bracketed+paste explaining that vim patch 9.0.1117 is
+# needed for use with the updated xterm descriptions (suggested by Bram
+# Moolenaar).
+# + add RV report+version (suggested by Bram Moolenaar).
+#
+# 2023-01-14
+# + change RV to XR/xr, to avoid conflict with pre-existing usage in vim,
+# to use RV/rv to denote DA2 and its response (discussion with Bram
+# Moolenaar) -TD
+# + add XF flag to xterm+focus so that termcap applications can be aware
+# of terminals which may support focus in/out -TD
+# + use xterm+focus in xterm-p370 and tmux -TD
+#
+# 2023-01-28
+# + document XF, kxIN and kxOUT -TD
+# + add note on sun/wscons/cmdtool/shelltool -TD
+#
+# 2023-04-01
+# + remove DECCOLM+DECSCLM from foot (patch by Daniel Ekloef).
+#
+# 2023-04-08
+# + add xterm+focus to alacritty+common (patch by Christian Duerr).
+#
+# 2023-05-08
+# + add mode 1004 to xterm+sm+1006 from xterm #380 -TD
+#
+# 2023-06-05
+# + add xterm+focus to foot+base (patch by Daniel Ekloef).
+#
+# 2023-07-08
+# + add linux+kbs for terminals which imitate xterm's behavior with
+# Linux -TD
+#
+# 2023-07-15
+# + mention E3 in regard to user_caps(5) -TD
+#
+# 2023-08-12
+# + add/use putty+cursor to reflect amending of modified cursor-keys in
+# 2021 -TD
+# + add ecma+strikeout to putty -TD
+#
+# 2023-10-21
+# + use oldxterm+sm+1006 in vte-2014 (report by Benno Schulenberg) -TD
+# + add ansi+apparrows -TD
+#
+# 2023-10-28
+# + move xterm focus mode 1004 from xterm+sm+1006 into xterm+focus as
+# fe/fd capabilities, like vim (vim-pr #13440).
+#
+# 2023-11-11
+# + used "infocmp -u" to help trim redundant capabilities -TD
+#
+# 2023-12-09
+# + remove xterm+sm+1006 from tmux (Debian #1057688).
+# + used "infocmp -u" to help trim redundant capabilities -TD
+#
+# 2023-12-16
+# + used "infocmp -u" to help trim redundant capabilities -TD
+#
+# 2023-12-30
+# + add ms-vt100-16color, winconsole -TD
+# + add rio, rio-direct -TD
+# + add mostlike -TD
+# + add wezterm, contour -TD
+#
+# 2024-01-06
+# + use ansi+arrows, ansi+apparrows, ansi+csr, ansi+erase, ansi+idc,
+# ansi+idc1, ansi+idl, ansi+idl1, ansi+inittabs to trim -TD
+#
+# 2024-01-07
+# + restore padding for wy520* and vt320-k311 (report by Sven Joachim).
+#
+# 2024-01-13
+# + use ansi+local, ansi+local1, ansi+pp, ansi+rca, ansi+rca2, ansi+sgr
+# to trim -TD
+#
+# 2024-01-14
+# + use ansi+sgrbold, ansi+sgrdim, ansi+sgrso, ansi+sgrul, ansi+tabs
+# ecma+color, ecma+sgr, vt100+4bsd, vt100+pfkeys, vt220+pcedit
+# xterm+256color, xterm+acs, xterm+nopcfkeys, xterm+pcf2 to trim -TD
+#
+# 2024-01-27
+# + amend change to z39-a (report by Sven Joachim).
+# + use xterm+nopcfkeys, vt52-basic, dec+pp, dec+sl, vt52+arrows,
+# hp+pfk+cr, klone+acs, klone+color, klone+sgr, ncr160wy50+pp
+# to trim -TD
+# + NetBSD-related fixes for x68k and wsvt52 (patch by Thomas Klausner)
+#
+# 2024-02-11
+# + add vt100+noapp, vt100+noapp+pc, xterm+app+pc, xterm+decedit from
+# xterm #389 -TD
+#
+# 2024-03-09
+# + modify xgterm to work around line-drawing bug -TD
+# + use CSI 3J in vte-2017 (report by Sven Joachim)
+#
######## SHANTIH! SHANTIH! SHANTIH!
diff --git a/mk-0th.awk b/mk-0th.awk
index f97549e48845..366224309112 100644
--- a/mk-0th.awk
+++ b/mk-0th.awk
@@ -1,6 +1,6 @@
-# $Id: mk-0th.awk,v 1.23 2020/02/02 23:34:34 tom Exp $
+# $Id: mk-0th.awk,v 1.24 2021/03/20 11:44:48 tom Exp $
##############################################################################
-# Copyright 2020 Thomas E. Dickey #
+# Copyright 2020,2021 Thomas E. Dickey #
# Copyright 1998-2010,2012 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -129,8 +129,10 @@ BEGIN {
printf "C_SRC ="
if ( $2 == "lib" )
found = 1
- else
+ else if ( $2 == "c++" )
found = 2
+ else
+ found = 3
}
if ( libname == "c++" || libname == "c++w" ) {
srcname = sprintf("%s/%s.cc", $3, $1);
@@ -159,6 +161,10 @@ END {
show_list(ticlib, count_ticlib, list_ticlib);
show_list(termlib, count_termlib, list_termlib);
}
+ else if ( found == 2 )
+ {
+ make_lintlib(libname, "$(C_SRC)");
+ }
else
{
print ""
diff --git a/mk-1st.awk b/mk-1st.awk
index 74bc2ebe8384..6a5eafab26cf 100644
--- a/mk-1st.awk
+++ b/mk-1st.awk
@@ -1,6 +1,6 @@
-# $Id: mk-1st.awk,v 1.109 2020/08/31 23:49:24 tom Exp $
+# $Id: mk-1st.awk,v 1.125 2023/04/22 15:49:59 tom Exp $
##############################################################################
-# Copyright 2018,2020 Thomas E. Dickey #
+# Copyright 2018-2021,2023 Thomas E. Dickey #
# Copyright 1998-2016,2017 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -36,6 +36,8 @@
# traces ("all" or "DEBUG", to control whether tracing is compiled in)
# MODEL (e.g., "DEBUG", uppercase; toupper is not portable)
# CXX_MODEL (e.g., "DEBUG", uppercase)
+# LIB_SUFFIX (e.g., "", "w", "t", "tw")
+# USE_LIB_SUFFIX (e.g., "", "w", "t", "tw")
# model (directory into which we compile, e.g., "obj")
# prefix (e.g., "lib", for Unix-style libraries)
# suffix (e.g., "_g.a", for debug libraries)
@@ -51,6 +53,7 @@
# DoLinks ("yes", "reverse" or "no", flag to add symbolic links)
# rmSoLocs ("yes" or "no", flag to add extra clean target)
# ldconfig (path for this tool, if used)
+# make_phony ("yes" if the make-program accepts ".PHONY" directive.
# overwrite ("yes" or "no", flag to add link to libcurses.a
# depend (optional dependencies for all objects, e.g, ncurses_cfg.h)
# host (cross-compile host, if any)
@@ -59,7 +62,7 @@
# Notes:
# CLIXs nawk does not like underscores in command-line variable names.
# Mixed-case variable names are ok.
-# HP/UX requires shared libraries to have executable permissions.
+# HP-UX requires shared libraries to have executable permissions.
#
function is_ticlib() {
return ( subset ~ /^ticlib$/ );
@@ -266,6 +269,15 @@ function in_subset(value) {
check = " " check " ";
return index(check,value);
}
+function trim_suffix(value) {
+ if (USE_LIB_SUFFIX != "" && length(value) > length(USE_LIB_SUFFIX)) {
+ check = substr(value, 1 + length(value) - length(USE_LIB_SUFFIX));
+ if (check == USE_LIB_SUFFIX) {
+ value = substr(value, 1, length(value) - length(USE_LIB_SUFFIX));
+ }
+ }
+ return value;
+}
BEGIN {
TOOL_PREFIX = "";
found = 0;
@@ -275,6 +287,8 @@ BEGIN {
using = 0
if (subset == "none") {
using = 1
+ print ""
+ print "# generated by mk-1st.awk"
} else if (in_subset($2) > 0) {
if (using == 0) {
if (found == 0) {
@@ -289,28 +303,32 @@ BEGIN {
}
print ""
printf "# generated by mk-1st.awk (subset=%s)\n", subset
- printf "# name: %s\n", name
- printf "# traces: %s\n", traces
- printf "# MODEL: %s\n", MODEL
- printf "# CXX_MODEL: %s\n", CXX_MODEL
- printf "# model: %s\n", model
- printf "# prefix: %s\n", prefix
- printf "# suffix: %s\n", suffix
- printf "# subset: %s\n", subset
- printf "# driver: %s\n", driver
- printf "# ShlibVer: %s\n", ShlibVer
- printf "# ShlibVerInfix: %s\n", ShlibVerInfix
- printf "# SymLink: %s\n", SymLink
- printf "# TermlibRoot: %s\n", TermlibRoot
- printf "# TermlibSuffix: %s\n", TermlibSuffix
- printf "# ReLink: %s\n", ReLink
- printf "# ReRanlib: %s\n", ReRanlib
- printf "# DoLinks: %s\n", DoLinks
- printf "# rmSoLocs: %s\n", rmSoLocs
- printf "# ldconfig: %s\n", ldconfig
- printf "# overwrite: %s\n", overwrite
- printf "# depend: %s\n", depend
- printf "# host: %s\n", host
+ printf "# name: %s\n", name
+ printf "# traces: %s\n", traces
+ printf "# MODEL: %s\n", MODEL
+ printf "# CXX_MODEL: %s\n", CXX_MODEL
+ printf "# LIB_SUFFIX: %s\n", LIB_SUFFIX
+ printf "# USE_LIB_SUFFIX: %s\n", USE_LIB_SUFFIX
+ printf "# model: %s\n", model
+ printf "# prefix: %s\n", prefix
+ printf "# suffix: %s\n", suffix
+ printf "# subset: %s\n", subset
+ printf "# driver: %s\n", driver
+ printf "# ShlibVer: %s\n", ShlibVer
+ printf "# ShlibVerInfix: %s\n", ShlibVerInfix
+ printf "# SymLink: %s\n", SymLink
+ printf "# TermlibRoot: %s\n", TermlibRoot
+ printf "# TermlibSuffix: %s\n", TermlibSuffix
+ printf "# ReLink: %s\n", ReLink
+ printf "# ReRanlib: %s\n", ReRanlib
+ printf "# DoLinks: %s\n", DoLinks
+ printf "# rmSoLocs: %s\n", rmSoLocs
+ printf "# ldconfig: %s\n", ldconfig
+ printf "# make_phony: %s\n", make_phony
+ printf "# overwrite: %s\n", overwrite
+ printf "# depend: %s\n", depend
+ printf "# host: %s\n", host
+ printf "# libtool_version: %s\n", libtool_version
print ""
}
using = 1
@@ -336,8 +354,7 @@ BEGIN {
&& ( $1 != "link_test" ) \
&& ( $2 == "lib" \
|| $2 == "progs" \
- || $2 == "c++" \
- || $2 == "tack" ))
+ || $2 == "c++" ))
{
if ( found == 0 )
{
@@ -458,7 +475,15 @@ END {
else if ( MODEL == "LIBTOOL" )
{
end_name = lib_name;
- printf "../lib/%s : $(%s_OBJS)\n", lib_name, OBJS
+ use_name = trim_suffix(TermlibRoot) USE_LIB_SUFFIX
+ printf "../lib/%s : \\\n", lib_name
+ if ( (name != use_name ) && ( index(name, "++") == 0 ) && ( index(name, "tic") == 1 || index(name, "ncurses") == 1 ) ) {
+ printf "\t\t../lib/lib%s.la \\\n", use_name;
+ if ( index(name, "tic") == 1 && index(TermlibRoot, "ncurses") != 1 ) {
+ printf "\t\t../lib/lib%s%s.la \\\n", "ncurses", USE_LIB_SUFFIX;
+ }
+ }
+ printf "\t\t$(%s_OBJS)\n", OBJS
if ( is_ticlib() ) {
which_list = "TICS_LIST";
} else if ( is_termlib() ) {
@@ -470,16 +495,31 @@ END {
printf "\t\t-o %s $(%s_OBJS:$o=.lo) \\\n", lib_name, OBJS;
printf "\t\t-rpath $(libdir) \\\n";
printf "\t\t%s $(NCURSES_MAJOR):$(NCURSES_MINOR) $(LT_UNDEF) $(%s) $(LDFLAGS)\n", libtool_version, which_list;
+ if ( make_phony == "yes" ) {
+ print ""
+ printf ".PHONY :\tinstall.%s\n", trim_suffix(name);
+ }
print ""
print "install \\"
print "install.libs \\"
- printf "install.%s :: $(DESTDIR)$(libdir) ../lib/%s\n", name, lib_name
+ printf "install.%s :: \\\n", trim_suffix(name);
+ printf "\t\t$(DESTDIR)$(libdir) \\\n";
+ use_name = TermlibRoot USE_LIB_SUFFIX
+ if ( (name != use_name ) && ( index(name, "++") == 0 ) && ( index(name, "tic") == 1 || index(name, "ncurses") == 1 ) ) {
+ if ( trim_suffix(TermlibRoot) != trim_suffix(name) ) {
+ printf "\t\tinstall.%s \\\n", trim_suffix(TermlibRoot);
+ }
+ if ( index(name, "tic") == 1 && index(TermlibRoot, "ncurses") != 1 && trim_suffix(name) != "ncurses" ) {
+ printf "\t\tinstall.%s \\\n", "ncurses";
+ }
+ }
+ printf "\t\t../lib/%s\n", lib_name
printf "\t@echo installing ../lib/%s as $(DESTDIR)$(libdir)/%s\n", lib_name, lib_name
printf "\tcd ../lib; $(LIBTOOL_INSTALL) $(INSTALL) %s $(DESTDIR)$(libdir)\n", lib_name
print ""
print "uninstall \\"
print "uninstall.libs \\"
- printf "uninstall.%s ::\n", name
+ printf "uninstall.%s ::\n", trim_suffix(name)
printf "\t@echo uninstalling $(DESTDIR)$(libdir)/%s\n", lib_name
printf "\t-@$(LIBTOOL_UNINSTALL) rm -f $(DESTDIR)$(libdir)/%s\n", lib_name
}
diff --git a/mk-2nd.awk b/mk-2nd.awk
index 3fe7ed3d22a0..4493bcf5ed23 100644
--- a/mk-2nd.awk
+++ b/mk-2nd.awk
@@ -1,6 +1,6 @@
-# $Id: mk-2nd.awk,v 1.22 2020/08/31 23:49:17 tom Exp $
+# $Id: mk-2nd.awk,v 1.23 2021/06/17 21:20:30 tom Exp $
##############################################################################
-# Copyright 2020 Thomas E. Dickey #
+# Copyright 2020,2021 Thomas E. Dickey #
# Copyright 1998-2004,2005 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -75,7 +75,7 @@ BEGIN {
print "# generated by mk-2nd.awk"
printf "# model: %s\n", model
printf "# MODEL: %s\n", MODEL
- printf "# echo: %s\n", echo
+ printf "# echo: %s\n", echo
printf "# subset: %s\n", subset
printf "# crenames: %s\n", crenames
printf "# cxxrenames: %s\n", cxxrenames
diff --git a/mk-hdr.awk b/mk-hdr.awk
index 2fa5941ea6ed..7608afedb01e 100644
--- a/mk-hdr.awk
+++ b/mk-hdr.awk
@@ -1,6 +1,6 @@
-# $Id: mk-hdr.awk,v 1.7 2020/08/31 23:48:44 tom Exp $
+# $Id: mk-hdr.awk,v 1.8 2021/06/17 21:20:30 tom Exp $
##############################################################################
-# Copyright 2020 Thomas E. Dickey #
+# Copyright 2020,2021 Thomas E. Dickey #
# Copyright 2007-2010,2013 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -69,8 +69,8 @@ BEGIN {
if (found == 0) {
print ""
print "# generated by mk-hdr.awk"
- printf "# subset: %s\n", subset
- printf "# compat: %s\n", compat
+ printf "# subset: %s\n", subset
+ printf "# compat: %s\n", compat
print ""
found = 1
}
diff --git a/ncurses/Makefile.in b/ncurses/Makefile.in
index 8f2254d3a0d4..ae198df675a4 100644
--- a/ncurses/Makefile.in
+++ b/ncurses/Makefile.in
@@ -1,6 +1,6 @@
-# $Id: Makefile.in,v 1.178 2021/01/23 20:34:00 tom Exp $
+# $Id: Makefile.in,v 1.184 2024/01/19 12:00:00 tom Exp $
##############################################################################
-# Copyright 2018-2020,2021 Thomas E. Dickey #
+# Copyright 2018-2022,2024 Thomas E. Dickey #
# Copyright 1998-2017,2018 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -193,10 +193,11 @@ HEADER_DEPS = @INTERNALS_HDR@ \
$(INCDIR)/nc_win32.h \
$(INCDIR)/term_entry.h \
$(srcdir)/curses.priv.h \
- $(srcdir)/new_pair.h
+ $(srcdir)/new_pair.h \
+ $(srcdir)/term.priv.h
TEST_DEPS = ../lib/@LIB_PREFIX@ncurses@DFT_DEP_SUFFIX@
-TEST_ARGS = @LDFLAGS_STATIC@ @TEST_ARGS@ @LDFLAGS_SHARED@
+TEST_ARGS = @LDFLAGS_STATIC@ @TEST_ARGS@ @LDFLAGS_SHARED@
TEST_LDFLAGS = @LD_MODEL@ $(TEST_ARGS) @LIBS@ @LOCAL_LDFLAGS@ @LDFLAGS@
TEST_PROGS = \
@@ -217,9 +218,20 @@ wide = $(srcdir)/widechar
win32con = $(srcdir)/win32con
################################################################################
+
+@MAKE_PHONY@.PHONY : all
+@MAKE_PHONY@.PHONY : check
+@MAKE_PHONY@.PHONY : clean
+@MAKE_PHONY@.PHONY : distclean
+@MAKE_PHONY@.PHONY : libs
+@MAKE_PHONY@.PHONY : mostlyclean
+@MAKE_PHONY@.PHONY : realclean
+@MAKE_PHONY@.PHONY : sources
+@MAKE_PHONY@.PHONY : test_progs
+
all libs :: $(AUTO_SRC) ../lib $(LIBRARIES)
-@CHECK_BUILD@all libs :: report_offsets$(BUILD_EXEEXT)
+@CHECK_BUILD@all libs :: report_offsets$(BUILD_EXEEXT)
sources: $(AUTO_SRC)
@@ -233,13 +245,13 @@ $(DESTDIR)$(libdir) :
$(SHELL) -e $(tinfo)/MKfallback.sh $(TERMINFO) $(TERMINFO_SRC) "$(TIC_PATH)" "$(INFOCMP_PATH)" $(FALLBACK_LIST) >$@
./lib_gen.c : $(base)/MKlib_gen.sh ../include/curses.h
- $(SHELL) -e $(base)/MKlib_gen.sh "$(CPP) $(CPPFLAGS)" "$(AWK)" generated <../include/curses.h >$@
+ FGREP="@FGREP@" $(SHELL) -e $(base)/MKlib_gen.sh "$(CPP) $(CPPFLAGS)" "$(AWK)" generated <../include/curses.h >$@
-init_keytry.h: make_keys$(BUILD_EXEEXT) keys.list
+init_keytry.h : make_keys$(BUILD_EXEEXT) keys.list
./make_keys$(BUILD_EXEEXT) keys.list > $@
keys.list : $(tinfo)/MKkeys_list.sh
- AWK=$(AWK) $(SHELL) $(tinfo)/MKkeys_list.sh $(CAPLIST) | LC_ALL=C sort >$@
+ AWK=$(AWK) USE_SIGWINCH=@cf_cv_enable_sigwinch@ $(SHELL) $(tinfo)/MKkeys_list.sh $(CAPLIST) | LC_ALL=C sort >$@
make_keys$(BUILD_EXEEXT) : \
build.priv.h \
@@ -276,7 +288,7 @@ report_offsets$(BUILD_EXEEXT) : \
$(SHELL) -e $(tinfo)/MKuserdefs.sh $(AWK) $(USE_BIG_STRINGS) $(CAPLIST) > $@
./lib_keyname.c: keys.list $(base)/MKkeyname.awk
- $(AWK) -f $(base)/MKkeyname.awk bigstrings=$(USE_BIG_STRINGS) keys.list > $@
+ $(AWK) -f $(base)/MKkeyname.awk use_sigwinch=@cf_cv_enable_sigwinch@ bigstrings=$(USE_BIG_STRINGS) keys.list > $@
./codes.c: $(tinfo)/MKcodes.awk
$(AWK) -f $(tinfo)/MKcodes.awk bigstrings=$(USE_BIG_STRINGS) $(CAPLIST) >$@
@@ -317,10 +329,11 @@ realclean :: distclean
( cd ../include && $(MAKE) $(TOP_MFLAGS) )
# These rules build test-programs for the modules that have test-drivers
+@MAKE_PHONY@.PHONY : test_progs
test_progs : $(TEST_PROGS)
./link_test.c : $(base)/MKlib_gen.sh ../include/curses.h
- $(SHELL) -e $(base)/MKlib_gen.sh "$(CPP) $(CPPFLAGS)" "$(AWK)" implemented <../include/curses.h >$@
+ FGREP="@FGREP@" $(SHELL) -e $(base)/MKlib_gen.sh "$(CPP) $(CPPFLAGS)" "$(AWK)" implemented <../include/curses.h >$@
captoinfo$x : $(tinfo)/captoinfo.c $(TEST_DEPS)
@ECHO_LD@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DMAIN $(tinfo)/captoinfo.c $(TEST_LDFLAGS)
@@ -347,6 +360,23 @@ report_hashing$x : \
$(srcdir)/report_hashing.c $(TEST_DEPS)
@ECHO_LD@ $(CC) -o $@ $(CFLAGS_DEFAULT) report_hashing.c $(TEST_LDFLAGS)
+# Verify that each header-file can be compiled without including another.
+@MAKE_PHONY@.PHONY : check_headers
+check_headers:
+ @$(SHELL) -c "for header in *.h;\
+ do \
+ echo \"** testing \$${header}\" ; \
+ echo \"#include <\$${header}>\" >headers.c; \
+ echo \"int main(void) { return 0; }\" >>headers.c; \
+ $(CC) -c $(CFLAGS) $(CPPFLAGS) headers.c; \
+ done"
+ -@rm -f headers.*
+
+@MAKE_PHONY@.PHONY : check_objects
+check_objects: test_progs
+
+check :: check_headers check_objects
+
###############################################################################
# The remainder of this file is automatically generated during configuration
###############################################################################
diff --git a/ncurses/README.IZ b/ncurses/README.IZ
index 25058a98ac89..a9e52ea5baff 100644
--- a/ncurses/README.IZ
+++ b/ncurses/README.IZ
@@ -1,5 +1,5 @@
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey --
+-- Copyright 2020,2021 Thomas E. Dickey --
-- Copyright 2002,2006 Free Software Foundation, Inc. --
-- --
-- Permission is hereby granted, free of charge, to any person obtaining a --
@@ -26,7 +26,7 @@
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
--- $Id: README.IZ,v 1.4 2020/02/02 23:34:34 tom Exp $
+-- $Id: README.IZ,v 1.5 2021/06/17 21:20:30 tom Exp $
---------------------------------------------------------------------
Here is the patch. I did no testing whatsoever with event watching
@@ -35,7 +35,7 @@ this, probably lynx ;-), but the code looks working "the normal way".
I had no way to test that the poll() branch compiles/works...
-Here is the API:
+Here is the API:
*) two new functions wgetch_events() wgetstrn_event() are introduced,
which allow an event-watch specification given as the last argument;
diff --git a/ncurses/base/MKlib_gen.sh b/ncurses/base/MKlib_gen.sh
index 3829eff8eecb..f0ac0452e8ef 100755
--- a/ncurses/base/MKlib_gen.sh
+++ b/ncurses/base/MKlib_gen.sh
@@ -2,10 +2,10 @@
#
# MKlib_gen.sh -- generate sources from curses.h macro definitions
#
-# ($Id: MKlib_gen.sh,v 1.68 2020/08/23 00:02:29 tom Exp $)
+# ($Id: MKlib_gen.sh,v 1.73 2022/10/01 13:14:20 tom Exp $)
#
##############################################################################
-# Copyright 2018,2020 Thomas E. Dickey #
+# Copyright 2018-2021,2022 Thomas E. Dickey #
# Copyright 1998-2016,2017 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -69,12 +69,21 @@ USE="$3"
# A patch discussed here:
# https://gcc.gnu.org/ml/gcc-patches/2014-06/msg02185.html
+#
# introduces spurious #line markers into the preprocessor output. The result
# appears in gcc 5.0 and (with modification) in 5.1, making it necessary to
# determine if we are using gcc, and if so, what version because the proposed
# solution uses a nonstandard option.
+#
+# As illustrated in
+# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60723
+#
+# gcc developers chose to ignore the problems with this, and summarized those
+# as "intriguing problems" in
+# https://gcc.gnu.org/gcc-5/porting_to.html
+
PRG=`echo "$1" | "$AWK" '{ sub(/^[ ]*/,""); sub(/[ ].*$/, ""); print; }' || exit 0`
-FSF=`("$PRG" --version 2>/dev/null || exit 0) | fgrep "Free Software Foundation" | head -n 1`
+FSF=`("$PRG" --version 2>/dev/null || exit 0) | ${FGREP-grep -F} "Free Software Foundation" | head -n 1`
ALL=`"$PRG" -dumpversion 2>/dev/null || exit 0`
ONE=`echo "$ALL" | sed -e 's/[^0-9].*$//'`
if test -n "$FSF" && test -n "$ALL" && test -n "$ONE" ; then
@@ -92,7 +101,8 @@ ED4=sed4_${PID}.sed
AW1=awk1_${PID}.awk
AW2=awk2_${PID}.awk
TMP=gen__${PID}.c
-trap "rm -f $ED1 $ED2 $ED3 $ED4 $AW1 $AW2 $TMP" 0 1 2 3 15
+trap "rm -f $ED1 $ED2 $ED3 $ED4 $AW1 $AW2 $TMP; exit 1" 1 2 3 15
+trap "rm -f $ED1 $ED2 $ED3 $ED4 $AW1 $AW2 $TMP" 0
ALL=$USE
if test "$USE" = implemented ; then
@@ -461,8 +471,9 @@ END {
if ( value !~ /P_POUNDC/ ) {
gsub(/[ \t]+/," ",value);
sub(/^[0-9a-zA-Z_]+ /,"",value);
- sub(/^\* /,"",value);
- gsub(/[0-9a-zA-Z_]+ \* /,"",value);
+ sub(/^[*][ \t]*/,"",value);
+ gsub("struct[ \t]*[0-9a-zA-Z_]+[ \t]*[*]","",value);
+ gsub(/[0-9a-zA-Z_]+[ \t]*[*][ \t]*/,"",value);
gsub(/ (const) /," ",value);
gsub(/ (int|short|attr_t|chtype|wchar_t|NCURSES_BOOL|NCURSES_OUTC|NCURSES_OUTC_sp|va_list) /," ",value);
gsub(/ void /,"",value);
diff --git a/ncurses/base/MKunctrl.awk b/ncurses/base/MKunctrl.awk
index 9a2a6db63876..e5362bd60d15 100644
--- a/ncurses/base/MKunctrl.awk
+++ b/ncurses/base/MKunctrl.awk
@@ -1,6 +1,6 @@
-# $Id: MKunctrl.awk,v 1.29 2020/02/02 23:34:34 tom Exp $
+# $Id: MKunctrl.awk,v 1.30 2024/02/03 21:09:14 tom Exp $
##############################################################################
-# Copyright 2020 Thomas E. Dickey #
+# Copyright 2020,2024 Thomas E. Dickey #
# Copyright 1998-2012,2017 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -144,7 +144,7 @@ END {
print "\tint check = (int) ChCharOf(ch);"
print "\tconst char *result;"
print ""
- print "(void) sp;"
+ print "\t(void) sp;"
print "\tif (check >= 0 && check < (int)SIZEOF(unctrl_table)) {"
print "#if NCURSES_EXT_FUNCS"
print "\t\tif ((sp != 0)"
@@ -155,6 +155,7 @@ END {
print "\t\telse"
print "\t\tif ((check >= 160)"
print "\t\t && (check < 256)"
+ print "\t\t && !_nc_unicode_locale()"
print "\t\t && ((sp != 0)"
print "\t\t && ((sp->_legacy_coding > 0)"
print "\t\t || (sp->_legacy_coding == 0"
diff --git a/ncurses/base/key_defined.c b/ncurses/base/key_defined.c
index 25d5a674e1b8..147e5fe2db93 100644
--- a/ncurses/base/key_defined.c
+++ b/ncurses/base/key_defined.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2023 Thomas E. Dickey *
* Copyright 2003-2006,2009 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -32,8 +32,9 @@
****************************************************************************/
#include <curses.priv.h>
+#include <tic.h>
-MODULE_ID("$Id: key_defined.c,v 1.10 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: key_defined.c,v 1.11 2023/06/24 15:36:32 tom Exp $")
static int
find_definition(TRIES * tree, const char *str)
@@ -41,7 +42,7 @@ find_definition(TRIES * tree, const char *str)
TRIES *ptr;
int result = OK;
- if (str != 0 && *str != '\0') {
+ if (VALID_STRING(str) && *str != '\0') {
for (ptr = tree; ptr != 0; ptr = ptr->sibling) {
if (UChar(*str) == UChar(ptr->ch)) {
if (str[1] == '\0' && ptr->child != 0) {
diff --git a/ncurses/base/keyok.c b/ncurses/base/keyok.c
index 8e0b9629db20..945228aa8035 100644
--- a/ncurses/base/keyok.c
+++ b/ncurses/base/keyok.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2020,2021 Thomas E. Dickey *
* Copyright 1998-2012,2014 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -34,13 +34,13 @@
#include <curses.priv.h>
-MODULE_ID("$Id: keyok.c,v 1.16 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: keyok.c,v 1.17 2021/06/17 21:26:02 tom Exp $")
/*
* Enable (or disable) ncurses' interpretation of a keycode by adding (or
* removing) the corresponding 'tries' entry.
*
- * Do this by storing a second tree of tries, which records the disabled keys.
+ * Do this by storing a second tree of tries, which records the disabled keys.
* The simplest way to copy is to make a function that returns the string (with
* nulls set to 0200), then use that to reinsert the string into the
* corresponding tree.
diff --git a/ncurses/base/lib_addch.c b/ncurses/base/lib_addch.c
index 378c2881faac..a14bfd3b0e05 100644
--- a/ncurses/base/lib_addch.c
+++ b/ncurses/base/lib_addch.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019-2020,2021 Thomas E. Dickey *
+ * Copyright 2019-2021,2022 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -37,7 +37,7 @@
#include <curses.priv.h>
#include <ctype.h>
-MODULE_ID("$Id: lib_addch.c,v 1.137 2021/02/20 22:24:34 tom Exp $")
+MODULE_ID("$Id: lib_addch.c,v 1.141 2022/06/12 15:16:41 tom Exp $")
static const NCURSES_CH_T blankchar = NewChar(BLANK_TEXT);
@@ -140,7 +140,7 @@ newline_forces_scroll(WINDOW *win, NCURSES_SIZE_T *ypos)
* wrapped the cursor. We don't do anything with this flag except set it when
* wrapping, and clear it whenever we move the cursor. If we try to wrap at
* the lower-right corner of a window, we cannot move the cursor (since that
- * wouldn't be legal). So we return an error (which is what SVr4 does).
+ * wouldn't be legal). So we return an error (which is what SVr4 does).
* Unlike SVr4, we can successfully add a character to the lower-right corner
* (Solaris 2.6 does this also, however).
*/
@@ -321,20 +321,29 @@ waddch_literal(WINDOW *win, NCURSES_CH_T ch)
int len = _nc_wacs_width(CharOf(ch));
int i;
int j;
- wchar_t *chars;
if (len == 0) { /* non-spacing */
if ((x > 0 && y >= 0)
|| (win->_maxx >= 0 && win->_cury >= 1)) {
- if (x > 0 && y >= 0)
- chars = (win->_line[y].text[x - 1].chars);
- else
- chars = (win->_line[y - 1].text[win->_maxx].chars);
+ NCURSES_CH_T *dst;
+ wchar_t *chars;
+ if (x > 0 && y >= 0) {
+ for (j = x - 1; j >= 0; --j) {
+ if (!isWidecExt(win->_line[y].text[j])) {
+ win->_curx = (NCURSES_SIZE_T) j;
+ break;
+ }
+ }
+ dst = &(win->_line[y].text[j]);
+ } else {
+ dst = &(win->_line[y - 1].text[win->_maxx]);
+ }
+ chars = dst->chars;
for (i = 0; i < CCHARW_MAX; ++i) {
if (chars[i] == 0) {
TR(TRACE_VIRTPUT,
- ("added non-spacing %d: %x",
- x, (int) CharOf(ch)));
+ ("adding non-spacing %s (level %d)",
+ _tracech_t(CHREF(ch)), i));
chars[i] = CharOf(ch);
break;
}
@@ -410,9 +419,9 @@ waddch_literal(WINDOW *win, NCURSES_CH_T ch)
testwrapping:
);
- TR(TRACE_VIRTPUT, ("cell (%ld, %ld..%d) = %s",
- (long) win->_cury, (long) win->_curx, x - 1,
- _tracech_t(CHREF(ch))));
+ TR(TRACE_VIRTPUT, ("cell (%d, %d..%d) = %s",
+ win->_cury, win->_curx, x - 1,
+ _tracech_t(CHREF(line->text[win->_curx]))));
if (x > win->_maxx) {
return wrap_to_next_line(win);
diff --git a/ncurses/base/lib_addstr.c b/ncurses/base/lib_addstr.c
index a1e8829dd7f5..a3753af0d53e 100644
--- a/ncurses/base/lib_addstr.c
+++ b/ncurses/base/lib_addstr.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2022,2023 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -45,7 +45,7 @@
#include <curses.priv.h>
-MODULE_ID("$Id: lib_addstr.c,v 1.57 2020/12/05 20:06:19 tom Exp $")
+MODULE_ID("$Id: lib_addstr.c,v 1.62 2023/11/21 21:47:23 tom Exp $")
NCURSES_EXPORT(int)
waddnstr(WINDOW *win, const char *astr, int n)
@@ -55,15 +55,18 @@ waddnstr(WINDOW *win, const char *astr, int n)
T((T_CALLED("waddnstr(%p,%s,%d)"), (void *) win, _nc_visbufn(astr, n), n));
- if (win && (str != 0)) {
+ if (win && (str != 0) && (n != 0)) {
+ bool explicit = (n > 0);
+
TR(TRACE_VIRTPUT | TRACE_ATTRS,
("... current %s", _traceattr(WINDOW_ATTRS(win))));
code = OK;
- if (n < 0)
- n = INT_MAX;
- TR(TRACE_VIRTPUT, ("str is not null, length = %d", n));
- while ((*str != '\0') && (n-- > 0)) {
+ TR(TRACE_VIRTPUT, ("str is not null, length = %d",
+ (explicit ? n : (int) strlen(str))));
+ if (!explicit)
+ n = INT_MAX;
+ while ((n-- > 0) && (*str != '\0')) {
NCURSES_CH_T ch;
TR(TRACE_VIRTPUT, ("*str = %#o", UChar(*str)));
SetChar(ch, UChar(*str++), A_NORMAL);
@@ -143,7 +146,7 @@ wadd_wchnstr(WINDOW *win, const cchar_t *astr, int n)
_nc_viscbuf(astr, n),
n));
- if (!win)
+ if (!win || !astr)
returnCode(ERR);
y = win->_cury;
@@ -227,15 +230,18 @@ waddnwstr(WINDOW *win, const wchar_t *str, int n)
T((T_CALLED("waddnwstr(%p,%s,%d)"), (void *) win, _nc_viswbufn(str, n), n));
- if (win && (str != 0)) {
+ if (win && (str != 0) && (n != 0)) {
+ bool explicit = (n > 0);
+
TR(TRACE_VIRTPUT | TRACE_ATTRS,
("... current %s", _traceattr(WINDOW_ATTRS(win))));
code = OK;
- if (n < 0)
- n = INT_MAX;
- TR(TRACE_VIRTPUT, ("str is not null, length = %d", n));
- while ((*str != L('\0')) && (n-- > 0)) {
+ TR(TRACE_VIRTPUT, ("str is not null, length = %d",
+ (explicit ? n : (int) wcslen(str))));
+ if (!explicit)
+ n = INT_MAX;
+ while ((n-- > 0) && (*str != L('\0'))) {
NCURSES_CH_T ch;
TR(TRACE_VIRTPUT, ("*str[0] = %#lx", (unsigned long) *str));
SetChar(ch, *str++, A_NORMAL);
diff --git a/ncurses/base/lib_bkgd.c b/ncurses/base/lib_bkgd.c
index 23effc7cd141..4f99080835e8 100644
--- a/ncurses/base/lib_bkgd.c
+++ b/ncurses/base/lib_bkgd.c
@@ -37,7 +37,7 @@
#include <curses.priv.h>
-MODULE_ID("$Id: lib_bkgd.c,v 1.62 2021/02/13 20:06:54 tom Exp $")
+MODULE_ID("$Id: lib_bkgd.c,v 1.63 2021/05/08 14:58:12 tom Exp $")
static const NCURSES_CH_T blank = NewChar(BLANK_TEXT);
@@ -64,7 +64,7 @@ wbkgrndset(WINDOW *win, const ARG_CH_T ch)
{
int pair;
- if ((pair = GetPair(win->_nc_bkgd)) != 0)
+ if (GetPair(win->_nc_bkgd) != 0)
SET_WINDOW_PAIR(win, 0);
if ((pair = GetPair(CHDEREF(ch))) != 0)
SET_WINDOW_PAIR(win, pair);
diff --git a/ncurses/base/lib_clreol.c b/ncurses/base/lib_clreol.c
index d6cb9b261283..0b6b0ff8f7de 100644
--- a/ncurses/base/lib_clreol.c
+++ b/ncurses/base/lib_clreol.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2001,2009 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -41,7 +41,7 @@
#include <curses.priv.h>
-MODULE_ID("$Id: lib_clreol.c,v 1.23 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: lib_clreol.c,v 1.24 2021/10/23 19:06:01 tom Exp $")
NCURSES_EXPORT(int)
wclrtoeol(WINDOW *win)
@@ -61,7 +61,7 @@ wclrtoeol(WINDOW *win)
* If we have just wrapped the cursor, the clear applies to the
* new line, unless we are at the lower right corner.
*/
- if ((win->_flags & _WRAPPED) != 0
+ if (IS_WRAPPED(win) != 0
&& y < win->_maxy) {
win->_flags &= ~_WRAPPED;
}
@@ -70,7 +70,7 @@ wclrtoeol(WINDOW *win)
* There's no point in clearing if we're not on a legal
* position, either.
*/
- if ((win->_flags & _WRAPPED) != 0
+ if (IS_WRAPPED(win)
|| y > win->_maxy
|| x > win->_maxx)
returnCode(ERR);
diff --git a/ncurses/base/lib_color.c b/ncurses/base/lib_color.c
index 907e9743fcda..f001b22413fe 100644
--- a/ncurses/base/lib_color.c
+++ b/ncurses/base/lib_color.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2020,2021 Thomas E. Dickey *
+ * Copyright 2018-2022,2023 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -49,7 +49,7 @@
#define CUR SP_TERMTYPE
#endif
-MODULE_ID("$Id: lib_color.c,v 1.146 2021/02/14 00:17:09 tom Exp $")
+MODULE_ID("$Id: lib_color.c,v 1.150 2023/09/16 16:39:15 tom Exp $")
#ifdef USE_TERM_DRIVER
#define CanChange InfoOf(SP_PARM).canchange
@@ -94,8 +94,6 @@ NCURSES_EXPORT_VAR(int) COLORS = 0;
#define DATA(r,g,b) {r,g,b, 0,0,0, 0}
-#define TYPE_CALLOC(type,elts) typeCalloc(type, (unsigned)(elts))
-
#define MAX_PALETTE 8
#define OkColorHi(n) (((n) < COLORS) && ((n) < maxcolors))
@@ -266,7 +264,7 @@ init_direct_colors(NCURSES_SP_DCL0)
;
}
- if ((n = tigetflag(name)) > 0) {
+ if (tigetflag(name) > 0) {
n = (width + 2) / 3;
result->bits.red = UChar(n);
result->bits.green = UChar(n);
@@ -412,7 +410,7 @@ NCURSES_SP_NAME(start_color) (NCURSES_SP_DCL0)
if (init_direct_colors(NCURSES_SP_ARG)) {
result = OK;
} else {
- SP_PARM->_color_table = TYPE_CALLOC(color_t, maxcolors);
+ TYPE_CALLOC(color_t, maxcolors, SP_PARM->_color_table);
if (SP_PARM->_color_table != 0) {
MakeColorPair(SP_PARM->_color_pairs[0],
default_fg(NCURSES_SP_ARG),
@@ -529,7 +527,7 @@ _nc_reserve_pairs(SCREEN *sp, int want)
have = sp->_pair_limit;
if (sp->_color_pairs == 0) {
- sp->_color_pairs = TYPE_CALLOC(colorpair_t, have);
+ TYPE_CALLOC(colorpair_t, have, sp->_color_pairs);
} else if (have > sp->_pair_alloc) {
#if NCURSES_EXT_COLORS
colorpair_t *next;
@@ -747,7 +745,7 @@ _nc_init_color(SCREEN *sp, int color, int r, int g, int b)
NCURSES_PUTP2("initialize_color",
TIPARM_4(initialize_color, color, r, g, b));
#endif
- sp->_color_defs = max(color + 1, sp->_color_defs);
+ sp->_color_defs = Max(color + 1, sp->_color_defs);
result = OK;
}
@@ -831,7 +829,6 @@ static int
_nc_color_content(SCREEN *sp, int color, int *r, int *g, int *b)
{
int result = ERR;
- int maxcolors;
T((T_CALLED("color_content(%p,%d,%p,%p,%p)"),
(void *) sp,
@@ -840,52 +837,57 @@ _nc_color_content(SCREEN *sp, int color, int *r, int *g, int *b)
(void *) g,
(void *) b));
- if (sp == 0)
- returnCode(result);
-
- maxcolors = MaxColors;
+ if (sp != 0) {
+ int maxcolors = MaxColors;
- if (color < 0 || !OkColorHi(color) || !sp->_coloron) {
- result = ERR;
- } else {
- int c_r, c_g, c_b;
+ if (color >= 0 && OkColorHi(color) && sp->_coloron) {
+ int c_r, c_g, c_b;
- if (sp->_direct_color.value) {
- rgb_bits_t *work = &(sp->_direct_color);
+ if (sp->_direct_color.value) {
+ rgb_bits_t *work = &(sp->_direct_color);
#define max_direct_color(name) ((1 << work->bits.name) - 1)
#define value_direct_color(max) (1000 * ((color >> bitoff) & max)) / max
- int max_r = max_direct_color(red);
- int max_g = max_direct_color(green);
- int max_b = max_direct_color(blue);
+ int max_r = max_direct_color(red);
+ int max_g = max_direct_color(green);
+ int max_b = max_direct_color(blue);
- int bitoff = 0;
+ int bitoff = 0;
- c_b = value_direct_color(max_b);
- bitoff += work->bits.blue;
+ c_b = value_direct_color(max_b);
+ bitoff += work->bits.blue;
- c_g = value_direct_color(max_g);
- bitoff += work->bits.green;
+ c_g = value_direct_color(max_g);
+ bitoff += work->bits.green;
- c_r = value_direct_color(max_r);
+ c_r = value_direct_color(max_r);
- } else {
- c_r = sp->_color_table[color].red;
- c_g = sp->_color_table[color].green;
- c_b = sp->_color_table[color].blue;
- }
+ } else {
+ c_r = sp->_color_table[color].red;
+ c_g = sp->_color_table[color].green;
+ c_b = sp->_color_table[color].blue;
+ }
+ if (r)
+ *r = c_r;
+ if (g)
+ *g = c_g;
+ if (b)
+ *b = c_b;
+
+ TR(TRACE_ATTRS, ("...color_content(%d,%d,%d,%d)",
+ color, c_r, c_g, c_b));
+ result = OK;
+ }
+ }
+ if (result != OK) {
if (r)
- *r = c_r;
+ *r = 0;
if (g)
- *g = c_g;
+ *g = 0;
if (b)
- *b = c_b;
-
- TR(TRACE_ATTRS, ("...color_content(%d,%d,%d,%d)",
- color, c_r, c_g, c_b));
- result = OK;
+ *b = 0;
}
returnCode(result);
}
diff --git a/ncurses/base/lib_delwin.c b/ncurses/base/lib_delwin.c
index 2f0621cf856c..c96e417a9a48 100644
--- a/ncurses/base/lib_delwin.c
+++ b/ncurses/base/lib_delwin.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020-2021,2023 Thomas E. Dickey *
* Copyright 1998-2008,2009 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -43,24 +43,29 @@
#include <curses.priv.h>
-MODULE_ID("$Id: lib_delwin.c,v 1.21 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: lib_delwin.c,v 1.25 2023/10/21 11:12:44 tom Exp $")
static bool
cannot_delete(WINDOW *win)
{
- WINDOWLIST *p;
bool result = TRUE;
-#ifdef USE_SP_WINDOWLIST
- SCREEN *sp = _nc_screen_of(win);
+
+ if (IS_PAD(win)) {
+ result = FALSE;
+ } else {
+ WINDOWLIST *p;
+#if NCURSES_SP_FUNCS && defined(USE_SP_WINDOWLIST)
+ SCREEN *sp = _nc_screen_of(win);
#endif
- for (each_window(SP_PARM, p)) {
- if (&(p->win) == win) {
- result = FALSE;
- } else if ((p->win._flags & _SUBWIN) != 0
- && p->win._parent == win) {
- result = TRUE;
- break;
+ for (each_window(SP_PARM, p)) {
+ if (&(p->win) == win) {
+ result = FALSE;
+ } else if (IS_SUBWIN(&(p->win))
+ && p->win._parent == win) {
+ result = TRUE;
+ break;
+ }
}
}
return result;
@@ -77,15 +82,18 @@ delwin(WINDOW *win)
if (win == 0
|| cannot_delete(win)) {
result = ERR;
+ } else if (IS_PAD(win)) {
+ win->_parent = NULL;
+ result = _nc_freewin(win);
} else {
#if NCURSES_SP_FUNCS
SCREEN *sp = _nc_screen_of(win);
#endif
- if (win->_flags & _SUBWIN)
+ if (IS_SUBWIN(win)) {
touchwin(win->_parent);
- else if (CurScreen(SP_PARM) != 0)
+ } else if (CurScreen(SP_PARM) != 0) {
touchwin(CurScreen(SP_PARM));
-
+ }
result = _nc_freewin(win);
}
_nc_unlock_global(curses);
diff --git a/ncurses/base/lib_dft_fgbg.c b/ncurses/base/lib_dft_fgbg.c
index 95dc0c224035..4dd43bb1bbd0 100644
--- a/ncurses/base/lib_dft_fgbg.c
+++ b/ncurses/base/lib_dft_fgbg.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2014,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -38,7 +38,7 @@
#define CUR SP_TERMTYPE
#endif
-MODULE_ID("$Id: lib_dft_fgbg.c,v 1.30 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: lib_dft_fgbg.c,v 1.31 2021/04/03 22:27:18 tom Exp $")
/*
* Modify the behavior of color-pair 0 so that the library doesn't assume that
@@ -83,7 +83,9 @@ NCURSES_SP_NAME(assume_default_colors) (NCURSES_SP_DCLx int fg, int bg)
bool save = SP_PARM->_default_color;
SP_PARM->_assumed_color = TRUE;
SP_PARM->_default_color = TRUE;
- init_pair(0, (short) fg, (short) bg);
+ NCURSES_SP_NAME(init_pair) (NCURSES_SP_ARGx 0,
+ (short)fg,
+ (short)bg);
SP_PARM->_default_color = save;
}
code = OK;
diff --git a/ncurses/base/lib_echo.c b/ncurses/base/lib_echo.c
index d8f57f292d60..de7832f4afc1 100644
--- a/ncurses/base/lib_echo.c
+++ b/ncurses/base/lib_echo.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2023 Thomas E. Dickey *
* Copyright 1998-2000,2009 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -45,7 +45,7 @@
#include <curses.priv.h>
-MODULE_ID("$Id: lib_echo.c,v 1.9 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: lib_echo.c,v 1.10 2023/04/29 18:57:12 tom Exp $")
NCURSES_EXPORT(int)
NCURSES_SP_NAME(echo) (NCURSES_SP_DCL0)
@@ -53,7 +53,7 @@ NCURSES_SP_NAME(echo) (NCURSES_SP_DCL0)
T((T_CALLED("echo(%p)"), (void *) SP_PARM));
if (0 == SP_PARM)
returnCode(ERR);
- SP_PARM->_echo = TRUE;
+ IsEcho(SP_PARM) = TRUE;
returnCode(OK);
}
@@ -71,7 +71,7 @@ NCURSES_SP_NAME(noecho) (NCURSES_SP_DCL0)
T((T_CALLED("noecho(%p)"), (void *) SP_PARM));
if (0 == SP_PARM)
returnCode(ERR);
- SP_PARM->_echo = FALSE;
+ IsEcho(SP_PARM) = FALSE;
returnCode(OK);
}
diff --git a/ncurses/base/lib_endwin.c b/ncurses/base/lib_endwin.c
index b8a9e4e66a4d..85d2bdbaac05 100644
--- a/ncurses/base/lib_endwin.c
+++ b/ncurses/base/lib_endwin.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2023 Thomas E. Dickey *
* Copyright 1998-2014,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -43,7 +43,7 @@
#include <curses.priv.h>
-MODULE_ID("$Id: lib_endwin.c,v 1.25 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: lib_endwin.c,v 1.28 2023/11/11 21:27:32 tom Exp $")
NCURSES_EXPORT(int)
NCURSES_SP_NAME(endwin) (NCURSES_SP_DCL0)
@@ -52,20 +52,24 @@ NCURSES_SP_NAME(endwin) (NCURSES_SP_DCL0)
T((T_CALLED("endwin(%p)"), (void *) SP_PARM));
- if (SP_PARM) {
+ if (SP_PARM != NULL) {
+ if (SP_PARM->_endwin != ewSuspend) {
#ifdef USE_TERM_DRIVER
- TERMINAL_CONTROL_BLOCK *TCB = TCBOf(SP_PARM);
+ TERMINAL_CONTROL_BLOCK *TCB = TCBOf(SP_PARM);
- SP_PARM->_endwin = ewSuspend;
- if (TCB && TCB->drv && TCB->drv->td_scexit)
- TCB->drv->td_scexit(SP_PARM);
+ SP_PARM->_endwin = ewSuspend;
+ if (TCB && TCB->drv && TCB->drv->td_scexit)
+ TCB->drv->td_scexit(SP_PARM);
#else
- SP_PARM->_endwin = ewSuspend;
- SP_PARM->_mouse_wrap(SP_PARM);
- _nc_screen_wrap();
- _nc_mvcur_wrap(); /* wrap up cursor addressing */
+ SP_PARM->_endwin = ewSuspend;
+ SP_PARM->_mouse_wrap(SP_PARM);
+ _nc_screen_wrap();
+ _nc_mvcur_wrap(); /* wrap up cursor addressing */
#endif
- code = NCURSES_SP_NAME(reset_shell_mode) (NCURSES_SP_ARG);
+ code = OK;
+ }
+ if (NCURSES_SP_NAME(reset_shell_mode) (NCURSES_SP_ARG) == ERR)
+ code = ERR;
}
returnCode(code);
diff --git a/ncurses/base/lib_erase.c b/ncurses/base/lib_erase.c
index e190ebd549ac..aa9437a19ef1 100644
--- a/ncurses/base/lib_erase.c
+++ b/ncurses/base/lib_erase.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2022 Thomas E. Dickey *
* Copyright 1998-2009,2016 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -42,18 +42,18 @@
#include <curses.priv.h>
-MODULE_ID("$Id: lib_erase.c,v 1.19 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: lib_erase.c,v 1.20 2022/09/03 21:40:27 tom Exp $")
NCURSES_EXPORT(int)
werase(WINDOW *win)
{
int code = ERR;
- NCURSES_CH_T blank;
NCURSES_CH_T *start;
T((T_CALLED("werase(%p)"), (void *) win));
if (win) {
+ NCURSES_CH_T blank;
NCURSES_CH_T *sp;
int y;
diff --git a/ncurses/base/lib_freeall.c b/ncurses/base/lib_freeall.c
index 9133d08a7328..75bbe77e3409 100644
--- a/ncurses/base/lib_freeall.c
+++ b/ncurses/base/lib_freeall.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2020,2021 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -40,7 +40,7 @@
extern int malloc_errfd; /* FIXME */
#endif
-MODULE_ID("$Id: lib_freeall.c,v 1.72 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: lib_freeall.c,v 1.76 2021/11/06 21:52:49 tom Exp $")
/*
* Free all ncurses data. This is used for testing only (there's no practical
@@ -78,6 +78,9 @@ NCURSES_SP_NAME(_nc_freeall) (NCURSES_SP_DCL0)
WINDOW *p_win = &(p->win);
bool found = FALSE;
+ if (IS_PAD(p_win))
+ continue;
+
#ifndef USE_SP_WINDOWLIST
if (p->screen != SP_PARM)
continue;
@@ -92,7 +95,7 @@ NCURSES_SP_NAME(_nc_freeall) (NCURSES_SP_DCL0)
#endif
if ((p != q)
- && (q_win->_flags & _SUBWIN)
+ && IS_SUBWIN(q_win)
&& (p_win == q_win->_parent)) {
found = TRUE;
break;
@@ -171,8 +174,6 @@ NCURSES_SP_NAME(_nc_free_and_exit) (NCURSES_SP_DCLx int code)
{
if (SP_PARM) {
delscreen(SP_PARM);
- if (SP_PARM->_term)
- NCURSES_SP_NAME(del_curterm) (NCURSES_SP_ARGx SP_PARM->_term);
}
exit(code);
}
diff --git a/ncurses/base/lib_getch.c b/ncurses/base/lib_getch.c
index 38537591afc0..8e4767918bdd 100644
--- a/ncurses/base/lib_getch.c
+++ b/ncurses/base/lib_getch.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2022,2023 Thomas E. Dickey *
* Copyright 1998-2015,2016 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -44,7 +44,7 @@
#define NEED_KEY_EVENT
#include <curses.priv.h>
-MODULE_ID("$Id: lib_getch.c,v 1.141 2020/09/05 22:50:47 tom Exp $")
+MODULE_ID("$Id: lib_getch.c,v 1.146 2023/04/29 18:57:12 tom Exp $")
#include <fifo_defs.h>
@@ -298,8 +298,8 @@ fifo_push(SCREEN *sp EVENTLIST_2nd(_nc_eventlist * evl))
} else
#endif
#if USE_KLIBC_KBD
- if (NC_ISATTY(sp->_ifd) && sp->_cbreak) {
- ch = _read_kbd(0, 1, !sp->_raw);
+ if (NC_ISATTY(sp->_ifd) && IsCbreak(sp)) {
+ ch = _read_kbd(0, 1, !IsRaw(sp));
n = (ch == -1) ? -1 : 1;
sp->_extended_key = (ch == 0);
} else
@@ -308,20 +308,15 @@ fifo_push(SCREEN *sp EVENTLIST_2nd(_nc_eventlist * evl))
#if defined(USE_TERM_DRIVER)
int buf;
# if defined(EXP_WIN32_DRIVER)
- if (NC_ISATTY(sp->_ifd) && IsTermInfoOnConsole(sp) && sp->_cbreak) {
-# if USE_PTHREADS_EINTR
- if ((pthread_self) && (pthread_kill) && (pthread_equal))
- _nc_globals.read_thread = pthread_self();
-# endif
+ if (NC_ISATTY(sp->_ifd) && IsTermInfoOnConsole(sp) && IsCbreak(sp)) {
+ _nc_set_read_thread(TRUE);
n = _nc_console_read(sp,
_nc_console_handle(sp->_ifd),
&buf);
-# if USE_PTHREADS_EINTR
- _nc_globals.read_thread = 0;
-# endif
+ _nc_set_read_thread(FALSE);
} else
# elif defined(_NC_WINDOWS)
- if (NC_ISATTY(sp->_ifd) && IsTermInfoOnConsole(sp) && sp->_cbreak)
+ if (NC_ISATTY(sp->_ifd) && IsTermInfoOnConsole(sp) && IsCbreak(sp))
n = _nc_mingw_console_read(sp,
_nc_get_handle(sp->_ifd),
&buf);
@@ -334,12 +329,8 @@ fifo_push(SCREEN *sp EVENTLIST_2nd(_nc_eventlist * evl))
int buf;
#endif
unsigned char c2 = 0;
-#if USE_PTHREADS_EINTR
-#if USE_WEAK_SYMBOLS
- if ((pthread_self) && (pthread_kill) && (pthread_equal))
-#endif
- _nc_globals.read_thread = pthread_self();
-#endif
+
+ _nc_set_read_thread(TRUE);
#if defined(EXP_WIN32_DRIVER)
n = _nc_console_read(sp,
_nc_console_handle(sp->_ifd),
@@ -348,9 +339,7 @@ fifo_push(SCREEN *sp EVENTLIST_2nd(_nc_eventlist * evl))
#else
n = (int) read(sp->_ifd, &c2, (size_t) 1);
#endif
-#if USE_PTHREADS_EINTR
- _nc_globals.read_thread = 0;
-#endif
+ _nc_set_read_thread(FALSE);
ch = c2;
#endif /* USE_TERM_DRIVER */
}
@@ -391,7 +380,17 @@ recur_wrefresh(WINDOW *win)
{
#ifdef USE_PTHREADS
SCREEN *sp = _nc_screen_of(win);
- if (_nc_use_pthreads && sp != CURRENT_SCREEN) {
+ bool same_sp;
+
+ if (_nc_use_pthreads) {
+ _nc_lock_global(curses);
+ same_sp = (sp == CURRENT_SCREEN);
+ _nc_unlock_global(curses);
+ } else {
+ same_sp = (sp == CURRENT_SCREEN);
+ }
+
+ if (_nc_use_pthreads && !same_sp) {
SCREEN *save_SP;
/* temporarily switch to the window's screen to check/refresh */
@@ -404,7 +403,7 @@ recur_wrefresh(WINDOW *win)
} else
#endif
if ((is_wintouched(win) || (win->_flags & _HASMOVED))
- && !(win->_flags & _ISPAD)) {
+ && !IS_PAD(win)) {
wrefresh(win);
}
}
@@ -480,8 +479,8 @@ _nc_wgetch(WINDOW *win,
*/
if (head == -1 &&
!sp->_notty &&
- !sp->_raw &&
- !sp->_cbreak &&
+ !IsRaw(sp) &&
+ !IsCbreak(sp) &&
!sp->_called_wgetch) {
char buf[MAXCOLUMNS], *bufp;
@@ -514,13 +513,13 @@ _nc_wgetch(WINDOW *win,
recur_wrefresh(win);
- if (win->_notimeout || (win->_delay >= 0) || (sp->_cbreak > 1)) {
+ if (win->_notimeout || (win->_delay >= 0) || (IsCbreak(sp) > 1)) {
if (head == -1) { /* fifo is empty */
int delay;
TR(TRACE_IEVENT, ("timed delay in wgetch()"));
- if (sp->_cbreak > 1)
- delay = (sp->_cbreak - 1) * 100;
+ if (IsCbreak(sp) > 1)
+ delay = (IsCbreak(sp) - 1) * 100;
else
delay = win->_delay;
@@ -551,7 +550,7 @@ _nc_wgetch(WINDOW *win,
* This is tricky. We only want to get special-key
* events one at a time. But we want to accumulate
* mouse events until either (a) the mouse logic tells
- * us it's picked up a complete gesture, or (b)
+ * us it has picked up a complete gesture, or (b)
* there's a detectable time lapse after one.
*
* Note: if the mouse code starts failing to compose
@@ -639,7 +638,7 @@ _nc_wgetch(WINDOW *win,
* However, we provide the same visual result as Solaris, moving the
* cursor to the left.
*/
- if (sp->_echo && !(win->_flags & _ISPAD)) {
+ if (IsEcho(sp) && !IS_PAD(win)) {
chtype backup = (chtype) ((ch == KEY_BACKSPACE) ? '\b' : ch);
if (backup < KEY_MIN)
wechochar(win, backup);
@@ -648,7 +647,7 @@ _nc_wgetch(WINDOW *win,
/*
* Simulate ICRNL mode
*/
- if ((ch == '\r') && sp->_nl)
+ if ((ch == '\r') && IsNl(sp))
ch = '\n';
/* Strip 8th-bit if so desired. We do this only for characters that
diff --git a/ncurses/base/lib_getstr.c b/ncurses/base/lib_getstr.c
index 7871fb357a62..cac21fc85bd9 100644
--- a/ncurses/base/lib_getstr.c
+++ b/ncurses/base/lib_getstr.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2021,2023 Thomas E. Dickey *
* Copyright 1998-2011,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -42,7 +42,7 @@
#define NEED_KEY_EVENT
#include <curses.priv.h>
-MODULE_ID("$Id: lib_getstr.c,v 1.35 2020/07/18 20:02:24 tom Exp $")
+MODULE_ID("$Id: lib_getstr.c,v 1.39 2023/04/29 19:00:17 tom Exp $")
/*
* This wipes out the last character, no matter whether it was a tab, control
@@ -78,7 +78,7 @@ wgetnstr_events(WINDOW *win,
{
SCREEN *sp = _nc_screen_of(win);
TTY buf;
- bool oldnl, oldecho, oldraw, oldcbreak;
+ TTY_FLAGS save_flags;
char erasec;
char killc;
char *oldstr;
@@ -94,14 +94,11 @@ wgetnstr_events(WINDOW *win,
NCURSES_SP_NAME(_nc_get_tty_mode) (NCURSES_SP_ARGx &buf);
- oldnl = sp->_nl;
- oldecho = sp->_echo;
- oldraw = sp->_raw;
- oldcbreak = sp->_cbreak;
+ save_flags = sp->_tty_flags;
NCURSES_SP_NAME(nl) (NCURSES_SP_ARG);
NCURSES_SP_NAME(noecho) (NCURSES_SP_ARG);
- NCURSES_SP_NAME(noraw) (NCURSES_SP_ARG);
- NCURSES_SP_NAME(cbreak) (NCURSES_SP_ARG);
+ if (!save_flags._raw)
+ NCURSES_SP_NAME(cbreak) (NCURSES_SP_ARG);
erasec = NCURSES_SP_NAME(erasechar) (NCURSES_SP_ARG);
killc = NCURSES_SP_NAME(killchar) (NCURSES_SP_ARG);
@@ -115,7 +112,7 @@ wgetnstr_events(WINDOW *win,
while ((ch = wgetch_events(win, evl)) != ERR) {
/*
* Some terminals (the Wyse-50 is the most common) generate
- * a \n from the down-arrow key. With this logic, it's the
+ * a \n from the down-arrow key. With this logic, it is the
* user's choice whether to set kcud=\n for wgetch();
* terminating *getstr() with \n should work either way.
*/
@@ -123,7 +120,7 @@ wgetnstr_events(WINDOW *win,
|| ch == '\r'
|| ch == KEY_DOWN
|| ch == KEY_ENTER) {
- if (oldecho == TRUE
+ if (save_flags._echo == TRUE
&& win->_cury == win->_maxy
&& win->_scroll)
wechochar(win, (chtype) '\n');
@@ -139,18 +136,18 @@ wgetnstr_events(WINDOW *win,
#endif
if (ch == erasec || ch == KEY_LEFT || ch == KEY_BACKSPACE) {
if (str > oldstr) {
- str = WipeOut(win, y, x, oldstr, str, oldecho);
+ str = WipeOut(win, y, x, oldstr, str, save_flags._echo);
}
} else if (ch == killc) {
while (str > oldstr) {
- str = WipeOut(win, y, x, oldstr, str, oldecho);
+ str = WipeOut(win, y, x, oldstr, str, save_flags._echo);
}
} else if (ch >= KEY_MIN
|| (str - oldstr >= maxlen)) {
NCURSES_SP_NAME(beep) (NCURSES_SP_ARG);
} else {
*str++ = (char) ch;
- if (oldecho == TRUE) {
+ if (save_flags._echo == TRUE) {
int oldy = win->_cury;
if (waddch(win, (chtype) ch) == ERR) {
/*
@@ -160,9 +157,9 @@ wgetnstr_events(WINDOW *win,
*/
win->_flags &= ~_WRAPPED;
waddch(win, (chtype) ' ');
- str = WipeOut(win, y, x, oldstr, str, oldecho);
+ str = WipeOut(win, y, x, oldstr, str, save_flags._echo);
continue;
- } else if (win->_flags & _WRAPPED) {
+ } else if (IS_WRAPPED(win)) {
/*
* If the last waddch forced a wrap &
* scroll, adjust our reference point
@@ -191,11 +188,7 @@ wgetnstr_events(WINDOW *win,
/* Restore with a single I/O call, to fix minor asymmetry between
* raw/noraw, etc.
*/
- sp->_nl = oldnl;
- sp->_echo = oldecho;
- sp->_raw = oldraw;
- sp->_cbreak = oldcbreak;
-
+ sp->_tty_flags = save_flags;
NCURSES_SP_NAME(_nc_set_tty_mode) (NCURSES_SP_ARGx &buf);
*str = '\0';
diff --git a/ncurses/base/lib_insnstr.c b/ncurses/base/lib_insnstr.c
index ff1ae573a576..caec48e8eb70 100644
--- a/ncurses/base/lib_insnstr.c
+++ b/ncurses/base/lib_insnstr.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2022,2023 Thomas E. Dickey *
* Copyright 2004-2009,2016 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -41,7 +41,7 @@
#include <curses.priv.h>
#include <ctype.h>
-MODULE_ID("$Id: lib_insnstr.c,v 1.7 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: lib_insnstr.c,v 1.10 2023/11/21 21:58:03 tom Exp $")
NCURSES_EXPORT(int)
winsnstr(WINDOW *win, const char *s, int n)
@@ -51,7 +51,7 @@ winsnstr(WINDOW *win, const char *s, int n)
T((T_CALLED("winsnstr(%p,%s,%d)"), (void *) win, _nc_visbufn(s, n), n));
- if (win != 0 && str != 0) {
+ if (win != 0 && str != 0 && n != 0) {
SCREEN *sp = _nc_screen_of(win);
#if USE_WIDEC_SUPPORT
/*
@@ -70,6 +70,7 @@ winsnstr(WINDOW *win, const char *s, int n)
init_mb(state);
n3 = mbstowcs(buffer, s, nn);
if (n3 != (size_t) (-1)) {
+ buffer[n3] = '\0';
code = wins_nwstr(win, buffer, (int) n3);
}
free(buffer);
@@ -82,7 +83,7 @@ winsnstr(WINDOW *win, const char *s, int n)
NCURSES_SIZE_T ox = win->_curx;
const unsigned char *cp;
- for (cp = str; (n <= 0 || (cp - str) < n) && *cp; cp++) {
+ for (cp = str; (n < 0 || (cp - str) < n) && *cp; cp++) {
_nc_insert_ch(sp, win, (chtype) UChar(*cp));
}
win->_curx = ox;
diff --git a/ncurses/base/lib_instr.c b/ncurses/base/lib_instr.c
index 2aa0fc32e9f3..221ebd290400 100644
--- a/ncurses/base/lib_instr.c
+++ b/ncurses/base/lib_instr.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020-2021,2023 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -42,7 +42,7 @@
#include <curses.priv.h>
-MODULE_ID("$Id: lib_instr.c,v 1.24 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: lib_instr.c,v 1.26 2023/06/03 12:37:04 tom Exp $")
NCURSES_EXPORT(int)
winnstr(WINDOW *win, char *str, int n)
@@ -66,7 +66,6 @@ winnstr(WINDOW *win, char *str, int n)
cchar_t *cell = &(text[col]);
attr_t attrs;
NCURSES_PAIRS_T pair;
- mbstate_t state;
char *tmp;
if (!isWidecExt(*cell)) {
@@ -79,11 +78,12 @@ winnstr(WINDOW *win, char *str, int n)
bool done = FALSE;
if (getcchar(cell, wch, &attrs, &pair, 0) == OK) {
+ mbstate_t state;
size_t n3;
init_mb(state);
n3 = wcstombs(0, wch, (size_t) 0);
- if (!isEILSEQ(n3) && (n3 != 0)) {
+ if (!isEILSEQ(n3) && (n3 != 0) && (n3 <= MB_LEN_MAX)) {
size_t need = n3 + 10 + (size_t) i;
int have = (int) n3 + i;
diff --git a/ncurses/base/lib_mouse.c b/ncurses/base/lib_mouse.c
index 6caef327a3c0..a03d8b8e1ab0 100644
--- a/ncurses/base/lib_mouse.c
+++ b/ncurses/base/lib_mouse.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2020,2021 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -85,7 +85,7 @@
#define CUR SP_TERMTYPE
#endif
-MODULE_ID("$Id: lib_mouse.c,v 1.192 2021/02/14 00:17:09 tom Exp $")
+MODULE_ID("$Id: lib_mouse.c,v 1.200 2024/02/17 21:13:01 tom Exp $")
#include <tic.h>
@@ -380,7 +380,7 @@ handle_sysmouse(int sig GCC_UNUSED)
}
#endif /* USE_SYSMOUSE */
-#ifndef USE_TERM_DRIVER
+#if !defined(USE_TERM_DRIVER) || defined(EXP_WIN32_DRIVER)
#define xterm_kmous "\033[M"
static void
@@ -419,13 +419,22 @@ init_xterm_mouse(SCREEN *sp)
} else {
int code = tigetnum("XM");
switch (code) {
+#ifdef EXP_XTERM_1005
+ case 1005:
+ /* see "xterm+sm+1005" */
+ sp->_mouse_xtermcap = "\033[?1005;1000%?%p1%{1}%=%th%el%;";
+ sp->_mouse_format = MF_XTERM_1005;
+ break;
+#endif
case 1006:
+ /* see "xterm+sm+1006" */
+ sp->_mouse_xtermcap = "\033[?1006;1000%?%p1%{1}%=%th%el%;";
+ sp->_mouse_format = MF_SGR1006;
break;
default:
- code = 1000;
+ sp->_mouse_xtermcap = "\033[?1000%?%p1%{1}%=%th%el%;";
break;
}
- sp->_mouse_xtermcap = "\033[?1000%?%p1%{1}%=%th%el%;";
}
}
#endif
@@ -433,6 +442,9 @@ init_xterm_mouse(SCREEN *sp)
static void
enable_xterm_mouse(SCREEN *sp, int enable)
{
+ TPUTS_TRACE(enable
+ ? "xterm mouse initialization"
+ : "xterm mouse deinitialization");
#if USE_EMX_MOUSE
sp->_emxmouse_activated = enable;
#else
@@ -441,6 +453,18 @@ enable_xterm_mouse(SCREEN *sp, int enable)
sp->_mouse_active = enable;
}
+#if defined(USE_TERM_DRIVER)
+static void
+enable_win32_mouse(SCREEN *sp, int enable)
+{
+#if defined(EXP_WIN32_DRIVER)
+ enable_xterm_mouse(sp, enable);
+#else
+ sp->_mouse_active = enable;
+#endif
+}
+#endif
+
#if USE_GPM_SUPPORT
static bool
allow_gpm_mouse(SCREEN *sp GCC_UNUSED)
@@ -732,7 +756,8 @@ initialize_mousetype(SCREEN *sp)
#ifdef USE_TERM_DRIVER
CallDriver(sp, td_initmouse);
-#else
+#endif
+#if !defined(USE_TERM_DRIVER) || defined(EXP_WIN32_DRIVER)
/* we know how to recognize mouse events under "xterm" */
if (NonEmpty(key_mouse)) {
init_xterm_mouse(sp);
@@ -751,13 +776,15 @@ _nc_mouse_init(SCREEN *sp)
{
bool result = FALSE;
+ T((T_CALLED("_nc_mouse_init(%p)"), (void *) sp));
+
if (sp != 0) {
if (!sp->_mouse_initialized) {
int i;
sp->_mouse_initialized = TRUE;
- TR(MY_TRACE, ("_nc_mouse_init() called"));
+ TR(MY_TRACE, ("set _mouse_initialized"));
sp->_mouse_eventp = FirstEV(sp);
for (i = 0; i < EV_MAX; i++)
@@ -765,11 +792,11 @@ _nc_mouse_init(SCREEN *sp)
initialize_mousetype(sp);
- T(("_nc_mouse_init() set mousetype to %d", sp->_mouse_type));
+ T(("set _mouse_type to %d", sp->_mouse_type));
}
result = sp->_mouse_initialized;
}
- return result;
+ returnCode(result);
}
/*
@@ -960,6 +987,17 @@ handle_wheel(SCREEN *sp, MEVENT * eventp, int button, int wheel)
PRESS_POSITION(3);
break;
default:
+ /*
+ * case 3 is sent when the mouse buttons are released.
+ *
+ * If the terminal uses xterm mode 1003, a continuous series of
+ * button-release events is sent as the mouse moves around the screen,
+ * or as the wheel mouse is rotated.
+ *
+ * Return false in this case, so that when running in X10 mode, we will
+ * recalculate bstate.
+ */
+ eventp->bstate = REPORT_MOUSE_POSITION;
result = FALSE;
break;
}
@@ -1065,12 +1103,7 @@ decode_xterm_X10(SCREEN *sp, MEVENT * eventp)
int res;
bool result;
-# if USE_PTHREADS_EINTR
-# if USE_WEAK_SYMBOLS
- if ((pthread_self) && (pthread_kill) && (pthread_equal))
-# endif
- _nc_globals.read_thread = pthread_self();
-# endif
+ _nc_set_read_thread(TRUE);
for (grabbed = 0; grabbed < MAX_KBUF; grabbed += (size_t) res) {
/* For VIO mouse we add extra bit 64 to disambiguate button-up. */
@@ -1084,9 +1117,7 @@ decode_xterm_X10(SCREEN *sp, MEVENT * eventp)
if (res == -1)
break;
}
-#if USE_PTHREADS_EINTR
- _nc_globals.read_thread = 0;
-#endif
+ _nc_set_read_thread(FALSE);
kbuf[MAX_KBUF] = '\0';
TR(TRACE_IEVENT,
@@ -1120,12 +1151,7 @@ decode_xterm_1005(SCREEN *sp, MEVENT * eventp)
coords[0] = 0;
coords[1] = 0;
-# if USE_PTHREADS_EINTR
-# if USE_WEAK_SYMBOLS
- if ((pthread_self) && (pthread_kill) && (pthread_equal))
-# endif
- _nc_globals.read_thread = pthread_self();
-# endif
+ _nc_set_read_thread(TRUE);
for (grabbed = 0; grabbed < limit;) {
int res;
@@ -1158,9 +1184,7 @@ decode_xterm_1005(SCREEN *sp, MEVENT * eventp)
break;
}
}
-#if USE_PTHREADS_EINTR
- _nc_globals.read_thread = 0;
-#endif
+ _nc_set_read_thread(FALSE);
TR(TRACE_IEVENT,
("_nc_mouse_inline sees the following xterm data: %s",
@@ -1204,12 +1228,7 @@ read_SGR(SCREEN *sp, SGR_DATA * result)
int marker = 1;
memset(result, 0, sizeof(*result));
-# if USE_PTHREADS_EINTR
-# if USE_WEAK_SYMBOLS
- if ((pthread_self) && (pthread_kill) && (pthread_equal))
-# endif
- _nc_globals.read_thread = pthread_self();
-# endif
+ _nc_set_read_thread(TRUE);
do {
int res;
@@ -1274,9 +1293,7 @@ read_SGR(SCREEN *sp, SGR_DATA * result)
}
++grabbed;
} while (!isFinal(ch));
-#if USE_PTHREADS_EINTR
- _nc_globals.read_thread = 0;
-#endif
+ _nc_set_read_thread(FALSE);
kbuf[++grabbed] = 0;
TR(TRACE_IEVENT,
@@ -1389,11 +1406,14 @@ _nc_mouse_inline(SCREEN *sp)
static void
mouse_activate(SCREEN *sp, int on)
{
+ T((T_CALLED("mouse_activate(%p,%s)"),
+ (void *) SP_PARM, on ? "on" : "off"));
+
if (!on && !sp->_mouse_initialized)
- return;
+ returnVoid;
if (!_nc_mouse_init(sp))
- return;
+ returnVoid;
if (on) {
sp->_mouse_bstate = 0;
@@ -1402,7 +1422,6 @@ mouse_activate(SCREEN *sp, int on)
#if NCURSES_EXT_FUNCS
NCURSES_SP_NAME(keyok) (NCURSES_SP_ARGx KEY_MOUSE, on);
#endif
- TPUTS_TRACE("xterm mouse initialization");
enable_xterm_mouse(sp, 1);
break;
#if USE_GPM_SUPPORT
@@ -1421,25 +1440,28 @@ mouse_activate(SCREEN *sp, int on)
#endif
#ifdef USE_TERM_DRIVER
case M_TERM_DRIVER:
- sp->_mouse_active = TRUE;
+ enable_win32_mouse(sp, TRUE);
break;
#endif
case M_NONE:
- return;
+ returnVoid;
+ default:
+ T(("unexpected mouse mode"));
+ break;
}
/* Make runtime binding to cut down on object size of applications that
* do not use the mouse (e.g., 'clear').
*/
- sp->_mouse_event = _nc_mouse_event;
+ /* *INDENT-EQLS* */
+ sp->_mouse_event = _nc_mouse_event;
sp->_mouse_inline = _nc_mouse_inline;
- sp->_mouse_parse = _nc_mouse_parse;
+ sp->_mouse_parse = _nc_mouse_parse;
sp->_mouse_resume = _nc_mouse_resume;
- sp->_mouse_wrap = _nc_mouse_wrap;
+ sp->_mouse_wrap = _nc_mouse_wrap;
} else {
switch (sp->_mouse_type) {
case M_XTERM:
- TPUTS_TRACE("xterm mouse deinitialization");
enable_xterm_mouse(sp, 0);
break;
#if USE_GPM_SUPPORT
@@ -1455,14 +1477,18 @@ mouse_activate(SCREEN *sp, int on)
#endif
#ifdef USE_TERM_DRIVER
case M_TERM_DRIVER:
- sp->_mouse_active = FALSE;
+ enable_win32_mouse(sp, FALSE);
break;
#endif
case M_NONE:
- return;
+ returnVoid;
+ default:
+ T(("unexpected mouse mode"));
+ break;
}
}
NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_ARG);
+ returnVoid;
}
/**************************************************************************
@@ -1560,7 +1586,7 @@ _nc_mouse_parse(SCREEN *sp, int runcount)
if (changed) {
merge = FALSE;
for (b = 1; b <= MAX_BUTTONS; ++b) {
- if ((sp->_mouse_mask & MASK_CLICK(b))
+ if ((sp->_mouse_mask2 & MASK_CLICK(b))
&& (ep->bstate & MASK_PRESS(b))) {
next->bstate &= ~MASK_RELEASE(b);
next->bstate |= MASK_CLICK(b);
@@ -1641,7 +1667,7 @@ _nc_mouse_parse(SCREEN *sp, int runcount)
&& (next->bstate & BUTTON_CLICKED)) {
merge = FALSE;
for (b = 1; b <= MAX_BUTTONS; ++b) {
- if ((sp->_mouse_mask & MASK_DOUBLE_CLICK(b))
+ if ((sp->_mouse_mask2 & MASK_DOUBLE_CLICK(b))
&& (ep->bstate & MASK_CLICK(b))
&& (next->bstate & MASK_CLICK(b))) {
next->bstate &= ~MASK_CLICK(b);
@@ -1659,7 +1685,7 @@ _nc_mouse_parse(SCREEN *sp, int runcount)
&& (next->bstate & BUTTON_CLICKED)) {
merge = FALSE;
for (b = 1; b <= MAX_BUTTONS; ++b) {
- if ((sp->_mouse_mask & MASK_TRIPLE_CLICK(b))
+ if ((sp->_mouse_mask2 & MASK_TRIPLE_CLICK(b))
&& (ep->bstate & MASK_DOUBLE_CLICK(b))
&& (next->bstate & MASK_CLICK(b))) {
next->bstate &= ~MASK_CLICK(b);
@@ -1719,7 +1745,8 @@ _nc_mouse_parse(SCREEN *sp, int runcount)
#endif /* TRACE */
/* after all this, do we have a valid event? */
- return ValidEvent(PREV(first_invalid));
+ ep = PREV(first_invalid);
+ return ValidEvent(ep) && ((ep->bstate & sp->_mouse_mask) != 0);
}
static void
@@ -1963,10 +1990,24 @@ wenclose(const WINDOW *win, int y, int x)
if (win != 0) {
y -= win->_yoffset;
- result = ((win->_begy <= y &&
- win->_begx <= x &&
- (win->_begx + win->_maxx) >= x &&
- (win->_begy + win->_maxy) >= y) ? TRUE : FALSE);
+ if (IS_PAD(win)) {
+ if (win->_pad._pad_y >= 0 &&
+ win->_pad._pad_x >= 0 &&
+ win->_pad._pad_top >= 0 &&
+ win->_pad._pad_left >= 0 &&
+ win->_pad._pad_right >= 0 &&
+ win->_pad._pad_bottom >= 0) {
+ result = ((win->_pad._pad_top <= y &&
+ win->_pad._pad_left <= x &&
+ win->_pad._pad_right >= x &&
+ win->_pad._pad_bottom >= y) ? TRUE : FALSE);
+ }
+ } else {
+ result = ((win->_begy <= y &&
+ win->_begx <= x &&
+ (win->_begx + win->_maxx) >= x &&
+ (win->_begy + win->_maxy) >= y) ? TRUE : FALSE);
+ }
}
returnBool(result);
}
@@ -2035,6 +2076,7 @@ wmouse_trafo(const WINDOW *win, int *pY, int *pX, bool to_screen)
int y = *pY;
int x = *pX;
+ T(("transform input %d,%d", y, x));
if (to_screen) {
y += win->_begy + win->_yoffset;
x += win->_begx;
@@ -2050,6 +2092,7 @@ wmouse_trafo(const WINDOW *win, int *pY, int *pX, bool to_screen)
if (result) {
*pX = x;
*pY = y;
+ T(("output transform %d,%d", y, x));
}
}
returnBool(result);
diff --git a/ncurses/base/lib_mvwin.c b/ncurses/base/lib_mvwin.c
index 58bdb199f274..fca014efeb9a 100644
--- a/ncurses/base/lib_mvwin.c
+++ b/ncurses/base/lib_mvwin.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2009,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -43,7 +43,7 @@
#include <curses.priv.h>
-MODULE_ID("$Id: lib_mvwin.c,v 1.19 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: lib_mvwin.c,v 1.20 2021/10/23 18:57:41 tom Exp $")
NCURSES_EXPORT(int)
mvwin(WINDOW *win, int by, int bx)
@@ -54,7 +54,7 @@ mvwin(WINDOW *win, int by, int bx)
T((T_CALLED("mvwin(%p,%d,%d)"), (void *) win, by, bx));
- if (!win || (win->_flags & _ISPAD))
+ if (!win || IS_PAD(win))
returnCode(ERR);
/*
@@ -63,7 +63,7 @@ mvwin(WINDOW *win, int by, int bx)
*/
#if 0
/* Copying subwindows is allowed, but it is expensive... */
- if (win->_flags & _SUBWIN) {
+ if (IS_SUBWIN(win)) {
int err = ERR;
WINDOW *parent = win->_parent;
if (parent) { /* Now comes the complicated and costly part, you should really
diff --git a/ncurses/base/lib_newterm.c b/ncurses/base/lib_newterm.c
index bba97ba1fae8..15d05a31b583 100644
--- a/ncurses/base/lib_newterm.c
+++ b/ncurses/base/lib_newterm.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2020,2022 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -49,7 +49,7 @@
#include <tic.h>
-MODULE_ID("$Id: lib_newterm.c,v 1.103 2020/09/05 21:34:04 tom Exp $")
+MODULE_ID("$Id: lib_newterm.c,v 1.104 2022/07/09 18:58:58 tom Exp $")
#ifdef USE_TERM_DRIVER
#define NumLabels InfoOf(SP_PARM).numlabels
@@ -362,11 +362,14 @@ NCURSES_EXPORT(SCREEN *)
newterm(const char *name, FILE *ofp, FILE *ifp)
{
SCREEN *rc;
+
+ _nc_init_pthreads();
_nc_lock_global(prescreen);
START_TRACE();
rc = NCURSES_SP_NAME(newterm) (CURRENT_SCREEN_PRE, name, ofp, ifp);
_nc_forget_prescr();
_nc_unlock_global(prescreen);
+
return rc;
}
#endif
diff --git a/ncurses/base/lib_newwin.c b/ncurses/base/lib_newwin.c
index 580d033b7d44..a6723197c093 100644
--- a/ncurses/base/lib_newwin.c
+++ b/ncurses/base/lib_newwin.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -44,7 +44,7 @@
#include <curses.priv.h>
#include <stddef.h>
-MODULE_ID("$Id: lib_newwin.c,v 1.75 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: lib_newwin.c,v 1.76 2021/10/23 18:53:38 tom Exp $")
#define window_is(name) ((sp)->_##name == win)
@@ -114,7 +114,7 @@ _nc_freewin(WINDOW *win)
else
q->next = p->next;
- if (!(win->_flags & _SUBWIN)) {
+ if (!IS_SUBWIN(win)) {
int i;
for (i = 0; i <= win->_maxy; i++)
@@ -219,7 +219,7 @@ derwin(WINDOW *orig, int num_lines, int num_columns, int begy, int begx)
if (num_columns == 0)
num_columns = orig->_maxx + 1 - begx;
- if (orig->_flags & _ISPAD)
+ if (IS_PAD(orig))
flags |= _ISPAD;
win = NCURSES_SP_NAME(_nc_makenew) (NCURSES_SP_ARGx num_lines, num_columns,
diff --git a/ncurses/base/lib_nl.c b/ncurses/base/lib_nl.c
index df07349fc83c..417b257d0399 100644
--- a/ncurses/base/lib_nl.c
+++ b/ncurses/base/lib_nl.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2023 Thomas E. Dickey *
* Copyright 1998-2000,2009 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -45,7 +45,7 @@
#include <curses.priv.h>
-MODULE_ID("$Id: lib_nl.c,v 1.13 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: lib_nl.c,v 1.14 2023/04/29 18:51:49 tom Exp $")
#ifdef __EMX__
#include <io.h>
@@ -57,7 +57,7 @@ NCURSES_SP_NAME(nl) (NCURSES_SP_DCL0)
T((T_CALLED("nl(%p)"), (void *) SP_PARM));
if (0 == SP_PARM)
returnCode(ERR);
- SP_PARM->_nl = TRUE;
+ IsNl(SP_PARM) = TRUE;
#ifdef __EMX__
_nc_flush();
_fsetmode(NC_OUTPUT(SP_PARM), "t");
@@ -79,7 +79,7 @@ NCURSES_SP_NAME(nonl) (NCURSES_SP_DCL0)
T((T_CALLED("nonl(%p)"), (void *) SP_PARM));
if (0 == SP_PARM)
returnCode(ERR);
- SP_PARM->_nl = FALSE;
+ IsNl(SP_PARM) = FALSE;
#ifdef __EMX__
_nc_flush();
_fsetmode(NC_OUTPUT(SP_PARM), "b");
diff --git a/ncurses/base/lib_overlay.c b/ncurses/base/lib_overlay.c
index 6d451d046a85..6d21c7617047 100644
--- a/ncurses/base/lib_overlay.c
+++ b/ncurses/base/lib_overlay.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2023 Thomas E. Dickey *
* Copyright 1998-2013,2016 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -41,7 +41,7 @@
#include <curses.priv.h>
-MODULE_ID("$Id: lib_overlay.c,v 1.33 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: lib_overlay.c,v 1.34 2023/09/16 16:39:07 tom Exp $")
static int
overlap(const WINDOW *const src, WINDOW *const dst, int const flag)
@@ -78,12 +78,12 @@ overlap(const WINDOW *const src, WINDOW *const dst, int const flag)
dy2 = dy1 + dst->_maxy;
if (dx2 >= sx1 && dx1 <= sx2 && dy2 >= sy1 && dy1 <= sy2) {
- int sminrow = max(sy1, dy1) - sy1;
- int smincol = max(sx1, dx1) - sx1;
- int dminrow = max(sy1, dy1) - dy1;
- int dmincol = max(sx1, dx1) - dx1;
- int dmaxrow = min(sy2, dy2) - dy1;
- int dmaxcol = min(sx2, dx2) - dx1;
+ int sminrow = Max(sy1, dy1) - sy1;
+ int smincol = Max(sx1, dx1) - sx1;
+ int dminrow = Max(sy1, dy1) - dy1;
+ int dmincol = Max(sx1, dx1) - dx1;
+ int dmaxrow = Min(sy2, dy2) - dy1;
+ int dmaxcol = Min(sx2, dx2) - dx1;
rc = copywin(src, dst,
sminrow, smincol,
diff --git a/ncurses/base/lib_pad.c b/ncurses/base/lib_pad.c
index 73978fbb8ad2..d4bd7f111bef 100644
--- a/ncurses/base/lib_pad.c
+++ b/ncurses/base/lib_pad.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2010,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -43,7 +43,7 @@
#include <curses.priv.h>
-MODULE_ID("$Id: lib_pad.c,v 1.48 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: lib_pad.c,v 1.50 2021/10/23 22:57:27 tom Exp $")
NCURSES_EXPORT(WINDOW *)
NCURSES_SP_NAME(newpad) (NCURSES_SP_DCLx int l, int c)
@@ -90,7 +90,7 @@ subpad(WINDOW *orig, int l, int c, int begy, int begx)
T((T_CALLED("subpad(%d, %d)"), l, c));
if (orig) {
- if (!(orig->_flags & _ISPAD)
+ if (!IS_PAD(orig)
|| ((win = derwin(orig, l, c, begy, begx)) == NULL))
returnWin(0);
}
@@ -146,7 +146,7 @@ pnoutrefresh(WINDOW *win,
if (win == 0)
returnCode(ERR);
- if (!(win->_flags & _ISPAD))
+ if (!IS_PAD(win))
returnCode(ERR);
sp = _nc_screen_of(win);
@@ -296,7 +296,7 @@ pnoutrefresh(WINDOW *win,
/*
* Use the pad's current position, if it will be visible.
- * If not, don't do anything; it's not an error.
+ * If not, don't do anything; it is not an error.
*/
if (win->_leaveok == FALSE
&& win->_cury >= pminrow
@@ -334,7 +334,7 @@ pechochar(WINDOW *pad, const chtype ch)
if (pad == 0)
returnCode(ERR);
- if (!(pad->_flags & _ISPAD))
+ if (!IS_PAD(pad))
returnCode(wechochar(pad, ch));
waddch(pad, ch);
diff --git a/ncurses/base/lib_refresh.c b/ncurses/base/lib_refresh.c
index d8444289c152..bcaa4624b8a9 100644
--- a/ncurses/base/lib_refresh.c
+++ b/ncurses/base/lib_refresh.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020-2021,2023 Thomas E. Dickey *
* Copyright 1998-2010,2011 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -43,7 +43,7 @@
#include <curses.priv.h>
-MODULE_ID("$Id: lib_refresh.c,v 1.46 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: lib_refresh.c,v 1.48 2023/05/27 20:13:10 tom Exp $")
NCURSES_EXPORT(int)
wrefresh(WINDOW *win)
@@ -92,13 +92,21 @@ wnoutrefresh(WINDOW *win)
T((T_CALLED("wnoutrefresh(%p)"), (void *) win));
- /*
- * This function will break badly if we try to refresh a pad.
- */
- if ((win == 0)
- || (win->_flags & _ISPAD))
+ if (win == NULL)
returnCode(ERR);
+ /*
+ * Handle pads as a special case.
+ */
+ if (IS_PAD(win)) {
+ returnCode(pnoutrefresh(win,
+ win->_pad._pad_y,
+ win->_pad._pad_x,
+ win->_pad._pad_top,
+ win->_pad._pad_left,
+ win->_pad._pad_bottom,
+ win->_pad._pad_right));
+ }
#ifdef TRACE
if (USE_TRACEF(TRACE_UPDATE)) {
_tracedump("...win", win);
@@ -200,7 +208,6 @@ wnoutrefresh(WINDOW *win)
});
if_WIDEC({
- static cchar_t blank = BLANK;
int last_dst = begx + ((last_src < win->_maxx)
? last_src
: win->_maxx);
@@ -246,6 +253,7 @@ wnoutrefresh(WINDOW *win)
*/
if (fix_left < dst_col || fix_right > last_dst) {
for (j = fix_left; j <= fix_right; ++j) {
+ static cchar_t blank = BLANK;
nline->text[j] = blank;
CHANGED_CELL(nline, j);
}
diff --git a/ncurses/base/lib_restart.c b/ncurses/base/lib_restart.c
index 81eb368843b8..0c61cb7ea667 100644
--- a/ncurses/base/lib_restart.c
+++ b/ncurses/base/lib_restart.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2023 Thomas E. Dickey *
* Copyright 1998-2012,2015 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -42,7 +42,7 @@
#include <curses.priv.h>
-MODULE_ID("$Id: lib_restart.c,v 1.17 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: lib_restart.c,v 1.18 2023/04/29 19:01:25 tom Exp $")
NCURSES_EXPORT(int)
NCURSES_SP_NAME(restartterm) (NCURSES_SP_DCLx
@@ -65,31 +65,28 @@ NCURSES_SP_NAME(restartterm) (NCURSES_SP_DCLx
if (TINFO_SETUP_TERM(&new_term, termp, filenum, errret, FALSE) != OK) {
result = ERR;
} else if (SP_PARM != 0) {
- int saveecho = SP_PARM->_echo;
- int savecbreak = SP_PARM->_cbreak;
- int saveraw = SP_PARM->_raw;
- int savenl = SP_PARM->_nl;
+ TTY_FLAGS save_flags = SP_PARM->_tty_flags;
#ifdef USE_TERM_DRIVER
SP_PARM->_term = new_term;
#endif
- if (saveecho) {
+ if (save_flags._echo) {
NCURSES_SP_NAME(echo) (NCURSES_SP_ARG);
} else {
NCURSES_SP_NAME(noecho) (NCURSES_SP_ARG);
}
- if (savecbreak) {
+ if (save_flags._cbreak) {
NCURSES_SP_NAME(cbreak) (NCURSES_SP_ARG);
NCURSES_SP_NAME(noraw) (NCURSES_SP_ARG);
- } else if (saveraw) {
+ } else if (save_flags._raw) {
NCURSES_SP_NAME(nocbreak) (NCURSES_SP_ARG);
NCURSES_SP_NAME(raw) (NCURSES_SP_ARG);
} else {
NCURSES_SP_NAME(nocbreak) (NCURSES_SP_ARG);
NCURSES_SP_NAME(noraw) (NCURSES_SP_ARG);
}
- if (savenl) {
+ if (save_flags._nl) {
NCURSES_SP_NAME(nl) (NCURSES_SP_ARG);
} else {
NCURSES_SP_NAME(nonl) (NCURSES_SP_ARG);
diff --git a/ncurses/base/lib_screen.c b/ncurses/base/lib_screen.c
index 6afba6611c61..e2647b54e2eb 100644
--- a/ncurses/base/lib_screen.c
+++ b/ncurses/base/lib_screen.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2021,2023 Thomas E. Dickey *
* Copyright 1998-2017,2018 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -42,7 +42,7 @@
#define CUR SP_TERMTYPE
#endif
-MODULE_ID("$Id: lib_screen.c,v 1.100 2020/05/25 22:48:41 tom Exp $")
+MODULE_ID("$Id: lib_screen.c,v 1.105 2023/04/28 20:58:54 tom Exp $")
#define MAX_SIZE 0x3fff /* 16k is big enough for a window or pad */
@@ -90,7 +90,6 @@ typedef struct {
typedef struct {
const char name[17];
PARAM_TYPE type;
- size_t size;
size_t offset;
} SCR_PARAMS;
@@ -120,8 +119,7 @@ static const SCR_ATTRS scr_attrs[] =
};
#undef DATA
-#define sizeof2(type,name) sizeof(((type *)0)->name)
-#define DATA(name, type) { { #name }, type, sizeof2(WINDOW, name), offsetof(WINDOW, name) }
+#define DATA(name, type) { { #name }, type, offsetof(WINDOW, name) }
static const SCR_PARAMS scr_params[] =
{
@@ -200,7 +198,7 @@ read_txt(FILE *fp)
if (ch == '\n') {
result[--used] = '\0';
- T(("READ:%s", result));
+ TR(TRACE_IEVENT, ("READ:%s", result));
} else if (used == 0) {
free(result);
result = 0;
@@ -214,7 +212,7 @@ decode_attr(char *source, attr_t *target, int *color)
{
bool found = FALSE;
- T(("decode_attr '%s'", source));
+ TR(TRACE_IEVENT, ("decode_attr '%s'", source));
while (*source) {
if (source[0] == MARKER && source[1] == L_CURL) {
@@ -272,7 +270,7 @@ decode_char(char *source, int *target)
int base = 16;
const char digits[] = "0123456789abcdef";
- T(("decode_char '%s'", source));
+ TR(TRACE_IEVENT, ("decode_char '%s'", source));
*target = ' ';
switch (*source) {
case MARKER:
@@ -329,7 +327,7 @@ decode_chtype(char *source, chtype fillin, chtype *target)
int color = PAIR_NUMBER((int) attr);
int value;
- T(("decode_chtype '%s'", source));
+ TR(TRACE_IEVENT, ("decode_chtype '%s'", source));
source = decode_attr(source, &attr, &color);
source = decode_char(source, &value);
*target = (ChCharOf(value) | attr | (chtype) COLOR_PAIR(color));
@@ -347,7 +345,7 @@ decode_cchar(char *source, cchar_t *fillin, cchar_t *target)
int append = 0;
int value = 0;
- T(("decode_cchar '%s'", source));
+ TR(TRACE_IEVENT, ("decode_cchar '%s'", source));
*target = blank;
#if NCURSES_EXT_COLORS
color = fillin->ext_color;
@@ -542,7 +540,7 @@ NCURSES_SP_NAME(getwin) (NCURSES_SP_DCLx FILE *filep)
returnWin(0);
}
- if (tmp._flags & _ISPAD) {
+ if (IS_PAD(&tmp)) {
nwin = NCURSES_SP_NAME(newpad) (NCURSES_SP_ARGx
tmp._maxy + 1,
tmp._maxx + 1);
@@ -587,7 +585,7 @@ NCURSES_SP_NAME(getwin) (NCURSES_SP_DCLx FILE *filep)
nwin->_regtop = tmp._regtop;
nwin->_regbottom = tmp._regbottom;
- if (tmp._flags & _ISPAD)
+ if (IS_PAD(&tmp))
nwin->_pad = tmp._pad;
if (old_format) {
@@ -824,7 +822,7 @@ putwin(WINDOW *win, FILE *filep)
attr_t attr;
*buffer = '\0';
- if (!strncmp(name, "_pad.", (size_t) 5) && !(win->_flags & _ISPAD)) {
+ if (!strncmp(name, "_pad.", (size_t) 5) && !IS_PAD(win)) {
continue;
}
switch (scr_params[y].type) {
@@ -940,6 +938,31 @@ putwin(WINDOW *win, FILE *filep)
returnCode(code);
}
+/*
+ * Replace a window covering the whole screen, i.e., newscr or curscr.
+ */
+static WINDOW *
+replace_window(WINDOW *target, FILE *source)
+{
+ WINDOW *result = getwin(source);
+#if NCURSES_EXT_FUNCS
+ if (result != NULL) {
+ if (getmaxx(result) != getmaxx(target)
+ || getmaxy(result) != getmaxy(target)) {
+ int code = wresize(result,
+ 1 + getmaxy(target),
+ 1 + getmaxx(target));
+ if (code != OK) {
+ delwin(result);
+ result = NULL;
+ }
+ }
+ }
+#endif
+ delwin(target);
+ return result;
+}
+
NCURSES_EXPORT(int)
NCURSES_SP_NAME(scr_restore) (NCURSES_SP_DCLx const char *file)
{
@@ -949,9 +972,8 @@ NCURSES_SP_NAME(scr_restore) (NCURSES_SP_DCLx const char *file)
T((T_CALLED("scr_restore(%p,%s)"), (void *) SP_PARM, _nc_visbuf(file)));
if (_nc_access(file, R_OK) >= 0
- && (fp = fopen(file, BIN_R)) != 0) {
- delwin(NewScreen(SP_PARM));
- NewScreen(SP_PARM) = getwin(fp);
+ && (fp = safe_fopen(file, BIN_R)) != 0) {
+ NewScreen(SP_PARM) = replace_window(NewScreen(SP_PARM), fp);
#if !USE_REENTRANT
newscr = NewScreen(SP_PARM);
#endif
@@ -980,7 +1002,7 @@ scr_dump(const char *file)
T((T_CALLED("scr_dump(%s)"), _nc_visbuf(file)));
if (_nc_access(file, W_OK) < 0
- || (fp = fopen(file, BIN_W)) == 0) {
+ || (fp = safe_fopen(file, BIN_W)) == 0) {
result = ERR;
} else {
(void) putwin(newscr, fp);
@@ -1007,9 +1029,8 @@ NCURSES_SP_NAME(scr_init) (NCURSES_SP_DCLx const char *file)
FILE *fp = 0;
if (_nc_access(file, R_OK) >= 0
- && (fp = fopen(file, BIN_R)) != 0) {
- delwin(CurScreen(SP_PARM));
- CurScreen(SP_PARM) = getwin(fp);
+ && (fp = safe_fopen(file, BIN_R)) != 0) {
+ CurScreen(SP_PARM) = replace_window(CurScreen(SP_PARM), fp);
#if !USE_REENTRANT
curscr = CurScreen(SP_PARM);
#endif
diff --git a/ncurses/base/lib_set_term.c b/ncurses/base/lib_set_term.c
index 8573fbe7d522..78de859208b6 100644
--- a/ncurses/base/lib_set_term.c
+++ b/ncurses/base/lib_set_term.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2021,2022 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -41,8 +41,11 @@
**
*/
+#define NEW_PAIR_INTERNAL 1
+
#include <curses.priv.h>
#include <tic.h>
+#include <new_pair.h>
#if USE_GPM_SUPPORT
#ifdef HAVE_LIBDL
@@ -54,7 +57,7 @@
#undef CUR
#define CUR SP_TERMTYPE
-MODULE_ID("$Id: lib_set_term.c,v 1.175 2020/10/10 19:09:03 juergen Exp $")
+MODULE_ID("$Id: lib_set_term.c,v 1.184 2022/12/10 21:34:12 tom Exp $")
#ifdef USE_TERM_DRIVER
#define MaxColors InfoOf(sp).maxcolors
@@ -146,9 +149,12 @@ delscreen(SCREEN *sp)
_nc_lock_global(curses);
if (delink_screen(sp)) {
+ WINDOWLIST *wl;
+ bool is_current = (sp == CURRENT_SCREEN);
+
#ifdef USE_SP_RIPOFF
- ripoff_t *rop;
if (safe_ripoff_sp && safe_ripoff_sp != safe_ripoff_stack) {
+ ripoff_t *rop;
for (rop = safe_ripoff_stack;
rop != safe_ripoff_sp && (rop - safe_ripoff_stack) < N_RIPS;
rop++) {
@@ -160,9 +166,13 @@ delscreen(SCREEN *sp)
}
#endif
- (void) _nc_freewin(CurScreen(sp));
- (void) _nc_freewin(NewScreen(sp));
- (void) _nc_freewin(StdScreen(sp));
+ /* delete all of the windows in this screen */
+ rescan:
+ for (each_window(sp, wl)) {
+ if (_nc_freewin(&(wl->win)) == OK) {
+ goto rescan;
+ }
+ }
if (sp->_slk != 0) {
@@ -187,6 +197,7 @@ delscreen(SCREEN *sp)
FreeIfNeeded(sp->_current_attr);
+ _nc_free_ordered_pairs(sp);
FreeIfNeeded(sp->_color_table);
FreeIfNeeded(sp->_color_pairs);
@@ -219,7 +230,7 @@ delscreen(SCREEN *sp)
* application might try to use (except cur_term, which may have
* multiple references in different screens).
*/
- if (sp == CURRENT_SCREEN) {
+ if (is_current) {
#if !USE_REENTRANT
curscr = 0;
newscr = 0;
@@ -234,6 +245,8 @@ delscreen(SCREEN *sp)
_nc_wacs = 0;
}
#endif
+ } else {
+ set_term(CURRENT_SCREEN);
}
}
_nc_unlock_global(curses);
@@ -329,9 +342,14 @@ NCURSES_SP_NAME(_nc_setupscreen) (
T(("_nc_alloc_screen_sp %p", (void *) sp));
*spp = sp;
}
- if (!sp
- || ((sp->_acs_map = typeCalloc(chtype, ACS_LEN)) == 0)
- || ((sp->_screen_acs_map = typeCalloc(bool, ACS_LEN)) == 0)) {
+ if (sp == NULL) {
+ ReturnScreenError();
+ }
+ if ((sp->_acs_map = typeCalloc(chtype, ACS_LEN)) == NULL) {
+ ReturnScreenError();
+ }
+ if ((sp->_screen_acs_map = typeCalloc(bool, ACS_LEN)) == NULL) {
+ free(sp->_acs_map);
ReturnScreenError();
}
@@ -412,7 +430,6 @@ NCURSES_SP_NAME(_nc_setupscreen) (
fflush(output);
_setmode(fileno(output), _O_BINARY);
#endif
- NCURSES_SP_NAME(_nc_set_buffer) (NCURSES_SP_ARGx output, TRUE);
sp->_lines = (NCURSES_SIZE_T) slines;
sp->_lines_avail = (NCURSES_SIZE_T) slines;
sp->_columns = (NCURSES_SIZE_T) scolumns;
@@ -495,7 +512,7 @@ NCURSES_SP_NAME(_nc_setupscreen) (
p = extract_fgbg(p, &(sp->_default_fg));
p = extract_fgbg(p, &(sp->_default_bg));
if (*p) /* assume rxvt was compiled with xpm support */
- p = extract_fgbg(p, &(sp->_default_bg));
+ extract_fgbg(p, &(sp->_default_bg));
TR(TRACE_CHARPUT | TRACE_MOVE, ("decoded fg=%d, bg=%d",
sp->_default_fg, sp->_default_bg));
if (sp->_default_fg >= MaxColors) {
@@ -692,6 +709,9 @@ NCURSES_SP_NAME(_nc_setupscreen) (
formats (4-4 or 3-2-3) for which there may be some hardware
support. */
if (rop->hook == _nc_slk_initialize) {
+ if (!TerminalOf(sp)) {
+ continue;
+ }
if (!(NumLabels <= 0 || !SLK_STDFMT(slk_format))) {
continue;
}
@@ -731,6 +751,7 @@ NCURSES_SP_NAME(_nc_setupscreen) (
}
T(("creating stdscr"));
+ (void) bottom_stolen;
assert((sp->_lines_avail + sp->_topstolen + bottom_stolen) == slines);
if ((StdScreen(sp) = NCURSES_SP_NAME(newwin) (NCURSES_SP_ARGx
sp->_lines_avail,
@@ -812,10 +833,13 @@ NCURSES_EXPORT(int)
_nc_ripoffline(int line, int (*init) (WINDOW *, int))
{
int rc;
+
+ _nc_init_pthreads();
_nc_lock_global(prescreen);
START_TRACE();
rc = NCURSES_SP_NAME(_nc_ripoffline) (CURRENT_SCREEN_PRE, line, init);
_nc_unlock_global(prescreen);
+
return rc;
}
#endif
@@ -836,10 +860,13 @@ NCURSES_EXPORT(int)
ripoffline(int line, int (*init) (WINDOW *, int))
{
int rc;
+
+ _nc_init_pthreads();
_nc_lock_global(prescreen);
START_TRACE();
rc = NCURSES_SP_NAME(ripoffline) (CURRENT_SCREEN_PRE, line, init);
_nc_unlock_global(prescreen);
+
return rc;
}
#endif
diff --git a/ncurses/base/lib_slk.c b/ncurses/base/lib_slk.c
index f4b3ce6dbf0a..47e57e0bc5bd 100644
--- a/ncurses/base/lib_slk.c
+++ b/ncurses/base/lib_slk.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2022 Thomas E. Dickey *
* Copyright 1998-2010,2011 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -48,7 +48,7 @@
#define CUR SP_TERMTYPE
#endif
-MODULE_ID("$Id: lib_slk.c,v 1.49 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: lib_slk.c,v 1.50 2022/08/20 18:29:22 tom Exp $")
#ifdef USE_TERM_DRIVER
#define NumLabels InfoOf(SP_PARM).numlabels
@@ -187,8 +187,10 @@ _nc_slk_initialize(WINDOW *stwin, int cols)
|| SP_PARM->_slk->labcnt <= 0
|| (SP_PARM->_slk->ent = typeCalloc(slk_ent,
(size_t) SP_PARM->_slk->labcnt))
- == NULL)
+ == NULL) {
+ free(SP_PARM->_slk->ent);
returnCode(slk_failed(NCURSES_SP_ARG));
+ }
max_length = (size_t) SP_PARM->_slk->maxlen;
for (i = 0; i < SP_PARM->_slk->labcnt; i++) {
diff --git a/ncurses/base/lib_slkinit.c b/ncurses/base/lib_slkinit.c
index e1602abc9f18..318077fc96c1 100644
--- a/ncurses/base/lib_slkinit.c
+++ b/ncurses/base/lib_slkinit.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2022 Thomas E. Dickey *
* Copyright 1998-2009,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -41,7 +41,7 @@
*/
#include <curses.priv.h>
-MODULE_ID("$Id: lib_slkinit.c,v 1.15 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: lib_slkinit.c,v 1.16 2022/07/09 18:58:58 tom Exp $")
#ifdef USE_SP_RIPOFF
#define SoftkeyFormat SP_PARM->slk_format
@@ -77,10 +77,13 @@ NCURSES_EXPORT(int)
slk_init(int format)
{
int rc;
+
+ _nc_init_pthreads();
_nc_lock_global(prescreen);
START_TRACE();
rc = NCURSES_SP_NAME(slk_init) (CURRENT_SCREEN_PRE, format);
_nc_unlock_global(prescreen);
+
return rc;
}
#endif
diff --git a/ncurses/base/lib_slkrefr.c b/ncurses/base/lib_slkrefr.c
index c6bf9d2e06f6..7a40624b1276 100644
--- a/ncurses/base/lib_slkrefr.c
+++ b/ncurses/base/lib_slkrefr.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2013,2014 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -44,7 +44,7 @@
#define CUR SP_TERMTYPE
#endif
-MODULE_ID("$Id: lib_slkrefr.c,v 1.31 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: lib_slkrefr.c,v 1.32 2021/09/04 10:54:35 tom Exp $")
#ifdef USE_TERM_DRIVER
#define NumLabels InfoOf(SP_PARM).numlabels
@@ -113,7 +113,7 @@ slk_intern_refresh(SCREEN *sp)
wmove(slk->win, SLK_LINES(fmt) - 1, slk->ent[i].ent_x);
(void) wattrset(slk->win, (int) AttrOf(slk->attr));
waddstr(slk->win, slk->ent[i].form_text);
- /* if we simulate SLK's, it's looking much more
+ /* if we simulate SLK's, it is looking much more
natural to use the current ATTRIBUTE also
for the label window */
(void) wattrset(slk->win, (int) WINDOW_ATTRS(StdScreen(sp)));
diff --git a/ncurses/base/lib_wattron.c b/ncurses/base/lib_wattron.c
index c589f10473cb..906021d3b4cf 100644
--- a/ncurses/base/lib_wattron.c
+++ b/ncurses/base/lib_wattron.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2022 Thomas E. Dickey *
* Copyright 1998-2009,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -43,7 +43,7 @@
#include <curses.priv.h>
#include <ctype.h>
-MODULE_ID("$Id: lib_wattron.c,v 1.12 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: lib_wattron.c,v 1.13 2022/04/15 22:34:38 tom Exp $")
NCURSES_EXPORT(int)
wattr_on(WINDOW *win, attr_t at, void *opts GCC_UNUSED)
@@ -55,8 +55,10 @@ wattr_on(WINDOW *win, attr_t at, void *opts GCC_UNUSED)
GET_WINDOW_PAIR(win)));
if_EXT_COLORS({
- if (at & A_COLOR)
+ if (at & A_COLOR) {
win->_color = PairNumber(at);
+ set_extended_pair(opts, win->_color);
+ }
});
toggle_attr_on(WINDOW_ATTRS(win), at);
returnCode(OK);
diff --git a/ncurses/base/lib_window.c b/ncurses/base/lib_window.c
index 7222bfe5c656..5323fbf0348e 100644
--- a/ncurses/base/lib_window.c
+++ b/ncurses/base/lib_window.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2010,2016 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -40,7 +40,7 @@
#include <curses.priv.h>
-MODULE_ID("$Id: lib_window.c,v 1.31 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: lib_window.c,v 1.32 2021/10/23 23:06:24 tom Exp $")
NCURSES_EXPORT(void)
_nc_synchook(WINDOW *win)
@@ -130,7 +130,7 @@ wsyncdown(WINDOW *win)
{
T((T_CALLED("wsyncdown(%p)"), (void *) win));
- if (win && win->_parent) {
+ if (win != NULL && win->_parent != NULL) {
WINDOW *pp = win->_parent;
int y;
@@ -187,7 +187,7 @@ dupwin(WINDOW *win)
SCREEN *sp = _nc_screen_of(win);
#endif
_nc_lock_global(curses);
- if (win->_flags & _ISPAD) {
+ if (IS_PAD(win)) {
nwin = NCURSES_SP_NAME(newpad) (NCURSES_SP_ARGx
win->_maxy + 1,
win->_maxx + 1);
@@ -238,7 +238,7 @@ dupwin(WINDOW *win)
nwin->_regtop = win->_regtop;
nwin->_regbottom = win->_regbottom;
- if (win->_flags & _ISPAD)
+ if (IS_PAD(win))
nwin->_pad = win->_pad;
linesize = (unsigned) (win->_maxx + 1) * sizeof(NCURSES_CH_T);
diff --git a/ncurses/base/new_pair.c b/ncurses/base/new_pair.c
index c04f4acbb95d..70866c636812 100644
--- a/ncurses/base/new_pair.c
+++ b/ncurses/base/new_pair.c
@@ -61,7 +61,7 @@
#endif
-MODULE_ID("$Id: new_pair.c,v 1.21 2021/02/14 00:17:09 tom Exp $")
+MODULE_ID("$Id: new_pair.c,v 1.23 2021/08/16 22:11:26 tom Exp $")
#if NCURSES_EXT_COLORS
@@ -106,7 +106,7 @@ dumpit(SCREEN *sp, int pair, const char *tag)
size_t have = sizeof(bigbuf);
_nc_STRCPY(p, tag, have);
- for (n = 0; n < sp->_pair_limit; ++n) {
+ for (n = 0; n < sp->_pair_alloc; ++n) {
if (list[n].mode != cpFREE) {
p += strlen(p);
if ((size_t) (p - bigbuf) + 50 > have)
@@ -297,7 +297,7 @@ NCURSES_SP_NAME(alloc_pair) (NCURSES_SP_DCLx int fg, int bg)
found = TRUE;
}
}
- if (!found) {
+ if (!found && SP_PARM->_color_pairs != NULL) {
for (pair = 1; pair <= hint; pair++) {
if (SP_PARM->_color_pairs[pair].mode == cpFREE) {
T(("found gap %d", pair));
diff --git a/ncurses/base/resizeterm.c b/ncurses/base/resizeterm.c
index 9b04287cb56f..1a2ddb365a58 100644
--- a/ncurses/base/resizeterm.c
+++ b/ncurses/base/resizeterm.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020-2021,2024 Thomas E. Dickey *
* Copyright 1998-2015,2016 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -46,7 +46,7 @@
#define CUR SP_TERMTYPE
#endif
-MODULE_ID("$Id: resizeterm.c,v 1.50 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: resizeterm.c,v 1.53 2024/04/20 21:54:14 tom Exp $")
/*
* If we're trying to be reentrant, do not want any local statics.
@@ -210,7 +210,7 @@ parent_depth(WINDOW *cmp)
}
/*
- * FIXME: must adjust position so it's within the parent!
+ * FIXME: must adjust position so it is within the parent!
*/
static int
adjust_window(WINDOW *win, int ToLines, int ToCols, int stolen EXTRA_DCLS)
@@ -293,7 +293,7 @@ decrease_size(NCURSES_SP_DCLx int ToLines, int ToCols, int stolen EXTRA_DCLS)
for (each_window(SP_PARM, wp)) {
WINDOW *win = &(wp->win);
- if (!(win->_flags & _ISPAD)) {
+ if (!IS_PAD(win)) {
if (child_depth(win) == depth) {
found = TRUE;
if (adjust_window(win, ToLines, ToCols,
@@ -328,7 +328,7 @@ increase_size(NCURSES_SP_DCLx int ToLines, int ToCols, int stolen EXTRA_DCLS)
for (each_window(SP_PARM, wp)) {
WINDOW *win = &(wp->win);
- if (!(win->_flags & _ISPAD)) {
+ if (!IS_PAD(win)) {
if (parent_depth(win) == depth) {
found = TRUE;
if (adjust_window(win, ToLines, ToCols,
@@ -409,8 +409,8 @@ NCURSES_SP_NAME(resize_term) (NCURSES_SP_DCLx int ToLines, int ToCols)
#ifdef USE_TERM_DRIVER
CallDriver_2(SP_PARM, td_setsize, ToLines, ToCols);
#else
- lines = (NCURSES_SIZE_T) ToLines;
- columns = (NCURSES_SIZE_T) ToCols;
+ lines = (NCURSES_INT2) ToLines;
+ columns = (NCURSES_INT2) ToCols;
#endif
SP_PARM->_lines_avail = (NCURSES_SIZE_T) (ToLines - was_stolen);
diff --git a/ncurses/base/safe_sprintf.c b/ncurses/base/safe_sprintf.c
index 1868c009660c..8816e58c2ca8 100644
--- a/ncurses/base/safe_sprintf.c
+++ b/ncurses/base/safe_sprintf.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2021,2023 Thomas E. Dickey *
* Copyright 1998-2012,2013 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -34,7 +34,7 @@
#include <curses.priv.h>
#include <ctype.h>
-MODULE_ID("$Id: safe_sprintf.c,v 1.33 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: safe_sprintf.c,v 1.37 2023/09/30 10:42:42 tom Exp $")
#if USE_SAFE_SPRINTF
@@ -223,9 +223,9 @@ NCURSES_SP_NAME(_nc_printf_string) (NCURSES_SP_DCLx
const char *fmt,
va_list ap)
{
- char *result = 0;
+ char *result = NULL;
- if (SP_PARM != 0 && fmt != 0) {
+ if (SP_PARM != NULL && fmt != NULL) {
#if USE_SAFE_SPRINTF
va_list ap2;
int len;
@@ -238,7 +238,7 @@ NCURSES_SP_NAME(_nc_printf_string) (NCURSES_SP_DCLx
my_length = (size_t) (2 * (len + 1));
my_buffer = typeRealloc(char, my_length, my_buffer);
}
- if (my_buffer != 0) {
+ if (my_buffer != NULL) {
*my_buffer = '\0';
if (len >= 0) {
vsprintf(my_buffer, fmt, ap);
@@ -255,21 +255,37 @@ NCURSES_SP_NAME(_nc_printf_string) (NCURSES_SP_DCLx
if (screen_columns(SP_PARM) > MyCols)
MyCols = screen_columns(SP_PARM);
my_length = (size_t) (MyRows * (MyCols + 1)) + 1;
+ if (my_length < 80)
+ my_length = 80;
my_buffer = typeRealloc(char, my_length, my_buffer);
}
- if (my_buffer != 0) {
+ if (my_buffer != NULL) {
# if HAVE_VSNPRINTF
- vsnprintf(my_buffer, my_length, fmt, ap); /* SUSv2, 1997 */
+ /* SUSv2, 1997 */
+ int used;
+
+ do {
+ va_list ap2;
+
+ begin_va_copy(ap2, ap);
+ used = vsnprintf(my_buffer, my_length, fmt, ap2);
+ end_va_copy(ap2);
+ if (used < (int) my_length)
+ break;
+ my_length = (size_t) ((3 * used) / 2);
+ my_buffer = typeRealloc(char, my_length, my_buffer);
+ } while (my_buffer != NULL);
# else
- vsprintf(my_buffer, fmt, ap); /* ISO/ANSI C, 1989 */
+ /* ISO/ANSI C, 1989 */
+ vsprintf(my_buffer, fmt, ap);
# endif
result = my_buffer;
}
#endif
- } else if (my_buffer != 0) { /* see _nc_freeall() */
+ } else if (my_buffer != NULL) { /* see _nc_freeall() */
free(my_buffer);
- my_buffer = 0;
+ my_buffer = NULL;
my_length = 0;
}
return result;
diff --git a/ncurses/base/tries.c b/ncurses/base/tries.c
index 0f309c213c45..0f8c0516e88f 100644
--- a/ncurses/base/tries.c
+++ b/ncurses/base/tries.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2023 Thomas E. Dickey *
* Copyright 1998-2009,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -39,8 +39,9 @@
*/
#include <curses.priv.h>
+#include <tic.h>
-MODULE_ID("$Id: tries.c,v 1.31 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: tries.c,v 1.32 2023/06/24 15:36:23 tom Exp $")
/*
* Expand a keycode into the string that it corresponds to, returning null if
@@ -124,7 +125,7 @@ _nc_remove_string(TRIES ** tree, const char *string)
{
T((T_CALLED("_nc_remove_string(%p,%s)"), (void *) tree, _nc_visbuf(string)));
- if (string == 0 || *string == 0)
+ if (!VALID_STRING(string) || *string == 0)
returnCode(FALSE);
while (*tree != 0) {
diff --git a/ncurses/base/vsscanf.c b/ncurses/base/vsscanf.c
index ef524250c36f..40ee8bb1d876 100644
--- a/ncurses/base/vsscanf.c
+++ b/ncurses/base/vsscanf.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2023 Thomas E. Dickey *
* Copyright 1998-2004,2012 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -39,15 +39,12 @@
#if !HAVE_VSSCANF
-MODULE_ID("$Id: vsscanf.c,v 1.21 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: vsscanf.c,v 1.22 2023/09/23 18:48:57 tom Exp $")
#if !(HAVE_VFSCANF || HAVE__DOSCAN)
#include <ctype.h>
-#define L_SQUARE '['
-#define R_SQUARE ']'
-
typedef enum {
cUnknown
,cError /* anything that isn't ANSI */
@@ -243,7 +240,7 @@ vsscanf(const char *str, const char *format, va_list ap)
case sPercent:
if (format[n] == '%') {
state = sUnknown;
- } else if (format[n] == L_SQUARE) {
+ } else if (format[n] == L_BLOCK) {
state = sLeft;
} else {
state = sNormal;
@@ -258,7 +255,7 @@ vsscanf(const char *str, const char *format, va_list ap)
}
break;
case sRange:
- if (format[n] == R_SQUARE) {
+ if (format[n] == R_BLOCK) {
state = sFinal;
chunk = cRange;
}
diff --git a/ncurses/base/wresize.c b/ncurses/base/wresize.c
index 30718b8878fd..6d5589e2794e 100644
--- a/ncurses/base/wresize.c
+++ b/ncurses/base/wresize.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2021,2023 Thomas E. Dickey *
* Copyright 1998-2010,2011 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -34,7 +34,7 @@
#include <curses.priv.h>
-MODULE_ID("$Id: wresize.c,v 1.41 2020/04/18 21:01:00 tom Exp $")
+MODULE_ID("$Id: wresize.c,v 1.43 2023/10/21 11:13:03 tom Exp $")
static int
cleanup_lines(struct ldat *data, int length)
@@ -55,7 +55,7 @@ repair_subwindows(WINDOW *cmp)
WINDOWLIST *wp;
struct ldat *pline = cmp->_line;
int row;
-#ifdef USE_SP_WINDOWLIST
+#if NCURSES_SP_FUNCS && defined(USE_SP_WINDOWLIST)
SCREEN *sp = _nc_screen_of(cmp);
#endif
@@ -135,7 +135,7 @@ wresize(WINDOW *win, int ToLines, int ToCols)
&& ToCols == size_x)
returnCode(OK);
- if ((win->_flags & _SUBWIN)) {
+ if (IS_SUBWIN(win)) {
/*
* Check if the new limits will fit into the parent window's size. If
* not, do not resize. We could adjust the location of the subwindow,
@@ -169,7 +169,7 @@ wresize(WINDOW *win, int ToLines, int ToCols)
int end = ToCols;
NCURSES_CH_T *s;
- if (!(win->_flags & _SUBWIN)) {
+ if (!IS_SUBWIN(win)) {
if (row <= size_y) {
if (ToCols != size_x) {
s = typeMalloc(NCURSES_CH_T, (unsigned) ToCols + 1);
diff --git a/ncurses/curses.priv.h b/ncurses/curses.priv.h
index a992bc9193f7..68cda17e71a3 100644
--- a/ncurses/curses.priv.h
+++ b/ncurses/curses.priv.h
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2017,2018 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -35,7 +35,7 @@
****************************************************************************/
/*
- * $Id: curses.priv.h,v 1.639 2020/11/14 23:37:54 tom Exp $
+ * $Id: curses.priv.h,v 1.687 2024/04/23 22:28:25 tom Exp $
*
* curses.priv.h
*
@@ -72,12 +72,6 @@ extern "C" {
#include <unistd.h>
#endif
-#if HAVE_LIMITS_H
-# include <limits.h>
-#elif HAVE_SYS_PARAM_H
-# include <sys/param.h>
-#endif
-
#include <assert.h>
#include <stdio.h>
@@ -89,16 +83,6 @@ extern "C" {
# endif
#endif
-#ifndef PATH_MAX
-# if defined(_POSIX_PATH_MAX)
-# define PATH_MAX _POSIX_PATH_MAX
-# elif defined(MAXPATHLEN)
-# define PATH_MAX MAXPATHLEN
-# else
-# define PATH_MAX 255 /* the Posix minimum path-size */
-# endif
-#endif
-
#if DECL_ERRNO
extern int errno;
#endif
@@ -141,6 +125,20 @@ extern int errno;
# endif
#endif
+#if (defined(__USE_MINGW_ANSI_STDIO) && __USE_MINGW_ANSI_STDIO != 0) && (defined(__GNUC__) && (__GNUC__ < 12))
+# undef PRIxPTR /* gcc bug fixed in 12.x */
+# define PRIxPTR "lX"
+# define CASTxPTR(n) (unsigned long)(intptr_t)(void*)(n)
+#else
+# define CASTxPTR(n) (intptr_t)(n)
+#endif
+
+#ifndef PRIxPTR
+# define PRIxPTR "lx"
+# undef CASTxPTR
+# define CASTxPTR(n) (long)(void*)(n)
+#endif
+
/* include signal.h before curses.h to work-around defect in glibc 2.1.3 */
#include <signal.h>
@@ -207,14 +205,21 @@ extern int errno;
#endif
/*
- * If desired, one can configure this, disabling environment variables that
- * point to custom terminfo/termcap locations.
+ * When the standard handles have been redirected (such as inside a text editor
+ * or the less utility), keystrokes must be read from the console rather than
+ * the redirected handle. The standard output handle suffers from a similar
+ * problem. Both handles are not closed once opened. The console shall be
+ * considered reachable throughout the process.
*/
-#ifdef USE_ROOT_ENVIRON
-#define use_terminfo_vars() 1
-#else
-#define use_terminfo_vars() _nc_env_access()
-extern NCURSES_EXPORT(int) _nc_env_access (void);
+#if defined(_NC_WINDOWS)
+#define GetDirectHandle(fileName, shareMode) \
+ CreateFile(TEXT(fileName), \
+ GENERIC_READ | GENERIC_WRITE, \
+ shareMode, \
+ 0, \
+ OPEN_EXISTING, \
+ 0, \
+ 0)
#endif
/*
@@ -292,7 +297,6 @@ extern NCURSES_EXPORT(void *) _nc_memmove (void *, const void *, size_t);
#define NO_TERMINAL "unknown"
#define USE_SP_RIPOFF 1
#define USE_SP_TERMTYPE 1
-#define USE_SP_WINDOWLIST 1
#else
#define NO_TERMINAL 0
#endif
@@ -304,6 +308,12 @@ extern NCURSES_EXPORT(void *) _nc_memmove (void *, const void *, size_t);
NonEmpty(term_env))
/*
+ * Originally a terminal-driver option, the window-list is per-screen to allow
+ * freeing memory used for windows when a screen is deleted.
+ */
+#define USE_SP_WINDOWLIST 1
+
+/*
* Note: ht/cbt expansion flakes out randomly under Linux 1.1.47, but only
* when we're throwing control codes at the screen at high volume. To see
* this, re-enable USE_HARD_TABS and run worm for a while. Other systems
@@ -325,6 +335,11 @@ typedef TRIES {
*/
#define StringOf(ch) {ch, 0}
+#define CSI_CHR 0x9b
+#define ESC_CHR 0x1b
+
+#define L_BLOCK '['
+#define R_BLOCK ']'
#define L_BRACE '{'
#define R_BRACE '}'
#define S_QUOTE '\''
@@ -407,7 +422,7 @@ typedef union {
#include <nc_panel.h>
-#include <term.h>
+#include <term.priv.h>
#include <nc_termios.h>
#define IsPreScreen(sp) (((sp) != 0) && sp->_prescreen)
@@ -554,10 +569,10 @@ extern NCURSES_EXPORT(void) _nc_set_no_padding(SCREEN *);
#define SET_SCREEN_PAIR(s,p) SetPair(SCREEN_ATTRS(s), p)
#if USE_REENTRANT || NCURSES_SP_FUNCS
-NCURSES_EXPORT(int *) _nc_ptr_Lines (SCREEN *);
-NCURSES_EXPORT(int *) _nc_ptr_Cols (SCREEN *);
-NCURSES_EXPORT(int *) _nc_ptr_Tabsize (SCREEN *);
-NCURSES_EXPORT(int *) _nc_ptr_Escdelay (SCREEN *);
+extern NCURSES_EXPORT(int *) _nc_ptr_Lines (SCREEN *);
+extern NCURSES_EXPORT(int *) _nc_ptr_Cols (SCREEN *);
+extern NCURSES_EXPORT(int *) _nc_ptr_Tabsize (SCREEN *);
+extern NCURSES_EXPORT(int *) _nc_ptr_Escdelay (SCREEN *);
#endif
#if USE_REENTRANT
@@ -586,6 +601,10 @@ NCURSES_EXPORT(int *) _nc_ptr_Escdelay (SCREEN *);
#endif
+#define IS_SUBWIN(w) ((w)->_flags & _SUBWIN)
+#define IS_PAD(w) ((w)->_flags & _ISPAD)
+#define IS_WRAPPED(w) ((w)->_flags & _WRAPPED)
+
#define HasHardTabs() (NonEmpty(clear_all_tabs) && NonEmpty(set_tab))
#define TR_MUTEX(data) _tracef("%s@%d: me:%08lX COUNT:%2u/%2d/%6d/%2d/%s%9u: " #data, \
@@ -679,9 +698,14 @@ extern NCURSES_EXPORT(int) _nc_sigprocmask(int, const sigset_t *, sigset_t *);
#define _nc_lock_global(name) /* nothing */
#define _nc_try_global(name) 0
#define _nc_unlock_global(name) /* nothing */
-
#endif /* USE_PTHREADS */
+#if USE_PTHREADS_EINTR
+extern NCURSES_EXPORT(void) _nc_set_read_thread(bool);
+#else
+#define _nc_set_read_thread(enable) /* nothing */
+#endif
+
/*
* When using sp-funcs, locks are targeted to SCREEN-level granularity.
* So the locking is done in the non-sp-func (which calls the sp-func) rather
@@ -712,9 +736,18 @@ extern NCURSES_EXPORT(int) _nc_sigprocmask(int, const sigset_t *, sigset_t *);
#endif
-#if HAVE_GETTIMEOFDAY
+#if HAVE_CLOCK_GETTIME
# define PRECISE_GETTIME 1
+# define GetClockTime(t) clock_gettime(CLOCK_REALTIME, t)
+# define TimeType struct timespec
+# define TimeScale 1000000000L /* 1e9 */
+# define sub_secs tv_nsec
+#elif HAVE_GETTIMEOFDAY
+# define PRECISE_GETTIME 1
+# define GetClockTime(t) gettimeofday(t, 0)
# define TimeType struct timeval
+# define TimeScale 1000000L /* 1e6 */
+# define sub_secs tv_usec
#else
# define PRECISE_GETTIME 0
# define TimeType time_t
@@ -810,12 +843,6 @@ typedef struct _SLK {
#endif /* USE_TERMLIB */
-typedef struct {
- WINDOW *win; /* the window used in the hook */
- int line; /* lines to take, < 0 => from bottom*/
- int (*hook)(WINDOW *, int); /* callback for user */
-} ripoff_t;
-
#if USE_GPM_SUPPORT
#undef buttons /* term.h defines this, and gpm uses it! */
#include <gpm.h>
@@ -843,15 +870,11 @@ typedef int (*TYPE_Gpm_GetEvent) (Gpm_Event *);
#endif /* HAVE_LIBDL */
#endif /* USE_GPM_SUPPORT */
-typedef struct {
- long sequence;
- bool last_used;
- char *fix_sgr0; /* this holds the filtered sgr0 string */
- char *last_bufp; /* help with fix_sgr0 leak */
- TERMINAL *last_term;
-} TGETENT_CACHE;
-
-#define TGETENT_MAX 4
+/*
+ * Limit delay-times to 30 seconds, which is consistent with signed 16-bit
+ * numbers in legacy terminfo.
+ */
+#define MAX_DELAY_MSECS 30000
/*
* When converting from terminfo to termcap, check for cases where we can trim
@@ -864,46 +887,6 @@ typedef struct {
#define isoctal(c) ((c) >= '0' && (c) <= '7')
/*
- * State of tparm().
- */
-#define STACKSIZE 20
-
-typedef struct {
- union {
- int num;
- char *str;
- } data;
- bool num_type;
-} STACK_FRAME;
-
-#define NUM_VARS 26
-
-typedef struct {
- const char *tparam_base;
-
- STACK_FRAME stack[STACKSIZE];
- int stack_ptr;
-
- char *out_buff;
- size_t out_size;
- size_t out_used;
-
- char *fmt_buff;
- size_t fmt_size;
-
- int dynamic_var[NUM_VARS];
- int static_vars[NUM_VARS];
-#ifdef TRACE
- const char *tname;
-#endif
-} TPARM_STATE;
-
-typedef struct {
- char *text;
- size_t size;
-} TRACEBUF;
-
-/*
* The filesystem database normally uses a single-letter for the lower level
* of directories. Use a hexadecimal code for filesystems which do not
* preserve mixed-case names.
@@ -923,6 +906,7 @@ typedef struct {
* string is less than 80 columns, but this buffer size is an absolute
* limit.
*/
+#define TRACECHR_BUF 40
#define TRACEMSE_MAX (80 + (5 * 10) + (32 * 15))
#define TRACEMSE_FMT "id %2d at (%2d, %2d, %2d) state %4lx = {" /* } */
@@ -933,132 +917,8 @@ struct DriverTCB; /* Terminal Control Block forward declaration */
#define INIT_TERM_DRIVER() /* nothing */
#endif
-typedef struct {
- const char *name;
- char *value;
-} ITERATOR_VARS;
-
-/*
- * Global data which is not specific to a screen.
- */
-typedef struct {
- SIG_ATOMIC_T have_sigtstp;
- SIG_ATOMIC_T have_sigwinch;
- SIG_ATOMIC_T cleanup_nested;
-
- bool init_signals;
- bool init_screen;
-
- char *comp_sourcename;
- char *comp_termtype;
-
- bool have_tic_directory;
- bool keep_tic_directory;
- const char *tic_directory;
-
- char *dbi_list;
- int dbi_size;
-
- char *first_name;
- char **keyname_table;
- int init_keyname;
-
- int slk_format;
-
- int getstr_limit; /* getstr_limit based on POSIX LINE_MAX */
-
- char *safeprint_buf;
- size_t safeprint_used;
-
- TGETENT_CACHE tgetent_cache[TGETENT_MAX];
- int tgetent_index;
- long tgetent_sequence;
-
- char *dbd_blob; /* string-heap for dbd_list[] */
- char **dbd_list; /* distinct places to look for data */
- int dbd_size; /* length of dbd_list[] */
- time_t dbd_time; /* cache last updated */
- ITERATOR_VARS dbd_vars[dbdLAST];
-
-#if HAVE_TSEARCH
- void *cached_tparm;
- int count_tparm;
-#endif /* HAVE_TSEARCH */
-
-#ifdef USE_TERM_DRIVER
- int (*term_driver)(struct DriverTCB*, const char*, int*);
-#endif
-
-#ifndef USE_SP_WINDOWLIST
- WINDOWLIST *_nc_windowlist;
-#define WindowList(sp) _nc_globals._nc_windowlist
-#endif
-
-#if USE_HOME_TERMINFO
- char *home_terminfo;
-#endif
-
-#if !USE_SAFE_SPRINTF
- int safeprint_cols;
- int safeprint_rows;
-#endif
-
-#ifdef USE_PTHREADS
- pthread_mutex_t mutex_curses;
- pthread_mutex_t mutex_prescreen;
- pthread_mutex_t mutex_screen;
- pthread_mutex_t mutex_update;
- pthread_mutex_t mutex_tst_tracef;
- pthread_mutex_t mutex_tracef;
- int nested_tracef;
- int use_pthreads;
-#define _nc_use_pthreads _nc_globals.use_pthreads
-#if USE_PTHREADS_EINTR
- pthread_t read_thread; /* The reading thread */
-#endif
-#endif
-#if USE_WIDEC_SUPPORT
- char key_name[MB_LEN_MAX + 1];
-#endif
-
-#ifdef TRACE
- bool trace_opened;
- char trace_fname[PATH_MAX];
- int trace_level;
- FILE *trace_fp;
- int trace_fd;
-
- char *tracearg_buf;
- size_t tracearg_used;
-
- TRACEBUF *tracebuf_ptr;
- size_t tracebuf_used;
-
- char tracechr_buf[40];
-
- char *tracedmp_buf;
- size_t tracedmp_used;
-
- unsigned char *tracetry_buf;
- size_t tracetry_used;
-
- char traceatr_color_buf[2][80];
- int traceatr_color_sel;
- int traceatr_color_last;
-#if !defined(USE_PTHREADS) && USE_REENTRANT
- int nested_tracef;
-#endif
-#endif /* TRACE */
-
-#if NO_LEAKS
- bool leak_checking;
-#endif
-} NCURSES_GLOBALS;
-
extern NCURSES_EXPORT_VAR(NCURSES_GLOBALS) _nc_globals;
-#define N_RIPS 5
-
/* The limit reserves one byte for a terminating NUL */
#define my_getstr_limit (_nc_globals.getstr_limit - 1)
#define _nc_getstr_limit(n) \
@@ -1068,54 +928,6 @@ extern NCURSES_EXPORT_VAR(NCURSES_GLOBALS) _nc_globals;
? my_getstr_limit \
: (n)))
-#ifdef USE_PTHREADS
-typedef struct _prescreen_list {
- struct _prescreen_list *next;
- pthread_t id;
- struct screen *sp;
-} PRESCREEN_LIST;
-#endif
-
-/*
- * Global data which can be swept up into a SCREEN when one is created.
- * It may be modified before the next SCREEN is created.
- */
-typedef struct {
-#ifdef USE_PTHREADS
- PRESCREEN_LIST *allocated;
-#else
- struct screen * allocated;
-#endif
- bool use_env;
- bool filter_mode;
- attr_t previous_attr;
- TPARM_STATE tparm_state;
- TTY *saved_tty; /* savetty/resetty information */
- bool use_tioctl;
- NCURSES_SP_OUTC _outch; /* output handler if not putc */
-#ifndef USE_SP_RIPOFF
- ripoff_t rippedoff[N_RIPS];
- ripoff_t *rsp;
-#endif
-#if NCURSES_NO_PADDING
- bool _no_padding; /* flag to set if padding disabled */
-#endif
-#if BROKEN_LINKER || USE_REENTRANT
- chtype *real_acs_map;
- int _LINES;
- int _COLS;
- int _TABSIZE;
- int _ESCDELAY;
- TERMINAL *_cur_term;
-#endif
-#ifdef TRACE
-#if BROKEN_LINKER || USE_REENTRANT
- long _outchars;
- const char *_tputs_trace;
-#endif
-#endif
-} NCURSES_PRESCREEN;
-
/*
* Use screen-specific ripoff data (for softkeys) rather than global.
*/
@@ -1130,16 +942,29 @@ typedef struct {
extern NCURSES_EXPORT_VAR(NCURSES_PRESCREEN) _nc_prescreen;
typedef enum {
- ewInitial = 0,
+ ewUnknown = 0,
+ ewInitial,
ewRunning,
ewSuspend
} ENDWIN;
+typedef struct {
+ int _nl; /* True if NL -> CR/NL is on */
+ int _raw; /* True if in raw mode */
+ int _cbreak; /* 1 if in cbreak mode */
+ /* > 1 if in halfdelay mode */
+ int _echo; /* True if echo on */
+} TTY_FLAGS;
+
+#define IsNl(sp) (sp)->_tty_flags._nl
+#define IsRaw(sp) (sp)->_tty_flags._raw
+#define IsCbreak(sp) (sp)->_tty_flags._cbreak
+#define IsEcho(sp) (sp)->_tty_flags._echo
+
/*
* The SCREEN structure.
*/
-
-struct screen {
+typedef struct screen {
int _ifd; /* input file descriptor for screen */
int _ofd; /* output file descriptor for screen */
FILE *_ofp; /* output file ptr for screen */
@@ -1186,11 +1011,7 @@ struct screen {
int _cursrow; /* physical cursor row */
int _curscol; /* physical cursor column */
bool _notty; /* true if we cannot switch non-tty */
- int _nl; /* True if NL -> CR/NL is on */
- int _raw; /* True if in raw mode */
- int _cbreak; /* 1 if in cbreak mode */
- /* > 1 if in halfdelay mode */
- int _echo; /* True if echo on */
+ TTY_FLAGS _tty_flags;
int _use_meta; /* use the meta key? */
struct _SLK *_slk; /* ptr to soft key struct / NULL */
int slk_format; /* selected format for this screen */
@@ -1416,14 +1237,15 @@ struct screen {
#endif
#ifdef TRACE
- char tracechr_buf[40];
+ char tracechr_buf[TRACECHR_BUF];
char tracemse_buf[TRACEMSE_MAX];
#if USE_REENTRANT
long _outchars;
const char *_tputs_trace;
#endif
#endif
-};
+#undef SCREEN
+} SCREEN;
extern NCURSES_EXPORT_VAR(SCREEN *) _nc_screen_chain;
extern NCURSES_EXPORT_VAR(SIG_ATOMIC_T) _nc_have_sigwinch;
@@ -1449,18 +1271,18 @@ extern NCURSES_EXPORT_VAR(SIG_ATOMIC_T) _nc_have_sigwinch;
#endif
#define SP_PRE_INIT(sp) \
- sp->_cursrow = -1; \
- sp->_curscol = -1; \
- sp->_nl = TRUE; \
- sp->_raw = FALSE; \
- sp->_cbreak = 0; \
- sp->_echo = TRUE; \
- sp->_fifohead = -1; \
- sp->_endwin = ewSuspend; \
- sp->_cursor = -1; \
+ sp->_cursrow = -1; \
+ sp->_curscol = -1; \
+ IsNl(sp) = TRUE; \
+ IsRaw(sp) = FALSE; \
+ IsCbreak(sp) = 0; \
+ IsEcho(sp) = TRUE; \
+ sp->_fifohead = -1; \
+ sp->_endwin = ewSuspend; \
+ sp->_cursor = -1; \
SP_INIT_WINDOWLIST(sp); \
- sp->_outch = NCURSES_OUTC_FUNC; \
- sp->jump = 0 \
+ sp->_outch = NCURSES_OUTC_FUNC; \
+ sp->jump = 0 \
/* usually in <limits.h> */
#ifndef UCHAR_MAX
@@ -1473,12 +1295,12 @@ extern NCURSES_EXPORT_VAR(SIG_ATOMIC_T) _nc_have_sigwinch;
/* Checks for isprint() should be done on 8-bit characters (non-wide) */
#define is8bits(c) ((unsigned)(c) <= UCHAR_MAX)
-#ifndef min
-#define min(a,b) ((a) > (b) ? (b) : (a))
+#ifndef Min
+#define Min(a,b) ((a) > (b) ? (b) : (a))
#endif
-#ifndef max
-#define max(a,b) ((a) < (b) ? (b) : (a))
+#ifndef Max
+#define Max(a,b) ((a) < (b) ? (b) : (a))
#endif
/* usually in <unistd.h> */
@@ -1542,14 +1364,11 @@ extern NCURSES_EXPORT_VAR(SIG_ATOMIC_T) _nc_have_sigwinch;
#define TR_PUTC(c) TR(TRACE_CHARPUT, ("PUTC %#x", UChar(c)))
-#ifndef MB_LEN_MAX
-#define MB_LEN_MAX 8 /* should be >= MB_CUR_MAX, but that may be a function */
-#endif
-
#if USE_WIDEC_SUPPORT /* { */
+/* true if the status/errno indicate an illegal multibyte sequence */
#define isEILSEQ(status) (((size_t)status == (size_t)-1) && (errno == EILSEQ))
-#define init_mb(state) memset(&state, 0, sizeof(state))
+#define init_mb(state) memset(&(state), 0, sizeof(state))
#if NCURSES_EXT_COLORS
#define NulColor , 0
@@ -1557,7 +1376,20 @@ extern NCURSES_EXPORT_VAR(SIG_ATOMIC_T) _nc_have_sigwinch;
#define NulColor /* nothing */
#endif
-#define NulChar 0,0,0,0 /* FIXME: see CCHARW_MAX */
+#if CCHARW_MAX > 6
+#define NulChar 0,0,0,0,0
+#elif CCHARW_MAX > 5
+#define NulChar 0,0,0,0 /* ncurses7 */
+#elif CCHARW_MAX > 4
+#define NulChar 0,0,0 /* ncurses6 */
+#elif CCHARW_MAX > 3
+#define NulChar 0,0
+#elif CCHARW_MAX > 2
+#define NulChar 0
+#else
+#define NulChar /* nothing */
+#endif
+
#define CharOf(c) ((c).chars[0])
#define AttrOf(c) ((c).attr)
@@ -1568,29 +1400,25 @@ extern NCURSES_EXPORT_VAR(SIG_ATOMIC_T) _nc_have_sigwinch;
#define NewChar2(c,a) { a, { c, NulChar } NulColor }
#define NewChar(ch) NewChar2(ChCharOf(ch), ChAttrOf(ch))
-#if CCHARW_MAX == 5
+#if CCHARW_MAX > 1
#define CharEq(a,b) (((a).attr == (b).attr) \
- && (a).chars[0] == (b).chars[0] \
- && (a).chars[1] == (b).chars[1] \
- && (a).chars[2] == (b).chars[2] \
- && (a).chars[3] == (b).chars[3] \
- && (a).chars[4] == (b).chars[4] \
+ && !memcmp((a).chars, \
+ (b).chars, \
+ CCHARW_MAX * sizeof((b).chars[0])) \
if_EXT_COLORS(&& (a).ext_color == (b).ext_color))
-#elif CCHARW_MAX > 0
-#error Inconsistent values for CCHARW_MAX
#else
#define CharEq(a,b) (!memcmp(&(a), &(b), sizeof(a)))
#endif
#define SetChar(ch,c,a) do { \
- NCURSES_CH_T *_cp = &ch; \
+ NCURSES_CH_T *_cp = &(ch); \
memset(_cp, 0, sizeof(ch)); \
_cp->chars[0] = (wchar_t) (c); \
_cp->attr = (a); \
if_EXT_COLORS(SetPair(ch, PairNumber(a))); \
} while (0)
-#define CHREF(wch) (&wch)
-#define CHDEREF(wch) (*wch)
+#define CHREF(wch) (&(wch))
+#define CHDEREF(wch) (*(wch))
#define ARG_CH_T NCURSES_CH_T *
#define CARG_CH_T const NCURSES_CH_T *
#define PUTC_DATA char PUTC_buf[MB_LEN_MAX]; int PUTC_i, PUTC_n; \
@@ -1678,7 +1506,7 @@ extern NCURSES_EXPORT_VAR(SIG_ATOMIC_T) _nc_have_sigwinch;
#define isWidecExt(ch) (0)
#define if_WIDEC(code) /* nothing */
-#define Charable(ch) ((ch) >= ' ' && (ch) <= '~')
+#define Charable(ch) (CharOf(ch) >= ' ' && CharOf(ch) <= '~')
#define L(ch) ch
#endif /* } */
@@ -1720,6 +1548,9 @@ extern NCURSES_EXPORT_VAR(SIG_ATOMIC_T) _nc_have_sigwinch;
#define SIZEOF(v) (sizeof(v)/sizeof(v[0]))
+#include <nc_alloc.h>
+#include <nc_access.h>
+
#define FreeIfNeeded(p) if ((p) != 0) free(p)
/* FreeAndNull() is not a comma-separated expression because some compilers
@@ -1727,7 +1558,18 @@ extern NCURSES_EXPORT_VAR(SIG_ATOMIC_T) _nc_have_sigwinch;
*/
#define FreeAndNull(p) do { free(p); p = 0; } while (0)
-#include <nc_alloc.h>
+#ifdef EXP_OOM_TESTING
+extern NCURSES_EXPORT(void *) _nc_oom_malloc(size_t size);
+extern NCURSES_EXPORT(void *) _nc_oom_calloc(size_t nmemb, size_t size);
+extern NCURSES_EXPORT(void *) _nc_oom_realloc(void *ptr, size_t size);
+extern NCURSES_EXPORT(void) _nc_oom_free(void *ptr);
+extern NCURSES_EXPORT(char *) _nc_oom_strdup(const char *ptr);
+#define malloc(size) _nc_oom_malloc(size)
+#define calloc(nmemb, size) _nc_oom_calloc(nmemb, size)
+#define realloc(ptr, size) _nc_oom_realloc(ptr, size)
+#define free(ptr) _nc_oom_free(ptr)
+#define strdup(ptr) _nc_oom_strdup(ptr)
+#endif
/*
* Use these for tic/infocmp malloc failures. Generally the ncurses library
@@ -1740,6 +1582,13 @@ extern NCURSES_EXPORT_VAR(SIG_ATOMIC_T) _nc_have_sigwinch;
_nc_err_abort(MSG_NO_MEMORY); \
} while (0)
+#define TYPE_CALLOC(type, size, name) \
+ do { \
+ name = typeCalloc(type, size); \
+ if (name == 0) \
+ _nc_err_abort(MSG_NO_MEMORY); \
+ } while (0)
+
#define TYPE_REALLOC(type, size, name) \
do { \
name = typeRealloc(type, size, name); \
@@ -1848,11 +1697,13 @@ typedef void VoidFunc(void);
#define returnMMask(code) TRACE_RETURN_SP(code,mmask_t)
#define returnPtr(code) TRACE_RETURN1(code,ptr)
#define returnSP(code) TRACE_RETURN1(code,sp)
-#define returnVoid T((T_RETURN(""))); return
+#define returnVoid { T((T_RETURN(""))); return; }
#define returnVoidPtr(code) TRACE_RETURN1(code,void_ptr)
#define returnWin(code) TRACE_RETURN1(code,win)
#define returnDB(rc) do { TR(TRACE_DATABASE,(T_RETURN("code %d"), (rc))); return (rc); } while (0)
+#define returnPtrDB(rc) do { TR(TRACE_DATABASE,(T_RETURN("%p"), (rc))); return (rc); } while (0)
+#define returnVoidDB do { TR(TRACE_DATABASE,(T_RETURN(""))); return; } while (0)
extern NCURSES_EXPORT(NCURSES_BOOL) _nc_retrace_bool (int);
extern NCURSES_EXPORT(NCURSES_CONST void *) _nc_retrace_cvoid_ptr (NCURSES_CONST void *);
@@ -1927,6 +1778,8 @@ extern NCURSES_EXPORT(const char *) _nc_viscbuf (const NCURSES_CH_T *, int);
#define returnWin(code) return code
#define returnDB(code) return code
+#define returnPtrDB(rc) return rc
+#define returnVoidDB return
#endif /* TRACE/!TRACE */
@@ -2132,11 +1985,11 @@ extern NCURSES_EXPORT(void) _nc_linedump (void);
/* lib_acs.c */
extern NCURSES_EXPORT(void) _nc_init_acs (void); /* corresponds to traditional 'init_acs()' */
-extern NCURSES_EXPORT(int) _nc_msec_cost (const char *const, int); /* used by 'tack' program */
+extern NCURSES_EXPORT(int) _nc_msec_cost (const char *const, int);
/* lib_addch.c */
#if USE_WIDEC_SUPPORT
-NCURSES_EXPORT(int) _nc_build_wch(WINDOW *win, ARG_CH_T ch);
+extern NCURSES_EXPORT(int) _nc_build_wch(WINDOW *win, ARG_CH_T ch);
#endif
/* lib_addstr.c */
@@ -2249,7 +2102,7 @@ typedef struct {
/* strings.c */
extern NCURSES_EXPORT(string_desc *) _nc_str_init (string_desc *, char *, size_t);
extern NCURSES_EXPORT(string_desc *) _nc_str_null (string_desc *, size_t);
-extern NCURSES_EXPORT(string_desc *) _nc_str_copy (string_desc *, string_desc *);
+extern NCURSES_EXPORT(string_desc *) _nc_str_copy (string_desc *, const string_desc *);
extern NCURSES_EXPORT(bool) _nc_safe_strcat (string_desc *, const char *);
extern NCURSES_EXPORT(bool) _nc_safe_strcpy (string_desc *, const char *);
@@ -2290,6 +2143,7 @@ extern NCURSES_EXPORT(int) _nc_read_termcap_entry (const char *const, TERMTYPE2
extern NCURSES_EXPORT(int) _nc_setup_tinfo(const char *, TERMTYPE2 *);
extern NCURSES_EXPORT(int) _nc_setupscreen (int, int, FILE *, int, int);
extern NCURSES_EXPORT(int) _nc_timed_wait (SCREEN *, int, int, int * EVENTLIST_2nd(_nc_eventlist *));
+extern NCURSES_EXPORT(int) _nc_trans_string (char *, const char *);
extern NCURSES_EXPORT(void) _nc_init_termtype (TERMTYPE2 *const);
extern NCURSES_EXPORT(void) _nc_do_color (int, int, int, NCURSES_OUTC);
extern NCURSES_EXPORT(void) _nc_flush (void);
@@ -2299,6 +2153,7 @@ extern NCURSES_EXPORT(void) _nc_hash_map (void);
extern NCURSES_EXPORT(void) _nc_init_keytry (SCREEN *);
extern NCURSES_EXPORT(void) _nc_keep_tic_dir (const char *);
extern NCURSES_EXPORT(void) _nc_make_oldhash (int i);
+extern NCURSES_EXPORT(void) _nc_reset_input (FILE *, char *);
extern NCURSES_EXPORT(void) _nc_scroll_oldhash (int n, int top, int bot);
extern NCURSES_EXPORT(void) _nc_scroll_optimize (void);
extern NCURSES_EXPORT(void) _nc_set_buffer (FILE *, int);
@@ -2313,6 +2168,8 @@ extern NCURSES_EXPORT(const TERMTYPE2 *) _nc_fallback2 (const char *);
#define _nc_fallback2(tp) _nc_fallback(tp)
#endif
+extern NCURSES_EXPORT(void) _nc_copy_termtype(TERMTYPE *, const TERMTYPE *);
+
#if NCURSES_EXT_NUMBERS
extern NCURSES_EXPORT(void) _nc_copy_termtype2 (TERMTYPE2 *, const TERMTYPE2 *);
extern NCURSES_EXPORT(void) _nc_export_termtype2(TERMTYPE *, const TERMTYPE2 *);
@@ -2335,7 +2192,7 @@ extern NCURSES_EXPORT(void) _nc_comp_userdefs_leaks(void);
extern NCURSES_EXPORT(void) _nc_db_iterator_leaks(void);
extern NCURSES_EXPORT(void) _nc_keyname_leaks(void);
extern NCURSES_EXPORT(void) _nc_names_leaks(void);
-extern NCURSES_EXPORT(void) _nc_tgetent_leak(TERMINAL *);
+extern NCURSES_EXPORT(void) _nc_tgetent_leak(const TERMINAL *);
extern NCURSES_EXPORT(void) _nc_tgetent_leaks(void);
#endif
@@ -2391,17 +2248,23 @@ extern int __MINGW_NOTHROW _nc_mblen(const char *, size_t);
#endif /* _NC_WINDOWS && !_NC_MSC */
+#if defined(_NC_WINDOWS) || defined(_NC_MINGW)
+/* see wcwidth.c */
+extern NCURSES_EXPORT(int) mk_wcwidth(wchar_t);
+#define wcwidth(ucs) _nc_wcwidth(ucs)
+#endif
+
#if HAVE_MBTOWC && HAVE_MBLEN
#define reset_mbytes(state) IGNORE_RC(mblen(NULL, (size_t) 0)), IGNORE_RC(mbtowc(NULL, NULL, (size_t) 0))
#define count_mbytes(buffer,length,state) mblen(buffer,length)
#define check_mbytes(wch,buffer,length,state) \
- (int) mbtowc(&wch, buffer, length)
+ (int) mbtowc(&(wch), buffer, length)
#define state_unused
#elif HAVE_MBRTOWC && HAVE_MBRLEN
#define reset_mbytes(state) init_mb(state)
-#define count_mbytes(buffer,length,state) mbrlen(buffer,length,&state)
+#define count_mbytes(buffer,length,state) mbrlen(buffer,length,&(state))
#define check_mbytes(wch,buffer,length,state) \
- (int) mbrtowc(&wch, buffer, length, &state)
+ (int) mbrtowc(&(wch), buffer, length, &(state))
#else
make an error
#endif
@@ -2450,7 +2313,7 @@ extern NCURSES_EXPORT_VAR(SCREEN *) SP;
/*
* We don't want to use the lines or columns capabilities internally, because
- * if the application is running multiple screens under X, it's quite possible
+ * if the application is running multiple screens under X, it is quite possible
* they could all have type xterm but have different sizes! So...
*/
#define screen_lines(sp) (sp)->_lines
@@ -2668,13 +2531,21 @@ extern NCURSES_EXPORT_VAR(TERM_DRIVER) _nc_TINFO_DRIVER;
#define NC_ISATTY(fd) isatty(fd)
#endif
+/*
+ * Perhaps not "real" but possibly not "fake".
+ */
+#define IsRealTty(fd,value) \
+ (NC_ISATTY(fd) \
+ && (value = ttyname(fd)) != NULL \
+ && strncmp(value, "/dev/pts/", 9))
+
#ifdef USE_TERM_DRIVER
# define IsTermInfo(sp) ((TCBOf(sp) != 0) && ((TCBOf(sp)->drv->isTerminfo)))
# define HasTInfoTerminal(sp) ((0 != TerminalOf(sp)) && IsTermInfo(sp))
# if defined(EXP_WIN32_DRIVER)
-# define IsTermInfoOnConsole(sp) (IsTermInfo(sp)&&_nc_console_test(TerminalOf(sp)->Filedes))
+# define IsTermInfoOnConsole(sp) (IsTermInfo(sp) && _nc_console_test(TerminalOf(sp)->Filedes))
# elif defined(USE_WIN32CON_DRIVER)
-# define IsTermInfoOnConsole(sp) (IsTermInfo(sp)&&_nc_mingw_isconsole(TerminalOf(sp)->Filedes))
+# define IsTermInfoOnConsole(sp) (IsTermInfo(sp) && _nc_mingw_isconsole(TerminalOf(sp)->Filedes))
# else
# define IsTermInfoOnConsole(sp) FALSE
# endif
@@ -2733,7 +2604,7 @@ extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_tgetent)(SCREEN*,char*,const
extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_do_color)(SCREEN*, int, int, int, NCURSES_SP_OUTC);
extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_do_xmc_glitch)(SCREEN*, attr_t);
extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_flush)(SCREEN*);
-extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_free_and_exit)(SCREEN*, int) GCC_NORETURN;
+extern GCC_NORETURN NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_free_and_exit)(SCREEN*, int);
extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_freeall)(SCREEN*);
extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_hash_map)(SCREEN*);
extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_init_acs)(SCREEN*);
@@ -2779,8 +2650,8 @@ extern NCURSES_EXPORT(NCURSES_CONST char *) _nc_unctrl (SCREEN *, chtype);
#endif
#ifdef EXP_XTERM_1005
-NCURSES_EXPORT(int) _nc_conv_to_utf8(unsigned char *, unsigned, unsigned);
-NCURSES_EXPORT(int) _nc_conv_to_utf32(unsigned *, const char *, unsigned);
+extern NCURSES_EXPORT(int) _nc_conv_to_utf8(unsigned char *, unsigned, unsigned);
+extern NCURSES_EXPORT(int) _nc_conv_to_utf32(unsigned *, const char *, unsigned);
#endif
#ifdef __cplusplus
diff --git a/ncurses/llib-lncurses b/ncurses/llib-lncurses
index 3033100792bf..5069c22221a1 100644
--- a/ncurses/llib-lncurses
+++ b/ncurses/llib-lncurses
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2022,2023 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -70,7 +70,7 @@ void _nc_hash_map(void)
#undef _nc_make_oldhash_sp
void _nc_make_oldhash_sp(
- SCREEN *sp,
+ SCREEN *sp,
int i)
{ /* void */ }
@@ -81,16 +81,16 @@ void _nc_make_oldhash(
#undef _nc_scroll_oldhash_sp
void _nc_scroll_oldhash_sp(
- SCREEN *sp,
- int n,
- int top,
+ SCREEN *sp,
+ int n,
+ int top,
int bot)
{ /* void */ }
#undef _nc_scroll_oldhash
void _nc_scroll_oldhash(
- int n,
- int top,
+ int n,
+ int top,
int bot)
{ /* void */ }
@@ -98,25 +98,25 @@ void _nc_scroll_oldhash(
#undef _nc_render
chtype _nc_render(
- WINDOW *win,
+ WINDOW *win,
chtype ch)
{ return(*(chtype *)0); }
#undef _nc_waddch_nosync
int _nc_waddch_nosync(
- WINDOW *win,
+ WINDOW *win,
const chtype c)
{ return(*(int *)0); }
#undef waddch
int waddch(
- WINDOW *win,
+ WINDOW *win,
const chtype ch)
{ return(*(int *)0); }
#undef wechochar
int wechochar(
- WINDOW *win,
+ WINDOW *win,
const chtype ch)
{ return(*(int *)0); }
@@ -124,15 +124,15 @@ int wechochar(
#undef waddnstr
int waddnstr(
- WINDOW *win,
- const char *astr,
+ WINDOW *win,
+ const char *astr,
int n)
{ return(*(int *)0); }
#undef waddchnstr
int waddchnstr(
- WINDOW *win,
- const chtype *astr,
+ WINDOW *win,
+ const chtype *astr,
int n)
{ return(*(int *)0); }
@@ -151,13 +151,13 @@ int beep(void)
#undef wbkgdset
void wbkgdset(
- WINDOW *win,
+ WINDOW *win,
chtype ch)
{ /* void */ }
#undef wbkgd
int wbkgd(
- WINDOW *win,
+ WINDOW *win,
chtype ch)
{ return(*(int *)0); }
@@ -165,14 +165,14 @@ int wbkgd(
#undef wborder
int wborder(
- WINDOW *win,
- chtype ls,
- chtype rs,
- chtype ts,
- chtype bs,
- chtype tl,
- chtype tr,
- chtype bl,
+ WINDOW *win,
+ chtype ls,
+ chtype rs,
+ chtype ts,
+ chtype bs,
+ chtype tl,
+ chtype tr,
+ chtype bl,
chtype br)
{ return(*(int *)0); }
@@ -180,10 +180,10 @@ int wborder(
#undef wchgat
int wchgat(
- WINDOW *win,
- int n,
- attr_t attr,
- short pair_arg,
+ WINDOW *win,
+ int n,
+ attr_t attr,
+ short pair_arg,
const void *opts)
{ return(*(int *)0); }
@@ -198,7 +198,7 @@ int wclear(
#undef clearok
int clearok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
@@ -243,62 +243,62 @@ int start_color(void)
#undef _nc_change_pair
void _nc_change_pair(
- SCREEN *sp,
+ SCREEN *sp,
int pair)
{ /* void */ }
#undef _nc_reserve_pairs
void _nc_reserve_pairs(
- SCREEN *sp,
+ SCREEN *sp,
int want)
{ /* void */ }
#undef _nc_init_pair
int _nc_init_pair(
- SCREEN *sp,
- int pair,
- int f,
+ SCREEN *sp,
+ int pair,
+ int f,
int b)
{ return(*(int *)0); }
#undef init_pair_sp
int init_pair_sp(
- SCREEN *sp,
- short pair,
- short f,
+ SCREEN *sp,
+ short pair,
+ short f,
short b)
{ return(*(int *)0); }
#undef init_pair
int init_pair(
- short pair,
- short f,
+ short pair,
+ short f,
short b)
{ return(*(int *)0); }
#undef _nc_init_color
int _nc_init_color(
- SCREEN *sp,
- int color,
- int r,
- int g,
+ SCREEN *sp,
+ int color,
+ int r,
+ int g,
int b)
{ return(*(int *)0); }
#undef init_color_sp
int init_color_sp(
- SCREEN *sp,
- short color,
- short r,
- short g,
+ SCREEN *sp,
+ short color,
+ short r,
+ short g,
short b)
{ return(*(int *)0); }
#undef init_color
int init_color(
- short color,
- short r,
- short g,
+ short color,
+ short r,
+ short g,
short b)
{ return(*(int *)0); }
@@ -322,58 +322,58 @@ NCURSES_BOOL has_colors(void)
#undef color_content_sp
int color_content_sp(
- SCREEN *sp,
- short color,
- short *r,
- short *g,
+ SCREEN *sp,
+ short color,
+ short *r,
+ short *g,
short *b)
{ return(*(int *)0); }
#undef color_content
int color_content(
- short color,
- short *r,
- short *g,
+ short color,
+ short *r,
+ short *g,
short *b)
{ return(*(int *)0); }
#undef _nc_pair_content
int _nc_pair_content(
- SCREEN *sp,
- int pair,
- int *f,
+ SCREEN *sp,
+ int pair,
+ int *f,
int *b)
{ return(*(int *)0); }
#undef pair_content_sp
int pair_content_sp(
- SCREEN *sp,
- short pair,
- short *f,
+ SCREEN *sp,
+ short pair,
+ short *f,
short *b)
{ return(*(int *)0); }
#undef pair_content
int pair_content(
- short pair,
- short *f,
+ short pair,
+ short *f,
short *b)
{ return(*(int *)0); }
#undef _nc_do_color_sp
void _nc_do_color_sp(
- SCREEN *sp,
- int old_pair,
- int pair,
- int reverse,
+ SCREEN *sp,
+ int old_pair,
+ int pair,
+ int reverse,
NCURSES_OUTC_sp outc)
{ /* void */ }
#undef _nc_do_color
void _nc_do_color(
- int old_pair,
- int pair,
- int reverse,
+ int old_pair,
+ int pair,
+ int reverse,
NCURSES_OUTC outc)
{ /* void */ }
@@ -381,8 +381,8 @@ void _nc_do_color(
#undef wcolor_set
int wcolor_set(
- WINDOW *win,
- short pair_arg,
+ WINDOW *win,
+ short pair_arg,
void *opts)
{ return(*(int *)0); }
@@ -458,7 +458,7 @@ int addch(
#undef addchnstr
int addchnstr(
- const chtype *a1,
+ const chtype *a1,
int z)
{ return(*(int *)0); }
@@ -469,7 +469,7 @@ int addchstr(
#undef addnstr
int addnstr(
- const char *a1,
+ const char *a1,
int z)
{ return(*(int *)0); }
@@ -480,42 +480,42 @@ int addstr(
#undef attroff
int attroff(
- int z)
+ NCURSES_ATTR_T z)
{ return(*(int *)0); }
#undef attron
int attron(
- int z)
+ NCURSES_ATTR_T z)
{ return(*(int *)0); }
#undef attrset
int attrset(
- int z)
+ NCURSES_ATTR_T z)
{ return(*(int *)0); }
#undef attr_get
int attr_get(
- attr_t *a1,
- short *a2,
+ attr_t *a1,
+ short *a2,
void *z)
{ return(*(int *)0); }
#undef attr_off
int attr_off(
- attr_t a1,
+ attr_t a1,
void *z)
{ return(*(int *)0); }
#undef attr_on
int attr_on(
- attr_t a1,
+ attr_t a1,
void *z)
{ return(*(int *)0); }
#undef attr_set
int attr_set(
- attr_t a1,
- short a2,
+ attr_t a1,
+ short a2,
void *z)
{ return(*(int *)0); }
@@ -531,28 +531,28 @@ void bkgdset(
#undef border
int border(
- chtype a1,
- chtype a2,
- chtype a3,
- chtype a4,
- chtype a5,
- chtype a6,
- chtype a7,
+ chtype a1,
+ chtype a2,
+ chtype a3,
+ chtype a4,
+ chtype a5,
+ chtype a6,
+ chtype a7,
chtype z)
{ return(*(int *)0); }
#undef box
int box(
- WINDOW *a1,
- chtype a2,
+ WINDOW *a1,
+ chtype a2,
chtype z)
{ return(*(int *)0); }
#undef chgat
int chgat(
- int a1,
- attr_t a2,
- short a3,
+ int a1,
+ attr_t a2,
+ short a3,
const void *z)
{ return(*(int *)0); }
@@ -570,7 +570,7 @@ int clrtoeol(void)
#undef color_set
int color_set(
- short a1,
+ short a1,
void *z)
{ return(*(int *)0); }
@@ -607,7 +607,7 @@ int getch(void)
#undef getnstr
int getnstr(
- char *a1,
+ char *a1,
int z)
{ return(*(int *)0); }
@@ -618,7 +618,7 @@ int getstr(
#undef hline
int hline(
- chtype a1,
+ chtype a1,
int z)
{ return(*(int *)0); }
@@ -628,7 +628,7 @@ chtype inch(void)
#undef inchnstr
int inchnstr(
- chtype *a1,
+ chtype *a1,
int z)
{ return(*(int *)0); }
@@ -639,7 +639,7 @@ int inchstr(
#undef innstr
int innstr(
- char *a1,
+ char *a1,
int z)
{ return(*(int *)0); }
@@ -659,7 +659,7 @@ int insertln(void)
#undef insnstr
int insnstr(
- const char *a1,
+ const char *a1,
int z)
{ return(*(int *)0); }
@@ -675,323 +675,323 @@ int instr(
#undef move
int move(
- int a1,
+ int a1,
int z)
{ return(*(int *)0); }
#undef mvaddch
int mvaddch(
- int a1,
- int a2,
+ int a1,
+ int a2,
const chtype z)
{ return(*(int *)0); }
#undef mvaddchnstr
int mvaddchnstr(
- int a1,
- int a2,
- const chtype *a3,
+ int a1,
+ int a2,
+ const chtype *a3,
int z)
{ return(*(int *)0); }
#undef mvaddchstr
int mvaddchstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
const chtype *z)
{ return(*(int *)0); }
#undef mvaddnstr
int mvaddnstr(
- int a1,
- int a2,
- const char *a3,
+ int a1,
+ int a2,
+ const char *a3,
int z)
{ return(*(int *)0); }
#undef mvaddstr
int mvaddstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
const char *z)
{ return(*(int *)0); }
#undef mvchgat
int mvchgat(
- int a1,
- int a2,
- int a3,
- attr_t a4,
- short a5,
+ int a1,
+ int a2,
+ int a3,
+ attr_t a4,
+ short a5,
const void *z)
{ return(*(int *)0); }
#undef mvdelch
int mvdelch(
- int a1,
+ int a1,
int z)
{ return(*(int *)0); }
#undef mvgetch
int mvgetch(
- int a1,
+ int a1,
int z)
{ return(*(int *)0); }
#undef mvgetnstr
int mvgetnstr(
- int a1,
- int a2,
- char *a3,
+ int a1,
+ int a2,
+ char *a3,
int z)
{ return(*(int *)0); }
#undef mvgetstr
int mvgetstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
char *z)
{ return(*(int *)0); }
#undef mvhline
int mvhline(
- int a1,
- int a2,
- chtype a3,
+ int a1,
+ int a2,
+ chtype a3,
int z)
{ return(*(int *)0); }
#undef mvinch
chtype mvinch(
- int a1,
+ int a1,
int z)
{ return(*(chtype *)0); }
#undef mvinchnstr
int mvinchnstr(
- int a1,
- int a2,
- chtype *a3,
+ int a1,
+ int a2,
+ chtype *a3,
int z)
{ return(*(int *)0); }
#undef mvinchstr
int mvinchstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
chtype *z)
{ return(*(int *)0); }
#undef mvinnstr
int mvinnstr(
- int a1,
- int a2,
- char *a3,
+ int a1,
+ int a2,
+ char *a3,
int z)
{ return(*(int *)0); }
#undef mvinsch
int mvinsch(
- int a1,
- int a2,
+ int a1,
+ int a2,
chtype z)
{ return(*(int *)0); }
#undef mvinsnstr
int mvinsnstr(
- int a1,
- int a2,
- const char *a3,
+ int a1,
+ int a2,
+ const char *a3,
int z)
{ return(*(int *)0); }
#undef mvinsstr
int mvinsstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
const char *z)
{ return(*(int *)0); }
#undef mvinstr
int mvinstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
char *z)
{ return(*(int *)0); }
#undef mvvline
int mvvline(
- int a1,
- int a2,
- chtype a3,
+ int a1,
+ int a2,
+ chtype a3,
int z)
{ return(*(int *)0); }
#undef mvwaddch
int mvwaddch(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
const chtype z)
{ return(*(int *)0); }
#undef mvwaddchnstr
int mvwaddchnstr(
- WINDOW *a1,
- int a2,
- int a3,
- const chtype *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ const chtype *a4,
int z)
{ return(*(int *)0); }
#undef mvwaddchstr
int mvwaddchstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
const chtype *z)
{ return(*(int *)0); }
#undef mvwaddnstr
int mvwaddnstr(
- WINDOW *a1,
- int a2,
- int a3,
- const char *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ const char *a4,
int z)
{ return(*(int *)0); }
#undef mvwaddstr
int mvwaddstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
const char *z)
{ return(*(int *)0); }
#undef mvwchgat
int mvwchgat(
- WINDOW *a1,
- int a2,
- int a3,
- int a4,
- attr_t a5,
- short a6,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ int a4,
+ attr_t a5,
+ short a6,
const void *z)
{ return(*(int *)0); }
#undef mvwdelch
int mvwdelch(
- WINDOW *a1,
- int a2,
+ WINDOW *a1,
+ int a2,
int z)
{ return(*(int *)0); }
#undef mvwgetch
int mvwgetch(
- WINDOW *a1,
- int a2,
+ WINDOW *a1,
+ int a2,
int z)
{ return(*(int *)0); }
#undef mvwgetnstr
int mvwgetnstr(
- WINDOW *a1,
- int a2,
- int a3,
- char *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ char *a4,
int z)
{ return(*(int *)0); }
#undef mvwgetstr
int mvwgetstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
char *z)
{ return(*(int *)0); }
#undef mvwhline
int mvwhline(
- WINDOW *a1,
- int a2,
- int a3,
- chtype a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ chtype a4,
int z)
{ return(*(int *)0); }
#undef mvwinch
chtype mvwinch(
- WINDOW *a1,
- int a2,
+ WINDOW *a1,
+ int a2,
int z)
{ return(*(chtype *)0); }
#undef mvwinchnstr
int mvwinchnstr(
- WINDOW *a1,
- int a2,
- int a3,
- chtype *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ chtype *a4,
int z)
{ return(*(int *)0); }
#undef mvwinchstr
int mvwinchstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
chtype *z)
{ return(*(int *)0); }
#undef mvwinnstr
int mvwinnstr(
- WINDOW *a1,
- int a2,
- int a3,
- char *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ char *a4,
int z)
{ return(*(int *)0); }
#undef mvwinsch
int mvwinsch(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
chtype z)
{ return(*(int *)0); }
#undef mvwinsnstr
int mvwinsnstr(
- WINDOW *a1,
- int a2,
- int a3,
- const char *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ const char *a4,
int z)
{ return(*(int *)0); }
#undef mvwinsstr
int mvwinsstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
const char *z)
{ return(*(int *)0); }
#undef mvwinstr
int mvwinstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
char *z)
{ return(*(int *)0); }
#undef mvwvline
int mvwvline(
- WINDOW *a1,
- int a2,
- int a3,
- chtype a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ chtype a4,
int z)
{ return(*(int *)0); }
@@ -1021,7 +1021,7 @@ int scroll(
#undef setscrreg
int setscrreg(
- int a1,
+ int a1,
int z)
{ return(*(int *)0); }
@@ -1040,8 +1040,8 @@ void timeout(
#undef touchline
int touchline(
- WINDOW *a1,
- int a2,
+ WINDOW *a1,
+ int a2,
int z)
{ return(*(int *)0); }
@@ -1057,53 +1057,53 @@ int untouchwin(
#undef vline
int vline(
- chtype a1,
+ chtype a1,
int z)
{ return(*(int *)0); }
#undef waddchstr
int waddchstr(
- WINDOW *a1,
+ WINDOW *a1,
const chtype *z)
{ return(*(int *)0); }
#undef waddstr
int waddstr(
- WINDOW *a1,
+ WINDOW *a1,
const char *z)
{ return(*(int *)0); }
#undef wattron
int wattron(
- WINDOW *a1,
+ WINDOW *a1,
int z)
{ return(*(int *)0); }
#undef wattroff
int wattroff(
- WINDOW *a1,
+ WINDOW *a1,
int z)
{ return(*(int *)0); }
#undef wattrset
int wattrset(
- WINDOW *a1,
+ WINDOW *a1,
int z)
{ return(*(int *)0); }
#undef wattr_get
int wattr_get(
- WINDOW *a1,
- attr_t *a2,
- short *a3,
+ WINDOW *a1,
+ attr_t *a2,
+ short *a3,
void *z)
{ return(*(int *)0); }
#undef wattr_set
int wattr_set(
- WINDOW *a1,
- attr_t a2,
- short a3,
+ WINDOW *a1,
+ attr_t a2,
+ short a3,
void *z)
{ return(*(int *)0); }
@@ -1114,13 +1114,13 @@ int wdeleteln(
#undef wgetstr
int wgetstr(
- WINDOW *a1,
+ WINDOW *a1,
char *z)
{ return(*(int *)0); }
#undef winchstr
int winchstr(
- WINDOW *a1,
+ WINDOW *a1,
chtype *z)
{ return(*(int *)0); }
@@ -1131,13 +1131,13 @@ int winsertln(
#undef winsstr
int winsstr(
- WINDOW *a1,
+ WINDOW *a1,
const char *z)
{ return(*(int *)0); }
#undef winstr
int winstr(
- WINDOW *a1,
+ WINDOW *a1,
char *z)
{ return(*(int *)0); }
@@ -1268,15 +1268,15 @@ int wgetdelay(
#undef wgetscrreg
int wgetscrreg(
- const WINDOW *a1,
- int *a2,
+ const WINDOW *a1,
+ int *a2,
int *z)
{ return(*(int *)0); }
#undef mouse_trafo
NCURSES_BOOL mouse_trafo(
- int *a1,
- int *a2,
+ int *a1,
+ int *a2,
NCURSES_BOOL z)
{ return(*(NCURSES_BOOL *)0); }
@@ -1287,7 +1287,7 @@ int ESCDELAY;
#undef set_escdelay_sp
int set_escdelay_sp(
- SCREEN *sp,
+ SCREEN *sp,
int value)
{ return(*(int *)0); }
@@ -1307,8 +1307,8 @@ int get_escdelay(void)
#undef _nc_wgetch
int _nc_wgetch(
- WINDOW *win,
- int *result,
+ WINDOW *win,
+ int *result,
int use_meta)
{ return(*(int *)0); }
@@ -1321,8 +1321,8 @@ int wgetch(
#undef wgetnstr
int wgetnstr(
- WINDOW *win,
- char *str,
+ WINDOW *win,
+ char *str,
int maxlen)
{ return(*(int *)0); }
@@ -1330,8 +1330,8 @@ int wgetnstr(
#undef whline
int whline(
- WINDOW *win,
- chtype ch,
+ WINDOW *win,
+ chtype ch,
int n)
{ return(*(int *)0); }
@@ -1339,7 +1339,7 @@ int whline(
#undef immedok
void immedok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ /* void */ }
@@ -1347,8 +1347,8 @@ void immedok(
#undef winchnstr
int winchnstr(
- WINDOW *win,
- chtype *str,
+ WINDOW *win,
+ chtype *str,
int n)
{ return(*(int *)0); }
@@ -1362,14 +1362,14 @@ WINDOW *initscr(void)
#undef _nc_insert_ch
int _nc_insert_ch(
- SCREEN *sp,
- WINDOW *win,
+ SCREEN *sp,
+ WINDOW *win,
chtype ch)
{ return(*(int *)0); }
#undef winsch
int winsch(
- WINDOW *win,
+ WINDOW *win,
chtype c)
{ return(*(int *)0); }
@@ -1377,7 +1377,7 @@ int winsch(
#undef winsdelln
int winsdelln(
- WINDOW *win,
+ WINDOW *win,
int n)
{ return(*(int *)0); }
@@ -1385,8 +1385,8 @@ int winsdelln(
#undef winsnstr
int winsnstr(
- WINDOW *win,
- const char *s,
+ WINDOW *win,
+ const char *s,
int n)
{ return(*(int *)0); }
@@ -1394,8 +1394,8 @@ int winsnstr(
#undef winnstr
int winnstr(
- WINDOW *win,
- char *str,
+ WINDOW *win,
+ char *str,
int n)
{ return(*(int *)0); }
@@ -1414,7 +1414,7 @@ NCURSES_BOOL isendwin(void)
#undef leaveok
int leaveok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
@@ -1422,7 +1422,7 @@ int leaveok(
#undef getmouse_sp
int getmouse_sp(
- SCREEN *sp,
+ SCREEN *sp,
MEVENT *aevent)
{ return(*(int *)0); }
@@ -1433,7 +1433,7 @@ int getmouse(
#undef ungetmouse_sp
int ungetmouse_sp(
- SCREEN *sp,
+ SCREEN *sp,
MEVENT *aevent)
{ return(*(int *)0); }
@@ -1444,27 +1444,27 @@ int ungetmouse(
#undef mousemask_sp
mmask_t mousemask_sp(
- SCREEN *sp,
- mmask_t newmask,
+ SCREEN *sp,
+ mmask_t newmask,
mmask_t *oldmask)
{ return(*(mmask_t *)0); }
#undef mousemask
mmask_t mousemask(
- mmask_t newmask,
+ mmask_t newmask,
mmask_t *oldmask)
{ return(*(mmask_t *)0); }
#undef wenclose
NCURSES_BOOL wenclose(
- const WINDOW *win,
- int y,
+ const WINDOW *win,
+ int y,
int x)
{ return(*(NCURSES_BOOL *)0); }
#undef mouseinterval_sp
int mouseinterval_sp(
- SCREEN *sp,
+ SCREEN *sp,
int maxclick)
{ return(*(int *)0); }
@@ -1489,9 +1489,9 @@ NCURSES_BOOL has_mouse(void)
#undef wmouse_trafo
NCURSES_BOOL wmouse_trafo(
- const WINDOW *win,
- int *pY,
- int *pX,
+ const WINDOW *win,
+ int *pY,
+ int *pX,
NCURSES_BOOL to_screen)
{ return(*(NCURSES_BOOL *)0); }
@@ -1499,8 +1499,8 @@ NCURSES_BOOL wmouse_trafo(
#undef wmove
int wmove(
- WINDOW *win,
- int y,
+ WINDOW *win,
+ int y,
int x)
{ return(*(int *)0); }
@@ -1508,14 +1508,14 @@ int wmove(
#undef _nc_msec_cost_sp
int _nc_msec_cost_sp(
- SCREEN *sp,
- const char *const cap,
+ SCREEN *sp,
+ const char *const cap,
int affcnt)
{ return(*(int *)0); }
#undef _nc_msec_cost
int _nc_msec_cost(
- const char *const cap,
+ const char *const cap,
int affcnt)
{ return(*(int *)0); }
@@ -1548,35 +1548,35 @@ void _nc_mvcur_wrap(void)
#undef _nc_mvcur_sp
int _nc_mvcur_sp(
- SCREEN *sp,
- int yold,
- int xold,
- int ynew,
+ SCREEN *sp,
+ int yold,
+ int xold,
+ int ynew,
int xnew)
{ return(*(int *)0); }
#undef _nc_mvcur
int _nc_mvcur(
- int yold,
- int xold,
- int ynew,
+ int yold,
+ int xold,
+ int ynew,
int xnew)
{ return(*(int *)0); }
#undef mvcur_sp
int mvcur_sp(
- SCREEN *sp,
- int yold,
- int xold,
- int ynew,
+ SCREEN *sp,
+ int yold,
+ int xold,
+ int ynew,
int xnew)
{ return(*(int *)0); }
#undef mvcur
int mvcur(
- int yold,
- int xold,
- int ynew,
+ int yold,
+ int xold,
+ int ynew,
int xnew)
{ return(*(int *)0); }
@@ -1587,8 +1587,8 @@ int _nc_optimize_enable;
#undef mvwin
int mvwin(
- WINDOW *win,
- int by,
+ WINDOW *win,
+ int by,
int bx)
{ return(*(int *)0); }
@@ -1614,16 +1614,16 @@ void nofilter(void)
#undef newterm_sp
SCREEN *newterm_sp(
- SCREEN *sp,
- const char *name,
- FILE *ofp,
+ SCREEN *sp,
+ const char *name,
+ FILE *ofp,
FILE *ifp)
{ return(*(SCREEN **)0); }
#undef newterm
SCREEN *newterm(
- const char *name,
- FILE *ofp,
+ const char *name,
+ FILE *ofp,
FILE *ifp)
{ return(*(SCREEN **)0); }
@@ -1636,46 +1636,46 @@ int _nc_freewin(
#undef newwin_sp
WINDOW *newwin_sp(
- SCREEN *sp,
- int num_lines,
- int num_columns,
- int begy,
+ SCREEN *sp,
+ int num_lines,
+ int num_columns,
+ int begy,
int begx)
{ return(*(WINDOW **)0); }
#undef newwin
WINDOW *newwin(
- int num_lines,
- int num_columns,
- int begy,
+ int num_lines,
+ int num_columns,
+ int begy,
int begx)
{ return(*(WINDOW **)0); }
#undef derwin
WINDOW *derwin(
- WINDOW *orig,
- int num_lines,
- int num_columns,
- int begy,
+ WINDOW *orig,
+ int num_lines,
+ int num_columns,
+ int begy,
int begx)
{ return(*(WINDOW **)0); }
#undef subwin
WINDOW *subwin(
- WINDOW *w,
- int l,
- int c,
- int y,
+ WINDOW *w,
+ int l,
+ int c,
+ int y,
int x)
{ return(*(WINDOW **)0); }
#undef _nc_makenew_sp
WINDOW *_nc_makenew_sp(
- SCREEN *sp,
- int num_lines,
- int num_columns,
- int begy,
- int begx,
+ SCREEN *sp,
+ int num_lines,
+ int num_columns,
+ int begy,
+ int begx,
int flags)
{ return(*(WINDOW **)0); }
@@ -1718,26 +1718,26 @@ int nonl(void)
#undef overlay
int overlay(
- const WINDOW *win1,
+ const WINDOW *win1,
WINDOW *win2)
{ return(*(int *)0); }
#undef overwrite
int overwrite(
- const WINDOW *win1,
+ const WINDOW *win1,
WINDOW *win2)
{ return(*(int *)0); }
#undef copywin
int copywin(
- const WINDOW *src,
- WINDOW *dst,
- int sminrow,
- int smincol,
- int dminrow,
- int dmincol,
- int dmaxrow,
- int dmaxcol,
+ const WINDOW *src,
+ WINDOW *dst,
+ int sminrow,
+ int smincol,
+ int dminrow,
+ int dmincol,
+ int dmaxrow,
+ int dmaxcol,
int over)
{ return(*(int *)0); }
@@ -1745,51 +1745,51 @@ int copywin(
#undef newpad_sp
WINDOW *newpad_sp(
- SCREEN *sp,
- int l,
+ SCREEN *sp,
+ int l,
int c)
{ return(*(WINDOW **)0); }
#undef newpad
WINDOW *newpad(
- int l,
+ int l,
int c)
{ return(*(WINDOW **)0); }
#undef subpad
WINDOW *subpad(
- WINDOW *orig,
- int l,
- int c,
- int begy,
+ WINDOW *orig,
+ int l,
+ int c,
+ int begy,
int begx)
{ return(*(WINDOW **)0); }
#undef prefresh
int prefresh(
- WINDOW *win,
- int pminrow,
- int pmincol,
- int sminrow,
- int smincol,
- int smaxrow,
+ WINDOW *win,
+ int pminrow,
+ int pmincol,
+ int sminrow,
+ int smincol,
+ int smaxrow,
int smaxcol)
{ return(*(int *)0); }
#undef pnoutrefresh
int pnoutrefresh(
- WINDOW *win,
- int pminrow,
- int pmincol,
- int sminrow,
- int smincol,
- int smaxrow,
+ WINDOW *win,
+ int pminrow,
+ int pmincol,
+ int sminrow,
+ int smincol,
+ int smaxrow,
int smaxcol)
{ return(*(int *)0); }
#undef pechochar
int pechochar(
- WINDOW *pad,
+ WINDOW *pad,
const chtype ch)
{ return(*(int *)0); }
@@ -1797,45 +1797,45 @@ int pechochar(
#undef printw
int printw(
- const char *fmt,
+ const char *fmt,
...)
{ return(*(int *)0); }
#undef wprintw
int wprintw(
- WINDOW *win,
- const char *fmt,
+ WINDOW *win,
+ const char *fmt,
...)
{ return(*(int *)0); }
#undef mvprintw
int mvprintw(
- int y,
- int x,
- const char *fmt,
+ int y,
+ int x,
+ const char *fmt,
...)
{ return(*(int *)0); }
#undef mvwprintw
int mvwprintw(
- WINDOW *win,
- int y,
- int x,
- const char *fmt,
+ WINDOW *win,
+ int y,
+ int x,
+ const char *fmt,
...)
{ return(*(int *)0); }
#undef vwprintw
int vwprintw(
- WINDOW *win,
- const char *fmt,
+ WINDOW *win,
+ const char *fmt,
va_list argp)
{ return(*(int *)0); }
#undef vw_printw
int vw_printw(
- WINDOW *win,
- const char *fmt,
+ WINDOW *win,
+ const char *fmt,
va_list argp)
{ return(*(int *)0); }
@@ -1843,8 +1843,8 @@ int vw_printw(
#undef wredrawln
int wredrawln(
- WINDOW *win,
- int beg,
+ WINDOW *win,
+ int beg,
int num)
{ return(*(int *)0); }
@@ -1864,16 +1864,16 @@ int wnoutrefresh(
#undef restartterm_sp
int restartterm_sp(
- SCREEN *sp,
- const char *termp,
- int filenum,
+ SCREEN *sp,
+ const char *termp,
+ int filenum,
int *errret)
{ return(*(int *)0); }
#undef restartterm
int restartterm(
- const char *termp,
- int filenum,
+ const char *termp,
+ int filenum,
int *errret)
{ return(*(int *)0); }
@@ -1881,45 +1881,45 @@ int restartterm(
#undef vwscanw
int vwscanw(
- WINDOW *win,
- const char *fmt,
+ WINDOW *win,
+ const char *fmt,
va_list argp)
{ return(*(int *)0); }
#undef vw_scanw
int vw_scanw(
- WINDOW *win,
- const char *fmt,
+ WINDOW *win,
+ const char *fmt,
va_list argp)
{ return(*(int *)0); }
#undef scanw
int scanw(
- const char *fmt,
+ const char *fmt,
...)
{ return(*(int *)0); }
#undef wscanw
int wscanw(
- WINDOW *win,
- const char *fmt,
+ WINDOW *win,
+ const char *fmt,
...)
{ return(*(int *)0); }
#undef mvscanw
int mvscanw(
- int y,
- int x,
- const char *fmt,
+ int y,
+ int x,
+ const char *fmt,
...)
{ return(*(int *)0); }
#undef mvwscanw
int mvwscanw(
- WINDOW *win,
- int y,
- int x,
- const char *fmt,
+ WINDOW *win,
+ int y,
+ int x,
+ const char *fmt,
...)
{ return(*(int *)0); }
@@ -1927,7 +1927,7 @@ int mvwscanw(
#undef getwin_sp
WINDOW *getwin_sp(
- SCREEN *sp,
+ SCREEN *sp,
FILE *filep)
{ return(*(WINDOW **)0); }
@@ -1938,13 +1938,13 @@ WINDOW *getwin(
#undef putwin
int putwin(
- WINDOW *win,
+ WINDOW *win,
FILE *filep)
{ return(*(int *)0); }
#undef scr_restore_sp
int scr_restore_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *file)
{ return(*(int *)0); }
@@ -1960,7 +1960,7 @@ int scr_dump(
#undef scr_init_sp
int scr_init_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *file)
{ return(*(int *)0); }
@@ -1971,7 +1971,7 @@ int scr_init(
#undef scr_set_sp
int scr_set_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *file)
{ return(*(int *)0); }
@@ -1984,16 +1984,16 @@ int scr_set(
#undef _nc_scroll_window
void _nc_scroll_window(
- WINDOW *win,
- int const n,
- int const top,
- int const bottom,
+ WINDOW *win,
+ int const n,
+ int const top,
+ int const bottom,
chtype blank)
{ /* void */ }
#undef wscrl
int wscrl(
- WINDOW *win,
+ WINDOW *win,
int n)
{ return(*(int *)0); }
@@ -2001,7 +2001,7 @@ int wscrl(
#undef scrollok
int scrollok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
@@ -2009,8 +2009,8 @@ int scrollok(
#undef wsetscrreg
int wsetscrreg(
- WINDOW *win,
- int top,
+ WINDOW *win,
+ int top,
int bottom)
{ return(*(int *)0); }
@@ -2028,54 +2028,54 @@ void delscreen(
#undef _nc_setupscreen_sp
int _nc_setupscreen_sp(
- SCREEN **spp,
- int slines,
- int scolumns,
- FILE *output,
- int filtered,
+ SCREEN **spp,
+ int slines,
+ int scolumns,
+ FILE *output,
+ int filtered,
int slk_format)
{ return(*(int *)0); }
#undef _nc_setupscreen
int _nc_setupscreen(
- int slines,
- int scolumns,
- FILE *output,
- int filtered,
+ int slines,
+ int scolumns,
+ FILE *output,
+ int filtered,
int slk_format)
{ return(*(int *)0); }
#undef _nc_ripoffline_sp
int _nc_ripoffline_sp(
- SCREEN *sp,
- int line,
+ SCREEN *sp,
+ int line,
int (*init)(
- WINDOW *p1,
+ WINDOW *p1,
int p2))
{ return(*(int *)0); }
#undef _nc_ripoffline
int _nc_ripoffline(
- int line,
+ int line,
int (*init)(
- WINDOW *p1,
+ WINDOW *p1,
int p2))
{ return(*(int *)0); }
#undef ripoffline_sp
int ripoffline_sp(
- SCREEN *sp,
- int line,
+ SCREEN *sp,
+ int line,
int (*init)(
- WINDOW *p1,
+ WINDOW *p1,
int p2))
{ return(*(int *)0); }
#undef ripoffline
int ripoffline(
- int line,
+ int line,
int (*init)(
- WINDOW *p1,
+ WINDOW *p1,
int p2))
{ return(*(int *)0); }
@@ -2083,13 +2083,13 @@ int ripoffline(
#undef _nc_format_slks
int _nc_format_slks(
- SCREEN *sp,
+ SCREEN *sp,
int cols)
{ return(*(int *)0); }
#undef _nc_slk_initialize
int _nc_slk_initialize(
- WINDOW *stwin,
+ WINDOW *stwin,
int cols)
{ return(*(int *)0); }
@@ -2106,16 +2106,16 @@ int slk_restore(void)
#undef slk_attr_set_sp
int slk_attr_set_sp(
- SCREEN *sp,
- const attr_t attr,
- short pair_arg,
+ SCREEN *sp,
+ const attr_t attr,
+ short pair_arg,
void *opts)
{ return(*(int *)0); }
#undef slk_attr_set
int slk_attr_set(
- const attr_t attr,
- short pair_arg,
+ const attr_t attr,
+ short pair_arg,
void *opts)
{ return(*(int *)0); }
@@ -2123,7 +2123,7 @@ int slk_attr_set(
#undef slk_attroff_sp
int slk_attroff_sp(
- SCREEN *sp,
+ SCREEN *sp,
const chtype attr)
{ return(*(int *)0); }
@@ -2136,7 +2136,7 @@ int slk_attroff(
#undef slk_attron_sp
int slk_attron_sp(
- SCREEN *sp,
+ SCREEN *sp,
const chtype attr)
{ return(*(int *)0); }
@@ -2149,7 +2149,7 @@ int slk_attron(
#undef slk_attrset_sp
int slk_attrset_sp(
- SCREEN *sp,
+ SCREEN *sp,
const chtype attr)
{ return(*(int *)0); }
@@ -2184,7 +2184,7 @@ int slk_clear(void)
#undef slk_color_sp
int slk_color_sp(
- SCREEN *sp,
+ SCREEN *sp,
short pair_arg)
{ return(*(int *)0); }
@@ -2197,7 +2197,7 @@ int slk_color(
#undef slk_init_sp
int slk_init_sp(
- SCREEN *sp,
+ SCREEN *sp,
int format)
{ return(*(int *)0); }
@@ -2210,7 +2210,7 @@ int slk_init(
#undef slk_label_sp
char *slk_label_sp(
- SCREEN *sp,
+ SCREEN *sp,
int n)
{ return(*(char **)0); }
@@ -2243,16 +2243,16 @@ int slk_refresh(void)
#undef slk_set_sp
int slk_set_sp(
- SCREEN *sp,
- int i,
- const char *astr,
+ SCREEN *sp,
+ int i,
+ const char *astr,
int format)
{ return(*(int *)0); }
#undef slk_set
int slk_set(
- int i,
- const char *astr,
+ int i,
+ const char *astr,
int format)
{ return(*(int *)0); }
@@ -2271,7 +2271,7 @@ int slk_touch(void)
#undef is_linetouched
NCURSES_BOOL is_linetouched(
- WINDOW *win,
+ WINDOW *win,
int line)
{ return(*(NCURSES_BOOL *)0); }
@@ -2282,9 +2282,9 @@ NCURSES_BOOL is_wintouched(
#undef wtouchln
int wtouchln(
- WINDOW *win,
- int y,
- int n,
+ WINDOW *win,
+ int y,
+ int n,
int changed)
{ return(*(int *)0); }
@@ -2292,7 +2292,7 @@ int wtouchln(
#undef _tracedump
void _tracedump(
- const char *name,
+ const char *name,
WINDOW *win)
{ /* void */ }
@@ -2300,19 +2300,19 @@ void _tracedump(
#undef _nc_trace_mmask_t
char *_nc_trace_mmask_t(
- SCREEN *sp,
+ SCREEN *sp,
mmask_t code)
{ return(*(char **)0); }
#undef _nc_tracemouse
char *_nc_tracemouse(
- SCREEN *sp,
+ SCREEN *sp,
MEVENT const *ep)
{ return(*(char **)0); }
#undef _nc_retrace_mmask_t
mmask_t _nc_retrace_mmask_t(
- SCREEN *sp,
+ SCREEN *sp,
mmask_t code)
{ return(*(mmask_t *)0); }
@@ -2337,7 +2337,7 @@ void _nc_fifo_dump(
#undef ungetch_sp
int ungetch_sp(
- SCREEN *sp,
+ SCREEN *sp,
int ch)
{ return(*(int *)0); }
@@ -2350,20 +2350,20 @@ int ungetch(
#undef vidputs_sp
int vidputs_sp(
- SCREEN *sp,
- chtype newmode,
+ SCREEN *sp,
+ chtype newmode,
NCURSES_OUTC_sp outc)
{ return(*(int *)0); }
#undef vidputs
int vidputs(
- chtype newmode,
+ chtype newmode,
NCURSES_OUTC outc)
{ return(*(int *)0); }
#undef vidattr_sp
int vidattr_sp(
- SCREEN *sp,
+ SCREEN *sp,
chtype newmode)
{ return(*(int *)0); }
@@ -2385,8 +2385,8 @@ chtype termattrs(void)
#undef wvline
int wvline(
- WINDOW *win,
- chtype ch,
+ WINDOW *win,
+ chtype ch,
int n)
{ return(*(int *)0); }
@@ -2394,8 +2394,8 @@ int wvline(
#undef wattr_off
int wattr_off(
- WINDOW *win,
- attr_t at,
+ WINDOW *win,
+ attr_t at,
void *opts)
{ return(*(int *)0); }
@@ -2403,8 +2403,8 @@ int wattr_off(
#undef wattr_on
int wattr_on(
- WINDOW *win,
- attr_t at,
+ WINDOW *win,
+ attr_t at,
void *opts)
{ return(*(int *)0); }
@@ -2424,14 +2424,14 @@ void _nc_synchook(
#undef mvderwin
int mvderwin(
- WINDOW *win,
- int y,
+ WINDOW *win,
+ int y,
int x)
{ return(*(int *)0); }
#undef syncok
int syncok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL bf)
{ return(*(int *)0); }
@@ -2470,14 +2470,14 @@ struct panelhook *_nc_panelhook(void)
#undef _nc_printf_string_sp
char *_nc_printf_string_sp(
- SCREEN *sp,
- const char *fmt,
+ SCREEN *sp,
+ const char *fmt,
va_list ap)
{ return(*(char **)0); }
#undef _nc_printf_string
char *_nc_printf_string(
- const char *fmt,
+ const char *fmt,
va_list ap)
{ return(*(char **)0); }
@@ -2494,18 +2494,18 @@ int doupdate(void)
#undef _nc_scrolln_sp
int _nc_scrolln_sp(
- SCREEN *sp,
- int n,
- int top,
- int bot,
+ SCREEN *sp,
+ int n,
+ int top,
+ int bot,
int maxy)
{ return(*(int *)0); }
#undef _nc_scrolln
int _nc_scrolln(
- int n,
- int top,
- int bot,
+ int n,
+ int top,
+ int bot,
int maxy)
{ return(*(int *)0); }
@@ -2538,7 +2538,7 @@ void _nc_screen_wrap(void)
#undef _nc_do_xmc_glitch_sp
void _nc_do_xmc_glitch_sp(
- SCREEN *sp,
+ SCREEN *sp,
attr_t previous)
{ /* void */ }
@@ -2551,7 +2551,7 @@ void _nc_do_xmc_glitch(
#undef _nc_varargs
char *_nc_varargs(
- const char *fmt,
+ const char *fmt,
va_list ap)
{ return(*(char **)0); }
@@ -2569,7 +2569,7 @@ void _nc_freeall(void)
#undef _nc_free_and_exit_sp
void _nc_free_and_exit_sp(
- SCREEN *sp,
+ SCREEN *sp,
int code)
{ /* void */ }
@@ -2587,31 +2587,31 @@ void exit_curses(
#undef _nc_toggle_attr_on
void _nc_toggle_attr_on(
- attr_t *S,
+ attr_t *S,
attr_t at)
{ /* void */ }
#undef _nc_toggle_attr_off
void _nc_toggle_attr_off(
- attr_t *S,
+ attr_t *S,
attr_t at)
{ /* void */ }
#undef _nc_DelCharCost_sp
int _nc_DelCharCost_sp(
- SCREEN *sp,
+ SCREEN *sp,
int count)
{ return(*(int *)0); }
#undef _nc_InsCharCost_sp
int _nc_InsCharCost_sp(
- SCREEN *sp,
+ SCREEN *sp,
int count)
{ return(*(int *)0); }
#undef _nc_UpdateAttrs_sp
void _nc_UpdateAttrs_sp(
- SCREEN *sp,
+ SCREEN *sp,
chtype c)
{ /* void */ }
@@ -2634,7 +2634,7 @@ void _nc_UpdateAttrs(
#undef use_legacy_coding_sp
int use_legacy_coding_sp(
- SCREEN *sp,
+ SCREEN *sp,
int level)
{ return(*(int *)0); }
@@ -2656,14 +2656,14 @@ int use_default_colors(void)
#undef assume_default_colors_sp
int assume_default_colors_sp(
- SCREEN *sp,
- int fg,
+ SCREEN *sp,
+ int fg,
int bg)
{ return(*(int *)0); }
#undef assume_default_colors
int assume_default_colors(
- int fg,
+ int fg,
int bg)
{ return(*(int *)0); }
@@ -2671,14 +2671,14 @@ int assume_default_colors(
#undef mcprint_sp
int mcprint_sp(
- SCREEN *sp,
- char *data,
+ SCREEN *sp,
+ char *data,
int len)
{ return(*(int *)0); }
#undef mcprint
int mcprint(
- char *data,
+ char *data,
int len)
{ return(*(int *)0); }
@@ -2692,40 +2692,40 @@ void _nc_new_pair(void)
#undef is_term_resized_sp
NCURSES_BOOL is_term_resized_sp(
- SCREEN *sp,
- int ToLines,
+ SCREEN *sp,
+ int ToLines,
int ToCols)
{ return(*(NCURSES_BOOL *)0); }
#undef is_term_resized
NCURSES_BOOL is_term_resized(
- int ToLines,
+ int ToLines,
int ToCols)
{ return(*(NCURSES_BOOL *)0); }
#undef resize_term_sp
int resize_term_sp(
- SCREEN *sp,
- int ToLines,
+ SCREEN *sp,
+ int ToLines,
int ToCols)
{ return(*(int *)0); }
#undef resize_term
int resize_term(
- int ToLines,
+ int ToLines,
int ToCols)
{ return(*(int *)0); }
#undef resizeterm_sp
int resizeterm_sp(
- SCREEN *sp,
- int ToLines,
+ SCREEN *sp,
+ int ToLines,
int ToCols)
{ return(*(int *)0); }
#undef resizeterm
int resizeterm(
- int ToLines,
+ int ToLines,
int ToCols)
{ return(*(int *)0); }
@@ -2740,8 +2740,8 @@ void _nc_trace_xnames(
#undef use_screen
int use_screen(
- SCREEN *screen,
- NCURSES_SCREEN_CB func,
+ SCREEN *screen,
+ NCURSES_SCREEN_CB func,
void *data)
{ return(*(int *)0); }
@@ -2749,8 +2749,8 @@ int use_screen(
#undef use_window
int use_window(
- WINDOW *win,
- NCURSES_WINDOW_CB func,
+ WINDOW *win,
+ NCURSES_WINDOW_CB func,
void *data)
{ return(*(int *)0); }
@@ -2758,8 +2758,8 @@ int use_window(
#undef wresize
int wresize(
- WINDOW *win,
- int ToLines,
+ WINDOW *win,
+ int ToLines,
int ToCols)
{ return(*(int *)0); }
@@ -2787,7 +2787,7 @@ char *_nc_basename(
#undef _nc_access
int _nc_access(
- const char *path,
+ const char *path,
int mode)
{ return(*(int *)0); }
@@ -2805,12 +2805,25 @@ NCURSES_BOOL _nc_is_file_path(
int _nc_env_access(void)
{ return(*(int *)0); }
+#undef _nc_safe_fopen
+FILE *_nc_safe_fopen(
+ const char *path,
+ const char *mode)
+ { return(*(FILE **)0); }
+
+#undef _nc_safe_open3
+int _nc_safe_open3(
+ const char *path,
+ int flags,
+ mode_t mode)
+ { return(*(int *)0); }
+
/* ./tinfo/add_tries.c */
#undef _nc_add_to_try
int _nc_add_to_try(
- TRIES **tree,
- const char *str,
+ TRIES **tree,
+ const char *str,
unsigned code)
{ return(*(int *)0); }
@@ -2818,13 +2831,13 @@ int _nc_add_to_try(
#undef _nc_align_termtype
void _nc_align_termtype(
- TERMTYPE2 *to,
- TERMTYPE2 *from)
+ TERMTYPE *to,
+ TERMTYPE *from)
{ /* void */ }
#undef _nc_copy_termtype
void _nc_copy_termtype(
- TERMTYPE *dst,
+ TERMTYPE *dst,
const TERMTYPE *src)
{ /* void */ }
@@ -2889,19 +2902,19 @@ void _nc_get_type(
#undef _nc_warning
void _nc_warning(
- const char *const fmt,
+ const char *const fmt,
...)
{ /* void */ }
#undef _nc_err_abort
void _nc_err_abort(
- const char *const fmt,
+ const char *const fmt,
...)
{ /* void */ }
#undef _nc_syserr_abort
void _nc_syserr_abort(
- const char *const fmt,
+ const char *const fmt,
...)
{ /* void */ }
@@ -2909,14 +2922,14 @@ void _nc_syserr_abort(
#undef _nc_find_entry
struct name_table_entry const *_nc_find_entry(
- const char *string,
+ const char *string,
const HashValue *hash_table)
{ return(*(struct name_table_entry const **)0); }
#undef _nc_find_type_entry
struct name_table_entry const *_nc_find_type_entry(
- const char *string,
- int type,
+ const char *string,
+ int type,
NCURSES_BOOL termcap)
{ return(*(struct name_table_entry const **)0); }
@@ -2953,13 +2966,13 @@ void _nc_last_db(void)
#undef _nc_next_db
const char *_nc_next_db(
- DBDIRS *state,
+ DBDIRS *state,
int *offset)
{ return(*(const char **)0); }
#undef _nc_first_db
void _nc_first_db(
- DBDIRS *state,
+ DBDIRS *state,
int *offset)
{ /* void */ }
@@ -2967,7 +2980,7 @@ void _nc_first_db(
#undef _nc_doalloc
void *_nc_doalloc(
- void *oldp,
+ void *oldp,
size_t amount)
{ return(*(void **)0); }
@@ -2980,8 +2993,8 @@ ENTRY *_nc_tail;
#undef _nc_free_entry
void _nc_free_entry(
- ENTRY *headp,
- TERMTYPE2 *tterm)
+ ENTRY *headp,
+ TERMTYPE *tterm)
{ /* void */ }
#undef _nc_free_entries
@@ -3001,9 +3014,9 @@ void exit_terminfo(
/* ./fallback.c */
#undef _nc_fallback
-const TERMTYPE2 *_nc_fallback(
+const TERMTYPE *_nc_fallback(
const char *name)
- { return(*(const TERMTYPE2 **)0); }
+ { return(*(const TERMTYPE **)0); }
/* ./tinfo/free_ttype.c */
@@ -3012,6 +3025,11 @@ void _nc_free_termtype(
TERMTYPE *ptr)
{ /* void */ }
+#undef _nc_free_termtype1
+void _nc_free_termtype1(
+ TERMTYPE *ptr)
+ { /* void */ }
+
#undef _nc_user_definable
NCURSES_BOOL _nc_user_definable;
@@ -3029,7 +3047,7 @@ int _nc_getenv_num(
#undef _nc_setenv_num
void _nc_setenv_num(
- const char *name,
+ const char *name,
int value)
{ /* void */ }
@@ -3063,8 +3081,8 @@ void _nc_init_acs(void)
/* ./tinfo/lib_baudrate.c */
struct speed {
- int given_speed;
- int actual_speed;
+ int given_speed;
+ int actual_speed;
};
#undef _nc_baudrate
@@ -3093,7 +3111,7 @@ TERMINAL *cur_term;
#undef set_curterm_sp
TERMINAL *set_curterm_sp(
- SCREEN *sp,
+ SCREEN *sp,
TERMINAL *termp)
{ return(*(TERMINAL **)0); }
@@ -3104,7 +3122,7 @@ TERMINAL *set_curterm(
#undef del_curterm_sp
int del_curterm_sp(
- SCREEN *sp,
+ SCREEN *sp,
TERMINAL *termp)
{ return(*(int *)0); }
@@ -3190,7 +3208,7 @@ struct kn { short offset; int code; };
#undef keyname_sp
const char *keyname_sp(
- SCREEN *sp,
+ SCREEN *sp,
int c)
{ return(*(const char **)0); }
@@ -3214,7 +3232,7 @@ char *longname(void)
#undef napms_sp
int napms_sp(
- SCREEN *sp,
+ SCREEN *sp,
int ms)
{ return(*(int *)0); }
@@ -3227,19 +3245,19 @@ int napms(
#undef idlok
int idlok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef idcok
void idcok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ /* void */ }
#undef halfdelay_sp
int halfdelay_sp(
- SCREEN *sp,
+ SCREEN *sp,
int t)
{ return(*(int *)0); }
@@ -3250,37 +3268,37 @@ int halfdelay(
#undef nodelay
int nodelay(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef notimeout
int notimeout(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL f)
{ return(*(int *)0); }
#undef wtimeout
void wtimeout(
- WINDOW *win,
+ WINDOW *win,
int delay)
{ /* void */ }
#undef keypad
int keypad(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef meta
int meta(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef curs_set_sp
int curs_set_sp(
- SCREEN *sp,
+ SCREEN *sp,
int vis)
{ return(*(int *)0); }
@@ -3291,7 +3309,7 @@ int curs_set(
#undef typeahead_sp
int typeahead_sp(
- SCREEN *sp,
+ SCREEN *sp,
int fd)
{ return(*(int *)0); }
@@ -3302,7 +3320,7 @@ int typeahead(
#undef has_key_sp
int has_key_sp(
- SCREEN *sp,
+ SCREEN *sp,
int keycode)
{ return(*(int *)0); }
@@ -3313,14 +3331,14 @@ int has_key(
#undef _nc_putp_flush_sp
int _nc_putp_flush_sp(
- SCREEN *sp,
- const char *name,
+ SCREEN *sp,
+ const char *name,
const char *value)
{ return(*(int *)0); }
#undef _nc_keypad
int _nc_keypad(
- SCREEN *sp,
+ SCREEN *sp,
int flag)
{ return(*(int *)0); }
@@ -3382,17 +3400,53 @@ void noqiflush(void)
#undef intrflush_sp
int intrflush_sp(
- SCREEN *sp,
- WINDOW *win,
+ SCREEN *sp,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef intrflush
int intrflush(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
+#undef is_nl_sp
+int is_nl_sp(
+ SCREEN *sp)
+ { return(*(int *)0); }
+
+#undef is_raw_sp
+int is_raw_sp(
+ SCREEN *sp)
+ { return(*(int *)0); }
+
+#undef is_cbreak_sp
+int is_cbreak_sp(
+ SCREEN *sp)
+ { return(*(int *)0); }
+
+#undef is_echo_sp
+int is_echo_sp(
+ SCREEN *sp)
+ { return(*(int *)0); }
+
+#undef is_nl
+int is_nl(void)
+ { return(*(int *)0); }
+
+#undef is_raw
+int is_raw(void)
+ { return(*(int *)0); }
+
+#undef is_cbreak
+int is_cbreak(void)
+ { return(*(int *)0); }
+
+#undef is_echo
+int is_echo(void)
+ { return(*(int *)0); }
+
/* ./tinfo/lib_setup.c */
#undef ttytype
@@ -3406,7 +3460,7 @@ int TABSIZE;
#undef set_tabsize_sp
int set_tabsize_sp(
- SCREEN *sp,
+ SCREEN *sp,
int value)
{ return(*(int *)0); }
@@ -3422,13 +3476,13 @@ int _nc_handle_sigwinch(
#undef use_env_sp
void use_env_sp(
- SCREEN *sp,
+ SCREEN *sp,
NCURSES_BOOL f)
{ /* void */ }
#undef use_tioctl_sp
void use_tioctl_sp(
- SCREEN *sp,
+ SCREEN *sp,
NCURSES_BOOL f)
{ /* void */ }
@@ -3444,8 +3498,8 @@ void use_tioctl(
#undef _nc_get_screensize
void _nc_get_screensize(
- SCREEN *sp,
- int *linep,
+ SCREEN *sp,
+ int *linep,
int *colp)
{ /* void */ }
@@ -3456,13 +3510,13 @@ void _nc_update_screensize(
#undef _nc_setup_tinfo
int _nc_setup_tinfo(
- const char *const tn,
- TERMTYPE2 *const tp)
+ const char *const tn,
+ TERMTYPE *const tp)
{ return(*(int *)0); }
#undef _nc_tinfo_cmdch
void _nc_tinfo_cmdch(
- TERMINAL *termp,
+ TERMINAL *termp,
int proto)
{ /* void */ }
@@ -3481,9 +3535,9 @@ int _nc_locale_breaks_acs(
#undef _nc_setupterm
int _nc_setupterm(
- const char *tname,
- int Filedes,
- int *errret,
+ const char *tname,
+ int Filedes,
+ int *errret,
int reuse)
{ return(*(int *)0); }
@@ -3493,8 +3547,8 @@ SCREEN *new_prescr(void)
#undef setupterm
int setupterm(
- const char *tname,
- int Filedes,
+ const char *tname,
+ int Filedes,
int *errret)
{ return(*(int *)0); }
@@ -3507,20 +3561,20 @@ char *BC;
#undef tgetent_sp
int tgetent_sp(
- SCREEN *sp,
- char *bufp,
+ SCREEN *sp,
+ char *bufp,
const char *name)
{ return(*(int *)0); }
#undef tgetent
int tgetent(
- char *bufp,
+ char *bufp,
const char *name)
{ return(*(int *)0); }
#undef tgetflag_sp
int tgetflag_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *id)
{ return(*(int *)0); }
@@ -3531,7 +3585,7 @@ int tgetflag(
#undef tgetnum_sp
int tgetnum_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *id)
{ return(*(int *)0); }
@@ -3542,14 +3596,14 @@ int tgetnum(
#undef tgetstr_sp
char *tgetstr_sp(
- SCREEN *sp,
- const char *id,
+ SCREEN *sp,
+ const char *id,
char **area)
{ return(*(char **)0); }
#undef tgetstr
char *tgetstr(
- const char *id,
+ const char *id,
char **area)
{ return(*(char **)0); }
@@ -3568,8 +3622,8 @@ char *termname(void)
#undef tgoto
char *tgoto(
- const char *string,
- int x,
+ const char *string,
+ int x,
int y)
{ return(*(char **)0); }
@@ -3577,7 +3631,7 @@ char *tgoto(
#undef tigetflag_sp
int tigetflag_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *str)
{ return(*(int *)0); }
@@ -3588,7 +3642,7 @@ int tigetflag(
#undef tigetnum_sp
int tigetnum_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *str)
{ return(*(int *)0); }
@@ -3599,7 +3653,7 @@ int tigetnum(
#undef tigetstr_sp
char *tigetstr_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *str)
{ return(*(char **)0); }
@@ -3613,32 +3667,58 @@ char *tigetstr(
#undef _nc_tparm_err
int _nc_tparm_err;
+#undef _nc_free_tparm
+void _nc_free_tparm(
+ TERMINAL *termp)
+ { /* void */ }
+
#undef _nc_tparm_analyze
int _nc_tparm_analyze(
- const char *string,
- char *p_is_s[9],
+ TERMINAL *term,
+ const char *string,
+ char **p_is_s,
int *_nc_popcount)
{ return(*(int *)0); }
#undef tparm
char *tparm(
- const char *string,
+ const char *string,
...)
{ return(*(char **)0); }
#undef tiparm
char *tiparm(
- const char *string,
+ const char *string,
...)
{ return(*(char **)0); }
+#undef tiparm_s
+char *tiparm_s(
+ int num_expected,
+ int tparm_type,
+ const char *string,
+ ...)
+ { return(*(char **)0); }
+
+#undef tiscan_s
+int tiscan_s(
+ int *num_expected,
+ int *tparm_type,
+ const char *string)
+ { return(*(int *)0); }
+
#undef _nc_tiparm
char *_nc_tiparm(
- int expected,
- const char *string,
+ int expected,
+ const char *string,
...)
{ return(*(char **)0); }
+#undef _nc_reset_tparm
+void _nc_reset_tparm(
+ TERMINAL *term)
+ { /* void */ }
+
/* ./tinfo/lib_tputs.c */
#undef PC
@@ -3655,7 +3735,7 @@ void _nc_set_no_padding(
#undef delay_output_sp
int delay_output_sp(
- SCREEN *sp,
+ SCREEN *sp,
int ms)
{ return(*(int *)0); }
@@ -3675,7 +3755,7 @@ void _nc_flush(void)
#undef _nc_outch_sp
int _nc_outch_sp(
- SCREEN *sp,
+ SCREEN *sp,
int ch)
{ return(*(int *)0); }
@@ -3686,7 +3766,7 @@ int _nc_outch(
#undef _nc_putchar_sp
int _nc_putchar_sp(
- SCREEN *sp,
+ SCREEN *sp,
int ch)
{ return(*(int *)0); }
@@ -3697,7 +3777,7 @@ int _nc_putchar(
#undef putp_sp
int putp_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *string)
{ return(*(int *)0); }
@@ -3708,35 +3788,35 @@ int putp(
#undef _nc_putp_sp
int _nc_putp_sp(
- SCREEN *sp,
- const char *name,
+ SCREEN *sp,
+ const char *name,
const char *string)
{ return(*(int *)0); }
#undef _nc_putp
int _nc_putp(
- const char *name,
+ const char *name,
const char *string)
{ return(*(int *)0); }
#undef tputs_sp
int tputs_sp(
- SCREEN *sp,
- const char *string,
- int affcnt,
+ SCREEN *sp,
+ const char *string,
+ int affcnt,
NCURSES_OUTC_sp outc)
{ return(*(int *)0); }
#undef _nc_outc_wrapper
int _nc_outc_wrapper(
- SCREEN *sp,
+ SCREEN *sp,
int c)
{ return(*(int *)0); }
#undef tputs
int tputs(
- const char *string,
- int affcnt,
+ const char *string,
+ int affcnt,
int (*outc)(
int p1))
{ return(*(int *)0); }
@@ -3762,7 +3842,7 @@ void trace(
#undef _tracef
void _tracef(
- const char *fmt,
+ const char *fmt,
...)
{ /* void */ }
@@ -3818,8 +3898,8 @@ WINDOW *_nc_retrace_win(
#undef _nc_fmt_funcptr
char *_nc_fmt_funcptr(
- char *target,
- const char *source,
+ char *target,
+ const char *source,
size_t size)
{ return(*(char **)0); }
@@ -3827,7 +3907,7 @@ char *_nc_fmt_funcptr(
#undef _traceattr2
char *_traceattr2(
- int bufnum,
+ int bufnum,
chtype newmode)
{ return(*(char **)0); }
@@ -3848,13 +3928,13 @@ attr_t _nc_retrace_attr_t(
#undef _nc_altcharset_name
const char *_nc_altcharset_name(
- attr_t attr,
+ attr_t attr,
chtype ch)
{ return(*(const char **)0); }
#undef _tracechtype2
char *_tracechtype2(
- int bufnum,
+ int bufnum,
chtype ch)
{ return(*(char **)0); }
@@ -3872,7 +3952,7 @@ chtype _nc_retrace_chtype(
#undef _nc_trace_ttymode
char *_nc_trace_ttymode(
- struct termios *tty)
+ const struct termios *tty)
{ return(*(char **)0); }
#undef _nc_tracebits
@@ -3883,7 +3963,7 @@ char *_nc_tracebits(void)
#undef _nc_tracechar
char *_nc_tracechar(
- SCREEN *sp,
+ SCREEN *sp,
int ch)
{ return(*(char **)0); }
@@ -3896,7 +3976,7 @@ char *_tracechar(
#undef _nc_get_tty_mode_sp
int _nc_get_tty_mode_sp(
- SCREEN *sp,
+ SCREEN *sp,
struct termios *buf)
{ return(*(int *)0); }
@@ -3907,7 +3987,7 @@ int _nc_get_tty_mode(
#undef _nc_set_tty_mode_sp
int _nc_set_tty_mode_sp(
- SCREEN *sp,
+ SCREEN *sp,
struct termios *buf)
{ return(*(int *)0); }
@@ -3974,9 +4054,9 @@ int resetty(void)
#undef _nc_timed_wait
int _nc_timed_wait(
- SCREEN *sp,
- int mode,
- int milliseconds,
+ SCREEN *sp,
+ int mode,
+ int milliseconds,
int *timeleft)
{ return(*(int *)0); }
@@ -3989,8 +4069,8 @@ char *_nc_first_name(
#undef _nc_name_match
int _nc_name_match(
- const char *const namelst,
- const char *const name,
+ const char *const namelst,
+ const char *const name,
const char *const delim)
{ return(*(int *)0); }
@@ -4013,14 +4093,14 @@ const char *const strfnames[] = {0};
#undef _nc_set_buffer_sp
void _nc_set_buffer_sp(
- SCREEN *sp,
- FILE *ofp,
+ SCREEN *sp,
+ FILE *ofp,
int buffered)
{ /* void */ }
#undef _nc_set_buffer
void _nc_set_buffer(
- FILE *ofp,
+ FILE *ofp,
int buffered)
{ /* void */ }
@@ -4028,67 +4108,67 @@ void _nc_set_buffer(
#undef _nc_init_termtype
void _nc_init_termtype(
- TERMTYPE2 *const tp)
+ TERMTYPE *const tp)
{ /* void */ }
#undef _nc_read_termtype
int _nc_read_termtype(
- TERMTYPE2 *ptr,
- char *buffer,
+ TERMTYPE *ptr,
+ char *buffer,
int limit)
{ return(*(int *)0); }
#undef _nc_read_file_entry
int _nc_read_file_entry(
- const char *const filename,
- TERMTYPE2 *ptr)
+ const char *const filename,
+ TERMTYPE *ptr)
{ return(*(int *)0); }
#undef _nc_read_entry
int _nc_read_entry(
- const char *const name,
- char *const filename,
- TERMTYPE2 *const tp)
+ const char *const name,
+ char *const filename,
+ TERMTYPE *const tp)
{ return(*(int *)0); }
/* ./tinfo/read_termcap.c */
#undef _nc_read_termcap_entry
int _nc_read_termcap_entry(
- const char *const tn,
- TERMTYPE2 *const tp)
+ const char *const tn,
+ TERMTYPE *const tp)
{ return(*(int *)0); }
/* ./tinfo/strings.c */
#undef _nc_str_init
string_desc *_nc_str_init(
- string_desc *dst,
- char *src,
+ string_desc *dst,
+ char *src,
size_t len)
{ return(*(string_desc **)0); }
#undef _nc_str_null
string_desc *_nc_str_null(
- string_desc *dst,
+ string_desc *dst,
size_t len)
{ return(*(string_desc **)0); }
#undef _nc_str_copy
string_desc *_nc_str_copy(
- string_desc *dst,
- string_desc *src)
+ string_desc *dst,
+ const string_desc *const src)
{ return(*(string_desc **)0); }
#undef _nc_safe_strcat
NCURSES_BOOL _nc_safe_strcat(
- string_desc *dst,
+ string_desc *dst,
const char *src)
{ return(*(NCURSES_BOOL *)0); }
#undef _nc_safe_strcpy
NCURSES_BOOL _nc_safe_strcpy(
- string_desc *dst,
+ string_desc *dst,
const char *src)
{ return(*(NCURSES_BOOL *)0); }
@@ -4096,13 +4176,13 @@ NCURSES_BOOL _nc_safe_strcpy(
#undef _nc_trace_buf
char *_nc_trace_buf(
- int bufnum,
+ int bufnum,
size_t want)
{ return(*(char **)0); }
#undef _nc_trace_bufcat
char *_nc_trace_bufcat(
- int bufnum,
+ int bufnum,
const char *value)
{ return(*(char **)0); }
@@ -4117,21 +4197,21 @@ void _nc_trace_tries(
#undef _nc_expand_try
char *_nc_expand_try(
- TRIES *tree,
- unsigned code,
- int *count,
+ TRIES *tree,
+ unsigned code,
+ int *count,
size_t len)
{ return(*(char **)0); }
#undef _nc_remove_key
int _nc_remove_key(
- TRIES **tree,
+ TRIES **tree,
unsigned code)
{ return(*(int *)0); }
#undef _nc_remove_string
int _nc_remove_string(
- TRIES **tree,
+ TRIES **tree,
const char *string)
{ return(*(int *)0); }
@@ -4139,14 +4219,14 @@ int _nc_remove_string(
#undef _nc_trim_sgr0
char *_nc_trim_sgr0(
- TERMTYPE2 *tp)
+ TERMTYPE *tp)
{ return(*(char **)0); }
/* ./unctrl.c */
#undef unctrl_sp
const char *unctrl_sp(
- SCREEN *sp,
+ SCREEN *sp,
chtype ch)
{ return(*(const char **)0); }
@@ -4159,7 +4239,7 @@ const char *unctrl(
#undef _nc_visbuf2
const char *_nc_visbuf2(
- int bufnum,
+ int bufnum,
const char *buf)
{ return(*(const char **)0); }
@@ -4170,20 +4250,20 @@ const char *_nc_visbuf(
#undef _nc_visbufn
const char *_nc_visbufn(
- const char *buf,
+ const char *buf,
int len)
{ return(*(const char **)0); }
#undef _nc_viscbuf2
const char *_nc_viscbuf2(
- int bufnum,
- const chtype *buf,
+ int bufnum,
+ const chtype *buf,
int len)
{ return(*(const char **)0); }
#undef _nc_viscbuf
const char *_nc_viscbuf(
- const chtype *buf,
+ const chtype *buf,
int len)
{ return(*(const char **)0); }
@@ -4201,18 +4281,18 @@ ENTRY *_nc_copy_entry(
#undef _nc_save_str
char *_nc_save_str(
- const char *const string)
+ const char *string)
{ return(*(char **)0); }
#undef _nc_wrap_entry
void _nc_wrap_entry(
- ENTRY *const ep,
+ ENTRY *const ep,
NCURSES_BOOL copy_strings)
{ /* void */ }
#undef _nc_merge_entry
void _nc_merge_entry(
- ENTRY *const target,
+ ENTRY *const target,
ENTRY *const source)
{ /* void */ }
@@ -4220,15 +4300,15 @@ void _nc_merge_entry(
#undef _nc_captoinfo
char *_nc_captoinfo(
- const char *cap,
- const char *s,
+ const char *cap,
+ const char *s,
int const parameterized)
{ return(*(char **)0); }
#undef _nc_infotocap
char *_nc_infotocap(
- const char *cap,
- const char *str,
+ const char *cap,
+ const char *str,
int const parameterized)
{ return(*(char **)0); }
@@ -4236,8 +4316,8 @@ char *_nc_infotocap(
#undef _nc_tic_expand
char *_nc_tic_expand(
- const char *srcp,
- NCURSES_BOOL tic_format,
+ const char *srcp,
+ NCURSES_BOOL tic_format,
int numbers)
{ return(*(char **)0); }
@@ -4245,28 +4325,28 @@ char *_nc_tic_expand(
#undef _nc_check_termtype2
void (*_nc_check_termtype2)(
- TERMTYPE2 *p1,
+ TERMTYPE *p1,
NCURSES_BOOL p2);
#undef _nc_entry_match
NCURSES_BOOL _nc_entry_match(
- char *n1,
+ char *n1,
char *n2)
{ return(*(NCURSES_BOOL *)0); }
#undef _nc_read_entry_source
void _nc_read_entry_source(
- FILE *fp,
- char *buf,
- int literal,
- NCURSES_BOOL silent,
+ FILE *fp,
+ char *buf,
+ int literal,
+ NCURSES_BOOL silent,
NCURSES_BOOL (*hook)(
ENTRY *p1))
{ /* void */ }
#undef _nc_resolve_uses2
int _nc_resolve_uses2(
- NCURSES_BOOL fullresolve,
+ NCURSES_BOOL fullresolve,
NCURSES_BOOL literal)
{ return(*(int *)0); }
@@ -4291,7 +4371,7 @@ NCURSES_BOOL _nc_disable_period;
#undef _nc_reset_input
void _nc_reset_input(
- FILE *fp,
+ FILE *fp,
char *buf)
{ /* void */ }
@@ -4302,8 +4382,8 @@ int _nc_get_token(
#undef _nc_trans_string
int _nc_trans_string(
- char *ptr,
- char *last)
+ char *ptr,
+ const char *const last)
{ return(*(int *)0); }
#undef _nc_push_token
@@ -4320,14 +4400,14 @@ void _nc_panic_mode(
#undef _nc_parse_entry
int _nc_parse_entry(
- ENTRY *entryp,
- int literal,
+ ENTRY *entryp,
+ int literal,
NCURSES_BOOL silent)
{ return(*(int *)0); }
#undef _nc_capcmp
int _nc_capcmp(
- const char *s,
+ const char *s,
const char *t)
{ return(*(int *)0); }
@@ -4340,14 +4420,14 @@ void _nc_set_writedir(
#undef _nc_write_entry
void _nc_write_entry(
- TERMTYPE2 *const tp)
+ TERMTYPE *const tp)
{ /* void */ }
#undef _nc_write_object
int _nc_write_object(
- TERMTYPE2 *tp,
- char *buffer,
- unsigned *offset,
+ TERMTYPE *tp,
+ char *buffer,
+ unsigned *offset,
unsigned limit)
{ return(*(int *)0); }
@@ -4359,14 +4439,14 @@ int _nc_tic_written(void)
#undef define_key_sp
int define_key_sp(
- SCREEN *sp,
- const char *str,
+ SCREEN *sp,
+ const char *str,
int keycode)
{ return(*(int *)0); }
#undef define_key
int define_key(
- const char *str,
+ const char *str,
int keycode)
{ return(*(int *)0); }
@@ -4380,7 +4460,7 @@ void _nc_hashed_db(void)
#undef key_defined_sp
int key_defined_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *str)
{ return(*(int *)0); }
@@ -4393,14 +4473,14 @@ int key_defined(
#undef keybound_sp
char *keybound_sp(
- SCREEN *sp,
- int code,
+ SCREEN *sp,
+ int code,
int count)
{ return(*(char **)0); }
#undef keybound
char *keybound(
- int code,
+ int code,
int count)
{ return(*(char **)0); }
@@ -4408,14 +4488,14 @@ char *keybound(
#undef keyok_sp
int keyok_sp(
- SCREEN *sp,
- int c,
+ SCREEN *sp,
+ int c,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef keyok
int keyok(
- int c,
+ int c,
NCURSES_BOOL flag)
{ return(*(int *)0); }
diff --git a/ncurses/llib-lncursest b/ncurses/llib-lncursest
index 36a94b57297e..7c8bac9c4076 100644
--- a/ncurses/llib-lncursest
+++ b/ncurses/llib-lncursest
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2022,2023 Thomas E. Dickey *
* Copyright 2008-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -70,7 +70,7 @@ void _nc_hash_map(void)
#undef _nc_make_oldhash_sp
void _nc_make_oldhash_sp(
- SCREEN *sp,
+ SCREEN *sp,
int i)
{ /* void */ }
@@ -81,16 +81,16 @@ void _nc_make_oldhash(
#undef _nc_scroll_oldhash_sp
void _nc_scroll_oldhash_sp(
- SCREEN *sp,
- int n,
- int top,
+ SCREEN *sp,
+ int n,
+ int top,
int bot)
{ /* void */ }
#undef _nc_scroll_oldhash
void _nc_scroll_oldhash(
- int n,
- int top,
+ int n,
+ int top,
int bot)
{ /* void */ }
@@ -98,25 +98,25 @@ void _nc_scroll_oldhash(
#undef _nc_render
chtype _nc_render(
- WINDOW *win,
+ WINDOW *win,
chtype ch)
{ return(*(chtype *)0); }
#undef _nc_waddch_nosync
int _nc_waddch_nosync(
- WINDOW *win,
+ WINDOW *win,
const chtype c)
{ return(*(int *)0); }
#undef waddch
int waddch(
- WINDOW *win,
+ WINDOW *win,
const chtype ch)
{ return(*(int *)0); }
#undef wechochar
int wechochar(
- WINDOW *win,
+ WINDOW *win,
const chtype ch)
{ return(*(int *)0); }
@@ -124,15 +124,15 @@ int wechochar(
#undef waddnstr
int waddnstr(
- WINDOW *win,
- const char *astr,
+ WINDOW *win,
+ const char *astr,
int n)
{ return(*(int *)0); }
#undef waddchnstr
int waddchnstr(
- WINDOW *win,
- const chtype *astr,
+ WINDOW *win,
+ const chtype *astr,
int n)
{ return(*(int *)0); }
@@ -151,13 +151,13 @@ int beep(void)
#undef wbkgdset
void wbkgdset(
- WINDOW *win,
+ WINDOW *win,
chtype ch)
{ /* void */ }
#undef wbkgd
int wbkgd(
- WINDOW *win,
+ WINDOW *win,
chtype ch)
{ return(*(int *)0); }
@@ -165,14 +165,14 @@ int wbkgd(
#undef wborder
int wborder(
- WINDOW *win,
- chtype ls,
- chtype rs,
- chtype ts,
- chtype bs,
- chtype tl,
- chtype tr,
- chtype bl,
+ WINDOW *win,
+ chtype ls,
+ chtype rs,
+ chtype ts,
+ chtype bs,
+ chtype tl,
+ chtype tr,
+ chtype bl,
chtype br)
{ return(*(int *)0); }
@@ -180,10 +180,10 @@ int wborder(
#undef wchgat
int wchgat(
- WINDOW *win,
- int n,
- attr_t attr,
- short pair_arg,
+ WINDOW *win,
+ int n,
+ attr_t attr,
+ short pair_arg,
const void *opts)
{ return(*(int *)0); }
@@ -198,7 +198,7 @@ int wclear(
#undef clearok
int clearok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
@@ -246,62 +246,62 @@ int start_color(void)
#undef _nc_change_pair
void _nc_change_pair(
- SCREEN *sp,
+ SCREEN *sp,
int pair)
{ /* void */ }
#undef _nc_reserve_pairs
void _nc_reserve_pairs(
- SCREEN *sp,
+ SCREEN *sp,
int want)
{ /* void */ }
#undef _nc_init_pair
int _nc_init_pair(
- SCREEN *sp,
- int pair,
- int f,
+ SCREEN *sp,
+ int pair,
+ int f,
int b)
{ return(*(int *)0); }
#undef init_pair_sp
int init_pair_sp(
- SCREEN *sp,
- short pair,
- short f,
+ SCREEN *sp,
+ short pair,
+ short f,
short b)
{ return(*(int *)0); }
#undef init_pair
int init_pair(
- short pair,
- short f,
+ short pair,
+ short f,
short b)
{ return(*(int *)0); }
#undef _nc_init_color
int _nc_init_color(
- SCREEN *sp,
- int color,
- int r,
- int g,
+ SCREEN *sp,
+ int color,
+ int r,
+ int g,
int b)
{ return(*(int *)0); }
#undef init_color_sp
int init_color_sp(
- SCREEN *sp,
- short color,
- short r,
- short g,
+ SCREEN *sp,
+ short color,
+ short r,
+ short g,
short b)
{ return(*(int *)0); }
#undef init_color
int init_color(
- short color,
- short r,
- short g,
+ short color,
+ short r,
+ short g,
short b)
{ return(*(int *)0); }
@@ -325,58 +325,58 @@ NCURSES_BOOL has_colors(void)
#undef color_content_sp
int color_content_sp(
- SCREEN *sp,
- short color,
- short *r,
- short *g,
+ SCREEN *sp,
+ short color,
+ short *r,
+ short *g,
short *b)
{ return(*(int *)0); }
#undef color_content
int color_content(
- short color,
- short *r,
- short *g,
+ short color,
+ short *r,
+ short *g,
short *b)
{ return(*(int *)0); }
#undef _nc_pair_content
int _nc_pair_content(
- SCREEN *sp,
- int pair,
- int *f,
+ SCREEN *sp,
+ int pair,
+ int *f,
int *b)
{ return(*(int *)0); }
#undef pair_content_sp
int pair_content_sp(
- SCREEN *sp,
- short pair,
- short *f,
+ SCREEN *sp,
+ short pair,
+ short *f,
short *b)
{ return(*(int *)0); }
#undef pair_content
int pair_content(
- short pair,
- short *f,
+ short pair,
+ short *f,
short *b)
{ return(*(int *)0); }
#undef _nc_do_color_sp
void _nc_do_color_sp(
- SCREEN *sp,
- int old_pair,
- int pair,
- int reverse,
+ SCREEN *sp,
+ int old_pair,
+ int pair,
+ int reverse,
NCURSES_OUTC_sp outc)
{ /* void */ }
#undef _nc_do_color
void _nc_do_color(
- int old_pair,
- int pair,
- int reverse,
+ int old_pair,
+ int pair,
+ int reverse,
NCURSES_OUTC outc)
{ /* void */ }
@@ -384,8 +384,8 @@ void _nc_do_color(
#undef wcolor_set
int wcolor_set(
- WINDOW *win,
- short pair_arg,
+ WINDOW *win,
+ short pair_arg,
void *opts)
{ return(*(int *)0); }
@@ -461,7 +461,7 @@ int addch(
#undef addchnstr
int addchnstr(
- const chtype *a1,
+ const chtype *a1,
int z)
{ return(*(int *)0); }
@@ -472,7 +472,7 @@ int addchstr(
#undef addnstr
int addnstr(
- const char *a1,
+ const char *a1,
int z)
{ return(*(int *)0); }
@@ -483,42 +483,42 @@ int addstr(
#undef attroff
int attroff(
- int z)
+ NCURSES_ATTR_T z)
{ return(*(int *)0); }
#undef attron
int attron(
- int z)
+ NCURSES_ATTR_T z)
{ return(*(int *)0); }
#undef attrset
int attrset(
- int z)
+ NCURSES_ATTR_T z)
{ return(*(int *)0); }
#undef attr_get
int attr_get(
- attr_t *a1,
- short *a2,
+ attr_t *a1,
+ short *a2,
void *z)
{ return(*(int *)0); }
#undef attr_off
int attr_off(
- attr_t a1,
+ attr_t a1,
void *z)
{ return(*(int *)0); }
#undef attr_on
int attr_on(
- attr_t a1,
+ attr_t a1,
void *z)
{ return(*(int *)0); }
#undef attr_set
int attr_set(
- attr_t a1,
- short a2,
+ attr_t a1,
+ short a2,
void *z)
{ return(*(int *)0); }
@@ -534,28 +534,28 @@ void bkgdset(
#undef border
int border(
- chtype a1,
- chtype a2,
- chtype a3,
- chtype a4,
- chtype a5,
- chtype a6,
- chtype a7,
+ chtype a1,
+ chtype a2,
+ chtype a3,
+ chtype a4,
+ chtype a5,
+ chtype a6,
+ chtype a7,
chtype z)
{ return(*(int *)0); }
#undef box
int box(
- WINDOW *a1,
- chtype a2,
+ WINDOW *a1,
+ chtype a2,
chtype z)
{ return(*(int *)0); }
#undef chgat
int chgat(
- int a1,
- attr_t a2,
- short a3,
+ int a1,
+ attr_t a2,
+ short a3,
const void *z)
{ return(*(int *)0); }
@@ -573,7 +573,7 @@ int clrtoeol(void)
#undef color_set
int color_set(
- short a1,
+ short a1,
void *z)
{ return(*(int *)0); }
@@ -610,7 +610,7 @@ int getch(void)
#undef getnstr
int getnstr(
- char *a1,
+ char *a1,
int z)
{ return(*(int *)0); }
@@ -621,7 +621,7 @@ int getstr(
#undef hline
int hline(
- chtype a1,
+ chtype a1,
int z)
{ return(*(int *)0); }
@@ -631,7 +631,7 @@ chtype inch(void)
#undef inchnstr
int inchnstr(
- chtype *a1,
+ chtype *a1,
int z)
{ return(*(int *)0); }
@@ -642,7 +642,7 @@ int inchstr(
#undef innstr
int innstr(
- char *a1,
+ char *a1,
int z)
{ return(*(int *)0); }
@@ -662,7 +662,7 @@ int insertln(void)
#undef insnstr
int insnstr(
- const char *a1,
+ const char *a1,
int z)
{ return(*(int *)0); }
@@ -678,323 +678,323 @@ int instr(
#undef move
int move(
- int a1,
+ int a1,
int z)
{ return(*(int *)0); }
#undef mvaddch
int mvaddch(
- int a1,
- int a2,
+ int a1,
+ int a2,
const chtype z)
{ return(*(int *)0); }
#undef mvaddchnstr
int mvaddchnstr(
- int a1,
- int a2,
- const chtype *a3,
+ int a1,
+ int a2,
+ const chtype *a3,
int z)
{ return(*(int *)0); }
#undef mvaddchstr
int mvaddchstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
const chtype *z)
{ return(*(int *)0); }
#undef mvaddnstr
int mvaddnstr(
- int a1,
- int a2,
- const char *a3,
+ int a1,
+ int a2,
+ const char *a3,
int z)
{ return(*(int *)0); }
#undef mvaddstr
int mvaddstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
const char *z)
{ return(*(int *)0); }
#undef mvchgat
int mvchgat(
- int a1,
- int a2,
- int a3,
- attr_t a4,
- short a5,
+ int a1,
+ int a2,
+ int a3,
+ attr_t a4,
+ short a5,
const void *z)
{ return(*(int *)0); }
#undef mvdelch
int mvdelch(
- int a1,
+ int a1,
int z)
{ return(*(int *)0); }
#undef mvgetch
int mvgetch(
- int a1,
+ int a1,
int z)
{ return(*(int *)0); }
#undef mvgetnstr
int mvgetnstr(
- int a1,
- int a2,
- char *a3,
+ int a1,
+ int a2,
+ char *a3,
int z)
{ return(*(int *)0); }
#undef mvgetstr
int mvgetstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
char *z)
{ return(*(int *)0); }
#undef mvhline
int mvhline(
- int a1,
- int a2,
- chtype a3,
+ int a1,
+ int a2,
+ chtype a3,
int z)
{ return(*(int *)0); }
#undef mvinch
chtype mvinch(
- int a1,
+ int a1,
int z)
{ return(*(chtype *)0); }
#undef mvinchnstr
int mvinchnstr(
- int a1,
- int a2,
- chtype *a3,
+ int a1,
+ int a2,
+ chtype *a3,
int z)
{ return(*(int *)0); }
#undef mvinchstr
int mvinchstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
chtype *z)
{ return(*(int *)0); }
#undef mvinnstr
int mvinnstr(
- int a1,
- int a2,
- char *a3,
+ int a1,
+ int a2,
+ char *a3,
int z)
{ return(*(int *)0); }
#undef mvinsch
int mvinsch(
- int a1,
- int a2,
+ int a1,
+ int a2,
chtype z)
{ return(*(int *)0); }
#undef mvinsnstr
int mvinsnstr(
- int a1,
- int a2,
- const char *a3,
+ int a1,
+ int a2,
+ const char *a3,
int z)
{ return(*(int *)0); }
#undef mvinsstr
int mvinsstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
const char *z)
{ return(*(int *)0); }
#undef mvinstr
int mvinstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
char *z)
{ return(*(int *)0); }
#undef mvvline
int mvvline(
- int a1,
- int a2,
- chtype a3,
+ int a1,
+ int a2,
+ chtype a3,
int z)
{ return(*(int *)0); }
#undef mvwaddch
int mvwaddch(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
const chtype z)
{ return(*(int *)0); }
#undef mvwaddchnstr
int mvwaddchnstr(
- WINDOW *a1,
- int a2,
- int a3,
- const chtype *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ const chtype *a4,
int z)
{ return(*(int *)0); }
#undef mvwaddchstr
int mvwaddchstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
const chtype *z)
{ return(*(int *)0); }
#undef mvwaddnstr
int mvwaddnstr(
- WINDOW *a1,
- int a2,
- int a3,
- const char *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ const char *a4,
int z)
{ return(*(int *)0); }
#undef mvwaddstr
int mvwaddstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
const char *z)
{ return(*(int *)0); }
#undef mvwchgat
int mvwchgat(
- WINDOW *a1,
- int a2,
- int a3,
- int a4,
- attr_t a5,
- short a6,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ int a4,
+ attr_t a5,
+ short a6,
const void *z)
{ return(*(int *)0); }
#undef mvwdelch
int mvwdelch(
- WINDOW *a1,
- int a2,
+ WINDOW *a1,
+ int a2,
int z)
{ return(*(int *)0); }
#undef mvwgetch
int mvwgetch(
- WINDOW *a1,
- int a2,
+ WINDOW *a1,
+ int a2,
int z)
{ return(*(int *)0); }
#undef mvwgetnstr
int mvwgetnstr(
- WINDOW *a1,
- int a2,
- int a3,
- char *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ char *a4,
int z)
{ return(*(int *)0); }
#undef mvwgetstr
int mvwgetstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
char *z)
{ return(*(int *)0); }
#undef mvwhline
int mvwhline(
- WINDOW *a1,
- int a2,
- int a3,
- chtype a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ chtype a4,
int z)
{ return(*(int *)0); }
#undef mvwinch
chtype mvwinch(
- WINDOW *a1,
- int a2,
+ WINDOW *a1,
+ int a2,
int z)
{ return(*(chtype *)0); }
#undef mvwinchnstr
int mvwinchnstr(
- WINDOW *a1,
- int a2,
- int a3,
- chtype *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ chtype *a4,
int z)
{ return(*(int *)0); }
#undef mvwinchstr
int mvwinchstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
chtype *z)
{ return(*(int *)0); }
#undef mvwinnstr
int mvwinnstr(
- WINDOW *a1,
- int a2,
- int a3,
- char *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ char *a4,
int z)
{ return(*(int *)0); }
#undef mvwinsch
int mvwinsch(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
chtype z)
{ return(*(int *)0); }
#undef mvwinsnstr
int mvwinsnstr(
- WINDOW *a1,
- int a2,
- int a3,
- const char *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ const char *a4,
int z)
{ return(*(int *)0); }
#undef mvwinsstr
int mvwinsstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
const char *z)
{ return(*(int *)0); }
#undef mvwinstr
int mvwinstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
char *z)
{ return(*(int *)0); }
#undef mvwvline
int mvwvline(
- WINDOW *a1,
- int a2,
- int a3,
- chtype a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ chtype a4,
int z)
{ return(*(int *)0); }
@@ -1024,7 +1024,7 @@ int scroll(
#undef setscrreg
int setscrreg(
- int a1,
+ int a1,
int z)
{ return(*(int *)0); }
@@ -1043,8 +1043,8 @@ void timeout(
#undef touchline
int touchline(
- WINDOW *a1,
- int a2,
+ WINDOW *a1,
+ int a2,
int z)
{ return(*(int *)0); }
@@ -1060,53 +1060,53 @@ int untouchwin(
#undef vline
int vline(
- chtype a1,
+ chtype a1,
int z)
{ return(*(int *)0); }
#undef waddchstr
int waddchstr(
- WINDOW *a1,
+ WINDOW *a1,
const chtype *z)
{ return(*(int *)0); }
#undef waddstr
int waddstr(
- WINDOW *a1,
+ WINDOW *a1,
const char *z)
{ return(*(int *)0); }
#undef wattron
int wattron(
- WINDOW *a1,
+ WINDOW *a1,
int z)
{ return(*(int *)0); }
#undef wattroff
int wattroff(
- WINDOW *a1,
+ WINDOW *a1,
int z)
{ return(*(int *)0); }
#undef wattrset
int wattrset(
- WINDOW *a1,
+ WINDOW *a1,
int z)
{ return(*(int *)0); }
#undef wattr_get
int wattr_get(
- WINDOW *a1,
- attr_t *a2,
- short *a3,
+ WINDOW *a1,
+ attr_t *a2,
+ short *a3,
void *z)
{ return(*(int *)0); }
#undef wattr_set
int wattr_set(
- WINDOW *a1,
- attr_t a2,
- short a3,
+ WINDOW *a1,
+ attr_t a2,
+ short a3,
void *z)
{ return(*(int *)0); }
@@ -1117,13 +1117,13 @@ int wdeleteln(
#undef wgetstr
int wgetstr(
- WINDOW *a1,
+ WINDOW *a1,
char *z)
{ return(*(int *)0); }
#undef winchstr
int winchstr(
- WINDOW *a1,
+ WINDOW *a1,
chtype *z)
{ return(*(int *)0); }
@@ -1134,13 +1134,13 @@ int winsertln(
#undef winsstr
int winsstr(
- WINDOW *a1,
+ WINDOW *a1,
const char *z)
{ return(*(int *)0); }
#undef winstr
int winstr(
- WINDOW *a1,
+ WINDOW *a1,
char *z)
{ return(*(int *)0); }
@@ -1271,15 +1271,15 @@ int wgetdelay(
#undef wgetscrreg
int wgetscrreg(
- const WINDOW *a1,
- int *a2,
+ const WINDOW *a1,
+ int *a2,
int *z)
{ return(*(int *)0); }
#undef mouse_trafo
NCURSES_BOOL mouse_trafo(
- int *a1,
- int *a2,
+ int *a1,
+ int *a2,
NCURSES_BOOL z)
{ return(*(NCURSES_BOOL *)0); }
@@ -1296,7 +1296,7 @@ int *_nc_ptr_Escdelay(
#undef set_escdelay_sp
int set_escdelay_sp(
- SCREEN *sp,
+ SCREEN *sp,
int value)
{ return(*(int *)0); }
@@ -1316,8 +1316,8 @@ int get_escdelay(void)
#undef _nc_wgetch
int _nc_wgetch(
- WINDOW *win,
- int *result,
+ WINDOW *win,
+ int *result,
int use_meta)
{ return(*(int *)0); }
@@ -1330,8 +1330,8 @@ int wgetch(
#undef wgetnstr
int wgetnstr(
- WINDOW *win,
- char *str,
+ WINDOW *win,
+ char *str,
int maxlen)
{ return(*(int *)0); }
@@ -1339,8 +1339,8 @@ int wgetnstr(
#undef whline
int whline(
- WINDOW *win,
- chtype ch,
+ WINDOW *win,
+ chtype ch,
int n)
{ return(*(int *)0); }
@@ -1348,7 +1348,7 @@ int whline(
#undef immedok
void immedok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ /* void */ }
@@ -1356,8 +1356,8 @@ void immedok(
#undef winchnstr
int winchnstr(
- WINDOW *win,
- chtype *str,
+ WINDOW *win,
+ chtype *str,
int n)
{ return(*(int *)0); }
@@ -1371,14 +1371,14 @@ WINDOW *initscr(void)
#undef _nc_insert_ch
int _nc_insert_ch(
- SCREEN *sp,
- WINDOW *win,
+ SCREEN *sp,
+ WINDOW *win,
chtype ch)
{ return(*(int *)0); }
#undef winsch
int winsch(
- WINDOW *win,
+ WINDOW *win,
chtype c)
{ return(*(int *)0); }
@@ -1386,7 +1386,7 @@ int winsch(
#undef winsdelln
int winsdelln(
- WINDOW *win,
+ WINDOW *win,
int n)
{ return(*(int *)0); }
@@ -1394,8 +1394,8 @@ int winsdelln(
#undef winsnstr
int winsnstr(
- WINDOW *win,
- const char *s,
+ WINDOW *win,
+ const char *s,
int n)
{ return(*(int *)0); }
@@ -1403,8 +1403,8 @@ int winsnstr(
#undef winnstr
int winnstr(
- WINDOW *win,
- char *str,
+ WINDOW *win,
+ char *str,
int n)
{ return(*(int *)0); }
@@ -1423,7 +1423,7 @@ NCURSES_BOOL isendwin(void)
#undef leaveok
int leaveok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
@@ -1431,7 +1431,7 @@ int leaveok(
#undef getmouse_sp
int getmouse_sp(
- SCREEN *sp,
+ SCREEN *sp,
MEVENT *aevent)
{ return(*(int *)0); }
@@ -1442,7 +1442,7 @@ int getmouse(
#undef ungetmouse_sp
int ungetmouse_sp(
- SCREEN *sp,
+ SCREEN *sp,
MEVENT *aevent)
{ return(*(int *)0); }
@@ -1453,27 +1453,27 @@ int ungetmouse(
#undef mousemask_sp
mmask_t mousemask_sp(
- SCREEN *sp,
- mmask_t newmask,
+ SCREEN *sp,
+ mmask_t newmask,
mmask_t *oldmask)
{ return(*(mmask_t *)0); }
#undef mousemask
mmask_t mousemask(
- mmask_t newmask,
+ mmask_t newmask,
mmask_t *oldmask)
{ return(*(mmask_t *)0); }
#undef wenclose
NCURSES_BOOL wenclose(
- const WINDOW *win,
- int y,
+ const WINDOW *win,
+ int y,
int x)
{ return(*(NCURSES_BOOL *)0); }
#undef mouseinterval_sp
int mouseinterval_sp(
- SCREEN *sp,
+ SCREEN *sp,
int maxclick)
{ return(*(int *)0); }
@@ -1498,9 +1498,9 @@ NCURSES_BOOL has_mouse(void)
#undef wmouse_trafo
NCURSES_BOOL wmouse_trafo(
- const WINDOW *win,
- int *pY,
- int *pX,
+ const WINDOW *win,
+ int *pY,
+ int *pX,
NCURSES_BOOL to_screen)
{ return(*(NCURSES_BOOL *)0); }
@@ -1508,8 +1508,8 @@ NCURSES_BOOL wmouse_trafo(
#undef wmove
int wmove(
- WINDOW *win,
- int y,
+ WINDOW *win,
+ int y,
int x)
{ return(*(int *)0); }
@@ -1517,14 +1517,14 @@ int wmove(
#undef _nc_msec_cost_sp
int _nc_msec_cost_sp(
- SCREEN *sp,
- const char *const cap,
+ SCREEN *sp,
+ const char *const cap,
int affcnt)
{ return(*(int *)0); }
#undef _nc_msec_cost
int _nc_msec_cost(
- const char *const cap,
+ const char *const cap,
int affcnt)
{ return(*(int *)0); }
@@ -1557,35 +1557,35 @@ void _nc_mvcur_wrap(void)
#undef _nc_mvcur_sp
int _nc_mvcur_sp(
- SCREEN *sp,
- int yold,
- int xold,
- int ynew,
+ SCREEN *sp,
+ int yold,
+ int xold,
+ int ynew,
int xnew)
{ return(*(int *)0); }
#undef _nc_mvcur
int _nc_mvcur(
- int yold,
- int xold,
- int ynew,
+ int yold,
+ int xold,
+ int ynew,
int xnew)
{ return(*(int *)0); }
#undef mvcur_sp
int mvcur_sp(
- SCREEN *sp,
- int yold,
- int xold,
- int ynew,
+ SCREEN *sp,
+ int yold,
+ int xold,
+ int ynew,
int xnew)
{ return(*(int *)0); }
#undef mvcur
int mvcur(
- int yold,
- int xold,
- int ynew,
+ int yold,
+ int xold,
+ int ynew,
int xnew)
{ return(*(int *)0); }
@@ -1596,8 +1596,8 @@ int _nc_optimize_enable;
#undef mvwin
int mvwin(
- WINDOW *win,
- int by,
+ WINDOW *win,
+ int by,
int bx)
{ return(*(int *)0); }
@@ -1623,16 +1623,16 @@ void nofilter(void)
#undef newterm_sp
SCREEN *newterm_sp(
- SCREEN *sp,
- const char *name,
- FILE *ofp,
+ SCREEN *sp,
+ const char *name,
+ FILE *ofp,
FILE *ifp)
{ return(*(SCREEN **)0); }
#undef newterm
SCREEN *newterm(
- const char *name,
- FILE *ofp,
+ const char *name,
+ FILE *ofp,
FILE *ifp)
{ return(*(SCREEN **)0); }
@@ -1645,46 +1645,46 @@ int _nc_freewin(
#undef newwin_sp
WINDOW *newwin_sp(
- SCREEN *sp,
- int num_lines,
- int num_columns,
- int begy,
+ SCREEN *sp,
+ int num_lines,
+ int num_columns,
+ int begy,
int begx)
{ return(*(WINDOW **)0); }
#undef newwin
WINDOW *newwin(
- int num_lines,
- int num_columns,
- int begy,
+ int num_lines,
+ int num_columns,
+ int begy,
int begx)
{ return(*(WINDOW **)0); }
#undef derwin
WINDOW *derwin(
- WINDOW *orig,
- int num_lines,
- int num_columns,
- int begy,
+ WINDOW *orig,
+ int num_lines,
+ int num_columns,
+ int begy,
int begx)
{ return(*(WINDOW **)0); }
#undef subwin
WINDOW *subwin(
- WINDOW *w,
- int l,
- int c,
- int y,
+ WINDOW *w,
+ int l,
+ int c,
+ int y,
int x)
{ return(*(WINDOW **)0); }
#undef _nc_makenew_sp
WINDOW *_nc_makenew_sp(
- SCREEN *sp,
- int num_lines,
- int num_columns,
- int begy,
- int begx,
+ SCREEN *sp,
+ int num_lines,
+ int num_columns,
+ int begy,
+ int begx,
int flags)
{ return(*(WINDOW **)0); }
@@ -1727,26 +1727,26 @@ int nonl(void)
#undef overlay
int overlay(
- const WINDOW *win1,
+ const WINDOW *win1,
WINDOW *win2)
{ return(*(int *)0); }
#undef overwrite
int overwrite(
- const WINDOW *win1,
+ const WINDOW *win1,
WINDOW *win2)
{ return(*(int *)0); }
#undef copywin
int copywin(
- const WINDOW *src,
- WINDOW *dst,
- int sminrow,
- int smincol,
- int dminrow,
- int dmincol,
- int dmaxrow,
- int dmaxcol,
+ const WINDOW *src,
+ WINDOW *dst,
+ int sminrow,
+ int smincol,
+ int dminrow,
+ int dmincol,
+ int dmaxrow,
+ int dmaxcol,
int over)
{ return(*(int *)0); }
@@ -1754,51 +1754,51 @@ int copywin(
#undef newpad_sp
WINDOW *newpad_sp(
- SCREEN *sp,
- int l,
+ SCREEN *sp,
+ int l,
int c)
{ return(*(WINDOW **)0); }
#undef newpad
WINDOW *newpad(
- int l,
+ int l,
int c)
{ return(*(WINDOW **)0); }
#undef subpad
WINDOW *subpad(
- WINDOW *orig,
- int l,
- int c,
- int begy,
+ WINDOW *orig,
+ int l,
+ int c,
+ int begy,
int begx)
{ return(*(WINDOW **)0); }
#undef prefresh
int prefresh(
- WINDOW *win,
- int pminrow,
- int pmincol,
- int sminrow,
- int smincol,
- int smaxrow,
+ WINDOW *win,
+ int pminrow,
+ int pmincol,
+ int sminrow,
+ int smincol,
+ int smaxrow,
int smaxcol)
{ return(*(int *)0); }
#undef pnoutrefresh
int pnoutrefresh(
- WINDOW *win,
- int pminrow,
- int pmincol,
- int sminrow,
- int smincol,
- int smaxrow,
+ WINDOW *win,
+ int pminrow,
+ int pmincol,
+ int sminrow,
+ int smincol,
+ int smaxrow,
int smaxcol)
{ return(*(int *)0); }
#undef pechochar
int pechochar(
- WINDOW *pad,
+ WINDOW *pad,
const chtype ch)
{ return(*(int *)0); }
@@ -1806,45 +1806,45 @@ int pechochar(
#undef printw
int printw(
- const char *fmt,
+ const char *fmt,
...)
{ return(*(int *)0); }
#undef wprintw
int wprintw(
- WINDOW *win,
- const char *fmt,
+ WINDOW *win,
+ const char *fmt,
...)
{ return(*(int *)0); }
#undef mvprintw
int mvprintw(
- int y,
- int x,
- const char *fmt,
+ int y,
+ int x,
+ const char *fmt,
...)
{ return(*(int *)0); }
#undef mvwprintw
int mvwprintw(
- WINDOW *win,
- int y,
- int x,
- const char *fmt,
+ WINDOW *win,
+ int y,
+ int x,
+ const char *fmt,
...)
{ return(*(int *)0); }
#undef vwprintw
int vwprintw(
- WINDOW *win,
- const char *fmt,
+ WINDOW *win,
+ const char *fmt,
va_list argp)
{ return(*(int *)0); }
#undef vw_printw
int vw_printw(
- WINDOW *win,
- const char *fmt,
+ WINDOW *win,
+ const char *fmt,
va_list argp)
{ return(*(int *)0); }
@@ -1852,8 +1852,8 @@ int vw_printw(
#undef wredrawln
int wredrawln(
- WINDOW *win,
- int beg,
+ WINDOW *win,
+ int beg,
int num)
{ return(*(int *)0); }
@@ -1873,16 +1873,16 @@ int wnoutrefresh(
#undef restartterm_sp
int restartterm_sp(
- SCREEN *sp,
- const char *termp,
- int filenum,
+ SCREEN *sp,
+ const char *termp,
+ int filenum,
int *errret)
{ return(*(int *)0); }
#undef restartterm
int restartterm(
- const char *termp,
- int filenum,
+ const char *termp,
+ int filenum,
int *errret)
{ return(*(int *)0); }
@@ -1890,45 +1890,45 @@ int restartterm(
#undef vwscanw
int vwscanw(
- WINDOW *win,
- const char *fmt,
+ WINDOW *win,
+ const char *fmt,
va_list argp)
{ return(*(int *)0); }
#undef vw_scanw
int vw_scanw(
- WINDOW *win,
- const char *fmt,
+ WINDOW *win,
+ const char *fmt,
va_list argp)
{ return(*(int *)0); }
#undef scanw
int scanw(
- const char *fmt,
+ const char *fmt,
...)
{ return(*(int *)0); }
#undef wscanw
int wscanw(
- WINDOW *win,
- const char *fmt,
+ WINDOW *win,
+ const char *fmt,
...)
{ return(*(int *)0); }
#undef mvscanw
int mvscanw(
- int y,
- int x,
- const char *fmt,
+ int y,
+ int x,
+ const char *fmt,
...)
{ return(*(int *)0); }
#undef mvwscanw
int mvwscanw(
- WINDOW *win,
- int y,
- int x,
- const char *fmt,
+ WINDOW *win,
+ int y,
+ int x,
+ const char *fmt,
...)
{ return(*(int *)0); }
@@ -1936,7 +1936,7 @@ int mvwscanw(
#undef getwin_sp
WINDOW *getwin_sp(
- SCREEN *sp,
+ SCREEN *sp,
FILE *filep)
{ return(*(WINDOW **)0); }
@@ -1947,13 +1947,13 @@ WINDOW *getwin(
#undef putwin
int putwin(
- WINDOW *win,
+ WINDOW *win,
FILE *filep)
{ return(*(int *)0); }
#undef scr_restore_sp
int scr_restore_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *file)
{ return(*(int *)0); }
@@ -1969,7 +1969,7 @@ int scr_dump(
#undef scr_init_sp
int scr_init_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *file)
{ return(*(int *)0); }
@@ -1980,7 +1980,7 @@ int scr_init(
#undef scr_set_sp
int scr_set_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *file)
{ return(*(int *)0); }
@@ -1993,16 +1993,16 @@ int scr_set(
#undef _nc_scroll_window
void _nc_scroll_window(
- WINDOW *win,
- int const n,
- int const top,
- int const bottom,
+ WINDOW *win,
+ int const n,
+ int const top,
+ int const bottom,
chtype blank)
{ /* void */ }
#undef wscrl
int wscrl(
- WINDOW *win,
+ WINDOW *win,
int n)
{ return(*(int *)0); }
@@ -2010,7 +2010,7 @@ int wscrl(
#undef scrollok
int scrollok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
@@ -2018,8 +2018,8 @@ int scrollok(
#undef wsetscrreg
int wsetscrreg(
- WINDOW *win,
- int top,
+ WINDOW *win,
+ int top,
int bottom)
{ return(*(int *)0); }
@@ -2037,54 +2037,54 @@ void delscreen(
#undef _nc_setupscreen_sp
int _nc_setupscreen_sp(
- SCREEN **spp,
- int slines,
- int scolumns,
- FILE *output,
- int filtered,
+ SCREEN **spp,
+ int slines,
+ int scolumns,
+ FILE *output,
+ int filtered,
int slk_format)
{ return(*(int *)0); }
#undef _nc_setupscreen
int _nc_setupscreen(
- int slines,
- int scolumns,
- FILE *output,
- int filtered,
+ int slines,
+ int scolumns,
+ FILE *output,
+ int filtered,
int slk_format)
{ return(*(int *)0); }
#undef _nc_ripoffline_sp
int _nc_ripoffline_sp(
- SCREEN *sp,
- int line,
+ SCREEN *sp,
+ int line,
int (*init)(
- WINDOW *p1,
+ WINDOW *p1,
int p2))
{ return(*(int *)0); }
#undef _nc_ripoffline
int _nc_ripoffline(
- int line,
+ int line,
int (*init)(
- WINDOW *p1,
+ WINDOW *p1,
int p2))
{ return(*(int *)0); }
#undef ripoffline_sp
int ripoffline_sp(
- SCREEN *sp,
- int line,
+ SCREEN *sp,
+ int line,
int (*init)(
- WINDOW *p1,
+ WINDOW *p1,
int p2))
{ return(*(int *)0); }
#undef ripoffline
int ripoffline(
- int line,
+ int line,
int (*init)(
- WINDOW *p1,
+ WINDOW *p1,
int p2))
{ return(*(int *)0); }
@@ -2092,13 +2092,13 @@ int ripoffline(
#undef _nc_format_slks
int _nc_format_slks(
- SCREEN *sp,
+ SCREEN *sp,
int cols)
{ return(*(int *)0); }
#undef _nc_slk_initialize
int _nc_slk_initialize(
- WINDOW *stwin,
+ WINDOW *stwin,
int cols)
{ return(*(int *)0); }
@@ -2115,16 +2115,16 @@ int slk_restore(void)
#undef slk_attr_set_sp
int slk_attr_set_sp(
- SCREEN *sp,
- const attr_t attr,
- short pair_arg,
+ SCREEN *sp,
+ const attr_t attr,
+ short pair_arg,
void *opts)
{ return(*(int *)0); }
#undef slk_attr_set
int slk_attr_set(
- const attr_t attr,
- short pair_arg,
+ const attr_t attr,
+ short pair_arg,
void *opts)
{ return(*(int *)0); }
@@ -2132,7 +2132,7 @@ int slk_attr_set(
#undef slk_attroff_sp
int slk_attroff_sp(
- SCREEN *sp,
+ SCREEN *sp,
const chtype attr)
{ return(*(int *)0); }
@@ -2145,7 +2145,7 @@ int slk_attroff(
#undef slk_attron_sp
int slk_attron_sp(
- SCREEN *sp,
+ SCREEN *sp,
const chtype attr)
{ return(*(int *)0); }
@@ -2158,7 +2158,7 @@ int slk_attron(
#undef slk_attrset_sp
int slk_attrset_sp(
- SCREEN *sp,
+ SCREEN *sp,
const chtype attr)
{ return(*(int *)0); }
@@ -2193,7 +2193,7 @@ int slk_clear(void)
#undef slk_color_sp
int slk_color_sp(
- SCREEN *sp,
+ SCREEN *sp,
short pair_arg)
{ return(*(int *)0); }
@@ -2206,7 +2206,7 @@ int slk_color(
#undef slk_init_sp
int slk_init_sp(
- SCREEN *sp,
+ SCREEN *sp,
int format)
{ return(*(int *)0); }
@@ -2219,7 +2219,7 @@ int slk_init(
#undef slk_label_sp
char *slk_label_sp(
- SCREEN *sp,
+ SCREEN *sp,
int n)
{ return(*(char **)0); }
@@ -2252,16 +2252,16 @@ int slk_refresh(void)
#undef slk_set_sp
int slk_set_sp(
- SCREEN *sp,
- int i,
- const char *astr,
+ SCREEN *sp,
+ int i,
+ const char *astr,
int format)
{ return(*(int *)0); }
#undef slk_set
int slk_set(
- int i,
- const char *astr,
+ int i,
+ const char *astr,
int format)
{ return(*(int *)0); }
@@ -2280,7 +2280,7 @@ int slk_touch(void)
#undef is_linetouched
NCURSES_BOOL is_linetouched(
- WINDOW *win,
+ WINDOW *win,
int line)
{ return(*(NCURSES_BOOL *)0); }
@@ -2291,9 +2291,9 @@ NCURSES_BOOL is_wintouched(
#undef wtouchln
int wtouchln(
- WINDOW *win,
- int y,
- int n,
+ WINDOW *win,
+ int y,
+ int n,
int changed)
{ return(*(int *)0); }
@@ -2301,7 +2301,7 @@ int wtouchln(
#undef _tracedump
void _tracedump(
- const char *name,
+ const char *name,
WINDOW *win)
{ /* void */ }
@@ -2309,19 +2309,19 @@ void _tracedump(
#undef _nc_trace_mmask_t
char *_nc_trace_mmask_t(
- SCREEN *sp,
+ SCREEN *sp,
mmask_t code)
{ return(*(char **)0); }
#undef _nc_tracemouse
char *_nc_tracemouse(
- SCREEN *sp,
+ SCREEN *sp,
MEVENT const *ep)
{ return(*(char **)0); }
#undef _nc_retrace_mmask_t
mmask_t _nc_retrace_mmask_t(
- SCREEN *sp,
+ SCREEN *sp,
mmask_t code)
{ return(*(mmask_t *)0); }
@@ -2346,7 +2346,7 @@ void _nc_fifo_dump(
#undef ungetch_sp
int ungetch_sp(
- SCREEN *sp,
+ SCREEN *sp,
int ch)
{ return(*(int *)0); }
@@ -2359,20 +2359,20 @@ int ungetch(
#undef vidputs_sp
int vidputs_sp(
- SCREEN *sp,
- chtype newmode,
+ SCREEN *sp,
+ chtype newmode,
NCURSES_OUTC_sp outc)
{ return(*(int *)0); }
#undef vidputs
int vidputs(
- chtype newmode,
+ chtype newmode,
NCURSES_OUTC outc)
{ return(*(int *)0); }
#undef vidattr_sp
int vidattr_sp(
- SCREEN *sp,
+ SCREEN *sp,
chtype newmode)
{ return(*(int *)0); }
@@ -2394,8 +2394,8 @@ chtype termattrs(void)
#undef wvline
int wvline(
- WINDOW *win,
- chtype ch,
+ WINDOW *win,
+ chtype ch,
int n)
{ return(*(int *)0); }
@@ -2403,8 +2403,8 @@ int wvline(
#undef wattr_off
int wattr_off(
- WINDOW *win,
- attr_t at,
+ WINDOW *win,
+ attr_t at,
void *opts)
{ return(*(int *)0); }
@@ -2412,8 +2412,8 @@ int wattr_off(
#undef wattr_on
int wattr_on(
- WINDOW *win,
- attr_t at,
+ WINDOW *win,
+ attr_t at,
void *opts)
{ return(*(int *)0); }
@@ -2433,14 +2433,14 @@ void _nc_synchook(
#undef mvderwin
int mvderwin(
- WINDOW *win,
- int y,
+ WINDOW *win,
+ int y,
int x)
{ return(*(int *)0); }
#undef syncok
int syncok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL bf)
{ return(*(int *)0); }
@@ -2479,14 +2479,14 @@ struct panelhook *_nc_panelhook(void)
#undef _nc_printf_string_sp
char *_nc_printf_string_sp(
- SCREEN *sp,
- const char *fmt,
+ SCREEN *sp,
+ const char *fmt,
va_list ap)
{ return(*(char **)0); }
#undef _nc_printf_string
char *_nc_printf_string(
- const char *fmt,
+ const char *fmt,
va_list ap)
{ return(*(char **)0); }
@@ -2503,18 +2503,18 @@ int doupdate(void)
#undef _nc_scrolln_sp
int _nc_scrolln_sp(
- SCREEN *sp,
- int n,
- int top,
- int bot,
+ SCREEN *sp,
+ int n,
+ int top,
+ int bot,
int maxy)
{ return(*(int *)0); }
#undef _nc_scrolln
int _nc_scrolln(
- int n,
- int top,
- int bot,
+ int n,
+ int top,
+ int bot,
int maxy)
{ return(*(int *)0); }
@@ -2547,7 +2547,7 @@ void _nc_screen_wrap(void)
#undef _nc_do_xmc_glitch_sp
void _nc_do_xmc_glitch_sp(
- SCREEN *sp,
+ SCREEN *sp,
attr_t previous)
{ /* void */ }
@@ -2560,7 +2560,7 @@ void _nc_do_xmc_glitch(
#undef _nc_varargs
char *_nc_varargs(
- const char *fmt,
+ const char *fmt,
va_list ap)
{ return(*(char **)0); }
@@ -2578,7 +2578,7 @@ void _nc_freeall(void)
#undef _nc_free_and_exit_sp
void _nc_free_and_exit_sp(
- SCREEN *sp,
+ SCREEN *sp,
int code)
{ /* void */ }
@@ -2596,31 +2596,31 @@ void exit_curses(
#undef _nc_toggle_attr_on
void _nc_toggle_attr_on(
- attr_t *S,
+ attr_t *S,
attr_t at)
{ /* void */ }
#undef _nc_toggle_attr_off
void _nc_toggle_attr_off(
- attr_t *S,
+ attr_t *S,
attr_t at)
{ /* void */ }
#undef _nc_DelCharCost_sp
int _nc_DelCharCost_sp(
- SCREEN *sp,
+ SCREEN *sp,
int count)
{ return(*(int *)0); }
#undef _nc_InsCharCost_sp
int _nc_InsCharCost_sp(
- SCREEN *sp,
+ SCREEN *sp,
int count)
{ return(*(int *)0); }
#undef _nc_UpdateAttrs_sp
void _nc_UpdateAttrs_sp(
- SCREEN *sp,
+ SCREEN *sp,
chtype c)
{ /* void */ }
@@ -2643,7 +2643,7 @@ void _nc_UpdateAttrs(
#undef use_legacy_coding_sp
int use_legacy_coding_sp(
- SCREEN *sp,
+ SCREEN *sp,
int level)
{ return(*(int *)0); }
@@ -2665,14 +2665,14 @@ int use_default_colors(void)
#undef assume_default_colors_sp
int assume_default_colors_sp(
- SCREEN *sp,
- int fg,
+ SCREEN *sp,
+ int fg,
int bg)
{ return(*(int *)0); }
#undef assume_default_colors
int assume_default_colors(
- int fg,
+ int fg,
int bg)
{ return(*(int *)0); }
@@ -2680,14 +2680,14 @@ int assume_default_colors(
#undef mcprint_sp
int mcprint_sp(
- SCREEN *sp,
- char *data,
+ SCREEN *sp,
+ char *data,
int len)
{ return(*(int *)0); }
#undef mcprint
int mcprint(
- char *data,
+ char *data,
int len)
{ return(*(int *)0); }
@@ -2701,40 +2701,40 @@ void _nc_new_pair(void)
#undef is_term_resized_sp
NCURSES_BOOL is_term_resized_sp(
- SCREEN *sp,
- int ToLines,
+ SCREEN *sp,
+ int ToLines,
int ToCols)
{ return(*(NCURSES_BOOL *)0); }
#undef is_term_resized
NCURSES_BOOL is_term_resized(
- int ToLines,
+ int ToLines,
int ToCols)
{ return(*(NCURSES_BOOL *)0); }
#undef resize_term_sp
int resize_term_sp(
- SCREEN *sp,
- int ToLines,
+ SCREEN *sp,
+ int ToLines,
int ToCols)
{ return(*(int *)0); }
#undef resize_term
int resize_term(
- int ToLines,
+ int ToLines,
int ToCols)
{ return(*(int *)0); }
#undef resizeterm_sp
int resizeterm_sp(
- SCREEN *sp,
- int ToLines,
+ SCREEN *sp,
+ int ToLines,
int ToCols)
{ return(*(int *)0); }
#undef resizeterm
int resizeterm(
- int ToLines,
+ int ToLines,
int ToCols)
{ return(*(int *)0); }
@@ -2749,8 +2749,8 @@ void _nc_trace_xnames(
#undef use_screen
int use_screen(
- SCREEN *screen,
- NCURSES_SCREEN_CB func,
+ SCREEN *screen,
+ NCURSES_SCREEN_CB func,
void *data)
{ return(*(int *)0); }
@@ -2758,8 +2758,8 @@ int use_screen(
#undef use_window
int use_window(
- WINDOW *win,
- NCURSES_WINDOW_CB func,
+ WINDOW *win,
+ NCURSES_WINDOW_CB func,
void *data)
{ return(*(int *)0); }
@@ -2767,8 +2767,8 @@ int use_window(
#undef wresize
int wresize(
- WINDOW *win,
- int ToLines,
+ WINDOW *win,
+ int ToLines,
int ToCols)
{ return(*(int *)0); }
@@ -2796,7 +2796,7 @@ char *_nc_basename(
#undef _nc_access
int _nc_access(
- const char *path,
+ const char *path,
int mode)
{ return(*(int *)0); }
@@ -2814,12 +2814,25 @@ NCURSES_BOOL _nc_is_file_path(
int _nc_env_access(void)
{ return(*(int *)0); }
+#undef _nc_safe_fopen
+FILE *_nc_safe_fopen(
+ const char *path,
+ const char *mode)
+ { return(*(FILE **)0); }
+
+#undef _nc_safe_open3
+int _nc_safe_open3(
+ const char *path,
+ int flags,
+ mode_t mode)
+ { return(*(int *)0); }
+
/* ./tinfo/add_tries.c */
#undef _nc_add_to_try
int _nc_add_to_try(
- TRIES **tree,
- const char *str,
+ TRIES **tree,
+ const char *str,
unsigned code)
{ return(*(int *)0); }
@@ -2827,13 +2840,13 @@ int _nc_add_to_try(
#undef _nc_align_termtype
void _nc_align_termtype(
- TERMTYPE2 *to,
- TERMTYPE2 *from)
+ TERMTYPE *to,
+ TERMTYPE *from)
{ /* void */ }
#undef _nc_copy_termtype
void _nc_copy_termtype(
- TERMTYPE *dst,
+ TERMTYPE *dst,
const TERMTYPE *src)
{ /* void */ }
@@ -2903,19 +2916,19 @@ void _nc_get_type(
#undef _nc_warning
void _nc_warning(
- const char *const fmt,
+ const char *const fmt,
...)
{ /* void */ }
#undef _nc_err_abort
void _nc_err_abort(
- const char *const fmt,
+ const char *const fmt,
...)
{ /* void */ }
#undef _nc_syserr_abort
void _nc_syserr_abort(
- const char *const fmt,
+ const char *const fmt,
...)
{ /* void */ }
@@ -2923,14 +2936,14 @@ void _nc_syserr_abort(
#undef _nc_find_entry
struct name_table_entry const *_nc_find_entry(
- const char *string,
+ const char *string,
const HashValue *hash_table)
{ return(*(struct name_table_entry const **)0); }
#undef _nc_find_type_entry
struct name_table_entry const *_nc_find_type_entry(
- const char *string,
- int type,
+ const char *string,
+ int type,
NCURSES_BOOL termcap)
{ return(*(struct name_table_entry const **)0); }
@@ -2967,13 +2980,13 @@ void _nc_last_db(void)
#undef _nc_next_db
const char *_nc_next_db(
- DBDIRS *state,
+ DBDIRS *state,
int *offset)
{ return(*(const char **)0); }
#undef _nc_first_db
void _nc_first_db(
- DBDIRS *state,
+ DBDIRS *state,
int *offset)
{ /* void */ }
@@ -2981,7 +2994,7 @@ void _nc_first_db(
#undef _nc_doalloc
void *_nc_doalloc(
- void *oldp,
+ void *oldp,
size_t amount)
{ return(*(void **)0); }
@@ -2994,8 +3007,8 @@ ENTRY *_nc_tail;
#undef _nc_free_entry
void _nc_free_entry(
- ENTRY *headp,
- TERMTYPE2 *tterm)
+ ENTRY *headp,
+ TERMTYPE *tterm)
{ /* void */ }
#undef _nc_free_entries
@@ -3015,9 +3028,9 @@ void exit_terminfo(
/* ./fallback.c */
#undef _nc_fallback
-const TERMTYPE2 *_nc_fallback(
+const TERMTYPE *_nc_fallback(
const char *name)
- { return(*(const TERMTYPE2 **)0); }
+ { return(*(const TERMTYPE **)0); }
/* ./tinfo/free_ttype.c */
@@ -3026,6 +3039,11 @@ void _nc_free_termtype(
TERMTYPE *ptr)
{ /* void */ }
+#undef _nc_free_termtype1
+void _nc_free_termtype1(
+ TERMTYPE *ptr)
+ { /* void */ }
+
#undef _nc_user_definable
NCURSES_BOOL _nc_user_definable;
@@ -3043,7 +3061,7 @@ int _nc_getenv_num(
#undef _nc_setenv_num
void _nc_setenv_num(
- const char *name,
+ const char *name,
int value)
{ /* void */ }
@@ -3078,8 +3096,8 @@ void _nc_init_acs(void)
/* ./tinfo/lib_baudrate.c */
struct speed {
- int given_speed;
- int actual_speed;
+ int given_speed;
+ int actual_speed;
};
#undef _nc_baudrate
@@ -3118,7 +3136,7 @@ TERMINAL *_nc_cur_term(void)
#undef set_curterm_sp
TERMINAL *set_curterm_sp(
- SCREEN *sp,
+ SCREEN *sp,
TERMINAL *termp)
{ return(*(TERMINAL **)0); }
@@ -3129,7 +3147,7 @@ TERMINAL *set_curterm(
#undef del_curterm_sp
int del_curterm_sp(
- SCREEN *sp,
+ SCREEN *sp,
TERMINAL *termp)
{ return(*(int *)0); }
@@ -3245,7 +3263,7 @@ struct kn { short offset; int code; };
#undef keyname_sp
const char *keyname_sp(
- SCREEN *sp,
+ SCREEN *sp,
int c)
{ return(*(const char **)0); }
@@ -3269,7 +3287,7 @@ char *longname(void)
#undef napms_sp
int napms_sp(
- SCREEN *sp,
+ SCREEN *sp,
int ms)
{ return(*(int *)0); }
@@ -3282,19 +3300,19 @@ int napms(
#undef idlok
int idlok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef idcok
void idcok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ /* void */ }
#undef halfdelay_sp
int halfdelay_sp(
- SCREEN *sp,
+ SCREEN *sp,
int t)
{ return(*(int *)0); }
@@ -3305,37 +3323,37 @@ int halfdelay(
#undef nodelay
int nodelay(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef notimeout
int notimeout(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL f)
{ return(*(int *)0); }
#undef wtimeout
void wtimeout(
- WINDOW *win,
+ WINDOW *win,
int delay)
{ /* void */ }
#undef keypad
int keypad(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef meta
int meta(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef curs_set_sp
int curs_set_sp(
- SCREEN *sp,
+ SCREEN *sp,
int vis)
{ return(*(int *)0); }
@@ -3346,7 +3364,7 @@ int curs_set(
#undef typeahead_sp
int typeahead_sp(
- SCREEN *sp,
+ SCREEN *sp,
int fd)
{ return(*(int *)0); }
@@ -3357,7 +3375,7 @@ int typeahead(
#undef has_key_sp
int has_key_sp(
- SCREEN *sp,
+ SCREEN *sp,
int keycode)
{ return(*(int *)0); }
@@ -3368,14 +3386,14 @@ int has_key(
#undef _nc_putp_flush_sp
int _nc_putp_flush_sp(
- SCREEN *sp,
- const char *name,
+ SCREEN *sp,
+ const char *name,
const char *value)
{ return(*(int *)0); }
#undef _nc_keypad
int _nc_keypad(
- SCREEN *sp,
+ SCREEN *sp,
int flag)
{ return(*(int *)0); }
@@ -3437,17 +3455,53 @@ void noqiflush(void)
#undef intrflush_sp
int intrflush_sp(
- SCREEN *sp,
- WINDOW *win,
+ SCREEN *sp,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef intrflush
int intrflush(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
+#undef is_nl_sp
+int is_nl_sp(
+ SCREEN *sp)
+ { return(*(int *)0); }
+
+#undef is_raw_sp
+int is_raw_sp(
+ SCREEN *sp)
+ { return(*(int *)0); }
+
+#undef is_cbreak_sp
+int is_cbreak_sp(
+ SCREEN *sp)
+ { return(*(int *)0); }
+
+#undef is_echo_sp
+int is_echo_sp(
+ SCREEN *sp)
+ { return(*(int *)0); }
+
+#undef is_nl
+int is_nl(void)
+ { return(*(int *)0); }
+
+#undef is_raw
+int is_raw(void)
+ { return(*(int *)0); }
+
+#undef is_cbreak
+int is_cbreak(void)
+ { return(*(int *)0); }
+
+#undef is_echo
+int is_echo(void)
+ { return(*(int *)0); }
+
/* ./tinfo/lib_setup.c */
#undef _nc_ttytype
@@ -3483,7 +3537,7 @@ int _nc_TABSIZE(void)
#undef set_tabsize_sp
int set_tabsize_sp(
- SCREEN *sp,
+ SCREEN *sp,
int value)
{ return(*(int *)0); }
@@ -3499,13 +3553,13 @@ int _nc_handle_sigwinch(
#undef use_env_sp
void use_env_sp(
- SCREEN *sp,
+ SCREEN *sp,
NCURSES_BOOL f)
{ /* void */ }
#undef use_tioctl_sp
void use_tioctl_sp(
- SCREEN *sp,
+ SCREEN *sp,
NCURSES_BOOL f)
{ /* void */ }
@@ -3521,8 +3575,8 @@ void use_tioctl(
#undef _nc_get_screensize
void _nc_get_screensize(
- SCREEN *sp,
- int *linep,
+ SCREEN *sp,
+ int *linep,
int *colp)
{ /* void */ }
@@ -3533,13 +3587,13 @@ void _nc_update_screensize(
#undef _nc_setup_tinfo
int _nc_setup_tinfo(
- const char *const tn,
- TERMTYPE2 *const tp)
+ const char *const tn,
+ TERMTYPE *const tp)
{ return(*(int *)0); }
#undef _nc_tinfo_cmdch
void _nc_tinfo_cmdch(
- TERMINAL *termp,
+ TERMINAL *termp,
int proto)
{ /* void */ }
@@ -3558,9 +3612,9 @@ int _nc_locale_breaks_acs(
#undef _nc_setupterm
int _nc_setupterm(
- const char *tname,
- int Filedes,
- int *errret,
+ const char *tname,
+ int Filedes,
+ int *errret,
int reuse)
{ return(*(int *)0); }
@@ -3578,8 +3632,8 @@ SCREEN *new_prescr(void)
#undef setupterm
int setupterm(
- const char *tname,
- int Filedes,
+ const char *tname,
+ int Filedes,
int *errret)
{ return(*(int *)0); }
@@ -3592,20 +3646,20 @@ char *BC;
#undef tgetent_sp
int tgetent_sp(
- SCREEN *sp,
- char *bufp,
+ SCREEN *sp,
+ char *bufp,
const char *name)
{ return(*(int *)0); }
#undef tgetent
int tgetent(
- char *bufp,
+ char *bufp,
const char *name)
{ return(*(int *)0); }
#undef tgetflag_sp
int tgetflag_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *id)
{ return(*(int *)0); }
@@ -3616,7 +3670,7 @@ int tgetflag(
#undef tgetnum_sp
int tgetnum_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *id)
{ return(*(int *)0); }
@@ -3627,14 +3681,14 @@ int tgetnum(
#undef tgetstr_sp
char *tgetstr_sp(
- SCREEN *sp,
- const char *id,
+ SCREEN *sp,
+ const char *id,
char **area)
{ return(*(char **)0); }
#undef tgetstr
char *tgetstr(
- const char *id,
+ const char *id,
char **area)
{ return(*(char **)0); }
@@ -3653,8 +3707,8 @@ char *termname(void)
#undef tgoto
char *tgoto(
- const char *string,
- int x,
+ const char *string,
+ int x,
int y)
{ return(*(char **)0); }
@@ -3662,7 +3716,7 @@ char *tgoto(
#undef tigetflag_sp
int tigetflag_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *str)
{ return(*(int *)0); }
@@ -3673,7 +3727,7 @@ int tigetflag(
#undef tigetnum_sp
int tigetnum_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *str)
{ return(*(int *)0); }
@@ -3684,7 +3738,7 @@ int tigetnum(
#undef tigetstr_sp
char *tigetstr_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *str)
{ return(*(char **)0); }
@@ -3698,32 +3752,58 @@ char *tigetstr(
#undef _nc_tparm_err
int _nc_tparm_err;
+#undef _nc_free_tparm
+void _nc_free_tparm(
+ TERMINAL *termp)
+ { /* void */ }
+
#undef _nc_tparm_analyze
int _nc_tparm_analyze(
- const char *string,
- char *p_is_s[9],
+ TERMINAL *term,
+ const char *string,
+ char **p_is_s,
int *_nc_popcount)
{ return(*(int *)0); }
#undef tparm
char *tparm(
- const char *string,
+ const char *string,
...)
{ return(*(char **)0); }
#undef tiparm
char *tiparm(
- const char *string,
+ const char *string,
...)
{ return(*(char **)0); }
+#undef tiparm_s
+char *tiparm_s(
+ int num_expected,
+ int tparm_type,
+ const char *string,
+ ...)
+ { return(*(char **)0); }
+
+#undef tiscan_s
+int tiscan_s(
+ int *num_expected,
+ int *tparm_type,
+ const char *string)
+ { return(*(int *)0); }
+
#undef _nc_tiparm
char *_nc_tiparm(
- int expected,
- const char *string,
+ int expected,
+ const char *string,
...)
{ return(*(char **)0); }
+#undef _nc_reset_tparm
+void _nc_reset_tparm(
+ TERMINAL *term)
+ { /* void */ }
+
/* ./tinfo/lib_tputs.c */
#undef PC
@@ -3740,7 +3820,7 @@ void _nc_set_no_padding(
#undef delay_output_sp
int delay_output_sp(
- SCREEN *sp,
+ SCREEN *sp,
int ms)
{ return(*(int *)0); }
@@ -3760,7 +3840,7 @@ void _nc_flush(void)
#undef _nc_outch_sp
int _nc_outch_sp(
- SCREEN *sp,
+ SCREEN *sp,
int ch)
{ return(*(int *)0); }
@@ -3771,7 +3851,7 @@ int _nc_outch(
#undef _nc_putchar_sp
int _nc_putchar_sp(
- SCREEN *sp,
+ SCREEN *sp,
int ch)
{ return(*(int *)0); }
@@ -3782,7 +3862,7 @@ int _nc_putchar(
#undef putp_sp
int putp_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *string)
{ return(*(int *)0); }
@@ -3793,35 +3873,35 @@ int putp(
#undef _nc_putp_sp
int _nc_putp_sp(
- SCREEN *sp,
- const char *name,
+ SCREEN *sp,
+ const char *name,
const char *string)
{ return(*(int *)0); }
#undef _nc_putp
int _nc_putp(
- const char *name,
+ const char *name,
const char *string)
{ return(*(int *)0); }
#undef tputs_sp
int tputs_sp(
- SCREEN *sp,
- const char *string,
- int affcnt,
+ SCREEN *sp,
+ const char *string,
+ int affcnt,
NCURSES_OUTC_sp outc)
{ return(*(int *)0); }
#undef _nc_outc_wrapper
int _nc_outc_wrapper(
- SCREEN *sp,
+ SCREEN *sp,
int c)
{ return(*(int *)0); }
#undef tputs
int tputs(
- const char *string,
- int affcnt,
+ const char *string,
+ int affcnt,
int (*outc)(
int p1))
{ return(*(int *)0); }
@@ -3861,7 +3941,7 @@ void trace(
#undef _tracef
void _tracef(
- const char *fmt,
+ const char *fmt,
...)
{ /* void */ }
@@ -3917,8 +3997,8 @@ WINDOW *_nc_retrace_win(
#undef _nc_fmt_funcptr
char *_nc_fmt_funcptr(
- char *target,
- const char *source,
+ char *target,
+ const char *source,
size_t size)
{ return(*(char **)0); }
@@ -3929,7 +4009,7 @@ int _nc_use_tracef(
#undef _nc_locked_tracef
void _nc_locked_tracef(
- const char *fmt,
+ const char *fmt,
...)
{ /* void */ }
@@ -3937,7 +4017,7 @@ void _nc_locked_tracef(
#undef _traceattr2
char *_traceattr2(
- int bufnum,
+ int bufnum,
chtype newmode)
{ return(*(char **)0); }
@@ -3958,13 +4038,13 @@ attr_t _nc_retrace_attr_t(
#undef _nc_altcharset_name
const char *_nc_altcharset_name(
- attr_t attr,
+ attr_t attr,
chtype ch)
{ return(*(const char **)0); }
#undef _tracechtype2
char *_tracechtype2(
- int bufnum,
+ int bufnum,
chtype ch)
{ return(*(char **)0); }
@@ -3982,7 +4062,7 @@ chtype _nc_retrace_chtype(
#undef _nc_trace_ttymode
char *_nc_trace_ttymode(
- struct termios *tty)
+ const struct termios *tty)
{ return(*(char **)0); }
#undef _nc_tracebits
@@ -3993,7 +4073,7 @@ char *_nc_tracebits(void)
#undef _nc_tracechar
char *_nc_tracechar(
- SCREEN *sp,
+ SCREEN *sp,
int ch)
{ return(*(char **)0); }
@@ -4006,7 +4086,7 @@ char *_tracechar(
#undef _nc_get_tty_mode_sp
int _nc_get_tty_mode_sp(
- SCREEN *sp,
+ SCREEN *sp,
struct termios *buf)
{ return(*(int *)0); }
@@ -4017,7 +4097,7 @@ int _nc_get_tty_mode(
#undef _nc_set_tty_mode_sp
int _nc_set_tty_mode_sp(
- SCREEN *sp,
+ SCREEN *sp,
struct termios *buf)
{ return(*(int *)0); }
@@ -4084,9 +4164,9 @@ int resetty(void)
#undef _nc_timed_wait
int _nc_timed_wait(
- SCREEN *sp,
- int mode,
- int milliseconds,
+ SCREEN *sp,
+ int mode,
+ int milliseconds,
int *timeleft)
{ return(*(int *)0); }
@@ -4099,8 +4179,8 @@ char *_nc_first_name(
#undef _nc_name_match
int _nc_name_match(
- const char *const namelst,
- const char *const name,
+ const char *const namelst,
+ const char *const name,
const char *const delim)
{ return(*(int *)0); }
@@ -4134,14 +4214,14 @@ const char *const *_nc_strfnames(void)
#undef _nc_set_buffer_sp
void _nc_set_buffer_sp(
- SCREEN *sp,
- FILE *ofp,
+ SCREEN *sp,
+ FILE *ofp,
int buffered)
{ /* void */ }
#undef _nc_set_buffer
void _nc_set_buffer(
- FILE *ofp,
+ FILE *ofp,
int buffered)
{ /* void */ }
@@ -4149,67 +4229,67 @@ void _nc_set_buffer(
#undef _nc_init_termtype
void _nc_init_termtype(
- TERMTYPE2 *const tp)
+ TERMTYPE *const tp)
{ /* void */ }
#undef _nc_read_termtype
int _nc_read_termtype(
- TERMTYPE2 *ptr,
- char *buffer,
+ TERMTYPE *ptr,
+ char *buffer,
int limit)
{ return(*(int *)0); }
#undef _nc_read_file_entry
int _nc_read_file_entry(
- const char *const filename,
- TERMTYPE2 *ptr)
+ const char *const filename,
+ TERMTYPE *ptr)
{ return(*(int *)0); }
#undef _nc_read_entry
int _nc_read_entry(
- const char *const name,
- char *const filename,
- TERMTYPE2 *const tp)
+ const char *const name,
+ char *const filename,
+ TERMTYPE *const tp)
{ return(*(int *)0); }
/* ./tinfo/read_termcap.c */
#undef _nc_read_termcap_entry
int _nc_read_termcap_entry(
- const char *const tn,
- TERMTYPE2 *const tp)
+ const char *const tn,
+ TERMTYPE *const tp)
{ return(*(int *)0); }
/* ./tinfo/strings.c */
#undef _nc_str_init
string_desc *_nc_str_init(
- string_desc *dst,
- char *src,
+ string_desc *dst,
+ char *src,
size_t len)
{ return(*(string_desc **)0); }
#undef _nc_str_null
string_desc *_nc_str_null(
- string_desc *dst,
+ string_desc *dst,
size_t len)
{ return(*(string_desc **)0); }
#undef _nc_str_copy
string_desc *_nc_str_copy(
- string_desc *dst,
- string_desc *src)
+ string_desc *dst,
+ const string_desc *const src)
{ return(*(string_desc **)0); }
#undef _nc_safe_strcat
NCURSES_BOOL _nc_safe_strcat(
- string_desc *dst,
+ string_desc *dst,
const char *src)
{ return(*(NCURSES_BOOL *)0); }
#undef _nc_safe_strcpy
NCURSES_BOOL _nc_safe_strcpy(
- string_desc *dst,
+ string_desc *dst,
const char *src)
{ return(*(NCURSES_BOOL *)0); }
@@ -4217,13 +4297,13 @@ NCURSES_BOOL _nc_safe_strcpy(
#undef _nc_trace_buf
char *_nc_trace_buf(
- int bufnum,
+ int bufnum,
size_t want)
{ return(*(char **)0); }
#undef _nc_trace_bufcat
char *_nc_trace_bufcat(
- int bufnum,
+ int bufnum,
const char *value)
{ return(*(char **)0); }
@@ -4238,21 +4318,21 @@ void _nc_trace_tries(
#undef _nc_expand_try
char *_nc_expand_try(
- TRIES *tree,
- unsigned code,
- int *count,
+ TRIES *tree,
+ unsigned code,
+ int *count,
size_t len)
{ return(*(char **)0); }
#undef _nc_remove_key
int _nc_remove_key(
- TRIES **tree,
+ TRIES **tree,
unsigned code)
{ return(*(int *)0); }
#undef _nc_remove_string
int _nc_remove_string(
- TRIES **tree,
+ TRIES **tree,
const char *string)
{ return(*(int *)0); }
@@ -4260,14 +4340,14 @@ int _nc_remove_string(
#undef _nc_trim_sgr0
char *_nc_trim_sgr0(
- TERMTYPE2 *tp)
+ TERMTYPE *tp)
{ return(*(char **)0); }
/* ./unctrl.c */
#undef unctrl_sp
const char *unctrl_sp(
- SCREEN *sp,
+ SCREEN *sp,
chtype ch)
{ return(*(const char **)0); }
@@ -4280,7 +4360,7 @@ const char *unctrl(
#undef _nc_visbuf2
const char *_nc_visbuf2(
- int bufnum,
+ int bufnum,
const char *buf)
{ return(*(const char **)0); }
@@ -4291,20 +4371,20 @@ const char *_nc_visbuf(
#undef _nc_visbufn
const char *_nc_visbufn(
- const char *buf,
+ const char *buf,
int len)
{ return(*(const char **)0); }
#undef _nc_viscbuf2
const char *_nc_viscbuf2(
- int bufnum,
- const chtype *buf,
+ int bufnum,
+ const chtype *buf,
int len)
{ return(*(const char **)0); }
#undef _nc_viscbuf
const char *_nc_viscbuf(
- const chtype *buf,
+ const chtype *buf,
int len)
{ return(*(const char **)0); }
@@ -4322,18 +4402,18 @@ ENTRY *_nc_copy_entry(
#undef _nc_save_str
char *_nc_save_str(
- const char *const string)
+ const char *string)
{ return(*(char **)0); }
#undef _nc_wrap_entry
void _nc_wrap_entry(
- ENTRY *const ep,
+ ENTRY *const ep,
NCURSES_BOOL copy_strings)
{ /* void */ }
#undef _nc_merge_entry
void _nc_merge_entry(
- ENTRY *const target,
+ ENTRY *const target,
ENTRY *const source)
{ /* void */ }
@@ -4341,15 +4421,15 @@ void _nc_merge_entry(
#undef _nc_captoinfo
char *_nc_captoinfo(
- const char *cap,
- const char *s,
+ const char *cap,
+ const char *s,
int const parameterized)
{ return(*(char **)0); }
#undef _nc_infotocap
char *_nc_infotocap(
- const char *cap,
- const char *str,
+ const char *cap,
+ const char *str,
int const parameterized)
{ return(*(char **)0); }
@@ -4357,8 +4437,8 @@ char *_nc_infotocap(
#undef _nc_tic_expand
char *_nc_tic_expand(
- const char *srcp,
- NCURSES_BOOL tic_format,
+ const char *srcp,
+ NCURSES_BOOL tic_format,
int numbers)
{ return(*(char **)0); }
@@ -4366,28 +4446,28 @@ char *_nc_tic_expand(
#undef _nc_check_termtype2
void (*_nc_check_termtype2)(
- TERMTYPE2 *p1,
+ TERMTYPE *p1,
NCURSES_BOOL p2);
#undef _nc_entry_match
NCURSES_BOOL _nc_entry_match(
- char *n1,
+ char *n1,
char *n2)
{ return(*(NCURSES_BOOL *)0); }
#undef _nc_read_entry_source
void _nc_read_entry_source(
- FILE *fp,
- char *buf,
- int literal,
- NCURSES_BOOL silent,
+ FILE *fp,
+ char *buf,
+ int literal,
+ NCURSES_BOOL silent,
NCURSES_BOOL (*hook)(
ENTRY *p1))
{ /* void */ }
#undef _nc_resolve_uses2
int _nc_resolve_uses2(
- NCURSES_BOOL fullresolve,
+ NCURSES_BOOL fullresolve,
NCURSES_BOOL literal)
{ return(*(int *)0); }
@@ -4412,7 +4492,7 @@ NCURSES_BOOL _nc_disable_period;
#undef _nc_reset_input
void _nc_reset_input(
- FILE *fp,
+ FILE *fp,
char *buf)
{ /* void */ }
@@ -4423,8 +4503,8 @@ int _nc_get_token(
#undef _nc_trans_string
int _nc_trans_string(
- char *ptr,
- char *last)
+ char *ptr,
+ const char *const last)
{ return(*(int *)0); }
#undef _nc_push_token
@@ -4441,14 +4521,14 @@ void _nc_panic_mode(
#undef _nc_parse_entry
int _nc_parse_entry(
- ENTRY *entryp,
- int literal,
+ ENTRY *entryp,
+ int literal,
NCURSES_BOOL silent)
{ return(*(int *)0); }
#undef _nc_capcmp
int _nc_capcmp(
- const char *s,
+ const char *s,
const char *t)
{ return(*(int *)0); }
@@ -4461,14 +4541,14 @@ void _nc_set_writedir(
#undef _nc_write_entry
void _nc_write_entry(
- TERMTYPE2 *const tp)
+ TERMTYPE *const tp)
{ /* void */ }
#undef _nc_write_object
int _nc_write_object(
- TERMTYPE2 *tp,
- char *buffer,
- unsigned *offset,
+ TERMTYPE *tp,
+ char *buffer,
+ unsigned *offset,
unsigned limit)
{ return(*(int *)0); }
@@ -4480,14 +4560,14 @@ int _nc_tic_written(void)
#undef define_key_sp
int define_key_sp(
- SCREEN *sp,
- const char *str,
+ SCREEN *sp,
+ const char *str,
int keycode)
{ return(*(int *)0); }
#undef define_key
int define_key(
- const char *str,
+ const char *str,
int keycode)
{ return(*(int *)0); }
@@ -4501,7 +4581,7 @@ void _nc_hashed_db(void)
#undef key_defined_sp
int key_defined_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *str)
{ return(*(int *)0); }
@@ -4514,14 +4594,14 @@ int key_defined(
#undef keybound_sp
char *keybound_sp(
- SCREEN *sp,
- int code,
+ SCREEN *sp,
+ int code,
int count)
{ return(*(char **)0); }
#undef keybound
char *keybound(
- int code,
+ int code,
int count)
{ return(*(char **)0); }
@@ -4529,14 +4609,14 @@ char *keybound(
#undef keyok_sp
int keyok_sp(
- SCREEN *sp,
- int c,
+ SCREEN *sp,
+ int c,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef keyok
int keyok(
- int c,
+ int c,
NCURSES_BOOL flag)
{ return(*(int *)0); }
diff --git a/ncurses/llib-lncursestw b/ncurses/llib-lncursestw
index 3c1aab97bc65..3aa57eee919a 100644
--- a/ncurses/llib-lncursestw
+++ b/ncurses/llib-lncursestw
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2022,2023 Thomas E. Dickey *
* Copyright 2009-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -70,7 +70,7 @@ void _nc_hash_map(void)
#undef _nc_make_oldhash_sp
void _nc_make_oldhash_sp(
- SCREEN *sp,
+ SCREEN *sp,
int i)
{ /* void */ }
@@ -81,16 +81,16 @@ void _nc_make_oldhash(
#undef _nc_scroll_oldhash_sp
void _nc_scroll_oldhash_sp(
- SCREEN *sp,
- int n,
- int top,
+ SCREEN *sp,
+ int n,
+ int top,
int bot)
{ /* void */ }
#undef _nc_scroll_oldhash
void _nc_scroll_oldhash(
- int n,
- int top,
+ int n,
+ int top,
int bot)
{ /* void */ }
@@ -98,31 +98,31 @@ void _nc_scroll_oldhash(
#undef _nc_render
cchar_t _nc_render(
- WINDOW *win,
+ WINDOW *win,
cchar_t ch)
{ return(*(cchar_t *)0); }
#undef _nc_build_wch
int _nc_build_wch(
- WINDOW *win,
+ WINDOW *win,
cchar_t *ch)
{ return(*(int *)0); }
#undef _nc_waddch_nosync
int _nc_waddch_nosync(
- WINDOW *win,
+ WINDOW *win,
const cchar_t c)
{ return(*(int *)0); }
#undef waddch
int waddch(
- WINDOW *win,
+ WINDOW *win,
const chtype ch)
{ return(*(int *)0); }
#undef wechochar
int wechochar(
- WINDOW *win,
+ WINDOW *win,
const chtype ch)
{ return(*(int *)0); }
@@ -130,15 +130,15 @@ int wechochar(
#undef waddnstr
int waddnstr(
- WINDOW *win,
- const char *astr,
+ WINDOW *win,
+ const char *astr,
int n)
{ return(*(int *)0); }
#undef waddchnstr
int waddchnstr(
- WINDOW *win,
- const chtype *astr,
+ WINDOW *win,
+ const chtype *astr,
int n)
{ return(*(int *)0); }
@@ -149,15 +149,15 @@ int _nc_wchstrlen(
#undef wadd_wchnstr
int wadd_wchnstr(
- WINDOW *win,
- const cchar_t *astr,
+ WINDOW *win,
+ const cchar_t *astr,
int n)
{ return(*(int *)0); }
#undef waddnwstr
int waddnwstr(
- WINDOW *win,
- const wchar_t *str,
+ WINDOW *win,
+ const wchar_t *str,
int n)
{ return(*(int *)0); }
@@ -176,25 +176,25 @@ int beep(void)
#undef wbkgrndset
void wbkgrndset(
- WINDOW *win,
+ WINDOW *win,
const cchar_t *ch)
{ /* void */ }
#undef wbkgdset
void wbkgdset(
- WINDOW *win,
+ WINDOW *win,
chtype ch)
{ /* void */ }
#undef wbkgrnd
int wbkgrnd(
- WINDOW *win,
+ WINDOW *win,
const cchar_t *ch)
{ return(*(int *)0); }
#undef wbkgd
int wbkgd(
- WINDOW *win,
+ WINDOW *win,
chtype ch)
{ return(*(int *)0); }
@@ -202,14 +202,14 @@ int wbkgd(
#undef wborder
int wborder(
- WINDOW *win,
- chtype ls,
- chtype rs,
- chtype ts,
- chtype bs,
- chtype tl,
- chtype tr,
- chtype bl,
+ WINDOW *win,
+ chtype ls,
+ chtype rs,
+ chtype ts,
+ chtype bs,
+ chtype tl,
+ chtype tr,
+ chtype bl,
chtype br)
{ return(*(int *)0); }
@@ -217,10 +217,10 @@ int wborder(
#undef wchgat
int wchgat(
- WINDOW *win,
- int n,
- attr_t attr,
- short pair_arg,
+ WINDOW *win,
+ int n,
+ attr_t attr,
+ short pair_arg,
const void *opts)
{ return(*(int *)0); }
@@ -235,7 +235,7 @@ int wclear(
#undef clearok
int clearok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
@@ -283,62 +283,62 @@ int start_color(void)
#undef _nc_change_pair
void _nc_change_pair(
- SCREEN *sp,
+ SCREEN *sp,
int pair)
{ /* void */ }
#undef _nc_reserve_pairs
void _nc_reserve_pairs(
- SCREEN *sp,
+ SCREEN *sp,
int want)
{ /* void */ }
#undef _nc_init_pair
int _nc_init_pair(
- SCREEN *sp,
- int pair,
- int f,
+ SCREEN *sp,
+ int pair,
+ int f,
int b)
{ return(*(int *)0); }
#undef init_pair_sp
int init_pair_sp(
- SCREEN *sp,
- short pair,
- short f,
+ SCREEN *sp,
+ short pair,
+ short f,
short b)
{ return(*(int *)0); }
#undef init_pair
int init_pair(
- short pair,
- short f,
+ short pair,
+ short f,
short b)
{ return(*(int *)0); }
#undef _nc_init_color
int _nc_init_color(
- SCREEN *sp,
- int color,
- int r,
- int g,
+ SCREEN *sp,
+ int color,
+ int r,
+ int g,
int b)
{ return(*(int *)0); }
#undef init_color_sp
int init_color_sp(
- SCREEN *sp,
- short color,
- short r,
- short g,
+ SCREEN *sp,
+ short color,
+ short r,
+ short g,
short b)
{ return(*(int *)0); }
#undef init_color
int init_color(
- short color,
- short r,
- short g,
+ short color,
+ short r,
+ short g,
short b)
{ return(*(int *)0); }
@@ -362,92 +362,92 @@ NCURSES_BOOL has_colors(void)
#undef color_content_sp
int color_content_sp(
- SCREEN *sp,
- short color,
- short *r,
- short *g,
+ SCREEN *sp,
+ short color,
+ short *r,
+ short *g,
short *b)
{ return(*(int *)0); }
#undef color_content
int color_content(
- short color,
- short *r,
- short *g,
+ short color,
+ short *r,
+ short *g,
short *b)
{ return(*(int *)0); }
#undef _nc_pair_content
int _nc_pair_content(
- SCREEN *sp,
- int pair,
- int *f,
+ SCREEN *sp,
+ int pair,
+ int *f,
int *b)
{ return(*(int *)0); }
#undef pair_content_sp
int pair_content_sp(
- SCREEN *sp,
- short pair,
- short *f,
+ SCREEN *sp,
+ short pair,
+ short *f,
short *b)
{ return(*(int *)0); }
#undef pair_content
int pair_content(
- short pair,
- short *f,
+ short pair,
+ short *f,
short *b)
{ return(*(int *)0); }
#undef _nc_do_color_sp
void _nc_do_color_sp(
- SCREEN *sp,
- int old_pair,
- int pair,
- int reverse,
+ SCREEN *sp,
+ int old_pair,
+ int pair,
+ int reverse,
NCURSES_OUTC_sp outc)
{ /* void */ }
#undef _nc_do_color
void _nc_do_color(
- int old_pair,
- int pair,
- int reverse,
+ int old_pair,
+ int pair,
+ int reverse,
NCURSES_OUTC outc)
{ /* void */ }
#undef init_extended_pair_sp
int init_extended_pair_sp(
- SCREEN *sp,
- int pair,
- int f,
+ SCREEN *sp,
+ int pair,
+ int f,
int b)
{ return(*(int *)0); }
#undef init_extended_color_sp
int init_extended_color_sp(
- SCREEN *sp,
- int color,
- int r,
- int g,
+ SCREEN *sp,
+ int color,
+ int r,
+ int g,
int b)
{ return(*(int *)0); }
#undef extended_color_content_sp
int extended_color_content_sp(
- SCREEN *sp,
- int color,
- int *r,
- int *g,
+ SCREEN *sp,
+ int color,
+ int *r,
+ int *g,
int *b)
{ return(*(int *)0); }
#undef extended_pair_content_sp
int extended_pair_content_sp(
- SCREEN *sp,
- int pair,
- int *f,
+ SCREEN *sp,
+ int pair,
+ int *f,
int *b)
{ return(*(int *)0); }
@@ -458,31 +458,31 @@ void reset_color_pairs_sp(
#undef init_extended_pair
int init_extended_pair(
- int pair,
- int f,
+ int pair,
+ int f,
int b)
{ return(*(int *)0); }
#undef init_extended_color
int init_extended_color(
- int color,
- int r,
- int g,
+ int color,
+ int r,
+ int g,
int b)
{ return(*(int *)0); }
#undef extended_color_content
int extended_color_content(
- int color,
- int *r,
- int *g,
+ int color,
+ int *r,
+ int *g,
int *b)
{ return(*(int *)0); }
#undef extended_pair_content
int extended_pair_content(
- int pair,
- int *f,
+ int pair,
+ int *f,
int *b)
{ return(*(int *)0); }
@@ -494,8 +494,8 @@ void reset_color_pairs(void)
#undef wcolor_set
int wcolor_set(
- WINDOW *win,
- short pair_arg,
+ WINDOW *win,
+ short pair_arg,
void *opts)
{ return(*(int *)0); }
@@ -571,7 +571,7 @@ int addch(
#undef addchnstr
int addchnstr(
- const chtype *a1,
+ const chtype *a1,
int z)
{ return(*(int *)0); }
@@ -582,7 +582,7 @@ int addchstr(
#undef addnstr
int addnstr(
- const char *a1,
+ const char *a1,
int z)
{ return(*(int *)0); }
@@ -593,42 +593,42 @@ int addstr(
#undef attroff
int attroff(
- int z)
+ NCURSES_ATTR_T z)
{ return(*(int *)0); }
#undef attron
int attron(
- int z)
+ NCURSES_ATTR_T z)
{ return(*(int *)0); }
#undef attrset
int attrset(
- int z)
+ NCURSES_ATTR_T z)
{ return(*(int *)0); }
#undef attr_get
int attr_get(
- attr_t *a1,
- short *a2,
+ attr_t *a1,
+ short *a2,
void *z)
{ return(*(int *)0); }
#undef attr_off
int attr_off(
- attr_t a1,
+ attr_t a1,
void *z)
{ return(*(int *)0); }
#undef attr_on
int attr_on(
- attr_t a1,
+ attr_t a1,
void *z)
{ return(*(int *)0); }
#undef attr_set
int attr_set(
- attr_t a1,
- short a2,
+ attr_t a1,
+ short a2,
void *z)
{ return(*(int *)0); }
@@ -644,28 +644,28 @@ void bkgdset(
#undef border
int border(
- chtype a1,
- chtype a2,
- chtype a3,
- chtype a4,
- chtype a5,
- chtype a6,
- chtype a7,
+ chtype a1,
+ chtype a2,
+ chtype a3,
+ chtype a4,
+ chtype a5,
+ chtype a6,
+ chtype a7,
chtype z)
{ return(*(int *)0); }
#undef box
int box(
- WINDOW *a1,
- chtype a2,
+ WINDOW *a1,
+ chtype a2,
chtype z)
{ return(*(int *)0); }
#undef chgat
int chgat(
- int a1,
- attr_t a2,
- short a3,
+ int a1,
+ attr_t a2,
+ short a3,
const void *z)
{ return(*(int *)0); }
@@ -683,7 +683,7 @@ int clrtoeol(void)
#undef color_set
int color_set(
- short a1,
+ short a1,
void *z)
{ return(*(int *)0); }
@@ -720,7 +720,7 @@ int getch(void)
#undef getnstr
int getnstr(
- char *a1,
+ char *a1,
int z)
{ return(*(int *)0); }
@@ -731,7 +731,7 @@ int getstr(
#undef hline
int hline(
- chtype a1,
+ chtype a1,
int z)
{ return(*(int *)0); }
@@ -741,7 +741,7 @@ chtype inch(void)
#undef inchnstr
int inchnstr(
- chtype *a1,
+ chtype *a1,
int z)
{ return(*(int *)0); }
@@ -752,7 +752,7 @@ int inchstr(
#undef innstr
int innstr(
- char *a1,
+ char *a1,
int z)
{ return(*(int *)0); }
@@ -772,7 +772,7 @@ int insertln(void)
#undef insnstr
int insnstr(
- const char *a1,
+ const char *a1,
int z)
{ return(*(int *)0); }
@@ -788,323 +788,323 @@ int instr(
#undef move
int move(
- int a1,
+ int a1,
int z)
{ return(*(int *)0); }
#undef mvaddch
int mvaddch(
- int a1,
- int a2,
+ int a1,
+ int a2,
const chtype z)
{ return(*(int *)0); }
#undef mvaddchnstr
int mvaddchnstr(
- int a1,
- int a2,
- const chtype *a3,
+ int a1,
+ int a2,
+ const chtype *a3,
int z)
{ return(*(int *)0); }
#undef mvaddchstr
int mvaddchstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
const chtype *z)
{ return(*(int *)0); }
#undef mvaddnstr
int mvaddnstr(
- int a1,
- int a2,
- const char *a3,
+ int a1,
+ int a2,
+ const char *a3,
int z)
{ return(*(int *)0); }
#undef mvaddstr
int mvaddstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
const char *z)
{ return(*(int *)0); }
#undef mvchgat
int mvchgat(
- int a1,
- int a2,
- int a3,
- attr_t a4,
- short a5,
+ int a1,
+ int a2,
+ int a3,
+ attr_t a4,
+ short a5,
const void *z)
{ return(*(int *)0); }
#undef mvdelch
int mvdelch(
- int a1,
+ int a1,
int z)
{ return(*(int *)0); }
#undef mvgetch
int mvgetch(
- int a1,
+ int a1,
int z)
{ return(*(int *)0); }
#undef mvgetnstr
int mvgetnstr(
- int a1,
- int a2,
- char *a3,
+ int a1,
+ int a2,
+ char *a3,
int z)
{ return(*(int *)0); }
#undef mvgetstr
int mvgetstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
char *z)
{ return(*(int *)0); }
#undef mvhline
int mvhline(
- int a1,
- int a2,
- chtype a3,
+ int a1,
+ int a2,
+ chtype a3,
int z)
{ return(*(int *)0); }
#undef mvinch
chtype mvinch(
- int a1,
+ int a1,
int z)
{ return(*(chtype *)0); }
#undef mvinchnstr
int mvinchnstr(
- int a1,
- int a2,
- chtype *a3,
+ int a1,
+ int a2,
+ chtype *a3,
int z)
{ return(*(int *)0); }
#undef mvinchstr
int mvinchstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
chtype *z)
{ return(*(int *)0); }
#undef mvinnstr
int mvinnstr(
- int a1,
- int a2,
- char *a3,
+ int a1,
+ int a2,
+ char *a3,
int z)
{ return(*(int *)0); }
#undef mvinsch
int mvinsch(
- int a1,
- int a2,
+ int a1,
+ int a2,
chtype z)
{ return(*(int *)0); }
#undef mvinsnstr
int mvinsnstr(
- int a1,
- int a2,
- const char *a3,
+ int a1,
+ int a2,
+ const char *a3,
int z)
{ return(*(int *)0); }
#undef mvinsstr
int mvinsstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
const char *z)
{ return(*(int *)0); }
#undef mvinstr
int mvinstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
char *z)
{ return(*(int *)0); }
#undef mvvline
int mvvline(
- int a1,
- int a2,
- chtype a3,
+ int a1,
+ int a2,
+ chtype a3,
int z)
{ return(*(int *)0); }
#undef mvwaddch
int mvwaddch(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
const chtype z)
{ return(*(int *)0); }
#undef mvwaddchnstr
int mvwaddchnstr(
- WINDOW *a1,
- int a2,
- int a3,
- const chtype *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ const chtype *a4,
int z)
{ return(*(int *)0); }
#undef mvwaddchstr
int mvwaddchstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
const chtype *z)
{ return(*(int *)0); }
#undef mvwaddnstr
int mvwaddnstr(
- WINDOW *a1,
- int a2,
- int a3,
- const char *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ const char *a4,
int z)
{ return(*(int *)0); }
#undef mvwaddstr
int mvwaddstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
const char *z)
{ return(*(int *)0); }
#undef mvwchgat
int mvwchgat(
- WINDOW *a1,
- int a2,
- int a3,
- int a4,
- attr_t a5,
- short a6,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ int a4,
+ attr_t a5,
+ short a6,
const void *z)
{ return(*(int *)0); }
#undef mvwdelch
int mvwdelch(
- WINDOW *a1,
- int a2,
+ WINDOW *a1,
+ int a2,
int z)
{ return(*(int *)0); }
#undef mvwgetch
int mvwgetch(
- WINDOW *a1,
- int a2,
+ WINDOW *a1,
+ int a2,
int z)
{ return(*(int *)0); }
#undef mvwgetnstr
int mvwgetnstr(
- WINDOW *a1,
- int a2,
- int a3,
- char *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ char *a4,
int z)
{ return(*(int *)0); }
#undef mvwgetstr
int mvwgetstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
char *z)
{ return(*(int *)0); }
#undef mvwhline
int mvwhline(
- WINDOW *a1,
- int a2,
- int a3,
- chtype a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ chtype a4,
int z)
{ return(*(int *)0); }
#undef mvwinch
chtype mvwinch(
- WINDOW *a1,
- int a2,
+ WINDOW *a1,
+ int a2,
int z)
{ return(*(chtype *)0); }
#undef mvwinchnstr
int mvwinchnstr(
- WINDOW *a1,
- int a2,
- int a3,
- chtype *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ chtype *a4,
int z)
{ return(*(int *)0); }
#undef mvwinchstr
int mvwinchstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
chtype *z)
{ return(*(int *)0); }
#undef mvwinnstr
int mvwinnstr(
- WINDOW *a1,
- int a2,
- int a3,
- char *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ char *a4,
int z)
{ return(*(int *)0); }
#undef mvwinsch
int mvwinsch(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
chtype z)
{ return(*(int *)0); }
#undef mvwinsnstr
int mvwinsnstr(
- WINDOW *a1,
- int a2,
- int a3,
- const char *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ const char *a4,
int z)
{ return(*(int *)0); }
#undef mvwinsstr
int mvwinsstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
const char *z)
{ return(*(int *)0); }
#undef mvwinstr
int mvwinstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
char *z)
{ return(*(int *)0); }
#undef mvwvline
int mvwvline(
- WINDOW *a1,
- int a2,
- int a3,
- chtype a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ chtype a4,
int z)
{ return(*(int *)0); }
@@ -1134,19 +1134,19 @@ int scroll(
#undef setscrreg
int setscrreg(
- int a1,
+ int a1,
int z)
{ return(*(int *)0); }
#undef slk_attr_off
int slk_attr_off(
- const attr_t a1,
+ const attr_t a1,
void *z)
{ return(*(int *)0); }
#undef slk_attr_on
int slk_attr_on(
- attr_t a1,
+ attr_t a1,
void *z)
{ return(*(int *)0); }
@@ -1165,8 +1165,8 @@ void timeout(
#undef touchline
int touchline(
- WINDOW *a1,
- int a2,
+ WINDOW *a1,
+ int a2,
int z)
{ return(*(int *)0); }
@@ -1182,53 +1182,53 @@ int untouchwin(
#undef vline
int vline(
- chtype a1,
+ chtype a1,
int z)
{ return(*(int *)0); }
#undef waddchstr
int waddchstr(
- WINDOW *a1,
+ WINDOW *a1,
const chtype *z)
{ return(*(int *)0); }
#undef waddstr
int waddstr(
- WINDOW *a1,
+ WINDOW *a1,
const char *z)
{ return(*(int *)0); }
#undef wattron
int wattron(
- WINDOW *a1,
+ WINDOW *a1,
int z)
{ return(*(int *)0); }
#undef wattroff
int wattroff(
- WINDOW *a1,
+ WINDOW *a1,
int z)
{ return(*(int *)0); }
#undef wattrset
int wattrset(
- WINDOW *a1,
+ WINDOW *a1,
int z)
{ return(*(int *)0); }
#undef wattr_get
int wattr_get(
- WINDOW *a1,
- attr_t *a2,
- short *a3,
+ WINDOW *a1,
+ attr_t *a2,
+ short *a3,
void *z)
{ return(*(int *)0); }
#undef wattr_set
int wattr_set(
- WINDOW *a1,
- attr_t a2,
- short a3,
+ WINDOW *a1,
+ attr_t a2,
+ short a3,
void *z)
{ return(*(int *)0); }
@@ -1239,13 +1239,13 @@ int wdeleteln(
#undef wgetstr
int wgetstr(
- WINDOW *a1,
+ WINDOW *a1,
char *z)
{ return(*(int *)0); }
#undef winchstr
int winchstr(
- WINDOW *a1,
+ WINDOW *a1,
chtype *z)
{ return(*(int *)0); }
@@ -1256,13 +1256,13 @@ int winsertln(
#undef winsstr
int winsstr(
- WINDOW *a1,
+ WINDOW *a1,
const char *z)
{ return(*(int *)0); }
#undef winstr
int winstr(
- WINDOW *a1,
+ WINDOW *a1,
char *z)
{ return(*(int *)0); }
@@ -1393,8 +1393,8 @@ int wgetdelay(
#undef wgetscrreg
int wgetscrreg(
- const WINDOW *a1,
- int *a2,
+ const WINDOW *a1,
+ int *a2,
int *z)
{ return(*(int *)0); }
@@ -1405,7 +1405,7 @@ int add_wch(
#undef add_wchnstr
int add_wchnstr(
- const cchar_t *a1,
+ const cchar_t *a1,
int z)
{ return(*(int *)0); }
@@ -1416,7 +1416,7 @@ int add_wchstr(
#undef addnwstr
int addnwstr(
- const wchar_t *a1,
+ const wchar_t *a1,
int z)
{ return(*(int *)0); }
@@ -1437,20 +1437,20 @@ void bkgrndset(
#undef border_set
int border_set(
- const cchar_t *a1,
- const cchar_t *a2,
- const cchar_t *a3,
- const cchar_t *a4,
- const cchar_t *a5,
- const cchar_t *a6,
- const cchar_t *a7,
+ const cchar_t *a1,
+ const cchar_t *a2,
+ const cchar_t *a3,
+ const cchar_t *a4,
+ const cchar_t *a5,
+ const cchar_t *a6,
+ const cchar_t *a7,
const cchar_t *z)
{ return(*(int *)0); }
#undef box_set
int box_set(
- WINDOW *a1,
- const cchar_t *a2,
+ WINDOW *a1,
+ const cchar_t *a2,
const cchar_t *z)
{ return(*(int *)0); }
@@ -1476,13 +1476,13 @@ int getbkgrnd(
#undef getn_wstr
int getn_wstr(
- wint_t *a1,
+ wint_t *a1,
int z)
{ return(*(int *)0); }
#undef hline_set
int hline_set(
- const cchar_t *a1,
+ const cchar_t *a1,
int z)
{ return(*(int *)0); }
@@ -1493,7 +1493,7 @@ int in_wch(
#undef in_wchnstr
int in_wchnstr(
- cchar_t *a1,
+ cchar_t *a1,
int z)
{ return(*(int *)0); }
@@ -1504,13 +1504,13 @@ int in_wchstr(
#undef innwstr
int innwstr(
- wchar_t *a1,
+ wchar_t *a1,
int z)
{ return(*(int *)0); }
#undef ins_nwstr
int ins_nwstr(
- const wchar_t *a1,
+ const wchar_t *a1,
int z)
{ return(*(int *)0); }
@@ -1531,336 +1531,336 @@ int inwstr(
#undef mvadd_wch
int mvadd_wch(
- int a1,
- int a2,
+ int a1,
+ int a2,
const cchar_t *z)
{ return(*(int *)0); }
#undef mvadd_wchnstr
int mvadd_wchnstr(
- int a1,
- int a2,
- const cchar_t *a3,
+ int a1,
+ int a2,
+ const cchar_t *a3,
int z)
{ return(*(int *)0); }
#undef mvadd_wchstr
int mvadd_wchstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
const cchar_t *z)
{ return(*(int *)0); }
#undef mvaddnwstr
int mvaddnwstr(
- int a1,
- int a2,
- const wchar_t *a3,
+ int a1,
+ int a2,
+ const wchar_t *a3,
int z)
{ return(*(int *)0); }
#undef mvaddwstr
int mvaddwstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
const wchar_t *z)
{ return(*(int *)0); }
#undef mvget_wch
int mvget_wch(
- int a1,
- int a2,
+ int a1,
+ int a2,
wint_t *z)
{ return(*(int *)0); }
#undef mvget_wstr
int mvget_wstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
wint_t *z)
{ return(*(int *)0); }
#undef mvgetn_wstr
int mvgetn_wstr(
- int a1,
- int a2,
- wint_t *a3,
+ int a1,
+ int a2,
+ wint_t *a3,
int z)
{ return(*(int *)0); }
#undef mvhline_set
int mvhline_set(
- int a1,
- int a2,
- const cchar_t *a3,
+ int a1,
+ int a2,
+ const cchar_t *a3,
int z)
{ return(*(int *)0); }
#undef mvin_wch
int mvin_wch(
- int a1,
- int a2,
+ int a1,
+ int a2,
cchar_t *z)
{ return(*(int *)0); }
#undef mvin_wchnstr
int mvin_wchnstr(
- int a1,
- int a2,
- cchar_t *a3,
+ int a1,
+ int a2,
+ cchar_t *a3,
int z)
{ return(*(int *)0); }
#undef mvin_wchstr
int mvin_wchstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
cchar_t *z)
{ return(*(int *)0); }
#undef mvinnwstr
int mvinnwstr(
- int a1,
- int a2,
- wchar_t *a3,
+ int a1,
+ int a2,
+ wchar_t *a3,
int z)
{ return(*(int *)0); }
#undef mvins_nwstr
int mvins_nwstr(
- int a1,
- int a2,
- const wchar_t *a3,
+ int a1,
+ int a2,
+ const wchar_t *a3,
int z)
{ return(*(int *)0); }
#undef mvins_wch
int mvins_wch(
- int a1,
- int a2,
+ int a1,
+ int a2,
const cchar_t *z)
{ return(*(int *)0); }
#undef mvins_wstr
int mvins_wstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
const wchar_t *z)
{ return(*(int *)0); }
#undef mvinwstr
int mvinwstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
wchar_t *z)
{ return(*(int *)0); }
#undef mvvline_set
int mvvline_set(
- int a1,
- int a2,
- const cchar_t *a3,
+ int a1,
+ int a2,
+ const cchar_t *a3,
int z)
{ return(*(int *)0); }
#undef mvwadd_wch
int mvwadd_wch(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
const cchar_t *z)
{ return(*(int *)0); }
#undef mvwadd_wchnstr
int mvwadd_wchnstr(
- WINDOW *a1,
- int a2,
- int a3,
- const cchar_t *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ const cchar_t *a4,
int z)
{ return(*(int *)0); }
#undef mvwadd_wchstr
int mvwadd_wchstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
const cchar_t *z)
{ return(*(int *)0); }
#undef mvwaddnwstr
int mvwaddnwstr(
- WINDOW *a1,
- int a2,
- int a3,
- const wchar_t *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ const wchar_t *a4,
int z)
{ return(*(int *)0); }
#undef mvwaddwstr
int mvwaddwstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
const wchar_t *z)
{ return(*(int *)0); }
#undef mvwget_wch
int mvwget_wch(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
wint_t *z)
{ return(*(int *)0); }
#undef mvwget_wstr
int mvwget_wstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
wint_t *z)
{ return(*(int *)0); }
#undef mvwgetn_wstr
int mvwgetn_wstr(
- WINDOW *a1,
- int a2,
- int a3,
- wint_t *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ wint_t *a4,
int z)
{ return(*(int *)0); }
#undef mvwhline_set
int mvwhline_set(
- WINDOW *a1,
- int a2,
- int a3,
- const cchar_t *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ const cchar_t *a4,
int z)
{ return(*(int *)0); }
#undef mvwin_wch
int mvwin_wch(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
cchar_t *z)
{ return(*(int *)0); }
#undef mvwin_wchnstr
int mvwin_wchnstr(
- WINDOW *a1,
- int a2,
- int a3,
- cchar_t *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ cchar_t *a4,
int z)
{ return(*(int *)0); }
#undef mvwin_wchstr
int mvwin_wchstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
cchar_t *z)
{ return(*(int *)0); }
#undef mvwinnwstr
int mvwinnwstr(
- WINDOW *a1,
- int a2,
- int a3,
- wchar_t *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ wchar_t *a4,
int z)
{ return(*(int *)0); }
#undef mvwins_nwstr
int mvwins_nwstr(
- WINDOW *a1,
- int a2,
- int a3,
- const wchar_t *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ const wchar_t *a4,
int z)
{ return(*(int *)0); }
#undef mvwins_wch
int mvwins_wch(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
const cchar_t *z)
{ return(*(int *)0); }
#undef mvwins_wstr
int mvwins_wstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
const wchar_t *z)
{ return(*(int *)0); }
#undef mvwinwstr
int mvwinwstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
wchar_t *z)
{ return(*(int *)0); }
#undef mvwvline_set
int mvwvline_set(
- WINDOW *a1,
- int a2,
- int a3,
- const cchar_t *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ const cchar_t *a4,
int z)
{ return(*(int *)0); }
#undef vline_set
int vline_set(
- const cchar_t *a1,
+ const cchar_t *a1,
int z)
{ return(*(int *)0); }
#undef wadd_wchstr
int wadd_wchstr(
- WINDOW *a1,
+ WINDOW *a1,
const cchar_t *z)
{ return(*(int *)0); }
#undef waddwstr
int waddwstr(
- WINDOW *a1,
+ WINDOW *a1,
const wchar_t *z)
{ return(*(int *)0); }
#undef wget_wstr
int wget_wstr(
- WINDOW *a1,
+ WINDOW *a1,
wint_t *z)
{ return(*(int *)0); }
#undef wgetbkgrnd
int wgetbkgrnd(
- WINDOW *a1,
+ WINDOW *a1,
cchar_t *z)
{ return(*(int *)0); }
#undef win_wchstr
int win_wchstr(
- WINDOW *a1,
+ WINDOW *a1,
cchar_t *z)
{ return(*(int *)0); }
#undef wins_wstr
int wins_wstr(
- WINDOW *a1,
+ WINDOW *a1,
const wchar_t *z)
{ return(*(int *)0); }
#undef mouse_trafo
NCURSES_BOOL mouse_trafo(
- int *a1,
- int *a2,
+ int *a1,
+ int *a2,
NCURSES_BOOL z)
{ return(*(NCURSES_BOOL *)0); }
@@ -1877,7 +1877,7 @@ int *_nc_ptr_Escdelay(
#undef set_escdelay_sp
int set_escdelay_sp(
- SCREEN *sp,
+ SCREEN *sp,
int value)
{ return(*(int *)0); }
@@ -1897,8 +1897,8 @@ int get_escdelay(void)
#undef _nc_wgetch
int _nc_wgetch(
- WINDOW *win,
- int *result,
+ WINDOW *win,
+ int *result,
int use_meta)
{ return(*(int *)0); }
@@ -1911,8 +1911,8 @@ int wgetch(
#undef wgetnstr
int wgetnstr(
- WINDOW *win,
- char *str,
+ WINDOW *win,
+ char *str,
int maxlen)
{ return(*(int *)0); }
@@ -1920,8 +1920,8 @@ int wgetnstr(
#undef whline
int whline(
- WINDOW *win,
- chtype ch,
+ WINDOW *win,
+ chtype ch,
int n)
{ return(*(int *)0); }
@@ -1929,7 +1929,7 @@ int whline(
#undef immedok
void immedok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ /* void */ }
@@ -1937,8 +1937,8 @@ void immedok(
#undef winchnstr
int winchnstr(
- WINDOW *win,
- chtype *str,
+ WINDOW *win,
+ chtype *str,
int n)
{ return(*(int *)0); }
@@ -1952,14 +1952,14 @@ WINDOW *initscr(void)
#undef _nc_insert_ch
int _nc_insert_ch(
- SCREEN *sp,
- WINDOW *win,
+ SCREEN *sp,
+ WINDOW *win,
chtype ch)
{ return(*(int *)0); }
#undef winsch
int winsch(
- WINDOW *win,
+ WINDOW *win,
chtype c)
{ return(*(int *)0); }
@@ -1967,7 +1967,7 @@ int winsch(
#undef winsdelln
int winsdelln(
- WINDOW *win,
+ WINDOW *win,
int n)
{ return(*(int *)0); }
@@ -1975,8 +1975,8 @@ int winsdelln(
#undef winsnstr
int winsnstr(
- WINDOW *win,
- const char *s,
+ WINDOW *win,
+ const char *s,
int n)
{ return(*(int *)0); }
@@ -1984,8 +1984,8 @@ int winsnstr(
#undef winnstr
int winnstr(
- WINDOW *win,
- char *str,
+ WINDOW *win,
+ char *str,
int n)
{ return(*(int *)0); }
@@ -2004,7 +2004,7 @@ NCURSES_BOOL isendwin(void)
#undef leaveok
int leaveok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
@@ -2012,7 +2012,7 @@ int leaveok(
#undef getmouse_sp
int getmouse_sp(
- SCREEN *sp,
+ SCREEN *sp,
MEVENT *aevent)
{ return(*(int *)0); }
@@ -2023,7 +2023,7 @@ int getmouse(
#undef ungetmouse_sp
int ungetmouse_sp(
- SCREEN *sp,
+ SCREEN *sp,
MEVENT *aevent)
{ return(*(int *)0); }
@@ -2034,27 +2034,27 @@ int ungetmouse(
#undef mousemask_sp
mmask_t mousemask_sp(
- SCREEN *sp,
- mmask_t newmask,
+ SCREEN *sp,
+ mmask_t newmask,
mmask_t *oldmask)
{ return(*(mmask_t *)0); }
#undef mousemask
mmask_t mousemask(
- mmask_t newmask,
+ mmask_t newmask,
mmask_t *oldmask)
{ return(*(mmask_t *)0); }
#undef wenclose
NCURSES_BOOL wenclose(
- const WINDOW *win,
- int y,
+ const WINDOW *win,
+ int y,
int x)
{ return(*(NCURSES_BOOL *)0); }
#undef mouseinterval_sp
int mouseinterval_sp(
- SCREEN *sp,
+ SCREEN *sp,
int maxclick)
{ return(*(int *)0); }
@@ -2079,9 +2079,9 @@ NCURSES_BOOL has_mouse(void)
#undef wmouse_trafo
NCURSES_BOOL wmouse_trafo(
- const WINDOW *win,
- int *pY,
- int *pX,
+ const WINDOW *win,
+ int *pY,
+ int *pX,
NCURSES_BOOL to_screen)
{ return(*(NCURSES_BOOL *)0); }
@@ -2089,8 +2089,8 @@ NCURSES_BOOL wmouse_trafo(
#undef wmove
int wmove(
- WINDOW *win,
- int y,
+ WINDOW *win,
+ int y,
int x)
{ return(*(int *)0); }
@@ -2098,14 +2098,14 @@ int wmove(
#undef _nc_msec_cost_sp
int _nc_msec_cost_sp(
- SCREEN *sp,
- const char *const cap,
+ SCREEN *sp,
+ const char *const cap,
int affcnt)
{ return(*(int *)0); }
#undef _nc_msec_cost
int _nc_msec_cost(
- const char *const cap,
+ const char *const cap,
int affcnt)
{ return(*(int *)0); }
@@ -2138,35 +2138,35 @@ void _nc_mvcur_wrap(void)
#undef _nc_mvcur_sp
int _nc_mvcur_sp(
- SCREEN *sp,
- int yold,
- int xold,
- int ynew,
+ SCREEN *sp,
+ int yold,
+ int xold,
+ int ynew,
int xnew)
{ return(*(int *)0); }
#undef _nc_mvcur
int _nc_mvcur(
- int yold,
- int xold,
- int ynew,
+ int yold,
+ int xold,
+ int ynew,
int xnew)
{ return(*(int *)0); }
#undef mvcur_sp
int mvcur_sp(
- SCREEN *sp,
- int yold,
- int xold,
- int ynew,
+ SCREEN *sp,
+ int yold,
+ int xold,
+ int ynew,
int xnew)
{ return(*(int *)0); }
#undef mvcur
int mvcur(
- int yold,
- int xold,
- int ynew,
+ int yold,
+ int xold,
+ int ynew,
int xnew)
{ return(*(int *)0); }
@@ -2177,8 +2177,8 @@ int _nc_optimize_enable;
#undef mvwin
int mvwin(
- WINDOW *win,
- int by,
+ WINDOW *win,
+ int by,
int bx)
{ return(*(int *)0); }
@@ -2204,16 +2204,16 @@ void nofilter(void)
#undef newterm_sp
SCREEN *newterm_sp(
- SCREEN *sp,
- const char *name,
- FILE *ofp,
+ SCREEN *sp,
+ const char *name,
+ FILE *ofp,
FILE *ifp)
{ return(*(SCREEN **)0); }
#undef newterm
SCREEN *newterm(
- const char *name,
- FILE *ofp,
+ const char *name,
+ FILE *ofp,
FILE *ifp)
{ return(*(SCREEN **)0); }
@@ -2226,46 +2226,46 @@ int _nc_freewin(
#undef newwin_sp
WINDOW *newwin_sp(
- SCREEN *sp,
- int num_lines,
- int num_columns,
- int begy,
+ SCREEN *sp,
+ int num_lines,
+ int num_columns,
+ int begy,
int begx)
{ return(*(WINDOW **)0); }
#undef newwin
WINDOW *newwin(
- int num_lines,
- int num_columns,
- int begy,
+ int num_lines,
+ int num_columns,
+ int begy,
int begx)
{ return(*(WINDOW **)0); }
#undef derwin
WINDOW *derwin(
- WINDOW *orig,
- int num_lines,
- int num_columns,
- int begy,
+ WINDOW *orig,
+ int num_lines,
+ int num_columns,
+ int begy,
int begx)
{ return(*(WINDOW **)0); }
#undef subwin
WINDOW *subwin(
- WINDOW *w,
- int l,
- int c,
- int y,
+ WINDOW *w,
+ int l,
+ int c,
+ int y,
int x)
{ return(*(WINDOW **)0); }
#undef _nc_makenew_sp
WINDOW *_nc_makenew_sp(
- SCREEN *sp,
- int num_lines,
- int num_columns,
- int begy,
- int begx,
+ SCREEN *sp,
+ int num_lines,
+ int num_columns,
+ int begy,
+ int begx,
int flags)
{ return(*(WINDOW **)0); }
@@ -2308,26 +2308,26 @@ int nonl(void)
#undef overlay
int overlay(
- const WINDOW *win1,
+ const WINDOW *win1,
WINDOW *win2)
{ return(*(int *)0); }
#undef overwrite
int overwrite(
- const WINDOW *win1,
+ const WINDOW *win1,
WINDOW *win2)
{ return(*(int *)0); }
#undef copywin
int copywin(
- const WINDOW *src,
- WINDOW *dst,
- int sminrow,
- int smincol,
- int dminrow,
- int dmincol,
- int dmaxrow,
- int dmaxcol,
+ const WINDOW *src,
+ WINDOW *dst,
+ int sminrow,
+ int smincol,
+ int dminrow,
+ int dmincol,
+ int dmaxrow,
+ int dmaxcol,
int over)
{ return(*(int *)0); }
@@ -2335,51 +2335,51 @@ int copywin(
#undef newpad_sp
WINDOW *newpad_sp(
- SCREEN *sp,
- int l,
+ SCREEN *sp,
+ int l,
int c)
{ return(*(WINDOW **)0); }
#undef newpad
WINDOW *newpad(
- int l,
+ int l,
int c)
{ return(*(WINDOW **)0); }
#undef subpad
WINDOW *subpad(
- WINDOW *orig,
- int l,
- int c,
- int begy,
+ WINDOW *orig,
+ int l,
+ int c,
+ int begy,
int begx)
{ return(*(WINDOW **)0); }
#undef prefresh
int prefresh(
- WINDOW *win,
- int pminrow,
- int pmincol,
- int sminrow,
- int smincol,
- int smaxrow,
+ WINDOW *win,
+ int pminrow,
+ int pmincol,
+ int sminrow,
+ int smincol,
+ int smaxrow,
int smaxcol)
{ return(*(int *)0); }
#undef pnoutrefresh
int pnoutrefresh(
- WINDOW *win,
- int pminrow,
- int pmincol,
- int sminrow,
- int smincol,
- int smaxrow,
+ WINDOW *win,
+ int pminrow,
+ int pmincol,
+ int sminrow,
+ int smincol,
+ int smaxrow,
int smaxcol)
{ return(*(int *)0); }
#undef pechochar
int pechochar(
- WINDOW *pad,
+ WINDOW *pad,
const chtype ch)
{ return(*(int *)0); }
@@ -2387,45 +2387,45 @@ int pechochar(
#undef printw
int printw(
- const char *fmt,
+ const char *fmt,
...)
{ return(*(int *)0); }
#undef wprintw
int wprintw(
- WINDOW *win,
- const char *fmt,
+ WINDOW *win,
+ const char *fmt,
...)
{ return(*(int *)0); }
#undef mvprintw
int mvprintw(
- int y,
- int x,
- const char *fmt,
+ int y,
+ int x,
+ const char *fmt,
...)
{ return(*(int *)0); }
#undef mvwprintw
int mvwprintw(
- WINDOW *win,
- int y,
- int x,
- const char *fmt,
+ WINDOW *win,
+ int y,
+ int x,
+ const char *fmt,
...)
{ return(*(int *)0); }
#undef vwprintw
int vwprintw(
- WINDOW *win,
- const char *fmt,
+ WINDOW *win,
+ const char *fmt,
va_list argp)
{ return(*(int *)0); }
#undef vw_printw
int vw_printw(
- WINDOW *win,
- const char *fmt,
+ WINDOW *win,
+ const char *fmt,
va_list argp)
{ return(*(int *)0); }
@@ -2433,8 +2433,8 @@ int vw_printw(
#undef wredrawln
int wredrawln(
- WINDOW *win,
- int beg,
+ WINDOW *win,
+ int beg,
int num)
{ return(*(int *)0); }
@@ -2454,16 +2454,16 @@ int wnoutrefresh(
#undef restartterm_sp
int restartterm_sp(
- SCREEN *sp,
- const char *termp,
- int filenum,
+ SCREEN *sp,
+ const char *termp,
+ int filenum,
int *errret)
{ return(*(int *)0); }
#undef restartterm
int restartterm(
- const char *termp,
- int filenum,
+ const char *termp,
+ int filenum,
int *errret)
{ return(*(int *)0); }
@@ -2471,45 +2471,45 @@ int restartterm(
#undef vwscanw
int vwscanw(
- WINDOW *win,
- const char *fmt,
+ WINDOW *win,
+ const char *fmt,
va_list argp)
{ return(*(int *)0); }
#undef vw_scanw
int vw_scanw(
- WINDOW *win,
- const char *fmt,
+ WINDOW *win,
+ const char *fmt,
va_list argp)
{ return(*(int *)0); }
#undef scanw
int scanw(
- const char *fmt,
+ const char *fmt,
...)
{ return(*(int *)0); }
#undef wscanw
int wscanw(
- WINDOW *win,
- const char *fmt,
+ WINDOW *win,
+ const char *fmt,
...)
{ return(*(int *)0); }
#undef mvscanw
int mvscanw(
- int y,
- int x,
- const char *fmt,
+ int y,
+ int x,
+ const char *fmt,
...)
{ return(*(int *)0); }
#undef mvwscanw
int mvwscanw(
- WINDOW *win,
- int y,
- int x,
- const char *fmt,
+ WINDOW *win,
+ int y,
+ int x,
+ const char *fmt,
...)
{ return(*(int *)0); }
@@ -2517,7 +2517,7 @@ int mvwscanw(
#undef getwin_sp
WINDOW *getwin_sp(
- SCREEN *sp,
+ SCREEN *sp,
FILE *filep)
{ return(*(WINDOW **)0); }
@@ -2528,13 +2528,13 @@ WINDOW *getwin(
#undef putwin
int putwin(
- WINDOW *win,
+ WINDOW *win,
FILE *filep)
{ return(*(int *)0); }
#undef scr_restore_sp
int scr_restore_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *file)
{ return(*(int *)0); }
@@ -2550,7 +2550,7 @@ int scr_dump(
#undef scr_init_sp
int scr_init_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *file)
{ return(*(int *)0); }
@@ -2561,7 +2561,7 @@ int scr_init(
#undef scr_set_sp
int scr_set_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *file)
{ return(*(int *)0); }
@@ -2574,16 +2574,16 @@ int scr_set(
#undef _nc_scroll_window
void _nc_scroll_window(
- WINDOW *win,
- int const n,
- int const top,
- int const bottom,
+ WINDOW *win,
+ int const n,
+ int const top,
+ int const bottom,
cchar_t blank)
{ /* void */ }
#undef wscrl
int wscrl(
- WINDOW *win,
+ WINDOW *win,
int n)
{ return(*(int *)0); }
@@ -2591,7 +2591,7 @@ int wscrl(
#undef scrollok
int scrollok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
@@ -2599,8 +2599,8 @@ int scrollok(
#undef wsetscrreg
int wsetscrreg(
- WINDOW *win,
- int top,
+ WINDOW *win,
+ int top,
int bottom)
{ return(*(int *)0); }
@@ -2618,54 +2618,54 @@ void delscreen(
#undef _nc_setupscreen_sp
int _nc_setupscreen_sp(
- SCREEN **spp,
- int slines,
- int scolumns,
- FILE *output,
- int filtered,
+ SCREEN **spp,
+ int slines,
+ int scolumns,
+ FILE *output,
+ int filtered,
int slk_format)
{ return(*(int *)0); }
#undef _nc_setupscreen
int _nc_setupscreen(
- int slines,
- int scolumns,
- FILE *output,
- int filtered,
+ int slines,
+ int scolumns,
+ FILE *output,
+ int filtered,
int slk_format)
{ return(*(int *)0); }
#undef _nc_ripoffline_sp
int _nc_ripoffline_sp(
- SCREEN *sp,
- int line,
+ SCREEN *sp,
+ int line,
int (*init)(
- WINDOW *p1,
+ WINDOW *p1,
int p2))
{ return(*(int *)0); }
#undef _nc_ripoffline
int _nc_ripoffline(
- int line,
+ int line,
int (*init)(
- WINDOW *p1,
+ WINDOW *p1,
int p2))
{ return(*(int *)0); }
#undef ripoffline_sp
int ripoffline_sp(
- SCREEN *sp,
- int line,
+ SCREEN *sp,
+ int line,
int (*init)(
- WINDOW *p1,
+ WINDOW *p1,
int p2))
{ return(*(int *)0); }
#undef ripoffline
int ripoffline(
- int line,
+ int line,
int (*init)(
- WINDOW *p1,
+ WINDOW *p1,
int p2))
{ return(*(int *)0); }
@@ -2673,13 +2673,13 @@ int ripoffline(
#undef _nc_format_slks
int _nc_format_slks(
- SCREEN *sp,
+ SCREEN *sp,
int cols)
{ return(*(int *)0); }
#undef _nc_slk_initialize
int _nc_slk_initialize(
- WINDOW *stwin,
+ WINDOW *stwin,
int cols)
{ return(*(int *)0); }
@@ -2696,16 +2696,16 @@ int slk_restore(void)
#undef slk_attr_set_sp
int slk_attr_set_sp(
- SCREEN *sp,
- const attr_t attr,
- short pair_arg,
+ SCREEN *sp,
+ const attr_t attr,
+ short pair_arg,
void *opts)
{ return(*(int *)0); }
#undef slk_attr_set
int slk_attr_set(
- const attr_t attr,
- short pair_arg,
+ const attr_t attr,
+ short pair_arg,
void *opts)
{ return(*(int *)0); }
@@ -2713,7 +2713,7 @@ int slk_attr_set(
#undef slk_attroff_sp
int slk_attroff_sp(
- SCREEN *sp,
+ SCREEN *sp,
const chtype attr)
{ return(*(int *)0); }
@@ -2726,7 +2726,7 @@ int slk_attroff(
#undef slk_attron_sp
int slk_attron_sp(
- SCREEN *sp,
+ SCREEN *sp,
const chtype attr)
{ return(*(int *)0); }
@@ -2739,7 +2739,7 @@ int slk_attron(
#undef slk_attrset_sp
int slk_attrset_sp(
- SCREEN *sp,
+ SCREEN *sp,
const chtype attr)
{ return(*(int *)0); }
@@ -2774,7 +2774,7 @@ int slk_clear(void)
#undef slk_color_sp
int slk_color_sp(
- SCREEN *sp,
+ SCREEN *sp,
short pair_arg)
{ return(*(int *)0); }
@@ -2785,7 +2785,7 @@ int slk_color(
#undef extended_slk_color_sp
int extended_slk_color_sp(
- SCREEN *sp,
+ SCREEN *sp,
int pair_arg)
{ return(*(int *)0); }
@@ -2798,7 +2798,7 @@ int extended_slk_color(
#undef slk_init_sp
int slk_init_sp(
- SCREEN *sp,
+ SCREEN *sp,
int format)
{ return(*(int *)0); }
@@ -2811,7 +2811,7 @@ int slk_init(
#undef slk_label_sp
char *slk_label_sp(
- SCREEN *sp,
+ SCREEN *sp,
int n)
{ return(*(char **)0); }
@@ -2844,16 +2844,16 @@ int slk_refresh(void)
#undef slk_set_sp
int slk_set_sp(
- SCREEN *sp,
- int i,
- const char *astr,
+ SCREEN *sp,
+ int i,
+ const char *astr,
int format)
{ return(*(int *)0); }
#undef slk_set
int slk_set(
- int i,
- const char *astr,
+ int i,
+ const char *astr,
int format)
{ return(*(int *)0); }
@@ -2872,7 +2872,7 @@ int slk_touch(void)
#undef is_linetouched
NCURSES_BOOL is_linetouched(
- WINDOW *win,
+ WINDOW *win,
int line)
{ return(*(NCURSES_BOOL *)0); }
@@ -2883,9 +2883,9 @@ NCURSES_BOOL is_wintouched(
#undef wtouchln
int wtouchln(
- WINDOW *win,
- int y,
- int n,
+ WINDOW *win,
+ int y,
+ int n,
int changed)
{ return(*(int *)0); }
@@ -2893,7 +2893,7 @@ int wtouchln(
#undef _tracedump
void _tracedump(
- const char *name,
+ const char *name,
WINDOW *win)
{ /* void */ }
@@ -2901,19 +2901,19 @@ void _tracedump(
#undef _nc_trace_mmask_t
char *_nc_trace_mmask_t(
- SCREEN *sp,
+ SCREEN *sp,
mmask_t code)
{ return(*(char **)0); }
#undef _nc_tracemouse
char *_nc_tracemouse(
- SCREEN *sp,
+ SCREEN *sp,
MEVENT const *ep)
{ return(*(char **)0); }
#undef _nc_retrace_mmask_t
mmask_t _nc_retrace_mmask_t(
- SCREEN *sp,
+ SCREEN *sp,
mmask_t code)
{ return(*(mmask_t *)0); }
@@ -2938,7 +2938,7 @@ void _nc_fifo_dump(
#undef ungetch_sp
int ungetch_sp(
- SCREEN *sp,
+ SCREEN *sp,
int ch)
{ return(*(int *)0); }
@@ -2951,20 +2951,20 @@ int ungetch(
#undef vidputs_sp
int vidputs_sp(
- SCREEN *sp,
- chtype newmode,
+ SCREEN *sp,
+ chtype newmode,
NCURSES_OUTC_sp outc)
{ return(*(int *)0); }
#undef vidputs
int vidputs(
- chtype newmode,
+ chtype newmode,
NCURSES_OUTC outc)
{ return(*(int *)0); }
#undef vidattr_sp
int vidattr_sp(
- SCREEN *sp,
+ SCREEN *sp,
chtype newmode)
{ return(*(int *)0); }
@@ -2986,8 +2986,8 @@ chtype termattrs(void)
#undef wvline
int wvline(
- WINDOW *win,
- chtype ch,
+ WINDOW *win,
+ chtype ch,
int n)
{ return(*(int *)0); }
@@ -2995,8 +2995,8 @@ int wvline(
#undef wattr_off
int wattr_off(
- WINDOW *win,
- attr_t at,
+ WINDOW *win,
+ attr_t at,
void *opts)
{ return(*(int *)0); }
@@ -3004,8 +3004,8 @@ int wattr_off(
#undef wattr_on
int wattr_on(
- WINDOW *win,
- attr_t at,
+ WINDOW *win,
+ attr_t at,
void *opts)
{ return(*(int *)0); }
@@ -3025,14 +3025,14 @@ void _nc_synchook(
#undef mvderwin
int mvderwin(
- WINDOW *win,
- int y,
+ WINDOW *win,
+ int y,
int x)
{ return(*(int *)0); }
#undef syncok
int syncok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL bf)
{ return(*(int *)0); }
@@ -3071,14 +3071,14 @@ struct panelhook *_nc_panelhook(void)
#undef _nc_printf_string_sp
char *_nc_printf_string_sp(
- SCREEN *sp,
- const char *fmt,
+ SCREEN *sp,
+ const char *fmt,
va_list ap)
{ return(*(char **)0); }
#undef _nc_printf_string
char *_nc_printf_string(
- const char *fmt,
+ const char *fmt,
va_list ap)
{ return(*(char **)0); }
@@ -3095,18 +3095,18 @@ int doupdate(void)
#undef _nc_scrolln_sp
int _nc_scrolln_sp(
- SCREEN *sp,
- int n,
- int top,
- int bot,
+ SCREEN *sp,
+ int n,
+ int top,
+ int bot,
int maxy)
{ return(*(int *)0); }
#undef _nc_scrolln
int _nc_scrolln(
- int n,
- int top,
- int bot,
+ int n,
+ int top,
+ int bot,
int maxy)
{ return(*(int *)0); }
@@ -3139,7 +3139,7 @@ void _nc_screen_wrap(void)
#undef _nc_do_xmc_glitch_sp
void _nc_do_xmc_glitch_sp(
- SCREEN *sp,
+ SCREEN *sp,
attr_t previous)
{ /* void */ }
@@ -3152,7 +3152,7 @@ void _nc_do_xmc_glitch(
#undef _nc_varargs
char *_nc_varargs(
- const char *fmt,
+ const char *fmt,
va_list ap)
{ return(*(char **)0); }
@@ -3170,7 +3170,7 @@ void _nc_freeall(void)
#undef _nc_free_and_exit_sp
void _nc_free_and_exit_sp(
- SCREEN *sp,
+ SCREEN *sp,
int code)
{ /* void */ }
@@ -3205,13 +3205,13 @@ wint_t _nc_to_widechar(
#undef wadd_wch
int wadd_wch(
- WINDOW *win,
+ WINDOW *win,
const cchar_t *wch)
{ return(*(int *)0); }
#undef wecho_wchar
int wecho_wchar(
- WINDOW *win,
+ WINDOW *win,
const cchar_t *wch)
{ return(*(int *)0); }
@@ -3219,14 +3219,14 @@ int wecho_wchar(
#undef wborder_set
int wborder_set(
- WINDOW *win,
- const cchar_t *ls,
- const cchar_t *rs,
- const cchar_t *ts,
- const cchar_t *bs,
- const cchar_t *tl,
- const cchar_t *tr,
- const cchar_t *bl,
+ WINDOW *win,
+ const cchar_t *ls,
+ const cchar_t *rs,
+ const cchar_t *ts,
+ const cchar_t *bs,
+ const cchar_t *tl,
+ const cchar_t *tr,
+ const cchar_t *bl,
const cchar_t *br)
{ return(*(int *)0); }
@@ -3234,29 +3234,41 @@ int wborder_set(
#undef setcchar
int setcchar(
- cchar_t *wcval,
- const wchar_t *wch,
- const attr_t attrs,
- short pair_arg,
+ cchar_t *wcval,
+ const wchar_t *wch,
+ const attr_t attrs,
+ short pair_arg,
const void *opts)
{ return(*(int *)0); }
#undef getcchar
int getcchar(
- const cchar_t *wcval,
- wchar_t *wch,
- attr_t *attrs,
- short *pair_arg,
+ const cchar_t *wcval,
+ wchar_t *wch,
+ attr_t *attrs,
+ short *pair_arg,
void *opts)
{ return(*(int *)0); }
/* ./widechar/lib_erasewchar.c */
+#undef erasewchar_sp
+int erasewchar_sp(
+ SCREEN *sp,
+ wchar_t *wch)
+ { return(*(int *)0); }
+
#undef erasewchar
int erasewchar(
wchar_t *wch)
{ return(*(int *)0); }
+#undef killwchar_sp
+int killwchar_sp(
+ SCREEN *sp,
+ wchar_t *wch)
+ { return(*(int *)0); }
+
#undef killwchar
int killwchar(
wchar_t *wch)
@@ -3266,7 +3278,7 @@ int killwchar(
#undef wget_wch
int wget_wch(
- WINDOW *win,
+ WINDOW *win,
wint_t *result)
{ return(*(int *)0); }
@@ -3274,8 +3286,8 @@ int wget_wch(
#undef wgetn_wstr
int wgetn_wstr(
- WINDOW *win,
- wint_t *str,
+ WINDOW *win,
+ wint_t *str,
int maxlen)
{ return(*(int *)0); }
@@ -3283,8 +3295,8 @@ int wgetn_wstr(
#undef whline_set
int whline_set(
- WINDOW *win,
- const cchar_t *ch,
+ WINDOW *win,
+ const cchar_t *ch,
int n)
{ return(*(int *)0); }
@@ -3292,7 +3304,7 @@ int whline_set(
#undef win_wch
int win_wch(
- WINDOW *win,
+ WINDOW *win,
cchar_t *wcval)
{ return(*(int *)0); }
@@ -3300,8 +3312,8 @@ int win_wch(
#undef win_wchnstr
int win_wchnstr(
- WINDOW *win,
- cchar_t *wchstr,
+ WINDOW *win,
+ cchar_t *wchstr,
int n)
{ return(*(int *)0); }
@@ -3309,20 +3321,20 @@ int win_wchnstr(
#undef _nc_insert_wch
int _nc_insert_wch(
- WINDOW *win,
+ WINDOW *win,
const cchar_t *wch)
{ return(*(int *)0); }
#undef wins_wch
int wins_wch(
- WINDOW *win,
+ WINDOW *win,
const cchar_t *wch)
{ return(*(int *)0); }
#undef wins_nwstr
int wins_nwstr(
- WINDOW *win,
- const wchar_t *wstr,
+ WINDOW *win,
+ const wchar_t *wstr,
int n)
{ return(*(int *)0); }
@@ -3330,14 +3342,14 @@ int wins_nwstr(
#undef winnwstr
int winnwstr(
- WINDOW *win,
- wchar_t *wstr,
+ WINDOW *win,
+ wchar_t *wstr,
int n)
{ return(*(int *)0); }
#undef winwstr
int winwstr(
- WINDOW *win,
+ WINDOW *win,
wchar_t *wstr)
{ return(*(int *)0); }
@@ -3352,7 +3364,7 @@ const char *key_name(
#undef pecho_wchar
int pecho_wchar(
- WINDOW *pad,
+ WINDOW *pad,
const cchar_t *wch)
{ return(*(int *)0); }
@@ -3360,8 +3372,8 @@ int pecho_wchar(
#undef slk_wset
int slk_wset(
- int i,
- const wchar_t *astr,
+ int i,
+ const wchar_t *astr,
int format)
{ return(*(int *)0); }
@@ -3369,14 +3381,14 @@ int slk_wset(
#undef _nc_wcrtomb
size_t _nc_wcrtomb(
- char *target,
- wchar_t source,
+ char *target,
+ wchar_t source,
mbstate_t *state)
{ return(*(size_t *)0); }
#undef unget_wch_sp
int unget_wch_sp(
- SCREEN *sp,
+ SCREEN *sp,
const wchar_t wch)
{ return(*(int *)0); }
@@ -3389,33 +3401,33 @@ int unget_wch(
#undef vid_puts_sp
int vid_puts_sp(
- SCREEN *sp,
- attr_t newmode,
- short pair_arg,
- void *opts,
+ SCREEN *sp,
+ attr_t newmode,
+ short pair_arg,
+ void *opts,
NCURSES_OUTC_sp outc)
{ return(*(int *)0); }
#undef vid_puts
int vid_puts(
- attr_t newmode,
- short pair_arg,
- void *opts,
+ attr_t newmode,
+ short pair_arg,
+ void *opts,
NCURSES_OUTC outc)
{ return(*(int *)0); }
#undef vid_attr_sp
int vid_attr_sp(
- SCREEN *sp,
- attr_t newmode,
- short pair_arg,
+ SCREEN *sp,
+ attr_t newmode,
+ short pair_arg,
void *opts)
{ return(*(int *)0); }
#undef vid_attr
int vid_attr(
- attr_t newmode,
- short pair_arg,
+ attr_t newmode,
+ short pair_arg,
void *opts)
{ return(*(int *)0); }
@@ -3432,8 +3444,8 @@ attr_t term_attrs(void)
#undef wvline_set
int wvline_set(
- WINDOW *win,
- const cchar_t *ch,
+ WINDOW *win,
+ const cchar_t *ch,
int n)
{ return(*(int *)0); }
@@ -3450,7 +3462,7 @@ void _nc_init_wacs(void)
#undef wunctrl_sp
wchar_t *wunctrl_sp(
- SCREEN *sp,
+ SCREEN *sp,
cchar_t *wc)
{ return(*(wchar_t **)0); }
@@ -3463,31 +3475,31 @@ wchar_t *wunctrl(
#undef _nc_toggle_attr_on
void _nc_toggle_attr_on(
- attr_t *S,
+ attr_t *S,
attr_t at)
{ /* void */ }
#undef _nc_toggle_attr_off
void _nc_toggle_attr_off(
- attr_t *S,
+ attr_t *S,
attr_t at)
{ /* void */ }
#undef _nc_DelCharCost_sp
int _nc_DelCharCost_sp(
- SCREEN *sp,
+ SCREEN *sp,
int count)
{ return(*(int *)0); }
#undef _nc_InsCharCost_sp
int _nc_InsCharCost_sp(
- SCREEN *sp,
+ SCREEN *sp,
int count)
{ return(*(int *)0); }
#undef _nc_UpdateAttrs_sp
void _nc_UpdateAttrs_sp(
- SCREEN *sp,
+ SCREEN *sp,
const cchar_t *c)
{ /* void */ }
@@ -3510,7 +3522,7 @@ void _nc_UpdateAttrs(
#undef use_legacy_coding_sp
int use_legacy_coding_sp(
- SCREEN *sp,
+ SCREEN *sp,
int level)
{ return(*(int *)0); }
@@ -3532,14 +3544,14 @@ int use_default_colors(void)
#undef assume_default_colors_sp
int assume_default_colors_sp(
- SCREEN *sp,
- int fg,
+ SCREEN *sp,
+ int fg,
int bg)
{ return(*(int *)0); }
#undef assume_default_colors
int assume_default_colors(
- int fg,
+ int fg,
int bg)
{ return(*(int *)0); }
@@ -3547,14 +3559,14 @@ int assume_default_colors(
#undef mcprint_sp
int mcprint_sp(
- SCREEN *sp,
- char *data,
+ SCREEN *sp,
+ char *data,
int len)
{ return(*(int *)0); }
#undef mcprint
int mcprint(
- char *data,
+ char *data,
int len)
{ return(*(int *)0); }
@@ -3567,55 +3579,55 @@ void _nc_free_ordered_pairs(
#undef _nc_reset_color_pair
void _nc_reset_color_pair(
- SCREEN *sp,
- int pair,
+ SCREEN *sp,
+ int pair,
colorpair_t *next)
{ /* void */ }
#undef _nc_set_color_pair
void _nc_set_color_pair(
- SCREEN *sp,
- int pair,
+ SCREEN *sp,
+ int pair,
int mode)
{ /* void */ }
#undef _nc_copy_pairs
void _nc_copy_pairs(
- SCREEN *sp,
- colorpair_t *target,
- colorpair_t *source,
+ SCREEN *sp,
+ colorpair_t *target,
+ colorpair_t *source,
int length)
{ /* void */ }
#undef alloc_pair_sp
int alloc_pair_sp(
- SCREEN *sp,
- int fg,
+ SCREEN *sp,
+ int fg,
int bg)
{ return(*(int *)0); }
#undef find_pair_sp
int find_pair_sp(
- SCREEN *sp,
- int fg,
+ SCREEN *sp,
+ int fg,
int bg)
{ return(*(int *)0); }
#undef free_pair_sp
int free_pair_sp(
- SCREEN *sp,
+ SCREEN *sp,
int pair)
{ return(*(int *)0); }
#undef alloc_pair
int alloc_pair(
- int f,
+ int f,
int b)
{ return(*(int *)0); }
#undef find_pair
int find_pair(
- int f,
+ int f,
int b)
{ return(*(int *)0); }
@@ -3628,40 +3640,40 @@ int free_pair(
#undef is_term_resized_sp
NCURSES_BOOL is_term_resized_sp(
- SCREEN *sp,
- int ToLines,
+ SCREEN *sp,
+ int ToLines,
int ToCols)
{ return(*(NCURSES_BOOL *)0); }
#undef is_term_resized
NCURSES_BOOL is_term_resized(
- int ToLines,
+ int ToLines,
int ToCols)
{ return(*(NCURSES_BOOL *)0); }
#undef resize_term_sp
int resize_term_sp(
- SCREEN *sp,
- int ToLines,
+ SCREEN *sp,
+ int ToLines,
int ToCols)
{ return(*(int *)0); }
#undef resize_term
int resize_term(
- int ToLines,
+ int ToLines,
int ToCols)
{ return(*(int *)0); }
#undef resizeterm_sp
int resizeterm_sp(
- SCREEN *sp,
- int ToLines,
+ SCREEN *sp,
+ int ToLines,
int ToCols)
{ return(*(int *)0); }
#undef resizeterm
int resizeterm(
- int ToLines,
+ int ToLines,
int ToCols)
{ return(*(int *)0); }
@@ -3676,8 +3688,8 @@ void _nc_trace_xnames(
#undef use_screen
int use_screen(
- SCREEN *screen,
- NCURSES_SCREEN_CB func,
+ SCREEN *screen,
+ NCURSES_SCREEN_CB func,
void *data)
{ return(*(int *)0); }
@@ -3685,8 +3697,8 @@ int use_screen(
#undef use_window
int use_window(
- WINDOW *win,
- NCURSES_WINDOW_CB func,
+ WINDOW *win,
+ NCURSES_WINDOW_CB func,
void *data)
{ return(*(int *)0); }
@@ -3694,8 +3706,8 @@ int use_window(
#undef wresize
int wresize(
- WINDOW *win,
- int ToLines,
+ WINDOW *win,
+ int ToLines,
int ToCols)
{ return(*(int *)0); }
@@ -3723,7 +3735,7 @@ char *_nc_basename(
#undef _nc_access
int _nc_access(
- const char *path,
+ const char *path,
int mode)
{ return(*(int *)0); }
@@ -3741,12 +3753,25 @@ NCURSES_BOOL _nc_is_file_path(
int _nc_env_access(void)
{ return(*(int *)0); }
+#undef _nc_safe_fopen
+FILE *_nc_safe_fopen(
+ const char *path,
+ const char *mode)
+ { return(*(FILE **)0); }
+
+#undef _nc_safe_open3
+int _nc_safe_open3(
+ const char *path,
+ int flags,
+ mode_t mode)
+ { return(*(int *)0); }
+
/* ./tinfo/add_tries.c */
#undef _nc_add_to_try
int _nc_add_to_try(
- TRIES **tree,
- const char *str,
+ TRIES **tree,
+ const char *str,
unsigned code)
{ return(*(int *)0); }
@@ -3754,25 +3779,25 @@ int _nc_add_to_try(
#undef _nc_align_termtype
void _nc_align_termtype(
- TERMTYPE2 *to,
+ TERMTYPE2 *to,
TERMTYPE2 *from)
{ /* void */ }
#undef _nc_copy_termtype
void _nc_copy_termtype(
- TERMTYPE *dst,
+ TERMTYPE *dst,
const TERMTYPE *src)
{ /* void */ }
#undef _nc_copy_termtype2
void _nc_copy_termtype2(
- TERMTYPE2 *dst,
+ TERMTYPE2 *dst,
const TERMTYPE2 *src)
{ /* void */ }
#undef _nc_export_termtype2
void _nc_export_termtype2(
- TERMTYPE *dst,
+ TERMTYPE *dst,
const TERMTYPE2 *src)
{ /* void */ }
@@ -3842,19 +3867,19 @@ void _nc_get_type(
#undef _nc_warning
void _nc_warning(
- const char *const fmt,
+ const char *const fmt,
...)
{ /* void */ }
#undef _nc_err_abort
void _nc_err_abort(
- const char *const fmt,
+ const char *const fmt,
...)
{ /* void */ }
#undef _nc_syserr_abort
void _nc_syserr_abort(
- const char *const fmt,
+ const char *const fmt,
...)
{ /* void */ }
@@ -3862,14 +3887,14 @@ void _nc_syserr_abort(
#undef _nc_find_entry
struct name_table_entry const *_nc_find_entry(
- const char *string,
+ const char *string,
const HashValue *hash_table)
{ return(*(struct name_table_entry const **)0); }
#undef _nc_find_type_entry
struct name_table_entry const *_nc_find_type_entry(
- const char *string,
- int type,
+ const char *string,
+ int type,
NCURSES_BOOL termcap)
{ return(*(struct name_table_entry const **)0); }
@@ -3906,13 +3931,13 @@ void _nc_last_db(void)
#undef _nc_next_db
const char *_nc_next_db(
- DBDIRS *state,
+ DBDIRS *state,
int *offset)
{ return(*(const char **)0); }
#undef _nc_first_db
void _nc_first_db(
- DBDIRS *state,
+ DBDIRS *state,
int *offset)
{ /* void */ }
@@ -3920,7 +3945,7 @@ void _nc_first_db(
#undef _nc_doalloc
void *_nc_doalloc(
- void *oldp,
+ void *oldp,
size_t amount)
{ return(*(void **)0); }
@@ -3933,7 +3958,7 @@ ENTRY *_nc_tail;
#undef _nc_free_entry
void _nc_free_entry(
- ENTRY *headp,
+ ENTRY *headp,
TERMTYPE2 *tterm)
{ /* void */ }
@@ -3970,6 +3995,11 @@ void _nc_free_termtype(
TERMTYPE *ptr)
{ /* void */ }
+#undef _nc_free_termtype1
+void _nc_free_termtype1(
+ TERMTYPE *ptr)
+ { /* void */ }
+
#undef _nc_free_termtype2
void _nc_free_termtype2(
TERMTYPE2 *ptr)
@@ -3992,7 +4022,7 @@ int _nc_getenv_num(
#undef _nc_setenv_num
void _nc_setenv_num(
- const char *name,
+ const char *name,
int value)
{ /* void */ }
@@ -4027,8 +4057,8 @@ void _nc_init_acs(void)
/* ./tinfo/lib_baudrate.c */
struct speed {
- int given_speed;
- int actual_speed;
+ int given_speed;
+ int actual_speed;
};
#undef _nc_baudrate
@@ -4067,7 +4097,7 @@ TERMINAL *_nc_cur_term(void)
#undef set_curterm_sp
TERMINAL *set_curterm_sp(
- SCREEN *sp,
+ SCREEN *sp,
TERMINAL *termp)
{ return(*(TERMINAL **)0); }
@@ -4078,7 +4108,7 @@ TERMINAL *set_curterm(
#undef del_curterm_sp
int del_curterm_sp(
- SCREEN *sp,
+ SCREEN *sp,
TERMINAL *termp)
{ return(*(int *)0); }
@@ -4194,7 +4224,7 @@ struct kn { short offset; int code; };
#undef keyname_sp
const char *keyname_sp(
- SCREEN *sp,
+ SCREEN *sp,
int c)
{ return(*(const char **)0); }
@@ -4218,7 +4248,7 @@ char *longname(void)
#undef napms_sp
int napms_sp(
- SCREEN *sp,
+ SCREEN *sp,
int ms)
{ return(*(int *)0); }
@@ -4231,19 +4261,19 @@ int napms(
#undef idlok
int idlok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef idcok
void idcok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ /* void */ }
#undef halfdelay_sp
int halfdelay_sp(
- SCREEN *sp,
+ SCREEN *sp,
int t)
{ return(*(int *)0); }
@@ -4254,37 +4284,37 @@ int halfdelay(
#undef nodelay
int nodelay(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef notimeout
int notimeout(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL f)
{ return(*(int *)0); }
#undef wtimeout
void wtimeout(
- WINDOW *win,
+ WINDOW *win,
int delay)
{ /* void */ }
#undef keypad
int keypad(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef meta
int meta(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef curs_set_sp
int curs_set_sp(
- SCREEN *sp,
+ SCREEN *sp,
int vis)
{ return(*(int *)0); }
@@ -4295,7 +4325,7 @@ int curs_set(
#undef typeahead_sp
int typeahead_sp(
- SCREEN *sp,
+ SCREEN *sp,
int fd)
{ return(*(int *)0); }
@@ -4306,7 +4336,7 @@ int typeahead(
#undef has_key_sp
int has_key_sp(
- SCREEN *sp,
+ SCREEN *sp,
int keycode)
{ return(*(int *)0); }
@@ -4317,14 +4347,14 @@ int has_key(
#undef _nc_putp_flush_sp
int _nc_putp_flush_sp(
- SCREEN *sp,
- const char *name,
+ SCREEN *sp,
+ const char *name,
const char *value)
{ return(*(int *)0); }
#undef _nc_keypad
int _nc_keypad(
- SCREEN *sp,
+ SCREEN *sp,
int flag)
{ return(*(int *)0); }
@@ -4386,17 +4416,53 @@ void noqiflush(void)
#undef intrflush_sp
int intrflush_sp(
- SCREEN *sp,
- WINDOW *win,
+ SCREEN *sp,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef intrflush
int intrflush(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
+#undef is_nl_sp
+int is_nl_sp(
+ SCREEN *sp)
+ { return(*(int *)0); }
+
+#undef is_raw_sp
+int is_raw_sp(
+ SCREEN *sp)
+ { return(*(int *)0); }
+
+#undef is_cbreak_sp
+int is_cbreak_sp(
+ SCREEN *sp)
+ { return(*(int *)0); }
+
+#undef is_echo_sp
+int is_echo_sp(
+ SCREEN *sp)
+ { return(*(int *)0); }
+
+#undef is_nl
+int is_nl(void)
+ { return(*(int *)0); }
+
+#undef is_raw
+int is_raw(void)
+ { return(*(int *)0); }
+
+#undef is_cbreak
+int is_cbreak(void)
+ { return(*(int *)0); }
+
+#undef is_echo
+int is_echo(void)
+ { return(*(int *)0); }
+
/* ./tinfo/lib_setup.c */
#undef _nc_ttytype
@@ -4432,7 +4498,7 @@ int _nc_TABSIZE(void)
#undef set_tabsize_sp
int set_tabsize_sp(
- SCREEN *sp,
+ SCREEN *sp,
int value)
{ return(*(int *)0); }
@@ -4448,13 +4514,13 @@ int _nc_handle_sigwinch(
#undef use_env_sp
void use_env_sp(
- SCREEN *sp,
+ SCREEN *sp,
NCURSES_BOOL f)
{ /* void */ }
#undef use_tioctl_sp
void use_tioctl_sp(
- SCREEN *sp,
+ SCREEN *sp,
NCURSES_BOOL f)
{ /* void */ }
@@ -4470,8 +4536,8 @@ void use_tioctl(
#undef _nc_get_screensize
void _nc_get_screensize(
- SCREEN *sp,
- int *linep,
+ SCREEN *sp,
+ int *linep,
int *colp)
{ /* void */ }
@@ -4482,13 +4548,13 @@ void _nc_update_screensize(
#undef _nc_setup_tinfo
int _nc_setup_tinfo(
- const char *const tn,
+ const char *const tn,
TERMTYPE2 *const tp)
{ return(*(int *)0); }
#undef _nc_tinfo_cmdch
void _nc_tinfo_cmdch(
- TERMINAL *termp,
+ TERMINAL *termp,
int proto)
{ /* void */ }
@@ -4507,9 +4573,9 @@ int _nc_locale_breaks_acs(
#undef _nc_setupterm
int _nc_setupterm(
- const char *tname,
- int Filedes,
- int *errret,
+ const char *tname,
+ int Filedes,
+ int *errret,
int reuse)
{ return(*(int *)0); }
@@ -4527,8 +4593,8 @@ SCREEN *new_prescr(void)
#undef setupterm
int setupterm(
- const char *tname,
- int Filedes,
+ const char *tname,
+ int Filedes,
int *errret)
{ return(*(int *)0); }
@@ -4541,20 +4607,20 @@ char *BC;
#undef tgetent_sp
int tgetent_sp(
- SCREEN *sp,
- char *bufp,
+ SCREEN *sp,
+ char *bufp,
const char *name)
{ return(*(int *)0); }
#undef tgetent
int tgetent(
- char *bufp,
+ char *bufp,
const char *name)
{ return(*(int *)0); }
#undef tgetflag_sp
int tgetflag_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *id)
{ return(*(int *)0); }
@@ -4565,7 +4631,7 @@ int tgetflag(
#undef tgetnum_sp
int tgetnum_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *id)
{ return(*(int *)0); }
@@ -4576,14 +4642,14 @@ int tgetnum(
#undef tgetstr_sp
char *tgetstr_sp(
- SCREEN *sp,
- const char *id,
+ SCREEN *sp,
+ const char *id,
char **area)
{ return(*(char **)0); }
#undef tgetstr
char *tgetstr(
- const char *id,
+ const char *id,
char **area)
{ return(*(char **)0); }
@@ -4602,8 +4668,8 @@ char *termname(void)
#undef tgoto
char *tgoto(
- const char *string,
- int x,
+ const char *string,
+ int x,
int y)
{ return(*(char **)0); }
@@ -4611,7 +4677,7 @@ char *tgoto(
#undef tigetflag_sp
int tigetflag_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *str)
{ return(*(int *)0); }
@@ -4622,7 +4688,7 @@ int tigetflag(
#undef tigetnum_sp
int tigetnum_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *str)
{ return(*(int *)0); }
@@ -4633,7 +4699,7 @@ int tigetnum(
#undef tigetstr_sp
char *tigetstr_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *str)
{ return(*(char **)0); }
@@ -4647,32 +4713,58 @@ char *tigetstr(
#undef _nc_tparm_err
int _nc_tparm_err;
+#undef _nc_free_tparm
+void _nc_free_tparm(
+ TERMINAL *termp)
+ { /* void */ }
+
#undef _nc_tparm_analyze
int _nc_tparm_analyze(
- const char *string,
- char *p_is_s[9],
+ TERMINAL *term,
+ const char *string,
+ char **p_is_s,
int *_nc_popcount)
{ return(*(int *)0); }
#undef tparm
char *tparm(
- const char *string,
+ const char *string,
...)
{ return(*(char **)0); }
#undef tiparm
char *tiparm(
- const char *string,
+ const char *string,
+ ...)
+ { return(*(char **)0); }
+
+#undef tiparm_s
+char *tiparm_s(
+ int num_expected,
+ int tparm_type,
+ const char *string,
...)
{ return(*(char **)0); }
+#undef tiscan_s
+int tiscan_s(
+ int *num_expected,
+ int *tparm_type,
+ const char *string)
+ { return(*(int *)0); }
+
#undef _nc_tiparm
char *_nc_tiparm(
- int expected,
- const char *string,
+ int expected,
+ const char *string,
...)
{ return(*(char **)0); }
+#undef _nc_reset_tparm
+void _nc_reset_tparm(
+ TERMINAL *term)
+ { /* void */ }
+
/* ./tinfo/lib_tputs.c */
#undef PC
@@ -4689,7 +4781,7 @@ void _nc_set_no_padding(
#undef delay_output_sp
int delay_output_sp(
- SCREEN *sp,
+ SCREEN *sp,
int ms)
{ return(*(int *)0); }
@@ -4709,7 +4801,7 @@ void _nc_flush(void)
#undef _nc_outch_sp
int _nc_outch_sp(
- SCREEN *sp,
+ SCREEN *sp,
int ch)
{ return(*(int *)0); }
@@ -4720,7 +4812,7 @@ int _nc_outch(
#undef _nc_putchar_sp
int _nc_putchar_sp(
- SCREEN *sp,
+ SCREEN *sp,
int ch)
{ return(*(int *)0); }
@@ -4731,7 +4823,7 @@ int _nc_putchar(
#undef putp_sp
int putp_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *string)
{ return(*(int *)0); }
@@ -4742,35 +4834,35 @@ int putp(
#undef _nc_putp_sp
int _nc_putp_sp(
- SCREEN *sp,
- const char *name,
+ SCREEN *sp,
+ const char *name,
const char *string)
{ return(*(int *)0); }
#undef _nc_putp
int _nc_putp(
- const char *name,
+ const char *name,
const char *string)
{ return(*(int *)0); }
#undef tputs_sp
int tputs_sp(
- SCREEN *sp,
- const char *string,
- int affcnt,
+ SCREEN *sp,
+ const char *string,
+ int affcnt,
NCURSES_OUTC_sp outc)
{ return(*(int *)0); }
#undef _nc_outc_wrapper
int _nc_outc_wrapper(
- SCREEN *sp,
+ SCREEN *sp,
int c)
{ return(*(int *)0); }
#undef tputs
int tputs(
- const char *string,
- int affcnt,
+ const char *string,
+ int affcnt,
int (*outc)(
int p1))
{ return(*(int *)0); }
@@ -4810,7 +4902,7 @@ void trace(
#undef _tracef
void _tracef(
- const char *fmt,
+ const char *fmt,
...)
{ /* void */ }
@@ -4866,8 +4958,8 @@ WINDOW *_nc_retrace_win(
#undef _nc_fmt_funcptr
char *_nc_fmt_funcptr(
- char *target,
- const char *source,
+ char *target,
+ const char *source,
size_t size)
{ return(*(char **)0); }
@@ -4878,7 +4970,7 @@ int _nc_use_tracef(
#undef _nc_locked_tracef
void _nc_locked_tracef(
- const char *fmt,
+ const char *fmt,
...)
{ /* void */ }
@@ -4886,7 +4978,7 @@ void _nc_locked_tracef(
#undef _traceattr2
char *_traceattr2(
- int bufnum,
+ int bufnum,
chtype newmode)
{ return(*(char **)0); }
@@ -4907,13 +4999,13 @@ attr_t _nc_retrace_attr_t(
#undef _nc_altcharset_name
const char *_nc_altcharset_name(
- attr_t attr,
+ attr_t attr,
chtype ch)
{ return(*(const char **)0); }
#undef _tracechtype2
char *_tracechtype2(
- int bufnum,
+ int bufnum,
chtype ch)
{ return(*(char **)0); }
@@ -4929,7 +5021,7 @@ chtype _nc_retrace_chtype(
#undef _tracecchar_t2
char *_tracecchar_t2(
- int bufnum,
+ int bufnum,
const cchar_t *ch)
{ return(*(char **)0); }
@@ -4942,7 +5034,7 @@ char *_tracecchar_t(
#undef _nc_trace_ttymode
char *_nc_trace_ttymode(
- struct termios *tty)
+ const struct termios *tty)
{ return(*(char **)0); }
#undef _nc_tracebits
@@ -4953,7 +5045,7 @@ char *_nc_tracebits(void)
#undef _nc_tracechar
char *_nc_tracechar(
- SCREEN *sp,
+ SCREEN *sp,
int ch)
{ return(*(char **)0); }
@@ -4966,7 +5058,7 @@ char *_tracechar(
#undef _nc_get_tty_mode_sp
int _nc_get_tty_mode_sp(
- SCREEN *sp,
+ SCREEN *sp,
struct termios *buf)
{ return(*(int *)0); }
@@ -4977,7 +5069,7 @@ int _nc_get_tty_mode(
#undef _nc_set_tty_mode_sp
int _nc_set_tty_mode_sp(
- SCREEN *sp,
+ SCREEN *sp,
struct termios *buf)
{ return(*(int *)0); }
@@ -5044,9 +5136,9 @@ int resetty(void)
#undef _nc_timed_wait
int _nc_timed_wait(
- SCREEN *sp,
- int mode,
- int milliseconds,
+ SCREEN *sp,
+ int mode,
+ int milliseconds,
int *timeleft)
{ return(*(int *)0); }
@@ -5059,8 +5151,8 @@ char *_nc_first_name(
#undef _nc_name_match
int _nc_name_match(
- const char *const namelst,
- const char *const name,
+ const char *const namelst,
+ const char *const name,
const char *const delim)
{ return(*(int *)0); }
@@ -5094,14 +5186,14 @@ const char *const *_nc_strfnames(void)
#undef _nc_set_buffer_sp
void _nc_set_buffer_sp(
- SCREEN *sp,
- FILE *ofp,
+ SCREEN *sp,
+ FILE *ofp,
int buffered)
{ /* void */ }
#undef _nc_set_buffer
void _nc_set_buffer(
- FILE *ofp,
+ FILE *ofp,
int buffered)
{ /* void */ }
@@ -5114,28 +5206,28 @@ void _nc_init_termtype(
#undef _nc_read_termtype
int _nc_read_termtype(
- TERMTYPE2 *ptr,
- char *buffer,
+ TERMTYPE2 *ptr,
+ char *buffer,
int limit)
{ return(*(int *)0); }
#undef _nc_read_file_entry
int _nc_read_file_entry(
- const char *const filename,
+ const char *const filename,
TERMTYPE2 *ptr)
{ return(*(int *)0); }
#undef _nc_read_entry2
int _nc_read_entry2(
- const char *const name,
- char *const filename,
+ const char *const name,
+ char *const filename,
TERMTYPE2 *const tp)
{ return(*(int *)0); }
#undef _nc_read_entry
int _nc_read_entry(
- const char *const name,
- char *const filename,
+ const char *const name,
+ char *const filename,
TERMTYPE *const tp)
{ return(*(int *)0); }
@@ -5143,7 +5235,7 @@ int _nc_read_entry(
#undef _nc_read_termcap_entry
int _nc_read_termcap_entry(
- const char *const tn,
+ const char *const tn,
TERMTYPE2 *const tp)
{ return(*(int *)0); }
@@ -5151,32 +5243,32 @@ int _nc_read_termcap_entry(
#undef _nc_str_init
string_desc *_nc_str_init(
- string_desc *dst,
- char *src,
+ string_desc *dst,
+ char *src,
size_t len)
{ return(*(string_desc **)0); }
#undef _nc_str_null
string_desc *_nc_str_null(
- string_desc *dst,
+ string_desc *dst,
size_t len)
{ return(*(string_desc **)0); }
#undef _nc_str_copy
string_desc *_nc_str_copy(
- string_desc *dst,
- string_desc *src)
+ string_desc *dst,
+ const string_desc *const src)
{ return(*(string_desc **)0); }
#undef _nc_safe_strcat
NCURSES_BOOL _nc_safe_strcat(
- string_desc *dst,
+ string_desc *dst,
const char *src)
{ return(*(NCURSES_BOOL *)0); }
#undef _nc_safe_strcpy
NCURSES_BOOL _nc_safe_strcpy(
- string_desc *dst,
+ string_desc *dst,
const char *src)
{ return(*(NCURSES_BOOL *)0); }
@@ -5184,13 +5276,13 @@ NCURSES_BOOL _nc_safe_strcpy(
#undef _nc_trace_buf
char *_nc_trace_buf(
- int bufnum,
+ int bufnum,
size_t want)
{ return(*(char **)0); }
#undef _nc_trace_bufcat
char *_nc_trace_bufcat(
- int bufnum,
+ int bufnum,
const char *value)
{ return(*(char **)0); }
@@ -5205,21 +5297,21 @@ void _nc_trace_tries(
#undef _nc_expand_try
char *_nc_expand_try(
- TRIES *tree,
- unsigned code,
- int *count,
+ TRIES *tree,
+ unsigned code,
+ int *count,
size_t len)
{ return(*(char **)0); }
#undef _nc_remove_key
int _nc_remove_key(
- TRIES **tree,
+ TRIES **tree,
unsigned code)
{ return(*(int *)0); }
#undef _nc_remove_string
int _nc_remove_string(
- TRIES **tree,
+ TRIES **tree,
const char *string)
{ return(*(int *)0); }
@@ -5234,7 +5326,7 @@ char *_nc_trim_sgr0(
#undef unctrl_sp
const char *unctrl_sp(
- SCREEN *sp,
+ SCREEN *sp,
chtype ch)
{ return(*(const char **)0); }
@@ -5247,7 +5339,7 @@ const char *unctrl(
#undef _nc_visbuf2
const char *_nc_visbuf2(
- int bufnum,
+ int bufnum,
const char *buf)
{ return(*(const char **)0); }
@@ -5258,13 +5350,13 @@ const char *_nc_visbuf(
#undef _nc_visbufn
const char *_nc_visbufn(
- const char *buf,
+ const char *buf,
int len)
{ return(*(const char **)0); }
#undef _nc_viswbuf2
const char *_nc_viswbuf2(
- int bufnum,
+ int bufnum,
const wchar_t *buf)
{ return(*(const char **)0); }
@@ -5275,7 +5367,7 @@ const char *_nc_viswbuf(
#undef _nc_viswbufn
const char *_nc_viswbufn(
- const wchar_t *buf,
+ const wchar_t *buf,
int len)
{ return(*(const char **)0); }
@@ -5286,14 +5378,14 @@ const char *_nc_viswibuf(
#undef _nc_viscbuf2
const char *_nc_viscbuf2(
- int bufnum,
- const cchar_t *buf,
+ int bufnum,
+ const cchar_t *buf,
int len)
{ return(*(const char **)0); }
#undef _nc_viscbuf
const char *_nc_viscbuf(
- const cchar_t *buf,
+ const cchar_t *buf,
int len)
{ return(*(const char **)0); }
@@ -5311,18 +5403,18 @@ ENTRY *_nc_copy_entry(
#undef _nc_save_str
char *_nc_save_str(
- const char *const string)
+ const char *string)
{ return(*(char **)0); }
#undef _nc_wrap_entry
void _nc_wrap_entry(
- ENTRY *const ep,
+ ENTRY *const ep,
NCURSES_BOOL copy_strings)
{ /* void */ }
#undef _nc_merge_entry
void _nc_merge_entry(
- ENTRY *const target,
+ ENTRY *const target,
ENTRY *const source)
{ /* void */ }
@@ -5330,15 +5422,15 @@ void _nc_merge_entry(
#undef _nc_captoinfo
char *_nc_captoinfo(
- const char *cap,
- const char *s,
+ const char *cap,
+ const char *s,
int const parameterized)
{ return(*(char **)0); }
#undef _nc_infotocap
char *_nc_infotocap(
- const char *cap,
- const char *str,
+ const char *cap,
+ const char *str,
int const parameterized)
{ return(*(char **)0); }
@@ -5346,8 +5438,8 @@ char *_nc_infotocap(
#undef _nc_tic_expand
char *_nc_tic_expand(
- const char *srcp,
- NCURSES_BOOL tic_format,
+ const char *srcp,
+ NCURSES_BOOL tic_format,
int numbers)
{ return(*(char **)0); }
@@ -5355,28 +5447,28 @@ char *_nc_tic_expand(
#undef _nc_check_termtype2
void (*_nc_check_termtype2)(
- TERMTYPE2 *p1,
+ TERMTYPE2 *p1,
NCURSES_BOOL p2);
#undef _nc_entry_match
NCURSES_BOOL _nc_entry_match(
- char *n1,
+ char *n1,
char *n2)
{ return(*(NCURSES_BOOL *)0); }
#undef _nc_read_entry_source
void _nc_read_entry_source(
- FILE *fp,
- char *buf,
- int literal,
- NCURSES_BOOL silent,
+ FILE *fp,
+ char *buf,
+ int literal,
+ NCURSES_BOOL silent,
NCURSES_BOOL (*hook)(
ENTRY *p1))
{ /* void */ }
#undef _nc_resolve_uses2
int _nc_resolve_uses2(
- NCURSES_BOOL fullresolve,
+ NCURSES_BOOL fullresolve,
NCURSES_BOOL literal)
{ return(*(int *)0); }
@@ -5401,7 +5493,7 @@ NCURSES_BOOL _nc_disable_period;
#undef _nc_reset_input
void _nc_reset_input(
- FILE *fp,
+ FILE *fp,
char *buf)
{ /* void */ }
@@ -5412,8 +5504,8 @@ int _nc_get_token(
#undef _nc_trans_string
int _nc_trans_string(
- char *ptr,
- char *last)
+ char *ptr,
+ const char *const last)
{ return(*(int *)0); }
#undef _nc_push_token
@@ -5430,14 +5522,14 @@ void _nc_panic_mode(
#undef _nc_parse_entry
int _nc_parse_entry(
- ENTRY *entryp,
- int literal,
+ ENTRY *entryp,
+ int literal,
NCURSES_BOOL silent)
{ return(*(int *)0); }
#undef _nc_capcmp
int _nc_capcmp(
- const char *s,
+ const char *s,
const char *t)
{ return(*(int *)0); }
@@ -5455,9 +5547,9 @@ void _nc_write_entry(
#undef _nc_write_object
int _nc_write_object(
- TERMTYPE2 *tp,
- char *buffer,
- unsigned *offset,
+ TERMTYPE2 *tp,
+ char *buffer,
+ unsigned *offset,
unsigned limit)
{ return(*(int *)0); }
@@ -5469,14 +5561,14 @@ int _nc_tic_written(void)
#undef define_key_sp
int define_key_sp(
- SCREEN *sp,
- const char *str,
+ SCREEN *sp,
+ const char *str,
int keycode)
{ return(*(int *)0); }
#undef define_key
int define_key(
- const char *str,
+ const char *str,
int keycode)
{ return(*(int *)0); }
@@ -5490,7 +5582,7 @@ void _nc_hashed_db(void)
#undef key_defined_sp
int key_defined_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *str)
{ return(*(int *)0); }
@@ -5503,14 +5595,14 @@ int key_defined(
#undef keybound_sp
char *keybound_sp(
- SCREEN *sp,
- int code,
+ SCREEN *sp,
+ int code,
int count)
{ return(*(char **)0); }
#undef keybound
char *keybound(
- int code,
+ int code,
int count)
{ return(*(char **)0); }
@@ -5518,14 +5610,14 @@ char *keybound(
#undef keyok_sp
int keyok_sp(
- SCREEN *sp,
- int c,
+ SCREEN *sp,
+ int c,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef keyok
int keyok(
- int c,
+ int c,
NCURSES_BOOL flag)
{ return(*(int *)0); }
diff --git a/ncurses/llib-lncursesw b/ncurses/llib-lncursesw
index 794d4929254a..dbf535db4b3f 100644
--- a/ncurses/llib-lncursesw
+++ b/ncurses/llib-lncursesw
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2022,2023 Thomas E. Dickey *
* Copyright 2001-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -70,7 +70,7 @@ void _nc_hash_map(void)
#undef _nc_make_oldhash_sp
void _nc_make_oldhash_sp(
- SCREEN *sp,
+ SCREEN *sp,
int i)
{ /* void */ }
@@ -81,16 +81,16 @@ void _nc_make_oldhash(
#undef _nc_scroll_oldhash_sp
void _nc_scroll_oldhash_sp(
- SCREEN *sp,
- int n,
- int top,
+ SCREEN *sp,
+ int n,
+ int top,
int bot)
{ /* void */ }
#undef _nc_scroll_oldhash
void _nc_scroll_oldhash(
- int n,
- int top,
+ int n,
+ int top,
int bot)
{ /* void */ }
@@ -98,31 +98,31 @@ void _nc_scroll_oldhash(
#undef _nc_render
cchar_t _nc_render(
- WINDOW *win,
+ WINDOW *win,
cchar_t ch)
{ return(*(cchar_t *)0); }
#undef _nc_build_wch
int _nc_build_wch(
- WINDOW *win,
+ WINDOW *win,
cchar_t *ch)
{ return(*(int *)0); }
#undef _nc_waddch_nosync
int _nc_waddch_nosync(
- WINDOW *win,
+ WINDOW *win,
const cchar_t c)
{ return(*(int *)0); }
#undef waddch
int waddch(
- WINDOW *win,
+ WINDOW *win,
const chtype ch)
{ return(*(int *)0); }
#undef wechochar
int wechochar(
- WINDOW *win,
+ WINDOW *win,
const chtype ch)
{ return(*(int *)0); }
@@ -130,15 +130,15 @@ int wechochar(
#undef waddnstr
int waddnstr(
- WINDOW *win,
- const char *astr,
+ WINDOW *win,
+ const char *astr,
int n)
{ return(*(int *)0); }
#undef waddchnstr
int waddchnstr(
- WINDOW *win,
- const chtype *astr,
+ WINDOW *win,
+ const chtype *astr,
int n)
{ return(*(int *)0); }
@@ -149,15 +149,15 @@ int _nc_wchstrlen(
#undef wadd_wchnstr
int wadd_wchnstr(
- WINDOW *win,
- const cchar_t *astr,
+ WINDOW *win,
+ const cchar_t *astr,
int n)
{ return(*(int *)0); }
#undef waddnwstr
int waddnwstr(
- WINDOW *win,
- const wchar_t *str,
+ WINDOW *win,
+ const wchar_t *str,
int n)
{ return(*(int *)0); }
@@ -176,25 +176,25 @@ int beep(void)
#undef wbkgrndset
void wbkgrndset(
- WINDOW *win,
+ WINDOW *win,
const cchar_t *ch)
{ /* void */ }
#undef wbkgdset
void wbkgdset(
- WINDOW *win,
+ WINDOW *win,
chtype ch)
{ /* void */ }
#undef wbkgrnd
int wbkgrnd(
- WINDOW *win,
+ WINDOW *win,
const cchar_t *ch)
{ return(*(int *)0); }
#undef wbkgd
int wbkgd(
- WINDOW *win,
+ WINDOW *win,
chtype ch)
{ return(*(int *)0); }
@@ -202,14 +202,14 @@ int wbkgd(
#undef wborder
int wborder(
- WINDOW *win,
- chtype ls,
- chtype rs,
- chtype ts,
- chtype bs,
- chtype tl,
- chtype tr,
- chtype bl,
+ WINDOW *win,
+ chtype ls,
+ chtype rs,
+ chtype ts,
+ chtype bs,
+ chtype tl,
+ chtype tr,
+ chtype bl,
chtype br)
{ return(*(int *)0); }
@@ -217,10 +217,10 @@ int wborder(
#undef wchgat
int wchgat(
- WINDOW *win,
- int n,
- attr_t attr,
- short pair_arg,
+ WINDOW *win,
+ int n,
+ attr_t attr,
+ short pair_arg,
const void *opts)
{ return(*(int *)0); }
@@ -235,7 +235,7 @@ int wclear(
#undef clearok
int clearok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
@@ -280,62 +280,62 @@ int start_color(void)
#undef _nc_change_pair
void _nc_change_pair(
- SCREEN *sp,
+ SCREEN *sp,
int pair)
{ /* void */ }
#undef _nc_reserve_pairs
void _nc_reserve_pairs(
- SCREEN *sp,
+ SCREEN *sp,
int want)
{ /* void */ }
#undef _nc_init_pair
int _nc_init_pair(
- SCREEN *sp,
- int pair,
- int f,
+ SCREEN *sp,
+ int pair,
+ int f,
int b)
{ return(*(int *)0); }
#undef init_pair_sp
int init_pair_sp(
- SCREEN *sp,
- short pair,
- short f,
+ SCREEN *sp,
+ short pair,
+ short f,
short b)
{ return(*(int *)0); }
#undef init_pair
int init_pair(
- short pair,
- short f,
+ short pair,
+ short f,
short b)
{ return(*(int *)0); }
#undef _nc_init_color
int _nc_init_color(
- SCREEN *sp,
- int color,
- int r,
- int g,
+ SCREEN *sp,
+ int color,
+ int r,
+ int g,
int b)
{ return(*(int *)0); }
#undef init_color_sp
int init_color_sp(
- SCREEN *sp,
- short color,
- short r,
- short g,
+ SCREEN *sp,
+ short color,
+ short r,
+ short g,
short b)
{ return(*(int *)0); }
#undef init_color
int init_color(
- short color,
- short r,
- short g,
+ short color,
+ short r,
+ short g,
short b)
{ return(*(int *)0); }
@@ -359,92 +359,92 @@ NCURSES_BOOL has_colors(void)
#undef color_content_sp
int color_content_sp(
- SCREEN *sp,
- short color,
- short *r,
- short *g,
+ SCREEN *sp,
+ short color,
+ short *r,
+ short *g,
short *b)
{ return(*(int *)0); }
#undef color_content
int color_content(
- short color,
- short *r,
- short *g,
+ short color,
+ short *r,
+ short *g,
short *b)
{ return(*(int *)0); }
#undef _nc_pair_content
int _nc_pair_content(
- SCREEN *sp,
- int pair,
- int *f,
+ SCREEN *sp,
+ int pair,
+ int *f,
int *b)
{ return(*(int *)0); }
#undef pair_content_sp
int pair_content_sp(
- SCREEN *sp,
- short pair,
- short *f,
+ SCREEN *sp,
+ short pair,
+ short *f,
short *b)
{ return(*(int *)0); }
#undef pair_content
int pair_content(
- short pair,
- short *f,
+ short pair,
+ short *f,
short *b)
{ return(*(int *)0); }
#undef _nc_do_color_sp
void _nc_do_color_sp(
- SCREEN *sp,
- int old_pair,
- int pair,
- int reverse,
+ SCREEN *sp,
+ int old_pair,
+ int pair,
+ int reverse,
NCURSES_OUTC_sp outc)
{ /* void */ }
#undef _nc_do_color
void _nc_do_color(
- int old_pair,
- int pair,
- int reverse,
+ int old_pair,
+ int pair,
+ int reverse,
NCURSES_OUTC outc)
{ /* void */ }
#undef init_extended_pair_sp
int init_extended_pair_sp(
- SCREEN *sp,
- int pair,
- int f,
+ SCREEN *sp,
+ int pair,
+ int f,
int b)
{ return(*(int *)0); }
#undef init_extended_color_sp
int init_extended_color_sp(
- SCREEN *sp,
- int color,
- int r,
- int g,
+ SCREEN *sp,
+ int color,
+ int r,
+ int g,
int b)
{ return(*(int *)0); }
#undef extended_color_content_sp
int extended_color_content_sp(
- SCREEN *sp,
- int color,
- int *r,
- int *g,
+ SCREEN *sp,
+ int color,
+ int *r,
+ int *g,
int *b)
{ return(*(int *)0); }
#undef extended_pair_content_sp
int extended_pair_content_sp(
- SCREEN *sp,
- int pair,
- int *f,
+ SCREEN *sp,
+ int pair,
+ int *f,
int *b)
{ return(*(int *)0); }
@@ -455,31 +455,31 @@ void reset_color_pairs_sp(
#undef init_extended_pair
int init_extended_pair(
- int pair,
- int f,
+ int pair,
+ int f,
int b)
{ return(*(int *)0); }
#undef init_extended_color
int init_extended_color(
- int color,
- int r,
- int g,
+ int color,
+ int r,
+ int g,
int b)
{ return(*(int *)0); }
#undef extended_color_content
int extended_color_content(
- int color,
- int *r,
- int *g,
+ int color,
+ int *r,
+ int *g,
int *b)
{ return(*(int *)0); }
#undef extended_pair_content
int extended_pair_content(
- int pair,
- int *f,
+ int pair,
+ int *f,
int *b)
{ return(*(int *)0); }
@@ -491,8 +491,8 @@ void reset_color_pairs(void)
#undef wcolor_set
int wcolor_set(
- WINDOW *win,
- short pair_arg,
+ WINDOW *win,
+ short pair_arg,
void *opts)
{ return(*(int *)0); }
@@ -568,7 +568,7 @@ int addch(
#undef addchnstr
int addchnstr(
- const chtype *a1,
+ const chtype *a1,
int z)
{ return(*(int *)0); }
@@ -579,7 +579,7 @@ int addchstr(
#undef addnstr
int addnstr(
- const char *a1,
+ const char *a1,
int z)
{ return(*(int *)0); }
@@ -590,42 +590,42 @@ int addstr(
#undef attroff
int attroff(
- int z)
+ NCURSES_ATTR_T z)
{ return(*(int *)0); }
#undef attron
int attron(
- int z)
+ NCURSES_ATTR_T z)
{ return(*(int *)0); }
#undef attrset
int attrset(
- int z)
+ NCURSES_ATTR_T z)
{ return(*(int *)0); }
#undef attr_get
int attr_get(
- attr_t *a1,
- short *a2,
+ attr_t *a1,
+ short *a2,
void *z)
{ return(*(int *)0); }
#undef attr_off
int attr_off(
- attr_t a1,
+ attr_t a1,
void *z)
{ return(*(int *)0); }
#undef attr_on
int attr_on(
- attr_t a1,
+ attr_t a1,
void *z)
{ return(*(int *)0); }
#undef attr_set
int attr_set(
- attr_t a1,
- short a2,
+ attr_t a1,
+ short a2,
void *z)
{ return(*(int *)0); }
@@ -641,28 +641,28 @@ void bkgdset(
#undef border
int border(
- chtype a1,
- chtype a2,
- chtype a3,
- chtype a4,
- chtype a5,
- chtype a6,
- chtype a7,
+ chtype a1,
+ chtype a2,
+ chtype a3,
+ chtype a4,
+ chtype a5,
+ chtype a6,
+ chtype a7,
chtype z)
{ return(*(int *)0); }
#undef box
int box(
- WINDOW *a1,
- chtype a2,
+ WINDOW *a1,
+ chtype a2,
chtype z)
{ return(*(int *)0); }
#undef chgat
int chgat(
- int a1,
- attr_t a2,
- short a3,
+ int a1,
+ attr_t a2,
+ short a3,
const void *z)
{ return(*(int *)0); }
@@ -680,7 +680,7 @@ int clrtoeol(void)
#undef color_set
int color_set(
- short a1,
+ short a1,
void *z)
{ return(*(int *)0); }
@@ -717,7 +717,7 @@ int getch(void)
#undef getnstr
int getnstr(
- char *a1,
+ char *a1,
int z)
{ return(*(int *)0); }
@@ -728,7 +728,7 @@ int getstr(
#undef hline
int hline(
- chtype a1,
+ chtype a1,
int z)
{ return(*(int *)0); }
@@ -738,7 +738,7 @@ chtype inch(void)
#undef inchnstr
int inchnstr(
- chtype *a1,
+ chtype *a1,
int z)
{ return(*(int *)0); }
@@ -749,7 +749,7 @@ int inchstr(
#undef innstr
int innstr(
- char *a1,
+ char *a1,
int z)
{ return(*(int *)0); }
@@ -769,7 +769,7 @@ int insertln(void)
#undef insnstr
int insnstr(
- const char *a1,
+ const char *a1,
int z)
{ return(*(int *)0); }
@@ -785,323 +785,323 @@ int instr(
#undef move
int move(
- int a1,
+ int a1,
int z)
{ return(*(int *)0); }
#undef mvaddch
int mvaddch(
- int a1,
- int a2,
+ int a1,
+ int a2,
const chtype z)
{ return(*(int *)0); }
#undef mvaddchnstr
int mvaddchnstr(
- int a1,
- int a2,
- const chtype *a3,
+ int a1,
+ int a2,
+ const chtype *a3,
int z)
{ return(*(int *)0); }
#undef mvaddchstr
int mvaddchstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
const chtype *z)
{ return(*(int *)0); }
#undef mvaddnstr
int mvaddnstr(
- int a1,
- int a2,
- const char *a3,
+ int a1,
+ int a2,
+ const char *a3,
int z)
{ return(*(int *)0); }
#undef mvaddstr
int mvaddstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
const char *z)
{ return(*(int *)0); }
#undef mvchgat
int mvchgat(
- int a1,
- int a2,
- int a3,
- attr_t a4,
- short a5,
+ int a1,
+ int a2,
+ int a3,
+ attr_t a4,
+ short a5,
const void *z)
{ return(*(int *)0); }
#undef mvdelch
int mvdelch(
- int a1,
+ int a1,
int z)
{ return(*(int *)0); }
#undef mvgetch
int mvgetch(
- int a1,
+ int a1,
int z)
{ return(*(int *)0); }
#undef mvgetnstr
int mvgetnstr(
- int a1,
- int a2,
- char *a3,
+ int a1,
+ int a2,
+ char *a3,
int z)
{ return(*(int *)0); }
#undef mvgetstr
int mvgetstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
char *z)
{ return(*(int *)0); }
#undef mvhline
int mvhline(
- int a1,
- int a2,
- chtype a3,
+ int a1,
+ int a2,
+ chtype a3,
int z)
{ return(*(int *)0); }
#undef mvinch
chtype mvinch(
- int a1,
+ int a1,
int z)
{ return(*(chtype *)0); }
#undef mvinchnstr
int mvinchnstr(
- int a1,
- int a2,
- chtype *a3,
+ int a1,
+ int a2,
+ chtype *a3,
int z)
{ return(*(int *)0); }
#undef mvinchstr
int mvinchstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
chtype *z)
{ return(*(int *)0); }
#undef mvinnstr
int mvinnstr(
- int a1,
- int a2,
- char *a3,
+ int a1,
+ int a2,
+ char *a3,
int z)
{ return(*(int *)0); }
#undef mvinsch
int mvinsch(
- int a1,
- int a2,
+ int a1,
+ int a2,
chtype z)
{ return(*(int *)0); }
#undef mvinsnstr
int mvinsnstr(
- int a1,
- int a2,
- const char *a3,
+ int a1,
+ int a2,
+ const char *a3,
int z)
{ return(*(int *)0); }
#undef mvinsstr
int mvinsstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
const char *z)
{ return(*(int *)0); }
#undef mvinstr
int mvinstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
char *z)
{ return(*(int *)0); }
#undef mvvline
int mvvline(
- int a1,
- int a2,
- chtype a3,
+ int a1,
+ int a2,
+ chtype a3,
int z)
{ return(*(int *)0); }
#undef mvwaddch
int mvwaddch(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
const chtype z)
{ return(*(int *)0); }
#undef mvwaddchnstr
int mvwaddchnstr(
- WINDOW *a1,
- int a2,
- int a3,
- const chtype *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ const chtype *a4,
int z)
{ return(*(int *)0); }
#undef mvwaddchstr
int mvwaddchstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
const chtype *z)
{ return(*(int *)0); }
#undef mvwaddnstr
int mvwaddnstr(
- WINDOW *a1,
- int a2,
- int a3,
- const char *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ const char *a4,
int z)
{ return(*(int *)0); }
#undef mvwaddstr
int mvwaddstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
const char *z)
{ return(*(int *)0); }
#undef mvwchgat
int mvwchgat(
- WINDOW *a1,
- int a2,
- int a3,
- int a4,
- attr_t a5,
- short a6,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ int a4,
+ attr_t a5,
+ short a6,
const void *z)
{ return(*(int *)0); }
#undef mvwdelch
int mvwdelch(
- WINDOW *a1,
- int a2,
+ WINDOW *a1,
+ int a2,
int z)
{ return(*(int *)0); }
#undef mvwgetch
int mvwgetch(
- WINDOW *a1,
- int a2,
+ WINDOW *a1,
+ int a2,
int z)
{ return(*(int *)0); }
#undef mvwgetnstr
int mvwgetnstr(
- WINDOW *a1,
- int a2,
- int a3,
- char *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ char *a4,
int z)
{ return(*(int *)0); }
#undef mvwgetstr
int mvwgetstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
char *z)
{ return(*(int *)0); }
#undef mvwhline
int mvwhline(
- WINDOW *a1,
- int a2,
- int a3,
- chtype a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ chtype a4,
int z)
{ return(*(int *)0); }
#undef mvwinch
chtype mvwinch(
- WINDOW *a1,
- int a2,
+ WINDOW *a1,
+ int a2,
int z)
{ return(*(chtype *)0); }
#undef mvwinchnstr
int mvwinchnstr(
- WINDOW *a1,
- int a2,
- int a3,
- chtype *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ chtype *a4,
int z)
{ return(*(int *)0); }
#undef mvwinchstr
int mvwinchstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
chtype *z)
{ return(*(int *)0); }
#undef mvwinnstr
int mvwinnstr(
- WINDOW *a1,
- int a2,
- int a3,
- char *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ char *a4,
int z)
{ return(*(int *)0); }
#undef mvwinsch
int mvwinsch(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
chtype z)
{ return(*(int *)0); }
#undef mvwinsnstr
int mvwinsnstr(
- WINDOW *a1,
- int a2,
- int a3,
- const char *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ const char *a4,
int z)
{ return(*(int *)0); }
#undef mvwinsstr
int mvwinsstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
const char *z)
{ return(*(int *)0); }
#undef mvwinstr
int mvwinstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
char *z)
{ return(*(int *)0); }
#undef mvwvline
int mvwvline(
- WINDOW *a1,
- int a2,
- int a3,
- chtype a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ chtype a4,
int z)
{ return(*(int *)0); }
@@ -1131,19 +1131,19 @@ int scroll(
#undef setscrreg
int setscrreg(
- int a1,
+ int a1,
int z)
{ return(*(int *)0); }
#undef slk_attr_off
int slk_attr_off(
- const attr_t a1,
+ const attr_t a1,
void *z)
{ return(*(int *)0); }
#undef slk_attr_on
int slk_attr_on(
- attr_t a1,
+ attr_t a1,
void *z)
{ return(*(int *)0); }
@@ -1162,8 +1162,8 @@ void timeout(
#undef touchline
int touchline(
- WINDOW *a1,
- int a2,
+ WINDOW *a1,
+ int a2,
int z)
{ return(*(int *)0); }
@@ -1179,53 +1179,53 @@ int untouchwin(
#undef vline
int vline(
- chtype a1,
+ chtype a1,
int z)
{ return(*(int *)0); }
#undef waddchstr
int waddchstr(
- WINDOW *a1,
+ WINDOW *a1,
const chtype *z)
{ return(*(int *)0); }
#undef waddstr
int waddstr(
- WINDOW *a1,
+ WINDOW *a1,
const char *z)
{ return(*(int *)0); }
#undef wattron
int wattron(
- WINDOW *a1,
+ WINDOW *a1,
int z)
{ return(*(int *)0); }
#undef wattroff
int wattroff(
- WINDOW *a1,
+ WINDOW *a1,
int z)
{ return(*(int *)0); }
#undef wattrset
int wattrset(
- WINDOW *a1,
+ WINDOW *a1,
int z)
{ return(*(int *)0); }
#undef wattr_get
int wattr_get(
- WINDOW *a1,
- attr_t *a2,
- short *a3,
+ WINDOW *a1,
+ attr_t *a2,
+ short *a3,
void *z)
{ return(*(int *)0); }
#undef wattr_set
int wattr_set(
- WINDOW *a1,
- attr_t a2,
- short a3,
+ WINDOW *a1,
+ attr_t a2,
+ short a3,
void *z)
{ return(*(int *)0); }
@@ -1236,13 +1236,13 @@ int wdeleteln(
#undef wgetstr
int wgetstr(
- WINDOW *a1,
+ WINDOW *a1,
char *z)
{ return(*(int *)0); }
#undef winchstr
int winchstr(
- WINDOW *a1,
+ WINDOW *a1,
chtype *z)
{ return(*(int *)0); }
@@ -1253,13 +1253,13 @@ int winsertln(
#undef winsstr
int winsstr(
- WINDOW *a1,
+ WINDOW *a1,
const char *z)
{ return(*(int *)0); }
#undef winstr
int winstr(
- WINDOW *a1,
+ WINDOW *a1,
char *z)
{ return(*(int *)0); }
@@ -1390,8 +1390,8 @@ int wgetdelay(
#undef wgetscrreg
int wgetscrreg(
- const WINDOW *a1,
- int *a2,
+ const WINDOW *a1,
+ int *a2,
int *z)
{ return(*(int *)0); }
@@ -1402,7 +1402,7 @@ int add_wch(
#undef add_wchnstr
int add_wchnstr(
- const cchar_t *a1,
+ const cchar_t *a1,
int z)
{ return(*(int *)0); }
@@ -1413,7 +1413,7 @@ int add_wchstr(
#undef addnwstr
int addnwstr(
- const wchar_t *a1,
+ const wchar_t *a1,
int z)
{ return(*(int *)0); }
@@ -1434,20 +1434,20 @@ void bkgrndset(
#undef border_set
int border_set(
- const cchar_t *a1,
- const cchar_t *a2,
- const cchar_t *a3,
- const cchar_t *a4,
- const cchar_t *a5,
- const cchar_t *a6,
- const cchar_t *a7,
+ const cchar_t *a1,
+ const cchar_t *a2,
+ const cchar_t *a3,
+ const cchar_t *a4,
+ const cchar_t *a5,
+ const cchar_t *a6,
+ const cchar_t *a7,
const cchar_t *z)
{ return(*(int *)0); }
#undef box_set
int box_set(
- WINDOW *a1,
- const cchar_t *a2,
+ WINDOW *a1,
+ const cchar_t *a2,
const cchar_t *z)
{ return(*(int *)0); }
@@ -1473,13 +1473,13 @@ int getbkgrnd(
#undef getn_wstr
int getn_wstr(
- wint_t *a1,
+ wint_t *a1,
int z)
{ return(*(int *)0); }
#undef hline_set
int hline_set(
- const cchar_t *a1,
+ const cchar_t *a1,
int z)
{ return(*(int *)0); }
@@ -1490,7 +1490,7 @@ int in_wch(
#undef in_wchnstr
int in_wchnstr(
- cchar_t *a1,
+ cchar_t *a1,
int z)
{ return(*(int *)0); }
@@ -1501,13 +1501,13 @@ int in_wchstr(
#undef innwstr
int innwstr(
- wchar_t *a1,
+ wchar_t *a1,
int z)
{ return(*(int *)0); }
#undef ins_nwstr
int ins_nwstr(
- const wchar_t *a1,
+ const wchar_t *a1,
int z)
{ return(*(int *)0); }
@@ -1528,336 +1528,336 @@ int inwstr(
#undef mvadd_wch
int mvadd_wch(
- int a1,
- int a2,
+ int a1,
+ int a2,
const cchar_t *z)
{ return(*(int *)0); }
#undef mvadd_wchnstr
int mvadd_wchnstr(
- int a1,
- int a2,
- const cchar_t *a3,
+ int a1,
+ int a2,
+ const cchar_t *a3,
int z)
{ return(*(int *)0); }
#undef mvadd_wchstr
int mvadd_wchstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
const cchar_t *z)
{ return(*(int *)0); }
#undef mvaddnwstr
int mvaddnwstr(
- int a1,
- int a2,
- const wchar_t *a3,
+ int a1,
+ int a2,
+ const wchar_t *a3,
int z)
{ return(*(int *)0); }
#undef mvaddwstr
int mvaddwstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
const wchar_t *z)
{ return(*(int *)0); }
#undef mvget_wch
int mvget_wch(
- int a1,
- int a2,
+ int a1,
+ int a2,
wint_t *z)
{ return(*(int *)0); }
#undef mvget_wstr
int mvget_wstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
wint_t *z)
{ return(*(int *)0); }
#undef mvgetn_wstr
int mvgetn_wstr(
- int a1,
- int a2,
- wint_t *a3,
+ int a1,
+ int a2,
+ wint_t *a3,
int z)
{ return(*(int *)0); }
#undef mvhline_set
int mvhline_set(
- int a1,
- int a2,
- const cchar_t *a3,
+ int a1,
+ int a2,
+ const cchar_t *a3,
int z)
{ return(*(int *)0); }
#undef mvin_wch
int mvin_wch(
- int a1,
- int a2,
+ int a1,
+ int a2,
cchar_t *z)
{ return(*(int *)0); }
#undef mvin_wchnstr
int mvin_wchnstr(
- int a1,
- int a2,
- cchar_t *a3,
+ int a1,
+ int a2,
+ cchar_t *a3,
int z)
{ return(*(int *)0); }
#undef mvin_wchstr
int mvin_wchstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
cchar_t *z)
{ return(*(int *)0); }
#undef mvinnwstr
int mvinnwstr(
- int a1,
- int a2,
- wchar_t *a3,
+ int a1,
+ int a2,
+ wchar_t *a3,
int z)
{ return(*(int *)0); }
#undef mvins_nwstr
int mvins_nwstr(
- int a1,
- int a2,
- const wchar_t *a3,
+ int a1,
+ int a2,
+ const wchar_t *a3,
int z)
{ return(*(int *)0); }
#undef mvins_wch
int mvins_wch(
- int a1,
- int a2,
+ int a1,
+ int a2,
const cchar_t *z)
{ return(*(int *)0); }
#undef mvins_wstr
int mvins_wstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
const wchar_t *z)
{ return(*(int *)0); }
#undef mvinwstr
int mvinwstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
wchar_t *z)
{ return(*(int *)0); }
#undef mvvline_set
int mvvline_set(
- int a1,
- int a2,
- const cchar_t *a3,
+ int a1,
+ int a2,
+ const cchar_t *a3,
int z)
{ return(*(int *)0); }
#undef mvwadd_wch
int mvwadd_wch(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
const cchar_t *z)
{ return(*(int *)0); }
#undef mvwadd_wchnstr
int mvwadd_wchnstr(
- WINDOW *a1,
- int a2,
- int a3,
- const cchar_t *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ const cchar_t *a4,
int z)
{ return(*(int *)0); }
#undef mvwadd_wchstr
int mvwadd_wchstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
const cchar_t *z)
{ return(*(int *)0); }
#undef mvwaddnwstr
int mvwaddnwstr(
- WINDOW *a1,
- int a2,
- int a3,
- const wchar_t *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ const wchar_t *a4,
int z)
{ return(*(int *)0); }
#undef mvwaddwstr
int mvwaddwstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
const wchar_t *z)
{ return(*(int *)0); }
#undef mvwget_wch
int mvwget_wch(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
wint_t *z)
{ return(*(int *)0); }
#undef mvwget_wstr
int mvwget_wstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
wint_t *z)
{ return(*(int *)0); }
#undef mvwgetn_wstr
int mvwgetn_wstr(
- WINDOW *a1,
- int a2,
- int a3,
- wint_t *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ wint_t *a4,
int z)
{ return(*(int *)0); }
#undef mvwhline_set
int mvwhline_set(
- WINDOW *a1,
- int a2,
- int a3,
- const cchar_t *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ const cchar_t *a4,
int z)
{ return(*(int *)0); }
#undef mvwin_wch
int mvwin_wch(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
cchar_t *z)
{ return(*(int *)0); }
#undef mvwin_wchnstr
int mvwin_wchnstr(
- WINDOW *a1,
- int a2,
- int a3,
- cchar_t *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ cchar_t *a4,
int z)
{ return(*(int *)0); }
#undef mvwin_wchstr
int mvwin_wchstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
cchar_t *z)
{ return(*(int *)0); }
#undef mvwinnwstr
int mvwinnwstr(
- WINDOW *a1,
- int a2,
- int a3,
- wchar_t *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ wchar_t *a4,
int z)
{ return(*(int *)0); }
#undef mvwins_nwstr
int mvwins_nwstr(
- WINDOW *a1,
- int a2,
- int a3,
- const wchar_t *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ const wchar_t *a4,
int z)
{ return(*(int *)0); }
#undef mvwins_wch
int mvwins_wch(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
const cchar_t *z)
{ return(*(int *)0); }
#undef mvwins_wstr
int mvwins_wstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
const wchar_t *z)
{ return(*(int *)0); }
#undef mvwinwstr
int mvwinwstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
wchar_t *z)
{ return(*(int *)0); }
#undef mvwvline_set
int mvwvline_set(
- WINDOW *a1,
- int a2,
- int a3,
- const cchar_t *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ const cchar_t *a4,
int z)
{ return(*(int *)0); }
#undef vline_set
int vline_set(
- const cchar_t *a1,
+ const cchar_t *a1,
int z)
{ return(*(int *)0); }
#undef wadd_wchstr
int wadd_wchstr(
- WINDOW *a1,
+ WINDOW *a1,
const cchar_t *z)
{ return(*(int *)0); }
#undef waddwstr
int waddwstr(
- WINDOW *a1,
+ WINDOW *a1,
const wchar_t *z)
{ return(*(int *)0); }
#undef wget_wstr
int wget_wstr(
- WINDOW *a1,
+ WINDOW *a1,
wint_t *z)
{ return(*(int *)0); }
#undef wgetbkgrnd
int wgetbkgrnd(
- WINDOW *a1,
+ WINDOW *a1,
cchar_t *z)
{ return(*(int *)0); }
#undef win_wchstr
int win_wchstr(
- WINDOW *a1,
+ WINDOW *a1,
cchar_t *z)
{ return(*(int *)0); }
#undef wins_wstr
int wins_wstr(
- WINDOW *a1,
+ WINDOW *a1,
const wchar_t *z)
{ return(*(int *)0); }
#undef mouse_trafo
NCURSES_BOOL mouse_trafo(
- int *a1,
- int *a2,
+ int *a1,
+ int *a2,
NCURSES_BOOL z)
{ return(*(NCURSES_BOOL *)0); }
@@ -1868,7 +1868,7 @@ int ESCDELAY;
#undef set_escdelay_sp
int set_escdelay_sp(
- SCREEN *sp,
+ SCREEN *sp,
int value)
{ return(*(int *)0); }
@@ -1888,8 +1888,8 @@ int get_escdelay(void)
#undef _nc_wgetch
int _nc_wgetch(
- WINDOW *win,
- int *result,
+ WINDOW *win,
+ int *result,
int use_meta)
{ return(*(int *)0); }
@@ -1902,8 +1902,8 @@ int wgetch(
#undef wgetnstr
int wgetnstr(
- WINDOW *win,
- char *str,
+ WINDOW *win,
+ char *str,
int maxlen)
{ return(*(int *)0); }
@@ -1911,8 +1911,8 @@ int wgetnstr(
#undef whline
int whline(
- WINDOW *win,
- chtype ch,
+ WINDOW *win,
+ chtype ch,
int n)
{ return(*(int *)0); }
@@ -1920,7 +1920,7 @@ int whline(
#undef immedok
void immedok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ /* void */ }
@@ -1928,8 +1928,8 @@ void immedok(
#undef winchnstr
int winchnstr(
- WINDOW *win,
- chtype *str,
+ WINDOW *win,
+ chtype *str,
int n)
{ return(*(int *)0); }
@@ -1943,14 +1943,14 @@ WINDOW *initscr(void)
#undef _nc_insert_ch
int _nc_insert_ch(
- SCREEN *sp,
- WINDOW *win,
+ SCREEN *sp,
+ WINDOW *win,
chtype ch)
{ return(*(int *)0); }
#undef winsch
int winsch(
- WINDOW *win,
+ WINDOW *win,
chtype c)
{ return(*(int *)0); }
@@ -1958,7 +1958,7 @@ int winsch(
#undef winsdelln
int winsdelln(
- WINDOW *win,
+ WINDOW *win,
int n)
{ return(*(int *)0); }
@@ -1966,8 +1966,8 @@ int winsdelln(
#undef winsnstr
int winsnstr(
- WINDOW *win,
- const char *s,
+ WINDOW *win,
+ const char *s,
int n)
{ return(*(int *)0); }
@@ -1975,8 +1975,8 @@ int winsnstr(
#undef winnstr
int winnstr(
- WINDOW *win,
- char *str,
+ WINDOW *win,
+ char *str,
int n)
{ return(*(int *)0); }
@@ -1995,7 +1995,7 @@ NCURSES_BOOL isendwin(void)
#undef leaveok
int leaveok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
@@ -2003,7 +2003,7 @@ int leaveok(
#undef getmouse_sp
int getmouse_sp(
- SCREEN *sp,
+ SCREEN *sp,
MEVENT *aevent)
{ return(*(int *)0); }
@@ -2014,7 +2014,7 @@ int getmouse(
#undef ungetmouse_sp
int ungetmouse_sp(
- SCREEN *sp,
+ SCREEN *sp,
MEVENT *aevent)
{ return(*(int *)0); }
@@ -2025,27 +2025,27 @@ int ungetmouse(
#undef mousemask_sp
mmask_t mousemask_sp(
- SCREEN *sp,
- mmask_t newmask,
+ SCREEN *sp,
+ mmask_t newmask,
mmask_t *oldmask)
{ return(*(mmask_t *)0); }
#undef mousemask
mmask_t mousemask(
- mmask_t newmask,
+ mmask_t newmask,
mmask_t *oldmask)
{ return(*(mmask_t *)0); }
#undef wenclose
NCURSES_BOOL wenclose(
- const WINDOW *win,
- int y,
+ const WINDOW *win,
+ int y,
int x)
{ return(*(NCURSES_BOOL *)0); }
#undef mouseinterval_sp
int mouseinterval_sp(
- SCREEN *sp,
+ SCREEN *sp,
int maxclick)
{ return(*(int *)0); }
@@ -2070,9 +2070,9 @@ NCURSES_BOOL has_mouse(void)
#undef wmouse_trafo
NCURSES_BOOL wmouse_trafo(
- const WINDOW *win,
- int *pY,
- int *pX,
+ const WINDOW *win,
+ int *pY,
+ int *pX,
NCURSES_BOOL to_screen)
{ return(*(NCURSES_BOOL *)0); }
@@ -2080,8 +2080,8 @@ NCURSES_BOOL wmouse_trafo(
#undef wmove
int wmove(
- WINDOW *win,
- int y,
+ WINDOW *win,
+ int y,
int x)
{ return(*(int *)0); }
@@ -2089,14 +2089,14 @@ int wmove(
#undef _nc_msec_cost_sp
int _nc_msec_cost_sp(
- SCREEN *sp,
- const char *const cap,
+ SCREEN *sp,
+ const char *const cap,
int affcnt)
{ return(*(int *)0); }
#undef _nc_msec_cost
int _nc_msec_cost(
- const char *const cap,
+ const char *const cap,
int affcnt)
{ return(*(int *)0); }
@@ -2129,35 +2129,35 @@ void _nc_mvcur_wrap(void)
#undef _nc_mvcur_sp
int _nc_mvcur_sp(
- SCREEN *sp,
- int yold,
- int xold,
- int ynew,
+ SCREEN *sp,
+ int yold,
+ int xold,
+ int ynew,
int xnew)
{ return(*(int *)0); }
#undef _nc_mvcur
int _nc_mvcur(
- int yold,
- int xold,
- int ynew,
+ int yold,
+ int xold,
+ int ynew,
int xnew)
{ return(*(int *)0); }
#undef mvcur_sp
int mvcur_sp(
- SCREEN *sp,
- int yold,
- int xold,
- int ynew,
+ SCREEN *sp,
+ int yold,
+ int xold,
+ int ynew,
int xnew)
{ return(*(int *)0); }
#undef mvcur
int mvcur(
- int yold,
- int xold,
- int ynew,
+ int yold,
+ int xold,
+ int ynew,
int xnew)
{ return(*(int *)0); }
@@ -2168,8 +2168,8 @@ int _nc_optimize_enable;
#undef mvwin
int mvwin(
- WINDOW *win,
- int by,
+ WINDOW *win,
+ int by,
int bx)
{ return(*(int *)0); }
@@ -2195,16 +2195,16 @@ void nofilter(void)
#undef newterm_sp
SCREEN *newterm_sp(
- SCREEN *sp,
- const char *name,
- FILE *ofp,
+ SCREEN *sp,
+ const char *name,
+ FILE *ofp,
FILE *ifp)
{ return(*(SCREEN **)0); }
#undef newterm
SCREEN *newterm(
- const char *name,
- FILE *ofp,
+ const char *name,
+ FILE *ofp,
FILE *ifp)
{ return(*(SCREEN **)0); }
@@ -2217,46 +2217,46 @@ int _nc_freewin(
#undef newwin_sp
WINDOW *newwin_sp(
- SCREEN *sp,
- int num_lines,
- int num_columns,
- int begy,
+ SCREEN *sp,
+ int num_lines,
+ int num_columns,
+ int begy,
int begx)
{ return(*(WINDOW **)0); }
#undef newwin
WINDOW *newwin(
- int num_lines,
- int num_columns,
- int begy,
+ int num_lines,
+ int num_columns,
+ int begy,
int begx)
{ return(*(WINDOW **)0); }
#undef derwin
WINDOW *derwin(
- WINDOW *orig,
- int num_lines,
- int num_columns,
- int begy,
+ WINDOW *orig,
+ int num_lines,
+ int num_columns,
+ int begy,
int begx)
{ return(*(WINDOW **)0); }
#undef subwin
WINDOW *subwin(
- WINDOW *w,
- int l,
- int c,
- int y,
+ WINDOW *w,
+ int l,
+ int c,
+ int y,
int x)
{ return(*(WINDOW **)0); }
#undef _nc_makenew_sp
WINDOW *_nc_makenew_sp(
- SCREEN *sp,
- int num_lines,
- int num_columns,
- int begy,
- int begx,
+ SCREEN *sp,
+ int num_lines,
+ int num_columns,
+ int begy,
+ int begx,
int flags)
{ return(*(WINDOW **)0); }
@@ -2299,26 +2299,26 @@ int nonl(void)
#undef overlay
int overlay(
- const WINDOW *win1,
+ const WINDOW *win1,
WINDOW *win2)
{ return(*(int *)0); }
#undef overwrite
int overwrite(
- const WINDOW *win1,
+ const WINDOW *win1,
WINDOW *win2)
{ return(*(int *)0); }
#undef copywin
int copywin(
- const WINDOW *src,
- WINDOW *dst,
- int sminrow,
- int smincol,
- int dminrow,
- int dmincol,
- int dmaxrow,
- int dmaxcol,
+ const WINDOW *src,
+ WINDOW *dst,
+ int sminrow,
+ int smincol,
+ int dminrow,
+ int dmincol,
+ int dmaxrow,
+ int dmaxcol,
int over)
{ return(*(int *)0); }
@@ -2326,51 +2326,51 @@ int copywin(
#undef newpad_sp
WINDOW *newpad_sp(
- SCREEN *sp,
- int l,
+ SCREEN *sp,
+ int l,
int c)
{ return(*(WINDOW **)0); }
#undef newpad
WINDOW *newpad(
- int l,
+ int l,
int c)
{ return(*(WINDOW **)0); }
#undef subpad
WINDOW *subpad(
- WINDOW *orig,
- int l,
- int c,
- int begy,
+ WINDOW *orig,
+ int l,
+ int c,
+ int begy,
int begx)
{ return(*(WINDOW **)0); }
#undef prefresh
int prefresh(
- WINDOW *win,
- int pminrow,
- int pmincol,
- int sminrow,
- int smincol,
- int smaxrow,
+ WINDOW *win,
+ int pminrow,
+ int pmincol,
+ int sminrow,
+ int smincol,
+ int smaxrow,
int smaxcol)
{ return(*(int *)0); }
#undef pnoutrefresh
int pnoutrefresh(
- WINDOW *win,
- int pminrow,
- int pmincol,
- int sminrow,
- int smincol,
- int smaxrow,
+ WINDOW *win,
+ int pminrow,
+ int pmincol,
+ int sminrow,
+ int smincol,
+ int smaxrow,
int smaxcol)
{ return(*(int *)0); }
#undef pechochar
int pechochar(
- WINDOW *pad,
+ WINDOW *pad,
const chtype ch)
{ return(*(int *)0); }
@@ -2378,45 +2378,45 @@ int pechochar(
#undef printw
int printw(
- const char *fmt,
+ const char *fmt,
...)
{ return(*(int *)0); }
#undef wprintw
int wprintw(
- WINDOW *win,
- const char *fmt,
+ WINDOW *win,
+ const char *fmt,
...)
{ return(*(int *)0); }
#undef mvprintw
int mvprintw(
- int y,
- int x,
- const char *fmt,
+ int y,
+ int x,
+ const char *fmt,
...)
{ return(*(int *)0); }
#undef mvwprintw
int mvwprintw(
- WINDOW *win,
- int y,
- int x,
- const char *fmt,
+ WINDOW *win,
+ int y,
+ int x,
+ const char *fmt,
...)
{ return(*(int *)0); }
#undef vwprintw
int vwprintw(
- WINDOW *win,
- const char *fmt,
+ WINDOW *win,
+ const char *fmt,
va_list argp)
{ return(*(int *)0); }
#undef vw_printw
int vw_printw(
- WINDOW *win,
- const char *fmt,
+ WINDOW *win,
+ const char *fmt,
va_list argp)
{ return(*(int *)0); }
@@ -2424,8 +2424,8 @@ int vw_printw(
#undef wredrawln
int wredrawln(
- WINDOW *win,
- int beg,
+ WINDOW *win,
+ int beg,
int num)
{ return(*(int *)0); }
@@ -2445,16 +2445,16 @@ int wnoutrefresh(
#undef restartterm_sp
int restartterm_sp(
- SCREEN *sp,
- const char *termp,
- int filenum,
+ SCREEN *sp,
+ const char *termp,
+ int filenum,
int *errret)
{ return(*(int *)0); }
#undef restartterm
int restartterm(
- const char *termp,
- int filenum,
+ const char *termp,
+ int filenum,
int *errret)
{ return(*(int *)0); }
@@ -2462,45 +2462,45 @@ int restartterm(
#undef vwscanw
int vwscanw(
- WINDOW *win,
- const char *fmt,
+ WINDOW *win,
+ const char *fmt,
va_list argp)
{ return(*(int *)0); }
#undef vw_scanw
int vw_scanw(
- WINDOW *win,
- const char *fmt,
+ WINDOW *win,
+ const char *fmt,
va_list argp)
{ return(*(int *)0); }
#undef scanw
int scanw(
- const char *fmt,
+ const char *fmt,
...)
{ return(*(int *)0); }
#undef wscanw
int wscanw(
- WINDOW *win,
- const char *fmt,
+ WINDOW *win,
+ const char *fmt,
...)
{ return(*(int *)0); }
#undef mvscanw
int mvscanw(
- int y,
- int x,
- const char *fmt,
+ int y,
+ int x,
+ const char *fmt,
...)
{ return(*(int *)0); }
#undef mvwscanw
int mvwscanw(
- WINDOW *win,
- int y,
- int x,
- const char *fmt,
+ WINDOW *win,
+ int y,
+ int x,
+ const char *fmt,
...)
{ return(*(int *)0); }
@@ -2508,7 +2508,7 @@ int mvwscanw(
#undef getwin_sp
WINDOW *getwin_sp(
- SCREEN *sp,
+ SCREEN *sp,
FILE *filep)
{ return(*(WINDOW **)0); }
@@ -2519,13 +2519,13 @@ WINDOW *getwin(
#undef putwin
int putwin(
- WINDOW *win,
+ WINDOW *win,
FILE *filep)
{ return(*(int *)0); }
#undef scr_restore_sp
int scr_restore_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *file)
{ return(*(int *)0); }
@@ -2541,7 +2541,7 @@ int scr_dump(
#undef scr_init_sp
int scr_init_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *file)
{ return(*(int *)0); }
@@ -2552,7 +2552,7 @@ int scr_init(
#undef scr_set_sp
int scr_set_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *file)
{ return(*(int *)0); }
@@ -2565,16 +2565,16 @@ int scr_set(
#undef _nc_scroll_window
void _nc_scroll_window(
- WINDOW *win,
- int const n,
- int const top,
- int const bottom,
+ WINDOW *win,
+ int const n,
+ int const top,
+ int const bottom,
cchar_t blank)
{ /* void */ }
#undef wscrl
int wscrl(
- WINDOW *win,
+ WINDOW *win,
int n)
{ return(*(int *)0); }
@@ -2582,7 +2582,7 @@ int wscrl(
#undef scrollok
int scrollok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
@@ -2590,8 +2590,8 @@ int scrollok(
#undef wsetscrreg
int wsetscrreg(
- WINDOW *win,
- int top,
+ WINDOW *win,
+ int top,
int bottom)
{ return(*(int *)0); }
@@ -2609,54 +2609,54 @@ void delscreen(
#undef _nc_setupscreen_sp
int _nc_setupscreen_sp(
- SCREEN **spp,
- int slines,
- int scolumns,
- FILE *output,
- int filtered,
+ SCREEN **spp,
+ int slines,
+ int scolumns,
+ FILE *output,
+ int filtered,
int slk_format)
{ return(*(int *)0); }
#undef _nc_setupscreen
int _nc_setupscreen(
- int slines,
- int scolumns,
- FILE *output,
- int filtered,
+ int slines,
+ int scolumns,
+ FILE *output,
+ int filtered,
int slk_format)
{ return(*(int *)0); }
#undef _nc_ripoffline_sp
int _nc_ripoffline_sp(
- SCREEN *sp,
- int line,
+ SCREEN *sp,
+ int line,
int (*init)(
- WINDOW *p1,
+ WINDOW *p1,
int p2))
{ return(*(int *)0); }
#undef _nc_ripoffline
int _nc_ripoffline(
- int line,
+ int line,
int (*init)(
- WINDOW *p1,
+ WINDOW *p1,
int p2))
{ return(*(int *)0); }
#undef ripoffline_sp
int ripoffline_sp(
- SCREEN *sp,
- int line,
+ SCREEN *sp,
+ int line,
int (*init)(
- WINDOW *p1,
+ WINDOW *p1,
int p2))
{ return(*(int *)0); }
#undef ripoffline
int ripoffline(
- int line,
+ int line,
int (*init)(
- WINDOW *p1,
+ WINDOW *p1,
int p2))
{ return(*(int *)0); }
@@ -2664,13 +2664,13 @@ int ripoffline(
#undef _nc_format_slks
int _nc_format_slks(
- SCREEN *sp,
+ SCREEN *sp,
int cols)
{ return(*(int *)0); }
#undef _nc_slk_initialize
int _nc_slk_initialize(
- WINDOW *stwin,
+ WINDOW *stwin,
int cols)
{ return(*(int *)0); }
@@ -2687,16 +2687,16 @@ int slk_restore(void)
#undef slk_attr_set_sp
int slk_attr_set_sp(
- SCREEN *sp,
- const attr_t attr,
- short pair_arg,
+ SCREEN *sp,
+ const attr_t attr,
+ short pair_arg,
void *opts)
{ return(*(int *)0); }
#undef slk_attr_set
int slk_attr_set(
- const attr_t attr,
- short pair_arg,
+ const attr_t attr,
+ short pair_arg,
void *opts)
{ return(*(int *)0); }
@@ -2704,7 +2704,7 @@ int slk_attr_set(
#undef slk_attroff_sp
int slk_attroff_sp(
- SCREEN *sp,
+ SCREEN *sp,
const chtype attr)
{ return(*(int *)0); }
@@ -2717,7 +2717,7 @@ int slk_attroff(
#undef slk_attron_sp
int slk_attron_sp(
- SCREEN *sp,
+ SCREEN *sp,
const chtype attr)
{ return(*(int *)0); }
@@ -2730,7 +2730,7 @@ int slk_attron(
#undef slk_attrset_sp
int slk_attrset_sp(
- SCREEN *sp,
+ SCREEN *sp,
const chtype attr)
{ return(*(int *)0); }
@@ -2765,7 +2765,7 @@ int slk_clear(void)
#undef slk_color_sp
int slk_color_sp(
- SCREEN *sp,
+ SCREEN *sp,
short pair_arg)
{ return(*(int *)0); }
@@ -2776,7 +2776,7 @@ int slk_color(
#undef extended_slk_color_sp
int extended_slk_color_sp(
- SCREEN *sp,
+ SCREEN *sp,
int pair_arg)
{ return(*(int *)0); }
@@ -2789,7 +2789,7 @@ int extended_slk_color(
#undef slk_init_sp
int slk_init_sp(
- SCREEN *sp,
+ SCREEN *sp,
int format)
{ return(*(int *)0); }
@@ -2802,7 +2802,7 @@ int slk_init(
#undef slk_label_sp
char *slk_label_sp(
- SCREEN *sp,
+ SCREEN *sp,
int n)
{ return(*(char **)0); }
@@ -2835,16 +2835,16 @@ int slk_refresh(void)
#undef slk_set_sp
int slk_set_sp(
- SCREEN *sp,
- int i,
- const char *astr,
+ SCREEN *sp,
+ int i,
+ const char *astr,
int format)
{ return(*(int *)0); }
#undef slk_set
int slk_set(
- int i,
- const char *astr,
+ int i,
+ const char *astr,
int format)
{ return(*(int *)0); }
@@ -2863,7 +2863,7 @@ int slk_touch(void)
#undef is_linetouched
NCURSES_BOOL is_linetouched(
- WINDOW *win,
+ WINDOW *win,
int line)
{ return(*(NCURSES_BOOL *)0); }
@@ -2874,9 +2874,9 @@ NCURSES_BOOL is_wintouched(
#undef wtouchln
int wtouchln(
- WINDOW *win,
- int y,
- int n,
+ WINDOW *win,
+ int y,
+ int n,
int changed)
{ return(*(int *)0); }
@@ -2884,7 +2884,7 @@ int wtouchln(
#undef _tracedump
void _tracedump(
- const char *name,
+ const char *name,
WINDOW *win)
{ /* void */ }
@@ -2892,19 +2892,19 @@ void _tracedump(
#undef _nc_trace_mmask_t
char *_nc_trace_mmask_t(
- SCREEN *sp,
+ SCREEN *sp,
mmask_t code)
{ return(*(char **)0); }
#undef _nc_tracemouse
char *_nc_tracemouse(
- SCREEN *sp,
+ SCREEN *sp,
MEVENT const *ep)
{ return(*(char **)0); }
#undef _nc_retrace_mmask_t
mmask_t _nc_retrace_mmask_t(
- SCREEN *sp,
+ SCREEN *sp,
mmask_t code)
{ return(*(mmask_t *)0); }
@@ -2929,7 +2929,7 @@ void _nc_fifo_dump(
#undef ungetch_sp
int ungetch_sp(
- SCREEN *sp,
+ SCREEN *sp,
int ch)
{ return(*(int *)0); }
@@ -2942,20 +2942,20 @@ int ungetch(
#undef vidputs_sp
int vidputs_sp(
- SCREEN *sp,
- chtype newmode,
+ SCREEN *sp,
+ chtype newmode,
NCURSES_OUTC_sp outc)
{ return(*(int *)0); }
#undef vidputs
int vidputs(
- chtype newmode,
+ chtype newmode,
NCURSES_OUTC outc)
{ return(*(int *)0); }
#undef vidattr_sp
int vidattr_sp(
- SCREEN *sp,
+ SCREEN *sp,
chtype newmode)
{ return(*(int *)0); }
@@ -2977,8 +2977,8 @@ chtype termattrs(void)
#undef wvline
int wvline(
- WINDOW *win,
- chtype ch,
+ WINDOW *win,
+ chtype ch,
int n)
{ return(*(int *)0); }
@@ -2986,8 +2986,8 @@ int wvline(
#undef wattr_off
int wattr_off(
- WINDOW *win,
- attr_t at,
+ WINDOW *win,
+ attr_t at,
void *opts)
{ return(*(int *)0); }
@@ -2995,8 +2995,8 @@ int wattr_off(
#undef wattr_on
int wattr_on(
- WINDOW *win,
- attr_t at,
+ WINDOW *win,
+ attr_t at,
void *opts)
{ return(*(int *)0); }
@@ -3016,14 +3016,14 @@ void _nc_synchook(
#undef mvderwin
int mvderwin(
- WINDOW *win,
- int y,
+ WINDOW *win,
+ int y,
int x)
{ return(*(int *)0); }
#undef syncok
int syncok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL bf)
{ return(*(int *)0); }
@@ -3062,14 +3062,14 @@ struct panelhook *_nc_panelhook(void)
#undef _nc_printf_string_sp
char *_nc_printf_string_sp(
- SCREEN *sp,
- const char *fmt,
+ SCREEN *sp,
+ const char *fmt,
va_list ap)
{ return(*(char **)0); }
#undef _nc_printf_string
char *_nc_printf_string(
- const char *fmt,
+ const char *fmt,
va_list ap)
{ return(*(char **)0); }
@@ -3086,18 +3086,18 @@ int doupdate(void)
#undef _nc_scrolln_sp
int _nc_scrolln_sp(
- SCREEN *sp,
- int n,
- int top,
- int bot,
+ SCREEN *sp,
+ int n,
+ int top,
+ int bot,
int maxy)
{ return(*(int *)0); }
#undef _nc_scrolln
int _nc_scrolln(
- int n,
- int top,
- int bot,
+ int n,
+ int top,
+ int bot,
int maxy)
{ return(*(int *)0); }
@@ -3130,7 +3130,7 @@ void _nc_screen_wrap(void)
#undef _nc_do_xmc_glitch_sp
void _nc_do_xmc_glitch_sp(
- SCREEN *sp,
+ SCREEN *sp,
attr_t previous)
{ /* void */ }
@@ -3143,7 +3143,7 @@ void _nc_do_xmc_glitch(
#undef _nc_varargs
char *_nc_varargs(
- const char *fmt,
+ const char *fmt,
va_list ap)
{ return(*(char **)0); }
@@ -3161,7 +3161,7 @@ void _nc_freeall(void)
#undef _nc_free_and_exit_sp
void _nc_free_and_exit_sp(
- SCREEN *sp,
+ SCREEN *sp,
int code)
{ /* void */ }
@@ -3196,13 +3196,13 @@ wint_t _nc_to_widechar(
#undef wadd_wch
int wadd_wch(
- WINDOW *win,
+ WINDOW *win,
const cchar_t *wch)
{ return(*(int *)0); }
#undef wecho_wchar
int wecho_wchar(
- WINDOW *win,
+ WINDOW *win,
const cchar_t *wch)
{ return(*(int *)0); }
@@ -3210,14 +3210,14 @@ int wecho_wchar(
#undef wborder_set
int wborder_set(
- WINDOW *win,
- const cchar_t *ls,
- const cchar_t *rs,
- const cchar_t *ts,
- const cchar_t *bs,
- const cchar_t *tl,
- const cchar_t *tr,
- const cchar_t *bl,
+ WINDOW *win,
+ const cchar_t *ls,
+ const cchar_t *rs,
+ const cchar_t *ts,
+ const cchar_t *bs,
+ const cchar_t *tl,
+ const cchar_t *tr,
+ const cchar_t *bl,
const cchar_t *br)
{ return(*(int *)0); }
@@ -3225,29 +3225,41 @@ int wborder_set(
#undef setcchar
int setcchar(
- cchar_t *wcval,
- const wchar_t *wch,
- const attr_t attrs,
- short pair_arg,
+ cchar_t *wcval,
+ const wchar_t *wch,
+ const attr_t attrs,
+ short pair_arg,
const void *opts)
{ return(*(int *)0); }
#undef getcchar
int getcchar(
- const cchar_t *wcval,
- wchar_t *wch,
- attr_t *attrs,
- short *pair_arg,
+ const cchar_t *wcval,
+ wchar_t *wch,
+ attr_t *attrs,
+ short *pair_arg,
void *opts)
{ return(*(int *)0); }
/* ./widechar/lib_erasewchar.c */
+#undef erasewchar_sp
+int erasewchar_sp(
+ SCREEN *sp,
+ wchar_t *wch)
+ { return(*(int *)0); }
+
#undef erasewchar
int erasewchar(
wchar_t *wch)
{ return(*(int *)0); }
+#undef killwchar_sp
+int killwchar_sp(
+ SCREEN *sp,
+ wchar_t *wch)
+ { return(*(int *)0); }
+
#undef killwchar
int killwchar(
wchar_t *wch)
@@ -3257,7 +3269,7 @@ int killwchar(
#undef wget_wch
int wget_wch(
- WINDOW *win,
+ WINDOW *win,
wint_t *result)
{ return(*(int *)0); }
@@ -3265,8 +3277,8 @@ int wget_wch(
#undef wgetn_wstr
int wgetn_wstr(
- WINDOW *win,
- wint_t *str,
+ WINDOW *win,
+ wint_t *str,
int maxlen)
{ return(*(int *)0); }
@@ -3274,8 +3286,8 @@ int wgetn_wstr(
#undef whline_set
int whline_set(
- WINDOW *win,
- const cchar_t *ch,
+ WINDOW *win,
+ const cchar_t *ch,
int n)
{ return(*(int *)0); }
@@ -3283,7 +3295,7 @@ int whline_set(
#undef win_wch
int win_wch(
- WINDOW *win,
+ WINDOW *win,
cchar_t *wcval)
{ return(*(int *)0); }
@@ -3291,8 +3303,8 @@ int win_wch(
#undef win_wchnstr
int win_wchnstr(
- WINDOW *win,
- cchar_t *wchstr,
+ WINDOW *win,
+ cchar_t *wchstr,
int n)
{ return(*(int *)0); }
@@ -3300,20 +3312,20 @@ int win_wchnstr(
#undef _nc_insert_wch
int _nc_insert_wch(
- WINDOW *win,
+ WINDOW *win,
const cchar_t *wch)
{ return(*(int *)0); }
#undef wins_wch
int wins_wch(
- WINDOW *win,
+ WINDOW *win,
const cchar_t *wch)
{ return(*(int *)0); }
#undef wins_nwstr
int wins_nwstr(
- WINDOW *win,
- const wchar_t *wstr,
+ WINDOW *win,
+ const wchar_t *wstr,
int n)
{ return(*(int *)0); }
@@ -3321,14 +3333,14 @@ int wins_nwstr(
#undef winnwstr
int winnwstr(
- WINDOW *win,
- wchar_t *wstr,
+ WINDOW *win,
+ wchar_t *wstr,
int n)
{ return(*(int *)0); }
#undef winwstr
int winwstr(
- WINDOW *win,
+ WINDOW *win,
wchar_t *wstr)
{ return(*(int *)0); }
@@ -3343,7 +3355,7 @@ const char *key_name(
#undef pecho_wchar
int pecho_wchar(
- WINDOW *pad,
+ WINDOW *pad,
const cchar_t *wch)
{ return(*(int *)0); }
@@ -3351,8 +3363,8 @@ int pecho_wchar(
#undef slk_wset
int slk_wset(
- int i,
- const wchar_t *astr,
+ int i,
+ const wchar_t *astr,
int format)
{ return(*(int *)0); }
@@ -3360,14 +3372,14 @@ int slk_wset(
#undef _nc_wcrtomb
size_t _nc_wcrtomb(
- char *target,
- wchar_t source,
+ char *target,
+ wchar_t source,
mbstate_t *state)
{ return(*(size_t *)0); }
#undef unget_wch_sp
int unget_wch_sp(
- SCREEN *sp,
+ SCREEN *sp,
const wchar_t wch)
{ return(*(int *)0); }
@@ -3380,33 +3392,33 @@ int unget_wch(
#undef vid_puts_sp
int vid_puts_sp(
- SCREEN *sp,
- attr_t newmode,
- short pair_arg,
- void *opts,
+ SCREEN *sp,
+ attr_t newmode,
+ short pair_arg,
+ void *opts,
NCURSES_OUTC_sp outc)
{ return(*(int *)0); }
#undef vid_puts
int vid_puts(
- attr_t newmode,
- short pair_arg,
- void *opts,
+ attr_t newmode,
+ short pair_arg,
+ void *opts,
NCURSES_OUTC outc)
{ return(*(int *)0); }
#undef vid_attr_sp
int vid_attr_sp(
- SCREEN *sp,
- attr_t newmode,
- short pair_arg,
+ SCREEN *sp,
+ attr_t newmode,
+ short pair_arg,
void *opts)
{ return(*(int *)0); }
#undef vid_attr
int vid_attr(
- attr_t newmode,
- short pair_arg,
+ attr_t newmode,
+ short pair_arg,
void *opts)
{ return(*(int *)0); }
@@ -3423,8 +3435,8 @@ attr_t term_attrs(void)
#undef wvline_set
int wvline_set(
- WINDOW *win,
- const cchar_t *ch,
+ WINDOW *win,
+ const cchar_t *ch,
int n)
{ return(*(int *)0); }
@@ -3441,7 +3453,7 @@ void _nc_init_wacs(void)
#undef wunctrl_sp
wchar_t *wunctrl_sp(
- SCREEN *sp,
+ SCREEN *sp,
cchar_t *wc)
{ return(*(wchar_t **)0); }
@@ -3454,31 +3466,31 @@ wchar_t *wunctrl(
#undef _nc_toggle_attr_on
void _nc_toggle_attr_on(
- attr_t *S,
+ attr_t *S,
attr_t at)
{ /* void */ }
#undef _nc_toggle_attr_off
void _nc_toggle_attr_off(
- attr_t *S,
+ attr_t *S,
attr_t at)
{ /* void */ }
#undef _nc_DelCharCost_sp
int _nc_DelCharCost_sp(
- SCREEN *sp,
+ SCREEN *sp,
int count)
{ return(*(int *)0); }
#undef _nc_InsCharCost_sp
int _nc_InsCharCost_sp(
- SCREEN *sp,
+ SCREEN *sp,
int count)
{ return(*(int *)0); }
#undef _nc_UpdateAttrs_sp
void _nc_UpdateAttrs_sp(
- SCREEN *sp,
+ SCREEN *sp,
const cchar_t *c)
{ /* void */ }
@@ -3501,7 +3513,7 @@ void _nc_UpdateAttrs(
#undef use_legacy_coding_sp
int use_legacy_coding_sp(
- SCREEN *sp,
+ SCREEN *sp,
int level)
{ return(*(int *)0); }
@@ -3523,14 +3535,14 @@ int use_default_colors(void)
#undef assume_default_colors_sp
int assume_default_colors_sp(
- SCREEN *sp,
- int fg,
+ SCREEN *sp,
+ int fg,
int bg)
{ return(*(int *)0); }
#undef assume_default_colors
int assume_default_colors(
- int fg,
+ int fg,
int bg)
{ return(*(int *)0); }
@@ -3538,14 +3550,14 @@ int assume_default_colors(
#undef mcprint_sp
int mcprint_sp(
- SCREEN *sp,
- char *data,
+ SCREEN *sp,
+ char *data,
int len)
{ return(*(int *)0); }
#undef mcprint
int mcprint(
- char *data,
+ char *data,
int len)
{ return(*(int *)0); }
@@ -3558,55 +3570,55 @@ void _nc_free_ordered_pairs(
#undef _nc_reset_color_pair
void _nc_reset_color_pair(
- SCREEN *sp,
- int pair,
+ SCREEN *sp,
+ int pair,
colorpair_t *next)
{ /* void */ }
#undef _nc_set_color_pair
void _nc_set_color_pair(
- SCREEN *sp,
- int pair,
+ SCREEN *sp,
+ int pair,
int mode)
{ /* void */ }
#undef _nc_copy_pairs
void _nc_copy_pairs(
- SCREEN *sp,
- colorpair_t *target,
- colorpair_t *source,
+ SCREEN *sp,
+ colorpair_t *target,
+ colorpair_t *source,
int length)
{ /* void */ }
#undef alloc_pair_sp
int alloc_pair_sp(
- SCREEN *sp,
- int fg,
+ SCREEN *sp,
+ int fg,
int bg)
{ return(*(int *)0); }
#undef find_pair_sp
int find_pair_sp(
- SCREEN *sp,
- int fg,
+ SCREEN *sp,
+ int fg,
int bg)
{ return(*(int *)0); }
#undef free_pair_sp
int free_pair_sp(
- SCREEN *sp,
+ SCREEN *sp,
int pair)
{ return(*(int *)0); }
#undef alloc_pair
int alloc_pair(
- int f,
+ int f,
int b)
{ return(*(int *)0); }
#undef find_pair
int find_pair(
- int f,
+ int f,
int b)
{ return(*(int *)0); }
@@ -3619,40 +3631,40 @@ int free_pair(
#undef is_term_resized_sp
NCURSES_BOOL is_term_resized_sp(
- SCREEN *sp,
- int ToLines,
+ SCREEN *sp,
+ int ToLines,
int ToCols)
{ return(*(NCURSES_BOOL *)0); }
#undef is_term_resized
NCURSES_BOOL is_term_resized(
- int ToLines,
+ int ToLines,
int ToCols)
{ return(*(NCURSES_BOOL *)0); }
#undef resize_term_sp
int resize_term_sp(
- SCREEN *sp,
- int ToLines,
+ SCREEN *sp,
+ int ToLines,
int ToCols)
{ return(*(int *)0); }
#undef resize_term
int resize_term(
- int ToLines,
+ int ToLines,
int ToCols)
{ return(*(int *)0); }
#undef resizeterm_sp
int resizeterm_sp(
- SCREEN *sp,
- int ToLines,
+ SCREEN *sp,
+ int ToLines,
int ToCols)
{ return(*(int *)0); }
#undef resizeterm
int resizeterm(
- int ToLines,
+ int ToLines,
int ToCols)
{ return(*(int *)0); }
@@ -3667,8 +3679,8 @@ void _nc_trace_xnames(
#undef use_screen
int use_screen(
- SCREEN *screen,
- NCURSES_SCREEN_CB func,
+ SCREEN *screen,
+ NCURSES_SCREEN_CB func,
void *data)
{ return(*(int *)0); }
@@ -3676,8 +3688,8 @@ int use_screen(
#undef use_window
int use_window(
- WINDOW *win,
- NCURSES_WINDOW_CB func,
+ WINDOW *win,
+ NCURSES_WINDOW_CB func,
void *data)
{ return(*(int *)0); }
@@ -3685,8 +3697,8 @@ int use_window(
#undef wresize
int wresize(
- WINDOW *win,
- int ToLines,
+ WINDOW *win,
+ int ToLines,
int ToCols)
{ return(*(int *)0); }
@@ -3714,7 +3726,7 @@ char *_nc_basename(
#undef _nc_access
int _nc_access(
- const char *path,
+ const char *path,
int mode)
{ return(*(int *)0); }
@@ -3732,12 +3744,25 @@ NCURSES_BOOL _nc_is_file_path(
int _nc_env_access(void)
{ return(*(int *)0); }
+#undef _nc_safe_fopen
+FILE *_nc_safe_fopen(
+ const char *path,
+ const char *mode)
+ { return(*(FILE **)0); }
+
+#undef _nc_safe_open3
+int _nc_safe_open3(
+ const char *path,
+ int flags,
+ mode_t mode)
+ { return(*(int *)0); }
+
/* ./tinfo/add_tries.c */
#undef _nc_add_to_try
int _nc_add_to_try(
- TRIES **tree,
- const char *str,
+ TRIES **tree,
+ const char *str,
unsigned code)
{ return(*(int *)0); }
@@ -3745,25 +3770,25 @@ int _nc_add_to_try(
#undef _nc_align_termtype
void _nc_align_termtype(
- TERMTYPE2 *to,
+ TERMTYPE2 *to,
TERMTYPE2 *from)
{ /* void */ }
#undef _nc_copy_termtype
void _nc_copy_termtype(
- TERMTYPE *dst,
+ TERMTYPE *dst,
const TERMTYPE *src)
{ /* void */ }
#undef _nc_copy_termtype2
void _nc_copy_termtype2(
- TERMTYPE2 *dst,
+ TERMTYPE2 *dst,
const TERMTYPE2 *src)
{ /* void */ }
#undef _nc_export_termtype2
void _nc_export_termtype2(
- TERMTYPE *dst,
+ TERMTYPE *dst,
const TERMTYPE2 *src)
{ /* void */ }
@@ -3828,19 +3853,19 @@ void _nc_get_type(
#undef _nc_warning
void _nc_warning(
- const char *const fmt,
+ const char *const fmt,
...)
{ /* void */ }
#undef _nc_err_abort
void _nc_err_abort(
- const char *const fmt,
+ const char *const fmt,
...)
{ /* void */ }
#undef _nc_syserr_abort
void _nc_syserr_abort(
- const char *const fmt,
+ const char *const fmt,
...)
{ /* void */ }
@@ -3848,14 +3873,14 @@ void _nc_syserr_abort(
#undef _nc_find_entry
struct name_table_entry const *_nc_find_entry(
- const char *string,
+ const char *string,
const HashValue *hash_table)
{ return(*(struct name_table_entry const **)0); }
#undef _nc_find_type_entry
struct name_table_entry const *_nc_find_type_entry(
- const char *string,
- int type,
+ const char *string,
+ int type,
NCURSES_BOOL termcap)
{ return(*(struct name_table_entry const **)0); }
@@ -3892,13 +3917,13 @@ void _nc_last_db(void)
#undef _nc_next_db
const char *_nc_next_db(
- DBDIRS *state,
+ DBDIRS *state,
int *offset)
{ return(*(const char **)0); }
#undef _nc_first_db
void _nc_first_db(
- DBDIRS *state,
+ DBDIRS *state,
int *offset)
{ /* void */ }
@@ -3906,7 +3931,7 @@ void _nc_first_db(
#undef _nc_doalloc
void *_nc_doalloc(
- void *oldp,
+ void *oldp,
size_t amount)
{ return(*(void **)0); }
@@ -3919,7 +3944,7 @@ ENTRY *_nc_tail;
#undef _nc_free_entry
void _nc_free_entry(
- ENTRY *headp,
+ ENTRY *headp,
TERMTYPE2 *tterm)
{ /* void */ }
@@ -3956,6 +3981,11 @@ void _nc_free_termtype(
TERMTYPE *ptr)
{ /* void */ }
+#undef _nc_free_termtype1
+void _nc_free_termtype1(
+ TERMTYPE *ptr)
+ { /* void */ }
+
#undef _nc_free_termtype2
void _nc_free_termtype2(
TERMTYPE2 *ptr)
@@ -3978,7 +4008,7 @@ int _nc_getenv_num(
#undef _nc_setenv_num
void _nc_setenv_num(
- const char *name,
+ const char *name,
int value)
{ /* void */ }
@@ -4012,8 +4042,8 @@ void _nc_init_acs(void)
/* ./tinfo/lib_baudrate.c */
struct speed {
- int given_speed;
- int actual_speed;
+ int given_speed;
+ int actual_speed;
};
#undef _nc_baudrate
@@ -4042,7 +4072,7 @@ TERMINAL *cur_term;
#undef set_curterm_sp
TERMINAL *set_curterm_sp(
- SCREEN *sp,
+ SCREEN *sp,
TERMINAL *termp)
{ return(*(TERMINAL **)0); }
@@ -4053,7 +4083,7 @@ TERMINAL *set_curterm(
#undef del_curterm_sp
int del_curterm_sp(
- SCREEN *sp,
+ SCREEN *sp,
TERMINAL *termp)
{ return(*(int *)0); }
@@ -4139,7 +4169,7 @@ struct kn { short offset; int code; };
#undef keyname_sp
const char *keyname_sp(
- SCREEN *sp,
+ SCREEN *sp,
int c)
{ return(*(const char **)0); }
@@ -4163,7 +4193,7 @@ char *longname(void)
#undef napms_sp
int napms_sp(
- SCREEN *sp,
+ SCREEN *sp,
int ms)
{ return(*(int *)0); }
@@ -4176,19 +4206,19 @@ int napms(
#undef idlok
int idlok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef idcok
void idcok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ /* void */ }
#undef halfdelay_sp
int halfdelay_sp(
- SCREEN *sp,
+ SCREEN *sp,
int t)
{ return(*(int *)0); }
@@ -4199,37 +4229,37 @@ int halfdelay(
#undef nodelay
int nodelay(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef notimeout
int notimeout(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL f)
{ return(*(int *)0); }
#undef wtimeout
void wtimeout(
- WINDOW *win,
+ WINDOW *win,
int delay)
{ /* void */ }
#undef keypad
int keypad(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef meta
int meta(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef curs_set_sp
int curs_set_sp(
- SCREEN *sp,
+ SCREEN *sp,
int vis)
{ return(*(int *)0); }
@@ -4240,7 +4270,7 @@ int curs_set(
#undef typeahead_sp
int typeahead_sp(
- SCREEN *sp,
+ SCREEN *sp,
int fd)
{ return(*(int *)0); }
@@ -4251,7 +4281,7 @@ int typeahead(
#undef has_key_sp
int has_key_sp(
- SCREEN *sp,
+ SCREEN *sp,
int keycode)
{ return(*(int *)0); }
@@ -4262,14 +4292,14 @@ int has_key(
#undef _nc_putp_flush_sp
int _nc_putp_flush_sp(
- SCREEN *sp,
- const char *name,
+ SCREEN *sp,
+ const char *name,
const char *value)
{ return(*(int *)0); }
#undef _nc_keypad
int _nc_keypad(
- SCREEN *sp,
+ SCREEN *sp,
int flag)
{ return(*(int *)0); }
@@ -4331,17 +4361,53 @@ void noqiflush(void)
#undef intrflush_sp
int intrflush_sp(
- SCREEN *sp,
- WINDOW *win,
+ SCREEN *sp,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef intrflush
int intrflush(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
+#undef is_nl_sp
+int is_nl_sp(
+ SCREEN *sp)
+ { return(*(int *)0); }
+
+#undef is_raw_sp
+int is_raw_sp(
+ SCREEN *sp)
+ { return(*(int *)0); }
+
+#undef is_cbreak_sp
+int is_cbreak_sp(
+ SCREEN *sp)
+ { return(*(int *)0); }
+
+#undef is_echo_sp
+int is_echo_sp(
+ SCREEN *sp)
+ { return(*(int *)0); }
+
+#undef is_nl
+int is_nl(void)
+ { return(*(int *)0); }
+
+#undef is_raw
+int is_raw(void)
+ { return(*(int *)0); }
+
+#undef is_cbreak
+int is_cbreak(void)
+ { return(*(int *)0); }
+
+#undef is_echo
+int is_echo(void)
+ { return(*(int *)0); }
+
/* ./tinfo/lib_setup.c */
#undef ttytype
@@ -4355,7 +4421,7 @@ int TABSIZE;
#undef set_tabsize_sp
int set_tabsize_sp(
- SCREEN *sp,
+ SCREEN *sp,
int value)
{ return(*(int *)0); }
@@ -4371,13 +4437,13 @@ int _nc_handle_sigwinch(
#undef use_env_sp
void use_env_sp(
- SCREEN *sp,
+ SCREEN *sp,
NCURSES_BOOL f)
{ /* void */ }
#undef use_tioctl_sp
void use_tioctl_sp(
- SCREEN *sp,
+ SCREEN *sp,
NCURSES_BOOL f)
{ /* void */ }
@@ -4393,8 +4459,8 @@ void use_tioctl(
#undef _nc_get_screensize
void _nc_get_screensize(
- SCREEN *sp,
- int *linep,
+ SCREEN *sp,
+ int *linep,
int *colp)
{ /* void */ }
@@ -4405,13 +4471,13 @@ void _nc_update_screensize(
#undef _nc_setup_tinfo
int _nc_setup_tinfo(
- const char *const tn,
+ const char *const tn,
TERMTYPE2 *const tp)
{ return(*(int *)0); }
#undef _nc_tinfo_cmdch
void _nc_tinfo_cmdch(
- TERMINAL *termp,
+ TERMINAL *termp,
int proto)
{ /* void */ }
@@ -4430,9 +4496,9 @@ int _nc_locale_breaks_acs(
#undef _nc_setupterm
int _nc_setupterm(
- const char *tname,
- int Filedes,
- int *errret,
+ const char *tname,
+ int Filedes,
+ int *errret,
int reuse)
{ return(*(int *)0); }
@@ -4442,8 +4508,8 @@ SCREEN *new_prescr(void)
#undef setupterm
int setupterm(
- const char *tname,
- int Filedes,
+ const char *tname,
+ int Filedes,
int *errret)
{ return(*(int *)0); }
@@ -4456,20 +4522,20 @@ char *BC;
#undef tgetent_sp
int tgetent_sp(
- SCREEN *sp,
- char *bufp,
+ SCREEN *sp,
+ char *bufp,
const char *name)
{ return(*(int *)0); }
#undef tgetent
int tgetent(
- char *bufp,
+ char *bufp,
const char *name)
{ return(*(int *)0); }
#undef tgetflag_sp
int tgetflag_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *id)
{ return(*(int *)0); }
@@ -4480,7 +4546,7 @@ int tgetflag(
#undef tgetnum_sp
int tgetnum_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *id)
{ return(*(int *)0); }
@@ -4491,14 +4557,14 @@ int tgetnum(
#undef tgetstr_sp
char *tgetstr_sp(
- SCREEN *sp,
- const char *id,
+ SCREEN *sp,
+ const char *id,
char **area)
{ return(*(char **)0); }
#undef tgetstr
char *tgetstr(
- const char *id,
+ const char *id,
char **area)
{ return(*(char **)0); }
@@ -4517,8 +4583,8 @@ char *termname(void)
#undef tgoto
char *tgoto(
- const char *string,
- int x,
+ const char *string,
+ int x,
int y)
{ return(*(char **)0); }
@@ -4526,7 +4592,7 @@ char *tgoto(
#undef tigetflag_sp
int tigetflag_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *str)
{ return(*(int *)0); }
@@ -4537,7 +4603,7 @@ int tigetflag(
#undef tigetnum_sp
int tigetnum_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *str)
{ return(*(int *)0); }
@@ -4548,7 +4614,7 @@ int tigetnum(
#undef tigetstr_sp
char *tigetstr_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *str)
{ return(*(char **)0); }
@@ -4562,32 +4628,58 @@ char *tigetstr(
#undef _nc_tparm_err
int _nc_tparm_err;
+#undef _nc_free_tparm
+void _nc_free_tparm(
+ TERMINAL *termp)
+ { /* void */ }
+
#undef _nc_tparm_analyze
int _nc_tparm_analyze(
- const char *string,
- char *p_is_s[9],
+ TERMINAL *term,
+ const char *string,
+ char **p_is_s,
int *_nc_popcount)
{ return(*(int *)0); }
#undef tparm
char *tparm(
- const char *string,
+ const char *string,
...)
{ return(*(char **)0); }
#undef tiparm
char *tiparm(
- const char *string,
+ const char *string,
+ ...)
+ { return(*(char **)0); }
+
+#undef tiparm_s
+char *tiparm_s(
+ int num_expected,
+ int tparm_type,
+ const char *string,
...)
{ return(*(char **)0); }
+#undef tiscan_s
+int tiscan_s(
+ int *num_expected,
+ int *tparm_type,
+ const char *string)
+ { return(*(int *)0); }
+
#undef _nc_tiparm
char *_nc_tiparm(
- int expected,
- const char *string,
+ int expected,
+ const char *string,
...)
{ return(*(char **)0); }
+#undef _nc_reset_tparm
+void _nc_reset_tparm(
+ TERMINAL *term)
+ { /* void */ }
+
/* ./tinfo/lib_tputs.c */
#undef PC
@@ -4604,7 +4696,7 @@ void _nc_set_no_padding(
#undef delay_output_sp
int delay_output_sp(
- SCREEN *sp,
+ SCREEN *sp,
int ms)
{ return(*(int *)0); }
@@ -4624,7 +4716,7 @@ void _nc_flush(void)
#undef _nc_outch_sp
int _nc_outch_sp(
- SCREEN *sp,
+ SCREEN *sp,
int ch)
{ return(*(int *)0); }
@@ -4635,7 +4727,7 @@ int _nc_outch(
#undef _nc_putchar_sp
int _nc_putchar_sp(
- SCREEN *sp,
+ SCREEN *sp,
int ch)
{ return(*(int *)0); }
@@ -4646,7 +4738,7 @@ int _nc_putchar(
#undef putp_sp
int putp_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *string)
{ return(*(int *)0); }
@@ -4657,35 +4749,35 @@ int putp(
#undef _nc_putp_sp
int _nc_putp_sp(
- SCREEN *sp,
- const char *name,
+ SCREEN *sp,
+ const char *name,
const char *string)
{ return(*(int *)0); }
#undef _nc_putp
int _nc_putp(
- const char *name,
+ const char *name,
const char *string)
{ return(*(int *)0); }
#undef tputs_sp
int tputs_sp(
- SCREEN *sp,
- const char *string,
- int affcnt,
+ SCREEN *sp,
+ const char *string,
+ int affcnt,
NCURSES_OUTC_sp outc)
{ return(*(int *)0); }
#undef _nc_outc_wrapper
int _nc_outc_wrapper(
- SCREEN *sp,
+ SCREEN *sp,
int c)
{ return(*(int *)0); }
#undef tputs
int tputs(
- const char *string,
- int affcnt,
+ const char *string,
+ int affcnt,
int (*outc)(
int p1))
{ return(*(int *)0); }
@@ -4711,7 +4803,7 @@ void trace(
#undef _tracef
void _tracef(
- const char *fmt,
+ const char *fmt,
...)
{ /* void */ }
@@ -4767,8 +4859,8 @@ WINDOW *_nc_retrace_win(
#undef _nc_fmt_funcptr
char *_nc_fmt_funcptr(
- char *target,
- const char *source,
+ char *target,
+ const char *source,
size_t size)
{ return(*(char **)0); }
@@ -4776,7 +4868,7 @@ char *_nc_fmt_funcptr(
#undef _traceattr2
char *_traceattr2(
- int bufnum,
+ int bufnum,
chtype newmode)
{ return(*(char **)0); }
@@ -4797,13 +4889,13 @@ attr_t _nc_retrace_attr_t(
#undef _nc_altcharset_name
const char *_nc_altcharset_name(
- attr_t attr,
+ attr_t attr,
chtype ch)
{ return(*(const char **)0); }
#undef _tracechtype2
char *_tracechtype2(
- int bufnum,
+ int bufnum,
chtype ch)
{ return(*(char **)0); }
@@ -4819,7 +4911,7 @@ chtype _nc_retrace_chtype(
#undef _tracecchar_t2
char *_tracecchar_t2(
- int bufnum,
+ int bufnum,
const cchar_t *ch)
{ return(*(char **)0); }
@@ -4832,7 +4924,7 @@ char *_tracecchar_t(
#undef _nc_trace_ttymode
char *_nc_trace_ttymode(
- struct termios *tty)
+ const struct termios *tty)
{ return(*(char **)0); }
#undef _nc_tracebits
@@ -4843,7 +4935,7 @@ char *_nc_tracebits(void)
#undef _nc_tracechar
char *_nc_tracechar(
- SCREEN *sp,
+ SCREEN *sp,
int ch)
{ return(*(char **)0); }
@@ -4856,7 +4948,7 @@ char *_tracechar(
#undef _nc_get_tty_mode_sp
int _nc_get_tty_mode_sp(
- SCREEN *sp,
+ SCREEN *sp,
struct termios *buf)
{ return(*(int *)0); }
@@ -4867,7 +4959,7 @@ int _nc_get_tty_mode(
#undef _nc_set_tty_mode_sp
int _nc_set_tty_mode_sp(
- SCREEN *sp,
+ SCREEN *sp,
struct termios *buf)
{ return(*(int *)0); }
@@ -4934,9 +5026,9 @@ int resetty(void)
#undef _nc_timed_wait
int _nc_timed_wait(
- SCREEN *sp,
- int mode,
- int milliseconds,
+ SCREEN *sp,
+ int mode,
+ int milliseconds,
int *timeleft)
{ return(*(int *)0); }
@@ -4949,8 +5041,8 @@ char *_nc_first_name(
#undef _nc_name_match
int _nc_name_match(
- const char *const namelst,
- const char *const name,
+ const char *const namelst,
+ const char *const name,
const char *const delim)
{ return(*(int *)0); }
@@ -4973,14 +5065,14 @@ const char *const strfnames[] = {0};
#undef _nc_set_buffer_sp
void _nc_set_buffer_sp(
- SCREEN *sp,
- FILE *ofp,
+ SCREEN *sp,
+ FILE *ofp,
int buffered)
{ /* void */ }
#undef _nc_set_buffer
void _nc_set_buffer(
- FILE *ofp,
+ FILE *ofp,
int buffered)
{ /* void */ }
@@ -4993,28 +5085,28 @@ void _nc_init_termtype(
#undef _nc_read_termtype
int _nc_read_termtype(
- TERMTYPE2 *ptr,
- char *buffer,
+ TERMTYPE2 *ptr,
+ char *buffer,
int limit)
{ return(*(int *)0); }
#undef _nc_read_file_entry
int _nc_read_file_entry(
- const char *const filename,
+ const char *const filename,
TERMTYPE2 *ptr)
{ return(*(int *)0); }
#undef _nc_read_entry2
int _nc_read_entry2(
- const char *const name,
- char *const filename,
+ const char *const name,
+ char *const filename,
TERMTYPE2 *const tp)
{ return(*(int *)0); }
#undef _nc_read_entry
int _nc_read_entry(
- const char *const name,
- char *const filename,
+ const char *const name,
+ char *const filename,
TERMTYPE *const tp)
{ return(*(int *)0); }
@@ -5022,7 +5114,7 @@ int _nc_read_entry(
#undef _nc_read_termcap_entry
int _nc_read_termcap_entry(
- const char *const tn,
+ const char *const tn,
TERMTYPE2 *const tp)
{ return(*(int *)0); }
@@ -5030,32 +5122,32 @@ int _nc_read_termcap_entry(
#undef _nc_str_init
string_desc *_nc_str_init(
- string_desc *dst,
- char *src,
+ string_desc *dst,
+ char *src,
size_t len)
{ return(*(string_desc **)0); }
#undef _nc_str_null
string_desc *_nc_str_null(
- string_desc *dst,
+ string_desc *dst,
size_t len)
{ return(*(string_desc **)0); }
#undef _nc_str_copy
string_desc *_nc_str_copy(
- string_desc *dst,
- string_desc *src)
+ string_desc *dst,
+ const string_desc *const src)
{ return(*(string_desc **)0); }
#undef _nc_safe_strcat
NCURSES_BOOL _nc_safe_strcat(
- string_desc *dst,
+ string_desc *dst,
const char *src)
{ return(*(NCURSES_BOOL *)0); }
#undef _nc_safe_strcpy
NCURSES_BOOL _nc_safe_strcpy(
- string_desc *dst,
+ string_desc *dst,
const char *src)
{ return(*(NCURSES_BOOL *)0); }
@@ -5063,13 +5155,13 @@ NCURSES_BOOL _nc_safe_strcpy(
#undef _nc_trace_buf
char *_nc_trace_buf(
- int bufnum,
+ int bufnum,
size_t want)
{ return(*(char **)0); }
#undef _nc_trace_bufcat
char *_nc_trace_bufcat(
- int bufnum,
+ int bufnum,
const char *value)
{ return(*(char **)0); }
@@ -5084,21 +5176,21 @@ void _nc_trace_tries(
#undef _nc_expand_try
char *_nc_expand_try(
- TRIES *tree,
- unsigned code,
- int *count,
+ TRIES *tree,
+ unsigned code,
+ int *count,
size_t len)
{ return(*(char **)0); }
#undef _nc_remove_key
int _nc_remove_key(
- TRIES **tree,
+ TRIES **tree,
unsigned code)
{ return(*(int *)0); }
#undef _nc_remove_string
int _nc_remove_string(
- TRIES **tree,
+ TRIES **tree,
const char *string)
{ return(*(int *)0); }
@@ -5113,7 +5205,7 @@ char *_nc_trim_sgr0(
#undef unctrl_sp
const char *unctrl_sp(
- SCREEN *sp,
+ SCREEN *sp,
chtype ch)
{ return(*(const char **)0); }
@@ -5126,7 +5218,7 @@ const char *unctrl(
#undef _nc_visbuf2
const char *_nc_visbuf2(
- int bufnum,
+ int bufnum,
const char *buf)
{ return(*(const char **)0); }
@@ -5137,13 +5229,13 @@ const char *_nc_visbuf(
#undef _nc_visbufn
const char *_nc_visbufn(
- const char *buf,
+ const char *buf,
int len)
{ return(*(const char **)0); }
#undef _nc_viswbuf2
const char *_nc_viswbuf2(
- int bufnum,
+ int bufnum,
const wchar_t *buf)
{ return(*(const char **)0); }
@@ -5154,7 +5246,7 @@ const char *_nc_viswbuf(
#undef _nc_viswbufn
const char *_nc_viswbufn(
- const wchar_t *buf,
+ const wchar_t *buf,
int len)
{ return(*(const char **)0); }
@@ -5165,14 +5257,14 @@ const char *_nc_viswibuf(
#undef _nc_viscbuf2
const char *_nc_viscbuf2(
- int bufnum,
- const cchar_t *buf,
+ int bufnum,
+ const cchar_t *buf,
int len)
{ return(*(const char **)0); }
#undef _nc_viscbuf
const char *_nc_viscbuf(
- const cchar_t *buf,
+ const cchar_t *buf,
int len)
{ return(*(const char **)0); }
@@ -5190,18 +5282,18 @@ ENTRY *_nc_copy_entry(
#undef _nc_save_str
char *_nc_save_str(
- const char *const string)
+ const char *string)
{ return(*(char **)0); }
#undef _nc_wrap_entry
void _nc_wrap_entry(
- ENTRY *const ep,
+ ENTRY *const ep,
NCURSES_BOOL copy_strings)
{ /* void */ }
#undef _nc_merge_entry
void _nc_merge_entry(
- ENTRY *const target,
+ ENTRY *const target,
ENTRY *const source)
{ /* void */ }
@@ -5209,15 +5301,15 @@ void _nc_merge_entry(
#undef _nc_captoinfo
char *_nc_captoinfo(
- const char *cap,
- const char *s,
+ const char *cap,
+ const char *s,
int const parameterized)
{ return(*(char **)0); }
#undef _nc_infotocap
char *_nc_infotocap(
- const char *cap,
- const char *str,
+ const char *cap,
+ const char *str,
int const parameterized)
{ return(*(char **)0); }
@@ -5225,8 +5317,8 @@ char *_nc_infotocap(
#undef _nc_tic_expand
char *_nc_tic_expand(
- const char *srcp,
- NCURSES_BOOL tic_format,
+ const char *srcp,
+ NCURSES_BOOL tic_format,
int numbers)
{ return(*(char **)0); }
@@ -5234,28 +5326,28 @@ char *_nc_tic_expand(
#undef _nc_check_termtype2
void (*_nc_check_termtype2)(
- TERMTYPE2 *p1,
+ TERMTYPE2 *p1,
NCURSES_BOOL p2);
#undef _nc_entry_match
NCURSES_BOOL _nc_entry_match(
- char *n1,
+ char *n1,
char *n2)
{ return(*(NCURSES_BOOL *)0); }
#undef _nc_read_entry_source
void _nc_read_entry_source(
- FILE *fp,
- char *buf,
- int literal,
- NCURSES_BOOL silent,
+ FILE *fp,
+ char *buf,
+ int literal,
+ NCURSES_BOOL silent,
NCURSES_BOOL (*hook)(
ENTRY *p1))
{ /* void */ }
#undef _nc_resolve_uses2
int _nc_resolve_uses2(
- NCURSES_BOOL fullresolve,
+ NCURSES_BOOL fullresolve,
NCURSES_BOOL literal)
{ return(*(int *)0); }
@@ -5280,7 +5372,7 @@ NCURSES_BOOL _nc_disable_period;
#undef _nc_reset_input
void _nc_reset_input(
- FILE *fp,
+ FILE *fp,
char *buf)
{ /* void */ }
@@ -5291,8 +5383,8 @@ int _nc_get_token(
#undef _nc_trans_string
int _nc_trans_string(
- char *ptr,
- char *last)
+ char *ptr,
+ const char *const last)
{ return(*(int *)0); }
#undef _nc_push_token
@@ -5309,14 +5401,14 @@ void _nc_panic_mode(
#undef _nc_parse_entry
int _nc_parse_entry(
- ENTRY *entryp,
- int literal,
+ ENTRY *entryp,
+ int literal,
NCURSES_BOOL silent)
{ return(*(int *)0); }
#undef _nc_capcmp
int _nc_capcmp(
- const char *s,
+ const char *s,
const char *t)
{ return(*(int *)0); }
@@ -5334,9 +5426,9 @@ void _nc_write_entry(
#undef _nc_write_object
int _nc_write_object(
- TERMTYPE2 *tp,
- char *buffer,
- unsigned *offset,
+ TERMTYPE2 *tp,
+ char *buffer,
+ unsigned *offset,
unsigned limit)
{ return(*(int *)0); }
@@ -5348,14 +5440,14 @@ int _nc_tic_written(void)
#undef define_key_sp
int define_key_sp(
- SCREEN *sp,
- const char *str,
+ SCREEN *sp,
+ const char *str,
int keycode)
{ return(*(int *)0); }
#undef define_key
int define_key(
- const char *str,
+ const char *str,
int keycode)
{ return(*(int *)0); }
@@ -5369,7 +5461,7 @@ void _nc_hashed_db(void)
#undef key_defined_sp
int key_defined_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *str)
{ return(*(int *)0); }
@@ -5382,14 +5474,14 @@ int key_defined(
#undef keybound_sp
char *keybound_sp(
- SCREEN *sp,
- int code,
+ SCREEN *sp,
+ int code,
int count)
{ return(*(char **)0); }
#undef keybound
char *keybound(
- int code,
+ int code,
int count)
{ return(*(char **)0); }
@@ -5397,14 +5489,14 @@ char *keybound(
#undef keyok_sp
int keyok_sp(
- SCREEN *sp,
- int c,
+ SCREEN *sp,
+ int c,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef keyok
int keyok(
- int c,
+ int c,
NCURSES_BOOL flag)
{ return(*(int *)0); }
diff --git a/ncurses/llib-ltic b/ncurses/llib-ltic
index 6ea27146dd09..9e87aaeae4a6 100644
--- a/ncurses/llib-ltic
+++ b/ncurses/llib-ltic
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020-2021,2023 Thomas E. Dickey *
* Copyright 2012-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -48,18 +48,18 @@ ENTRY *_nc_copy_entry(
#undef _nc_save_str
char *_nc_save_str(
- const char *const string)
+ const char *string)
{ return(*(char **)0); }
#undef _nc_wrap_entry
void _nc_wrap_entry(
- ENTRY *const ep,
+ ENTRY *const ep,
NCURSES_BOOL copy_strings)
{ /* void */ }
#undef _nc_merge_entry
void _nc_merge_entry(
- ENTRY *const target,
+ ENTRY *const target,
ENTRY *const source)
{ /* void */ }
@@ -67,15 +67,15 @@ void _nc_merge_entry(
#undef _nc_captoinfo
char *_nc_captoinfo(
- const char *cap,
- const char *s,
+ const char *cap,
+ const char *s,
int const parameterized)
{ return(*(char **)0); }
#undef _nc_infotocap
char *_nc_infotocap(
- const char *cap,
- const char *str,
+ const char *cap,
+ const char *str,
int const parameterized)
{ return(*(char **)0); }
@@ -83,8 +83,8 @@ char *_nc_infotocap(
#undef _nc_tic_expand
char *_nc_tic_expand(
- const char *srcp,
- NCURSES_BOOL tic_format,
+ const char *srcp,
+ NCURSES_BOOL tic_format,
int numbers)
{ return(*(char **)0); }
@@ -92,28 +92,28 @@ char *_nc_tic_expand(
#undef _nc_check_termtype2
void (*_nc_check_termtype2)(
- TERMTYPE2 *p1,
+ TERMTYPE *p1,
NCURSES_BOOL p2);
#undef _nc_entry_match
NCURSES_BOOL _nc_entry_match(
- char *n1,
+ char *n1,
char *n2)
{ return(*(NCURSES_BOOL *)0); }
#undef _nc_read_entry_source
void _nc_read_entry_source(
- FILE *fp,
- char *buf,
- int literal,
- NCURSES_BOOL silent,
+ FILE *fp,
+ char *buf,
+ int literal,
+ NCURSES_BOOL silent,
NCURSES_BOOL (*hook)(
ENTRY *p1))
{ /* void */ }
#undef _nc_resolve_uses2
int _nc_resolve_uses2(
- NCURSES_BOOL fullresolve,
+ NCURSES_BOOL fullresolve,
NCURSES_BOOL literal)
{ return(*(int *)0); }
@@ -138,7 +138,7 @@ NCURSES_BOOL _nc_disable_period;
#undef _nc_reset_input
void _nc_reset_input(
- FILE *fp,
+ FILE *fp,
char *buf)
{ /* void */ }
@@ -149,8 +149,8 @@ int _nc_get_token(
#undef _nc_trans_string
int _nc_trans_string(
- char *ptr,
- char *last)
+ char *ptr,
+ const char *const last)
{ return(*(int *)0); }
#undef _nc_push_token
@@ -167,14 +167,14 @@ void _nc_panic_mode(
#undef _nc_parse_entry
int _nc_parse_entry(
- ENTRY *entryp,
- int literal,
+ ENTRY *entryp,
+ int literal,
NCURSES_BOOL silent)
{ return(*(int *)0); }
#undef _nc_capcmp
int _nc_capcmp(
- const char *s,
+ const char *s,
const char *t)
{ return(*(int *)0); }
@@ -187,14 +187,14 @@ void _nc_set_writedir(
#undef _nc_write_entry
void _nc_write_entry(
- TERMTYPE2 *const tp)
+ TERMTYPE *const tp)
{ /* void */ }
#undef _nc_write_object
int _nc_write_object(
- TERMTYPE2 *tp,
- char *buffer,
- unsigned *offset,
+ TERMTYPE *tp,
+ char *buffer,
+ unsigned *offset,
unsigned limit)
{ return(*(int *)0); }
diff --git a/ncurses/llib-ltict b/ncurses/llib-ltict
index e1625df943e3..db9090b9125b 100644
--- a/ncurses/llib-ltict
+++ b/ncurses/llib-ltict
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020-2021,2023 Thomas E. Dickey *
* Copyright 2013-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -48,18 +48,18 @@ ENTRY *_nc_copy_entry(
#undef _nc_save_str
char *_nc_save_str(
- const char *const string)
+ const char *string)
{ return(*(char **)0); }
#undef _nc_wrap_entry
void _nc_wrap_entry(
- ENTRY *const ep,
+ ENTRY *const ep,
NCURSES_BOOL copy_strings)
{ /* void */ }
#undef _nc_merge_entry
void _nc_merge_entry(
- ENTRY *const target,
+ ENTRY *const target,
ENTRY *const source)
{ /* void */ }
@@ -67,15 +67,15 @@ void _nc_merge_entry(
#undef _nc_captoinfo
char *_nc_captoinfo(
- const char *cap,
- const char *s,
+ const char *cap,
+ const char *s,
int const parameterized)
{ return(*(char **)0); }
#undef _nc_infotocap
char *_nc_infotocap(
- const char *cap,
- const char *str,
+ const char *cap,
+ const char *str,
int const parameterized)
{ return(*(char **)0); }
@@ -83,8 +83,8 @@ char *_nc_infotocap(
#undef _nc_tic_expand
char *_nc_tic_expand(
- const char *srcp,
- NCURSES_BOOL tic_format,
+ const char *srcp,
+ NCURSES_BOOL tic_format,
int numbers)
{ return(*(char **)0); }
@@ -92,28 +92,28 @@ char *_nc_tic_expand(
#undef _nc_check_termtype2
void (*_nc_check_termtype2)(
- TERMTYPE2 *p1,
+ TERMTYPE *p1,
NCURSES_BOOL p2);
#undef _nc_entry_match
NCURSES_BOOL _nc_entry_match(
- char *n1,
+ char *n1,
char *n2)
{ return(*(NCURSES_BOOL *)0); }
#undef _nc_read_entry_source
void _nc_read_entry_source(
- FILE *fp,
- char *buf,
- int literal,
- NCURSES_BOOL silent,
+ FILE *fp,
+ char *buf,
+ int literal,
+ NCURSES_BOOL silent,
NCURSES_BOOL (*hook)(
ENTRY *p1))
{ /* void */ }
#undef _nc_resolve_uses2
int _nc_resolve_uses2(
- NCURSES_BOOL fullresolve,
+ NCURSES_BOOL fullresolve,
NCURSES_BOOL literal)
{ return(*(int *)0); }
@@ -138,7 +138,7 @@ NCURSES_BOOL _nc_disable_period;
#undef _nc_reset_input
void _nc_reset_input(
- FILE *fp,
+ FILE *fp,
char *buf)
{ /* void */ }
@@ -149,8 +149,8 @@ int _nc_get_token(
#undef _nc_trans_string
int _nc_trans_string(
- char *ptr,
- char *last)
+ char *ptr,
+ const char *const last)
{ return(*(int *)0); }
#undef _nc_push_token
@@ -167,14 +167,14 @@ void _nc_panic_mode(
#undef _nc_parse_entry
int _nc_parse_entry(
- ENTRY *entryp,
- int literal,
+ ENTRY *entryp,
+ int literal,
NCURSES_BOOL silent)
{ return(*(int *)0); }
#undef _nc_capcmp
int _nc_capcmp(
- const char *s,
+ const char *s,
const char *t)
{ return(*(int *)0); }
@@ -187,14 +187,14 @@ void _nc_set_writedir(
#undef _nc_write_entry
void _nc_write_entry(
- TERMTYPE2 *const tp)
+ TERMTYPE *const tp)
{ /* void */ }
#undef _nc_write_object
int _nc_write_object(
- TERMTYPE2 *tp,
- char *buffer,
- unsigned *offset,
+ TERMTYPE *tp,
+ char *buffer,
+ unsigned *offset,
unsigned limit)
{ return(*(int *)0); }
diff --git a/ncurses/llib-ltictw b/ncurses/llib-ltictw
index 6ea27146dd09..85db89bce08b 100644
--- a/ncurses/llib-ltictw
+++ b/ncurses/llib-ltictw
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020-2021,2023 Thomas E. Dickey *
* Copyright 2012-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -48,18 +48,18 @@ ENTRY *_nc_copy_entry(
#undef _nc_save_str
char *_nc_save_str(
- const char *const string)
+ const char *string)
{ return(*(char **)0); }
#undef _nc_wrap_entry
void _nc_wrap_entry(
- ENTRY *const ep,
+ ENTRY *const ep,
NCURSES_BOOL copy_strings)
{ /* void */ }
#undef _nc_merge_entry
void _nc_merge_entry(
- ENTRY *const target,
+ ENTRY *const target,
ENTRY *const source)
{ /* void */ }
@@ -67,15 +67,15 @@ void _nc_merge_entry(
#undef _nc_captoinfo
char *_nc_captoinfo(
- const char *cap,
- const char *s,
+ const char *cap,
+ const char *s,
int const parameterized)
{ return(*(char **)0); }
#undef _nc_infotocap
char *_nc_infotocap(
- const char *cap,
- const char *str,
+ const char *cap,
+ const char *str,
int const parameterized)
{ return(*(char **)0); }
@@ -83,8 +83,8 @@ char *_nc_infotocap(
#undef _nc_tic_expand
char *_nc_tic_expand(
- const char *srcp,
- NCURSES_BOOL tic_format,
+ const char *srcp,
+ NCURSES_BOOL tic_format,
int numbers)
{ return(*(char **)0); }
@@ -92,28 +92,28 @@ char *_nc_tic_expand(
#undef _nc_check_termtype2
void (*_nc_check_termtype2)(
- TERMTYPE2 *p1,
+ TERMTYPE2 *p1,
NCURSES_BOOL p2);
#undef _nc_entry_match
NCURSES_BOOL _nc_entry_match(
- char *n1,
+ char *n1,
char *n2)
{ return(*(NCURSES_BOOL *)0); }
#undef _nc_read_entry_source
void _nc_read_entry_source(
- FILE *fp,
- char *buf,
- int literal,
- NCURSES_BOOL silent,
+ FILE *fp,
+ char *buf,
+ int literal,
+ NCURSES_BOOL silent,
NCURSES_BOOL (*hook)(
ENTRY *p1))
{ /* void */ }
#undef _nc_resolve_uses2
int _nc_resolve_uses2(
- NCURSES_BOOL fullresolve,
+ NCURSES_BOOL fullresolve,
NCURSES_BOOL literal)
{ return(*(int *)0); }
@@ -138,7 +138,7 @@ NCURSES_BOOL _nc_disable_period;
#undef _nc_reset_input
void _nc_reset_input(
- FILE *fp,
+ FILE *fp,
char *buf)
{ /* void */ }
@@ -149,8 +149,8 @@ int _nc_get_token(
#undef _nc_trans_string
int _nc_trans_string(
- char *ptr,
- char *last)
+ char *ptr,
+ const char *const last)
{ return(*(int *)0); }
#undef _nc_push_token
@@ -167,14 +167,14 @@ void _nc_panic_mode(
#undef _nc_parse_entry
int _nc_parse_entry(
- ENTRY *entryp,
- int literal,
+ ENTRY *entryp,
+ int literal,
NCURSES_BOOL silent)
{ return(*(int *)0); }
#undef _nc_capcmp
int _nc_capcmp(
- const char *s,
+ const char *s,
const char *t)
{ return(*(int *)0); }
@@ -192,9 +192,9 @@ void _nc_write_entry(
#undef _nc_write_object
int _nc_write_object(
- TERMTYPE2 *tp,
- char *buffer,
- unsigned *offset,
+ TERMTYPE2 *tp,
+ char *buffer,
+ unsigned *offset,
unsigned limit)
{ return(*(int *)0); }
diff --git a/ncurses/llib-lticw b/ncurses/llib-lticw
index 6ea27146dd09..85db89bce08b 100644
--- a/ncurses/llib-lticw
+++ b/ncurses/llib-lticw
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020-2021,2023 Thomas E. Dickey *
* Copyright 2012-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -48,18 +48,18 @@ ENTRY *_nc_copy_entry(
#undef _nc_save_str
char *_nc_save_str(
- const char *const string)
+ const char *string)
{ return(*(char **)0); }
#undef _nc_wrap_entry
void _nc_wrap_entry(
- ENTRY *const ep,
+ ENTRY *const ep,
NCURSES_BOOL copy_strings)
{ /* void */ }
#undef _nc_merge_entry
void _nc_merge_entry(
- ENTRY *const target,
+ ENTRY *const target,
ENTRY *const source)
{ /* void */ }
@@ -67,15 +67,15 @@ void _nc_merge_entry(
#undef _nc_captoinfo
char *_nc_captoinfo(
- const char *cap,
- const char *s,
+ const char *cap,
+ const char *s,
int const parameterized)
{ return(*(char **)0); }
#undef _nc_infotocap
char *_nc_infotocap(
- const char *cap,
- const char *str,
+ const char *cap,
+ const char *str,
int const parameterized)
{ return(*(char **)0); }
@@ -83,8 +83,8 @@ char *_nc_infotocap(
#undef _nc_tic_expand
char *_nc_tic_expand(
- const char *srcp,
- NCURSES_BOOL tic_format,
+ const char *srcp,
+ NCURSES_BOOL tic_format,
int numbers)
{ return(*(char **)0); }
@@ -92,28 +92,28 @@ char *_nc_tic_expand(
#undef _nc_check_termtype2
void (*_nc_check_termtype2)(
- TERMTYPE2 *p1,
+ TERMTYPE2 *p1,
NCURSES_BOOL p2);
#undef _nc_entry_match
NCURSES_BOOL _nc_entry_match(
- char *n1,
+ char *n1,
char *n2)
{ return(*(NCURSES_BOOL *)0); }
#undef _nc_read_entry_source
void _nc_read_entry_source(
- FILE *fp,
- char *buf,
- int literal,
- NCURSES_BOOL silent,
+ FILE *fp,
+ char *buf,
+ int literal,
+ NCURSES_BOOL silent,
NCURSES_BOOL (*hook)(
ENTRY *p1))
{ /* void */ }
#undef _nc_resolve_uses2
int _nc_resolve_uses2(
- NCURSES_BOOL fullresolve,
+ NCURSES_BOOL fullresolve,
NCURSES_BOOL literal)
{ return(*(int *)0); }
@@ -138,7 +138,7 @@ NCURSES_BOOL _nc_disable_period;
#undef _nc_reset_input
void _nc_reset_input(
- FILE *fp,
+ FILE *fp,
char *buf)
{ /* void */ }
@@ -149,8 +149,8 @@ int _nc_get_token(
#undef _nc_trans_string
int _nc_trans_string(
- char *ptr,
- char *last)
+ char *ptr,
+ const char *const last)
{ return(*(int *)0); }
#undef _nc_push_token
@@ -167,14 +167,14 @@ void _nc_panic_mode(
#undef _nc_parse_entry
int _nc_parse_entry(
- ENTRY *entryp,
- int literal,
+ ENTRY *entryp,
+ int literal,
NCURSES_BOOL silent)
{ return(*(int *)0); }
#undef _nc_capcmp
int _nc_capcmp(
- const char *s,
+ const char *s,
const char *t)
{ return(*(int *)0); }
@@ -192,9 +192,9 @@ void _nc_write_entry(
#undef _nc_write_object
int _nc_write_object(
- TERMTYPE2 *tp,
- char *buffer,
- unsigned *offset,
+ TERMTYPE2 *tp,
+ char *buffer,
+ unsigned *offset,
unsigned limit)
{ return(*(int *)0); }
diff --git a/ncurses/llib-ltinfo b/ncurses/llib-ltinfo
index b2160d4f66b7..5cfa111a236d 100644
--- a/ncurses/llib-ltinfo
+++ b/ncurses/llib-ltinfo
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2022,2023 Thomas E. Dickey *
* Copyright 2012-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -58,7 +58,7 @@ char *_nc_basename(
#undef _nc_access
int _nc_access(
- const char *path,
+ const char *path,
int mode)
{ return(*(int *)0); }
@@ -76,12 +76,25 @@ NCURSES_BOOL _nc_is_file_path(
int _nc_env_access(void)
{ return(*(int *)0); }
+#undef _nc_safe_fopen
+FILE *_nc_safe_fopen(
+ const char *path,
+ const char *mode)
+ { return(*(FILE **)0); }
+
+#undef _nc_safe_open3
+int _nc_safe_open3(
+ const char *path,
+ int flags,
+ mode_t mode)
+ { return(*(int *)0); }
+
/* ./tinfo/add_tries.c */
#undef _nc_add_to_try
int _nc_add_to_try(
- TRIES **tree,
- const char *str,
+ TRIES **tree,
+ const char *str,
unsigned code)
{ return(*(int *)0); }
@@ -89,13 +102,13 @@ int _nc_add_to_try(
#undef _nc_align_termtype
void _nc_align_termtype(
- TERMTYPE2 *to,
- TERMTYPE2 *from)
+ TERMTYPE *to,
+ TERMTYPE *from)
{ /* void */ }
#undef _nc_copy_termtype
void _nc_copy_termtype(
- TERMTYPE *dst,
+ TERMTYPE *dst,
const TERMTYPE *src)
{ /* void */ }
@@ -160,19 +173,19 @@ void _nc_get_type(
#undef _nc_warning
void _nc_warning(
- const char *const fmt,
+ const char *const fmt,
...)
{ /* void */ }
#undef _nc_err_abort
void _nc_err_abort(
- const char *const fmt,
+ const char *const fmt,
...)
{ /* void */ }
#undef _nc_syserr_abort
void _nc_syserr_abort(
- const char *const fmt,
+ const char *const fmt,
...)
{ /* void */ }
@@ -180,14 +193,14 @@ void _nc_syserr_abort(
#undef _nc_find_entry
struct name_table_entry const *_nc_find_entry(
- const char *string,
+ const char *string,
const HashValue *hash_table)
{ return(*(struct name_table_entry const **)0); }
#undef _nc_find_type_entry
struct name_table_entry const *_nc_find_type_entry(
- const char *string,
- int type,
+ const char *string,
+ int type,
NCURSES_BOOL termcap)
{ return(*(struct name_table_entry const **)0); }
@@ -224,13 +237,13 @@ void _nc_last_db(void)
#undef _nc_next_db
const char *_nc_next_db(
- DBDIRS *state,
+ DBDIRS *state,
int *offset)
{ return(*(const char **)0); }
#undef _nc_first_db
void _nc_first_db(
- DBDIRS *state,
+ DBDIRS *state,
int *offset)
{ /* void */ }
@@ -238,7 +251,7 @@ void _nc_first_db(
#undef _nc_doalloc
void *_nc_doalloc(
- void *oldp,
+ void *oldp,
size_t amount)
{ return(*(void **)0); }
@@ -251,8 +264,8 @@ ENTRY *_nc_tail;
#undef _nc_free_entry
void _nc_free_entry(
- ENTRY *headp,
- TERMTYPE2 *tterm)
+ ENTRY *headp,
+ TERMTYPE *tterm)
{ /* void */ }
#undef _nc_free_entries
@@ -272,9 +285,9 @@ void exit_terminfo(
/* ./fallback.c */
#undef _nc_fallback
-const TERMTYPE2 *_nc_fallback(
+const TERMTYPE *_nc_fallback(
const char *name)
- { return(*(const TERMTYPE2 **)0); }
+ { return(*(const TERMTYPE **)0); }
/* ./tinfo/free_ttype.c */
@@ -283,6 +296,11 @@ void _nc_free_termtype(
TERMTYPE *ptr)
{ /* void */ }
+#undef _nc_free_termtype1
+void _nc_free_termtype1(
+ TERMTYPE *ptr)
+ { /* void */ }
+
#undef _nc_user_definable
NCURSES_BOOL _nc_user_definable;
@@ -300,7 +318,7 @@ int _nc_getenv_num(
#undef _nc_setenv_num
void _nc_setenv_num(
- const char *name,
+ const char *name,
int value)
{ /* void */ }
@@ -334,8 +352,8 @@ void _nc_init_acs(void)
/* ./tinfo/lib_baudrate.c */
struct speed {
- int given_speed;
- int actual_speed;
+ int given_speed;
+ int actual_speed;
};
#undef _nc_baudrate
@@ -364,7 +382,7 @@ TERMINAL *cur_term;
#undef set_curterm_sp
TERMINAL *set_curterm_sp(
- SCREEN *sp,
+ SCREEN *sp,
TERMINAL *termp)
{ return(*(TERMINAL **)0); }
@@ -375,7 +393,7 @@ TERMINAL *set_curterm(
#undef del_curterm_sp
int del_curterm_sp(
- SCREEN *sp,
+ SCREEN *sp,
TERMINAL *termp)
{ return(*(int *)0); }
@@ -461,7 +479,7 @@ struct kn { short offset; int code; };
#undef keyname_sp
const char *keyname_sp(
- SCREEN *sp,
+ SCREEN *sp,
int c)
{ return(*(const char **)0); }
@@ -485,7 +503,7 @@ char *longname(void)
#undef napms_sp
int napms_sp(
- SCREEN *sp,
+ SCREEN *sp,
int ms)
{ return(*(int *)0); }
@@ -498,19 +516,19 @@ int napms(
#undef idlok
int idlok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef idcok
void idcok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ /* void */ }
#undef halfdelay_sp
int halfdelay_sp(
- SCREEN *sp,
+ SCREEN *sp,
int t)
{ return(*(int *)0); }
@@ -521,37 +539,37 @@ int halfdelay(
#undef nodelay
int nodelay(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef notimeout
int notimeout(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL f)
{ return(*(int *)0); }
#undef wtimeout
void wtimeout(
- WINDOW *win,
+ WINDOW *win,
int delay)
{ /* void */ }
#undef keypad
int keypad(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef meta
int meta(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef curs_set_sp
int curs_set_sp(
- SCREEN *sp,
+ SCREEN *sp,
int vis)
{ return(*(int *)0); }
@@ -562,7 +580,7 @@ int curs_set(
#undef typeahead_sp
int typeahead_sp(
- SCREEN *sp,
+ SCREEN *sp,
int fd)
{ return(*(int *)0); }
@@ -573,7 +591,7 @@ int typeahead(
#undef has_key_sp
int has_key_sp(
- SCREEN *sp,
+ SCREEN *sp,
int keycode)
{ return(*(int *)0); }
@@ -584,14 +602,14 @@ int has_key(
#undef _nc_putp_flush_sp
int _nc_putp_flush_sp(
- SCREEN *sp,
- const char *name,
+ SCREEN *sp,
+ const char *name,
const char *value)
{ return(*(int *)0); }
#undef _nc_keypad
int _nc_keypad(
- SCREEN *sp,
+ SCREEN *sp,
int flag)
{ return(*(int *)0); }
@@ -653,17 +671,53 @@ void noqiflush(void)
#undef intrflush_sp
int intrflush_sp(
- SCREEN *sp,
- WINDOW *win,
+ SCREEN *sp,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef intrflush
int intrflush(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
+#undef is_nl_sp
+int is_nl_sp(
+ SCREEN *sp)
+ { return(*(int *)0); }
+
+#undef is_raw_sp
+int is_raw_sp(
+ SCREEN *sp)
+ { return(*(int *)0); }
+
+#undef is_cbreak_sp
+int is_cbreak_sp(
+ SCREEN *sp)
+ { return(*(int *)0); }
+
+#undef is_echo_sp
+int is_echo_sp(
+ SCREEN *sp)
+ { return(*(int *)0); }
+
+#undef is_nl
+int is_nl(void)
+ { return(*(int *)0); }
+
+#undef is_raw
+int is_raw(void)
+ { return(*(int *)0); }
+
+#undef is_cbreak
+int is_cbreak(void)
+ { return(*(int *)0); }
+
+#undef is_echo
+int is_echo(void)
+ { return(*(int *)0); }
+
/* ./tinfo/lib_setup.c */
#undef ttytype
@@ -677,7 +731,7 @@ int TABSIZE;
#undef set_tabsize_sp
int set_tabsize_sp(
- SCREEN *sp,
+ SCREEN *sp,
int value)
{ return(*(int *)0); }
@@ -693,13 +747,13 @@ int _nc_handle_sigwinch(
#undef use_env_sp
void use_env_sp(
- SCREEN *sp,
+ SCREEN *sp,
NCURSES_BOOL f)
{ /* void */ }
#undef use_tioctl_sp
void use_tioctl_sp(
- SCREEN *sp,
+ SCREEN *sp,
NCURSES_BOOL f)
{ /* void */ }
@@ -715,8 +769,8 @@ void use_tioctl(
#undef _nc_get_screensize
void _nc_get_screensize(
- SCREEN *sp,
- int *linep,
+ SCREEN *sp,
+ int *linep,
int *colp)
{ /* void */ }
@@ -727,13 +781,13 @@ void _nc_update_screensize(
#undef _nc_setup_tinfo
int _nc_setup_tinfo(
- const char *const tn,
- TERMTYPE2 *const tp)
+ const char *const tn,
+ TERMTYPE *const tp)
{ return(*(int *)0); }
#undef _nc_tinfo_cmdch
void _nc_tinfo_cmdch(
- TERMINAL *termp,
+ TERMINAL *termp,
int proto)
{ /* void */ }
@@ -752,9 +806,9 @@ int _nc_locale_breaks_acs(
#undef _nc_setupterm
int _nc_setupterm(
- const char *tname,
- int Filedes,
- int *errret,
+ const char *tname,
+ int Filedes,
+ int *errret,
int reuse)
{ return(*(int *)0); }
@@ -764,8 +818,8 @@ SCREEN *new_prescr(void)
#undef setupterm
int setupterm(
- const char *tname,
- int Filedes,
+ const char *tname,
+ int Filedes,
int *errret)
{ return(*(int *)0); }
@@ -778,20 +832,20 @@ char *BC;
#undef tgetent_sp
int tgetent_sp(
- SCREEN *sp,
- char *bufp,
+ SCREEN *sp,
+ char *bufp,
const char *name)
{ return(*(int *)0); }
#undef tgetent
int tgetent(
- char *bufp,
+ char *bufp,
const char *name)
{ return(*(int *)0); }
#undef tgetflag_sp
int tgetflag_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *id)
{ return(*(int *)0); }
@@ -802,7 +856,7 @@ int tgetflag(
#undef tgetnum_sp
int tgetnum_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *id)
{ return(*(int *)0); }
@@ -813,14 +867,14 @@ int tgetnum(
#undef tgetstr_sp
char *tgetstr_sp(
- SCREEN *sp,
- const char *id,
+ SCREEN *sp,
+ const char *id,
char **area)
{ return(*(char **)0); }
#undef tgetstr
char *tgetstr(
- const char *id,
+ const char *id,
char **area)
{ return(*(char **)0); }
@@ -839,8 +893,8 @@ char *termname(void)
#undef tgoto
char *tgoto(
- const char *string,
- int x,
+ const char *string,
+ int x,
int y)
{ return(*(char **)0); }
@@ -848,7 +902,7 @@ char *tgoto(
#undef tigetflag_sp
int tigetflag_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *str)
{ return(*(int *)0); }
@@ -859,7 +913,7 @@ int tigetflag(
#undef tigetnum_sp
int tigetnum_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *str)
{ return(*(int *)0); }
@@ -870,7 +924,7 @@ int tigetnum(
#undef tigetstr_sp
char *tigetstr_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *str)
{ return(*(char **)0); }
@@ -884,32 +938,58 @@ char *tigetstr(
#undef _nc_tparm_err
int _nc_tparm_err;
+#undef _nc_free_tparm
+void _nc_free_tparm(
+ TERMINAL *termp)
+ { /* void */ }
+
#undef _nc_tparm_analyze
int _nc_tparm_analyze(
- const char *string,
- char *p_is_s[9],
+ TERMINAL *term,
+ const char *string,
+ char **p_is_s,
int *_nc_popcount)
{ return(*(int *)0); }
#undef tparm
char *tparm(
- const char *string,
+ const char *string,
...)
{ return(*(char **)0); }
#undef tiparm
char *tiparm(
- const char *string,
+ const char *string,
...)
{ return(*(char **)0); }
+#undef tiparm_s
+char *tiparm_s(
+ int num_expected,
+ int tparm_type,
+ const char *string,
+ ...)
+ { return(*(char **)0); }
+
+#undef tiscan_s
+int tiscan_s(
+ int *num_expected,
+ int *tparm_type,
+ const char *string)
+ { return(*(int *)0); }
+
#undef _nc_tiparm
char *_nc_tiparm(
- int expected,
- const char *string,
+ int expected,
+ const char *string,
...)
{ return(*(char **)0); }
+#undef _nc_reset_tparm
+void _nc_reset_tparm(
+ TERMINAL *term)
+ { /* void */ }
+
/* ./tinfo/lib_tputs.c */
#undef PC
@@ -926,7 +1006,7 @@ void _nc_set_no_padding(
#undef delay_output_sp
int delay_output_sp(
- SCREEN *sp,
+ SCREEN *sp,
int ms)
{ return(*(int *)0); }
@@ -946,7 +1026,7 @@ void _nc_flush(void)
#undef _nc_outch_sp
int _nc_outch_sp(
- SCREEN *sp,
+ SCREEN *sp,
int ch)
{ return(*(int *)0); }
@@ -957,7 +1037,7 @@ int _nc_outch(
#undef _nc_putchar_sp
int _nc_putchar_sp(
- SCREEN *sp,
+ SCREEN *sp,
int ch)
{ return(*(int *)0); }
@@ -968,7 +1048,7 @@ int _nc_putchar(
#undef putp_sp
int putp_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *string)
{ return(*(int *)0); }
@@ -979,35 +1059,35 @@ int putp(
#undef _nc_putp_sp
int _nc_putp_sp(
- SCREEN *sp,
- const char *name,
+ SCREEN *sp,
+ const char *name,
const char *string)
{ return(*(int *)0); }
#undef _nc_putp
int _nc_putp(
- const char *name,
+ const char *name,
const char *string)
{ return(*(int *)0); }
#undef tputs_sp
int tputs_sp(
- SCREEN *sp,
- const char *string,
- int affcnt,
+ SCREEN *sp,
+ const char *string,
+ int affcnt,
NCURSES_OUTC_sp outc)
{ return(*(int *)0); }
#undef _nc_outc_wrapper
int _nc_outc_wrapper(
- SCREEN *sp,
+ SCREEN *sp,
int c)
{ return(*(int *)0); }
#undef tputs
int tputs(
- const char *string,
- int affcnt,
+ const char *string,
+ int affcnt,
int (*outc)(
int p1))
{ return(*(int *)0); }
@@ -1033,7 +1113,7 @@ void trace(
#undef _tracef
void _tracef(
- const char *fmt,
+ const char *fmt,
...)
{ /* void */ }
@@ -1089,8 +1169,8 @@ WINDOW *_nc_retrace_win(
#undef _nc_fmt_funcptr
char *_nc_fmt_funcptr(
- char *target,
- const char *source,
+ char *target,
+ const char *source,
size_t size)
{ return(*(char **)0); }
@@ -1098,7 +1178,7 @@ char *_nc_fmt_funcptr(
#undef _traceattr2
char *_traceattr2(
- int bufnum,
+ int bufnum,
chtype newmode)
{ return(*(char **)0); }
@@ -1119,13 +1199,13 @@ attr_t _nc_retrace_attr_t(
#undef _nc_altcharset_name
const char *_nc_altcharset_name(
- attr_t attr,
+ attr_t attr,
chtype ch)
{ return(*(const char **)0); }
#undef _tracechtype2
char *_tracechtype2(
- int bufnum,
+ int bufnum,
chtype ch)
{ return(*(char **)0); }
@@ -1143,7 +1223,7 @@ chtype _nc_retrace_chtype(
#undef _nc_trace_ttymode
char *_nc_trace_ttymode(
- struct termios *tty)
+ const struct termios *tty)
{ return(*(char **)0); }
#undef _nc_tracebits
@@ -1154,7 +1234,7 @@ char *_nc_tracebits(void)
#undef _nc_tracechar
char *_nc_tracechar(
- SCREEN *sp,
+ SCREEN *sp,
int ch)
{ return(*(char **)0); }
@@ -1167,7 +1247,7 @@ char *_tracechar(
#undef _nc_get_tty_mode_sp
int _nc_get_tty_mode_sp(
- SCREEN *sp,
+ SCREEN *sp,
struct termios *buf)
{ return(*(int *)0); }
@@ -1178,7 +1258,7 @@ int _nc_get_tty_mode(
#undef _nc_set_tty_mode_sp
int _nc_set_tty_mode_sp(
- SCREEN *sp,
+ SCREEN *sp,
struct termios *buf)
{ return(*(int *)0); }
@@ -1245,9 +1325,9 @@ int resetty(void)
#undef _nc_timed_wait
int _nc_timed_wait(
- SCREEN *sp,
- int mode,
- int milliseconds,
+ SCREEN *sp,
+ int mode,
+ int milliseconds,
int *timeleft)
{ return(*(int *)0); }
@@ -1260,8 +1340,8 @@ char *_nc_first_name(
#undef _nc_name_match
int _nc_name_match(
- const char *const namelst,
- const char *const name,
+ const char *const namelst,
+ const char *const name,
const char *const delim)
{ return(*(int *)0); }
@@ -1284,14 +1364,14 @@ const char *const strfnames[] = {0};
#undef _nc_set_buffer_sp
void _nc_set_buffer_sp(
- SCREEN *sp,
- FILE *ofp,
+ SCREEN *sp,
+ FILE *ofp,
int buffered)
{ /* void */ }
#undef _nc_set_buffer
void _nc_set_buffer(
- FILE *ofp,
+ FILE *ofp,
int buffered)
{ /* void */ }
@@ -1299,27 +1379,27 @@ void _nc_set_buffer(
#undef _nc_init_termtype
void _nc_init_termtype(
- TERMTYPE2 *const tp)
+ TERMTYPE *const tp)
{ /* void */ }
#undef _nc_read_termtype
int _nc_read_termtype(
- TERMTYPE2 *ptr,
- char *buffer,
+ TERMTYPE *ptr,
+ char *buffer,
int limit)
{ return(*(int *)0); }
#undef _nc_read_file_entry
int _nc_read_file_entry(
- const char *const filename,
- TERMTYPE2 *ptr)
+ const char *const filename,
+ TERMTYPE *ptr)
{ return(*(int *)0); }
#undef _nc_read_entry
int _nc_read_entry(
- const char *const name,
- char *const filename,
- TERMTYPE2 *const tp)
+ const char *const name,
+ char *const filename,
+ TERMTYPE *const tp)
{ return(*(int *)0); }
/* ./tinfo/read_termcap.c */
@@ -1332,32 +1412,32 @@ void _nc_read_termcap(void)
#undef _nc_str_init
string_desc *_nc_str_init(
- string_desc *dst,
- char *src,
+ string_desc *dst,
+ char *src,
size_t len)
{ return(*(string_desc **)0); }
#undef _nc_str_null
string_desc *_nc_str_null(
- string_desc *dst,
+ string_desc *dst,
size_t len)
{ return(*(string_desc **)0); }
#undef _nc_str_copy
string_desc *_nc_str_copy(
- string_desc *dst,
- string_desc *src)
+ string_desc *dst,
+ const string_desc *const src)
{ return(*(string_desc **)0); }
#undef _nc_safe_strcat
NCURSES_BOOL _nc_safe_strcat(
- string_desc *dst,
+ string_desc *dst,
const char *src)
{ return(*(NCURSES_BOOL *)0); }
#undef _nc_safe_strcpy
NCURSES_BOOL _nc_safe_strcpy(
- string_desc *dst,
+ string_desc *dst,
const char *src)
{ return(*(NCURSES_BOOL *)0); }
@@ -1365,13 +1445,13 @@ NCURSES_BOOL _nc_safe_strcpy(
#undef _nc_trace_buf
char *_nc_trace_buf(
- int bufnum,
+ int bufnum,
size_t want)
{ return(*(char **)0); }
#undef _nc_trace_bufcat
char *_nc_trace_bufcat(
- int bufnum,
+ int bufnum,
const char *value)
{ return(*(char **)0); }
@@ -1386,21 +1466,21 @@ void _nc_trace_tries(
#undef _nc_expand_try
char *_nc_expand_try(
- TRIES *tree,
- unsigned code,
- int *count,
+ TRIES *tree,
+ unsigned code,
+ int *count,
size_t len)
{ return(*(char **)0); }
#undef _nc_remove_key
int _nc_remove_key(
- TRIES **tree,
+ TRIES **tree,
unsigned code)
{ return(*(int *)0); }
#undef _nc_remove_string
int _nc_remove_string(
- TRIES **tree,
+ TRIES **tree,
const char *string)
{ return(*(int *)0); }
@@ -1408,14 +1488,14 @@ int _nc_remove_string(
#undef _nc_trim_sgr0
char *_nc_trim_sgr0(
- TERMTYPE2 *tp)
+ TERMTYPE *tp)
{ return(*(char **)0); }
/* ./unctrl.c */
#undef unctrl_sp
const char *unctrl_sp(
- SCREEN *sp,
+ SCREEN *sp,
chtype ch)
{ return(*(const char **)0); }
@@ -1428,7 +1508,7 @@ const char *unctrl(
#undef _nc_visbuf2
const char *_nc_visbuf2(
- int bufnum,
+ int bufnum,
const char *buf)
{ return(*(const char **)0); }
@@ -1439,20 +1519,20 @@ const char *_nc_visbuf(
#undef _nc_visbufn
const char *_nc_visbufn(
- const char *buf,
+ const char *buf,
int len)
{ return(*(const char **)0); }
#undef _nc_viscbuf2
const char *_nc_viscbuf2(
- int bufnum,
- const chtype *buf,
+ int bufnum,
+ const chtype *buf,
int len)
{ return(*(const char **)0); }
#undef _nc_viscbuf
const char *_nc_viscbuf(
- const chtype *buf,
+ const chtype *buf,
int len)
{ return(*(const char **)0); }
@@ -1460,14 +1540,14 @@ const char *_nc_viscbuf(
#undef define_key_sp
int define_key_sp(
- SCREEN *sp,
- const char *str,
+ SCREEN *sp,
+ const char *str,
int keycode)
{ return(*(int *)0); }
#undef define_key
int define_key(
- const char *str,
+ const char *str,
int keycode)
{ return(*(int *)0); }
@@ -1481,7 +1561,7 @@ void _nc_hashed_db(void)
#undef key_defined_sp
int key_defined_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *str)
{ return(*(int *)0); }
@@ -1494,14 +1574,14 @@ int key_defined(
#undef keybound_sp
char *keybound_sp(
- SCREEN *sp,
- int code,
+ SCREEN *sp,
+ int code,
int count)
{ return(*(char **)0); }
#undef keybound
char *keybound(
- int code,
+ int code,
int count)
{ return(*(char **)0); }
@@ -1509,14 +1589,14 @@ char *keybound(
#undef keyok_sp
int keyok_sp(
- SCREEN *sp,
- int c,
+ SCREEN *sp,
+ int c,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef keyok
int keyok(
- int c,
+ int c,
NCURSES_BOOL flag)
{ return(*(int *)0); }
diff --git a/ncurses/llib-ltinfot b/ncurses/llib-ltinfot
index 18780beb96b1..94ca9a7f0272 100644
--- a/ncurses/llib-ltinfot
+++ b/ncurses/llib-ltinfot
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2022,2023 Thomas E. Dickey *
* Copyright 2013-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -58,7 +58,7 @@ char *_nc_basename(
#undef _nc_access
int _nc_access(
- const char *path,
+ const char *path,
int mode)
{ return(*(int *)0); }
@@ -76,12 +76,25 @@ NCURSES_BOOL _nc_is_file_path(
int _nc_env_access(void)
{ return(*(int *)0); }
+#undef _nc_safe_fopen
+FILE *_nc_safe_fopen(
+ const char *path,
+ const char *mode)
+ { return(*(FILE **)0); }
+
+#undef _nc_safe_open3
+int _nc_safe_open3(
+ const char *path,
+ int flags,
+ mode_t mode)
+ { return(*(int *)0); }
+
/* ./tinfo/add_tries.c */
#undef _nc_add_to_try
int _nc_add_to_try(
- TRIES **tree,
- const char *str,
+ TRIES **tree,
+ const char *str,
unsigned code)
{ return(*(int *)0); }
@@ -89,13 +102,13 @@ int _nc_add_to_try(
#undef _nc_align_termtype
void _nc_align_termtype(
- TERMTYPE2 *to,
- TERMTYPE2 *from)
+ TERMTYPE *to,
+ TERMTYPE *from)
{ /* void */ }
#undef _nc_copy_termtype
void _nc_copy_termtype(
- TERMTYPE *dst,
+ TERMTYPE *dst,
const TERMTYPE *src)
{ /* void */ }
@@ -165,19 +178,19 @@ void _nc_get_type(
#undef _nc_warning
void _nc_warning(
- const char *const fmt,
+ const char *const fmt,
...)
{ /* void */ }
#undef _nc_err_abort
void _nc_err_abort(
- const char *const fmt,
+ const char *const fmt,
...)
{ /* void */ }
#undef _nc_syserr_abort
void _nc_syserr_abort(
- const char *const fmt,
+ const char *const fmt,
...)
{ /* void */ }
@@ -185,14 +198,14 @@ void _nc_syserr_abort(
#undef _nc_find_entry
struct name_table_entry const *_nc_find_entry(
- const char *string,
+ const char *string,
const HashValue *hash_table)
{ return(*(struct name_table_entry const **)0); }
#undef _nc_find_type_entry
struct name_table_entry const *_nc_find_type_entry(
- const char *string,
- int type,
+ const char *string,
+ int type,
NCURSES_BOOL termcap)
{ return(*(struct name_table_entry const **)0); }
@@ -229,13 +242,13 @@ void _nc_last_db(void)
#undef _nc_next_db
const char *_nc_next_db(
- DBDIRS *state,
+ DBDIRS *state,
int *offset)
{ return(*(const char **)0); }
#undef _nc_first_db
void _nc_first_db(
- DBDIRS *state,
+ DBDIRS *state,
int *offset)
{ /* void */ }
@@ -243,7 +256,7 @@ void _nc_first_db(
#undef _nc_doalloc
void *_nc_doalloc(
- void *oldp,
+ void *oldp,
size_t amount)
{ return(*(void **)0); }
@@ -256,8 +269,8 @@ ENTRY *_nc_tail;
#undef _nc_free_entry
void _nc_free_entry(
- ENTRY *headp,
- TERMTYPE2 *tterm)
+ ENTRY *headp,
+ TERMTYPE *tterm)
{ /* void */ }
#undef _nc_free_entries
@@ -277,9 +290,9 @@ void exit_terminfo(
/* ./fallback.c */
#undef _nc_fallback
-const TERMTYPE2 *_nc_fallback(
+const TERMTYPE *_nc_fallback(
const char *name)
- { return(*(const TERMTYPE2 **)0); }
+ { return(*(const TERMTYPE **)0); }
/* ./tinfo/free_ttype.c */
@@ -288,6 +301,11 @@ void _nc_free_termtype(
TERMTYPE *ptr)
{ /* void */ }
+#undef _nc_free_termtype1
+void _nc_free_termtype1(
+ TERMTYPE *ptr)
+ { /* void */ }
+
#undef _nc_user_definable
NCURSES_BOOL _nc_user_definable;
@@ -305,7 +323,7 @@ int _nc_getenv_num(
#undef _nc_setenv_num
void _nc_setenv_num(
- const char *name,
+ const char *name,
int value)
{ /* void */ }
@@ -340,8 +358,8 @@ void _nc_init_acs(void)
/* ./tinfo/lib_baudrate.c */
struct speed {
- int given_speed;
- int actual_speed;
+ int given_speed;
+ int actual_speed;
};
#undef _nc_baudrate
@@ -380,7 +398,7 @@ TERMINAL *_nc_cur_term(void)
#undef set_curterm_sp
TERMINAL *set_curterm_sp(
- SCREEN *sp,
+ SCREEN *sp,
TERMINAL *termp)
{ return(*(TERMINAL **)0); }
@@ -391,7 +409,7 @@ TERMINAL *set_curterm(
#undef del_curterm_sp
int del_curterm_sp(
- SCREEN *sp,
+ SCREEN *sp,
TERMINAL *termp)
{ return(*(int *)0); }
@@ -507,7 +525,7 @@ struct kn { short offset; int code; };
#undef keyname_sp
const char *keyname_sp(
- SCREEN *sp,
+ SCREEN *sp,
int c)
{ return(*(const char **)0); }
@@ -531,7 +549,7 @@ char *longname(void)
#undef napms_sp
int napms_sp(
- SCREEN *sp,
+ SCREEN *sp,
int ms)
{ return(*(int *)0); }
@@ -544,19 +562,19 @@ int napms(
#undef idlok
int idlok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef idcok
void idcok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ /* void */ }
#undef halfdelay_sp
int halfdelay_sp(
- SCREEN *sp,
+ SCREEN *sp,
int t)
{ return(*(int *)0); }
@@ -567,37 +585,37 @@ int halfdelay(
#undef nodelay
int nodelay(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef notimeout
int notimeout(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL f)
{ return(*(int *)0); }
#undef wtimeout
void wtimeout(
- WINDOW *win,
+ WINDOW *win,
int delay)
{ /* void */ }
#undef keypad
int keypad(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef meta
int meta(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef curs_set_sp
int curs_set_sp(
- SCREEN *sp,
+ SCREEN *sp,
int vis)
{ return(*(int *)0); }
@@ -608,7 +626,7 @@ int curs_set(
#undef typeahead_sp
int typeahead_sp(
- SCREEN *sp,
+ SCREEN *sp,
int fd)
{ return(*(int *)0); }
@@ -619,7 +637,7 @@ int typeahead(
#undef has_key_sp
int has_key_sp(
- SCREEN *sp,
+ SCREEN *sp,
int keycode)
{ return(*(int *)0); }
@@ -630,14 +648,14 @@ int has_key(
#undef _nc_putp_flush_sp
int _nc_putp_flush_sp(
- SCREEN *sp,
- const char *name,
+ SCREEN *sp,
+ const char *name,
const char *value)
{ return(*(int *)0); }
#undef _nc_keypad
int _nc_keypad(
- SCREEN *sp,
+ SCREEN *sp,
int flag)
{ return(*(int *)0); }
@@ -699,17 +717,53 @@ void noqiflush(void)
#undef intrflush_sp
int intrflush_sp(
- SCREEN *sp,
- WINDOW *win,
+ SCREEN *sp,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef intrflush
int intrflush(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
+#undef is_nl_sp
+int is_nl_sp(
+ SCREEN *sp)
+ { return(*(int *)0); }
+
+#undef is_raw_sp
+int is_raw_sp(
+ SCREEN *sp)
+ { return(*(int *)0); }
+
+#undef is_cbreak_sp
+int is_cbreak_sp(
+ SCREEN *sp)
+ { return(*(int *)0); }
+
+#undef is_echo_sp
+int is_echo_sp(
+ SCREEN *sp)
+ { return(*(int *)0); }
+
+#undef is_nl
+int is_nl(void)
+ { return(*(int *)0); }
+
+#undef is_raw
+int is_raw(void)
+ { return(*(int *)0); }
+
+#undef is_cbreak
+int is_cbreak(void)
+ { return(*(int *)0); }
+
+#undef is_echo
+int is_echo(void)
+ { return(*(int *)0); }
+
/* ./tinfo/lib_setup.c */
#undef _nc_ttytype
@@ -745,7 +799,7 @@ int _nc_TABSIZE(void)
#undef set_tabsize_sp
int set_tabsize_sp(
- SCREEN *sp,
+ SCREEN *sp,
int value)
{ return(*(int *)0); }
@@ -761,13 +815,13 @@ int _nc_handle_sigwinch(
#undef use_env_sp
void use_env_sp(
- SCREEN *sp,
+ SCREEN *sp,
NCURSES_BOOL f)
{ /* void */ }
#undef use_tioctl_sp
void use_tioctl_sp(
- SCREEN *sp,
+ SCREEN *sp,
NCURSES_BOOL f)
{ /* void */ }
@@ -783,8 +837,8 @@ void use_tioctl(
#undef _nc_get_screensize
void _nc_get_screensize(
- SCREEN *sp,
- int *linep,
+ SCREEN *sp,
+ int *linep,
int *colp)
{ /* void */ }
@@ -795,13 +849,13 @@ void _nc_update_screensize(
#undef _nc_setup_tinfo
int _nc_setup_tinfo(
- const char *const tn,
- TERMTYPE2 *const tp)
+ const char *const tn,
+ TERMTYPE *const tp)
{ return(*(int *)0); }
#undef _nc_tinfo_cmdch
void _nc_tinfo_cmdch(
- TERMINAL *termp,
+ TERMINAL *termp,
int proto)
{ /* void */ }
@@ -820,9 +874,9 @@ int _nc_locale_breaks_acs(
#undef _nc_setupterm
int _nc_setupterm(
- const char *tname,
- int Filedes,
- int *errret,
+ const char *tname,
+ int Filedes,
+ int *errret,
int reuse)
{ return(*(int *)0); }
@@ -840,8 +894,8 @@ SCREEN *new_prescr(void)
#undef setupterm
int setupterm(
- const char *tname,
- int Filedes,
+ const char *tname,
+ int Filedes,
int *errret)
{ return(*(int *)0); }
@@ -854,20 +908,20 @@ char *BC;
#undef tgetent_sp
int tgetent_sp(
- SCREEN *sp,
- char *bufp,
+ SCREEN *sp,
+ char *bufp,
const char *name)
{ return(*(int *)0); }
#undef tgetent
int tgetent(
- char *bufp,
+ char *bufp,
const char *name)
{ return(*(int *)0); }
#undef tgetflag_sp
int tgetflag_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *id)
{ return(*(int *)0); }
@@ -878,7 +932,7 @@ int tgetflag(
#undef tgetnum_sp
int tgetnum_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *id)
{ return(*(int *)0); }
@@ -889,14 +943,14 @@ int tgetnum(
#undef tgetstr_sp
char *tgetstr_sp(
- SCREEN *sp,
- const char *id,
+ SCREEN *sp,
+ const char *id,
char **area)
{ return(*(char **)0); }
#undef tgetstr
char *tgetstr(
- const char *id,
+ const char *id,
char **area)
{ return(*(char **)0); }
@@ -915,8 +969,8 @@ char *termname(void)
#undef tgoto
char *tgoto(
- const char *string,
- int x,
+ const char *string,
+ int x,
int y)
{ return(*(char **)0); }
@@ -924,7 +978,7 @@ char *tgoto(
#undef tigetflag_sp
int tigetflag_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *str)
{ return(*(int *)0); }
@@ -935,7 +989,7 @@ int tigetflag(
#undef tigetnum_sp
int tigetnum_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *str)
{ return(*(int *)0); }
@@ -946,7 +1000,7 @@ int tigetnum(
#undef tigetstr_sp
char *tigetstr_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *str)
{ return(*(char **)0); }
@@ -960,32 +1014,58 @@ char *tigetstr(
#undef _nc_tparm_err
int _nc_tparm_err;
+#undef _nc_free_tparm
+void _nc_free_tparm(
+ TERMINAL *termp)
+ { /* void */ }
+
#undef _nc_tparm_analyze
int _nc_tparm_analyze(
- const char *string,
- char *p_is_s[9],
+ TERMINAL *term,
+ const char *string,
+ char **p_is_s,
int *_nc_popcount)
{ return(*(int *)0); }
#undef tparm
char *tparm(
- const char *string,
+ const char *string,
...)
{ return(*(char **)0); }
#undef tiparm
char *tiparm(
- const char *string,
+ const char *string,
...)
{ return(*(char **)0); }
+#undef tiparm_s
+char *tiparm_s(
+ int num_expected,
+ int tparm_type,
+ const char *string,
+ ...)
+ { return(*(char **)0); }
+
+#undef tiscan_s
+int tiscan_s(
+ int *num_expected,
+ int *tparm_type,
+ const char *string)
+ { return(*(int *)0); }
+
#undef _nc_tiparm
char *_nc_tiparm(
- int expected,
- const char *string,
+ int expected,
+ const char *string,
...)
{ return(*(char **)0); }
+#undef _nc_reset_tparm
+void _nc_reset_tparm(
+ TERMINAL *term)
+ { /* void */ }
+
/* ./tinfo/lib_tputs.c */
#undef PC
@@ -1002,7 +1082,7 @@ void _nc_set_no_padding(
#undef delay_output_sp
int delay_output_sp(
- SCREEN *sp,
+ SCREEN *sp,
int ms)
{ return(*(int *)0); }
@@ -1022,7 +1102,7 @@ void _nc_flush(void)
#undef _nc_outch_sp
int _nc_outch_sp(
- SCREEN *sp,
+ SCREEN *sp,
int ch)
{ return(*(int *)0); }
@@ -1033,7 +1113,7 @@ int _nc_outch(
#undef _nc_putchar_sp
int _nc_putchar_sp(
- SCREEN *sp,
+ SCREEN *sp,
int ch)
{ return(*(int *)0); }
@@ -1044,7 +1124,7 @@ int _nc_putchar(
#undef putp_sp
int putp_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *string)
{ return(*(int *)0); }
@@ -1055,35 +1135,35 @@ int putp(
#undef _nc_putp_sp
int _nc_putp_sp(
- SCREEN *sp,
- const char *name,
+ SCREEN *sp,
+ const char *name,
const char *string)
{ return(*(int *)0); }
#undef _nc_putp
int _nc_putp(
- const char *name,
+ const char *name,
const char *string)
{ return(*(int *)0); }
#undef tputs_sp
int tputs_sp(
- SCREEN *sp,
- const char *string,
- int affcnt,
+ SCREEN *sp,
+ const char *string,
+ int affcnt,
NCURSES_OUTC_sp outc)
{ return(*(int *)0); }
#undef _nc_outc_wrapper
int _nc_outc_wrapper(
- SCREEN *sp,
+ SCREEN *sp,
int c)
{ return(*(int *)0); }
#undef tputs
int tputs(
- const char *string,
- int affcnt,
+ const char *string,
+ int affcnt,
int (*outc)(
int p1))
{ return(*(int *)0); }
@@ -1123,7 +1203,7 @@ void trace(
#undef _tracef
void _tracef(
- const char *fmt,
+ const char *fmt,
...)
{ /* void */ }
@@ -1179,8 +1259,8 @@ WINDOW *_nc_retrace_win(
#undef _nc_fmt_funcptr
char *_nc_fmt_funcptr(
- char *target,
- const char *source,
+ char *target,
+ const char *source,
size_t size)
{ return(*(char **)0); }
@@ -1191,7 +1271,7 @@ int _nc_use_tracef(
#undef _nc_locked_tracef
void _nc_locked_tracef(
- const char *fmt,
+ const char *fmt,
...)
{ /* void */ }
@@ -1199,7 +1279,7 @@ void _nc_locked_tracef(
#undef _traceattr2
char *_traceattr2(
- int bufnum,
+ int bufnum,
chtype newmode)
{ return(*(char **)0); }
@@ -1220,13 +1300,13 @@ attr_t _nc_retrace_attr_t(
#undef _nc_altcharset_name
const char *_nc_altcharset_name(
- attr_t attr,
+ attr_t attr,
chtype ch)
{ return(*(const char **)0); }
#undef _tracechtype2
char *_tracechtype2(
- int bufnum,
+ int bufnum,
chtype ch)
{ return(*(char **)0); }
@@ -1244,7 +1324,7 @@ chtype _nc_retrace_chtype(
#undef _nc_trace_ttymode
char *_nc_trace_ttymode(
- struct termios *tty)
+ const struct termios *tty)
{ return(*(char **)0); }
#undef _nc_tracebits
@@ -1255,7 +1335,7 @@ char *_nc_tracebits(void)
#undef _nc_tracechar
char *_nc_tracechar(
- SCREEN *sp,
+ SCREEN *sp,
int ch)
{ return(*(char **)0); }
@@ -1268,7 +1348,7 @@ char *_tracechar(
#undef _nc_get_tty_mode_sp
int _nc_get_tty_mode_sp(
- SCREEN *sp,
+ SCREEN *sp,
struct termios *buf)
{ return(*(int *)0); }
@@ -1279,7 +1359,7 @@ int _nc_get_tty_mode(
#undef _nc_set_tty_mode_sp
int _nc_set_tty_mode_sp(
- SCREEN *sp,
+ SCREEN *sp,
struct termios *buf)
{ return(*(int *)0); }
@@ -1346,9 +1426,9 @@ int resetty(void)
#undef _nc_timed_wait
int _nc_timed_wait(
- SCREEN *sp,
- int mode,
- int milliseconds,
+ SCREEN *sp,
+ int mode,
+ int milliseconds,
int *timeleft)
{ return(*(int *)0); }
@@ -1361,8 +1441,8 @@ char *_nc_first_name(
#undef _nc_name_match
int _nc_name_match(
- const char *const namelst,
- const char *const name,
+ const char *const namelst,
+ const char *const name,
const char *const delim)
{ return(*(int *)0); }
@@ -1396,14 +1476,14 @@ const char *const *_nc_strfnames(void)
#undef _nc_set_buffer_sp
void _nc_set_buffer_sp(
- SCREEN *sp,
- FILE *ofp,
+ SCREEN *sp,
+ FILE *ofp,
int buffered)
{ /* void */ }
#undef _nc_set_buffer
void _nc_set_buffer(
- FILE *ofp,
+ FILE *ofp,
int buffered)
{ /* void */ }
@@ -1411,27 +1491,27 @@ void _nc_set_buffer(
#undef _nc_init_termtype
void _nc_init_termtype(
- TERMTYPE2 *const tp)
+ TERMTYPE *const tp)
{ /* void */ }
#undef _nc_read_termtype
int _nc_read_termtype(
- TERMTYPE2 *ptr,
- char *buffer,
+ TERMTYPE *ptr,
+ char *buffer,
int limit)
{ return(*(int *)0); }
#undef _nc_read_file_entry
int _nc_read_file_entry(
- const char *const filename,
- TERMTYPE2 *ptr)
+ const char *const filename,
+ TERMTYPE *ptr)
{ return(*(int *)0); }
#undef _nc_read_entry
int _nc_read_entry(
- const char *const name,
- char *const filename,
- TERMTYPE2 *const tp)
+ const char *const name,
+ char *const filename,
+ TERMTYPE *const tp)
{ return(*(int *)0); }
/* ./tinfo/read_termcap.c */
@@ -1444,32 +1524,32 @@ void _nc_read_termcap(void)
#undef _nc_str_init
string_desc *_nc_str_init(
- string_desc *dst,
- char *src,
+ string_desc *dst,
+ char *src,
size_t len)
{ return(*(string_desc **)0); }
#undef _nc_str_null
string_desc *_nc_str_null(
- string_desc *dst,
+ string_desc *dst,
size_t len)
{ return(*(string_desc **)0); }
#undef _nc_str_copy
string_desc *_nc_str_copy(
- string_desc *dst,
- string_desc *src)
+ string_desc *dst,
+ const string_desc *const src)
{ return(*(string_desc **)0); }
#undef _nc_safe_strcat
NCURSES_BOOL _nc_safe_strcat(
- string_desc *dst,
+ string_desc *dst,
const char *src)
{ return(*(NCURSES_BOOL *)0); }
#undef _nc_safe_strcpy
NCURSES_BOOL _nc_safe_strcpy(
- string_desc *dst,
+ string_desc *dst,
const char *src)
{ return(*(NCURSES_BOOL *)0); }
@@ -1477,13 +1557,13 @@ NCURSES_BOOL _nc_safe_strcpy(
#undef _nc_trace_buf
char *_nc_trace_buf(
- int bufnum,
+ int bufnum,
size_t want)
{ return(*(char **)0); }
#undef _nc_trace_bufcat
char *_nc_trace_bufcat(
- int bufnum,
+ int bufnum,
const char *value)
{ return(*(char **)0); }
@@ -1498,21 +1578,21 @@ void _nc_trace_tries(
#undef _nc_expand_try
char *_nc_expand_try(
- TRIES *tree,
- unsigned code,
- int *count,
+ TRIES *tree,
+ unsigned code,
+ int *count,
size_t len)
{ return(*(char **)0); }
#undef _nc_remove_key
int _nc_remove_key(
- TRIES **tree,
+ TRIES **tree,
unsigned code)
{ return(*(int *)0); }
#undef _nc_remove_string
int _nc_remove_string(
- TRIES **tree,
+ TRIES **tree,
const char *string)
{ return(*(int *)0); }
@@ -1520,14 +1600,14 @@ int _nc_remove_string(
#undef _nc_trim_sgr0
char *_nc_trim_sgr0(
- TERMTYPE2 *tp)
+ TERMTYPE *tp)
{ return(*(char **)0); }
/* ./unctrl.c */
#undef unctrl_sp
const char *unctrl_sp(
- SCREEN *sp,
+ SCREEN *sp,
chtype ch)
{ return(*(const char **)0); }
@@ -1540,7 +1620,7 @@ const char *unctrl(
#undef _nc_visbuf2
const char *_nc_visbuf2(
- int bufnum,
+ int bufnum,
const char *buf)
{ return(*(const char **)0); }
@@ -1551,20 +1631,20 @@ const char *_nc_visbuf(
#undef _nc_visbufn
const char *_nc_visbufn(
- const char *buf,
+ const char *buf,
int len)
{ return(*(const char **)0); }
#undef _nc_viscbuf2
const char *_nc_viscbuf2(
- int bufnum,
- const chtype *buf,
+ int bufnum,
+ const chtype *buf,
int len)
{ return(*(const char **)0); }
#undef _nc_viscbuf
const char *_nc_viscbuf(
- const chtype *buf,
+ const chtype *buf,
int len)
{ return(*(const char **)0); }
@@ -1572,14 +1652,14 @@ const char *_nc_viscbuf(
#undef define_key_sp
int define_key_sp(
- SCREEN *sp,
- const char *str,
+ SCREEN *sp,
+ const char *str,
int keycode)
{ return(*(int *)0); }
#undef define_key
int define_key(
- const char *str,
+ const char *str,
int keycode)
{ return(*(int *)0); }
@@ -1593,7 +1673,7 @@ void _nc_hashed_db(void)
#undef key_defined_sp
int key_defined_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *str)
{ return(*(int *)0); }
@@ -1606,14 +1686,14 @@ int key_defined(
#undef keybound_sp
char *keybound_sp(
- SCREEN *sp,
- int code,
+ SCREEN *sp,
+ int code,
int count)
{ return(*(char **)0); }
#undef keybound
char *keybound(
- int code,
+ int code,
int count)
{ return(*(char **)0); }
@@ -1621,14 +1701,14 @@ char *keybound(
#undef keyok_sp
int keyok_sp(
- SCREEN *sp,
- int c,
+ SCREEN *sp,
+ int c,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef keyok
int keyok(
- int c,
+ int c,
NCURSES_BOOL flag)
{ return(*(int *)0); }
diff --git a/ncurses/llib-ltinfotw b/ncurses/llib-ltinfotw
index 0e7e76275885..3b21b8765761 100644
--- a/ncurses/llib-ltinfotw
+++ b/ncurses/llib-ltinfotw
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2022,2023 Thomas E. Dickey *
* Copyright 2012-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -58,7 +58,7 @@ char *_nc_basename(
#undef _nc_access
int _nc_access(
- const char *path,
+ const char *path,
int mode)
{ return(*(int *)0); }
@@ -76,12 +76,25 @@ NCURSES_BOOL _nc_is_file_path(
int _nc_env_access(void)
{ return(*(int *)0); }
+#undef _nc_safe_fopen
+FILE *_nc_safe_fopen(
+ const char *path,
+ const char *mode)
+ { return(*(FILE **)0); }
+
+#undef _nc_safe_open3
+int _nc_safe_open3(
+ const char *path,
+ int flags,
+ mode_t mode)
+ { return(*(int *)0); }
+
/* ./tinfo/add_tries.c */
#undef _nc_add_to_try
int _nc_add_to_try(
- TRIES **tree,
- const char *str,
+ TRIES **tree,
+ const char *str,
unsigned code)
{ return(*(int *)0); }
@@ -89,25 +102,25 @@ int _nc_add_to_try(
#undef _nc_align_termtype
void _nc_align_termtype(
- TERMTYPE2 *to,
+ TERMTYPE2 *to,
TERMTYPE2 *from)
{ /* void */ }
#undef _nc_copy_termtype
void _nc_copy_termtype(
- TERMTYPE *dst,
+ TERMTYPE *dst,
const TERMTYPE *src)
{ /* void */ }
#undef _nc_copy_termtype2
void _nc_copy_termtype2(
- TERMTYPE2 *dst,
+ TERMTYPE2 *dst,
const TERMTYPE2 *src)
{ /* void */ }
#undef _nc_export_termtype2
void _nc_export_termtype2(
- TERMTYPE *dst,
+ TERMTYPE *dst,
const TERMTYPE2 *src)
{ /* void */ }
@@ -177,19 +190,19 @@ void _nc_get_type(
#undef _nc_warning
void _nc_warning(
- const char *const fmt,
+ const char *const fmt,
...)
{ /* void */ }
#undef _nc_err_abort
void _nc_err_abort(
- const char *const fmt,
+ const char *const fmt,
...)
{ /* void */ }
#undef _nc_syserr_abort
void _nc_syserr_abort(
- const char *const fmt,
+ const char *const fmt,
...)
{ /* void */ }
@@ -197,14 +210,14 @@ void _nc_syserr_abort(
#undef _nc_find_entry
struct name_table_entry const *_nc_find_entry(
- const char *string,
+ const char *string,
const HashValue *hash_table)
{ return(*(struct name_table_entry const **)0); }
#undef _nc_find_type_entry
struct name_table_entry const *_nc_find_type_entry(
- const char *string,
- int type,
+ const char *string,
+ int type,
NCURSES_BOOL termcap)
{ return(*(struct name_table_entry const **)0); }
@@ -241,13 +254,13 @@ void _nc_last_db(void)
#undef _nc_next_db
const char *_nc_next_db(
- DBDIRS *state,
+ DBDIRS *state,
int *offset)
{ return(*(const char **)0); }
#undef _nc_first_db
void _nc_first_db(
- DBDIRS *state,
+ DBDIRS *state,
int *offset)
{ /* void */ }
@@ -255,7 +268,7 @@ void _nc_first_db(
#undef _nc_doalloc
void *_nc_doalloc(
- void *oldp,
+ void *oldp,
size_t amount)
{ return(*(void **)0); }
@@ -268,7 +281,7 @@ ENTRY *_nc_tail;
#undef _nc_free_entry
void _nc_free_entry(
- ENTRY *headp,
+ ENTRY *headp,
TERMTYPE2 *tterm)
{ /* void */ }
@@ -305,6 +318,11 @@ void _nc_free_termtype(
TERMTYPE *ptr)
{ /* void */ }
+#undef _nc_free_termtype1
+void _nc_free_termtype1(
+ TERMTYPE *ptr)
+ { /* void */ }
+
#undef _nc_free_termtype2
void _nc_free_termtype2(
TERMTYPE2 *ptr)
@@ -327,7 +345,7 @@ int _nc_getenv_num(
#undef _nc_setenv_num
void _nc_setenv_num(
- const char *name,
+ const char *name,
int value)
{ /* void */ }
@@ -362,8 +380,8 @@ void _nc_init_acs(void)
/* ./tinfo/lib_baudrate.c */
struct speed {
- int given_speed;
- int actual_speed;
+ int given_speed;
+ int actual_speed;
};
#undef _nc_baudrate
@@ -402,7 +420,7 @@ TERMINAL *_nc_cur_term(void)
#undef set_curterm_sp
TERMINAL *set_curterm_sp(
- SCREEN *sp,
+ SCREEN *sp,
TERMINAL *termp)
{ return(*(TERMINAL **)0); }
@@ -413,7 +431,7 @@ TERMINAL *set_curterm(
#undef del_curterm_sp
int del_curterm_sp(
- SCREEN *sp,
+ SCREEN *sp,
TERMINAL *termp)
{ return(*(int *)0); }
@@ -529,7 +547,7 @@ struct kn { short offset; int code; };
#undef keyname_sp
const char *keyname_sp(
- SCREEN *sp,
+ SCREEN *sp,
int c)
{ return(*(const char **)0); }
@@ -553,7 +571,7 @@ char *longname(void)
#undef napms_sp
int napms_sp(
- SCREEN *sp,
+ SCREEN *sp,
int ms)
{ return(*(int *)0); }
@@ -566,19 +584,19 @@ int napms(
#undef idlok
int idlok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef idcok
void idcok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ /* void */ }
#undef halfdelay_sp
int halfdelay_sp(
- SCREEN *sp,
+ SCREEN *sp,
int t)
{ return(*(int *)0); }
@@ -589,37 +607,37 @@ int halfdelay(
#undef nodelay
int nodelay(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef notimeout
int notimeout(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL f)
{ return(*(int *)0); }
#undef wtimeout
void wtimeout(
- WINDOW *win,
+ WINDOW *win,
int delay)
{ /* void */ }
#undef keypad
int keypad(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef meta
int meta(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef curs_set_sp
int curs_set_sp(
- SCREEN *sp,
+ SCREEN *sp,
int vis)
{ return(*(int *)0); }
@@ -630,7 +648,7 @@ int curs_set(
#undef typeahead_sp
int typeahead_sp(
- SCREEN *sp,
+ SCREEN *sp,
int fd)
{ return(*(int *)0); }
@@ -641,7 +659,7 @@ int typeahead(
#undef has_key_sp
int has_key_sp(
- SCREEN *sp,
+ SCREEN *sp,
int keycode)
{ return(*(int *)0); }
@@ -652,14 +670,14 @@ int has_key(
#undef _nc_putp_flush_sp
int _nc_putp_flush_sp(
- SCREEN *sp,
- const char *name,
+ SCREEN *sp,
+ const char *name,
const char *value)
{ return(*(int *)0); }
#undef _nc_keypad
int _nc_keypad(
- SCREEN *sp,
+ SCREEN *sp,
int flag)
{ return(*(int *)0); }
@@ -721,17 +739,53 @@ void noqiflush(void)
#undef intrflush_sp
int intrflush_sp(
- SCREEN *sp,
- WINDOW *win,
+ SCREEN *sp,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef intrflush
int intrflush(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
+#undef is_nl_sp
+int is_nl_sp(
+ SCREEN *sp)
+ { return(*(int *)0); }
+
+#undef is_raw_sp
+int is_raw_sp(
+ SCREEN *sp)
+ { return(*(int *)0); }
+
+#undef is_cbreak_sp
+int is_cbreak_sp(
+ SCREEN *sp)
+ { return(*(int *)0); }
+
+#undef is_echo_sp
+int is_echo_sp(
+ SCREEN *sp)
+ { return(*(int *)0); }
+
+#undef is_nl
+int is_nl(void)
+ { return(*(int *)0); }
+
+#undef is_raw
+int is_raw(void)
+ { return(*(int *)0); }
+
+#undef is_cbreak
+int is_cbreak(void)
+ { return(*(int *)0); }
+
+#undef is_echo
+int is_echo(void)
+ { return(*(int *)0); }
+
/* ./tinfo/lib_setup.c */
#undef _nc_ttytype
@@ -767,7 +821,7 @@ int _nc_TABSIZE(void)
#undef set_tabsize_sp
int set_tabsize_sp(
- SCREEN *sp,
+ SCREEN *sp,
int value)
{ return(*(int *)0); }
@@ -783,13 +837,13 @@ int _nc_handle_sigwinch(
#undef use_env_sp
void use_env_sp(
- SCREEN *sp,
+ SCREEN *sp,
NCURSES_BOOL f)
{ /* void */ }
#undef use_tioctl_sp
void use_tioctl_sp(
- SCREEN *sp,
+ SCREEN *sp,
NCURSES_BOOL f)
{ /* void */ }
@@ -805,8 +859,8 @@ void use_tioctl(
#undef _nc_get_screensize
void _nc_get_screensize(
- SCREEN *sp,
- int *linep,
+ SCREEN *sp,
+ int *linep,
int *colp)
{ /* void */ }
@@ -817,13 +871,13 @@ void _nc_update_screensize(
#undef _nc_setup_tinfo
int _nc_setup_tinfo(
- const char *const tn,
+ const char *const tn,
TERMTYPE2 *const tp)
{ return(*(int *)0); }
#undef _nc_tinfo_cmdch
void _nc_tinfo_cmdch(
- TERMINAL *termp,
+ TERMINAL *termp,
int proto)
{ /* void */ }
@@ -842,9 +896,9 @@ int _nc_locale_breaks_acs(
#undef _nc_setupterm
int _nc_setupterm(
- const char *tname,
- int Filedes,
- int *errret,
+ const char *tname,
+ int Filedes,
+ int *errret,
int reuse)
{ return(*(int *)0); }
@@ -862,8 +916,8 @@ SCREEN *new_prescr(void)
#undef setupterm
int setupterm(
- const char *tname,
- int Filedes,
+ const char *tname,
+ int Filedes,
int *errret)
{ return(*(int *)0); }
@@ -876,20 +930,20 @@ char *BC;
#undef tgetent_sp
int tgetent_sp(
- SCREEN *sp,
- char *bufp,
+ SCREEN *sp,
+ char *bufp,
const char *name)
{ return(*(int *)0); }
#undef tgetent
int tgetent(
- char *bufp,
+ char *bufp,
const char *name)
{ return(*(int *)0); }
#undef tgetflag_sp
int tgetflag_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *id)
{ return(*(int *)0); }
@@ -900,7 +954,7 @@ int tgetflag(
#undef tgetnum_sp
int tgetnum_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *id)
{ return(*(int *)0); }
@@ -911,14 +965,14 @@ int tgetnum(
#undef tgetstr_sp
char *tgetstr_sp(
- SCREEN *sp,
- const char *id,
+ SCREEN *sp,
+ const char *id,
char **area)
{ return(*(char **)0); }
#undef tgetstr
char *tgetstr(
- const char *id,
+ const char *id,
char **area)
{ return(*(char **)0); }
@@ -937,8 +991,8 @@ char *termname(void)
#undef tgoto
char *tgoto(
- const char *string,
- int x,
+ const char *string,
+ int x,
int y)
{ return(*(char **)0); }
@@ -946,7 +1000,7 @@ char *tgoto(
#undef tigetflag_sp
int tigetflag_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *str)
{ return(*(int *)0); }
@@ -957,7 +1011,7 @@ int tigetflag(
#undef tigetnum_sp
int tigetnum_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *str)
{ return(*(int *)0); }
@@ -968,7 +1022,7 @@ int tigetnum(
#undef tigetstr_sp
char *tigetstr_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *str)
{ return(*(char **)0); }
@@ -982,32 +1036,58 @@ char *tigetstr(
#undef _nc_tparm_err
int _nc_tparm_err;
+#undef _nc_free_tparm
+void _nc_free_tparm(
+ TERMINAL *termp)
+ { /* void */ }
+
#undef _nc_tparm_analyze
int _nc_tparm_analyze(
- const char *string,
- char *p_is_s[9],
+ TERMINAL *term,
+ const char *string,
+ char **p_is_s,
int *_nc_popcount)
{ return(*(int *)0); }
#undef tparm
char *tparm(
- const char *string,
+ const char *string,
...)
{ return(*(char **)0); }
#undef tiparm
char *tiparm(
- const char *string,
+ const char *string,
...)
{ return(*(char **)0); }
+#undef tiparm_s
+char *tiparm_s(
+ int num_expected,
+ int tparm_type,
+ const char *string,
+ ...)
+ { return(*(char **)0); }
+
+#undef tiscan_s
+int tiscan_s(
+ int *num_expected,
+ int *tparm_type,
+ const char *string)
+ { return(*(int *)0); }
+
#undef _nc_tiparm
char *_nc_tiparm(
- int expected,
- const char *string,
+ int expected,
+ const char *string,
...)
{ return(*(char **)0); }
+#undef _nc_reset_tparm
+void _nc_reset_tparm(
+ TERMINAL *term)
+ { /* void */ }
+
/* ./tinfo/lib_tputs.c */
#undef PC
@@ -1024,7 +1104,7 @@ void _nc_set_no_padding(
#undef delay_output_sp
int delay_output_sp(
- SCREEN *sp,
+ SCREEN *sp,
int ms)
{ return(*(int *)0); }
@@ -1044,7 +1124,7 @@ void _nc_flush(void)
#undef _nc_outch_sp
int _nc_outch_sp(
- SCREEN *sp,
+ SCREEN *sp,
int ch)
{ return(*(int *)0); }
@@ -1055,7 +1135,7 @@ int _nc_outch(
#undef _nc_putchar_sp
int _nc_putchar_sp(
- SCREEN *sp,
+ SCREEN *sp,
int ch)
{ return(*(int *)0); }
@@ -1066,7 +1146,7 @@ int _nc_putchar(
#undef putp_sp
int putp_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *string)
{ return(*(int *)0); }
@@ -1077,35 +1157,35 @@ int putp(
#undef _nc_putp_sp
int _nc_putp_sp(
- SCREEN *sp,
- const char *name,
+ SCREEN *sp,
+ const char *name,
const char *string)
{ return(*(int *)0); }
#undef _nc_putp
int _nc_putp(
- const char *name,
+ const char *name,
const char *string)
{ return(*(int *)0); }
#undef tputs_sp
int tputs_sp(
- SCREEN *sp,
- const char *string,
- int affcnt,
+ SCREEN *sp,
+ const char *string,
+ int affcnt,
NCURSES_OUTC_sp outc)
{ return(*(int *)0); }
#undef _nc_outc_wrapper
int _nc_outc_wrapper(
- SCREEN *sp,
+ SCREEN *sp,
int c)
{ return(*(int *)0); }
#undef tputs
int tputs(
- const char *string,
- int affcnt,
+ const char *string,
+ int affcnt,
int (*outc)(
int p1))
{ return(*(int *)0); }
@@ -1145,7 +1225,7 @@ void trace(
#undef _tracef
void _tracef(
- const char *fmt,
+ const char *fmt,
...)
{ /* void */ }
@@ -1201,8 +1281,8 @@ WINDOW *_nc_retrace_win(
#undef _nc_fmt_funcptr
char *_nc_fmt_funcptr(
- char *target,
- const char *source,
+ char *target,
+ const char *source,
size_t size)
{ return(*(char **)0); }
@@ -1213,7 +1293,7 @@ int _nc_use_tracef(
#undef _nc_locked_tracef
void _nc_locked_tracef(
- const char *fmt,
+ const char *fmt,
...)
{ /* void */ }
@@ -1221,7 +1301,7 @@ void _nc_locked_tracef(
#undef _traceattr2
char *_traceattr2(
- int bufnum,
+ int bufnum,
chtype newmode)
{ return(*(char **)0); }
@@ -1242,13 +1322,13 @@ attr_t _nc_retrace_attr_t(
#undef _nc_altcharset_name
const char *_nc_altcharset_name(
- attr_t attr,
+ attr_t attr,
chtype ch)
{ return(*(const char **)0); }
#undef _tracechtype2
char *_tracechtype2(
- int bufnum,
+ int bufnum,
chtype ch)
{ return(*(char **)0); }
@@ -1264,7 +1344,7 @@ chtype _nc_retrace_chtype(
#undef _tracecchar_t2
char *_tracecchar_t2(
- int bufnum,
+ int bufnum,
const cchar_t *ch)
{ return(*(char **)0); }
@@ -1277,7 +1357,7 @@ char *_tracecchar_t(
#undef _nc_trace_ttymode
char *_nc_trace_ttymode(
- struct termios *tty)
+ const struct termios *tty)
{ return(*(char **)0); }
#undef _nc_tracebits
@@ -1288,7 +1368,7 @@ char *_nc_tracebits(void)
#undef _nc_tracechar
char *_nc_tracechar(
- SCREEN *sp,
+ SCREEN *sp,
int ch)
{ return(*(char **)0); }
@@ -1301,7 +1381,7 @@ char *_tracechar(
#undef _nc_get_tty_mode_sp
int _nc_get_tty_mode_sp(
- SCREEN *sp,
+ SCREEN *sp,
struct termios *buf)
{ return(*(int *)0); }
@@ -1312,7 +1392,7 @@ int _nc_get_tty_mode(
#undef _nc_set_tty_mode_sp
int _nc_set_tty_mode_sp(
- SCREEN *sp,
+ SCREEN *sp,
struct termios *buf)
{ return(*(int *)0); }
@@ -1379,9 +1459,9 @@ int resetty(void)
#undef _nc_timed_wait
int _nc_timed_wait(
- SCREEN *sp,
- int mode,
- int milliseconds,
+ SCREEN *sp,
+ int mode,
+ int milliseconds,
int *timeleft)
{ return(*(int *)0); }
@@ -1394,8 +1474,8 @@ char *_nc_first_name(
#undef _nc_name_match
int _nc_name_match(
- const char *const namelst,
- const char *const name,
+ const char *const namelst,
+ const char *const name,
const char *const delim)
{ return(*(int *)0); }
@@ -1429,14 +1509,14 @@ const char *const *_nc_strfnames(void)
#undef _nc_set_buffer_sp
void _nc_set_buffer_sp(
- SCREEN *sp,
- FILE *ofp,
+ SCREEN *sp,
+ FILE *ofp,
int buffered)
{ /* void */ }
#undef _nc_set_buffer
void _nc_set_buffer(
- FILE *ofp,
+ FILE *ofp,
int buffered)
{ /* void */ }
@@ -1449,28 +1529,28 @@ void _nc_init_termtype(
#undef _nc_read_termtype
int _nc_read_termtype(
- TERMTYPE2 *ptr,
- char *buffer,
+ TERMTYPE2 *ptr,
+ char *buffer,
int limit)
{ return(*(int *)0); }
#undef _nc_read_file_entry
int _nc_read_file_entry(
- const char *const filename,
+ const char *const filename,
TERMTYPE2 *ptr)
{ return(*(int *)0); }
#undef _nc_read_entry2
int _nc_read_entry2(
- const char *const name,
- char *const filename,
+ const char *const name,
+ char *const filename,
TERMTYPE2 *const tp)
{ return(*(int *)0); }
#undef _nc_read_entry
int _nc_read_entry(
- const char *const name,
- char *const filename,
+ const char *const name,
+ char *const filename,
TERMTYPE *const tp)
{ return(*(int *)0); }
@@ -1484,32 +1564,32 @@ void _nc_read_termcap(void)
#undef _nc_str_init
string_desc *_nc_str_init(
- string_desc *dst,
- char *src,
+ string_desc *dst,
+ char *src,
size_t len)
{ return(*(string_desc **)0); }
#undef _nc_str_null
string_desc *_nc_str_null(
- string_desc *dst,
+ string_desc *dst,
size_t len)
{ return(*(string_desc **)0); }
#undef _nc_str_copy
string_desc *_nc_str_copy(
- string_desc *dst,
- string_desc *src)
+ string_desc *dst,
+ const string_desc *const src)
{ return(*(string_desc **)0); }
#undef _nc_safe_strcat
NCURSES_BOOL _nc_safe_strcat(
- string_desc *dst,
+ string_desc *dst,
const char *src)
{ return(*(NCURSES_BOOL *)0); }
#undef _nc_safe_strcpy
NCURSES_BOOL _nc_safe_strcpy(
- string_desc *dst,
+ string_desc *dst,
const char *src)
{ return(*(NCURSES_BOOL *)0); }
@@ -1517,13 +1597,13 @@ NCURSES_BOOL _nc_safe_strcpy(
#undef _nc_trace_buf
char *_nc_trace_buf(
- int bufnum,
+ int bufnum,
size_t want)
{ return(*(char **)0); }
#undef _nc_trace_bufcat
char *_nc_trace_bufcat(
- int bufnum,
+ int bufnum,
const char *value)
{ return(*(char **)0); }
@@ -1538,21 +1618,21 @@ void _nc_trace_tries(
#undef _nc_expand_try
char *_nc_expand_try(
- TRIES *tree,
- unsigned code,
- int *count,
+ TRIES *tree,
+ unsigned code,
+ int *count,
size_t len)
{ return(*(char **)0); }
#undef _nc_remove_key
int _nc_remove_key(
- TRIES **tree,
+ TRIES **tree,
unsigned code)
{ return(*(int *)0); }
#undef _nc_remove_string
int _nc_remove_string(
- TRIES **tree,
+ TRIES **tree,
const char *string)
{ return(*(int *)0); }
@@ -1567,7 +1647,7 @@ char *_nc_trim_sgr0(
#undef unctrl_sp
const char *unctrl_sp(
- SCREEN *sp,
+ SCREEN *sp,
chtype ch)
{ return(*(const char **)0); }
@@ -1580,7 +1660,7 @@ const char *unctrl(
#undef _nc_visbuf2
const char *_nc_visbuf2(
- int bufnum,
+ int bufnum,
const char *buf)
{ return(*(const char **)0); }
@@ -1591,13 +1671,13 @@ const char *_nc_visbuf(
#undef _nc_visbufn
const char *_nc_visbufn(
- const char *buf,
+ const char *buf,
int len)
{ return(*(const char **)0); }
#undef _nc_viswbuf2
const char *_nc_viswbuf2(
- int bufnum,
+ int bufnum,
const wchar_t *buf)
{ return(*(const char **)0); }
@@ -1608,7 +1688,7 @@ const char *_nc_viswbuf(
#undef _nc_viswbufn
const char *_nc_viswbufn(
- const wchar_t *buf,
+ const wchar_t *buf,
int len)
{ return(*(const char **)0); }
@@ -1619,14 +1699,14 @@ const char *_nc_viswibuf(
#undef _nc_viscbuf2
const char *_nc_viscbuf2(
- int bufnum,
- const cchar_t *buf,
+ int bufnum,
+ const cchar_t *buf,
int len)
{ return(*(const char **)0); }
#undef _nc_viscbuf
const char *_nc_viscbuf(
- const cchar_t *buf,
+ const cchar_t *buf,
int len)
{ return(*(const char **)0); }
@@ -1634,14 +1714,14 @@ const char *_nc_viscbuf(
#undef define_key_sp
int define_key_sp(
- SCREEN *sp,
- const char *str,
+ SCREEN *sp,
+ const char *str,
int keycode)
{ return(*(int *)0); }
#undef define_key
int define_key(
- const char *str,
+ const char *str,
int keycode)
{ return(*(int *)0); }
@@ -1655,7 +1735,7 @@ void _nc_hashed_db(void)
#undef key_defined_sp
int key_defined_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *str)
{ return(*(int *)0); }
@@ -1668,14 +1748,14 @@ int key_defined(
#undef keybound_sp
char *keybound_sp(
- SCREEN *sp,
- int code,
+ SCREEN *sp,
+ int code,
int count)
{ return(*(char **)0); }
#undef keybound
char *keybound(
- int code,
+ int code,
int count)
{ return(*(char **)0); }
@@ -1683,14 +1763,14 @@ char *keybound(
#undef keyok_sp
int keyok_sp(
- SCREEN *sp,
- int c,
+ SCREEN *sp,
+ int c,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef keyok
int keyok(
- int c,
+ int c,
NCURSES_BOOL flag)
{ return(*(int *)0); }
diff --git a/ncurses/llib-ltinfow b/ncurses/llib-ltinfow
index 815e6b3e3c3e..fd308180722a 100644
--- a/ncurses/llib-ltinfow
+++ b/ncurses/llib-ltinfow
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2022,2023 Thomas E. Dickey *
* Copyright 2012-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -58,7 +58,7 @@ char *_nc_basename(
#undef _nc_access
int _nc_access(
- const char *path,
+ const char *path,
int mode)
{ return(*(int *)0); }
@@ -76,12 +76,25 @@ NCURSES_BOOL _nc_is_file_path(
int _nc_env_access(void)
{ return(*(int *)0); }
+#undef _nc_safe_fopen
+FILE *_nc_safe_fopen(
+ const char *path,
+ const char *mode)
+ { return(*(FILE **)0); }
+
+#undef _nc_safe_open3
+int _nc_safe_open3(
+ const char *path,
+ int flags,
+ mode_t mode)
+ { return(*(int *)0); }
+
/* ./tinfo/add_tries.c */
#undef _nc_add_to_try
int _nc_add_to_try(
- TRIES **tree,
- const char *str,
+ TRIES **tree,
+ const char *str,
unsigned code)
{ return(*(int *)0); }
@@ -89,25 +102,25 @@ int _nc_add_to_try(
#undef _nc_align_termtype
void _nc_align_termtype(
- TERMTYPE2 *to,
+ TERMTYPE2 *to,
TERMTYPE2 *from)
{ /* void */ }
#undef _nc_copy_termtype
void _nc_copy_termtype(
- TERMTYPE *dst,
+ TERMTYPE *dst,
const TERMTYPE *src)
{ /* void */ }
#undef _nc_copy_termtype2
void _nc_copy_termtype2(
- TERMTYPE2 *dst,
+ TERMTYPE2 *dst,
const TERMTYPE2 *src)
{ /* void */ }
#undef _nc_export_termtype2
void _nc_export_termtype2(
- TERMTYPE *dst,
+ TERMTYPE *dst,
const TERMTYPE2 *src)
{ /* void */ }
@@ -172,19 +185,19 @@ void _nc_get_type(
#undef _nc_warning
void _nc_warning(
- const char *const fmt,
+ const char *const fmt,
...)
{ /* void */ }
#undef _nc_err_abort
void _nc_err_abort(
- const char *const fmt,
+ const char *const fmt,
...)
{ /* void */ }
#undef _nc_syserr_abort
void _nc_syserr_abort(
- const char *const fmt,
+ const char *const fmt,
...)
{ /* void */ }
@@ -192,14 +205,14 @@ void _nc_syserr_abort(
#undef _nc_find_entry
struct name_table_entry const *_nc_find_entry(
- const char *string,
+ const char *string,
const HashValue *hash_table)
{ return(*(struct name_table_entry const **)0); }
#undef _nc_find_type_entry
struct name_table_entry const *_nc_find_type_entry(
- const char *string,
- int type,
+ const char *string,
+ int type,
NCURSES_BOOL termcap)
{ return(*(struct name_table_entry const **)0); }
@@ -236,13 +249,13 @@ void _nc_last_db(void)
#undef _nc_next_db
const char *_nc_next_db(
- DBDIRS *state,
+ DBDIRS *state,
int *offset)
{ return(*(const char **)0); }
#undef _nc_first_db
void _nc_first_db(
- DBDIRS *state,
+ DBDIRS *state,
int *offset)
{ /* void */ }
@@ -250,7 +263,7 @@ void _nc_first_db(
#undef _nc_doalloc
void *_nc_doalloc(
- void *oldp,
+ void *oldp,
size_t amount)
{ return(*(void **)0); }
@@ -263,7 +276,7 @@ ENTRY *_nc_tail;
#undef _nc_free_entry
void _nc_free_entry(
- ENTRY *headp,
+ ENTRY *headp,
TERMTYPE2 *tterm)
{ /* void */ }
@@ -300,6 +313,11 @@ void _nc_free_termtype(
TERMTYPE *ptr)
{ /* void */ }
+#undef _nc_free_termtype1
+void _nc_free_termtype1(
+ TERMTYPE *ptr)
+ { /* void */ }
+
#undef _nc_free_termtype2
void _nc_free_termtype2(
TERMTYPE2 *ptr)
@@ -322,7 +340,7 @@ int _nc_getenv_num(
#undef _nc_setenv_num
void _nc_setenv_num(
- const char *name,
+ const char *name,
int value)
{ /* void */ }
@@ -356,8 +374,8 @@ void _nc_init_acs(void)
/* ./tinfo/lib_baudrate.c */
struct speed {
- int given_speed;
- int actual_speed;
+ int given_speed;
+ int actual_speed;
};
#undef _nc_baudrate
@@ -386,7 +404,7 @@ TERMINAL *cur_term;
#undef set_curterm_sp
TERMINAL *set_curterm_sp(
- SCREEN *sp,
+ SCREEN *sp,
TERMINAL *termp)
{ return(*(TERMINAL **)0); }
@@ -397,7 +415,7 @@ TERMINAL *set_curterm(
#undef del_curterm_sp
int del_curterm_sp(
- SCREEN *sp,
+ SCREEN *sp,
TERMINAL *termp)
{ return(*(int *)0); }
@@ -483,7 +501,7 @@ struct kn { short offset; int code; };
#undef keyname_sp
const char *keyname_sp(
- SCREEN *sp,
+ SCREEN *sp,
int c)
{ return(*(const char **)0); }
@@ -507,7 +525,7 @@ char *longname(void)
#undef napms_sp
int napms_sp(
- SCREEN *sp,
+ SCREEN *sp,
int ms)
{ return(*(int *)0); }
@@ -520,19 +538,19 @@ int napms(
#undef idlok
int idlok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef idcok
void idcok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ /* void */ }
#undef halfdelay_sp
int halfdelay_sp(
- SCREEN *sp,
+ SCREEN *sp,
int t)
{ return(*(int *)0); }
@@ -543,37 +561,37 @@ int halfdelay(
#undef nodelay
int nodelay(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef notimeout
int notimeout(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL f)
{ return(*(int *)0); }
#undef wtimeout
void wtimeout(
- WINDOW *win,
+ WINDOW *win,
int delay)
{ /* void */ }
#undef keypad
int keypad(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef meta
int meta(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef curs_set_sp
int curs_set_sp(
- SCREEN *sp,
+ SCREEN *sp,
int vis)
{ return(*(int *)0); }
@@ -584,7 +602,7 @@ int curs_set(
#undef typeahead_sp
int typeahead_sp(
- SCREEN *sp,
+ SCREEN *sp,
int fd)
{ return(*(int *)0); }
@@ -595,7 +613,7 @@ int typeahead(
#undef has_key_sp
int has_key_sp(
- SCREEN *sp,
+ SCREEN *sp,
int keycode)
{ return(*(int *)0); }
@@ -606,14 +624,14 @@ int has_key(
#undef _nc_putp_flush_sp
int _nc_putp_flush_sp(
- SCREEN *sp,
- const char *name,
+ SCREEN *sp,
+ const char *name,
const char *value)
{ return(*(int *)0); }
#undef _nc_keypad
int _nc_keypad(
- SCREEN *sp,
+ SCREEN *sp,
int flag)
{ return(*(int *)0); }
@@ -675,17 +693,53 @@ void noqiflush(void)
#undef intrflush_sp
int intrflush_sp(
- SCREEN *sp,
- WINDOW *win,
+ SCREEN *sp,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef intrflush
int intrflush(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
+#undef is_nl_sp
+int is_nl_sp(
+ SCREEN *sp)
+ { return(*(int *)0); }
+
+#undef is_raw_sp
+int is_raw_sp(
+ SCREEN *sp)
+ { return(*(int *)0); }
+
+#undef is_cbreak_sp
+int is_cbreak_sp(
+ SCREEN *sp)
+ { return(*(int *)0); }
+
+#undef is_echo_sp
+int is_echo_sp(
+ SCREEN *sp)
+ { return(*(int *)0); }
+
+#undef is_nl
+int is_nl(void)
+ { return(*(int *)0); }
+
+#undef is_raw
+int is_raw(void)
+ { return(*(int *)0); }
+
+#undef is_cbreak
+int is_cbreak(void)
+ { return(*(int *)0); }
+
+#undef is_echo
+int is_echo(void)
+ { return(*(int *)0); }
+
/* ./tinfo/lib_setup.c */
#undef ttytype
@@ -699,7 +753,7 @@ int TABSIZE;
#undef set_tabsize_sp
int set_tabsize_sp(
- SCREEN *sp,
+ SCREEN *sp,
int value)
{ return(*(int *)0); }
@@ -715,13 +769,13 @@ int _nc_handle_sigwinch(
#undef use_env_sp
void use_env_sp(
- SCREEN *sp,
+ SCREEN *sp,
NCURSES_BOOL f)
{ /* void */ }
#undef use_tioctl_sp
void use_tioctl_sp(
- SCREEN *sp,
+ SCREEN *sp,
NCURSES_BOOL f)
{ /* void */ }
@@ -737,8 +791,8 @@ void use_tioctl(
#undef _nc_get_screensize
void _nc_get_screensize(
- SCREEN *sp,
- int *linep,
+ SCREEN *sp,
+ int *linep,
int *colp)
{ /* void */ }
@@ -749,13 +803,13 @@ void _nc_update_screensize(
#undef _nc_setup_tinfo
int _nc_setup_tinfo(
- const char *const tn,
+ const char *const tn,
TERMTYPE2 *const tp)
{ return(*(int *)0); }
#undef _nc_tinfo_cmdch
void _nc_tinfo_cmdch(
- TERMINAL *termp,
+ TERMINAL *termp,
int proto)
{ /* void */ }
@@ -774,9 +828,9 @@ int _nc_locale_breaks_acs(
#undef _nc_setupterm
int _nc_setupterm(
- const char *tname,
- int Filedes,
- int *errret,
+ const char *tname,
+ int Filedes,
+ int *errret,
int reuse)
{ return(*(int *)0); }
@@ -786,8 +840,8 @@ SCREEN *new_prescr(void)
#undef setupterm
int setupterm(
- const char *tname,
- int Filedes,
+ const char *tname,
+ int Filedes,
int *errret)
{ return(*(int *)0); }
@@ -800,20 +854,20 @@ char *BC;
#undef tgetent_sp
int tgetent_sp(
- SCREEN *sp,
- char *bufp,
+ SCREEN *sp,
+ char *bufp,
const char *name)
{ return(*(int *)0); }
#undef tgetent
int tgetent(
- char *bufp,
+ char *bufp,
const char *name)
{ return(*(int *)0); }
#undef tgetflag_sp
int tgetflag_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *id)
{ return(*(int *)0); }
@@ -824,7 +878,7 @@ int tgetflag(
#undef tgetnum_sp
int tgetnum_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *id)
{ return(*(int *)0); }
@@ -835,14 +889,14 @@ int tgetnum(
#undef tgetstr_sp
char *tgetstr_sp(
- SCREEN *sp,
- const char *id,
+ SCREEN *sp,
+ const char *id,
char **area)
{ return(*(char **)0); }
#undef tgetstr
char *tgetstr(
- const char *id,
+ const char *id,
char **area)
{ return(*(char **)0); }
@@ -861,8 +915,8 @@ char *termname(void)
#undef tgoto
char *tgoto(
- const char *string,
- int x,
+ const char *string,
+ int x,
int y)
{ return(*(char **)0); }
@@ -870,7 +924,7 @@ char *tgoto(
#undef tigetflag_sp
int tigetflag_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *str)
{ return(*(int *)0); }
@@ -881,7 +935,7 @@ int tigetflag(
#undef tigetnum_sp
int tigetnum_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *str)
{ return(*(int *)0); }
@@ -892,7 +946,7 @@ int tigetnum(
#undef tigetstr_sp
char *tigetstr_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *str)
{ return(*(char **)0); }
@@ -906,32 +960,58 @@ char *tigetstr(
#undef _nc_tparm_err
int _nc_tparm_err;
+#undef _nc_free_tparm
+void _nc_free_tparm(
+ TERMINAL *termp)
+ { /* void */ }
+
#undef _nc_tparm_analyze
int _nc_tparm_analyze(
- const char *string,
- char *p_is_s[9],
+ TERMINAL *term,
+ const char *string,
+ char **p_is_s,
int *_nc_popcount)
{ return(*(int *)0); }
#undef tparm
char *tparm(
- const char *string,
+ const char *string,
...)
{ return(*(char **)0); }
#undef tiparm
char *tiparm(
- const char *string,
+ const char *string,
...)
{ return(*(char **)0); }
+#undef tiparm_s
+char *tiparm_s(
+ int num_expected,
+ int tparm_type,
+ const char *string,
+ ...)
+ { return(*(char **)0); }
+
+#undef tiscan_s
+int tiscan_s(
+ int *num_expected,
+ int *tparm_type,
+ const char *string)
+ { return(*(int *)0); }
+
#undef _nc_tiparm
char *_nc_tiparm(
- int expected,
- const char *string,
+ int expected,
+ const char *string,
...)
{ return(*(char **)0); }
+#undef _nc_reset_tparm
+void _nc_reset_tparm(
+ TERMINAL *term)
+ { /* void */ }
+
/* ./tinfo/lib_tputs.c */
#undef PC
@@ -948,7 +1028,7 @@ void _nc_set_no_padding(
#undef delay_output_sp
int delay_output_sp(
- SCREEN *sp,
+ SCREEN *sp,
int ms)
{ return(*(int *)0); }
@@ -968,7 +1048,7 @@ void _nc_flush(void)
#undef _nc_outch_sp
int _nc_outch_sp(
- SCREEN *sp,
+ SCREEN *sp,
int ch)
{ return(*(int *)0); }
@@ -979,7 +1059,7 @@ int _nc_outch(
#undef _nc_putchar_sp
int _nc_putchar_sp(
- SCREEN *sp,
+ SCREEN *sp,
int ch)
{ return(*(int *)0); }
@@ -990,7 +1070,7 @@ int _nc_putchar(
#undef putp_sp
int putp_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *string)
{ return(*(int *)0); }
@@ -1001,35 +1081,35 @@ int putp(
#undef _nc_putp_sp
int _nc_putp_sp(
- SCREEN *sp,
- const char *name,
+ SCREEN *sp,
+ const char *name,
const char *string)
{ return(*(int *)0); }
#undef _nc_putp
int _nc_putp(
- const char *name,
+ const char *name,
const char *string)
{ return(*(int *)0); }
#undef tputs_sp
int tputs_sp(
- SCREEN *sp,
- const char *string,
- int affcnt,
+ SCREEN *sp,
+ const char *string,
+ int affcnt,
NCURSES_OUTC_sp outc)
{ return(*(int *)0); }
#undef _nc_outc_wrapper
int _nc_outc_wrapper(
- SCREEN *sp,
+ SCREEN *sp,
int c)
{ return(*(int *)0); }
#undef tputs
int tputs(
- const char *string,
- int affcnt,
+ const char *string,
+ int affcnt,
int (*outc)(
int p1))
{ return(*(int *)0); }
@@ -1055,7 +1135,7 @@ void trace(
#undef _tracef
void _tracef(
- const char *fmt,
+ const char *fmt,
...)
{ /* void */ }
@@ -1111,8 +1191,8 @@ WINDOW *_nc_retrace_win(
#undef _nc_fmt_funcptr
char *_nc_fmt_funcptr(
- char *target,
- const char *source,
+ char *target,
+ const char *source,
size_t size)
{ return(*(char **)0); }
@@ -1120,7 +1200,7 @@ char *_nc_fmt_funcptr(
#undef _traceattr2
char *_traceattr2(
- int bufnum,
+ int bufnum,
chtype newmode)
{ return(*(char **)0); }
@@ -1141,13 +1221,13 @@ attr_t _nc_retrace_attr_t(
#undef _nc_altcharset_name
const char *_nc_altcharset_name(
- attr_t attr,
+ attr_t attr,
chtype ch)
{ return(*(const char **)0); }
#undef _tracechtype2
char *_tracechtype2(
- int bufnum,
+ int bufnum,
chtype ch)
{ return(*(char **)0); }
@@ -1163,7 +1243,7 @@ chtype _nc_retrace_chtype(
#undef _tracecchar_t2
char *_tracecchar_t2(
- int bufnum,
+ int bufnum,
const cchar_t *ch)
{ return(*(char **)0); }
@@ -1176,7 +1256,7 @@ char *_tracecchar_t(
#undef _nc_trace_ttymode
char *_nc_trace_ttymode(
- struct termios *tty)
+ const struct termios *tty)
{ return(*(char **)0); }
#undef _nc_tracebits
@@ -1187,7 +1267,7 @@ char *_nc_tracebits(void)
#undef _nc_tracechar
char *_nc_tracechar(
- SCREEN *sp,
+ SCREEN *sp,
int ch)
{ return(*(char **)0); }
@@ -1200,7 +1280,7 @@ char *_tracechar(
#undef _nc_get_tty_mode_sp
int _nc_get_tty_mode_sp(
- SCREEN *sp,
+ SCREEN *sp,
struct termios *buf)
{ return(*(int *)0); }
@@ -1211,7 +1291,7 @@ int _nc_get_tty_mode(
#undef _nc_set_tty_mode_sp
int _nc_set_tty_mode_sp(
- SCREEN *sp,
+ SCREEN *sp,
struct termios *buf)
{ return(*(int *)0); }
@@ -1278,9 +1358,9 @@ int resetty(void)
#undef _nc_timed_wait
int _nc_timed_wait(
- SCREEN *sp,
- int mode,
- int milliseconds,
+ SCREEN *sp,
+ int mode,
+ int milliseconds,
int *timeleft)
{ return(*(int *)0); }
@@ -1293,8 +1373,8 @@ char *_nc_first_name(
#undef _nc_name_match
int _nc_name_match(
- const char *const namelst,
- const char *const name,
+ const char *const namelst,
+ const char *const name,
const char *const delim)
{ return(*(int *)0); }
@@ -1317,14 +1397,14 @@ const char *const strfnames[] = {0};
#undef _nc_set_buffer_sp
void _nc_set_buffer_sp(
- SCREEN *sp,
- FILE *ofp,
+ SCREEN *sp,
+ FILE *ofp,
int buffered)
{ /* void */ }
#undef _nc_set_buffer
void _nc_set_buffer(
- FILE *ofp,
+ FILE *ofp,
int buffered)
{ /* void */ }
@@ -1337,28 +1417,28 @@ void _nc_init_termtype(
#undef _nc_read_termtype
int _nc_read_termtype(
- TERMTYPE2 *ptr,
- char *buffer,
+ TERMTYPE2 *ptr,
+ char *buffer,
int limit)
{ return(*(int *)0); }
#undef _nc_read_file_entry
int _nc_read_file_entry(
- const char *const filename,
+ const char *const filename,
TERMTYPE2 *ptr)
{ return(*(int *)0); }
#undef _nc_read_entry2
int _nc_read_entry2(
- const char *const name,
- char *const filename,
+ const char *const name,
+ char *const filename,
TERMTYPE2 *const tp)
{ return(*(int *)0); }
#undef _nc_read_entry
int _nc_read_entry(
- const char *const name,
- char *const filename,
+ const char *const name,
+ char *const filename,
TERMTYPE *const tp)
{ return(*(int *)0); }
@@ -1372,32 +1452,32 @@ void _nc_read_termcap(void)
#undef _nc_str_init
string_desc *_nc_str_init(
- string_desc *dst,
- char *src,
+ string_desc *dst,
+ char *src,
size_t len)
{ return(*(string_desc **)0); }
#undef _nc_str_null
string_desc *_nc_str_null(
- string_desc *dst,
+ string_desc *dst,
size_t len)
{ return(*(string_desc **)0); }
#undef _nc_str_copy
string_desc *_nc_str_copy(
- string_desc *dst,
- string_desc *src)
+ string_desc *dst,
+ const string_desc *const src)
{ return(*(string_desc **)0); }
#undef _nc_safe_strcat
NCURSES_BOOL _nc_safe_strcat(
- string_desc *dst,
+ string_desc *dst,
const char *src)
{ return(*(NCURSES_BOOL *)0); }
#undef _nc_safe_strcpy
NCURSES_BOOL _nc_safe_strcpy(
- string_desc *dst,
+ string_desc *dst,
const char *src)
{ return(*(NCURSES_BOOL *)0); }
@@ -1405,13 +1485,13 @@ NCURSES_BOOL _nc_safe_strcpy(
#undef _nc_trace_buf
char *_nc_trace_buf(
- int bufnum,
+ int bufnum,
size_t want)
{ return(*(char **)0); }
#undef _nc_trace_bufcat
char *_nc_trace_bufcat(
- int bufnum,
+ int bufnum,
const char *value)
{ return(*(char **)0); }
@@ -1426,21 +1506,21 @@ void _nc_trace_tries(
#undef _nc_expand_try
char *_nc_expand_try(
- TRIES *tree,
- unsigned code,
- int *count,
+ TRIES *tree,
+ unsigned code,
+ int *count,
size_t len)
{ return(*(char **)0); }
#undef _nc_remove_key
int _nc_remove_key(
- TRIES **tree,
+ TRIES **tree,
unsigned code)
{ return(*(int *)0); }
#undef _nc_remove_string
int _nc_remove_string(
- TRIES **tree,
+ TRIES **tree,
const char *string)
{ return(*(int *)0); }
@@ -1455,7 +1535,7 @@ char *_nc_trim_sgr0(
#undef unctrl_sp
const char *unctrl_sp(
- SCREEN *sp,
+ SCREEN *sp,
chtype ch)
{ return(*(const char **)0); }
@@ -1468,7 +1548,7 @@ const char *unctrl(
#undef _nc_visbuf2
const char *_nc_visbuf2(
- int bufnum,
+ int bufnum,
const char *buf)
{ return(*(const char **)0); }
@@ -1479,13 +1559,13 @@ const char *_nc_visbuf(
#undef _nc_visbufn
const char *_nc_visbufn(
- const char *buf,
+ const char *buf,
int len)
{ return(*(const char **)0); }
#undef _nc_viswbuf2
const char *_nc_viswbuf2(
- int bufnum,
+ int bufnum,
const wchar_t *buf)
{ return(*(const char **)0); }
@@ -1496,7 +1576,7 @@ const char *_nc_viswbuf(
#undef _nc_viswbufn
const char *_nc_viswbufn(
- const wchar_t *buf,
+ const wchar_t *buf,
int len)
{ return(*(const char **)0); }
@@ -1507,14 +1587,14 @@ const char *_nc_viswibuf(
#undef _nc_viscbuf2
const char *_nc_viscbuf2(
- int bufnum,
- const cchar_t *buf,
+ int bufnum,
+ const cchar_t *buf,
int len)
{ return(*(const char **)0); }
#undef _nc_viscbuf
const char *_nc_viscbuf(
- const cchar_t *buf,
+ const cchar_t *buf,
int len)
{ return(*(const char **)0); }
@@ -1522,14 +1602,14 @@ const char *_nc_viscbuf(
#undef define_key_sp
int define_key_sp(
- SCREEN *sp,
- const char *str,
+ SCREEN *sp,
+ const char *str,
int keycode)
{ return(*(int *)0); }
#undef define_key
int define_key(
- const char *str,
+ const char *str,
int keycode)
{ return(*(int *)0); }
@@ -1543,7 +1623,7 @@ void _nc_hashed_db(void)
#undef key_defined_sp
int key_defined_sp(
- SCREEN *sp,
+ SCREEN *sp,
const char *str)
{ return(*(int *)0); }
@@ -1556,14 +1636,14 @@ int key_defined(
#undef keybound_sp
char *keybound_sp(
- SCREEN *sp,
- int code,
+ SCREEN *sp,
+ int code,
int count)
{ return(*(char **)0); }
#undef keybound
char *keybound(
- int code,
+ int code,
int count)
{ return(*(char **)0); }
@@ -1571,14 +1651,14 @@ char *keybound(
#undef keyok_sp
int keyok_sp(
- SCREEN *sp,
- int c,
+ SCREEN *sp,
+ int c,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef keyok
int keyok(
- int c,
+ int c,
NCURSES_BOOL flag)
{ return(*(int *)0); }
diff --git a/ncurses/new_pair.h b/ncurses/new_pair.h
index dfda89077207..49d7e8b8dbdd 100644
--- a/ncurses/new_pair.h
+++ b/ncurses/new_pair.h
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2020,2021 Thomas E. Dickey *
* Copyright 2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -34,13 +34,22 @@
/*
* Common type definitions and macros for new_pair.c, lib_color.c
*
- * $Id: new_pair.h,v 1.11 2020/04/11 16:43:47 tom Exp $
+ * $Id: new_pair.h,v 1.13 2021/09/24 17:52:01 tom Exp $
*/
#ifndef NEW_PAIR_H
#define NEW_PAIR_H 1
/* *INDENT-OFF* */
+#include <ncurses_cfg.h>
+#include <ncurses_dll.h>
+
+#include <sys/types.h>
+
+#undef SCREEN
+#define SCREEN struct screen
+SCREEN;
+
#define LIMIT_TYPED(n,t) \
(t)(((n) > MAX_OF_TYPE(t)) \
? MAX_OF_TYPE(t) \
diff --git a/ncurses/report_offsets.c b/ncurses/report_offsets.c
index 2e7083a1e43d..0f82dcf35db7 100644
--- a/ncurses/report_offsets.c
+++ b/ncurses/report_offsets.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -31,14 +31,17 @@
* Author: Thomas E. Dickey *
****************************************************************************/
+#define NEW_PAIR_INTERNAL 1
#include <curses.priv.h>
-MODULE_ID("$Id: report_offsets.c,v 1.21 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: report_offsets.c,v 1.28 2024/02/24 15:59:09 tom Exp $")
#define show_size(type) \
flag = 0; \
last = 0; \
printf("%5lu " #type "\n", (unsigned long)sizeof(type))
+#define show_name(name) \
+ printf("%5lu " #name "\n", (unsigned long)(name))
#define show_offset(type,member) \
next = (unsigned long)offsetof(type,member); \
if (last > next) \
@@ -65,12 +68,7 @@ MODULE_ID("$Id: report_offsets.c,v 1.21 2020/02/02 23:34:34 tom Exp $")
#define show_MLEAKS(type,member) /* nothing */
#endif
-#ifdef USE_TERM_DRIVER
-#define show_NORMAL(type,member) /* nothing */
-#else
#define show_NORMAL(type,member) { flag = "n"; show_offset(type,member); }
-#endif
-
#define show_OPTION(type,member) { flag = "+"; show_offset(type,member); }
#if USE_REENTRANT
@@ -116,9 +114,28 @@ main(void)
#if USE_WIDEC_SUPPORT
show_size(cchar_t);
#endif
+ show_size(color_t);
+ show_size(colorpair_t);
show_size(mmask_t);
+ show_size(rgb_bits_t);
show_size(MEVENT);
show_size(NCURSES_BOOL);
+ show_size(TRIES);
+
+ printf("\n");
+ printf("Sizes of buffers/arrays:\n");
+#if USE_WIDEC_SUPPORT
+ show_name(CCHARW_MAX);
+#endif
+ show_name(EV_MAX);
+ show_name(FIFO_SIZE);
+ show_name(NAMESIZE);
+ show_name(MB_LEN_MAX);
+ show_name(PATH_MAX);
+#ifdef TRACE
+ show_name(TRACECHR_BUF);
+ show_name(TRACEMSE_MAX);
+#endif
printf("\n");
show_size(SCREEN);
@@ -160,7 +177,9 @@ main(void)
#if USE_SIZECHANGE
show_OPTION(SCREEN, _resize);
#endif
- show_DRIVER(SCREEN, _windowlist);
+#ifdef USE_SP_WINDOWLIST
+ show_NORMAL(SCREEN, _windowlist);
+#endif
show_REENTR(SCREEN, _ttytype);
show_SPFUNC(SCREEN, use_tioctl);
show_WIDECH(SCREEN, _screen_acs_fix);
@@ -175,6 +194,7 @@ main(void)
show_offset(TERMINAL, Nttyb);
show_offset(TERMINAL, _baudrate);
show_offset(TERMINAL, _termname);
+ show_offset(TERMINAL, tparm_state);
#if HAVE_INIT_EXTENDED_COLOR
show_COLORS(TERMINAL, type2);
#endif
@@ -187,6 +207,15 @@ main(void)
#endif
printf("\n");
+ show_size(TPARM_STATE);
+ show_offset(TPARM_STATE, stack);
+ show_offset(TPARM_STATE, stack_ptr);
+ show_offset(TPARM_STATE, out_buff);
+ show_offset(TPARM_STATE, fmt_buff);
+ show_offset(TPARM_STATE, static_vars);
+ show_TRACES(TPARM_STATE, tname);
+
+ printf("\n");
show_size(WINDOW);
show_WIDECH(WINDOW, _bkgrnd);
show_COLORS(WINDOW, _color);
@@ -194,8 +223,15 @@ main(void)
printf("\n");
show_size(NCURSES_GLOBALS);
show_offset(NCURSES_GLOBALS, init_signals);
+ show_offset(NCURSES_GLOBALS, tgetent_cache);
+ show_offset(NCURSES_GLOBALS, dbd_vars);
+#if HAVE_TSEARCH
+ show_offset(NCURSES_GLOBALS, cached_tparm);
+#endif
show_DRIVER(NCURSES_GLOBALS, term_driver);
+#ifndef USE_SP_WINDOWLIST
show_NORMAL(NCURSES_GLOBALS, _nc_windowlist);
+#endif
#if USE_HOME_TERMINFO
show_OPTION(NCURSES_GLOBALS, home_terminfo);
#endif
@@ -208,14 +244,18 @@ main(void)
#endif
show_WIDECH(NCURSES_GLOBALS, key_name);
show_TRACES(NCURSES_GLOBALS, trace_opened);
+ show_TRACES(NCURSES_GLOBALS, trace_level);
show_MLEAKS(NCURSES_GLOBALS, leak_checking);
printf("\n");
show_size(NCURSES_PRESCREEN);
+ show_offset(NCURSES_PRESCREEN, tparm_state);
show_offset(NCURSES_PRESCREEN, saved_tty);
show_offset(NCURSES_PRESCREEN, use_tioctl);
show_offset(NCURSES_PRESCREEN, _outch);
+#ifndef USE_SP_RIPOFF
show_NORMAL(NCURSES_PRESCREEN, rippedoff);
+#endif
#if NCURSES_NO_PADDING
show_OPTION(NCURSES_PRESCREEN, _no_padding);
#endif
@@ -224,6 +264,9 @@ main(void)
#else
show_REENTR(NCURSES_PRESCREEN, real_acs_map);
#endif
+#if BROKEN_LINKER || USE_REENTRANT
+ show_TRACES(NCURSES_PRESCREEN, _outchars);
+#endif
return EXIT_SUCCESS;
}
diff --git a/ncurses/term.priv.h b/ncurses/term.priv.h
new file mode 100644
index 000000000000..1f436b5f8254
--- /dev/null
+++ b/ncurses/term.priv.h
@@ -0,0 +1,364 @@
+/****************************************************************************
+ * Copyright 2021-2023,2024 Thomas E. Dickey *
+ * *
+ * 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: term.priv.h,v 1.13 2024/03/02 20:43:06 tom Exp $
+ *
+ * term.priv.h
+ *
+ * Header file for terminfo library objects which are private to
+ * the library.
+ */
+
+#ifndef _TERM_PRIV_H
+#define _TERM_PRIV_H 1
+/* *INDENT-OFF* */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <ncurses_cfg.h>
+
+#ifndef __NCURSES_H
+#include <curses.h>
+#endif
+
+#undef NCURSES_OPAQUE
+#define NCURSES_INTERNALS 1
+#define NCURSES_OPAQUE 0
+
+#if HAVE_LIMITS_H
+# include <limits.h> /* PATH_MAX, MB_LEN_MAX, etc */
+#elif HAVE_SYS_PARAM_H
+# include <sys/param.h>
+#endif
+
+#include <signal.h> /* sig_atomic_t */
+#include <time.h> /* time_t */
+#include <term.h> /* time_t */
+
+#ifdef USE_PTHREADS
+#if USE_REENTRANT
+#include <pthread.h>
+#endif
+#endif
+
+/*
+ * If not properly configured to use the system's limits.h, we get gcc's
+ * fallback for limits.h which sets MB_LEN_MAX to 1, which is never correct.
+ */
+#if !HAVE_CONSISTENT_MB_LEN_MAX
+#undef MB_LEN_MAX
+#endif
+
+#ifndef MB_LEN_MAX
+#define MB_LEN_MAX 16 /* should be >= MB_CUR_MAX, but that may be a function */
+#endif
+
+#ifndef PATH_MAX
+# if defined(_POSIX_PATH_MAX)
+# define PATH_MAX _POSIX_PATH_MAX
+# elif defined(MAXPATHLEN)
+# define PATH_MAX MAXPATHLEN
+# else
+# define PATH_MAX 255 /* the Posix minimum path-size */
+# endif
+#endif
+
+/*
+ * State of tparm().
+ */
+#define STACKSIZE 20
+
+typedef struct {
+ union {
+ int num;
+ char * str;
+ } data;
+ bool num_type;
+} STACK_FRAME;
+
+#define NUM_VARS 26
+
+typedef struct {
+ const char * tparam_base;
+
+ STACK_FRAME stack[STACKSIZE];
+ int stack_ptr;
+
+ char * out_buff;
+ size_t out_size;
+ size_t out_used;
+
+ char * fmt_buff;
+ size_t fmt_size;
+
+ int static_vars[NUM_VARS];
+#ifdef TRACE
+ const char * tname;
+#endif
+} TPARM_STATE;
+
+typedef struct {
+ char * text;
+ size_t size;
+} TRACEBUF;
+
+typedef struct {
+ const char * name;
+ char * value;
+} ITERATOR_VARS;
+
+/*
+ * Internals for term.h
+ */
+typedef struct term { /* describe an actual terminal */
+ TERMTYPE type; /* terminal type description */
+ short Filedes; /* file description being written to */
+ TTY Ottyb; /* original state of the terminal */
+ TTY Nttyb; /* current state of the terminal */
+ int _baudrate; /* used to compute padding */
+ char * _termname; /* used for termname() */
+ TPARM_STATE tparm_state;
+#if NCURSES_EXT_COLORS
+ TERMTYPE2 type2; /* extended terminal type description */
+#endif
+#undef TERMINAL
+} TERMINAL;
+
+/*
+ * Internals for soft-keys
+ */
+typedef struct {
+ WINDOW * win; /* the window used in the hook */
+ int line; /* lines to take, < 0 => from bottom*/
+ int (*hook)(WINDOW *, int); /* callback for user */
+} ripoff_t;
+
+/*
+ * Internals for tgetent
+ */
+typedef struct {
+ long sequence;
+ bool last_used;
+ char * fix_sgr0; /* this holds the filtered sgr0 string */
+ char * last_bufp; /* help with fix_sgr0 leak */
+ TERMINAL * last_term;
+} TGETENT_CACHE;
+
+#define TGETENT_MAX 4
+
+#include <term_entry.h> /* dbdLAST */
+
+#ifdef USE_TERM_DRIVER
+struct DriverTCB; /* Terminal Control Block forward declaration */
+#endif
+
+/*
+ * Global data which is not specific to a screen.
+ */
+typedef struct {
+ SIG_ATOMIC_T have_sigtstp;
+ SIG_ATOMIC_T have_sigwinch;
+ SIG_ATOMIC_T cleanup_nested;
+
+ bool init_signals;
+ bool init_screen;
+
+ char * comp_sourcename;
+ char * comp_termtype;
+
+ bool have_tic_directory;
+ bool keep_tic_directory;
+ const char * tic_directory;
+
+ char * dbi_list;
+ int dbi_size;
+
+ char * first_name;
+ char ** keyname_table;
+ int init_keyname;
+
+ int slk_format;
+
+ int getstr_limit; /* getstr_limit based on POSIX LINE_MAX */
+
+ char * safeprint_buf;
+ size_t safeprint_used;
+
+ TGETENT_CACHE tgetent_cache[TGETENT_MAX];
+ int tgetent_index;
+ long tgetent_sequence;
+ int terminal_count;
+
+ char * dbd_blob; /* string-heap for dbd_list[] */
+ char ** dbd_list; /* distinct places to look for data */
+ int dbd_size; /* length of dbd_list[] */
+ time_t dbd_time; /* cache last updated */
+ ITERATOR_VARS dbd_vars[dbdLAST];
+
+#if HAVE_TSEARCH
+ void * cached_tparm;
+ int count_tparm;
+#endif /* HAVE_TSEARCH */
+
+#ifdef USE_TERM_DRIVER
+ int (*term_driver)(struct DriverTCB*, const char*, int*);
+#endif
+
+#define WINDOWLIST struct _win_list
+
+#ifndef USE_SP_WINDOWLIST
+ WINDOWLIST * _nc_windowlist;
+#define WindowList(sp) _nc_globals._nc_windowlist
+#endif
+
+#if USE_HOME_TERMINFO
+ char * home_terminfo;
+#endif
+
+#if !USE_SAFE_SPRINTF
+ int safeprint_cols;
+ int safeprint_rows;
+#endif
+
+#ifdef USE_PTHREADS
+ pthread_mutex_t mutex_curses;
+ pthread_mutex_t mutex_prescreen;
+ pthread_mutex_t mutex_screen;
+ pthread_mutex_t mutex_update;
+ pthread_mutex_t mutex_tst_tracef;
+ pthread_mutex_t mutex_tracef;
+ int nested_tracef;
+ int use_pthreads;
+#define _nc_use_pthreads _nc_globals.use_pthreads
+#if USE_PTHREADS_EINTR
+ pthread_t read_thread; /* The reading thread */
+#endif
+#endif
+#if USE_WIDEC_SUPPORT
+ char key_name[MB_LEN_MAX + 1];
+#endif
+
+#ifdef TRACE
+ bool trace_opened;
+ int trace_level;
+ FILE * trace_fp;
+ int trace_fd;
+
+ char * tracearg_buf;
+ size_t tracearg_used;
+
+ TRACEBUF * tracebuf_ptr;
+ size_t tracebuf_used;
+
+ char tracechr_buf[40];
+
+ char * tracedmp_buf;
+ size_t tracedmp_used;
+
+ unsigned char * tracetry_buf;
+ size_t tracetry_used;
+
+ char traceatr_color_buf[2][80];
+ int traceatr_color_sel;
+ int traceatr_color_last;
+#if !defined(USE_PTHREADS) && USE_REENTRANT
+ int nested_tracef;
+#endif
+#endif /* TRACE */
+
+#if NO_LEAKS
+ bool leak_checking;
+#endif
+} NCURSES_GLOBALS;
+
+extern NCURSES_EXPORT_VAR(NCURSES_GLOBALS) _nc_globals;
+
+#define N_RIPS 5
+
+#ifdef USE_PTHREADS
+typedef struct _prescreen_list {
+ struct _prescreen_list *next;
+ pthread_t id;
+ struct screen * sp;
+} PRESCREEN_LIST;
+#endif
+
+/*
+ * Global data which can be swept up into a SCREEN when one is created.
+ * It may be modified before the next SCREEN is created.
+ */
+typedef struct {
+#ifdef USE_PTHREADS
+ PRESCREEN_LIST *allocated;
+#else
+ struct screen * allocated;
+#endif
+ bool use_env;
+ bool filter_mode;
+ attr_t previous_attr;
+ TPARM_STATE tparm_state;
+ TTY * saved_tty; /* savetty/resetty information */
+ bool use_tioctl;
+ NCURSES_SP_OUTC _outch; /* output handler if not putc */
+#ifndef USE_SP_RIPOFF
+ ripoff_t rippedoff[N_RIPS];
+ ripoff_t * rsp;
+#endif
+#if NCURSES_NO_PADDING
+ bool _no_padding; /* flag to set if padding disabled */
+#endif
+#if BROKEN_LINKER || USE_REENTRANT
+ chtype * real_acs_map;
+ int _LINES;
+ int _COLS;
+ int _TABSIZE;
+ int _ESCDELAY;
+ TERMINAL * _cur_term;
+#endif
+#ifdef TRACE
+#if BROKEN_LINKER || USE_REENTRANT
+ long _outchars;
+ const char * _tputs_trace;
+#endif
+#endif
+} NCURSES_PRESCREEN;
+
+extern NCURSES_EXPORT_VAR(NCURSES_PRESCREEN) _nc_prescreen;
+
+extern NCURSES_EXPORT(void) _nc_free_tparm(TERMINAL*);
+
+#ifdef __cplusplus
+}
+#endif
+
+/* *INDENT-ON* */
+
+#endif /* _TERM_PRIV_H */
diff --git a/ncurses/tinfo/MKcaptab.sh b/ncurses/tinfo/MKcaptab.sh
index c800023d105a..5f4135028f98 100755
--- a/ncurses/tinfo/MKcaptab.sh
+++ b/ncurses/tinfo/MKcaptab.sh
@@ -1,6 +1,6 @@
#!/bin/sh
##############################################################################
-# Copyright 2019,2020 Thomas E. Dickey #
+# Copyright 2019-2020,2023 Thomas E. Dickey #
# Copyright 2007-2010,2011 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -27,7 +27,7 @@
# use or other dealings in this Software without prior written #
# authorization. #
##############################################################################
-# $Id: MKcaptab.sh,v 1.19 2020/02/02 23:34:34 tom Exp $
+# $Id: MKcaptab.sh,v 1.20 2023/04/22 15:12:57 tom Exp $
if test $# != 0
then
@@ -153,7 +153,6 @@ _nc_get_table(bool termcap)
return termcap ? build_names(cap) : build_names(info);
}
-/* entrypoint used by tack 1.07 */
NCURSES_EXPORT(const HashValue *)
_nc_get_hash_table(bool termcap)
{
diff --git a/ncurses/tinfo/MKfallback.sh b/ncurses/tinfo/MKfallback.sh
index 64c65f197e0d..02b36ed739b2 100755
--- a/ncurses/tinfo/MKfallback.sh
+++ b/ncurses/tinfo/MKfallback.sh
@@ -1,6 +1,6 @@
#!/bin/sh
##############################################################################
-# Copyright 2020 Thomas E. Dickey #
+# Copyright 2020,2023 Thomas E. Dickey #
# Copyright 1998-2019,2020 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -27,7 +27,7 @@
# use or other dealings in this Software without prior written #
# authorization. #
##############################################################################
-# $Id: MKfallback.sh,v 1.25 2020/08/16 15:58:44 tom Exp $
+# $Id: MKfallback.sh,v 1.26 2023/04/22 15:12:57 tom Exp $
#
# MKfallback.sh -- create fallback table for entry reads
#
@@ -146,9 +146,6 @@ cat <<EOF
#if NCURSES_EXT_NUMBERS
#undef _nc_fallback
-/*
- * This entrypoint is used by tack 1.07
- */
NCURSES_EXPORT(const TERMTYPE *)
_nc_fallback (const char *name)
{
diff --git a/ncurses/tinfo/MKkeys_list.sh b/ncurses/tinfo/MKkeys_list.sh
index 3b8beaee56f3..05ac8cf62578 100755
--- a/ncurses/tinfo/MKkeys_list.sh
+++ b/ncurses/tinfo/MKkeys_list.sh
@@ -1,7 +1,7 @@
#! /bin/sh
-# $Id: MKkeys_list.sh,v 1.7 2020/02/02 23:34:34 tom Exp $
+# $Id: MKkeys_list.sh,v 1.9 2024/01/19 12:26:30 tom Exp $
##############################################################################
-# Copyright 2019,2020 Thomas E. Dickey #
+# Copyright 2019-2022,2024 Thomas E. Dickey #
# Copyright 2001-2003,2017 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -36,6 +36,7 @@
# Extract function-key names from the Caps file
#
: ${AWK-awk}
+: ${USE_SIGWINCH-0}
if test $# != 0
then
DATA="$*"
@@ -44,7 +45,8 @@ else
fi
data=data$$
-trap 'rm -f $data' EXIT INT QUIT TERM HUP
+trap 'rm -f $data; exit 1' 1 2 3 15
+trap 'rm -f $data' 0
cat $DATA | sed -e 's/[ ][ ]*/ /g' >$data
cat <<EOF
@@ -52,8 +54,8 @@ cat <<EOF
KEY_BREAK
KEY_SRESET
KEY_RESET
-KEY_RESIZE
EOF
+test "$USE_SIGWINCH" = 1 && echo KEY_RESIZE
${AWK-awk} <$data '
/^#/ {next;}
diff --git a/ncurses/tinfo/access.c b/ncurses/tinfo/access.c
index 15593688266e..50a5769c3d63 100644
--- a/ncurses/tinfo/access.c
+++ b/ncurses/tinfo/access.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2021,2023 Thomas E. Dickey *
* Copyright 1998-2011,2012 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -35,9 +35,24 @@
#include <ctype.h>
+#ifndef USE_ROOT_ACCESS
+#if HAVE_SETFSUID
+#include <sys/fsuid.h>
+#else
+#include <sys/stat.h>
+#endif
+#endif
+
+#if HAVE_GETAUXVAL && HAVE_SYS_AUXV_H && defined(__GLIBC__) && (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 19)
+#include <sys/auxv.h>
+#define USE_GETAUXVAL 1
+#else
+#define USE_GETAUXVAL 0
+#endif
+
#include <tic.h>
-MODULE_ID("$Id: access.c,v 1.27 2020/08/29 16:22:03 juergen Exp $")
+MODULE_ID("$Id: access.c,v 1.37 2023/06/24 21:55:09 tom Exp $")
#define LOWERCASE(c) ((isalpha(UChar(c)) && isupper(UChar(c))) ? tolower(UChar(c)) : (c))
@@ -55,8 +70,8 @@ _nc_rootname(char *path)
static char *temp;
char *s;
- temp = strdup(result);
- result = temp;
+ if ((temp = strdup(result)) != 0)
+ result = temp;
#if !MIXEDCASE_FILENAMES
for (s = result; *s != '\0'; ++s) {
*s = (char) LOWERCASE(*s);
@@ -169,23 +184,101 @@ _nc_is_file_path(const char *path)
return result;
}
-#ifndef USE_ROOT_ENVIRON
+#if HAVE_GETEUID && HAVE_GETEGID
+#define is_posix_elevated() \
+ (getuid() != geteuid() \
+ || getgid() != getegid())
+#else
+#define is_posix_elevated() FALSE
+#endif
+
+#if HAVE_ISSETUGID
+#define is_elevated() issetugid()
+#elif USE_GETAUXVAL && defined(AT_SECURE)
+#define is_elevated() \
+ (getauxval(AT_SECURE) \
+ ? TRUE \
+ : (errno != ENOENT \
+ ? FALSE \
+ : is_posix_elevated()))
+#else
+#define is_elevated() is_posix_elevated()
+#endif
+
+#if HAVE_SETFSUID
+#define lower_privileges() \
+ int save_err = errno; \
+ setfsuid(getuid()); \
+ setfsgid(getgid()); \
+ errno = save_err
+#define resume_elevation() \
+ save_err = errno; \
+ setfsuid(geteuid()); \
+ setfsgid(getegid()); \
+ errno = save_err
+#else
+#define lower_privileges() /* nothing */
+#define resume_elevation() /* nothing */
+#endif
+
/*
- * Returns true if we allow application to use environment variables that are
- * used for searching lists of directories, etc.
+ * Returns true if not running as root or setuid. We use this check to allow
+ * applications to use environment variables that are used for searching lists
+ * of directories, etc.
*/
NCURSES_EXPORT(int)
_nc_env_access(void)
{
-#if HAVE_ISSETUGID
- if (issetugid())
- return FALSE;
-#elif HAVE_GETEUID && HAVE_GETEGID
- if (getuid() != geteuid()
- || getgid() != getegid())
- return FALSE;
-#endif
- /* ...finally, disallow root */
- return (getuid() != ROOT_UID) && (geteuid() != ROOT_UID);
+ int result = TRUE;
+
+#if HAVE_GETUID && HAVE_GETEUID
+#if !defined(USE_SETUID_ENVIRON)
+ if (is_elevated()) {
+ result = FALSE;
+ }
+#endif
+#if !defined(USE_ROOT_ENVIRON)
+ if ((getuid() == ROOT_UID) || (geteuid() == ROOT_UID)) {
+ result = FALSE;
+ }
+#endif
+#endif /* HAVE_GETUID && HAVE_GETEUID */
+ return result;
+}
+
+#ifndef USE_ROOT_ACCESS
+/*
+ * Limit privileges if possible; otherwise disallow access for updating files.
+ */
+NCURSES_EXPORT(FILE *)
+_nc_safe_fopen(const char *path, const char *mode)
+{
+ FILE *result = NULL;
+#if HAVE_SETFSUID
+ lower_privileges();
+ result = fopen(path, mode);
+ resume_elevation();
+#else
+ if (!is_elevated() || *mode == 'r') {
+ result = fopen(path, mode);
+ }
+#endif
+ return result;
}
+
+NCURSES_EXPORT(int)
+_nc_safe_open3(const char *path, int flags, mode_t mode)
+{
+ int result = -1;
+#if HAVE_SETFSUID
+ lower_privileges();
+ result = open(path, flags, mode);
+ resume_elevation();
+#else
+ if (!is_elevated() || (flags & O_RDONLY)) {
+ result = open(path, flags, mode);
+ }
#endif
+ return result;
+}
+#endif /* USE_ROOT_ACCESS */
diff --git a/ncurses/tinfo/add_tries.c b/ncurses/tinfo/add_tries.c
index d41f488300ae..9d215575fec0 100644
--- a/ncurses/tinfo/add_tries.c
+++ b/ncurses/tinfo/add_tries.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2020,2023 Thomas E. Dickey *
* Copyright 1998-2009,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -39,8 +39,9 @@
*/
#include <curses.priv.h>
+#include <tic.h>
-MODULE_ID("$Id: add_tries.c,v 1.12 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: add_tries.c,v 1.13 2023/06/24 15:36:13 tom Exp $")
#define SET_TRY(dst,src) if ((dst->ch = *src++) == 128) dst->ch = '\0'
#define CMP_TRY(a,b) ((a)? (a == b) : (b == 128))
@@ -53,7 +54,7 @@ _nc_add_to_try(TRIES ** tree, const char *str, unsigned code)
T((T_CALLED("_nc_add_to_try(%p, %s, %u)"),
(void *) *tree, _nc_visbuf(str), code));
- if (txt == 0 || *txt == '\0' || code == 0)
+ if (!VALID_STRING(str) || *txt == '\0' || code == 0)
returnCode(ERR);
if ((*tree) != 0) {
diff --git a/ncurses/tinfo/alloc_entry.c b/ncurses/tinfo/alloc_entry.c
index 4bf7d6c8a082..6280ad4a2b2f 100644
--- a/ncurses/tinfo/alloc_entry.c
+++ b/ncurses/tinfo/alloc_entry.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2022,2023 Thomas E. Dickey *
* Copyright 1998-2013,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -48,13 +48,11 @@
#include <tic.h>
-MODULE_ID("$Id: alloc_entry.c,v 1.64 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: alloc_entry.c,v 1.79 2023/09/15 08:16:12 tom Exp $")
#define ABSENT_OFFSET -1
#define CANCELLED_OFFSET -2
-#define MAX_STRTAB 4096 /* documented maximum entry size */
-
static char *stringbuf; /* buffer for string capabilities */
static size_t next_free; /* next free character in stringbuf */
@@ -62,63 +60,77 @@ NCURSES_EXPORT(void)
_nc_init_entry(ENTRY * const tp)
/* initialize a terminal type data block */
{
+ DEBUG(2, (T_CALLED("_nc_init_entry(tp=%p)"), (void *) tp));
+
+ if (tp == NULL) {
#if NO_LEAKS
- if (tp == 0) {
- if (stringbuf != 0) {
+ if (stringbuf != NULL) {
FreeAndNull(stringbuf);
}
return;
- }
+#else
+ _nc_err_abort("_nc_init_entry called without initialization");
#endif
+ }
- if (stringbuf == 0)
- TYPE_MALLOC(char, (size_t) MAX_STRTAB, stringbuf);
+ if (stringbuf == NULL)
+ TYPE_CALLOC(char, (size_t) MAX_ENTRY_SIZE, stringbuf);
next_free = 0;
_nc_init_termtype(&(tp->tterm));
+
+ DEBUG(2, (T_RETURN("")));
}
NCURSES_EXPORT(ENTRY *)
_nc_copy_entry(ENTRY * oldp)
{
- ENTRY *newp = typeCalloc(ENTRY, 1);
+ ENTRY *newp;
- if (newp != 0) {
+ DEBUG(2, (T_CALLED("_nc_copy_entry(oldp=%p)"), (void *) oldp));
+
+ newp = typeCalloc(ENTRY, 1);
+ if (newp != NULL) {
*newp = *oldp;
_nc_copy_termtype2(&(newp->tterm), &(oldp->tterm));
}
- return newp;
+
+ DEBUG(2, (T_RETURN("%p"), (void *) newp));
+ return (newp);
}
/* save a copy of string in the string buffer */
NCURSES_EXPORT(char *)
-_nc_save_str(const char *const string)
+_nc_save_str(const char *string)
{
char *result = 0;
size_t old_next_free = next_free;
- size_t len;
-
- if (!VALID_STRING(string))
- return _nc_save_str("");
- len = strlen(string) + 1;
-
- if (len == 1 && next_free != 0) {
- /*
- * Cheat a little by making an empty string point to the end of the
- * previous string.
- */
- if (next_free < MAX_STRTAB) {
- result = (stringbuf + next_free - 1);
+
+ if (stringbuf != NULL) {
+ size_t len;
+
+ if (!VALID_STRING(string))
+ string = "";
+ len = strlen(string) + 1;
+
+ if (len == 1 && next_free != 0) {
+ /*
+ * Cheat a little by making an empty string point to the end of the
+ * previous string.
+ */
+ if (next_free < MAX_ENTRY_SIZE) {
+ result = (stringbuf + next_free - 1);
+ }
+ } else if (next_free + len < MAX_ENTRY_SIZE) {
+ _nc_STRCPY(&stringbuf[next_free], string, MAX_ENTRY_SIZE);
+ DEBUG(7, ("Saved string %s", _nc_visbuf(string)));
+ DEBUG(7, ("at location %d", (int) next_free));
+ next_free += len;
+ result = (stringbuf + old_next_free);
+ } else {
+ _nc_warning("Too much data, some is lost: %s", string);
}
- } else if (next_free + len < MAX_STRTAB) {
- _nc_STRCPY(&stringbuf[next_free], string, MAX_STRTAB);
- DEBUG(7, ("Saved string %s", _nc_visbuf(string)));
- DEBUG(7, ("at location %d", (int) next_free));
- next_free += len;
- result = (stringbuf + old_next_free);
- } else {
- _nc_warning("Too much data, some is lost: %s", string);
}
return result;
}
@@ -130,17 +142,23 @@ _nc_wrap_entry(ENTRY * const ep, bool copy_strings)
int offsets[MAX_ENTRY_SIZE / sizeof(short)];
int useoffsets[MAX_USES];
unsigned i, n;
- unsigned nuses = ep->nuses;
- TERMTYPE2 *tp = &(ep->tterm);
+ unsigned nuses;
+ TERMTYPE2 *tp;
+
+ DEBUG(2, (T_CALLED("_nc_wrap_entry(ep=%p, copy_strings=%d)"), (void *)
+ ep, copy_strings));
+ if (ep == NULL || stringbuf == NULL)
+ _nc_err_abort("_nc_wrap_entry called without initialization");
+ nuses = ep->nuses;
+ tp = &(ep->tterm);
if (copy_strings) {
next_free = 0; /* clear static storage */
/* copy term_names, Strings, uses */
tp->term_names = _nc_save_str(tp->term_names);
for_each_string(i, tp) {
- if (tp->Strings[i] != ABSENT_STRING &&
- tp->Strings[i] != CANCELLED_STRING) {
+ if (VALID_STRING(tp->Strings[i])) {
tp->Strings[i] = _nc_save_str(tp->Strings[i]);
}
}
@@ -215,11 +233,13 @@ _nc_wrap_entry(ENTRY * const ep, bool copy_strings)
#endif
for (i = 0; i < nuses; i++) {
- if (useoffsets[i] == ABSENT_OFFSET)
+ if (useoffsets[i] == ABSENT_OFFSET) {
ep->uses[i].name = 0;
- else
- ep->uses[i].name = (tp->str_table + useoffsets[i]);
+ } else {
+ ep->uses[i].name = strdup(tp->str_table + useoffsets[i]);
+ }
}
+ DEBUG(2, (T_RETURN("")));
}
NCURSES_EXPORT(void)
@@ -230,6 +250,8 @@ _nc_merge_entry(ENTRY * const target, ENTRY * const source)
TERMTYPE2 *from = &(source->tterm);
#if NCURSES_XNAMES
TERMTYPE2 copy;
+ size_t str_size, copy_size;
+ char *str_table;
#endif
unsigned i;
@@ -240,9 +262,102 @@ _nc_merge_entry(ENTRY * const target, ENTRY * const source)
_nc_copy_termtype2(&copy, from);
from = &copy;
_nc_align_termtype(to, from);
+ /*
+ * compute the maximum size of the string-table.
+ */
+ str_size = strlen(to->term_names) + 1;
+ for_each_string(i, from) {
+ if (VALID_STRING(from->Strings[i]))
+ str_size += strlen(from->Strings[i]) + 1;
+ }
+ for_each_string(i, to) {
+ if (VALID_STRING(to->Strings[i]))
+ str_size += strlen(to->Strings[i]) + 1;
+ }
+ /* allocate a string-table large enough for both source/target, and
+ * copy all of the strings into that table. In the merge, we will
+ * select from the original source/target lists to construct a new
+ * target list.
+ */
+ if (str_size != 0) {
+ char *str_copied;
+ if ((str_table = malloc(str_size)) == NULL)
+ _nc_err_abort(MSG_NO_MEMORY);
+ str_copied = str_table;
+ _nc_STRCPY(str_copied, to->term_names, str_size);
+ to->term_names = str_copied;
+ copy_size = strlen(str_copied) + 1;
+ str_copied += copy_size;
+ str_size -= copy_size;
+ for_each_string(i, from) {
+ if (VALID_STRING(from->Strings[i])) {
+ _nc_STRCPY(str_copied, from->Strings[i], str_size);
+ from->Strings[i] = str_copied;
+ copy_size = strlen(str_copied) + 1;
+ str_copied += copy_size;
+ str_size -= copy_size;
+ }
+ }
+ for_each_string(i, to) {
+ if (VALID_STRING(to->Strings[i])) {
+ _nc_STRCPY(str_copied, to->Strings[i], str_size);
+ to->Strings[i] = str_copied;
+ copy_size = strlen(str_copied) + 1;
+ str_copied += copy_size;
+ str_size -= copy_size;
+ }
+ }
+ free(to->str_table);
+ to->str_table = str_table;
+ free(from->str_table);
+ }
+ /*
+ * Do the same for the extended-strings (i.e., lists of capabilities).
+ */
+ str_size = 0;
+ for (i = 0; i < NUM_EXT_NAMES(from); ++i) {
+ if (VALID_STRING(from->ext_Names[i]))
+ str_size += strlen(from->ext_Names[i]) + 1;
+ }
+ for (i = 0; i < NUM_EXT_NAMES(to); ++i) {
+ if (VALID_STRING(to->ext_Names[i]))
+ str_size += strlen(to->ext_Names[i]) + 1;
+ }
+ /* allocate a string-table large enough for both source/target, and
+ * copy all of the strings into that table. In the merge, we will
+ * select from the original source/target lists to construct a new
+ * target list.
+ */
+ if (str_size != 0) {
+ char *str_copied;
+ if ((str_table = malloc(str_size)) == NULL)
+ _nc_err_abort(MSG_NO_MEMORY);
+ str_copied = str_table;
+ for (i = 0; i < NUM_EXT_NAMES(from); ++i) {
+ if (VALID_STRING(from->ext_Names[i])) {
+ _nc_STRCPY(str_copied, from->ext_Names[i], str_size);
+ from->ext_Names[i] = str_copied;
+ copy_size = strlen(str_copied) + 1;
+ str_copied += copy_size;
+ str_size -= copy_size;
+ }
+ }
+ for (i = 0; i < NUM_EXT_NAMES(to); ++i) {
+ if (VALID_STRING(to->ext_Names[i])) {
+ _nc_STRCPY(str_copied, to->ext_Names[i], str_size);
+ to->ext_Names[i] = str_copied;
+ copy_size = strlen(str_copied) + 1;
+ str_copied += copy_size;
+ str_size -= copy_size;
+ }
+ }
+ free(to->ext_str_table);
+ to->ext_str_table = str_table;
+ free(from->ext_str_table);
+ }
#endif
for_each_boolean(i, from) {
- if (to->Booleans[i] != (char) CANCELLED_BOOLEAN) {
+ if (to->Booleans[i] != (NCURSES_SBOOL) CANCELLED_BOOLEAN) {
int mergebool = from->Booleans[i];
if (mergebool == CANCELLED_BOOLEAN)
@@ -279,10 +394,7 @@ _nc_merge_entry(ENTRY * const target, ENTRY * const source)
}
}
#if NCURSES_XNAMES
- /* Discard the data allocated in _nc_copy_termtype2, but do not use
- * _nc_free_termtype2 because that frees the string-table (which is
- * not allocated by _nc_copy_termtype2).
- */
+ /* cleanup */
free(copy.Booleans);
free(copy.Numbers);
free(copy.Strings);
@@ -294,7 +406,7 @@ _nc_merge_entry(ENTRY * const target, ENTRY * const source)
NCURSES_EXPORT(void)
_nc_alloc_entry_leaks(void)
{
- if (stringbuf != 0) {
+ if (stringbuf != NULL) {
FreeAndNull(stringbuf);
}
next_free = 0;
diff --git a/ncurses/tinfo/alloc_ttype.c b/ncurses/tinfo/alloc_ttype.c
index 222868ecefcd..304c1b62f4e6 100644
--- a/ncurses/tinfo/alloc_ttype.c
+++ b/ncurses/tinfo/alloc_ttype.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2022,2023 Thomas E. Dickey *
* Copyright 1999-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -43,7 +43,7 @@
#include <tic.h>
-MODULE_ID("$Id: alloc_ttype.c,v 1.33 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: alloc_ttype.c,v 1.51 2023/09/09 23:15:53 tom Exp $")
#if NCURSES_XNAMES
/*
@@ -377,6 +377,9 @@ adjust_cancels(TERMTYPE2 *to, TERMTYPE2 *from)
int last = first + to->ext_Strings;
int j, k;
+ DEBUG(3, (T_CALLED("adjust_cancels(%s), from(%s)"),
+ NonNull(to->term_names),
+ NonNull(from->term_names)));
for (j = first; j < last;) {
char *name = to->ext_Names[j];
int j_str = to->num_Strings - first - to->ext_Strings;
@@ -413,6 +416,7 @@ adjust_cancels(TERMTYPE2 *to, TERMTYPE2 *from)
j++;
}
}
+ DEBUG(3, (T_RETURN("")));
}
NCURSES_EXPORT(void)
@@ -425,11 +429,11 @@ _nc_align_termtype(TERMTYPE2 *to, TERMTYPE2 *from)
na = to ? ((int) NUM_EXT_NAMES(to)) : 0;
nb = from ? ((int) NUM_EXT_NAMES(from)) : 0;
- DEBUG(2, ("align_termtype to(%d:%s), from(%d:%s)",
+ DEBUG(2, (T_CALLED("_nc_align_termtype to(%d:%s), from(%d:%s)"),
na, to ? NonNull(to->term_names) : "?",
nb, from ? NonNull(from->term_names) : "?"));
- if (na != 0 || nb != 0) {
+ if (to != NULL && from != NULL && (na != 0 || nb != 0)) {
int ext_Booleans, ext_Numbers, ext_Strings;
bool used_ext_Names = FALSE;
@@ -446,11 +450,13 @@ _nc_align_termtype(TERMTYPE2 *to, TERMTYPE2 *from)
break;
}
}
- if (same)
+ if (same) {
+ DEBUG(2, (T_RETURN("")));
return;
+ }
}
/*
- * This is where we pay for having a simple extension representation.
+ * This is where we pay for having a simple extension representation.
* Allocate a new ext_Names array and merge the two ext_Names arrays
* into it, updating to's counts for booleans, etc. Fortunately we do
* this only for the terminfo compiler (tic) and comparer (infocmp).
@@ -507,6 +513,7 @@ _nc_align_termtype(TERMTYPE2 *to, TERMTYPE2 *from)
if (!used_ext_Names)
free(ext_Names);
}
+ DEBUG(2, (T_RETURN("")));
}
#endif
@@ -520,15 +527,17 @@ _nc_align_termtype(TERMTYPE2 *to, TERMTYPE2 *from)
static void
copy_termtype(TERMTYPE2 *dst, const TERMTYPE2 *src, int mode)
{
-#if NCURSES_XNAMES || NCURSES_EXT_NUMBERS
unsigned i;
-#endif
+ int pass;
+ char *new_table;
+ size_t new_table_size;
#if NCURSES_EXT_NUMBERS
short *oldptr = 0;
int *newptr = 0;
#endif
- DEBUG(2, ("copy_termtype"));
+ DEBUG(2, (T_CALLED("copy_termtype(dst=%p, src=%p, mode=%d)"), (void *)
+ dst, (const void *) src, mode));
*dst = *src; /* ...to copy the sizes and string-tables */
TYPE_MALLOC(NCURSES_SBOOL, NUM_BOOLEANS(dst), dst->Booleans);
@@ -541,6 +550,40 @@ copy_termtype(TERMTYPE2 *dst, const TERMTYPE2 *src, int mode)
src->Strings,
NUM_STRINGS(dst) * sizeof(dst->Strings[0]));
+ new_table = NULL;
+ new_table_size = 0;
+ for (pass = 0; pass < 2; ++pass) {
+ size_t str_size = 0;
+ if (src->term_names != NULL) {
+ if (pass) {
+ dst->term_names = new_table + str_size;
+ _nc_STRCPY(dst->term_names + str_size,
+ src->term_names,
+ new_table_size - str_size);
+ }
+ str_size += strlen(src->term_names) + 1;
+ }
+ for_each_string(i, src) {
+ if (VALID_STRING(src->Strings[i])) {
+ if (pass) {
+ _nc_STRCPY(new_table + str_size,
+ src->Strings[i],
+ new_table_size - str_size);
+ dst->Strings[i] = new_table + str_size;
+ }
+ str_size += strlen(src->Strings[i]) + 1;
+ }
+ }
+ if (pass) {
+ dst->str_table = new_table;
+ } else {
+ ++str_size;
+ if ((new_table = malloc(str_size)) == NULL)
+ _nc_err_abort(MSG_NO_MEMORY);
+ new_table_size = str_size;
+ }
+ }
+
#if NCURSES_EXT_NUMBERS
if ((mode & dstINT) == 0) {
DEBUG(2, ("...convert int ->short"));
@@ -584,36 +627,75 @@ copy_termtype(TERMTYPE2 *dst, const TERMTYPE2 *src, int mode)
NUM_NUMBERS(dst) * sizeof(dst->Numbers[0]));
#endif
- /* FIXME: we probably should also copy str_table and ext_str_table,
- * but tic and infocmp are not written to exploit that (yet).
- */
-
#if NCURSES_XNAMES
if ((i = NUM_EXT_NAMES(src)) != 0) {
TYPE_MALLOC(char *, i, dst->ext_Names);
memcpy(dst->ext_Names, src->ext_Names, i * sizeof(char *));
+
+ new_table = NULL;
+ new_table_size = 0;
+ for (pass = 0; pass < 2; ++pass) {
+ size_t str_size = 0;
+ char *raw_data = src->ext_str_table;
+ if (raw_data != NULL) {
+ for (i = 0; i < src->ext_Strings; ++i) {
+ size_t skip = strlen(raw_data) + 1;
+ if (skip != 1) {
+ if (pass) {
+ _nc_STRCPY(new_table + str_size,
+ raw_data,
+ new_table_size - str_size);
+ }
+ str_size += skip;
+ raw_data += skip;
+ }
+ }
+ }
+ for (i = 0; i < NUM_EXT_NAMES(dst); ++i) {
+ if (VALID_STRING(src->ext_Names[i])) {
+ if (pass) {
+ _nc_STRCPY(new_table + str_size,
+ src->ext_Names[i],
+ new_table_size - str_size);
+ dst->ext_Names[i] = new_table + str_size;
+ }
+ str_size += strlen(src->ext_Names[i]) + 1;
+ }
+ }
+ if (pass) {
+ dst->ext_str_table = new_table;
+ } else {
+ ++str_size;
+ if ((new_table = calloc(str_size, 1)) == NULL)
+ _nc_err_abort(MSG_NO_MEMORY);
+ new_table_size = str_size;
+ }
+ }
} else {
dst->ext_Names = 0;
}
#endif
+ (void) new_table_size;
+ DEBUG(2, (T_RETURN("")));
}
-/*
- * This entrypoint is used by tack 1.07
- */
NCURSES_EXPORT(void)
_nc_copy_termtype(TERMTYPE *dst, const TERMTYPE *src)
{
- DEBUG(2, ("_nc_copy_termtype..."));
+ DEBUG(2, (T_CALLED("_nc_copy_termtype(dst=%p, src=%p)"), (void *) dst,
+ (const void *) src));
copy_termtype((TERMTYPE2 *) dst, (const TERMTYPE2 *) src, 0);
+ DEBUG(2, (T_RETURN("")));
}
#if NCURSES_EXT_NUMBERS
NCURSES_EXPORT(void)
_nc_copy_termtype2(TERMTYPE2 *dst, const TERMTYPE2 *src)
{
- DEBUG(2, ("_nc_copy_termtype2..."));
+ DEBUG(2, (T_CALLED("_nc_copy_termtype2(dst=%p, src=%p)"), (void *) dst,
+ (const void *) src));
copy_termtype(dst, src, srcINT | dstINT);
+ DEBUG(2, (T_RETURN("")));
}
/*
@@ -623,7 +705,9 @@ _nc_copy_termtype2(TERMTYPE2 *dst, const TERMTYPE2 *src)
NCURSES_EXPORT(void)
_nc_export_termtype2(TERMTYPE *dst, const TERMTYPE2 *src)
{
- DEBUG(2, ("_nc_export_termtype2..."));
+ DEBUG(2, (T_CALLED("_nc_export_termtype2(dst=%p, src=%p)"), (void *)
+ dst, (const void *) src));
copy_termtype((TERMTYPE2 *) dst, src, srcINT);
+ DEBUG(2, (T_RETURN("")));
}
#endif /* NCURSES_EXT_NUMBERS */
diff --git a/ncurses/tinfo/captoinfo.c b/ncurses/tinfo/captoinfo.c
index de0133b386c6..7e14731df368 100644
--- a/ncurses/tinfo/captoinfo.c
+++ b/ncurses/tinfo/captoinfo.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2020,2021 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -98,7 +98,7 @@
#include <ctype.h>
#include <tic.h>
-MODULE_ID("$Id: captoinfo.c,v 1.100 2020/07/08 21:39:54 tom Exp $")
+MODULE_ID("$Id: captoinfo.c,v 1.102 2021/09/04 10:29:15 tom Exp $")
#if 0
#define DEBUG_THIS(p) DEBUG(9, p)
@@ -634,7 +634,10 @@ _nc_infotocap(const char *cap GCC_UNUSED, const char *str, int const parameteriz
int offset;
} fixups[MAX_TC_FIXUPS];
- DEBUG_THIS(("_nc_infotocap params %d, %s", parameterized, str));
+ DEBUG_THIS(("_nc_infotocap %s params %d, %s",
+ _nc_strict_bsd ? "strict" : "loose",
+ parameterized,
+ _nc_visbuf(str)));
/* we may have to move some trailing mandatory padding up front */
padding = str + strlen(str) - 1;
@@ -673,6 +676,11 @@ _nc_infotocap(const char *cap GCC_UNUSED, const char *str, int const parameteriz
bufptr = save_char(bufptr, *str++);
bufptr = save_char(bufptr, *str);
}
+ } else if (str[0] == ':') {
+ bufptr = save_char(bufptr, '\\');
+ bufptr = save_char(bufptr, '0');
+ bufptr = save_char(bufptr, '7');
+ bufptr = save_char(bufptr, '2');
} else if (str[0] == '\\') {
if (str[1] == '\0' || (str + 1) == trimmed) {
bufptr = save_string(bufptr, "\\134");
@@ -932,7 +940,7 @@ _nc_infotocap(const char *cap GCC_UNUSED, const char *str, int const parameteriz
break;
/*
- * %s isn't in termcap, but it's convenient to pass it through
+ * %s isn't in termcap, but it is convenient to pass it through
* so we can represent things like terminfo pfkey strings in
* termcap notation.
*/
diff --git a/ncurses/tinfo/comp_error.c b/ncurses/tinfo/comp_error.c
index 48f48784d8db..3e6b4022a74b 100644
--- a/ncurses/tinfo/comp_error.c
+++ b/ncurses/tinfo/comp_error.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2020,2023 Thomas E. Dickey *
* Copyright 1998-2012,2016 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -42,7 +42,7 @@
#include <tic.h>
-MODULE_ID("$Id: comp_error.c,v 1.40 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: comp_error.c,v 1.44 2023/06/15 20:27:02 tom Exp $")
NCURSES_EXPORT_VAR(bool) _nc_suppress_warnings = FALSE;
NCURSES_EXPORT_VAR(int) _nc_curr_line = 0; /* current line # in input */
@@ -60,8 +60,15 @@ _nc_get_source(void)
NCURSES_EXPORT(void)
_nc_set_source(const char *const name)
{
- FreeIfNeeded(SourceName);
- SourceName = strdup(name);
+ if (name == NULL) {
+ free(SourceName);
+ SourceName = NULL;
+ } else if (SourceName == NULL) {
+ SourceName = strdup(name);
+ } else if (strcmp(name, SourceName)) {
+ free(SourceName);
+ SourceName = strdup(name);
+ }
}
NCURSES_EXPORT(void)
@@ -95,9 +102,9 @@ static NCURSES_INLINE void
where_is_problem(void)
{
fprintf(stderr, "\"%s\"", SourceName ? SourceName : "?");
- if (_nc_curr_line >= 0)
+ if (_nc_curr_line > 0)
fprintf(stderr, ", line %d", _nc_curr_line);
- if (_nc_curr_col >= 0)
+ if (_nc_curr_col > 0)
fprintf(stderr, ", col %d", _nc_curr_col);
if (TermType != 0 && TermType[0] != '\0')
fprintf(stderr, ", terminal '%s'", TermType);
@@ -148,9 +155,7 @@ _nc_syserr_abort(const char *const fmt, ...)
/* If we're debugging, try to show where the problem occurred - this
* will dump core.
*/
-#ifndef USE_ROOT_ENVIRON
- if (getuid() != ROOT_UID)
-#endif
+ if (_nc_env_access())
abort();
#endif
/* Dumping core in production code is not a good idea.
diff --git a/ncurses/tinfo/comp_expand.c b/ncurses/tinfo/comp_expand.c
index 02e38e6e3c7a..e971384f52f2 100644
--- a/ncurses/tinfo/comp_expand.c
+++ b/ncurses/tinfo/comp_expand.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020-2021,2023 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -36,7 +36,7 @@
#include <ctype.h>
#include <tic.h>
-MODULE_ID("$Id: comp_expand.c,v 1.32 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: comp_expand.c,v 1.35 2023/04/28 20:59:06 tom Exp $")
#if 0
#define DEBUG_THIS(p) DEBUG(9, p)
@@ -87,7 +87,10 @@ _nc_tic_expand(const char *srcp, bool tic_format, int numbers)
return 0;
}
- DEBUG_THIS(("_nc_tic_expand %s", _nc_visbuf(srcp)));
+ DEBUG_THIS(("_nc_tic_expand %s:%s:%s",
+ tic_format ? "ti" : "tc",
+ numbers ? "#" : "",
+ _nc_visbuf(srcp)));
bufp = 0;
while ((ch = UChar(*str)) != 0) {
if (ch == '%' && REALPRINT(str + 1)) {
@@ -126,7 +129,6 @@ _nc_tic_expand(const char *srcp, bool tic_format, int numbers)
if (dst != 0
&& *dst == R_BRACE
&& value < 127
- && value != '\\' /* FIXME */
&& isprint((int) value)) {
ch = (int) value;
buffer[bufp++] = S_QUOTE;
@@ -162,12 +164,12 @@ _nc_tic_expand(const char *srcp, bool tic_format, int numbers)
trailing_spaces(str))) {
buffer[bufp++] = '\\';
buffer[bufp++] = 's';
- } else if ((ch == ',' || ch == ':' || ch == '^') && tic_format) {
+ } else if ((ch == ',' || ch == '^') && tic_format) {
buffer[bufp++] = '\\';
buffer[bufp++] = (char) ch;
} else if (REALPRINT(str)
&& (ch != ','
- && ch != ':'
+ && !(ch == ':' && !tic_format)
&& !(ch == '!' && !tic_format)
&& ch != '^'))
buffer[bufp++] = (char) ch;
@@ -203,7 +205,7 @@ _nc_tic_expand(const char *srcp, bool tic_format, int numbers)
/*
* If most of a short string is ASCII control characters, reformat the
- * string to show those in up-arrow format. For longer strings, it's
+ * string to show those in up-arrow format. For longer strings, it is
* more likely that the characters are just binary coding.
*
* If we're formatting termcap, just use the shorter format (up-arrows).
diff --git a/ncurses/tinfo/comp_hash.c b/ncurses/tinfo/comp_hash.c
index 80755f22052c..4b081afa2c28 100644
--- a/ncurses/tinfo/comp_hash.c
+++ b/ncurses/tinfo/comp_hash.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2020,2023 Thomas E. Dickey *
* Copyright 1998-2008,2009 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -45,13 +45,12 @@
#include <tic.h>
#include <hashsize.h>
-MODULE_ID("$Id: comp_hash.c,v 1.53 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: comp_hash.c,v 1.55 2023/06/24 13:29:43 tom Exp $")
/*
* Finds the entry for the given string in the hash table if present.
* Returns a pointer to the entry in the table or 0 if not found.
*/
-/* entrypoint used by tack 1.07 */
NCURSES_EXPORT(struct name_table_entry const *)
_nc_find_entry(const char *string,
const HashValue * hash_table)
@@ -104,14 +103,16 @@ _nc_find_type_entry(const char *string,
&& data->table_data[hashvalue] >= 0) {
const struct name_table_entry *const table = _nc_get_table(termcap);
- ptr = table + data->table_data[hashvalue];
- while (ptr->nte_type != type
- || !data->compare_names(ptr->nte_name, string)) {
- if (ptr->nte_link < 0) {
- ptr = 0;
- break;
+ if (table != NULL) {
+ ptr = table + data->table_data[hashvalue];
+ while (ptr->nte_type != type
+ || !data->compare_names(ptr->nte_name, string)) {
+ if (ptr->nte_link < 0) {
+ ptr = 0;
+ break;
+ }
+ ptr = table + (ptr->nte_link + data->table_data[data->table_size]);
}
- ptr = table + (ptr->nte_link + data->table_data[data->table_size]);
}
}
diff --git a/ncurses/tinfo/comp_parse.c b/ncurses/tinfo/comp_parse.c
index 2a89a866c374..dec4b925625e 100644
--- a/ncurses/tinfo/comp_parse.c
+++ b/ncurses/tinfo/comp_parse.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -48,7 +48,7 @@
#include <tic.h>
-MODULE_ID("$Id: comp_parse.c,v 1.110 2020/02/29 15:46:00 anonymous.maarten Exp $")
+MODULE_ID("$Id: comp_parse.c,v 1.134 2024/02/10 15:52:11 tom Exp $")
static void sanity_check2(TERMTYPE2 *, bool);
NCURSES_IMPEXP void (NCURSES_API *_nc_check_termtype2) (TERMTYPE2 *, bool) = sanity_check2;
@@ -59,8 +59,11 @@ static void
enqueue(ENTRY * ep)
/* add an entry to the in-core list */
{
- ENTRY *newp = _nc_copy_entry(ep);
+ ENTRY *newp;
+ DEBUG(2, (T_CALLED("enqueue(ep=%p)"), (void *) ep));
+
+ newp = _nc_copy_entry(ep);
if (newp == 0)
_nc_err_abort(MSG_NO_MEMORY);
@@ -70,6 +73,7 @@ enqueue(ENTRY * ep)
newp->next = 0;
if (newp->last)
newp->last->next = newp;
+ DEBUG(2, (T_RETURN("")));
}
#define NAMEBUFFER_SIZE (MAX_NAME_SIZE + 2)
@@ -217,6 +221,12 @@ _nc_read_entry_source(FILE *fp, char *buf,
bool oldsuppress = _nc_suppress_warnings;
int immediate = 0;
+ DEBUG(2,
+ (T_CALLED("_nc_read_entry_source("
+ "file=%p, buf=%p, literal=%d, silent=%d, hook=%#"
+ PRIxPTR ")"),
+ (void *) fp, buf, literal, silent, CASTxPTR(hook)));
+
if (silent)
_nc_suppress_warnings = TRUE; /* shut the lexer up, too */
@@ -244,29 +254,33 @@ _nc_read_entry_source(FILE *fp, char *buf,
FreeIfNeeded(thisentry.tterm.Booleans);
FreeIfNeeded(thisentry.tterm.Numbers);
FreeIfNeeded(thisentry.tterm.Strings);
+ FreeIfNeeded(thisentry.tterm.str_table);
#if NCURSES_XNAMES
FreeIfNeeded(thisentry.tterm.ext_Names);
+ FreeIfNeeded(thisentry.tterm.ext_str_table);
#endif
}
}
if (_nc_tail) {
/* set up the head pointer */
- for (_nc_head = _nc_tail; _nc_head->last; _nc_head = _nc_head->last)
- continue;
+ for (_nc_head = _nc_tail; _nc_head->last; _nc_head = _nc_head->last) {
+ /* EMPTY */ ;
+ }
- DEBUG(1, ("head = %s", _nc_head->tterm.term_names));
- DEBUG(1, ("tail = %s", _nc_tail->tterm.term_names));
+ DEBUG(2, ("head = %s", _nc_head->tterm.term_names));
+ DEBUG(2, ("tail = %s", _nc_tail->tterm.term_names));
}
#ifdef TRACE
else if (!immediate)
- DEBUG(1, ("no entries parsed"));
+ DEBUG(2, ("no entries parsed"));
#endif
_nc_suppress_warnings = oldsuppress;
+ DEBUG(2, (T_RETURN("")));
}
-#if NCURSES_XNAMES
+#if 0 && NCURSES_XNAMES
static unsigned
find_capname(TERMTYPE2 *p, const char *name)
{
@@ -298,7 +312,9 @@ extended_captype(TERMTYPE2 *p, unsigned which)
} else {
limit += p->ext_Strings;
if (limit != 0 && which < limit) {
- result = STRING;
+ result = ((p->Strings[STRCOUNT + which] != CANCELLED_STRING)
+ ? STRING
+ : CANCEL);
} else if (which >= limit) {
result = CANCEL;
}
@@ -354,24 +370,19 @@ invalid_merge(TERMTYPE2 *to, TERMTYPE2 *from)
&& tf <= STRING
&& (tt == STRING) != (tf == STRING)) {
if (from_name != 0 && strcmp(to_name, from_name)) {
- DEBUG(2,
- ("merge of %s to %s changes type of %s from %s to %s",
- from_name,
- to_name,
- from->ext_Names[n],
- name_of_captype(tf),
- name_of_captype(tt)));
+ _nc_warning("merge of %s to %s changes type of %s from %s to %s",
+ from_name,
+ to_name,
+ from->ext_Names[n],
+ name_of_captype(tf),
+ name_of_captype(tt));
} else {
- DEBUG(2, ("merge of %s changes type of %s from %s to %s",
- to_name,
- from->ext_Names[n],
- name_of_captype(tf),
- name_of_captype(tt)));
+ _nc_warning("merge of %s changes type of %s from %s to %s",
+ to_name,
+ from->ext_Names[n],
+ name_of_captype(tf),
+ name_of_captype(tt));
}
- _nc_warning("merge changes type of %s from %s to %s",
- from->ext_Names[n],
- name_of_captype(tf),
- name_of_captype(tt));
rc = TRUE;
}
}
@@ -392,10 +403,10 @@ _nc_resolve_uses2(bool fullresolve, bool literal)
{
ENTRY *qp, *rp, *lastread = 0;
bool keepgoing;
- unsigned i;
- int unresolved, total_unresolved, multiples;
+ unsigned i, j;
+ int total_unresolved, multiples;
- DEBUG(2, ("RESOLUTION BEGINNING"));
+ DEBUG(2, (T_CALLED("_nc_resolve_uses2")));
/*
* Check for multiple occurrences of the same name.
@@ -404,7 +415,7 @@ _nc_resolve_uses2(bool fullresolve, bool literal)
for_entry_list(qp) {
int matchcount = 0;
- for_entry_list(rp) {
+ for_entry_list2(rp, qp->next) {
if (qp > rp
&& check_collisions(qp->tterm.term_names,
rp->tterm.term_names,
@@ -420,8 +431,10 @@ _nc_resolve_uses2(bool fullresolve, bool literal)
}
}
}
- if (multiples > 0)
+ if (multiples > 0) {
+ DEBUG(2, (T_RETURN("false")));
return (FALSE);
+ }
DEBUG(2, ("NO MULTIPLE NAME OCCURRENCES"));
@@ -431,7 +444,6 @@ _nc_resolve_uses2(bool fullresolve, bool literal)
total_unresolved = 0;
_nc_curr_col = -1;
for_entry_list(qp) {
- unresolved = 0;
for (i = 0; i < qp->nuses; i++) {
bool foundit;
char *child = _nc_first_name(qp->tterm.term_names);
@@ -449,11 +461,21 @@ _nc_resolve_uses2(bool fullresolve, bool literal)
for_entry_list(rp) {
if (rp != qp
&& _nc_name_match(rp->tterm.term_names, lookfor, "|")) {
- DEBUG(2, ("%s: resolving use=%s (in core)",
- child, lookfor));
+ DEBUG(2, ("%s: resolving use=%s %p (in core)",
+ child, lookfor, lookfor));
qp->uses[i].link = rp;
foundit = TRUE;
+
+ /* verify that there are no earlier uses */
+ for (j = 0; j < i; ++j) {
+ if (qp->uses[j].link != NULL
+ && !strcmp(qp->uses[j].link->tterm.term_names,
+ rp->tterm.term_names)) {
+ _nc_warning("duplicate use=%s", lookfor);
+ break;
+ }
+ }
}
}
@@ -475,12 +497,21 @@ _nc_resolve_uses2(bool fullresolve, bool literal)
qp->uses[i].link = rp;
foundit = TRUE;
+
+ /* verify that there are no earlier uses */
+ for (j = 0; j < i; ++j) {
+ if (qp->uses[j].link != NULL
+ && !strcmp(qp->uses[j].link->tterm.term_names,
+ rp->tterm.term_names)) {
+ _nc_warning("duplicate use=%s", lookfor);
+ break;
+ }
+ }
}
}
/* no good, mark this one unresolvable and complain */
if (!foundit) {
- unresolved++;
total_unresolved++;
_nc_curr_line = (int) lookline;
@@ -492,6 +523,7 @@ _nc_resolve_uses2(bool fullresolve, bool literal)
if (total_unresolved) {
/* free entries read in off disk */
_nc_free_entries(lastread);
+ DEBUG(2, (T_RETURN("false")));
return (FALSE);
}
@@ -510,20 +542,22 @@ _nc_resolve_uses2(bool fullresolve, bool literal)
for_entry_list(qp) {
if (qp->nuses > 0) {
- DEBUG(2, ("%s: attempting merge",
- _nc_first_name(qp->tterm.term_names)));
+ DEBUG(2, ("%s: attempting merge of %d entries",
+ _nc_first_name(qp->tterm.term_names),
+ qp->nuses));
/*
* If any of the use entries we're looking for is
* incomplete, punt. We'll catch this entry on a
* subsequent pass.
*/
- for (i = 0; i < qp->nuses; i++)
+ for (i = 0; i < qp->nuses; i++) {
if (qp->uses[i].link
&& qp->uses[i].link->nuses) {
DEBUG(2, ("%s: use entry %d unresolved",
_nc_first_name(qp->tterm.term_names), i));
goto incomplete;
}
+ }
/*
* First, make sure there is no garbage in the
@@ -538,10 +572,10 @@ _nc_resolve_uses2(bool fullresolve, bool literal)
* (reverse) order.
*/
for (; qp->nuses; qp->nuses--) {
- validate_merge(&merged,
- qp->uses[qp->nuses - 1].link);
- _nc_merge_entry(&merged,
- qp->uses[qp->nuses - 1].link);
+ int n = (int) (qp->nuses - 1);
+ validate_merge(&merged, qp->uses[n].link);
+ _nc_merge_entry(&merged, qp->uses[n].link);
+ free(qp->uses[n].name);
}
/*
@@ -556,8 +590,10 @@ _nc_resolve_uses2(bool fullresolve, bool literal)
FreeIfNeeded(qp->tterm.Booleans);
FreeIfNeeded(qp->tterm.Numbers);
FreeIfNeeded(qp->tterm.Strings);
+ FreeIfNeeded(qp->tterm.str_table);
#if NCURSES_XNAMES
FreeIfNeeded(qp->tterm.ext_Names);
+ FreeIfNeeded(qp->tterm.ext_str_table);
#endif
qp->tterm = merged.tterm;
_nc_wrap_entry(qp, TRUE);
@@ -577,13 +613,6 @@ _nc_resolve_uses2(bool fullresolve, bool literal)
DEBUG(2, ("MERGES COMPLETED OK"));
}
- /*
- * We'd like to free entries read in off disk at this point, but can't.
- * The merge_entry() code doesn't copy the strings in the use entries,
- * it just aliases them. If this ever changes, do a
- * free_entries(lastread) here.
- */
-
DEBUG(2, ("RESOLUTION FINISHED"));
if (fullresolve) {
@@ -614,6 +643,14 @@ _nc_resolve_uses2(bool fullresolve, bool literal)
_nc_check_termtype2(&qp->tterm, literal);
+ /*
+ * Checking calls tparm, which can allocate memory. Fix leaks.
+ */
+#define TPS(name) fake_tm.tparm_state.name
+ FreeAndNull(TPS(out_buff));
+ FreeAndNull(TPS(fmt_buff));
+#undef TPS
+
_nc_set_screen(save_SP);
set_curterm(save_tm);
} else {
@@ -623,6 +660,7 @@ _nc_resolve_uses2(bool fullresolve, bool literal)
DEBUG(2, ("SANITY CHECK FINISHED"));
}
+ DEBUG(2, (T_RETURN("true")));
return (TRUE);
}
@@ -709,7 +747,7 @@ sanity_check2(TERMTYPE2 *tp, bool literal)
NCURSES_EXPORT(void)
_nc_leaks_tic(void)
{
- T((T_CALLED("_nc_free_tic()")));
+ T((T_CALLED("_nc_leaks_tic()")));
_nc_globals.leak_checking = TRUE;
_nc_alloc_entry_leaks();
_nc_captoinfo_leaks();
@@ -719,11 +757,13 @@ _nc_leaks_tic(void)
_nc_codes_leaks();
#endif
_nc_tic_expand(0, FALSE, 0);
+ T((T_RETURN("")));
}
NCURSES_EXPORT(void)
_nc_free_tic(int code)
{
+ T((T_CALLED("_nc_free_tic(%d)"), code));
_nc_leaks_tic();
exit_terminfo(code);
}
diff --git a/ncurses/tinfo/comp_scan.c b/ncurses/tinfo/comp_scan.c
index 87929d20aeb9..3ba0835e2fb8 100644
--- a/ncurses/tinfo/comp_scan.c
+++ b/ncurses/tinfo/comp_scan.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+,* Copyright 2020-2022,2023 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -51,7 +51,7 @@
#include <ctype.h>
#include <tic.h>
-MODULE_ID("$Id: comp_scan.c,v 1.109 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: comp_scan.c,v 1.122 2023/05/27 20:13:10 tom Exp $")
/*
* Maximum length of string capability we'll accept before raising an error.
@@ -112,6 +112,9 @@ static FILE *yyin; /* scanner's input file descriptor */
NCURSES_EXPORT(void)
_nc_reset_input(FILE *fp, char *buf)
{
+ TR(TRACE_DATABASE,
+ (T_CALLED("_nc_reset_input(fp=%p, buf=%p)"), (void *) fp, buf));
+
pushtype = NO_PUSHBACK;
if (pushname != 0)
pushname[0] = '\0';
@@ -121,6 +124,8 @@ _nc_reset_input(FILE *fp, char *buf)
if (fp != 0)
_nc_curr_line = 0;
_nc_curr_col = 0;
+
+ returnVoidDB;
}
/*
@@ -136,7 +141,7 @@ last_char(int from_end)
while (len--) {
if (!isspace(UChar(bufptr[len]))) {
- if (from_end < (int) len)
+ if (from_end <= (int) len)
result = bufptr[(int) len - from_end];
break;
}
@@ -145,6 +150,32 @@ last_char(int from_end)
}
/*
+ * Read, like fgets(), but error-out if the input contains nulls.
+ */
+static int
+get_text(char *buffer, int length)
+{
+ int count = 0;
+ int limit = length - 1;
+
+ while (limit-- > 0) {
+ int ch = fgetc(yyin);
+
+ if (ch == '\0') {
+ _nc_err_abort("This is not a text-file");
+ } else if (ch == EOF) {
+ break;
+ }
+ ++count;
+ *buffer++ = (char) ch;
+ if (ch == '\n')
+ break;
+ }
+ *buffer = '\0';
+ return count;
+}
+
+/*
* int next_char()
*
* Returns the next character in the input stream. Comments and leading
@@ -209,7 +240,7 @@ next_char(void)
if (used == 0)
_nc_curr_file_pos = ftell(yyin);
- if (fgets(result + used, (int) (allocated - used), yyin) != 0) {
+ if (get_text(result + used, (int) (allocated - used))) {
bufstart = result;
if (used == 0) {
if (_nc_curr_line == 0
@@ -271,7 +302,7 @@ push_back(int c)
/* push a character back onto the input stream */
{
if (bufptr == bufstart)
- _nc_syserr_abort("Can't backspace off beginning of line");
+ _nc_syserr_abort("cannot backspace off beginning of line");
*--bufptr = (char) c;
_nc_curr_col--;
}
@@ -280,14 +311,16 @@ static long
stream_pos(void)
/* return our current character position in the input stream */
{
- return (yyin ? ftell(yyin) : (bufptr ? bufptr - bufstart : 0));
+ return (yyin ? ftell(yyin) : (bufptr ? (long) (bufptr - bufstart) : 0));
}
static bool
end_of_stream(void)
/* are we at end of input? */
{
- return ((yyin ? feof(yyin) : (bufptr && *bufptr == '\0'))
+ return ((yyin
+ ? (feof(yyin) && (bufptr == NULL || *bufptr == '\0'))
+ : (bufptr && *bufptr == '\0'))
? TRUE : FALSE);
}
@@ -295,9 +328,11 @@ end_of_stream(void)
static NCURSES_INLINE int
eat_escaped_newline(int ch)
{
- if (ch == '\\')
- while ((ch = next_char()) == '\n' || iswhite(ch))
- continue;
+ if (ch == '\\') {
+ while ((ch = next_char()) == '\n' || iswhite(ch)) {
+ /* EMPTY */ ;
+ }
+ }
return ch;
}
@@ -367,6 +402,8 @@ _nc_get_token(bool silent)
int old_col;
#endif
+ DEBUG(3, (T_CALLED("_nc_get_token(silent=%d)"), silent));
+
if (pushtype != NO_PUSHBACK) {
int retval = pushtype;
@@ -379,6 +416,7 @@ _nc_get_token(bool silent)
pushname[0] = '\0';
/* currtok wasn't altered by _nc_push_token() */
+ DEBUG(3, (T_RETURN("%d"), retval));
return (retval);
}
@@ -389,6 +427,7 @@ _nc_get_token(bool silent)
if (_nc_curr_token.tk_name == tok_buf)
_nc_curr_token.tk_name = 0;
}
+ DEBUG(3, (T_RETURN("%d"), EOF));
return (EOF);
}
@@ -397,7 +436,6 @@ _nc_get_token(bool silent)
while ((ch = next_char()) == '\n' || iswhite(ch)) {
if (ch == '\n')
had_newline = TRUE;
- continue;
}
ch = eat_escaped_newline(ch);
@@ -422,8 +460,9 @@ _nc_get_token(bool silent)
dot_flag = TRUE;
DEBUG(8, ("dot-flag set"));
- while ((ch = next_char()) == '.' || iswhite(ch))
- continue;
+ while ((ch = next_char()) == '.' || iswhite(ch)) {
+ /* EMPTY */ ;
+ }
}
if (ch == EOF) {
@@ -556,7 +595,7 @@ _nc_get_token(bool silent)
* Grrr...what we ought to do here is barf, complaining that
* the entry is malformed. But because a couple of name fields
* in the 8.2 termcap file end with |\, we just have to assume
- * it's termcap syntax.
+ * it is termcap syntax.
*/
_nc_syntax = SYN_TERMCAP;
separator = ':';
@@ -564,8 +603,9 @@ _nc_get_token(bool silent)
/* throw away trailing /, *$/ */
for (--tok_ptr;
iswhite(*tok_ptr) || *tok_ptr == ',';
- tok_ptr--)
- continue;
+ tok_ptr--) {
+ /* EMPTY */ ;
+ }
tok_ptr[1] = '\0';
}
@@ -587,14 +627,15 @@ _nc_get_token(bool silent)
*/
if (after_list != 0) {
if (!silent) {
- if (*after_list == '\0')
+ if (*after_list == '\0' || strchr("|", after_list[1]) != NULL) {
_nc_warning("empty longname field");
- else if (strchr(after_list, ' ') == 0)
+ } else if (strchr(after_list, ' ') == 0) {
_nc_warning("older tic versions may treat the description field as an alias");
+ }
}
} else {
after_list = tok_buf + strlen(tok_buf);
- DEBUG(1, ("missing description"));
+ DEBUG(2, ("missing description"));
}
/*
@@ -769,6 +810,7 @@ _nc_get_token(bool silent)
: "<null>"),
type));
+ DEBUG(3, (T_RETURN("%d"), type));
return (type);
}
@@ -792,7 +834,7 @@ _nc_get_token(bool silent)
*/
NCURSES_EXPORT(int)
-_nc_trans_string(char *ptr, char *last)
+_nc_trans_string(char *ptr, const char *const last)
{
int count = 0;
int number = 0;
diff --git a/ncurses/tinfo/db_iterator.c b/ncurses/tinfo/db_iterator.c
index f0726682c403..db3872e3f90d 100644
--- a/ncurses/tinfo/db_iterator.c
+++ b/ncurses/tinfo/db_iterator.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2022,2023 Thomas E. Dickey *
* Copyright 2006-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -44,7 +44,7 @@
#include <hashed_db.h>
#endif
-MODULE_ID("$Id: db_iterator.c,v 1.48 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: db_iterator.c,v 1.50 2023/06/24 21:52:32 tom Exp $")
#define HaveTicDirectory _nc_globals.have_tic_directory
#define KeepTicDirectory _nc_globals.keep_tic_directory
@@ -202,6 +202,13 @@ free_cache(void)
FreeAndNull(my_list);
}
+static void
+update_tic_dir(const char *update)
+{
+ free((char *) TicDirectory);
+ TicDirectory = update;
+}
+
/*
* Record the "official" location of the terminfo directory, according to
* the place where we're writing to, or the normal default, if not.
@@ -211,8 +218,9 @@ _nc_tic_dir(const char *path)
{
T(("_nc_tic_dir %s", NonNull(path)));
if (!KeepTicDirectory) {
- if (path != 0) {
- TicDirectory = path;
+ if (path != NULL) {
+ if (path != TicDirectory)
+ update_tic_dir(strdup(path));
HaveTicDirectory = TRUE;
} else if (HaveTicDirectory == 0) {
if (use_terminfo_vars()) {
@@ -375,8 +383,11 @@ _nc_first_db(DBDIRS * state, int *offset)
*/
for (j = 0; my_list[j] != 0; ++j) {
#ifdef TERMINFO
- if (*my_list[j] == '\0')
- my_list[j] = strdup(TERMINFO);
+ if (*my_list[j] == '\0') {
+ char *my_copy = strdup(TERMINFO);
+ if (my_copy != 0)
+ my_list[j] = my_copy;
+ }
#endif
trim_formatting(my_list[j]);
for (k = 0; k < j; ++k) {
@@ -444,5 +455,6 @@ _nc_db_iterator_leaks(void)
FreeIfNeeded(my_vars[which].value);
my_vars[which].value = 0;
}
+ update_tic_dir(NULL);
}
#endif
diff --git a/ncurses/tinfo/doalloc.c b/ncurses/tinfo/doalloc.c
index 0bda12cae8be..e3b1a2e96c1b 100644
--- a/ncurses/tinfo/doalloc.c
+++ b/ncurses/tinfo/doalloc.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2002,2012 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -40,15 +40,18 @@
#include <curses.priv.h>
-MODULE_ID("$Id: doalloc.c,v 1.13 2020/08/30 00:27:15 tom Exp $")
+MODULE_ID("$Id: doalloc.c,v 1.14 2021/04/24 23:43:39 tom Exp $")
void *
_nc_doalloc(void *oldp, size_t amount)
{
void *newp;
- if (oldp != 0) {
- if ((newp = realloc(oldp, amount)) == 0) {
+ if (oldp != NULL) {
+ if (amount == 0) {
+ free(oldp);
+ newp = NULL;
+ } else if ((newp = realloc(oldp, amount)) == 0) {
free(oldp);
errno = ENOMEM; /* just in case 'free' reset */
}
diff --git a/ncurses/tinfo/entries.c b/ncurses/tinfo/entries.c
index 1c55bfec0b78..f47fd3fe9eff 100644
--- a/ncurses/tinfo/entries.c
+++ b/ncurses/tinfo/entries.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2022,2023 Thomas E. Dickey *
* Copyright 2006-2012,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -38,7 +38,7 @@
#include <tic.h>
-MODULE_ID("$Id: entries.c,v 1.30 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: entries.c,v 1.35 2023/05/27 20:13:10 tom Exp $")
/****************************************************************************
*
@@ -65,7 +65,7 @@ NCURSES_EXPORT_VAR(ENTRY *) _nc_head = 0;
NCURSES_EXPORT_VAR(ENTRY *) _nc_tail = 0;
static ENTRY *
-_nc_delink_entry(ENTRY * headp, TERMTYPE2 *tterm)
+_nc_delink_entry(ENTRY * headp, const TERMTYPE2 *const tterm)
/* delink the allocated storage for the given list entry */
{
ENTRY *ep, *last;
@@ -119,12 +119,28 @@ _nc_leaks_tinfo(void)
char *s;
#endif
- T((T_CALLED("_nc_free_tinfo()")));
+ T((T_CALLED("_nc_leaks_tinfo()")));
#if NO_LEAKS
_nc_globals.leak_checking = TRUE;
- _nc_free_tparm();
+ _nc_free_tparm(cur_term);
_nc_tgetent_leaks();
+#ifdef USE_PTHREADS
+ /*
+ * Discard any prescreen data which is not used for the current screen.
+ */
+ _nc_lock_global(screen);
+ {
+ PRESCREEN_LIST *p;
+ pthread_t id = GetThreadID();
+ for (p = _nc_prescreen.allocated; p != 0; p = p->next) {
+ if (p->id == id && p->sp != CURRENT_SCREEN) {
+ FreeAndNull(p->sp);
+ }
+ }
+ }
+ _nc_unlock_global(screen);
+#endif
if (TerminalOf(CURRENT_SCREEN) != 0) {
del_curterm(TerminalOf(CURRENT_SCREEN));
}
@@ -161,6 +177,7 @@ _nc_leaks_tinfo(void)
NCURSES_EXPORT(void)
_nc_free_tinfo(int code)
{
+ T((T_CALLED("_nc_free_tinfo(%d)"), code));
_nc_leaks_tinfo();
exit(code);
}
@@ -169,6 +186,7 @@ _nc_free_tinfo(int code)
NCURSES_EXPORT(void)
exit_terminfo(int code)
{
+ T((T_CALLED("exit_terminfo(%d)"), code));
#if NO_LEAKS
_nc_leaks_tinfo();
#endif
diff --git a/ncurses/tinfo/free_ttype.c b/ncurses/tinfo/free_ttype.c
index 7f0fbcc35f29..7935152a7920 100644
--- a/ncurses/tinfo/free_ttype.c
+++ b/ncurses/tinfo/free_ttype.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020-2022,2023 Thomas E. Dickey *
* Copyright 1999-2011,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -43,12 +43,12 @@
#include <tic.h>
-MODULE_ID("$Id: free_ttype.c,v 1.19 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: free_ttype.c,v 1.22 2023/04/22 15:12:57 tom Exp $")
static void
really_free_termtype(TERMTYPE2 *ptr, bool freeStrings)
{
- T(("_nc_free_termtype(%s)", ptr->term_names));
+ T(("really_free_termtype(%s) %d", ptr->term_names, freeStrings));
if (freeStrings) {
FreeIfNeeded(ptr->str_table);
@@ -66,15 +66,21 @@ really_free_termtype(TERMTYPE2 *ptr, bool freeStrings)
_nc_free_entry(_nc_head, ptr);
}
-/*
- * This entrypoint is used by tack 1.07
- */
NCURSES_EXPORT(void)
_nc_free_termtype(TERMTYPE *ptr)
{
really_free_termtype((TERMTYPE2 *) ptr, !NCURSES_EXT_NUMBERS);
}
+/*
+ * These similar entrypoints are not used outside of ncurses.
+ */
+NCURSES_EXPORT(void)
+_nc_free_termtype1(TERMTYPE *ptr)
+{
+ really_free_termtype((TERMTYPE2 *) ptr, TRUE);
+}
+
#if NCURSES_EXT_NUMBERS
NCURSES_EXPORT(void)
_nc_free_termtype2(TERMTYPE2 *ptr)
diff --git a/ncurses/tinfo/init_keytry.c b/ncurses/tinfo/init_keytry.c
index 1669c6414c18..ef20dfb1da08 100644
--- a/ncurses/tinfo/init_keytry.c
+++ b/ncurses/tinfo/init_keytry.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2023 Thomas E. Dickey *
* Copyright 1999-2010,2016 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -30,7 +30,7 @@
#include <curses.priv.h>
#include <tic.h> /* struct tinfo_fkeys */
-MODULE_ID("$Id: init_keytry.c,v 1.19 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: init_keytry.c,v 1.20 2023/09/16 12:55:01 tom Exp $")
/*
** _nc_init_keytry()
@@ -67,6 +67,8 @@ _nc_tinfo_fkeysf(void)
NCURSES_EXPORT(void)
_nc_init_keytry(SCREEN *sp)
{
+ T(("_nc_init_keytry(%p)", (void *) sp));
+
/* The sp->_keytry value is initialized in newterm(), where the sp
* structure is created, because we can not tell where keypad() or
* mouse_activate() (which will call keyok()) are first called.
@@ -95,7 +97,7 @@ _nc_init_keytry(SCREEN *sp)
char *value = tp->Strings[n];
if (name != 0
&& *name == 'k'
- && value != 0
+ && VALID_STRING(value)
&& NCURSES_SP_NAME(key_defined) (NCURSES_SP_ARGx
value) == 0) {
(void) _nc_add_to_try(&(sp->_keytry),
diff --git a/ncurses/tinfo/lib_cur_term.c b/ncurses/tinfo/lib_cur_term.c
index 0373aebb11b9..1f8db2c1e0c8 100644
--- a/ncurses/tinfo/lib_cur_term.c
+++ b/ncurses/tinfo/lib_cur_term.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+,* Copyright 2020-2021,2022 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -41,7 +41,7 @@
#include <termcap.h> /* ospeed */
#include <tic.h> /* VALID_STRING */
-MODULE_ID("$Id: lib_cur_term.c,v 1.43 2020/10/24 18:54:32 tom Exp $")
+MODULE_ID("$Id: lib_cur_term.c,v 1.49 2022/05/28 17:56:55 tom Exp $")
#undef CUR
#define CUR TerminalType(termp).
@@ -147,7 +147,11 @@ NCURSES_SP_NAME(del_curterm) (NCURSES_SP_DCLx TERMINAL *termp)
);
#if NCURSES_EXT_NUMBERS
- _nc_free_termtype(&termp->type);
+#if NCURSES_EXT_COLORS
+ _nc_free_termtype1(&termp->type);
+#else
+ _nc_free_termtype2(&termp->type);
+#endif
#endif
_nc_free_termtype2(&TerminalType(termp));
if (termp == cur)
@@ -167,10 +171,17 @@ NCURSES_SP_NAME(del_curterm) (NCURSES_SP_DCLx TERMINAL *termp)
/* discard memory used in tgetent's cache for this terminal */
_nc_tgetent_leak(termp);
#endif
+ if (--_nc_globals.terminal_count == 0) {
+ _nc_free_tparm(termp);
+ }
+
+ free(termp->tparm_state.fmt_buff);
+ free(termp->tparm_state.out_buff);
free(termp);
rc = OK;
}
+
returnCode(rc);
}
diff --git a/ncurses/tinfo/lib_data.c b/ncurses/tinfo/lib_data.c
index 39274f4e7c39..b817f49bd78a 100644
--- a/ncurses/tinfo/lib_data.c
+++ b/ncurses/tinfo/lib_data.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2022,2024 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -43,7 +43,7 @@
#include <curses.priv.h>
-MODULE_ID("$Id: lib_data.c,v 1.81 2020/06/13 22:01:14 tom Exp $")
+MODULE_ID("$Id: lib_data.c,v 1.89 2024/02/24 18:11:38 tom Exp $")
/*
* OS/2's native linker complains if we don't initialize public data when
@@ -148,6 +148,7 @@ NCURSES_EXPORT_VAR(NCURSES_GLOBALS) _nc_globals = {
TGETENT_0s, /* tgetent_cache */
0, /* tgetent_index */
0, /* tgetent_sequence */
+ 0, /* terminal_count */
0, /* dbd_blob */
0, /* dbd_list */
@@ -195,7 +196,6 @@ NCURSES_EXPORT_VAR(NCURSES_GLOBALS) _nc_globals = {
#endif
#ifdef TRACE
FALSE, /* trace_opened */
- CHARS_0s, /* trace_fname */
0, /* trace_level */
NULL, /* trace_fp */
-1, /* trace_fd */
@@ -251,7 +251,6 @@ NCURSES_EXPORT_VAR(NCURSES_PRESCREEN) _nc_prescreen = {
NULL, /* fmt_buff */
0, /* fmt_size */
- NUM_VARS_0s, /* dynamic_var */
NUM_VARS_0s, /* static_vars */
#ifdef TRACE
NULL, /* tname */
@@ -363,25 +362,28 @@ _nc_mutex_init(pthread_mutex_t * obj)
NCURSES_EXPORT(int)
_nc_mutex_lock(pthread_mutex_t * obj)
{
- if (_nc_use_pthreads == 0)
- return 0;
- return pthread_mutex_lock(obj);
+ int rc = 0;
+ if (_nc_use_pthreads != 0)
+ rc = pthread_mutex_lock(obj);
+ return rc;
}
NCURSES_EXPORT(int)
_nc_mutex_trylock(pthread_mutex_t * obj)
{
- if (_nc_use_pthreads == 0)
- return 0;
- return pthread_mutex_trylock(obj);
+ int rc = 0;
+ if (_nc_use_pthreads != 0)
+ rc = pthread_mutex_trylock(obj);
+ return rc;
}
NCURSES_EXPORT(int)
_nc_mutex_unlock(pthread_mutex_t * obj)
{
- if (_nc_use_pthreads == 0)
- return 0;
- return pthread_mutex_unlock(obj);
+ int rc = 0;
+ if (_nc_use_pthreads != 0)
+ rc = pthread_mutex_unlock(obj);
+ return rc;
}
#endif /* USE_PTHREADS */
diff --git a/ncurses/tinfo/lib_kernel.c b/ncurses/tinfo/lib_kernel.c
index d5b021b80728..46f652b0a30a 100644
--- a/ncurses/tinfo/lib_kernel.c
+++ b/ncurses/tinfo/lib_kernel.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020-2022,2023 Thomas E. Dickey *
* Copyright 1998-2009,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -49,7 +49,7 @@
#include <curses.priv.h>
-MODULE_ID("$Id: lib_kernel.c,v 1.34 2020/11/21 22:05:58 tom Exp $")
+MODULE_ID("$Id: lib_kernel.c,v 1.36 2023/06/10 13:29:06 tom Exp $")
#ifdef TERMIOS
static int
@@ -59,7 +59,7 @@ _nc_vdisable(void)
#if defined(_POSIX_VDISABLE) && HAVE_UNISTD_H
value = _POSIX_VDISABLE;
#endif
-#if defined(_PC_VDISABLE)
+#if defined(_PC_VDISABLE) && HAVE_FPATHCONF
if (value == -1) {
value = (int) fpathconf(0, _PC_VDISABLE);
if (value == -1) {
@@ -148,34 +148,40 @@ killchar(void)
}
#endif
+static void
+flush_input(int fd)
+{
+#ifdef TERMIOS
+ tcflush(fd, TCIFLUSH);
+#else /* !TERMIOS */
+ errno = 0;
+ do {
+#if defined(EXP_WIN32_DRIVER)
+ _nc_console_flush(_nc_console_fd2handle(fd));
+#else
+ ioctl(fd, TIOCFLUSH, 0);
+#endif
+ } while
+ (errno == EINTR);
+#endif
+}
+
/*
* flushinp()
*
- * Flush any input on cur_term->Filedes
- *
+ * Flush any input on tty
*/
NCURSES_EXPORT(int)
NCURSES_SP_NAME(flushinp) (NCURSES_SP_DCL0)
{
- TERMINAL *termp = TerminalOf(SP_PARM);
-
T((T_CALLED("flushinp(%p)"), (void *) SP_PARM));
- if (termp != 0) {
-#ifdef TERMIOS
- tcflush(termp->Filedes, TCIFLUSH);
-#else
- errno = 0;
- do {
-#if defined(EXP_WIN32_DRIVER)
- _nc_console_flush(_nc_console_fd2handle(termp->Filedes));
-#else
- ioctl(termp->Filedes, TIOCFLUSH, 0);
-#endif
- } while
- (errno == EINTR);
-#endif
+ if (SP_PARM != 0) {
+ if (NC_ISATTY(SP_PARM->_ifd))
+ flush_input(SP_PARM->_ifd);
+ else if (NC_ISATTY(SP_PARM->_ofd))
+ flush_input(SP_PARM->_ofd);
if (SP_PARM) {
SP_PARM->_fifohead = -1;
SP_PARM->_fifotail = 0;
diff --git a/ncurses/tinfo/lib_longname.c b/ncurses/tinfo/lib_longname.c
index 835d15ccafc1..9dc6d71e2ad4 100644
--- a/ncurses/tinfo/lib_longname.c
+++ b/ncurses/tinfo/lib_longname.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2010,2015 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -43,7 +43,7 @@
#include <curses.priv.h>
-MODULE_ID("$Id: lib_longname.c,v 1.14 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: lib_longname.c,v 1.15 2021/04/03 22:36:21 tom Exp $")
#if USE_REENTRANT
NCURSES_EXPORT(char *)
@@ -51,11 +51,12 @@ NCURSES_SP_NAME(longname) (NCURSES_SP_DCL0)
{
static char empty[] =
{'\0'};
- char *ptr;
T((T_CALLED("longname(%p)"), (void *) SP_PARM));
if (SP_PARM) {
+ char *ptr;
+
for (ptr = SP_PARM->_ttytype + strlen(SP_PARM->_ttytype);
ptr > SP_PARM->_ttytype;
ptr--)
diff --git a/ncurses/tinfo/lib_napms.c b/ncurses/tinfo/lib_napms.c
index 3a9fc3168784..1b89a54c799b 100644
--- a/ncurses/tinfo/lib_napms.c
+++ b/ncurses/tinfo/lib_napms.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2023 Thomas E. Dickey *
* Copyright 1998-2014,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -52,13 +52,16 @@
#endif
#endif
-MODULE_ID("$Id: lib_napms.c,v 1.27 2020/08/15 19:45:23 tom Exp $")
+MODULE_ID("$Id: lib_napms.c,v 1.28 2023/09/16 16:09:33 tom Exp $")
NCURSES_EXPORT(int)
NCURSES_SP_NAME(napms) (NCURSES_SP_DCLx int ms)
{
T((T_CALLED("napms(%d)"), ms));
+ if (ms > MAX_DELAY_MSECS)
+ ms = MAX_DELAY_MSECS;
+
#ifdef USE_TERM_DRIVER
CallDriver_1(SP_PARM, td_nap, ms);
#else /* !USE_TERM_DRIVER */
diff --git a/ncurses/tinfo/lib_options.c b/ncurses/tinfo/lib_options.c
index 017a34aac6e7..6a8bb39489ce 100644
--- a/ncurses/tinfo/lib_options.c
+++ b/ncurses/tinfo/lib_options.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020,2021 Thomas E. Dickey *
+ * Copyright 2020-2021,2023 Thomas E. Dickey *
* Copyright 1998-2014,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -47,7 +47,7 @@
#define CUR SP_TERMTYPE
#endif
-MODULE_ID("$Id: lib_options.c,v 1.82 2021/02/14 00:17:35 tom Exp $")
+MODULE_ID("$Id: lib_options.c,v 1.83 2023/04/29 18:56:12 tom Exp $")
NCURSES_EXPORT(int)
idlok(WINDOW *win, bool flag)
@@ -92,7 +92,7 @@ NCURSES_SP_NAME(halfdelay) (NCURSES_SP_DCLx int t)
returnCode(ERR);
NCURSES_SP_NAME(cbreak) (NCURSES_SP_ARG);
- SP_PARM->_cbreak = t + 1;
+ IsCbreak(SP_PARM) = t + 1;
returnCode(OK);
}
diff --git a/ncurses/tinfo/lib_print.c b/ncurses/tinfo/lib_print.c
index 4accdf6786ea..e7d8535ef603 100644
--- a/ncurses/tinfo/lib_print.c
+++ b/ncurses/tinfo/lib_print.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2021,2023 Thomas E. Dickey *
* Copyright 1998-2011,2012 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -40,14 +40,14 @@
#define CUR SP_TERMTYPE
#endif
-MODULE_ID("$Id: lib_print.c,v 1.28 2020/08/29 16:22:03 juergen Exp $")
+MODULE_ID("$Id: lib_print.c,v 1.31 2023/06/10 12:44:41 tom Exp $")
NCURSES_EXPORT(int)
NCURSES_SP_NAME(mcprint) (NCURSES_SP_DCLx char *data, int len)
/* ship binary character data to the printer via mc4/mc5/mc5p */
{
int result;
- char *mybuf, *switchon;
+ char *mybuf = NULL, *switchon;
size_t onsize, offsize;
size_t need;
@@ -73,6 +73,7 @@ NCURSES_SP_NAME(mcprint) (NCURSES_SP_DCLx char *data, int len)
if (switchon == 0
|| (mybuf = typeMalloc(char, need + 1)) == 0) {
+ free(mybuf);
errno = ENOMEM;
return (ERR);
}
@@ -89,7 +90,7 @@ NCURSES_SP_NAME(mcprint) (NCURSES_SP_DCLx char *data, int len)
* data has actually been shipped to the terminal. If the write(2)
* operation is truly atomic we're protected from this.
*/
- result = (int) write(TerminalOf(SP_PARM)->Filedes, mybuf, need);
+ result = (int) write(SP_PARM->_ofd, mybuf, need);
/*
* By giving up our scheduler slot here we increase the odds that the
diff --git a/ncurses/tinfo/lib_raw.c b/ncurses/tinfo/lib_raw.c
index 1e47f3b6fbfb..fda6deada2a7 100644
--- a/ncurses/tinfo/lib_raw.c
+++ b/ncurses/tinfo/lib_raw.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020-2023,2024 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -50,7 +50,7 @@
#include <curses.priv.h>
-MODULE_ID("$Id: lib_raw.c,v 1.26 2020/11/21 22:07:48 tom Exp $")
+MODULE_ID("$Id: lib_raw.c,v 1.30 2024/03/30 15:54:17 tom Exp $")
#if HAVE_SYS_TERMIO_H
#include <sys/termio.h> /* needed for ISC */
@@ -116,8 +116,8 @@ NCURSES_SP_NAME(raw) (NCURSES_SP_DCL0)
KbdSetStatus(&kbdinfo, 0);
#endif
if (SP_PARM) {
- SP_PARM->_raw = TRUE;
- SP_PARM->_cbreak = 1;
+ IsRaw(SP_PARM) = TRUE;
+ IsCbreak(SP_PARM) = 1;
}
termp->Nttyb = buf;
}
@@ -151,7 +151,6 @@ NCURSES_SP_NAME(cbreak) (NCURSES_SP_DCL0)
#ifdef TERMIOS
buf.c_lflag &= (unsigned) ~ICANON;
buf.c_iflag &= (unsigned) ~ICRNL;
- buf.c_lflag |= ISIG;
buf.c_cc[VMIN] = 1;
buf.c_cc[VTIME] = 0;
#elif defined(EXP_WIN32_DRIVER)
@@ -163,7 +162,7 @@ NCURSES_SP_NAME(cbreak) (NCURSES_SP_DCL0)
result = NCURSES_SP_NAME(_nc_set_tty_mode) (NCURSES_SP_ARGx &buf);
if (result == OK) {
if (SP_PARM) {
- SP_PARM->_cbreak = 1;
+ IsCbreak(SP_PARM) = 1;
}
termp->Nttyb = buf;
}
@@ -255,8 +254,8 @@ NCURSES_SP_NAME(noraw) (NCURSES_SP_DCL0)
KbdSetStatus(&kbdinfo, 0);
#endif
if (SP_PARM) {
- SP_PARM->_raw = FALSE;
- SP_PARM->_cbreak = 0;
+ IsRaw(SP_PARM) = FALSE;
+ IsCbreak(SP_PARM) = 0;
}
termp->Nttyb = buf;
}
@@ -298,7 +297,7 @@ NCURSES_SP_NAME(nocbreak) (NCURSES_SP_DCL0)
result = NCURSES_SP_NAME(_nc_set_tty_mode) (NCURSES_SP_ARGx &buf);
if (result == OK) {
if (SP_PARM) {
- SP_PARM->_cbreak = 0;
+ IsCbreak(SP_PARM) = 0;
}
termp->Nttyb = buf;
}
@@ -395,3 +394,46 @@ intrflush(WINDOW *win GCC_UNUSED, bool flag)
return NCURSES_SP_NAME(intrflush) (CURRENT_SCREEN, win, flag);
}
#endif
+
+#if NCURSES_EXT_FUNCS
+/* *INDENT-OFF* */
+
+/*
+ * SCREEN is always opaque, but nl/raw/cbreak/echo set properties in it.
+ * As an extension, provide a way to query the properties.
+ *
+ * There are other properties which could be queried, e.g., filter, keypad,
+ * use_env, use_meta, but these particular properties are saved/restored within
+ * the wgetnstr() and wgetn_wstr() functions, which requires that the higher
+ * level curses library knows about the internal state of the lower level
+ * terminfo library.
+ */
+
+#define is_TEST(show,what) \
+ NCURSES_EXPORT(int) \
+ NCURSES_SP_NAME(show) (NCURSES_SP_DCL0) \
+ { \
+ return ((SP_PARM != NULL) ? (what(SP_PARM) ? 1 : 0) : -1); \
+ }
+
+is_TEST(is_nl, IsNl)
+is_TEST(is_raw, IsRaw)
+is_TEST(is_cbreak, IsCbreak)
+is_TEST(is_echo, IsEcho)
+
+#if NCURSES_SP_FUNCS
+#undef is_TEST
+#define is_TEST(show) \
+ NCURSES_EXPORT(int) \
+ show(void) \
+ { \
+ return NCURSES_SP_NAME(show) (CURRENT_SCREEN); \
+ }
+is_TEST(is_nl)
+is_TEST(is_raw)
+is_TEST(is_cbreak)
+is_TEST(is_echo)
+#endif
+
+/* *INDENT-ON* */
+#endif /* extensions */
diff --git a/ncurses/tinfo/lib_setup.c b/ncurses/tinfo/lib_setup.c
index 976227effade..99097f00fc1d 100644
--- a/ncurses/tinfo/lib_setup.c
+++ b/ncurses/tinfo/lib_setup.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -49,7 +49,7 @@
#include <locale.h>
#endif
-MODULE_ID("$Id: lib_setup.c,v 1.212 2020/09/09 19:43:00 juergen Exp $")
+MODULE_ID("$Id: lib_setup.c,v 1.240 2024/04/20 17:04:05 tom Exp $")
/****************************************************************************
*
@@ -66,7 +66,7 @@ MODULE_ID("$Id: lib_setup.c,v 1.212 2020/09/09 19:43:00 juergen Exp $")
#endif
#if NEED_PTEM_H
- /* On SCO, they neglected to define struct winsize in termios.h -- it's only
+ /* On SCO, they neglected to define struct winsize in termios.h -- it is only
* in termio.h and ptem.h (the former conflicts with other definitions).
*/
# include <sys/stream.h>
@@ -272,6 +272,191 @@ use_tioctl(bool f)
}
#endif
+#if !(defined(USE_TERM_DRIVER) || defined(EXP_WIN32_DRIVER))
+static void
+_nc_default_screensize(TERMINAL *termp, int *linep, int *colp)
+{
+ /* if we can't get dynamic info about the size, use static */
+ if (*linep <= 0) {
+ *linep = (int) lines;
+ }
+ if (*colp <= 0) {
+ *colp = (int) columns;
+ }
+
+ /* the ultimate fallback, assume fixed 24x80 size */
+ if (*linep <= 0) {
+ *linep = 24;
+ }
+ if (*colp <= 0) {
+ *colp = 80;
+ }
+}
+
+#if defined(USE_CHECK_SIZE) && defined(user6) && defined(user7)
+static const char *
+skip_csi(const char *value)
+{
+ if (UChar(*value) == CSI_CHR) {
+ ++value;
+ } else if (*value == ESC_CHR && value[1] == L_BLOCK) {
+ value += 2;
+ }
+ return value;
+}
+
+static bool
+is_expected(const char *value, const char *expected)
+{
+ bool result = FALSE;
+ if (VALID_STRING(value)) {
+ const char *skipped = skip_csi(value);
+ if (skipped != value) {
+ if (!strcmp(skipped, expected))
+ result = TRUE;
+ }
+ }
+ return result;
+}
+
+static bool
+get_position(TERMINAL *termp, int fd, int *row, int *col)
+{
+ bool result = FALSE;
+ size_t need = strlen(user7);
+ int have;
+
+ have = (int) write(fd, user7, need);
+
+ if (have == (int) need) {
+ int y, x;
+ char buf[20];
+ char *s;
+ char cc;
+ const char *skipped;
+ int scanned;
+
+ s = memset(buf, '\0', sizeof(buf));
+ do {
+ size_t ask = (sizeof(buf) - 1 - (size_t) (s - buf));
+ int got = (int) read(fd, s, ask);
+ if (got == 0)
+ break;
+ s += got;
+ *s = '\0';
+ } while (strchr(buf, 'R') == NULL && (size_t) (s + 1 - buf) < sizeof(buf));
+ T(("CPR response %s", _nc_visbuf(buf)));
+ skipped = skip_csi(buf);
+ cc = '\0';
+ if (skipped != buf
+ && *skipped != '\0'
+ && (scanned = sscanf(skip_csi(buf), "%d;%d%c", &y, &x, &cc)) == 3
+ && (cc == 'R')) {
+ *row = y;
+ *col = x;
+ result = TRUE;
+ }
+ }
+ T(("get_position %s %d,%d", result ? "OK" : "ERR", *row, *col));
+ return result;
+}
+
+static bool
+set_position(NCURSES_SP_DCLx TERMINAL *termp, int row, int col)
+{
+ bool result;
+ char *actual = TIPARM_2(cursor_address, row, col);
+ T((T_CALLED("set_position %d,%d)"), row, col));
+#if NCURSES_SP_FUNCS
+ result = (NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx "set_position",
+ actual) == OK);
+ NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_ARG);
+#else
+ /* This does not support padding because without sp-funcs, we have only
+ * the interface using stdio, but we are not guaranteed that Filedes
+ * is the same as fileno(stdout).
+ */
+ result = FALSE;
+ if (actual != NULL) {
+ size_t want = strlen(actual);
+ int have = (int) write(termp->Filedes, actual, want);
+ result = ((int) want == have);
+ }
+#endif
+ returnBool(result);
+}
+
+/*
+ * This is a little more complicated than one might expect, because we do this
+ * before setting up the terminal modes, etc., and cannot use the timeout or
+ * buffering functions.
+ *
+ * We check if the terminal description has the ECMA-48 CPR (cursor position
+ * report) in u7 and the response in u6. The two variations of is_expected()
+ * cover the termcap style and terminfo style, and are equivalent as far as we
+ * are concerned. For analyzing the response, we wait (a short time) for 'R'
+ * to be echoed, and then check if we received two integers in the response.
+ *
+ * In principle, this could run on "any" ECMA-48 terminal, but in practice,
+ * there is a scenario using GNU screen where it uses ncurses with a partially
+ * configured pseudo-terminal, and the CPR response goes to the wrong place.
+ * So we do a simple check to exclude pseudo-terminals.
+ */
+static void
+_nc_check_screensize(SCREEN *sp, TERMINAL *termp, int *linep, int *colp)
+{
+ int fd = termp->Filedes;
+ TTY saved;
+ const char *name = NULL;
+
+ if (IsRealTty(fd, name)
+ && VALID_STRING(cursor_address)
+ && is_expected(user7, "6n")
+ && (is_expected(user6, "%i%d;%dR") ||
+ is_expected(user6, "%i%p1%d;%p2%dR"))
+ && GET_TTY(fd, &saved) == OK) {
+ int current_y = -1, current_x = -1;
+ int updated_y = -1, updated_x = -1;
+ TTY alter = saved;
+
+#if NCURSES_SP_FUNCS
+ if (sp == NULL) {
+ sp = new_prescr();
+ sp->_term = termp;
+ NCURSES_SP_NAME(baudrate) (NCURSES_SP_ARG);
+ }
+#else
+ (void) sp;
+#endif
+
+ T(("trying CPR (u7/u6) with %s", name));
+ alter.c_lflag &= (unsigned) ~(ECHO | ICANON | ISIG | IEXTEN);
+ alter.c_iflag &= (unsigned) ~(IXON | BRKINT | PARMRK);
+ alter.c_cc[VMIN] = 0;
+ alter.c_cc[VTIME] = 1;
+ SET_TTY(fd, &alter);
+
+ if (get_position(termp, fd, &current_y, &current_x)
+ && set_position(NCURSES_SP_ARGx termp, 9999, 9999)
+ && get_position(termp, fd, &updated_y, &updated_x)) {
+ *linep = updated_y;
+ *colp = updated_x;
+ set_position(NCURSES_SP_ARGx termp, current_y, current_x);
+ }
+ /* restore tty modes */
+ SET_TTY(fd, &saved);
+ } else {
+ T(("NOT trying CPR with fd %d (%s): %s",
+ fd, NonNull(name), NC_ISATTY(fd) ? "tty" : "not a tty"));
+ }
+
+ _nc_default_screensize(termp, linep, colp);
+}
+#else /* !USE_CHECK_SIZE */
+#define _nc_check_screensize(sp, termp, linep, colp) /* nothing */
+#endif
+#endif /* !(defined(USE_TERM_DRIVER) || defined(EXP_WIN32_DRIVER)) */
+
NCURSES_EXPORT(void)
_nc_get_screensize(SCREEN *sp,
#ifdef USE_TERM_DRIVER
@@ -305,6 +490,7 @@ _nc_get_screensize(SCREEN *sp,
bool useEnv = _nc_prescreen.use_env;
bool useTioctl = _nc_prescreen.use_tioctl;
+ T((T_CALLED("_nc_get_screensize (%p)"), (void *) sp));
#ifdef EXP_WIN32_DRIVER
/* If we are here, then Windows console is used in terminfo mode.
We need to figure out the size using the console API
@@ -326,6 +512,7 @@ _nc_get_screensize(SCREEN *sp,
}
#endif
+ T(("useEnv:%d useTioctl:%d", useEnv, useTioctl));
if (useEnv || useTioctl) {
#ifdef __EMX__
{
@@ -389,22 +576,10 @@ _nc_get_screensize(SCREEN *sp,
*colp = value;
T(("screen size: environment COLUMNS = %d", *colp));
}
- }
- /* if we can't get dynamic info about the size, use static */
- if (*linep <= 0) {
- *linep = (int) lines;
- }
- if (*colp <= 0) {
- *colp = (int) columns;
- }
-
- /* the ultimate fallback, assume fixed 24x80 size */
- if (*linep <= 0) {
- *linep = 24;
- }
- if (*colp <= 0) {
- *colp = 80;
+ _nc_default_screensize(termp, linep, colp);
+ } else {
+ _nc_check_screensize(sp, termp, linep, colp);
}
/*
@@ -419,6 +594,8 @@ _nc_get_screensize(SCREEN *sp,
OldNumber(termp, lines) = (short) (*linep);
OldNumber(termp, columns) = (short) (*colp);
#endif
+ } else {
+ _nc_check_screensize(sp, termp, linep, colp);
}
T(("screen size is %dx%d", *linep, *colp));
@@ -435,6 +612,7 @@ _nc_get_screensize(SCREEN *sp,
TABSIZE = my_tabsize;
#endif
T(("TABSIZE = %d", TABSIZE));
+ returnVoid;
#endif /* USE_TERM_DRIVER */
}
@@ -503,6 +681,7 @@ _nc_setup_tinfo(const char *const tn, TERMTYPE2 *const tp)
*/
if (status == TGETENT_YES) {
unsigned n;
+ T(("_nc_setup_tinfo - resetting invalid booleans/strings"));
for_each_boolean(n, tp) {
if (!VALID_BOOLEAN(tp->Booleans[n]))
tp->Booleans[n] = FALSE;
@@ -517,9 +696,9 @@ _nc_setup_tinfo(const char *const tn, TERMTYPE2 *const tp)
#endif
/*
-** Take the real command character out of the CC environment variable
-** and substitute it in for the prototype given in 'command_character'.
-*/
+ * Take the real command character out of the CC environment variable
+ * and substitute it in for the prototype given in 'command_character'.
+ */
void
_nc_tinfo_cmdch(TERMINAL *termp, int proto)
{
@@ -535,9 +714,12 @@ _nc_tinfo_cmdch(TERMINAL *termp, int proto)
char CC = *tmp;
for_each_string(i, &(termp->type)) {
- for (tmp = termp->type.Strings[i]; tmp && *tmp; tmp++) {
- if (UChar(*tmp) == proto)
- *tmp = CC;
+ tmp = termp->type.Strings[i];
+ if (VALID_STRING(tmp)) {
+ for (; *tmp; ++tmp) {
+ if (UChar(*tmp) == proto)
+ *tmp = CC;
+ }
}
}
}
@@ -573,22 +755,27 @@ _nc_get_locale(void)
NCURSES_EXPORT(int)
_nc_unicode_locale(void)
{
- int result = 0;
+ static bool initialized = FALSE;
+ static int result = 0;
+
+ if (!initialized) {
#if defined(_NC_WINDOWS) && USE_WIDEC_SUPPORT
- result = 1;
+ result = 1;
#elif HAVE_LANGINFO_CODESET
- char *env = nl_langinfo(CODESET);
- result = !strcmp(env, "UTF-8");
- T(("_nc_unicode_locale(%s) ->%d", env, result));
+ char *env = nl_langinfo(CODESET);
+ result = !strcmp(env, "UTF-8");
+ T(("_nc_unicode_locale(%s) ->%d", env, result));
#else
- char *env = _nc_get_locale();
- if (env != 0) {
- if (strstr(env, ".UTF-8") != 0) {
- result = 1;
- T(("_nc_unicode_locale(%s) ->%d", env, result));
+ char *env = _nc_get_locale();
+ if (env != 0) {
+ if (strstr(env, ".UTF-8") != 0) {
+ result = 1;
+ T(("_nc_unicode_locale(%s) ->%d", env, result));
+ }
}
- }
#endif
+ initialized = TRUE;
+ }
return result;
}
@@ -679,10 +866,9 @@ TINFO_SETUP_TERM(TERMINAL **tp,
#endif
}
myname = strdup(tname);
-
- if (strlen(myname) > MAX_NAME_SIZE) {
+ if (myname == NULL || strlen(myname) > MAX_NAME_SIZE) {
ret_error(TGETENT_ERR,
- "TERM environment must be <= %d characters.\n",
+ "TERM environment must be 1..%d characters.\n",
MAX_NAME_SIZE,
free(myname));
}
@@ -743,6 +929,7 @@ TINFO_SETUP_TERM(TERMINAL **tp,
"Not enough memory to create terminal structure.\n",
myname, free(myname));
}
+ ++_nc_globals.terminal_count;
#if HAVE_SYSCONF
{
long limit;
@@ -763,10 +950,14 @@ TINFO_SETUP_TERM(TERMINAL **tp,
#ifdef USE_TERM_DRIVER
INIT_TERM_DRIVER();
+ /*
+ * _nc_get_driver() will call td_CanHandle() for each driver, and win_driver
+ * needs file descriptor to do the test, so set it before calling.
+ */
+ termp->Filedes = (short) Filedes;
TCB = (TERMINAL_CONTROL_BLOCK *) termp;
code = _nc_globals.term_driver(TCB, myname, errret);
if (code == OK) {
- termp->Filedes = (short) Filedes;
termp->_termname = strdup(myname);
} else {
ret_error1(errret ? *errret : TGETENT_ERR,
@@ -802,6 +993,7 @@ TINFO_SETUP_TERM(TERMINAL **tp,
ret_error1(status, "unknown terminal type.\n",
myname, free(myname));
} else {
+ free(myname);
ret_error0(status, "unexpected return-code\n");
}
}
@@ -817,7 +1009,7 @@ TINFO_SETUP_TERM(TERMINAL **tp,
set_curterm(termp);
- if (command_character)
+ if (VALID_STRING(command_character))
_nc_tinfo_cmdch(termp, UChar(*command_character));
/*
@@ -829,7 +1021,7 @@ TINFO_SETUP_TERM(TERMINAL **tp,
if (NC_ISATTY(Filedes)) {
NCURSES_SP_NAME(def_shell_mode) (NCURSES_SP_ARG);
NCURSES_SP_NAME(def_prog_mode) (NCURSES_SP_ARG);
- baudrate();
+ NCURSES_SP_NAME(baudrate) (NCURSES_SP_ARG);
}
code = OK;
#endif
@@ -906,6 +1098,7 @@ _nc_forget_prescr(void)
{
PRESCREEN_LIST *p, *q;
pthread_t id = GetThreadID();
+ _nc_lock_global(screen);
for (p = _nc_prescreen.allocated, q = 0; p != 0; q = p, p = p->next) {
if (p->id == id) {
if (q) {
@@ -917,6 +1110,7 @@ _nc_forget_prescr(void)
break;
}
}
+ _nc_unlock_global(screen);
}
#endif /* USE_PTHREADS */
@@ -988,6 +1182,7 @@ _nc_setupterm(const char *tname,
int rc = ERR;
TERMINAL *termp = 0;
+ _nc_init_pthreads();
_nc_lock_global(prescreen);
START_TRACE();
if (TINFO_SETUP_TERM(&termp, tname, Filedes, errret, reuse) == OK) {
@@ -997,6 +1192,7 @@ _nc_setupterm(const char *tname,
}
}
_nc_unlock_global(prescreen);
+
return rc;
}
#endif
diff --git a/ncurses/tinfo/lib_termcap.c b/ncurses/tinfo/lib_termcap.c
index 5ce43a3c4890..2ece985914e9 100644
--- a/ncurses/tinfo/lib_termcap.c
+++ b/ncurses/tinfo/lib_termcap.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2020,2023 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -49,7 +49,7 @@
#define CUR SP_TERMTYPE
#endif
-MODULE_ID("$Id: lib_termcap.c,v 1.88 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: lib_termcap.c,v 1.89 2023/05/27 20:13:10 tom Exp $")
NCURSES_EXPORT_VAR(char *) UP = 0;
NCURSES_EXPORT_VAR(char *) BC = 0;
@@ -399,7 +399,7 @@ tgetstr(const char *id, char **area)
#undef CacheInx
#define CacheInx num
NCURSES_EXPORT(void)
-_nc_tgetent_leak(TERMINAL *termp)
+_nc_tgetent_leak(const TERMINAL *const termp)
{
if (termp != 0) {
int num;
diff --git a/ncurses/tinfo/lib_tgoto.c b/ncurses/tinfo/lib_tgoto.c
index 9cf5e100ce87..58b561fa7c78 100644
--- a/ncurses/tinfo/lib_tgoto.c
+++ b/ncurses/tinfo/lib_tgoto.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2020,2023 Thomas E. Dickey *
* Copyright 2000-2008,2012 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -36,7 +36,7 @@
#include <ctype.h>
#include <termcap.h>
-MODULE_ID("$Id: lib_tgoto.c,v 1.21 2020/05/27 23:55:56 tom Exp $")
+MODULE_ID("$Id: lib_tgoto.c,v 1.23 2023/04/16 17:19:40 tom Exp $")
#if !PURE_TERMINFO
static bool
@@ -207,6 +207,16 @@ tgoto(const char *string, int x, int y)
result = tgoto_internal(string, x, y);
else
#endif
- result = TIPARM_2(string, y, x);
+ if ((result = TIPARM_2(string, y, x)) == NULL) {
+ /*
+ * Because termcap did not provide a more general solution such as
+ * tparm(), it was necessary to handle single-parameter capabilities
+ * using tgoto(). The internal _nc_tiparm() function returns a NULL
+ * for that case; retry for the single-parameter case.
+ */
+ if ((result = TIPARM_1(string, y)) == NULL) {
+ result = TIPARM_0(string);
+ }
+ }
returnPtr(result);
}
diff --git a/ncurses/tinfo/lib_tparm.c b/ncurses/tinfo/lib_tparm.c
index b8104eabcd5e..5666b27b7e09 100644
--- a/ncurses/tinfo/lib_tparm.c
+++ b/ncurses/tinfo/lib_tparm.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2020,2021 Thomas E. Dickey *
+ * Copyright 2018-2021,2023 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -53,7 +53,7 @@
#include <ctype.h>
#include <tic.h>
-MODULE_ID("$Id: lib_tparm.c,v 1.129 2021/02/14 00:09:49 tom Exp $")
+MODULE_ID("$Id: lib_tparm.c,v 1.153 2023/11/04 19:28:41 tom Exp $")
/*
* char *
@@ -117,9 +117,14 @@ MODULE_ID("$Id: lib_tparm.c,v 1.129 2021/02/14 00:09:49 tom Exp $")
NCURSES_EXPORT_VAR(int) _nc_tparm_err = 0;
-#define TPS(var) _nc_prescreen.tparm_state.var
+#define TPS(var) tps->var
#define popcount _nc_popcount /* workaround for NetBSD 6.0 defect */
+#define get_tparm_state(term) \
+ (term != NULL \
+ ? &(term->tparm_state) \
+ : &(_nc_prescreen.tparm_state))
+
#define isUPPER(c) ((c) >= 'A' && (c) <= 'Z')
#define isLOWER(c) ((c) >= 'a' && (c) <= 'z')
#define tc_BUMP() if (level < 0 && number < 2) number++
@@ -137,10 +142,8 @@ typedef struct {
#if HAVE_TSEARCH
#define MyCache _nc_globals.cached_tparm
#define MyCount _nc_globals.count_tparm
-#if NO_LEAKS
static int which_tparm;
static TPARM_DATA **delete_tparm;
-#endif
#endif /* HAVE_TSEARCH */
static char dummy[] = ""; /* avoid const-cast */
@@ -155,10 +158,9 @@ cmp_format(const void *p, const void *q)
}
#endif
-#if NO_LEAKS
#if HAVE_TSEARCH
static void
-visit_nodes(const void *nodep, const VISIT which, const int depth)
+visit_nodes(const void *nodep, VISIT which, int depth)
{
(void) depth;
if (which == preorder || which == leaf) {
@@ -169,22 +171,27 @@ visit_nodes(const void *nodep, const VISIT which, const int depth)
#endif
NCURSES_EXPORT(void)
-_nc_free_tparm(void)
+_nc_free_tparm(TERMINAL *termp)
{
+ TPARM_STATE *tps = get_tparm_state(termp);
#if HAVE_TSEARCH
if (MyCount != 0) {
- delete_tparm = typeMalloc(TPARM_DATA *, MyCount);
- which_tparm = 0;
- twalk(MyCache, visit_nodes);
- for (which_tparm = 0; which_tparm < MyCount; ++which_tparm) {
- TPARM_DATA *ptr = delete_tparm[which_tparm];
- tdelete(ptr, &MyCache, cmp_format);
- free((char *) ptr->format);
- free(ptr);
+ delete_tparm = typeCalloc(TPARM_DATA *, MyCount);
+ if (delete_tparm != NULL) {
+ which_tparm = 0;
+ twalk(MyCache, visit_nodes);
+ for (which_tparm = 0; which_tparm < MyCount; ++which_tparm) {
+ TPARM_DATA *ptr = delete_tparm[which_tparm];
+ if (ptr != NULL) {
+ tdelete(ptr, &MyCache, cmp_format);
+ free((char *) ptr->format);
+ free(ptr);
+ }
+ }
+ which_tparm = 0;
+ twalk(MyCache, visit_nodes);
+ FreeAndNull(delete_tparm);
}
- which_tparm = 0;
- twalk(MyCache, visit_nodes);
- FreeAndNull(delete_tparm);
MyCount = 0;
which_tparm = 0;
}
@@ -196,107 +203,159 @@ _nc_free_tparm(void)
FreeAndNull(TPS(fmt_buff));
TPS(fmt_size) = 0;
}
-#endif
-static NCURSES_INLINE void
-get_space(size_t need)
+static int
+tparm_error(TPARM_STATE *tps, const char *message)
{
- need += TPS(out_used);
- if (need > TPS(out_size)) {
- TPS(out_size) = need * 2;
- TYPE_REALLOC(char, TPS(out_size), TPS(out_buff));
- }
+ (void) tps;
+ (void) message;
+ DEBUG(2, ("%s: %s", message, _nc_visbuf(TPS(tparam_base))));
+ return ++_nc_tparm_err;
+}
+
+#define get_space(tps, need) \
+{ \
+ size_t need2get = need + TPS(out_used); \
+ if (need2get > TPS(out_size)) { \
+ TPS(out_size) = need2get * 2; \
+ TYPE_REALLOC(char, TPS(out_size), TPS(out_buff)); \
+ } \
}
+#if NCURSES_EXPANDED
static NCURSES_INLINE void
-save_text(const char *fmt, const char *s, int len)
-{
- size_t s_len = (size_t) len + strlen(s) + strlen(fmt);
- get_space(s_len + 1);
+ (get_space) (TPARM_STATE *tps, size_t need) {
+ get_space(tps, need);
+}
- _nc_SPRINTF(TPS(out_buff) + TPS(out_used),
- _nc_SLIMIT(TPS(out_size) - TPS(out_used))
- fmt, s);
- TPS(out_used) += strlen(TPS(out_buff) + TPS(out_used));
+#undef get_space
+#endif
+
+#define save_text(tps, fmt, s, len) \
+{ \
+ size_t s_len = (size_t) len + strlen(s) + strlen(fmt); \
+ get_space(tps, s_len + 1); \
+ _nc_SPRINTF(TPS(out_buff) + TPS(out_used), \
+ _nc_SLIMIT(TPS(out_size) - TPS(out_used)) \
+ fmt, s); \
+ TPS(out_used) += strlen(TPS(out_buff) + TPS(out_used)); \
}
+#if NCURSES_EXPANDED
static NCURSES_INLINE void
-save_number(const char *fmt, int number, int len)
-{
- size_t s_len = (size_t) len + 30 + strlen(fmt);
- get_space(s_len + 1);
+ (save_text) (TPARM_STATE *tps, const char *fmt, const char *s, int len) {
+ save_text(tps, fmt, s, len);
+}
- _nc_SPRINTF(TPS(out_buff) + TPS(out_used),
- _nc_SLIMIT(TPS(out_size) - TPS(out_used))
- fmt, number);
- TPS(out_used) += strlen(TPS(out_buff) + TPS(out_used));
+#undef save_text
+#endif
+
+#define save_number(tps, fmt, number, len) \
+{ \
+ size_t s_len = (size_t) len + 30 + strlen(fmt); \
+ get_space(tps, s_len + 1); \
+ _nc_SPRINTF(TPS(out_buff) + TPS(out_used), \
+ _nc_SLIMIT(TPS(out_size) - TPS(out_used)) \
+ fmt, number); \
+ TPS(out_used) += strlen(TPS(out_buff) + TPS(out_used)); \
}
+#if NCURSES_EXPANDED
static NCURSES_INLINE void
-save_char(int c)
-{
- if (c == 0)
- c = 0200;
- get_space((size_t) 1);
- TPS(out_buff)[TPS(out_used)++] = (char) c;
+ (save_number) (TPARM_STATE *tps, const char *fmt, int number, int len) {
+ save_number(tps, fmt, number, len);
}
+#undef save_number
+#endif
+
+#define save_char(tps, c) \
+{ \
+ get_space(tps, (size_t) 1); \
+ TPS(out_buff)[TPS(out_used)++] = (char) ((c == 0) ? 0200 : c); \
+}
+
+#if NCURSES_EXPANDED
static NCURSES_INLINE void
-npush(int x)
-{
- if (TPS(stack_ptr) < STACKSIZE) {
- TPS(stack)[TPS(stack_ptr)].num_type = TRUE;
- TPS(stack)[TPS(stack_ptr)].data.num = x;
- TPS(stack_ptr)++;
- } else {
- DEBUG(2, ("npush: stack overflow: %s", _nc_visbuf(TPS(tparam_base))));
- _nc_tparm_err++;
- }
+ (save_char) (TPARM_STATE *tps, int c) {
+ save_char(tps, c);
}
-static NCURSES_INLINE int
-npop(void)
-{
- int result = 0;
- if (TPS(stack_ptr) > 0) {
- TPS(stack_ptr)--;
- if (TPS(stack)[TPS(stack_ptr)].num_type)
- result = TPS(stack)[TPS(stack_ptr)].data.num;
- } else {
- DEBUG(2, ("npop: stack underflow: %s", _nc_visbuf(TPS(tparam_base))));
- _nc_tparm_err++;
- }
- return result;
+#undef save_char
+#endif
+
+#define npush(tps, x) \
+{ \
+ if (TPS(stack_ptr) < STACKSIZE) { \
+ TPS(stack)[TPS(stack_ptr)].num_type = TRUE; \
+ TPS(stack)[TPS(stack_ptr)].data.num = x; \
+ TPS(stack_ptr)++; \
+ } else { \
+ (void) tparm_error(tps, "npush: stack overflow"); \
+ } \
}
+#if NCURSES_EXPANDED
static NCURSES_INLINE void
-spush(char *x)
-{
- if (TPS(stack_ptr) < STACKSIZE) {
- TPS(stack)[TPS(stack_ptr)].num_type = FALSE;
- TPS(stack)[TPS(stack_ptr)].data.str = x;
- TPS(stack_ptr)++;
- } else {
- DEBUG(2, ("spush: stack overflow: %s", _nc_visbuf(TPS(tparam_base))));
- _nc_tparm_err++;
- }
+ (npush) (TPARM_STATE *tps, int x) {
+ npush(tps, x);
+}
+
+#undef npush
+#endif
+
+#define spush(tps, x) \
+{ \
+ if (TPS(stack_ptr) < STACKSIZE) { \
+ TPS(stack)[TPS(stack_ptr)].num_type = FALSE; \
+ TPS(stack)[TPS(stack_ptr)].data.str = x; \
+ TPS(stack_ptr)++; \
+ } else { \
+ (void) tparm_error(tps, "spush: stack overflow"); \
+ } \
}
+#if NCURSES_EXPANDED
+static NCURSES_INLINE void
+ (spush) (TPARM_STATE *tps, char *x) {
+ spush(tps, x);
+}
+
+#undef spush
+#endif
+
+#define npop(tps) \
+ ((TPS(stack_ptr)-- > 0) \
+ ? ((TPS(stack)[TPS(stack_ptr)].num_type) \
+ ? TPS(stack)[TPS(stack_ptr)].data.num \
+ : 0) \
+ : (tparm_error(tps, "npop: stack underflow"), \
+ TPS(stack_ptr) = 0))
+
+#if NCURSES_EXPANDED
+static NCURSES_INLINE int
+ (npop) (TPARM_STATE *tps) {
+ return npop(tps);
+}
+#undef npop
+#endif
+
+#define spop(tps) \
+ ((TPS(stack_ptr)-- > 0) \
+ ? ((!TPS(stack)[TPS(stack_ptr)].num_type \
+ && TPS(stack)[TPS(stack_ptr)].data.str != 0) \
+ ? TPS(stack)[TPS(stack_ptr)].data.str \
+ : dummy) \
+ : (tparm_error(tps, "spop: stack underflow"), \
+ dummy))
+
+#if NCURSES_EXPANDED
static NCURSES_INLINE char *
-spop(void)
-{
- char *result = dummy;
- if (TPS(stack_ptr) > 0) {
- TPS(stack_ptr)--;
- if (!TPS(stack)[TPS(stack_ptr)].num_type
- && TPS(stack)[TPS(stack_ptr)].data.str != 0)
- result = TPS(stack)[TPS(stack_ptr)].data.str;
- } else {
- DEBUG(2, ("spop: stack underflow: %s", _nc_visbuf(TPS(tparam_base))));
- _nc_tparm_err++;
- }
- return result;
+ (spop) (TPARM_STATE *tps) {
+ return spop(tps);
}
+#undef spop
+#endif
static NCURSES_INLINE const char *
parse_format(const char *s, char *format, int *len)
@@ -405,8 +464,9 @@ parse_format(const char *s, char *format, int *len)
* may be cases that we cannot see the explicit parameter numbers.
*/
NCURSES_EXPORT(int)
-_nc_tparm_analyze(const char *string, char **p_is_s, int *popcount)
+_nc_tparm_analyze(TERMINAL *term, const char *string, char **p_is_s, int *popcount)
{
+ TPARM_STATE *tps = get_tparm_state(term);
size_t len2;
int i;
int lastpop = -1;
@@ -539,15 +599,16 @@ _nc_tparm_analyze(const char *string, char **p_is_s, int *popcount)
* TODO: cache the result so that this is done once per capability per term.
*/
static int
-tparm_setup(const char *string, TPARM_DATA * result)
+tparm_setup(TERMINAL *term, const char *string, TPARM_DATA *result)
{
+ TPARM_STATE *tps = get_tparm_state(term);
int rc = OK;
TPS(out_used) = 0;
memset(result, 0, sizeof(*result));
- if (string == NULL) {
- TR(TRACE_CALLS, ("%s: format is null", TPS(tname)));
+ if (!VALID_STRING(string)) {
+ TR(TRACE_CALLS, ("%s: format is invalid", TPS(tname)));
rc = ERR;
} else {
#if HAVE_TSEARCH
@@ -556,8 +617,15 @@ tparm_setup(const char *string, TPARM_DATA * result)
result->format = string;
if ((ft = tfind(result, &MyCache, cmp_format)) != 0) {
+ size_t len2;
fs = *(TPARM_DATA **) ft;
*result = *fs;
+ if ((len2 = strlen(string)) + 2 > TPS(fmt_size)) {
+ TPS(fmt_size) += len2 + 2;
+ TPS(fmt_buff) = typeRealloc(char, TPS(fmt_size), TPS(fmt_buff));
+ if (TPS(fmt_buff) == 0)
+ return ERR;
+ }
} else
#endif
{
@@ -566,7 +634,7 @@ tparm_setup(const char *string, TPARM_DATA * result)
* string. Use this value to limit the number of arguments copied
* from the variable-length argument list.
*/
- result->num_parsed = _nc_tparm_analyze(string,
+ result->num_parsed = _nc_tparm_analyze(term, string,
result->p_is_s,
&(result->num_popped));
if (TPS(fmt_buff) == 0) {
@@ -579,7 +647,7 @@ tparm_setup(const char *string, TPARM_DATA * result)
result->num_parsed = NUM_PARM;
if (result->num_popped > NUM_PARM)
result->num_popped = NUM_PARM;
- result->num_actual = max(result->num_popped, result->num_parsed);
+ result->num_actual = Max(result->num_popped, result->num_parsed);
for (n = 0; n < result->num_actual; ++n) {
if (result->p_is_s[n])
@@ -592,9 +660,11 @@ tparm_setup(const char *string, TPARM_DATA * result)
if (tsearch(fs, &MyCache, cmp_format) != 0) {
++MyCount;
} else {
+ free(fs);
rc = ERR;
}
} else {
+ free(fs);
rc = ERR;
}
} else {
@@ -615,7 +685,7 @@ tparm_setup(const char *string, TPARM_DATA * result)
* long's, which is consistent with our va_arg() usage.
*/
static void
-tparm_copy_valist(TPARM_DATA * data, int use_TPARM_ARG, va_list ap)
+tparm_copy_valist(TPARM_DATA *data, int use_TPARM_ARG, va_list ap)
{
int i;
@@ -642,7 +712,7 @@ tparm_copy_valist(TPARM_DATA * data, int use_TPARM_ARG, va_list ap)
* will expand termcap strings OK.
*/
static bool
-tparm_tc_compat(TPARM_DATA * data)
+tparm_tc_compat(TPARM_STATE *tps, TPARM_DATA *data)
{
bool termcap_hack = FALSE;
@@ -653,10 +723,11 @@ tparm_tc_compat(TPARM_DATA * data)
termcap_hack = TRUE;
for (i = data->num_parsed - 1; i >= 0; i--) {
- if (data->p_is_s[i])
- spush(data->p_is_s[i]);
- else
- npush((int) data->param[i]);
+ if (data->p_is_s[i]) {
+ spush(tps, data->p_is_s[i]);
+ } else {
+ npush(tps, (int) data->param[i]);
+ }
}
}
return termcap_hack;
@@ -664,20 +735,20 @@ tparm_tc_compat(TPARM_DATA * data)
#ifdef TRACE
static void
-tparm_trace_call(const char *string, TPARM_DATA * data)
+tparm_trace_call(TPARM_STATE *tps, const char *string, TPARM_DATA *data)
{
if (USE_TRACEF(TRACE_CALLS)) {
int i;
for (i = 0; i < data->num_actual; i++) {
if (data->p_is_s[i] != 0) {
- save_text(", %s", _nc_visbuf(data->p_is_s[i]), 0);
+ save_text(tps, ", %s", _nc_visbuf(data->p_is_s[i]), 0);
} else if ((long) data->param[i] > MAX_OF_TYPE(NCURSES_INT2) ||
(long) data->param[i] < 0) {
_tracef("BUG: problem with tparm parameter #%d of %d",
i + 1, data->num_actual);
break;
} else {
- save_number(", %d", (int) data->param[i], 0);
+ save_number(tps, ", %d", (int) data->param[i], 0);
}
}
_tracef(T_CALLED("%s(%s%s)"), TPS(tname), _nc_visbuf(string), TPS(out_buff));
@@ -687,27 +758,54 @@ tparm_trace_call(const char *string, TPARM_DATA * data)
}
#else
-#define tparm_trace_call(string, data) /* nothing */
+#define tparm_trace_call(tps, string, data) /* nothing */
#endif /* TRACE */
+#define init_vars(name) \
+ if (!name##_used) { \
+ name##_used = TRUE; \
+ memset(name##_vars, 0, sizeof(name##_vars)); \
+ }
+
static NCURSES_INLINE char *
-tparam_internal(const char *string, TPARM_DATA * data)
+tparam_internal(TPARM_STATE *tps, const char *string, TPARM_DATA *data)
{
int number;
int len;
int level;
int x, y;
int i;
+ const char *s;
const char *cp = string;
size_t len2 = strlen(cp);
bool incremented_two = FALSE;
- bool termcap_hack = tparm_tc_compat(data);
-
- tparm_trace_call(string, data);
+ bool termcap_hack = tparm_tc_compat(tps, data);
+ /*
+ * SVr4 curses stores variables 'A' to 'Z' in the TERMINAL structure (so
+ * they are initialized once to zero), and variables 'a' to 'z' on the
+ * stack in tparm, referring to the former as "static" and the latter as
+ * "dynamic". However, it makes no check to ensure that the "dynamic"
+ * variables are initialized.
+ *
+ * Solaris xpg4 curses makes no distinction between the upper/lower, and
+ * stores the common set of 26 variables on the stack, without initializing
+ * them.
+ *
+ * In ncurses, both sets of variables are initialized on the first use.
+ */
+ bool dynamic_used = FALSE;
+ int dynamic_vars[NUM_VARS];
+
+ tparm_trace_call(tps, string, data);
+
+ if (TPS(fmt_buff) == NULL) {
+ T((T_RETURN("<null>")));
+ return NULL;
+ }
while ((cp - string) < (int) len2) {
if (*cp != '%') {
- save_char(UChar(*cp));
+ save_char(tps, UChar(*cp));
} else {
TPS(tparam_base) = cp++;
cp = parse_format(cp, TPS(fmt_buff), &len);
@@ -715,40 +813,44 @@ tparam_internal(const char *string, TPARM_DATA * data)
default:
break;
case '%':
- save_char('%');
+ save_char(tps, '%');
break;
case 'd': /* FALLTHRU */
case 'o': /* FALLTHRU */
case 'x': /* FALLTHRU */
case 'X': /* FALLTHRU */
- save_number(TPS(fmt_buff), npop(), len);
+ x = npop(tps);
+ save_number(tps, TPS(fmt_buff), x, len);
break;
case 'c': /* FALLTHRU */
- save_char(npop());
+ x = npop(tps);
+ save_char(tps, x);
break;
#ifdef EXP_XTERM_1005
case 'u':
{
unsigned char target[10];
- unsigned source = (unsigned) npop();
+ unsigned source = (unsigned) npop(tps);
int rc = _nc_conv_to_utf8(target, source, (unsigned)
sizeof(target));
int n;
for (n = 0; n < rc; ++n) {
- save_char(target[n]);
+ save_char(tps, target[n]);
}
}
break;
#endif
case 'l':
- npush((int) strlen(spop()));
+ s = spop(tps);
+ npush(tps, (int) strlen(s));
break;
case 's':
- save_text(TPS(fmt_buff), spop(), len);
+ s = spop(tps);
+ save_text(tps, TPS(fmt_buff), s, len);
break;
case 'p':
@@ -756,9 +858,9 @@ tparam_internal(const char *string, TPARM_DATA * data)
i = (UChar(*cp) - '1');
if (i >= 0 && i < NUM_PARM) {
if (data->p_is_s[i]) {
- spush(data->p_is_s[i]);
+ spush(tps, data->p_is_s[i]);
} else {
- npush((int) data->param[i]);
+ npush(tps, (int) data->param[i]);
}
}
break;
@@ -767,10 +869,11 @@ tparam_internal(const char *string, TPARM_DATA * data)
cp++;
if (isUPPER(*cp)) {
i = (UChar(*cp) - 'A');
- TPS(static_vars)[i] = npop();
+ TPS(static_vars)[i] = npop(tps);
} else if (isLOWER(*cp)) {
i = (UChar(*cp) - 'a');
- TPS(dynamic_var)[i] = npop();
+ init_vars(dynamic);
+ dynamic_vars[i] = npop(tps);
}
break;
@@ -778,16 +881,17 @@ tparam_internal(const char *string, TPARM_DATA * data)
cp++;
if (isUPPER(*cp)) {
i = (UChar(*cp) - 'A');
- npush(TPS(static_vars)[i]);
+ npush(tps, TPS(static_vars)[i]);
} else if (isLOWER(*cp)) {
i = (UChar(*cp) - 'a');
- npush(TPS(dynamic_var)[i]);
+ init_vars(dynamic);
+ npush(tps, dynamic_vars[i]);
}
break;
case S_QUOTE:
cp++;
- npush(UChar(*cp));
+ npush(tps, UChar(*cp));
cp++;
break;
@@ -798,83 +902,95 @@ tparam_internal(const char *string, TPARM_DATA * data)
number = (number * 10) + (UChar(*cp) - '0');
cp++;
}
- npush(number);
+ npush(tps, number);
break;
case '+':
- npush(npop() + npop());
+ y = npop(tps);
+ x = npop(tps);
+ npush(tps, x + y);
break;
case '-':
- y = npop();
- x = npop();
- npush(x - y);
+ y = npop(tps);
+ x = npop(tps);
+ npush(tps, x - y);
break;
case '*':
- npush(npop() * npop());
+ y = npop(tps);
+ x = npop(tps);
+ npush(tps, x * y);
break;
case '/':
- y = npop();
- x = npop();
- npush(y ? (x / y) : 0);
+ y = npop(tps);
+ x = npop(tps);
+ npush(tps, y ? (x / y) : 0);
break;
case 'm':
- y = npop();
- x = npop();
- npush(y ? (x % y) : 0);
+ y = npop(tps);
+ x = npop(tps);
+ npush(tps, y ? (x % y) : 0);
break;
case 'A':
- y = npop();
- x = npop();
- npush(y && x);
+ y = npop(tps);
+ x = npop(tps);
+ npush(tps, y && x);
break;
case 'O':
- y = npop();
- x = npop();
- npush(y || x);
+ y = npop(tps);
+ x = npop(tps);
+ npush(tps, y || x);
break;
case '&':
- npush(npop() & npop());
+ y = npop(tps);
+ x = npop(tps);
+ npush(tps, x & y);
break;
case '|':
- npush(npop() | npop());
+ y = npop(tps);
+ x = npop(tps);
+ npush(tps, x | y);
break;
case '^':
- npush(npop() ^ npop());
+ y = npop(tps);
+ x = npop(tps);
+ npush(tps, x ^ y);
break;
case '=':
- y = npop();
- x = npop();
- npush(x == y);
+ y = npop(tps);
+ x = npop(tps);
+ npush(tps, x == y);
break;
case '<':
- y = npop();
- x = npop();
- npush(x < y);
+ y = npop(tps);
+ x = npop(tps);
+ npush(tps, x < y);
break;
case '>':
- y = npop();
- x = npop();
- npush(x > y);
+ y = npop(tps);
+ x = npop(tps);
+ npush(tps, x > y);
break;
case '!':
- npush(!npop());
+ x = npop(tps);
+ npush(tps, !x);
break;
case '~':
- npush(~npop());
+ x = npop(tps);
+ npush(tps, ~x);
break;
case 'i':
@@ -904,7 +1020,7 @@ tparam_internal(const char *string, TPARM_DATA * data)
break;
case 't':
- x = npop();
+ x = npop(tps);
if (!x) {
/* scan forward for %e or %; at level zero */
cp++;
@@ -963,7 +1079,7 @@ tparam_internal(const char *string, TPARM_DATA * data)
cp++;
} /* endwhile (*cp) */
- get_space((size_t) 1);
+ get_space(tps, (size_t) 1);
TPS(out_buff)[TPS(out_used)] = '\0';
if (TPS(stack_ptr) && !_nc_tparm_err) {
@@ -977,27 +1093,89 @@ tparam_internal(const char *string, TPARM_DATA * data)
return (TPS(out_buff));
}
+#ifdef CUR
+/*
+ * Only a few standard capabilities accept string parameters. The others that
+ * are parameterized accept only numeric parameters.
+ */
+static bool
+check_string_caps(TPARM_DATA *data, const char *string)
+{
+ bool result = FALSE;
+
+#define CHECK_CAP(name) (VALID_STRING(name) && !strcmp(name, string))
+
+ /*
+ * Disallow string parameters unless we can check them against a terminal
+ * description.
+ */
+ if (cur_term != NULL) {
+ int want_type = 0;
+
+ if (CHECK_CAP(pkey_key))
+ want_type = 2; /* function key #1, type string #2 */
+ else if (CHECK_CAP(pkey_local))
+ want_type = 2; /* function key #1, execute string #2 */
+ else if (CHECK_CAP(pkey_xmit))
+ want_type = 2; /* function key #1, transmit string #2 */
+ else if (CHECK_CAP(plab_norm))
+ want_type = 2; /* label #1, show string #2 */
+#ifdef pkey_plab
+ else if (CHECK_CAP(pkey_plab))
+ want_type = 6; /* function key #1, type string #2, show string #3 */
+#endif
+#if NCURSES_XNAMES
+ else {
+ char *check;
+
+ check = tigetstr("Cs");
+ if (CHECK_CAP(check))
+ want_type = 1; /* style #1 */
+
+ check = tigetstr("Ms");
+ if (CHECK_CAP(check))
+ want_type = 3; /* storage unit #1, content #2 */
+ }
+#endif
+
+ if (want_type == data->tparm_type) {
+ result = TRUE;
+ } else {
+ T(("unexpected string-parameter"));
+ }
+ }
+ return result;
+}
+
+#define ValidCap(allow_strings) (myData.tparm_type == 0 || \
+ (allow_strings && \
+ check_string_caps(&myData, string)))
+#else
+#define ValidCap(allow_strings) 1
+#endif
+
#if NCURSES_TPARM_VARARGS
NCURSES_EXPORT(char *)
tparm(const char *string, ...)
{
+ TPARM_STATE *tps = get_tparm_state(cur_term);
TPARM_DATA myData;
- va_list ap;
char *result = NULL;
_nc_tparm_err = 0;
#ifdef TRACE
- TPS(tname) = "tparm";
+ tps->tname = "tparm";
#endif /* TRACE */
- if (tparm_setup(string, &myData) == OK) {
+ if (tparm_setup(cur_term, string, &myData) == OK && ValidCap(TRUE)) {
+ va_list ap;
va_start(ap, string);
tparm_copy_valist(&myData, TRUE, ap);
va_end(ap);
- result = tparam_internal(string, &myData);
+ result = tparam_internal(tps, string, &myData);
}
return result;
}
@@ -1016,15 +1194,18 @@ tparm(const char *string,
TPARM_ARG a8,
TPARM_ARG a9)
{
+ TPARM_STATE *tps = get_tparm_state(cur_term);
TPARM_DATA myData;
char *result = NULL;
_nc_tparm_err = 0;
#ifdef TRACE
- TPS(tname) = "tparm";
+ tps->tname = "tparm";
#endif /* TRACE */
- if (tparm_setup(string, &myData) == OK) {
+#define string_ok (sizeof(char*) <= sizeof(TPARM_ARG))
+
+ if (tparm_setup(cur_term, string, &myData) == OK && ValidCap(string_ok)) {
myData.param[0] = a1;
myData.param[1] = a2;
@@ -1036,7 +1217,7 @@ tparm(const char *string,
myData.param[7] = a8;
myData.param[8] = a9;
- result = tparam_internal(string, &myData);
+ result = tparam_internal(tps, string, &myData);
}
return result;
}
@@ -1046,50 +1227,182 @@ tparm(const char *string,
NCURSES_EXPORT(char *)
tiparm(const char *string, ...)
{
+ TPARM_STATE *tps = get_tparm_state(cur_term);
TPARM_DATA myData;
- va_list ap;
char *result = NULL;
_nc_tparm_err = 0;
#ifdef TRACE
- TPS(tname) = "tiparm";
+ tps->tname = "tiparm";
#endif /* TRACE */
- if (tparm_setup(string, &myData) == OK) {
+ if (tparm_setup(cur_term, string, &myData) == OK && ValidCap(TRUE)) {
+ va_list ap;
va_start(ap, string);
tparm_copy_valist(&myData, FALSE, ap);
va_end(ap);
- result = tparam_internal(string, &myData);
+ result = tparam_internal(tps, string, &myData);
}
return result;
}
/*
- * The internal-use flavor ensures that the parameters are numbers, not strings
+ * Use tparm if the formatting string matches the expected number of parameters
+ * counting string-parameters.
*/
NCURSES_EXPORT(char *)
-_nc_tiparm(int expected, const char *string, ...)
+tiparm_s(int num_expected, int tparm_type, const char *string, ...)
{
+ TPARM_STATE *tps = get_tparm_state(cur_term);
TPARM_DATA myData;
- va_list ap;
char *result = NULL;
_nc_tparm_err = 0;
#ifdef TRACE
- TPS(tname) = "_nc_tiparm";
+ tps->tname = "tiparm_s";
#endif /* TRACE */
-
- if (tparm_setup(string, &myData) == OK
- && myData.num_actual <= expected
- && myData.tparm_type == 0) {
+ if (num_expected >= 0 &&
+ num_expected <= 9 &&
+ tparm_type >= 0 &&
+ tparm_type < 7 && /* limit to 2 string parameters */
+ tparm_setup(cur_term, string, &myData) == OK &&
+ myData.tparm_type == tparm_type &&
+ myData.num_actual == num_expected) {
+ va_list ap;
va_start(ap, string);
tparm_copy_valist(&myData, FALSE, ap);
va_end(ap);
- result = tparam_internal(string, &myData);
+ result = tparam_internal(tps, string, &myData);
}
return result;
}
+
+/*
+ * Analyze the formatting string, return the analysis.
+ */
+NCURSES_EXPORT(int)
+tiscan_s(int *num_expected, int *tparm_type, const char *string)
+{
+ TPARM_DATA myData;
+ int result = ERR;
+
+#ifdef TRACE
+ TPARM_STATE *tps = get_tparm_state(cur_term);
+ tps->tname = "tiscan_s";
+#endif /* TRACE */
+
+ if (tparm_setup(cur_term, string, &myData) == OK) {
+ *num_expected = myData.num_actual;
+ *tparm_type = myData.tparm_type;
+ result = OK;
+ }
+ return result;
+}
+
+/*
+ * The internal-use flavor ensures that parameters are numbers, not strings.
+ * In addition to ensuring that they are numbers, it ensures that the parameter
+ * count is consistent with intended usage.
+ *
+ * Unlike the general-purpose tparm/tiparm, these internal calls are fairly
+ * well defined:
+ *
+ * expected == 0 - not applicable
+ * expected == 1 - set color, or vertical/horizontal addressing
+ * expected == 2 - cursor addressing
+ * expected == 4 - initialize color or color pair
+ * expected == 9 - set attributes
+ *
+ * Only for the last case (set attributes) should a parameter be optional.
+ * Also, a capability which calls for more parameters than expected should be
+ * ignored.
+ *
+ * Return a null if the parameter-checks fail. Otherwise, return a pointer to
+ * the formatted capability string.
+ */
+NCURSES_EXPORT(char *)
+_nc_tiparm(int expected, const char *string, ...)
+{
+ TPARM_STATE *tps = get_tparm_state(cur_term);
+ TPARM_DATA myData;
+ char *result = NULL;
+
+ _nc_tparm_err = 0;
+ T((T_CALLED("_nc_tiparm(%d, %s, ...)"), expected, _nc_visbuf(string)));
+#ifdef TRACE
+ tps->tname = "_nc_tiparm";
+#endif /* TRACE */
+
+ if (tparm_setup(cur_term, string, &myData) == OK && ValidCap(FALSE)) {
+#ifdef CUR
+ if (myData.num_actual != expected && cur_term != NULL) {
+ int needed = expected;
+ if (CHECK_CAP(to_status_line)) {
+ needed = 0; /* allow for xterm's status line */
+ } else if (CHECK_CAP(set_a_background)) {
+ needed = 0; /* allow for monochrome fakers */
+ } else if (CHECK_CAP(set_a_foreground)) {
+ needed = 0;
+ } else if (CHECK_CAP(set_background)) {
+ needed = 0;
+ } else if (CHECK_CAP(set_foreground)) {
+ needed = 0;
+ }
+#if NCURSES_XNAMES
+ else {
+ char *check;
+
+ check = tigetstr("xm");
+ if (CHECK_CAP(check)) {
+ needed = 3;
+ }
+ check = tigetstr("S0");
+ if (CHECK_CAP(check)) {
+ needed = 0; /* used in screen-base */
+ }
+ }
+#endif
+ if (myData.num_actual >= needed && myData.num_actual <= expected)
+ expected = myData.num_actual;
+ }
+#endif
+ if (myData.num_actual == 0 && expected) {
+ T(("missing parameter%s, expected %s%d",
+ expected > 1 ? "s" : "",
+ expected == 9 ? "up to " : "",
+ expected));
+ } else if (myData.num_actual > expected) {
+ T(("too many parameters, have %d, expected %d",
+ myData.num_actual,
+ expected));
+ } else if (expected != 9 && myData.num_actual != expected) {
+ T(("expected %d parameters, have %d",
+ myData.num_actual,
+ expected));
+ } else {
+ va_list ap;
+
+ va_start(ap, string);
+ tparm_copy_valist(&myData, FALSE, ap);
+ va_end(ap);
+
+ result = tparam_internal(tps, string, &myData);
+ }
+ }
+ returnPtr(result);
+}
+
+/*
+ * Improve tic's checks by resetting the terminfo "static variables" before
+ * calling functions which may update them.
+ */
+NCURSES_EXPORT(void)
+_nc_reset_tparm(TERMINAL *term)
+{
+ TPARM_STATE *tps = get_tparm_state(term);
+ memset(TPS(static_vars), 0, sizeof(TPS(static_vars)));
+}
diff --git a/ncurses/tinfo/lib_tputs.c b/ncurses/tinfo/lib_tputs.c
index 3eb19d2d9662..f834532c9193 100644
--- a/ncurses/tinfo/lib_tputs.c
+++ b/ncurses/tinfo/lib_tputs.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2022,2023 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -52,12 +52,12 @@
#include <termcap.h> /* ospeed */
#include <tic.h>
-MODULE_ID("$Id: lib_tputs.c,v 1.106 2020/11/29 00:40:08 tom Exp $")
+MODULE_ID("$Id: lib_tputs.c,v 1.111 2023/09/16 16:05:15 tom Exp $")
NCURSES_EXPORT_VAR(char) PC = 0; /* used by termcap library */
NCURSES_EXPORT_VAR(NCURSES_OSPEED) ospeed = 0; /* used by termcap library */
-NCURSES_EXPORT_VAR(int) _nc_nulls_sent = 0; /* used by 'tack' program */
+NCURSES_EXPORT_VAR(int) _nc_nulls_sent = 0;
#if NCURSES_NO_PADDING
NCURSES_EXPORT(void)
@@ -89,6 +89,9 @@ NCURSES_SP_NAME(delay_output) (NCURSES_SP_DCLx int ms)
{
T((T_CALLED("delay_output(%p,%d)"), (void *) SP_PARM, ms));
+ if (ms > MAX_DELAY_MSECS)
+ ms = MAX_DELAY_MSECS;
+
if (!HasTInfoTerminal(SP_PARM))
returnCode(ERR);
@@ -128,9 +131,8 @@ NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_DCL0)
SP_PARM->out_buffer));
if (SP_PARM->out_inuse) {
char *buf = SP_PARM->out_buffer;
- size_t amount = SP->out_inuse;
+ size_t amount = SP_PARM->out_inuse;
- SP->out_inuse = 0;
TR(TRACE_CHARPUT, ("flushing %ld/%ld bytes",
(unsigned long) amount, _nc_outchars));
while (amount) {
@@ -155,6 +157,8 @@ NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_DCL0)
TR(TRACE_CHARPUT, ("flushing stdout"));
fflush(stdout);
}
+ if (SP_PARM != 0)
+ SP_PARM->out_inuse = 0;
returnVoid;
}
@@ -276,8 +280,8 @@ NCURSES_SP_NAME(tputs) (NCURSES_SP_DCLx
NCURSES_SP_OUTC outc)
{
NCURSES_SP_OUTC my_outch = GetOutCh();
- bool always_delay;
- bool normal_delay;
+ bool always_delay = FALSE;
+ bool normal_delay = FALSE;
int number;
#if BSD_TPUTS
int trailpad;
@@ -305,32 +309,30 @@ NCURSES_SP_NAME(tputs) (NCURSES_SP_DCLx
}
#endif /* TRACE */
- if (SP_PARM != 0 && !HasTInfoTerminal(SP_PARM))
- return ERR;
-
if (!VALID_STRING(string))
return ERR;
- if (
+ if (SP_PARM != 0 && HasTInfoTerminal(SP_PARM)) {
+ if (
#if NCURSES_SP_FUNCS
- (SP_PARM != 0 && SP_PARM->_term == 0)
+ (SP_PARM != 0 && SP_PARM->_term == 0)
#else
- cur_term == 0
+ cur_term == 0
#endif
- ) {
- always_delay = FALSE;
- normal_delay = TRUE;
- } else {
- always_delay = (string == bell) || (string == flash_screen);
- normal_delay =
- !xon_xoff
- && padding_baud_rate
+ ) {
+ always_delay = FALSE;
+ normal_delay = TRUE;
+ } else {
+ always_delay = (string == bell) || (string == flash_screen);
+ normal_delay =
+ !xon_xoff
+ && padding_baud_rate
#if NCURSES_NO_PADDING
- && !GetNoPadding(SP_PARM)
+ && !GetNoPadding(SP_PARM)
#endif
- && (_nc_baudrate(ospeed) >= padding_baud_rate);
+ && (_nc_baudrate(ospeed) >= padding_baud_rate);
+ }
}
-
#if BSD_TPUTS
/*
* This ugly kluge deals with the fact that some ancient BSD programs
@@ -429,7 +431,7 @@ NCURSES_SP_NAME(tputs) (NCURSES_SP_DCLx
*/
if (trailpad > 0
&& (always_delay || normal_delay))
- delay_output(trailpad / 10);
+ NCURSES_SP_NAME(delay_output) (NCURSES_SP_ARGx trailpad / 10);
#endif /* BSD_TPUTS */
SetOutCh(my_outch);
diff --git a/ncurses/tinfo/lib_win32con.c b/ncurses/tinfo/lib_win32con.c
index 3c0fe8160734..2d6857aeb4a8 100644
--- a/ncurses/tinfo/lib_win32con.c
+++ b/ncurses/tinfo/lib_win32con.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020-2021,2023 Thomas E. Dickey *
* Copyright 1998-2009,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -38,7 +38,7 @@
#include <curses.priv.h>
-MODULE_ID("$Id: lib_win32con.c,v 1.6 2020/11/21 23:44:58 tom Exp $")
+MODULE_ID("$Id: lib_win32con.c,v 1.14 2023/08/05 20:44:38 tom Exp $")
#ifdef _NC_WINDOWS
@@ -58,19 +58,7 @@ MODULE_ID("$Id: lib_win32con.c,v 1.6 2020/11/21 23:44:58 tom Exp $")
#define read_screen ReadConsoleOutput
#endif
-static BOOL IsConsoleHandle(HANDLE hdl);
-static bool save_original_screen(void);
-static bool restore_original_screen(void) GCC_UNUSED;
static bool read_screen_data(void);
-static int Adjust(int milliseconds, int diff);
-static int decode_mouse(SCREEN *sp, int mask);
-static bool handle_mouse(SCREEN *sp, MOUSE_EVENT_RECORD mer);
-static int rkeycompare(const void *el1, const void *el2);
-static int keycompare(const void *el1, const void *el2);
-static int MapKey(WORD vKey);
-static int AnsiKey(WORD vKey);
-
-static ULONGLONG tdiff(FILETIME fstart, FILETIME fend);
#define GenMap(vKey,key) MAKELONG(key, vKey)
static const LONG keylist[] =
@@ -104,7 +92,7 @@ static const LONG ansi_keys[] =
#define FKEYS 24
#define MAPSIZE (FKEYS + N_INI)
-/* A process can only have a single console, so it's safe
+/* A process can only have a single console, so it is safe
to maintain all the information about it in a single
static structure.
*/
@@ -136,32 +124,32 @@ _nc_console_vt_supported(void)
osvi.dwMinorVersion,
osvi.dwBuildNumber));
if (osvi.dwMajorVersion >= REQUIRED_MAX_V) {
- if (osvi.dwMajorVersion == REQUIRED_MAX_V) {
- if (((osvi.dwMinorVersion == REQUIRED_MIN_V) &&
- (osvi.dwBuildNumber >= REQUIRED_BUILD)) ||
- ((osvi.dwMinorVersion > REQUIRED_MIN_V)))
- res = 1;
- } else
- res = 1;
+ if (osvi.dwMajorVersion == REQUIRED_MAX_V) {
+ if (((osvi.dwMinorVersion == REQUIRED_MIN_V) &&
+ (osvi.dwBuildNumber >= REQUIRED_BUILD)) ||
+ ((osvi.dwMinorVersion > REQUIRED_MIN_V)))
+ res = 1;
+ } else
+ res = 1;
}
returnCode(res);
}
NCURSES_EXPORT(void)
-_nc_console_size(int* Lines, int* Cols)
+_nc_console_size(int *Lines, int *Cols)
{
- EnsureInit();
- if (Lines != NULL && Cols != NULL) {
- if (WINCONSOLE.buffered) {
- *Lines = (int) (WINCONSOLE.SBI.dwSize.Y);
- *Cols = (int) (WINCONSOLE.SBI.dwSize.X);
- } else {
- *Lines = (int) (WINCONSOLE.SBI.srWindow.Bottom + 1 -
- WINCONSOLE.SBI.srWindow.Top);
- *Cols = (int) (WINCONSOLE.SBI.srWindow.Right + 1 -
- WINCONSOLE.SBI.srWindow.Left);
- }
- }
+ EnsureInit();
+ if (Lines != NULL && Cols != NULL) {
+ if (WINCONSOLE.buffered) {
+ *Lines = (int) (WINCONSOLE.SBI.dwSize.Y);
+ *Cols = (int) (WINCONSOLE.SBI.dwSize.X);
+ } else {
+ *Lines = (int) (WINCONSOLE.SBI.srWindow.Bottom + 1 -
+ WINCONSOLE.SBI.srWindow.Top);
+ *Cols = (int) (WINCONSOLE.SBI.srWindow.Right + 1 -
+ WINCONSOLE.SBI.srWindow.Left);
+ }
+ }
}
/* Convert a file descriptor into a HANDLE
@@ -188,9 +176,9 @@ IsConsoleHandle(HANDLE hdl)
EnsureInit();
if (!GetConsoleMode(hdl, &dwFlag)) {
- T(("GetConsoleMode failed"));
+ T(("GetConsoleMode failed"));
} else {
- result = TRUE;
+ result = TRUE;
}
returnBool(result);
@@ -198,7 +186,7 @@ IsConsoleHandle(HANDLE hdl)
/* This is used when running in terminfo mode to discover,
whether or not the "terminal" is actually a Windows
- Console. It's the responsibility of the console to deal
+ Console. It is the responsibility of the console to deal
with the terminal escape sequences that are sent by
terminfo.
*/
@@ -219,8 +207,8 @@ NCURSES_EXPORT(void)
_nc_console_selectActiveHandle(void)
{
if (WINCONSOLE.lastOut != WINCONSOLE.hdl) {
- WINCONSOLE.lastOut = WINCONSOLE.hdl;
- SetConsoleActiveScreenBuffer(WINCONSOLE.lastOut);
+ WINCONSOLE.lastOut = WINCONSOLE.hdl;
+ SetConsoleActiveScreenBuffer(WINCONSOLE.lastOut);
}
}
@@ -228,32 +216,32 @@ NCURSES_EXPORT(HANDLE)
_nc_console_fd2handle(int fd)
{
HANDLE hdl = _nc_console_handle(fd);
- if (hdl==WINCONSOLE.inp) {
- T(("lib_win32con:validateHandle %d -> WINCONSOLE.inp", fd));
- } else if (hdl==WINCONSOLE.hdl) {
- T(("lib_win32con:validateHandle %d -> WINCONSOLE.hdl", fd));
- } else if (hdl==WINCONSOLE.out) {
- T(("lib_win32con:validateHandle %d -> WINCONSOLE.out", fd));
+ if (hdl == WINCONSOLE.inp) {
+ T(("lib_win32con:validateHandle %d -> WINCONSOLE.inp", fd));
+ } else if (hdl == WINCONSOLE.hdl) {
+ T(("lib_win32con:validateHandle %d -> WINCONSOLE.hdl", fd));
+ } else if (hdl == WINCONSOLE.out) {
+ T(("lib_win32con:validateHandle %d -> WINCONSOLE.out", fd));
} else {
- T(("lib_win32con:validateHandle %d maps to unknown HANDLE", fd));
- hdl = INVALID_HANDLE_VALUE;
+ T(("lib_win32con:validateHandle %d maps to unknown HANDLE", fd));
+ hdl = INVALID_HANDLE_VALUE;
}
#if 1
assert(hdl != INVALID_HANDLE_VALUE);
#endif
if (hdl != INVALID_HANDLE_VALUE) {
- if (hdl != WINCONSOLE.inp && (!WINCONSOLE.isTermInfoConsole && WINCONSOLE.progMode)) {
- if (hdl==WINCONSOLE.out && hdl!=WINCONSOLE.hdl) {
- T(("lib_win32con:validateHandle forcing WINCONSOLE.out -> WINCONSOLE.hdl"));
- hdl = WINCONSOLE.hdl;
- }
- }
+ if (hdl != WINCONSOLE.inp && (!WINCONSOLE.isTermInfoConsole && WINCONSOLE.progMode)) {
+ if (hdl == WINCONSOLE.out && hdl != WINCONSOLE.hdl) {
+ T(("lib_win32con:validateHandle forcing WINCONSOLE.out -> WINCONSOLE.hdl"));
+ hdl = WINCONSOLE.hdl;
+ }
+ }
}
return hdl;
}
NCURSES_EXPORT(int)
-_nc_console_setmode(HANDLE hdl, const TTY *arg)
+_nc_console_setmode(HANDLE hdl, const TTY * arg)
{
DWORD dwFlag = 0;
int code = ERR;
@@ -261,86 +249,86 @@ _nc_console_setmode(HANDLE hdl, const TTY *arg)
if (arg) {
#ifdef TRACE
- TTY TRCTTY;
+ TTY TRCTTY;
#define TRCTTYOUT(flag) TRCTTY.dwFlagOut = flag
#define TRCTTYIN(flag) TRCTTY.dwFlagIn = flag
#else
#define TRCTTYOUT(flag)
#define TRCTTYIN(flag)
#endif
- T(("lib_win32con:_nc_console_setmode %s", _nc_trace_ttymode(arg)));
- if (hdl==WINCONSOLE.inp) {
- dwFlag = arg->dwFlagIn | ENABLE_MOUSE_INPUT | VT_FLAG_IN;
- if (WINCONSOLE.isTermInfoConsole)
- dwFlag |= (VT_FLAG_IN);
- else
- dwFlag &= (DWORD) ~(VT_FLAG_IN);
- TRCTTYIN(dwFlag);
- SetConsoleMode(hdl, dwFlag);
-
- alt = OutHandle();
- dwFlag = arg->dwFlagOut;
- if (WINCONSOLE.isTermInfoConsole)
- dwFlag |= (VT_FLAG_OUT);
- else
- dwFlag |= (VT_FLAG_OUT);
- TRCTTYOUT(dwFlag);
- SetConsoleMode(alt, dwFlag);
- } else {
- dwFlag = arg->dwFlagOut;
- if (WINCONSOLE.isTermInfoConsole)
- dwFlag |= (VT_FLAG_OUT);
- else
- dwFlag |= (VT_FLAG_OUT);
- TRCTTYOUT(dwFlag);
- SetConsoleMode(hdl, dwFlag);
-
- alt = WINCONSOLE.inp;
- dwFlag = arg->dwFlagIn | ENABLE_MOUSE_INPUT;
- if (WINCONSOLE.isTermInfoConsole)
- dwFlag |= (VT_FLAG_IN);
- else
- dwFlag &= (DWORD) ~(VT_FLAG_IN);
- TRCTTYIN(dwFlag);
- SetConsoleMode(alt, dwFlag);
- T(("effective mode set %s", _nc_trace_ttymode(&TRCTTY)));
- }
- code = OK;
+ T(("lib_win32con:_nc_console_setmode %s", _nc_trace_ttymode(arg)));
+ if (hdl == WINCONSOLE.inp) {
+ dwFlag = arg->dwFlagIn | ENABLE_MOUSE_INPUT | VT_FLAG_IN;
+ if (WINCONSOLE.isTermInfoConsole)
+ dwFlag |= (VT_FLAG_IN);
+ else
+ dwFlag &= (DWORD) ~ (VT_FLAG_IN);
+ TRCTTYIN(dwFlag);
+ SetConsoleMode(hdl, dwFlag);
+
+ alt = OutHandle();
+ dwFlag = arg->dwFlagOut;
+ if (WINCONSOLE.isTermInfoConsole)
+ dwFlag |= (VT_FLAG_OUT);
+ else
+ dwFlag |= (VT_FLAG_OUT);
+ TRCTTYOUT(dwFlag);
+ SetConsoleMode(alt, dwFlag);
+ } else {
+ dwFlag = arg->dwFlagOut;
+ if (WINCONSOLE.isTermInfoConsole)
+ dwFlag |= (VT_FLAG_OUT);
+ else
+ dwFlag |= (VT_FLAG_OUT);
+ TRCTTYOUT(dwFlag);
+ SetConsoleMode(hdl, dwFlag);
+
+ alt = WINCONSOLE.inp;
+ dwFlag = arg->dwFlagIn | ENABLE_MOUSE_INPUT;
+ if (WINCONSOLE.isTermInfoConsole)
+ dwFlag |= (VT_FLAG_IN);
+ else
+ dwFlag &= (DWORD) ~ (VT_FLAG_IN);
+ TRCTTYIN(dwFlag);
+ SetConsoleMode(alt, dwFlag);
+ T(("effective mode set %s", _nc_trace_ttymode(&TRCTTY)));
+ }
+ code = OK;
}
- return(code);
+ return (code);
}
NCURSES_EXPORT(int)
-_nc_console_getmode(HANDLE hdl, TTY *arg)
+_nc_console_getmode(HANDLE hdl, TTY * arg)
{
int code = ERR;
if (arg) {
- DWORD dwFlag = 0;
- HANDLE alt;
-
- if (hdl==WINCONSOLE.inp) {
- if(GetConsoleMode(hdl, &dwFlag)) {
- arg->dwFlagIn = dwFlag;
- alt = OutHandle();
- if (GetConsoleMode(alt, &dwFlag)) {
- arg->dwFlagOut = dwFlag;
- code = OK;
- }
- }
- } else {
- if (GetConsoleMode(hdl, &dwFlag)) {
- arg->dwFlagOut = dwFlag;
- alt = WINCONSOLE.inp;
- if (GetConsoleMode(alt, &dwFlag)) {
- arg->dwFlagIn = dwFlag;
- code = OK;
- }
- }
- }
+ DWORD dwFlag = 0;
+ HANDLE alt;
+
+ if (hdl == WINCONSOLE.inp) {
+ if (GetConsoleMode(hdl, &dwFlag)) {
+ arg->dwFlagIn = dwFlag;
+ alt = OutHandle();
+ if (GetConsoleMode(alt, &dwFlag)) {
+ arg->dwFlagOut = dwFlag;
+ code = OK;
+ }
+ }
+ } else {
+ if (GetConsoleMode(hdl, &dwFlag)) {
+ arg->dwFlagOut = dwFlag;
+ alt = WINCONSOLE.inp;
+ if (GetConsoleMode(alt, &dwFlag)) {
+ arg->dwFlagIn = dwFlag;
+ code = OK;
+ }
+ }
+ }
}
T(("lib_win32con:_nc_console_getmode %s", _nc_trace_ttymode(arg)));
- return(code);
+ return (code);
}
NCURSES_EXPORT(int)
@@ -351,15 +339,15 @@ _nc_console_flush(HANDLE hdl)
T((T_CALLED("lib_win32con::_nc_console_flush(hdl=%p"), hdl));
if (hdl != INVALID_HANDLE_VALUE) {
- if (hdl == WINCONSOLE.hdl ||
- hdl == WINCONSOLE.inp ||
- hdl == WINCONSOLE.out) {
- if (!FlushConsoleInputBuffer(WINCONSOLE.inp))
- code = ERR;
- } else {
- code = ERR;
- T(("_nc_console_flush not requesting a handle owned by console."));
- }
+ if (hdl == WINCONSOLE.hdl ||
+ hdl == WINCONSOLE.inp ||
+ hdl == WINCONSOLE.out) {
+ if (!FlushConsoleInputBuffer(WINCONSOLE.inp))
+ code = ERR;
+ } else {
+ code = ERR;
+ T(("_nc_console_flush not requesting a handle owned by console."));
+ }
}
returnCode(code);
}
@@ -368,18 +356,17 @@ NCURSES_EXPORT(WORD)
_nc_console_MapColor(bool fore, int color)
{
static const int _cmap[] =
- {0, 4, 2, 6, 1, 5, 3, 7};
+ {0, 4, 2, 6, 1, 5, 3, 7};
int a;
if (color < 0 || color > 7)
- a = fore ? 7 : 0;
+ a = fore ? 7 : 0;
else
- a = _cmap[color];
+ a = _cmap[color];
if (!fore)
- a = a << 4;
+ a = a << 4;
return (WORD) a;
}
-
/*
* Attempt to save the screen contents. PDCurses does this if
* PDC_RESTORE_SCREEN is set, giving the same visual appearance on
@@ -398,25 +385,26 @@ save_original_screen(void)
WINCONSOLE.save_region.Right = (SHORT) (WINCONSOLE.SBI.dwSize.X - 1);
if (read_screen_data()) {
- result = TRUE;
+ result = TRUE;
} else {
- WINCONSOLE.save_region.Top = WINCONSOLE.SBI.srWindow.Top;
- WINCONSOLE.save_region.Left = WINCONSOLE.SBI.srWindow.Left;
- WINCONSOLE.save_region.Bottom = WINCONSOLE.SBI.srWindow.Bottom;
- WINCONSOLE.save_region.Right = WINCONSOLE.SBI.srWindow.Right;
+ WINCONSOLE.save_region.Top = WINCONSOLE.SBI.srWindow.Top;
+ WINCONSOLE.save_region.Left = WINCONSOLE.SBI.srWindow.Left;
+ WINCONSOLE.save_region.Bottom = WINCONSOLE.SBI.srWindow.Bottom;
+ WINCONSOLE.save_region.Right = WINCONSOLE.SBI.srWindow.Right;
- WINCONSOLE.window_only = TRUE;
+ WINCONSOLE.window_only = TRUE;
- if (read_screen_data()) {
- result = TRUE;
- }
+ if (read_screen_data()) {
+ result = TRUE;
+ }
}
T(("... save original screen contents %s", result ? "ok" : "err"));
return result;
}
+#if 0
static bool
restore_original_screen(void)
{
@@ -428,29 +416,30 @@ restore_original_screen(void)
WINCONSOLE.window_only ? "window" : "entire buffer"));
bufferCoord.X = (SHORT) (WINCONSOLE.window_only ?
- WINCONSOLE.SBI.srWindow.Left : 0);
+ WINCONSOLE.SBI.srWindow.Left : 0);
bufferCoord.Y = (SHORT) (WINCONSOLE.window_only ?
- WINCONSOLE.SBI.srWindow.Top : 0);
+ WINCONSOLE.SBI.srWindow.Top : 0);
if (write_screen(WINCONSOLE.hdl,
- WINCONSOLE.save_screen,
- WINCONSOLE.save_size,
- bufferCoord,
- &save_region)) {
- result = TRUE;
- mvcur(-1, -1, LINES - 2, 0);
- T(("... restore original screen contents ok %dx%d (%d,%d - %d,%d)",
- WINCONSOLE.save_size.Y,
- WINCONSOLE.save_size.X,
- save_region.Top,
- save_region.Left,
- save_region.Bottom,
- save_region.Right));
+ WINCONSOLE.save_screen,
+ WINCONSOLE.save_size,
+ bufferCoord,
+ &save_region)) {
+ result = TRUE;
+ mvcur(-1, -1, LINES - 2, 0);
+ T(("... restore original screen contents ok %dx%d (%d,%d - %d,%d)",
+ WINCONSOLE.save_size.Y,
+ WINCONSOLE.save_size.X,
+ save_region.Top,
+ save_region.Left,
+ save_region.Bottom,
+ save_region.Right));
} else {
- T(("... restore original screen contents err"));
+ T(("... restore original screen contents err"));
}
return result;
}
+#endif
static bool
read_screen_data(void)
@@ -460,38 +449,38 @@ read_screen_data(void)
size_t want;
WINCONSOLE.save_size.X = (SHORT) (WINCONSOLE.save_region.Right
- - WINCONSOLE.save_region.Left + 1);
+ - WINCONSOLE.save_region.Left + 1);
WINCONSOLE.save_size.Y = (SHORT) (WINCONSOLE.save_region.Bottom
- - WINCONSOLE.save_region.Top + 1);
+ - WINCONSOLE.save_region.Top + 1);
want = (size_t) (WINCONSOLE.save_size.X * WINCONSOLE.save_size.Y);
if ((WINCONSOLE.save_screen = malloc(want * sizeof(CHAR_INFO))) != 0) {
- bufferCoord.X = (SHORT) (WINCONSOLE.window_only ?
- WINCONSOLE.SBI.srWindow.Left : 0);
- bufferCoord.Y = (SHORT) (WINCONSOLE.window_only ?
- WINCONSOLE.SBI.srWindow.Top : 0);
-
- T(("... reading console %s %dx%d into %d,%d - %d,%d at %d,%d",
- WINCONSOLE.window_only ? "window" : "buffer",
- WINCONSOLE.save_size.Y, WINCONSOLE.save_size.X,
- WINCONSOLE.save_region.Top,
- WINCONSOLE.save_region.Left,
- WINCONSOLE.save_region.Bottom,
- WINCONSOLE.save_region.Right,
- bufferCoord.Y,
- bufferCoord.X));
-
- if (read_screen(WINCONSOLE.hdl,
- WINCONSOLE.save_screen,
- WINCONSOLE.save_size,
- bufferCoord,
- &WINCONSOLE.save_region)) {
- result = TRUE;
- } else {
- T((" error %#lx", (unsigned long) GetLastError()));
- FreeAndNull(WINCONSOLE.save_screen);
- }
+ bufferCoord.X = (SHORT) (WINCONSOLE.window_only ?
+ WINCONSOLE.SBI.srWindow.Left : 0);
+ bufferCoord.Y = (SHORT) (WINCONSOLE.window_only ?
+ WINCONSOLE.SBI.srWindow.Top : 0);
+
+ T(("... reading console %s %dx%d into %d,%d - %d,%d at %d,%d",
+ WINCONSOLE.window_only ? "window" : "buffer",
+ WINCONSOLE.save_size.Y, WINCONSOLE.save_size.X,
+ WINCONSOLE.save_region.Top,
+ WINCONSOLE.save_region.Left,
+ WINCONSOLE.save_region.Bottom,
+ WINCONSOLE.save_region.Right,
+ bufferCoord.Y,
+ bufferCoord.X));
+
+ if (read_screen(WINCONSOLE.hdl,
+ WINCONSOLE.save_screen,
+ WINCONSOLE.save_size,
+ bufferCoord,
+ &WINCONSOLE.save_region)) {
+ result = TRUE;
+ } else {
+ T((" error %#lx", (unsigned long) GetLastError()));
+ FreeAndNull(WINCONSOLE.save_screen);
+ }
}
return result;
@@ -502,31 +491,31 @@ _nc_console_get_SBI(void)
{
bool rc = FALSE;
if (GetConsoleScreenBufferInfo(WINCONSOLE.hdl, &(WINCONSOLE.SBI))) {
- T(("GetConsoleScreenBufferInfo"));
- T(("... buffer(X:%d Y:%d)",
- WINCONSOLE.SBI.dwSize.X,
- WINCONSOLE.SBI.dwSize.Y));
- T(("... window(X:%d Y:%d)",
- WINCONSOLE.SBI.dwMaximumWindowSize.X,
- WINCONSOLE.SBI.dwMaximumWindowSize.Y));
- T(("... cursor(X:%d Y:%d)",
- WINCONSOLE.SBI.dwCursorPosition.X,
- WINCONSOLE.SBI.dwCursorPosition.Y));
- T(("... display(Top:%d Bottom:%d Left:%d Right:%d)",
- WINCONSOLE.SBI.srWindow.Top,
- WINCONSOLE.SBI.srWindow.Bottom,
- WINCONSOLE.SBI.srWindow.Left,
- WINCONSOLE.SBI.srWindow.Right));
- if (WINCONSOLE.buffered) {
- WINCONSOLE.origin.X = 0;
- WINCONSOLE.origin.Y = 0;
- } else {
- WINCONSOLE.origin.X = WINCONSOLE.SBI.srWindow.Left;
- WINCONSOLE.origin.Y = WINCONSOLE.SBI.srWindow.Top;
- }
- rc = TRUE;
+ T(("GetConsoleScreenBufferInfo"));
+ T(("... buffer(X:%d Y:%d)",
+ WINCONSOLE.SBI.dwSize.X,
+ WINCONSOLE.SBI.dwSize.Y));
+ T(("... window(X:%d Y:%d)",
+ WINCONSOLE.SBI.dwMaximumWindowSize.X,
+ WINCONSOLE.SBI.dwMaximumWindowSize.Y));
+ T(("... cursor(X:%d Y:%d)",
+ WINCONSOLE.SBI.dwCursorPosition.X,
+ WINCONSOLE.SBI.dwCursorPosition.Y));
+ T(("... display(Top:%d Bottom:%d Left:%d Right:%d)",
+ WINCONSOLE.SBI.srWindow.Top,
+ WINCONSOLE.SBI.srWindow.Bottom,
+ WINCONSOLE.SBI.srWindow.Left,
+ WINCONSOLE.SBI.srWindow.Right));
+ if (WINCONSOLE.buffered) {
+ WINCONSOLE.origin.X = 0;
+ WINCONSOLE.origin.Y = 0;
+ } else {
+ WINCONSOLE.origin.X = WINCONSOLE.SBI.srWindow.Left;
+ WINCONSOLE.origin.Y = WINCONSOLE.SBI.srWindow.Top;
+ }
+ rc = TRUE;
} else {
- T(("GetConsoleScreenBufferInfo ERR"));
+ T(("GetConsoleScreenBufferInfo ERR"));
}
return rc;
}
@@ -546,8 +535,8 @@ _nc_console_set_scrollback(bool normal, CONSOLE_SCREEN_BUFFER_INFO * info)
T((T_CALLED("lib_win32con::_nc_console_set_scrollback(%s)"),
(normal
- ? "normal"
- : "application")));
+ ? "normal"
+ : "application")));
T(("... SBI.srWindow %d,%d .. %d,%d",
info->srWindow.Top,
@@ -559,52 +548,52 @@ _nc_console_set_scrollback(bool normal, CONSOLE_SCREEN_BUFFER_INFO * info)
info->dwSize.X));
if (normal) {
- rect = info->srWindow;
- coord = info->dwSize;
- if (memcmp(info, &WINCONSOLE.SBI, sizeof(*info)) != 0) {
- changed = TRUE;
- WINCONSOLE.SBI = *info;
- }
+ rect = info->srWindow;
+ coord = info->dwSize;
+ if (memcmp(info, &WINCONSOLE.SBI, sizeof(*info)) != 0) {
+ changed = TRUE;
+ WINCONSOLE.SBI = *info;
+ }
} else {
- int high = info->srWindow.Bottom - info->srWindow.Top + 1;
- int wide = info->srWindow.Right - info->srWindow.Left + 1;
-
- if (high < MIN_HIGH) {
- T(("... height %d < %d", high, MIN_HIGH));
- high = MIN_HIGH;
- changed = TRUE;
- }
- if (wide < MIN_WIDE) {
- T(("... width %d < %d", wide, MIN_WIDE));
- wide = MIN_WIDE;
- changed = TRUE;
- }
-
- rect.Left =
- rect.Top = 0;
- rect.Right = (SHORT) (wide - 1);
- rect.Bottom = (SHORT) (high - 1);
-
- coord.X = (SHORT) wide;
- coord.Y = (SHORT) high;
-
- if (info->dwSize.Y != high ||
- info->dwSize.X != wide ||
- info->srWindow.Top != 0 ||
- info->srWindow.Left != 0) {
- changed = TRUE;
- }
+ int high = info->srWindow.Bottom - info->srWindow.Top + 1;
+ int wide = info->srWindow.Right - info->srWindow.Left + 1;
+
+ if (high < MIN_HIGH) {
+ T(("... height %d < %d", high, MIN_HIGH));
+ high = MIN_HIGH;
+ changed = TRUE;
+ }
+ if (wide < MIN_WIDE) {
+ T(("... width %d < %d", wide, MIN_WIDE));
+ wide = MIN_WIDE;
+ changed = TRUE;
+ }
+
+ rect.Left =
+ rect.Top = 0;
+ rect.Right = (SHORT) (wide - 1);
+ rect.Bottom = (SHORT) (high - 1);
+
+ coord.X = (SHORT) wide;
+ coord.Y = (SHORT) high;
+
+ if (info->dwSize.Y != high ||
+ info->dwSize.X != wide ||
+ info->srWindow.Top != 0 ||
+ info->srWindow.Left != 0) {
+ changed = TRUE;
+ }
}
if (changed) {
- T(("... coord %d,%d", coord.Y, coord.X));
- T(("... rect %d,%d - %d,%d",
- rect.Top, rect.Left,
- rect.Bottom, rect.Right));
- SetConsoleScreenBufferSize(WINCONSOLE.hdl, coord); /* dwSize */
- SetConsoleWindowInfo(WINCONSOLE.hdl, TRUE, &rect); /* srWindow */
- _nc_console_get_SBI();
+ T(("... coord %d,%d", coord.Y, coord.X));
+ T(("... rect %d,%d - %d,%d",
+ rect.Top, rect.Left,
+ rect.Bottom, rect.Right));
+ SetConsoleScreenBufferSize(WINCONSOLE.hdl, coord); /* dwSize */
+ SetConsoleWindowInfo(WINCONSOLE.hdl, TRUE, &rect); /* srWindow */
+ _nc_console_get_SBI();
}
returnVoid;
}
@@ -629,9 +618,9 @@ static int
Adjust(int milliseconds, int diff)
{
if (milliseconds != INFINITY) {
- milliseconds -= diff;
- if (milliseconds < 0)
- milliseconds = 0;
+ milliseconds -= diff;
+ if (milliseconds < 0)
+ milliseconds = 0;
}
return milliseconds;
}
@@ -642,38 +631,38 @@ Adjust(int milliseconds, int diff)
FROM_LEFT_4TH_BUTTON_PRESSED | \
RIGHTMOST_BUTTON_PRESSED)
-static int
+static mmask_t
decode_mouse(SCREEN *sp, int mask)
{
- int result = 0;
+ mmask_t result = 0;
(void) sp;
assert(sp && console_initialized);
if (mask & FROM_LEFT_1ST_BUTTON_PRESSED)
- result |= BUTTON1_PRESSED;
+ result |= BUTTON1_PRESSED;
if (mask & FROM_LEFT_2ND_BUTTON_PRESSED)
- result |= BUTTON2_PRESSED;
+ result |= BUTTON2_PRESSED;
if (mask & FROM_LEFT_3RD_BUTTON_PRESSED)
- result |= BUTTON3_PRESSED;
+ result |= BUTTON3_PRESSED;
if (mask & FROM_LEFT_4TH_BUTTON_PRESSED)
- result |= BUTTON4_PRESSED;
+ result |= BUTTON4_PRESSED;
if (mask & RIGHTMOST_BUTTON_PRESSED) {
- switch (WINCONSOLE.numButtons) {
- case 1:
- result |= BUTTON1_PRESSED;
- break;
- case 2:
- result |= BUTTON2_PRESSED;
- break;
- case 3:
- result |= BUTTON3_PRESSED;
- break;
- case 4:
- result |= BUTTON4_PRESSED;
- break;
- }
+ switch (WINCONSOLE.numButtons) {
+ case 1:
+ result |= BUTTON1_PRESSED;
+ break;
+ case 2:
+ result |= BUTTON2_PRESSED;
+ break;
+ case 3:
+ result |= BUTTON3_PRESSED;
+ break;
+ case 4:
+ result |= BUTTON4_PRESSED;
+ break;
+ }
}
return result;
@@ -697,26 +686,22 @@ handle_mouse(SCREEN *sp, MOUSE_EVENT_RECORD mer)
* FIXME: implement continuous event-tracking.
*/
if (sp->_drv_mouse_new_buttons != sp->_drv_mouse_old_buttons) {
- memset(&work, 0, sizeof(work));
-
- if (sp->_drv_mouse_new_buttons) {
- work.bstate |=
- (mmask_t) decode_mouse(sp,
- sp->_drv_mouse_new_buttons);
- } else {
- /* cf: BUTTON_PRESSED, BUTTON_RELEASED */
- work.bstate |=
- (mmask_t) (decode_mouse(sp,
- sp->_drv_mouse_old_buttons)
- >> 1);
- result = TRUE;
- }
-
- work.x = mer.dwMousePosition.X;
- work.y = mer.dwMousePosition.Y - AdjustY();
-
- sp->_drv_mouse_fifo[sp->_drv_mouse_tail] = work;
- sp->_drv_mouse_tail += 1;
+ memset(&work, 0, sizeof(work));
+
+ if (sp->_drv_mouse_new_buttons) {
+ work.bstate |= decode_mouse(sp, sp->_drv_mouse_new_buttons);
+ } else {
+ /* cf: BUTTON_PRESSED, BUTTON_RELEASED */
+ work.bstate |= (decode_mouse(sp, sp->_drv_mouse_old_buttons)
+ >> 1);
+ result = TRUE;
+ }
+
+ work.x = mer.dwMousePosition.X;
+ work.y = mer.dwMousePosition.Y - AdjustY();
+
+ sp->_drv_mouse_fifo[sp->_drv_mouse_tail] = work;
+ sp->_drv_mouse_tail += 1;
}
return result;
}
@@ -730,7 +715,6 @@ rkeycompare(const void *el1, const void *el2)
return ((key1 < key2) ? -1 : ((key1 == key2) ? 0 : 1));
}
-
static int
keycompare(const void *el1, const void *el2)
{
@@ -746,22 +730,22 @@ MapKey(WORD vKey)
int code = -1;
if (!WINCONSOLE.isTermInfoConsole) {
- WORD nKey = 0;
- void *res;
- LONG key = GenMap(vKey, 0);
-
- res = bsearch(&key,
- WINCONSOLE.map,
- (size_t) (N_INI + FKEYS),
- sizeof(keylist[0]),
- keycompare);
- if (res) {
- key = *((LONG *) res);
- nKey = LOWORD(key);
- code = (int) (nKey & 0x7fff);
- if (nKey & 0x8000)
- code = -code;
- }
+ WORD nKey = 0;
+ void *res;
+ LONG key = GenMap(vKey, 0);
+
+ res = bsearch(&key,
+ WINCONSOLE.map,
+ (size_t) (N_INI + FKEYS),
+ sizeof(keylist[0]),
+ keycompare);
+ if (res) {
+ key = *((LONG *) res);
+ nKey = LOWORD(key);
+ code = (int) (nKey & 0x7fff);
+ if (nKey & 0x8000)
+ code = -code;
+ }
}
return code;
}
@@ -772,22 +756,22 @@ AnsiKey(WORD vKey)
int code = -1;
if (!WINCONSOLE.isTermInfoConsole) {
- WORD nKey = 0;
- void *res;
- LONG key = GenMap(vKey, 0);
-
- res = bsearch(&key,
- WINCONSOLE.ansi_map,
- (size_t) (N_INI + FKEYS),
- sizeof(keylist[0]),
- keycompare);
- if (res) {
- key = *((LONG *) res);
- nKey = LOWORD(key);
- code = (int) (nKey & 0x7fff);
- if (nKey & 0x8000)
- code = -code;
- }
+ WORD nKey = 0;
+ void *res;
+ LONG key = GenMap(vKey, 0);
+
+ res = bsearch(&key,
+ WINCONSOLE.ansi_map,
+ (size_t) (N_INI + FKEYS),
+ sizeof(keylist[0]),
+ keycompare);
+ if (res) {
+ key = *((LONG *) res);
+ nKey = LOWORD(key);
+ code = (int) (nKey & 0x7fff);
+ if (nKey & 0x8000)
+ code = -code;
+ }
}
return code;
}
@@ -804,17 +788,17 @@ _nc_console_keyok(int keycode, int flag)
T((T_CALLED("lib_win32con::_nc_console_keyok(%d, %d)"), keycode, flag));
res = bsearch(&key,
- WINCONSOLE.rmap,
- (size_t) (N_INI + FKEYS),
- sizeof(keylist[0]),
- rkeycompare);
+ WINCONSOLE.rmap,
+ (size_t) (N_INI + FKEYS),
+ sizeof(keylist[0]),
+ rkeycompare);
if (res) {
- key = *((LONG *) res);
- vKey = HIWORD(key);
- nKey = (LOWORD(key)) & 0x7fff;
- if (!flag)
- nKey |= 0x8000;
- *(LONG *) res = GenMap(vKey, nKey);
+ key = *((LONG *) res);
+ vKey = HIWORD(key);
+ nKey = (LOWORD(key)) & 0x7fff;
+ if (!flag)
+ nKey |= 0x8000;
+ *(LONG *) res = GenMap(vKey, nKey);
}
returnCode(code);
}
@@ -829,27 +813,27 @@ _nc_console_keyExist(int keycode)
T((T_CALLED("lib_win32con::_nc_console_keyExist(%d)"), keycode));
res = bsearch(&key,
- WINCONSOLE.rmap,
- (size_t) (N_INI + FKEYS),
- sizeof(keylist[0]),
- rkeycompare);
+ WINCONSOLE.rmap,
+ (size_t) (N_INI + FKEYS),
+ sizeof(keylist[0]),
+ rkeycompare);
if (res) {
- key = *((LONG *) res);
- nKey = LOWORD(key);
- if (!(nKey & 0x8000))
- found = TRUE;
+ key = *((LONG *) res);
+ nKey = LOWORD(key);
+ if (!(nKey & 0x8000))
+ found = TRUE;
}
returnCode(found);
}
NCURSES_EXPORT(int)
_nc_console_twait(
- SCREEN *sp,
- HANDLE hdl,
- int mode,
- int milliseconds,
- int *timeleft
- EVENTLIST_2nd(_nc_eventlist * evl))
+ SCREEN *sp,
+ HANDLE hdl,
+ int mode,
+ int milliseconds,
+ int *timeleft
+ EVENTLIST_2nd(_nc_eventlist * evl))
{
INPUT_RECORD inp_rec;
BOOL b;
@@ -861,7 +845,7 @@ _nc_console_twait(
bool isNoDelay = (milliseconds == 0);
#ifdef NCURSES_WGETCH_EVENTS
- (void) evl; /* TODO: implement wgetch-events */
+ (void) evl; /* TODO: implement wgetch-events */
#endif
#define IGNORE_CTRL_KEYS (SHIFT_PRESSED|LEFT_ALT_PRESSED|RIGHT_ALT_PRESSED| \
@@ -871,174 +855,174 @@ _nc_console_twait(
assert(sp);
TR(TRACE_IEVENT, ("start twait: hdl=%p, %d milliseconds, mode: %d",
- hdl, milliseconds, mode));
+ hdl, milliseconds, mode));
if (milliseconds < 0)
- milliseconds = INFINITY;
+ milliseconds = INFINITY;
memset(&inp_rec, 0, sizeof(inp_rec));
while (true) {
- if (!isNoDelay) {
- GetSystemTimeAsFileTime(&fstart);
- rc = WaitForSingleObject(hdl, (DWORD) milliseconds);
- GetSystemTimeAsFileTime(&fend);
- diff = (int) tdiff(fstart, fend);
- milliseconds = Adjust(milliseconds, diff);
- if (milliseconds< 0)
- break;
- }
-
- if (isNoDelay || (rc == WAIT_OBJECT_0)) {
- if (mode) {
- nRead = 0;
- b = GetNumberOfConsoleInputEvents(hdl, &nRead);
- if (!b) {
- T(("twait:err GetNumberOfConsoleInputEvents"));
- }
- if (isNoDelay && b) {
- T(("twait: Events Available: %ld", nRead));
- if (nRead==0) {
- code = 0;
- goto end;
- } else {
- DWORD n = 0;
- INPUT_RECORD* pInpRec =
- TypeAlloca(INPUT_RECORD, nRead);
- if (pInpRec != NULL) {
- DWORD i;
- BOOL f;
- memset(pInpRec, 0, sizeof(INPUT_RECORD)*nRead);
- f = PeekConsoleInput(hdl, pInpRec, nRead, &n);
- if (f) {
- for(i = 0; i < n; i++) {
- if (pInpRec[i].EventType==KEY_EVENT) {
- if(pInpRec[i].Event.KeyEvent.bKeyDown) {
- DWORD ctrlMask =
- (pInpRec[i].Event.KeyEvent.dwControlKeyState &
- IGNORE_CTRL_KEYS);
- if (!ctrlMask) {
- code = TW_INPUT;
- goto end;
- }
- }
- }
- }
- } else {
- T(("twait:err PeekConsoleInput"));
- }
- code = 0;
- goto end;
- } else {
- T(("twait:err could not alloca input records"));
- }
- }
- }
- if (b && nRead > 0) {
- b = PeekConsoleInput(hdl, &inp_rec, 1, &nRead);
- if (!b) {
- T(("twait:err PeekConsoleInput"));
- }
- if (b && nRead > 0) {
- switch (inp_rec.EventType) {
- case KEY_EVENT:
- if (mode & TW_INPUT) {
- WORD vk =
- inp_rec.Event.KeyEvent.wVirtualKeyCode;
- char ch =
- inp_rec.Event.KeyEvent.uChar.AsciiChar;
- T(("twait:event KEY_EVENT"));
- T(("twait vk=%d, ch=%d, keydown=%d",
- vk, ch, inp_rec.Event.KeyEvent.bKeyDown));
- if (inp_rec.Event.KeyEvent.bKeyDown) {
- T(("twait:event KeyDown"));
- if (!WINCONSOLE.isTermInfoConsole &&
- (0 == ch)) {
- int nKey = MapKey(vk);
- if (nKey < 0) {
- CONSUME();
- continue;
- }
- }
- code = TW_INPUT;
- goto end;
- } else {
- CONSUME();
- }
- }
- continue;
- case MOUSE_EVENT:
- T(("twait:event MOUSE_EVENT"));
- if (decode_mouse(sp,
- (inp_rec.Event.MouseEvent.dwButtonState
- & BUTTON_MASK)) == 0) {
- CONSUME();
- } else if (mode & TW_MOUSE) {
- code = TW_MOUSE;
- goto end;
- }
- continue;
- /* e.g., FOCUS_EVENT */
- default:
- T(("twait:event Tyoe %d", inp_rec.EventType));
- CONSUME();
- _nc_console_selectActiveHandle();
- continue;
- }
- }
- }
- }
- continue;
- } else {
- if (rc != WAIT_TIMEOUT) {
- code = -1;
- break;
- } else {
- code = 0;
- break;
- }
- }
+ if (!isNoDelay) {
+ GetSystemTimeAsFileTime(&fstart);
+ rc = WaitForSingleObject(hdl, (DWORD) milliseconds);
+ GetSystemTimeAsFileTime(&fend);
+ diff = (int) tdiff(fstart, fend);
+ milliseconds = Adjust(milliseconds, diff);
+ if (milliseconds < 0)
+ break;
+ }
+
+ if (isNoDelay || (rc == WAIT_OBJECT_0)) {
+ if (mode) {
+ nRead = 0;
+ b = GetNumberOfConsoleInputEvents(hdl, &nRead);
+ if (!b) {
+ T(("twait:err GetNumberOfConsoleInputEvents"));
+ }
+ if (isNoDelay && b) {
+ T(("twait: Events Available: %ld", nRead));
+ if (nRead == 0) {
+ code = 0;
+ goto end;
+ } else {
+ DWORD n = 0;
+ INPUT_RECORD *pInpRec =
+ TypeAlloca(INPUT_RECORD, nRead);
+ if (pInpRec != NULL) {
+ DWORD i;
+ BOOL f;
+ memset(pInpRec, 0, sizeof(INPUT_RECORD) * nRead);
+ f = PeekConsoleInput(hdl, pInpRec, nRead, &n);
+ if (f) {
+ for (i = 0; i < n; i++) {
+ if (pInpRec[i].EventType == KEY_EVENT) {
+ if (pInpRec[i].Event.KeyEvent.bKeyDown) {
+ DWORD ctrlMask =
+ (pInpRec[i].Event.KeyEvent.dwControlKeyState &
+ IGNORE_CTRL_KEYS);
+ if (!ctrlMask) {
+ code = TW_INPUT;
+ goto end;
+ }
+ }
+ }
+ }
+ } else {
+ T(("twait:err PeekConsoleInput"));
+ }
+ code = 0;
+ goto end;
+ } else {
+ T(("twait:err could not alloca input records"));
+ }
+ }
+ }
+ if (b && nRead > 0) {
+ b = PeekConsoleInput(hdl, &inp_rec, 1, &nRead);
+ if (!b) {
+ T(("twait:err PeekConsoleInput"));
+ }
+ if (b && nRead > 0) {
+ switch (inp_rec.EventType) {
+ case KEY_EVENT:
+ if (mode & TW_INPUT) {
+ WORD vk =
+ inp_rec.Event.KeyEvent.wVirtualKeyCode;
+ char ch =
+ inp_rec.Event.KeyEvent.uChar.AsciiChar;
+ T(("twait:event KEY_EVENT"));
+ T(("twait vk=%d, ch=%d, keydown=%d",
+ vk, ch, inp_rec.Event.KeyEvent.bKeyDown));
+ if (inp_rec.Event.KeyEvent.bKeyDown) {
+ T(("twait:event KeyDown"));
+ if (!WINCONSOLE.isTermInfoConsole &&
+ (0 == ch)) {
+ int nKey = MapKey(vk);
+ if (nKey < 0) {
+ CONSUME();
+ continue;
+ }
+ }
+ code = TW_INPUT;
+ goto end;
+ } else {
+ CONSUME();
+ }
+ }
+ continue;
+ case MOUSE_EVENT:
+ T(("twait:event MOUSE_EVENT"));
+ if (decode_mouse(sp,
+ (inp_rec.Event.MouseEvent.dwButtonState
+ & BUTTON_MASK)) == 0) {
+ CONSUME();
+ } else if (mode & TW_MOUSE) {
+ code = TW_MOUSE;
+ goto end;
+ }
+ continue;
+ /* e.g., FOCUS_EVENT */
+ default:
+ T(("twait:event Tyoe %d", inp_rec.EventType));
+ CONSUME();
+ _nc_console_selectActiveHandle();
+ continue;
+ }
+ }
+ }
+ }
+ continue;
+ } else {
+ if (rc != WAIT_TIMEOUT) {
+ code = -1;
+ break;
+ } else {
+ code = 0;
+ break;
+ }
+ }
}
-end:
+ end:
TR(TRACE_IEVENT, ("end twait: returned %d (%lu), remaining time %d msec",
- code, GetLastError(), milliseconds));
+ code, GetLastError(), milliseconds));
if (timeleft)
- *timeleft = milliseconds;
+ *timeleft = milliseconds;
return code;
}
NCURSES_EXPORT(int)
_nc_console_testmouse(
- SCREEN *sp,
- HANDLE hdl,
- int delay
- EVENTLIST_2nd(_nc_eventlist * evl))
+ SCREEN *sp,
+ HANDLE hdl,
+ int delay
+ EVENTLIST_2nd(_nc_eventlist * evl))
{
int rc = 0;
assert(sp);
if (sp->_drv_mouse_head < sp->_drv_mouse_tail) {
- rc = TW_MOUSE;
+ rc = TW_MOUSE;
} else {
- rc = _nc_console_twait(sp,
- hdl,
- TWAIT_MASK,
- delay,
- (int *) 0
- EVENTLIST_2nd(evl));
+ rc = _nc_console_twait(sp,
+ hdl,
+ TWAIT_MASK,
+ delay,
+ (int *) 0
+ EVENTLIST_2nd(evl));
}
return rc;
}
NCURSES_EXPORT(int)
_nc_console_read(
- SCREEN *sp,
- HANDLE hdl,
- int *buf)
+ SCREEN *sp,
+ HANDLE hdl,
+ int *buf)
{
int rc = -1;
INPUT_RECORD inp_rec;
@@ -1054,47 +1038,47 @@ _nc_console_read(
T((T_CALLED("lib_win32con::_nc_console_read(%p)"), sp));
while ((b = ReadConsoleInput(hdl, &inp_rec, 1, &nRead))) {
- if (b && nRead > 0) {
- if (rc < 0)
- rc = 0;
- rc = rc + (int) nRead;
- if (inp_rec.EventType == KEY_EVENT) {
- if (!inp_rec.Event.KeyEvent.bKeyDown)
- continue;
- *buf = (int) inp_rec.Event.KeyEvent.uChar.AsciiChar;
- vk = inp_rec.Event.KeyEvent.wVirtualKeyCode;
- /*
- * There are 24 virtual function-keys, and typically
- * 12 function-keys on a keyboard. Use the shift-modifier
- * to provide the remaining 12 keys.
- */
- if (vk >= VK_F1 && vk <= VK_F12) {
- if (inp_rec.Event.KeyEvent.dwControlKeyState &
- SHIFT_PRESSED) {
- vk = (WORD) (vk + 12);
- }
- }
- if (*buf == 0) {
- int key = MapKey(vk);
- if (key < 0)
- continue;
- if (sp->_keypad_on) {
- *buf = key;
- } else {
- ungetch('\0');
- *buf = AnsiKey(vk);
- }
- }
- break;
- } else if (inp_rec.EventType == MOUSE_EVENT) {
- if (handle_mouse(sp,
- inp_rec.Event.MouseEvent)) {
- *buf = KEY_MOUSE;
- break;
- }
- }
- continue;
- }
+ if (b && nRead > 0) {
+ if (rc < 0)
+ rc = 0;
+ rc = rc + (int) nRead;
+ if (inp_rec.EventType == KEY_EVENT) {
+ if (!inp_rec.Event.KeyEvent.bKeyDown)
+ continue;
+ *buf = (int) inp_rec.Event.KeyEvent.uChar.AsciiChar;
+ vk = inp_rec.Event.KeyEvent.wVirtualKeyCode;
+ /*
+ * There are 24 virtual function-keys, and typically
+ * 12 function-keys on a keyboard. Use the shift-modifier
+ * to provide the remaining 12 keys.
+ */
+ if (vk >= VK_F1 && vk <= VK_F12) {
+ if (inp_rec.Event.KeyEvent.dwControlKeyState &
+ SHIFT_PRESSED) {
+ vk = (WORD) (vk + 12);
+ }
+ }
+ if (*buf == 0) {
+ int key = MapKey(vk);
+ if (key < 0)
+ continue;
+ if (sp->_keypad_on) {
+ *buf = key;
+ } else {
+ ungetch('\0');
+ *buf = AnsiKey(vk);
+ }
+ }
+ break;
+ } else if (inp_rec.EventType == MOUSE_EVENT) {
+ if (handle_mouse(sp,
+ inp_rec.Event.MouseEvent)) {
+ *buf = KEY_MOUSE;
+ break;
+ }
+ }
+ continue;
+ }
}
returnCode(rc);
}
@@ -1115,16 +1099,17 @@ _nc_console_isatty(int fd)
T((T_CALLED("lib_win32con::_nc_console_isatty(%d"), fd));
if (_isatty(fd))
- result = 1;
+ result = 1;
#ifdef _NC_CHECK_MINTTY
else {
- if (_nc_console_checkmintty(fd, NULL)) {
- result = 2;
- fprintf(stderr, "ncurses on Windows must run in a Windows console.\n");
- fprintf(stderr, "On newer versions of Windows, the calling program should create a PTY-like.\n");
- fprintf(stderr, "device using the CreatePseudoConsole Windows API call.\n");
- exit(EXIT_FAILURE);
- }
+ if (_nc_console_checkmintty(fd, NULL)) {
+ result = 2;
+ fprintf(stderr,
+ "ncurses on Windows must run in a Windows console.\n"
+ "On newer versions of Windows, the calling program should create a PTY-like.\n"
+ "device using the CreatePseudoConsole Windows API call.\n");
+ exit(EXIT_FAILURE);
+ }
}
#endif
returnCode(result);
@@ -1139,116 +1124,127 @@ _nc_console_checkinit(bool initFlag, bool assumeTermInfo)
initFlag, assumeTermInfo));
if (!initFlag) {
- res = console_initialized;
+ res = console_initialized;
} else {
- /* initialize once, or not at all */
- if (!console_initialized) {
- int i;
- DWORD num_buttons;
- WORD a;
- BOOL buffered = FALSE;
- BOOL b;
-
- START_TRACE();
- WINCONSOLE.isTermInfoConsole = assumeTermInfo;
-
- WINCONSOLE.map = (LPDWORD)malloc(sizeof(DWORD)*MAPSIZE);
- WINCONSOLE.rmap = (LPDWORD)malloc(sizeof(DWORD)*MAPSIZE);
- WINCONSOLE.ansi_map = (LPDWORD)malloc(sizeof(DWORD)*MAPSIZE);
-
- for (i = 0; i < (N_INI + FKEYS); i++) {
- if (i < N_INI) {
- WINCONSOLE.rmap[i] = WINCONSOLE.map[i] =
- (DWORD) keylist[i];
- WINCONSOLE.ansi_map[i] = (DWORD) ansi_keys[i];
- } else {
- WINCONSOLE.rmap[i] = WINCONSOLE.map[i] =
- (DWORD) GenMap((VK_F1 + (i - N_INI)),
- (KEY_F(1) + (i - N_INI)));
- WINCONSOLE.ansi_map[i] =
- (DWORD) GenMap((VK_F1 + (i - N_INI)),
- (';' + (i - N_INI)));
- }
- }
- qsort(WINCONSOLE.ansi_map,
- (size_t) (MAPSIZE),
- sizeof(keylist[0]),
- keycompare);
- qsort(WINCONSOLE.map,
- (size_t) (MAPSIZE),
- sizeof(keylist[0]),
- keycompare);
- qsort(WINCONSOLE.rmap,
- (size_t) (MAPSIZE),
- sizeof(keylist[0]),
- rkeycompare);
-
- if (GetNumberOfConsoleMouseButtons(&num_buttons)) {
- WINCONSOLE.numButtons = (int) num_buttons;
- } else {
- WINCONSOLE.numButtons = 1;
- }
-
- a = _nc_console_MapColor(true, COLOR_WHITE) |
- _nc_console_MapColor(false, COLOR_BLACK);
- for (i = 0; i < CON_NUMPAIRS; i++)
- WINCONSOLE.pairs[i] = a;
-
- WINCONSOLE.inp = GetStdHandle(STD_INPUT_HANDLE);
- WINCONSOLE.out = GetStdHandle(STD_OUTPUT_HANDLE);
- WINCONSOLE.hdl = WINCONSOLE.out;
-
- GetConsoleMode(WINCONSOLE.inp, &WINCONSOLE.originalMode.dwFlagIn);
- GetConsoleMode(WINCONSOLE.out, &WINCONSOLE.originalMode.dwFlagOut);
-
- if (!WINCONSOLE.isTermInfoConsole) {
- b = AllocConsole();
-
- if (!b)
- b = AttachConsole(ATTACH_PARENT_PROCESS);
-
- if (getenv("NCGDB") || getenv("NCURSES_CONSOLE2")) {
- T(("... will not buffer console"));
- } else {
- T(("... creating console buffer"));
- WINCONSOLE.hdl =
- CreateConsoleScreenBuffer(GENERIC_READ | GENERIC_WRITE,
- 0,
- NULL,
- CONSOLE_TEXTMODE_BUFFER,
- NULL);
- buffered = TRUE;
- }
- }
-
- /* We set binary I/O even when using the console
- driver to cover the situation, that the
- TERM variable is set to #win32con, but actually
- Windows supports virtual terminal processing.
- So if terminfo functions are used in this setup,
- they actually may work.
- */
- _setmode(fileno(stdin), _O_BINARY);
- _setmode(fileno(stdout), _O_BINARY);
-
- if (WINCONSOLE.hdl != INVALID_HANDLE_VALUE) {
- WINCONSOLE.buffered = buffered;
- _nc_console_get_SBI();
- WINCONSOLE.save_SBI = WINCONSOLE.SBI;
- if (!buffered) {
- save_original_screen();
- _nc_console_set_scrollback(FALSE, &WINCONSOLE.SBI);
- }
- GetConsoleCursorInfo(WINCONSOLE.hdl, &WINCONSOLE.save_CI);
- T(("... initial cursor is %svisible, %d%%",
- (WINCONSOLE.save_CI.bVisible ? "" : "not-"),
- (int) WINCONSOLE.save_CI.dwSize));
- }
-
- WINCONSOLE.initialized = TRUE;
- console_initialized = TRUE;
- }
- res = (WINCONSOLE.hdl != INVALID_HANDLE_VALUE);
+ /* initialize once, or not at all */
+ if (!console_initialized) {
+ int i;
+ DWORD num_buttons;
+ WORD a;
+ BOOL buffered = FALSE;
+ BOOL b;
+
+ START_TRACE();
+ WINCONSOLE.isTermInfoConsole = assumeTermInfo;
+
+ WINCONSOLE.map = (LPDWORD) malloc(sizeof(DWORD) * MAPSIZE);
+ WINCONSOLE.rmap = (LPDWORD) malloc(sizeof(DWORD) * MAPSIZE);
+ WINCONSOLE.ansi_map = (LPDWORD) malloc(sizeof(DWORD) * MAPSIZE);
+
+ for (i = 0; i < (N_INI + FKEYS); i++) {
+ if (i < N_INI) {
+ WINCONSOLE.rmap[i] = WINCONSOLE.map[i] =
+ (DWORD) keylist[i];
+ WINCONSOLE.ansi_map[i] = (DWORD) ansi_keys[i];
+ } else {
+ WINCONSOLE.rmap[i] = WINCONSOLE.map[i] =
+ (DWORD) GenMap((VK_F1 + (i - N_INI)),
+ (KEY_F(1) + (i - N_INI)));
+ WINCONSOLE.ansi_map[i] =
+ (DWORD) GenMap((VK_F1 + (i - N_INI)),
+ (';' + (i - N_INI)));
+ }
+ }
+ qsort(WINCONSOLE.ansi_map,
+ (size_t) (MAPSIZE),
+ sizeof(keylist[0]),
+ keycompare);
+ qsort(WINCONSOLE.map,
+ (size_t) (MAPSIZE),
+ sizeof(keylist[0]),
+ keycompare);
+ qsort(WINCONSOLE.rmap,
+ (size_t) (MAPSIZE),
+ sizeof(keylist[0]),
+ rkeycompare);
+
+ if (GetNumberOfConsoleMouseButtons(&num_buttons)) {
+ WINCONSOLE.numButtons = (int) num_buttons;
+ } else {
+ WINCONSOLE.numButtons = 1;
+ }
+
+ a = _nc_console_MapColor(true, COLOR_WHITE) |
+ _nc_console_MapColor(false, COLOR_BLACK);
+ for (i = 0; i < CON_NUMPAIRS; i++)
+ WINCONSOLE.pairs[i] = a;
+
+#define SaveConsoleMode(handle, value) \
+ GetConsoleMode(WINCONSOLE.handle, &WINCONSOLE.originalMode.value)
+
+ if (WINCONSOLE.isTermInfoConsole) {
+ WINCONSOLE.inp = GetStdHandle(STD_INPUT_HANDLE);
+ WINCONSOLE.out = GetStdHandle(STD_OUTPUT_HANDLE);
+ WINCONSOLE.hdl = WINCONSOLE.out;
+
+ SaveConsoleMode(inp, dwFlagIn);
+ SaveConsoleMode(out, dwFlagOut);
+
+ } else {
+ b = AllocConsole();
+
+ if (!b)
+ b = AttachConsole(ATTACH_PARENT_PROCESS);
+
+ WINCONSOLE.inp = GetDirectHandle("CONIN$", FILE_SHARE_READ);
+ WINCONSOLE.out = GetDirectHandle("CONOUT$", FILE_SHARE_WRITE);
+
+ SaveConsoleMode(inp, dwFlagIn);
+ SaveConsoleMode(out, dwFlagOut);
+
+ if (getenv("NCGDB") || getenv("NCURSES_CONSOLE2")) {
+ WINCONSOLE.hdl = WINCONSOLE.out;
+ T(("... will not buffer console"));
+ } else {
+ T(("... creating console buffer"));
+ WINCONSOLE.hdl =
+ CreateConsoleScreenBuffer(GENERIC_READ | GENERIC_WRITE,
+ FILE_SHARE_READ | FILE_SHARE_WRITE,
+ NULL,
+ CONSOLE_TEXTMODE_BUFFER,
+ NULL);
+ buffered = TRUE;
+ }
+ }
+
+ /* We set binary I/O even when using the console
+ driver to cover the situation, that the
+ TERM variable is set to #win32con, but actually
+ Windows supports virtual terminal processing.
+ So if terminfo functions are used in this setup,
+ they actually may work.
+ */
+ _setmode(fileno(stdin), _O_BINARY);
+ _setmode(fileno(stdout), _O_BINARY);
+
+ if (WINCONSOLE.hdl != INVALID_HANDLE_VALUE) {
+ WINCONSOLE.buffered = buffered;
+ _nc_console_get_SBI();
+ WINCONSOLE.save_SBI = WINCONSOLE.SBI;
+ if (!buffered) {
+ save_original_screen();
+ _nc_console_set_scrollback(FALSE, &WINCONSOLE.SBI);
+ }
+ GetConsoleCursorInfo(WINCONSOLE.hdl, &WINCONSOLE.save_CI);
+ T(("... initial cursor is %svisible, %d%%",
+ (WINCONSOLE.save_CI.bVisible ? "" : "not-"),
+ (int) WINCONSOLE.save_CI.dwSize));
+ }
+
+ WINCONSOLE.initialized = TRUE;
+ console_initialized = TRUE;
+ }
+ res = (WINCONSOLE.hdl != INVALID_HANDLE_VALUE);
}
returnBool(res);
}
diff --git a/ncurses/tinfo/lib_win32util.c b/ncurses/tinfo/lib_win32util.c
index d5bcd70199ed..c67c8ceb9862 100644
--- a/ncurses/tinfo/lib_win32util.c
+++ b/ncurses/tinfo/lib_win32util.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020-2021,2023 Thomas E. Dickey *
* Copyright 1998-2009,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -34,7 +34,7 @@
#include <curses.priv.h>
-MODULE_ID("$Id: lib_win32util.c,v 1.1 2020/08/14 21:57:01 juergen Exp $")
+MODULE_ID("$Id: lib_win32util.c,v 1.4 2023/06/17 17:19:06 tom Exp $")
#ifdef _NC_WINDOWS
#include <io.h>
@@ -48,13 +48,13 @@ MODULE_ID("$Id: lib_win32util.c,v 1.1 2020/08/14 21:57:01 juergen Exp $")
/* This function tests, whether or not the ncurses application
is running as a descendant of MSYS2/cygwin mintty terminal
- application. mintty doesn't use Windows Console for it's screen
+ application. mintty doesn't use Windows Console for its screen
I/O, so the native Windows _isatty doesn't recognize it as
character device. But we can discover we are at the end of an
Pipe and can query the server side of the pipe, looking whether
or not this is mintty.
For now we terminate the program if we discover that situation.
- Althogh in theory it would be possible, to remotely manipulate
+ Although in theory it would be possible, to remotely manipulate
the terminal state of mintty, this is out of scope for now and
not worth the significant effort.
*/
@@ -68,10 +68,10 @@ _nc_console_checkmintty(int fd, LPHANDLE pMinTTY)
T((T_CALLED("lib_winhelper::_nc_console_checkmintty(%d, %p)"), fd, pMinTTY));
if (handle != INVALID_HANDLE_VALUE) {
- dw = GetFileType(handle);
+ dw = GetFileType(handle);
if (dw == FILE_TYPE_PIPE) {
if (GetNamedPipeInfo(handle, 0, 0, 0, 0)) {
- ULONG pPid;
+ ULONG pPid;
/* Requires NT6 */
if (GetNamedPipeServerProcessId(handle, &pPid)) {
TCHAR buf[MAX_PATH];
@@ -79,8 +79,7 @@ _nc_console_checkmintty(int fd, LPHANDLE pMinTTY)
/* These security attributes may allow us to
create a remote thread in mintty to manipulate
the terminal state remotely */
- HANDLE pHandle = OpenProcess(
- PROCESS_CREATE_THREAD
+ HANDLE pHandle = OpenProcess(PROCESS_CREATE_THREAD
| PROCESS_QUERY_INFORMATION
| PROCESS_VM_OPERATION
| PROCESS_VM_WRITE
@@ -88,20 +87,19 @@ _nc_console_checkmintty(int fd, LPHANDLE pMinTTY)
FALSE,
pPid);
if (pMinTTY)
- *pMinTTY = INVALID_HANDLE_VALUE;
+ *pMinTTY = INVALID_HANDLE_VALUE;
if (pHandle != INVALID_HANDLE_VALUE) {
- if ((len = GetProcessImageFileName(
- pHandle,
+ if ((len = GetProcessImageFileName(pHandle,
buf,
(DWORD)
array_length(buf)))) {
TCHAR *pos = _tcsrchr(buf, _T('\\'));
if (pos) {
- pos++;
+ pos++;
if (_tcsnicmp(pos, _TEXT("mintty.exe"), 10)
== 0) {
if (pMinTTY)
- *pMinTTY = pHandle;
+ *pMinTTY = pHandle;
code = 1;
}
}
@@ -114,7 +112,8 @@ _nc_console_checkmintty(int fd, LPHANDLE pMinTTY)
returnCode(code);
}
#endif /* _NC_CHECK_MINTTY */
-
+
+#if HAVE_GETTIMEOFDAY == 2
#define JAN1970 116444736000000000LL /* the value for 01/01/1970 00:00 */
NCURSES_EXPORT(int)
@@ -130,5 +129,6 @@ _nc_gettimeofday(struct timeval *tv, void *tz GCC_UNUSED)
tv->tv_sec = (long) ((data.since1601 - JAN1970) / 10000000LL);
return (0);
}
+#endif // HAVE_GETTIMEOFDAY == 2
#endif // _NC_WINDOWS
diff --git a/ncurses/tinfo/make_hash.c b/ncurses/tinfo/make_hash.c
index 9980279b2d21..78a684cc8bcb 100644
--- a/ncurses/tinfo/make_hash.c
+++ b/ncurses/tinfo/make_hash.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2020,2024 Thomas E. Dickey *
* Copyright 2009-2013,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -44,7 +44,7 @@
#include <ctype.h>
-MODULE_ID("$Id: make_hash.c,v 1.33 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: make_hash.c,v 1.34 2024/03/02 19:35:40 tom Exp $")
/*
* _nc_make_hash_table()
@@ -250,7 +250,7 @@ main(int argc, char **argv)
struct user_table_entry *name_table = typeCalloc(struct
user_table_entry, tablesize);
HashValue *hash_table = typeCalloc(HashValue, HASHTABSIZE);
- const char *root_name = "";
+ const char *root_name;
int column = 0;
int bigstring = 0;
unsigned n;
diff --git a/ncurses/tinfo/make_keys.c b/ncurses/tinfo/make_keys.c
index 80bbf63198a5..b8eb934357a3 100644
--- a/ncurses/tinfo/make_keys.c
+++ b/ncurses/tinfo/make_keys.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2011,2015 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -40,7 +40,7 @@
#define USE_TERMLIB 1
#include <build.priv.h>
-MODULE_ID("$Id: make_keys.c,v 1.22 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: make_keys.c,v 1.23 2021/08/18 20:55:25 tom Exp $")
#include <names.c>
@@ -128,11 +128,13 @@ main(int argc, char *argv[])
{
static const char *prefix[] =
{
- "#ifndef NCU_KEYS_H",
- "#define NCU_KEYS_H 1",
+ "#ifndef _INIT_KEYTRY_H",
+ "#define _INIT_KEYTRY_H 1",
"",
"/* This file was generated by MAKE_KEYS */",
"",
+ "#include <tic.h>",
+ "",
"#if BROKEN_LINKER",
"static",
"#endif",
@@ -143,7 +145,7 @@ main(int argc, char *argv[])
{
"\t{ 0, 0} };",
"",
- "#endif /* NCU_KEYS_H */",
+ "#endif /* _INIT_KEYTRY_H */",
0
};
diff --git a/ncurses/tinfo/obsolete.c b/ncurses/tinfo/obsolete.c
index 972a9a180e78..cc62f18cb3f4 100644
--- a/ncurses/tinfo/obsolete.c
+++ b/ncurses/tinfo/obsolete.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2023 Thomas E. Dickey *
* Copyright 2013-2014,2016 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -37,7 +37,7 @@
#include <curses.priv.h>
-MODULE_ID("$Id: obsolete.c,v 1.6 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: obsolete.c,v 1.11 2023/10/21 15:38:47 tom Exp $")
/*
* Obsolete entrypoint retained for binary compatibility.
@@ -238,3 +238,98 @@ _nc_conv_to_utf32(unsigned *target, const char *source, unsigned limit)
#undef CH
}
#endif /* EXP_XTERM_1005 */
+
+#ifdef EXP_OOM_TESTING
+/*
+ * Out-of-memory testing, suitable for checking if initialization (and limited
+ * running) recovers from errors due to insufficient memory. In practice, this
+ * is unlikely except with artificially constructed tests (or poorly behaved
+ * applications).
+ */
+#undef malloc
+#undef calloc
+#undef realloc
+#undef free
+#undef strdup
+
+#define TR_OOM(stmt) T(stmt)
+
+static long oom_limit = -1;
+static long oom_count = 0;
+
+static bool
+oom_check(void)
+{
+ static bool initialized = FALSE;
+ static bool triggered = FALSE;
+ bool result = FALSE;
+
+ if (!initialized) {
+ char *env = getenv("NCURSES_OOM_TESTING");
+ initialized = TRUE;
+ if (env != NULL) {
+ char *check;
+ oom_limit = strtol(env, &check, 0);
+ if (check != NULL && *check != '\0')
+ oom_limit = 0;
+ }
+ }
+ ++oom_count;
+ if (oom_limit >= 0) {
+ result = (oom_count > oom_limit);
+ if (result && !triggered) {
+ triggered = TRUE;
+ TR_OOM(("out-of-memory"));
+ }
+ }
+ return result;
+}
+
+NCURSES_EXPORT(void *)
+_nc_oom_malloc(size_t size)
+{
+ char *result = (oom_check()
+ ? NULL
+ : malloc(size));
+ TR_OOM(("oom #%ld malloc(%ld) %p", oom_count, size, result));
+ return result;
+}
+
+NCURSES_EXPORT(void *)
+_nc_oom_calloc(size_t nmemb, size_t size)
+{
+ char *result = (oom_check()
+ ? NULL
+ : calloc(nmemb, size));
+ TR_OOM(("oom #%ld calloc(%ld, %ld) %p", oom_count, nmemb, size, result));
+ return result;
+}
+
+NCURSES_EXPORT(void *)
+_nc_oom_realloc(void *ptr, size_t size)
+{
+ char *result = (oom_check()
+ ? NULL
+ : realloc(ptr, size));
+ TR_OOM(("oom #%ld realloc(%p, %ld) %p", oom_count, ptr, size, result));
+ return result;
+}
+
+NCURSES_EXPORT(void)
+_nc_oom_free(void *ptr)
+{
+ ++oom_count;
+ TR_OOM(("oom #%ld free(%p)", oom_count, ptr));
+ free(ptr);
+}
+
+NCURSES_EXPORT(char *)
+_nc_oom_strdup(const char *ptr)
+{
+ char *result = (oom_check()
+ ? NULL
+ : strdup(ptr));
+ TR_OOM(("oom #%ld strdup(%p) %p", oom_count, ptr, result));
+ return result;
+}
+#endif /* EXP_OOM_TESTING */
diff --git a/ncurses/tinfo/parse_entry.c b/ncurses/tinfo/parse_entry.c
index ec2d3364234e..13fef495aec9 100644
--- a/ncurses/tinfo/parse_entry.c
+++ b/ncurses/tinfo/parse_entry.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2022,2023 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -48,7 +48,7 @@
#include <ctype.h>
#include <tic.h>
-MODULE_ID("$Id: parse_entry.c,v 1.101 2020/10/24 21:37:13 tom Exp $")
+MODULE_ID("$Id: parse_entry.c,v 1.108 2023/04/24 22:32:33 tom Exp $")
#ifdef LINT
static short const parametrized[] =
@@ -110,7 +110,7 @@ _nc_extend_names(ENTRY * entryp, const char *name, int token_type)
/* Well, we are given a cancel for a name that we don't recognize */
return _nc_extend_names(entryp, name, STRING);
default:
- return 0;
+ return NULL;
}
/* Adjust the 'offset' (insertion-point) to keep the lists of extended
@@ -142,6 +142,11 @@ _nc_extend_names(ENTRY * entryp, const char *name, int token_type)
for (last = (unsigned) (max - 1); last > tindex; last--)
if (!found) {
+ char *saved;
+
+ if ((saved = _nc_save_str(name)) == NULL)
+ return NULL;
+
switch (token_type) {
case BOOLEAN:
tp->ext_Booleans++;
@@ -169,7 +174,7 @@ _nc_extend_names(ENTRY * entryp, const char *name, int token_type)
TYPE_REALLOC(char *, actual, tp->ext_Names);
while (--actual > offset)
tp->ext_Names[actual] = tp->ext_Names[actual - 1];
- tp->ext_Names[offset] = _nc_save_str(name);
+ tp->ext_Names[offset] = saved;
}
temp.nte_name = tp->ext_Names[offset];
@@ -214,16 +219,39 @@ expected_type(const char *name, int token_type, bool silent)
}
#endif /* NCURSES_XNAMES */
+/*
+ * A valid entry name uses characters from the "portable character set"
+ * (more commonly referred to as US-ASCII), and disallows some of the
+ * punctuation characters:
+ *
+ * '/' is a pathname separator
+ * '\' may be a pathname separator, but more important, is an escape
+ * '|' delimits names and description
+ * '#' denotes a numeric value
+ * '=' denotes a string value
+ * '@' denotes a cancelled symbol
+ * ',' separates terminfo capabilities
+ * ':' separates termcap capabilities
+ *
+ * Termcap capability names may begin with a '#' or '@' (since they have
+ * exactly two characters).
+ */
static bool
valid_entryname(const char *name)
{
bool result = TRUE;
+ bool first = TRUE;
int ch;
while ((ch = UChar(*name++)) != '\0') {
- if (ch <= ' ' || ch > '~' || ch == '/') {
+ if (ch <= ' ' || ch > '~' || strchr("/\\|=,:", ch) != NULL) {
+ result = FALSE;
+ break;
+ }
+ if (!first && strchr("#@", ch) != NULL) {
result = FALSE;
break;
}
+ first = FALSE;
}
return result;
}
@@ -262,10 +290,14 @@ _nc_parse_entry(ENTRY * entryp, int literal, bool silent)
const char *name;
bool bad_tc_usage = FALSE;
+ TR(TRACE_DATABASE,
+ (T_CALLED("_nc_parse_entry(entry=%p, literal=%d, silent=%d)"),
+ (void *) entryp, literal, silent));
+
token_type = _nc_get_token(silent);
if (token_type == EOF)
- return (EOF);
+ returnDB(EOF);
if (token_type != NAMES)
_nc_err_abort("Entry does not start with terminal names in column one");
@@ -301,9 +333,9 @@ _nc_parse_entry(ENTRY * entryp, int literal, bool silent)
entryp->tterm.str_table = entryp->tterm.term_names = _nc_save_str(ptr);
if (entryp->tterm.str_table == 0)
- return (ERR);
+ returnDB(ERR);
- DEBUG(1, ("Starting '%s'", ptr));
+ DEBUG(2, ("Starting '%s'", ptr));
/*
* We do this because the one-token lookahead in the parse loop
@@ -337,6 +369,8 @@ _nc_parse_entry(ENTRY * entryp, int literal, bool silent)
bool is_use = (strcmp(_nc_curr_token.tk_name, "use") == 0);
bool is_tc = !is_use && (strcmp(_nc_curr_token.tk_name, "tc") == 0);
if (is_use || is_tc) {
+ char *saved;
+
if (!VALID_STRING(_nc_curr_token.tk_valstring)
|| _nc_curr_token.tk_valstring[0] == '\0') {
_nc_warning("missing name for use-clause");
@@ -350,11 +384,13 @@ _nc_parse_entry(ENTRY * entryp, int literal, bool silent)
_nc_curr_token.tk_valstring);
continue;
}
- entryp->uses[entryp->nuses].name = _nc_save_str(_nc_curr_token.tk_valstring);
- entryp->uses[entryp->nuses].line = _nc_curr_line;
- entryp->nuses++;
- if (entryp->nuses > 1 && is_tc) {
- BAD_TC_USAGE
+ if ((saved = _nc_save_str(_nc_curr_token.tk_valstring)) != NULL) {
+ entryp->uses[entryp->nuses].name = saved;
+ entryp->uses[entryp->nuses].line = _nc_curr_line;
+ entryp->nuses++;
+ if (entryp->nuses > 1 && is_tc) {
+ BAD_TC_USAGE
+ }
}
} else {
/* normal token lookup */
@@ -362,7 +398,7 @@ _nc_parse_entry(ENTRY * entryp, int literal, bool silent)
_nc_get_hash_table(_nc_syntax));
/*
- * Our kluge to handle aliasing. The reason it's done
+ * Our kluge to handle aliasing. The reason it is done
* this ugly way, with a linear search, is so the hashing
* machinery doesn't have to be made really complicated
* (also we get better warnings this way). No point in
@@ -605,7 +641,7 @@ _nc_parse_entry(ENTRY * entryp, int literal, bool silent)
}
_nc_wrap_entry(entryp, FALSE);
- return (OK);
+ returnDB(OK);
}
NCURSES_EXPORT(int)
@@ -737,6 +773,10 @@ postprocess_termcap(TERMTYPE2 *tp, bool has_base)
char buf[MAX_LINE * 2 + 2];
string_desc result;
+ TR(TRACE_DATABASE,
+ (T_CALLED("postprocess_termcap(tp=%p, has_base=%d)"),
+ (void *) tp, has_base));
+
/*
* TERMCAP DEFAULTS AND OBSOLETE-CAPABILITY TRANSLATIONS
*
@@ -929,7 +969,7 @@ postprocess_termcap(TERMTYPE2 *tp, bool has_base)
if (tp->Strings[to_ptr->nte_index]) {
const char *s = tp->Strings[from_ptr->nte_index];
const char *t = tp->Strings[to_ptr->nte_index];
- /* There's no point in warning about it if it's the same
+ /* There's no point in warning about it if it is the same
* string; that's just an inefficiency.
*/
if (VALID_STRING(s) && VALID_STRING(t) && strcmp(s, t) != 0)
@@ -1023,11 +1063,16 @@ postprocess_termcap(TERMTYPE2 *tp, bool has_base)
&& PRESENT(exit_alt_charset_mode)) {
acs_chars = _nc_save_str(VT_ACSC);
}
+ returnVoidDB;
}
static void
postprocess_terminfo(TERMTYPE2 *tp)
{
+ TR(TRACE_DATABASE,
+ (T_CALLED("postprocess_terminfo(tp=%p)"),
+ (void *) tp));
+
/*
* TERMINFO-TO-TERMINFO MAPPINGS FOR SOURCE TRANSLATION
* ----------------------------------------------------------------------
@@ -1064,6 +1109,7 @@ postprocess_terminfo(TERMTYPE2 *tp)
/*
* ----------------------------------------------------------------------
*/
+ returnVoidDB;
}
/*
diff --git a/ncurses/tinfo/read_entry.c b/ncurses/tinfo/read_entry.c
index 9741e103b7a9..b0f360eca800 100644
--- a/ncurses/tinfo/read_entry.c
+++ b/ncurses/tinfo/read_entry.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2020,2021 Thomas E. Dickey *
+ * Copyright 2018-2022,2023 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -42,9 +42,7 @@
#include <tic.h>
-MODULE_ID("$Id: read_entry.c,v 1.159 2021/02/14 00:17:09 tom Exp $")
-
-#define TYPE_CALLOC(type,elts) typeCalloc(type, (unsigned)(elts))
+MODULE_ID("$Id: read_entry.c,v 1.171 2023/09/16 16:30:34 tom Exp $")
#define MyNumber(n) (short) LOW_MSB(n)
@@ -140,11 +138,13 @@ convert_16bits(char *buf, NCURSES_INT2 *Numbers, int count)
}
#endif
-static void
-convert_strings(char *buf, char **Strings, int count, int size, char *table)
+static bool
+convert_strings(char *buf, char **Strings, int count, int size,
+ char *table, bool always)
{
int i;
char *p;
+ bool success = TRUE;
for (i = 0; i < count; i++) {
if (IS_NEG1(buf + 2 * i)) {
@@ -154,8 +154,17 @@ convert_strings(char *buf, char **Strings, int count, int size, char *table)
} else if (MyNumber(buf + 2 * i) > size) {
Strings[i] = ABSENT_STRING;
} else {
- Strings[i] = (MyNumber(buf + 2 * i) + table);
- TR(TRACE_DATABASE, ("Strings[%d] = %s", i, _nc_visbuf(Strings[i])));
+ int nn = MyNumber(buf + 2 * i);
+ if (nn >= 0 && nn < size) {
+ Strings[i] = (nn + table);
+ TR(TRACE_DATABASE, ("Strings[%d] = %s", i,
+ _nc_visbuf(Strings[i])));
+ } else {
+ TR(TRACE_DATABASE,
+ ("found out-of-range index %d to Strings[%d]", nn, i));
+ success = FALSE;
+ break;
+ }
}
/* make sure all strings are NUL terminated */
@@ -164,10 +173,25 @@ convert_strings(char *buf, char **Strings, int count, int size, char *table)
if (*p == '\0')
break;
/* if there is no NUL, ignore the string */
- if (p >= table + size)
+ if (p >= table + size) {
Strings[i] = ABSENT_STRING;
+ } else if (p == Strings[i] && always) {
+ TR(TRACE_DATABASE,
+ ("found empty but required Strings[%d]", i));
+ success = FALSE;
+ break;
+ }
+ } else if (always) { /* names are always needed */
+ TR(TRACE_DATABASE,
+ ("found invalid but required Strings[%d]", i));
+ success = FALSE;
+ break;
}
}
+ if (!success) {
+ _nc_warning("corrupt data found in convert_strings");
+ }
+ return success;
}
static int
@@ -203,6 +227,8 @@ _nc_init_termtype(TERMTYPE2 *const tp)
{
unsigned i;
+ DEBUG(2, (T_CALLED("_nc_init_termtype(tp=%p)"), (void *) tp));
+
#if NCURSES_XNAMES
tp->num_Booleans = BOOLCOUNT;
tp->num_Numbers = NUMCOUNT;
@@ -226,6 +252,8 @@ _nc_init_termtype(TERMTYPE2 *const tp)
for_each_string(i, tp)
tp->Strings[i] = ABSENT_STRING;
+
+ DEBUG(2, (T_RETURN("")));
}
#if NCURSES_USE_DATABASE
@@ -308,6 +336,9 @@ _nc_read_termtype(TERMTYPE2 *ptr, char *buffer, int limit)
|| bool_count < 0
|| num_count < 0
|| str_count < 0
+ || bool_count > BOOLCOUNT
+ || num_count > NUMCOUNT
+ || str_count > STRCOUNT
|| str_size < 0) {
returnDB(TGETENT_NO);
}
@@ -320,7 +351,7 @@ _nc_read_termtype(TERMTYPE2 *ptr, char *buffer, int limit)
}
/* grab the name (a null-terminated string) */
- want = min(MAX_NAME_SIZE, (unsigned) name_size);
+ want = Min(MAX_NAME_SIZE, (unsigned) name_size);
ptr->str_table = string_table;
ptr->term_names = string_table;
if ((have = (unsigned) Read(ptr->term_names, want)) != want) {
@@ -333,9 +364,8 @@ _nc_read_termtype(TERMTYPE2 *ptr, char *buffer, int limit)
offset = (int) (have - MAX_NAME_SIZE);
/* grab the booleans */
- if ((ptr->Booleans = TYPE_CALLOC(NCURSES_SBOOL,
- max(BOOLCOUNT, bool_count))) == 0
- || Read(ptr->Booleans, (unsigned) bool_count) < bool_count) {
+ TYPE_CALLOC(NCURSES_SBOOL, Max(BOOLCOUNT, bool_count), ptr->Booleans);
+ if (Read(ptr->Booleans, (unsigned) bool_count) < bool_count) {
returnDB(TGETENT_NO);
}
@@ -348,15 +378,13 @@ _nc_read_termtype(TERMTYPE2 *ptr, char *buffer, int limit)
even_boundary(name_size + bool_count);
/* grab the numbers */
- if (!(ptr->Numbers = TYPE_CALLOC(NCURSES_INT2, max(NUMCOUNT, num_count)))
- || !read_numbers(buf, num_count)) {
+ TYPE_CALLOC(NCURSES_INT2, Max(NUMCOUNT, num_count), ptr->Numbers);
+ if (!read_numbers(buf, num_count)) {
returnDB(TGETENT_NO);
}
convert_numbers(buf, ptr->Numbers, num_count);
- if ((ptr->Strings = TYPE_CALLOC(char *, max(STRCOUNT, str_count))) == 0) {
- returnDB(TGETENT_NO);
- }
+ TYPE_CALLOC(char *, Max(STRCOUNT, str_count), ptr->Strings);
if (str_count) {
/* grab the string offsets */
@@ -367,7 +395,10 @@ _nc_read_termtype(TERMTYPE2 *ptr, char *buffer, int limit)
if (Read(string_table, (unsigned) str_size) != str_size) {
returnDB(TGETENT_NO);
}
- convert_strings(buf, ptr->Strings, str_count, str_size, string_table);
+ if (!convert_strings(buf, ptr->Strings, str_count, str_size,
+ string_table, FALSE)) {
+ returnDB(TGETENT_NO);
+ }
}
#if NCURSES_XNAMES
@@ -468,8 +499,10 @@ _nc_read_termtype(TERMTYPE2 *ptr, char *buffer, int limit)
("Before computing extended-string capabilities "
"str_count=%d, ext_str_count=%d",
str_count, ext_str_count));
- convert_strings(buf, ptr->Strings + str_count, ext_str_count,
- ext_str_limit, ptr->ext_str_table);
+ if (!convert_strings(buf, ptr->Strings + str_count, ext_str_count,
+ ext_str_limit, ptr->ext_str_table, FALSE)) {
+ returnDB(TGETENT_NO);
+ }
for (i = ext_str_count - 1; i >= 0; i--) {
TR(TRACE_DATABASE, ("MOVE from [%d:%d] %s",
i, i + str_count,
@@ -497,16 +530,17 @@ _nc_read_termtype(TERMTYPE2 *ptr, char *buffer, int limit)
if (ext_str_count >= (max_entry_size / 2)) {
returnDB(TGETENT_NO);
}
- if ((ptr->ext_Names = TYPE_CALLOC(char *, need)) == 0) {
- returnDB(TGETENT_NO);
- }
+ TYPE_CALLOC(char *, need, ptr->ext_Names);
TR(TRACE_DATABASE,
("ext_NAMES starting @%d in extended_strings, first = %s",
base, _nc_visbuf(ptr->ext_str_table + base)));
- convert_strings(buf + (2 * ext_str_count),
- ptr->ext_Names,
- (int) need,
- ext_str_limit, ptr->ext_str_table + base);
+ if (!convert_strings(buf + (2 * ext_str_count),
+ ptr->ext_Names,
+ (int) need,
+ ext_str_limit, ptr->ext_str_table + base,
+ TRUE)) {
+ returnDB(TGETENT_NO);
+ }
}
TR(TRACE_DATABASE,
@@ -552,20 +586,24 @@ _nc_read_file_entry(const char *const filename, TERMTYPE2 *ptr)
int code;
if (_nc_access(filename, R_OK) < 0
- || (fp = fopen(filename, BIN_R)) == 0) {
+ || (fp = safe_fopen(filename, BIN_R)) == 0) {
TR(TRACE_DATABASE, ("cannot open terminfo %s (errno=%d)", filename, errno));
code = TGETENT_NO;
} else {
int limit;
char buffer[MAX_ENTRY_SIZE + 1];
- if ((limit = (int) fread(buffer, sizeof(char), sizeof(buffer), fp))
- > 0) {
+ limit = (int) fread(buffer, sizeof(char), sizeof(buffer), fp);
+ if (limit > 0) {
+ const char *old_source = _nc_get_source();
TR(TRACE_DATABASE, ("read terminfo %s", filename));
+ if (old_source == NULL)
+ _nc_set_source(filename);
if ((code = _nc_read_termtype(ptr, buffer, limit)) == TGETENT_NO) {
_nc_free_termtype2(ptr);
}
+ _nc_set_source(old_source);
} else {
code = TGETENT_NO;
}
@@ -765,6 +803,9 @@ _nc_read_tic_entry(char *filename,
int reccnt = 0;
char *save = strdup(name);
+ if (save == 0)
+ returnDB(code);
+
memset(&key, 0, sizeof(key));
key.data = save;
key.size = strlen(save);
@@ -774,7 +815,7 @@ _nc_read_tic_entry(char *filename,
* looking for compiled (binary) terminfo data.
*
* cgetent uses a two-level lookup. On the first it uses the given
- * name to return a record containing only the aliases for an entry.
+ * name to return a record containing only the aliases for an entry.
* On the second (using that list of aliases as a key), it returns the
* content of the terminal description. We expect second lookup to
* return data beginning with the same set of aliases.
@@ -831,7 +872,7 @@ _nc_read_tic_entry(char *filename,
#endif /* NCURSES_USE_DATABASE */
/*
- * Find and read the compiled entry for a given terminal type, if it exists.
+ * Find and read the compiled entry for a given terminal type, if it exists.
* We take pains here to make sure no combination of environment variables and
* terminal type name can be used to overrun the file buffer.
*/
@@ -879,9 +920,6 @@ _nc_read_entry2(const char *const name, char *const filename, TERMTYPE2 *const t
}
#if NCURSES_EXT_NUMBERS
-/*
- * This entrypoint is used by tack 1.07
- */
NCURSES_EXPORT(int)
_nc_read_entry(const char *const name, char *const filename, TERMTYPE *const tp)
{
diff --git a/ncurses/tinfo/read_termcap.c b/ncurses/tinfo/read_termcap.c
index fcb43a442b7a..1a294848b827 100644
--- a/ncurses/tinfo/read_termcap.c
+++ b/ncurses/tinfo/read_termcap.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2021,2023 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -57,7 +57,7 @@
#include <sys/types.h>
#include <tic.h>
-MODULE_ID("$Id: read_termcap.c,v 1.98 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: read_termcap.c,v 1.104 2023/06/24 21:53:16 tom Exp $")
#if !PURE_TERMINFO
@@ -187,7 +187,7 @@ _nc_cgetcap(char *buf, const char *cap, int type)
bp = buf;
for (;;) {
/*
- * Skip past the current capability field - it's either the
+ * Skip past the current capability field - it is either the
* name field if this is the first time through the loop, or
* the remainder of a field whose name failed to match cap.
*/
@@ -324,7 +324,7 @@ _nc_getent(
if (fd >= 0) {
(void) lseek(fd, (off_t) 0, SEEK_SET);
} else if ((_nc_access(db_array[current], R_OK) < 0)
- || (fd = open(db_array[current], O_RDONLY, 0)) < 0) {
+ || (fd = safe_open2(db_array[current], O_RDONLY)) < 0) {
/* No error on unfound file. */
if (errno == ENOENT)
continue;
@@ -803,7 +803,7 @@ _nc_tgetent(char *bp, char **sourcename, int *lineno, const char *name)
/*
* TERMCAP can have one of two things in it. It can be the name of a file
* to use instead of /etc/termcap. In this case it better start with a
- * "/". Or it can be an entry to use so we don't have to read the file.
+ * "/". Or it can be an entry to use so we don't have to read the file.
* In this case it has to already have the newlines crunched out. If
* TERMCAP does not hold a file name then a path of names is searched
* instead. The path is found in the TERMPATH variable, or becomes
@@ -1055,23 +1055,25 @@ _nc_read_termcap_entry(const char *const tn, TERMTYPE2 *const tp)
if (normal) { /* normal case */
char envhome[PATH_MAX], *h;
- copied = strdup(get_termpath());
- for (cp = copied; *cp; cp++) {
- if (*cp == NCURSES_PATHSEP)
- *cp = '\0';
- else if (cp == copied || cp[-1] == '\0') {
- ADD_TC(cp, filecount);
+ if ((copied = strdup(get_termpath())) != 0) {
+ for (cp = copied; *cp; cp++) {
+ if (*cp == NCURSES_PATHSEP)
+ *cp = '\0';
+ else if (cp == copied || cp[-1] == '\0') {
+ ADD_TC(cp, filecount);
+ }
}
}
-
-#define PRIVATE_CAP "%s/.termcap"
+#define PRIVATE_CAP "%.*s/.termcap"
if (use_terminfo_vars() && (h = getenv("HOME")) != NULL && *h != '\0'
&& (strlen(h) + sizeof(PRIVATE_CAP)) < PATH_MAX) {
/* user's .termcap, if any, should override it */
_nc_STRCPY(envhome, h, sizeof(envhome));
_nc_SPRINTF(pathbuf, _nc_SLIMIT(sizeof(pathbuf))
- PRIVATE_CAP, envhome);
+ PRIVATE_CAP,
+ (int) (sizeof(pathbuf) - sizeof(PRIVATE_CAP)),
+ envhome);
ADD_TC(pathbuf, filecount);
}
}
@@ -1113,7 +1115,7 @@ _nc_read_termcap_entry(const char *const tn, TERMTYPE2 *const tp)
/*
* We don't suppress warning messages here. The presumption is
- * that since it's just a single entry, they won't be a pain.
+ * that since it is just a single entry, they won't be a pain.
*/
_nc_read_entry_source((FILE *) 0, tc_buf, FALSE, FALSE, NULLHOOK);
free(tc_buf);
@@ -1124,7 +1126,7 @@ _nc_read_termcap_entry(const char *const tn, TERMTYPE2 *const tp)
TR(TRACE_DATABASE, ("Looking for %s in %s", tn, termpaths[i]));
if (_nc_access(termpaths[i], R_OK) == 0
- && (fp = fopen(termpaths[i], "r")) != (FILE *) 0) {
+ && (fp = safe_fopen(termpaths[i], "r")) != (FILE *) 0) {
_nc_set_source(termpaths[i]);
/*
@@ -1164,7 +1166,7 @@ _nc_read_termcap_entry(const char *const tn, TERMTYPE2 *const tp)
_nc_free_entry(_nc_head, &(ep->tterm));
/*
- * OK, now try to write the type to user's terminfo directory.
+ * OK, now try to write the type to user's terminfo directory.
* Next time he loads this, it will come through terminfo.
*
* Advantage: Second and subsequent fetches of this entry will
diff --git a/ncurses/tinfo/strings.c b/ncurses/tinfo/strings.c
index a1d8beb63f31..03f59c24e9ad 100644
--- a/ncurses/tinfo/strings.c
+++ b/ncurses/tinfo/strings.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2023 Thomas E. Dickey *
* Copyright 2000-2012,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -38,7 +38,7 @@
#include <curses.priv.h>
#include <tic.h>
-MODULE_ID("$Id: strings.c,v 1.10 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: strings.c,v 1.11 2023/05/27 20:13:10 tom Exp $")
/****************************************************************************
* Useful string functions (especially for mvcur)
@@ -95,7 +95,7 @@ _nc_str_null(string_desc * dst, size_t len)
* Copy a descriptor
*/
NCURSES_EXPORT(string_desc *)
-_nc_str_copy(string_desc * dst, string_desc * src)
+_nc_str_copy(string_desc * dst, const string_desc * const src)
{
*dst = *src;
return dst;
diff --git a/ncurses/tinfo/tinfo_driver.c b/ncurses/tinfo/tinfo_driver.c
index c28d76415549..fd993b820381 100644
--- a/ncurses/tinfo/tinfo_driver.c
+++ b/ncurses/tinfo/tinfo_driver.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2022,2023 Thomas E. Dickey *
* Copyright 2008-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -52,7 +52,7 @@
# endif
#endif
-MODULE_ID("$Id: tinfo_driver.c,v 1.71 2020/12/12 01:06:40 tom Exp $")
+MODULE_ID("$Id: tinfo_driver.c,v 1.74 2023/09/16 10:44:33 tom Exp $")
/*
* SCO defines TIOCGSIZE and the corresponding struct. Other systems (SunOS,
@@ -206,8 +206,8 @@ drv_CanHandle(TERMINAL_CONTROL_BLOCK * TCB, const char *tname, int *errret)
save_ttytype(termp);
#endif
- if (command_character)
- _nc_tinfo_cmdch(termp, *command_character);
+ if (VALID_STRING(command_character))
+ _nc_tinfo_cmdch(termp, UChar(*command_character));
/*
* If an application calls setupterm() rather than initscr() or
@@ -1282,10 +1282,7 @@ drv_read(TERMINAL_CONTROL_BLOCK * TCB, int *buf)
assert(buf);
SetSP();
-# if USE_PTHREADS_EINTR
- if ((pthread_self) && (pthread_kill) && (pthread_equal))
- _nc_globals.read_thread = pthread_self();
-# endif
+ _nc_set_read_thread(TRUE);
#ifdef EXP_WIN32_DRIVER
n = _nc_console_read(sp,
_nc_console_handle(sp->_ifd),
@@ -1293,9 +1290,7 @@ drv_read(TERMINAL_CONTROL_BLOCK * TCB, int *buf)
#else
n = (int) read(sp->_ifd, &c2, (size_t) 1);
#endif
-#if USE_PTHREADS_EINTR
- _nc_globals.read_thread = 0;
-#endif
+ _nc_set_read_thread(FALSE);
#ifndef EXP_WIN32_DRIVER
*buf = (int) c2;
#endif
@@ -1532,7 +1527,7 @@ _nc_get_driver(TERMINAL_CONTROL_BLOCK * TCB, const char *name, int *errret)
res = DriverTable[i].driver;
#ifdef _NC_WINDOWS
if ((i + 1) == SIZEOF(DriverTable)) {
- /* For Windows >= 10.0.17763 Windows Console interface implements
+ /* For Windows >= 10.0.17763 Windows Console interface implements
virtual Terminal functionality.
If on Windows td_CanHandle returned FALSE although the terminal
name is empty, we default to ms-terminal as tinfo TERM type.
diff --git a/ncurses/tinfo/trim_sgr0.c b/ncurses/tinfo/trim_sgr0.c
index 30c8f75c1e8a..177dcd87225e 100644
--- a/ncurses/tinfo/trim_sgr0.c
+++ b/ncurses/tinfo/trim_sgr0.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020-2021,2023 Thomas E. Dickey *
* Copyright 2005-2012,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -37,15 +37,11 @@
#include <tic.h>
-MODULE_ID("$Id: trim_sgr0.c,v 1.20 2020/05/27 23:54:31 tom Exp $")
+MODULE_ID("$Id: trim_sgr0.c,v 1.22 2023/09/23 18:47:56 tom Exp $")
#undef CUR
#define CUR tp->
-#define CSI 233
-#define ESC 033 /* ^[ */
-#define L_BRACK '['
-
static char *
set_attribute_9(TERMTYPE2 *tp, int flag)
{
@@ -65,9 +61,9 @@ is_csi(const char *s)
{
int result = 0;
if (s != 0) {
- if (UChar(s[0]) == CSI)
+ if (UChar(s[0]) == CSI_CHR)
result = 1;
- else if (s[0] == ESC && s[1] == L_BRACK)
+ else if (s[0] == ESC_CHR && s[1] == L_BLOCK)
result = 2;
}
return result;
@@ -222,7 +218,7 @@ compare_part(const char *part, const char *full)
}
/*
- * While 'sgr0' is the "same" as termcap 'me', there is a compatibility issue.
+ * While 'sgr0' is the "same" as termcap 'me', there is a compatibility issue.
* The sgr/sgr0 capabilities include setting/clearing alternate character set
* mode. A termcap application cannot use sgr, so sgr0 strings that reset
* alternate character set mode will be misinterpreted. Here, we remove those
diff --git a/ncurses/tinfo/write_entry.c b/ncurses/tinfo/write_entry.c
index 5bb7aee7f360..8ccca9eca6fc 100644
--- a/ncurses/tinfo/write_entry.c
+++ b/ncurses/tinfo/write_entry.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -42,6 +42,8 @@
#include <tic.h>
+MODULE_ID("$Id: write_entry.c,v 1.132 2024/04/20 17:58:51 tom Exp $")
+
#if 1
#define TRACE_OUT(p) DEBUG(2, p)
#define TRACE_NUM(n) if (VALID_NUMERIC(Numbers[n])) { \
@@ -51,7 +53,15 @@
#define TRACE_NUM(n) /* nothing */
#endif
-MODULE_ID("$Id: write_entry.c,v 1.116 2020/08/29 16:22:03 juergen Exp $")
+/*
+ * FIXME: special case to work around Cygwin bug in link(), which updates
+ * the target file's timestamp.
+ */
+#if HAVE_LINK && !USE_SYMLINKS && !MIXEDCASE_FILENAMES && defined(__CYGWIN__)
+#define LINK_TOUCHES 1
+#else
+#define LINK_TOUCHES 0
+#endif
static int total_written;
static int total_parts;
@@ -71,13 +81,13 @@ write_file(char *filename, TERMTYPE2 *tp)
_nc_warning("entry is larger than %u bytes", limit);
} else {
FILE *fp = ((_nc_access(filename, W_OK) == 0)
- ? fopen(filename, BIN_W)
+ ? safe_fopen(filename, BIN_W)
: 0);
size_t actual;
if (fp == 0) {
perror(filename);
- _nc_syserr_abort("can't open %s/%s", _nc_tic_dir(0), filename);
+ _nc_syserr_abort("cannot open %s/%s", _nc_tic_dir(0), filename);
}
actual = fwrite(buffer, sizeof(char), (size_t) offset, fp);
@@ -85,12 +95,12 @@ write_file(char *filename, TERMTYPE2 *tp)
int myerr = ferror(fp) ? errno : 0;
if (myerr) {
_nc_syserr_abort("error writing %s/%s: %s",
- _nc_tic_dir(0),
+ _nc_tic_dir(NULL),
filename,
strerror(myerr));
} else {
_nc_syserr_abort("error writing %s/%s: %u bytes vs actual %lu",
- _nc_tic_dir(0),
+ _nc_tic_dir(NULL),
filename,
offset,
(unsigned long) actual);
@@ -118,18 +128,16 @@ check_writeable(int code)
char dir[sizeof(LEAF_FMT)];
char *s = 0;
- if (code == 0 || (s = (strchr) (dirnames, code)) == 0)
+ if (code == 0 || (s = (strchr) (dirnames, code)) == 0) {
_nc_err_abort("Illegal terminfo subdirectory \"" LEAF_FMT "\"", code);
-
- if (verified[s - dirnames])
- return;
-
- _nc_SPRINTF(dir, _nc_SLIMIT(sizeof(dir)) LEAF_FMT, code);
- if (make_db_root(dir) < 0) {
- _nc_err_abort("%s/%s: permission denied", _nc_tic_dir(0), dir);
+ } else if (!verified[s - dirnames]) {
+ _nc_SPRINTF(dir, _nc_SLIMIT(sizeof(dir)) LEAF_FMT, code);
+ if (make_db_root(dir) < 0) {
+ _nc_err_abort("%s/%s: permission denied", _nc_tic_dir(NULL), dir);
+ } else {
+ verified[s - dirnames] = TRUE;
+ }
}
-
- verified[s - dirnames] = TRUE;
}
#endif /* !USE_HASHED_DB */
@@ -137,7 +145,7 @@ static int
make_db_path(char *dst, const char *src, size_t limit)
{
int rc = -1;
- const char *top = _nc_tic_dir(0);
+ const char *top = _nc_tic_dir(NULL);
if (src == top || _nc_is_abs_path(src)) {
if (strlen(src) + 1 <= limit) {
@@ -145,7 +153,7 @@ make_db_path(char *dst, const char *src, size_t limit)
rc = 0;
}
} else {
- if (strlen(top) + strlen(src) + 2 <= limit) {
+ if ((strlen(top) + strlen(src) + 6) <= limit) {
_nc_SPRINTF(dst, _nc_SLIMIT(limit) "%s/%s", top, src);
rc = 0;
}
@@ -190,7 +198,7 @@ make_db_root(const char *path)
#else
struct stat statbuf;
- if ((rc = stat(path, &statbuf)) < 0) {
+ if ((rc = stat(path, &statbuf)) == -1) {
rc = mkdir(path
#ifndef _NC_WINDOWS
,0777
@@ -214,26 +222,30 @@ _nc_set_writedir(const char *dir)
{
const char *destination;
char actual[PATH_MAX];
+ bool specific = (dir != NULL);
- if (dir == 0
-#ifndef USE_ROOT_ENVIRON
- && use_terminfo_vars()
-#endif
- )
+ if (!specific && use_terminfo_vars())
dir = getenv("TERMINFO");
- if (dir != 0)
+ if (dir != NULL)
(void) _nc_tic_dir(dir);
- destination = _nc_tic_dir(0);
+ destination = _nc_tic_dir(NULL);
if (make_db_root(destination) < 0) {
- char *home = _nc_home_terminfo();
+ bool success = FALSE;
+
+ if (!specific) {
+ char *home = _nc_home_terminfo();
- if (home != 0) {
- destination = home;
- if (make_db_root(destination) < 0)
- _nc_err_abort("%s: permission denied (errno %d)",
- destination, errno);
+ if (home != NULL) {
+ destination = home;
+ if (make_db_root(destination) == 0)
+ success = TRUE;
+ }
+ }
+ if (!success) {
+ _nc_err_abort("%s: permission denied (errno %d)",
+ destination, errno);
}
}
@@ -245,10 +257,10 @@ _nc_set_writedir(const char *dir)
make_db_path(actual, destination, sizeof(actual));
#else
if (chdir(_nc_tic_dir(destination)) < 0
- || getcwd(actual, sizeof(actual)) == 0)
+ || getcwd(actual, sizeof(actual)) == NULL)
_nc_err_abort("%s: not a directory", destination);
#endif
- _nc_keep_tic_dir(strdup(actual));
+ _nc_keep_tic_dir(actual);
}
/*
@@ -327,8 +339,9 @@ _nc_write_entry(TERMTYPE2 *const tp)
if (ptr != name_list) {
*ptr = '\0';
- for (ptr = name_list; *ptr != '\0' && *ptr != '|'; ptr++)
- continue;
+ for (ptr = name_list; *ptr != '\0' && *ptr != '|'; ptr++) {
+ /* EMPTY */ ;
+ }
if (*ptr == '\0')
other_names = ptr;
@@ -345,10 +358,10 @@ _nc_write_entry(TERMTYPE2 *const tp)
#if USE_HASHED_DB
if (_nc_write_object(tp, buffer + 1, &offset, limit - 1) != ERR) {
- DB *capdb = _nc_db_open(_nc_tic_dir(0), TRUE);
+ DB *capdb = _nc_db_open(_nc_tic_dir(NULL), TRUE);
DBT key, data;
- if (capdb != 0) {
+ if (capdb != NULL) {
buffer[0] = 0;
memset(&key, 0, sizeof(key));
@@ -371,7 +384,7 @@ _nc_write_entry(TERMTYPE2 *const tp)
sizeof(buffer) - 1);
data.size = name_size + 1;
- total_size += data.size;
+ total_size += (int) data.size;
total_parts++;
_nc_db_put(capdb, &key, &data);
@@ -387,7 +400,7 @@ _nc_write_entry(TERMTYPE2 *const tp)
key.data = ptr;
key.size = strlen(ptr);
- total_size += data.size;
+ total_size += (int) data.size;
total_parts++;
_nc_db_put(capdb, &key, &data);
}
@@ -442,10 +455,10 @@ _nc_write_entry(TERMTYPE2 *const tp)
write_file(filename, tp);
if (start_time == 0) {
- if (stat(filename, &statbuf) < 0
+ if (stat(filename, &statbuf) == -1
|| (start_time = statbuf.st_mtime) == 0) {
_nc_syserr_abort("error obtaining time from %s/%s",
- _nc_tic_dir(0), filename);
+ _nc_tic_dir(NULL), filename);
}
}
while (*other_names != '\0') {
@@ -460,7 +473,7 @@ _nc_write_entry(TERMTYPE2 *const tp)
_nc_warning("terminal alias %s too long.", ptr);
continue;
}
- if (strchr(ptr, '/') != 0) {
+ if (strchr(ptr, '/') != NULL) {
_nc_warning("cannot link alias %s.", ptr);
continue;
}
@@ -472,10 +485,14 @@ _nc_write_entry(TERMTYPE2 *const tp)
if (strcmp(filename, linkname) == 0) {
_nc_warning("self-synonym ignored");
- } else if (stat(linkname, &statbuf) >= 0 &&
- statbuf.st_mtime < start_time) {
+ }
+#if !LINK_TOUCHES
+ else if (stat(linkname, &statbuf) >= 0 &&
+ statbuf.st_mtime < start_time) {
_nc_warning("alias %s multiply defined.", ptr);
- } else if (_nc_access(linkname, W_OK) == 0)
+ }
+#endif
+ else if (_nc_access(linkname, W_OK) == 0)
#if HAVE_LINK
{
int code;
@@ -514,9 +531,9 @@ _nc_write_entry(TERMTYPE2 *const tp)
write_file(linkname, tp);
else {
#if MIXEDCASE_FILENAMES
- _nc_syserr_abort("can't link %s to %s", filename, linkname);
+ _nc_syserr_abort("cannot link %s to %s", filename, linkname);
#else
- _nc_warning("can't link %s to %s (errno=%d)", filename,
+ _nc_warning("cannot link %s to %s (errno=%d)", filename,
linkname, errno);
#endif
}
@@ -712,7 +729,7 @@ _nc_write_object(TERMTYPE2 *tp, char *buffer, unsigned *offset, unsigned limit)
unsigned last_str = STRWRITE;
#if NCURSES_EXT_NUMBERS
bool need_ints = FALSE;
- size_t (*convert_numbers) (unsigned char *, NCURSES_INT2 *, size_t) = convert_32bit;
+ size_t (*convert_numbers) (unsigned char *, NCURSES_INT2 *, size_t);
#else
#define convert_numbers convert_shorts
#endif
@@ -773,7 +790,8 @@ _nc_write_object(TERMTYPE2 *tp, char *buffer, unsigned *offset, unsigned limit)
#else
LITTLE_ENDIAN(buf, MAGIC);
#endif
- LITTLE_ENDIAN(buf + 2, min(namelen, MAX_NAME_SIZE + 1));
+ namelen = Min(namelen, MAX_NAME_SIZE + 1);
+ LITTLE_ENDIAN(buf + 2, namelen);
LITTLE_ENDIAN(buf + 4, boolmax);
LITTLE_ENDIAN(buf + 6, nummax);
LITTLE_ENDIAN(buf + 8, strmax);
diff --git a/ncurses/trace/lib_trace.c b/ncurses/trace/lib_trace.c
index 5eb87fe0c176..0904c132fee1 100644
--- a/ncurses/trace/lib_trace.c
+++ b/ncurses/trace/lib_trace.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -37,7 +37,7 @@
/*
* lib_trace.c - Tracing/Debugging routines
*
- * The _tracef() function is originally from pcurses (by Pavel Curtis) in 1982.
+ * The _tracef() function is originally from pcurses (by Pavel Curtis) in 1982.
* pcurses allowed one to enable/disable tracing using traceon() and traceoff()
* functions. ncurses provides a trace() function which allows one to
* selectively enable or disable several tracing features.
@@ -48,7 +48,7 @@
#include <ctype.h>
-MODULE_ID("$Id: lib_trace.c,v 1.97 2020/08/29 16:22:03 juergen Exp $")
+MODULE_ID("$Id: lib_trace.c,v 1.106 2024/02/24 18:28:19 tom Exp $")
NCURSES_EXPORT_VAR(unsigned) _nc_tracing = 0; /* always define this */
@@ -89,45 +89,74 @@ NCURSES_EXPORT_VAR(long) _nc_outchars = 0;
#define MyFP _nc_globals.trace_fp
#define MyFD _nc_globals.trace_fd
#define MyInit _nc_globals.trace_opened
-#define MyPath _nc_globals.trace_fname
#define MyLevel _nc_globals.trace_level
#define MyNested _nc_globals.nested_tracef
#endif /* TRACE */
+#if USE_REENTRANT
+#define Locked(statement) \
+ do { \
+ _nc_lock_global(tst_tracef); \
+ statement; \
+ _nc_unlock_global(tst_tracef); \
+ } while (0)
+#else
+#define Locked(statement) statement
+#endif
+
NCURSES_EXPORT(unsigned)
curses_trace(unsigned tracelevel)
{
unsigned result;
+
#if defined(TRACE)
- result = _nc_tracing;
+ int bit;
+
+#define DATA(name) { name, #name }
+ static struct {
+ unsigned mask;
+ const char *name;
+ } trace_names[] = {
+ DATA(TRACE_TIMES),
+ DATA(TRACE_TPUTS),
+ DATA(TRACE_UPDATE),
+ DATA(TRACE_MOVE),
+ DATA(TRACE_CHARPUT),
+ DATA(TRACE_CALLS),
+ DATA(TRACE_VIRTPUT),
+ DATA(TRACE_IEVENT),
+ DATA(TRACE_BITS),
+ DATA(TRACE_ICALLS),
+ DATA(TRACE_CCALLS),
+ DATA(TRACE_DATABASE),
+ DATA(TRACE_ATTRS)
+ };
+#undef DATA
+
+ Locked(result = _nc_tracing);
+
if ((MyFP == 0) && tracelevel) {
MyInit = TRUE;
if (MyFD >= 0) {
MyFP = fdopen(MyFD, BIN_W);
} else {
- if (MyPath[0] == '\0') {
- size_t size = sizeof(MyPath) - 12;
- if (getcwd(MyPath, size) == 0) {
- perror("curses: Can't get working directory");
- exit(EXIT_FAILURE);
- }
- MyPath[size] = '\0';
- assert(strlen(MyPath) <= size);
- _nc_STRCAT(MyPath, "/trace", sizeof(MyPath));
- if (_nc_is_dir_path(MyPath)) {
- _nc_STRCAT(MyPath, ".log", sizeof(MyPath));
- }
+ char myFile[80];
+
+ _nc_STRCPY(myFile, "trace", sizeof(myFile));
+ if (_nc_is_dir_path(myFile)) {
+ _nc_STRCAT(myFile, ".log", sizeof(myFile));
}
- if (_nc_access(MyPath, W_OK) < 0
- || (MyFD = open(MyPath, O_CREAT | O_EXCL | O_RDWR, 0600)) < 0
+#define SAFE_MODE (O_CREAT | O_EXCL | O_RDWR)
+ if (_nc_access(myFile, W_OK) < 0
+ || (MyFD = safe_open3(myFile, SAFE_MODE, 0600)) < 0
|| (MyFP = fdopen(MyFD, BIN_W)) == 0) {
; /* EMPTY */
}
}
- _nc_tracing = tracelevel;
+ Locked(_nc_tracing = tracelevel);
/* Try to set line-buffered mode, or (failing that) unbuffered,
* so that the trace-output gets flushed automatically at the
- * end of each line. This is useful in case the program dies.
+ * end of each line. This is useful in case the program dies.
*/
if (MyFP != 0) {
#if HAVE_SETVBUF /* ANSI */
@@ -140,15 +169,33 @@ curses_trace(unsigned tracelevel)
NCURSES_VERSION,
NCURSES_VERSION_PATCH,
tracelevel);
+
+#define SPECIAL_MASK(mask) \
+ if ((tracelevel & mask) == mask) \
+ _tracef("- %s (%u)", #mask, mask)
+
+ for (bit = 0; bit < TRACE_SHIFT; ++bit) {
+ unsigned mask = (1U << bit) & tracelevel;
+ if ((mask & trace_names[bit].mask) != 0) {
+ _tracef("- %s (%u)", trace_names[bit].name, mask);
+ }
+ }
+ SPECIAL_MASK(TRACE_MAXIMUM);
+ else
+ SPECIAL_MASK(TRACE_ORDINARY);
+
+ if (tracelevel > TRACE_MAXIMUM) {
+ _tracef("- DEBUG_LEVEL(%u)", tracelevel >> TRACE_SHIFT);
+ }
} else if (tracelevel == 0) {
if (MyFP != 0) {
MyFD = dup(MyFD); /* allow reopen of same file */
fclose(MyFP);
MyFP = 0;
}
- _nc_tracing = tracelevel;
+ Locked(_nc_tracing = tracelevel);
} else if (_nc_tracing != tracelevel) {
- _nc_tracing = tracelevel;
+ Locked(_nc_tracing = tracelevel);
_tracef("tracelevel=%#x", tracelevel);
}
#else
@@ -213,11 +260,13 @@ _nc_va_tracef(const char *fmt, va_list ap)
# if USE_WEAK_SYMBOLS
if ((pthread_self))
# endif
+ fprintf(fp, "%#" PRIxPTR ":",
#ifdef _NC_WINDOWS
- fprintf(fp, "%#lx:", (long) (intptr_t) pthread_self().p);
+ CASTxPTR(pthread_self().p)
#else
- fprintf(fp, "%#lx:", (long) (intptr_t) pthread_self());
+ CASTxPTR(pthread_self())
#endif
+ );
#endif
if (before || after) {
int n;
diff --git a/ncurses/trace/lib_traceatr.c b/ncurses/trace/lib_traceatr.c
index 940262750508..b36286253d6d 100644
--- a/ncurses/trace/lib_traceatr.c
+++ b/ncurses/trace/lib_traceatr.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2022,2024 Thomas E. Dickey *
* Copyright 1998-2017,2018 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -44,7 +44,7 @@
#define CUR SP_TERMTYPE
#endif
-MODULE_ID("$Id: lib_traceatr.c,v 1.94 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: lib_traceatr.c,v 1.96 2024/02/04 00:11:35 tom Exp $")
#define COLOR_OF(c) ((c < 0) ? "default" : (c > 7 ? color_of(c) : colors[c].name))
@@ -343,6 +343,7 @@ _tracecchar_t2(int bufnum, const cchar_t *ch)
} else {
PUTC_DATA;
int n;
+ int assume_unicode = _nc_unicode_locale()? 128 : 255;
(void) _nc_trace_bufcat(bufnum, "{ ");
for (PUTC_i = 0; PUTC_i < CCHARW_MAX; ++PUTC_i) {
@@ -362,21 +363,22 @@ _tracecchar_t2(int bufnum, const cchar_t *ch)
UChar(ch->chars[PUTC_i])));
}
break;
- } else if (ch->chars[PUTC_i] > 255) {
+ } else if (ch->chars[PUTC_i] > assume_unicode) {
char temp[80];
_nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp))
- "{%d:\\u%lx}",
+ "{%d:\\u%04lx}",
_nc_wacs_width(ch->chars[PUTC_i]),
(unsigned long) ch->chars[PUTC_i]);
(void) _nc_trace_bufcat(bufnum, temp);
- break;
- }
- for (n = 0; n < PUTC_n; n++) {
- if (n)
- (void) _nc_trace_bufcat(bufnum, ", ");
- (void) _nc_trace_bufcat(bufnum,
- _nc_tracechar(CURRENT_SCREEN,
- UChar(PUTC_buf[n])));
+ attr &= ~A_CHARTEXT; /* ignore WidecExt(ch) */
+ } else {
+ for (n = 0; n < PUTC_n; n++) {
+ if (n)
+ (void) _nc_trace_bufcat(bufnum, ", ");
+ (void) _nc_trace_bufcat(bufnum,
+ _nc_tracechar(CURRENT_SCREEN,
+ UChar(PUTC_buf[n])));
+ }
}
}
(void) _nc_trace_bufcat(bufnum, " }");
diff --git a/ncurses/trace/lib_tracechr.c b/ncurses/trace/lib_tracechr.c
index 36158d6f45a6..9c879dc67397 100644
--- a/ncurses/trace/lib_tracechr.c
+++ b/ncurses/trace/lib_tracechr.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2024 Thomas E. Dickey *
* Copyright 1998-2009,2012 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -40,7 +40,7 @@
#include <ctype.h>
-MODULE_ID("$Id: lib_tracechr.c,v 1.23 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: lib_tracechr.c,v 1.24 2024/02/04 00:11:35 tom Exp $")
#ifdef TRACE
@@ -54,26 +54,28 @@ _nc_tracechar(SCREEN *sp, int ch)
? sp->tracechr_buf
: _nc_globals.tracechr_buf);
- if (ch > KEY_MIN || ch < 0) {
+ if ((ch > KEY_MIN && !_nc_unicode_locale()) || ch < 0) {
name = safe_keyname(SP_PARM, ch);
if (name == 0 || *name == '\0')
name = "NULL";
_nc_SPRINTF(MyBuffer, _nc_SLIMIT(MyBufSize)
- "'%.30s' = %#03o", name, ch);
- } else if (!is8bits(ch) || !isprint(UChar(ch))) {
+ "'%.30s' = \\x%02x", name, ch);
+ } else if (!is8bits(ch)
+ || (_nc_unicode_locale() && !is7bits(ch))
+ || !isprint(UChar(ch))) {
/*
* workaround for glibc bug:
* sprintf changes the result from unctrl() to an empty string if it
* does not correspond to a valid multibyte sequence.
*/
_nc_SPRINTF(MyBuffer, _nc_SLIMIT(MyBufSize)
- "%#03o", ch);
+ "\\x%02x", ch);
} else {
name = safe_unctrl(SP_PARM, (chtype) ch);
if (name == 0 || *name == 0)
name = "null"; /* shouldn't happen */
_nc_SPRINTF(MyBuffer, _nc_SLIMIT(MyBufSize)
- "'%.30s' = %#03o", name, ch);
+ "'%.30s' = \\x%02x", name, ch);
}
return (MyBuffer);
}
diff --git a/ncurses/trace/lib_tracedmp.c b/ncurses/trace/lib_tracedmp.c
index 3b7ea0749986..529148bb785a 100644
--- a/ncurses/trace/lib_tracedmp.c
+++ b/ncurses/trace/lib_tracedmp.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2023 Thomas E. Dickey *
* Copyright 1998-2012,2016 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -40,7 +40,7 @@
#include <curses.priv.h>
#include <ctype.h>
-MODULE_ID("$Id: lib_tracedmp.c,v 1.36 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: lib_tracedmp.c,v 1.37 2023/06/24 15:49:45 tom Exp $")
#ifdef TRACE
@@ -71,9 +71,9 @@ _tracedump(const char *name, WINDOW *win)
if (++width + 1 > (int) my_length) {
my_length = (unsigned) (2 * (width + 1));
my_buffer = typeRealloc(char, my_length, my_buffer);
- if (my_buffer == 0)
- return;
}
+ if (my_buffer == 0)
+ return;
for (n = 0; n <= win->_maxy; ++n) {
char *ep = my_buffer;
diff --git a/ncurses/trace/trace_buf.c b/ncurses/trace/trace_buf.c
index 7e6384b54153..91b12e45c248 100644
--- a/ncurses/trace/trace_buf.c
+++ b/ncurses/trace/trace_buf.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2023 Thomas E. Dickey *
* Copyright 1998-2011,2012 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -36,7 +36,7 @@
#include <curses.priv.h>
-MODULE_ID("$Id: trace_buf.c,v 1.21 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: trace_buf.c,v 1.22 2023/06/24 13:37:25 tom Exp $")
#ifdef TRACE
@@ -104,7 +104,11 @@ _nc_trace_buf(int bufnum, size_t want)
NCURSES_EXPORT(char *)
_nc_trace_bufcat(int bufnum, const char *value)
{
- char *buffer = _nc_trace_alloc(bufnum, (size_t) 0);
+ char *buffer;
+
+ if (value == NULL)
+ value = "";
+ buffer = _nc_trace_alloc(bufnum, (size_t) 0);
if (buffer != 0) {
size_t have = strlen(buffer);
size_t need = strlen(value) + have;
diff --git a/ncurses/trace/varargs.c b/ncurses/trace/varargs.c
index 9be5fc254fb0..7b9533bd62f4 100644
--- a/ncurses/trace/varargs.c
+++ b/ncurses/trace/varargs.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2023 Thomas E. Dickey *
* Copyright 2001-2008,2012 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -35,7 +35,7 @@
#include <ctype.h>
-MODULE_ID("$Id: varargs.c,v 1.12 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: varargs.c,v 1.13 2023/06/24 13:41:46 tom Exp $")
#ifdef TRACE
@@ -59,18 +59,16 @@ typedef enum {
NCURSES_EXPORT(char *)
_nc_varargs(const char *fmt, va_list ap)
{
- static char dummy[] = "";
-
char buffer[BUFSIZ];
const char *param;
int n;
if (fmt == 0 || *fmt == '\0')
- return dummy;
+ return NULL;
if (MyLength == 0)
MyBuffer = typeMalloc(char, MyLength = BUFSIZ);
if (MyBuffer == 0)
- return dummy;
+ return NULL;
*MyBuffer = '\0';
while (*fmt != '\0') {
@@ -185,7 +183,7 @@ _nc_varargs(const char *fmt, va_list ap)
}
}
- return (MyBuffer ? MyBuffer : dummy);
+ return (MyBuffer ? MyBuffer : NULL);
}
#else
EMPTY_MODULE(_nc_varargs)
diff --git a/ncurses/trace/visbuf.c b/ncurses/trace/visbuf.c
index 5f95a6bc50c0..590e42306f51 100644
--- a/ncurses/trace/visbuf.c
+++ b/ncurses/trace/visbuf.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2021,2023 Thomas E. Dickey *
* Copyright 2001-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -43,7 +43,7 @@
#include <tic.h>
#include <ctype.h>
-MODULE_ID("$Id: visbuf.c,v 1.52 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: visbuf.c,v 1.54 2023/05/27 20:13:10 tom Exp $")
#define NUM_VISBUFS 4
@@ -67,7 +67,9 @@ static const char r_brace[] = StringOf(R_BRACE);
static char *
_nc_vischar(char *tp, unsigned c LIMIT_ARG)
{
- if (c == '"' || c == '\\') {
+ if (tp == NULL) {
+ return NULL;
+ } else if (c == '"' || c == '\\') {
*tp++ = '\\';
*tp++ = (char) c;
} else if (is7bits((int) c) && (isgraph((int) c) || c == ' ')) {
@@ -283,7 +285,7 @@ _nc_viswibuf(const wint_t *buf)
/* use these functions for displaying parts of a line within a window */
NCURSES_EXPORT(const char *)
-_nc_viscbuf2(int bufnum, const NCURSES_CH_T * buf, int len)
+_nc_viscbuf2(int bufnum, const NCURSES_CH_T *buf, int len)
{
char *result = _nc_trace_buf(bufnum, (size_t) BUFSIZ);
@@ -371,7 +373,7 @@ _nc_viscbuf2(int bufnum, const NCURSES_CH_T * buf, int len)
}
NCURSES_EXPORT(const char *)
-_nc_viscbuf(const NCURSES_CH_T * buf, int len)
+_nc_viscbuf(const NCURSES_CH_T *buf, int len)
{
return _nc_viscbuf2(0, buf, len);
}
diff --git a/ncurses/tty/MKexpanded.sh b/ncurses/tty/MKexpanded.sh
index 65c6b93e4627..0072be2cd35d 100755
--- a/ncurses/tty/MKexpanded.sh
+++ b/ncurses/tty/MKexpanded.sh
@@ -1,6 +1,6 @@
#! /bin/sh
##############################################################################
-# Copyright 2019,2020 Thomas E. Dickey #
+# Copyright 2019-2020,2021 Thomas E. Dickey #
# Copyright 1998-2015,2017 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -30,7 +30,7 @@
#
# Author: Thomas E. Dickey, 1997-on
#
-# $Id: MKexpanded.sh,v 1.22 2020/02/02 23:34:34 tom Exp $
+# $Id: MKexpanded.sh,v 1.24 2022/02/05 17:27:18 tom Exp $
#
# Script to generate 'expanded.c', a dummy source that contains functions
# corresponding to complex macros used in this library. By making functions,
@@ -49,7 +49,8 @@ else
fi
TMP=gen$$.c
-trap "rm -f $TMP" EXIT INT QUIT TERM HUP
+trap "rm -f $TMP; exit 1" 1 2 3 15
+trap "rm -f $TMP" 0
cat <<EOF
/* generated by MKexpanded.sh */
@@ -81,7 +82,7 @@ _nc_toggle_attr_on (attr_t *S, attr_t at)
}
NCURSES_EXPORT(void)
-_nc_toggle_attr_off (attr_t *S, attr_t at)
+_nc_toggle_attr_off (attr_t *S, attr_t at)
{
toggle_attr_off(*S,at);
}
diff --git a/ncurses/tty/hardscroll.c b/ncurses/tty/hardscroll.c
index abb21cfddfe3..2b1f079e4b9e 100644
--- a/ncurses/tty/hardscroll.c
+++ b/ncurses/tty/hardscroll.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2023 Thomas E. Dickey *
* Copyright 1998-2015,2016 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -148,7 +148,7 @@ AUTHOR
#include <curses.priv.h>
-MODULE_ID("$Id: hardscroll.c,v 1.54 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: hardscroll.c,v 1.58 2023/09/09 16:04:08 Nicholas.Marriott Exp $")
#if defined(SCROLLDEBUG) || defined(HASHDEBUG)
@@ -204,13 +204,19 @@ NCURSES_SP_NAME(_nc_scroll_optimize) (NCURSES_SP_DCL0)
int *new_oldnums = typeRealloc(int,
(size_t) need_lines,
oldnums(SP_PARM));
- if (!new_oldnums)
+ if (!new_oldnums) {
+ TR(TRACE_ICALLS, (T_RETURN("")));
return;
+ }
oldnums(SP_PARM) = new_oldnums;
OLDNUM_SIZE(SP_PARM) = need_lines;
}
/* calculate the indices */
NCURSES_SP_NAME(_nc_hash_map) (NCURSES_SP_ARG);
+ if (SP_PARM->hashtab_len < screen_lines(SP_PARM)) {
+ TR(TRACE_ICALLS, (T_RETURN("")));
+ return;
+ }
#endif
#endif /* !defined(SCROLLDEBUG) && !defined(HASHDEBUG) */
@@ -301,20 +307,27 @@ NCURSES_EXPORT(void)
NCURSES_SP_NAME(_nc_linedump) (NCURSES_SP_DCL0)
/* dump the state of the real and virtual oldnum fields */
{
- char *buf = 0;
- size_t want = ((size_t) screen_lines(SP_PARM) + 1) * 4;
- (void) SP_PARM;
-
- if ((buf = typeMalloc(char, want)) != 0) {
- int n;
-
- *buf = '\0';
- for (n = 0; n < screen_lines(SP_PARM); n++)
- _nc_SPRINTF(buf + strlen(buf),
- _nc_SLIMIT(want - strlen(buf))
- " %02d", OLDNUM(SP_PARM, n));
- TR(TRACE_UPDATE | TRACE_MOVE, ("virt %s", buf));
- free(buf);
+ if (USE_TRACEF(TRACE_UPDATE | TRACE_MOVE)) {
+ char *buf = 0;
+ size_t want = ((size_t) screen_lines(SP_PARM) + 1) * 4;
+ (void) SP_PARM;
+
+ if ((buf = typeMalloc(char, want)) != 0) {
+ int n;
+
+ *buf = '\0';
+ for (n = 0; n < screen_lines(SP_PARM); n++) {
+ int number = OLDNUM(SP_PARM, n);
+ if (number >= -99 && number < 999) {
+ _nc_SPRINTF(buf + strlen(buf),
+ _nc_SLIMIT(want - strlen(buf))
+ " %02d", number);
+ } else {
+ _nc_STRCAT(buf, " ??", want - strlen(buf));
+ }
+ }
+ free(buf);
+ }
}
}
diff --git a/ncurses/tty/hashmap.c b/ncurses/tty/hashmap.c
index 3f124c96c896..e50b63847b99 100644
--- a/ncurses/tty/hashmap.c
+++ b/ncurses/tty/hashmap.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2020,2023 Thomas E. Dickey *
* Copyright 1998-2015,2016 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -74,7 +74,7 @@ AUTHOR
#define CUR SP_TERMTYPE
#endif
-MODULE_ID("$Id: hashmap.c,v 1.69 2020/05/31 17:50:48 tom Exp $")
+MODULE_ID("$Id: hashmap.c,v 1.71 2023/09/16 16:28:53 tom Exp $")
#ifdef HASHDEBUG
@@ -318,8 +318,11 @@ NCURSES_SP_NAME(_nc_hash_map) (NCURSES_SP_DCL0)
if (newhash(SP_PARM) == 0)
newhash(SP_PARM) = typeCalloc(unsigned long,
(size_t) screen_lines(SP_PARM));
- if (!oldhash(SP_PARM) || !newhash(SP_PARM))
+ if (!oldhash(SP_PARM) || !newhash(SP_PARM)) {
+ FreeAndNull(oldhash(SP_PARM));
+ FreeAndNull(newhash(SP_PARM));
return; /* malloc failure */
+ }
for (i = 0; i < screen_lines(SP_PARM); i++) {
newhash(SP_PARM)[i] = hash(SP_PARM, NEWTEXT(SP_PARM, i));
oldhash(SP_PARM)[i] = hash(SP_PARM, OLDTEXT(SP_PARM, i));
@@ -403,7 +406,7 @@ NCURSES_SP_NAME(_nc_hash_map) (NCURSES_SP_DCL0)
&& OLDNUM(SP_PARM, i) - i == shift)
i++;
size = i - start;
- if (size < 3 || size + min(size / 8, 2) < abs(shift)) {
+ if (size < 3 || size + Min(size / 8, 2) < abs(shift)) {
while (start < i) {
OLDNUM(SP_PARM, start) = _NEWINDEX;
start++;
diff --git a/ncurses/tty/lib_mvcur.c b/ncurses/tty/lib_mvcur.c
index dd0dc3d9b712..8fad93c727ae 100644
--- a/ncurses/tty/lib_mvcur.c
+++ b/ncurses/tty/lib_mvcur.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2020,2021 Thomas E. Dickey *
+ * Copyright 2018-2022,2023 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -83,8 +83,8 @@
/*
* The average overhead of a full optimization computation in character
- * transmission times. If it's too high, the algorithm will be a bit
- * over-biased toward using cup rather than local motions; if it's too
+ * transmission times. If it is too high, the algorithm will be a bit
+ * over-biased toward using cup rather than local motions; if it is too
* low, the algorithm may spend more time than is strictly optimal
* looking for non-cup motions. Profile the optimizer using the `t'
* command of the exerciser (see below), and round to the nearest integer.
@@ -98,7 +98,7 @@
/*
* LONG_DIST is the distance we consider to be just as costly to move over as a
- * cup sequence is to emit. In other words, it's the length of a cup sequence
+ * cup sequence is to emit. In other words, it is the length of a cup sequence
* adjusted for average computation overhead. The magic number is the length
* of "\033[yy;xxH", the typical cup sequence these days.
*/
@@ -148,7 +148,7 @@
* int _rep_cost; // cost of (repeat_char)
*
* The USE_HARD_TABS switch controls whether it is reliable to use tab/backtabs
- * for local motions. On many systems, it's not, due to uncertainties about
+ * for local motions. On many systems, it is not, due to uncertainties about
* tab delays and whether or not tabs will be expanded in raw mode. If you
* have parm_right_cursor, tab motions don't win you a lot anyhow.
*/
@@ -160,7 +160,7 @@
#define CUR SP_TERMTYPE
#endif
-MODULE_ID("$Id: lib_mvcur.c,v 1.155 2021/02/06 13:53:41 tom Exp $")
+MODULE_ID("$Id: lib_mvcur.c,v 1.161 2023/09/16 16:29:02 tom Exp $")
#define WANT_CHAR(sp, y, x) NewScreen(sp)->_line[y].text[x] /* desired state */
@@ -232,14 +232,33 @@ NCURSES_SP_NAME(_nc_msec_cost) (NCURSES_SP_DCLx const char *const cap, int affcn
/* extract padding, either mandatory or required */
if (cp[0] == '$' && cp[1] == '<' && strchr(cp, '>')) {
float number = 0.0;
+ int state = 0;
for (cp += 2; *cp != '>'; cp++) {
- if (isdigit(UChar(*cp)))
- number = number * 10 + (float) (*cp - '0');
- else if (*cp == '*')
- number *= (float) affcnt;
- else if (*cp == '.' && (*++cp != '>') && isdigit(UChar(*cp)))
- number += (float) ((*cp - '0') / 10.0);
+ if (isdigit(UChar(*cp))) {
+ switch (state) {
+ case 0:
+ number = number * 10 + (float) (*cp - '0');
+ break;
+ case 2:
+ number += (float) ((*cp - '0') / 10.0);
+ ++state;
+ break;
+ }
+ } else if (*cp == '*') {
+ /* padding is always a suffix */
+ if (state < 4) {
+ number *= (float) affcnt;
+ state = 4;
+ }
+ } else if (*cp == '.') {
+ /* a single decimal point is allowed */
+ state = (state == 0) ? 2 : 3;
+ }
+ if (number > MAX_DELAY_MSECS) {
+ number = MAX_DELAY_MSECS;
+ break;
+ }
}
#if NCURSES_NO_PADDING
@@ -432,8 +451,8 @@ NCURSES_SP_NAME(_nc_mvcur_init) (NCURSES_SP_DCL0)
1);
SP_PARM->_hpa_ch_cost = NormalizedCost(TIPARM_1(column_address, 23), 1);
SP_PARM->_cuf_ch_cost = NormalizedCost(TIPARM_1(parm_right_cursor, 23), 1);
- SP_PARM->_inline_cost = min(SP_PARM->_cup_ch_cost,
- min(SP_PARM->_hpa_ch_cost,
+ SP_PARM->_inline_cost = Min(SP_PARM->_cup_ch_cost,
+ Min(SP_PARM->_hpa_ch_cost,
SP_PARM->_cuf_ch_cost));
/*
@@ -470,12 +489,12 @@ NCURSES_EXPORT(void)
NCURSES_SP_NAME(_nc_mvcur_wrap) (NCURSES_SP_DCL0)
/* wrap up cursor-addressing mode */
{
- /* leave cursor at screen bottom */
- TINFO_MVCUR(NCURSES_SP_ARGx -1, -1, screen_lines(SP_PARM) - 1, 0);
-
if (!SP_PARM || !IsTermInfo(SP_PARM))
return;
+ /* leave cursor at screen bottom */
+ TINFO_MVCUR(NCURSES_SP_ARGx -1, -1, screen_lines(SP_PARM) - 1, 0);
+
/* set cursor to normal mode */
if (SP_PARM->_cursor != -1) {
int cursor = SP_PARM->_cursor;
@@ -675,7 +694,7 @@ relative_move(NCURSES_SP_DCLx
* and the time the structure WANT_CHAR would access has been
* updated.
*/
- if (ovw) {
+ if (ovw && to_y >= 0) {
int i;
for (i = 0; i < n; i++) {
@@ -690,7 +709,7 @@ relative_move(NCURSES_SP_DCLx
}
}
}
- if (ovw) {
+ if (ovw && to_y >= 0) {
int i;
for (i = 0; i < n; i++)
@@ -760,7 +779,7 @@ relative_move(NCURSES_SP_DCLx
#endif /* !NO_OPTIMIZE */
/*
- * With the machinery set up above, it's conceivable that
+ * With the machinery set up above, it is conceivable that
* onscreen_mvcur could be modified into a recursive function that does
* an alpha-beta search of motion space, as though it were a chess
* move tree, with the weight function being boolean and the search
diff --git a/ncurses/tty/lib_tstp.c b/ncurses/tty/lib_tstp.c
index 43a58e660a16..dd925c7efd12 100644
--- a/ncurses/tty/lib_tstp.c
+++ b/ncurses/tty/lib_tstp.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020-2021,2022 Thomas E. Dickey *
* Copyright 1998-2014,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -43,7 +43,7 @@
#include <SigAction.h>
-MODULE_ID("$Id: lib_tstp.c,v 1.50 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: lib_tstp.c,v 1.54 2022/12/24 22:22:10 tom Exp $")
#if defined(SIGTSTP) && (HAVE_SIGACTION || HAVE_SIGVEC)
#define USE_SIGTSTP 1
@@ -130,7 +130,7 @@ signal_name(int sig)
* (this may include XENIX).
*
* This implementation will probably be changed to use signal(3) in
- * the future. If nothing else, it's simpler...
+ * the future. If nothing else, it is simpler...
*/
#if USE_SIGTSTP
@@ -283,7 +283,25 @@ handle_SIGINT(int sig)
_exit(EXIT_FAILURE);
}
+# ifndef _nc_set_read_thread
+NCURSES_EXPORT(void)
+_nc_set_read_thread(bool enable)
+{
+ _nc_lock_global(curses);
+ if (enable) {
+# if USE_WEAK_SYMBOLS
+ if ((pthread_self) && (pthread_kill) && (pthread_equal))
+# endif
+ _nc_globals.read_thread = pthread_self();
+ } else {
+ _nc_globals.read_thread = 0;
+ }
+ _nc_unlock_global(curses);
+}
+# endif
+
#if USE_SIGWINCH
+
static void
handle_SIGWINCH(int sig GCC_UNUSED)
{
diff --git a/ncurses/tty/lib_twait.c b/ncurses/tty/lib_twait.c
index a7604b3e293b..6fa73eedb4ce 100644
--- a/ncurses/tty/lib_twait.c
+++ b/ncurses/tty/lib_twait.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2020,2023 Thomas E. Dickey *
* Copyright 1998-2015,2016 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -76,8 +76,11 @@
#endif
#undef CUR
-MODULE_ID("$Id: lib_twait.c,v 1.75 2020/02/29 15:46:00 anonymous.maarten Exp $")
+MODULE_ID("$Id: lib_twait.c,v 1.81 2023/09/16 16:30:40 tom Exp $")
+/*
+ * Returns an elapsed time, in milliseconds (if possible).
+ */
static long
_nc_gettime(TimeType * t0, int first)
{
@@ -85,18 +88,20 @@ _nc_gettime(TimeType * t0, int first)
#if PRECISE_GETTIME
TimeType t1;
- gettimeofday(&t1, (struct timezone *) 0);
- if (first) {
+ if (GetClockTime(&t1) == -1) {
+ *t0 = t1;
+ res = first ? 0 : 1;
+ } else if (first) {
*t0 = t1;
res = 0;
} else {
/* .tv_sec and .tv_usec are unsigned, be careful when subtracting */
- if (t0->tv_usec > t1.tv_usec) {
- t1.tv_usec += 1000000; /* Convert 1s in 1e6 microsecs */
+ if (t0->sub_secs > t1.sub_secs) {
+ t1.sub_secs += TimeScale;
t1.tv_sec--;
}
- res = (t1.tv_sec - t0->tv_sec) * 1000
- + (t1.tv_usec - t0->tv_usec) / 1000;
+ res = (long) ((t1.tv_sec - t0->tv_sec) * 1000L
+ + (t1.sub_secs - t0->sub_secs) / (TimeScale / 1000L));
}
#else
time_t t1 = time((time_t *) 0);
@@ -355,7 +360,7 @@ _nc_timed_wait(SCREEN *sp MAYBE_UNUSED,
if ((mode & TW_MOUSE)
&& (fd = sp->_mouse_fd) >= 0) {
FD_SET(fd, &set);
- count = max(fd, count) + 1;
+ count = Max(fd, count) + 1;
}
#ifdef NCURSES_WGETCH_EVENTS
if ((mode & TW_EVENT) && evl) {
@@ -365,7 +370,7 @@ _nc_timed_wait(SCREEN *sp MAYBE_UNUSED,
if (ev->type == _NC_EVENT_FILE
&& (ev->data.fev.flags & _NC_EVENT_FILE_READABLE)) {
FD_SET(ev->data.fev.fd, &set);
- count = max(ev->data.fev.fd + 1, count);
+ count = Max(ev->data.fev.fd + 1, count);
}
}
}
diff --git a/ncurses/tty/lib_vidattr.c b/ncurses/tty/lib_vidattr.c
index 15e7397d5dbb..2c7a0b27bd6d 100644
--- a/ncurses/tty/lib_vidattr.c
+++ b/ncurses/tty/lib_vidattr.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2020,2023 Thomas E. Dickey *
* Copyright 1998-2014,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -70,7 +70,7 @@
#define CUR SP_TERMTYPE
#endif
-MODULE_ID("$Id: lib_vidattr.c,v 1.78 2020/05/27 23:56:32 tom Exp $")
+MODULE_ID("$Id: lib_vidattr.c,v 1.79 2023/04/28 20:59:26 tom Exp $")
#define doPut(mode) \
TPUTS_TRACE(#mode); \
@@ -249,6 +249,7 @@ NCURSES_SP_NAME(vidputs) (NCURSES_SP_DCLx
TurnOff(A_ITALIC, exit_italics_mode);
}
#endif
+ (void) turn_off;
}
PreviousAttr &= ALL_BUT_COLOR;
}
@@ -278,6 +279,7 @@ NCURSES_SP_NAME(vidputs) (NCURSES_SP_DCLx
} else if (turn_off & A_ITALIC) {
TurnOff(A_ITALIC, exit_italics_mode);
}
+ (void) turn_off;
}
#endif
SetColorsIf((pair != 0) || fix_pair0, PreviousAttr);
diff --git a/ncurses/tty/tty_update.c b/ncurses/tty/tty_update.c
index 20f9349bd688..0427024cb084 100644
--- a/ncurses/tty/tty_update.c
+++ b/ncurses/tty/tty_update.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2020,2021 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -85,7 +85,7 @@
#include <ctype.h>
-MODULE_ID("$Id: tty_update.c,v 1.310 2021/02/06 14:24:38 tom Exp $")
+MODULE_ID("$Id: tty_update.c,v 1.316 2024/02/04 00:09:34 tom Exp $")
/*
* This define controls the line-breakout optimization. Every once in a
@@ -256,6 +256,7 @@ PutAttrChar(NCURSES_SP_DCLx CARG_CH_T ch)
* not checked.
*/
if (is8bits(CharOf(CHDEREF(ch)))
+ && (!is7bits(CharOf(CHDEREF(ch))) && _nc_unicode_locale())
&& (isprint(CharOf(CHDEREF(ch)))
|| (SP_PARM->_legacy_coding > 0 && CharOf(CHDEREF(ch)) >= 160)
|| (SP_PARM->_legacy_coding > 1 && CharOf(CHDEREF(ch)) >= 128)
@@ -473,7 +474,7 @@ wrap_cursor(NCURSES_SP_DCL0)
* An aggressive way to handle this would be to emit CR/LF after the
* char and then assume the wrap is done, you're on the first position
* of the next line, and the terminal out of its weird state. Here
- * it's safe to just tell the code that the cursor is in hyperspace and
+ * it is safe to just tell the code that the cursor is in hyperspace and
* let the next mvcur() call straighten things out.
*/
SP_PARM->_curscol = -1;
@@ -757,14 +758,20 @@ TINFO_DOUPDATE(NCURSES_SP_DCL0)
* We do not allow applications to assign new values in the reentrant
* model.
*/
+#if NCURSES_SP_FUNCS
+ if (SP_PARM == CURRENT_SCREEN) {
+#endif
#define SyncScreens(internal,exported) \
if (internal == 0) internal = exported; \
if (internal != exported) exported = internal
- SyncScreens(CurScreen(SP_PARM), curscr);
- SyncScreens(NewScreen(SP_PARM), newscr);
- SyncScreens(StdScreen(SP_PARM), stdscr);
+ SyncScreens(CurScreen(SP_PARM), curscr);
+ SyncScreens(NewScreen(SP_PARM), newscr);
+ SyncScreens(StdScreen(SP_PARM), stdscr);
+#if NCURSES_SP_FUNCS
+ }
#endif
+#endif /* !USE_REENTRANT */
if (CurScreen(SP_PARM) == 0
|| NewScreen(SP_PARM) == 0
@@ -823,7 +830,7 @@ TINFO_DOUPDATE(NCURSES_SP_DCL0)
/*
* This is the support for magic-cookie terminals. The theory: we scan
* the virtual screen looking for attribute turnons. Where we find one,
- * check to make sure it's realizable by seeing if the required number of
+ * check to make sure it is realizable by seeing if the required number of
* un-attributed blanks are present before and after the attributed range;
* try to shift the range boundaries over blanks (not changing the screen
* display) so this becomes true. If it is, shift the beginning attribute
@@ -885,7 +892,7 @@ TINFO_DOUPDATE(NCURSES_SP_DCL0)
bool end_onscreen = FALSE;
int m, n = j;
- /* find end of span, if it's onscreen */
+ /* find end of span, if it is onscreen */
for (m = i; m < screen_lines(SP_PARM); m++) {
for (; n < screen_columns(SP_PARM); n++) {
attr_t testattr =
@@ -998,7 +1005,7 @@ TINFO_DOUPDATE(NCURSES_SP_DCL0)
if (check_pending(NCURSES_SP_ARG))
goto cleanup;
- nonempty = min(screen_lines(SP_PARM), NewScreen(SP_PARM)->_maxy + 1);
+ nonempty = Min(screen_lines(SP_PARM), NewScreen(SP_PARM)->_maxy + 1);
if (SP_PARM->_scrolling) {
NCURSES_SP_NAME(_nc_scroll_optimize) (NCURSES_SP_ARG);
@@ -1128,7 +1135,7 @@ ClrUpdate(NCURSES_SP_DCL0)
if (0 != SP_PARM) {
int i;
NCURSES_CH_T blank = ClrBlank(NCURSES_SP_ARGx StdScreen(SP_PARM));
- int nonempty = min(screen_lines(SP_PARM),
+ int nonempty = Min(screen_lines(SP_PARM),
NewScreen(SP_PARM)->_maxy + 1);
ClearScreen(NCURSES_SP_ARGx blank);
@@ -1227,7 +1234,7 @@ static int
ClrBottom(NCURSES_SP_DCLx int total)
{
int top = total;
- int last = min(screen_columns(SP_PARM), NewScreen(SP_PARM)->_maxx + 1);
+ int last = Min(screen_columns(SP_PARM), NewScreen(SP_PARM)->_maxx + 1);
NCURSES_CH_T blank = NewScreen(SP_PARM)->_line[total - 1].text[last - 1];
if (clr_eos && can_clear_with(NCURSES_SP_ARGx CHREF(blank))) {
@@ -1287,7 +1294,7 @@ ClrBottom(NCURSES_SP_DCLx int total)
** nLastChar = position of last different character in new line
**
** move to firstChar
-** overwrite chars up to min(oLastChar, nLastChar)
+** overwrite chars up to Min(oLastChar, nLastChar)
** if oLastChar < nLastChar
** insert newLine[oLastChar+1..nLastChar]
** else
@@ -1325,8 +1332,8 @@ TransformLine(NCURSES_SP_DCLx int const lineno)
newPair = GetPair(newLine[n]);
if (oldPair != newPair
&& unColor(oldLine[n]) == unColor(newLine[n])) {
- if (oldPair < SP_PARM->_pair_limit
- && newPair < SP_PARM->_pair_limit
+ if (oldPair < SP_PARM->_pair_alloc
+ && newPair < SP_PARM->_pair_alloc
&& (isSamePair(SP_PARM->_color_pairs[oldPair],
SP_PARM->_color_pairs[newPair]))) {
SetPair(oldLine[n], GetPair(newLine[n]));
@@ -1525,7 +1532,7 @@ TransformLine(NCURSES_SP_DCLx int const lineno)
}
ClrToEOL(NCURSES_SP_ARGx blank, FALSE);
} else {
- n = max(nLastChar, oLastChar);
+ n = Max(nLastChar, oLastChar);
PutRange(NCURSES_SP_ARGx
oldLine,
newLine,
@@ -1550,7 +1557,7 @@ TransformLine(NCURSES_SP_DCLx int const lineno)
break;
}
- n = min(oLastChar, nLastChar);
+ n = Min(oLastChar, nLastChar);
if (n >= firstChar) {
GoTo(NCURSES_SP_ARGx lineno, firstChar);
PutRange(NCURSES_SP_ARGx
@@ -1562,7 +1569,7 @@ TransformLine(NCURSES_SP_DCLx int const lineno)
}
if (oLastChar < nLastChar) {
- int m = max(nLastNonblank, oLastNonblank);
+ int m = Max(nLastNonblank, oLastNonblank);
#if USE_WIDEC_SUPPORT
if (n) {
while (isWidecExt(newLine[n + 1]) && n) {
diff --git a/ncurses/wcwidth.h b/ncurses/wcwidth.h
index ccae41a9b994..76673da65845 100644
--- a/ncurses/wcwidth.h
+++ b/ncurses/wcwidth.h
@@ -59,6 +59,16 @@
* Latest version: http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c
*/
+#ifndef _WCWIDTH_H_incl
+#define _WCWIDTH_H_incl 1
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <ncurses_cfg.h>
+#include <ncurses_dll.h>
+
#include <wchar.h>
struct interval {
@@ -187,7 +197,7 @@ NCURSES_EXPORT(int) mk_wcwidth(wchar_t ucs)
/* if we arrive here, ucs is not a combining or C0/C1 control character */
- return 1 +
+ return 1 +
(ucs >= 0x1100 &&
(ucs <= 0x115f || /* Hangul Jamo init. consonants */
ucs == 0x2329 || ucs == 0x232a ||
@@ -310,3 +320,9 @@ NCURSES_EXPORT(int) mk_wcswidth_cjk(const wchar_t *pwcs, size_t n)
return width;
}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _WCWIDTH_H_incl 1 */
diff --git a/ncurses/widechar/lib_add_wch.c b/ncurses/widechar/lib_add_wch.c
index 5d6d5547f2f4..be1bbb051ad3 100644
--- a/ncurses/widechar/lib_add_wch.c
+++ b/ncurses/widechar/lib_add_wch.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2021,2023 Thomas E. Dickey *
* Copyright 2004-2011,2016 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -40,7 +40,7 @@
#include <wctype.h>
#endif
-MODULE_ID("$Id: lib_add_wch.c,v 1.16 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: lib_add_wch.c,v 1.18 2023/07/15 17:34:12 tom Exp $")
/* clone/adapt lib_addch.c */
static const cchar_t blankchar = NewChar(BLANK_TEXT);
@@ -133,7 +133,7 @@ newline_forces_scroll(WINDOW *win, NCURSES_SIZE_T *ypos)
* wrapped the cursor. We don't do anything with this flag except set it when
* wrapping, and clear it whenever we move the cursor. If we try to wrap at
* the lower-right corner of a window, we cannot move the cursor (since that
- * wouldn't be legal). So we return an error (which is what SVr4 does).
+ * wouldn't be legal). So we return an error (which is what SVr4 does).
* Unlike SVr4, we can successfully add a character to the lower-right corner
* (Solaris 2.6 does this also, however).
*/
@@ -204,10 +204,16 @@ wadd_wch_literal(WINDOW *win, cchar_t ch)
if (len == 0) { /* non-spacing */
if ((x > 0 && y >= 0)
|| (win->_maxx >= 0 && win->_cury >= 1)) {
- if (x > 0 && y >= 0)
- chars = (win->_line[y].text[x - 1].chars);
- else
+ if (x > 0 && y >= 0) {
+ for (j = x - 1; j > 0; --j) {
+ if (!isWidecExt(win->_line[y].text[j])) {
+ break;
+ }
+ }
+ chars = (win->_line[y].text[j].chars);
+ } else {
chars = (win->_line[y - 1].text[win->_maxx].chars);
+ }
for (i = 0; i < CCHARW_MAX; ++i) {
if (chars[i] == 0) {
TR(TRACE_VIRTPUT,
diff --git a/ncurses/widechar/lib_cchar.c b/ncurses/widechar/lib_cchar.c
index 62a1113ecaa6..451c5dcb518b 100644
--- a/ncurses/widechar/lib_cchar.c
+++ b/ncurses/widechar/lib_cchar.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019-2020,2021 Thomas E. Dickey *
+ * Copyright 2019-2021,2022 Thomas E. Dickey *
* Copyright 2001-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -37,9 +37,9 @@
#include <curses.priv.h>
#include <wchar.h>
-MODULE_ID("$Id: lib_cchar.c,v 1.35 2021/01/17 00:04:08 tom Exp $")
+MODULE_ID("$Id: lib_cchar.c,v 1.38 2022/07/27 08:03:16 tom Exp $")
-/*
+/*
* The SuSv2 description leaves some room for interpretation. We'll assume wch
* points to a string which is L'\0' terminated, contains at least one
* character with strictly positive width, which must be the first, and
@@ -105,7 +105,6 @@ getcchar(const cchar_t *wcval,
void *opts)
{
int code = ERR;
- int color_pair;
TR(TRACE_CCALLS, (T_CALLED("getcchar(%p,%p,%p,%p,%p)"),
(const void *) wcval,
@@ -123,10 +122,13 @@ getcchar(const cchar_t *wcval,
wchar_t *wp;
int len;
+#if HAVE_WMEMCHR
len = ((wp = wmemchr(wcval->chars, L'\0', (size_t) CCHARW_MAX))
? (int) (wp - wcval->chars)
: CCHARW_MAX);
-
+#else
+ len = wcsnlen(wcval->chars, CCHARW_MAX);
+#endif
if (wch == NULL) {
/*
* If the value is a null, set the length to 1.
@@ -136,6 +138,8 @@ getcchar(const cchar_t *wcval,
} else if (attrs == 0 || pair_arg == 0) {
code = ERR;
} else if (len >= 0) {
+ int color_pair;
+
TR(TRACE_CCALLS, ("copy %d wchars, first is %s", len,
_tracecchar_t(wcval)));
*attrs = AttrOf(*wcval) & A_ATTRIBUTES;
diff --git a/ncurses/widechar/lib_erasewchar.c b/ncurses/widechar/lib_erasewchar.c
index f49d6413bd02..197f80b59b79 100644
--- a/ncurses/widechar/lib_erasewchar.c
+++ b/ncurses/widechar/lib_erasewchar.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 2002-2010,2014 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -33,46 +33,64 @@
#include <curses.priv.h>
-MODULE_ID("$Id: lib_erasewchar.c,v 1.4 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: lib_erasewchar.c,v 1.5 2021/05/22 23:51:14 tom Exp $")
/*
* erasewchar()
*
* Return erase character as given in cur_term->Ottyb.
- *
*/
NCURSES_EXPORT(int)
-erasewchar(wchar_t *wch)
+NCURSES_SP_NAME(erasewchar) (NCURSES_SP_DCLx wchar_t *wch);
+NCURSES_EXPORT(int)
+NCURSES_SP_NAME(erasewchar) (NCURSES_SP_DCLx wchar_t *wch)
{
int value;
int result = ERR;
T((T_CALLED("erasewchar()")));
- if ((value = erasechar()) != ERR) {
+ if ((value = NCURSES_SP_NAME(erasechar) (NCURSES_SP_ARG)) != ERR) {
*wch = (wchar_t) value;
result = OK;
}
returnCode(result);
}
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+erasewchar(wchar_t *wch)
+{
+ return NCURSES_SP_NAME(erasewchar) (CURRENT_SCREEN, wch);
+}
+#endif
+
/*
* killwchar()
*
* Return kill character as given in cur_term->Ottyb.
- *
*/
NCURSES_EXPORT(int)
-killwchar(wchar_t *wch)
+NCURSES_SP_NAME(killwchar) (NCURSES_SP_DCLx wchar_t *wch);
+NCURSES_EXPORT(int)
+NCURSES_SP_NAME(killwchar) (NCURSES_SP_DCLx wchar_t *wch)
{
int value;
int result = ERR;
T((T_CALLED("killwchar()")));
- if ((value = killchar()) != ERR) {
+ if ((value = NCURSES_SP_NAME(killchar) (NCURSES_SP_ARG)) != ERR) {
*wch = (wchar_t) value;
result = OK;
}
returnCode(result);
}
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+killwchar(wchar_t *wch)
+{
+ return NCURSES_SP_NAME(killwchar) (CURRENT_SCREEN, wch);
+}
+#endif
diff --git a/ncurses/widechar/lib_get_wch.c b/ncurses/widechar/lib_get_wch.c
index 2bd49187aa12..9f10d3bcf121 100644
--- a/ncurses/widechar/lib_get_wch.c
+++ b/ncurses/widechar/lib_get_wch.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 2002-2011,2016 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -41,7 +41,7 @@
#include <curses.priv.h>
#include <ctype.h>
-MODULE_ID("$Id: lib_get_wch.c,v 1.25 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: lib_get_wch.c,v 1.26 2021/04/17 16:12:54 tom Exp $")
NCURSES_EXPORT(int)
wget_wch(WINDOW *win, wint_t *result)
@@ -49,7 +49,6 @@ wget_wch(WINDOW *win, wint_t *result)
SCREEN *sp;
int code;
int value = 0;
- wchar_t wch;
#ifndef state_unused
mbstate_t state;
#endif
@@ -98,6 +97,7 @@ wget_wch(WINDOW *win, wint_t *result)
reset_mbytes(state);
status = count_mbytes(buffer, count, state);
if (status >= 0) {
+ wchar_t wch;
reset_mbytes(state);
if (check_mbytes(wch, buffer, count, state) != status) {
code = ERR; /* the two calls should match */
diff --git a/ncurses/widechar/lib_get_wstr.c b/ncurses/widechar/lib_get_wstr.c
index 695b5263946a..3b3bd522c2d8 100644
--- a/ncurses/widechar/lib_get_wstr.c
+++ b/ncurses/widechar/lib_get_wstr.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2021,2023 Thomas E. Dickey *
* Copyright 2002-2009,2011 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -40,7 +40,7 @@
#include <curses.priv.h>
-MODULE_ID("$Id: lib_get_wstr.c,v 1.16 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: lib_get_wstr.c,v 1.21 2023/04/29 19:02:03 tom Exp $")
static int
wadd_wint(WINDOW *win, wint_t *src)
@@ -88,9 +88,9 @@ wgetn_wstr(WINDOW *win, wint_t *str, int maxlen)
{
SCREEN *sp = _nc_screen_of(win);
TTY buf;
- bool oldnl, oldecho, oldraw, oldcbreak;
- wint_t erasec;
- wint_t killc;
+ TTY_FLAGS save_flags;
+ wchar_t erasec = 0;
+ wchar_t killc = 0;
wint_t *oldstr = str;
wint_t *tmpstr = str;
wint_t ch;
@@ -105,17 +105,14 @@ wgetn_wstr(WINDOW *win, wint_t *str, int maxlen)
_nc_get_tty_mode(&buf);
- oldnl = sp->_nl;
- oldecho = sp->_echo;
- oldraw = sp->_raw;
- oldcbreak = sp->_cbreak;
- nl();
- noecho();
- noraw();
- cbreak();
+ save_flags = sp->_tty_flags;
+ NCURSES_SP_NAME(nl) (NCURSES_SP_ARG);
+ NCURSES_SP_NAME(noecho) (NCURSES_SP_ARG);
+ if (!save_flags._raw)
+ NCURSES_SP_NAME(cbreak) (NCURSES_SP_ARG);
- erasec = (wint_t) erasechar();
- killc = (wint_t) killchar();
+ NCURSES_SP_NAME(erasewchar) (NCURSES_SP_ARGx &erasec);
+ NCURSES_SP_NAME(killwchar) (NCURSES_SP_ARGx &killc);
getyx(win, y, x);
@@ -132,12 +129,12 @@ wgetn_wstr(WINDOW *win, wint_t *str, int maxlen)
code = KEY_CODE_YES;
ch = KEY_ENTER;
}
- if (ch < KEY_MIN) {
- if (ch == erasec) {
+ if (ch != 0 && ch < KEY_MIN) {
+ if (ch == (wint_t) erasec) {
ch = KEY_BACKSPACE;
code = KEY_CODE_YES;
}
- if (ch == killc) {
+ if (ch == (wint_t) killc) {
ch = KEY_EOL;
code = KEY_CODE_YES;
}
@@ -145,12 +142,12 @@ wgetn_wstr(WINDOW *win, wint_t *str, int maxlen)
if (code == KEY_CODE_YES) {
/*
* Some terminals (the Wyse-50 is the most common) generate a \n
- * from the down-arrow key. With this logic, it's the user's
+ * from the down-arrow key. With this logic, it is the user's
* choice whether to set kcud=\n for wget_wch(); terminating
* *getn_wstr() with \n should work either way.
*/
if (ch == KEY_DOWN || ch == KEY_ENTER) {
- if (oldecho == TRUE
+ if (save_flags._echo == TRUE
&& win->_cury == win->_maxy
&& win->_scroll)
wechochar(win, (chtype) '\n');
@@ -158,11 +155,11 @@ wgetn_wstr(WINDOW *win, wint_t *str, int maxlen)
}
if (ch == KEY_LEFT || ch == KEY_BACKSPACE) {
if (tmpstr > oldstr) {
- tmpstr = WipeOut(win, y, x, oldstr, tmpstr, oldecho);
+ tmpstr = WipeOut(win, y, x, oldstr, tmpstr, save_flags._echo);
}
} else if (ch == KEY_EOL) {
while (tmpstr > oldstr) {
- tmpstr = WipeOut(win, y, x, oldstr, tmpstr, oldecho);
+ tmpstr = WipeOut(win, y, x, oldstr, tmpstr, save_flags._echo);
}
} else {
beep();
@@ -172,7 +169,7 @@ wgetn_wstr(WINDOW *win, wint_t *str, int maxlen)
} else {
*tmpstr++ = ch;
*tmpstr = 0;
- if (oldecho == TRUE) {
+ if (save_flags._echo == TRUE) {
int oldy = win->_cury;
if (wadd_wint(win, tmpstr - 1) == ERR) {
@@ -182,9 +179,9 @@ wgetn_wstr(WINDOW *win, wint_t *str, int maxlen)
*/
win->_flags &= ~_WRAPPED;
waddch(win, (chtype) ' ');
- tmpstr = WipeOut(win, y, x, oldstr, tmpstr, oldecho);
+ tmpstr = WipeOut(win, y, x, oldstr, tmpstr, save_flags._echo);
continue;
- } else if (win->_flags & _WRAPPED) {
+ } else if (IS_WRAPPED(win)) {
/*
* If the last waddch forced a wrap & scroll, adjust our
* reference point for erasures.
@@ -212,11 +209,7 @@ wgetn_wstr(WINDOW *win, wint_t *str, int maxlen)
/* Restore with a single I/O call, to fix minor asymmetry between
* raw/noraw, etc.
*/
- sp->_nl = oldnl;
- sp->_echo = oldecho;
- sp->_raw = oldraw;
- sp->_cbreak = oldcbreak;
-
+ sp->_tty_flags = save_flags;
(void) _nc_set_tty_mode(&buf);
*tmpstr = 0;
diff --git a/ncurses/widechar/lib_ins_wch.c b/ncurses/widechar/lib_ins_wch.c
index f75361081b62..ecaabcc9b73e 100644
--- a/ncurses/widechar/lib_ins_wch.c
+++ b/ncurses/widechar/lib_ins_wch.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2020,2023 Thomas E. Dickey *
* Copyright 2002-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -40,7 +40,7 @@
#include <curses.priv.h>
-MODULE_ID("$Id: lib_ins_wch.c,v 1.25 2020/12/05 20:04:59 tom Exp $")
+MODULE_ID("$Id: lib_ins_wch.c,v 1.29 2023/11/21 21:53:28 tom Exp $")
/*
* Insert the given character, updating the current location to simplify
@@ -109,9 +109,12 @@ wins_nwstr(WINDOW *win, const wchar_t *wstr, int n)
(void *) win, _nc_viswbufn(wstr, n), n));
if (win != 0
- && wstr != 0) {
- if (n < 1)
+ && wstr != 0
+ && n != 0) {
+
+ if (n < 0) {
n = INT_MAX;
+ }
code = OK;
if (n > 0) {
@@ -120,7 +123,7 @@ wins_nwstr(WINDOW *win, const wchar_t *wstr, int n)
NCURSES_SIZE_T oy = win->_cury;
NCURSES_SIZE_T ox = win->_curx;
- for (cp = wstr; (*cp != L'\0') && ((cp - wstr) < n); cp++) {
+ for (cp = wstr; ((cp - wstr) < n) && (*cp != L'\0'); cp++) {
int len = _nc_wacs_width(*cp);
if ((len >= 0 && len != 1) || !is7bits(*cp)) {
diff --git a/ncurses/widechar/lib_key_name.c b/ncurses/widechar/lib_key_name.c
index 8acfe7a2f498..379bdc2d48dd 100644
--- a/ncurses/widechar/lib_key_name.c
+++ b/ncurses/widechar/lib_key_name.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2023 Thomas E. Dickey *
* Copyright 2007-2008,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -36,7 +36,7 @@
#include <curses.priv.h>
-MODULE_ID("$Id: lib_key_name.c,v 1.5 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: lib_key_name.c,v 1.6 2023/06/03 12:15:34 tom Exp $")
#define MyData _nc_globals.key_name
@@ -46,17 +46,22 @@ key_name(wchar_t c)
cchar_t my_cchar;
wchar_t *my_wchars;
size_t len;
+ NCURSES_CONST char *result = NULL;
memset(&my_cchar, 0, sizeof(my_cchar));
my_cchar.chars[0] = c;
my_cchar.chars[1] = L'\0';
my_wchars = wunctrl(&my_cchar);
+ /*
+ * wunctrl() could return a wide character rather than just a "printable"
+ * representation. Check for that and return a corresponding multibyte
+ * character string.
+ */
len = wcstombs(MyData, my_wchars, sizeof(MyData) - 1);
- if (isEILSEQ(len) || (len == 0)) {
- return 0;
+ if (!isEILSEQ(len) && (len != 0) && (len <= MB_LEN_MAX)) {
+ MyData[len] = '\0';
+ result = MyData;
}
-
- MyData[len] = '\0';
- return MyData;
+ return result;
}
diff --git a/ncurses/widechar/lib_pecho_wchar.c b/ncurses/widechar/lib_pecho_wchar.c
index 82b49b686b07..502967fd4e4d 100644
--- a/ncurses/widechar/lib_pecho_wchar.c
+++ b/ncurses/widechar/lib_pecho_wchar.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 2004,2009 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -33,7 +33,7 @@
#include <curses.priv.h>
-MODULE_ID("$Id: lib_pecho_wchar.c,v 1.3 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: lib_pecho_wchar.c,v 1.4 2021/10/23 17:07:56 tom Exp $")
NCURSES_EXPORT(int)
pecho_wchar(WINDOW *pad, const cchar_t *wch)
@@ -43,7 +43,7 @@ pecho_wchar(WINDOW *pad, const cchar_t *wch)
if (pad == 0)
returnCode(ERR);
- if (!(pad->_flags & _ISPAD))
+ if (!IS_PAD(pad))
returnCode(wecho_wchar(pad, wch));
wadd_wch(pad, wch);
diff --git a/ncurses/widechar/lib_unget_wch.c b/ncurses/widechar/lib_unget_wch.c
index 4ea26b6034b5..1a81fecc8705 100644
--- a/ncurses/widechar/lib_unget_wch.c
+++ b/ncurses/widechar/lib_unget_wch.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2023 Thomas E. Dickey *
* Copyright 2002-2011,2016 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -40,7 +40,7 @@
#include <curses.priv.h>
-MODULE_ID("$Id: lib_unget_wch.c,v 1.17 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: lib_unget_wch.c,v 1.18 2023/06/03 12:50:52 tom Exp $")
/*
* Wrapper for wcrtomb() which obtains the length needed for the given
@@ -60,7 +60,7 @@ _nc_wcrtomb(char *target, wchar_t source, mbstate_t * state)
} else {
result = (int) wcrtomb(target, source, state);
}
- if (!isEILSEQ(result) && (result == 0))
+ if (!isEILSEQ(result) && ((result == 0) || (result > MB_LEN_MAX)))
result = 1;
return (size_t) result;
}
diff --git a/ncurses/widechar/lib_vid_attr.c b/ncurses/widechar/lib_vid_attr.c
index 2d9531f1b864..f108b307d9a7 100644
--- a/ncurses/widechar/lib_vid_attr.c
+++ b/ncurses/widechar/lib_vid_attr.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2020,2023 Thomas E. Dickey *
* Copyright 2002-2014,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -37,7 +37,7 @@
#define CUR SP_TERMTYPE
#endif
-MODULE_ID("$Id: lib_vid_attr.c,v 1.30 2020/05/27 23:54:31 tom Exp $")
+MODULE_ID("$Id: lib_vid_attr.c,v 1.31 2023/04/28 20:59:34 tom Exp $")
#define doPut(mode) \
TPUTS_TRACE(#mode); \
@@ -181,6 +181,7 @@ NCURSES_SP_NAME(vid_puts) (NCURSES_SP_DCLx
TurnOff(A_ITALIC, exit_italics_mode);
}
#endif
+ (void) turn_off;
}
previous_attr &= ALL_BUT_COLOR;
previous_pair = 0;
@@ -212,6 +213,7 @@ NCURSES_SP_NAME(vid_puts) (NCURSES_SP_DCLx
} else if (turn_off & A_ITALIC) {
TurnOff(A_ITALIC, exit_italics_mode);
}
+ (void) turn_off;
}
#endif
SetColorsIf((color_pair != 0) || fix_pair0, previous_attr, previous_pair);
diff --git a/ncurses/win32con/gettimeofday.c b/ncurses/win32con/gettimeofday.c
index 94be7b563b95..603a6f462b78 100644
--- a/ncurses/win32con/gettimeofday.c
+++ b/ncurses/win32con/gettimeofday.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2023 Thomas E. Dickey *
* Copyright 2008-2010,2014 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -36,8 +36,9 @@
#include <windows.h>
-MODULE_ID("$Id: gettimeofday.c,v 1.6 2020/07/11 21:03:53 tom Exp $")
+MODULE_ID("$Id: gettimeofday.c,v 1.7 2023/02/25 20:05:36 tom Exp $")
+#if HAVE_GETTIMEOFDAY == 2
#define JAN1970 116444736000000000LL /* the value for 01/01/1970 00:00 */
NCURSES_EXPORT(int)
@@ -53,3 +54,4 @@ gettimeofday(struct timeval *tv, void *tz GCC_UNUSED)
tv->tv_sec = (long) ((data.since1601 - JAN1970) / 10000000LL);
return (0);
}
+#endif // HAVE_GETTIMEOFDAY == 2
diff --git a/ncurses/win32con/win32_driver.c b/ncurses/win32con/win32_driver.c
index 45aadf2f596a..0a43588b1714 100644
--- a/ncurses/win32con/win32_driver.c
+++ b/ncurses/win32con/win32_driver.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2020,2023 Thomas E. Dickey *
* Copyright 2008-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -48,7 +48,7 @@
#define CUR TerminalType(my_term).
-MODULE_ID("$Id: win32_driver.c,v 1.2 2020/11/21 23:35:56 tom Exp $")
+MODULE_ID("$Id: win32_driver.c,v 1.4 2023/09/16 16:29:24 tom Exp $")
#define WINMAGIC NCDRV_MAGIC(NCDRV_WINCONSOLE)
#define EXP_OPTIMIZE 0
@@ -393,7 +393,7 @@ wcon_doupdate(TERMINAL_CONTROL_BLOCK * TCB)
Width = screen_columns(sp);
Height = screen_lines(sp);
- nonempty = min(Height, NewScreen(sp)->_maxy + 1);
+ nonempty = Min(Height, NewScreen(sp)->_maxy + 1);
T(("... %dx%d clear cur:%d new:%d",
Height, Width,
@@ -924,11 +924,14 @@ wcon_initmouse(TERMINAL_CONTROL_BLOCK * TCB)
{
SCREEN *sp;
+ T((T_CALLED("win32con::wcon_initmouse(%p)"), TCB));
+
if (validateConsoleHandle()) {
SetSP();
sp->_mouse_type = M_TERM_DRIVER;
}
+ returnVoid;
}
static int
@@ -939,6 +942,7 @@ wcon_testmouse(TERMINAL_CONTROL_BLOCK * TCB,
int rc = 0;
SCREEN *sp;
+ T((T_CALLED("win32con::wcon_testmouse(%p)"), TCB));
if (validateConsoleHandle()) {
SetSP();
@@ -953,7 +957,7 @@ wcon_testmouse(TERMINAL_CONTROL_BLOCK * TCB,
}
}
- return rc;
+ returnCode(rc);
}
static int
diff --git a/ncurses/win32con/win_driver.c b/ncurses/win32con/win_driver.c
index 72a9cf53525f..2425b3a44ce6 100644
--- a/ncurses/win32con/win_driver.c
+++ b/ncurses/win32con/win_driver.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2021,2023 Thomas E. Dickey *
* Copyright 2008-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -55,7 +55,9 @@
#define CUR TerminalType(my_term).
-MODULE_ID("$Id: win_driver.c,v 1.66 2020/03/01 00:18:49 tom Exp $")
+#define CONTROL_PRESSED (LEFT_CTRL_PRESSED | RIGHT_CTRL_PRESSED)
+
+MODULE_ID("$Id: win_driver.c,v 1.74 2023/09/16 16:27:44 tom Exp $")
#define TypeAlloca(type,count) (type*) _alloca(sizeof(type) * (size_t) (count))
@@ -82,39 +84,40 @@ static bool okConsoleHandle(TERMINAL_CONTROL_BLOCK *);
#define write_screen WriteConsoleOutput
#define read_screen ReadConsoleOutput
#endif
-
+/* *INDENT-OFF* */
static const LONG keylist[] =
{
- GenMap(VK_PRIOR, KEY_PPAGE),
- GenMap(VK_NEXT, KEY_NPAGE),
- GenMap(VK_END, KEY_END),
- GenMap(VK_HOME, KEY_HOME),
- GenMap(VK_LEFT, KEY_LEFT),
- GenMap(VK_UP, KEY_UP),
- GenMap(VK_RIGHT, KEY_RIGHT),
- GenMap(VK_DOWN, KEY_DOWN),
+ GenMap(VK_PRIOR, KEY_PPAGE),
+ GenMap(VK_NEXT, KEY_NPAGE),
+ GenMap(VK_END, KEY_END),
+ GenMap(VK_HOME, KEY_HOME),
+ GenMap(VK_LEFT, KEY_LEFT),
+ GenMap(VK_UP, KEY_UP),
+ GenMap(VK_RIGHT, KEY_RIGHT),
+ GenMap(VK_DOWN, KEY_DOWN),
GenMap(VK_DELETE, KEY_DC),
GenMap(VK_INSERT, KEY_IC)
};
static const LONG ansi_keys[] =
{
- GenMap(VK_PRIOR, 'I'),
- GenMap(VK_NEXT, 'Q'),
- GenMap(VK_END, 'O'),
- GenMap(VK_HOME, 'H'),
- GenMap(VK_LEFT, 'K'),
- GenMap(VK_UP, 'H'),
- GenMap(VK_RIGHT, 'M'),
- GenMap(VK_DOWN, 'P'),
+ GenMap(VK_PRIOR, 'I'),
+ GenMap(VK_NEXT, 'Q'),
+ GenMap(VK_END, 'O'),
+ GenMap(VK_HOME, 'H'),
+ GenMap(VK_LEFT, 'K'),
+ GenMap(VK_UP, 'H'),
+ GenMap(VK_RIGHT, 'M'),
+ GenMap(VK_DOWN, 'P'),
GenMap(VK_DELETE, 'S'),
GenMap(VK_INSERT, 'R')
};
+/* *INDENT-ON* */
#define N_INI ((int)array_length(keylist))
#define FKEYS 24
#define MAPSIZE (FKEYS + N_INI)
#define NUMPAIRS 64
-/* A process can only have a single console, so it's safe
+/* A process can only have a single console, so it is safe
to maintain all the information about it in a single
static structure.
*/
@@ -123,7 +126,6 @@ static struct {
BOOL buffered;
BOOL window_only;
BOOL progMode;
- BOOL isMinTTY;
BOOL isTermInfoConsole;
HANDLE out;
HANDLE inp;
@@ -486,7 +488,7 @@ wcon_doupdate(TERMINAL_CONTROL_BLOCK * TCB)
Width = screen_columns(sp);
Height = screen_lines(sp);
- nonempty = min(Height, NewScreen(sp)->_maxy + 1);
+ nonempty = Min(Height, NewScreen(sp)->_maxy + 1);
T(("... %dx%d clear cur:%d new:%d",
Height, Width,
@@ -610,6 +612,12 @@ wcon_doupdate(TERMINAL_CONTROL_BLOCK * TCB)
returnCode(result);
}
+#ifdef __MING32__
+#define SysISATTY(fd) _isatty(fd)
+#else
+#define SysISATTY(fd) isatty(fd)
+#endif
+
static bool
wcon_CanHandle(TERMINAL_CONTROL_BLOCK * TCB,
const char *tname,
@@ -641,6 +649,8 @@ wcon_CanHandle(TERMINAL_CONTROL_BLOCK * TCB,
}
} else if (tname != 0 && stricmp(tname, "unknown") == 0) {
code = TRUE;
+ } else if (SysISATTY(TCB->term.Filedes)) {
+ code = TRUE;
}
/*
@@ -1476,10 +1486,10 @@ Adjust(int milliseconds, int diff)
FROM_LEFT_4TH_BUTTON_PRESSED | \
RIGHTMOST_BUTTON_PRESSED)
-static int
+static mmask_t
decode_mouse(SCREEN *sp, int mask)
{
- int result = 0;
+ mmask_t result = 0;
(void) sp;
assert(sp && console_initialized);
@@ -1668,14 +1678,14 @@ handle_mouse(SCREEN *sp, MOUSE_EVENT_RECORD mer)
if (sp->_drv_mouse_new_buttons) {
- work.bstate |= (mmask_t) decode_mouse(sp, sp->_drv_mouse_new_buttons);
+ work.bstate |= decode_mouse(sp, sp->_drv_mouse_new_buttons);
} else {
/* cf: BUTTON_PRESSED, BUTTON_RELEASED */
- work.bstate |= (mmask_t) (decode_mouse(sp,
- sp->_drv_mouse_old_buttons)
- >> 1);
+ work.bstate |= (decode_mouse(sp,
+ sp->_drv_mouse_old_buttons)
+ >> 1);
result = TRUE;
}
@@ -1867,7 +1877,7 @@ get_handle(int fd)
#if WINVER >= 0x0600
/* This function tests, whether or not the ncurses application
is running as a descendant of MSYS2/cygwin mintty terminal
- application. mintty doesn't use Windows Console for it's screen
+ application. mintty doesn't use Windows Console for its screen
I/O, so the native Windows _isatty doesn't recognize it as
character device. But we can discover we are at the end of an
Pipe and can query to server side of the pipe, looking whether
@@ -1957,11 +1967,6 @@ _nc_mingw_isatty(int fd)
{
int result = 0;
-#ifdef __MING32__
-#define SysISATTY(fd) _isatty(fd)
-#else
-#define SysISATTY(fd) isatty(fd)
-#endif
if (SysISATTY(fd)) {
result = 1;
} else {
@@ -1974,7 +1979,7 @@ _nc_mingw_isatty(int fd)
/* This is used when running in terminfo mode to discover,
whether or not the "terminal" is actually a Windows
- Console. It's the responsibility of the console to deal
+ Console. It is the responsibility of the console to deal
with the terminal escape sequences that are sent by
terminfo.
*/
@@ -2126,9 +2131,9 @@ _nc_mingw_console_read(
*buf = (int) inp_rec.Event.KeyEvent.uChar.AsciiChar;
vk = inp_rec.Event.KeyEvent.wVirtualKeyCode;
/*
- * There are 24 virtual function-keys, and typically
- * 12 function-keys on a keyboard. Use the shift-modifier
- * to provide the remaining 12 keys.
+ * There are 24 virtual function-keys (defined in winuser.h),
+ * and typically 12 function-keys on a keyboard. Use the
+ * shift-modifier to provide the remaining keys.
*/
if (vk >= VK_F1 && vk <= VK_F12) {
if (inp_rec.Event.KeyEvent.dwControlKeyState & SHIFT_PRESSED) {
@@ -2145,6 +2150,11 @@ _nc_mingw_console_read(
ungetch('\0');
*buf = AnsiKey(vk);
}
+ } else if (vk == VK_BACK) {
+ if (!(inp_rec.Event.KeyEvent.dwControlKeyState
+ & (SHIFT_PRESSED | CONTROL_PRESSED))) {
+ *buf = KEY_BACKSPACE;
+ }
}
break;
} else if (inp_rec.EventType == MOUSE_EVENT) {
@@ -2172,9 +2182,6 @@ InitConsole(void)
BOOL b;
START_TRACE();
- if (_nc_mingw_isatty(0)) {
- CON.isMinTTY = TRUE;
- }
for (i = 0; i < (N_INI + FKEYS); i++) {
if (i < N_INI) {
@@ -2213,14 +2220,14 @@ InitConsole(void)
for (i = 0; i < NUMPAIRS; i++)
CON.pairs[i] = a;
- CON.inp = GetStdHandle(STD_INPUT_HANDLE);
- CON.out = GetStdHandle(STD_OUTPUT_HANDLE);
-
b = AllocConsole();
if (!b)
b = AttachConsole(ATTACH_PARENT_PROCESS);
+ CON.inp = GetDirectHandle("CONIN$", FILE_SHARE_READ);
+ CON.out = GetDirectHandle("CONOUT$", FILE_SHARE_WRITE);
+
if (getenv("NCGDB") || getenv("NCURSES_CONSOLE2")) {
T(("... will not buffer console"));
buffered = FALSE;
@@ -2228,7 +2235,7 @@ InitConsole(void)
} else {
T(("... creating console buffer"));
CON.hdl = CreateConsoleScreenBuffer(GENERIC_READ | GENERIC_WRITE,
- 0,
+ FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL,
CONSOLE_TEXTMODE_BUFFER,
NULL);
diff --git a/package/debian-mingw/changelog b/package/debian-mingw/changelog
index 01b5c4e709b7..cf7773000bda 100644
--- a/package/debian-mingw/changelog
+++ b/package/debian-mingw/changelog
@@ -1,10 +1,10 @@
-ncurses6 (6.2+20210220) unstable; urgency=low
+ncurses6 (6.5+20240427) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 20 Feb 2021 07:06:35 -0500
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 27 Apr 2024 09:56:53 -0400
-ncurses6 (5.9-20131005) unstable; urgency=low
+ncurses6 (5.9+20131005) unstable; urgency=low
* initial release
diff --git a/package/debian-mingw/compat b/package/debian-mingw/compat
index f599e28b8ab0..48082f72f087 100644
--- a/package/debian-mingw/compat
+++ b/package/debian-mingw/compat
@@ -1 +1 @@
-10
+12
diff --git a/package/debian-mingw/control b/package/debian-mingw/control
index 7ad33dcc546b..6fb213fdf0cc 100644
--- a/package/debian-mingw/control
+++ b/package/debian-mingw/control
@@ -3,8 +3,11 @@ Section: libdevel
Priority: optional
Maintainer: Thomas E. Dickey <dickey@invisible-island.net>
Homepage: https://invisible-island.net/ncurses/
-Build-Depends: debhelper (>= 7)
-Standards-Version: 3.8.2
+Build-Depends: debhelper (>= 7),
+ gcc-mingw-w64-i686,
+ g++-mingw-w64-i686,
+ binutils-mingw-w64-i686
+Standards-Version: 4.6.1.0
Package: mingw32-ncurses6
Architecture: any
diff --git a/package/debian-mingw/copyright b/package/debian-mingw/copyright
index a01b3eec04de..32396640b07c 100644
--- a/package/debian-mingw/copyright
+++ b/package/debian-mingw/copyright
@@ -5,17 +5,17 @@ Current ncurses maintainer: Thomas Dickey <dickey@invisible-island.net>
-------------------------------------------------------------------------------
Files: *
-Copyright: 2017-2020,2021 by Thomas E. Dickey
+Copyright: 2017-2023,2024 by Thomas E. Dickey
Copyright: 1998-2016,2017 Free Software Foundation, Inc.
-Licence: X11
+License: X11
Files: aclocal.m4 package
-Copyright: 1996-2020,2021 by Thomas E. Dickey
-Licence: X11
+Copyright: 1996-2023,2024 by Thomas E. Dickey
+License: X11
Files: doc/html/NCURSES-Programming-HOWTO.html
Copyright: 2001 by Pradeep Padala
-Licence: X11
+License: X11
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the
@@ -44,7 +44,7 @@ Licence: X11
-------------------------------------------------------------------------------
Files: install-sh
Copyright: 1994 X Consortium
-Licence: X11
+License: X11
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
diff --git a/package/debian-mingw/rules b/package/debian-mingw/rules
index 4aa7cb957ac9..8c266a93af08 100755
--- a/package/debian-mingw/rules
+++ b/package/debian-mingw/rules
@@ -49,7 +49,7 @@ CONFIG_OPTIONS = \
--with-abi-version=$(MY_ABI) \
--with-cxx-shared \
--with-develop \
- --with-fallbacks=unknown,rxvt \
+ --with-fallbacks=unknown,ms-terminal,xterm-256color \
--with-tic-path=/usr/bin/tic$(MY_ABI) \
--with-infocmp-path=/usr/bin/infocmp$(MY_ABI) \
--with-shared \
@@ -111,7 +111,7 @@ install: install-stamp
install-stamp: build-stamp
dh_testdir
dh_testroot
- dh_clean -k
+ dh_prep
dh_installdirs $(verbose)
$(MAKE) install.libs DESTDIR=$(MINGW_TMP)
diff --git a/package/debian-mingw64/changelog b/package/debian-mingw64/changelog
index 01b5c4e709b7..cf7773000bda 100644
--- a/package/debian-mingw64/changelog
+++ b/package/debian-mingw64/changelog
@@ -1,10 +1,10 @@
-ncurses6 (6.2+20210220) unstable; urgency=low
+ncurses6 (6.5+20240427) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 20 Feb 2021 07:06:35 -0500
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 27 Apr 2024 09:56:53 -0400
-ncurses6 (5.9-20131005) unstable; urgency=low
+ncurses6 (5.9+20131005) unstable; urgency=low
* initial release
diff --git a/package/debian-mingw64/compat b/package/debian-mingw64/compat
index f599e28b8ab0..48082f72f087 100644
--- a/package/debian-mingw64/compat
+++ b/package/debian-mingw64/compat
@@ -1 +1 @@
-10
+12
diff --git a/package/debian-mingw64/control b/package/debian-mingw64/control
index fa1bd716f2c8..74e8136a6eeb 100644
--- a/package/debian-mingw64/control
+++ b/package/debian-mingw64/control
@@ -3,8 +3,11 @@ Section: libdevel
Priority: optional
Maintainer: Thomas E. Dickey <dickey@invisible-island.net>
Homepage: https://invisible-island.net/ncurses/
-Build-Depends: debhelper (>= 7)
-Standards-Version: 3.8.2
+Build-Depends: debhelper (>= 7),
+ gcc-mingw-w64-x86-64,
+ g++-mingw-w64-x86-64,
+ binutils-mingw-w64-x86-64
+Standards-Version: 4.6.1.0
Package: mingw64-ncurses6
Architecture: any
diff --git a/package/debian-mingw64/copyright b/package/debian-mingw64/copyright
index a01b3eec04de..32396640b07c 100644
--- a/package/debian-mingw64/copyright
+++ b/package/debian-mingw64/copyright
@@ -5,17 +5,17 @@ Current ncurses maintainer: Thomas Dickey <dickey@invisible-island.net>
-------------------------------------------------------------------------------
Files: *
-Copyright: 2017-2020,2021 by Thomas E. Dickey
+Copyright: 2017-2023,2024 by Thomas E. Dickey
Copyright: 1998-2016,2017 Free Software Foundation, Inc.
-Licence: X11
+License: X11
Files: aclocal.m4 package
-Copyright: 1996-2020,2021 by Thomas E. Dickey
-Licence: X11
+Copyright: 1996-2023,2024 by Thomas E. Dickey
+License: X11
Files: doc/html/NCURSES-Programming-HOWTO.html
Copyright: 2001 by Pradeep Padala
-Licence: X11
+License: X11
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the
@@ -44,7 +44,7 @@ Licence: X11
-------------------------------------------------------------------------------
Files: install-sh
Copyright: 1994 X Consortium
-Licence: X11
+License: X11
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
diff --git a/package/debian-mingw64/rules b/package/debian-mingw64/rules
index b2ebb8832140..3a79517cf348 100755
--- a/package/debian-mingw64/rules
+++ b/package/debian-mingw64/rules
@@ -49,7 +49,7 @@ CONFIG_OPTIONS = \
--with-abi-version=$(MY_ABI) \
--with-cxx-shared \
--with-develop \
- --with-fallbacks=unknown,rxvt \
+ --with-fallbacks=unknown,ms-terminal,xterm-256color \
--with-tic-path=/usr/bin/tic$(MY_ABI) \
--with-infocmp-path=/usr/bin/infocmp$(MY_ABI) \
--with-shared \
@@ -111,7 +111,7 @@ install: install-stamp
install-stamp: build-stamp
dh_testdir
dh_testroot
- dh_clean -k
+ dh_prep
dh_installdirs $(verbose)
$(MAKE) install.libs DESTDIR=$(MINGW_TMP)
diff --git a/package/debian/changelog b/package/debian/changelog
index 7884cace2042..12ba6fbd93dd 100644
--- a/package/debian/changelog
+++ b/package/debian/changelog
@@ -1,10 +1,10 @@
-ncurses6 (6.2+20210220) unstable; urgency=low
+ncurses6 (6.5+20240427) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 20 Feb 2021 07:06:35 -0500
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 27 Apr 2024 09:56:53 -0400
-ncurses6 (5.9-20120608) unstable; urgency=low
+ncurses6 (5.9+20120608) unstable; urgency=low
* initial release
diff --git a/package/debian/compat b/package/debian/compat
index f599e28b8ab0..48082f72f087 100644
--- a/package/debian/compat
+++ b/package/debian/compat
@@ -1 +1 @@
-10
+12
diff --git a/package/debian/control b/package/debian/control
index fcd4dac31f2a..35921910f98d 100644
--- a/package/debian/control
+++ b/package/debian/control
@@ -3,8 +3,8 @@ Section: libdevel
Priority: optional
Maintainer: Thomas E. Dickey <dickey@invisible-island.net>
Homepage: https://invisible-island.net/ncurses/
-Build-Depends: debhelper (>= 7)
-Standards-Version: 3.8.2
+Build-Depends: debhelper (>= 8.1.3)
+Standards-Version: 4.6.1.0
Package: ncurses6
Architecture: any
diff --git a/package/debian/copyright b/package/debian/copyright
index a01b3eec04de..32396640b07c 100644
--- a/package/debian/copyright
+++ b/package/debian/copyright
@@ -5,17 +5,17 @@ Current ncurses maintainer: Thomas Dickey <dickey@invisible-island.net>
-------------------------------------------------------------------------------
Files: *
-Copyright: 2017-2020,2021 by Thomas E. Dickey
+Copyright: 2017-2023,2024 by Thomas E. Dickey
Copyright: 1998-2016,2017 Free Software Foundation, Inc.
-Licence: X11
+License: X11
Files: aclocal.m4 package
-Copyright: 1996-2020,2021 by Thomas E. Dickey
-Licence: X11
+Copyright: 1996-2023,2024 by Thomas E. Dickey
+License: X11
Files: doc/html/NCURSES-Programming-HOWTO.html
Copyright: 2001 by Pradeep Padala
-Licence: X11
+License: X11
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the
@@ -44,7 +44,7 @@ Licence: X11
-------------------------------------------------------------------------------
Files: install-sh
Copyright: 1994 X Consortium
-Licence: X11
+License: X11
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
diff --git a/package/debian/ncurses6.lintian-overrides b/package/debian/ncurses6.lintian-overrides
index 759fa7666eb3..8bd49457f089 100644
--- a/package/debian/ncurses6.lintian-overrides
+++ b/package/debian/ncurses6.lintian-overrides
@@ -1,15 +1,9 @@
# This is intentional.
ncurses6: package-name-doesnt-match-sonames libformw6-6 libmenuw6-6 libncurses++w6-6 libncursesw6-6 libpanelw6-6 libticw6-6 libtinfow6-6
-# This works around a bug in Debian's build-scripts.
-ncurses6: latest-debian-changelog-entry-changed-to-native
-
-ncurses6: hardening-no-fortify-functions usr/lib/libncurses++w6.so.6.1
-
# This is intentional.
ncurses6: binary-without-manpage
ncurses6: non-dev-pkg-with-shlib-symlink
-ncurses6: embedded-library usr/lib/libtinfow6.so.6.1: ncurses
-ncurses6: postinst-must-call-ldconfig usr/lib/libtinfow6.so.6.1
+ncurses6: embedded-library ncurses [usr/lib/x86_64-linux-gnu/libtinfow6.so.6.4]
# vile: confmode
diff --git a/package/debian/ncursest6.lintian-overrides b/package/debian/ncursest6.lintian-overrides
index e8de0d6a718f..5a1b83bd49b5 100644
--- a/package/debian/ncursest6.lintian-overrides
+++ b/package/debian/ncursest6.lintian-overrides
@@ -1,15 +1,9 @@
# This is intentional.
ncursest6: package-name-doesnt-match-sonames libformtw6-6 libmenutw6-6 libncurses++tw6-6 libncursestw6-6 libpaneltw6-6 libtictw6-6 libtinfotw6-6
-# This works around a bug in Debian's build-scripts.
-ncursest6: latest-debian-changelog-entry-changed-to-native
-
-ncursest6: hardening-no-fortify-functions usr/lib/libncurses++tw6.so.6.1
-
# This is intentional.
ncursest6: binary-without-manpage
ncursest6: non-dev-pkg-with-shlib-symlink
-ncursest6: embedded-library usr/lib/libtinfotw6.so.6.1: ncurses
-ncursest6: postinst-must-call-ldconfig usr/lib/libtinfotw6.so.6.1
+ncursest6: embedded-library ncurses [usr/lib/x86_64-linux-gnu/libtinfotw6.so.6.4]
# vile: confmode
diff --git a/package/debian/rules b/package/debian/rules
index ab94ef3f7b12..648939b22fba 100755
--- a/package/debian/rules
+++ b/package/debian/rules
@@ -1,9 +1,16 @@
#!/usr/bin/make -f
-# $Id: rules,v 1.39 2020/08/22 22:03:06 tom Exp $
+# $Id: rules,v 1.53 2024/04/08 15:31:32 tom Exp $
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
+SHELL = /bin/bash
+DPKG_EXPORT_BUILDFLAGS = 1
+
+export DEB_BUILD_MAINT_OPTIONS = hardening=+all
+
+include /usr/share/dpkg/buildflags.mk
+
# packages
PACKAGES.indep = ncurses6-doc ncurses6-doc-html
PACKAGES.arch = ncurses6 ncursest6
@@ -12,23 +19,23 @@ PACKAGES.arch = ncurses6 ncursest6
# from having to guess our platform (since we know it already)
DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
CC_NORMAL = -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wconversion
CC_STRICT = $(CC_NORMAL) -W -Wbad-function-cast -Wcast-align -Wcast-qual -Wmissing-declarations -Wnested-externs -Wpointer-arith -Wwrite-strings -ansi -pedantic
MY_ABI=6
MY_DIR=/usr
+BINDIR=$(MY_DIR)/bin
+LIBDIR=$(MY_DIR)/lib/$(DEB_HOST_MULTIARCH)
MYDATA=/usr/local/ncurses/share/terminfo
NORMAL_DIR=$(CURDIR)/debian/ncurses$(MY_ABI)
THREAD_DIR=$(CURDIR)/debian/ncursest$(MY_ABI)
-CFLAGS = $(shell dpkg-buildflags --get CFLAGS) $(CC_NORMAL)
-CXXFLAGS = $(shell dpkg-buildflags --get CXXFLAGS)
-CPPFLAGS = $(shell dpkg-buildflags --get CPPFLAGS)
-LDFLAGS = $(shell dpkg-buildflags --get LDFLAGS)
+CFLAGS += $(CC_NORMAL)
ifneq ($(MY_DIR),/usr)
- RPATH_ENV = RPATH_LIST=../lib:$(MY_DIR)/lib
+ RPATH_ENV = RPATH_LIST=../lib:$(LIBDIR)
RPATH_OPT = --enable-rpath
else
RPATH_ENV =
@@ -54,19 +61,24 @@ configure = \
--host=$(DEB_HOST_GNU_TYPE) \
--build=$(DEB_BUILD_GNU_TYPE) \
--prefix=$(MY_DIR) \
+ --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) \
--disable-echo \
--disable-getcap \
--disable-leaks \
--disable-macros \
--disable-overwrite \
--disable-relink \
+ --disable-root-access \
+ --disable-root-environ \
--disable-termcap \
+ --enable-check-size \
--enable-hard-tabs \
--enable-opaque-curses \
--enable-opaque-form \
--enable-opaque-menu \
--enable-opaque-panel \
--enable-pc-files \
+ --enable-stdnoreturn \
--enable-warnings \
--enable-wgetch-events \
--enable-widec \
@@ -88,7 +100,8 @@ configure = \
--with-xterm-kbs=DEL \
--without-ada \
--without-debug \
- --without-manpage-aliases \
+ --with-manpage-aliases \
+ --with-manpage-symlinks \
--without-normal
NCURSES6_DIR = $(CURDIR)/debian/ncurses6
@@ -130,8 +143,8 @@ patch-ncurses6-stamp:
-e 's/\.3menu$$/.3menu6/' \
-e 's/\.3panel$$/.3panel6/' \
-e 's/\.\([157]\)$$/6.\1/' \
- man/man_db.renames
- diff -u man/man_db.renames.bak man/man_db.renames || true
+ man/man_db.renames.in
+ diff -u man/man_db.renames.in.bak man/man_db.renames.in || true
touch $@
config-ncurses6-stamp: patch-ncurses6-stamp
@@ -181,9 +194,9 @@ install-ncurses6-stamp: build-ncurses6-stamp
dh_prep $(verbose) -pncurses6
$(MAKE) -C t/ncurses6 install.libs install.progs DESTDIR=$(NCURSES6_DIR)
- $(MAKE) -C t/ncurses6/test ncurses LOCAL_LIBDIR=$(MY_DIR)/lib
+ $(MAKE) -C t/ncurses6/test ncurses LOCAL_LIBDIR=$(LIBDIR)
- mv t/ncurses6/test/ncurses $(NCURSES6_DIR)$(MY_DIR)/bin/ncurses$(MY_ABI)
+ mv t/ncurses6/test/ncurses $(NCURSES6_DIR)$(BINDIR)/ncurses$(MY_ABI)
touch $@
@@ -194,9 +207,9 @@ install-ncursest6-stamp: build-ncursest6-stamp
dh_prep $(verbose) -pncursest6
$(MAKE) -C t/ncursest6 install.libs install.progs DESTDIR=$(NCURSEST6_DIR)
- $(MAKE) -C t/ncursest6/test ncurses LOCAL_LIBDIR=$(MY_DIR)/lib
+ $(MAKE) -C t/ncursest6/test ncurses LOCAL_LIBDIR=$(LIBDIR)
- mv t/ncursest6/test/ncurses $(NCURSEST6_DIR)$(MY_DIR)/bin/ncursest$(MY_ABI)
+ mv t/ncursest6/test/ncurses $(NCURSEST6_DIR)$(BINDIR)/ncursest$(MY_ABI)
touch $@
@@ -207,10 +220,13 @@ install-ncurses6-doc-stamp: build-ncurses6-stamp
dh_prep $(verbose) -pncurses6-doc
$(MAKE) -C t/ncurses6 install.man DESTDIR=$(NCURSES6_DIR)-doc
+ find $(NCURSES6_DIR)-doc -name 'ncursesw6-config.*' -print -delete
+
+ cd $(NCURSES6_DIR)-doc/usr/share/man/man1 && ln -sf tset6.1.gz reset6.1.gz
touch $@
-HTML_DESTDIR=$(NCURSES6_DIR)-doc-html/usr/share/ncurses6-doc-html
+HTML_DESTDIR=$(NCURSES6_DIR)-doc-html/usr/share/doc/ncurses6-doc-html
install-ncurses6-doc-html-stamp: build-ncurses6-stamp
dh_testdir
dh_testroot
@@ -219,6 +235,8 @@ install-ncurses6-doc-html-stamp: build-ncurses6-stamp
cd doc/html && find * -type d | sort | xargs -I{} mkdir -p -v $(HTML_DESTDIR)/{}
cd doc/html && find * -type f -name '*.html' | sort | xargs -I{} install -m 644 -p -v -T {} $(HTML_DESTDIR)/{}
+ find $(HTML_DESTDIR) -type d -empty -delete -print
+ find $(HTML_DESTDIR) -type d -empty -delete -print
touch $@
@@ -247,6 +265,13 @@ ifneq ($(PACKAGES.arch),)
rm -f $(PACKAGES.arch:%=install-%-stamp)
dh_testdir
dh_testroot
+
+ version=`set -x; awk 'BEGIN{major=minor=0} /^NCURSES_MAJOR/{major=$$3} /^NCURSES_MINOR/{minor=$$3} END{print major "." minor}' < dist.mk`; \
+ sed -i \
+ -e "s, usr/lib, usr/lib/$(DEB_HOST_MULTIARCH)," \
+ -e "s,6\.1,$${version}," \
+ debian/*.lintian-overrides
+
dh_lintian $(verbose) $(PACKAGES.arch:%=-p%)
dh_installdocs $(verbose) $(PACKAGES.arch:%=-p%)
dh_installchangelogs $(verbose) $(PACKAGES.arch:%=-p%) NEWS
diff --git a/package/mingw-ncurses.nsi b/package/mingw-ncurses.nsi
index e18c584e9a75..2bbc8cc03bad 100644
--- a/package/mingw-ncurses.nsi
+++ b/package/mingw-ncurses.nsi
@@ -1,4 +1,4 @@
-; $Id: mingw-ncurses.nsi,v 1.444 2021/02/20 12:06:35 tom Exp $
+; $Id: mingw-ncurses.nsi,v 1.645 2024/04/27 13:56:53 tom Exp $
; TODO add examples
; TODO bump ABI to 6
@@ -8,9 +8,9 @@
!define EXENAME "ncurses.exe"
!define VERSION_MAJOR "6"
-!define VERSION_MINOR "2"
-!define VERSION_YYYY "2021"
-!define VERSION_MMDD "0220"
+!define VERSION_MINOR "5"
+!define VERSION_YYYY "2024"
+!define VERSION_MMDD "0427"
!define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}
!define MY_ABI "5"
diff --git a/package/mingw-ncurses.spec b/package/mingw-ncurses.spec
index 38c59d455b51..3635bbc78e53 100644
--- a/package/mingw-ncurses.spec
+++ b/package/mingw-ncurses.spec
@@ -2,12 +2,12 @@
Summary: shared libraries for terminal handling
Name: mingw32-ncurses6
-Version: 6.2
-Release: 20210220
+Version: 6.5
+Release: 20240427
License: X11
Group: Development/Libraries
-Source: ncurses-%{version}-%{release}.tgz
-# URL: https://invisible-island.net/ncurses/
+URL: https://invisible-island.net/ncurses/
+Source: https://invisible-island.net/archives/ncurses/ncurses-%{version}-%{release}.tgz
BuildRequires: mingw32-filesystem >= 95
BuildRequires: mingw32-gcc
@@ -128,9 +128,6 @@ for name in $RPM_BUILD_ROOT%{mingw64_bindir}/*-config; \
done
popd
-%clean
-rm -rf $RPM_BUILD_ROOT
-
%files -n mingw32-ncurses6
%defattr(-,root,root,-)
%{_bindir}/%{mingw32_target}-*
@@ -147,6 +144,9 @@ rm -rf $RPM_BUILD_ROOT
%changelog
+* Sat Feb 25 2023 Thomas Dickey
+- amend URLs per rpmlint
+
* Sun Jun 30 2019 Thomas E. Dickey
- use tic-path and infocmp-path options for fallbacks
diff --git a/package/ncurses.map b/package/ncurses.map
index 0b2a1ab2cf10..68de9c437907 100644
--- a/package/ncurses.map
+++ b/package/ncurses.map
@@ -1,4 +1,4 @@
-# $Id: ncurses.map,v 1.52 2020/05/27 19:26:59 tom Exp $
+# $Id: ncurses.map,v 1.58 2024/04/27 14:33:24 tom Exp $
# script for shared library symbol-versioning using ld
#
# This file was generated by ncu-mapsyms
@@ -1208,9 +1208,26 @@ NCURSES_TINFO_6.2.20200212 {
exit_terminfo;
} NCURSES_TINFO_6.1.20171230;
-NCURSES_TINFO_6.2.current {
+NCURSES_TINFO_6.2.20211010 {
global:
+ _nc_reset_tparm;
+ _nc_safe_fopen;
+ _nc_safe_open3;
_nc_tiparm;
+} NCURSES_TINFO_6.2.20200212;
+
+NCURSES_TINFO_6.5.20240427 {
+ global:
+ is_cbreak;
+ is_cbreak_sp;
+ is_echo;
+ is_echo_sp;
+ is_nl;
+ is_nl_sp;
+ is_raw;
+ is_raw_sp;
+ tiparm_s;
+ tiscan_s;
local:
_*;
-} NCURSES_TINFO_6.2.20200212;
+} NCURSES_TINFO_6.2.20211010;
diff --git a/package/ncurses.spec b/package/ncurses.spec
index 9ff76274478e..a4a915c11ec8 100644
--- a/package/ncurses.spec
+++ b/package/ncurses.spec
@@ -1,11 +1,11 @@
Summary: shared libraries for terminal handling
Name: ncurses6
-Version: 6.2
-Release: 20210220
+Version: 6.5
+Release: 20240427
License: X11
Group: Development/Libraries
-Source: ncurses-%{version}-%{release}.tgz
-# URL: https://invisible-island.net/ncurses/
+URL: https://invisible-island.net/ncurses/
+Source: https://invisible-island.net/archives/ncurses/ncurses-%{version}-%{release}.tgz
%global MY_ABI 6
@@ -69,15 +69,18 @@ This package is used for testing ABI %{MY_ABI}.
--disable-leaks \\\
--disable-macros \\\
--disable-overwrite \\\
- %{_test_relink} \\\
+ --disable-root-access \\\
+ --disable-root-environ \\\
+ --disable-rpath \\\
--disable-termcap \\\
+ %{_test_relink} \\\
--enable-hard-tabs \\\
--enable-opaque-curses \\\
--enable-opaque-form \\\
--enable-opaque-menu \\\
--enable-opaque-panel \\\
--enable-pc-files \\\
- --enable-rpath \\\
+ --enable-stdnoreturn \\\
--enable-warnings \\\
--enable-wgetch-events \\\
--enable-widec \\\
@@ -123,14 +126,6 @@ rm -f test/ncurses
%endif
%endif
-%clean
-if rm -rf $RPM_BUILD_ROOT; then
- echo OK
-else
- find $RPM_BUILD_ROOT -type f | grep -F -v /.nfs && exit 1
-fi
-exit 0
-
%files
%defattr(-,root,root,-)
%{_bindir}/*
@@ -139,6 +134,12 @@ exit 0
%changelog
+* Sat Feb 25 2023 Thomas Dickey
+- amend URLs per rpmlint
+
+* Sat Oct 16 2021 Thomas Dickey
+- disable rpath to address QA_RPATHS=1 warning.
+
* Tue Dec 24 2019 Thomas Dickey
- drop custom CC_NORMAL warning flags because setting CFLAGS interferes with
matching Fedora's PIE/PIC configuration. Also, generate debug/debug-source
diff --git a/package/ncurses.sym b/package/ncurses.sym
index d9f8b937d67c..aaa1621fb5ab 100644
--- a/package/ncurses.sym
+++ b/package/ncurses.sym
@@ -1,4 +1,4 @@
-# $Id: ncurses.sym,v 1.35 2019/12/14 22:40:34 tom Exp $
+# $Id: ncurses.sym,v 1.39 2023/08/12 15:29:01 tom Exp $
# script for shared library symbol-visibility using libtool
#
# This file was generated by ncu-mapsyms
@@ -176,6 +176,7 @@ _nc_read_entry_source
_nc_read_file_entry
_nc_read_termtype
_nc_reset_input
+_nc_reset_tparm
_nc_resolve_uses
_nc_resolve_uses2
_nc_retrace_attr_t
@@ -192,6 +193,8 @@ _nc_retrace_void_ptr
_nc_retrace_win
_nc_ripoffline
_nc_rootname
+_nc_safe_fopen
+_nc_safe_open3
_nc_safe_strcat
_nc_safe_strcpy
_nc_screen_chain
@@ -220,6 +223,7 @@ _nc_tic_written
_nc_timed_wait
_nc_tinfo_fkeys
_nc_tinfo_fkeysf
+_nc_tiparm
_nc_tparm_analyze
_nc_tparm_err
_nc_tputs_trace
@@ -437,16 +441,24 @@ insstr
instr
intrflush
intrflush_sp
+is_cbreak
+is_cbreak_sp
is_cleared
+is_echo
+is_echo_sp
is_idcok
is_idlok
is_immedok
is_keypad
is_leaveok
is_linetouched
+is_nl
+is_nl_sp
is_nodelay
is_notimeout
is_pad
+is_raw
+is_raw_sp
is_scrollok
is_subwin
is_syncok
@@ -778,6 +790,8 @@ tigetstr
tigetstr_sp
timeout
tiparm
+tiparm_s
+tiscan_s
top_panel
top_row
touchline
diff --git a/package/ncursest.map b/package/ncursest.map
index ed8f4e19128e..1dfbe53254d7 100644
--- a/package/ncursest.map
+++ b/package/ncursest.map
@@ -1,4 +1,4 @@
-# $Id: ncursest.map,v 1.50 2020/05/27 19:29:10 tom Exp $
+# $Id: ncursest.map,v 1.56 2024/04/27 14:33:24 tom Exp $
# script for shared library symbol-versioning using ld
#
# This file was generated by ncu-mapsyms
@@ -487,12 +487,29 @@ NCURSES_TINFO_6.2.20200212 {
exit_terminfo;
} NCURSES_TINFO_6.1.20171230;
-NCURSES_TINFO_6.2.current {
+NCURSES_TINFO_6.2.20211010 {
global:
+ _nc_reset_tparm;
+ _nc_safe_fopen;
+ _nc_safe_open3;
_nc_tiparm;
+} NCURSES_TINFO_6.2.20200212;
+
+NCURSES_TINFO_6.5.20240427 {
+ global:
+ is_cbreak;
+ is_cbreak_sp;
+ is_echo;
+ is_echo_sp;
+ is_nl;
+ is_nl_sp;
+ is_raw;
+ is_raw_sp;
+ tiparm_s;
+ tiscan_s;
local:
_*;
-} NCURSES_TINFO_6.2.20200212;
+} NCURSES_TINFO_6.2.20211010;
NCURSEST_5.7.20081102 {
global:
diff --git a/package/ncursest.spec b/package/ncursest.spec
index 6be55177bbac..8427530eb07e 100644
--- a/package/ncursest.spec
+++ b/package/ncursest.spec
@@ -1,7 +1,7 @@
Summary: Curses library with POSIX thread support.
Name: ncursest6
-Version: 6.2
-Release: 20210220
+Version: 6.5
+Release: 20240427
License: X11
Group: Development/Libraries
Source: ncurses-%{version}-%{release}.tgz
diff --git a/package/ncursest.sym b/package/ncursest.sym
index 021b81918d17..9423d3791021 100644
--- a/package/ncursest.sym
+++ b/package/ncursest.sym
@@ -1,4 +1,4 @@
-# $Id: ncursest.sym,v 1.39 2019/12/14 22:42:32 tom Exp $
+# $Id: ncursest.sym,v 1.43 2023/08/12 15:28:50 tom Exp $
# script for shared library symbol-visibility using libtool
#
# This file was generated by ncu-mapsyms
@@ -183,6 +183,7 @@ _nc_read_entry_source
_nc_read_file_entry
_nc_read_termtype
_nc_reset_input
+_nc_reset_tparm
_nc_resolve_uses
_nc_resolve_uses2
_nc_retrace_attr_t
@@ -199,6 +200,8 @@ _nc_retrace_void_ptr
_nc_retrace_win
_nc_ripoffline
_nc_rootname
+_nc_safe_fopen
+_nc_safe_open3
_nc_safe_strcat
_nc_safe_strcpy
_nc_screen
@@ -234,6 +237,7 @@ _nc_tic_written
_nc_timed_wait
_nc_tinfo_fkeys
_nc_tinfo_fkeysf
+_nc_tiparm
_nc_tparm_analyze
_nc_tparm_err
_nc_trace_buf
@@ -446,16 +450,24 @@ insstr
instr
intrflush
intrflush_sp
+is_cbreak
+is_cbreak_sp
is_cleared
+is_echo
+is_echo_sp
is_idcok
is_idlok
is_immedok
is_keypad
is_leaveok
is_linetouched
+is_nl
+is_nl_sp
is_nodelay
is_notimeout
is_pad
+is_raw
+is_raw_sp
is_scrollok
is_subwin
is_syncok
@@ -777,6 +789,8 @@ tigetstr
tigetstr_sp
timeout
tiparm
+tiparm_s
+tiscan_s
top_panel
top_row
touchline
diff --git a/package/ncursestw.map b/package/ncursestw.map
index ff857389ee66..116957f54999 100644
--- a/package/ncursestw.map
+++ b/package/ncursestw.map
@@ -1,4 +1,4 @@
-# $Id: ncursestw.map,v 1.52 2020/05/27 19:29:32 tom Exp $
+# $Id: ncursestw.map,v 1.59 2024/04/27 14:33:24 tom Exp $
# script for shared library symbol-versioning using ld
#
# This file was generated by ncu-mapsyms
@@ -493,12 +493,31 @@ NCURSES_TINFO_6.2.20200212 {
exit_terminfo;
} NCURSES_TINFO_6.1.20171230;
-NCURSES_TINFO_6.2.current {
+NCURSES_TINFO_6.2.20211010 {
global:
+ _nc_reset_tparm;
_nc_tiparm;
+ _nc_safe_fopen;
+ _nc_safe_open3;
+ erasewchar_sp;
+ killwchar_sp;
+} NCURSES_TINFO_6.2.20200212;
+
+NCURSES_TINFO_6.5.20240427 {
+ global:
+ is_cbreak;
+ is_cbreak_sp;
+ is_echo;
+ is_echo_sp;
+ is_nl;
+ is_nl_sp;
+ is_raw;
+ is_raw_sp;
+ tiparm_s;
+ tiscan_s;
local:
_*;
-} NCURSES_TINFO_6.2.20200212;
+} NCURSES_TINFO_6.2.20211010;
NCURSESTW_5.7.20081102 {
global:
diff --git a/package/ncursestw.sym b/package/ncursestw.sym
index 5d12a533b88b..b05baecc1887 100644
--- a/package/ncursestw.sym
+++ b/package/ncursestw.sym
@@ -1,4 +1,4 @@
-# $Id: ncursestw.sym,v 1.38 2019/12/14 22:44:31 tom Exp $
+# $Id: ncursestw.sym,v 1.43 2023/08/12 15:29:11 tom Exp $
# script for shared library symbol-visibility using libtool
#
# This file was generated by ncu-mapsyms
@@ -183,6 +183,7 @@ _nc_read_entry_source
_nc_read_file_entry
_nc_read_termtype
_nc_reset_input
+_nc_reset_tparm
_nc_resolve_uses
_nc_resolve_uses2
_nc_retrace_attr_t
@@ -199,6 +200,8 @@ _nc_retrace_void_ptr
_nc_retrace_win
_nc_ripoffline
_nc_rootname
+_nc_safe_fopen
+_nc_safe_open3
_nc_safe_strcat
_nc_safe_strcpy
_nc_screen
@@ -234,6 +237,7 @@ _nc_tic_written
_nc_timed_wait
_nc_tinfo_fkeys
_nc_tinfo_fkeysf
+_nc_tiparm
_nc_tparm_analyze
_nc_tparm_err
_nc_trace_buf
@@ -355,6 +359,7 @@ erase
erasechar
erasechar_sp
erasewchar
+erasewchar_sp
exit_curses
exit_terminfo
extended_color_content
@@ -481,16 +486,24 @@ instr
intrflush
intrflush_sp
inwstr
+is_cbreak
+is_cbreak_sp
is_cleared
+is_echo
+is_echo_sp
is_idcok
is_idlok
is_immedok
is_keypad
is_leaveok
is_linetouched
+is_nl
+is_nl_sp
is_nodelay
is_notimeout
is_pad
+is_raw
+is_raw_sp
is_scrollok
is_subwin
is_syncok
@@ -524,6 +537,7 @@ keypad
killchar
killchar_sp
killwchar
+killwchar_sp
leaveok
link_field
link_fieldtype
@@ -857,6 +871,8 @@ tigetstr
tigetstr_sp
timeout
tiparm
+tiparm_s
+tiscan_s
top_panel
top_row
touchline
diff --git a/package/ncursesw.map b/package/ncursesw.map
index 021cd57760d3..55834182dfd2 100644
--- a/package/ncursesw.map
+++ b/package/ncursesw.map
@@ -1,4 +1,4 @@
-# $Id: ncursesw.map,v 1.55 2020/05/27 19:27:45 tom Exp $
+# $Id: ncursesw.map,v 1.62 2024/04/27 14:33:24 tom Exp $
# script for shared library symbol-versioning using ld
#
# This file was generated by ncu-mapsyms
@@ -487,12 +487,31 @@ NCURSES_TINFO_6.2.20200212 {
exit_terminfo;
} NCURSES_TINFO_6.1.20171230;
-NCURSES_TINFO_6.2.current {
+NCURSES_TINFO_6.2.20211010 {
global:
+ _nc_reset_tparm;
_nc_tiparm;
+ _nc_safe_fopen;
+ _nc_safe_open3;
+ erasewchar_sp;
+ killwchar_sp;
+} NCURSES_TINFO_6.2.20200212;
+
+NCURSES_TINFO_6.5.20240427 {
+ global:
+ is_cbreak;
+ is_cbreak_sp;
+ is_echo;
+ is_echo_sp;
+ is_nl;
+ is_nl_sp;
+ is_raw;
+ is_raw_sp;
+ tiparm_s;
+ tiscan_s;
local:
_*;
-} NCURSES_TINFO_6.2.20200212;
+} NCURSES_TINFO_6.2.20211010;
NCURSESW_5.1.20000708 {
global:
diff --git a/package/ncursesw.sym b/package/ncursesw.sym
index d8d3fd8f11b8..8ef771f9ba07 100644
--- a/package/ncursesw.sym
+++ b/package/ncursesw.sym
@@ -1,4 +1,4 @@
-# $Id: ncursesw.sym,v 1.37 2019/12/14 22:45:41 tom Exp $
+# $Id: ncursesw.sym,v 1.42 2023/08/12 15:28:30 tom Exp $
# script for shared library symbol-visibility using libtool
#
# This file was generated by ncu-mapsyms
@@ -172,6 +172,7 @@ _nc_read_entry_source
_nc_read_file_entry
_nc_read_termtype
_nc_reset_input
+_nc_reset_tparm
_nc_resolve_uses
_nc_resolve_uses2
_nc_retrace_attr_t
@@ -188,6 +189,8 @@ _nc_retrace_void_ptr
_nc_retrace_win
_nc_ripoffline
_nc_rootname
+_nc_safe_fopen
+_nc_safe_open3
_nc_safe_strcat
_nc_safe_strcpy
_nc_screen_chain
@@ -215,6 +218,7 @@ _nc_tic_expand
_nc_tic_written
_nc_timed_wait
_nc_tinfo_fkeys
+_nc_tiparm
_nc_tparm_analyze
_nc_tparm_err
_nc_tputs_trace
@@ -232,11 +236,11 @@ _nc_visbuf
_nc_visbuf2
_nc_visbufn
_nc_viscbuf
-_nc_wacs_width
_nc_viswbuf
_nc_viswbufn
_nc_viswibuf
_nc_wacs
+_nc_wacs_width
_nc_warning
_nc_wchstrlen
_nc_wcrtomb
@@ -343,6 +347,7 @@ erase
erasechar
erasechar_sp
erasewchar
+erasewchar_sp
exit_curses
exit_terminfo
extended_color_content
@@ -469,16 +474,24 @@ instr
intrflush
intrflush_sp
inwstr
+is_cbreak
+is_cbreak_sp
is_cleared
+is_echo
+is_echo_sp
is_idcok
is_idlok
is_immedok
is_keypad
is_leaveok
is_linetouched
+is_nl
+is_nl_sp
is_nodelay
is_notimeout
is_pad
+is_raw
+is_raw_sp
is_scrollok
is_subwin
is_syncok
@@ -512,6 +525,7 @@ keypad
killchar
killchar_sp
killwchar
+killwchar_sp
leaveok
link_field
link_fieldtype
@@ -853,6 +867,8 @@ tigetstr
tigetstr_sp
timeout
tiparm
+tiparm_s
+tiscan_s
top_panel
top_row
touchline
diff --git a/panel/Makefile.in b/panel/Makefile.in
index cbd978809dcb..380f80cf2d59 100644
--- a/panel/Makefile.in
+++ b/panel/Makefile.in
@@ -1,6 +1,6 @@
-# $Id: Makefile.in,v 1.75 2020/08/29 14:50:45 tom Exp $
+# $Id: Makefile.in,v 1.76 2021/07/03 15:45:33 tom Exp $
##############################################################################
-# Copyright 2020 Thomas E. Dickey #
+# Copyright 2020,2021 Thomas E. Dickey #
# Copyright 1998-2015,2018 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -136,6 +136,19 @@ AUTO_SRC = \
../include/panel.h
################################################################################
+
+@MAKE_PHONY@.PHONY : all
+@MAKE_PHONY@.PHONY : clean
+@MAKE_PHONY@.PHONY : distclean
+@MAKE_PHONY@.PHONY : install
+@MAKE_PHONY@.PHONY : install.libs
+@MAKE_PHONY@.PHONY : libs
+@MAKE_PHONY@.PHONY : mostlyclean
+@MAKE_PHONY@.PHONY : realclean
+@MAKE_PHONY@.PHONY : sources
+@MAKE_PHONY@.PHONY : uninstall
+@MAKE_PHONY@.PHONY : uninstall.libs
+
all \
libs \
install :: $(AUTO_SRC) $(LIBRARIES)
diff --git a/panel/llib-lpanel b/panel/llib-lpanel
index 6f797f5d970f..afdea20c3db2 100644
--- a/panel/llib-lpanel
+++ b/panel/llib-lpanel
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2010,2015 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -43,20 +43,20 @@ PANEL *_nc_retrace_panel(
#undef _nc_my_visbuf
const char *_nc_my_visbuf(
- const void *ptr,
+ const void *ptr,
int n)
{ return(*(const char **)0); }
#undef _nc_dPanel
void _nc_dPanel(
- const char *text,
+ const char *text,
const PANEL *pan)
{ /* void */ }
#undef _nc_dStack
void _nc_dStack(
- const char *fmt,
- int num,
+ const char *fmt,
+ int num,
const PANEL *pan)
{ /* void */ }
@@ -72,8 +72,8 @@ void _nc_Touchpan(
#undef _nc_Touchline
void _nc_Touchline(
- const PANEL *pan,
- int start,
+ const PANEL *pan,
+ int start,
int count)
{ /* void */ }
@@ -133,8 +133,8 @@ int panel_hidden(
#undef move_panel
int move_panel(
- PANEL *pan,
- int starty,
+ PANEL *pan,
+ int starty,
int startx)
{ return(*(int *)0); }
@@ -149,7 +149,7 @@ PANEL *new_panel(
#undef replace_panel
int replace_panel(
- PANEL *pan,
+ PANEL *pan,
WINDOW *win)
{ return(*(int *)0); }
@@ -182,7 +182,7 @@ void update_panels(void)
#undef set_panel_userptr
int set_panel_userptr(
- PANEL *pan,
+ PANEL *pan,
const void *uptr)
{ return(*(int *)0); }
diff --git a/panel/llib-lpanelt b/panel/llib-lpanelt
index 713a0753aa3c..0b996832e58d 100644
--- a/panel/llib-lpanelt
+++ b/panel/llib-lpanelt
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 2010,2015 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -43,20 +43,20 @@ PANEL *_nc_retrace_panel(
#undef _nc_my_visbuf
const char *_nc_my_visbuf(
- const void *ptr,
+ const void *ptr,
int n)
{ return(*(const char **)0); }
#undef _nc_dPanel
void _nc_dPanel(
- const char *text,
+ const char *text,
const PANEL *pan)
{ /* void */ }
#undef _nc_dStack
void _nc_dStack(
- const char *fmt,
- int num,
+ const char *fmt,
+ int num,
const PANEL *pan)
{ /* void */ }
@@ -72,8 +72,8 @@ void _nc_Touchpan(
#undef _nc_Touchline
void _nc_Touchline(
- const PANEL *pan,
- int start,
+ const PANEL *pan,
+ int start,
int count)
{ /* void */ }
@@ -133,8 +133,8 @@ int panel_hidden(
#undef move_panel
int move_panel(
- PANEL *pan,
- int starty,
+ PANEL *pan,
+ int starty,
int startx)
{ return(*(int *)0); }
@@ -149,7 +149,7 @@ PANEL *new_panel(
#undef replace_panel
int replace_panel(
- PANEL *pan,
+ PANEL *pan,
WINDOW *win)
{ return(*(int *)0); }
@@ -182,7 +182,7 @@ void update_panels(void)
#undef set_panel_userptr
int set_panel_userptr(
- PANEL *pan,
+ PANEL *pan,
const void *uptr)
{ return(*(int *)0); }
diff --git a/panel/llib-lpaneltw b/panel/llib-lpaneltw
index 713a0753aa3c..0b996832e58d 100644
--- a/panel/llib-lpaneltw
+++ b/panel/llib-lpaneltw
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 2010,2015 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -43,20 +43,20 @@ PANEL *_nc_retrace_panel(
#undef _nc_my_visbuf
const char *_nc_my_visbuf(
- const void *ptr,
+ const void *ptr,
int n)
{ return(*(const char **)0); }
#undef _nc_dPanel
void _nc_dPanel(
- const char *text,
+ const char *text,
const PANEL *pan)
{ /* void */ }
#undef _nc_dStack
void _nc_dStack(
- const char *fmt,
- int num,
+ const char *fmt,
+ int num,
const PANEL *pan)
{ /* void */ }
@@ -72,8 +72,8 @@ void _nc_Touchpan(
#undef _nc_Touchline
void _nc_Touchline(
- const PANEL *pan,
- int start,
+ const PANEL *pan,
+ int start,
int count)
{ /* void */ }
@@ -133,8 +133,8 @@ int panel_hidden(
#undef move_panel
int move_panel(
- PANEL *pan,
- int starty,
+ PANEL *pan,
+ int starty,
int startx)
{ return(*(int *)0); }
@@ -149,7 +149,7 @@ PANEL *new_panel(
#undef replace_panel
int replace_panel(
- PANEL *pan,
+ PANEL *pan,
WINDOW *win)
{ return(*(int *)0); }
@@ -182,7 +182,7 @@ void update_panels(void)
#undef set_panel_userptr
int set_panel_userptr(
- PANEL *pan,
+ PANEL *pan,
const void *uptr)
{ return(*(int *)0); }
diff --git a/panel/llib-lpanelw b/panel/llib-lpanelw
index bd6e90d2a2c2..7ed8b3c3bf3f 100644
--- a/panel/llib-lpanelw
+++ b/panel/llib-lpanelw
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 2002-2010,2015 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -43,20 +43,20 @@ PANEL *_nc_retrace_panel(
#undef _nc_my_visbuf
const char *_nc_my_visbuf(
- const void *ptr,
+ const void *ptr,
int n)
{ return(*(const char **)0); }
#undef _nc_dPanel
void _nc_dPanel(
- const char *text,
+ const char *text,
const PANEL *pan)
{ /* void */ }
#undef _nc_dStack
void _nc_dStack(
- const char *fmt,
- int num,
+ const char *fmt,
+ int num,
const PANEL *pan)
{ /* void */ }
@@ -72,8 +72,8 @@ void _nc_Touchpan(
#undef _nc_Touchline
void _nc_Touchline(
- const PANEL *pan,
- int start,
+ const PANEL *pan,
+ int start,
int count)
{ /* void */ }
@@ -133,8 +133,8 @@ int panel_hidden(
#undef move_panel
int move_panel(
- PANEL *pan,
- int starty,
+ PANEL *pan,
+ int starty,
int startx)
{ return(*(int *)0); }
@@ -149,7 +149,7 @@ PANEL *new_panel(
#undef replace_panel
int replace_panel(
- PANEL *pan,
+ PANEL *pan,
WINDOW *win)
{ return(*(int *)0); }
@@ -182,7 +182,7 @@ void update_panels(void)
#undef set_panel_userptr
int set_panel_userptr(
- PANEL *pan,
+ PANEL *pan,
const void *uptr)
{ return(*(int *)0); }
diff --git a/panel/p_bottom.c b/panel/p_bottom.c
index 0e5b090aa694..3ca9c77eedab 100644
--- a/panel/p_bottom.c
+++ b/panel/p_bottom.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2008,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -34,11 +34,11 @@
****************************************************************************/
/* p_bottom.c
- * Place a panel on bottom of the stack; may already be in the stack
+ * Place a panel on bottom of the stack; may already be in the stack
*/
#include "panel.priv.h"
-MODULE_ID("$Id: p_bottom.c,v 1.16 2020/09/26 18:02:35 tom Exp $")
+MODULE_ID("$Id: p_bottom.c,v 1.17 2021/06/17 21:20:30 tom Exp $")
PANEL_EXPORT(int)
bottom_panel(PANEL * pan)
diff --git a/panel/p_new.c b/panel/p_new.c
index a7c5a4e2db21..cf1164034f36 100644
--- a/panel/p_new.c
+++ b/panel/p_new.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2009,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -35,11 +35,11 @@
****************************************************************************/
/* p_new.c
- * Creation of a new panel
+ * Creation of a new panel
*/
#include "panel.priv.h"
-MODULE_ID("$Id: p_new.c,v 1.22 2020/12/26 18:25:48 tom Exp $")
+MODULE_ID("$Id: p_new.c,v 1.24 2021/10/23 15:12:06 tom Exp $")
#ifdef TRACE
static char *stdscr_id;
@@ -117,7 +117,7 @@ new_panel(WINDOW *win)
(void)root_panel(NCURSES_SP_ARG);
assert(_nc_stdscr_pseudo_panel);
- if (!(win->_flags & _ISPAD) && (pan = AllocPanel("new_panel")))
+ if ((pan = AllocPanel("new_panel")) != NULL)
{
pan->win = win;
pan->above = (PANEL *)0;
diff --git a/panel/p_show.c b/panel/p_show.c
index 0c973dbeaf66..3503bec1909e 100644
--- a/panel/p_show.c
+++ b/panel/p_show.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2009,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -33,11 +33,11 @@
****************************************************************************/
/* p_show.c
- * Place a panel on top of the stack; may already be in the stack
+ * Place a panel on top of the stack; may already be in the stack
*/
#include "panel.priv.h"
-MODULE_ID("$Id: p_show.c,v 1.16 2020/09/26 18:02:35 tom Exp $")
+MODULE_ID("$Id: p_show.c,v 1.17 2021/06/17 21:20:30 tom Exp $")
PANEL_EXPORT(int)
show_panel(PANEL * pan)
diff --git a/panel/p_user.c b/panel/p_user.c
index 9eec8ba11672..8d650979f845 100644
--- a/panel/p_user.c
+++ b/panel/p_user.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2005,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -33,11 +33,11 @@
****************************************************************************/
/* p_user.c
- * Set/Get panels user pointer
+ * Set/Get panels user pointer
*/
#include "panel.priv.h"
-MODULE_ID("$Id: p_user.c,v 1.10 2020/05/24 01:40:20 anonymous.maarten Exp $")
+MODULE_ID("$Id: p_user.c,v 1.11 2021/06/17 21:20:30 tom Exp $")
PANEL_EXPORT(int)
set_panel_userptr(PANEL * pan, NCURSES_CONST void *uptr)
diff --git a/progs/MKtermsort.sh b/progs/MKtermsort.sh
index 7206bc1a9288..4e58c50a03a2 100755
--- a/progs/MKtermsort.sh
+++ b/progs/MKtermsort.sh
@@ -1,10 +1,10 @@
#!/bin/sh
-# $Id: MKtermsort.sh,v 1.13 2020/02/02 23:34:34 tom Exp $
+# $Id: MKtermsort.sh,v 1.17 2022/02/05 20:39:41 tom Exp $
#
# MKtermsort.sh -- generate indirection vectors for the various sort methods
#
##############################################################################
-# Copyright 2020 Thomas E. Dickey #
+# Copyright 2020-2021,2022 Thomas E. Dickey #
# Copyright 1998-2015,2017 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -47,15 +47,26 @@ AWK=${1-awk}
DATA=${2-../include/Caps}
data=data$$
-trap 'rm -f $data' 1 2 3 15
-sed -e 's/[ ][ ]*/ /g' < $DATA >$data
+trap 'rm -f $data; exit 1' 1 2 3 15
+sed -e 's/[ ][ ]*/ /g' < "$DATA" >$data
DATA=$data
-echo "/*";
-echo " * termsort.c --- sort order arrays for use by infocmp.";
-echo " *";
-echo " * Note: this file is generated using MKtermsort.sh, do not edit by hand.";
-echo " */";
+cat <<EOF
+/*
+ * termsort.h --- sort order arrays for use by infocmp.
+ *
+ * Note: this file is generated using MKtermsort.sh, do not edit by hand.
+ */
+#ifndef _TERMSORT_H
+#define _TERMSORT_H 1
+#include <curses.h>
+
+#ifndef DUMP_ENTRY_H
+typedef unsigned PredType;
+typedef unsigned PredIdx;
+#endif
+
+EOF
echo "static const PredIdx bool_terminfo_sort[] = {";
$AWK <$DATA '
@@ -165,7 +176,11 @@ $3 == "str" && substr($7, 1, 1) == "-" {print "\tFALSE,\t/* ", $2, " */";
$3 == "str" && substr($7, 1, 1) == "Y" {print "\tTRUE,\t/* ", $2, " */"; valid = count++; }
END { printf "#define OK_str_from_termcap %d\n", valid; }
'
-echo "};";
-echo "";
+
+cat <<EOF
+};
+
+#endif /* _TERMSORT_H */
+EOF
rm -f $data
diff --git a/progs/Makefile.in b/progs/Makefile.in
index 1511ec271210..218e64e0c426 100644
--- a/progs/Makefile.in
+++ b/progs/Makefile.in
@@ -1,6 +1,6 @@
-# $Id: Makefile.in,v 1.108 2021/01/23 20:42:08 tom Exp $
+# $Id: Makefile.in,v 1.115 2024/04/08 18:33:54 tom Exp $
##############################################################################
-# Copyright 2020,2021 Thomas E. Dickey #
+# Copyright 2020-2021,2024 Thomas E. Dickey #
# Copyright 1998-2016,2018 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -93,7 +93,8 @@ CPP = @CPP@
CFLAGS = @CFLAGS@ @EXTRA_CFLAGS@
INCDIR = $(top_srcdir)/include
-CPPFLAGS = -DHAVE_CONFIG_H -I../progs @CPPFLAGS@
+NCUDIR = $(top_srcdir)/ncurses
+CPPFLAGS = -DHAVE_CONFIG_H -I../progs -I../ncurses -I$(top_srcdir)/ncurses @CPPFLAGS@
CCFLAGS = $(CPPFLAGS) $(CFLAGS)
@@ -133,7 +134,7 @@ LINT_OPTS = @LINT_OPTS@
LINT_LIBS = -lncurses @LIBS@
AUTO_SRC = \
- termsort.c \
+ termsort.h \
transform.h
# tic relies on direct access to the terminfo database
@@ -145,12 +146,43 @@ PROGS = $(PUT_PROGS) $(GET_PROGS)
DEPS_CURSES = ../lib/@LIB_PREFIX@ncurses@DFT_DEP_SUFFIX@
HEADER_DEPS = \
- ../include/curses.h \
+ $(INCDIR)/nc_access.h \
+ $(INCDIR)/nc_alloc.h \
+ $(INCDIR)/nc_panel.h \
+ $(INCDIR)/nc_string.h \
+ $(INCDIR)/nc_termios.h \
+ $(INCDIR)/nc_tparm.h \
$(INCDIR)/term_entry.h \
$(INCDIR)/tic.h \
- $(INCDIR)/nc_alloc.h
+ $(NCUDIR)/curses.priv.h \
+ $(NCUDIR)/new_pair.h \
+ $(NCUDIR)/term.priv.h \
+ $(srcdir)/progs.priv.h \
+ ../include/curses.h \
+ ../include/ncurses_cfg.h \
+ ../include/ncurses_def.h \
+ ../include/ncurses_dll.h \
+ ../include/term.h \
+ ../include/unctrl.h
################################################################################
+
+@MAKE_PHONY@.PHONY : all
+@MAKE_PHONY@.PHONY : check
+@MAKE_PHONY@.PHONY : clean
+@MAKE_PHONY@.PHONY : distclean
+@MAKE_PHONY@.PHONY : install
+@MAKE_PHONY@.PHONY : install.libs
+@MAKE_PHONY@.PHONY : install.progs
+@MAKE_PHONY@.PHONY : libs
+@MAKE_PHONY@.PHONY : lint
+@MAKE_PHONY@.PHONY : mostlyclean
+@MAKE_PHONY@.PHONY : realclean
+@MAKE_PHONY@.PHONY : sources
+@MAKE_PHONY@.PHONY : uninstall
+@MAKE_PHONY@.PHONY : uninstall.libs
+@MAKE_PHONY@.PHONY : uninstall.progs
+
all: $(AUTO_SRC) $(PROGS)
sources: $(AUTO_SRC)
@@ -292,7 +324,7 @@ DEPS_TSET = \
tset$x: $(DEPS_TSET) $(DEPS_CURSES) transform.h
@ECHO_LD@ $(LINK) $(DEPS_TSET) $(LDFLAGS_TINFO) -o $@
-termsort.c: $(srcdir)/MKtermsort.sh
+termsort.h: $(srcdir)/MKtermsort.sh
$(SHELL) $(srcdir)/MKtermsort.sh $(AWK) $(srcdir)/../include/@TERMINFO_CAPS@ >$@
#
@@ -329,12 +361,23 @@ $(DEPS_CURSES) :
lint:
@MAKE_TERMINFO@ $(LINT) $(LINT_OPTS) $(CPPFLAGS) $(srcdir)/tic.c $(srcdir)/dump_entry.c $(LINT_LIBS)
-@MAKE_TERMINFO@ $(LINT) $(LINT_OPTS) $(CPPFLAGS) $(srcdir)/toe.c $(srcdir)/dump_entry.c $(LINT_LIBS)
+@MAKE_TERMINFO@ $(LINT) $(LINT_OPTS) $(CPPFLAGS) $(srcdir)/toe.c $(LINT_LIBS)
$(LINT) $(LINT_OPTS) $(CPPFLAGS) $(srcdir)/clear.c $(LINT_LIBS)
$(LINT) $(LINT_OPTS) $(CPPFLAGS) $(srcdir)/infocmp.c $(srcdir)/dump_entry.c $(LINT_LIBS)
$(LINT) $(LINT_OPTS) $(CPPFLAGS) $(srcdir)/tabs.c $(LINT_LIBS)
$(LINT) $(LINT_OPTS) $(CPPFLAGS) $(srcdir)/tput.c $(LINT_LIBS)
- $(LINT) $(LINT_OPTS) $(CPPFLAGS) $(srcdir)/tset.c $(srcdir)/dump_entry.c $(LINT_LIBS)
+ $(LINT) $(LINT_OPTS) $(CPPFLAGS) $(srcdir)/tset.c $(LINT_LIBS)
+
+# Verify that each header-file can be compiled without including another.
+check:
+ @$(SHELL) -c "for header in *.h;\
+ do \
+ echo \"** testing \$${header}\" ; \
+ echo \"#include <\$${header}>\" >headers.c; \
+ echo \"int main(void) { return 0; }\" >>headers.c; \
+ $(CC) -c $(CFLAGS) $(CPPFLAGS) headers.c; \
+ done"
+ -@rm -f headers.*
###############################################################################
# The remainder of this file is automatically generated during configuration
diff --git a/progs/capconvert b/progs/capconvert
index bcd56d3dc42a..4b5b321a58ce 100755
--- a/progs/capconvert
+++ b/progs/capconvert
@@ -1,6 +1,6 @@
#!/bin/sh
##############################################################################
-# Copyright 2019,2020 Thomas E. Dickey #
+# Copyright 2019-2021,2022 Thomas E. Dickey #
# Copyright 1998-2011,2017 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -27,7 +27,7 @@
# use or other dealings in this Software without prior written #
# authorization. #
##############################################################################
-# $Id: capconvert,v 1.9 2020/02/02 23:34:34 tom Exp $
+# $Id: capconvert,v 1.12 2022/07/16 21:00:27 tom Exp $
#
# capconvert -- automated conversion from termcap to terminfo
#
@@ -47,7 +47,7 @@ then
echo "TERMINFO is already defined in your environment. This means"
echo "you already have a local terminfo tree, so you do not need any"
echo "conversion."
- if test ! -d $TERMINFO ; then
+ if test ! -d "$TERMINFO" ; then
echo "Caution: TERMINFO does not point to a directory!"
fi
exit;
@@ -62,7 +62,7 @@ for p in $TERMINFO \
/usr/local/lib/terminfo \
/usr/local/share/terminfo
do
- if test -d $p ; then
+ if test -d "$p" ; then
terminfo=yes
break
fi
@@ -95,7 +95,7 @@ else
fi
echo "";
-# Check if test -x works (it's not portable, but useful)
+# Check if test -x works (it is not portable, but useful)
OPT="-x"
TMP=test$$; touch $TMP && chmod 755 $TMP
if test $OPT $TMP ; then
@@ -111,13 +111,13 @@ TIC=
IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
for x in $PATH .
do
- if test $OPT $x/tic
+ if test "$OPT" "$x"/tic
then
TIC=$x/tic
break
fi
done
-IFS="$ac_save_ifs"
+IFS="$save_ifs"
if test -n "$TIC"
then
@@ -140,7 +140,7 @@ echo "";
#
# Make the user a terminfo directory
-if test -d $HOME/.terminfo
+if test -d "$HOME"/.terminfo
then
echo "It appears you already have a private terminfo directory"
echo "at $HOME/.terminfo; this seems odd, because TERMINFO"
@@ -150,7 +150,7 @@ then
exit;
else
echo "I am creating your private terminfo directory at $HOME/.terminfo"
- mkdir $HOME/.terminfo
+ mkdir "$HOME"/.terminfo
# Ensure that that's where tic's compilation results.
# This isn't strictly necessary with a 1.9.7 or later tic.
TERMINFO="$HOME/.terminfo"; export TERMINFO
@@ -165,8 +165,8 @@ then
else
# Ooops...looks like we're running from somewhere other than the
# progs directory of an ncurses source tree.
- master=`find $HOME -name "*terminfo.src" -print`
- mcount=`echo $master | wc -l`
+ master=`find "$HOME" -name "*terminfo.src" -print`
+ mcount=`find "$HOME" -name "*terminfo.src" | wc -l`
case $mcount in
0)
echo "I can not find a terminfo source file anywhere under your home directory."
@@ -184,12 +184,12 @@ else
;;
2)
echo "I see more than one possible terminfo source. Here they are:"
- echo $master | sed "/^/s// /";
+ echo "$master" | sed "/^/s// /";
while :
do
echo "Please tell me which one to use:"
read master;
- if test -f $master
+ if test -f "$master"
then
break
else
@@ -206,12 +206,13 @@ echo "OK, now I will make your private terminfo tree. This may take a bit..."
#
# Kluge alert: we compile terminfo.src in two pieces because a lot of machines
# with < 16MB RAM choke on tic's core-hog habits.
-trap "rm -f tsplit$$.*" EXIT INT QUIT TERM HUP
-sed -n $master \
+trap 'rm -f tsplit$$.*; exit 1' 1 2 3 15
+trap 'rm -f tsplit$$.*' 0
+sed -n "$master" \
-e '1,/SPLIT HERE/w 'tsplit$$.01 \
-e '/SPLIT HERE/,$w 'tsplit$$.02 \
2>/dev/null
-for x in tsplit$$.*; do eval $TIC $x; done
+for x in tsplit$$.*; do eval $TIC "$x"; done
rm tsplit$$.*
trap EXIT INT QUIT TERM HUP
#
@@ -227,26 +228,26 @@ fi
# OK, here comes the nasty case...user has a TERMCAP. Instead of
# trying to follow all the convolutions of the relationship between
-# TERM and TERMCAP (partly because it's too painful, and partly because
+# TERM and TERMCAP (partly because it is too painful, and partly because
# we don't actually know what TERM will be nor even if it always has
# the same value for this user) we do the following three steps...
-if test -f $HOME/.termcap
+if test -f "$HOME"/.termcap
then
- echo 'I see you have a $HOME/.termcap file. I will compile that.'
- eval $TIC $HOME/.termcap
+ echo "I see you have a \$HOME/.termcap file. I will compile that."
+ eval $TIC "$HOME"/.termcap
echo "Done."
echo "Note that editing $HOME/.termcap will no longer change the data curses sees."
elif test -f "$TERMCAP"
then
echo "Your TERMCAP names the file $TERMCAP. I will compile that."
- eval $TIC $TERMCAP
+ eval $TIC "$TERMCAP"
echo "Done."
echo "Note that editing $TERMCAP will no longer change the data curses sees."
else
echo "Your TERMCAP value appears to be an entry in termcap format."
echo "I will compile it."
- echo $TERMCAP >myterm$$
+ echo "$TERMCAP" >myterm$$
eval $TIC myterm$$
rm myterm$$
echo "Done."
diff --git a/progs/clear.c b/progs/clear.c
index 85a5ea541b68..97cb0f3651de 100644
--- a/progs/clear.c
+++ b/progs/clear.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -41,11 +41,11 @@
#include <clear_cmd.h>
#include <tty_settings.h>
-MODULE_ID("$Id: clear.c,v 1.23 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: clear.c,v 1.24 2021/03/20 18:23:14 tom Exp $")
const char *_nc_progname = "clear";
-static void
+static GCC_NORETURN void
usage(void)
{
#define KEEP(s) s "\n"
diff --git a/progs/dump_entry.c b/progs/dump_entry.c
index 75bbe059cd0b..be332d2e7765 100644
--- a/progs/dump_entry.c
+++ b/progs/dump_entry.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2022,2023 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -36,11 +36,11 @@
#define __INTERNAL_CAPS_VISIBLE
#include <progs.priv.h>
-#include "dump_entry.h"
-#include "termsort.c" /* this C file is generated */
+#include <dump_entry.h>
+#include <termsort.h> /* this C file is generated */
#include <parametrized.h> /* so is this */
-MODULE_ID("$Id: dump_entry.c,v 1.181 2020/12/26 18:25:18 tom Exp $")
+MODULE_ID("$Id: dump_entry.c,v 1.196 2023/05/27 20:13:10 tom Exp $")
#define DISCARD(string) string = ABSENT_STRING
#define PRINTF (void) printf
@@ -85,7 +85,7 @@ static int indent = 8;
/* cover various ports and variants of terminfo */
#define V_ALLCAPS 0 /* all capabilities (SVr4, XSI, ncurses) */
#define V_SVR1 1 /* SVR1, Ultrix */
-#define V_HPUX 2 /* HP/UX */
+#define V_HPUX 2 /* HP-UX */
#define V_AIX 3 /* AIX */
#define V_BSD 4 /* BSD */
@@ -107,9 +107,7 @@ static int indent = 8;
#define StrIndirect(j) ((sortmode == S_NOSORT) ? (j) : str_indirect[j])
#endif
-static void failed(const char *) GCC_NORETURN;
-
-static void
+static GCC_NORETURN void
failed(const char *s)
{
perror(s);
@@ -433,10 +431,12 @@ static int
op_length(const char *src, int offset)
{
int result = 0;
- int ch;
+
if (offset > 0 && src[offset - 1] == '\\') {
result = 0;
} else {
+ int ch;
+
result++; /* for '%' mark */
ch = src[offset + result];
if (TcOutput()) {
@@ -477,10 +477,12 @@ static int
find_split(const char *src, int step, int size)
{
int result = size;
- int n;
+
if (size > 0) {
/* check if that would split a backslash-sequence */
int mark = size;
+ int n;
+
for (n = size - 1; n > 0; --n) {
int ch = UChar(src[step + n]);
if (ch == '\\') {
@@ -526,13 +528,13 @@ fill_spaces(const char *src)
size_t size = strlen(fill);
char *result = 0;
int pass;
- int s, d;
+ size_t s, d;
for (pass = 0; pass < 2; ++pass) {
for (s = d = 0; src[s] != '\0'; ++s) {
if (src[s] == ' ') {
if (pass) {
_nc_STRCPY(&result[d], fill, need + 1 - d);
- d += (int) size;
+ d += size;
} else {
need += size;
}
@@ -547,7 +549,7 @@ fill_spaces(const char *src)
if (pass) {
result[d] = '\0';
} else {
- result = malloc(need + 1);
+ result = calloc(need + 1, sizeof(char));
if (result == 0)
failed("fill_spaces");
}
@@ -585,7 +587,6 @@ wrap_concat(const char *src, int need, unsigned mode)
(column + want) > width) {
int step = 0;
int used = width > WRAPPED ? width : WRAPPED;
- int size;
int base = 0;
char *p, align[9];
const char *my_t = trailer;
@@ -619,7 +620,7 @@ wrap_concat(const char *src, int need, unsigned mode)
}
while ((column + (need + gaps)) > used) {
- size = used - tag;
+ int size = used - tag;
if (step) {
strcpy_DYN(&outbuf, align);
size -= base;
@@ -858,7 +859,6 @@ fmt_complex(TERMTYPE2 *tterm, const char *capability, char *src, int level)
indent_DYN(&tmpbuf, level + 1);
strncpy_DYN(&tmpbuf, "%", (size_t) 1);
}
- params = FALSE;
percent = FALSE;
break;
case ' ':
@@ -882,12 +882,15 @@ static const char *
number_format(int value)
{
const char *result = "%d";
+
if ((outform != F_TERMCAP) && (value > 255)) {
unsigned long lv = (unsigned long) value;
- unsigned long mm;
int bits = sizeof(unsigned long) * 8;
int nn;
+
for (nn = 8; nn < bits; ++nn) {
+ unsigned long mm;
+
mm = 1UL << nn;
if ((mm - 16) <= lv && (mm + 16) > lv) {
result = "%#x";
@@ -911,7 +914,6 @@ fmt_entry(TERMTYPE2 *tterm,
{
PredIdx i, j;
char buffer[MAX_TERMINFO_LENGTH + EXTRA_CAP];
- char *capability;
NCURSES_CONST char *name;
int predval, len;
PredIdx num_bools = 0;
@@ -931,7 +933,7 @@ fmt_entry(TERMTYPE2 *tterm,
strcpy_DYN(&outbuf, 0);
if (content_only) {
- column = indent; /* FIXME: workaround to prevent empty lines */
+ column = indent; /* workaround to prevent empty lines */
} else {
strcpy_DYN(&outbuf, tterm->term_names);
@@ -1031,6 +1033,7 @@ fmt_entry(TERMTYPE2 *tterm,
}
for_each_string(j, tterm) {
+ char *capability;
i = StrIndirect(j);
name = ExtStrname(tterm, (int) i, str_names);
assert(strlen(name) < sizeof(buffer) - EXTRA_CAP);
@@ -1308,7 +1311,7 @@ fmt_entry(TERMTYPE2 *tterm,
}
static bool
-kill_string(TERMTYPE2 *tterm, char *cap)
+kill_string(TERMTYPE2 *tterm, const char *const cap)
{
unsigned n;
for (n = 0; n < NUM_STRINGS(tterm); ++n) {
@@ -1346,10 +1349,11 @@ kill_labels(TERMTYPE2 *tterm, int target)
{
int n;
int result = 0;
- char *cap;
char name[20];
for (n = 0; n <= 10; ++n) {
+ char *cap;
+
_nc_SPRINTF(name, _nc_SLIMIT(sizeof(name)) "lf%d", n);
cap = find_string(tterm, name);
if (VALID_STRING(cap)
@@ -1372,10 +1376,11 @@ kill_fkeys(TERMTYPE2 *tterm, int target)
{
int n;
int result = 0;
- char *cap;
char name[20];
for (n = 60; n >= 0; --n) {
+ char *cap;
+
_nc_SPRINTF(name, _nc_SLIMIT(sizeof(name)) "kf%d", n);
cap = find_string(tterm, name);
if (VALID_STRING(cap)
@@ -1477,19 +1482,22 @@ dump_entry(TERMTYPE2 *tterm,
PredFunc pred)
{
TERMTYPE2 save_tterm;
- int len, critlen;
+ int critlen;
const char *legend;
bool infodump;
if (quickdump) {
char bigbuf[65536];
- unsigned n;
unsigned offset = 0;
+
separator = "";
trailer = "\n";
indent = 0;
+
if (_nc_write_object(tterm, bigbuf, &offset, sizeof(bigbuf)) == OK) {
char numbuf[80];
+ unsigned n;
+
if (quickdump & 1) {
if (outbuf.used)
wrap_concat1("\n");
@@ -1504,6 +1512,7 @@ dump_entry(TERMTYPE2 *tterm,
static char padding[] =
{0, 0};
int value = 0;
+
if (outbuf.used)
wrap_concat1("\n");
wrap_concat1("b64:");
@@ -1544,6 +1553,7 @@ dump_entry(TERMTYPE2 *tterm,
save_sgr = set_attributes;
if ((FMT_ENTRY() > critlen)
+ && TcOutput()
&& limited) {
save_tterm = *tterm;
@@ -1554,7 +1564,7 @@ dump_entry(TERMTYPE2 *tterm,
}
if (FMT_ENTRY() > critlen) {
/*
- * We pick on sgr because it's a nice long string capability that
+ * We pick on sgr because it is a nice long string capability that
* is really just an optimization hack. Another good candidate is
* acsc since it is both long and unused by BSD termcap.
*/
@@ -1599,6 +1609,7 @@ dump_entry(TERMTYPE2 *tterm,
}
if (!changed || (FMT_ENTRY() > critlen)) {
int oldversion = tversion;
+ int len;
tversion = V_BSD;
SHOW_WHY("# (terminfo-only capabilities suppressed to fit entry within %d bytes)\n",
@@ -1641,15 +1652,25 @@ dump_entry(TERMTYPE2 *tterm,
}
void
-dump_uses(const char *name, bool infodump)
+dump_uses(const char *value, bool infodump)
/* dump "use=" clauses in the appropriate format */
{
- char buffer[MAX_TERMINFO_LENGTH];
+ char buffer[MAX_TERMINFO_LENGTH + EXTRA_CAP];
+ int limit = (VALID_STRING(value) ? (int) strlen(value) : 0);
+ const char *cap = infodump ? "use" : "tc";
if (TcOutput())
trim_trailing();
+ if (limit == 0) {
+ _nc_warning("empty \"%s\" field", cap);
+ value = "";
+ } else if (limit > MAX_ALIAS) {
+ _nc_warning("\"%s\" field too long (%d), limit to %d",
+ cap, limit, MAX_ALIAS);
+ limit = MAX_ALIAS;
+ }
_nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer))
- "%s%s", infodump ? "use=" : "tc=", name);
+ "%s=%.*s", cap, limit, value);
wrap_concat1(buffer);
}
@@ -1672,7 +1693,7 @@ show_entry(void)
outbuf.used = (size_t) j;
} else if (!infodump && ch == '\\') {
outbuf.used = (size_t) j;
- } else if (ch == delim && (j == 0 || outbuf.text[j - 1] != '\\')) {
+ } else if (ch == delim && (outbuf.text[j - 1] != '\\')) {
outbuf.used = (size_t) (j + 1);
} else {
break;
@@ -1761,9 +1782,8 @@ void
repair_acsc(TERMTYPE2 *tp)
{
if (VALID_STRING(acs_chars)) {
- size_t n, m;
+ size_t n;
char mapped[256];
- char extra = 0;
unsigned source;
unsigned target;
bool fix_needed = FALSE;
@@ -1778,7 +1798,11 @@ repair_acsc(TERMTYPE2 *tp)
if (acs_chars[n + 1])
n++;
}
+
if (fix_needed) {
+ size_t m;
+ char extra = 0;
+
memset(mapped, 0, sizeof(mapped));
for (n = 0; acs_chars[n] != 0; n++) {
source = UChar(acs_chars[n]);
diff --git a/progs/dump_entry.h b/progs/dump_entry.h
index 98551914cd63..39e856fb6171 100644
--- a/progs/dump_entry.h
+++ b/progs/dump_entry.h
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2020,2021 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -34,7 +34,7 @@
****************************************************************************/
/*
- * $Id: dump_entry.h,v 1.43 2020/11/14 18:16:57 tom Exp $
+ * $Id: dump_entry.h,v 1.44 2021/04/18 19:56:09 tom Exp $
*
* Dump control definitions and variables
*/
@@ -67,8 +67,11 @@
#define CMP_STRING 2 /* comparison on strings */
#define CMP_USE 3 /* comparison on use capabilities */
+#ifndef _TERMSORT_H
typedef unsigned PredType;
typedef unsigned PredIdx;
+#endif
+
typedef int (*PredFunc) (PredType, PredIdx);
typedef void (*PredHook) (PredType, PredIdx, const char *);
diff --git a/progs/infocmp.c b/progs/infocmp.c
index dbdbdc2dfe35..7932203ac2b1 100644
--- a/progs/infocmp.c
+++ b/progs/infocmp.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020-2022,2023 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -43,7 +43,7 @@
#include <dump_entry.h>
-MODULE_ID("$Id: infocmp.c,v 1.145 2020/07/07 20:28:47 tom Exp $")
+MODULE_ID("$Id: infocmp.c,v 1.163 2023/12/16 17:27:47 tom Exp $")
#define MAX_STRING 1024 /* maximum formatted string */
@@ -94,7 +94,7 @@ typedef struct {
static ENTERED *entered;
#undef ExitProgram
-static void ExitProgram(int code) GCC_NORETURN;
+static GCC_NORETURN void ExitProgram(int code);
/* prototype is to get gcc to accept the noreturn attribute */
static void
ExitProgram(int code)
@@ -124,17 +124,19 @@ failed(const char *s)
ExitProgram(EXIT_FAILURE);
}
-static char *
-canonical_name(char *ptr, char *buf)
+static void
+canonical_name(char *source, char *target)
/* extract the terminal type's primary name */
{
- char *bp;
-
- _nc_STRCPY(buf, ptr, NAMESIZE);
- if ((bp = strchr(buf, '|')) != 0)
- *bp = '\0';
+ int limit = NAMESIZE;
- return (buf);
+ while (--limit > 0) {
+ char ch = *source++;
+ if (ch == '|')
+ break;
+ *target++ = ch;
+ }
+ *target = '\0';
}
static bool
@@ -156,7 +158,7 @@ no_numeric(int value)
}
static bool
-no_string(char *value)
+no_string(const char *const value)
{
bool result = (value == ABSENT_STRING);
if (!strcmp(s_absent, s_cancel))
@@ -185,10 +187,21 @@ capcmp(PredIdx idx, const char *s, const char *t)
return (_nc_capcmp(s, t));
}
+/*
+ * Predicate function to use for "use=" decompilation.
+ *
+ * Return value is used in fmt_entry:
+ * FAIL show nothing for this capability.
+ * FALSE show cancel for booleans (a compromise)
+ * TRUE show capability
+ *
+ * The only difference between FALSE/TRUE returns is in the treatment of
+ * booleans.
+ */
static int
use_predicate(unsigned type, PredIdx idx)
-/* predicate function to use for use decompilation */
{
+ int result = FAIL;
ENTRY *ep;
switch (type) {
@@ -207,16 +220,18 @@ use_predicate(unsigned type, PredIdx idx)
* unlike numbers and strings, whose cancelled/absent state is
* recorded in the terminfo database.
*/
- for (ep = &entries[1]; ep < entries + termcount; ep++)
- if (ep->tterm.Booleans[idx] == TRUE) {
- is_set = entries[0].tterm.Booleans[idx];
- break;
+ if (idx < NUM_BOOLEANS(&(entries[0].tterm))) {
+ for (ep = &entries[1]; ep < entries + termcount; ep++) {
+ if (idx < NUM_BOOLEANS(&(ep->tterm))
+ && (is_set = ep->tterm.Booleans[idx])) {
+ break;
+ }
}
- if (is_set != entries[0].tterm.Booleans[idx])
- return (!is_set);
- else
- return (FAIL);
+ if (is_set != entries[0].tterm.Booleans[idx])
+ result = (!is_set);
+ }
}
+ break;
case NUMBER:
{
@@ -227,45 +242,56 @@ use_predicate(unsigned type, PredIdx idx)
* capability gets the first non-default value found
* in the sequence of use entries'.
*/
- for (ep = &entries[1]; ep < entries + termcount; ep++)
- if (VALID_NUMERIC(ep->tterm.Numbers[idx])) {
- value = ep->tterm.Numbers[idx];
- break;
- }
+ if (idx < NUM_NUMBERS(&(entries[0].tterm))) {
+ for (ep = &entries[1]; ep < entries + termcount; ep++)
+ if (idx < NUM_NUMBERS(&(ep->tterm))
+ && VALID_NUMERIC(ep->tterm.Numbers[idx])) {
+ value = ep->tterm.Numbers[idx];
+ break;
+ }
- if (value != entries[0].tterm.Numbers[idx])
- return (value != ABSENT_NUMERIC);
- else
- return (FAIL);
+ if (value != entries[0].tterm.Numbers[idx])
+ result = (value != ABSENT_NUMERIC);
+ }
}
+ break;
case STRING:
{
- char *termstr, *usestr = ABSENT_STRING;
-
- termstr = entries[0].tterm.Strings[idx];
+ char *termstr = entries[0].tterm.Strings[idx];
+ char *usestr = ABSENT_STRING;
/*
* We take the semantics of multiple uses to be 'each
* capability gets the first non-default value found
* in the sequence of use entries'.
*/
- for (ep = &entries[1]; ep < entries + termcount; ep++)
- if (ep->tterm.Strings[idx]) {
- usestr = ep->tterm.Strings[idx];
- break;
- }
+ if (idx < NUM_STRINGS(&(entries[0].tterm))) {
+ for (ep = &entries[1]; ep < entries + termcount; ep++)
+ if (idx < NUM_STRINGS(&(ep->tterm))
+ && ep->tterm.Strings[idx]) {
+ usestr = ep->tterm.Strings[idx];
+ break;
+ }
- if (usestr == ABSENT_STRING && termstr == ABSENT_STRING)
- return (FAIL);
- else if (!usestr || !termstr || capcmp(idx, usestr, termstr))
- return (TRUE);
- else
- return (FAIL);
+ if (usestr == CANCELLED_STRING && termstr == ABSENT_STRING)
+ result = (FAIL);
+ else if (usestr == CANCELLED_STRING && termstr == CANCELLED_STRING)
+ result = (TRUE);
+ else if (usestr == ABSENT_STRING && termstr == ABSENT_STRING)
+ result = (FAIL);
+ else if (!usestr || !termstr || capcmp(idx, usestr, termstr))
+ result = (TRUE);
+ }
}
+ break;
+
+ default:
+ result = FALSE;
+ break;
}
- return (FALSE); /* pacify compiler */
+ return (result);
}
static bool
@@ -322,16 +348,17 @@ static void
print_uses(ENTRY * ep, FILE *fp)
/* print an entry's use references */
{
- unsigned i;
-
- if (!ep->nuses)
+ if (!ep->nuses) {
fputs("NULL", fp);
- else
+ } else {
+ unsigned i;
+
for (i = 0; i < ep->nuses; i++) {
fputs(ep->uses[i].name, fp);
if (i < ep->nuses - 1)
fputs(" ", fp);
}
+ }
}
static const char *
@@ -418,7 +445,7 @@ show_comparing(char **names)
/*
* ncurses stores two types of non-standard capabilities:
- * a) capabilities listed past the "STOP-HERE" comment in the Caps file.
+ * a) capabilities listed past the "STOP-HERE" comment in the Caps file.
* These are used in the terminfo source file to provide data for termcaps,
* e.g., when there is no equivalent capability in terminfo, as well as for
* widely-used non-standard capabilities.
@@ -835,6 +862,8 @@ analyze_string(const char *name, const char *cap, TERMTYPE2 *tp)
char *cp = tp->Strings[i];
/* don't use function-key capabilities */
+ if (strnames[i] == NULL)
+ continue;
if (strnames[i][0] == 'k' && strnames[i][1] == 'f')
continue;
@@ -900,7 +929,6 @@ analyze_string(const char *name, const char *cap, TERMTYPE2 *tp)
sizeof(buf2));
_nc_STRNCPY(buf3, sp + csi, len);
buf3[len] = '\0';
- len += (size_t) csi + 1;
expansion = lookup_params(std_modes, buf2, buf3);
}
@@ -921,7 +949,6 @@ analyze_string(const char *name, const char *cap, TERMTYPE2 *tp)
sizeof(buf2));
_nc_STRNCPY(buf3, sp + csi + 1, len);
buf3[len] = '\0';
- len += (size_t) csi + 2;
expansion = lookup_params(private_modes, buf2, buf3);
}
@@ -1129,8 +1156,8 @@ file_comparison(int argc, char *argv[])
if (entryeq(&qp->tterm, &rp->tterm) && useeq(qp, rp)) {
char name1[NAMESIZE], name2[NAMESIZE];
- (void) canonical_name(qp->tterm.term_names, name1);
- (void) canonical_name(rp->tterm.term_names, name2);
+ canonical_name(qp->tterm.term_names, name1);
+ canonical_name(rp->tterm.term_names, name2);
(void) printf("%s = %s\n", name1, name2);
}
@@ -1158,8 +1185,8 @@ file_comparison(int argc, char *argv[])
entries[0] = *qp;
entries[1] = *rp;
- (void) canonical_name(qp->tterm.term_names, name1);
- (void) canonical_name(rp->tterm.term_names, name2);
+ canonical_name(qp->tterm.term_names, name1);
+ canonical_name(rp->tterm.term_names, name2);
switch (compare) {
case C_DIFFERENCE:
@@ -1305,9 +1332,9 @@ dump_initializers(TERMTYPE2 *term)
name_initializer("alias"), entries->tterm.term_names);
for_each_string(n, term) {
- char buf[MAX_STRING], *sp, *tp;
-
if (VALID_STRING(term->Strings[n])) {
+ char buf[MAX_STRING], *sp, *tp;
+
tp = buf;
#define TP_LIMIT ((MAX_STRING - 5) - (size_t)(tp - buf))
*tp++ = '"';
@@ -1510,6 +1537,8 @@ show_databases(void)
#if NO_LEAKS
#define MAIN_LEAKS() \
+ _nc_free_termtype2(&entries[0].tterm); \
+ _nc_free_termtype2(&entries[1].tterm); \
free(myargv); \
free(tfile); \
free(tname)
@@ -1529,7 +1558,7 @@ main(int argc, char *argv[])
char **myargv;
char *firstdir, *restdir;
- int c, i, len;
+ int c;
bool formatted = FALSE;
bool filecompare = FALSE;
int initdump = 0;
@@ -1720,7 +1749,7 @@ main(int argc, char *argv[])
case 'v':
itrace = (unsigned) optarg_to_number();
- set_trace_level(itrace);
+ use_verbosity(itrace);
break;
case 'W':
@@ -1853,8 +1882,16 @@ main(int argc, char *argv[])
}
#if NCURSES_XNAMES
- if (termcount > 1)
- _nc_align_termtype(&entries[0].tterm, &entries[1].tterm);
+ if (termcount > 1) {
+ /*
+ * User-defined capabilities in different terminal descriptions
+ * may have the same name/type but different indices. Line up
+ * the names to use comparable indices. We may have more than two
+ * entries to compare when processing the "-u" option.
+ */
+ for (c = 1; c < termcount; ++c)
+ _nc_align_termtype(&entries[c].tterm, &entries[0].tterm);
+ }
#endif
/* dump as C initializer for the terminal type */
@@ -1881,6 +1918,8 @@ main(int argc, char *argv[])
analyze_string("rmkx", keypad_local, &entries[0].tterm);
#undef CUR
} else {
+ int i;
+ int len;
/*
* Here's where the real work gets done
diff --git a/progs/modules b/progs/modules
index f2bba15c1eb8..349061ff5542 100644
--- a/progs/modules
+++ b/progs/modules
@@ -1,7 +1,7 @@
-# $Id: modules,v 1.22 2020/02/02 23:34:34 tom Exp $
+# $Id: modules,v 1.25 2021/04/18 17:21:03 tom Exp $
# Program modules (some are in ncurses lib!)
##############################################################################
-# Copyright 2020 Thomas E. Dickey #
+# Copyright 2020,2021 Thomas E. Dickey #
# Copyright 1998-2014,2016 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -37,13 +37,13 @@ clear progs $(srcdir) $(HEADER_DEPS) tty_settings.h
tic progs $(srcdir) $(HEADER_DEPS) transform.h $(srcdir)/dump_entry.h $(srcdir)/tparm_type.h
toe progs $(srcdir) $(HEADER_DEPS) $(INCDIR)/hashed_db.h
clear_cmd progs $(srcdir) $(HEADER_DEPS) clear_cmd.h
-dump_entry progs $(srcdir) $(HEADER_DEPS) $(srcdir)/dump_entry.h ../include/parametrized.h $(INCDIR)/capdefaults.c termsort.c
+dump_entry progs $(srcdir) $(HEADER_DEPS) $(srcdir)/dump_entry.h ../include/parametrized.h $(INCDIR)/capdefaults.c termsort.h
infocmp progs $(srcdir) $(HEADER_DEPS) $(srcdir)/dump_entry.h
reset_cmd progs $(srcdir) $(HEADER_DEPS) reset_cmd.h tty_settings.h
tabs progs $(srcdir) $(HEADER_DEPS)
tparm_type progs $(srcdir) $(HEADER_DEPS) $(srcdir)/tparm_type.h
-tput progs $(srcdir) $(HEADER_DEPS) transform.h $(srcdir)/dump_entry.h $(srcdir)/tparm_type.h termsort.c reset_cmd.h tty_settings.h
-tset progs $(srcdir) $(HEADER_DEPS) transform.h $(srcdir)/dump_entry.h ../include/termcap.h reset_cmd.h tty_settings.h
+tput progs $(srcdir) $(HEADER_DEPS) transform.h $(srcdir)/tparm_type.h reset_cmd.h tty_settings.h
+tset progs $(srcdir) $(HEADER_DEPS) transform.h ../include/termcap.h reset_cmd.h tty_settings.h
transform progs $(srcdir) $(HEADER_DEPS) transform.h
tty_settings progs $(srcdir) $(HEADER_DEPS) tty_settings.h
diff --git a/progs/progs.priv.h b/progs/progs.priv.h
index 3dc177d0a866..fea18b8d72c3 100644
--- a/progs/progs.priv.h
+++ b/progs/progs.priv.h
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2022,2024 Thomas E. Dickey *
* Copyright 1998-2015,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -31,7 +31,7 @@
* Author: Thomas E. Dickey 1997-on *
****************************************************************************/
/*
- * $Id: progs.priv.h,v 1.52 2020/09/05 19:35:06 tom Exp $
+ * $Id: progs.priv.h,v 1.62 2024/04/08 17:28:28 tom Exp $
*
* progs.priv.h
*
@@ -41,28 +41,9 @@
#ifndef PROGS_PRIV_H
#define PROGS_PRIV_H 1
-#include <ncurses_cfg.h>
+#include <curses.priv.h>
-#if USE_RCS_IDS
-#define MODULE_ID(id) static const char Ident[] = id;
-#else
-#define MODULE_ID(id) /*nothing */
-#endif
-
-#include <stdlib.h>
#include <ctype.h>
-#include <string.h>
-#include <sys/types.h>
-
-#if HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#if HAVE_LIMITS_H
-# include <limits.h>
-#elif HAVE_SYS_PARAM_H
-# include <sys/param.h>
-#endif
#if HAVE_DIRENT_H
# include <dirent.h>
@@ -90,21 +71,6 @@
# endif
#endif
-#if HAVE_INTTYPES_H
-# include <inttypes.h>
-#else
-# if HAVE_STDINT_H
-# include <stdint.h>
-# endif
-#endif
-
-#include <assert.h>
-#include <errno.h>
-
-#if DECL_ERRNO
-extern int errno;
-#endif
-
#if HAVE_GETOPT_H
#include <getopt.h>
#elif !defined(HAVE_GETOPT_HEADER)
@@ -115,27 +81,7 @@ extern char *optarg;
extern int optind;
#endif /* HAVE_GETOPT_H */
-#undef _NC_WINDOWS
-#if (defined(_WIN32) || defined(_WIN64))
-#define _NC_WINDOWS 1
-#endif
-
-#define NCURSES_INTERNALS 1
-#define NCURSES_OPAQUE 0
-
-#include <curses.h>
-
-#if !(defined(NCURSES_WGETCH_EVENTS) && defined(NEED_KEY_EVENT))
-#undef KEY_EVENT /* reduce compiler-warnings with Visual C++ */
-#endif
-
-#include <term_entry.h>
-#include <nc_termios.h>
#include <tic.h>
-#include <nc_tparm.h>
-
-#include <nc_string.h>
-#include <nc_alloc.h>
#if HAVE_NC_FREEALL
#undef ExitProgram
@@ -146,77 +92,12 @@ extern int optind;
#endif
#endif
-#define VtoTrace(opt) (unsigned) ((opt > 0) ? opt : (opt == 0))
-
/* error-returns for tput */
#define ErrUsage 2
#define ErrTermType 3
#define ErrCapName 4
#define ErrSystem(n) (4 + (n))
-#if defined(__GNUC__) && defined(_FORTIFY_SOURCE)
-#define IGNORE_RC(func) errno = (int) func
-#else
-#define IGNORE_RC(func) (void) func
-#endif /* gcc workarounds */
-
-/* usually in <unistd.h> */
-#ifndef STDIN_FILENO
-#define STDIN_FILENO 0
-#endif
-
-#ifndef STDOUT_FILENO
-#define STDOUT_FILENO 1
-#endif
-
-#ifndef STDERR_FILENO
-#define STDERR_FILENO 2
-#endif
-
-#ifndef EXIT_SUCCESS
-#define EXIT_SUCCESS 0
-#endif
-
-#ifndef EXIT_FAILURE
-#define EXIT_FAILURE 1
-#endif
-
-#ifndef R_OK
-#define R_OK 4 /* Test for readable. */
-#endif
-
-#ifndef W_OK
-#define W_OK 2 /* Test for writable. */
-#endif
-
-#ifndef X_OK
-#define X_OK 1 /* Test for executable. */
-#endif
-
-#ifndef F_OK
-#define F_OK 0 /* Test for existence. */
-#endif
-
-/* usually in <unistd.h> */
-#ifndef STDOUT_FILENO
-#define STDOUT_FILENO 1
-#endif
-
-#ifndef STDERR_FILENO
-#define STDERR_FILENO 2
-#endif
-
-/* may be in limits.h, included from various places */
-#ifndef PATH_MAX
-# if defined(_POSIX_PATH_MAX)
-# define PATH_MAX _POSIX_PATH_MAX
-# elif defined(MAXPATHLEN)
-# define PATH_MAX MAXPATHLEN
-# else
-# define PATH_MAX 255 /* the Posix minimum pathsize */
-# endif
-#endif
-
/* We use isascii only to guard against use of 7-bit ctype tables in the
* isprint test in infocmp.
*/
@@ -229,16 +110,28 @@ extern int optind;
# endif
#endif
-#define UChar(c) ((unsigned char)(c))
-
-#define SIZEOF(v) (sizeof(v)/sizeof(v[0]))
-
-#define NCURSES_EXT_NUMBERS (NCURSES_EXT_COLORS && HAVE_INIT_EXTENDED_COLOR)
+#define VtoTrace(opt) (unsigned) ((opt > 0) ? opt : (opt == 0))
-#if NCURSES_EXT_NUMBERS
+/*
+ * If configured for tracing, the debug- and trace-output are merged together
+ * in the trace file for "upper" levels of the verbose option.
+ */
+#ifdef TRACE
+#define use_verbosity(level) do { \
+ set_trace_level(level); \
+ if (_nc_tracing > DEBUG_LEVEL(2)) \
+ _nc_tracing |= TRACE_MAXIMUM; \
+ else if (_nc_tracing == DEBUG_LEVEL(2)) \
+ _nc_tracing |= TRACE_ORDINARY; \
+ if (level >= 2) \
+ curses_trace(_nc_tracing); \
+ } while (0)
#else
-#define _nc_free_termtype2(t) _nc_free_termtype(t)
-#define _nc_read_entry2(n,f,t) _nc_read_entry(n,f,t)
+#define use_verbosity(level) do { set_trace_level(level); } while (0)
+#endif
+
+#ifndef CUR
+#define CUR ((TERMTYPE *)(cur_term))->
#endif
#endif /* PROGS_PRIV_H */
diff --git a/progs/reset_cmd.c b/progs/reset_cmd.c
index 5e517cc74e9e..6ae3b673e340 100644
--- a/progs/reset_cmd.c
+++ b/progs/reset_cmd.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2023,2024 Thomas E. Dickey *
* Copyright 2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -47,13 +47,13 @@
#endif
#if NEED_PTEM_H
-/* they neglected to define struct winsize in termios.h -- it's only
+/* they neglected to define struct winsize in termios.h -- it is only
in termio.h */
#include <sys/stream.h>
#include <sys/ptem.h>
#endif
-MODULE_ID("$Id: reset_cmd.c,v 1.24 2020/11/21 22:11:10 tom Exp $")
+MODULE_ID("$Id: reset_cmd.c,v 1.37 2024/04/08 17:29:34 tom Exp $")
/*
* SCO defines TIOCGSIZE and the corresponding struct. Other systems (SunOS,
@@ -75,12 +75,15 @@ MODULE_ID("$Id: reset_cmd.c,v 1.24 2020/11/21 22:11:10 tom Exp $")
# endif
#endif
+#define set_flags(target, mask) target |= mask
+#define clear_flags(target, mask) target &= ~((unsigned)(mask))
+
static FILE *my_file;
static bool use_reset = FALSE; /* invoked as reset */
static bool use_init = FALSE; /* invoked as init */
-static void
+static GCC_NORETURN void
failed(const char *msg)
{
int code = errno;
@@ -102,7 +105,7 @@ cat_file(char *file)
bool sent = FALSE;
if (file != 0) {
- if ((fp = fopen(file, "r")) == 0)
+ if ((fp = safe_fopen(file, "r")) == 0)
failed(file);
while ((nr = fread(buf, sizeof(char), sizeof(buf), fp)) != 0) {
@@ -189,12 +192,90 @@ out_char(int c)
tty_settings->c_cc[item] = CHK(tty_settings->c_cc[item], value)
/*
+ * Simplify ifdefs
+ */
+#ifndef BSDLY
+#define BSDLY 0
+#endif
+#ifndef CRDLY
+#define CRDLY 0
+#endif
+#ifndef ECHOCTL
+#define ECHOCTL 0
+#endif
+#ifndef ECHOKE
+#define ECHOKE 0
+#endif
+#ifndef ECHOPRT
+#define ECHOPRT 0
+#endif
+#ifndef FFDLY
+#define FFDLY 0
+#endif
+#ifndef IMAXBEL
+#define IMAXBEL 0
+#endif
+#ifndef IUCLC
+#define IUCLC 0
+#endif
+#ifndef IXANY
+#define IXANY 0
+#endif
+#ifndef NLDLY
+#define NLDLY 0
+#endif
+#ifndef OCRNL
+#define OCRNL 0
+#endif
+#ifndef OFDEL
+#define OFDEL 0
+#endif
+#ifndef OFILL
+#define OFILL 0
+#endif
+#ifndef OLCUC
+#define OLCUC 0
+#endif
+#ifndef ONLCR
+#define ONLCR 0
+#endif
+#ifndef ONLRET
+#define ONLRET 0
+#endif
+#ifndef ONOCR
+#define ONOCR 0
+#endif
+#ifndef OXTABS
+#define OXTABS 0
+#endif
+#ifndef TAB3
+#define TAB3 0
+#endif
+#ifndef TABDLY
+#define TABDLY 0
+#endif
+#ifndef TOSTOP
+#define TOSTOP 0
+#endif
+#ifndef VTDLY
+#define VTDLY 0
+#endif
+#ifndef XCASE
+#define XCASE 0
+#endif
+
+/*
* Reset the terminal mode bits to a sensible state. Very useful after
* a child program dies in raw mode.
*/
void
-reset_tty_settings(int fd, TTY * tty_settings)
+reset_tty_settings(int fd, TTY * tty_settings, int noset)
{
+ unsigned mask;
+#ifdef TIOCMGET
+ int modem_bits;
+#endif
+
GET_TTY(fd, tty_settings);
#ifdef TERMIOS
@@ -203,6 +284,9 @@ reset_tty_settings(int fd, TTY * tty_settings)
#endif
reset_char(VEOF, CEOF);
reset_char(VERASE, CERASE);
+#if defined(VERASE2) && defined(CERASE2)
+ reset_char(VERASE2, CERASE2);
+#endif
#if defined(VFLUSH) && defined(CFLUSH)
reset_char(VFLUSH, CFLUSH);
#endif
@@ -228,108 +312,69 @@ reset_tty_settings(int fd, TTY * tty_settings)
reset_char(VWERASE, CWERASE);
#endif
- tty_settings->c_iflag &= ~((unsigned) (IGNBRK
- | PARMRK
- | INPCK
- | ISTRIP
- | INLCR
- | IGNCR
-#ifdef IUCLC
- | IUCLC
-#endif
-#ifdef IXANY
- | IXANY
-#endif
- | IXOFF));
-
- tty_settings->c_iflag |= (BRKINT
- | IGNPAR
- | ICRNL
- | IXON
-#ifdef IMAXBEL
- | IMAXBEL
-#endif
- );
-
- tty_settings->c_oflag &= ~((unsigned) (0
-#ifdef OLCUC
- | OLCUC
-#endif
-#ifdef OCRNL
- | OCRNL
-#endif
-#ifdef ONOCR
- | ONOCR
-#endif
-#ifdef ONLRET
- | ONLRET
-#endif
-#ifdef OFILL
- | OFILL
-#endif
-#ifdef OFDEL
- | OFDEL
-#endif
-#ifdef NLDLY
- | NLDLY
-#endif
-#ifdef CRDLY
- | CRDLY
-#endif
-#ifdef TABDLY
- | TABDLY
-#endif
-#ifdef BSDLY
- | BSDLY
-#endif
-#ifdef VTDLY
- | VTDLY
-#endif
-#ifdef FFDLY
- | FFDLY
-#endif
- ));
-
- tty_settings->c_oflag |= (OPOST
-#ifdef ONLCR
- | ONLCR
-#endif
- );
-
- tty_settings->c_cflag &= ~((unsigned) (CSIZE
- | CSTOPB
- | PARENB
- | PARODD
- | CLOCAL));
- tty_settings->c_cflag |= (CS8 | CREAD);
- tty_settings->c_lflag &= ~((unsigned) (ECHONL
- | NOFLSH
-#ifdef TOSTOP
- | TOSTOP
-#endif
-#ifdef ECHOPTR
- | ECHOPRT
-#endif
-#ifdef XCASE
- | XCASE
-#endif
- ));
-
- tty_settings->c_lflag |= (ISIG
- | ICANON
- | ECHO
- | ECHOE
- | ECHOK
-#ifdef ECHOCTL
- | ECHOCTL
-#endif
-#ifdef ECHOKE
- | ECHOKE
-#endif
- );
-#endif
-
- SET_TTY(fd, tty_settings);
+ clear_flags(tty_settings->c_iflag, (IGNBRK
+ | PARMRK
+ | INPCK
+ | ISTRIP
+ | INLCR
+ | IGNCR
+ | IUCLC
+ | IXANY
+ | IXOFF));
+
+ set_flags(tty_settings->c_iflag, (BRKINT
+ | IGNPAR
+ | ICRNL
+ | IXON
+ | IMAXBEL));
+
+ clear_flags(tty_settings->c_oflag, (0
+ | OLCUC
+ | OCRNL
+ | ONOCR
+ | ONLRET
+ | OFILL
+ | OFDEL
+ | NLDLY
+ | CRDLY
+ | TABDLY
+ | BSDLY
+ | VTDLY
+ | FFDLY));
+
+ set_flags(tty_settings->c_oflag, (OPOST
+ | ONLCR));
+
+ mask = (CSIZE | CSTOPB | PARENB | PARODD);
+#ifdef TIOCMGET
+ /* leave clocal alone if this appears to use a modem */
+ if (ioctl(fd, TIOCMGET, &modem_bits) == -1)
+ mask |= CLOCAL;
+#else
+ /* cannot check - use the behavior from tset */
+ mask |= CLOCAL;
+#endif
+ clear_flags(tty_settings->c_cflag, mask);
+
+ set_flags(tty_settings->c_cflag, (CS8 | CREAD));
+ clear_flags(tty_settings->c_lflag, (ECHONL
+ | NOFLSH
+ | TOSTOP
+ | ECHOPRT
+ | XCASE));
+
+ set_flags(tty_settings->c_lflag, (ISIG
+ | ICANON
+ | ECHO
+ | ECHOE
+ | ECHOK
+ | ECHOCTL
+ | ECHOKE));
+#endif /* TERMIOS */
+
+ if (!noset) {
+ SET_TTY(fd, tty_settings);
+ }
}
/*
@@ -400,29 +445,23 @@ set_conversions(TTY * tty_settings)
#if defined(EXP_WIN32_DRIVER)
/* FIXME */
#else
-#ifdef ONLCR
- tty_settings->c_oflag |= ONLCR;
-#endif
- tty_settings->c_iflag |= ICRNL;
- tty_settings->c_lflag |= ECHO;
-#ifdef OXTABS
- tty_settings->c_oflag |= OXTABS;
-#endif /* OXTABS */
+ set_flags(tty_settings->c_oflag, ONLCR);
+ set_flags(tty_settings->c_iflag, ICRNL);
+ set_flags(tty_settings->c_lflag, ECHO);
+ set_flags(tty_settings->c_oflag, OXTABS);
/* test used to be tgetflag("NL") */
if (VALID_STRING(newline) && newline[0] == '\n' && !newline[1]) {
/* Newline, not linefeed. */
-#ifdef ONLCR
- tty_settings->c_oflag &= ~((unsigned) ONLCR);
-#endif
- tty_settings->c_iflag &= ~((unsigned) ICRNL);
+ clear_flags(tty_settings->c_oflag, ONLCR);
+ clear_flags(tty_settings->c_iflag, ICRNL);
}
-#ifdef OXTABS
+#if OXTABS
/* test used to be tgetflag("pt") */
if (VALID_STRING(set_tab) && VALID_STRING(clear_all_tabs))
- tty_settings->c_oflag &= ~OXTABS;
+ clear_flags(tty_settings->c_oflag, OXTABS);
#endif /* OXTABS */
- tty_settings->c_lflag |= (ECHOE | ECHOK);
+ set_flags(tty_settings->c_lflag, (ECHOE | ECHOK));
#endif
}
@@ -488,7 +527,7 @@ send_init_strings(int fd GCC_UNUSED, TTY * old_settings)
bool need_flush = FALSE;
(void) old_settings;
-#ifdef TAB3
+#if TAB3
if (old_settings != 0 &&
old_settings->c_oflag & (TAB3 | ONLCR | OCRNL | ONLRET)) {
old_settings->c_oflag &= (TAB3 | ONLCR | OCRNL | ONLRET);
@@ -510,22 +549,22 @@ send_init_strings(int fd GCC_UNUSED, TTY * old_settings)
if (VALID_STRING(clear_margins)) {
need_flush |= sent_string(clear_margins);
- } else
+ }
#if defined(set_lr_margin)
- if (VALID_STRING(set_lr_margin)) {
+ else if (VALID_STRING(set_lr_margin)) {
need_flush |= sent_string(TIPARM_2(set_lr_margin, 0, columns - 1));
- } else
+ }
#endif
#if defined(set_left_margin_parm) && defined(set_right_margin_parm)
- if (VALID_STRING(set_left_margin_parm)
- && VALID_STRING(set_right_margin_parm)) {
+ else if (VALID_STRING(set_left_margin_parm)
+ && VALID_STRING(set_right_margin_parm)) {
need_flush |= sent_string(TIPARM_1(set_left_margin_parm, 0));
need_flush |= sent_string(TIPARM_1(set_right_margin_parm,
columns - 1));
- } else
+ }
#endif
- if (VALID_STRING(set_left_margin)
- && VALID_STRING(set_right_margin)) {
+ else if (VALID_STRING(set_left_margin)
+ && VALID_STRING(set_right_margin)) {
need_flush |= to_left_margin();
need_flush |= sent_string(set_left_margin);
if (VALID_STRING(parm_right_cursor)) {
@@ -638,7 +677,7 @@ print_tty_chars(TTY * old_settings, TTY * new_settings)
* size was set.
*/
void
-set_window_size(int fd, short *high, short *wide)
+set_window_size(int fd, NCURSES_INT2 *high, NCURSES_INT2 *wide)
{
STRUCT_WINSIZE win;
(void) ioctl(fd, IOCTL_GET_WINSIZE, &win);
diff --git a/progs/reset_cmd.h b/progs/reset_cmd.h
index 7d457154996f..43aee28f7e8c 100644
--- a/progs/reset_cmd.h
+++ b/progs/reset_cmd.h
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020-2021,2024 Thomas E. Dickey *
* Copyright 2016 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -32,7 +32,7 @@
****************************************************************************/
/*
- * $Id: reset_cmd.h,v 1.8 2020/02/02 23:34:34 tom Exp $
+ * $Id: reset_cmd.h,v 1.11 2024/04/08 17:29:34 tom Exp $
*
* Utility functions for resetting terminal.
*/
@@ -51,12 +51,12 @@ extern bool send_init_strings(int /* fd */, TTY * /* old_settings */);
extern void print_tty_chars(TTY * /* old_settings */, TTY * /* new_settings */);
extern void reset_flush(void);
extern void reset_start(FILE * /* fp */, bool /* is_reset */, bool /* is_init */ );
-extern void reset_tty_settings(int /* fd */, TTY * /* tty_settings */);
+extern void reset_tty_settings(int /* fd */, TTY * /* tty_settings */, int /* noset */);
extern void set_control_chars(TTY * /* tty_settings */, int /* erase */, int /* intr */, int /* kill */);
extern void set_conversions(TTY * /* tty_settings */);
#if HAVE_SIZECHANGE
-extern void set_window_size(int /* fd */, short * /* high */, short * /* wide */);
+extern void set_window_size(int /* fd */, NCURSES_INT2 * /* high */, NCURSES_INT2 * /* wide */);
#endif
extern const char *_nc_progname;
diff --git a/progs/tabs.c b/progs/tabs.c
index 0539e85653ea..a630b044e0cc 100644
--- a/progs/tabs.c
+++ b/progs/tabs.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020-2022,2023 Thomas E. Dickey *
* Copyright 2008-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -39,9 +39,9 @@
#include <progs.priv.h>
#include <tty_settings.h>
-MODULE_ID("$Id: tabs.c,v 1.45 2020/05/27 23:47:22 tom Exp $")
+MODULE_ID("$Id: tabs.c,v 1.53 2023/11/04 20:46:09 tom Exp $")
-static void usage(void) GCC_NORETURN;
+static GCC_NORETURN void usage(void);
const char *_nc_progname;
static int max_cols;
@@ -59,14 +59,44 @@ putch(int c)
return putchar(c);
}
+static char *
+skip_csi(char *value)
+{
+ if (UChar(*value) == 0x9b)
+ ++value;
+ else if (!strncmp(value, "\033[", 2))
+ value += 2;
+ return value;
+}
+
+/*
+ * If the terminal uses ANSI clear_all_tabs, then it is not necessary to first
+ * move to the left margin before clearing tabs.
+ */
+static bool
+ansi_clear_tabs(void)
+{
+ bool result = FALSE;
+ if (VALID_STRING(clear_all_tabs)) {
+ char *param = skip_csi(clear_all_tabs);
+ if (!strcmp(param, "3g"))
+ result = TRUE;
+ }
+ return result;
+}
+
static void
do_tabs(int *tab_list)
{
int last = 1;
int stop;
+ bool first = TRUE;
- putchar('\r');
while ((stop = *tab_list++) > 0) {
+ if (first) {
+ first = FALSE;
+ putchar('\r');
+ }
if (last < stop) {
while (last++ < stop) {
if (last > max_cols)
@@ -75,7 +105,7 @@ do_tabs(int *tab_list)
}
}
if (stop <= max_cols) {
- tputs(TIPARM_1(set_tab, stop), 1, putch);
+ tputs(set_tab, 1, putch);
last = stop;
} else {
break;
@@ -84,8 +114,13 @@ do_tabs(int *tab_list)
putchar('\r');
}
+/*
+ * Decode a list of tab-stops from a string, returning an array of integers.
+ * If the margin is positive (because the terminal does not support margins),
+ * work around this by adding the margin to the decoded values.
+ */
static int *
-decode_tabs(const char *tab_list)
+decode_tabs(const char *tab_list, int margin)
{
int *result = typeCalloc(int, strlen(tab_list) + (unsigned) max_cols);
int n = 0;
@@ -93,15 +128,20 @@ decode_tabs(const char *tab_list)
int prior = 0;
int ch;
- if (result == 0)
+ if (result == NULL)
failed("decode_tabs");
+ if (margin < 0)
+ margin = 0;
+
while ((ch = *tab_list++) != '\0') {
if (isdigit(UChar(ch))) {
value *= 10;
value += (ch - '0');
+ if (value > max_cols)
+ value = max_cols;
} else if (ch == ',') {
- result[n] = value + prior;
+ result[n] = value + prior + margin;
if (n > 0 && result[n] <= result[n - 1]) {
fprintf(stderr,
"%s: tab-stops are not in increasing order: %d %d\n",
@@ -127,7 +167,7 @@ decode_tabs(const char *tab_list)
int step = value;
value = 1;
while (n < max_cols - 1) {
- result[n++] = value;
+ result[n++] = value + margin;
value += step;
}
}
@@ -135,7 +175,7 @@ decode_tabs(const char *tab_list)
/*
* Add the last value, if any.
*/
- result[n++] = value + prior;
+ result[n++] = value + prior + margin;
result[n] = 0;
}
@@ -143,10 +183,9 @@ decode_tabs(const char *tab_list)
}
static void
-print_ruler(int *tab_list)
+print_ruler(const int *const tab_list, const char *new_line)
{
int last = 0;
- int stop;
int n;
/* first print a readable ruler */
@@ -160,11 +199,12 @@ print_ruler(int *tab_list)
: (ch + 'A' - 10)));
printf("%.*s", ((max_cols - n) > 10) ? 10 : (max_cols - n), buffer);
}
- putchar('\n');
+ printf("%s", new_line);
/* now, print '*' for each stop */
for (n = 0, last = 0; (tab_list[n] > 0) && (last < max_cols); ++n) {
- stop = tab_list[n];
+ int stop = tab_list[n];
+
while (++last < stop) {
if (last <= max_cols) {
putchar('-');
@@ -181,7 +221,7 @@ print_ruler(int *tab_list)
}
while (++last <= max_cols)
putchar('-');
- putchar('\n');
+ printf("%s", new_line);
}
/*
@@ -189,7 +229,7 @@ print_ruler(int *tab_list)
* ruler.
*/
static void
-write_tabs(int *tab_list)
+write_tabs(int *tab_list, const char *new_line)
{
int stop;
@@ -199,7 +239,7 @@ write_tabs(int *tab_list)
/* also show a tab _past_ the stops */
if (stop < max_cols)
fputs("\t+", stdout);
- putchar('\n');
+ fputs(new_line, stdout);
}
/*
@@ -210,11 +250,11 @@ static char *
trimmed_tab_list(const char *source)
{
char *result = strdup(source);
- int ch, j, k, last;
-
if (result != 0) {
+ int j, k, last;
+
for (j = k = last = 0; result[j] != 0; ++j) {
- ch = UChar(result[j]);
+ int ch = UChar(result[j]);
if (isspace(ch)) {
if (last == '\0') {
continue;
@@ -295,6 +335,66 @@ add_to_tab_list(char **append, const char *value)
}
/*
+ * If the terminal supports it, (re)set the left margin and return true.
+ * Otherwise, return false.
+ */
+static bool
+do_set_margin(int margin, bool no_op)
+{
+ bool result = FALSE;
+
+ if (margin == 0) { /* 0 is special case for resetting */
+ if (VALID_STRING(clear_margins)) {
+ result = TRUE;
+ if (!no_op)
+ tputs(clear_margins, 1, putch);
+ }
+ } else if (margin-- < 0) { /* margin will be 0-based from here on */
+ result = TRUE;
+ } else if (VALID_STRING(set_left_margin)) {
+ result = TRUE;
+ if (!no_op) {
+ /*
+ * assuming we're on the first column of the line, move the cursor
+ * to the column at which we will set a margin.
+ */
+ if (VALID_STRING(column_address)) {
+ tputs(TIPARM_1(column_address, margin), 1, putch);
+ } else if (margin >= 1) {
+ if (VALID_STRING(parm_right_cursor)) {
+ tputs(TIPARM_1(parm_right_cursor, margin), 1, putch);
+ } else {
+ while (margin-- > 0)
+ putch(' ');
+ }
+ }
+ tputs(set_left_margin, 1, putch);
+ }
+ }
+#if defined(set_left_margin_parm) && defined(set_right_margin_parm)
+ else if (VALID_STRING(set_left_margin_parm)) {
+ result = TRUE;
+ if (!no_op) {
+ if (VALID_STRING(set_right_margin_parm)) {
+ tputs(TIPARM_1(set_left_margin_parm, margin), 1, putch);
+ } else {
+ tputs(TIPARM_2(set_left_margin_parm, margin, max_cols), 1, putch);
+ }
+ }
+ }
+#endif
+#if defined(set_lr_margin)
+ else if (VALID_STRING(set_lr_margin)) {
+ result = TRUE;
+ if (!no_op) {
+ tputs(TIPARM_2(set_lr_margin, margin, max_cols), 1, putch);
+ }
+ }
+#endif
+ return result;
+}
+
+/*
* Check for illegal characters in the tab-list.
*/
static bool
@@ -304,9 +404,11 @@ legal_tab_list(const char *tab_list)
if (tab_list != 0 && *tab_list != '\0') {
if (comma_is_needed(tab_list)) {
- int n, ch;
+ int n;
+
for (n = 0; tab_list[n] != '\0'; ++n) {
- ch = UChar(tab_list[n]);
+ int ch = UChar(tab_list[n]);
+
if (!(isdigit(ch) || ch == ',' || ch == '+')) {
fprintf(stderr,
"%s: unexpected character found '%c'\n",
@@ -320,8 +422,7 @@ legal_tab_list(const char *tab_list)
result = FALSE;
}
} else {
- fprintf(stderr, "%s: no tab-list given\n", _nc_progname);
- result = FALSE;
+ /* if no list given, default to "tabs -8" */
}
return result;
}
@@ -379,17 +480,18 @@ main(int argc, char *argv[])
int rc = EXIT_FAILURE;
bool debug = FALSE;
bool no_op = FALSE;
+ bool change_tty = FALSE;
int n, ch;
NCURSES_CONST char *term_name = 0;
char *append = 0;
const char *tab_list = 0;
+ const char *new_line = "\n";
+ int margin = -1;
TTY tty_settings;
int fd;
_nc_progname = _nc_rootname(argv[0]);
- fd = save_tty_settings(&tty_settings, FALSE);
-
if ((term_name = getenv("TERM")) == 0)
term_name = "ansi+tabs";
@@ -481,7 +583,10 @@ main(int argc, char *argv[])
}
break;
case '+':
- while ((ch = *++option) != '\0') {
+ if ((ch = *++option) != '\0') {
+ int digits = 0;
+ int number = 0;
+
switch (ch) {
case 'm':
/*
@@ -489,6 +594,17 @@ main(int argc, char *argv[])
* att510d implements smgl, which is needed to support
* this option.
*/
+ while ((ch = *++option) != '\0') {
+ if (isdigit(UChar(ch))) {
+ ++digits;
+ number = number * 10 + (ch - '0');
+ } else {
+ usage();
+ }
+ }
+ if (digits == 0)
+ number = 10;
+ margin = number;
break;
default:
/* special case of relative stops separated by spaces? */
@@ -512,9 +628,13 @@ main(int argc, char *argv[])
}
}
+ fd = save_tty_settings(&tty_settings, FALSE);
+
setupterm(term_name, fd, (int *) 0);
max_cols = (columns > 0) ? columns : 80;
+ if (margin > 0)
+ max_cols -= margin;
if (!VALID_STRING(clear_all_tabs)) {
fprintf(stderr,
@@ -525,24 +645,61 @@ main(int argc, char *argv[])
"%s: terminal type '%s' cannot set tabs\n",
_nc_progname, term_name);
} else if (legal_tab_list(tab_list)) {
- int *list = decode_tabs(tab_list);
+ int *list;
+
+ if (tab_list == NULL)
+ tab_list = add_to_tab_list(&append, "8");
+
+ if (!no_op) {
+#if defined(TERMIOS) && defined(OCRNL)
+ /* set tty modes to -ocrnl to allow \r */
+ if (isatty(STDOUT_FILENO)) {
+ TTY new_settings = tty_settings;
+ new_settings.c_oflag &= (unsigned) ~OCRNL;
+ update_tty_settings(&tty_settings, &new_settings);
+ change_tty = TRUE;
+ new_line = "\r\n";
+ }
+#endif
- if (!no_op)
+ if (!ansi_clear_tabs())
+ putch('\r');
tputs(clear_all_tabs, 1, putch);
+ }
+
+ if (margin >= 0) {
+ putch('\r');
+ if (margin > 0) {
+ /* reset existing margin before setting margin, to reduce
+ * problems moving left of the current margin.
+ */
+ if (do_set_margin(0, no_op))
+ putch('\r');
+ }
+ if (do_set_margin(margin, no_op))
+ margin = -1;
+ }
+
+ list = decode_tabs(tab_list, margin);
if (list != 0) {
if (!no_op)
do_tabs(list);
if (debug) {
fflush(stderr);
- printf("tabs %s\n", tab_list);
- print_ruler(list);
- write_tabs(list);
+ printf("tabs %s%s", tab_list, new_line);
+ print_ruler(list, new_line);
+ write_tabs(list, new_line);
}
free(list);
} else if (debug) {
fflush(stderr);
- printf("tabs %s\n", tab_list);
+ printf("tabs %s%s", tab_list, new_line);
+ }
+ if (!no_op) {
+ if (change_tty) {
+ restore_tty_settings();
+ }
}
rc = EXIT_SUCCESS;
}
diff --git a/progs/tic.c b/progs/tic.c
index 9b02a23216fa..fc77b34445ff 100644
--- a/progs/tic.c
+++ b/progs/tic.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2017,2018 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -49,7 +49,7 @@
#include <parametrized.h>
#include <transform.h>
-MODULE_ID("$Id: tic.c,v 1.291 2021/02/20 23:57:24 tom Exp $")
+MODULE_ID("$Id: tic.c,v 1.325 2024/03/02 19:33:22 tom Exp $")
#define STDIN_NAME "<stdin>"
@@ -116,8 +116,6 @@ free_namelist(char **src)
static void
cleanup(void)
{
- int rc;
-
#if NO_LEAKS
free_namelist(namelst);
_nc_leaks_dump_entry();
@@ -125,6 +123,8 @@ cleanup(void)
if (tmp_fp != 0)
fclose(tmp_fp);
if (to_remove != 0) {
+ int rc;
+
#if HAVE_REMOVE
rc = remove(to_remove);
#else
@@ -304,15 +304,17 @@ put_translate(int c)
/* emit a comment char, translating terminfo names to termcap names */
{
static bool in_name = FALSE;
- static size_t have, used;
- static char *namebuf, *suffix;
+ static size_t used;
if (in_name) {
+ static size_t have;
+ static char *namebuf, *suffix;
+
if (used + 1 >= have) {
have += 132;
- if ((namebuf = typeRealloc(char, have, namebuf)) == 0)
+ if ((namebuf = typeRealloc(char, have, namebuf)) == NULL)
failed("put_translate namebuf");
- if ((suffix = typeRealloc(char, have, suffix)) == 0)
+ if ((suffix = typeRealloc(char, have, suffix)) == NULL)
failed("put_translate suffix");
}
if (c == '\n' || c == '@') {
@@ -371,12 +373,10 @@ stripped(char *src)
src++;
if (*src != '\0') {
- size_t len;
-
if ((dst = strdup(src)) == NULL) {
failed("strdup");
} else {
- len = strlen(dst);
+ size_t len = strlen(dst);
while (--len != 0 && isspace(UChar(dst[len])))
dst[len] = '\0';
}
@@ -400,7 +400,7 @@ open_tempfile(char *filename)
}
#else
if (tmpnam(filename) != 0)
- result = fopen(filename, "w");
+ result = safe_fopen(filename, "w");
#endif
return result;
}
@@ -410,15 +410,15 @@ copy_input(FILE *source, const char *filename, char *alt_file)
{
char my_altfile[PATH_MAX];
FILE *result = 0;
- FILE *target = 0;
+ FILE *target;
int ch;
- if (alt_file == 0)
+ if (alt_file == NULL)
alt_file = my_altfile;
- if (source == 0) {
+ if (source == NULL) {
failed("copy_input (source)");
- } else if ((target = open_tempfile(alt_file)) == 0) {
+ } else if ((target = open_tempfile(alt_file)) == NULL) {
failed("copy_input (target)");
} else {
clearerr(source);
@@ -442,7 +442,7 @@ copy_input(FILE *source, const char *filename, char *alt_file)
* the one that we were writing on before starting to read from the
* second stream.
*/
- result = fopen(alt_file, "r+");
+ result = safe_fopen(alt_file, "r+");
fclose(target);
to_remove = strdup(alt_file);
}
@@ -458,18 +458,21 @@ open_input(const char *filename, char *alt_file)
if (!strcmp(filename, "-")) {
fp = copy_input(stdin, STDIN_NAME, alt_file);
- } else if (stat(filename, &sb) < 0) {
- fprintf(stderr, "%s: %s %s\n", _nc_progname, filename, strerror(errno));
+ } else if (stat(filename, &sb) == -1) {
+ fprintf(stderr, "%s: cannot open '%s': %s\n", _nc_progname,
+ filename, strerror(errno));
ExitProgram(EXIT_FAILURE);
} else if ((mode = (sb.st_mode & S_IFMT)) == S_IFDIR
|| (mode != S_IFREG && mode != S_IFCHR && mode != S_IFIFO)) {
- fprintf(stderr, "%s: %s is not a file\n", _nc_progname, filename);
+ fprintf(stderr, "%s: cannot open '%s'; it is not a file\n",
+ _nc_progname, filename);
ExitProgram(EXIT_FAILURE);
} else {
- fp = fopen(filename, "r");
+ fp = safe_fopen(filename, "r");
- if (fp == 0) {
- fprintf(stderr, "%s: Can't open %s\n", _nc_progname, filename);
+ if (fp == NULL) {
+ fprintf(stderr, "%s: cannot open '%s': %s\n", _nc_progname,
+ filename, strerror(errno));
ExitProgram(EXIT_FAILURE);
}
if (mode != S_IFREG) {
@@ -477,7 +480,8 @@ open_input(const char *filename, char *alt_file)
FILE *fp2 = copy_input(fp, filename, alt_file);
fp = fp2;
} else {
- fprintf(stderr, "%s: %s is not a file\n", _nc_progname, filename);
+ fprintf(stderr, "%s: cannot open '%s'; it is not a"
+ " file\n", _nc_progname, filename);
ExitProgram(EXIT_FAILURE);
}
}
@@ -495,7 +499,7 @@ make_namelist(char *src)
unsigned pass, n, nn;
char buffer[BUFSIZ];
- if (src == 0) {
+ if (src == NULL) {
/* EMPTY */ ;
} else if (strchr(src, '/') != 0) { /* a filename */
FILE *fp = open_input(src, (char *) 0);
@@ -512,7 +516,7 @@ make_namelist(char *src)
}
}
if (pass == 1) {
- if ((dst = typeCalloc(char *, nn + 1)) == 0)
+ if ((dst = typeCalloc(char *, nn + 1)) == NULL)
failed("make_namelist");
rewind(fp);
}
@@ -536,7 +540,7 @@ make_namelist(char *src)
break;
}
if (pass == 1) {
- if ((dst = typeCalloc(char *, nn + 1)) == 0)
+ if ((dst = typeCalloc(char *, nn + 1)) == NULL)
failed("make_namelist");
}
}
@@ -554,9 +558,10 @@ matches(char **needle, const char *haystack)
/* does entry in needle list match |-separated field in haystack? */
{
bool code = FALSE;
- size_t n;
if (needle != 0) {
+ size_t n;
+
for (n = 0; needle[n] != 0; n++) {
if (_nc_name_match(haystack, needle[n], "|")) {
code = TRUE;
@@ -577,7 +582,7 @@ valid_db_path(const char *nominal)
size_t need = strlen(nominal) + sizeof(suffix);
char *result = malloc(need);
- if (result == 0)
+ if (result == NULL)
failed("valid_db_path");
_nc_STRCPY(result, nominal, need);
if (strcmp(result + need - sizeof(suffix), suffix)) {
@@ -642,8 +647,8 @@ show_databases(const char *outdir)
char *result;
const char *tried = 0;
- if (outdir == 0) {
- outdir = _nc_tic_dir(0);
+ if (outdir == NULL) {
+ outdir = _nc_tic_dir(NULL);
}
if ((result = valid_db_path(outdir)) != 0) {
printf("%s\n", result);
@@ -681,7 +686,6 @@ int
main(int argc, char *argv[])
{
char my_tmpname[PATH_MAX];
- char my_altfile[PATH_MAX];
int v_opt = -1;
int smart_defaults = TRUE;
char *termcap;
@@ -700,7 +704,7 @@ main(int argc, char *argv[])
bool forceresolve = FALSE; /* force resolution */
bool limited = TRUE;
char *tversion = (char *) NULL;
- const char *source_file = "terminfo";
+ const char *source_file;
char *outdir = (char *) NULL;
bool check_only = FALSE;
bool suppress_untranslatable = FALSE;
@@ -722,7 +726,8 @@ main(int argc, char *argv[])
sortmode = S_TERMCAP;
}
#if NCURSES_XNAMES
- use_extended_names(FALSE);
+ /* set this directly to avoid interaction with -v and -D options */
+ _nc_user_definable = FALSE;
#endif
_nc_strict_bsd = 0;
@@ -775,7 +780,7 @@ main(int argc, char *argv[])
break;
case 'D':
debug_level = VtoTrace(v_opt);
- set_trace_level(debug_level);
+ use_verbosity(debug_level);
show_databases(outdir);
ExitProgram(EXIT_SUCCESS);
break;
@@ -853,7 +858,6 @@ main(int argc, char *argv[])
_nc_disable_period = TRUE;
/* FALLTHRU */
case 'x':
- use_extended_names(TRUE);
using_extensions = TRUE;
break;
#endif
@@ -863,8 +867,23 @@ main(int argc, char *argv[])
last_opt = this_opt;
}
+ /*
+ * If the -v option is set, it may override the $NCURSES_TRACE environment
+ * variable, e.g., for -v3 and up.
+ */
debug_level = VtoTrace(v_opt);
- set_trace_level(debug_level);
+ use_verbosity(debug_level);
+
+ /*
+ * Do this after setting debug_level, since the function calls START_TRACE,
+ * which uses the $NCURSES_TRACE environment variable if _nc_tracing bits
+ * for tracing are zero.
+ */
+#if NCURSES_XNAMES
+ if (using_extensions) {
+ use_extended_names(TRUE);
+ }
+#endif
if (_nc_tracing) {
save_check_termtype = _nc_check_termtype2;
@@ -877,7 +896,7 @@ main(int argc, char *argv[])
* One problem with immedhook is it means we can't do -e. Problem
* is that we can't guarantee that for each terminal listed, all the
* terminals it depends on will have been kept in core for reference
- * resolution -- in fact it's certain the primitive types at the end
+ * resolution -- in fact it is certain the primitive types at the end
* of reference chains *won't* be in core unless they were explicitly
* in the select list themselves.
*/
@@ -931,7 +950,8 @@ main(int argc, char *argv[])
}
}
- if (tmp_fp == 0) {
+ if (tmp_fp == NULL) {
+ char my_altfile[PATH_MAX];
tmp_fp = open_input(source_file, my_altfile);
if (!strcmp(source_file, "-")) {
source_file = STDIN_NAME;
@@ -1080,7 +1100,7 @@ main(int argc, char *argv[])
if (total != 0)
fprintf(log_fp, "%d entries written to %s\n",
total,
- _nc_tic_dir((char *) 0));
+ _nc_tic_dir(NULL));
else
fprintf(log_fp, "No entries written\n");
}
@@ -1153,6 +1173,7 @@ check_acs(TERMTYPE2 *tp)
char *q;
memset(mapped, 0, sizeof(mapped));
+ memset(missing, 0, sizeof(missing));
for (p = acs_chars; *p != '\0'; p += 2) {
if (p[1] == '\0') {
_nc_warning("acsc has odd number of characters");
@@ -1217,7 +1238,7 @@ check_colors(TERMTYPE2 *tp)
char *value;
if ((max_colors > 0) != (max_pairs > 0)
- || ((max_colors > max_pairs) && (initialize_pair == 0)))
+ || ((max_colors > max_pairs) && !VALID_STRING(initialize_pair)))
_nc_warning("inconsistent values for max_colors (%d) and max_pairs (%d)",
max_colors, max_pairs);
@@ -1306,13 +1327,12 @@ keypad_final(const char *string)
static long
keypad_index(const char *string)
{
- char *test;
- const char *list = "PQRSwxymtuvlqrsPpn"; /* app-keypad except "Enter" */
int ch;
long result = -1;
if ((ch = keypad_final(string)) != '\0') {
- test = (strchr) (list, ch);
+ const char *list = "PQRSwxymtuvlqrsPpn"; /* app-keypad except "Enter" */
+ char *test = (strchr) (list, ch);
if (test != 0)
result = (long) (test - list);
}
@@ -1329,18 +1349,15 @@ static void
check_ansi_cursor(char *list[4])
{
int j, k;
- int want;
- size_t suffix;
bool skip[4];
bool repeated = FALSE;
for (j = 0; j < 4; ++j) {
skip[j] = FALSE;
for (k = 0; k < j; ++k) {
- if (j != k
- && !strcmp(list[j], list[k])) {
+ if (!strcmp(list[j], list[k])) {
char *value = _nc_tic_expand(list[k], TRUE, 0);
- _nc_warning("repeated cursor control %s\n", value);
+ _nc_warning("repeated cursor control %s", value);
repeated = TRUE;
}
}
@@ -1348,6 +1365,7 @@ check_ansi_cursor(char *list[4])
if (!repeated) {
char *up = list[1];
size_t prefix = (size_t) csi_length(up);
+ size_t suffix;
if (prefix) {
suffix = prefix;
@@ -1362,23 +1380,25 @@ check_ansi_cursor(char *list[4])
skip[2] = TRUE;
for (j = 0; j < 4; ++j) {
+ int want;
+
if (skip[j] || strlen(list[j]) == 1)
continue;
if (memcmp(list[j], up, prefix)) {
char *value = _nc_tic_expand(list[j], TRUE, 0);
- _nc_warning("inconsistent prefix for %s\n", value);
+ _nc_warning("inconsistent prefix for %s", value);
continue;
}
if (strlen(list[j]) < suffix) {
char *value = _nc_tic_expand(list[j], TRUE, 0);
- _nc_warning("inconsistent length for %s, expected %d\n",
+ _nc_warning("inconsistent length for %s, expected %d",
value, (int) suffix + 1);
continue;
}
want = "BADC"[j];
if (list[j][suffix] != want) {
char *value = _nc_tic_expand(list[j], TRUE, 0);
- _nc_warning("inconsistent suffix for %s, expected %c, have %c\n",
+ _nc_warning("inconsistent suffix for %s, expected %c, have %c",
value, want, list[j][suffix]);
}
}
@@ -1411,7 +1431,7 @@ check_cursor(TERMTYPE2 *tp)
check_noaddress(tp, "hard_copy");
} else if (generic_type) {
check_noaddress(tp, "generic_type");
- } else if (strchr(tp->term_names, '+') == 0) {
+ } else if (strchr(tp->term_names, '+') == NULL) {
int y = 0;
int x = 0;
if (PRESENT(column_address))
@@ -1533,9 +1553,7 @@ check_keypad(TERMTYPE2 *tp)
char final[MAX_KP + 1];
long list[MAX_KP];
int increase = 0;
- int j, k, kk;
- long last;
- long test;
+ int j;
final[0] = keypad_final(key_a1);
final[1] = keypad_final(key_a3);
@@ -1568,10 +1586,17 @@ check_keypad(TERMTYPE2 *tp)
++increase;
}
}
+
if (increase != (MAX_KP - 1)) {
+ long last;
+
show[0] = '\0';
for (j = 0, last = -1; j < MAX_KP; ++j) {
+ int k;
+ int kk;
+ long test;
+
for (k = 0, kk = -1, test = 100; k < 5; ++k) {
if (list[k] > last &&
list[k] < test) {
@@ -1663,20 +1688,10 @@ check_printer(TERMTYPE2 *tp)
ANDMISSING(start_char_set_def, stop_char_set_def);
#endif
- /* if we have a parameterized form, then the non-parameterized is easy */
-#if defined(set_bottom_margin_parm) && defined(set_bottom_margin)
- ANDMISSING(set_bottom_margin_parm, set_bottom_margin);
-#endif
-#if defined(set_left_margin_parm) && defined(set_left_margin)
- ANDMISSING(set_left_margin_parm, set_left_margin);
-#endif
-#if defined(set_right_margin_parm) && defined(set_right_margin)
- ANDMISSING(set_right_margin_parm, set_right_margin);
-#endif
-#if defined(set_top_margin_parm) && defined(set_top_margin)
- ANDMISSING(set_top_margin_parm, set_top_margin);
-#endif
-
+ /*
+ * If we have a parameterized form, then the non-parameterized is easy.
+ * note: parameterized/non-parameterized margin settings are unrelated.
+ */
#if defined(parm_down_micro) && defined(micro_down)
ANDMISSING(parm_down_micro, micro_down);
#endif
@@ -1715,7 +1730,7 @@ check_screen(TERMTYPE2 *tp)
char *name = _nc_first_name(tp->term_names);
bool is_screen = !strncmp(name, "screen", 6);
bool screen_base = (is_screen
- && strchr(name, '.') == 0);
+ && strchr(name, '.') == NULL);
if (!VALID_BOOLEAN(have_bce)) {
have_bce = FALSE;
@@ -1745,6 +1760,8 @@ check_screen(TERMTYPE2 *tp)
} else if (have_XT && screen_base) {
_nc_warning("screen's \"screen\" entries should not have XT set");
} else if (have_XT) {
+ char *s;
+
if (!have_kmouse && is_screen) {
if (VALID_STRING(key_mouse)) {
_nc_warning("value of kmous inconsistent with screen's usage");
@@ -1760,12 +1777,14 @@ check_screen(TERMTYPE2 *tp)
"to have 39/49 parameters", name_39_49);
}
}
- if (VALID_STRING(to_status_line))
+ if (VALID_STRING(to_status_line)
+ && (s = strchr(to_status_line, ';')) != NULL
+ && *++s == '\0')
_nc_warning("\"tsl\" capability is redundant, given XT");
} else {
if (have_kmouse
&& !have_XM
- && !screen_base && strchr(name, '+') == 0) {
+ && !screen_base && strchr(name, '+') == NULL) {
_nc_warning("expected XT to be set, given kmous");
}
}
@@ -1916,23 +1935,82 @@ is_user_capability(const char *name)
return result;
}
+static bool
+line_capability(const char *name)
+{
+ bool result = FALSE;
+ static const char *table[] =
+ {
+ "csr", /* change_scroll_region */
+ "clear", /* clear_screen */
+ "ed", /* clr_eos */
+ "cwin", /* create_window */
+ "cup", /* cursor_address */
+ "cud1", /* cursor_down */
+ "home", /* cursor_home */
+ "mrcup", /* cursor_mem_address */
+ "ll", /* cursor_to_ll */
+ "cuu1", /* cursor_up */
+ "dl1", /* delete_line */
+ "hd", /* down_half_line */
+ "flash", /* flash_screen */
+ "ff", /* form_feed */
+ "il1", /* insert_line */
+ "nel", /* newline */
+ "dl", /* parm_delete_line */
+ "cud", /* parm_down_cursor */
+ "indn", /* parm_index */
+ "il", /* parm_insert_line */
+ "rin", /* parm_rindex */
+ "cuu", /* parm_up_cursor */
+ "mc0", /* print_screen */
+ "vpa", /* row_address */
+ "ind", /* scroll_forward */
+ "ri", /* scroll_reverse */
+ "hu", /* up_half_line */
+ };
+ size_t n;
+ for (n = 0; n < SIZEOF(table); ++n) {
+ if (!strcmp(name, table[n])) {
+ result = TRUE;
+ break;
+ }
+ }
+ return result;
+}
+
/*
* Make a quick sanity check for the parameters which are used in the given
* strings. If there are no "%p" tokens, then there should be no other "%"
* markers.
*/
static void
-check_params(TERMTYPE2 *tp, const char *name, char *value, int extended)
+check_params(TERMTYPE2 *tp, const char *name, const char *value, int extended)
{
int expected = expected_params(name);
int actual = 0;
int n;
bool params[1 + NUM_PARM];
- char *s = value;
+ const char *s = value;
+#ifdef set_left_margin_parm
+ if (!strcmp(name, "smgrp")
+ && !VALID_STRING(set_left_margin_parm))
+ expected = 2;
+#endif
+#ifdef set_right_margin_parm
+ if (!strcmp(name, "smglp")
+ && !VALID_STRING(set_right_margin_parm))
+ expected = 2;
+#endif
#ifdef set_top_margin_parm
if (!strcmp(name, "smgbp")
- && set_top_margin_parm == 0)
+ && !VALID_STRING(set_top_margin_parm))
+ expected = 2;
+#endif
+#ifdef set_bottom_margin_parm
+ if (!strcmp(name, "smgtp")
+ && !VALID_STRING(set_bottom_margin_parm))
expected = 2;
#endif
@@ -1994,10 +2072,11 @@ check_params(TERMTYPE2 *tp, const char *name, char *value, int extended)
* may not have been fully translated. Also, tparm does its own analysis.
* Report differences here.
*/
+ _nc_reset_tparm(NULL);
if (actual >= 0) {
char *p_is_s[NUM_PARM];
int popcount;
- int analyzed = _nc_tparm_analyze(value, p_is_s, &popcount);
+ int analyzed = _nc_tparm_analyze(NULL, value, p_is_s, &popcount);
if (analyzed < popcount) {
analyzed = popcount;
}
@@ -2015,54 +2094,37 @@ check_params(TERMTYPE2 *tp, const char *name, char *value, int extended)
_nc_warning("tparm analyzed %d parameters for %s, expected %d",
analyzed, name, actual);
}
+ } else if (expected > 0
+ && actual == expected
+ && guess_tparm_type(expected, p_is_s) == Numbers) {
+ int limit = 1;
+
+ if (!strcmp(name, "setf")
+ || !strcmp(name, "setb")
+ || !strcmp(name, "setaf")
+ || !strcmp(name, "setab")) {
+ if ((limit = max_colors) > 256)
+ limit = 256;
+ } else if (line_capability(name)) {
+ limit = 24;
+ } else if (is_user_capability(name) < 0) {
+ limit = 80;
+ }
+ for (n = 0; n < limit; ++n) {
+ _nc_reset_tparm(NULL);
+ (void) TPARM_9(value, n, n, n, n, n, n, n, n, n);
+ if (_nc_tparm_err) {
+ _nc_warning("problem%s in tparm(%s, %d, ...)",
+ (_nc_tparm_err == 1) ? "" : "s",
+ name, n);
+ if (debug_level < 2)
+ break;
+ }
+ }
}
}
}
-static bool
-line_capability(const char *name)
-{
- bool result = FALSE;
- static const char *table[] =
- {
- "csr", /* change_scroll_region */
- "clear", /* clear_screen */
- "ed", /* clr_eos */
- "cwin", /* create_window */
- "cup", /* cursor_address */
- "cud1", /* cursor_down */
- "home", /* cursor_home */
- "mrcup", /* cursor_mem_address */
- "ll", /* cursor_to_ll */
- "cuu1", /* cursor_up */
- "dl1", /* delete_line */
- "hd", /* down_half_line */
- "flash", /* flash_screen */
- "ff", /* form_feed */
- "il1", /* insert_line */
- "nel", /* newline */
- "dl", /* parm_delete_line */
- "cud", /* parm_down_cursor */
- "indn", /* parm_index */
- "il", /* parm_insert_line */
- "rin", /* parm_rindex */
- "cuu", /* parm_up_cursor */
- "mc0", /* print_screen */
- "vpa", /* row_address */
- "ind", /* scroll_forward */
- "ri", /* scroll_reverse */
- "hu", /* up_half_line */
- };
- size_t n;
- for (n = 0; n < SIZEOF(table); ++n) {
- if (!strcmp(name, table[n])) {
- result = TRUE;
- break;
- }
- }
- return result;
-}
-
/*
* Check for DEC VT100 private mode for reverse video.
*/
@@ -2097,7 +2159,6 @@ check_delays(TERMTYPE2 *tp, const char *name, const char *value)
if (p[0] == '$' && p[1] == '<') {
const char *base = p + 2;
const char *mark = 0;
- bool maybe = TRUE;
bool mixed = FALSE;
int proportional = 0;
int mandatory = 0;
@@ -2106,7 +2167,7 @@ check_delays(TERMTYPE2 *tp, const char *name, const char *value)
for (q = base; *q != '\0'; ++q) {
if (*q == '>') {
- if (mark == 0)
+ if (mark == NULL)
mark = q;
break;
} else if (*q == '*' || *q == '/') {
@@ -2114,23 +2175,20 @@ check_delays(TERMTYPE2 *tp, const char *name, const char *value)
++proportional;
if (*q == '/')
++mandatory;
- if (mark == 0)
+ if (mark == NULL)
mark = q;
} else if (!(isalnum(UChar(*q)) || strchr("+-.", *q) != 0)) {
- maybe = FALSE;
break;
} else if (proportional || mandatory) {
mixed = TRUE;
}
}
last = *q ? (q + 1) : q;
- if (*q == '\0') {
- maybe = FALSE; /* just an isolated "$<" */
- } else if (maybe) {
+ if (*q != '\0') {
float check_f;
char check_c;
int rc = sscanf(base, "%f%c", &check_f, &check_c);
- if ((rc != 2) || (check_c != *mark) || mixed) {
+ if ((rc != 2) || (mark != NULL && (check_c != *mark)) || mixed) {
_nc_warning("syntax error in %s delay '%.*s'", name,
(int) (q - base), base);
} else if (*name == 'k') {
@@ -2139,7 +2197,7 @@ check_delays(TERMTYPE2 *tp, const char *name, const char *value)
_nc_warning("non-line capability using proportional delay: %s", name);
} else if (!xon_xoff &&
!mandatory &&
- strchr(_nc_first_name(tp->term_names), '+') == 0) {
+ strchr(_nc_first_name(tp->term_names), '+') == NULL) {
_nc_warning("%s in %s is used since no xon/xoff",
(proportional
? "proportional delay"
@@ -2171,7 +2229,7 @@ check_delays(TERMTYPE2 *tp, const char *name, const char *value)
*/
if ((p = skip_DECSCNM(value, &flag)) != 0 &&
flag > 0 &&
- (q = skip_DECSCNM(p, &flag)) != 0 &&
+ skip_DECSCNM(p, &flag) != 0 &&
flag == 0) {
_nc_warning("expected a delay in %s", name);
}
@@ -2204,8 +2262,9 @@ check_1_infotocap(const char *name, NCURSES_CONST char *value, int count)
next += strlen(next) + 1;
}
+ _nc_reset_tparm(NULL);
expect = tparm_type(name);
- nparam = _nc_tparm_analyze(value, p_is_s, &ignored);
+ nparam = _nc_tparm_analyze(NULL, value, p_is_s, &ignored);
actual = guess_tparm_type(nparam, p_is_s);
if (expect != actual) {
@@ -2213,10 +2272,17 @@ check_1_infotocap(const char *name, NCURSES_CONST char *value, int count)
actual = Other;
}
+ _nc_reset_tparm(NULL);
switch (actual) {
+ case Str:
+ result = TPARM_1(value, strings[1]);
+ break;
case Num_Str:
result = TPARM_2(value, numbers[1], strings[2]);
break;
+ case Str_Str:
+ result = TPARM_2(value, strings[1], strings[2]);
+ break;
case Num_Str_Str:
result = TPARM_3(value, numbers[1], strings[2], strings[3]);
break;
@@ -2277,7 +2343,7 @@ parse_delay_value(const char *src, double *delays, int *always)
}
}
while (*src == '*' || *src == '/') {
- if (always == 0 && *src == '/')
+ if (always == NULL && *src == '/')
break;
if (*src++ == '*') {
star = 1;
@@ -2378,58 +2444,62 @@ static void
check_infotocap(TERMTYPE2 *tp, int i, const char *value)
{
const char *name = ExtStrname(tp, i, strnames);
- int params = ((i < (int) SIZEOF(parametrized))
- ? parametrized[i]
- : ((*value == 'k')
- ? 0
- : has_params(value, FALSE)));
- char *ti_value;
- char *tc_value;
- bool embedded;
+ char *ti_value = NULL;
assert(SIZEOF(parametrized) == STRCOUNT);
if (!VALID_STRING(value) || (ti_value = strdup(value)) == NULL) {
_nc_warning("tic-expansion of %s failed", name);
- } else if ((tc_value = _nc_infotocap(name, ti_value, params)) == ABSENT_STRING) {
- _nc_warning("tic-conversion of %s failed", name);
- } else if (params > 0) {
- int limit = 5;
- int count;
- bool first = TRUE;
-
- if (!strcmp(name, "setf")
- || !strcmp(name, "setb")
- || !strcmp(name, "setaf")
- || !strcmp(name, "setab")) {
- if ((limit = max_colors) > 16)
- limit = 16;
- }
- for (count = 0; count < limit; ++count) {
- char *ti_check = check_1_infotocap(name, ti_value, count);
- char *tc_check = check_1_infotocap(name, tc_value, count);
-
- if (strcmp(ti_check, tc_check)) {
- if (first) {
- fprintf(stderr, "check_infotocap(%s)\n", name);
- fprintf(stderr, "...ti '%s'\n", _nc_visbuf2(0, ti_value));
- fprintf(stderr, "...tc '%s'\n", _nc_visbuf2(0, tc_value));
- first = FALSE;
+ } else {
+ char *tc_value;
+ bool embedded;
+ int params = ((i < (int) SIZEOF(parametrized))
+ ? parametrized[i]
+ : ((*value == 'k')
+ ? 0
+ : has_params(value, FALSE)));
+
+ if ((tc_value = _nc_infotocap(name, ti_value, params)) == ABSENT_STRING) {
+ _nc_warning("tic-conversion of %s failed", name);
+ } else if (params > 0) {
+ int limit = 5;
+ int count;
+ bool first = TRUE;
+
+ if (!strcmp(name, "setf")
+ || !strcmp(name, "setb")
+ || !strcmp(name, "setaf")
+ || !strcmp(name, "setab")) {
+ if ((limit = max_colors) > 256)
+ limit = 256;
+ }
+ for (count = 0; count < limit; ++count) {
+ char *ti_check = check_1_infotocap(name, ti_value, count);
+ char *tc_check = check_1_infotocap(name, tc_value, count);
+
+ if (strcmp(ti_check, tc_check)) {
+ if (first) {
+ fprintf(stderr, "check_infotocap(%s)\n", name);
+ fprintf(stderr, "...ti '%s'\n", _nc_visbuf2(0, ti_value));
+ fprintf(stderr, "...tc '%s'\n", _nc_visbuf2(0, tc_value));
+ first = FALSE;
+ }
+ _nc_warning("tparm-conversion of %s(%d) differs between\n\tterminfo %s\n\ttermcap %s",
+ name, count,
+ _nc_visbuf2(0, ti_check),
+ _nc_visbuf2(1, tc_check));
}
- _nc_warning("tparm-conversion of %s(%d) differs between\n\tterminfo %s\n\ttermcap %s",
- name, count,
- _nc_visbuf2(0, ti_check),
- _nc_visbuf2(1, tc_check));
+ free(ti_check);
+ free(tc_check);
+ }
+ } else if (params == 0 && !same_ti_tc(ti_value, tc_value, &embedded)) {
+ if (embedded) {
+ _nc_warning("termcap equivalent of %s cannot use embedded delay", name);
+ } else {
+ _nc_warning("tic-conversion of %s changed value\n\tfrom %s\n\tto %s",
+ name, ti_value, tc_value);
}
- free(ti_check);
- free(tc_check);
- }
- } else if (params == 0 && !same_ti_tc(ti_value, tc_value, &embedded)) {
- if (embedded) {
- _nc_warning("termcap equivalent of %s cannot use embedded delay", name);
- } else {
- _nc_warning("tic-conversion of %s changed value\n\tfrom %s\n\tto %s",
- name, ti_value, tc_value);
}
+ free(ti_value);
}
}
@@ -2633,7 +2703,7 @@ get_fkey_list(TERMTYPE2 *tp)
int used = 0;
unsigned j;
- if (result == 0)
+ if (result == NULL)
failed("get_fkey_list");
for (j = 0; all_fkeys[j].code; j++) {
@@ -2679,14 +2749,13 @@ show_fkey_name(NAME_VALUE * data)
static void
check_conflict(TERMTYPE2 *tp)
{
- bool conflict = FALSE;
- unsigned j, k;
-
if (!(_nc_syntax == SYN_TERMCAP && capdump)) {
char *check = calloc((size_t) (NUM_STRINGS(tp) + 1), sizeof(char));
NAME_VALUE *given = get_fkey_list(tp);
+ unsigned j, k;
+ bool conflict = FALSE;
- if (check == 0)
+ if (check == NULL)
failed("check_conflict");
for (j = 0; given[j].keycode; ++j) {
@@ -2936,6 +3005,190 @@ check_user_capability_type(const char *name, int actual)
}
#endif
+#define IN_DELAY "0123456789*/."
+
+static bool
+check_ANSI_cap(const char *value, int nparams, char final)
+{
+ bool result = FALSE;
+ if (VALID_STRING(value) && csi_length(value) > 0) {
+ char *p_is_s[NUM_PARM];
+ int popcount;
+ int analyzed = _nc_tparm_analyze(NULL, value, p_is_s, &popcount);
+ if (analyzed < popcount) {
+ analyzed = popcount;
+ }
+ if (analyzed == nparams) {
+ bool numbers = TRUE;
+ int p;
+ for (p = 0; p < nparams; ++p) {
+ if (p_is_s[p]) {
+ numbers = FALSE;
+ break;
+ }
+ }
+ if (numbers) {
+ int in_delay = 0;
+ p = (int) strlen(value);
+ while (p-- > 0) {
+ char ch = value[p];
+ if (ch == final) {
+ result = TRUE;
+ break;
+ }
+ switch (in_delay) {
+ case 0:
+ if (ch == '>')
+ in_delay = 1;
+ break;
+ case 1:
+ if (strchr(IN_DELAY, value[p]) != NULL)
+ break;
+ if (ch != '<')
+ p = 0;
+ in_delay = 2;
+ break;
+ case 2:
+ if (ch != '$')
+ p = 0;
+ in_delay = 0;
+ break;
+ }
+ }
+ }
+ }
+ }
+ return result;
+}
+
+static const char *
+skip_Delay(const char *value)
+{
+ const char *result = value;
+
+ if (*value == '$') {
+ ++result;
+ if (*result++ == '<') {
+ while (strchr(IN_DELAY, *result) != NULL)
+ ++result;
+ if (*result++ != '>') {
+ result = value;
+ }
+ } else {
+ result = value;
+ }
+ }
+ return result;
+}
+
+static bool
+isValidString(const char *value, const char *expect)
+{
+ bool result = FALSE;
+ if (VALID_STRING(value)) {
+ if (!strcmp(value, expect))
+ result = TRUE;
+ }
+ return result;
+}
+
+static bool
+isValidEscape(const char *value, const char *expect)
+{
+ bool result = FALSE;
+ if (VALID_STRING(value)) {
+ if (*value == '\033') {
+ size_t need = strlen(expect);
+ size_t have = strlen(value) - 1;
+ if (have >= need && !strncmp(value + 1, expect, need)) {
+ if (*skip_Delay(value + need + 1) == '\0') {
+ result = TRUE;
+ }
+ }
+ }
+ }
+ return result;
+}
+
+static int
+guess_ANSI_VTxx(TERMTYPE2 *tp)
+{
+ int result = -1;
+ int checks = 0;
+
+ /* VT100s have scrolling region, but ANSI (ECMA-48) does not specify */
+ if (check_ANSI_cap(change_scroll_region, 2, 'r') &&
+ (isValidEscape(scroll_forward, "D") ||
+ isValidString(scroll_forward, "\n") ||
+ isValidEscape(scroll_forward, "6")) &&
+ (isValidEscape(scroll_reverse, "M") ||
+ isValidEscape(scroll_reverse, "9"))) {
+ checks |= 2;
+ }
+ if (check_ANSI_cap(cursor_address, 2, 'H') &&
+ check_ANSI_cap(cursor_up, 0, 'A') &&
+ (check_ANSI_cap(cursor_down, 0, 'B') ||
+ isValidString(cursor_down, "\n")) &&
+ check_ANSI_cap(cursor_right, 0, 'C') &&
+ (check_ANSI_cap(cursor_left, 0, 'D') ||
+ isValidString(cursor_left, "\b")) &&
+ check_ANSI_cap(clr_eos, 0, 'J') &&
+ check_ANSI_cap(clr_bol, 0, 'K') &&
+ check_ANSI_cap(clr_eol, 0, 'K')) {
+ checks |= 1;
+ }
+ if (checks == 3)
+ result = 1;
+ if (checks == 1)
+ result = 0;
+ return result;
+}
+
+/*
+ * u6/u7 and u8/u9 are query/response extensions which most terminals support.
+ * In particular, any ECMA-48 terminal should support these, though the details
+ * for u9 are implementation dependent.
+ */
+#if defined(user6) && defined(user7) && defined(user8) && defined(user9)
+static void
+check_user_6789(TERMTYPE2 *tp)
+{
+ /*
+ * Check if the terminal is known to not
+ */
+#define NO_QUERY(longname,shortname) \
+ if (PRESENT(longname)) _nc_warning(#shortname " is not supported")
+ if (tigetflag("NQ") > 0) {
+ NO_QUERY(user6, u6);
+ NO_QUERY(user7, u7);
+ NO_QUERY(user8, u8);
+ NO_QUERY(user9, u9);
+ return;
+ }
+
+ PAIRED(user6, user7);
+ PAIRED(user8, user9);
+
+ if (strchr(tp->term_names, '+') != NULL)
+ return;
+
+ switch (guess_ANSI_VTxx(tp)) {
+ case 1:
+ if (!PRESENT(user8)) {
+ _nc_warning("expected u8/u9 for device-attributes");
+ }
+ /* FALLTHRU */
+ case 0:
+ if (!PRESENT(user6)) {
+ _nc_warning("expected u6/u7 for cursor-position");
+ }
+ break;
+ }
+}
+#else
+#define check_user_6789(tp) /* nothing */
+#endif
+
/* other sanity-checks (things that we don't want in the normal
* logic that reads a terminfo entry)
*/
@@ -2984,6 +3237,7 @@ check_termtype(TERMTYPE2 *tp, bool literal)
check_keypad(tp);
check_printer(tp);
check_screen(tp);
+ check_user_6789(tp);
/*
* These are probably both or none.
@@ -3049,7 +3303,7 @@ check_termtype(TERMTYPE2 *tp, bool literal)
if (PRESENT(exit_attribute_mode)) {
char *check_sgr0 = _nc_trim_sgr0(tp);
- if (check_sgr0 == 0 || *check_sgr0 == '\0') {
+ if (check_sgr0 == NULL || *check_sgr0 == '\0') {
_nc_warning("trimmed sgr0 is empty");
} else {
show_where(2);
diff --git a/progs/toe.c b/progs/toe.c
index f3856f049c11..ecbfd53b5a08 100644
--- a/progs/toe.c
+++ b/progs/toe.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2022,2023 Thomas E. Dickey *
* Copyright 1998-2013,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -45,7 +45,7 @@
#include <hashed_db.h>
#endif
-MODULE_ID("$Id: toe.c,v 1.79 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: toe.c,v 1.89 2023/07/01 17:04:46 tom Exp $")
#define isDotname(name) (!strcmp(name, ".") || !strcmp(name, ".."))
@@ -64,7 +64,7 @@ static size_t len_termdata; /* allocated size of ptr_termdata[] */
#if NO_LEAKS
#undef ExitProgram
-static void ExitProgram(int code) GCC_NORETURN;
+static GCC_NORETURN void ExitProgram(int code);
static void
ExitProgram(int code)
{
@@ -73,7 +73,7 @@ ExitProgram(int code)
}
#endif
-static void failed(const char *) GCC_NORETURN;
+static GCC_NORETURN void failed(const char *);
static void
failed(const char *msg)
@@ -127,12 +127,15 @@ compare_termdata(const void *a, const void *b)
static void
show_termdata(int eargc, char **eargv)
{
- int j, k;
- size_t n;
-
if (use_termdata) {
+ size_t n;
+
if (eargc > 1) {
+ int j;
+
for (j = 0; j < eargc; ++j) {
+ int k;
+
for (k = 0; k <= j; ++k) {
printf("--");
}
@@ -143,14 +146,20 @@ show_termdata(int eargc, char **eargv)
if (use_termdata > 1)
qsort(ptr_termdata, use_termdata, sizeof(TERMDATA), compare_termdata);
for (n = 0; n < use_termdata; ++n) {
+ int nk = -1;
/*
* If there is more than one database, show how they differ.
*/
if (eargc > 1) {
unsigned long check = 0;
- k = 0;
+ int k = 0;
for (;;) {
+ char mark = ((check == 0
+ || (check != ptr_termdata[n].checksum))
+ ? '*'
+ : '+');
+
for (; k < ptr_termdata[n].db_index; ++k) {
printf("--");
}
@@ -160,11 +169,10 @@ show_termdata(int eargc, char **eargv)
* from the first entry's checksum, print "*". Otherwise
* it looks enough like a duplicate to print "+".
*/
- printf("%c-", ((check == 0
- || (check != ptr_termdata[n].checksum))
- ? '*'
- : '+'));
+ printf("%c-", mark);
check = ptr_termdata[n].checksum;
+ if (mark == '*' && nk < 0)
+ nk = (int) n;
++k;
if ((n + 1) >= use_termdata
@@ -179,10 +187,12 @@ show_termdata(int eargc, char **eargv)
}
printf(":\t");
}
+ if (nk < 0)
+ nk = (int) n;
(void) printf("%-10s\t%s\n",
ptr_termdata[n].term_name,
- ptr_termdata[n].description);
+ ptr_termdata[nk].description);
}
}
}
@@ -242,7 +252,9 @@ make_db_name(char *dst, const char *src, unsigned limit)
&& !strcmp(src + size - lens, suffix)) {
_nc_STRCPY(dst, src, PATH_MAX);
} else {
- _nc_SPRINTF(dst, _nc_SLIMIT(PATH_MAX) "%s%s", src, suffix);
+ _nc_SPRINTF(dst, _nc_SLIMIT(PATH_MAX) "%.*s%s",
+ (int) (PATH_MAX - sizeof(suffix)),
+ src, suffix);
}
result = TRUE;
}
@@ -325,6 +337,26 @@ sorthook(int db_index, int db_limit, const char *term_name, TERMTYPE2 *tp)
}
#if NCURSES_USE_TERMCAP
+/*
+ * Check if the buffer contents are printable ASCII, ensuring that we do not
+ * accidentally pick up incompatible binary content from a hashed database.
+ */
+static bool
+is_termcap(char *buffer)
+{
+ bool result = TRUE;
+ while (*buffer != '\0') {
+ int ch = UChar(*buffer++);
+ if (ch == '\t')
+ continue;
+ if (ch < ' ' || ch > '~') {
+ result = FALSE;
+ break;
+ }
+ }
+ return result;
+}
+
static void
show_termcap(int db_index, int db_limit, char *buffer, DescHook hook)
{
@@ -513,11 +545,13 @@ typelist(int eargc, char *eargv[],
db_array[1] = 0;
if (cgetfirst(&buffer, db_array) > 0) {
- show_termcap(i, eargc, buffer, hook);
- free(buffer);
- while (cgetnext(&buffer, db_array) > 0) {
+ if (is_termcap(buffer)) {
show_termcap(i, eargc, buffer, hook);
free(buffer);
+ while (cgetnext(&buffer, db_array) > 0) {
+ show_termcap(i, eargc, buffer, hook);
+ free(buffer);
+ }
}
cgetclose();
continue;
@@ -532,11 +566,13 @@ typelist(int eargc, char *eargv[],
if (verbosity)
(void) printf("#\n#%s:\n#\n", eargv[i]);
- if ((fp = fopen(eargv[i], "r")) != 0) {
+ if ((fp = safe_fopen(eargv[i], "r")) != 0) {
while (fgets(buffer, sizeof(buffer), fp) != 0) {
+ if (!is_termcap(buffer))
+ break;
if (*buffer == '#')
continue;
- if (isspace(*buffer))
+ if (isspace(UChar(*buffer)))
continue;
show_termcap(i, eargc, buffer, hook);
}
@@ -570,7 +606,6 @@ main(int argc, char *argv[])
bool invert_dependencies = FALSE;
bool header = FALSE;
char *report_file = 0;
- unsigned i;
int code;
int this_opt, last_opt = '?';
unsigned v_opt = 0;
@@ -623,7 +658,7 @@ main(int argc, char *argv[])
usage();
}
}
- set_trace_level(v_opt);
+ use_verbosity(v_opt);
if (report_file != 0) {
if (freopen(report_file, "r", stdin) == 0) {
@@ -658,11 +693,13 @@ main(int argc, char *argv[])
/* maybe we want a reverse-dependency listing? */
if (invert_dependencies) {
ENTRY *qp, *rp;
- int matchcount;
for_entry_list(qp) {
- matchcount = 0;
+ int matchcount = 0;
+
for_entry_list(rp) {
+ unsigned i;
+
if (rp->nuses == 0)
continue;
@@ -692,12 +729,12 @@ main(int argc, char *argv[])
DBDIRS state;
int offset;
int pass;
- const char *path;
char **eargv = 0;
code = EXIT_FAILURE;
for (pass = 0; pass < 2; ++pass) {
size_t count = 0;
+ const char *path;
_nc_first_db(&state, &offset);
while ((path = _nc_next_db(&state, &offset)) != 0) {
diff --git a/progs/tparm_type.c b/progs/tparm_type.c
index 3da4a0774af5..4fed96a53440 100644
--- a/progs/tparm_type.c
+++ b/progs/tparm_type.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2023 Thomas E. Dickey *
* Copyright 2014,2015 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -33,7 +33,7 @@
#include <tparm_type.h>
-MODULE_ID("$Id: tparm_type.c,v 1.4 2020/10/24 17:30:32 tom Exp $")
+MODULE_ID("$Id: tparm_type.c,v 1.5 2023/04/08 15:57:01 tom Exp $")
/*
* Lookup the type of call we should make to tparm(). This ignores the actual
@@ -47,6 +47,7 @@ tparm_type(const char *name)
{code, {longname} }, \
{code, {ti} }, \
{code, {tc} }
+#define XD(code, onlyname) TD(code, onlyname, onlyname, onlyname)
TParams result = Numbers;
/* *INDENT-OFF* */
static const struct {
@@ -58,6 +59,10 @@ tparm_type(const char *name)
TD(Num_Str, "pkey_xmit", "pfx", "px"),
TD(Num_Str, "plab_norm", "pln", "pn"),
TD(Num_Str_Str, "pkey_plab", "pfxl", "xl"),
+#if NCURSES_XNAMES
+ XD(Str, "Cs"),
+ XD(Str_Str, "Ms"),
+#endif
};
/* *INDENT-ON* */
@@ -80,12 +85,16 @@ guess_tparm_type(int nparam, char **p_is_s)
case 1:
if (!p_is_s[0])
result = Numbers;
+ if (p_is_s[0])
+ result = Str;
break;
case 2:
if (!p_is_s[0] && !p_is_s[1])
result = Numbers;
if (!p_is_s[0] && p_is_s[1])
result = Num_Str;
+ if (p_is_s[0] && p_is_s[1])
+ result = Str_Str;
break;
case 3:
if (!p_is_s[0] && !p_is_s[1] && !p_is_s[2])
diff --git a/progs/tparm_type.h b/progs/tparm_type.h
index 7c102a309c1a..2f7bd0771d53 100644
--- a/progs/tparm_type.h
+++ b/progs/tparm_type.h
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2023 Thomas E. Dickey *
* Copyright 2014 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -32,7 +32,7 @@
****************************************************************************/
/*
- * $Id: tparm_type.h,v 1.3 2020/10/24 17:11:33 tom Exp $
+ * $Id: tparm_type.h,v 1.4 2023/04/08 15:41:20 tom Exp $
*
* determine expected/actual number of parameters to setup for tparm
*/
@@ -45,8 +45,10 @@
typedef enum {
Other = -1
,Numbers = 0
+ ,Str
,Num_Str
,Num_Str_Str
+ ,Str_Str
} TParams;
extern TParams tparm_type(const char *name);
diff --git a/progs/tput.c b/progs/tput.c
index cac8d292a94b..f9321b60a8d3 100644
--- a/progs/tput.c
+++ b/progs/tput.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -44,39 +44,37 @@
#include <clear_cmd.h>
#include <reset_cmd.h>
-#if !PURE_TERMINFO
-#include <dump_entry.h>
-#include <termsort.c>
-#endif
#include <transform.h>
#include <tty_settings.h>
-MODULE_ID("$Id: tput.c,v 1.84 2020/10/24 18:29:38 tom Exp $")
+MODULE_ID("$Id: tput.c,v 1.104 2024/04/20 22:20:51 tom Exp $")
#define PUTS(s) fputs(s, stdout)
const char *_nc_progname = "tput";
-static char *prg_name;
+static bool opt_v = FALSE; /* quiet, do not show warnings */
+static bool opt_x = FALSE; /* clear scrollback if possible */
+
static bool is_init = FALSE;
static bool is_reset = FALSE;
static bool is_clear = FALSE;
-static void
+static GCC_NORETURN void
quit(int status, const char *fmt, ...)
{
va_list argp;
va_start(argp, fmt);
- fprintf(stderr, "%s: ", prg_name);
+ fprintf(stderr, "%s: ", _nc_progname);
vfprintf(stderr, fmt, argp);
fprintf(stderr, "\n");
va_end(argp);
ExitProgram(status);
}
-static void
-usage(void)
+static GCC_NORETURN void
+usage(const char *optstring)
{
#define KEEP(s) s "\n"
static const char msg[] =
@@ -86,6 +84,7 @@ usage(void)
KEEP(" -S << read commands from standard input")
KEEP(" -T TERM use this instead of $TERM")
KEEP(" -V print curses-version")
+ KEEP(" -v verbose, show warnings")
KEEP(" -x do not try to clear scrollback")
KEEP("")
KEEP("Commands:")
@@ -95,8 +94,21 @@ usage(void)
KEEP(" capname unlike clear/init/reset, print value for capability \"capname\"")
};
#undef KEEP
- (void) fprintf(stderr, "Usage: %s [options] [command]\n", prg_name);
- fputs(msg, stderr);
+ (void) fprintf(stderr, "Usage: %s [options] [command]\n", _nc_progname);
+ if (optstring != NULL) {
+ const char *s = msg;
+ while (*s != '\0') {
+ fputc(UChar(*s), stderr);
+ if (!strncmp(s, " -", 3)) {
+ if (strchr(optstring, s[3]) == NULL)
+ s = strchr(s, '\n') + 1;
+ } else if (!strncmp(s, "\n\nC", 3))
+ break;
+ ++s;
+ }
+ } else {
+ fputs(msg, stderr);
+ }
ExitProgram(ErrUsage);
}
@@ -140,7 +152,7 @@ exit_code(int token, int value)
* Returns nonzero on error.
*/
static int
-tput_cmd(int fd, TTY * saved_settings, bool opt_x, int argc, char *argv[])
+tput_cmd(int fd, TTY * settings, int argc, char **argv, int *used)
{
NCURSES_CONST char *name;
char *s;
@@ -150,8 +162,9 @@ tput_cmd(int fd, TTY * saved_settings, bool opt_x, int argc, char *argv[])
#endif
name = check_aliases(argv[0], FALSE);
+ *used = 1;
if (is_reset || is_init) {
- TTY oldmode;
+ TTY oldmode = *settings;
int terasechar = -1; /* new erase character */
int intrchar = -1; /* new interrupt character */
@@ -159,23 +172,30 @@ tput_cmd(int fd, TTY * saved_settings, bool opt_x, int argc, char *argv[])
if (is_reset) {
reset_start(stdout, TRUE, FALSE);
- reset_tty_settings(fd, saved_settings);
+ reset_tty_settings(fd, settings, FALSE);
} else {
reset_start(stdout, FALSE, TRUE);
}
#if HAVE_SIZECHANGE
- set_window_size(fd, &lines, &columns);
+ {
+ NCURSES_INT2 my_rows = lines;
+ NCURSES_INT2 my_cols = columns;
+ set_window_size(fd, &my_rows, &my_cols);
+ lines = my_rows;
+ columns = my_cols;
+ }
#else
(void) fd;
#endif
- set_control_chars(saved_settings, terasechar, intrchar, tkillchar);
- set_conversions(saved_settings);
+ set_control_chars(settings, terasechar, intrchar, tkillchar);
+ set_conversions(settings);
+
if (send_init_strings(fd, &oldmode)) {
reset_flush();
}
- update_tty_settings(&oldmode, saved_settings);
+ update_tty_settings(&oldmode, settings);
return 0;
}
@@ -221,17 +241,21 @@ tput_cmd(int fd, TTY * saved_settings, bool opt_x, int argc, char *argv[])
} else if (VALID_STRING(s)) {
if (argc > 1) {
int k;
- int ignored;
+ int narg;
+ int analyzed;
+ int provided;
+ int popcount;
long numbers[1 + NUM_PARM];
char *strings[1 + NUM_PARM];
char *p_is_s[NUM_PARM];
+ TParams paramType;
/* Nasty hack time. The tparm function needs to see numeric
* parameters as numbers, not as pointers to their string
* representations
*/
- for (k = 1; (k < argc) && (k < NUM_PARM); k++) {
+ for (k = 1; (k < argc) && (k <= NUM_PARM); k++) {
char *tmp = 0;
strings[k] = argv[k];
numbers[k] = strtol(argv[k], &tmp, 0);
@@ -243,14 +267,64 @@ tput_cmd(int fd, TTY * saved_settings, bool opt_x, int argc, char *argv[])
strings[k] = 0;
}
- switch (tparm_type(name)) {
+ paramType = tparm_type(name);
+#if NCURSES_XNAMES
+ /*
+ * If the capability is an extended one, analyze the string.
+ */
+ if (paramType == Numbers) {
+ struct name_table_entry const *entry_ptr;
+ entry_ptr = _nc_find_type_entry(name, STRING, FALSE);
+ if (entry_ptr == NULL) {
+ paramType = Other;
+ }
+ }
+#endif
+
+ popcount = 0;
+ _nc_reset_tparm(NULL);
+ /*
+ * Count the number of numeric parameters which are provided.
+ */
+ provided = 0;
+ for (narg = 1; narg < argc; ++narg) {
+ char *ending = NULL;
+ long check = strtol(argv[narg], &ending, 0);
+ if (check < 0 || ending == argv[narg] || *ending != '\0')
+ break;
+ provided = narg;
+ }
+ switch (paramType) {
+ case Str:
+ s = TPARM_1(s, strings[1]);
+ analyzed = 1;
+ if (provided == 0 && argc >= 1)
+ provided++;
+ break;
+ case Str_Str:
+ s = TPARM_2(s, strings[1], strings[2]);
+ analyzed = 2;
+ if (provided == 0 && argc >= 1)
+ provided++;
+ if (provided == 1 && argc >= 2)
+ provided++;
+ break;
case Num_Str:
s = TPARM_2(s, numbers[1], strings[2]);
+ analyzed = 2;
+ if (provided == 1 && argc >= 2)
+ provided++;
break;
case Num_Str_Str:
s = TPARM_3(s, numbers[1], strings[2], strings[3]);
+ analyzed = 3;
+ if (provided == 1 && argc >= 2)
+ provided++;
+ if (provided == 2 && argc >= 3)
+ provided++;
break;
case Numbers:
+ analyzed = _nc_tparm_analyze(NULL, s, p_is_s, &popcount);
#define myParam(n) numbers[n]
s = TIPARM_9(s,
myParam(1),
@@ -267,7 +341,7 @@ tput_cmd(int fd, TTY * saved_settings, bool opt_x, int argc, char *argv[])
case Other:
/* FALLTHRU */
default:
- (void) _nc_tparm_analyze(s, p_is_s, &ignored);
+ analyzed = _nc_tparm_analyze(NULL, s, p_is_s, &popcount);
#define myParam(n) (p_is_s[n - 1] != 0 ? ((TPARM_ARG) strings[n]) : numbers[n])
s = TPARM_9(s,
myParam(1),
@@ -282,6 +356,16 @@ tput_cmd(int fd, TTY * saved_settings, bool opt_x, int argc, char *argv[])
#undef myParam
break;
}
+ if (analyzed < popcount) {
+ analyzed = popcount;
+ }
+ if (opt_v && (analyzed != provided)) {
+ fprintf(stderr, "%s: %s parameters for \"%s\"\n",
+ _nc_progname,
+ (analyzed < provided ? "extra" : "missing"),
+ argv[0]);
+ }
+ *used += provided;
}
/* use putp() in order to perform padding */
@@ -301,16 +385,18 @@ main(int argc, char **argv)
char buf[BUFSIZ];
int result = 0;
int fd;
+ int used;
+ TTY old_settings;
TTY tty_settings;
- bool opt_x = FALSE; /* clear scrollback if possible */
bool is_alias;
bool need_tty;
- prg_name = check_aliases(_nc_rootname(argv[0]), TRUE);
+ _nc_progname = check_aliases(_nc_rootname(argv[0]), TRUE);
+ is_alias = (is_clear || is_reset || is_init);
term = getenv("TERM");
- while ((c = getopt(argc, argv, "ST:Vx")) != -1) {
+ while ((c = getopt(argc, argv, is_alias ? "T:Vvx" : "ST:Vvx")) != -1) {
switch (c) {
case 'S':
cmdline = FALSE;
@@ -323,16 +409,18 @@ main(int argc, char **argv)
case 'V':
puts(curses_version());
ExitProgram(EXIT_SUCCESS);
+ case 'v': /* verbose */
+ opt_v = TRUE;
+ break;
case 'x': /* do not try to clear scrollback */
opt_x = TRUE;
break;
default:
- usage();
+ usage(is_alias ? "TVx" : NULL);
/* NOTREACHED */
}
}
- is_alias = (is_clear || is_reset || is_init);
need_tty = ((is_reset || is_init) ||
(optind < argc &&
(!strcmp(argv[optind], "reset") ||
@@ -346,7 +434,7 @@ main(int argc, char **argv)
argc -= optind;
argv += optind;
}
- argv[0] = prg_name;
+ argv[0] = strdup(_nc_progname);
} else {
argc -= optind;
argv += optind;
@@ -356,39 +444,62 @@ main(int argc, char **argv)
quit(ErrUsage, "No value for $TERM and no -T specified");
fd = save_tty_settings(&tty_settings, need_tty);
+ old_settings = tty_settings;
if (setupterm(term, fd, &errret) != OK && errret <= 0)
quit(ErrTermType, "unknown terminal \"%s\"", term);
if (cmdline) {
+ int code = 0;
if ((argc <= 0) && !is_alias)
- usage();
- ExitProgram(tput_cmd(fd, &tty_settings, opt_x, argc, argv));
+ usage(NULL);
+ while (argc > 0) {
+ tty_settings = old_settings;
+ code = tput_cmd(fd, &tty_settings, argc, argv, &used);
+ if (code != 0)
+ break;
+ argc -= used;
+ argv += used;
+ }
+ ExitProgram(code);
}
while (fgets(buf, sizeof(buf), stdin) != 0) {
- char *argvec[16]; /* command, 9 parms, null, & slop */
+ size_t need = strlen(buf);
+ char **argvec = typeCalloc(char *, need + 1);
+ char **argnow;
int argnum = 0;
char *cp;
- /* crack the argument list into a dope vector */
+ if (argvec == NULL) {
+ quit(ErrSystem(1), strerror(errno));
+ }
+
+ /* split the buffer into tokens */
for (cp = buf; *cp; cp++) {
if (isspace(UChar(*cp))) {
*cp = '\0';
- } else if (cp == buf || cp[-1] == 0) {
+ } else if (cp == buf || cp[-1] == '\0') {
argvec[argnum++] = cp;
- if (argnum >= (int) SIZEOF(argvec) - 1)
+ if (argnum >= (int) need)
break;
}
}
- argvec[argnum] = 0;
- if (argnum != 0
- && tput_cmd(fd, &tty_settings, opt_x, argnum, argvec) != 0) {
- if (result == 0)
- result = ErrSystem(0); /* will return value >4 */
- ++result;
+ argnow = argvec;
+ while (argnum > 0) {
+ int code;
+ tty_settings = old_settings;
+ code = tput_cmd(fd, &tty_settings, argnum, argnow, &used);
+ if (code != 0) {
+ if (result == 0)
+ result = ErrSystem(0); /* will return value >4 */
+ ++result;
+ }
+ argnum -= used;
+ argnow += used;
}
+ free(argvec);
}
ExitProgram(result);
diff --git a/progs/tset.c b/progs/tset.c
index 4d33ca8789c2..69f4aba87974 100644
--- a/progs/tset.c
+++ b/progs/tset.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020-2021,2024 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -91,14 +91,14 @@
#include <transform.h>
#include <tty_settings.h>
-#if HAVE_GETTTYNAM && HAVE_TTYENT_H
+#if HAVE_GETTTYNAM
#include <ttyent.h>
#endif
#ifdef NeXT
char *ttyname(int fd);
#endif
-MODULE_ID("$Id: tset.c,v 1.125 2020/09/05 22:54:47 tom Exp $")
+MODULE_ID("$Id: tset.c,v 1.135 2024/04/20 22:20:41 tom Exp $")
#ifndef environ
extern char **environ;
@@ -108,7 +108,7 @@ const char *_nc_progname = "tset";
#define LOWERCASE(c) ((isalpha(UChar(c)) && isupper(UChar(c))) ? tolower(UChar(c)) : (c))
-static void exit_error(void) GCC_NORETURN;
+static GCC_NORETURN void exit_error(void);
static int
CaselessCmp(const char *a, const char *b)
@@ -122,7 +122,7 @@ CaselessCmp(const char *a, const char *b)
return LOWERCASE(*a) - LOWERCASE(*b);
}
-static void
+static GCC_NORETURN void
exit_error(void)
{
restore_tty_settings();
@@ -132,7 +132,7 @@ exit_error(void)
/* NOTREACHED */
}
-static void
+static GCC_NORETURN void
err(const char *fmt, ...)
{
va_list ap;
@@ -144,7 +144,7 @@ err(const char *fmt, ...)
/* NOTREACHED */
}
-static void
+static GCC_NORETURN void
failed(const char *msg)
{
char temp[BUFSIZ];
@@ -167,7 +167,6 @@ static const char *
askuser(const char *dflt)
{
static char answer[256];
- char *p;
/* We can get recalled; if so, don't continue uselessly. */
clearerr(stdin);
@@ -176,7 +175,10 @@ askuser(const char *dflt)
exit_error();
/* NOTREACHED */
}
+
for (;;) {
+ char *p;
+
if (dflt)
(void) fprintf(stderr, "Terminal type? [%s] ", dflt);
else
@@ -543,12 +545,14 @@ get_termcap_entry(int fd, char *userarg)
int errret;
char *p;
const char *ttype;
+#if HAVE_PATH_TTYS
#if HAVE_GETTTYNAM
struct ttyent *t;
#else
FILE *fp;
#endif
char *ttypath;
+#endif /* HAVE_PATH_TTYS */
(void) fd;
@@ -561,6 +565,7 @@ get_termcap_entry(int fd, char *userarg)
if ((ttype = getenv("TERM")) != 0)
goto map;
+#if HAVE_PATH_TTYS
if ((ttypath = ttyname(fd)) != 0) {
p = _nc_basename(ttypath);
#if HAVE_GETTTYNAM
@@ -598,6 +603,7 @@ get_termcap_entry(int fd, char *userarg)
}
#endif /* HAVE_GETTTYNAM */
}
+#endif /* HAVE_PATH_TTYS */
/* If still undefined, use "unknown". */
ttype = "unknown";
@@ -773,7 +779,7 @@ main(int argc, char **argv)
bool opt_w = FALSE; /* set window-size */
TTY mode, oldmode;
- my_fd = STDERR_FILENO;
+ _nc_progname = _nc_rootname(*argv);
obsolete(argv);
noinit = noset = quiet = Sflag = sflag = showterm = 0;
while ((ch = getopt(argc, argv, "a:cd:e:Ii:k:m:p:qQrSsVw")) != -1) {
@@ -832,7 +838,6 @@ main(int argc, char **argv)
}
}
- _nc_progname = _nc_rootname(*argv);
argc -= optind;
argv += optind;
@@ -854,7 +859,7 @@ main(int argc, char **argv)
if (same_program(_nc_progname, PROG_RESET)) {
reset_start(stderr, TRUE, FALSE);
- reset_tty_settings(my_fd, &mode);
+ reset_tty_settings(my_fd, &mode, noset);
} else {
reset_start(stderr, FALSE, TRUE);
}
@@ -864,7 +869,11 @@ main(int argc, char **argv)
if (!noset) {
#if HAVE_SIZECHANGE
if (opt_w) {
- set_window_size(my_fd, &lines, &columns);
+ NCURSES_INT2 my_rows = lines;
+ NCURSES_INT2 my_cols = columns;
+ set_window_size(my_fd, &my_rows, &my_cols);
+ lines = my_rows;
+ columns = my_cols;
}
#endif
if (opt_c) {
@@ -873,9 +882,13 @@ main(int argc, char **argv)
if (!noinit) {
if (send_init_strings(my_fd, &oldmode)) {
+ const char *name;
+
(void) putc('\r', stderr);
(void) fflush(stderr);
- (void) napms(1000); /* Settle the terminal. */
+ if (IsRealTty(my_fd, name)) {
+ (void) napms(1000); /* Settle the terminal. */
+ }
}
}
diff --git a/progs/tty_settings.c b/progs/tty_settings.c
index 274de9fecf6f..a9eb8cd8ba74 100644
--- a/progs/tty_settings.c
+++ b/progs/tty_settings.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -36,7 +36,7 @@
#include <fcntl.h>
-MODULE_ID("$Id: tty_settings.c,v 1.6 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: tty_settings.c,v 1.7 2021/10/08 23:53:32 tom Exp $")
static int my_fd;
static TTY original_settings;
@@ -74,10 +74,12 @@ save_tty_settings(TTY * tty_settings, bool need_tty)
{
if (!get_tty_settings(STDERR_FILENO, tty_settings) &&
!get_tty_settings(STDOUT_FILENO, tty_settings) &&
- !get_tty_settings(STDIN_FILENO, tty_settings) &&
- !get_tty_settings(open("/dev/tty", O_RDWR), tty_settings)) {
+ !get_tty_settings(STDIN_FILENO, tty_settings)) {
if (need_tty) {
- failed("terminal attributes");
+ int fd = open("/dev/tty", O_RDWR);
+ if (!get_tty_settings(fd, tty_settings)) {
+ failed("terminal attributes");
+ }
} else {
my_fd = fileno(stdout);
}
diff --git a/test/Makefile.in b/test/Makefile.in
index ebc6510ef9de..1d546285a98b 100644
--- a/test/Makefile.in
+++ b/test/Makefile.in
@@ -1,6 +1,6 @@
-# $Id: Makefile.in,v 1.125 2020/07/18 18:47:54 tom Exp $
+# $Id: Makefile.in,v 1.130 2021/12/18 23:00:28 tom Exp $
##############################################################################
-# Copyright 2020 Thomas E. Dickey #
+# Copyright 2020,2021 Thomas E. Dickey #
# Copyright 1998-2017,2018 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -44,6 +44,8 @@ destdir =
x = @EXEEXT@
o = .@OBJEXT@
+PACKAGE = @PACKAGE@
+
MODEL = ../@DFT_OBJ_SUBDIR@
top_srcdir = @top_srcdir@
srcdir = @srcdir@
@@ -52,18 +54,19 @@ exec_prefix = @exec_prefix@
datarootdir = @datarootdir@
bindir = @bindir@
+libexecdir = @libexecdir@
libdir = @libdir@
-includedir = @includedir@
-includesubdir = @includesubdir@
datarootdir = @datarootdir@
datadir = @datadir@
+real_bindir = $(libexecdir)/$(PACKAGE)
+
BINDIR = $(DESTDIR)$(bindir)
+LIBEXECDIR = $(DESTDIR)$(libexecdir)
LIBDIR = $(DESTDIR)$(libdir)
-INCLUDEDIR = $(DESTDIR)$(includedir)$(includesubdir)
DATADIR = $(DESTDIR)$(datadir)
-PACKAGE = @PACKAGE@
+REAL_BINDIR = $(LIBEXECDIR)/$(PACKAGE)
LIBTOOL = @LIBTOOL@
LIBTOOL_OPTS = @LIBTOOL_OPTS@
@@ -118,19 +121,22 @@ LDFLAGS_SHARED = $(LDFLAGS) $(CFLAGS_SHARED) @LD_SHARED_OPTS@
TEST_ARGS = @LDFLAGS_STATIC@ @TEST_ARGS@ @LDFLAGS_SHARED@
# use these for linking with all of the libraries
-LIBS_DEFAULT = $(TEST_ARGS) @LIBS@ $(TEST_LIBS) $(MATH_LIB)
+LIBS_DEFAULT = $(TEST_ARGS) @LIBS@ $(TEST_LIBS)
LDFLAGS_DEFAULT = $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_DEFAULT)
# use these for linking with the (n)curses library and possibly pthreads
-LIBS_THREADS = `echo "$(TEST_ARGS) @LIBS@" | sed -e 's/-l@FORM_NAME@.*-l@PANEL_NAME@[^ ]*//'` $(TEST_LIBS) $(MATH_LIB) @PTHREAD@
+LIBS_THREADS = `echo "$(TEST_ARGS) @LIBS@" | sed -e 's/-l@FORM_NAME@.*-l@PANEL_NAME@[^ ]*//'` $(TEST_LIBS) @PTHREAD@
LDFLAGS_THREADS = $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_THREADS)
# use these for linking with the (n)curses library
-LIBS_CURSES = `echo "$(TEST_ARGS) @LIBS@" | sed -e 's/-l@FORM_NAME@.*-l@PANEL_NAME@[^ ]*//'` $(TEST_LIBS) $(MATH_LIB)
+LIBS_CURSES = `echo "$(TEST_ARGS) @LIBS@" | sed -e 's/-l@FORM_NAME@.*-l@PANEL_NAME@[^ ]*//'` $(TEST_LIBS)
LDFLAGS_CURSES = $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_CURSES)
+# use these when we need the math library
+LDFLAGS_CURSES_M= $(LDFLAGS_CURSES) $(MATH_LIB)
+
# use these for linking with the tinfo library if we have it, or curses library if not
-LIBS_TINFO = @LDFLAGS_STATIC@ @TINFO_LIBS@ @LDFLAGS_SHARED@ @LIBS@ $(TEST_LIBS) $(MATH_LIB)
+LIBS_TINFO = @LDFLAGS_STATIC@ @TINFO_LIBS@ @LDFLAGS_SHARED@ @LIBS@ $(TEST_LIBS)
LDFLAGS_TINFO = @TINFO_LDFLAGS@ $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_TINFO)
LINT = @LINT@
@@ -150,4 +156,22 @@ HEADER_DEPS = \
$(incdir)/unctrl.h \
$(INCDIR)/nc_alloc.h
+################################################################################
+
+@MAKE_PHONY@.PHONY : all
+@MAKE_PHONY@.PHONY : check
+
+all::
+
+# Verify that each header-file can be compiled without including another.
+check::
+ @$(SHELL) -c "for header in *.h;\
+ do \
+ echo \"** testing \$${header}\" ; \
+ echo \"#include <\$${header}>\" >headers.c; \
+ echo \"int main(void) { return 0; }\" >>headers.c; \
+ $(CC) -c $(CFLAGS) $(CPPFLAGS) headers.c; \
+ done"
+ -@rm -f headers.*
+
# The rest is generated from the "programs" and "modules" files...
diff --git a/test/README b/test/README
index 5dc07c657bfd..885349dd08f2 100644
--- a/test/README
+++ b/test/README
@@ -1,5 +1,5 @@
-------------------------------------------------------------------------------
--- Copyright 2018-2020,2021 Thomas E. Dickey --
+-- Copyright 2018-2023,2024 Thomas E. Dickey --
-- Copyright 1998-2017,2018 Free Software Foundation, Inc. --
-- --
-- Permission is hereby granted, free of charge, to any person obtaining a --
@@ -26,7 +26,7 @@
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
--- $Id: README,v 1.72 2021/02/13 22:53:41 tom Exp $
+-- $Id: README,v 1.82 2024/04/27 18:35:01 tom Exp $
-------------------------------------------------------------------------------
The programs in this directory are used to test and demonstrate ncurses.
@@ -86,12 +86,12 @@ TYPE_REGEXP test: demo_forms
current_field test: demo_forms dup_field edit_field move_field ncurses
data_ahead test: demo_forms
data_behind test: demo_forms
-dup_field -
+dup_field test: dup_field
dynamic_field_info test: demo_forms
field_arg test: demo_forms
field_back test: demo_forms edit_field
field_buffer test: cardfile demo_forms ncurses
-field_count test: demo_forms move_field
+field_count test: demo_forms dup_field move_field
field_fore test: demo_forms
field_index test: demo_forms
field_info test: edit_field ncurses
@@ -107,7 +107,7 @@ field_type test: demo_forms
field_userptr test: dup_field edit_field move_field ncurses
form_driver test: cardfile demo_forms dup_field edit_field move_field ncurses
form_driver_w test: form_driver_w
-form_fields test: cardfile demo_forms move_field
+form_fields test: cardfile demo_forms dup_field move_field
form_init -
form_opts -
form_opts_off -
@@ -147,7 +147,7 @@ set_field_type test: demo_forms dup_field move_field ncurses
set_field_userptr test: edit_field ncurses
set_fieldtype_arg -
set_fieldtype_choice -
-set_form_fields test: move_field
+set_form_fields test: dup_field move_field
set_form_init -
set_form_opts -
set_form_page -
@@ -163,7 +163,7 @@ unpost_form test: cardfile demo_forms dup_field form_driver_w move_field ncurs
libmenu:
-------
current_item test: demo_menus ncurses
-free_item test: ncurses
+free_item test: demo_menus ncurses
free_menu test: demo_menus ncurses
item_count test: demo_menus
item_description -
@@ -234,16 +234,16 @@ BC test: demo_termcap
COLORS test: color_content demo_new_pair dots_curses dots_xcurses echochar ncurses pair_content picsmap savescreen xmas
COLOR_PAIR test: background blue bs cardfile clip_printw demo_forms demo_menus demo_panels dots_curses dup_field echochar filter firework gdc hanoi ins_wide insdelln inserts knight move_field ncurses newdemo padview picsmap rain savescreen tclock test_add_wchstr test_addchstr test_addstr test_addwstr testaddch testcurs view worm xmas
COLOR_PAIRS test: demo_new_pair dots_curses dots_xcurses echochar ncurses newdemo pair_content
-COLS test: cardfile demo_altkeys demo_defkey demo_forms demo_keyok demo_menus demo_panels demo_tabs ditto dots_curses dots_xcurses echochar filter firework foldkeys hashtest inch_wide inchs ins_wide inserts lrtest movewindow ncurses newdemo padview picsmap rain savescreen tclock test_add_wchstr test_addchstr test_addstr test_addwstr test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs view worm
+COLS test: cardfile combine demo_altkeys demo_defkey demo_forms demo_keyok demo_menus demo_panels demo_tabs ditto dots_curses dots_xcurses echochar filter firework foldkeys hashtest inch_wide inchs ins_wide inserts lrtest movewindow ncurses newdemo padview picsmap rain savescreen tclock test_add_wchstr test_addchstr test_addstr test_addwstr test_delwin test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs view worm
ESCDELAY test: test_opaque
-LINES test: cardfile demo_defkey demo_keyok demo_menus demo_panels demo_tabs ditto dots_curses dots_xcurses echochar firework hanoi hashtest inch_wide inchs ins_wide inserts lrtest move_field movewindow ncurses newdemo padview picsmap rain savescreen tclock test_add_wchstr test_addchstr test_addstr test_addwstr test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs view worm xmas
+LINES test: cardfile combine demo_defkey demo_keyok demo_menus demo_panels demo_tabs ditto dots_curses dots_xcurses echochar firework hanoi hashtest inch_wide inchs ins_wide inserts lrtest move_field movewindow ncurses newdemo padview picsmap rain savescreen tclock test_add_wchstr test_addchstr test_addstr test_addwstr test_delwin test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs view worm xmas
PAIR_NUMBER test: dump_window ncurses
PC test: demo_termcap
SP lib: form
TABSIZE test: test_opaque
UP test: demo_termcap
acs_map test: back_ground background gdc ins_wide inserts knight movewindow ncurses newdemo savescreen test_add_wchstr test_addchstr test_addstr test_addwstr testcurs
-add_wch test: demo_new_pair demo_panels ncurses picsmap savescreen test_add_wchstr test_addwstr
+add_wch test: combine demo_new_pair demo_panels ncurses picsmap savescreen test_add_wchstr test_addwstr
add_wchnstr test: test_add_wchstr
add_wchstr test: test_add_wchstr view
addch test: back_ground background blue bs color_content demo_tabs dots_curses echochar hashtest ncurses padview pair_content picsmap savescreen test_add_wchstr test_addchstr test_addstr test_addwstr test_opaque testaddch view worm
@@ -252,14 +252,14 @@ addchstr test: test_addchstr
addnstr test: test_addstr
addnwstr test: dots_xcurses ncurses test_addwstr
addstr test: blue bs cardfile filter gdc hanoi lrtest ncurses test_addstr
-addwstr test: blue test_addwstr
+addwstr test: blue combine test_addwstr
alloc_pair test: demo_new_pair dots_xcurses
alloc_pair_sp -
assume_default_colors test: back_ground background ncurses
assume_default_colors_sp -
attr_get -
-attr_off test: dots_xcurses ncurses
-attr_on test: dots_xcurses ncurses
+attr_off test: combine dots_xcurses ncurses
+attr_on test: combine dots_xcurses ncurses
attr_set test: ncurses
attroff test: blue dots_curses echochar filter gdc ncurses tclock
attron test: blue bs dots_curses echochar filter gdc ncurses
@@ -277,17 +277,17 @@ boolfnames test: demo_terminfo test_arrays progs: dump_entry
boolnames test: demo_terminfo test_arrays progs: dump_entry infocmp
border -
border_set -
-box test: cardfile chgat clip_printw demo_forms demo_menus demo_panels ditto inch_wide inchs ins_wide insdelln inserts lrtest ncurses newdemo popup_msg redraw test_add_wchstr test_addchstr test_addstr test_addwstr test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs
+box test: cardfile chgat clip_printw demo_forms demo_menus demo_panels ditto inch_wide inchs ins_wide insdelln inserts lrtest ncurses newdemo popup_msg redraw test_add_wchstr test_addchstr test_addstr test_addwstr test_delwin test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs
box_set test: ncurses
can_change_color test: color_content extended_color ncurses
can_change_color_sp test: extended_color
-cbreak test: back_ground background blue bs cardfile chgat clip_printw color_content color_set demo_altkeys demo_defkey demo_forms demo_keyok demo_menus demo_new_pair demo_panels demo_tabs ditto dup_field extended_color filter firework foldkeys form_driver_w gdc hanoi hashtest inch_wide inchs ins_wide insdelln inserts knight lrtest move_field movewindow ncurses newdemo padview pair_content picsmap savescreen tclock test_add_wchstr test_addchstr test_addstr test_addwstr test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs view worm xmas
+cbreak test: back_ground background blue bs cardfile chgat clip_printw color_content color_set combine demo_altkeys demo_defkey demo_forms demo_keyok demo_menus demo_new_pair demo_panels demo_tabs ditto dup_field extended_color filter firework foldkeys form_driver_w gdc hanoi hashtest inch_wide inchs ins_wide insdelln inserts knight lrtest move_field movewindow ncurses newdemo padview pair_content picsmap savescreen tclock test_add_wchstr test_addchstr test_addstr test_addwstr test_delwin test_get_wstr test_getstr test_instr test_inwstr test_mouse test_opaque test_unget_wch testcurs view worm xmas
cbreak_sp test: sp_tinfo
chgat test: chgat
clear test: blue bs filter gdc ncurses padview testcurs xmas
clearok test: bs knight
clrtobot test: demo_menus move_field ncurses view
-clrtoeol test: blue bs demo_altkeys filter foldkeys form_driver_w hanoi hashtest movewindow ncurses padview view
+clrtoeol test: blue bs demo_altkeys filter foldkeys form_driver_w hanoi hashtest movewindow ncurses padview test_mouse view
color_content test: color_content ncurses picsmap
color_content_sp -
color_set test: color_set dots_xcurses extended_color ncurses
@@ -296,8 +296,8 @@ cur_term test: demo_termcap demo_terminfo dots dots_mvcur filter list_keys lrt
curs_set test: demo_new_pair echochar firework gdc hanoi lrtest ncurses newdemo picsmap rain savescreen tclock testcurs worm xmas
curs_set_sp test: sp_tinfo
curscr test: demo_panels knight lrtest ncurses popup_msg savescreen tclock
-curses_trace test: demo_menus hashtest lrtest ncurses padview redraw test_sgr test_termattrs test_vid_puts test_vidputs testcurs view worm
-curses_version test: ncurses progs: clear infocmp tabs tic toe tput tset
+curses_trace test: demo_menus hashtest lrtest ncurses padview redraw test_sgr test_termattrs test_vid_puts test_vidputs testcurs view worm progs: infocmp tic toe
+curses_version test: back_ground background blue bs cardfile chgat clip_printw color_content color_set combine demo_altkeys demo_defkey demo_forms demo_keyok demo_menus demo_new_pair demo_panels demo_tabs demo_termcap demo_terminfo ditto dots dots_curses dots_mvcur dots_termcap dots_xcurses dup_field echochar extended_color filter firework firstlast foldkeys form_driver_w gdc hanoi hashtest inch_wide inchs ins_wide insdelln inserts key_names keynames knight list_keys lrtest move_field movewindow ncurses newdemo padview pair_content picsmap railroad rain redraw savescreen sp_tinfo tclock test_add_wchstr test_addchstr test_addstr test_addwstr test_arrays test_delwin test_endwin test_get_wstr test_getstr test_instr test_inwstr test_mouse test_opaque test_setupterm test_sgr test_termattrs test_tparm test_unget_wch test_vid_puts test_vidputs testaddch testcurs testscanw view worm xmas progs: clear infocmp tabs tic toe tput tset
def_prog_mode test: bs ncurses
def_prog_mode_sp test: sp_tinfo
def_shell_mode -
@@ -310,9 +310,9 @@ delay_output test: newdemo
delay_output_sp test: sp_tinfo
delch -
deleteln test: insdelln
-delscreen test: ditto dots_mvcur
-delwin test: cardfile chgat clip_printw demo_forms demo_panels dup_field inch_wide inchs ins_wide insdelln inserts move_field ncurses newdemo popup_msg redraw test_add_wchstr test_addchstr test_addstr test_addwstr test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs view
-derwin test: cardfile chgat clip_printw demo_forms demo_menus ditto inch_wide inchs ins_wide insdelln inserts movewindow ncurses test_add_wchstr test_addchstr test_addstr test_addwstr test_get_wstr test_getstr test_instr test_inwstr test_opaque
+delscreen test: ditto dots_mvcur test_delwin
+delwin test: cardfile chgat clip_printw demo_forms demo_panels dup_field inch_wide inchs ins_wide insdelln inserts move_field ncurses newdemo padview popup_msg redraw test_add_wchstr test_addchstr test_addstr test_addwstr test_delwin test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs view
+derwin test: cardfile chgat clip_printw demo_forms demo_menus ditto inch_wide inchs ins_wide insdelln inserts movewindow ncurses test_add_wchstr test_addchstr test_addstr test_addwstr test_delwin test_get_wstr test_getstr test_instr test_inwstr test_opaque
doupdate test: cardfile demo_menus demo_panels ditto ins_wide inserts knight movewindow ncurses padview popup_msg redraw savescreen test_add_wchstr test_addchstr test_addstr test_addwstr test_get_wstr test_getstr
doupdate_sp lib: ncurses
dupwin test: popup_msg
@@ -320,14 +320,15 @@ echo test: bs hanoi ncurses test_get_wstr test_getstr testcurs testscanw
echo_sp lib: ncurses
echo_wchar test: ncurses
echochar test: echochar ncurses
-endwin test: back_ground background blue bs cardfile chgat clip_printw color_content color_set demo_altkeys demo_defkey demo_forms demo_keyok demo_menus demo_new_pair demo_panels demo_tabs ditto dots_curses dots_mvcur dots_xcurses dup_field echochar extended_color filter firework firstlast foldkeys form_driver_w gdc hanoi hashtest inch_wide inchs ins_wide insdelln inserts key_names keynames knight lrtest move_field movewindow ncurses newdemo padview pair_content picsmap rain redraw savescreen tclock test_add_wchstr test_addchstr test_addstr test_addwstr test_get_wstr test_getstr test_instr test_inwstr test_opaque testaddch testcurs testscanw view worm xmas
+endwin test: back_ground background blue bs cardfile chgat clip_printw color_content color_set combine demo_altkeys demo_defkey demo_forms demo_keyok demo_menus demo_new_pair demo_panels demo_tabs ditto dots_curses dots_mvcur dots_xcurses dup_field echochar extended_color filter firework firstlast foldkeys form_driver_w gdc hanoi hashtest inch_wide inchs ins_wide insdelln inserts key_names keynames knight lrtest move_field movewindow ncurses newdemo padview pair_content picsmap rain redraw savescreen tclock test_add_wchstr test_addchstr test_addstr test_addwstr test_delwin test_endwin test_get_wstr test_getstr test_instr test_inwstr test_mouse test_opaque test_unget_wch testaddch testcurs testscanw view worm xmas
endwin_sp lib: ncurses
erase test: cardfile demo_menus filter firework firstlast hanoi lrtest ncurses picsmap tclock test_opaque testcurs
erasechar test: ncurses
erasechar_sp test: sp_tinfo
erasewchar test: ncurses
-exit_curses -
-exit_terminfo test: demo_tabs demo_termcap demo_terminfo dots dots_mvcur dots_termcap list_keys railroad sp_tinfo test_arrays test_sgr test_termattrs test_tparm test_vid_puts test_vidputs
+erasewchar_sp lib: ncurses
+exit_curses test: back_ground background blue bs cardfile chgat clip_printw color_content color_set combine demo_altkeys demo_defkey demo_forms demo_keyok demo_menus demo_new_pair demo_panels demo_tabs ditto dots_curses dots_xcurses dup_field echochar extended_color filter firework firstlast foldkeys form_driver_w gdc hanoi hashtest inch_wide inchs ins_wide insdelln inserts key_names keynames knight lrtest move_field movewindow ncurses newdemo padview pair_content picsmap rain redraw savescreen tclock test_add_wchstr test_addchstr test_addstr test_addwstr test_delwin test_endwin test_get_wstr test_getstr test_instr test_inwstr test_mouse test_opaque test_setupterm test_termattrs test_unget_wch testaddch testcurs testscanw view worm xmas
+exit_terminfo test: demo_termcap demo_terminfo dots dots_mvcur dots_termcap list_keys railroad sp_tinfo test_arrays test_sgr test_tparm test_vid_puts test_vidputs
extended_color_content test: color_content extended_color
extended_color_content_sp test: extended_color
extended_pair_content test: extended_color pair_content
@@ -346,7 +347,7 @@ free_pair test: demo_new_pair
free_pair_sp -
get_escdelay -
get_escdelay_sp -
-get_wch test: form_driver_w
+get_wch test: form_driver_w test_unget_wch
get_wstr test: test_get_wstr
getattrs -
getbegx test: chgat clip_printw demo_menus demo_panels dump_window insdelln move_field movewindow ncurses newdemo redraw testcurs
@@ -354,12 +355,12 @@ getbegy test: chgat clip_printw demo_menus demo_panels dump_window insdelln m
getbkgd test: ncurses
getbkgrnd test: ncurses
getcchar test: demo_new_pair ncurses savescreen view
-getch test: back_ground background blue bs chgat color_content color_set demo_altkeys demo_new_pair demo_tabs extended_color filter firework firstlast foldkeys hanoi hashtest insdelln lrtest padview pair_content picsmap savescreen tclock test_opaque testaddch testcurs view xmas
-getcurx test: bs chgat clip_printw demo_altkeys demo_defkey demo_panels dump_window extended_color filter firstlast foldkeys insdelln move_field movewindow ncurses redraw savescreen test_get_wstr test_getstr test_opaque testcurs view
-getcury test: bs chgat clip_printw demo_altkeys demo_defkey demo_panels dump_window extended_color filter firstlast foldkeys insdelln move_field movewindow ncurses popup_msg redraw savescreen test_opaque testcurs view
+getch test: back_ground background blue bs chgat color_content color_set combine demo_altkeys demo_new_pair demo_tabs extended_color filter firework firstlast foldkeys hanoi hashtest insdelln lrtest padview pair_content picsmap savescreen tclock test_endwin test_mouse test_opaque test_unget_wch testaddch testcurs view xmas
+getcurx test: bs chgat clip_printw combine demo_altkeys demo_defkey demo_panels dump_window extended_color filter firstlast foldkeys insdelln move_field movewindow ncurses redraw savescreen test_get_wstr test_getstr test_opaque testcurs view
+getcury test: bs chgat clip_printw demo_altkeys demo_defkey demo_panels dump_window extended_color filter firstlast foldkeys insdelln move_field movewindow ncurses popup_msg redraw savescreen test_mouse test_opaque testcurs view
getmaxx test: chgat clip_printw demo_panels dump_window firstlast inch_wide inchs insdelln movewindow ncurses newdemo popup_msg redraw test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs
-getmaxy test: chgat clip_printw demo_forms demo_panels dump_window firstlast inch_wide inchs insdelln movewindow ncurses newdemo popup_msg redraw test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs
-getmouse test: bs demo_menus knight movewindow ncurses testcurs
+getmaxy test: chgat clip_printw demo_forms demo_panels dump_window firstlast inch_wide inchs insdelln movewindow ncurses newdemo popup_msg redraw test_get_wstr test_getstr test_instr test_inwstr test_mouse test_opaque testcurs
+getmouse test: bs demo_menus knight movewindow ncurses test_mouse testcurs
getmouse_sp -
getn_wstr test: test_get_wstr
getnstr test: filter ncurses test_getstr
@@ -398,8 +399,8 @@ init_extended_color_sp test: extended_color
init_extended_pair test: extended_color ncurses pair_content picsmap
init_extended_pair_sp test: extended_color
init_pair test: back_ground background blue bs cardfile chgat clip_printw color_set demo_forms demo_menus demo_new_pair demo_panels dots_curses dots_xcurses dup_field echochar filter firework gdc hanoi ins_wide insdelln inserts knight move_field ncurses newdemo padview pair_content picsmap rain savescreen tclock test_add_wchstr test_addchstr test_addstr test_addwstr testaddch testcurs view worm xmas
-init_pair_sp -
-initscr test: back_ground background blue bs cardfile chgat clip_printw color_content color_set demo_defkey demo_forms demo_keyok demo_menus demo_panels demo_tabs dots_curses dots_xcurses dup_field echochar filter firework firstlast form_driver_w gdc hanoi hashtest inch_wide inchs ins_wide insdelln inserts knight lrtest move_field movewindow ncurses newdemo padview pair_content picsmap rain savescreen tclock test_add_wchstr test_addchstr test_addstr test_addwstr test_get_wstr test_getstr test_instr test_inwstr test_opaque testaddch testcurs testscanw view worm xmas
+init_pair_sp lib: ncurses
+initscr test: back_ground background blue bs cardfile chgat clip_printw color_content color_set combine demo_defkey demo_forms demo_keyok demo_menus demo_panels demo_tabs dots_curses dots_xcurses dup_field echochar filter firework firstlast form_driver_w gdc hanoi hashtest inch_wide inchs ins_wide insdelln inserts knight lrtest move_field movewindow ncurses newdemo padview pair_content picsmap rain savescreen tclock test_add_wchstr test_addchstr test_addstr test_addwstr test_endwin test_get_wstr test_getstr test_instr test_inwstr test_mouse test_opaque test_unget_wch testaddch testcurs testscanw view worm xmas
innstr test: test_instr
innwstr test: test_inwstr
ins_nwstr test: ins_wide
@@ -414,18 +415,26 @@ instr test: test_instr
intrflush test: demo_forms dup_field move_field movewindow
intrflush_sp test: sp_tinfo
inwstr test: test_inwstr
+is_cbreak -
+is_cbreak_sp -
is_cleared test: test_opaque
+is_echo -
+is_echo_sp -
is_idcok test: test_opaque
is_idlok test: test_opaque
is_immedok test: test_opaque
is_keypad test: ncurses test_opaque
is_leaveok test: test_opaque
is_linetouched lib: form
+is_nl -
+is_nl_sp -
is_nodelay test: test_opaque
is_notimeout test: test_opaque
-is_pad -
+is_pad test: test_opaque
+is_raw -
+is_raw_sp -
is_scrollok test: ncurses test_opaque
-is_subwin -
+is_subwin test: test_opaque
is_syncok test: test_opaque
is_term_resized -
is_term_resized_sp -
@@ -434,17 +443,18 @@ isendwin -
isendwin_sp -
key_defined test: demo_defkey foldkeys
key_defined_sp test: sp_tinfo
-key_name test: key_names ncurses
+key_name test: key_names ncurses test_unget_wch
keybound test: demo_altkeys demo_defkey
keybound_sp test: sp_tinfo
-keyname test: demo_altkeys demo_defkey demo_keyok demo_menus dup_field edit_field foldkeys keynames move_field movewindow ncurses padview redraw test_getstr testcurs view progs: tic
+keyname test: combine demo_altkeys demo_defkey demo_keyok demo_menus dup_field edit_field foldkeys keynames move_field movewindow ncurses padview redraw test_getstr test_unget_wch testcurs view progs: tic
keyname_sp test: sp_tinfo
keyok test: demo_keyok foldkeys
keyok_sp test: sp_tinfo
-keypad test: bs cardfile chgat clip_printw demo_altkeys demo_defkey demo_forms demo_keyok demo_menus demo_new_pair demo_panels ditto dup_field filter firework foldkeys form_driver_w hashtest inch_wide inchs ins_wide insdelln inserts key_names keynames knight lrtest move_field movewindow ncurses padview popup_msg redraw savescreen tclock test_add_wchstr test_addchstr test_addstr test_addwstr test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs testscanw view
+keypad test: bs cardfile chgat clip_printw combine demo_altkeys demo_defkey demo_forms demo_keyok demo_menus demo_new_pair demo_panels ditto dup_field filter firework foldkeys form_driver_w hashtest inch_wide inchs ins_wide insdelln inserts key_names keynames knight lrtest move_field movewindow ncurses padview popup_msg redraw savescreen tclock test_add_wchstr test_addchstr test_addstr test_addwstr test_get_wstr test_getstr test_instr test_inwstr test_mouse test_opaque test_unget_wch testcurs testscanw view
killchar test: ncurses
killchar_sp test: sp_tinfo
killwchar test: ncurses
+killwchar_sp lib: ncurses
leaveok test: hanoi test_opaque
longname test: ncurses testcurs progs: tput
longname_sp test: sp_tinfo
@@ -452,11 +462,11 @@ mcprint -
mcprint_sp -
meta test: key_names keynames ncurses
mouse_trafo lib: form
-mouseinterval -
+mouseinterval test: test_mouse
mouseinterval_sp -
-mousemask test: bs demo_forms demo_menus knight movewindow ncurses testcurs
+mousemask test: bs demo_forms demo_menus knight movewindow ncurses test_mouse testcurs
mousemask_sp -
-move test: blue bs cardfile chgat demo_altkeys demo_menus demo_new_pair demo_tabs dots_curses dots_xcurses echochar filter foldkeys gdc hanoi hashtest inch_wide inchs ins_wide inserts knight lrtest move_field movewindow ncurses picsmap savescreen test_add_wchstr test_addchstr test_addstr test_addwstr test_get_wstr test_getstr test_instr test_inwstr test_opaque testscanw view xmas
+move test: blue bs cardfile chgat combine demo_altkeys demo_menus demo_new_pair demo_tabs dots_curses dots_xcurses echochar filter foldkeys gdc hanoi hashtest inch_wide inchs ins_wide inserts knight lrtest move_field movewindow ncurses picsmap savescreen test_add_wchstr test_addchstr test_addstr test_addwstr test_get_wstr test_getstr test_instr test_inwstr test_opaque testscanw view xmas
mvadd_wch test: ncurses test_add_wchstr test_addwstr
mvadd_wchnstr test: test_add_wchstr
mvadd_wchstr test: test_add_wchstr
@@ -537,34 +547,34 @@ mvwinsnstr test: inserts
mvwinsstr test: inserts testcurs
mvwinstr test: test_instr
mvwinwstr test: test_inwstr
-mvwprintw test: demo_menus demo_panels inch_wide inchs ncurses test_instr test_inwstr testcurs
+mvwprintw test: demo_menus demo_panels inch_wide inchs ncurses test_delwin test_instr test_inwstr testcurs
mvwscanw test: testcurs
mvwvline test: ins_wide inserts movewindow ncurses test_add_wchstr test_addchstr test_addstr test_addwstr
mvwvline_set -
-napms test: demo_panels ditto dots dots_curses dots_mvcur dots_xcurses echochar extended_color firework firstlast gdc hanoi lrtest ncurses padview picsmap railroad rain tclock test_opaque testcurs view worm xmas progs: tset
+napms test: demo_panels ditto dots dots_curses dots_mvcur dots_termcap dots_xcurses echochar extended_color firework firstlast gdc hanoi lrtest ncurses padview picsmap railroad rain tclock test_opaque testcurs view worm xmas progs: tset
napms_sp test: sp_tinfo
new_prescr test: sp_tinfo
newpad test: ncurses padview popup_msg testcurs
newpad_sp lib: ncurses
newscr lib: ncurses
-newterm test: demo_altkeys demo_new_pair ditto dots_mvcur extended_color filter foldkeys gdc key_names keynames redraw test_setupterm test_termattrs
+newterm test: demo_altkeys demo_new_pair ditto dots_mvcur extended_color filter foldkeys gdc key_names keynames redraw test_delwin test_endwin test_mouse test_setupterm test_termattrs
newterm_sp -
-newwin test: cardfile chgat clip_printw demo_defkey demo_forms demo_keyok demo_menus demo_panels ditto firstlast inch_wide inchs ins_wide insdelln inserts knight movewindow ncurses newdemo popup_msg redraw test_add_wchstr test_addchstr test_addstr test_addwstr test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs view xmas
+newwin test: cardfile chgat clip_printw demo_defkey demo_forms demo_keyok demo_menus demo_panels ditto firstlast inch_wide inchs ins_wide insdelln inserts knight movewindow ncurses newdemo popup_msg redraw test_add_wchstr test_addchstr test_addstr test_addwstr test_delwin test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs view xmas
newwin_sp lib: ncurses
nl test: demo_forms dup_field move_field ncurses rain testcurs
nl_sp lib: ncurses
nocbreak test: testcurs
nocbreak_sp test: sp_tinfo
nodelay test: demo_new_pair ditto extended_color firework gdc lrtest ncurses newdemo padview rain tclock test_opaque view worm xmas
-noecho test: back_ground background bs cardfile chgat clip_printw color_content color_set demo_altkeys demo_defkey demo_forms demo_keyok demo_menus demo_new_pair demo_panels demo_tabs ditto dup_field extended_color firework firstlast foldkeys form_driver_w gdc hanoi hashtest inch_wide inchs ins_wide insdelln inserts knight lrtest move_field movewindow ncurses padview pair_content picsmap rain redraw savescreen tclock test_add_wchstr test_addchstr test_addstr test_addwstr test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs view worm xmas
+noecho test: back_ground background bs cardfile chgat clip_printw color_content color_set combine demo_altkeys demo_defkey demo_forms demo_keyok demo_menus demo_new_pair demo_panels demo_tabs ditto dup_field extended_color firework firstlast foldkeys form_driver_w gdc hanoi hashtest inch_wide inchs ins_wide insdelln inserts knight lrtest move_field movewindow ncurses padview pair_content picsmap rain redraw savescreen tclock test_add_wchstr test_addchstr test_addstr test_addwstr test_delwin test_get_wstr test_getstr test_instr test_inwstr test_mouse test_opaque test_unget_wch testcurs view worm xmas
noecho_sp lib: ncurses
nofilter -
nofilter_sp -
-nonl test: bs demo_forms dup_field hashtest move_field movewindow ncurses padview view worm xmas
+nonl test: bs demo_forms dup_field hashtest move_field movewindow ncurses padview test_mouse view worm xmas
nonl_sp lib: ncurses
noqiflush -
noqiflush_sp test: sp_tinfo
-noraw test: demo_forms demo_menus dup_field move_field ncurses testcurs
+noraw test: demo_forms demo_menus dup_field move_field ncurses test_mouse testcurs
noraw_sp test: sp_tinfo
notimeout test: ncurses test_opaque
numcodes test: demo_termcap test_arrays progs: dump_entry
@@ -579,16 +589,16 @@ pecho_wchar -
pechochar -
pnoutrefresh test: ncurses padview popup_msg
prefresh test: testcurs
-printw test: back_ground background blue bs color_content color_set demo_altkeys demo_defkey demo_keyok demo_tabs extended_color filter foldkeys ncurses pair_content savescreen testcurs testscanw view
-putp test: filter test_sgr progs: tput
+printw test: back_ground background blue bs color_content color_set combine demo_altkeys demo_defkey demo_keyok demo_tabs extended_color filter foldkeys ncurses pair_content savescreen test_delwin test_unget_wch testcurs testscanw view
+putp test: filter test_mouse test_sgr progs: tput
putp_sp test: sp_tinfo
putwin test: ncurses
qiflush -
qiflush_sp test: sp_tinfo
-raw test: demo_forms dup_field move_field ncurses redraw testcurs
+raw test: demo_forms dup_field move_field ncurses redraw test_mouse testcurs
raw_sp test: sp_tinfo
-redrawwin test: padview redraw view
-refresh test: blue bs color_content demo_defkey demo_forms demo_keyok demo_menus demo_panels demo_tabs dots_curses dots_mvcur dots_xcurses dup_field echochar filter firstlast form_driver_w gdc hanoi hashtest lrtest move_field movewindow ncurses pair_content picsmap savescreen tclock testcurs view xmas
+redrawwin test: combine padview redraw view
+refresh test: blue bs color_content demo_defkey demo_forms demo_keyok demo_menus demo_panels demo_tabs dots_curses dots_mvcur dots_xcurses dup_field echochar filter firstlast form_driver_w gdc hanoi hashtest lrtest move_field movewindow ncurses pair_content picsmap savescreen tclock test_delwin test_endwin test_mouse testcurs view xmas
reset_color_pairs test: picsmap
reset_color_pairs_sp -
reset_prog_mode test: filter ncurses
@@ -608,7 +618,7 @@ ripoffline_sp -
savetty -
savetty_sp test: sp_tinfo
scanw test: testcurs testscanw
-scr_dump test: savescreen
+scr_dump test: combine savescreen
scr_init test: savescreen
scr_init_sp -
scr_restore test: savescreen
@@ -617,7 +627,7 @@ scr_set test: savescreen
scr_set_sp -
scrl test: view
scroll test: testcurs
-scrollok test: clip_printw color_content demo_altkeys demo_defkey demo_keyok demo_new_pair demo_panels ditto foldkeys hashtest knight ncurses pair_content picsmap redraw test_opaque testcurs testscanw view
+scrollok test: clip_printw color_content demo_altkeys demo_defkey demo_keyok demo_new_pair demo_panels ditto foldkeys hashtest knight ncurses pair_content picsmap redraw test_delwin test_opaque test_unget_wch testcurs testscanw view
set_curterm test: list_keys sp_tinfo
set_curterm_sp test: sp_tinfo
set_escdelay test: test_opaque
@@ -625,7 +635,7 @@ set_escdelay_sp lib: ncurses
set_tabsize test: demo_tabs test_opaque
set_tabsize_sp test: sp_tinfo
set_term lib: ncurses
-setcchar test: back_ground demo_new_pair demo_panels ins_wide ncurses picsmap savescreen test_add_wchstr test_addwstr
+setcchar test: back_ground combine demo_new_pair demo_panels ins_wide ncurses picsmap savescreen test_add_wchstr test_addwstr
setscrreg test: view
setupterm test: demo_terminfo dots list_keys sp_tinfo test_setupterm test_sgr test_termattrs test_tparm test_vid_puts test_vidputs progs: clear tabs tput tset
slk_attr -
@@ -663,7 +673,7 @@ standend test: blue gdc ncurses
standout test: blue ncurses
start_color test: back_ground background blue bs cardfile chgat clip_printw color_content color_set demo_forms demo_menus demo_new_pair demo_panels dots_curses dots_xcurses dup_field echochar extended_color filter firework gdc hanoi ins_wide insdelln inserts knight move_field ncurses newdemo padview pair_content picsmap rain savescreen tclock test_add_wchstr test_addchstr test_addstr test_addwstr testaddch testcurs view worm xmas
start_color_sp -
-stdscr test: back_ground background bs chgat clip_printw color_content demo_altkeys demo_forms demo_menus demo_new_pair demo_panels ditto dup_field edit_field extended_color filter firework foldkeys form_driver_w gdc hanoi hashtest inch_wide inchs ins_wide insdelln inserts key_names keynames knight lrtest move_field movewindow ncurses padview pair_content picsmap rain redraw savescreen tclock test_add_wchstr test_addchstr test_addstr test_addwstr test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs testscanw view worm xmas
+stdscr test: back_ground background bs chgat clip_printw color_content combine demo_altkeys demo_forms demo_menus demo_new_pair demo_panels ditto dup_field edit_field extended_color filter firework foldkeys form_driver_w gdc hanoi hashtest inch_wide inchs ins_wide insdelln inserts key_names keynames knight lrtest move_field movewindow ncurses padview pair_content picsmap rain redraw savescreen tclock test_add_wchstr test_addchstr test_addstr test_addwstr test_delwin test_get_wstr test_getstr test_instr test_inwstr test_mouse test_opaque test_unget_wch testcurs testscanw view worm xmas
strcodes test: demo_termcap test_arrays progs: dump_entry
strfnames test: demo_terminfo list_keys test_arrays progs: dump_entry
strnames test: demo_terminfo foldkeys list_keys test_arrays test_tparm progs: dump_entry infocmp tic
@@ -684,29 +694,31 @@ tgetnum test: demo_termcap dots_termcap railroad
tgetnum_sp test: sp_tinfo
tgetstr test: demo_termcap dots_termcap railroad
tgetstr_sp test: sp_tinfo
-tgoto test: dots_termcap railroad progs: tic
+tgoto test: dots_termcap railroad test_mouse progs: tic
tigetflag test: demo_terminfo savescreen progs: tic tput
tigetflag_sp test: sp_tinfo
tigetnum test: demo_tabs demo_terminfo dots dots_mvcur ncurses savescreen progs: tput
tigetnum_sp test: sp_tinfo
-tigetstr test: blue demo_defkey demo_new_pair demo_terminfo foldkeys list_keys savescreen test_sgr test_tparm testcurs progs: clear_cmd tic tput
+tigetstr test: blue demo_defkey demo_new_pair demo_terminfo foldkeys list_keys savescreen test_mouse test_sgr test_tparm testcurs progs: clear_cmd tic tput
tigetstr_sp test: sp_tinfo
timeout test: filter rain savescreen
-tiparm -
+tiparm test: test_tparm
+tiparm_s test: test_tparm
+tiscan_s test: test_tparm
touchline test: chgat clip_printw insdelln
-touchwin test: chgat clip_printw demo_menus filter firstlast inch_wide inchs ins_wide insdelln inserts movewindow ncurses popup_msg redraw test_add_wchstr test_addchstr test_addstr test_addwstr test_get_wstr test_getstr test_instr test_inwstr test_opaque xmas
+touchwin test: chgat clip_printw demo_menus filter firstlast inch_wide inchs ins_wide insdelln inserts movewindow ncurses popup_msg redraw test_add_wchstr test_addchstr test_addstr test_addwstr test_delwin test_get_wstr test_getstr test_instr test_inwstr test_opaque xmas
tparm test: dots dots_mvcur test_sgr test_tparm progs: tic tput
-tputs test: dots dots_mvcur dots_termcap railroad test_vid_puts test_vidputs progs: clear_cmd reset_cmd tabs
+tputs test: dots dots_mvcur dots_termcap railroad test_tparm test_vid_puts test_vidputs progs: clear_cmd reset_cmd tabs
tputs_sp test: sp_tinfo
trace -
ttytype test: demo_terminfo test_sgr
typeahead test: testcurs
typeahead_sp test: sp_tinfo
-unctrl test: ncurses redraw test_add_wchstr test_addchstr testcurs
+unctrl test: ncurses redraw test_add_wchstr test_addchstr test_mouse testcurs
unctrl_sp test: sp_tinfo
-unget_wch -
+unget_wch test: test_unget_wch
unget_wch_sp -
-ungetch test: bs knight
+ungetch test: bs knight test_unget_wch
ungetch_sp lib: ncurses
ungetmouse lib: menu
ungetmouse_sp -
@@ -732,7 +744,7 @@ vidputs test: test_vidputs
vidputs_sp -
vline test: gdc ncurses
vline_set -
-vw_printw test: clip_printw movewindow
+vw_printw test: clip_printw movewindow test_mouse
vw_scanw -
vwprintw -
vwscanw -
@@ -750,8 +762,8 @@ wattr_get test: ncurses
wattr_off lib: ncurses
wattr_on lib: ncurses
wattr_set test: ncurses
-wattroff test: demo_forms ncurses testcurs xmas
-wattron test: testcurs xmas
+wattroff test: clip_printw demo_forms ncurses testcurs xmas
+wattron test: clip_printw testcurs xmas
wattrset test: clip_printw demo_forms insdelln ncurses newdemo padview test_get_wstr test_getstr testcurs xmas
wbkgd test: cardfile demo_forms demo_menus ncurses newdemo padview testcurs
wbkgdset test: demo_panels ins_wide inserts ncurses test_add_wchstr test_addchstr test_addstr test_addwstr
@@ -761,7 +773,7 @@ wborder test: ncurses
wborder_set test: ncurses
wchgat test: chgat test_get_wstr test_getstr view
wclear test: ncurses test_opaque testcurs
-wclrtobot test: firstlast inch_wide inchs ncurses test_instr test_inwstr testcurs
+wclrtobot test: firstlast inch_wide inchs ncurses test_delwin test_instr test_inwstr testcurs
wclrtoeol test: chgat clip_printw demo_defkey demo_keyok demo_menus demo_panels firstlast inch_wide inchs ins_wide insdelln inserts knight ncurses test_add_wchstr test_addchstr test_addstr test_addwstr test_instr test_inwstr testcurs
wcolor_set lib: ncurses
wcursyncup lib: form
@@ -774,8 +786,8 @@ werase test: cardfile demo_forms demo_menus demo_panels dup_field firstlast k
wget_wch test: ins_wide ncurses test_add_wchstr test_addwstr
wget_wstr test: test_get_wstr
wgetbkgrnd lib: ncurses
-wgetch test: cardfile chgat clip_printw demo_defkey demo_keyok demo_menus demo_panels ditto dump_window dup_field edit_field gdc insdelln inserts knight move_field movewindow ncurses newdemo popup_msg rain redraw test_addchstr test_addstr test_opaque testcurs worm
-wgetdelay -
+wgetch test: cardfile chgat clip_printw demo_defkey demo_keyok demo_menus demo_panels ditto dump_window dup_field edit_field gdc insdelln inserts knight move_field movewindow ncurses newdemo popup_msg rain redraw test_addchstr test_addstr test_delwin test_opaque testcurs worm
+wgetdelay test: test_opaque
wgetn_wstr test: ncurses test_get_wstr
wgetnstr test: ncurses test_getstr
wgetparent test: test_opaque
@@ -802,15 +814,15 @@ winsstr test: inserts
winstr test: test_instr
winwstr test: test_inwstr
wmouse_trafo test: ncurses
-wmove test: chgat clip_printw demo_altkeys demo_defkey demo_keyok demo_menus demo_panels dump_window extended_color firstlast foldkeys inch_wide inchs ins_wide insdelln inserts knight movewindow ncurses newdemo padview picsmap redraw savescreen test_add_wchstr test_addchstr test_addstr test_addwstr test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs view worm
+wmove test: chgat clip_printw demo_altkeys demo_defkey demo_keyok demo_menus demo_panels dump_window extended_color firstlast foldkeys inch_wide inchs ins_wide insdelln inserts knight movewindow ncurses newdemo padview picsmap redraw savescreen test_add_wchstr test_addchstr test_addstr test_addwstr test_get_wstr test_getstr test_instr test_inwstr test_mouse test_opaque testcurs view worm
wnoutrefresh test: demo_menus ditto inch_wide inchs ins_wide inserts knight movewindow ncurses padview popup_msg redraw test_add_wchstr test_addchstr test_addstr test_addwstr test_get_wstr test_getstr test_instr test_inwstr test_opaque
-wprintw test: chgat clip_printw demo_defkey demo_forms demo_keyok demo_menus demo_panels inch_wide inchs ins_wide insdelln inserts knight ncurses test_add_wchstr test_addchstr test_addstr test_addwstr test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs
+wprintw test: chgat clip_printw demo_defkey demo_forms demo_keyok demo_menus demo_panels inch_wide inchs ins_wide insdelln inserts knight ncurses test_add_wchstr test_addchstr test_addstr test_addwstr test_get_wstr test_getstr test_instr test_inwstr test_mouse test_opaque testcurs
wredrawln test: redraw
-wrefresh test: chgat clip_printw demo_forms demo_keyok demo_menus demo_panels dup_field firstlast ins_wide insdelln inserts knight lrtest move_field movewindow ncurses newdemo popup_msg redraw savescreen tclock test_add_wchstr test_addchstr test_addstr test_addwstr testcurs worm xmas
+wrefresh test: chgat clip_printw demo_forms demo_keyok demo_menus demo_panels dup_field firstlast ins_wide insdelln inserts knight lrtest move_field movewindow ncurses newdemo popup_msg redraw savescreen tclock test_add_wchstr test_addchstr test_addstr test_addwstr test_delwin testcurs worm xmas
wresize test: cardfile demo_menus ncurses
wscanw test: testcurs
wscrl test: ncurses testcurs
-wsetscrreg test: ncurses testcurs
+wsetscrreg test: ncurses test_delwin testcurs
wstandend test: ncurses test_opaque xmas
wstandout test: ncurses test_opaque xmas
wsyncdown test: movewindow
diff --git a/test/aclocal.m4 b/test/aclocal.m4
index 6c9727cd4983..fdab359ae5f1 100644
--- a/test/aclocal.m4
+++ b/test/aclocal.m4
@@ -1,5 +1,5 @@
dnl***************************************************************************
-dnl Copyright 2018-2020,2021 Thomas E. Dickey *
+dnl Copyright 2018-2023,2024 Thomas E. Dickey *
dnl Copyright 2003-2017,2018 Free Software Foundation, Inc. *
dnl *
dnl Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,7 +27,7 @@ dnl sale, use or other dealings in this Software without prior written *
dnl authorization. *
dnl***************************************************************************
dnl
-dnl $Id: aclocal.m4,v 1.190 2021/01/06 01:21:11 tom Exp $
+dnl $Id: aclocal.m4,v 1.221 2024/01/19 18:27:20 tom Exp $
dnl
dnl Author: Thomas E. Dickey
dnl
@@ -43,7 +43,7 @@ dnl https://invisible-island.net/autoconf/my-autoconf.html
dnl
dnl ---------------------------------------------------------------------------
dnl ---------------------------------------------------------------------------
-dnl AM_LANGINFO_CODESET version: 6 updated: 2021/01/01 16:53:59
+dnl AM_LANGINFO_CODESET version: 7 updated: 2023/01/11 04:05:23
dnl -------------------
dnl Inserted as requested by gettext 0.10.40
dnl File from /usr/share/aclocal
@@ -55,7 +55,9 @@ 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 <langinfo.h>],
+ [AC_TRY_LINK([
+$ac_includes_default
+#include <langinfo.h>],
[char* cs = nl_langinfo(CODESET); (void)cs],
am_cv_langinfo_codeset=yes,
am_cv_langinfo_codeset=no)
@@ -181,9 +183,9 @@ AC_SUBST(EXTRA_CPPFLAGS)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_ADD_INCDIR version: 16 updated: 2020/12/31 20:19:42
+dnl CF_ADD_INCDIR version: 17 updated: 2021/09/04 06:35:04
dnl -------------
-dnl Add an include-directory to $CPPFLAGS. Don't add /usr/include, since it's
+dnl Add an include-directory to $CPPFLAGS. Don't add /usr/include, since it is
dnl redundant. We don't normally need to add -I/usr/local/include for gcc,
dnl but old versions (and some misinstalled ones) need that. To make things
dnl worse, gcc 3.x may give error messages if -I/usr/local/include is added to
@@ -345,6 +347,25 @@ ifelse([$5],NONE,,[{ test -z "$5" || test "x$5" = xNONE || test "x$4" != "x$5";
}
])dnl
dnl ---------------------------------------------------------------------------
+dnl CF_APPEND_CFLAGS version: 3 updated: 2021/09/05 17:25:40
+dnl ----------------
+dnl Use CF_ADD_CFLAGS after first checking for potential redefinitions.
+dnl $1 = flags to add
+dnl $2 = if given makes this macro verbose.
+define([CF_APPEND_CFLAGS],
+[
+for cf_add_cflags in $1
+do
+ case "x$cf_add_cflags" in
+ (x-[[DU]]*)
+ CF_REMOVE_CFLAGS($cf_add_cflags,CFLAGS,[$2])
+ CF_REMOVE_CFLAGS($cf_add_cflags,CPPFLAGS,[$2])
+ ;;
+ esac
+ CF_ADD_CFLAGS([$cf_add_cflags],[$2])
+done
+])dnl
+dnl ---------------------------------------------------------------------------
dnl CF_APPEND_TEXT version: 1 updated: 2017/02/25 18:58:55
dnl --------------
dnl use this macro for appending text without introducing an extra blank at
@@ -390,7 +411,45 @@ ifelse([$3],,[ :]dnl
])dnl
])])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_CC_ENV_FLAGS version: 10 updated: 2020/12/31 18:40:20
+dnl CF_C11_NORETURN version: 4 updated: 2023/02/18 17:41:25
+dnl ---------------
+AC_DEFUN([CF_C11_NORETURN],
+[
+AC_MSG_CHECKING(if you want to use C11 _Noreturn feature)
+CF_ARG_ENABLE(stdnoreturn,
+ [ --enable-stdnoreturn enable C11 _Noreturn feature for diagnostics],
+ [enable_stdnoreturn=yes],
+ [enable_stdnoreturn=no])
+AC_MSG_RESULT($enable_stdnoreturn)
+
+if test $enable_stdnoreturn = yes; then
+AC_CACHE_CHECK([for C11 _Noreturn feature], cf_cv_c11_noreturn,
+ [AC_TRY_COMPILE([
+$ac_includes_default
+#include <stdnoreturn.h>
+static _Noreturn void giveup(void) { exit(0); }
+ ],
+ [if (feof(stdin)) giveup()],
+ cf_cv_c11_noreturn=yes,
+ cf_cv_c11_noreturn=no)
+ ])
+else
+ cf_cv_c11_noreturn=no,
+fi
+
+if test "$cf_cv_c11_noreturn" = yes; then
+ AC_DEFINE(HAVE_STDNORETURN_H, 1,[Define if <stdnoreturn.h> header is available and working])
+ AC_DEFINE_UNQUOTED(STDC_NORETURN,_Noreturn,[Define if C11 _Noreturn keyword is supported])
+ HAVE_STDNORETURN_H=1
+else
+ HAVE_STDNORETURN_H=0
+fi
+
+AC_SUBST(HAVE_STDNORETURN_H)
+AC_SUBST(STDC_NORETURN)
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_CC_ENV_FLAGS version: 11 updated: 2023/02/20 11:15:46
dnl ---------------
dnl Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content
dnl into CC. This will not help with broken scripts that wrap the compiler
@@ -431,7 +490,7 @@ case "$CC" in
AC_MSG_WARN(your environment uses the CC variable to hold CFLAGS/CPPFLAGS options)
# humor him...
cf_prog=`echo "$CC" | sed -e 's/ / /g' -e 's/[[ ]]* / /g' -e 's/[[ ]]*[[ ]]-[[^ ]].*//'`
- cf_flags=`echo "$CC" | ${AWK:-awk} -v prog="$cf_prog" '{ printf("%s", [substr]([$]0,1+length(prog))); }'`
+ cf_flags=`echo "$CC" | sed -e "s%^$cf_prog%%"`
CC="$cf_prog"
for cf_arg in $cf_flags
do
@@ -511,7 +570,7 @@ AC_TRY_LINK([#include <stdio.h>],[printf("Hello world");],,
fi
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_CHECK_CURSES_LIB version: 3 updated: 2021/01/04 19:45:09
+dnl CF_CHECK_CURSES_LIB version: 4 updated: 2021/09/05 17:25:40
dnl -------------------
dnl $1 = nominal library name, used also for header lookup
dnl $2 = suffix to append to library name
@@ -533,10 +592,11 @@ elif test "x${PKG_CONFIG:=none}" != xnone; then
AC_MSG_CHECKING(if the $1$2 package files work)
+ cf_save_CFLAGS="$CFLAGS"
cf_save_CPPFLAGS="$CPPFLAGS"
cf_save_LIBS="$LIBS"
- CF_ADD_CFLAGS(`$PKG_CONFIG --cflags "$1$2"`)
+ CF_APPEND_CFLAGS(`$PKG_CONFIG --cflags "$1$2"`)
CF_ADD_LIBS(`$PKG_CONFIG --libs "$1$2"`)
AC_TRY_LINK([#include <$1.h>],
@@ -550,13 +610,14 @@ elif test "x${PKG_CONFIG:=none}" != xnone; then
[cf_have_curses_lib=no])
AC_MSG_RESULT($cf_have_curses_lib)
test "$cf_have_curses_lib" = maybe && cf_have_curses_lib=yes
- if test "$cf_have_curses_lib" != "yes"
+ if test "$cf_have_curses_lib" = "yes"
then
- CPPFLAGS="$cf_save_CPPFLAGS"
- LIBS="$cf_save_LIBS"
- else
CF_UPPER(cf_upper,have_lib$1)
AC_DEFINE_UNQUOTED($cf_upper,1)
+ else
+ CFLAGS="$cf_save_CFLAGS"
+ CPPFLAGS="$cf_save_CPPFLAGS"
+ LIBS="$cf_save_LIBS"
fi
fi
fi
@@ -568,7 +629,7 @@ if test "$cf_have_curses_lib" = no; then
fi
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_CLANG_COMPILER version: 8 updated: 2021/01/01 13:31:04
+dnl CF_CLANG_COMPILER version: 9 updated: 2023/02/18 17:41:25
dnl -----------------
dnl Check if the given compiler is really clang. clang's C driver defines
dnl __GNUC__ (fooling the configure script into setting $GCC to yes) but does
@@ -590,7 +651,7 @@ if test "$ifelse([$1],,[$1],GCC)" = yes ; then
AC_TRY_COMPILE([],[
#ifdef __clang__
#else
-make an error
+#error __clang__ is not defined
#endif
],[ifelse([$2],,CLANG_COMPILER,[$2])=yes
],[])
@@ -636,7 +697,7 @@ if test "x$ifelse([$2],,CLANG_COMPILER,[$2])" = "xyes" ; then
fi
])
dnl ---------------------------------------------------------------------------
-dnl CF_CONST_X_STRING version: 6 updated: 2021/01/01 13:31:04
+dnl CF_CONST_X_STRING version: 8 updated: 2023/12/01 17:22:50
dnl -----------------
dnl The X11R4-X11R6 Xt specification uses an ambiguous String type for most
dnl character-strings.
@@ -666,11 +727,12 @@ AC_TRY_COMPILE(
#include <stdlib.h>
#include <X11/Intrinsic.h>
],
-[String foo = malloc(1); (void)foo],[
+[String foo = malloc(1); free((void*)foo)],[
AC_CACHE_CHECK(for X11/Xt const-feature,cf_cv_const_x_string,[
AC_TRY_COMPILE(
[
+#undef _CONST_X_STRING
#define _CONST_X_STRING /* X11R7.8 (perhaps) */
#undef XTSTRINGDEFINES /* X11R5 and later */
#include <stdlib.h>
@@ -879,7 +941,7 @@ if (foo + 1234L > 5678L)
done
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_CURSES_HEADER version: 5 updated: 2015/04/23 20:35:30
+dnl CF_CURSES_HEADER version: 6 updated: 2022/12/02 20:06:52
dnl ----------------
dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
dnl variations of ncurses' installs.
@@ -893,7 +955,7 @@ for cf_header in \
curses.h ifelse($1,,,[$1/curses.h]) ifelse($1,,[ncurses/ncurses.h ncurses/curses.h])
do
AC_TRY_COMPILE([#include <${cf_header}>],
- [initscr(); tgoto("?", 0,0)],
+ [initscr(); endwin()],
[cf_cv_ncurses_header=$cf_header; break],[])
done
])
@@ -906,7 +968,7 @@ fi
AC_CHECK_HEADERS($cf_cv_ncurses_header)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_CURSES_LIBS version: 44 updated: 2021/01/02 09:31:20
+dnl CF_CURSES_LIBS version: 45 updated: 2022/12/02 20:06:52
dnl --------------
dnl Look for the curses libraries. Older curses implementations may require
dnl termcap/termlib to be linked as well. Call CF_CURSES_CPPFLAGS first.
@@ -915,7 +977,7 @@ AC_DEFUN([CF_CURSES_LIBS],[
AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
AC_MSG_CHECKING(if we have identified curses libraries)
AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
- [initscr(); tgoto("?", 0,0)],
+ [initscr(); endwin()],
cf_result=yes,
cf_result=no)
AC_MSG_RESULT($cf_result)
@@ -1016,7 +1078,7 @@ if test ".$ac_cv_func_initscr" != .yes ; then
elif test "$cf_term_lib" != predefined ; then
AC_MSG_CHECKING(if we need both $cf_curs_lib and $cf_term_lib libraries)
AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
- [initscr(); tgoto((char *)0, 0, 0);],
+ [initscr(); endwin();],
[cf_result=no],
[
LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS"
@@ -1036,7 +1098,7 @@ fi
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_CURSES_TERM_H version: 15 updated: 2021/01/02 09:31:20
+dnl CF_CURSES_TERM_H version: 16 updated: 2024/01/07 06:34:16
dnl ----------------
dnl SVr4 curses should have term.h as well (where it puts the definitions of
dnl the low-level interface). This may not be true in old/broken implementations,
@@ -1082,7 +1144,7 @@ case "$cf_cv_term_header" in
#ifdef NCURSES_VERSION
#include <${cf_header}>
#else
-make an error
+#error expected NCURSES_VERSION to be defined
#endif],
[WINDOW *x; (void)x],
[cf_cv_term_header=$cf_header
@@ -1223,9 +1285,9 @@ 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
dnl ---------------------------------------------------------------------------
-dnl CF_DISABLE_ECHO version: 13 updated: 2015/04/18 08:56:57
+dnl CF_DISABLE_ECHO version: 14 updated: 2021/09/04 06:35:04
dnl ---------------
-dnl You can always use "make -n" to see the actual options, but it's hard to
+dnl You can always use "make -n" to see the actual options, but it is hard to
dnl pick out/analyze warning messages when the compile-line is long.
dnl
dnl Sets:
@@ -1260,7 +1322,7 @@ AC_SUBST(SHOW_CC)
AC_SUBST(ECHO_CC)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_DISABLE_LEAKS version: 8 updated: 2021/01/05 20:05:09
+dnl CF_DISABLE_LEAKS version: 9 updated: 2021/04/03 16:41:50
dnl ----------------
dnl Combine no-leak checks with the libraries or tools that are used for the
dnl checks.
@@ -1273,9 +1335,9 @@ 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],
- [enable_leaks=no],
+ [enable_leaks=$enableval],
[enable_leaks=yes])
-dnl TODO - drop with_no_leaks
+dnl with_no_leaks is more readable...
if test "x$enable_leaks" = xno; then with_no_leaks=yes; else with_no_leaks=no; fi
AC_MSG_RESULT($with_no_leaks)
@@ -1558,7 +1620,7 @@ ifelse([$5],,AC_MSG_WARN(Cannot find $3 library),[$5])
fi
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_FIX_WARNINGS version: 3 updated: 2020/12/31 18:40:20
+dnl CF_FIX_WARNINGS version: 4 updated: 2021/12/16 18:22:31
dnl ---------------
dnl Warning flags do not belong in CFLAGS, CPPFLAGS, etc. Any of gcc's
dnl "-Werror" flags can interfere with configure-checks. Those go into
@@ -1570,11 +1632,13 @@ if test "$GCC" = yes || test "$GXX" = yes
then
case [$]$1 in
(*-Werror=*)
- CF_VERBOSE(repairing $1: [$]$1)
cf_temp_flags=
for cf_temp_scan in [$]$1
do
case "x$cf_temp_scan" in
+ (x-Werror=format*)
+ CF_APPEND_TEXT(cf_temp_flags,$cf_temp_scan)
+ ;;
(x-Werror=*)
CF_APPEND_TEXT(EXTRA_CFLAGS,$cf_temp_scan)
;;
@@ -1583,16 +1647,20 @@ then
;;
esac
done
- $1="$cf_temp_flags"
- CF_VERBOSE(... fixed [$]$1)
- CF_VERBOSE(... extra $EXTRA_CFLAGS)
+ if test "x[$]$1" != "x$cf_temp_flags"
+ then
+ CF_VERBOSE(repairing $1: [$]$1)
+ $1="$cf_temp_flags"
+ CF_VERBOSE(... fixed [$]$1)
+ CF_VERBOSE(... extra $EXTRA_CFLAGS)
+ fi
;;
esac
fi
AC_SUBST(EXTRA_CFLAGS)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_FUNC_CURSES_VERSION version: 8 updated: 2021/01/02 09:31:20
+dnl CF_FUNC_CURSES_VERSION version: 9 updated: 2023/01/05 18:06:10
dnl ----------------------
dnl Solaris has a data item 'curses_version', which confuses AC_CHECK_FUNCS.
dnl It's a character string "SVR4", not documented.
@@ -1600,11 +1668,14 @@ AC_DEFUN([CF_FUNC_CURSES_VERSION],
[
AC_CACHE_CHECK(for function curses_version, cf_cv_func_curses_version,[
AC_TRY_RUN([
+$ac_includes_default
+
#include <${cf_cv_ncurses_header:-curses.h}>
+
int main(void)
{
char temp[1024];
- sprintf(temp, "%s\\n", curses_version());
+ sprintf(temp, "%.999s\\n", curses_version());
${cf_cv_main_return:-return}(0);
}]
,[cf_cv_func_curses_version=yes]
@@ -1614,7 +1685,34 @@ rm -f core])
test "$cf_cv_func_curses_version" = yes && AC_DEFINE(HAVE_CURSES_VERSION,1,[Define to 1 if we have curses_version function])
])
dnl ---------------------------------------------------------------------------
-dnl CF_FUNC_OPENPTY version: 6 updated: 2021/01/01 13:31:04
+dnl CF_FUNC_GETTIME version: 2 updated: 2023/02/25 08:45:56
+dnl ---------------
+dnl Check for gettimeofday or clock_gettime. In 2023, the former is still more
+dnl widely supported, but "deprecated" (2008), so we will use the latter if it
+dnl is available, to reduce compiler warnings.
+AC_DEFUN([CF_FUNC_GETTIME],[
+AC_CACHE_CHECK(for clock_gettime,cf_cv_func_clock_gettime,[
+ AC_TRY_LINK([#include <time.h>],
+ [struct timespec ts;
+ int rc = clock_gettime(CLOCK_REALTIME, &ts); (void) rc; (void)ts],
+ [cf_cv_func_clock_gettime=yes],
+ [cf_cv_func_clock_gettime=no])
+])
+
+if test "$cf_cv_func_clock_gettime" = yes
+then
+ AC_DEFINE(HAVE_CLOCK_GETTIME,1,[Define to 1 if we have clock_gettime function])
+else
+AC_CHECK_FUNC(gettimeofday,
+ AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define to 1 if we have gettimeofday function]),[
+
+AC_CHECK_LIB(bsd, gettimeofday,
+ AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define to 1 if we have gettimeofday function])
+ CF_ADD_LIB(bsd))])dnl CLIX: bzero, select, gettimeofday
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_FUNC_OPENPTY version: 7 updated: 2023/12/03 09:21:34
dnl ---------------
dnl Check for openpty() function, along with <pty.h> header. It may need the
dnl "util" library as well.
@@ -1631,6 +1729,7 @@ AC_CACHE_CHECK(for openpty header,cf_cv_func_openpty,[
],[
int x = openpty((int *)0, (int *)0, (char *)0,
(struct termios *)0, (struct winsize *)0);
+ (void)x;
],[
cf_cv_func_openpty=$cf_header
break
@@ -1642,13 +1741,14 @@ AC_CACHE_CHECK(for openpty header,cf_cv_func_openpty,[
])
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_GCC_ATTRIBUTES version: 23 updated: 2021/01/03 18:30:50
+dnl CF_GCC_ATTRIBUTES version: 24 updated: 2021/03/20 12:00:25
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.
AC_DEFUN([CF_GCC_ATTRIBUTES],
[AC_REQUIRE([AC_PROG_FGREP])dnl
+AC_REQUIRE([CF_C11_NORETURN])dnl
if test "$GCC" = yes || test "$GXX" = yes
then
@@ -1671,6 +1771,7 @@ then
AC_CHECKING([for $CC __attribute__ directives])
cat > "conftest.$ac_ext" <<EOF
#line __oline__ "${as_me:-configure}"
+#include <stdio.h>
#include "confdefs.h"
#include "conftest.h"
#include "conftest.i"
@@ -1685,8 +1786,8 @@ cat > "conftest.$ac_ext" <<EOF
#define GCC_SCANFLIKE(fmt,var) /*nothing*/
#endif
extern void wow(char *,...) GCC_SCANFLIKE(1,2);
-extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
-extern void foo(void) GCC_NORETURN;
+extern GCC_NORETURN void oops(char *,...) GCC_PRINTFLIKE(1,2);
+extern GCC_NORETURN void foo(void);
int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { (void)argc; (void)argv; return 0; }
EOF
cf_printf_attribute=no
@@ -1753,7 +1854,7 @@ rm -rf ./conftest*
fi
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_GCC_VERSION version: 8 updated: 2019/09/07 13:38:36
+dnl CF_GCC_VERSION version: 9 updated: 2023/03/05 14:30:13
dnl --------------
dnl Find version of gcc, and (because icc/clang pretend to be gcc without being
dnl compatible), attempt to determine if icc/clang is actually used.
@@ -1762,7 +1863,7 @@ AC_REQUIRE([AC_PROG_CC])
GCC_VERSION=none
if test "$GCC" = yes ; then
AC_MSG_CHECKING(version of $CC)
- GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC[[^)]]*) //' -e 's/^.*(Debian[[^)]]*) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
+ GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^[[^(]]*([[^)]][[^)]]*) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
test -z "$GCC_VERSION" && GCC_VERSION=unknown
AC_MSG_RESULT($GCC_VERSION)
fi
@@ -1884,7 +1985,7 @@ rm -rf ./conftest*
AC_SUBST(EXTRA_CFLAGS)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_GETOPT_HEADER version: 7 updated: 2021/01/01 13:31:04
+dnl CF_GETOPT_HEADER version: 8 updated: 2021/06/19 19:16:16
dnl ----------------
dnl Check for getopt's variables which are commonly defined in stdlib.h,
dnl unistd.h or (nonstandard) in getopt.h
@@ -1897,7 +1998,7 @@ for cf_header in stdio.h stdlib.h unistd.h getopt.h
do
AC_TRY_COMPILE([
#include <$cf_header>],
-[int x = optind; char *y = optarg],
+[int x = optind; char *y = optarg; (void)x; (void)y],
[cf_cv_getopt_header=$cf_header
break])
done
@@ -2083,7 +2184,7 @@ AC_DEFUN([CF_INHERIT_SCRIPT],
test -f $1 || ( test -f ../$1 && cp ../$1 ./ )
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_INSTALL_OPTS version: 2 updated: 2018/08/18 12:19:21
+dnl CF_INSTALL_OPTS version: 3 updated: 2023/06/03 15:17:30
dnl ---------------
dnl prompt for/fill-in useful install-program options
AC_DEFUN([CF_INSTALL_OPTS],
@@ -2091,6 +2192,7 @@ AC_DEFUN([CF_INSTALL_OPTS],
CF_INSTALL_OPT_S
CF_INSTALL_OPT_P
CF_INSTALL_OPT_O
+CF_INSTALL_OPT_STRIP_PROG
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_INSTALL_OPT_O version: 3 updated: 2020/12/31 20:19:42
@@ -2177,7 +2279,73 @@ fi
AC_SUBST(INSTALL_OPT_S)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_INTEL_COMPILER version: 8 updated: 2021/01/01 16:53:59
+dnl CF_INSTALL_OPT_STRIP_PROG version: 1 updated: 2023/06/03 15:17:30
+dnl -------------------------
+dnl Provide an option for overriding the strip program used in install "-s"
+dnl
+dnl coreutils install provides a --strip-program option
+dnl FreeBSD uses STRIPBIN environment variable, while NetBSD and OpenBSD use
+dnl STRIP environment variable. Other versions of install do not support this.
+AC_DEFUN([CF_INSTALL_OPT_STRIP_PROG],
+[
+AC_REQUIRE([CF_INSTALL_OPT_S])
+if test -n "$INSTALL_OPT_S"
+then
+ AC_MSG_CHECKING(if you want to specify strip-program)
+ AC_ARG_WITH(strip-program,
+ [ --with-strip-program=XX specify program to use when stripping in install],
+ [with_strip_program=$withval],
+ [with_strip_program=no])
+ AC_MSG_RESULT($with_strip_program)
+ if test "$with_strip_program" != no
+ then
+ AC_MSG_CHECKING(if strip-program is supported with this installer)
+ cf_install_program=`echo "$INSTALL" | sed -e 's%[[ ]]*[[ ]]-.%%'`
+ check_install_strip=no
+ if test -f "$cf_install_program"
+ then
+ check_install_version=`"$cf_install_program" --version 2>/dev/null | head -n 1 | grep coreutils`
+ if test -n "$check_install_version"
+ then
+ check_install_strip="option"
+ else
+ for check_strip_variable in STRIPBIN STRIP
+ do
+ if strings "$cf_install_program" | grep "^$check_strip_variable[$]" >/dev/null
+ then
+ check_install_strip="environ"
+ break
+ fi
+ done
+ fi
+ fi
+ AC_MSG_RESULT($check_install_strip)
+ case "$check_install_strip" in
+ (no)
+ AC_MSG_WARN($cf_install_program does not support strip program option)
+ with_strip_program=no
+ ;;
+ (environ)
+ cat >install.tmp <<-CF_EOF
+ #! $SHELL
+ STRIPBIN="$with_strip_program" \\
+ STRIP="$with_strip_program" \\
+ $INSTALL "[$]@"
+ CF_EOF
+ INSTALL="`pwd`/install.tmp"
+ chmod +x "$INSTALL"
+ CF_VERBOSE(created $INSTALL)
+ ;;
+ (option)
+ INSTALL_OPT_S="$INSTALL_OPT_S --strip-program=\"$with_strip_program\""
+ ;;
+ esac
+ fi
+fi
+AC_SUBST(INSTALL_OPT_S)
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_INTEL_COMPILER version: 9 updated: 2023/02/18 17:41:25
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
@@ -2203,7 +2371,7 @@ if test "$ifelse([$1],,[$1],GCC)" = yes ; then
AC_TRY_COMPILE([],[
#ifdef __INTEL_COMPILER
#else
-make an error
+#error __INTEL_COMPILER is not defined
#endif
],[ifelse([$2],,INTEL_COMPILER,[$2])=yes
cf_save_CFLAGS="$cf_save_CFLAGS -we147"
@@ -2301,6 +2469,89 @@ CF_SUBDIR_PATH($1,$2,lib)
$1="$cf_library_path_list [$]$1"
])dnl
dnl ---------------------------------------------------------------------------
+dnl CF_MAKE_PHONY version: 3 updated: 2021/01/08 16:08:21
+dnl -------------
+dnl Check if the make-program handles a ".PHONY" target, e.g,. a target which
+dnl acts as a placeholder.
+dnl
+dnl The ".PHONY" feature was proposed in 2011 here
+dnl https://www.austingroupbugs.net/view.php?id=523
+dnl and is scheduled for release in P1003.1 Issue 8 (late 2022).
+dnl
+dnl This is not supported by SVr4 make (or SunOS 4, 4.3SD, etc), but works with
+dnl a few others (i.e., GNU make and the non-POSIX "BSD" make):
+dnl
+dnl + This is a GNU make feature (since April 1988, but in turn from binutils,
+dnl date unspecified).
+dnl
+dnl + It was adopted in NetBSD make in June 1995.
+dnl
+dnl + The other BSD make programs are derived from the NetBSD make (and for
+dnl that reason are not actually different "implementations").
+dnl
+dnl + Some features of NetBSD make were actually adapted from pmake, which
+dnl began as a modified GNU make starting in 1993.
+dnl
+dnl + Version 3.8 of the dmake program in January 1992 also implemented this
+dnl GNU make extension, but is less well known than the BSD make.
+AC_DEFUN([CF_MAKE_PHONY],[
+AC_CACHE_CHECK(for \".PHONY\" make-support, cf_cv_make_PHONY,[
+ rm -rf conftest*
+ (
+ mkdir conftest || exit 1
+ cd conftest
+ cat >makefile <<'CF_EOF'
+.PHONY: always
+DATA=0
+always: always.out
+ @echo "** making [$]@ [$](DATA)"
+once: once.out
+ @echo "** making [$]@ [$](DATA)"
+always.out:
+ @echo "** making [$]@ [$](DATA)"
+ echo [$](DATA) > [$]@
+once.out:
+ @echo "** making [$]@ [$](DATA)"
+ echo [$](DATA) > [$]@
+CF_EOF
+ for cf_data in 1 2 3
+ do
+ ${MAKE:-make} always DATA=$cf_data
+ ${MAKE:-make} once DATA=$cf_data
+ ${MAKE:-make} -t always once
+ if test -f always ; then
+ echo "no (case 1)" > ../conftest.tmp
+ elif test ! -f always.out ; then
+ echo "no (case 2)" > ../conftest.tmp
+ elif test ! -f once.out ; then
+ echo "no (case 3)" > ../conftest.tmp
+ elif ! cmp -s always.out once.out ; then
+ echo "no (case 4)" > ../conftest.tmp
+ diff always.out once.out
+ else
+ cf_check="`cat always.out`"
+ if test "x$cf_check" != "x$cf_data" ; then
+ echo "no (case 5)" > ../conftest.tmp
+ else
+ echo yes > ../conftest.tmp
+ rm -f ./*.out
+ continue
+ fi
+ fi
+ break
+ done
+ ) >&AC_FD_CC 2>&1
+ cf_cv_make_PHONY="`cat conftest.tmp`"
+ rm -rf conftest*
+])
+MAKE_NO_PHONY="#"
+MAKE_PHONY="#"
+test "x$cf_cv_make_PHONY" = xyes && MAKE_PHONY=
+test "x$cf_cv_make_PHONY" != xyes && MAKE_NO_PHONY=
+AC_SUBST(MAKE_NO_PHONY)
+AC_SUBST(MAKE_PHONY)
+])dnl
+dnl ---------------------------------------------------------------------------
dnl CF_MAKE_TAGS version: 6 updated: 2010/10/23 15:52:32
dnl ------------
dnl Generate tags/TAGS targets for makefiles. Do not generate TAGS if we have
@@ -2338,7 +2589,7 @@ AC_SUBST(MAKE_UPPER_TAGS)
AC_SUBST(MAKE_LOWER_TAGS)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_MATH_LIB version: 10 updated: 2020/12/31 18:40:20
+dnl CF_MATH_LIB version: 11 updated: 2022/07/27 19:01:48
dnl -----------
dnl Checks for libraries. At least one UNIX system, Apple Macintosh
dnl Rhapsody 5.5, does not have -lm. We cannot use the simpler
@@ -2348,18 +2599,42 @@ AC_DEFUN([CF_MATH_LIB],
AC_CACHE_CHECK(if -lm needed for math functions,
cf_cv_need_libm,[
AC_TRY_LINK([
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <math.h>
],
[double x = rand(); printf("result = %g\\n", ]ifelse([$2],,sin(x),$2)[)],
[cf_cv_need_libm=no],
[cf_cv_need_libm=yes])])
+
if test "$cf_cv_need_libm" = yes
then
-ifelse($1,,[
- CF_ADD_LIB(m)
-],[$1=-lm])
+
+ cf_save_LIBS="$LIBS"
+ LIBS="$LIBS -lm"
+ AC_CACHE_CHECK(if -lm is available for math functions,
+ cf_cv_have_libm,[
+ AC_TRY_LINK([
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <math.h>
+ ],
+ [double x = rand(); printf("result = %g\\n", ]ifelse([$2],,sin(x),$2)[)],
+ [cf_cv_have_libm=yes],
+ [cf_cv_have_libm=no])])
+ LIBS="$cf_save_LIBS"
+
+ if test "$cf_cv_have_libm" = yes
+ then
+ ifelse($1,,[CF_ADD_LIB(m)],[$1=-lm])
+ fi
+else
+ cf_cv_have_libm=yes
+fi
+
+if test "$cf_cv_have_libm" = yes
+then
+ AC_DEFINE(HAVE_MATH_FUNCS,1,[Define to 1 if math functions are available])
fi
])
dnl ---------------------------------------------------------------------------
@@ -2401,7 +2676,7 @@ AC_DEFUN([CF_MSG_LOG],[
echo "${as_me:-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_NCURSES_CC_CHECK version: 5 updated: 2020/12/31 20:19:42
+dnl CF_NCURSES_CC_CHECK version: 6 updated: 2023/02/18 17:47:58
dnl -------------------
dnl Check if we can compile with ncurses' header file
dnl $1 is the cache variable to set
@@ -2418,7 +2693,7 @@ AC_DEFUN([CF_NCURSES_CC_CHECK],[
#ifdef NCURSES_VERSION
]ifelse($3,ncursesw,[
#ifndef WACS_BSSB
- make an error
+ #error WACS_BSSB is not defined
#endif
])[
printf("%s\\n", NCURSES_VERSION);
@@ -2426,7 +2701,7 @@ printf("%s\\n", NCURSES_VERSION);
#ifdef __NCURSES_H
printf("old\\n");
#else
- make an error
+ #error __NCURSES_H is not defined
#endif
#endif
]
@@ -2434,7 +2709,7 @@ printf("old\\n");
,[$1=no])
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_NCURSES_CONFIG version: 26 updated: 2021/01/03 08:05:37
+dnl CF_NCURSES_CONFIG version: 28 updated: 2021/08/28 15:20:37
dnl -----------------
dnl Tie together the configure-script macros for ncurses, preferring these in
dnl order:
@@ -2476,7 +2751,7 @@ if test "x${PKG_CONFIG:=none}" != xnone; then
[initscr(); mousemask(0,0); tigetstr((char *)0);],
[AC_TRY_RUN([#include <${cf_cv_ncurses_header:-curses.h}>
int main(void)
- { char *xx = curses_version(); return (xx == 0); }],
+ { const char *xx = curses_version(); return (xx == 0); }],
[cf_test_ncuconfig=yes],
[cf_test_ncuconfig=no],
[cf_test_ncuconfig=maybe])],
@@ -2495,14 +2770,14 @@ if test "x${PKG_CONFIG:=none}" != xnone; then
;;
esac
- CF_ADD_CFLAGS($cf_pkg_cflags)
+ CF_APPEND_CFLAGS($cf_pkg_cflags)
CF_ADD_LIBS($cf_pkg_libs)
AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
[initscr(); mousemask(0,0); tigetstr((char *)0);],
[AC_TRY_RUN([#include <${cf_cv_ncurses_header:-curses.h}>
int main(void)
- { char *xx = curses_version(); return (xx == 0); }],
+ { const char *xx = curses_version(); return (xx == 0); }],
[cf_have_ncuconfig=yes],
[cf_have_ncuconfig=no],
[cf_have_ncuconfig=maybe])],
@@ -2537,7 +2812,7 @@ if test "x$cf_have_ncuconfig" = "xno"; then
if test "$NCURSES_CONFIG" != none ; then
- CF_ADD_CFLAGS(`$NCURSES_CONFIG --cflags`)
+ CF_APPEND_CFLAGS(`$NCURSES_CONFIG --cflags`)
CF_ADD_LIBS(`$NCURSES_CONFIG --libs`)
# even with config script, some packages use no-override for curses.h
@@ -2716,7 +2991,7 @@ esac
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_NCURSES_LIBS version: 20 updated: 2021/01/03 08:05:37
+dnl CF_NCURSES_LIBS version: 21 updated: 2021/09/04 06:37:12
dnl ---------------
dnl Look for the ncurses library. This is a little complicated on Linux,
dnl because it may be linked with the gpm (general purpose mouse) library.
@@ -2745,7 +3020,7 @@ AC_CHECK_LIB(gpm,Gpm_Open,
case "$host_os" in
(freebsd*)
# This is only necessary if you are linking against an obsolete
- # version of ncurses (but it should do no harm, since it's static).
+ # version of ncurses (but it should do no harm, since it is static).
if test "$cf_nculib_root" = ncurses ; then
AC_CHECK_LIB(mytinfo,tgoto,[cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"])
fi
@@ -2799,7 +3074,7 @@ then
fi
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_NCURSES_VERSION version: 16 updated: 2020/12/31 20:19:42
+dnl CF_NCURSES_VERSION version: 18 updated: 2024/01/07 06:34:16
dnl ------------------
dnl Check for the version of ncurses, to aid in reporting bugs, etc.
dnl Call CF_CURSES_CPPFLAGS first, or CF_NCURSES_CPPFLAGS. We don't use
@@ -2812,8 +3087,10 @@ AC_CACHE_CHECK(for ncurses version, cf_cv_ncurses_version,[
cf_tempfile=out$$
rm -f "$cf_tempfile"
AC_TRY_RUN([
+$ac_includes_default
+
#include <${cf_cv_ncurses_header:-curses.h}>
-#include <stdio.h>
+
int main(void)
{
FILE *fp = fopen("$cf_tempfile", "w");
@@ -2827,7 +3104,7 @@ int main(void)
# ifdef __NCURSES_H
fprintf(fp, "old\\n");
# else
- make an error
+ #error expected ncurses header to define __NCURSES_H
# endif
#endif
${cf_cv_main_return:-return}(0);
@@ -2916,19 +3193,29 @@ AC_TRY_COMPILE([
test "$cf_cv_netbsd_menu_h" = yes && AC_DEFINE(HAVE_NETBSD_MENU_H,1,[Define to 1 if we appear to be using NetBSD menu.h])
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_NO_LEAKS_OPTION version: 8 updated: 2021/01/05 20:05:09
+dnl CF_NO_LEAKS_OPTION version: 9 updated: 2021/06/13 19:45:41
dnl ------------------
dnl see CF_WITH_NO_LEAKS
+dnl
+dnl $1 = option/name
+dnl $2 = help-text
+dnl $3 = symbol to define if the option is set
+dnl $4 = additional actions to take if the option is set
AC_DEFUN([CF_NO_LEAKS_OPTION],[
AC_MSG_CHECKING(if you want to use $1 for testing)
AC_ARG_WITH($1,
[$2],
- [AC_DEFINE_UNQUOTED($3,1,"Define to 1 if you want to use $1 for testing.")ifelse([$4],,[
+ [case "x$withval" in
+ (x|xno) ;;
+ (*)
+ : "${with_cflags:=-g}"
+ : "${enable_leaks:=no}"
+ with_$1=yes
+ AC_DEFINE_UNQUOTED($3,1,"Define to 1 if you want to use $1 for testing.")ifelse([$4],,[
$4
])
- : "${with_cflags:=-g}"
- : "${enable_leaks:=no}"
- with_$1=yes],
+ ;;
+ esac],
[with_$1=])
AC_MSG_RESULT(${with_$1:-no})
@@ -3027,14 +3314,16 @@ else
fi
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_PKG_CONFIG version: 11 updated: 2021/01/01 13:31:04
+dnl CF_PKG_CONFIG version: 13 updated: 2023/10/28 11:59:01
dnl -------------
dnl Check for the package-config program, unless disabled by command-line.
+dnl
+dnl Sets $PKG_CONFIG to the pathname of the pkg-config program.
AC_DEFUN([CF_PKG_CONFIG],
[
AC_MSG_CHECKING(if you want to use pkg-config)
AC_ARG_WITH(pkg-config,
- [ --with-pkg-config{=path} enable/disable use of pkg-config],
+ [[ --with-pkg-config[=CMD] enable/disable use of pkg-config and its name CMD]],
[cf_pkg_config=$withval],
[cf_pkg_config=yes])
AC_MSG_RESULT($cf_pkg_config)
@@ -3063,7 +3352,7 @@ fi
AC_SUBST(PKG_CONFIG)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_POSIX_C_SOURCE version: 11 updated: 2018/12/31 20:46:17
+dnl CF_POSIX_C_SOURCE version: 12 updated: 2023/02/18 17:41:25
dnl -----------------
dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
dnl
@@ -3094,7 +3383,7 @@ 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 <sys/types.h>],[
#ifndef _POSIX_C_SOURCE
-make an error
+#error _POSIX_C_SOURCE is not defined
#endif],
[cf_cv_posix_c_source=no],
[cf_want_posix_source=no
@@ -3113,7 +3402,7 @@ make an error
if test "$cf_want_posix_source" = yes ; then
AC_TRY_COMPILE([#include <sys/types.h>],[
#ifdef _POSIX_SOURCE
-make an error
+#error _POSIX_SOURCE is defined
#endif],[],
cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE")
fi
@@ -3124,7 +3413,7 @@ make an error
CF_MSG_LOG(if the second compile does not leave our definition intact error)
AC_TRY_COMPILE([#include <sys/types.h>],[
#ifndef _POSIX_C_SOURCE
-make an error
+#error _POSIX_C_SOURCE is not defined
#endif],,
[cf_cv_posix_c_source=no])
CFLAGS="$cf_save_CFLAGS"
@@ -3228,7 +3517,7 @@ case $INSTALL in
esac
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_PROG_LINT version: 4 updated: 2019/11/20 18:55:37
+dnl CF_PROG_LINT version: 5 updated: 2022/08/20 15:44:13
dnl ------------
AC_DEFUN([CF_PROG_LINT],
[
@@ -3239,6 +3528,25 @@ case "x$LINT" in
;;
esac
AC_SUBST(LINT_OPTS)
+AC_SUBST(LINT_LIBS)
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_REMOVE_CFLAGS version: 3 updated: 2021/09/05 17:25:40
+dnl ----------------
+dnl Remove a given option from CFLAGS/CPPFLAGS
+dnl $1 = option to remove
+dnl $2 = variable to update
+dnl $3 = nonempty to allow verbose message
+define([CF_REMOVE_CFLAGS],
+[
+cf_tmp_cflag=`echo "x$1" | sed -e 's/^.//' -e 's/=.*//'`
+while true
+do
+ cf_old_cflag=`echo "x[$]$2" | sed -e 's/^.//' -e 's/[[ ]][[ ]]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[[^ ]][[^ ]]*\\)\?%%" -e 's/^[[ ]]*//' -e 's%[[ ]][[ ]]*-D% -D%g' -e 's%[[ ]][[ ]]*-I% -I%g'`
+ test "[$]$2" != "$cf_old_cflag" || break
+ ifelse([$3],,,[CF_VERBOSE(removing old option $1 from $2)])
+ $2="$cf_old_cflag"
+done
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_REMOVE_DEFINE version: 3 updated: 2010/01/09 11:05:50
@@ -3412,7 +3720,7 @@ do
done
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_SIGWINCH version: 6 updated: 2021/01/01 13:31:04
+dnl CF_SIGWINCH version: 7 updated: 2023/02/18 17:41:25
dnl -----------
dnl Use this macro after CF_XOPEN_SOURCE, but do not require it (not all
dnl programs need this test).
@@ -3455,7 +3763,7 @@ do
#include <sys/signal.h>
],[
#if SIGWINCH != $cf_sigwinch
-make an error
+#error SIGWINCH is not $cf_sigwinch
#endif
int x = SIGWINCH; (void)x],
[cf_cv_fixup_sigwinch=$cf_sigwinch
@@ -3697,34 +4005,20 @@ else
fi
])
dnl ---------------------------------------------------------------------------
-dnl CF_TRY_XOPEN_SOURCE version: 2 updated: 2018/06/20 20:23:13
+dnl CF_TRY_XOPEN_SOURCE version: 4 updated: 2022/09/10 15:16:16
dnl -------------------
dnl If _XOPEN_SOURCE is not defined in the compile environment, check if we
dnl can define it successfully.
AC_DEFUN([CF_TRY_XOPEN_SOURCE],[
AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
- AC_TRY_COMPILE([
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-],[
-#ifndef _XOPEN_SOURCE
-make an error
-#endif],
+ AC_TRY_COMPILE(CF__XOPEN_SOURCE_HEAD,CF__XOPEN_SOURCE_BODY,
[cf_cv_xopen_source=no],
[cf_save="$CPPFLAGS"
CF_APPEND_TEXT(CPPFLAGS,-D_XOPEN_SOURCE=$cf_XOPEN_SOURCE)
- AC_TRY_COMPILE([
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-],[
-#ifdef _XOPEN_SOURCE
-make an error
-#endif],
- [cf_cv_xopen_source=no],
- [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
- CPPFLAGS="$cf_save"
+ AC_TRY_COMPILE(CF__XOPEN_SOURCE_HEAD,CF__XOPEN_SOURCE_BODY,
+ [cf_cv_xopen_source=no],
+ [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
+ CPPFLAGS="$cf_save"
])
])
@@ -3732,7 +4026,7 @@ if test "$cf_cv_xopen_source" != no ; then
CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
- CF_ADD_CFLAGS($cf_temp_xopen_source)
+ CF_APPEND_CFLAGS($cf_temp_xopen_source)
fi
])
dnl ---------------------------------------------------------------------------
@@ -3745,15 +4039,20 @@ AC_DEFUN([CF_UPPER],
$1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_UTF8_LIB version: 8 updated: 2012/10/06 08:57:51
+dnl CF_UTF8_LIB version: 10 updated: 2023/01/11 04:05:23
dnl -----------
dnl Check for multibyte support, and if not found, utf8 compatibility library
AC_DEFUN([CF_UTF8_LIB],
[
+AC_HAVE_HEADERS(wchar.h)
AC_CACHE_CHECK(for multibyte character support,cf_cv_utf8_lib,[
cf_save_LIBS="$LIBS"
AC_TRY_LINK([
-#include <stdlib.h>],[putwc(0,0);],
+$ac_includes_default
+#ifdef HAVE_WCHAR_H
+#include <wchar.h>
+#endif
+],[putwc(0,0);],
[cf_cv_utf8_lib=yes],
[CF_FIND_LINKAGE([
#include <libutf8.h>],[putwc(0,0);],utf8,
@@ -3779,7 +4078,7 @@ AC_DEFUN([CF_VERBOSE],
CF_MSG_LOG([$1])
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_WCHAR_TYPE version: 4 updated: 2012/10/06 16:39:58
+dnl CF_WCHAR_TYPE version: 5 updated: 2023/12/03 09:21:34
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
@@ -3796,7 +4095,7 @@ AC_TRY_COMPILE([
#ifdef HAVE_LIBUTF8_H
#include <libutf8.h>
#endif],
- [$1 state],
+ [$1 state; (void)state],
[cf_cv_$1=no],
[AC_TRY_COMPILE([
#include <stdlib.h>
@@ -3806,7 +4105,7 @@ AC_TRY_COMPILE([
#ifdef HAVE_LIBUTF8_H
#include <libutf8.h>
#endif],
- [$1 value],
+ [$1 value; (void) value],
[cf_cv_$1=yes],
[cf_cv_$1=unknown])])])
@@ -3883,7 +4182,7 @@ if test "$with_dmalloc" = yes ; then
fi
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_WITH_LIB_BASENAME version: 1 updated: 2020/03/07 20:05:14
+dnl CF_WITH_LIB_BASENAME version: 2 updated: 2023/11/22 20:48:30
dnl --------------------
dnl Allow for overriding the basename of a library, i.e., the part to which
dnl prefixes/suffixes are attached.
@@ -3895,7 +4194,7 @@ AC_DEFUN([CF_WITH_LIB_BASENAME],
[
AC_MSG_CHECKING(for desired basename for $2 library)
AC_ARG_WITH($2-libname,
- [ --with-$2-libname=XXX override ifelse($3,,$2,$3) basename of library],
+ [[ --with-$2-libname[=XXX] override ifelse($3,,$2,$3) basename of library]],
[with_lib_basename=$withval],
[with_lib_basename=ifelse($3,,$2,$3)])
$1="$with_lib_basename"
@@ -3912,7 +4211,7 @@ AC_MSG_RESULT([$]$1)
AC_SUBST($1)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_WITH_NCURSES_ETC version: 5 updated: 2016/02/20 19:23:20
+dnl CF_WITH_NCURSES_ETC version: 6 updated: 2023/01/16 10:10:06
dnl -------------------
dnl Use this macro for programs which use any variant of "curses", e.g.,
dnl "ncurses", and "PDCurses". Programs that can use curses and some unrelated
@@ -3972,6 +4271,7 @@ case $cf_cv_screen in
esac
CF_NCURSES_PTHREADS($cf_cv_screen)
+AC_SUBST(cf_cv_screen)
])dnl
dnl ---------------------------------------------------------------------------
@@ -4000,7 +4300,7 @@ CF_NO_LEAKS_OPTION(valgrind,
[USE_VALGRIND])
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_WITH_X11_RGB version: 2 updated: 2019/12/31 08:53:54
+dnl CF_WITH_X11_RGB version: 3 updated: 2023/10/28 11:59:01
dnl ---------------
dnl Handle configure option "--with-x11-rgb", setting these shell
dnl variables:
@@ -4040,7 +4340,7 @@ dnl /usr/X11/lib/X11/rgb.txt
AC_DEFUN([CF_WITH_X11_RGB],[
AC_MSG_CHECKING(for X11 rgb file)
AC_ARG_WITH(x11-rgb,
- [ --with-x11-rgb=FILE file containing X11 rgb information (EPREFIX/lib/X11/rgb.txt)],
+ [ --with-x11-rgb=FILE obtain X11 color definitions from FILE (default: EPREFIX/lib/X11/rgb.txt)],
[RGB_PATH=$withval],
[RGB_PATH=auto])
@@ -4086,7 +4386,7 @@ fi
AC_SUBST(no_x11_rgb)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_XOPEN_CURSES version: 16 updated: 2021/01/02 09:31:20
+dnl CF_XOPEN_CURSES version: 20 updated: 2024/01/07 06:54:12
dnl ---------------
dnl Test if we should define X/Open source for curses, needed on Digital Unix
dnl 4.x, to see the extended functions, but breaks on IRIX 6.x.
@@ -4099,22 +4399,22 @@ AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
AC_CACHE_CHECK(definition to turn on extended curses functions,cf_cv_need_xopen_extension,[
cf_cv_need_xopen_extension=unknown
AC_TRY_LINK([
-#include <stdlib.h>
+$ac_includes_default
#include <${cf_cv_ncurses_header:-curses.h}>],[
#if defined(NCURSES_VERSION_PATCH)
#if (NCURSES_VERSION_PATCH < 20100501) && (NCURSES_VERSION_PATCH >= 20100403)
- make an error
+ #error disallow ncurses versions between 2020/04/03 and 2010/05/01
#endif
#endif
-#ifdef NCURSES_VERSION
+#ifdef NCURSES_WIDECHAR
+#error prefer to fall-through on the second checks
+#endif
+ static char dummy[10];
cchar_t check;
int check2 = curs_set((int)sizeof(check));
-#endif
- long x = winnstr(stdscr, "", 0);
+ long x = winnstr(stdscr, dummy, 5);
int x1, y1;
-#ifdef NCURSES_VERSION
(void)check2;
-#endif
getbegyx(stdscr, y1, x1);
(void)x;
(void)y1;
@@ -4126,18 +4426,15 @@ AC_TRY_LINK([
do
AC_TRY_LINK([
#define $cf_try_xopen_extension 1
-#include <stdlib.h>
+$ac_includes_default
#include <${cf_cv_ncurses_header:-curses.h}>],[
-#ifdef NCURSES_VERSION
+ static char dummy[10];
cchar_t check;
int check2 = curs_set((int)sizeof(check));
-#endif
- long x = winnstr(stdscr, "", 0);
+ long x = winnstr(stdscr, dummy, 5);
int x1, y1;
getbegyx(stdscr, y1, x1);
-#ifdef NCURSES_VERSION
(void)check2;
-#endif
(void)x;
(void)y1;
(void)x1;
@@ -4155,7 +4452,7 @@ esac
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_XOPEN_SOURCE version: 57 updated: 2021/01/01 16:53:59
+dnl CF_XOPEN_SOURCE version: 67 updated: 2023/09/06 18:55:27
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,
@@ -4164,6 +4461,18 @@ dnl
dnl Parameters:
dnl $1 is the nominal value for _XOPEN_SOURCE
dnl $2 is the nominal value for _POSIX_C_SOURCE
+dnl
+dnl The default case prefers _XOPEN_SOURCE over _POSIX_C_SOURCE if the
+dnl implementation predefines it, because X/Open and most implementations agree
+dnl that the latter is a legacy or "aligned" value.
+dnl
+dnl Because _XOPEN_SOURCE is preferred, if defining _POSIX_C_SOURCE turns
+dnl that off, then refrain from setting _POSIX_C_SOURCE explicitly.
+dnl
+dnl References:
+dnl https://pubs.opengroup.org/onlinepubs/007904975/functions/xsh_chap02_02.html
+dnl https://docs.oracle.com/cd/E19253-01/816-5175/standards-5/index.html
+dnl https://www.gnu.org/software/libc/manual/html_node/Feature-Test-Macros.html
AC_DEFUN([CF_XOPEN_SOURCE],[
AC_REQUIRE([AC_CANONICAL_HOST])
AC_REQUIRE([CF_POSIX_VISIBLE])
@@ -4178,9 +4487,6 @@ case "$host_os" in
(aix[[4-7]]*)
cf_xopen_source="-D_ALL_SOURCE"
;;
-(msys)
- cf_XOPEN_SOURCE=600
- ;;
(darwin[[0-8]].*)
cf_xopen_source="-D_APPLE_C_SOURCE"
;;
@@ -4206,7 +4512,7 @@ case "$host_os" in
cf_xopen_source="-D_SGI_SOURCE"
cf_XOPEN_SOURCE=
;;
-(linux*|uclinux*|gnu*|mint*|k*bsd*-gnu|cygwin)
+(linux*gnu|linux*gnuabi64|linux*gnuabin32|linux*gnueabi|linux*gnueabihf|linux*gnux32|uclinux*|gnu*|mint*|k*bsd*-gnu|cygwin|msys|mingw*|linux*uclibc)
CF_GNU_SOURCE($cf_XOPEN_SOURCE)
;;
(minix*)
@@ -4220,7 +4526,15 @@ case "$host_os" in
(netbsd*)
cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
;;
-(openbsd[[4-9]]*)
+(openbsd[[6-9]]*)
+ # OpenBSD 6.x has broken locale support, both compile-time and runtime.
+ # see https://www.mail-archive.com/bugs@openbsd.org/msg13200.html
+ # Abusing the conformance level is a workaround.
+ AC_MSG_WARN(this system does not provide usable locale support)
+ cf_xopen_source="-D_BSD_SOURCE"
+ cf_XOPEN_SOURCE=700
+ ;;
+(openbsd[[4-5]]*)
# setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw
cf_xopen_source="-D_BSD_SOURCE"
cf_XOPEN_SOURCE=600
@@ -4247,12 +4561,20 @@ case "$host_os" in
;;
(*)
CF_TRY_XOPEN_SOURCE
+ cf_save_xopen_cppflags="$CPPFLAGS"
CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
+ # Some of these niche implementations use copy/paste, double-check...
+ if test "$cf_cv_xopen_source" = no ; then
+ CF_VERBOSE(checking if _POSIX_C_SOURCE interferes with _XOPEN_SOURCE)
+ AC_TRY_COMPILE(CF__XOPEN_SOURCE_HEAD,CF__XOPEN_SOURCE_BODY,,[
+ AC_MSG_WARN(_POSIX_C_SOURCE definition is not usable)
+ CPPFLAGS="$cf_save_xopen_cppflags"])
+ fi
;;
esac
if test -n "$cf_xopen_source" ; then
- CF_ADD_CFLAGS($cf_xopen_source,true)
+ CF_APPEND_CFLAGS($cf_xopen_source,true)
fi
dnl In anything but the default case, we may have system-specific setting
@@ -4262,7 +4584,7 @@ if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then
AC_MSG_CHECKING(if _XOPEN_SOURCE really is set)
AC_TRY_COMPILE([#include <stdlib.h>],[
#ifndef _XOPEN_SOURCE
-make an error
+#error _XOPEN_SOURCE is not defined
#endif],
[cf_XOPEN_SOURCE_set=yes],
[cf_XOPEN_SOURCE_set=no])
@@ -4271,7 +4593,7 @@ make an error
then
AC_TRY_COMPILE([#include <stdlib.h>],[
#if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE
-make an error
+#error (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE
#endif],
[cf_XOPEN_SOURCE_set_ok=yes],
[cf_XOPEN_SOURCE_set_ok=no])
@@ -4286,7 +4608,7 @@ fi
fi # cf_cv_posix_visible
])
dnl ---------------------------------------------------------------------------
-dnl CF_X_ATHENA version: 24 updated: 2020/03/10 18:53:47
+dnl CF_X_ATHENA version: 25 updated: 2023/01/11 04:05:23
dnl -----------
dnl Check for Xaw (Athena) libraries
dnl
@@ -4360,6 +4682,7 @@ if test "$PKG_CONFIG" != none ; then
AC_CACHE_CHECK(for usable $cf_x_athena/Xmu package,cf_cv_xaw_compat,[
AC_TRY_LINK([
+$ac_includes_default
#include <X11/Xmu/CharSet.h>
],[
int check = XmuCompareISOLatin1("big", "small");
@@ -4446,7 +4769,7 @@ elif test "$cf_x_athena_inc" != default ; then
fi
])
dnl ---------------------------------------------------------------------------
-dnl CF_X_ATHENA_LIBS version: 13 updated: 2020/01/11 18:16:10
+dnl CF_X_ATHENA_LIBS version: 14 updated: 2023/01/11 04:05:23
dnl ----------------
dnl Normally invoked by CF_X_ATHENA, with $1 set to the appropriate flavor of
dnl the Athena widgets, e.g., Xaw, Xaw3d, neXtaw.
@@ -4479,6 +4802,7 @@ do
CF_ADD_LIBS($cf_libs)
AC_MSG_CHECKING(for $cf_test in $cf_libs)
AC_TRY_LINK([
+$ac_includes_default
#include <X11/Intrinsic.h>
#include <X11/$cf_x_athena_root/SimpleMenu.h>
],[
@@ -4515,7 +4839,7 @@ CF_TRY_PKG_CONFIG(Xext,,[
[CF_ADD_LIB(Xext)])])
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_X_TOOLKIT version: 26 updated: 2021/01/02 09:31:20
+dnl CF_X_TOOLKIT version: 27 updated: 2023/01/11 04:05:23
dnl ------------
dnl Check for X Toolkit libraries
AC_DEFUN([CF_X_TOOLKIT],
@@ -4550,6 +4874,7 @@ CF_TRY_PKG_CONFIG(xt,[
# we have an "xt" package, but it may omit Xt's dependency on X11
AC_CACHE_CHECK(for usable X dependency,cf_cv_xt_x11_compat,[
AC_TRY_LINK([
+$ac_includes_default
#include <X11/Xlib.h>
],[
int rc1 = XDrawLine((Display*) 0, (Drawable) 0, (GC) 0, 0, 0, 0, 0);
@@ -4568,6 +4893,7 @@ AC_TRY_LINK([
AC_CACHE_CHECK(for usable X Toolkit package,cf_cv_xt_ice_compat,[
AC_TRY_LINK([
+$ac_includes_default
#include <X11/Shell.h>
],[int num = IceConnectionNumber(0); (void) num
],[cf_cv_xt_ice_compat=yes],[cf_cv_xt_ice_compat=no])])
@@ -4653,3 +4979,21 @@ char * XCursesProgramName = "test";
#endif
#endif
])
+dnl ---------------------------------------------------------------------------
+dnl CF__XOPEN_SOURCE_BODY version: 2 updated: 2023/02/18 17:41:25
+dnl ---------------------
+dnl body of test when test-compiling for _XOPEN_SOURCE check
+define([CF__XOPEN_SOURCE_BODY],
+[
+#ifndef _XOPEN_SOURCE
+#error _XOPEN_SOURCE is not defined
+#endif
+])
+dnl ---------------------------------------------------------------------------
+dnl CF__XOPEN_SOURCE_HEAD version: 2 updated: 2023/02/18 17:41:25
+dnl ---------------------
+dnl headers to include when test-compiling for _XOPEN_SOURCE check
+define([CF__XOPEN_SOURCE_HEAD],
+[
+$ac_includes_default
+])
diff --git a/test/back_ground.c b/test/back_ground.c
index 100282464ac8..c53c2a36bf8c 100644
--- a/test/back_ground.c
+++ b/test/back_ground.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2021 Thomas E. Dickey *
+ * Copyright 2021,2022 Thomas E. Dickey *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
@@ -26,7 +26,7 @@
* authorization. *
****************************************************************************/
/*
- * $Id: back_ground.c,v 1.5 2021/02/20 12:23:21 tom Exp $
+ * $Id: back_ground.c,v 1.9 2022/12/10 22:28:50 tom Exp $
*/
#include <test.priv.h>
@@ -170,12 +170,13 @@ test_background(void)
}
static void
-usage(void)
+usage(int ok)
{
static const char *msg[] =
{
"Usage: background [options]"
,""
+ ,USAGE_COMMON
,"Options:"
#if HAVE_ASSUME_DEFAULT_COLORS
," -a invoke assume_default_colors, repeat to use in init_pair"
@@ -194,11 +195,14 @@ usage(void)
for (n = 0; n < SIZEOF(msg); n++)
fprintf(stderr, "%s\n", msg[n]);
- ExitProgram(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+main(int argc, char *argv[])
{
#if HAVE_ASSUME_DEFAULT_COLORS
int a_option = 0;
@@ -206,12 +210,12 @@ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
#if HAVE_USE_DEFAULT_COLORS
int d_option = 0;
#endif
- int n;
+ int ch;
setlocale(LC_ALL, "");
- while ((n = getopt(argc, argv, "ab:df:l:wW:")) != -1) {
- switch (n) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "ab:df:l:wW:")) != -1) {
+ switch (ch) {
#if HAVE_ASSUME_DEFAULT_COLORS
case 'a':
++a_option;
@@ -230,7 +234,7 @@ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
break;
case 'l':
if (!open_dump(optarg))
- usage();
+ usage(FALSE);
break;
case 'w':
wide_fill = L'\u2591';
@@ -238,8 +242,12 @@ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
case 'W':
wide_fill = decode_wchar(optarg);
break;
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
}
}
#if HAVE_USE_DEFAULT_COLORS && HAVE_ASSUME_DEFAULT_COLORS
diff --git a/test/background.c b/test/background.c
index 649ffcedb446..5942debbb45b 100644
--- a/test/background.c
+++ b/test/background.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2020,2021 Thomas E. Dickey *
+ * Copyright 2018-2021,2022 Thomas E. Dickey *
* Copyright 2003-2014,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,7 +27,7 @@
* authorization. *
****************************************************************************/
/*
- * $Id: background.c,v 1.20 2021/02/13 20:54:08 tom Exp $
+ * $Id: background.c,v 1.24 2022/12/10 22:28:50 tom Exp $
*/
#define NEED_COLOR_CODE 1
@@ -129,12 +129,13 @@ test_background(void)
}
static void
-usage(void)
+usage(int ok)
{
static const char *msg[] =
{
"Usage: background [options]"
,""
+ ,USAGE_COMMON
,"Options:"
#if HAVE_ASSUME_DEFAULT_COLORS
," -a invoke assume_default_colors, repeat to use in init_pair"
@@ -151,11 +152,14 @@ usage(void)
for (n = 0; n < SIZEOF(msg); n++)
fprintf(stderr, "%s\n", msg[n]);
- ExitProgram(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+main(int argc, char *argv[])
{
#if HAVE_ASSUME_DEFAULT_COLORS
int a_option = 0;
@@ -163,12 +167,12 @@ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
#if HAVE_USE_DEFAULT_COLORS
int d_option = 0;
#endif
- int n;
+ int ch;
setlocale(LC_ALL, "");
- while ((n = getopt(argc, argv, "ab:df:l:")) != -1) {
- switch (n) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "ab:df:l:")) != -1) {
+ switch (ch) {
#if HAVE_ASSUME_DEFAULT_COLORS
case 'a':
++a_option;
@@ -187,10 +191,14 @@ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
break;
case 'l':
if (!open_dump(optarg))
- usage();
+ usage(FALSE);
break;
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
}
}
#if HAVE_USE_DEFAULT_COLORS && HAVE_ASSUME_DEFAULT_COLORS
diff --git a/test/blue.c b/test/blue.c
index 922caab94396..90f240b62634 100644
--- a/test/blue.c
+++ b/test/blue.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2021,2022 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -37,7 +37,7 @@
*****************************************************************************/
/*
- * $Id: blue.c,v 1.53 2020/02/02 23:34:34 tom Exp $
+ * $Id: blue.c,v 1.55 2022/12/10 23:31:31 tom Exp $
*/
#include <test.priv.h>
@@ -71,7 +71,7 @@
#define BLACK_ON_WHITE 2
#define BLUE_ON_WHITE 3
-static void die(int onsig) GCC_NORETURN;
+static GCC_NORETURN void die(int onsig);
static int deck_size = PACK_SIZE; /* initial deck */
static int deck[PACK_SIZE];
@@ -465,9 +465,44 @@ use_pc_display(void)
#define use_pc_display() /* nothing */
#endif /* HAVE_LANGINFO_CODESET */
+static void
+usage(int ok)
+{
+ static const char *msg[] =
+ {
+ "Usage: blue [options]"
+ ,""
+ ,USAGE_COMMON
+ };
+ size_t n;
+
+ for (n = 0; n < SIZEOF(msg); n++)
+ fprintf(stderr, "%s\n", msg[n]);
+
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
+}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
+
int
main(int argc, char *argv[])
{
+ int ch;
+
+ while ((ch = getopt(argc, argv, OPTS_COMMON)) != -1) {
+ switch (ch) {
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
+ default:
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
+ }
+ }
+ if (optind < argc)
+ usage(FALSE);
+
setlocale(LC_ALL, "");
use_pc_display();
diff --git a/test/bs.6 b/test/bs.6
index 364fc8fe336e..12295a319580 100644
--- a/test/bs.6
+++ b/test/bs.6
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2020 Thomas E. Dickey *
+.\" Copyright 2020,2021 Thomas E. Dickey *
.\" Copyright 1998,2006 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,8 +27,8 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: bs.6,v 1.3 2020/02/02 23:34:34 tom Exp $
-.TH BATTLESHIPS 6 "Aug 23, 1989"
+.\" $Id: bs.6,v 1.5 2021/06/17 21:20:30 tom Exp $
+.TH BATTLESHIPS 6 2021-06-17 ncurses-examples Games
.SH NAME
bs \- battleships game
.SH SYNOPSIS
@@ -45,7 +45,7 @@ may be used to ignore the current position and randomly place your currently
selected ship. The `R' command will place all remaining ships randomly. The ^L
command (form feed, ASCII 12) will force a screen redraw).
.PP
-The command-line arguments control game modes.
+The command-line arguments control game modes.
.nf
-b selects a `blitz' variant
diff --git a/test/bs.c b/test/bs.c
index 0e4076f6110d..c7569cf207fd 100644
--- a/test/bs.c
+++ b/test/bs.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2022,2023 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -26,7 +26,7 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************/
-/*
+/*
* bs.c - original author: Bruce Holloway
* salvo option by: Chuck A DeGaul
* with improved user interface, autoconfiguration and code cleanup
@@ -35,7 +35,7 @@
* v2.0 featuring strict ANSI/POSIX conformance, November 1993.
* v2.1 with ncurses mouse support, September 1995
*
- * $Id: bs.c,v 1.75 2020/02/02 23:34:34 tom Exp $
+ * $Id: bs.c,v 1.79 2023/05/27 20:13:10 tom Exp $
*/
#include <test.priv.h>
@@ -181,7 +181,7 @@ static int salvo, blitz, closepack;
#define PR (void)addstr
-static void uninitgame(int sig) GCC_NORETURN;
+static GCC_NORETURN void uninitgame(int sig);
static void
uninitgame(int sig GCC_UNUSED)
@@ -898,8 +898,9 @@ sgetc(const char *s)
ch = toupper(ch);
if (is_QUIT(ch))
uninitgame(0);
- for (s1 = s; *s1 && ch != *s1; ++s1)
- continue;
+ for (s1 = s; *s1 && ch != *s1; ++s1) {
+ /* EMPTY */ ;
+ }
if (*s1) {
AddCh(ch);
(void) refresh();
@@ -1162,55 +1163,6 @@ playagain(void)
return (sgetc("YN") == 'Y');
}
-static void
-do_options(int c, char *op[])
-{
- if (c > 1) {
- int i;
-
- for (i = 1; i < c; i++) {
- switch (op[i][0]) {
- default:
- case '?':
- (void) fprintf(stderr, "Usage: bs [-s | -b] [-c]\n");
- (void) fprintf(stderr, "\tWhere the options are:\n");
- (void) fprintf(stderr, "\t-s : play a salvo game\n");
- (void) fprintf(stderr, "\t-b : play a blitz game\n");
- (void) fprintf(stderr, "\t-c : ships may be adjacent\n");
- ExitProgram(EXIT_FAILURE);
- break;
- case '-':
- switch (op[i][1]) {
- case 'b':
- blitz = 1;
- if (salvo == 1) {
- (void) fprintf(stderr,
- "Bad Arg: -b and -s are mutually exclusive\n");
- ExitProgram(EXIT_FAILURE);
- }
- break;
- case 's':
- salvo = 1;
- if (blitz == 1) {
- (void) fprintf(stderr,
- "Bad Arg: -s and -b are mutually exclusive\n");
- ExitProgram(EXIT_FAILURE);
- }
- break;
- case 'c':
- closepack = 1;
- break;
- default:
- (void) fprintf(stderr,
- "Bad arg: type \"%s ?\" for usage message\n",
- op[0]);
- ExitProgram(EXIT_FAILURE);
- }
- }
- }
- }
-}
-
static int
scount(int who)
{
@@ -1231,12 +1183,68 @@ scount(int who)
return (shots);
}
+static void
+usage(int ok)
+{
+ static const char *msg[] =
+ {
+ "Usage: bs [options]"
+ ,""
+ ,USAGE_COMMON
+ ,"Options:"
+ ," -b play a blitz game"
+ ," -c ships may be adjacent"
+ ," -s play a salvo game"
+ };
+ size_t n;
+
+ for (n = 0; n < SIZEOF(msg); n++)
+ fprintf(stderr, "%s\n", msg[n]);
+
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
+}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
+
int
main(int argc, char *argv[])
{
- setlocale(LC_ALL, "");
+ int ch;
- do_options(argc, argv);
+ while ((ch = getopt(argc, argv, OPTS_COMMON "bcs")) != -1) {
+ switch (ch) {
+ case 'b':
+ blitz = 1;
+ if (salvo == 1) {
+ (void) fprintf(stderr,
+ "Bad Arg: -b and -s are mutually exclusive\n");
+ ExitProgram(EXIT_FAILURE);
+ }
+ break;
+ case 's':
+ salvo = 1;
+ if (blitz == 1) {
+ (void) fprintf(stderr,
+ "Bad Arg: -s and -b are mutually exclusive\n");
+ ExitProgram(EXIT_FAILURE);
+ }
+ break;
+ case 'c':
+ closepack = 1;
+ break;
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
+ default:
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
+ }
+ }
+ if (optind < argc)
+ usage(FALSE);
+
+ setlocale(LC_ALL, "");
intro();
do {
@@ -1263,8 +1271,9 @@ main(int argc, char *argv[])
}
}
} else
- while ((turn ? cputurn() : plyturn()) && awinna() == -1)
- continue;
+ while ((turn ? cputurn() : plyturn()) && awinna() == -1) {
+ /* EMPTY */ ;
+ }
turn = OTHER;
}
} while
diff --git a/test/cardfile.c b/test/cardfile.c
index bf03755f658a..092483b02c00 100644
--- a/test/cardfile.c
+++ b/test/cardfile.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2021,2022 Thomas E. Dickey *
* Copyright 1999-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -30,7 +30,7 @@
/*
* Author: Thomas E. Dickey
*
- * $Id: cardfile.c,v 1.47 2020/02/02 23:34:34 tom Exp $
+ * $Id: cardfile.c,v 1.51 2022/12/04 00:40:11 tom Exp $
*
* File format: text beginning in column 1 is a title; other text is content.
*/
@@ -296,7 +296,7 @@ prev_card(CARD * now)
static CARD *
first_card(CARD * now)
{
- if (!isVisible(now))
+ if (now != NULL && !isVisible(now))
now = next_card(now);
return now;
}
@@ -550,37 +550,45 @@ cardfile(char *fname)
}
static void
-usage(void)
+usage(int ok)
{
static const char *msg[] =
{
"Usage: cardfile [options] file"
,""
+ ,USAGE_COMMON
,"Options:"
," -c use color if terminal supports it"
};
size_t n;
for (n = 0; n < SIZEOF(msg); n++)
fprintf(stderr, "%s\n", msg[n]);
- ExitProgram(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
/*******************************************************************************/
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
main(int argc, char *argv[])
{
- int n;
+ int ch;
setlocale(LC_ALL, "");
- while ((n = getopt(argc, argv, "c")) != -1) {
- switch (n) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "c")) != -1) {
+ switch (ch) {
case 'c':
try_color = TRUE;
break;
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
}
}
@@ -600,6 +608,7 @@ main(int argc, char *argv[])
}
if (optind + 1 == argc) {
+ int n;
for (n = 1; n < argc; n++)
read_data(argv[n]);
if (count_cards() == 0)
diff --git a/test/chgat.c b/test/chgat.c
index a5bcbea27d61..2c2b539120c4 100644
--- a/test/chgat.c
+++ b/test/chgat.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2020,2022 Thomas E. Dickey *
* Copyright 2006-2012,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,7 +27,7 @@
* authorization. *
****************************************************************************/
/*
- * $Id: chgat.c,v 1.19 2020/02/02 23:34:34 tom Exp $
+ * $Id: chgat.c,v 1.20 2022/12/10 23:31:31 tom Exp $
*
* test-driver for chgat/wchgat/mvchgat/mvwchgat
*/
@@ -348,9 +348,44 @@ test_chgat(void)
} while ((st.ch = getch()) != ERR);
}
+static void
+usage(int ok)
+{
+ static const char *msg[] =
+ {
+ "Usage: chgat [options]"
+ ,""
+ ,USAGE_COMMON
+ };
+ size_t n;
+
+ for (n = 0; n < SIZEOF(msg); n++)
+ fprintf(stderr, "%s\n", msg[n]);
+
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
+}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
+
int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+main(int argc, char *argv[])
{
+ int ch;
+
+ while ((ch = getopt(argc, argv, OPTS_COMMON)) != -1) {
+ switch (ch) {
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
+ default:
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
+ }
+ }
+ if (optind < argc)
+ usage(FALSE);
+
initscr();
cbreak();
noecho();
diff --git a/test/clip_printw.c b/test/clip_printw.c
index a4242e8467e3..c34a1e09ff34 100644
--- a/test/clip_printw.c
+++ b/test/clip_printw.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2022,2023 Thomas E. Dickey *
* Copyright 2008-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,9 +27,9 @@
* authorization. *
****************************************************************************/
/*
- * $Id: clip_printw.c,v 1.19 2020/05/10 00:40:23 tom Exp $
+ * $Id: clip_printw.c,v 1.23 2023/09/30 19:57:44 tom Exp $
*
- * demonstrate how to use printw without wrapping.
+ * demonstrate how to use printw with/without wrapping.
*/
#include <test.priv.h>
@@ -40,9 +40,15 @@
#define SHOW(n) ((n) == ERR ? "ERR" : "OK")
#define COLOR_DEFAULT (-1)
+#define X_BASE 0
+#define Y_BASE 1
+#define MARGIN 1
+#define Y_TOP (Y_BASE + MARGIN)
+
typedef struct {
unsigned c;
unsigned v;
+ bool single;
int status;
int pair;
attr_t attr;
@@ -57,21 +63,29 @@ typedef struct {
} STATUS;
static int
-clip_wprintw(WINDOW *win, NCURSES_CONST char *fmt, ...)
+clip_wprintw(WINDOW *win, bool single, NCURSES_CONST char *fmt, ...)
{
int y0, x0, y1, x1, width;
WINDOW *sub;
va_list ap;
int rc;
- /*
- * Allocate a single-line derived window extending from the current
- * cursor position to the end of the current line in the given window.
- * Disable scrolling in the derived window.
- */
getyx(win, y0, x0);
width = getmaxx(win) - x0;
- sub = derwin(win, 1, width, y0, x0);
+ if (single) {
+ /*
+ * Allocate a single-line derived window extending from the current
+ * cursor position to the end of the current line in the given window.
+ * Disable scrolling in the derived window.
+ */
+ sub = derwin(win, 1, width, y0, x0);
+ } else {
+ /*
+ * Allow printw to wrap through the entire window.
+ */
+ sub = derwin(win, getmaxy(win), getmaxx(win), 0, 0);
+ wmove(sub, y0, x0);
+ }
scrollok(sub, FALSE);
/*
@@ -84,7 +98,11 @@ clip_wprintw(WINDOW *win, NCURSES_CONST char *fmt, ...)
getyx(sub, y1, x1);
delwin(sub);
- wmove(win, y1 + y0, x1 + x0);
+ if (single) {
+ wmove(win, y1 + y0, x1 + x0);
+ } else {
+ wmove(win, y1, x1);
+ }
return rc;
}
@@ -156,11 +174,12 @@ video_params(unsigned state, attr_t *attr)
static void
fill_window(WINDOW *win)
{
+ int y_top = (win == stdscr) ? Y_BASE : MARGIN;
int y, x;
int y0 = -1, x0 = -1;
getyx(win, y, x);
- wmove(win, 0, 0);
+ wmove(win, y_top, 0);
while (waddstr(win, "0123456789 abcdefghijklmnopqrstuvwxyz ") != ERR) {
int y1, x1;
getyx(win, y1, x1);
@@ -178,25 +197,34 @@ show_status(WINDOW *win, STATUS * sp)
int y, x;
getyx(win, y, x);
+ wattron(win, A_REVERSE);
wmove(win, 0, 0);
- wprintw(win, "Count %d", sp->count);
+ wprintw(win, "Clip %s", sp->single ? "line" : "window");
+ wprintw(win, " Count %d", sp->count);
if (sp->v_msg != 0)
wprintw(win, " Video %s", sp->v_msg);
if (sp->c_msg != 0)
wprintw(win, " Color %s", sp->c_msg);
wprintw(win, " (%d)", sp->status);
wclrtoeol(win);
+ wattroff(win, A_REVERSE);
wmove(win, y, x);
}
static void
do_subwindow(WINDOW *win, STATUS * sp, void func(WINDOW *))
{
- WINDOW *win1 = newwin(sp->y_max - 2, sp->x_max - 2,
- sp->y_beg + 1, sp->x_beg + 1);
+ WINDOW *win1 = newwin(sp->y_max - (2 * MARGIN),
+ sp->x_max - (2 * MARGIN),
+ sp->y_beg + MARGIN,
+ sp->x_beg + MARGIN);
if (win1 != 0 && sp->y_max > 4 && sp->x_max > 4) {
- WINDOW *win2 = derwin(win1, sp->y_max - 4, sp->x_max - 4, 1, 1);
+ WINDOW *win2 = derwin(win1,
+ sp->y_max - (2 * MARGIN) - 2,
+ sp->x_max - (2 * MARGIN) - 2,
+ (win == stdscr) ? Y_BASE : Y_BASE,
+ MARGIN);
if (win2 != 0) {
box(win1, 0, 0);
@@ -216,10 +244,14 @@ do_subwindow(WINDOW *win, STATUS * sp, void func(WINDOW *))
}
}
+/*
+ * The status line is within the same window as the test-data.
+ */
static void
init_status(WINDOW *win, STATUS * sp)
{
memset(sp, 0, sizeof(*sp));
+ sp->single = TRUE;
sp->c = 99;
sp->v = 99;
sp->ch = ' ';
@@ -229,6 +261,8 @@ init_status(WINDOW *win, STATUS * sp)
getbegyx(win, sp->y_beg, sp->x_beg);
getmaxyx(win, sp->y_max, sp->x_max);
+
+ wmove(win, sp->y_val = Y_BASE, sp->x_val = 0);
}
static void
@@ -242,7 +276,10 @@ show_help(WINDOW *win)
,""
,"Other commands:"
,"space toggles through the set of video attributes and colors."
+ ,"q exit subwindow, quit if last window."
+ ,"s toggles single-line updates versus entire windows."
,"t touches (forces repaint) of the current line."
+ ,"w create subwindow."
,". calls vw_printw at the current position with the given count."
,"= resets count to zero."
,"? shows this help-window"
@@ -255,6 +292,8 @@ show_help(WINDOW *win)
static void
update_status(WINDOW *win, STATUS * sp)
{
+ int margin = 0;
+
switch (sp->ch) {
case ' ': /* next test-iteration */
if (has_colors()) {
@@ -272,24 +311,40 @@ update_status(WINDOW *win, STATUS * sp)
sp->count = 0;
show_status(win, sp);
break;
+ case KEY_HOME:
+ case '^':
+ wmove(win, sp->y_val, sp->x_val = margin);
+ break;
+ case KEY_END:
+ case '$':
+ wmove(win, sp->y_val, sp->x_val = (sp->x_max - margin - 1));
+ break;
+ case KEY_PPAGE:
+ case CTRL('B'):
+ wmove(win, sp->y_val = Y_BASE, sp->x_val);
+ break;
+ case KEY_NPAGE:
+ case CTRL('F'):
+ wmove(win, sp->y_val = (sp->y_max - margin - 1), sp->x_val);
+ break;
case KEY_LEFT:
case 'h':
- if (sp->x_val > 0)
+ if (sp->x_val > margin)
wmove(win, sp->y_val, --(sp->x_val));
break;
case KEY_DOWN:
case 'j':
- if (sp->y_val < sp->y_max)
+ if (sp->y_val < (sp->y_max - margin))
wmove(win, ++(sp->y_val), sp->x_val);
break;
case KEY_UP:
case 'k':
- if (sp->y_val > 0)
+ if (sp->y_val > Y_BASE)
wmove(win, --(sp->y_val), sp->x_val);
break;
case KEY_RIGHT:
case 'l':
- if (sp->x_val < sp->x_max)
+ if (sp->x_val < (sp->x_max - margin))
wmove(win, sp->y_val, ++(sp->x_val));
break;
case 't':
@@ -299,6 +354,10 @@ update_status(WINDOW *win, STATUS * sp)
sp->count = 0;
show_status(win, sp);
break;
+ case 's':
+ sp->single = !sp->single;
+ show_status(win, sp);
+ break;
case HELP_KEY_1:
show_help(win);
break;
@@ -342,7 +401,7 @@ test_clipping(WINDOW *win)
buffer[j] = (char) ('A' + (j % 26));
}
buffer[need - 1] = '\0';
- st.status = clip_wprintw(win, fmt, '[', buffer, ']');
+ st.status = clip_wprintw(win, st.single, fmt, '[', buffer, ']');
free(buffer);
}
break;
@@ -358,9 +417,45 @@ test_clipping(WINDOW *win)
} while ((st.ch = wgetch(win)) != ERR);
}
+static void
+usage(int ok)
+{
+ static const char *msg[] =
+ {
+ "Usage: clip_printw [options]"
+ ,""
+ ,USAGE_COMMON
+ };
+ size_t n;
+
+ for (n = 0; n < SIZEOF(msg); n++)
+ fprintf(stderr, "%s\n", msg[n]);
+
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
+}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
+
int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+main(int argc, char *argv[])
{
+ int ch;
+
+ while ((ch = getopt(argc, argv, OPTS_COMMON)) != -1) {
+ switch (ch) {
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
+ default:
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
+ }
+ }
+ if (optind < argc)
+ usage(FALSE);
+
+ setlocale(LC_ALL, "");
initscr();
cbreak();
noecho();
diff --git a/test/color_content.c b/test/color_content.c
index 0f619f661e63..d08dffb09fb5 100644
--- a/test/color_content.c
+++ b/test/color_content.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2022,2023 Thomas E. Dickey *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
@@ -26,7 +26,7 @@
* authorization. *
****************************************************************************/
/*
- * $Id: color_content.c,v 1.12 2020/02/02 23:34:34 tom Exp $
+ * $Id: color_content.c,v 1.19 2023/02/25 16:48:02 tom Exp $
*/
#define NEED_TIME_H
@@ -58,10 +58,8 @@ static int x_opt;
static MYCOLOR *expected;
-#if HAVE_GETTIMEOFDAY
-static struct timeval initial_time;
-static struct timeval finish_time;
-#endif
+static TimeType initial_time;
+static TimeType finish_time;
static void
failed(const char *msg)
@@ -118,6 +116,7 @@ random_color(void)
static void
setup_test(void)
{
+ setlocale(LC_ALL, "");
initscr();
cbreak();
noecho();
@@ -174,9 +173,7 @@ setup_test(void)
} else {
failed("This demo requires a color terminal");
}
-#if HAVE_GETTIMEOFDAY
- gettimeofday(&initial_time, 0);
-#endif
+ GetClockTime(&initial_time);
}
static void
@@ -212,23 +209,14 @@ finish_test(void)
endwin();
}
-#if HAVE_GETTIMEOFDAY
-static double
-seconds(struct timeval *mark)
-{
- double result = (double) mark->tv_sec;
- result += ((double) mark->tv_usec / 1e6);
- return result;
-}
-#endif
-
static void
-usage(void)
+usage(int ok)
{
static const char *msg[] =
{
"Usage: color_content [options]"
,""
+ ,USAGE_COMMON
,"Options:"
," -f COLOR first color value to test (default: 0)"
," -i interactive, showing test-progress"
@@ -244,26 +232,29 @@ usage(void)
size_t n;
for (n = 0; n < SIZEOF(msg); n++)
fprintf(stderr, "%s\n", msg[n]);
- ExitProgram(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+main(int argc, char *argv[])
{
- int i;
+ int ch;
- while ((i = getopt(argc, argv, "f:il:npr:sx")) != -1) {
- switch (i) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "f:il:npr:sx")) != -1) {
+ switch (ch) {
case 'f':
if ((f_opt = atoi(optarg)) <= 0)
- usage();
+ usage(FALSE);
break;
case 'i':
i_opt = 1;
break;
case 'l':
if ((l_opt = atoi(optarg)) <= 0)
- usage();
+ usage(FALSE);
break;
case 'n':
n_opt = 1;
@@ -273,7 +264,7 @@ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
break;
case 'r':
if ((r_opt = atoi(optarg)) <= 0)
- usage();
+ usage(FALSE);
break;
case 's':
s_opt = 1;
@@ -283,17 +274,22 @@ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
x_opt = 1;
break;
#endif
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
}
}
if (optind < argc)
- usage();
+ usage(FALSE);
if (r_opt <= 0)
r_opt = 1;
setup_test();
if (p_opt) {
+ int i;
endwin();
for (i = 0; i < COLORS; ++i) {
my_color_t r, g, b;
@@ -318,14 +314,11 @@ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
addch('\n');
}
printw("DONE: ");
-#if HAVE_GETTIMEOFDAY
- gettimeofday(&finish_time, 0);
- printw("%.03f seconds",
- seconds(&finish_time)
- - seconds(&initial_time));
-#endif
+ GetClockTime(&finish_time);
+ printw("%.03f seconds", ElapsedSeconds(&finish_time, &initial_time));
finish_test();
}
+ free(expected);
ExitProgram(EXIT_SUCCESS);
}
diff --git a/test/color_name.h b/test/color_name.h
index d27804e87266..867396ca5f70 100644
--- a/test/color_name.h
+++ b/test/color_name.h
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2020,2021 Thomas E. Dickey *
* Copyright 2011-2012,2016 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,7 +27,7 @@
* authorization. *
****************************************************************************/
/*
- * $Id: color_name.h,v 1.8 2020/06/20 18:58:20 tom Exp $
+ * $Id: color_name.h,v 1.9 2021/04/24 23:25:29 tom Exp $
*/
#ifndef __COLORNAME_H
@@ -37,7 +37,7 @@
#include <test.priv.h>
#endif
-static NCURSES_CONST char *the_color_names[] =
+static NCURSES_CONST char *const the_color_names[] =
{
"black",
"red",
diff --git a/test/color_set.c b/test/color_set.c
index 016b993313f3..5510a0fdba44 100644
--- a/test/color_set.c
+++ b/test/color_set.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2020,2020,2022 Thomas E. Dickey *
* Copyright 2003-2012,2014 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,7 +27,7 @@
* authorization. *
****************************************************************************/
/*
- * $Id: color_set.c,v 1.10 2020/02/02 23:34:34 tom Exp $
+ * $Id: color_set.c,v 1.12 2022/12/10 23:36:59 tom Exp $
*/
#include <test.priv.h>
@@ -36,11 +36,46 @@
#define SHOW(n) ((n) == ERR ? "ERR" : "OK")
+static void
+usage(int ok)
+{
+ static const char *msg[] =
+ {
+ "Usage: color_set [options]"
+ ,""
+ ,USAGE_COMMON
+ };
+ size_t n;
+
+ for (n = 0; n < SIZEOF(msg); n++)
+ fprintf(stderr, "%s\n", msg[n]);
+
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
+}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
+
int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+main(int argc, char *argv[])
{
NCURSES_COLOR_T f, b;
+ int ch;
+
+ while ((ch = getopt(argc, argv, OPTS_COMMON)) != -1) {
+ switch (ch) {
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
+ default:
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
+ }
+ }
+ if (optind < argc)
+ usage(FALSE);
+ setlocale(LC_ALL, "");
initscr();
cbreak();
noecho();
diff --git a/test/combine.c b/test/combine.c
new file mode 100644
index 000000000000..eca72b80711f
--- /dev/null
+++ b/test/combine.c
@@ -0,0 +1,313 @@
+/****************************************************************************
+ * Copyright 2021,2022 Thomas E. Dickey *
+ * *
+ * 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: combine.c,v 1.23 2022/12/10 22:28:50 tom Exp $
+ */
+
+#include <test.priv.h>
+
+#if USE_WIDEC_SUPPORT
+
+#include <wctype.h>
+#include <dump_window.h>
+#include <popup_msg.h>
+
+static int c_opt;
+static int r_opt;
+
+static int
+next_char(int value)
+{
+ do {
+ ++value;
+ } while (!iswprint((wint_t) value));
+ return value;
+}
+
+static int
+prev_char(int value)
+{
+ do {
+ --value;
+ } while (!iswprint((wint_t) value));
+ return value;
+}
+
+static void
+do_row(int row, int base_ch, int over_ch)
+{
+ int col = 0;
+ bool done = FALSE;
+ bool reverse = (r_opt && !(row % 2));
+
+ move(row, col);
+ printw("[U+%04X]", over_ch);
+ do {
+ if (c_opt) {
+ wchar_t source[2];
+ cchar_t target;
+ attr_t attr = reverse ? A_REVERSE : A_NORMAL;
+
+ source[1] = 0;
+
+ source[0] = (wchar_t) base_ch;
+ setcchar(&target, source, attr, 0, NULL);
+ add_wch(&target);
+
+ source[0] = (wchar_t) over_ch;
+ setcchar(&target, source, attr, 0, NULL);
+ add_wch(&target);
+ } else {
+ wchar_t data[3];
+
+ data[0] = (wchar_t) base_ch;
+ data[1] = (wchar_t) over_ch;
+ data[2] = 0;
+ if (reverse)
+ attr_on(A_REVERSE, NULL);
+ addwstr(data);
+ if (reverse)
+ attr_off(A_REVERSE, NULL);
+ }
+ col = getcurx(stdscr);
+ base_ch = next_char(base_ch);
+ done = (col + 1 >= COLS);
+ } while (!done);
+}
+
+#define LAST_OVER 0x6f
+
+static int
+next_over(int value)
+{
+ if (++value > LAST_OVER)
+ value = 0;
+ return value;
+}
+
+static int
+prev_over(int value)
+{
+ if (--value < 0)
+ value = LAST_OVER;
+ return value;
+}
+
+static void
+do_all(int left_at, int over_it)
+{
+ int row;
+
+ for (row = 0; row < LINES; ++row) {
+ do_row(row, left_at, 0x300 + over_it);
+ over_it = next_over(over_it);
+ }
+}
+
+static void
+show_help(WINDOW *current)
+{
+ /* *INDENT-OFF* */
+ static struct {
+ int key;
+ CONST_FMT char * msg;
+ } help[] = {
+ { HELP_KEY_1, "Show this screen" },
+ { CTRL('L'), "Repaint screen" },
+ { '$', "Scroll to end of combining-character range" },
+ { '+', "Scroll to next combining-character in range" },
+ { KEY_DOWN, "(same as \"+\")" },
+ { '-', "Scroll to previous combining-character in range" },
+ { KEY_UP, "(same as \"-\")" },
+ { '0', "Scroll to beginning of combining-character range" },
+ { 'c', "Toggle command-line option \"-c\"" },
+ { 'd', "Dump screen using scr_dump unless \"-l\" option used" },
+ { 'h', "Scroll test-data left one column" },
+ { 'j', "Scroll test-data down one row" },
+ { 'k', "Scroll test-data up one row" },
+ { 'l', "Scroll test-data right one column" },
+ { 'q', "Quit" },
+ { ESCAPE, "(same as \"q\")" },
+ { QUIT, "(same as \"q\")" },
+ { 'r', "Toggle command-line option \"-r\"" },
+ };
+ /* *INDENT-ON* */
+
+ char **msgs = typeCalloc(char *, SIZEOF(help) + 3);
+ size_t s;
+ int d = 0;
+
+ msgs[d++] = strdup("Test diacritic combining-characters range "
+ "U+0300..U+036F");
+ msgs[d++] = strdup("");
+ for (s = 0; s < SIZEOF(help); ++s) {
+ char *name = strdup(keyname(help[s].key));
+ size_t need = (11 + strlen(name) + strlen(help[s].msg));
+ msgs[d] = typeMalloc(char, need);
+ _nc_SPRINTF(msgs[d], _nc_SLIMIT(need) "%-10s%s", name, help[s].msg);
+ free(name);
+ ++d;
+ }
+ popup_msg2(current, msgs);
+ for (s = 0; msgs[s] != 0; ++s) {
+ free(msgs[s]);
+ }
+ free(msgs);
+}
+
+static void
+usage(int ok)
+{
+ static const char *msg[] =
+ {
+ "Usage: combine [options]"
+ ,""
+ ,USAGE_COMMON
+ ,"Demonstrate combining-characters."
+ ,""
+ ,"Options:"
+ ," -c use cchar_t data rather than wchar_t string"
+ ," -l FILE log window-dumps to this file"
+ ," -r draw even-numbered rows in reverse-video"
+ };
+ unsigned n;
+ for (n = 0; n < SIZEOF(msg); ++n) {
+ fprintf(stderr, "%s\n", msg[n]);
+ }
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
+}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
+
+int
+main(int argc, char *argv[])
+{
+ int ch;
+ int left_at = ' ';
+ int over_it = 0;
+ bool done = FALSE;
+ bool log_option = FALSE;
+ const char *dump_log = "combine.log";
+
+ while ((ch = getopt(argc, argv, OPTS_COMMON "cl:r")) != -1) {
+ switch (ch) {
+ case 'c':
+ c_opt = TRUE;
+ break;
+ case 'l':
+ log_option = TRUE;
+ if (!open_dump(optarg))
+ usage(FALSE);
+ break;
+ case 'r':
+ r_opt = TRUE;
+ break;
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
+ default:
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
+ }
+ }
+
+ setlocale(LC_ALL, "");
+ initscr();
+ cbreak();
+ noecho();
+ keypad(stdscr, TRUE);
+
+ do {
+ do_all(left_at, over_it);
+ switch (getch()) {
+ case HELP_KEY_1:
+ show_help(stdscr);
+ break;
+ case 'q':
+ case QUIT:
+ case ESCAPE:
+ done = TRUE;
+ break;
+ case CTRL('L'):
+ redrawwin(stdscr);
+ break;
+ case 'd':
+ if (log_option)
+ dump_window(stdscr);
+#if HAVE_SCR_DUMP
+ else
+ scr_dump(dump_log);
+#endif
+ break;
+ case 'h':
+ if (left_at > ' ')
+ left_at = prev_char(left_at);
+ break;
+ case 'l':
+ left_at = next_char(left_at);
+ break;
+ case 'c':
+ c_opt = !c_opt;
+ break;
+ case 'r':
+ r_opt = !r_opt;
+ break;
+ case KEY_HOME:
+ case '0':
+ over_it = 0;
+ break;
+ case KEY_END:
+ case '$':
+ over_it = LAST_OVER;
+ break;
+ case KEY_UP:
+ case 'k':
+ case '-':
+ over_it = prev_over(over_it);
+ break;
+ case KEY_DOWN:
+ case 'j':
+ case '+':
+ over_it = next_over(over_it);
+ break;
+ }
+ } while (!done);
+
+ endwin();
+
+ ExitProgram(EXIT_SUCCESS);
+}
+#else
+int
+main(void)
+{
+ printf("This program requires wide-curses functions\n");
+ ExitProgram(EXIT_FAILURE);
+}
+#endif
diff --git a/test/configure b/test/configure
index 3c4ece5afe1c..4f155cd78d0e 100755
--- a/test/configure
+++ b/test/configure
@@ -1,8 +1,8 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by Autoconf 2.52.20210105.
+# Generated by Autoconf 2.52.20231210.
#
-# Copyright 2003-2020,2021 Thomas E. Dickey
+# Copyright 2003-2022,2023 Thomas E. Dickey
# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
# Free Software Foundation, Inc.
# This configure script is free software; the Free Software Foundation
@@ -33,9 +33,9 @@ fi
as_me=`echo "$0" |sed 's,.*[\\/],,'`
if expr a : '\(a\)' >/dev/null 2>&1; then
- as_expr=expr
+ as_expr="expr"
else
- as_expr=false
+ as_expr="false"
fi
rm -f conf$$ conf$$.exe conf$$.file
@@ -50,7 +50,7 @@ if ln -s conf$$.file conf$$ 2>/dev/null; then
as_ln_s='ln -s'
fi
elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
+ as_ln_s='ln'
else
as_ln_s='cp -p'
fi
@@ -107,6 +107,42 @@ SHELL=${CONFIG_SHELL-/bin/sh}
: "${ac_max_here_lines=38}"
ac_unique_file="ncurses.c"
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stdio.h>
+#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#if HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#if STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# if HAVE_STDLIB_H
+# include <stdlib.h>
+# endif
+#endif
+#if HAVE_STRING_H
+# if !STDC_HEADERS && HAVE_MEMORY_H
+# include <memory.h>
+# endif
+# include <string.h>
+#endif
+#if HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#if HAVE_INTTYPES_H
+# include <inttypes.h>
+#else
+# if HAVE_STDINT_H
+# include <stdint.h>
+# endif
+#endif
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
# Initialize some variables set by options.
ac_init_help=
@@ -669,8 +705,10 @@ Optional Packages:
General Options:
--disable-stripping do not strip (debug info) installed executables
+ --with-strip-program=XX specify program to use when stripping in install
+ --enable-stdnoreturn enable C11 _Noreturn feature for diagnostics
--enable-string-hacks work around bogus compiler/loader warnings
- --with-pkg-config{=path} enable/disable use of pkg-config
+ --with-pkg-config[=CMD] enable/disable use of pkg-config and its name CMD
--disable-echo do not display "compiling" commands
Curses Version-dependent Options:
--with-ncurses-wrap-prefix naming-prefix for ncurses wrapped-variables
@@ -687,10 +725,10 @@ Curses Version-dependent Options:
--with-neXtaw link with neXT Athena library
--with-XawPlus link with Athena-Plus library
--with-x use the X Window System
- --with-x11-rgb=FILE file containing X11 rgb information (EPREFIX/lib/X11/rgb.txt)
- --with-form-libname=XXX override form basename of library
- --with-menu-libname=XXX override menu basename of library
- --with-panel-libname=XXX override panel basename of library
+ --with-x11-rgb=FILE obtain X11 color definitions from FILE (default: EPREFIX/lib/X11/rgb.txt)
+ --with-form-libname[=XXX] override ifelse(,,form,) basename of library
+ --with-menu-libname[=XXX] override ifelse(,,menu,) basename of library
+ --with-panel-libname[=XXX] override ifelse(,,panel,) basename of library
--disable-panel disable checks for panel functions
--disable-menu disable checks for menu functions
--disable-form disable checks for form functions
@@ -757,7 +795,7 @@ test -n "$ac_init_help" && exit 0
if "$ac_init_version"; then
cat <<\EOF
-Copyright 2003-2020,2021 Thomas E. Dickey
+Copyright 2003-2022,2023 Thomas E. Dickey
Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
@@ -771,7 +809,7 @@ This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by $as_me, which was
-generated by GNU Autoconf 2.52.20210105. Invocation command line was
+generated by GNU Autoconf 2.52.20231210. Invocation command line was
$ $0 $@
@@ -895,7 +933,7 @@ if test -z "$CONFIG_SITE"; then
fi
for ac_site_file in $CONFIG_SITE; do
if test -r "$ac_site_file"; then
- { echo "$as_me:898: loading site script $ac_site_file" >&5
+ { echo "$as_me:936: loading site script $ac_site_file" >&5
echo "$as_me: loading site script $ac_site_file" >&6;}
cat "$ac_site_file" >&5
. "$ac_site_file"
@@ -906,7 +944,7 @@ if test -r "$cache_file"; then
# Some versions of bash will fail to source /dev/null (special
# files actually), so we avoid doing that.
if test -f "$cache_file"; then
- { echo "$as_me:909: loading cache $cache_file" >&5
+ { echo "$as_me:947: loading cache $cache_file" >&5
echo "$as_me: loading cache $cache_file" >&6;}
case $cache_file in
[\\/]* | ?:[\\/]* ) . $cache_file;;
@@ -914,7 +952,7 @@ echo "$as_me: loading cache $cache_file" >&6;}
esac
fi
else
- { echo "$as_me:917: creating cache $cache_file" >&5
+ { echo "$as_me:955: creating cache $cache_file" >&5
echo "$as_me: creating cache $cache_file" >&6;}
>$cache_file
fi
@@ -930,21 +968,21 @@ for ac_var in `(set) 2>&1 |
eval ac_new_val="\$ac_env_${ac_var}_value"
case "$ac_old_set,$ac_new_set" in
set,)
- { echo "$as_me:933: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+ { echo "$as_me:971: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
ac_cache_corrupted=: ;;
,set)
- { echo "$as_me:937: error: \`$ac_var' was not set in the previous run" >&5
+ { echo "$as_me:975: error: \`$ac_var' was not set in the previous run" >&5
echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
ac_cache_corrupted=: ;;
,);;
*)
if test "x$ac_old_val" != "x$ac_new_val"; then
- { echo "$as_me:943: error: \`$ac_var' has changed since the previous run:" >&5
+ { echo "$as_me:981: error: \`$ac_var' has changed since the previous run:" >&5
echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
- { echo "$as_me:945: former value: $ac_old_val" >&5
+ { echo "$as_me:983: former value: $ac_old_val" >&5
echo "$as_me: former value: $ac_old_val" >&2;}
- { echo "$as_me:947: current value: $ac_new_val" >&5
+ { echo "$as_me:985: current value: $ac_new_val" >&5
echo "$as_me: current value: $ac_new_val" >&2;}
ac_cache_corrupted=:
fi;;
@@ -963,9 +1001,9 @@ echo "$as_me: current value: $ac_new_val" >&2;}
fi
done
if "$ac_cache_corrupted"; then
- { echo "$as_me:966: error: changes in the environment can compromise the build" >&5
+ { echo "$as_me:1004: error: changes in the environment can compromise the build" >&5
echo "$as_me: error: changes in the environment can compromise the build" >&2;}
- { { echo "$as_me:968: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
+ { { echo "$as_me:1006: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -994,10 +1032,10 @@ esac
echo "#! $SHELL" >conftest.sh
echo "exit 0" >>conftest.sh
chmod +x conftest.sh
-if { (echo "$as_me:997: PATH=\".;.\"; conftest.sh") >&5
+if { (echo "$as_me:1035: PATH=\".;.\"; conftest.sh") >&5
(PATH=".;."; conftest.sh) 2>&5
ac_status=$?
- echo "$as_me:1000: \$? = $ac_status" >&5
+ echo "$as_me:1038: \$? = $ac_status" >&5
(exit "$ac_status"); }; then
ac_path_separator=';'
else
@@ -1029,7 +1067,7 @@ for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
fi
done
if test -z "$ac_aux_dir"; then
- { { echo "$as_me:1032: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
+ { { echo "$as_me:1070: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -1039,11 +1077,11 @@ ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
# Make sure we can run config.sub.
$ac_config_sub sun4 >/dev/null 2>&1 ||
- { { echo "$as_me:1042: error: cannot run $ac_config_sub" >&5
+ { { echo "$as_me:1080: error: cannot run $ac_config_sub" >&5
echo "$as_me: error: cannot run $ac_config_sub" >&2;}
{ (exit 1); exit 1; }; }
-echo "$as_me:1046: checking build system type" >&5
+echo "$as_me:1084: checking build system type" >&5
echo $ECHO_N "checking build system type... $ECHO_C" >&6
if test "${ac_cv_build+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1052,16 +1090,16 @@ else
test -z "$ac_cv_build_alias" &&
ac_cv_build_alias=`$ac_config_guess`
test -z "$ac_cv_build_alias" &&
- { { echo "$as_me:1055: error: cannot guess build type; you must specify one" >&5
+ { { echo "$as_me:1093: error: cannot guess build type; you must specify one" >&5
echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
{ (exit 1); exit 1; }; }
ac_cv_build=`$ac_config_sub "$ac_cv_build_alias"` ||
- { { echo "$as_me:1059: error: $ac_config_sub $ac_cv_build_alias failed." >&5
+ { { echo "$as_me:1097: error: $ac_config_sub $ac_cv_build_alias failed." >&5
echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed." >&2;}
{ (exit 1); exit 1; }; }
fi
-echo "$as_me:1064: result: $ac_cv_build" >&5
+echo "$as_me:1102: result: $ac_cv_build" >&5
echo "${ECHO_T}$ac_cv_build" >&6
build=$ac_cv_build
build_cpu=`echo "$ac_cv_build" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
@@ -1069,7 +1107,7 @@ build_vendor=`echo "$ac_cv_build" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
build_os=`echo "$ac_cv_build" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
if test -f "$srcdir/config.guess" || test -f "$ac_aux_dir/config.guess" ; then
- echo "$as_me:1072: checking host system type" >&5
+ echo "$as_me:1110: checking host system type" >&5
echo $ECHO_N "checking host system type... $ECHO_C" >&6
if test "${ac_cv_host+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1078,12 +1116,12 @@ else
test -z "$ac_cv_host_alias" &&
ac_cv_host_alias=$ac_cv_build_alias
ac_cv_host=`$ac_config_sub "$ac_cv_host_alias"` ||
- { { echo "$as_me:1081: error: $ac_config_sub $ac_cv_host_alias failed" >&5
+ { { echo "$as_me:1119: error: $ac_config_sub $ac_cv_host_alias failed" >&5
echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
{ (exit 1); exit 1; }; }
fi
-echo "$as_me:1086: result: $ac_cv_host" >&5
+echo "$as_me:1124: result: $ac_cv_host" >&5
echo "${ECHO_T}$ac_cv_host" >&6
host=$ac_cv_host
host_cpu=`echo "$ac_cv_host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
@@ -1109,13 +1147,13 @@ else
fi
test -z "$system_name" && system_name="$cf_cv_system_name"
-test -n "$cf_cv_system_name" && echo "$as_me:1112: result: Configuring for $cf_cv_system_name" >&5
+test -n "$cf_cv_system_name" && echo "$as_me:1150: result: Configuring for $cf_cv_system_name" >&5
echo "${ECHO_T}Configuring for $cf_cv_system_name" >&6
if test ".$system_name" != ".$cf_cv_system_name" ; then
- echo "$as_me:1116: result: Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&5
+ echo "$as_me:1154: result: Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&5
echo "${ECHO_T}Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&6
- { { echo "$as_me:1118: error: \"Please remove config.cache and try again.\"" >&5
+ { { echo "$as_me:1156: error: \"Please remove config.cache and try again.\"" >&5
echo "$as_me: error: \"Please remove config.cache and try again.\"" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -1133,7 +1171,7 @@ _ACEOF
program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
rm conftest.sed
-echo "$as_me:1136: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "$as_me:1174: checking whether ${MAKE-make} sets \${MAKE}" >&5
echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6
set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
@@ -1153,11 +1191,11 @@ fi
rm -f conftest.make
fi
if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
- echo "$as_me:1156: result: yes" >&5
+ echo "$as_me:1194: result: yes" >&5
echo "${ECHO_T}yes" >&6
SET_MAKE=
else
- echo "$as_me:1160: result: no" >&5
+ echo "$as_me:1198: result: no" >&5
echo "${ECHO_T}no" >&6
SET_MAKE="MAKE=${MAKE-make}"
fi
@@ -1171,7 +1209,7 @@ ac_main_return="return"
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
set dummy ${ac_tool_prefix}gcc; ac_word=$2
-echo "$as_me:1174: checking for $ac_word" >&5
+echo "$as_me:1212: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_CC+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1186,7 +1224,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_CC="${ac_tool_prefix}gcc"
-echo "$as_me:1189: found $ac_dir/$ac_word" >&5
+echo "$as_me:1227: found $ac_dir/$ac_word" >&5
break
done
@@ -1194,10 +1232,10 @@ fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
- echo "$as_me:1197: result: $CC" >&5
+ echo "$as_me:1235: result: $CC" >&5
echo "${ECHO_T}$CC" >&6
else
- echo "$as_me:1200: result: no" >&5
+ echo "$as_me:1238: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -1206,7 +1244,7 @@ if test -z "$ac_cv_prog_CC"; then
ac_ct_CC=$CC
# Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
-echo "$as_me:1209: checking for $ac_word" >&5
+echo "$as_me:1247: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1221,7 +1259,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_ac_ct_CC="gcc"
-echo "$as_me:1224: found $ac_dir/$ac_word" >&5
+echo "$as_me:1262: found $ac_dir/$ac_word" >&5
break
done
@@ -1229,10 +1267,10 @@ fi
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
- echo "$as_me:1232: result: $ac_ct_CC" >&5
+ echo "$as_me:1270: result: $ac_ct_CC" >&5
echo "${ECHO_T}$ac_ct_CC" >&6
else
- echo "$as_me:1235: result: no" >&5
+ echo "$as_me:1273: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -1245,7 +1283,7 @@ if test -z "$CC"; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
set dummy ${ac_tool_prefix}cc; ac_word=$2
-echo "$as_me:1248: checking for $ac_word" >&5
+echo "$as_me:1286: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_CC+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1260,7 +1298,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_CC="${ac_tool_prefix}cc"
-echo "$as_me:1263: found $ac_dir/$ac_word" >&5
+echo "$as_me:1301: found $ac_dir/$ac_word" >&5
break
done
@@ -1268,10 +1306,10 @@ fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
- echo "$as_me:1271: result: $CC" >&5
+ echo "$as_me:1309: result: $CC" >&5
echo "${ECHO_T}$CC" >&6
else
- echo "$as_me:1274: result: no" >&5
+ echo "$as_me:1312: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -1280,7 +1318,7 @@ if test -z "$ac_cv_prog_CC"; then
ac_ct_CC=$CC
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
-echo "$as_me:1283: checking for $ac_word" >&5
+echo "$as_me:1321: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1295,7 +1333,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_ac_ct_CC="cc"
-echo "$as_me:1298: found $ac_dir/$ac_word" >&5
+echo "$as_me:1336: found $ac_dir/$ac_word" >&5
break
done
@@ -1303,10 +1341,10 @@ fi
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
- echo "$as_me:1306: result: $ac_ct_CC" >&5
+ echo "$as_me:1344: result: $ac_ct_CC" >&5
echo "${ECHO_T}$ac_ct_CC" >&6
else
- echo "$as_me:1309: result: no" >&5
+ echo "$as_me:1347: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -1319,7 +1357,7 @@ fi
if test -z "$CC"; then
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
-echo "$as_me:1322: checking for $ac_word" >&5
+echo "$as_me:1360: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_CC+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1339,7 +1377,7 @@ if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
continue
fi
ac_cv_prog_CC="cc"
-echo "$as_me:1342: found $ac_dir/$ac_word" >&5
+echo "$as_me:1380: found $ac_dir/$ac_word" >&5
break
done
@@ -1361,10 +1399,10 @@ fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
- echo "$as_me:1364: result: $CC" >&5
+ echo "$as_me:1402: result: $CC" >&5
echo "${ECHO_T}$CC" >&6
else
- echo "$as_me:1367: result: no" >&5
+ echo "$as_me:1405: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -1375,7 +1413,7 @@ if test -z "$CC"; then
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-echo "$as_me:1378: checking for $ac_word" >&5
+echo "$as_me:1416: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_CC+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1390,7 +1428,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-echo "$as_me:1393: found $ac_dir/$ac_word" >&5
+echo "$as_me:1431: found $ac_dir/$ac_word" >&5
break
done
@@ -1398,10 +1436,10 @@ fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
- echo "$as_me:1401: result: $CC" >&5
+ echo "$as_me:1439: result: $CC" >&5
echo "${ECHO_T}$CC" >&6
else
- echo "$as_me:1404: result: no" >&5
+ echo "$as_me:1442: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -1414,7 +1452,7 @@ if test -z "$CC"; then
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-echo "$as_me:1417: checking for $ac_word" >&5
+echo "$as_me:1455: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1429,7 +1467,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_ac_ct_CC="$ac_prog"
-echo "$as_me:1432: found $ac_dir/$ac_word" >&5
+echo "$as_me:1470: found $ac_dir/$ac_word" >&5
break
done
@@ -1437,10 +1475,10 @@ fi
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
- echo "$as_me:1440: result: $ac_ct_CC" >&5
+ echo "$as_me:1478: result: $ac_ct_CC" >&5
echo "${ECHO_T}$ac_ct_CC" >&6
else
- echo "$as_me:1443: result: no" >&5
+ echo "$as_me:1481: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -1452,32 +1490,32 @@ fi
fi
-test -z "$CC" && { { echo "$as_me:1455: error: no acceptable cc found in \$PATH" >&5
+test -z "$CC" && { { echo "$as_me:1493: error: no acceptable cc found in \$PATH" >&5
echo "$as_me: error: no acceptable cc found in \$PATH" >&2;}
{ (exit 1); exit 1; }; }
# Provide some information about the compiler.
-echo "$as_me:1460:" \
+echo "$as_me:1498:" \
"checking for C compiler version" >&5
ac_compiler=`set X $ac_compile; echo "$2"`
-{ (eval echo "$as_me:1463: \"$ac_compiler --version </dev/null >&5\"") >&5
+{ (eval echo "$as_me:1501: \"$ac_compiler --version </dev/null >&5\"") >&5
(eval $ac_compiler --version </dev/null >&5) 2>&5
ac_status=$?
- echo "$as_me:1466: \$? = $ac_status" >&5
+ echo "$as_me:1504: \$? = $ac_status" >&5
(exit "$ac_status"); }
-{ (eval echo "$as_me:1468: \"$ac_compiler -v </dev/null >&5\"") >&5
+{ (eval echo "$as_me:1506: \"$ac_compiler -v </dev/null >&5\"") >&5
(eval $ac_compiler -v </dev/null >&5) 2>&5
ac_status=$?
- echo "$as_me:1471: \$? = $ac_status" >&5
+ echo "$as_me:1509: \$? = $ac_status" >&5
(exit "$ac_status"); }
-{ (eval echo "$as_me:1473: \"$ac_compiler -V </dev/null >&5\"") >&5
+{ (eval echo "$as_me:1511: \"$ac_compiler -V </dev/null >&5\"") >&5
(eval $ac_compiler -V </dev/null >&5) 2>&5
ac_status=$?
- echo "$as_me:1476: \$? = $ac_status" >&5
+ echo "$as_me:1514: \$? = $ac_status" >&5
(exit "$ac_status"); }
cat >"conftest.$ac_ext" <<_ACEOF
-#line 1480 "configure"
+#line 1518 "configure"
#include "confdefs.h"
int
@@ -1493,13 +1531,13 @@ ac_clean_files="$ac_clean_files a.out a.exe"
# Try to create an executable without -o first, disregard a.out.
# It will help us diagnose broken compilers, and finding out an intuition
# of exeext.
-echo "$as_me:1496: checking for C compiler default output" >&5
+echo "$as_me:1534: checking for C compiler default output" >&5
echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6
ac_link_default=`echo "$ac_link" | sed 's/ -o *"conftest[^"]*"//'`
-if { (eval echo "$as_me:1499: \"$ac_link_default\"") >&5
+if { (eval echo "$as_me:1537: \"$ac_link_default\"") >&5
(eval $ac_link_default) 2>&5
ac_status=$?
- echo "$as_me:1502: \$? = $ac_status" >&5
+ echo "$as_me:1540: \$? = $ac_status" >&5
(exit "$ac_status"); }; then
# Find the output, starting from the most likely. This scheme is
# not robust to junk in `.', hence go to wildcards (a.*) only as a last
@@ -1522,34 +1560,34 @@ done
else
echo "$as_me: failed program was:" >&5
cat "conftest.$ac_ext" >&5
-{ { echo "$as_me:1525: error: C compiler cannot create executables" >&5
+{ { echo "$as_me:1563: error: C compiler cannot create executables" >&5
echo "$as_me: error: C compiler cannot create executables" >&2;}
{ (exit 77); exit 77; }; }
fi
ac_exeext=$ac_cv_exeext
-echo "$as_me:1531: result: $ac_file" >&5
+echo "$as_me:1569: result: $ac_file" >&5
echo "${ECHO_T}$ac_file" >&6
# Check the compiler produces executables we can run. If not, either
# the compiler is broken, or we cross compile.
-echo "$as_me:1536: checking whether the C compiler works" >&5
+echo "$as_me:1574: checking whether the C compiler works" >&5
echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
# If not cross compiling, check that we can run a simple program.
if test "$cross_compiling" != yes; then
if { ac_try='./$ac_file'
- { (eval echo "$as_me:1542: \"$ac_try\"") >&5
+ { (eval echo "$as_me:1580: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:1545: \$? = $ac_status" >&5
+ echo "$as_me:1583: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cross_compiling=no
else
if test "$cross_compiling" = maybe; then
cross_compiling=yes
else
- { { echo "$as_me:1552: error: cannot run C compiled programs.
+ { { echo "$as_me:1590: error: cannot run C compiled programs.
If you meant to cross compile, use \`--host'." >&5
echo "$as_me: error: cannot run C compiled programs.
If you meant to cross compile, use \`--host'." >&2;}
@@ -1557,24 +1595,24 @@ If you meant to cross compile, use \`--host'." >&2;}
fi
fi
fi
-echo "$as_me:1560: result: yes" >&5
+echo "$as_me:1598: result: yes" >&5
echo "${ECHO_T}yes" >&6
rm -f a.out a.exe "conftest$ac_cv_exeext"
ac_clean_files=$ac_clean_files_save
# Check the compiler produces executables we can run. If not, either
# the compiler is broken, or we cross compile.
-echo "$as_me:1567: checking whether we are cross compiling" >&5
+echo "$as_me:1605: checking whether we are cross compiling" >&5
echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
-echo "$as_me:1569: result: $cross_compiling" >&5
+echo "$as_me:1607: result: $cross_compiling" >&5
echo "${ECHO_T}$cross_compiling" >&6
-echo "$as_me:1572: checking for executable suffix" >&5
+echo "$as_me:1610: checking for executable suffix" >&5
echo $ECHO_N "checking for executable suffix... $ECHO_C" >&6
-if { (eval echo "$as_me:1574: \"$ac_link\"") >&5
+if { (eval echo "$as_me:1612: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:1577: \$? = $ac_status" >&5
+ echo "$as_me:1615: \$? = $ac_status" >&5
(exit "$ac_status"); }; then
# If both `conftest.exe' and `conftest' are `present' (well, observable)
# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
@@ -1590,25 +1628,25 @@ for ac_file in `(ls conftest.exe; ls conftest; ls conftest.*) 2>/dev/null`; do
esac
done
else
- { { echo "$as_me:1593: error: cannot compute EXEEXT: cannot compile and link" >&5
+ { { echo "$as_me:1631: error: cannot compute EXEEXT: cannot compile and link" >&5
echo "$as_me: error: cannot compute EXEEXT: cannot compile and link" >&2;}
{ (exit 1); exit 1; }; }
fi
rm -f "conftest$ac_cv_exeext"
-echo "$as_me:1599: result: $ac_cv_exeext" >&5
+echo "$as_me:1637: result: $ac_cv_exeext" >&5
echo "${ECHO_T}$ac_cv_exeext" >&6
rm -f "conftest.$ac_ext"
EXEEXT=$ac_cv_exeext
ac_exeext=$EXEEXT
-echo "$as_me:1605: checking for object suffix" >&5
+echo "$as_me:1643: checking for object suffix" >&5
echo $ECHO_N "checking for object suffix... $ECHO_C" >&6
if test "${ac_cv_objext+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 1611 "configure"
+#line 1649 "configure"
#include "confdefs.h"
int
@@ -1620,10 +1658,10 @@ main (void)
}
_ACEOF
rm -f conftest.o conftest.obj
-if { (eval echo "$as_me:1623: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:1661: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:1626: \$? = $ac_status" >&5
+ echo "$as_me:1664: \$? = $ac_status" >&5
(exit "$ac_status"); }; then
for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
case $ac_file in
@@ -1635,24 +1673,24 @@ done
else
echo "$as_me: failed program was:" >&5
cat "conftest.$ac_ext" >&5
-{ { echo "$as_me:1638: error: cannot compute OBJEXT: cannot compile" >&5
+{ { echo "$as_me:1676: error: cannot compute OBJEXT: cannot compile" >&5
echo "$as_me: error: cannot compute OBJEXT: cannot compile" >&2;}
{ (exit 1); exit 1; }; }
fi
rm -f "conftest.$ac_cv_objext" "conftest.$ac_ext"
fi
-echo "$as_me:1645: result: $ac_cv_objext" >&5
+echo "$as_me:1683: result: $ac_cv_objext" >&5
echo "${ECHO_T}$ac_cv_objext" >&6
OBJEXT=$ac_cv_objext
ac_objext=$OBJEXT
-echo "$as_me:1649: checking whether we are using the GNU C compiler" >&5
+echo "$as_me:1687: checking whether we are using the GNU C compiler" >&5
echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
if test "${ac_cv_c_compiler_gnu+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 1655 "configure"
+#line 1693 "configure"
#include "confdefs.h"
int
@@ -1667,16 +1705,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:1670: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:1708: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:1673: \$? = $ac_status" >&5
+ echo "$as_me:1711: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:1676: \"$ac_try\"") >&5
+ { (eval echo "$as_me:1714: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:1679: \$? = $ac_status" >&5
+ echo "$as_me:1717: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_compiler_gnu=yes
else
@@ -1688,19 +1726,19 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
ac_cv_c_compiler_gnu=$ac_compiler_gnu
fi
-echo "$as_me:1691: result: $ac_cv_c_compiler_gnu" >&5
+echo "$as_me:1729: result: $ac_cv_c_compiler_gnu" >&5
echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
GCC=`test $ac_compiler_gnu = yes && echo yes`
ac_test_CFLAGS=${CFLAGS+set}
ac_save_CFLAGS=$CFLAGS
CFLAGS="-g"
-echo "$as_me:1697: checking whether $CC accepts -g" >&5
+echo "$as_me:1735: checking whether $CC accepts -g" >&5
echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
if test "${ac_cv_prog_cc_g+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 1703 "configure"
+#line 1741 "configure"
#include "confdefs.h"
int
@@ -1712,16 +1750,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:1715: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:1753: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:1718: \$? = $ac_status" >&5
+ echo "$as_me:1756: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:1721: \"$ac_try\"") >&5
+ { (eval echo "$as_me:1759: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:1724: \$? = $ac_status" >&5
+ echo "$as_me:1762: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_prog_cc_g=yes
else
@@ -1731,7 +1769,7 @@ ac_cv_prog_cc_g=no
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:1734: result: $ac_cv_prog_cc_g" >&5
+echo "$as_me:1772: result: $ac_cv_prog_cc_g" >&5
echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
if test "$ac_test_CFLAGS" = set; then
CFLAGS=$ac_save_CFLAGS
@@ -1758,16 +1796,16 @@ cat >"conftest.$ac_ext" <<_ACEOF
#endif
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:1761: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:1799: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:1764: \$? = $ac_status" >&5
+ echo "$as_me:1802: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:1767: \"$ac_try\"") >&5
+ { (eval echo "$as_me:1805: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:1770: \$? = $ac_status" >&5
+ echo "$as_me:1808: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
for ac_declaration in \
''\
@@ -1779,7 +1817,7 @@ if { (eval echo "$as_me:1761: \"$ac_compile\"") >&5
'void exit (int);'
do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 1782 "configure"
+#line 1820 "configure"
#include "confdefs.h"
#include <stdlib.h>
$ac_declaration
@@ -1792,16 +1830,16 @@ exit (42);
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:1795: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:1833: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:1798: \$? = $ac_status" >&5
+ echo "$as_me:1836: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:1801: \"$ac_try\"") >&5
+ { (eval echo "$as_me:1839: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:1804: \$? = $ac_status" >&5
+ echo "$as_me:1842: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
:
else
@@ -1811,7 +1849,7 @@ continue
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 1814 "configure"
+#line 1852 "configure"
#include "confdefs.h"
$ac_declaration
int
@@ -1823,16 +1861,16 @@ exit (42);
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:1826: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:1864: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:1829: \$? = $ac_status" >&5
+ echo "$as_me:1867: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:1832: \"$ac_try\"") >&5
+ { (eval echo "$as_me:1870: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:1835: \$? = $ac_status" >&5
+ echo "$as_me:1873: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
break
else
@@ -1862,11 +1900,11 @@ ac_main_return="return"
GCC_VERSION=none
if test "$GCC" = yes ; then
- echo "$as_me:1865: checking version of $CC" >&5
+ echo "$as_me:1903: checking version of $CC" >&5
echo $ECHO_N "checking version of $CC... $ECHO_C" >&6
- GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC[^)]*) //' -e 's/^.*(Debian[^)]*) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
+ GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^[^(]*([^)][^)]*) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
test -z "$GCC_VERSION" && GCC_VERSION=unknown
- echo "$as_me:1869: result: $GCC_VERSION" >&5
+ echo "$as_me:1907: result: $GCC_VERSION" >&5
echo "${ECHO_T}$GCC_VERSION" >&6
fi
@@ -1875,12 +1913,12 @@ INTEL_COMPILER=no
if test "$GCC" = yes ; then
case "$host_os" in
(linux*|gnu*)
- echo "$as_me:1878: checking if this is really Intel C compiler" >&5
+ echo "$as_me:1916: checking if this is really Intel C compiler" >&5
echo $ECHO_N "checking if this is really Intel C compiler... $ECHO_C" >&6
cf_save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -no-gcc"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 1883 "configure"
+#line 1921 "configure"
#include "confdefs.h"
int
@@ -1889,7 +1927,7 @@ main (void)
#ifdef __INTEL_COMPILER
#else
-make an error
+#error __INTEL_COMPILER is not defined
#endif
;
@@ -1897,16 +1935,16 @@ make an error
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:1900: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:1938: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:1903: \$? = $ac_status" >&5
+ echo "$as_me:1941: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:1906: \"$ac_try\"") >&5
+ { (eval echo "$as_me:1944: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:1909: \$? = $ac_status" >&5
+ echo "$as_me:1947: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
INTEL_COMPILER=yes
cf_save_CFLAGS="$cf_save_CFLAGS -we147"
@@ -1917,7 +1955,7 @@ cat "conftest.$ac_ext" >&5
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
CFLAGS="$cf_save_CFLAGS"
- echo "$as_me:1920: result: $INTEL_COMPILER" >&5
+ echo "$as_me:1958: result: $INTEL_COMPILER" >&5
echo "${ECHO_T}$INTEL_COMPILER" >&6
;;
esac
@@ -1926,11 +1964,11 @@ fi
CLANG_COMPILER=no
if test "$GCC" = yes ; then
- echo "$as_me:1929: checking if this is really Clang C compiler" >&5
+ echo "$as_me:1967: checking if this is really Clang C compiler" >&5
echo $ECHO_N "checking if this is really Clang C compiler... $ECHO_C" >&6
cf_save_CFLAGS="$CFLAGS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 1933 "configure"
+#line 1971 "configure"
#include "confdefs.h"
int
@@ -1939,7 +1977,7 @@ main (void)
#ifdef __clang__
#else
-make an error
+#error __clang__ is not defined
#endif
;
@@ -1947,16 +1985,16 @@ make an error
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:1950: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:1988: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:1953: \$? = $ac_status" >&5
+ echo "$as_me:1991: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:1956: \"$ac_try\"") >&5
+ { (eval echo "$as_me:1994: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:1959: \$? = $ac_status" >&5
+ echo "$as_me:1997: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
CLANG_COMPILER=yes
@@ -1966,7 +2004,7 @@ cat "conftest.$ac_ext" >&5
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
CFLAGS="$cf_save_CFLAGS"
- echo "$as_me:1969: result: $CLANG_COMPILER" >&5
+ echo "$as_me:2007: result: $CLANG_COMPILER" >&5
echo "${ECHO_T}$CLANG_COMPILER" >&6
fi
@@ -1975,30 +2013,30 @@ CLANG_VERSION=none
if test "x$CLANG_COMPILER" = "xyes" ; then
case "$CC" in
(c[1-9][0-9]|*/c[1-9][0-9])
- { echo "$as_me:1978: WARNING: replacing broken compiler alias $CC" >&5
+ { echo "$as_me:2016: WARNING: replacing broken compiler alias $CC" >&5
echo "$as_me: WARNING: replacing broken compiler alias $CC" >&2;}
CFLAGS="$CFLAGS -std=`echo "$CC" | sed -e 's%.*/%%'`"
CC=clang
;;
esac
- echo "$as_me:1985: checking version of $CC" >&5
+ echo "$as_me:2023: checking version of $CC" >&5
echo $ECHO_N "checking version of $CC... $ECHO_C" >&6
CLANG_VERSION="`$CC --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(CLANG[^)]*) //' -e 's/^.*(Debian[^)]*) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
test -z "$CLANG_VERSION" && CLANG_VERSION=unknown
- echo "$as_me:1989: result: $CLANG_VERSION" >&5
+ echo "$as_me:2027: result: $CLANG_VERSION" >&5
echo "${ECHO_T}$CLANG_VERSION" >&6
for cf_clang_opt in \
-Qunused-arguments \
-Wno-error=implicit-function-declaration
do
- echo "$as_me:1996: checking if option $cf_clang_opt works" >&5
+ echo "$as_me:2034: checking if option $cf_clang_opt works" >&5
echo $ECHO_N "checking if option $cf_clang_opt works... $ECHO_C" >&6
cf_save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $cf_clang_opt"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 2001 "configure"
+#line 2039 "configure"
#include "confdefs.h"
#include <stdio.h>
@@ -2012,16 +2050,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:2015: \"$ac_link\"") >&5
+if { (eval echo "$as_me:2053: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:2018: \$? = $ac_status" >&5
+ echo "$as_me:2056: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:2021: \"$ac_try\"") >&5
+ { (eval echo "$as_me:2059: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:2024: \$? = $ac_status" >&5
+ echo "$as_me:2062: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_clang_optok=yes
@@ -2032,13 +2070,13 @@ cat "conftest.$ac_ext" >&5
cf_clang_optok=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
- echo "$as_me:2035: result: $cf_clang_optok" >&5
+ echo "$as_me:2073: result: $cf_clang_optok" >&5
echo "${ECHO_T}$cf_clang_optok" >&6
CFLAGS="$cf_save_CFLAGS"
if test "$cf_clang_optok" = yes; then
test -n "$verbose" && echo " adding option $cf_clang_opt" 1>&6
-echo "${as_me:-configure}:2041: testing adding option $cf_clang_opt ..." 1>&5
+echo "${as_me:-configure}:2079: testing adding option $cf_clang_opt ..." 1>&5
test -n "$CFLAGS" && CFLAGS="$CFLAGS "
CFLAGS="${CFLAGS}$cf_clang_opt"
@@ -2047,7 +2085,7 @@ echo "${as_me:-configure}:2041: testing adding option $cf_clang_opt ..." 1>&5
done
fi
-echo "$as_me:2050: checking for $CC option to accept ANSI C" >&5
+echo "$as_me:2088: checking for $CC option to accept ANSI C" >&5
echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
if test "${ac_cv_prog_cc_stdc+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -2055,7 +2093,7 @@ else
ac_cv_prog_cc_stdc=no
ac_save_CC=$CC
cat >"conftest.$ac_ext" <<_ACEOF
-#line 2058 "configure"
+#line 2096 "configure"
#include "confdefs.h"
#include <stdarg.h>
#include <stdio.h>
@@ -2064,9 +2102,7 @@ cat >"conftest.$ac_ext" <<_ACEOF
/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
struct buf { int x; };
FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
- char **p;
- int i;
+static char *e (char **p, int i)
{
return p[i];
}
@@ -2104,16 +2140,16 @@ for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIO
do
CC="$ac_save_CC $ac_arg"
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:2107: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:2143: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:2110: \$? = $ac_status" >&5
+ echo "$as_me:2146: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:2113: \"$ac_try\"") >&5
+ { (eval echo "$as_me:2149: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:2116: \$? = $ac_status" >&5
+ echo "$as_me:2152: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_prog_cc_stdc=$ac_arg
break
@@ -2130,10 +2166,10 @@ fi
case "x$ac_cv_prog_cc_stdc" in
x|xno)
- echo "$as_me:2133: result: none needed" >&5
+ echo "$as_me:2169: result: none needed" >&5
echo "${ECHO_T}none needed" >&6 ;;
*)
- echo "$as_me:2136: result: $ac_cv_prog_cc_stdc" >&5
+ echo "$as_me:2172: result: $ac_cv_prog_cc_stdc" >&5
echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
CC="$CC $ac_cv_prog_cc_stdc" ;;
esac
@@ -2141,13 +2177,13 @@ esac
# This should have been defined by AC_PROG_CC
: "${CC:=cc}"
-echo "$as_me:2144: checking \$CFLAGS variable" >&5
+echo "$as_me:2180: checking \$CFLAGS variable" >&5
echo $ECHO_N "checking \$CFLAGS variable... $ECHO_C" >&6
case "x$CFLAGS" in
(*-[IUD]*)
- echo "$as_me:2148: result: broken" >&5
+ echo "$as_me:2184: result: broken" >&5
echo "${ECHO_T}broken" >&6
- { echo "$as_me:2150: WARNING: your environment uses the CFLAGS variable to hold CPPFLAGS options" >&5
+ { echo "$as_me:2186: WARNING: your environment uses the CFLAGS variable to hold CPPFLAGS options" >&5
echo "$as_me: WARNING: your environment uses the CFLAGS variable to hold CPPFLAGS options" >&2;}
cf_flags="$CFLAGS"
CFLAGS=
@@ -2255,22 +2291,22 @@ fi
done
;;
(*)
- echo "$as_me:2258: result: ok" >&5
+ echo "$as_me:2294: result: ok" >&5
echo "${ECHO_T}ok" >&6
;;
esac
-echo "$as_me:2263: checking \$CC variable" >&5
+echo "$as_me:2299: checking \$CC variable" >&5
echo $ECHO_N "checking \$CC variable... $ECHO_C" >&6
case "$CC" in
(*[\ \ ]-*)
- echo "$as_me:2267: result: broken" >&5
+ echo "$as_me:2303: result: broken" >&5
echo "${ECHO_T}broken" >&6
- { echo "$as_me:2269: WARNING: your environment uses the CC variable to hold CFLAGS/CPPFLAGS options" >&5
+ { echo "$as_me:2305: WARNING: your environment uses the CC variable to hold CFLAGS/CPPFLAGS options" >&5
echo "$as_me: WARNING: your environment uses the CC variable to hold CFLAGS/CPPFLAGS options" >&2;}
# humor him...
cf_prog=`echo "$CC" | sed -e 's/ / /g' -e 's/[ ]* / /g' -e 's/[ ]*[ ]-[^ ].*//'`
- cf_flags=`echo "$CC" | ${AWK:-awk} -v prog="$cf_prog" '{ printf("%s", substr($0,1+length(prog))); }'`
+ cf_flags=`echo "$CC" | sed -e "s%^$cf_prog%%"`
CC="$cf_prog"
for cf_arg in $cf_flags
do
@@ -2383,24 +2419,24 @@ fi
done
test -n "$verbose" && echo " resulting CC: '$CC'" 1>&6
-echo "${as_me:-configure}:2386: testing resulting CC: '$CC' ..." 1>&5
+echo "${as_me:-configure}:2422: testing resulting CC: '$CC' ..." 1>&5
test -n "$verbose" && echo " resulting CFLAGS: '$CFLAGS'" 1>&6
-echo "${as_me:-configure}:2390: testing resulting CFLAGS: '$CFLAGS' ..." 1>&5
+echo "${as_me:-configure}:2426: testing resulting CFLAGS: '$CFLAGS' ..." 1>&5
test -n "$verbose" && echo " resulting CPPFLAGS: '$CPPFLAGS'" 1>&6
-echo "${as_me:-configure}:2394: testing resulting CPPFLAGS: '$CPPFLAGS' ..." 1>&5
+echo "${as_me:-configure}:2430: testing resulting CPPFLAGS: '$CPPFLAGS' ..." 1>&5
;;
(*)
- echo "$as_me:2398: result: ok" >&5
+ echo "$as_me:2434: result: ok" >&5
echo "${ECHO_T}ok" >&6
;;
esac
-echo "$as_me:2403: checking for inline" >&5
+echo "$as_me:2439: checking for inline" >&5
echo $ECHO_N "checking for inline... $ECHO_C" >&6
if test "${ac_cv_c_inline+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -2408,25 +2444,25 @@ else
ac_cv_c_inline=no
for ac_kw in inline __inline__ __inline; do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 2411 "configure"
+#line 2447 "configure"
#include "confdefs.h"
#ifndef __cplusplus
-static $ac_kw int static_foo () {return 0; }
-$ac_kw int foo () {return 0; }
+static $ac_kw int static_foo (void) {return 0; }
+$ac_kw int foo (void) {return 0; }
#endif
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:2420: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:2456: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:2423: \$? = $ac_status" >&5
+ echo "$as_me:2459: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:2426: \"$ac_try\"") >&5
+ { (eval echo "$as_me:2462: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:2429: \$? = $ac_status" >&5
+ echo "$as_me:2465: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_c_inline=$ac_kw; break
else
@@ -2437,7 +2473,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
done
fi
-echo "$as_me:2440: result: $ac_cv_c_inline" >&5
+echo "$as_me:2476: result: $ac_cv_c_inline" >&5
echo "${ECHO_T}$ac_cv_c_inline" >&6
case $ac_cv_c_inline in
inline | yes) ;;
@@ -2456,7 +2492,7 @@ for ac_prog in ggrep grep
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-echo "$as_me:2459: checking for $ac_word" >&5
+echo "$as_me:2495: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_GREP+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -2471,7 +2507,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_GREP="$ac_prog"
-echo "$as_me:2474: found $ac_dir/$ac_word" >&5
+echo "$as_me:2510: found $ac_dir/$ac_word" >&5
break
done
@@ -2479,10 +2515,10 @@ fi
fi
GREP=$ac_cv_prog_GREP
if test -n "$GREP"; then
- echo "$as_me:2482: result: $GREP" >&5
+ echo "$as_me:2518: result: $GREP" >&5
echo "${ECHO_T}$GREP" >&6
else
- echo "$as_me:2485: result: no" >&5
+ echo "$as_me:2521: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -2490,7 +2526,7 @@ fi
done
test -n "$GREP" || GREP=": "
-echo "$as_me:2493: checking for egrep" >&5
+echo "$as_me:2529: checking for egrep" >&5
echo $ECHO_N "checking for egrep... $ECHO_C" >&6
if test "${ac_cv_path_EGREP+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -2502,7 +2538,7 @@ else
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-echo "$as_me:2505: checking for $ac_word" >&5
+echo "$as_me:2541: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_path_EGREP+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -2519,7 +2555,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
if $as_executable_p "$ac_dir/$ac_word"; then
ac_cv_path_EGREP="$ac_dir/$ac_word"
- echo "$as_me:2522: found $ac_dir/$ac_word" >&5
+ echo "$as_me:2558: found $ac_dir/$ac_word" >&5
break
fi
done
@@ -2530,10 +2566,10 @@ fi
EGREP=$ac_cv_path_EGREP
if test -n "$EGREP"; then
- echo "$as_me:2533: result: $EGREP" >&5
+ echo "$as_me:2569: result: $EGREP" >&5
echo "${ECHO_T}$EGREP" >&6
else
- echo "$as_me:2536: result: no" >&5
+ echo "$as_me:2572: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -2541,12 +2577,12 @@ fi
done
test -n "$EGREP" || EGREP=": "
- test "x$ac_cv_path_EGREP" = "x:" && { { echo "$as_me:2544: error: cannot find workable egrep" >&5
+ test "x$ac_cv_path_EGREP" = "x:" && { { echo "$as_me:2580: error: cannot find workable egrep" >&5
echo "$as_me: error: cannot find workable egrep" >&2;}
{ (exit 1); exit 1; }; }
fi
fi
-echo "$as_me:2549: result: $ac_cv_path_EGREP" >&5
+echo "$as_me:2585: result: $ac_cv_path_EGREP" >&5
echo "${ECHO_T}$ac_cv_path_EGREP" >&6
EGREP="$ac_cv_path_EGREP"
@@ -2556,7 +2592,7 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS "conftest.$ac_ext" >&5'
ac_link='$CC -o "conftest$ac_exeext" $CFLAGS $CPPFLAGS $LDFLAGS "conftest.$ac_ext" $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
ac_main_return="return"
-echo "$as_me:2559: checking how to run the C preprocessor" >&5
+echo "$as_me:2595: checking how to run the C preprocessor" >&5
echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
@@ -2577,18 +2613,18 @@ do
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp. "Syntax error" is here to catch this case.
cat >"conftest.$ac_ext" <<_ACEOF
-#line 2580 "configure"
+#line 2616 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax error
_ACEOF
-if { (eval echo "$as_me:2585: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:2621: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:2591: \$? = $ac_status" >&5
+ echo "$as_me:2627: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -2611,17 +2647,17 @@ rm -f conftest.err "conftest.$ac_ext"
# OK, works on sane cases. Now check whether non-existent headers
# can be detected and how.
cat >"conftest.$ac_ext" <<_ACEOF
-#line 2614 "configure"
+#line 2650 "configure"
#include "confdefs.h"
#include <ac_nonexistent.h>
_ACEOF
-if { (eval echo "$as_me:2618: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:2654: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:2624: \$? = $ac_status" >&5
+ echo "$as_me:2660: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -2658,7 +2694,7 @@ fi
else
ac_cv_prog_CPP=$CPP
fi
-echo "$as_me:2661: result: $CPP" >&5
+echo "$as_me:2697: result: $CPP" >&5
echo "${ECHO_T}$CPP" >&6
ac_preproc_ok=false
for ac_c_preproc_warn_flag in '' yes
@@ -2668,18 +2704,18 @@ do
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp. "Syntax error" is here to catch this case.
cat >"conftest.$ac_ext" <<_ACEOF
-#line 2671 "configure"
+#line 2707 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax error
_ACEOF
-if { (eval echo "$as_me:2676: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:2712: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:2682: \$? = $ac_status" >&5
+ echo "$as_me:2718: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -2702,17 +2738,17 @@ rm -f conftest.err "conftest.$ac_ext"
# OK, works on sane cases. Now check whether non-existent headers
# can be detected and how.
cat >"conftest.$ac_ext" <<_ACEOF
-#line 2705 "configure"
+#line 2741 "configure"
#include "confdefs.h"
#include <ac_nonexistent.h>
_ACEOF
-if { (eval echo "$as_me:2709: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:2745: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:2715: \$? = $ac_status" >&5
+ echo "$as_me:2751: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -2740,7 +2776,7 @@ rm -f conftest.err "conftest.$ac_ext"
if $ac_preproc_ok; then
:
else
- { { echo "$as_me:2743: error: C preprocessor \"$CPP\" fails sanity check" >&5
+ { { echo "$as_me:2779: error: C preprocessor \"$CPP\" fails sanity check" >&5
echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -2756,7 +2792,7 @@ for ac_prog in mawk gawk nawk awk
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-echo "$as_me:2759: checking for $ac_word" >&5
+echo "$as_me:2795: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_AWK+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -2771,7 +2807,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_AWK="$ac_prog"
-echo "$as_me:2774: found $ac_dir/$ac_word" >&5
+echo "$as_me:2810: found $ac_dir/$ac_word" >&5
break
done
@@ -2779,10 +2815,10 @@ fi
fi
AWK=$ac_cv_prog_AWK
if test -n "$AWK"; then
- echo "$as_me:2782: result: $AWK" >&5
+ echo "$as_me:2818: result: $AWK" >&5
echo "${ECHO_T}$AWK" >&6
else
- echo "$as_me:2785: result: no" >&5
+ echo "$as_me:2821: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -2801,7 +2837,7 @@ done
# AFS /usr/afsws/bin/install, which mishandles nonexistent args
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
# ./install, which can be erroneously created by make from ./install.sh.
-echo "$as_me:2804: checking for a BSD compatible install" >&5
+echo "$as_me:2840: checking for a BSD compatible install" >&5
echo $ECHO_N "checking for a BSD compatible install... $ECHO_C" >&6
if test -z "$INSTALL"; then
if test "${ac_cv_path_install+set}" = set; then
@@ -2850,7 +2886,7 @@ fi
INSTALL=$ac_install_sh
fi
fi
-echo "$as_me:2853: result: $INSTALL" >&5
+echo "$as_me:2889: result: $INSTALL" >&5
echo "${ECHO_T}$INSTALL" >&6
# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
@@ -2871,7 +2907,7 @@ case $INSTALL in
;;
esac
-echo "$as_me:2874: checking if you want to install stripped executables" >&5
+echo "$as_me:2910: checking if you want to install stripped executables" >&5
echo $ECHO_N "checking if you want to install stripped executables... $ECHO_C" >&6
# Check whether --enable-stripping or --disable-stripping was given.
@@ -2888,7 +2924,7 @@ else
enable_stripping=yes
fi;
-echo "$as_me:2891: result: $enable_stripping" >&5
+echo "$as_me:2927: result: $enable_stripping" >&5
echo "${ECHO_T}$enable_stripping" >&6
if test "$enable_stripping" = yes
@@ -2899,7 +2935,7 @@ else
fi
: "${INSTALL:=install}"
-echo "$as_me:2902: checking if install accepts -p option" >&5
+echo "$as_me:2938: checking if install accepts -p option" >&5
echo $ECHO_N "checking if install accepts -p option... $ECHO_C" >&6
if test "${cf_cv_install_p+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -2930,10 +2966,10 @@ else
rm -rf ./conftest*
fi
-echo "$as_me:2933: result: $cf_cv_install_p" >&5
+echo "$as_me:2969: result: $cf_cv_install_p" >&5
echo "${ECHO_T}$cf_cv_install_p" >&6
-echo "$as_me:2936: checking if install needs to be told about ownership" >&5
+echo "$as_me:2972: checking if install needs to be told about ownership" >&5
echo $ECHO_N "checking if install needs to be told about ownership... $ECHO_C" >&6
case `$ac_config_guess` in
(*minix)
@@ -2944,7 +2980,7 @@ case `$ac_config_guess` in
;;
esac
-echo "$as_me:2947: result: $with_install_o" >&5
+echo "$as_me:2983: result: $with_install_o" >&5
echo "${ECHO_T}$with_install_o" >&6
if test "x$with_install_o" = xyes
then
@@ -2953,11 +2989,77 @@ else
INSTALL_OPT_O=
fi
+if test -n "$INSTALL_OPT_S"
+then
+ echo "$as_me:2994: checking if you want to specify strip-program" >&5
+echo $ECHO_N "checking if you want to specify strip-program... $ECHO_C" >&6
+
+# Check whether --with-strip-program or --without-strip-program was given.
+if test "${with_strip_program+set}" = set; then
+ withval="$with_strip_program"
+ with_strip_program=$withval
+else
+ with_strip_program=no
+fi;
+ echo "$as_me:3004: result: $with_strip_program" >&5
+echo "${ECHO_T}$with_strip_program" >&6
+ if test "$with_strip_program" != no
+ then
+ echo "$as_me:3008: checking if strip-program is supported with this installer" >&5
+echo $ECHO_N "checking if strip-program is supported with this installer... $ECHO_C" >&6
+ cf_install_program=`echo "$INSTALL" | sed -e 's%[ ]*[ ]-.%%'`
+ check_install_strip=no
+ if test -f "$cf_install_program"
+ then
+ check_install_version=`"$cf_install_program" --version 2>/dev/null | head -n 1 | grep coreutils`
+ if test -n "$check_install_version"
+ then
+ check_install_strip="option"
+ else
+ for check_strip_variable in STRIPBIN STRIP
+ do
+ if strings "$cf_install_program" | grep "^$check_strip_variable$" >/dev/null
+ then
+ check_install_strip="environ"
+ break
+ fi
+ done
+ fi
+ fi
+ echo "$as_me:3029: result: $check_install_strip" >&5
+echo "${ECHO_T}$check_install_strip" >&6
+ case "$check_install_strip" in
+ (no)
+ { echo "$as_me:3033: WARNING: $cf_install_program does not support strip program option" >&5
+echo "$as_me: WARNING: $cf_install_program does not support strip program option" >&2;}
+ with_strip_program=no
+ ;;
+ (environ)
+ cat >install.tmp <<-CF_EOF
+ #! $SHELL
+ STRIPBIN="$with_strip_program" \\
+ STRIP="$with_strip_program" \\
+ $INSTALL "$@"
+ CF_EOF
+ INSTALL="`pwd`/install.tmp"
+ chmod +x "$INSTALL"
+ test -n "$verbose" && echo " created $INSTALL" 1>&6
+
+echo "${as_me:-configure}:3048: testing created $INSTALL ..." 1>&5
+
+ ;;
+ (option)
+ INSTALL_OPT_S="$INSTALL_OPT_S --strip-program=\"$with_strip_program\""
+ ;;
+ esac
+ fi
+fi
+
for ac_prog in lint cppcheck splint
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-echo "$as_me:2960: checking for $ac_word" >&5
+echo "$as_me:3062: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_LINT+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -2972,7 +3074,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_LINT="$ac_prog"
-echo "$as_me:2975: found $ac_dir/$ac_word" >&5
+echo "$as_me:3077: found $ac_dir/$ac_word" >&5
break
done
@@ -2980,10 +3082,10 @@ fi
fi
LINT=$ac_cv_prog_LINT
if test -n "$LINT"; then
- echo "$as_me:2983: result: $LINT" >&5
+ echo "$as_me:3085: result: $LINT" >&5
echo "${ECHO_T}$LINT" >&6
else
- echo "$as_me:2986: result: no" >&5
+ echo "$as_me:3088: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -2996,7 +3098,69 @@ case "x$LINT" in
;;
esac
-echo "$as_me:2999: checking if filesystem supports mixed-case filenames" >&5
+echo "$as_me:3101: checking for \".PHONY\" make-support" >&5
+echo $ECHO_N "checking for \".PHONY\" make-support... $ECHO_C" >&6
+if test "${cf_cv_make_PHONY+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+ rm -rf conftest*
+ (
+ mkdir conftest || exit 1
+ cd conftest
+ cat >makefile <<'CF_EOF'
+.PHONY: always
+DATA=0
+always: always.out
+ @echo "** making $@ $(DATA)"
+once: once.out
+ @echo "** making $@ $(DATA)"
+always.out:
+ @echo "** making $@ $(DATA)"
+ echo $(DATA) > $@
+once.out:
+ @echo "** making $@ $(DATA)"
+ echo $(DATA) > $@
+CF_EOF
+ for cf_data in 1 2 3
+ do
+ ${MAKE:-make} always DATA=$cf_data
+ ${MAKE:-make} once DATA=$cf_data
+ ${MAKE:-make} -t always once
+ if test -f always ; then
+ echo "no (case 1)" > ../conftest.tmp
+ elif test ! -f always.out ; then
+ echo "no (case 2)" > ../conftest.tmp
+ elif test ! -f once.out ; then
+ echo "no (case 3)" > ../conftest.tmp
+ elif ! cmp -s always.out once.out ; then
+ echo "no (case 4)" > ../conftest.tmp
+ diff always.out once.out
+ else
+ cf_check="`cat always.out`"
+ if test "x$cf_check" != "x$cf_data" ; then
+ echo "no (case 5)" > ../conftest.tmp
+ else
+ echo yes > ../conftest.tmp
+ rm -f ./*.out
+ continue
+ fi
+ fi
+ break
+ done
+ ) >&5 2>&1
+ cf_cv_make_PHONY="`cat conftest.tmp`"
+ rm -rf conftest*
+
+fi
+echo "$as_me:3156: result: $cf_cv_make_PHONY" >&5
+echo "${ECHO_T}$cf_cv_make_PHONY" >&6
+MAKE_NO_PHONY="#"
+MAKE_PHONY="#"
+test "x$cf_cv_make_PHONY" = xyes && MAKE_PHONY=
+test "x$cf_cv_make_PHONY" != xyes && MAKE_NO_PHONY=
+
+echo "$as_me:3163: checking if filesystem supports mixed-case filenames" >&5
echo $ECHO_N "checking if filesystem supports mixed-case filenames... $ECHO_C" >&6
if test "${cf_cv_mixedcase+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3023,7 +3187,7 @@ else
fi
fi
-echo "$as_me:3026: result: $cf_cv_mixedcase" >&5
+echo "$as_me:3190: result: $cf_cv_mixedcase" >&5
echo "${ECHO_T}$cf_cv_mixedcase" >&6
test "$cf_cv_mixedcase" = yes &&
cat >>confdefs.h <<\EOF
@@ -3034,7 +3198,7 @@ for ac_prog in exctags ctags
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-echo "$as_me:3037: checking for $ac_word" >&5
+echo "$as_me:3201: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_CTAGS+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3049,7 +3213,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_CTAGS="$ac_prog"
-echo "$as_me:3052: found $ac_dir/$ac_word" >&5
+echo "$as_me:3216: found $ac_dir/$ac_word" >&5
break
done
@@ -3057,10 +3221,10 @@ fi
fi
CTAGS=$ac_cv_prog_CTAGS
if test -n "$CTAGS"; then
- echo "$as_me:3060: result: $CTAGS" >&5
+ echo "$as_me:3224: result: $CTAGS" >&5
echo "${ECHO_T}$CTAGS" >&6
else
- echo "$as_me:3063: result: no" >&5
+ echo "$as_me:3227: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -3071,7 +3235,7 @@ for ac_prog in exetags etags
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-echo "$as_me:3074: checking for $ac_word" >&5
+echo "$as_me:3238: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_ETAGS+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3086,7 +3250,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_ETAGS="$ac_prog"
-echo "$as_me:3089: found $ac_dir/$ac_word" >&5
+echo "$as_me:3253: found $ac_dir/$ac_word" >&5
break
done
@@ -3094,10 +3258,10 @@ fi
fi
ETAGS=$ac_cv_prog_ETAGS
if test -n "$ETAGS"; then
- echo "$as_me:3097: result: $ETAGS" >&5
+ echo "$as_me:3261: result: $ETAGS" >&5
echo "${ECHO_T}$ETAGS" >&6
else
- echo "$as_me:3100: result: no" >&5
+ echo "$as_me:3264: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -3106,7 +3270,7 @@ done
# Extract the first word of "${CTAGS:-ctags}", so it can be a program name with args.
set dummy ${CTAGS:-ctags}; ac_word=$2
-echo "$as_me:3109: checking for $ac_word" >&5
+echo "$as_me:3273: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_MAKE_LOWER_TAGS+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3121,7 +3285,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_MAKE_LOWER_TAGS="yes"
-echo "$as_me:3124: found $ac_dir/$ac_word" >&5
+echo "$as_me:3288: found $ac_dir/$ac_word" >&5
break
done
@@ -3130,17 +3294,17 @@ fi
fi
MAKE_LOWER_TAGS=$ac_cv_prog_MAKE_LOWER_TAGS
if test -n "$MAKE_LOWER_TAGS"; then
- echo "$as_me:3133: result: $MAKE_LOWER_TAGS" >&5
+ echo "$as_me:3297: result: $MAKE_LOWER_TAGS" >&5
echo "${ECHO_T}$MAKE_LOWER_TAGS" >&6
else
- echo "$as_me:3136: result: no" >&5
+ echo "$as_me:3300: result: no" >&5
echo "${ECHO_T}no" >&6
fi
if test "$cf_cv_mixedcase" = yes ; then
# Extract the first word of "${ETAGS:-etags}", so it can be a program name with args.
set dummy ${ETAGS:-etags}; ac_word=$2
-echo "$as_me:3143: checking for $ac_word" >&5
+echo "$as_me:3307: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_MAKE_UPPER_TAGS+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3155,7 +3319,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_MAKE_UPPER_TAGS="yes"
-echo "$as_me:3158: found $ac_dir/$ac_word" >&5
+echo "$as_me:3322: found $ac_dir/$ac_word" >&5
break
done
@@ -3164,10 +3328,10 @@ fi
fi
MAKE_UPPER_TAGS=$ac_cv_prog_MAKE_UPPER_TAGS
if test -n "$MAKE_UPPER_TAGS"; then
- echo "$as_me:3167: result: $MAKE_UPPER_TAGS" >&5
+ echo "$as_me:3331: result: $MAKE_UPPER_TAGS" >&5
echo "${ECHO_T}$MAKE_UPPER_TAGS" >&6
else
- echo "$as_me:3170: result: no" >&5
+ echo "$as_me:3334: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -3187,19 +3351,19 @@ else
MAKE_LOWER_TAGS="#"
fi
-echo "$as_me:3190: checking if -lm needed for math functions" >&5
+echo "$as_me:3354: checking if -lm needed for math functions" >&5
echo $ECHO_N "checking if -lm needed for math functions... $ECHO_C" >&6
if test "${cf_cv_need_libm+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 3197 "configure"
+#line 3361 "configure"
#include "confdefs.h"
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <math.h>
int
main (void)
@@ -3210,16 +3374,16 @@ double x = rand(); printf("result = %g\\n", pow(sin(x),x))
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:3213: \"$ac_link\"") >&5
+if { (eval echo "$as_me:3377: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:3216: \$? = $ac_status" >&5
+ echo "$as_me:3380: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:3219: \"$ac_try\"") >&5
+ { (eval echo "$as_me:3383: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:3222: \$? = $ac_status" >&5
+ echo "$as_me:3386: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_need_libm=no
else
@@ -3229,11 +3393,75 @@ cf_cv_need_libm=yes
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:3232: result: $cf_cv_need_libm" >&5
+echo "$as_me:3396: result: $cf_cv_need_libm" >&5
echo "${ECHO_T}$cf_cv_need_libm" >&6
+
if test "$cf_cv_need_libm" = yes
then
-MATH_LIB=-lm
+
+ cf_save_LIBS="$LIBS"
+ LIBS="$LIBS -lm"
+ echo "$as_me:3404: checking if -lm is available for math functions" >&5
+echo $ECHO_N "checking if -lm is available for math functions... $ECHO_C" >&6
+if test "${cf_cv_have_libm+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+ cat >"conftest.$ac_ext" <<_ACEOF
+#line 3411 "configure"
+#include "confdefs.h"
+
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <math.h>
+
+int
+main (void)
+{
+double x = rand(); printf("result = %g\\n", pow(sin(x),x))
+ ;
+ return 0;
+}
+_ACEOF
+rm -f "conftest.$ac_objext" "conftest$ac_exeext"
+if { (eval echo "$as_me:3427: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:3430: \$? = $ac_status" >&5
+ (exit "$ac_status"); } &&
+ { ac_try='test -s "conftest$ac_exeext"'
+ { (eval echo "$as_me:3433: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:3436: \$? = $ac_status" >&5
+ (exit "$ac_status"); }; }; then
+ cf_cv_have_libm=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat "conftest.$ac_ext" >&5
+cf_cv_have_libm=no
+fi
+rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
+fi
+echo "$as_me:3446: result: $cf_cv_have_libm" >&5
+echo "${ECHO_T}$cf_cv_have_libm" >&6
+ LIBS="$cf_save_LIBS"
+
+ if test "$cf_cv_have_libm" = yes
+ then
+ MATH_LIB=-lm
+ fi
+else
+ cf_cv_have_libm=yes
+fi
+
+if test "$cf_cv_have_libm" = yes
+then
+
+cat >>confdefs.h <<\EOF
+#define HAVE_MATH_FUNCS 1
+EOF
+
fi
top_builddir=`pwd`
@@ -3270,7 +3498,7 @@ includesubdir=""
cf_cv_screen=curses
cf_cv_libtype=
-echo "$as_me:3273: checking for fgrep" >&5
+echo "$as_me:3501: checking for fgrep" >&5
echo $ECHO_N "checking for fgrep... $ECHO_C" >&6
if test "${ac_cv_path_FGREP+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3282,7 +3510,7 @@ else
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-echo "$as_me:3285: checking for $ac_word" >&5
+echo "$as_me:3513: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_path_FGREP+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3299,7 +3527,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
if $as_executable_p "$ac_dir/$ac_word"; then
ac_cv_path_FGREP="$ac_dir/$ac_word"
- echo "$as_me:3302: found $ac_dir/$ac_word" >&5
+ echo "$as_me:3530: found $ac_dir/$ac_word" >&5
break
fi
done
@@ -3310,10 +3538,10 @@ fi
FGREP=$ac_cv_path_FGREP
if test -n "$FGREP"; then
- echo "$as_me:3313: result: $FGREP" >&5
+ echo "$as_me:3541: result: $FGREP" >&5
echo "${ECHO_T}$FGREP" >&6
else
- echo "$as_me:3316: result: no" >&5
+ echo "$as_me:3544: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -3321,15 +3549,99 @@ fi
done
test -n "$FGREP" || FGREP=": "
- test "x$ac_cv_path_FGREP" = "x:" && { { echo "$as_me:3324: error: cannot find workable fgrep" >&5
+ test "x$ac_cv_path_FGREP" = "x:" && { { echo "$as_me:3552: error: cannot find workable fgrep" >&5
echo "$as_me: error: cannot find workable fgrep" >&2;}
{ (exit 1); exit 1; }; }
fi
fi
-echo "$as_me:3329: result: $ac_cv_path_FGREP" >&5
+echo "$as_me:3557: result: $ac_cv_path_FGREP" >&5
echo "${ECHO_T}$ac_cv_path_FGREP" >&6
FGREP="$ac_cv_path_FGREP"
+echo "$as_me:3561: checking if you want to use C11 _Noreturn feature" >&5
+echo $ECHO_N "checking if you want to use C11 _Noreturn feature... $ECHO_C" >&6
+
+# Check whether --enable-stdnoreturn or --disable-stdnoreturn was given.
+if test "${enable_stdnoreturn+set}" = set; then
+ enableval="$enable_stdnoreturn"
+ test "$enableval" != yes && enableval=no
+ if test "$enableval" != "no" ; then
+ enable_stdnoreturn=yes
+ else
+ enable_stdnoreturn=no
+ fi
+else
+ enableval=no
+ enable_stdnoreturn=no
+
+fi;
+echo "$as_me:3578: result: $enable_stdnoreturn" >&5
+echo "${ECHO_T}$enable_stdnoreturn" >&6
+
+if test $enable_stdnoreturn = yes; then
+echo "$as_me:3582: checking for C11 _Noreturn feature" >&5
+echo $ECHO_N "checking for C11 _Noreturn feature... $ECHO_C" >&6
+if test "${cf_cv_c11_noreturn+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >"conftest.$ac_ext" <<_ACEOF
+#line 3588 "configure"
+#include "confdefs.h"
+
+$ac_includes_default
+#include <stdnoreturn.h>
+static _Noreturn void giveup(void) { exit(0); }
+
+int
+main (void)
+{
+if (feof(stdin)) giveup()
+ ;
+ return 0;
+}
+_ACEOF
+rm -f "conftest.$ac_objext"
+if { (eval echo "$as_me:3604: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:3607: \$? = $ac_status" >&5
+ (exit "$ac_status"); } &&
+ { ac_try='test -s "conftest.$ac_objext"'
+ { (eval echo "$as_me:3610: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:3613: \$? = $ac_status" >&5
+ (exit "$ac_status"); }; }; then
+ cf_cv_c11_noreturn=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat "conftest.$ac_ext" >&5
+cf_cv_c11_noreturn=no
+fi
+rm -f "conftest.$ac_objext" "conftest.$ac_ext"
+
+fi
+echo "$as_me:3624: result: $cf_cv_c11_noreturn" >&5
+echo "${ECHO_T}$cf_cv_c11_noreturn" >&6
+else
+ cf_cv_c11_noreturn=no,
+fi
+
+if test "$cf_cv_c11_noreturn" = yes; then
+
+cat >>confdefs.h <<\EOF
+#define HAVE_STDNORETURN_H 1
+EOF
+
+cat >>confdefs.h <<EOF
+#define STDC_NORETURN _Noreturn
+EOF
+
+ HAVE_STDNORETURN_H=1
+else
+ HAVE_STDNORETURN_H=0
+fi
+
if test "$GCC" = yes || test "$GXX" = yes
then
cat > conftest.i <<EOF
@@ -3348,10 +3660,11 @@ cat > conftest.i <<EOF
EOF
if test "$GCC" = yes
then
- { echo "$as_me:3351: checking for $CC __attribute__ directives..." >&5
+ { echo "$as_me:3663: checking for $CC __attribute__ directives..." >&5
echo "$as_me: checking for $CC __attribute__ directives..." >&6;}
cat > "conftest.$ac_ext" <<EOF
-#line 3354 "${as_me:-configure}"
+#line 3666 "${as_me:-configure}"
+#include <stdio.h>
#include "confdefs.h"
#include "conftest.h"
#include "conftest.i"
@@ -3366,8 +3679,8 @@ cat > "conftest.$ac_ext" <<EOF
#define GCC_SCANFLIKE(fmt,var) /*nothing*/
#endif
extern void wow(char *,...) GCC_SCANFLIKE(1,2);
-extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
-extern void foo(void) GCC_NORETURN;
+extern GCC_NORETURN void oops(char *,...) GCC_PRINTFLIKE(1,2);
+extern GCC_NORETURN void foo(void);
int main(int argc GCC_UNUSED, char *argv[] GCC_UNUSED) { (void)argc; (void)argv; return 0; }
EOF
cf_printf_attribute=no
@@ -3400,12 +3713,12 @@ EOF
;;
esac
- if { (eval echo "$as_me:3403: \"$ac_compile\"") >&5
+ if { (eval echo "$as_me:3716: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:3406: \$? = $ac_status" >&5
+ echo "$as_me:3719: \$? = $ac_status" >&5
(exit "$ac_status"); }; then
- test -n "$verbose" && echo "$as_me:3408: result: ... $cf_attribute" >&5
+ test -n "$verbose" && echo "$as_me:3721: result: ... $cf_attribute" >&5
echo "${ECHO_T}... $cf_attribute" >&6
cat conftest.h >>confdefs.h
case "$cf_attribute" in
@@ -3464,7 +3777,7 @@ fi
rm -rf ./conftest*
fi
-echo "$as_me:3467: checking if you want to work around bogus compiler/loader warnings" >&5
+echo "$as_me:3780: checking if you want to work around bogus compiler/loader warnings" >&5
echo $ECHO_N "checking if you want to work around bogus compiler/loader warnings... $ECHO_C" >&6
# Check whether --enable-string-hacks or --disable-string-hacks was given.
@@ -3474,7 +3787,7 @@ if test "${enable_string_hacks+set}" = set; then
else
enable_string_hacks=no
fi;
-echo "$as_me:3477: result: $enable_string_hacks" >&5
+echo "$as_me:3790: result: $enable_string_hacks" >&5
echo "${ECHO_T}$enable_string_hacks" >&6
if test "x$enable_string_hacks" = "xyes"; then
@@ -3483,15 +3796,15 @@ cat >>confdefs.h <<\EOF
#define USE_STRING_HACKS 1
EOF
- { echo "$as_me:3486: WARNING: enabling string-hacks to work around bogus compiler/loader warnings" >&5
+ { echo "$as_me:3799: WARNING: enabling string-hacks to work around bogus compiler/loader warnings" >&5
echo "$as_me: WARNING: enabling string-hacks to work around bogus compiler/loader warnings" >&2;}
- echo "$as_me:3488: checking for strlcat" >&5
+ echo "$as_me:3801: checking for strlcat" >&5
echo $ECHO_N "checking for strlcat... $ECHO_C" >&6
if test "${ac_cv_func_strlcat+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 3494 "configure"
+#line 3807 "configure"
#include "confdefs.h"
#define strlcat autoconf_temporary
#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */
@@ -3522,16 +3835,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:3525: \"$ac_link\"") >&5
+if { (eval echo "$as_me:3838: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:3528: \$? = $ac_status" >&5
+ echo "$as_me:3841: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:3531: \"$ac_try\"") >&5
+ { (eval echo "$as_me:3844: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:3534: \$? = $ac_status" >&5
+ echo "$as_me:3847: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_func_strlcat=yes
else
@@ -3541,7 +3854,7 @@ ac_cv_func_strlcat=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:3544: result: $ac_cv_func_strlcat" >&5
+echo "$as_me:3857: result: $ac_cv_func_strlcat" >&5
echo "${ECHO_T}$ac_cv_func_strlcat" >&6
if test "$ac_cv_func_strlcat" = yes; then
@@ -3551,7 +3864,7 @@ EOF
else
- echo "$as_me:3554: checking for strlcat in -lbsd" >&5
+ echo "$as_me:3867: checking for strlcat in -lbsd" >&5
echo $ECHO_N "checking for strlcat in -lbsd... $ECHO_C" >&6
if test "${ac_cv_lib_bsd_strlcat+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3559,7 +3872,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lbsd $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 3562 "configure"
+#line 3875 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -3568,7 +3881,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char strlcat ();
+char strlcat (void);
int
main (void)
{
@@ -3578,16 +3891,16 @@ strlcat ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:3581: \"$ac_link\"") >&5
+if { (eval echo "$as_me:3894: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:3584: \$? = $ac_status" >&5
+ echo "$as_me:3897: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:3587: \"$ac_try\"") >&5
+ { (eval echo "$as_me:3900: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:3590: \$? = $ac_status" >&5
+ echo "$as_me:3903: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_bsd_strlcat=yes
else
@@ -3598,7 +3911,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:3601: result: $ac_cv_lib_bsd_strlcat" >&5
+echo "$as_me:3914: result: $ac_cv_lib_bsd_strlcat" >&5
echo "${ECHO_T}$ac_cv_lib_bsd_strlcat" >&6
if test "$ac_cv_lib_bsd_strlcat" = yes; then
@@ -3621,23 +3934,23 @@ LIBS="$cf_add_libs"
for ac_header in bsd/string.h
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:3624: checking for $ac_header" >&5
+echo "$as_me:3937: checking for $ac_header" >&5
echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 3630 "configure"
+#line 3943 "configure"
#include "confdefs.h"
#include <$ac_header>
_ACEOF
-if { (eval echo "$as_me:3634: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:3947: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:3640: \$? = $ac_status" >&5
+ echo "$as_me:3953: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -3656,7 +3969,7 @@ else
fi
rm -f conftest.err "conftest.$ac_ext"
fi
-echo "$as_me:3659: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
+echo "$as_me:3972: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
echo "${ECHO_T}`eval echo '${'"$as_ac_Header"'}'`" >&6
if test "`eval echo '${'"$as_ac_Header"'}'`" = yes; then
cat >>confdefs.h <<EOF
@@ -3677,13 +3990,13 @@ fi
for ac_func in strlcpy snprintf
do
as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:3680: checking for $ac_func" >&5
+echo "$as_me:3993: checking for $ac_func" >&5
echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
if eval "test \"\${$as_ac_var+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 3686 "configure"
+#line 3999 "configure"
#include "confdefs.h"
#define $ac_func autoconf_temporary
#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */
@@ -3714,16 +4027,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:3717: \"$ac_link\"") >&5
+if { (eval echo "$as_me:4030: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:3720: \$? = $ac_status" >&5
+ echo "$as_me:4033: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:3723: \"$ac_try\"") >&5
+ { (eval echo "$as_me:4036: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:3726: \$? = $ac_status" >&5
+ echo "$as_me:4039: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
eval "$as_ac_var=yes"
else
@@ -3733,7 +4046,7 @@ eval "$as_ac_var=no"
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:3736: result: `eval echo '${'"$as_ac_var"'}'`" >&5
+echo "$as_me:4049: result: `eval echo '${'"$as_ac_var"'}'`" >&5
echo "${ECHO_T}`eval echo '${'"$as_ac_var"'}'`" >&6
if test "`eval echo '${'"$as_ac_var"'}'`" = yes; then
cat >>confdefs.h <<EOF
@@ -3745,14 +4058,14 @@ done
fi
-echo "$as_me:3748: checking if the POSIX test-macros are already defined" >&5
+echo "$as_me:4061: checking if the POSIX test-macros are already defined" >&5
echo $ECHO_N "checking if the POSIX test-macros are already defined... $ECHO_C" >&6
if test "${cf_cv_posix_visible+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 3755 "configure"
+#line 4068 "configure"
#include "confdefs.h"
#include <stdio.h>
int
@@ -3771,16 +4084,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:3774: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:4087: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:3777: \$? = $ac_status" >&5
+ echo "$as_me:4090: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:3780: \"$ac_try\"") >&5
+ { (eval echo "$as_me:4093: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:3783: \$? = $ac_status" >&5
+ echo "$as_me:4096: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_posix_visible=no
else
@@ -3791,7 +4104,7 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:3794: result: $cf_cv_posix_visible" >&5
+echo "$as_me:4107: result: $cf_cv_posix_visible" >&5
echo "${ECHO_T}$cf_cv_posix_visible" >&6
if test "$cf_cv_posix_visible" = no; then
@@ -3804,9 +4117,6 @@ case "$host_os" in
(aix[4-7]*)
cf_xopen_source="-D_ALL_SOURCE"
;;
-(msys)
- cf_XOPEN_SOURCE=600
- ;;
(darwin[0-8].*)
cf_xopen_source="-D_APPLE_C_SOURCE"
;;
@@ -3832,18 +4142,18 @@ case "$host_os" in
cf_xopen_source="-D_SGI_SOURCE"
cf_XOPEN_SOURCE=
;;
-(linux*|uclinux*|gnu*|mint*|k*bsd*-gnu|cygwin)
+(linux*gnu|linux*gnuabi64|linux*gnuabin32|linux*gnueabi|linux*gnueabihf|linux*gnux32|uclinux*|gnu*|mint*|k*bsd*-gnu|cygwin|msys|mingw*|linux*uclibc)
cf_gnu_xopen_source=$cf_XOPEN_SOURCE
-echo "$as_me:3839: checking if this is the GNU C library" >&5
+echo "$as_me:4149: checking if this is the GNU C library" >&5
echo $ECHO_N "checking if this is the GNU C library... $ECHO_C" >&6
if test "${cf_cv_gnu_library+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 3846 "configure"
+#line 4156 "configure"
#include "confdefs.h"
#include <sys/types.h>
int
@@ -3862,16 +4172,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:3865: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:4175: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:3868: \$? = $ac_status" >&5
+ echo "$as_me:4178: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:3871: \"$ac_try\"") >&5
+ { (eval echo "$as_me:4181: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:3874: \$? = $ac_status" >&5
+ echo "$as_me:4184: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_gnu_library=yes
else
@@ -3882,7 +4192,7 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:3885: result: $cf_cv_gnu_library" >&5
+echo "$as_me:4195: result: $cf_cv_gnu_library" >&5
echo "${ECHO_T}$cf_cv_gnu_library" >&6
if test x$cf_cv_gnu_library = xyes; then
@@ -3890,7 +4200,7 @@ if test x$cf_cv_gnu_library = xyes; then
# With glibc 2.19 (13 years after this check was begun), _DEFAULT_SOURCE
# was changed to help a little. newlib incorporated the change about 4
# years later.
- echo "$as_me:3893: checking if _DEFAULT_SOURCE can be used as a basis" >&5
+ echo "$as_me:4203: checking if _DEFAULT_SOURCE can be used as a basis" >&5
echo $ECHO_N "checking if _DEFAULT_SOURCE can be used as a basis... $ECHO_C" >&6
if test "${cf_cv_gnu_library_219+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3902,7 +4212,7 @@ else
CPPFLAGS="${CPPFLAGS}-D_DEFAULT_SOURCE"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 3905 "configure"
+#line 4215 "configure"
#include "confdefs.h"
#include <sys/types.h>
int
@@ -3921,16 +4231,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:3924: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:4234: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:3927: \$? = $ac_status" >&5
+ echo "$as_me:4237: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:3930: \"$ac_try\"") >&5
+ { (eval echo "$as_me:4240: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:3933: \$? = $ac_status" >&5
+ echo "$as_me:4243: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_gnu_library_219=yes
else
@@ -3942,12 +4252,12 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
CPPFLAGS="$cf_save"
fi
-echo "$as_me:3945: result: $cf_cv_gnu_library_219" >&5
+echo "$as_me:4255: result: $cf_cv_gnu_library_219" >&5
echo "${ECHO_T}$cf_cv_gnu_library_219" >&6
if test "x$cf_cv_gnu_library_219" = xyes; then
cf_save="$CPPFLAGS"
- echo "$as_me:3950: checking if _XOPEN_SOURCE=$cf_gnu_xopen_source works with _DEFAULT_SOURCE" >&5
+ echo "$as_me:4260: checking if _XOPEN_SOURCE=$cf_gnu_xopen_source works with _DEFAULT_SOURCE" >&5
echo $ECHO_N "checking if _XOPEN_SOURCE=$cf_gnu_xopen_source works with _DEFAULT_SOURCE... $ECHO_C" >&6
if test "${cf_cv_gnu_dftsrc_219+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -4052,7 +4362,7 @@ if test -n "$cf_new_extra_cppflags" ; then
fi
cat >"conftest.$ac_ext" <<_ACEOF
-#line 4055 "configure"
+#line 4365 "configure"
#include "confdefs.h"
#include <limits.h>
@@ -4072,16 +4382,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:4075: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:4385: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:4078: \$? = $ac_status" >&5
+ echo "$as_me:4388: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:4081: \"$ac_try\"") >&5
+ { (eval echo "$as_me:4391: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:4084: \$? = $ac_status" >&5
+ echo "$as_me:4394: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_gnu_dftsrc_219=yes
else
@@ -4092,7 +4402,7 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:4095: result: $cf_cv_gnu_dftsrc_219" >&5
+echo "$as_me:4405: result: $cf_cv_gnu_dftsrc_219" >&5
echo "${ECHO_T}$cf_cv_gnu_dftsrc_219" >&6
test "x$cf_cv_gnu_dftsrc_219" = "xyes" || CPPFLAGS="$cf_save"
else
@@ -4101,14 +4411,14 @@ echo "${ECHO_T}$cf_cv_gnu_dftsrc_219" >&6
if test "x$cf_cv_gnu_dftsrc_219" != xyes; then
- echo "$as_me:4104: checking if we must define _GNU_SOURCE" >&5
+ echo "$as_me:4414: checking if we must define _GNU_SOURCE" >&5
echo $ECHO_N "checking if we must define _GNU_SOURCE... $ECHO_C" >&6
if test "${cf_cv_gnu_source+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 4111 "configure"
+#line 4421 "configure"
#include "confdefs.h"
#include <sys/types.h>
int
@@ -4123,16 +4433,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:4126: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:4436: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:4129: \$? = $ac_status" >&5
+ echo "$as_me:4439: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:4132: \"$ac_try\"") >&5
+ { (eval echo "$as_me:4442: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:4135: \$? = $ac_status" >&5
+ echo "$as_me:4445: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_gnu_source=no
else
@@ -4239,7 +4549,7 @@ if test -n "$cf_new_extra_cppflags" ; then
fi
cat >"conftest.$ac_ext" <<_ACEOF
-#line 4242 "configure"
+#line 4552 "configure"
#include "confdefs.h"
#include <sys/types.h>
int
@@ -4254,16 +4564,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:4257: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:4567: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:4260: \$? = $ac_status" >&5
+ echo "$as_me:4570: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:4263: \"$ac_try\"") >&5
+ { (eval echo "$as_me:4573: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:4266: \$? = $ac_status" >&5
+ echo "$as_me:4576: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_gnu_source=no
else
@@ -4278,12 +4588,12 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:4281: result: $cf_cv_gnu_source" >&5
+echo "$as_me:4591: result: $cf_cv_gnu_source" >&5
echo "${ECHO_T}$cf_cv_gnu_source" >&6
if test "$cf_cv_gnu_source" = yes
then
- echo "$as_me:4286: checking if we should also define _DEFAULT_SOURCE" >&5
+ echo "$as_me:4596: checking if we should also define _DEFAULT_SOURCE" >&5
echo $ECHO_N "checking if we should also define _DEFAULT_SOURCE... $ECHO_C" >&6
if test "${cf_cv_default_source+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -4293,7 +4603,7 @@ else
CPPFLAGS="${CPPFLAGS}-D_GNU_SOURCE"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 4296 "configure"
+#line 4606 "configure"
#include "confdefs.h"
#include <sys/types.h>
int
@@ -4308,16 +4618,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:4311: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:4621: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:4314: \$? = $ac_status" >&5
+ echo "$as_me:4624: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:4317: \"$ac_try\"") >&5
+ { (eval echo "$as_me:4627: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:4320: \$? = $ac_status" >&5
+ echo "$as_me:4630: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_default_source=no
else
@@ -4328,7 +4638,7 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:4331: result: $cf_cv_default_source" >&5
+echo "$as_me:4641: result: $cf_cv_default_source" >&5
echo "${ECHO_T}$cf_cv_default_source" >&6
if test "$cf_cv_default_source" = yes
then
@@ -4365,16 +4675,16 @@ cf_trim_CPPFLAGS=`echo "$cf_save_CPPFLAGS" | \
sed -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
-e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?$//g'`
-echo "$as_me:4368: checking if we should define _POSIX_C_SOURCE" >&5
+echo "$as_me:4678: checking if we should define _POSIX_C_SOURCE" >&5
echo $ECHO_N "checking if we should define _POSIX_C_SOURCE... $ECHO_C" >&6
if test "${cf_cv_posix_c_source+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
-echo "${as_me:-configure}:4374: testing if the symbol is already defined go no further ..." 1>&5
+echo "${as_me:-configure}:4684: testing if the symbol is already defined go no further ..." 1>&5
cat >"conftest.$ac_ext" <<_ACEOF
-#line 4377 "configure"
+#line 4687 "configure"
#include "confdefs.h"
#include <sys/types.h>
int
@@ -4382,23 +4692,23 @@ main (void)
{
#ifndef _POSIX_C_SOURCE
-make an error
+#error _POSIX_C_SOURCE is not defined
#endif
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:4392: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:4702: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:4395: \$? = $ac_status" >&5
+ echo "$as_me:4705: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:4398: \"$ac_try\"") >&5
+ { (eval echo "$as_me:4708: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:4401: \$? = $ac_status" >&5
+ echo "$as_me:4711: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_posix_c_source=no
else
@@ -4419,7 +4729,7 @@ cf_want_posix_source=no
esac
if test "$cf_want_posix_source" = yes ; then
cat >"conftest.$ac_ext" <<_ACEOF
-#line 4422 "configure"
+#line 4732 "configure"
#include "confdefs.h"
#include <sys/types.h>
int
@@ -4427,23 +4737,23 @@ main (void)
{
#ifdef _POSIX_SOURCE
-make an error
+#error _POSIX_SOURCE is defined
#endif
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:4437: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:4747: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:4440: \$? = $ac_status" >&5
+ echo "$as_me:4750: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:4443: \"$ac_try\"") >&5
+ { (eval echo "$as_me:4753: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:4446: \$? = $ac_status" >&5
+ echo "$as_me:4756: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
:
else
@@ -4454,7 +4764,7 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "${as_me:-configure}:4457: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
+echo "${as_me:-configure}:4767: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
CFLAGS="$cf_trim_CFLAGS"
CPPFLAGS="$cf_trim_CPPFLAGS"
@@ -4462,10 +4772,10 @@ echo "${as_me:-configure}:4457: testing ifdef from value $cf_POSIX_C_SOURCE ..."
test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS "
CPPFLAGS="${CPPFLAGS}$cf_cv_posix_c_source"
-echo "${as_me:-configure}:4465: testing if the second compile does not leave our definition intact error ..." 1>&5
+echo "${as_me:-configure}:4775: testing if the second compile does not leave our definition intact error ..." 1>&5
cat >"conftest.$ac_ext" <<_ACEOF
-#line 4468 "configure"
+#line 4778 "configure"
#include "confdefs.h"
#include <sys/types.h>
int
@@ -4473,23 +4783,23 @@ main (void)
{
#ifndef _POSIX_C_SOURCE
-make an error
+#error _POSIX_C_SOURCE is not defined
#endif
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:4483: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:4793: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:4486: \$? = $ac_status" >&5
+ echo "$as_me:4796: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:4489: \"$ac_try\"") >&5
+ { (eval echo "$as_me:4799: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:4492: \$? = $ac_status" >&5
+ echo "$as_me:4802: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
:
else
@@ -4505,7 +4815,7 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:4508: result: $cf_cv_posix_c_source" >&5
+echo "$as_me:4818: result: $cf_cv_posix_c_source" >&5
echo "${ECHO_T}$cf_cv_posix_c_source" >&6
if test "$cf_cv_posix_c_source" != no ; then
@@ -4618,7 +4928,16 @@ fi # cf_cv_posix_visible
(netbsd*)
cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
;;
-(openbsd[4-9]*)
+(openbsd[6-9]*)
+ # OpenBSD 6.x has broken locale support, both compile-time and runtime.
+ # see https://www.mail-archive.com/bugs@openbsd.org/msg13200.html
+ # Abusing the conformance level is a workaround.
+ { echo "$as_me:4935: WARNING: this system does not provide usable locale support" >&5
+echo "$as_me: WARNING: this system does not provide usable locale support" >&2;}
+ cf_xopen_source="-D_BSD_SOURCE"
+ cf_XOPEN_SOURCE=700
+ ;;
+(openbsd[4-5]*)
# setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw
cf_xopen_source="-D_BSD_SOURCE"
cf_XOPEN_SOURCE=600
@@ -4645,42 +4964,41 @@ fi # cf_cv_posix_visible
;;
(*)
-echo "$as_me:4648: checking if we should define _XOPEN_SOURCE" >&5
+echo "$as_me:4967: checking if we should define _XOPEN_SOURCE" >&5
echo $ECHO_N "checking if we should define _XOPEN_SOURCE... $ECHO_C" >&6
if test "${cf_cv_xopen_source+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 4655 "configure"
+#line 4974 "configure"
#include "confdefs.h"
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
+$ac_includes_default
int
main (void)
{
#ifndef _XOPEN_SOURCE
-make an error
+#error _XOPEN_SOURCE is not defined
#endif
+
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:4674: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:4992: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:4677: \$? = $ac_status" >&5
+ echo "$as_me:4995: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:4680: \"$ac_try\"") >&5
+ { (eval echo "$as_me:4998: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:4683: \$? = $ac_status" >&5
+ echo "$as_me:5001: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_xopen_source=no
else
@@ -4692,35 +5010,34 @@ cf_save="$CPPFLAGS"
CPPFLAGS="${CPPFLAGS}-D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 4695 "configure"
+#line 5013 "configure"
#include "confdefs.h"
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
+$ac_includes_default
int
main (void)
{
-#ifdef _XOPEN_SOURCE
-make an error
+#ifndef _XOPEN_SOURCE
+#error _XOPEN_SOURCE is not defined
#endif
+
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:4714: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:5031: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:4717: \$? = $ac_status" >&5
+ echo "$as_me:5034: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:4720: \"$ac_try\"") >&5
+ { (eval echo "$as_me:5037: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:4723: \$? = $ac_status" >&5
+ echo "$as_me:5040: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_xopen_source=no
else
@@ -4729,13 +5046,13 @@ cat "conftest.$ac_ext" >&5
cf_cv_xopen_source=$cf_XOPEN_SOURCE
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
- CPPFLAGS="$cf_save"
+ CPPFLAGS="$cf_save"
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:4738: result: $cf_cv_xopen_source" >&5
+echo "$as_me:5055: result: $cf_cv_xopen_source" >&5
echo "${ECHO_T}$cf_cv_xopen_source" >&6
if test "$cf_cv_xopen_source" != no ; then
@@ -4750,12 +5067,38 @@ CPPFLAGS=`echo "$CPPFLAGS" | \
cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
+for cf_add_cflags in $cf_temp_xopen_source
+do
+ case "x$cf_add_cflags" in
+ (x-[DU]*)
+
+cf_tmp_cflag=`echo "x$cf_add_cflags" | sed -e 's/^.//' -e 's/=.*//'`
+while true
+do
+ cf_old_cflag=`echo "x$CFLAGS" | sed -e 's/^.//' -e 's/[ ][ ]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[^ ][^ ]*\\)\?%%" -e 's/^[ ]*//' -e 's%[ ][ ]*-D% -D%g' -e 's%[ ][ ]*-I% -I%g'`
+ test "$CFLAGS" != "$cf_old_cflag" || break
+
+ CFLAGS="$cf_old_cflag"
+done
+
+cf_tmp_cflag=`echo "x$cf_add_cflags" | sed -e 's/^.//' -e 's/=.*//'`
+while true
+do
+ cf_old_cflag=`echo "x$CPPFLAGS" | sed -e 's/^.//' -e 's/[ ][ ]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[^ ][^ ]*\\)\?%%" -e 's/^[ ]*//' -e 's%[ ][ ]*-D% -D%g' -e 's%[ ][ ]*-I% -I%g'`
+ test "$CPPFLAGS" != "$cf_old_cflag" || break
+
+ CPPFLAGS="$cf_old_cflag"
+done
+
+ ;;
+ esac
+
cf_fix_cppflags=no
cf_new_cflags=
cf_new_cppflags=
cf_new_extra_cppflags=
-for cf_add_cflags in $cf_temp_xopen_source
+for cf_add_cflags in $cf_add_cflags
do
case "$cf_fix_cppflags" in
(no)
@@ -4848,8 +5191,12 @@ if test -n "$cf_new_extra_cppflags" ; then
fi
+done
+
fi
+ cf_save_xopen_cppflags="$CPPFLAGS"
+
if test "$cf_cv_posix_visible" = no; then
cf_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE
@@ -4865,16 +5212,16 @@ cf_trim_CPPFLAGS=`echo "$cf_save_CPPFLAGS" | \
sed -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
-e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?$//g'`
-echo "$as_me:4868: checking if we should define _POSIX_C_SOURCE" >&5
+echo "$as_me:5215: checking if we should define _POSIX_C_SOURCE" >&5
echo $ECHO_N "checking if we should define _POSIX_C_SOURCE... $ECHO_C" >&6
if test "${cf_cv_posix_c_source+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
-echo "${as_me:-configure}:4874: testing if the symbol is already defined go no further ..." 1>&5
+echo "${as_me:-configure}:5221: testing if the symbol is already defined go no further ..." 1>&5
cat >"conftest.$ac_ext" <<_ACEOF
-#line 4877 "configure"
+#line 5224 "configure"
#include "confdefs.h"
#include <sys/types.h>
int
@@ -4882,23 +5229,23 @@ main (void)
{
#ifndef _POSIX_C_SOURCE
-make an error
+#error _POSIX_C_SOURCE is not defined
#endif
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:4892: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:5239: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:4895: \$? = $ac_status" >&5
+ echo "$as_me:5242: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:4898: \"$ac_try\"") >&5
+ { (eval echo "$as_me:5245: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:4901: \$? = $ac_status" >&5
+ echo "$as_me:5248: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_posix_c_source=no
else
@@ -4919,7 +5266,7 @@ cf_want_posix_source=no
esac
if test "$cf_want_posix_source" = yes ; then
cat >"conftest.$ac_ext" <<_ACEOF
-#line 4922 "configure"
+#line 5269 "configure"
#include "confdefs.h"
#include <sys/types.h>
int
@@ -4927,23 +5274,23 @@ main (void)
{
#ifdef _POSIX_SOURCE
-make an error
+#error _POSIX_SOURCE is defined
#endif
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:4937: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:5284: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:4940: \$? = $ac_status" >&5
+ echo "$as_me:5287: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:4943: \"$ac_try\"") >&5
+ { (eval echo "$as_me:5290: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:4946: \$? = $ac_status" >&5
+ echo "$as_me:5293: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
:
else
@@ -4954,7 +5301,7 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "${as_me:-configure}:4957: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
+echo "${as_me:-configure}:5304: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
CFLAGS="$cf_trim_CFLAGS"
CPPFLAGS="$cf_trim_CPPFLAGS"
@@ -4962,10 +5309,10 @@ echo "${as_me:-configure}:4957: testing ifdef from value $cf_POSIX_C_SOURCE ..."
test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS "
CPPFLAGS="${CPPFLAGS}$cf_cv_posix_c_source"
-echo "${as_me:-configure}:4965: testing if the second compile does not leave our definition intact error ..." 1>&5
+echo "${as_me:-configure}:5312: testing if the second compile does not leave our definition intact error ..." 1>&5
cat >"conftest.$ac_ext" <<_ACEOF
-#line 4968 "configure"
+#line 5315 "configure"
#include "confdefs.h"
#include <sys/types.h>
int
@@ -4973,23 +5320,23 @@ main (void)
{
#ifndef _POSIX_C_SOURCE
-make an error
+#error _POSIX_C_SOURCE is not defined
#endif
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:4983: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:5330: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:4986: \$? = $ac_status" >&5
+ echo "$as_me:5333: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:4989: \"$ac_try\"") >&5
+ { (eval echo "$as_me:5336: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:4992: \$? = $ac_status" >&5
+ echo "$as_me:5339: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
:
else
@@ -5005,7 +5352,7 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:5008: result: $cf_cv_posix_c_source" >&5
+echo "$as_me:5355: result: $cf_cv_posix_c_source" >&5
echo "${ECHO_T}$cf_cv_posix_c_source" >&6
if test "$cf_cv_posix_c_source" != no ; then
@@ -5114,17 +5461,96 @@ fi
fi # cf_cv_posix_visible
+ # Some of these niche implementations use copy/paste, double-check...
+ if test "$cf_cv_xopen_source" = no ; then
+ test -n "$verbose" && echo " checking if _POSIX_C_SOURCE interferes with _XOPEN_SOURCE" 1>&6
+
+echo "${as_me:-configure}:5468: testing checking if _POSIX_C_SOURCE interferes with _XOPEN_SOURCE ..." 1>&5
+
+ cat >"conftest.$ac_ext" <<_ACEOF
+#line 5471 "configure"
+#include "confdefs.h"
+
+$ac_includes_default
+
+int
+main (void)
+{
+
+#ifndef _XOPEN_SOURCE
+#error _XOPEN_SOURCE is not defined
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f "conftest.$ac_objext"
+if { (eval echo "$as_me:5489: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:5492: \$? = $ac_status" >&5
+ (exit "$ac_status"); } &&
+ { ac_try='test -s "conftest.$ac_objext"'
+ { (eval echo "$as_me:5495: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:5498: \$? = $ac_status" >&5
+ (exit "$ac_status"); }; }; then
+ :
+else
+ echo "$as_me: failed program was:" >&5
+cat "conftest.$ac_ext" >&5
+
+ { echo "$as_me:5505: WARNING: _POSIX_C_SOURCE definition is not usable" >&5
+echo "$as_me: WARNING: _POSIX_C_SOURCE definition is not usable" >&2;}
+ CPPFLAGS="$cf_save_xopen_cppflags"
+fi
+rm -f "conftest.$ac_objext" "conftest.$ac_ext"
+ fi
;;
esac
if test -n "$cf_xopen_source" ; then
+for cf_add_cflags in $cf_xopen_source
+do
+ case "x$cf_add_cflags" in
+ (x-[DU]*)
+
+cf_tmp_cflag=`echo "x$cf_add_cflags" | sed -e 's/^.//' -e 's/=.*//'`
+while true
+do
+ cf_old_cflag=`echo "x$CFLAGS" | sed -e 's/^.//' -e 's/[ ][ ]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[^ ][^ ]*\\)\?%%" -e 's/^[ ]*//' -e 's%[ ][ ]*-D% -D%g' -e 's%[ ][ ]*-I% -I%g'`
+ test "$CFLAGS" != "$cf_old_cflag" || break
+ test -n "$verbose" && echo " removing old option $cf_add_cflags from CFLAGS" 1>&6
+
+echo "${as_me:-configure}:5528: testing removing old option $cf_add_cflags from CFLAGS ..." 1>&5
+
+ CFLAGS="$cf_old_cflag"
+done
+
+cf_tmp_cflag=`echo "x$cf_add_cflags" | sed -e 's/^.//' -e 's/=.*//'`
+while true
+do
+ cf_old_cflag=`echo "x$CPPFLAGS" | sed -e 's/^.//' -e 's/[ ][ ]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[^ ][^ ]*\\)\?%%" -e 's/^[ ]*//' -e 's%[ ][ ]*-D% -D%g' -e 's%[ ][ ]*-I% -I%g'`
+ test "$CPPFLAGS" != "$cf_old_cflag" || break
+ test -n "$verbose" && echo " removing old option $cf_add_cflags from CPPFLAGS" 1>&6
+
+echo "${as_me:-configure}:5540: testing removing old option $cf_add_cflags from CPPFLAGS ..." 1>&5
+
+ CPPFLAGS="$cf_old_cflag"
+done
+
+ ;;
+ esac
+
cf_fix_cppflags=no
cf_new_cflags=
cf_new_cppflags=
cf_new_extra_cppflags=
-for cf_add_cflags in $cf_xopen_source
+for cf_add_cflags in $cf_add_cflags
do
case "$cf_fix_cppflags" in
(no)
@@ -5199,7 +5625,7 @@ done
if test -n "$cf_new_cflags" ; then
test -n "$verbose" && echo " add to \$CFLAGS $cf_new_cflags" 1>&6
-echo "${as_me:-configure}:5202: testing add to \$CFLAGS $cf_new_cflags ..." 1>&5
+echo "${as_me:-configure}:5628: testing add to \$CFLAGS $cf_new_cflags ..." 1>&5
test -n "$CFLAGS" && CFLAGS="$CFLAGS "
CFLAGS="${CFLAGS}$cf_new_cflags"
@@ -5209,7 +5635,7 @@ fi
if test -n "$cf_new_cppflags" ; then
test -n "$verbose" && echo " add to \$CPPFLAGS $cf_new_cppflags" 1>&6
-echo "${as_me:-configure}:5212: testing add to \$CPPFLAGS $cf_new_cppflags ..." 1>&5
+echo "${as_me:-configure}:5638: testing add to \$CPPFLAGS $cf_new_cppflags ..." 1>&5
test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS "
CPPFLAGS="${CPPFLAGS}$cf_new_cppflags"
@@ -5219,20 +5645,22 @@ fi
if test -n "$cf_new_extra_cppflags" ; then
test -n "$verbose" && echo " add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags" 1>&6
-echo "${as_me:-configure}:5222: testing add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags ..." 1>&5
+echo "${as_me:-configure}:5648: testing add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags ..." 1>&5
test -n "$EXTRA_CPPFLAGS" && EXTRA_CPPFLAGS="$EXTRA_CPPFLAGS "
EXTRA_CPPFLAGS="${EXTRA_CPPFLAGS}$cf_new_extra_cppflags"
fi
+done
+
fi
if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then
- echo "$as_me:5232: checking if _XOPEN_SOURCE really is set" >&5
+ echo "$as_me:5660: checking if _XOPEN_SOURCE really is set" >&5
echo $ECHO_N "checking if _XOPEN_SOURCE really is set... $ECHO_C" >&6
cat >"conftest.$ac_ext" <<_ACEOF
-#line 5235 "configure"
+#line 5663 "configure"
#include "confdefs.h"
#include <stdlib.h>
int
@@ -5240,23 +5668,23 @@ main (void)
{
#ifndef _XOPEN_SOURCE
-make an error
+#error _XOPEN_SOURCE is not defined
#endif
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:5250: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:5678: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:5253: \$? = $ac_status" >&5
+ echo "$as_me:5681: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:5256: \"$ac_try\"") >&5
+ { (eval echo "$as_me:5684: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:5259: \$? = $ac_status" >&5
+ echo "$as_me:5687: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_XOPEN_SOURCE_set=yes
else
@@ -5265,12 +5693,12 @@ cat "conftest.$ac_ext" >&5
cf_XOPEN_SOURCE_set=no
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
- echo "$as_me:5268: result: $cf_XOPEN_SOURCE_set" >&5
+ echo "$as_me:5696: result: $cf_XOPEN_SOURCE_set" >&5
echo "${ECHO_T}$cf_XOPEN_SOURCE_set" >&6
if test "$cf_XOPEN_SOURCE_set" = yes
then
cat >"conftest.$ac_ext" <<_ACEOF
-#line 5273 "configure"
+#line 5701 "configure"
#include "confdefs.h"
#include <stdlib.h>
int
@@ -5278,23 +5706,23 @@ main (void)
{
#if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE
-make an error
+#error (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE
#endif
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:5288: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:5716: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:5291: \$? = $ac_status" >&5
+ echo "$as_me:5719: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:5294: \"$ac_try\"") >&5
+ { (eval echo "$as_me:5722: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:5297: \$? = $ac_status" >&5
+ echo "$as_me:5725: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_XOPEN_SOURCE_set_ok=yes
else
@@ -5305,47 +5733,46 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
if test "$cf_XOPEN_SOURCE_set_ok" = no
then
- { echo "$as_me:5308: WARNING: _XOPEN_SOURCE is lower than requested" >&5
+ { echo "$as_me:5736: WARNING: _XOPEN_SOURCE is lower than requested" >&5
echo "$as_me: WARNING: _XOPEN_SOURCE is lower than requested" >&2;}
fi
else
-echo "$as_me:5313: checking if we should define _XOPEN_SOURCE" >&5
+echo "$as_me:5741: checking if we should define _XOPEN_SOURCE" >&5
echo $ECHO_N "checking if we should define _XOPEN_SOURCE... $ECHO_C" >&6
if test "${cf_cv_xopen_source+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 5320 "configure"
+#line 5748 "configure"
#include "confdefs.h"
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
+$ac_includes_default
int
main (void)
{
#ifndef _XOPEN_SOURCE
-make an error
+#error _XOPEN_SOURCE is not defined
#endif
+
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:5339: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:5766: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:5342: \$? = $ac_status" >&5
+ echo "$as_me:5769: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:5345: \"$ac_try\"") >&5
+ { (eval echo "$as_me:5772: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:5348: \$? = $ac_status" >&5
+ echo "$as_me:5775: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_xopen_source=no
else
@@ -5357,35 +5784,34 @@ cf_save="$CPPFLAGS"
CPPFLAGS="${CPPFLAGS}-D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 5360 "configure"
+#line 5787 "configure"
#include "confdefs.h"
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
+$ac_includes_default
int
main (void)
{
-#ifdef _XOPEN_SOURCE
-make an error
+#ifndef _XOPEN_SOURCE
+#error _XOPEN_SOURCE is not defined
#endif
+
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:5379: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:5805: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:5382: \$? = $ac_status" >&5
+ echo "$as_me:5808: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:5385: \"$ac_try\"") >&5
+ { (eval echo "$as_me:5811: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:5388: \$? = $ac_status" >&5
+ echo "$as_me:5814: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_xopen_source=no
else
@@ -5394,13 +5820,13 @@ cat "conftest.$ac_ext" >&5
cf_cv_xopen_source=$cf_XOPEN_SOURCE
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
- CPPFLAGS="$cf_save"
+ CPPFLAGS="$cf_save"
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:5403: result: $cf_cv_xopen_source" >&5
+echo "$as_me:5829: result: $cf_cv_xopen_source" >&5
echo "${ECHO_T}$cf_cv_xopen_source" >&6
if test "$cf_cv_xopen_source" != no ; then
@@ -5415,12 +5841,38 @@ CPPFLAGS=`echo "$CPPFLAGS" | \
cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
+for cf_add_cflags in $cf_temp_xopen_source
+do
+ case "x$cf_add_cflags" in
+ (x-[DU]*)
+
+cf_tmp_cflag=`echo "x$cf_add_cflags" | sed -e 's/^.//' -e 's/=.*//'`
+while true
+do
+ cf_old_cflag=`echo "x$CFLAGS" | sed -e 's/^.//' -e 's/[ ][ ]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[^ ][^ ]*\\)\?%%" -e 's/^[ ]*//' -e 's%[ ][ ]*-D% -D%g' -e 's%[ ][ ]*-I% -I%g'`
+ test "$CFLAGS" != "$cf_old_cflag" || break
+
+ CFLAGS="$cf_old_cflag"
+done
+
+cf_tmp_cflag=`echo "x$cf_add_cflags" | sed -e 's/^.//' -e 's/=.*//'`
+while true
+do
+ cf_old_cflag=`echo "x$CPPFLAGS" | sed -e 's/^.//' -e 's/[ ][ ]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[^ ][^ ]*\\)\?%%" -e 's/^[ ]*//' -e 's%[ ][ ]*-D% -D%g' -e 's%[ ][ ]*-I% -I%g'`
+ test "$CPPFLAGS" != "$cf_old_cflag" || break
+
+ CPPFLAGS="$cf_old_cflag"
+done
+
+ ;;
+ esac
+
cf_fix_cppflags=no
cf_new_cflags=
cf_new_cppflags=
cf_new_extra_cppflags=
-for cf_add_cflags in $cf_temp_xopen_source
+for cf_add_cflags in $cf_add_cflags
do
case "$cf_fix_cppflags" in
(no)
@@ -5513,13 +5965,243 @@ if test -n "$cf_new_extra_cppflags" ; then
fi
+done
+
fi
fi
fi
fi # cf_cv_posix_visible
-echo "$as_me:5522: checking for signal global datatype" >&5
+echo "$as_me:5976: checking for ANSI C header files" >&5
+echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
+if test "${ac_cv_header_stdc+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >"conftest.$ac_ext" <<_ACEOF
+#line 5982 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+_ACEOF
+if { (eval echo "$as_me:5990: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+ (eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
+ ac_status=$?
+ $EGREP -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:5996: \$? = $ac_status" >&5
+ (exit "$ac_status"); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ ac_cv_header_stdc=yes
+else
+ echo "$as_me: failed program was:" >&5
+ cat "conftest.$ac_ext" >&5
+ ac_cv_header_stdc=no
+fi
+rm -f conftest.err "conftest.$ac_ext"
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat >"conftest.$ac_ext" <<_ACEOF
+#line 6018 "configure"
+#include "confdefs.h"
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "memchr" >/dev/null 2>&1; then
+ :
+else
+ ac_cv_header_stdc=no
+fi
+rm -rf conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat >"conftest.$ac_ext" <<_ACEOF
+#line 6036 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "free" >/dev/null 2>&1; then
+ :
+else
+ ac_cv_header_stdc=no
+fi
+rm -rf conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ if test "$cross_compiling" = yes; then
+ :
+else
+ cat >"conftest.$ac_ext" <<_ACEOF
+#line 6057 "configure"
+#include "confdefs.h"
+#include <ctype.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main (void)
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ $ac_main_return(2);
+ $ac_main_return (0);
+}
+_ACEOF
+rm -f "conftest$ac_exeext"
+if { (eval echo "$as_me:6083: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:6086: \$? = $ac_status" >&5
+ (exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
+ { (eval echo "$as_me:6088: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:6091: \$? = $ac_status" >&5
+ (exit "$ac_status"); }; }; then
+ :
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+cat "conftest.$ac_ext" >&5
+ac_cv_header_stdc=no
+fi
+rm -f core ./core.* ./*.core "conftest$ac_exeext" "conftest.$ac_objext" "conftest.$ac_ext"
+fi
+fi
+fi
+echo "$as_me:6104: result: $ac_cv_header_stdc" >&5
+echo "${ECHO_T}$ac_cv_header_stdc" >&6
+if test $ac_cv_header_stdc = yes; then
+
+cat >>confdefs.h <<\EOF
+#define STDC_HEADERS 1
+EOF
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+ inttypes.h stdint.h unistd.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:6120: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >"conftest.$ac_ext" <<_ACEOF
+#line 6126 "configure"
+#include "confdefs.h"
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f "conftest.$ac_objext"
+if { (eval echo "$as_me:6132: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:6135: \$? = $ac_status" >&5
+ (exit "$ac_status"); } &&
+ { ac_try='test -s "conftest.$ac_objext"'
+ { (eval echo "$as_me:6138: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:6141: \$? = $ac_status" >&5
+ (exit "$ac_status"); }; }; then
+ eval "$as_ac_Header=yes"
+else
+ echo "$as_me: failed program was:" >&5
+cat "conftest.$ac_ext" >&5
+eval "$as_ac_Header=no"
+fi
+rm -f "conftest.$ac_objext" "conftest.$ac_ext"
+fi
+echo "$as_me:6151: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
+echo "${ECHO_T}`eval echo '${'"$as_ac_Header"'}'`" >&6
+if test "`eval echo '${'"$as_ac_Header"'}'`" = yes; then
+ cat >>confdefs.h <<EOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+EOF
+
+fi
+done
+
+echo "$as_me:6161: checking whether exit is declared" >&5
+echo $ECHO_N "checking whether exit is declared... $ECHO_C" >&6
+if test "${ac_cv_have_decl_exit+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >"conftest.$ac_ext" <<_ACEOF
+#line 6167 "configure"
+#include "confdefs.h"
+$ac_includes_default
+int
+main (void)
+{
+#ifndef exit
+ (void) exit;
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f "conftest.$ac_objext"
+if { (eval echo "$as_me:6182: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:6185: \$? = $ac_status" >&5
+ (exit "$ac_status"); } &&
+ { ac_try='test -s "conftest.$ac_objext"'
+ { (eval echo "$as_me:6188: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:6191: \$? = $ac_status" >&5
+ (exit "$ac_status"); }; }; then
+ ac_cv_have_decl_exit=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat "conftest.$ac_ext" >&5
+ac_cv_have_decl_exit=no
+fi
+rm -f "conftest.$ac_objext" "conftest.$ac_ext"
+fi
+echo "$as_me:6201: result: $ac_cv_have_decl_exit" >&5
+echo "${ECHO_T}$ac_cv_have_decl_exit" >&6
+
+echo "$as_me:6204: checking for signal global datatype" >&5
echo $ECHO_N "checking for signal global datatype... $ECHO_C" >&6
if test "${cf_cv_sig_atomic_t+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -5531,7 +6213,7 @@ else
"int"
do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 5534 "configure"
+#line 6216 "configure"
#include "confdefs.h"
#include <sys/types.h>
@@ -5555,16 +6237,16 @@ signal(SIGINT, handler);
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:5558: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:6240: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:5561: \$? = $ac_status" >&5
+ echo "$as_me:6243: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:5564: \"$ac_try\"") >&5
+ { (eval echo "$as_me:6246: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:5567: \$? = $ac_status" >&5
+ echo "$as_me:6249: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_sig_atomic_t=$cf_type
else
@@ -5578,7 +6260,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:5581: result: $cf_cv_sig_atomic_t" >&5
+echo "$as_me:6263: result: $cf_cv_sig_atomic_t" >&5
echo "${ECHO_T}$cf_cv_sig_atomic_t" >&6
test "$cf_cv_sig_atomic_t" != no &&
cat >>confdefs.h <<EOF
@@ -5587,14 +6269,14 @@ EOF
# Work around breakage on OS X
-echo "$as_me:5590: checking if SIGWINCH is defined" >&5
+echo "$as_me:6272: checking if SIGWINCH is defined" >&5
echo $ECHO_N "checking if SIGWINCH is defined... $ECHO_C" >&6
if test "${cf_cv_define_sigwinch+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 5597 "configure"
+#line 6279 "configure"
#include "confdefs.h"
#include <sys/types.h>
@@ -5609,23 +6291,23 @@ int x = SIGWINCH; (void)x
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:5612: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:6294: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:5615: \$? = $ac_status" >&5
+ echo "$as_me:6297: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:5618: \"$ac_try\"") >&5
+ { (eval echo "$as_me:6300: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:5621: \$? = $ac_status" >&5
+ echo "$as_me:6303: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_define_sigwinch=yes
else
echo "$as_me: failed program was:" >&5
cat "conftest.$ac_ext" >&5
cat >"conftest.$ac_ext" <<_ACEOF
-#line 5628 "configure"
+#line 6310 "configure"
#include "confdefs.h"
#undef _XOPEN_SOURCE
@@ -5643,16 +6325,16 @@ int x = SIGWINCH; (void)x
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:5646: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:6328: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:5649: \$? = $ac_status" >&5
+ echo "$as_me:6331: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:5652: \"$ac_try\"") >&5
+ { (eval echo "$as_me:6334: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:5655: \$? = $ac_status" >&5
+ echo "$as_me:6337: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_define_sigwinch=maybe
else
@@ -5666,11 +6348,11 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:5669: result: $cf_cv_define_sigwinch" >&5
+echo "$as_me:6351: result: $cf_cv_define_sigwinch" >&5
echo "${ECHO_T}$cf_cv_define_sigwinch" >&6
if test "$cf_cv_define_sigwinch" = maybe ; then
-echo "$as_me:5673: checking for actual SIGWINCH definition" >&5
+echo "$as_me:6355: checking for actual SIGWINCH definition" >&5
echo $ECHO_N "checking for actual SIGWINCH definition... $ECHO_C" >&6
if test "${cf_cv_fixup_sigwinch+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -5681,7 +6363,7 @@ cf_sigwinch=32
while test "$cf_sigwinch" != 1
do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 5684 "configure"
+#line 6366 "configure"
#include "confdefs.h"
#undef _XOPEN_SOURCE
@@ -5695,7 +6377,7 @@ main (void)
{
#if SIGWINCH != $cf_sigwinch
-make an error
+#error SIGWINCH is not $cf_sigwinch
#endif
int x = SIGWINCH; (void)x
;
@@ -5703,16 +6385,16 @@ int x = SIGWINCH; (void)x
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:5706: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:6388: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:5709: \$? = $ac_status" >&5
+ echo "$as_me:6391: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:5712: \"$ac_try\"") >&5
+ { (eval echo "$as_me:6394: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:5715: \$? = $ac_status" >&5
+ echo "$as_me:6397: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_fixup_sigwinch=$cf_sigwinch
break
@@ -5726,7 +6408,7 @@ cf_sigwinch="`expr "$cf_sigwinch" - 1`"
done
fi
-echo "$as_me:5729: result: $cf_cv_fixup_sigwinch" >&5
+echo "$as_me:6411: result: $cf_cv_fixup_sigwinch" >&5
echo "${ECHO_T}$cf_cv_fixup_sigwinch" >&6
if test "$cf_cv_fixup_sigwinch" != unknown ; then
@@ -5736,14 +6418,16 @@ fi
# Checks for CODESET support.
-echo "$as_me:5739: checking for nl_langinfo and CODESET" >&5
+echo "$as_me:6421: checking for nl_langinfo and CODESET" >&5
echo $ECHO_N "checking for nl_langinfo and CODESET... $ECHO_C" >&6
if test "${am_cv_langinfo_codeset+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 5745 "configure"
+#line 6427 "configure"
#include "confdefs.h"
+
+$ac_includes_default
#include <langinfo.h>
int
main (void)
@@ -5754,16 +6438,16 @@ char* cs = nl_langinfo(CODESET); (void)cs
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:5757: \"$ac_link\"") >&5
+if { (eval echo "$as_me:6441: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:5760: \$? = $ac_status" >&5
+ echo "$as_me:6444: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:5763: \"$ac_try\"") >&5
+ { (eval echo "$as_me:6447: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:5766: \$? = $ac_status" >&5
+ echo "$as_me:6450: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
am_cv_langinfo_codeset=yes
else
@@ -5774,7 +6458,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:5777: result: $am_cv_langinfo_codeset" >&5
+echo "$as_me:6461: result: $am_cv_langinfo_codeset" >&5
echo "${ECHO_T}$am_cv_langinfo_codeset" >&6
if test "$am_cv_langinfo_codeset" = yes; then
@@ -5784,7 +6468,7 @@ EOF
fi
-echo "$as_me:5787: checking if you want to use pkg-config" >&5
+echo "$as_me:6471: checking if you want to use pkg-config" >&5
echo $ECHO_N "checking if you want to use pkg-config... $ECHO_C" >&6
# Check whether --with-pkg-config or --without-pkg-config was given.
@@ -5794,7 +6478,7 @@ if test "${with_pkg_config+set}" = set; then
else
cf_pkg_config=yes
fi;
-echo "$as_me:5797: result: $cf_pkg_config" >&5
+echo "$as_me:6481: result: $cf_pkg_config" >&5
echo "${ECHO_T}$cf_pkg_config" >&6
case "$cf_pkg_config" in
@@ -5806,7 +6490,7 @@ case "$cf_pkg_config" in
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
-echo "$as_me:5809: checking for $ac_word" >&5
+echo "$as_me:6493: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -5823,7 +6507,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
if $as_executable_p "$ac_dir/$ac_word"; then
ac_cv_path_PKG_CONFIG="$ac_dir/$ac_word"
- echo "$as_me:5826: found $ac_dir/$ac_word" >&5
+ echo "$as_me:6510: found $ac_dir/$ac_word" >&5
break
fi
done
@@ -5834,10 +6518,10 @@ fi
PKG_CONFIG=$ac_cv_path_PKG_CONFIG
if test -n "$PKG_CONFIG"; then
- echo "$as_me:5837: result: $PKG_CONFIG" >&5
+ echo "$as_me:6521: result: $PKG_CONFIG" >&5
echo "${ECHO_T}$PKG_CONFIG" >&6
else
- echo "$as_me:5840: result: no" >&5
+ echo "$as_me:6524: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -5846,7 +6530,7 @@ if test -z "$ac_cv_path_PKG_CONFIG"; then
ac_pt_PKG_CONFIG=$PKG_CONFIG
# Extract the first word of "pkg-config", so it can be a program name with args.
set dummy pkg-config; ac_word=$2
-echo "$as_me:5849: checking for $ac_word" >&5
+echo "$as_me:6533: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -5863,7 +6547,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
if $as_executable_p "$ac_dir/$ac_word"; then
ac_cv_path_ac_pt_PKG_CONFIG="$ac_dir/$ac_word"
- echo "$as_me:5866: found $ac_dir/$ac_word" >&5
+ echo "$as_me:6550: found $ac_dir/$ac_word" >&5
break
fi
done
@@ -5875,10 +6559,10 @@ fi
ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
if test -n "$ac_pt_PKG_CONFIG"; then
- echo "$as_me:5878: result: $ac_pt_PKG_CONFIG" >&5
+ echo "$as_me:6562: result: $ac_pt_PKG_CONFIG" >&5
echo "${ECHO_T}$ac_pt_PKG_CONFIG" >&6
else
- echo "$as_me:5881: result: no" >&5
+ echo "$as_me:6565: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -5921,18 +6605,18 @@ case ".$PKG_CONFIG" in
PKG_CONFIG=`echo "$PKG_CONFIG" | sed -e s%NONE%$cf_path_syntax%`
;;
(*)
- { { echo "$as_me:5924: error: expected a pathname, not \"$PKG_CONFIG\"" >&5
+ { { echo "$as_me:6608: error: expected a pathname, not \"$PKG_CONFIG\"" >&5
echo "$as_me: error: expected a pathname, not \"$PKG_CONFIG\"" >&2;}
{ (exit 1); exit 1; }; }
;;
esac
elif test "x$cf_pkg_config" != xno ; then
- { echo "$as_me:5931: WARNING: pkg-config is not installed" >&5
+ { echo "$as_me:6615: WARNING: pkg-config is not installed" >&5
echo "$as_me: WARNING: pkg-config is not installed" >&2;}
fi
-echo "$as_me:5935: checking if you want to see long compiling messages" >&5
+echo "$as_me:6619: checking if you want to see long compiling messages" >&5
echo $ECHO_N "checking if you want to see long compiling messages... $ECHO_C" >&6
# Check whether --enable-echo or --disable-echo was given.
@@ -5966,10 +6650,10 @@ else
ECHO_CC=''
fi;
-echo "$as_me:5969: result: $enableval" >&5
+echo "$as_me:6653: result: $enableval" >&5
echo "${ECHO_T}$enableval" >&6
-echo "$as_me:5972: checking for ncurses wrap-prefix" >&5
+echo "$as_me:6656: checking for ncurses wrap-prefix" >&5
echo $ECHO_N "checking for ncurses wrap-prefix... $ECHO_C" >&6
# Check whether --with-ncurses-wrap-prefix or --without-ncurses-wrap-prefix was given.
@@ -5979,10 +6663,10 @@ if test "${with_ncurses_wrap_prefix+set}" = set; then
else
NCURSES_WRAP_PREFIX=_nc_
fi;
-echo "$as_me:5982: result: $NCURSES_WRAP_PREFIX" >&5
+echo "$as_me:6666: result: $NCURSES_WRAP_PREFIX" >&5
echo "${ECHO_T}$NCURSES_WRAP_PREFIX" >&6
-echo "$as_me:5985: checking if you want to check for wide-character functions" >&5
+echo "$as_me:6669: checking if you want to check for wide-character functions" >&5
echo $ECHO_N "checking if you want to check for wide-character functions... $ECHO_C" >&6
# Check whether --enable-widec or --disable-widec was given.
@@ -5999,10 +6683,10 @@ else
cf_enable_widec=yes
fi;
-echo "$as_me:6002: result: $cf_enable_widec" >&5
+echo "$as_me:6686: result: $cf_enable_widec" >&5
echo "${ECHO_T}$cf_enable_widec" >&6
-echo "$as_me:6005: checking for specific curses-directory" >&5
+echo "$as_me:6689: checking for specific curses-directory" >&5
echo $ECHO_N "checking for specific curses-directory... $ECHO_C" >&6
# Check whether --with-curses-dir or --without-curses-dir was given.
@@ -6012,7 +6696,7 @@ if test "${with_curses_dir+set}" = set; then
else
cf_cv_curses_dir=no
fi;
-echo "$as_me:6015: result: $cf_cv_curses_dir" >&5
+echo "$as_me:6699: result: $cf_cv_curses_dir" >&5
echo "${ECHO_T}$cf_cv_curses_dir" >&6
if test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no"
@@ -6043,7 +6727,7 @@ case ".$withval" in
withval=`echo "$withval" | sed -e s%NONE%$cf_path_syntax%`
;;
(*)
- { { echo "$as_me:6046: error: expected a pathname, not \"$withval\"" >&5
+ { { echo "$as_me:6730: error: expected a pathname, not \"$withval\"" >&5
echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
{ (exit 1); exit 1; }; }
;;
@@ -6079,7 +6763,7 @@ if test -n "$cf_cv_curses_dir/include" ; then
CPPFLAGS="${CPPFLAGS}-I$cf_add_incdir"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 6082 "configure"
+#line 6766 "configure"
#include "confdefs.h"
#include <stdio.h>
int
@@ -6091,16 +6775,16 @@ printf("Hello")
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:6094: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:6778: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:6097: \$? = $ac_status" >&5
+ echo "$as_me:6781: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:6100: \"$ac_try\"") >&5
+ { (eval echo "$as_me:6784: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:6103: \$? = $ac_status" >&5
+ echo "$as_me:6787: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
:
else
@@ -6117,7 +6801,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
if test "$cf_have_incdir" = no ; then
test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-echo "${as_me:-configure}:6120: testing adding $cf_add_incdir to include-path ..." 1>&5
+echo "${as_me:-configure}:6804: testing adding $cf_add_incdir to include-path ..." 1>&5
CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
@@ -6153,7 +6837,7 @@ if test -n "$cf_cv_curses_dir/lib" ; then
if test "$cf_have_libdir" = no ; then
test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6
-echo "${as_me:-configure}:6156: testing adding $cf_add_libdir to library-path ..." 1>&5
+echo "${as_me:-configure}:6840: testing adding $cf_add_libdir to library-path ..." 1>&5
LDFLAGS="-L$cf_add_libdir $LDFLAGS"
fi
@@ -6166,7 +6850,7 @@ fi
cf_cv_screen=curses
-echo "$as_me:6169: checking for specified curses library type" >&5
+echo "$as_me:6853: checking for specified curses library type" >&5
echo $ECHO_N "checking for specified curses library type... $ECHO_C" >&6
# Check whether --with-screen or --without-screen was given.
@@ -6210,13 +6894,13 @@ fi;
fi;
fi;
-echo "$as_me:6213: result: $cf_cv_screen" >&5
+echo "$as_me:6897: result: $cf_cv_screen" >&5
echo "${ECHO_T}$cf_cv_screen" >&6
case $cf_cv_screen in
(curses|curses_*)
-echo "$as_me:6219: checking for extra include directories" >&5
+echo "$as_me:6903: checking for extra include directories" >&5
echo $ECHO_N "checking for extra include directories... $ECHO_C" >&6
if test "${cf_cv_curses_incdir+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -6242,7 +6926,7 @@ case "$host_os" in
esac
fi
-echo "$as_me:6245: result: $cf_cv_curses_incdir" >&5
+echo "$as_me:6929: result: $cf_cv_curses_incdir" >&5
echo "${ECHO_T}$cf_cv_curses_incdir" >&6
if test "$cf_cv_curses_incdir" != no
then
@@ -6252,7 +6936,7 @@ then
fi
-echo "$as_me:6255: checking if we have identified curses headers" >&5
+echo "$as_me:6939: checking if we have identified curses headers" >&5
echo $ECHO_N "checking if we have identified curses headers... $ECHO_C" >&6
if test "${cf_cv_ncurses_header+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -6264,28 +6948,28 @@ for cf_header in \
curses.h ncurses/ncurses.h ncurses/curses.h
do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 6267 "configure"
+#line 6951 "configure"
#include "confdefs.h"
#include <${cf_header}>
int
main (void)
{
-initscr(); tgoto("?", 0,0)
+initscr(); endwin()
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:6279: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:6963: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:6282: \$? = $ac_status" >&5
+ echo "$as_me:6966: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:6285: \"$ac_try\"") >&5
+ { (eval echo "$as_me:6969: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:6288: \$? = $ac_status" >&5
+ echo "$as_me:6972: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_ncurses_header=$cf_header; break
else
@@ -6296,11 +6980,11 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
done
fi
-echo "$as_me:6299: result: $cf_cv_ncurses_header" >&5
+echo "$as_me:6983: result: $cf_cv_ncurses_header" >&5
echo "${ECHO_T}$cf_cv_ncurses_header" >&6
if test "$cf_cv_ncurses_header" = none ; then
- { { echo "$as_me:6303: error: No curses header-files found" >&5
+ { { echo "$as_me:6987: error: No curses header-files found" >&5
echo "$as_me: error: No curses header-files found" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -6310,23 +6994,23 @@ fi
for ac_header in $cf_cv_ncurses_header
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:6313: checking for $ac_header" >&5
+echo "$as_me:6997: checking for $ac_header" >&5
echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 6319 "configure"
+#line 7003 "configure"
#include "confdefs.h"
#include <$ac_header>
_ACEOF
-if { (eval echo "$as_me:6323: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:7007: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:6329: \$? = $ac_status" >&5
+ echo "$as_me:7013: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -6345,7 +7029,7 @@ else
fi
rm -f conftest.err "conftest.$ac_ext"
fi
-echo "$as_me:6348: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
+echo "$as_me:7032: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
echo "${ECHO_T}`eval echo '${'"$as_ac_Header"'}'`" >&6
if test "`eval echo '${'"$as_ac_Header"'}'`" = yes; then
cat >>confdefs.h <<EOF
@@ -6355,7 +7039,7 @@ EOF
fi
done
-echo "$as_me:6358: checking for terminfo header" >&5
+echo "$as_me:7042: checking for terminfo header" >&5
echo $ECHO_N "checking for terminfo header... $ECHO_C" >&6
if test "${cf_cv_term_header+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -6373,7 +7057,7 @@ esac
for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 6376 "configure"
+#line 7060 "configure"
#include "confdefs.h"
#include <stdio.h>
#include <${cf_cv_ncurses_header:-curses.h}>
@@ -6388,16 +7072,16 @@ int x = auto_left_margin; (void)x
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:6391: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:7075: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:6394: \$? = $ac_status" >&5
+ echo "$as_me:7078: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:6397: \"$ac_try\"") >&5
+ { (eval echo "$as_me:7081: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:6400: \$? = $ac_status" >&5
+ echo "$as_me:7084: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_term_header="$cf_test"
@@ -6413,7 +7097,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
done
fi
-echo "$as_me:6416: result: $cf_cv_term_header" >&5
+echo "$as_me:7100: result: $cf_cv_term_header" >&5
echo "${ECHO_T}$cf_cv_term_header" >&6
# Set definitions to allow ifdef'ing to accommodate subdirectories
@@ -6445,7 +7129,7 @@ EOF
;;
esac
-echo "$as_me:6448: checking for ncurses version" >&5
+echo "$as_me:7132: checking for ncurses version" >&5
echo $ECHO_N "checking for ncurses version... $ECHO_C" >&6
if test "${cf_cv_ncurses_version+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -6471,10 +7155,10 @@ Autoconf "old"
#endif
EOF
cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
- { (eval echo "$as_me:6474: \"$cf_try\"") >&5
+ { (eval echo "$as_me:7158: \"$cf_try\"") >&5
(eval $cf_try) 2>&5
ac_status=$?
- echo "$as_me:6477: \$? = $ac_status" >&5
+ echo "$as_me:7161: \$? = $ac_status" >&5
(exit "$ac_status"); }
if test -f conftest.out ; then
cf_out=`sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%' conftest.out`
@@ -6484,11 +7168,13 @@ EOF
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 6487 "configure"
+#line 7171 "configure"
#include "confdefs.h"
+$ac_includes_default
+
#include <${cf_cv_ncurses_header:-curses.h}>
-#include <stdio.h>
+
int main(void)
{
FILE *fp = fopen("$cf_tempfile", "w");
@@ -6502,22 +7188,22 @@ int main(void)
# ifdef __NCURSES_H
fprintf(fp, "old\\n");
# else
- make an error
+ #error expected ncurses header to define __NCURSES_H
# endif
#endif
${cf_cv_main_return:-return}(0);
}
_ACEOF
rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:6512: \"$ac_link\"") >&5
+if { (eval echo "$as_me:7198: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:6515: \$? = $ac_status" >&5
+ echo "$as_me:7201: \$? = $ac_status" >&5
(exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:6517: \"$ac_try\"") >&5
+ { (eval echo "$as_me:7203: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:6520: \$? = $ac_status" >&5
+ echo "$as_me:7206: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_ncurses_version=`cat $cf_tempfile`
@@ -6531,38 +7217,38 @@ fi
rm -f "$cf_tempfile"
fi
-echo "$as_me:6534: result: $cf_cv_ncurses_version" >&5
+echo "$as_me:7220: result: $cf_cv_ncurses_version" >&5
echo "${ECHO_T}$cf_cv_ncurses_version" >&6
test "$cf_cv_ncurses_version" = no ||
cat >>confdefs.h <<\EOF
#define NCURSES 1
EOF
-echo "$as_me:6541: checking if we have identified curses libraries" >&5
+echo "$as_me:7227: checking if we have identified curses libraries" >&5
echo $ECHO_N "checking if we have identified curses libraries... $ECHO_C" >&6
cat >"conftest.$ac_ext" <<_ACEOF
-#line 6544 "configure"
+#line 7230 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
int
main (void)
{
-initscr(); tgoto("?", 0,0)
+initscr(); endwin()
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:6556: \"$ac_link\"") >&5
+if { (eval echo "$as_me:7242: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:6559: \$? = $ac_status" >&5
+ echo "$as_me:7245: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:6562: \"$ac_try\"") >&5
+ { (eval echo "$as_me:7248: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:6565: \$? = $ac_status" >&5
+ echo "$as_me:7251: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_result=yes
else
@@ -6571,13 +7257,13 @@ cat "conftest.$ac_ext" >&5
cf_result=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
-echo "$as_me:6574: result: $cf_result" >&5
+echo "$as_me:7260: result: $cf_result" >&5
echo "${ECHO_T}$cf_result" >&6
if test "$cf_result" = no ; then
case "$host_os" in
(freebsd*)
- echo "$as_me:6580: checking for tgoto in -lmytinfo" >&5
+ echo "$as_me:7266: checking for tgoto in -lmytinfo" >&5
echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6
if test "${ac_cv_lib_mytinfo_tgoto+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -6585,7 +7271,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lmytinfo $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 6588 "configure"
+#line 7274 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -6594,7 +7280,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char tgoto ();
+char tgoto (void);
int
main (void)
{
@@ -6604,16 +7290,16 @@ tgoto ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:6607: \"$ac_link\"") >&5
+if { (eval echo "$as_me:7293: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:6610: \$? = $ac_status" >&5
+ echo "$as_me:7296: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:6613: \"$ac_try\"") >&5
+ { (eval echo "$as_me:7299: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:6616: \$? = $ac_status" >&5
+ echo "$as_me:7302: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_mytinfo_tgoto=yes
else
@@ -6624,7 +7310,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:6627: result: $ac_cv_lib_mytinfo_tgoto" >&5
+echo "$as_me:7313: result: $ac_cv_lib_mytinfo_tgoto" >&5
echo "${ECHO_T}$ac_cv_lib_mytinfo_tgoto" >&6
if test "$ac_cv_lib_mytinfo_tgoto" = yes; then
@@ -6654,7 +7340,7 @@ fi
# term.h) for cur_colr
if test "x$cf_cv_screen" = "xcurses_colr"
then
- echo "$as_me:6657: checking for initscr in -lcur_colr" >&5
+ echo "$as_me:7343: checking for initscr in -lcur_colr" >&5
echo $ECHO_N "checking for initscr in -lcur_colr... $ECHO_C" >&6
if test "${ac_cv_lib_cur_colr_initscr+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -6662,7 +7348,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lcur_colr $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 6665 "configure"
+#line 7351 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -6671,7 +7357,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char initscr ();
+char initscr (void);
int
main (void)
{
@@ -6681,16 +7367,16 @@ initscr ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:6684: \"$ac_link\"") >&5
+if { (eval echo "$as_me:7370: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:6687: \$? = $ac_status" >&5
+ echo "$as_me:7373: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:6690: \"$ac_try\"") >&5
+ { (eval echo "$as_me:7376: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:6693: \$? = $ac_status" >&5
+ echo "$as_me:7379: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_cur_colr_initscr=yes
else
@@ -6701,7 +7387,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:6704: result: $ac_cv_lib_cur_colr_initscr" >&5
+echo "$as_me:7390: result: $ac_cv_lib_cur_colr_initscr" >&5
echo "${ECHO_T}$ac_cv_lib_cur_colr_initscr" >&6
if test "$ac_cv_lib_cur_colr_initscr" = yes; then
@@ -6725,7 +7411,7 @@ LIBS="$cf_add_libs"
else
- echo "$as_me:6728: checking for initscr in -lHcurses" >&5
+ echo "$as_me:7414: checking for initscr in -lHcurses" >&5
echo $ECHO_N "checking for initscr in -lHcurses... $ECHO_C" >&6
if test "${ac_cv_lib_Hcurses_initscr+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -6733,7 +7419,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lHcurses $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 6736 "configure"
+#line 7422 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -6742,7 +7428,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char initscr ();
+char initscr (void);
int
main (void)
{
@@ -6752,16 +7438,16 @@ initscr ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:6755: \"$ac_link\"") >&5
+if { (eval echo "$as_me:7441: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:6758: \$? = $ac_status" >&5
+ echo "$as_me:7444: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:6761: \"$ac_try\"") >&5
+ { (eval echo "$as_me:7447: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:6764: \$? = $ac_status" >&5
+ echo "$as_me:7450: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_Hcurses_initscr=yes
else
@@ -6772,7 +7458,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:6775: result: $ac_cv_lib_Hcurses_initscr" >&5
+echo "$as_me:7461: result: $ac_cv_lib_Hcurses_initscr" >&5
echo "${ECHO_T}$ac_cv_lib_Hcurses_initscr" >&6
if test "$ac_cv_lib_Hcurses_initscr" = yes; then
@@ -6830,7 +7516,7 @@ if test -n "/lib64" ; then
if test "$cf_have_libdir" = no ; then
test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6
-echo "${as_me:-configure}:6833: testing adding $cf_add_libdir to library-path ..." 1>&5
+echo "${as_me:-configure}:7519: testing adding $cf_add_libdir to library-path ..." 1>&5
LDFLAGS="-L$cf_add_libdir $LDFLAGS"
fi
@@ -6859,7 +7545,7 @@ if test -n "/lib" ; then
if test "$cf_have_libdir" = no ; then
test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6
-echo "${as_me:-configure}:6862: testing adding $cf_add_libdir to library-path ..." 1>&5
+echo "${as_me:-configure}:7548: testing adding $cf_add_libdir to library-path ..." 1>&5
LDFLAGS="-L$cf_add_libdir $LDFLAGS"
fi
@@ -6890,7 +7576,7 @@ if test -n "/lib" ; then
if test "$cf_have_libdir" = no ; then
test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6
-echo "${as_me:-configure}:6893: testing adding $cf_add_libdir to library-path ..." 1>&5
+echo "${as_me:-configure}:7579: testing adding $cf_add_libdir to library-path ..." 1>&5
LDFLAGS="-L$cf_add_libdir $LDFLAGS"
fi
@@ -6925,7 +7611,7 @@ if test -n "/usr/5lib" ; then
if test "$cf_have_libdir" = no ; then
test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6
-echo "${as_me:-configure}:6928: testing adding $cf_add_libdir to library-path ..." 1>&5
+echo "${as_me:-configure}:7614: testing adding $cf_add_libdir to library-path ..." 1>&5
LDFLAGS="-L$cf_add_libdir $LDFLAGS"
fi
@@ -6969,13 +7655,13 @@ if test ".$ac_cv_func_initscr" != .yes ; then
# because it may be needed to link the test-case for initscr.
if test "x$cf_term_lib" = x
then
- echo "$as_me:6972: checking for tgoto" >&5
+ echo "$as_me:7658: checking for tgoto" >&5
echo $ECHO_N "checking for tgoto... $ECHO_C" >&6
if test "${ac_cv_func_tgoto+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 6978 "configure"
+#line 7664 "configure"
#include "confdefs.h"
#define tgoto autoconf_temporary
#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */
@@ -7006,16 +7692,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:7009: \"$ac_link\"") >&5
+if { (eval echo "$as_me:7695: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:7012: \$? = $ac_status" >&5
+ echo "$as_me:7698: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:7015: \"$ac_try\"") >&5
+ { (eval echo "$as_me:7701: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:7018: \$? = $ac_status" >&5
+ echo "$as_me:7704: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_func_tgoto=yes
else
@@ -7025,7 +7711,7 @@ ac_cv_func_tgoto=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:7028: result: $ac_cv_func_tgoto" >&5
+echo "$as_me:7714: result: $ac_cv_func_tgoto" >&5
echo "${ECHO_T}$ac_cv_func_tgoto" >&6
if test "$ac_cv_func_tgoto" = yes; then
cf_term_lib=predefined
@@ -7034,7 +7720,7 @@ else
for cf_term_lib in $cf_check_list otermcap termcap tinfo termlib unknown
do
as_ac_Lib=`echo "ac_cv_lib_$cf_term_lib''_tgoto" | $as_tr_sh`
-echo "$as_me:7037: checking for tgoto in -l$cf_term_lib" >&5
+echo "$as_me:7723: checking for tgoto in -l$cf_term_lib" >&5
echo $ECHO_N "checking for tgoto in -l$cf_term_lib... $ECHO_C" >&6
if eval "test \"\${$as_ac_Lib+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -7042,7 +7728,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-l$cf_term_lib $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 7045 "configure"
+#line 7731 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -7051,7 +7737,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char tgoto ();
+char tgoto (void);
int
main (void)
{
@@ -7061,16 +7747,16 @@ tgoto ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:7064: \"$ac_link\"") >&5
+if { (eval echo "$as_me:7750: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:7067: \$? = $ac_status" >&5
+ echo "$as_me:7753: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:7070: \"$ac_try\"") >&5
+ { (eval echo "$as_me:7756: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:7073: \$? = $ac_status" >&5
+ echo "$as_me:7759: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
eval "$as_ac_Lib=yes"
else
@@ -7081,7 +7767,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:7084: result: `eval echo '${'"$as_ac_Lib"'}'`" >&5
+echo "$as_me:7770: result: `eval echo '${'"$as_ac_Lib"'}'`" >&5
echo "${ECHO_T}`eval echo '${'"$as_ac_Lib"'}'`" >&6
if test "`eval echo '${'"$as_ac_Lib"'}'`" = yes; then
@@ -7104,10 +7790,10 @@ fi
do
LIBS="-l$cf_curs_lib $cf_save_LIBS"
if test "$cf_term_lib" = unknown || test "$cf_term_lib" = "$cf_curs_lib" ; then
- echo "$as_me:7107: checking if we can link with $cf_curs_lib library" >&5
+ echo "$as_me:7793: checking if we can link with $cf_curs_lib library" >&5
echo $ECHO_N "checking if we can link with $cf_curs_lib library... $ECHO_C" >&6
cat >"conftest.$ac_ext" <<_ACEOF
-#line 7110 "configure"
+#line 7796 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
int
@@ -7119,16 +7805,16 @@ initscr()
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:7122: \"$ac_link\"") >&5
+if { (eval echo "$as_me:7808: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:7125: \$? = $ac_status" >&5
+ echo "$as_me:7811: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:7128: \"$ac_try\"") >&5
+ { (eval echo "$as_me:7814: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:7131: \$? = $ac_status" >&5
+ echo "$as_me:7817: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_result=yes
else
@@ -7137,37 +7823,37 @@ cat "conftest.$ac_ext" >&5
cf_result=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
- echo "$as_me:7140: result: $cf_result" >&5
+ echo "$as_me:7826: result: $cf_result" >&5
echo "${ECHO_T}$cf_result" >&6
test "$cf_result" = yes && break
elif test "$cf_curs_lib" = "$cf_term_lib" ; then
cf_result=no
elif test "$cf_term_lib" != predefined ; then
- echo "$as_me:7146: checking if we need both $cf_curs_lib and $cf_term_lib libraries" >&5
+ echo "$as_me:7832: checking if we need both $cf_curs_lib and $cf_term_lib libraries" >&5
echo $ECHO_N "checking if we need both $cf_curs_lib and $cf_term_lib libraries... $ECHO_C" >&6
cat >"conftest.$ac_ext" <<_ACEOF
-#line 7149 "configure"
+#line 7835 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
int
main (void)
{
-initscr(); tgoto((char *)0, 0, 0);
+initscr(); endwin();
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:7161: \"$ac_link\"") >&5
+if { (eval echo "$as_me:7847: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:7164: \$? = $ac_status" >&5
+ echo "$as_me:7850: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:7167: \"$ac_try\"") >&5
+ { (eval echo "$as_me:7853: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:7170: \$? = $ac_status" >&5
+ echo "$as_me:7856: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_result=no
else
@@ -7176,7 +7862,7 @@ cat "conftest.$ac_ext" >&5
LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 7179 "configure"
+#line 7865 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
int
@@ -7188,16 +7874,16 @@ initscr()
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:7191: \"$ac_link\"") >&5
+if { (eval echo "$as_me:7877: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:7194: \$? = $ac_status" >&5
+ echo "$as_me:7880: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:7197: \"$ac_try\"") >&5
+ { (eval echo "$as_me:7883: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:7200: \$? = $ac_status" >&5
+ echo "$as_me:7886: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_result=yes
else
@@ -7209,13 +7895,13 @@ rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
- echo "$as_me:7212: result: $cf_result" >&5
+ echo "$as_me:7898: result: $cf_result" >&5
echo "${ECHO_T}$cf_result" >&6
test "$cf_result" != error && break
fi
done
fi
- test "$cf_curs_lib" = unknown && { { echo "$as_me:7218: error: no curses library found" >&5
+ test "$cf_curs_lib" = unknown && { { echo "$as_me:7904: error: no curses library found" >&5
echo "$as_me: error: no curses library found" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -7224,7 +7910,55 @@ fi
;;
(ncursesw*)
-echo "$as_me:7227: checking for multibyte character support" >&5
+for ac_header in wchar.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:7916: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >"conftest.$ac_ext" <<_ACEOF
+#line 7922 "configure"
+#include "confdefs.h"
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:7926: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+ (eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
+ ac_status=$?
+ $EGREP -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:7932: \$? = $ac_status" >&5
+ (exit "$ac_status"); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ eval "$as_ac_Header=yes"
+else
+ echo "$as_me: failed program was:" >&5
+ cat "conftest.$ac_ext" >&5
+ eval "$as_ac_Header=no"
+fi
+rm -f conftest.err "conftest.$ac_ext"
+fi
+echo "$as_me:7951: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
+echo "${ECHO_T}`eval echo '${'"$as_ac_Header"'}'`" >&6
+if test "`eval echo '${'"$as_ac_Header"'}'`" = yes; then
+ cat >>confdefs.h <<EOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+EOF
+
+fi
+done
+
+echo "$as_me:7961: checking for multibyte character support" >&5
echo $ECHO_N "checking for multibyte character support... $ECHO_C" >&6
if test "${cf_cv_utf8_lib+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -7232,10 +7966,14 @@ else
cf_save_LIBS="$LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 7235 "configure"
+#line 7969 "configure"
#include "confdefs.h"
-#include <stdlib.h>
+$ac_includes_default
+#ifdef HAVE_WCHAR_H
+#include <wchar.h>
+#endif
+
int
main (void)
{
@@ -7245,16 +7983,16 @@ putwc(0,0);
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:7248: \"$ac_link\"") >&5
+if { (eval echo "$as_me:7986: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:7251: \$? = $ac_status" >&5
+ echo "$as_me:7989: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:7254: \"$ac_try\"") >&5
+ { (eval echo "$as_me:7992: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:7257: \$? = $ac_status" >&5
+ echo "$as_me:7995: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_utf8_lib=yes
else
@@ -7266,12 +8004,12 @@ cat "conftest.$ac_ext" >&5
cf_cv_header_path_utf8=
cf_cv_library_path_utf8=
-echo "${as_me:-configure}:7269: testing Starting FIND_LINKAGE(utf8,) ..." 1>&5
+echo "${as_me:-configure}:8007: testing Starting FIND_LINKAGE(utf8,) ..." 1>&5
cf_save_LIBS="$LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 7274 "configure"
+#line 8012 "configure"
#include "confdefs.h"
#include <libutf8.h>
@@ -7284,16 +8022,16 @@ putwc(0,0);
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:7287: \"$ac_link\"") >&5
+if { (eval echo "$as_me:8025: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:7290: \$? = $ac_status" >&5
+ echo "$as_me:8028: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:7293: \"$ac_try\"") >&5
+ { (eval echo "$as_me:8031: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:7296: \$? = $ac_status" >&5
+ echo "$as_me:8034: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_find_linkage_utf8=yes
@@ -7307,7 +8045,7 @@ cat "conftest.$ac_ext" >&5
LIBS="-lutf8 $cf_save_LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 7310 "configure"
+#line 8048 "configure"
#include "confdefs.h"
#include <libutf8.h>
@@ -7320,16 +8058,16 @@ putwc(0,0);
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:7323: \"$ac_link\"") >&5
+if { (eval echo "$as_me:8061: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:7326: \$? = $ac_status" >&5
+ echo "$as_me:8064: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:7329: \"$ac_try\"") >&5
+ { (eval echo "$as_me:8067: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:7332: \$? = $ac_status" >&5
+ echo "$as_me:8070: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_find_linkage_utf8=yes
@@ -7346,9 +8084,9 @@ cat "conftest.$ac_ext" >&5
test -n "$verbose" && echo " find linkage for utf8 library" 1>&6
-echo "${as_me:-configure}:7349: testing find linkage for utf8 library ..." 1>&5
+echo "${as_me:-configure}:8087: testing find linkage for utf8 library ..." 1>&5
-echo "${as_me:-configure}:7351: testing Searching for headers in FIND_LINKAGE(utf8,) ..." 1>&5
+echo "${as_me:-configure}:8089: testing Searching for headers in FIND_LINKAGE(utf8,) ..." 1>&5
cf_save_CPPFLAGS="$CPPFLAGS"
cf_test_CPPFLAGS="$CPPFLAGS"
@@ -7439,7 +8177,7 @@ cf_search="$cf_search $cf_header_path_list"
if test -d "$cf_cv_header_path_utf8" ; then
test -n "$verbose" && echo " ... testing $cf_cv_header_path_utf8" 1>&6
-echo "${as_me:-configure}:7442: testing ... testing $cf_cv_header_path_utf8 ..." 1>&5
+echo "${as_me:-configure}:8180: testing ... testing $cf_cv_header_path_utf8 ..." 1>&5
CPPFLAGS="$cf_save_CPPFLAGS"
@@ -7447,7 +8185,7 @@ echo "${as_me:-configure}:7442: testing ... testing $cf_cv_header_path_utf8 ..."
CPPFLAGS="${CPPFLAGS}-I$cf_cv_header_path_utf8"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 7450 "configure"
+#line 8188 "configure"
#include "confdefs.h"
#include <libutf8.h>
@@ -7460,21 +8198,21 @@ putwc(0,0);
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:7463: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:8201: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:7466: \$? = $ac_status" >&5
+ echo "$as_me:8204: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:7469: \"$ac_try\"") >&5
+ { (eval echo "$as_me:8207: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:7472: \$? = $ac_status" >&5
+ echo "$as_me:8210: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
test -n "$verbose" && echo " ... found utf8 headers in $cf_cv_header_path_utf8" 1>&6
-echo "${as_me:-configure}:7477: testing ... found utf8 headers in $cf_cv_header_path_utf8 ..." 1>&5
+echo "${as_me:-configure}:8215: testing ... found utf8 headers in $cf_cv_header_path_utf8 ..." 1>&5
cf_cv_find_linkage_utf8=maybe
cf_test_CPPFLAGS="$CPPFLAGS"
@@ -7492,7 +8230,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
if test "$cf_cv_find_linkage_utf8" = maybe ; then
-echo "${as_me:-configure}:7495: testing Searching for utf8 library in FIND_LINKAGE(utf8,) ..." 1>&5
+echo "${as_me:-configure}:8233: testing Searching for utf8 library in FIND_LINKAGE(utf8,) ..." 1>&5
cf_save_LIBS="$LIBS"
cf_save_LDFLAGS="$LDFLAGS"
@@ -7567,13 +8305,13 @@ cf_search="$cf_library_path_list $cf_search"
if test -d "$cf_cv_library_path_utf8" ; then
test -n "$verbose" && echo " ... testing $cf_cv_library_path_utf8" 1>&6
-echo "${as_me:-configure}:7570: testing ... testing $cf_cv_library_path_utf8 ..." 1>&5
+echo "${as_me:-configure}:8308: testing ... testing $cf_cv_library_path_utf8 ..." 1>&5
CPPFLAGS="$cf_test_CPPFLAGS"
LIBS="-lutf8 $cf_save_LIBS"
LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_utf8"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 7576 "configure"
+#line 8314 "configure"
#include "confdefs.h"
#include <libutf8.h>
@@ -7586,21 +8324,21 @@ putwc(0,0);
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:7589: \"$ac_link\"") >&5
+if { (eval echo "$as_me:8327: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:7592: \$? = $ac_status" >&5
+ echo "$as_me:8330: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:7595: \"$ac_try\"") >&5
+ { (eval echo "$as_me:8333: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:7598: \$? = $ac_status" >&5
+ echo "$as_me:8336: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
test -n "$verbose" && echo " ... found utf8 library in $cf_cv_library_path_utf8" 1>&6
-echo "${as_me:-configure}:7603: testing ... found utf8 library in $cf_cv_library_path_utf8 ..." 1>&5
+echo "${as_me:-configure}:8341: testing ... found utf8 library in $cf_cv_library_path_utf8 ..." 1>&5
cf_cv_find_linkage_utf8=yes
cf_cv_library_file_utf8="-lutf8"
@@ -7642,7 +8380,7 @@ fi
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:7645: result: $cf_cv_utf8_lib" >&5
+echo "$as_me:8383: result: $cf_cv_utf8_lib" >&5
echo "${ECHO_T}$cf_cv_utf8_lib" >&6
# HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
@@ -7680,7 +8418,7 @@ if test -n "$cf_cv_header_path_utf8" ; then
CPPFLAGS="${CPPFLAGS}-I$cf_add_incdir"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 7683 "configure"
+#line 8421 "configure"
#include "confdefs.h"
#include <stdio.h>
int
@@ -7692,16 +8430,16 @@ printf("Hello")
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:7695: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:8433: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:7698: \$? = $ac_status" >&5
+ echo "$as_me:8436: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:7701: \"$ac_try\"") >&5
+ { (eval echo "$as_me:8439: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:7704: \$? = $ac_status" >&5
+ echo "$as_me:8442: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
:
else
@@ -7718,7 +8456,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
if test "$cf_have_incdir" = no ; then
test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-echo "${as_me:-configure}:7721: testing adding $cf_add_incdir to include-path ..." 1>&5
+echo "${as_me:-configure}:8459: testing adding $cf_add_incdir to include-path ..." 1>&5
CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
@@ -7754,7 +8492,7 @@ if test -n "$cf_cv_library_path_utf8" ; then
if test "$cf_have_libdir" = no ; then
test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6
-echo "${as_me:-configure}:7757: testing adding $cf_add_libdir to library-path ..." 1>&5
+echo "${as_me:-configure}:8495: testing adding $cf_add_libdir to library-path ..." 1>&5
LDFLAGS="-L$cf_add_libdir $LDFLAGS"
fi
@@ -7784,13 +8522,13 @@ cf_ncuconfig_root=$cf_cv_screen
cf_have_ncuconfig=no
if test "x${PKG_CONFIG:=none}" != xnone; then
- echo "$as_me:7787: checking pkg-config for $cf_ncuconfig_root" >&5
+ echo "$as_me:8525: checking pkg-config for $cf_ncuconfig_root" >&5
echo $ECHO_N "checking pkg-config for $cf_ncuconfig_root... $ECHO_C" >&6
if "$PKG_CONFIG" --exists $cf_ncuconfig_root ; then
- echo "$as_me:7790: result: yes" >&5
+ echo "$as_me:8528: result: yes" >&5
echo "${ECHO_T}yes" >&6
- echo "$as_me:7793: checking if the $cf_ncuconfig_root package files work" >&5
+ echo "$as_me:8531: checking if the $cf_ncuconfig_root package files work" >&5
echo $ECHO_N "checking if the $cf_ncuconfig_root package files work... $ECHO_C" >&6
cf_have_ncuconfig=unknown
@@ -7923,7 +8661,7 @@ done
LIBS="$cf_add_libs"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 7926 "configure"
+#line 8664 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
int
@@ -7935,37 +8673,37 @@ initscr(); mousemask(0,0); tigetstr((char *)0);
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:7938: \"$ac_link\"") >&5
+if { (eval echo "$as_me:8676: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:7941: \$? = $ac_status" >&5
+ echo "$as_me:8679: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:7944: \"$ac_try\"") >&5
+ { (eval echo "$as_me:8682: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:7947: \$? = $ac_status" >&5
+ echo "$as_me:8685: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
if test "$cross_compiling" = yes; then
cf_test_ncuconfig=maybe
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 7953 "configure"
+#line 8691 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
int main(void)
- { char *xx = curses_version(); return (xx == 0); }
+ { const char *xx = curses_version(); return (xx == 0); }
_ACEOF
rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:7960: \"$ac_link\"") >&5
+if { (eval echo "$as_me:8698: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:7963: \$? = $ac_status" >&5
+ echo "$as_me:8701: \$? = $ac_status" >&5
(exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:7965: \"$ac_try\"") >&5
+ { (eval echo "$as_me:8703: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:7968: \$? = $ac_status" >&5
+ echo "$as_me:8706: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_test_ncuconfig=yes
else
@@ -7996,12 +8734,38 @@ rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
;;
esac
+for cf_add_cflags in $cf_pkg_cflags
+do
+ case "x$cf_add_cflags" in
+ (x-[DU]*)
+
+cf_tmp_cflag=`echo "x$cf_add_cflags" | sed -e 's/^.//' -e 's/=.*//'`
+while true
+do
+ cf_old_cflag=`echo "x$CFLAGS" | sed -e 's/^.//' -e 's/[ ][ ]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[^ ][^ ]*\\)\?%%" -e 's/^[ ]*//' -e 's%[ ][ ]*-D% -D%g' -e 's%[ ][ ]*-I% -I%g'`
+ test "$CFLAGS" != "$cf_old_cflag" || break
+
+ CFLAGS="$cf_old_cflag"
+done
+
+cf_tmp_cflag=`echo "x$cf_add_cflags" | sed -e 's/^.//' -e 's/=.*//'`
+while true
+do
+ cf_old_cflag=`echo "x$CPPFLAGS" | sed -e 's/^.//' -e 's/[ ][ ]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[^ ][^ ]*\\)\?%%" -e 's/^[ ]*//' -e 's%[ ][ ]*-D% -D%g' -e 's%[ ][ ]*-I% -I%g'`
+ test "$CPPFLAGS" != "$cf_old_cflag" || break
+
+ CPPFLAGS="$cf_old_cflag"
+done
+
+ ;;
+ esac
+
cf_fix_cppflags=no
cf_new_cflags=
cf_new_cppflags=
cf_new_extra_cppflags=
-for cf_add_cflags in $cf_pkg_cflags
+for cf_add_cflags in $cf_add_cflags
do
case "$cf_fix_cppflags" in
(no)
@@ -8094,6 +8858,8 @@ if test -n "$cf_new_extra_cppflags" ; then
fi
+done
+
cf_add_libs="$LIBS"
# reverse order
cf_add_0lib=
@@ -8111,7 +8877,7 @@ done
LIBS="$cf_add_libs"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 8114 "configure"
+#line 8880 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
int
@@ -8123,37 +8889,37 @@ initscr(); mousemask(0,0); tigetstr((char *)0);
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:8126: \"$ac_link\"") >&5
+if { (eval echo "$as_me:8892: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:8129: \$? = $ac_status" >&5
+ echo "$as_me:8895: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:8132: \"$ac_try\"") >&5
+ { (eval echo "$as_me:8898: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:8135: \$? = $ac_status" >&5
+ echo "$as_me:8901: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
if test "$cross_compiling" = yes; then
cf_have_ncuconfig=maybe
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 8141 "configure"
+#line 8907 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
int main(void)
- { char *xx = curses_version(); return (xx == 0); }
+ { const char *xx = curses_version(); return (xx == 0); }
_ACEOF
rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:8148: \"$ac_link\"") >&5
+if { (eval echo "$as_me:8914: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:8151: \$? = $ac_status" >&5
+ echo "$as_me:8917: \$? = $ac_status" >&5
(exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:8153: \"$ac_try\"") >&5
+ { (eval echo "$as_me:8919: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:8156: \$? = $ac_status" >&5
+ echo "$as_me:8922: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_have_ncuconfig=yes
else
@@ -8170,7 +8936,7 @@ cat "conftest.$ac_ext" >&5
cf_have_ncuconfig=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
- echo "$as_me:8173: result: $cf_have_ncuconfig" >&5
+ echo "$as_me:8939: result: $cf_have_ncuconfig" >&5
echo "${ECHO_T}$cf_have_ncuconfig" >&6
test "$cf_have_ncuconfig" = maybe && cf_have_ncuconfig=yes
if test "$cf_have_ncuconfig" != "yes"
@@ -8186,7 +8952,7 @@ EOF
NCURSES_CONFIG_PKG=$cf_ncuconfig_root
-echo "$as_me:8189: checking for terminfo header" >&5
+echo "$as_me:8955: checking for terminfo header" >&5
echo $ECHO_N "checking for terminfo header... $ECHO_C" >&6
if test "${cf_cv_term_header+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -8204,7 +8970,7 @@ esac
for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 8207 "configure"
+#line 8973 "configure"
#include "confdefs.h"
#include <stdio.h>
#include <${cf_cv_ncurses_header:-curses.h}>
@@ -8219,16 +8985,16 @@ int x = auto_left_margin; (void)x
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:8222: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:8988: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:8225: \$? = $ac_status" >&5
+ echo "$as_me:8991: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:8228: \"$ac_try\"") >&5
+ { (eval echo "$as_me:8994: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:8231: \$? = $ac_status" >&5
+ echo "$as_me:8997: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_term_header="$cf_test"
@@ -8244,7 +9010,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
done
fi
-echo "$as_me:8247: result: $cf_cv_term_header" >&5
+echo "$as_me:9013: result: $cf_cv_term_header" >&5
echo "${ECHO_T}$cf_cv_term_header" >&6
# Set definitions to allow ifdef'ing to accommodate subdirectories
@@ -8279,7 +9045,7 @@ esac
fi
else
- echo "$as_me:8282: result: no" >&5
+ echo "$as_me:9048: result: no" >&5
echo "${ECHO_T}no" >&6
NCURSES_CONFIG_PKG=none
fi
@@ -8295,7 +9061,7 @@ if test -n "$ac_tool_prefix"; then
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-echo "$as_me:8298: checking for $ac_word" >&5
+echo "$as_me:9064: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_NCURSES_CONFIG+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -8310,7 +9076,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_NCURSES_CONFIG="$ac_tool_prefix$ac_prog"
-echo "$as_me:8313: found $ac_dir/$ac_word" >&5
+echo "$as_me:9079: found $ac_dir/$ac_word" >&5
break
done
@@ -8318,10 +9084,10 @@ fi
fi
NCURSES_CONFIG=$ac_cv_prog_NCURSES_CONFIG
if test -n "$NCURSES_CONFIG"; then
- echo "$as_me:8321: result: $NCURSES_CONFIG" >&5
+ echo "$as_me:9087: result: $NCURSES_CONFIG" >&5
echo "${ECHO_T}$NCURSES_CONFIG" >&6
else
- echo "$as_me:8324: result: no" >&5
+ echo "$as_me:9090: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -8334,7 +9100,7 @@ if test -z "$NCURSES_CONFIG"; then
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-echo "$as_me:8337: checking for $ac_word" >&5
+echo "$as_me:9103: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_ac_ct_NCURSES_CONFIG+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -8349,7 +9115,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_ac_ct_NCURSES_CONFIG="$ac_prog"
-echo "$as_me:8352: found $ac_dir/$ac_word" >&5
+echo "$as_me:9118: found $ac_dir/$ac_word" >&5
break
done
@@ -8357,10 +9123,10 @@ fi
fi
ac_ct_NCURSES_CONFIG=$ac_cv_prog_ac_ct_NCURSES_CONFIG
if test -n "$ac_ct_NCURSES_CONFIG"; then
- echo "$as_me:8360: result: $ac_ct_NCURSES_CONFIG" >&5
+ echo "$as_me:9126: result: $ac_ct_NCURSES_CONFIG" >&5
echo "${ECHO_T}$ac_ct_NCURSES_CONFIG" >&6
else
- echo "$as_me:8363: result: no" >&5
+ echo "$as_me:9129: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -8373,12 +9139,38 @@ fi
if test "$NCURSES_CONFIG" != none ; then
+for cf_add_cflags in `$NCURSES_CONFIG --cflags`
+do
+ case "x$cf_add_cflags" in
+ (x-[DU]*)
+
+cf_tmp_cflag=`echo "x$cf_add_cflags" | sed -e 's/^.//' -e 's/=.*//'`
+while true
+do
+ cf_old_cflag=`echo "x$CFLAGS" | sed -e 's/^.//' -e 's/[ ][ ]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[^ ][^ ]*\\)\?%%" -e 's/^[ ]*//' -e 's%[ ][ ]*-D% -D%g' -e 's%[ ][ ]*-I% -I%g'`
+ test "$CFLAGS" != "$cf_old_cflag" || break
+
+ CFLAGS="$cf_old_cflag"
+done
+
+cf_tmp_cflag=`echo "x$cf_add_cflags" | sed -e 's/^.//' -e 's/=.*//'`
+while true
+do
+ cf_old_cflag=`echo "x$CPPFLAGS" | sed -e 's/^.//' -e 's/[ ][ ]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[^ ][^ ]*\\)\?%%" -e 's/^[ ]*//' -e 's%[ ][ ]*-D% -D%g' -e 's%[ ][ ]*-I% -I%g'`
+ test "$CPPFLAGS" != "$cf_old_cflag" || break
+
+ CPPFLAGS="$cf_old_cflag"
+done
+
+ ;;
+ esac
+
cf_fix_cppflags=no
cf_new_cflags=
cf_new_cppflags=
cf_new_extra_cppflags=
-for cf_add_cflags in `$NCURSES_CONFIG --cflags`
+for cf_add_cflags in $cf_add_cflags
do
case "$cf_fix_cppflags" in
(no)
@@ -8471,6 +9263,8 @@ if test -n "$cf_new_extra_cppflags" ; then
fi
+done
+
cf_add_libs="$LIBS"
# reverse order
cf_add_0lib=
@@ -8489,7 +9283,7 @@ LIBS="$cf_add_libs"
# even with config script, some packages use no-override for curses.h
-echo "$as_me:8492: checking if we have identified curses headers" >&5
+echo "$as_me:9286: checking if we have identified curses headers" >&5
echo $ECHO_N "checking if we have identified curses headers... $ECHO_C" >&6
if test "${cf_cv_ncurses_header+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -8501,28 +9295,28 @@ for cf_header in \
curses.h $cf_cv_screen/curses.h
do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 8504 "configure"
+#line 9298 "configure"
#include "confdefs.h"
#include <${cf_header}>
int
main (void)
{
-initscr(); tgoto("?", 0,0)
+initscr(); endwin()
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:8516: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:9310: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:8519: \$? = $ac_status" >&5
+ echo "$as_me:9313: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:8522: \"$ac_try\"") >&5
+ { (eval echo "$as_me:9316: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:8525: \$? = $ac_status" >&5
+ echo "$as_me:9319: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_ncurses_header=$cf_header; break
else
@@ -8533,11 +9327,11 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
done
fi
-echo "$as_me:8536: result: $cf_cv_ncurses_header" >&5
+echo "$as_me:9330: result: $cf_cv_ncurses_header" >&5
echo "${ECHO_T}$cf_cv_ncurses_header" >&6
if test "$cf_cv_ncurses_header" = none ; then
- { { echo "$as_me:8540: error: No curses header-files found" >&5
+ { { echo "$as_me:9334: error: No curses header-files found" >&5
echo "$as_me: error: No curses header-files found" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -8547,23 +9341,23 @@ fi
for ac_header in $cf_cv_ncurses_header
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:8550: checking for $ac_header" >&5
+echo "$as_me:9344: checking for $ac_header" >&5
echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 8556 "configure"
+#line 9350 "configure"
#include "confdefs.h"
#include <$ac_header>
_ACEOF
-if { (eval echo "$as_me:8560: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:9354: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:8566: \$? = $ac_status" >&5
+ echo "$as_me:9360: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -8582,7 +9376,7 @@ else
fi
rm -f conftest.err "conftest.$ac_ext"
fi
-echo "$as_me:8585: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
+echo "$as_me:9379: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
echo "${ECHO_T}`eval echo '${'"$as_ac_Header"'}'`" >&6
if test "`eval echo '${'"$as_ac_Header"'}'`" = yes; then
cat >>confdefs.h <<EOF
@@ -8638,7 +9432,7 @@ if test -n "$cf_cv_curses_dir/include/$cf_ncuhdr_root" ; then
CPPFLAGS="${CPPFLAGS}-I$cf_add_incdir"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 8641 "configure"
+#line 9435 "configure"
#include "confdefs.h"
#include <stdio.h>
int
@@ -8650,16 +9444,16 @@ printf("Hello")
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:8653: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:9447: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:8656: \$? = $ac_status" >&5
+ echo "$as_me:9450: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:8659: \"$ac_try\"") >&5
+ { (eval echo "$as_me:9453: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:8662: \$? = $ac_status" >&5
+ echo "$as_me:9456: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
:
else
@@ -8676,7 +9470,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
if test "$cf_have_incdir" = no ; then
test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-echo "${as_me:-configure}:8679: testing adding $cf_add_incdir to include-path ..." 1>&5
+echo "${as_me:-configure}:9473: testing adding $cf_add_incdir to include-path ..." 1>&5
CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
@@ -8695,7 +9489,7 @@ fi
}
-echo "$as_me:8698: checking for $cf_ncuhdr_root header in include-path" >&5
+echo "$as_me:9492: checking for $cf_ncuhdr_root header in include-path" >&5
echo $ECHO_N "checking for $cf_ncuhdr_root header in include-path... $ECHO_C" >&6
if test "${cf_cv_ncurses_h+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -8707,7 +9501,7 @@ else
do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 8710 "configure"
+#line 9504 "configure"
#include "confdefs.h"
#include <$cf_header>
@@ -8722,7 +9516,7 @@ printf("%s\\n", NCURSES_VERSION);
#ifdef __NCURSES_H
printf("old\\n");
#else
- make an error
+ #error __NCURSES_H is not defined
#endif
#endif
@@ -8731,16 +9525,16 @@ printf("old\\n");
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:8734: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:9528: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:8737: \$? = $ac_status" >&5
+ echo "$as_me:9531: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:8740: \"$ac_try\"") >&5
+ { (eval echo "$as_me:9534: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:8743: \$? = $ac_status" >&5
+ echo "$as_me:9537: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_ncurses_h=$cf_header
@@ -8755,14 +9549,14 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
done
fi
-echo "$as_me:8758: result: $cf_cv_ncurses_h" >&5
+echo "$as_me:9552: result: $cf_cv_ncurses_h" >&5
echo "${ECHO_T}$cf_cv_ncurses_h" >&6
if test "$cf_cv_ncurses_h" != no ; then
cf_cv_ncurses_header=$cf_cv_ncurses_h
else
-echo "$as_me:8765: checking for $cf_ncuhdr_root include-path" >&5
+echo "$as_me:9559: checking for $cf_ncuhdr_root include-path" >&5
echo $ECHO_N "checking for $cf_ncuhdr_root include-path... $ECHO_C" >&6
if test "${cf_cv_ncurses_h2+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -8883,7 +9677,7 @@ if test -n "$cf_incdir" ; then
CPPFLAGS="${CPPFLAGS}-I$cf_add_incdir"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 8886 "configure"
+#line 9680 "configure"
#include "confdefs.h"
#include <stdio.h>
int
@@ -8895,16 +9689,16 @@ printf("Hello")
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:8898: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:9692: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:8901: \$? = $ac_status" >&5
+ echo "$as_me:9695: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:8904: \"$ac_try\"") >&5
+ { (eval echo "$as_me:9698: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:8907: \$? = $ac_status" >&5
+ echo "$as_me:9701: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
:
else
@@ -8921,7 +9715,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
if test "$cf_have_incdir" = no ; then
test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-echo "${as_me:-configure}:8924: testing adding $cf_add_incdir to include-path ..." 1>&5
+echo "${as_me:-configure}:9718: testing adding $cf_add_incdir to include-path ..." 1>&5
CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
@@ -8944,7 +9738,7 @@ fi
do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 8947 "configure"
+#line 9741 "configure"
#include "confdefs.h"
#include <$cf_header>
@@ -8959,7 +9753,7 @@ printf("%s\\n", NCURSES_VERSION);
#ifdef __NCURSES_H
printf("old\\n");
#else
- make an error
+ #error __NCURSES_H is not defined
#endif
#endif
@@ -8968,16 +9762,16 @@ printf("old\\n");
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:8971: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:9765: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:8974: \$? = $ac_status" >&5
+ echo "$as_me:9768: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:8977: \"$ac_try\"") >&5
+ { (eval echo "$as_me:9771: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:8980: \$? = $ac_status" >&5
+ echo "$as_me:9774: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_ncurses_h2=$cf_header
@@ -8998,12 +9792,12 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
CPPFLAGS="$cf_save2_CPPFLAGS"
test "$cf_cv_ncurses_h2" != no && break
done
- test "$cf_cv_ncurses_h2" = no && { { echo "$as_me:9001: error: not found" >&5
+ test "$cf_cv_ncurses_h2" = no && { { echo "$as_me:9795: error: not found" >&5
echo "$as_me: error: not found" >&2;}
{ (exit 1); exit 1; }; }
fi
-echo "$as_me:9006: result: $cf_cv_ncurses_h2" >&5
+echo "$as_me:9800: result: $cf_cv_ncurses_h2" >&5
echo "${ECHO_T}$cf_cv_ncurses_h2" >&6
cf_1st_incdir=`echo "$cf_cv_ncurses_h2" | sed -e 's%/[^/]*$%%'`
@@ -9039,7 +9833,7 @@ if test -n "$cf_1st_incdir" ; then
CPPFLAGS="${CPPFLAGS}-I$cf_add_incdir"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 9042 "configure"
+#line 9836 "configure"
#include "confdefs.h"
#include <stdio.h>
int
@@ -9051,16 +9845,16 @@ printf("Hello")
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:9054: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:9848: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:9057: \$? = $ac_status" >&5
+ echo "$as_me:9851: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:9060: \"$ac_try\"") >&5
+ { (eval echo "$as_me:9854: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:9063: \$? = $ac_status" >&5
+ echo "$as_me:9857: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
:
else
@@ -9077,7 +9871,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
if test "$cf_have_incdir" = no ; then
test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-echo "${as_me:-configure}:9080: testing adding $cf_add_incdir to include-path ..." 1>&5
+echo "${as_me:-configure}:9874: testing adding $cf_add_incdir to include-path ..." 1>&5
CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
@@ -9125,7 +9919,7 @@ EOF
;;
esac
-echo "$as_me:9128: checking for terminfo header" >&5
+echo "$as_me:9922: checking for terminfo header" >&5
echo $ECHO_N "checking for terminfo header... $ECHO_C" >&6
if test "${cf_cv_term_header+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -9143,7 +9937,7 @@ esac
for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 9146 "configure"
+#line 9940 "configure"
#include "confdefs.h"
#include <stdio.h>
#include <${cf_cv_ncurses_header:-curses.h}>
@@ -9158,16 +9952,16 @@ int x = auto_left_margin; (void)x
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:9161: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:9955: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:9164: \$? = $ac_status" >&5
+ echo "$as_me:9958: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:9167: \"$ac_try\"") >&5
+ { (eval echo "$as_me:9961: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:9170: \$? = $ac_status" >&5
+ echo "$as_me:9964: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_term_header="$cf_test"
@@ -9183,7 +9977,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
done
fi
-echo "$as_me:9186: result: $cf_cv_term_header" >&5
+echo "$as_me:9980: result: $cf_cv_term_header" >&5
echo "${ECHO_T}$cf_cv_term_header" >&6
# Set definitions to allow ifdef'ing to accommodate subdirectories
@@ -9221,7 +10015,7 @@ cat >>confdefs.h <<\EOF
#define NCURSES 1
EOF
-echo "$as_me:9224: checking for ncurses version" >&5
+echo "$as_me:10018: checking for ncurses version" >&5
echo $ECHO_N "checking for ncurses version... $ECHO_C" >&6
if test "${cf_cv_ncurses_version+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -9247,10 +10041,10 @@ Autoconf "old"
#endif
EOF
cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
- { (eval echo "$as_me:9250: \"$cf_try\"") >&5
+ { (eval echo "$as_me:10044: \"$cf_try\"") >&5
(eval $cf_try) 2>&5
ac_status=$?
- echo "$as_me:9253: \$? = $ac_status" >&5
+ echo "$as_me:10047: \$? = $ac_status" >&5
(exit "$ac_status"); }
if test -f conftest.out ; then
cf_out=`sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%' conftest.out`
@@ -9260,11 +10054,13 @@ EOF
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 9263 "configure"
+#line 10057 "configure"
#include "confdefs.h"
+$ac_includes_default
+
#include <${cf_cv_ncurses_header:-curses.h}>
-#include <stdio.h>
+
int main(void)
{
FILE *fp = fopen("$cf_tempfile", "w");
@@ -9278,22 +10074,22 @@ int main(void)
# ifdef __NCURSES_H
fprintf(fp, "old\\n");
# else
- make an error
+ #error expected ncurses header to define __NCURSES_H
# endif
#endif
${cf_cv_main_return:-return}(0);
}
_ACEOF
rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:9288: \"$ac_link\"") >&5
+if { (eval echo "$as_me:10084: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:9291: \$? = $ac_status" >&5
+ echo "$as_me:10087: \$? = $ac_status" >&5
(exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:9293: \"$ac_try\"") >&5
+ { (eval echo "$as_me:10089: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:9296: \$? = $ac_status" >&5
+ echo "$as_me:10092: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_ncurses_version=`cat $cf_tempfile`
@@ -9307,7 +10103,7 @@ fi
rm -f "$cf_tempfile"
fi
-echo "$as_me:9310: result: $cf_cv_ncurses_version" >&5
+echo "$as_me:10106: result: $cf_cv_ncurses_version" >&5
echo "${ECHO_T}$cf_cv_ncurses_version" >&6
test "$cf_cv_ncurses_version" = no ||
cat >>confdefs.h <<\EOF
@@ -9320,7 +10116,7 @@ cf_nculib_root=$cf_cv_screen
# to link gpm.
cf_ncurses_LIBS=""
cf_ncurses_SAVE="$LIBS"
-echo "$as_me:9323: checking for Gpm_Open in -lgpm" >&5
+echo "$as_me:10119: checking for Gpm_Open in -lgpm" >&5
echo $ECHO_N "checking for Gpm_Open in -lgpm... $ECHO_C" >&6
if test "${ac_cv_lib_gpm_Gpm_Open+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -9328,7 +10124,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lgpm $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 9331 "configure"
+#line 10127 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -9337,7 +10133,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char Gpm_Open ();
+char Gpm_Open (void);
int
main (void)
{
@@ -9347,16 +10143,16 @@ Gpm_Open ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:9350: \"$ac_link\"") >&5
+if { (eval echo "$as_me:10146: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:9353: \$? = $ac_status" >&5
+ echo "$as_me:10149: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:9356: \"$ac_try\"") >&5
+ { (eval echo "$as_me:10152: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:9359: \$? = $ac_status" >&5
+ echo "$as_me:10155: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_gpm_Gpm_Open=yes
else
@@ -9367,10 +10163,10 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:9370: result: $ac_cv_lib_gpm_Gpm_Open" >&5
+echo "$as_me:10166: result: $ac_cv_lib_gpm_Gpm_Open" >&5
echo "${ECHO_T}$ac_cv_lib_gpm_Gpm_Open" >&6
if test "$ac_cv_lib_gpm_Gpm_Open" = yes; then
- echo "$as_me:9373: checking for initscr in -lgpm" >&5
+ echo "$as_me:10169: checking for initscr in -lgpm" >&5
echo $ECHO_N "checking for initscr in -lgpm... $ECHO_C" >&6
if test "${ac_cv_lib_gpm_initscr+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -9378,7 +10174,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lgpm $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 9381 "configure"
+#line 10177 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -9387,7 +10183,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char initscr ();
+char initscr (void);
int
main (void)
{
@@ -9397,16 +10193,16 @@ initscr ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:9400: \"$ac_link\"") >&5
+if { (eval echo "$as_me:10196: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:9403: \$? = $ac_status" >&5
+ echo "$as_me:10199: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:9406: \"$ac_try\"") >&5
+ { (eval echo "$as_me:10202: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:9409: \$? = $ac_status" >&5
+ echo "$as_me:10205: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_gpm_initscr=yes
else
@@ -9417,7 +10213,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:9420: result: $ac_cv_lib_gpm_initscr" >&5
+echo "$as_me:10216: result: $ac_cv_lib_gpm_initscr" >&5
echo "${ECHO_T}$ac_cv_lib_gpm_initscr" >&6
if test "$ac_cv_lib_gpm_initscr" = yes; then
LIBS="$cf_ncurses_SAVE"
@@ -9430,9 +10226,9 @@ fi
case "$host_os" in
(freebsd*)
# This is only necessary if you are linking against an obsolete
- # version of ncurses (but it should do no harm, since it's static).
+ # version of ncurses (but it should do no harm, since it is static).
if test "$cf_nculib_root" = ncurses ; then
- echo "$as_me:9435: checking for tgoto in -lmytinfo" >&5
+ echo "$as_me:10231: checking for tgoto in -lmytinfo" >&5
echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6
if test "${ac_cv_lib_mytinfo_tgoto+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -9440,7 +10236,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lmytinfo $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 9443 "configure"
+#line 10239 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -9449,7 +10245,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char tgoto ();
+char tgoto (void);
int
main (void)
{
@@ -9459,16 +10255,16 @@ tgoto ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:9462: \"$ac_link\"") >&5
+if { (eval echo "$as_me:10258: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:9465: \$? = $ac_status" >&5
+ echo "$as_me:10261: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:9468: \"$ac_try\"") >&5
+ { (eval echo "$as_me:10264: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:9471: \$? = $ac_status" >&5
+ echo "$as_me:10267: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_mytinfo_tgoto=yes
else
@@ -9479,7 +10275,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:9482: result: $ac_cv_lib_mytinfo_tgoto" >&5
+echo "$as_me:10278: result: $ac_cv_lib_mytinfo_tgoto" >&5
echo "${ECHO_T}$ac_cv_lib_mytinfo_tgoto" >&6
if test "$ac_cv_lib_mytinfo_tgoto" = yes; then
cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"
@@ -9528,13 +10324,13 @@ else
eval 'cf_cv_have_lib_'"$cf_nculib_root"'=no'
cf_libdir=""
- echo "$as_me:9531: checking for initscr" >&5
+ echo "$as_me:10327: checking for initscr" >&5
echo $ECHO_N "checking for initscr... $ECHO_C" >&6
if test "${ac_cv_func_initscr+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 9537 "configure"
+#line 10333 "configure"
#include "confdefs.h"
#define initscr autoconf_temporary
#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */
@@ -9565,16 +10361,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:9568: \"$ac_link\"") >&5
+if { (eval echo "$as_me:10364: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:9571: \$? = $ac_status" >&5
+ echo "$as_me:10367: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:9574: \"$ac_try\"") >&5
+ { (eval echo "$as_me:10370: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:9577: \$? = $ac_status" >&5
+ echo "$as_me:10373: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_func_initscr=yes
else
@@ -9584,18 +10380,18 @@ ac_cv_func_initscr=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:9587: result: $ac_cv_func_initscr" >&5
+echo "$as_me:10383: result: $ac_cv_func_initscr" >&5
echo "${ECHO_T}$ac_cv_func_initscr" >&6
if test "$ac_cv_func_initscr" = yes; then
eval 'cf_cv_have_lib_'"$cf_nculib_root"'=yes'
else
cf_save_LIBS="$LIBS"
- echo "$as_me:9594: checking for initscr in -l$cf_nculib_root" >&5
+ echo "$as_me:10390: checking for initscr in -l$cf_nculib_root" >&5
echo $ECHO_N "checking for initscr in -l$cf_nculib_root... $ECHO_C" >&6
LIBS="-l$cf_nculib_root $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 9598 "configure"
+#line 10394 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
int
@@ -9607,25 +10403,25 @@ initscr()
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:9610: \"$ac_link\"") >&5
+if { (eval echo "$as_me:10406: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:9613: \$? = $ac_status" >&5
+ echo "$as_me:10409: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:9616: \"$ac_try\"") >&5
+ { (eval echo "$as_me:10412: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:9619: \$? = $ac_status" >&5
+ echo "$as_me:10415: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
- echo "$as_me:9621: result: yes" >&5
+ echo "$as_me:10417: result: yes" >&5
echo "${ECHO_T}yes" >&6
eval 'cf_cv_have_lib_'"$cf_nculib_root"'=yes'
else
echo "$as_me: failed program was:" >&5
cat "conftest.$ac_ext" >&5
-echo "$as_me:9628: result: no" >&5
+echo "$as_me:10424: result: no" >&5
echo "${ECHO_T}no" >&6
cf_search=
@@ -9693,11 +10489,11 @@ cf_search="$cf_library_path_list $cf_search"
for cf_libdir in $cf_search
do
- echo "$as_me:9696: checking for -l$cf_nculib_root in $cf_libdir" >&5
+ echo "$as_me:10492: checking for -l$cf_nculib_root in $cf_libdir" >&5
echo $ECHO_N "checking for -l$cf_nculib_root in $cf_libdir... $ECHO_C" >&6
LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 9700 "configure"
+#line 10496 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
int
@@ -9709,25 +10505,25 @@ initscr()
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:9712: \"$ac_link\"") >&5
+if { (eval echo "$as_me:10508: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:9715: \$? = $ac_status" >&5
+ echo "$as_me:10511: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:9718: \"$ac_try\"") >&5
+ { (eval echo "$as_me:10514: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:9721: \$? = $ac_status" >&5
+ echo "$as_me:10517: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
- echo "$as_me:9723: result: yes" >&5
+ echo "$as_me:10519: result: yes" >&5
echo "${ECHO_T}yes" >&6
eval 'cf_cv_have_lib_'"$cf_nculib_root"'=yes'
break
else
echo "$as_me: failed program was:" >&5
cat "conftest.$ac_ext" >&5
-echo "$as_me:9730: result: no" >&5
+echo "$as_me:10526: result: no" >&5
echo "${ECHO_T}no" >&6
LIBS="$cf_save_LIBS"
fi
@@ -9742,7 +10538,7 @@ fi
eval 'cf_found_library="$cf_cv_have_lib_'"$cf_nculib_root"\"
if test "$cf_found_library" = no ; then
- { { echo "$as_me:9745: error: Cannot link $cf_nculib_root library" >&5
+ { { echo "$as_me:10541: error: Cannot link $cf_nculib_root library" >&5
echo "$as_me: error: Cannot link $cf_nculib_root library" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -9750,7 +10546,7 @@ fi
fi
if test -n "$cf_ncurses_LIBS" ; then
- echo "$as_me:9753: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
+ echo "$as_me:10549: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
echo $ECHO_N "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS... $ECHO_C" >&6
cf_ncurses_SAVE="$LIBS"
for p in $cf_ncurses_LIBS ; do
@@ -9760,7 +10556,7 @@ echo $ECHO_N "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS..
fi
done
cat >"conftest.$ac_ext" <<_ACEOF
-#line 9763 "configure"
+#line 10559 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
int
@@ -9772,23 +10568,23 @@ initscr(); mousemask(0,0); tigetstr((char *)0);
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:9775: \"$ac_link\"") >&5
+if { (eval echo "$as_me:10571: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:9778: \$? = $ac_status" >&5
+ echo "$as_me:10574: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:9781: \"$ac_try\"") >&5
+ { (eval echo "$as_me:10577: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:9784: \$? = $ac_status" >&5
+ echo "$as_me:10580: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
- echo "$as_me:9786: result: yes" >&5
+ echo "$as_me:10582: result: yes" >&5
echo "${ECHO_T}yes" >&6
else
echo "$as_me: failed program was:" >&5
cat "conftest.$ac_ext" >&5
-echo "$as_me:9791: result: no" >&5
+echo "$as_me:10587: result: no" >&5
echo "${ECHO_T}no" >&6
LIBS="$cf_ncurses_SAVE"
fi
@@ -9813,13 +10609,13 @@ cf_ncuconfig_root=$cf_cv_screen
cf_have_ncuconfig=no
if test "x${PKG_CONFIG:=none}" != xnone; then
- echo "$as_me:9816: checking pkg-config for $cf_ncuconfig_root" >&5
+ echo "$as_me:10612: checking pkg-config for $cf_ncuconfig_root" >&5
echo $ECHO_N "checking pkg-config for $cf_ncuconfig_root... $ECHO_C" >&6
if "$PKG_CONFIG" --exists $cf_ncuconfig_root ; then
- echo "$as_me:9819: result: yes" >&5
+ echo "$as_me:10615: result: yes" >&5
echo "${ECHO_T}yes" >&6
- echo "$as_me:9822: checking if the $cf_ncuconfig_root package files work" >&5
+ echo "$as_me:10618: checking if the $cf_ncuconfig_root package files work" >&5
echo $ECHO_N "checking if the $cf_ncuconfig_root package files work... $ECHO_C" >&6
cf_have_ncuconfig=unknown
@@ -9952,7 +10748,7 @@ done
LIBS="$cf_add_libs"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 9955 "configure"
+#line 10751 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
int
@@ -9964,37 +10760,37 @@ initscr(); mousemask(0,0); tigetstr((char *)0);
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:9967: \"$ac_link\"") >&5
+if { (eval echo "$as_me:10763: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:9970: \$? = $ac_status" >&5
+ echo "$as_me:10766: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:9973: \"$ac_try\"") >&5
+ { (eval echo "$as_me:10769: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:9976: \$? = $ac_status" >&5
+ echo "$as_me:10772: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
if test "$cross_compiling" = yes; then
cf_test_ncuconfig=maybe
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 9982 "configure"
+#line 10778 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
int main(void)
- { char *xx = curses_version(); return (xx == 0); }
+ { const char *xx = curses_version(); return (xx == 0); }
_ACEOF
rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:9989: \"$ac_link\"") >&5
+if { (eval echo "$as_me:10785: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:9992: \$? = $ac_status" >&5
+ echo "$as_me:10788: \$? = $ac_status" >&5
(exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:9994: \"$ac_try\"") >&5
+ { (eval echo "$as_me:10790: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:9997: \$? = $ac_status" >&5
+ echo "$as_me:10793: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_test_ncuconfig=yes
else
@@ -10025,12 +10821,38 @@ rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
;;
esac
+for cf_add_cflags in $cf_pkg_cflags
+do
+ case "x$cf_add_cflags" in
+ (x-[DU]*)
+
+cf_tmp_cflag=`echo "x$cf_add_cflags" | sed -e 's/^.//' -e 's/=.*//'`
+while true
+do
+ cf_old_cflag=`echo "x$CFLAGS" | sed -e 's/^.//' -e 's/[ ][ ]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[^ ][^ ]*\\)\?%%" -e 's/^[ ]*//' -e 's%[ ][ ]*-D% -D%g' -e 's%[ ][ ]*-I% -I%g'`
+ test "$CFLAGS" != "$cf_old_cflag" || break
+
+ CFLAGS="$cf_old_cflag"
+done
+
+cf_tmp_cflag=`echo "x$cf_add_cflags" | sed -e 's/^.//' -e 's/=.*//'`
+while true
+do
+ cf_old_cflag=`echo "x$CPPFLAGS" | sed -e 's/^.//' -e 's/[ ][ ]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[^ ][^ ]*\\)\?%%" -e 's/^[ ]*//' -e 's%[ ][ ]*-D% -D%g' -e 's%[ ][ ]*-I% -I%g'`
+ test "$CPPFLAGS" != "$cf_old_cflag" || break
+
+ CPPFLAGS="$cf_old_cflag"
+done
+
+ ;;
+ esac
+
cf_fix_cppflags=no
cf_new_cflags=
cf_new_cppflags=
cf_new_extra_cppflags=
-for cf_add_cflags in $cf_pkg_cflags
+for cf_add_cflags in $cf_add_cflags
do
case "$cf_fix_cppflags" in
(no)
@@ -10123,6 +10945,8 @@ if test -n "$cf_new_extra_cppflags" ; then
fi
+done
+
cf_add_libs="$LIBS"
# reverse order
cf_add_0lib=
@@ -10140,7 +10964,7 @@ done
LIBS="$cf_add_libs"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 10143 "configure"
+#line 10967 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
int
@@ -10152,37 +10976,37 @@ initscr(); mousemask(0,0); tigetstr((char *)0);
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:10155: \"$ac_link\"") >&5
+if { (eval echo "$as_me:10979: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:10158: \$? = $ac_status" >&5
+ echo "$as_me:10982: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:10161: \"$ac_try\"") >&5
+ { (eval echo "$as_me:10985: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:10164: \$? = $ac_status" >&5
+ echo "$as_me:10988: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
if test "$cross_compiling" = yes; then
cf_have_ncuconfig=maybe
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 10170 "configure"
+#line 10994 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
int main(void)
- { char *xx = curses_version(); return (xx == 0); }
+ { const char *xx = curses_version(); return (xx == 0); }
_ACEOF
rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:10177: \"$ac_link\"") >&5
+if { (eval echo "$as_me:11001: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:10180: \$? = $ac_status" >&5
+ echo "$as_me:11004: \$? = $ac_status" >&5
(exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:10182: \"$ac_try\"") >&5
+ { (eval echo "$as_me:11006: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:10185: \$? = $ac_status" >&5
+ echo "$as_me:11009: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_have_ncuconfig=yes
else
@@ -10199,7 +11023,7 @@ cat "conftest.$ac_ext" >&5
cf_have_ncuconfig=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
- echo "$as_me:10202: result: $cf_have_ncuconfig" >&5
+ echo "$as_me:11026: result: $cf_have_ncuconfig" >&5
echo "${ECHO_T}$cf_have_ncuconfig" >&6
test "$cf_have_ncuconfig" = maybe && cf_have_ncuconfig=yes
if test "$cf_have_ncuconfig" != "yes"
@@ -10215,7 +11039,7 @@ EOF
NCURSES_CONFIG_PKG=$cf_ncuconfig_root
-echo "$as_me:10218: checking for terminfo header" >&5
+echo "$as_me:11042: checking for terminfo header" >&5
echo $ECHO_N "checking for terminfo header... $ECHO_C" >&6
if test "${cf_cv_term_header+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -10233,7 +11057,7 @@ esac
for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 10236 "configure"
+#line 11060 "configure"
#include "confdefs.h"
#include <stdio.h>
#include <${cf_cv_ncurses_header:-curses.h}>
@@ -10248,16 +11072,16 @@ int x = auto_left_margin; (void)x
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:10251: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:11075: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:10254: \$? = $ac_status" >&5
+ echo "$as_me:11078: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:10257: \"$ac_try\"") >&5
+ { (eval echo "$as_me:11081: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:10260: \$? = $ac_status" >&5
+ echo "$as_me:11084: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_term_header="$cf_test"
@@ -10273,7 +11097,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
done
fi
-echo "$as_me:10276: result: $cf_cv_term_header" >&5
+echo "$as_me:11100: result: $cf_cv_term_header" >&5
echo "${ECHO_T}$cf_cv_term_header" >&6
# Set definitions to allow ifdef'ing to accommodate subdirectories
@@ -10308,7 +11132,7 @@ esac
fi
else
- echo "$as_me:10311: result: no" >&5
+ echo "$as_me:11135: result: no" >&5
echo "${ECHO_T}no" >&6
NCURSES_CONFIG_PKG=none
fi
@@ -10324,7 +11148,7 @@ if test -n "$ac_tool_prefix"; then
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-echo "$as_me:10327: checking for $ac_word" >&5
+echo "$as_me:11151: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_NCURSES_CONFIG+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -10339,7 +11163,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_NCURSES_CONFIG="$ac_tool_prefix$ac_prog"
-echo "$as_me:10342: found $ac_dir/$ac_word" >&5
+echo "$as_me:11166: found $ac_dir/$ac_word" >&5
break
done
@@ -10347,10 +11171,10 @@ fi
fi
NCURSES_CONFIG=$ac_cv_prog_NCURSES_CONFIG
if test -n "$NCURSES_CONFIG"; then
- echo "$as_me:10350: result: $NCURSES_CONFIG" >&5
+ echo "$as_me:11174: result: $NCURSES_CONFIG" >&5
echo "${ECHO_T}$NCURSES_CONFIG" >&6
else
- echo "$as_me:10353: result: no" >&5
+ echo "$as_me:11177: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -10363,7 +11187,7 @@ if test -z "$NCURSES_CONFIG"; then
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-echo "$as_me:10366: checking for $ac_word" >&5
+echo "$as_me:11190: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_ac_ct_NCURSES_CONFIG+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -10378,7 +11202,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_ac_ct_NCURSES_CONFIG="$ac_prog"
-echo "$as_me:10381: found $ac_dir/$ac_word" >&5
+echo "$as_me:11205: found $ac_dir/$ac_word" >&5
break
done
@@ -10386,10 +11210,10 @@ fi
fi
ac_ct_NCURSES_CONFIG=$ac_cv_prog_ac_ct_NCURSES_CONFIG
if test -n "$ac_ct_NCURSES_CONFIG"; then
- echo "$as_me:10389: result: $ac_ct_NCURSES_CONFIG" >&5
+ echo "$as_me:11213: result: $ac_ct_NCURSES_CONFIG" >&5
echo "${ECHO_T}$ac_ct_NCURSES_CONFIG" >&6
else
- echo "$as_me:10392: result: no" >&5
+ echo "$as_me:11216: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -10402,12 +11226,38 @@ fi
if test "$NCURSES_CONFIG" != none ; then
+for cf_add_cflags in `$NCURSES_CONFIG --cflags`
+do
+ case "x$cf_add_cflags" in
+ (x-[DU]*)
+
+cf_tmp_cflag=`echo "x$cf_add_cflags" | sed -e 's/^.//' -e 's/=.*//'`
+while true
+do
+ cf_old_cflag=`echo "x$CFLAGS" | sed -e 's/^.//' -e 's/[ ][ ]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[^ ][^ ]*\\)\?%%" -e 's/^[ ]*//' -e 's%[ ][ ]*-D% -D%g' -e 's%[ ][ ]*-I% -I%g'`
+ test "$CFLAGS" != "$cf_old_cflag" || break
+
+ CFLAGS="$cf_old_cflag"
+done
+
+cf_tmp_cflag=`echo "x$cf_add_cflags" | sed -e 's/^.//' -e 's/=.*//'`
+while true
+do
+ cf_old_cflag=`echo "x$CPPFLAGS" | sed -e 's/^.//' -e 's/[ ][ ]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[^ ][^ ]*\\)\?%%" -e 's/^[ ]*//' -e 's%[ ][ ]*-D% -D%g' -e 's%[ ][ ]*-I% -I%g'`
+ test "$CPPFLAGS" != "$cf_old_cflag" || break
+
+ CPPFLAGS="$cf_old_cflag"
+done
+
+ ;;
+ esac
+
cf_fix_cppflags=no
cf_new_cflags=
cf_new_cppflags=
cf_new_extra_cppflags=
-for cf_add_cflags in `$NCURSES_CONFIG --cflags`
+for cf_add_cflags in $cf_add_cflags
do
case "$cf_fix_cppflags" in
(no)
@@ -10500,6 +11350,8 @@ if test -n "$cf_new_extra_cppflags" ; then
fi
+done
+
cf_add_libs="$LIBS"
# reverse order
cf_add_0lib=
@@ -10518,7 +11370,7 @@ LIBS="$cf_add_libs"
# even with config script, some packages use no-override for curses.h
-echo "$as_me:10521: checking if we have identified curses headers" >&5
+echo "$as_me:11373: checking if we have identified curses headers" >&5
echo $ECHO_N "checking if we have identified curses headers... $ECHO_C" >&6
if test "${cf_cv_ncurses_header+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -10530,28 +11382,28 @@ for cf_header in \
curses.h $cf_cv_screen/curses.h
do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 10533 "configure"
+#line 11385 "configure"
#include "confdefs.h"
#include <${cf_header}>
int
main (void)
{
-initscr(); tgoto("?", 0,0)
+initscr(); endwin()
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:10545: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:11397: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:10548: \$? = $ac_status" >&5
+ echo "$as_me:11400: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:10551: \"$ac_try\"") >&5
+ { (eval echo "$as_me:11403: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:10554: \$? = $ac_status" >&5
+ echo "$as_me:11406: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_ncurses_header=$cf_header; break
else
@@ -10562,11 +11414,11 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
done
fi
-echo "$as_me:10565: result: $cf_cv_ncurses_header" >&5
+echo "$as_me:11417: result: $cf_cv_ncurses_header" >&5
echo "${ECHO_T}$cf_cv_ncurses_header" >&6
if test "$cf_cv_ncurses_header" = none ; then
- { { echo "$as_me:10569: error: No curses header-files found" >&5
+ { { echo "$as_me:11421: error: No curses header-files found" >&5
echo "$as_me: error: No curses header-files found" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -10576,23 +11428,23 @@ fi
for ac_header in $cf_cv_ncurses_header
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:10579: checking for $ac_header" >&5
+echo "$as_me:11431: checking for $ac_header" >&5
echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 10585 "configure"
+#line 11437 "configure"
#include "confdefs.h"
#include <$ac_header>
_ACEOF
-if { (eval echo "$as_me:10589: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:11441: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:10595: \$? = $ac_status" >&5
+ echo "$as_me:11447: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -10611,7 +11463,7 @@ else
fi
rm -f conftest.err "conftest.$ac_ext"
fi
-echo "$as_me:10614: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
+echo "$as_me:11466: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
echo "${ECHO_T}`eval echo '${'"$as_ac_Header"'}'`" >&6
if test "`eval echo '${'"$as_ac_Header"'}'`" = yes; then
cat >>confdefs.h <<EOF
@@ -10667,7 +11519,7 @@ if test -n "$cf_cv_curses_dir/include/$cf_ncuhdr_root" ; then
CPPFLAGS="${CPPFLAGS}-I$cf_add_incdir"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 10670 "configure"
+#line 11522 "configure"
#include "confdefs.h"
#include <stdio.h>
int
@@ -10679,16 +11531,16 @@ printf("Hello")
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:10682: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:11534: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:10685: \$? = $ac_status" >&5
+ echo "$as_me:11537: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:10688: \"$ac_try\"") >&5
+ { (eval echo "$as_me:11540: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:10691: \$? = $ac_status" >&5
+ echo "$as_me:11543: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
:
else
@@ -10705,7 +11557,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
if test "$cf_have_incdir" = no ; then
test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-echo "${as_me:-configure}:10708: testing adding $cf_add_incdir to include-path ..." 1>&5
+echo "${as_me:-configure}:11560: testing adding $cf_add_incdir to include-path ..." 1>&5
CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
@@ -10724,7 +11576,7 @@ fi
}
-echo "$as_me:10727: checking for $cf_ncuhdr_root header in include-path" >&5
+echo "$as_me:11579: checking for $cf_ncuhdr_root header in include-path" >&5
echo $ECHO_N "checking for $cf_ncuhdr_root header in include-path... $ECHO_C" >&6
if test "${cf_cv_ncurses_h+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -10736,7 +11588,7 @@ else
do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 10739 "configure"
+#line 11591 "configure"
#include "confdefs.h"
#include <$cf_header>
@@ -10751,7 +11603,7 @@ printf("%s\\n", NCURSES_VERSION);
#ifdef __NCURSES_H
printf("old\\n");
#else
- make an error
+ #error __NCURSES_H is not defined
#endif
#endif
@@ -10760,16 +11612,16 @@ printf("old\\n");
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:10763: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:11615: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:10766: \$? = $ac_status" >&5
+ echo "$as_me:11618: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:10769: \"$ac_try\"") >&5
+ { (eval echo "$as_me:11621: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:10772: \$? = $ac_status" >&5
+ echo "$as_me:11624: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_ncurses_h=$cf_header
@@ -10784,14 +11636,14 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
done
fi
-echo "$as_me:10787: result: $cf_cv_ncurses_h" >&5
+echo "$as_me:11639: result: $cf_cv_ncurses_h" >&5
echo "${ECHO_T}$cf_cv_ncurses_h" >&6
if test "$cf_cv_ncurses_h" != no ; then
cf_cv_ncurses_header=$cf_cv_ncurses_h
else
-echo "$as_me:10794: checking for $cf_ncuhdr_root include-path" >&5
+echo "$as_me:11646: checking for $cf_ncuhdr_root include-path" >&5
echo $ECHO_N "checking for $cf_ncuhdr_root include-path... $ECHO_C" >&6
if test "${cf_cv_ncurses_h2+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -10912,7 +11764,7 @@ if test -n "$cf_incdir" ; then
CPPFLAGS="${CPPFLAGS}-I$cf_add_incdir"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 10915 "configure"
+#line 11767 "configure"
#include "confdefs.h"
#include <stdio.h>
int
@@ -10924,16 +11776,16 @@ printf("Hello")
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:10927: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:11779: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:10930: \$? = $ac_status" >&5
+ echo "$as_me:11782: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:10933: \"$ac_try\"") >&5
+ { (eval echo "$as_me:11785: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:10936: \$? = $ac_status" >&5
+ echo "$as_me:11788: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
:
else
@@ -10950,7 +11802,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
if test "$cf_have_incdir" = no ; then
test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-echo "${as_me:-configure}:10953: testing adding $cf_add_incdir to include-path ..." 1>&5
+echo "${as_me:-configure}:11805: testing adding $cf_add_incdir to include-path ..." 1>&5
CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
@@ -10973,7 +11825,7 @@ fi
do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 10976 "configure"
+#line 11828 "configure"
#include "confdefs.h"
#include <$cf_header>
@@ -10988,7 +11840,7 @@ printf("%s\\n", NCURSES_VERSION);
#ifdef __NCURSES_H
printf("old\\n");
#else
- make an error
+ #error __NCURSES_H is not defined
#endif
#endif
@@ -10997,16 +11849,16 @@ printf("old\\n");
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:11000: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:11852: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:11003: \$? = $ac_status" >&5
+ echo "$as_me:11855: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:11006: \"$ac_try\"") >&5
+ { (eval echo "$as_me:11858: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:11009: \$? = $ac_status" >&5
+ echo "$as_me:11861: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_ncurses_h2=$cf_header
@@ -11027,12 +11879,12 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
CPPFLAGS="$cf_save2_CPPFLAGS"
test "$cf_cv_ncurses_h2" != no && break
done
- test "$cf_cv_ncurses_h2" = no && { { echo "$as_me:11030: error: not found" >&5
+ test "$cf_cv_ncurses_h2" = no && { { echo "$as_me:11882: error: not found" >&5
echo "$as_me: error: not found" >&2;}
{ (exit 1); exit 1; }; }
fi
-echo "$as_me:11035: result: $cf_cv_ncurses_h2" >&5
+echo "$as_me:11887: result: $cf_cv_ncurses_h2" >&5
echo "${ECHO_T}$cf_cv_ncurses_h2" >&6
cf_1st_incdir=`echo "$cf_cv_ncurses_h2" | sed -e 's%/[^/]*$%%'`
@@ -11068,7 +11920,7 @@ if test -n "$cf_1st_incdir" ; then
CPPFLAGS="${CPPFLAGS}-I$cf_add_incdir"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 11071 "configure"
+#line 11923 "configure"
#include "confdefs.h"
#include <stdio.h>
int
@@ -11080,16 +11932,16 @@ printf("Hello")
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:11083: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:11935: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:11086: \$? = $ac_status" >&5
+ echo "$as_me:11938: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:11089: \"$ac_try\"") >&5
+ { (eval echo "$as_me:11941: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:11092: \$? = $ac_status" >&5
+ echo "$as_me:11944: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
:
else
@@ -11106,7 +11958,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
if test "$cf_have_incdir" = no ; then
test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-echo "${as_me:-configure}:11109: testing adding $cf_add_incdir to include-path ..." 1>&5
+echo "${as_me:-configure}:11961: testing adding $cf_add_incdir to include-path ..." 1>&5
CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
@@ -11154,7 +12006,7 @@ EOF
;;
esac
-echo "$as_me:11157: checking for terminfo header" >&5
+echo "$as_me:12009: checking for terminfo header" >&5
echo $ECHO_N "checking for terminfo header... $ECHO_C" >&6
if test "${cf_cv_term_header+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -11172,7 +12024,7 @@ esac
for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 11175 "configure"
+#line 12027 "configure"
#include "confdefs.h"
#include <stdio.h>
#include <${cf_cv_ncurses_header:-curses.h}>
@@ -11187,16 +12039,16 @@ int x = auto_left_margin; (void)x
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:11190: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:12042: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:11193: \$? = $ac_status" >&5
+ echo "$as_me:12045: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:11196: \"$ac_try\"") >&5
+ { (eval echo "$as_me:12048: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:11199: \$? = $ac_status" >&5
+ echo "$as_me:12051: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_term_header="$cf_test"
@@ -11212,7 +12064,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
done
fi
-echo "$as_me:11215: result: $cf_cv_term_header" >&5
+echo "$as_me:12067: result: $cf_cv_term_header" >&5
echo "${ECHO_T}$cf_cv_term_header" >&6
# Set definitions to allow ifdef'ing to accommodate subdirectories
@@ -11250,7 +12102,7 @@ cat >>confdefs.h <<\EOF
#define NCURSES 1
EOF
-echo "$as_me:11253: checking for ncurses version" >&5
+echo "$as_me:12105: checking for ncurses version" >&5
echo $ECHO_N "checking for ncurses version... $ECHO_C" >&6
if test "${cf_cv_ncurses_version+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -11276,10 +12128,10 @@ Autoconf "old"
#endif
EOF
cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
- { (eval echo "$as_me:11279: \"$cf_try\"") >&5
+ { (eval echo "$as_me:12131: \"$cf_try\"") >&5
(eval $cf_try) 2>&5
ac_status=$?
- echo "$as_me:11282: \$? = $ac_status" >&5
+ echo "$as_me:12134: \$? = $ac_status" >&5
(exit "$ac_status"); }
if test -f conftest.out ; then
cf_out=`sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%' conftest.out`
@@ -11289,11 +12141,13 @@ EOF
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 11292 "configure"
+#line 12144 "configure"
#include "confdefs.h"
+$ac_includes_default
+
#include <${cf_cv_ncurses_header:-curses.h}>
-#include <stdio.h>
+
int main(void)
{
FILE *fp = fopen("$cf_tempfile", "w");
@@ -11307,22 +12161,22 @@ int main(void)
# ifdef __NCURSES_H
fprintf(fp, "old\\n");
# else
- make an error
+ #error expected ncurses header to define __NCURSES_H
# endif
#endif
${cf_cv_main_return:-return}(0);
}
_ACEOF
rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:11317: \"$ac_link\"") >&5
+if { (eval echo "$as_me:12171: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:11320: \$? = $ac_status" >&5
+ echo "$as_me:12174: \$? = $ac_status" >&5
(exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:11322: \"$ac_try\"") >&5
+ { (eval echo "$as_me:12176: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:11325: \$? = $ac_status" >&5
+ echo "$as_me:12179: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_ncurses_version=`cat $cf_tempfile`
@@ -11336,7 +12190,7 @@ fi
rm -f "$cf_tempfile"
fi
-echo "$as_me:11339: result: $cf_cv_ncurses_version" >&5
+echo "$as_me:12193: result: $cf_cv_ncurses_version" >&5
echo "${ECHO_T}$cf_cv_ncurses_version" >&6
test "$cf_cv_ncurses_version" = no ||
cat >>confdefs.h <<\EOF
@@ -11349,7 +12203,7 @@ cf_nculib_root=$cf_cv_screen
# to link gpm.
cf_ncurses_LIBS=""
cf_ncurses_SAVE="$LIBS"
-echo "$as_me:11352: checking for Gpm_Open in -lgpm" >&5
+echo "$as_me:12206: checking for Gpm_Open in -lgpm" >&5
echo $ECHO_N "checking for Gpm_Open in -lgpm... $ECHO_C" >&6
if test "${ac_cv_lib_gpm_Gpm_Open+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -11357,7 +12211,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lgpm $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 11360 "configure"
+#line 12214 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -11366,7 +12220,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char Gpm_Open ();
+char Gpm_Open (void);
int
main (void)
{
@@ -11376,16 +12230,16 @@ Gpm_Open ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:11379: \"$ac_link\"") >&5
+if { (eval echo "$as_me:12233: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:11382: \$? = $ac_status" >&5
+ echo "$as_me:12236: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:11385: \"$ac_try\"") >&5
+ { (eval echo "$as_me:12239: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:11388: \$? = $ac_status" >&5
+ echo "$as_me:12242: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_gpm_Gpm_Open=yes
else
@@ -11396,10 +12250,10 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:11399: result: $ac_cv_lib_gpm_Gpm_Open" >&5
+echo "$as_me:12253: result: $ac_cv_lib_gpm_Gpm_Open" >&5
echo "${ECHO_T}$ac_cv_lib_gpm_Gpm_Open" >&6
if test "$ac_cv_lib_gpm_Gpm_Open" = yes; then
- echo "$as_me:11402: checking for initscr in -lgpm" >&5
+ echo "$as_me:12256: checking for initscr in -lgpm" >&5
echo $ECHO_N "checking for initscr in -lgpm... $ECHO_C" >&6
if test "${ac_cv_lib_gpm_initscr+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -11407,7 +12261,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lgpm $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 11410 "configure"
+#line 12264 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -11416,7 +12270,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char initscr ();
+char initscr (void);
int
main (void)
{
@@ -11426,16 +12280,16 @@ initscr ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:11429: \"$ac_link\"") >&5
+if { (eval echo "$as_me:12283: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:11432: \$? = $ac_status" >&5
+ echo "$as_me:12286: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:11435: \"$ac_try\"") >&5
+ { (eval echo "$as_me:12289: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:11438: \$? = $ac_status" >&5
+ echo "$as_me:12292: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_gpm_initscr=yes
else
@@ -11446,7 +12300,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:11449: result: $ac_cv_lib_gpm_initscr" >&5
+echo "$as_me:12303: result: $ac_cv_lib_gpm_initscr" >&5
echo "${ECHO_T}$ac_cv_lib_gpm_initscr" >&6
if test "$ac_cv_lib_gpm_initscr" = yes; then
LIBS="$cf_ncurses_SAVE"
@@ -11459,9 +12313,9 @@ fi
case "$host_os" in
(freebsd*)
# This is only necessary if you are linking against an obsolete
- # version of ncurses (but it should do no harm, since it's static).
+ # version of ncurses (but it should do no harm, since it is static).
if test "$cf_nculib_root" = ncurses ; then
- echo "$as_me:11464: checking for tgoto in -lmytinfo" >&5
+ echo "$as_me:12318: checking for tgoto in -lmytinfo" >&5
echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6
if test "${ac_cv_lib_mytinfo_tgoto+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -11469,7 +12323,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lmytinfo $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 11472 "configure"
+#line 12326 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -11478,7 +12332,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char tgoto ();
+char tgoto (void);
int
main (void)
{
@@ -11488,16 +12342,16 @@ tgoto ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:11491: \"$ac_link\"") >&5
+if { (eval echo "$as_me:12345: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:11494: \$? = $ac_status" >&5
+ echo "$as_me:12348: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:11497: \"$ac_try\"") >&5
+ { (eval echo "$as_me:12351: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:11500: \$? = $ac_status" >&5
+ echo "$as_me:12354: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_mytinfo_tgoto=yes
else
@@ -11508,7 +12362,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:11511: result: $ac_cv_lib_mytinfo_tgoto" >&5
+echo "$as_me:12365: result: $ac_cv_lib_mytinfo_tgoto" >&5
echo "${ECHO_T}$ac_cv_lib_mytinfo_tgoto" >&6
if test "$ac_cv_lib_mytinfo_tgoto" = yes; then
cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"
@@ -11557,13 +12411,13 @@ else
eval 'cf_cv_have_lib_'"$cf_nculib_root"'=no'
cf_libdir=""
- echo "$as_me:11560: checking for initscr" >&5
+ echo "$as_me:12414: checking for initscr" >&5
echo $ECHO_N "checking for initscr... $ECHO_C" >&6
if test "${ac_cv_func_initscr+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 11566 "configure"
+#line 12420 "configure"
#include "confdefs.h"
#define initscr autoconf_temporary
#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */
@@ -11594,16 +12448,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:11597: \"$ac_link\"") >&5
+if { (eval echo "$as_me:12451: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:11600: \$? = $ac_status" >&5
+ echo "$as_me:12454: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:11603: \"$ac_try\"") >&5
+ { (eval echo "$as_me:12457: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:11606: \$? = $ac_status" >&5
+ echo "$as_me:12460: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_func_initscr=yes
else
@@ -11613,18 +12467,18 @@ ac_cv_func_initscr=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:11616: result: $ac_cv_func_initscr" >&5
+echo "$as_me:12470: result: $ac_cv_func_initscr" >&5
echo "${ECHO_T}$ac_cv_func_initscr" >&6
if test "$ac_cv_func_initscr" = yes; then
eval 'cf_cv_have_lib_'"$cf_nculib_root"'=yes'
else
cf_save_LIBS="$LIBS"
- echo "$as_me:11623: checking for initscr in -l$cf_nculib_root" >&5
+ echo "$as_me:12477: checking for initscr in -l$cf_nculib_root" >&5
echo $ECHO_N "checking for initscr in -l$cf_nculib_root... $ECHO_C" >&6
LIBS="-l$cf_nculib_root $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 11627 "configure"
+#line 12481 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
int
@@ -11636,25 +12490,25 @@ initscr()
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:11639: \"$ac_link\"") >&5
+if { (eval echo "$as_me:12493: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:11642: \$? = $ac_status" >&5
+ echo "$as_me:12496: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:11645: \"$ac_try\"") >&5
+ { (eval echo "$as_me:12499: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:11648: \$? = $ac_status" >&5
+ echo "$as_me:12502: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
- echo "$as_me:11650: result: yes" >&5
+ echo "$as_me:12504: result: yes" >&5
echo "${ECHO_T}yes" >&6
eval 'cf_cv_have_lib_'"$cf_nculib_root"'=yes'
else
echo "$as_me: failed program was:" >&5
cat "conftest.$ac_ext" >&5
-echo "$as_me:11657: result: no" >&5
+echo "$as_me:12511: result: no" >&5
echo "${ECHO_T}no" >&6
cf_search=
@@ -11722,11 +12576,11 @@ cf_search="$cf_library_path_list $cf_search"
for cf_libdir in $cf_search
do
- echo "$as_me:11725: checking for -l$cf_nculib_root in $cf_libdir" >&5
+ echo "$as_me:12579: checking for -l$cf_nculib_root in $cf_libdir" >&5
echo $ECHO_N "checking for -l$cf_nculib_root in $cf_libdir... $ECHO_C" >&6
LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 11729 "configure"
+#line 12583 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
int
@@ -11738,25 +12592,25 @@ initscr()
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:11741: \"$ac_link\"") >&5
+if { (eval echo "$as_me:12595: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:11744: \$? = $ac_status" >&5
+ echo "$as_me:12598: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:11747: \"$ac_try\"") >&5
+ { (eval echo "$as_me:12601: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:11750: \$? = $ac_status" >&5
+ echo "$as_me:12604: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
- echo "$as_me:11752: result: yes" >&5
+ echo "$as_me:12606: result: yes" >&5
echo "${ECHO_T}yes" >&6
eval 'cf_cv_have_lib_'"$cf_nculib_root"'=yes'
break
else
echo "$as_me: failed program was:" >&5
cat "conftest.$ac_ext" >&5
-echo "$as_me:11759: result: no" >&5
+echo "$as_me:12613: result: no" >&5
echo "${ECHO_T}no" >&6
LIBS="$cf_save_LIBS"
fi
@@ -11771,7 +12625,7 @@ fi
eval 'cf_found_library="$cf_cv_have_lib_'"$cf_nculib_root"\"
if test "$cf_found_library" = no ; then
- { { echo "$as_me:11774: error: Cannot link $cf_nculib_root library" >&5
+ { { echo "$as_me:12628: error: Cannot link $cf_nculib_root library" >&5
echo "$as_me: error: Cannot link $cf_nculib_root library" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -11779,7 +12633,7 @@ fi
fi
if test -n "$cf_ncurses_LIBS" ; then
- echo "$as_me:11782: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
+ echo "$as_me:12636: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
echo $ECHO_N "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS... $ECHO_C" >&6
cf_ncurses_SAVE="$LIBS"
for p in $cf_ncurses_LIBS ; do
@@ -11789,7 +12643,7 @@ echo $ECHO_N "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS..
fi
done
cat >"conftest.$ac_ext" <<_ACEOF
-#line 11792 "configure"
+#line 12646 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
int
@@ -11801,23 +12655,23 @@ initscr(); mousemask(0,0); tigetstr((char *)0);
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:11804: \"$ac_link\"") >&5
+if { (eval echo "$as_me:12658: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:11807: \$? = $ac_status" >&5
+ echo "$as_me:12661: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:11810: \"$ac_try\"") >&5
+ { (eval echo "$as_me:12664: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:11813: \$? = $ac_status" >&5
+ echo "$as_me:12667: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
- echo "$as_me:11815: result: yes" >&5
+ echo "$as_me:12669: result: yes" >&5
echo "${ECHO_T}yes" >&6
else
echo "$as_me: failed program was:" >&5
cat "conftest.$ac_ext" >&5
-echo "$as_me:11820: result: no" >&5
+echo "$as_me:12674: result: no" >&5
echo "${ECHO_T}no" >&6
LIBS="$cf_ncurses_SAVE"
fi
@@ -11837,7 +12691,7 @@ fi
;;
(pdcurses)
- echo "$as_me:11840: checking for X" >&5
+ echo "$as_me:12694: checking for X" >&5
echo $ECHO_N "checking for X... $ECHO_C" >&6
# Check whether --with-x or --without-x was given.
@@ -11941,17 +12795,17 @@ if test "$ac_x_includes" = no; then
# Guess where to find include files, by looking for Intrinsic.h.
# First, try using that file with no special directory specified.
cat >"conftest.$ac_ext" <<_ACEOF
-#line 11944 "configure"
+#line 12798 "configure"
#include "confdefs.h"
#include <X11/Intrinsic.h>
_ACEOF
-if { (eval echo "$as_me:11948: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:12802: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:11954: \$? = $ac_status" >&5
+ echo "$as_me:12808: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -11984,7 +12838,7 @@ if test "$ac_x_libraries" = no; then
ac_save_LIBS=$LIBS
LIBS="-lXt $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 11987 "configure"
+#line 12841 "configure"
#include "confdefs.h"
#include <X11/Intrinsic.h>
int
@@ -11996,16 +12850,16 @@ XtMalloc (0)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:11999: \"$ac_link\"") >&5
+if { (eval echo "$as_me:12853: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:12002: \$? = $ac_status" >&5
+ echo "$as_me:12856: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:12005: \"$ac_try\"") >&5
+ { (eval echo "$as_me:12859: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:12008: \$? = $ac_status" >&5
+ echo "$as_me:12862: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
LIBS=$ac_save_LIBS
# We can link X programs with no special library path.
@@ -12043,7 +12897,7 @@ fi
fi # $with_x != no
if test "$have_x" != yes; then
- echo "$as_me:12046: result: $have_x" >&5
+ echo "$as_me:12900: result: $have_x" >&5
echo "${ECHO_T}$have_x" >&6
no_x=yes
else
@@ -12053,7 +12907,7 @@ else
# Update the cache value to reflect the command line values.
ac_cv_have_x="have_x=yes \
ac_x_includes=$x_includes ac_x_libraries=$x_libraries"
- echo "$as_me:12056: result: libraries $x_libraries, headers $x_includes" >&5
+ echo "$as_me:12910: result: libraries $x_libraries, headers $x_includes" >&5
echo "${ECHO_T}libraries $x_libraries, headers $x_includes" >&6
fi
@@ -12080,11 +12934,11 @@ else
# others require no space. Words are not sufficient . . . .
case `(uname -sr) 2>/dev/null` in
"SunOS 5"*)
- echo "$as_me:12083: checking whether -R must be followed by a space" >&5
+ echo "$as_me:12937: checking whether -R must be followed by a space" >&5
echo $ECHO_N "checking whether -R must be followed by a space... $ECHO_C" >&6
ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 12087 "configure"
+#line 12941 "configure"
#include "confdefs.h"
int
@@ -12096,16 +12950,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:12099: \"$ac_link\"") >&5
+if { (eval echo "$as_me:12953: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:12102: \$? = $ac_status" >&5
+ echo "$as_me:12956: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:12105: \"$ac_try\"") >&5
+ { (eval echo "$as_me:12959: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:12108: \$? = $ac_status" >&5
+ echo "$as_me:12962: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_R_nospace=yes
else
@@ -12115,13 +12969,13 @@ ac_R_nospace=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
if test $ac_R_nospace = yes; then
- echo "$as_me:12118: result: no" >&5
+ echo "$as_me:12972: result: no" >&5
echo "${ECHO_T}no" >&6
X_LIBS="$X_LIBS -R$x_libraries"
else
LIBS="$ac_xsave_LIBS -R $x_libraries"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 12124 "configure"
+#line 12978 "configure"
#include "confdefs.h"
int
@@ -12133,16 +12987,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:12136: \"$ac_link\"") >&5
+if { (eval echo "$as_me:12990: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:12139: \$? = $ac_status" >&5
+ echo "$as_me:12993: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:12142: \"$ac_try\"") >&5
+ { (eval echo "$as_me:12996: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:12145: \$? = $ac_status" >&5
+ echo "$as_me:12999: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_R_space=yes
else
@@ -12152,11 +13006,11 @@ ac_R_space=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
if test $ac_R_space = yes; then
- echo "$as_me:12155: result: yes" >&5
+ echo "$as_me:13009: result: yes" >&5
echo "${ECHO_T}yes" >&6
X_LIBS="$X_LIBS -R $x_libraries"
else
- echo "$as_me:12159: result: neither works" >&5
+ echo "$as_me:13013: result: neither works" >&5
echo "${ECHO_T}neither works" >&6
fi
fi
@@ -12176,7 +13030,7 @@ echo "${ECHO_T}neither works" >&6
# the Alpha needs dnet_stub (dnet does not exist).
ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 12179 "configure"
+#line 13033 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -12185,7 +13039,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char XOpenDisplay ();
+char XOpenDisplay (void);
int
main (void)
{
@@ -12195,22 +13049,22 @@ XOpenDisplay ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:12198: \"$ac_link\"") >&5
+if { (eval echo "$as_me:13052: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:12201: \$? = $ac_status" >&5
+ echo "$as_me:13055: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:12204: \"$ac_try\"") >&5
+ { (eval echo "$as_me:13058: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:12207: \$? = $ac_status" >&5
+ echo "$as_me:13061: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
:
else
echo "$as_me: failed program was:" >&5
cat "conftest.$ac_ext" >&5
-echo "$as_me:12213: checking for dnet_ntoa in -ldnet" >&5
+echo "$as_me:13067: checking for dnet_ntoa in -ldnet" >&5
echo $ECHO_N "checking for dnet_ntoa in -ldnet... $ECHO_C" >&6
if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -12218,7 +13072,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-ldnet $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 12221 "configure"
+#line 13075 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -12227,7 +13081,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char dnet_ntoa ();
+char dnet_ntoa (void);
int
main (void)
{
@@ -12237,16 +13091,16 @@ dnet_ntoa ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:12240: \"$ac_link\"") >&5
+if { (eval echo "$as_me:13094: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:12243: \$? = $ac_status" >&5
+ echo "$as_me:13097: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:12246: \"$ac_try\"") >&5
+ { (eval echo "$as_me:13100: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:12249: \$? = $ac_status" >&5
+ echo "$as_me:13103: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_dnet_dnet_ntoa=yes
else
@@ -12257,14 +13111,14 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:12260: result: $ac_cv_lib_dnet_dnet_ntoa" >&5
+echo "$as_me:13114: result: $ac_cv_lib_dnet_dnet_ntoa" >&5
echo "${ECHO_T}$ac_cv_lib_dnet_dnet_ntoa" >&6
if test "$ac_cv_lib_dnet_dnet_ntoa" = yes; then
X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet"
fi
if test $ac_cv_lib_dnet_dnet_ntoa = no; then
- echo "$as_me:12267: checking for dnet_ntoa in -ldnet_stub" >&5
+ echo "$as_me:13121: checking for dnet_ntoa in -ldnet_stub" >&5
echo $ECHO_N "checking for dnet_ntoa in -ldnet_stub... $ECHO_C" >&6
if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -12272,7 +13126,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-ldnet_stub $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 12275 "configure"
+#line 13129 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -12281,7 +13135,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char dnet_ntoa ();
+char dnet_ntoa (void);
int
main (void)
{
@@ -12291,16 +13145,16 @@ dnet_ntoa ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:12294: \"$ac_link\"") >&5
+if { (eval echo "$as_me:13148: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:12297: \$? = $ac_status" >&5
+ echo "$as_me:13151: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:12300: \"$ac_try\"") >&5
+ { (eval echo "$as_me:13154: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:12303: \$? = $ac_status" >&5
+ echo "$as_me:13157: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_dnet_stub_dnet_ntoa=yes
else
@@ -12311,7 +13165,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:12314: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5
+echo "$as_me:13168: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5
echo "${ECHO_T}$ac_cv_lib_dnet_stub_dnet_ntoa" >&6
if test "$ac_cv_lib_dnet_stub_dnet_ntoa" = yes; then
X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"
@@ -12330,13 +13184,13 @@ rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
# on Irix 5.2, according to T.E. Dickey.
# The functions gethostbyname, getservbyname, and inet_addr are
# in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking.
- echo "$as_me:12333: checking for gethostbyname" >&5
+ echo "$as_me:13187: checking for gethostbyname" >&5
echo $ECHO_N "checking for gethostbyname... $ECHO_C" >&6
if test "${ac_cv_func_gethostbyname+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 12339 "configure"
+#line 13193 "configure"
#include "confdefs.h"
#define gethostbyname autoconf_temporary
#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */
@@ -12367,16 +13221,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:12370: \"$ac_link\"") >&5
+if { (eval echo "$as_me:13224: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:12373: \$? = $ac_status" >&5
+ echo "$as_me:13227: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:12376: \"$ac_try\"") >&5
+ { (eval echo "$as_me:13230: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:12379: \$? = $ac_status" >&5
+ echo "$as_me:13233: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_func_gethostbyname=yes
else
@@ -12386,11 +13240,11 @@ ac_cv_func_gethostbyname=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:12389: result: $ac_cv_func_gethostbyname" >&5
+echo "$as_me:13243: result: $ac_cv_func_gethostbyname" >&5
echo "${ECHO_T}$ac_cv_func_gethostbyname" >&6
if test $ac_cv_func_gethostbyname = no; then
- echo "$as_me:12393: checking for gethostbyname in -lnsl" >&5
+ echo "$as_me:13247: checking for gethostbyname in -lnsl" >&5
echo $ECHO_N "checking for gethostbyname in -lnsl... $ECHO_C" >&6
if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -12398,7 +13252,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lnsl $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 12401 "configure"
+#line 13255 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -12407,7 +13261,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char gethostbyname ();
+char gethostbyname (void);
int
main (void)
{
@@ -12417,16 +13271,16 @@ gethostbyname ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:12420: \"$ac_link\"") >&5
+if { (eval echo "$as_me:13274: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:12423: \$? = $ac_status" >&5
+ echo "$as_me:13277: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:12426: \"$ac_try\"") >&5
+ { (eval echo "$as_me:13280: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:12429: \$? = $ac_status" >&5
+ echo "$as_me:13283: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_nsl_gethostbyname=yes
else
@@ -12437,14 +13291,14 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:12440: result: $ac_cv_lib_nsl_gethostbyname" >&5
+echo "$as_me:13294: result: $ac_cv_lib_nsl_gethostbyname" >&5
echo "${ECHO_T}$ac_cv_lib_nsl_gethostbyname" >&6
if test "$ac_cv_lib_nsl_gethostbyname" = yes; then
X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl"
fi
if test $ac_cv_lib_nsl_gethostbyname = no; then
- echo "$as_me:12447: checking for gethostbyname in -lbsd" >&5
+ echo "$as_me:13301: checking for gethostbyname in -lbsd" >&5
echo $ECHO_N "checking for gethostbyname in -lbsd... $ECHO_C" >&6
if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -12452,7 +13306,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lbsd $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 12455 "configure"
+#line 13309 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -12461,7 +13315,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char gethostbyname ();
+char gethostbyname (void);
int
main (void)
{
@@ -12471,16 +13325,16 @@ gethostbyname ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:12474: \"$ac_link\"") >&5
+if { (eval echo "$as_me:13328: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:12477: \$? = $ac_status" >&5
+ echo "$as_me:13331: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:12480: \"$ac_try\"") >&5
+ { (eval echo "$as_me:13334: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:12483: \$? = $ac_status" >&5
+ echo "$as_me:13337: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_bsd_gethostbyname=yes
else
@@ -12491,7 +13345,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:12494: result: $ac_cv_lib_bsd_gethostbyname" >&5
+echo "$as_me:13348: result: $ac_cv_lib_bsd_gethostbyname" >&5
echo "${ECHO_T}$ac_cv_lib_bsd_gethostbyname" >&6
if test "$ac_cv_lib_bsd_gethostbyname" = yes; then
X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd"
@@ -12507,13 +13361,13 @@ fi
# variants that don't use the nameserver (or something). -lsocket
# must be given before -lnsl if both are needed. We assume that
# if connect needs -lnsl, so does gethostbyname.
- echo "$as_me:12510: checking for connect" >&5
+ echo "$as_me:13364: checking for connect" >&5
echo $ECHO_N "checking for connect... $ECHO_C" >&6
if test "${ac_cv_func_connect+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 12516 "configure"
+#line 13370 "configure"
#include "confdefs.h"
#define connect autoconf_temporary
#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */
@@ -12544,16 +13398,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:12547: \"$ac_link\"") >&5
+if { (eval echo "$as_me:13401: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:12550: \$? = $ac_status" >&5
+ echo "$as_me:13404: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:12553: \"$ac_try\"") >&5
+ { (eval echo "$as_me:13407: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:12556: \$? = $ac_status" >&5
+ echo "$as_me:13410: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_func_connect=yes
else
@@ -12563,11 +13417,11 @@ ac_cv_func_connect=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:12566: result: $ac_cv_func_connect" >&5
+echo "$as_me:13420: result: $ac_cv_func_connect" >&5
echo "${ECHO_T}$ac_cv_func_connect" >&6
if test $ac_cv_func_connect = no; then
- echo "$as_me:12570: checking for connect in -lsocket" >&5
+ echo "$as_me:13424: checking for connect in -lsocket" >&5
echo $ECHO_N "checking for connect in -lsocket... $ECHO_C" >&6
if test "${ac_cv_lib_socket_connect+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -12575,7 +13429,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 12578 "configure"
+#line 13432 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -12584,7 +13438,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char connect ();
+char connect (void);
int
main (void)
{
@@ -12594,16 +13448,16 @@ connect ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:12597: \"$ac_link\"") >&5
+if { (eval echo "$as_me:13451: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:12600: \$? = $ac_status" >&5
+ echo "$as_me:13454: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:12603: \"$ac_try\"") >&5
+ { (eval echo "$as_me:13457: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:12606: \$? = $ac_status" >&5
+ echo "$as_me:13460: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_socket_connect=yes
else
@@ -12614,7 +13468,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:12617: result: $ac_cv_lib_socket_connect" >&5
+echo "$as_me:13471: result: $ac_cv_lib_socket_connect" >&5
echo "${ECHO_T}$ac_cv_lib_socket_connect" >&6
if test "$ac_cv_lib_socket_connect" = yes; then
X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS"
@@ -12623,13 +13477,13 @@ fi
fi
# Guillermo Gomez says -lposix is necessary on A/UX.
- echo "$as_me:12626: checking for remove" >&5
+ echo "$as_me:13480: checking for remove" >&5
echo $ECHO_N "checking for remove... $ECHO_C" >&6
if test "${ac_cv_func_remove+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 12632 "configure"
+#line 13486 "configure"
#include "confdefs.h"
#define remove autoconf_temporary
#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */
@@ -12660,16 +13514,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:12663: \"$ac_link\"") >&5
+if { (eval echo "$as_me:13517: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:12666: \$? = $ac_status" >&5
+ echo "$as_me:13520: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:12669: \"$ac_try\"") >&5
+ { (eval echo "$as_me:13523: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:12672: \$? = $ac_status" >&5
+ echo "$as_me:13526: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_func_remove=yes
else
@@ -12679,11 +13533,11 @@ ac_cv_func_remove=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:12682: result: $ac_cv_func_remove" >&5
+echo "$as_me:13536: result: $ac_cv_func_remove" >&5
echo "${ECHO_T}$ac_cv_func_remove" >&6
if test $ac_cv_func_remove = no; then
- echo "$as_me:12686: checking for remove in -lposix" >&5
+ echo "$as_me:13540: checking for remove in -lposix" >&5
echo $ECHO_N "checking for remove in -lposix... $ECHO_C" >&6
if test "${ac_cv_lib_posix_remove+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -12691,7 +13545,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lposix $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 12694 "configure"
+#line 13548 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -12700,7 +13554,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char remove ();
+char remove (void);
int
main (void)
{
@@ -12710,16 +13564,16 @@ remove ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:12713: \"$ac_link\"") >&5
+if { (eval echo "$as_me:13567: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:12716: \$? = $ac_status" >&5
+ echo "$as_me:13570: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:12719: \"$ac_try\"") >&5
+ { (eval echo "$as_me:13573: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:12722: \$? = $ac_status" >&5
+ echo "$as_me:13576: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_posix_remove=yes
else
@@ -12730,7 +13584,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:12733: result: $ac_cv_lib_posix_remove" >&5
+echo "$as_me:13587: result: $ac_cv_lib_posix_remove" >&5
echo "${ECHO_T}$ac_cv_lib_posix_remove" >&6
if test "$ac_cv_lib_posix_remove" = yes; then
X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix"
@@ -12739,13 +13593,13 @@ fi
fi
# BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
- echo "$as_me:12742: checking for shmat" >&5
+ echo "$as_me:13596: checking for shmat" >&5
echo $ECHO_N "checking for shmat... $ECHO_C" >&6
if test "${ac_cv_func_shmat+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 12748 "configure"
+#line 13602 "configure"
#include "confdefs.h"
#define shmat autoconf_temporary
#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */
@@ -12776,16 +13630,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:12779: \"$ac_link\"") >&5
+if { (eval echo "$as_me:13633: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:12782: \$? = $ac_status" >&5
+ echo "$as_me:13636: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:12785: \"$ac_try\"") >&5
+ { (eval echo "$as_me:13639: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:12788: \$? = $ac_status" >&5
+ echo "$as_me:13642: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_func_shmat=yes
else
@@ -12795,11 +13649,11 @@ ac_cv_func_shmat=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:12798: result: $ac_cv_func_shmat" >&5
+echo "$as_me:13652: result: $ac_cv_func_shmat" >&5
echo "${ECHO_T}$ac_cv_func_shmat" >&6
if test $ac_cv_func_shmat = no; then
- echo "$as_me:12802: checking for shmat in -lipc" >&5
+ echo "$as_me:13656: checking for shmat in -lipc" >&5
echo $ECHO_N "checking for shmat in -lipc... $ECHO_C" >&6
if test "${ac_cv_lib_ipc_shmat+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -12807,7 +13661,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lipc $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 12810 "configure"
+#line 13664 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -12816,7 +13670,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char shmat ();
+char shmat (void);
int
main (void)
{
@@ -12826,16 +13680,16 @@ shmat ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:12829: \"$ac_link\"") >&5
+if { (eval echo "$as_me:13683: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:12832: \$? = $ac_status" >&5
+ echo "$as_me:13686: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:12835: \"$ac_try\"") >&5
+ { (eval echo "$as_me:13689: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:12838: \$? = $ac_status" >&5
+ echo "$as_me:13692: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_ipc_shmat=yes
else
@@ -12846,7 +13700,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:12849: result: $ac_cv_lib_ipc_shmat" >&5
+echo "$as_me:13703: result: $ac_cv_lib_ipc_shmat" >&5
echo "${ECHO_T}$ac_cv_lib_ipc_shmat" >&6
if test "$ac_cv_lib_ipc_shmat" = yes; then
X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc"
@@ -12864,7 +13718,7 @@ fi
# These have to be linked with before -lX11, unlike the other
# libraries we check for below, so use a different variable.
# John Interrante, Karl Berry
- echo "$as_me:12867: checking for IceConnectionNumber in -lICE" >&5
+ echo "$as_me:13721: checking for IceConnectionNumber in -lICE" >&5
echo $ECHO_N "checking for IceConnectionNumber in -lICE... $ECHO_C" >&6
if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -12872,7 +13726,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lICE $X_EXTRA_LIBS $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 12875 "configure"
+#line 13729 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -12881,7 +13735,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char IceConnectionNumber ();
+char IceConnectionNumber (void);
int
main (void)
{
@@ -12891,16 +13745,16 @@ IceConnectionNumber ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:12894: \"$ac_link\"") >&5
+if { (eval echo "$as_me:13748: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:12897: \$? = $ac_status" >&5
+ echo "$as_me:13751: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:12900: \"$ac_try\"") >&5
+ { (eval echo "$as_me:13754: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:12903: \$? = $ac_status" >&5
+ echo "$as_me:13757: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_ICE_IceConnectionNumber=yes
else
@@ -12911,7 +13765,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:12914: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5
+echo "$as_me:13768: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5
echo "${ECHO_T}$ac_cv_lib_ICE_IceConnectionNumber" >&6
if test "$ac_cv_lib_ICE_IceConnectionNumber" = yes; then
X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE"
@@ -12923,7 +13777,7 @@ fi
cf_x_athena=${cf_x_athena:-Xaw}
-echo "$as_me:12926: checking if you want to link with Xaw 3d library" >&5
+echo "$as_me:13780: checking if you want to link with Xaw 3d library" >&5
echo $ECHO_N "checking if you want to link with Xaw 3d library... $ECHO_C" >&6
withval=
@@ -12934,14 +13788,14 @@ if test "${with_Xaw3d+set}" = set; then
fi;
if test "$withval" = yes ; then
cf_x_athena=Xaw3d
- echo "$as_me:12937: result: yes" >&5
+ echo "$as_me:13791: result: yes" >&5
echo "${ECHO_T}yes" >&6
else
- echo "$as_me:12940: result: no" >&5
+ echo "$as_me:13794: result: no" >&5
echo "${ECHO_T}no" >&6
fi
-echo "$as_me:12944: checking if you want to link with Xaw 3d xft library" >&5
+echo "$as_me:13798: checking if you want to link with Xaw 3d xft library" >&5
echo $ECHO_N "checking if you want to link with Xaw 3d xft library... $ECHO_C" >&6
withval=
@@ -12952,14 +13806,14 @@ if test "${with_Xaw3dxft+set}" = set; then
fi;
if test "$withval" = yes ; then
cf_x_athena=Xaw3dxft
- echo "$as_me:12955: result: yes" >&5
+ echo "$as_me:13809: result: yes" >&5
echo "${ECHO_T}yes" >&6
else
- echo "$as_me:12958: result: no" >&5
+ echo "$as_me:13812: result: no" >&5
echo "${ECHO_T}no" >&6
fi
-echo "$as_me:12962: checking if you want to link with neXT Athena library" >&5
+echo "$as_me:13816: checking if you want to link with neXT Athena library" >&5
echo $ECHO_N "checking if you want to link with neXT Athena library... $ECHO_C" >&6
withval=
@@ -12970,14 +13824,14 @@ if test "${with_neXtaw+set}" = set; then
fi;
if test "$withval" = yes ; then
cf_x_athena=neXtaw
- echo "$as_me:12973: result: yes" >&5
+ echo "$as_me:13827: result: yes" >&5
echo "${ECHO_T}yes" >&6
else
- echo "$as_me:12976: result: no" >&5
+ echo "$as_me:13830: result: no" >&5
echo "${ECHO_T}no" >&6
fi
-echo "$as_me:12980: checking if you want to link with Athena-Plus library" >&5
+echo "$as_me:13834: checking if you want to link with Athena-Plus library" >&5
echo $ECHO_N "checking if you want to link with Athena-Plus library... $ECHO_C" >&6
withval=
@@ -12988,10 +13842,10 @@ if test "${with_XawPlus+set}" = set; then
fi;
if test "$withval" = yes ; then
cf_x_athena=XawPlus
- echo "$as_me:12991: result: yes" >&5
+ echo "$as_me:13845: result: yes" >&5
echo "${ECHO_T}yes" >&6
else
- echo "$as_me:12994: result: no" >&5
+ echo "$as_me:13848: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -13011,17 +13865,17 @@ if test "$PKG_CONFIG" != none ; then
if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists "$cf_athena_pkg"; then
test -n "$verbose" && echo " found package $cf_athena_pkg" 1>&6
-echo "${as_me:-configure}:13014: testing found package $cf_athena_pkg ..." 1>&5
+echo "${as_me:-configure}:13868: testing found package $cf_athena_pkg ..." 1>&5
cf_pkgconfig_incs="`$PKG_CONFIG --cflags "$cf_athena_pkg" 2>/dev/null`"
cf_pkgconfig_libs="`$PKG_CONFIG --libs "$cf_athena_pkg" 2>/dev/null`"
test -n "$verbose" && echo " package $cf_athena_pkg CFLAGS: $cf_pkgconfig_incs" 1>&6
-echo "${as_me:-configure}:13020: testing package $cf_athena_pkg CFLAGS: $cf_pkgconfig_incs ..." 1>&5
+echo "${as_me:-configure}:13874: testing package $cf_athena_pkg CFLAGS: $cf_pkgconfig_incs ..." 1>&5
test -n "$verbose" && echo " package $cf_athena_pkg LIBS: $cf_pkgconfig_libs" 1>&6
-echo "${as_me:-configure}:13024: testing package $cf_athena_pkg LIBS: $cf_pkgconfig_libs ..." 1>&5
+echo "${as_me:-configure}:13878: testing package $cf_athena_pkg LIBS: $cf_pkgconfig_libs ..." 1>&5
cf_fix_cppflags=no
cf_new_cflags=
@@ -13152,22 +14006,23 @@ EOF
LIBS=`echo "$LIBS " | sed -e 's/ / /g' -e 's%-l'"$cf_trim_lib"' %%' -e 's/ $//'`
test -n "$verbose" && echo " ..trimmed $LIBS" 1>&6
-echo "${as_me:-configure}:13155: testing ..trimmed $LIBS ..." 1>&5
+echo "${as_me:-configure}:14009: testing ..trimmed $LIBS ..." 1>&5
;;
esac
done
-echo "$as_me:13161: checking for usable $cf_x_athena/Xmu package" >&5
+echo "$as_me:14015: checking for usable $cf_x_athena/Xmu package" >&5
echo $ECHO_N "checking for usable $cf_x_athena/Xmu package... $ECHO_C" >&6
if test "${cf_cv_xaw_compat+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 13168 "configure"
+#line 14022 "configure"
#include "confdefs.h"
+$ac_includes_default
#include <X11/Xmu/CharSet.h>
int
@@ -13182,16 +14037,16 @@ int check = XmuCompareISOLatin1("big", "small");
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:13185: \"$ac_link\"") >&5
+if { (eval echo "$as_me:14040: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:13188: \$? = $ac_status" >&5
+ echo "$as_me:14043: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:13191: \"$ac_try\"") >&5
+ { (eval echo "$as_me:14046: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:13194: \$? = $ac_status" >&5
+ echo "$as_me:14049: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_xaw_compat=yes
else
@@ -13201,7 +14056,7 @@ cf_cv_xaw_compat=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:13204: result: $cf_cv_xaw_compat" >&5
+echo "$as_me:14059: result: $cf_cv_xaw_compat" >&5
echo "${ECHO_T}$cf_cv_xaw_compat" >&6
if test "$cf_cv_xaw_compat" = no
@@ -13213,7 +14068,7 @@ echo "${ECHO_T}$cf_cv_xaw_compat" >&6
(*)
test -n "$verbose" && echo " work around broken package" 1>&6
-echo "${as_me:-configure}:13216: testing work around broken package ..." 1>&5
+echo "${as_me:-configure}:14071: testing work around broken package ..." 1>&5
cf_save_xmu="$LIBS"
cf_first_lib=`echo "$cf_save_xmu" | sed -e 's/^ *//' -e 's/ .*//'`
@@ -13221,17 +14076,17 @@ echo "${as_me:-configure}:13216: testing work around broken package ..." 1>&5
if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists "xmu"; then
test -n "$verbose" && echo " found package xmu" 1>&6
-echo "${as_me:-configure}:13224: testing found package xmu ..." 1>&5
+echo "${as_me:-configure}:14079: testing found package xmu ..." 1>&5
cf_pkgconfig_incs="`$PKG_CONFIG --cflags "xmu" 2>/dev/null`"
cf_pkgconfig_libs="`$PKG_CONFIG --libs "xmu" 2>/dev/null`"
test -n "$verbose" && echo " package xmu CFLAGS: $cf_pkgconfig_incs" 1>&6
-echo "${as_me:-configure}:13230: testing package xmu CFLAGS: $cf_pkgconfig_incs ..." 1>&5
+echo "${as_me:-configure}:14085: testing package xmu CFLAGS: $cf_pkgconfig_incs ..." 1>&5
test -n "$verbose" && echo " package xmu LIBS: $cf_pkgconfig_libs" 1>&6
-echo "${as_me:-configure}:13234: testing package xmu LIBS: $cf_pkgconfig_libs ..." 1>&5
+echo "${as_me:-configure}:14089: testing package xmu LIBS: $cf_pkgconfig_libs ..." 1>&5
cf_fix_cppflags=no
cf_new_cflags=
@@ -13351,12 +14206,12 @@ LIBS="$cf_add_libs"
test -n "$verbose" && echo " ...before $LIBS" 1>&6
-echo "${as_me:-configure}:13354: testing ...before $LIBS ..." 1>&5
+echo "${as_me:-configure}:14209: testing ...before $LIBS ..." 1>&5
LIBS=`echo "$LIBS" | sed -e "s/[ ][ ]*/ /g" -e "s%$cf_first_lib %$cf_first_lib $cf_pkgconfig_libs %" -e 's% % %g'`
test -n "$verbose" && echo " ...after $LIBS" 1>&6
-echo "${as_me:-configure}:13359: testing ...after $LIBS ..." 1>&5
+echo "${as_me:-configure}:14214: testing ...after $LIBS ..." 1>&5
else
cf_pkgconfig_incs=
@@ -13364,12 +14219,12 @@ else
test -n "$verbose" && echo " ...before $LIBS" 1>&6
-echo "${as_me:-configure}:13367: testing ...before $LIBS ..." 1>&5
+echo "${as_me:-configure}:14222: testing ...before $LIBS ..." 1>&5
LIBS=`echo "$LIBS" | sed -e "s/[ ][ ]*/ /g" -e "s%$cf_first_lib %$cf_first_lib -lXmu %" -e 's% % %g'`
test -n "$verbose" && echo " ...after $LIBS" 1>&6
-echo "${as_me:-configure}:13372: testing ...after $LIBS ..." 1>&5
+echo "${as_me:-configure}:14227: testing ...after $LIBS ..." 1>&5
fi
@@ -13380,7 +14235,7 @@ fi
LIBS=`echo "$LIBS " | sed -e 's/ / /g' -e 's%-l'"$cf_trim_lib"' %%' -e 's/ $//'`
test -n "$verbose" && echo " ..trimmed $LIBS" 1>&6
-echo "${as_me:-configure}:13383: testing ..trimmed $LIBS ..." 1>&5
+echo "${as_me:-configure}:14238: testing ..trimmed $LIBS ..." 1>&5
;;
esac
@@ -13405,17 +14260,17 @@ if test -z "$cf_x_athena_lib" ; then
if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists "Xext"; then
test -n "$verbose" && echo " found package Xext" 1>&6
-echo "${as_me:-configure}:13408: testing found package Xext ..." 1>&5
+echo "${as_me:-configure}:14263: testing found package Xext ..." 1>&5
cf_pkgconfig_incs="`$PKG_CONFIG --cflags "Xext" 2>/dev/null`"
cf_pkgconfig_libs="`$PKG_CONFIG --libs "Xext" 2>/dev/null`"
test -n "$verbose" && echo " package Xext CFLAGS: $cf_pkgconfig_incs" 1>&6
-echo "${as_me:-configure}:13414: testing package Xext CFLAGS: $cf_pkgconfig_incs ..." 1>&5
+echo "${as_me:-configure}:14269: testing package Xext CFLAGS: $cf_pkgconfig_incs ..." 1>&5
test -n "$verbose" && echo " package Xext LIBS: $cf_pkgconfig_libs" 1>&6
-echo "${as_me:-configure}:13418: testing package Xext LIBS: $cf_pkgconfig_libs ..." 1>&5
+echo "${as_me:-configure}:14273: testing package Xext LIBS: $cf_pkgconfig_libs ..." 1>&5
cf_fix_cppflags=no
cf_new_cflags=
@@ -13536,7 +14391,7 @@ else
cf_pkgconfig_incs=
cf_pkgconfig_libs=
- echo "$as_me:13539: checking for XextCreateExtension in -lXext" >&5
+ echo "$as_me:14394: checking for XextCreateExtension in -lXext" >&5
echo $ECHO_N "checking for XextCreateExtension in -lXext... $ECHO_C" >&6
if test "${ac_cv_lib_Xext_XextCreateExtension+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -13544,7 +14399,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lXext $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 13547 "configure"
+#line 14402 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -13553,7 +14408,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char XextCreateExtension ();
+char XextCreateExtension (void);
int
main (void)
{
@@ -13563,16 +14418,16 @@ XextCreateExtension ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:13566: \"$ac_link\"") >&5
+if { (eval echo "$as_me:14421: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:13569: \$? = $ac_status" >&5
+ echo "$as_me:14424: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:13572: \"$ac_try\"") >&5
+ { (eval echo "$as_me:14427: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:13575: \$? = $ac_status" >&5
+ echo "$as_me:14430: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_Xext_XextCreateExtension=yes
else
@@ -13583,7 +14438,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:13586: result: $ac_cv_lib_Xext_XextCreateExtension" >&5
+echo "$as_me:14441: result: $ac_cv_lib_Xext_XextCreateExtension" >&5
echo "${ECHO_T}$ac_cv_lib_Xext_XextCreateExtension" >&6
if test "$ac_cv_lib_Xext_XextCreateExtension" = yes; then
@@ -13619,17 +14474,17 @@ then
if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists "x11"; then
test -n "$verbose" && echo " found package x11" 1>&6
-echo "${as_me:-configure}:13622: testing found package x11 ..." 1>&5
+echo "${as_me:-configure}:14477: testing found package x11 ..." 1>&5
cf_pkgconfig_incs="`$PKG_CONFIG --cflags "x11" 2>/dev/null`"
cf_pkgconfig_libs="`$PKG_CONFIG --libs "x11" 2>/dev/null`"
test -n "$verbose" && echo " package x11 CFLAGS: $cf_pkgconfig_incs" 1>&6
-echo "${as_me:-configure}:13628: testing package x11 CFLAGS: $cf_pkgconfig_incs ..." 1>&5
+echo "${as_me:-configure}:14483: testing package x11 CFLAGS: $cf_pkgconfig_incs ..." 1>&5
test -n "$verbose" && echo " package x11 LIBS: $cf_pkgconfig_libs" 1>&6
-echo "${as_me:-configure}:13632: testing package x11 LIBS: $cf_pkgconfig_libs ..." 1>&5
+echo "${as_me:-configure}:14487: testing package x11 LIBS: $cf_pkgconfig_libs ..." 1>&5
cf_fix_cppflags=no
cf_new_cflags=
@@ -13749,24 +14604,24 @@ LIBS="$cf_add_libs"
else
cf_pkgconfig_incs=
cf_pkgconfig_libs=
- { echo "$as_me:13752: WARNING: unable to find X11 library" >&5
+ { echo "$as_me:14607: WARNING: unable to find X11 library" >&5
echo "$as_me: WARNING: unable to find X11 library" >&2;}
fi
if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists "ice"; then
test -n "$verbose" && echo " found package ice" 1>&6
-echo "${as_me:-configure}:13759: testing found package ice ..." 1>&5
+echo "${as_me:-configure}:14614: testing found package ice ..." 1>&5
cf_pkgconfig_incs="`$PKG_CONFIG --cflags "ice" 2>/dev/null`"
cf_pkgconfig_libs="`$PKG_CONFIG --libs "ice" 2>/dev/null`"
test -n "$verbose" && echo " package ice CFLAGS: $cf_pkgconfig_incs" 1>&6
-echo "${as_me:-configure}:13765: testing package ice CFLAGS: $cf_pkgconfig_incs ..." 1>&5
+echo "${as_me:-configure}:14620: testing package ice CFLAGS: $cf_pkgconfig_incs ..." 1>&5
test -n "$verbose" && echo " package ice LIBS: $cf_pkgconfig_libs" 1>&6
-echo "${as_me:-configure}:13769: testing package ice LIBS: $cf_pkgconfig_libs ..." 1>&5
+echo "${as_me:-configure}:14624: testing package ice LIBS: $cf_pkgconfig_libs ..." 1>&5
cf_fix_cppflags=no
cf_new_cflags=
@@ -13886,24 +14741,24 @@ LIBS="$cf_add_libs"
else
cf_pkgconfig_incs=
cf_pkgconfig_libs=
- { echo "$as_me:13889: WARNING: unable to find ICE library" >&5
+ { echo "$as_me:14744: WARNING: unable to find ICE library" >&5
echo "$as_me: WARNING: unable to find ICE library" >&2;}
fi
if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists "sm"; then
test -n "$verbose" && echo " found package sm" 1>&6
-echo "${as_me:-configure}:13896: testing found package sm ..." 1>&5
+echo "${as_me:-configure}:14751: testing found package sm ..." 1>&5
cf_pkgconfig_incs="`$PKG_CONFIG --cflags "sm" 2>/dev/null`"
cf_pkgconfig_libs="`$PKG_CONFIG --libs "sm" 2>/dev/null`"
test -n "$verbose" && echo " package sm CFLAGS: $cf_pkgconfig_incs" 1>&6
-echo "${as_me:-configure}:13902: testing package sm CFLAGS: $cf_pkgconfig_incs ..." 1>&5
+echo "${as_me:-configure}:14757: testing package sm CFLAGS: $cf_pkgconfig_incs ..." 1>&5
test -n "$verbose" && echo " package sm LIBS: $cf_pkgconfig_libs" 1>&6
-echo "${as_me:-configure}:13906: testing package sm LIBS: $cf_pkgconfig_libs ..." 1>&5
+echo "${as_me:-configure}:14761: testing package sm LIBS: $cf_pkgconfig_libs ..." 1>&5
cf_fix_cppflags=no
cf_new_cflags=
@@ -14023,24 +14878,24 @@ LIBS="$cf_add_libs"
else
cf_pkgconfig_incs=
cf_pkgconfig_libs=
- { echo "$as_me:14026: WARNING: unable to find SM library" >&5
+ { echo "$as_me:14881: WARNING: unable to find SM library" >&5
echo "$as_me: WARNING: unable to find SM library" >&2;}
fi
if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists "xt"; then
test -n "$verbose" && echo " found package xt" 1>&6
-echo "${as_me:-configure}:14033: testing found package xt ..." 1>&5
+echo "${as_me:-configure}:14888: testing found package xt ..." 1>&5
cf_pkgconfig_incs="`$PKG_CONFIG --cflags "xt" 2>/dev/null`"
cf_pkgconfig_libs="`$PKG_CONFIG --libs "xt" 2>/dev/null`"
test -n "$verbose" && echo " package xt CFLAGS: $cf_pkgconfig_incs" 1>&6
-echo "${as_me:-configure}:14039: testing package xt CFLAGS: $cf_pkgconfig_incs ..." 1>&5
+echo "${as_me:-configure}:14894: testing package xt CFLAGS: $cf_pkgconfig_incs ..." 1>&5
test -n "$verbose" && echo " package xt LIBS: $cf_pkgconfig_libs" 1>&6
-echo "${as_me:-configure}:14043: testing package xt LIBS: $cf_pkgconfig_libs ..." 1>&5
+echo "${as_me:-configure}:14898: testing package xt LIBS: $cf_pkgconfig_libs ..." 1>&5
cf_fix_cppflags=no
cf_new_cflags=
@@ -14160,7 +15015,7 @@ LIBS="$cf_add_libs"
else
cf_pkgconfig_incs=
cf_pkgconfig_libs=
- { echo "$as_me:14163: WARNING: unable to find Xt library" >&5
+ { echo "$as_me:15018: WARNING: unable to find Xt library" >&5
echo "$as_me: WARNING: unable to find Xt library" >&2;}
fi
@@ -14173,17 +15028,17 @@ cf_have_X_LIBS=no
if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists "xt"; then
test -n "$verbose" && echo " found package xt" 1>&6
-echo "${as_me:-configure}:14176: testing found package xt ..." 1>&5
+echo "${as_me:-configure}:15031: testing found package xt ..." 1>&5
cf_pkgconfig_incs="`$PKG_CONFIG --cflags "xt" 2>/dev/null`"
cf_pkgconfig_libs="`$PKG_CONFIG --libs "xt" 2>/dev/null`"
test -n "$verbose" && echo " package xt CFLAGS: $cf_pkgconfig_incs" 1>&6
-echo "${as_me:-configure}:14182: testing package xt CFLAGS: $cf_pkgconfig_incs ..." 1>&5
+echo "${as_me:-configure}:15037: testing package xt CFLAGS: $cf_pkgconfig_incs ..." 1>&5
test -n "$verbose" && echo " package xt LIBS: $cf_pkgconfig_libs" 1>&6
-echo "${as_me:-configure}:14186: testing package xt LIBS: $cf_pkgconfig_libs ..." 1>&5
+echo "${as_me:-configure}:15041: testing package xt LIBS: $cf_pkgconfig_libs ..." 1>&5
cf_fix_cppflags=no
cf_new_cflags=
@@ -14304,16 +15159,17 @@ LIBS="$cf_add_libs"
;;
(*)
# we have an "xt" package, but it may omit Xt's dependency on X11
-echo "$as_me:14307: checking for usable X dependency" >&5
+echo "$as_me:15162: checking for usable X dependency" >&5
echo $ECHO_N "checking for usable X dependency... $ECHO_C" >&6
if test "${cf_cv_xt_x11_compat+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 14314 "configure"
+#line 15169 "configure"
#include "confdefs.h"
+$ac_includes_default
#include <X11/Xlib.h>
int
@@ -14330,16 +15186,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:14333: \"$ac_link\"") >&5
+if { (eval echo "$as_me:15189: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:14336: \$? = $ac_status" >&5
+ echo "$as_me:15192: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:14339: \"$ac_try\"") >&5
+ { (eval echo "$as_me:15195: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:14342: \$? = $ac_status" >&5
+ echo "$as_me:15198: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_xt_x11_compat=yes
else
@@ -14349,30 +15205,30 @@ cf_cv_xt_x11_compat=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:14352: result: $cf_cv_xt_x11_compat" >&5
+echo "$as_me:15208: result: $cf_cv_xt_x11_compat" >&5
echo "${ECHO_T}$cf_cv_xt_x11_compat" >&6
if test "$cf_cv_xt_x11_compat" = no
then
test -n "$verbose" && echo " work around broken X11 dependency" 1>&6
-echo "${as_me:-configure}:14358: testing work around broken X11 dependency ..." 1>&5
+echo "${as_me:-configure}:15214: testing work around broken X11 dependency ..." 1>&5
# 2010/11/19 - good enough until a working Xt on Xcb is delivered.
if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists "x11"; then
test -n "$verbose" && echo " found package x11" 1>&6
-echo "${as_me:-configure}:14365: testing found package x11 ..." 1>&5
+echo "${as_me:-configure}:15221: testing found package x11 ..." 1>&5
cf_pkgconfig_incs="`$PKG_CONFIG --cflags "x11" 2>/dev/null`"
cf_pkgconfig_libs="`$PKG_CONFIG --libs "x11" 2>/dev/null`"
test -n "$verbose" && echo " package x11 CFLAGS: $cf_pkgconfig_incs" 1>&6
-echo "${as_me:-configure}:14371: testing package x11 CFLAGS: $cf_pkgconfig_incs ..." 1>&5
+echo "${as_me:-configure}:15227: testing package x11 CFLAGS: $cf_pkgconfig_incs ..." 1>&5
test -n "$verbose" && echo " package x11 LIBS: $cf_pkgconfig_libs" 1>&6
-echo "${as_me:-configure}:14375: testing package x11 LIBS: $cf_pkgconfig_libs ..." 1>&5
+echo "${as_me:-configure}:15231: testing package x11 LIBS: $cf_pkgconfig_libs ..." 1>&5
cf_fix_cppflags=no
cf_new_cflags=
@@ -14495,12 +15351,12 @@ else
test -n "$verbose" && echo " ...before $LIBS" 1>&6
-echo "${as_me:-configure}:14498: testing ...before $LIBS ..." 1>&5
+echo "${as_me:-configure}:15354: testing ...before $LIBS ..." 1>&5
LIBS=`echo "$LIBS" | sed -e "s/[ ][ ]*/ /g" -e "s%-lXt %-lXt -lX11 %" -e 's% % %g'`
test -n "$verbose" && echo " ...after $LIBS" 1>&6
-echo "${as_me:-configure}:14503: testing ...after $LIBS ..." 1>&5
+echo "${as_me:-configure}:15359: testing ...after $LIBS ..." 1>&5
fi
@@ -14508,16 +15364,17 @@ fi
;;
esac
-echo "$as_me:14511: checking for usable X Toolkit package" >&5
+echo "$as_me:15367: checking for usable X Toolkit package" >&5
echo $ECHO_N "checking for usable X Toolkit package... $ECHO_C" >&6
if test "${cf_cv_xt_ice_compat+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 14518 "configure"
+#line 15374 "configure"
#include "confdefs.h"
+$ac_includes_default
#include <X11/Shell.h>
int
@@ -14530,16 +15387,16 @@ int num = IceConnectionNumber(0); (void) num
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:14533: \"$ac_link\"") >&5
+if { (eval echo "$as_me:15390: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:14536: \$? = $ac_status" >&5
+ echo "$as_me:15393: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:14539: \"$ac_try\"") >&5
+ { (eval echo "$as_me:15396: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:14542: \$? = $ac_status" >&5
+ echo "$as_me:15399: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_xt_ice_compat=yes
else
@@ -14549,7 +15406,7 @@ cf_cv_xt_ice_compat=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:14552: result: $cf_cv_xt_ice_compat" >&5
+echo "$as_me:15409: result: $cf_cv_xt_ice_compat" >&5
echo "${ECHO_T}$cf_cv_xt_ice_compat" >&6
if test "$cf_cv_xt_ice_compat" = no
@@ -14563,22 +15420,22 @@ echo "${ECHO_T}$cf_cv_xt_ice_compat" >&6
(*)
test -n "$verbose" && echo " work around broken ICE dependency" 1>&6
-echo "${as_me:-configure}:14566: testing work around broken ICE dependency ..." 1>&5
+echo "${as_me:-configure}:15423: testing work around broken ICE dependency ..." 1>&5
if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists "ice"; then
test -n "$verbose" && echo " found package ice" 1>&6
-echo "${as_me:-configure}:14571: testing found package ice ..." 1>&5
+echo "${as_me:-configure}:15428: testing found package ice ..." 1>&5
cf_pkgconfig_incs="`$PKG_CONFIG --cflags "ice" 2>/dev/null`"
cf_pkgconfig_libs="`$PKG_CONFIG --libs "ice" 2>/dev/null`"
test -n "$verbose" && echo " package ice CFLAGS: $cf_pkgconfig_incs" 1>&6
-echo "${as_me:-configure}:14577: testing package ice CFLAGS: $cf_pkgconfig_incs ..." 1>&5
+echo "${as_me:-configure}:15434: testing package ice CFLAGS: $cf_pkgconfig_incs ..." 1>&5
test -n "$verbose" && echo " package ice LIBS: $cf_pkgconfig_libs" 1>&6
-echo "${as_me:-configure}:14581: testing package ice LIBS: $cf_pkgconfig_libs ..." 1>&5
+echo "${as_me:-configure}:15438: testing package ice LIBS: $cf_pkgconfig_libs ..." 1>&5
cf_fix_cppflags=no
cf_new_cflags=
@@ -14697,17 +15554,17 @@ LIBS="$cf_add_libs"
if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists "sm"; then
test -n "$verbose" && echo " found package sm" 1>&6
-echo "${as_me:-configure}:14700: testing found package sm ..." 1>&5
+echo "${as_me:-configure}:15557: testing found package sm ..." 1>&5
cf_pkgconfig_incs="`$PKG_CONFIG --cflags "sm" 2>/dev/null`"
cf_pkgconfig_libs="`$PKG_CONFIG --libs "sm" 2>/dev/null`"
test -n "$verbose" && echo " package sm CFLAGS: $cf_pkgconfig_incs" 1>&6
-echo "${as_me:-configure}:14706: testing package sm CFLAGS: $cf_pkgconfig_incs ..." 1>&5
+echo "${as_me:-configure}:15563: testing package sm CFLAGS: $cf_pkgconfig_incs ..." 1>&5
test -n "$verbose" && echo " package sm LIBS: $cf_pkgconfig_libs" 1>&6
-echo "${as_me:-configure}:14710: testing package sm LIBS: $cf_pkgconfig_libs ..." 1>&5
+echo "${as_me:-configure}:15567: testing package sm LIBS: $cf_pkgconfig_libs ..." 1>&5
cf_fix_cppflags=no
cf_new_cflags=
@@ -14836,12 +15693,12 @@ else
test -n "$verbose" && echo " ...before $LIBS" 1>&6
-echo "${as_me:-configure}:14839: testing ...before $LIBS ..." 1>&5
+echo "${as_me:-configure}:15696: testing ...before $LIBS ..." 1>&5
LIBS=`echo "$LIBS" | sed -e "s/[ ][ ]*/ /g" -e "s%-lXt %-lXt $X_PRE_LIBS %" -e 's% % %g'`
test -n "$verbose" && echo " ...after $LIBS" 1>&6
-echo "${as_me:-configure}:14844: testing ...after $LIBS ..." 1>&5
+echo "${as_me:-configure}:15701: testing ...after $LIBS ..." 1>&5
fi
@@ -14861,7 +15718,7 @@ else
test -n "$verbose" && echo " checking additions to CFLAGS" 1>&6
-echo "${as_me:-configure}:14864: testing checking additions to CFLAGS ..." 1>&5
+echo "${as_me:-configure}:15721: testing checking additions to CFLAGS ..." 1>&5
cf_check_cflags="$CFLAGS"
cf_check_cppflags="$CPPFLAGS"
@@ -14946,7 +15803,7 @@ done
if test -n "$cf_new_cflags" ; then
test -n "$verbose" && echo " add to \$CFLAGS $cf_new_cflags" 1>&6
-echo "${as_me:-configure}:14949: testing add to \$CFLAGS $cf_new_cflags ..." 1>&5
+echo "${as_me:-configure}:15806: testing add to \$CFLAGS $cf_new_cflags ..." 1>&5
test -n "$CFLAGS" && CFLAGS="$CFLAGS "
CFLAGS="${CFLAGS}$cf_new_cflags"
@@ -14956,7 +15813,7 @@ fi
if test -n "$cf_new_cppflags" ; then
test -n "$verbose" && echo " add to \$CPPFLAGS $cf_new_cppflags" 1>&6
-echo "${as_me:-configure}:14959: testing add to \$CPPFLAGS $cf_new_cppflags ..." 1>&5
+echo "${as_me:-configure}:15816: testing add to \$CPPFLAGS $cf_new_cppflags ..." 1>&5
test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS "
CPPFLAGS="${CPPFLAGS}$cf_new_cppflags"
@@ -14966,7 +15823,7 @@ fi
if test -n "$cf_new_extra_cppflags" ; then
test -n "$verbose" && echo " add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags" 1>&6
-echo "${as_me:-configure}:14969: testing add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags ..." 1>&5
+echo "${as_me:-configure}:15826: testing add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags ..." 1>&5
test -n "$EXTRA_CPPFLAGS" && EXTRA_CPPFLAGS="$EXTRA_CPPFLAGS "
EXTRA_CPPFLAGS="${EXTRA_CPPFLAGS}$cf_new_extra_cppflags"
@@ -14975,7 +15832,7 @@ fi
if test "x$cf_check_cflags" != "x$CFLAGS" ; then
cat >"conftest.$ac_ext" <<_ACEOF
-#line 14978 "configure"
+#line 15835 "configure"
#include "confdefs.h"
#include <stdio.h>
int
@@ -14987,16 +15844,16 @@ printf("Hello world");
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:14990: \"$ac_link\"") >&5
+if { (eval echo "$as_me:15847: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:14993: \$? = $ac_status" >&5
+ echo "$as_me:15850: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:14996: \"$ac_try\"") >&5
+ { (eval echo "$as_me:15853: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:14999: \$? = $ac_status" >&5
+ echo "$as_me:15856: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
:
else
@@ -15004,12 +15861,12 @@ else
cat "conftest.$ac_ext" >&5
test -n "$verbose" && echo " test-compile failed. Undoing change to \$CFLAGS" 1>&6
-echo "${as_me:-configure}:15007: testing test-compile failed. Undoing change to \$CFLAGS ..." 1>&5
+echo "${as_me:-configure}:15864: testing test-compile failed. Undoing change to \$CFLAGS ..." 1>&5
if test "x$cf_check_cppflags" != "x$CPPFLAGS" ; then
test -n "$verbose" && echo " but keeping change to \$CPPFLAGS" 1>&6
-echo "${as_me:-configure}:15012: testing but keeping change to \$CPPFLAGS ..." 1>&5
+echo "${as_me:-configure}:15869: testing but keeping change to \$CPPFLAGS ..." 1>&5
fi
CFLAGS="$cf_check_cflags"
@@ -15017,13 +15874,13 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
- echo "$as_me:15020: checking for XOpenDisplay" >&5
+ echo "$as_me:15877: checking for XOpenDisplay" >&5
echo $ECHO_N "checking for XOpenDisplay... $ECHO_C" >&6
if test "${ac_cv_func_XOpenDisplay+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 15026 "configure"
+#line 15883 "configure"
#include "confdefs.h"
#define XOpenDisplay autoconf_temporary
#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */
@@ -15054,16 +15911,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:15057: \"$ac_link\"") >&5
+if { (eval echo "$as_me:15914: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:15060: \$? = $ac_status" >&5
+ echo "$as_me:15917: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:15063: \"$ac_try\"") >&5
+ { (eval echo "$as_me:15920: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:15066: \$? = $ac_status" >&5
+ echo "$as_me:15923: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_func_XOpenDisplay=yes
else
@@ -15073,13 +15930,13 @@ ac_cv_func_XOpenDisplay=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:15076: result: $ac_cv_func_XOpenDisplay" >&5
+echo "$as_me:15933: result: $ac_cv_func_XOpenDisplay" >&5
echo "${ECHO_T}$ac_cv_func_XOpenDisplay" >&6
if test "$ac_cv_func_XOpenDisplay" = yes; then
:
else
- echo "$as_me:15082: checking for XOpenDisplay in -lX11" >&5
+ echo "$as_me:15939: checking for XOpenDisplay in -lX11" >&5
echo $ECHO_N "checking for XOpenDisplay in -lX11... $ECHO_C" >&6
if test "${ac_cv_lib_X11_XOpenDisplay+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -15087,7 +15944,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lX11 $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 15090 "configure"
+#line 15947 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -15096,7 +15953,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char XOpenDisplay ();
+char XOpenDisplay (void);
int
main (void)
{
@@ -15106,16 +15963,16 @@ XOpenDisplay ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:15109: \"$ac_link\"") >&5
+if { (eval echo "$as_me:15966: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:15112: \$? = $ac_status" >&5
+ echo "$as_me:15969: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:15115: \"$ac_try\"") >&5
+ { (eval echo "$as_me:15972: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:15118: \$? = $ac_status" >&5
+ echo "$as_me:15975: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_X11_XOpenDisplay=yes
else
@@ -15126,7 +15983,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:15129: result: $ac_cv_lib_X11_XOpenDisplay" >&5
+echo "$as_me:15986: result: $ac_cv_lib_X11_XOpenDisplay" >&5
echo "${ECHO_T}$ac_cv_lib_X11_XOpenDisplay" >&6
if test "$ac_cv_lib_X11_XOpenDisplay" = yes; then
@@ -15150,13 +16007,13 @@ fi
fi
- echo "$as_me:15153: checking for XtAppInitialize" >&5
+ echo "$as_me:16010: checking for XtAppInitialize" >&5
echo $ECHO_N "checking for XtAppInitialize... $ECHO_C" >&6
if test "${ac_cv_func_XtAppInitialize+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 15159 "configure"
+#line 16016 "configure"
#include "confdefs.h"
#define XtAppInitialize autoconf_temporary
#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */
@@ -15187,16 +16044,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:15190: \"$ac_link\"") >&5
+if { (eval echo "$as_me:16047: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:15193: \$? = $ac_status" >&5
+ echo "$as_me:16050: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:15196: \"$ac_try\"") >&5
+ { (eval echo "$as_me:16053: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:15199: \$? = $ac_status" >&5
+ echo "$as_me:16056: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_func_XtAppInitialize=yes
else
@@ -15206,13 +16063,13 @@ ac_cv_func_XtAppInitialize=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:15209: result: $ac_cv_func_XtAppInitialize" >&5
+echo "$as_me:16066: result: $ac_cv_func_XtAppInitialize" >&5
echo "${ECHO_T}$ac_cv_func_XtAppInitialize" >&6
if test "$ac_cv_func_XtAppInitialize" = yes; then
:
else
- echo "$as_me:15215: checking for XtAppInitialize in -lXt" >&5
+ echo "$as_me:16072: checking for XtAppInitialize in -lXt" >&5
echo $ECHO_N "checking for XtAppInitialize in -lXt... $ECHO_C" >&6
if test "${ac_cv_lib_Xt_XtAppInitialize+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -15220,7 +16077,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lXt $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 15223 "configure"
+#line 16080 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -15229,7 +16086,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char XtAppInitialize ();
+char XtAppInitialize (void);
int
main (void)
{
@@ -15239,16 +16096,16 @@ XtAppInitialize ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:15242: \"$ac_link\"") >&5
+if { (eval echo "$as_me:16099: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:15245: \$? = $ac_status" >&5
+ echo "$as_me:16102: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:15248: \"$ac_try\"") >&5
+ { (eval echo "$as_me:16105: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:15251: \$? = $ac_status" >&5
+ echo "$as_me:16108: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_Xt_XtAppInitialize=yes
else
@@ -15259,7 +16116,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:15262: result: $ac_cv_lib_Xt_XtAppInitialize" >&5
+echo "$as_me:16119: result: $ac_cv_lib_Xt_XtAppInitialize" >&5
echo "${ECHO_T}$ac_cv_lib_Xt_XtAppInitialize" >&6
if test "$ac_cv_lib_Xt_XtAppInitialize" = yes; then
@@ -15276,7 +16133,7 @@ fi
fi
if test "$cf_have_X_LIBS" = no ; then
- { echo "$as_me:15279: WARNING: Unable to successfully link X Toolkit library (-lXt) with
+ { echo "$as_me:16136: WARNING: Unable to successfully link X Toolkit library (-lXt) with
test program. You will have to check and add the proper libraries by hand
to makefile." >&5
echo "$as_me: WARNING: Unable to successfully link X Toolkit library (-lXt) with
@@ -15317,14 +16174,14 @@ done
test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS "
CPPFLAGS="${CPPFLAGS}-I$cf_path/include"
- echo "$as_me:15320: checking for $cf_test in $cf_path" >&5
+ echo "$as_me:16177: checking for $cf_test in $cf_path" >&5
echo $ECHO_N "checking for $cf_test in $cf_path... $ECHO_C" >&6
else
- echo "$as_me:15323: checking for $cf_test" >&5
+ echo "$as_me:16180: checking for $cf_test" >&5
echo $ECHO_N "checking for $cf_test... $ECHO_C" >&6
fi
cat >"conftest.$ac_ext" <<_ACEOF
-#line 15327 "configure"
+#line 16184 "configure"
#include "confdefs.h"
#include <X11/Intrinsic.h>
@@ -15338,16 +16195,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:15341: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:16198: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:15344: \$? = $ac_status" >&5
+ echo "$as_me:16201: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:15347: \"$ac_try\"") >&5
+ { (eval echo "$as_me:16204: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:15350: \$? = $ac_status" >&5
+ echo "$as_me:16207: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_result=yes
else
@@ -15356,7 +16213,7 @@ cat "conftest.$ac_ext" >&5
cf_result=no
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
- echo "$as_me:15359: result: $cf_result" >&5
+ echo "$as_me:16216: result: $cf_result" >&5
echo "${ECHO_T}$cf_result" >&6
LIBS="$cf_save_LIBS_CF_X_ATHENA_CPPFLAGS"
@@ -15372,7 +16229,7 @@ CPPFLAGS="$cf_save_CPPFLAGS_CF_X_ATHENA_CPPFLAGS"
done
if test -z "$cf_x_athena_inc" ; then
- { echo "$as_me:15375: WARNING: Unable to find Athena header files" >&5
+ { echo "$as_me:16232: WARNING: Unable to find Athena header files" >&5
echo "$as_me: WARNING: Unable to find Athena header files" >&2;}
elif test "$cf_x_athena_inc" != default ; then
@@ -15437,12 +16294,13 @@ for cf_add_1lib in $cf_add_0lib; do
done
LIBS="$cf_add_libs"
- echo "$as_me:15440: checking for $cf_test in $cf_libs" >&5
+ echo "$as_me:16297: checking for $cf_test in $cf_libs" >&5
echo $ECHO_N "checking for $cf_test in $cf_libs... $ECHO_C" >&6
cat >"conftest.$ac_ext" <<_ACEOF
-#line 15443 "configure"
+#line 16300 "configure"
#include "confdefs.h"
+$ac_includes_default
#include <X11/Intrinsic.h>
#include <X11/$cf_x_athena_root/SimpleMenu.h>
@@ -15456,16 +16314,16 @@ $cf_test((XtAppContext) 0)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:15459: \"$ac_link\"") >&5
+if { (eval echo "$as_me:16317: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:15462: \$? = $ac_status" >&5
+ echo "$as_me:16320: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:15465: \"$ac_try\"") >&5
+ { (eval echo "$as_me:16323: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:15468: \$? = $ac_status" >&5
+ echo "$as_me:16326: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_result=yes
else
@@ -15474,7 +16332,7 @@ cat "conftest.$ac_ext" >&5
cf_result=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
- echo "$as_me:15477: result: $cf_result" >&5
+ echo "$as_me:16335: result: $cf_result" >&5
echo "${ECHO_T}$cf_result" >&6
LIBS="$cf_save_LIBS_CF_X_ATHENA_LIBS"
@@ -15491,7 +16349,7 @@ CPPFLAGS="$cf_save_CPPFLAGS_CF_X_ATHENA_LIBS"
done
if test -z "$cf_x_athena_lib" ; then
- { { echo "$as_me:15494: error: Unable to successfully link Athena library (-l$cf_x_athena_root) with test program" >&5
+ { { echo "$as_me:16352: error: Unable to successfully link Athena library (-l$cf_x_athena_root) with test program" >&5
echo "$as_me: error: Unable to successfully link Athena library (-l$cf_x_athena_root) with test program" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -15525,7 +16383,7 @@ if test -n "$ac_tool_prefix"; then
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-echo "$as_me:15528: checking for $ac_word" >&5
+echo "$as_me:16386: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_XCURSES_CONFIG+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -15540,7 +16398,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_XCURSES_CONFIG="$ac_tool_prefix$ac_prog"
-echo "$as_me:15543: found $ac_dir/$ac_word" >&5
+echo "$as_me:16401: found $ac_dir/$ac_word" >&5
break
done
@@ -15548,10 +16406,10 @@ fi
fi
XCURSES_CONFIG=$ac_cv_prog_XCURSES_CONFIG
if test -n "$XCURSES_CONFIG"; then
- echo "$as_me:15551: result: $XCURSES_CONFIG" >&5
+ echo "$as_me:16409: result: $XCURSES_CONFIG" >&5
echo "${ECHO_T}$XCURSES_CONFIG" >&6
else
- echo "$as_me:15554: result: no" >&5
+ echo "$as_me:16412: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -15564,7 +16422,7 @@ if test -z "$XCURSES_CONFIG"; then
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-echo "$as_me:15567: checking for $ac_word" >&5
+echo "$as_me:16425: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_ac_ct_XCURSES_CONFIG+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -15579,7 +16437,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_ac_ct_XCURSES_CONFIG="$ac_prog"
-echo "$as_me:15582: found $ac_dir/$ac_word" >&5
+echo "$as_me:16440: found $ac_dir/$ac_word" >&5
break
done
@@ -15587,10 +16445,10 @@ fi
fi
ac_ct_XCURSES_CONFIG=$ac_cv_prog_ac_ct_XCURSES_CONFIG
if test -n "$ac_ct_XCURSES_CONFIG"; then
- echo "$as_me:15590: result: $ac_ct_XCURSES_CONFIG" >&5
+ echo "$as_me:16448: result: $ac_ct_XCURSES_CONFIG" >&5
echo "${ECHO_T}$ac_ct_XCURSES_CONFIG" >&6
else
- echo "$as_me:15593: result: no" >&5
+ echo "$as_me:16451: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -15725,7 +16583,7 @@ LDFLAGS="$LDFLAGS $X_LIBS"
test -n "$verbose" && echo " checking additions to CFLAGS" 1>&6
-echo "${as_me:-configure}:15728: testing checking additions to CFLAGS ..." 1>&5
+echo "${as_me:-configure}:16586: testing checking additions to CFLAGS ..." 1>&5
cf_check_cflags="$CFLAGS"
cf_check_cppflags="$CPPFLAGS"
@@ -15810,7 +16668,7 @@ done
if test -n "$cf_new_cflags" ; then
test -n "$verbose" && echo " add to \$CFLAGS $cf_new_cflags" 1>&6
-echo "${as_me:-configure}:15813: testing add to \$CFLAGS $cf_new_cflags ..." 1>&5
+echo "${as_me:-configure}:16671: testing add to \$CFLAGS $cf_new_cflags ..." 1>&5
test -n "$CFLAGS" && CFLAGS="$CFLAGS "
CFLAGS="${CFLAGS}$cf_new_cflags"
@@ -15820,7 +16678,7 @@ fi
if test -n "$cf_new_cppflags" ; then
test -n "$verbose" && echo " add to \$CPPFLAGS $cf_new_cppflags" 1>&6
-echo "${as_me:-configure}:15823: testing add to \$CPPFLAGS $cf_new_cppflags ..." 1>&5
+echo "${as_me:-configure}:16681: testing add to \$CPPFLAGS $cf_new_cppflags ..." 1>&5
test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS "
CPPFLAGS="${CPPFLAGS}$cf_new_cppflags"
@@ -15830,7 +16688,7 @@ fi
if test -n "$cf_new_extra_cppflags" ; then
test -n "$verbose" && echo " add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags" 1>&6
-echo "${as_me:-configure}:15833: testing add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags ..." 1>&5
+echo "${as_me:-configure}:16691: testing add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags ..." 1>&5
test -n "$EXTRA_CPPFLAGS" && EXTRA_CPPFLAGS="$EXTRA_CPPFLAGS "
EXTRA_CPPFLAGS="${EXTRA_CPPFLAGS}$cf_new_extra_cppflags"
@@ -15839,7 +16697,7 @@ fi
if test "x$cf_check_cflags" != "x$CFLAGS" ; then
cat >"conftest.$ac_ext" <<_ACEOF
-#line 15842 "configure"
+#line 16700 "configure"
#include "confdefs.h"
#include <stdio.h>
int
@@ -15851,16 +16709,16 @@ printf("Hello world");
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:15854: \"$ac_link\"") >&5
+if { (eval echo "$as_me:16712: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:15857: \$? = $ac_status" >&5
+ echo "$as_me:16715: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:15860: \"$ac_try\"") >&5
+ { (eval echo "$as_me:16718: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:15863: \$? = $ac_status" >&5
+ echo "$as_me:16721: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
:
else
@@ -15868,12 +16726,12 @@ else
cat "conftest.$ac_ext" >&5
test -n "$verbose" && echo " test-compile failed. Undoing change to \$CFLAGS" 1>&6
-echo "${as_me:-configure}:15871: testing test-compile failed. Undoing change to \$CFLAGS ..." 1>&5
+echo "${as_me:-configure}:16729: testing test-compile failed. Undoing change to \$CFLAGS ..." 1>&5
if test "x$cf_check_cppflags" != "x$CPPFLAGS" ; then
test -n "$verbose" && echo " but keeping change to \$CPPFLAGS" 1>&6
-echo "${as_me:-configure}:15876: testing but keeping change to \$CPPFLAGS ..." 1>&5
+echo "${as_me:-configure}:16734: testing but keeping change to \$CPPFLAGS ..." 1>&5
fi
CFLAGS="$cf_check_cflags"
@@ -15881,7 +16739,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:15884: checking for XOpenDisplay in -lX11" >&5
+echo "$as_me:16742: checking for XOpenDisplay in -lX11" >&5
echo $ECHO_N "checking for XOpenDisplay in -lX11... $ECHO_C" >&6
if test "${ac_cv_lib_X11_XOpenDisplay+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -15889,7 +16747,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lX11 $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 15892 "configure"
+#line 16750 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -15898,7 +16756,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char XOpenDisplay ();
+char XOpenDisplay (void);
int
main (void)
{
@@ -15908,16 +16766,16 @@ XOpenDisplay ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:15911: \"$ac_link\"") >&5
+if { (eval echo "$as_me:16769: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:15914: \$? = $ac_status" >&5
+ echo "$as_me:16772: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:15917: \"$ac_try\"") >&5
+ { (eval echo "$as_me:16775: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:15920: \$? = $ac_status" >&5
+ echo "$as_me:16778: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_X11_XOpenDisplay=yes
else
@@ -15928,7 +16786,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:15931: result: $ac_cv_lib_X11_XOpenDisplay" >&5
+echo "$as_me:16789: result: $ac_cv_lib_X11_XOpenDisplay" >&5
echo "${ECHO_T}$ac_cv_lib_X11_XOpenDisplay" >&6
if test "$ac_cv_lib_X11_XOpenDisplay" = yes; then
@@ -15950,7 +16808,7 @@ LIBS="$cf_add_libs"
fi
-echo "$as_me:15953: checking for XCurses library" >&5
+echo "$as_me:16811: checking for XCurses library" >&5
echo $ECHO_N "checking for XCurses library... $ECHO_C" >&6
if test "${cf_cv_lib_XCurses+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -15973,7 +16831,7 @@ done
LIBS="$cf_add_libs"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 15976 "configure"
+#line 16834 "configure"
#include "confdefs.h"
#include <xcurses.h>
@@ -15988,16 +16846,16 @@ XCursesExit();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:15991: \"$ac_link\"") >&5
+if { (eval echo "$as_me:16849: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:15994: \$? = $ac_status" >&5
+ echo "$as_me:16852: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:15997: \"$ac_try\"") >&5
+ { (eval echo "$as_me:16855: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:16000: \$? = $ac_status" >&5
+ echo "$as_me:16858: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_lib_XCurses=yes
else
@@ -16008,7 +16866,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:16011: result: $cf_cv_lib_XCurses" >&5
+echo "$as_me:16869: result: $cf_cv_lib_XCurses" >&5
echo "${ECHO_T}$cf_cv_lib_XCurses" >&6
fi
@@ -16023,23 +16881,23 @@ cat >>confdefs.h <<\EOF
#define XCURSES 1
EOF
- echo "$as_me:16026: checking for xcurses.h" >&5
+ echo "$as_me:16884: checking for xcurses.h" >&5
echo $ECHO_N "checking for xcurses.h... $ECHO_C" >&6
if test "${ac_cv_header_xcurses_h+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 16032 "configure"
+#line 16890 "configure"
#include "confdefs.h"
#include <xcurses.h>
_ACEOF
-if { (eval echo "$as_me:16036: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:16894: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:16042: \$? = $ac_status" >&5
+ echo "$as_me:16900: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -16058,7 +16916,7 @@ else
fi
rm -f conftest.err "conftest.$ac_ext"
fi
-echo "$as_me:16061: result: $ac_cv_header_xcurses_h" >&5
+echo "$as_me:16919: result: $ac_cv_header_xcurses_h" >&5
echo "${ECHO_T}$ac_cv_header_xcurses_h" >&6
if test "$ac_cv_header_xcurses_h" = yes; then
@@ -16069,14 +16927,14 @@ EOF
fi
else
- { { echo "$as_me:16072: error: Cannot link with XCurses" >&5
+ { { echo "$as_me:16930: error: Cannot link with XCurses" >&5
echo "$as_me: error: Cannot link with XCurses" >&2;}
{ (exit 1); exit 1; }; }
fi
;;
(*)
- { { echo "$as_me:16079: error: unexpected screen-value: $cf_cv_screen" >&5
+ { { echo "$as_me:16937: error: unexpected screen-value: $cf_cv_screen" >&5
echo "$as_me: error: unexpected screen-value: $cf_cv_screen" >&2;}
{ (exit 1); exit 1; }; }
;;
@@ -16084,7 +16942,7 @@ esac
: ${cf_nculib_root:=$cf_cv_screen}
as_ac_Lib=`echo "ac_cv_lib_$cf_nculib_root''__nc_init_pthreads" | $as_tr_sh`
-echo "$as_me:16087: checking for _nc_init_pthreads in -l$cf_nculib_root" >&5
+echo "$as_me:16945: checking for _nc_init_pthreads in -l$cf_nculib_root" >&5
echo $ECHO_N "checking for _nc_init_pthreads in -l$cf_nculib_root... $ECHO_C" >&6
if eval "test \"\${$as_ac_Lib+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -16092,7 +16950,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-l$cf_nculib_root $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 16095 "configure"
+#line 16953 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -16101,7 +16959,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char _nc_init_pthreads ();
+char _nc_init_pthreads (void);
int
main (void)
{
@@ -16111,16 +16969,16 @@ _nc_init_pthreads ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:16114: \"$ac_link\"") >&5
+if { (eval echo "$as_me:16972: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:16117: \$? = $ac_status" >&5
+ echo "$as_me:16975: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:16120: \"$ac_try\"") >&5
+ { (eval echo "$as_me:16978: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:16123: \$? = $ac_status" >&5
+ echo "$as_me:16981: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
eval "$as_ac_Lib=yes"
else
@@ -16131,7 +16989,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:16134: result: `eval echo '${'"$as_ac_Lib"'}'`" >&5
+echo "$as_me:16992: result: `eval echo '${'"$as_ac_Lib"'}'`" >&5
echo "${ECHO_T}`eval echo '${'"$as_ac_Lib"'}'`" >&6
if test "`eval echo '${'"$as_ac_Lib"'}'`" = yes; then
cf_cv_ncurses_pthreads=yes
@@ -16166,7 +17024,7 @@ case $cf_cv_screen in
;;
esac
-echo "$as_me:16169: checking for X11 rgb file" >&5
+echo "$as_me:17027: checking for X11 rgb file" >&5
echo $ECHO_N "checking for X11 rgb file... $ECHO_C" >&6
# Check whether --with-x11-rgb or --without-x11-rgb was given.
@@ -16230,7 +17088,7 @@ case ".$cf_path" in
cf_path=`echo "$cf_path" | sed -e s%NONE%$cf_path_syntax%`
;;
(*)
- { { echo "$as_me:16233: error: expected a pathname, not \"$cf_path\"" >&5
+ { { echo "$as_me:17091: error: expected a pathname, not \"$cf_path\"" >&5
echo "$as_me: error: expected a pathname, not \"$cf_path\"" >&2;}
{ (exit 1); exit 1; }; }
;;
@@ -16238,7 +17096,7 @@ esac
fi
-echo "$as_me:16241: result: $RGB_PATH" >&5
+echo "$as_me:17099: result: $RGB_PATH" >&5
echo "${ECHO_T}$RGB_PATH" >&6
cat >>confdefs.h <<EOF
@@ -16279,7 +17137,7 @@ case $cf_cv_screen in
;;
esac
-echo "$as_me:16282: checking for desired basename for form library" >&5
+echo "$as_me:17140: checking for desired basename for form library" >&5
echo $ECHO_N "checking for desired basename for form library... $ECHO_C" >&6
# Check whether --with-form-libname or --without-form-libname was given.
@@ -16299,10 +17157,10 @@ case "x$FORM_NAME" in
;;
esac
-echo "$as_me:16302: result: $FORM_NAME" >&5
+echo "$as_me:17160: result: $FORM_NAME" >&5
echo "${ECHO_T}$FORM_NAME" >&6
-echo "$as_me:16305: checking for desired basename for menu library" >&5
+echo "$as_me:17163: checking for desired basename for menu library" >&5
echo $ECHO_N "checking for desired basename for menu library... $ECHO_C" >&6
# Check whether --with-menu-libname or --without-menu-libname was given.
@@ -16322,10 +17180,10 @@ case "x$MENU_NAME" in
;;
esac
-echo "$as_me:16325: result: $MENU_NAME" >&5
+echo "$as_me:17183: result: $MENU_NAME" >&5
echo "${ECHO_T}$MENU_NAME" >&6
-echo "$as_me:16328: checking for desired basename for panel library" >&5
+echo "$as_me:17186: checking for desired basename for panel library" >&5
echo $ECHO_N "checking for desired basename for panel library... $ECHO_C" >&6
# Check whether --with-panel-libname or --without-panel-libname was given.
@@ -16345,10 +17203,10 @@ case "x$PANEL_NAME" in
;;
esac
-echo "$as_me:16348: result: $PANEL_NAME" >&5
+echo "$as_me:17206: result: $PANEL_NAME" >&5
echo "${ECHO_T}$PANEL_NAME" >&6
-echo "$as_me:16351: checking if you want to check for panel functions" >&5
+echo "$as_me:17209: checking if you want to check for panel functions" >&5
echo $ECHO_N "checking if you want to check for panel functions... $ECHO_C" >&6
# Check whether --enable-panel or --disable-panel was given.
@@ -16365,7 +17223,7 @@ else
cf_enable_panel=$cf_default_panel
fi;
-echo "$as_me:16368: result: $cf_enable_panel" >&5
+echo "$as_me:17226: result: $cf_enable_panel" >&5
echo "${ECHO_T}$cf_enable_panel" >&6
if test $cf_enable_panel = yes
then
@@ -16376,24 +17234,51 @@ cf_have_curses_lib=no
if test "x${NCURSES_CONFIG_PKG}" = xnone; then
:
elif test "x${PKG_CONFIG:=none}" != xnone; then
- echo "$as_me:16379: checking pkg-config for $PANEL_NAME$cf_cv_libtype" >&5
+ echo "$as_me:17237: checking pkg-config for $PANEL_NAME$cf_cv_libtype" >&5
echo $ECHO_N "checking pkg-config for $PANEL_NAME$cf_cv_libtype... $ECHO_C" >&6
if "$PKG_CONFIG" --exists "$PANEL_NAME$cf_cv_libtype" ; then
- echo "$as_me:16382: result: yes" >&5
+ echo "$as_me:17240: result: yes" >&5
echo "${ECHO_T}yes" >&6
- echo "$as_me:16385: checking if the $PANEL_NAME$cf_cv_libtype package files work" >&5
+ echo "$as_me:17243: checking if the $PANEL_NAME$cf_cv_libtype package files work" >&5
echo $ECHO_N "checking if the $PANEL_NAME$cf_cv_libtype package files work... $ECHO_C" >&6
+ cf_save_CFLAGS="$CFLAGS"
cf_save_CPPFLAGS="$CPPFLAGS"
cf_save_LIBS="$LIBS"
+for cf_add_cflags in `$PKG_CONFIG --cflags "$PANEL_NAME$cf_cv_libtype"`
+do
+ case "x$cf_add_cflags" in
+ (x-[DU]*)
+
+cf_tmp_cflag=`echo "x$cf_add_cflags" | sed -e 's/^.//' -e 's/=.*//'`
+while true
+do
+ cf_old_cflag=`echo "x$CFLAGS" | sed -e 's/^.//' -e 's/[ ][ ]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[^ ][^ ]*\\)\?%%" -e 's/^[ ]*//' -e 's%[ ][ ]*-D% -D%g' -e 's%[ ][ ]*-I% -I%g'`
+ test "$CFLAGS" != "$cf_old_cflag" || break
+
+ CFLAGS="$cf_old_cflag"
+done
+
+cf_tmp_cflag=`echo "x$cf_add_cflags" | sed -e 's/^.//' -e 's/=.*//'`
+while true
+do
+ cf_old_cflag=`echo "x$CPPFLAGS" | sed -e 's/^.//' -e 's/[ ][ ]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[^ ][^ ]*\\)\?%%" -e 's/^[ ]*//' -e 's%[ ][ ]*-D% -D%g' -e 's%[ ][ ]*-I% -I%g'`
+ test "$CPPFLAGS" != "$cf_old_cflag" || break
+
+ CPPFLAGS="$cf_old_cflag"
+done
+
+ ;;
+ esac
+
cf_fix_cppflags=no
cf_new_cflags=
cf_new_cppflags=
cf_new_extra_cppflags=
-for cf_add_cflags in `$PKG_CONFIG --cflags "$PANEL_NAME$cf_cv_libtype"`
+for cf_add_cflags in $cf_add_cflags
do
case "$cf_fix_cppflags" in
(no)
@@ -16486,6 +17371,8 @@ if test -n "$cf_new_extra_cppflags" ; then
fi
+done
+
cf_add_libs="$LIBS"
# reverse order
cf_add_0lib=
@@ -16503,7 +17390,7 @@ done
LIBS="$cf_add_libs"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 16506 "configure"
+#line 17393 "configure"
#include "confdefs.h"
#include <$PANEL_NAME.h>
int
@@ -16515,37 +17402,37 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:16518: \"$ac_link\"") >&5
+if { (eval echo "$as_me:17405: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:16521: \$? = $ac_status" >&5
+ echo "$as_me:17408: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:16524: \"$ac_try\"") >&5
+ { (eval echo "$as_me:17411: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:16527: \$? = $ac_status" >&5
+ echo "$as_me:17414: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
if test "$cross_compiling" = yes; then
cf_have_curses_lib=maybe
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 16533 "configure"
+#line 17420 "configure"
#include "confdefs.h"
#include <$PANEL_NAME.h>
int main(void)
{ (void) new_panel ( 0 ); return 0; }
_ACEOF
rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:16540: \"$ac_link\"") >&5
+if { (eval echo "$as_me:17427: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:16543: \$? = $ac_status" >&5
+ echo "$as_me:17430: \$? = $ac_status" >&5
(exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:16545: \"$ac_try\"") >&5
+ { (eval echo "$as_me:17432: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:16548: \$? = $ac_status" >&5
+ echo "$as_me:17435: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_have_curses_lib=yes
else
@@ -16562,14 +17449,11 @@ cat "conftest.$ac_ext" >&5
cf_have_curses_lib=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
- echo "$as_me:16565: result: $cf_have_curses_lib" >&5
+ echo "$as_me:17452: result: $cf_have_curses_lib" >&5
echo "${ECHO_T}$cf_have_curses_lib" >&6
test "$cf_have_curses_lib" = maybe && cf_have_curses_lib=yes
- if test "$cf_have_curses_lib" != "yes"
+ if test "$cf_have_curses_lib" = "yes"
then
- CPPFLAGS="$cf_save_CPPFLAGS"
- LIBS="$cf_save_LIBS"
- else
cf_upper=`echo "have_lib$PANEL_NAME" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
@@ -16577,12 +17461,16 @@ cf_upper=`echo "have_lib$PANEL_NAME" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDE
#define $cf_upper 1
EOF
+ else
+ CFLAGS="$cf_save_CFLAGS"
+ CPPFLAGS="$cf_save_CPPFLAGS"
+ LIBS="$cf_save_LIBS"
fi
fi
fi
if test "$cf_have_curses_lib" = no; then
as_ac_Lib=`echo "ac_cv_lib_$PANEL_NAME$cf_cv_libtype''_new_panel" | $as_tr_sh`
-echo "$as_me:16585: checking for new_panel in -l$PANEL_NAME$cf_cv_libtype" >&5
+echo "$as_me:17473: checking for new_panel in -l$PANEL_NAME$cf_cv_libtype" >&5
echo $ECHO_N "checking for new_panel in -l$PANEL_NAME$cf_cv_libtype... $ECHO_C" >&6
if eval "test \"\${$as_ac_Lib+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -16590,7 +17478,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-l$PANEL_NAME$cf_cv_libtype $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 16593 "configure"
+#line 17481 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -16599,7 +17487,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char new_panel ();
+char new_panel (void);
int
main (void)
{
@@ -16609,16 +17497,16 @@ new_panel ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:16612: \"$ac_link\"") >&5
+if { (eval echo "$as_me:17500: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:16615: \$? = $ac_status" >&5
+ echo "$as_me:17503: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:16618: \"$ac_try\"") >&5
+ { (eval echo "$as_me:17506: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:16621: \$? = $ac_status" >&5
+ echo "$as_me:17509: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
eval "$as_ac_Lib=yes"
else
@@ -16629,7 +17517,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:16632: result: `eval echo '${'"$as_ac_Lib"'}'`" >&5
+echo "$as_me:17520: result: `eval echo '${'"$as_ac_Lib"'}'`" >&5
echo "${ECHO_T}`eval echo '${'"$as_ac_Lib"'}'`" >&6
if test "`eval echo '${'"$as_ac_Lib"'}'`" = yes; then
@@ -16662,7 +17550,7 @@ fi
cf_curses_headers="$cf_curses_headers panel.h"
fi
-echo "$as_me:16665: checking if you want to check for menu functions" >&5
+echo "$as_me:17553: checking if you want to check for menu functions" >&5
echo $ECHO_N "checking if you want to check for menu functions... $ECHO_C" >&6
# Check whether --enable-menu or --disable-menu was given.
@@ -16679,7 +17567,7 @@ else
cf_enable_menu=$cf_default_menu
fi;
-echo "$as_me:16682: result: $cf_enable_menu" >&5
+echo "$as_me:17570: result: $cf_enable_menu" >&5
echo "${ECHO_T}$cf_enable_menu" >&6
if test $cf_enable_menu = yes
then
@@ -16688,14 +17576,14 @@ then
;;
(curses*)
-echo "$as_me:16691: checking for NetBSD menu.h" >&5
+echo "$as_me:17579: checking for NetBSD menu.h" >&5
echo $ECHO_N "checking for NetBSD menu.h... $ECHO_C" >&6
if test "${cf_cv_netbsd_menu_h+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 16698 "configure"
+#line 17586 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
@@ -16713,16 +17601,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:16716: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:17604: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:16719: \$? = $ac_status" >&5
+ echo "$as_me:17607: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:16722: \"$ac_try\"") >&5
+ { (eval echo "$as_me:17610: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:16725: \$? = $ac_status" >&5
+ echo "$as_me:17613: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_netbsd_menu_h=yes
@@ -16734,7 +17622,7 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:16737: result: $cf_cv_netbsd_menu_h" >&5
+echo "$as_me:17625: result: $cf_cv_netbsd_menu_h" >&5
echo "${ECHO_T}$cf_cv_netbsd_menu_h" >&6
test "$cf_cv_netbsd_menu_h" = yes &&
@@ -16751,24 +17639,51 @@ cf_have_curses_lib=no
if test "x${NCURSES_CONFIG_PKG}" = xnone; then
:
elif test "x${PKG_CONFIG:=none}" != xnone; then
- echo "$as_me:16754: checking pkg-config for $MENU_NAME$cf_cv_libtype" >&5
+ echo "$as_me:17642: checking pkg-config for $MENU_NAME$cf_cv_libtype" >&5
echo $ECHO_N "checking pkg-config for $MENU_NAME$cf_cv_libtype... $ECHO_C" >&6
if "$PKG_CONFIG" --exists "$MENU_NAME$cf_cv_libtype" ; then
- echo "$as_me:16757: result: yes" >&5
+ echo "$as_me:17645: result: yes" >&5
echo "${ECHO_T}yes" >&6
- echo "$as_me:16760: checking if the $MENU_NAME$cf_cv_libtype package files work" >&5
+ echo "$as_me:17648: checking if the $MENU_NAME$cf_cv_libtype package files work" >&5
echo $ECHO_N "checking if the $MENU_NAME$cf_cv_libtype package files work... $ECHO_C" >&6
+ cf_save_CFLAGS="$CFLAGS"
cf_save_CPPFLAGS="$CPPFLAGS"
cf_save_LIBS="$LIBS"
+for cf_add_cflags in `$PKG_CONFIG --cflags "$MENU_NAME$cf_cv_libtype"`
+do
+ case "x$cf_add_cflags" in
+ (x-[DU]*)
+
+cf_tmp_cflag=`echo "x$cf_add_cflags" | sed -e 's/^.//' -e 's/=.*//'`
+while true
+do
+ cf_old_cflag=`echo "x$CFLAGS" | sed -e 's/^.//' -e 's/[ ][ ]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[^ ][^ ]*\\)\?%%" -e 's/^[ ]*//' -e 's%[ ][ ]*-D% -D%g' -e 's%[ ][ ]*-I% -I%g'`
+ test "$CFLAGS" != "$cf_old_cflag" || break
+
+ CFLAGS="$cf_old_cflag"
+done
+
+cf_tmp_cflag=`echo "x$cf_add_cflags" | sed -e 's/^.//' -e 's/=.*//'`
+while true
+do
+ cf_old_cflag=`echo "x$CPPFLAGS" | sed -e 's/^.//' -e 's/[ ][ ]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[^ ][^ ]*\\)\?%%" -e 's/^[ ]*//' -e 's%[ ][ ]*-D% -D%g' -e 's%[ ][ ]*-I% -I%g'`
+ test "$CPPFLAGS" != "$cf_old_cflag" || break
+
+ CPPFLAGS="$cf_old_cflag"
+done
+
+ ;;
+ esac
+
cf_fix_cppflags=no
cf_new_cflags=
cf_new_cppflags=
cf_new_extra_cppflags=
-for cf_add_cflags in `$PKG_CONFIG --cflags "$MENU_NAME$cf_cv_libtype"`
+for cf_add_cflags in $cf_add_cflags
do
case "$cf_fix_cppflags" in
(no)
@@ -16861,6 +17776,8 @@ if test -n "$cf_new_extra_cppflags" ; then
fi
+done
+
cf_add_libs="$LIBS"
# reverse order
cf_add_0lib=
@@ -16878,7 +17795,7 @@ done
LIBS="$cf_add_libs"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 16881 "configure"
+#line 17798 "configure"
#include "confdefs.h"
#include <$MENU_NAME.h>
int
@@ -16890,37 +17807,37 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:16893: \"$ac_link\"") >&5
+if { (eval echo "$as_me:17810: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:16896: \$? = $ac_status" >&5
+ echo "$as_me:17813: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:16899: \"$ac_try\"") >&5
+ { (eval echo "$as_me:17816: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:16902: \$? = $ac_status" >&5
+ echo "$as_me:17819: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
if test "$cross_compiling" = yes; then
cf_have_curses_lib=maybe
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 16908 "configure"
+#line 17825 "configure"
#include "confdefs.h"
#include <$MENU_NAME.h>
int main(void)
{ (void) menu_driver ( 0,0 ); return 0; }
_ACEOF
rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:16915: \"$ac_link\"") >&5
+if { (eval echo "$as_me:17832: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:16918: \$? = $ac_status" >&5
+ echo "$as_me:17835: \$? = $ac_status" >&5
(exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:16920: \"$ac_try\"") >&5
+ { (eval echo "$as_me:17837: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:16923: \$? = $ac_status" >&5
+ echo "$as_me:17840: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_have_curses_lib=yes
else
@@ -16937,14 +17854,11 @@ cat "conftest.$ac_ext" >&5
cf_have_curses_lib=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
- echo "$as_me:16940: result: $cf_have_curses_lib" >&5
+ echo "$as_me:17857: result: $cf_have_curses_lib" >&5
echo "${ECHO_T}$cf_have_curses_lib" >&6
test "$cf_have_curses_lib" = maybe && cf_have_curses_lib=yes
- if test "$cf_have_curses_lib" != "yes"
+ if test "$cf_have_curses_lib" = "yes"
then
- CPPFLAGS="$cf_save_CPPFLAGS"
- LIBS="$cf_save_LIBS"
- else
cf_upper=`echo "have_lib$MENU_NAME" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
@@ -16952,12 +17866,16 @@ cf_upper=`echo "have_lib$MENU_NAME" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEF
#define $cf_upper 1
EOF
+ else
+ CFLAGS="$cf_save_CFLAGS"
+ CPPFLAGS="$cf_save_CPPFLAGS"
+ LIBS="$cf_save_LIBS"
fi
fi
fi
if test "$cf_have_curses_lib" = no; then
as_ac_Lib=`echo "ac_cv_lib_$MENU_NAME$cf_cv_libtype''_menu_driver" | $as_tr_sh`
-echo "$as_me:16960: checking for menu_driver in -l$MENU_NAME$cf_cv_libtype" >&5
+echo "$as_me:17878: checking for menu_driver in -l$MENU_NAME$cf_cv_libtype" >&5
echo $ECHO_N "checking for menu_driver in -l$MENU_NAME$cf_cv_libtype... $ECHO_C" >&6
if eval "test \"\${$as_ac_Lib+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -16965,7 +17883,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-l$MENU_NAME$cf_cv_libtype $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 16968 "configure"
+#line 17886 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -16974,7 +17892,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char menu_driver ();
+char menu_driver (void);
int
main (void)
{
@@ -16984,16 +17902,16 @@ menu_driver ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:16987: \"$ac_link\"") >&5
+if { (eval echo "$as_me:17905: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:16990: \$? = $ac_status" >&5
+ echo "$as_me:17908: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:16993: \"$ac_try\"") >&5
+ { (eval echo "$as_me:17911: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:16996: \$? = $ac_status" >&5
+ echo "$as_me:17914: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
eval "$as_ac_Lib=yes"
else
@@ -17004,7 +17922,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:17007: result: `eval echo '${'"$as_ac_Lib"'}'`" >&5
+echo "$as_me:17925: result: `eval echo '${'"$as_ac_Lib"'}'`" >&5
echo "${ECHO_T}`eval echo '${'"$as_ac_Lib"'}'`" >&6
if test "`eval echo '${'"$as_ac_Lib"'}'`" = yes; then
@@ -17037,7 +17955,7 @@ fi
cf_curses_headers="$cf_curses_headers menu.h"
fi
-echo "$as_me:17040: checking if you want to check for form functions" >&5
+echo "$as_me:17958: checking if you want to check for form functions" >&5
echo $ECHO_N "checking if you want to check for form functions... $ECHO_C" >&6
# Check whether --enable-form or --disable-form was given.
@@ -17054,7 +17972,7 @@ else
cf_enable_form=$cf_default_form
fi;
-echo "$as_me:17057: result: $cf_enable_form" >&5
+echo "$as_me:17975: result: $cf_enable_form" >&5
echo "${ECHO_T}$cf_enable_form" >&6
if test $cf_enable_form = yes
then
@@ -17063,14 +17981,14 @@ then
;;
(curses*)
-echo "$as_me:17066: checking for NetBSD form.h" >&5
+echo "$as_me:17984: checking for NetBSD form.h" >&5
echo $ECHO_N "checking for NetBSD form.h... $ECHO_C" >&6
if test "${cf_cv_netbsd_form_h+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 17073 "configure"
+#line 17991 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
@@ -17089,16 +18007,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:17092: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:18010: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:17095: \$? = $ac_status" >&5
+ echo "$as_me:18013: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:17098: \"$ac_try\"") >&5
+ { (eval echo "$as_me:18016: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:17101: \$? = $ac_status" >&5
+ echo "$as_me:18019: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_netbsd_form_h=yes
@@ -17110,7 +18028,7 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:17113: result: $cf_cv_netbsd_form_h" >&5
+echo "$as_me:18031: result: $cf_cv_netbsd_form_h" >&5
echo "${ECHO_T}$cf_cv_netbsd_form_h" >&6
test "$cf_cv_netbsd_form_h" = yes &&
@@ -17127,24 +18045,51 @@ cf_have_curses_lib=no
if test "x${NCURSES_CONFIG_PKG}" = xnone; then
:
elif test "x${PKG_CONFIG:=none}" != xnone; then
- echo "$as_me:17130: checking pkg-config for $FORM_NAME$cf_cv_libtype" >&5
+ echo "$as_me:18048: checking pkg-config for $FORM_NAME$cf_cv_libtype" >&5
echo $ECHO_N "checking pkg-config for $FORM_NAME$cf_cv_libtype... $ECHO_C" >&6
if "$PKG_CONFIG" --exists "$FORM_NAME$cf_cv_libtype" ; then
- echo "$as_me:17133: result: yes" >&5
+ echo "$as_me:18051: result: yes" >&5
echo "${ECHO_T}yes" >&6
- echo "$as_me:17136: checking if the $FORM_NAME$cf_cv_libtype package files work" >&5
+ echo "$as_me:18054: checking if the $FORM_NAME$cf_cv_libtype package files work" >&5
echo $ECHO_N "checking if the $FORM_NAME$cf_cv_libtype package files work... $ECHO_C" >&6
+ cf_save_CFLAGS="$CFLAGS"
cf_save_CPPFLAGS="$CPPFLAGS"
cf_save_LIBS="$LIBS"
+for cf_add_cflags in `$PKG_CONFIG --cflags "$FORM_NAME$cf_cv_libtype"`
+do
+ case "x$cf_add_cflags" in
+ (x-[DU]*)
+
+cf_tmp_cflag=`echo "x$cf_add_cflags" | sed -e 's/^.//' -e 's/=.*//'`
+while true
+do
+ cf_old_cflag=`echo "x$CFLAGS" | sed -e 's/^.//' -e 's/[ ][ ]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[^ ][^ ]*\\)\?%%" -e 's/^[ ]*//' -e 's%[ ][ ]*-D% -D%g' -e 's%[ ][ ]*-I% -I%g'`
+ test "$CFLAGS" != "$cf_old_cflag" || break
+
+ CFLAGS="$cf_old_cflag"
+done
+
+cf_tmp_cflag=`echo "x$cf_add_cflags" | sed -e 's/^.//' -e 's/=.*//'`
+while true
+do
+ cf_old_cflag=`echo "x$CPPFLAGS" | sed -e 's/^.//' -e 's/[ ][ ]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[^ ][^ ]*\\)\?%%" -e 's/^[ ]*//' -e 's%[ ][ ]*-D% -D%g' -e 's%[ ][ ]*-I% -I%g'`
+ test "$CPPFLAGS" != "$cf_old_cflag" || break
+
+ CPPFLAGS="$cf_old_cflag"
+done
+
+ ;;
+ esac
+
cf_fix_cppflags=no
cf_new_cflags=
cf_new_cppflags=
cf_new_extra_cppflags=
-for cf_add_cflags in `$PKG_CONFIG --cflags "$FORM_NAME$cf_cv_libtype"`
+for cf_add_cflags in $cf_add_cflags
do
case "$cf_fix_cppflags" in
(no)
@@ -17237,6 +18182,8 @@ if test -n "$cf_new_extra_cppflags" ; then
fi
+done
+
cf_add_libs="$LIBS"
# reverse order
cf_add_0lib=
@@ -17254,7 +18201,7 @@ done
LIBS="$cf_add_libs"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 17257 "configure"
+#line 18204 "configure"
#include "confdefs.h"
#include <$FORM_NAME.h>
int
@@ -17266,37 +18213,37 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:17269: \"$ac_link\"") >&5
+if { (eval echo "$as_me:18216: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:17272: \$? = $ac_status" >&5
+ echo "$as_me:18219: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:17275: \"$ac_try\"") >&5
+ { (eval echo "$as_me:18222: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:17278: \$? = $ac_status" >&5
+ echo "$as_me:18225: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
if test "$cross_compiling" = yes; then
cf_have_curses_lib=maybe
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 17284 "configure"
+#line 18231 "configure"
#include "confdefs.h"
#include <$FORM_NAME.h>
int main(void)
{ (void) form_driver ( 0,0 ); return 0; }
_ACEOF
rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:17291: \"$ac_link\"") >&5
+if { (eval echo "$as_me:18238: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:17294: \$? = $ac_status" >&5
+ echo "$as_me:18241: \$? = $ac_status" >&5
(exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:17296: \"$ac_try\"") >&5
+ { (eval echo "$as_me:18243: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:17299: \$? = $ac_status" >&5
+ echo "$as_me:18246: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_have_curses_lib=yes
else
@@ -17313,14 +18260,11 @@ cat "conftest.$ac_ext" >&5
cf_have_curses_lib=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
- echo "$as_me:17316: result: $cf_have_curses_lib" >&5
+ echo "$as_me:18263: result: $cf_have_curses_lib" >&5
echo "${ECHO_T}$cf_have_curses_lib" >&6
test "$cf_have_curses_lib" = maybe && cf_have_curses_lib=yes
- if test "$cf_have_curses_lib" != "yes"
+ if test "$cf_have_curses_lib" = "yes"
then
- CPPFLAGS="$cf_save_CPPFLAGS"
- LIBS="$cf_save_LIBS"
- else
cf_upper=`echo "have_lib$FORM_NAME" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
@@ -17328,12 +18272,16 @@ cf_upper=`echo "have_lib$FORM_NAME" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEF
#define $cf_upper 1
EOF
+ else
+ CFLAGS="$cf_save_CFLAGS"
+ CPPFLAGS="$cf_save_CPPFLAGS"
+ LIBS="$cf_save_LIBS"
fi
fi
fi
if test "$cf_have_curses_lib" = no; then
as_ac_Lib=`echo "ac_cv_lib_$FORM_NAME$cf_cv_libtype''_form_driver" | $as_tr_sh`
-echo "$as_me:17336: checking for form_driver in -l$FORM_NAME$cf_cv_libtype" >&5
+echo "$as_me:18284: checking for form_driver in -l$FORM_NAME$cf_cv_libtype" >&5
echo $ECHO_N "checking for form_driver in -l$FORM_NAME$cf_cv_libtype... $ECHO_C" >&6
if eval "test \"\${$as_ac_Lib+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -17341,7 +18289,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-l$FORM_NAME$cf_cv_libtype $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 17344 "configure"
+#line 18292 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -17350,7 +18298,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char form_driver ();
+char form_driver (void);
int
main (void)
{
@@ -17360,16 +18308,16 @@ form_driver ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:17363: \"$ac_link\"") >&5
+if { (eval echo "$as_me:18311: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:17366: \$? = $ac_status" >&5
+ echo "$as_me:18314: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:17369: \"$ac_try\"") >&5
+ { (eval echo "$as_me:18317: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:17372: \$? = $ac_status" >&5
+ echo "$as_me:18320: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
eval "$as_ac_Lib=yes"
else
@@ -17380,7 +18328,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:17383: result: `eval echo '${'"$as_ac_Lib"'}'`" >&5
+echo "$as_me:18331: result: `eval echo '${'"$as_ac_Lib"'}'`" >&5
echo "${ECHO_T}`eval echo '${'"$as_ac_Lib"'}'`" >&6
if test "`eval echo '${'"$as_ac_Lib"'}'`" = yes; then
@@ -17418,23 +18366,23 @@ fi
for ac_header in $cf_curses_headers
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:17421: checking for $ac_header" >&5
+echo "$as_me:18369: checking for $ac_header" >&5
echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 17427 "configure"
+#line 18375 "configure"
#include "confdefs.h"
#include <$ac_header>
_ACEOF
-if { (eval echo "$as_me:17431: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:18379: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:17437: \$? = $ac_status" >&5
+ echo "$as_me:18385: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -17453,7 +18401,7 @@ else
fi
rm -f conftest.err "conftest.$ac_ext"
fi
-echo "$as_me:17456: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
+echo "$as_me:18404: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
echo "${ECHO_T}`eval echo '${'"$as_ac_Header"'}'`" >&6
if test "`eval echo '${'"$as_ac_Header"'}'`" = yes; then
cat >>confdefs.h <<EOF
@@ -17463,151 +18411,13 @@ EOF
fi
done
-echo "$as_me:17466: checking for ANSI C header files" >&5
-echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
-if test "${ac_cv_header_stdc+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >"conftest.$ac_ext" <<_ACEOF
-#line 17472 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-_ACEOF
-if { (eval echo "$as_me:17480: \"$ac_cpp "conftest.$ac_ext"\"") >&5
- (eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
- ac_status=$?
- $EGREP -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:17486: \$? = $ac_status" >&5
- (exit "$ac_status"); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- ac_cv_header_stdc=yes
-else
- echo "$as_me: failed program was:" >&5
- cat "conftest.$ac_ext" >&5
- ac_cv_header_stdc=no
-fi
-rm -f conftest.err "conftest.$ac_ext"
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat >"conftest.$ac_ext" <<_ACEOF
-#line 17508 "configure"
-#include "confdefs.h"
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "memchr" >/dev/null 2>&1; then
- :
-else
- ac_cv_header_stdc=no
-fi
-rm -rf conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat >"conftest.$ac_ext" <<_ACEOF
-#line 17526 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "free" >/dev/null 2>&1; then
- :
-else
- ac_cv_header_stdc=no
-fi
-rm -rf conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- if test "$cross_compiling" = yes; then
- :
-else
- cat >"conftest.$ac_ext" <<_ACEOF
-#line 17547 "configure"
-#include "confdefs.h"
-#include <ctype.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main (void)
-{
- int i;
- for (i = 0; i < 256; i++)
- if (XOR (islower (i), ISLOWER (i))
- || toupper (i) != TOUPPER (i))
- $ac_main_return(2);
- $ac_main_return (0);
-}
-_ACEOF
-rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:17573: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:17576: \$? = $ac_status" >&5
- (exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:17578: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:17581: \$? = $ac_status" >&5
- (exit "$ac_status"); }; }; then
- :
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-cat "conftest.$ac_ext" >&5
-ac_cv_header_stdc=no
-fi
-rm -f core ./core.* ./*.core "conftest$ac_exeext" "conftest.$ac_objext" "conftest.$ac_ext"
-fi
-fi
-fi
-echo "$as_me:17594: result: $ac_cv_header_stdc" >&5
-echo "${ECHO_T}$ac_cv_header_stdc" >&6
-if test $ac_cv_header_stdc = yes; then
-
-cat >>confdefs.h <<\EOF
-#define STDC_HEADERS 1
-EOF
-
-fi
-
-echo "$as_me:17604: checking whether time.h and sys/time.h may both be included" >&5
+echo "$as_me:18414: checking whether time.h and sys/time.h may both be included" >&5
echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6
if test "${ac_cv_header_time+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 17610 "configure"
+#line 18420 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/time.h>
@@ -17623,16 +18433,16 @@ return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:17626: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:18436: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:17629: \$? = $ac_status" >&5
+ echo "$as_me:18439: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:17632: \"$ac_try\"") >&5
+ { (eval echo "$as_me:18442: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:17635: \$? = $ac_status" >&5
+ echo "$as_me:18445: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_header_time=yes
else
@@ -17642,7 +18452,7 @@ ac_cv_header_time=no
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:17645: result: $ac_cv_header_time" >&5
+echo "$as_me:18455: result: $ac_cv_header_time" >&5
echo "${ECHO_T}$ac_cv_header_time" >&6
if test $ac_cv_header_time = yes; then
@@ -17657,7 +18467,6 @@ getopt.h \
locale.h \
math.h \
stdarg.h \
-stdint.h \
sys/ioctl.h \
sys/select.h \
sys/time.h \
@@ -17666,23 +18475,23 @@ unistd.h \
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:17669: checking for $ac_header" >&5
+echo "$as_me:18478: checking for $ac_header" >&5
echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 17675 "configure"
+#line 18484 "configure"
#include "confdefs.h"
#include <$ac_header>
_ACEOF
-if { (eval echo "$as_me:17679: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:18488: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:17685: \$? = $ac_status" >&5
+ echo "$as_me:18494: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -17701,7 +18510,7 @@ else
fi
rm -f conftest.err "conftest.$ac_ext"
fi
-echo "$as_me:17704: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
+echo "$as_me:18513: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
echo "${ECHO_T}`eval echo '${'"$as_ac_Header"'}'`" >&6
if test "`eval echo '${'"$as_ac_Header"'}'`" = yes; then
cat >>confdefs.h <<EOF
@@ -17714,23 +18523,23 @@ done
for ac_header in unistd.h getopt.h
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:17717: checking for $ac_header" >&5
+echo "$as_me:18526: checking for $ac_header" >&5
echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 17723 "configure"
+#line 18532 "configure"
#include "confdefs.h"
#include <$ac_header>
_ACEOF
-if { (eval echo "$as_me:17727: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:18536: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:17733: \$? = $ac_status" >&5
+ echo "$as_me:18542: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -17749,7 +18558,7 @@ else
fi
rm -f conftest.err "conftest.$ac_ext"
fi
-echo "$as_me:17752: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
+echo "$as_me:18561: result: `eval echo '${'"$as_ac_Header"'}'`" >&5
echo "${ECHO_T}`eval echo '${'"$as_ac_Header"'}'`" >&6
if test "`eval echo '${'"$as_ac_Header"'}'`" = yes; then
cat >>confdefs.h <<EOF
@@ -17759,7 +18568,7 @@ EOF
fi
done
-echo "$as_me:17762: checking for header declaring getopt variables" >&5
+echo "$as_me:18571: checking for header declaring getopt variables" >&5
echo $ECHO_N "checking for header declaring getopt variables... $ECHO_C" >&6
if test "${cf_cv_getopt_header+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -17769,29 +18578,29 @@ cf_cv_getopt_header=none
for cf_header in stdio.h stdlib.h unistd.h getopt.h
do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 17772 "configure"
+#line 18581 "configure"
#include "confdefs.h"
#include <$cf_header>
int
main (void)
{
-int x = optind; char *y = optarg
+int x = optind; char *y = optarg; (void)x; (void)y
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:17785: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:18594: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:17788: \$? = $ac_status" >&5
+ echo "$as_me:18597: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:17791: \"$ac_try\"") >&5
+ { (eval echo "$as_me:18600: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:17794: \$? = $ac_status" >&5
+ echo "$as_me:18603: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_getopt_header=$cf_header
break
@@ -17803,7 +18612,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
done
fi
-echo "$as_me:17806: result: $cf_cv_getopt_header" >&5
+echo "$as_me:18615: result: $cf_cv_getopt_header" >&5
echo "${ECHO_T}$cf_cv_getopt_header" >&6
if test "$cf_cv_getopt_header" != none ; then
@@ -17820,9 +18629,201 @@ EOF
fi
+echo "$as_me:18632: checking for clock_gettime" >&5
+echo $ECHO_N "checking for clock_gettime... $ECHO_C" >&6
+if test "${cf_cv_func_clock_gettime+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+ cat >"conftest.$ac_ext" <<_ACEOF
+#line 18639 "configure"
+#include "confdefs.h"
+#include <time.h>
+int
+main (void)
+{
+struct timespec ts;
+ int rc = clock_gettime(CLOCK_REALTIME, &ts); (void) rc; (void)ts
+ ;
+ return 0;
+}
+_ACEOF
+rm -f "conftest.$ac_objext" "conftest$ac_exeext"
+if { (eval echo "$as_me:18652: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:18655: \$? = $ac_status" >&5
+ (exit "$ac_status"); } &&
+ { ac_try='test -s "conftest$ac_exeext"'
+ { (eval echo "$as_me:18658: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:18661: \$? = $ac_status" >&5
+ (exit "$ac_status"); }; }; then
+ cf_cv_func_clock_gettime=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat "conftest.$ac_ext" >&5
+cf_cv_func_clock_gettime=no
+fi
+rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
+
+fi
+echo "$as_me:18672: result: $cf_cv_func_clock_gettime" >&5
+echo "${ECHO_T}$cf_cv_func_clock_gettime" >&6
+
+if test "$cf_cv_func_clock_gettime" = yes
+then
+
+cat >>confdefs.h <<\EOF
+#define HAVE_CLOCK_GETTIME 1
+EOF
+
+else
+echo "$as_me:18683: checking for gettimeofday" >&5
+echo $ECHO_N "checking for gettimeofday... $ECHO_C" >&6
+if test "${ac_cv_func_gettimeofday+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >"conftest.$ac_ext" <<_ACEOF
+#line 18689 "configure"
+#include "confdefs.h"
+#define gettimeofday autoconf_temporary
+#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */
+#undef gettimeofday
+
+#ifdef __cplusplus
+extern "C"
+#endif
+
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char gettimeofday (void);
+
+int
+main (void)
+{
+
+/* The GNU C library defines stubs for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_gettimeofday) || defined (__stub___gettimeofday)
+#error found stub for gettimeofday
+#endif
+
+ return gettimeofday ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f "conftest.$ac_objext" "conftest$ac_exeext"
+if { (eval echo "$as_me:18720: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:18723: \$? = $ac_status" >&5
+ (exit "$ac_status"); } &&
+ { ac_try='test -s "conftest$ac_exeext"'
+ { (eval echo "$as_me:18726: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:18729: \$? = $ac_status" >&5
+ (exit "$ac_status"); }; }; then
+ ac_cv_func_gettimeofday=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat "conftest.$ac_ext" >&5
+ac_cv_func_gettimeofday=no
+fi
+rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
+fi
+echo "$as_me:18739: result: $ac_cv_func_gettimeofday" >&5
+echo "${ECHO_T}$ac_cv_func_gettimeofday" >&6
+if test "$ac_cv_func_gettimeofday" = yes; then
+
+cat >>confdefs.h <<\EOF
+#define HAVE_GETTIMEOFDAY 1
+EOF
+
+else
+
+echo "$as_me:18749: checking for gettimeofday in -lbsd" >&5
+echo $ECHO_N "checking for gettimeofday in -lbsd... $ECHO_C" >&6
+if test "${ac_cv_lib_bsd_gettimeofday+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lbsd $LIBS"
+cat >"conftest.$ac_ext" <<_ACEOF
+#line 18757 "configure"
+#include "confdefs.h"
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char gettimeofday (void);
+int
+main (void)
+{
+gettimeofday ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f "conftest.$ac_objext" "conftest$ac_exeext"
+if { (eval echo "$as_me:18776: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:18779: \$? = $ac_status" >&5
+ (exit "$ac_status"); } &&
+ { ac_try='test -s "conftest$ac_exeext"'
+ { (eval echo "$as_me:18782: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:18785: \$? = $ac_status" >&5
+ (exit "$ac_status"); }; }; then
+ ac_cv_lib_bsd_gettimeofday=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat "conftest.$ac_ext" >&5
+ac_cv_lib_bsd_gettimeofday=no
+fi
+rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:18796: result: $ac_cv_lib_bsd_gettimeofday" >&5
+echo "${ECHO_T}$ac_cv_lib_bsd_gettimeofday" >&6
+if test "$ac_cv_lib_bsd_gettimeofday" = yes; then
+
+cat >>confdefs.h <<\EOF
+#define HAVE_GETTIMEOFDAY 1
+EOF
+
+cf_add_libs="$LIBS"
+# reverse order
+cf_add_0lib=
+for cf_add_1lib in -lbsd; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done
+# filter duplicates
+for cf_add_1lib in $cf_add_0lib; do
+ for cf_add_2lib in $cf_add_libs; do
+ if test "x$cf_add_1lib" = "x$cf_add_2lib"; then
+ cf_add_1lib=
+ break
+ fi
+ done
+ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs"
+done
+LIBS="$cf_add_libs"
+
+fi
+
+fi
+fi
+
for ac_func in \
getopt \
-gettimeofday \
snprintf \
strdup \
strstr \
@@ -17830,13 +18831,13 @@ tsearch \
do
as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:17833: checking for $ac_func" >&5
+echo "$as_me:18834: checking for $ac_func" >&5
echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
if eval "test \"\${$as_ac_var+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 17839 "configure"
+#line 18840 "configure"
#include "confdefs.h"
#define $ac_func autoconf_temporary
#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */
@@ -17867,16 +18868,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:17870: \"$ac_link\"") >&5
+if { (eval echo "$as_me:18871: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:17873: \$? = $ac_status" >&5
+ echo "$as_me:18874: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:17876: \"$ac_try\"") >&5
+ { (eval echo "$as_me:18877: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:17879: \$? = $ac_status" >&5
+ echo "$as_me:18880: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
eval "$as_ac_var=yes"
else
@@ -17886,7 +18887,7 @@ eval "$as_ac_var=no"
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:17889: result: `eval echo '${'"$as_ac_var"'}'`" >&5
+echo "$as_me:18890: result: `eval echo '${'"$as_ac_var"'}'`" >&5
echo "${ECHO_T}`eval echo '${'"$as_ac_var"'}'`" >&6
if test "`eval echo '${'"$as_ac_var"'}'`" = yes; then
cat >>confdefs.h <<EOF
@@ -17897,14 +18898,14 @@ fi
done
# use a compile-check to work with ncurses*-config and subdirectory includes
-echo "$as_me:17900: checking if we can use termcap.h" >&5
+echo "$as_me:18901: checking if we can use termcap.h" >&5
echo $ECHO_N "checking if we can use termcap.h... $ECHO_C" >&6
if test "${cf_cv_have_termcap_h+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 17907 "configure"
+#line 18908 "configure"
#include "confdefs.h"
#include <curses.h>
@@ -17925,16 +18926,16 @@ return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:17928: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:18929: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:17931: \$? = $ac_status" >&5
+ echo "$as_me:18932: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:17934: \"$ac_try\"") >&5
+ { (eval echo "$as_me:18935: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:17937: \$? = $ac_status" >&5
+ echo "$as_me:18938: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_have_termcap_h=yes
else
@@ -17944,7 +18945,7 @@ cf_cv_have_termcap_h=no
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:17947: result: $cf_cv_have_termcap_h" >&5
+echo "$as_me:18948: result: $cf_cv_have_termcap_h" >&5
echo "${ECHO_T}$cf_cv_have_termcap_h" >&6
if test "x$cf_cv_have_termcap_h" = xyes
then
@@ -17954,14 +18955,14 @@ cat >>confdefs.h <<\EOF
EOF
else
-echo "$as_me:17957: checking if we can use ncurses/termcap.h" >&5
+echo "$as_me:18958: checking if we can use ncurses/termcap.h" >&5
echo $ECHO_N "checking if we can use ncurses/termcap.h... $ECHO_C" >&6
if test "${cf_cv_have_ncurses_termcap_h+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 17964 "configure"
+#line 18965 "configure"
#include "confdefs.h"
#include <ncurses/curses.h>
@@ -17982,16 +18983,16 @@ return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:17985: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:18986: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:17988: \$? = $ac_status" >&5
+ echo "$as_me:18989: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:17991: \"$ac_try\"") >&5
+ { (eval echo "$as_me:18992: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:17994: \$? = $ac_status" >&5
+ echo "$as_me:18995: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_have_ncurses_termcap_h=yes
else
@@ -18001,7 +19002,7 @@ cf_cv_have_ncurses_termcap_h=no
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:18004: result: $cf_cv_have_ncurses_termcap_h" >&5
+echo "$as_me:19005: result: $cf_cv_have_ncurses_termcap_h" >&5
echo "${ECHO_T}$cf_cv_have_ncurses_termcap_h" >&6
test "x$cf_cv_have_ncurses_termcap_h" = xyes &&
cat >>confdefs.h <<\EOF
@@ -18011,7 +19012,7 @@ EOF
fi
if test "x$ac_cv_func_getopt" = xno; then
- { { echo "$as_me:18014: error: getopt is required for building programs" >&5
+ { { echo "$as_me:19015: error: getopt is required for building programs" >&5
echo "$as_me: error: getopt is required for building programs" >&2;}
{ (exit 1); exit 1; }; }
fi
@@ -18030,13 +19031,13 @@ wcstombs \
do
as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:18033: checking for $ac_func" >&5
+echo "$as_me:19034: checking for $ac_func" >&5
echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
if eval "test \"\${$as_ac_var+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 18039 "configure"
+#line 19040 "configure"
#include "confdefs.h"
#define $ac_func autoconf_temporary
#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */
@@ -18067,16 +19068,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:18070: \"$ac_link\"") >&5
+if { (eval echo "$as_me:19071: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:18073: \$? = $ac_status" >&5
+ echo "$as_me:19074: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:18076: \"$ac_try\"") >&5
+ { (eval echo "$as_me:19077: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:18079: \$? = $ac_status" >&5
+ echo "$as_me:19080: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
eval "$as_ac_var=yes"
else
@@ -18086,7 +19087,7 @@ eval "$as_ac_var=no"
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:18089: result: `eval echo '${'"$as_ac_var"'}'`" >&5
+echo "$as_me:19090: result: `eval echo '${'"$as_ac_var"'}'`" >&5
echo "${ECHO_T}`eval echo '${'"$as_ac_var"'}'`" >&6
if test "`eval echo '${'"$as_ac_var"'}'`" = yes; then
cat >>confdefs.h <<EOF
@@ -18098,7 +19099,7 @@ done
fi
-echo "$as_me:18101: checking definition to turn on extended curses functions" >&5
+echo "$as_me:19102: checking definition to turn on extended curses functions" >&5
echo $ECHO_N "checking definition to turn on extended curses functions... $ECHO_C" >&6
if test "${cf_cv_need_xopen_extension+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -18106,10 +19107,10 @@ else
cf_cv_need_xopen_extension=unknown
cat >"conftest.$ac_ext" <<_ACEOF
-#line 18109 "configure"
+#line 19110 "configure"
#include "confdefs.h"
-#include <stdlib.h>
+$ac_includes_default
#include <${cf_cv_ncurses_header:-curses.h}>
int
main (void)
@@ -18117,18 +19118,18 @@ main (void)
#if defined(NCURSES_VERSION_PATCH)
#if (NCURSES_VERSION_PATCH < 20100501) && (NCURSES_VERSION_PATCH >= 20100403)
- make an error
+ #error disallow ncurses versions between 2020/04/03 and 2010/05/01
#endif
#endif
-#ifdef NCURSES_VERSION
+#ifdef NCURSES_WIDECHAR
+#error prefer to fall-through on the second checks
+#endif
+ static char dummy[10];
cchar_t check;
int check2 = curs_set((int)sizeof(check));
-#endif
- long x = winnstr(stdscr, "", 0);
+ long x = winnstr(stdscr, dummy, 5);
int x1, y1;
-#ifdef NCURSES_VERSION
(void)check2;
-#endif
getbegyx(stdscr, y1, x1);
(void)x;
(void)y1;
@@ -18139,16 +19140,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:18142: \"$ac_link\"") >&5
+if { (eval echo "$as_me:19143: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:18145: \$? = $ac_status" >&5
+ echo "$as_me:19146: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:18148: \"$ac_try\"") >&5
+ { (eval echo "$as_me:19149: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:18151: \$? = $ac_status" >&5
+ echo "$as_me:19152: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_need_xopen_extension=none
else
@@ -18158,26 +19159,23 @@ cat "conftest.$ac_ext" >&5
for cf_try_xopen_extension in _XOPEN_SOURCE_EXTENDED NCURSES_WIDECHAR
do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 18161 "configure"
+#line 19162 "configure"
#include "confdefs.h"
#define $cf_try_xopen_extension 1
-#include <stdlib.h>
+$ac_includes_default
#include <${cf_cv_ncurses_header:-curses.h}>
int
main (void)
{
-#ifdef NCURSES_VERSION
+ static char dummy[10];
cchar_t check;
int check2 = curs_set((int)sizeof(check));
-#endif
- long x = winnstr(stdscr, "", 0);
+ long x = winnstr(stdscr, dummy, 5);
int x1, y1;
getbegyx(stdscr, y1, x1);
-#ifdef NCURSES_VERSION
(void)check2;
-#endif
(void)x;
(void)y1;
(void)x1;
@@ -18187,16 +19185,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:18190: \"$ac_link\"") >&5
+if { (eval echo "$as_me:19188: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:18193: \$? = $ac_status" >&5
+ echo "$as_me:19191: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:18196: \"$ac_try\"") >&5
+ { (eval echo "$as_me:19194: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:18199: \$? = $ac_status" >&5
+ echo "$as_me:19197: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_need_xopen_extension=$cf_try_xopen_extension; break
else
@@ -18210,7 +19208,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:18213: result: $cf_cv_need_xopen_extension" >&5
+echo "$as_me:19211: result: $cf_cv_need_xopen_extension" >&5
echo "${ECHO_T}$cf_cv_need_xopen_extension" >&6
case "$cf_cv_need_xopen_extension" in
@@ -18222,7 +19220,7 @@ case "$cf_cv_need_xopen_extension" in
;;
esac
-echo "$as_me:18225: checking for term.h" >&5
+echo "$as_me:19223: checking for term.h" >&5
echo $ECHO_N "checking for term.h... $ECHO_C" >&6
if test "${cf_cv_term_header+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -18243,7 +19241,7 @@ esac
for cf_header in $cf_header_list
do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 18246 "configure"
+#line 19244 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
@@ -18257,16 +19255,16 @@ WINDOW *x; (void)x
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:18260: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:19258: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:18263: \$? = $ac_status" >&5
+ echo "$as_me:19261: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:18266: \"$ac_try\"") >&5
+ { (eval echo "$as_me:19264: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:18269: \$? = $ac_status" >&5
+ echo "$as_me:19267: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_term_header=$cf_header
break
@@ -18285,14 +19283,14 @@ case "$cf_cv_term_header" in
for cf_header in ncurses/term.h ncursesw/term.h
do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 18288 "configure"
+#line 19286 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
#ifdef NCURSES_VERSION
#include <${cf_header}>
#else
-make an error
+#error expected NCURSES_VERSION to be defined
#endif
int
main (void)
@@ -18303,16 +19301,16 @@ WINDOW *x; (void)x
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:18306: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:19304: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:18309: \$? = $ac_status" >&5
+ echo "$as_me:19307: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:18312: \"$ac_try\"") >&5
+ { (eval echo "$as_me:19310: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:18315: \$? = $ac_status" >&5
+ echo "$as_me:19313: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_term_header=$cf_header
break
@@ -18327,7 +19325,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
esac
fi
-echo "$as_me:18330: result: $cf_cv_term_header" >&5
+echo "$as_me:19328: result: $cf_cv_term_header" >&5
echo "${ECHO_T}$cf_cv_term_header" >&6
case "$cf_cv_term_header" in
@@ -18354,7 +19352,7 @@ EOF
;;
esac
-echo "$as_me:18357: checking for unctrl.h" >&5
+echo "$as_me:19355: checking for unctrl.h" >&5
echo $ECHO_N "checking for unctrl.h... $ECHO_C" >&6
if test "${cf_cv_unctrl_header+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -18375,7 +19373,7 @@ esac
for cf_header in $cf_header_list
do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 18378 "configure"
+#line 19376 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
@@ -18389,16 +19387,16 @@ WINDOW *x; (void)x
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:18392: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:19390: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:18395: \$? = $ac_status" >&5
+ echo "$as_me:19393: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:18398: \"$ac_try\"") >&5
+ { (eval echo "$as_me:19396: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:18401: \$? = $ac_status" >&5
+ echo "$as_me:19399: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_unctrl_header=$cf_header
break
@@ -18411,12 +19409,12 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
done
fi
-echo "$as_me:18414: result: $cf_cv_unctrl_header" >&5
+echo "$as_me:19412: result: $cf_cv_unctrl_header" >&5
echo "${ECHO_T}$cf_cv_unctrl_header" >&6
case "$cf_cv_unctrl_header" in
(no)
- { echo "$as_me:18419: WARNING: unctrl.h header not found" >&5
+ { echo "$as_me:19417: WARNING: unctrl.h header not found" >&5
echo "$as_me: WARNING: unctrl.h header not found" >&2;}
;;
esac
@@ -18446,12 +19444,15 @@ EOF
esac
for cf_func in \
+_nc_tparm_analyze \
+_tracef \
alloc_pair \
assume_default_colors \
chgat \
color_content \
color_set \
copywin \
+curses_trace \
delscreen \
dupwin \
exit_curses \
@@ -18486,8 +19487,12 @@ termname \
tgetent \
tigetnum \
tigetstr \
+tiparm \
+tiparm_s \
+tiscan_s \
tputs_sp \
typeahead \
+unget_wch \
use_default_colors \
use_env \
use_extended_names \
@@ -18502,16 +19507,15 @@ winsdelln \
winsstr \
wresize \
wsyncdown \
-_tracef \
do
cf_tr_func=`echo "$cf_func" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
- echo "$as_me:18511: checking for ${cf_func}" >&5
+ echo "$as_me:19515: checking for ${cf_func}" >&5
echo $ECHO_N "checking for ${cf_func}... $ECHO_C" >&6
-echo "${as_me:-configure}:18514: testing ${cf_func} ..." 1>&5
+echo "${as_me:-configure}:19518: testing ${cf_func} ..." 1>&5
if eval "test \"\${cf_cv_func_$cf_func+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -18520,7 +19524,7 @@ else
eval cf_result='$ac_cv_func_'$cf_func
if test ".$cf_result" != ".no"; then
cat >"conftest.$ac_ext" <<_ACEOF
-#line 18523 "configure"
+#line 19527 "configure"
#include "confdefs.h"
#ifdef HAVE_XCURSES
@@ -18553,16 +19557,16 @@ if (foo + 1234L > 5678L)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:18556: \"$ac_link\"") >&5
+if { (eval echo "$as_me:19560: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:18559: \$? = $ac_status" >&5
+ echo "$as_me:19563: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:18562: \"$ac_try\"") >&5
+ { (eval echo "$as_me:19566: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:18565: \$? = $ac_status" >&5
+ echo "$as_me:19569: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_result=yes
else
@@ -18578,7 +19582,7 @@ fi
# use the computed/retrieved cache-value:
eval 'cf_result=$cf_cv_func_'$cf_func
- echo "$as_me:18581: result: $cf_result" >&5
+ echo "$as_me:19585: result: $cf_result" >&5
echo "${ECHO_T}$cf_result" >&6
if test "$cf_result" != no; then
cat >>confdefs.h <<EOF
@@ -18593,10 +19597,10 @@ do
cf_tr_func=`echo "$cf_func" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
- echo "$as_me:18596: checking for ${cf_func}" >&5
+ echo "$as_me:19600: checking for ${cf_func}" >&5
echo $ECHO_N "checking for ${cf_func}... $ECHO_C" >&6
-echo "${as_me:-configure}:18599: testing ${cf_func} ..." 1>&5
+echo "${as_me:-configure}:19603: testing ${cf_func} ..." 1>&5
if eval "test \"\${cf_cv_func_$cf_func+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -18605,7 +19609,7 @@ else
eval cf_result='$ac_cv_func_'$cf_func
if test ".$cf_result" != ".no"; then
cat >"conftest.$ac_ext" <<_ACEOF
-#line 18608 "configure"
+#line 19612 "configure"
#include "confdefs.h"
#ifdef HAVE_XCURSES
@@ -18638,16 +19642,16 @@ if (foo + 1234L > 5678L)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:18641: \"$ac_link\"") >&5
+if { (eval echo "$as_me:19645: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:18644: \$? = $ac_status" >&5
+ echo "$as_me:19648: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:18647: \"$ac_try\"") >&5
+ { (eval echo "$as_me:19651: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:18650: \$? = $ac_status" >&5
+ echo "$as_me:19654: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_result=yes
else
@@ -18663,7 +19667,7 @@ fi
# use the computed/retrieved cache-value:
eval 'cf_result=$cf_cv_func_'$cf_func
- echo "$as_me:18666: result: $cf_result" >&5
+ echo "$as_me:19670: result: $cf_result" >&5
echo "${ECHO_T}$cf_result" >&6
if test "$cf_result" != no; then
cat >>confdefs.h <<EOF
@@ -18687,7 +19691,7 @@ then
cf_return="return value"
fi
cat >"conftest.$ac_ext" <<_ACEOF
-#line 18690 "configure"
+#line 19694 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
@@ -18707,21 +19711,21 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:18710: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:19714: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:18713: \$? = $ac_status" >&5
+ echo "$as_me:19717: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:18716: \"$ac_try\"") >&5
+ { (eval echo "$as_me:19720: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:18719: \$? = $ac_status" >&5
+ echo "$as_me:19723: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
test -n "$verbose" && echo " prototype $cf_ret func($cf_arg value)" 1>&6
-echo "${as_me:-configure}:18724: testing prototype $cf_ret func($cf_arg value) ..." 1>&5
+echo "${as_me:-configure}:19728: testing prototype $cf_ret func($cf_arg value) ..." 1>&5
cat >>confdefs.h <<EOF
#define TPUTS_ARG $cf_arg
@@ -18741,14 +19745,14 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
done
fi
-echo "$as_me:18744: checking for ncurses extended functions" >&5
+echo "$as_me:19748: checking for ncurses extended functions" >&5
echo $ECHO_N "checking for ncurses extended functions... $ECHO_C" >&6
if test "${cf_cv_ncurses_ext_funcs+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 18751 "configure"
+#line 19755 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
@@ -18763,16 +19767,16 @@ int x = NCURSES_EXT_FUNCS
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:18766: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:19770: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:18769: \$? = $ac_status" >&5
+ echo "$as_me:19773: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:18772: \"$ac_try\"") >&5
+ { (eval echo "$as_me:19776: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:18775: \$? = $ac_status" >&5
+ echo "$as_me:19779: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_ncurses_ext_funcs=defined
else
@@ -18780,7 +19784,7 @@ else
cat "conftest.$ac_ext" >&5
cat >"conftest.$ac_ext" <<_ACEOF
-#line 18783 "configure"
+#line 19787 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
@@ -18805,16 +19809,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:18808: \"$ac_link\"") >&5
+if { (eval echo "$as_me:19812: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:18811: \$? = $ac_status" >&5
+ echo "$as_me:19815: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:18814: \"$ac_try\"") >&5
+ { (eval echo "$as_me:19818: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:18817: \$? = $ac_status" >&5
+ echo "$as_me:19821: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_ncurses_ext_funcs=yes
else
@@ -18828,7 +19832,7 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:18831: result: $cf_cv_ncurses_ext_funcs" >&5
+echo "$as_me:19835: result: $cf_cv_ncurses_ext_funcs" >&5
echo "${ECHO_T}$cf_cv_ncurses_ext_funcs" >&6
test "$cf_cv_ncurses_ext_funcs" = yes &&
cat >>confdefs.h <<\EOF
@@ -18842,11 +19846,11 @@ then
if test -n "$cf_cv_ncurses_version" && test "x$cf_cv_ncurses_version" != xno
then
cf_define_xpg5=no
- echo "$as_me:18845: checking if _XPG5 should be defined to enable wide-characters" >&5
+ echo "$as_me:19849: checking if _XPG5 should be defined to enable wide-characters" >&5
echo $ECHO_N "checking if _XPG5 should be defined to enable wide-characters... $ECHO_C" >&6
cat >"conftest.$ac_ext" <<_ACEOF
-#line 18849 "configure"
+#line 19853 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
@@ -18859,16 +19863,16 @@ int x = _XPG5
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:18862: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:19866: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:18865: \$? = $ac_status" >&5
+ echo "$as_me:19869: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:18868: \"$ac_try\"") >&5
+ { (eval echo "$as_me:19872: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:18871: \$? = $ac_status" >&5
+ echo "$as_me:19875: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
:
else
@@ -18877,7 +19881,7 @@ cat "conftest.$ac_ext" >&5
cf_save_cppflags="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS -D_XPG5"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 18880 "configure"
+#line 19884 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
@@ -18890,16 +19894,16 @@ int x = _XPG5
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:18893: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:19897: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:18896: \$? = $ac_status" >&5
+ echo "$as_me:19900: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:18899: \"$ac_try\"") >&5
+ { (eval echo "$as_me:19903: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:18902: \$? = $ac_status" >&5
+ echo "$as_me:19906: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_define_xpg5=yes
else
@@ -18910,7 +19914,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
CPPFLAGS="$cf_save_cppflags"
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
- echo "$as_me:18913: result: $cf_define_xpg5" >&5
+ echo "$as_me:19917: result: $cf_define_xpg5" >&5
echo "${ECHO_T}$cf_define_xpg5" >&6
if test "$cf_define_xpg5" = yes
@@ -18919,14 +19923,14 @@ echo "${ECHO_T}$cf_define_xpg5" >&6
fi
fi
- echo "$as_me:18922: checking for wide-character functions" >&5
+ echo "$as_me:19926: checking for wide-character functions" >&5
echo $ECHO_N "checking for wide-character functions... $ECHO_C" >&6
if test "${cf_cv_widechar_funcs+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 18929 "configure"
+#line 19933 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
@@ -18943,16 +19947,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:18946: \"$ac_link\"") >&5
+if { (eval echo "$as_me:19950: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:18949: \$? = $ac_status" >&5
+ echo "$as_me:19953: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:18952: \"$ac_try\"") >&5
+ { (eval echo "$as_me:19956: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:18955: \$? = $ac_status" >&5
+ echo "$as_me:19959: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_widechar_funcs=yes
else
@@ -18963,7 +19967,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:18966: result: $cf_cv_widechar_funcs" >&5
+echo "$as_me:19970: result: $cf_cv_widechar_funcs" >&5
echo "${ECHO_T}$cf_cv_widechar_funcs" >&6
if test "$cf_cv_widechar_funcs" != no ; then
@@ -18984,14 +19988,14 @@ EOF
fi
-echo "$as_me:18987: checking if $cf_cv_screen library uses pthreads" >&5
+echo "$as_me:19991: checking if $cf_cv_screen library uses pthreads" >&5
echo $ECHO_N "checking if $cf_cv_screen library uses pthreads... $ECHO_C" >&6
if test "${cf_cv_use_pthreads+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 18994 "configure"
+#line 19998 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
@@ -19009,16 +20013,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:19012: \"$ac_link\"") >&5
+if { (eval echo "$as_me:20016: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:19015: \$? = $ac_status" >&5
+ echo "$as_me:20019: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:19018: \"$ac_try\"") >&5
+ { (eval echo "$as_me:20022: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:19021: \$? = $ac_status" >&5
+ echo "$as_me:20025: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_use_pthreads=yes
else
@@ -19029,21 +20033,21 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:19032: result: $cf_cv_use_pthreads" >&5
+echo "$as_me:20036: result: $cf_cv_use_pthreads" >&5
echo "${ECHO_T}$cf_cv_use_pthreads" >&6
test $cf_cv_use_pthreads = yes &&
cat >>confdefs.h <<\EOF
#define USE_PTHREADS 1
EOF
-echo "$as_me:19039: checking if sys/time.h works with sys/select.h" >&5
+echo "$as_me:20043: checking if sys/time.h works with sys/select.h" >&5
echo $ECHO_N "checking if sys/time.h works with sys/select.h... $ECHO_C" >&6
if test "${cf_cv_sys_time_select+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 19046 "configure"
+#line 20050 "configure"
#include "confdefs.h"
#include <sys/types.h>
@@ -19063,16 +20067,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:19066: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:20070: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:19069: \$? = $ac_status" >&5
+ echo "$as_me:20073: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:19072: \"$ac_try\"") >&5
+ { (eval echo "$as_me:20076: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:19075: \$? = $ac_status" >&5
+ echo "$as_me:20079: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_sys_time_select=yes
else
@@ -19084,7 +20088,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:19087: result: $cf_cv_sys_time_select" >&5
+echo "$as_me:20091: result: $cf_cv_sys_time_select" >&5
echo "${ECHO_T}$cf_cv_sys_time_select" >&6
test "$cf_cv_sys_time_select" = yes &&
cat >>confdefs.h <<\EOF
@@ -19093,7 +20097,7 @@ EOF
# special check for test/ditto.c
-echo "$as_me:19096: checking for openpty in -lutil" >&5
+echo "$as_me:20100: checking for openpty in -lutil" >&5
echo $ECHO_N "checking for openpty in -lutil... $ECHO_C" >&6
if test "${ac_cv_lib_util_openpty+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -19101,7 +20105,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lutil $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 19104 "configure"
+#line 20108 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -19110,7 +20114,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char openpty ();
+char openpty (void);
int
main (void)
{
@@ -19120,16 +20124,16 @@ openpty ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:19123: \"$ac_link\"") >&5
+if { (eval echo "$as_me:20127: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:19126: \$? = $ac_status" >&5
+ echo "$as_me:20130: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:19129: \"$ac_try\"") >&5
+ { (eval echo "$as_me:20133: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:19132: \$? = $ac_status" >&5
+ echo "$as_me:20136: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_util_openpty=yes
else
@@ -19140,7 +20144,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:19143: result: $ac_cv_lib_util_openpty" >&5
+echo "$as_me:20147: result: $ac_cv_lib_util_openpty" >&5
echo "${ECHO_T}$ac_cv_lib_util_openpty" >&6
if test "$ac_cv_lib_util_openpty" = yes; then
cf_cv_lib_util=yes
@@ -19148,7 +20152,7 @@ else
cf_cv_lib_util=no
fi
-echo "$as_me:19151: checking for openpty header" >&5
+echo "$as_me:20155: checking for openpty header" >&5
echo $ECHO_N "checking for openpty header... $ECHO_C" >&6
if test "${cf_cv_func_openpty+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -19175,7 +20179,7 @@ LIBS="$cf_add_libs"
for cf_header in pty.h libutil.h util.h
do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 19178 "configure"
+#line 20182 "configure"
#include "confdefs.h"
#include <$cf_header>
@@ -19186,22 +20190,23 @@ main (void)
int x = openpty((int *)0, (int *)0, (char *)0,
(struct termios *)0, (struct winsize *)0);
+ (void)x;
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:19195: \"$ac_link\"") >&5
+if { (eval echo "$as_me:20200: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:19198: \$? = $ac_status" >&5
+ echo "$as_me:20203: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:19201: \"$ac_try\"") >&5
+ { (eval echo "$as_me:20206: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:19204: \$? = $ac_status" >&5
+ echo "$as_me:20209: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_func_openpty=$cf_header
@@ -19219,7 +20224,7 @@ rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS="$cf_save_LIBS"
fi
-echo "$as_me:19222: result: $cf_cv_func_openpty" >&5
+echo "$as_me:20227: result: $cf_cv_func_openpty" >&5
echo "${ECHO_T}$cf_cv_func_openpty" >&6
if test "$cf_cv_func_openpty" != no ; then
@@ -19253,7 +20258,7 @@ TEST_LIBS="$cf_add_libs"
fi
fi
-echo "$as_me:19256: checking for function curses_version" >&5
+echo "$as_me:20261: checking for function curses_version" >&5
echo $ECHO_N "checking for function curses_version... $ECHO_C" >&6
if test "${cf_cv_func_curses_version+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -19263,28 +20268,31 @@ if test "$cross_compiling" = yes; then
cf_cv_func_curses_version=unknown
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 19266 "configure"
+#line 20271 "configure"
#include "confdefs.h"
+$ac_includes_default
+
#include <${cf_cv_ncurses_header:-curses.h}>
+
int main(void)
{
char temp[1024];
- sprintf(temp, "%s\\n", curses_version());
+ sprintf(temp, "%.999s\\n", curses_version());
${cf_cv_main_return:-return}(0);
}
_ACEOF
rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:19279: \"$ac_link\"") >&5
+if { (eval echo "$as_me:20287: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:19282: \$? = $ac_status" >&5
+ echo "$as_me:20290: \$? = $ac_status" >&5
(exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:19284: \"$ac_try\"") >&5
+ { (eval echo "$as_me:20292: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:19287: \$? = $ac_status" >&5
+ echo "$as_me:20295: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_func_curses_version=yes
@@ -19299,14 +20307,14 @@ rm -f core ./core.* ./*.core "conftest$ac_exeext" "conftest.$ac_objext" "conftes
fi
rm -f core
fi
-echo "$as_me:19302: result: $cf_cv_func_curses_version" >&5
+echo "$as_me:20310: result: $cf_cv_func_curses_version" >&5
echo "${ECHO_T}$cf_cv_func_curses_version" >&6
test "$cf_cv_func_curses_version" = yes &&
cat >>confdefs.h <<\EOF
#define HAVE_CURSES_VERSION 1
EOF
-echo "$as_me:19309: checking for alternate character set array" >&5
+echo "$as_me:20317: checking for alternate character set array" >&5
echo $ECHO_N "checking for alternate character set array... $ECHO_C" >&6
if test "${cf_cv_curses_acs_map+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -19316,7 +20324,7 @@ cf_cv_curses_acs_map=unknown
for name in acs_map _acs_map __acs_map ${NCURSES_WRAP_PREFIX}acs_map
do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 19319 "configure"
+#line 20327 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header:-curses.h}>
@@ -19332,16 +20340,16 @@ ${name}['k'] = ACS_PLUS
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:19335: \"$ac_link\"") >&5
+if { (eval echo "$as_me:20343: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:19338: \$? = $ac_status" >&5
+ echo "$as_me:20346: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:19341: \"$ac_try\"") >&5
+ { (eval echo "$as_me:20349: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:19344: \$? = $ac_status" >&5
+ echo "$as_me:20352: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_curses_acs_map=$name; break
else
@@ -19352,7 +20360,7 @@ rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
done
fi
-echo "$as_me:19355: result: $cf_cv_curses_acs_map" >&5
+echo "$as_me:20363: result: $cf_cv_curses_acs_map" >&5
echo "${ECHO_T}$cf_cv_curses_acs_map" >&6
test "$cf_cv_curses_acs_map" != unknown &&
@@ -19362,7 +20370,7 @@ EOF
if test "$cf_enable_widec" = yes; then
-echo "$as_me:19365: checking for wide alternate character set array" >&5
+echo "$as_me:20373: checking for wide alternate character set array" >&5
echo $ECHO_N "checking for wide alternate character set array... $ECHO_C" >&6
if test "${cf_cv_curses_wacs_map+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -19372,7 +20380,7 @@ else
for name in wacs_map _wacs_map __wacs_map _nc_wacs _wacs_char
do
cat >"conftest.$ac_ext" <<_ACEOF
-#line 19375 "configure"
+#line 20383 "configure"
#include "confdefs.h"
#ifndef _XOPEN_SOURCE_EXTENDED
@@ -19388,16 +20396,16 @@ void *foo = &(${name}['k']); (void)foo
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:19391: \"$ac_link\"") >&5
+if { (eval echo "$as_me:20399: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:19394: \$? = $ac_status" >&5
+ echo "$as_me:20402: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:19397: \"$ac_try\"") >&5
+ { (eval echo "$as_me:20405: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:19400: \$? = $ac_status" >&5
+ echo "$as_me:20408: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_curses_wacs_map=$name
break
@@ -19408,7 +20416,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
done
fi
-echo "$as_me:19411: result: $cf_cv_curses_wacs_map" >&5
+echo "$as_me:20419: result: $cf_cv_curses_wacs_map" >&5
echo "${ECHO_T}$cf_cv_curses_wacs_map" >&6
test "$cf_cv_curses_wacs_map" != unknown &&
@@ -19416,7 +20424,7 @@ cat >>confdefs.h <<EOF
#define CURSES_WACS_ARRAY $cf_cv_curses_wacs_map
EOF
-echo "$as_me:19419: checking for wide alternate character constants" >&5
+echo "$as_me:20427: checking for wide alternate character constants" >&5
echo $ECHO_N "checking for wide alternate character constants... $ECHO_C" >&6
if test "${cf_cv_curses_wacs_symbols+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -19426,7 +20434,7 @@ cf_cv_curses_wacs_symbols=no
if test "$cf_cv_curses_wacs_map" != unknown
then
cat >"conftest.$ac_ext" <<_ACEOF
-#line 19429 "configure"
+#line 20437 "configure"
#include "confdefs.h"
#ifndef _XOPEN_SOURCE_EXTENDED
@@ -19443,16 +20451,16 @@ cchar_t *foo = WACS_PLUS;
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:19446: \"$ac_link\"") >&5
+if { (eval echo "$as_me:20454: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:19449: \$? = $ac_status" >&5
+ echo "$as_me:20457: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:19452: \"$ac_try\"") >&5
+ { (eval echo "$as_me:20460: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:19455: \$? = $ac_status" >&5
+ echo "$as_me:20463: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_curses_wacs_symbols=yes
else
@@ -19462,7 +20470,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 19465 "configure"
+#line 20473 "configure"
#include "confdefs.h"
#ifndef _XOPEN_SOURCE_EXTENDED
@@ -19478,16 +20486,16 @@ cchar_t *foo = WACS_PLUS; (void)foo
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:19481: \"$ac_link\"") >&5
+if { (eval echo "$as_me:20489: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:19484: \$? = $ac_status" >&5
+ echo "$as_me:20492: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:19487: \"$ac_try\"") >&5
+ { (eval echo "$as_me:20495: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:19490: \$? = $ac_status" >&5
+ echo "$as_me:20498: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_curses_wacs_symbols=yes
else
@@ -19498,7 +20506,7 @@ rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
fi
-echo "$as_me:19501: result: $cf_cv_curses_wacs_symbols" >&5
+echo "$as_me:20509: result: $cf_cv_curses_wacs_symbols" >&5
echo "${ECHO_T}$cf_cv_curses_wacs_symbols" >&6
test "$cf_cv_curses_wacs_symbols" != no &&
@@ -19508,10 +20516,10 @@ EOF
fi
-echo "$as_me:19511: checking for type attr_t in ${cf_cv_ncurses_header:-curses.h}" >&5
+echo "$as_me:20519: checking for type attr_t in ${cf_cv_ncurses_header:-curses.h}" >&5
echo $ECHO_N "checking for type attr_t in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6
cat >"conftest.$ac_ext" <<_ACEOF
-#line 19514 "configure"
+#line 20522 "configure"
#include "confdefs.h"
#ifndef _XOPEN_SOURCE_EXTENDED
@@ -19529,16 +20537,16 @@ attr_t foo
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:19532: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:20540: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:19535: \$? = $ac_status" >&5
+ echo "$as_me:20543: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:19538: \"$ac_try\"") >&5
+ { (eval echo "$as_me:20546: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:19541: \$? = $ac_status" >&5
+ echo "$as_me:20549: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_result=yes
else
@@ -19547,7 +20555,7 @@ cat "conftest.$ac_ext" >&5
cf_result=no
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
-echo "$as_me:19550: result: $cf_result" >&5
+echo "$as_me:20558: result: $cf_result" >&5
echo "${ECHO_T}$cf_result" >&6
if test "$cf_result" = yes ; then
@@ -19568,14 +20576,14 @@ fi
if test "$cf_enable_widec" = yes; then
# This is needed on Tru64 5.0 to declare mbstate_t
-echo "$as_me:19571: checking if we must include wchar.h to declare mbstate_t" >&5
+echo "$as_me:20579: checking if we must include wchar.h to declare mbstate_t" >&5
echo $ECHO_N "checking if we must include wchar.h to declare mbstate_t... $ECHO_C" >&6
if test "${cf_cv_mbstate_t+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 19578 "configure"
+#line 20586 "configure"
#include "confdefs.h"
#include <stdlib.h>
@@ -19587,29 +20595,29 @@ cat >"conftest.$ac_ext" <<_ACEOF
int
main (void)
{
-mbstate_t state
+mbstate_t state; (void)state
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:19596: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:20604: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:19599: \$? = $ac_status" >&5
+ echo "$as_me:20607: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:19602: \"$ac_try\"") >&5
+ { (eval echo "$as_me:20610: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:19605: \$? = $ac_status" >&5
+ echo "$as_me:20613: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_mbstate_t=no
else
echo "$as_me: failed program was:" >&5
cat "conftest.$ac_ext" >&5
cat >"conftest.$ac_ext" <<_ACEOF
-#line 19612 "configure"
+#line 20620 "configure"
#include "confdefs.h"
#include <stdlib.h>
@@ -19622,22 +20630,22 @@ cat >"conftest.$ac_ext" <<_ACEOF
int
main (void)
{
-mbstate_t value
+mbstate_t value; (void) value
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:19631: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:20639: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:19634: \$? = $ac_status" >&5
+ echo "$as_me:20642: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:19637: \"$ac_try\"") >&5
+ { (eval echo "$as_me:20645: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:19640: \$? = $ac_status" >&5
+ echo "$as_me:20648: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_mbstate_t=yes
else
@@ -19649,7 +20657,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:19652: result: $cf_cv_mbstate_t" >&5
+echo "$as_me:20660: result: $cf_cv_mbstate_t" >&5
echo "${ECHO_T}$cf_cv_mbstate_t" >&6
if test "$cf_cv_mbstate_t" = yes ; then
@@ -19672,14 +20680,14 @@ if test "$cf_cv_mbstate_t" != unknown ; then
fi
# This is needed on Tru64 5.0 to declare wchar_t
-echo "$as_me:19675: checking if we must include wchar.h to declare wchar_t" >&5
+echo "$as_me:20683: checking if we must include wchar.h to declare wchar_t" >&5
echo $ECHO_N "checking if we must include wchar.h to declare wchar_t... $ECHO_C" >&6
if test "${cf_cv_wchar_t+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 19682 "configure"
+#line 20690 "configure"
#include "confdefs.h"
#include <stdlib.h>
@@ -19691,29 +20699,29 @@ cat >"conftest.$ac_ext" <<_ACEOF
int
main (void)
{
-wchar_t state
+wchar_t state; (void)state
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:19700: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:20708: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:19703: \$? = $ac_status" >&5
+ echo "$as_me:20711: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:19706: \"$ac_try\"") >&5
+ { (eval echo "$as_me:20714: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:19709: \$? = $ac_status" >&5
+ echo "$as_me:20717: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_wchar_t=no
else
echo "$as_me: failed program was:" >&5
cat "conftest.$ac_ext" >&5
cat >"conftest.$ac_ext" <<_ACEOF
-#line 19716 "configure"
+#line 20724 "configure"
#include "confdefs.h"
#include <stdlib.h>
@@ -19726,22 +20734,22 @@ cat >"conftest.$ac_ext" <<_ACEOF
int
main (void)
{
-wchar_t value
+wchar_t value; (void) value
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:19735: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:20743: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:19738: \$? = $ac_status" >&5
+ echo "$as_me:20746: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:19741: \"$ac_try\"") >&5
+ { (eval echo "$as_me:20749: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:19744: \$? = $ac_status" >&5
+ echo "$as_me:20752: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_wchar_t=yes
else
@@ -19753,7 +20761,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:19756: result: $cf_cv_wchar_t" >&5
+echo "$as_me:20764: result: $cf_cv_wchar_t" >&5
echo "${ECHO_T}$cf_cv_wchar_t" >&6
if test "$cf_cv_wchar_t" = yes ; then
@@ -19776,14 +20784,14 @@ if test "$cf_cv_wchar_t" != unknown ; then
fi
# This is needed on Tru64 5.0 to declare wint_t
-echo "$as_me:19779: checking if we must include wchar.h to declare wint_t" >&5
+echo "$as_me:20787: checking if we must include wchar.h to declare wint_t" >&5
echo $ECHO_N "checking if we must include wchar.h to declare wint_t... $ECHO_C" >&6
if test "${cf_cv_wint_t+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 19786 "configure"
+#line 20794 "configure"
#include "confdefs.h"
#include <stdlib.h>
@@ -19795,29 +20803,29 @@ cat >"conftest.$ac_ext" <<_ACEOF
int
main (void)
{
-wint_t state
+wint_t state; (void)state
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:19804: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:20812: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:19807: \$? = $ac_status" >&5
+ echo "$as_me:20815: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:19810: \"$ac_try\"") >&5
+ { (eval echo "$as_me:20818: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:19813: \$? = $ac_status" >&5
+ echo "$as_me:20821: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_wint_t=no
else
echo "$as_me: failed program was:" >&5
cat "conftest.$ac_ext" >&5
cat >"conftest.$ac_ext" <<_ACEOF
-#line 19820 "configure"
+#line 20828 "configure"
#include "confdefs.h"
#include <stdlib.h>
@@ -19830,22 +20838,22 @@ cat >"conftest.$ac_ext" <<_ACEOF
int
main (void)
{
-wint_t value
+wint_t value; (void) value
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:19839: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:20847: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:19842: \$? = $ac_status" >&5
+ echo "$as_me:20850: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:19845: \"$ac_try\"") >&5
+ { (eval echo "$as_me:20853: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:19848: \$? = $ac_status" >&5
+ echo "$as_me:20856: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_wint_t=yes
else
@@ -19857,7 +20865,7 @@ rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:19860: result: $cf_cv_wint_t" >&5
+echo "$as_me:20868: result: $cf_cv_wint_t" >&5
echo "${ECHO_T}$cf_cv_wint_t" >&6
if test "$cf_cv_wint_t" = yes ; then
@@ -19881,10 +20889,10 @@ fi
if test "$NCURSES_OK_MBSTATE_T" = 0 ; then
-echo "$as_me:19884: checking for type mbstate_t in ${cf_cv_ncurses_header:-curses.h}" >&5
+echo "$as_me:20892: checking for type mbstate_t in ${cf_cv_ncurses_header:-curses.h}" >&5
echo $ECHO_N "checking for type mbstate_t in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6
cat >"conftest.$ac_ext" <<_ACEOF
-#line 19887 "configure"
+#line 20895 "configure"
#include "confdefs.h"
#ifndef _XOPEN_SOURCE_EXTENDED
@@ -19902,16 +20910,16 @@ mbstate_t foo
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:19905: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:20913: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:19908: \$? = $ac_status" >&5
+ echo "$as_me:20916: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:19911: \"$ac_try\"") >&5
+ { (eval echo "$as_me:20919: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:19914: \$? = $ac_status" >&5
+ echo "$as_me:20922: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_result=yes
else
@@ -19920,7 +20928,7 @@ cat "conftest.$ac_ext" >&5
cf_result=no
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
-echo "$as_me:19923: result: $cf_result" >&5
+echo "$as_me:20931: result: $cf_result" >&5
echo "${ECHO_T}$cf_result" >&6
if test "$cf_result" = yes ; then
@@ -19942,10 +20950,10 @@ fi
if test "$NCURSES_OK_WCHAR_T" = 0 ; then
-echo "$as_me:19945: checking for type wchar_t in ${cf_cv_ncurses_header:-curses.h}" >&5
+echo "$as_me:20953: checking for type wchar_t in ${cf_cv_ncurses_header:-curses.h}" >&5
echo $ECHO_N "checking for type wchar_t in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6
cat >"conftest.$ac_ext" <<_ACEOF
-#line 19948 "configure"
+#line 20956 "configure"
#include "confdefs.h"
#ifndef _XOPEN_SOURCE_EXTENDED
@@ -19963,16 +20971,16 @@ wchar_t foo
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:19966: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:20974: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:19969: \$? = $ac_status" >&5
+ echo "$as_me:20977: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:19972: \"$ac_try\"") >&5
+ { (eval echo "$as_me:20980: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:19975: \$? = $ac_status" >&5
+ echo "$as_me:20983: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_result=yes
else
@@ -19981,7 +20989,7 @@ cat "conftest.$ac_ext" >&5
cf_result=no
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
-echo "$as_me:19984: result: $cf_result" >&5
+echo "$as_me:20992: result: $cf_result" >&5
echo "${ECHO_T}$cf_result" >&6
if test "$cf_result" = yes ; then
@@ -20003,10 +21011,10 @@ fi
if test "$NCURSES_OK_WINT_T" = 0 ; then
-echo "$as_me:20006: checking for type wint_t in ${cf_cv_ncurses_header:-curses.h}" >&5
+echo "$as_me:21014: checking for type wint_t in ${cf_cv_ncurses_header:-curses.h}" >&5
echo $ECHO_N "checking for type wint_t in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6
cat >"conftest.$ac_ext" <<_ACEOF
-#line 20009 "configure"
+#line 21017 "configure"
#include "confdefs.h"
#ifndef _XOPEN_SOURCE_EXTENDED
@@ -20024,16 +21032,16 @@ wint_t foo
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:20027: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:21035: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:20030: \$? = $ac_status" >&5
+ echo "$as_me:21038: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:20033: \"$ac_try\"") >&5
+ { (eval echo "$as_me:21041: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:20036: \$? = $ac_status" >&5
+ echo "$as_me:21044: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_result=yes
else
@@ -20042,7 +21050,7 @@ cat "conftest.$ac_ext" >&5
cf_result=no
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
-echo "$as_me:20045: result: $cf_result" >&5
+echo "$as_me:21053: result: $cf_result" >&5
echo "${ECHO_T}$cf_result" >&6
if test "$cf_result" = yes ; then
@@ -20071,11 +21079,11 @@ boolnames \
boolfnames \
ttytype
do
-echo "$as_me:20074: checking for data $cf_data declaration in ${cf_cv_ncurses_header:-curses.h}" >&5
+echo "$as_me:21082: checking for data $cf_data declaration in ${cf_cv_ncurses_header:-curses.h}" >&5
echo $ECHO_N "checking for data $cf_data declaration in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6
cat >"conftest.$ac_ext" <<_ACEOF
-#line 20078 "configure"
+#line 21086 "configure"
#include "confdefs.h"
#ifdef HAVE_XCURSES
@@ -20108,16 +21116,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:20111: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:21119: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:20114: \$? = $ac_status" >&5
+ echo "$as_me:21122: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:20117: \"$ac_try\"") >&5
+ { (eval echo "$as_me:21125: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:20120: \$? = $ac_status" >&5
+ echo "$as_me:21128: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_result=yes
@@ -20127,7 +21135,7 @@ cat "conftest.$ac_ext" >&5
cf_result=no
fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
-echo "$as_me:20130: result: $cf_result" >&5
+echo "$as_me:21138: result: $cf_result" >&5
echo "${ECHO_T}$cf_result" >&6
if test "$cf_result" = yes ; then
@@ -20139,14 +21147,14 @@ cf_result=`echo "have_curses_data_$cf_data" | sed y%abcdefghijklmnopqrstuvwxyz./
EOF
else
- echo "$as_me:20142: checking for data $cf_data in library" >&5
+ echo "$as_me:21150: checking for data $cf_data in library" >&5
echo $ECHO_N "checking for data $cf_data in library... $ECHO_C" >&6
# BSD linkers insist on making weak linkage, but resolve at runtime.
if test "$cross_compiling" = yes; then
# cross-compiling
cat >"conftest.$ac_ext" <<_ACEOF
-#line 20149 "configure"
+#line 21157 "configure"
#include "confdefs.h"
#ifdef HAVE_XCURSES
@@ -20185,16 +21193,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:20188: \"$ac_link\"") >&5
+if { (eval echo "$as_me:21196: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:20191: \$? = $ac_status" >&5
+ echo "$as_me:21199: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:20194: \"$ac_try\"") >&5
+ { (eval echo "$as_me:21202: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:20197: \$? = $ac_status" >&5
+ echo "$as_me:21205: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_result=yes
else
@@ -20206,7 +21214,7 @@ rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 20209 "configure"
+#line 21217 "configure"
#include "confdefs.h"
#ifdef HAVE_XCURSES
@@ -20238,15 +21246,15 @@ int main(void)
}
_ACEOF
rm -f "conftest$ac_exeext"
-if { (eval echo "$as_me:20241: \"$ac_link\"") >&5
+if { (eval echo "$as_me:21249: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:20244: \$? = $ac_status" >&5
+ echo "$as_me:21252: \$? = $ac_status" >&5
(exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"'
- { (eval echo "$as_me:20246: \"$ac_try\"") >&5
+ { (eval echo "$as_me:21254: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:20249: \$? = $ac_status" >&5
+ echo "$as_me:21257: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_result=yes
@@ -20258,7 +21266,7 @@ cf_result=no
fi
rm -f core ./core.* ./*.core "conftest$ac_exeext" "conftest.$ac_objext" "conftest.$ac_ext"
fi
- echo "$as_me:20261: result: $cf_result" >&5
+ echo "$as_me:21269: result: $cf_result" >&5
echo "${ECHO_T}$cf_result" >&6
if test "$cf_result" = yes ; then
@@ -20275,7 +21283,7 @@ done
if test -n "$with_screen" && test "x$with_screen" = "xpdcurses"
then
- echo "$as_me:20278: checking for X" >&5
+ echo "$as_me:21286: checking for X" >&5
echo $ECHO_N "checking for X... $ECHO_C" >&6
# Check whether --with-x or --without-x was given.
@@ -20379,17 +21387,17 @@ if test "$ac_x_includes" = no; then
# Guess where to find include files, by looking for Intrinsic.h.
# First, try using that file with no special directory specified.
cat >"conftest.$ac_ext" <<_ACEOF
-#line 20382 "configure"
+#line 21390 "configure"
#include "confdefs.h"
#include <X11/Intrinsic.h>
_ACEOF
-if { (eval echo "$as_me:20386: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:21394: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:20392: \$? = $ac_status" >&5
+ echo "$as_me:21400: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -20422,7 +21430,7 @@ if test "$ac_x_libraries" = no; then
ac_save_LIBS=$LIBS
LIBS="-lXt $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 20425 "configure"
+#line 21433 "configure"
#include "confdefs.h"
#include <X11/Intrinsic.h>
int
@@ -20434,16 +21442,16 @@ XtMalloc (0)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:20437: \"$ac_link\"") >&5
+if { (eval echo "$as_me:21445: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:20440: \$? = $ac_status" >&5
+ echo "$as_me:21448: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:20443: \"$ac_try\"") >&5
+ { (eval echo "$as_me:21451: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:20446: \$? = $ac_status" >&5
+ echo "$as_me:21454: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
LIBS=$ac_save_LIBS
# We can link X programs with no special library path.
@@ -20481,7 +21489,7 @@ fi
fi # $with_x != no
if test "$have_x" != yes; then
- echo "$as_me:20484: result: $have_x" >&5
+ echo "$as_me:21492: result: $have_x" >&5
echo "${ECHO_T}$have_x" >&6
no_x=yes
else
@@ -20491,7 +21499,7 @@ else
# Update the cache value to reflect the command line values.
ac_cv_have_x="have_x=yes \
ac_x_includes=$x_includes ac_x_libraries=$x_libraries"
- echo "$as_me:20494: result: libraries $x_libraries, headers $x_includes" >&5
+ echo "$as_me:21502: result: libraries $x_libraries, headers $x_includes" >&5
echo "${ECHO_T}libraries $x_libraries, headers $x_includes" >&6
fi
@@ -20518,11 +21526,11 @@ else
# others require no space. Words are not sufficient . . . .
case `(uname -sr) 2>/dev/null` in
"SunOS 5"*)
- echo "$as_me:20521: checking whether -R must be followed by a space" >&5
+ echo "$as_me:21529: checking whether -R must be followed by a space" >&5
echo $ECHO_N "checking whether -R must be followed by a space... $ECHO_C" >&6
ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 20525 "configure"
+#line 21533 "configure"
#include "confdefs.h"
int
@@ -20534,16 +21542,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:20537: \"$ac_link\"") >&5
+if { (eval echo "$as_me:21545: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:20540: \$? = $ac_status" >&5
+ echo "$as_me:21548: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:20543: \"$ac_try\"") >&5
+ { (eval echo "$as_me:21551: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:20546: \$? = $ac_status" >&5
+ echo "$as_me:21554: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_R_nospace=yes
else
@@ -20553,13 +21561,13 @@ ac_R_nospace=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
if test $ac_R_nospace = yes; then
- echo "$as_me:20556: result: no" >&5
+ echo "$as_me:21564: result: no" >&5
echo "${ECHO_T}no" >&6
X_LIBS="$X_LIBS -R$x_libraries"
else
LIBS="$ac_xsave_LIBS -R $x_libraries"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 20562 "configure"
+#line 21570 "configure"
#include "confdefs.h"
int
@@ -20571,16 +21579,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:20574: \"$ac_link\"") >&5
+if { (eval echo "$as_me:21582: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:20577: \$? = $ac_status" >&5
+ echo "$as_me:21585: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:20580: \"$ac_try\"") >&5
+ { (eval echo "$as_me:21588: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:20583: \$? = $ac_status" >&5
+ echo "$as_me:21591: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_R_space=yes
else
@@ -20590,11 +21598,11 @@ ac_R_space=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
if test $ac_R_space = yes; then
- echo "$as_me:20593: result: yes" >&5
+ echo "$as_me:21601: result: yes" >&5
echo "${ECHO_T}yes" >&6
X_LIBS="$X_LIBS -R $x_libraries"
else
- echo "$as_me:20597: result: neither works" >&5
+ echo "$as_me:21605: result: neither works" >&5
echo "${ECHO_T}neither works" >&6
fi
fi
@@ -20614,7 +21622,7 @@ echo "${ECHO_T}neither works" >&6
# the Alpha needs dnet_stub (dnet does not exist).
ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 20617 "configure"
+#line 21625 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -20623,7 +21631,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char XOpenDisplay ();
+char XOpenDisplay (void);
int
main (void)
{
@@ -20633,22 +21641,22 @@ XOpenDisplay ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:20636: \"$ac_link\"") >&5
+if { (eval echo "$as_me:21644: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:20639: \$? = $ac_status" >&5
+ echo "$as_me:21647: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:20642: \"$ac_try\"") >&5
+ { (eval echo "$as_me:21650: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:20645: \$? = $ac_status" >&5
+ echo "$as_me:21653: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
:
else
echo "$as_me: failed program was:" >&5
cat "conftest.$ac_ext" >&5
-echo "$as_me:20651: checking for dnet_ntoa in -ldnet" >&5
+echo "$as_me:21659: checking for dnet_ntoa in -ldnet" >&5
echo $ECHO_N "checking for dnet_ntoa in -ldnet... $ECHO_C" >&6
if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -20656,7 +21664,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-ldnet $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 20659 "configure"
+#line 21667 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -20665,7 +21673,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char dnet_ntoa ();
+char dnet_ntoa (void);
int
main (void)
{
@@ -20675,16 +21683,16 @@ dnet_ntoa ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:20678: \"$ac_link\"") >&5
+if { (eval echo "$as_me:21686: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:20681: \$? = $ac_status" >&5
+ echo "$as_me:21689: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:20684: \"$ac_try\"") >&5
+ { (eval echo "$as_me:21692: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:20687: \$? = $ac_status" >&5
+ echo "$as_me:21695: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_dnet_dnet_ntoa=yes
else
@@ -20695,14 +21703,14 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:20698: result: $ac_cv_lib_dnet_dnet_ntoa" >&5
+echo "$as_me:21706: result: $ac_cv_lib_dnet_dnet_ntoa" >&5
echo "${ECHO_T}$ac_cv_lib_dnet_dnet_ntoa" >&6
if test "$ac_cv_lib_dnet_dnet_ntoa" = yes; then
X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet"
fi
if test $ac_cv_lib_dnet_dnet_ntoa = no; then
- echo "$as_me:20705: checking for dnet_ntoa in -ldnet_stub" >&5
+ echo "$as_me:21713: checking for dnet_ntoa in -ldnet_stub" >&5
echo $ECHO_N "checking for dnet_ntoa in -ldnet_stub... $ECHO_C" >&6
if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -20710,7 +21718,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-ldnet_stub $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 20713 "configure"
+#line 21721 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -20719,7 +21727,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char dnet_ntoa ();
+char dnet_ntoa (void);
int
main (void)
{
@@ -20729,16 +21737,16 @@ dnet_ntoa ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:20732: \"$ac_link\"") >&5
+if { (eval echo "$as_me:21740: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:20735: \$? = $ac_status" >&5
+ echo "$as_me:21743: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:20738: \"$ac_try\"") >&5
+ { (eval echo "$as_me:21746: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:20741: \$? = $ac_status" >&5
+ echo "$as_me:21749: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_dnet_stub_dnet_ntoa=yes
else
@@ -20749,7 +21757,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:20752: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5
+echo "$as_me:21760: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5
echo "${ECHO_T}$ac_cv_lib_dnet_stub_dnet_ntoa" >&6
if test "$ac_cv_lib_dnet_stub_dnet_ntoa" = yes; then
X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"
@@ -20768,13 +21776,13 @@ rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
# on Irix 5.2, according to T.E. Dickey.
# The functions gethostbyname, getservbyname, and inet_addr are
# in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking.
- echo "$as_me:20771: checking for gethostbyname" >&5
+ echo "$as_me:21779: checking for gethostbyname" >&5
echo $ECHO_N "checking for gethostbyname... $ECHO_C" >&6
if test "${ac_cv_func_gethostbyname+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 20777 "configure"
+#line 21785 "configure"
#include "confdefs.h"
#define gethostbyname autoconf_temporary
#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */
@@ -20805,16 +21813,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:20808: \"$ac_link\"") >&5
+if { (eval echo "$as_me:21816: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:20811: \$? = $ac_status" >&5
+ echo "$as_me:21819: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:20814: \"$ac_try\"") >&5
+ { (eval echo "$as_me:21822: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:20817: \$? = $ac_status" >&5
+ echo "$as_me:21825: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_func_gethostbyname=yes
else
@@ -20824,11 +21832,11 @@ ac_cv_func_gethostbyname=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:20827: result: $ac_cv_func_gethostbyname" >&5
+echo "$as_me:21835: result: $ac_cv_func_gethostbyname" >&5
echo "${ECHO_T}$ac_cv_func_gethostbyname" >&6
if test $ac_cv_func_gethostbyname = no; then
- echo "$as_me:20831: checking for gethostbyname in -lnsl" >&5
+ echo "$as_me:21839: checking for gethostbyname in -lnsl" >&5
echo $ECHO_N "checking for gethostbyname in -lnsl... $ECHO_C" >&6
if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -20836,7 +21844,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lnsl $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 20839 "configure"
+#line 21847 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -20845,7 +21853,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char gethostbyname ();
+char gethostbyname (void);
int
main (void)
{
@@ -20855,16 +21863,16 @@ gethostbyname ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:20858: \"$ac_link\"") >&5
+if { (eval echo "$as_me:21866: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:20861: \$? = $ac_status" >&5
+ echo "$as_me:21869: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:20864: \"$ac_try\"") >&5
+ { (eval echo "$as_me:21872: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:20867: \$? = $ac_status" >&5
+ echo "$as_me:21875: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_nsl_gethostbyname=yes
else
@@ -20875,14 +21883,14 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:20878: result: $ac_cv_lib_nsl_gethostbyname" >&5
+echo "$as_me:21886: result: $ac_cv_lib_nsl_gethostbyname" >&5
echo "${ECHO_T}$ac_cv_lib_nsl_gethostbyname" >&6
if test "$ac_cv_lib_nsl_gethostbyname" = yes; then
X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl"
fi
if test $ac_cv_lib_nsl_gethostbyname = no; then
- echo "$as_me:20885: checking for gethostbyname in -lbsd" >&5
+ echo "$as_me:21893: checking for gethostbyname in -lbsd" >&5
echo $ECHO_N "checking for gethostbyname in -lbsd... $ECHO_C" >&6
if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -20890,7 +21898,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lbsd $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 20893 "configure"
+#line 21901 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -20899,7 +21907,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char gethostbyname ();
+char gethostbyname (void);
int
main (void)
{
@@ -20909,16 +21917,16 @@ gethostbyname ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:20912: \"$ac_link\"") >&5
+if { (eval echo "$as_me:21920: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:20915: \$? = $ac_status" >&5
+ echo "$as_me:21923: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:20918: \"$ac_try\"") >&5
+ { (eval echo "$as_me:21926: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:20921: \$? = $ac_status" >&5
+ echo "$as_me:21929: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_bsd_gethostbyname=yes
else
@@ -20929,7 +21937,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:20932: result: $ac_cv_lib_bsd_gethostbyname" >&5
+echo "$as_me:21940: result: $ac_cv_lib_bsd_gethostbyname" >&5
echo "${ECHO_T}$ac_cv_lib_bsd_gethostbyname" >&6
if test "$ac_cv_lib_bsd_gethostbyname" = yes; then
X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd"
@@ -20945,13 +21953,13 @@ fi
# variants that don't use the nameserver (or something). -lsocket
# must be given before -lnsl if both are needed. We assume that
# if connect needs -lnsl, so does gethostbyname.
- echo "$as_me:20948: checking for connect" >&5
+ echo "$as_me:21956: checking for connect" >&5
echo $ECHO_N "checking for connect... $ECHO_C" >&6
if test "${ac_cv_func_connect+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 20954 "configure"
+#line 21962 "configure"
#include "confdefs.h"
#define connect autoconf_temporary
#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */
@@ -20982,16 +21990,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:20985: \"$ac_link\"") >&5
+if { (eval echo "$as_me:21993: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:20988: \$? = $ac_status" >&5
+ echo "$as_me:21996: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:20991: \"$ac_try\"") >&5
+ { (eval echo "$as_me:21999: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:20994: \$? = $ac_status" >&5
+ echo "$as_me:22002: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_func_connect=yes
else
@@ -21001,11 +22009,11 @@ ac_cv_func_connect=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:21004: result: $ac_cv_func_connect" >&5
+echo "$as_me:22012: result: $ac_cv_func_connect" >&5
echo "${ECHO_T}$ac_cv_func_connect" >&6
if test $ac_cv_func_connect = no; then
- echo "$as_me:21008: checking for connect in -lsocket" >&5
+ echo "$as_me:22016: checking for connect in -lsocket" >&5
echo $ECHO_N "checking for connect in -lsocket... $ECHO_C" >&6
if test "${ac_cv_lib_socket_connect+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -21013,7 +22021,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 21016 "configure"
+#line 22024 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -21022,7 +22030,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char connect ();
+char connect (void);
int
main (void)
{
@@ -21032,16 +22040,16 @@ connect ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:21035: \"$ac_link\"") >&5
+if { (eval echo "$as_me:22043: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:21038: \$? = $ac_status" >&5
+ echo "$as_me:22046: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:21041: \"$ac_try\"") >&5
+ { (eval echo "$as_me:22049: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:21044: \$? = $ac_status" >&5
+ echo "$as_me:22052: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_socket_connect=yes
else
@@ -21052,7 +22060,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:21055: result: $ac_cv_lib_socket_connect" >&5
+echo "$as_me:22063: result: $ac_cv_lib_socket_connect" >&5
echo "${ECHO_T}$ac_cv_lib_socket_connect" >&6
if test "$ac_cv_lib_socket_connect" = yes; then
X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS"
@@ -21061,13 +22069,13 @@ fi
fi
# Guillermo Gomez says -lposix is necessary on A/UX.
- echo "$as_me:21064: checking for remove" >&5
+ echo "$as_me:22072: checking for remove" >&5
echo $ECHO_N "checking for remove... $ECHO_C" >&6
if test "${ac_cv_func_remove+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 21070 "configure"
+#line 22078 "configure"
#include "confdefs.h"
#define remove autoconf_temporary
#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */
@@ -21098,16 +22106,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:21101: \"$ac_link\"") >&5
+if { (eval echo "$as_me:22109: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:21104: \$? = $ac_status" >&5
+ echo "$as_me:22112: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:21107: \"$ac_try\"") >&5
+ { (eval echo "$as_me:22115: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:21110: \$? = $ac_status" >&5
+ echo "$as_me:22118: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_func_remove=yes
else
@@ -21117,11 +22125,11 @@ ac_cv_func_remove=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:21120: result: $ac_cv_func_remove" >&5
+echo "$as_me:22128: result: $ac_cv_func_remove" >&5
echo "${ECHO_T}$ac_cv_func_remove" >&6
if test $ac_cv_func_remove = no; then
- echo "$as_me:21124: checking for remove in -lposix" >&5
+ echo "$as_me:22132: checking for remove in -lposix" >&5
echo $ECHO_N "checking for remove in -lposix... $ECHO_C" >&6
if test "${ac_cv_lib_posix_remove+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -21129,7 +22137,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lposix $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 21132 "configure"
+#line 22140 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -21138,7 +22146,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char remove ();
+char remove (void);
int
main (void)
{
@@ -21148,16 +22156,16 @@ remove ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:21151: \"$ac_link\"") >&5
+if { (eval echo "$as_me:22159: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:21154: \$? = $ac_status" >&5
+ echo "$as_me:22162: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:21157: \"$ac_try\"") >&5
+ { (eval echo "$as_me:22165: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:21160: \$? = $ac_status" >&5
+ echo "$as_me:22168: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_posix_remove=yes
else
@@ -21168,7 +22176,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:21171: result: $ac_cv_lib_posix_remove" >&5
+echo "$as_me:22179: result: $ac_cv_lib_posix_remove" >&5
echo "${ECHO_T}$ac_cv_lib_posix_remove" >&6
if test "$ac_cv_lib_posix_remove" = yes; then
X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix"
@@ -21177,13 +22185,13 @@ fi
fi
# BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
- echo "$as_me:21180: checking for shmat" >&5
+ echo "$as_me:22188: checking for shmat" >&5
echo $ECHO_N "checking for shmat... $ECHO_C" >&6
if test "${ac_cv_func_shmat+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 21186 "configure"
+#line 22194 "configure"
#include "confdefs.h"
#define shmat autoconf_temporary
#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */
@@ -21214,16 +22222,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:21217: \"$ac_link\"") >&5
+if { (eval echo "$as_me:22225: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:21220: \$? = $ac_status" >&5
+ echo "$as_me:22228: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:21223: \"$ac_try\"") >&5
+ { (eval echo "$as_me:22231: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:21226: \$? = $ac_status" >&5
+ echo "$as_me:22234: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_func_shmat=yes
else
@@ -21233,11 +22241,11 @@ ac_cv_func_shmat=no
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
fi
-echo "$as_me:21236: result: $ac_cv_func_shmat" >&5
+echo "$as_me:22244: result: $ac_cv_func_shmat" >&5
echo "${ECHO_T}$ac_cv_func_shmat" >&6
if test $ac_cv_func_shmat = no; then
- echo "$as_me:21240: checking for shmat in -lipc" >&5
+ echo "$as_me:22248: checking for shmat in -lipc" >&5
echo $ECHO_N "checking for shmat in -lipc... $ECHO_C" >&6
if test "${ac_cv_lib_ipc_shmat+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -21245,7 +22253,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lipc $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 21248 "configure"
+#line 22256 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -21254,7 +22262,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char shmat ();
+char shmat (void);
int
main (void)
{
@@ -21264,16 +22272,16 @@ shmat ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:21267: \"$ac_link\"") >&5
+if { (eval echo "$as_me:22275: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:21270: \$? = $ac_status" >&5
+ echo "$as_me:22278: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:21273: \"$ac_try\"") >&5
+ { (eval echo "$as_me:22281: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:21276: \$? = $ac_status" >&5
+ echo "$as_me:22284: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_ipc_shmat=yes
else
@@ -21284,7 +22292,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:21287: result: $ac_cv_lib_ipc_shmat" >&5
+echo "$as_me:22295: result: $ac_cv_lib_ipc_shmat" >&5
echo "${ECHO_T}$ac_cv_lib_ipc_shmat" >&6
if test "$ac_cv_lib_ipc_shmat" = yes; then
X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc"
@@ -21302,7 +22310,7 @@ fi
# These have to be linked with before -lX11, unlike the other
# libraries we check for below, so use a different variable.
# John Interrante, Karl Berry
- echo "$as_me:21305: checking for IceConnectionNumber in -lICE" >&5
+ echo "$as_me:22313: checking for IceConnectionNumber in -lICE" >&5
echo $ECHO_N "checking for IceConnectionNumber in -lICE... $ECHO_C" >&6
if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -21310,7 +22318,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lICE $X_EXTRA_LIBS $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 21313 "configure"
+#line 22321 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -21319,7 +22327,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char IceConnectionNumber ();
+char IceConnectionNumber (void);
int
main (void)
{
@@ -21329,16 +22337,16 @@ IceConnectionNumber ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:21332: \"$ac_link\"") >&5
+if { (eval echo "$as_me:22340: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:21335: \$? = $ac_status" >&5
+ echo "$as_me:22343: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:21338: \"$ac_try\"") >&5
+ { (eval echo "$as_me:22346: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:21341: \$? = $ac_status" >&5
+ echo "$as_me:22349: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_ICE_IceConnectionNumber=yes
else
@@ -21349,7 +22357,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:21352: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5
+echo "$as_me:22360: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5
echo "${ECHO_T}$ac_cv_lib_ICE_IceConnectionNumber" >&6
if test "$ac_cv_lib_ICE_IceConnectionNumber" = yes; then
X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE"
@@ -21368,14 +22376,16 @@ if test "$GCC" = yes || test "$GXX" = yes
then
case $CFLAGS in
(*-Werror=*)
- test -n "$verbose" && echo " repairing CFLAGS: $CFLAGS" 1>&6
-
-echo "${as_me:-configure}:21373: testing repairing CFLAGS: $CFLAGS ..." 1>&5
-
cf_temp_flags=
for cf_temp_scan in $CFLAGS
do
case "x$cf_temp_scan" in
+ (x-Werror=format*)
+
+ test -n "$cf_temp_flags" && cf_temp_flags="$cf_temp_flags "
+ cf_temp_flags="${cf_temp_flags}$cf_temp_scan"
+
+ ;;
(x-Werror=*)
test -n "$EXTRA_CFLAGS" && EXTRA_CFLAGS="$EXTRA_CFLAGS "
@@ -21390,15 +22400,22 @@ echo "${as_me:-configure}:21373: testing repairing CFLAGS: $CFLAGS ..." 1>&5
;;
esac
done
- CFLAGS="$cf_temp_flags"
- test -n "$verbose" && echo " ... fixed $CFLAGS" 1>&6
+ if test "x$CFLAGS" != "x$cf_temp_flags"
+ then
+ test -n "$verbose" && echo " repairing CFLAGS: $CFLAGS" 1>&6
+
+echo "${as_me:-configure}:22407: testing repairing CFLAGS: $CFLAGS ..." 1>&5
+
+ CFLAGS="$cf_temp_flags"
+ test -n "$verbose" && echo " ... fixed $CFLAGS" 1>&6
-echo "${as_me:-configure}:21396: testing ... fixed $CFLAGS ..." 1>&5
+echo "${as_me:-configure}:22412: testing ... fixed $CFLAGS ..." 1>&5
- test -n "$verbose" && echo " ... extra $EXTRA_CFLAGS" 1>&6
+ test -n "$verbose" && echo " ... extra $EXTRA_CFLAGS" 1>&6
-echo "${as_me:-configure}:21400: testing ... extra $EXTRA_CFLAGS ..." 1>&5
+echo "${as_me:-configure}:22416: testing ... extra $EXTRA_CFLAGS ..." 1>&5
+ fi
;;
esac
fi
@@ -21407,14 +22424,16 @@ if test "$GCC" = yes || test "$GXX" = yes
then
case $CPPFLAGS in
(*-Werror=*)
- test -n "$verbose" && echo " repairing CPPFLAGS: $CPPFLAGS" 1>&6
-
-echo "${as_me:-configure}:21412: testing repairing CPPFLAGS: $CPPFLAGS ..." 1>&5
-
cf_temp_flags=
for cf_temp_scan in $CPPFLAGS
do
case "x$cf_temp_scan" in
+ (x-Werror=format*)
+
+ test -n "$cf_temp_flags" && cf_temp_flags="$cf_temp_flags "
+ cf_temp_flags="${cf_temp_flags}$cf_temp_scan"
+
+ ;;
(x-Werror=*)
test -n "$EXTRA_CFLAGS" && EXTRA_CFLAGS="$EXTRA_CFLAGS "
@@ -21429,15 +22448,22 @@ echo "${as_me:-configure}:21412: testing repairing CPPFLAGS: $CPPFLAGS ..." 1>&5
;;
esac
done
- CPPFLAGS="$cf_temp_flags"
- test -n "$verbose" && echo " ... fixed $CPPFLAGS" 1>&6
+ if test "x$CPPFLAGS" != "x$cf_temp_flags"
+ then
+ test -n "$verbose" && echo " repairing CPPFLAGS: $CPPFLAGS" 1>&6
+
+echo "${as_me:-configure}:22455: testing repairing CPPFLAGS: $CPPFLAGS ..." 1>&5
-echo "${as_me:-configure}:21435: testing ... fixed $CPPFLAGS ..." 1>&5
+ CPPFLAGS="$cf_temp_flags"
+ test -n "$verbose" && echo " ... fixed $CPPFLAGS" 1>&6
- test -n "$verbose" && echo " ... extra $EXTRA_CFLAGS" 1>&6
+echo "${as_me:-configure}:22460: testing ... fixed $CPPFLAGS ..." 1>&5
-echo "${as_me:-configure}:21439: testing ... extra $EXTRA_CFLAGS ..." 1>&5
+ test -n "$verbose" && echo " ... extra $EXTRA_CFLAGS" 1>&6
+echo "${as_me:-configure}:22464: testing ... extra $EXTRA_CFLAGS ..." 1>&5
+
+ fi
;;
esac
fi
@@ -21446,14 +22472,16 @@ if test "$GCC" = yes || test "$GXX" = yes
then
case $LDFLAGS in
(*-Werror=*)
- test -n "$verbose" && echo " repairing LDFLAGS: $LDFLAGS" 1>&6
-
-echo "${as_me:-configure}:21451: testing repairing LDFLAGS: $LDFLAGS ..." 1>&5
-
cf_temp_flags=
for cf_temp_scan in $LDFLAGS
do
case "x$cf_temp_scan" in
+ (x-Werror=format*)
+
+ test -n "$cf_temp_flags" && cf_temp_flags="$cf_temp_flags "
+ cf_temp_flags="${cf_temp_flags}$cf_temp_scan"
+
+ ;;
(x-Werror=*)
test -n "$EXTRA_CFLAGS" && EXTRA_CFLAGS="$EXTRA_CFLAGS "
@@ -21468,20 +22496,27 @@ echo "${as_me:-configure}:21451: testing repairing LDFLAGS: $LDFLAGS ..." 1>&5
;;
esac
done
- LDFLAGS="$cf_temp_flags"
- test -n "$verbose" && echo " ... fixed $LDFLAGS" 1>&6
+ if test "x$LDFLAGS" != "x$cf_temp_flags"
+ then
+ test -n "$verbose" && echo " repairing LDFLAGS: $LDFLAGS" 1>&6
-echo "${as_me:-configure}:21474: testing ... fixed $LDFLAGS ..." 1>&5
+echo "${as_me:-configure}:22503: testing repairing LDFLAGS: $LDFLAGS ..." 1>&5
- test -n "$verbose" && echo " ... extra $EXTRA_CFLAGS" 1>&6
+ LDFLAGS="$cf_temp_flags"
+ test -n "$verbose" && echo " ... fixed $LDFLAGS" 1>&6
-echo "${as_me:-configure}:21478: testing ... extra $EXTRA_CFLAGS ..." 1>&5
+echo "${as_me:-configure}:22508: testing ... fixed $LDFLAGS ..." 1>&5
+ test -n "$verbose" && echo " ... extra $EXTRA_CFLAGS" 1>&6
+
+echo "${as_me:-configure}:22512: testing ... extra $EXTRA_CFLAGS ..." 1>&5
+
+ fi
;;
esac
fi
-echo "$as_me:21484: checking if you want to turn on gcc warnings" >&5
+echo "$as_me:22519: checking if you want to turn on gcc warnings" >&5
echo $ECHO_N "checking if you want to turn on gcc warnings... $ECHO_C" >&6
# Check whether --enable-warnings or --disable-warnings was given.
@@ -21498,7 +22533,7 @@ else
enable_warnings=no
fi;
-echo "$as_me:21501: result: $enable_warnings" >&5
+echo "$as_me:22536: result: $enable_warnings" >&5
echo "${ECHO_T}$enable_warnings" >&6
if test "$enable_warnings" = "yes"
then
@@ -21521,10 +22556,11 @@ cat > conftest.i <<EOF
EOF
if test "$GCC" = yes
then
- { echo "$as_me:21524: checking for $CC __attribute__ directives..." >&5
+ { echo "$as_me:22559: checking for $CC __attribute__ directives..." >&5
echo "$as_me: checking for $CC __attribute__ directives..." >&6;}
cat > "conftest.$ac_ext" <<EOF
-#line 21527 "${as_me:-configure}"
+#line 22562 "${as_me:-configure}"
+#include <stdio.h>
#include "confdefs.h"
#include "conftest.h"
#include "conftest.i"
@@ -21539,8 +22575,8 @@ cat > "conftest.$ac_ext" <<EOF
#define GCC_SCANFLIKE(fmt,var) /*nothing*/
#endif
extern void wow(char *,...) GCC_SCANFLIKE(1,2);
-extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
-extern void foo(void) GCC_NORETURN;
+extern GCC_NORETURN void oops(char *,...) GCC_PRINTFLIKE(1,2);
+extern GCC_NORETURN void foo(void);
int main(int argc GCC_UNUSED, char *argv[] GCC_UNUSED) { (void)argc; (void)argv; return 0; }
EOF
cf_printf_attribute=no
@@ -21573,12 +22609,12 @@ EOF
;;
esac
- if { (eval echo "$as_me:21576: \"$ac_compile\"") >&5
+ if { (eval echo "$as_me:22612: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:21579: \$? = $ac_status" >&5
+ echo "$as_me:22615: \$? = $ac_status" >&5
(exit "$ac_status"); }; then
- test -n "$verbose" && echo "$as_me:21581: result: ... $cf_attribute" >&5
+ test -n "$verbose" && echo "$as_me:22617: result: ... $cf_attribute" >&5
echo "${ECHO_T}... $cf_attribute" >&6
cat conftest.h >>confdefs.h
case "$cf_attribute" in
@@ -21656,7 +22692,7 @@ do
done
cat >"conftest.$ac_ext" <<_ACEOF
-#line 21659 "configure"
+#line 22695 "configure"
#include "confdefs.h"
#include <stdlib.h>
@@ -21665,34 +22701,35 @@ cat >"conftest.$ac_ext" <<_ACEOF
int
main (void)
{
-String foo = malloc(1); (void)foo
+String foo = malloc(1); free((void*)foo)
;
return 0;
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:21674: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:22710: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:21677: \$? = $ac_status" >&5
+ echo "$as_me:22713: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:21680: \"$ac_try\"") >&5
+ { (eval echo "$as_me:22716: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:21683: \$? = $ac_status" >&5
+ echo "$as_me:22719: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
-echo "$as_me:21686: checking for X11/Xt const-feature" >&5
+echo "$as_me:22722: checking for X11/Xt const-feature" >&5
echo $ECHO_N "checking for X11/Xt const-feature... $ECHO_C" >&6
if test "${cf_cv_const_x_string+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 21693 "configure"
+#line 22729 "configure"
#include "confdefs.h"
+#undef _CONST_X_STRING
#define _CONST_X_STRING /* X11R7.8 (perhaps) */
#undef XTSTRINGDEFINES /* X11R5 and later */
#include <stdlib.h>
@@ -21707,16 +22744,16 @@ String foo = malloc(1); *foo = 0
}
_ACEOF
rm -f "conftest.$ac_objext"
-if { (eval echo "$as_me:21710: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:22747: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:21713: \$? = $ac_status" >&5
+ echo "$as_me:22750: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest.$ac_objext"'
- { (eval echo "$as_me:21716: \"$ac_try\"") >&5
+ { (eval echo "$as_me:22753: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:21719: \$? = $ac_status" >&5
+ echo "$as_me:22756: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_cv_const_x_string=no
@@ -21731,7 +22768,7 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
-echo "$as_me:21734: result: $cf_cv_const_x_string" >&5
+echo "$as_me:22771: result: $cf_cv_const_x_string" >&5
echo "${ECHO_T}$cf_cv_const_x_string" >&6
LIBS="$cf_save_LIBS_CF_CONST_X_STRING"
@@ -21760,7 +22797,7 @@ fi
rm -f "conftest.$ac_objext" "conftest.$ac_ext"
fi
cat > "conftest.$ac_ext" <<EOF
-#line 21763 "${as_me:-configure}"
+#line 22800 "${as_me:-configure}"
int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
EOF
if test "$INTEL_COMPILER" = yes
@@ -21776,7 +22813,7 @@ then
# remark #981: operands are evaluated in unspecified order
# warning #279: controlling expression is constant
- { echo "$as_me:21779: checking for $CC warning options..." >&5
+ { echo "$as_me:22816: checking for $CC warning options..." >&5
echo "$as_me: checking for $CC warning options..." >&6;}
cf_save_CFLAGS="$CFLAGS"
EXTRA_CFLAGS="$EXTRA_CFLAGS -Wall"
@@ -21792,12 +22829,12 @@ echo "$as_me: checking for $CC warning options..." >&6;}
wd981
do
CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
- if { (eval echo "$as_me:21795: \"$ac_compile\"") >&5
+ if { (eval echo "$as_me:22832: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:21798: \$? = $ac_status" >&5
+ echo "$as_me:22835: \$? = $ac_status" >&5
(exit "$ac_status"); }; then
- test -n "$verbose" && echo "$as_me:21800: result: ... -$cf_opt" >&5
+ test -n "$verbose" && echo "$as_me:22837: result: ... -$cf_opt" >&5
echo "${ECHO_T}... -$cf_opt" >&6
EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
fi
@@ -21805,7 +22842,7 @@ echo "${ECHO_T}... -$cf_opt" >&6
CFLAGS="$cf_save_CFLAGS"
elif test "$GCC" = yes && test "$GCC_VERSION" != "unknown"
then
- { echo "$as_me:21808: checking for $CC warning options..." >&5
+ { echo "$as_me:22845: checking for $CC warning options..." >&5
echo "$as_me: checking for $CC warning options..." >&6;}
cf_save_CFLAGS="$CFLAGS"
cf_warn_CONST=""
@@ -21828,12 +22865,12 @@ echo "$as_me: checking for $CC warning options..." >&6;}
Wundef Wno-inline $cf_gcc_warnings $cf_warn_CONST Wno-unknown-pragmas
do
CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
- if { (eval echo "$as_me:21831: \"$ac_compile\"") >&5
+ if { (eval echo "$as_me:22868: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:21834: \$? = $ac_status" >&5
+ echo "$as_me:22871: \$? = $ac_status" >&5
(exit "$ac_status"); }; then
- test -n "$verbose" && echo "$as_me:21836: result: ... -$cf_opt" >&5
+ test -n "$verbose" && echo "$as_me:22873: result: ... -$cf_opt" >&5
echo "${ECHO_T}... -$cf_opt" >&6
case "$cf_opt" in
(Winline)
@@ -21841,7 +22878,7 @@ echo "${ECHO_T}... -$cf_opt" >&6
([34].*)
test -n "$verbose" && echo " feature is broken in gcc $GCC_VERSION" 1>&6
-echo "${as_me:-configure}:21844: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
+echo "${as_me:-configure}:22881: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
continue;;
esac
@@ -21851,7 +22888,7 @@ echo "${as_me:-configure}:21844: testing feature is broken in gcc $GCC_VERSION .
([12].*)
test -n "$verbose" && echo " feature is broken in gcc $GCC_VERSION" 1>&6
-echo "${as_me:-configure}:21854: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
+echo "${as_me:-configure}:22891: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
continue;;
esac
@@ -21868,24 +22905,29 @@ fi
fi
-echo "$as_me:21871: checking if you want to use dmalloc for testing" >&5
+echo "$as_me:22908: checking if you want to use dmalloc for testing" >&5
echo $ECHO_N "checking if you want to use dmalloc for testing... $ECHO_C" >&6
# Check whether --with-dmalloc or --without-dmalloc was given.
if test "${with_dmalloc+set}" = set; then
withval="$with_dmalloc"
+ case "x$withval" in
+ (x|xno) ;;
+ (*)
+ : "${with_cflags:=-g}"
+ : "${enable_leaks:=no}"
+ with_dmalloc=yes
cat >>confdefs.h <<EOF
#define USE_DMALLOC 1
EOF
- : "${with_cflags:=-g}"
- : "${enable_leaks:=no}"
- with_dmalloc=yes
+ ;;
+ esac
else
with_dmalloc=
fi;
-echo "$as_me:21888: result: ${with_dmalloc:-no}" >&5
+echo "$as_me:22930: result: ${with_dmalloc:-no}" >&5
echo "${ECHO_T}${with_dmalloc:-no}" >&6
case ".$with_cflags" in
@@ -21999,23 +23041,23 @@ fi
esac
if test "$with_dmalloc" = yes ; then
- echo "$as_me:22002: checking for dmalloc.h" >&5
+ echo "$as_me:23044: checking for dmalloc.h" >&5
echo $ECHO_N "checking for dmalloc.h... $ECHO_C" >&6
if test "${ac_cv_header_dmalloc_h+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 22008 "configure"
+#line 23050 "configure"
#include "confdefs.h"
#include <dmalloc.h>
_ACEOF
-if { (eval echo "$as_me:22012: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:23054: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:22018: \$? = $ac_status" >&5
+ echo "$as_me:23060: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -22034,11 +23076,11 @@ else
fi
rm -f conftest.err "conftest.$ac_ext"
fi
-echo "$as_me:22037: result: $ac_cv_header_dmalloc_h" >&5
+echo "$as_me:23079: result: $ac_cv_header_dmalloc_h" >&5
echo "${ECHO_T}$ac_cv_header_dmalloc_h" >&6
if test "$ac_cv_header_dmalloc_h" = yes; then
-echo "$as_me:22041: checking for dmalloc_debug in -ldmalloc" >&5
+echo "$as_me:23083: checking for dmalloc_debug in -ldmalloc" >&5
echo $ECHO_N "checking for dmalloc_debug in -ldmalloc... $ECHO_C" >&6
if test "${ac_cv_lib_dmalloc_dmalloc_debug+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -22046,7 +23088,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-ldmalloc $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 22049 "configure"
+#line 23091 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -22055,7 +23097,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char dmalloc_debug ();
+char dmalloc_debug (void);
int
main (void)
{
@@ -22065,16 +23107,16 @@ dmalloc_debug ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:22068: \"$ac_link\"") >&5
+if { (eval echo "$as_me:23110: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:22071: \$? = $ac_status" >&5
+ echo "$as_me:23113: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:22074: \"$ac_try\"") >&5
+ { (eval echo "$as_me:23116: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:22077: \$? = $ac_status" >&5
+ echo "$as_me:23119: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_dmalloc_dmalloc_debug=yes
else
@@ -22085,7 +23127,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:22088: result: $ac_cv_lib_dmalloc_dmalloc_debug" >&5
+echo "$as_me:23130: result: $ac_cv_lib_dmalloc_dmalloc_debug" >&5
echo "${ECHO_T}$ac_cv_lib_dmalloc_dmalloc_debug" >&6
if test "$ac_cv_lib_dmalloc_dmalloc_debug" = yes; then
cat >>confdefs.h <<EOF
@@ -22100,24 +23142,29 @@ fi
fi
-echo "$as_me:22103: checking if you want to use dbmalloc for testing" >&5
+echo "$as_me:23145: checking if you want to use dbmalloc for testing" >&5
echo $ECHO_N "checking if you want to use dbmalloc for testing... $ECHO_C" >&6
# Check whether --with-dbmalloc or --without-dbmalloc was given.
if test "${with_dbmalloc+set}" = set; then
withval="$with_dbmalloc"
+ case "x$withval" in
+ (x|xno) ;;
+ (*)
+ : "${with_cflags:=-g}"
+ : "${enable_leaks:=no}"
+ with_dbmalloc=yes
cat >>confdefs.h <<EOF
#define USE_DBMALLOC 1
EOF
- : "${with_cflags:=-g}"
- : "${enable_leaks:=no}"
- with_dbmalloc=yes
+ ;;
+ esac
else
with_dbmalloc=
fi;
-echo "$as_me:22120: result: ${with_dbmalloc:-no}" >&5
+echo "$as_me:23167: result: ${with_dbmalloc:-no}" >&5
echo "${ECHO_T}${with_dbmalloc:-no}" >&6
case ".$with_cflags" in
@@ -22231,23 +23278,23 @@ fi
esac
if test "$with_dbmalloc" = yes ; then
- echo "$as_me:22234: checking for dbmalloc.h" >&5
+ echo "$as_me:23281: checking for dbmalloc.h" >&5
echo $ECHO_N "checking for dbmalloc.h... $ECHO_C" >&6
if test "${ac_cv_header_dbmalloc_h+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >"conftest.$ac_ext" <<_ACEOF
-#line 22240 "configure"
+#line 23287 "configure"
#include "confdefs.h"
#include <dbmalloc.h>
_ACEOF
-if { (eval echo "$as_me:22244: \"$ac_cpp "conftest.$ac_ext"\"") >&5
+if { (eval echo "$as_me:23291: \"$ac_cpp "conftest.$ac_ext"\"") >&5
(eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1
ac_status=$?
$EGREP -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:22250: \$? = $ac_status" >&5
+ echo "$as_me:23297: \$? = $ac_status" >&5
(exit "$ac_status"); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
@@ -22266,11 +23313,11 @@ else
fi
rm -f conftest.err "conftest.$ac_ext"
fi
-echo "$as_me:22269: result: $ac_cv_header_dbmalloc_h" >&5
+echo "$as_me:23316: result: $ac_cv_header_dbmalloc_h" >&5
echo "${ECHO_T}$ac_cv_header_dbmalloc_h" >&6
if test "$ac_cv_header_dbmalloc_h" = yes; then
-echo "$as_me:22273: checking for debug_malloc in -ldbmalloc" >&5
+echo "$as_me:23320: checking for debug_malloc in -ldbmalloc" >&5
echo $ECHO_N "checking for debug_malloc in -ldbmalloc... $ECHO_C" >&6
if test "${ac_cv_lib_dbmalloc_debug_malloc+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -22278,7 +23325,7 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-ldbmalloc $LIBS"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 22281 "configure"
+#line 23328 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
@@ -22287,7 +23334,7 @@ extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char debug_malloc ();
+char debug_malloc (void);
int
main (void)
{
@@ -22297,16 +23344,16 @@ debug_malloc ();
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:22300: \"$ac_link\"") >&5
+if { (eval echo "$as_me:23347: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:22303: \$? = $ac_status" >&5
+ echo "$as_me:23350: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:22306: \"$ac_try\"") >&5
+ { (eval echo "$as_me:23353: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:22309: \$? = $ac_status" >&5
+ echo "$as_me:23356: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
ac_cv_lib_dbmalloc_debug_malloc=yes
else
@@ -22317,7 +23364,7 @@ fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:22320: result: $ac_cv_lib_dbmalloc_debug_malloc" >&5
+echo "$as_me:23367: result: $ac_cv_lib_dbmalloc_debug_malloc" >&5
echo "${ECHO_T}$ac_cv_lib_dbmalloc_debug_malloc" >&6
if test "$ac_cv_lib_dbmalloc_debug_malloc" = yes; then
cat >>confdefs.h <<EOF
@@ -22332,24 +23379,29 @@ fi
fi
-echo "$as_me:22335: checking if you want to use valgrind for testing" >&5
+echo "$as_me:23382: checking if you want to use valgrind for testing" >&5
echo $ECHO_N "checking if you want to use valgrind for testing... $ECHO_C" >&6
# Check whether --with-valgrind or --without-valgrind was given.
if test "${with_valgrind+set}" = set; then
withval="$with_valgrind"
+ case "x$withval" in
+ (x|xno) ;;
+ (*)
+ : "${with_cflags:=-g}"
+ : "${enable_leaks:=no}"
+ with_valgrind=yes
cat >>confdefs.h <<EOF
#define USE_VALGRIND 1
EOF
- : "${with_cflags:=-g}"
- : "${enable_leaks:=no}"
- with_valgrind=yes
+ ;;
+ esac
else
with_valgrind=
fi;
-echo "$as_me:22352: result: ${with_valgrind:-no}" >&5
+echo "$as_me:23404: result: ${with_valgrind:-no}" >&5
echo "${ECHO_T}${with_valgrind:-no}" >&6
case ".$with_cflags" in
@@ -22462,18 +23514,18 @@ fi
;;
esac
-echo "$as_me:22465: checking if you want to perform memory-leak testing" >&5
+echo "$as_me:23517: checking if you want to perform memory-leak testing" >&5
echo $ECHO_N "checking if you want to perform memory-leak testing... $ECHO_C" >&6
# Check whether --enable-leaks or --disable-leaks was given.
if test "${enable_leaks+set}" = set; then
enableval="$enable_leaks"
- enable_leaks=no
+ enable_leaks=$enableval
else
enable_leaks=yes
fi;
if test "x$enable_leaks" = xno; then with_no_leaks=yes; else with_no_leaks=no; fi
-echo "$as_me:22476: result: $with_no_leaks" >&5
+echo "$as_me:23528: result: $with_no_leaks" >&5
echo "${ECHO_T}$with_no_leaks" >&6
if test "$enable_leaks" = no ; then
@@ -22491,7 +23543,7 @@ fi
LD_RPATH_OPT=
if test "x$cf_cv_enable_rpath" != xno
then
- echo "$as_me:22494: checking for an rpath option" >&5
+ echo "$as_me:23546: checking for an rpath option" >&5
echo $ECHO_N "checking for an rpath option... $ECHO_C" >&6
case "$cf_cv_system_name" in
(irix*)
@@ -22522,12 +23574,12 @@ echo $ECHO_N "checking for an rpath option... $ECHO_C" >&6
(*)
;;
esac
- echo "$as_me:22525: result: $LD_RPATH_OPT" >&5
+ echo "$as_me:23577: result: $LD_RPATH_OPT" >&5
echo "${ECHO_T}$LD_RPATH_OPT" >&6
case "x$LD_RPATH_OPT" in
(x-R*)
- echo "$as_me:22530: checking if we need a space after rpath option" >&5
+ echo "$as_me:23582: checking if we need a space after rpath option" >&5
echo $ECHO_N "checking if we need a space after rpath option... $ECHO_C" >&6
cf_save_LIBS="$LIBS"
@@ -22548,7 +23600,7 @@ done
LIBS="$cf_add_libs"
cat >"conftest.$ac_ext" <<_ACEOF
-#line 22551 "configure"
+#line 23603 "configure"
#include "confdefs.h"
int
@@ -22560,16 +23612,16 @@ main (void)
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:22563: \"$ac_link\"") >&5
+if { (eval echo "$as_me:23615: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:22566: \$? = $ac_status" >&5
+ echo "$as_me:23618: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:22569: \"$ac_try\"") >&5
+ { (eval echo "$as_me:23621: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:22572: \$? = $ac_status" >&5
+ echo "$as_me:23624: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_rpath_space=no
else
@@ -22579,14 +23631,14 @@ cf_rpath_space=yes
fi
rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
LIBS="$cf_save_LIBS"
- echo "$as_me:22582: result: $cf_rpath_space" >&5
+ echo "$as_me:23634: result: $cf_rpath_space" >&5
echo "${ECHO_T}$cf_rpath_space" >&6
test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT "
;;
esac
fi
-echo "$as_me:22589: checking if rpath-hack should be disabled" >&5
+echo "$as_me:23641: checking if rpath-hack should be disabled" >&5
echo $ECHO_N "checking if rpath-hack should be disabled... $ECHO_C" >&6
# Check whether --enable-rpath-hack or --disable-rpath-hack was given.
@@ -22604,22 +23656,22 @@ else
fi;
if test "x$enable_rpath_hack" = xno; then cf_disable_rpath_hack=yes; else cf_disable_rpath_hack=no; fi
-echo "$as_me:22607: result: $cf_disable_rpath_hack" >&5
+echo "$as_me:23659: result: $cf_disable_rpath_hack" >&5
echo "${ECHO_T}$cf_disable_rpath_hack" >&6
if test "$enable_rpath_hack" = yes ; then
-echo "$as_me:22612: checking for updated LDFLAGS" >&5
+echo "$as_me:23664: checking for updated LDFLAGS" >&5
echo $ECHO_N "checking for updated LDFLAGS... $ECHO_C" >&6
if test -n "$LD_RPATH_OPT" ; then
- echo "$as_me:22615: result: maybe" >&5
+ echo "$as_me:23667: result: maybe" >&5
echo "${ECHO_T}maybe" >&6
for ac_prog in ldd
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-echo "$as_me:22622: checking for $ac_word" >&5
+echo "$as_me:23674: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_cf_ldd_prog+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -22634,7 +23686,7 @@ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_cf_ldd_prog="$ac_prog"
-echo "$as_me:22637: found $ac_dir/$ac_word" >&5
+echo "$as_me:23689: found $ac_dir/$ac_word" >&5
break
done
@@ -22642,10 +23694,10 @@ fi
fi
cf_ldd_prog=$ac_cv_prog_cf_ldd_prog
if test -n "$cf_ldd_prog"; then
- echo "$as_me:22645: result: $cf_ldd_prog" >&5
+ echo "$as_me:23697: result: $cf_ldd_prog" >&5
echo "${ECHO_T}$cf_ldd_prog" >&6
else
- echo "$as_me:22648: result: no" >&5
+ echo "$as_me:23700: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -22659,7 +23711,7 @@ test -n "$cf_ldd_prog" || cf_ldd_prog="no"
cf_rpath_oops=
cat >"conftest.$ac_ext" <<_ACEOF
-#line 22662 "configure"
+#line 23714 "configure"
#include "confdefs.h"
#include <stdio.h>
int
@@ -22671,16 +23723,16 @@ printf("Hello");
}
_ACEOF
rm -f "conftest.$ac_objext" "conftest$ac_exeext"
-if { (eval echo "$as_me:22674: \"$ac_link\"") >&5
+if { (eval echo "$as_me:23726: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:22677: \$? = $ac_status" >&5
+ echo "$as_me:23729: \$? = $ac_status" >&5
(exit "$ac_status"); } &&
{ ac_try='test -s "conftest$ac_exeext"'
- { (eval echo "$as_me:22680: \"$ac_try\"") >&5
+ { (eval echo "$as_me:23732: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:22683: \$? = $ac_status" >&5
+ echo "$as_me:23735: \$? = $ac_status" >&5
(exit "$ac_status"); }; }; then
cf_rpath_oops=`"$cf_ldd_prog" "conftest$ac_exeext" | ${FGREP-fgrep} ' not found' | sed -e 's% =>.*$%%' |sort | uniq`
cf_rpath_list=`"$cf_ldd_prog" "conftest$ac_exeext" | ${FGREP-fgrep} / | sed -e 's%^.*[ ]/%/%' -e 's%/[^/][^/]*$%%' |sort | uniq`
@@ -22708,7 +23760,7 @@ rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext"
then
test -n "$verbose" && echo " ...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src" 1>&6
-echo "${as_me:-configure}:22711: testing ...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src ..." 1>&5
+echo "${as_me:-configure}:23763: testing ...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src ..." 1>&5
LDFLAGS="$LDFLAGS -L$cf_rpath_dir/lib"
break
@@ -22720,11 +23772,11 @@ echo "${as_me:-configure}:22711: testing ...adding -L$cf_rpath_dir/lib to LDFLAG
test -n "$verbose" && echo " ...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS" 1>&6
-echo "${as_me:-configure}:22723: testing ...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS ..." 1>&5
+echo "${as_me:-configure}:23775: testing ...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS ..." 1>&5
test -n "$verbose" && echo " ...checking LDFLAGS $LDFLAGS" 1>&6
-echo "${as_me:-configure}:22727: testing ...checking LDFLAGS $LDFLAGS ..." 1>&5
+echo "${as_me:-configure}:23779: testing ...checking LDFLAGS $LDFLAGS ..." 1>&5
cf_rpath_dst=
for cf_rpath_src in $LDFLAGS
@@ -22761,7 +23813,7 @@ do
then
test -n "$verbose" && echo " ...Filter $cf_rpath_src ->$cf_rpath_tmp" 1>&6
-echo "${as_me:-configure}:22764: testing ...Filter $cf_rpath_src ->$cf_rpath_tmp ..." 1>&5
+echo "${as_me:-configure}:23816: testing ...Filter $cf_rpath_src ->$cf_rpath_tmp ..." 1>&5
EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
fi
@@ -22774,11 +23826,11 @@ LDFLAGS=$cf_rpath_dst
test -n "$verbose" && echo " ...checked LDFLAGS $LDFLAGS" 1>&6
-echo "${as_me:-configure}:22777: testing ...checked LDFLAGS $LDFLAGS ..." 1>&5
+echo "${as_me:-configure}:23829: testing ...checked LDFLAGS $LDFLAGS ..." 1>&5
test -n "$verbose" && echo " ...checking LIBS $LIBS" 1>&6
-echo "${as_me:-configure}:22781: testing ...checking LIBS $LIBS ..." 1>&5
+echo "${as_me:-configure}:23833: testing ...checking LIBS $LIBS ..." 1>&5
cf_rpath_dst=
for cf_rpath_src in $LIBS
@@ -22815,7 +23867,7 @@ do
then
test -n "$verbose" && echo " ...Filter $cf_rpath_src ->$cf_rpath_tmp" 1>&6
-echo "${as_me:-configure}:22818: testing ...Filter $cf_rpath_src ->$cf_rpath_tmp ..." 1>&5
+echo "${as_me:-configure}:23870: testing ...Filter $cf_rpath_src ->$cf_rpath_tmp ..." 1>&5
EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
fi
@@ -22828,14 +23880,14 @@ LIBS=$cf_rpath_dst
test -n "$verbose" && echo " ...checked LIBS $LIBS" 1>&6
-echo "${as_me:-configure}:22831: testing ...checked LIBS $LIBS ..." 1>&5
+echo "${as_me:-configure}:23883: testing ...checked LIBS $LIBS ..." 1>&5
test -n "$verbose" && echo " ...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS" 1>&6
-echo "${as_me:-configure}:22835: testing ...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS ..." 1>&5
+echo "${as_me:-configure}:23887: testing ...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS ..." 1>&5
else
- echo "$as_me:22838: result: no" >&5
+ echo "$as_me:23890: result: no" >&5
echo "${ECHO_T}no" >&6
fi
@@ -22856,7 +23908,7 @@ cat >confcache <<\_ACEOF
# config.status only pays attention to the cache file if you give it
# the --recheck option to rerun configure.
#
-# `ac_cv_env_foo' variables (set or unset) will be overriden when
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
# loading this file, other *unset* `ac_cv_foo' will be assigned the
# following values.
@@ -22925,7 +23977,7 @@ DEFS=-DHAVE_CONFIG_H
: "${CONFIG_STATUS=./config.status}"
ac_clean_files_save=$ac_clean_files
ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ echo "$as_me:22928: creating $CONFIG_STATUS" >&5
+{ echo "$as_me:23980: creating $CONFIG_STATUS" >&5
echo "$as_me: creating $CONFIG_STATUS" >&6;}
cat >"$CONFIG_STATUS" <<_ACEOF
#! $SHELL
@@ -22934,6 +23986,8 @@ cat >"$CONFIG_STATUS" <<_ACEOF
# Compiler output produced by configure, useful for debugging
# configure, is in config.log if it exists.
+me=\`echo "\$0" | sed -e 's,.*\\/,,'\`
+
debug=false
SHELL=\${CONFIG_SHELL-$SHELL}
ac_cs_invocation="\$0 \$@"
@@ -22955,9 +24009,9 @@ fi
as_me=`echo "$0" |sed 's,.*[\\/],,'`
if expr a : '\(a\)' >/dev/null 2>&1; then
- as_expr=expr
+ as_expr="expr"
else
- as_expr=false
+ as_expr="false"
fi
rm -f conf$$ conf$$.exe conf$$.file
@@ -22972,7 +24026,7 @@ if ln -s conf$$.file conf$$ 2>/dev/null; then
as_ln_s='ln -s'
fi
elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
+ as_ln_s='ln'
else
as_ln_s='cp -p'
fi
@@ -23059,10 +24113,10 @@ EOF
cat >>"$CONFIG_STATUS" <<EOF
ac_cs_version="\\
config.status
-configured by $0, generated by GNU Autoconf 2.52.20210105,
+configured by $0, generated by GNU Autoconf 2.52.20231210,
with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
-Copyright 2003-2020,2021 Thomas E. Dickey
+Copyright 2003-2022,2023 Thomas E. Dickey
Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
@@ -23104,7 +24158,7 @@ cat >>"$CONFIG_STATUS" <<\EOF
echo "$ac_cs_version"; exit 0 ;;
--he | --h)
# Conflict between --help and --header
- { { echo "$as_me:23107: error: ambiguous option: $1
+ { { echo "$as_me:24161: error: ambiguous option: $1
Try \`$0 --help' for more information." >&5
echo "$as_me: error: ambiguous option: $1
Try \`$0 --help' for more information." >&2;}
@@ -23123,7 +24177,7 @@ Try \`$0 --help' for more information." >&2;}
ac_need_defaults=false;;
# This is an error.
- -*) { { echo "$as_me:23126: error: unrecognized option: $1
+ -*) { { echo "$as_me:24180: error: unrecognized option: $1
Try \`$0 --help' for more information." >&5
echo "$as_me: error: unrecognized option: $1
Try \`$0 --help' for more information." >&2;}
@@ -23142,7 +24196,7 @@ cat >&5 << _ACEOF
## Running config.status. ##
## ----------------------- ##
-This file was extended by $as_me 2.52.20210105, executed with
+This file was extended by $as_me 2.52.20231210, executed with
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
CONFIG_LINKS = $CONFIG_LINKS
@@ -23173,7 +24227,7 @@ do
"Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
"default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
"ncurses_cfg.h" ) CONFIG_HEADERS="$CONFIG_HEADERS ncurses_cfg.h:ncurses_tst.hin" ;;
- *) { { echo "$as_me:23176: error: invalid argument: $ac_config_target" >&5
+ *) { { echo "$as_me:24230: error: invalid argument: $ac_config_target" >&5
echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
{ (exit 1); exit 1; }; };;
esac
@@ -23197,14 +24251,14 @@ $debug ||
}
# Create a (secure) tmp directory for tmp files.
-: ${TMPDIR=/tmp}
+: "${TMPDIR=/tmp}"
{
tmp=`(umask 077 && mktemp -d -q "$TMPDIR/csXXXXXX") 2>/dev/null` &&
test -n "$tmp" && test -d "$tmp"
} ||
{
tmp=$TMPDIR/cs$$-$RANDOM
- (umask 077 && mkdir $tmp)
+ (umask 077 && mkdir "$tmp")
} ||
{
echo "$me: cannot create a temporary directory in $TMPDIR" >&2
@@ -23224,7 +24278,7 @@ cat >>"$CONFIG_STATUS" <<EOF
if test -n "\$CONFIG_FILES"; then
# Protect against being on the right side of a sed subst in config.status.
sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
- s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
+ s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >"\$tmp"/subs.sed <<\\CEOF
s,@SHELL@,$SHELL,;t t
s,@exec_prefix@,$exec_prefix,;t t
s,@prefix@,$prefix,;t t
@@ -23285,6 +24339,9 @@ s,@INSTALL_OPT_S@,$INSTALL_OPT_S,;t t
s,@INSTALL_OPT_O@,$INSTALL_OPT_O,;t t
s,@LINT@,$LINT,;t t
s,@LINT_OPTS@,$LINT_OPTS,;t t
+s,@LINT_LIBS@,$LINT_LIBS,;t t
+s,@MAKE_NO_PHONY@,$MAKE_NO_PHONY,;t t
+s,@MAKE_PHONY@,$MAKE_PHONY,;t t
s,@CTAGS@,$CTAGS,;t t
s,@ETAGS@,$ETAGS,;t t
s,@MAKE_LOWER_TAGS@,$MAKE_LOWER_TAGS,;t t
@@ -23319,6 +24376,8 @@ s,@cf_cv_abi_version@,$cf_cv_abi_version,;t t
s,@cf_cv_rel_version@,$cf_cv_rel_version,;t t
s,@includesubdir@,$includesubdir,;t t
s,@FGREP@,$FGREP,;t t
+s,@HAVE_STDNORETURN_H@,$HAVE_STDNORETURN_H,;t t
+s,@STDC_NORETURN@,$STDC_NORETURN,;t t
s,@PKG_CONFIG@,$PKG_CONFIG,;t t
s,@ac_pt_PKG_CONFIG@,$ac_pt_PKG_CONFIG,;t t
s,@ECHO_LT@,$ECHO_LT,;t t
@@ -23335,6 +24394,7 @@ s,@X_LIBS@,$X_LIBS,;t t
s,@X_EXTRA_LIBS@,$X_EXTRA_LIBS,;t t
s,@XCURSES_CONFIG@,$XCURSES_CONFIG,;t t
s,@ac_ct_XCURSES_CONFIG@,$ac_ct_XCURSES_CONFIG,;t t
+s,@cf_cv_screen@,$cf_cv_screen,;t t
s,@RGB_PATH@,$RGB_PATH,;t t
s,@no_x11_rgb@,$no_x11_rgb,;t t
s,@FORM_NAME@,$FORM_NAME,;t t
@@ -23358,11 +24418,11 @@ EOF
ac_sed_cmds=
while "$ac_more_lines"; do
if test "$ac_beg" -gt 1; then
- sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+ sed "1,${ac_beg}d; ${ac_end}q" "$tmp"/subs.sed >"$tmp"/subs.frag
else
- sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+ sed "${ac_end}q" "$tmp"/subs.sed >"$tmp"/subs.frag
fi
- if test ! -s $tmp/subs.frag; then
+ if test ! -s "$tmp"/subs.frag; then
ac_more_lines=false
else
# The purpose of the label and of the branching condition is to
@@ -23370,17 +24430,17 @@ EOF
# is no need to browse any of the substitutions).
# These are the two extra sed commands mentioned above.
(echo ':t
- /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
+ /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat "$tmp"/subs.frag) >"$tmp"/subs-$ac_sed_frag.sed
# It is possible to make a multiline substitution using escaped newlines.
# Ensure that we do not split the substitution between script fragments.
ac_BEG=$ac_end
ac_END=`expr "$ac_end" + "$ac_max_sed_lines"`
- sed "1,${ac_BEG}d; ${ac_END}p; q" $tmp/subs.sed >$tmp/subs.next
- if test -s $tmp/subs.next; then
- grep '^s,@[^@,][^@,]*@,.*\\$' $tmp/subs.next >$tmp/subs.edit
- if test ! -s $tmp/subs.edit; then
- grep "^s,@[^@,][^@,]*@,.*,;t t$" $tmp/subs.next >$tmp/subs.edit
- if test ! -s $tmp/subs.edit; then
+ sed "1,${ac_BEG}d; ${ac_END}p; q" "$tmp"/subs.sed >"$tmp"/subs.next
+ if test -s "$tmp"/subs.next; then
+ grep '^s,@[^@,][^@,]*@,.*\\$' "$tmp"/subs.next >"$tmp"/subs.edit
+ if test ! -s "$tmp"/subs.edit; then
+ grep "^s,@[^@,][^@,]*@,.*,;t t$" "$tmp"/subs.next >"$tmp"/subs.edit
+ if test ! -s "$tmp"/subs.edit; then
if test "$ac_beg" -gt 1; then
ac_end=`expr "$ac_end" - 1`
continue
@@ -23390,9 +24450,9 @@ EOF
fi
if test -z "$ac_sed_cmds"; then
- ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
+ ac_sed_cmds="sed -f \"$tmp\"/subs-$ac_sed_frag.sed"
else
- ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
+ ac_sed_cmds="$ac_sed_cmds | sed -f \"$tmp\"/subs-$ac_sed_frag.sed"
fi
ac_sed_frag=`expr "$ac_sed_frag" + 1`
ac_beg=$ac_end
@@ -23400,7 +24460,7 @@ EOF
fi
done
if test -z "$ac_sed_cmds"; then
- ac_sed_cmds=cat
+ ac_sed_cmds="cat"
fi
fi # test -n "$CONFIG_FILES"
@@ -23410,7 +24470,7 @@ for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
# Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
case "$ac_file" in
- | *:- | *:-:* ) # input from stdin
- cat >$tmp/stdin
+ cat >"$tmp"/stdin
ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
*:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
@@ -23447,7 +24507,7 @@ for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do
esac
done; }
- ac_dir_suffix="/`echo $ac_dir|sed 's,^\./,,'`"
+ ac_dir_suffix="/`echo "$ac_dir"|sed 's,^\./,,'`"
# A "../" for each directory in $ac_dir_suffix.
ac_dots=`echo "$ac_dir_suffix" | sed 's,/[^/]*,../,g'`
else
@@ -23475,7 +24535,7 @@ done; }
esac
if test x"$ac_file" != x-; then
- { echo "$as_me:23478: creating $ac_file" >&5
+ { echo "$as_me:24538: creating $ac_file" >&5
echo "$as_me: creating $ac_file" >&6;}
rm -f "$ac_file"
fi
@@ -23490,23 +24550,23 @@ echo "$as_me: creating $ac_file" >&6;}
ac_file_inputs=`IFS=:
for f in $ac_file_in; do
case $f in
- -) echo $tmp/stdin ;;
+ -) echo "$tmp"/stdin ;;
[\\/$]*)
# Absolute (can't be DOS-style, as IFS=:)
- test -f "$f" || { { echo "$as_me:23496: error: cannot find input file: $f" >&5
+ test -f "$f" || { { echo "$as_me:24556: error: cannot find input file: $f" >&5
echo "$as_me: error: cannot find input file: $f" >&2;}
{ (exit 1); exit 1; }; }
- echo $f;;
+ echo "$f";;
*) # Relative
if test -f "$f"; then
# Build tree
- echo $f
+ echo "$f"
elif test -f "$srcdir/$f"; then
# Source tree
echo "$srcdir/$f"
else
# /dev/null tree
- { { echo "$as_me:23509: error: cannot find input file: $f" >&5
+ { { echo "$as_me:24569: error: cannot find input file: $f" >&5
echo "$as_me: error: cannot find input file: $f" >&2;}
{ (exit 1); exit 1; }; }
fi;;
@@ -23522,7 +24582,7 @@ cat >>"$CONFIG_STATUS" <<\EOF
if test -n "$ac_seen"; then
ac_used=`grep '@datarootdir@' "$ac_item"`
if test -z "$ac_used"; then
- { echo "$as_me:23525: WARNING: datarootdir was used implicitly but not set:
+ { echo "$as_me:24585: WARNING: datarootdir was used implicitly but not set:
$ac_seen" >&5
echo "$as_me: WARNING: datarootdir was used implicitly but not set:
$ac_seen" >&2;}
@@ -23531,7 +24591,7 @@ $ac_seen" >&2;}
fi
ac_seen=`grep '${datarootdir}' "$ac_item"`
if test -n "$ac_seen"; then
- { echo "$as_me:23534: WARNING: datarootdir was used explicitly but not set:
+ { echo "$as_me:24594: WARNING: datarootdir was used explicitly but not set:
$ac_seen" >&5
echo "$as_me: WARNING: datarootdir was used explicitly but not set:
$ac_seen" >&2;}
@@ -23556,38 +24616,46 @@ s,@configure_input@,$configure_input,;t t
s,@srcdir@,$ac_srcdir,;t t
s,@top_srcdir@,$ac_top_srcdir,;t t
s,@INSTALL@,$ac_INSTALL,;t t
-" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
- rm -f $tmp/stdin
+" $ac_file_inputs | (eval "$ac_sed_cmds") >"$tmp"/out
+ rm -f "$tmp"/stdin
+EOF
+test -n "${FGREP}" || FGREP="grep -F"
+test -n "${EGREP}" || EGREP="grep -E"
+cat >>"$CONFIG_STATUS" <<EOF
+ test -n "\${FGREP}" || FGREP="$FGREP"
+ test -n "\${EGREP}" || EGREP="$EGREP"
+EOF
+cat >>"$CONFIG_STATUS" <<\EOF
if test x"$ac_file" != x-; then
cp "$tmp/out" "$ac_file"
for ac_name in prefix exec_prefix datarootdir
do
- ac_seen=`${FGREP-fgrep} -n '${'$ac_name'[:=].*}' "$ac_file"`
+ ac_seen=`$FGREP -n '${'$ac_name'[:=].*}' "$ac_file"`
if test -n "$ac_seen"; then
- ac_init=`${EGREP-egrep} '[ ]*'$ac_name'[ ]*=' "$ac_file"`
+ ac_init=`$EGREP '[ ]*'$ac_name'[ ]*=' "$ac_file"`
if test -z "$ac_init"; then
- ac_seen=`echo "$ac_seen" |sed -e 's,^,'$ac_file':,'`
- { echo "$as_me:23571: WARNING: Variable $ac_name is used but was not set:
+ ac_seen=`echo "$ac_seen" |sed -e 's,^,'"$ac_file"':,'`
+ { echo "$as_me:24639: WARNING: Variable $ac_name is used but was not set:
$ac_seen" >&5
echo "$as_me: WARNING: Variable $ac_name is used but was not set:
$ac_seen" >&2;}
fi
fi
done
- ${EGREP-egrep} -n '@[a-z_][a-z_0-9]+@' "$ac_file" >$tmp/out
- ${EGREP-egrep} -n '@[A-Z_][A-Z_0-9]+@' "$ac_file" >>$tmp/out
- if test -s $tmp/out; then
- ac_seen=`sed -e 's,^,'$ac_file':,' < $tmp/out`
- { echo "$as_me:23582: WARNING: Some variables may not be substituted:
+ $EGREP -n '@[a-z_][a-z_0-9]+@' "$ac_file" >"$tmp"/out
+ $EGREP -n '@[A-Z_][A-Z_0-9]+@' "$ac_file" >>"$tmp"/out
+ if test -s "$tmp"/out; then
+ ac_seen=`sed -e 's,^,'"$ac_file"':,' < "$tmp"/out`
+ { echo "$as_me:24650: WARNING: Some variables may not be substituted:
$ac_seen" >&5
echo "$as_me: WARNING: Some variables may not be substituted:
$ac_seen" >&2;}
fi
else
- cat $tmp/out
+ cat "$tmp"/out
fi
- rm -f $tmp/out
+ rm -f "$tmp"/out
done
EOF
@@ -23620,7 +24688,7 @@ for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
# Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
case "$ac_file" in
- | *:- | *:-:* ) # input from stdin
- cat >$tmp/stdin
+ cat >"$tmp"/stdin
ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
*:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
@@ -23628,7 +24696,7 @@ for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
* ) ac_file_in=$ac_file.in ;;
esac
- test x"$ac_file" != x- && { echo "$as_me:23631: creating $ac_file" >&5
+ test x"$ac_file" != x- && { echo "$as_me:24699: creating $ac_file" >&5
echo "$as_me: creating $ac_file" >&6;}
# First look for the input files in the build tree, otherwise in the
@@ -23636,10 +24704,10 @@ echo "$as_me: creating $ac_file" >&6;}
ac_file_inputs=`IFS=:
for f in $ac_file_in; do
case $f in
- -) echo $tmp/stdin ;;
+ -) echo "$tmp"/stdin ;;
[\\/$]*)
# Absolute (can't be DOS-style, as IFS=:)
- test -f "$f" || { { echo "$as_me:23642: error: cannot find input file: $f" >&5
+ test -f "$f" || { { echo "$as_me:24710: error: cannot find input file: $f" >&5
echo "$as_me: error: cannot find input file: $f" >&2;}
{ (exit 1); exit 1; }; }
echo $f;;
@@ -23652,14 +24720,14 @@ echo "$as_me: error: cannot find input file: $f" >&2;}
echo "$srcdir/$f"
else
# /dev/null tree
- { { echo "$as_me:23655: error: cannot find input file: $f" >&5
+ { { echo "$as_me:24723: error: cannot find input file: $f" >&5
echo "$as_me: error: cannot find input file: $f" >&2;}
{ (exit 1); exit 1; }; }
fi;;
esac
done` || { (exit 1); exit 1; }
# Remove the trailing spaces.
- sed 's/[ ]*$//' $ac_file_inputs >$tmp/in
+ sed 's/[ ]*$//' $ac_file_inputs >"$tmp"/in
EOF
@@ -23691,9 +24759,9 @@ echo ' cat >> conftest.edit <<CEOF
/@DEFS@/r conftest.frag
/@DEFS@/d
CEOF
-sed -f conftest.edit $tmp/in > $tmp/out
-rm -f $tmp/in
-mv $tmp/out $tmp/in
+sed -f conftest.edit "$tmp"/in > "$tmp"/out
+rm -f "$tmp"/in
+mv "$tmp"/out "$tmp"/in
rm -f conftest.edit conftest.frag
' >> "$CONFIG_STATUS"
@@ -23702,15 +24770,15 @@ cat >>"$CONFIG_STATUS" <<\EOF
# use $as_me), people would be surprised to read:
# /* config.h. Generated automatically by config.status. */
if test x"$ac_file" = x-; then
- echo "/* Generated automatically by configure. */" >$tmp/config.h
+ echo "/* Generated automatically by configure. */" >"$tmp"/config.h
else
- echo "/* $ac_file. Generated automatically by configure. */" >$tmp/config.h
+ echo "/* $ac_file. Generated automatically by configure. */" >"$tmp"/config.h
fi
- cat $tmp/in >>$tmp/config.h
- rm -f $tmp/in
+ cat "$tmp"/in >>"$tmp"/config.h
+ rm -f "$tmp"/in
if test x"$ac_file" != x-; then
if cmp -s "$ac_file" "$tmp/config.h" 2>/dev/null; then
- { echo "$as_me:23713: $ac_file is unchanged" >&5
+ { echo "$as_me:24781: $ac_file is unchanged" >&5
echo "$as_me: $ac_file is unchanged" >&6;}
else
ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
@@ -23746,8 +24814,8 @@ done; }
mv "$tmp/config.h" "$ac_file"
fi
else
- cat $tmp/config.h
- rm -f $tmp/config.h
+ cat "$tmp"/config.h
+ rm -f "$tmp"/config.h
fi
done
EOF
diff --git a/test/configure.in b/test/configure.in
index 2a0b77903df6..4df1c11f933b 100644
--- a/test/configure.in
+++ b/test/configure.in
@@ -1,5 +1,5 @@
dnl***************************************************************************
-dnl Copyright 2018-2019,2020 Thomas E. Dickey *
+dnl Copyright 2018-2023,2024 Thomas E. Dickey *
dnl Copyright 1998-2017,2018 Free Software Foundation, Inc. *
dnl *
dnl Permission is hereby granted, free of charge, to any person obtaining a *
@@ -29,7 +29,7 @@ dnl***************************************************************************
dnl
dnl Author: Thomas E. Dickey 1996-on
dnl
-dnl $Id: configure.in,v 1.162 2020/08/29 13:23:50 tom Exp $
+dnl $Id: configure.in,v 1.174 2024/03/30 14:31:11 tom Exp $
dnl This is a simple configuration-script for the ncurses test programs that
dnl allows the test-directory to be separately configured against a reference
dnl system (i.e., sysvr4 curses)
@@ -42,7 +42,7 @@ dnl https://invisible-island.net/autoconf/
dnl https://invisible-island.net/autoconf/my-autoconf.html
dnl https://invisible-island.net/ncurses/ncurses-examples.html
dnl ---------------------------------------------------------------------------
-AC_PREREQ(2.52.20200111)
+AC_PREREQ(2.52.20210509)
AC_INIT(ncurses.c)
AC_CONFIG_HEADER(ncurses_cfg.h:ncurses_tst.hin)
@@ -62,6 +62,7 @@ AC_PROG_AWK
CF_PROG_INSTALL
CF_INSTALL_OPTS
CF_PROG_LINT
+CF_MAKE_PHONY
CF_MAKE_TAGS
CF_MATH_LIB(MATH_LIB,pow(sin(x),x))
@@ -107,6 +108,7 @@ AC_OBJEXT
CF_GCC_ATTRIBUTES
CF_ENABLE_STRING_HACKS
CF_XOPEN_SOURCE(600)
+AC_CHECK_DECL(exit)
CF_SIG_ATOMIC_T
# Work around breakage on OS X
@@ -236,14 +238,12 @@ fi
# look for curses-related headers
AC_CHECK_HEADERS( $cf_curses_headers )
-AC_STDC_HEADERS
AC_HEADER_TIME
AC_CHECK_HEADERS( \
getopt.h \
locale.h \
math.h \
stdarg.h \
-stdint.h \
sys/ioctl.h \
sys/select.h \
sys/time.h \
@@ -252,10 +252,10 @@ unistd.h \
)
CF_GETOPT_HEADER
+CF_FUNC_GETTIME
AC_CHECK_FUNCS( \
getopt \
-gettimeofday \
snprintf \
strdup \
strstr \
@@ -316,12 +316,15 @@ wcstombs \
fi
CF_CURSES_FUNCS( \
+_nc_tparm_analyze \
+_tracef \
alloc_pair \
assume_default_colors \
chgat \
color_content \
color_set \
copywin \
+curses_trace \
delscreen \
dupwin \
exit_curses \
@@ -356,8 +359,12 @@ termname \
tgetent \
tigetnum \
tigetstr \
+tiparm \
+tiparm_s \
+tiscan_s \
tputs_sp \
typeahead \
+unget_wch \
use_default_colors \
use_env \
use_extended_names \
@@ -372,7 +379,6 @@ winsdelln \
winsstr \
wresize \
wsyncdown \
-_tracef \
)
CF_TPUTS_PROTO
diff --git a/test/demo_altkeys.c b/test/demo_altkeys.c
index fb3cd65c6f04..ea6a7e64bcae 100644
--- a/test/demo_altkeys.c
+++ b/test/demo_altkeys.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2022,2023 Thomas E. Dickey *
* Copyright 2005-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,7 +27,7 @@
* authorization. *
****************************************************************************/
/*
- * $Id: demo_altkeys.c,v 1.14 2020/02/02 23:34:34 tom Exp $
+ * $Id: demo_altkeys.c,v 1.17 2023/02/25 18:08:02 tom Exp $
*
* Demonstrate the define_key() function.
* Thomas Dickey - 2005/10/22
@@ -71,17 +71,49 @@ log_last_line(WINDOW *win)
}
}
+static void
+usage(int ok)
+{
+ static const char *msg[] =
+ {
+ "Usage: demo_altkeys [options]"
+ ,""
+ ,USAGE_COMMON
+ };
+ size_t n;
+
+ for (n = 0; n < SIZEOF(msg); n++)
+ fprintf(stderr, "%s\n", msg[n]);
+
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
+}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
+
int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+main(int argc, char *argv[])
{
int n;
int ch;
-#if HAVE_GETTIMEOFDAY
- struct timeval previous;
-#endif
+ TimeType previous;
+
+ while ((ch = getopt(argc, argv, OPTS_COMMON)) != -1) {
+ switch (ch) {
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
+ default:
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
+ }
+ }
+ if (optind < argc)
+ usage(FALSE);
unlink(MY_LOGFILE);
+ setlocale(LC_ALL, "");
if (newterm(0, stdout, stdin) == 0) {
fprintf(stderr, "Cannot initialize terminal\n");
ExitProgram(EXIT_FAILURE);
@@ -113,31 +145,16 @@ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
}
}
-#if HAVE_GETTIMEOFDAY
- gettimeofday(&previous, 0);
-#endif
+ GetClockTime(&previous);
while ((ch = getch()) != ERR) {
bool escaped = (ch >= MY_KEYS);
const char *name = keyname(escaped ? (ch - MY_KEYS) : ch);
-#if HAVE_GETTIMEOFDAY
- int secs, msecs;
- struct timeval current;
-
- gettimeofday(&current, 0);
- secs = (int) (current.tv_sec - previous.tv_sec);
- msecs = (int) ((current.tv_usec - previous.tv_usec) / 1000);
- if (msecs < 0) {
- msecs += 1000;
- --secs;
- }
- if (msecs >= 1000) {
- secs += msecs / 1000;
- msecs %= 1000;
- }
- printw("%6d.%03d ", secs, msecs);
+ TimeType current;
+
+ GetClockTime(&current);
+ printw("%6.03f ", ElapsedSeconds(&previous, &current));
previous = current;
-#endif
printw("Keycode %d, name %s%s\n",
ch,
escaped ? "ESC-" : "",
diff --git a/test/demo_defkey.c b/test/demo_defkey.c
index afe102931a68..441667263f69 100644
--- a/test/demo_defkey.c
+++ b/test/demo_defkey.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 2002-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,7 +27,7 @@
* authorization. *
****************************************************************************/
/*
- * $Id: demo_defkey.c,v 1.31 2020/12/26 17:55:13 tom Exp $
+ * $Id: demo_defkey.c,v 1.35 2024/01/20 20:46:12 tom Exp $
*
* Demonstrate the define_key() function.
* Thomas Dickey - 2002/11/23
@@ -100,7 +100,7 @@ visible(const char *string)
{
char *result = 0;
- if (string != 0 && *string != '\0') {
+ if (VALID_STRING(string) && *string != '\0') {
int pass;
int n;
size_t need = 1;
@@ -148,11 +148,7 @@ really_define_key(WINDOW *win, const char *new_string, int code)
}
log_last_line(win);
- if (vis_string != 0) {
- free(vis_string);
- vis_string = 0;
- }
-
+ free(vis_string);
vis_string = visible(new_string);
if ((rc = key_defined(new_string)) > 0) {
wprintw(win, "%s was bound to %s\n", vis_string, keyname(rc));
@@ -185,7 +181,7 @@ duplicate(WINDOW *win, NCURSES_CONST char *name, int code)
{
char *value = tigetstr(name);
- if (value != 0) {
+ if (VALID_STRING(value)) {
const char *prefix = 0;
if (!(strncmp) (value, "\033[", (size_t) 2)) {
@@ -214,16 +210,50 @@ remove_definition(WINDOW *win, int code)
really_define_key(win, 0, code);
}
+static void
+usage(int ok)
+{
+ static const char *msg[] =
+ {
+ "Usage: demo_defkey [options]"
+ ,""
+ ,USAGE_COMMON
+ };
+ size_t n;
+
+ for (n = 0; n < SIZEOF(msg); n++)
+ fprintf(stderr, "%s\n", msg[n]);
+
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
+}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
+
int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+main(int argc, char *argv[])
{
char *fkeys[12];
int n;
int ch;
WINDOW *win;
+ while ((ch = getopt(argc, argv, OPTS_COMMON)) != -1) {
+ switch (ch) {
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
+ default:
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
+ }
+ }
+ if (optind < argc)
+ usage(FALSE);
+
unlink(MY_LOGFILE);
+ setlocale(LC_ALL, "");
initscr();
(void) cbreak(); /* take input chars one at a time, no wait for \n */
(void) noecho(); /* don't echo input */
diff --git a/test/demo_forms.c b/test/demo_forms.c
index ea0426d0fa00..62e8c644e23b 100644
--- a/test/demo_forms.c
+++ b/test/demo_forms.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2022,2023 Thomas E. Dickey *
* Copyright 2003-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,7 +27,7 @@
* authorization. *
****************************************************************************/
/*
- * $Id: demo_forms.c,v 1.58 2020/03/21 15:57:59 tom Exp $
+ * $Id: demo_forms.c,v 1.63 2023/11/11 00:29:53 tom Exp $
*
* Demonstrate a variety of functions from the form library.
* Thomas Dickey - 2003/4/26
@@ -154,7 +154,7 @@ make_label(const char *label, int frow, int fcol)
if (f) {
set_field_buffer(f, 0, label);
- set_field_opts(f, (int) ((unsigned) field_opts(f) & ~O_ACTIVE));
+ set_field_opts(f, (int) ((unsigned) field_opts(f) & (unsigned) ~O_ACTIVE));
}
return (f);
}
@@ -242,7 +242,7 @@ show_insert_mode(bool insert_mode)
#define O_SELECTABLE (O_ACTIVE | O_VISIBLE)
static FIELD *
-another_field(FORM *form, FIELD *field)
+another_field(FORM *form, const FIELD *const field)
{
FIELD **f = form_fields(form);
FIELD *result = 0;
@@ -556,23 +556,28 @@ demo_forms(void)
}
static void
-usage(void)
+usage(int ok)
{
static const char *tbl[] =
{
"Usage: demo_forms [options] [data file]"
,""
- ," -d make fields dynamic"
- ," -j value justify (1=left, 2=center, 3=right)"
- ," -m value set maximum size of dynamic fields"
- ," -o value specify number of offscreen rows in new_field()"
- ," -t value specify text to fill fields initially"
+ ,USAGE_COMMON
+ ,"Options:"
+ ," -d make fields dynamic"
+ ," -j NUM justify (1=left, 2=center, 3=right)"
+ ," -m NUM set maximum size of dynamic fields"
+ ," -o NUM specify number of offscreen rows in new_field()"
+ ," -t NUM specify text to fill fields initially"
};
unsigned int j;
for (j = 0; j < SIZEOF(tbl); ++j)
fprintf(stderr, "%s\n", tbl[j]);
- exit(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
main(int argc, char *argv[])
@@ -581,7 +586,7 @@ main(int argc, char *argv[])
setlocale(LC_ALL, "");
- while ((ch = getopt(argc, argv, "dj:m:o:t:")) != -1) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "dj:m:o:t:")) != -1) {
switch (ch) {
case 'd':
d_option = TRUE;
@@ -590,7 +595,7 @@ main(int argc, char *argv[])
j_value = atoi(optarg);
if (j_value < NO_JUSTIFICATION
|| j_value > JUSTIFY_RIGHT)
- usage();
+ usage(FALSE);
break;
case 'm':
m_value = atoi(optarg);
@@ -601,9 +606,12 @@ main(int argc, char *argv[])
case 't':
t_value = optarg;
break;
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
-
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
}
}
while (optind < argc) {
diff --git a/test/demo_keyok.c b/test/demo_keyok.c
index 28d90aa18cc2..8f4ae906bd06 100644
--- a/test/demo_keyok.c
+++ b/test/demo_keyok.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2022 Thomas E. Dickey *
* Copyright 2002-2006,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,7 +27,7 @@
* authorization. *
****************************************************************************/
/*
- * $Id: demo_keyok.c,v 1.7 2020/02/02 23:34:34 tom Exp $
+ * $Id: demo_keyok.c,v 1.9 2022/12/10 23:31:31 tom Exp $
*
* Demonstrate the keyok() function.
* Thomas Dickey - 2002/11/23
@@ -36,14 +36,48 @@
#include <test.priv.h>
#if defined(NCURSES_VERSION) && NCURSES_EXT_FUNCS
+static void
+usage(int ok)
+{
+ static const char *msg[] =
+ {
+ "Usage: demo_keyok [options]"
+ ,""
+ ,USAGE_COMMON
+ };
+ size_t n;
+
+ for (n = 0; n < SIZEOF(msg); n++)
+ fprintf(stderr, "%s\n", msg[n]);
+
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
+}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
+
int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+main(int argc, char *argv[])
{
int lastch = ERR;
int prior = ERR;
int ch;
WINDOW *win;
+ while ((ch = getopt(argc, argv, OPTS_COMMON)) != -1) {
+ switch (ch) {
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
+ default:
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
+ }
+ }
+ if (optind < argc)
+ usage(FALSE);
+
+ setlocale(LC_ALL, "");
initscr();
(void) cbreak(); /* take input chars one at a time, no wait for \n */
(void) noecho(); /* don't echo input */
diff --git a/test/demo_menus.c b/test/demo_menus.c
index 02f7ca3312ff..7b0bf30316e5 100644
--- a/test/demo_menus.c
+++ b/test/demo_menus.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2022,2023 Thomas E. Dickey *
* Copyright 2003-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,7 +27,7 @@
* authorization. *
****************************************************************************/
/*
- * $Id: demo_menus.c,v 1.71 2020/02/02 23:34:34 tom Exp $
+ * $Id: demo_menus.c,v 1.80 2023/05/27 20:13:10 tom Exp $
*
* Demonstrate a variety of functions from the menu library.
* Thomas Dickey - 2005/4/9
@@ -113,7 +113,7 @@ static bool loaded_file = FALSE;
static char empty[1];
#ifdef TRACE
-static void failed(const char *s) GCC_NORETURN;
+static GCC_NORETURN void failed(const char *s);
static void
failed(const char *s)
@@ -308,7 +308,7 @@ menu_create(ITEM ** items, int count, int ncols, MenuNo number)
}
static void
-menu_destroy(MENU * m)
+menu_destroy(MENU * m, int itemsToo)
{
Trace(("menu_destroy %p", (void *) m));
if (m != 0) {
@@ -331,18 +331,18 @@ menu_destroy(MENU * m)
Trace(("freeing blob %p", blob));
free((void *) blob);
}
- free(items);
- items = 0;
}
-#ifdef TRACE
- if ((count > 0) && (m == mpTrace)) {
- ITEM **ip = items;
- if (ip != 0) {
- while (*ip)
- free(*ip++);
+ if (count > 0 && itemsToo) {
+ if (itemsToo & 1) {
+ ITEM **ip = items;
+ if (ip != 0) {
+ while (*ip)
+ free_item(*ip++);
+ }
}
+ if (itemsToo & 2)
+ free(items);
}
-#endif
}
}
@@ -565,7 +565,7 @@ tracetrace(unsigned tlevel)
}
_nc_SPRINTF(buf, _nc_SLIMIT(need) "0x%02x = {", tlevel);
if (tlevel == 0) {
- _nc_STRCAT(buf, t_tbl[0].name, need);
+ _nc_STRCAT(buf, t_tbl[0].name ? t_tbl[0].name : "", need);
_nc_STRCAT(buf, ", ", need);
} else {
for (n = 1; t_tbl[n].name != 0; n++)
@@ -925,19 +925,18 @@ perform_menus(void)
}
if (code == E_REQUEST_DENIED)
beep();
- continue;
}
}
static void
destroy_menus(void)
{
- menu_destroy(mpFile);
- menu_destroy(mpSelect);
+ menu_destroy(mpFile, 1);
+ menu_destroy(mpSelect, 3);
#ifdef TRACE
- menu_destroy(mpTrace);
+ menu_destroy(mpTrace, 1);
#endif
- menu_destroy(mpBanner);
+ menu_destroy(mpBanner, 1);
}
#if HAVE_RIPOFFLINE
@@ -977,41 +976,46 @@ call_files(int code)
}
static void
-usage(void)
+usage(int ok)
{
static const char *const tbl[] =
{
"Usage: demo_menus [options] [menu-file]"
,""
+ ,USAGE_COMMON
,"Options:"
#if HAVE_RIPOFFLINE
- ," -f rip-off footer line (can repeat)"
- ," -h rip-off header line (can repeat)"
+ ," -F rip-off footer line (can repeat)"
+ ," -H rip-off header line (can repeat)"
#endif
#ifdef TRACE
- ," -t mask specify default trace-level (may toggle with ^T)"
+ ," -t mask specify default trace-level (may toggle with ^T)"
#endif
};
size_t n;
for (n = 0; n < SIZEOF(tbl); n++)
fprintf(stderr, "%s\n", tbl[n]);
- ExitProgram(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
main(int argc, char *argv[])
{
- int c;
+ int ch;
setlocale(LC_ALL, "");
+ START_TRACE();
- while ((c = getopt(argc, argv, "fht:")) != -1) {
- switch (c) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "FHt:")) != -1) {
+ switch (ch) {
#if HAVE_RIPOFFLINE
- case 'f':
+ case 'F':
ripoffline(-1, rip_footer);
break;
- case 'h':
+ case 'H':
ripoffline(1, rip_header);
break;
#endif /* HAVE_RIPOFFLINE */
@@ -1020,8 +1024,12 @@ main(int argc, char *argv[])
curses_trace((unsigned) strtoul(optarg, 0, 0));
break;
#endif
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
}
}
diff --git a/test/demo_new_pair.c b/test/demo_new_pair.c
index ac0d9bf3362d..bc41d44de930 100644
--- a/test/demo_new_pair.c
+++ b/test/demo_new_pair.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2020,2021 Thomas E. Dickey *
+ * Copyright 2018-2021,2022 Thomas E. Dickey *
* Copyright 2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,7 +27,7 @@
* authorization. *
****************************************************************************/
/*
- * $Id: demo_new_pair.c,v 1.24 2021/02/21 01:24:06 tom Exp $
+ * $Id: demo_new_pair.c,v 1.27 2022/12/04 00:40:11 tom Exp $
*
* Demonstrate the alloc_pair() function.
*/
@@ -127,26 +127,27 @@ now(void)
}
static void
-usage(void)
+usage(int ok)
{
static const char *msg[] =
{
- "Usage: demo_new_pair [options]",
- "",
- "Repeatedly print using all possible color combinations.",
- "",
- "Options:",
- " -g use getcchar to check setcchar",
- " -i use init_pair rather than alloc_pair",
- " -p start in paged-mode",
- " -s start in single-step mode",
- " -w print a wide-character cell",
+ "Usage: demo_new_pair [options]"
+ ,""
+ ,"Repeatedly print using all possible color combinations."
+ ,""
+ ,USAGE_COMMON
+ ,"Options:"
+ ," -g use getcchar to check setcchar"
+ ," -i use init_pair rather than alloc_pair"
+ ," -p start in paged-mode"
+ ," -s start in single-step mode"
+ ," -w print a wide-character cell"
};
unsigned n;
for (n = 0; n < SIZEOF(msg); ++n) {
fprintf(stderr, "%s\n", msg[n]);
}
- ExitProgram(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
#define use_pages() \
@@ -158,6 +159,9 @@ usage(void)
#define update_modes() \
scrollok(stdscr, !paged_mode); \
nodelay(stdscr, !single_mode || paged_mode)
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
main(int argc, char *argv[])
@@ -204,7 +208,7 @@ main(int argc, char *argv[])
setlocale(LC_ALL, "");
- while ((ch = getopt(argc, argv, "gipsw")) != -1) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "gipsw")) != -1) {
switch (ch) {
case 'g':
check_set = TRUE;
@@ -221,9 +225,12 @@ main(int argc, char *argv[])
case 'w':
use_wide = TRUE;
break;
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
- break;
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
}
}
diff --git a/test/demo_panels.c b/test/demo_panels.c
index 005483e94f62..6c8258915713 100644
--- a/test/demo_panels.c
+++ b/test/demo_panels.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2020,2022 Thomas E. Dickey *
* Copyright 2003-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,7 +27,7 @@
* authorization. *
****************************************************************************/
/*
- * $Id: demo_panels.c,v 1.45 2020/02/02 23:34:34 tom Exp $
+ * $Id: demo_panels.c,v 1.48 2022/12/04 00:40:11 tom Exp $
*
* Demonstrate a variety of functions from the panel library.
*/
@@ -741,39 +741,43 @@ demo_panels(InitPanel myInit, FillPanel myFill)
}
static void
-usage(void)
+usage(int ok)
{
static const char *const tbl[] =
{
"Usage: demo_panels [options]"
,""
+ ,USAGE_COMMON
,"Options:"
- ," -i file read commands from file"
- ," -o file record commands in file"
- ," -m do not use colors"
+ ," -i file read commands from file"
+ ," -o file record commands in file"
+ ," -m do not use colors"
#if USE_WIDEC_SUPPORT
- ," -w use wide-characters in panels and background"
+ ," -w use wide-characters in panels and background"
#endif
- ," -x do not enclose panels in boxes"
+ ," -x do not enclose panels in boxes"
};
size_t n;
for (n = 0; n < SIZEOF(tbl); n++)
fprintf(stderr, "%s\n", tbl[n]);
- ExitProgram(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
main(int argc, char *argv[])
{
- int c;
+ int ch;
bool monochrome = FALSE;
InitPanel myInit = init_panel;
FillPanel myFill = fill_panel;
setlocale(LC_ALL, "");
- while ((c = getopt(argc, argv, "i:o:mwx")) != -1) {
- switch (c) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "i:o:mwx")) != -1) {
+ switch (ch) {
case 'i':
log_in = fopen(optarg, "r");
break;
@@ -792,8 +796,12 @@ main(int argc, char *argv[])
case 'x':
unboxed = TRUE;
break;
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
}
}
if (unboxed)
diff --git a/test/demo_tabs.c b/test/demo_tabs.c
index f63850dfd6dc..16c1ad57cfd8 100644
--- a/test/demo_tabs.c
+++ b/test/demo_tabs.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2020,2022 Thomas E. Dickey *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
@@ -29,52 +29,60 @@
/*
* Author: Thomas E. Dickey
*
- * $Id: demo_tabs.c,v 1.5 2020/02/02 23:34:34 tom Exp $
+ * $Id: demo_tabs.c,v 1.10 2022/12/04 00:40:11 tom Exp $
*
* A simple demo of tabs in curses.
*/
+#define USE_CURSES
#define USE_TINFO
-#include "test.priv.h"
+#include <test.priv.h>
static void
-usage(void)
+usage(int ok)
{
static const char *msg[] =
{
- "Usage: demo_tabs [options]",
- "",
- "Print a grid to test tab-stops with the curses interface",
- "",
- "Options:",
- " -l COUNT total number of lines to show",
- " -t NUM set TABSIZE variable to the given value",
+ "Usage: demo_tabs [options]"
+ ,""
+ ,"Print a grid to test tab-stops with the curses interface"
+ ,""
+ ,USAGE_COMMON
+ ,"Options:"
+ ," -l COUNT total number of lines to show"
+ ," -t NUM set TABSIZE variable to the given value"
};
unsigned n;
for (n = 0; n < SIZEOF(msg); ++n) {
fprintf(stderr, "%s\n", msg[n]);
}
- ExitProgram(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
main(int argc, char *argv[])
{
int tabstop;
- int n, col, row, step;
+ int ch, col, row, step;
int line_limit = -1;
int curses_stops = -1;
- while ((n = getopt(argc, argv, "l:t:")) != -1) {
- switch (n) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "l:t:")) != -1) {
+ switch (ch) {
case 'l':
line_limit = atoi(optarg);
break;
case 't':
curses_stops = atoi(optarg);
break;
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
- break;
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
}
}
@@ -92,10 +100,10 @@ main(int argc, char *argv[])
move(row, 0);
for (col = step = 0; col < COLS - 1; ++col) {
if (row == 0) {
- chtype ch = '-';
+ chtype ct = '-';
if ((col % tabstop) == 0)
- ch = '+';
- addch(ch);
+ ct = '+';
+ addch(ct);
} else if (col + 1 < row) {
addch('*');
} else {
diff --git a/test/demo_termcap.c b/test/demo_termcap.c
index adc9eeea6935..6e2aba700679 100644
--- a/test/demo_termcap.c
+++ b/test/demo_termcap.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2022,2023 Thomas E. Dickey *
* Copyright 2005-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -30,7 +30,7 @@
/*
* Author: Thomas E. Dickey
*
- * $Id: demo_termcap.c,v 1.59 2020/02/02 23:34:34 tom Exp $
+ * $Id: demo_termcap.c,v 1.65 2023/05/27 20:13:10 tom Exp $
*
* A simple demo of the termcap interface.
*/
@@ -55,7 +55,7 @@
#endif
#endif
-static void failed(const char *) GCC_NORETURN;
+static GCC_NORETURN void failed(const char *);
static void
failed(const char *msg)
@@ -105,7 +105,7 @@ static long total_s_values;
#define EachCapName(n) n = 33; n < 127; ++n
static char *
-make_dbitem(char *p, char *q)
+make_dbitem(const char *const p, const char *const q)
{
size_t need = strlen(e_opt) + 2 + (size_t) (p - q);
char *result = malloc(need);
@@ -404,7 +404,8 @@ typedef enum {
static void
parse_description(const char *input_name)
{
- static char empty[1];
+ static char empty[1] =
+ {0};
FILE *fp;
struct stat sb;
@@ -437,11 +438,13 @@ parse_description(const char *input_name)
failed("cannot allocate memory for input-file");
}
- if ((fp = fopen(input_name, "r")) == 0)
+ if ((fp = fopen(input_name, "r")) == 0) {
failed("cannot open input-file");
- len = fread(my_blob, sizeof(char), (size_t) sb.st_size, fp);
- my_blob[sb.st_size] = '\0';
- fclose(fp);
+ } else {
+ len = fread(my_blob, sizeof(char), (size_t) sb.st_size, fp);
+ my_blob[sb.st_size] = '\0';
+ fclose(fp);
+ }
/*
* First, get rid of comments and escaped newlines, as well as repeated
@@ -738,40 +741,45 @@ free_code_list(char **list)
#endif /* USE_CODE_LISTS */
static void
-usage(void)
+usage(int ok)
{
static const char *msg[] =
{
- "Usage: demo_termcap [options] [terminal]",
- "",
- "If no options are given, print all (boolean, numeric, string)",
- "capabilities for the given terminal, using short names.",
- "",
- "Options:",
- " -a try all names, print capabilities found",
- " -b print boolean-capabilities",
- " -d LIST colon-separated list of databases to use",
- " -e NAME environment variable to set with -d option",
- " -i NAME terminal description to use as names for \"-a\" option, etc.",
- " -n print numeric-capabilities",
- " -q quiet (prints only counts)",
- " -r COUNT repeat for given count",
- " -s print string-capabilities",
- " -v print termcap-variables",
+ "Usage: demo_termcap [options] [terminal]"
+ ,""
+ ,"If no options are given, print all (boolean, numeric, string)"
+ ,"capabilities for the given terminal, using short names."
+ ,""
+ ,USAGE_COMMON
+ ,"Options:"
+ ," -a try all names, print capabilities found"
+ ," -b print boolean-capabilities"
+ ," -d LIST colon-separated list of databases to use"
+ ," -e NAME environment variable to set with -d option"
+ ," -i NAME terminal description to use as names for \"-a\" option, etc."
+ ," -n print numeric-capabilities"
+ ," -q quiet (prints only counts)"
+ ," -r COUNT repeat for given count"
+ ," -s print string-capabilities"
+ ," -v print termcap-variables"
#ifdef NCURSES_VERSION
- " -x print extended capabilities",
+ ," -x print extended capabilities"
#endif
};
unsigned n;
for (n = 0; n < SIZEOF(msg); ++n) {
fprintf(stderr, "%s\n", msg[n]);
}
- ExitProgram(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
main(int argc, char *argv[])
{
+ int ch;
int n;
char *name;
bool a_opt = FALSE;
@@ -783,8 +791,8 @@ main(int argc, char *argv[])
int repeat;
int r_opt = 1;
- while ((n = getopt(argc, argv, "abd:e:i:nqr:svxy")) != -1) {
- switch (n) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "abd:e:i:nqr:svxy")) != -1) {
+ switch (ch) {
case 'a':
a_opt = TRUE;
break;
@@ -808,7 +816,7 @@ main(int argc, char *argv[])
break;
case 'r':
if ((r_opt = atoi(optarg)) <= 0)
- usage();
+ usage(FALSE);
break;
case 's':
s_opt = TRUE;
@@ -829,9 +837,12 @@ main(int argc, char *argv[])
break;
#endif
#endif
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
- break;
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
}
}
@@ -915,8 +926,7 @@ main(int argc, char *argv[])
#else
int
-main(int argc GCC_UNUSED,
- char *argv[]GCC_UNUSED)
+main(void)
{
failed("This program requires termcap");
}
diff --git a/test/demo_terminfo.c b/test/demo_terminfo.c
index 61c4076b6254..5e78015c36e0 100644
--- a/test/demo_terminfo.c
+++ b/test/demo_terminfo.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2022,2023 Thomas E. Dickey *
* Copyright 2009-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -30,7 +30,7 @@
/*
* Author: Thomas E. Dickey
*
- * $Id: demo_terminfo.c,v 1.51 2020/05/09 13:56:40 tom Exp $
+ * $Id: demo_terminfo.c,v 1.57 2023/05/27 20:13:10 tom Exp $
*
* A simple demo of the terminfo interface.
*/
@@ -47,7 +47,7 @@
#endif
#endif
-static void failed(const char *) GCC_NORETURN;
+static GCC_NORETURN void failed(const char *);
static void
failed(const char *msg)
@@ -96,7 +96,7 @@ static long total_s_values;
#define FNAME(type) "%s %-*s = ", #type, f_opt ? 24 : FCOLS
static char *
-make_dbitem(char *p, char *q)
+make_dbitem(const char *const p, const char *const q)
{
size_t need = strlen(e_opt) + 2 + (size_t) (p - q);
char *result = malloc(need);
@@ -430,7 +430,8 @@ typedef enum {
static void
parse_description(const char *input_name)
{
- static char empty[1];
+ static char empty[1] =
+ {0};
FILE *fp;
struct stat sb;
@@ -463,11 +464,13 @@ parse_description(const char *input_name)
failed("cannot allocate memory for input-file");
}
- if ((fp = fopen(input_name, "r")) == 0)
+ if ((fp = fopen(input_name, "r")) == 0) {
failed("cannot open input-file");
- len = fread(my_blob, sizeof(char), (size_t) sb.st_size, fp);
- my_blob[sb.st_size] = '\0';
- fclose(fp);
+ } else {
+ len = fread(my_blob, sizeof(char), (size_t) sb.st_size, fp);
+ my_blob[sb.st_size] = '\0';
+ fclose(fp);
+ }
/*
* First, get rid of comments and escaped newlines, as well as repeated
@@ -768,49 +771,54 @@ free_code_list(char **list)
#endif /* USE_CODE_LISTS */
static void
-usage(void)
+usage(int ok)
{
static const char *msg[] =
{
- "Usage: demo_terminfo [options] [terminal]",
- "",
- "If no options are given, print all (boolean, numeric, string)",
- "capabilities for the given terminal, using short names.",
- "",
- "Options:",
- " -a try all names, print capabilities found",
- " -b print boolean-capabilities",
- " -d LIST colon-separated list of databases to use",
- " -e NAME environment variable to set with -d option",
- " -f print full names",
- " -i NAME terminal description to use as names for \"-a\" option",
- " -n print numeric-capabilities",
- " -q quiet (prints only counts)",
- " -r COUNT repeat for given count",
- " -s print string-capabilities",
+ "Usage: demo_terminfo [options] [terminal]"
+ ,""
+ ,"If no options are given, print all (boolean, numeric, string)"
+ ,"capabilities for the given terminal, using short names."
+ ,""
+ ,USAGE_COMMON
+ ,"Options:"
+ ," -a try all names, print capabilities found"
+ ," -b print boolean-capabilities"
+ ," -d LIST colon-separated list of databases to use"
+ ," -e NAME environment variable to set with -d option"
+ ," -f print full names"
+ ," -i NAME terminal description to use as names for \"-a\" option"
+ ," -n print numeric-capabilities"
+ ," -q quiet (prints only counts)"
+ ," -r COUNT repeat for given count"
+ ," -s print string-capabilities"
#ifdef NCURSES_VERSION
- " -x print extended capabilities",
- " -y direct-lookup names of extended capabilities",
+ ," -x print extended capabilities"
+ ," -y direct-lookup names of extended capabilities"
#endif
};
unsigned n;
for (n = 0; n < SIZEOF(msg); ++n) {
fprintf(stderr, "%s\n", msg[n]);
}
- ExitProgram(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
main(int argc, char *argv[])
{
+ int ch;
int n;
int repeat;
char *name;
int r_opt = 1;
char *input_name = 0;
- while ((n = getopt(argc, argv, "abd:e:fi:nqr:sxy")) != -1) {
- switch (n) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "abd:e:fi:nqr:sxy")) != -1) {
+ switch (ch) {
case 'a':
a_opt = TRUE;
break;
@@ -837,7 +845,7 @@ main(int argc, char *argv[])
break;
case 'r':
if ((r_opt = atoi(optarg)) <= 0)
- usage();
+ usage(FALSE);
break;
case 's':
s_opt = TRUE;
@@ -853,9 +861,12 @@ main(int argc, char *argv[])
x_opt = TRUE;
break;
#endif
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
- break;
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
}
}
@@ -946,7 +957,7 @@ main(int argc, char *argv[])
#else /* !HAVE_TIGETSTR */
int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+main(void)
{
failed("This program requires the terminfo functions such as tigetstr");
ExitProgram(EXIT_FAILURE);
diff --git a/test/ditto.c b/test/ditto.c
index a5cec3305646..acac8377aad7 100644
--- a/test/ditto.c
+++ b/test/ditto.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2022,2023 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -30,7 +30,7 @@
/*
* Author: Thomas E. Dickey (1998-on)
*
- * $Id: ditto.c,v 1.49 2020/02/02 23:34:34 tom Exp $
+ * $Id: ditto.c,v 1.59 2023/09/23 17:08:43 tom Exp $
*
* The program illustrates how to set up multiple screens from a single
* program.
@@ -92,6 +92,15 @@ typedef struct {
#endif
} DITTO;
+#ifdef USE_PTHREADS
+#define LockIt() pthread_mutex_lock(&pending_mutex)
+#define UnlockIt() pthread_mutex_unlock(&pending_mutex)
+pthread_mutex_t pending_mutex;
+#else
+#define LockIt() /* nothing */
+#define UnlockIt() /* nothing */
+#endif
+
/*
* Structure used to pass multiple parameters via the use_screen()
* single-parameter interface.
@@ -102,9 +111,6 @@ typedef struct {
DITTO *ditto; /* data for all screens */
} DDATA;
-static void failed(const char *) GCC_NORETURN;
-static void usage(void) GCC_NORETURN;
-
static void
failed(const char *s)
{
@@ -112,13 +118,6 @@ failed(const char *s)
ExitProgram(EXIT_FAILURE);
}
-static void
-usage(void)
-{
- fprintf(stderr, "Usage: ditto [terminal1 ...]\n");
- ExitProgram(EXIT_FAILURE);
-}
-
/* Add to the head of the fifo, checking for overflow. */
static void
put_fifo(FIFO * fifo, int value)
@@ -182,7 +181,7 @@ open_tty(char *path)
#else
struct stat sb;
- if (stat(path, &sb) < 0)
+ if (stat(path, &sb) == -1)
failed(path);
if ((sb.st_mode & S_IFMT) != S_IFCHR) {
errno = ENOTTY;
@@ -241,6 +240,14 @@ init_screen(
}
static void
+free_screen(DITTO * target)
+{
+ free(target->parents);
+ free(target->windows);
+ free(target->peeks);
+}
+
+static void
open_screen(DITTO * target, char **source, int length, int which1)
{
if (which1 != 0) {
@@ -353,7 +360,6 @@ static void *
handle_screen(void *arg)
{
DDATA ddata;
- int ch;
memset(&ddata, 0, sizeof(ddata));
ddata.ditto = (DITTO *) arg;
@@ -361,7 +367,7 @@ handle_screen(void *arg)
ddata.ditto -= ddata.source; /* -> base of array */
for (;;) {
- ch = read_screen(ddata.ditto->screen, &ddata);
+ int ch = read_screen(ddata.ditto->screen, &ddata);
if (ch == CTRL('D')) {
int later = (ddata.source ? ddata.source : -1);
int j;
@@ -382,17 +388,46 @@ handle_screen(void *arg)
}
#endif
+static void
+usage(int ok)
+{
+ static const char *msg[] =
+ {
+ "Usage: ditto [terminal [terminal2 ...]]"
+ ,""
+ ,USAGE_COMMON
+ };
+ size_t n;
+
+ for (n = 0; n < SIZEOF(msg); n++)
+ fprintf(stderr, "%s\n", msg[n]);
+
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
+}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
+
int
main(int argc, char *argv[])
{
int j;
+ int ch;
DITTO *data;
#ifndef USE_PTHREADS
int count;
#endif
- if (argc <= 1)
- usage();
+ while ((ch = getopt(argc, argv, OPTS_COMMON)) != -1) {
+ switch (ch) {
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
+ default:
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
+ }
+ }
if ((data = typeCalloc(DITTO, (size_t) argc)) == 0)
failed("calloc data");
@@ -404,13 +439,15 @@ main(int argc, char *argv[])
}
#ifdef USE_PTHREADS
+ pthread_mutex_init(&pending_mutex, NULL);
/*
* For multi-threaded operation, set up a reader for each of the screens.
* That uses blocking I/O rather than polling for input, so no calls to
* napms() are needed.
*/
for (j = 0; j < argc; j++) {
- (void) pthread_create(&(data[j].thread), NULL, handle_screen, &data[j]);
+ (void) pthread_create(&(data[j].thread), NULL, handle_screen,
+ &data[j]);
}
pthread_join(data[1].thread, NULL);
#else
@@ -420,7 +457,6 @@ main(int argc, char *argv[])
*/
for (count = 0;; ++count) {
DDATA ddata;
- int ch;
int which = (count % argc);
napms(20);
@@ -441,6 +477,7 @@ main(int argc, char *argv[])
* Cleanup and exit
*/
for (j = argc - 1; j >= 0; j--) {
+ LockIt();
USING_SCREEN(data[j].screen, close_screen, 0);
fprintf(data[j].output, "**Closed\r\n");
@@ -451,7 +488,10 @@ main(int argc, char *argv[])
fflush(data[j].output);
fclose(data[j].output);
delscreen(data[j].screen);
+ free_screen(&data[j]);
+ UnlockIt();
}
+ free(data);
ExitProgram(EXIT_SUCCESS);
}
#else
diff --git a/test/dots.c b/test/dots.c
index 94d90a13ff90..05aa8545100c 100644
--- a/test/dots.c
+++ b/test/dots.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2022,2023 Thomas E. Dickey *
* Copyright 1999-2013,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -30,7 +30,7 @@
/*
* Author: Thomas E. Dickey <dickey@clark.net> 1999
*
- * $Id: dots.c,v 1.40 2020/05/29 23:04:02 tom Exp $
+ * $Id: dots.c,v 1.45 2023/01/07 17:21:48 tom Exp $
*
* A simple demo of the terminfo interface.
*/
@@ -111,12 +111,13 @@ get_number(NCURSES_CONST char *cap, int map)
}
static void
-usage(void)
+usage(int ok)
{
static const char *msg[] =
{
"Usage: dots [options]"
,""
+ ,USAGE_COMMON
,"Options:"
," -T TERM override $TERM"
#if HAVE_USE_ENV
@@ -132,12 +133,14 @@ usage(void)
for (n = 0; n < SIZEOF(msg); n++)
fprintf(stderr, "%s\n", msg[n]);
- ExitProgram(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
-main(int argc,
- char *argv[])
+main(int argc, char *argv[])
{
int ch;
double r;
@@ -150,13 +153,14 @@ main(int argc,
size_t need;
char *my_env;
- while ((ch = getopt(argc, argv, "T:efm:r:s:")) != -1) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "T:efm:r:s:")) != -1) {
switch (ch) {
case 'T':
need = 6 + strlen(optarg);
- my_env = malloc(need);
- _nc_SPRINTF(my_env, _nc_SLIMIT(need) "TERM=%s", optarg);
- putenv(my_env);
+ if ((my_env = malloc(need)) != NULL) {
+ _nc_SPRINTF(my_env, _nc_SLIMIT(need) "TERM=%s", optarg);
+ putenv(my_env);
+ }
break;
#if HAVE_USE_ENV
case 'e':
@@ -175,9 +179,12 @@ main(int argc,
case 's':
s_option = atoi(optarg);
break;
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
- break;
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
}
}
@@ -236,8 +243,7 @@ main(int argc,
}
#else
int
-main(int argc GCC_UNUSED,
- char *argv[]GCC_UNUSED)
+main(void)
{
fprintf(stderr, "This program requires terminfo\n");
exit(EXIT_FAILURE);
diff --git a/test/dots_curses.c b/test/dots_curses.c
index 95ddb93155c9..1a553213c48a 100644
--- a/test/dots_curses.c
+++ b/test/dots_curses.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2022,2023 Thomas E. Dickey *
* Copyright 2014,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -30,7 +30,7 @@
/*
* Author: Thomas E. Dickey
*
- * $Id: dots_curses.c,v 1.21 2020/08/29 16:22:03 juergen Exp $
+ * $Id: dots_curses.c,v 1.25 2023/01/07 17:21:48 tom Exp $
*
* A simple demo of the curses interface used for comparison with termcap.
*/
@@ -87,12 +87,13 @@ set_colors(int fg, int bg)
}
static void
-usage(void)
+usage(int ok)
{
static const char *msg[] =
{
"Usage: dots_curses [options]"
,""
+ ,USAGE_COMMON
,"Options:"
," -T TERM override $TERM"
#if HAVE_USE_DEFAULT_COLORS
@@ -110,8 +111,11 @@ usage(void)
for (n = 0; n < SIZEOF(msg); n++)
fprintf(stderr, "%s\n", msg[n]);
- ExitProgram(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
main(int argc, char *argv[])
@@ -129,13 +133,14 @@ main(int argc, char *argv[])
size_t need;
char *my_env;
- while ((ch = getopt(argc, argv, "T:dem:r:s:")) != -1) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "T:dem:r:s:")) != -1) {
switch (ch) {
case 'T':
need = 6 + strlen(optarg);
- my_env = malloc(need);
- _nc_SPRINTF(my_env, _nc_SLIMIT(need) "TERM=%s", optarg);
- putenv(my_env);
+ if ((my_env = malloc(need)) != NULL) {
+ _nc_SPRINTF(my_env, _nc_SLIMIT(need) "TERM=%s", optarg);
+ putenv(my_env);
+ }
break;
#if HAVE_USE_DEFAULT_COLORS
case 'd':
@@ -156,9 +161,12 @@ main(int argc, char *argv[])
case 's':
s_option = atoi(optarg);
break;
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
- break;
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
}
}
diff --git a/test/dots_mvcur.c b/test/dots_mvcur.c
index a032124c1359..a6119237bda7 100644
--- a/test/dots_mvcur.c
+++ b/test/dots_mvcur.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2022,2023 Thomas E. Dickey *
* Copyright 2007-2013,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -30,7 +30,7 @@
/*
* Author: Thomas E. Dickey - 2007
*
- * $Id: dots_mvcur.c,v 1.26 2020/05/29 23:04:02 tom Exp $
+ * $Id: dots_mvcur.c,v 1.31 2023/01/07 17:21:48 tom Exp $
*
* A simple demo of the terminfo interface, and mvcur.
*/
@@ -112,12 +112,13 @@ get_number(NCURSES_CONST char *cap, int map)
}
static void
-usage(void)
+usage(int ok)
{
static const char *msg[] =
{
"Usage: dots_termcap [options]"
,""
+ ,USAGE_COMMON
,"Options:"
," -T TERM override $TERM"
#if HAVE_USE_ENV
@@ -133,12 +134,14 @@ usage(void)
for (n = 0; n < SIZEOF(msg); n++)
fprintf(stderr, "%s\n", msg[n]);
- ExitProgram(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
-main(int argc GCC_UNUSED,
- char *argv[]GCC_UNUSED)
+main(int argc, char *argv[])
{
int x0 = 1, y0 = 1;
int ch;
@@ -153,13 +156,14 @@ main(int argc GCC_UNUSED,
size_t need;
char *my_env;
- while ((ch = getopt(argc, argv, "T:efm:r:s:")) != -1) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "T:efm:r:s:")) != -1) {
switch (ch) {
case 'T':
need = 6 + strlen(optarg);
- my_env = malloc(need);
- _nc_SPRINTF(my_env, _nc_SLIMIT(need) "TERM=%s", optarg);
- putenv(my_env);
+ if ((my_env = malloc(need)) != NULL) {
+ _nc_SPRINTF(my_env, _nc_SLIMIT(need) "TERM=%s", optarg);
+ putenv(my_env);
+ }
break;
#if HAVE_USE_ENV
case 'e':
@@ -178,9 +182,12 @@ main(int argc GCC_UNUSED,
case 's':
s_option = atoi(optarg);
break;
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
- break;
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
}
}
@@ -253,8 +260,7 @@ main(int argc GCC_UNUSED,
}
#else
int
-main(int argc GCC_UNUSED,
- char *argv[]GCC_UNUSED)
+main(void)
{
fprintf(stderr, "This program requires terminfo\n");
exit(EXIT_FAILURE);
diff --git a/test/dots_termcap.c b/test/dots_termcap.c
index 5e4c17d1adaf..65786c411a4a 100644
--- a/test/dots_termcap.c
+++ b/test/dots_termcap.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2022,2023 Thomas E. Dickey *
* Copyright 2013-2014,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -30,7 +30,7 @@
/*
* Author: Thomas E. Dickey
*
- * $Id: dots_termcap.c,v 1.26 2020/09/05 17:58:47 juergen Exp $
+ * $Id: dots_termcap.c,v 1.32 2023/02/25 18:11:21 tom Exp $
*
* A simple demo of the termcap interface.
*/
@@ -150,11 +150,19 @@ ranf(void)
return ((double) r / 32768.);
}
+/*
+ * napms is a curses function which happens to be usable without initializing
+ * the screen, but if this program happened to be build with a "real" termcap
+ * library, there is nothing like napms.
+ */
+#if HAVE_NAPMS
+#define my_napms(ms) napms(ms)
+#else
static void
my_napms(int ms)
{
if (ms > 0) {
-#if defined(_NC_WINDOWS) || !HAVE_GETTIMEOFDAY
+#if defined(_NC_WINDOWS)
Sleep((unsigned int) ms);
#else
struct timeval data;
@@ -164,6 +172,7 @@ my_napms(int ms)
#endif
}
}
+#endif
static int
get_number(NCURSES_CONST char *cap, const char *env)
@@ -180,12 +189,13 @@ get_number(NCURSES_CONST char *cap, const char *env)
}
static void
-usage(void)
+usage(int ok)
{
static const char *msg[] =
{
"Usage: dots_termcap [options]"
,""
+ ,USAGE_COMMON
,"Options:"
," -T TERM override $TERM"
," -e allow environment $LINES / $COLUMNS"
@@ -198,8 +208,11 @@ usage(void)
for (n = 0; n < SIZEOF(msg); n++)
fprintf(stderr, "%s\n", msg[n]);
- ExitProgram(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
main(int argc, char *argv[])
@@ -220,13 +233,14 @@ main(int argc, char *argv[])
size_t need;
char *my_env;
- while ((ch = getopt(argc, argv, "T:em:r:s:")) != -1) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "T:em:r:s:")) != -1) {
switch (ch) {
case 'T':
need = 6 + strlen(optarg);
- my_env = malloc(need);
- _nc_SPRINTF(my_env, _nc_SLIMIT(need) "TERM=%s", optarg);
- putenv(my_env);
+ if ((my_env = malloc(need)) != NULL) {
+ _nc_SPRINTF(my_env, _nc_SLIMIT(need) "TERM=%s", optarg);
+ putenv(my_env);
+ }
break;
case 'e':
e_option = 1;
@@ -240,9 +254,12 @@ main(int argc, char *argv[])
case 's':
s_option = atoi(optarg);
break;
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
- break;
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
}
}
@@ -319,8 +336,7 @@ main(int argc, char *argv[])
}
#else
int
-main(int argc GCC_UNUSED,
- char *argv[]GCC_UNUSED)
+main(void)
{
fprintf(stderr, "This program requires termcap\n");
exit(EXIT_FAILURE);
diff --git a/test/dots_xcurses.c b/test/dots_xcurses.c
index b640c2b61267..b4b52193d262 100644
--- a/test/dots_xcurses.c
+++ b/test/dots_xcurses.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2022,2023 Thomas E. Dickey *
* Copyright 2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -30,7 +30,7 @@
/*
* Author: Thomas E. Dickey
*
- * $Id: dots_xcurses.c,v 1.24 2020/08/29 16:22:03 juergen Exp $
+ * $Id: dots_xcurses.c,v 1.29 2023/01/07 17:21:48 tom Exp $
*
* A simple demo of the wide-curses interface used for comparison with termcap.
*/
@@ -110,12 +110,13 @@ set_colors(int fg, int bg)
}
static void
-usage(void)
+usage(int ok)
{
static const char *msg[] =
{
"Usage: dots_xcurses [options]"
,""
+ ,USAGE_COMMON
,"Options:"
," -T TERM override $TERM"
#if HAVE_USE_DEFAULT_COLORS
@@ -136,8 +137,11 @@ usage(void)
for (n = 0; n < SIZEOF(msg); n++)
fprintf(stderr, "%s\n", msg[n]);
- ExitProgram(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
main(int argc, char *argv[])
@@ -155,13 +159,14 @@ main(int argc, char *argv[])
size_t need;
char *my_env;
- while ((ch = getopt(argc, argv, "T:dem:r:s:x")) != -1) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "T:dem:r:s:x")) != -1) {
switch (ch) {
case 'T':
need = 6 + strlen(optarg);
- my_env = malloc(need);
- _nc_SPRINTF(my_env, _nc_SLIMIT(need) "TERM=%s", optarg);
- putenv(my_env);
+ if ((my_env = malloc(need)) != NULL) {
+ _nc_SPRINTF(my_env, _nc_SLIMIT(need) "TERM=%s", optarg);
+ putenv(my_env);
+ }
break;
#if HAVE_USE_DEFAULT_COLORS
case 'd':
@@ -187,12 +192,16 @@ main(int argc, char *argv[])
x_option = TRUE;
break;
#endif
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
- break;
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
}
}
+ setlocale(LC_ALL, "");
srand((unsigned) time(0));
SetupAlarm(r_option);
diff --git a/test/dump_window.c b/test/dump_window.c
index 14a8c9fa267d..eed4dbcbdf83 100644
--- a/test/dump_window.c
+++ b/test/dump_window.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2020,2023 Thomas E. Dickey *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
@@ -26,7 +26,7 @@
* authorization. *
****************************************************************************/
/*
- * $Id: dump_window.c,v 1.4 2020/02/02 23:34:34 tom Exp $
+ * $Id: dump_window.c,v 1.5 2023/11/11 00:30:50 tom Exp $
*/
#include <dump_window.h>
@@ -97,7 +97,7 @@ dump_window(WINDOW *w)
char aa;
char pp;
- temp = ((data & A_ATTRIBUTES) & (~A_COLOR));
+ temp = ((data & A_ATTRIBUTES) & (chtype) (~A_COLOR));
if (temp) {
if (temp & A_ALTCHARSET) {
aa = (temp & A_BOLD) ? 'A' : 'a';
diff --git a/test/dup_field.c b/test/dup_field.c
index 5ca67f0b0f5a..68198ed755b3 100644
--- a/test/dup_field.c
+++ b/test/dup_field.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020-2022,2023 Thomas E. Dickey *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
@@ -26,9 +26,9 @@
* authorization. *
****************************************************************************/
/*
- * $Id: dup_field.c,v 1.1 2020/03/21 19:28:36 tom Exp $
+ * $Id: dup_field.c,v 1.8 2023/11/11 00:29:10 tom Exp $
*
- * Demonstrate move_field().
+ * Demonstrate dup_field().
*/
#include <test.priv.h>
@@ -38,11 +38,11 @@
#include <edit_field.h>
#include <popup_msg.h>
-#define MY_DEMO EDIT_FIELD('f')
+#define DO_DEMO CTRL('F') /* actual key for toggling demo-mode */
+#define MY_DEMO EDIT_FIELD('f') /* internal request-code */
static char empty[] = "";
static FIELD *all_fields[100];
-
/* *INDENT-OFF* */
static struct {
int code;
@@ -52,7 +52,6 @@ static struct {
{ CTRL('A'), REQ_BEG_FIELD, "go to beginning of field" },
{ CTRL('D'), REQ_DOWN_FIELD, "move downward to field" },
{ CTRL('E'), REQ_END_FIELD, "go to end of field" },
- { CTRL('G'), MY_DEMO, "move current field with cursor keys" },
{ CTRL('H'), REQ_DEL_PREV, "delete previous character" },
{ CTRL('I'), REQ_NEXT_FIELD, "go to next field" },
{ CTRL('K'), REQ_CLR_EOF, "clear to end of field" },
@@ -73,7 +72,8 @@ static struct {
{ KEY_NEXT, REQ_NEXT_FIELD, "go to next field" },
{ KEY_PREVIOUS, REQ_PREV_FIELD, "go to previous field" },
{ KEY_RIGHT, REQ_RIGHT_CHAR, "move right 1 character" },
- { KEY_UP, REQ_UP_CHAR, "move up 1 character" }
+ { KEY_UP, REQ_UP_CHAR, "move up 1 character" },
+ { DO_DEMO, MY_DEMO, "duplicate current field" }
};
/* *INDENT-ON* */
@@ -109,11 +109,6 @@ my_help_edit_field(void)
free(msgs);
}
-static void
-do_demo(FORM *form)
-{
-}
-
static FIELD *
make_label(const char *label, int frow, int fcol)
{
@@ -121,7 +116,7 @@ make_label(const char *label, int frow, int fcol)
if (f) {
set_field_buffer(f, 0, label);
- set_field_opts(f, (int) ((unsigned) field_opts(f) & ~O_ACTIVE));
+ set_field_opts(f, (int) ((unsigned) field_opts(f) & (unsigned) ~O_ACTIVE));
}
return (f);
}
@@ -148,28 +143,6 @@ erase_form(FORM *f)
werase(w);
wrefresh(w);
delwin(s);
- delwin(w);
-}
-
-static int
-my_form_driver(FORM *form, int c)
-{
- switch (c) {
- case MY_QUIT:
- if (form_driver(form, REQ_VALIDATION) == E_OK)
- return (TRUE);
- break;
- case MY_HELP:
- my_help_edit_field();
- break;
- case MY_DEMO:
- do_demo(form);
- break;
- default:
- beep();
- break;
- }
- return (FALSE);
}
static FieldAttrs *
@@ -213,7 +186,6 @@ my_edit_field(FORM *form, int *result)
int status;
FIELD *before;
unsigned n;
- int length;
int before_row;
int before_col;
int before_off = offset_in_field(form);
@@ -239,8 +211,8 @@ my_edit_field(FORM *form, int *result)
if (status == E_OK) {
bool modified = TRUE;
+ int length = buffer_length(before);
- length = buffer_length(before);
if (length < before_off)
length = before_off;
switch (*result) {
@@ -293,6 +265,55 @@ my_edit_field(FORM *form, int *result)
return status;
}
+static FIELD **
+copy_fields(FIELD **source, FIELD *extra, size_t length)
+{
+ FIELD **target = typeCalloc(FIELD *, length + 1);
+ memcpy(target, source, length * sizeof(FIELD *));
+ target[length] = extra;
+ return target;
+}
+
+static void
+do_demo(FORM *form)
+{
+ int count = field_count(form);
+ FIELD *my_field = current_field(form);
+ FIELD **old_fields = form_fields(form);
+
+ if (count > 0 && old_fields != NULL && my_field != NULL) {
+ FIELD **new_fields = copy_fields(old_fields,
+ dup_field(my_field,
+ form_field_row(my_field)
+ + 1,
+ form_field_col(my_field)),
+ (size_t) count);
+ if (new_fields != NULL)
+ set_form_fields(form, new_fields);
+ }
+}
+
+static int
+my_form_driver(FORM *form, int c)
+{
+ switch (c) {
+ case MY_QUIT:
+ if (form_driver(form, REQ_VALIDATION) == E_OK)
+ return (TRUE);
+ break;
+ case MY_HELP:
+ my_help_edit_field();
+ break;
+ case MY_DEMO:
+ do_demo(form);
+ break;
+ default:
+ beep();
+ break;
+ }
+ return (FALSE);
+}
+
static void
demo_forms(void)
{
@@ -356,9 +377,44 @@ demo_forms(void)
nl();
}
+static void
+usage(int ok)
+{
+ static const char *msg[] =
+ {
+ "Usage: dup_field [options]"
+ ,""
+ ,USAGE_COMMON
+ };
+ size_t n;
+
+ for (n = 0; n < SIZEOF(msg); n++)
+ fprintf(stderr, "%s\n", msg[n]);
+
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
+}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
+
int
-main(void)
+main(int argc, char *argv[])
{
+ int ch;
+
+ while ((ch = getopt(argc, argv, OPTS_COMMON)) != -1) {
+ switch (ch) {
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
+ default:
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
+ }
+ }
+ if (optind < argc)
+ usage(FALSE);
+
setlocale(LC_ALL, "");
initscr();
diff --git a/test/echochar.c b/test/echochar.c
index ce7f03d385fe..08497069419a 100644
--- a/test/echochar.c
+++ b/test/echochar.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2022,2023 Thomas E. Dickey *
* Copyright 2006-2014,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,7 +27,7 @@
* authorization. *
****************************************************************************/
/*
- * $Id: echochar.c,v 1.21 2020/02/02 23:34:34 tom Exp $
+ * $Id: echochar.c,v 1.26 2023/05/27 20:13:10 tom Exp $
*
* Demonstrate the echochar function (compare to dots.c).
* Thomas Dickey - 2006/11/4
@@ -65,7 +65,7 @@ ranf(void)
}
static void
-set_color(char *my_pairs, int fg, int bg)
+set_color(const char *const my_pairs, int fg, int bg)
{
int pair = (fg * COLORS) + bg;
if (pair < COLOR_PAIRS) {
@@ -78,9 +78,30 @@ set_color(char *my_pairs, int fg, int bg)
}
}
+static void
+usage(int ok)
+{
+ static const char *msg[] =
+ {
+ "Usage: echochar"
+ ,""
+ ,USAGE_COMMON
+ ,"Options:"
+ ," -r use addch/refresh rather than echochar()"
+ };
+ size_t n;
+
+ for (n = 0; n < SIZEOF(msg); n++)
+ fprintf(stderr, "%s\n", msg[n]);
+
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
+}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
+
int
-main(int argc GCC_UNUSED,
- char *argv[]GCC_UNUSED)
+main(int argc, char *argv[])
{
int ch;
double r;
@@ -91,14 +112,17 @@ main(int argc GCC_UNUSED,
int last_fg = 0;
int last_bg = 0;
- while ((ch = getopt(argc, argv, "r")) != -1) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "r")) != -1) {
switch (ch) {
case 'r':
opt_r = TRUE;
break;
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- fprintf(stderr, "Usage: echochar [-r]\n");
- ExitProgram(EXIT_FAILURE);
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
}
}
diff --git a/test/extended_color.c b/test/extended_color.c
index bc52cc4889c8..746c035927b1 100644
--- a/test/extended_color.c
+++ b/test/extended_color.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2020,2022 Thomas E. Dickey *
* Copyright 2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,7 +27,7 @@
* authorization. *
****************************************************************************/
/*
- * $Id: extended_color.c,v 1.15 2020/02/02 23:34:34 tom Exp $
+ * $Id: extended_color.c,v 1.20 2022/12/10 22:28:50 tom Exp $
*/
#include <test.priv.h>
@@ -139,42 +139,50 @@ show_rgb(SCREEN *sp)
}
static void
-usage(void)
+usage(int ok)
{
static const char *tbl[] =
{
- "Usage: extended_color",
- "",
- "Options:",
- " -s use sp-funcs",
- NULL
+ "Usage: extended_color"
+ ,""
+ ,USAGE_COMMON
+ ,"Options:"
+ ," -s use sp-funcs"
};
size_t n;
for (n = 0; n < SIZEOF(tbl); ++n) {
fprintf(stderr, "%s\n", tbl[n]);
}
- ExitProgram(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+main(int argc, char *argv[])
{
+ int ch;
int i;
SCREEN *sp;
- while ((i = getopt(argc, argv, "s")) != -1) {
- switch (i) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "s")) != -1) {
+ switch (ch) {
#if USE_SP_FUNCS
case 's':
opt_s = TRUE;
break;
#endif
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
+ usage(ch == OPTS_USAGE);
/* NOTREACHED */
}
}
+ setlocale(LC_ALL, "");
slk_init(1);
sp = newterm(NULL, stdout, stdin);
cbreak();
diff --git a/test/filter.c b/test/filter.c
index 6cd9206b274d..b7444569b789 100644
--- a/test/filter.c
+++ b/test/filter.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2020,2022 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -30,7 +30,7 @@
/*
* Author: Thomas E. Dickey 1998
*
- * $Id: filter.c,v 1.35 2020/07/25 22:40:57 tom Exp $
+ * $Id: filter.c,v 1.38 2022/12/04 00:40:11 tom Exp $
*
* An example of the 'filter()' function in ncurses, this program prompts
* for commands and executes them (like a command shell). It illustrates
@@ -299,28 +299,32 @@ cancel_altscreen(void)
#endif
static void
-usage(void)
+usage(int ok)
{
static const char *msg[] =
{
"Usage: filter [options]"
,""
+ ,USAGE_COMMON
,"Options:"
#ifdef NCURSES_VERSION
- ," -a suppress xterm alternate-screen by amending smcup/rmcup"
+ ," -a suppress xterm alternate-screen by amending smcup/rmcup"
#endif
- ," -c show current time on prompt line with \"Command\""
+ ," -c show current time on prompt line with \"Command\""
#if HAVE_USE_DEFAULT_COLORS
- ," -d invoke use_default_colors"
+ ," -d invoke use_default_colors"
#endif
- ," -i use initscr() rather than newterm()"
- ," -p poll for individual characters rather than using getnstr"
+ ," -i use initscr() rather than newterm()"
+ ," -p poll for individual characters rather than using getnstr"
};
unsigned n;
for (n = 0; n < SIZEOF(msg); n++)
fprintf(stderr, "%s\n", msg[n]);
- ExitProgram(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
main(int argc, char *argv[])
@@ -340,7 +344,7 @@ main(int argc, char *argv[])
setlocale(LC_ALL, "");
- while ((ch = getopt(argc, argv, "adcip")) != -1) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "adcip")) != -1) {
switch (ch) {
#ifdef NCURSES_VERSION
case 'a':
@@ -361,8 +365,12 @@ main(int argc, char *argv[])
case 'p':
p_option = TRUE;
break;
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
}
}
diff --git a/test/firework.c b/test/firework.c
index bfeadd7c0dfe..54e4036cf6a2 100644
--- a/test/firework.c
+++ b/test/firework.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2020,2022 Thomas E. Dickey *
* Copyright 1998-2014,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,7 +27,7 @@
* authorization. *
****************************************************************************/
/*
- * $Id: firework.c,v 1.37 2020/02/02 23:34:34 tom Exp $
+ * $Id: firework.c,v 1.40 2022/12/04 00:40:11 tom Exp $
*/
#include <test.priv.h>
@@ -138,12 +138,13 @@ explode(int row, int col)
}
static void
-usage(void)
+usage(int ok)
{
static const char *msg[] =
{
"Usage: firework [options]"
,""
+ ,USAGE_COMMON
,"Options:"
#if HAVE_USE_DEFAULT_COLORS
," -d invoke use_default_colors, repeat to use in init_pair"
@@ -154,8 +155,11 @@ usage(void)
for (n = 0; n < SIZEOF(msg); n++)
fprintf(stderr, "%s\n", msg[n]);
- ExitProgram(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
main(int argc, char *argv[])
@@ -170,19 +174,23 @@ main(int argc, char *argv[])
bool d_option = FALSE;
#endif
- while ((ch = getopt(argc, argv, "d")) != -1) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "d")) != -1) {
switch (ch) {
#if HAVE_USE_DEFAULT_COLORS
case 'd':
d_option = TRUE;
break;
#endif
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
}
}
if (optind < argc)
- usage();
+ usage(FALSE);
InitAndCatch(initscr(), onsig);
noecho();
diff --git a/test/firstlast.c b/test/firstlast.c
index 0a8e5ee0a694..c66c2b8511c3 100644
--- a/test/firstlast.c
+++ b/test/firstlast.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2022 Thomas E. Dickey *
* Copyright 1998-2010,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -30,7 +30,7 @@
* This test was written by Alexander V. Lukyanov to demonstrate difference
* between ncurses 4.1 and SVR4 curses
*
- * $Id: firstlast.c,v 1.9 2020/02/02 23:34:34 tom Exp $
+ * $Id: firstlast.c,v 1.10 2022/12/10 23:31:31 tom Exp $
*/
#include <test.priv.h>
@@ -71,11 +71,45 @@ fill(WINDOW *w, const char *str)
}
}
+static void
+usage(int ok)
+{
+ static const char *msg[] =
+ {
+ "Usage: firstlast [options]"
+ ,""
+ ,USAGE_COMMON
+ };
+ size_t n;
+
+ for (n = 0; n < SIZEOF(msg); n++)
+ fprintf(stderr, "%s\n", msg[n]);
+
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
+}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
+
int
-main(int argc GCC_UNUSED,
- char *argv[]GCC_UNUSED)
+main(int argc, char *argv[])
{
WINDOW *large, *small;
+ int ch;
+
+ while ((ch = getopt(argc, argv, OPTS_COMMON)) != -1) {
+ switch (ch) {
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
+ default:
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
+ }
+ }
+ if (optind < argc)
+ usage(FALSE);
+
initscr();
noecho();
diff --git a/test/foldkeys.c b/test/foldkeys.c
index 1a5aac0d97fc..bb3801e282fe 100644
--- a/test/foldkeys.c
+++ b/test/foldkeys.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2022,2023 Thomas E. Dickey *
* Copyright 2006-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -30,7 +30,7 @@
/*
* Author: Thomas E. Dickey, 2006
*
- * $Id: foldkeys.c,v 1.9 2020/02/02 23:34:34 tom Exp $
+ * $Id: foldkeys.c,v 1.12 2023/02/25 16:51:01 tom Exp $
*
* Demonstrate a method for altering key definitions at runtime.
*
@@ -146,7 +146,8 @@ demo_foldkeys(void)
int first, second;
char final[2];
char *value;
- size_t need = 0;
+ size_t need;
+
if (info[j].state == 0
&& sscanf(info[j].value,
"\033[%d;%d%c",
@@ -156,6 +157,7 @@ demo_foldkeys(void)
&& *final != ';'
&& (need = strlen(info[j].value)) != 0
&& (value = strdup(info[j].value)) != 0) {
+ (void) need; /* _nc_SLIMIT is normally nothing */
_nc_SPRINTF(value, _nc_SLIMIT(need) "\033[%d%c", first, *final);
for (k = 0; k < info_len; ++k) {
if (info[k].state == 0
@@ -191,13 +193,44 @@ demo_foldkeys(void)
printw("Merged to %d key definitions\n", info_len - merged);
}
+static void
+usage(int ok)
+{
+ static const char *msg[] =
+ {
+ "Usage: foldkeys [options]"
+ ,""
+ ,USAGE_COMMON
+ };
+ size_t n;
+
+ for (n = 0; n < SIZEOF(msg); n++)
+ fprintf(stderr, "%s\n", msg[n]);
+
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
+}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
+
int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+main(int argc, char *argv[])
{
int ch;
-#if HAVE_GETTIMEOFDAY
- struct timeval previous;
-#endif
+ TimeType previous;
+
+ while ((ch = getopt(argc, argv, OPTS_COMMON)) != -1) {
+ switch (ch) {
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
+ default:
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
+ }
+ }
+ if (optind < argc)
+ usage(FALSE);
if (newterm(0, stdout, stdin) == 0) {
fprintf(stderr, "Cannot initialize terminal\n");
@@ -215,32 +248,17 @@ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
demo_foldkeys();
-#if HAVE_GETTIMEOFDAY
- gettimeofday(&previous, 0);
-#endif
+ GetClockTime(&previous);
while ((ch = getch()) != ERR) {
bool escaped = (ch >= MY_KEYS);
const char *name = keyname(escaped ? (ch - MY_KEYS) : ch);
+ TimeType current;
-#if HAVE_GETTIMEOFDAY
- int secs, msecs;
- struct timeval current;
-
- gettimeofday(&current, 0);
- secs = (int) (current.tv_sec - previous.tv_sec);
- msecs = (int) ((current.tv_usec - previous.tv_usec) / 1000);
- if (msecs < 0) {
- msecs += 1000;
- --secs;
- }
- if (msecs >= 1000) {
- secs += msecs / 1000;
- msecs %= 1000;
- }
- printw("%6d.%03d ", secs, msecs);
+ GetClockTime(&current);
+ printw("%6.03f ", ElapsedSeconds(&previous, &current));
previous = current;
-#endif
+
printw("Keycode %d, name %s%s\n",
ch,
escaped ? "ESC-" : "",
diff --git a/test/form_driver_w.c b/test/form_driver_w.c
index dd7ea68cfb4f..544060dcc101 100644
--- a/test/form_driver_w.c
+++ b/test/form_driver_w.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2022 Thomas E. Dickey *
* Copyright 2013-2014,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -32,7 +32,7 @@
****************************************************************************/
/*
- * $Id: form_driver_w.c,v 1.16 2020/02/02 23:34:34 tom Exp $
+ * $Id: form_driver_w.c,v 1.17 2022/12/10 23:31:31 tom Exp $
*
* Test form_driver_w (int, int, wchar_t), a wide char aware
* replacement of form_driver.
@@ -45,8 +45,28 @@
#include <form.h>
+static void
+usage(int ok)
+{
+ static const char *msg[] =
+ {
+ "Usage: form_driver_w [options]"
+ ,""
+ ,USAGE_COMMON
+ };
+ size_t n;
+
+ for (n = 0; n < SIZEOF(msg); n++)
+ fprintf(stderr, "%s\n", msg[n]);
+
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
+}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
+
int
-main(void)
+main(int argc, char *argv[])
{
static const char *help[] =
{
@@ -64,6 +84,20 @@ main(void)
FORM *my_form;
bool done = FALSE;
int n;
+ int ch;
+
+ while ((ch = getopt(argc, argv, OPTS_COMMON)) != -1) {
+ switch (ch) {
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
+ default:
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
+ }
+ }
+ if (optind < argc)
+ usage(FALSE);
setlocale(LC_ALL, "");
@@ -94,14 +128,14 @@ main(void)
/* Loop through to get user requests */
while (!done) {
- wint_t ch;
- int ret = get_wch(&ch);
+ wint_t c2;
+ int ret = get_wch(&c2);
mvprintw(MyRow(NUM_FIELDS),
MyCol(NUM_FIELDS),
"Got %d (%#x), type: %s",
- (int) ch,
- (int) ch,
+ (int) c2,
+ (int) c2,
(ret == KEY_CODE_YES)
? "KEY_CODE_YES"
: ((ret == OK)
@@ -113,7 +147,7 @@ main(void)
switch (ret) {
case KEY_CODE_YES:
- switch (ch) {
+ switch (c2) {
case KEY_DOWN:
/* Go to next field */
form_driver_w(my_form, KEY_CODE_YES, REQ_NEXT_FIELD);
@@ -132,7 +166,7 @@ main(void)
}
break;
case OK:
- switch (ch) {
+ switch (c2) {
case CTRL('D'):
case QUIT:
case ESCAPE:
@@ -146,7 +180,7 @@ main(void)
popup_msg(form_win(my_form), help);
break;
default:
- form_driver_w(my_form, OK, (wchar_t) ch);
+ form_driver_w(my_form, OK, (wchar_t) c2);
break;
}
break;
diff --git a/test/gdc.6 b/test/gdc.6
index 383aae57e336..bf90b26f8b25 100644
--- a/test/gdc.6
+++ b/test/gdc.6
@@ -27,8 +27,8 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: gdc.6,v 1.5 2020/02/02 23:34:34 tom Exp $
-.TH GDC 6
+.\" $Id: gdc.6,v 1.6 2020/02/02 23:34:34 tom Exp $
+.TH GDC 6 2020-02-02 ncurses-examples Games
.SH NAME
gdc \- grand digital clock (curses)
.SH SYNOPSIS
diff --git a/test/gdc.c b/test/gdc.c
index 59c95e17f2d6..7243c104b173 100644
--- a/test/gdc.c
+++ b/test/gdc.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2020,2022 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -34,7 +34,7 @@
* modified 10-18-89 for curses (jrl)
* 10-18-89 added signal handling
*
- * $Id: gdc.c,v 1.54 2020/02/02 23:34:34 tom Exp $
+ * $Id: gdc.c,v 1.57 2022/12/04 00:40:11 tom Exp $
*/
#include <test.priv.h>
@@ -150,26 +150,27 @@ set(int t, int n)
}
static void
-usage(void)
+usage(int ok)
{
static const char *msg[] =
{
"Usage: gdc [options] [count]"
,""
+ ,USAGE_COMMON
,"Options:"
#if HAVE_USE_DEFAULT_COLORS
- ," -d invoke use_default_colors"
+ ," -d invoke use_default_colors"
#endif
- ," -n redirect input to /dev/null"
- ," -s scroll each number into place, rather than flipping"
- ," -t hh:mm:ss specify starting time (default is ``now'')"
+ ," -n redirect input to /dev/null"
+ ," -s scroll each number into place, rather than flipping"
+ ," -t TIME specify starting time as hh:mm:ss (default is ``now'')"
,""
,"If you specify a count, gdc runs for that number of seconds"
};
unsigned j;
for (j = 0; j < SIZEOF(msg); j++)
fprintf(stderr, "%s\n", msg[j]);
- ExitProgram(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
static time_t
@@ -183,14 +184,14 @@ parse_time(const char *value)
if (sscanf(value, "%d:%d:%d%c", &hh, &mm, &ss, &c) != 3) {
if (sscanf(value, "%02d%02d%02d%c", &hh, &mm, &ss, &c) != 3) {
- usage();
+ usage(FALSE);
}
}
if ((hh < 0) || (hh >= 24) ||
(mm < 0) || (mm >= 60) ||
(ss < 0) || (ss >= 60)) {
- usage();
+ usage(FALSE);
}
/* adjust so that the localtime in the main loop will give usable time */
@@ -204,10 +205,13 @@ parse_time(const char *value)
if (tm->tm_hour != hh) {
fprintf(stderr, "Cannot find local time for %s!\n", value);
- usage();
+ usage(FALSE);
}
return result;
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
main(int argc, char *argv[])
@@ -215,7 +219,7 @@ main(int argc, char *argv[])
time_t now;
struct tm *tm;
long t, a;
- int i, j, s, k;
+ int i, j, s, k, ch;
int count = 0;
FILE *ofp = stdout;
FILE *ifp = stdin;
@@ -228,8 +232,8 @@ main(int argc, char *argv[])
setlocale(LC_ALL, "");
- while ((k = getopt(argc, argv, "dnst:")) != -1) {
- switch (k) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "dnst:")) != -1) {
+ switch (ch) {
#if HAVE_USE_DEFAULT_COLORS
case 'd':
d_option = TRUE;
@@ -245,15 +249,19 @@ main(int argc, char *argv[])
case 't':
starts = parse_time(optarg);
break;
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
}
}
if (optind < argc) {
count = atoi(argv[optind++]);
assert(count >= 0);
if (optind < argc)
- usage();
+ usage(FALSE);
}
InitAndCatch({
diff --git a/test/hanoi.c b/test/hanoi.c
index 8f1792d9d88b..6d92332fa095 100644
--- a/test/hanoi.c
+++ b/test/hanoi.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2021,2022 Thomas E. Dickey *
* Copyright 1998-2014,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -42,7 +42,7 @@
*
* Date: 05.Nov.90
*
- * $Id: hanoi.c,v 1.41 2020/02/02 23:34:34 tom Exp $
+ * $Id: hanoi.c,v 1.47 2022/12/04 00:40:11 tom Exp $
*/
#include <test.priv.h>
@@ -125,6 +125,15 @@ InitTiles(void)
Pegs[2].Count = 0;
}
+static int
+two2n(int n)
+{
+ int result = 1;
+ while (n-- > 0)
+ result *= 2;
+ return result;
+}
+
static void
DisplayTiles(void)
{
@@ -134,7 +143,7 @@ DisplayTiles(void)
erase();
MvAddStr(1, 24, "T O W E R S O F H A N O I");
MvAddStr(3, 34, "SJR 1990");
- MvPrintw(19, 5, "Moves : %d of %.0f", NMoves, pow(2.0, (float) NTiles) - 1);
+ MvPrintw(19, 5, "Moves : %d of %d", NMoves, two2n(NTiles) - 1);
(void) attrset(A_REVERSE);
MvAddStr(BASELINE, 8,
" ");
@@ -232,12 +241,13 @@ Solved(int NumTiles)
}
static void
-usage(void)
+usage(int ok)
{
static const char *msg[] =
{
"Usage: hanoi [options] [[<No Of Tiles>] [a]]"
,""
+ ,USAGE_COMMON
,"Options:"
#if HAVE_USE_DEFAULT_COLORS
," -d invoke use_default_colors"
@@ -250,8 +260,11 @@ usage(void)
for (n = 0; n < SIZEOF(msg); n++)
fprintf(stderr, "%s\n", msg[n]);
- ExitProgram(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
main(int argc, char **argv)
@@ -263,7 +276,7 @@ main(int argc, char **argv)
#endif
NTiles = DEFAULTTILES;
- while ((ch = getopt(argc, argv, "dn:X")) != -1) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "dn:X")) != -1) {
switch (ch) {
#if HAVE_USE_DEFAULT_COLORS
case 'd':
@@ -276,17 +289,20 @@ main(int argc, char **argv)
case 'X':
AutoFlag = TRUE;
break;
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
+ usage(ch == OPTS_USAGE);
/* NOTREACHED */
}
}
setlocale(LC_ALL, "");
- switch (ch = (argc - optind)) {
+ switch (argc - optind) {
case 2:
if (strcmp(argv[optind + 1], "a")) {
- usage();
+ usage(FALSE);
}
AutoFlag = TRUE;
/* FALLTHRU */
@@ -296,12 +312,12 @@ main(int argc, char **argv)
case 0:
break;
default:
- usage();
+ usage(FALSE);
}
if (NTiles > MAXTILES || NTiles < MINTILES) {
fprintf(stderr, "Range %d to %d\n", MINTILES, MAXTILES);
- usage();
+ usage(FALSE);
}
initscr();
diff --git a/test/hashtest.c b/test/hashtest.c
index 70d622874da9..be79c0e10372 100644
--- a/test/hashtest.c
+++ b/test/hashtest.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2020,2022 Thomas E. Dickey *
* Copyright 1998-2013,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -31,7 +31,7 @@
*
* Generate timing statistics for vertical-motion optimization.
*
- * $Id: hashtest.c,v 1.36 2020/02/02 23:34:34 tom Exp $
+ * $Id: hashtest.c,v 1.39 2022/12/04 00:40:11 tom Exp $
*/
#include <test.priv.h>
@@ -150,49 +150,53 @@ run_test(bool optimized GCC_UNUSED)
}
static void
-usage(void)
+usage(int ok)
{
static const char *const tbl[] =
{
"Usage: hashtest [options]"
,""
+ ,USAGE_COMMON
,"Options:"
- ," -c continuous (don't reset between refresh's)"
- ," -f num leave 'num' lines constant for footer"
- ," -h num leave 'num' lines constant for header"
- ," -l num repeat test 'num' times"
- ," -n test the normal optimizer"
- ," -o test the hashed optimizer"
- ," -r reverse the loops"
- ," -s single-step"
- ," -x assume lower-right corner extension"
+ ," -c continuous (don't reset between refresh's)"
+ ," -F num leave 'num' lines constant for footer"
+ ," -H num leave 'num' lines constant for header"
+ ," -l num repeat test 'num' times"
+ ," -n test the normal optimizer"
+ ," -o test the hashed optimizer"
+ ," -r reverse the loops"
+ ," -s single-step"
+ ," -x assume lower-right corner extension"
};
size_t n;
for (n = 0; n < SIZEOF(tbl); n++)
fprintf(stderr, "%s\n", tbl[n]);
- ExitProgram(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
main(int argc, char *argv[])
{
- int c;
+ int ch;
int test_loops = 1;
int test_normal = FALSE;
int test_optimize = FALSE;
setlocale(LC_ALL, "");
- while ((c = getopt(argc, argv, "cf:h:l:norsx")) != -1) {
- switch (c) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "cF:H:l:norsx")) != -1) {
+ switch (ch) {
case 'c':
continuous = TRUE;
break;
- case 'f':
+ case 'F':
foot_lines = atoi(optarg);
break;
- case 'h':
+ case 'H':
head_lines = atoi(optarg);
break;
case 'l':
@@ -214,8 +218,12 @@ main(int argc, char *argv[])
case 'x':
extend_corner = TRUE;
break;
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
}
}
if (!test_normal && !test_optimize) {
diff --git a/test/inch_wide.c b/test/inch_wide.c
index e44a5f512860..7b838d1dff28 100644
--- a/test/inch_wide.c
+++ b/test/inch_wide.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2020,2022 Thomas E. Dickey *
* Copyright 2007-2010,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,7 +27,7 @@
* authorization. *
****************************************************************************/
/*
- * $Id: inch_wide.c,v 1.11 2020/02/02 23:34:34 tom Exp $
+ * $Id: inch_wide.c,v 1.13 2022/12/10 23:55:34 tom Exp $
*/
/*
int in_wch(cchar_t *wcval);
@@ -259,19 +259,49 @@ test_inchs(int level, char **argv, WINDOW *chrwin, WINDOW *strwin)
return TRUE;
}
+static void
+usage(int ok)
+{
+ static const char *msg[] =
+ {
+ "Usage: inch_wide [options] [file1 [...]]"
+ ,""
+ ,USAGE_COMMON
+ };
+ size_t n;
+
+ for (n = 0; n < SIZEOF(msg); n++)
+ fprintf(stderr, "%s\n", msg[n]);
+
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
+}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
+
int
main(int argc, char *argv[])
{
WINDOW *chrbox;
WINDOW *chrwin;
WINDOW *strwin;
+ int ch;
+
+ while ((ch = getopt(argc, argv, OPTS_COMMON)) != -1) {
+ switch (ch) {
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
+ default:
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
+ }
+ }
setlocale(LC_ALL, "");
- if (argc < 2) {
- fprintf(stderr, "usage: %s file1 [file2 [...]]\n", argv[0]);
- return EXIT_FAILURE;
- }
+ if (optind + 1 > argc)
+ usage(FALSE);
initscr();
@@ -282,7 +312,7 @@ main(int argc, char *argv[])
chrwin = derwin(chrbox, 1, COLS - 2, 1, 1);
strwin = derwin(chrbox, 4, COLS - 2, 2, 1);
- test_inchs(1, argv, chrwin, strwin);
+ test_inchs(optind, argv, chrwin, strwin);
endwin();
ExitProgram(EXIT_SUCCESS);
diff --git a/test/inchs.c b/test/inchs.c
index 1d1691a61bdd..b5922dd65a80 100644
--- a/test/inchs.c
+++ b/test/inchs.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2020,2022 Thomas E. Dickey *
* Copyright 2007-2012,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,7 +27,7 @@
* authorization. *
****************************************************************************/
/*
- * $Id: inchs.c,v 1.18 2020/02/02 23:34:34 tom Exp $
+ * $Id: inchs.c,v 1.19 2022/12/11 00:01:39 tom Exp $
*
* Author: Thomas E Dickey
*/
@@ -271,19 +271,49 @@ test_inchs(int level, char **argv, WINDOW *chrwin, WINDOW *strwin)
return TRUE;
}
+static void
+usage(int ok)
+{
+ static const char *msg[] =
+ {
+ "Usage: inchs [options] file1 [file2 [...]]"
+ ,""
+ ,USAGE_COMMON
+ };
+ size_t n;
+
+ for (n = 0; n < SIZEOF(msg); n++)
+ fprintf(stderr, "%s\n", msg[n]);
+
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
+}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
+
int
main(int argc, char *argv[])
{
WINDOW *chrbox;
WINDOW *chrwin;
WINDOW *strwin;
+ int ch;
+
+ while ((ch = getopt(argc, argv, OPTS_COMMON)) != -1) {
+ switch (ch) {
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
+ default:
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
+ }
+ }
setlocale(LC_ALL, "");
- if (argc < 2) {
- fprintf(stderr, "usage: %s file1 [file2 [...]]\n", argv[0]);
- return EXIT_FAILURE;
- }
+ if (optind + 1 > argc)
+ usage(FALSE);
initscr();
@@ -294,7 +324,7 @@ main(int argc, char *argv[])
chrwin = derwin(chrbox, 1, COLS - 2, 1, 1);
strwin = derwin(chrbox, 4, COLS - 2, 2, 1);
- test_inchs(1, argv, chrwin, strwin);
+ test_inchs(optind, argv, chrwin, strwin);
endwin();
ExitProgram(EXIT_SUCCESS);
diff --git a/test/ins_wide.c b/test/ins_wide.c
index 9f733924a44a..a732449331e9 100644
--- a/test/ins_wide.c
+++ b/test/ins_wide.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2022 Thomas E. Dickey *
* Copyright 2002-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,7 +27,7 @@
* authorization. *
****************************************************************************/
/*
- * $Id: ins_wide.c,v 1.25 2020/02/02 23:34:34 tom Exp $
+ * $Id: ins_wide.c,v 1.30 2022/12/10 22:28:50 tom Exp $
*
* Demonstrate the wins_wstr() and wins_wch functions.
* Thomas Dickey - 2002/11/23
@@ -106,7 +106,7 @@ legend(WINDOW *win, int level, Options state, wchar_t *buffer, int length)
}
static int
-ColOf(wchar_t *buffer, int length, int margin)
+ColOf(const wchar_t *buffer, int length, int margin)
{
int n;
int result;
@@ -455,32 +455,36 @@ test_inserts(int level)
}
static void
-usage(void)
+usage(int ok)
{
static const char *tbl[] =
{
"Usage: ins_wide [options]"
,""
+ ,USAGE_COMMON
,"Options:"
- ," -f FILE read data from given file"
- ," -n NUM limit string-inserts to NUM bytes on ^N replay"
- ," -m perform wmove/move separately from insert-functions"
- ," -w use window-parameter even when stdscr would be implied"
+ ," -f FILE read data from given file"
+ ," -n NUM limit string-inserts to NUM bytes on ^N replay"
+ ," -m perform wmove/move separately from insert-functions"
+ ," -w use window-parameter even when stdscr would be implied"
};
unsigned n;
for (n = 0; n < SIZEOF(tbl); ++n)
fprintf(stderr, "%s\n", tbl[n]);
- ExitProgram(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+main(int argc, char *argv[])
{
int ch;
setlocale(LC_ALL, "");
- while ((ch = getopt(argc, argv, "f:mn:w")) != -1) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "f:mn:w")) != -1) {
switch (ch) {
case 'f':
init_linedata(optarg);
@@ -496,13 +500,16 @@ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
case 'w':
w_opt = TRUE;
break;
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
- break;
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
}
}
if (optind < argc)
- usage();
+ usage(FALSE);
test_inserts(0);
endwin();
diff --git a/test/insdelln.c b/test/insdelln.c
index 55e606aebe13..52ccfb620f9b 100644
--- a/test/insdelln.c
+++ b/test/insdelln.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2020,2022 Thomas E. Dickey *
* Copyright 2008-2014,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,7 +27,7 @@
* authorization. *
****************************************************************************/
/*
- * $Id: insdelln.c,v 1.14 2020/02/02 23:34:34 tom Exp $
+ * $Id: insdelln.c,v 1.15 2022/12/10 23:31:31 tom Exp $
*
* test-driver for deleteln, wdeleteln, insdelln, winsdelln, insertln, winsertln
*/
@@ -371,9 +371,44 @@ test_insdelln(void)
} while ((st.ch = getch()) != ERR);
}
+static void
+usage(int ok)
+{
+ static const char *msg[] =
+ {
+ "Usage: insdelln [options]"
+ ,""
+ ,USAGE_COMMON
+ };
+ size_t n;
+
+ for (n = 0; n < SIZEOF(msg); n++)
+ fprintf(stderr, "%s\n", msg[n]);
+
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
+}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
+
int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+main(int argc, char *argv[])
{
+ int ch;
+
+ while ((ch = getopt(argc, argv, OPTS_COMMON)) != -1) {
+ switch (ch) {
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
+ default:
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
+ }
+ }
+ if (optind < argc)
+ usage(FALSE);
+
initscr();
cbreak();
noecho();
diff --git a/test/inserts.c b/test/inserts.c
index 6d108cc31cb7..b106ffc7d462 100644
--- a/test/inserts.c
+++ b/test/inserts.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2022 Thomas E. Dickey *
* Copyright 2002-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,7 +27,7 @@
* authorization. *
****************************************************************************/
/*
- * $Id: inserts.c,v 1.30 2020/02/02 23:34:34 tom Exp $
+ * $Id: inserts.c,v 1.34 2022/12/10 22:28:50 tom Exp $
*
* Demonstrate the winsstr() and winsch functions.
* Thomas Dickey - 2002/10/19
@@ -384,32 +384,36 @@ test_inserts(int level)
}
static void
-usage(void)
+usage(int ok)
{
static const char *tbl[] =
{
"Usage: inserts [options]"
,""
+ ,USAGE_COMMON
,"Options:"
- ," -f FILE read data from given file"
- ," -n NUM limit string-inserts to NUM bytes on ^N replay"
- ," -m perform wmove/move separately from insert-functions"
- ," -w use window-parameter even when stdscr would be implied"
+ ," -f FILE read data from given file"
+ ," -n NUM limit string-inserts to NUM bytes on ^N replay"
+ ," -m perform wmove/move separately from insert-functions"
+ ," -w use window-parameter even when stdscr would be implied"
};
unsigned n;
for (n = 0; n < SIZEOF(tbl); ++n)
fprintf(stderr, "%s\n", tbl[n]);
- ExitProgram(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+main(int argc, char *argv[])
{
int ch;
setlocale(LC_ALL, "");
- while ((ch = getopt(argc, argv, "f:mn:w")) != -1) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "f:mn:w")) != -1) {
switch (ch) {
case 'f':
init_linedata(optarg);
@@ -425,13 +429,16 @@ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
case 'w':
w_opt = TRUE;
break;
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
- break;
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
}
}
if (optind < argc)
- usage();
+ usage(FALSE);
test_inserts(0);
endwin();
diff --git a/test/key_names.c b/test/key_names.c
index 69c95d638db0..fa7fdba631a4 100644
--- a/test/key_names.c
+++ b/test/key_names.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2022 Thomas E. Dickey *
* Copyright 2007-2014,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,7 +27,7 @@
* authorization. *
****************************************************************************/
/*
- * $Id: key_names.c,v 1.8 2020/02/02 23:34:34 tom Exp $
+ * $Id: key_names.c,v 1.11 2022/12/04 00:40:11 tom Exp $
*/
#include <test.priv.h>
@@ -35,15 +35,32 @@
#if USE_WIDEC_SUPPORT
static void
-usage(void)
+usage(int ok)
{
- fprintf(stderr, "Usage: key_names [-m] [-s]\n");
- ExitProgram(EXIT_FAILURE);
+ static const char *msg[] =
+ {
+ "Usage: key_names"
+ ,""
+ ,USAGE_COMMON
+ ,"Options:"
+ ," -m call meta(TRUE) in initialization"
+ ," -s call newterm, etc., to complete initialization"
+ };
+ size_t n;
+
+ for (n = 0; n < SIZEOF(msg); n++)
+ fprintf(stderr, "%s\n", msg[n]);
+
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
main(int argc, char *argv[])
{
+ int ch;
int n;
bool do_setup = FALSE;
@@ -51,16 +68,19 @@ main(int argc, char *argv[])
setlocale(LC_ALL, "");
- while ((n = getopt(argc, argv, "ms")) != -1) {
- switch (n) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "ms")) != -1) {
+ switch (ch) {
case 'm':
do_meta = TRUE;
break;
case 's':
do_setup = TRUE;
break;
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
+ usage(ch == OPTS_USAGE);
/* NOTREACHED */
}
}
diff --git a/test/keynames.c b/test/keynames.c
index 5a3d12a69063..cae260f63fe5 100644
--- a/test/keynames.c
+++ b/test/keynames.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2022 Thomas E. Dickey *
* Copyright 1998-2006,2008 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,37 +27,57 @@
* authorization. *
****************************************************************************/
/*
- * $Id: keynames.c,v 1.10 2020/02/02 23:34:34 tom Exp $
+ * $Id: keynames.c,v 1.13 2022/12/04 00:40:11 tom Exp $
*/
#include <test.priv.h>
static void
-usage(void)
+usage(int ok)
{
- fprintf(stderr, "Usage: keynames [-m] [-s]\n");
- ExitProgram(EXIT_FAILURE);
+ static const char *msg[] =
+ {
+ "Usage: keynames"
+ ,""
+ ,USAGE_COMMON
+ ,"Options:"
+ ," -m call meta(TRUE) in initialization"
+ ," -s call newterm, etc., to complete initialization"
+ };
+ size_t n;
+
+ for (n = 0; n < SIZEOF(msg); n++)
+ fprintf(stderr, "%s\n", msg[n]);
+
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
main(int argc, char *argv[])
{
+ int ch;
int n;
bool do_setup = FALSE;
bool do_meta = FALSE;
setlocale(LC_ALL, "");
- while ((n = getopt(argc, argv, "ms")) != -1) {
- switch (n) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "ms")) != -1) {
+ switch (ch) {
case 'm':
do_meta = TRUE;
break;
case 's':
do_setup = TRUE;
break;
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
+ usage(ch == OPTS_USAGE);
/* NOTREACHED */
}
}
diff --git a/test/knight.c b/test/knight.c
index bda7da38fc43..b15c4d23763e 100644
--- a/test/knight.c
+++ b/test/knight.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2021,2022 Thomas E. Dickey *
* Copyright 1998-2013,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -34,7 +34,7 @@
* Eric S. Raymond <esr@snark.thyrsus.com> July 22 1995. Mouse support
* added September 20th 1995.
*
- * $Id: knight.c,v 1.47 2020/02/02 23:34:34 tom Exp $
+ * $Id: knight.c,v 1.52 2022/12/04 00:40:11 tom Exp $
*/
#include <test.priv.h>
@@ -595,8 +595,8 @@ play(void)
{
bool keyhelp; /* TRUE if keystroke help is up */
int i, j, count;
- int lastcol = 0; /* last location visited */
- int lastrow = 0;
+ int lastcol; /* last location visited */
+ int lastrow;
int ny = 0, nx = 0;
int review = 0; /* review history */
int test_size;
@@ -621,10 +621,10 @@ play(void)
for (i = 0; i < ylimit; i++) {
for (j = 0; j < xlimit; j++) {
- squares[i][j] = FALSE;
unmarkcell(i, j);
}
}
+ memset(squares, 0, sizeof(squares));
memset(history, 0, sizeof(history));
history[0].y = history[0].x = -1;
history[1].y = history[1].x = -1;
@@ -899,12 +899,13 @@ play(void)
}
static void
-usage(void)
+usage(int ok)
{
static const char *msg[] =
{
"Usage: knight [options]"
,""
+ ,USAGE_COMMON
,"Options:"
#if HAVE_USE_DEFAULT_COLORS
," -d invoke use_default_colors"
@@ -916,15 +917,18 @@ usage(void)
for (n = 0; n < SIZEOF(msg); n++)
fprintf(stderr, "%s\n", msg[n]);
- ExitProgram(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
main(int argc, char *argv[])
{
int ch;
- while ((ch = getopt(argc, argv, "dn:")) != -1) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "dn:")) != -1) {
switch (ch) {
#if HAVE_USE_DEFAULT_COLORS
case 'd':
@@ -935,17 +939,20 @@ main(int argc, char *argv[])
ch = atoi(optarg);
if (ch < 3 || ch > 8) {
fprintf(stderr, "board size %d is outside [3..8]\n", ch);
- usage();
+ usage(FALSE);
}
xlimit = ylimit = ch;
break;
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
+ usage(ch == OPTS_USAGE);
/* NOTREACHED */
}
}
if (optind < argc)
- usage();
+ usage(FALSE);
init_program();
diff --git a/test/list_keys.c b/test/list_keys.c
index cdad60e928b6..b616919f4653 100644
--- a/test/list_keys.c
+++ b/test/list_keys.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2022,2023 Thomas E. Dickey *
* Copyright 2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,7 +27,7 @@
* authorization. *
****************************************************************************/
/*
- * $Id: list_keys.c,v 1.26 2020/02/02 23:34:34 tom Exp $
+ * $Id: list_keys.c,v 1.33 2023/11/11 00:35:05 tom Exp $
*
* Author: Thomas E Dickey
*
@@ -52,7 +52,10 @@
static bool f_opt = FALSE;
static bool m_opt = FALSE;
static bool t_opt = FALSE;
+
+#if NCURSES_XNAMES || HAVE_USE_EXTENDED_NAMES
static bool x_opt = FALSE;
+#endif
typedef enum {
ktCursor
@@ -71,6 +74,13 @@ typedef struct {
#define Type(n) list[n].type
#define Name(n) list[n].name
+static void
+failed(const char *msg)
+{
+ perror(msg);
+ ExitProgram(EXIT_FAILURE);
+}
+
static const char *
full_name(const char *name)
{
@@ -240,7 +250,7 @@ modified_key(const char *name)
map |= (bit1 << 1) | (bit2 >> 1);
_nc_SPRINTF(result, _nc_SLIMIT(sizeof(result))
"%sF%d", modifiers[map][(unsigned) f_opt], 1 + key);
- } else if (sscanf(name, "k%[A-Z]%d%c", buffer, &value, &chr) == 2 &&
+ } else if (sscanf(name, "k%80[A-Z]%d%c", buffer, &value, &chr) == 2 &&
(value > 1 &&
value <= 8) &&
(!strcmp(buffer, "UP") ||
@@ -255,7 +265,7 @@ modified_key(const char *name)
!strcmp(buffer, "PRV"))) {
_nc_SPRINTF(result, _nc_SLIMIT(sizeof(result))
"%sk%s", modifiers[value - 1][(unsigned) f_opt], buffer);
- } else if (sscanf(name, "k%[A-Z]%c", buffer, &chr) == 1 &&
+ } else if (sscanf(name, "k%80[A-Z]%c", buffer, &chr) == 1 &&
(!strcmp(buffer, "UP") ||
!strcmp(buffer, "DN"))) {
_nc_SPRINTF(result, _nc_SLIMIT(sizeof(result))
@@ -338,8 +348,11 @@ list_keys(TERMINAL **terms, int count)
widths1 = (int) strlen(modifier);
for (k = 0; k < count; ++k) {
+ char *value;
set_curterm(terms[k]);
- check = (int) strlen(termname());
+ if ((value = termname()) == NULL)
+ failed("termname");
+ check = (int) strlen(value);
if (widths2 < check)
widths2 = check;
}
@@ -417,37 +430,41 @@ list_keys(TERMINAL **terms, int count)
}
static void
-usage(void)
+usage(int ok)
{
static const char *msg[] =
{
- "Usage: list_keys [options] [terminal [terminal2 [...]]]",
- "",
- "Print capabilities for terminal special keys.",
- "",
- "Options:",
- " -f print full names",
- " -m print modifier-column for shift/control keys",
- " -t print result as CSV table",
+ "Usage: list_keys [options] [terminal [terminal2 [...]]]"
+ ,""
+ ,"Print capabilities for terminal special keys."
+ ,""
+ ,USAGE_COMMON
+ ,"Options:"
+ ," -f print full names"
+ ," -m print modifier-column for shift/control keys"
+ ," -t print result as CSV table"
#ifdef NCURSES_VERSION
- " -x print extended capabilities",
+ ," -x print extended capabilities"
#endif
};
unsigned n;
for (n = 0; n < SIZEOF(msg); ++n) {
fprintf(stderr, "%s\n", msg[n]);
}
- ExitProgram(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
main(int argc, char *argv[])
{
- int n;
+ int ch;
TERMINAL **terms = typeCalloc(TERMINAL *, argc + 1);
- while ((n = getopt(argc, argv, "fmtx")) != -1) {
- switch (n) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "fmtx")) != -1) {
+ switch (ch) {
case 'f':
f_opt = TRUE;
break;
@@ -457,14 +474,17 @@ main(int argc, char *argv[])
case 't':
t_opt = TRUE;
break;
-#ifdef NCURSES_VERSION
+#if NCURSES_XNAMES || HAVE_USE_EXTENDED_NAMES
case 'x':
x_opt = TRUE;
break;
#endif
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
- break;
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
}
}
@@ -475,6 +495,7 @@ main(int argc, char *argv[])
if (optind < argc) {
int found = 0;
int status;
+ int n;
for (n = optind; n < argc; ++n) {
setupterm((NCURSES_CONST char *) argv[n], 1, &status);
if (status > 0 && cur_term != 0) {
@@ -496,7 +517,7 @@ main(int argc, char *argv[])
#else
int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+main(void)
{
printf("This program requires the terminfo arrays\n");
ExitProgram(EXIT_FAILURE);
@@ -504,7 +525,7 @@ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
#endif
#else /* !HAVE_TIGETSTR */
int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+main(void)
{
printf("This program requires the terminfo functions such as tigetstr\n");
ExitProgram(EXIT_FAILURE);
diff --git a/test/listused.sh b/test/listused.sh
index d3e2629495a9..45653ebd68b2 100755
--- a/test/listused.sh
+++ b/test/listused.sh
@@ -1,6 +1,6 @@
#!/bin/sh
##############################################################################
-# Copyright 2020 Thomas E. Dickey #
+# Copyright 2020-2021,2022 Thomas E. Dickey #
# Copyright 2003-2006,2010 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -27,14 +27,16 @@
# use or other dealings in this Software without prior written #
# authorization. #
##############################################################################
-# $Id: listused.sh,v 1.9 2020/02/02 23:34:34 tom Exp $
+# $Id: listused.sh,v 1.12 2022/07/16 16:33:38 tom Exp $
# A very simple script to list all entrypoints that are used by either a test
# program, or within the libraries. This relies on the output format of 'nm',
# and assumes that the libraries are configured with TRACE defined, and using
# these options:
# --disable-macros
+# --enable-opaque-curses
# --enable-sp-funcs
# --enable-widec
+# --without-gpm
# Static libraries are used, to provide some filtering based on internal usage
# of the different symbols.
@@ -65,7 +67,7 @@ do
;;
*)
NAME=../objects/${name}.o
- if test -f $NAME
+ if test -f "$NAME"
then
PROGS="$PROGS $NAME"
fi
@@ -76,19 +78,19 @@ done
# For each library -
for lib in ../lib/*.a
do
- LIB=`basename $lib .a`
+ LIB=`basename "$lib" .a`
case $LIB in
*_*|*+*)
continue
;;
esac
- tmp=`echo $LIB|sed -e 's/w$//'`
+ tmp=`echo "$LIB"|sed -e 's/w$//'`
echo
echo "${tmp}:"
- echo $tmp |sed -e 's/./-/g'
+ echo "$tmp" |sed -e 's/./-/g'
# Construct a list of public externals provided by the library.
- WANT=`nm $NM_OPTS $lib |\
+ WANT=`nm $NM_OPTS "$lib" |\
sed -e 's/^[^ ]*//' \
-e 's/^ *//' \
-e '/^[ a-z] /d' \
@@ -111,7 +113,7 @@ do
tags=$prog
;;
*)
- TEST=`nm $NM_OPTS $prog |\
+ TEST=`nm $NM_OPTS "$prog" |\
sed -e 's/^[^ ]*//' \
-e 's/^ *//' \
-e '/^[ a-z] /d' \
@@ -123,7 +125,7 @@ do
-e '/^[^_]/d'`
if test -n "$TEST"
then
- have=`basename $prog .o`
+ have=`basename "$prog" .o`
if test -n "$HAVE"
then
if test "$last" = "$tags"
@@ -145,13 +147,13 @@ do
if test -z "$HAVE"
then
for tmp in ../lib/*.a
- do
+ do
case $tmp in
*_*|*+*)
continue
;;
esac
- TEST=`nm $NM_OPTS $tmp |\
+ TEST=`nm $NM_OPTS "$tmp" |\
sed -e 's/^[^ ]*//' \
-e 's/^ *//' \
-e '/^[ a-z] /d' \
@@ -164,20 +166,20 @@ do
-e '/^[^_]/d'`
if test -n "$TEST"
then
- tmp=`basename $tmp .a |sed -e 's/w$//'`
- HAVE=`echo $tmp | sed -e 's/lib/lib: /'`
+ tmp=`basename "$tmp" .a |sed -e 's/w$//'`
+ HAVE=`echo "$tmp" | sed -e 's/lib/lib: /'`
break
fi
done
fi
test -z "$HAVE" && HAVE="-"
- lenn=`expr 39 - length $name`
- lenn=`expr $lenn / 8`
+ lenn=`expr 39 - length "$name"`
+ lenn=`expr "$lenn" / 8`
tabs=
- while test $lenn != 0
+ while test "$lenn" != 0
do
tabs="${tabs} "
- lenn=`expr $lenn - 1`
+ lenn=`expr "$lenn" - 1`
done
echo "${name}${tabs}${HAVE}"
done
diff --git a/test/lrtest.c b/test/lrtest.c
index 9c77577e65e9..0e609d012c96 100644
--- a/test/lrtest.c
+++ b/test/lrtest.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2020,2022 Thomas E. Dickey *
* Copyright 1998-2010,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -35,7 +35,7 @@
* This can't be part of the ncurses test-program, because ncurses rips off the
* bottom line to do labels.
*
- * $Id: lrtest.c,v 1.27 2020/02/02 23:34:34 tom Exp $
+ * $Id: lrtest.c,v 1.29 2022/12/10 23:44:18 tom Exp $
*/
#include <test.priv.h>
@@ -82,10 +82,28 @@ show(MARK *m)
}
}
+static void
+usage(int ok)
+{
+ static const char *msg[] =
+ {
+ "Usage: lrtest [options]"
+ ,""
+ ,USAGE_COMMON
+ };
+ size_t n;
+
+ for (n = 0; n < SIZEOF(msg); n++)
+ fprintf(stderr, "%s\n", msg[n]);
+
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
+}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
+
int
-main(
- int argc GCC_UNUSED,
- char *argv[]GCC_UNUSED)
+main(int argc, char *argv[])
{
static MARK marks[] =
{
@@ -97,6 +115,20 @@ main(
{1, 0, 1, 1, 1, '*' | A_REVERSE},
{2, 0, 1, 1, 1, '*' | A_REVERSE}
};
+ int ch;
+
+ while ((ch = getopt(argc, argv, OPTS_COMMON)) != -1) {
+ switch (ch) {
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
+ default:
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
+ }
+ }
+ if (optind < argc)
+ usage(FALSE);
setlocale(LC_ALL, "");
@@ -132,7 +164,7 @@ main(
}
for (;;) {
- int ch;
+ int c2;
unsigned n;
box(stdscr, 0, 0);
@@ -140,21 +172,21 @@ main(
show(&marks[n]);
}
- if ((ch = getch()) > 0) {
- if (ch == 'q')
+ if ((c2 = getch()) > 0) {
+ if (c2 == 'q')
break;
- else if (ch == 's')
+ else if (c2 == 's')
nodelay(stdscr, FALSE);
- else if (ch == ' ')
+ else if (c2 == ' ')
nodelay(stdscr, TRUE);
#ifdef TRACE
- else if (ch == 'T')
+ else if (c2 == 'T')
curses_trace(0);
- else if (ch == 't')
+ else if (c2 == 't')
curses_trace(TRACE_CALLS | TRACE_ICALLS | TRACE_UPDATE);
#endif
#ifdef KEY_RESIZE
- else if (ch == KEY_RESIZE) {
+ else if (c2 == KEY_RESIZE) {
for (n = 0; n < SIZEOF(marks); n++) {
if (marks[n].mode == 0) { /* moving along x-direction */
if (marks[n].y)
diff --git a/test/make-tar.sh b/test/make-tar.sh
index c088d07ea1bf..df4b66aadab6 100755
--- a/test/make-tar.sh
+++ b/test/make-tar.sh
@@ -1,7 +1,7 @@
#!/bin/sh
-# $Id: make-tar.sh,v 1.16 2020/02/02 23:34:34 tom Exp $
+# $Id: make-tar.sh,v 1.21 2022/11/05 19:41:33 tom Exp $
##############################################################################
-# Copyright 2019,2020 Thomas E. Dickey #
+# Copyright 2019-2021,2022 Thomas E. Dickey #
# Copyright 2010-2015,2017 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -37,14 +37,20 @@ export CDPATH
TARGET=`pwd`
-: ${PKG_NAME:=ncurses-examples}
-: ${ROOTNAME:=ncurses-test}
-: ${DESTDIR:=$TARGET}
-: ${TMPDIR:=/tmp}
+: "${PKG_NAME:=ncurses-examples}"
+: "${ROOTNAME:=ncurses-test}"
+: "${DESTDIR:=$TARGET}"
+: "${TMPDIR:=/tmp}"
+
+# make timestamps of generated files predictable
+same_timestamp() {
+ [ -f ../NEWS ] || echo "OOPS $1"
+ touch -r ../NEWS "$1"
+}
grep_assign() {
- grep_assign=`egrep "^$2\>" "$1" | sed -e "s/^$2[ ]*=[ ]*//" -e 's/"//g'`
- eval $2=\"$grep_assign\"
+ grep_assign=`grep -E "^$2\>" "$1" | sed -e "s/^$2[ ]*=[ ]*//" -e 's/"//g'`
+ eval "$2"=\""$grep_assign"\"
}
grep_patchdate() {
@@ -59,29 +65,35 @@ edit_specfile() {
sed \
-e "s/\\<MAJOR\\>/$NCURSES_MAJOR/g" \
-e "s/\\<MINOR\\>/$NCURSES_MINOR/g" \
- -e "s/\\<YYYYMMDD\\>/$NCURSES_PATCH/g" $1 >$1.new
- chmod u+w $1
- mv $1.new $1
+ -e "s/\\<YYYYMMDD\\>/$NCURSES_PATCH/g" "$1" >"$1.new"
+ chmod u+w "$1"
+ mv "$1.new" "$1"
+ same_timestamp "$1"
}
make_changelog() {
- test -f $1 && chmod u+w $1
- cat >$1 <<EOF
-`echo $PKG_NAME|tr '[A-Z]' '[a-z]'` ($NCURSES_MAJOR.$NCURSES_MINOR+$NCURSES_PATCH) unstable; urgency=low
+ [ -f "$1" ] && chmod u+w "$1"
+ cat >"$1" <<EOF
+`echo $PKG_NAME|tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` ($NCURSES_MAJOR.$NCURSES_MINOR+$NCURSES_PATCH) unstable; urgency=low
* snapshot of ncurses subpackage for $PKG_NAME.
- -- `head -n 1 $HOME/.signature` `date -R`
+ -- `head -n 1 "$HOME"/.signature` `date -R`
EOF
+ same_timestamp "$1"
}
# This can be run from either the subdirectory, or from the top-level
# source directory. We will put the tar file in the original directory.
-test -d ./test && cd ./test
+if [ -d ./test ]
+then
+ cd ./test || exit
+fi
SOURCE=`cd ..;pwd`
BUILD=$TMPDIR/make-tar$$
-trap "cd /; rm -rf $BUILD; exit 0" EXIT INT QUIT TERM HUP
+trap "cd /; rm -rf $BUILD; exit 1" 1 2 3 15
+trap "cd /; rm -rf $BUILD; exit 0" 0
umask 077
if ! ( mkdir $BUILD )
@@ -92,36 +104,37 @@ fi
umask 022
mkdir $BUILD/$ROOTNAME
-cp -p -r * $BUILD/$ROOTNAME/ || exit
+cp -p -r ./* $BUILD/$ROOTNAME/ || exit
# Add the config.* utility scripts from the top-level directory.
for i in . ..
do
- for j in config.guess config.sub install-sh tar-copy.sh
+ for j in COPYING config.guess config.sub install-sh tar-copy.sh
do
- test -f $i/$j && cp -p $i/$j $BUILD/$ROOTNAME/
+ [ -f $i/$j ] && cp -p $i/$j $BUILD/$ROOTNAME/
done
done
# Make rpm and dpkg scripts for test-builds
grep_patchdate
-for spec in $BUILD/$ROOTNAME/package/*.spec
+for spec in "$BUILD/$ROOTNAME"/package/*.spec
do
- edit_specfile $spec
+ edit_specfile "$spec"
done
-for spec in $BUILD/$ROOTNAME/package/debian*
+for spec in "$BUILD/$ROOTNAME"/package/debian*
do
- make_changelog $spec/changelog
+ make_changelog "$spec"/changelog
done
-cp -p $SOURCE/NEWS $BUILD/$ROOTNAME
+cp -p "$SOURCE/NEWS" "$BUILD/$ROOTNAME"
# cleanup empty directories (an artifact of ncurses source archives)
-touch $BUILD/$ROOTNAME/MANIFEST
-( cd $BUILD/$ROOTNAME && find . -type f -print |$SOURCE/misc/csort >MANIFEST )
+touch $BUILD/$ROOTNAME/MANIFEST
+( cd $BUILD/$ROOTNAME && find . -type f -print | "$SOURCE/misc/csort" >MANIFEST )
+same_timestamp $BUILD/$ROOTNAME/MANIFEST
-cd $BUILD || exit
+cd $BUILD || exit
# Remove build-artifacts.
find . -name RCS -exec rm -rf {} \;
@@ -138,8 +151,11 @@ find . -name "*.gz" -exec rm -rf {} \;
# Make the files writable...
chmod -R u+w .
-tar cf - $ROOTNAME | gzip >$DESTDIR/$ROOTNAME.tar.gz
-cd $DESTDIR
+# Cleanup timestamps
+[ -n "$TOUCH_DIRS" ] && "$TOUCH_DIRS" "$ROOTNAME"
+
+tar cf - $TAR_OPTIONS $ROOTNAME | gzip >"$DESTDIR/$ROOTNAME.tar.gz"
+cd "$DESTDIR" || exit
pwd
ls -l $ROOTNAME.tar.gz
diff --git a/test/mk-test.awk b/test/mk-test.awk
index ac4203aaac56..a194a5d4ee7f 100644
--- a/test/mk-test.awk
+++ b/test/mk-test.awk
@@ -1,6 +1,6 @@
-# $Id: mk-test.awk,v 1.23 2020/02/02 23:34:34 tom Exp $
+# $Id: mk-test.awk,v 1.30 2021/12/19 16:54:36 tom Exp $
##############################################################################
-# Copyright 2019,2020 Thomas E. Dickey #
+# Copyright 2019-2020,2021 Thomas E. Dickey #
# Copyright 2006-2017,2018 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -77,11 +77,11 @@ END {
print " $(srcdir)/*.x* \\"
print " $(srcdir)/*.dat"
print ""
- print "all: $(TESTS)"
+ print "all:: $(TESTS)"
print ""
print "sources:"
print ""
- print "check:"
+ print "check::"
print " @ echo The test-programs are interactive"
print "tags:"
print " $(CTAGS) *.[ch]"
@@ -93,19 +93,38 @@ END {
print ""
if (INSTALL == "yes") {
print "# we might install the test-programs"
+ print "$(PACKAGE) :"
+ print " @echo \"creating $(PACKAGE) script\""
+ print " @$(SHELL) -c '\\"
+ print " L=$(real_bindir); \\"
+ print " rm -f $@; \\"
+ print " echo \"#!$(SHELL)\" > $@;\\"
+ print " echo \"PATH=\\\"$$L\\\":\\$$PATH\" >>$@;\\"
+ print " echo \"export PATH\" >>$@;\\"
+ print " echo \"if test \\$$# != 0; then\" >>$@;\\"
+ print " echo \" exec \\\"\\$$@\\\"\" >>$@;\\"
+ print " echo \"elif test -t 1; then\" >>$@;\\"
+ print " echo \" cd \\\"$$L\\\" || exit\" >>$@;\\"
+ print " echo \" ls -l | \\$${PAGER:-less}\" >>$@;\\"
+ print " echo \"fi\" >>$@;\\"
+ print " echo \"echo \\\"usage: $@ [program]\\\"\" >>$@'"
+ print ""
print "install \\"
- print "install.test: $(BINDIR) $(DATADIR) $(TESTS)"
+ print "install.test: $(PACKAGE) $(BINDIR) $(REAL_BINDIR) $(DATADIR) $(TESTS)"
+
+ print " @echo \"installing $(PACKAGE) -> $(BINDIR)/\""
+ print " @$(INSTALL_SCRIPT) $(PACKAGE) $(BINDIR)"
print " @$(SHELL) -c 'for src in $(TESTS); do \\"
print " dst=`echo $$src | $(TRANSFORM)`; \\"
- print " echo \"installing $$src -> $(BINDIR)/$$dst\"; \\"
- print " $(INSTALL_PROG) $$src $(BINDIR)/$$dst; \\"
+ print " echo \"installing $$src -> $(REAL_BINDIR)/$$dst\"; \\"
+ print " $(INSTALL_PROG) $$src $(REAL_BINDIR)/$$dst; \\"
print " done'"
print " @$(SHELL) -c 'for src in $(SCRIPTS); do \\"
print " dst=`echo $$src | sed -e 's,^.*/,,' | $(TRANSFORM)`; \\"
- print " echo \"installing $$src -> $(BINDIR)/$$dst\"; \\"
- print " $(INSTALL_SCRIPT) $$src $(BINDIR)/$$dst; \\"
+ print " echo \"installing $$src -> $(REAL_BINDIR)/$$dst\"; \\"
+ print " $(INSTALL_SCRIPT) $$src $(REAL_BINDIR)/$$dst; \\"
print " done'"
print " @$(SHELL) -c 'for src in $(DATAFILES); do \\"
@@ -117,14 +136,16 @@ END {
print "uninstall \\"
print "uninstall.test:"
+ print " -rm -f $(BINDIR)/$(PACKAGE)"
+
print " @$(SHELL) -c 'for src in $(TESTS); do \\"
print " dst=`echo $$src | $(TRANSFORM)`; \\"
- print " rm -f $(BINDIR)/$$dst; \\"
+ print " rm -f $(REAL_BINDIR)/$$dst; \\"
print " done'"
print " @$(SHELL) -c 'for src in $(SCRIPTS); do \\"
print " dst=`echo $$src | sed -e 's,^.*/,,' | $(TRANSFORM)`; \\"
- print " rm -f $(BINDIR)/$$dst; \\"
+ print " rm -f $(REAL_BINDIR)/$$dst; \\"
print " done'"
print " @$(SHELL) -c 'for src in $(DATAFILES); do \\"
@@ -144,6 +165,7 @@ END {
print "clean :: mostlyclean"
print " -$(SHELL) -c \"if test -n '$x' ; then $(MAKE) clean x=''; fi\""
print " -rm -rf *$o screendump *.lis $(TESTS) .libs *.dSYM"
+ print " -rm -f $(PACKAGE)"
print ""
print "distclean :: clean"
print " -rm -f Makefile ncurses_cfg.h config.status config.log"
@@ -152,7 +174,7 @@ END {
print ""
print "lint:"
print " $(SHELL) -c 'for N in $(TESTS); do echo LINT:$$N; $(LINT) $(LINT_OPTS) $(CPPFLAGS) $(srcdir)/$$N.c $(LINT_LIBS); done'"
- print "$(BINDIR) $(DATADIR) :"
+ print "$(BINDIR) $(REAL_BINDIR) $(DATADIR) :"
print " mkdir -p $@"
diff --git a/test/modules b/test/modules
index de3d140abc6e..fb97d027e3d8 100644
--- a/test/modules
+++ b/test/modules
@@ -1,6 +1,6 @@
-# $Id: modules,v 1.74 2021/02/13 16:33:43 tom Exp $
+# $Id: modules,v 1.79 2023/11/10 11:48:20 tom Exp $
##############################################################################
-# Copyright 2018-2020,2021 Thomas E. Dickey #
+# Copyright 2018-2022,2023 Thomas E. Dickey #
# Copyright 1998-2016,2017 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -42,6 +42,7 @@ chgat progs $(srcdir) $(HEADER_DEPS) $(srcdir)/popup_msg.h
clip_printw progs $(srcdir) $(HEADER_DEPS) $(srcdir)/popup_msg.h
color_content progs $(srcdir) $(HEADER_DEPS)
color_set progs $(srcdir) $(HEADER_DEPS)
+combine progs $(srcdir) $(HEADER_DEPS)
demo_altkeys progs $(srcdir) $(HEADER_DEPS)
demo_defkey progs $(srcdir) $(HEADER_DEPS)
demo_forms progs $(srcdir) $(HEADER_DEPS) $(srcdir)/edit_field.h
@@ -100,15 +101,19 @@ test_addchstr progs $(srcdir) $(HEADER_DEPS) $(srcdir)/linedata.h
test_addstr progs $(srcdir) $(HEADER_DEPS) $(srcdir)/linedata.h
test_addwstr progs $(srcdir) $(HEADER_DEPS) $(srcdir)/linedata.h
test_arrays progs $(srcdir) $(HEADER_DEPS)
+test_delwin progs $(srcdir) $(HEADER_DEPS)
+test_endwin progs $(srcdir) $(HEADER_DEPS)
test_get_wstr progs $(srcdir) $(HEADER_DEPS)
test_getstr progs $(srcdir) $(HEADER_DEPS)
test_instr progs $(srcdir) $(HEADER_DEPS)
test_inwstr progs $(srcdir) $(HEADER_DEPS)
+test_mouse progs $(srcdir) $(HEADER_DEPS)
test_opaque progs $(srcdir) $(HEADER_DEPS)
test_setupterm progs $(srcdir) $(HEADER_DEPS)
test_sgr progs $(srcdir) $(HEADER_DEPS)
test_termattrs progs $(srcdir) $(HEADER_DEPS)
test_tparm progs $(srcdir) $(HEADER_DEPS)
+test_unget_wch progs $(srcdir) $(HEADER_DEPS)
test_vid_puts progs $(srcdir) $(HEADER_DEPS)
test_vidputs progs $(srcdir) $(HEADER_DEPS)
testaddch progs $(srcdir) $(HEADER_DEPS)
diff --git a/test/move_field.c b/test/move_field.c
index 8344c56f8c14..84bac3f4b565 100644
--- a/test/move_field.c
+++ b/test/move_field.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020-2022,2023 Thomas E. Dickey *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
@@ -26,7 +26,7 @@
* authorization. *
****************************************************************************/
/*
- * $Id: move_field.c,v 1.7 2020/05/09 12:52:00 tom Exp $
+ * $Id: move_field.c,v 1.15 2023/11/11 00:28:19 tom Exp $
*
* Demonstrate move_field().
*/
@@ -38,20 +38,11 @@
#include <edit_field.h>
#include <popup_msg.h>
-#ifdef HAVE_NETBSD_FORM_H
-#define form_field_row(field) (field)->form_row
-#define form_field_col(field) (field)->form_col
-#else /* e.g., SVr4, ncurses */
-#define form_field_row(field) (field)->frow
-#define form_field_col(field) (field)->fcol
-#endif
-
#define DO_DEMO CTRL('F') /* actual key for toggling demo-mode */
#define MY_DEMO EDIT_FIELD('f') /* internal request-code */
static char empty[] = "";
static FIELD *all_fields[100];
-
/* *INDENT-OFF* */
static struct {
int code;
@@ -125,7 +116,7 @@ make_label(const char *label, int frow, int fcol)
if (f) {
set_field_buffer(f, 0, label);
- set_field_opts(f, (int) ((unsigned) field_opts(f) & ~O_ACTIVE));
+ set_field_opts(f, (int) ((unsigned) field_opts(f) & (unsigned) ~O_ACTIVE));
}
return (f);
}
@@ -152,7 +143,6 @@ erase_form(FORM *f)
werase(w);
wrefresh(w);
delwin(s);
- delwin(w);
}
static FieldAttrs *
@@ -196,7 +186,6 @@ my_edit_field(FORM *form, int *result)
int status;
FIELD *before;
unsigned n;
- int length;
int before_row;
int before_col;
int before_off = offset_in_field(form);
@@ -222,8 +211,8 @@ my_edit_field(FORM *form, int *result)
if (status == E_OK) {
bool modified = TRUE;
+ int length = buffer_length(before);
- length = buffer_length(before);
if (length < before_off)
length = before_off;
switch (*result) {
@@ -279,7 +268,7 @@ my_edit_field(FORM *form, int *result)
static FIELD **
copy_fields(FIELD **source, size_t length)
{
- FIELD **target = calloc(length + 1, sizeof(FIELD *));
+ FIELD **target = typeCalloc(FIELD *, length + 1);
memcpy(target, source, length * sizeof(FIELD *));
return target;
}
@@ -311,15 +300,15 @@ do_demo(FORM *form)
{
int count = field_count(form);
FIELD *my_field = current_field(form);
+ FIELD **old_fields = form_fields(form);
- if (count > 0 && my_field != NULL) {
+ if (count > 0 && old_fields != NULL && my_field != NULL) {
size_t needed = (size_t) count;
- FIELD **old_fields = copy_fields(form_fields(form), needed);
- FIELD **new_fields = copy_fields(form_fields(form), needed);
- int ch;
+ FIELD **new_fields = copy_fields(old_fields, needed);
- if (old_fields != NULL && new_fields != NULL) {
+ if (new_fields != NULL) {
bool found = FALSE;
+ int ch;
/* TODO: move the label too, in parallel with the editing field */
@@ -338,7 +327,6 @@ do_demo(FORM *form)
getyx(stdscr, currow, curcol);
show_status(form, my_field);
- ch = '?';
while ((ch = wgetch(form_win(form))) != DO_DEMO) {
int field_y = form_field_row(my_field);
int field_x = form_field_col(my_field);
@@ -486,9 +474,44 @@ demo_forms(void)
nl();
}
+static void
+usage(int ok)
+{
+ static const char *msg[] =
+ {
+ "Usage: move_field [options]"
+ ,""
+ ,USAGE_COMMON
+ };
+ size_t n;
+
+ for (n = 0; n < SIZEOF(msg); n++)
+ fprintf(stderr, "%s\n", msg[n]);
+
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
+}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
+
int
-main(void)
+main(int argc, char *argv[])
{
+ int ch;
+
+ while ((ch = getopt(argc, argv, OPTS_COMMON)) != -1) {
+ switch (ch) {
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
+ default:
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
+ }
+ }
+ if (optind < argc)
+ usage(FALSE);
+
setlocale(LC_ALL, "");
initscr();
diff --git a/test/movewindow.c b/test/movewindow.c
index 0c94572d2c63..07797ca67b9e 100644
--- a/test/movewindow.c
+++ b/test/movewindow.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2022,2023 Thomas E. Dickey *
* Copyright 2006-2013,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,7 +27,7 @@
* authorization. *
****************************************************************************/
/*
- * $Id: movewindow.c,v 1.51 2020/02/02 23:34:34 tom Exp $
+ * $Id: movewindow.c,v 1.54 2023/05/27 20:13:10 tom Exp $
*
* Demonstrate move functions for windows and derived windows from the curses
* library.
@@ -55,14 +55,6 @@ TODO:
#undef derwin
#endif
-#if defined(NCURSES_CONST)
-#define CONST_FMT NCURSES_CONST
-#elif defined(PDCURSES)
-#define CONST_FMT const
-#else
-#define CONST_FMT /* nothing */
-#endif
-
#undef LINE_MAX
#define LINE_MIN 2
@@ -332,6 +324,7 @@ add_window(WINDOW *parent, WINDOW *child)
all_windows = typeRealloc(FRAME, need, all_windows);
if (!all_windows)
failed("add_window");
+ have = need;
}
all_windows[num_windows].parent = parent;
all_windows[num_windows].child = child;
@@ -339,7 +332,7 @@ add_window(WINDOW *parent, WINDOW *child)
}
static int
-window2num(WINDOW *win)
+window2num(const WINDOW *const win)
{
int n;
int result = -1;
@@ -415,7 +408,7 @@ prev_window(WINDOW *win)
}
static void
-recur_move_window(WINDOW *parent, int dy, int dx)
+recur_move_window(const WINDOW *const parent, int dy, int dx)
{
unsigned n;
@@ -679,13 +672,46 @@ show_help(WINDOW *current)
free(msgs);
}
+static void
+usage(int ok)
+{
+ static const char *msg[] =
+ {
+ "Usage: movewindow [options]"
+ ,""
+ ,USAGE_COMMON
+ };
+ size_t n;
+
+ for (n = 0; n < SIZEOF(msg); n++)
+ fprintf(stderr, "%s\n", msg[n]);
+
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
+}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
+
int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+main(int argc, char *argv[])
{
WINDOW *current_win;
int ch;
bool done = FALSE;
+ while ((ch = getopt(argc, argv, OPTS_COMMON)) != -1) {
+ switch (ch) {
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
+ default:
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
+ }
+ }
+ if (optind < argc)
+ usage(FALSE);
+
initscr();
cbreak();
noecho();
diff --git a/test/ncurses.c b/test/ncurses.c
index f50530ab6372..a272d1423eee 100644
--- a/test/ncurses.c
+++ b/test/ncurses.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2022,2023 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -41,24 +41,24 @@ AUTHOR
Author: Eric S. Raymond <esr@snark.thyrsus.com> 1993
Thomas E. Dickey (beginning revision 1.27 in 1996).
-$Id: ncurses.c,v 1.523 2020/08/29 16:22:03 juergen Exp $
+$Id: ncurses.c,v 1.538 2023/11/11 01:23:59 tom Exp $
***************************************************************************/
+#define NEED_TIME_H 1
#include <test.priv.h>
#ifdef __hpux
#undef mvwdelch /* HPUX 11.23 macro will not compile */
#endif
-#if HAVE_GETTIMEOFDAY
#if HAVE_SYS_TIME_H && HAVE_SYS_TIME_SELECT
#include <sys/time.h>
#endif
+
#if HAVE_SYS_SELECT_H
#include <sys/select.h>
#endif
-#endif
#if USE_LIBPANEL
#include <panel.h>
@@ -166,7 +166,7 @@ static RGB_DATA *all_colors;
#endif
static void main_menu(bool);
-static void failed(const char *s) GCC_NORETURN;
+static GCC_NORETURN void failed(const char *s);
static void
failed(const char *s)
@@ -770,7 +770,7 @@ slk_repaint(void)
* Resize both and paint the box in the parent.
*/
static void
-resize_boxes(unsigned level, WINDOW *win)
+resize_boxes(unsigned level, const WINDOW *const win)
{
unsigned n;
int base = 5;
@@ -855,7 +855,7 @@ wgetch_test(unsigned level, WINDOW *win, int delay)
setup_getch(win, flags);
wgetch_help(win, flags);
} else if (c == 'g') {
- waddstr(win, "getstr test: ");
+ waddstr(win, "wgetnstr test: ");
echo();
c = wgetnstr(win, buf, sizeof(buf) - 1);
noecho();
@@ -1012,7 +1012,7 @@ getch_test(bool recur GCC_UNUSED)
*/
#if defined(KEY_RESIZE) && HAVE_WRESIZE
static void
-resize_wide_boxes(unsigned level, WINDOW *win)
+resize_wide_boxes(unsigned level, const WINDOW *const win)
{
unsigned n;
int base = 5;
@@ -1113,7 +1113,7 @@ wget_wch_test(unsigned level, WINDOW *win, int delay)
setup_getch(win, flags);
wgetch_help(win, flags);
} else if (c == 'g') {
- waddstr(win, "getstr test: ");
+ waddstr(win, "wgetn_str test: ");
echo();
code = wgetn_wstr(win, wint_buf, BUFSIZ - 1);
noecho();
@@ -2885,6 +2885,10 @@ init_all_colors(bool xterm_colors, char *palette_file)
while (fgets(buffer, sizeof(buffer), fp) != 0) {
if (sscanf(buffer, "scale:%d", &c) == 1) {
scale = c;
+ if (scale < 100)
+ scale = 100;
+ if (scale > 1000)
+ scale = 1000;
} else if (sscanf(buffer, "%d:%d %d %d",
&c,
&red,
@@ -3153,7 +3157,7 @@ color_edit(bool recur GCC_UNUSED)
*
****************************************************************************/
static bool
-cycle_attr(int ch, unsigned *at_code, chtype *attr, ATTR_TBL * list, unsigned limit)
+cycle_attr(int ch, unsigned *at_code, attr_t *attr, ATTR_TBL * list, unsigned limit)
{
bool result = TRUE;
@@ -3314,7 +3318,7 @@ slk_test(bool recur GCC_UNUSED)
int c, fmt = 1;
char buf[9];
char *s;
- chtype attr = A_NORMAL;
+ attr_t attr = A_NORMAL;
unsigned at_code = 0;
#if HAVE_SLK_COLOR
int fg = COLOR_BLACK;
@@ -3404,7 +3408,7 @@ slk_test(bool recur GCC_UNUSED)
default:
if (cycle_attr(c, &at_code, &attr, my_list, my_size)) {
- slk_attrset(attr);
+ slk_attrset((chtype) attr);
slk_touch();
slk_noutrefresh();
break;
@@ -3820,7 +3824,7 @@ acs_test(bool recur GCC_UNUSED)
const char *pch_kludge = ((term != 0 && strstr(term, "linux"))
? "p=PC, "
: "");
- chtype attr = A_NORMAL;
+ attr_t attr = A_NORMAL;
int digit = 0;
int repeat = 1;
int fg = COLOR_BLACK;
@@ -4413,7 +4417,7 @@ x_acs_test(bool recur GCC_UNUSED)
if (pending_code) {
_nc_SPRINTF(at_page, _nc_SLIMIT(sizeof(at_page)) "%02x", digit);
} else if (at_page[0] != '\0') {
- _nc_SPRINTF(at_page, _nc_SLIMIT(sizeof(at_page)) "%x", digit);
+ sscanf(at_page, "%x", &digit);
}
break;
default:
@@ -5531,7 +5535,7 @@ panner_legend(int line)
"Number repeats. Toggle legend:? filler:a timer:t scrollmark:s."
};
int n = ((int) SIZEOF(legend) - (LINES - line));
- if (n >= 0) {
+ if (n >= 0 && n < (int) SIZEOF(legend)) {
if (move(line, 0) != ERR) {
if (show_panner_legend)
printw("%s", legend[n]);
@@ -5596,10 +5600,8 @@ panner(WINDOW *pad,
int (*pgetc) (WINDOW *),
bool colored)
{
-#if HAVE_GETTIMEOFDAY
- struct timeval before, after;
+ TimeType before, after;
bool timing = TRUE;
-#endif
bool pan_lines = FALSE;
bool scrollers = TRUE;
int basex = 0;
@@ -5645,13 +5647,11 @@ panner(WINDOW *pad,
pending_pan = FALSE;
break;
-#if HAVE_GETTIMEOFDAY
case 't':
timing = !timing;
if (!timing)
panner_legend(LINES - 1);
break;
-#endif
case 's':
scrollers = !scrollers;
break;
@@ -5824,9 +5824,7 @@ panner(WINDOW *pad,
MvAddCh(porty - 1, portx - 1, ACS_LRCORNER);
if (!pending_pan) {
-#if HAVE_GETTIMEOFDAY
- gettimeofday(&before, 0);
-#endif
+ GetClockTime(&before);
wnoutrefresh(stdscr);
pnoutrefresh(pad,
@@ -5836,17 +5834,12 @@ panner(WINDOW *pad,
portx - (pymax > porty) - 1);
doupdate();
-#if HAVE_GETTIMEOFDAY
-#define TIMEVAL2S(data) ((double) data.tv_sec + ((double) data.tv_usec / 1.0e6))
if (timing) {
- double elapsed;
- gettimeofday(&after, 0);
- elapsed = (TIMEVAL2S(after) - TIMEVAL2S(before));
+ GetClockTime(&after);
move(LINES - 1, COLS - 12);
- printw("Secs: %2.03f", elapsed);
+ printw("Secs: %6.03f", ElapsedSeconds(&before, &after));
refresh();
}
-#endif
}
} while
@@ -6168,7 +6161,6 @@ menu_test(bool recur GCC_UNUSED)
break;
if (c == E_REQUEST_DENIED)
beep();
- continue;
}
MvPrintw(LINES - 2, 0,
@@ -6232,7 +6224,7 @@ tracetrace(unsigned tlevel)
}
_nc_SPRINTF(buf, _nc_SLIMIT(need) "0x%02x = {", tlevel);
if (tlevel == 0) {
- _nc_STRCAT(buf, t_tbl[0].name, need);
+ _nc_STRCAT(buf, t_tbl[0].name ? t_tbl[0].name : "", need);
_nc_STRCAT(buf, ", ", need);
} else {
for (n = 1; t_tbl[n].name != 0; n++)
@@ -6336,8 +6328,9 @@ trace_set(bool recur GCC_UNUSED)
set_item_value(*ip, TRUE);
}
- while (run_trace_menu(m))
- continue;
+ while (run_trace_menu(m)) {
+ /* EMPTY */ ;
+ }
newtrace = 0;
for (ip = menu_items(m); *ip; ip++)
@@ -6376,7 +6369,7 @@ make_label(int frow, int fcol, NCURSES_CONST char *label)
if (f) {
set_field_buffer(f, 0, label);
- set_field_opts(f, (int) ((unsigned) field_opts(f) & ~O_ACTIVE));
+ set_field_opts(f, (int) ((unsigned) field_opts(f) & (unsigned) ~O_ACTIVE));
}
return (f);
}
@@ -7236,11 +7229,11 @@ overlap_test(bool recur GCC_UNUSED)
overlap_test_0(win2, win1);
break;
- case 'c': /* fill window A so it's visible */
+ case 'c': /* fill window A so it is visible */
overlap_test_1(flavor[otBASE_fill], 0, win1, 'A');
break;
- case 'd': /* fill window B so it's visible */
+ case 'd': /* fill window B so it is visible */
overlap_test_1(flavor[otBASE_fill], 1, win2, 'B');
break;
@@ -7436,11 +7429,11 @@ x_overlap_test(bool recur GCC_UNUSED)
overlap_test_0(win2, win1);
break;
- case 'c': /* fill window A so it's visible */
+ case 'c': /* fill window A so it is visible */
x_overlap_test_1(flavor[otBASE_fill], 0, win1, WIDE_A);
break;
- case 'd': /* fill window B so it's visible */
+ case 'd': /* fill window B so it is visible */
x_overlap_test_1(flavor[otBASE_fill], 1, win2, WIDE_B);
break;
@@ -7618,8 +7611,10 @@ settings_test(bool recur GCC_UNUSED)
#if HAVE_COLOR_CONTENT
show_boolean_setting("can_change_color", can_change_color());
#endif
- show_setting_name("LINES"); printw("%d\n", LINES);
- show_setting_name("COLS"); printw("%d\n", COLS);
+ show_setting_name("LINES");
+ printw("%d\n", LINES);
+ show_setting_name("COLS");
+ printw("%d\n", COLS);
Pause();
erase();
stop_curses();
@@ -7633,48 +7628,49 @@ settings_test(bool recur GCC_UNUSED)
****************************************************************************/
static void
-usage(void)
+usage(int ok)
{
static const char *const tbl[] =
{
"Usage: ncurses [options]"
,""
+ ,USAGE_COMMON
,"Options:"
#ifdef NCURSES_VERSION
- ," -a f,b set default-colors (assumed white-on-black)"
- ," -d use default-colors if terminal supports them"
+ ," -a f,b set default-colors (assumed white-on-black)"
+ ," -d use default-colors if terminal supports them"
#endif
#if HAVE_USE_ENV
- ," -E call use_env(FALSE) to ignore $LINES and $COLUMNS"
+ ," -E call use_env(FALSE) to ignore $LINES and $COLUMNS"
#endif
#if USE_SOFTKEYS
- ," -e fmt specify format for soft-keys test (e)"
+ ," -e fmt specify format for soft-keys test (e)"
#endif
#if HAVE_RIPOFFLINE
- ," -f rip-off footer line (can repeat)"
- ," -h rip-off header line (can repeat)"
+ ," -F rip-off footer line (can repeat)"
+ ," -H rip-off header line (can repeat)"
#endif
- ," -m do not use colors"
+ ," -m do not use colors"
#if HAVE_COLOR_CONTENT
- ," -p file rgb values to use in 'd' rather than ncurses's builtin"
+ ," -p file rgb values to use in 'd' rather than ncurses's builtin"
#endif
#if USE_LIBPANEL
- ," -s msec specify nominal time for panel-demo (default: 1, to hold)"
+ ," -s msec specify nominal time for panel-demo (default: 1, to hold)"
#endif
#if defined(NCURSES_VERSION_PATCH) && (NCURSES_VERSION_PATCH >= 20120714) && !defined(_NC_WINDOWS)
- ," -T call use_tioctl(TRUE) to allow SIGWINCH to override environment"
+ ," -T call use_tioctl(TRUE) to allow SIGWINCH to override environment"
#endif
#ifdef TRACE
- ," -t mask specify default trace-level (may toggle with ^T)"
+ ," -t mask specify default trace-level (may toggle with ^T)"
#endif
#if HAVE_COLOR_CONTENT
- ," -x use xterm-compatible control for reading color palette"
+ ," -x use xterm-compatible control for reading color palette"
#endif
};
size_t n;
for (n = 0; n < SIZEOF(tbl); n++)
fprintf(stderr, "%s\n", tbl[n]);
- ExitProgram(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
static void
@@ -7787,7 +7783,7 @@ main_menu(bool top)
int (*doit) (bool);
char command;
- unsigned n;
+ unsigned n;
do {
printf("This is the ncurses main menu (uppercase for wide-characters)\n");
for (n = 0; n < SIZEOF(cmds); ++n) {
@@ -7853,7 +7849,7 @@ main_menu(bool top)
if (doit != NULL && doit(FALSE) == OK) {
/*
- * This may be overkill; it's intended to reset everything back
+ * This may be overkill; it is intended to reset everything back
* to the initial terminal modes so that tests don't get in
* each other's way.
*/
@@ -7881,11 +7877,14 @@ main_menu(bool top)
/*+-------------------------------------------------------------------------
main(argc,argv)
--------------------------------------------------------------------------*/
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
main(int argc, char *argv[])
{
- int c;
+ int ch;
int my_e_param = 1;
#ifdef NCURSES_VERSION_PATCH
#if HAVE_USE_DEFAULT_COLORS
@@ -7905,8 +7904,8 @@ main(int argc, char *argv[])
setlocale(LC_ALL, "");
- while ((c = getopt(argc, argv, "a:dEe:fhmp:s:Tt:x")) != -1) {
- switch (c) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "a:dEe:FHmp:s:Tt:x")) != -1) {
+ switch (ch) {
#ifdef NCURSES_VERSION_PATCH
#if HAVE_USE_DEFAULT_COLORS
#if HAVE_ASSUME_DEFAULT_COLORS
@@ -7936,17 +7935,17 @@ main(int argc, char *argv[])
my_e_param = atoi(optarg);
#ifdef NCURSES_VERSION
if (my_e_param > 3) /* allow extended layouts */
- usage();
+ usage(FALSE);
#else
if (my_e_param > 1)
- usage();
+ usage(FALSE);
#endif
break;
#if HAVE_RIPOFFLINE
- case 'f':
+ case 'F':
ripoffline(-1, rip_footer);
break;
- case 'h':
+ case 'H':
ripoffline(1, rip_header);
break;
#endif /* HAVE_RIPOFFLINE */
@@ -7978,8 +7977,12 @@ main(int argc, char *argv[])
xterm_colors = TRUE;
break;
#endif
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
}
}
diff --git a/test/newdemo.c b/test/newdemo.c
index d76523ab6ffd..78761534d7c5 100644
--- a/test/newdemo.c
+++ b/test/newdemo.c
@@ -2,7 +2,7 @@
* newdemo.c - A demo program using PDCurses. The program illustrate
* the use of colours for text output.
*
- * $Id: newdemo.c,v 1.47 2019/12/14 23:25:29 tom Exp $
+ * $Id: newdemo.c,v 1.48 2022/12/10 23:36:05 tom Exp $
*/
#include <test.priv.h>
@@ -215,17 +215,51 @@ BouncingBalls(WINDOW *win)
return 0;
}
+static void
+usage(int ok)
+{
+ static const char *msg[] =
+ {
+ "Usage: newdemo [options]"
+ ,""
+ ,USAGE_COMMON
+ };
+ size_t n;
+
+ for (n = 0; n < SIZEOF(msg); n++)
+ fprintf(stderr, "%s\n", msg[n]);
+
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
+}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
+
/*
* Main driver
*/
int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+main(int argc, char *argv[])
{
WINDOW *win;
int x, y, i, k;
char buffer[SIZEOF(messages) * 80];
int width, height;
chtype save[80];
+ int ch;
+
+ while ((ch = getopt(argc, argv, OPTS_COMMON)) != -1) {
+ switch (ch) {
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
+ default:
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
+ }
+ }
+ if (optind < argc)
+ usage(FALSE);
setlocale(LC_ALL, "");
diff --git a/test/package/debian-mingw/compat b/test/package/debian-mingw/compat
index f599e28b8ab0..48082f72f087 100644
--- a/test/package/debian-mingw/compat
+++ b/test/package/debian-mingw/compat
@@ -1 +1 @@
-10
+12
diff --git a/test/package/debian-mingw/control b/test/package/debian-mingw/control
index 64bd01b1832d..116103d2018f 100644
--- a/test/package/debian-mingw/control
+++ b/test/package/debian-mingw/control
@@ -2,7 +2,7 @@ Source: ncurses-examples
Maintainer: Thomas E. Dickey <dickey@invisible-island.net>
Section: misc
Priority: optional
-Standards-Version: 3.8.4
+Standards-Version: 4.6.1.0
Build-Depends: debhelper (>= 5)
Homepage: https://invisible-island.net/ncurses/ncurses-examples.html
diff --git a/test/package/debian-mingw/copyright b/test/package/debian-mingw/copyright
index a805a1f67dd2..7546e1cc1f71 100644
--- a/test/package/debian-mingw/copyright
+++ b/test/package/debian-mingw/copyright
@@ -4,13 +4,13 @@ Current ncurses maintainer: Thomas Dickey <dickey@invisible-island.net>
-------------------------------------------------------------------------------
Files: *
-Copyright: 2017-2020,2021 Thomas E. Dickey
+Copyright: 2017-2023,2024 Thomas E. Dickey
Copyright: 1998-2016,2017 Free Software Foundation, Inc.
-Licence: X11
+License: X11
Files: aclocal.m4 package
-Copyright: 2003-2020,2021 by Thomas E. Dickey
-Licence: X11
+Copyright: 2003-2023,2024 by Thomas E. Dickey
+License: X11
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the
@@ -39,7 +39,7 @@ Licence: X11
-------------------------------------------------------------------------------
Files: install-sh
Copyright: 1994 X Consortium
-Licence: X11
+License: X11
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
diff --git a/test/package/debian-mingw/rules b/test/package/debian-mingw/rules
index e61cf71a3fa3..152cd3c77f95 100755
--- a/test/package/debian-mingw/rules
+++ b/test/package/debian-mingw/rules
@@ -70,7 +70,7 @@ install: install-stamp
install-stamp: build-stamp
dh_testdir
dh_testroot
- dh_clean -k
+ dh_prep
dh_installdirs
$(MAKE) install DESTDIR=$(MINGW_TMP)
diff --git a/test/package/debian-mingw64/compat b/test/package/debian-mingw64/compat
index f599e28b8ab0..48082f72f087 100644
--- a/test/package/debian-mingw64/compat
+++ b/test/package/debian-mingw64/compat
@@ -1 +1 @@
-10
+12
diff --git a/test/package/debian-mingw64/control b/test/package/debian-mingw64/control
index c22f262a8bf9..df942b7553e4 100644
--- a/test/package/debian-mingw64/control
+++ b/test/package/debian-mingw64/control
@@ -2,7 +2,7 @@ Source: ncurses-examples
Maintainer: Thomas E. Dickey <dickey@invisible-island.net>
Section: misc
Priority: optional
-Standards-Version: 3.8.4
+Standards-Version: 4.6.1.0
Build-Depends: debhelper (>= 5)
Homepage: https://invisible-island.net/ncurses/ncurses-examples.html
diff --git a/test/package/debian-mingw64/copyright b/test/package/debian-mingw64/copyright
index a805a1f67dd2..7546e1cc1f71 100644
--- a/test/package/debian-mingw64/copyright
+++ b/test/package/debian-mingw64/copyright
@@ -4,13 +4,13 @@ Current ncurses maintainer: Thomas Dickey <dickey@invisible-island.net>
-------------------------------------------------------------------------------
Files: *
-Copyright: 2017-2020,2021 Thomas E. Dickey
+Copyright: 2017-2023,2024 Thomas E. Dickey
Copyright: 1998-2016,2017 Free Software Foundation, Inc.
-Licence: X11
+License: X11
Files: aclocal.m4 package
-Copyright: 2003-2020,2021 by Thomas E. Dickey
-Licence: X11
+Copyright: 2003-2023,2024 by Thomas E. Dickey
+License: X11
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the
@@ -39,7 +39,7 @@ Licence: X11
-------------------------------------------------------------------------------
Files: install-sh
Copyright: 1994 X Consortium
-Licence: X11
+License: X11
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
diff --git a/test/package/debian-mingw64/rules b/test/package/debian-mingw64/rules
index 7db9c5acef1a..02175a66ee5b 100755
--- a/test/package/debian-mingw64/rules
+++ b/test/package/debian-mingw64/rules
@@ -70,7 +70,7 @@ install: install-stamp
install-stamp: build-stamp
dh_testdir
dh_testroot
- dh_clean -k
+ dh_prep
dh_installdirs
$(MAKE) install DESTDIR=$(MINGW_TMP)
diff --git a/test/package/debian/compat b/test/package/debian/compat
index f599e28b8ab0..48082f72f087 100644
--- a/test/package/debian/compat
+++ b/test/package/debian/compat
@@ -1 +1 @@
-10
+12
diff --git a/test/package/debian/control b/test/package/debian/control
index d7647b3fdb8b..89de1b8c5cab 100644
--- a/test/package/debian/control
+++ b/test/package/debian/control
@@ -2,7 +2,7 @@ Source: ncurses-examples
Maintainer: Thomas E. Dickey <dickey@invisible-island.net>
Section: misc
Priority: optional
-Standards-Version: 3.8.4
+Standards-Version: 4.6.1.0
Build-Depends: debhelper (>= 5)
Homepage: https://invisible-island.net/ncurses/ncurses-examples.html
diff --git a/test/package/debian/copyright b/test/package/debian/copyright
index c6873e2c5833..7546e1cc1f71 100644
--- a/test/package/debian/copyright
+++ b/test/package/debian/copyright
@@ -4,13 +4,13 @@ Current ncurses maintainer: Thomas Dickey <dickey@invisible-island.net>
-------------------------------------------------------------------------------
Files: *
-Copyright: 2017-2020,2021 Thomas E. Dickey
+Copyright: 2017-2023,2024 Thomas E. Dickey
Copyright: 1998-2016,2017 Free Software Foundation, Inc.
-Licence: X11
+License: X11
Files: aclocal.m4 package
-Copyright: 2003-2019,2020 by Thomas E. Dickey
-Licence: X11
+Copyright: 2003-2023,2024 by Thomas E. Dickey
+License: X11
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the
@@ -39,7 +39,7 @@ Licence: X11
-------------------------------------------------------------------------------
Files: install-sh
Copyright: 1994 X Consortium
-Licence: X11
+License: X11
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
diff --git a/test/package/debian/rules b/test/package/debian/rules
index 4e6d570ecc88..2cc34f7305ef 100755
--- a/test/package/debian/rules
+++ b/test/package/debian/rules
@@ -74,8 +74,7 @@ config-$(NCURSES_PKG)-stamp:
mkdir -p t/ncurses6
cd t/ncurses6; $(configure) \
- --bindir=\$${prefix}/bin/$(NCURSES_PKG) \
- --datadir=\$${prefix}/share/$(NCURSES_PKG) \
+ --datadir=\$${datarootdir}/$(NCURSES_PKG) \
--with-screen=ncursesw6
touch $@
@@ -87,8 +86,7 @@ config-$(NCURSEST_PKG)-stamp:
mkdir -p t/ncursest6
cd t/ncursest6; $(configure) \
- --bindir=\$${prefix}/bin/$(NCURSEST_PKG) \
- --datadir=\$${prefix}/share/$(NCURSEST_PKG) \
+ --datadir=\$${datarootdir}/$(NCURSEST_PKG) \
--with-screen=ncursestw6
touch $@
@@ -113,7 +111,9 @@ install-$(NCURSES_PKG)-stamp: build-$(NCURSES_PKG)-stamp
dh_installdirs $(verbose)
dh_prep $(verbose) -p$(NCURSES_PKG)
- $(MAKE) -C t/ncurses6 install DESTDIR=$(CURDIR)/debian/$(NCURSES_PKG)
+ $(MAKE) -C t/ncurses6 install \
+ PACKAGE=$(NCURSES_PKG) \
+ DESTDIR=$(CURDIR)/debian/$(NCURSES_PKG)
touch $@
@@ -123,7 +123,9 @@ install-$(NCURSEST_PKG)-stamp: build-$(NCURSEST_PKG)-stamp
dh_installdirs $(verbose)
dh_prep $(verbose) -p$(NCURSEST_PKG)
- $(MAKE) -C t/ncursest6 install DESTDIR=$(CURDIR)/debian/$(NCURSEST_PKG)
+ $(MAKE) -C t/ncursest6 install \
+ PACKAGE=$(NCURSEST_PKG) \
+ DESTDIR=$(CURDIR)/debian/$(NCURSEST_PKG)
touch $@
@@ -151,6 +153,7 @@ ifneq ($(PACKAGES.arch),)
rm -f $(PACKAGES.arch:%=install-%-stamp)
dh_testdir
dh_testroot
+ dh_installdocs $(verbose) $(PACKAGES.arch:%=-p%)
dh_installchangelogs $(verbose) $(PACKAGES.arch:%=-p%) NEWS
dh_strip $(verbose) $(PACKAGES.arch:%=-p%)
dh_compress $(verbose) $(PACKAGES.arch:%=-p%)
diff --git a/test/package/mingw-ncurses-examples.spec b/test/package/mingw-ncurses-examples.spec
index 5758c29097a5..bfadd10e850b 100644
--- a/test/package/mingw-ncurses-examples.spec
+++ b/test/package/mingw-ncurses-examples.spec
@@ -4,14 +4,14 @@ Summary: ncurses-examples - example/test programs from ncurses
%global AppProgram ncurses-examples
%global AppVersion MAJOR.MINOR
%global AppRelease YYYYMMDD
-# $Id: mingw-ncurses-examples.spec,v 1.9 2019/11/23 21:13:52 tom Exp $
+# $Id: mingw-ncurses-examples.spec,v 1.11 2023/02/25 23:10:34 tom Exp $
Name: mingw32-ncurses6-examples
Version: %{AppVersion}
Release: %{AppRelease}
License: X11
Group: Development/Libraries
-Source: ncurses-examples-%{release}.tgz
-# URL: https://invisible-island.net/ncurses/
+URL: https://invisible-island.net/ncurses/%{AppProgram}.html
+Source: https://invisible-island.net/archives/%{AppProgram}/%{AppProgram}-%{release}.tgz
BuildRequires: mingw32-ncurses6
@@ -50,11 +50,14 @@ This package is used for testing ABI 6 with cross-compiles to MinGW.
%prep
# override location of bindir, e.g., to avoid conflict with pdcurses
-%global mingw32_bindir %{mingw32_exec_prefix}/bin/%{AppProgram}
-%global mingw64_bindir %{mingw64_exec_prefix}/bin/%{AppProgram}
+%global mingw32_bindir %{mingw32_exec_prefix}/bin/%{AppProgram}
+%global mingw64_bindir %{mingw64_exec_prefix}/bin/%{AppProgram}
-%global mingw32_datadir %{mingw32_datadir}/%{AppProgram}
-%global mingw64_datadir %{mingw64_datadir}/%{AppProgram}
+%global mingw32_datadir %{mingw32_datadir}/%{AppProgram}
+%global mingw64_datadir %{mingw64_datadir}/%{AppProgram}
+
+%global mingw32_libexec %{mingw32_libexecdir}/%{AppProgram}
+%global mingw64_libexec %{mingw64_libexecdir}/%{AppProgram}
%define CFG_OPTS \\\
--enable-echo \\\
@@ -96,26 +99,24 @@ pushd BUILD-W64
%{mingw64_make} install DESTDIR=$RPM_BUILD_ROOT
popd
-%clean
-if rm -rf $RPM_BUILD_ROOT; then
- echo OK
-else
- find $RPM_BUILD_ROOT -type f | grep -F -v /.nfs && exit 1
-fi
-exit 0
-
-%defattr(-,root,root,-)
-
%files -n mingw32-ncurses6-examples
+%defattr(-,root,root,-)
%{mingw32_bindir}/*
%{mingw32_datadir}/*
+%{mingw32_libexec}/*
%files -n mingw64-ncurses6-examples
+%defattr(-,root,root,-)
%{mingw64_bindir}/*
%{mingw64_datadir}/*
+%{mingw64_libexec}/*
%changelog
+* Sat Feb 25 2023 Thomas Dickey
+- use libexecdir for programs rather than subdir of bindir
+- amend URLs per rpmlint
+
* Sat Nov 16 2019 Thomas Dickey
- modify clean-rule to work around Fedora NFS bugs.
diff --git a/test/package/ncurses-examples.spec b/test/package/ncurses-examples.spec
index d2b5a84e7e8b..8f1a3cbe52d1 100644
--- a/test/package/ncurses-examples.spec
+++ b/test/package/ncurses-examples.spec
@@ -3,15 +3,14 @@ Summary: example/test programs from ncurses
%global AltProgram ncursest-examples
%global AppVersion MAJOR.MINOR
%global AppRelease YYYYMMDD
-# $Id: ncurses-examples.spec,v 1.16 2019/11/23 21:11:34 tom Exp $
+# $Id: ncurses-examples.spec,v 1.22 2023/02/25 23:10:49 tom Exp $
Name: %{AppProgram}
Version: %{AppVersion}
Release: %{AppRelease}
License: MIT
Group: Applications/Development
-URL: ftp://ftp.invisible-island.net/%{AppProgram}
-Source0: %{AppProgram}-%{AppRelease}.tgz
-Packager: Thomas Dickey <dickey@invisible-island.net>
+URL: https://invisible-island.net/ncurses/%{AppProgram}.html
+Source: https://invisible-island.net/archives/%{AppProgram}/%{AppProgram}-%{release}.tgz
%description
These are the example/test programs from the ncurses MAJOR.MINOR distribution,
@@ -50,8 +49,7 @@ CONFIGURE_TOP=%{my_srcdir} \
%configure \
--target %{_target_platform} \
--prefix=%{_prefix} \
- --bindir=%{_bindir}/%{AppProgram} \
- --datadir=%{_datadir}/%{AppProgram} \
+ --datadir=%{_datarootdir}/%{AppProgram} \
--with-screen=ncursesw6dev \
--disable-rpath-hack
@@ -66,8 +64,7 @@ CONFIGURE_TOP=%{my_srcdir} \
%configure \
--target %{_target_platform} \
--prefix=%{_prefix} \
- --bindir=%{_bindir}/%{AltProgram} \
- --datadir=%{_datadir}/%{AltProgram} \
+ --datadir=%{_datarootdir}/%{AltProgram} \
--with-screen=ncursestw6dev \
--disable-rpath-hack
@@ -78,34 +75,34 @@ popd
[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
pushd BUILD-%{AppProgram}
-make install DESTDIR=$RPM_BUILD_ROOT
+make install PACKAGE=%{AppProgram} DESTDIR=$RPM_BUILD_ROOT
popd
pushd BUILD-%{AltProgram}
-make install DESTDIR=$RPM_BUILD_ROOT
+make install PACKAGE=%{AltProgram} DESTDIR=$RPM_BUILD_ROOT
popd
-%clean
-if rm -rf $RPM_BUILD_ROOT; then
- echo OK
-else
- find $RPM_BUILD_ROOT -type f | grep -F -v /.nfs && exit 1
-fi
-exit 0
-
%files -n %{AppProgram}
%defattr(-,root,root)
-%{_bindir}/%{AppProgram}/*
-%{_datadir}/%{AppProgram}/*
+%{_bindir}/%{AppProgram}
+%{_libexecdir}/%{AppProgram}/*
+%{_datarootdir}/%{AppProgram}/*
%files -n %{AltProgram}
%defattr(-,root,root)
-%{_bindir}/%{AltProgram}/*
-%{_datadir}/%{AltProgram}/*
+%{_bindir}/%{AltProgram}
+%{_libexecdir}/%{AltProgram}/*
+%{_datarootdir}/%{AltProgram}/*
%changelog
# each patch should add its ChangeLog entries here
+* Sat Feb 25 2023 Thomas Dickey
+- amend URLs per rpmlint
+
+* Sat Dec 18 2021 Thomas Dickey
+- use libexecdir for programs rather than subdir of bindir
+
* Sat Nov 16 2019 Thomas Dickey
- modify clean-rule to work around Fedora NFS bugs.
diff --git a/test/padview.c b/test/padview.c
index 6917e0ed6eb6..0defee3430e0 100644
--- a/test/padview.c
+++ b/test/padview.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2021,2022 Thomas E. Dickey *
* Copyright 2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -29,7 +29,7 @@
/*
* clone of view.c, using pads
*
- * $Id: padview.c,v 1.16 2020/02/02 23:34:34 tom Exp $
+ * $Id: padview.c,v 1.22 2022/12/04 00:40:11 tom Exp $
*/
#include <test.priv.h>
@@ -41,10 +41,11 @@
#if HAVE_NEWPAD
-static void finish(int sig) GCC_NORETURN;
+static GCC_NORETURN void finish(int sig);
#define my_pair 1
+static WINDOW *global_pad;
static int shift = 0;
static bool try_color = FALSE;
@@ -55,8 +56,6 @@ static int num_lines;
static bool n_option = FALSE;
#endif
-static void usage(void) GCC_NORETURN;
-
static void
failed(const char *msg)
{
@@ -69,6 +68,8 @@ static void
finish(int sig)
{
endwin();
+ if (global_pad != NULL)
+ delwin(global_pad);
ExitProgram(sig != 0 ? EXIT_FAILURE : EXIT_SUCCESS);
}
@@ -144,9 +145,12 @@ read_file(const char *filename)
}
len = fread(my_blob, sizeof(char), (size_t) sb.st_size, fp);
- my_blob[sb.st_size] = '\0';
fclose(fp);
+ if (len > (size_t) sb.st_size)
+ len = (size_t) sb.st_size;
+ my_blob[len] = '\0';
+
for (pass = 0; pass < 2; ++pass) {
char *base = my_blob;
k = 0;
@@ -160,12 +164,19 @@ read_file(const char *filename)
++k;
}
}
+ if (base != (my_blob + j)) {
+ if (pass)
+ my_vec[k] = base;
+ ++k;
+ }
num_lines = k;
- if (base != (my_blob + j))
- ++num_lines;
- if (!pass &&
- ((my_vec = typeCalloc(char *, (size_t) k + 2)) == 0)) {
- failed("cannot allocate line-vector #1");
+ if (pass == 0) {
+ if (((my_vec = typeCalloc(char *, (size_t) k + 2)) == 0)) {
+ failed("cannot allocate line-vector #1");
+ }
+ } else {
+ if (my_vec[0] == NULL)
+ my_vec[0] = my_blob;
}
}
@@ -237,12 +248,13 @@ read_file(const char *filename)
}
static void
-usage(void)
+usage(int ok)
{
static const char *msg[] =
{
"Usage: view [options] file"
,""
+ ,USAGE_COMMON
,"Options:"
," -c use color if terminal supports it"
," -i ignore INT, QUIT, TERM signals"
@@ -258,8 +270,11 @@ usage(void)
size_t n;
for (n = 0; n < SIZEOF(msg); n++)
fprintf(stderr, "%s\n", msg[n]);
- ExitProgram(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
main(int argc, char *argv[])
@@ -289,6 +304,7 @@ main(int argc, char *argv[])
0
};
+ int ch;
int i;
int my_delay = 0;
WINDOW *my_pad;
@@ -302,8 +318,8 @@ main(int argc, char *argv[])
setlocale(LC_ALL, "");
- while ((i = getopt(argc, argv, "cinstT:")) != -1) {
- switch (i) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "cinstT:")) != -1) {
+ switch (ch) {
case 'c':
try_color = TRUE;
break;
@@ -324,7 +340,7 @@ main(int argc, char *argv[])
char *next = 0;
int tvalue = (int) strtol(optarg, &next, 0);
if (tvalue < 0 || (next != 0 && *next != 0))
- usage();
+ usage(FALSE);
curses_trace((unsigned) tvalue);
}
break;
@@ -332,12 +348,16 @@ main(int argc, char *argv[])
curses_trace(TRACE_CALLS);
break;
#endif
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
}
}
if (optind + 1 != argc)
- usage();
+ usage(FALSE);
InitAndCatch(initscr(), ignore_sigs ? SIG_IGN : finish);
keypad(stdscr, TRUE); /* enable keyboard mapping */
@@ -362,7 +382,8 @@ main(int argc, char *argv[])
* Do this after starting color, otherwise the pad's background will be
* uncolored after the ncurses 6.1.20181208 fixes.
*/
- my_pad = read_file(fname = argv[optind]);
+ global_pad =
+ my_pad = read_file(fname = argv[optind]);
my_row = 0;
while (!done) {
diff --git a/test/pair_content.c b/test/pair_content.c
index fc5926b50386..2b759a82466d 100644
--- a/test/pair_content.c
+++ b/test/pair_content.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2022,2023 Thomas E. Dickey *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
@@ -26,7 +26,7 @@
* authorization. *
****************************************************************************/
/*
- * $Id: pair_content.c,v 1.14 2020/02/02 23:34:34 tom Exp $
+ * $Id: pair_content.c,v 1.22 2023/02/25 16:43:56 tom Exp $
*/
#define NEED_TIME_H
@@ -57,10 +57,15 @@ static int x_opt;
static MYPAIR *expected;
-#if HAVE_GETTIMEOFDAY
-static struct timeval initial_time;
-static struct timeval finish_time;
-#endif
+static TimeType initial_time;
+static TimeType finish_time;
+
+static GCC_NORETURN void
+finish(int code)
+{
+ free(expected);
+ ExitProgram(code);
+}
static void
failed(const char *msg)
@@ -68,7 +73,7 @@ failed(const char *msg)
printw("%s", msg);
getch();
endwin();
- ExitProgram(EXIT_FAILURE);
+ finish(EXIT_FAILURE);
}
#if USE_EXTENDED_COLOR
@@ -115,6 +120,7 @@ random_color(void)
static void
setup_test(void)
{
+ setlocale(LC_ALL, "");
initscr();
cbreak();
noecho();
@@ -163,9 +169,7 @@ setup_test(void)
} else {
failed("This demo requires a color terminal");
}
-#if HAVE_GETTIMEOFDAY
- gettimeofday(&initial_time, 0);
-#endif
+ GetClockTime(&initial_time);
}
static void
@@ -198,23 +202,14 @@ finish_test(void)
endwin();
}
-#if HAVE_GETTIMEOFDAY
-static double
-seconds(struct timeval *mark)
-{
- double result = (double) mark->tv_sec;
- result += ((double) mark->tv_usec / 1e6);
- return result;
-}
-#endif
-
static void
-usage(void)
+usage(int ok)
{
static const char *msg[] =
{
"Usage: pair_content [options]"
,""
+ ,USAGE_COMMON
,"Options:"
," -f PAIR first color pair to test (default: 1)"
," -i interactive, showing test-progress"
@@ -230,26 +225,29 @@ usage(void)
size_t n;
for (n = 0; n < SIZEOF(msg); n++)
fprintf(stderr, "%s\n", msg[n]);
- ExitProgram(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+main(int argc, char *argv[])
{
- int i;
+ int ch;
- while ((i = getopt(argc, argv, "f:il:npr:sx")) != -1) {
- switch (i) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "f:il:npr:sx")) != -1) {
+ switch (ch) {
case 'f':
if ((f_opt = atoi(optarg)) <= 0)
- usage();
+ usage(FALSE);
break;
case 'i':
i_opt = 1;
break;
case 'l':
if ((l_opt = atoi(optarg)) <= 0)
- usage();
+ usage(FALSE);
break;
case 'n':
n_opt = 1;
@@ -259,7 +257,7 @@ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
break;
case 'r':
if ((r_opt = atoi(optarg)) <= 0)
- usage();
+ usage(FALSE);
break;
case 's':
s_opt = 1;
@@ -269,17 +267,22 @@ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
x_opt = 1;
break;
#endif
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
}
}
if (optind < argc)
- usage();
+ usage(FALSE);
if (r_opt <= 0)
r_opt = 1;
setup_test();
if (p_opt) {
+ int i;
endwin();
for (i = f_opt; i < l_opt; ++i) {
my_color_t fg, bg;
@@ -304,14 +307,10 @@ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
addch('\n');
}
printw("DONE: ");
-#if HAVE_GETTIMEOFDAY
- gettimeofday(&finish_time, 0);
- printw("%.03f seconds",
- seconds(&finish_time)
- - seconds(&initial_time));
-#endif
+ GetClockTime(&finish_time);
+ printw("%.03f seconds", ElapsedSeconds(&initial_time, &finish_time));
finish_test();
}
- ExitProgram(EXIT_SUCCESS);
+ finish(EXIT_SUCCESS);
}
diff --git a/test/picsmap.c b/test/picsmap.c
index a2e4c430e03c..b582f3aada5d 100644
--- a/test/picsmap.c
+++ b/test/picsmap.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2022,2023 Thomas E. Dickey *
* Copyright 2017,2018 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,7 +27,7 @@
* authorization. *
****************************************************************************/
/*
- * $Id: picsmap.c,v 1.135 2020/12/26 18:04:03 tom Exp $
+ * $Id: picsmap.c,v 1.149 2023/04/23 23:20:37 tom Exp $
*
* Author: Thomas E. Dickey
*
@@ -53,13 +53,6 @@
#include <sys/types.h>
#include <sys/stat.h>
-#if HAVE_STDINT_H
-#include <stdint.h>
-#define my_intptr_t intptr_t
-#else
-#define my_intptr_t long
-#endif
-
#if HAVE_TSEARCH
#include <search.h>
#endif
@@ -109,7 +102,7 @@ typedef struct {
#define debugmsg if (debugging) logmsg
#define debugmsg2 if (debugging) logmsg2
-static void cleanup(int) GCC_NORETURN;
+static GCC_NORETURN void cleanup(int);
static void giveup(const char *fmt, ...) GCC_PRINTFLIKE(1, 2);
static void logmsg(const char *fmt, ...) GCC_PRINTFLIKE(1, 2);
static void logmsg2(const char *fmt, ...) GCC_PRINTFLIKE(1, 2);
@@ -487,27 +480,28 @@ read_file(const char *filename)
}
static void
-usage(void)
+usage(int ok)
{
static const char *msg[] =
{
"Usage: picsmap [options] [imagefile [...]]"
,"Read/display one or more xbm/xpm files (possibly use \"convert\")"
,""
+ ,USAGE_COMMON
,"Options:"
- ," -a ratio aspect-ratio correction for ImageMagick"
+ ," -a ratio aspect-ratio correction for ImageMagick"
#if HAVE_USE_DEFAULT_COLORS
- ," -d invoke use_default_colors"
+ ," -d invoke use_default_colors"
#endif
- ," -L add debugging information to logfile"
- ," -l logfile write informational messages to logfile"
- ," -p palette color-palette file (default \"$TERM.dat\")"
- ," -q less verbose"
- ," -r rgb-path xpm uses X rgb color-names (default \"" RGB_PATH "\")"
- ," -s SECS pause for SECS seconds after display vs getch"
+ ," -L add debugging information to logfile"
+ ," -l FILE write informational messages to FILE"
+ ," -p FILE color-palette file (default \"$TERM.dat\")"
+ ," -q less verbose"
+ ," -r FILE xpm uses X rgb color-names in FILE (default \"" RGB_PATH "\")"
+ ," -s SECS pause for SECS seconds after display vs getch"
#if USE_EXTENDED_COLORS
- ," -x [pc] use extension (p=extended-pairs, c=extended-colors)"
- ," Either/both extension may be given"
+ ," -x [pc] use extension (p=extended-pairs, c=extended-colors)"
+ ," Either/both extension may be given"
#endif
};
size_t n;
@@ -517,7 +511,7 @@ usage(void)
fflush(stdout);
for (n = 0; n < SIZEOF(msg); n++)
fprintf(stderr, "%s\n", msg[n]);
- cleanup(EXIT_FAILURE);
+ cleanup(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
static void
@@ -541,7 +535,7 @@ giveup(const char *fmt, ...)
fflush(logfp);
}
- usage();
+ usage(FALSE);
}
/*
@@ -604,7 +598,6 @@ read_palette(const char *filename)
continue;
}
}
- s += strlen(s);
if (tries & 2) {
int len = (int) strlen(filename);
@@ -798,6 +791,7 @@ match_c(const char *source, const char *pattern, ...)
int ch;
int *ip;
char *cp;
+ float *fp;
long lv;
va_start(ap, pattern);
@@ -811,10 +805,13 @@ match_c(const char *source, const char *pattern, ...)
continue;
}
/* %c, %d, %s are like sscanf except for special treatment of blanks */
- if (ch == '%' && *pattern != '\0' && strchr("cdnsx", *pattern)) {
+ if (ch == '%' && *pattern != '\0' && strchr("%cdnfsx", *pattern)) {
bool found = FALSE;
ch = *pattern++;
switch (ch) {
+ case '%':
+ source++;
+ break;
case 'c':
cp = va_arg(ap, char *);
do {
@@ -833,6 +830,29 @@ match_c(const char *source, const char *pattern, ...)
goto finish;
}
break;
+ case 'f':
+ /* floating point for pixels... */
+ fp = va_arg(ap, float *);
+ lv = strtol(source, &cp, 10);
+ if (cp == 0 || cp == source)
+ goto finish;
+ *fp = (float) lv;
+ source = cp;
+ if (*source == '.') {
+ lv = strtol(++source, &cp, 10);
+ if (cp == 0 || cp == source)
+ goto finish;
+ {
+ float scale = 1.0f;
+ int digits = (int) (cp - source);
+ while (digits-- > 0) {
+ scale *= 10.0f;
+ }
+ *fp += (float) lv / scale;
+ }
+ source = cp;
+ }
+ break;
case 'n':
/* not really sscanf... */
limit = *va_arg(ap, int *);
@@ -990,7 +1010,7 @@ parse_xbm(char **data)
{
int n;
int state = 0;
- char buf[BUFSIZ];
+ char buf[2048];
int num;
char ch;
char *s;
@@ -1015,7 +1035,7 @@ parse_xbm(char **data)
case 0:
case 1:
case 2:
- if (sscanf(s, "#define %s %d%c", buf, &num, &ch) >= 2) {
+ if (sscanf(s, "#define %1024s %d%c", buf, &num, &ch) >= 2) {
if ((t = strstr(buf, "_width")) != 0) {
state |= 1;
result->wide = (short) bytes_of(num);
@@ -1036,7 +1056,7 @@ parse_xbm(char **data)
}
break;
case 3:
- if (sscanf(s, "static char %[^_ ]_bits[]%c", buf, &ch) >= 1) {
+ if (sscanf(s, "static char %1024[^_ ]_bits[]%c", buf, &ch) >= 1) {
if (strcmp(result->name, buf)) {
goto finish;
}
@@ -1347,11 +1367,16 @@ parse_img(const char *filename)
break;
}
} else {
- /* subsequent lines begin "col,row: (r,g,b,a) #RGB" */
+ /*
+ * subsequent lines begin "col,row: (r,g,b,a) #RGB".
+ * Those r/g/b could be integers (0..255) or float-percentages.
+ */
int r, g, b, nocolor;
+ float rf, gf, bf;
unsigned check;
char *t;
char *s = t = strchr(buffer, '#');
+ bool matched = FALSE;
if (s != 0) {
/* after the "#RGB", there are differences - just ignore */
@@ -1359,19 +1384,44 @@ parse_img(const char *filename)
++s;
*++s = '\0';
}
+
if (match_c(buffer,
"%d,%d: (%d,%d,%d,%d) #%x ",
&col, &row,
&r, &g, &b, &nocolor,
&check)) {
+ matched = TRUE;
+ } else if (match_c(buffer,
+ "%d,%d: (%f%%,%f%%,%f%%,%d) #%x ",
+ &col, &row,
+ &rf, &gf, &bf, &nocolor,
+ &check) ||
+ match_c(buffer,
+ "%d,%d: (%f%%,%f%%,%f%%) #%x ",
+ &col, &row,
+ &rf, &gf, &bf,
+ &check)) {
+ matched = TRUE;
+
+#define fp_fix(n) (int) (MaxRGB * (((n) > 100.0 ? 100.0 : (n)) / 100.0))
+
+ r = fp_fix(rf);
+ g = fp_fix(gf);
+ b = fp_fix(bf);
+ }
+ if ((s - t) > 8) /* 6 hex digits vs 8 */
+ check /= 256;
+ if (matched) {
int which, c;
+ int want_r = (check >> 16) & 0xff;
+ int want_g = (check >> 8) & 0xff;
+ int want_b = (check >> 0) & 0xff;
- if ((s - t) > 8) /* 6 hex digits vs 8 */
- check /= 256;
- if (r > MaxRGB ||
- g > MaxRGB ||
- b > MaxRGB ||
- check != (unsigned) ((r << 16) | (g << 8) | b)) {
+#define fp_err(tst,ref) ((tst > MaxRGB) || ((tst - ref)*(tst - ref)) > 4)
+
+ if (fp_err(r, want_r) ||
+ fp_err(g, want_g) ||
+ fp_err(b, want_b)) {
okay = FALSE;
break;
}
@@ -1471,6 +1521,7 @@ init_display(const char *palette_path, int opt_d)
(void) opt_d;
if (isatty(fileno(stdout))) {
in_curses = TRUE;
+ setlocale(LC_ALL, "");
initscr();
cbreak();
noecho();
@@ -1666,24 +1717,27 @@ report_colors(PICS_HEAD * pics)
}
}
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
main(int argc, char *argv[])
{
- int n;
+ int ch;
int opt_d = FALSE;
char ignore_ch;
const char *palette_path = 0;
const char *rgb_path = RGB_PATH;
- while ((n = getopt(argc, argv, "a:dLl:p:qr:s:x:")) != -1) {
- switch (n) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "a:dLl:p:qr:s:x:")) != -1) {
+ switch (ch) {
case 'a':
if (sscanf(optarg, "%lf%c", &aspect_ratio, &ignore_ch) != 1
|| aspect_ratio < 0.1
|| aspect_ratio > 10.) {
fprintf(stderr, "Expected a number in [0.1 to 10.]: %s\n", optarg);
- usage();
+ usage(FALSE);
}
break;
#if HAVE_USE_DEFAULT_COLORS
@@ -1723,21 +1777,25 @@ main(int argc, char *argv[])
use_extended_colors = TRUE;
break;
default:
- usage();
+ usage(FALSE);
break;
}
}
}
break;
#endif
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
- break;
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
}
}
if (optind < argc) {
char **rgb_data = read_file(rgb_path);
+ int n;
if (rgb_data)
rgb_table = parse_rgb(rgb_data);
@@ -1770,7 +1828,7 @@ main(int argc, char *argv[])
free(rgb_table);
free(all_colors);
} else {
- usage();
+ usage(FALSE);
}
cleanup(EXIT_SUCCESS);
diff --git a/test/picsmap.h b/test/picsmap.h
index bdeb3c31471f..fc790a941c0a 100644
--- a/test/picsmap.h
+++ b/test/picsmap.h
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -30,7 +30,7 @@
/****************************************************************************
* Author: Thomas E. Dickey *
****************************************************************************/
-/* $Id: picsmap.h,v 1.4 2020/02/02 23:34:34 tom Exp $ */
+/* $Id: picsmap.h,v 1.5 2021/04/24 23:25:17 tom Exp $ */
#ifndef PICSMAP_H_INCL
#define PICSMAP_H_INCL 1
@@ -68,8 +68,4 @@ typedef struct {
short blue;
} RGB_DATA;
-static void init_display(const char *, int);
-
-static void show_picture(PICS_HEAD * pics);
-
#endif /* PICSMAP_H_INCL */
diff --git a/test/popup_msg.c b/test/popup_msg.c
index 5c0e5bad0989..09eff5e39430 100644
--- a/test/popup_msg.c
+++ b/test/popup_msg.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2020,2021 Thomas E. Dickey *
* Copyright 2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,7 +27,7 @@
* authorization. *
****************************************************************************/
/*
- * $Id: popup_msg.c,v 1.10 2020/02/02 23:34:34 tom Exp $
+ * $Id: popup_msg.c,v 1.11 2021/12/18 21:19:19 tom Exp $
*
* Show a multi-line message in a window which may extend beyond the screen.
*
@@ -87,7 +87,7 @@ popup_msg(WINDOW *parent, const char *const *msg)
if ((help = newwin(high, wide, y0, x0)) == 0)
return;
- if ((data = newpad(length + 1, width)) == 0) {
+ if ((data = newpad(length + 1, width + 1)) == 0) {
delwin(help);
return;
}
diff --git a/test/programs b/test/programs
index 8b0908332701..16ecf810391e 100644
--- a/test/programs
+++ b/test/programs
@@ -1,6 +1,6 @@
-# $Id: programs,v 1.48 2021/02/13 16:33:51 tom Exp $
+# $Id: programs,v 1.57 2023/11/10 11:48:38 tom Exp $
##############################################################################
-# Copyright 2018-2020,2021 Thomas E. Dickey #
+# Copyright 2018-2022,2023 Thomas E. Dickey #
# Copyright 2006-2016,2017 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -40,6 +40,7 @@ chgat $(LDFLAGS_CURSES) $(LOCAL_LIBS) chgat popup_msg
clip_printw $(LDFLAGS_CURSES) $(LOCAL_LIBS) clip_printw popup_msg
color_content $(LDFLAGS_CURSES) $(LOCAL_LIBS) color_content
color_set $(LDFLAGS_CURSES) $(LOCAL_LIBS) color_set
+combine $(LDFLAGS_CURSES) $(LOCAL_LIBS) combine dump_window popup_msg
demo_altkeys $(LDFLAGS_CURSES) $(LOCAL_LIBS) demo_altkeys
demo_defkey $(LDFLAGS_CURSES) $(LOCAL_LIBS) demo_defkey
demo_forms $(LDFLAGS_DEFAULT) $(LOCAL_LIBS) demo_forms edit_field popup_msg
@@ -65,7 +66,7 @@ firstlast $(LDFLAGS_DEFAULT) $(LOCAL_LIBS) firstlast
foldkeys $(LDFLAGS_CURSES) $(LOCAL_LIBS) foldkeys
form_driver_w $(LDFLAGS_DEFAULT) $(LOCAL_LIBS) form_driver_w popup_msg
gdc $(LDFLAGS_CURSES) $(LOCAL_LIBS) gdc
-hanoi $(LDFLAGS_CURSES) $(LOCAL_LIBS) hanoi
+hanoi $(LDFLAGS_CURSES_M) $(LOCAL_LIBS) hanoi
hashtest $(LDFLAGS_CURSES) $(LOCAL_LIBS) hashtest
inch_wide $(LDFLAGS_CURSES) $(LOCAL_LIBS) inch_wide popup_msg
inchs $(LDFLAGS_CURSES) $(LOCAL_LIBS) inchs popup_msg
@@ -89,21 +90,25 @@ rain $(LDFLAGS_THREADS) $(LOCAL_LIBS) rain popup_msg
redraw $(LDFLAGS_CURSES) $(LOCAL_LIBS) redraw popup_msg
savescreen $(LDFLAGS_CURSES) $(LOCAL_LIBS) savescreen popup_msg
sp_tinfo $(LDFLAGS_TINFO) $(LOCAL_LIBS) sp_tinfo
-tclock $(LDFLAGS_CURSES) $(LOCAL_LIBS) tclock
+tclock $(LDFLAGS_CURSES_M) $(LOCAL_LIBS) tclock
test_add_wchstr $(LDFLAGS_CURSES) $(LOCAL_LIBS) test_add_wchstr
test_addchstr $(LDFLAGS_CURSES) $(LOCAL_LIBS) test_addchstr
test_addstr $(LDFLAGS_CURSES) $(LOCAL_LIBS) test_addstr
test_addwstr $(LDFLAGS_CURSES) $(LOCAL_LIBS) test_addwstr
test_arrays $(LDFLAGS_TINFO) $(LOCAL_LIBS) test_arrays
+test_delwin $(LDFLAGS_CURSES) $(LOCAL_LIBS) test_delwin
+test_endwin $(LDFLAGS_CURSES) $(LOCAL_LIBS) test_endwin
test_get_wstr $(LDFLAGS_CURSES) $(LOCAL_LIBS) test_get_wstr popup_msg
test_getstr $(LDFLAGS_CURSES) $(LOCAL_LIBS) test_getstr popup_msg
test_instr $(LDFLAGS_CURSES) $(LOCAL_LIBS) test_instr
test_inwstr $(LDFLAGS_CURSES) $(LOCAL_LIBS) test_inwstr
+test_mouse $(LDFLAGS_CURSES) $(LOCAL_LIBS) test_mouse
test_opaque $(LDFLAGS_CURSES) $(LOCAL_LIBS) test_opaque
test_setupterm $(LDFLAGS_CURSES) $(LOCAL_LIBS) test_setupterm
test_sgr $(LDFLAGS_TINFO) $(LOCAL_LIBS) test_sgr
test_termattrs $(LDFLAGS_CURSES) $(LOCAL_LIBS) test_termattrs
test_tparm $(LDFLAGS_TINFO) $(LOCAL_LIBS) test_tparm
+test_unget_wch $(LDFLAGS_CURSES) $(LOCAL_LIBS) test_unget_wch
test_vid_puts $(LDFLAGS_CURSES) $(LOCAL_LIBS) test_vid_puts
test_vidputs $(LDFLAGS_CURSES) $(LOCAL_LIBS) test_vidputs
testaddch $(LDFLAGS_CURSES) $(LOCAL_LIBS) testaddch
diff --git a/test/railroad.c b/test/railroad.c
index 3336f5659539..4d7c0700de5f 100644
--- a/test/railroad.c
+++ b/test/railroad.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2020,2022 Thomas E. Dickey *
* Copyright 2000-2013,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -30,7 +30,7 @@
/*
* Author: Thomas E. Dickey - 2000
*
- * $Id: railroad.c,v 1.25 2020/09/05 21:43:37 tom Exp $
+ * $Id: railroad.c,v 1.26 2022/12/11 00:12:13 tom Exp $
*
* A simple demo of the termcap interface.
*/
@@ -235,11 +235,44 @@ railroad(char **args)
}
}
+static void
+usage(int ok)
+{
+ static const char *msg[] =
+ {
+ "Usage: railroad [options]"
+ ,""
+ ,USAGE_COMMON
+ };
+ size_t n;
+
+ for (n = 0; n < SIZEOF(msg); n++)
+ fprintf(stderr, "%s\n", msg[n]);
+
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
+}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
+
int
main(int argc, char *argv[])
{
- if (argc > 1) {
- railroad(argv + 1);
+ int ch;
+
+ while ((ch = getopt(argc, argv, OPTS_COMMON)) != -1) {
+ switch (ch) {
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
+ default:
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
+ }
+ }
+
+ if (optind < argc) {
+ railroad(argv + optind);
} else {
static char world[] = "Hello World";
static char *hello[] =
@@ -251,8 +284,7 @@ main(int argc, char *argv[])
#else
int
-main(int argc GCC_UNUSED,
- char *argv[]GCC_UNUSED)
+main(void)
{
printf("This program requires termcap\n");
exit(EXIT_FAILURE);
diff --git a/test/rain.c b/test/rain.c
index 4c3568cffcda..1b1d81a05bcb 100644
--- a/test/rain.c
+++ b/test/rain.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2020,2022 Thomas E. Dickey *
* Copyright 1998-2014,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,7 +27,7 @@
* authorization. *
****************************************************************************/
/*
- * $Id: rain.c,v 1.52 2020/08/29 16:22:03 juergen Exp $
+ * $Id: rain.c,v 1.57 2022/12/04 00:40:11 tom Exp $
*/
#include <test.priv.h>
#include <popup_msg.h>
@@ -57,6 +57,7 @@ typedef struct DATA {
#ifdef USE_PTHREADS
pthread_cond_t cond_next_drop;
+pthread_mutex_t mutex_drop_data;
pthread_mutex_t mutex_next_drop;
static int used_threads;
@@ -200,7 +201,7 @@ draw_part(void (*func) (DATA *), int state, DATA * data)
static int
put_next_drop(void)
{
- pthread_cond_signal(&cond_next_drop);
+ pthread_cond_broadcast(&cond_next_drop);
pthread_mutex_unlock(&mutex_next_drop);
return 0;
@@ -246,7 +247,9 @@ draw_drop(void *arg)
* to the data which it uses for setting up this thread (but it has
* been modified to use different coordinates).
*/
+ pthread_mutex_lock(&mutex_drop_data);
mydata = *(DATA *) arg;
+ pthread_mutex_unlock(&mutex_drop_data);
draw_part(part1, 0, &mydata);
draw_part(part2, 1, &mydata);
@@ -254,6 +257,7 @@ draw_drop(void *arg)
draw_part(part4, 3, &mydata);
draw_part(part5, 4, &mydata);
draw_part(part6, 0, &mydata);
+
} while (get_next_drop());
return NULL;
@@ -298,12 +302,13 @@ get_input(void)
}
static void
-usage(void)
+usage(int ok)
{
static const char *msg[] =
{
"Usage: rain [options]"
,""
+ ,USAGE_COMMON
,"Options:"
#if HAVE_USE_DEFAULT_COLORS
," -d invoke use_default_colors"
@@ -314,8 +319,11 @@ usage(void)
for (n = 0; n < SIZEOF(msg); n++)
fprintf(stderr, "%s\n", msg[n]);
- ExitProgram(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
main(int argc, char *argv[])
@@ -341,20 +349,23 @@ main(int argc, char *argv[])
bool d_option = FALSE;
#endif
- while ((ch = getopt(argc, argv, "d")) != -1) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "d")) != -1) {
switch (ch) {
#if HAVE_USE_DEFAULT_COLORS
case 'd':
d_option = TRUE;
break;
#endif
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
+ usage(ch == OPTS_USAGE);
/* NOTREACHED */
}
}
if (optind < argc)
- usage();
+ usage(FALSE);
setlocale(LC_ALL, "");
@@ -374,7 +385,9 @@ main(int argc, char *argv[])
curs_set(0);
timeout(0);
-#ifndef USE_PTHREADS
+#ifdef USE_PTHREADS
+ pthread_mutex_init(&mutex_drop_data, NULL);
+#else /* !USE_PTHREADS */
for (j = MAX_DROP; --j >= 0;) {
last[j].x = random_x();
last[j].y = random_y();
@@ -383,14 +396,21 @@ main(int argc, char *argv[])
#endif
while (!done) {
+#ifdef USE_PTHREADS
+ pthread_mutex_lock(&mutex_drop_data);
+
drop.x = random_x();
drop.y = random_y();
-#ifdef USE_PTHREADS
if (start_drop(&drop) != 0) {
beep();
}
+
+ pthread_mutex_unlock(&mutex_drop_data);
#else
+ drop.x = random_x();
+ drop.y = random_y();
+
/*
* The non-threaded code draws parts of each drop on each loop.
*/
diff --git a/test/redraw.c b/test/redraw.c
index 569c2769a98d..749f790b3fd3 100644
--- a/test/redraw.c
+++ b/test/redraw.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020-2021,2022 Thomas E. Dickey *
* Copyright 2006-2012,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,7 +27,7 @@
* authorization. *
****************************************************************************/
/*
- * $Id: redraw.c,v 1.11 2020/02/02 23:34:34 tom Exp $
+ * $Id: redraw.c,v 1.17 2022/12/10 22:28:50 tom Exp $
*
* Demonstrate the redrawwin() and wredrawln() functions.
* Thomas Dickey - 2006/11/4
@@ -82,7 +82,6 @@ test_redraw(WINDOW *win)
WINDOW *win1;
WINDOW *win2;
bool done = FALSE;
- int ch, y, x;
int max_y, max_x;
int beg_y, beg_x;
@@ -92,8 +91,11 @@ test_redraw(WINDOW *win)
keypad(win, TRUE);
getmaxyx(win, max_y, max_x);
getbegyx(win, beg_y, beg_x);
+
while (!done) {
- ch = wgetch(win);
+ int ch = wgetch(win);
+ int y, x;
+
getyx(win, y, x);
switch (ch) {
case 'q':
@@ -133,7 +135,7 @@ test_redraw(WINDOW *win)
/*
* For a shell command, we can work around the problem noted above
* using mvcur(). It is ifdef'd for NCURSES, since X/Open does
- * not define the case where the old location is unknown.
+ * not define the case where the old location is unknown.
*/
IGNORE_RC(system("date"));
mvcur(-1, -1, y, x);
@@ -187,30 +189,34 @@ test_redraw(WINDOW *win)
}
static void
-usage(void)
+usage(int ok)
{
static const char *tbl[] =
{
"Usage: redraw [options]"
,""
+ ,USAGE_COMMON
,"Options:"
- ," -e use stderr (default stdout)"
- ," -n do not initialize terminal"
+ ," -e use stderr (default stdout)"
+ ," -n do not initialize terminal"
};
unsigned n;
for (n = 0; n < SIZEOF(tbl); ++n)
fprintf(stderr, "%s\n", tbl[n]);
- ExitProgram(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+main(int argc, char *argv[])
{
int ch;
bool no_init = FALSE;
FILE *my_fp = stdout;
- while ((ch = getopt(argc, argv, "en")) != -1) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "en")) != -1) {
switch (ch) {
case 'e':
my_fp = stderr;
@@ -218,13 +224,16 @@ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
case 'n':
no_init = TRUE;
break;
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
- break;
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
}
}
if (optind < argc)
- usage();
+ usage(FALSE);
if (no_init) {
START_TRACE();
diff --git a/test/savescreen.c b/test/savescreen.c
index da00d7534dc4..3ea619306a84 100644
--- a/test/savescreen.c
+++ b/test/savescreen.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2021,2022 Thomas E. Dickey *
* Copyright 2006-2017,2018 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,7 +27,7 @@
* authorization. *
****************************************************************************/
/*
- * $Id: savescreen.c,v 1.57 2020/02/02 23:34:34 tom Exp $
+ * $Id: savescreen.c,v 1.62 2022/12/10 23:23:27 tom Exp $
*
* Demonstrate save/restore functions from the curses library.
* Thomas Dickey - 2007/7/14
@@ -86,9 +86,9 @@ setup_next(void)
static void
cleanup(char *files[])
{
- int n;
-
if (!keep_dumps) {
+ int n;
+
for (n = 0; files[n] != 0; ++n) {
unlink(files[n]);
}
@@ -169,7 +169,6 @@ dump_screen(char **files, int color, int which, int last, bool use_colors)
{
#if USE_WIDEC_SUPPORT
cchar_t mycc;
- int myxx;
#endif
char *filename = files[which];
bool dumped = FALSE;
@@ -198,7 +197,7 @@ dump_screen(char **files, int color, int which, int last, bool use_colors)
wmove(stdscr, cy, cx);
#if USE_WIDEC_SUPPORT
if (win_wch(curscr, &mycc) != ERR) {
- myxx = wcwidth(BaseChar(mycc));
+ int myxx = wcwidth(BaseChar(mycc));
if (myxx > 0) {
wadd_wchnstr(stdscr, &mycc, 1);
cx += (myxx - 1);
@@ -254,24 +253,28 @@ replay_help(void)
}
static void
-usage(void)
+usage(int ok)
{
static const char *msg[] =
{
- "Usage: savescreen [-r] files",
- "",
- "Options:",
- " -f file fill/initialize screen using text from this file",
- " -i use scr_init/scr_restore rather than scr_set",
- " -k keep the restored dump-files rather than removing them",
- " -r replay the screen-dump files"
+ "Usage: savescreen [-r] files"
+ ,""
+ ,USAGE_COMMON
+ ,"Options:"
+ ," -f file fill/initialize screen using text from this file"
+ ," -i use scr_init/scr_restore rather than scr_set"
+ ," -k keep the restored dump-files rather than removing them"
+ ," -r replay the screen-dump files"
};
unsigned n;
for (n = 0; n < SIZEOF(msg); ++n) {
fprintf(stderr, "%s\n", msg[n]);
}
- ExitProgram(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
main(int argc, char *argv[])
@@ -285,19 +288,14 @@ main(int argc, char *argv[])
char **files;
char *fill_by = 0;
#if USE_WIDEC_SUPPORT
- int r, g, b;
- int cube = 0;
- int cube0 = 16;
- int cube1;
cchar_t mycc;
static const wchar_t mywc[2] =
{L'#', 0};
- bool using_rgb = FALSE;
#endif
setlocale(LC_ALL, "");
- while ((ch = getopt(argc, argv, "f:ikr")) != -1) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "f:ikr")) != -1) {
switch (ch) {
case 'f':
fill_by = optarg;
@@ -311,9 +309,12 @@ main(int argc, char *argv[])
case 'r':
replaying = TRUE;
break;
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
- break;
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
}
}
@@ -332,6 +333,9 @@ main(int argc, char *argv[])
curs_set(0);
if (has_colors() && (start_color() == OK) && COLORS >= MAX_ANSI) {
+#if USE_WIDEC_SUPPORT
+ bool using_rgb = FALSE;
+#endif
static const struct {
int fg, bg;
} table[MAX_ANSI] = {
@@ -378,13 +382,13 @@ main(int argc, char *argv[])
int r_delta = (r_max / cols);
int g_delta = (g_max / cols);
int row = 0;
+ int b = 0;
- b = 0;
using_rgb = TRUE;
while (row++ < rows) {
int col = 0;
- r = 0;
- g = g_max;
+ int r = 0;
+ int g = g_max;
while (col++ < cols) {
int color = (((r * (g_max + 1)) + g) * (b_max + 1)
+ b + MAX_ANSI);
@@ -404,6 +408,9 @@ main(int argc, char *argv[])
#endif
}
if ((fill_by == 0) && !replaying) {
+#if USE_WIDEC_SUPPORT
+ int cube = 0;
+#endif
/*
* Originally (before wide-characters) ncurses supported 16 colors.
*/
@@ -428,8 +435,9 @@ main(int argc, char *argv[])
cube = 6;
}
if (cube != 0) {
- cube0 = 16;
- cube1 = cube0 + (cube * cube * cube);
+ int r, g, b;
+ int cube0 = 16;
+ int cube1 = cube0 + (cube * cube * cube);
addch('\n');
printw("Color cube, %dx%dx%d:\n", cube, cube, cube);
@@ -460,7 +468,6 @@ main(int argc, char *argv[])
int cols = COLS - 1;
int row = 0;
- b = 0;
pair = MAX_ANSI;
while (row++ < rows) {
int col = 0;
@@ -648,7 +655,7 @@ main(int argc, char *argv[])
#else
int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+main(void)
{
printf("This program requires the screen-dump functions\n");
ExitProgram(EXIT_FAILURE);
diff --git a/test/savescreen.sh b/test/savescreen.sh
index 4a15ce427c76..1ffab2fcc170 100755
--- a/test/savescreen.sh
+++ b/test/savescreen.sh
@@ -1,6 +1,6 @@
#!/bin/sh
##############################################################################
-# Copyright 2020 Thomas E. Dickey #
+# Copyright 2020,2022 Thomas E. Dickey #
# Copyright 2007-2009,2018 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -27,17 +27,18 @@
# use or other dealings in this Software without prior written #
# authorization. #
##############################################################################
-# $Id: savescreen.sh,v 1.6 2020/02/02 23:34:34 tom Exp $
+# $Id: savescreen.sh,v 1.8 2022/07/16 16:34:34 tom Exp $
#
# Use this script to exercise "savescreen".
# It starts by generating a series of temporary-filenames, which are passed
# to the test-program. Loop as long as the first file named exists.
-: ${TMPDIR:=/tmp}
+: "${TMPDIR:=/tmp}"
# "mktemp -d" would be preferable, but is not standard.
MY_DIR=$TMPDIR/savescreen$$
-trap "rm -rf $MY_DIR" EXIT INT QUIT HUP
+trap "rm -rf $MY_DIR; exit 1" 1 2 3
+trap "rm -rf $MY_DIR" 0
umask 077
mkdir $MY_DIR || exit 1
@@ -58,7 +59,7 @@ if test -f $BEGINS
then
while test -f $BEGINS
do
- ${0%.sh} -r $PARAMS
+ "${0%.sh}" -r $PARAMS
test $? != 0 && break
done
else
diff --git a/test/sp_tinfo.c b/test/sp_tinfo.c
index 419b000a700a..72b20cfb0c1d 100644
--- a/test/sp_tinfo.c
+++ b/test/sp_tinfo.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2022,2023 Thomas E. Dickey *
* Copyright 2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -28,7 +28,7 @@
****************************************************************************/
/*
- * $Id: sp_tinfo.c,v 1.23 2020/02/02 23:34:34 tom Exp $
+ * $Id: sp_tinfo.c,v 1.29 2023/06/24 14:14:56 tom Exp $
*
* TOTO: add option for non-sp-funcs interface
*/
@@ -279,48 +279,51 @@ cleanup(MYDATA * data)
{
set_curterm(data->term);
del_curterm(data->term);
-#if !NO_LEAKS
- free(data->sp); /* cannot use delscreen in tinfo */
-#endif
free(data);
}
static void
-usage(void)
+usage(int ok)
{
static const char *tbl[] =
{
- "Usage: sp_tinfo [output] [error]",
- "",
- "Options:",
- " -n suppress call to new_prescr()",
- " -t use termcap functions rather than terminfo",
- NULL
+ "Usage: sp_tinfo [output] [error]"
+ ,""
+ ,USAGE_COMMON
+ ,"Options:"
+ ," -n suppress call to new_prescr()"
+ ," -t use termcap functions rather than terminfo"
};
size_t n;
for (n = 0; n < SIZEOF(tbl); ++n) {
fprintf(stderr, "%s\n", tbl[n]);
}
- ExitProgram(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
main(int argc, char *argv[])
{
MYDATA *my_out;
MYDATA *my_err;
- int n;
+ int ch;
- while ((n = getopt(argc, argv, "nt")) != -1) {
- switch (n) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "nt")) != -1) {
+ switch (ch) {
case 'n':
opt_n = TRUE;
break;
case 't':
opt_t = TRUE;
break;
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
+ usage(ch == OPTS_USAGE);
/* NOTREACHED */
}
}
@@ -328,7 +331,7 @@ main(int argc, char *argv[])
argc -= (optind - 1);
if (argc > 3)
- usage();
+ usage(FALSE);
my_out = initialize((argc > 1) ? argv[1] : "vt100", stdout);
my_err = initialize((argc > 2) ? argv[2] : "ansi", stderr);
@@ -336,14 +339,18 @@ main(int argc, char *argv[])
do_stuff(my_out);
do_stuff(my_err);
- cleanup(my_out);
- cleanup(my_err);
+ if (my_out != my_err) {
+ cleanup(my_out);
+ cleanup(my_err);
+ } else {
+ cleanup(my_out);
+ }
ExitProgram(EXIT_SUCCESS);
}
#else
int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+main(void)
{
fprintf(stderr,
"This program requires the low-level ncurses sp-funcs tputs_sp\n");
diff --git a/test/tclock.c b/test/tclock.c
index 71da53af3539..1a749628914d 100644
--- a/test/tclock.c
+++ b/test/tclock.c
@@ -1,9 +1,9 @@
-/* $Id: tclock.c,v 1.42 2020/12/26 17:56:36 tom Exp $ */
+/* $Id: tclock.c,v 1.48 2023/02/25 16:42:22 tom Exp $ */
#define NEED_TIME_H
#include <test.priv.h>
-#if HAVE_MATH_H
+#if HAVE_MATH_H && HAVE_MATH_FUNCS
#include <math.h>
@@ -107,12 +107,13 @@ dline(int pair, int from_x, int from_y, int x2, int y2, int ch)
}
static void
-usage(void)
+usage(int ok)
{
static const char *msg[] =
{
"Usage: tclock [options]"
,""
+ ,USAGE_COMMON
,"Options:"
#if HAVE_USE_DEFAULT_COLORS
," -d invoke use_default_colors"
@@ -123,12 +124,17 @@ usage(void)
for (n = 0; n < SIZEOF(msg); n++)
fprintf(stderr, "%s\n", msg[n]);
- ExitProgram(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
main(int argc, char *argv[])
{
+ static TimeType initial;
+
int i, cx, cy;
double cr, mradius, hradius, mangle, hangle;
double sangle, sradius, hours;
@@ -143,28 +149,28 @@ main(int argc, char *argv[])
char szChar[20];
char *text;
short my_bg = COLOR_BLACK;
-#if HAVE_GETTIMEOFDAY
- struct timeval current;
-#endif
- double fraction = 0.0;
+ TimeType current;
#if HAVE_USE_DEFAULT_COLORS
bool d_option = FALSE;
#endif
- while ((ch = getopt(argc, argv, "d")) != -1) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "d")) != -1) {
switch (ch) {
#if HAVE_USE_DEFAULT_COLORS
case 'd':
d_option = TRUE;
break;
#endif
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
+ usage(ch == OPTS_USAGE);
/* NOTREACHED */
}
}
if (optind < argc)
- usage();
+ usage(FALSE);
setlocale(LC_ALL, "");
@@ -229,11 +235,9 @@ main(int argc, char *argv[])
hdx = A2X(hangle, hradius);
hdy = A2Y(hangle, hradius);
-#if HAVE_GETTIMEOFDAY
- gettimeofday(&current, 0);
- fraction = ((double) current.tv_usec / 1.0e6);
-#endif
- sangle = ((t->tm_sec + fraction) * (2.0 * PI) / 60.0);
+ GetClockTime(&current);
+
+ sangle = (ElapsedSeconds(&initial, &current) * (2.0 * PI) / 60.0);
sdx = A2X(sangle, sradius);
sdy = A2Y(sangle, sradius);
@@ -287,9 +291,9 @@ main(int argc, char *argv[])
}
#else
int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+main(void)
{
- printf("This program requires the development header math.h\n");
+ printf("This program requires the header math.h and trignometric functions\n");
ExitProgram(EXIT_FAILURE);
}
#endif
diff --git a/test/test.priv.h b/test/test.priv.h
index 6913b25d14ca..a901185b8df0 100644
--- a/test/test.priv.h
+++ b/test/test.priv.h
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2017,2018 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -30,7 +30,7 @@
/****************************************************************************
* Author: Thomas E. Dickey 1996-on *
****************************************************************************/
-/* $Id: test.priv.h,v 1.191 2020/09/12 23:54:42 tom Exp $ */
+/* $Id: test.priv.h,v 1.218 2024/02/10 14:40:03 tom Exp $ */
#ifndef __TEST_PRIV_H
#define __TEST_PRIV_H 1
@@ -67,22 +67,18 @@
#define HAVE_ASSUME_DEFAULT_COLORS 0
#endif
-#ifndef HAVE_BSD_STRING_H
-#define HAVE_BSD_STRING_H 0
-#endif
-
-#ifndef HAVE_CURSES_VERSION
-#define HAVE_CURSES_VERSION 0
-#endif
-
-#ifndef HAVE_CURSCR
-#define HAVE_CURSCR 0
+#ifndef HAVE_CFMAKERAW
+#define HAVE_CFMAKERAW 0
#endif
#ifndef HAVE_CHGAT
#define HAVE_CHGAT 0
#endif
+#ifndef HAVE_CLOCK_GETTIME
+#define HAVE_CLOCK_GETTIME 0
+#endif
+
#ifndef HAVE_COLOR_CONTENT
#define HAVE_COLOR_CONTENT 0
#endif
@@ -95,6 +91,18 @@
#define HAVE_COLOR_SET 0
#endif
+#ifndef HAVE_BSD_STRING_H
+#define HAVE_BSD_STRING_H 0
+#endif
+
+#ifndef HAVE_CURSES_VERSION
+#define HAVE_CURSES_VERSION 0
+#endif
+
+#ifndef HAVE_CURSCR
+#define HAVE_CURSCR 0
+#endif
+
#ifndef HAVE_DELSCREEN
#define HAVE_DELSCREEN 0
#endif
@@ -123,6 +131,10 @@
#define HAVE_GETMAXX 0
#endif
+#ifndef HAVE_GETTIMEOFDAY
+#define HAVE_GETTIMEOFDAY 0
+#endif
+
#ifndef HAVE_GETOPT_H
#define HAVE_GETOPT_H 0
#endif
@@ -163,6 +175,10 @@
#define HAVE_LOCALE_H 0
#endif
+#ifndef HAVE_MATH_FUNCS
+#define HAVE_MATH_FUNCS 0
+#endif
+
#ifndef HAVE_MATH_H
#define HAVE_MATH_H 0
#endif
@@ -243,6 +259,10 @@
#define HAVE_STDINT_H 0
#endif
+#ifndef HAVE_STDNORETURN_H
+#define HAVE_STDNORETURN_H 0
+#endif
+
#ifndef HAVE_STRSTR
#define HAVE_STRSTR 0
#endif
@@ -283,6 +303,18 @@
#define HAVE_TIGETSTR 0
#endif
+#ifndef HAVE_TIPARM
+#define HAVE_TIPARM 0
+#endif
+
+#ifndef HAVE_TIPARM_S
+#define HAVE_TIPARM_S 0
+#endif
+
+#ifndef HAVE_TISCAN_S
+#define HAVE_TISCAN_S 0
+#endif
+
#ifndef HAVE_TPUTS_SP
#define HAVE_TPUTS_SP 0
#endif
@@ -299,6 +331,10 @@
#define HAVE_WINSSTR 0
#endif
+#ifndef HAVE_UNGET_WCH
+#define HAVE_UNGET_WCH 0
+#endif
+
#ifndef HAVE_USE_DEFAULT_COLORS
#define HAVE_USE_DEFAULT_COLORS 0
#endif
@@ -355,6 +391,10 @@
#define NO_LEAKS 0
#endif
+#ifndef HAVE__NC_TPARM_ANALYZE
+#define HAVE__NC_TPARM_ANALYZE 0
+#endif
+
/*
* Workaround for HPUX
*/
@@ -391,6 +431,12 @@
#include <curses.h>
#endif
+#if HAVE_STDNORETURN_H && !defined(NCURSES_VERSION)
+#include <stdnoreturn.h>
+#undef GCC_NORETURN
+#define GCC_NORETURN _Noreturn
+#endif
+
#if !(defined(NCURSES_WGETCH_EVENTS) && defined(NEED_KEY_EVENT))
#undef KEY_EVENT /* reduce compiler-warnings with Visual C++ */
#endif
@@ -441,6 +487,13 @@ extern int optind;
#include <assert.h>
#include <ctype.h>
+#if HAVE_STDINT_H
+#include <stdint.h>
+#define my_intptr_t intptr_t
+#else
+#define my_intptr_t long
+#endif
+
#if defined(_MSC_VER)
#undef popen
#define popen(s,n) _popen(s,n)
@@ -539,8 +592,12 @@ extern int optind;
/* workaround, to build against NetBSD's variant of the form library */
#ifdef HAVE_NETBSD_FORM_H
#define form_getyx(form, y, x) y = (int)current_field(form)->cursor_ypos, x = (int)current_field(form)->cursor_xpos
-#else
+#define form_field_row(field) (field)->form_row
+#define form_field_col(field) (field)->form_col
+#else /* e.g., SVr4, ncurses */
#define form_getyx(form, y, x) y = (int)(form)->currow, x = (int)(form)->curcol
+#define form_field_row(field) (field)->frow
+#define form_field_col(field) (field)->fcol
#endif
/* workaround, to build against NetBSD's variant of the form library */
@@ -685,6 +742,48 @@ extern int optind;
#define HELP_KEY_1 '?'
#define HELP_KEY_2 KEY_F(1)
+/* our "standard" options for getopt, needed for help2man */
+#define OPTS_USAGE 'h'
+#define OPTS_VERSION 'V'
+#define OPTS_COMMON "hV"
+#define USAGE_COMMON \
+ "Common options:"\
+," -h show this message"\
+," -V show version of curses"
+
+#if HAVE_CURSES_VERSION
+#define format_version(buffer, size) strcpy(buffer, curses_version())
+#elif defined(NCURSES_VERSION_MAJOR) && defined(NCURSES_VERSION_MINOR) && defined(NCURSES_VERSION_PATCH)
+#define format_version(buffer, size) \
+ _nc_SPRINTF(buffer, _nc_SLIMIT(size) "ncurses %d.%d.%d", \
+ NCURSES_VERSION_MAJOR, \
+ NCURSES_VERSION_MINOR, \
+ NCURSES_VERSION_PATCH)
+#else
+#define format_version(buffer, size) strcpy(buffer, "ncurses-examples")
+#endif
+
+#define VERSION_COMMON() \
+static char *version_common(char **argv) { \
+ char *base = argv[0]; \
+ char *part = strrchr(base, '/'); \
+ size_t need = strlen(base) + 80; \
+ char *result = malloc(need); \
+ if (result != NULL) { \
+ if (part++ == NULL) part = base; \
+ _nc_SPRINTF(result, _nc_SLIMIT(need) "%.20s: ", part); \
+ format_version(result + strlen(result), need - strlen(result)); \
+ } \
+ return result; \
+} \
+static void show_version(char **argv) { \
+ char *value = version_common(argv); \
+ if (value != NULL) { \
+ puts(value); \
+ free(value); \
+ } \
+}
+
/* from nc_string.h, to make this stand alone */
#if HAVE_BSD_STRING_H
#include <bsd/string.h>
@@ -708,10 +807,18 @@ extern int optind;
#define HAVE_SNPRINTF 0
#endif
+#ifndef HAVE_STRDUP
+#define HAVE_STRDUP 0
+#endif
+
#ifndef USE_STRING_HACKS
#define USE_STRING_HACKS 0
#endif
+#ifndef HAVE_STRSTR
+#define HAVE_STRSTR 0
+#endif
+
#ifndef NCURSES_CAST
#ifdef __cplusplus
extern "C" {
@@ -738,10 +845,10 @@ extern "C" {
#endif
#if USE_STRING_HACKS && HAVE_SNPRINTF
-#define _nc_SPRINTF NCURSES_VOID snprintf
+#define _nc_SPRINTF NCURSES_VOID (snprintf)
#define _nc_SLIMIT(n) NCURSES_CAST(size_t,n),
#else
-#define _nc_SPRINTF NCURSES_VOID sprintf
+#define _nc_SPRINTF NCURSES_VOID (sprintf)
#define _nc_SLIMIT(n) /* nothing */
#endif
@@ -910,15 +1017,20 @@ extern int TABSIZE;
#define UChar(c) ((unsigned char)(c))
+#ifndef SIZEOF
#define SIZEOF(table) (sizeof(table)/sizeof(table[0]))
+#endif
#if defined(NCURSES_VERSION) && HAVE_NC_ALLOC_H
#include <nc_alloc.h>
-#if HAVE_EXIT_TERMINFO && defined(USE_TINFO)
+#if HAVE_EXIT_TERMINFO && !defined(USE_CURSES) && (defined(USE_TERMINFO) || defined(USE_TINFO))
#undef ExitProgram
#define ExitProgram(code) exit_terminfo(code)
+#elif HAVE_EXIT_CURSES
+#undef ExitProgram
+#define ExitProgram(code) exit_curses(code)
#endif
-#else
+#else /* not ncurses-tree */
#define typeMalloc(type,n) (type *) malloc((size_t)(n) * sizeof(type))
#define typeCalloc(type,elts) (type *) calloc((size_t)(elts), sizeof(type))
#define typeRealloc(type,n,p) (type *) realloc(p, (size_t)(n) * sizeof(type))
@@ -999,6 +1111,26 @@ extern int TABSIZE;
#endif
#endif
+#if HAVE_CLOCK_GETTIME
+# define GetClockTime(t) clock_gettime(CLOCK_REALTIME, t)
+# define TimeType struct timespec
+# define TimeScale 1000000000L /* 1e9 */
+# define ElapsedSeconds(b,e) \
+ (double) (((e)->tv_sec - (b)->tv_sec) \
+ + ((e)->tv_nsec - (b)->tv_nsec) / TimeScale)
+#elif HAVE_GETTIMEOFDAY
+# define GetClockTime(t) gettimeofday(t, 0)
+# define TimeType struct timeval
+# define TimeScale 1000000L /* 1e6 */
+# define ElapsedSeconds(b,e) \
+ (double) (((e)->tv_sec - (b)->tv_sec) \
+ + ((e)->tv_usec - (b)->tv_usec) / TimeScale)
+#else
+# define TimeType time_t
+# define GetClockTime(t) time((time_t*)0)
+# define ElapsedSeconds(b,e) (double)((e) - (b))
+#endif
+
/*
* Ultrix 3.1
*/
@@ -1135,6 +1267,14 @@ extern char *tgoto(char *, int, int); /* available, but not prototyped */
#define CONST_MENUS /* nothing */
#endif
+#if defined(NCURSES_CONST)
+#define CONST_FMT NCURSES_CONST
+#elif defined(PDCURSES)
+#define CONST_FMT const
+#else
+#define CONST_FMT /* nothing */
+#endif
+
/*
* Simplify setting up demo of threading with these macros.
*/
@@ -1159,7 +1299,7 @@ extern char *tgoto(char *, int, int); /* available, but not prototyped */
#define WANT_USE_SCREEN() extern void _nc_want_use_screen(void)
#endif
-#if defined(TRACE) && HAVE__TRACEF
+#if defined(TRACE) && HAVE__TRACEF && HAVE_CURSES_TRACE
#define Trace(p) _tracef p
#define USE_TRACE 1
#define START_TRACE() \
diff --git a/test/test_add_wchstr.c b/test/test_add_wchstr.c
index e2c8b6677faa..f69e1ddc271a 100644
--- a/test/test_add_wchstr.c
+++ b/test/test_add_wchstr.c
@@ -1,6 +1,6 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
- * Copyright 2009-2016,2017 Free Software Foundation, Inc. *
+ * Copyright 2020-2021,2022 Thomas E. Dickey *
+ * Copyright 2009-2016,2017 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 *
@@ -27,7 +27,7 @@
* authorization. *
****************************************************************************/
/*
- * $Id: test_add_wchstr.c,v 1.27 2020/02/02 23:34:34 tom Exp $
+ * $Id: test_add_wchstr.c,v 1.34 2022/12/10 22:28:50 tom Exp $
*
* Demonstrate the waddwchstr() and wadd_wch functions.
* Thomas Dickey - 2009/9/12
@@ -132,10 +132,11 @@ ChWLen(const wchar_t *source)
if (!pass_ctls) {
size_t adjust = 0;
size_t n;
- const char *s;
- for (n = 0; n < result; ++n) {
- if (source[n] < 256 && (s = unctrl((chtype) source[n])) != 0) {
+ for (n = 0; source[n] != 0; ++n) {
+ const char *s;
+
+ if ((source[n] < 256) && (s = unctrl((chtype) source[n])) != 0) {
adjust += (strlen(s) - 1);
}
}
@@ -190,7 +191,7 @@ legend(WINDOW *win, int level, Options state, wchar_t *buffer, int length)
}
static int
-ColOf(wchar_t *buffer, int length, int margin)
+ColOf(const wchar_t *buffer, int length, int margin)
{
int n;
int result;
@@ -541,33 +542,37 @@ recursive_test(int level)
}
static void
-usage(void)
+usage(int ok)
{
static const char *tbl[] =
{
"Usage: test_add_wchstr [options]"
,""
+ ,USAGE_COMMON
,"Options:"
- ," -f FILE read data from given file"
- ," -n NUM limit string-adds to NUM bytes on ^N replay"
- ," -m perform wmove/move separately from add-functions"
- ," -p pass-thru control characters without using unctrl()"
- ," -w use window-parameter even when stdscr would be implied"
+ ," -f FILE read data from given file"
+ ," -n NUM limit string-adds to NUM bytes on ^N replay"
+ ," -m perform wmove/move separately from add-functions"
+ ," -p pass-thru control characters without using unctrl()"
+ ," -w use window-parameter even when stdscr would be implied"
};
unsigned n;
for (n = 0; n < SIZEOF(tbl); ++n)
fprintf(stderr, "%s\n", tbl[n]);
- ExitProgram(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+main(int argc, char *argv[])
{
int ch;
setlocale(LC_ALL, "");
- while ((ch = getopt(argc, argv, "f:mn:pw")) != -1) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "f:mn:pw")) != -1) {
switch (ch) {
case 'f':
init_linedata(optarg);
@@ -586,13 +591,16 @@ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
case 'w':
w_opt = TRUE;
break;
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
- break;
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
}
}
if (optind < argc)
- usage();
+ usage(FALSE);
recursive_test(0);
endwin();
diff --git a/test/test_addchstr.c b/test/test_addchstr.c
index 5b2df8ad38aa..cddc31528fc4 100644
--- a/test/test_addchstr.c
+++ b/test/test_addchstr.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2022 Thomas E. Dickey *
* Copyright 2009-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,7 +27,7 @@
* authorization. *
****************************************************************************/
/*
- * $Id: test_addchstr.c,v 1.25 2020/02/02 23:34:34 tom Exp $
+ * $Id: test_addchstr.c,v 1.29 2022/12/10 22:28:50 tom Exp $
*
* Demonstrate the waddchstr() and waddch functions.
* Thomas Dickey - 2009/9/12
@@ -460,33 +460,37 @@ recursive_test(int level)
}
static void
-usage(void)
+usage(int ok)
{
static const char *tbl[] =
{
"Usage: test_addchstr [options]"
,""
+ ,USAGE_COMMON
,"Options:"
- ," -f FILE read data from given file"
- ," -n NUM limit string-adds to NUM bytes on ^N replay"
- ," -m perform wmove/move separately from add-functions"
- ," -p pass-thru control characters without using unctrl()"
- ," -w use window-parameter even when stdscr would be implied"
+ ," -f FILE read data from given file"
+ ," -n NUM limit string-adds to NUM bytes on ^N replay"
+ ," -m perform wmove/move separately from add-functions"
+ ," -p pass-thru control characters without using unctrl()"
+ ," -w use window-parameter even when stdscr would be implied"
};
unsigned n;
for (n = 0; n < SIZEOF(tbl); ++n)
fprintf(stderr, "%s\n", tbl[n]);
- ExitProgram(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+main(int argc, char *argv[])
{
int ch;
setlocale(LC_ALL, "");
- while ((ch = getopt(argc, argv, "f:mn:pw")) != -1) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "f:mn:pw")) != -1) {
switch (ch) {
case 'f':
init_linedata(optarg);
@@ -505,13 +509,16 @@ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
case 'w':
w_opt = TRUE;
break;
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
- break;
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
}
}
if (optind < argc)
- usage();
+ usage(FALSE);
recursive_test(0);
endwin();
diff --git a/test/test_addstr.c b/test/test_addstr.c
index 67e540a5e151..ba8a90e5cd82 100644
--- a/test/test_addstr.c
+++ b/test/test_addstr.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2022 Thomas E. Dickey *
* Copyright 2009-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,7 +27,7 @@
* authorization. *
****************************************************************************/
/*
- * $Id: test_addstr.c,v 1.16 2020/02/02 23:34:34 tom Exp $
+ * $Id: test_addstr.c,v 1.20 2022/12/10 22:28:50 tom Exp $
*
* Demonstrate the waddstr() and waddch functions.
* Thomas Dickey - 2009/9/12
@@ -375,32 +375,36 @@ recursive_test(int level)
}
static void
-usage(void)
+usage(int ok)
{
static const char *tbl[] =
{
"Usage: test_addstr [options]"
,""
+ ,USAGE_COMMON
,"Options:"
- ," -f FILE read data from given file"
- ," -n NUM limit string-adds to NUM bytes on ^N replay"
- ," -m perform wmove/move separately from add-functions"
- ," -w use window-parameter even when stdscr would be implied"
+ ," -f FILE read data from given file"
+ ," -n NUM limit string-adds to NUM bytes on ^N replay"
+ ," -m perform wmove/move separately from add-functions"
+ ," -w use window-parameter even when stdscr would be implied"
};
unsigned n;
for (n = 0; n < SIZEOF(tbl); ++n)
fprintf(stderr, "%s\n", tbl[n]);
- ExitProgram(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+main(int argc, char *argv[])
{
int ch;
setlocale(LC_ALL, "");
- while ((ch = getopt(argc, argv, "f:mn:w")) != -1) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "f:mn:w")) != -1) {
switch (ch) {
case 'f':
init_linedata(optarg);
@@ -416,13 +420,16 @@ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
case 'w':
w_opt = TRUE;
break;
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
- break;
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
}
}
if (optind < argc)
- usage();
+ usage(FALSE);
recursive_test(0);
endwin();
diff --git a/test/test_addwstr.c b/test/test_addwstr.c
index 22cacb91b094..9e51f49df149 100644
--- a/test/test_addwstr.c
+++ b/test/test_addwstr.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020-2022,2023 Thomas E. Dickey *
* Copyright 2009-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,7 +27,7 @@
* authorization. *
****************************************************************************/
/*
- * $Id: test_addwstr.c,v 1.17 2020/02/02 23:34:34 tom Exp $
+ * $Id: test_addwstr.c,v 1.22 2023/05/27 20:13:10 tom Exp $
*
* Demonstrate the waddwstr() and wadd_wch functions.
* Thomas Dickey - 2009/9/12
@@ -114,7 +114,7 @@ legend(WINDOW *win, int level, Options state, wchar_t *buffer, int length)
}
static int
-ColOf(wchar_t *buffer, int length, int margin)
+ColOf(const wchar_t *const buffer, int length, int margin)
{
int n;
int result;
@@ -467,32 +467,36 @@ recursive_test(int level)
}
static void
-usage(void)
+usage(int ok)
{
static const char *tbl[] =
{
"Usage: test_addwstr [options]"
,""
+ ,USAGE_COMMON
,"Options:"
- ," -f FILE read data from given file"
- ," -n NUM limit string-adds to NUM bytes on ^N replay"
- ," -m perform wmove/move separately from add-functions"
- ," -w use window-parameter even when stdscr would be implied"
+ ," -f FILE read data from given file"
+ ," -n NUM limit string-adds to NUM bytes on ^N replay"
+ ," -m perform wmove/move separately from add-functions"
+ ," -w use window-parameter even when stdscr would be implied"
};
unsigned n;
for (n = 0; n < SIZEOF(tbl); ++n)
fprintf(stderr, "%s\n", tbl[n]);
- ExitProgram(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+main(int argc, char *argv[])
{
int ch;
setlocale(LC_ALL, "");
- while ((ch = getopt(argc, argv, "f:mn:w")) != -1) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "f:mn:w")) != -1) {
switch (ch) {
case 'f':
init_linedata(optarg);
@@ -508,13 +512,16 @@ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
case 'w':
w_opt = TRUE;
break;
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
- break;
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
}
}
if (optind < argc)
- usage();
+ usage(FALSE);
recursive_test(0);
endwin();
diff --git a/test/test_arrays.c b/test/test_arrays.c
index 7ee25eab59bb..f89cb280f05f 100644
--- a/test/test_arrays.c
+++ b/test/test_arrays.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2022 Thomas E. Dickey *
* Copyright 2007-2010,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,7 +27,7 @@
* authorization. *
****************************************************************************/
/*
- * $Id: test_arrays.c,v 1.9 2020/02/02 23:34:34 tom Exp $
+ * $Id: test_arrays.c,v 1.13 2022/12/10 23:23:27 tom Exp $
*
* Author: Thomas E Dickey
*
@@ -135,37 +135,41 @@ dump_table(void)
}
static void
-usage(void)
+usage(int ok)
{
static const char *msg[] =
{
- "Usage: test_arrays [options]",
- "",
- "If no options are given, print all (boolean, numeric, string)",
- "capability names showing their index within the tables.",
- "",
- "Options:",
- " -C print termcap names",
- " -T print terminfo names",
- " -c print termcap names",
- " -f print full terminfo names",
- " -n print short terminfo names",
- " -t print the result as CSV table",
+ "Usage: test_arrays [options]"
+ ,""
+ ,"If no options are given, print all (boolean, numeric, string)"
+ ,"capability names showing their index within the tables."
+ ,""
+ ,USAGE_COMMON
+ ,"Options:"
+ ," -C print termcap names"
+ ," -T print terminfo names"
+ ," -c print termcap names"
+ ," -f print full terminfo names"
+ ," -n print short terminfo names"
+ ," -t print the result as CSV table"
};
unsigned n;
for (n = 0; n < SIZEOF(msg); ++n) {
fprintf(stderr, "%s\n", msg[n]);
}
- ExitProgram(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
main(int argc, char *argv[])
{
- int n;
+ int ch;
- while ((n = getopt(argc, argv, "CTcfnt")) != -1) {
- switch (n) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "CTcfnt")) != -1) {
+ switch (ch) {
case 'C':
opt_C = TRUE;
break;
@@ -184,13 +188,16 @@ main(int argc, char *argv[])
case 't':
opt_t = TRUE;
break;
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
+ usage(ch == OPTS_USAGE);
/* NOTREACHED */
}
}
if (optind < argc)
- usage();
+ usage(FALSE);
if (!(opt_T || opt_C)) {
opt_T = opt_C = TRUE;
@@ -210,7 +217,7 @@ main(int argc, char *argv[])
#else
int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+main(void)
{
printf("This program requires the terminfo arrays\n");
ExitProgram(EXIT_FAILURE);
@@ -218,7 +225,7 @@ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
#endif
#else /* !HAVE_TIGETSTR */
int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+main(void)
{
printf("This program requires the terminfo functions such as tigetstr\n");
ExitProgram(EXIT_FAILURE);
diff --git a/test/test_delwin.c b/test/test_delwin.c
new file mode 100644
index 000000000000..09ef5c538e4e
--- /dev/null
+++ b/test/test_delwin.c
@@ -0,0 +1,151 @@
+/****************************************************************************
+ * Copyright 2022,2023 Thomas E. Dickey *
+ * *
+ * 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: test_delwin.c,v 1.5 2023/05/27 20:34:51 tom Exp $
+ */
+#include <test.priv.h>
+
+#define STATUS 10
+
+static SCREEN *my_screen;
+
+static void
+show_rc(const char *what, const char *explain, int rc)
+{
+ printw("%s : %d (%s)\n", what, rc, explain);
+}
+
+static void
+next_step(WINDOW *win)
+{
+ int ch = wgetch(win);
+ if (ch == QUIT || ch == ESCAPE) {
+ endwin();
+ /* use this to verify if delscreen frees all memory */
+ delscreen(my_screen);
+ exit(EXIT_FAILURE);
+ }
+}
+
+static void
+usage(int ok)
+{
+ static const char *msg[] =
+ {
+ "Usage: test_delwin [options]"
+ ,""
+ ,USAGE_COMMON
+ };
+ size_t n;
+
+ for (n = 0; n < SIZEOF(msg); n++)
+ fprintf(stderr, "%s\n", msg[n]);
+
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
+}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
+
+int
+main(int argc, char **argv)
+{
+ WINDOW *parent, *child1;
+ int rc;
+ int ch;
+
+ while ((ch = getopt(argc, argv, OPTS_COMMON)) != -1) {
+ switch (ch) {
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
+ default:
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
+ }
+ }
+ if (optind < argc)
+ usage(FALSE);
+
+ if ((my_screen = newterm(NULL, stdout, stdin)) == NULL)
+ ExitProgram(EXIT_FAILURE);
+
+ noecho();
+ cbreak();
+
+ refresh();
+ wsetscrreg(stdscr, 0, STATUS - 1);
+ scrollok(stdscr, TRUE);
+
+ parent = newwin(0, 0, STATUS, 0);
+ box(parent, 0, 0);
+ wrefresh(parent);
+ next_step(parent);
+
+ printw("New window %p %s\n", (void *) parent, "Top window");
+ mvwprintw(parent, 1, 1, "Top window");
+ wrefresh(parent);
+ next_step(stdscr);
+
+ child1 = derwin(parent, LINES - STATUS - 4, COLS - 4, 2, 2);
+ box(child1, 0, 0);
+ mvwprintw(child1, 1, 1, "Sub window");
+ wrefresh(child1);
+
+ printw("Sub window %p %s\n", (void *) child1, "Hello world!");
+ next_step(stdscr);
+
+ show_rc("Deleted parent",
+ "should fail, it still has a subwindow",
+ delwin(parent));
+ next_step(stdscr);
+ show_rc("Deleted child1",
+ "should succeed",
+ rc = delwin(child1));
+ next_step(stdscr);
+ if (rc == OK) {
+ wclrtobot(parent);
+ box(parent, 0, 0);
+ next_step(parent);
+ }
+ show_rc("Deleted parent",
+ "should succeed, it has no subwindow now",
+ rc = delwin(parent));
+ next_step(stdscr);
+ if (rc == OK) {
+ touchwin(stdscr);
+ next_step(stdscr);
+ }
+ show_rc("Deleted parent",
+ "should fail, may dump core",
+ delwin(parent));
+ next_step(stdscr);
+ endwin();
+ ExitProgram(EXIT_SUCCESS);
+}
diff --git a/test/test_endwin.c b/test/test_endwin.c
new file mode 100644
index 000000000000..8e0d283cd2cc
--- /dev/null
+++ b/test/test_endwin.c
@@ -0,0 +1,132 @@
+/****************************************************************************
+ * Copyright 2023 Thomas E. Dickey *
+ * *
+ * 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: test_endwin.c,v 1.2 2023/11/10 15:17:19 tom Exp $
+ */
+#include <test.priv.h>
+
+static void
+usage(int ok)
+{
+ static const char *msg[] =
+ {
+ "Usage: test_endwin [options]"
+ ,""
+ ,"Options:"
+ ," -e call endwin() an extra time"
+ ," -i call initscr() before endwin()"
+ ," -n call newterm() before endwin()"
+ ," -r call refresh() before endwin()"
+ ," -s call getch() after endwin(), to refresh screen"
+ ,""
+ ,USAGE_COMMON
+ };
+ size_t n;
+
+ for (n = 0; n < SIZEOF(msg); n++)
+ fprintf(stderr, "%s\n", msg[n]);
+
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
+}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
+
+#define status(opt,name,rc) if (opt) printf(" %s: %s", name, (rc) == OK ? "OK" : "ERR")
+
+int
+main(int argc, char *argv[])
+{
+ int ch;
+ int rc_r = OK;
+ int rc_e1 = OK;
+ int rc_e2 = OK;
+ int rc_e3 = OK;
+ SCREEN *sp = NULL;
+ bool opt_e = FALSE;
+ bool opt_i = FALSE;
+ bool opt_n = FALSE;
+ bool opt_r = FALSE;
+ bool opt_s = FALSE;
+
+ while ((ch = getopt(argc, argv, "einrs" OPTS_COMMON)) != -1) {
+ switch (ch) {
+ case 'e':
+ opt_e = TRUE;
+ break;
+ case 'i':
+ opt_i = TRUE;
+ break;
+ case 'n':
+ opt_n = TRUE;
+ break;
+ case 'r':
+ opt_r = TRUE;
+ break;
+ case 's':
+ opt_s = TRUE;
+ break;
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
+ default:
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
+ }
+ }
+ if (optind < argc)
+ usage(FALSE);
+ if (opt_i && opt_n)
+ usage(TRUE);
+
+ if (opt_i) {
+ initscr();
+ } else if (opt_n) {
+ sp = newterm(NULL, stdout, stdin);
+ }
+ if (opt_r) {
+ rc_r = refresh();
+ }
+ rc_e1 = endwin();
+ if (opt_e) {
+ rc_e2 = endwin();
+ }
+ if (opt_s) {
+ getch();
+ rc_e3 = endwin();
+ }
+ printf("status:");
+ status(opt_i, "initscr(-i)", OK);
+ status(opt_n, "newterm(-n)", (sp != NULL) ? OK : ERR);
+ status(opt_r, "refresh(-r)", rc_r);
+ status(TRUE, "endwin", rc_e1);
+ status(opt_e, "endwin(-e)", rc_e2);
+ status(opt_s, "endwin(-s)", rc_e3);
+ printf("\n");
+ ExitProgram(EXIT_SUCCESS);
+}
diff --git a/test/test_get_wstr.c b/test/test_get_wstr.c
index bc86030c12c4..2a788fce8dfa 100644
--- a/test/test_get_wstr.c
+++ b/test/test_get_wstr.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2022 Thomas E. Dickey *
* Copyright 2007-2011,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,7 +27,7 @@
* authorization. *
****************************************************************************/
/*
- * $Id: test_get_wstr.c,v 1.12 2020/02/02 23:34:34 tom Exp $
+ * $Id: test_get_wstr.c,v 1.14 2022/12/10 23:59:13 tom Exp $
*
* Author: Thomas E Dickey
*
@@ -355,18 +355,48 @@ recursive_test(int level, char **argv, WINDOW *strwin)
return TRUE;
}
+static void
+usage(int ok)
+{
+ static const char *msg[] =
+ {
+ "Usage: test_get_wstr [options] [file1 [...]]"
+ ,""
+ ,USAGE_COMMON
+ };
+ size_t n;
+
+ for (n = 0; n < SIZEOF(msg); n++)
+ fprintf(stderr, "%s\n", msg[n]);
+
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
+}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
+
int
main(int argc, char *argv[])
{
WINDOW *chrbox;
WINDOW *strwin;
+ int ch;
+
+ while ((ch = getopt(argc, argv, OPTS_COMMON)) != -1) {
+ switch (ch) {
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
+ default:
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
+ }
+ }
setlocale(LC_ALL, "");
- if (argc < 2) {
- fprintf(stderr, "usage: %s file\n", argv[0]);
- return EXIT_FAILURE;
- }
+ if (optind + 1 > argc)
+ usage(FALSE);
initscr();
@@ -376,7 +406,7 @@ main(int argc, char *argv[])
strwin = derwin(chrbox, 4, COLS - 2, 1, 1);
- recursive_test(1, argv, strwin);
+ recursive_test(optind, argv, strwin);
endwin();
ExitProgram(EXIT_SUCCESS);
diff --git a/test/test_getstr.c b/test/test_getstr.c
index 0910a041e42b..dbc0a0a271ed 100644
--- a/test/test_getstr.c
+++ b/test/test_getstr.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2022 Thomas E. Dickey *
* Copyright 2007-2012,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,7 +27,7 @@
* authorization. *
****************************************************************************/
/*
- * $Id: test_getstr.c,v 1.14 2020/02/02 23:34:34 tom Exp $
+ * $Id: test_getstr.c,v 1.16 2022/12/10 23:58:37 tom Exp $
*
* Author: Thomas E Dickey
*
@@ -362,18 +362,48 @@ recursive_test(int level, char **argv, WINDOW *strwin)
return TRUE;
}
+static void
+usage(int ok)
+{
+ static const char *msg[] =
+ {
+ "Usage: test_getstr [options] [file1 [...]]"
+ ,""
+ ,USAGE_COMMON
+ };
+ size_t n;
+
+ for (n = 0; n < SIZEOF(msg); n++)
+ fprintf(stderr, "%s\n", msg[n]);
+
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
+}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
+
int
main(int argc, char *argv[])
{
WINDOW *chrbox;
WINDOW *strwin;
+ int ch;
+
+ while ((ch = getopt(argc, argv, OPTS_COMMON)) != -1) {
+ switch (ch) {
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
+ default:
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
+ }
+ }
setlocale(LC_ALL, "");
- if (argc < 2) {
- fprintf(stderr, "usage: %s file\n", argv[0]);
- return EXIT_FAILURE;
- }
+ if (optind + 1 > argc)
+ usage(FALSE);
initscr();
@@ -383,7 +413,7 @@ main(int argc, char *argv[])
strwin = derwin(chrbox, 4, COLS - 2, 1, 1);
- recursive_test(1, argv, strwin);
+ recursive_test(optind, argv, strwin);
endwin();
ExitProgram(EXIT_SUCCESS);
diff --git a/test/test_instr.c b/test/test_instr.c
index f04d8a3dadef..c87bdd707212 100644
--- a/test/test_instr.c
+++ b/test/test_instr.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2022 Thomas E. Dickey *
* Copyright 2007-2010,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,7 +27,7 @@
* authorization. *
****************************************************************************/
/*
- * $Id: test_instr.c,v 1.10 2020/02/02 23:34:34 tom Exp $
+ * $Id: test_instr.c,v 1.12 2022/12/10 23:58:01 tom Exp $
*
* Author: Thomas E Dickey
*
@@ -232,19 +232,49 @@ recursive_test(int level, char **argv, WINDOW *chrwin, WINDOW *strwin)
return TRUE;
}
+static void
+usage(int ok)
+{
+ static const char *msg[] =
+ {
+ "Usage: test_instr [options] [file1 [...]]"
+ ,""
+ ,USAGE_COMMON
+ };
+ size_t n;
+
+ for (n = 0; n < SIZEOF(msg); n++)
+ fprintf(stderr, "%s\n", msg[n]);
+
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
+}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
+
int
main(int argc, char *argv[])
{
WINDOW *chrbox;
WINDOW *chrwin;
WINDOW *strwin;
+ int ch;
+
+ while ((ch = getopt(argc, argv, OPTS_COMMON)) != -1) {
+ switch (ch) {
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
+ default:
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
+ }
+ }
setlocale(LC_ALL, "");
- if (argc < 2) {
- fprintf(stderr, "usage: %s file\n", argv[0]);
- return EXIT_FAILURE;
- }
+ if (optind + 1 > argc)
+ usage(FALSE);
initscr();
@@ -255,7 +285,7 @@ main(int argc, char *argv[])
chrwin = derwin(chrbox, 2, COLS - 2, 1, 1);
strwin = derwin(chrbox, 2, COLS - 2, 3, 1);
- recursive_test(1, argv, chrwin, strwin);
+ recursive_test(optind, argv, chrwin, strwin);
endwin();
ExitProgram(EXIT_SUCCESS);
diff --git a/test/test_inwstr.c b/test/test_inwstr.c
index 81ebda776a38..c22add7b8fa9 100644
--- a/test/test_inwstr.c
+++ b/test/test_inwstr.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2022 Thomas E. Dickey *
* Copyright 2007-2010,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,7 +27,7 @@
* authorization. *
****************************************************************************/
/*
- * $Id: test_inwstr.c,v 1.6 2020/02/02 23:34:34 tom Exp $
+ * $Id: test_inwstr.c,v 1.8 2022/12/10 23:56:39 tom Exp $
*
* Author: Thomas E Dickey
*
@@ -232,19 +232,49 @@ recursive_test(int level, char **argv, WINDOW *chrwin, WINDOW *strwin)
return TRUE;
}
+static void
+usage(int ok)
+{
+ static const char *msg[] =
+ {
+ "Usage: test_inwstr [options] [file1 [...]]"
+ ,""
+ ,USAGE_COMMON
+ };
+ size_t n;
+
+ for (n = 0; n < SIZEOF(msg); n++)
+ fprintf(stderr, "%s\n", msg[n]);
+
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
+}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
+
int
main(int argc, char *argv[])
{
WINDOW *chrbox;
WINDOW *chrwin;
WINDOW *strwin;
+ int ch;
+
+ while ((ch = getopt(argc, argv, OPTS_COMMON)) != -1) {
+ switch (ch) {
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
+ default:
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
+ }
+ }
setlocale(LC_ALL, "");
- if (argc < 2) {
- fprintf(stderr, "usage: %s file\n", argv[0]);
- return EXIT_FAILURE;
- }
+ if (optind + 1 > argc)
+ usage(FALSE);
initscr();
@@ -255,7 +285,7 @@ main(int argc, char *argv[])
chrwin = derwin(chrbox, 2, COLS - 2, 1, 1);
strwin = derwin(chrbox, 2, COLS - 2, 3, 1);
- recursive_test(1, argv, chrwin, strwin);
+ recursive_test(optind, argv, chrwin, strwin);
endwin();
ExitProgram(EXIT_SUCCESS);
diff --git a/test/test_mouse.c b/test/test_mouse.c
new file mode 100644
index 000000000000..5508ea42f503
--- /dev/null
+++ b/test/test_mouse.c
@@ -0,0 +1,284 @@
+/****************************************************************************
+ * Copyright 2022-2023,2024 Thomas E. Dickey *
+ * Copyright 2022 Leonid S. Usov <leonid.s.usov at gmail.com> *
+ * *
+ * 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. *
+ ****************************************************************************/
+/*
+ * $Id: test_mouse.c,v 1.31 2024/03/30 20:45:31 tom Exp $
+ *
+ * Author: Leonid S Usov
+ *
+ * Observe mouse events in the raw terminal or parsed ncurses modes
+ */
+
+#include <test.priv.h>
+
+#if defined(NCURSES_MOUSE_VERSION) && !defined(_NC_WINDOWS)
+
+static int logoffset = 0;
+
+static void
+raw_loop(void)
+{
+ char *xtermcap;
+
+ printf("Entering raw mode. Ctrl-c to quit.\n");
+
+ newterm(NULL, stdout, stdin);
+ raw();
+ xtermcap = tigetstr("XM");
+ if (!VALID_STRING(xtermcap)) {
+ fprintf(stderr, "couldn't get XM terminfo");
+ return;
+ }
+
+ putp(tgoto(xtermcap, 1, 1));
+ fflush(stdout);
+
+ while (1) {
+ int c = getc(stdin);
+ const char *pretty;
+
+ if (c == -1 || c == '\003') {
+ break;
+ } else if (c == '\033') {
+ printf("\r\n\\E");
+ } else if ((pretty = unctrl((chtype) c)) != NULL) {
+ printf("%s", pretty);
+ } else if (isprint(c)) {
+ printf("%c", c);
+ } else {
+ printf("{%x}", UChar(c));
+ }
+ }
+
+ putp(tgoto(xtermcap, 0, 0));
+ fflush(stdout);
+ noraw();
+}
+
+static void logw(const char *fmt, ...) GCC_PRINTFLIKE(1, 2);
+
+static void
+logw(const char *fmt, ...)
+{
+ int row = getcury(stdscr);
+ va_list args;
+
+ va_start(args, fmt);
+ wmove(stdscr, row++, 0);
+ vw_printw(stdscr, fmt, args);
+ va_end(args);
+
+ clrtoeol();
+
+ row %= (getmaxy(stdscr) - logoffset);
+ if (row < logoffset) {
+ row = logoffset;
+ }
+
+ wmove(stdscr, row, 0);
+ wprintw(stdscr, ">");
+ clrtoeol();
+}
+
+static void
+cooked_loop(char *my_environ, int interval)
+{
+ MEVENT event;
+
+ initscr();
+ noecho();
+ cbreak(); /* Line buffering disabled; pass everything */
+ nonl();
+ keypad(stdscr, TRUE);
+
+ /* Get all the mouse events */
+ mousemask(ALL_MOUSE_EVENTS | REPORT_MOUSE_POSITION, NULL);
+ mouseinterval(interval);
+
+ logw("Ctrl-c to quit");
+ logw("--------------");
+ if (my_environ)
+ logw("%s", my_environ);
+ logoffset = getcury(stdscr);
+
+ while (1) {
+ int c = getch();
+
+ switch (c) {
+ case KEY_MOUSE:
+ if (getmouse(&event) == OK) {
+ unsigned btn;
+ mmask_t events;
+#if NCURSES_MOUSE_VERSION > 1
+ const unsigned max_btn = 5;
+#else
+ const unsigned max_btn = 4;
+#endif
+ const mmask_t btn_mask = (NCURSES_BUTTON_RELEASED |
+ NCURSES_BUTTON_PRESSED |
+ NCURSES_BUTTON_CLICKED |
+ NCURSES_DOUBLE_CLICKED |
+ NCURSES_TRIPLE_CLICKED);
+ bool found = FALSE;
+ for (btn = 1; btn <= max_btn; btn++) {
+ events = (mmask_t) (event.bstate
+ & NCURSES_MOUSE_MASK(btn, btn_mask));
+ if (events == 0)
+ continue;
+#define ShowQ(btn,name) \
+ (((event.bstate & NCURSES_MOUSE_MASK(btn, NCURSES_ ## name)) != 0) \
+ ? (" " #name) \
+ : "")
+#define ShowM(name) \
+ (((event.bstate & NCURSES_MOUSE_MASK(btn, BUTTON_ ## name)) != 0) \
+ ? (" " #name) \
+ : "")
+#define ShowP() \
+ ((event.bstate & REPORT_MOUSE_POSITION) != 0 \
+ ? " position" \
+ : "")
+ logw("[%08lX] button %d%s%s%s%s%s%s%s%s%s @ %d, %d",
+ (unsigned long) events,
+ btn,
+ ShowQ(btn, BUTTON_RELEASED),
+ ShowQ(btn, BUTTON_PRESSED),
+ ShowQ(btn, BUTTON_CLICKED),
+ ShowQ(btn, DOUBLE_CLICKED),
+ ShowQ(btn, TRIPLE_CLICKED),
+ ShowM(SHIFT),
+ ShowM(CTRL),
+ ShowM(ALT),
+ ShowP(),
+ event.y, event.x);
+ found = TRUE;
+ }
+ /*
+ * A position report need not have a button associated with it.
+ * The modifiers probably are unused.
+ */
+ if (!found && (event.bstate & REPORT_MOUSE_POSITION)) {
+ logw("[%08lX]%s%s%s%s @ %d, %d",
+ (unsigned long) events,
+ ShowM(SHIFT),
+ ShowM(CTRL),
+ ShowM(ALT),
+ ShowP(),
+ event.y, event.x);
+ }
+ }
+ break;
+ case '\003':
+ goto end;
+ default:
+ logw("got another char: 0x%x", UChar(c));
+ }
+ refresh();
+ }
+ end:
+ endwin();
+}
+
+static void
+usage(int ok)
+{
+ static const char *msg[] =
+ {
+ "Usage: test_mouse [options]"
+ ,""
+ ,"Test mouse events. These examples for $TERM demonstrate xterm"
+ ,"features:"
+ ," xterm"
+ ," xterm-1002"
+ ," xterm-1003"
+ ,""
+ ,USAGE_COMMON
+ ,"Options:"
+ ," -r show raw input stream, injecting a new line before every ESC"
+ ," -i n set mouse interval to n; default is 0 (no double-clicks)"
+ ," -T term use terminal description other than $TERM"
+ };
+ unsigned n;
+ for (n = 0; n < sizeof(msg) / sizeof(char *); ++n) {
+ fprintf(stderr, "%s\n", msg[n]);
+ }
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
+}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
+
+int
+main(int argc, char *argv[])
+{
+ bool rawmode = FALSE;
+ int interval = 0;
+ int ch;
+ size_t my_len;
+ char *my_environ = NULL;
+ const char *term_format = "TERM=%s";
+
+ while ((ch = getopt(argc, argv, OPTS_COMMON "i:rT:")) != -1) {
+ switch (ch) {
+ case 'i':
+ interval = atoi(optarg);
+ break;
+ case 'r':
+ rawmode = TRUE;
+ break;
+ case 'T':
+ my_len = strlen(term_format) + strlen(optarg) + 1;
+ my_environ = malloc(my_len);
+ if (my_environ != NULL) {
+ _nc_SPRINTF(my_environ, _nc_SLIMIT(my_len) term_format, optarg);
+ putenv(my_environ);
+ }
+ break;
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
+ default:
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
+ }
+ }
+ if (optind < argc) {
+ usage(FALSE);
+ ExitProgram(EXIT_FAILURE);
+ }
+
+ if (rawmode) {
+ raw_loop();
+ } else {
+ cooked_loop(my_environ, interval);
+ }
+
+ ExitProgram(EXIT_SUCCESS);
+}
+#else
+int
+main(void)
+{
+ printf("This program requires the ncurses library\n");
+ ExitProgram(EXIT_FAILURE);
+}
+#endif
diff --git a/test/test_opaque.c b/test/test_opaque.c
index 8e19a8c29cc4..09b98c009019 100644
--- a/test/test_opaque.c
+++ b/test/test_opaque.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020-2021,2022 Thomas E. Dickey *
* Copyright 2007-2008,2009 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,7 +27,7 @@
* authorization. *
****************************************************************************/
/*
- * $Id: test_opaque.c,v 1.10 2020/02/02 23:34:34 tom Exp $
+ * $Id: test_opaque.c,v 1.15 2022/12/11 00:03:10 tom Exp $
*
* Author: Thomas E Dickey
*
@@ -45,6 +45,9 @@
bool is_scrollok(const WINDOW *win);
bool is_syncok(const WINDOW *win);
int wgetscrreg (const WINDOW *, int *, int *);
+ bool is_pad(const WINDOW *win);
+ bool is_subwin(const WINDOW *win);
+ int wgetdelay(const WINDOW *win);
*/
#include <test.priv.h>
@@ -52,7 +55,7 @@
#define BASE_Y 6
#define MAX_COLS 1024
-#if defined(NCURSES_VERSION_PATCH) && (NCURSES_VERSION_PATCH >= 20080119) && NCURSES_EXT_FUNCS
+#if defined(NCURSES_VERSION_PATCH) && (NCURSES_VERSION_PATCH >= 20090906) && NCURSES_EXT_FUNCS && NCURSES_OPAQUE
static bool
Quit(int ch)
@@ -209,6 +212,8 @@ static struct {
};
/* *INDENT-ON* */
+#define bool2c(c) ((c) ? 'T' : 'F')
+
/*
* Display and/or allow update for the properties accessed in the opaque
* window. Some may change state after refreshing the window, so we
@@ -227,18 +232,35 @@ show_opaque(WINDOW *stswin, WINDOW *txtwin, bool before, int active)
show_keyword(stswin, n, active, bool_funcs[n].name);
to_result(stswin, n, before);
- wprintw(stswin, "%c", bool_funcs[n].func(txtwin, -1) ? 'T' : 'F');
+ wprintw(stswin, "%c", bool2c(bool_funcs[n].func(txtwin, -1)));
}
+ show_keyword(stswin, n, active, "is_pad");
+ to_result(stswin, n, TRUE);
+ wprintw(stswin, "%c", bool2c(is_pad(txtwin)));
+
+ ++n;
+ show_keyword(stswin, n, active, "is_subwin");
+ to_result(stswin, n, TRUE);
+ wprintw(stswin, "%c", bool2c(is_subwin(txtwin)));
+
+ ++n;
show_keyword(stswin, n, active, "wgetparent");
to_result(stswin, n, TRUE);
wprintw(stswin, "%p", (void *) wgetparent(txtwin));
++n;
+ show_keyword(stswin, n, active, "wgetdelay");
+ to_result(stswin, n, TRUE);
+ wprintw(stswin, "%d", wgetdelay(txtwin));
+
+ ++n;
show_keyword(stswin, n, active, "wgetscrreg");
to_result(stswin, n, TRUE);
if (wgetscrreg(txtwin, &top, &bottom) == OK)
wprintw(stswin, "%d,%d", top, bottom);
+ else
+ wprintw(stswin, "none");
wnoutrefresh(stswin);
return active;
@@ -432,18 +454,48 @@ test_set_tabsize(void)
set_tabsize(save_tabsize);
}
+static void
+usage(int ok)
+{
+ static const char *msg[] =
+ {
+ "Usage: test_opaque [options] file1 [file2 [...]]"
+ ,""
+ ,USAGE_COMMON
+ };
+ size_t n;
+
+ for (n = 0; n < SIZEOF(msg); n++)
+ fprintf(stderr, "%s\n", msg[n]);
+
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
+}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
+
int
main(int argc, char *argv[])
{
WINDOW *stsbox;
WINDOW *stswin;
+ int ch;
+
+ while ((ch = getopt(argc, argv, OPTS_COMMON)) != -1) {
+ switch (ch) {
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
+ default:
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
+ }
+ }
setlocale(LC_ALL, "");
- if (argc < 2) {
- fprintf(stderr, "usage: %s file\n", argv[0]);
- return EXIT_FAILURE;
- }
+ if (optind + 1 > argc)
+ usage(FALSE);
initscr();
@@ -457,7 +509,7 @@ main(int argc, char *argv[])
stswin = derwin(stsbox, BASE_Y - 2, COLS - 2, 1, 1);
keypad(stswin, TRUE);
- test_opaque(1, argv, stswin);
+ test_opaque(optind, argv, stswin);
endwin();
ExitProgram(EXIT_SUCCESS);
diff --git a/test/test_setupterm.c b/test/test_setupterm.c
index 9d582aa0ad55..24d7c46c7773 100644
--- a/test/test_setupterm.c
+++ b/test/test_setupterm.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020-2022,2023 Thomas E. Dickey *
* Copyright 2015,2016 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -30,7 +30,7 @@
/*
* Author: Thomas E. Dickey
*
- * $Id: test_setupterm.c,v 1.10 2020/02/02 23:34:34 tom Exp $
+ * $Id: test_setupterm.c,v 1.17 2023/06/24 14:19:52 tom Exp $
*
* A simple demo of setupterm/restartterm.
*/
@@ -43,6 +43,55 @@ static bool f_opt = FALSE;
static bool n_opt = FALSE;
static bool r_opt = FALSE;
+#if NO_LEAKS
+static TERMINAL **saved_terminals;
+static size_t num_saved;
+static size_t max_saved;
+
+static void
+failed(const char *msg)
+{
+ perror(msg);
+ ExitProgram(EXIT_FAILURE);
+}
+
+static void
+finish(int code)
+{
+ size_t n;
+ for (n = 0; n < num_saved; ++n)
+ del_curterm(saved_terminals[n]);
+ free(saved_terminals);
+ ExitProgram(code);
+}
+
+static void
+save_curterm(void)
+{
+ size_t n;
+ bool found = FALSE;
+ for (n = 0; n < num_saved; ++n) {
+ if (saved_terminals[n] == cur_term) {
+ found = TRUE;
+ break;
+ }
+ }
+ if (!found) {
+ if (num_saved + 1 >= max_saved) {
+ max_saved += 100;
+ saved_terminals = typeRealloc(TERMINAL *, max_saved, saved_terminals);
+ if (saved_terminals == NULL)
+ failed("realloc");
+ }
+ saved_terminals[num_saved++] = cur_term;
+ }
+}
+
+#else
+#define finish(code) ExitProgram(code)
+#define save_curterm() /* nothing */
+#endif
+
static void
test_rc(NCURSES_CONST char *name, int actual_rc, int actual_err)
{
@@ -104,40 +153,46 @@ test_setupterm(NCURSES_CONST char *name)
#endif
rc = setupterm(name, 0, f_opt ? NULL : &err);
test_rc(name, rc, err);
+ save_curterm();
}
static void
-usage(void)
+usage(int ok)
{
static const char *msg[] =
{
- "Usage: test_setupterm [options] [terminal]",
- "",
- "Demonstrate error-checking for setupterm and restartterm.",
- "",
- "Options:",
- " -a automatic test for each success/error code",
- " -f treat errors as fatal",
- " -n set environment to disable terminfo database, assuming",
- " the compiled-in paths for database also fail",
+ "Usage: test_setupterm [options] [terminal]"
+ ,""
+ ,USAGE_COMMON
+ ,"Demonstrate error-checking for setupterm and restartterm."
+ ,""
+ ,"Options:"
+ ," -a automatic test for each success/error code"
+ ," -f treat errors as fatal"
+ ," -n set environment to disable terminfo database, assuming"
+ ," the compiled-in paths for database also fail"
#if HAVE_RESTARTTERM
- " -r test restartterm rather than setupterm",
+ ," -r test restartterm rather than setupterm"
#endif
};
unsigned n;
for (n = 0; n < SIZEOF(msg); ++n) {
fprintf(stderr, "%s\n", msg[n]);
}
- ExitProgram(EXIT_FAILURE);
+ finish(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
main(int argc, char *argv[])
{
+ int ch;
int n;
- while ((n = getopt(argc, argv, "afnr")) != -1) {
- switch (n) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "afnr")) != -1) {
+ switch (ch) {
case 'a':
a_opt = TRUE;
break;
@@ -152,9 +207,12 @@ main(int argc, char *argv[])
r_opt = TRUE;
break;
#endif
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
- break;
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
}
}
@@ -182,13 +240,14 @@ main(int argc, char *argv[])
if (r_opt) {
newterm("ansi", stdout, stdin);
reset_shell_mode();
+ save_curterm();
}
if (a_opt) {
static char predef[][9] =
{"vt100", "dumb", "lpr", "unknown", "none-such"};
if (optind < argc) {
- usage();
+ usage(FALSE);
}
for (n = 0; n < 4; ++n) {
test_setupterm(predef[n]);
@@ -203,12 +262,12 @@ main(int argc, char *argv[])
}
}
- ExitProgram(EXIT_SUCCESS);
+ finish(EXIT_SUCCESS);
}
#else /* !HAVE_TIGETSTR */
int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+main(void)
{
printf("This program requires the terminfo functions such as tigetstr\n");
ExitProgram(EXIT_FAILURE);
diff --git a/test/test_sgr.c b/test/test_sgr.c
index aeb833cf9e10..8763dca3cd34 100644
--- a/test/test_sgr.c
+++ b/test/test_sgr.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2022,2023 Thomas E. Dickey *
* Copyright 2015-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -30,7 +30,7 @@
/*
* Author: Thomas E. Dickey
*
- * $Id: test_sgr.c,v 1.15 2020/02/02 23:34:34 tom Exp $
+ * $Id: test_sgr.c,v 1.22 2023/05/27 20:13:10 tom Exp $
*
* A simple demo of the sgr/sgr0 terminal capabilities.
*/
@@ -38,7 +38,7 @@
#include <test.priv.h>
#if !HAVE_TIGETSTR
-static void failed(const char *) GCC_NORETURN;
+static GCC_NORETURN void failed(const char *);
static void
failed(const char *msg)
@@ -61,7 +61,7 @@ static int db_item;
static long total_values;
static char *
-make_dbitem(char *p, char *q)
+make_dbitem(const char *const p, const char *const q)
{
size_t need = strlen(e_opt) + 2 + (size_t) (p - q);
char *result = malloc(need);
@@ -116,7 +116,7 @@ next_dbitem(void)
db_item++;
}
}
- printf("** %s\n", result);
+ printf("** %s\n", result ? result : "<null>");
return result;
}
@@ -305,35 +305,39 @@ brute_force(const char *name)
}
static void
-usage(void)
+usage(int ok)
{
static const char *msg[] =
{
- "Usage: test_sgr [options] [terminal]",
- "",
- "Print all distinct combinations of sgr capability.",
- "",
- "Options:",
- " -d LIST colon-separated list of databases to use",
- " -e NAME environment variable to set with -d option",
- " -n do not initialize terminal, to test error-checking",
- " -q quiet (prints only counts)",
+ "Usage: test_sgr [options] [terminal]"
+ ,""
+ ,"Print all distinct combinations of sgr capability."
+ ,""
+ ,USAGE_COMMON
+ ,"Options:"
+ ," -d LIST colon-separated list of databases to use"
+ ," -e NAME environment variable to set with -d option"
+ ," -n do not initialize terminal, to test error-checking"
+ ," -q quiet (prints only counts)"
};
unsigned n;
for (n = 0; n < SIZEOF(msg); ++n) {
fprintf(stderr, "%s\n", msg[n]);
}
- ExitProgram(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
main(int argc, char *argv[])
{
- int n;
+ int ch;
char *name;
- while ((n = getopt(argc, argv, "d:e:nq")) != -1) {
- switch (n) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "d:e:nq")) != -1) {
+ switch (ch) {
case 'd':
d_opt = optarg;
break;
@@ -346,15 +350,19 @@ main(int argc, char *argv[])
case 'q':
q_opt = TRUE;
break;
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
- break;
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
}
}
make_dblist();
if (optind < argc) {
+ int n;
for (n = optind; n < argc; ++n) {
brute_force(argv[n]);
}
@@ -376,7 +384,7 @@ main(int argc, char *argv[])
#else /* !HAVE_TIGETSTR */
int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+main(void)
{
failed("This program requires the terminfo functions such as tigetstr");
ExitProgram(EXIT_FAILURE);
diff --git a/test/test_termattrs.c b/test/test_termattrs.c
index fc22216a675a..ec44cc227544 100644
--- a/test/test_termattrs.c
+++ b/test/test_termattrs.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2022 Thomas E. Dickey *
* Copyright 2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,11 +27,12 @@
* authorization. *
****************************************************************************/
/*
- * $Id: test_termattrs.c,v 1.3 2020/02/02 23:34:34 tom Exp $
+ * $Id: test_termattrs.c,v 1.8 2022/12/10 23:23:27 tom Exp $
*
* Demonstrate the termattrs and term_attrs functions.
*/
+#define USE_CURSES
#define USE_TINFO
#include <test.priv.h>
@@ -117,28 +118,32 @@ test_termattrs(unsigned long value)
}
static void
-usage(void)
+usage(int ok)
{
static const char *tbl[] =
{
"Usage: test_termattrs [options]"
,""
+ ,USAGE_COMMON
,"Options:"
- ," -e use stderr (default stdout)"
- ," -n do not initialize terminal"
- ," -s use setupterm rather than newterm"
+ ," -e use stderr (default stdout)"
+ ," -n do not initialize terminal"
+ ," -s use setupterm rather than newterm"
#if USE_WIDEC_SUPPORT
- ," -w use term_attrs rather than termattrs"
+ ," -w use term_attrs rather than termattrs"
#endif
};
unsigned n;
for (n = 0; n < SIZEOF(tbl); ++n)
fprintf(stderr, "%s\n", tbl[n]);
- ExitProgram(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+main(int argc, char *argv[])
{
int ch;
bool no_init = FALSE;
@@ -149,7 +154,7 @@ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
my_fp = stdout;
- while ((ch = getopt(argc, argv, "ensw")) != -1) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "ensw")) != -1) {
switch (ch) {
case 'e':
my_fp = stderr;
@@ -165,13 +170,16 @@ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
w_opt = TRUE;
break;
#endif
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
- break;
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
}
}
if (optind < argc)
- usage();
+ usage(FALSE);
if (no_init) {
START_TRACE();
@@ -191,8 +199,7 @@ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
#else
int
-main(int argc GCC_UNUSED,
- char *argv[]GCC_UNUSED)
+main(void)
{
fprintf(stderr, "This program requires terminfo\n");
exit(EXIT_FAILURE);
diff --git a/test/test_tparm.c b/test/test_tparm.c
index 40ffc4fb1d07..50289defdf60 100644
--- a/test/test_tparm.c
+++ b/test/test_tparm.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020-2022,2023 Thomas E. Dickey *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
@@ -29,19 +29,35 @@
/*
* Author: Thomas E. Dickey
*
- * $Id: test_tparm.c,v 1.4 2020/05/31 00:51:32 tom Exp $
+ * $Id: test_tparm.c,v 1.39 2023/11/11 01:00:03 tom Exp $
*
- * Exercise tparm, either for all possible capabilities with fixed parameters,
- * or one capability with all possible parameters.
- *
- * TODO: incorporate tic.h and _nc_tparm_analyze
- * TODO: optionally test tiparm
- * TODO: add checks/logic to handle "%s" in tparm
+ * Exercise tparm/tiparm, either for all possible capabilities with fixed
+ * parameters, or one capability with specific combinations of parameters.
*/
#define USE_TINFO
#include <test.priv.h>
-static void failed(const char *) GCC_NORETURN;
+#if NCURSES_XNAMES
+#if HAVE_TERM_ENTRY_H
+#include <term_entry.h>
+#else
+#undef NCURSES_XNAMES
+#define NCURSES_XNAMES 0
+#endif
+#endif
+
+#define MAX_PARM 9
+
+#define GrowArray(array,limit,length) \
+ if (length + 2 >= limit) { \
+ limit *= 2; \
+ array = typeRealloc(char *, limit, array); \
+ if (array == 0) { \
+ failed("no memory: " #array); \
+ } \
+ }
+
+static GCC_NORETURN void failed(const char *);
static void
failed(const char *msg)
@@ -53,8 +69,43 @@ failed(const char *msg)
#if HAVE_TIGETSTR
static int a_opt;
+static int p_opt;
static int v_opt;
+#if HAVE_TIPARM
+static int i_opt;
+#endif
+
+#if HAVE_TIPARM_S
+static int s_opt;
+#endif
+
+/*
+ * Total tests (and failures):
+ */
+static long total_tests;
+static long total_fails;
+
+/*
+ * Total characters formatted for tputs:
+ */
+static long total_nulls;
+static long total_ctrls;
+static long total_print;
+
+static int
+output_func(int ch)
+{
+ if (ch == 0) {
+ total_nulls++;
+ } else if (ch < 32 || (ch >= 127 && ch < 160)) {
+ total_ctrls++;
+ } else {
+ total_print++;
+ }
+ return ch;
+}
+
static int
isNumeric(char *source)
{
@@ -65,31 +116,40 @@ isNumeric(char *source)
return result;
}
-static char *
-validate(const char *name)
+static int
+relevant(const char *name, const char *value)
{
- char *value = tigetstr(name);
- if (!VALID_STRING(value)) {
- if (v_opt > 1) {
+ int code = 1;
+ if (VALID_STRING(value)) {
+ if (strstr(value, "%p") == 0
+ && strstr(value, "%d") == 0
+ && strstr(value, "%s") == 0
+ && (!p_opt || strstr(value, "$<") == 0)) {
+ if (v_opt > 2)
+ printf("? %s noparams\n", name);
+ code = 0;
+ }
+ } else {
+ if (v_opt > 2) {
printf("? %s %s\n",
(value == ABSENT_STRING)
? "absent"
: "cancel",
name);
}
- value = 0;
+ code = 0;
}
- return value;
+ return code;
}
static int
-increment(int *all_parms, int *num_parms, int len_parms, int end_parms)
+increment(long *all_parms, int *num_parms, int len_parms, int end_parms)
{
int rc = 0;
int n;
- if (len_parms > 9)
- len_parms = 9;
+ if (len_parms > MAX_PARM)
+ len_parms = MAX_PARM;
if (end_parms < len_parms) {
if (all_parms[end_parms]++ >= num_parms[end_parms]) {
@@ -107,103 +167,298 @@ increment(int *all_parms, int *num_parms, int len_parms, int end_parms)
return rc;
}
+/* parse the format string to determine which positional parameters
+ * are assumed to be strings.
+ */
+#if HAVE_TISCAN_S
+static int
+analyze_format(const char *format, int *mask, char **p_is_s)
+{
+ int arg_count;
+ int arg_mask;
+ int n;
+ if (tiscan_s(&arg_count, &arg_mask, format) == OK) {
+ *mask = arg_mask;
+ for (n = 0; n < MAX_PARM; ++n) {
+ static char dummy[1];
+ p_is_s[n] = (arg_mask & 1) ? dummy : NULL;
+ arg_mask >>= 1;
+ }
+ } else {
+ *mask = 0;
+ arg_count = 0;
+ for (n = 0; n < MAX_PARM; ++n) {
+ p_is_s[n] = NULL;
+ }
+ }
+ return arg_count;
+}
+#elif HAVE__NC_TPARM_ANALYZE
+extern int _nc_tparm_analyze(TERMINAL *, const char *, char **, int *);
+
+static int
+analyze_format(const char *format, int *mask, char **p_is_s)
+{
+ int popcount = 0;
+ int analyzed = _nc_tparm_analyze(cur_term, format, p_is_s, &popcount);
+ int n;
+ if (analyzed < popcount) {
+ analyzed = popcount;
+ }
+ *mask = 0;
+ for (n = 0; n < MAX_PARM; ++n) {
+ if (p_is_s[n])
+ *mask |= (1 << n);
+ }
+ return analyzed;
+}
+#else
+/* TODO: make this work without direct use of ncurses internals. */
+static int
+analyze_format(const char *format, int *mask, char **p_is_s)
+{
+ int n;
+ char *filler = strstr(format, "%s");
+ *mask = 0;
+ for (n = 0; n < MAX_PARM; ++n) {
+ p_is_s[n] = filler;
+ }
+ return n;
+}
+#endif
+
+#define NumStr(n) use_strings[n] \
+ ? (long) (my_intptr_t) (number[n] \
+ ? string[n] \
+ : NULL) \
+ : number[n]
+
+#define NS_0(fmt) fmt
+#define NS_1(fmt) NS_0(fmt), NumStr(0)
+#define NS_2(fmt) NS_1(fmt), NumStr(1)
+#define NS_3(fmt) NS_2(fmt), NumStr(2)
+#define NS_4(fmt) NS_3(fmt), NumStr(3)
+#define NS_5(fmt) NS_4(fmt), NumStr(4)
+#define NS_6(fmt) NS_5(fmt), NumStr(5)
+#define NS_7(fmt) NS_6(fmt), NumStr(6)
+#define NS_8(fmt) NS_7(fmt), NumStr(7)
+#define NS_9(fmt) NS_8(fmt), NumStr(8)
+
static void
-test_tparm(const char *name, int *number)
+test_tparm(const char *name, const char *format, long *number, char **string)
{
- char *format = tigetstr(name);
- if ((format = validate(name)) != 0) {
- char *result = tparm(format,
- number[0],
- number[1],
- number[2],
- number[3],
- number[4],
- number[5],
- number[6],
- number[7],
- number[8]);
- if (v_opt > 1)
- printf(".. %2d = %2d %2d %2d %2d %2d %2d %2d %2d %2d %s\n",
- result != 0 ? (int) strlen(result) : -1,
- number[0],
- number[1],
- number[2],
- number[3],
- number[4],
- number[5],
- number[6],
- number[7],
- number[8],
- name);
+ char *use_strings[MAX_PARM];
+ char *result = NULL;
+ int nparam;
+ int mask;
+
+ nparam = analyze_format(format, &mask, use_strings);
+#if HAVE_TIPARM_S
+ if (s_opt) {
+ switch (nparam) {
+ case 0:
+ result = tiparm_s(0, mask, NS_0(format));
+ break;
+ case 1:
+ result = tiparm_s(1, mask, NS_1(format));
+ break;
+ case 2:
+ result = tiparm_s(2, mask, NS_2(format));
+ break;
+ case 3:
+ result = tiparm_s(3, mask, NS_3(format));
+ break;
+ case 4:
+ result = tiparm_s(4, mask, NS_4(format));
+ break;
+ case 5:
+ result = tiparm_s(5, mask, NS_5(format));
+ break;
+ case 6:
+ result = tiparm_s(6, mask, NS_6(format));
+ break;
+ case 7:
+ result = tiparm_s(7, mask, NS_7(format));
+ break;
+ case 8:
+ result = tiparm_s(8, mask, NS_8(format));
+ break;
+ case 9:
+ result = tiparm_s(9, mask, NS_9(format));
+ break;
+ }
+ } else
+#endif
+#if HAVE_TIPARM
+ if (i_opt) {
+ switch (nparam) {
+ case 0:
+ result = tiparm(NS_0(format));
+ break;
+ case 1:
+ result = tiparm(NS_1(format));
+ break;
+ case 2:
+ result = tiparm(NS_2(format));
+ break;
+ case 3:
+ result = tiparm(NS_3(format));
+ break;
+ case 4:
+ result = tiparm(NS_4(format));
+ break;
+ case 5:
+ result = tiparm(NS_5(format));
+ break;
+ case 6:
+ result = tiparm(NS_6(format));
+ break;
+ case 7:
+ result = tiparm(NS_7(format));
+ break;
+ case 8:
+ result = tiparm(NS_8(format));
+ break;
+ case 9:
+ result = tiparm(NS_9(format));
+ break;
+ }
+ } else
+#endif
+ result = tparm(NS_9(format));
+ total_tests++;
+ if (result != NULL) {
+ tputs(result, 1, output_func);
+ } else {
+ total_fails++;
+ }
+ if (v_opt > 1) {
+ int n;
+ printf(".. %3d =", result != 0 ? (int) strlen(result) : -1);
+ for (n = 0; n < nparam; ++n) {
+ if (use_strings[n]) {
+ if (number[n]) {
+ printf(" \"%s\"", string[n]);
+ } else {
+ printf(" ?");
+ }
+ } else {
+ printf(" %2ld", number[n]);
+ }
+ }
+ printf(" %s\n", name);
}
}
static void
-usage(void)
+usage(int ok)
{
static const char *msg[] =
{
- "Usage: test_tparm [options] [capability] [value1 [value2 [...]]]",
- "",
- "Print all distinct combinations of given capability.",
- "",
- "Options:",
- " -T TERM override $TERM; this may be a comma-separated list or \"-\"",
- " to read a list from standard-input",
- " -a if capability is given, test all combinations of values",
- " -r NUM repeat tests NUM times",
- " -v show values and results",
+ "Usage: test_tparm [options] [capability] [value1 [value2 [...]]]"
+ ,""
+ ,"Use tparm/tputs for all distinct combinations of given capability."
+ ,""
+ ,USAGE_COMMON
+ ,"Options:"
+ ," -T TERM override $TERM; this may be a comma-separated list or \"-\""
+ ," to read a list from standard-input"
+ ," -a test all combinations of parameters"
+ ," [value1...] forms a vector of maximum parameter-values."
+#if HAVE_TIPARM
+ ," -i test tiparm rather than tparm"
+#endif
+ ," -p test capabilities with no parameters but having padding"
+ ," -r NUM repeat tests NUM times"
+#if HAVE_TIPARM_S
+ ," -s test tiparm_s rather than tparm"
+#endif
+ ," -v show values and results"
};
unsigned n;
for (n = 0; n < SIZEOF(msg); ++n) {
fprintf(stderr, "%s\n", msg[n]);
}
- ExitProgram(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
#define PLURAL(n) n, (n != 1) ? "s" : ""
#define COLONS(n) (n >= 1) ? ":" : ""
+#define NUMFORM "%10ld"
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
+
int
main(int argc, char *argv[])
{
+ int ch;
int n;
int r_run, t_run, n_run;
char *old_term = getenv("TERM");
int r_opt = 1;
char *t_opt = 0;
- int len_names = 0; /* cur # of items in all_names[] */
- int use_names = 10; /* max # of items in all_names[] */
- char **all_names = typeCalloc(char *, use_names);
- int all_parms[10]; /* workspace for "-a" option */
+
+ int std_caps = 0; /* predefine items in all_caps[] */
+ int len_caps = 0; /* cur # of items in all_caps[] */
+ int max_caps = 10; /* max # of items in all_caps[] */
+ char **all_caps = typeCalloc(char *, max_caps);
+
+ long all_parms[10]; /* workspace for "-a" option */
+
int len_terms = 0; /* cur # of items in all_terms[] */
- int use_terms = 10; /* max # of items in all_terms[] */
- char **all_terms = typeCalloc(char *, use_terms);
+ int max_terms = 10; /* max # of items in all_terms[] */
+ char **all_terms = typeCalloc(char *, max_terms);
+
+ int use_caps;
+ int max_name = 10; /* max # of items in cap_name[] */
+ int max_data = 10; /* max # of items in cap_data[] */
+ char **cap_name;
+ char **cap_data;
+
int len_parms = 0; /* cur # of items in num_parms[], str_parms[] */
- int use_parms = argc + 10; /* max # of items in num_parms[], str_parms[] */
- int *num_parms = typeCalloc(int, use_parms);
- char **str_parms = typeCalloc(char *, use_parms);
+ int max_parms = argc + 10; /* max # of items in num_parms[], str_parms[] */
+ int *num_parms = typeCalloc(int, max_parms);
+ char **str_parms = typeCalloc(char *, max_parms);
+ long use_parms = 1;
- if (all_names == 0 || all_terms == 0 || num_parms == 0 || str_parms == 0)
+ if (all_caps == 0 || all_terms == 0 || num_parms == 0 || str_parms == 0)
failed("no memory");
- while ((n = getopt(argc, argv, "T:ar:v")) != -1) {
- switch (n) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "T:aipr:sv")) != -1) {
+ switch (ch) {
case 'T':
t_opt = optarg;
break;
case 'a':
++a_opt;
break;
+#if HAVE_TIPARM
+ case 'i':
+ ++i_opt;
+ break;
+#endif
+ case 'p':
+ ++p_opt;
+ break;
case 'r':
r_opt = atoi(optarg);
break;
+#if HAVE_TIPARM_S
+ case 's':
+ ++s_opt;
+ break;
+#endif
case 'v':
++v_opt;
break;
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
- break;
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
}
}
@@ -213,14 +468,14 @@ main(int argc, char *argv[])
*/
if (optind < argc) {
if (!isNumeric(argv[optind])) {
- all_names[len_names++] = strdup(argv[optind++]);
+ all_caps[len_caps++] = strdup(argv[optind++]);
}
}
/*
* Any remaining arguments must be possible parameter values. If numeric,
- * and "-a" is not set, use those as the maximum values within which the
- * test parameters should vary.
+ * and "-a" is not set, use those as the actual values for which the
+ * capabilities are tested.
*/
while (optind < argc) {
if (isNumeric(argv[optind])) {
@@ -232,14 +487,16 @@ main(int argc, char *argv[])
++optind;
++len_parms;
}
- for (n = len_parms; n < use_parms; ++n) {
+ for (n = len_parms; n < max_parms; ++n) {
static char dummy[1];
str_parms[n] = dummy;
}
if (v_opt) {
printf("%d parameter%s%s\n", PLURAL(len_parms), COLONS(len_parms));
- for (n = 0; n < len_parms; ++n) {
- printf(" %d: %d (%s)\n", n + 1, num_parms[n], str_parms[n]);
+ if (v_opt > 3) {
+ for (n = 0; n < len_parms; ++n) {
+ printf(" %d: %d (%s)\n", n + 1, num_parms[n], str_parms[n]);
+ }
}
}
@@ -260,9 +517,9 @@ main(int argc, char *argv[])
while (t != s && isspace(UChar(t[-1])))
*--t = '\0';
s = strdup(s);
- if (len_terms + 2 >= use_terms) {
- use_terms *= 2;
- all_terms = typeRealloc(char *, use_terms, all_terms);
+ if (len_terms + 2 >= max_terms) {
+ max_terms *= 2;
+ all_terms = typeRealloc(char *, max_terms, all_terms);
if (all_terms == 0)
failed("no memory: all_terms");
}
@@ -273,9 +530,9 @@ main(int argc, char *argv[])
char *t;
while ((t = strtok(s, ",")) != 0) {
s = 0;
- if (len_terms + 2 >= use_terms) {
- use_terms *= 2;
- all_terms = typeRealloc(char *, use_terms, all_terms);
+ if (len_terms + 2 >= max_terms) {
+ max_terms *= 2;
+ all_terms = typeRealloc(char *, max_terms, all_terms);
if (all_terms == 0)
failed("no memory: all_terms");
}
@@ -288,8 +545,10 @@ main(int argc, char *argv[])
all_terms[len_terms] = 0;
if (v_opt) {
printf("%d term%s:\n", PLURAL(len_terms));
- for (n = 0; n < len_terms; ++n) {
- printf(" %d: %s\n", n + 1, all_terms[n]);
+ if (v_opt > 3) {
+ for (n = 0; n < len_terms; ++n) {
+ printf(" %d: %s\n", n + 1, all_terms[n]);
+ }
}
}
@@ -300,34 +559,40 @@ main(int argc, char *argv[])
* TODO: To address the "other" systems which do not follow SVr4,
* just use the output from infocmp on $TERM.
*/
- if (len_names == 0) {
+ if (len_caps == 0) {
#if defined(HAVE_CURSES_DATA_BOOLNAMES) || defined(DECL_CURSES_DATA_BOOLNAMES)
for (n = 0; strnames[n] != 0; ++n) {
- if (len_names + 2 >= use_names) {
- use_names *= 2;
- all_names = typeRealloc(char *, use_names, all_names);
- if (all_names == 0) {
- failed("no memory: all_names");
- }
- }
- all_names[len_names++] = strdup(strnames[n]);
+ GrowArray(all_caps, max_caps, len_caps);
+ all_caps[len_caps++] = strdup(strnames[n]);
}
#else
- all_names[len_names++] = strdup("cup");
- all_names[len_names++] = strdup("sgr");
+ all_caps[len_caps++] = strdup("cup");
+ all_caps[len_caps++] = strdup("sgr");
#endif
}
- all_names[len_names] = 0;
+ std_caps = len_caps;
+ all_caps[len_caps] = 0;
if (v_opt) {
- printf("%d name%s%s\n", PLURAL(len_names), COLONS(len_names));
- for (n = 0; n < len_names; ++n) {
- printf(" %d: %s\n", n + 1, all_names[n]);
+ printf("%d name%s%s\n", PLURAL(len_caps), COLONS(len_caps));
+ if (v_opt > 3) {
+ for (n = 0; n < len_caps; ++n) {
+ printf(" %d: %s\n", n + 1, all_caps[n]);
+ }
}
}
+ cap_name = typeMalloc(char *, (max_name = 1 + len_caps));
+ cap_data = typeMalloc(char *, (max_data = 1 + len_caps));
+
if (r_opt <= 0)
r_opt = 1;
+ if (a_opt) {
+ for (n = 0; n < max_parms; ++n)
+ if (num_parms[n])
+ use_parms *= (num_parms[n] + 1);
+ }
+
for (r_run = 0; r_run < r_opt; ++r_run) {
for (t_run = 0; t_run < len_terms; ++t_run) {
int errs;
@@ -335,26 +600,70 @@ main(int argc, char *argv[])
if (setupterm(all_terms[t_run], fileno(stdout), &errs) != OK) {
printf("** skipping %s (errs:%d)\n", all_terms[t_run], errs);
}
+#if NCURSES_XNAMES
+ len_caps = std_caps;
+ if (cur_term) {
+ TERMTYPE *term = (TERMTYPE *) cur_term;
+ for (n = STRCOUNT; n < NUM_STRINGS(term); ++n) {
+ GrowArray(all_caps, max_caps, len_caps);
+ GrowArray(cap_name, max_name, len_caps);
+ GrowArray(cap_data, max_data, len_caps);
+ all_caps[len_caps++] = strdup(ExtStrname(term, (int) n, strnames));
+ }
+ }
+#else
+ (void) std_caps;
+#endif
- if (v_opt)
- printf("** testing %s\n", all_terms[t_run]);
- if (len_names == 1) {
- if (a_opt) {
- /* for each combination of values */
- memset(all_parms, 0, sizeof(all_parms));
- do {
- test_tparm(all_names[0], all_parms);
+ /*
+ * Most of the capabilities have no parameters, e.g., they are
+ * function-keys or simple operations such as clear-display.
+ * Ignore those, since they do not really exercise tparm.
+ */
+ use_caps = 0;
+ for (n = 0; n < len_caps; ++n) {
+ char *value = tigetstr(all_caps[n]);
+ if (relevant(all_caps[n], value)) {
+ cap_name[use_caps] = all_caps[n];
+ cap_data[use_caps] = value;
+ use_caps++;
+ }
+ }
+
+ if (v_opt) {
+ printf("[%d:%d] %d paramerized cap%s * %ld test-case%s \"%s\"\n",
+ r_run + 1, r_opt,
+ PLURAL(use_caps),
+ PLURAL(use_parms),
+ all_terms[t_run]);
+ }
+
+ memset(all_parms, 0, sizeof(all_parms));
+ if (a_opt) {
+ /* for each combination of values */
+ do {
+ for (n_run = 0; n_run < use_caps; ++n_run) {
+ test_tparm(cap_name[n_run],
+ cap_data[n_run],
+ all_parms,
+ str_parms);
}
- while (increment(all_parms, num_parms, len_parms, 0));
- } else {
- /* for the given values */
- test_tparm(all_names[0], num_parms);
}
+ while (increment(all_parms, num_parms, len_parms, 0));
} else {
- for (n_run = 0; n_run < len_names; ++n_run) {
- test_tparm(all_names[n_run], num_parms);
+ /* for the given values */
+ for (n_run = 0; n_run < use_caps; ++n_run) {
+ test_tparm(cap_name[n_run],
+ cap_data[n_run],
+ all_parms,
+ str_parms);
}
}
+#if NCURSES_XNAMES
+ for (n = std_caps; n < len_caps; ++n) {
+ free(all_caps[n]);
+ }
+#endif
if (cur_term != 0) {
del_curterm(cur_term);
} else {
@@ -362,11 +671,21 @@ main(int argc, char *argv[])
}
}
}
+
+ printf("Tests:\n");
+ printf(NUMFORM " total\n", total_tests);
+ if (total_fails)
+ printf(NUMFORM " failed\n", total_fails);
+ printf("Characters:\n");
+ printf(NUMFORM " nulls\n", total_nulls);
+ printf(NUMFORM " controls\n", total_ctrls);
+ printf(NUMFORM " printable\n", total_print);
+ printf(NUMFORM " total\n", total_nulls + total_ctrls + total_print);
#if NO_LEAKS
- for (n = 0; n < len_names; ++n) {
- free(all_names[n]);
+ for (n = 0; n < std_caps; ++n) {
+ free(all_caps[n]);
}
- free(all_names);
+ free(all_caps);
free(old_term);
for (n = 0; n < len_terms; ++n) {
free(all_terms[n]);
@@ -374,6 +693,8 @@ main(int argc, char *argv[])
free(all_terms);
free(num_parms);
free(str_parms);
+ free(cap_name);
+ free(cap_data);
#endif
ExitProgram(EXIT_SUCCESS);
@@ -381,7 +702,7 @@ main(int argc, char *argv[])
#else /* !HAVE_TIGETSTR */
int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+main(void)
{
failed("This program requires the terminfo functions such as tigetstr");
}
diff --git a/test/test_unget_wch.c b/test/test_unget_wch.c
new file mode 100644
index 000000000000..58085304c90c
--- /dev/null
+++ b/test/test_unget_wch.c
@@ -0,0 +1,116 @@
+/****************************************************************************
+ * Copyright 2022 Thomas E. Dickey *
+ * *
+ * 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: test_unget_wch.c,v 1.4 2022/12/10 23:31:31 tom Exp $
+ *
+ * Demonstrate the unget_wch and unget functions.
+ */
+
+#include <test.priv.h>
+
+#if USE_WIDEC_SUPPORT && HAVE_UNGET_WCH
+static void
+usage(int ok)
+{
+ static const char *msg[] =
+ {
+ "Usage: test_unget_wch [options]"
+ ,""
+ ,USAGE_COMMON
+ };
+ size_t n;
+
+ for (n = 0; n < SIZEOF(msg); n++)
+ fprintf(stderr, "%s\n", msg[n]);
+
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
+}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
+
+int
+main(int argc, char *argv[])
+{
+ int step = 0;
+ int ch;
+
+ while ((ch = getopt(argc, argv, OPTS_COMMON)) != -1) {
+ switch (ch) {
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
+ default:
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
+ }
+ }
+ if (optind < argc)
+ usage(FALSE);
+
+ setlocale(LC_ALL, "");
+ initscr();
+ keypad(stdscr, TRUE);
+ cbreak();
+ noecho();
+ scrollok(stdscr, TRUE);
+
+ for (;;) {
+ wint_t widechar;
+ int rc = get_wch(&widechar);
+ if (rc == KEY_CODE_YES) {
+ printw("KEY[%d] %s\n", ++step, keyname((int) widechar));
+ ungetch((int) widechar);
+ printw("...[%d] %s\n", step, keyname(getch()));
+ } else if (widechar == QUIT || widechar == ESCAPE) {
+ break;
+ } else {
+ printw("CHR[%d] %s\n", ++step, key_name((wchar_t) widechar));
+ unget_wch((wchar_t) widechar);
+ rc = get_wch(&widechar);
+ printw("%s[%d] %s\n",
+ ((rc == KEY_CODE_YES)
+ ? "???"
+ : "..."),
+ step, key_name((wchar_t) widechar));
+ }
+ }
+
+ endwin();
+
+ ExitProgram(EXIT_SUCCESS);
+}
+
+#else
+int
+main(void)
+{
+ printf("This program requires the wide-ncurses library\n");
+ ExitProgram(EXIT_FAILURE);
+}
+#endif
diff --git a/test/test_vid_puts.c b/test/test_vid_puts.c
index 85a7f4ed7696..0d7d7abbe9f0 100644
--- a/test/test_vid_puts.c
+++ b/test/test_vid_puts.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020-2021,2022 Thomas E. Dickey *
* Copyright 2013-2014,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,7 +27,7 @@
* authorization. *
****************************************************************************/
/*
- * $Id: test_vid_puts.c,v 1.11 2020/02/02 23:34:34 tom Exp $
+ * $Id: test_vid_puts.c,v 1.17 2022/12/10 22:28:50 tom Exp $
*
* Demonstrate the vid_puts and vid_attr functions.
* Thomas Dickey - 2013/01/12
@@ -44,7 +44,7 @@ static bool p_opt = FALSE;
static
TPUTS_PROTO(outc, c)
{
- int rc = c;
+ int rc;
rc = putc(c, my_fp);
TPUTS_RETURN(rc);
@@ -94,32 +94,36 @@ test_vid_puts(void)
}
static void
-usage(void)
+usage(int ok)
{
static const char *tbl[] =
{
"Usage: test_vid_puts [options]"
,""
+ ,USAGE_COMMON
,"Options:"
- ," -e use stderr (default stdout)"
- ," -n do not initialize terminal"
- ," -p use vid_puts (default vid_attr)"
+ ," -e use stderr (default stdout)"
+ ," -n do not initialize terminal"
+ ," -p use vid_puts (default vid_attr)"
};
unsigned n;
for (n = 0; n < SIZEOF(tbl); ++n)
fprintf(stderr, "%s\n", tbl[n]);
- ExitProgram(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+main(int argc, char *argv[])
{
int ch;
bool no_init = FALSE;
my_fp = stdout;
- while ((ch = getopt(argc, argv, "enp")) != -1) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "enp")) != -1) {
switch (ch) {
case 'e':
my_fp = stderr;
@@ -130,14 +134,18 @@ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
case 'p':
p_opt = TRUE;
break;
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
- break;
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
}
}
if (optind < argc)
- usage();
+ usage(FALSE);
+ setlocale(LC_ALL, "");
if (no_init) {
START_TRACE();
} else {
diff --git a/test/test_vidputs.c b/test/test_vidputs.c
index 355f100989bd..31dc9da4da0f 100644
--- a/test/test_vidputs.c
+++ b/test/test_vidputs.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020-2021,2022 Thomas E. Dickey *
* Copyright 2013-2014,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,7 +27,7 @@
* authorization. *
****************************************************************************/
/*
- * $Id: test_vidputs.c,v 1.10 2020/02/02 23:34:34 tom Exp $
+ * $Id: test_vidputs.c,v 1.15 2022/12/10 23:23:27 tom Exp $
*
* Demonstrate the vidputs and vidattr functions.
* Thomas Dickey - 2013/01/12
@@ -44,7 +44,7 @@ static bool p_opt = FALSE;
static
TPUTS_PROTO(outc, c)
{
- int rc = c;
+ int rc;
rc = putc(c, my_fp);
TPUTS_RETURN(rc);
@@ -94,32 +94,36 @@ test_vidputs(void)
}
static void
-usage(void)
+usage(int ok)
{
static const char *tbl[] =
{
"Usage: test_vidputs [options]"
,""
+ ,USAGE_COMMON
,"Options:"
- ," -e use stderr (default stdout)"
- ," -n do not initialize terminal"
- ," -p use vidputs (default vidattr)"
+ ," -e use stderr (default stdout)"
+ ," -n do not initialize terminal"
+ ," -p use vidputs (default vidattr)"
};
unsigned n;
for (n = 0; n < SIZEOF(tbl); ++n)
fprintf(stderr, "%s\n", tbl[n]);
- ExitProgram(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+main(int argc, char *argv[])
{
int ch;
bool no_init = FALSE;
my_fp = stdout;
- while ((ch = getopt(argc, argv, "enp")) != -1) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "enp")) != -1) {
switch (ch) {
case 'e':
my_fp = stderr;
@@ -130,13 +134,16 @@ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
case 'p':
p_opt = TRUE;
break;
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
- break;
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
}
}
if (optind < argc)
- usage();
+ usage(FALSE);
if (no_init) {
START_TRACE();
@@ -150,8 +157,7 @@ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
#else
int
-main(int argc GCC_UNUSED,
- char *argv[]GCC_UNUSED)
+main(void)
{
fprintf(stderr, "This program requires terminfo\n");
exit(EXIT_FAILURE);
diff --git a/test/testaddch.c b/test/testaddch.c
index 875c8be7129c..e393c3cc5190 100644
--- a/test/testaddch.c
+++ b/test/testaddch.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2022 Thomas E. Dickey *
* Copyright 1998-2013,2014 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -30,7 +30,7 @@
* This is an example written by Alexander V. Lukyanov <lav@yars.free.net>,
* to demonstrate an inconsistency between ncurses and SVr4 curses.
*
- * $Id: testaddch.c,v 1.13 2020/02/02 23:34:34 tom Exp $
+ * $Id: testaddch.c,v 1.15 2022/12/10 23:44:18 tom Exp $
*/
#include <test.priv.h>
@@ -41,13 +41,45 @@ attr_addstr(const char *s, chtype a)
addch(((unsigned char) (*s++)) | a);
}
+static void
+usage(int ok)
+{
+ static const char *msg[] =
+ {
+ "Usage: testaddch [options]"
+ ,""
+ ,USAGE_COMMON
+ };
+ size_t n;
+
+ for (n = 0; n < SIZEOF(msg); n++)
+ fprintf(stderr, "%s\n", msg[n]);
+
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
+}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
+
int
-main(
- int argc GCC_UNUSED,
- char *argv[]GCC_UNUSED)
+main(int argc, char *argv[])
{
unsigned i;
chtype back, set, attr;
+ int ch;
+
+ while ((ch = getopt(argc, argv, OPTS_COMMON)) != -1) {
+ switch (ch) {
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
+ default:
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
+ }
+ }
+ if (optind < argc)
+ usage(FALSE);
setlocale(LC_ALL, "");
diff --git a/test/testcurs.c b/test/testcurs.c
index f9762b0b328a..750e5a450b1d 100644
--- a/test/testcurs.c
+++ b/test/testcurs.c
@@ -6,7 +6,7 @@
* wrs(5/28/93) -- modified to be consistent (perform identically) with either
* PDCurses or under Unix System V, R4
*
- * $Id: testcurs.c,v 1.55 2019/12/14 23:25:29 tom Exp $
+ * $Id: testcurs.c,v 1.58 2023/05/28 14:23:34 tom Exp $
*/
#include <test.priv.h>
@@ -160,7 +160,7 @@ inputTest(WINDOW *win)
{
int answered;
int repeat;
- int w, h, bx, by, sw, sh, i, c, num;
+ int w, h, bx, by, sw, sh, i, num;
char buffer[80];
WINDOW *subWin;
wclear(win);
@@ -238,6 +238,8 @@ inputTest(WINDOW *win)
#endif
for (;;) {
+ int c;
+
wmove(win, 3, 5);
c = wgetch(win);
wclrtobot(win);
@@ -250,11 +252,11 @@ inputTest(WINDOW *win)
#ifdef KEY_MOUSE
if (c == KEY_MOUSE) {
#if defined(NCURSES_MOUSE_VERSION)
-#define ButtonChanged(n) ((event.bstate) & NCURSES_MOUSE_MASK(1, 037))
-#define ButtonPressed(n) ((event.bstate) & NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_PRESSED))
-#define ButtonDouble(n) ((event.bstate) & NCURSES_MOUSE_MASK(1, NCURSES_DOUBLE_CLICKED))
-#define ButtonTriple(n) ((event.bstate) & NCURSES_MOUSE_MASK(1, NCURSES_TRIPLE_CLICKED))
-#define ButtonRelease(n) ((event.bstate) & NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_RELEASED))
+#define ButtonChanged(n) ((event.bstate) & NCURSES_MOUSE_MASK(n, (NCURSES_BUTTON_RELEASED|NCURSES_BUTTON_PRESSED|NCURSES_BUTTON_CLICKED|NCURSES_DOUBLE_CLICKED|NCURSES_TRIPLE_CLICKED|NCURSES_RESERVED_EVENT)))
+#define ButtonPressed(n) ((event.bstate) & NCURSES_MOUSE_MASK(n, NCURSES_BUTTON_PRESSED))
+#define ButtonDouble(n) ((event.bstate) & NCURSES_MOUSE_MASK(n, NCURSES_DOUBLE_CLICKED))
+#define ButtonTriple(n) ((event.bstate) & NCURSES_MOUSE_MASK(n, NCURSES_TRIPLE_CLICKED))
+#define ButtonRelease(n) ((event.bstate) & NCURSES_MOUSE_MASK(n, NCURSES_BUTTON_RELEASED))
MEVENT event;
int button = 0;
@@ -355,7 +357,6 @@ inputTest(WINDOW *win)
static void
outputTest(WINDOW *win)
{
- WINDOW *win1;
char Buffer[80];
chtype ch;
int by, bx;
@@ -395,7 +396,7 @@ outputTest(WINDOW *win)
MvWAddStr(win, 6, 1, "display of at least 24 LINES by 75 COLUMNS");
Continue(win);
} else {
- win1 = newwin(10, 50, 14, 25);
+ WINDOW *win1 = newwin(10, 50, 14, 25);
if (win1 == NULL) {
endwin();
return;
@@ -589,9 +590,11 @@ resizeTest(WINDOW *dummy GCC_UNUSED)
static void
padTest(WINDOW *dummy GCC_UNUSED)
{
- WINDOW *pad, *spad;
+ WINDOW *pad;
if ((pad = newpad(50, 100)) != 0) {
+ WINDOW *spad;
+
wattron(pad, A_REVERSE);
MvWAddStr(pad, 5, 2, "This is a new pad");
(void) wattrset(pad, A_NORMAL);
@@ -673,17 +676,48 @@ display_menu(int old_option, int new_option)
refresh();
}
+static void
+usage(int ok)
+{
+ static const char *msg[] =
+ {
+ "Usage: testcurs [options]"
+ ,""
+ ,USAGE_COMMON
+ };
+ size_t n;
+
+ for (n = 0; n < SIZEOF(msg); n++)
+ fprintf(stderr, "%s\n", msg[n]);
+
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
+}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
+
int
-main(
- int argc GCC_UNUSED,
- char *argv[]GCC_UNUSED)
+main(int argc, char *argv[])
{
WINDOW *win;
- int key;
int old_option = (-1);
int new_option = 0;
bool quit = FALSE;
int n;
+ int ch;
+
+ while ((ch = getopt(argc, argv, OPTS_COMMON)) != -1) {
+ switch (ch) {
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
+ default:
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
+ }
+ }
+ if (optind < argc)
+ usage(FALSE);
setlocale(LC_ALL, "");
@@ -695,7 +729,10 @@ main(
erase();
display_menu(old_option, new_option);
+
for (;;) {
+ int key;
+
#ifdef A_COLOR
if (has_colors()) {
init_pair(1, COLOR_WHITE, COLOR_BLUE);
diff --git a/test/testscanw.c b/test/testscanw.c
index 251c464d763c..415250c6edb3 100644
--- a/test/testscanw.c
+++ b/test/testscanw.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2020,2022 Thomas E. Dickey *
* Copyright 1998-2002,2006 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -30,15 +30,49 @@
* Date: 1997/03/17
* From: bayern@morpheus.cis.yale.edu
*
- * $Id: testscanw.c,v 1.13 2020/02/02 23:34:34 tom Exp $
+ * $Id: testscanw.c,v 1.15 2022/12/11 00:10:29 tom Exp $
*/
#include <test.priv.h>
+static void
+usage(int ok)
+{
+ static const char *msg[] =
+ {
+ "Usage: testscanw [options] tokens"
+ ,""
+ ,"Tokens are integers (starting line-number) or k+, k- to turn keypad on/off."
+ ,""
+ ,USAGE_COMMON
+ };
+ size_t n;
+
+ for (n = 0; n < SIZEOF(msg); n++)
+ fprintf(stderr, "%s\n", msg[n]);
+
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
+}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
+
int
main(int argc, char *argv[])
{
long badanswer = 1;
long *response = &badanswer;
+ int ch;
+
+ while ((ch = getopt(argc, argv, OPTS_COMMON)) != -1) {
+ switch (ch) {
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
+ default:
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
+ }
+ }
setlocale(LC_ALL, "");
@@ -50,12 +84,14 @@ main(int argc, char *argv[])
#if 0
curses_trace(TRACE_UPDATE | TRACE_CALLS);
#endif
- while (argc > 1) {
- if (isdigit(UChar(*argv[1])))
- move(atoi(argv[1]), 0);
- else if (!strcmp(argv[1], "-k"))
+ while (optind < argc) {
+ char *token = argv[optind++];
+ if (isdigit(UChar(*token)))
+ move(atoi(token), 0);
+ else if (!strcmp(token, "k+"))
keypad(stdscr, TRUE);
- argc--, argv++;
+ else if (!strcmp(token, "k-"))
+ keypad(stdscr, FALSE);
}
while (badanswer) {
diff --git a/test/tracemunch b/test/tracemunch
index cde06e576a02..b2d3b03b216c 100755
--- a/test/tracemunch
+++ b/test/tracemunch
@@ -1,5 +1,5 @@
#!/usr/bin/env perl
-# $Id: tracemunch,v 1.40 2021/02/13 19:29:12 tom Exp $
+# $Id: tracemunch,v 1.41 2021/09/04 10:31:03 tom Exp $
##############################################################################
# Copyright 2018-2020,2021 Thomas E. Dickey #
# Copyright 1998-2005,2017 Free Software Foundation, Inc. #
@@ -744,7 +744,7 @@ sub muncher($) {
$_ =~ s/^[^:]*://;
}
- # Transform window pointer addresses so it's easier to compare logs
+ # Transform window pointer addresses to make it easier to compare logs
$awaiting = "curscr" if ( $_ =~ /creating curscr/ );
$awaiting = "newscr" if ( $_ =~ /creating newscr/ );
$awaiting = "stdscr" if ( $_ =~ /creating stdscr/ );
diff --git a/test/view.c b/test/view.c
index e4d746f4d6c5..72e0cfbb6b97 100644
--- a/test/view.c
+++ b/test/view.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2021,2022 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -52,7 +52,7 @@
* scroll operation worked, and the refresh() code only had to do a
* partial repaint.
*
- * $Id: view.c,v 1.138 2020/02/02 23:34:34 tom Exp $
+ * $Id: view.c,v 1.145 2022/12/04 00:40:11 tom Exp $
*/
#include <test.priv.h>
@@ -62,7 +62,7 @@
#include <sys/stat.h>
#include <time.h>
-static void finish(int sig) GCC_NORETURN;
+static GCC_NORETURN void finish(int sig);
#define my_pair 1
@@ -78,9 +78,7 @@ static int num_lines;
static bool n_option = FALSE;
#endif
-static void usage(void) GCC_NORETURN;
-
-static void
+static GCC_NORETURN void
failed(const char *msg)
{
endwin();
@@ -92,12 +90,10 @@ static int
ch_len(NCURSES_CH_T *src)
{
int result = 0;
-#if USE_WIDEC_SUPPORT
- int count;
-#endif
#if USE_WIDEC_SUPPORT
for (;;) {
+ int count;
TEST_CCHAR(src, count, {
int len = wcwidth(test_wch[0]);
result += (len > 0) ? len : 1;
@@ -136,7 +132,6 @@ show_all(const char *tag)
int i;
int digits;
char temp[BUFSIZ];
- NCURSES_CH_T *s;
time_t this_time;
for (digits = 1, i = num_lines; i > 0; i /= 10) {
@@ -161,8 +156,10 @@ show_all(const char *tag)
scrollok(stdscr, FALSE); /* prevent screen from moving */
for (i = 1; i < LINES; i++) {
+ NCURSES_CH_T *s;
int len;
int actual = (int) (lptr + i - vec_lines);
+
if (actual > num_lines) {
if (i < LINES - 1) {
int y, x;
@@ -189,8 +186,11 @@ show_all(const char *tag)
*/
{
int j;
- int width = 1, count;
+ int width = 1;
+
for (j = actual = 0; j < shift; ++j) {
+ int count;
+
TEST_CCHAR(s + j, count, {
width = wcwidth(test_wch[0]);
}
@@ -257,9 +257,12 @@ read_file(const char *filename)
}
len = fread(my_blob, sizeof(char), (size_t) sb.st_size, fp);
- my_blob[sb.st_size] = '\0';
fclose(fp);
+ if (len > (size_t) sb.st_size)
+ len = (size_t) sb.st_size;
+ my_blob[len] = '\0';
+
for (pass = 0; pass < 2; ++pass) {
char *base = my_blob;
k = 0;
@@ -273,12 +276,19 @@ read_file(const char *filename)
++k;
}
}
+ if (base != (my_blob + j)) {
+ if (pass)
+ my_vec[k] = base;
+ ++k;
+ }
num_lines = k;
- if (base != (my_blob + j))
- ++num_lines;
- if (!pass &&
- ((my_vec = typeCalloc(char *, (size_t) k + 2)) == 0)) {
- failed("cannot allocate line-vector #1");
+ if (pass == 0) {
+ if (((my_vec = typeCalloc(char *, (size_t) k + 2)) == 0)) {
+ failed("cannot allocate line-vector #1");
+ }
+ } else {
+ if (my_vec[0] == NULL)
+ my_vec[0] = my_blob;
}
}
@@ -366,13 +376,14 @@ read_file(const char *filename)
free(my_blob);
}
-static void
-usage(void)
+static GCC_NORETURN void
+usage(int ok)
{
static const char *msg[] =
{
"Usage: view [options] file"
,""
+ ,USAGE_COMMON
,"Options:"
," -c use color if terminal supports it"
," -i ignore INT, QUIT, TERM signals"
@@ -388,8 +399,11 @@ usage(void)
size_t n;
for (n = 0; n < SIZEOF(msg); n++)
fprintf(stderr, "%s\n", msg[n]);
- ExitProgram(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
main(int argc, char *argv[])
@@ -419,6 +433,7 @@ main(int argc, char *argv[])
0
};
+ int ch;
int i;
int my_delay = 0;
NCURSES_CH_T **olptr;
@@ -431,8 +446,8 @@ main(int argc, char *argv[])
setlocale(LC_ALL, "");
- while ((i = getopt(argc, argv, "cinstT:")) != -1) {
- switch (i) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "cinstT:")) != -1) {
+ switch (ch) {
case 'c':
try_color = TRUE;
break;
@@ -453,7 +468,7 @@ main(int argc, char *argv[])
char *next = 0;
int tvalue = (int) strtol(optarg, &next, 0);
if (tvalue < 0 || (next != 0 && *next != 0))
- usage();
+ usage(FALSE);
curses_trace((unsigned) tvalue);
}
break;
@@ -461,12 +476,16 @@ main(int argc, char *argv[])
curses_trace(TRACE_CALLS);
break;
#endif
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
+ usage(ch == OPTS_USAGE);
+ /* NOTREACHED */
}
}
if (optind + 1 != argc)
- usage();
+ usage(FALSE);
InitAndCatch(initscr(), ignore_sigs ? SIG_IGN : finish);
keypad(stdscr, TRUE); /* enable keyboard mapping */
diff --git a/test/worm.c b/test/worm.c
index 6304e4b06a88..7c4842e4004f 100644
--- a/test/worm.c
+++ b/test/worm.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2020,2022 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@@ -53,7 +53,7 @@
traces will be dumped. The program stops and waits for one character of
input at the beginning and end of the interval.
- $Id: worm.c,v 1.82 2020/02/02 23:34:34 tom Exp $
+ $Id: worm.c,v 1.89 2022/12/24 20:46:49 tom Exp $
*/
#include <test.priv.h>
@@ -107,6 +107,18 @@ static int length = 16, number = 3;
static chtype trail = ' ';
static unsigned pending;
+
+#ifdef USE_PTHREADS
+#define Locked(statement) { \
+ pthread_mutex_lock(&pending_mutex); \
+ statement; \
+ pthread_mutex_unlock(&pending_mutex); \
+ }
+pthread_mutex_t pending_mutex;
+#else
+#define Locked(statement) statement
+#endif
+
#ifdef TRACE
static int generation, trace_start, trace_end;
#endif /* TRACE */
@@ -248,13 +260,18 @@ draw_worm(WINDOW *win, void *data)
WORM *w = (WORM *) data;
const struct options *op;
unsigned mask = (unsigned) (~(1 << (w - worm)));
- chtype attrs = w->attrs | ((mask & pending) ? A_REVERSE : 0);
+ chtype attrs;
int x;
int y;
int h;
bool done = FALSE;
+ bool is_pending;
+
+ Locked(is_pending = ((mask & pending) != 0));
+
+ attrs = w->attrs | (is_pending ? A_REVERSE : 0);
if ((x = w->xpos[h = w->head]) < 0) {
wmove(win, y = w->ypos[h] = last_y, x = w->xpos[h] = 0);
@@ -336,9 +353,12 @@ draw_worm(WINDOW *win, void *data)
static bool
quit_worm(int bitnum)
{
- pending = (pending | (unsigned) (1 << bitnum));
+ Locked(pending = (pending | (unsigned) (1 << bitnum)));
+
napms(10); /* let the other thread(s) have a chance */
- pending = (pending & (unsigned) ~(1 << bitnum));
+
+ Locked(pending = (pending & (unsigned) ~(1 << bitnum)));
+
return quitting;
}
@@ -348,13 +368,13 @@ start_worm(void *arg)
unsigned long compare = 0;
Trace(("start_worm"));
while (!quit_worm((int) (((struct worm *) arg) - worm))) {
- while (compare < sequence) {
+ for (;;) {
+ bool done = FALSE;
+ Locked(done = (compare >= sequence));
+ if (done)
+ break;
++compare;
-#if HAVE_USE_WINDOW
- use_window(stdscr, draw_worm, arg);
-#else
- draw_worm(stdscr, arg);
-#endif
+ USING_WINDOW2(stdscr, draw_worm, arg);
}
}
Trace(("...start_worm (done)"));
@@ -379,13 +399,7 @@ draw_all_worms(void)
}
#else
for (n = 0, w = &worm[0]; n < number; n++, w++) {
- if (
-#if HAVE_USE_WINDOW
- USING_WINDOW2(stdscr, draw_worm, w)
-#else
- draw_worm(stdscr, w)
-#endif
- )
+ if (USING_WINDOW2(stdscr, draw_worm, w))
done = TRUE;
}
#endif
@@ -437,12 +451,13 @@ update_refs(WINDOW *win, void *data)
#endif
static void
-usage(void)
+usage(int ok)
{
static const char *msg[] =
{
"Usage: worm [options]"
,""
+ ,USAGE_COMMON
,"Options:"
#if HAVE_USE_DEFAULT_COLORS
," -d invoke use_default_colors"
@@ -461,8 +476,11 @@ usage(void)
for (n = 0; n < SIZEOF(msg); n++)
fprintf(stderr, "%s\n", msg[n]);
- ExitProgram(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
main(int argc, char *argv[])
@@ -479,7 +497,7 @@ main(int argc, char *argv[])
setlocale(LC_ALL, "");
- while ((ch = getopt(argc, argv, "dfl:n:tT:N")) != -1) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "dfl:n:tT:N")) != -1) {
switch (ch) {
#if HAVE_USE_DEFAULT_COLORS
case 'd':
@@ -492,13 +510,13 @@ main(int argc, char *argv[])
case 'l':
if ((length = atoi(optarg)) < 2 || length > MAX_LENGTH) {
fprintf(stderr, "%s: Invalid length\n", *argv);
- usage();
+ usage(FALSE);
}
break;
case 'n':
if ((number = atoi(optarg)) < 1 || number > MAX_WORMS) {
fprintf(stderr, "%s: Invalid number of worms\n", *argv);
- usage();
+ usage(FALSE);
}
break;
case 't':
@@ -507,19 +525,22 @@ main(int argc, char *argv[])
#ifdef TRACE
case 'T':
if (sscanf(optarg, "%d,%d", &trace_start, &trace_end) != 2)
- usage();
+ usage(FALSE);
break;
case 'N':
_nc_optimize_enable ^= OPTIMIZE_ALL; /* declared by ncurses */
break;
#endif /* TRACE */
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
+ usage(ch == OPTS_USAGE);
/* NOTREACHED */
}
}
if (optind < argc)
- usage();
+ usage(FALSE);
signal(SIGINT, onsig);
initscr();
@@ -603,8 +624,12 @@ main(int argc, char *argv[])
USING_WINDOW1(stdscr, wrefresh, safe_wrefresh);
nodelay(stdscr, TRUE);
+#ifdef USE_PTHREADS
+ pthread_mutex_init(&pending_mutex, NULL);
+#endif
+
while (!done) {
- ++sequence;
+ Locked(++sequence);
if ((ch = get_input()) > 0) {
#ifdef TRACE
if (trace_start || trace_end) {
@@ -649,6 +674,15 @@ main(int argc, char *argv[])
Trace(("Cleanup"));
cleanup();
+#ifdef USE_PTHREADS
+ /*
+ * Do this just in case one of the threads did not really exit.
+ */
+ Trace(("join all threads"));
+ for (n = 0; n < number; n++) {
+ pthread_join(worm[n].thread, NULL);
+ }
+#endif
#if NO_LEAKS
for (y = 0; y < max_refs; y++) {
free(refs[y]);
@@ -659,14 +693,5 @@ main(int argc, char *argv[])
free(w->ypos);
}
#endif
-#ifdef USE_PTHREADS
- /*
- * Do this just in case one of the threads did not really exit.
- */
- Trace(("join all threads"));
- for (n = 0; n < number; n++) {
- pthread_join(worm[n].thread, NULL);
- }
-#endif
ExitProgram(EXIT_SUCCESS);
}
diff --git a/test/xmas.c b/test/xmas.c
index 78b187c20a3e..9ba3a26c02e0 100644
--- a/test/xmas.c
+++ b/test/xmas.c
@@ -92,7 +92,7 @@
/******************************************************************************/
/*
- * $Id: xmas.c,v 1.34 2019/12/14 23:25:29 tom Exp $
+ * $Id: xmas.c,v 1.39 2022/12/04 00:40:11 tom Exp $
*/
#include <test.priv.h>
@@ -133,7 +133,7 @@ static WINDOW *w_holiday;
static WINDOW *w_del_msg;
static bool *my_pairs;
-static void done(int sig) GCC_NORETURN;
+static GCC_NORETURN void done(int sig);
static void
set_color(WINDOW *win, chtype color)
@@ -500,9 +500,6 @@ reindeer(void)
y_pos = 0;
for (x_pos = 70; x_pos > 62; x_pos--) {
- if (x_pos < 62) {
- y_pos = 1;
- }
for (looper = 0; looper < 4; looper++) {
MvWAddCh(dotdeer0, y_pos, x_pos, (chtype) '.');
wrefresh(dotdeer0);
@@ -649,12 +646,13 @@ done(int sig GCC_UNUSED)
}
static void
-usage(void)
+usage(int ok)
{
static const char *msg[] =
{
"Usage: xmas [options]"
,""
+ ,USAGE_COMMON
,"Options:"
#if HAVE_USE_DEFAULT_COLORS
," -d invoke use_default_colors"
@@ -666,8 +664,11 @@ usage(void)
for (n = 0; n < SIZEOF(msg); n++)
fprintf(stderr, "%s\n", msg[n]);
- ExitProgram(EXIT_FAILURE);
+ ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
int
main(int argc, char *argv[])
@@ -679,7 +680,7 @@ main(int argc, char *argv[])
#endif
bool opt_q = FALSE;
- while ((ch = getopt(argc, argv, "dq")) != -1) {
+ while ((ch = getopt(argc, argv, OPTS_COMMON "dq")) != -1) {
switch (ch) {
#if HAVE_USE_DEFAULT_COLORS
case 'd':
@@ -689,8 +690,11 @@ main(int argc, char *argv[])
case 'q':
opt_q = TRUE;
break;
+ case OPTS_VERSION:
+ show_version(argv);
+ ExitProgram(EXIT_SUCCESS);
default:
- usage();
+ usage(ch == OPTS_USAGE);
/* NOTREACHED */
}
}
diff --git a/test/xterm-16color.dat b/test/xterm-16color.dat
index 35aa099ede56..075c44b804f1 100644
--- a/test/xterm-16color.dat
+++ b/test/xterm-16color.dat
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright 2020 Thomas E. Dickey #
+# Copyright 2020,2021 Thomas E. Dickey #
# Copyright 2004-2006,2016 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -26,8 +26,8 @@
# use or other dealings in this Software without prior written #
# authorization. #
##############################################################################
-# $Id: xterm-16color.dat,v 1.4 2020/02/08 21:38:22 tom Exp $
-# This illustrates the predefined colors for XFree86 xterm's "xterm-16color".
+# $Id: xterm-16color.dat,v 1.5 2021/06/17 21:20:30 tom Exp $
+# This illustrates the predefined colors for XFree86 xterm's "xterm-16color".
# If you set $TERM to "xterm-88color" (and have xterm compiled to support the
# 88-color or 256-color feature), you can use the ncurses 'd' screen to
# manipulate the colors shown in the screen. The 'd' screen is limited to